From 62a703a8ec224046afcb76b0c444c3559b656048 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 24 Jan 2024 23:43:59 -0500 Subject: [PATCH 001/471] init - Copied toolchain setup from kaoto-next - Copied React components from AtlasMap --- .gitignore | 142 + package.json | 26 + packages/ui/index.html | 17 + packages/ui/package.json | 71 + .../ui/src/Layout/ContextToolbar.stories.tsx | 26 + packages/ui/src/Layout/ContextToolbar.tsx | 32 + packages/ui/src/Layout/ExpressionToolbar.tsx | 30 + packages/ui/src/Layout/MainContent.module.css | 8 + .../ui/src/Layout/MainContent.module.css.d.ts | 5 + .../ui/src/Layout/MainContent.stories.tsx | 151 + packages/ui/src/Layout/MainContent.tsx | 23 + packages/ui/src/Layout/MainLayout.module.css | 9 + .../ui/src/Layout/MainLayout.module.css.d.ts | 7 + packages/ui/src/Layout/MainLayout.stories.tsx | 41 + packages/ui/src/Layout/MainLayout.tsx | 70 + .../Layout/MappingDetailsSidebar.module.css | 6 + .../MappingDetailsSidebar.module.css.d.ts | 5 + .../Layout/MappingDetailsSidebar.stories.tsx | 39 + .../ui/src/Layout/MappingDetailsSidebar.tsx | 92 + packages/ui/src/Layout/Sidebar.module.css | 8 + .../ui/src/Layout/Sidebar.module.css.d.ts | 6 + packages/ui/src/Layout/Sidebar.stories.tsx | 38 + packages/ui/src/Layout/Sidebar.tsx | 34 + packages/ui/src/Layout/Toolbar.module.css | 11 + .../ui/src/Layout/Toolbar.module.css.d.ts | 6 + packages/ui/src/Layout/index.ts | 21 + packages/ui/src/UI/Actions.module.css | 9 + packages/ui/src/UI/Actions.module.css.d.ts | 6 + packages/ui/src/UI/Actions.tsx | 27 + .../ui/src/UI/AddFieldTypeahead.module.css | 15 + .../src/UI/AddFieldTypeahead.module.css.d.ts | 8 + .../ui/src/UI/AddFieldTypeahead.stories.tsx | 68 + packages/ui/src/UI/AddFieldTypeahead.tsx | 114 + packages/ui/src/UI/AutoDropdown.tsx | 40 + .../ui/src/UI/Canvas/0.Canvas.stories.mdx | 43 + .../ui/src/UI/Canvas/1.HTMLObject.stories.mdx | 16 + packages/ui/src/UI/Canvas/2.Arc.stories.mdx | 26 + .../ui/src/UI/Canvas/3.NodesArc.stories.mdx | 52 + packages/ui/src/UI/Canvas/Arc.module.css | 3 + packages/ui/src/UI/Canvas/Arc.module.css.d.ts | 5 + packages/ui/src/UI/Canvas/Arc.stories.tsx | 57 + packages/ui/src/UI/Canvas/Arc.tsx | 95 + packages/ui/src/UI/Canvas/ArcEdge.tsx | 42 + packages/ui/src/UI/Canvas/Canvas.module.css | 18 + .../ui/src/UI/Canvas/Canvas.module.css.d.ts | 7 + packages/ui/src/UI/Canvas/Canvas.stories.tsx | 79 + packages/ui/src/UI/Canvas/Canvas.tsx | 85 + packages/ui/src/UI/Canvas/CanvasContext.tsx | 227 + .../ui/src/UI/Canvas/CanvasTransforms.tsx | 36 + .../ui/src/UI/Canvas/HTMLObject.module.css | 3 + .../src/UI/Canvas/HTMLObject.module.css.d.ts | 5 + .../ui/src/UI/Canvas/HTMLObject.stories.tsx | 44 + packages/ui/src/UI/Canvas/HTMLObject.tsx | 46 + packages/ui/src/UI/Canvas/NodeRef.tsx | 49 + packages/ui/src/UI/Canvas/NodeRefProvider.tsx | 184 + .../ui/src/UI/Canvas/NodesArc.stories.tsx | 211 + packages/ui/src/UI/Canvas/NodesArc.tsx | 162 + packages/ui/src/UI/Canvas/PrintNodeRef.tsx | 55 + packages/ui/src/UI/Canvas/canvasBg.png | Bin 0 -> 10561 bytes packages/ui/src/UI/Canvas/index.ts | 26 + packages/ui/src/UI/Canvas/models.ts | 29 + .../ui/src/UI/Canvas/useBoundingCanvasRect.ts | 62 + .../ui/src/UI/ColumnMapper/Column.module.css | 9 + .../UI/ColumnMapper/Column.module.css.d.ts | 6 + .../ui/src/UI/ColumnMapper/Column.spec.tsx | 59 + .../ui/src/UI/ColumnMapper/Column.stories.tsx | 433 ++ packages/ui/src/UI/ColumnMapper/Column.tsx | 44 + .../src/UI/ColumnMapper/ColumnBody.module.css | 23 + .../ColumnMapper/ColumnBody.module.css.d.ts | 5 + .../src/UI/ColumnMapper/ColumnBody.spec.tsx | 26 + .../ui/src/UI/ColumnMapper/ColumnBody.tsx | 27 + .../UI/ColumnMapper/ColumnHeader.module.css | 26 + .../ColumnMapper/ColumnHeader.module.css.d.ts | 8 + .../src/UI/ColumnMapper/ColumnHeader.spec.tsx | 24 + .../UI/ColumnMapper/ColumnHeader.stories.tsx | 43 + .../ui/src/UI/ColumnMapper/ColumnHeader.tsx | 49 + .../UI/ColumnMapper/ColumnMapper.module.css | 3 + .../ColumnMapper/ColumnMapper.module.css.d.ts | 5 + .../src/UI/ColumnMapper/ColumnMapper.spec.tsx | 30 + .../UI/ColumnMapper/ColumnMapper.stories.tsx | 306 + .../ui/src/UI/ColumnMapper/ColumnMapper.tsx | 33 + .../ui/src/UI/ColumnMapper/Columns.module.css | 7 + .../UI/ColumnMapper/Columns.module.css.d.ts | 5 + .../ui/src/UI/ColumnMapper/Columns.spec.tsx | 33 + packages/ui/src/UI/ColumnMapper/Columns.tsx | 29 + .../SearchableColumnHeader.spec.tsx | 42 + .../SearchableColumnHeader.stories.tsx | 46 + .../ColumnMapper/SearchableColumnHeader.tsx | 66 + .../ui/src/UI/ColumnMapper/index.stories.mdx | 40 + packages/ui/src/UI/ColumnMapper/index.ts | 21 + .../UI/ConditionalExpressionInput.module.css | 6 + ...ConditionalExpressionInput.module.css.d.ts | 5 + .../ui/src/UI/ConditionalExpressionInput.tsx | 71 + packages/ui/src/UI/DelayedBoolean.tsx | 36 + packages/ui/src/UI/Document.module.css | 48 + packages/ui/src/UI/Document.module.css.d.ts | 16 + packages/ui/src/UI/Document.stories.mdx | 27 + packages/ui/src/UI/Document.stories.tsx | 79 + packages/ui/src/UI/Document.tsx | 169 + packages/ui/src/UI/DocumentActions.tsx | 75 + packages/ui/src/UI/DocumentField.module.css | 59 + .../ui/src/UI/DocumentField.module.css.d.ts | 13 + packages/ui/src/UI/DocumentField.tsx | 107 + .../ui/src/UI/DocumentFieldPreview.module.css | 6 + .../UI/DocumentFieldPreview.module.css.d.ts | 5 + packages/ui/src/UI/DocumentFieldPreview.tsx | 47 + .../UI/DocumentFieldPreviewResults.module.css | 6 + ...ocumentFieldPreviewResults.module.css.d.ts | 5 + .../ui/src/UI/DocumentFieldPreviewResults.tsx | 43 + packages/ui/src/UI/DocumentFooter.module.css | 3 + .../ui/src/UI/DocumentFooter.module.css.d.ts | 5 + packages/ui/src/UI/DocumentFooter.tsx | 23 + packages/ui/src/UI/DocumentGroup.module.css | 13 + .../ui/src/UI/DocumentGroup.module.css.d.ts | 7 + packages/ui/src/UI/DocumentGroup.tsx | 74 + .../ui/src/UI/ExpressionContent.stories.tsx | 132 + packages/ui/src/UI/ExpressionContent.tsx | 626 +++ .../ui/src/UI/ExpressionEnumSelect.module.css | 14 + .../UI/ExpressionEnumSelect.module.css.d.ts | 7 + packages/ui/src/UI/ExpressionEnumSelect.tsx | 102 + .../src/UI/ExpressionFieldSearch.module.css | 14 + .../UI/ExpressionFieldSearch.module.css.d.ts | 7 + packages/ui/src/UI/ExpressionFieldSearch.tsx | 179 + packages/ui/src/UI/Loading.tsx | 32 + packages/ui/src/UI/MappingField.module.css | 49 + .../ui/src/UI/MappingField.module.css.d.ts | 11 + packages/ui/src/UI/MappingField.tsx | 220 + packages/ui/src/UI/MappingFields.module.css | 9 + .../ui/src/UI/MappingFields.module.css.d.ts | 6 + packages/ui/src/UI/MappingFields.tsx | 106 + .../src/UI/MappingTransformation.module.css | 6 + .../UI/MappingTransformation.module.css.d.ts | 5 + .../ui/src/UI/MappingTransformation.spec.tsx | 67 + .../src/UI/MappingTransformation.stories.tsx | 123 + packages/ui/src/UI/MappingTransformation.tsx | 305 + packages/ui/src/UI/TimedToast.tsx | 88 + packages/ui/src/UI/Tree/Tree.module.css | 3 + packages/ui/src/UI/Tree/Tree.module.css.d.ts | 5 + packages/ui/src/UI/Tree/Tree.stories.mdx | 60 + packages/ui/src/UI/Tree/Tree.stories.tsx | 83 + packages/ui/src/UI/Tree/Tree.tsx | 51 + packages/ui/src/UI/Tree/TreeFocusProvider.tsx | 211 + packages/ui/src/UI/Tree/TreeGroup.module.css | 16 + .../ui/src/UI/Tree/TreeGroup.module.css.d.ts | 7 + packages/ui/src/UI/Tree/TreeGroup.tsx | 140 + packages/ui/src/UI/Tree/TreeItem.tsx | 66 + packages/ui/src/UI/Tree/index.ts | 19 + packages/ui/src/UI/TruncatedString.module.css | 7 + .../ui/src/UI/TruncatedString.module.css.d.ts | 5 + packages/ui/src/UI/TruncatedString.tsx | 33 + packages/ui/src/UI/dialogs/AboutDialog.tsx | 59 + .../UI/dialogs/ChangeDocumentNameDialog.tsx | 86 + .../ui/src/UI/dialogs/ConfirmationDialog.tsx | 75 + .../src/UI/dialogs/ConstantDialog.stories.tsx | 50 + packages/ui/src/UI/dialogs/ConstantDialog.tsx | 191 + .../UI/dialogs/CustomClassDialog.stories.tsx | 51 + .../ui/src/UI/dialogs/CustomClassDialog.tsx | 131 + .../dialogs/ExportCatalogDialog.stories.tsx | 33 + .../ui/src/UI/dialogs/ExportCatalogDialog.tsx | 70 + .../UI/dialogs/LookupTableDialog.module.css | 17 + .../dialogs/LookupTableDialog.module.css.d.ts | 7 + .../ui/src/UI/dialogs/LookupTableDialog.tsx | 84 + .../UI/dialogs/NamespaceDialog.stories.tsx | 39 + .../ui/src/UI/dialogs/NamespaceDialog.tsx | 120 + .../UI/dialogs/ParametersDialog.stories.tsx | 158 + .../ui/src/UI/dialogs/ParametersDialog.tsx | 249 + .../src/UI/dialogs/PropertyDialog.stories.tsx | 73 + packages/ui/src/UI/dialogs/PropertyDialog.tsx | 219 + packages/ui/src/UI/dialogs/index.ts | 25 + .../ui/src/UI/dnd/Drag-and-drop.stories.mdx | 26 + .../ui/src/UI/dnd/Drag-and-drop.stories.tsx | 212 + packages/ui/src/UI/dnd/DraggableField.tsx | 83 + packages/ui/src/UI/dnd/DraggedField.tsx | 51 + .../ui/src/UI/dnd/FieldDragLayer.module.css | 9 + .../src/UI/dnd/FieldDragLayer.module.css.d.ts | 6 + packages/ui/src/UI/dnd/FieldDragLayer.tsx | 50 + packages/ui/src/UI/dnd/FieldDropTarget.tsx | 96 + packages/ui/src/UI/dnd/FieldsDndProvider.tsx | 77 + packages/ui/src/UI/dnd/index.ts | 21 + packages/ui/src/UI/dnd/models.ts | 21 + packages/ui/src/UI/index.ts | 41 + packages/ui/src/UI/useDimensions.ts | 87 + .../UI/useInputTextSelectDialog.module.css | 23 + .../useInputTextSelectDialog.module.css.d.ts | 8 + .../ui/src/UI/useInputTextSelectDialog.tsx | 212 + packages/ui/src/UI/useLatestValue.tsx | 34 + packages/ui/src/UI/useSingleInputDialog.tsx | 125 + .../Actions/CaptureDocumentIDAction.tsx | 42 + .../Actions/ChangeDocumentNameAction.tsx | 42 + .../Actions/DeleteDocumentAction.tsx | 42 + .../Actions/DeleteMappingAction.tsx | 42 + .../Actions/EditCSVParamsAction.tsx | 42 + .../Actions/EditMappingAction.tsx | 43 + .../Actions/EnableJavaClassAction.tsx | 53 + .../ColumnMapperView/Actions/ImportAction.tsx | 61 + .../Views/ColumnMapperView/Actions/index.ts | 23 + .../ColumnMapperView.spec.tsx | 71 + .../ColumnMapperView.stories.tsx | 128 + .../ColumnMapperView/Columns/AtlasmapLogo.tsx | 90 + .../Columns/ConstantsTree.tsx | 134 + .../Columns/PropertiesTree.tsx | 149 + .../Columns/SourcesColumn.tsx | 395 ++ .../Columns/TargetsColumn.tsx | 326 ++ .../Columns/TraverseFields.tsx | 132 + .../Columns/TreeGroupAndNodeRefsAndDnD.tsx | 107 + .../TreeItemFieldAndNodeRefsAndDnD.tsx | 221 + .../Columns/commonActions.tsx | 171 + .../ColumnMapperView/Columns/constants.ts | 35 + .../Views/ColumnMapperView/Columns/index.ts | 20 + .../Links/SourceTargetLinks.module.css | 7 + .../Links/SourceTargetLinks.module.css.d.ts | 6 + .../Links/SourceTargetLinks.tsx | 119 + .../src/Views/ColumnMapperView/Links/index.ts | 16 + .../ui/src/Views/ColumnMapperView/index.ts | 18 + packages/ui/src/Views/MappingDetailsView.tsx | 359 ++ .../ui/src/Views/MappingTableView.module.css | 3 + .../Views/MappingTableView.module.css.d.ts | 5 + .../ui/src/Views/MappingTableView.stories.tsx | 45 + packages/ui/src/Views/MappingTableView.tsx | 145 + .../src/Views/NamespaceTableView.module.css | 4 + .../Views/NamespaceTableView.module.css.d.ts | 5 + packages/ui/src/Views/NamespaceTableView.tsx | 180 + .../ui/src/Views/SourceTargetView.spec.tsx | 28 + .../ui/src/Views/SourceTargetView.stories.tsx | 136 + packages/ui/src/Views/SourceTargetView.tsx | 86 + packages/ui/src/Views/index.ts | 21 + packages/ui/src/Views/models.ts | 99 + packages/ui/src/core/common/config.types.ts | 90 + packages/ui/src/core/common/index.ts | 16 + packages/ui/src/core/contracts/adm-digest.ts | 38 + packages/ui/src/core/contracts/common.ts | 179 + .../ui/src/core/contracts/documents/csv.ts | 163 + .../ui/src/core/contracts/documents/index.ts | 19 + .../ui/src/core/contracts/documents/java.ts | 152 + .../ui/src/core/contracts/documents/json.ts | 120 + .../ui/src/core/contracts/documents/xml.ts | 131 + packages/ui/src/core/contracts/expression.ts | 22 + .../ui/src/core/contracts/field-action.ts | 104 + packages/ui/src/core/contracts/index.ts | 22 + .../ui/src/core/contracts/mapping-preview.ts | 82 + packages/ui/src/core/contracts/mapping.ts | 274 + packages/ui/src/core/index.ts | 20 + .../ui/src/core/models/config.model.spec.ts | 28 + packages/ui/src/core/models/config.model.ts | 292 + .../models/document-definition.model.spec.ts | 39 + .../core/models/document-definition.model.ts | 498 ++ .../ui/src/core/models/error.model.spec.ts | 31 + packages/ui/src/core/models/error.model.ts | 66 + packages/ui/src/core/models/examples.ts | 49 + .../ui/src/core/models/expression.model.ts | 754 +++ .../core/models/field-action.model.spec.ts | 30 + .../ui/src/core/models/field-action.model.ts | 107 + .../ui/src/core/models/field.model.spec.ts | 24 + packages/ui/src/core/models/field.model.ts | 287 + packages/ui/src/core/models/index.ts | 27 + .../models/inspect/csv-inspection.model.ts | 128 + .../inspect/cvs-inspection.model.spec.ts | 52 + .../inspect/document-inspection.model.ts | 99 + packages/ui/src/core/models/inspect/index.ts | 20 + .../models/inspect/java-inspection.model.ts | 194 + .../models/inspect/json-inspection.model.ts | 144 + .../models/inspect/xml-inspection.model.ts | 169 + .../core/models/lookup-table.model.spec.ts | 32 + .../ui/src/core/models/lookup-table.model.ts | 82 + .../models/mapping-definition.model.spec.ts | 24 + .../core/models/mapping-definition.model.ts | 119 + .../ui/src/core/models/mapping.model.spec.ts | 25 + packages/ui/src/core/models/mapping.model.ts | 490 ++ .../src/core/models/transition.model.spec.ts | 26 + .../ui/src/core/models/transition.model.ts | 306 + .../document-management.service.spec.ts | 407 ++ .../services/document-management.service.ts | 834 +++ .../services/error-handler.service.spec.ts | 181 + .../core/services/error-handler.service.ts | 264 + .../services/field-action.service.spec.ts | 154 + .../src/core/services/field-action.service.ts | 454 ++ .../services/file-management.service.spec.ts | 465 ++ .../core/services/file-management.service.ts | 560 ++ packages/ui/src/core/services/index.ts | 22 + .../services/initialization.service.spec.ts | 340 ++ .../core/services/initialization.service.ts | 436 ++ .../mapping-expression.service.spec.ts | 226 + .../services/mapping-expression.service.ts | 437 ++ .../mapping-management.service.spec.ts | 386 ++ .../services/mapping-management.service.ts | 704 +++ .../services/mapping-preview.service.spec.ts | 84 + .../core/services/mapping-preview.service.ts | 236 + .../ui/src/core/utils/common-util.spec.ts | 56 + packages/ui/src/core/utils/common-util.ts | 229 + .../core/utils/document-inspection-util.ts | 182 + packages/ui/src/core/utils/guid.ts | 31 + packages/ui/src/core/utils/index.ts | 22 + .../ui/src/core/utils/lookup-table-util.ts | 200 + .../core/utils/mapping-digest-util.spec.ts | 26 + .../ui/src/core/utils/mapping-digest-util.ts | 49 + .../src/core/utils/mapping-serializer.spec.ts | 1195 ++++ .../ui/src/core/utils/mapping-serializer.ts | 1271 +++++ packages/ui/src/core/utils/mapping-util.ts | 353 ++ packages/ui/src/impl/Atlasmap.stories.tsx | 182 + packages/ui/src/impl/Atlasmap.tsx | 456 ++ packages/ui/src/impl/AtlasmapProvider.tsx | 721 +++ packages/ui/src/impl/dialogs/index.ts | 36 + .../ui/src/impl/dialogs/useAboutDialog.tsx | 53 + .../dialogs/useCaptureDocumentIDToast.tsx | 71 + .../dialogs/useChangeDocumentNameDialog.tsx | 62 + .../impl/dialogs/useConfirmationDialog.tsx | 50 + .../ui/src/impl/dialogs/useConstantDialog.tsx | 103 + .../src/impl/dialogs/useCustomClassDialog.tsx | 80 + .../impl/dialogs/useDeleteConstantDialog.tsx | 37 + .../impl/dialogs/useDeleteDocumentDialog.tsx | 37 + .../impl/dialogs/useDeleteMappingDialog.tsx | 42 + .../impl/dialogs/useDeletePropertyDialog.tsx | 39 + .../useEditMappingEnumerationDialog.tsx | 78 + .../dialogs/useExportADMArchiveDialog.tsx | 40 + .../dialogs/useImportADMArchiveDialog.tsx | 37 + .../impl/dialogs/useImportDocumentDialog.tsx | 94 + .../src/impl/dialogs/useNamespaceDialog.tsx | 64 + .../src/impl/dialogs/useParametersDialog.tsx | 65 + .../ui/src/impl/dialogs/usePropertyDialog.tsx | 107 + .../dialogs/useRemoveMappedFieldDialog.tsx | 35 + .../impl/dialogs/useResetAtlasmapDialog.tsx | 33 + .../useSpecifyInstanceSchemaDialog.tsx | 103 + .../dialogs/useToggleExpressionModeDialog.tsx | 40 + packages/ui/src/impl/index.ts | 19 + packages/ui/src/impl/reducers/data.ts | 93 + packages/ui/src/impl/reducers/index.ts | 17 + .../ui/src/impl/reducers/notifications.ts | 74 + packages/ui/src/impl/toolbarItems.module.css | 3 + .../ui/src/impl/toolbarItems.module.css.d.ts | 5 + packages/ui/src/impl/toolbarItems.tsx | 480 ++ packages/ui/src/impl/useAtlasmapDialogs.tsx | 389 ++ packages/ui/src/impl/useContextToolbar.tsx | 236 + packages/ui/src/impl/useSidebar.tsx | 233 + packages/ui/src/impl/utils/document.ts | 319 ++ packages/ui/src/impl/utils/expression.ts | 129 + packages/ui/src/impl/utils/field.ts | 357 ++ packages/ui/src/impl/utils/index.ts | 21 + packages/ui/src/impl/utils/toolbar.ts | 116 + packages/ui/src/impl/utils/ui.ts | 706 +++ packages/ui/src/impl/utils/useToggle.ts | 33 + packages/ui/src/main.tsx | 8 + packages/ui/src/stories/decorators.tsx | 27 + packages/ui/src/stories/fromJava.ts | 173 + packages/ui/src/stories/fromJson.ts | 145 + packages/ui/src/stories/fromXML.ts | 163 + packages/ui/src/stories/htmlKnob.ts | 21 + packages/ui/src/stories/sampleData.ts | 1111 ++++ packages/ui/tsconfig.cjs.json | 9 + packages/ui/tsconfig.esm.json | 34 + packages/ui/tsconfig.json | 31 + packages/ui/tsconfig.node.json | 10 + packages/ui/vite.config.js | 15 + yarn.lock | 4940 +++++++++++++++++ 353 files changed, 42618 insertions(+) create mode 100644 .gitignore create mode 100644 package.json create mode 100644 packages/ui/index.html create mode 100644 packages/ui/package.json create mode 100644 packages/ui/src/Layout/ContextToolbar.stories.tsx create mode 100644 packages/ui/src/Layout/ContextToolbar.tsx create mode 100644 packages/ui/src/Layout/ExpressionToolbar.tsx create mode 100644 packages/ui/src/Layout/MainContent.module.css create mode 100644 packages/ui/src/Layout/MainContent.module.css.d.ts create mode 100644 packages/ui/src/Layout/MainContent.stories.tsx create mode 100644 packages/ui/src/Layout/MainContent.tsx create mode 100644 packages/ui/src/Layout/MainLayout.module.css create mode 100644 packages/ui/src/Layout/MainLayout.module.css.d.ts create mode 100644 packages/ui/src/Layout/MainLayout.stories.tsx create mode 100644 packages/ui/src/Layout/MainLayout.tsx create mode 100644 packages/ui/src/Layout/MappingDetailsSidebar.module.css create mode 100644 packages/ui/src/Layout/MappingDetailsSidebar.module.css.d.ts create mode 100644 packages/ui/src/Layout/MappingDetailsSidebar.stories.tsx create mode 100644 packages/ui/src/Layout/MappingDetailsSidebar.tsx create mode 100644 packages/ui/src/Layout/Sidebar.module.css create mode 100644 packages/ui/src/Layout/Sidebar.module.css.d.ts create mode 100644 packages/ui/src/Layout/Sidebar.stories.tsx create mode 100644 packages/ui/src/Layout/Sidebar.tsx create mode 100644 packages/ui/src/Layout/Toolbar.module.css create mode 100644 packages/ui/src/Layout/Toolbar.module.css.d.ts create mode 100644 packages/ui/src/Layout/index.ts create mode 100644 packages/ui/src/UI/Actions.module.css create mode 100644 packages/ui/src/UI/Actions.module.css.d.ts create mode 100644 packages/ui/src/UI/Actions.tsx create mode 100644 packages/ui/src/UI/AddFieldTypeahead.module.css create mode 100644 packages/ui/src/UI/AddFieldTypeahead.module.css.d.ts create mode 100644 packages/ui/src/UI/AddFieldTypeahead.stories.tsx create mode 100644 packages/ui/src/UI/AddFieldTypeahead.tsx create mode 100644 packages/ui/src/UI/AutoDropdown.tsx create mode 100644 packages/ui/src/UI/Canvas/0.Canvas.stories.mdx create mode 100644 packages/ui/src/UI/Canvas/1.HTMLObject.stories.mdx create mode 100644 packages/ui/src/UI/Canvas/2.Arc.stories.mdx create mode 100644 packages/ui/src/UI/Canvas/3.NodesArc.stories.mdx create mode 100644 packages/ui/src/UI/Canvas/Arc.module.css create mode 100644 packages/ui/src/UI/Canvas/Arc.module.css.d.ts create mode 100644 packages/ui/src/UI/Canvas/Arc.stories.tsx create mode 100644 packages/ui/src/UI/Canvas/Arc.tsx create mode 100644 packages/ui/src/UI/Canvas/ArcEdge.tsx create mode 100644 packages/ui/src/UI/Canvas/Canvas.module.css create mode 100644 packages/ui/src/UI/Canvas/Canvas.module.css.d.ts create mode 100644 packages/ui/src/UI/Canvas/Canvas.stories.tsx create mode 100644 packages/ui/src/UI/Canvas/Canvas.tsx create mode 100644 packages/ui/src/UI/Canvas/CanvasContext.tsx create mode 100644 packages/ui/src/UI/Canvas/CanvasTransforms.tsx create mode 100644 packages/ui/src/UI/Canvas/HTMLObject.module.css create mode 100644 packages/ui/src/UI/Canvas/HTMLObject.module.css.d.ts create mode 100644 packages/ui/src/UI/Canvas/HTMLObject.stories.tsx create mode 100644 packages/ui/src/UI/Canvas/HTMLObject.tsx create mode 100644 packages/ui/src/UI/Canvas/NodeRef.tsx create mode 100644 packages/ui/src/UI/Canvas/NodeRefProvider.tsx create mode 100644 packages/ui/src/UI/Canvas/NodesArc.stories.tsx create mode 100644 packages/ui/src/UI/Canvas/NodesArc.tsx create mode 100644 packages/ui/src/UI/Canvas/PrintNodeRef.tsx create mode 100644 packages/ui/src/UI/Canvas/canvasBg.png create mode 100644 packages/ui/src/UI/Canvas/index.ts create mode 100644 packages/ui/src/UI/Canvas/models.ts create mode 100644 packages/ui/src/UI/Canvas/useBoundingCanvasRect.ts create mode 100644 packages/ui/src/UI/ColumnMapper/Column.module.css create mode 100644 packages/ui/src/UI/ColumnMapper/Column.module.css.d.ts create mode 100644 packages/ui/src/UI/ColumnMapper/Column.spec.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/Column.stories.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/Column.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnBody.module.css create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnBody.module.css.d.ts create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnBody.spec.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnBody.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css.d.ts create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnHeader.spec.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnHeader.stories.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnHeader.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css.d.ts create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnMapper.spec.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnMapper.stories.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/ColumnMapper.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/Columns.module.css create mode 100644 packages/ui/src/UI/ColumnMapper/Columns.module.css.d.ts create mode 100644 packages/ui/src/UI/ColumnMapper/Columns.spec.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/Columns.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.spec.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.stories.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.tsx create mode 100644 packages/ui/src/UI/ColumnMapper/index.stories.mdx create mode 100644 packages/ui/src/UI/ColumnMapper/index.ts create mode 100644 packages/ui/src/UI/ConditionalExpressionInput.module.css create mode 100644 packages/ui/src/UI/ConditionalExpressionInput.module.css.d.ts create mode 100644 packages/ui/src/UI/ConditionalExpressionInput.tsx create mode 100644 packages/ui/src/UI/DelayedBoolean.tsx create mode 100644 packages/ui/src/UI/Document.module.css create mode 100644 packages/ui/src/UI/Document.module.css.d.ts create mode 100644 packages/ui/src/UI/Document.stories.mdx create mode 100644 packages/ui/src/UI/Document.stories.tsx create mode 100644 packages/ui/src/UI/Document.tsx create mode 100644 packages/ui/src/UI/DocumentActions.tsx create mode 100644 packages/ui/src/UI/DocumentField.module.css create mode 100644 packages/ui/src/UI/DocumentField.module.css.d.ts create mode 100644 packages/ui/src/UI/DocumentField.tsx create mode 100644 packages/ui/src/UI/DocumentFieldPreview.module.css create mode 100644 packages/ui/src/UI/DocumentFieldPreview.module.css.d.ts create mode 100644 packages/ui/src/UI/DocumentFieldPreview.tsx create mode 100644 packages/ui/src/UI/DocumentFieldPreviewResults.module.css create mode 100644 packages/ui/src/UI/DocumentFieldPreviewResults.module.css.d.ts create mode 100644 packages/ui/src/UI/DocumentFieldPreviewResults.tsx create mode 100644 packages/ui/src/UI/DocumentFooter.module.css create mode 100644 packages/ui/src/UI/DocumentFooter.module.css.d.ts create mode 100644 packages/ui/src/UI/DocumentFooter.tsx create mode 100644 packages/ui/src/UI/DocumentGroup.module.css create mode 100644 packages/ui/src/UI/DocumentGroup.module.css.d.ts create mode 100644 packages/ui/src/UI/DocumentGroup.tsx create mode 100644 packages/ui/src/UI/ExpressionContent.stories.tsx create mode 100644 packages/ui/src/UI/ExpressionContent.tsx create mode 100644 packages/ui/src/UI/ExpressionEnumSelect.module.css create mode 100644 packages/ui/src/UI/ExpressionEnumSelect.module.css.d.ts create mode 100644 packages/ui/src/UI/ExpressionEnumSelect.tsx create mode 100644 packages/ui/src/UI/ExpressionFieldSearch.module.css create mode 100644 packages/ui/src/UI/ExpressionFieldSearch.module.css.d.ts create mode 100644 packages/ui/src/UI/ExpressionFieldSearch.tsx create mode 100644 packages/ui/src/UI/Loading.tsx create mode 100644 packages/ui/src/UI/MappingField.module.css create mode 100644 packages/ui/src/UI/MappingField.module.css.d.ts create mode 100644 packages/ui/src/UI/MappingField.tsx create mode 100644 packages/ui/src/UI/MappingFields.module.css create mode 100644 packages/ui/src/UI/MappingFields.module.css.d.ts create mode 100644 packages/ui/src/UI/MappingFields.tsx create mode 100644 packages/ui/src/UI/MappingTransformation.module.css create mode 100644 packages/ui/src/UI/MappingTransformation.module.css.d.ts create mode 100644 packages/ui/src/UI/MappingTransformation.spec.tsx create mode 100644 packages/ui/src/UI/MappingTransformation.stories.tsx create mode 100644 packages/ui/src/UI/MappingTransformation.tsx create mode 100644 packages/ui/src/UI/TimedToast.tsx create mode 100644 packages/ui/src/UI/Tree/Tree.module.css create mode 100644 packages/ui/src/UI/Tree/Tree.module.css.d.ts create mode 100644 packages/ui/src/UI/Tree/Tree.stories.mdx create mode 100644 packages/ui/src/UI/Tree/Tree.stories.tsx create mode 100644 packages/ui/src/UI/Tree/Tree.tsx create mode 100644 packages/ui/src/UI/Tree/TreeFocusProvider.tsx create mode 100644 packages/ui/src/UI/Tree/TreeGroup.module.css create mode 100644 packages/ui/src/UI/Tree/TreeGroup.module.css.d.ts create mode 100644 packages/ui/src/UI/Tree/TreeGroup.tsx create mode 100644 packages/ui/src/UI/Tree/TreeItem.tsx create mode 100644 packages/ui/src/UI/Tree/index.ts create mode 100644 packages/ui/src/UI/TruncatedString.module.css create mode 100644 packages/ui/src/UI/TruncatedString.module.css.d.ts create mode 100644 packages/ui/src/UI/TruncatedString.tsx create mode 100644 packages/ui/src/UI/dialogs/AboutDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/ChangeDocumentNameDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/ConfirmationDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/ConstantDialog.stories.tsx create mode 100644 packages/ui/src/UI/dialogs/ConstantDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/CustomClassDialog.stories.tsx create mode 100644 packages/ui/src/UI/dialogs/CustomClassDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/ExportCatalogDialog.stories.tsx create mode 100644 packages/ui/src/UI/dialogs/ExportCatalogDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/LookupTableDialog.module.css create mode 100644 packages/ui/src/UI/dialogs/LookupTableDialog.module.css.d.ts create mode 100644 packages/ui/src/UI/dialogs/LookupTableDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/NamespaceDialog.stories.tsx create mode 100644 packages/ui/src/UI/dialogs/NamespaceDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/ParametersDialog.stories.tsx create mode 100644 packages/ui/src/UI/dialogs/ParametersDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/PropertyDialog.stories.tsx create mode 100644 packages/ui/src/UI/dialogs/PropertyDialog.tsx create mode 100644 packages/ui/src/UI/dialogs/index.ts create mode 100644 packages/ui/src/UI/dnd/Drag-and-drop.stories.mdx create mode 100644 packages/ui/src/UI/dnd/Drag-and-drop.stories.tsx create mode 100644 packages/ui/src/UI/dnd/DraggableField.tsx create mode 100644 packages/ui/src/UI/dnd/DraggedField.tsx create mode 100644 packages/ui/src/UI/dnd/FieldDragLayer.module.css create mode 100644 packages/ui/src/UI/dnd/FieldDragLayer.module.css.d.ts create mode 100644 packages/ui/src/UI/dnd/FieldDragLayer.tsx create mode 100644 packages/ui/src/UI/dnd/FieldDropTarget.tsx create mode 100644 packages/ui/src/UI/dnd/FieldsDndProvider.tsx create mode 100644 packages/ui/src/UI/dnd/index.ts create mode 100644 packages/ui/src/UI/dnd/models.ts create mode 100644 packages/ui/src/UI/index.ts create mode 100644 packages/ui/src/UI/useDimensions.ts create mode 100644 packages/ui/src/UI/useInputTextSelectDialog.module.css create mode 100644 packages/ui/src/UI/useInputTextSelectDialog.module.css.d.ts create mode 100644 packages/ui/src/UI/useInputTextSelectDialog.tsx create mode 100644 packages/ui/src/UI/useLatestValue.tsx create mode 100644 packages/ui/src/UI/useSingleInputDialog.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/DeleteDocumentAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/EditMappingAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/ImportAction.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Actions/index.ts create mode 100644 packages/ui/src/Views/ColumnMapperView/ColumnMapperView.spec.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/ColumnMapperView.stories.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/ConstantsTree.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/PropertiesTree.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/SourcesColumn.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/TargetsColumn.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/TraverseFields.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/TreeGroupAndNodeRefsAndDnD.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/TreeItemFieldAndNodeRefsAndDnD.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/commonActions.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/constants.ts create mode 100644 packages/ui/src/Views/ColumnMapperView/Columns/index.ts create mode 100644 packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css create mode 100644 packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts create mode 100644 packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.tsx create mode 100644 packages/ui/src/Views/ColumnMapperView/Links/index.ts create mode 100644 packages/ui/src/Views/ColumnMapperView/index.ts create mode 100644 packages/ui/src/Views/MappingDetailsView.tsx create mode 100644 packages/ui/src/Views/MappingTableView.module.css create mode 100644 packages/ui/src/Views/MappingTableView.module.css.d.ts create mode 100644 packages/ui/src/Views/MappingTableView.stories.tsx create mode 100644 packages/ui/src/Views/MappingTableView.tsx create mode 100644 packages/ui/src/Views/NamespaceTableView.module.css create mode 100644 packages/ui/src/Views/NamespaceTableView.module.css.d.ts create mode 100644 packages/ui/src/Views/NamespaceTableView.tsx create mode 100644 packages/ui/src/Views/SourceTargetView.spec.tsx create mode 100644 packages/ui/src/Views/SourceTargetView.stories.tsx create mode 100644 packages/ui/src/Views/SourceTargetView.tsx create mode 100644 packages/ui/src/Views/index.ts create mode 100644 packages/ui/src/Views/models.ts create mode 100644 packages/ui/src/core/common/config.types.ts create mode 100644 packages/ui/src/core/common/index.ts create mode 100644 packages/ui/src/core/contracts/adm-digest.ts create mode 100644 packages/ui/src/core/contracts/common.ts create mode 100644 packages/ui/src/core/contracts/documents/csv.ts create mode 100644 packages/ui/src/core/contracts/documents/index.ts create mode 100644 packages/ui/src/core/contracts/documents/java.ts create mode 100644 packages/ui/src/core/contracts/documents/json.ts create mode 100644 packages/ui/src/core/contracts/documents/xml.ts create mode 100644 packages/ui/src/core/contracts/expression.ts create mode 100644 packages/ui/src/core/contracts/field-action.ts create mode 100644 packages/ui/src/core/contracts/index.ts create mode 100644 packages/ui/src/core/contracts/mapping-preview.ts create mode 100644 packages/ui/src/core/contracts/mapping.ts create mode 100644 packages/ui/src/core/index.ts create mode 100644 packages/ui/src/core/models/config.model.spec.ts create mode 100644 packages/ui/src/core/models/config.model.ts create mode 100644 packages/ui/src/core/models/document-definition.model.spec.ts create mode 100644 packages/ui/src/core/models/document-definition.model.ts create mode 100644 packages/ui/src/core/models/error.model.spec.ts create mode 100644 packages/ui/src/core/models/error.model.ts create mode 100644 packages/ui/src/core/models/examples.ts create mode 100644 packages/ui/src/core/models/expression.model.ts create mode 100644 packages/ui/src/core/models/field-action.model.spec.ts create mode 100644 packages/ui/src/core/models/field-action.model.ts create mode 100644 packages/ui/src/core/models/field.model.spec.ts create mode 100644 packages/ui/src/core/models/field.model.ts create mode 100644 packages/ui/src/core/models/index.ts create mode 100644 packages/ui/src/core/models/inspect/csv-inspection.model.ts create mode 100644 packages/ui/src/core/models/inspect/cvs-inspection.model.spec.ts create mode 100644 packages/ui/src/core/models/inspect/document-inspection.model.ts create mode 100644 packages/ui/src/core/models/inspect/index.ts create mode 100644 packages/ui/src/core/models/inspect/java-inspection.model.ts create mode 100644 packages/ui/src/core/models/inspect/json-inspection.model.ts create mode 100644 packages/ui/src/core/models/inspect/xml-inspection.model.ts create mode 100644 packages/ui/src/core/models/lookup-table.model.spec.ts create mode 100644 packages/ui/src/core/models/lookup-table.model.ts create mode 100644 packages/ui/src/core/models/mapping-definition.model.spec.ts create mode 100644 packages/ui/src/core/models/mapping-definition.model.ts create mode 100644 packages/ui/src/core/models/mapping.model.spec.ts create mode 100644 packages/ui/src/core/models/mapping.model.ts create mode 100644 packages/ui/src/core/models/transition.model.spec.ts create mode 100644 packages/ui/src/core/models/transition.model.ts create mode 100644 packages/ui/src/core/services/document-management.service.spec.ts create mode 100644 packages/ui/src/core/services/document-management.service.ts create mode 100644 packages/ui/src/core/services/error-handler.service.spec.ts create mode 100644 packages/ui/src/core/services/error-handler.service.ts create mode 100644 packages/ui/src/core/services/field-action.service.spec.ts create mode 100644 packages/ui/src/core/services/field-action.service.ts create mode 100644 packages/ui/src/core/services/file-management.service.spec.ts create mode 100644 packages/ui/src/core/services/file-management.service.ts create mode 100644 packages/ui/src/core/services/index.ts create mode 100644 packages/ui/src/core/services/initialization.service.spec.ts create mode 100644 packages/ui/src/core/services/initialization.service.ts create mode 100644 packages/ui/src/core/services/mapping-expression.service.spec.ts create mode 100644 packages/ui/src/core/services/mapping-expression.service.ts create mode 100644 packages/ui/src/core/services/mapping-management.service.spec.ts create mode 100644 packages/ui/src/core/services/mapping-management.service.ts create mode 100644 packages/ui/src/core/services/mapping-preview.service.spec.ts create mode 100644 packages/ui/src/core/services/mapping-preview.service.ts create mode 100644 packages/ui/src/core/utils/common-util.spec.ts create mode 100644 packages/ui/src/core/utils/common-util.ts create mode 100644 packages/ui/src/core/utils/document-inspection-util.ts create mode 100644 packages/ui/src/core/utils/guid.ts create mode 100644 packages/ui/src/core/utils/index.ts create mode 100644 packages/ui/src/core/utils/lookup-table-util.ts create mode 100644 packages/ui/src/core/utils/mapping-digest-util.spec.ts create mode 100644 packages/ui/src/core/utils/mapping-digest-util.ts create mode 100644 packages/ui/src/core/utils/mapping-serializer.spec.ts create mode 100644 packages/ui/src/core/utils/mapping-serializer.ts create mode 100644 packages/ui/src/core/utils/mapping-util.ts create mode 100644 packages/ui/src/impl/Atlasmap.stories.tsx create mode 100644 packages/ui/src/impl/Atlasmap.tsx create mode 100644 packages/ui/src/impl/AtlasmapProvider.tsx create mode 100644 packages/ui/src/impl/dialogs/index.ts create mode 100644 packages/ui/src/impl/dialogs/useAboutDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useCaptureDocumentIDToast.tsx create mode 100644 packages/ui/src/impl/dialogs/useChangeDocumentNameDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useConfirmationDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useConstantDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useCustomClassDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useDeleteConstantDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useDeleteDocumentDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useDeleteMappingDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useDeletePropertyDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useEditMappingEnumerationDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useExportADMArchiveDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useImportADMArchiveDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useImportDocumentDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useNamespaceDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useParametersDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/usePropertyDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useRemoveMappedFieldDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useResetAtlasmapDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx create mode 100644 packages/ui/src/impl/dialogs/useToggleExpressionModeDialog.tsx create mode 100644 packages/ui/src/impl/index.ts create mode 100644 packages/ui/src/impl/reducers/data.ts create mode 100644 packages/ui/src/impl/reducers/index.ts create mode 100644 packages/ui/src/impl/reducers/notifications.ts create mode 100644 packages/ui/src/impl/toolbarItems.module.css create mode 100644 packages/ui/src/impl/toolbarItems.module.css.d.ts create mode 100644 packages/ui/src/impl/toolbarItems.tsx create mode 100644 packages/ui/src/impl/useAtlasmapDialogs.tsx create mode 100644 packages/ui/src/impl/useContextToolbar.tsx create mode 100644 packages/ui/src/impl/useSidebar.tsx create mode 100644 packages/ui/src/impl/utils/document.ts create mode 100644 packages/ui/src/impl/utils/expression.ts create mode 100644 packages/ui/src/impl/utils/field.ts create mode 100644 packages/ui/src/impl/utils/index.ts create mode 100644 packages/ui/src/impl/utils/toolbar.ts create mode 100644 packages/ui/src/impl/utils/ui.ts create mode 100644 packages/ui/src/impl/utils/useToggle.ts create mode 100644 packages/ui/src/main.tsx create mode 100644 packages/ui/src/stories/decorators.tsx create mode 100644 packages/ui/src/stories/fromJava.ts create mode 100644 packages/ui/src/stories/fromJson.ts create mode 100644 packages/ui/src/stories/fromXML.ts create mode 100644 packages/ui/src/stories/htmlKnob.ts create mode 100644 packages/ui/src/stories/sampleData.ts create mode 100644 packages/ui/tsconfig.cjs.json create mode 100644 packages/ui/tsconfig.esm.json create mode 100644 packages/ui/tsconfig.json create mode 100644 packages/ui/tsconfig.node.json create mode 100644 packages/ui/vite.config.js create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..a64f23ebd --- /dev/null +++ b/.gitignore @@ -0,0 +1,142 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist +lib + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# testing +**/cypress/screenshots/* +**/cypress/videos/* + +.vscode/* +.idea/* +**/*.iml + +# storybook +storybook-static diff --git a/package.json b/package.json new file mode 100644 index 000000000..0bca9f945 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "kdm", + "version": "0.0.1", + "description": "kdm", + "repository": "https://github.com/igarashitm/kdm", + "private": true, + "author": "kdm", + "license": "Apache-2.0", + "workspaces": [ + "packages/*" + ], + "scripts": { + "version": "lerna version" + }, + "engines": { + "node": ">=18.x" + }, + "devDependencies": { + "@lerna-lite/cli": "^3.0.0", + "@lerna-lite/publish": "^3.0.0", + "@lerna-lite/version": "^3.0.0", + "husky": "^8.0.3", + "lint-staged": "^15.0.0" + }, + "packageManager": "yarn@3.7.0" +} diff --git a/packages/ui/index.html b/packages/ui/index.html new file mode 100644 index 000000000..f2d4367ab --- /dev/null +++ b/packages/ui/index.html @@ -0,0 +1,17 @@ + + + + + + + kdm + + + +
+ + + diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 000000000..aac7566d0 --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,71 @@ +{ + "name": "@kdm/ui", + "version": "0.0.1", + "type": "module", + "description": "kdm", + "repository": "https://github.com/igarashitm/kdm", + "repositoryDirectory": "packages/ui", + "author": "kdm", + "publishConfig": { + "access": "public" + }, + "license": "Apache-2.0", + "types": "./lib/esm/public-api.d.ts", + "module": "./lib/esm/public-api.js", + "main": "./lib/cjs/public-api.js", + "exports": { + ".": { + "import": "./lib/esm/public-api.js", + "require": "./lib/cjs/public-api.js" + }, + "./testing": { + "import": "./lib/esm/testing-api.js", + "require": "./lib/cjs/testing-api.js" + } + }, + "files": [ + "lib" + ], + "scripts": { + "start": "vite", + "build": "tsc && vite build --config vite.config.js", + "build:lib": "yarn rimraf ./lib && yarn build:esm && yarn build:cjs", + "build:esm": "tsc --project tsconfig.esm.json && copyfiles -u 1 ./src/**/*.scss ./src/assets/** ./lib/esm", + "build:cjs": "tsc --project tsconfig.cjs.json && copyfiles -u 1 ./src/**/*.scss ./src/assets/** ./lib/cjs", + "preview": "vite preview", + "test": "jest", + "test:watch": "jest --watch", + "lint": "yarn eslint \"src/**/*.{ts,tsx}\"", + "lint:fix": "yarn lint:code --fix", + "lint:style": "yarn stylelint \"src/**/*.{css,scss}\"", + "lint:style:fix": "yarn lint:style --fix" + }, + "dependencies": { + "@patternfly/react-core": "^5.1.2", + "@patternfly/react-table": "^5.1.2", + "@patternfly/react-topology": "^5.1.0", + "d3-scale": "^4.0.2", + "d3-shape": "^3.2.0", + "fast-xml-parser": "^4.3.3", + "file-saver": "^2.0.5", + "loglevel": "^1.9.1", + "pako": "^2.1.0", + "react": "^18.2.0", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dnd-touch-backend": "^16.0.1", + "react-dom": "^18.2.0", + "react-sage": "^0.3.16", + "react-use-gesture": "^9.1.3", + "use-debounce": "^10.0.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.3.0", + "@types/jest": "^29.5.11", + "@types/node": "^20.11.6", + "@types/react-dom": "^18.2.18", + "@vitejs/plugin-react": "^4.2.1", + "typescript": "^5.3.3", + "vite": "^5.0.12" + } +} diff --git a/packages/ui/src/Layout/ContextToolbar.stories.tsx b/packages/ui/src/Layout/ContextToolbar.stories.tsx new file mode 100644 index 000000000..6f271e453 --- /dev/null +++ b/packages/ui/src/Layout/ContextToolbar.stories.tsx @@ -0,0 +1,26 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ContextToolbar } from './ContextToolbar'; +import React from 'react'; + +const obj = { + title: 'AtlasMap|Layout/ContextToolbar', +}; +export default obj; + +export const example = () => { + return icons go here; +}; diff --git a/packages/ui/src/Layout/ContextToolbar.tsx b/packages/ui/src/Layout/ContextToolbar.tsx new file mode 100644 index 000000000..d4d45f295 --- /dev/null +++ b/packages/ui/src/Layout/ContextToolbar.tsx @@ -0,0 +1,32 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent } from 'react'; +import { Toolbar, ToolbarContent } from '@patternfly/react-core'; + +import { css } from '@patternfly/react-styles'; +import styles from './Toolbar.module.css'; + +export const ContextToolbar: FunctionComponent = ({ children }) => ( + + + {children} + + +); diff --git a/packages/ui/src/Layout/ExpressionToolbar.tsx b/packages/ui/src/Layout/ExpressionToolbar.tsx new file mode 100644 index 000000000..1f86c3ac8 --- /dev/null +++ b/packages/ui/src/Layout/ExpressionToolbar.tsx @@ -0,0 +1,30 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent } from 'react'; +import { Toolbar, ToolbarContent } from '@patternfly/react-core'; + +import { css } from '@patternfly/react-styles'; +import styles from './Toolbar.module.css'; + +export const ExpressionToolbar: FunctionComponent = ({ children }) => { + return ( + + + {children} + + + ); +}; diff --git a/packages/ui/src/Layout/MainContent.module.css b/packages/ui/src/Layout/MainContent.module.css new file mode 100644 index 000000000..e912abcbf --- /dev/null +++ b/packages/ui/src/Layout/MainContent.module.css @@ -0,0 +1,8 @@ +.wrapper { + min-height: 100%; + flex: 1; + padding: 1rem; + box-sizing: border-box; + max-width: 1000; + align-self: flex-start; +} diff --git a/packages/ui/src/Layout/MainContent.module.css.d.ts b/packages/ui/src/Layout/MainContent.module.css.d.ts new file mode 100644 index 000000000..b8932fc97 --- /dev/null +++ b/packages/ui/src/Layout/MainContent.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "wrapper": string; +}; +export = styles; + diff --git a/packages/ui/src/Layout/MainContent.stories.tsx b/packages/ui/src/Layout/MainContent.stories.tsx new file mode 100644 index 000000000..4c35a6c00 --- /dev/null +++ b/packages/ui/src/Layout/MainContent.stories.tsx @@ -0,0 +1,151 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { MainContent } from './MainContent'; +import React from 'react'; +import { TextContent } from '@patternfly/react-core'; + +const obj = { + title: 'AtlasMap|Layout/MainContent', +}; +export default obj; + +export const example = () => ( + + +

This content should scroll

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+

+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum + necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et + veniam quaerat nesciunt repudiandae! +

+
+
+); diff --git a/packages/ui/src/Layout/MainContent.tsx b/packages/ui/src/Layout/MainContent.tsx new file mode 100644 index 000000000..5e879dc2b --- /dev/null +++ b/packages/ui/src/Layout/MainContent.tsx @@ -0,0 +1,23 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent } from 'react'; +import styles from './MainContent.module.css'; + +export const MainContent: FunctionComponent = ({ children }) => ( +
+ {children} +
+); diff --git a/packages/ui/src/Layout/MainLayout.module.css b/packages/ui/src/Layout/MainLayout.module.css new file mode 100644 index 000000000..611206495 --- /dev/null +++ b/packages/ui/src/Layout/MainLayout.module.css @@ -0,0 +1,9 @@ +.view { + background: #fff; +} +.view .pf-topology-container { + overflow: hidden; +} +.view .pf-topology-content { + overflow: auto; +} diff --git a/packages/ui/src/Layout/MainLayout.module.css.d.ts b/packages/ui/src/Layout/MainLayout.module.css.d.ts new file mode 100644 index 000000000..0b14d2df0 --- /dev/null +++ b/packages/ui/src/Layout/MainLayout.module.css.d.ts @@ -0,0 +1,7 @@ +declare const styles: { + readonly "view": string; + readonly "pf-topology-container": string; + readonly "pf-topology-content": string; +}; +export = styles; + diff --git a/packages/ui/src/Layout/MainLayout.stories.tsx b/packages/ui/src/Layout/MainLayout.stories.tsx new file mode 100644 index 000000000..de611d756 --- /dev/null +++ b/packages/ui/src/Layout/MainLayout.stories.tsx @@ -0,0 +1,41 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { MainLayout } from './MainLayout'; +import React from 'react'; +import { boolean } from '@storybook/addon-knobs'; + +const obj = { + title: 'AtlasMap|Layout/MainLayout', +}; +export default obj; + +export const example = () => ( + context toolbar} + expressionToolbar={
view toolbar
} + controlBar={
canvas bar
} + showSidebar={boolean('showSidebar', true)} + renderSidebar={() =>
a sidebar
} + > +
+ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias + tenetur veritatis dolore perferendis dicta excepturi illum necessitatibus + eos accusantium ipsum. Aliquid a doloribus libero nemo et veniam quaerat + nesciunt repudiandae! +
+
+); diff --git a/packages/ui/src/Layout/MainLayout.tsx b/packages/ui/src/Layout/MainLayout.tsx new file mode 100644 index 000000000..a9f8933d2 --- /dev/null +++ b/packages/ui/src/Layout/MainLayout.tsx @@ -0,0 +1,70 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent, ReactElement, ReactNode, memo } from 'react'; +import { Stack, StackItem } from '@patternfly/react-core'; + +import { Loading } from '../UI'; +import { Sidebar } from './Sidebar'; +import styles from './MainLayout.module.css'; + +export interface IMainLayoutProps { + loading: boolean; + showSidebar: boolean; + contextToolbar?: ReactNode; + expressionToolbar?: ReactNode; + controlBar?: ReactNode; + renderSidebar: () => ReactElement; +} + +export const MainLayout: FunctionComponent = memo( + function MainLayout({ + loading, + showSidebar, + renderSidebar, + contextToolbar, + expressionToolbar, + controlBar, + children, + }) { + const sideBar = {renderSidebar}; + const containerClasses = + 'pf-topology-container' + + `${sideBar ? ' pf-topology-container__with-sidebar' : ''}` + + `${showSidebar ? ' pf-topology-container__with-sidebar--open' : ''}`; + + return loading ? ( + + ) : ( + + {contextToolbar && ( + {contextToolbar} + )} + {expressionToolbar && ( + {expressionToolbar} + )} + +
+ {children} + {controlBar && ( + {controlBar} + )} +
+ {sideBar} +
+
+ ); + }, +); diff --git a/packages/ui/src/Layout/MappingDetailsSidebar.module.css b/packages/ui/src/Layout/MappingDetailsSidebar.module.css new file mode 100644 index 000000000..c783a6a16 --- /dev/null +++ b/packages/ui/src/Layout/MappingDetailsSidebar.module.css @@ -0,0 +1,6 @@ +.content { + box-sizing: "border-box"; + height: "100%"; + width: "100%"; + overflow: "auto"; +} diff --git a/packages/ui/src/Layout/MappingDetailsSidebar.module.css.d.ts b/packages/ui/src/Layout/MappingDetailsSidebar.module.css.d.ts new file mode 100644 index 000000000..144e657a2 --- /dev/null +++ b/packages/ui/src/Layout/MappingDetailsSidebar.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "content": string; +}; +export = styles; + diff --git a/packages/ui/src/Layout/MappingDetailsSidebar.stories.tsx b/packages/ui/src/Layout/MappingDetailsSidebar.stories.tsx new file mode 100644 index 000000000..08b8fd20c --- /dev/null +++ b/packages/ui/src/Layout/MappingDetailsSidebar.stories.tsx @@ -0,0 +1,39 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { MappingDetailsSidebar } from './MappingDetailsSidebar'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'AtlasMap|Layout/MappingDetailsSidebar', +}; +export default obj; + +export const example = () => ( + { + return false; + }} + > + Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos + incidunt, fugiat sequi obcaecati sapiente debitis fuga perspiciatis possimus + minima recusandae dolor minus unde nesciunt in aspernatur accusantium + laborum sit cumque? + +); diff --git a/packages/ui/src/Layout/MappingDetailsSidebar.tsx b/packages/ui/src/Layout/MappingDetailsSidebar.tsx new file mode 100644 index 000000000..aa22d992e --- /dev/null +++ b/packages/ui/src/Layout/MappingDetailsSidebar.tsx @@ -0,0 +1,92 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Stack, StackItem, Tooltip } from '@patternfly/react-core'; +import { CloseIcon, EditIcon, TrashIcon } from '@patternfly/react-icons'; +import React, { FunctionComponent } from 'react'; + +import { ColumnHeader } from '../UI'; +import styles from './MappingDetailsSidebar.module.css'; + +export interface IMappingDetailsSidebarProps { + onDelete: () => void; + onClose: () => void; + onEditEnum: (cb: any) => void; + isEnumMapping: () => boolean; +} + +export const MappingDetailsSidebar: FunctionComponent< + IMappingDetailsSidebarProps +> = ({ onDelete, onClose, onEditEnum, isEnumMapping, children }) => { + return ( + + + + + , + Edit the enumeration mappings} + entryDelay={750} + exitDelay={100} + > + + , + Remove the current mapping} + entryDelay={750} + exitDelay={100} + > + + , + ]} + /> + + + {children} + + + ); +}; diff --git a/packages/ui/src/Layout/Sidebar.module.css b/packages/ui/src/Layout/Sidebar.module.css new file mode 100644 index 000000000..6ca5b1b76 --- /dev/null +++ b/packages/ui/src/Layout/Sidebar.module.css @@ -0,0 +1,8 @@ +.sidebar { + font-size: small; + height: 100%; + overflow: auto; +} +.sidebar > .pf-topology-side-bar__body { + height: "100%", +} diff --git a/packages/ui/src/Layout/Sidebar.module.css.d.ts b/packages/ui/src/Layout/Sidebar.module.css.d.ts new file mode 100644 index 000000000..4c4f7558b --- /dev/null +++ b/packages/ui/src/Layout/Sidebar.module.css.d.ts @@ -0,0 +1,6 @@ +declare const styles: { + readonly "sidebar": string; + readonly "pf-topology-side-bar__body": string; +}; +export = styles; + diff --git a/packages/ui/src/Layout/Sidebar.stories.tsx b/packages/ui/src/Layout/Sidebar.stories.tsx new file mode 100644 index 000000000..25a009fe1 --- /dev/null +++ b/packages/ui/src/Layout/Sidebar.stories.tsx @@ -0,0 +1,38 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React from 'react'; +import { Sidebar } from './Sidebar'; +import { boolean } from '@storybook/addon-knobs'; + +const obj = { + title: 'AtlasMap|Layout/Sidebar', +}; +export default obj; + +export const example = () => ( +
+ + {() => ( +
+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos + incidunt, fugiat sequi obcaecati sapiente debitis fuga perspiciatis + possimus minima recusandae dolor minus unde nesciunt in aspernatur + accusantium laborum sit cumque? +
+ )} +
+
+); diff --git a/packages/ui/src/Layout/Sidebar.tsx b/packages/ui/src/Layout/Sidebar.tsx new file mode 100644 index 000000000..7c726ddfc --- /dev/null +++ b/packages/ui/src/Layout/Sidebar.tsx @@ -0,0 +1,34 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent, ReactElement } from 'react'; +import { TopologySideBar } from '@patternfly/react-topology'; +import styles from './Sidebar.module.css'; + +export interface ISidebarProps { + show: boolean; + children: () => ReactElement; +} + +export const Sidebar: FunctionComponent = ({ + show, + children, +}) => { + return ( + + {show && children()} + + ); +}; diff --git a/packages/ui/src/Layout/Toolbar.module.css b/packages/ui/src/Layout/Toolbar.module.css new file mode 100644 index 000000000..4764ea0f9 --- /dev/null +++ b/packages/ui/src/Layout/Toolbar.module.css @@ -0,0 +1,11 @@ +.toolbar { + --pf-c-toolbar--PaddingTop: 0px !important; + --pf-c-toolbar--PaddingBottom: 0px !important; + --pf-c-toolbar--RowGap: 0px !important; + border-bottom: 1px solid #ccc; +} + +.toolbarContent { + --pf-c-toolbar__content--PaddingLeft: 0px !important; + --pf-c-toolbar__content--PaddingRight: 0px !important; +} \ No newline at end of file diff --git a/packages/ui/src/Layout/Toolbar.module.css.d.ts b/packages/ui/src/Layout/Toolbar.module.css.d.ts new file mode 100644 index 000000000..d7e861aab --- /dev/null +++ b/packages/ui/src/Layout/Toolbar.module.css.d.ts @@ -0,0 +1,6 @@ +declare const styles: { + readonly "toolbar": string; + readonly "toolbarContent": string; +}; +export = styles; + diff --git a/packages/ui/src/Layout/index.ts b/packages/ui/src/Layout/index.ts new file mode 100644 index 000000000..f064cb3ef --- /dev/null +++ b/packages/ui/src/Layout/index.ts @@ -0,0 +1,21 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './ContextToolbar'; +export * from './ExpressionToolbar'; +export * from './MainContent'; +export * from './MainLayout'; +export * from './MappingDetailsSidebar'; +export * from './Sidebar'; diff --git a/packages/ui/src/UI/Actions.module.css b/packages/ui/src/UI/Actions.module.css new file mode 100644 index 000000000..ee29e6067 --- /dev/null +++ b/packages/ui/src/UI/Actions.module.css @@ -0,0 +1,9 @@ +.toolbar { + display: flex; + flex-flow: row no-wrap; +} + +.toolbarItem { + min-width: 1.5rem; + flex: 0 1 auto; +} diff --git a/packages/ui/src/UI/Actions.module.css.d.ts b/packages/ui/src/UI/Actions.module.css.d.ts new file mode 100644 index 000000000..4a41c2e72 --- /dev/null +++ b/packages/ui/src/UI/Actions.module.css.d.ts @@ -0,0 +1,6 @@ +declare const styles: { + readonly "toolbar": string; + readonly "toolbarItem": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/Actions.tsx b/packages/ui/src/UI/Actions.tsx new file mode 100644 index 000000000..50cd7c72e --- /dev/null +++ b/packages/ui/src/UI/Actions.tsx @@ -0,0 +1,27 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { Children, FunctionComponent } from 'react'; +import styles from './Actions.module.css'; + +export const Actions: FunctionComponent = ({ children }) => ( +
+ {Children.map(children, (c, idx) => ( +
+ {c} +
+ ))} +
+); diff --git a/packages/ui/src/UI/AddFieldTypeahead.module.css b/packages/ui/src/UI/AddFieldTypeahead.module.css new file mode 100644 index 000000000..7df437341 --- /dev/null +++ b/packages/ui/src/UI/AddFieldTypeahead.module.css @@ -0,0 +1,15 @@ +.document { + font-size: medium; + font-weight: bold; +} + +.select .pf-c-select__menu { + font-size: small; + max-width: "100%", +} + +.field { + font-size: small; + margin-left: 20, +} + diff --git a/packages/ui/src/UI/AddFieldTypeahead.module.css.d.ts b/packages/ui/src/UI/AddFieldTypeahead.module.css.d.ts new file mode 100644 index 000000000..d84a087f7 --- /dev/null +++ b/packages/ui/src/UI/AddFieldTypeahead.module.css.d.ts @@ -0,0 +1,8 @@ +declare const styles: { + readonly "document": string; + readonly "select": string; + readonly "pf-c-select__menu": string; + readonly "field": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/AddFieldTypeahead.stories.tsx b/packages/ui/src/UI/AddFieldTypeahead.stories.tsx new file mode 100644 index 000000000..ae0b5303f --- /dev/null +++ b/packages/ui/src/UI/AddFieldTypeahead.stories.tsx @@ -0,0 +1,68 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AddFieldTypeahead, + IAddFieldTypeaheadField, +} from './AddFieldTypeahead'; + +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'UI|Mapping Details/Add field typeahead', +}; +export default obj; + +const onAddAction = action('onAdd'); + +const fields: IAddFieldTypeaheadField[] = [ + { group: 'Foo group', label: 'Aaa', onAdd: onAddAction }, + { group: 'Foo group', label: 'Bbbb', onAdd: onAddAction }, + { group: 'Foo group', label: 'Cccc', onAdd: onAddAction }, + { group: 'Bar group', label: 'Aaa', onAdd: onAddAction }, + { group: 'Bar group', label: 'Bbbb', onAdd: onAddAction }, + { group: 'Bar group', label: 'Cccc', onAdd: onAddAction }, + { group: 'Baz group', label: 'Aaa', onAdd: onAddAction }, + { group: 'Baz group', label: 'Bbbb', onAdd: onAddAction }, + { group: 'Baz group', label: 'Cccc', onAdd: onAddAction }, + { + group: 'Stretch group', + label: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Reprehenderit expedita animi facere optio sit eaque, aut numquam, asperiores ratione earum natus iste in. Nemo cupiditate praesentium, amet accusamus impedit iure.', + onAdd: onAddAction, + }, + { + group: 'Stretch group', + label: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Reprehenderit expedita animi facere optio sit eaque, aut numquam, asperiores ratione earum natus iste in. Nemo cupiditate praesentium, amet accusamus impedit iure.', + onAdd: onAddAction, + }, + { + group: 'Stretch group', + label: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Reprehenderit expedita animi facere optio sit eaque, aut numquam, asperiores ratione earum natus iste in. Nemo cupiditate praesentium, amet accusamus impedit iure.', + onAdd: onAddAction, + }, +]; + +export const example = () => ( + +); diff --git a/packages/ui/src/UI/AddFieldTypeahead.tsx b/packages/ui/src/UI/AddFieldTypeahead.tsx new file mode 100644 index 000000000..57408ff7e --- /dev/null +++ b/packages/ui/src/UI/AddFieldTypeahead.tsx @@ -0,0 +1,114 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + FormSelect, + FormSelectOption, + FormSelectOptionGroup, +} from '@patternfly/react-core'; +import React, { FunctionComponent, ReactElement, useCallback } from 'react'; + +import styles from './AddFieldTypeahead.module.css'; + +export interface IAddFieldTypeaheadField { + label: string; + group: string; + onAdd: () => void; +} + +export interface IAddFieldTypeaheadProps { + fields: IAddFieldTypeaheadField[]; + ariaLabelTypeAhead: string; + placeholderText: string; + isSource: boolean; +} + +export const AddFieldTypeahead: FunctionComponent = ({ + fields, + ariaLabelTypeAhead, + placeholderText, + isSource, +}) => { + const renderOptions = ( + fields: IAddFieldTypeaheadField[], + placeholderField: IAddFieldTypeaheadField, + ) => { + fields.unshift(placeholderField); + const groups = fields.reduce<{ [group: string]: ReactElement[] }>( + (groups, f) => { + const optValue = f.group + '\\' + f.label; + groups[f.group] = [ + ...(groups[f.group] || []), + + {f.label} + , + ]; + return groups; + }, + {}, + ); + return Object.entries(groups).map( + ([groupName, elements]) => ( + + {elements} + + ), + ); + }; + + const onChange = useCallback( + (value: string, _e: React.FormEvent) => { + const valueComps = value.split('\\'); + const selField = fields.find( + (f) => f.label === valueComps[1] && f.group === valueComps[0], + ); + if (selField) { + (selField as IAddFieldTypeaheadField).onAdd(); + } + }, + [fields], + ); + + const placeholderField: IAddFieldTypeaheadField = { + label: placeholderText, + group: '', + onAdd: () => void {}, + }; + + return ( +
+ + {renderOptions(fields, placeholderField)} + +
+ ); +}; diff --git a/packages/ui/src/UI/AutoDropdown.tsx b/packages/ui/src/UI/AutoDropdown.tsx new file mode 100644 index 000000000..8f267d4b2 --- /dev/null +++ b/packages/ui/src/UI/AutoDropdown.tsx @@ -0,0 +1,40 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Dropdown, DropdownProps } from '@patternfly/react-core'; +import React, { FunctionComponent, ReactElement } from 'react'; + +import { useToggle } from '../impl/utils'; + +export interface IAutoDropdown + extends Omit, 'toggle'> { + toggle: (props: { isOpen: boolean; toggleOpen: () => void }) => ReactElement; +} + +export const AutoDropdown: FunctionComponent = ({ + toggle, + ...props +}) => { + const { state: isOpen, toggle: toggleOpen } = useToggle(false); + + return ( + + ); +}; diff --git a/packages/ui/src/UI/Canvas/0.Canvas.stories.mdx b/packages/ui/src/UI/Canvas/0.Canvas.stories.mdx new file mode 100644 index 000000000..9923c65ef --- /dev/null +++ b/packages/ui/src/UI/Canvas/0.Canvas.stories.mdx @@ -0,0 +1,43 @@ +import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; +import { Canvas, CanvasProvider } from "."; +import * as stories from "./Canvas.stories.tsx"; + + + +# Canvas + +Renders a resizable SVG which allows panning and zooming the content. Try dragging around the example, or scrolling +mouse wheel. + +{stories.example()} + +A `Canvas` component must be used inside a `CanvasProvider` component. If `width` or `height` are not provided to the +`CanvasProvider`, they will be automatically determined. + +## CanvasProvider props + + + +## Canvas props + +Same as the `svg` component. + +## Stories + +### With pan/zoom disabled. + +{stories.panZoomDisabled()} + +### With pan/zoom enabled + +{stories.panZoomEnabled()} + +### With a custom initial zoom and pan + +{stories.initialZoomAndPan()} + +### Automatically sized + +In this example, a white circle should be visible sitting on the bottom right corner of a red square. + +{stories.automaticallySized()} diff --git a/packages/ui/src/UI/Canvas/1.HTMLObject.stories.mdx b/packages/ui/src/UI/Canvas/1.HTMLObject.stories.mdx new file mode 100644 index 000000000..292a1fd37 --- /dev/null +++ b/packages/ui/src/UI/Canvas/1.HTMLObject.stories.mdx @@ -0,0 +1,16 @@ +import { Meta, Props } from "@storybook/addon-docs/blocks"; +import LinkTo from "@storybook/addon-links/react"; +import { example } from "./HTMLObject.stories.tsx"; +import { HTMLObject } from "."; + + + +# HTMLObject + +A component to embed any HTML element inside a Canvas component. + +
{example()}
+ +## HTMLObject Props + + diff --git a/packages/ui/src/UI/Canvas/2.Arc.stories.mdx b/packages/ui/src/UI/Canvas/2.Arc.stories.mdx new file mode 100644 index 000000000..16e2c100f --- /dev/null +++ b/packages/ui/src/UI/Canvas/2.Arc.stories.mdx @@ -0,0 +1,26 @@ +import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; +import LinkTo from "@storybook/addon-links/react"; +import * as stories from "./Arc.stories.tsx"; +import { Arc } from "."; + + + +# Arc + +Elements rendered inside a Canvas can be linked together using a +`Arc`. + +A `Arc` is rendered as an arch between a start and and end point, specified as SVG coordinates. The width and the +color of the arch can be customized. + +{stories.example()} + +## Arc Props + + + +## Stories + +### Multiple Arcs with custom width and color + +{stories.customWidthAndColor()} diff --git a/packages/ui/src/UI/Canvas/3.NodesArc.stories.mdx b/packages/ui/src/UI/Canvas/3.NodesArc.stories.mdx new file mode 100644 index 000000000..6e82c3706 --- /dev/null +++ b/packages/ui/src/UI/Canvas/3.NodesArc.stories.mdx @@ -0,0 +1,52 @@ +import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; +import LinkTo from "@storybook/addon-links/react"; +import * as stories from "./NodesArc.stories.tsx"; +import { NodeRef, NodesArc } from "."; + + + +# NodesArc + +It's possible to create Arcs between elements without knowing the +start and end coordinates beforehand using `NodesArc` and `NodeRef`. + +This enables the possibility to move elements inside a `Canvas` programmatically without having to deal with coordinates +change. For example, nodes could be animated: + +{stories.example()} + +## NodesArc Props + + + +## NodeRef Props + + + +## Stories + +### Multiple links with custom width and color + +{stories.customWidthAndColor()} + +### SVG elements coordinates can be automatically detected + +{stories.svgElementCoordinates()} + +### HTML elements coordinates can be automatically detected + + + {stories.htmlElementCoordinates()} + + +### Nested HTML elements coordinates can be automatically detected + + + {stories.nestedHtmlElementCoordinates()} + + +### HTML elements coordinates can be automatically detected + + + {stories.linksBetweenDifferentHtmlElements()} + diff --git a/packages/ui/src/UI/Canvas/Arc.module.css b/packages/ui/src/UI/Canvas/Arc.module.css new file mode 100644 index 000000000..cd9df37a3 --- /dev/null +++ b/packages/ui/src/UI/Canvas/Arc.module.css @@ -0,0 +1,3 @@ +.clickable { + cursor: pointer; +} diff --git a/packages/ui/src/UI/Canvas/Arc.module.css.d.ts b/packages/ui/src/UI/Canvas/Arc.module.css.d.ts new file mode 100644 index 000000000..4cfa81e39 --- /dev/null +++ b/packages/ui/src/UI/Canvas/Arc.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "clickable": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/Canvas/Arc.stories.tsx b/packages/ui/src/UI/Canvas/Arc.stories.tsx new file mode 100644 index 000000000..3f07e1bbd --- /dev/null +++ b/packages/ui/src/UI/Canvas/Arc.stories.tsx @@ -0,0 +1,57 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Arc } from './Arc'; +import { Canvas } from './Canvas'; +import { CanvasProvider } from './CanvasContext'; +import React from 'react'; + +const obj = { + title: 'Canvas', + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( + + + + + + + +); + +export const customWidthAndColor = () => ( + + + + + + + + + +); diff --git a/packages/ui/src/UI/Canvas/Arc.tsx b/packages/ui/src/UI/Canvas/Arc.tsx new file mode 100644 index 000000000..46cdf0964 --- /dev/null +++ b/packages/ui/src/UI/Canvas/Arc.tsx @@ -0,0 +1,95 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent, SVGAttributes, useMemo } from 'react'; +import { linkHorizontal, linkVertical } from 'd3-shape'; + +import { Coords } from './models'; +import { css } from '@patternfly/react-styles'; +import styles from './Arc.module.css'; +import { useToggle } from '../../impl/utils'; + +export interface IArcProps extends Omit, 'end'> { + start: Coords; + end: Coords; + startSideSize?: number; + endSideSize?: number; + type?: 'horizontal' | 'vertical'; + strokeWidth?: number; + color?: string; + hoveredColor?: string; + sideStrokeWidth?: number; +} + +export const Arc: FunctionComponent = ({ + start, + end, + type = 'horizontal', + color = 'grey', + hoveredColor = color, + strokeWidth = 2, + startSideSize = strokeWidth, + endSideSize = strokeWidth, + sideStrokeWidth = 5, + className, + children, + ...props +}) => { + const { + state: hovered, + toggleOn: toggleHoverOn, + toggleOff: toggleHoverOff, + } = useToggle(false); + const s = strokeWidth; + const appliedColor = hovered ? hoveredColor : color; + + const link = useMemo( + () => + (type === 'horizontal' ? linkHorizontal : linkVertical)< + any, + { start: Coords; end: Coords }, + Coords + >() + .context(null) + .source((d) => d.start) + .target((d) => d.end) + .x((d) => d.x) + .y((d) => d.y), + [type], + ); + + const d = link({ start, end }); + + startSideSize = startSideSize / 2; + endSideSize = endSideSize / 2; + return d ? ( + + + + {children} + + ) : null; +}; diff --git a/packages/ui/src/UI/Canvas/ArcEdge.tsx b/packages/ui/src/UI/Canvas/ArcEdge.tsx new file mode 100644 index 000000000..46cff2162 --- /dev/null +++ b/packages/ui/src/UI/Canvas/ArcEdge.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent } from 'react'; + +import { Coords } from './models'; + +export interface IArcEdgeProps { + start: Coords; + end: Coords; + strokeWidth?: number; + color?: string; +} +export const ArcEdge: FunctionComponent = ({ + start, + end, + strokeWidth, + color, +}) => { + return ( + + ); +}; diff --git a/packages/ui/src/UI/Canvas/Canvas.module.css b/packages/ui/src/UI/Canvas/Canvas.module.css new file mode 100644 index 000000000..e70254a5d --- /dev/null +++ b/packages/ui/src/UI/Canvas/Canvas.module.css @@ -0,0 +1,18 @@ +.canvasWrapper { + flex: 1; + height: 100%; + overflow: hidden; +} + +.svg { + display: "block", +} + +.svg * { + transition: stroke 0.35s, stroke-width 0.15s; +} + +.panning { + background-image: url(canvasBg.png); + background-repeat: repeat; +} diff --git a/packages/ui/src/UI/Canvas/Canvas.module.css.d.ts b/packages/ui/src/UI/Canvas/Canvas.module.css.d.ts new file mode 100644 index 000000000..dcb78e88b --- /dev/null +++ b/packages/ui/src/UI/Canvas/Canvas.module.css.d.ts @@ -0,0 +1,7 @@ +declare const styles: { + readonly "canvasWrapper": string; + readonly "svg": string; + readonly "panning": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/Canvas/Canvas.stories.tsx b/packages/ui/src/UI/Canvas/Canvas.stories.tsx new file mode 100644 index 000000000..f557154e9 --- /dev/null +++ b/packages/ui/src/UI/Canvas/Canvas.stories.tsx @@ -0,0 +1,79 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Canvas, CanvasProvider } from '.'; +import React from 'react'; + +const obj = { + title: 'Canvas', + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( + + + + + + + +); + +export const panZoomDisabled = () => ( + + + + + + + +); + +export const panZoomEnabled = () => ( + + + + + + + +); + +export const initialZoomAndPan = () => ( + + + + + + + +); + +export const automaticallySized = () => ( +
+ + + + + +
+); diff --git a/packages/ui/src/UI/Canvas/Canvas.tsx b/packages/ui/src/UI/Canvas/Canvas.tsx new file mode 100644 index 000000000..b68c0e49e --- /dev/null +++ b/packages/ui/src/UI/Canvas/Canvas.tsx @@ -0,0 +1,85 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { + CSSProperties, + FunctionComponent, + SVGAttributes, + useEffect, + useMemo, +} from 'react'; +import { CanvasTransforms } from './CanvasTransforms'; +import { css } from '@patternfly/react-styles'; +import styles from './Canvas.module.css'; +import { useCanvas } from './CanvasContext'; +import { useDimensions } from '../useDimensions'; + +export interface ICanvasProps extends SVGAttributes { + isFilled?: boolean; +} + +export const Canvas: FunctionComponent = ({ + children, + className, + style, + isFilled = true, + ...props +}) => { + const { + initialWidth, + initialHeight, + setDimension, + addRedrawListener, + removeRedrawListener, + } = useCanvas(); + const [dimensionsRef, dimensions, measure] = useDimensions(); + useEffect(() => { + setDimension({ + width: dimensions.width, + height: dimensions.height, + offsetLeft: dimensions.left, + offsetTop: dimensions.top, + }); + }, [dimensions, setDimension]); + + useEffect(() => { + addRedrawListener(measure); + return () => removeRedrawListener(measure); + }, [addRedrawListener, measure, removeRedrawListener]); + + const { allowPanning, isPanning, zoom, bindCanvas } = useCanvas(); + const svgStyle = useMemo(() => { + return { + cursor: allowPanning ? (isPanning ? 'grabbing' : 'grab') : undefined, + userSelect: allowPanning && isPanning ? 'none' : 'auto', + backgroundSize: `${30 * zoom}px ${30 * zoom}px`, + width: initialWidth || '100%', + height: initialHeight || '100%', + ...style, + } as CSSProperties; + }, [allowPanning, initialHeight, initialWidth, isPanning, style, zoom]); + return ( +
+ + {children} + +
+ ); +}; diff --git a/packages/ui/src/UI/Canvas/CanvasContext.tsx b/packages/ui/src/UI/Canvas/CanvasContext.tsx new file mode 100644 index 000000000..312d04abd --- /dev/null +++ b/packages/ui/src/UI/Canvas/CanvasContext.tsx @@ -0,0 +1,227 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Coords, RectWithId, Rects } from './models'; +import { FunctionComponent, createContext, useContext } from 'react'; +import React, { + ReactElement, + useCallback, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; + +import { scaleLinear } from 'd3-scale'; +import { useGesture } from 'react-use-gesture'; + +type RedrawCallback = () => unknown; +type RedrawCallbacks = Array; + +export interface ICanvasDimension { + width: number; + height: number; + offsetTop: number; + offsetLeft: number; +} + +export interface ICanvasContext { + initialWidth?: number; + initialHeight?: number; + dimensions: ICanvasDimension; + setDimension: (dimension: ICanvasDimension) => void; + panX: number; + panY: number; + addRedrawListener: (callback: RedrawCallback) => void; + removeRedrawListener: (callback: RedrawCallback) => void; + addRect: (rect: RectWithId) => void; + removeRect: (id: string) => void; + getRects: () => Rects; + zoom: number; + updateZoom: (tick: number) => void; + resetZoom: () => void; + pan: Coords; + setPan: (pan: Coords) => void; + resetPan: () => void; + allowPanning: boolean; + isPanning: boolean; + bindCanvas: ReturnType; +} +const CanvasContext = createContext(null); + +export interface ICanvasProviderProps { + allowPanning?: boolean; + initialWidth?: number; + initialHeight?: number; + initialZoom?: number; + initialPanX?: number; + initialPanY?: number; +} +export const CanvasProvider: FunctionComponent = ({ + children, + allowPanning = false, + initialWidth = 0, + initialHeight = 0, + initialZoom = 1, + initialPanX = 0, + initialPanY = 0, +}) => { + const [canvasDimension, setCanvasDimension] = useState({ + width: 0, + height: 0, + offsetLeft: 0, + offsetTop: 0, + }); + const rects = useRef([]); + const removeRect = useCallback((id: string) => { + rects.current = rects.current.filter((r) => r.id !== id); + }, []); + const addRect = useCallback( + (rect: RectWithId) => { + removeRect(rect.id); + rects.current = [...rects.current, rect]; + }, + [removeRect], + ); + const getRects = useCallback(() => rects.current, []); + const redrawCallbacks = useRef([]); + const addRedrawListener = useCallback((cb: RedrawCallback) => { + redrawCallbacks.current = [...redrawCallbacks.current, cb]; + }, []); + const removeRedrawListener = useCallback((cb: RedrawCallback) => { + redrawCallbacks.current = redrawCallbacks.current.filter((c) => c !== cb); + }, []); + + useEffect(function effectLoop() { + let frame = requestAnimationFrame(function loop() { + frame = requestAnimationFrame(loop); + + for (let i = 0, len = redrawCallbacks.current.length; i < len; i++) { + redrawCallbacks.current[i](); + } + }); + return function cancelEffectLoop() { + cancelAnimationFrame(frame); + }; + }, []); + + const [{ x: panX, y: panY }, setPan] = useState({ + x: initialPanX, + y: initialPanY, + }); + const [zoom, setZoom] = useState(initialZoom); + + const updateZoom = useCallback( + (tick: number) => { + setZoom((currentZoom) => Math.max(0.2, Math.min(2, currentZoom + tick))); + }, + [setZoom], + ); + + const resetZoom = useCallback(() => setZoom(1), [setZoom]); + const resetPan = useCallback(() => setPan({ x: 0, y: 0 }), [setPan]); + const [isPanning, setIsPanning] = useState(false); + const bindCanvas = useGesture( + { + onDrag: ({ movement: [x, y], first, last, memo = [panX, panY] }) => { + if (first) setIsPanning(true); + if (last) setIsPanning(false); + setPan({ x: x + memo[0], y: y + memo[1] }); + return memo; + }, + onWheel: ({ delta }) => { + updateZoom(delta[1] * -0.001); + }, + }, + { + drag: { + delay: true, + }, + enabled: allowPanning, + }, + ); + + return ( + + {children} + + ); +}; + +export function useCanvas() { + const context = useContext(CanvasContext); + if (!context) { + throw new Error('A CanvasProvider wrapper is required to use this hook.'); + } + const { + dimensions: { width, height }, + zoom, + } = context; + + const xDomain = useMemo( + () => + scaleLinear() + .range([0, width]) + .domain([0, width * zoom]), + [width, zoom], + ); + const yDomain = useMemo( + () => + scaleLinear() + .range([height, 0]) + .domain([height * zoom, 0]), + [height, zoom], + ); + + return { + ...context, + xDomain, + yDomain, + }; +} + +export interface IWithCanvasProps { + children: (props: ICanvasContext) => ReactElement; +} + +export const WithCanvas: FunctionComponent = ({ + children, +}) => { + const context = useCanvas(); + return children(context); +}; diff --git a/packages/ui/src/UI/Canvas/CanvasTransforms.tsx b/packages/ui/src/UI/Canvas/CanvasTransforms.tsx new file mode 100644 index 000000000..4316c5a52 --- /dev/null +++ b/packages/ui/src/UI/Canvas/CanvasTransforms.tsx @@ -0,0 +1,36 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent } from 'react'; +import { useCanvas } from './CanvasContext'; + +export const CanvasTransforms: FunctionComponent = ({ children }) => { + const { panX, panY, zoom /* width, height, xDomain, yDomain*/ } = useCanvas(); + // const originX = width / 2; + // const originY = height / 2; + // const x = xDomain(zoom * (panX + originX) - originX); + // const y = yDomain(zoom * (panY + originY) - originY); + + return ( + + {children} + + ); +}; diff --git a/packages/ui/src/UI/Canvas/HTMLObject.module.css b/packages/ui/src/UI/Canvas/HTMLObject.module.css new file mode 100644 index 000000000..c3364ce1a --- /dev/null +++ b/packages/ui/src/UI/Canvas/HTMLObject.module.css @@ -0,0 +1,3 @@ +.foreignObject { + overflow: visible; +} diff --git a/packages/ui/src/UI/Canvas/HTMLObject.module.css.d.ts b/packages/ui/src/UI/Canvas/HTMLObject.module.css.d.ts new file mode 100644 index 000000000..f7dc69134 --- /dev/null +++ b/packages/ui/src/UI/Canvas/HTMLObject.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "foreignObject": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/Canvas/HTMLObject.stories.tsx b/packages/ui/src/UI/Canvas/HTMLObject.stories.tsx new file mode 100644 index 000000000..50ca1bf19 --- /dev/null +++ b/packages/ui/src/UI/Canvas/HTMLObject.stories.tsx @@ -0,0 +1,44 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Canvas } from './Canvas'; +import { CanvasProvider } from './CanvasContext'; +import { HTMLObject } from './HTMLObject'; +import React from 'react'; + +const obj = { + title: 'Canvas', + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( + + + + + +
+

Plain html content inside an SVG.

+

+ This is rendered with respect to SVG rules, so this element will + stay in front of the red circle. +

+ +
+
+
+
+); diff --git a/packages/ui/src/UI/Canvas/HTMLObject.tsx b/packages/ui/src/UI/Canvas/HTMLObject.tsx new file mode 100644 index 000000000..e04f4c68c --- /dev/null +++ b/packages/ui/src/UI/Canvas/HTMLObject.tsx @@ -0,0 +1,46 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { SVGProps, forwardRef } from 'react'; +import { css } from '@patternfly/react-styles'; +import styles from './HTMLObject.module.css'; + +export interface IHTMLObjectProps extends SVGProps { + width: number; + height: number; + x: number; + y: number; +} + +export const HTMLObject = forwardRef( + function HTMLObject( + { children, width, height, x, y, className, ...props }, + ref, + ) { + return ( + + {children} + + ); + }, +); diff --git a/packages/ui/src/UI/Canvas/NodeRef.tsx b/packages/ui/src/UI/Canvas/NodeRef.tsx new file mode 100644 index 000000000..0bfdc1487 --- /dev/null +++ b/packages/ui/src/UI/Canvas/NodeRef.tsx @@ -0,0 +1,49 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Children, + PropsWithChildren, + cloneElement, + forwardRef, + isValidElement, + useRef, +} from 'react'; +import { NodeRefPropsWithOptionalId, useNodeRef } from './NodeRefProvider'; + +export const NodeRef = forwardRef< + HTMLElement | SVGElement, + PropsWithChildren> +>(function NodeRef({ children, ...props }, ref) { + const node = Children.only(children); + const nodeRef = useRef(null); + + useNodeRef({ ...props, ref: nodeRef }); + + const handleRef = (el: HTMLElement) => { + if (ref) { + // @ts-ignore + // by default forwardedRef.current is readonly. Let's ignore it + ref.current = el; + } + nodeRef.current = el; + }; + + return isValidElement(node) + ? cloneElement(node, { + ref: handleRef, + }) + : null; +}); diff --git a/packages/ui/src/UI/Canvas/NodeRefProvider.tsx b/packages/ui/src/UI/Canvas/NodeRefProvider.tsx new file mode 100644 index 000000000..aa59ecbbd --- /dev/null +++ b/packages/ui/src/UI/Canvas/NodeRefProvider.tsx @@ -0,0 +1,184 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { + FunctionComponent, + MutableRefObject, + createContext, + useCallback, + useContext, + useEffect, + useRef, +} from 'react'; +import { useBoundingCanvasRect } from './useBoundingCanvasRect'; + +export interface NodeRect extends DOMRect { + clipped?: boolean; +} + +export interface NodeRefProps { + ref: MutableRefObject; + parentId?: string; + boundaryId?: string; + overrideWidth?: string; + overrideHeight?: string; +} + +export interface NodeRefPropsWithOptionalId extends NodeRefProps { + id: string | undefined | Array; +} + +export interface NodeRefPropsWithId extends NodeRefProps { + id: string; +} + +export interface NodeRefPropsWithKey extends NodeRefProps { + key: string; +} + +export interface NodeRefMap { + [id: string]: NodeRefPropsWithKey; +} + +export interface INodeRefContext { + nodes: MutableRefObject; + setRef: (props: NodeRefPropsWithId) => string; + unsetRef: ( + id: string | undefined | Array, + key: string, + ) => void; +} + +export const NodeRefContext = createContext(null); + +export const NodeRefProvider: FunctionComponent = ({ children }) => { + const nodes = useRef({}); + const setRef = ({ id, ...props }: NodeRefPropsWithId) => { + const key = `${id}-${Date.now()}`; + const ids = Array.isArray(id) ? id : [id]; + for (let index = 0; index < ids.length; index++) { + const curId = ids[index]; + if (curId) { + nodes.current[ids[index]] = { + ...props, + key, + }; + } + } + return key; + }; + const unsetRef = ( + id: string | undefined | Array, + key: string, + ) => { + const ids = Array.isArray(id) ? id : [id]; + for (let index = 0; index < ids.length; index++) { + const curId = ids[index]; + if (curId && nodes.current[curId]?.key === key) { + delete nodes.current[curId]; + } + } + }; + + return ( + + {children} + + ); +}; + +export function useNodeRef(props: NodeRefPropsWithOptionalId) { + const context = useContext(NodeRefContext); + useEffect(() => { + if (context && props.id) { + const { setRef, unsetRef } = context; + const key = setRef(props as NodeRefPropsWithId); + return () => unsetRef(props.id!, key); + } + return; + }, [context, props]); +} + +export function useNodeRect() { + const context = useContext(NodeRefContext); + const { getBoundingCanvasRect } = useBoundingCanvasRect(); + const getRect = useCallback( + (id: string): NodeRect | null => { + if (!context) { + return null; + } + const { nodes } = context; + const node = nodes.current[id]; + const element = node ? node.ref.current : undefined; + if (element) { + let dimensions = getBoundingCanvasRect(element); + if (dimensions.height === 0 && node.parentId) { + return getRect(node.parentId); + } + let boundaryRect; + if (node.boundaryId && (boundaryRect = getRect(node.boundaryId))) { + const overrideWidthRect = node.overrideWidth + ? getRect(node.overrideWidth) + : undefined; + const overrideHeightRect = node.overrideHeight + ? getRect(node.overrideHeight) + : undefined; + const width = overrideWidthRect?.width || dimensions.width; + const height = overrideHeightRect?.height || dimensions.height; + const x = Math.min( + Math.max( + overrideWidthRect?.left || dimensions.left, + boundaryRect.left, + ), + boundaryRect.width + boundaryRect.left - dimensions.width, + ); + const isXClipped = x !== (overrideWidthRect?.x || dimensions.x); + const y = Math.min( + Math.max( + overrideHeightRect?.top || dimensions.top + dimensions.height / 2, + boundaryRect.top, + ), + boundaryRect.height + boundaryRect.top, + ); + const isYClipped = + y === boundaryRect.top || + y === boundaryRect.height + boundaryRect.top; + return { + width, + height, + x, + y, + left: x, + top: y, + right: x + width, + bottom: y + height, + toJSON: () => '', + clipped: isXClipped || isYClipped, + }; + } + return dimensions; + } + return null; + }, + [context, getBoundingCanvasRect], + ); + return getRect; +} diff --git a/packages/ui/src/UI/Canvas/NodesArc.stories.tsx b/packages/ui/src/UI/Canvas/NodesArc.stories.tsx new file mode 100644 index 000000000..4369f4df0 --- /dev/null +++ b/packages/ui/src/UI/Canvas/NodesArc.stories.tsx @@ -0,0 +1,211 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Canvas, + CanvasProvider, + HTMLObject, + NodeRef, + NodeRefProvider, + NodesArc, +} from '.'; +import React, { + FunctionComponent, + createElement, + useCallback, + useState, +} from 'react'; +import { animated, useSpring } from 'react-spring'; + +import PrintNodeRef from './PrintNodeRef'; + +const obj = { + title: 'UI|Canvas/NodesArc', + includeStories: [], // or don't load this file at all + parameters: { + chromatic: { disableSnapshot: true }, + }, +}; +export default obj; + +export const example: FunctionComponent = () => + createElement(() => { + const [reverse, setReverse] = useState(false); + const onRest = useCallback(() => setReverse(!reverse), [reverse]); + // @ts-ignore + const props = useSpring({ + from: { x: 30, y: 0 }, + to: [ + { x: 250, y: 0 }, + { x: 250, y: 260 }, + { x: 30, y: 260 }, + { x: 30, y: 0 }, + ], + config: { duration: 2500 }, + onRest, + }); + return ( + + + + + + + + + + + + + + + + + + ); + }); + +export const customWidthAndColor = () => ( + + + + + + + + + + + + + + + + + +); + +export const svgElementCoordinates = () => ( + + + + + + + + + + + + +); + +export const htmlElementCoordinates = () => ( + + + + + + + + + + + +); + +export const nestedHtmlElementCoordinates = () => ( + + + + + + + + + + + + + + + +); + +export const linksBetweenDifferentHtmlElements = () => ( + + + + + +
    + +
  • item a1
  • +
    + +
  • item a2
  • +
    + +
  • item a3
  • +
    +
+
+
+ + +
    + +
  • item b1
  • +
    + +
  • item b2
  • +
    + +
  • item b3
  • +
    +
+
+
+ + + +
+
+
+); diff --git a/packages/ui/src/UI/Canvas/NodesArc.tsx b/packages/ui/src/UI/Canvas/NodesArc.tsx new file mode 100644 index 000000000..77455762a --- /dev/null +++ b/packages/ui/src/UI/Canvas/NodesArc.tsx @@ -0,0 +1,162 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Arc, IArcProps } from './Arc'; +import React, { + FunctionComponent, + useCallback, + useEffect, + useState, +} from 'react'; + +import { Coords } from './models'; +import { useCanvas } from './CanvasContext'; +import { useNodeRect } from './NodeRefProvider'; + +function leftCoords(rect: DOMRect) { + const { left, y } = rect; + return { + x: left, + y: y, + }; +} + +function rightCoords(rect: DOMRect) { + const { right, y } = rect; + return { + x: right, + y: y, + }; +} + +function topCoords(rect: DOMRect) { + const { x, top } = rect; + return { + x: x, + y: top, + }; +} + +function bottomCoords(rect: DOMRect) { + const { x, bottom } = rect; + return { + x: x, + y: bottom, + }; +} + +export interface INodesArcProps + extends Omit, 'end'>, 'type'> { + start: string; + end: string; +} + +export const NodesArc: FunctionComponent = ({ + start: startId, + end: endId, + color, + ...props +}) => { + const { addRedrawListener, removeRedrawListener } = useCanvas(); + const getRect = useNodeRect(); + const [coords, setCoords] = useState<{ + start: Coords; + end: Coords; + startSideSize: number; + endSideSize: number; + } | null>(null); + const [linkType, setLinkType] = useState<'horizontal' | 'vertical'>( + 'horizontal', + ); + + const calculateCoords = useCallback( + function calculateCoordsCb() { + const startRect = getRect(startId); + const endRect = getRect(endId); + if (startRect && endRect) { + const [smallRect, bigRect] = + startRect.width < endRect.width + ? [startRect, endRect] + : [endRect, startRect]; + const sameVerticalSpace = + (smallRect.left > bigRect.left && smallRect.left < bigRect.right) || + (smallRect.right < bigRect.right && smallRect.right > bigRect.left); + if (sameVerticalSpace) { + const [aboveId, bottomId] = + startRect.top > endRect.top ? [startId, endId] : [endId, startId]; + const start = getRect(aboveId); + const end = getRect(bottomId); + if (start && end) { + setCoords({ + start: topCoords(start), + end: bottomCoords(end), + startSideSize: start.clipped ? 0 : start.width, + endSideSize: end.clipped ? 0 : end.width, + }); + setLinkType('vertical'); + } else { + setCoords(null); + } + } else { + const [leftId, rightId] = + startRect.left > endRect.left ? [startId, endId] : [endId, startId]; + const start = getRect(leftId); + const end = getRect(rightId); + if (start && end) { + setCoords({ + start: leftCoords(start), + end: rightCoords(end), + startSideSize: start.clipped ? 0 : start.height, + endSideSize: end.clipped ? 0 : end.height, + }); + setLinkType('horizontal'); + } else { + setCoords(null); + } + } + } else { + setCoords(null); + } + }, + [endId, startId, getRect], + ); + + useEffect( + function onNodeArcRedrawCb() { + addRedrawListener(calculateCoords); + return () => { + removeRedrawListener(calculateCoords); + }; + }, + [addRedrawListener, removeRedrawListener, calculateCoords], + ); + + return coords ? ( + + ) : null; +}; diff --git a/packages/ui/src/UI/Canvas/PrintNodeRef.tsx b/packages/ui/src/UI/Canvas/PrintNodeRef.tsx new file mode 100644 index 000000000..9790f1329 --- /dev/null +++ b/packages/ui/src/UI/Canvas/PrintNodeRef.tsx @@ -0,0 +1,55 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { NodeRect, useNodeRect } from './NodeRefProvider'; +import React, { + HTMLAttributes, + forwardRef, + useCallback, + useEffect, + useState, +} from 'react'; + +import { useCanvas } from './CanvasContext'; + +const printNodeRef = forwardRef>( + function PrintNodeRef({ id, children, ...props }, ref) { + const { addRedrawListener, removeRedrawListener } = useCanvas(); + const getRect = useNodeRect(); + const [rect, setRect] = useState(null); + + const getAndSetRect = useCallback(() => { + if (id) { + const nodeRect = getRect(id); + setRect(nodeRect ? getRect(id) : null); + } + }, [getRect, id]); + + useEffect(() => { + addRedrawListener(getAndSetRect); + return () => { + removeRedrawListener(getAndSetRect); + }; + }, [addRedrawListener, removeRedrawListener, getAndSetRect]); + + return ( +
+
{JSON.stringify(rect, null, 2)}
+ {children} +
+ ); + }, +); +export default printNodeRef; diff --git a/packages/ui/src/UI/Canvas/canvasBg.png b/packages/ui/src/UI/Canvas/canvasBg.png new file mode 100644 index 0000000000000000000000000000000000000000..aab827d20eb67821557a13f1f6ffdc26fb5b7a6b GIT binary patch literal 10561 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 W_grym0wpf6O*mzJvh28L%zpun$wcS? literal 0 HcmV?d00001 diff --git a/packages/ui/src/UI/Canvas/index.ts b/packages/ui/src/UI/Canvas/index.ts new file mode 100644 index 000000000..c8ce14b36 --- /dev/null +++ b/packages/ui/src/UI/Canvas/index.ts @@ -0,0 +1,26 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './Canvas'; +export * from './CanvasContext'; +export * from './CanvasTransforms'; +export * from './HTMLObject'; +export * from './Arc'; +export * from './ArcEdge'; +export * from './models'; +export * from './NodeRef'; +export * from './NodeRefProvider'; +export * from './NodesArc'; +export * from './useBoundingCanvasRect'; diff --git a/packages/ui/src/UI/Canvas/models.ts b/packages/ui/src/UI/Canvas/models.ts new file mode 100644 index 000000000..3cdb06c61 --- /dev/null +++ b/packages/ui/src/UI/Canvas/models.ts @@ -0,0 +1,29 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export type Coords = { + x: number; + y: number; +}; +export type Rect = { + x: number; + y: number; + width: number; + height: number; +}; +export type RectWithId = { + id: string; +} & Rect; +export type Rects = Array; diff --git a/packages/ui/src/UI/Canvas/useBoundingCanvasRect.ts b/packages/ui/src/UI/Canvas/useBoundingCanvasRect.ts new file mode 100644 index 000000000..1ebc42934 --- /dev/null +++ b/packages/ui/src/UI/Canvas/useBoundingCanvasRect.ts @@ -0,0 +1,62 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { useCallback } from 'react'; +import { useCanvas } from './CanvasContext'; + +export function useBoundingCanvasRect() { + const { + xDomain, + yDomain, + dimensions: { offsetLeft, offsetTop }, + panX, + panY, + } = useCanvas(); + const convertClientX = useCallback( + (x: number) => xDomain(x - offsetLeft - panX), + [offsetLeft, panX, xDomain], + ); + const convertClientY = useCallback( + (y: number) => yDomain(y - offsetTop - panY), + [offsetTop, panY, yDomain], + ); + const convertDOMRectToCanvasRect = useCallback( + (rect: DOMRect): DOMRect => { + return { + x: convertClientX(rect.x), + y: convertClientY(rect.y), + width: xDomain(rect.width), + height: yDomain(rect.height), + top: convertClientY(rect.top), + right: convertClientX(rect.right), + bottom: convertClientY(rect.bottom), + left: convertClientX(rect.left), + } as DOMRect; + }, + [convertClientX, convertClientY, xDomain, yDomain], + ); + return { + getBoundingCanvasRect: useCallback( + (element: Element): DOMRect => { + const rect = element.getBoundingClientRect() as DOMRect; + return convertDOMRectToCanvasRect(rect); + }, + [convertDOMRectToCanvasRect], + ), + convertDOMRectToCanvasRect, + convertClientX, + convertClientY, + }; +} diff --git a/packages/ui/src/UI/ColumnMapper/Column.module.css b/packages/ui/src/UI/ColumnMapper/Column.module.css new file mode 100644 index 000000000..10083fe85 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Column.module.css @@ -0,0 +1,9 @@ +.column { + flex-flow: column nowrap; + display: flex; + min-width: 400px; + padding: 1rem; +} +.hidden { + opacity: 0, +} diff --git a/packages/ui/src/UI/ColumnMapper/Column.module.css.d.ts b/packages/ui/src/UI/ColumnMapper/Column.module.css.d.ts new file mode 100644 index 000000000..94ebc60fd --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Column.module.css.d.ts @@ -0,0 +1,6 @@ +declare const styles: { + readonly "column": string; + readonly "hidden": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ColumnMapper/Column.spec.tsx b/packages/ui/src/UI/ColumnMapper/Column.spec.tsx new file mode 100644 index 000000000..ae81c330e --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Column.spec.tsx @@ -0,0 +1,59 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import * as React from 'react'; + +import { Column } from './Column'; +import { example } from './Column.stories'; +import { render } from '@testing-library/react'; + +describe('Column tests', () => { + test('should render', async () => { + const { getByText } = render(example()); + getByText('I can scroll.'); + }); + + /* the following tests are not really meant to be unit tests since checking + * the actual rendering of the DOM is better handled in a real browser, like + * Puppeteer. But I don't like Jest's snapshots, so... + * */ + + test('should respect the parent size', async () => { + const { getByTestId } = render( + + test + , + ); + expect(getByTestId('column').style).toHaveProperty('flex', '0 0 50%'); + }); + + test('should respect the visible prop=false', async () => { + const { getByTestId } = render( + + test + , + ); + expect(getByTestId('column').className).toBe('column hidden'); + }); + + test('should respect the visible prop=true', async () => { + const { getByTestId } = render( + + test + , + ); + expect(getByTestId('column').className).toBe('column'); + }); +}); diff --git a/packages/ui/src/UI/ColumnMapper/Column.stories.tsx b/packages/ui/src/UI/ColumnMapper/Column.stories.tsx new file mode 100644 index 000000000..c1dab85be --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Column.stories.tsx @@ -0,0 +1,433 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Column, ColumnBody, SearchableColumnHeader } from '.'; +import { boolean, number } from '@storybook/addon-knobs'; + +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'ColumnMapper', + component: Column, + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( + + + +

I can scroll.

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+ +

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+ +

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+ +

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+ +

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+

+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at + deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia + officiis quis reiciendis repellendus reprehenderit sapiente sint sunt + totam vitae! +

+
+
+); diff --git a/packages/ui/src/UI/ColumnMapper/Column.tsx b/packages/ui/src/UI/ColumnMapper/Column.tsx new file mode 100644 index 000000000..880f9838d --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Column.tsx @@ -0,0 +1,44 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent, useMemo } from 'react'; +import { css } from '@patternfly/react-styles'; +import styles from './Column.module.css'; + +export interface IColumnProps { + totalColumns?: number; + visible?: boolean; +} + +export const Column: FunctionComponent = ({ + totalColumns = 1, + visible = true, + children, + ...props +}) => { + const style = useMemo( + () => ({ flex: `0 0 ${100 / totalColumns}%` }), + [totalColumns], + ); + return ( +
+ {children} +
+ ); +}; diff --git a/packages/ui/src/UI/ColumnMapper/ColumnBody.module.css b/packages/ui/src/UI/ColumnMapper/ColumnBody.module.css new file mode 100644 index 000000000..9a8a5df09 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnBody.module.css @@ -0,0 +1,23 @@ +.body { + background: var(--pf-global--BackgroundColor--150); + border: 1px solid var(--pf-global--BorderColor--100); + flex: 1; + overflow-x: visible; + overflow-y: scroll; + padding: 0 var(--pf-global--spacer--md); +} + +.body::-webkit-scrollbar { + width: 10px; + background-color: transparent; +} + +.body::-webkit-scrollbar-track { + background-color: transparent; +} + +.body::-webkit-scrollbar-thumb { + border-radius: 10px; + box-shadow: inset 0 0 6px rgba(0,0,0,.1); + background-color: rgba(200, 200, 200, 0.8); +} diff --git a/packages/ui/src/UI/ColumnMapper/ColumnBody.module.css.d.ts b/packages/ui/src/UI/ColumnMapper/ColumnBody.module.css.d.ts new file mode 100644 index 000000000..0cf2655e3 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnBody.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "body": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ColumnMapper/ColumnBody.spec.tsx b/packages/ui/src/UI/ColumnMapper/ColumnBody.spec.tsx new file mode 100644 index 000000000..6a1a77b58 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnBody.spec.tsx @@ -0,0 +1,26 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import * as React from 'react'; + +import { ColumnBody } from './ColumnBody'; +import { render } from '@testing-library/react'; + +describe('ColumnBody tests', () => { + test('should render', async () => { + const { getByText } = render(test); + getByText('test'); + }); +}); diff --git a/packages/ui/src/UI/ColumnMapper/ColumnBody.tsx b/packages/ui/src/UI/ColumnMapper/ColumnBody.tsx new file mode 100644 index 000000000..931302a7c --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnBody.tsx @@ -0,0 +1,27 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { PropsWithChildren, forwardRef } from 'react'; +import styles from './ColumnBody.module.css'; + +export const ColumnBody = forwardRef>( + function ColumnBody({ children }, ref) { + return ( +
+ {children} +
+ ); + }, +); diff --git a/packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css b/packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css new file mode 100644 index 000000000..ad161cf4d --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css @@ -0,0 +1,26 @@ +.header { + flex: 0 1 0; +} + +.plain { + background: transparent; + border: 0 none transparent; +} + +.toolbar { + background: var(--pf-global--BackgroundColor--150); + border: 1px solid var(--pf-global--BorderColor--100); + border-bottom: 0; + padding: var(--pf-global--spacer--sm) var(--pf-global--spacer--md); + box-sizing: initial; + display: flex; + flex-flow: row no-wrap; +} + +.title { + display: flex; + align-items: center; + flex: 1 0 auto; + margin-right: var(--pf-global--spacer--sm); + height: 36px; +} diff --git a/packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css.d.ts b/packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css.d.ts new file mode 100644 index 000000000..510a24257 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnHeader.module.css.d.ts @@ -0,0 +1,8 @@ +declare const styles: { + readonly "header": string; + readonly "plain": string; + readonly "toolbar": string; + readonly "title": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ColumnMapper/ColumnHeader.spec.tsx b/packages/ui/src/UI/ColumnMapper/ColumnHeader.spec.tsx new file mode 100644 index 000000000..1b148e69a --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnHeader.spec.tsx @@ -0,0 +1,24 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { example } from './ColumnHeader.stories'; +import { render } from '@testing-library/react'; + +describe('ColumnHeader tests', () => { + test('should render', async () => { + const { getByText } = render(example()); + getByText('Source'); + }); +}); diff --git a/packages/ui/src/UI/ColumnMapper/ColumnHeader.stories.tsx b/packages/ui/src/UI/ColumnMapper/ColumnHeader.stories.tsx new file mode 100644 index 000000000..ac5e26d6f --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnHeader.stories.tsx @@ -0,0 +1,43 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ColumnHeader } from '.'; +import React from 'react'; + +const obj = { + title: 'ColumnMapper', + component: ColumnHeader, + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( +
+ + +
, +
+ +
, +
+ +
, + ]} + /> + +); diff --git a/packages/ui/src/UI/ColumnMapper/ColumnHeader.tsx b/packages/ui/src/UI/ColumnMapper/ColumnHeader.tsx new file mode 100644 index 000000000..30ec674b1 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnHeader.tsx @@ -0,0 +1,49 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent, ReactElement } from 'react'; + +import { Actions } from '../Actions'; + +import { Title } from '@patternfly/react-core'; +import { css } from '@patternfly/react-styles'; +import styles from './ColumnHeader.module.css'; + +export interface IColumnHeaderProps { + title: string; + variant?: 'default' | 'plain'; + actions?: (ReactElement | null | undefined)[]; +} + +export const ColumnHeader: FunctionComponent = ({ + title, + actions, + variant, + children, +}) => { + return ( +
+
+
+ + {title} + +
+ {actions?.filter((a) => a)} +
+ {children} +
+ ); +}; diff --git a/packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css b/packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css new file mode 100644 index 000000000..7cc656947 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css @@ -0,0 +1,3 @@ +.canvas { + background-color: var(--pf-global--BackgroundColor--light-300); +} diff --git a/packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css.d.ts b/packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css.d.ts new file mode 100644 index 000000000..7a0276dfe --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnMapper.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "canvas": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ColumnMapper/ColumnMapper.spec.tsx b/packages/ui/src/UI/ColumnMapper/ColumnMapper.spec.tsx new file mode 100644 index 000000000..51c3a0279 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnMapper.spec.tsx @@ -0,0 +1,30 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { act, render } from '@testing-library/react'; +import { example } from './ColumnMapper.stories'; + +describe('ColumnMapper tests', () => { + test('should render', async () => { + const { getByText, findByTestId } = render(example()); + getByText('Source'); + getByText('Target'); + // lines are rendered after a DOM layout event + await act(async () => { + await findByTestId('Fiz:Foo'); + await findByTestId('Foo bar:Baz'); + }); + }); +}); diff --git a/packages/ui/src/UI/ColumnMapper/ColumnMapper.stories.tsx b/packages/ui/src/UI/ColumnMapper/ColumnMapper.stories.tsx new file mode 100644 index 000000000..e15ce259f --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnMapper.stories.tsx @@ -0,0 +1,306 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { AddCircleOIcon, ImportIcon } from '@patternfly/react-icons'; +import { + CanvasProvider, + Column, + ColumnBody, + ColumnMapper, + Columns, + Document, + DocumentField, + DocumentGroup, + NodeRef, + NodeRefProvider, + NodesArc, + SearchableColumnHeader, + Tree, + TreeGroup, +} from '..'; + +import { Button } from '@patternfly/react-core'; +import React from 'react'; +import { TreeItem } from '../Tree/TreeItem'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'ColumnMapper', + component: ColumnMapper, + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( + + + + + + + + , + , + ]} + /> + + + +
+ + + + + ( + + )} + > + {() => ( + <> + + ( + + )} + > + {() => ( + + + {() => ( + + )} + + + )} + + + + + {() => ( + + )} + + + + )} + + + + + + +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+
+
+
+
+
+ + + + , + , + ]} + /> + + + +
+ + + + <> + + ( + + )} + > + {() => ( + + + {() => ( + + )} + + + )} + + + + + + + + + + + + + +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+ +
lorem dolor
+
+
+
+
+
+
+
+ + +
+
+
+); diff --git a/packages/ui/src/UI/ColumnMapper/ColumnMapper.tsx b/packages/ui/src/UI/ColumnMapper/ColumnMapper.tsx new file mode 100644 index 000000000..be9f9a2ec --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/ColumnMapper.tsx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Canvas, ICanvasProps } from '../Canvas'; +import React, { FunctionComponent } from 'react'; +import { css } from '@patternfly/react-styles'; +import styles from './ColumnMapper.module.css'; + +export interface IColumnMapperProps extends ICanvasProps {} + +export const ColumnMapper: FunctionComponent = ({ + className, + children, + ...props +}) => { + return ( + + {children} + + ); +}; diff --git a/packages/ui/src/UI/ColumnMapper/Columns.module.css b/packages/ui/src/UI/ColumnMapper/Columns.module.css new file mode 100644 index 000000000..8f2095b48 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Columns.module.css @@ -0,0 +1,7 @@ +.wrapper { + width: 100%; + height: 100%; + display: flex; + flex-flow: row nowrap; + overflow: auto; +} diff --git a/packages/ui/src/UI/ColumnMapper/Columns.module.css.d.ts b/packages/ui/src/UI/ColumnMapper/Columns.module.css.d.ts new file mode 100644 index 000000000..b8932fc97 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Columns.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "wrapper": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ColumnMapper/Columns.spec.tsx b/packages/ui/src/UI/ColumnMapper/Columns.spec.tsx new file mode 100644 index 000000000..e5dcaa072 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Columns.spec.tsx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import * as React from 'react'; +import { Canvas, CanvasProvider } from '../Canvas'; + +import { Columns } from './Columns'; +import { render } from '@testing-library/react'; + +describe('Columns tests', () => { + test('should render', async () => { + const { getByText } = render( + + + test + + , + ); + getByText('test'); + }); +}); diff --git a/packages/ui/src/UI/ColumnMapper/Columns.tsx b/packages/ui/src/UI/ColumnMapper/Columns.tsx new file mode 100644 index 000000000..04cd648d7 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/Columns.tsx @@ -0,0 +1,29 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { HTMLObject, useCanvas } from '../Canvas'; +import React, { FunctionComponent } from 'react'; +import styles from './Columns.module.css'; + +export const Columns: FunctionComponent = ({ children }) => { + const { + dimensions: { width, height }, + } = useCanvas(); + return ( + +
{children}
+
+ ); +}; diff --git a/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.spec.tsx b/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.spec.tsx new file mode 100644 index 000000000..5b1e0a875 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.spec.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React from 'react'; +import { SearchableColumnHeader } from './SearchableColumnHeader'; +import { example } from './SearchableColumnHeader.stories'; +import { render } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +describe('SearchableColumnHeader tests', () => { + test('should render', async () => { + const { getByText } = render(example()); + getByText('Source'); + }); + + test('change events are propagated when typing', async () => { + const searchInputLabel = 'Search fields'; + const onSearchSpy = jest.fn(); + const { findByLabelText } = render( + , + ); + + const inputField = await findByLabelText(searchInputLabel); + + await userEvent.type(inputField, 'ABC'); + + // the onChange event should be triggered for every keystoke + expect(onSearchSpy).toHaveBeenCalledTimes(3); + }); +}); diff --git a/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.stories.tsx b/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.stories.tsx new file mode 100644 index 000000000..ff470ab30 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.stories.tsx @@ -0,0 +1,46 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React from 'react'; + +import { SearchableColumnHeader } from '.'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'ColumnMapper', + component: SearchableColumnHeader, + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( +
+ + +
, +
+ +
, +
+ +
, + ]} + /> + +); diff --git a/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.tsx b/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.tsx new file mode 100644 index 000000000..0ec6f3502 --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/SearchableColumnHeader.tsx @@ -0,0 +1,66 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, InputGroup, TextInput } from '@patternfly/react-core'; +import { ColumnHeader, IColumnHeaderProps } from './ColumnHeader'; +import React, { FormEvent, FunctionComponent, useRef } from 'react'; + +import { SearchIcon } from '@patternfly/react-icons'; + +export interface ISearchableColumnHeaderProps extends IColumnHeaderProps { + onSearch: (content: string) => void; +} + +export const SearchableColumnHeader: FunctionComponent< + ISearchableColumnHeaderProps +> = ({ title, actions = [], onSearch }) => { + const searchRef = useRef(null); + const onSearchSubmit = (event: FormEvent) => { + if (searchRef.current) { + onSearch(searchRef.current.value); + } + event.preventDefault(); + return false; + }; + return ( + + + + + + , + ...actions, + ]} + /> + ); +}; diff --git a/packages/ui/src/UI/ColumnMapper/index.stories.mdx b/packages/ui/src/UI/ColumnMapper/index.stories.mdx new file mode 100644 index 000000000..bf13449db --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/index.stories.mdx @@ -0,0 +1,40 @@ +import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; +import { example as columnMapperExample } from "./ColumnMapper.stories.tsx"; +import { example as columnExample } from "./Column.stories.tsx"; +import { example as columnHeaderExample } from "./ColumnHeader.stories.tsx"; +import { example as searchableColumnHeaderExample } from "./SearchableColumnHeader.stories.tsx"; +import { Column, ColumnHeader, ColumnMapper, SearchableColumnHeader } from ".."; + + + +# ColumnMapper + +{columnMapperExample()} + +## Props + + + +# Column + +{columnExample()} + +## Props + + + +# ColumnHeader + +{columnHeaderExample()} + +## Props + + + +# SearchableColumnHeader + +{searchableColumnHeaderExample()} + +## Props + + diff --git a/packages/ui/src/UI/ColumnMapper/index.ts b/packages/ui/src/UI/ColumnMapper/index.ts new file mode 100644 index 000000000..c20c2e5db --- /dev/null +++ b/packages/ui/src/UI/ColumnMapper/index.ts @@ -0,0 +1,21 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './Column'; +export * from './ColumnBody'; +export * from './ColumnHeader'; +export * from './ColumnMapper'; +export * from './Columns'; +export * from './SearchableColumnHeader'; diff --git a/packages/ui/src/UI/ConditionalExpressionInput.module.css b/packages/ui/src/UI/ConditionalExpressionInput.module.css new file mode 100644 index 000000000..8cbeae5ea --- /dev/null +++ b/packages/ui/src/UI/ConditionalExpressionInput.module.css @@ -0,0 +1,6 @@ +.toolbarItem { + flex: 1 +} + + + diff --git a/packages/ui/src/UI/ConditionalExpressionInput.module.css.d.ts b/packages/ui/src/UI/ConditionalExpressionInput.module.css.d.ts new file mode 100644 index 000000000..7e1523922 --- /dev/null +++ b/packages/ui/src/UI/ConditionalExpressionInput.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "toolbarItem": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ConditionalExpressionInput.tsx b/packages/ui/src/UI/ConditionalExpressionInput.tsx new file mode 100644 index 000000000..16d79b4db --- /dev/null +++ b/packages/ui/src/UI/ConditionalExpressionInput.tsx @@ -0,0 +1,71 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ExpressionContent, + IExpressionContentProps, +} from './ExpressionContent'; +import React, { FunctionComponent } from 'react'; +import { ToolbarGroup, ToolbarItem } from '@patternfly/react-core'; +import styles from './ConditionalExpressionInput.module.css'; + +export interface IConditionalExpressionInputProps + extends IExpressionContentProps {} + +export const ConditionalExpressionInput: FunctionComponent< + IConditionalExpressionInputProps +> = ({ + executeFieldSearch, + getFieldEnums, + mappingExpressionAddField, + mappingExpressionClearText, + isMappingExpressionEmpty, + mappingExpressionInit, + mappingExpressionInsertText, + mappingExpressionObservable, + mappingExpressionRemoveField, + mappingExpression, + trailerId, + disabled, + onToggle, + setSelectedEnumValue, +}) => { + return ( + + + + + + ); +}; diff --git a/packages/ui/src/UI/DelayedBoolean.tsx b/packages/ui/src/UI/DelayedBoolean.tsx new file mode 100644 index 000000000..04c9a9875 --- /dev/null +++ b/packages/ui/src/UI/DelayedBoolean.tsx @@ -0,0 +1,36 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent, ReactElement, useEffect, useState } from 'react'; + +export interface IDelayedBooleanProps { + value: boolean; + delay?: number; + children: (value: boolean) => ReactElement | null; +} + +export const DelayedBoolean: FunctionComponent = ({ + value, + delay = 1000, + children, +}) => { + const [delayedValue, setDelayedValue] = useState(value); + useEffect(() => { + const updateValue = () => setDelayedValue(value); + const timer = setTimeout(updateValue, delay); + return () => clearTimeout(timer); + }, [delay, value]); + return children(delayedValue); +}; diff --git a/packages/ui/src/UI/Document.module.css b/packages/ui/src/UI/Document.module.css new file mode 100644 index 000000000..357b97fc7 --- /dev/null +++ b/packages/ui/src/UI/Document.module.css @@ -0,0 +1,48 @@ +.card { + padding: 0 !important; +} + +.stacked { + margin: 1rem 0; +} + +.head { + padding: 0.5rem 0 !important; +} + +.header { + width: 100%; + overflow: hidden; +} + +.actions { + align-self: center; +} + +.headerButton { + max-width: 100%; +} + +.bodyNoPadding { + padding: 0 !important; +} + +.bodyWithPadding { + padding: 0 1rem 1rem !important; +} + +.hidden { + display: none; +} + +.noShadows { + box-shadow: none !important; +} + +.dropTarget:before { + background: var(--pf-global--active-color--400) !important; +} + +.dropAccepted:before { + background: var(--pf-global--success-color--100) !important; +} diff --git a/packages/ui/src/UI/Document.module.css.d.ts b/packages/ui/src/UI/Document.module.css.d.ts new file mode 100644 index 000000000..bb4f2d7a1 --- /dev/null +++ b/packages/ui/src/UI/Document.module.css.d.ts @@ -0,0 +1,16 @@ +declare const styles: { + readonly "card": string; + readonly "stacked": string; + readonly "head": string; + readonly "header": string; + readonly "actions": string; + readonly "headerButton": string; + readonly "bodyNoPadding": string; + readonly "bodyWithPadding": string; + readonly "hidden": string; + readonly "noShadows": string; + readonly "dropTarget": string; + readonly "dropAccepted": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/Document.stories.mdx b/packages/ui/src/UI/Document.stories.mdx new file mode 100644 index 000000000..33eae4e7c --- /dev/null +++ b/packages/ui/src/UI/Document.stories.mdx @@ -0,0 +1,27 @@ +import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; +import * as stories from "./Document.stories.tsx"; +import { Document } from "./Document"; + + + +# Document + +{stories.document()} + +## Props + + + +## Stories + +### States + +{stories.states()} + +### No actions + +{stories.noActions()} + +### Documents can be stacked + +{stories.stacked()} diff --git a/packages/ui/src/UI/Document.stories.tsx b/packages/ui/src/UI/Document.stories.tsx new file mode 100644 index 000000000..399f28844 --- /dev/null +++ b/packages/ui/src/UI/Document.stories.tsx @@ -0,0 +1,79 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button } from '@patternfly/react-core'; +import { Document } from './Document'; +import React from 'react'; +import { text } from '@storybook/addon-knobs'; + +const obj = { + title: 'Document', + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const document = () => ( +
+ some action]} + > + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium + assumenda atque consequuntur cupiditate doloremque eius eligendi et, ex, + harum impedit ipsum magnam minus, officia provident qui quidem veniam. + Facere, quo. + +
+); + +export const states = () => ( +
+ + + +
+); + +export const noActions = () => ( +
+ + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium + assumenda atque consequuntur cupiditate doloremque eius eligendi et, ex, + harum impedit ipsum magnam minus, officia provident qui quidem veniam. + Facere, quo. + +
+); + +export const stacked = () => ( +
+ + + +
+); diff --git a/packages/ui/src/UI/Document.tsx b/packages/ui/src/UI/Document.tsx new file mode 100644 index 000000000..04b79b468 --- /dev/null +++ b/packages/ui/src/UI/Document.tsx @@ -0,0 +1,169 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { AngleDownIcon, AngleRightIcon } from '@patternfly/react-icons'; +import { + Button, + Card, + CardBody, + CardHeader, + CardTitle, + Title, +} from '@patternfly/react-core'; +import { + HTMLAttributes, + KeyboardEvent, + MouseEvent, + PropsWithChildren, + ReactElement, + ReactNode, + forwardRef, + useCallback, +} from 'react'; + +import { css } from '@patternfly/react-styles'; +import styles from './Document.module.css'; +import { useToggle } from '../impl/utils'; + +export interface IDocumentProps + extends Omit, 'title'> { + title?: string; + actions?: (ReactElement | null | undefined)[]; + footer?: ReactNode; + selected?: boolean; + selectable?: boolean; + dropTarget?: boolean; + dropAccepted?: boolean; + stacked?: boolean; + scrollIntoView?: boolean; + noPadding?: boolean; + noShadows?: boolean; + startExpanded?: boolean; + onSelect?: () => void; + onDeselect?: () => void; +} + +export const Document = forwardRef< + HTMLDivElement, + PropsWithChildren +>(function Document( + { + id, + title, + actions, + footer, + selected = false, + dropTarget = false, + dropAccepted = false, + stacked = true, + selectable = false, + scrollIntoView = false, + noPadding = false, + noShadows = false, + startExpanded, + onSelect, + onDeselect, + children, + ...props + }, + ref, +) { + const { state: isExpanded, toggle: toggleExpanded } = useToggle( + startExpanded!, + ); + const handleClick = useCallback( + (event: MouseEvent) => { + event.stopPropagation(); + if (onSelect) { + onSelect(); + } + }, + [onSelect], + ); + const handleKey = useCallback( + (event: KeyboardEvent) => { + switch (event.key) { + case 'Enter': + case 'Space': + if (onSelect) { + onSelect(); + } + break; + case 'Escape': + if (onDeselect) { + onDeselect(); + } + break; + } + }, + [onDeselect, onSelect], + ); + const makeCardSelected = selected || dropTarget || dropAccepted; + + return ( +
+ + {(title || actions) && ( + + {title && ( + + + + )} + + )} + + {children} + + {footer} + +
+ ); +}); diff --git a/packages/ui/src/UI/DocumentActions.tsx b/packages/ui/src/UI/DocumentActions.tsx new file mode 100644 index 000000000..3e3b29ae0 --- /dev/null +++ b/packages/ui/src/UI/DocumentActions.tsx @@ -0,0 +1,75 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Dropdown, + DropdownItem, + Divider, + MenuToggle, + MenuToggleElement, + MenuToggleAction, +} from '@patternfly/react-core'; +import { + FolderCloseIcon, + FolderOpenIcon, + TrashIcon, +} from '@patternfly/react-icons'; +import { FunctionComponent, useState } from 'react'; + +export interface IDocumentActions { + onExpandFields: () => void; + onCollapseFields: () => void; + onDelete: () => void; +} + +export const DocumentActions: FunctionComponent = ({ + onExpandFields, + onCollapseFields, + onDelete, +}) => { + const [showActions, setShowActions] = useState(false); + const toggleActions = () => setShowActions(!showActions); + + + return ( + ) => + + + , + ]}} + variant="primary" + onClick={toggleActions} + /> + } + isOpen={showActions} + > + } + key={'collapse'} + onClick={onCollapseFields} + > + Collapse all + , + , + } key={'delete'} onClick={onDelete}> + Remove instance or schema file + , + + ); +}; diff --git a/packages/ui/src/UI/DocumentField.module.css b/packages/ui/src/UI/DocumentField.module.css new file mode 100644 index 000000000..af8c4f1b2 --- /dev/null +++ b/packages/ui/src/UI/DocumentField.module.css @@ -0,0 +1,59 @@ +.element { + --bg-color: var(--pf-global--BackgroundColor--100); + --bg-color-fade: rgba(255, 255, 255, 0.5); + color: var(--pf-global--Color--100); + border: 3px solid transparent; + background: var(--bg-color); +} + +.row { + /* padding: 0 1rem; */ + display: flex; + position: relative; +} + +.nameWrapper { + display: flex !important; + align-items: center; +} + +.nameIcon { + width: 48px; +} + +.statusIcons { + display: flex; + align-items: center; + padding: 0 1rem; +} +.statusIcons > * { + margin: 0 0.5rem; +} + +.isDragging { + color: var(--pf-global--active-color--400); +} + +.isSelected { + --bg-color: var(--pf-global--BackgroundColor--150); + --bg-color-fade: rgba(245, 245, 245, 0.5); +} + +.isDisabled { + pointer-events: none; + color: var(--pf-global--disabled-color--200); +} + +.actions { + position: absolute; + top: 0; + right: 0; + height: 100%; + text-align: right; + transition: all 0.2s; + background: + linear-gradient(to left, var(--bg-color) calc(100% - 2rem), var(--bg-color-fade)); + padding-left: 2rem; +} + + diff --git a/packages/ui/src/UI/DocumentField.module.css.d.ts b/packages/ui/src/UI/DocumentField.module.css.d.ts new file mode 100644 index 000000000..c5ed621c6 --- /dev/null +++ b/packages/ui/src/UI/DocumentField.module.css.d.ts @@ -0,0 +1,13 @@ +declare const styles: { + readonly "element": string; + readonly "row": string; + readonly "nameWrapper": string; + readonly "nameIcon": string; + readonly "statusIcons": string; + readonly "isDragging": string; + readonly "isSelected": string; + readonly "isDisabled": string; + readonly "actions": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/DocumentField.tsx b/packages/ui/src/UI/DocumentField.tsx new file mode 100644 index 000000000..d9459ed96 --- /dev/null +++ b/packages/ui/src/UI/DocumentField.tsx @@ -0,0 +1,107 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + PropsWithChildren, + ReactChild, + ReactElement, + forwardRef, +} from 'react'; + +import { Tooltip } from '@patternfly/react-core'; +import { css } from '@patternfly/react-styles'; +import styles from './DocumentField.module.css'; +import { useToggle } from '../impl/utils'; + +export interface IDocumentFieldProps { + name: ReactChild; + type: string; + scope?: string; + icon?: ReactElement; + statusIcons?: (ReactElement | null)[]; + actions?: (ReactElement | null)[]; + showType?: boolean; + isDragging?: boolean; + isFocused?: boolean; + isSelected?: boolean; + isDisabled?: boolean; +} + +export const DocumentField = forwardRef< + HTMLDivElement, + PropsWithChildren +>(function DocumentField( + { + name, + type, + scope, + icon, + statusIcons, + actions, + showType = false, + isDragging = false, + isFocused = false, + isSelected = false, + isDisabled = false, + children, + }, + ref, +) { + const { + state: isHovering, + toggleOff: hideActions, + toggleOn: showActions, + } = useToggle(false); + return ( +
+
+ {icon &&
{icon}
} + ` : `${name}`} + entryDelay={750} + exitDelay={100} + > +
+ {name} + {showType && ` (${type})`} + + {statusIcons && statusIcons?.filter((a) => a)} + +
+
+ {(isHovering || isFocused) && actions && !isDisabled && ( +
{actions?.filter((a) => a)}
+ )} +
+ {children} +
+ ); +}); diff --git a/packages/ui/src/UI/DocumentFieldPreview.module.css b/packages/ui/src/UI/DocumentFieldPreview.module.css new file mode 100644 index 000000000..4d2e8a82a --- /dev/null +++ b/packages/ui/src/UI/DocumentFieldPreview.module.css @@ -0,0 +1,6 @@ +.form { + padding: 1rem; + margin-top: 0.5rem; +} + + diff --git a/packages/ui/src/UI/DocumentFieldPreview.module.css.d.ts b/packages/ui/src/UI/DocumentFieldPreview.module.css.d.ts new file mode 100644 index 000000000..fe509acd5 --- /dev/null +++ b/packages/ui/src/UI/DocumentFieldPreview.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "form": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/DocumentFieldPreview.tsx b/packages/ui/src/UI/DocumentFieldPreview.tsx new file mode 100644 index 000000000..51df923ee --- /dev/null +++ b/packages/ui/src/UI/DocumentFieldPreview.tsx @@ -0,0 +1,47 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Form, FormGroup, TextInput } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import styles from './DocumentFieldPreview.module.css'; +import { useDebouncedCallback } from 'use-debounce'; + +export interface IDocumentFieldPreviewProps { + id: string; + value: string; + onChange: (value: string) => void; +} + +export const DocumentFieldPreview: FunctionComponent< + IDocumentFieldPreviewProps +> = ({ id, value, onChange }) => { + const debouncedOnChange = useDebouncedCallback(onChange, 200); + return ( +
event.stopPropagation()}> + + + +
+ ); +}; diff --git a/packages/ui/src/UI/DocumentFieldPreviewResults.module.css b/packages/ui/src/UI/DocumentFieldPreviewResults.module.css new file mode 100644 index 000000000..4d2e8a82a --- /dev/null +++ b/packages/ui/src/UI/DocumentFieldPreviewResults.module.css @@ -0,0 +1,6 @@ +.form { + padding: 1rem; + margin-top: 0.5rem; +} + + diff --git a/packages/ui/src/UI/DocumentFieldPreviewResults.module.css.d.ts b/packages/ui/src/UI/DocumentFieldPreviewResults.module.css.d.ts new file mode 100644 index 000000000..fe509acd5 --- /dev/null +++ b/packages/ui/src/UI/DocumentFieldPreviewResults.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "form": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/DocumentFieldPreviewResults.tsx b/packages/ui/src/UI/DocumentFieldPreviewResults.tsx new file mode 100644 index 000000000..cd8aeb8ce --- /dev/null +++ b/packages/ui/src/UI/DocumentFieldPreviewResults.tsx @@ -0,0 +1,43 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Form, FormGroup, TextInput } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; +import styles from './DocumentFieldPreviewResults.module.css'; + +export interface IDocumentFieldPreviewResultsProps { + id: string; + value: string; +} + +export const DocumentFieldPreviewResults: FunctionComponent< + IDocumentFieldPreviewResultsProps +> = ({ id, value }) => { + return ( +
+ + + +
+ ); +}; diff --git a/packages/ui/src/UI/DocumentFooter.module.css b/packages/ui/src/UI/DocumentFooter.module.css new file mode 100644 index 000000000..a6766d343 --- /dev/null +++ b/packages/ui/src/UI/DocumentFooter.module.css @@ -0,0 +1,3 @@ +.footer { + padding-top: 1rem; +} diff --git a/packages/ui/src/UI/DocumentFooter.module.css.d.ts b/packages/ui/src/UI/DocumentFooter.module.css.d.ts new file mode 100644 index 000000000..9de929a56 --- /dev/null +++ b/packages/ui/src/UI/DocumentFooter.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "footer": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/DocumentFooter.tsx b/packages/ui/src/UI/DocumentFooter.tsx new file mode 100644 index 000000000..e6bed4c3a --- /dev/null +++ b/packages/ui/src/UI/DocumentFooter.tsx @@ -0,0 +1,23 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent } from 'react'; + +import { CardFooter } from '@patternfly/react-core'; +import styles from './DocumentFooter.module.css'; + +export const DocumentFooter: FunctionComponent = ({ children }) => { + return {children}; +}; diff --git a/packages/ui/src/UI/DocumentGroup.module.css b/packages/ui/src/UI/DocumentGroup.module.css new file mode 100644 index 000000000..02f3fd091 --- /dev/null +++ b/packages/ui/src/UI/DocumentGroup.module.css @@ -0,0 +1,13 @@ +.buttonContent { + display: flex; + align-items: center; + padding: 0.5rem 1rem 0.5rem 1.2rem; +} + +.buttonIcon { + margin-right: 1rem; +} + +.icon { + padding-left: 1.5rem; +} diff --git a/packages/ui/src/UI/DocumentGroup.module.css.d.ts b/packages/ui/src/UI/DocumentGroup.module.css.d.ts new file mode 100644 index 000000000..87c87a64b --- /dev/null +++ b/packages/ui/src/UI/DocumentGroup.module.css.d.ts @@ -0,0 +1,7 @@ +declare const styles: { + readonly "buttonContent": string; + readonly "buttonIcon": string; + readonly "icon": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/DocumentGroup.tsx b/packages/ui/src/UI/DocumentGroup.tsx new file mode 100644 index 000000000..79ed4610c --- /dev/null +++ b/packages/ui/src/UI/DocumentGroup.tsx @@ -0,0 +1,74 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FolderCloseIcon, FolderOpenIcon } from '@patternfly/react-icons'; +import React, { + PropsWithChildren, + ReactElement, + forwardRef, + useRef, +} from 'react'; +import { Tooltip } from '@patternfly/react-core'; +import styles from './DocumentGroup.module.css'; + +export interface IDocumentGroupProps { + name: string; + icon?: ReactElement; + iconTooltip?: string; + type?: string; + showType?: boolean; + expanded?: boolean; +} + +export const DocumentGroup = forwardRef< + HTMLSpanElement, + PropsWithChildren +>(function DocumentGroup( + { name, type, icon, iconTooltip, showType = false, expanded }, + ref, +) { + const spanRef = useRef(null); + + const handleRef = (el: HTMLSpanElement | null) => { + spanRef.current = el; + if (ref) { + if (typeof ref === 'function') { + ref(el); + } else { + // @ts-ignore + ref.current = el; + } + } + }; + + return ( + + + {expanded ? : } + + {name} + {showType && ` (${type})`} + {icon && ( + + {icon} + + )} + + ); +}); diff --git a/packages/ui/src/UI/ExpressionContent.stories.tsx b/packages/ui/src/UI/ExpressionContent.stories.tsx new file mode 100644 index 000000000..2816a0738 --- /dev/null +++ b/packages/ui/src/UI/ExpressionContent.stories.tsx @@ -0,0 +1,132 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { boolean, text } from '@storybook/addon-knobs'; + +import { EnumValue } from '../impl/utils'; +import { ExpressionContent } from './ExpressionContent'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'UI|Mapping expression', +}; +export default obj; + +const executeFieldSearch = (): string[][] => { + return [ + ['foo', 'Foo'], + ['bar', 'Bar'], + ['baz', 'Baz'], + ]; +}; + +const getFieldEnums = (): EnumValue[] => { + return [ + { name: '[ None ]', ordinal: 0 }, + { name: 'rat', ordinal: 1 }, + { name: 'cat', ordinal: 2 }, + { name: 'bat', ordinal: 3 }, + ]; +}; + +const setSelectedEnumValue = (): void => {}; + +export const disabled = () => ( + ({ + str: '', + uuid: '123', + getUuid() { + return this.uuid; + }, + toText() { + return this.str; + }, + })} + isMappingExpressionEmpty={boolean('isMappingExpressionEmpty', true)} + mappingExpressionInit={action('mappingExpressionInit')} + mappingExpressionInsertText={action('mappingExpressionInsertText')} + mappingExpressionObservable={() => null} + mappingExpressionRemoveField={action('mappingExpressionRemoveField')} + mappingExpression={text('Mapping expression', '')} + trailerId={text('Trailer id', 'expression-trailer')} + disabled={boolean('Disabled', true)} + onToggle={action('onToggle')} + setSelectedEnumValue={setSelectedEnumValue} + /> +); + +export const enabledWithExpression = () => ( + ({ + str: '', + uuid: '123', + getUuid() { + return this.uuid; + }, + toText() { + return this.str; + }, + })} + isMappingExpressionEmpty={boolean('isMappingExpressionEmpty', true)} + mappingExpressionInit={action('mappingExpressionInit')} + mappingExpressionInsertText={action('mappingExpressionInsertText')} + mappingExpressionObservable={() => null} + mappingExpressionRemoveField={action('mappingExpressionRemoveField')} + mappingExpression={text( + 'Mapping expression', + 'if (prop-city== Boston, city, state)', + )} + trailerId={text('Trailer id', 'expression-trailer')} + disabled={boolean('Disabled', false)} + onToggle={action('onToggle')} + setSelectedEnumValue={setSelectedEnumValue} + /> +); + +export const enabledWithoutExpression = () => ( + ({ + str: '', + uuid: '123', + getUuid() { + return this.uuid; + }, + toText() { + return this.str; + }, + })} + isMappingExpressionEmpty={boolean('isMappingExpressionEmpty', true)} + mappingExpressionInit={action('mappingExpressionInit')} + mappingExpressionInsertText={action('mappingExpressionInsertText')} + mappingExpressionObservable={() => null} + mappingExpressionRemoveField={action('mappingExpressionRemoveField')} + mappingExpression={text('Mapping expression', '')} + trailerId={text('Trailer id', 'expression-trailer')} + disabled={boolean('Disabled', false)} + onToggle={action('onToggle')} + setSelectedEnumValue={setSelectedEnumValue} + /> +); diff --git a/packages/ui/src/UI/ExpressionContent.tsx b/packages/ui/src/UI/ExpressionContent.tsx new file mode 100644 index 000000000..463c1b5ed --- /dev/null +++ b/packages/ui/src/UI/ExpressionContent.tsx @@ -0,0 +1,626 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Button, + Form, + FormGroup, + InputGroup, + TextInput, + Tooltip, +} from '@patternfly/react-core'; +import { EnumValue, useToggle } from '../impl/utils'; +import { Observable, Subscription } from 'rxjs'; +import React, { + FunctionComponent, + KeyboardEvent, + MouseEvent, + useCallback, + useEffect, +} from 'react'; + +import { ExpressionEnumSelect } from './ExpressionEnumSelect'; +import { ExpressionFieldSearch } from './ExpressionFieldSearch'; +import { IExpressionNode } from '@atlasmap/core'; +import { css } from '@patternfly/react-styles'; +import styles from '@patternfly/react-styles/css/components/FormControl/form-control'; + +let atIndex = -1; +let atContainer: Node | undefined; +let enumCandidates: EnumValue[] = []; +let expressionUpdatedSubscription: Subscription | null; +let lastUpdatedEvent: IExpressionUpdatedEvent | null = null; +let mappedFieldCandidates: string[][] = []; +let markup: HTMLDivElement | null = null; +let searchFilter = ''; +let searchMode = false; +let selectedNodeId: string = ''; +let trailerHTML = ''; +let trailerID = ''; +let getMappingExpression: () => string; +let mappingExprInit: () => void; +let mappingExprObservable: () => Observable | null; + +interface IExpressionUpdatedEvent { + node: IExpressionNode; + offset: number; +} + +export interface IExpressionContentProps { + executeFieldSearch: (searchFilter: string, isSource: boolean) => string[][]; + getFieldEnums: (nodeId: string) => EnumValue[]; + mappingExpressionAddField: ( + selectedDocId: string, + selectedField: string, + newTextNode: IExpressionNode, + atIndex: number, + isTrailer: boolean, + ) => void; + mappingExpressionClearText: ( + nodeId?: string, + startOffset?: number, + endOffset?: number, + ) => IExpressionNode | null; + isMappingExpressionEmpty: boolean; + mappingExpressionInit: () => void; + mappingExpressionInsertText: ( + str: string, + nodeId?: string | undefined, + offset?: number | undefined, + ) => void; + mappingExpressionObservable: () => Observable | null; + mappingExpressionRemoveField: ( + tokenPosition?: string, + offset?: number, + removeNext?: boolean, + ) => void; + mappingExpression?: string; + trailerId: string; + disabled: boolean; + onToggle: () => void; + setSelectedEnumValue: ( + selectedEnum: string, + selectedEnumValueIndex: number, + ) => void; +} + +function updateExpressionMarkup(reset?: boolean) { + if (!markup) { + return; + } + if (reset) { + markup.innerHTML = trailerHTML; + } else { + const currentExpression = getMappingExpression(); + markup.innerHTML = currentExpression + trailerHTML; + } +} + +function moveCaretToEnd() { + if (!markup || trailerID.length === 0) { + return; + } + const trailerNode = markup.querySelector('#' + trailerID); + if (!trailerNode) { + return; + } + let range; + if (window.getSelection()!.rangeCount > 0) { + range = window.getSelection()!.getRangeAt(0); + } else { + range = document.createRange(); + window.getSelection()!.addRange(range); + } + range.selectNode(trailerNode.childNodes[0]); + range.setStart(trailerNode.childNodes[0], 0); + range.collapse(true); +} + +function restoreCaretPosition(event: IExpressionUpdatedEvent) { + if (!markup || !event || !event.node) { + return; + } + + for (let i = 0; i < markup.childNodes.length; i++) { + const target: any = markup.childNodes[i]; + if (target.id === event.node.uuid) { + const selection = window.getSelection(); + if (selection && selection.rangeCount) { + const range = selection.getRangeAt(0); + const actualNode = target.childNodes[0] ? target.childNodes[0] : target; + range.selectNode(actualNode); + if (event.offset <= actualNode.length) { + range.setStart(actualNode, event.offset); + } + range.collapse(true); + } + return; + } + } + moveCaretToEnd(); +} + +export function initializeMappingExpression() { + mappingExprInit(); + const mappingExprObs = mappingExprObservable(); + if (mappingExprObs) { + expressionUpdatedSubscription = mappingExprObs.subscribe( + (updatedEvent: IExpressionUpdatedEvent) => { + lastUpdatedEvent = updatedEvent; + }, + ); + } + updateExpressionMarkup(); + if (!lastUpdatedEvent) { + moveCaretToEnd(); + } else { + restoreCaretPosition(lastUpdatedEvent); + lastUpdatedEvent = null; + } +} + +export const ExpressionContent: FunctionComponent = ({ + executeFieldSearch, + getFieldEnums, + mappingExpressionAddField, + mappingExpressionClearText, + isMappingExpressionEmpty, + mappingExpressionInit, + mappingExpressionInsertText, + mappingExpressionObservable, + mappingExpressionRemoveField, + mappingExpression, + trailerId, + disabled, + onToggle, + setSelectedEnumValue, +}) => { + let addFieldToExpression: ( + selectedDocId: string, + selectedField: string, + newTextNode: IExpressionNode, + atIndex: number, + isTrailer: boolean, + ) => void; + let clearText: ( + nodeId?: string, + startOffset?: number, + endOffset?: number, + ) => IExpressionNode | null; + let fieldSearch: (searchFilter: string, isSource: boolean) => string[][]; + let getEnums: (enumFieldName: string) => EnumValue[]; + let setSelEnumValue: ( + selectedEnumNodeId: string, + selectedEnumValueIndex: number, + ) => void; + + const { + state: showEnumSelect, + toggleOn: toggleEnumSelOn, + toggleOff: toggleEnumSelOff, + } = useToggle(false); + + /** + * An enumeration value has been selected for the specified selected field node ID. + * + * @param selectedEnumNodeId - selected field node ID + * @param selectedEnumValueIndex - selected enumeration index + */ + function onEnumSelect( + selectedEnumNodeId: string, + selectedEnumValueIndex: number, + ) { + setSelEnumValue(selectedEnumNodeId, selectedEnumValueIndex); + clearEnumSelect(); + } + + function insertTextAtCaretPosition(key: string) { + const range = window.getSelection()!.getRangeAt(0); + const startContainer = range.startContainer; + const startOffset = range.startOffset; + + // On initial caret positioning before the first field node, the markup + // and start container are the same. + if (markup && startContainer === markup) { + if (startOffset === 0) { + const initialElement = startContainer.childNodes[0] as Element; + mappingExpressionInsertText(key, initialElement.getAttribute('id')!, 0); + } else { + mappingExpressionInsertText(key); + } + return; + } + const nodeId = getCaretPositionNodeId(); + + if (nodeId === trailerID) { + mappingExpressionInsertText(key); + } else { + mappingExpressionInsertText(key, nodeId, startOffset); + } + } + + function removeTokenAtCaretPosition(before: boolean) { + const selection = window.getSelection(); + let removeNext: boolean = false; + if (!selection || !markup) { + return; + } + if (!selection.rangeCount) { + if (getCaretPositionNodeId() === trailerID) { + if (before) { + mappingExpressionRemoveField(); + moveCaretToEnd(); + } + } + return; + } + // The window selection node will be the text node if the cursor lies + // at the boundary between the text node and a field node. In that + // case remove the next node. + removeNext = + !before && + selection.focusNode && + selection.focusNode.nodeType === selection.focusNode.TEXT_NODE && + selection.focusOffset === selection.focusNode.textContent?.length + ? true + : false; + const range = selection.getRangeAt(0); + const startContainer = range.startContainer; + const startOffset = range.startOffset; + + if (startContainer === markup) { + if (startOffset === 0) { + // head of expression + if (!before && !isMappingExpressionEmpty) { + mappingExpressionRemoveField(getCaretPositionNodeId(), 0); + } + return; + } + // end of expression + if (before && !isMappingExpressionEmpty) { + mappingExpressionRemoveField(); + } + return; + } + + if (getCaretPositionNodeId(startContainer) === trailerID) { + if (before) { + mappingExpressionRemoveField(); + } + moveCaretToEnd(); + return; + } + mappingExpressionRemoveField( + getCaretPositionNodeId(), + before ? startOffset - 1 : startOffset, + removeNext, + ); + if (getCaretPositionNodeId() === trailerID) { + moveCaretToEnd(); + } + } + + /** + * Handle key down events. + * + * @param event - expression keyboard event + */ + function onKeyDown(event: KeyboardEvent): void { + if ('Backspace' === event.key) { + // TODO handle cursor position + event.preventDefault(); + removeTokenAtCaretPosition(true); + if (searchMode) { + updateSearchMode(); + } + } else if ('Delete' === event.key) { + event.preventDefault(); + removeTokenAtCaretPosition(false); + if (searchMode) { + updateSearchMode(); + } + } + } + + /** + * A mouse click has occurred within the expression box. + * + * @param event - mouse event + */ + function onExprClick(event: MouseEvent) { + selectedNodeId = getCaretPositionNodeId(); + + // Check for clicking on an enumeration field node. + enumCandidates = getEnums(selectedNodeId); + if (enumCandidates.length > 0) { + event.preventDefault(); + toggleEnumSelOn(); + } + } + + function onKeyPress(event: KeyboardEvent) { + if (event.ctrlKey || event.metaKey || event.altKey) { + return; + } + if (event.key.length > 1) { + return; + } + event.preventDefault(); + + if (isMappingExpressionEmpty) { + initializeMappingExpression(); + } + if (searchMode) { + if (event.key.match(/[a-z0-9]/i)) { + searchFilter += event.key; + mappedFieldCandidates = fieldSearch(searchFilter, true); + } + } else { + searchMode = event.key === '@' ? true : false; + if (searchMode) { + atContainer = window.getSelection()!.getRangeAt(0).startContainer; + atIndex = window.getSelection()!.getRangeAt(0).startOffset; + searchFilter = ''; + mappedFieldCandidates = fieldSearch(searchFilter, true); + } + } + insertTextAtCaretPosition(event.key); + } + + function onChange(_event: React.FormEvent) { + if (isMappingExpressionEmpty) { + initMappingExpression(); + } + if (expressionUpdatedSubscription) { + expressionUpdatedSubscription.unsubscribe(); + } + expressionUpdatedSubscription = mappingExprObservable()!.subscribe( + (updatedEvent: IExpressionUpdatedEvent) => { + updateExpressionMarkup(); + restoreCaretPosition(updatedEvent); + }, + ); + updateExpressionMarkup(); + } + + function onPaste(event: React.ClipboardEvent) { + if (!event || !event.clipboardData) { + return; + } + event.preventDefault(); + const pasted = event.clipboardData.getData('text/plain'); + // TODO handle cursor position... for now just append to the end + mappingExpressionInsertText(pasted); + } + + /** + * The user has selected a field from the search select menu. Extract + * the field name and the scope if it is present. + * + * @param selectedDocId + * @param selectedField + * @returns + */ + function insertSelectedField( + selectedDocId: string, + selectedField: string, + ): void { + const newTextNode = clearAtText(getCaretPositionNodeId(atContainer)); + if (newTextNode === null) { + return; + } + const isTrailer = getCaretPositionNodeId(atContainer) === trailerID; + addFieldToExpression( + selectedDocId, + selectedField, + newTextNode, + atIndex, + isTrailer, + ); + clearSearchMode(false); + markup!.focus(); + } + + /** + * Clear user input from the selected range offset within the TextNode at + * the specified node ID. The input will become a FieldNode so we don't + * need the text. Return the new UUID position indicator. + */ + function clearAtText(nodeId: string): IExpressionNode | null { + if (atIndex === -1) { + return null; + } + const startOffset = atIndex; + const endOffset = startOffset + searchFilter.length + 1; + let updatedTextNode = null; + + if (nodeId === trailerID) { + updatedTextNode = clearText(); + } else { + updatedTextNode = clearText(nodeId, startOffset, endOffset); + } + return updatedTextNode; + } + + /** + * Return the UUID string representing the caret position as defined + * by the user-specified starting container. If no container is + * specified then return the current caret position node ID value. + * + * @param startContainer + */ + function getCaretPositionNodeId(startContainer?: Node): string { + const selection = window.getSelection(); + if (!startContainer) { + if (!selection || selection.rangeCount === 0) { + return trailerID; + } + startContainer = selection!.getRangeAt(0).startContainer; + } + if (startContainer.nodeType === selection?.focusNode?.TEXT_NODE) { + return startContainer.parentElement!.getAttribute('id')!; + } else { + return (startContainer.firstChild! as HTMLElement)?.getAttribute('id')!; + } + } + + /** + * Clear elements associated with mapped-field searching. + */ + function clearSearchMode(clearAtSign: boolean): void { + if (clearAtSign) { + clearAtText(getCaretPositionNodeId(atContainer)); + } + atIndex = -1; + atContainer = undefined; + searchMode = false; + searchFilter = ''; + mappedFieldCandidates = []; + } + + function updateSearchMode(): void { + if (searchFilter.length === 0) { + mappedFieldCandidates = []; + searchMode = false; + } else { + searchFilter = searchFilter.substr(0, searchFilter.length - 1); + mappedFieldCandidates = fieldSearch(searchFilter, true); + } + } + + function clearEnumSelect() { + selectedNodeId = ''; + enumCandidates = []; + toggleEnumSelOff(); + } + + const initMappingExpression = useCallback(() => { + initializeMappingExpression(); + }, []); + + addFieldToExpression = mappingExpressionAddField; + clearText = mappingExpressionClearText; + fieldSearch = executeFieldSearch; + getEnums = getFieldEnums; + setSelEnumValue = setSelectedEnumValue; + + getMappingExpression = () => mappingExpression || ''; + mappingExprInit = mappingExpressionInit; + mappingExprObservable = mappingExpressionObservable; + trailerID = trailerId; + trailerHTML = ` `; + + const uninitializeMappingExpression = () => { + if (expressionUpdatedSubscription) { + expressionUpdatedSubscription.unsubscribe(); + } + }; + + useEffect(() => { + if (mappingExpression !== undefined) { + initMappingExpression(); + return () => uninitializeMappingExpression(); + } + return; + }, [mappingExpression, initMappingExpression]); + + return ( + <> +
+ + + + + + {!disabled && mappingExpression !== undefined ? ( + +
(markup = el)} + tabIndex={-1} + style={{ paddingLeft: 8 }} + /> + + ) : ( + /* this to render a disabled field */ + )} + + + +
+ {mappedFieldCandidates.length > 0 && ( + + + + )} + {showEnumSelect && ( + + + + )} +
+ + ); +}; diff --git a/packages/ui/src/UI/ExpressionEnumSelect.module.css b/packages/ui/src/UI/ExpressionEnumSelect.module.css new file mode 100644 index 000000000..ffbd223e8 --- /dev/null +++ b/packages/ui/src/UI/ExpressionEnumSelect.module.css @@ -0,0 +1,14 @@ +.document { + font-weight: bold; +} + +.field { + margin-left: 20; +} + +.enumSelectMenu { + margin: var(--pf-global--spacer--form-element) 0; + width: 40%; +} + + diff --git a/packages/ui/src/UI/ExpressionEnumSelect.module.css.d.ts b/packages/ui/src/UI/ExpressionEnumSelect.module.css.d.ts new file mode 100644 index 000000000..0d810b85d --- /dev/null +++ b/packages/ui/src/UI/ExpressionEnumSelect.module.css.d.ts @@ -0,0 +1,7 @@ +declare const styles: { + readonly "document": string; + readonly "field": string; + readonly "enumSelectMenu": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ExpressionEnumSelect.tsx b/packages/ui/src/UI/ExpressionEnumSelect.tsx new file mode 100644 index 000000000..1060b7b02 --- /dev/null +++ b/packages/ui/src/UI/ExpressionEnumSelect.tsx @@ -0,0 +1,102 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { EnumValue, useToggle } from '../impl/utils'; +import { + Select, + SelectOption, + SelectOptionObject, +} from '@patternfly/react-core'; + +import { FunctionComponent } from 'react'; +import React from 'react'; +import styles from './ExpressionEnumSelect.module.css'; + +export interface IExpressionEnumSelectProps { + selectedNodeId: string; + enumCandidates: EnumValue[]; + clearEnumSelect: () => void; + onEnumSelect: (selectedNodeId: string, selectedIndex: number) => void; +} +let selectValue = ''; + +export const ExpressionEnumSelect: FunctionComponent< + IExpressionEnumSelectProps +> = ({ selectedNodeId, enumCandidates, clearEnumSelect, onEnumSelect }) => { + const id = `expr-enum-select-${selectValue}`; + const { state, toggle, toggleOff } = useToggle(true, onToggleEnumSelect); + + function onToggleEnumSelect(toggled: boolean): any { + if (!toggled) { + enumCandidates = []; + clearEnumSelect(); + } + } + + function selectionChanged( + event: any, + value: string | SelectOptionObject, + _isPlaceholder?: boolean | undefined, + ): void { + selectValue = value as string; + onEnumSelect(selectedNodeId, event.currentTarget.id.split('-').pop()); + onToggleEnumSelect(false); + toggleOff(); + } + + function createSelectOption(selectField: string, idx: number): any { + if (selectField[1].length === 0) { + return ( + + ); + } else { + return ( + + ); + } + } + + return ( +
+ +
+ ); +}; diff --git a/packages/ui/src/UI/ExpressionFieldSearch.module.css b/packages/ui/src/UI/ExpressionFieldSearch.module.css new file mode 100644 index 000000000..caf027a41 --- /dev/null +++ b/packages/ui/src/UI/ExpressionFieldSearch.module.css @@ -0,0 +1,14 @@ +.document { + font-size: medium; + font-weight: bold; +} + +.field { + font-size: small; + margin-left: 20; +} + +.searchMenu { + margin: var(--pf-global--spacer--form-element) 0; + width: 50%; +} diff --git a/packages/ui/src/UI/ExpressionFieldSearch.module.css.d.ts b/packages/ui/src/UI/ExpressionFieldSearch.module.css.d.ts new file mode 100644 index 000000000..a6705f68c --- /dev/null +++ b/packages/ui/src/UI/ExpressionFieldSearch.module.css.d.ts @@ -0,0 +1,7 @@ +declare const styles: { + readonly "document": string; + readonly "field": string; + readonly "searchMenu": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/ExpressionFieldSearch.tsx b/packages/ui/src/UI/ExpressionFieldSearch.tsx new file mode 100644 index 000000000..485e8f8a6 --- /dev/null +++ b/packages/ui/src/UI/ExpressionFieldSearch.tsx @@ -0,0 +1,179 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Select, + SelectOption, + SelectOptionObject, +} from '@patternfly/react-core'; +import { FunctionComponent } from 'react'; +import React from 'react'; +import styles from './ExpressionFieldSearch.module.css'; +import { useToggle } from '../impl/utils'; + +export interface IExpressionFieldSearchProps { + clearSearchMode: (clearAtSign: boolean) => void; + insertSelectedField: (docId: string, fieldStr: string) => void; + mappedFieldCandidates: string[][]; +} +let selectedField = ''; + +export const ExpressionFieldSearch: FunctionComponent< + IExpressionFieldSearchProps +> = ({ clearSearchMode, insertSelectedField, mappedFieldCandidates }) => { + function onToggleFieldSearch(toggled: boolean): any { + if (!toggled) { + mappedFieldCandidates = []; + clearSearchMode(true); + candidateSrcElement = null; + } + } + + const id = `expr-field-search-${selectedField}`; + let candidateSrcElement: any; + const { state, toggle, toggleOff } = useToggle(true, onToggleFieldSearch); + + /** + * Track a candidate selection from either a mouse hover or arrow + * key navigation. + * + * @param event + * @param index + */ + function trackSelection(event: any): void { + if (event.srcElement) { + // const docId = event.target.getAttribute('label'); + candidateSrcElement = event.srcElement; + } + } + + /** + * Update the candidate source element and reset the focus. + * + * @param sibling + */ + function updateCandidate(sibling: any): void { + if (candidateSrcElement && sibling) { + candidateSrcElement.style.backgroundColor = 'white'; + sibling.focus(); + candidateSrcElement = sibling; + candidateSrcElement.style.backgroundColor = 'lightblue'; + } + } + + function onKeyHandler( + _index: number, + _innerIndex: number, + _position: string, + ): void { + // TODO + } + + function onKeyDown(event: any): void { + if ('Enter' === event.key) { + event.preventDefault(); + if (candidateSrcElement) { + // insertSelectedField(candidateIndex); + } + } else if ('ArrowDown' === event.key) { + event.preventDefault(); + trackSelection(event); + if (candidateSrcElement) { + updateCandidate(candidateSrcElement.nextElementSibling); + } + } else if ('ArrowUp' === event.key) { + event.preventDefault(); + trackSelection(event); + if (candidateSrcElement) { + updateCandidate(candidateSrcElement.previousElementSibling); + } + } else if ('Tab' === event.key) { + if (!candidateSrcElement && event.srcElement) { + candidateSrcElement = + event.srcElement.nextElementSibling.firstElementChild; + candidateSrcElement.style.backgroundColor = 'lightblue'; + } else if ( + candidateSrcElement && + candidateSrcElement.nextElementSibling + ) { + event.preventDefault(); + updateCandidate(candidateSrcElement!.nextElementSibling); + } + } + } + + function selectionChanged( + event: any, + value: string | SelectOptionObject, + isPlaceholder?: boolean | undefined, + ): void { + if (!isPlaceholder) { + const docId = event.target.getAttribute('label'); + selectedField = value as string; + insertSelectedField(docId, selectedField); + } + onToggleFieldSearch(false); + toggleOff(); + } + + function createSelectOption(selectField: string[], idx: number): any { + // Use the display name for documents and field path for fields. + if (selectField[1][0] !== '/') { + return ( + + ); + } else { + return ( + + ); + } + } + + return ( +
+ +
+ ); +}; diff --git a/packages/ui/src/UI/Loading.tsx b/packages/ui/src/UI/Loading.tsx new file mode 100644 index 000000000..b4f3477fd --- /dev/null +++ b/packages/ui/src/UI/Loading.tsx @@ -0,0 +1,32 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + EmptyState, + EmptyStateIcon, + EmptyStateVariant, + Spinner, + Title, +} from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +export const Loading: FunctionComponent = () => ( + + + + Loading + + +); diff --git a/packages/ui/src/UI/MappingField.module.css b/packages/ui/src/UI/MappingField.module.css new file mode 100644 index 000000000..1ad4361c1 --- /dev/null +++ b/packages/ui/src/UI/MappingField.module.css @@ -0,0 +1,49 @@ +.field { + padding: 1rem; + background: var(--pf-global--BackgroundColor--100); + font-size: small; +} + +.field + .field { + border-top: + var(--pf-global--BorderWidth--md) solid var(--pf-global--BorderColor--300); + font-size: small; +} + +.field:last-child { + border-bottom: + var(--pf-global--BorderWidth--sm) solid var(--pf-global--BorderColor--200); + font-size: small; +} + +.title { + display: flex; + align-items: center; + font-size: medium; +} + +.fieldIndex { + margin-right: 0.5rem; +} + +.fieldName { + flex: 2 0 calc(100% - 6rem); + font-size: small; + margin-right: 0.3rem; +} + +.link { + padding: 0; + margin-right: 5; +} + +.transformationsWrapper { + margin-left: 0.5rem; + margin-top: 0.5rem; + background: var(--pf-global--BackgroundColor--150); +} + +.transformations { + margin-left: 0.8rem; + margin-top: 0rem; +} diff --git a/packages/ui/src/UI/MappingField.module.css.d.ts b/packages/ui/src/UI/MappingField.module.css.d.ts new file mode 100644 index 000000000..07e04b874 --- /dev/null +++ b/packages/ui/src/UI/MappingField.module.css.d.ts @@ -0,0 +1,11 @@ +declare const styles: { + readonly "field": string; + readonly "title": string; + readonly "fieldIndex": string; + readonly "fieldName": string; + readonly "link": string; + readonly "transformationsWrapper": string; + readonly "transformations": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/MappingField.tsx b/packages/ui/src/UI/MappingField.tsx new file mode 100644 index 000000000..30b01ec5d --- /dev/null +++ b/packages/ui/src/UI/MappingField.tsx @@ -0,0 +1,220 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { BoltIcon, InfoAltIcon, TrashIcon } from '@patternfly/react-icons'; +import { + Button, + InputGroup, + InputGroupText, + Split, + SplitItem, + TextInput, + Title, + Tooltip, +} from '@patternfly/react-core'; +import { DraggableField, FieldDropTarget } from './dnd'; +import React, { Children, FunctionComponent } from 'react'; + +import { IAtlasmapField } from '../../src/Views/models'; +import { NodeRef } from './Canvas/NodeRef'; +import { css } from '@patternfly/react-styles'; +import styles from './MappingField.module.css'; + +export interface IMappingFieldProps { + field: IAtlasmapField; + name: string; + info: string; + index: number; + canShowIndex: boolean; + mappingExpressionEnabled: boolean; + hasTransformations: boolean; + onDelete: () => void; + onIndexChange?: (value: string | IAtlasmapField) => void; + onNewTransformation?: () => void; +} + +const formTransInputGroup = { + '--pf-c-form-control--FontSize': 'small', +} as React.CSSProperties; + +export const MappingField: FunctionComponent = ({ + field, + name, + info, + index, + canShowIndex, + mappingExpressionEnabled, + hasTransformations, + onDelete, + onIndexChange, + onNewTransformation, + children, +}) => { + const id = `mapping-field-${name}`; + return ( + { + return true; + }} + accept={['mapping']} + > + {({ isTarget }) => ( + { + if (!onIndexChange) { + return; + } + onIndexChange(target!.payload as IAtlasmapField); + }} + > + {({ isDragging }) => ( + +
+ + + + {canShowIndex && ( + <Tooltip + position={'auto'} + enableFlip={true} + entryDelay={750} + exitDelay={100} + content={ + <div> + Edit the index for this element by selecting the + arrows or by dragging and dropping the element to + the desired position. Placeholders may be + automatically inserted to account for any gaps in + the indexing. + </div> + } + > + <InputGroup className={styles.fieldIndex}> + <InputGroupText>#</InputGroupText> + <TextInput + type={'number'} + value={index} + id={'index'} + onChange={onIndexChange} + data-testid={`change-${name}-input-index`} + isDisabled={!onIndexChange} + style={formTransInputGroup} + /> + </InputGroup> + </Tooltip> + )} + <Tooltip + position={'auto'} + enableFlip={true} + entryDelay={750} + exitDelay={100} + content={<div>{info}</div>} + > + <div className={styles.fieldName}> + {name} <InfoAltIcon /> + </div> + </Tooltip> + + + {!mappingExpressionEnabled && onNewTransformation && ( + + + + + + )} + + + + + + + {/* + Show established field action transformations associated with this + field. + */} + {!mappingExpressionEnabled && + hasTransformations && + children && + Children.count(children) > 0 && ( +
+ + Transformations + +
{children}
+
+ )} +
+
+ )} +
+ )} +
+ ); +}; diff --git a/packages/ui/src/UI/MappingFields.module.css b/packages/ui/src/UI/MappingFields.module.css new file mode 100644 index 000000000..07196b4a5 --- /dev/null +++ b/packages/ui/src/UI/MappingFields.module.css @@ -0,0 +1,9 @@ +.wrapper { + background: var(--pf-global--BackgroundColor--light-300); + padding: 0.5rem; + margin: 1rem 0; + font-size: medium; +} +.wrapper .pf-c-expandable__content { + margin: 0 !important; +} diff --git a/packages/ui/src/UI/MappingFields.module.css.d.ts b/packages/ui/src/UI/MappingFields.module.css.d.ts new file mode 100644 index 000000000..9bdf55773 --- /dev/null +++ b/packages/ui/src/UI/MappingFields.module.css.d.ts @@ -0,0 +1,6 @@ +declare const styles: { + readonly "wrapper": string; + readonly "pf-c-expandable__content": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/MappingFields.tsx b/packages/ui/src/UI/MappingFields.tsx new file mode 100644 index 000000000..059e1ff69 --- /dev/null +++ b/packages/ui/src/UI/MappingFields.tsx @@ -0,0 +1,106 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AddCircleOIcon, + CaretDownIcon, + CaretRightIcon, + PlusIcon, +} from '@patternfly/react-icons'; +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import styles from './MappingFields.module.css'; +import { useToggle } from '../impl/utils'; + +export interface IMappingFieldsProps { + isSource: boolean; + title: string; + canAddToSelectedMapping: (isSource: boolean) => boolean; + onCreateConstant: (constants: any | null) => void; + onCreateProperty: (isSource: boolean, props: any | null) => void; +} + +export interface IMappedFieldsProps {} + +export const MappingFields: FunctionComponent = ({ + title, + isSource, + onCreateConstant, + onCreateProperty, + canAddToSelectedMapping, + children, +}) => { + const { state: expanded, toggle: toggleExpanded } = useToggle(true); + + return ( +
+ + {title} + Create and map a property.
} + key={'create-property'} + entryDelay={750} + exitDelay={100} + > + + + {isSource && ( + Create and map a source constant.
} + key={'create-constant'} + entryDelay={750} + exitDelay={100} + > + +
+ )} + {expanded && children} + + ); +}; diff --git a/packages/ui/src/UI/MappingTransformation.module.css b/packages/ui/src/UI/MappingTransformation.module.css new file mode 100644 index 000000000..264dd61a1 --- /dev/null +++ b/packages/ui/src/UI/MappingTransformation.module.css @@ -0,0 +1,6 @@ +.transArgs { + margin-left: 1.0rem; + margin-top: 0.5rem; + background: var(--pf-global--BackgroundColor--150); + font-size: small; +} diff --git a/packages/ui/src/UI/MappingTransformation.module.css.d.ts b/packages/ui/src/UI/MappingTransformation.module.css.d.ts new file mode 100644 index 000000000..790f18a75 --- /dev/null +++ b/packages/ui/src/UI/MappingTransformation.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "transArgs": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/MappingTransformation.spec.tsx b/packages/ui/src/UI/MappingTransformation.spec.tsx new file mode 100644 index 000000000..31870e6bd --- /dev/null +++ b/packages/ui/src/UI/MappingTransformation.spec.tsx @@ -0,0 +1,67 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + example, + nonRemovable, + stacked, +} from './MappingTransformation.stories'; +import { act } from 'react-dom/test-utils'; +import { render } from '@testing-library/react'; + +describe('MappingTransformation', () => { + test('should render example', async () => { + const { getByTestId } = render(example()); + await act(async () => { + expect( + getByTestId(`user-field-action-Sample transformation`).tagName, + ).toBe('SELECT'); + const checkbox = getByTestId( + `user-field-action-Sample transformation-transformation-3-checkbox`, + ); + expect(checkbox.tagName).toBe('INPUT'); + expect(checkbox.getAttribute('type')).toBe('checkbox'); + }); + }); + + test('should render nonRemovable', async () => { + const { getByTestId } = render(nonRemovable()); + await act(async () => { + expect( + getByTestId(`user-field-action-Sample transformation`).tagName, + ).toBe('SELECT'); + const checkbox = getByTestId( + `user-field-action-Sample transformation-transformation-3-checkbox`, + ); + expect(checkbox.tagName).toBe('INPUT'); + expect(checkbox.getAttribute('type')).toBe('checkbox'); + }); + }); + + test('should render stacked', async () => { + const { getAllByTestId } = render(stacked()); + await act(async () => { + getAllByTestId(`user-field-action-Sample transformation`).forEach( + (element) => expect(element.tagName).toBe('SELECT'), + ); + getAllByTestId( + `user-field-action-Sample transformation-transformation-3-checkbox`, + ).forEach((element) => { + expect(element.tagName).toBe('INPUT'); + expect(element.getAttribute('type')).toBe('checkbox'); + }); + }); + }); +}); diff --git a/packages/ui/src/UI/MappingTransformation.stories.tsx b/packages/ui/src/UI/MappingTransformation.stories.tsx new file mode 100644 index 000000000..5cae03e17 --- /dev/null +++ b/packages/ui/src/UI/MappingTransformation.stories.tsx @@ -0,0 +1,123 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FieldType, TransitionModel } from '@atlasmap/core'; +import { + ITransformationArgument, + MappingTransformation, +} from './MappingTransformation'; +import { boolean, text } from '@storybook/addon-knobs'; +import { Form } from '@patternfly/react-core'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'UI|Mapping Details/Transformation', +}; +export default obj; + +TransitionModel.initialize(); + +const transformationsOptions = [ + { name: 'Transformation foo', value: 'foo' }, + { name: 'Transformation bar', value: 'bar' }, +]; + +const transformationsArguments: ITransformationArgument[] = [ + { + label: 'Argument foo', + name: 'foo', + value: text('Argument foo value', 'foo'), + }, + { + label: 'Argument bar', + name: 'bar', + value: text('Argument bar value', 'bar'), + }, + { + label: 'Delimiter', + name: 'Delimiter', + value: text('Delimiter value', 'baz'), + options: TransitionModel.delimiterModels.map((model) => { + return { + name: model.prettyName ? model.prettyName : '', + value: model.actualDelimiter, + }; + }), + }, + { + label: 'Collapse Repeating Delimiter', + name: 'Collapse Repeating Delimiter', + type: FieldType.BOOLEAN, + value: boolean('Collapse Repeating Delimiter value', false) + ? 'true' + : 'false', + }, +]; + +export const example = () => ( + +); + +export const nonRemovable = () => ( + +); + +export const stacked = () => ( +
+ + + + +); diff --git a/packages/ui/src/UI/MappingTransformation.tsx b/packages/ui/src/UI/MappingTransformation.tsx new file mode 100644 index 000000000..1623e06cd --- /dev/null +++ b/packages/ui/src/UI/MappingTransformation.tsx @@ -0,0 +1,305 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Button, + Checkbox, + FormGroup, + FormSelect, + FormSelectOption, + InputGroup, + Select, + SelectOption, + SelectOptionObject, + SelectVariant, + Split, + SplitItem, + TextInput, +} from '@patternfly/react-core'; +import React, { FunctionComponent, useState } from 'react'; + +import { FieldType } from '../core'; +import { TrashIcon } from '@patternfly/react-icons'; +import { css } from '@patternfly/react-styles'; +import styles from './MappingTransformation.module.css'; + +export interface ITransformationSelectOption { + name: string; + value: string; +} + +export interface ITransformationArgument { + label: string; + name: string; + value: string; + type?: FieldType; + options?: ITransformationSelectOption[]; +} + +export interface IMappingTransformationProps { + name: string; + transformationsOptions: ITransformationSelectOption[]; + transformationsArguments?: ITransformationArgument[]; + disableTransformation: boolean; + onTransformationArgumentChange: (name: string, value: string) => void; + onTransformationChange: (value: string) => void; + onRemoveTransformation?: () => void; + noPaddings?: boolean; +} + +const formTransStyle = { + '--pf-c-form-control--FontSize': 'small', + '--pf-c-form--GridGap': '0', + marginTop: '0.4rem', +} as React.CSSProperties; + +const formTransGroupStyle = { + '--pf-c-form-control--FontSize': 'small', + marginTop: '1.0rem', +} as React.CSSProperties; + +const formTransTextInputStyle = { + '--pf-c-form-control--FontSize': 'small', + marginTop: '0rem', +} as React.CSSProperties; + +export const MappingTransformation: FunctionComponent< + IMappingTransformationProps +> = ({ + name, + transformationsOptions, + transformationsArguments = [], + disableTransformation, + onTransformationArgumentChange, + onTransformationChange, + onRemoveTransformation, +}) => { + const RenderTransformationArgumentOptions = ( + argId: string, + arg: ITransformationArgument, + disableTransformation: boolean, + onTransformationArgumentChange: (name: string, value: string) => void, + ) => { + /** If the option name is 'User defined', we assume it accepts a user input */ + const isUserDefined = (option?: ITransformationSelectOption) => { + return option?.name === 'User defined'; + }; + + const userDefinedOption = arg.options?.find((option) => + isUserDefined(option), + ); + + let initialSelected = arg.options?.find( + (option) => option.value === arg.value, + ); + if (!initialSelected) { + if (arg.value) { + initialSelected = userDefinedOption; + } else if (arg.options) { + initialSelected = arg.options[1]; + arg.value = arg.options[1].value; + } + } + let initialUserDefined = ''; + if (isUserDefined(initialSelected)) { + initialUserDefined = arg.value; + } + + const [isOpen, setIsOpen] = useState(false); + const [selected, setSelected] = useState< + ITransformationSelectOption | undefined + >(initialSelected); + const [userDefinedValue, setUserDefinedValue] = + useState(initialUserDefined); + + const onToggle = (isOpen: boolean) => { + setIsOpen(isOpen); + }; + + const onSelect = ( + _event: + | React.MouseEvent + | React.ChangeEvent, + selection: string | SelectOptionObject, + _isPlaceholder?: boolean, + ) => { + setIsOpen(false); + const selectedOption = arg.options!.find( + (option) => option.value === selection, + ); + if (!selectedOption) { + return; + } + setSelected(selectedOption); + arg.value = isUserDefined(selectedOption) + ? userDefinedValue + ? userDefinedValue + : '' + : selection.toString(); + onTransformationArgumentChange(arg.name, arg.value); + }; + + const onChangeUserDefinedValue = (value: string) => { + setUserDefinedValue(value); + arg.value = value; + onTransformationArgumentChange(arg.name, value); + }; + + return ( + + + + + {isUserDefined(selected) && ( + + + + )} + + ); + }; + + const renderTransformationArgumentText = ( + argId: string, + a: ITransformationArgument, + ) => { + return ( + onTransformationArgumentChange(a.name, value)} + data-testid={`insert-transformation-parameter-${a.name}-input-field`} + style={formTransTextInputStyle} + /> + ); + }; + + const renderTransformationArgumentBoolean = ( + argId: string, + a: ITransformationArgument, + ) => { + return ( + + onTransformationArgumentChange(a.name, value.toString()) + } + /> + ); + }; + + const renderTransformationArgument = ( + a: ITransformationArgument, + idx: number, + ) => { + const argId = `${id}-transformation-${idx}`; + switch (a.type) { + case FieldType.BOOLEAN: { + return renderTransformationArgumentBoolean(argId, a); + } + default: { + return ( + + {a.options + ? RenderTransformationArgumentOptions( + argId, + a, + disableTransformation, + onTransformationArgumentChange, + ) + : renderTransformationArgumentText(argId, a)} + + ); + } + } + }; + + const id = `user-field-action-${name}`; + return ( + <> + + + + {transformationsOptions.map((a, idx) => ( + + ))} + + {onRemoveTransformation && ( + + )} + + + {transformationsArguments.map(renderTransformationArgument)} + + ); +}; diff --git a/packages/ui/src/UI/TimedToast.tsx b/packages/ui/src/UI/TimedToast.tsx new file mode 100644 index 000000000..4878a8f29 --- /dev/null +++ b/packages/ui/src/UI/TimedToast.tsx @@ -0,0 +1,88 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Alert, + AlertActionCloseButton, + AlertProps, + // Progress, +} from '@patternfly/react-core'; +import React, { FunctionComponent, useEffect, useState } from 'react'; + +import { useToggle } from '../impl/utils'; + +export interface ITimedToastProps { + variant: AlertProps['variant']; + title: string; + onTimeout: () => void; + onClose: () => void; +} + +export const TimedToast: FunctionComponent = ({ + variant, + title, + children, + onTimeout, + onClose, +}) => { + const showTime = 8000; + const intervalTime = 100; + const [elapsed, setElapsed] = useState(showTime); + const { + state: hovering, + toggleOn: hoveringOn, + toggleOff: hoveringOff, + } = useToggle(false); + useEffect(() => { + const tick = () => { + setElapsed((elapsed) => elapsed - intervalTime); + }; + let timer: NodeJS.Timer | undefined = undefined; + if (elapsed <= 0) { + onTimeout(); + } else if (!hovering && !timer) { + timer = setInterval(tick, intervalTime); + } else { + setElapsed(showTime); + } + return () => timer && clearTimeout(timer); + }, [elapsed, hovering, onTimeout]); + return ( + + } + onMouseEnter={hoveringOn} + onMouseLeave={hoveringOff} + > + {children} + {/* {!hovering && ( + + )} */} + + ); +}; diff --git a/packages/ui/src/UI/Tree/Tree.module.css b/packages/ui/src/UI/Tree/Tree.module.css new file mode 100644 index 000000000..147ac5a5b --- /dev/null +++ b/packages/ui/src/UI/Tree/Tree.module.css @@ -0,0 +1,3 @@ +.accordion { + padding: 0 1rem 0 0 !important; /* TODO: this padding should be 0 and the right spacing should be given by DocumentGroup */ +} diff --git a/packages/ui/src/UI/Tree/Tree.module.css.d.ts b/packages/ui/src/UI/Tree/Tree.module.css.d.ts new file mode 100644 index 000000000..8d5fda7c1 --- /dev/null +++ b/packages/ui/src/UI/Tree/Tree.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "accordion": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/Tree/Tree.stories.mdx b/packages/ui/src/UI/Tree/Tree.stories.mdx new file mode 100644 index 000000000..2e40d16fb --- /dev/null +++ b/packages/ui/src/UI/Tree/Tree.stories.mdx @@ -0,0 +1,60 @@ +import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; +import { example as treeExample } from "./Tree.stories.tsx"; +import { Tree, TreeGroup, TreeItem } from "."; + + + +# Tree + +{treeExample()} + +## Keyboard Support + +### Enter or Space + +Performs the default action (e.g. onclick event) for the focused node. +In this example, the default action is to update the File or Folder Selected textbox. + +### Down arrow + +Moves focus to the next node that is focusable without opening or closing a node. +If focus is on the last node, does nothing. + +### Up arrow + +Moves focus to the previous node that is focusable without opening or closing a node. +If focus is on the first node, does nothing. + +### Right Arrow + +When focus is on a closed node, opens the node; focus does not move. +When focus is on a open node, moves focus to the first child node. +When focus is on an end node, does nothing. + +### Left Arrow + +When focus is on an open node, closes the node. +When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node. +When focus is on a root node that is also either an end node or a closed node, does nothing. + +### Home + +Moves focus to first node without opening or closing a node. + +### End + +Moves focus to the last node that can be focused without expanding any nodes that are closed. + +## Props + +### Tree + + + +### TreeGroup + + + +### TreeItem + + diff --git a/packages/ui/src/UI/Tree/Tree.stories.tsx b/packages/ui/src/UI/Tree/Tree.stories.tsx new file mode 100644 index 000000000..de867528d --- /dev/null +++ b/packages/ui/src/UI/Tree/Tree.stories.tsx @@ -0,0 +1,83 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Tree, TreeGroup, TreeItem } from '.'; +import React from 'react'; + +const obj = { + title: 'Tree', + component: Tree, + includeStories: [], // or don't load this file at all +}; +export default obj; + +export const example = () => ( + + + `${expanded ? '⌄' : '›'} G1 ${focused ? '- has focus' : ''}` + } + > + {() => ( + <> + + `${expanded ? '⌄' : '›'} Group G1-1 ${ + focused ? '- has focus' : '' + }` + } + > + {() => ( + <> + + {({ focused }) => + `Item G1-1 1 ${focused ? '- has focus' : ''}` + } + + + {({ focused }) => + `Item G1-1 2 ${focused ? '- has focus' : ''}` + } + + + {({ focused }) => + `Item G1-1 3 ${focused ? '- has focus' : ''}` + } + + + )} + + + {({ focused }) => `Item G1-2 ${focused ? '- has focus' : ''}`} + + + )} + + + {({ focused }) => `Item G2 ${focused ? '- has focus' : ''}`} + + + {({ focused }) => `Item G3 ${focused ? '- has focus' : ''}`} + + +); diff --git a/packages/ui/src/UI/Tree/Tree.tsx b/packages/ui/src/UI/Tree/Tree.tsx new file mode 100644 index 000000000..0a930e923 --- /dev/null +++ b/packages/ui/src/UI/Tree/Tree.tsx @@ -0,0 +1,51 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent, useLayoutEffect, useRef } from 'react'; + +import { Accordion } from '@patternfly/react-core'; +import { TreeFocusProvider } from './TreeFocusProvider'; +import styles from './Tree.module.css'; + +export const Tree: FunctionComponent = ({ children }) => { + const ref = useRef(null); + + useLayoutEffect(() => { + if (ref.current) { + const itemInTabSequence = ref.current.querySelector( + `[role=treeitem][tabindex="0"]`, + ); + if (!itemInTabSequence) { + const firstTreeItem = ref.current.querySelector('[role=treeitem]'); + if (firstTreeItem) { + firstTreeItem.setAttribute('tabindex', '0'); + } + } + } + }); + return ( + +
+ + {children} + +
+
+ ); +}; diff --git a/packages/ui/src/UI/Tree/TreeFocusProvider.tsx b/packages/ui/src/UI/Tree/TreeFocusProvider.tsx new file mode 100644 index 000000000..693afa5a7 --- /dev/null +++ b/packages/ui/src/UI/Tree/TreeFocusProvider.tsx @@ -0,0 +1,211 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { + FocusEvent, + FunctionComponent, + KeyboardEvent, + MouseEvent as ReactMouseEvent, + RefObject, + createContext, + useContext, + useState, +} from 'react'; + +interface ITreeFocusContext { + focusedItem: HTMLElement | null; + setFocusedItem: (item: HTMLElement | null) => void; +} + +const TreeFocusContext = createContext(null); + +export const TreeFocusProvider: FunctionComponent = ({ children }) => { + const [focusedItem, setFocusedItem] = useState(null); + return ( + + {children} + + ); +}; + +export interface IUseTreeFocusProps { + ref: RefObject; + isExpandable?: boolean; + isExpanded?: boolean; + collapseTreeitem?: () => void; + expandTreeitem?: () => void; +} + +export const useTreeFocus = ({ + ref, + isExpandable = false, + isExpanded = false, + collapseTreeitem, + expandTreeitem, +}: IUseTreeFocusProps) => { + const context = useContext(TreeFocusContext); + if (!context) { + throw new Error(`useTreeFocus can be used only inside a Tree component`); + } + const { focusedItem, setFocusedItem } = context; + const getFocusableItems = (el: HTMLElement) => { + return Array.from( + el.closest('[role=tree]')?.querySelectorAll('[role=treeitem]') || [], + ).filter((el) => { + const group = el.parentElement?.closest('[aria-expanded]'); + if (group) { + return group.getAttribute('aria-expanded') === 'true'; + } + return true; + }); + }; + + const setFocus = (index: number, nodes: HTMLElement[]) => { + nodes.forEach((n) => n.setAttribute('tabindex', '-1')); + nodes[index].setAttribute('tabindex', '0'); + nodes[index].focus(); + }; + + const setFocusToPreviousItem = () => { + if (ref.current) { + const nodes = getFocusableItems(ref.current); + const idx = nodes?.indexOf(ref.current); + if (idx > 0) { + setFocus(idx - 1, nodes); + } + } + }; + const setFocusToNextItem = () => { + if (ref.current) { + const nodes = getFocusableItems(ref.current); + const idx = nodes?.indexOf(ref.current); + if (idx < nodes.length - 1) { + setFocus(idx + 1, nodes); + } + } + }; + // const setFocusToParentItem = () => { + // if (level > 1 && parentItem) { + // setFocus({ level: level - 1, position: parentItem.position }); + // } + // }; + const setFocusToFirstItem = () => { + if (ref.current) { + const nodes = getFocusableItems(ref.current); + setFocus(0, nodes); + } + }; + const setFocusToLastItem = () => { + if (ref.current) { + const nodes = getFocusableItems(ref.current); + setFocus(nodes.length - 1, nodes); + } + }; + const onKeyDown = (event: KeyboardEvent) => { + // don't handle keyboard events performed on child elements + if (event.target !== ref.current) { + return; + } + // ignore special keys + if (event.altKey || event.ctrlKey || event.metaKey) { + return; + } + switch (event.key) { + case ' ': + case 'Enter': + if (event.target === ref.current) { + // Create simulated mouse event to mimic the behavior of ATs + // and let the event handler handleClick do the housekeeping. + event.target.dispatchEvent( + new MouseEvent('click', { + view: window, + bubbles: true, + cancelable: true, + }), + ); + setFocusedItem(ref.current); + } + break; + case 'Escape': + setFocusedItem(null); + event.preventDefault(); + break; + case 'ArrowUp': + setFocusToPreviousItem(); + break; + case 'ArrowDown': + setFocusToNextItem(); + break; + case 'ArrowRight': + if (isExpandable) { + if (isExpanded) { + setFocusToNextItem(); + } else { + if (expandTreeitem) { + expandTreeitem(); + } + } + } + break; + case 'ArrowLeft': + if (isExpandable && isExpanded) { + if (collapseTreeitem) { + collapseTreeitem(); + } + } else { + // if (itemLevel === level) { + // setFocusToParentItem(); + // } + } + break; + case 'Home': + setFocusToFirstItem(); + break; + case 'End': + setFocusToLastItem(); + break; + default: + break; + } + }; + const onClick = (event: ReactMouseEvent) => { + if (ref.current) { + if (isExpandable && isExpanded) { + event.stopPropagation(); + } else { + const nodes = getFocusableItems(ref.current); + const idx = nodes?.indexOf(ref.current); + setFocus(idx, nodes); + setFocusedItem(ref.current); + } + } + }; + return { + focused: focusedItem && focusedItem === ref.current, + handlers: { + onKeyDown, + onClick, + onBlur: (event: FocusEvent) => { + if ( + (event.relatedTarget as HTMLElement | null)?.closest( + '[role=tree]', + ) !== ref.current?.closest('[role=tree]') + ) { + setFocusedItem(null); + } + }, + }, + }; +}; diff --git a/packages/ui/src/UI/Tree/TreeGroup.module.css b/packages/ui/src/UI/Tree/TreeGroup.module.css new file mode 100644 index 000000000..049c8b10b --- /dev/null +++ b/packages/ui/src/UI/Tree/TreeGroup.module.css @@ -0,0 +1,16 @@ +.button { + padding: 0 !important; +} + +.content { + font-size: inherit !important; +} + +.content > div { + box-sizing: border-box; + padding: + var(--pf-c-accordion__expanded-content-body--PaddingTop) 0 var(--pf-c-accordion__expanded-content-body--PaddingBottom) 1.2rem !important; +} +.hiddenContent { + display: none; +} diff --git a/packages/ui/src/UI/Tree/TreeGroup.module.css.d.ts b/packages/ui/src/UI/Tree/TreeGroup.module.css.d.ts new file mode 100644 index 000000000..154f70ddc --- /dev/null +++ b/packages/ui/src/UI/Tree/TreeGroup.module.css.d.ts @@ -0,0 +1,7 @@ +declare const styles: { + readonly "button": string; + readonly "content": string; + readonly "hiddenContent": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/Tree/TreeGroup.tsx b/packages/ui/src/UI/Tree/TreeGroup.tsx new file mode 100644 index 000000000..69e00e98d --- /dev/null +++ b/packages/ui/src/UI/Tree/TreeGroup.tsx @@ -0,0 +1,140 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AccordionContent, + AccordionItem, + AccordionToggle, +} from '@patternfly/react-core'; +import React, { + FunctionComponent, + MouseEvent, + PropsWithChildren, + ReactNode, + forwardRef, + useCallback, + useEffect, + useRef, + useState, +} from 'react'; + +import { css } from '@patternfly/react-styles'; +import styles from './TreeGroup.module.css'; +import { useTreeFocus } from './TreeFocusProvider'; + +export interface ITreeGroupProps { + id: string; + level: number; + setSize: number; + position: number; + expanded?: boolean; + renderLabel: (props: { expanded: boolean; focused: boolean }) => ReactNode; + children: (props: { expanded: boolean; focused: boolean }) => ReactNode; +} + +export const TreeGroup = forwardRef< + HTMLDivElement, + PropsWithChildren +>(function TreeGroup( + { id, expanded, level, setSize, position, renderLabel, children }, + ref, +) { + const divRef = useRef(null); + const [isExpanded, setIsExpanded] = useState(false); + const toggleExpand = useCallback(() => { + setIsExpanded(!isExpanded); + }, [isExpanded]); + const toggleExpandNoPropagation = useCallback( + (event: MouseEvent) => { + event.stopPropagation(); + toggleExpand(); + }, + [toggleExpand], + ); + + const expand = useCallback(() => setIsExpanded(true), []); + const collapse = useCallback(() => setIsExpanded(false), []); + + useEffect(() => { + if (expanded !== undefined) { + setIsExpanded(expanded); + } + }, [expanded]); + + const { focused, handlers: focusHandlers } = useTreeFocus({ + ref: divRef, + isExpandable: true, + isExpanded, + collapseTreeitem: collapse, + expandTreeitem: expand, + }); + + const handleRef = (el: HTMLDivElement | null) => { + divRef.current = el; + if (ref) { + if (typeof ref === 'function') { + ref(el); + } else { + // @ts-ignore + ref.current = el; + } + } + }; + + const Component: FunctionComponent = ({ children }) => ( + + {children} + + ); + + return ( +
{ + focusHandlers.onClick(event); + if (!event.isPropagationStopped()) { + toggleExpand(); + } + }} + > + + + {renderLabel({ expanded: isExpanded, focused: focused || false })} + + + {children({ expanded: isExpanded, focused: focused || false })} + + +
+ ); +}); diff --git a/packages/ui/src/UI/Tree/TreeItem.tsx b/packages/ui/src/UI/Tree/TreeItem.tsx new file mode 100644 index 000000000..58d89a6e1 --- /dev/null +++ b/packages/ui/src/UI/Tree/TreeItem.tsx @@ -0,0 +1,66 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { + HTMLAttributes, + PropsWithChildren, + ReactNode, + forwardRef, + useRef, +} from 'react'; + +import { useTreeFocus } from './TreeFocusProvider'; + +export interface ITreeItemProps extends HTMLAttributes { + level: number; + setSize: number; + position: number; + children: (props: { focused: boolean }) => ReactNode; +} + +export const TreeItem = forwardRef< + HTMLDivElement, + PropsWithChildren +>(function TreeItem({ level, setSize, position, children, ...props }, ref) { + const divRef = useRef(null); + const { focused, handlers: focusHandlers } = useTreeFocus({ + ref: divRef, + }); + + const handleRef = (el: HTMLDivElement | null) => { + divRef.current = el; + if (ref) { + if (typeof ref === 'function') { + ref(el); + } else { + // @ts-ignore + ref.current = el; + } + } + }; + return ( +
+ {children({ focused: focused || false })} +
+ ); +}); diff --git a/packages/ui/src/UI/Tree/index.ts b/packages/ui/src/UI/Tree/index.ts new file mode 100644 index 000000000..d2f2b21f5 --- /dev/null +++ b/packages/ui/src/UI/Tree/index.ts @@ -0,0 +1,19 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './Tree'; +export * from './TreeFocusProvider'; +export * from './TreeGroup'; +export * from './TreeItem'; diff --git a/packages/ui/src/UI/TruncatedString.module.css b/packages/ui/src/UI/TruncatedString.module.css new file mode 100644 index 000000000..82376e294 --- /dev/null +++ b/packages/ui/src/UI/TruncatedString.module.css @@ -0,0 +1,7 @@ +.fieldName { + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: 100%; +} \ No newline at end of file diff --git a/packages/ui/src/UI/TruncatedString.module.css.d.ts b/packages/ui/src/UI/TruncatedString.module.css.d.ts new file mode 100644 index 000000000..fee8f244d --- /dev/null +++ b/packages/ui/src/UI/TruncatedString.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "fieldName": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/TruncatedString.tsx b/packages/ui/src/UI/TruncatedString.tsx new file mode 100644 index 000000000..c924e28cc --- /dev/null +++ b/packages/ui/src/UI/TruncatedString.tsx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent } from 'react'; +import styles from './TruncatedString.module.css'; + +export interface ITruncatedStringProps { + title?: string; +} + +export const TruncatedString: FunctionComponent = ({ + title, + children, +}) => ( + + {children} + +); diff --git a/packages/ui/src/UI/dialogs/AboutDialog.tsx b/packages/ui/src/UI/dialogs/AboutDialog.tsx new file mode 100644 index 000000000..81aadf43f --- /dev/null +++ b/packages/ui/src/UI/dialogs/AboutDialog.tsx @@ -0,0 +1,59 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Modal } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +export type CloseCallback = () => void; + +export interface IAboutDialogProps { + title: string; + onClose: CloseCallback; + isOpen: boolean; + uiVersion: string; + runtimeVersion: string; +} + +export const AboutDialog: FunctionComponent = ({ + title, + onClose, + isOpen, + uiVersion, + runtimeVersion, +}) => { + return ( + + Close + , + ]} + > +
UI Version: {uiVersion}
+
Runtime Version: {runtimeVersion}
+
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/ChangeDocumentNameDialog.tsx b/packages/ui/src/UI/dialogs/ChangeDocumentNameDialog.tsx new file mode 100644 index 000000000..f4d8f3e6a --- /dev/null +++ b/packages/ui/src/UI/dialogs/ChangeDocumentNameDialog.tsx @@ -0,0 +1,86 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfirmationDialog, + IConfirmationDialogProps, +} from './ConfirmationDialog'; +import React, { + FunctionComponent, + useCallback, + useEffect, + useState, +} from 'react'; + +import { TextInput } from '@patternfly/react-core'; + +export interface IDocumentName { + id: string; + name: string; + isSource: boolean; +} +export interface IChangeDocumentNameDialogProps { + id?: string; + name?: string; + isSource?: boolean; + isOpen: IConfirmationDialogProps['isOpen']; + onCancel: IConfirmationDialogProps['onCancel']; + onConfirm: (updatedDocNameInfo: IDocumentName) => void; +} +export const ChangeDocumentNameDialog: FunctionComponent< + IChangeDocumentNameDialogProps +> = ({ id, name: initialName = '', isSource, isOpen, onCancel, onConfirm }) => { + const [documentName, setDocumentName] = useState(initialName); + + const reset = useCallback(() => { + setDocumentName(initialName); + }, [initialName]); + + const handleOnConfirm = useCallback(() => { + if (id && isSource !== undefined) { + onConfirm({ id: id, name: documentName, isSource: isSource }); + } + reset(); + }, [documentName, id, isSource, onConfirm, reset]); + + const handleOnCancel = useCallback(() => { + onCancel(); + reset(); + }, [onCancel, reset]); + + function handleOnNameChange(name: string) { + setDocumentName(name); + } + + // resync the internal state to the values passed in as props + useEffect(reset, [reset]); + + return ( + + handleOnNameChange(value)} + id={id} + name={documentName} + data-testid={id + '-parameter-text-input'} + /> + + ); +}; diff --git a/packages/ui/src/UI/dialogs/ConfirmationDialog.tsx b/packages/ui/src/UI/dialogs/ConfirmationDialog.tsx new file mode 100644 index 000000000..f6629d3f8 --- /dev/null +++ b/packages/ui/src/UI/dialogs/ConfirmationDialog.tsx @@ -0,0 +1,75 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Modal } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +export type ConfirmCallback = () => void; +export type CancelCallback = () => void; + +export interface IConfirmationDialogProps { + title: string; + description?: string; + dataTestid?: string; + onConfirm?: ConfirmCallback; + onCancel: CancelCallback; + isOpen: boolean; +} + +export const ConfirmationDialog: FunctionComponent< + IConfirmationDialogProps +> = ({ + title, + description, + dataTestid, + onCancel, + onConfirm, + isOpen, + children, +}) => { + return ( + + Confirm + , + , + ]} + > + {children} + + ); +}; diff --git a/packages/ui/src/UI/dialogs/ConstantDialog.stories.tsx b/packages/ui/src/UI/dialogs/ConstantDialog.stories.tsx new file mode 100644 index 000000000..f0e3b316b --- /dev/null +++ b/packages/ui/src/UI/dialogs/ConstantDialog.stories.tsx @@ -0,0 +1,50 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { boolean, select, text } from '@storybook/addon-knobs'; + +import { ConstantDialog } from './ConstantDialog'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'UI|Dialogs', + component: ConstantDialog, +}; +export default obj; +const options = [ + { label: 'Foo', value: 'foo' }, + { label: 'Bar', value: 'bar' }, + { label: 'Baz', value: 'baz' }, +]; + +const valueTypeOptions = options.map((o) => o.value); + +export const constantDialog = () => ( + boolean('Confirm', true)} + /> +); diff --git a/packages/ui/src/UI/dialogs/ConstantDialog.tsx b/packages/ui/src/UI/dialogs/ConstantDialog.tsx new file mode 100644 index 000000000..dc3949143 --- /dev/null +++ b/packages/ui/src/UI/dialogs/ConstantDialog.tsx @@ -0,0 +1,191 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfirmationDialog, + IConfirmationDialogProps, +} from './ConfirmationDialog'; +import { + Form, + FormGroup, + FormSelect, + FormSelectOption, + TextInput, + Tooltip, + ValidatedOptions, +} from '@patternfly/react-core'; + +import React, { + FunctionComponent, + useCallback, + useEffect, + useState, +} from 'react'; + +interface ValueTypeOption { + label: string; + value: string; +} + +export interface IConstant { + name: string; + value: string; + valueType: string; +} + +export interface IConstantDialogProps { + title: string; + name?: string; + value?: string; + valueType?: string; + valueTypeOptions: ValueTypeOption[]; + isOpen: IConfirmationDialogProps['isOpen']; + onCancel: IConfirmationDialogProps['onCancel']; + onConfirm: (constant: IConstant) => void; + onValidation: (name: string, value: string) => boolean; +} +export const ConstantDialog: FunctionComponent = ({ + title, + name: initialName = '', + value: initialValue = '', + valueType: initialValueType = '', + valueTypeOptions, + isOpen, + onCancel, + onConfirm, + onValidation, +}) => { + const [name, setName] = useState(initialName); + const [value, setValue] = useState(initialValue); + const [valueType, setValueType] = useState(initialValueType); + const [isConstantNameUnique, setConstantNameUnique] = useState(true); + const [isConstantValid, setConstantValid] = useState(false); + const [isConstantNameValid, setConstantNameValid] = useState( + ValidatedOptions.default, + ); + + const reset = useCallback(() => { + setName(initialName); + setValue(initialValue); + setValueType(initialValueType); + setConstantValid(false); + setConstantNameValid(ValidatedOptions.default); + setConstantNameUnique(true); + }, [initialName, initialValue, initialValueType]); + + const handleOnConfirm = useCallback(() => { + onConfirm({ name, value: value, valueType }); + reset(); + }, [onConfirm, reset, name, value, valueType]); + + const handleOnCancel = useCallback(() => { + onCancel(); + reset(); + }, [onCancel, reset]); + + function handleOnNameChange(name: string) { + validateConstant(name, value); + setName(name); + } + + function handleOnValueChange(value: string) { + validateConstant(name, value); + setValue(value); + } + + function validateConstant(name: string, value: string): boolean { + if (!name || name.length === 0) { + setConstantNameValid(ValidatedOptions.default); + setConstantValid(false); + return false; + } + const nameRegex = /^[a-zA-Z0-9_@-]+$/; + if (!nameRegex.test(name)) { + setConstantNameValid(ValidatedOptions.error); + return false; + } + setConstantNameValid(ValidatedOptions.success); + const isValid = onValidation(name, value); + setConstantValid(value.length > 0 && isValid); + setConstantNameUnique(isValid); + return isValid; + } + + // make sure to resync the internal state to the values passed in as props + useEffect(reset, [reset]); + + return ( + +
+ + {!isConstantNameUnique ? ( + A constant with this name already exists} + entryDelay={750} + exitDelay={100} + > + + + ) : ( + + )} + + + + + + + {valueTypeOptions.map(({ label, value }, idx) => ( + + ))} + + +
+
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/CustomClassDialog.stories.tsx b/packages/ui/src/UI/dialogs/CustomClassDialog.stories.tsx new file mode 100644 index 000000000..42595b020 --- /dev/null +++ b/packages/ui/src/UI/dialogs/CustomClassDialog.stories.tsx @@ -0,0 +1,51 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { boolean, select, text } from '@storybook/addon-knobs'; + +import { CustomClassDialog } from './CustomClassDialog'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'UI|Dialogs', + component: CustomClassDialog, +}; +export default obj; + +const options = [ + { label: 'Foo', value: 'foo' }, + { label: 'Bar', value: 'bar' }, + { label: 'Baz', value: 'baz' }, +]; + +const collectionTypeOptions = options.map((o) => o.value); + +export const customClassDialog = () => ( + +); diff --git a/packages/ui/src/UI/dialogs/CustomClassDialog.tsx b/packages/ui/src/UI/dialogs/CustomClassDialog.tsx new file mode 100644 index 000000000..84109b9f4 --- /dev/null +++ b/packages/ui/src/UI/dialogs/CustomClassDialog.tsx @@ -0,0 +1,131 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfirmationDialog, + IConfirmationDialogProps, +} from './ConfirmationDialog'; +import { + Form, + FormGroup, + FormSelect, + FormSelectOption, +} from '@patternfly/react-core'; +import React, { + FunctionComponent, + useCallback, + useEffect, + useState, +} from 'react'; + +interface ValueTypeOption { + label: string; + value: string; +} + +export interface ICustomClass { + customClassName: string; + collectionType: string; +} + +export interface ICustomClassDialogProps { + title: string; + customClassName: string; + customClassNames: string[] | null; + collectionType?: string; + collectionTypeOptions: ValueTypeOption[]; + isOpen: IConfirmationDialogProps['isOpen']; + onCancel: IConfirmationDialogProps['onCancel']; + onConfirm: (constant: ICustomClass) => void; +} +export const CustomClassDialog: FunctionComponent = ({ + title, + customClassName: initialCustomClassName = '', + customClassNames, + collectionType: initialCollectionType = '', + collectionTypeOptions, + isOpen, + onCancel, + onConfirm, +}) => { + const [customClassName, setCustomClassName] = useState( + initialCustomClassName, + ); + const [collectionType, setCollectionType] = useState(initialCollectionType); + + const reset = useCallback(() => { + setCustomClassName(initialCustomClassName); + setCollectionType(initialCollectionType); + }, [initialCustomClassName, initialCollectionType]); + + const handleOnConfirm = useCallback(() => { + onConfirm({ + customClassName: customClassName, + collectionType: collectionType, + }); + reset(); + }, [onConfirm, reset, customClassName, collectionType]); + + const handleOnCancel = useCallback(() => { + onCancel(); + reset(); + }, [onCancel, reset]); + + // make sure to resync the internal state to the values passed in as props + useEffect(reset, [reset]); + + return ( + 0 ? handleOnConfirm : undefined} + isOpen={isOpen} + > +
+ + + {isOpen && + customClassNames && + customClassNames.map((value, idx) => ( + + ))} + + + + + {collectionTypeOptions.map(({ label, value }, idx) => ( + + ))} + + +
+
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/ExportCatalogDialog.stories.tsx b/packages/ui/src/UI/dialogs/ExportCatalogDialog.stories.tsx new file mode 100644 index 000000000..86e7a735e --- /dev/null +++ b/packages/ui/src/UI/dialogs/ExportCatalogDialog.stories.tsx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ExportCatalogDialog } from './ExportCatalogDialog'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; +import { boolean } from '@storybook/addon-knobs'; + +const obj = { + title: 'UI|Dialogs', + component: ExportCatalogDialog, +}; +export default obj; + +export const exportCatalogDialog = () => ( + +); diff --git a/packages/ui/src/UI/dialogs/ExportCatalogDialog.tsx b/packages/ui/src/UI/dialogs/ExportCatalogDialog.tsx new file mode 100644 index 000000000..53321f1b6 --- /dev/null +++ b/packages/ui/src/UI/dialogs/ExportCatalogDialog.tsx @@ -0,0 +1,70 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfirmationDialog, + IConfirmationDialogProps, +} from './ConfirmationDialog'; +import { + Form, + FormGroup, + InputGroup, + InputGroupText, + TextInput, +} from '@patternfly/react-core'; +import React, { FunctionComponent, useState } from 'react'; + +export interface IExportCatalogDialogProps { + isOpen: IConfirmationDialogProps['isOpen']; + onCancel: IConfirmationDialogProps['onCancel']; + onConfirm: (filename: string) => void; +} +export const ExportCatalogDialog: FunctionComponent< + IExportCatalogDialogProps +> = ({ isOpen, onCancel, onConfirm }) => { + const defaultCatalogName = 'atlasmap-mapping'; + const [filename, setFilename] = useState(defaultCatalogName); + const handleOnConfirm = + filename.length > 0 ? () => onConfirm(filename) : undefined; + return ( + +
+ + + + .adm + + +
+
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/LookupTableDialog.module.css b/packages/ui/src/UI/dialogs/LookupTableDialog.module.css new file mode 100644 index 000000000..720afe508 --- /dev/null +++ b/packages/ui/src/UI/dialogs/LookupTableDialog.module.css @@ -0,0 +1,17 @@ +.iGroup { + margin-bottom: 1.0rem; + margin-left: 0.5rem; +} + +.iSelectBody { + font-size: small; + width: 48%; +} + +.iSelectLabel { + justify-content: center; + margin-right: 0.5rem; + margin-top: 0.2rem; + text-align: center; + width: 48%; +} diff --git a/packages/ui/src/UI/dialogs/LookupTableDialog.module.css.d.ts b/packages/ui/src/UI/dialogs/LookupTableDialog.module.css.d.ts new file mode 100644 index 000000000..394baa3a2 --- /dev/null +++ b/packages/ui/src/UI/dialogs/LookupTableDialog.module.css.d.ts @@ -0,0 +1,7 @@ +declare const styles: { + readonly "iGroup": string; + readonly "iSelectBody": string; + readonly "iSelectLabel": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/dialogs/LookupTableDialog.tsx b/packages/ui/src/UI/dialogs/LookupTableDialog.tsx new file mode 100644 index 000000000..681bf3a0f --- /dev/null +++ b/packages/ui/src/UI/dialogs/LookupTableDialog.tsx @@ -0,0 +1,84 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Form, + FormGroup, + FormSelect, + FormSelectOption, + Label, +} from '@patternfly/react-core'; +import React, { FunctionComponent, useState } from 'react'; + +import { IConfirmationDialogProps } from './ConfirmationDialog'; +import styles from './LookupTableDialog.module.css'; + +export type LookupTableData = { + sourceEnumValue: string; + targetEnumValues: string[]; + selectedTargetEnumValue: string; +}; +export interface ILookupTableDialogProps { + enumerationValue: LookupTableData; + sourceKey: number; + isOpen: IConfirmationDialogProps['isOpen']; +} + +export const LookupTableDialog: FunctionComponent = ({ + enumerationValue, + sourceKey, + isOpen, +}) => { + const [targetEnum, setTargetEnum] = useState( + enumerationValue.selectedTargetEnumValue, + ); + + const onChangeTargetEnum = ( + enumValue: string, + _event: React.FormEvent, + ) => { + setTargetEnum(enumValue); + enumerationValue.selectedTargetEnumValue = enumValue; + }; + + return ( +
+ + + + {isOpen && + enumerationValue.targetEnumValues && + enumerationValue.targetEnumValues.map((value, idx) => ( + + ))} + + +
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/NamespaceDialog.stories.tsx b/packages/ui/src/UI/dialogs/NamespaceDialog.stories.tsx new file mode 100644 index 000000000..a7352ce88 --- /dev/null +++ b/packages/ui/src/UI/dialogs/NamespaceDialog.stories.tsx @@ -0,0 +1,39 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { boolean, text } from '@storybook/addon-knobs'; + +import { NamespaceDialog } from './NamespaceDialog'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'UI|Dialogs', + component: NamespaceDialog, +}; +export default obj; + +export const namespaceDialog = () => ( + +); diff --git a/packages/ui/src/UI/dialogs/NamespaceDialog.tsx b/packages/ui/src/UI/dialogs/NamespaceDialog.tsx new file mode 100644 index 000000000..5f7b7a0c4 --- /dev/null +++ b/packages/ui/src/UI/dialogs/NamespaceDialog.tsx @@ -0,0 +1,120 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Checkbox, Form, FormGroup, TextInput } from '@patternfly/react-core'; +import { + ConfirmationDialog, + IConfirmationDialogProps, +} from './ConfirmationDialog'; +import React, { + FunctionComponent, + useCallback, + useEffect, + useState, +} from 'react'; + +export interface INamespace { + alias: string; + uri: string; + locationUri: string; + targetNamespace: boolean; +} + +export interface INamespaceDialogProps { + title: string; + alias?: string; + uri?: string; + locationUri?: string; + targetNamespace?: boolean; + isOpen: IConfirmationDialogProps['isOpen']; + onCancel: IConfirmationDialogProps['onCancel']; + onConfirm: (namespace: INamespace) => void; +} +export const NamespaceDialog: FunctionComponent = ({ + title, + alias: initialAlias = '', + uri: initialUri = '', + locationUri: initialLocationUri = '', + targetNamespace: initialTargetNamespace = false, + isOpen, + onCancel, + onConfirm, +}) => { + const [alias, setAlias] = useState(initialAlias); + const [uri, setUri] = useState(initialUri); + const [locationUri, setLocationUri] = useState(initialLocationUri); + const [targetNamespace, setTargetNamespace] = useState( + initialTargetNamespace, + ); + + const reset = useCallback(() => { + setAlias(initialAlias); + setUri(initialUri); + setLocationUri(initialLocationUri); + setTargetNamespace(initialTargetNamespace); + }, [initialAlias, initialLocationUri, initialTargetNamespace, initialUri]); + + const handleOnConfirm = useCallback(() => { + onConfirm({ alias, uri, locationUri, targetNamespace }); + reset(); + }, [alias, locationUri, onConfirm, reset, targetNamespace, uri]); + + const handleOnCancel = useCallback(() => { + onCancel(); + reset(); + }, [onCancel, reset]); + + // make sure to resync the internal state to the values passed in as props + useEffect(reset, [reset]); + + return ( + 0 ? handleOnConfirm : undefined} + isOpen={isOpen} + > +
+ + + + + + + + + + + + +
+
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/ParametersDialog.stories.tsx b/packages/ui/src/UI/dialogs/ParametersDialog.stories.tsx new file mode 100644 index 000000000..9b93a795f --- /dev/null +++ b/packages/ui/src/UI/dialogs/ParametersDialog.stories.tsx @@ -0,0 +1,158 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { boolean, text } from '@storybook/addon-knobs'; +import { ParametersDialog } from './ParametersDialog'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; +import { getCsvParameterOptions } from '@atlasmap/core'; + +const obj = { + title: 'UI|Dialogs', + component: ParametersDialog, +}; +export default obj; + +const initialParameters = [ + { + name: 'format', + label: 'CSV File Format', + value: 'Excel', + options: [ + { label: 'Default', value: 'Default' }, + { label: 'Excel', value: 'Excel' }, + { label: 'InformixUnload', value: 'InformixUnload' }, + { label: 'InformixUnloadCsv', value: 'InformixUnloadCsv' }, + { label: 'MongoDBCsv', value: 'MongoDBCsv' }, + { label: 'MongoDBTsv', value: 'MongoDBTsv' }, + { label: 'MySQL', value: 'MySQL' }, + { label: 'Oracle', value: 'Oracle' }, + { label: 'PostgreSQLCsv', value: 'PostgreSQLCsv' }, + { label: 'PostgreSQLText', value: 'PostgreSQLText' }, + { label: 'RFC4180', value: 'RFC4180' }, + { label: 'TDF', value: 'TDF' }, + ], + required: true, + enabled: true, + }, + { + name: 'allowDuplicateHeaderNames', + label: 'Allow Duplicate Header Names', + value: 'true', + boolean: true, + required: false, + enabled: true, + }, + { + name: 'allowMissingColumnNames', + label: 'Allow Missing Column Names', + value: 'true', + boolean: true, + required: false, + enabled: true, + }, + { + name: 'commentMarker', + label: 'Comment Marker', + value: '#', + required: false, + enabled: true, + }, + { + name: 'delimiter', + label: 'Delimiter', + value: ':', + required: false, + enabled: true, + }, + { + name: 'escape', + label: 'Escape', + value: '', + required: false, + enabled: true, + }, + { + name: 'firstRecordAsHeader', + label: 'First Record As Header', + value: 'false', + boolean: true, + required: false, + enabled: true, + }, + { name: 'headers', label: 'Headers', value: 'hdr', required: false }, + { + name: 'ignoreEmptyLines', + label: 'Ignore Empty Lines', + value: 'true', + boolean: true, + required: false, + enabled: true, + }, + { + name: 'ignoreHeaderCase', + label: 'Ignore Header Case', + value: 'false', + boolean: true, + required: false, + enabled: true, + }, + { + name: 'ignoreSurroundingSpaces', + label: 'Ignore Surrounding Spaces', + value: 'true', + boolean: true, + required: false, + enabled: true, + }, + { + name: 'nullString', + label: 'Null String', + value: '', + required: false, + enabled: true, + }, + { name: 'quote', label: 'Quote', value: '', required: false, enabled: false }, +]; + +const parameters = getCsvParameterOptions(); +/** + * The 'Select' parameters dialog doesn't specify predefined parameters, the + * 'Edit' dialog does. + * + * @returns + */ +export const parametersSelectDialog = () => ( + +); + +export const parametersEditDialog = () => ( + +); diff --git a/packages/ui/src/UI/dialogs/ParametersDialog.tsx b/packages/ui/src/UI/dialogs/ParametersDialog.tsx new file mode 100644 index 000000000..ed43a26e2 --- /dev/null +++ b/packages/ui/src/UI/dialogs/ParametersDialog.tsx @@ -0,0 +1,249 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Button, + Form, + FormGroup, + FormSelect, + FormSelectOption, + InputGroup, + Switch, + TextInput, +} from '@patternfly/react-core'; +import { + ConfirmationDialog, + IConfirmationDialogProps, +} from './ConfirmationDialog'; +import { PlusIcon, TrashIcon } from '@patternfly/react-icons'; +import React, { + FunctionComponent, + useCallback, + useEffect, + useState, +} from 'react'; +import { IParameter } from '@atlasmap/core'; + +export interface IParametersDialogProps { + title: string; + readonly parameters: IParameter[]; + readonly initialParameters: IParameter[]; + isOpen: IConfirmationDialogProps['isOpen']; + onCancel: IConfirmationDialogProps['onCancel']; + onConfirm: (parameters: IParameter[]) => void; +} + +export const ParametersDialog: FunctionComponent = ({ + title, + parameters: totalAvailableParameters = [], + initialParameters, + isOpen, + onCancel, + onConfirm, +}) => { + // Defined parameters are the current working set of user-selected parameters. + const [definedParameters, setDefinedParameters] = useState([]); + + // Available parameters are: (total-available-parameters - defined-parameters). + const availableParameters: IParameter[] = totalAvailableParameters.filter( + (param) => !definedParameters.map((p) => p.name).includes(param.name), + ); + + const reset = useCallback(() => { + if (initialParameters) { + setDefinedParameters(initialParameters); + } else { + setDefinedParameters([]); + } + }, [initialParameters]); + + // Callback to actually set the list of user-selected (defined) parameters. + const handleOnConfirm = useCallback(() => { + onConfirm(definedParameters); + }, [definedParameters, onConfirm]); + + const handleOnCancel = useCallback(() => { + onCancel(); + reset(); + }, [onCancel, reset]); + + const handleAddParameter = useCallback(() => { + setDefinedParameters( + definedParameters.concat({ ...availableParameters[0] }), + ); + }, [definedParameters, availableParameters]); + + const handleRemoveParameter = useCallback( + (parameter: IParameter) => { + setDefinedParameters(definedParameters.filter((p) => p !== parameter)); + }, + [definedParameters], + ); + + const handleChangeParameterValue = useCallback( + (index, value) => { + const parameters = [...definedParameters]; + const parameter = { ...parameters[index], value: value }; + parameters[index] = parameter; + setDefinedParameters(parameters); + }, + [definedParameters], + ); + + const handleChangeParameter = useCallback( + (index, availableParameterIndex) => { + if (availableParameterIndex === 0) { + return; //nothing changed + } + const parameters = [...definedParameters]; + const parameter = { ...availableParameters[availableParameterIndex - 1] }; + parameters[index] = parameter; + setDefinedParameters(parameters); + }, + [definedParameters, availableParameters], + ); + + const formLabelColumnWidth = { + '--pf-c-form--m-horizontal--md__group--GridTemplateColumns': '340px 1fr', + '--pf-c-form--GridGap': '0.5rem', + } as React.CSSProperties; + const formLabelParamRequired = { + '--pf-c-form__label--FontSize': 'large', + '--pf-c-form--m-horizontal--md__group--GridTemplateColumns': '140px 1fr', + marginBottom: '1.0rem', + } as React.CSSProperties; + const formLabelTopPadding = { + '--pf-c-form--m-horizontal__group-label--md--GridColumnWidth': '380px', + '--pf-c-form--m-horizontal__group-label--md--PaddingTop': '0rem', + } as React.CSSProperties; + + useEffect(reset, [reset]); + + return ( + 0 ? handleOnConfirm : undefined} + isOpen={isOpen} + > +
+ {definedParameters.map((parameter, index) => ( + {parameter.label} + ) : ( + + handleChangeParameter(index, availableParameterIndex) + } + > + {[parameter] + .concat(availableParameters) + .map((parameter, index) => ( + + ))} + + ) + } + > + + {parameter.boolean ? ( + + { + handleChangeParameterValue(index, String(checked)); + }} + /> + + ) : parameter.options && parameter.options.length > 0 ? ( + handleChangeParameterValue(index, value)} + id={parameter.name} + name={parameter.name} + data-testid={parameter.name + '-parameter-form-select'} + > + {parameter.options.map(({ label, value }, idx) => ( + + ))} + + ) : ( + handleChangeParameterValue(index, value)} + id={parameter.name} + name={parameter.name} + data-testid={parameter.name + '-parameter-text-input'} + /> + )} + {!parameter.required && ( + + )} + + + ))} + + + +
+
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/PropertyDialog.stories.tsx b/packages/ui/src/UI/dialogs/PropertyDialog.stories.tsx new file mode 100644 index 000000000..f93b403be --- /dev/null +++ b/packages/ui/src/UI/dialogs/PropertyDialog.stories.tsx @@ -0,0 +1,73 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { boolean, select, text } from '@storybook/addon-knobs'; + +import { PropertyDialog } from './PropertyDialog'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; + +const obj = { + title: 'UI|Dialogs', + component: PropertyDialog, +}; +export default obj; + +const options = [ + { label: 'Foo', value: 'foo' }, + { label: 'Bar', value: 'bar' }, + { label: 'Baz', value: 'baz' }, +]; + +const valueTypeOptions = options.map((o) => o.value); +const scopeOptions = options.map((o) => o.value); + +export const sourcePropertyDialog = () => ( + boolean('Confirm', true)} + /> +); + +export const targetPropertyDialog = () => ( + boolean('Confirm', true)} + /> +); diff --git a/packages/ui/src/UI/dialogs/PropertyDialog.tsx b/packages/ui/src/UI/dialogs/PropertyDialog.tsx new file mode 100644 index 000000000..d576b017b --- /dev/null +++ b/packages/ui/src/UI/dialogs/PropertyDialog.tsx @@ -0,0 +1,219 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfirmationDialog, + IConfirmationDialogProps, +} from './ConfirmationDialog'; +import { + Form, + FormGroup, + FormSelect, + FormSelectOption, + TextInput, + Tooltip, + ValidatedOptions, +} from '@patternfly/react-core'; +import React, { + FunctionComponent, + useCallback, + useEffect, + useState, +} from 'react'; + +interface ValueLabelOption { + label: string; + value: string; +} + +export interface IProperty { + name: string; + valueType: string; + scope: string; +} + +export interface IPropertyDialogProps { + title: string; + name?: string; + valueType?: string; + valueTypeOptions: ValueLabelOption[]; + scope?: string; + scopeOptions: ValueLabelOption[]; + isOpen: IConfirmationDialogProps['isOpen']; + onCancel: IConfirmationDialogProps['onCancel']; + onConfirm: (property: IProperty) => void; + onValidation: (name: string, scope: string) => boolean; +} +export const PropertyDialog: FunctionComponent = ({ + title, + name: initialName = '', + valueType: initialValueType = '', + valueTypeOptions, + scope: initialScope = '', + scopeOptions, + isOpen, + onCancel, + onConfirm, + onValidation, +}) => { + const [name, setName] = useState(initialName); + const [valueType, setValueType] = useState(initialValueType); + const [scope, setScope] = useState(initialScope); + const [isPropertyValid, setPropertyValid] = useState(false); + const [isPropertyNameValid, setPropertyNameValid] = useState( + ValidatedOptions.default, + ); + const [isNameAndScopeUnique, setNameAndScopeUnique] = useState(false); + + const reset = useCallback(() => { + setName(initialName); + setValueType(initialValueType); + setScope(initialScope); + setPropertyValid(false); + setPropertyNameValid(ValidatedOptions.default); + setNameAndScopeUnique(false); + }, [initialName, initialValueType, initialScope]); + + const handleOnConfirm = useCallback(() => { + onConfirm({ name, valueType, scope }); + reset(); + }, [name, onConfirm, reset, valueType, scope]); + + const handleOnCancel = useCallback(() => { + onCancel(); + reset(); + }, [onCancel, reset]); + + function handleOnNameChange(name: string) { + validateProperty(name, scope); + setName(name); + } + + function handleOnScopeChange(scope: string) { + if (validateProperty(name, scope)) { + setScope(scope); + } + } + + function validateProperty(name: string, scope: string): boolean { + if (!name || name.length === 0) { + setPropertyNameValid(ValidatedOptions.default); + setPropertyValid(false); + return false; + } + const nameRegex = /^[a-zA-Z0-9_@]+$/; + if (!nameRegex.test(name)) { + setPropertyNameValid(ValidatedOptions.error); + return false; + } + setPropertyNameValid(ValidatedOptions.success); + const isValid = onValidation(name, scope); + setNameAndScopeUnique(isValid); + setPropertyValid(name.length > 0 && isValid); + return isValid; + } + + // make sure to resync the internal state to the values passed in as props + useEffect(reset, [reset]); + + return ( + +
+ + {!isNameAndScopeUnique ? ( + A property with this name and scope already exists + } + entryDelay={750} + exitDelay={100} + > + + + ) : ( + + )} + + + + {valueTypeOptions.map(({ label, value }, idx) => ( + + ))} + + + + {!isNameAndScopeUnique ? ( + A property with this name and scope already exists + } + entryDelay={750} + exitDelay={100} + > + + {scopeOptions.map(({ label, value }, idx) => ( + + ))} + + + ) : ( + + {scopeOptions.map(({ label, value }, idx) => ( + + ))} + + )} + +
+
+ ); +}; diff --git a/packages/ui/src/UI/dialogs/index.ts b/packages/ui/src/UI/dialogs/index.ts new file mode 100644 index 000000000..9c44ab246 --- /dev/null +++ b/packages/ui/src/UI/dialogs/index.ts @@ -0,0 +1,25 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './AboutDialog'; +export * from './ConfirmationDialog'; +export * from './ConstantDialog'; +export * from './CustomClassDialog'; +export * from './ChangeDocumentNameDialog'; +export * from './ExportCatalogDialog'; +export * from './LookupTableDialog'; +export * from './NamespaceDialog'; +export * from './PropertyDialog'; +export * from './ParametersDialog'; diff --git a/packages/ui/src/UI/dnd/Drag-and-drop.stories.mdx b/packages/ui/src/UI/dnd/Drag-and-drop.stories.mdx new file mode 100644 index 000000000..ffcf567a0 --- /dev/null +++ b/packages/ui/src/UI/dnd/Drag-and-drop.stories.mdx @@ -0,0 +1,26 @@ +import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; +import * as stories from "./Drag-and-drop.stories.tsx"; +import { DraggableField, FieldDropTarget } from "."; +import decorators from "../../stories/decorators"; + + + +# Drag & drop + +{stories.example()} + +## DraggableField Props + + + +## FieldDropTarget Props + + + +## Stories + +### Can be used with NodesArc + + + {stories.canBeUsedWithNodesArc()} + diff --git a/packages/ui/src/UI/dnd/Drag-and-drop.stories.tsx b/packages/ui/src/UI/dnd/Drag-and-drop.stories.tsx new file mode 100644 index 000000000..40c0ca8a0 --- /dev/null +++ b/packages/ui/src/UI/dnd/Drag-and-drop.stories.tsx @@ -0,0 +1,212 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Canvas, + CanvasProvider, + Document, + DraggableField, + FieldDropTarget, + HTMLObject, + NodeRef, + NodeRefProvider, + NodesArc, +} from '..'; + +import React from 'react'; +import { action } from '@storybook/addon-actions'; +import decorators from '../../stories/decorators'; + +const obj = { + title: 'Drag & Drop', + includeStories: [], // or don't load this file at all + decorators, +}; +export default obj; + +export const example = () => ( + + + + + {({ isDragging }) =>
{isDragging ? 'dragging' : 'drag me'}
} +
+
+ + true} + > + {({ isOver, isDroppable, field }) => ( +
+

Drop here!

+

+ isOver: {isOver ? 'yes' : 'no'} +
+ isDroppable: {isDroppable ? 'yes' : 'no'} +
+ field: {JSON.stringify(field, null, 2)} +

+
+ )} +
+
+
+
+); + +export const canBeUsedWithNodesArc = () => ( + +
+

+ Canvas area is dashed. +

+ + + + + {({ isDragging }) => ( + + + {isDragging ? 'Dragging' : 'Drag me'} + + + )} + + + {({ isDragging }) => ( + + + {isDragging ? 'Dragging' : 'Drag me'} + + + )} + + + + item.id === 'f2'} + style={{ height: '100%' }} + > + {({ isDroppable, isTarget }) => ( + + + {isTarget + ? 'GIMME!' + : isDroppable + ? 'Drop here!' + : 'Drop area'} + + + )} + + item.id === 'f1'} + style={{ height: '100%' }} + > + {({ isDroppable, isTarget }) => ( + + + {isTarget + ? 'GIMME!' + : isDroppable + ? 'Drop here!' + : 'Drop area'} + + + )} + + item.id === 'f1'} + style={{ height: '100%' }} + > + {({ isDroppable, isTarget }) => ( + + + {isTarget + ? 'GIMME!' + : isDroppable + ? 'Drop here!' + : 'Also field #1 drop area'} + + + )} + + + + + + +
+

Can drag & drop outside the canvas too.

+ item.id === 'f1'} + style={{ height: '100%' }} + > + {({ isDroppable, isTarget }) => ( + + {isTarget + ? 'GIMME!' + : isDroppable + ? 'Drop here!' + : 'Also field #1 drop area, but outside the canvas'} + + )} + +
+
+
+); diff --git a/packages/ui/src/UI/dnd/DraggableField.tsx b/packages/ui/src/UI/dnd/DraggableField.tsx new file mode 100644 index 000000000..2c8c6afce --- /dev/null +++ b/packages/ui/src/UI/dnd/DraggableField.tsx @@ -0,0 +1,83 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { + ElementType, + HTMLAttributes, + ReactElement, + forwardRef, + useEffect, +} from 'react'; + +import { IDragAndDropField } from './models'; +import { getEmptyImage } from 'react-dnd-html5-backend'; +import { useDrag } from 'react-dnd'; + +export interface IDraggableChildrenProps { + isDragging: boolean; +} + +export interface IDraggableProps + extends Omit, 'onDrop'> { + field: IDragAndDropField; + onDrop: (source: IDragAndDropField, target: IDragAndDropField | null) => void; + as?: ElementType; + children: (props: IDraggableChildrenProps) => ReactElement; +} + +export const DraggableField = forwardRef( + function DraggableField( + { field, onDrop, as: As = 'div', children, ...props }, + ref, + ) { + const [{ isDragging }, dragRef, preview] = useDrag< + IDragAndDropField, + IDragAndDropField, + Omit + >({ + type: field.type, + item: field, + collect: (monitor) => ({ + isDragging: monitor.isDragging(), + }), + end: (_, monitor) => { + if (monitor.didDrop()) { + onDrop(field, monitor.getDropResult()); + } + }, + }); + + useEffect(() => { + preview(getEmptyImage(), { captureDraggingState: true }); + }, [preview]); + + const handleRef = (el: HTMLElement) => { + if (ref) { + // @ts-ignore + // by default forwardedRef.current is readonly. Let's ignore it + ref.current = el; + } + dragRef(el); + }; + + return ( + + {children({ + isDragging, + })} + + ); + }, +); diff --git a/packages/ui/src/UI/dnd/DraggedField.tsx b/packages/ui/src/UI/dnd/DraggedField.tsx new file mode 100644 index 000000000..521e3edd0 --- /dev/null +++ b/packages/ui/src/UI/dnd/DraggedField.tsx @@ -0,0 +1,51 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent, ReactElement } from 'react'; +import { XYCoord, useDragLayer } from 'react-dnd'; + +import { IDragAndDropField } from './models'; +import { useFieldsDnd } from './FieldsDndProvider'; + +export interface IIDraggedFieldChildrenProps { + isDragging: boolean; + currentOffset: XYCoord | null; + draggedField: IDragAndDropField | null; + getHoveredTarget: () => IDragAndDropField | null; +} + +export interface IDraggedFieldProps { + children: (props: IIDraggedFieldChildrenProps) => ReactElement | null; +} + +export const DraggedField: FunctionComponent = ({ + children, +}) => { + const { getHoveredTarget } = useFieldsDnd(); + const { isDragging, draggedField, currentOffset } = useDragLayer< + Omit + >((monitor) => ({ + draggedField: monitor.getItem(), + currentOffset: monitor.getClientOffset(), + isDragging: monitor.isDragging(), + })); + + return children({ + isDragging, + currentOffset, + draggedField, + getHoveredTarget, + }); +}; diff --git a/packages/ui/src/UI/dnd/FieldDragLayer.module.css b/packages/ui/src/UI/dnd/FieldDragLayer.module.css new file mode 100644 index 000000000..36024d676 --- /dev/null +++ b/packages/ui/src/UI/dnd/FieldDragLayer.module.css @@ -0,0 +1,9 @@ +.canvasObject { + pointer-events: none; +} + +.canvasInner { + display: inline-block; + margin: auto; +} + diff --git a/packages/ui/src/UI/dnd/FieldDragLayer.module.css.d.ts b/packages/ui/src/UI/dnd/FieldDragLayer.module.css.d.ts new file mode 100644 index 000000000..2557d2f0c --- /dev/null +++ b/packages/ui/src/UI/dnd/FieldDragLayer.module.css.d.ts @@ -0,0 +1,6 @@ +declare const styles: { + readonly "canvasObject": string; + readonly "canvasInner": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/dnd/FieldDragLayer.tsx b/packages/ui/src/UI/dnd/FieldDragLayer.tsx new file mode 100644 index 000000000..713865c22 --- /dev/null +++ b/packages/ui/src/UI/dnd/FieldDragLayer.tsx @@ -0,0 +1,50 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { FunctionComponent, useEffect } from 'react'; + +import { DraggedField } from './DraggedField'; +import { Label } from '@patternfly/react-core'; +import styles from './FieldDragLayer.module.css'; +import { useDimensions } from '../useDimensions'; + +export const FieldDragLayer: FunctionComponent = () => { + const [ref, dimensions, measure] = useDimensions(); + useEffect(measure); + + return ( + + {({ isDragging, currentOffset, draggedField }) => + isDragging && currentOffset && draggedField ? ( +
+
+ +
+
+ ) : null + } +
+ ); +}; diff --git a/packages/ui/src/UI/dnd/FieldDropTarget.tsx b/packages/ui/src/UI/dnd/FieldDropTarget.tsx new file mode 100644 index 000000000..77a7ab725 --- /dev/null +++ b/packages/ui/src/UI/dnd/FieldDropTarget.tsx @@ -0,0 +1,96 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { + ElementType, + HTMLAttributes, + ReactElement, + forwardRef, + useEffect, + useRef, + // useEffect, +} from 'react'; +import { IDragAndDropField } from './models'; +import { useDrop } from 'react-dnd'; +import { useFieldsDnd } from './FieldsDndProvider'; + +export interface IFieldDropTargetChildren { + isOver: boolean; + isDroppable: boolean; + isTarget: boolean; + field: IDragAndDropField; +} + +export interface IFieldDropTargetProps + extends Omit, 'onDrop'> { + accept: string[]; + target: IDragAndDropField; + canDrop: (draggedField: IDragAndDropField) => boolean; + as?: ElementType; + children: (props: IFieldDropTargetChildren) => ReactElement; +} + +export const FieldDropTarget = forwardRef( + function FieldDropTarget( + { accept, target, canDrop, as: As = 'div', children, ...props }, + ref, + ) { + const { setHoveredTarget } = useFieldsDnd(); + const [{ isOver, isDroppable, isTarget, field }, dropRef] = useDrop< + IDragAndDropField, + IDragAndDropField, + IFieldDropTargetChildren + >({ + accept, + collect: (monitor) => ({ + isOver: monitor.isOver(), + isDroppable: monitor.canDrop(), + isTarget: monitor.isOver() && monitor.canDrop(), + field: monitor.getItem(), + }), + canDrop: (_, monitor) => canDrop(monitor.getItem()), + drop: () => target, + }); + + const handleRef = (el: HTMLElement) => { + if (ref) { + // @ts-ignore + // by default forwardedRef.current is readonly. Let's ignore it + ref.current = el; + } + dropRef(el); + }; + + const wasOver = useRef(false); + const wasTarget = useRef(false); + useEffect(() => { + if (isOver !== wasOver.current || isTarget !== wasTarget.current) { + if (isTarget) { + setHoveredTarget(target); + } else if (!isOver) { + setHoveredTarget(null); + } + wasOver.current = isOver; + wasTarget.current = isTarget; + } + }, [isOver, isTarget, setHoveredTarget, target]); + + return ( + + {children({ isDroppable, isOver, isTarget, field })} + + ); + }, +); diff --git a/packages/ui/src/UI/dnd/FieldsDndProvider.tsx b/packages/ui/src/UI/dnd/FieldsDndProvider.tsx new file mode 100644 index 000000000..4d63cd694 --- /dev/null +++ b/packages/ui/src/UI/dnd/FieldsDndProvider.tsx @@ -0,0 +1,77 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import +{ + FunctionComponent, + createContext, + useContext, + useRef, +} from 'react'; +import { DndProvider } from 'react-dnd'; +import { HTML5Backend } from 'react-dnd-html5-backend'; +import { IDragAndDropField } from './models'; +import { TouchBackend } from 'react-dnd-touch-backend'; + +const probablyTouch = + window.matchMedia && + (window.matchMedia('(pointer: none)').matches || + window.matchMedia('(pointer: coarse)').matches) && + window.matchMedia('(hover: none)').matches; + +const TouchAndPointerProvider: FunctionComponent = ({ children }) => { + return ( + + {children} + + ); +}; + +const MouseOnlyProvider: FunctionComponent = ({ children }) => ( + {children} +); + +interface IFieldsDndContext { + getHoveredTarget: () => IDragAndDropField | null; + setHoveredTarget: (target: IDragAndDropField | null) => void; +} + +const FieldsDndContext = createContext(null); + +export const FieldsDndProvider: FunctionComponent = ({ children }) => { + const hoveredTarget = useRef(null); + const getHoveredTarget = () => hoveredTarget.current; + const setHoveredTarget = (target: IDragAndDropField | null) => + (hoveredTarget.current = target); + const Provider = probablyTouch ? TouchAndPointerProvider : MouseOnlyProvider; + return ( + + + {children} + + + ); +}; + +export function useFieldsDnd() { + const context = useContext(FieldsDndContext); + if (!context) { + throw new Error( + 'A FieldsDndProvider wrapper is required to use this hook.', + ); + } + + return context; +} diff --git a/packages/ui/src/UI/dnd/index.ts b/packages/ui/src/UI/dnd/index.ts new file mode 100644 index 000000000..1978c5560 --- /dev/null +++ b/packages/ui/src/UI/dnd/index.ts @@ -0,0 +1,21 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './DraggedField'; +export * from './DraggableField'; +export * from './FieldDropTarget'; +export * from './FieldsDndProvider'; +export * from './FieldDragLayer'; +export * from './models'; diff --git a/packages/ui/src/UI/dnd/models.ts b/packages/ui/src/UI/dnd/models.ts new file mode 100644 index 000000000..18cb6ecd9 --- /dev/null +++ b/packages/ui/src/UI/dnd/models.ts @@ -0,0 +1,21 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export interface IDragAndDropField { + type: 'source' | 'target' | 'mapping'; + id: string; + name: string; + payload?: any; // TODO: I hate this +} diff --git a/packages/ui/src/UI/index.ts b/packages/ui/src/UI/index.ts new file mode 100644 index 000000000..bc14ec7ac --- /dev/null +++ b/packages/ui/src/UI/index.ts @@ -0,0 +1,41 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './Canvas'; +export * from './ColumnMapper'; +export * from './dnd'; +export * from './Actions'; +export * from './AddFieldTypeahead'; +export * from './AutoDropdown'; +export * from './ConditionalExpressionInput'; +export * from './dialogs'; +export * from './DelayedBoolean'; +export * from './Document'; +export * from './DocumentActions'; +export * from './DocumentField'; +export * from './DocumentFieldPreview'; +export * from './DocumentFieldPreviewResults'; +export * from './DocumentFooter'; +export * from './DocumentGroup'; +export * from './ExpressionContent'; +export * from './Loading'; +export * from './MappingTransformation'; +export * from './MappingField'; +export * from './MappingFields'; +export * from './TimedToast'; +export * from './Tree'; +export * from './useDimensions'; +export * from './useInputTextSelectDialog'; +export * from './useLatestValue'; diff --git a/packages/ui/src/UI/useDimensions.ts b/packages/ui/src/UI/useDimensions.ts new file mode 100644 index 000000000..fa19ada8d --- /dev/null +++ b/packages/ui/src/UI/useDimensions.ts @@ -0,0 +1,87 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + MutableRefObject, + useCallback, + useLayoutEffect, + useRef, + useState, +} from 'react'; + +const noSize = { + width: 0, + height: 0, + top: 0, + left: 0, + x: 0, + y: 0, + right: 0, + bottom: 0, +} as DOMRect; + +function areRectsDifferent(a: DOMRect, b: DOMRect) { + return ( + a.width !== b.width || + a.height !== b.height || + a.top !== b.top || + a.left !== b.left || + a.x !== b.x || + a.y !== b.y || + a.right !== b.right || + a.bottom !== b.bottom + ); +} + +export interface UseDimensionsArgs { + liveMeasure?: boolean; +} + +export function useDimensions({ + liveMeasure = true, +}: UseDimensionsArgs = {}): [MutableRefObject, DOMRect, () => void] { + const previousDimensions = useRef(noSize); + const [dimensions, setDimensions] = useState(noSize); + const ref = useRef(null); + + const measure = useCallback(() => { + if (ref.current) { + const d = (ref.current as unknown as HTMLElement).getBoundingClientRect(); + if ( + areRectsDifferent(d as DOMRect, previousDimensions.current as DOMRect) + ) { + setDimensions(d); + previousDimensions.current = d; + } + } + }, [setDimensions]); + + useLayoutEffect(() => { + measure(); + + if (liveMeasure) { + window.addEventListener('resize', measure); + window.addEventListener('scroll', measure); + } + return () => { + if (liveMeasure) { + window.removeEventListener('resize', measure); + window.removeEventListener('scroll', measure); + } + }; + }, [liveMeasure, measure]); + + return [ref, dimensions, measure]; +} diff --git a/packages/ui/src/UI/useInputTextSelectDialog.module.css b/packages/ui/src/UI/useInputTextSelectDialog.module.css new file mode 100644 index 000000000..8e4f3da6c --- /dev/null +++ b/packages/ui/src/UI/useInputTextSelectDialog.module.css @@ -0,0 +1,23 @@ +.iGroup { + margin-bottom: 1.0rem; + margin-left: 0.5rem; +} + +.iSelectBody { + width: 200; + margin-left: 0.5rem; +} + +.iSelectLabel { + margin-top: 1.5rem; + margin-left: 0.5rem; + width: 150; + margin-right: 250; +} + +.iGroupTextLabel { + margin-top: 1.0rem; + width: 425, +} + + diff --git a/packages/ui/src/UI/useInputTextSelectDialog.module.css.d.ts b/packages/ui/src/UI/useInputTextSelectDialog.module.css.d.ts new file mode 100644 index 000000000..3dbf4eb53 --- /dev/null +++ b/packages/ui/src/UI/useInputTextSelectDialog.module.css.d.ts @@ -0,0 +1,8 @@ +declare const styles: { + readonly "iGroup": string; + readonly "iSelectBody": string; + readonly "iSelectLabel": string; + readonly "iGroupTextLabel": string; +}; +export = styles; + diff --git a/packages/ui/src/UI/useInputTextSelectDialog.tsx b/packages/ui/src/UI/useInputTextSelectDialog.tsx new file mode 100644 index 000000000..7d77f37ab --- /dev/null +++ b/packages/ui/src/UI/useInputTextSelectDialog.tsx @@ -0,0 +1,212 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Button, + FormSelect, + FormSelectOption, + Label, + Modal, + TextInput, +} from '@patternfly/react-core'; +import React, { + FormEvent, + ReactPortal, + useCallback, + useRef, + useState, +} from 'react'; + +import { CancelCallback } from './useSingleInputDialog'; +import { createPortal } from 'react-dom'; +import styles from './useInputTextSelectDialog.module.css'; + +export type ConfirmInputTextCallback = ( + value1: string, + value2: string, + selectValue: string, +) => void; + +export interface IUseInputTextSelectDialogArgs { + title: string; + textLabel1: string; + textValue1: React.MutableRefObject; + text1ReadOnly: boolean; + textLabel2: string; + textValue2: React.MutableRefObject; + selectLabel: string; + selectValues: string[][]; + selectDefault: React.MutableRefObject; + modalContainer: HTMLElement; +} + +export function useInputTextSelectDialog({ + title, + textLabel1, + textValue1, + text1ReadOnly, + textLabel2, + textValue2, + selectLabel, + selectValues, + selectDefault, + modalContainer, +}: IUseInputTextSelectDialogArgs): [ + ReactPortal, + (onConfirm?: ConfirmInputTextCallback, onCancel?: CancelCallback) => void, +] { + const onConfirm = useRef(); + const onCancel = useRef(); + const [isOpen, setIsOpen] = useState(false); + const [isValid, setIsValid] = useState(true); + const [value1, setValue1] = useState(textValue1.current); + const [value2, setValue2] = useState(textValue2.current); + const [selectValue, setSelectValue] = useState(''); + const openModal = ( + onConfirmCb?: ConfirmInputTextCallback, + onCancelCb?: CancelCallback, + ) => { + onConfirm.current = onConfirmCb; + onCancel.current = onCancelCb; + setIsOpen(true); + setValue1(textValue1.current); + setValue2(textValue2.current); + setSelectValue(selectValues[selectDefault.current][0]); + }; + + const closeModal = () => setIsOpen(false); + + const handleTextInputChange = ( + value: string, + event: FormEvent, + ) => { + setValue1(value); + setIsValid((event.target as HTMLInputElement).reportValidity()); + }; + + const handleTextInputChange2 = ( + value: string, + event: FormEvent, + ) => { + setValue2(value); + setIsValid((event.target as HTMLInputElement).reportValidity()); + }; + + const handleSelect = (value: string) => { + setSelectValue(value); + }; + + const handleConfirm = useCallback(() => { + if (isValid && onConfirm.current) { + onConfirm.current(value1, value2, selectValue); + } + closeModal(); + }, [onConfirm, value1, value2, selectValue, isValid]); + + const handleCancel = useCallback(() => { + if (onCancel.current) { + onCancel.current(); + } + closeModal(); + }, [onCancel]); + + const modal = createPortal( + + Confirm + , + , + ]} + > + {textLabel1 && ( + <> + + + )} + {textLabel2.length > 0 && ( + <> + + + )} + {selectLabel && ( + <> + + + {selectValues.map( + (selectValue: string[], idx: number | undefined) => ( + + ), + )} + + + )} + , + modalContainer, + ); + + return [modal, openModal]; +} diff --git a/packages/ui/src/UI/useLatestValue.tsx b/packages/ui/src/UI/useLatestValue.tsx new file mode 100644 index 000000000..f7ee42953 --- /dev/null +++ b/packages/ui/src/UI/useLatestValue.tsx @@ -0,0 +1,34 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactNode, useCallback, useRef, useState } from 'react'; + +export function useLatestValue(): [ + ReactNode | undefined, + (el: ReactNode) => void, +] { + const [element, setElement] = useState(); + const previousElement = useRef(); + const handleSetElement = useCallback( + (newElement: ReactNode) => { + if (previousElement.current !== newElement) { + previousElement.current = newElement; + setElement(previousElement.current); + } + }, + [setElement, previousElement], + ); + return [element, handleSetElement]; +} diff --git a/packages/ui/src/UI/useSingleInputDialog.tsx b/packages/ui/src/UI/useSingleInputDialog.tsx new file mode 100644 index 000000000..bd14d147e --- /dev/null +++ b/packages/ui/src/UI/useSingleInputDialog.tsx @@ -0,0 +1,125 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Modal, TextInput } from '@patternfly/react-core'; +import React, { + FormEvent, + ReactChild, + ReactPortal, + useCallback, + useRef, + useState, +} from 'react'; +import { createPortal } from 'react-dom'; + +export type ConfirmCallback = (value: string) => void; +export type CancelCallback = () => void; + +export interface IUseSingleInputDialogArgs { + title: string; + content: ReactChild; + placeholder: string; + modalContainer: HTMLElement; +} + +export function useSingleInputDialog({ + title, + content, + placeholder, + modalContainer, +}: IUseSingleInputDialogArgs): [ + ReactPortal, + (onConfirm?: ConfirmCallback, onCancel?: CancelCallback) => void, +] { + const onConfirm = useRef(); + const onCancel = useRef(); + const [isOpen, setIsOpen] = useState(false); + const [isValid, setIsValid] = useState(true); + const [value, setValue] = useState(''); + const openModal = ( + onConfirmCb?: ConfirmCallback, + onCancelCb?: CancelCallback, + ) => { + onConfirm.current = onConfirmCb; + onCancel.current = onCancelCb; + setIsOpen(true); + }; + const closeModal = () => setIsOpen(false); + const handleTextInputChange = ( + value: string, + event: FormEvent, + ) => { + setValue(value); + setIsValid((event.target as HTMLInputElement).reportValidity()); + }; + const handleConfirm = useCallback(() => { + if (isValid && onConfirm.current) { + onConfirm.current(value); + } + closeModal(); + }, [onConfirm, value, isValid]); + const handleCancel = useCallback(() => { + if (onCancel.current) { + onCancel.current(); + } + closeModal(); + }, [onCancel]); + + const modal = createPortal( + , + , + , + ]} + > + {content} + , + modalContainer, + ); + + return [modal, openModal]; +} diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx new file mode 100644 index 000000000..eb502f517 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import { ClipboardIcon } from '@patternfly/react-icons'; + +export interface ICaptureDocumentIDActionProps { + id: string; + onClick: () => void; +} +export const CaptureDocumentIDAction: FunctionComponent< + ICaptureDocumentIDActionProps +> = ({ id, onClick }) => ( + Capture Document ID to clipboard} + > + + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx new file mode 100644 index 000000000..7541d7498 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import { EditIcon } from '@patternfly/react-icons'; + +export interface IChangeDocumentNameActionProps { + id: string; + onClick: () => void; +} +export const ChangeDocumentNameAction: FunctionComponent< + IChangeDocumentNameActionProps +> = ({ id, onClick }) => ( + Change document name} + > + + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/DeleteDocumentAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/DeleteDocumentAction.tsx new file mode 100644 index 000000000..9ca6f2567 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/DeleteDocumentAction.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import { TrashIcon } from '@patternfly/react-icons'; + +export interface IDeleteDocumentActionProps { + id: string; + onClick: () => void; +} +export const DeleteDocumentAction: FunctionComponent< + IDeleteDocumentActionProps +> = ({ id, onClick }) => ( + Remove instance or schema file} + > + + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx new file mode 100644 index 000000000..92726fc74 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import { TrashIcon } from '@patternfly/react-icons'; + +export interface IDeleteMappingActionProps { + id: string; + onClick: () => void; +} +export const DeleteMappingAction: FunctionComponent< + IDeleteMappingActionProps +> = ({ id, onClick }) => ( + Remove the mapping} + > + + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx new file mode 100644 index 000000000..1370e262c --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import { EditIcon } from '@patternfly/react-icons'; + +export interface IEditCSVParamsActionProps { + id: string; + onClick: () => void; +} +export const EditCSVParamsAction: FunctionComponent< + IEditCSVParamsActionProps +> = ({ id, onClick }) => ( + Modify CSV Parameters} + > + + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/EditMappingAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/EditMappingAction.tsx new file mode 100644 index 000000000..e48d30c39 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/EditMappingAction.tsx @@ -0,0 +1,43 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import { ExchangeAltIcon } from '@patternfly/react-icons'; + +export interface IEditMappingActionProps { + id: string; + onClick: () => void; +} +export const EditMappingAction: FunctionComponent = ({ + id, + onClick, +}) => ( + Modify the mapping} + > + + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx new file mode 100644 index 000000000..3697ffcf7 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx @@ -0,0 +1,53 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent } from 'react'; + +import { AddCircleOIcon } from '@patternfly/react-icons'; + +export interface IEnableJavaClassActionProps { + onCustomClassSearch: () => void; +} + +export const EnableJavaClassAction: FunctionComponent< + IEnableJavaClassActionProps +> = ({ onCustomClassSearch, ...props }) => { + function onEnableClassSearch(): void { + onCustomClassSearch(); + } + + return ( + + Load a Java document based on classes from your previously imported + Java archive. + + } + > + + + ); +}; diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/ImportAction.tsx b/packages/ui/src/Views/ColumnMapperView/Actions/ImportAction.tsx new file mode 100644 index 000000000..5fc102a70 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/ImportAction.tsx @@ -0,0 +1,61 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import React, { FunctionComponent, useEffect, useRef } from 'react'; + +import { ImportIcon } from '@patternfly/react-icons'; +import { useFilePicker } from 'react-sage'; + +export interface IImportActionProps { + id: string; + onImport: (selectedFile: File) => void; +} +export const ImportAction: FunctionComponent = ({ + id, + onImport, +}) => { + const { files, onClick, HiddenFileInput } = useFilePicker({ + maxFileSize: 1, + }); + const previouslyUploadedFiles = useRef(null); + + useEffect(() => { + if (previouslyUploadedFiles.current !== files) { + previouslyUploadedFiles.current = files; + if (files?.length === 1) { + onImport(files[0]); + } + } + }, [files, onImport]); + + return ( + Import instance or schema file} + > + + + ); +}; diff --git a/packages/ui/src/Views/ColumnMapperView/Actions/index.ts b/packages/ui/src/Views/ColumnMapperView/Actions/index.ts new file mode 100644 index 000000000..404cbf3cd --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Actions/index.ts @@ -0,0 +1,23 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './CaptureDocumentIDAction'; +export * from './ChangeDocumentNameAction'; +export * from './DeleteDocumentAction'; +export * from './DeleteMappingAction'; +export * from './EditCSVParamsAction'; +export * from './EditMappingAction'; +export * from './EnableJavaClassAction'; +export * from './ImportAction'; diff --git a/packages/ui/src/Views/ColumnMapperView/ColumnMapperView.spec.tsx b/packages/ui/src/Views/ColumnMapperView/ColumnMapperView.spec.tsx new file mode 100644 index 000000000..cf5f9ee23 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/ColumnMapperView.spec.tsx @@ -0,0 +1,71 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { fireEvent, render } from '@testing-library/react'; +import { sourcesColumn, targetsColumn } from './ColumnMapperView.stories'; +import { act } from 'react-dom/test-utils'; + +describe('SourcesColumn', () => { + test('should render editable preview inputs', async () => { + const { getByTestId, findByTestId } = render(sourcesColumn()); + await act(async () => { + const previewInputProperty = getByTestId( + 'input-document-mapping-preview-boston-field', + ); + expect(previewInputProperty.tagName).toBe('INPUT'); + expect( + previewInputProperty.attributes.getNamedItem('disabled'), + ).toBeFalsy(); + const previewInputConstant = getByTestId( + 'input-document-mapping-preview-Boston-field', + ); + expect(previewInputConstant.tagName).toBe('INPUT'); + expect( + previewInputConstant.attributes.getNamedItem('disabled'), + ).toBeFalsy(); + const docButton = getByTestId( + 'sources-field-JSONInstanceSource-source-/order-toggle', + ); + fireEvent.click(docButton); + const previewInputField = await findByTestId( + 'input-document-mapping-preview-JSONInstanceSource-source-/order/orderId-field', + ); + expect(previewInputField.tagName).toBe('INPUT'); + expect(previewInputField.attributes.getNamedItem('disabled')).toBeFalsy(); + }); + }); +}); + +describe('TargetsColumn', () => { + test('should render readonly preview result', async () => { + const { getByTestId } = render(targetsColumn()); + await act(async () => { + const previewInputProperty = getByTestId( + 'results-document-mapping-preview-boston-field', + ); + expect(previewInputProperty.tagName).toBe('INPUT'); + expect( + previewInputProperty.attributes.getNamedItem('disabled'), + ).toBeTruthy(); + const previewInputField = getByTestId( + 'results-document-mapping-preview-io.paul.Bicycle-target-/cadence-field', + ); + expect(previewInputField.tagName).toBe('INPUT'); + expect( + previewInputField.attributes.getNamedItem('disabled'), + ).toBeTruthy(); + }); + }); +}); diff --git a/packages/ui/src/Views/ColumnMapperView/ColumnMapperView.stories.tsx b/packages/ui/src/Views/ColumnMapperView/ColumnMapperView.stories.tsx new file mode 100644 index 000000000..984d077da --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/ColumnMapperView.stories.tsx @@ -0,0 +1,128 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { CanvasProvider, Column, FieldsDndProvider } from '../../UI'; +import { SourceTargetLinks, SourcesColumn, TargetsColumn } from '../../Views'; +import { boolean, text } from '@storybook/addon-knobs'; +import { + constants, + mappings, + properties, + sources, + targets, +} from '../../stories/sampleData'; + +import React from 'react'; +import { action } from '@storybook/addon-actions'; +import decorators from '../../stories/decorators'; + +const obj = { + title: 'AtlasMap|Views/ColumnMapperView', + decorators, +}; +export default obj; + +export const sourcesColumn = () => ( + + + + true} + canAddFieldToSelectedMapping={() => true} + onAddToSelectedMapping={action('onAddToSelectedMapping')} + canRemoveFromSelectedMapping={() => true} + onRemoveFromSelectedMapping={action('onRemoveFromSelectedMapping')} + canStartMapping={() => true} + onStartMapping={action('onStartMapping')} + shouldShowMappingPreviewForField={() => true} + onFieldPreviewChange={action('onFieldPreviewChange')} + canDrop={() => true} + onDrop={action('onDrop')} + onSearch={action('onSearch')} + showTypes={boolean('Show types', true)} + sourceProperties={properties} + constants={constants} + sources={sources} + isSource={true} + acceptDropType={'target'} + draggableType={'source'} + onEditCSVParams={action('onEditCSVParams')} + /> + + + +); + +export const targetsColumn = () => ( + + + + true} + onShowMappingDetails={action('onShowMappingDetails')} + canAddToSelectedMapping={() => true} + canAddFieldToSelectedMapping={() => true} + onAddToSelectedMapping={action('onAddToSelectedMapping')} + canRemoveFromSelectedMapping={() => true} + onRemoveFromSelectedMapping={action('onRemoveFromSelectedMapping')} + canStartMapping={() => true} + onStartMapping={action('onStartMapping')} + shouldShowMappingPreviewForField={() => true} + showMappingPreview={boolean('Show mapping preview', false)} + showTypes={boolean('Show types', true)} + targetProperties={properties} + targets={targets} + isSource={false} + acceptDropType={'source'} + draggableType={'target'} + onEditCSVParams={action('onEditCSVParams')} + /> + + + +); + +export const sourceTargetLinks = () => ( + + + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx new file mode 100644 index 000000000..af784a208 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx @@ -0,0 +1,90 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { SVGAttributes, forwardRef } from 'react'; + +export const AtlasmapLogo = forwardRef< + SVGSVGElement, + SVGAttributes +>(function atlasmapLogo(props, ref) { + return ( + + + + + + + + + + + + + ); +}); diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/ConstantsTree.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/ConstantsTree.tsx new file mode 100644 index 000000000..45a0d56d2 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/ConstantsTree.tsx @@ -0,0 +1,134 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Tooltip } from '@patternfly/react-core'; +import { EditIcon, TrashIcon } from '@patternfly/react-icons'; +import { + IAtlasmapDocument, + IAtlasmapField, + IAtlasmapMapping, +} from '../../models'; +import { IDragAndDropField, Tree } from '../../../UI'; +import { ITraverseFieldsProps, TraverseFields } from './TraverseFields'; +import React, { FunctionComponent } from 'react'; +import { + SOURCES_CONSTANTS_ID, + SOURCES_DRAGGABLE_TYPE, + SOURCES_FIELD_ID_PREFIX, + SOURCES_HEIGHT_BOUNDARY_ID, + SOURCES_WIDTH_BOUNDARY_ID, + TARGETS_DRAGGABLE_TYPE, +} from './constants'; + +import { commonActions } from './commonActions'; + +export interface IConstantsTreeCallbacks { + onDrop: (source: IAtlasmapField, target: IDragAndDropField | null) => void; + canDrop: (source: IAtlasmapField, target: IDragAndDropField) => boolean; + onShowMappingDetails: (mapping: IAtlasmapMapping) => void; + canAddFieldToSelectedMapping: (source: IAtlasmapField) => boolean; + onAddToSelectedMapping: (source: IAtlasmapField) => void; + canRemoveFromSelectedMapping: (source: IAtlasmapField) => boolean; + onRemoveFromSelectedMapping: (source: IAtlasmapField) => void; + onEditConstant: (name: string, value: string) => void; + onDeleteConstant: (name: string) => void; + canStartMapping: (field: IAtlasmapField) => boolean; + onStartMapping: (field: IAtlasmapField) => void; +} + +export interface IConstantsTreeProps extends IConstantsTreeCallbacks { + fields: IAtlasmapDocument['fields']; + renderPreview: ITraverseFieldsProps['renderPreview']; +} + +export const ConstantsTree: FunctionComponent = ({ + fields, + onDrop, + canDrop, + onShowMappingDetails, + canAddFieldToSelectedMapping, + onAddToSelectedMapping, + canRemoveFromSelectedMapping, + onRemoveFromSelectedMapping, + onEditConstant, + onDeleteConstant, + canStartMapping, + onStartMapping, + renderPreview, +}) => ( + + [ + ...commonActions({ + connectedMappings: field.mappings, + onShowMappingDetails: onShowMappingDetails, + canAddFieldToSelectedMapping: canAddFieldToSelectedMapping(field), + onAddToSelectedMapping: () => onAddToSelectedMapping(field), + canRemoveFromSelectedMapping: canRemoveFromSelectedMapping(field), + onRemoveFromSelectedMapping: () => onRemoveFromSelectedMapping(field), + canStartMapping: canStartMapping(field), + onStartMapping: () => onStartMapping(field), + }), + Edit constant} + entryDelay={750} + exitDelay={100} + > + + , + Remove constant} + entryDelay={750} + exitDelay={100} + > + + , + ]} + renderPreview={renderPreview} + /> + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/PropertiesTree.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/PropertiesTree.tsx new file mode 100644 index 000000000..e18e355e5 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/PropertiesTree.tsx @@ -0,0 +1,149 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AtlasmapDocumentType, + IAtlasmapDocument, + IAtlasmapField, + IAtlasmapMapping, +} from '../../models'; +import { Button, Tooltip } from '@patternfly/react-core'; +import { EditIcon, TrashIcon } from '@patternfly/react-icons'; +import { IDragAndDropField, Tree } from '../../../UI'; +import { ITraverseFieldsProps, TraverseFields } from './TraverseFields'; +import React, { FunctionComponent } from 'react'; +import { + SOURCES_FIELD_ID_PREFIX, + SOURCES_HEIGHT_BOUNDARY_ID, + SOURCES_PROPERTIES_ID, + SOURCES_WIDTH_BOUNDARY_ID, + TARGETS_FIELD_ID_PREFIX, + TARGETS_HEIGHT_BOUNDARY_ID, + TARGETS_PROPERTIES_ID, + TARGETS_WIDTH_BOUNDARY_ID, +} from './constants'; + +import { commonActions } from './commonActions'; + +export interface IPropertiesTreeCallbacks { + acceptDropType: AtlasmapDocumentType; + draggableType: AtlasmapDocumentType; + isSource: boolean; + onDrop: (source: IAtlasmapField, target: IDragAndDropField | null) => void; + canDrop: (source: IAtlasmapField, target: IDragAndDropField) => boolean; + onShowMappingDetails: (mapping: IAtlasmapMapping) => void; + canAddFieldToSelectedMapping: (source: IAtlasmapField) => boolean; + onAddToSelectedMapping: (source: IAtlasmapField) => void; + canRemoveFromSelectedMapping: (source: IAtlasmapField) => boolean; + onRemoveFromSelectedMapping: (source: IAtlasmapField) => void; + onEditProperty: (name: string, scope: string, isSource: boolean) => void; + onDeleteProperty: (name: string, scope: string, isSource: boolean) => void; + canStartMapping: (field: IAtlasmapField) => boolean; + onStartMapping: (field: IAtlasmapField) => void; +} + +export interface IPropertiesTreeProps extends IPropertiesTreeCallbacks { + fields: IAtlasmapDocument['fields']; + showTypes: boolean; + renderPreview: ITraverseFieldsProps['renderPreview']; +} + +export const PropertiesTree: FunctionComponent = ({ + acceptDropType, + draggableType, + isSource, + fields, + showTypes, + onDrop, + canDrop, + onShowMappingDetails, + canAddFieldToSelectedMapping, + onAddToSelectedMapping, + canRemoveFromSelectedMapping, + onRemoveFromSelectedMapping, + onEditProperty, + onDeleteProperty, + canStartMapping, + onStartMapping, + renderPreview, +}) => ( + + [ + ...commonActions({ + connectedMappings: field.mappings, + onShowMappingDetails: onShowMappingDetails, + canAddFieldToSelectedMapping: canAddFieldToSelectedMapping(field), + onAddToSelectedMapping: () => onAddToSelectedMapping(field), + canRemoveFromSelectedMapping: canRemoveFromSelectedMapping(field), + onRemoveFromSelectedMapping: () => onRemoveFromSelectedMapping(field), + canStartMapping: canStartMapping(field), + onStartMapping: () => onStartMapping(field), + }), + Edit property} + entryDelay={750} + exitDelay={100} + > + + , + Remove property} + entryDelay={750} + exitDelay={100} + > + + , + ]} + renderPreview={renderPreview} + /> + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/SourcesColumn.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/SourcesColumn.tsx new file mode 100644 index 000000000..0df542b2f --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/SourcesColumn.tsx @@ -0,0 +1,395 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AtlasmapDocumentType, + GroupId, + IAtlasmapDocument, + IAtlasmapField, + IAtlasmapMapping, +} from '../../models'; +import { Button, Tooltip } from '@patternfly/react-core'; +import { + CaptureDocumentIDAction, + ChangeDocumentNameAction, + DeleteDocumentAction, + EditCSVParamsAction, + EnableJavaClassAction, + ImportAction, +} from '../Actions'; +import { + ColumnBody, + Document, + DocumentFieldPreview, + DocumentFooter, + IDragAndDropField, + NodeRef, + SearchableColumnHeader, + Tree, +} from '../../../UI'; +import { ConstantsTree, IConstantsTreeCallbacks } from './ConstantsTree'; +import { IPropertiesTreeCallbacks, PropertiesTree } from './PropertiesTree'; +import { FunctionComponent, useCallback } from 'react'; +import { + SOURCES_CONSTANTS_ID, + SOURCES_DOCUMENT_ID_PREFIX, + SOURCES_FIELD_ID_PREFIX, + SOURCES_HEIGHT_BOUNDARY_ID, + SOURCES_PROPERTIES_ID, + SOURCES_WIDTH_BOUNDARY_ID, +} from './constants'; + +import { DocumentType } from '../../../core'; +import { PlusIcon } from '@patternfly/react-icons'; +import { TraverseFields } from './TraverseFields'; +import { commonActions } from './commonActions'; + +export interface ISourceColumnCallbacks + extends IConstantsTreeCallbacks, + IPropertiesTreeCallbacks { + acceptDropType: AtlasmapDocumentType; + draggableType: AtlasmapDocumentType; + isSource: boolean; + onCreateConstant: () => void; + onCreateProperty: (isSource: boolean) => void; + onCustomClassSearch?: (isSource: boolean) => void; + onCaptureDocumentID?: (id: string) => void; + onChangeDocumentName?: (id: string, name: string) => void; + onImportDocument?: (selectedFile: File) => void; + onDeleteDocument?: (id: GroupId) => void; + onSearch: (content: string) => void; + canDrop: (source: IAtlasmapField, target: IDragAndDropField) => boolean; + onDrop: (source: IAtlasmapField, target: IDragAndDropField | null) => void; + onShowMappingDetails: (mapping: IAtlasmapMapping) => void; + canAddFieldToSelectedMapping: (source: IAtlasmapField) => boolean; + onAddToSelectedMapping: (source: IAtlasmapField) => void; + canRemoveFromSelectedMapping: (source: IAtlasmapField) => boolean; + canStartMapping: (field: IAtlasmapField) => boolean; + onStartMapping: (field: IAtlasmapField) => void; + onRemoveFromSelectedMapping: (source: IAtlasmapField) => void; + shouldShowMappingPreviewForField: (field: IAtlasmapField) => boolean; + onFieldPreviewChange: (field: IAtlasmapField, value: string) => void; + canAddToSelectedMapping: (isSource: boolean) => boolean; + onEditCSVParams: (id: string, isSource: boolean) => void; +} + +export interface ISourcesColumnData { + sourceProperties?: IAtlasmapDocument | null; + constants?: IAtlasmapDocument | null; + sources: Array; + showTypes: boolean; +} + +export const SourcesColumn: FunctionComponent< + ISourcesColumnData & ISourceColumnCallbacks +> = ({ + acceptDropType, + draggableType, + isSource, + onCreateConstant, + onEditConstant, + onDeleteConstant, + onCreateProperty, + onCustomClassSearch, + onEditProperty, + onDeleteProperty, + onImportDocument, + onDeleteDocument, + onCaptureDocumentID, + onChangeDocumentName, + onEditCSVParams, + onSearch, + canDrop, + onDrop, + onShowMappingDetails, + canAddFieldToSelectedMapping, + onAddToSelectedMapping, + canRemoveFromSelectedMapping, + onRemoveFromSelectedMapping, + canStartMapping, + onStartMapping, + shouldShowMappingPreviewForField, + onFieldPreviewChange, + sourceProperties, + constants, + sources, + showTypes, +}) => { + const renderPreview = useCallback( + (field: IAtlasmapField) => + shouldShowMappingPreviewForField(field) && ( + onFieldPreviewChange(field, value)} + /> + ), + [onFieldPreviewChange, shouldShowMappingPreviewForField], + ); + + return ( + <> + + ), + onCustomClassSearch && ( + onCustomClassSearch(true)} + data-testid={'enable-specific-java-classes-Source-button'} + key={'java'} + /> + ), + ]} + /> + + + +
+ + Create a source property for use in mapping
+ } + key={'create-property'} + entryDelay={750} + exitDelay={100} + > + + , + ]} + noPadding={!!sourceProperties} + > + {sourceProperties ? ( + + ) : ( + 'No source properties' + )} + +
+ + Create a constant for use in mapping} + key={'create-constant'} + entryDelay={750} + exitDelay={100} + > + + , + ]} + noPadding={!!constants} + > + {constants ? ( + + ) : ( +

No constants

+ )} +
+
+ {sources.map((s) => { + const documentId = `${SOURCES_DOCUMENT_ID_PREFIX}${s.id}`; + return ( + + + Source document type: {s.type} + + ) : undefined + } + actions={ + s.type === DocumentType.CSV + ? [ + onCaptureDocumentID && ( + onCaptureDocumentID(s.id)} + key={'capture-document-id'} + /> + ), + onEditCSVParams && ( + onEditCSVParams(s.id, true)} + key={'on-edit-csv-params'} + /> + ), + onDeleteDocument && ( + onDeleteDocument(s.id)} + key={'delete-document'} + /> + ), + ] + : [ + onCaptureDocumentID && ( + onCaptureDocumentID(s.id)} + key={'capture-document-id'} + /> + ), + onChangeDocumentName && ( + + onChangeDocumentName(s.id, s.name) + } + key={'change-document-name'} + /> + ), + onDeleteDocument && ( + onDeleteDocument(s.id)} + key={'delete-document'} + /> + ), + ] + } + noPadding={true} + > + + + commonActions({ + connectedMappings: field.mappings, + onShowMappingDetails, + canAddFieldToSelectedMapping: + canAddFieldToSelectedMapping(field), + onAddToSelectedMapping: () => + onAddToSelectedMapping(field), + canRemoveFromSelectedMapping: + canRemoveFromSelectedMapping(field), + onRemoveFromSelectedMapping: () => + onRemoveFromSelectedMapping(field), + canStartMapping: canStartMapping(field), + onStartMapping: () => onStartMapping(field), + }) + } + renderPreview={renderPreview} + /> + + + + ); + })} + +
+ + + + ); +}; diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/TargetsColumn.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/TargetsColumn.tsx new file mode 100644 index 000000000..2f4c45dc6 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/TargetsColumn.tsx @@ -0,0 +1,326 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AtlasmapDocumentType, + GroupId, + IAtlasmapDocument, + IAtlasmapField, + IAtlasmapMapping, +} from '../../models'; +import { Button, Tooltip } from '@patternfly/react-core'; +import { + CaptureDocumentIDAction, + ChangeDocumentNameAction, + DeleteDocumentAction, + EditCSVParamsAction, + EnableJavaClassAction, + ImportAction, +} from '../Actions'; +import { + ColumnBody, + Document, + DocumentFieldPreviewResults, + DocumentFooter, + IDragAndDropField, + NodeRef, + SearchableColumnHeader, + Tree, +} from '../../../UI'; +import { IPropertiesTreeCallbacks, PropertiesTree } from './PropertiesTree'; +import { FunctionComponent, useCallback } from 'react'; +import { + TARGETS_DOCUMENT_ID_PREFIX, + TARGETS_FIELD_ID_PREFIX, + TARGETS_HEIGHT_BOUNDARY_ID, + TARGETS_PROPERTIES_ID, + TARGETS_WIDTH_BOUNDARY_ID, +} from './constants'; + +import { DocumentType } from '../../../core'; +import { PlusIcon } from '@patternfly/react-icons'; +import { TraverseFields } from './TraverseFields'; +import { commonActions } from './commonActions'; + +export interface ITargetsColumnCallbacks extends IPropertiesTreeCallbacks { + acceptDropType: AtlasmapDocumentType; + draggableType: AtlasmapDocumentType; + isSource: boolean; + onCreateProperty: (isSource: boolean) => void; + onCaptureDocumentID?: (id: string) => void; + onChangeDocumentName?: (id: string, name: string) => void; + onDeleteDocument?: (id: GroupId) => void; + onImportDocument?: (selectedFile: File) => void; + onCustomClassSearch?: (isSource: boolean) => void; + onSearch: (content: string) => void; + onDrop: (source: IAtlasmapField, target: IDragAndDropField | null) => void; + canDrop: (source: IAtlasmapField, target: IDragAndDropField) => boolean; + onShowMappingDetails: (mapping: IAtlasmapMapping) => void; + canAddFieldToSelectedMapping: (field: IAtlasmapField) => boolean; + onAddToSelectedMapping: (field: IAtlasmapField) => void; + canRemoveFromSelectedMapping: (field: IAtlasmapField) => boolean; + onRemoveFromSelectedMapping: (field: IAtlasmapField) => void; + canStartMapping: (field: IAtlasmapField) => boolean; + onStartMapping: (field: IAtlasmapField) => void; + shouldShowMappingPreviewForField: (field: IAtlasmapField) => boolean; + onFieldPreviewChange: (field: IAtlasmapField, value: string) => void; + canAddToSelectedMapping: (isSource: boolean) => boolean; + onEditCSVParams: (id: string, isSource: boolean) => void; +} + +export interface ITargetsColumnData { + targetProperties?: IAtlasmapDocument | null; + showMappingPreview: boolean; + showTypes: boolean; + targets: Array; +} + +export const TargetsColumn: FunctionComponent< + ITargetsColumnData & ITargetsColumnCallbacks +> = ({ + acceptDropType, + draggableType, + isSource, + onSearch, + onImportDocument, + onDeleteDocument, + onCaptureDocumentID, + onChangeDocumentName, + onCustomClassSearch, + onCreateProperty, + onEditCSVParams, + onEditProperty, + onDeleteProperty, + onDrop, + canDrop, + onShowMappingDetails, + canAddFieldToSelectedMapping, + onAddToSelectedMapping, + canRemoveFromSelectedMapping, + onRemoveFromSelectedMapping, + canStartMapping, + onStartMapping, + shouldShowMappingPreviewForField, + targets, + showTypes, + targetProperties, +}) => { + const renderPreviewResult = useCallback( + (field: IAtlasmapField) => + shouldShowMappingPreviewForField(field) && ( + + ), + [shouldShowMappingPreviewForField], + ); + return ( + <> + + ), + onCustomClassSearch && ( + onCustomClassSearch(false)} + data-testid={'enable-specific-java-classes-Target-button'} + key={'java'} + /> + ), + ]} + /> + + + +
+ + Create a target property for use in mapping
+ } + key={'create-target-property'} + entryDelay={750} + exitDelay={100} + > + + , + ]} + noPadding={!!targetProperties} + > + {targetProperties ? ( + + ) : ( + 'No target properties' + )} + +
+ {targets.map((t) => { + const documentId = `${TARGETS_DOCUMENT_ID_PREFIX}${t.id}`; + return ( + + + Target document type: {t.type} + + ) : undefined + } + actions={ + t.type === DocumentType.CSV + ? [ + onCaptureDocumentID && ( + onCaptureDocumentID(t.id)} + key={'capture-tgt-csv-document-id'} + /> + ), + onEditCSVParams && ( + onEditCSVParams(t.id, false)} + key={'on-edit-tgt-csv-params'} + /> + ), + onDeleteDocument && ( + onDeleteDocument(t.id)} + key={'delete-tgt-csv-document'} + /> + ), + ] + : [ + onCaptureDocumentID && ( + onCaptureDocumentID(t.id)} + key={'capture-tgt-document-id'} + /> + ), + onChangeDocumentName && ( + + onChangeDocumentName(t.id, t.name) + } + key={'change-tgt-document-name'} + /> + ), + onDeleteDocument && ( + onDeleteDocument(t.id)} + key={'delete-tgt-documents'} + /> + ), + ] + } + noPadding={true} + > + + + commonActions({ + connectedMappings: field.mappings, + onShowMappingDetails, + canAddFieldToSelectedMapping: + canAddFieldToSelectedMapping(field), + onAddToSelectedMapping: () => + onAddToSelectedMapping(field), + canRemoveFromSelectedMapping: + canRemoveFromSelectedMapping(field), + onRemoveFromSelectedMapping: () => + onRemoveFromSelectedMapping(field), + canStartMapping: canStartMapping(field), + onStartMapping: () => onStartMapping(field), + }) + } + renderPreview={renderPreviewResult} + /> + + + + ); + })} + +
+ + + + ); +}; diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/TraverseFields.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/TraverseFields.tsx new file mode 100644 index 000000000..2ef520c78 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/TraverseFields.tsx @@ -0,0 +1,132 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { AtlasmapFields, IAtlasmapField, IAtlasmapGroup } from '../../../Views'; +import { + ITreeGroupAndNodeRefsAndDnDProps, + TreeGroupAndNodeRefsAndDnD, +} from './TreeGroupAndNodeRefsAndDnD'; +import { + ITreeItemFieldAndNodeRefsAndDnDProps, + TreeItemWithFieldAndNodeRefsAndDnD, +} from './TreeItemFieldAndNodeRefsAndDnD'; +import React, { FunctionComponent } from 'react'; + +import { NodeRef } from '../../../UI'; + +function getChildrenIds( + fields: AtlasmapFields, + idPrefix: string, +): (string | undefined)[] { + return fields.reduce<(string | undefined)[]>( + (ids, f) => [ + ...ids, + `${idPrefix}${f.id}`, + ...((f as IAtlasmapGroup).fields + ? getChildrenIds((f as IAtlasmapGroup).fields, idPrefix) + : []), + ], + [], + ); +} + +export interface ITraverseFieldsProps + extends Omit, 'fieldId'> { + fields: AtlasmapFields; +} + +export const TraverseFields: FunctionComponent = ({ + fields, + idPrefix, + isVisible = true, + ...props +}) => { + return isVisible ? ( + <> + {fields.map((field, idx) => ( + + ))} + + ) : ( + +
 
+
+ ); +}; + +export interface IFieldOrGroupProps + extends Omit, 'fieldId'>, + Omit< + Omit, 'fieldId'>, + 'children' + > { + idPrefix: string; + field: IAtlasmapGroup | IAtlasmapField; + isVisible?: boolean; +} + +const FieldOrGroup: FunctionComponent = ({ + field, + idPrefix, + level = 1, + ...props +}) => { + const fieldId = `${idPrefix}${field.id}`; + const maybeGroup = field as IAtlasmapGroup; + const maybeField = field as IAtlasmapField; + if (maybeGroup.fields) { + return ( + + {({ expanded }) => ( + + )} + + ); + } + return ( + + ); +}; diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/TreeGroupAndNodeRefsAndDnD.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/TreeGroupAndNodeRefsAndDnD.tsx new file mode 100644 index 000000000..6dd5bb910 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/TreeGroupAndNodeRefsAndDnD.tsx @@ -0,0 +1,107 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { AtlasmapDocumentType, IAtlasmapGroup } from '../../../Views'; +import { + DelayedBoolean, + DocumentGroup, + FieldDropTarget, + ITreeGroupProps, + NodeRef, + TreeGroup, +} from '../../../UI'; +import React, { FunctionComponent } from 'react'; + +import { LayerGroupIcon } from '@patternfly/react-icons'; + +export interface ITreeGroupAndNodeRefsAndDnDProps { + fieldId: string; + group: IAtlasmapGroup; + showTypes: boolean; + boundaryId?: string; + overrideWidth?: string; + parentId: string; + acceptDropType: AtlasmapDocumentType; + draggableType: AtlasmapDocumentType; + level?: number; + position?: number; + setSize?: number; + children: ITreeGroupProps['children']; +} + +export const TreeGroupAndNodeRefsAndDnD: FunctionComponent< + ITreeGroupAndNodeRefsAndDnDProps +> = ({ + fieldId, + group, + showTypes, + boundaryId, + overrideWidth, + parentId, + acceptDropType, + draggableType, + level = 1, + position = 1, + setSize = 1, + children, +}) => ( + false} + accept={[acceptDropType]} + > + {({ isOver }) => ( + + {(isOver) => ( + + ( + : undefined} + iconTooltip={ + group.isCollection + ? 'This object is a collection' + : undefined + } + expanded={isOver || expanded} + /> + )} + > + {children} + + + )} + + )} + +); diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/TreeItemFieldAndNodeRefsAndDnD.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/TreeItemFieldAndNodeRefsAndDnD.tsx new file mode 100644 index 000000000..280261ac7 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/TreeItemFieldAndNodeRefsAndDnD.tsx @@ -0,0 +1,221 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AtIcon, + BoltIcon, + BullseyeIcon, + CircleIcon, + GripVerticalIcon, + LayerGroupIcon, +} from '@patternfly/react-icons'; +import { AtlasmapDocumentType, IAtlasmapField } from '../../../Views'; +import { Button, Tooltip } from '@patternfly/react-core'; +import { + DocumentField, + DraggableField, + FieldDropTarget, + IDocumentFieldProps, + IDragAndDropField, + NodeRef, + TreeItem, +} from '../../../UI'; +import React, { FunctionComponent, ReactNode } from 'react'; + +export interface ITreeItemFieldAndNodeRefsAndDnDProps { + fieldId: string; + field: IAtlasmapField; + showTypes: boolean; + boundaryId?: string; + overrideWidth?: string; + parentId: string; + acceptDropType: AtlasmapDocumentType; + draggableType: AtlasmapDocumentType; + level?: number; + position?: number; + setSize?: number; + renderActions?: (field: IAtlasmapField) => IDocumentFieldProps['actions']; + renderPreview?: (field: IAtlasmapField) => ReactNode; + canDrop: (source: IAtlasmapField, target: IDragAndDropField) => boolean; + onDrop: (source: IAtlasmapField, target: IDragAndDropField | null) => void; +} + +export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent< + ITreeItemFieldAndNodeRefsAndDnDProps +> = ({ + fieldId, + field, + showTypes, + boundaryId, + overrideWidth, + parentId, + acceptDropType, + draggableType, + level = 1, + position = 1, + setSize = 1, + canDrop, + onDrop, + renderActions = () => [], + renderPreview, +}) => { + const preview = renderPreview && renderPreview(field); + return ( + canDrop(field, item)} + accept={[acceptDropType]} + > + {({ isDroppable, isTarget }) => ( + onDrop(field, target)} + > + {({ isDragging }) => ( + + + {({ focused }) => ( + <> + + + + ) : ( + + ) + } + type={field.enumeration ? 'ENUM' : field.type} + scope={field.scope} + showType={showTypes} + isDragging={isDragging} + isFocused={focused} + isSelected={!!preview} + isDisabled={field.isDisabled} + statusIcons={[ + field.isConnected ? ( + This field is connected} + > + + + ) : null, + field.isCollection ? ( + This field is a collection} + > + + + ) : null, + field.hasTransformations ? ( + This field has transformations} + > + + + ) : null, + field.isAttribute ? ( + This field is an attribute} + > + + + ) : null, + ]} + actions={renderActions(field)} + > + {preview} + + + )} + + + )} + + )} + + ); +}; diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/commonActions.tsx b/packages/ui/src/Views/ColumnMapperView/Columns/commonActions.tsx new file mode 100644 index 000000000..f70b747c9 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/commonActions.tsx @@ -0,0 +1,171 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Button, + DropdownItem, + DropdownToggle, + Split, + SplitItem, + Title, + Tooltip, +} from '@patternfly/react-core'; +import { + ExchangeAltIcon, + LinkIcon, + ProjectDiagramIcon, + UnlinkIcon, +} from '@patternfly/react-icons'; + +import { AutoDropdown } from '../../../UI'; +import { IAtlasmapMapping } from '../../../Views'; +import React from 'react'; + +export interface ICommonActionsProps { + connectedMappings: IAtlasmapMapping[]; + onShowMappingDetails: (mapping: IAtlasmapMapping) => void; + canAddFieldToSelectedMapping: boolean; + onAddToSelectedMapping: () => void; + canRemoveFromSelectedMapping: boolean; + onRemoveFromSelectedMapping: () => void; + canStartMapping: boolean; + onStartMapping: () => void; +} + +export function commonActions({ + connectedMappings, + onShowMappingDetails, + canAddFieldToSelectedMapping, + onAddToSelectedMapping, + canRemoveFromSelectedMapping, + onRemoveFromSelectedMapping, + canStartMapping, + onStartMapping, +}: ICommonActionsProps) { + return [ + Show mapping details} + > + {connectedMappings.length > 1 ? ( + ( + + + + )} + isPlain={true} + position={'right'} + dropdownItems={connectedMappings.map((m) => ( + onShowMappingDetails(m)}> + + {m.name} + + + + + Sources + + {m.sourceFields.map((s) => ( +
{s.name}
+ ))} +
+ + + Targets + + {m.targetFields.map((t) => ( +
{t.name}
+ ))} +
+
+
+ ))} + disabled={connectedMappings.length === 0} + /> + ) : ( + + )} +
, + canRemoveFromSelectedMapping ? ( + Disconnect from the selected mapping} + > + + + ) : ( + Connect to the selected mapping} + > + + + ), + Create new mapping} + > + + , + ]; +} diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/constants.ts b/packages/ui/src/Views/ColumnMapperView/Columns/constants.ts new file mode 100644 index 000000000..3360c2475 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/constants.ts @@ -0,0 +1,35 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export const SOURCES_DRAGGABLE_TYPE = 'source'; +export const SOURCES_HEIGHT_BOUNDARY_ID = 'sources-height'; +export const SOURCES_WIDTH_BOUNDARY_ID = 'sources-width'; +export const SOURCES_PROPERTIES_ID = 'sources-properties'; +export const SOURCES_CONSTANTS_ID = 'sources-constants'; +export const SOURCES_DOCUMENT_ID_PREFIX = 'sources-document-'; +export const SOURCES_FIELD_ID_PREFIX = 'sources-field-'; + +export const MAPPINGS_DROP_TYPE = 'mapping'; +export const MAPPINGS_HEIGHT_BOUNDARY_ID = 'mappings-height'; +export const MAPPINGS_WIDTH_BOUNDARY_ID = 'mappings-width'; +export const MAPPINGS_DOCUMENT_ID_PREFIX = 'mappings-document-'; +export const MAPPINGS_FIELD_ID_PREFIX = 'mappings-field-'; + +export const TARGETS_DRAGGABLE_TYPE = 'target'; +export const TARGETS_HEIGHT_BOUNDARY_ID = 'targets-height'; +export const TARGETS_PROPERTIES_ID = 'targets-properties'; +export const TARGETS_WIDTH_BOUNDARY_ID = 'targets-width'; +export const TARGETS_DOCUMENT_ID_PREFIX = 'targets-document-'; +export const TARGETS_FIELD_ID_PREFIX = 'targets-field-'; diff --git a/packages/ui/src/Views/ColumnMapperView/Columns/index.ts b/packages/ui/src/Views/ColumnMapperView/Columns/index.ts new file mode 100644 index 000000000..6c9b67590 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Columns/index.ts @@ -0,0 +1,20 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './constants'; +export * from './SourcesColumn'; +export * from './TargetsColumn'; +export * from './TraverseFields'; +export * from './commonActions'; diff --git a/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css b/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css new file mode 100644 index 000000000..ca9d24f7b --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css @@ -0,0 +1,7 @@ +.arc { + cursor: pointer; +} + +.group { + pointer-events: all; +} diff --git a/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts b/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts new file mode 100644 index 000000000..d271315c3 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts @@ -0,0 +1,6 @@ +declare const styles: { + readonly "arc": string; + readonly "group": string; +}; +export = styles; + diff --git a/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.tsx b/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.tsx new file mode 100644 index 000000000..53310a239 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Links/SourceTargetLinks.tsx @@ -0,0 +1,119 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { + FunctionComponent, + MouseEvent, + ReactElement, + useMemo, +} from 'react'; +import { SOURCES_FIELD_ID_PREFIX, TARGETS_FIELD_ID_PREFIX } from '../Columns'; + +import { IAtlasmapMapping } from '../../../Views'; +import { NodesArc } from '../../../UI'; +import styles from './SourceTargetLinks.module.css'; +import { useToggle } from '../../../impl/utils'; + +export interface ISourceTargetLinksProps { + mappings: IAtlasmapMapping[]; + selectedMappingId?: string; + onSelectMapping: (mapping: IAtlasmapMapping) => void; +} + +export const SourceTargetLinks: FunctionComponent = ({ + mappings, + selectedMappingId, + onSelectMapping, +}) => { + const sortedMappings = useMemo( + () => mappings.sort((a) => (a.id === selectedMappingId ? 1 : -1)), + [mappings, selectedMappingId], + ); + + return ( + + {sortedMappings.map((m) => ( + onSelectMapping(m)} + isSelected={m.id === selectedMappingId} + key={m.id} + /> + ))} + + + + ); +}; + +interface IMappingLinesProps { + mapping: IAtlasmapMapping; + isSelected: boolean; + onClick: () => void; +} + +const MappingLines: FunctionComponent = ({ + mapping, + isSelected, + onClick, +}) => { + const { + state: isHovered, + toggleOn: toggleHoveredOn, + toggleOff: toggleHoveredOff, + } = useToggle(false); + + const handleClick = (event: MouseEvent) => { + onClick(); + event.stopPropagation(); + }; + + const color = isSelected ? 'var(--pf-global--active-color--100)' : undefined; + const hoverColor = !isSelected + ? 'var(--pf-global--active-color--400)' + : undefined; + const mappingLines = mapping.sourceFields.reduce( + (lines, start) => { + const linesFromSource = mapping.targetFields.map((end) => ( + + )); + return [...lines, ...linesFromSource]; + }, + [], + ); + return {mappingLines}; +}; diff --git a/packages/ui/src/Views/ColumnMapperView/Links/index.ts b/packages/ui/src/Views/ColumnMapperView/Links/index.ts new file mode 100644 index 000000000..c95c6ba01 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/Links/index.ts @@ -0,0 +1,16 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './SourceTargetLinks'; diff --git a/packages/ui/src/Views/ColumnMapperView/index.ts b/packages/ui/src/Views/ColumnMapperView/index.ts new file mode 100644 index 000000000..42f9b8763 --- /dev/null +++ b/packages/ui/src/Views/ColumnMapperView/index.ts @@ -0,0 +1,18 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './Actions'; +export * from './Columns'; +export * from './Links'; diff --git a/packages/ui/src/Views/MappingDetailsView.tsx b/packages/ui/src/Views/MappingDetailsView.tsx new file mode 100644 index 000000000..002654ddc --- /dev/null +++ b/packages/ui/src/Views/MappingDetailsView.tsx @@ -0,0 +1,359 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AddFieldTypeahead, + Document, + ITransformationArgument, + MappingField, + MappingFields, + MappingTransformation, +} from '../UI'; +import { Alert, AlertActionCloseButton, Badge } from '@patternfly/react-core'; +import { IAtlasmapField, IAtlasmapMappedField, INotification } from './models'; +import React, { FunctionComponent } from 'react'; + +import { Field } from '@atlasmap/core/dist/models/field.model'; +import { MappingDetailsSidebar } from '../Layout'; + +export interface IMappingDetailsViewProps { + notifications: INotification[]; + sources: Array; + targets: Array; + addableSources: IAtlasmapField[]; + addableTargets: IAtlasmapField[]; + showSourcesIndex: boolean; + showTargetsIndex: boolean; + multiplicity?: { + name: string; + transformationsOptions: { name: string; value: string }[]; + transformationsArguments?: ITransformationArgument[]; + onChange: (newName: string) => void; + onArgumentChange: (argumentName: string, argumentValue: string) => void; + }; + onClose: () => void; + mappingExpressionEnabled: boolean; + onRemoveMapping: () => void; + onRemoveMappedField: (isSource: boolean, index: number) => void; + onIndexChange: ( + isSource: boolean, + currentIndex: number, + newIndex: number | Field, + ) => void; + onNewTransformation: (isSource: boolean, index: number) => void; + onTransformationChange: ( + isSource: boolean, + index: number, + currentTransformationIndex: number, + newTransformationName: string, + ) => void; + onTransformationArgumentChange: ( + isSource: boolean, + index: number, + transformationIndex: number, + argumentName: string, + argumentValue: string, + ) => void; + onRemoveTransformation: ( + isSource: boolean, + index: number, + currentTransformationIndex: number, + ) => void; + onAddFieldToMapping: (isSource: boolean, field: IAtlasmapField) => void; + onNotificationRead: (id: string) => void; + onEditEnum: (cb: any) => void; + isEnumMapping: () => boolean; + onCreateConstant: ( + constants: any | null, + addToActiveMapping?: boolean, + ) => void; + onCreateProperty: ( + isSource: boolean, + props: any | null, + addToActiveMapping?: boolean, + ) => void; + canAddToSelectedMapping: (isSource: boolean) => boolean; +} + +export const MappingDetailsView: FunctionComponent< + IMappingDetailsViewProps +> = ({ + notifications, + sources, + targets, + addableSources, + addableTargets, + showSourcesIndex, + showTargetsIndex, + onClose, + mappingExpressionEnabled, + onRemoveMapping, + onRemoveMappedField, + onIndexChange, + onNewTransformation, + onTransformationChange, + onTransformationArgumentChange, + onRemoveTransformation, + onAddFieldToMapping, + onNotificationRead, + onEditEnum, + isEnumMapping, + onCreateConstant, + onCreateProperty, + canAddToSelectedMapping, + multiplicity, +}) => { + const formInputGroupStyle = { + '--pf-c-form--GridGap': '0', + marginTop: '1.0rem', + } as React.CSSProperties; + + const mappingAction = multiplicity && ( + + ); + + const genericPaddingField: IAtlasmapField = { + id: '', + name: 'Padding field', + value: '', + type: '', + scope: 'current', + path: '', + mappings: [], + hasTransformations: false, + isAttribute: false, + isCollection: false, + isConnected: false, + isInCollection: false, + isDisabled: false, + amField: {} as IAtlasmapField['amField'], + enumeration: false, + }; + + const renderMappingField = ( + isSource: boolean, + canShowIndex: boolean, + f: IAtlasmapMappedField | null, + index: number, + ) => { + return f ? ( + (${f.type})` + : `${f.path} (${f.type})` + } + mappingExpressionEnabled={mappingExpressionEnabled} + hasTransformations={f.transformations.length > 0} + onDelete={() => onRemoveMappedField(isSource, index)} + onIndexChange={(value: string | IAtlasmapField) => + typeof value === 'string' + ? onIndexChange(isSource, index, parseInt(value, 10)) + : onIndexChange(isSource, index, value.amField) + } + onNewTransformation={() => onNewTransformation(isSource, index)} + index={index + 1} + canShowIndex={canShowIndex} + > +
+ {f.transformations.map((t, transformationIndex) => ( + + onTransformationChange( + isSource, + index, + transformationIndex, + value, + ) + } + onTransformationArgumentChange={(name, value) => + onTransformationArgumentChange( + isSource, + index, + transformationIndex, + name, + value, + ) + } + onRemoveTransformation={() => { + onRemoveTransformation(isSource, index, transformationIndex); + }} + /> + ))} +
+
+ ) : ( + onRemoveMappedField(isSource, index)} + index={index + 1} + canShowIndex={showSourcesIndex} + /> + ); + }; + + const renderSourceMappingField = ( + f: IAtlasmapMappedField | null, + index: number, + ) => renderMappingField(true, showSourcesIndex, f, index); + const renderTargetMappingField = ( + f: IAtlasmapMappedField | null, + index: number, + ) => renderMappingField(false, showTargetsIndex, f, index); + + const errors = notifications.filter((n) => n.variant === 'danger'); + const warnings = notifications.filter((n) => n.variant === 'warning'); + const messages = notifications.filter( + (n) => n.variant !== 'warning' && n.variant !== 'danger', + ); + + return ( + + {errors.length > 0 && ( + + )} + {warnings.length > 0 && ( + + )} + {messages.length > 0 && ( + + )} +
+ {mappingAction} + + {sources.map(renderSourceMappingField)} + {targets.length <= 1 && ( + ({ + label: s.amField.isPropertyOrConstant() ? s.name : s.path, + group: s.amField!.docDef.name, + onAdd: () => onAddFieldToMapping(true, s), + }))} + data-testid={'add-source-to-mapping'} + /> + )} + + + {targets.map(renderTargetMappingField)} + {sources.length <= 1 && ( + ({ + label: t.amField.isProperty() ? t.name : t.path, + group: t.amField!.docDef.name, + onAdd: () => onAddFieldToMapping(false, t), + }))} + data-testid={'add-target-to-mapping'} + /> + )} + +
+
+ ); +}; + +interface INotificationsGroupProps { + title: string; + notifications: INotification[]; + onNotificationRead: (id: string) => void; +} + +const NotificationsGroup: FunctionComponent = ({ + title, + notifications, + onNotificationRead, +}) => { + return ( + {notifications.length}]} + > +
+ {notifications.map((n, idx) => ( + onNotificationRead(n.id)} + data-testid={`dismiss-mapping-notification-${n.id}`} + /> + } + /> + ))} +
+
+ ); +}; diff --git a/packages/ui/src/Views/MappingTableView.module.css b/packages/ui/src/Views/MappingTableView.module.css new file mode 100644 index 000000000..b7ab27778 --- /dev/null +++ b/packages/ui/src/Views/MappingTableView.module.css @@ -0,0 +1,3 @@ +.title { + margin-bottom: 0.2rem; +} diff --git a/packages/ui/src/Views/MappingTableView.module.css.d.ts b/packages/ui/src/Views/MappingTableView.module.css.d.ts new file mode 100644 index 000000000..409059b19 --- /dev/null +++ b/packages/ui/src/Views/MappingTableView.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "title": string; +}; +export = styles; + diff --git a/packages/ui/src/Views/MappingTableView.stories.tsx b/packages/ui/src/Views/MappingTableView.stories.tsx new file mode 100644 index 000000000..6ef671ccf --- /dev/null +++ b/packages/ui/src/Views/MappingTableView.stories.tsx @@ -0,0 +1,45 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { MappingTableView } from '../Views'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; +import { boolean } from '@storybook/addon-knobs'; +import decorators from '../stories/decorators'; +import { mappings } from '../stories/sampleData'; + +const obj = { + title: 'AtlasMap|Views', + decorators, +}; +export default obj; + +export const mappingTableView = () => ( + boolean('shouldShowMappingPreview', false)} + onFieldPreviewChange={action('onFieldPreviewChange')} + /> +); + +export const mappingTableViewNoMappings = () => ( + boolean('shouldShowMappingPreview', false)} + onFieldPreviewChange={action('onFieldPreviewChange')} + /> +); diff --git a/packages/ui/src/Views/MappingTableView.tsx b/packages/ui/src/Views/MappingTableView.tsx new file mode 100644 index 000000000..5d2aabd84 --- /dev/null +++ b/packages/ui/src/Views/MappingTableView.tsx @@ -0,0 +1,145 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Bullseye, + EmptyState, + EmptyStateIcon, + EmptyStateVariant, + Title, +} from '@patternfly/react-core'; +import { DocumentFieldPreview, DocumentFieldPreviewResults } from '../UI'; +import { IAtlasmapField, IAtlasmapMapping } from '../Views'; +import { + ICell, + IRow, + Table, + TableBody, + TableHeader, +} from '@patternfly/react-table'; +import React, { FunctionComponent, MouseEvent } from 'react'; + +import { MainContent } from '../Layout'; +import { TableIcon } from '@patternfly/react-icons'; +import styles from './MappingTableView.module.css'; + +const emptyContent = [ + { + heightAuto: true, + cells: [ + { + props: { colSpan: 8 }, + title: ( + + + + + No mappings found + + + + ), + }, + ], + }, +]; + +export interface IMappingTableProps { + mappings: Array; + onSelectMapping: (mapping: IAtlasmapMapping) => void; + shouldShowMappingPreview: (field: IAtlasmapMapping) => boolean; + onFieldPreviewChange: (field: IAtlasmapField, value: string) => void; +} + +export const MappingTableView: FunctionComponent = ({ + mappings, + onSelectMapping, + shouldShowMappingPreview, + onFieldPreviewChange, +}) => { + const rows = + mappings.length === 0 + ? emptyContent + : mappings.map((mapping) => { + const sources = mapping.sourceFields.map((source, index) => { + const field: IAtlasmapField = source; + const { name } = field; + return ( +
+ {name} + {shouldShowMappingPreview(mapping) && ( + onFieldPreviewChange(field, value)} + /> + )} +
+ ); + }); + const targets = mapping.targetFields.map((target, index) => { + const field: IAtlasmapField = target; + const { name } = field; + return ( +
+ {name} + {shouldShowMappingPreview(mapping) && ( + + )} +
+ ); + }); + return { + cells: [ + { + title: sources, + data: mapping.id, + }, + { + title: targets, + }, + { + title: mapping.name, + }, + ], + }; + }); + + const columns = ['Sources', 'Targets', 'Types']; + + const handleSelectMapping = (_event: MouseEvent, row: IRow) => { + const mapping: IAtlasmapMapping | undefined = mappings.find( + (mapping) => (row.cells?.[0] as ICell).data === mapping.id, + ); + if (mapping) { + onSelectMapping(mapping); + } + }; + + return ( + + + Mappings + + + + +
+
+ ); +}; diff --git a/packages/ui/src/Views/NamespaceTableView.module.css b/packages/ui/src/Views/NamespaceTableView.module.css new file mode 100644 index 000000000..e2b2a5a34 --- /dev/null +++ b/packages/ui/src/Views/NamespaceTableView.module.css @@ -0,0 +1,4 @@ +.title { + margin-top: 1rem; + margin-bottom: 1rem; +} diff --git a/packages/ui/src/Views/NamespaceTableView.module.css.d.ts b/packages/ui/src/Views/NamespaceTableView.module.css.d.ts new file mode 100644 index 000000000..409059b19 --- /dev/null +++ b/packages/ui/src/Views/NamespaceTableView.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "title": string; +}; +export = styles; + diff --git a/packages/ui/src/Views/NamespaceTableView.tsx b/packages/ui/src/Views/NamespaceTableView.tsx new file mode 100644 index 000000000..6efc36303 --- /dev/null +++ b/packages/ui/src/Views/NamespaceTableView.tsx @@ -0,0 +1,180 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + Bullseye, + Button, + EmptyState, + EmptyStateIcon, + EmptyStateVariant, + Level, + LevelItem, + Title, + Tooltip, +} from '@patternfly/react-core'; +import { + ICell, + IRowData, + Table, + TableBody, + TableHeader, + textCenter, +} from '@patternfly/react-table'; +import { PlusIcon, TableIcon } from '@patternfly/react-icons'; +import React, { FunctionComponent, ReactElement } from 'react'; + +import { Actions } from '../UI'; +import { IAtlasmapDocument } from '.'; +import { MainContent } from '../Layout'; +import styles from './NamespaceTableView.module.css'; + +export interface INamespaceTableProps { + sources: IAtlasmapDocument[]; + onCreateNamespace: (docName: string) => void; + onEditNamespace: ( + docName: string, + alias: string, + uri: string, + locationUri: string, + isTarget: boolean, + ) => void; + onDeleteNamespace: (docName: string, alias: string) => void; +} + +export const NamespaceTableView: FunctionComponent = ({ + sources, + onCreateNamespace, + onEditNamespace, + onDeleteNamespace, +}) => { + const columns = [ + 'Alias', + 'URI', + 'Location URI', + { + title: 'Target Namespace', + transforms: [textCenter], + cellTransforms: [textCenter], + }, + ]; + + const namespaceTables: ReactElement[] = sources.reduce( + (xmlSources: ReactElement[], source: IAtlasmapDocument) => { + if (source.type !== 'XML') { + return xmlSources; + } + + const rows = + !source.namespaces || source.namespaces.length === 0 + ? [ + { + cells: [''], + }, + ] + : source.namespaces.map((namespace) => { + return { + cells: [ + { title: namespace.alias }, + { title: namespace.uri }, + { title: namespace.locationUri }, + { + title: namespace.isTarget ? '\u2713' : '', + }, + ], + }; + }); + + const actions = [ + { + title: 'Edit', + onClick: (_event: any, _rowId: any, row: IRowData, _extra: any) => { + onEditNamespace( + source.name, + (row.cells?.[0] as ICell).title as string, + (row.cells?.[1] as ICell).title as string, + (row.cells?.[2] as ICell).title as string, + ((row.cells?.[3] as ICell).title as string).length > 0 + ? true + : false, + ); + }, + }, + { + title: 'Remove', + onClick: (_event: any, _rowId: any, row: any, _extra: any) => + onDeleteNamespace(source.name, row.alias.title), + }, + ]; + + return [ + ...xmlSources, + + + + Namespaces for {source.name} + + + + + Create a namespace} + key={'create-namespace'} + > + + + + + , + 0 + ? actions + : undefined + } + > + + +
, + ]; + }, + [], + ); + + return namespaceTables.length === 0 ? ( + + + + + No XML sources found + + + + ) : ( + {namespaceTables} + ); +}; diff --git a/packages/ui/src/Views/SourceTargetView.spec.tsx b/packages/ui/src/Views/SourceTargetView.spec.tsx new file mode 100644 index 000000000..b0b4dc8b9 --- /dev/null +++ b/packages/ui/src/Views/SourceTargetView.spec.tsx @@ -0,0 +1,28 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { act } from 'react-dom/test-utils'; +import { render } from '@testing-library/react'; +import { sourceTargetView } from './SourceTargetView.stories'; + +describe('SourceTargetView', () => { + test('should render', async () => { + const { getByTestId } = render(sourceTargetView()); + await act(async () => { + expect(getByTestId('column-source-area').tagName).toBe('DIV'); + expect(getByTestId('column-target-area').tagName).toBe('DIV'); + }); + }); +}); diff --git a/packages/ui/src/Views/SourceTargetView.stories.tsx b/packages/ui/src/Views/SourceTargetView.stories.tsx new file mode 100644 index 000000000..f7742302d --- /dev/null +++ b/packages/ui/src/Views/SourceTargetView.stories.tsx @@ -0,0 +1,136 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { CanvasProvider, FieldsDndProvider } from '../UI'; +import { IAtlasmapField, IAtlasmapMapping, SourceTargetView } from '../Views'; +import React, { createElement, useState } from 'react'; +import { + constants, + mappings, + properties, + sources, + targets, +} from '../stories/sampleData'; + +import { action } from '@storybook/addon-actions'; +import { boolean } from '@storybook/addon-knobs'; +import decorators from '../stories/decorators'; + +const obj = { + title: 'AtlasMap|Views', + decorators, +}; +export default obj; + +export const sourceTargetView = () => + createElement(() => { + const [selectedMappingId, setSelectedMappingId] = useState< + string | undefined + >(undefined); + const onSelectMapping = (m: IAtlasmapMapping) => setSelectedMappingId(m.id); + const shouldShowMappingPreviewForField = (f: IAtlasmapField) => + boolean('Show mapping preview', false) && + !!selectedMappingId && + !!f.mappings.find((m) => m.id === selectedMappingId); + return ( + + + true, + onAddToSelectedMapping: action('onAddToSelectedMapping'), + onShowMappingDetails: action('onShowMappingDetails'), + canAddToSelectedMapping: () => true, + canAddFieldToSelectedMapping: (item) => + !!selectedMappingId && + !item.mappings.find((m) => m.id === selectedMappingId), + onRemoveFromSelectedMapping: action( + 'onRemoveFromSelectedMapping', + ), + canRemoveFromSelectedMapping: (item) => + !!selectedMappingId && + !!item.mappings.find((m) => m.id === selectedMappingId), + canStartMapping: () => true, + onStartMapping: action('onStartMapping'), + shouldShowMappingPreviewForField: + shouldShowMappingPreviewForField, + onFieldPreviewChange: action('onFieldPreviewChange'), + isSource: true, + acceptDropType: 'target', + draggableType: 'source', + onEditCSVParams: action('onEditCSVParams'), + }} + targetEvents={{ + onCaptureDocumentID: action('onCapthreDocumentID'), + onChangeDocumentName: action('onChangeDocumentName'), + onCreateProperty: action('onCreateProperty'), + onEditProperty: action('onEditProperty'), + onDeleteProperty: action('onDeleteProperty'), + onFieldPreviewChange: action('onFieldPreviewChange'), + onDeleteDocument: action('onDeleteDocument'), + onImportDocument: action('onImportDocument'), + onCustomClassSearch: action('onCustomClassSearch'), + onSearch: action('onSearch'), + onDrop: action('onDrop'), + canDrop: () => true, + onAddToSelectedMapping: action('onAddToSelectedMapping'), + onShowMappingDetails: action('onShowMappingDetails'), + canAddToSelectedMapping: () => true, + canAddFieldToSelectedMapping: (item) => + !!selectedMappingId && + !item.mappings.find((m) => m.id === selectedMappingId), + onRemoveFromSelectedMapping: action( + 'onRemoveFromSelectedMapping', + ), + canRemoveFromSelectedMapping: (item) => + !!selectedMappingId && + !!item.mappings.find((m) => m.id === selectedMappingId), + canStartMapping: () => true, + onStartMapping: action('onStartMapping'), + shouldShowMappingPreviewForField: + shouldShowMappingPreviewForField, + isSource: false, + acceptDropType: 'source', + draggableType: 'target', + onEditCSVParams: action('onEditCSVParams'), + }} + showTypes={boolean('Show types', false)} + showMappingPreview={boolean('Show mapping preview', false)} + sourceProperties={properties} + targetProperties={properties} + constants={constants} + sources={sources} + mappings={mappings} + targets={targets} + selectedMappingId={selectedMappingId} + onSelectMapping={onSelectMapping} + /> + + + ); + }); diff --git a/packages/ui/src/Views/SourceTargetView.tsx b/packages/ui/src/Views/SourceTargetView.tsx new file mode 100644 index 000000000..dcc6d1b75 --- /dev/null +++ b/packages/ui/src/Views/SourceTargetView.tsx @@ -0,0 +1,86 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Column, ColumnMapper, Columns, NodeRefProvider } from '../UI'; +import { + ISourceColumnCallbacks, + ISourceTargetLinksProps, + ISourcesColumnData, + ITargetsColumnCallbacks, + ITargetsColumnData, + SourceTargetLinks, + SourcesColumn, + TargetsColumn, +} from './ColumnMapperView'; +import React, { FunctionComponent } from 'react'; + +export interface ISourceTargetViewProps + extends ISourcesColumnData, + ITargetsColumnData, + ISourceTargetLinksProps { + onSelectMapping: ISourceTargetLinksProps['onSelectMapping']; + sourceEvents: ISourceColumnCallbacks; + targetEvents: ITargetsColumnCallbacks; +} + +export const SourceTargetView: FunctionComponent = ({ + sourceProperties, + targetProperties, + constants, + sources, + mappings, + targets, + showMappingPreview, + showTypes, + selectedMappingId, + onSelectMapping, + sourceEvents, + targetEvents, +}) => { + return ( + <> + + + + + + + + + + + + + + + + ); +}; diff --git a/packages/ui/src/Views/index.ts b/packages/ui/src/Views/index.ts new file mode 100644 index 000000000..eb80b0d63 --- /dev/null +++ b/packages/ui/src/Views/index.ts @@ -0,0 +1,21 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './ColumnMapperView'; +export * from './MappingDetailsView'; +export * from './MappingTableView'; +export * from './NamespaceTableView'; +export * from './models'; +export * from './SourceTargetView'; diff --git a/packages/ui/src/Views/models.ts b/packages/ui/src/Views/models.ts new file mode 100644 index 000000000..3a56f32fb --- /dev/null +++ b/packages/ui/src/Views/models.ts @@ -0,0 +1,99 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Field, MappingModel } from '@atlasmap/core'; +import { ITransformationArgument, ITransformationSelectOption } from '../UI'; +import { AlertProps } from '@patternfly/react-core'; + +export type ElementId = string; +export type GroupId = string; + +export type AtlasmapDocumentType = 'source' | 'target'; + +export type AtlasmapFields = Array; + +export interface IAtlasmapField { + id: ElementId; + name: string; + type: string; + scope: string; + value: string; + path: string; + mappings: IAtlasmapMapping[]; + hasTransformations: boolean; + isAttribute: boolean; + isCollection: boolean; + isConnected: boolean; + isInCollection: boolean; + isDisabled: boolean; + enumeration: boolean; + + // TODO: find a way to remove this maybe? + amField: Field; +} + +export interface IAtlasmapGroup { + id: GroupId; + fields: (IAtlasmapField | IAtlasmapGroup)[]; + name: string; + type: string; + isCollection: boolean; + isInCollection: boolean; + + // TODO: find a way to remove this maybe? + amField: Field; +} + +export interface IAtlasmapNamespace { + alias: string; + uri: string; + locationUri: string; + isTarget: boolean; +} + +export type AtlasmapNamespaces = Array; + +export interface IAtlasmapDocument { + id: string; + name: string; + type: string; + fields: AtlasmapFields; + namespaces?: AtlasmapNamespaces; +} + +export interface IAtlasmapMappedField extends IAtlasmapField { + transformations: Array<{ + name: string; + options: Array; + arguments: Array; + }>; +} + +export interface IAtlasmapMapping { + id: string; + name: string; + sourceFields: Array; + targetFields: Array; + mapping: MappingModel; +} + +export interface INotification { + id: string; + variant: AlertProps['variant']; + title: string; + description: string; + isRead?: boolean; + mappingId?: string; +} diff --git a/packages/ui/src/core/common/config.types.ts b/packages/ui/src/core/common/config.types.ts new file mode 100644 index 000000000..9102c7c23 --- /dev/null +++ b/packages/ui/src/core/common/config.types.ts @@ -0,0 +1,90 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { CollectionType } from '../contracts/common'; + +export enum DocumentDefaultName { + CONSTANTS = 'Constants', + PROPERTIES = 'Properties', +} + +export const enum FieldMode { + CREATE, + EDIT, +} + +export const collectionTypes = [ + [CollectionType[CollectionType.ARRAY], 'Array'], + [CollectionType[CollectionType.LIST], 'List'], + [CollectionType[CollectionType.MAP], 'Map'], + [CollectionType[CollectionType.NONE], 'None'], +]; + +export const constantTypes = [ + ['STRING', 'String'], // default type + ['BOOLEAN', 'Boolean'], + ['BIG_INTEGER', 'Big Integer'], + ['BYTE', 'Byte'], + ['BYTE_ARRAY', 'ByteArray'], + ['CHAR', 'Char'], + ['COMPLEX', 'Complex'], + ['DECIMAL', 'Decimal'], + ['DOUBLE', 'Double'], + ['FLOAT', 'Float'], + ['INTEGER', 'Integer'], + ['LONG', 'Long'], + ['SHORT', 'Short'], + ['TIME', 'Time'], + ['DATE', 'Date'], + ['DATE_TIME', 'DateTime'], + ['DATE_TZ', 'DateTZ'], + ['TIME_TZ', 'TimeTZ'], + ['DATE_TIME_TZ', 'DateTimeTZ'], + ['UNSIGNED_BYTE', 'Unsigned Byte'], + ['UNSIGNED_INTEGER', 'Unsigned Integer'], + ['UNSIGNED_LONG', 'Unsigned Long'], + ['UNSIGNED_SHORT', 'Unsigned Short'], +]; + +export const propertyTypes = [ + ['STRING', 'String'], // default type + ['ANY', 'Any'], + ['BOOLEAN', 'Boolean'], + ['BIG_INTEGER', 'Big Integer'], + ['BYTE', 'Byte'], + ['BYTE_ARRAY', 'ByteArray'], + ['CHAR', 'Char'], + ['COMPLEX', 'Complex'], + ['DECIMAL', 'Decimal'], + ['DOUBLE', 'Double'], + ['FLOAT', 'Float'], + ['INTEGER', 'Integer'], + ['LONG', 'Long'], + ['SHORT', 'Short'], + ['TIME', 'Time'], + ['DATE', 'Date'], + ['DATE_TIME', 'DateTime'], + ['DATE_TZ', 'DateTZ'], + ['TIME_TZ', 'TimeTZ'], + ['DATE_TIME_TZ', 'DateTimeTZ'], + ['UNSIGNED_BYTE', 'Unsigned Byte'], + ['UNSIGNED_INTEGER', 'Unsigned Integer'], + ['UNSIGNED_LONG', 'Unsigned Long'], + ['UNSIGNED_SHORT', 'Unsigned Short'], +]; + +export const HTTP_STATUS_OK = 200; +export const HTTP_STATUS_NO_CONTENT = 204; diff --git a/packages/ui/src/core/common/index.ts b/packages/ui/src/core/common/index.ts new file mode 100644 index 000000000..82681c680 --- /dev/null +++ b/packages/ui/src/core/common/index.ts @@ -0,0 +1,16 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './config.types'; diff --git a/packages/ui/src/core/contracts/adm-digest.ts b/packages/ui/src/core/contracts/adm-digest.ts new file mode 100644 index 000000000..4d6a20798 --- /dev/null +++ b/packages/ui/src/core/contracts/adm-digest.ts @@ -0,0 +1,38 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { InspectionType } from './common'; + +export interface ADMDigest { + exportMappings: ValueContainer; + exportMeta: DataSourceMetadata[]; + exportBlockData: ValueContainer[]; +} + +export interface DataSourceMetadata { + id: string; + name: string; + documentType?: string; + inspectionType: InspectionType; + isSource: boolean; + specification?: any; + dataSourceType: string; + inspectionParameters?: { [key: string]: string }; +} + +export interface ValueContainer { + value: string; +} diff --git a/packages/ui/src/core/contracts/common.ts b/packages/ui/src/core/contracts/common.ts new file mode 100644 index 000000000..ee803a887 --- /dev/null +++ b/packages/ui/src/core/contracts/common.ts @@ -0,0 +1,179 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +export const FIELD_PATH_SEPARATOR = '/'; + +export const MODEL_PACKAGE_PREFIX = 'io.atlasmap.v2'; +export const DATA_SOURCE_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.DataSource'; + +/** SOURCE or TARGET. */ +export enum DataSourceType { + SOURCE = 'SOURCE', + TARGET = 'TARGET', +} + +/** + * The type of collection, such as {@link ARRAY} and {@link LIST}. + */ +export enum CollectionType { + ALL = 'ALL', + ARRAY = 'ARRAY', + LIST = 'LIST', + MAP = 'MAP', + NONE = 'NONE', +} + +/** + * The field status held by {@link IField}. + */ +export enum FieldStatus { + SUPPORTED = 'SUPPORTED', + UNSUPPORTED = 'UNSUPPORTED', + CACHED = 'CACHED', + ERROR = 'ERROR', + NOT_FOUND = 'NOT_FOUND', + EXCLUDED = 'EXCLUDED', +} + +/** + * The field type held by {@link IField}. + */ +export enum FieldType { + ANY = 'ANY', + ANY_DATE = 'ANY_DATE', + BIG_INTEGER = 'BIG_INTEGER', + BOOLEAN = 'BOOLEAN', + BYTE = 'BYTE', + BYTE_ARRAY = 'BYTE_ARRAY', + CHAR = 'CHAR', + COMPLEX = 'COMPLEX', + DATE = 'DATE', + DATE_TIME = 'DATE_TIME', + DATE_TIME_TZ = 'DATE_TIME_TZ', + DATE_TZ = 'DATE_TZ', + DECIMAL = 'DECIMAL', + DOUBLE = 'DOUBLE', + FLOAT = 'FLOAT', + INTEGER = 'INTEGER', + LONG = 'LONG', + NONE = 'NONE', + NUMBER = 'NUMBER', + SHORT = 'SHORT', + STRING = 'STRING', + TIME = 'TIME', + TIME_TZ = 'TIME_TZ', + UNSIGNED_BYTE = 'UNSIGNED_BYTE', + UNSIGNED_INTEGER = 'UNSIGNED_INTEGER', + UNSIGNED_LONG = 'UNSIGNED_LONG', + UNSIGNED_SHORT = 'UNSIGNED_SHORT', + UNSUPPORTED = 'UNSUPPORTED', +} + +export enum DocumentType { + JAVA = 'JAVA', + XML = 'XML', + XSD = 'XSD', + JSON = 'JSON', + CORE = 'Core', + CSV = 'CSV', + CONSTANT = 'Constants', + PROPERTY = 'Property', +} + +export enum InspectionType { + JAVA_CLASS = 'JAVA_CLASS', + SCHEMA = 'SCHEMA', + INSTANCE = 'INSTANCE', + UNKNOWN = 'UNKNOWN', +} + +/** The serialized DataSource held by {@link IAtlasMapping}. */ +export interface IDataSource { + id: string; + name?: string; + description?: string; + uri: string; + dataSourceType: DataSourceType; + characterEncoding?: string; + locale?: string; + jsonType: string; +} + +/** + * The serialized CSV document inspection result. + */ +export interface IDocument { + fields: IFields; +} + +/** + * The container of {@link IField}. + */ +export interface IFields { + field: IField[]; +} + +/** + * The field in the mapping. + */ +export interface IField { + actions?: IFieldAction[]; + value?: string; + arrayDimensions?: number; + arraySize?: number; + collectionType?: CollectionType; + docId?: string; + index?: number; + path?: string; + required?: boolean; + status?: FieldStatus; + fieldType?: FieldType; + format?: string; + name?: string; + jsonType: string; +} + +/** + * The field action, aka transformation in the mapping. + */ +export interface IFieldAction { + '@type'?: string; + displayName?: string; + [x: string]: any; +} + +export interface IStringList { + string: string[]; +} + +export interface IParameterOption { + label: string; + value: string; +} + +export interface IParameter { + name: string; + label: string; + value: string; + boolean?: boolean; + options?: IParameterOption[]; + enabled?: boolean; + required?: boolean; +} + +export interface IStringContainer { + String: string; +} diff --git a/packages/ui/src/core/contracts/documents/csv.ts b/packages/ui/src/core/contracts/documents/csv.ts new file mode 100644 index 000000000..c75357965 --- /dev/null +++ b/packages/ui/src/core/contracts/documents/csv.ts @@ -0,0 +1,163 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { IDocument, IField, IParameter } from '../common'; + +/** + * The CSV inspection data model contracts between frontend and backend. + */ + +/** + * The root object that carries {@link ICsvInspectionResponse} + * when it's received from backend. + */ +export interface ICsvInspectionResponseContainer { + CsvInspectionResponse: ICsvInspectionResponse; +} + +/** + * The serialized CSV inspection response. + */ +export interface ICsvInspectionResponse { + csvDocument: IDocument; + errorMessage?: string; + executionTime?: number; +} + +/** + * The root object that carries {@link ICsvDocument} + * when it's inspected with maven plugin. + */ +export interface ICsvDocumentContainer { + CsvDocument: IDocument; +} + +/** + * The serialized CSV complex field. + */ +export interface ICsvComplexType extends ICsvField { + csvFields: ICsvFields; + uri?: string; +} + +/** + * The serialized CSV primitive field. + */ +export interface ICsvField extends IField { + column: number; +} + +/** + * The container of {@link ICsvField}. + */ +export interface ICsvFields { + csvField: ICsvField[]; +} + +// TODO: Retrieve from the backend CSV module +export function getCsvParameterOptions(): IParameter[] { + return [ + { + name: 'format', + label: 'CSV File Format', + value: 'Default', + options: [ + { label: 'Default', value: 'Default' }, + { label: 'Excel', value: 'Excel' }, + { label: 'InformixUnload', value: 'InformixUnload' }, + { label: 'InformixUnloadCsv', value: 'InformixUnloadCsv' }, + { label: 'MongoDBCsv', value: 'MongoDBCsv' }, + { label: 'MongoDBTsv', value: 'MongoDBTsv' }, + { label: 'MySQL', value: 'MySQL' }, + { label: 'Oracle', value: 'Oracle' }, + { label: 'PostgreSQLCsv', value: 'PostgreSQLCsv' }, + { label: 'PostgreSQLText', value: 'PostgreSQLText' }, + { label: 'RFC4180', value: 'RFC4180' }, + { label: 'TDF', value: 'TDF' }, + ], + required: true, + }, + { + name: 'allowDuplicateHeaderNames', + label: 'Allow Duplicate Header Names', + value: 'true', + boolean: true, + required: false, + }, + { + name: 'allowMissingColumnNames', + label: 'Allow Missing Column Names', + value: 'true', + boolean: true, + required: false, + }, + { + name: 'commentMarker', + label: 'Comment Marker', + value: '', + required: false, + }, + { + name: 'delimiter', + label: 'Delimiter', + value: '', + required: false, + }, + { name: 'escape', label: 'Escape', value: '', required: false }, + { + name: 'firstRecordAsHeader', + label: 'First Record As Header', + value: 'true', + boolean: true, + required: false, + }, + { name: 'headers', label: 'Headers', value: '', required: false }, + { + name: 'ignoreEmptyLines', + label: 'Ignore Empty Lines', + value: 'true', + boolean: true, + required: false, + }, + { + name: 'ignoreHeaderCase', + label: 'Ignore Header Case', + value: 'true', + boolean: true, + required: false, + }, + { + name: 'ignoreSurroundingSpaces', + label: 'Ignore Surrounding Spaces', + value: 'true', + boolean: true, + required: false, + }, + { + name: 'nullString', + label: 'Null String', + value: '', + required: false, + }, + { + name: 'skipHeaderRecord', + label: 'Skip Header Record', + value: 'true', + boolean: true, + required: false, + }, + ]; +} diff --git a/packages/ui/src/core/contracts/documents/index.ts b/packages/ui/src/core/contracts/documents/index.ts new file mode 100644 index 000000000..9051b9dd1 --- /dev/null +++ b/packages/ui/src/core/contracts/documents/index.ts @@ -0,0 +1,19 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './csv'; +export * from './java'; +export * from './json'; +export * from './xml'; diff --git a/packages/ui/src/core/contracts/documents/java.ts b/packages/ui/src/core/contracts/documents/java.ts new file mode 100644 index 000000000..3da6cdcea --- /dev/null +++ b/packages/ui/src/core/contracts/documents/java.ts @@ -0,0 +1,152 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { CollectionType, IField, IStringList } from '../common'; + +/** + * The Java class inspection data model contracts between frontend and backend. + */ +export const JAVA_MODEL_PACKAGE_PREFIX = 'io.atlasmap.java.v2'; +export const JAVA_INSPECTION_REQUEST_JSON_TYPE = + JAVA_MODEL_PACKAGE_PREFIX + '.ClassInspectionRequest'; +export const JAVA_CLASS_JSON_TYPE = JAVA_MODEL_PACKAGE_PREFIX + '.JavaClass'; +export const JAVA_ENUM_FIELD_JSON_TYPE = + JAVA_MODEL_PACKAGE_PREFIX + '.JavaEnumField'; + +/** + * The root object that carries {@link IClassInspectionRequest} + * when it's sent to backend. + */ +export interface IClassInspectionRequestContainer { + ClassInspectionRequest: IClassInspectionRequest; +} + +/** + * The serialized Java class inspection request. + */ +export interface IClassInspectionRequest { + jsonType: string; + fieldNameExclusions?: IStringList; + classNameExclusions?: IStringList; + classpath?: string; + className: string; + collectionType?: CollectionType; + collectionClassName?: string; + disablePrivateOnlyFields?: boolean; + disableProtectedOnlyFields?: boolean; + disablePublicOnlyFields?: boolean; + disablePublicGetterSetterFields?: boolean; +} + +/** + * The root object that carries {@link IClassInspectionResponse} + * when it's received from backend. + */ +export interface IClassInspectionResponseContainer { + ClassInspectionResponse: IClassInspectionResponse; +} + +/** + * The serialized Java class inspection response. + */ +export interface IClassInspectionResponse { + javaClass: IJavaClass; + errorMessage: string; + executionTime: number; +} + +/** + * The root object that carries {@link IJavaClass} + * when it's read from Java offline inspection (maven plugin). + */ +export interface IJavaClassContainer { + JavaClass: IJavaClass; +} + +/** + * The serialized Java class inspection result. + */ +export interface IJavaClass extends IJavaField { + javaEnumFields: IJavaEnumFields; + javaFields: IJavaFields; + packageName: string; + annotation: boolean; + annonymous: boolean; + enumeration: boolean; + isInterface: boolean; + localClass: boolean; + memberClass: boolean; + uri: string; +} + +/** + * The serialized Java field. + */ +export interface IJavaField extends IField { + annotations?: IStringList; + modifiers?: { modifier: Modifier[] }; + parameterizedTypes?: IStringList; + className?: string; + canonicalClassName?: string; + collectionClassName?: string; + getMethod?: string; + setMethod?: string; + primitive?: boolean; + synthetic?: boolean; +} + +/** + * The serialized Java modifier. + */ +export enum Modifier { + ALL = 'ALL', + ABSTRACT = 'ABSTRACT', + FINAL = 'FINAL', + INTERFACE = 'INTERFACE', + NATIVE = 'NATIVE', + PACKAGE_PRIVATE = 'Package Private', + PUBLIC = 'PUBLIC', + PROTECTED = 'PROTECTED', + PRIVATE = 'PRIVATE', + STATIC = 'STATIC', + STRICT = 'STRICT', + SYNCHRONIZED = 'SYNCHRONIZED', + TRANSIENT = 'TRANSIENT', + VOLATILE = 'VOLATILE', + NONE = 'NONE', +} + +/** + * The container of serialized {@link IJavaEnumField}. + */ +export interface IJavaEnumFields { + javaEnumField: IJavaEnumField[]; +} + +/** + * The serialized Java enum field. + */ +export interface IJavaEnumField extends IField { + name: string; + ordinal: number; + className: string; +} + +/** + * The container of serialized {@link IJavaField}. + */ +export interface IJavaFields { + javaField: IJavaField[]; +} diff --git a/packages/ui/src/core/contracts/documents/json.ts b/packages/ui/src/core/contracts/documents/json.ts new file mode 100644 index 000000000..b6ddd459b --- /dev/null +++ b/packages/ui/src/core/contracts/documents/json.ts @@ -0,0 +1,120 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { IDocument, IField, IStringList, InspectionType } from '../common'; + +/** + * The JSON inspection data model contracts between frontend and backend. + */ +export const JSON_MODEL_PACKAGE_PREFIX = 'io.atlasmap.json.v2'; +export const JSON_DATA_SOURCE_JSON_TYPE = + JSON_MODEL_PACKAGE_PREFIX + '.JsonDataSource'; +export const JSON_ENUM_FIELD_JSON_TYPE = + JSON_MODEL_PACKAGE_PREFIX + '.JsonEnumField'; +export const JSON_INSPECTION_REQUEST_JSON_TYPE = + JSON_MODEL_PACKAGE_PREFIX + '.JsonInspectionRequest'; + +/** + * The root object that carries {@link IJsonInspectionRequest} + * when it's sent to backend. + */ +export interface IJsonInspectionRequestContainer { + JsonInspectionRequest: IJsonInspectionRequest; +} + +/** + * The serialized JSON inspection request. + */ +export interface IJsonInspectionRequest { + fieldNameExclusions?: IStringList; + typeNameExclusions?: IStringList; + namespaceExclusions?: IStringList; + jsonData?: string; + uri?: string; + type: InspectionType; +} + +/** + * The root object that carries {@link IJsonInspectionResponse} + * when it's received from backend. + */ +export interface IJsonInspectionResponseContainer { + JsonInspectionResponse: IJsonInspectionResponse; +} + +/** + * The serialized JSON inspection response. + */ +export interface IJsonInspectionResponse { + jsonDocument: IJsonDocument; + errorMessage?: string; + executionTime?: number; +} + +/** + * The root object that carries {@link IJsonDocument} + * when it's inspected with maven plugin. + */ +export interface IJsonDocumentContainer { + JsonDocument: IJsonDocument; +} + +/** + * The serialized JSON document inspection result. + */ +export interface IJsonDocument extends IDocument {} + +/** + * The serialized JSON primitive field in inspection result. + */ +export interface IJsonField extends IField { + primitive: boolean; + typeName: string; + userCreated?: boolean; +} + +/** + * The serialized JSON complex field in inspection result. + */ +export interface IJsonComplexType extends IJsonField { + jsonFields?: IJsonFields; + jsonEnumFields?: IJsonEnumFields; + enumeration: boolean; + uri?: string; +} + +/** + * The container of JSON field. + */ +export interface IJsonFields { + jsonField: IJsonField[]; +} + +/** + * The container of JSON enum field. + */ +export interface IJsonEnumFields { + jsonEnumField: IJsonEnumField[]; +} + +/** + * The serialized JSON enum field. + */ +export interface IJsonEnumField extends IField { + ordinal: number; + typeName: string; + userCreated?: boolean; +} diff --git a/packages/ui/src/core/contracts/documents/xml.ts b/packages/ui/src/core/contracts/documents/xml.ts new file mode 100644 index 000000000..2fe50a433 --- /dev/null +++ b/packages/ui/src/core/contracts/documents/xml.ts @@ -0,0 +1,131 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { IDataSource, IDocument, IField } from '../common'; + +/** + * The XML inspection data model contracts between frontend and backend. + */ + +export const XML_MODEL_PACKAGE_PREFIX = 'io.atlasmap.xml.v2'; +export const XML_DATA_SOURCE_JSON_TYPE = + XML_MODEL_PACKAGE_PREFIX + '.XmlDataSource'; +export const XML_ENUM_FIELD_JSON_TYPE = + XML_MODEL_PACKAGE_PREFIX + '.XmlEnumField'; +export const XML_INSPECTION_REQUEST_JSON_TYPE = + XML_MODEL_PACKAGE_PREFIX + '.XmlInspectionRequest'; + +/** + * The root object that carries {@link IXmlInspectionResponse} + * when it's sent to backend. + */ +export interface IXmlInspectionResponseContainer { + XmlInspectionResponse: IXmlInspectionResponse; +} + +/** + * The serialized XML inspection response. + */ +export interface IXmlInspectionResponse { + xmlDocument: IXmlDocument; + errorMessage?: string; + executionTime?: number; +} + +/** + * The root object that carries {@link IXmlDocument} + * when it's inspected with maven plugin. + */ +export interface IXmlDocumentContainer { + XmlDocument: IXmlDocument; +} + +/** + * The serialized XML document in inspection result. + */ +export interface IXmlDocument extends IDocument { + xmlNamespaces?: IXmlNamespaces; +} + +/** + * The serialized XML DataSource. + * @see IXmlNamespaces + */ +export interface IXmlDataSource extends IDataSource { + template?: string; + xmlNamespaces?: IXmlNamespaces; +} + +/** + * The container of XML namespace. + */ +export interface IXmlNamespaces { + xmlNamespace: IXmlNamespace[]; +} + +/** + * The serialized XML namespace. + */ +export interface IXmlNamespace { + alias: string; + uri: string; + locationUri?: string; + targetNamespace: boolean; +} + +/** + * The serialized XML primitive field. + */ +export interface IXmlField extends IField { + userCreated?: boolean; + attribute?: boolean; +} + +/** + * The serialized XML complex field. + */ +export interface IXmlComplexType extends IField { + xmlEnumFields?: IXmlEnumFields; + xmlFields?: IXmlFields; + annotation?: boolean; + anonymous?: boolean; + enumeration: boolean; + uri?: string; +} + +/** + * The container of XML enum field. + */ +export interface IXmlEnumFields { + xmlEnumField: IXmlEnumField[]; +} + +/** + * The serialized XML enum field. + */ +export interface IXmlEnumField extends IField { + ordinal: number; + typeName: string; + attribute: boolean; + userCreated: boolean; +} + +/** + * The container of XML field. + */ +export interface IXmlFields { + xmlField: IXmlField[]; +} diff --git a/packages/ui/src/core/contracts/expression.ts b/packages/ui/src/core/contracts/expression.ts new file mode 100644 index 000000000..f141b4358 --- /dev/null +++ b/packages/ui/src/core/contracts/expression.ts @@ -0,0 +1,22 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +export interface IExpressionNode { + uuid: string; + str: string; + getUuid(): string; + toText(): string; +} diff --git a/packages/ui/src/core/contracts/field-action.ts b/packages/ui/src/core/contracts/field-action.ts new file mode 100644 index 000000000..31f1571bf --- /dev/null +++ b/packages/ui/src/core/contracts/field-action.ts @@ -0,0 +1,104 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { CollectionType, FieldType } from './common'; + +/** + * The field action Data model contracts between frontend and backend. + */ + +/** + * The root object that carries {@link IAActionDetails} + * when it's received from backend. + */ +export interface IActionDetailsContainer { + ActionDetails: IActionDetails; +} + +/** + * The container of serialized {@link IActionDetail}. + */ +export interface IActionDetails { + actionDetail: IActionDetail[]; +} + +/** + * The serialized field action detail. + */ +export interface IActionDetail { + parameters?: IActionParameters; + name: string; + custom: boolean; + className: string; + method: string; + sourceType: FieldType; + targetType: FieldType; + multiplicity: Multiplicity; + actionSchema: IActionSchema; +} + +/** + * The container of serialized field action parameter in old style. + */ +export interface IActionParameters { + actionParameter: IActionParameter[]; +} + +/** + * The serialized field action parameter in old style. + */ +export interface IActionParameter { + values: string[]; + name: string; + displayName: string; + description: string; + fieldType: FieldType; +} + +/** + * The multiplicity of the field action. + */ +export enum Multiplicity { + ONE_TO_ONE = 'ONE_TO_ONE', + ONE_TO_MANY = 'ONE_TO_MANY', + MANY_TO_ONE = 'MANY_TO_ONE', + ZERO_TO_ONE = 'ZERO_TO_ONE', + MANY_TO_MANY = 'MANY_TO_MANY', +} + +/** + * The newer style of field action metadata. + */ +export interface IActionSchema { + type: string; + id: string; + properties: IActionSchemaProperties; +} + +/** + * The newer style of field action parameter metadata. + */ +export interface IActionSchemaProperties { + [key: string]: { + type: string; + const: string; + description: string; + title: string; + enum?: string[]; + 'atlas-field-type'?: FieldType; + 'atlas-collection-type'?: CollectionType; + }; +} diff --git a/packages/ui/src/core/contracts/index.ts b/packages/ui/src/core/contracts/index.ts new file mode 100644 index 000000000..010f81f2e --- /dev/null +++ b/packages/ui/src/core/contracts/index.ts @@ -0,0 +1,22 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './adm-digest'; +export * from './common'; +export * from './documents'; +export * from './expression'; +export * from './field-action'; +export * from './mapping'; +export * from './mapping-preview'; diff --git a/packages/ui/src/core/contracts/mapping-preview.ts b/packages/ui/src/core/contracts/mapping-preview.ts new file mode 100644 index 000000000..bf51d1301 --- /dev/null +++ b/packages/ui/src/core/contracts/mapping-preview.ts @@ -0,0 +1,82 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { IMapping } from './mapping'; +import { MODEL_PACKAGE_PREFIX } from './common'; + +/** + * The mapping Data model contracts between frontend and backend. + */ + +export const PROCESS_MAPPING_REQUEST_JSON_TYPE = + MODEL_PACKAGE_PREFIX + '.ProcessMappingRequest'; + +/** + * The root object that carries {@link IProcessMappingRequest} + * when it's sent to backend. + */ +export interface IProcessMappingRequestContainer { + ProcessMappingRequest: IProcessMappingRequest; +} + +/** + * The serialized process mapping request object. + */ +export interface IProcessMappingRequest { + jsonType: string; + mapping: IMapping; +} + +/** + * The root object that carries {@link IProcessMappingResponse} + * when it's received from backend. + */ +export interface IProcessMappingResponseContainer { + ProcessMappingResponse: IProcessMappingResponse; +} + +/** + * The serialized process mapping response object. + */ +export interface IProcessMappingResponse { + jsonType: string; + mapping: IMapping; + audits: IAudits; +} + +/** + * The container of serialized {@link IAudit}. + */ +export interface IAudits { + audit: IAudit[]; +} + +/** + * The serialized audit object which is logged during processing a mapping. + */ +export interface IAudit { + message?: string; + docId?: string; + docName?: string; + path?: string; + value?: string; + status: AuditStatus; +} + +export enum AuditStatus { + INFO = 'INFO', + WARN = 'WARN', + ERROR = 'ERROR', +} diff --git a/packages/ui/src/core/contracts/mapping.ts b/packages/ui/src/core/contracts/mapping.ts new file mode 100644 index 000000000..f687080b2 --- /dev/null +++ b/packages/ui/src/core/contracts/mapping.ts @@ -0,0 +1,274 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CollectionType, + DataSourceType, + FieldType, + IDataSource, + IField, + MODEL_PACKAGE_PREFIX, +} from './common'; + +/** + * The mapping Data model contracts between frontend and backend. + */ + +export const ATLAS_MAPPING_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.AtlasMapping'; +export const MAPPING_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.Mapping'; +export const COLLECTION_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.Collection'; +export const FIELD_GROUP_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.FieldGroup'; +export const PROPERTY_FIELD_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.PropertyField'; +export const CONSTANT_FIELD_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.ConstantField'; + +/** + * The root object that carries {@link IAtlasMapping} + * when it's sent/received to/from backend. + */ +export interface IAtlasMappingContainer { + AtlasMapping: IAtlasMapping; +} + +/** + * The serialized AtlasMap mapping definition. + */ +export interface IAtlasMapping { + dataSource?: IDataSource[]; + mappings?: IMappings; + lookupTables?: ILookupTables; + constants?: IConstants; + properties?: IProperties; + name?: string; + jsonType: string; +} + +/** + * The container of serialized {@link IBaseMapping} held by {@link IAtlasMapping} + */ +export interface IMappings { + mapping: IBaseMapping[]; +} + +/** + * The base interface of serialized mapping entry held by {@link IMappings}. + * @see IMapping + * @see ICollection + */ +export interface IBaseMapping { + alias?: string; + description?: string; + mappingType?: MappingType; + jsonType: string; +} + +/** + * The serialized mapping entry held by {@link IMappings}. + * @see IBaseMapping + */ +export interface IMapping extends IBaseMapping { + expression?: string; + inputFieldGroup?: IFieldGroup; + inputField?: IField[]; + outputField: IField[]; + id: string; + delimiter?: string; + delimiterString?: string; + lookupTableName?: string; + strategy?: string; + strategyClassName?: string; +} + +/** + * The serialized collection mapping entry held by {@link IMappings}. + * @see IBaseMapping + * This is no longer used ATM, but the one-to-many/many-to-one for each COMPLEX collection + * might want to resurrect it - https://github.com/atlasmap/atlasmap/issues/1236 + */ +export interface ICollection extends IBaseMapping { + mappings: IMappings; + collectionSize: number; + collectionType: CollectionType; +} + +/** + * The mapping mode, such as {@link LOOKUP}, {@link COLLECTION}, etc. + * @deprecated {@link COMBINE}, {@link MAP}, {@link SEPARATE} + */ +export enum MappingType { + ALL = 'ALL', + COLLECTION = 'COLLECTION', + COMBINE = 'COMBINE', + LOOKUP = 'LOOKUP', + MAP = 'MAP', + SEPARATE = 'SEPARATE', + NONE = 'NONE', +} + +/** + * The group of fields in the mapping. + */ +export interface IFieldGroup extends IField { + field?: IField[]; +} + +/** + * The container of serialized {@link ILookupTable}. + */ +export interface ILookupTables { + lookupTable?: ILookupTable[]; +} + +/** + * The container of serialized LookupTable. + * @see ILookupEntry + */ +export interface ILookupTable { + lookupEntry: ILookupEntry[]; + name: string; + description?: string; +} + +/** + * The serialized lookup table entry. + * @see {@link ILookupTable} + */ +export interface ILookupEntry { + sourceValue: string; + sourceType: FieldType; + targetValue: string; + targetType: FieldType; +} + +/** + * The container of serialized Constant. + * @see IConstant + */ +export interface IConstants { + constant?: IConstant[]; +} + +/** + * The serialized Constant. + */ +export interface IConstant { + name: string; + value: string; + fieldType: FieldType; +} + +/** + * The container of serialized Property. + */ +export interface IProperties { + property?: IProperty[]; +} + +/** + * The serialized Property. + */ +export interface IProperty { + name: string; + value?: string; + fieldType: FieldType; + scope?: string; + dataSourceType?: DataSourceType; +} + +/** + * The serialized JSON DataSource. + * @see IDataSource + */ +export interface IJsonDataSource extends IDataSource { + template?: string; +} + +/** + * The serialized property field in the mapping. + */ +export interface IPropertyField extends IField { + scope?: string; +} + +/** + * The root object that carries {@link IValidation} + * when it's received from backend as a result of + * mapping validation. + */ +export interface IValidationsContainer { + Validations: IValidations; +} + +/** + * THe container of serialized validation result. + */ +export interface IValidations { + validation: IValidation[]; +} + +/** + * The validation result. + */ +export interface IValidation { + message?: string; + id?: string; + docId?: string; + docName?: string; + scope?: ValidationScope; + status?: ValidationStatus; +} + +/** + * The validation scope. + */ +export enum ValidationScope { + DATA_SOURCE = 'DATA_SOURCE', + MAPPING = 'MAPPING', + LOOKUP_TABLE = 'LOOKUP_TABLE', + CONSTANT = 'CONSTANT', + PROPERTY = 'PROPERTY', +} + +/** + * The validation status. + */ +export enum ValidationStatus { + INFO = 'INFO', + WARN = 'WARN', + ERROR = 'ERROR', +} + +/** + * The root object that carries {@link IStringMap} + * when it's received from backend. + */ +export interface IStringMapContainer { + StringMap: IStringMap; +} + +/** + * The serialized string map, used for deliverying + * a list of mapping name. + */ +export interface IStringMap { + stringMapEntry: IStringMapEntry[]; +} + +/** + * The string map entry with name and value. + */ +export interface IStringMapEntry { + name: string; + value: string; +} diff --git a/packages/ui/src/core/index.ts b/packages/ui/src/core/index.ts new file mode 100644 index 000000000..e6db8a389 --- /dev/null +++ b/packages/ui/src/core/index.ts @@ -0,0 +1,20 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './common'; +export * from './contracts'; +export * from './models'; +export * from './services'; +export * from './utils'; diff --git a/packages/ui/src/core/models/config.model.spec.ts b/packages/ui/src/core/models/config.model.spec.ts new file mode 100644 index 000000000..350495936 --- /dev/null +++ b/packages/ui/src/core/models/config.model.spec.ts @@ -0,0 +1,28 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { ConfigModel } from '../models/config.model'; + +describe('ConfigModel', () => { + test('initialize', () => { + const cfg = ConfigModel.getConfig(); + expect(cfg.sourcePropertyDoc); + expect(cfg.sourcePropertyDoc.getName(true) === 'Properties'); + expect(cfg.targetPropertyDoc); + expect(cfg.targetPropertyDoc.getName(true) === 'Properties'); + expect(cfg.constantDoc.getName(true) === 'Constants'); + }); +}); diff --git a/packages/ui/src/core/models/config.model.ts b/packages/ui/src/core/models/config.model.ts new file mode 100644 index 000000000..fa42ec89d --- /dev/null +++ b/packages/ui/src/core/models/config.model.ts @@ -0,0 +1,292 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CollectionType, + DocumentType, + InspectionType, +} from '../contracts/common'; +import { DocumentDefaultName } from '../common/config.types'; +import { DocumentDefinition } from './document-definition.model'; +import { DocumentManagementService } from '../services/document-management.service'; +import { ErrorHandlerService } from '../services/error-handler.service'; +import { FieldActionService } from '../services/field-action.service'; +import { FileManagementService } from '../services/file-management.service'; +import { InitializationService } from '../services/initialization.service'; +import { Logger } from 'loglevel'; +import { MappingDefinition } from './mapping-definition.model'; +import { MappingExpressionService } from '../services/mapping-expression.service'; +import { MappingManagementService } from '../services/mapping-management.service'; +import { MappingPreviewService } from '../services/mapping-preview.service'; + +export class DataMapperInitializationModel { + dataMapperVersion = '0.9.2017.07.28'; + initialized = false; + loadingStatus = 'Loading.'; + admHttpTimeout = 30000; // 30 seconds + initializationErrorOccurred = false; + + baseJavaInspectionServiceUrl?: string; + baseXMLInspectionServiceUrl?: string; + baseJSONInspectionServiceUrl?: string; + baseCSVInspectionServiceUrl?: string; + baseMappingServiceUrl?: string; + + xsrfHeaderName?: string; + xsrfCookieName?: string; + xsrfDefaultTokenValue?: string; + + /* class path fetching configuration */ + classPathFetchTimeoutInMilliseconds = 30000; + // if classPath is specified, maven call to resolve pom will be skipped + pomPayload?: string; + + classPath?: string; + + /* inspection service filtering flags */ + fieldNameExclusions: string[] = []; + classNameExclusions: string[] = []; + disablePrivateOnlyFields = false; + disableProtectedOnlyFields = false; + disablePublicOnlyFields = false; + disablePublicGetterSetterFields = false; + + disableMappingPreviewMode = false; + + /* enable the navigation bar and import/export */ + disableNavbar = true; + + mappingInitialized = false; +} + +export class DocumentInitializationModel { + id: string; + type: DocumentType; + name: string; + description: string; + isSource: boolean; + showFields = true; + inspectionType: InspectionType; + inspectionSource: string; + inspectionParameters: { [key: string]: string }; + inspectionResult: string; + selectedRoot: string; + collectionType?: CollectionType; + collectionClassName?: string; +} + +/** + * The central store of the AtlasMap UI core library. It is expected to be initialized through + * {@link InitializationService}. + */ +export class ConfigModel { + private static cfg: ConfigModel = new ConfigModel(); + + initCfg: DataMapperInitializationModel = new DataMapperInitializationModel(); + + /* current ui state config */ + showMappingDetailTray = false; + showMappingTable = false; + showNamespaceTable = false; + showLinesAlways = true; + showTypes = false; + showMappedFields = true; + showUnmappedFields = true; + _showMappingPreview = false; + currentDraggedField: any = null; + + documentService: DocumentManagementService; + mappingService: MappingManagementService; + errorService: ErrorHandlerService; + initializationService: InitializationService; + fieldActionService: FieldActionService; + fileService: FileManagementService; + previewService: MappingPreviewService; + expressionService: MappingExpressionService; + + sourceDocs: DocumentDefinition[] = []; + targetDocs: DocumentDefinition[] = []; + sourcePropertyDoc: DocumentDefinition = new DocumentDefinition(); + targetPropertyDoc: DocumentDefinition = new DocumentDefinition(); + constantDoc: DocumentDefinition = new DocumentDefinition(); + mappingFiles: string[] = []; + mappingDefinitionId = 0; + mappings: MappingDefinition | null = null; + + preloadedMappingJson: string | null = null; + preloadedFieldActionMetadata: any; + logger?: Logger; + + constructor() { + this.setConstantPropertyDocs(); + } + + static getConfig(): ConfigModel { + return ConfigModel.cfg; + } + + static setConfig(cfg: ConfigModel): void { + ConfigModel.cfg = cfg; + } + + initializePropertyDoc(propertyDoc: DocumentDefinition, isSource: boolean) { + propertyDoc.clearFields(); + propertyDoc.type = DocumentType.PROPERTY; + propertyDoc.name = DocumentDefaultName.PROPERTIES; + propertyDoc.id = + 'DOC.' + + propertyDoc.name + + '.' + + Math.floor(Math.random() * 1000000 + 1).toString(); + propertyDoc.isSource = isSource; + propertyDoc.showFields = false; + propertyDoc.isPropertyOrConstant = true; + } + + setConstantPropertyDocs(): void { + this.initializePropertyDoc(this.sourcePropertyDoc, true); + this.initializePropertyDoc(this.targetPropertyDoc, false); + this.constantDoc.clearFields(); + this.constantDoc.type = DocumentType.CONSTANT; + this.constantDoc.name = DocumentDefaultName.CONSTANTS; + this.constantDoc.id = + 'DOC.' + + this.constantDoc.name + + '.' + + Math.floor(Math.random() * 1000000 + 1).toString(); + this.constantDoc.isSource = true; + this.constantDoc.showFields = false; + this.constantDoc.isPropertyOrConstant = true; + } + + set showMappingPreview(show: boolean) { + this._showMappingPreview = show; + } + + get showMappingPreview(): boolean { + return this._showMappingPreview; + } + + addDocument(docInitModel: DocumentInitializationModel): DocumentDefinition { + const docDef: DocumentDefinition = new DocumentDefinition(); + docDef.initModel = docInitModel; + docDef.id = docInitModel.id; + docDef.type = docInitModel.type; + docDef.name = docInitModel.name; + docDef.description = docInitModel.description; + docDef.isSource = docInitModel.isSource; + docDef.showFields = docInitModel.showFields; + docDef.inspectionType = docInitModel.inspectionType; + docDef.inspectionSource = docInitModel.inspectionSource; + docDef.inspectionResult = docInitModel.inspectionResult; + docDef.inspectionParameters = docInitModel.inspectionParameters; + docDef.selectedRoot = docInitModel.selectedRoot; + + if (docDef.type === DocumentType.XSD) { + docDef.uri = 'atlas:xml:' + docDef.id; + } else if (docDef.type === DocumentType.JAVA) { + docDef.uri = `atlas:java:${docDef.id}?className=${docDef.inspectionSource}`; + if ( + docInitModel.collectionType && + docInitModel.collectionType !== CollectionType.NONE + ) { + docDef.uri += '&collectionType=' + docInitModel.collectionType; + if (docInitModel.collectionClassName) { + docDef.uri += + '&collectionClassName=' + docInitModel.collectionClassName; + } + } + } else { + docDef.uri = 'atlas:' + docDef.type.toLowerCase() + ':' + docDef.id; + } + + if (docInitModel.isSource) { + this.sourceDocs.push(docDef); + } else { + this.targetDocs.push(docDef); + } + return docDef; + } + + addDocuments(docModels: DocumentInitializationModel[]): DocumentDefinition[] { + const docDefs: DocumentDefinition[] = []; + for (const docModel of docModels) { + docDefs.push(this.addDocument(docModel)); + } + return docDefs; + } + + getDocsWithoutPropertyDoc(isSource: boolean): DocumentDefinition[] { + return isSource ? [...this.sourceDocs] : [...this.targetDocs]; + } + + getDocs(isSource: boolean): DocumentDefinition[] { + const docs: DocumentDefinition[] = this.getDocsWithoutPropertyDoc(isSource); + return isSource + ? [this.sourcePropertyDoc, this.constantDoc].concat(docs) + : [this.targetPropertyDoc].concat(docs); + } + + /** + * Clear source/target/mapping documents from the model. Reset constant and property document definitions. + */ + clearDocs(): void { + this.sourceDocs = []; + this.targetDocs = []; + this.sourcePropertyDoc.clearFields(); + this.targetPropertyDoc.clearFields(); + this.constantDoc.clearFields(); + this.mappingFiles = []; + } + + hasJavaDocuments(): boolean { + for (const doc of this.getAllDocs()) { + if (doc.type === DocumentType.JAVA) { + return true; + } + } + return false; + } + + getDocForIdentifier( + documentId: string, + isSource: boolean + ): DocumentDefinition | null { + // TODO: check this non null operator + return this.getDocs(isSource).find((d) => d.id === documentId)!; + } + + getFirstXmlDoc(isSource: boolean): DocumentDefinition { + const docs: DocumentDefinition[] = this.getDocsWithoutPropertyDoc(isSource); + // TODO: check this non null operator + return docs.find((doc) => doc.type === DocumentType.XML)!; + } + + getAllDocs(): DocumentDefinition[] { + return [this.sourcePropertyDoc, this.constantDoc] + .concat(this.sourceDocs) + .concat(this.targetPropertyDoc) + .concat(this.targetDocs); + } + + documentsAreLoaded(): boolean { + for (const doc of this.getAllDocs()) { + if (!doc.initialized) { + return false; + } + } + return true; + } +} diff --git a/packages/ui/src/core/models/document-definition.model.spec.ts b/packages/ui/src/core/models/document-definition.model.spec.ts new file mode 100644 index 000000000..a22913221 --- /dev/null +++ b/packages/ui/src/core/models/document-definition.model.spec.ts @@ -0,0 +1,39 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { + DocumentDefinition, + NamespaceModel, +} from '../models/document-definition.model'; +import { DocumentType } from '../contracts/common'; + +describe('DocumentDefinitionModel', () => { + test('initialize NamespaceModel', () => { + const nsModel = new NamespaceModel(); + nsModel.uri = 'http://atlasmap.io/xml/test/testNamespace'; + nsModel.alias = 'ns1'; + expect(nsModel.getPrettyLabel()).toBe( + 'ns1 [http://atlasmap.io/xml/test/testNamespace]' + ); + }); + + test('initialize DocumentDefinition', () => { + const docDef = new DocumentDefinition(); + docDef.name = 'TestDoc'; + docDef.type = DocumentType.JAVA; + expect(docDef.getName(true)).toEqual('TestDoc (JAVA)'); + }); +}); diff --git a/packages/ui/src/core/models/document-definition.model.ts b/packages/ui/src/core/models/document-definition.model.ts new file mode 100644 index 000000000..d8e812d1e --- /dev/null +++ b/packages/ui/src/core/models/document-definition.model.ts @@ -0,0 +1,498 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + DocumentType, + FIELD_PATH_SEPARATOR, + FieldType, + InspectionType, +} from '../contracts/common'; + +import { CommonUtil } from '../utils/common-util'; +import { DocumentInitializationModel } from './config.model'; +import { Field } from './field.model'; +import { MappingDefinition } from './mapping-definition.model'; + +export class NamespaceModel { + private static unqualifiedNamespace: NamespaceModel; + + alias: string; + uri: string; + locationUri: string | undefined; + createdByUser = false; + isTarget = false; + + static getUnqualifiedNamespace(): NamespaceModel { + if (NamespaceModel.unqualifiedNamespace == null) { + const ns: NamespaceModel = new NamespaceModel(); + ns.alias = 'Unqualified'; + NamespaceModel.unqualifiedNamespace = ns; + } + return NamespaceModel.unqualifiedNamespace; + } + + getPrettyLabel(): string { + if (this === NamespaceModel.getUnqualifiedNamespace()) { + return this.alias; + } + return ( + (this.isTarget ? 'Target' : this.alias) + + ' [' + + (this.uri == null ? 'NO URI' : this.uri) + + ']' + ); + } + + copy(): NamespaceModel { + const copy: NamespaceModel = new NamespaceModel(); + Object.assign(copy, this); + return copy; + } + + copyFrom(that: NamespaceModel): void { + Object.assign(this, that); + } +} + +export class PaddingField extends Field { + constructor(private _isSource: boolean) { + super(); + this.name = ''; + this.classIdentifier = ''; + this.type = FieldType.NONE; + this.displayName = ''; + this.path = ''; + } + + isSource(): boolean { + return this._isSource; + } +} + +export class DocumentDefinition { + private static padField: Field; + + LEFT_BRACKET = '\x5b'; + RIGHT_BRACKET = '\x5d'; + + initModel: DocumentInitializationModel; + id: string; + _type: DocumentType; + name: string; + description: string | undefined; + uri: string; + inspectionType: InspectionType; + inspectionParameters: { [key: string]: string }; + inspectionSource: string; + inspectionResult: string; + isSource: boolean; + isPropertyOrConstant: boolean; + selectedRoot: string; + classPath: string; + initialized = false; + errorOccurred = false; + fields: Field[] = []; + allFields: Field[] = []; + terminalFields: Field[] = []; + complexFieldsByClassIdentifier: { [key: string]: Field } = {}; + enumFieldsByClassIdentifier: { [key: string]: Field } = {}; + fieldsByPath: { [key: string]: Field } = {}; + fieldPaths: string[] = []; + showFields = true; + visibleInCurrentDocumentSearch = true; + namespaces: NamespaceModel[] = []; + characterEncoding: string; + locale: string; + + set type(type: DocumentType) { + this._type = type; + this.isPropertyOrConstant = + type === DocumentType.CONSTANT || type === DocumentType.PROPERTY; + } + + get type(): DocumentType { + return this._type; + } + + getComplexField(classIdentifier: string): Field { + return this.complexFieldsByClassIdentifier[classIdentifier]; + } + + getEnumField(classIdentifier: string): Field { + return this.enumFieldsByClassIdentifier[classIdentifier]; + } + + getAllFields(): Field[] { + return [...this.allFields]; + } + + /** + * Return true if the specified field name already exists in the specified document definition, + * false otherwise. + * + * @param targetField + * @param targetFieldDocDefType + */ + fieldExists( + targetField: Field, + targetFieldDocDefType: DocumentType + ): boolean { + for (const field of this.getAllFields()) { + if ( + field.name === targetField.name && + field.docDef.type === targetFieldDocDefType + ) { + return true; + } + } + return false; + } + + isFieldsExist(fields: Field[]): boolean { + if (fields == null || fields.length === 0) { + return true; + } + const foundFields: Field[] = this.getFields(Field.getFieldPaths(fields)); + return foundFields != null && fields.length === foundFields.length; + } + + getFields(fieldPaths: string[]): Field[] { + const fields: Field[] = []; + for (const fieldPath of fieldPaths) { + const field = this.getField(fieldPath); + if (field != null) { + fields.push(field); + } + } + return fields; + } + + getName(showTypes: boolean): string { + let name = this.name; + if (showTypes && !this.isPropertyOrConstant) { + const type = this.type; + if (type) { + name += ' (' + type + ')'; + } + } + return name; + } + + getNamespaceForAlias(alias: string): NamespaceModel { + // TODO: check this non null operator + return this.namespaces.find((ns) => alias === ns.alias)!; + } + + getField(fieldPath: string): Field | null { + if (!fieldPath) { + return null; + } + let field: Field = this.fieldsByPath[fieldPath]; + // if we can't find the field we're looking for, find parent fields and populate their children + const pathSeparator: string = FIELD_PATH_SEPARATOR; + let originalPath: string = fieldPath; + // strip beginning path separator from path + if (originalPath != null && originalPath.indexOf(pathSeparator) === 0) { + originalPath = originalPath.substring(1); + } + if (field == null && originalPath.indexOf(pathSeparator) !== -1) { + let currentParentPath = ''; + while (originalPath.indexOf(pathSeparator) !== -1) { + const currentPathSection: string = originalPath.substr( + 0, + originalPath.indexOf(pathSeparator) + ); + currentParentPath += pathSeparator + currentPathSection; + const parentField: Field = this.fieldsByPath[currentParentPath]; + if (parentField == null) { + if (originalPath.indexOf(pathSeparator) !== -1) { + originalPath = originalPath.substr( + originalPath.indexOf(pathSeparator) + 1 + ); + continue; + } else { + break; + } + // https://github.com/atlasmap/atlasmap/issues/1128 + // throw new Error('Could not populate parent field with path \'' + // + currentParentPath + '\' (for: ' + fieldPath + ')'); + } + this.populateChildren(parentField); + if (originalPath.indexOf(pathSeparator) !== -1) { + originalPath = originalPath.substr( + originalPath.indexOf(pathSeparator) + 1 + ); + } + } + field = this.fieldsByPath[fieldPath]; + } + return field; + } + + getComplexFields(): Field[] { + return this.discoverAllComplexFields(this.fields); + } + + getTerminalFields(): Field[] { + return [...this.terminalFields]; + } + + initializeFromFields(): void { + if (this.type === DocumentType.JAVA) { + this.prepareComplexFields(); + } + + Field.alphabetizeFields(this.fields); + + for (const field of this.fields) { + this.populateFieldData(field); + this.allFields.push(field); + this.populateChildren(field); + } + + this.fieldPaths.sort(); + this.initialized = true; + } + + updateField(field: Field, oldPath: string | null): void { + Field.alphabetizeFields(this.fields); + if ( + oldPath != null && + oldPath.length > 0 && + this.fieldsByPath[oldPath] != null + ) { + delete this.fieldsByPath[oldPath]; + CommonUtil.removeItemFromArray(oldPath, this.fieldPaths); + } else { + CommonUtil.removeItemFromArray(field.path, this.fieldPaths); + } + this.populateFieldData(field); + this.fieldPaths.sort(); + } + + addField(field: Field): void { + if (!field.parentField || this.isPropertyOrConstant) { + this.fields.push(field); + Field.alphabetizeFields(this.fields); + } else { + this.populateChildren(field.parentField); + field.parentField.children.push(field); + Field.alphabetizeFields(field.parentField.children); + } + this.populateFieldData(field); + this.allFields.push(field); + this.fieldPaths.sort(); + } + + /** + * Return true if the passed field is terminal or children are detected, false otherwise. + * @param field - target field + */ + populateChildren(field: Field): boolean { + // populate complex fields + if (field.isTerminal() || field.children.length > 0) { + return true; + } + + let cachedField = this.getComplexField(field.classIdentifier); + if (cachedField == null) { + return false; + } + + // copy cached field contents + cachedField = cachedField.copy(); + for (let childField of cachedField.children) { + childField = childField.copy(); + childField.parentField = field; + this.rewriteFieldPath(childField); + this.populateFieldData(childField); + field.children.push(childField); + } + + if (field.children.length > 0) { + this.fieldPaths.sort(); + return true; + } else { + return false; + } + } + + private rewriteFieldPath(field: Field) { + const parent = field.parentField; + const pathSegments = field.path.split(FIELD_PATH_SEPARATOR); + field.path = parent.path + FIELD_PATH_SEPARATOR + pathSegments.slice(-1)[0]; + for (let child of field.children) { + this.rewriteFieldPath(child); + } + } + + /** + * Clear all fields in this document. + */ + clearFields(): void { + this.initialized = false; + this.fields = []; + this.allFields = []; + this.terminalFields = []; + this.fieldPaths = []; + this.namespaces = []; + this.fieldsByPath = {}; + this.complexFieldsByClassIdentifier = {}; + this.enumFieldsByClassIdentifier = {}; + } + + getFieldIndex(field: Field, fields: Field[]): number { + for (let i = 0; i < fields.length; i++) { + if (fields[i].path === field.path) { + return i; + } + } + return -1; + } + + /** + * Remove the specified field from this document definition. + * + * @param field + */ + removeField(field: Field): void { + if (field == null) { + return; + } + let targetIndex = this.getFieldIndex(field, this.fields); + if (targetIndex > -1) { + this.fields.splice(targetIndex, 1); + } + targetIndex = this.getFieldIndex(field, this.allFields); + if (targetIndex > -1) { + this.allFields.splice(targetIndex, 1); + } + targetIndex = this.getFieldIndex(field, this.terminalFields); + if (targetIndex > -1) { + this.terminalFields.splice(targetIndex, 1); + } + let oldFieldPath = field.path; + CommonUtil.removeItemFromArray(oldFieldPath, this.fieldPaths); + delete this.fieldsByPath[oldFieldPath]; + if (field.parentField != null) { + CommonUtil.removeItemFromArray(field, field.parentField.children); + } + } + + updateFromMappings(mappingDefinition: MappingDefinition): void { + if (mappingDefinition === null) { + return; + } + + for (const field of this.allFields) { + field.partOfMapping = false; + field.hasUnmappedChildren = false; + field.partOfTransformation = false; + } + + // FIXME: some of this work is happening N times for N source/target docs, should only happen once. + for (const mapping of mappingDefinition.getAllMappings(true)) { + for (const field of mapping.getAllFields()) { + let parentField = field; + // TODO: check this non null operator + const partOfTransformation = + mapping.getMappedFieldForField(field)!.actions.length > 0; + while (parentField != null) { + parentField.partOfMapping = true; + parentField.partOfTransformation = + parentField.partOfTransformation || partOfTransformation; + parentField = parentField.parentField; + } + } + } + for (const field of this.allFields) { + field.hasUnmappedChildren = Field.fieldHasUnmappedChild(field); + } + } + + private populateFieldData(field: Field): void { + field.docDef = this; + let newFieldKey = field.path; + this.fieldPaths.push(newFieldKey); + this.fieldsByPath[newFieldKey] = field; + + if (field.enumeration) { + this.enumFieldsByClassIdentifier[field.classIdentifier] = field; + } + if (field.isTerminal()) { + this.terminalFields.push(field); + } else { + for (const childField of field.children) { + this.populateFieldData(childField); + this.allFields.push(childField); + } + } + } + + private prepareComplexFields(): void { + const fields: Field[] = this.fields; + + // build complex field cache + this.discoverComplexFields(fields); + + for (const key in this.complexFieldsByClassIdentifier) { + if (!this.complexFieldsByClassIdentifier.hasOwnProperty(key)) { + continue; + } + const cachedField: Field = this.complexFieldsByClassIdentifier[key]; + // remove children more than one level deep in cached fields + for (const childField of cachedField.children) { + childField.children = []; + } + // alphabetize complex field's childrein + Field.alphabetizeFields(cachedField.children); + } + } + + private discoverAllComplexFields(fields: Field[]): Field[] { + let complexFields: Field[] = []; + + for (const field of fields) { + if ( + field.type === 'COMPLEX' && + (field.documentField.status === 'SUPPORTED' || + field.documentField.status === 'CACHED') + ) { + complexFields.push(field.copy()); + } + if (field.children) { + complexFields = complexFields.concat( + this.discoverAllComplexFields(field.children) + ); + } + } + return complexFields; + } + + private discoverComplexFields(fields: Field[]): void { + for (const field of fields) { + if (field.type !== 'COMPLEX') { + continue; + } + if (field.documentField.status === 'SUPPORTED') { + this.complexFieldsByClassIdentifier[field.classIdentifier] = + field.copy(); + } + if (field.children) { + this.discoverComplexFields(field.children); + } + } + } +} diff --git a/packages/ui/src/core/models/error.model.spec.ts b/packages/ui/src/core/models/error.model.spec.ts new file mode 100644 index 000000000..6d57c85c8 --- /dev/null +++ b/packages/ui/src/core/models/error.model.spec.ts @@ -0,0 +1,31 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { ErrorInfo, ErrorLevel } from '../models/error.model'; + +describe('ErrorModel', () => { + it('initialize', () => { + const ei: ErrorInfo = new ErrorInfo({ + message: 'test error message', + level: ErrorLevel.ERROR, + object: null, + }); + expect(ei.object).toBeNull(); + expect(+ei.identifier).toBeGreaterThanOrEqual(0); + expect(ei.level).toBe(ErrorLevel.ERROR); + expect(ei.message).toBe('test error message'); + }); +}); diff --git a/packages/ui/src/core/models/error.model.ts b/packages/ui/src/core/models/error.model.ts new file mode 100644 index 000000000..9a2a2a7e0 --- /dev/null +++ b/packages/ui/src/core/models/error.model.ts @@ -0,0 +1,66 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { MappedField, MappingModel } from './mapping.model'; + +export enum ErrorLevel { + DEBUG = 'DEBUG', + INFO = 'INFO', + WARN = 'WARN', + ERROR = 'ERROR', +} + +export enum ErrorScope { + APPLICATION = 'APPLICATION', + DATA_SOURCE = 'DATA_SOURCE', + LOOKUP_TABLE = 'LOOKUP_TABLE', + MAPPING = 'MAPPING', + FIELD = 'FIELD', + FORM = 'FORM', + CONSTANT = 'CONSTANT', + PROPERTY = 'PROPERTY', +} + +export enum ErrorType { + INTERNAL = 'INTERNAL', + USER = 'USER', + VALIDATION = 'VALIDATION', + PREVIEW = 'PREVIEW', + FORM = 'FORM', +} + +export class ErrorInfo { + private static errorIdentifierCounter = 0; + private _identifier: string; + + message: string; + level: ErrorLevel; + scope: ErrorScope; + type: ErrorType; + mapping: MappingModel; + field: MappedField; + object: any; + + constructor(init: Partial) { + this._identifier = ErrorInfo.errorIdentifierCounter.toString(); + ErrorInfo.errorIdentifierCounter++; + Object.assign(this, init); + } + + get identifier() { + return this._identifier; + } +} diff --git a/packages/ui/src/core/models/examples.ts b/packages/ui/src/core/models/examples.ts new file mode 100644 index 000000000..4e12beccc --- /dev/null +++ b/packages/ui/src/core/models/examples.ts @@ -0,0 +1,49 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +export class Examples { + static pom = ` + + + 4.0.0 + foo.bar + test.model + 1.10.0 + jar + Test :: Model + + + + com.fasterxml.jackson.core + jackson-annotations + 2.8.5 + + + com.fasterxml.jackson.core + jackson-databind + 2.8.5 + + + com.fasterxml.jackson.core + jackson-core + 2.8.5 + + + + `; +} diff --git a/packages/ui/src/core/models/expression.model.ts b/packages/ui/src/core/models/expression.model.ts new file mode 100644 index 000000000..ba093eee0 --- /dev/null +++ b/packages/ui/src/core/models/expression.model.ts @@ -0,0 +1,754 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from './error.model'; +import { MappedField, MappingModel } from './mapping.model'; + +import { ConfigModel } from './config.model'; +import { IExpressionNode } from '../contracts/expression'; +import { Subject } from 'rxjs'; + +export class ExpressionUpdatedEvent { + constructor(public node?: ExpressionNode, public offset?: number) {} +} + +export abstract class ExpressionNode implements IExpressionNode { + protected static sequence = 0; + public readonly uuid: string; + public readonly str: string; + + constructor(prefix: string) { + this.uuid = prefix + ExpressionNode.sequence++; + } + + getUuid() { + return this.uuid; + } + + abstract toText(): string; + abstract toHTML(): string; +} + +export class TextNode extends ExpressionNode { + static readonly PREFIX = 'expression-text-'; + + constructor(public str: string) { + super(TextNode.PREFIX); + } + + toText(): string { + return this.str; + } + + toHTML(): string { + return `${this.str.replace(/ /g, ' ')}`; + } +} + +export class FieldNode extends ExpressionNode { + static readonly PREFIX = 'expression-field-'; + + constructor( + private mapping: MappingModel, + public mappedField?: MappedField | null, + public metaStr?: string, + index: number = 0, + public collectionContextPath?: string + ) { + super(FieldNode.PREFIX); + if (!mappedField) { + if (metaStr) { + const fieldParts = metaStr.split(':'); + + // Relative paths will not have the full field path in the meta data. + if (fieldParts.length === 1) { + if (collectionContextPath) { + this.mappedField = mapping.getMappedFieldByPath( + collectionContextPath + fieldParts[0], + true + )!; + } else { + this.mappedField = mapping.getMappedFieldByPath( + fieldParts[0], + true + )!; + } + } else { + this.mappedField = mapping.getMappedFieldByPath( + fieldParts[1], + true, + fieldParts[0] + )!; + } + if (!this.mappedField) { + this.mappedField = mapping.getReferenceField( + fieldParts[0], + fieldParts[1] + ); + } + } else { + this.mappedField = mapping.getMappedFieldForIndex( + (index + 1)?.toString(), + true + )!; + } + mappedField = this.mappedField; + } + } + + toText(): string { + if (!this.mappedField || !this.mappedField.field) { + return ''; + } + if (this.mappedField.field.enumeration) { + // Convert enumeration field/index pairs into a string literal. + const enumIdxVal = this.mappedField.field.enumIndexValue + ? this.mappedField.field.enumIndexValue + : 0; + return '"' + this.mappedField.field.enumValues[enumIdxVal].name + '"'; + } else { + let textStr = '${'; + + // If the mapped field's parent is a complex reference field then only use the leaf. + if ( + this.mappedField.field.parentField && + this.mappedField.field.parentField === + this.mapping.referenceFields[0]?.field + ) { + textStr += '/' + this.mappedField.field.name + '}'; + } else { + textStr += + this.mappedField.field.docDef.id + + ':' + + this.mappedField.field.path + + '}'; + } + return textStr; + } + } + + toHTML(): string { + if (this.mappedField && this.mappedField.field) { + let titleAddendum = ''; + let mappedFieldName = this.mappedField.field.name; + if (this.mappedField.field.enumeration) { + const enumIdxVal = this.mappedField.field.enumIndexValue + ? this.mappedField.field.enumIndexValue + : 0; + mappedFieldName += + '.' + this.mappedField.field.enumValues[enumIdxVal].name; + titleAddendum = ': Click to select an enumeration value.'; + } + return `${mappedFieldName}`; + } else { + // TODO: check this non null operator + return `N/A`; + } + } + + hasComplexField(): boolean { + return ( + this.mappedField?.field?.documentField.fieldType === 'COMPLEX' && + (this.mappedField?.field?.documentField.status === 'SUPPORTED' || + this.mappedField?.field?.documentField.status === 'CACHED') + ); + } +} + +export class ExpressionModel { + expressionHTML = ''; + expressionUpdatedSource = new Subject(); + expressionUpdated$ = this.expressionUpdatedSource.asObservable(); + + private _hasComplexField: boolean; + private _nodes: ExpressionNode[] = []; + private textCache = ''; + + constructor(private mapping: MappingModel, private cfg: ConfigModel) {} + + generateInitialExpression() { + this.mapping + .getUserMappedFields(true) + .forEach((f) => this.appendFieldNode(f)); + } + + get hasComplexField(): boolean { + return this._hasComplexField; + } + + set hasComplexField(value: boolean) { + this._hasComplexField = value; + } + + get nodes(): ReadonlyArray { + return this._nodes; + } + + getLastNodeIndex() { + return this._nodes.length - 1; + } + + getLastNode() { + return this._nodes[this.getLastNodeIndex()]; + } + + getNode(nodeId?: string): any { + if (!nodeId) { + return this.getLastNode(); + } + return this._nodes.find((n) => n.getUuid() === nodeId); + } + + setConfigModel(cfg: ConfigModel) { + this.cfg = cfg; + } + + /** + * Clear all text from the specified TextNode offset range or from the '@' to + * the end of the text node if no node ID is specified. + * + * Return the new UUID position indicator string or null. + * + * @param nodeId + * @param startOffset + * @param endOffset + */ + clearText( + nodeId?: string, + startOffset?: number, + endOffset?: number + ): TextNode | null { + let targetNode: TextNode | null = null; + if (!nodeId) { + const lastNode = this.getLastNode(); + if (!(lastNode instanceof TextNode)) { + return null; + } + const keyPos = lastNode.str.indexOf('@'); + if (keyPos !== -1) { + targetNode = lastNode; + targetNode.str = targetNode.str.substring(0, keyPos); + } + } else { + const node = this._nodes.find((n) => n.getUuid() === nodeId); + if (!(node instanceof TextNode) || !endOffset) { + return null; + } + targetNode = node; + // TODO: check this non null operator + const cleanStr = targetNode.str.replace( + targetNode.str.substring(startOffset!, endOffset), + '' + ); + targetNode.str = cleanStr; + } + this.updateCache(); + this.expressionUpdatedSource.next(); + return targetNode; + } + + /** + * Insert text into expression at specified position. If nodeId is not specified, + * it will be added to the end of expression. It parses the string + * and insert a set of TextNode & FieldNode if it contains field reference like ${0}, + * otherwise just one TextNode. + * This emits ExpressionUpdatedEvent which contains the latest node and offset it + * worked on, so that the subscriber can determine where to put the caret in + * the expression input widget. If ExpressionUpdatedEvent is undefined, it means that + * it worked on the end of the expression. + * @param str string to insert + * @param nodeId target node to insert the string + * @param offset position offset in the target node to insert the string + */ + insertText(str: string, nodeId?: string, offset?: number) { + this.insertNodes(this.createNodesFromText(str), nodeId, offset); + } + + /** + * Insert an array of ExpressionNodes at the specified position. If insertPosition is + * not specified the nodes will be appended to the end of the expression. + * This emits an ExpressionUpdatedEvent which contains the latest node and offset it + * worked on, so that the subscriber can determine where to put the caret in + * the expression input widget. If ExpressionUpdatedEvent is undefined, it means that + * it worked on the end of the expression. + * + * @param newNodes an array of ExpressionNode to add + * @param insertPosition target node to insert the string + * @param offset position offset in the target node to insert the string + */ + insertNodes( + newNodes: ExpressionNode[], + insertPosition?: string, + offset?: number + ) { + // No position was specified - append to the end + if (!insertPosition) { + const last = this.getLastNode(); + if (!last) { + this._nodes.push(...newNodes); + } else if (last instanceof TextNode && newNodes[0] instanceof TextNode) { + (last as TextNode).str += (newNodes[0] as TextNode).str; + newNodes.splice(0, 1, last); + this._nodes.splice(this.getLastNodeIndex(), 1, ...newNodes); + } else if ( + last instanceof FieldNode && + newNodes[0] instanceof FieldNode + ) { + this._nodes.splice( + this.getLastNodeIndex(), + 0, + new TextNode(' + '), + ...newNodes + ); + } else { + this._nodes.push(...newNodes); + } + this.updateCache(); + this.expressionUpdatedSource.next(); + return; + } + + // Requires position handling + const updatedEvent = new ExpressionUpdatedEvent(); + const targetNode = this._nodes.find((n) => n.getUuid() === insertPosition); + // TODO: check this non null operator + const targetNodeIndex = this._nodes.indexOf(targetNode!); + + if (targetNode instanceof TextNode) { + if (offset === undefined || offset === null || offset < 0) { + offset = targetNode.str.length; + } + const pre = targetNode.str.substring(0, offset); + const post = targetNode.str.substring(offset); + if (pre.length > 0) { + if (newNodes[0] instanceof TextNode) { + targetNode.str = pre + (newNodes[0] as TextNode).str; + newNodes.splice(0, 1, targetNode); + } else { + targetNode.str = pre; + newNodes.splice(0, 0, targetNode); + } + } + if (post.length > 0) { + const lastNewNodeIndex = newNodes.length - 1; + if (newNodes[lastNewNodeIndex] instanceof TextNode) { + let mergedTextNode: TextNode; + if (pre.length > 0) { + mergedTextNode = newNodes[lastNewNodeIndex] as TextNode; + mergedTextNode.str += post; + } else { + mergedTextNode = targetNode; + mergedTextNode.str = + (newNodes[lastNewNodeIndex] as TextNode).str + post; + } + newNodes.splice(lastNewNodeIndex, 1, mergedTextNode); + } else { + if (pre.length > 0) { + newNodes.push(new TextNode(post)); + } else { + targetNode.str = post; + newNodes.push(targetNode); + } + } + } + this._nodes.splice(targetNodeIndex, 1, ...newNodes); + const lastAddedIndex = targetNodeIndex + newNodes.length - 1; + if ( + this._nodes[lastAddedIndex] instanceof FieldNode && + this.nodes[lastAddedIndex + 1] instanceof FieldNode + ) { + // insert a glue in between FieldNodes so that it won't break syntax and caret can go into + const space = new TextNode(' + '); + this._nodes.splice(lastAddedIndex + 1, 0, space); + updatedEvent.node = space; + updatedEvent.offset = 1; + } else if (this._nodes[lastAddedIndex] instanceof FieldNode) { + updatedEvent.node = this._nodes[lastAddedIndex + 1]; + updatedEvent.offset = 0; + } else { + updatedEvent.node = this._nodes[lastAddedIndex]; + updatedEvent.offset = + (this._nodes[lastAddedIndex] as TextNode).str.length - post.length; + } + this.updateCache(); + this.expressionUpdatedSource.next(updatedEvent); + return; + } + + // targetNode is a FieldNode - insert the text before it if offset is 0, otherwise after it + if (offset !== 0 && newNodes[0] instanceof FieldNode) { + // insert a glue in between FieldNodes so that it won't break syntax and caret can go into + newNodes.splice(0, 0, new TextNode(' + ')); + } + const nextNodeIndex = offset === 0 ? targetNodeIndex : targetNodeIndex + 1; + const nextNode = this._nodes[nextNodeIndex]; + if ( + nextNode instanceof TextNode && + newNodes[newNodes.length - 1] instanceof TextNode + ) { + updatedEvent.offset = ( + newNodes[newNodes.length - 1] as TextNode + ).str.length; + nextNode.str = + (newNodes[newNodes.length - 1] as TextNode).str + + (nextNode as TextNode).str; + newNodes.pop(); + this._nodes.splice(nextNodeIndex, 1, ...newNodes); + updatedEvent.node = nextNode; + } else if ( + nextNode instanceof FieldNode && + newNodes[newNodes.length - 1] instanceof FieldNode + ) { + // insert a glue in between FieldNodes so that it won't break syntax and caret can go into + const space = new TextNode(' + '); + this._nodes.splice(nextNodeIndex, 0, ...newNodes, space); + updatedEvent.node = space; + updatedEvent.offset = 1; + } else { + this._nodes.splice(nextNodeIndex, 0, ...newNodes); + if (nextNode instanceof TextNode) { + updatedEvent.node = nextNode; + updatedEvent.offset = 0; + } else { + updatedEvent.node = newNodes[newNodes.length - 1]; + updatedEvent.offset = ( + newNodes[newNodes.length - 1] as TextNode + ).str.length; + } + } + this.updateCache(); + this.expressionUpdatedSource.next(updatedEvent); + } + + removeToken(tokenPosition?: string, offset?: number, removeNext?: boolean) { + // No position was specified - remove from the end + if (!tokenPosition) { + const last = this.getLastNode(); + if (!last) { + return; + } + if (last instanceof FieldNode) { + const removed = this._nodes.pop() as FieldNode; + if ( + !this._nodes.find( + (n) => + n instanceof FieldNode && n.mappedField === removed.mappedField + ) + ) { + // TODO: check this non null operator + this.mapping.removeField(removed.mappedField!.field!); + this.cfg.mappingService.updateMappedField(this.mapping); + } + } else if (last instanceof TextNode) { + if (last.str.length > 0) { + last.str = last.str.substring(0, last.str.length - 1); + } + if (last.str.length === 0) { + this._nodes.pop(); + } + } + this.updateCache(); + this.expressionUpdatedSource.next(); + return; + } + + // Requires position handling + let updatedEvent: ExpressionUpdatedEvent | undefined = + new ExpressionUpdatedEvent(); + let targetNode = this._nodes.find((n) => n.getUuid() === tokenPosition); + // TODO: check this non null operator + let targetNodeIndex = this._nodes.indexOf(targetNode!); + if (removeNext) { + targetNodeIndex++; + targetNode = this._nodes[targetNodeIndex]; + } + if (!targetNode || offset === -1) { + if (targetNodeIndex < 1) { + return; + } + targetNode = this._nodes[--targetNodeIndex]; + offset = + targetNode instanceof TextNode + ? (targetNode as TextNode).str.length + : 1; + } + if (targetNode instanceof FieldNode) { + const removed = this._nodes.splice(targetNodeIndex, 1); + const targetFieldNode: FieldNode = removed[0] as FieldNode; + if ( + !this._nodes.find( + (n) => + n instanceof FieldNode && + n.mappedField === targetFieldNode.mappedField + ) + ) { + // TODO: check this non null operator + this.mapping.removeField(targetFieldNode.mappedField!.field!); + this.cfg.mappingService.updateMappedField(this.mapping); + } + if (this._nodes.length > targetNodeIndex) { + if ( + this._nodes[targetNodeIndex - 1] instanceof TextNode && + this._nodes[targetNodeIndex] instanceof TextNode + ) { + const newOffset = (this._nodes[targetNodeIndex - 1] as TextNode).str + .length; + (this._nodes[targetNodeIndex - 1] as TextNode).str += ( + this._nodes[targetNodeIndex] as TextNode + ).str; + this._nodes.splice(targetNodeIndex, 1); + updatedEvent.node = this._nodes[targetNodeIndex - 1]; + updatedEvent.offset = newOffset; + } else if ( + this._nodes[targetNodeIndex - 1] instanceof FieldNode && + this._nodes[targetNodeIndex] instanceof FieldNode + ) { + const glue = new TextNode(' + '); + this._nodes.splice(targetNodeIndex, 0, glue); + updatedEvent.node = glue; + updatedEvent.offset = 3; + } else if (this._nodes[targetNodeIndex - 1] instanceof TextNode) { + updatedEvent.node = this._nodes[targetNodeIndex - 1]; + updatedEvent.offset = ( + this._nodes[targetNodeIndex - 1] as TextNode + ).str.length; + } else if (this._nodes[targetNodeIndex] instanceof TextNode) { + updatedEvent.node = this._nodes[targetNodeIndex]; + updatedEvent.offset = 0; + } + } else { + // end of line + updatedEvent = undefined; + } + } else { + const targetString = (targetNode as TextNode).str; + + // Remove empty string text node. + if (targetString.length === 1) { + this._nodes.splice(targetNodeIndex, 1); + } else { + (targetNode as TextNode).str = + offset === 0 + ? targetString.substr(1) + : targetString.substring(0, offset) + + targetString.substring(offset! + 1); + updatedEvent.node = targetNode; + updatedEvent.offset = offset; + } + } + this.updateCache(); + this.expressionUpdatedSource.next(updatedEvent); + } + + /** + * Replace the content of the last text node with a substring terminating at the + * specified index. + * + * @param index + */ + clearToEnd(index: number): void { + const last = this.getLastNode(); + if (!(last instanceof TextNode)) { + return; + } + last.str = last.str.substring(0, index); + } + + /** + * Reflect mapped source fields to the field references in the expression. + * Selected source fields are inserted into or appended to the expression, + * and unselected source fields are removed from expression. + * + * @param mapping Corresponding MappingModel object + * @param insertPosition + * @param offset + */ + updateFieldReference( + mapping: MappingModel, + insertPosition?: string, + offset?: number + ) { + const mappedFields = mapping.getUserMappedFields(true); + const referenceFields = mapping.getReferenceMappedFields(); + let fieldNodes = this._nodes.filter( + (n) => n instanceof FieldNode + ) as FieldNode[]; + + // Remove non-reference fields from the expression if unmapped. + for (const node of fieldNodes) { + // TODO: check this non null operator + if ( + mappedFields.includes(node.mappedField!) || + referenceFields.includes(node.mappedField!) || + node.hasComplexField() + ) { + continue; + } + const index = this._nodes.indexOf(node); + this._nodes.splice(index, 1); + if ( + this._nodes.length > index && + this._nodes[index - 1] instanceof TextNode && + this._nodes[index] instanceof TextNode + ) { + (this._nodes[index - 1] as TextNode).str += ( + this._nodes[index] as TextNode + ).str; + this._nodes.splice(index, 1); + } + } + + // Add any non-reference mapped fields into the expression - append if no insert + // position is specified. + fieldNodes = this._nodes.filter( + (n) => n instanceof FieldNode + ) as FieldNode[]; + for (const mfield of mappedFields) { + if ( + !fieldNodes.find((n) => n.mappedField === mfield) && + !referenceFields.find((r) => r.field === mfield.field) + ) { + if (insertPosition) { + this.insertNodes( + [new FieldNode(this.mapping, mfield)], + insertPosition, + offset + ); + } else { + this.appendFieldNode(mfield); + } + } + } + this.updateCache(); + this.expressionUpdatedSource.next(); + } + + clear() { + this._nodes = []; + this.updateCache(); + this.expressionUpdatedSource.next(); + } + + toText() { + if (this.textCache.length === 0) { + this.updateCache(); + } + return this.textCache; + } + + toHTML() { + if (this.expressionHTML.length === 0) { + this.updateCache(); + } + return this.expressionHTML; + } + + addConditionalExpressionNode( + mappedField: MappedField, + nodeId: string, + offset: number + ): void { + this.insertNodes( + [new FieldNode(this.mapping, mappedField)], + nodeId, + offset + ); + } + + private updateCache() { + let answer = ''; + this._nodes.forEach((node) => (answer += node.toText())); + this.textCache = answer; + answer = ''; + this._nodes.forEach((node) => (answer += node.toHTML())); + this.expressionHTML = answer; // trigger expr box render + } + + /** + * Translate an expression string into an array of text nodes and field nodes. Handle + * relative paths for collection-based field references. + * + * @param text + */ + private createNodesFromText(text: string): ExpressionNode[] { + const answer = []; + let position = -1; + let collectionContextFieldNode = null; + + while (text.search(/\$\{[a-zA-Z0-9.:/<>[\]_-]+\}/) !== -1) { + position = text.search(/\$/); + if (position !== 0) { + answer.push(new TextNode(text.substring(0, position))); + } + const nodeMetaVal = text.substring(position + 2, text.indexOf('}')); + let fn = null; + if (isNaN(Number(nodeMetaVal))) { + fn = collectionContextFieldNode + ? new FieldNode( + this.mapping, + undefined, + nodeMetaVal, + undefined, + collectionContextFieldNode.mappedField?.field?.path! + ) + : new FieldNode(this.mapping, undefined, nodeMetaVal); + } else { + const index = parseInt(nodeMetaVal, 10); + fn = new FieldNode(this.mapping, undefined, undefined, index); + } + + if (!fn || !fn.mappedField) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `Unable to map expression element '${nodeMetaVal}' to a field node.`, + level: ErrorLevel.ERROR, + scope: ErrorScope.MAPPING, + type: ErrorType.INTERNAL, + mapping: this.mapping, + }) + ); + } else { + if (fn.mappedField?.field?.isCollection) { + collectionContextFieldNode = fn; + } + answer.push(fn); + } + text = text.substring(text.indexOf('}') + 1); + } + if (text.length > 0) { + answer.push(new TextNode(text)); + } + return answer; + } + + private appendFieldNode(mfield: MappedField) { + const lastNode = this._nodes.pop(); + if (lastNode instanceof FieldNode) { + this._nodes.push(lastNode, new TextNode(' + ')); + } else if (lastNode instanceof TextNode) { + if (lastNode.str.length === 0) { + this._nodes.push(new TextNode(' + ')); + } else { + this._nodes.push(lastNode); + } + } + this._nodes.push(new FieldNode(this.mapping, mfield)); + } +} diff --git a/packages/ui/src/core/models/field-action.model.spec.ts b/packages/ui/src/core/models/field-action.model.spec.ts new file mode 100644 index 000000000..19aded0d4 --- /dev/null +++ b/packages/ui/src/core/models/field-action.model.spec.ts @@ -0,0 +1,30 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + FieldAction, + FieldActionDefinition, +} from '../models/field-action.model'; + +describe('FieldActionModel', () => { + test('FieldAction.create()', () => { + const actionDefinition = new FieldActionDefinition(); + actionDefinition.name = 'dummy'; + const action = FieldAction.create(actionDefinition); + expect(action).toBeTruthy(); + expect(action.name).toEqual(actionDefinition.name); + expect(action.definition).toEqual(actionDefinition); + }); +}); diff --git a/packages/ui/src/core/models/field-action.model.ts b/packages/ui/src/core/models/field-action.model.ts new file mode 100644 index 000000000..6d030f5eb --- /dev/null +++ b/packages/ui/src/core/models/field-action.model.ts @@ -0,0 +1,107 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { FieldType } from '../contracts'; +import { Multiplicity } from '../contracts/field-action'; + +export class FieldActionArgument { + name: string; + type = FieldType.STRING; + values: string[] | null = null; + serviceObject: any = {}; +} + +export class FieldActionArgumentValue { + label: string; + name: string; + value: string; +} + +export class FieldActionDefinition { + name: string; + isCustom: boolean; + arguments: FieldActionArgument[] = []; + method: string; + sourceType = FieldType.NONE; + targetType = FieldType.NONE; + multiplicity = Multiplicity.ONE_TO_ONE; + serviceObject: any = {}; + + populateFieldAction(action: FieldAction): void { + action.name = this.name; + action.definition = this; + + // Use the parsed values if present, otherwise set to '0'. + if (action.argumentValues == null || action.argumentValues.length === 0) { + action.argumentValues = []; + for (const arg of this.arguments) { + // Default the input field to 0 for numerics + if ( + [ + 'LONG', + 'INTEGER', + 'FLOAT', + 'DOUBLE', + 'SHORT', + 'BYTE', + 'DECIMAL', + 'NUMBER', + ].indexOf(arg.type.toUpperCase()) !== -1 + ) { + action.setArgumentValue(arg.name!, '0'); // TODO: check this non null operator + } else { + action.setArgumentValue(arg.name!, ''); // TODO: check this non null operator + } + } + } + } + + getArgumentForName(name: string): FieldActionArgument { + // TODO: check this non null operator + return this.arguments.find((argument) => argument.name === name)!; + } +} + +export class FieldAction { + name: string; + definition: FieldActionDefinition | null; + argumentValues: FieldActionArgumentValue[] = []; + + static create(definition: FieldActionDefinition): FieldAction { + const instance = new FieldAction(); + instance.definition = definition; + instance.name = definition?.name; + return instance; + } + + getArgumentValue(argumentName: string): FieldActionArgumentValue { + for (const argValue of this.argumentValues) { + if (argValue.name === argumentName) { + return argValue; + } + } + const newArgValue: FieldActionArgumentValue = + new FieldActionArgumentValue(); + newArgValue.name = argumentName; + newArgValue.value = '0'; + this.argumentValues.push(newArgValue); + return newArgValue; + } + + setArgumentValue(argumentName: string, value: string): void { + this.getArgumentValue(argumentName).value = value; + } +} diff --git a/packages/ui/src/core/models/field.model.spec.ts b/packages/ui/src/core/models/field.model.spec.ts new file mode 100644 index 000000000..adf35ff47 --- /dev/null +++ b/packages/ui/src/core/models/field.model.spec.ts @@ -0,0 +1,24 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { Field } from '../models/field.model'; + +describe('Field', () => { + test('initialize', () => { + const f = new Field(); + expect(f.uuid); + }); +}); diff --git a/packages/ui/src/core/models/field.model.ts b/packages/ui/src/core/models/field.model.ts new file mode 100644 index 000000000..23e2ad70d --- /dev/null +++ b/packages/ui/src/core/models/field.model.ts @@ -0,0 +1,287 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + DocumentType, + FIELD_PATH_SEPARATOR, + FieldType, + IField, +} from '../contracts/common'; +import { DocumentDefinition } from './document-definition.model'; + +export class EnumValue { + name: string; + ordinal: number; +} + +export class Field { + private static uuidCounter = 0; + + name: string; + classIdentifier: string; + displayName: string; + path: string; + type: FieldType; + scope: string | undefined; + value: string; + column: number; + // The field properties read from document inspection result. + documentField: IField = { jsonType: '' }; + parentField: Field; + partOfMapping = false; + partOfTransformation = false; + visibleInCurrentDocumentSearch = true; + enumeration = false; + enumIndexValue: number; + enumValues: EnumValue[] = []; + children: Field[] = []; + fieldDepth = 0; + uuid: string; + collapsed = true; + hasUnmappedChildren = false; + isCollection = false; + isArray = false; + isAttribute = false; + isPrimitive = false; + userCreated = false; + docDef: DocumentDefinition; + namespaceAlias: string | null; + + static fieldHasUnmappedChild(field: Field): boolean { + if (field == null) { + return false; + } + if (field.isTerminal()) { + return field.partOfMapping === false; + } + for (const childField of field.children) { + if ( + childField.hasUnmappedChildren || + Field.fieldHasUnmappedChild(childField) + ) { + return true; + } + } + return false; + } + + static getFieldPaths(fields: Field[]): string[] { + const paths: string[] = []; + for (const field of fields) { + paths.push(field.path); + } + return paths; + } + + static getFieldNames(fields: Field[]): string[] { + const paths: string[] = []; + for (const field of fields) { + paths.push(field.name); + } + return paths; + } + + static getField(fieldPath: string, fields: Field[]): Field { + // TODO: check this non null operator + return fields.find((field) => fieldPath === field.path)!; + } + + static alphabetizeFields(fields: Field[]): void { + const fieldsByPath: { [key: string]: Field } = {}; + const fieldPaths: string[] = []; + for (const field of fields) { + let fieldKey = field.path; + // Discard duplicate field keys, field names are repeatable. + if (fieldsByPath[fieldKey] != null) { + continue; + } + fieldsByPath[fieldKey] = field; + fieldPaths.push(fieldKey); + } + fieldPaths.sort(); + fields.length = 0; + for (const path of fieldPaths) { + fields.push(fieldsByPath[path]); + } + + for (const field of fields) { + if (field.children && field.children.length) { + this.alphabetizeFields(field.children); + } + } + } + + constructor() { + this.uuid = Field.uuidCounter.toString(); + Field.uuidCounter++; + } + + /** + * Expand all fields above the current field. + */ + expandToRoot() { + let parent: Field = this; + while (parent != null) { + parent.collapsed = false; + if (parent.isPropertyOrConstant()) { + if (parent.docDef) { + parent.docDef.showFields = true; + } + } + parent = parent.parentField; + } + } + + getNameWithNamespace(): string { + if (!this.namespaceAlias) { + return this.name; + } + return this.namespaceAlias + ':' + this.name; + } + + isParentField(): boolean { + if (this.isCollection && !this.isPrimitive) { + return true; + } + return this.type === 'COMPLEX'; + } + + isStringField(): boolean { + return this.type === 'STRING'; + } + + isTerminal(): boolean { + if (this.enumeration) { + return true; + } + if (this.isCollection && !this.isPrimitive) { + return false; + } + return this.type !== 'COMPLEX'; + } + + copy(): Field { + const copy: Field = new Field(); + Object.assign(copy, this); + + // make these pointers to the same object, not copies + copy.documentField = this.documentField; + copy.parentField = this.parentField; + copy.docDef = this.docDef; + + copy.children = []; + for (const childField of this.children) { + copy.children.push(childField.copy()); + } + // console.log("Copied: " + this.name, { "src": this, "target": copy }); + return copy; + } + + copyFrom(that: Field): void { + Object.assign(this, that); + + // make these pointers to the same object, not copies + this.documentField = that.documentField; + this.parentField = that.parentField; + this.docDef = that.docDef; + + this.children = []; + for (const childField of that.children) { + this.children.push(childField.copy()); + } + } + + // @ts-ignore + getCollectionParentField(): Field { + let parent: Field = this; + while (parent != null) { + if (parent.isCollection) { + return parent; + } + parent = parent.parentField; + } + } + + isInCollection(): boolean { + return this.getCollectionParentField() != null; + } + + getCollectionCount(): number { + let count = 0; + let field: Field = this; + while (field != null) { + if (field.isCollection) { + count++; + } + field = field.parentField; + } + return count; + } + + isSource(): boolean { + return this.docDef != null && this.docDef.isSource; + } + + getCollectionType(): string | null { + return this.isCollection ? (this.isArray ? 'ARRAY' : 'LIST') : null; + } + + getFieldLabel(showTypes: boolean, includePath: boolean): string { + let fieldPath = ''; + if (includePath) { + fieldPath = this.path; + } else { + const pathComps = this.path.split(FIELD_PATH_SEPARATOR); + // Check for a leaf path attribute field starting with '@' + if ( + this.isAttribute && + pathComps.length > 0 && + pathComps[pathComps.length - 1].startsWith('@') + ) { + fieldPath = this.path.split('@')[1]; + } else { + fieldPath = this.getNameWithNamespace(); + } + } + if (showTypes && this.type && !this.isPropertyOrConstant()) { + fieldPath += ' (' + this.type + ')'; + } else if (this.isProperty() && this.value != null) { + fieldPath += ' = ' + this.value; + if (showTypes && this.type) { + fieldPath += ' (' + this.type + ')'; + } + } + if (!fieldPath && !this.parentField) { + fieldPath = '< Document Root >'; + } + return fieldPath; + } + + isPropertyOrConstant(): boolean { + return this.docDef == null ? false : this.docDef.isPropertyOrConstant; + } + + isProperty(): boolean { + return this.docDef == null + ? false + : this.docDef.type === DocumentType.PROPERTY; + } + + isConstant(): boolean { + return this.docDef == null + ? false + : this.docDef.type === DocumentType.CONSTANT; + } +} diff --git a/packages/ui/src/core/models/index.ts b/packages/ui/src/core/models/index.ts new file mode 100644 index 000000000..5fa465ce0 --- /dev/null +++ b/packages/ui/src/core/models/index.ts @@ -0,0 +1,27 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './config.model'; +export * from './document-definition.model'; +export * from './error.model'; +export * from './examples'; +export * from './expression.model'; +export * from './field-action.model'; +export * from './field.model'; +export * from './inspect'; +export * from './lookup-table.model'; +export * from './mapping-definition.model'; +export * from './mapping.model'; +export * from './transition.model'; diff --git a/packages/ui/src/core/models/inspect/csv-inspection.model.ts b/packages/ui/src/core/models/inspect/csv-inspection.model.ts new file mode 100644 index 000000000..bc247f26f --- /dev/null +++ b/packages/ui/src/core/models/inspect/csv-inspection.model.ts @@ -0,0 +1,128 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + DocumentInspectionModel, + DocumentInspectionRequestModel, + DocumentInspectionRequestOptions, +} from './document-inspection.model'; +import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; +import { FieldType, IDocument } from '../../contracts/common'; +import { + ICsvComplexType, + ICsvDocumentContainer, + ICsvField, + ICsvInspectionResponse, + ICsvInspectionResponseContainer, +} from '../../contracts/documents/csv'; + +import { CommonUtil } from '../../utils/common-util'; +import { Field } from '../field.model'; + +export class CsvInspectionModel extends DocumentInspectionModel { + request = new CsvInspectionRequestModel(this.cfg, this.doc); + + isOnlineInspectionCapable(): boolean { + if (this.cfg.initCfg.baseCSVInspectionServiceUrl == null) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `CSV inspection service is not configured. Document will not be loaded: ${this.doc.name}`, + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: this.doc, + }) + ); + return false; + } + return true; + } + + parseResponse(responseJson: any): void { + if (typeof responseJson.CsvInspectionResponse !== 'undefined') { + this.extractCSVDocumentDefinitionFromInspectionResponse( + (responseJson as ICsvInspectionResponseContainer).CsvInspectionResponse + ); + } else if (typeof responseJson.CsvDocument !== 'undefined') { + this.extractCSVDocumentDefinition( + (responseJson as ICsvDocumentContainer).CsvDocument + ); + } else { + throw new Error(`Unknown CSV inspection result format: ${responseJson}`); + } + } + + private extractCSVDocumentDefinitionFromInspectionResponse( + body: ICsvInspectionResponse + ): void { + if (body.errorMessage) { + this.doc.errorOccurred = true; + throw new Error( + `Could not load JSON document, error: ${body.errorMessage}` + ); + } + + this.extractCSVDocumentDefinition(body.csvDocument); + } + + private extractCSVDocumentDefinition(csvDocument: IDocument): void { + if (!this.doc.description) { + this.doc.description = this.doc.id; + } + if (!this.doc.name) { + this.doc.name = this.doc.id; + } + if (this.doc.inspectionParameters) { + this.doc.uri = CommonUtil.urlWithParameters( + this.doc.uri, + this.doc.inspectionParameters + ); + } + + for (const field of csvDocument.fields.field) { + this.parseCSVFieldFromDocument(field as ICsvField, null); + } + } + + private parseCSVFieldFromDocument( + field: ICsvField, + parentField: Field | null + ): void { + const parsedField = this.parseFieldFromDocument(field, parentField); + if (parsedField == null) { + return; + } + parsedField.column = field.column; + if (field.fieldType !== FieldType.COMPLEX) { + return; + } + const csvComplexType = field as ICsvComplexType; + if (csvComplexType.csvFields?.csvField?.length) { + for (const childField of csvComplexType.csvFields.csvField) { + this.parseCSVFieldFromDocument(childField, parsedField); + } + } + } +} + +export class CsvInspectionRequestModel extends DocumentInspectionRequestModel { + url = this.cfg.initCfg.baseCSVInspectionServiceUrl + 'inspect'; + options = new CsvInspectionRequestOptions(this.cfg, this.doc); +} + +export class CsvInspectionRequestOptions extends DocumentInspectionRequestOptions { + body = this.doc.inspectionSource; + searchParams: { [key: string]: string } = this.doc.inspectionParameters; +} diff --git a/packages/ui/src/core/models/inspect/cvs-inspection.model.spec.ts b/packages/ui/src/core/models/inspect/cvs-inspection.model.spec.ts new file mode 100644 index 000000000..d4fe15d1d --- /dev/null +++ b/packages/ui/src/core/models/inspect/cvs-inspection.model.spec.ts @@ -0,0 +1,52 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { ConfigModel, DocumentDefinition } from '..'; +import { CsvInspectionModel } from './csv-inspection.model'; + +describe('CsvInspectionModel', () => { + test('Duplicate document URI search parameters', () => { + const cfg = new ConfigModel(); + const doc = new DocumentDefinition(); + const cvs = new CsvInspectionModel(cfg, doc); + + expect(cvs.doc.uri).toBeUndefined(); + + const response = { + CsvDocument: { + fields: { + field: {}, + }, + }, + }; + + doc.uri = 'base:'; + doc.inspectionParameters = { + a: '1', + b: '2', + }; + cvs.parseResponse(response); + expect(cvs.doc.uri).toBe('base:?a=1&b=2'); + + doc.inspectionParameters = { + c: '3', + d: '4', + }; + + cvs.parseResponse(response); + expect(cvs.doc.uri).toBe('base:?c=3&d=4'); + }); +}); diff --git a/packages/ui/src/core/models/inspect/document-inspection.model.ts b/packages/ui/src/core/models/inspect/document-inspection.model.ts new file mode 100644 index 000000000..133c1a033 --- /dev/null +++ b/packages/ui/src/core/models/inspect/document-inspection.model.ts @@ -0,0 +1,99 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; + +import { ConfigModel } from '../config.model'; +import { DocumentDefinition } from '../document-definition.model'; +import { Field } from '../field.model'; +import { IField } from '../../contracts/common'; +import { Input } from 'ky/distribution/types/options'; +import { Options } from 'ky'; + +/** + * Encapsulates Document inspection context. + */ +export abstract class DocumentInspectionModel { + request: DocumentInspectionRequestModel; + + constructor(public cfg: ConfigModel, public doc: DocumentDefinition) {} + + /** + * Validates if the online inspection is available for this type of Document. + */ + abstract isOnlineInspectionCapable(): boolean; + + /** + * Parse inspection response returned from backend. + * + * @param responseJson + */ + abstract parseResponse(responseJson: any): void; + + protected parseFieldFromDocument( + field: IField, + parentField: Field | null + ): Field | null { + if (field != null && field.status === 'NOT_FOUND') { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `Ignoring unknown field: ${field.name} (${field.path}), document: ${this.doc.name}`, + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.USER, + }) + ); + return null; + } else if (field != null && field.status === 'EXCLUDED') { + return null; + } + + const parsedField: Field = new Field(); + parsedField.name = field.name!; + parsedField.type = field.fieldType!; + parsedField.path = field.path!; + parsedField.isPrimitive = field.fieldType !== 'COMPLEX'; + parsedField.documentField = field; + + if ('LIST' === field.collectionType || 'ARRAY' === field.collectionType) { + parsedField.isCollection = true; + if ('ARRAY' === field.collectionType) { + parsedField.isArray = true; + } + } + + if (parentField != null) { + parsedField.parentField = parentField; + parentField.children.push(parsedField); + } else { + this.doc.fields.push(parsedField); + } + + return parsedField; + } +} + +export abstract class DocumentInspectionRequestModel { + constructor(protected cfg: ConfigModel, protected doc: DocumentDefinition) {} + url: Input; + options: DocumentInspectionRequestOptions; +} + +export abstract class DocumentInspectionRequestOptions implements Options { + constructor(protected cfg: ConfigModel, protected doc: DocumentDefinition) {} + json: any; + headers: { [key: string]: string } = { 'Content-Type': 'application/json' }; + searchParams: { [key: string]: string } = {}; +} diff --git a/packages/ui/src/core/models/inspect/index.ts b/packages/ui/src/core/models/inspect/index.ts new file mode 100644 index 000000000..d65565ac8 --- /dev/null +++ b/packages/ui/src/core/models/inspect/index.ts @@ -0,0 +1,20 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './csv-inspection.model'; +export * from './document-inspection.model'; +export * from './java-inspection.model'; +export * from './json-inspection.model'; +export * from './xml-inspection.model'; diff --git a/packages/ui/src/core/models/inspect/java-inspection.model.ts b/packages/ui/src/core/models/inspect/java-inspection.model.ts new file mode 100644 index 000000000..afacca655 --- /dev/null +++ b/packages/ui/src/core/models/inspect/java-inspection.model.ts @@ -0,0 +1,194 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { CollectionType, FieldType } from '../../contracts/common'; +import { + DocumentInspectionModel, + DocumentInspectionRequestModel, + DocumentInspectionRequestOptions, +} from './document-inspection.model'; +import { EnumValue, Field } from '../field.model'; +import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; +import { + IClassInspectionRequestContainer, + IClassInspectionResponseContainer, + IJavaClass, + IJavaClassContainer, + IJavaField, + JAVA_INSPECTION_REQUEST_JSON_TYPE, +} from '../../contracts/documents/java'; + +import { ConfigModel } from '../config.model'; +import { DocumentDefinition } from '../document-definition.model'; + +/** + * Encapsulates Java class inspection context. + */ +export class JavaInspectionModel extends DocumentInspectionModel { + request = new JavaInspectionRequestModel(this.cfg, this.doc); + + isOnlineInspectionCapable(): boolean { + if (this.cfg.initCfg.baseJavaInspectionServiceUrl == null) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `Java inspection service is not configured. Document will not be loaded: ${this.doc.name}`, + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: this.doc, + }) + ); + return false; + } + return true; + } + + parseResponse(responseJson: any): void { + let javaClass: IJavaClass; + if (responseJson.ClassInspectionResponse) { + if (responseJson.errorMessage) { + this.doc.errorOccurred = true; + throw new Error( + `Could not load JSON document, error: ${responseJson.errorMessage}` + ); + } + javaClass = (responseJson as IClassInspectionResponseContainer) + .ClassInspectionResponse.javaClass; + } else { + javaClass = (responseJson as IJavaClassContainer).JavaClass; + } + const docIdentifier: string = this.doc.id; + if (!javaClass || javaClass.status === 'NOT_FOUND') { + this.doc.errorOccurred = true; + throw new Error( + `Could not load JAVA document. Document is not found: ${docIdentifier}` + ); + } + + if (!this.doc.description) { + this.doc.description = javaClass.className; + } + if (!this.doc.name) { + this.doc.name = javaClass.className!; + // Make doc name the class name rather than fully qualified name + if (this.doc.name && this.doc.name.indexOf('.') !== -1) { + this.doc.name = this.doc.name.substr( + this.doc.name.lastIndexOf('.') + 1 + ); + } + } + if (javaClass.uri && (!this.doc.uri || this.doc.uri.length === 0)) { + this.doc.uri = javaClass.uri; + } + + let rootField = null; + if ( + javaClass.collectionType && + javaClass.collectionType !== CollectionType.NONE.valueOf() + ) { + this.parseJavaFieldFromDocument(javaClass, null); + rootField = this.doc.fields[0]; + } + for (const field of javaClass.javaFields.javaField) { + this.parseJavaFieldFromDocument(field, rootField); + } + } + + private parseJavaFieldFromDocument( + field: IJavaField, + parentField: Field | null + ): void { + const parsedField = this.parseFieldFromDocument(field, parentField); + if (parsedField == null) { + return; + } + + if (field.className) { + parsedField.classIdentifier = field.className; + } + + if (field.fieldType !== FieldType.COMPLEX) { + return; + } + + const javaClass = field as IJavaClass; + parsedField.enumeration = javaClass.enumeration; + if (javaClass.enumeration && javaClass.javaEnumFields?.javaEnumField) { + for (const enumValue of javaClass.javaEnumFields.javaEnumField) { + const parsedEnumValue: EnumValue = new EnumValue(); + parsedEnumValue.name = enumValue.name; + parsedEnumValue.ordinal = enumValue.ordinal; + parsedField.enumValues.push(parsedEnumValue); + } + } + + if (javaClass.javaFields?.javaField?.length) { + for (const childField of javaClass.javaFields.javaField) { + this.parseJavaFieldFromDocument(childField, parsedField); + } + } + } +} + +export class JavaInspectionRequestModel extends DocumentInspectionRequestModel { + url = this.cfg.initCfg.baseJavaInspectionServiceUrl + 'class'; + options = new JavaInspectionRequestOptions(this.cfg, this.doc); +} + +export class JavaInspectionRequestOptions extends DocumentInspectionRequestOptions { + constructor(protected cfg: ConfigModel, protected doc: DocumentDefinition) { + super(cfg, doc); + const request: IClassInspectionRequestContainer = { + ClassInspectionRequest: { + jsonType: JAVA_INSPECTION_REQUEST_JSON_TYPE, + className: this.doc.inspectionSource, + disablePrivateOnlyFields: this.cfg.initCfg.disablePrivateOnlyFields, + disableProtectedOnlyFields: this.cfg.initCfg.disableProtectedOnlyFields, + disablePublicOnlyFields: this.cfg.initCfg.disablePublicOnlyFields, + disablePublicGetterSetterFields: + this.cfg.initCfg.disablePublicGetterSetterFields, + }, + }; + this.json = request; + if ( + this.doc.initModel.collectionType && + (this.doc.initModel.collectionType as CollectionType) !== + CollectionType.NONE + ) { + request.ClassInspectionRequest.collectionType = + this.doc.initModel.collectionType; + if (this.doc.initModel.collectionClassName) { + request.ClassInspectionRequest.collectionClassName = + this.doc.initModel.collectionClassName; + } + } + if ( + this.cfg.initCfg.fieldNameExclusions && + this.cfg.initCfg.fieldNameExclusions.length + ) { + request.ClassInspectionRequest.fieldNameExclusions = { + string: this.cfg.initCfg.fieldNameExclusions, + }; + } + if ( + this.cfg.initCfg.classNameExclusions && + this.cfg.initCfg.classNameExclusions.length + ) { + request.ClassInspectionRequest.classNameExclusions = { + string: this.cfg.initCfg.classNameExclusions, + }; + } + } +} diff --git a/packages/ui/src/core/models/inspect/json-inspection.model.ts b/packages/ui/src/core/models/inspect/json-inspection.model.ts new file mode 100644 index 000000000..e26983cce --- /dev/null +++ b/packages/ui/src/core/models/inspect/json-inspection.model.ts @@ -0,0 +1,144 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + DocumentInspectionModel, + DocumentInspectionRequestModel, + DocumentInspectionRequestOptions, +} from './document-inspection.model'; +import { EnumValue, Field } from '../field.model'; +import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; +import { + IJsonComplexType, + IJsonDocument, + IJsonDocumentContainer, + IJsonField, + IJsonInspectionResponse, + IJsonInspectionResponseContainer, + JSON_INSPECTION_REQUEST_JSON_TYPE, +} from '../../contracts/documents/json'; +import { FieldType } from '../../contracts/common'; + +/** + * Encapsulates JSON inspection context. + */ +export class JsonInspectionModel extends DocumentInspectionModel { + request = new JsonInspectionRequestModel(this.cfg, this.doc); + + isOnlineInspectionCapable(): boolean { + if (this.cfg.initCfg.baseJSONInspectionServiceUrl == null) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `JSON inspection service is not configured. Document will not be loaded: ${this.doc.name}`, + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: this.doc, + }) + ); + return false; + } + return true; + } + + parseResponse(responseJson: any): void { + if (typeof responseJson.JsonInspectionResponse !== 'undefined') { + this.extractJSONDocumentDefinitionFromInspectionResponse( + (responseJson as IJsonInspectionResponseContainer) + .JsonInspectionResponse + ); + } else if (typeof responseJson.JsonDocument !== 'undefined') { + this.extractJSONDocumentDefinition( + (responseJson as IJsonDocumentContainer).JsonDocument + ); + } else { + throw new Error(`Unknown JSON inspection result format: ${responseJson}`); + } + } + + private extractJSONDocumentDefinitionFromInspectionResponse( + body: IJsonInspectionResponse + ): void { + if (body.errorMessage) { + this.doc.errorOccurred = true; + throw new Error( + `Could not load JSON document, error: ${body.errorMessage}` + ); + } + + this.extractJSONDocumentDefinition(body.jsonDocument); + } + + private extractJSONDocumentDefinition(jsonDocument: IJsonDocument): void { + if (!this.doc.description) { + this.doc.description = this.doc.id; + } + if (!this.doc.name) { + this.doc.name = this.doc.id; + } + + for (const field of jsonDocument.fields.field) { + this.parseJSONFieldFromDocument(field as IJsonField, null); + } + } + + private parseJSONFieldFromDocument( + field: IJsonField, + parentField: Field | null + ): void { + const parsedField = this.parseFieldFromDocument(field, parentField); + if (parsedField == null) { + return; + } + if (field.fieldType !== FieldType.COMPLEX) { + return; + } + const complex = field as IJsonComplexType; + parsedField.enumeration = complex.enumeration; + /** FIXME enumIndexValue doesn't exist on JsonField/JsonComplexType + parsedField.enumIndexValue = complex.enumIndexValue + ? complex.enumIndexValue + : 0; + */ + if (parsedField.enumeration && complex.jsonEnumFields?.jsonEnumField) { + for (const enumValue of complex.jsonEnumFields.jsonEnumField) { + const parsedEnumValue: EnumValue = new EnumValue(); + parsedEnumValue.name = enumValue.name!; + parsedEnumValue.ordinal = enumValue.ordinal; + parsedField.enumValues.push(parsedEnumValue); + } + } + if (complex.jsonFields?.jsonField.length) { + for (const childField of complex.jsonFields.jsonField) { + this.parseJSONFieldFromDocument(childField, parsedField); + } + } + } +} + +export class JsonInspectionRequestModel extends DocumentInspectionRequestModel { + url = this.cfg.initCfg.baseJSONInspectionServiceUrl + 'inspect'; + options = new JsonInspectionRequestOptions(this.cfg, this.doc); +} + +export class JsonInspectionRequestOptions extends DocumentInspectionRequestOptions { + json = { + JsonInspectionRequest: { + jsonType: JSON_INSPECTION_REQUEST_JSON_TYPE, + type: this.doc.inspectionType, + jsonData: this.doc.inspectionSource, + }, + }; +} diff --git a/packages/ui/src/core/models/inspect/xml-inspection.model.ts b/packages/ui/src/core/models/inspect/xml-inspection.model.ts new file mode 100644 index 000000000..62d9f54f8 --- /dev/null +++ b/packages/ui/src/core/models/inspect/xml-inspection.model.ts @@ -0,0 +1,169 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + DocumentInspectionModel, + DocumentInspectionRequestModel, + DocumentInspectionRequestOptions, +} from './document-inspection.model'; +import { EnumValue, Field } from '../field.model'; +import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; +import { FieldType, IField } from '../../contracts/common'; +import { + IXmlComplexType, + IXmlDocument, + IXmlDocumentContainer, + IXmlField, + IXmlInspectionResponse, + IXmlInspectionResponseContainer, + XML_INSPECTION_REQUEST_JSON_TYPE, +} from '../../contracts/documents/xml'; +import { NamespaceModel } from '../document-definition.model'; + +export class XmlInspectionModel extends DocumentInspectionModel { + request = new XmlInspectionRequestModel(this.cfg, this.doc); + + isOnlineInspectionCapable(): boolean { + if (this.cfg.initCfg.baseXMLInspectionServiceUrl == null) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `XML inspection service is not configured. Document will not be loaded: ${this.doc.name}`, + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: this.doc, + }) + ); + return false; + } + return true; + } + + parseResponse(responseJson: any): void { + if (typeof responseJson.XmlInspectionResponse !== 'undefined') { + this.extractXMLDocumentDefinitionFromInspectionResponse( + (responseJson as IXmlInspectionResponseContainer).XmlInspectionResponse + ); + } else if (typeof responseJson.XmlDocument !== 'undefined') { + this.extractXMLDocumentDefinition( + (responseJson as IXmlDocumentContainer).XmlDocument + ); + } else { + throw new Error(`Unknown XML inspection result format: ${responseJson}`); + } + } + + private extractXMLDocumentDefinitionFromInspectionResponse( + body: IXmlInspectionResponse + ): void { + if (body.errorMessage) { + this.doc.errorOccurred = true; + throw new Error( + `Could not load XML document, error: ${body.errorMessage}` + ); + } + + this.extractXMLDocumentDefinition(body.xmlDocument); + } + + private extractXMLDocumentDefinition(xmlDocument: IXmlDocument): void { + if (!this.doc.description) { + this.doc.description = this.doc.id; + } + if (!this.doc.name) { + this.doc.name = this.doc.id; + } + + if (xmlDocument?.xmlNamespaces?.xmlNamespace?.length) { + for (const serviceNS of xmlDocument.xmlNamespaces.xmlNamespace) { + const ns: NamespaceModel = new NamespaceModel(); + ns.alias = serviceNS.alias; + ns.uri = serviceNS.uri; + ns.locationUri = serviceNS.locationUri; + ns.isTarget = serviceNS.targetNamespace; + this.doc.namespaces.push(ns); + } + } + + for (const field of xmlDocument.fields.field) { + if (!this.doc.selectedRoot || this.isSelectedRootElement(field)) { + this.parseXMLFieldFromDocument(field, null); + break; + } + } + } + + private isSelectedRootElement(field: IField): boolean { + if (!this.doc.selectedRoot && !field?.name) { + return false; + } + return ( + this.doc.selectedRoot === + (field.name!.indexOf(':') !== -1 ? field.name!.split(':')[1] : field.name) + ); + } + + private parseXMLFieldFromDocument( + field: IXmlField, + parentField: Field | null + ): void { + const parsedField = this.parseFieldFromDocument(field, parentField); + if (parsedField == null) { + return; + } + + if (field.name!.indexOf(':') !== -1) { + parsedField.namespaceAlias = field.name!.split(':')[0]; + parsedField.name = field.name!.split(':')[1]; + } + + parsedField.isAttribute = parsedField.path.indexOf('@') !== -1; + if (field.fieldType !== FieldType.COMPLEX) { + return; + } + const complex = field as IXmlComplexType; + + parsedField.enumeration = complex.enumeration; + + if (parsedField.enumeration && complex.xmlEnumFields?.xmlEnumField) { + for (const enumValue of complex.xmlEnumFields.xmlEnumField) { + const parsedEnumValue: EnumValue = new EnumValue(); + parsedEnumValue.name = enumValue.name!; + parsedEnumValue.ordinal = enumValue.ordinal; + parsedField.enumValues.push(parsedEnumValue); + } + } + if (complex.xmlFields?.xmlField.length) { + for (const childField of complex.xmlFields.xmlField) { + this.parseXMLFieldFromDocument(childField, parsedField); + } + } + } +} + +export class XmlInspectionRequestModel extends DocumentInspectionRequestModel { + url = this.cfg.initCfg.baseXMLInspectionServiceUrl + 'inspect'; + options = new XmlInspectionRequestOptions(this.cfg, this.doc); +} + +export class XmlInspectionRequestOptions extends DocumentInspectionRequestOptions { + json = { + XmlInspectionRequest: { + jsonType: XML_INSPECTION_REQUEST_JSON_TYPE, + type: this.doc.inspectionType, + xmlData: this.doc.inspectionSource, + }, + }; +} diff --git a/packages/ui/src/core/models/lookup-table.model.spec.ts b/packages/ui/src/core/models/lookup-table.model.spec.ts new file mode 100644 index 000000000..14b5e6160 --- /dev/null +++ b/packages/ui/src/core/models/lookup-table.model.spec.ts @@ -0,0 +1,32 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { LookupTable, LookupTableEntry } from '../models/lookup-table.model'; +import { FieldType } from '../contracts/common'; + +describe('LookupTable', () => { + test('initialize', () => { + const entry = new LookupTableEntry(); + entry.sourceType = FieldType.STRING; + entry.sourceValue = 'sValue'; + entry.targetType = FieldType.STRING; + entry.targetValue = 'tValue'; + const table = new LookupTable(); + expect(table.name); + table.lookupEntry.push(entry); + expect(table.toString()).toContain('Entry #0: sValue => tValue'); + }); +}); diff --git a/packages/ui/src/core/models/lookup-table.model.ts b/packages/ui/src/core/models/lookup-table.model.ts new file mode 100644 index 000000000..346761d38 --- /dev/null +++ b/packages/ui/src/core/models/lookup-table.model.ts @@ -0,0 +1,82 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { FieldType } from '../contracts'; + +export class LookupTableEntry { + sourceValue: string; + sourceType = FieldType.STRING; + targetValue: string; + targetType = FieldType.STRING; +} + +export class LookupTable { + name: string; + lookupEntry: LookupTableEntry[] = []; + sourceIdentifier: string; + targetIdentifier: string; + + constructor() { + this.name = + new Date().getTime() + + '-' + + Math.floor(Math.random() * 1000000).toString(); + } + + getInputOutputKey(): string { + return this.sourceIdentifier + ':' + this.targetIdentifier; + } + + getEntryForSource( + sourceValue: string, + autocreate: boolean + ): LookupTableEntry | null { + for (const entry of this.lookupEntry) { + if (entry.sourceValue === sourceValue) { + return entry; + } + } + if (autocreate) { + const entry: LookupTableEntry = new LookupTableEntry(); + entry.sourceValue = sourceValue; + this.lookupEntry.push(entry); + return entry; + } + return null; + } + + toString() { + let result: string = + 'Lookup Table, name: ' + + this.name + + ', entries: ' + + this.lookupEntry.length; + result += '\nsourceIdentifier: ' + this.sourceIdentifier; + result += '\n\targetIdentifier: ' + this.targetIdentifier; + let counter = 0; + for (const entry of this.lookupEntry) { + result += + '\n\tEntry #' + + counter + + ': ' + + entry.sourceValue + + ' => ' + + entry.targetValue; + counter += 1; + } + return result; + } +} diff --git a/packages/ui/src/core/models/mapping-definition.model.spec.ts b/packages/ui/src/core/models/mapping-definition.model.spec.ts new file mode 100644 index 000000000..050b4e314 --- /dev/null +++ b/packages/ui/src/core/models/mapping-definition.model.spec.ts @@ -0,0 +1,24 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { MappingDefinition } from '../models/mapping-definition.model'; + +describe('MappingDefinition', () => { + test('initialize', () => { + const mappingDef = new MappingDefinition(); + expect(mappingDef.name).toEqual('UI.0'); + }); +}); diff --git a/packages/ui/src/core/models/mapping-definition.model.ts b/packages/ui/src/core/models/mapping-definition.model.ts new file mode 100644 index 000000000..979eea7b3 --- /dev/null +++ b/packages/ui/src/core/models/mapping-definition.model.ts @@ -0,0 +1,119 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { CommonUtil } from '../utils/common-util'; +import { DocumentDefinition } from './document-definition.model'; +import { Field } from './field.model'; +import { LookupTable } from './lookup-table.model'; +import { MappingModel } from './mapping.model'; +import { TransitionMode } from './transition.model'; + +export class MappingDefinition { + name: string | null = null; + mappings: MappingModel[] = []; + activeMapping: MappingModel | null = null; + parsedDocs: DocumentDefinition[] = []; + templateText: string | null = null; + + private tables: LookupTable[] = []; + private tablesBySourceTargetKey: { [key: string]: LookupTable } = {}; + private tablesByName: { [key: string]: LookupTable } = {}; + + constructor() { + // Mapping definition ID must be 0 until https://github.com/atlasmap/atlasmap/issues/1577 + // this.name = 'UI.' + Math.floor((Math.random() * 1000000) + 1).toString(); + this.name = 'UI.0'; + } + + templateExists(): boolean { + return this.templateText != null && this.templateText !== ''; + } + + addTable(table: LookupTable): void { + this.tablesBySourceTargetKey[table.getInputOutputKey()] = table; + this.tablesByName[table.name] = table; + this.tables.push(table); + } + + getTableByName(name: string): LookupTable { + return this.tablesByName[name]; + } + + getTableBySourceTarget( + sourceIdentifier: string, + targetIdentifier: string + ): LookupTable { + const key: string = sourceIdentifier + ':' + targetIdentifier; + return this.tablesBySourceTargetKey[key]; + } + + getTables(): LookupTable[] { + const tables: LookupTable[] = []; + for (const key in this.tablesByName) { + if (!this.tablesByName.hasOwnProperty(key)) { + continue; + } + const table: LookupTable = this.tablesByName[key]; + tables.push(table); + } + return tables; + } + + removeTableByName(name: string) { + if (name) { + const table = this.tablesByName[name]; + const iokey = table.getInputOutputKey(); + if (this.tablesByName[name]) { + delete this.tables[this.tables.indexOf(table)]; + delete this.tablesByName[name]; + delete this.tablesBySourceTargetKey[iokey]; + } + } + } + + getAllMappings(includeActiveMapping: boolean): MappingModel[] { + const mappings: MappingModel[] = [...this.mappings]; + if (includeActiveMapping) { + if (this.activeMapping == null) { + return mappings; + } + for (const mapping of mappings) { + if (mapping === this.activeMapping) { + return mappings; + } + } + mappings.push(this.activeMapping); + } + return mappings; + } + + findMappingsForField(field: Field): MappingModel[] { + const mappingsForField: MappingModel[] = []; + for (const m of this.mappings) { + if (m.isFieldMapped(field)) { + mappingsForField.push(m); + } + } + return mappingsForField; + } + + removeMapping(m: MappingModel): boolean { + if (m.transition.mode === TransitionMode.ENUM) { + this.removeTableByName(m.transition.lookupTableName!); + } + return CommonUtil.removeItemFromArray(m, this.mappings); + } +} diff --git a/packages/ui/src/core/models/mapping.model.spec.ts b/packages/ui/src/core/models/mapping.model.spec.ts new file mode 100644 index 000000000..955f2a532 --- /dev/null +++ b/packages/ui/src/core/models/mapping.model.spec.ts @@ -0,0 +1,25 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { MappingModel } from '../models/mapping.model'; + +describe('MappingModel', () => { + test('initialize', () => { + const mapping = new MappingModel(); + expect(mapping.uuid).toContain('mapping.'); + expect(mapping.cfg); + }); +}); diff --git a/packages/ui/src/core/models/mapping.model.ts b/packages/ui/src/core/models/mapping.model.ts new file mode 100644 index 000000000..4d543376f --- /dev/null +++ b/packages/ui/src/core/models/mapping.model.ts @@ -0,0 +1,490 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FieldType, IField } from '../contracts/common'; + +import { CommonUtil } from '../utils/common-util'; +import { ConfigModel } from './config.model'; +import { Field } from './field.model'; +import { FieldAction } from './field-action.model'; +import { PaddingField } from './document-definition.model'; +import { TransitionModel } from './transition.model'; + +export class MappedField { + /** + * The field properties read from mapping definition. This is a temporary object + * when it's deserialized from mapping definition and once {@link field} is populated + * this should not be used. + * @todo Identify document field at once when it deserializes and remove this temporary + * object. + */ + mappingField: IField; + /** The field object created from document field */ + field: Field | null; + /** The field actions read from mapping and enriched through {@link FieldActionService} */ + actions: FieldAction[] = []; + + static sortMappedFieldsByPath(mappedFields: MappedField[]): MappedField[] { + if (mappedFields == null || mappedFields.length === 0) { + return []; + } + const fieldsByPath: { [key: string]: MappedField } = {}; + const fieldPaths: string[] = []; + for (const mappedField of mappedFields) { + if (mappedField == null || mappedField.field == null) { + continue; + } + const path: string = mappedField.field.path; + fieldsByPath[path] = mappedField; + fieldPaths.push(path); + } + fieldPaths.sort(); + const result: MappedField[] = []; + for (const name of fieldPaths) { + result.push(fieldsByPath[name]); + } + return result; + } + + isPadField(): boolean { + return this.field instanceof PaddingField; + } + + isSource(): boolean { + return this.field ? this.field.isSource() : false; + } + + removeAction(action: FieldAction): void { + CommonUtil.removeItemFromArray(action, this.actions); + } +} + +export class MappingModel { + cfg: ConfigModel; + uuid: string; + + sourceFields: MappedField[] = []; + targetFields: MappedField[] = []; + referenceFields: MappedField[] = []; + transition: TransitionModel = new TransitionModel(); + + constructor() { + this.uuid = 'mapping.' + Math.floor(Math.random() * 1000000 + 1).toString(); + this.cfg = ConfigModel.getConfig(); + } + + getFirstCollectionField(isSource: boolean): Field | null { + for (const f of isSource ? this.sourceFields : this.targetFields) { + if (f.field && f.field.isInCollection()) { + return f.field; + } + } + return null; + } + + isLookupMode(): boolean { + for (const f of this.sourceFields.concat(this.targetFields)) { + if (f.field && f.field.enumeration) { + return true; + } + } + return false; + } + + /** + * Add the specified field to this field mapping. + * + * @param field - field to add to the mapping + * @param first - if true add the field to the beginning of the array, last otherwise. + */ + addField(field: Field, first: boolean): MappedField { + const mappedFields = this.getMappedFields(field.isSource()); + if (mappedFields.length === 1) { + const mappedField: MappedField = mappedFields[0]; + if (!mappedField.field) { + mappedField.field = field; + return mappedField; + } + } + const mappedField: MappedField = new MappedField(); + mappedField.field = field; + if (first) { + mappedFields.unshift(mappedField); + } else { + mappedFields.push(mappedField); + } + return mappedField; + } + + /** + * Remove the specified field from this field mapping. + * + * @param field + */ + removeField(field: Field) { + const mappedFields = this.getMappedFields(field.isSource()); + CommonUtil.removeItemFromArray( + mappedFields.find((mf) => mf.field === field), + mappedFields + ); + } + + /** + * Return the number of user-defined (non-padding) fields in this mapping. + * + * @param field + */ + getUserFieldCount(field: Field): number { + const mappedFields = this.getMappedFields(field.isSource()); + let userFieldCount = 0; + + for (const mappedField of mappedFields) { + if (!mappedField.isPadField()) { + userFieldCount++; + } + } + return userFieldCount; + } + + hasMappedField(isSource: boolean) { + return isSource + ? this.sourceFields.length > 0 + : this.targetFields.length > 0; + } + + isEmpty() { + return this.sourceFields.length === 0 && this.targetFields.length === 0; + } + + isFullyMapped(): boolean { + return this.sourceFields.length > 0 && this.targetFields.length > 0; + } + + addMappedField(mappedField: MappedField, isSource: boolean): void { + this.getMappedFields(isSource).push(mappedField); + } + + removeMappedField(mappedField: MappedField): void { + if (!mappedField || !mappedField.field) { + return; + } + if (mappedField.field.isCollection) { + this.removeReferenceField(mappedField); + } + CommonUtil.removeItemFromArray( + mappedField, + this.getMappedFields(mappedField.field!.isSource()) + ); + this.cfg.mappingService.notifyMappingUpdated(); + } + + getMappedFieldForField(field: Field): MappedField | null { + if (!field || !field.isSource) { + return null; + } + + for (const mappedField of this.getMappedFields(field.isSource())) { + if (mappedField.field === field) { + return mappedField; + } + } + return null; + } + + /** + * Return the MappedField associated with the specified field path and panel. The + * document ID is optional identifier parameters used to distinguish the fields + * with the same path in a different document. The first match will be returned + * if not specified. + * + * @param fieldPath + * @param isSource + * @param identifier + */ + getMappedFieldByPath( + fieldPath: string, + isSource: boolean, + docId?: string + ): MappedField | null { + if (!fieldPath) { + return null; + } + const mappedFields = this.getMappedFields(isSource); + for (let i = 0; i < mappedFields.length; i++) { + if (mappedFields[i].field?.path === fieldPath) { + if (!docId) { + return mappedFields[i]; + } + if (docId && mappedFields[i].field?.docDef.id === docId) { + return mappedFields[i]; + } + } + } + return null; + } + + getMappedFieldForIndex(index: string, isSource: boolean): MappedField | null { + if (!index || index.length === 0) { + return null; + } + const mappedFields = this.getMappedFields(isSource); + if (+index - 1 > mappedFields.length - 1) { + return null; + } + return mappedFields[+index - 1]; + } + + getIndexForMappedField(mappedField: MappedField): number | null { + if (!mappedField || !mappedField.field) { + return null; + } + return ( + this.getMappedFields(mappedField.field.isSource()).indexOf(mappedField) + + 1 + ); + } + + getField(docId: string, fieldPath: string): Field | null { + let docDef = this.cfg.getDocForIdentifier(docId, true); + if (!docDef) { + docDef = this.cfg.getDocForIdentifier(docId, false); + } + let field: Field | null = null; + if (docDef) { + field = Field.getField(fieldPath, docDef.getAllFields()); + } + return field; + } + + /** + * Create a reference field in the reference fields array for this mapping. + * + * @param field + */ + createReferenceField(field: Field): MappedField | null { + let mappedField: MappedField | null = null; + + if (!field) { + return null; + } + if ( + !field.documentField?.status || + field.documentField?.status === 'SUPPORTED' || + field.documentField?.status === 'CACHED' + ) { + mappedField = new MappedField(); + mappedField.field = field; + this.referenceFields.push(mappedField); + } + return mappedField; + } + + /** + * Remove the specified reference field from the reference fields array. + * + * @param field + */ + removeReferenceField(mappedField: MappedField) { + if (!mappedField) { + return; + } + CommonUtil.removeItemFromArray(mappedField, this.referenceFields); + } + + /** + * Return true if a reference field exists in this mapping with the specified + * document ID and field path, false otherwise. + * + * @param docId + * @param fieldPath + */ + referenceFieldExists(docId: string, fieldPath: string): boolean { + if (!docId || !fieldPath) { + return false; + } + const referenceFields = this.getReferenceMappedFields(); + for (let referenceField of referenceFields) { + if ( + referenceField.field && + referenceField.field.docDef.id === docId && + referenceField.field.path === fieldPath + ) { + return true; + } + } + return false; + } + + /** + * A reference field is a complex field which is referenced in a conditional + * expression but does not exist as an explicit part of the mapping. It is + * typically used as a parameter to conditional functions/ constructs. If the + * field already exists return it otherwise create it. + * + * @param docId + * @param fieldPath + */ + getReferenceField(docId: string, fieldPath: string): MappedField | null { + if (!docId || !fieldPath) { + return null; + } + const referenceFields = this.getReferenceMappedFields(); + for (let referenceField of referenceFields) { + if ( + referenceField.field && + referenceField.field.docDef.id === docId && + referenceField.field.path === fieldPath + ) { + return referenceField; + } + } + const field = this.getField(docId, fieldPath); + if (field?.type === FieldType.COMPLEX) { + this.transition.expression.hasComplexField = true; + return this.createReferenceField(field); + } + return null; + } + + /** + * Return an array of user mapped fields for the specified panel in this + * field pair instance. No data-mapper generated padding fields will be + * included. + * + * @param isSource - true source panel, false target panel + */ + getUserMappedFields(isSource: boolean): MappedField[] { + const workingFields = isSource ? this.sourceFields : this.targetFields; + const resultFields: MappedField[] = [new MappedField()]; + + for (const mappedField of workingFields) { + if (!mappedField.isPadField()) { + resultFields.push(mappedField); + } + } + resultFields.shift(); + return resultFields; + } + + getReferenceMappedFields(): MappedField[] { + return this.referenceFields; + } + + getMappedFields(isSource: boolean): MappedField[] { + return isSource ? this.sourceFields : this.targetFields; + } + + getLastMappedField(isSource: boolean): MappedField | null { + const fields: MappedField[] = this.getMappedFields(isSource); + if (fields != null && fields.length > 0) { + return fields[fields.length - 1]; + } + return null; + } + + getFields(isSource: boolean): Field[] { + const fields: Field[] = []; + for (const mappedField of this.getMappedFields(isSource)) { + if (mappedField.field != null) { + fields.push(mappedField.field); + } + } + return fields; + } + + getFieldNames(isSource: boolean): string[] { + const fields: Field[] = this.getFields(isSource); + Field.alphabetizeFields(fields); + const names: string[] = []; + for (const field of fields) { + names.push(field.name); + } + return names; + } + + getFieldPaths(isSource: boolean): string[] { + const fields: Field[] = this.getFields(isSource); + Field.alphabetizeFields(fields); + const paths: string[] = []; + for (const field of fields) { + paths.push(field.path); + } + return paths; + } + + hasFieldActions(): boolean { + for (const mappedField of this.getAllMappedFields()) { + if (mappedField.actions.length > 0) { + return true; + } + } + return false; + } + + getAllFields(): Field[] { + return this.getFields(true).concat(this.getFields(false)); + } + + getAllMappedFields(): MappedField[] { + return this.getMappedFields(true).concat(this.getMappedFields(false)); + } + + isFieldMapped(field: Field): boolean { + return this.getMappedFieldForField(field) != null; + } + + hasTransformation(): boolean { + const mappedFields: MappedField[] = this.getAllMappedFields(); + for (const mappedField of mappedFields) { + if (mappedField.actions.length > 0) { + return true; + } + } + return false; + } + + /** + * Walk all target field mappings and return one of corresponding source field name + * if the specified field is already the target of a previous mapping, null otherwise. + * + * @param field + */ + public getMappedTarget(field: Field): string | null { + // TODO: check this non null operator + const mappings: MappingModel[] = this.cfg.mappings!.mappings; + + if (field.isSource()) { + return null; + } + for (const m of mappings) { + if (m.targetFields.length === 0) { + continue; + } + + for (const mappedOutputField of m.targetFields) { + // TODO: check this non null operator + if ( + mappedOutputField.field?.docDef === field.docDef && + mappedOutputField.field!.path === field.path + ) { + if (m.isFieldMapped(field)) { + return m.sourceFields[0]?.field!.name; + } + } + } + } + return null; + } +} diff --git a/packages/ui/src/core/models/transition.model.spec.ts b/packages/ui/src/core/models/transition.model.spec.ts new file mode 100644 index 000000000..f126481d9 --- /dev/null +++ b/packages/ui/src/core/models/transition.model.spec.ts @@ -0,0 +1,26 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { TransitionMode, TransitionModel } from '../models/transition.model'; + +describe('TransitionModel', () => { + test('initialize', () => { + const transition = new TransitionModel(); + expect(TransitionModel.delimiterModels.length > 0); + expect(transition.mode === TransitionMode.ONE_TO_ONE); + expect(transition.getPrettyName() === 'One to One'); + }); +}); diff --git a/packages/ui/src/core/models/transition.model.ts b/packages/ui/src/core/models/transition.model.ts new file mode 100644 index 000000000..75dd595b3 --- /dev/null +++ b/packages/ui/src/core/models/transition.model.ts @@ -0,0 +1,306 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ExpressionModel } from './expression.model'; +import { FieldAction } from './field-action.model'; + +export enum TransitionMode { + ONE_TO_ONE = 'ONE_TO_ONE', + ONE_TO_MANY = 'ONE_TO_MANY', + ENUM = 'ENUM', + MANY_TO_ONE = 'MANY_TO_ONE', + FOR_EACH = 'FOR_EACH', + EXPRESSION = 'EXPRESSION', +} + +export enum TransitionDelimiter { + NONE, + AMPERSAND, + AT_SIGN, + BACKSLASH, + COLON, + COMMA, + DASH, + EQUAL, + HASH, + PERIOD, + PIPE, + SEMICOLON, + SLASH, + SPACE, + UNDERSCORE, + USER_DEFINED, +} + +export class TransitionDelimiterModel { + delimiter: TransitionDelimiter = TransitionDelimiter.SPACE; + serializedValue: string | null = null; + prettyName: string | null = null; + actualDelimiter = ''; + + constructor( + delimiter: TransitionDelimiter, + serializedValue: string | null, + prettyName: string, + actualDelimiter: string + ) { + this.delimiter = delimiter; + this.serializedValue = serializedValue; + this.prettyName = prettyName; + this.actualDelimiter = actualDelimiter; + } +} + +export class TransitionModel { + static delimiterModels: TransitionDelimiterModel[] = []; + + mode: TransitionMode = TransitionMode.ONE_TO_ONE; + delimiter: TransitionDelimiter = TransitionDelimiter.SPACE; + userDelimiter = ''; + lookupTableName: string | null = null; + expression!: ExpressionModel; + enableExpression = false; + transitionFieldAction: FieldAction | null = null; + + constructor() { + TransitionModel.initialize(); + } + + static initialize() { + if (TransitionModel.delimiterModels.length === 0) { + const models: TransitionDelimiterModel[] = []; + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.NONE, + null, + '[None]', + '' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.AMPERSAND, + 'Ampersand', + 'Ampersand [&]', + '&' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.AT_SIGN, + 'AtSign', + 'At Sign [@]', + '@' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.BACKSLASH, + 'Backslash', + 'Backslash [\\]', + '\\' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.COLON, + 'Colon', + 'Colon [:]', + ':' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.COMMA, + 'Comma', + 'Comma [,]', + ',' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.DASH, + 'Dash', + 'Dash [-]', + '-' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.EQUAL, + 'Equal', + 'Equal [=]', + '=' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.HASH, + 'Hash', + 'Hash [#]', + '#' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.PERIOD, + 'Period', + 'Period [.]', + '.' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.PIPE, + 'Pipe', + 'Pipe [|]', + '|' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.SEMICOLON, + 'Semicolon', + 'Semicolon [;]', + ';' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.SLASH, + 'Slash', + 'Slash [/]', + '/' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.SPACE, + 'Space', + 'Space [ ]', + ' ' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.UNDERSCORE, + 'Underscore', + 'Underscore [_]', + '_' + ) + ); + models.push( + new TransitionDelimiterModel( + TransitionDelimiter.USER_DEFINED, + 'User defined', + 'User defined', + '\0' + ) + ); + TransitionModel.delimiterModels = models; + } + } + + static delimiterToModel(delimiter: string): TransitionDelimiterModel { + return TransitionModel.delimiterModels.filter( + (model) => model.actualDelimiter === delimiter + )[0]; + } + + /** + * Translate a mapping mode number into a string. + * @param mode + */ + static getMappingModeName(mode: TransitionMode): string { + let actionName: string; + + switch (mode) { + case TransitionMode.ONE_TO_ONE: { + actionName = 'One to One'; + break; + } + case TransitionMode.MANY_TO_ONE: { + actionName = 'Many to One'; + break; + } + case TransitionMode.ONE_TO_MANY: { + actionName = 'One to Many'; + break; + } + case TransitionMode.ENUM: { + actionName = 'ENUM'; + break; + } + case TransitionMode.FOR_EACH: { + actionName = 'For Each'; + break; + } + case TransitionMode.EXPRESSION: { + actionName = 'Expression'; + break; + } + default: { + actionName = ''; + break; + } + } + return actionName; + } + + getPrettyName() { + let transitionFieldActionName = ''; + if (this.transitionFieldAction) { + transitionFieldActionName = ' (' + this.transitionFieldAction.name + ')'; + } + if ( + this.mode === TransitionMode.ONE_TO_MANY || + this.mode === TransitionMode.MANY_TO_ONE + ) { + return ( + TransitionModel.getMappingModeName(this.mode) + + transitionFieldActionName + ); + } else if (this.mode === TransitionMode.ENUM) { + return 'Enum (table: ' + this.lookupTableName + ')'; + } else if (this.mode === TransitionMode.EXPRESSION) { + return 'Expression (' + this.expression?.toText() + ')'; + } + return TransitionModel.getMappingModeName(this.mode); + } + + isOneToManyMode(): boolean { + return this.mode === TransitionMode.ONE_TO_MANY; + } + + isOneToOneMode(): boolean { + return this.mode === TransitionMode.ONE_TO_ONE; + } + + isManyToOneMode(): boolean { + return this.mode === TransitionMode.MANY_TO_ONE; + } + + isForEachMode(): boolean { + return this.mode === TransitionMode.FOR_EACH; + } + + isEnumerationMode(): boolean { + return this.mode === TransitionMode.ENUM; + } + + isExpressionMode(): boolean { + return this.mode === TransitionMode.EXPRESSION; + } +} diff --git a/packages/ui/src/core/services/document-management.service.spec.ts b/packages/ui/src/core/services/document-management.service.spec.ts new file mode 100644 index 000000000..610dfc781 --- /dev/null +++ b/packages/ui/src/core/services/document-management.service.spec.ts @@ -0,0 +1,407 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfigModel, + DocumentInitializationModel, +} from '../models/config.model'; +import { DocumentType, FieldType, InspectionType } from '../contracts/common'; + +import { DocumentDefinition } from '../models/document-definition.model'; +import { DocumentManagementService } from '../services/document-management.service'; +import { Field } from '../models/field.model'; +import { InitializationService } from './initialization.service'; +import type { Input } from 'ky/distribution/types/options'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { TestUtils } from '../../test/test-util'; +import atlasmapInspectionComplexObjectRootedJson from '../../../../test-resources/inspected/atlasmap-inspection-complex-object-rooted.json'; +import atlasmapInspectionPoExampleSchemaJson from '../../../../test-resources/inspected/atlasmap-inspection-po-example-schema.json'; +import atlasmapInspectionTargetTestClassJson from '../../../../test-resources/inspected/atlasmap-inspection-io.atlasmap.java.test.TargetTestClass.json'; +import atlasmapInspectionTwitter4jStatusJson from '../../../../test-resources/inspected/atlasmap-inspection-twitter4j.Status.json'; +import fs from 'fs'; +import ky from 'ky'; + +describe('DocumentManagementService', () => { + let cfg: ConfigModel; + let service: DocumentManagementService; + + beforeEach(() => { + const initService = new InitializationService(ky); + cfg = initService.cfg; + service = cfg.documentService; + }); + + test('initialize()/uninitialize()', () => { + TestUtils.createMockMappings(cfg); + const spyUfm = spyOn( + DocumentDefinition.prototype, + 'updateFromMappings' + ).and.stub(); + cfg.sourceDocs[0].initialized = true; + service.uninitialize(); + const count = spyUfm.calls.count(); + cfg.mappingService.mappingUpdatedSource.next(); + expect(spyUfm.calls.count()).toBe(count); + service.initialize(); + cfg.mappingService.mappingUpdatedSource.next(); + expect(spyUfm.calls.count()).toBe(count + 1); + service.uninitialize(); + cfg.mappingService.mappingUpdatedSource.next(); + expect(spyUfm.calls.count()).toBe(count + 1); + }); + + test('inspectDocuments() parse Java inspection', (done) => { + const docDef = new DocumentInitializationModel(); + docDef.type = DocumentType.JAVA; + docDef.inspectionResult = JSON.stringify( + atlasmapInspectionTwitter4jStatusJson + ); + cfg.addDocument(docDef); + service.inspectDocuments().subscribe({ + next: (answer: DocumentDefinition) => { + expect(answer.fields.length).toBe(29); + const text = answer.getField('/text'); + expect(text).toBeTruthy(); + expect(text?.name).toBe('text'); + expect(text?.type).toBe('STRING'); + expect(text?.children.length).toBe(0); + const user = answer.getField('/user'); + expect(user).toBeTruthy(); + expect(user?.name).toBe('user'); + expect(user?.type).toBe('COMPLEX'); + expect(user?.classIdentifier).toBe('twitter4j.User'); + expect(user?.children.length).toBe(57); + const screenName = user?.children?.filter( + (child: Field) => child?.name === 'screenName' + ); + if (!screenName) { + fail('no screenName'); + } + expect(screenName?.length).toBe(1); + expect(screenName[0]?.name).toBe('screenName'); + expect(screenName[0]?.path).toBe('/user/screenName'); + expect(screenName[0]?.type).toBe('STRING'); + expect(screenName[0]?.children.length).toBe(0); + const url = answer.getField('/place/name'); + expect(url?.name).toBe('name'); + expect(url?.path).toBe('/place/name'); + expect(url?.type).toBe('STRING'); + const urlParent = url?.parentField; + expect(urlParent?.name).toBe('place'); + expect(screenName[0]?.children.length).toBe(0); + done(); + }, + error: (error) => { + fail(error); + }, + }); + }); + + test('inspectDocuments() parse Java inspection TargetTestClass', (done) => { + const docDef = new DocumentInitializationModel(); + docDef.type = DocumentType.JAVA; + docDef.inspectionResult = JSON.stringify( + atlasmapInspectionTargetTestClassJson + ); + cfg.addDocument(docDef); + service.inspectDocuments().subscribe({ + next: (answer: DocumentDefinition) => { + const contact = answer.getField('/contact'); + expect(contact).toBeTruthy(); + expect(contact?.type).toBe('COMPLEX'); + expect(contact?.name).toBe('contact'); + expect(contact?.path).toBe('/contact'); + expect(contact?.isCollection).toBeFalsy(); + const contactFirstName = answer.getField('/contact/firstName'); + expect(contactFirstName).toBeTruthy(); + expect(contactFirstName?.type).toBe('STRING'); + expect(contactFirstName?.name).toBe('firstName'); + expect(contactFirstName?.path).toBe('/contact/firstName'); + const list = answer.getField('/contactList<>'); + expect(list).toBeTruthy(); + expect(list?.type).toBe('COMPLEX'); + expect(list?.name).toBe('contactList'); + expect(list?.path).toBe('/contactList<>'); + expect(list?.isCollection).toBeTruthy(); + const listFirstName = answer.getField('/contactList<>/firstName'); + expect(listFirstName).toBeTruthy(); + expect(listFirstName?.type).toBe('STRING'); + expect(listFirstName?.name).toBe('firstName'); + expect(listFirstName?.path).toBe('/contactList<>/firstName'); + const array = answer.getField('/contactArray[]'); + expect(array).toBeTruthy(); + expect(array?.type).toBe('COMPLEX'); + expect(array?.name).toBe('contactArray'); + expect(array?.path).toBe('/contactArray[]'); + expect(array?.isCollection).toBeTruthy(); + const arrayFirstName = answer.getField('/contactArray[]/firstName'); + expect(arrayFirstName).toBeTruthy(); + expect(arrayFirstName?.type).toBe('STRING'); + expect(arrayFirstName?.name).toBe('firstName'); + expect(arrayFirstName?.path).toBe('/contactArray[]/firstName'); + done(); + }, + error: (error) => { + fail(error); + }, + }); + }); + + test('inspectDocuments() parse JSON inspection', (done) => { + const docDef = new DocumentInitializationModel(); + docDef.type = DocumentType.JSON; + docDef.inspectionType = InspectionType.SCHEMA; + docDef.inspectionResult = JSON.stringify( + atlasmapInspectionComplexObjectRootedJson + ); + cfg.addDocument(docDef); + service.inspectDocuments().subscribe({ + next: (answer: DocumentDefinition) => { + expect(answer.fields.length).toBe(1); + expect(answer.fields[0].name).toBe('order'); + const order = answer.getField('/order'); + expect(order?.name).toBe('order'); + expect(order?.type).toBe('COMPLEX'); + expect(order?.children).toBeTruthy(); + expect(order?.children?.length).toBe(3); + done(); + }, + error: (error) => { + fail(error); + }, + }); + }); + + test('inspectDocuments() parse XML inspection', (done) => { + const docDef = new DocumentInitializationModel(); + docDef.type = DocumentType.XML; + docDef.inspectionType = InspectionType.SCHEMA; + docDef.inspectionResult = JSON.stringify( + atlasmapInspectionPoExampleSchemaJson + ); + cfg.addDocument(docDef); + service.inspectDocuments().subscribe((answer: DocumentDefinition) => { + expect(answer.fields.length).toBe(1); + expect(answer.fields[0].name).toBe('purchaseOrder'); + const purchaseOrder = answer.getField('/tns:purchaseOrder'); + expect(purchaseOrder?.name).toBe('purchaseOrder'); + expect(purchaseOrder?.type).toBe('COMPLEX'); + expect(purchaseOrder?.children).toBeTruthy(); + expect(purchaseOrder?.children?.length).toBe(5); + done(); + }); + }); + + test('inspectDocuments() pick up one XML root element', (done) => { + const docDef = new DocumentInitializationModel(); + docDef.type = DocumentType.XML; + docDef.name = 'purchaseOrder'; + docDef.inspectionType = InspectionType.SCHEMA; + docDef.inspectionResult = JSON.stringify( + atlasmapInspectionPoExampleSchemaJson + ); + docDef.selectedRoot = 'purchaseOrder'; + cfg.addDocument(docDef); + const docDef2 = new DocumentInitializationModel(); + docDef2.type = DocumentType.XML; + docDef2.name = 'comment'; + docDef2.inspectionType = InspectionType.SCHEMA; + docDef2.inspectionResult = docDef.inspectionResult; + docDef2.selectedRoot = 'comment'; + cfg.addDocument(docDef2); + let count = 0; + service.inspectDocuments().subscribe((answer) => { + if (answer.name === 'purchaseOrder') { + expect(answer.fields.length).toBe(1); + expect(answer.fields[0].name).toBe('purchaseOrder'); + count++; + } else if (answer.name === 'comment') { + expect(answer.fields.length).toBe(1); + expect(answer.fields[0].name).toBe('comment'); + count++; + } + if (count === 2) { + done(); + } + }); + }); + + test('getLibraryClassNames()', (done) => { + cfg.initCfg.baseMappingServiceUrl = 'dummyurl'; + spyOn(ky, 'get').and.callFake((_url: Input) => { + return new (class { + json(): Promise { + return Promise.resolve({ + ArrayList: ['dummy.class.0', 'dummy.class.1'], + }); + } + })(); + }); + service + .getLibraryClassNames() + .then((values) => { + expect(values[0]).toBe('dummy.class.0'); + expect(values[1]).toBe('dummy.class.1'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('importNonJavaDocument()', (done) => { + cfg.initCfg.baseJSONInspectionServiceUrl = 'json'; + spyOn(ky, 'post').and.callFake((_url: Input) => { + return new (class { + json(): Promise { + return Promise.resolve({ + JsonInspectionResponse: { + jsonDocument: { + fields: { + field: [ + { + name: 'dummyField', + path: 'dummyField', + }, + ], + }, + }, + }, + }); + } + })(); + }); + const buf = fs.readFileSync( + `${__dirname}/../../../../test-resources/json/schema/mock-json-schema.json` + ); + const file = new File([new Blob([buf])], 'mock-json-schema.json'); + expect(cfg.sourceDocs.length).toBe(0); + service + .importNonJavaDocument(file, true, true, {}) + .then((value) => { + expect(value).toBeTruthy(); + expect(cfg.sourceDocs.length).toBe(1); + expect(cfg.sourceDocs[0].type).toBe(DocumentType.JSON); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('importJavaDocument()', (done) => { + cfg.initCfg.baseJavaInspectionServiceUrl = 'java'; + spyOn(ky, 'post').and.callFake((_url: Input) => { + return new (class { + json(): Promise { + return Promise.resolve({ + ClassInspectionResponse: { + javaClass: { + javaFields: { + javaField: [ + { + name: 'dummyField', + path: 'dummyField', + }, + ], + }, + }, + }, + }); + } + })(); + }); + expect(cfg.sourceDocs.length).toBe(0); + service + .importJavaDocument('io.atlasmap.test.TestDocumentClass', true) + .then((value) => { + expect(value).toBeTruthy(); + expect(cfg.sourceDocs.length).toBe(1); + expect(cfg.sourceDocs[0].type).toBe(DocumentType.JAVA); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('Constant field', () => { + cfg.mappings = new MappingDefinition(); + expect(cfg.constantDoc.fields.length).toBe(0); + service.createConstant('testConst', 'testConstVal', 'STRING', false); + expect(cfg.constantDoc.fields.length).toBe(1); + const f = cfg.constantDoc.getField('/testConst'); + expect(f).toBeTruthy(); + expect(f!.name).toBe('testConst'); + expect(f!.path).toBe('/testConst'); + expect(f!.type).toBe(FieldType.STRING); + expect(f!.value).toBe('testConstVal'); + expect(service.getConstantType('testConst')).toBe(FieldType.STRING); + expect(service.getConstantTypeIndex('testConst')).toBe(0); + service.editConstant( + 'testConstMod', + 'testConstValMod', + 'STRING', + 'testConst' + ); + expect(cfg.constantDoc.fields.length).toBe(1); + const fm = cfg.constantDoc.getField('/testConstMod'); + expect(fm).toBeTruthy(); + expect(fm!.name).toBe('testConstMod'); + expect(fm!.path).toBe('/testConstMod'); + expect(fm!.type).toBe(FieldType.STRING); + expect(fm!.value).toBe('testConstValMod'); + service.deleteConstant('testConstMod'); + expect(cfg.constantDoc.fields.length).toBe(0); + }); + + test('Property field', () => { + cfg.mappings = new MappingDefinition(); + expect(cfg.sourcePropertyDoc.fields.length).toBe(0); + expect(cfg.targetPropertyDoc.fields.length).toBe(0); + service.createProperty('testProp', 'STRING', 'current', true, false); + expect(cfg.sourcePropertyDoc.fields.length).toBe(1); + expect(cfg.targetPropertyDoc.fields.length).toBe(0); + const f = cfg.sourcePropertyDoc.getField('/current/testProp'); + expect(f).toBeTruthy(); + expect(f!.name).toBe('testProp'); + expect(f!.scope).toBe('current'); + expect(f!.path).toBe('/current/testProp'); + expect(f!.type).toBe(FieldType.STRING); + expect(service.getPropertyType('testProp', 'current', true)).toBe( + FieldType.STRING + ); + expect(service.getPropertyTypeIndex('testProp', 'current', true)).toBe(0); + service.editProperty( + 'testProp', + 'STRING', + 'current', + true, + 'testPropMod', + 'currentMod' + ); + expect(cfg.sourcePropertyDoc.fields.length).toBe(1); + expect(cfg.targetPropertyDoc.fields.length).toBe(0); + const fm = cfg.sourcePropertyDoc.getField('/currentMod/testPropMod'); + expect(fm).toBeTruthy(); + expect(fm!.name).toBe('testPropMod'); + expect(fm!.scope).toBe('currentMod'); + expect(fm!.path).toBe('/currentMod/testPropMod'); + expect(fm!.type).toBe(FieldType.STRING); + service.deleteProperty('testPropMod', 'currentMod', true); + expect(cfg.sourcePropertyDoc.fields.length).toBe(0); + expect(cfg.targetPropertyDoc.fields.length).toBe(0); + }); +}); diff --git a/packages/ui/src/core/services/document-management.service.ts b/packages/ui/src/core/services/document-management.service.ts new file mode 100644 index 000000000..fa45d6f10 --- /dev/null +++ b/packages/ui/src/core/services/document-management.service.ts @@ -0,0 +1,834 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CollectionType, + DocumentType, + FIELD_PATH_SEPARATOR, + FieldType, + InspectionType, +} from '../contracts/common'; +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { + HTTP_STATUS_NO_CONTENT, + constantTypes, + propertyTypes, +} from '../common/config.types'; +import { Observable, Subscription } from 'rxjs'; + +import { CommonUtil } from '../utils/common-util'; +import { ConfigModel } from '../models/config.model'; +import { DocumentDefinition } from '../models/document-definition.model'; +import { DocumentInspectionModel } from '../models/inspect/document-inspection.model'; +import { DocumentInspectionUtil } from '../utils/document-inspection-util'; +import { Field } from '../models/field.model'; +import { Guid } from '../utils'; +import ky from 'ky'; + +/** + * Manages Document object lifecycle. Import a Document source + * such as JSON/XML schema/instance, request an inspection to the backend, + * then enable it for mapping by consuming inspection result in UI. + */ +export class DocumentManagementService { + cfg!: ConfigModel; + + private mappingUpdatedSubscription!: Subscription; + private MAX_SEARCH_MATCH = 10000; + + constructor(private api: typeof ky) {} + + initialize(): void { + this.mappingUpdatedSubscription = + this.cfg.mappingService.mappingUpdated$.subscribe(() => { + for (const d of this.cfg.getAllDocs()) { + if (d.initialized) { + d.updateFromMappings(this.cfg.mappings!); // TODO: check this non null operator + } + } + }); + } + + uninitialize(): void { + this.mappingUpdatedSubscription.unsubscribe(); + } + + /** + * Request Document inspection for each {@link DocumentDefinition} object + * stored in {@link ConfigModel} and populate it back with the inspection result. + * + * @returns + */ + inspectDocuments(): Observable { + return new Observable((observer) => { + for (const docDef of this.cfg.getAllDocs()) { + if ( + docDef === this.cfg.sourcePropertyDoc || + docDef === this.cfg.targetPropertyDoc || + docDef === this.cfg.constantDoc + ) { + docDef.initialized = true; + continue; + } + + const inspectionModel = DocumentInspectionUtil.fromDocumentDefinition( + this.cfg, + docDef + ); + + // TODO: check this non null operator + this.inspectDocument(inspectionModel) + .then(() => { + observer.next(docDef); + }) + .catch((error: any) => { + observer.error(error); + }); + } + }); + } + + private inspectDocument( + inspectionModel: DocumentInspectionModel + ): Promise { + return new Promise((resolve, reject) => { + const docDef = inspectionModel.doc; + if (docDef.inspectionResult) { + const responseJson: any = JSON.parse(docDef.inspectionResult); + inspectionModel.parseResponse(responseJson); + docDef.initializeFromFields(); + docDef.initialized = true; + resolve(docDef); + return; + } + + if (!inspectionModel.isOnlineInspectionCapable()) { + docDef.initialized = true; + docDef.errorOccurred = true; + reject(docDef); + return; + } + + const request = inspectionModel.request; + this.cfg.logger!.debug( + `Document Inspection Request: ${JSON.stringify(request.options.json)}` + ); + this.api + .post(request.url, request.options) + .json() + .then((responseJson: any) => { + this.cfg.logger!.debug( + `Document Inspection Response: ${JSON.stringify(responseJson)}` + ); + inspectionModel.parseResponse(responseJson); + docDef.initializeFromFields(); + docDef.initialized = true; + resolve(docDef); + }) + .catch((error: any) => { + this.cfg.errorService.addBackendError( + `Failed to inspect Document: ${docDef.name}(${docDef.id})`, + error + ); + docDef.errorOccurred = true; + reject(error); + }); + }); + } + + getLibraryClassNames(): Promise { + return new Promise((resolve, reject) => { + if (typeof this.cfg.initCfg.baseMappingServiceUrl === 'undefined') { + resolve([]); + return; + } + const url: string = + this.cfg.initCfg.baseMappingServiceUrl + 'library/list'; + this.cfg.logger!.debug('Library Class List Service Request: ' + url); + this.api + .get(url) + .json() + .then((body: any) => { + this.cfg.logger!.debug( + `Library Class List Service Response: ${JSON.stringify(body)}` + ); + const classNames: string[] = body.ArrayList; + resolve(classNames); + }) + .catch((error: any) => { + if (error.status !== HTTP_STATUS_NO_CONTENT) { + this.cfg.errorService.addBackendError( + 'Error occurred while accessing the user uploaded JARs from the runtime service.', + error + ); + reject(error); + } else { + resolve([]); + } + }); + }); + } + + /** + * Import user uploaded Document source such as JSON/XML schema/instance, assign + * a unique Document ID with using GUID and delegate to {@link addNonJavaDocument} + * to make it available as a Document for mappings. + * @see addNonJavaDocument + * + * @param selectedFile - user selected file + * @param isSource - true is source panel, false is target + * @param isSchema- user specified instance/ schema (true === schema) + * @param inspectionParameters - CSV parameters + * + */ + importNonJavaDocument( + selectedFile: File, + isSource: boolean, + isSchema: boolean, + inspectionParameters?: { [key: string]: string } + ): Promise { + return new Promise(async (resolve) => { + let fileText = ''; + const reader = new FileReader(); + + this.cfg.errorService.clearValidationErrors(); + + const userFileComps = selectedFile.name.split('.'); + const userFile = userFileComps.slice(0, -1).join('.'); + const userFileSuffix: string = + userFileComps[userFileComps.length - 1].toUpperCase(); + + // Wait for the async read of the selected ascii document to be completed. + try { + fileText = await CommonUtil.readFile(selectedFile, reader); + } catch (error) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: 'Unable to import the specified schema document.', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.USER, + object: error, + }) + ); + resolve(false); + return; + } + + let docType = undefined; + try { + docType = userFileSuffix as DocumentType; + if (!docType) { + throw new Error(docType); + } + } catch (error) { + this.handleError( + 'Unrecognized document suffix (' + userFileSuffix + ')' + ); + resolve(false); + return; + } + this.addNonJavaDocument( + fileText, + userFile + '-' + Guid.newGuid(), + userFile, + docType, + isSchema ? InspectionType.SCHEMA : InspectionType.INSTANCE, + isSource, + inspectionParameters + ).then((value) => { + if (!value) { + resolve(false); + return; + } + this.cfg.errorService.addError( + new ErrorInfo({ + message: `${selectedFile.name} ${userFileSuffix} import complete.`, + level: ErrorLevel.INFO, + scope: ErrorScope.APPLICATION, + type: ErrorType.USER, + }) + ); + resolve(true); + }); + }); + } + + /** + * Import a Java class as a Document source and delegate to {@link addJavaDocument} + * to make it available as a Document for mappings. + * JAR file(s) have to be imported and be available in the backend classpath + * before doing this. + * @see addJavaDocument + * @todo https://github.com/atlasmap/atlasmap/issues/2919 + * A unique Document ID should be assigned with using GUID. + * + * @param className + * @param isSource + * @param collectionType + * @param collectionClassName + */ + importJavaDocument( + className: string, + isSource: boolean, + collectionType = CollectionType.NONE, + collectionClassName?: string + ): Promise { + this.cfg.errorService.clearValidationErrors(); + return this.addJavaDocument( + className, + isSource, + collectionType, + collectionClassName + ); + } + /** + * Add non-Java Document object into the {@link ConfigModel} store and + * delegate to {@link doAddDocument}. + * @see doAddDocument + * + * @param docBody + * @param docId + * @param docName + * @param docType + * @param inspectionType + * @param isSource + * @param parameters + */ + addNonJavaDocument( + docBody: any, + docId: string, + docName: string, + docType: DocumentType, + inspectionType: InspectionType, + isSource: boolean, + parameters?: { [key: string]: string } + ): Promise { + const inspectionModel = DocumentInspectionUtil.fromNonJavaProperties( + this.cfg, + docId, + docName, + docType, + inspectionType, + docBody, + isSource, + parameters + ); + return this.doAddDocument(inspectionModel); + } + + /** + * Add Java Document object into the {@link ConfigModel} store and + * delegate to {@link doAddDocument}. + * @see doAddDocument + * + * @param className + * @param isSource + * @param collectionType {@link CollectionType} + * @param collectionClassName + */ + addJavaDocument( + className: string, + isSource: boolean, + collectionType: CollectionType = CollectionType.NONE, + collectionClassName?: string + ): Promise { + const inspectionModel = DocumentInspectionUtil.fromJavaProperties( + this.cfg, + className, + isSource, + collectionType, + collectionClassName + ); + return this.doAddDocument(inspectionModel); + } + + /** + * An utility method to look at the {@link DocumentType} passed in as an argument + * and see if it's a Java or non-Java Document, then delegate to + * {@link addJavaDocument} or {@link addNonJavaDocument}. + * + * @todo https://github.com/atlasmap/atlasmap/issues/2918 + * {@link CollectionType} and collectionClassName has to be persisted into digest + * so it could be restored here + */ + addDocument( + docBody: any, + docId: string, + docName: string, + docType: DocumentType, + inspectionType: InspectionType, + isSource: boolean, + parameters?: { [key: string]: string } + ): Promise { + if (docType === DocumentType.JAVA) { + return this.addJavaDocument(docId, isSource); + } + return this.addNonJavaDocument( + docBody, + docId, + docName, + docType, + inspectionType, + isSource, + parameters + ); + } + + /** + * Add or replace the {@link DocumentDefinition} object stored in {@link ConfigModel} + * and delegate to {@link inspectDocument} to perform an inspection. + * Then it gets available for mapping in the canvas. + * + * @param inspectionModel {@link DocumentInspectionModel} + * @returns + */ + private doAddDocument( + inspectionModel: DocumentInspectionModel + ): Promise { + return new Promise(async (resolve) => { + let docdef = inspectionModel.doc; + const isSource = docdef.isSource; + + this.inspectDocument(inspectionModel) + .then(async (doc: DocumentDefinition) => { + if (doc.fields.length === 0) { + if (isSource) { + CommonUtil.removeItemFromArray(docdef, this.cfg.sourceDocs); + } else { + CommonUtil.removeItemFromArray(docdef, this.cfg.targetDocs); + } + } + docdef.updateFromMappings(this.cfg.mappings!); + resolve(true); + }) + .catch((error) => { + this.cfg.logger?.error( + `Failed to inspect Document ${docdef.name}(${docdef.id})`, + error + ); + docdef.errorOccurred = true; + resolve(false); + }); + }); + } + + private handleError(message: string, error?: any): void { + this.cfg.errorService.addError( + new ErrorInfo({ + message: message, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: error, + }) + ); + } + + /** + * Filter Document fields that is shwon in a Source/Target Document tree. + * @todo Consolidate with expression field search and Document Details field + * search - https://github.com/atlasmap/atlasmap/issues/603 + * @param searchFilter + * @param isSource + */ + filterDocumentFields(searchFilter: string | undefined, isSource: boolean) { + const cfg = ConfigModel.getConfig(); + + let searchResultsExist = false; + const searchIsEmpty: boolean = + undefined === searchFilter || '' === searchFilter; + const defaultVisibility: boolean = searchIsEmpty; + for (const docDef of cfg.getDocs(isSource)) { + docDef.visibleInCurrentDocumentSearch = defaultVisibility; + for (const field of docDef.getAllFields()) { + field.visibleInCurrentDocumentSearch = defaultVisibility; + } + if (!searchIsEmpty) { + let searchFieldCount = 0; + for (const field of docDef.getAllFields()) { + // Skip this field if it's already determined to be visible. + if (field.visibleInCurrentDocumentSearch && !field.collapsed) { + continue; + } + field.visibleInCurrentDocumentSearch = field.name + .toLowerCase() + .includes(searchFilter!.toLowerCase()); + searchResultsExist = + searchResultsExist || field.visibleInCurrentDocumentSearch; + + // The current field matches the user-specified filter. + if (field.visibleInCurrentDocumentSearch) { + docDef.visibleInCurrentDocumentSearch = true; + let parentField = field.parentField; + + // Direct lineage is then visible. + while ( + parentField != null && + !parentField.visibleInCurrentDocumentSearch + ) { + parentField.visibleInCurrentDocumentSearch = true; + parentField.collapsed = false; + parentField = parentField.parentField; + searchFieldCount++; + } + + // All fields below the matching field are also visible. + try { + this.markChildrenVisible(field); + } catch (error) { + cfg.errorService.addError( + new ErrorInfo({ + message: error.message, + level: ErrorLevel.INFO, + scope: ErrorScope.APPLICATION, + type: ErrorType.USER, + }) + ); + break; + } + + // The total number of matches is limited to allow the UI to perform. + if (searchFieldCount++ >= this.MAX_SEARCH_MATCH) { + cfg.errorService.addError( + new ErrorInfo({ + message: + 'The maximum number of fields matching the specified search filter has beeen exceeded ' + + 'Try using a longer field filter.', + level: ErrorLevel.INFO, + scope: ErrorScope.APPLICATION, + type: ErrorType.USER, + }) + ); + break; + } + } + } + } + } + cfg.mappingService.notifyLineRefresh(); + } + + private markChildrenVisible(field: Field): void { + field.visibleInCurrentDocumentSearch = true; + field.collapsed = false; + // if (this.searchFieldCount++ >= this.maxSearchMatch) { + // throw new Error('The maximum number of fields matching the specified search filter has beeen exceeded ' + + // 'Try using a longer field filter.'); + // } + for (const childField of field.children) { + this.markChildrenVisible(childField); + } + } + + /** + * Create a constant field. + * @param constName + * @param constValue + * @param constType + * @param addToActiveMapping + */ + createConstant( + constName: string, + constValue: string, + constType: string, + addToActiveMapping?: boolean + ): void { + let field = this.cfg.constantDoc.getField(FIELD_PATH_SEPARATOR + constName); + if (!field) { + field = new Field(); + } + field.name = constName; + field.path = FIELD_PATH_SEPARATOR + constName; + field.value = constValue; + field.type = FieldType[constType as keyof typeof FieldType]; + field.docDef = this.cfg.constantDoc; + field.userCreated = true; + this.cfg.constantDoc.addField(field); + if (addToActiveMapping) { + this.cfg.mappingService.addFieldToActiveMapping(field); + } + this.cfg.mappingService.notifyMappingUpdated(); + } + + /** + * Delete a constant field. + * @param constName + */ + deleteConstant(constName: string): void { + const field = this.cfg.constantDoc.getField( + FIELD_PATH_SEPARATOR + constName + ); + if (!field) { + return; + } + this.cfg.mappingService.removeFieldFromAllMappings(field); + this.cfg.constantDoc.removeField(field); + const activeMapping = this.cfg.mappings?.activeMapping; + const expression = activeMapping?.transition?.expression; + if (activeMapping && expression) { + expression.updateFieldReference(activeMapping); + } + this.cfg.mappingService.notifyMappingUpdated(); + } + + /** + * Edit a constant field. Look for an existing constant field with the specified name + * and update the properties. If {@link origName} is specified and different from + * {@link constName}, the name of the constant field will be changed. + * @param constName + * @param constValue + * @param constType + * @param origName + */ + editConstant( + constName: string, + constValue: string, + constType: string, + origName?: string + ): void { + let constFieldName = origName ? origName : constName; + let field = this.cfg.constantDoc.getField( + FIELD_PATH_SEPARATOR + constFieldName + ); + if (!field) { + return; + } + if (constType.length > 0) { + field.type = FieldType[constType as keyof typeof FieldType]; + } + if (constValue.length > 0) { + field.value = constValue; + } + if (origName && origName !== constName) { + field.name = constName; + field.path = FIELD_PATH_SEPARATOR + constName; + this.cfg.constantDoc.updateField(field, FIELD_PATH_SEPARATOR + constName); + } + this.cfg.mappingService.notifyMappingUpdated(); + } + + /** + * Get a {@link FieldType} of the constant field. + * @param constName + */ + getConstantType(constName: string): FieldType { + const cfg = ConfigModel.getConfig(); + const field = cfg.constantDoc.getField(FIELD_PATH_SEPARATOR + constName); + if (!field) { + return FieldType.NONE; + } + return field.type; + } + + /** + * Get an index of the constant field type. + * @param constName + */ + getConstantTypeIndex(constName: string): number { + const cfg = ConfigModel.getConfig(); + const field = cfg.constantDoc.getField(FIELD_PATH_SEPARATOR + constName); + if (!field) { + return 0; + } + for (let i = 0; i < constantTypes.length; i++) { + if (constantTypes[i].includes(field.type)) { + return i; + } + } + return 0; + } + + /** + * Create a property field. + * @param propName + * @param propType + * @param propScope + * @param isSource + * @param addToActiveMapping + */ + createProperty( + propName: string, + propType: string, + propScope: string, + isSource: boolean, + addToActiveMapping?: boolean + ): void { + const cfg = ConfigModel.getConfig(); + const path = this.getPropertyPath(propScope, propName); + let field = isSource + ? cfg.sourcePropertyDoc.getField(path) + : cfg.targetPropertyDoc.getField(path); + if (!field) { + field = new Field(); + } + field.name = propName; + field.type = FieldType[propType as keyof typeof FieldType]; + field.scope = propScope; + field.path = path; + field.userCreated = true; + + if (isSource) { + field.docDef = cfg.sourcePropertyDoc; + cfg.sourcePropertyDoc.addField(field); + } else { + field.docDef = cfg.targetPropertyDoc; + cfg.targetPropertyDoc.addField(field); + } + if (addToActiveMapping) { + this.cfg.mappingService.addFieldToActiveMapping(field); + } + cfg.mappingService.notifyMappingUpdated(); + } + + /** + * Delete a property field. + * @param propName + * @param propScope + * @param isSource + */ + deleteProperty(propName: string, propScope: string, isSource: boolean): void { + const path = this.getPropertyPath(propScope, propName); + const field = isSource + ? this.cfg.sourcePropertyDoc.getField(path) + : this.cfg.targetPropertyDoc.getField(path); + if (!field) { + return; + } + this.cfg.mappingService.removeFieldFromAllMappings(field); + if (isSource) { + this.cfg.sourcePropertyDoc.removeField(field); + } else { + this.cfg.targetPropertyDoc.removeField(field); + } + const activeMapping = this.cfg.mappings?.activeMapping; + const expression = activeMapping?.transition?.expression; + if (activeMapping && expression) { + expression.updateFieldReference(activeMapping); + } + this.cfg.mappingService.notifyMappingUpdated(); + } + + /** + * Edit a property field. When editing a property, the propName/propScope + * is needed to fetch the existing field. The newName and newScope may or + * may not be specified. + * + * @param propName + * @param propType + * @param propScope + * @param isSource + * @param newName + * @param newScope + */ + editProperty( + propName: string, + propType: string, + propScope: string, + isSource: boolean, + newName?: string, + newScope?: string + ): void { + let oldPath = this.getPropertyPath(propScope, propName); + let field = isSource + ? this.cfg.sourcePropertyDoc.getField(oldPath) + : this.cfg.targetPropertyDoc.getField(oldPath); + if (!field) { + return; + } + if (newName) { + field.name = newName; + } + if (newScope) { + field.scope = newScope; + } + field.type = FieldType[propType as keyof typeof FieldType]; + field.path = this.getPropertyPath(field.scope, field.name!); + + if (isSource) { + this.cfg.sourcePropertyDoc.updateField(field, oldPath); + } else { + this.cfg.targetPropertyDoc.updateField(field, oldPath); + } + this.cfg.mappingService.notifyMappingUpdated(); + } + + /** + * Get a {@link FieldType} of the property field. + * @param propName + * @param propScope + * @param isSource + */ + getPropertyType( + propName: string, + propScope: string, + isSource: boolean + ): FieldType { + const field = isSource + ? this.cfg.sourcePropertyDoc.getField( + this.getPropertyPath(propScope, propName) + ) + : this.cfg.targetPropertyDoc.getField( + this.getPropertyPath(propScope, propName) + ); + if (!field) { + return FieldType.NONE; + } + return field.type; + } + + /** + * Get an index of the property field type. + * @param propName + * @param propScope + * @param isSource + */ + getPropertyTypeIndex( + propName: string, + propScope: string, + isSource: boolean + ): number { + const field = isSource + ? this.cfg.sourcePropertyDoc.getField( + this.getPropertyPath(propScope, propName) + ) + : this.cfg.targetPropertyDoc.getField( + this.getPropertyPath(propScope, propName) + ); + if (!field) { + return 0; + } + for (let i = 0; i < propertyTypes.length; i++) { + if (propertyTypes[i].includes(field.type)) { + return i; + } + } + return 0; + } + + getPropertyPath(scope: string | undefined | null, name: string) { + let answer = FIELD_PATH_SEPARATOR; + if (scope && scope.length > 0) { + answer += scope + FIELD_PATH_SEPARATOR; + } + answer += name; + return answer; + } +} diff --git a/packages/ui/src/core/services/error-handler.service.spec.ts b/packages/ui/src/core/services/error-handler.service.spec.ts new file mode 100644 index 000000000..6cdd89b20 --- /dev/null +++ b/packages/ui/src/core/services/error-handler.service.spec.ts @@ -0,0 +1,181 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; + +import { ErrorHandlerService } from '../services/error-handler.service'; +import { MappingModel } from '../models/mapping.model'; + +describe('ErrorHandlerService', () => { + test('filterWith()', () => { + const mapping1 = new MappingModel(); + const mapping2 = new MappingModel(); + const errors = [ + new ErrorInfo({ + message: 'app', + scope: ErrorScope.APPLICATION, + type: ErrorType.USER, + level: ErrorLevel.ERROR, + }), + new ErrorInfo({ + message: 'mapping1', + mapping: mapping1, + scope: ErrorScope.MAPPING, + type: ErrorType.VALIDATION, + level: ErrorLevel.ERROR, + }), + new ErrorInfo({ + message: 'mapping2', + mapping: mapping2, + scope: ErrorScope.MAPPING, + type: ErrorType.VALIDATION, + level: ErrorLevel.WARN, + }), + ]; + const noFilter = ErrorHandlerService.filterWith(errors); + expect(noFilter.length).toEqual(1); + expect(noFilter[0].message).toEqual('app'); + const m1 = ErrorHandlerService.filterWith(errors, mapping1); + expect(m1.length).toEqual(2); + expect(m1[0].message).toEqual('app'); + expect(m1[1].message).toEqual('mapping1'); + const m2 = ErrorHandlerService.filterWith(errors, mapping2); + expect(m2.length).toEqual(2); + expect(m2[0].message).toEqual('app'); + expect(m2[1].message).toEqual('mapping2'); + const m2Level = ErrorHandlerService.filterWith( + errors, + mapping2, + ErrorLevel.ERROR + ); + expect(m2Level.length).toEqual(1); + expect(m2Level[0].message).toEqual('app'); + }); + + test('addError() and removeError()', () => { + const service = new ErrorHandlerService(); + expect(service.getErrors().length).toEqual(0); + service.addError(new ErrorInfo({ message: 'test' })); + const errors = service.getErrors(); + expect(errors.length).toEqual(1); + expect(errors[0].message).toEqual('test'); + service.removeError(errors[0].identifier); + expect(service.getErrors().length).toEqual(0); + }); + + test('clearAllErrors()', () => { + const service = new ErrorHandlerService(); + expect(service.getErrors().length).toEqual(0); + service.addError(new ErrorInfo({ message: 'cae' })); + service.addError(new ErrorInfo({ message: 'cae2' })); + const errors = service.getErrors(); + expect(errors.length).toEqual(2); + expect(errors[0].message).toEqual('cae2'); + expect(errors[1].message).toEqual('cae'); + service.clearAllErrors(); + service.removeError(errors[0].identifier); + expect(service.getErrors().length).toEqual(0); + }); + + test('clearPreviewErrors()', () => { + const service = new ErrorHandlerService(); + expect(service.getErrors().length).toEqual(0); + service.addError( + new ErrorInfo({ message: 'cpe' }), + new ErrorInfo({ message: 'cpe2', type: ErrorType.PREVIEW }), + new ErrorInfo({ message: 'cpe3', type: ErrorType.USER }) + ); + let errors = service.getErrors(); + expect(errors.length).toEqual(3); + expect(errors[0].message).toEqual('cpe3'); + expect(errors[1].message).toEqual('cpe2'); + expect(errors[2].message).toEqual('cpe'); + service.clearPreviewErrors(); + errors = service.getErrors(); + expect(errors.length).toEqual(2); + expect(errors[0].message).toEqual('cpe3'); + expect(errors[1].message).toEqual('cpe'); + }); + + test('clearValidationErrors()', () => { + const service = new ErrorHandlerService(); + expect(service.getErrors().length).toEqual(0); + service.addError( + new ErrorInfo({ message: 'cve' }), + new ErrorInfo({ message: 'cve2', type: ErrorType.VALIDATION }), + new ErrorInfo({ message: 'cve3', type: ErrorType.PREVIEW }) + ); + let errors = service.getErrors(); + expect(errors.length).toEqual(3); + expect(errors[0].message).toEqual('cve3'); + expect(errors[1].message).toEqual('cve2'); + expect(errors[2].message).toEqual('cve'); + service.clearValidationErrors(); + errors = service.getErrors(); + expect(errors.length).toEqual(2); + expect(errors[0].message).toEqual('cve3'); + expect(errors[1].message).toEqual('cve'); + }); + + test('should support clearFieldErrors()', () => { + const service = new ErrorHandlerService(); + expect(service.getErrors().length).toEqual(0); + service.addError( + new ErrorInfo({ message: 'cfe' }), + new ErrorInfo({ message: 'cfe2', scope: ErrorScope.FIELD }), + new ErrorInfo({ message: 'cfe3', scope: ErrorScope.MAPPING }) + ); + let errors = service.getErrors(); + expect(errors.length).toEqual(3); + expect(errors[0].message).toEqual('cfe3'); + expect(errors[1].message).toEqual('cfe2'); + expect(errors[2].message).toEqual('cfe'); + service.clearFieldErrors(); + errors = service.getErrors(); + expect(errors.length).toEqual(2); + expect(errors[0].message).toEqual('cfe3'); + expect(errors[1].message).toEqual('cfe'); + }); + + test('async subscription', (done) => { + const service = new ErrorHandlerService(); + const subscription = service.subscribe((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].message).toEqual('async'); + subscription.unsubscribe(); + done(); + }); + service.addError(new ErrorInfo({ message: 'async' })); + }); + + test('should support form error async subscription', (done) => { + const service = new ErrorHandlerService(); + const subject = service.createFormErrorChannel(); + subject.subscribe((errors) => { + expect(errors.length).toEqual(1); + expect(errors[0].message).toEqual('form async is required.'); + expect(errors[0].level).toEqual(ErrorLevel.ERROR); + expect(errors[0].scope).toEqual(ErrorScope.FORM); + subject.complete(); + done(); + }); + service.isRequiredFieldValid(null, 'form async'); + }); +}); diff --git a/packages/ui/src/core/services/error-handler.service.ts b/packages/ui/src/core/services/error-handler.service.ts new file mode 100644 index 000000000..9d7e6fd36 --- /dev/null +++ b/packages/ui/src/core/services/error-handler.service.ts @@ -0,0 +1,264 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { Subject, Subscription } from 'rxjs'; +import { MappingModel } from '../models/mapping.model'; + +/** + * ErrorHandlerService handles global errors, mapping validation errors, preview errors, + * mapped field level errors as well as instant form validation errors in a modal windows. + * Global errors, mapping validation errors, preview errors and mapped field level errors + * are stored in a same array at this moment. We might want to split them when we show + * them grouped by {@link ErrorType}. + * Errors with {@link ErrorScope.MAPPING} and {@link ErrorScope.FIELD} are cleared + * everytime active mapping is switched. {@link ErrorScope.FIELD} errors are mostly + * instant and cleared more frequently. + * Form validation errors are supposed to be instant. Channel should be created by + * {@link createFormErrorChannel()} when modal window is initialized, and should be + * completed when modal window is closed. + */ +export class ErrorHandlerService { + private errors: ErrorInfo[] = []; + private formErrors: ErrorInfo[] = []; + private errorUpdatedSource = new Subject(); + private formErrorUpdatedSource: Subject | undefined; + + /** + * FIlter an array of {@link ErrorInfo} with specified condition. + * @param errors An array of {@link ErrorInfo} to filter + * @param mapping {@link MappingModel} to filter {@link ErrorScope.MAPPING} errors + * @param level {@link ErrorLevel} to filter with + */ + static filterWith( + errors: ErrorInfo[], + mapping?: MappingModel, + level?: ErrorLevel + ): ErrorInfo[] { + if (!errors || errors.length === 0) { + return []; + } + return errors.filter( + (e) => + (!e.mapping || (mapping && e.mapping === mapping)) && + (!level || !e.level || e.level === level) + ); + } + + /** + * Add one or more {@link ErrorInfo} object(s) into error store. + * @param errors one or more {@link ErrorInfo} object(s) + */ + addError(...errors: ErrorInfo[]): void { + errors.forEach((error) => { + if (error.object && error.object.message) { + // TODO show error.object in more polished way... maybe with better error console + error.message += '\n' + error.object.message; + } + const store = + ErrorScope.FORM === error.scope ? this.formErrors : this.errors; + if (store.find((e) => e.message === error.message)) { + return; + } + store.unshift(error); + }); + this.emitUpdatedEvent(); + } + + /** + * An utility method to add backend error. It's a network error if {@link error.status} is 0. + * + * @param message error message to put if it's not a network error + * @param error raw error object + */ + addBackendError(message: string, error?: any): void { + if (error?.status === 0) { + this.addError( + new ErrorInfo({ + message: + 'Fatal network error: Unable to connect to the AtlasMap design runtime service.', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: error, + }) + ); + } else { + this.addError( + new ErrorInfo({ + message: message, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: error, + }) + ); + } + } + + /** + * Return all errors in the store. + * @return An array of {@link ErrorInfo} + */ + getErrors(): ErrorInfo[] { + return Object.assign([], this.errors); + } + + /** + * Remove one {@link ErrorInfo} by specifying ID. + * @param identifier Error ID + */ + removeError(identifier: string, scope?: ErrorScope): void { + if ( + scope === ErrorScope.FORM && + this.formErrorUpdatedSource && + !this.formErrorUpdatedSource.closed + ) { + this.formErrors = this.excludeByIdentifier(this.formErrors, identifier); + } else { + this.errors = this.excludeByIdentifier(this.errors, identifier); + } + this.emitUpdatedEvent(); + } + + /** + * Clear all global/mapping errors as well as form validation erros and its Subject + * if it exists. + */ + resetAll(): void { + this.clearAllErrors(); + this.formErrors = []; + if (this.formErrorUpdatedSource && !this.formErrorUpdatedSource.closed) { + this.formErrorUpdatedSource.complete(); + } + } + + /** + * Remova all errors except form validation errors. + */ + clearAllErrors() { + this.errors = []; + this.emitUpdatedEvent(); + } + + /** + * Remove all preview errors. + */ + clearPreviewErrors(): void { + this.errors = this.errors.filter((e) => e.type !== ErrorType.PREVIEW); + this.emitUpdatedEvent(); + } + + /** + * Remove all mapping validation errors. + */ + clearValidationErrors(mapping?: MappingModel): void { + this.errors = this.errors.filter( + (e) => + e.type !== ErrorType.VALIDATION && + (!mapping || !e.mapping || e.mapping !== mapping) + ); + this.emitUpdatedEvent(); + } + + /** + * Remove all field scoped errors. + */ + clearFieldErrors() { + this.errors = this.errors.filter((e) => e.scope !== ErrorScope.FIELD); + this.emitUpdatedEvent(); + } + + /** + * Remove all form validation errors. + */ + clearFormErrors() { + this.formErrors = []; + this.emitUpdatedEvent(ErrorScope.FORM); + } + + /** + * Subscribe an error updated event. Observer will be notified + * when an error is added or removed. + * @param observer Observer + */ + subscribe(observer: (errors: ErrorInfo[]) => void): Subscription { + return this.errorUpdatedSource.subscribe(observer); + } + + /** + * Create a Subject for form validation error. This ErrorHandlerService assumes only + * one form validation happens at once, as it's used in modal window. Revisit this if there + * needs to be more than one channel and manage a list of {@link Subject}. + */ + createFormErrorChannel(): Subject { + if (this.formErrorUpdatedSource && !this.formErrorUpdatedSource.closed) { + this.formErrorUpdatedSource.complete(); + } + this.formErrors = []; + this.formErrorUpdatedSource = new Subject(); + this.formErrorUpdatedSource.subscribe({ + complete: () => (this.formErrors = []), + }); + return this.formErrorUpdatedSource; + } + + /** + * Validate the specified field value in a form, generating a form validation error if not defined. + * @param value - A form field to validate + * @param fieldDescription - used in error diagnostic + */ + isRequiredFieldValid( + value: string | null, + fieldDescription: string + ): boolean { + if (value == null || '' === value) { + const errorMessage: string = fieldDescription + ' is required.'; + this.addError( + new ErrorInfo({ + message: errorMessage, + level: ErrorLevel.ERROR, + scope: ErrorScope.FORM, + }) + ); + this.emitUpdatedEvent(ErrorScope.FORM); + return false; + } + return true; + } + + private emitUpdatedEvent(scope?: ErrorScope) { + if (ErrorScope.FORM === scope) { + if (this.formErrorUpdatedSource && !this.formErrorUpdatedSource.closed) { + this.formErrorUpdatedSource.next(this.formErrors); + } + } else { + this.errorUpdatedSource.next(this.errors); + } + } + + private excludeByIdentifier( + errors: ErrorInfo[], + identifier: string + ): ErrorInfo[] { + return errors.filter((e) => e.identifier !== identifier); + } +} diff --git a/packages/ui/src/core/services/field-action.service.spec.ts b/packages/ui/src/core/services/field-action.service.spec.ts new file mode 100644 index 000000000..f590dbc22 --- /dev/null +++ b/packages/ui/src/core/services/field-action.service.spec.ts @@ -0,0 +1,154 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { Field } from '../models/field.model'; +import { FieldActionDefinition } from '../models/field-action.model'; +import { FieldActionService } from '../services/field-action.service'; +import { FieldType } from '../contracts/common'; +import { MappingModel } from '../models/mapping.model'; +import { Multiplicity } from '../contracts/field-action'; +import atlasmapFieldActionJson from '../../../../test-resources/fieldActions/atlasmap-field-action.json'; +import ky from 'ky'; +import log from 'loglevel'; + +describe('FieldActionService', () => { + let service: FieldActionService; + beforeEach(() => { + service = new FieldActionService(ky); + service.cfg.logger = log.getLogger('copnfig'); + }); + + test('parse field action metadata', (done) => { + service.cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + service.fetchFieldActions().then(() => { + let concatenateFound = false; + let dummyFound = false; + for (const action of service.actions[Multiplicity.ONE_TO_ONE]) { + if (action.name === 'io.atlasmap.maven.test.DummyOneToOne') { + expect(action.isCustom).toBeTruthy(); + dummyFound = true; + } else if (action.name === 'Concatenate') { + expect(action.isCustom).toBeFalsy(); + action.arguments[0].name = 'delimiter'; + concatenateFound = true; + } + } + expect(dummyFound).toBeTruthy(); + expect(concatenateFound).toBeFalsy(); + dummyFound = false; + concatenateFound = false; + for (const action of service.actions[Multiplicity.MANY_TO_ONE]) { + if (action.name === 'io.atlasmap.maven.test.DummyOneToOne') { + expect(action.isCustom).toBeTruthy(); + dummyFound = true; + } else if (action.name === 'Concatenate') { + expect(action.isCustom).toBeFalsy(); + action.arguments[0].name = 'delimiter'; + concatenateFound = true; + } + } + expect(dummyFound).toBeFalsy(); + expect(concatenateFound).toBeTruthy(); + done(); + }); + }); +}); + +describe('FieldActionService.appliesToField()', () => { + let action: FieldActionDefinition; + let mapping: MappingModel; + let source: Field; + let target: Field; + let service: FieldActionService; + + beforeEach(() => { + action = new FieldActionDefinition(); + mapping = new MappingModel(); + mapping.sourceFields.splice(0); + source = new Field(); + mapping.addField(source, false); + mapping.targetFields.splice(0); + target = new Field(); + mapping.addField(target, false); + service = new FieldActionService(ky); + service.cfg.logger = log.getLogger('copnfig'); + }); + + test('return false if FieldMappingPair is null', () => { + expect(service.appliesToField(action, new MappingModel(), false)).toBe( + false + ); + }); + + test('should return false if source or target is null', () => { + mapping.targetFields.splice(0); + expect(service.appliesToField(action, mapping, false)).toBe(false); + }); + + test('should return false if action multiplicity is ONE_TO_MANY', () => { + action.multiplicity = Multiplicity.ONE_TO_MANY; + expect(service.appliesToField(action, mapping, false)).toBe(false); + }); + + test('should return false if action multiplicity is MANY_TO_ONE', () => { + action.multiplicity = Multiplicity.MANY_TO_ONE; + expect(service.appliesToField(action, mapping, false)).toBe(false); + }); + + test('should return if action target type is NUMBER and target field type is numeric', () => { + action.sourceType = FieldType.NUMBER; + action.targetType = FieldType.NUMBER; + target.type = FieldType.SHORT; + expect(service.appliesToField(action, mapping, false)).toBe(true); + target.type = FieldType.NUMBER; + expect(service.appliesToField(action, mapping, false)).toBe(true); + target.type = FieldType.STRING; + expect(service.appliesToField(action, mapping, false)).toBe(false); + }); + + test('should return if action target type is ANY_DATE and target field type is a date/time', () => { + action.sourceType = FieldType.ANY_DATE; + action.targetType = FieldType.ANY_DATE; + target.type = FieldType.DATE; + expect(service.appliesToField(action, mapping, false)).toBe(true); + target.type = FieldType.DATE_TIME_TZ; + expect(service.appliesToField(action, mapping, false)).toBe(true); + target.type = FieldType.STRING; + expect(service.appliesToField(action, mapping, false)).toBe(false); + }); + + test('should return true if action source type STRING matches target field type STRING, and action target type matches target type', () => { + source.type = FieldType.STRING; + target.type = FieldType.STRING; + action.targetType = FieldType.STRING; + action.sourceType = FieldType.STRING; + expect(service.appliesToField(action, mapping, false)).toBe(true); + }); + + test('should return false if action source type CHAR matches target field type STRING, and action target type matches target type', () => { + target.type = FieldType.STRING; + action.targetType = FieldType.STRING; + action.sourceType = FieldType.CHAR; + expect(service.appliesToField(action, mapping, false)).toBe(false); + }); + + test('should return false if action source type STRING matches target field type CHAR, and action target type does not match target type', () => { + target.type = FieldType.CHAR; + action.targetType = FieldType.STRING; + action.sourceType = FieldType.STRING; + expect(service.appliesToField(action, mapping, false)).toBe(false); + }); +}); diff --git a/packages/ui/src/core/services/field-action.service.ts b/packages/ui/src/core/services/field-action.service.ts new file mode 100644 index 000000000..71b8910d1 --- /dev/null +++ b/packages/ui/src/core/services/field-action.service.ts @@ -0,0 +1,454 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { + FieldActionArgument, + FieldActionDefinition, +} from '../models/field-action.model'; +import { + IActionDetail, + IActionDetailsContainer, + Multiplicity, +} from '../contracts/field-action'; + +import { ConfigModel } from '../models/config.model'; +import { Field } from '../models/field.model'; +import { FieldType } from '../contracts/common'; +import { MappingModel } from '../models/mapping.model'; +import ky from 'ky'; + +export class FieldActionService { + cfg: ConfigModel = ConfigModel.getConfig(); + actions: { [key in Multiplicity]: FieldActionDefinition[] } = { + [Multiplicity.ONE_TO_ONE]: [], + [Multiplicity.ONE_TO_MANY]: [], + [Multiplicity.MANY_TO_ONE]: [], + [Multiplicity.ZERO_TO_ONE]: [], + [Multiplicity.MANY_TO_MANY]: [], + }; + + isInitialized = false; + private headers = { + 'Content-Type': 'application/json; application/octet-stream', + Accept: 'application/json; application/octet-stream', + }; + + constructor(private api: typeof ky) {} + + async fetchFieldActions(): Promise { + return new Promise((resolve) => { + if (this.cfg.preloadedFieldActionMetadata) { + this.clearActionDefinitions(); + if (this.cfg.preloadedFieldActionMetadata.ActionDetails) { + for (const actionDetail of this.cfg.preloadedFieldActionMetadata + .ActionDetails.actionDetail) { + const fieldActionDefinition = + this.extractFieldActionDefinition(actionDetail); + if (!fieldActionDefinition.multiplicity) { + this.cfg.logger!.info( + `Field action (${fieldActionDefinition.name}) is missing multiplicity, ingoring` + ); + continue; + } + if (fieldActionDefinition.name === 'Expression') { + // Expression is handled in special manner + continue; + } + this.actions[fieldActionDefinition.multiplicity].push( + fieldActionDefinition + ); + } + } + this.sortFieldActionDefinitions(); + this.isInitialized = true; + resolve(true); + return; + } + + if ( + this.cfg.mappingService == null || + this.cfg.initCfg.baseMappingServiceUrl == null + ) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: + 'Mapping service URL is not provided. Field Actions will not be used.', + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + }) + ); + this.isInitialized = true; + resolve(false); + return; + } + + // Fetch the field actions from the runtime service. + this.doFetchFieldActions() + .then((fetchedActionConfigs: FieldActionDefinition[]) => { + if (fetchedActionConfigs.length === 1) { + this.cfg.logger!.info('No field action was returned from backend'); + resolve(false); + } + this.clearActionDefinitions(); + fetchedActionConfigs.forEach((action) => { + if (!action.multiplicity) { + this.cfg.logger!.info( + `Field action (${action.name}) is missing multiplicity, ignoring` + ); + return; + } + if (action.name === 'Expression') { + // Expression is handled in special manner + return; + } + this.actions[action.multiplicity].push(action); + }); + this.sortFieldActionDefinitions(); + this.isInitialized = true; + resolve(true); + }) + .catch((error: any) => { + this.cfg.errorService.addBackendError( + `Could not load field action configs: (${error.message})`, + error + ); + resolve(false); + }); + }); + } + + getActionDefinitionForName( + actionName: string, + multiplicity?: Multiplicity + ): FieldActionDefinition | null { + if (!this.actions || !actionName) { + return null; + } + let actions: FieldActionDefinition[] = []; + if (multiplicity) { + actions = this.actions[multiplicity]; + } else { + Object.values(this.actions).forEach( + (arr) => (actions = actions.concat(arr)) + ); + } + for (const actionDef of actions) { + if (actionName === actionDef.name) { + return actionDef; + } + } + return null; + } + + /** + * Return the field action Definitions applicable to the specified field mapping pair. + * @param mapping + * @param isSource + * @param multiplicity + */ + getActionsAppliesToField( + mapping: MappingModel, + isSource: boolean = true, + multiplicity: Multiplicity = Multiplicity.ONE_TO_ONE + ): FieldActionDefinition[] { + if (!mapping || !this.actions) { + return []; + } + return this.actions[multiplicity].filter((d) => + this.appliesToField(d, mapping, isSource) + ); + } + + private doFetchFieldActions(): Promise { + return new Promise((resolve, reject) => { + const actionConfigs: FieldActionDefinition[] = []; + const url: string = + this.cfg.initCfg.baseMappingServiceUrl + 'fieldActions'; + this.cfg.logger!.debug('Field Action Config Request'); + this.api + .get(url, { headers: this.headers }) + .json() + .then((body) => { + this.cfg.logger!.debug( + `Field Action Config Response: ${JSON.stringify(body)}` + ); + if (body?.ActionDetails?.actionDetail?.length) { + for (const actionDetail of body.ActionDetails.actionDetail) { + const fieldActionConfig = + this.extractFieldActionDefinition(actionDetail); + actionConfigs.push(fieldActionConfig); + } + } + resolve(actionConfigs); + }) + .catch((error: any) => { + reject(error); + }); + }); + } + + private extractFieldActionDefinition( + actionDetail: IActionDetail + ): FieldActionDefinition { + this.cfg.logger!.trace( + `Deserializing field action definition: ${JSON.stringify(actionDetail)}` + ); + + const fieldActionDefinition = new FieldActionDefinition(); + fieldActionDefinition.name = actionDetail.name; + fieldActionDefinition.isCustom = actionDetail.custom; + fieldActionDefinition.sourceType = actionDetail.sourceType; + fieldActionDefinition.targetType = actionDetail.targetType; + fieldActionDefinition.method = actionDetail.method; + fieldActionDefinition.multiplicity = actionDetail.multiplicity; + fieldActionDefinition.serviceObject = actionDetail; + + if (actionDetail.actionSchema) { + for (const key of Object.keys(actionDetail.actionSchema.properties)) { + const propertyObject = actionDetail.actionSchema.properties[key]; + if (key === '@type') { + fieldActionDefinition.name = propertyObject.const; + continue; + } + const argTypeString = (propertyObject.type as string).toUpperCase(); + const argType = argTypeString + ? FieldType[argTypeString as keyof typeof FieldType] + : FieldType.STRING; + const argumentDefinition = new FieldActionArgument(); + argumentDefinition.name = key; + argumentDefinition.type = argType; + if (propertyObject.enum) { + argumentDefinition.values = propertyObject.enum; + } + argumentDefinition.serviceObject = propertyObject; + fieldActionDefinition.arguments.push(argumentDefinition); + } + } + return fieldActionDefinition; + } + + private sortFieldActionDefinitions() { + (Object.keys(this.actions) as [keyof typeof Multiplicity]).forEach( + (multiplicity) => { + const definitions = this.actions[multiplicity]; + const sortedActionDefinitions: FieldActionDefinition[] = []; + if (definitions == null || definitions.length === 0) { + return; + } + + const defsByName: { [key: string]: FieldActionDefinition[] } = {}; + const defNames: string[] = []; + for (const fieldActionConfig of definitions) { + const name: string = fieldActionConfig.name; + let sameNamedDefs: FieldActionDefinition[] = defsByName[name]; + if (!sameNamedDefs) { + sameNamedDefs = []; + defNames.push(name); + } + sameNamedDefs.push(fieldActionConfig); + defsByName[name] = sameNamedDefs; + } + + defNames.sort(); + + for (const name of defNames) { + const sameNamedDefs: FieldActionDefinition[] = defsByName[name]; + for (const fieldActionDefinition of sameNamedDefs) { + sortedActionDefinitions.push(fieldActionDefinition); + } + } + this.actions[multiplicity] = sortedActionDefinitions; + } + ); + } + + /** + * Return true if the action's source/target types and collection types match the respective source/target + * field properties for source transformations, or matches the respective target field properties only for + * a target transformation. + * + * @param action + * @param mapping + * @param isSource + */ + appliesToField( + action: FieldActionDefinition, + mapping: MappingModel, + isSource: boolean + ): boolean { + if (mapping == null) { + return false; + } + const selectedSourceField: Field = this.getActualField(mapping, true); + const selectedTargetField: Field = this.getActualField(mapping, false); + + if ( + (isSource && selectedSourceField == null) || + (!isSource && selectedTargetField == null) + ) { + return false; + } + + return isSource + ? this.appliesToSourceField(action, mapping, selectedSourceField) + : this.appliesToTargetField(action, mapping, selectedTargetField); + } + + /** + * Return the first non-padding field in either the source or target mappings. + * + * @param mapping + * @param isSource + */ + private getActualField(mapping: MappingModel, isSource: boolean): Field { + const targetField = mapping + .getFields(isSource) + .find((f) => f.name !== ''); + // TODO: maybe throw an exception instead of assuming the field will be found? + return targetField!; + } + + /** + * Check if it could be applied to source field. + * @param action + * @param _ + * @param selectedSourceField selected source field + */ + private appliesToSourceField( + action: FieldActionDefinition, + _: MappingModel, + selectedSourceField: Field + ): boolean { + // Check for matching types - date. + if (this.matchesDate(action.sourceType, selectedSourceField.type)) { + return true; + } + + // Check for matching types - numeric. + if (this.matchesNumeric(action.sourceType, selectedSourceField.type)) { + return true; + } + + // First check if the source types match. + if ( + action.sourceType === 'ANY' || + selectedSourceField.type === action.sourceType + ) { + return true; + } + + return false; + } + + /** + * Check if it could be applied for target field. Target type may not change. + * @param action + * @param _ + * @param selectedTargetField selected target field + */ + private appliesToTargetField( + action: FieldActionDefinition, + _: MappingModel, + selectedTargetField: Field + ): boolean { + if (selectedTargetField == null) { + return false; + } + + if (action.multiplicity !== Multiplicity.ONE_TO_ONE) { + return false; + } + + // Check for matching types - date. + if ( + this.matchesDate(action.sourceType, selectedTargetField.type) && + this.matchesDate(action.targetType, selectedTargetField.type) + ) { + return true; + } + + // Check for matching types - numeric. + if ( + this.matchesNumeric(action.sourceType, selectedTargetField.type) && + this.matchesNumeric(action.targetType, selectedTargetField.type) + ) { + return true; + } + + if ( + action.sourceType !== 'ANY' && + action.sourceType !== selectedTargetField.type + ) { + return false; + } + + // All other types must match the selected field types with the candidate field action types. + return ( + action.targetType === 'ANY' || + selectedTargetField.type === action.targetType + ); + } + + /** + * Return true if the candidate type and selected type are generically a date, false otherwise. + * + * @param candidateType + * @param selectedType + */ + private matchesDate(candidateType: string, selectedType: string): boolean { + return ( + candidateType === 'ANY' || + (candidateType === 'ANY_DATE' && + ['DATE', 'DATE_TIME', 'DATE_TIME_TZ', 'TIME'].indexOf(selectedType) !== + -1) + ); + } + + /** + * Return true if the candidate type and selected type are generically numeric, false otherwise. + * + * @param candidateType + * @param selectedType + */ + private matchesNumeric(candidateType: string, selectedType: string): boolean { + return ( + candidateType === 'ANY' || + (candidateType === 'NUMBER' && + [ + 'LONG', + 'INTEGER', + 'FLOAT', + 'DOUBLE', + 'SHORT', + 'BYTE', + 'DECIMAL', + 'NUMBER', + ].indexOf(selectedType) !== -1) + ); + } + + private clearActionDefinitions() { + (Object.keys(Multiplicity) as [keyof typeof Multiplicity]).forEach( + (m) => (this.actions[m] = []) + ); + } +} diff --git a/packages/ui/src/core/services/file-management.service.spec.ts b/packages/ui/src/core/services/file-management.service.spec.ts new file mode 100644 index 000000000..037616233 --- /dev/null +++ b/packages/ui/src/core/services/file-management.service.spec.ts @@ -0,0 +1,465 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { DocumentDefinition, MappingDefinition } from '../models'; +import { DocumentType, InspectionType } from '../contracts/common'; +import { TextDecoder, TextEncoder } from 'text-encoding'; + +import { ADMDigest } from '../contracts/adm-digest'; +import { CommonUtil } from '../utils/common-util'; +import { DocumentInitializationModel } from '../models/config.model'; +import { ErrorLevel } from '../models/error.model'; +import { FileManagementService } from './file-management.service'; +import FileSaver from 'file-saver'; +import { InitializationService } from './initialization.service'; +import { MAPPING_JSON_TYPE } from '../contracts/mapping'; +import fs from 'fs'; +import ky from 'ky'; +import log from 'loglevel'; +import { mocked } from 'ts-jest/utils'; +import pako from 'pako'; + +describe('FileManagementService', () => { + jest.mock('./initialization.service'); + const mockedInitService = mocked(InitializationService, true); + jest.mock('ky'); + const mockedKy = mocked(ky, true); + const service = new FileManagementService(ky); + jest.mock('file-saver'); + const mockedFileSaver = mocked(FileSaver); + jest.mock('../utils/common-util'); + const mockedCommonUtil = mocked(CommonUtil, true); + jest.mock('pako'); + const mockedPako = mocked(pako); + + beforeEach(() => { + const initService = new InitializationService(ky); + service.cfg = initService.cfg; + service.cfg.logger = log.getLogger('config'); + service.cfg.fileService = service; + }); + + test('findMappingFiles()', (done) => { + mockedKy.get = jest.fn().mockReturnValue( + new (class { + json(): Promise { + return Promise.resolve({ + StringMap: { + stringMapEntry: [ + { name: 'dummyMappingFile1' }, + { name: 'dummyMappingFile2' }, + ], + }, + }); + } + })() + ); + service + .findMappingFiles('UI') + .then((value) => { + expect(value.length).toBe(2); + expect(value[0]).toBe('dummyMappingFile1'); + expect(value[1]).toBe('dummyMappingFile2'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('findMappingFiles() server error', (done) => { + mockedKy.get = jest.fn().mockReturnValue( + new (class { + json(): Promise { + return Promise.reject('expected error'); + } + })() + ); + service + .findMappingFiles('UI') + .then(() => { + fail('expected to be rejected'); + }) + .catch((error) => { + expect(error).toMatch('expected error'); + const err = service.cfg.errorService.getErrors()[0]; + expect(err.level).toBe(ErrorLevel.ERROR); + expect(err.message.indexOf('current mapping files')).toBeGreaterThan(0); + done(); + }); + }); + + test('getCurrentMappingDigest()', (done) => { + mockedKy.get = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new TextEncoder().encode('test text')); + } + })() + ); + mockedPako.inflate = jest.fn().mockReturnValue('dummy'); + mockedCommonUtil.objectize = jest.fn().mockReturnValue({} as ADMDigest); + service + .getCurrentMappingDigest() + .then((value) => { + expect(value?.exportMappings).toBeUndefined(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('getCurrentMappingDigest() server error', (done) => { + mockedKy.get = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.reject('expected error'); + } + })() + ); + service + .getCurrentMappingDigest() + .then(() => { + fail('expected to be rejected'); + }) + .catch((error) => { + expect(error).toMatch('expected error'); + const err = service.cfg.errorService.getErrors()[0]; + expect(err.level).toBe(ErrorLevel.ERROR); + expect(err.message.indexOf('Mapping digest file')).toBeGreaterThan(0); + done(); + }); + }); + + test('getCurrentADMArchive()', (done) => { + mockedKy.get = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new TextEncoder().encode('test text')); + } + })() + ); + service + .getCurrentADMArchive() + .then((value) => { + expect(new TextDecoder().decode(value!)).toMatch('test text'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('getCurrentADMArchive() server error', (done) => { + mockedKy.get = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.reject('expected error'); + } + })() + ); + service + .getCurrentADMArchive() + .then(() => { + fail('expected to be rejected'); + }) + .catch((error) => { + expect(error).toMatch('expected error'); + const err = service.cfg.errorService.getErrors()[0]; + expect(err.level).toBe(ErrorLevel.ERROR); + expect(err.message.indexOf('ADM archive file')).toBeGreaterThan(0); + done(); + }); + }); + + test('resetMappings()', (done) => { + mockedKy.delete = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })() + ); + service.resetMappings().then((value) => { + expect(value).toBeTruthy(); + done(); + }); + }); + + test('resetMappings() server error', (done) => { + mockedKy.delete = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.reject('expected error'); + } + })() + ); + service + .resetMappings() + .then(() => { + const err = service.cfg.errorService.getErrors()[0]; + expect(err.level).toBe(ErrorLevel.ERROR); + expect(err.message.indexOf('resetting mappings')).toBeGreaterThan(0); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('resetLibs()', (done) => { + mockedKy.delete = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })() + ); + service.resetLibs().then((value) => { + expect(value).toBeTruthy(); + done(); + }); + }); + + test('resetLibs() server error', (done) => { + mockedKy.delete = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.reject('expected error'); + } + })() + ); + service + .resetLibs() + .then(() => { + const err = service.cfg.errorService.getErrors()[0]; + expect(err.level).toBe(ErrorLevel.ERROR); + expect(err.message.indexOf('JAR libraries')).toBeGreaterThan(0); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('setMappingToService()', (done) => { + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })() + ); + const mappingJson = { AtlasMapping: { jsonType: MAPPING_JSON_TYPE } }; + service + .setMappingToService(mappingJson) + .then((value) => { + expect(value).toBeTruthy(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('setMappingToService() server error', (done) => { + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.reject('expected error'); + } + })() + ); + const mappingJson = { AtlasMapping: { jsonType: MAPPING_JSON_TYPE } }; + service + .setMappingToService(mappingJson) + .then((value) => { + expect(value).toBeFalsy(); + const err = service.cfg.errorService.getErrors()[0]; + expect(err.level).toBe(ErrorLevel.ERROR); + expect( + err.message.indexOf('Unable to update the mappings file') + ).toBeGreaterThanOrEqual(0); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('importADMArchive()', (done) => { + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })() + ); + const binary = new TextEncoder().encode('dummy binary'); + service + .importADMArchive(new File([new Blob([binary])], 'dummy.adm')) + .then((value) => { + expect(value).toBeTruthy(); + done(); + }); + }); + + test('setDigestFileToService()', (done) => { + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })() + ); + const digest = {} as ADMDigest; + service + .setMappingDigestToService(digest) + .then((value) => { + expect(value).toBeTruthy(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('setDigestFileToService() server error', (done) => { + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.reject('expected error'); + } + })() + ); + const digest = {} as ADMDigest; + service.setMappingDigestToService(digest).then((value) => { + expect(value).toBeFalsy(); + const err = service.cfg.errorService.getErrors()[0]; + expect(err.level).toBe(ErrorLevel.ERROR); + expect( + err.message.indexOf('Unable to update the Mapping digest file') + ).toBeGreaterThanOrEqual(0); + done(); + }); + }); + + test('importJarFile()', (done) => { + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(Buffer.from('')); + } + })() + ); + const binary = new TextEncoder().encode('dummy binary'); + service.importJarFile(binary).then((value) => { + expect(value).toBeTruthy(); + done(); + }); + }); + + test('exportADMArchive()', (done) => { + // put digest file + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })() + ); + // get ADM archive file + mockedKy.get = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve( + fs.readFileSync( + `${__dirname}/../../../../test-resources/adm/mockdoc.adm` + ) + ); + } + json(): Promise { + return Promise.resolve({ AtlasMapping: {} }); + } + })() + ); + mockedFileSaver.saveAs = jest.fn().mockImplementation((_data) => {}); + service.cfg.mappings = new MappingDefinition(); + const srcDoc = new DocumentDefinition(); + srcDoc.name = 'dummy source document'; + srcDoc.inspectionType = InspectionType.SCHEMA; + srcDoc.inspectionSource = 'dummy schema'; + + const srcCSVDoc = new DocumentDefinition(); + srcCSVDoc.name = 'dummy CSV source document'; + srcCSVDoc.inspectionType = InspectionType.UNKNOWN; + srcCSVDoc.inspectionSource = 'dummy CSV'; + srcCSVDoc.initModel = new DocumentInitializationModel(); + srcCSVDoc.initModel.isSource = true; + srcCSVDoc.initModel.type = DocumentType.CSV; + + const tgtDoc = new DocumentDefinition(); + tgtDoc.name = 'dummy target document'; + tgtDoc.inspectionType = InspectionType.SCHEMA; + tgtDoc.inspectionSource = 'dummy schema'; + + service.cfg.sourceDocs.push(srcDoc); + service.cfg.sourceDocs.push(srcCSVDoc); + service.cfg.targetDocs.push(tgtDoc); + service + .exportADMArchive('atlasmap-mapping.adm') + .then((value) => { + expect(value).toBeTruthy(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('importADMArchive()', (done) => { + mockedCommonUtil.readBinaryFile = jest + .fn() + .mockResolvedValue( + fs.readFileSync( + `${__dirname}/../../../../test-resources/adm/mockdoc.adm` + ) + ); + // put ADM archive file + mockedKy.put = jest.fn().mockReturnValue( + new (class { + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })() + ); + mockedInitService.prototype.initialize = jest + .fn() + .mockImplementation(() => {}); + const buf = fs.readFileSync( + `${__dirname}/../../../../test-resources/json/schema/mock-json-schema.json` + ); + service + .importADMArchive(new File([new Blob([buf])], 'atlasmap-mapping.adm')) + .then((value) => { + expect(value).toBeTruthy(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); +}); diff --git a/packages/ui/src/core/services/file-management.service.ts b/packages/ui/src/core/services/file-management.service.ts new file mode 100644 index 000000000..7da480ee2 --- /dev/null +++ b/packages/ui/src/core/services/file-management.service.ts @@ -0,0 +1,560 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { + IAtlasMappingContainer, + IStringMapContainer, +} from '../contracts/mapping'; +import { gzip, inflate } from 'pako'; + +import { ADMDigest } from '../contracts/adm-digest'; +import { CommonUtil } from '../utils/common-util'; +import { ConfigModel } from '../models/config.model'; +import { HTTP_STATUS_NO_CONTENT } from '../common/config.types'; +import { MappingDigestUtil } from '../utils/mapping-digest-util'; +import ky from 'ky'; +import log from 'loglevel'; + +export enum FileName { + DIGEST = 'Mapping digest file', + ADM = 'ADM archive file', + JAR = 'Jar file', +} + +export enum FileType { + DIGEST = 'GZ', + ADM = 'ZIP', + JAR = 'JAR', +} + +/** + * Handles file manipulation stored in the backend, including import/export via UI. + */ +export class FileManagementService { + _cfg!: ConfigModel; + + constructor(private api: typeof ky) {} + + get cfg() { + return this._cfg; + } + + set cfg(cfg: ConfigModel) { + this._cfg = cfg; + if (!this._cfg.logger) { + this._cfg.logger = log.getLogger('file-management'); + } + } + + findMappingFiles(filter: string): Promise { + return new Promise((resolve, reject) => { + const url = + this.cfg.initCfg.baseMappingServiceUrl + + 'mappings' + + (filter == null ? '' : '?filter=' + filter); + this.cfg.logger!.debug('Mapping List Request'); + this.api + .get(url) + .json() + .then((body) => { + this.cfg.logger!.debug( + `Mapping List Response: ${JSON.stringify(body)}` + ); + const entries = body.StringMap.stringMapEntry; + resolve(entries.map((item) => item.name)); + }) + .catch((error: any) => { + if (error.status !== HTTP_STATUS_NO_CONTENT) { + this.cfg.errorService.addBackendError( + 'Error occurred while accessing the current mapping files from the runtime service.', + error + ); + reject(error); + } + }); + }); + } + + /** + * Retrieve the current user data mappings digest file from the server as a GZIP compressed byte array buffer. + */ + getCurrentMappingDigest(): Promise { + return new Promise((resolve, reject) => { + this.getCurrentFile(FileName.DIGEST, FileType.DIGEST) + .then((gzipped) => { + if (!gzipped) { + resolve(null); + return; + } + const gunzipped = inflate(gzipped); + const stringified = new Uint8Array(gunzipped).reduce( + (data, byte) => data + String.fromCharCode(byte), + '' + ); + const admDigest = CommonUtil.objectize(stringified); + resolve(admDigest); + }) + .catch((error) => { + reject(error); + }); + }); + } + + getCurrentADMArchive(): Promise { + return this.getCurrentFile(FileName.ADM, FileType.ADM); + } + + private getCurrentFile( + fileName: string, + fileType: string + ): Promise { + return new Promise((resolve, reject) => { + const url = `${this.cfg.initCfg.baseMappingServiceUrl}mapping/${fileType}/`; + this.cfg.logger!.debug(`Get Current ${fileName} Request: ${url}`); + const headers = { + 'Content-Type': 'application/octet-stream', + Accept: 'application/octet-stream', + 'Response-Type': 'application/octet-stream', + }; + this.api + .get(url, { headers }) + .arrayBuffer() + .then((body: ArrayBuffer) => { + this.cfg.logger!.debug( + `Get Current ${fileName} Response: ${JSON.stringify(body)}` + ); + if (body.byteLength) { + resolve(new Uint8Array(body)); + } else { + resolve(null); + } + }) + .catch((error: any) => { + if (error.status !== HTTP_STATUS_NO_CONTENT) { + this.cfg.errorService.addBackendError( + `Error occurred while accessing the ${fileName} from the runtime service.`, + error + ); + reject(error); + } + }); + }); + } + + /** + * Delete mapping files on the runtime. + */ + resetMappings(): Promise { + return new Promise((resolve) => { + const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/RESET'; + this.cfg.logger!.debug('Reset Mappings Request'); + this.api + .delete(url) + .arrayBuffer() + .then((res: any) => { + this.cfg.logger!.debug( + `Reset Mappings Response: ${JSON.stringify(res)}` + ); + resolve(true); + return res; + }) + .catch((error: any) => { + this.cfg.errorService.addBackendError( + 'Error occurred while resetting mappings.', + error + ); + resolve(false); + }); + }); + } + + /** + * Delete user-defined JAR library files on the runtime. + */ + resetLibs(): Promise { + return new Promise((resolve) => { + const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/resetLibs'; + this.cfg.logger!.debug('Reset Libs Request'); + this.api + .delete(url) + .arrayBuffer() + .then((res: any) => { + this.cfg.logger!.debug(`Reset Libs Response: ${JSON.stringify(res)}`); + resolve(true); + return res; + }) + .catch((error: any) => { + this.cfg.errorService.addBackendError( + 'Error occurred while resetting user-defined JAR libraries.', + error + ); + resolve(false); + }); + }); + } + + /** + * Clear error service and delete jar libraries, documents and mappings. + */ + resetAll(): Promise { + return new Promise((resolve) => { + this.cfg.errorService.resetAll(); + this.cfg.fileService + .resetMappings() + .then(async () => { + this.cfg.mappings = null; + this.cfg.clearDocs(); + this.cfg.fileService + .resetLibs() + .then((value) => { + resolve(value); + }) + .catch((error) => { + this.cfg.errorService.addBackendError( + `Failed to remove jar files: ${error.message}`, + error + ); + resolve(false); + }); + }) + .catch((error) => { + this.cfg.errorService.addBackendError( + `Failed to remove mappings: ${error.message}`, + error + ); + resolve(false); + }); + }); + } + + /** + * Commit the specified AtlasMapping object to the runtime service. The mappings + * are kept separate so they can be updated with minimal overhead. + * + * @param buffer - The stringified AtlasMapping JSON + */ + setMappingToService( + atlasMappingContainer: IAtlasMappingContainer + ): Promise { + const jsonBuffer = JSON.stringify(atlasMappingContainer); + return this.setMappingStringToService(jsonBuffer); + } + + /** + * Commit the specified AtlasMapping JSON user mapping string to the runtime service. The mappings + * are kept separate so they can be updated with minimal overhead. + * + * @param buffer - The stringified AtlasMapping JSON + */ + setMappingStringToService(jsonBuffer: string): Promise { + return new Promise((resolve) => { + const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/JSON'; + const headers = { + 'Content-Type': 'application/json', + Accept: 'application/json', + 'Response-Type': 'application/json', + }; + this.cfg.logger!.debug( + `Set Mapping Request (set mapping): ${jsonBuffer}` + ); + this.api + .put(url, { headers, body: jsonBuffer }) + .arrayBuffer() + .then((res) => { + this.cfg.logger!.debug( + `Set Mapping Response: ${JSON.stringify(res)}` + ); + resolve(true); + }) + .catch((error: any) => { + this.cfg.errorService.addBackendError( + `Unable to update the mappings file to the AtlasMap design runtime service. ${error.status} ${error.statusText}`, + error + ); + resolve(false); + }); + }); + } + + setMappingDigestToService(mappingDigest: ADMDigest): Promise { + return new Promise((resolve) => { + // Compress the JSON buffer - write out as binary. + const strBuffer = JSON.stringify(mappingDigest); + const binBuffer = CommonUtil.str2bytes(strBuffer); + let compressedBuffer: Uint8Array; + try { + compressedBuffer = gzip(binBuffer); + } catch (error1) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: 'Unable to compress the current data mappings.', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: error1, + }) + ); + resolve(false); + return; + } + // Update .../target/mappings/adm-catalog-files.gz + const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/GZ/0'; + const fileContent: Blob = new Blob([compressedBuffer], { + type: 'application/octet-stream', + }); + this.setBinaryFileToService(fileContent, url, FileName.DIGEST).then( + (value) => { + resolve(value); + } + ); + }); + } + + private setADMArchiveFileToService( + compressedBuffer: BlobPart + ): Promise { + const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/ZIP/'; + const fileContent: Blob = new Blob([compressedBuffer], { + type: 'application/octet-stream', + }); + return this.setBinaryFileToService(fileContent, url, FileName.ADM); + } + + /** + * The user has either exported their mappings or imported new mappings. + * Either way we're saving them on the server. + * + * @param compressedBuffer + */ + private setBinaryFileToService( + compressedBuffer: BlobPart, + url: string, + fileName: FileName + ): Promise { + return new Promise((resolve) => { + this.cfg.logger!.debug(`Set ${fileName} Request`); + this.api + .put(url, { body: compressedBuffer }) + .arrayBuffer() + .then((res) => { + this.cfg.logger!.debug( + `Set ${fileName} Response: ${JSON.stringify(res)}` + ); + resolve(true); + }) + .catch((error: any) => { + this.cfg.errorService.addBackendError( + `Unable to update the ${fileName} to the AtlasMap design runtime service. + ${error.status} ${error.statusText}`, + error + ); + resolve(false); + }); + }); + } + + /** + * Push a user-defined Java archive file (JAR binary buffer) to the runtime. + * + * @param binaryBuffer - binary JAR file + */ + importJarFile(binaryBuffer: BlobPart): Promise { + return new Promise(async (resolve) => { + const url = this.cfg.initCfg.baseMappingServiceUrl + 'library'; + const fileContent: Blob = new Blob([binaryBuffer], { + type: 'application/octet-stream', + }); + const jarUpdated = await this.setBinaryFileToService( + fileContent, + url, + FileName.JAR + ); + if (jarUpdated && this.cfg.mappingService) { + this.cfg.mappingService.notifyMappingUpdated(); + await this.cfg.fieldActionService.fetchFieldActions(); + resolve(true); + } else { + resolve(false); + } + }); + } + + /** + * Generate mapping digest file from current state and push it to the runtime. + * + * @returns {@link Promise} + */ + updateDigestFile(): Promise { + return new Promise(async (resolve) => { + try { + let mappingJson = undefined; + // Retrieve the JSON mappings buffer from the server. + if (this.cfg.mappings) { + mappingJson = await this.getCurrentMappingJson(); + } + const mappingDigest = MappingDigestUtil.generateMappingDigest( + this.cfg, + mappingJson + ); + + // Save mapping digest file to the runtime. + this.setMappingDigestToService(mappingDigest).then((value) => { + resolve(value); + }); + } catch (error) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: 'Unable to update mapping digest file.', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: error, + }) + ); + resolve(false); + return; + } + }); + } + + /** + * Update the current mapping files and export the ADM archive file with current mappings. + * + * Establish the mapping digest file content in JSON format (mappings + schema + instance-schema), + * compress it (GZIP), update the runtime, then fetch the full ADM archive ZIP file from the runtime + * and export it. + * + * @param event + */ + exportADMArchive(mappingsFileName: string): Promise { + return new Promise((resolve) => { + this.updateDigestFile().then(() => { + // Fetch the full ADM archive file from the runtime (ZIP) and export it to to the local + // downloads area. + this.getCurrentADMArchive().then(async (value: Uint8Array | null) => { + // If value is null then no compressed mappings digest file is available on the server. + if (value === null) { + resolve(false); + return; + } + // Tack on a .adm suffix if one wasn't already specified. + if (mappingsFileName.split('.').pop() !== 'adm') { + mappingsFileName = mappingsFileName.concat('.adm'); + } + const fileContent = new Blob([value], { + type: 'application/octet-stream', + }); + CommonUtil.writeFile(fileContent, mappingsFileName) + .then((value2) => { + resolve(value2); + }) + .catch((error) => { + this.cfg.errorService.addError( + new ErrorInfo({ + message: 'Unable to save the current data mappings.', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: error, + }) + ); + resolve(false); + }); + }); + }); + }); + } + + /** + * Clean up all existing mappings, documents, libraries and import specified ADM archive file, + * push it to the runtime and reflect back in UI. The ADM file is in (ZIP) file format. + * Once pushed, we can retrieve from runtime the extracted compressed (GZIP) mappings + * digest file as well as the mappings JSON file. These files exist separately for performance reasons. + * + * Once the runtime has its ADM archive file, digest file and mappings file set then restart the DM. + * + * @param mappingsFileName - ADM archive file + */ + importADMArchive(admFile: File): Promise { + return new Promise((resolve) => { + this.resetAll().then(() => { + const reader = new FileReader(); + + // Turn the imported ADM file into a binary octet stream. + CommonUtil.readBinaryFile(admFile, reader) + .then((fileBin) => { + // Push the binary stream to the runtime. + this.setADMArchiveFileToService(fileBin).then((value) => { + resolve(value); + }); + }) + .catch((error) => { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `Unable to import the specified ADM file '${admFile.name}'`, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: error, + }) + ); + resolve(false); + }); + }); + }); + } + + /** + * Retrieve the current user AtlasMap data mappings from the server as a JSON object. + */ + getCurrentMappingJson(): Promise { + return new Promise((resolve, reject) => { + if (this.cfg.mappings === null) { + reject(); + return; + } + this.cfg.mappingFiles[0] = this.cfg.mappings.name!; + const baseURL: string = + this.cfg.initCfg.baseMappingServiceUrl + 'mapping/JSON/'; + this.cfg.logger!.debug('Get Current Mapping Request'); + this.api + .get(baseURL) + .json() + .then((body) => { + this.cfg.logger!.debug( + `Get Current Mapping Response: ${JSON.stringify(body)}` + ); + resolve(body); + }) + .catch((error: any) => { + if (error.status !== HTTP_STATUS_NO_CONTENT) { + this.cfg.errorService.addBackendError( + 'Error occurred while accessing the current mappings from the backend service.', + error + ); + reject(error); + } else { + resolve(undefined); + } + }); + }); + } +} diff --git a/packages/ui/src/core/services/index.ts b/packages/ui/src/core/services/index.ts new file mode 100644 index 000000000..3e0dc5b3e --- /dev/null +++ b/packages/ui/src/core/services/index.ts @@ -0,0 +1,22 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './document-management.service'; +export * from './error-handler.service'; +export * from './field-action.service'; +export * from './file-management.service'; +export * from './initialization.service'; +export * from './mapping-expression.service'; +export * from './mapping-management.service'; diff --git a/packages/ui/src/core/services/initialization.service.spec.ts b/packages/ui/src/core/services/initialization.service.spec.ts new file mode 100644 index 000000000..5adb1a296 --- /dev/null +++ b/packages/ui/src/core/services/initialization.service.spec.ts @@ -0,0 +1,340 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + DocumentType, + IStringContainer, + InspectionType, +} from '../contracts/common'; + +import { DocumentInitializationModel } from '../models/config.model'; +import { InitializationService } from '../services/initialization.service'; +import { Subject } from 'rxjs'; +import { TextEncoder } from 'text-encoding'; +import atlasmapFieldActionJson from '../../../../test-resources/fieldActions/atlasmap-field-action.json'; +import atlasmapInspectionMockJsonInstanceJson from '../../../../test-resources/inspected/atlasmap-inspection-mock-json-instance.json'; +import atlasmapInspectionMockJsonSchemaJson from '../../../../test-resources/inspected/atlasmap-inspection-mock-json-schema.json'; +import atlasmapInspectionMockXmlInstance1Json from '../../../../test-resources/inspected/atlasmap-inspection-mock-xml-instance-1.json'; +import atlasmapInspectionMockXmlSchema1Json from '../../../../test-resources/inspected/atlasmap-inspection-mock-xml-schema-1.json'; +import atlasmapInspectionOldActionSourceJson from '../../../../test-resources/inspected/atlasmap-inspection-old-action-source.json'; +import atlasmapInspectionOldActionTargetJson from '../../../../test-resources/inspected/atlasmap-inspection-old-action-target.json'; +import atlasmappingCvsToJson from '../../../../test-resources/mapping/atlasmapping-cvs-to-json.json'; +import atlasmappingOldActionJson from '../../../../test-resources/mapping/atlasmapping-old-action.json'; +import ky from 'ky'; +import { take } from 'rxjs/operators'; + +describe('InitializationService', () => { + let service: InitializationService; + + beforeEach(() => { + service = new InitializationService(ky); + }); + + afterEach(() => { + service.cfg.clearDocs(); + if (service.cfg.mappings) { + service.cfg.mappings.mappings = []; + } + }); + + test('runtimeServiceActive()', (done) => { + spyOn(ky, 'get').and.returnValue( + new (class { + json(): Promise { + return Promise.resolve({ String: 'pong' }); + } + })() + ); + service + .runtimeServiceActive() + .then((value) => { + expect(value).toBeTruthy(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('getRuntimeVersion()', (done) => { + spyOn(ky, 'get').and.returnValue( + new (class { + json(): Promise { + return Promise.resolve({ String: '10.9.8' }); + } + })() + ); + service + .getRuntimeVersion() + .then((value) => { + expect(value).toBe('10.9.8'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('initialize() load document definitions', (done) => { + const c = service.cfg; + c.initCfg.baseMappingServiceUrl = 'dummy'; + c.initCfg.baseJSONInspectionServiceUrl = 'dummy'; + c.initCfg.baseXMLInspectionServiceUrl = 'dummy'; + c.initCfg.baseCSVInspectionServiceUrl = 'dummy'; + const sourceJson = new DocumentInitializationModel(); + sourceJson.isSource = true; + sourceJson.type = DocumentType.JSON; + sourceJson.inspectionType = InspectionType.SCHEMA; + sourceJson.inspectionResult = JSON.stringify( + atlasmapInspectionMockJsonSchemaJson + ); + c.addDocument(sourceJson); + const sourceXml = new DocumentInitializationModel(); + sourceXml.isSource = true; + sourceXml.type = DocumentType.XML; + sourceXml.inspectionType = InspectionType.INSTANCE; + sourceXml.inspectionResult = JSON.stringify( + atlasmapInspectionMockXmlInstance1Json + ); + c.addDocument(sourceXml); + const targetJson = new DocumentInitializationModel(); + targetJson.isSource = false; + targetJson.type = DocumentType.JSON; + targetJson.inspectionType = InspectionType.INSTANCE; + targetJson.inspectionResult = JSON.stringify( + atlasmapInspectionMockJsonInstanceJson + ); + c.addDocument(targetJson); + const targetXml = new DocumentInitializationModel(); + targetXml.isSource = false; + targetXml.type = DocumentType.XML; + targetXml.inspectionType = InspectionType.SCHEMA; + targetXml.inspectionResult = JSON.stringify( + atlasmapInspectionMockXmlSchema1Json + ); + c.addDocument(targetXml); + spyOn(service, 'runtimeServiceActive').and.returnValue( + Promise.resolve(true) + ); + return service + .initialize() + .then(() => { + expect(c.sourceDocs[0].fields[0].path).toEqual('/addressList<>'); + expect(c.sourceDocs[1].fields[0].path).toEqual('/data'); + expect(c.targetDocs[0].fields[0].path).toEqual('/addressList<>'); + expect(c.targetDocs[1].fields[0].path).toEqual('/data'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('initialize() load mapping definition', (done) => { + const cfg = service.cfg; + cfg.clearDocs(); + cfg.initCfg.baseMappingServiceUrl = 'dummy'; + cfg.initCfg.baseJSONInspectionServiceUrl = 'dummy'; + cfg.initCfg.baseXMLInspectionServiceUrl = 'dummy'; + cfg.initCfg.baseCSVInspectionServiceUrl = 'dummy'; + cfg.preloadedFieldActionMetadata = JSON.stringify(atlasmapFieldActionJson); + + const source = new DocumentInitializationModel(); + source.isSource = true; + source.type = DocumentType.JSON; + source.inspectionType = InspectionType.SCHEMA; + source.id = 'old-action-source'; + source.inspectionResult = JSON.stringify( + atlasmapInspectionOldActionSourceJson + ); + cfg.addDocument(source); + const target = new DocumentInitializationModel(); + target.isSource = false; + target.type = DocumentType.JSON; + target.inspectionType = InspectionType.SCHEMA; + target.id = 'old-action-target'; + target.inspectionResult = JSON.stringify( + atlasmapInspectionOldActionTargetJson + ); + cfg.addDocument(target); + cfg.preloadedMappingJson = JSON.stringify(atlasmappingOldActionJson); + + spyOn(service, 'runtimeServiceActive').and.returnValue( + Promise.resolve(true) + ); + spyOn(cfg.fileService, 'getCurrentMappingDigest').and.returnValue( + Promise.resolve(null) + ); + service.systemInitialized$.subscribe(() => { + expect(cfg.sourceDocs[0].fields.length).toEqual(1); + expect(cfg.sourceDocs[0].fields[0].path).toEqual('/<>'); + expect(cfg.targetDocs[0].fields[0].path).toEqual('/id'); + expect(cfg.mappings?.mappings?.length).toEqual(1); + const mapping = cfg.mappings?.mappings[0]; + expect(mapping?.sourceFields?.length).toEqual(1); + const sourceField = mapping?.sourceFields[0]; + expect(sourceField?.field).toBeTruthy(); + expect(mapping?.targetFields?.length).toEqual(1); + const targetField = mapping?.targetFields[0]; + expect(targetField?.field).toBeTruthy(); + expect(cfg.errorService.getErrors().length).toEqual(0); + done(); + }); + service.initialize().catch((error) => { + fail(error); + }); + }); + + test('initializeWithADMArchiveFile()', (done) => { + const spyImportAdm = spyOn( + service.cfg.fileService, + 'importADMArchive' + ).and.returnValue(Promise.resolve(true)); + const spyInitialize = spyOn(service, 'initialize').and.returnValue( + Promise.resolve(true) + ); + const binary = new TextEncoder().encode('dummy binary'); + service + .initializeWithADMArchiveFile(new File([new Blob([binary])], 'dummy.adm')) + .then((value) => { + expect(value).toBeTruthy(); + expect(spyImportAdm.calls.count()).toBe(1); + expect(spyInitialize.calls.count()).toBe(1); + done(); + }); + }); + + test('resetAtlasMap()', (done) => { + const spyResetAll = spyOn( + service.cfg.fileService, + 'resetAll' + ).and.returnValue(Promise.resolve(true)); + const spyInitialize = spyOn(service, 'initialize').and.returnValue( + Promise.resolve(true) + ); + service.resetAtlasMap().then((value) => { + expect(value).toBeTruthy(); + expect(spyResetAll.calls.count()).toBe(1); + expect(spyInitialize.calls.count()).toBe(1); + done(); + }); + }); + + // repeat the test three times to test that the notifications are sent only once, + // i.e. that they do not exponentially accumulate, that's why we use the singleton + // service here, as initialization service is usually a singleton at runtime: + const serviceNotificationCase = new InitializationService(ky); + test.each([1, 2, 3])( + 'notify of mapping changes upon inspection in initialization run(%i)', + (_, done: any) => { + const c = serviceNotificationCase.cfg; + c.initCfg.baseMappingServiceUrl = 'dummy'; + c.initCfg.baseJSONInspectionServiceUrl = 'dummy'; + c.initCfg.baseXMLInspectionServiceUrl = 'dummy'; + c.initCfg.baseCSVInspectionServiceUrl = 'dummy'; + + const source = new DocumentInitializationModel(); + source.isSource = true; + source.type = DocumentType.CSV; + source.inspectionType = InspectionType.INSTANCE; + source.id = 'source'; + source.inspectionSource = '1,2,3'; + source.inspectionParameters = { + format: 'Default', + headers: 'D,I,F,F,E,R,E,N,T', + }; + source.inspectionResult = `{ + "CsvInspectionResponse": { + "jsonType": "io.atlasmap.csv.v2.CsvInspectionResponse", + "csvDocument": { + "jsonType": "io.atlasmap.v2.Document", + "fields": { + "field": [ + { + "jsonType": "io.atlasmap.csv.v2.CsvComplexType", + "collectionType": "LIST", + "path": "/<>", + "fieldType": "COMPLEX", + "name": "", + "csvFields": { + "csvField": [ + { + "jsonType": "io.atlasmap.csv.v2.CsvField", + "path": "/<>/A", + "fieldType": "STRING", + "name": "A" + }, + { + "jsonType": "io.atlasmap.csv.v2.CsvField", + "path": "/<>/B", + "fieldType": "STRING", + "name": "B" + }, + { + "jsonType": "io.atlasmap.csv.v2.CsvField", + "path": "/<>/C", + "fieldType": "STRING", + "name": "C" + } + ] + } + } + ] + } + }, + "executionTime": 0 + } + }`; + c.addDocument(source); + + const target = new DocumentInitializationModel(); + target.isSource = false; + target.id = 'target'; + target.type = DocumentType.JSON; + target.inspectionResult = JSON.stringify( + atlasmapInspectionMockJsonInstanceJson + ); + c.addDocument(target); + + c.preloadedMappingJson = JSON.stringify(atlasmappingCvsToJson); + + spyOn(serviceNotificationCase, 'runtimeServiceActive').and.callFake( + async () => { + c.fieldActionService.isInitialized = true; + return true; + } + ); + + const notified = new Subject(); + const notifyMappingUpdatedSpy = spyOn( + c.mappingService, + 'notifyMappingUpdated' + ).and.callFake(() => notified.next()); + + serviceNotificationCase + .initialize() + .then(() => { + // we take two (at most), but we expect only one + notified.pipe(take(2)).subscribe(() => { + expect(notifyMappingUpdatedSpy.calls.count()).toBe(1); + done(); + }); + }) + .catch((error) => { + fail(error); + }); + } + ); +}); diff --git a/packages/ui/src/core/services/initialization.service.ts b/packages/ui/src/core/services/initialization.service.ts new file mode 100644 index 000000000..20dc2d78c --- /dev/null +++ b/packages/ui/src/core/services/initialization.service.ts @@ -0,0 +1,436 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { DocumentType, IStringContainer } from '../contracts/common'; +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { Observable, Subject } from 'rxjs'; + +import { ADMDigest } from '../contracts/adm-digest'; +import { CommonUtil } from '../utils/common-util'; +import { ConfigModel } from '../models/config.model'; +import { DocumentManagementService } from './document-management.service'; +import { ErrorHandlerService } from './error-handler.service'; +import { FieldActionService } from './field-action.service'; +import { FileManagementService } from './file-management.service'; +import { LookupTableUtil } from '../utils/lookup-table-util'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { MappingExpressionService } from './mapping-expression.service'; +import { MappingManagementService } from './mapping-management.service'; +import { MappingPreviewService } from './mapping-preview.service'; +import { MappingSerializer } from '../utils/mapping-serializer'; +import { MappingUtil } from '../utils/mapping-util'; +import { first } from 'rxjs/operators'; +import ky from 'ky'; +import log from 'loglevel'; + +log.setDefaultLevel(log.levels.WARN); + +/** + * Initialize AtlasMap UI core library. It initializes {@link ConfigModel} and core services. + */ +export class InitializationService { + cfg: ConfigModel = ConfigModel.getConfig(); + + systemInitializedSource = new Subject(); + systemInitialized$: Observable = + this.systemInitializedSource.asObservable(); + + initializationStatusChangedSource = new Subject(); + initializationStatusChanged$: Observable = + this.initializationStatusChangedSource.asObservable(); + + constructor() { + } + + resetConfig(): void { + this.cfg = new ConfigModel(); + this.cfg.documentService = this.documentService; + this.cfg.documentService.cfg = this.cfg; + this.cfg.mappingService = this.mappingService; + this.cfg.mappingService.cfg = this.cfg; + this.cfg.errorService = this.errorService; + this.cfg.fieldActionService = this.fieldActionService; + this.cfg.fieldActionService.cfg = this.cfg; + this.cfg.fileService = this.fileService; + this.cfg.fileService.cfg = this.cfg; + this.cfg.previewService = this.previewService; + this.cfg.previewService.cfg = this.cfg; + this.cfg.expressionService = this.expressionService; + this.cfg.expressionService.cfg = this.cfg; + this.cfg.initializationService = this; + this.cfg.logger = log.getLogger('config'); + ConfigModel.setConfig(this.cfg); + } + + initialize(): Promise { + return new Promise(async (resolve) => { + this.cfg.setConstantPropertyDocs(); + this.cfg.errorService.resetAll(); + this.cfg.fieldActionService.isInitialized = false; + this.cfg.initCfg.initialized = false; + this.cfg.initCfg.mappingInitialized = false; + + if (this.cfg.mappingService == null) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: + 'Mapping service is not configured, validation service will not be used.', + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + }) + ); + } else if (this.cfg.initCfg.baseMappingServiceUrl == null) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: + 'Mapping service URL is not configured, validation service will not be used.', + level: ErrorLevel.WARN, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + }) + ); + } + + if (!this.cfg.fieldActionService) { + this.handleError('FieldActionService is not configured'); + resolve(false); + return; + } + + // Verify the runtime service is out there. + try { + if (!(await this.runtimeServiceActive())) { + this.handleError('The AtlasMap runtime service is not available.'); + resolve(false); + return; + } + } catch (error) { + this.handleError('The AtlasMap runtime service is not available.'); + resolve(false); + return; + } + + // load documents from initialization parameters in embedded mode + this.updateLoadingStatus('Loading source/target documents.'); + const allDocs = this.cfg.getAllDocs(); + // assumption is that there will be at least one document present + const lastDoc = allDocs[allDocs.length - 1]; + this.cfg.documentService + .inspectDocuments() + // inspectedDocuments notifies for all documents, wait till the last document + .pipe(first((d) => d === lastDoc)) + .subscribe({ + next: () => { + // updateStatus() will nullify this.cfg.preloadedMappingJson + // let's store it for comparisson below + const preloadedMappingJson = this.cfg.preloadedMappingJson; + this.updateStatus(); + this.systemInitializedSource.pipe(first()).subscribe(() => { + if (preloadedMappingJson) { + const maybeUpdatedMappingJson = JSON.stringify( + MappingSerializer.serializeMappings(this.cfg) + ); + // inspection might change the mapping, for example the preloaded + // mapping could have a document URI that is no longer the same + // after inspection, e.g. when parameters change on the provided + // documents and differ from the parameters embedded in the + // provided mapping; in that case we need to notify that mapping + // has been changed + if (preloadedMappingJson !== maybeUpdatedMappingJson) { + this.cfg.mappingService.notifyMappingUpdated(); + } + } + }); + }, + }); + + this.initializeWithMappingDigest().finally(() => { + this.updateStatus(); + }); + resolve(true); + }); + } + + /** + * Return true if the runtime service is available, false otherwise. + */ + runtimeServiceActive(): Promise { + return new Promise((resolve, reject) => { + const url: string = this.cfg.initCfg.baseMappingServiceUrl + 'ping'; + this.cfg.logger!.debug('Runtime Service Ping Request'); + this.api + .get(url) + .json() + .then((body) => { + this.cfg.logger!.debug( + `Runtime Service Ping Response: ${body.String}` + ); + resolve(body?.String === 'pong'); + }) + .catch((error: any) => { + reject(error); + }); + }); + } + + /** + * Retrieve AtlasMap design time backend runtime version. + * @returns + */ + getRuntimeVersion(): Promise { + const url = this.cfg.initCfg.baseMappingServiceUrl + 'version'; + return new Promise((resolve, reject) => { + this.api + .get(url) + .json() + .then((body) => { + this.cfg.logger!.debug( + `Runtime Service Version Response: ${body.String}` + ); + resolve(body.String); + }) + .catch((error) => { + reject(error); + }); + }); + } + + /** + * Initialize with the {@link ADMDigest} mapping digest from either an imported ADM archive + * file or from the DM runtime digest file is presented to update the canvas. + * + * @param mappingDigest - {@link ADMDigest} mapping digest + */ + private initializeWithMappingDigest(): Promise { + return new Promise((resolve) => { + this.cfg.fileService + .getCurrentMappingDigest() + .then(async (mappingDigest: ADMDigest | null) => { + // If digest is null then no compressed mappings digest file is available on the server. + if (!mappingDigest) { + if (this.cfg.mappings === null) { + this.cfg.mappings = new MappingDefinition(); + } + + // load field actions - do this even with no documents so the default field actions are loaded. + await this.cfg.fieldActionService.fetchFieldActions(); + this.updateStatus(); + resolve(true); + return; + } + + await this.addDocumentsFromMappingDigest(mappingDigest); + + if (!mappingDigest || !mappingDigest.exportMappings) { + resolve(false); + return; + } + // Reinitialize the model mappings. + const digestMappingsName = + MappingSerializer.deserializeAtlasMappingName( + CommonUtil.objectize(mappingDigest.exportMappings.value) + ); + + // If the live UI mappings name does not match the UI mappings name extracted from the + // catalog file then use the mappings from the catalog file. Otherwise use the live + // UI file. + this.cfg.fileService + .findMappingFiles('UI') + .then(async (files: string[]) => { + await this.cfg.fileService.setMappingDigestToService( + mappingDigest + ); + await this.cfg.fieldActionService.fetchFieldActions(); + if (digestMappingsName !== files[0]) { + await this.cfg.fileService.setMappingStringToService( + mappingDigest.exportMappings.value + ); + } + // load both default and custom field actions + await this.cfg.fieldActionService.fetchFieldActions(); + + // load mappings + this.fetchMappings().then((value) => { + resolve(value); + }); + }) + .catch(() => { + resolve(false); + }); + }) + .catch(() => { + resolve(false); + }); + }); + } + + private addDocumentsFromMappingDigest( + mappingDigest: ADMDigest + ): Promise { + return new Promise(async (resolve) => { + this.cfg.errorService.resetAll(); + + let fragIndex = 0; + + // Reinitialize the model documents. + for (let metaFragment of mappingDigest.exportMeta) { + const fragData = mappingDigest.exportBlockData[fragIndex].value; + const docID = metaFragment.id ? metaFragment.id : metaFragment.name; + const docType = metaFragment.dataSourceType + ? (metaFragment.dataSourceType as DocumentType) + : (metaFragment.documentType as DocumentType); + const isSource = + typeof metaFragment.isSource === 'string' + ? (metaFragment.isSource as string).toLowerCase() === 'true' + : metaFragment.isSource; + await this.cfg.documentService.addDocument( + fragData, + docID, + metaFragment.name, + docType, + metaFragment.inspectionType, + isSource, + metaFragment.inspectionParameters + ); + this.updateStatus(); + fragIndex++; + } + this.cfg.mappingService.notifyMappingUpdated(); + resolve(true); + }); + } + + /** + * Fetch mapping files and initialize user mappings in the canvas. + * + * @param mappingFiles + */ + private fetchMappings(): Promise { + return new Promise(async (resolve) => { + if (this.cfg.mappings != null) { + resolve(true); + return; + } + + this.cfg.mappings = new MappingDefinition(); + let mappingFiles = this.cfg.mappingFiles; + if (!this.cfg.mappingFiles || this.cfg.mappingFiles.length === 0) { + mappingFiles = await this.cfg.fileService.findMappingFiles('UI'); + } + if (mappingFiles.length === 0) { + resolve(false); + } + + this.cfg.mappingService + .fetchMappings(mappingFiles, this.cfg.mappings) + .then(() => { + this.cfg.initCfg.mappingInitialized = true; + this.updateStatus(); + this.cfg.mappingService + .notifyMappingUpdated() + .then(() => resolve(true)); + }); + }); + } + + updateStatus(): void { + const documentCount: number = this.cfg.getAllDocs().length; + let finishedDocCount = 0; + for (const docDef of this.cfg.getAllDocs()) { + if (docDef.initialized || docDef.errorOccurred) { + finishedDocCount++; + } + } + + if ( + documentCount === finishedDocCount && + this.cfg.fieldActionService.isInitialized + ) { + if (this.cfg.preloadedMappingJson) { + MappingSerializer.deserializeMappingServiceJSON( + JSON.parse(this.cfg.preloadedMappingJson), + this.cfg + ); + this.cfg.preloadedMappingJson = null; + } + if (this.cfg.mappings) { + LookupTableUtil.updateLookupTables(this.cfg.mappings); + MappingUtil.updateDocumentNamespacesFromMappings(this.cfg); + MappingUtil.updateMappingsFromDocuments(this.cfg); + for (const d of this.cfg.getAllDocs()) { + d.updateFromMappings(this.cfg.mappings); + } + MappingUtil.removeStaleMappings(this.cfg); + this.cfg.mappingService.updateMappingsTransition(); + } + this.updateInitComplete(); + } + } + + private handleError(message: string, error?: any) { + message = 'Data Mapper UI Initialization Error: ' + message; + this.cfg.errorService.addError( + new ErrorInfo({ + message: message, + scope: ErrorScope.APPLICATION, + level: ErrorLevel.ERROR, + type: ErrorType.INTERNAL, + object: error, + }) + ); + this.updateLoadingStatus(message); + this.cfg.initCfg.initializationErrorOccurred = true; + this.cfg.initCfg.initialized = true; + this.systemInitializedSource.next(); + } + + updateInitComplete(): void { + this.updateLoadingStatus('Initialization complete.'); + this.cfg.initCfg.initialized = true; + this.systemInitializedSource.next(); + } + + updateLoadingStatus(status: string): void { + this.cfg.initCfg.loadingStatus = status; + this.initializationStatusChangedSource.next(); + } + + initializeWithADMArchiveFile(file: File): Promise { + return new Promise((resolve) => { + this.updateLoadingStatus('Importing ADM archive file'); + this.cfg.fileService.importADMArchive(file).then(() => { + this.initialize().then((value) => { + resolve(value); + }); + }); + }); + } + + resetAtlasMap(): Promise { + return new Promise((resolve) => { + this.cfg.fileService.resetAll().then((value) => { + this.initialize().then((value2) => { + resolve(value && value2); + }); + }); + }); + } +} diff --git a/packages/ui/src/core/services/mapping-expression.service.spec.ts b/packages/ui/src/core/services/mapping-expression.service.spec.ts new file mode 100644 index 000000000..9aa910f5b --- /dev/null +++ b/packages/ui/src/core/services/mapping-expression.service.spec.ts @@ -0,0 +1,226 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfigModel, + DocumentInitializationModel, +} from '../models/config.model'; +import { DocumentType, InspectionType } from '../contracts/common'; + +import { DocumentDefinition } from '../models/document-definition.model'; +import { ExpressionNode } from '../models/expression.model'; +import { Field } from '../models/field.model'; +import { InitializationService } from './initialization.service'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { MappingExpressionService } from './mapping-expression.service'; +import { MappingModel } from '../models/mapping.model'; +import { TestUtils } from '../../test/test-util'; +import ky from 'ky'; + +describe('MappingExpressionService', () => { + let cfg: ConfigModel; + let service: MappingExpressionService; + + beforeEach(() => { + const initService = new InitializationService(ky); + initService.initialize(); + cfg = initService.cfg; + service = cfg.expressionService; + }); + + test('should clear out source fields when toggling expression with a source collection', () => { + const source = new Field(); + source.isPrimitive = true; + source.docDef = new DocumentDefinition(); + source.docDef.isSource = true; + + source.parentField = new Field(); + source.parentField.isCollection = true; + + source.parentField.parentField = new Field(); + source.parentField.parentField.isCollection = true; + + const target = new Field(); + target.isPrimitive = true; + target.docDef = new DocumentDefinition(); + target.docDef.isSource = false; + + target.parentField = new Field(); + target.parentField.isCollection = true; + + target.parentField.parentField = new Field(); + target.parentField.parentField.isCollection = true; + + const mappingModel = new MappingModel(); + mappingModel.addField(source, false); + mappingModel.addField(target, false); + + const mappingDefinition = new MappingDefinition(); + mappingDefinition.mappings.push(mappingModel); + mappingModel.cfg.mappings = mappingDefinition; + mappingDefinition.activeMapping = mappingModel; + + service.cfg.mappings = mappingDefinition; + + service.toggleExpressionMode(); + + expect(service.willClearOutSourceFieldsOnTogglingExpression()).toBeTruthy(); + + service.toggleExpressionMode(); + + expect(service.cfg.mappings?.activeMapping?.sourceFields?.length).toBe(0); + expect(service.cfg.mappings?.activeMapping?.targetFields?.length).toBe(1); + }); + + test('should not clear out source fields when toggling expression without a source collection', () => { + const source = new Field(); + source.isPrimitive = true; + source.docDef = new DocumentDefinition(); + source.docDef.isSource = true; + + source.parentField = new Field(); + source.parentField.isCollection = false; + + source.parentField.parentField = new Field(); + source.parentField.parentField.isCollection = false; + + const target = new Field(); + target.isPrimitive = true; + target.docDef = new DocumentDefinition(); + target.docDef.isSource = false; + + target.parentField = new Field(); + target.parentField.isCollection = true; + + target.parentField.parentField = new Field(); + target.parentField.parentField.isCollection = true; + + const mappingModel = new MappingModel(); + mappingModel.addField(source, false); + mappingModel.addField(target, false); + + const mappingDefinition = new MappingDefinition(); + mappingDefinition.mappings.push(mappingModel); + mappingModel.cfg.mappings = mappingDefinition; + mappingDefinition.activeMapping = mappingModel; + + service.cfg.mappings = mappingDefinition; + + spyOn(cfg.mappingService, 'updateTransition').and.stub(); + + service.toggleExpressionMode(); + + expect(service.willClearOutSourceFieldsOnTogglingExpression()).toBeFalsy(); + + service.toggleExpressionMode(); + + expect(service.cfg.mappings?.activeMapping?.sourceFields?.length).toBe(1); + expect(service.cfg.mappings?.activeMapping?.targetFields?.length).toBe(1); + }); + + test('willClearOutSourceFieldsOnTogglingExpression()', () => { + TestUtils.createMockMappings(service.cfg); + const mapping1 = service.cfg.mappings!.mappings[1]; + expect(service.cfg.mappings?.activeMapping).toBeNull(); + cfg.mappingService.selectMapping(mapping1); + expect(service.willClearOutSourceFieldsOnTogglingExpression()).toBeFalsy(); + }); + + test('conditionalMappingExpressionEnabled()', () => { + TestUtils.createMockMappings(service.cfg); + const mapping1 = service.cfg.mappings!.mappings[1]; + expect(service.cfg.mappings?.activeMapping).toBeNull(); + cfg.mappingService.selectMapping(mapping1); + expect(service.isExpressionEnabledForActiveMapping()).toBeFalsy(); + }); + + test('toggleExpressionMode', () => { + spyOn(cfg.mappingService, 'validateMappings').and.stub(); + TestUtils.createMockMappings(service.cfg); + const mapping1 = service.cfg.mappings!.mappings[1]; + expect(service.cfg.mappings?.activeMapping).toBeNull(); + cfg.mappingService.selectMapping(mapping1); + service.toggleExpressionMode(); + expect(service.isExpressionEnabledForActiveMapping()).toBeTruthy(); + }); + + test('executeFieldSearch()', () => { + TestUtils.createMockMappings(service.cfg); + const mapping1 = service.cfg.mappings!.mappings[1]; + expect(service.cfg.mappings?.activeMapping).toBeNull(); + cfg.mappingService.selectMapping(mapping1); + expect( + service.executeFieldSearch(service.cfg, 'sourceField', true).length + ).toBe(4); + expect( + service.executeFieldSearch(service.cfg, 'sourceField2', true).length + ).toBe(2); + }); + + test('createMappingExpression', () => { + TestUtils.createMockMappings(cfg); + const mapping1 = cfg.mappings!.mappings[1]; + expect(service.createMappingExpression(mapping1)).toContain('Concatenate'); + }); + + test('test adding a field to an expression makes it into the mapping', () => { + TestUtils.createMockMappings(cfg); + const mapping = cfg.mappings!.mappings[1]; + + const docDef = new DocumentInitializationModel(); + docDef.type = DocumentType.JSON; + docDef.inspectionType = InspectionType.SCHEMA; + docDef.name = 'JSONSchemaSource'; + docDef.isSource = true; + docDef.id = 'JSONSchemaSource'; + docDef.description = 'random desc'; + const jsonSchemaSource = cfg.addDocument(docDef); + + const source = new Field(); + source.isPrimitive = true; + source.path = '/addressList<>/city'; + source.docDef = jsonSchemaSource; + source.parentField = new Field(); + source.parentField.isCollection = true; + source.parentField.parentField = new Field(); + source.parentField.parentField.isCollection = true; + jsonSchemaSource.addField(source); + + expect(mapping).toBeDefined(); + cfg.mappingService.selectMapping(mapping); + + const textNode: ExpressionNode = { + uuid: '0', + str: 'mockstr', + getUuid: () => '', + toText: () => '', + toHTML: () => '', + }; + service.addFieldToExpression( + mapping, + source.docDef.id, + source.path, + textNode, + 0, + true + ); + const mappedField = mapping.getMappedFieldByPath( + source.path, + true, + source.docDef.id + ); + expect(mappedField?.field?.path).toEqual(source.path); + }); +}); diff --git a/packages/ui/src/core/services/mapping-expression.service.ts b/packages/ui/src/core/services/mapping-expression.service.ts new file mode 100644 index 000000000..305780ef9 --- /dev/null +++ b/packages/ui/src/core/services/mapping-expression.service.ts @@ -0,0 +1,437 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { MappedField, MappingModel } from '../models/mapping.model'; +import { TransitionMode, TransitionModel } from '../models/transition.model'; + +import { CommonUtil } from '../utils/common-util'; +import { ConfigModel } from '../models/config.model'; +import { ExpressionModel } from '../models/expression.model'; +import { Field } from '../models/field.model'; +import { FieldActionArgumentValue } from '../models/field-action.model'; +import { FieldType } from '../contracts/common'; +import { IExpressionNode } from '../contracts/expression'; +import { MappingUtil } from '../utils/mapping-util'; +import { Multiplicity } from '../contracts/field-action'; +import { Subscription } from 'rxjs'; + +/** + * Manages conditional mapping expression. + */ +export class MappingExpressionService { + cfg!: ConfigModel; + + private mappingUpdatedSubscription?: Subscription; + + willClearOutSourceFieldsOnTogglingExpression() { + if (this.cfg.mappings?.activeMapping?.transition.enableExpression) { + return ( + this.cfg.mappings.activeMapping.getFirstCollectionField(true) != null + ); + } else { + return false; + } + } + + isExpressionEnabledForActiveMapping(): boolean { + return !!this.cfg.mappings?.activeMapping?.transition?.enableExpression; + } + + toggleExpressionMode() { + if ( + !this.cfg.mappings || + !this.cfg.mappings.activeMapping || + !this.cfg.mappings.activeMapping.transition + ) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: 'Please select a mapping first.', + level: ErrorLevel.INFO, + scope: ErrorScope.MAPPING, + type: ErrorType.USER, + }) + ); + return; + } + const activeMapping = this.cfg.mappings.activeMapping; + if (activeMapping.transition.mode === TransitionMode.ONE_TO_MANY) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `Cannot establish a conditional mapping expression when multiple target fields are selected. + Please select only one target field and try again.`, + level: ErrorLevel.WARN, + scope: ErrorScope.MAPPING, + type: ErrorType.USER, + mapping: activeMapping, + }) + ); + return; + } + + if (this.willClearOutSourceFieldsOnTogglingExpression()) { + // Clear out source fields, if the mapping contains a source collection + activeMapping.sourceFields.splice(0, activeMapping.sourceFields.length); + } + + activeMapping.transition.enableExpression = + !activeMapping.transition.enableExpression; + if (activeMapping.transition.enableExpression) { + activeMapping.transition.mode = TransitionMode.EXPRESSION; + activeMapping.transition.transitionFieldAction = null; + this.mappingUpdatedSubscription = + this.cfg.mappingService.mappingUpdated$.subscribe(() => { + if ( + !this.cfg || + !this.cfg.mappings || + !this.cfg.mappings.activeMapping + ) { + return; + } + if (this.cfg.mappings.activeMapping.isFullyMapped()) { + this.updateExpression(this.cfg.mappings.activeMapping); + } + }); + if (activeMapping.transition.expression) { + this.cfg.mappings.activeMapping.transition.expression.expressionUpdatedSource.next(); + } + } else { + this.mappingUpdatedSubscription?.unsubscribe(); + activeMapping.transition.mode = TransitionMode.ONE_TO_ONE; + this.cfg.mappingService.updateActiveMappingTransition(); + } + } + + updateExpression(mapping: MappingModel, position?: string, offset?: number) { + // Update conditional expression field references. + mapping.transition.expression?.updateFieldReference( + mapping, + position, + offset + ); + } + + /** + * Add the specified document ID/field path to the specified mapping/ expression. + * + * @param mapping + * @param docId + * @param fieldPath + * @param newTextNode + * @param atIndex + * @param isTrailer + */ + addFieldToExpression( + mapping: MappingModel, + docId: string, + fieldPath: string, + newTextNode: IExpressionNode, + atIndex: number, + isTrailer: boolean + ) { + let mappedField = mapping.getMappedFieldByPath(fieldPath, true, docId); + + if (!mappedField) { + // If the selected field was not part of the original mapping + // and is complex then add it as a reference node. + mappedField = mapping.getReferenceField(docId, fieldPath); + if (!mappedField) { + // Try adding the selected field to the active mapping. + const docDef = this.cfg.getDocForIdentifier(docId, true); + const field = Field.getField(fieldPath, docDef?.getAllFields()!); + if (field) { + this.updateExpression( + mapping, + newTextNode.getUuid(), + isTrailer ? newTextNode.toText().length : atIndex + ); + this.cfg.mappingService.addFieldToActiveMapping(field); + } + mappedField = mapping.getMappedFieldByPath(fieldPath, true, docId); + if (!mappedField) { + return; + } + } + } + mapping.transition!.expression?.addConditionalExpressionNode( + mappedField, + newTextNode.getUuid(), + isTrailer ? newTextNode.str.length : atIndex + ); + } + + /** + * Return an array of strings representing display names of mapping fields based on the + * specified filter. + * @todo ATM this is specialized for listing up candidate fields for adding into expression. + * We will need to consolidate with field filter on the Document tree when we implement server + * side field search - https://github.com/atlasmap/atlasmap/issues/603 + * + * @param filter + */ + executeFieldSearch( + configModel: ConfigModel, + filter: string, + isSource: boolean + ): string[][] { + const activeMapping = configModel.mappings!.activeMapping; + if (!activeMapping) { + return []; + } + const formattedFields: string[][] = []; + let fields: Field[] = []; + for (const docDef of configModel.getDocs(isSource)) { + fields = docDef.getTerminalFields(); + fields = fields.concat(docDef.getComplexFields()); + Field.alphabetizeFields(fields); + let documentName = ''; + let fieldCount = -1; + + for (const field of fields) { + const formattedField: string[] = ['']; + let displayName = + field == null ? '' : field.getFieldLabel(configModel.showTypes, true); + + if ( + filter == null || + filter === '' || + displayName.toLowerCase().indexOf(filter.toLowerCase()) !== -1 + ) { + if ( + !configModel.mappingService.isFieldSelectable( + activeMapping, + field + ) && + field.type !== FieldType.COMPLEX + ) { + continue; + } + if (documentName !== field.docDef.name) { + if (fieldCount === 0) { + formattedFields.pop(); + continue; + } else { + const documentField = ['']; + documentName = field.docDef.name; + documentField[0] = documentName; + documentField[1] = field.docDef.id; + fieldCount = 0; + formattedFields.push(documentField); + } + } + displayName = CommonUtil.extractDisplayPath(field.path, 100); + formattedField[0] = field.docDef.id; + formattedField[1] = field.path; + fieldCount++; + formattedFields.push(formattedField); + } + if (formattedFields.length > 500) { + const endField: string[] = ['']; + endField[0] = '** Displayable field limit reached **'; + endField[1] = ''; + fieldCount++; + formattedFields.push(endField); + break; + } + } + } + return formattedFields; + } + + /** + * Return a string, in either text or HTML form, representing the + * expression mapping of either the optionally specified mapping or + * the active mapping if it exists, empty string otherwise. + * @todo avoid any, use typed mapping object - https://github.com/atlasmap/atlasmap/issues/2975 + * @param asHTML + * @param mapping + */ + getMappingExpressionStr(asHTML: boolean, mapping?: any): string { + if (!mapping && !MappingUtil.activeMapping(this.cfg)) { + return ''; + } + if (!mapping) { + mapping = this.cfg.mappings?.activeMapping; + } + if (!mapping.transition.expression) { + if ( + mapping.transition.enableExpression && + MappingUtil.hasFieldAction(mapping.sourceFields) + ) { + this.createMappingExpression(mapping); + } else { + return ''; + } + } + + if (mapping.transition.expression && mapping.transition.enableExpression) { + return asHTML + ? mapping.transition.expression.expressionHTML + : mapping.transition.expression.toText(true); + } + return ''; + } + + /** + * Create a conditional mapping expression from the specified mapping model. Start + * with a multiplicity action if applicable, then any field-specific field actions. + * + * @param mapping + */ + createMappingExpression(mapping: MappingModel): string { + let expr = ''; + const sourceMappedFields = mapping.getMappedFields(true); + const sourceMappedCollection = MappingUtil.hasMappedCollection( + mapping, + true + ); + const targetMappedFields = mapping.getMappedFields(false); + const targetMappedCollection = MappingUtil.hasMappedCollection( + mapping, + false + ); + + if ( + sourceMappedFields.length > 1 || + (sourceMappedCollection && + mapping.transition.transitionFieldAction?.definition?.multiplicity === + Multiplicity.MANY_TO_ONE) + ) { + expr = 'Concatenate ('; + expr += this.fieldActionsToExpression(mapping); + expr += + ", '" + + TransitionModel.delimiterModels[mapping.transition.delimiter] + .actualDelimiter + + "')"; + } else if ( + (targetMappedFields.length > 1 || targetMappedCollection) && + mapping.transition.transitionFieldAction?.definition?.multiplicity === + Multiplicity.ONE_TO_MANY + ) { + expr = 'Split ('; + expr += this.fieldActionsToExpression(mapping); + expr += ')'; + } else { + expr += this.fieldActionsToExpression(mapping); + } + mapping.transition.expression = new ExpressionModel(mapping, this.cfg); + mapping.transition.expression.insertText(expr); + return expr; + } + + private qualifiedExpressionRef(mappedField: MappedField): string { + if (mappedField.field?.path !== null) { + return ( + '${' + + mappedField.field?.docDef?.id + + ':' + + mappedField.field?.path + + '}' + ); + } else { + return 'null'; + } + } + + /** + * Create a conditional expression fragment based on the specified field action + * argument and type. + * + * @param actionArgument + * @param actionArgType + */ + private fieldActionArgumentToExpression( + actionArgument: FieldActionArgumentValue, + actionArgType: string + ): string { + if (actionArgType === 'string') { + return "'" + actionArgument.value + "'"; + } else { + return actionArgument.value; + } + } + + /** + * Create a conditional expression fragment based on a single field action + * and its arguments if any. + * + * @param mappedField + * @param mfActionIndex + */ + private fieldActionToExpression( + mappedField: MappedField, + mfActionIndex: number + ): string { + let action = mappedField.actions[mfActionIndex]; + let expression = action.name + ' ('; + if (mfActionIndex < mappedField.actions.length - 1) { + mfActionIndex++; + expression += this.fieldActionToExpression(mappedField, mfActionIndex); + } else { + expression += this.qualifiedExpressionRef(mappedField); + } + if (action.argumentValues.length > 0) { + for ( + let actionArgIndex = 0; + actionArgIndex < action.argumentValues.length; + actionArgIndex++ + ) { + expression += + ', ' + + this.fieldActionArgumentToExpression( + action.argumentValues[actionArgIndex], + action.definition!.arguments[actionArgIndex].type + ); + } + } + expression += ')'; + return expression; + } + + /** + * Create a conditional expression fragment based on the field actions of the specified + * mapping model and the root field reference. + * + * @param mapping + */ + private fieldActionsToExpression(mapping: MappingModel): string { + let expression = ''; + let mappedField: MappedField; + + for ( + let mappedFieldIndex = 0; + mappedFieldIndex < mapping.sourceFields.length; + mappedFieldIndex++ + ) { + mappedField = mapping.sourceFields[mappedFieldIndex]; + if (mappedField.actions.length > 0) { + let mfActionIndex = 0; + expression += this.fieldActionToExpression(mappedField, mfActionIndex); + } else { + expression += this.qualifiedExpressionRef(mappedField); + } + if (mappedFieldIndex !== mapping.sourceFields.length - 1) { + expression += ', '; + } + } + return expression; + } +} diff --git a/packages/ui/src/core/services/mapping-management.service.spec.ts b/packages/ui/src/core/services/mapping-management.service.spec.ts new file mode 100644 index 000000000..a61f2365d --- /dev/null +++ b/packages/ui/src/core/services/mapping-management.service.spec.ts @@ -0,0 +1,386 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { LookupTableData, LookupTableUtil } from '../utils'; +import ky, { Options } from 'ky'; + +import { ConfigModel } from '../models/config.model'; +import { Field } from '../models/field.model'; +import { InitializationService } from './initialization.service'; +import { Input } from 'ky/distribution/types/options'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { MappingManagementService } from '../services/mapping-management.service'; +import { MappingModel } from '../models/mapping.model'; +import { PaddingField } from '../models/document-definition.model'; +import { TestUtils } from '../../test/test-util'; +import { TransitionMode } from '../models/transition.model'; +import mockMappingJson from '../../../../test-resources/mapping/atlasmapping-mock.json'; + +describe('MappingManagementService', () => { + let cfg: ConfigModel; + let service: MappingManagementService; + + beforeEach(() => { + const initService = new InitializationService(ky); + cfg = initService.cfg; + service = cfg.mappingService; + }); + + test('check banned fields', () => { + const f = new Field(); + f.isCollection = true; + f.parentField = new Field(); + f.parentField.isCollection = true; + f.isPrimitive = true; + expect( + service.getFieldSelectionExclusionReason( + new MappingModel(), + f.parentField + ) + ).toContain('parent'); + }); + + test('fetchMappings()', (done) => { + spyOn(ky, 'get').and.returnValue( + new (class { + json(): Promise { + return Promise.resolve(mockMappingJson); + } + })() + ); + TestUtils.createMockDocs(service.cfg); + service.cfg.mappings = new MappingDefinition(); + service + .fetchMappings([''], service.cfg.mappings) + .then((value) => { + expect(value).toBeTruthy(); + expect(service.cfg.mappings?.mappings.length).toBeGreaterThan(0); + const m = service.cfg.mappings?.mappings[0]; + expect(m?.transition.mode).toBe(TransitionMode.ONE_TO_ONE); + const sf = m?.sourceFields[0].field; + expect(sf?.name).toBe('sourceField'); + const tf = m?.targetFields[0].field; + expect(tf?.name).toBe('targetField'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('updateMappingsTransition()', () => { + spyOn(service, 'validateMappings').and.stub(); + TestUtils.createMockMappings(service.cfg); + service.cfg.mappings!.mappings[0].transition.mode = + TransitionMode.MANY_TO_ONE; + expect( + service.cfg.mappings!.mappings[0].transition.isOneToOneMode() + ).toBeFalsy(); + expect( + service.cfg.mappings!.mappings[0].transition.isManyToOneMode() + ).toBeTruthy(); + service.updateMappingsTransition(); + expect( + service.cfg.mappings!.mappings[0].transition.isOneToOneMode() + ).toBeTruthy(); + expect( + service.cfg.mappings!.mappings[0].transition.isManyToOneMode() + ).toBeFalsy(); + }); + + test('removeMapping()', (done) => { + spyOn(service, 'validateMappings').and.stub(); + TestUtils.createMockMappings(service.cfg); + const toRemove = service.cfg.mappings!.mappings[0]; + expect(service.cfg.mappings!.mappings.length).toBe(2); + service + .removeMapping(toRemove) + .then((value) => { + expect(value).toBeTruthy(); + expect(service.cfg.mappings!.mappings.length).toBe(1); + expect(service.cfg.mappings!.mappings[0].uuid).not.toBe(toRemove.uuid); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('removeAllMappings()', (done) => { + spyOn(service, 'validateMappings').and.stub(); + TestUtils.createMockMappings(service.cfg); + expect(service.cfg.mappings?.mappings[0]); + service + .removeAllMappings() + .then((value) => { + expect(value).toBeTruthy(); + expect(service.cfg.mappings?.mappings[0]).toBeUndefined(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('updateMappedField()', (done) => { + spyOn(service, 'validateMappings').and.stub(); + const spy = spyOn(service, 'updateTransition').and.stub(); + TestUtils.createMockMappings(service.cfg); + service + .updateMappedField(service.cfg.mappings!.mappings[0]) + .then((value) => { + expect(value).toBeTruthy(); + + expect(spy.calls.count()).toBe(1); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('moveMappedFieldTo', () => { + spyOn(service, 'notifyLineRefresh').and.stub(); + spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { + return new (class { + json(): Promise { + return Promise.resolve(options.json); + } + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })(); + }); + TestUtils.createMockMappings(service.cfg); + const mapping = service.cfg.mappings!.mappings[1]; + const field2 = mapping.getMappedFieldForIndex('1', true); + expect(field2?.field?.path).toBe('/sourceField2'); + const field = mapping.getMappedFieldForIndex('2', true); + expect(field?.field?.path).toBe('/sourceField'); + service.moveMappedFieldTo(mapping, field2!, 2); + const movedField = mapping.getMappedFieldForIndex('1', true); + expect(movedField?.field?.path).toBe('/sourceField'); + }); + + test('addPlaceHolders()', () => { + TestUtils.createMockMappings(service.cfg); + const mapping = service.cfg.mappings!.mappings[1]; + const field = mapping.getMappedFieldForIndex('2', true); + expect(field?.field!.path).toBe('/sourceField'); + service.addPlaceholders(3, mapping, 1, true); + const moved = mapping.getMappedFieldForIndex('5', true); + expect(moved?.field?.path).toBe('/sourceField'); + const pad = mapping.getMappedFieldForIndex('4', true); + expect(pad?.field!).toBeInstanceOf(PaddingField); + }); + + test('addFieldToActiveMapping()', () => { + spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { + return new (class { + json(): Promise { + return Promise.resolve(options.json); + } + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })(); + }); + TestUtils.createMockMappings(service.cfg); + const mapping = service.cfg.mappings!.mappings[1]; + const field2 = mapping.getMappedFieldForIndex('1', true); + expect(field2?.field!.path).toBe('/sourceField2'); + service.selectMapping(mapping); + expect(mapping.sourceFields.length).toBe(2); + const field3 = field2?.field?.docDef.getField('/sourceField3'); + expect(field3).toBeTruthy(); + service.addFieldToActiveMapping(field3!); + expect(mapping.sourceFields.length).toBe(3); + }); + + test('isFieldSelectable()', () => { + const spy = spyOn(service, 'getFieldSelectionExclusionReason').and.stub(); + TestUtils.createMockMappings(service.cfg); + const mapping = service.cfg.mappings!.mappings[1]; + const field2 = mapping.getMappedFieldForIndex('1', true); + service.isFieldSelectable(mapping, field2?.field!); + expect(spy.calls.count()).toBe(1); + }); + + test('addNewMapping()', () => { + spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { + return new (class { + json(): Promise { + return Promise.resolve(options.json); + } + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })(); + }); + TestUtils.createMockMappings(service.cfg); + const doc = service.cfg.sourceDocs[0]; + const field3 = doc.getField('/sourceField3'); + expect(service.cfg.mappings?.mappings.length).toBe(2); + service.addNewMapping(field3!, false); + expect(service.cfg.mappings?.mappings.length).toBe(3); + const mapping = service.cfg.mappings?.mappings[2]; + const mappedField = mapping?.getMappedFieldForField(field3!); + expect(mappedField).toBeTruthy(); + }); + + test('newMapping()', () => { + spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { + return new (class { + json(): Promise { + return Promise.resolve(options.json); + } + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })(); + }); + TestUtils.createMockMappings(service.cfg); + expect(service.cfg.mappings?.mappings.length).toBe(2); + service.newMapping(); + expect(service.cfg.mappings?.mappings.length).toBe(3); + }); + + test('selectMapping()', () => { + TestUtils.createMockMappings(service.cfg); + const mapping1 = service.cfg.mappings!.mappings[1]; + expect(service.cfg.mappings?.activeMapping).toBeNull(); + service.selectMapping(mapping1); + expect(service.cfg.mappings?.activeMapping).toBe(mapping1); + }); + + test('{select,deselect}Mapping()', () => { + spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { + return new (class { + json(): Promise { + return Promise.resolve(options.json); + } + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })(); + }); + TestUtils.createMockMappings(service.cfg); + const mapping1 = service.cfg.mappings!.mappings[1]; + expect(service.cfg.mappings?.activeMapping).toBeNull(); + service.selectMapping(mapping1); + expect(service.cfg.mappings?.activeMapping).toBe(mapping1); + service.deselectMapping(); + expect(service.cfg.mappings?.activeMapping).toBeNull(); + }); + + test('removeDocumentReferenceFromAllMappings()', () => { + spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { + return new (class { + json(): Promise { + return Promise.resolve(options.json); + } + arrayBuffer(): Promise { + return Promise.resolve(new ArrayBuffer(0)); + } + })(); + }); + TestUtils.createMockMappings(service.cfg); + expect(service.cfg.mappings?.mappings.length).toBe(2); + service.removeDocumentReferenceFromAllMappings('SourceJson'); + expect(service.cfg.mappings!.mappings.length).toBe(0); + }); + + test('removeFieldFromAllMappings()', () => { + spyOn(service, 'validateMappings').and.stub(); + TestUtils.createMockMappings(service.cfg); + expect(service.cfg.mappings?.mappings.length).toBe(2); + const doc = service.cfg.sourceDocs[0]; + const field = doc.getField('/sourceField'); + service.removeFieldFromAllMappings(field!); + // **WARN** mapping is not removed even if there's no source field, + // inconsistent with removeDocumentReferenceFromAllMappings() + expect(service.cfg.mappings?.mappings.length).toBe(2); + const mapping = service.cfg.mappings?.mappings[0]; + expect(mapping?.isFullyMapped()).toBeFalsy(); + }); + + test('notifyLineRefresh()', (done) => { + spyOn(service, 'validateMappings').and.stub(); + const subscription = service.lineRefresh$.subscribe({ + next() { + subscription.unsubscribe(); + done(); + }, + error(error) { + fail(error); + }, + }); + service.notifyLineRefresh(); + }); + + test('notifyMappingUpdated()', (done) => { + spyOn(service, 'validateMappings').and.stub(); + TestUtils.createMockMappings(service.cfg); + const mapping1 = service.cfg.mappings!.mappings[1]; + expect(service.cfg.mappings?.activeMapping).toBeNull(); + service.selectMapping(mapping1); + service + .notifyMappingUpdated() + .then((value) => { + expect(value).toBeTruthy(); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + test('getEnumerationValues()', () => { + const spy = spyOn(LookupTableUtil, 'getEnumerationValues').and.stub(); + const mapping = new MappingModel(); + expect(spy.calls.count()).toBe(0); + service.getEnumerationValues(service.cfg, mapping); + expect(spy.calls.count()).toBe(1); + }); + + test('setEnumFieldValue()', () => { + const field = new Field(); + const value = 0; + expect(field.enumIndexValue).toBeFalsy(); + service.setEnumFieldValue(field, value); + expect(field.enumIndexValue).toBe(0); + }); + + test('updateEnumerationValues()', () => { + const spyUev = spyOn( + LookupTableUtil, + 'updateEnumerationValues' + ).and.stub(); + const spyNmu = spyOn(service, 'notifyMappingUpdated').and.stub(); + const mapping = new MappingModel(); + const enumValues: LookupTableData[] = []; + expect(spyUev.calls.count()).toBe(0); + expect(spyNmu.calls.count()).toBe(0); + service.updateEnumerationValues(service.cfg, mapping, enumValues); + expect(spyUev.calls.count()).toBe(1); + expect(spyNmu.calls.count()).toBe(1); + }); + + test('isEnumerationMapping()', () => { + const mapping = new MappingModel(); + mapping.transition.mode = TransitionMode.ENUM; + expect(service.isEnumerationMapping(mapping)).toBeTruthy(); + }); +}); diff --git a/packages/ui/src/core/services/mapping-management.service.ts b/packages/ui/src/core/services/mapping-management.service.ts new file mode 100644 index 000000000..31349ba7e --- /dev/null +++ b/packages/ui/src/core/services/mapping-management.service.ts @@ -0,0 +1,704 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { + IAtlasMappingContainer, + IValidationsContainer, +} from '../contracts/mapping'; +import { LookupTableData, LookupTableUtil } from '../utils/lookup-table-util'; +import { MappedField, MappingModel } from '../models/mapping.model'; +import { Subject, Subscription } from 'rxjs'; + +import { CommonUtil } from '../utils/common-util'; +import { ConfigModel } from '../models/config.model'; +import { Field } from '../models/field.model'; +import { FieldAction } from '../models/field-action.model'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { MappingSerializer } from '../utils/mapping-serializer'; +import { MappingUtil } from '../utils/mapping-util'; +import { Multiplicity } from '../contracts/field-action'; +import { PaddingField } from '../models/document-definition.model'; +import { TransitionMode } from '../models/transition.model'; +import ky from 'ky'; +import log from 'loglevel'; + +/** + * Handles mapping updates. It restores mapping status from backend and reflect in UI, + * and/or reflect mapping changes caused by the user action made in UI to the backend. + */ +export class MappingManagementService { + _cfg!: ConfigModel; + + lineRefreshSource = new Subject(); + lineRefresh$ = this.lineRefreshSource.asObservable(); + mappingUpdatedSource = new Subject(); + mappingUpdated$ = this.mappingUpdatedSource.asObservable(); + + debugMappingUpdatedSubscription?: Subscription; + + mappingSelectionRequiredSource = new Subject(); + mappingSelectionRequired$ = + this.mappingSelectionRequiredSource.asObservable(); + + constructor(private api: typeof ky) {} + + get cfg() { + return this._cfg; + } + + set cfg(cfg: ConfigModel) { + this._cfg = cfg; + if (!this._cfg.logger) { + this._cfg.logger = log.getLogger('mapping-management'); + } + if (this._cfg.logger.getLevel() <= this._cfg.logger.levels.DEBUG) { + this.mappingUpdated$.subscribe(() => { + if (!this.cfg.mappings) { + return; + } + if (this.cfg.mappings && this.cfg.mappings.activeMapping) { + this.cfg.logger!.info( + 'mapping updated: ' + + JSON.stringify(MappingSerializer.serializeMappings(this.cfg)) + ); + } + }); + } + } + + /** + * Retrieve current mapping definition JSON file from backend, deserialize it and + * load it into AtlasMap UI. + * + * @param mappingDefinition {@link MappingDefinition} + * @returns + */ + fetchMappings( + _mappingFiles: string[], + mappingDefinition: MappingDefinition + ): Promise { + return new Promise((resolve) => { + this.cfg.fileService + .getCurrentMappingJson() + .then(async (mappingJson: any) => { + if (!mappingJson) { + resolve(false); + return; + } + this.cfg.mappings = mappingDefinition; + MappingSerializer.deserializeMappingServiceJSON( + mappingJson, + this.cfg + ); + this.updateMappingsTransition(); + resolve(true); + }) + .catch((error) => { + this.cfg.errorService.addBackendError( + 'Failed to load mapping definition from backend:', + error + ); + resolve(false); + }); + }); + } + + updateMappingsTransition() { + this.cfg + .mappings!.getAllMappings(true) + .forEach((m) => this.updateTransition(m)); // TODO: check this non null operator + } + + updateActiveMappingTransition() { + if (this.cfg.mappings?.activeMapping) { + this.updateTransition(this.cfg.mappings?.activeMapping); + } + } + + /** + * Remove the specified mapping model from the mappings array and update the runtime. + * + * @param mappingModel + */ + async removeMapping(mappingModel: MappingModel): Promise { + return new Promise(async (resolve) => { + const mappingWasRemoved: boolean = + this.cfg.mappings!.removeMapping(mappingModel); // TODO: check this non null operator + if (mappingWasRemoved) { + this.deselectMapping(); + await this.notifyMappingUpdated(); + } else { + this.deselectMapping(); + } + resolve(true); + }); + } + + /** + * Remove all mappings from the current session. + */ + async removeAllMappings(): Promise { + return new Promise(async (resolve) => { + // TODO: check these non null operator on the mappings + for (const mapping of this.cfg.mappings!.getAllMappings(true)) { + this.cfg.mappings!.removeMapping(mapping); + this.deselectMapping(); + } + await this.notifyMappingUpdated(); + resolve(true); + }); + } + + async updateMappedField(mapping: MappingModel): Promise { + return new Promise(async (resolve) => { + if (mapping.isEmpty()) { + this.cfg.mappings!.removeMapping(mapping); // TODO: check this non null operator + this.deselectMapping(); + } else { + this.updateTransition(mapping); + } + await this.notifyMappingUpdated(); + resolve(true); + }); + } + + /** + * Move the specified mapped field in the specified mapping to the specified index. + * + * @param mapping + * @param insertedMappedField + * @param targetIndex + */ + moveMappedFieldTo( + mapping: MappingModel, + insertedMappedField: MappedField, + targetIndex: number + ): void { + if (!mapping || !insertedMappedField) { + return; + } + const mappedFields = mapping.getMappedFields( + insertedMappedField.isSource() + ); + mappedFields.splice( + mapping.getIndexForMappedField(insertedMappedField)! - 1, + 1 + ); + mappedFields.splice(targetIndex - 1, 0, insertedMappedField); + this.clearExtraPaddingFields(mappedFields, true); + this.notifyMappingUpdated(); + } + + /** + * Given an index range, fill in the mappings gap with place-holder fields. + * + * @param count - number of padding fields to add + * @param mapping - mapping to modify + * @param basePadIndex - 0 based + * @param isSource + */ + addPlaceholders( + count: number, + mapping: MappingModel, + basePadIndex: number, + isSource: boolean + ) { + let padField = null; + for (let i = 0; i < count; i++) { + padField = new MappedField(); + padField.field = new PaddingField(isSource); + if (isSource) { + mapping.sourceFields.splice(basePadIndex + i, 0, padField); + } else { + mapping.targetFields.splice(basePadIndex + i, 0, padField); + } + } + } + + addFieldToActiveMapping(field: Field): void { + let mapping: MappingModel | null = this.cfg.mappings!.activeMapping; + if (!mapping) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `No mapping is selected to add a field '${field.name}'`, + level: ErrorLevel.ERROR, + scope: ErrorScope.MAPPING, + type: ErrorType.USER, + }) + ); + return; + } + + const exclusionReason = this.getFieldSelectionExclusionReason( + mapping, + field + ); + if (exclusionReason != null) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: `The field '${field.name}' cannot be selected, ${exclusionReason}.`, + level: ErrorLevel.ERROR, + mapping: mapping, + scope: ErrorScope.MAPPING, + type: ErrorType.USER, + }) + ); + return; + } + mapping.addField(field, false); + + this.updateTransition(mapping); + if (mapping.sourceFields.length > 0 || mapping.targetFields.length > 0) { + this.notifyMappingUpdated(); + } + return; + } + + getFieldSelectionExclusionReason( + mapping: MappingModel, + field: Field + ): string | null { + if (!field.isTerminal()) { + return 'field is a parent field'; + } + + if (mapping.getAllMappedFields().length === 0) { + // if mapping hasn't had a field selected yet, allow it + return null; + } + + // Non-collection target fields may only be mapped once. + const existingMappedField = mapping.getMappedTarget(field); + if (existingMappedField != null && !field.isInCollection) { + return ( + 'it is already the target of another mapping (' + + existingMappedField + + '). ' + ); + } + + const lookupMode: boolean = mapping.isLookupMode(); + + if (lookupMode) { + if (!field.enumeration) { + return 'only Enumeration fields are valid for this mapping'; + } + return null; + } + // enums are not selectable in these modes + if (field.enumeration) { + return 'Enumeration fields are not valid for this mapping'; + } + // Expression mapping + if ( + mapping.transition.enableExpression && + !field.isSource() && + mapping.getMappedFields(false).length > 0 + ) { + return 'cannot add multiple target fields when conditional mapping is enabled.'; + } + + return null; + } + + isFieldSelectable(mapping: MappingModel, field: Field): boolean { + return this.getFieldSelectionExclusionReason(mapping, field) == null; + } + + /** + * Instantiate a new mapping model and associate the selected field with it. + * @param selectedField + * @param compoundSelection - indicates a compound-selection (ctrl/cmd-M1) if true, standard mouse click if false. + */ + addNewMapping(selectedField: Field, compoundSelection: boolean): void { + if (!compoundSelection) { + this.deselectMapping(); + } + const mapping: MappingModel = new MappingModel(); + if (selectedField != null) { + mapping.addField(selectedField, false); + this.updateTransition(mapping); + this.selectMapping(mapping); + this.notifyMappingUpdated(); + } else { + this.selectMapping(mapping); + } + } + + /** + * Instantiate a new mapping model. + */ + newMapping(): void { + this.deselectMapping(); + const mapping: MappingModel = new MappingModel(); + // Determine type of mapping (i.e., transition mode) + this.updateTransition(mapping); + // SelectMapping marks new mapping as active mapping, which is necessary so + // that it gets added to the existing mappings in notifyMappingUpdated(). + // TODO: this seems very unintuitive, seems like some step to explicitly + // add the new mapping would make more sense + this.selectMapping(mapping); + this.notifyMappingUpdated(); + } + + selectMapping(mappingModel: MappingModel) { + if (mappingModel == null) { + this.deselectMapping(); + return; + } + this.cfg.mappings!.activeMapping = mappingModel; // TODO: check this non null operator + this.cfg.showMappingDetailTray = true; + this.mappingUpdatedSource.next(); + } + + deselectMapping(): void { + this.cfg.showMappingDetailTray = false; + this.cfg.mappings!.activeMapping = null; // TODO: check this non null operator + this.notifyMappingUpdated(); + } + + /** + * Remove any mappings referencing the specified document ID. + * + * @param docId - Specified document ID + * @param cfg + */ + removeDocumentReferenceFromAllMappings(docId: string) { + for (const mapping of this.cfg.mappings!.getAllMappings(true)) { + for (const mappedField of mapping.getAllFields()) { + if ( + mappedField instanceof PaddingField || + mappedField.docDef.id !== docId + ) { + continue; + } + this.removeFieldFromAllMappings(mappedField); + if ( + mapping.sourceFields.length === 0 || + mapping.targetFields.length === 0 + ) { + this.cfg.mappings!.removeMapping(mapping); // TODO: check this non null operator + if (mapping === this.cfg.mappings!.activeMapping) { + // TODO: check this non null operator + this.cfg.mappingService.deselectMapping(); + } + } + } + } + } + + removeFieldFromAllMappings(field: Field): void { + // TODO: check this non null operator + for (const mapping of this.cfg.mappings!.getAllMappings(true)) { + const mappedField = mapping.getMappedFieldForField(field); + if (mappedField != null) { + mapping.removeMappedField(mappedField); + if (mapping.isEmpty()) { + this.cfg.mappings!.removeMapping(mapping); // TODO: check this non null operator + } + } + } + } + + /** + * Invoke the runtime service to validate the current active mapping. + */ + private async validateMappings( + payload: IAtlasMappingContainer + ): Promise { + return new Promise((resolve) => { + if ( + this.cfg.initCfg.baseMappingServiceUrl === null || + this.cfg.mappings === null + ) { + // validation service not configured or required + resolve(false); + return; + } + + this.cfg.errorService.clearValidationErrors(); + const url: string = + this.cfg.initCfg.baseMappingServiceUrl + + 'mapping/validate/' + + this.cfg.mappingDefinitionId; + this.cfg.logger!.debug( + `Validation Service Request: ${JSON.stringify(payload)}\n` + ); + this.api + .put(url, { json: payload }) + .json() + .then((body) => { + this.cfg.logger!.debug( + `Validation Service Response: ${JSON.stringify(body)}\n` + ); + this.processValidationResponse(body, resolve); + }) + .catch(() => { + this.cfg.logger!.warn('Unable to fetch validation data.'); + resolve(false); + }); + }); + } + + private processValidationResponse( + body: IValidationsContainer, + resolve: (value: boolean) => void + ) { + if (this.cfg.mappings === null) { + resolve(false); + return; + } + const errors: ErrorInfo[] = []; + + // This should be eventually turned into mapping entry level validation. + // https://github.com/atlasmap/atlasmap-ui/issues/116 + if (body && body.Validations && body.Validations.validation) { + for (const validation of body.Validations.validation) { + const level: ErrorLevel = + ErrorLevel[validation.status ? validation.status : 'ERROR']; + let scope: ErrorScope = + ErrorScope[validation.scope ? validation.scope : 'MAPPING']; + let validatedMapping: MappingModel | undefined = undefined; + if (!scope || scope !== ErrorScope.MAPPING || !validation.id) { + scope = ErrorScope.APPLICATION; + } else { + scope = ErrorScope.MAPPING; + if (this.cfg.mappings && this.cfg.mappings.mappings) { + validatedMapping = this.cfg.mappings.mappings.find( + (m) => m.uuid === validation.id + )!; // TODO: check this non null operator + } + } + errors.push( + new ErrorInfo({ + message: validation.message, + level: level, + scope: scope, + mapping: validatedMapping, + type: ErrorType.VALIDATION, + }) + ); + } + } + this.cfg.errorService.addError(...errors); + resolve(true); + } + + /** + * Notify the line machine to update the lines between panels. Most widgets require a + * small delay to allow the panel to complete forming so add it here. + */ + notifyLineRefresh(): void { + setTimeout(() => { + this.lineRefreshSource.next(); + }, 1); + } + + /** + * Validate and save complete mappings. Triggered either as an observable + * or directly. + */ + notifyMappingUpdated(): Promise { + return new Promise(async (resolve) => { + if (this.cfg.mappings) { + const activeMapping: MappingModel = this.cfg.mappings.activeMapping!; // TODO: check this non null operator + if ( + activeMapping && + this.cfg.mappings.mappings.indexOf(activeMapping) === -1 + ) { + this.cfg.mappings.mappings.push(activeMapping); + } + const payload = MappingSerializer.serializeMappings(this.cfg); + if (await this.validateMappings(payload)) { + await this.cfg.fileService.setMappingToService(payload); + } + } + this.mappingUpdatedSource.next(); + this.notifyLineRefresh(); + resolve(true); + }); + } + + /** + * Update mode transition from a single mapping to multiple-mappings and back. + * + * @param mapping + * @param position + * @param offset + */ + private updateTransition(mapping: MappingModel): void { + if (mapping.transition.enableExpression) { + return; + } + + for (const field of mapping.getAllFields()) { + if (field.enumeration) { + mapping.transition.mode = TransitionMode.ENUM; + LookupTableUtil.populateMappingLookupTable(this.cfg.mappings!, mapping); // TODO: check this non null operator + return; + } + } + + const sourceMappedFields = mapping.getMappedFields(true); + const sourceMappedCollection = MappingUtil.hasMappedCollection( + mapping, + true + ); + const targetMappedFields = mapping.getMappedFields(false); + const targetMappedCollection = MappingUtil.hasMappedCollection( + mapping, + false + ); + + if (sourceMappedCollection && targetMappedCollection) { + mapping.transition.mode = TransitionMode.FOR_EACH; + return; + } + if (sourceMappedFields.length > 1 || sourceMappedCollection) { + mapping.transition.mode = TransitionMode.MANY_TO_ONE; + if ( + !mapping.transition.transitionFieldAction || + !mapping.transition.transitionFieldAction.definition || + mapping.transition.transitionFieldAction.definition.multiplicity !== + Multiplicity.MANY_TO_ONE + ) { + mapping.transition.transitionFieldAction = FieldAction.create( + this.cfg.fieldActionService.getActionDefinitionForName( + 'Concatenate', + Multiplicity.MANY_TO_ONE + )! + ); // TODO: check this non null operator + mapping.transition.transitionFieldAction.setArgumentValue( + 'delimiter', + ' ' + ); + mapping.transition.transitionFieldAction.setArgumentValue( + 'delimitingEmptyValues', + 'true' + ); + } + return; + } + if (targetMappedFields.length > 1 || targetMappedCollection) { + mapping.transition.mode = TransitionMode.ONE_TO_MANY; + if ( + !mapping.transition.transitionFieldAction || + mapping.transition.transitionFieldAction.definition?.multiplicity !== + Multiplicity.ONE_TO_MANY + ) { + mapping.transition.transitionFieldAction = FieldAction.create( + this.cfg.fieldActionService.getActionDefinitionForName( + 'Split', + Multiplicity.ONE_TO_MANY + )! + ); // TODO: check this non null operator + mapping.transition.transitionFieldAction.setArgumentValue( + 'delimiter', + ' ' + ); + mapping.transition.transitionFieldAction.setArgumentValue( + 'collapseRepeatingDelimiters', + 'false' + ); + } + return; + } + mapping.transition.mode = TransitionMode.ONE_TO_ONE; + mapping.transition.transitionFieldAction = null; + } + + /** + * Remove any trailing padding fields for the mapped field array. This occurs when a user moves + * a mapped element above the last padding field. + * + * @param mappedFields + * @param trailing - Remove trailing padding fields only + */ + private clearExtraPaddingFields( + mappedFields: MappedField[], + trailing: boolean + ): void { + let index = 0; + let mField = null; + + for (index = mappedFields.length - 1; index >= 0; index--) { + mField = mappedFields[index]; + if (mField.isPadField()) { + CommonUtil.removeItemFromArray(mField, mappedFields); + continue; + } + if (trailing) { + break; + } + } + } + + /** + * Get the enumeration values for the specified mapping and return it in + * the form of a lookup table. + * + * @param cfg + * @param mapping + */ + getEnumerationValues( + cfg: ConfigModel, + mapping: MappingModel + ): LookupTableData[] { + return LookupTableUtil.getEnumerationValues(cfg, mapping); + } + + /** + * Set the enumeration field value based on the specified enumeration value index. + * + * @param enumerationField + * @param enumerationValue + */ + setEnumFieldValue(enumerationField: Field, enumerationValue: number) { + enumerationField.enumIndexValue = enumerationValue; + } + + /** + * Update the enumeration values for the specified mapping with the specified + * enumeration values. + * + * @param cfg + * @param mapping + * @param enumerationValues + */ + updateEnumerationValues( + cfg: ConfigModel, + mapping: MappingModel, + enumerationValues: LookupTableData[] + ): void { + LookupTableUtil.updateEnumerationValues(cfg, mapping, enumerationValues); + this.notifyMappingUpdated(); + } + + /** + * Return true if the specified mapping is an enumeration mapping, false otherwise. + * + * @param mapping + */ + isEnumerationMapping(mapping: MappingModel): boolean { + return mapping.transition.mode === TransitionMode.ENUM; + } +} diff --git a/packages/ui/src/core/services/mapping-preview.service.spec.ts b/packages/ui/src/core/services/mapping-preview.service.spec.ts new file mode 100644 index 000000000..01f578b0b --- /dev/null +++ b/packages/ui/src/core/services/mapping-preview.service.spec.ts @@ -0,0 +1,84 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import ky, { Options } from 'ky'; +import { ConfigModel } from '../models'; +import { InitializationService } from './initialization.service'; +import { Input } from 'ky/distribution/types/options'; +import { MappingModel } from '../models/mapping.model'; +import { MappingPreviewService } from './mapping-preview.service'; +import { TestUtils } from '../../test/test-util'; + +describe('MappingPreviewService', () => { + let cfg: ConfigModel; + let service: MappingPreviewService; + + function setSourceFieldValues(mapping: MappingModel) { + let sourceFields = mapping.getFields(true); + for (let i in sourceFields) { + sourceFields[i].value = 'value-' + i; + } + } + + beforeEach(() => { + const initService = new InitializationService(ky); + initService.initialize(); + cfg = initService.cfg; + service = cfg.previewService; + }); + + test('{enable,disable}MappingPreview()', (done) => { + spyOn(cfg.mappingService, 'validateMappings').and.stub(); + const requests = []; + spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { + requests.push(options.json); + return new (class { + json(): Promise { + return Promise.resolve(options.json); + } + then(): Promise { + return Promise.resolve(options.json); + } + })(); + }); + TestUtils.createMockMappings(cfg); + service.cfg.initCfg.baseMappingServiceUrl = 'http://dummy/'; + const mapping1 = service.cfg.mappings!.mappings[1]; + setSourceFieldValues(mapping1); + cfg.mappingService.selectMapping(mapping1); + service.enableMappingPreview(); + expect(requests.length).toBe(0); + cfg.mappingService + .notifyMappingUpdated() + .then((value) => { + expect(value).toBeTruthy(); + expect(requests.length).toBe(1); + service.disableMappingPreview(); + cfg.mappingService + .notifyMappingUpdated() + .then((value2) => { + expect(value2).toBeTruthy(); + expect(requests.length).toBe(1); + done(); + }) + .catch((error) => { + fail(error); + }); + }) + .catch((error) => { + fail(error); + }); + }); +}); diff --git a/packages/ui/src/core/services/mapping-preview.service.ts b/packages/ui/src/core/services/mapping-preview.service.ts new file mode 100644 index 000000000..3e5bd4712 --- /dev/null +++ b/packages/ui/src/core/services/mapping-preview.service.ts @@ -0,0 +1,236 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { + IProcessMappingRequestContainer, + IProcessMappingResponseContainer, + PROCESS_MAPPING_REQUEST_JSON_TYPE, +} from '../contracts/mapping-preview'; +import { Subject, Subscription } from 'rxjs'; +import { ConfigModel } from '../models/config.model'; +import { MappingModel } from '../models/mapping.model'; +import { MappingSerializer } from '../utils/mapping-serializer'; +import ky from 'ky'; + +/** + * Manages Mapping Preview. + */ +export class MappingPreviewService { + cfg!: ConfigModel; + + mappingPreviewInputSource = new Subject(); + mappingPreviewInput$ = this.mappingPreviewInputSource.asObservable(); + mappingPreviewOutputSource = new Subject(); + mappingPreviewOutput$ = this.mappingPreviewOutputSource.asObservable(); + mappingPreviewErrorSource = new Subject(); + mappingPreviewError$ = this.mappingPreviewErrorSource.asObservable(); + + private mappingPreviewInputSubscription?: Subscription; + private mappingUpdatedSubscription?: Subscription; + + constructor(private api: typeof ky) {} + + /** + * Enable Mapping Preview. + */ + enableMappingPreview(): void { + if (this.cfg.initCfg.baseMappingServiceUrl == null) { + // process mapping service not configured. + return; + } + this.cfg.showMappingPreview = true; + this.mappingPreviewInputSubscription = + this.createMappingPreviewSubscription(); + this.mappingUpdatedSubscription = this.createMappingUpdatedSubscription(); + } + + private createMappingPreviewSubscription(): Subscription { + return this.mappingPreviewInput$.subscribe((inputFieldMapping) => { + if (!inputFieldMapping || !inputFieldMapping.isFullyMapped()) { + return; + } + let hasValue = false; + for (const sourceField of inputFieldMapping.getFields(true)) { + if (sourceField.value) { + hasValue = true; + break; + } + } + if (!hasValue) { + for (const targetField of inputFieldMapping.getFields(false)) { + if (targetField.value) { + hasValue = true; + break; + } + } + } + if (!hasValue) { + return; + } + const payload = this.createPreviewRequestBody(inputFieldMapping); + this.cfg.logger!.debug( + `Process Mapping Preview Request: ${JSON.stringify(payload)}` + ); + const url: string = + this.cfg.initCfg.baseMappingServiceUrl + 'mapping/process'; + this.api + .put(url, { json: payload }) + .json() + .then((body) => { + this.cfg.logger!.debug( + `Process Mapping Preview Response: ${JSON.stringify(body)}` + ); + this.processPreviewResponse(inputFieldMapping, body); + }) + .catch((error: any) => { + if ( + this.cfg.mappings && + this.cfg.mappings.activeMapping && + this.cfg.mappings.activeMapping === inputFieldMapping + ) { + this.cfg.errorService.addError( + new ErrorInfo({ + message: error, + level: ErrorLevel.ERROR, + mapping: inputFieldMapping, + scope: ErrorScope.MAPPING, + type: ErrorType.PREVIEW, + }) + ); + } + this.mappingPreviewErrorSource.next([ + new ErrorInfo({ message: error, level: ErrorLevel.ERROR }), + ]); + }); + }); + } + + private createPreviewRequestBody( + inputFieldMapping: MappingModel + ): IProcessMappingRequestContainer { + return { + ProcessMappingRequest: { + jsonType: PROCESS_MAPPING_REQUEST_JSON_TYPE, + mapping: MappingSerializer.serializeFieldMapping( + this.cfg, + inputFieldMapping, + 'preview', + false + ), + }, + }; + } + + private processPreviewResponse( + inputFieldMapping: MappingModel, + body: IProcessMappingResponseContainer + ) { + const answer = MappingSerializer.deserializeFieldMapping( + body.ProcessMappingResponse.mapping, + this.cfg + ); + for (const toWrite of inputFieldMapping.targetFields) { + for (const toRead of answer.targetFields) { + // TODO: check these non null operator + if ( + toWrite.field?.docDef?.id === toRead.field?.docDef.id && + toWrite.field?.path === toRead.field?.path + ) { + // TODO let field component subscribe mappingPreviewOutputSource instead of doing this + // TODO: check this non null operator + toWrite.field!.value = toRead.mappingField?.value!; + const index = answer.targetFields.indexOf(toRead); + if (index !== -1) { + answer.targetFields.splice(index, 1); + break; + } + } + } + } + this.mappingPreviewOutputSource.next(answer); + const audits = MappingSerializer.deserializeAudits( + body.ProcessMappingResponse.audits, + ErrorType.PREVIEW + ); + // TODO: check this non null operator + if (this.cfg.mappings!.activeMapping === inputFieldMapping) { + audits.forEach((a) => (a.mapping = inputFieldMapping)); + this.cfg.errorService.addError(...audits); + } + this.mappingPreviewErrorSource.next(audits); + } + + private createMappingUpdatedSubscription(): Subscription { + return this.cfg.mappingService.mappingUpdated$.subscribe(() => { + if (!this.cfg || !this.cfg.mappings || !this.cfg.mappings.activeMapping) { + return; + } + if (this.cfg.mappings.activeMapping.isFullyMapped()) { + this.mappingPreviewInputSource.next(this.cfg.mappings.activeMapping); + } + }); + } + + /** + * On mapping preview disable, clear any preview values and unsubscribe from + * both the mapping-updated and mapping-preview subscriptions. + */ + disableMappingPreview(): void { + let mappedValueCleared = false; + this.cfg.showMappingPreview = false; + + // Clear any preview values on mapping preview disable. + if (this.cfg.mappings?.activeMapping?.isFullyMapped()) { + for (const mapping of this.cfg.mappings.getAllMappings(true)) { + for (const mappedField of mapping.getAllFields()) { + if (mappedField.value?.length > 0 && !mappedField.isConstant()) { + mappedField.value = ''; + mappedValueCleared = true; + } + } + } + } + if (mappedValueCleared) { + this.cfg.mappingService.notifyMappingUpdated(); + } + if (this.mappingUpdatedSubscription) { + this.mappingUpdatedSubscription.unsubscribe(); + this.mappingUpdatedSubscription = undefined; + } + if (this.mappingPreviewInputSubscription) { + this.mappingPreviewInputSubscription.unsubscribe(); + this.mappingPreviewInputSubscription = undefined; + } + } + + /** + * Toggle Mapping Preview. + * @param enabled + */ + toggleMappingPreview(enabled: boolean) { + if (enabled) { + this.enableMappingPreview(); + } else { + this.disableMappingPreview(); + } + return enabled; + } +} diff --git a/packages/ui/src/core/utils/common-util.spec.ts b/packages/ui/src/core/utils/common-util.spec.ts new file mode 100644 index 000000000..e6d07bc94 --- /dev/null +++ b/packages/ui/src/core/utils/common-util.spec.ts @@ -0,0 +1,56 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { CommonUtil } from './common-util'; +import { Field } from '../models/field.model'; + +describe('CommonUtil', () => { + test('removeItemFromArray', () => { + const items = [{ foo0: 'bar0' }, { foo1: 'bar1' }, { foo2: 'bar2' }]; + const item = items[1]; + const itemsRemoved = [{ foo0: 'bar0' }, { foo2: 'bar2' }]; + const removed = CommonUtil.removeItemFromArray(item, items); + expect(removed).toBe(true); + expect(items).toEqual(itemsRemoved); + }); + + test('sanitizeJSON()', () => { + const buffer = '{}\u007F\uFFFF'; + const sanitized = CommonUtil.sanitizeJSON(buffer); + expect(sanitized).toBe('"{}\\u007f\\uffff"'); + }); + + test('objectize()', () => { + const objectized = CommonUtil.objectize('{"string": "test"}'); + expect(objectized.string).toBe('test'); + const f = new Field(); + f.name = 'dummy'; + const noop = CommonUtil.objectize(f); + expect(noop).toBe(f); + }); + + test('urlWithParameters', () => { + expect(CommonUtil.urlWithParameters('url:', {})).toBe('url:'); + expect(CommonUtil.urlWithParameters('url:', { a: '1' })).toBe('url:?a=1'); + expect(CommonUtil.urlWithParameters('url:?a=1', { b: '2' })).toBe( + 'url:?b=2' + ); + expect( + CommonUtil.urlWithParameters('url:?a=1&b=2', { b: '2', c: '3' }) + ).toBe('url:?b=2&c=3'); + expect(CommonUtil.urlWithParameters('url:?a=1&b=2', {})).toBe('url:'); + }); +}); diff --git a/packages/ui/src/core/utils/common-util.ts b/packages/ui/src/core/utils/common-util.ts new file mode 100644 index 000000000..28fad728f --- /dev/null +++ b/packages/ui/src/core/utils/common-util.ts @@ -0,0 +1,229 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { saveAs } from 'file-saver'; + +export class CommonUtil { + static removeItemFromArray(item: any, items: any[]): boolean { + if (item == null || items == null || items.length === 0) { + return false; + } + let i = 0; + let itemWasRemoved = false; + while (i < items.length) { + if (items[i] === item) { + items.splice(i, 1); + itemWasRemoved = true; + } else { + i++; + } + } + return itemWasRemoved; + } + + /** + * Split a source string by the specified substring into a string array. + * + * @param inStr + * @param splitMarker + */ + static splitByString(inStr: string, splitMarker: string): string[] { + let splitLoc = 0; + let splitLocEnd = 0; + let fragment = null; + const splitMarkerLen = splitMarker.length; + const result: string[] = []; + + if ( + inStr === null || + inStr.length === 0 || + splitMarker === null || + splitMarkerLen === 0 + ) { + return []; + } + while (splitLoc !== -1) { + splitLoc = inStr.indexOf(splitMarker); + splitLocEnd = inStr.indexOf(splitMarker, splitLoc + 1); + fragment = inStr.substring(splitLoc, splitLocEnd); + result.push(fragment); + inStr = inStr.substring(splitLocEnd + splitMarkerLen); + } + return result; + } + + /** + * Turn a string into a byte array. + * + * @param str + */ + static str2bytes(str: string): Uint8Array { + const bytes = new Uint8Array(str.length); + for (let i = 0; i < str.length; i++) { + bytes[i] = str.charCodeAt(i); + } + return bytes; + } + + /** + * Asynchronously read from the specified file and return as a string. + * + * @param fileName + * @param reader + */ + static async readFile(file: File, reader: FileReader): Promise { + return new Promise((resolve) => { + reader.onload = () => { + const fileBody = reader.result; + resolve(fileBody as string); + }; + reader.readAsText(file); + }); + } + + /** + * Perform an asynchronous binary read of the specified file name with the specified reader object. + * + * @param fileName - file to read + * @param reader - reader object + */ + static async readBinaryFile( + file: File, + reader: FileReader + ): Promise { + return new Promise((resolve) => { + reader.onload = () => { + const fileBody = new Int8Array(reader.result as ArrayBuffer); + resolve(fileBody); + }; + reader.readAsArrayBuffer(file); + }); + } + + /** + * Asynchronously write the specified file content (Blob) to the specified file name. It will appear + * in the user's local Downloads directory (or equivalent). + * + * @param fileContent + * @param fName + */ + static async writeFile(fileContent: Blob, fName: string): Promise { + return new Promise((resolve) => { + saveAs(fileContent, fName); + resolve(true); + }); + } + + /** + * Convert a camel-case string into human-readable form. + * + * @param camelCaseString + */ + static toDisplayable(camelCaseString: string): string { + if ( + typeof camelCaseString === 'undefined' || + !camelCaseString || + camelCaseString.indexOf(' ') >= 0 + ) { + return camelCaseString; + } + let displayableString: string = camelCaseString.charAt(0).toUpperCase(); + for (let index = 1; index < camelCaseString.length; index++) { + const chr: string = camelCaseString.charAt(index); + if (chr !== chr.toLowerCase()) { + displayableString += ' '; + } + displayableString += chr; + } + return displayableString; + } + + /** + * Return a string path that fits into the width provided. Capture as much of the leaf + * as possible, then as much of the beginning with the remaining space. + * + * @param path + * @param fieldWidth + */ + static extractDisplayPath(path: string, fieldWidth: number): string { + const MAX_PATH_WIDTH = fieldWidth - 4; // account for length of ellipsis + + if (!path || MAX_PATH_WIDTH <= 0) { + return ''; + } + if (path.length <= MAX_PATH_WIDTH) { + return path; + } + const segmentedPath = path.split('/'); + const leaf = '/' + segmentedPath[segmentedPath.length - 1]; + if (leaf.length >= MAX_PATH_WIDTH) { + return leaf.substr(0, MAX_PATH_WIDTH); + } + const delta = MAX_PATH_WIDTH - leaf.length; + return path.substr(0, delta) + '...' + leaf; + } + + /** + * Use the JSON utility to translate the specified buffer into a JSON buffer - then replace any + * non-ascii character encodings with unicode escape sequences. + * + * @param buffer + */ + static sanitizeJSON(buffer: string): string { + let jsonBuffer = JSON.stringify(buffer); + jsonBuffer = jsonBuffer.replace(/[\u007F-\uFFFF]/g, function (chr) { + return '\\u' + ('0000' + chr.charCodeAt(0).toString(16)).substr(-4); + }); + return jsonBuffer; + } + + /** + * Restrict JSON parsing to the document management service. + * + * @param buffer + */ + static objectize(buffer: any): any { + if (typeof buffer === 'string') { + return JSON.parse(buffer); + } else { + return buffer; + } + } + + /** + * Returns the given URL with the query parameters replaced with the new + * values. + * + * @param url - the URL + * @param parameters - the new parameters to set + */ + static urlWithParameters( + url: string, + parameters: string[][] | Record | string | URLSearchParams + ): string { + const newUrl = new URL(url); + // we can't invoke delete in a loop over uri.searchParams, results + // become unreliable, so we gather the keys for deletion, also the + // URLSearchParams.keys() method is not available for some reason + const keys: string[] = []; + newUrl.searchParams.forEach((_, k) => keys.push(k)); + keys.forEach((k) => newUrl.searchParams.delete(k)); + + const params = new URLSearchParams(parameters); + params.forEach((v, k) => newUrl.searchParams.append(k, v)); + + return newUrl.toString(); + } +} diff --git a/packages/ui/src/core/utils/document-inspection-util.ts b/packages/ui/src/core/utils/document-inspection-util.ts new file mode 100644 index 000000000..bbf918dfb --- /dev/null +++ b/packages/ui/src/core/utils/document-inspection-util.ts @@ -0,0 +1,182 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CollectionType, + DocumentType, + InspectionType, +} from '../contracts/common'; +import { + ConfigModel, + DocumentInitializationModel, +} from '../models/config.model'; + +import { CommonUtil } from './common-util'; +import { CsvInspectionModel } from '../models/inspect/csv-inspection.model'; +import { DocumentDefinition } from '../models/document-definition.model'; +import { DocumentInspectionModel } from '../models/inspect/document-inspection.model'; +import { JavaInspectionModel } from '../models/inspect/java-inspection.model'; +import { JsonInspectionModel } from '../models/inspect/json-inspection.model'; +import { XmlInspectionModel } from '../models/inspect/xml-inspection.model'; + +export class DocumentInspectionUtil { + /** + * Create one of the subclass of {@link DocumentInspectionModel} which + * corresponds to the existing {@link DocumentDefinition} passed in as an argument. + * @see fromNonJavaProperties() + * @see fromJavaProperties() + * + * @param cfg + * @param doc + * @returns + */ + static fromDocumentDefinition( + cfg: ConfigModel, + doc: DocumentDefinition + ): DocumentInspectionModel { + switch (doc.type) { + case DocumentType.JAVA: + return new JavaInspectionModel(cfg, doc); + case DocumentType.JSON: + return new JsonInspectionModel(cfg, doc); + case DocumentType.XSD: + case DocumentType.XML: + return new XmlInspectionModel(cfg, doc); + case DocumentType.CSV: + return new CsvInspectionModel(cfg, doc); + default: + throw new Error( + `Document type '${doc.type}' is not supported for inspection` + ); + } + } + + /** + * Create {@link JavaInspectionModel} from arguments and add corresponding + * {@link DocumentDefinition} into {@link ConfigModel}. + * @see fromDocumentDefinition() + * @see fromNonJavaProperties() + * @todo https://github.com/atlasmap/atlasmap/issues/2919 + * Assign GUID to Java Document ID as well, and use simple class name for default Document name + * + * @param cfg + * @param className + * @param isSource + * @param collectionType + * @param collectionClassName + * @returns + */ + static fromJavaProperties( + cfg: ConfigModel, + className: string, + isSource: boolean, + collectionType = CollectionType.NONE, + collectionClassName?: string + ): JavaInspectionModel { + const model: DocumentInitializationModel = + new DocumentInitializationModel(); + model.id = className; + const simpleName = className.split('.').pop(); + model.name = simpleName ? simpleName : ''; + model.type = DocumentType.JAVA; + model.inspectionType = InspectionType.JAVA_CLASS; + model.inspectionSource = className; + model.inspectionParameters = { '': '' }; + model.isSource = isSource; + model.collectionType = collectionType; + model.collectionClassName = collectionClassName; + model.description = 'Java document class ' + className; + if (collectionType && collectionType !== CollectionType.NONE) { + model.description += ' collection type: ' + collectionType; + if (collectionClassName) { + model.description += ' collection class name: ' + collectionClassName; + } + } + DocumentInspectionUtil.removeDocumentIfAlreadyExists( + cfg, + model.id, + isSource + ); + const doc = cfg.addDocument(model); + return new JavaInspectionModel(cfg, doc); + } + + /** + * Create one of the subclass of {@link DocumentInspectionModel} + * other than Java from arguments and add corresponding + * {@link DocumentDefinition} into {@link ConfigModel}.. + * @see fromDocumentDefinition() + * @see fromJavaProperties() + * + * @param cfg + * @param id + * @param name + * @param documentType + * @param inspectionType + * @param inspectionSource + * @param isSource + * @param inspectionParameters + * @returns + */ + static fromNonJavaProperties( + cfg: ConfigModel, + id: string, + name: string, + documentType: DocumentType, + inspectionType: InspectionType, + inspectionSource: string, + isSource: boolean, + inspectionParameters?: { [key: string]: string } + ): DocumentInspectionModel { + const model: DocumentInitializationModel = + new DocumentInitializationModel(); + model.name = name; + model.id = id; + model.type = documentType; + model.inspectionType = inspectionType; + model.inspectionSource = inspectionSource; + if (inspectionParameters) { + model.inspectionParameters = inspectionParameters; + } else { + model.inspectionParameters = { '': '' }; + } + model.isSource = isSource; + model.description = isSource ? 'Source document ' : 'Target document '; + model.description += name + ' type: ' + documentType; + DocumentInspectionUtil.removeDocumentIfAlreadyExists( + cfg, + model.id, + isSource + ); + const doc = cfg.addDocument(model); + return this.fromDocumentDefinition(cfg, doc); + } + + private static removeDocumentIfAlreadyExists( + cfg: ConfigModel, + id: string, + isSource: boolean + ) { + // Clear out the existing document if importing the same name. + const existing = cfg.getDocForIdentifier(id, isSource); + if (existing) { + if (isSource) { + CommonUtil.removeItemFromArray(existing, cfg.sourceDocs); + } else { + CommonUtil.removeItemFromArray(existing, cfg.targetDocs); + } + } + } +} diff --git a/packages/ui/src/core/utils/guid.ts b/packages/ui/src/core/utils/guid.ts new file mode 100644 index 000000000..8ddcfa4c0 --- /dev/null +++ b/packages/ui/src/core/utils/guid.ts @@ -0,0 +1,31 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +/* + Generate a global unique identifier. + Ref: https://stackoverflow.com/questions/26501688/a-typescript-guid-class +*/ +export class Guid { + static newGuid() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( + /[xy]/g, + function (c) { + var r = (Math.random() * 16) | 0, + v = c === 'x' ? r : (r & 0x3) | 0x8; + return v.toString(16); + } + ); + } +} diff --git a/packages/ui/src/core/utils/index.ts b/packages/ui/src/core/utils/index.ts new file mode 100644 index 000000000..78b4a4cfd --- /dev/null +++ b/packages/ui/src/core/utils/index.ts @@ -0,0 +1,22 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './common-util'; +export * from './document-inspection-util'; +export * from './guid'; +export * from './lookup-table-util'; +export * from './mapping-digest-util'; +export * from './mapping-serializer'; +export * from './mapping-util'; diff --git a/packages/ui/src/core/utils/lookup-table-util.ts b/packages/ui/src/core/utils/lookup-table-util.ts new file mode 100644 index 000000000..4e47c6aec --- /dev/null +++ b/packages/ui/src/core/utils/lookup-table-util.ts @@ -0,0 +1,200 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ErrorInfo, ErrorScope, ErrorType } from '../models/error.model'; +import { LookupTable, LookupTableEntry } from '../models/lookup-table.model'; + +import { ConfigModel } from '../models/config.model'; +import { Field } from '../models/field.model'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { MappingModel } from '../models/mapping.model'; +import { TransitionMode } from '../models/transition.model'; + +const EnumerationUnspecified = '[ None ]'; + +/** + * Lookup table structure. + */ +export class LookupTableData { + sourceEnumValue: string; + targetEnumValues: string[]; + selectedTargetEnumValue: string; +} + +/** + * Static lookup table utility methods. + */ +export class LookupTableUtil { + static populateMappingLookupTable( + mappingDefinition: MappingDefinition, + m: MappingModel + ): void { + if ( + !( + m.transition.mode === TransitionMode.ENUM && + !m.transition.lookupTableName && + m.getFields(true).length === 1 && + m.getFields(false).length === 1 + ) + ) { + return; + } + let inputIdentifier: string | undefined; + let outputIdentifier: string | undefined; + + const inputField: Field = m.getFields(true)[0]; + if (inputField) { + inputIdentifier = inputField.name + '-' + inputField.docDef.id; + } + const outputField: Field = m.getFields(true)[0]; + if (outputField) { + outputIdentifier = outputField.name + '-' + outputField.docDef.id; + } + if (inputIdentifier && outputIdentifier) { + let table: LookupTable = mappingDefinition.getTableBySourceTarget( + inputIdentifier, + outputIdentifier + ); + if (!table) { + table = new LookupTable(); + table.sourceIdentifier = inputIdentifier; + table.targetIdentifier = outputIdentifier; + mappingDefinition.addTable(table); + m.transition.lookupTableName = table.name; + } else { + m.transition.lookupTableName = table.name; + } + } + } + + static updateLookupTables(mappingDefinition: MappingDefinition) { + for (const t of mappingDefinition.getTables()) { + if (t.sourceIdentifier && t.targetIdentifier) { + continue; + } + const m: MappingModel = LookupTableUtil.getFirstMappingForLookupTable( + mappingDefinition, + t.name + ); + if (m && m.transition.lookupTableName) { + if (!t.sourceIdentifier) { + const inputField: Field = m.getFields(true)[0]; + if (inputField) { + t.sourceIdentifier = inputField.classIdentifier; + } + } + if (!t.targetIdentifier) { + const outputField: Field = m.getFields(false)[0]; + if (outputField) { + t.targetIdentifier = outputField.classIdentifier; + } + } + } + } + for (const m of mappingDefinition.mappings) { + LookupTableUtil.populateMappingLookupTable(mappingDefinition, m); + } + } + + private static getFirstMappingForLookupTable( + mappingDefinition: MappingDefinition, + lookupTableName: string + ): MappingModel { + // TODO: check this non null operator + return mappingDefinition.mappings.find( + (m) => m.transition.lookupTableName === lookupTableName + )!; + } + + private static errorNoTable(cfg: ConfigModel, mapping: MappingModel) { + cfg.errorService.addError( + new ErrorInfo({ + message: + 'Could not find enumeration lookup table ' + + mapping.transition?.lookupTableName + + ' for mapping.', + scope: ErrorScope.MAPPING, + type: ErrorType.INTERNAL, + mapping: mapping, + }) + ); + } + + static getEnumerationValues( + cfg: ConfigModel, + mapping: MappingModel + ): LookupTableData[] { + if (!cfg || !cfg.mappings || !mapping) { + return []; + } + const targetField: Field = mapping.getFields(false)[0]; + const targetValues: string[] = []; + targetValues.push('[ None ]'); + for (const e of targetField.enumValues) { + targetValues.push(e.name); + } + + const table = cfg.mappings.getTableByName( + mapping.transition?.lookupTableName! + ); + if (!table) { + LookupTableUtil.errorNoTable(cfg, mapping); + return []; + } + + const enumVals: LookupTableData[] = []; + const sourceField: Field = mapping.getFields(true)[0]; + for (const sourceEnum of sourceField.enumValues) { + const tableData: LookupTableData = new LookupTableData(); + tableData.sourceEnumValue = sourceEnum.name; + tableData.targetEnumValues = targetValues; + const selected: LookupTableEntry | null = table.getEntryForSource( + tableData.sourceEnumValue, + false + ); + tableData.selectedTargetEnumValue = + selected == null ? EnumerationUnspecified : selected.targetValue; + enumVals.push(tableData); + } + return enumVals; + } + + static updateEnumerationValues( + cfg: ConfigModel, + mapping: MappingModel, + enumerationValues: LookupTableData[] + ) { + if (!cfg || !cfg.mappings || !mapping) { + return; + } + const table = cfg.mappings.getTableByName( + mapping.transition?.lookupTableName! + ); + if (!table) { + LookupTableUtil.errorNoTable(cfg, mapping); + return; + } + table.lookupEntry = []; + for (const enumValue of enumerationValues) { + if (enumValue.selectedTargetEnumValue === EnumerationUnspecified) { + continue; + } + const lte: LookupTableEntry = new LookupTableEntry(); + lte.sourceValue = enumValue.sourceEnumValue; + lte.targetValue = enumValue.selectedTargetEnumValue; + table.lookupEntry.push(lte); + } + } +} diff --git a/packages/ui/src/core/utils/mapping-digest-util.spec.ts b/packages/ui/src/core/utils/mapping-digest-util.spec.ts new file mode 100644 index 000000000..16c65495d --- /dev/null +++ b/packages/ui/src/core/utils/mapping-digest-util.spec.ts @@ -0,0 +1,26 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { ConfigModel } from '../models'; +import { MappingDigestUtil } from './mapping-digest-util'; + +describe('MappingDigestUtil', () => { + test('generateExportBlockData()', () => { + expect( + MappingDigestUtil.generateMappingDigest(ConfigModel.getConfig(), {}) + ).toBeTruthy(); + }); +}); diff --git a/packages/ui/src/core/utils/mapping-digest-util.ts b/packages/ui/src/core/utils/mapping-digest-util.ts new file mode 100644 index 000000000..ad3308f48 --- /dev/null +++ b/packages/ui/src/core/utils/mapping-digest-util.ts @@ -0,0 +1,49 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ADMDigest } from '../contracts/adm-digest'; +import { CommonUtil } from './common-util'; +import { ConfigModel } from '../models/config.model'; + +export class MappingDigestUtil { + static generateMappingDigest(cfg: ConfigModel, mappingJson: any): ADMDigest { + let mappingDigest: ADMDigest = { + exportMappings: { value: '' }, + exportMeta: [], + exportBlockData: [], + }; + + // Retrieve the JSON mappings buffer from the server. + const jsonBuffer = JSON.stringify(mappingJson); + if (jsonBuffer) { + mappingDigest.exportMappings.value = CommonUtil.sanitizeJSON(jsonBuffer); + } + + for (const doc of cfg.getAllDocs()) { + if (!doc.isPropertyOrConstant) { + mappingDigest.exportMeta.push({ + name: doc.name, + dataSourceType: doc.type, + id: doc.id, + inspectionType: doc.inspectionType, + inspectionParameters: doc.inspectionParameters, + isSource: doc.isSource, + }); + mappingDigest.exportBlockData.push({ value: doc.inspectionSource }); + } + } + return mappingDigest; + } +} diff --git a/packages/ui/src/core/utils/mapping-serializer.spec.ts b/packages/ui/src/core/utils/mapping-serializer.spec.ts new file mode 100644 index 000000000..5a26b827e --- /dev/null +++ b/packages/ui/src/core/utils/mapping-serializer.spec.ts @@ -0,0 +1,1195 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfigModel, + DocumentInitializationModel, +} from '../models/config.model'; +import { + DocumentDefinition, + NamespaceModel, +} from '../models/document-definition.model'; +import { + DocumentType, + FieldStatus, + FieldType, + InspectionType, +} from '../contracts/common'; +import { IAtlasMappingContainer, IMapping } from '../contracts/mapping'; + +import { CsvInspectionModel } from '../models/inspect/csv-inspection.model'; +import { DocumentInspectionUtil } from './document-inspection-util'; +import { ExpressionModel } from '../models/expression.model'; +import { Field } from '../models/field.model'; +import { FieldAction } from '../models/field-action.model'; +import { InitializationService } from '../services'; +import { LookupTable } from '../models/lookup-table.model'; +import { LookupTableUtil } from './lookup-table-util'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { MappingModel } from '../models/mapping.model'; +import { MappingSerializer } from '../utils/mapping-serializer'; +import { MappingUtil } from '../utils/mapping-util'; +import { Multiplicity } from '../contracts/field-action'; +import { TestUtils } from '../../test/test-util'; +import { TransitionMode } from '../models/transition.model'; + +import atlasMappingCSV from '../../../../test-resources/mapping/atlasmapping-csv.json'; +import atlasMappingCollExprMapping from '../../../../test-resources/mapping/atlasmapping-coll-expr-mapping.json'; +import atlasMappingCollExprPreview from '../../../../test-resources/mapping/atlasmapping-coll-expr-preview.json'; +import atlasMappingCollRefExprPreview from '../../../../test-resources/mapping/atlasmapping-coll-ref-expr-preview.json'; +import atlasMappingEnumLookupTableMapping from '../../../../test-resources/mapping/atlasmapping-enum-lookup-table.json'; +import atlasMappingExprPropJson from '../../../../test-resources/mapping/atlasmapping-expr-prop.json'; +import atlasMappingSplitCollapseJson from '../../../../test-resources/mapping/atlasmapping-split-collapse.json'; +import atlasMappingSplitJson from '../../../../test-resources/mapping/atlasmapping-split.json'; +import atlasMappingTestJson from '../../../../test-resources/mapping/atlasmapping-test.json'; +import atlasmapFieldActionJson from '../../../../test-resources/fieldActions/atlasmap-field-action.json'; + +import ky from 'ky'; + +function createTwitter4jSourceDoc() { + const twitter = new DocumentDefinition(); + twitter.type = DocumentType.JAVA; + twitter.name = 'twitter4j.Status'; + twitter.isSource = true; + twitter.id = 'twitter4j.Status'; + twitter.uri = 'atlas:java?className=twitter4j.Status'; + twitter.description = 'random desc'; + const user = new Field(); + user.name = 'User'; + user.path = '/User'; + user.type = FieldType.COMPLEX; + twitter.addField(user); + const userName = new Field(); + userName.name = 'Name'; + userName.path = '/User/Name'; + userName.type = FieldType.STRING; + userName.parentField = user; + twitter.addField(userName); + const userScreenName = new Field(); + userScreenName.name = 'ScreenName'; + userScreenName.path = '/User/ScreenName'; + userScreenName.type = FieldType.STRING; + userScreenName.parentField = user; + twitter.addField(userScreenName); + const text = new Field(); + text.name = 'Text'; + text.path = '/Text'; + text.type = FieldType.STRING; + twitter.addField(text); + twitter.initializeFromFields(); + return twitter; +} + +function createSomeJsonSourceSourceDoc() { + const jsonSource = new DocumentDefinition(); + jsonSource.type = DocumentType.JSON; + jsonSource.name = 'SomeJsonSource'; + jsonSource.isSource = true; + jsonSource.id = 'SomeJsonSource'; + jsonSource.uri = 'atlas:json:SomeJsonSource'; + jsonSource.description = 'random desc'; + const js0 = new Field(); + js0.name = 'js0'; + js0.docDef = jsonSource; + js0.path = '/js0'; + js0.type = FieldType.STRING; + jsonSource.addField(js0); + const js1 = new Field(); + js1.name = 'js1'; + js1.docDef = jsonSource; + js1.path = '/js1'; + js1.type = FieldType.STRING; + jsonSource.addField(js1); + jsonSource.initializeFromFields(); + return jsonSource; +} + +function createPrimitivesField() { + const primitives = new Field(); + primitives.name = 'primitives'; + primitives.path = '/primitives'; + primitives.type = FieldType.COMPLEX; + primitives.documentField.status = FieldStatus.SUPPORTED; + return primitives; +} + +function createJSONSchemaSourceSourceDoc() { + const jsonSchemaSource = new DocumentDefinition(); + jsonSchemaSource.type = DocumentType.JSON; + jsonSchemaSource.name = 'JSONSchemaSource'; + jsonSchemaSource.isSource = true; + jsonSchemaSource.id = 'JSONSchemaSource'; + jsonSchemaSource.uri = 'atlas:json:JSONSchemaSource'; + jsonSchemaSource.description = 'random desc'; + const jc0 = new Field(); + jc0.name = 'addressList'; + jc0.docDef = jsonSchemaSource; + jc0.path = '/addressList<>'; + jc0.type = FieldType.COMPLEX; + jc0.isCollection = true; + jc0.documentField.status = FieldStatus.SUPPORTED; + jsonSchemaSource.addField(jc0); + const jcc0 = new Field(); + jcc0.name = 'city'; + jcc0.docDef = jsonSchemaSource; + jcc0.path = '/addressList<>/city'; + jcc0.type = FieldType.STRING; + jcc0.isPrimitive = true; + jcc0.parentField = jc0; + jc0.children.push(jcc0); + jsonSchemaSource.addField(jcc0); + const jcc1 = new Field(); + jcc1.name = 'state'; + jcc1.docDef = jsonSchemaSource; + jcc1.path = '/addressList<>/state'; + jcc1.type = FieldType.STRING; + jcc1.isPrimitive = true; + jcc1.parentField = jc0; + jc0.children.push(jcc1); + jsonSchemaSource.addField(jcc1); + const jcc2 = new Field(); + jcc2.name = 'street'; + jcc2.docDef = jsonSchemaSource; + jcc2.path = '/addressList<>/street'; + jcc2.type = FieldType.STRING; + jcc2.isPrimitive = true; + jcc2.parentField = jc0; + jc0.children.push(jcc2); + jsonSchemaSource.addField(jcc2); + const jcc3 = new Field(); + jcc3.name = 'zip'; + jcc3.docDef = jsonSchemaSource; + jcc3.path = '/addressList<>/zip'; + jcc3.type = FieldType.STRING; + jcc3.isPrimitive = true; + jcc3.parentField = jc0; + jc0.children.push(jcc3); + jsonSchemaSource.addField(jcc3); + const primitives = createPrimitivesField(); + jsonSchemaSource.addField(primitives); + const stringPrimitive = new Field(); + stringPrimitive.name = 'stringPrimitive'; + stringPrimitive.docDef = jsonSchemaSource; + stringPrimitive.path = '/primitives/stringPrimitive'; + stringPrimitive.type = FieldType.STRING; + stringPrimitive.isPrimitive = true; + stringPrimitive.parentField = primitives; + primitives.children.push(stringPrimitive); + jsonSchemaSource.addField(stringPrimitive); + jsonSchemaSource.initializeFromFields(); + return jsonSchemaSource; +} + +function createSomeXmlSourceSourceDoc() { + const xmlSource = new DocumentDefinition(); + xmlSource.type = DocumentType.XML; + xmlSource.name = 'SomeXmlSource'; + xmlSource.isSource = true; + xmlSource.id = 'SomeXmlSource'; + xmlSource.uri = 'atlas:xml:SomeXmlSource'; + xmlSource.description = 'random desc'; + const xs0 = new Field(); + xs0.name = 'xs0'; + xs0.docDef = xmlSource; + xs0.path = '/xs0'; + xs0.type = FieldType.STRING; + xmlSource.addField(xs0); + const xs1 = new Field(); + xs1.name = 'xs1'; + xs1.docDef = xmlSource; + xs1.path = '/xs1'; + xs1.type = FieldType.STRING; + xmlSource.addField(xs1); + xmlSource.initializeFromFields(); + return xmlSource; +} + +function createSalesforceContactTargetDoc() { + const contact = new DocumentDefinition(); + contact.type = DocumentType.JAVA; + contact.name = 'salesforce.Contact'; + contact.isSource = false; + contact.id = 'salesforce.Contact'; + contact.uri = 'atlas:java?className=org.apache.camel.salesforce.dto.Contact'; + contact.description = 'random desc'; + const desc = new Field(); + desc.name = 'Description'; + desc.docDef = contact; + desc.path = '/Description'; + desc.type = FieldType.STRING; + contact.addField(desc); + const title = new Field(); + title.name = 'Title'; + title.docDef = contact; + title.path = '/Title'; + title.type = FieldType.STRING; + contact.addField(title); + const firstName = new Field(); + firstName.name = 'FirstName'; + firstName.docDef = contact; + firstName.path = '/FirstName'; + firstName.type = FieldType.STRING; + contact.addField(firstName); + const lastName = new Field(); + lastName.name = 'LastName'; + lastName.docDef = contact; + lastName.path = '/LastName'; + lastName.type = FieldType.STRING; + contact.addField(lastName); + contact.initializeFromFields(); + return contact; +} + +function createSomeJsonTargetTargetDoc() { + const jsonTarget = new DocumentDefinition(); + jsonTarget.type = DocumentType.JSON; + jsonTarget.name = 'SomeJsonTarget'; + jsonTarget.isSource = false; + jsonTarget.id = 'SomeJsonTarget'; + jsonTarget.uri = 'atlas:json:SomeJsonTarget'; + jsonTarget.description = 'random desc'; + const jt0 = new Field(); + jt0.name = 'jt0'; + jt0.docDef = jsonTarget; + jt0.path = '/jt0'; + jt0.type = FieldType.STRING; + jsonTarget.addField(jt0); + const jt1 = new Field(); + jt1.name = 'jt1'; + jt1.docDef = jsonTarget; + jt1.path = '/jt1'; + jt1.type = FieldType.STRING; + jsonTarget.addField(jt1); + jsonTarget.initializeFromFields(); + return jsonTarget; +} + +function createJSONSchemaSourceTargetDoc() { + const jsonSchemaSource = new DocumentDefinition(); + jsonSchemaSource.type = DocumentType.JSON; + jsonSchemaSource.name = 'JSONSchemaSource'; + jsonSchemaSource.isSource = false; + jsonSchemaSource.id = 'JSONSchemaSource'; + jsonSchemaSource.uri = 'atlas:json:JSONSchemaSource'; + jsonSchemaSource.description = 'random desc'; + const jtc0 = new Field(); + jtc0.name = 'addressList'; + jtc0.docDef = jsonSchemaSource; + jtc0.path = '/addressList<>'; + jtc0.type = FieldType.COMPLEX; + jtc0.isCollection = true; + jtc0.documentField.status = FieldStatus.SUPPORTED; + jsonSchemaSource.addField(jtc0); + const jtcc0 = new Field(); + jtcc0.name = 'city'; + jtcc0.docDef = jsonSchemaSource; + jtcc0.path = '/addressList<>/city'; + jtcc0.type = FieldType.STRING; + jtcc0.isPrimitive = true; + jtcc0.parentField = jtc0; + jtc0.children.push(jtcc0); + jsonSchemaSource.addField(jtcc0); + const jtcc1 = new Field(); + jtcc1.name = 'zip'; + jtcc1.docDef = jsonSchemaSource; + jtcc1.path = '/addressList<>/zip'; + jtcc1.type = FieldType.STRING; + jtcc1.isPrimitive = true; + jtcc1.parentField = jtc0; + jtc0.children.push(jtcc1); + jsonSchemaSource.addField(jtcc1); + const tprimitives = new Field(); + tprimitives.name = 'primitives'; + tprimitives.docDef = jsonSchemaSource; + tprimitives.path = '/primitives'; + tprimitives.type = FieldType.COMPLEX; + tprimitives.documentField.status = FieldStatus.SUPPORTED; + jsonSchemaSource.addField(tprimitives); + const tstringPrimitive = new Field(); + tstringPrimitive.name = 'stringPrimitive'; + tstringPrimitive.docDef = jsonSchemaSource; + tstringPrimitive.path = '/primitives/stringPrimitive'; + tstringPrimitive.type = FieldType.STRING; + tstringPrimitive.isPrimitive = true; + tstringPrimitive.parentField = createPrimitivesField(); + tprimitives.children.push(tstringPrimitive); + jsonSchemaSource.addField(tstringPrimitive); + jsonSchemaSource.initializeFromFields(); + return jsonSchemaSource; +} + +function createXMLInstanceSourceTargetDoc() { + const xmlTarget = new DocumentDefinition(); + xmlTarget.type = DocumentType.XML; + xmlTarget.name = 'XMLInstanceSource'; + xmlTarget.isSource = false; + xmlTarget.id = 'XMLInstanceSource'; + xmlTarget.uri = 'atlas:xml:XMLInstanceSource'; + xmlTarget.description = 'random desc'; + const ns: NamespaceModel = new NamespaceModel(); + ns.alias = 'xsi'; + ns.uri = 'http://www.w3.org/2001/XMLSchema-instance'; + ns.locationUri = 'http://www.w3.org/2001/XMLSchema-instance'; + ns.isTarget = true; + xmlTarget.namespaces.push(ns); + const xt0 = new Field(); + xt0.name = 'xt0'; + xt0.path = '/xt0'; + xt0.type = FieldType.STRING; + xmlTarget.addField(xt0); + const xt1 = new Field(); + xt1.name = 'xt1'; + xt1.path = '/xt1'; + xt1.type = FieldType.STRING; + xmlTarget.addField(xt1); + const xt2 = new Field(); + xt2.name = 'xt2'; + xt2.path = '/xt2'; + xt2.type = FieldType.STRING; + xmlTarget.addField(xt2); + xmlTarget.initializeFromFields(); + return xmlTarget; +} + +function createAllDocs(cfg: ConfigModel) { + // Source Java doc + cfg.sourceDocs.push(createTwitter4jSourceDoc()); + // Source JSON doc + cfg.sourceDocs.push(createSomeJsonSourceSourceDoc()); + // Source JSON doc - collection + cfg.sourceDocs.push(createJSONSchemaSourceSourceDoc()); + // Source XML doc + cfg.sourceDocs.push(createSomeXmlSourceSourceDoc()); + // Target Java doc + cfg.targetDocs.push(createSalesforceContactTargetDoc()); + // Target JSON doc + cfg.targetDocs.push(createSomeJsonTargetTargetDoc()); + // Target JSON doc - collection + cfg.targetDocs.push(createJSONSchemaSourceTargetDoc()); + // Target XML Namespace doc + cfg.targetDocs.push(createXMLInstanceSourceTargetDoc()); +} + +describe('MappingSerializer', () => { + let cfg: ConfigModel; + let tName = ''; + beforeEach(() => { + const init = new InitializationService(ky); + init.initialize(); + cfg = init.cfg; + cfg.mappings = new MappingDefinition(); + }); + + tName = 'deserialize & serialize mapping definition'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + const mappingJson = atlasMappingTestJson as IAtlasMappingContainer; + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + expect(cfg?.mappings?.mappings?.length).toEqual( + Object.keys( + mappingJson?.AtlasMapping?.mappings?.mapping as IMapping[] + ).length + ); + + const serialized = MappingSerializer.serializeMappings(cfg); + //console.log(JSON.stringify(serialized, null, 2)); + expect( + Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) + .length + ).toEqual(cfg?.mappings?.mappings?.length); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'deserialize & serialize conditional expression mapping definitions'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + cfg.mappings = new MappingDefinition(); + let fieldMapping = null; + const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; + let expressionIndex = 0; + + // Find the expression input field group from the raw JSON. + for (fieldMapping of mappingJson?.AtlasMapping?.mappings + ?.mapping as IMapping[]) { + if ( + fieldMapping.expression && + fieldMapping.expression.startsWith('if (') + ) { + break; + } + expressionIndex++; + } + // console.log(JSON.stringify(mappingJson, null, 2)); + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + expect(cfg.mappings.mappings.length).toEqual( + Object.keys(mappingJson.AtlasMapping?.mappings?.mapping as IMapping[]) + .length + ); + + const mapping = cfg.mappings?.mappings[expressionIndex]; + expect(mapping).toBeDefined(); + const mfields = mapping.getMappedFields(true); + let i = 0; + if (!mfields || !fieldMapping?.inputFieldGroup?.field) { + fail(); + } + for (const field of fieldMapping.inputFieldGroup.field) { + expect(mfields[i]?.mappingField?.path).toEqual(field.path); + i++; + } + expect(fieldMapping.inputFieldGroup.field[0].docId).toContain( + 'DOC.Properties' + ); + + const serialized = MappingSerializer.serializeMappings(cfg); + //console.log(JSON.stringify(serialized, null, 2)); + expect( + Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) + .length + ).toEqual(cfg.mappings?.mappings?.length); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'serialize many-to-one action'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + const mapping = new MappingModel(); + mapping.transition.mode = TransitionMode.MANY_TO_ONE; + const actionDef = cfg.fieldActionService.getActionDefinitionForName( + 'Concatenate', + Multiplicity.MANY_TO_ONE + ); + if (!actionDef) { + fail('Concatenate action defiition not found'); + } + mapping.transition.transitionFieldAction = + FieldAction.create(actionDef); + const f = new Field(); + f.path = '/Text'; + const docDef = cfg.getDocForIdentifier('twitter4j.Status', true); + if (!docDef) { + fail('twitter4j.Status document not found'); + } + f.docDef = docDef; + mapping.addField(f, true); + const json = MappingSerializer.serializeFieldMapping( + cfg, + mapping, + 'm1', + true + ); + expect(json.inputField).toBeFalsy(); + expect(json.inputFieldGroup!.field!.length).toEqual(1); + expect(json.inputFieldGroup!.field![0].actions).toBeFalsy(); + expect(json.inputFieldGroup!.actions!.length).toEqual(1); + expect(json.inputFieldGroup!.actions![0]['@type']).toEqual( + 'Concatenate' + ); + const f2 = new Field(); + f2.path = '/User/Name'; + f2.docDef = f.docDef; + mapping.addField(f, true); + const json2 = MappingSerializer.serializeFieldMapping( + cfg, + mapping, + 'm1', + true + ); + expect(json2.inputField).toBeFalsy(); + expect(json2.inputFieldGroup!.field!.length).toEqual(2); + expect(json2.inputFieldGroup!.field![0].actions).toBeFalsy(); + expect(json2.inputFieldGroup!.actions!.length).toEqual(1); + expect(json2.inputFieldGroup!.actions![0]['@type']).toEqual( + 'Concatenate' + ); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'serialize one-to-many action'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + const mapping = new MappingModel(); + mapping.transition.mode = TransitionMode.ONE_TO_MANY; + const actionDef = cfg.fieldActionService.getActionDefinitionForName( + 'Repeat', + Multiplicity.ONE_TO_MANY + ); + if (!actionDef) { + fail('Repeat action definition not found'); + } + mapping.transition.transitionFieldAction = + FieldAction.create(actionDef); + const f = new Field(); + f.path = '/Text'; + const docDef = cfg.getDocForIdentifier('twitter4j.Status', true); + if (!docDef) { + fail('twitter4j.Status document definition not found'); + } + f.docDef = docDef; + mapping.addField(f, true); + + const json = MappingSerializer.serializeFieldMapping( + cfg, + mapping, + 'm1', + true + ); + expect(json.inputField![0].actions!.length).toEqual(1); + expect(json.inputField![0].actions![0]['@type']).toEqual('Repeat'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'serialize expression action'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + const mapping = new MappingModel(); + mapping.transition.mode = TransitionMode.ONE_TO_ONE; + mapping.transition.enableExpression = true; + mapping.transition.expression = new ExpressionModel(mapping, cfg); + mapping.transition.expression.insertText('{0}'); + const f = new Field(); + f.path = '/Text'; + const docDef = cfg.getDocForIdentifier('twitter4j.Status', true); + if (!docDef) { + fail('twitter4j.Status document definition not found'); + } + f.docDef = docDef; + mapping.addField(f, true); + const json = MappingSerializer.serializeFieldMapping( + cfg, + mapping, + 'm1', + true + ); + expect(json.inputField![0].actions).toBeUndefined(); + expect(json.expression).toBeDefined(); + expect(json.expression).toEqual('{0}'); + const f2 = new Field(); + f2.path = '/User/Name'; + f2.docDef = f.docDef; + mapping.addField(f2, true); + mapping.transition.mode = TransitionMode.MANY_TO_ONE; + mapping.transition.expression = new ExpressionModel(mapping, cfg); + mapping.transition.expression.insertText('{0} + {1}'); + const json2 = MappingSerializer.serializeFieldMapping( + cfg, + mapping, + 'm1', + true + ); + expect(json2.inputField).toBeFalsy(); + expect(json2.inputFieldGroup!.field!.length).toEqual(2); + expect(json2.inputFieldGroup!.field![0].actions).toBeFalsy(); + expect(json2.expression).toBeDefined(); + expect(json2.expression).toEqual('{0} + {1}'); + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = + 'serialize/ preview collection expression: repeat(count(city), const-str)'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + let fieldMapping = null; + const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; + let expressionIndex = 0; + let expressionStr = ''; + + // Find the expression mapping repeat( count(city), const-str) + for (fieldMapping of mappingJson!.AtlasMapping!.mappings! + .mapping as IMapping[]) { + if (fieldMapping?.expression?.includes('repeat( count(')) { + expressionStr = fieldMapping.expression; + break; + } + expressionIndex++; + } + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + expect(cfg.mappings?.mappings.length).toEqual( + Object.keys(mappingJson.AtlasMapping?.mappings?.mapping as IMapping[]) + .length + ); + + const mapping = cfg.mappings?.mappings[expressionIndex]; + expect(mapping).toBeDefined(); + if (!mapping || !mapping.transition.enableExpression) { + fail(); + } + expect(mapping.transition.expression.toText()).toEqual(expressionStr); + + const mfields = mapping.getMappedFields(true); + let i = 0; + if (!fieldMapping?.inputFieldGroup?.field) { + fail(); + } + let testField: Field | null = null; + for (const field of fieldMapping?.inputFieldGroup?.field) { + if (field.path) { + expect(mfields[i].mappingField?.path).toEqual(field.path); + } + if (field.path?.indexOf('street') !== -1) { + testField = mfields[i].field; + } + i++; + } + if (testField === null) { + fail('Unable to locate conditional expression field.'); + } + const serialized = MappingSerializer.serializeMappings(cfg); + expect( + Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) + .length + ).toEqual(cfg.mappings?.mappings?.length); + + // Verify mapping. + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingCollExprMapping, + serialized // ignoreValue defaults to true + ) + ).toBe(true); + + // Verify preview mode. + testField.value = 'somestring'; + // const sanitizedRequest = JSON.stringify( + // MappingSerializer.serializeMappings(cfg, false) + // ).replace(/\.[0-9]*/g, '.'); + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingCollExprPreview, + MappingSerializer.serializeMappings(cfg) // ignoreValue defaults to true + ) + ).toBe(true); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'serialize/ preview reference collection expression'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + let fieldMapping = null; + const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; + let expressionIndex = 0; + let expressionStr = ''; + + // Find the select/ filter expression mapping. + for (fieldMapping of mappingJson?.AtlasMapping?.mappings + ?.mapping as IMapping[]) { + if (fieldMapping.expression?.includes('select( filter(')) { + expressionStr = fieldMapping.expression; + break; + } + expressionIndex++; + } + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + + expect(cfg.mappings?.mappings.length).toEqual( + Object.keys(mappingJson.AtlasMapping?.mappings?.mapping as IMapping[]) + .length + ); + const mapping = cfg.mappings?.mappings[expressionIndex]; + expect(mapping).toBeDefined(); + if (!mapping || !mapping.transition.enableExpression) { + fail(); + } + expect(mapping.transition.expression.toText()).toEqual(expressionStr); + + const mfields = mapping.getMappedFields(true); + let i = 0; + if (!fieldMapping?.inputFieldGroup?.field) { + fail(); + } + + let testField: Field | null = null; + for (const field of fieldMapping?.inputFieldGroup?.field) { + if ( + field.jsonType === 'io.atlasmap.v2.FieldGroup' && + field.path === '/addressList<>' + ) { + testField = Field.getField( + mfields[i].mappingField?.path!, + cfg.getDocForIdentifier(mfields[i].mappingField!.docId!, true) + ?.allFields! + ); + } + i++; + } + expect(testField).toBeDefined(); + + const serialized = MappingSerializer.serializeMappings(cfg); + expect( + Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) + .length + ).toEqual(cfg.mappings?.mappings?.length); + + // Verify preview mode. + testField!.value = 'Bosto'; + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingCollRefExprPreview, + MappingSerializer.serializeMappings(cfg, false) + ) + ).toBe(true); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'collection many-to-one deserialize/serialize'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + let mapping = null; + const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + + expect(cfg.mappings?.mappings).toBeDefined(); + if (!cfg.mappings || !cfg.mappings.mappings) { + fail(); + } + for (mapping of cfg.mappings.mappings) { + if (mapping.transition?.mode === TransitionMode.MANY_TO_ONE) { + break; + } + } + expect(mapping).toBeDefined(); + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingCollExprMapping, + MappingSerializer.serializeMappings(cfg) // ignoreValue defaults to true + ) + ).toBe(true); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'collection one-to-many deserialize/serialize'; + test(tName, (done) => { + cfg.sourceDocs.push(createJSONSchemaSourceSourceDoc()); + cfg.targetDocs.push(createJSONSchemaSourceTargetDoc()); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + const mappingJson = atlasMappingSplitJson as IAtlasMappingContainer; + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + cfg.mappingService.updateMappingsTransition(); + + expect(cfg.mappings?.mappings).toBeDefined(); + expect(cfg.mappings?.mappings.length).toBe(1); + const mapping = cfg.mappings?.mappings[0]; + expect(mapping).toBeDefined(); + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingSplitJson, + MappingSerializer.serializeMappings(cfg) + ) + ).toBe(true); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'collection one-to-many collapse deserialize/serialize'; + test(tName, (done) => { + cfg.sourceDocs.push(createJSONSchemaSourceSourceDoc()); + cfg.targetDocs.push(createJSONSchemaSourceTargetDoc()); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + const mappingJson = + atlasMappingSplitCollapseJson as IAtlasMappingContainer; + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + cfg.mappingService.updateMappingsTransition(); + + expect(cfg.mappings?.mappings).toBeDefined(); + expect(cfg.mappings?.mappings.length).toBe(1); + const mapping = cfg.mappings?.mappings[0]; + expect(mapping).toBeDefined(); + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingSplitCollapseJson, + MappingSerializer.serializeMappings(cfg) + ) + ).toBe(true); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'remove a field node from a conditional expression'; + test(tName, (done) => { + createAllDocs(cfg); + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + cfg.mappings = new MappingDefinition(); + let fieldMapping = null; + const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; + let expressionIndex = 0; + + // Find the expression input field group from the raw JSON. + for (fieldMapping of mappingJson?.AtlasMapping?.mappings + ?.mapping as IMapping[]) { + if ( + fieldMapping.expression && + fieldMapping.expression.startsWith('select( filter(') + ) { + break; + } + expressionIndex++; + } + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + const mapping = cfg.mappings?.mappings[expressionIndex]; + expect(mapping).toBeDefined(); + + let cityField = mapping?.transition.expression.nodes.find( + (n) => n.toText() === `\${/city}` + ); + expect(cityField).toBeDefined(); + + // Remove the 'city' field from the expression. + mapping?.transition.expression.removeToken(cityField?.getUuid()); + cityField = mapping?.transition.expression.nodes.find( + (n) => n.toText() === `\${/city}` + ); + expect(cityField).toBeUndefined(); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'map enumeration values through a lookup table'; + test(tName, (done) => { + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + cfg.mappings = new MappingDefinition(); + let fieldMapping = null; + const mappingJson = + atlasMappingEnumLookupTableMapping as IAtlasMappingContainer; + + // Find the enum lookup table mapping from the raw JSON. + for (fieldMapping of mappingJson?.AtlasMapping?.mappings + ?.mapping as IMapping[]) { + if ( + fieldMapping?.lookupTableName && + fieldMapping.lookupTableName.length > 0 + ) { + break; + } + } + expect(fieldMapping).toBeDefined(); + + // Isolate the mock documents using the document initialization model. + const docInitSource = new DocumentInitializationModel(); + docInitSource.description = + 'Java document class io.atlasmap.java.test.TargetTestClass'; + docInitSource.id = 'io.atlasmap.java.test.TargetTestClass'; + docInitSource.isSource = true; + docInitSource.name = 'io.atlasmap.java.test.TargetTestClass'; + docInitSource.type = DocumentType.JAVA; + docInitSource.inspectionSource = + 'io.atlasmap.java.test.TargetTestClass'; + const docEnumSrc = cfg.addDocument(docInitSource); + + // Establish the enum fields. + const ss = new Field(); + ss.name = 'statesShort'; + ss.path = '/statesShort'; + ss.scope = ''; + ss.type = FieldType.COMPLEX; + ss.documentField.status = FieldStatus.SUPPORTED; + docEnumSrc.addField(ss); + + const docInitTarget = new DocumentInitializationModel(); + docInitTarget.description = + 'Java document class io.atlasmap.java.test.TargetTestClass'; + docInitTarget.id = 'io.atlasmap.java.test.TargetTestClass'; + docInitTarget.isSource = false; + docInitTarget.name = 'io.atlasmap.java.test.TargetTestClass'; + docInitTarget.type = DocumentType.JAVA; + docInitTarget.inspectionSource = + 'io.atlasmap.java.test.TargetTestClass'; + const docEnumtgt = cfg.addDocument(docInitTarget); + + const sl = new Field(); + sl.name = 'statesLong'; + sl.path = '/statesLong'; + sl.scope = ''; + sl.type = FieldType.COMPLEX; + sl.documentField.status = FieldStatus.SUPPORTED; + docEnumtgt.addField(sl); + + // Deserialize then serialize. + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingEnumLookupTableMapping, + MappingSerializer.serializeMappings(cfg) + ) + ).toBe(true); + + expect(cfg.mappings.mappings[0].transition.mode).toBe( + TransitionMode.ENUM + ); + + // Test the lookup table utilities + LookupTableUtil.populateMappingLookupTable( + cfg.mappings, + cfg.mappings.mappings[0] + ); + LookupTableUtil.updateLookupTables(cfg.mappings); + const sourceField: Field = cfg.mappings.mappings[0].getFields(true)[0]; + sourceField.enumValues = [ + { name: 'AZ', ordinal: 0 }, + { name: 'FL', ordinal: 2 }, + { name: 'TX', ordinal: 4 }, + ]; + const targetField: Field = cfg.mappings.mappings[0].getFields(false)[0]; + targetField.enumValues = [ + { name: 'Arizona', ordinal: 0 }, + { name: 'Florida', ordinal: 2 }, + { name: 'Texas', ordinal: 4 }, + ]; + const tables: LookupTable[] = cfg.mappings!.getTables(); + const lookupTable = tables[0]; + expect(tables.length).toBeGreaterThan(0); + const enumValues = LookupTableUtil.getEnumerationValues( + cfg, + cfg.mappings.mappings[0] + ); + expect(enumValues).toBeDefined(); + + // Inspect the mapping lookup table. + expect(lookupTable.lookupEntry.length).toBe(3); + let i = 0; + for (const eVal of enumValues) { + expect(eVal.sourceEnumValue).toEqual(sourceField.enumValues[i].name); + expect(eVal.selectedTargetEnumValue).toEqual( + targetField.enumValues[i].name + ); + i++; + } + for (const entry of lookupTable.lookupEntry) { + expect(entry.sourceType).toEqual('STRING'); + expect(entry.targetType).toEqual('STRING'); + expect(entry.sourceValue.length).toBe(2); + } + expect(tables[0].lookupEntry[0].targetValue).toEqual('Arizona'); + expect(tables[0].lookupEntry[1].targetValue).toEqual('Florida'); + expect(tables[0].lookupEntry[2].targetValue).toEqual('Texas'); + const flEntry = lookupTable.getEntryForSource('FL', false); + expect(flEntry).toBeDefined(); + expect(flEntry?.targetValue).toEqual('Florida'); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); + + tName = 'process a CSV mapping'; + test(tName, (done) => { + cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; + return cfg.fieldActionService + .fetchFieldActions() + .then(() => { + cfg.mappings = new MappingDefinition(); + let fieldMapping = null; + const mappingJson = atlasMappingCSV as IAtlasMappingContainer; + + // Isolate the mock documents using the document initialization model. + const docModelSource = DocumentInspectionUtil.fromNonJavaProperties( + cfg, + 'source', + 'CsvDataSource', + DocumentType.CSV, + InspectionType.SCHEMA, + 'io.atlasmap.csv.v2.CsvDataSource', + true + ); + cfg.initCfg.baseCSVInspectionServiceUrl = 'dummy'; + + // Establish the CSV source fields. + const sf1 = new Field(); + sf1.name = '<>'; + sf1.path = '/<>'; + sf1.type = FieldType.COMPLEX; + docModelSource.doc.addField(sf1); + const sf2 = new Field(); + sf2.name = 'last_name'; + sf2.path = '/<>/last_name'; + sf2.scope = ''; + sf2.type = FieldType.STRING; + sf2.documentField.status = FieldStatus.SUPPORTED; + sf2.parentField = sf1; + docModelSource.doc.addField(sf2); + + const docModelTarget = DocumentInspectionUtil.fromNonJavaProperties( + cfg, + 'target-csv', + 'CsvDataSource', + DocumentType.CSV, + InspectionType.SCHEMA, + 'io.atlasmap.csv.v2.CsvDataSource', + false + ); + expect(docModelTarget).toBeDefined(); + + // Establish the CSV target fields. + const st1 = new Field(); + st1.name = '<>'; + st1.path = '/<>'; + st1.type = FieldType.COMPLEX; + docModelSource.doc.addField(st1); + const st2 = new Field(); + st2.name = 'last'; + st2.path = '/<>/last'; + st2.scope = ''; + st2.type = FieldType.STRING; + st2.documentField.status = FieldStatus.SUPPORTED; + st2.parentField = st1; + docModelTarget.doc.addField(st2); + + const docInspModel = DocumentInspectionUtil.fromDocumentDefinition( + cfg, + docModelTarget.doc + ); + expect(docInspModel).toBeDefined(); + + const csvInspModel = new CsvInspectionModel(cfg, docModelTarget.doc); + expect(csvInspModel.isOnlineInspectionCapable()).toBe(true); + + // Find a CSV field mapping. + for (fieldMapping of mappingJson?.AtlasMapping?.mappings + ?.mapping as IMapping[]) { + if (fieldMapping.inputField) { + for (const field of fieldMapping.inputField) { + if (field.name === 'last_name') { + break; + } + } + } + } + expect(fieldMapping).toBeDefined(); + + MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); + MappingUtil.updateMappingsFromDocuments(cfg); + expect( + TestUtils.isEqualJSON( + tName, + atlasMappingCSV, + MappingSerializer.serializeMappings(cfg) + ) + ).toBe(true); + + done(); + }) + .catch((error) => { + fail(error); + }); + }); +}); diff --git a/packages/ui/src/core/utils/mapping-serializer.ts b/packages/ui/src/core/utils/mapping-serializer.ts new file mode 100644 index 000000000..a9b2b4ebe --- /dev/null +++ b/packages/ui/src/core/utils/mapping-serializer.ts @@ -0,0 +1,1271 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +import { + ATLAS_MAPPING_JSON_TYPE, + COLLECTION_JSON_TYPE, + CONSTANT_FIELD_JSON_TYPE, + FIELD_GROUP_JSON_TYPE, + IAtlasMappingContainer, + ICollection, + IConstant, + IFieldGroup, + IJsonDataSource, + ILookupEntry, + ILookupTable, + IMapping, + IProperty, + IPropertyField, + MAPPING_JSON_TYPE, + MappingType, + PROPERTY_FIELD_JSON_TYPE, +} from '../contracts/mapping'; +import { + DATA_SOURCE_JSON_TYPE, + DataSourceType, + DocumentType, + FIELD_PATH_SEPARATOR, + FieldType, + IDataSource, + IField, + IFieldAction, +} from '../contracts/common'; +import { + DocumentDefinition, + NamespaceModel, +} from '../models/document-definition.model'; +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { + FieldAction, + FieldActionArgument, + FieldActionArgumentValue, +} from '../models/field-action.model'; +import { + IXmlDataSource, + IXmlField, + IXmlNamespace, + XML_DATA_SOURCE_JSON_TYPE, + XML_ENUM_FIELD_JSON_TYPE, + XML_MODEL_PACKAGE_PREFIX, +} from '../contracts/documents/xml'; +import { + JSON_DATA_SOURCE_JSON_TYPE, + JSON_ENUM_FIELD_JSON_TYPE, +} from '../contracts/documents/json'; +import { LookupTable, LookupTableEntry } from '../models/lookup-table.model'; +import { MappedField, MappingModel } from '../models/mapping.model'; +import { TransitionMode, TransitionModel } from '../models/transition.model'; + +import { ConfigModel } from '../models/config.model'; +import { ExpressionModel } from '../models/expression.model'; +import { Field } from '../models/field.model'; +import { IAudits } from '../contracts/mapping-preview'; +import { ICsvField } from '../contracts/documents/csv'; +import { IJavaField } from '../contracts/documents/java'; +import { JAVA_ENUM_FIELD_JSON_TYPE } from '../contracts/documents/java'; +import { MappingDefinition } from '../models/mapping-definition.model'; +import { MappingUtil } from './mapping-util'; +import { Multiplicity } from '../contracts/field-action'; + +export class MappingSerializer { + static serializeMappings( + cfg: ConfigModel, + ignoreValue: boolean = true + ): IAtlasMappingContainer { + // TODO: check this non null operator + const mappingDefinition: MappingDefinition = cfg.mappings!; + let jsonMappings: IMapping[] = []; + for (const mapping of mappingDefinition.mappings.filter((m) => + m.isFullyMapped() + )) { + try { + const serializedFieldMapping = MappingSerializer.serializeFieldMapping( + cfg, + mapping, + mapping.uuid, + ignoreValue + ); + if (serializedFieldMapping) { + jsonMappings = jsonMappings.concat(serializedFieldMapping); + } + } catch (e) { + const input: any = { + mapping: mapping, + 'mapping def': mappingDefinition, + }; + cfg.errorService.addError( + new ErrorInfo({ + message: + 'Caught exception while attempting to serialize mapping, skipping. ', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: { input: input, error: e }, + }) + ); + } + } + + const serializedLookupTables = MappingSerializer.serializeLookupTables( + cfg.mappings! + ); + const constantDescriptions: IConstant[] = + MappingSerializer.serializeConstants(cfg.constantDoc); + const sourcePropertyDescriptions: IProperty[] = + MappingSerializer.serializeProperties(cfg.sourcePropertyDoc); + const targetPropertyDescriptions: IProperty[] = + MappingSerializer.serializeProperties(cfg.targetPropertyDoc); + const serializedDataSources: IDataSource[] = + MappingSerializer.serializeDocuments( + cfg.sourceDocs.concat(cfg.targetDocs), + mappingDefinition + ); + + const payload: IAtlasMappingContainer = { + AtlasMapping: { + jsonType: ATLAS_MAPPING_JSON_TYPE, + dataSource: serializedDataSources, + mappings: { mapping: jsonMappings }, + name: cfg.mappings!.name ? cfg.mappings!.name : undefined, + lookupTables: { lookupTable: serializedLookupTables }, + constants: { constant: constantDescriptions }, + properties: { + property: sourcePropertyDescriptions.concat( + targetPropertyDescriptions + ), + }, + }, + }; + return payload; + } + + static serializeFieldMapping( + cfg: ConfigModel, + mapping: MappingModel, + id: string, + ignoreValue: boolean = true + ): IMapping { + const serializedInputFields = MappingSerializer.serializeFields( + mapping, + true, + cfg, + ignoreValue + ); + const serializedOutputFields = MappingSerializer.serializeFields( + mapping, + false, + cfg, + ignoreValue + ); + let jsonMapping: IMapping; + const mappingExpression = cfg.expressionService.getMappingExpressionStr( + false, + mapping + ); + + if ( + mapping.transition.isManyToOneMode() || + mapping.transition.isForEachMode() || + mapping.transition.isExpressionMode() + ) { + const actions = []; + if (mapping.transition.transitionFieldAction) { + actions[0] = this.serializeAction( + mapping.transition.transitionFieldAction, + cfg + ); + } + const field = serializedInputFields; + const inputFieldGroup: IFieldGroup = { + jsonType: FIELD_GROUP_JSON_TYPE, + actions, + field, + }; + if (mappingExpression.length > 0) { + jsonMapping = { + jsonType: MAPPING_JSON_TYPE, + id: id, + expression: mappingExpression, + inputFieldGroup, + outputField: serializedOutputFields, + }; + } else { + jsonMapping = { + jsonType: MAPPING_JSON_TYPE, + id: id, + inputFieldGroup, + outputField: serializedOutputFields, + }; + } + } else { + if ( + mapping.transition.isOneToManyMode() && + mapping.transition.transitionFieldAction + ) { + const mappingAction = this.serializeAction( + mapping.transition.transitionFieldAction, + cfg + ); + if (!serializedInputFields[0].actions) { + serializedInputFields[0].actions = []; + } + if (mappingAction) { + serializedInputFields[0].actions.unshift(mappingAction); + } + } + if (mappingExpression.length > 0) { + if (serializedInputFields[0].jsonType?.includes('FieldGroup')) { + let serializedInputFieldGroup = + serializedInputFields[0] as IFieldGroup; + for (let i = 1; i < serializedInputFields.length; i++) { + if (serializedInputFields[i].jsonType?.includes('FieldGroup')) { + const serializedFieldGroup0 = + serializedInputFields[0] as IFieldGroup; + const serializedFieldGroupi = serializedInputFields[ + i + ] as IFieldGroup; + if ( + serializedFieldGroupi.field && + serializedFieldGroup0.field && + serializedFieldGroupi.field[0].path === + serializedFieldGroup0.field[0].path + ) { + serializedInputFieldGroup.field?.push( + serializedFieldGroupi.field[0] + ); + } + } + // TODO - Support input fields from different complex parent fields + // in the same complex conditional expression. + } + + jsonMapping = { + jsonType: MAPPING_JSON_TYPE, + id: id, + expression: mappingExpression, + inputFieldGroup: serializedInputFieldGroup, + outputField: serializedOutputFields, + }; + } else { + jsonMapping = { + jsonType: MAPPING_JSON_TYPE, + id: id, + expression: mappingExpression, + inputField: serializedInputFields, + outputField: serializedOutputFields, + }; + } + } else { + jsonMapping = { + jsonType: MAPPING_JSON_TYPE, + id: id, + inputField: serializedInputFields, + outputField: serializedOutputFields, + }; + } + } + + if (mapping.transition.isEnumerationMode()) { + jsonMapping.mappingType = MappingType.LOOKUP; /* @deprecated */ + if (mapping.transition.lookupTableName) { + jsonMapping.lookupTableName = mapping.transition.lookupTableName; + } + } + return jsonMapping; + } + + static deserializeMappingServiceJSON( + json: IAtlasMappingContainer, + cfg: ConfigModel + ): void { + // Process constants and properties before mappings. + for (const field of MappingSerializer.deserializeConstants(json)) { + cfg.constantDoc.addField(field); + } + for (const field of MappingSerializer.deserializeProperties( + cfg, + json, + true + )) { + cfg.sourcePropertyDoc.addField(field); + } + for (const field of MappingSerializer.deserializeProperties( + cfg, + json, + false + )) { + cfg.targetPropertyDoc.addField(field); + } + if (!cfg.mappings) { + cfg.mappings = new MappingDefinition(); + } + cfg.mappings.name = this.deserializeAtlasMappingName(json); + cfg.mappings.parsedDocs = cfg.mappings.parsedDocs.concat( + MappingSerializer.deserializeDocs(json, cfg.mappings)! + ); // TODO: check this non null operator + cfg.mappings.mappings = cfg.mappings.mappings.concat( + MappingSerializer.deserializeMappings(json, cfg) + ); + for (const lookupTable of MappingSerializer.deserializeLookupTables(json)) { + cfg.mappings.addTable(lookupTable); + } + } + + /** + * Return the AtlasMap mappings file name from the specified JSON buffer or an empty string. + * + * @param json + */ + static deserializeAtlasMappingName(json: IAtlasMappingContainer): string { + if (json?.AtlasMapping?.name) { + return json.AtlasMapping.name; + } else { + return ''; + } + } + + static addInputFieldGroupFields( + inputField: IField[], + mapping: MappingModel, + cfg: ConfigModel + ) { + for (const field of inputField) { + if (field.fieldType === 'COMPLEX') { + MappingSerializer.addInputFieldGroupFields( + (field as IFieldGroup).field!, + mapping, + cfg + ); + } else { + MappingSerializer.deserializeMappedField(mapping, field, true, cfg); + } + } + } + + static deserializeFieldMapping( + mappingJson: IMapping, + cfg: ConfigModel + ): MappingModel { + const mapping = new MappingModel(); + mapping.uuid = mappingJson.id; + mapping.sourceFields = []; + mapping.targetFields = []; + mapping.referenceFields = []; + mapping.transition.mode = TransitionMode.ONE_TO_ONE; + const isLookupMapping = + mappingJson.mappingType === 'LOOKUP' || + mappingJson.lookupTableName != null; + + if ( + mappingJson.mappingType && + mappingJson.mappingType !== MappingType.NONE + ) { + this.deserializeFieldMappingFromType(mapping, mappingJson, cfg); + return mapping; + } + + if (mappingJson.inputFieldGroup) { + MappingSerializer.deserializeInputFieldGroup(mappingJson, mapping, cfg); + } else { + const inputField = mappingJson.inputField; + + if (inputField) { + for (const field of inputField) { + MappingSerializer.deserializeMappedField(mapping, field, true, cfg); + } + } + if ( + mappingJson.outputField?.length && + mappingJson.outputField.length > 1 + ) { + mapping.transition.mode = TransitionMode.ONE_TO_MANY; + } + if (cfg.mappings) { + MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); + } + } + + if (mappingJson.expression && mappingJson.expression.length > 0) { + mapping.transition.enableExpression = true; + mapping.transition.mode = TransitionMode.EXPRESSION; + mapping.transition.expression = new ExpressionModel(mapping, cfg); + mapping.transition.expression.insertText(mappingJson.expression); + } + + for (const field of mappingJson.outputField) { + MappingSerializer.deserializeMappedField(mapping, field, false, cfg); + } + MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, false); + + if (isLookupMapping) { + mapping.transition.lookupTableName = mappingJson.lookupTableName!; + mapping.transition.mode = TransitionMode.ENUM; + } + + return mapping; + } + + private static deserializeInputFieldGroup( + mappingJson: IMapping, + mapping: MappingModel, + cfg: ConfigModel + ) { + if (!mappingJson.inputFieldGroup) { + return; + } + + if ( + mappingJson.expression && + mappingJson.inputFieldGroup!.fieldType === FieldType.COMPLEX + ) { + mapping.transition.expression.hasComplexField = true; + } + mapping.transition.mode = TransitionMode.MANY_TO_ONE; + + MappingSerializer.addInputFieldGroupFields( + mappingJson.inputFieldGroup.field!, + mapping, + cfg + ); + MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); + + if ( + mappingJson.inputFieldGroup.actions && + mappingJson.inputFieldGroup.actions[0]?.delimiter + ) { + mapping.transition.delimiter = TransitionModel.delimiterToModel( + mappingJson.inputFieldGroup.actions[0]?.delimiter + )?.delimiter; + // Check for an InputFieldGroup containing a many-to-one action + const firstAction = mappingJson.inputFieldGroup.actions[0]; + if (firstAction) { + // @deprecated Support legacy ADM files that have transformation-action-based expressions. + if (firstAction.Expression || firstAction['@type'] === 'Expression') { + mapping.transition.enableExpression = true; + mapping.transition.mode = TransitionMode.EXPRESSION; + mapping.transition.expression = new ExpressionModel(mapping, cfg); + const expr = firstAction.Expression + ? firstAction.Expression.expression + : firstAction['expression']; + mapping.transition.expression.insertText(expr); + } else { + mapping.transition.mode = TransitionMode.MANY_TO_ONE; + const parsedAction = this.parseAction(firstAction); + // TODO: check this non null operator + parsedAction.definition = + cfg.fieldActionService.getActionDefinitionForName( + parsedAction.name, + Multiplicity.MANY_TO_ONE + )!; + mapping.transition.transitionFieldAction = parsedAction; + } + } + } + } + + static deserializeAudits(audits: IAudits, errorType: ErrorType): ErrorInfo[] { + const errors: ErrorInfo[] = []; + if (!audits?.audit) { + return errors; + } + for (const audit of audits.audit) { + const msg = audit.status + '[' + audit.path + ']: ' + audit.message; + errors.push( + new ErrorInfo({ + message: msg, + level: ErrorLevel[audit.status], + scope: ErrorScope.MAPPING, + type: errorType, + object: audit.value, + }) + ); + } + return errors; + } + + private static createInputFieldGroup( + field: IField[], + isComplex: boolean, + docId?: string, + path?: string + ): IFieldGroup { + const inputFieldGroup: IFieldGroup = { + jsonType: FIELD_GROUP_JSON_TYPE, + actions: [], + docId: docId, + path: path, + field, + }; + if (isComplex) { + inputFieldGroup.fieldType = FieldType.COMPLEX; + } + return inputFieldGroup; + } + + private static serializeDocuments( + docs: DocumentDefinition[], + mappingDefinition: MappingDefinition + ): IDataSource[] { + const serializedDocs: IDataSource[] = []; + for (const doc of docs) { + let serializedDoc: IDataSource = { + jsonType: DATA_SOURCE_JSON_TYPE, + id: doc.id, + name: doc.name, + description: doc.description, + uri: doc.uri, + dataSourceType: doc.isSource + ? DataSourceType.SOURCE + : DataSourceType.TARGET, + }; + if (doc.characterEncoding != null) { + serializedDoc.characterEncoding = doc.characterEncoding; + } + if (doc.locale != null) { + serializedDoc.locale = doc.locale; + } + if (doc.type === DocumentType.XML || doc.type === DocumentType.XSD) { + const xmlDoc = serializedDoc as IXmlDataSource; + xmlDoc.jsonType = XML_DATA_SOURCE_JSON_TYPE; + const namespaces: IXmlNamespace[] = []; + for (const ns of doc.namespaces) { + namespaces.push({ + alias: ns.alias, + uri: ns.uri, + locationUri: ns.locationUri, + targetNamespace: ns.isTarget, + }); + } + if (!doc.isSource && mappingDefinition.templateText) { + xmlDoc.template = mappingDefinition.templateText; + } + xmlDoc.xmlNamespaces = { xmlNamespace: namespaces }; + } else if (doc.type === DocumentType.JSON) { + const jsonDoc = serializedDoc as IJsonDataSource; + if (!doc.isSource && mappingDefinition.templateText) { + jsonDoc.template = mappingDefinition.templateText; + } + jsonDoc.jsonType = JSON_DATA_SOURCE_JSON_TYPE; + } + + serializedDocs.push(serializedDoc); + } + return serializedDocs; + } + + private static serializeConstants(docDef: DocumentDefinition): IConstant[] { + const constantDescriptions: IConstant[] = []; + for (const field of docDef.fields) { + // Use the constant value for the name. + constantDescriptions.push({ + name: field.name, + value: field.value, + fieldType: field.type, + }); + } + return constantDescriptions; + } + + private static serializeProperties(docDef: DocumentDefinition): IProperty[] { + const propertyDescriptions: IProperty[] = []; + for (const field of docDef.fields) { + propertyDescriptions.push({ + name: field.name, + fieldType: field.type, + scope: field.scope, + dataSourceType: docDef.isSource + ? DataSourceType.SOURCE + : DataSourceType.TARGET, + }); + } + return propertyDescriptions; + } + + private static serializeLookupTables( + mappingDefinition: MappingDefinition + ): ILookupTable[] { + const serializedTables: ILookupTable[] = []; + const tables = mappingDefinition.getTables(); + if (!tables || !tables.length) { + return serializedTables; + } + + for (const table of tables) { + const lookupEntries: ILookupEntry[] = []; + for (const entry of table.lookupEntry) { + const serializedEntry: ILookupEntry = { + sourceValue: entry.sourceValue, + sourceType: entry.sourceType, + targetValue: entry.targetValue, + targetType: entry.targetType, + }; + lookupEntries.push(serializedEntry); + } + + const serializedTable: ILookupTable = { + lookupEntry: lookupEntries, + name: table.name, + }; + serializedTables.push(serializedTable); + } + return serializedTables; + } + + /** + * Generate serialized meta-data representing a direct-reference instance collection preview. + * + * @param cfg + * @param mapping + * @param field + * @param serializedField + * @param fieldsJson + */ + private static processCollectionPreview( + field: Field, + serializedField: IField, + fieldsJson: IField[] + ) { + serializedField.path = field.path.replace('<>', '<0>'); + const collectionInstanceInputFieldGroup = + MappingSerializer.createInputFieldGroup( + [serializedField], + true, + field.docDef.id, + field.path + ); + fieldsJson.push(collectionInstanceInputFieldGroup); + } + + /** + * Serialize field action arguments. + * + * @param action + * @param cfg + */ + private static processActionArguments( + action: FieldAction, + cfg: ConfigModel + ): { [key: string]: string } { + const actionArguments: { [key: string]: any } = {}; + if (action === null) { + return actionArguments; + } + for (const argValue of action.argumentValues) { + if ( + action.definition?.isCustom && + ['methodName', 'className', 'name'].includes(argValue.name) + ) { + continue; + } + actionArguments[argValue.name] = argValue.value; + const argumentConfig: FieldActionArgument = + action.definition!.getArgumentForName(argValue.name); + if (argumentConfig == null) { + cfg.errorService.addError( + new ErrorInfo({ + message: `Cannot find action argument ${argValue.name}: ${argValue.value}`, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: action, + }) + ); + continue; + } + if (argumentConfig.type === 'INTEGER') { + actionArguments[argValue.name] = parseInt(argValue.value, 10); + } + } + return actionArguments; + } + + private static serializeFields( + mapping: MappingModel, + isSource: boolean, + cfg: ConfigModel, + ignoreValue: boolean = false + ): IField[] { + let collectionInputFieldGroup = null; + let collectionInstanceInputFieldGroup = null; + const fields: MappedField[] = mapping.getMappedFields(isSource); + const fieldsJson: IField[] = []; + + for (const mappedField of fields) { + if (!mappedField.field || mappedField.isPadField()) { + continue; + } + + const field: Field = mappedField.field; + const serializedField: IField = { + jsonType: field.documentField.jsonType, + name: field.name, + path: field.path, + fieldType: field.type, + docId: field.docDef.id, + }; + + // The 'attribute' field only applies to XML. + if (field.documentField.jsonType?.includes(XML_MODEL_PACKAGE_PREFIX)) { + (serializedField as IXmlField).attribute = field.isAttribute; + } + + // Only capture a value for preview mode and constants. + if (!ignoreValue || field.isConstant()) { + if (field.value) { + serializedField.value = field.value; + } else { + serializedField.value = ''; + } + } + + if ( + field.docDef.type === DocumentType.XML || + field.docDef.type === DocumentType.XSD + ) { + (serializedField as IXmlField).userCreated = field.userCreated; + } else if ( + field.docDef.type === DocumentType.JAVA && + !field.isPrimitive + ) { + (serializedField as IJavaField).className = field.classIdentifier; + } + + if (field.isProperty()) { + serializedField.jsonType = PROPERTY_FIELD_JSON_TYPE; + serializedField.name = field.name; + (serializedField as IPropertyField).scope = field.scope; + serializedField.path = cfg.documentService.getPropertyPath( + field.scope, + field.name + ); + } else if (field.isConstant()) { + serializedField.jsonType = CONSTANT_FIELD_JSON_TYPE; + serializedField.name = field.name; + } else if (field.enumeration) { + if (field.docDef.type === DocumentType.JSON) { + serializedField.jsonType = JSON_ENUM_FIELD_JSON_TYPE; + } else if ( + field.docDef.type === DocumentType.XML || + field.docDef.type === DocumentType.XSD + ) { + serializedField.jsonType = XML_ENUM_FIELD_JSON_TYPE; + } else { + serializedField.jsonType = JAVA_ENUM_FIELD_JSON_TYPE; + } + } + + let includeIndexes: boolean = + mapping.getMappedFields(isSource).length > 1; + includeIndexes = + includeIndexes || (mapping.transition.isExpressionMode() && isSource); + if (includeIndexes) { + // TODO: check this non null operator + serializedField.index = + mapping.getIndexForMappedField(mappedField)! - 1; + } + if (field.docDef.type === DocumentType.CSV) { + (serializedField as ICsvField).column = field.column; + } + + this.serializeActions(cfg, mappedField, serializedField); + + // Check for collection field references. + if (isSource && field.isInCollection()) { + const collectionParentField = field.getCollectionParentField(); + + if ( + !mapping.referenceFieldExists( + collectionParentField.docDef.id, + collectionParentField.path + ) + ) { + if (!ignoreValue) { + MappingSerializer.processCollectionPreview( + field, + serializedField, + fieldsJson + ); + } else { + fieldsJson.push(serializedField); + collectionInputFieldGroup = null; + } + } else { + // Establish/add to the inner reference field group. + if (collectionInstanceInputFieldGroup === null) { + collectionInstanceInputFieldGroup = + MappingSerializer.createInputFieldGroup( + [serializedField], + true, + collectionParentField.docDef.id, + collectionParentField.path + ); + } else { + (collectionInstanceInputFieldGroup as IFieldGroup)!.field!.push( + serializedField + ); + continue; + } + collectionInstanceInputFieldGroup.fieldType = + collectionParentField.documentField.fieldType; + + // Preview-mode uses element/ item instance <0>. + if (!ignoreValue) { + collectionInstanceInputFieldGroup.path = + collectionParentField.path.replace('<>', '<0>'); + + // Establish one outer input field group for the preview collection. + if (collectionInputFieldGroup === null) { + collectionInputFieldGroup = + MappingSerializer.createInputFieldGroup( + [collectionInstanceInputFieldGroup], + true, + collectionParentField.docDef.id, + collectionParentField.path + ); + collectionInstanceInputFieldGroup.fieldType = + collectionParentField.documentField.fieldType; + fieldsJson.push(collectionInputFieldGroup); + } + } else { + fieldsJson.push(collectionInstanceInputFieldGroup); + } + } + + // Non-aggregate field reference. + } else { + fieldsJson.push(serializedField); + collectionInputFieldGroup = null; + } + } + return fieldsJson; + } + + /** + * Walk the list of actions associated with the specified mapped field and serialize them into JSON. + * + * @param cfg + * @param mappedField + * @param serializedField + */ + private static serializeActions( + cfg: ConfigModel, + mappedField: MappedField, + serializedField: IField + ): void { + if (mappedField.actions.length) { + const actions: IFieldAction[] = []; + + for (const action of mappedField.actions) { + const actionJson = this.serializeAction(action, cfg); + if (actionJson) { + actions.push(actionJson); + } + } + if (actions.length > 0) { + serializedField.actions = actions; + } + } + } + + private static serializeAction( + action: FieldAction, + cfg: ConfigModel + ): { [key: string]: any } { + let actionJson = MappingSerializer.processActionArguments(action, cfg); + actionJson['@type'] = action.definition!.name; + return actionJson; + } + + private static deserializeDocs( + json: IAtlasMappingContainer, + mappingDefinition: MappingDefinition + ): DocumentDefinition[] | null { + const docs: DocumentDefinition[] = []; + if (!json || !json.AtlasMapping || !json.AtlasMapping.dataSource) { + return null; + } + for (const docRef of json.AtlasMapping.dataSource) { + const doc: DocumentDefinition = new DocumentDefinition(); + doc.isSource = docRef.dataSourceType === 'SOURCE'; + doc.uri = docRef.uri; + doc.id = docRef.id; + doc.name = docRef.name ? docRef.name : ''; + doc.description = docRef.description; + const xmlDocRef = docRef as IXmlDataSource; + if (xmlDocRef.xmlNamespaces && xmlDocRef.xmlNamespaces.xmlNamespace) { + for (const svcNS of xmlDocRef.xmlNamespaces.xmlNamespace) { + const ns: NamespaceModel = new NamespaceModel(); + ns.alias = svcNS.alias; + ns.uri = svcNS.uri; + ns.locationUri = svcNS.locationUri; + ns.isTarget = svcNS.targetNamespace ? svcNS.targetNamespace : false; + ns.createdByUser = true; + doc.namespaces.push(ns); + } + } + if (xmlDocRef.template) { + mappingDefinition.templateText = xmlDocRef.template; + } + docs.push(doc); + } + return docs; + } + + private static deserializeMappings( + json: IAtlasMappingContainer, + cfg: ConfigModel + ): MappingModel[] { + const mappings: MappingModel[] = []; + + if (!json.AtlasMapping.mappings?.mapping) { + return mappings; + } + for (const fieldMapping of json.AtlasMapping.mappings.mapping) { + // for backward compatibility + const isCollectionMapping = + fieldMapping.jsonType === COLLECTION_JSON_TYPE; + if (isCollectionMapping) { + const collection = fieldMapping as ICollection; + for (const innerFieldMapping of collection.mappings.mapping) { + mappings.push( + MappingSerializer.deserializeFieldMapping( + innerFieldMapping as IMapping, + cfg + ) + ); + } + } else { + mappings.push( + MappingSerializer.deserializeFieldMapping( + fieldMapping as IMapping, + cfg + ) + ); + } + } + return mappings; + } + + /** + * @deprecated Deserialize a field mapping based on its mapping type. This is deprecated in favor of + * concatenate/ split actions. + * + * @param mapping + * @param fieldMapping + * @param docRefs + * @param cfg + * @param ignoreValue + */ + private static deserializeFieldMappingFromType( + mapping: MappingModel, + fieldMapping: IMapping, + cfg: ConfigModel + ): void { + if (fieldMapping.mappingType === 'SEPARATE') { + mapping.transition.mode = TransitionMode.ONE_TO_MANY; + mapping.transition.transitionFieldAction = FieldAction.create( + cfg.fieldActionService.getActionDefinitionForName( + 'Split', + Multiplicity.ONE_TO_MANY + )! + ); // TODO: check this non null operator + mapping.transition.transitionFieldAction.setArgumentValue( + 'delimiter', + fieldMapping.delimiter! + ); + } else if (fieldMapping.mappingType === 'LOOKUP') { + mapping.transition.mode = TransitionMode.ENUM; + mapping.transition.lookupTableName = fieldMapping.lookupTableName!; + } else if (fieldMapping.mappingType === 'COMBINE') { + mapping.transition.mode = TransitionMode.MANY_TO_ONE; + mapping.transition.transitionFieldAction = FieldAction.create( + cfg.fieldActionService.getActionDefinitionForName( + 'Concatenate', + Multiplicity.MANY_TO_ONE + )! + ); // TODO: check this non null operator + mapping.transition.transitionFieldAction.setArgumentValue( + 'delimiter', + fieldMapping.delimiter! + ); + } else { + mapping.transition.mode = TransitionMode.ONE_TO_ONE; + } + + for (const field of fieldMapping.inputField!) { + MappingSerializer.deserializeMappedField(mapping, field, true, cfg); + } + for (const field of fieldMapping.outputField) { + MappingSerializer.deserializeMappedField(mapping, field, false, cfg); + } + MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); + } + + private static deserializeConstants( + jsonMapping: IAtlasMappingContainer + ): Field[] { + const fields: Field[] = []; + if (!jsonMapping?.AtlasMapping?.constants?.constant) { + return fields; + } + for (const constant of jsonMapping.AtlasMapping.constants.constant) { + const field: Field = new Field(); + field.name = constant.name; + field.path = FIELD_PATH_SEPARATOR + field.name; + field.value = constant.value; + field.type = constant.fieldType; + field.userCreated = true; + field.isAttribute = false; + fields.push(field); + } + return fields; + } + + private static deserializeProperties( + cfg: ConfigModel, + jsonMapping: IAtlasMappingContainer, + isSource: boolean + ): Field[] { + const fields: Field[] = []; + if (!jsonMapping?.AtlasMapping?.properties?.property) { + return fields; + } + + // Source and target properties are mixed in the 'property' JSON array. + for (const property of jsonMapping.AtlasMapping.properties.property) { + if ( + (isSource && property.dataSourceType === DataSourceType.TARGET) || + (!isSource && property.dataSourceType !== DataSourceType.TARGET) + ) { + continue; + } + const field: Field = new Field(); + field.name = property.name; + field.type = property.fieldType; + field.scope = property.scope; + field.path = cfg.documentService.getPropertyPath(field.scope, field.name); + field.userCreated = true; + field.isAttribute = false; + fields.push(field); + } + return fields; + } + + private static deserializeLookupTables( + jsonMapping: IAtlasMappingContainer + ): LookupTable[] { + const tables: LookupTable[] = []; + if ( + !jsonMapping || + !jsonMapping.AtlasMapping || + !jsonMapping.AtlasMapping.lookupTables || + !jsonMapping.AtlasMapping.lookupTables.lookupTable + ) { + return tables; + } + for (const table of jsonMapping.AtlasMapping.lookupTables.lookupTable) { + const parsedTable: LookupTable = new LookupTable(); + parsedTable.name = table.name; + for (const entry of table.lookupEntry) { + const parsedEntry: LookupTableEntry = new LookupTableEntry(); + parsedEntry.sourceValue = entry.sourceValue; + parsedEntry.sourceType = entry.sourceType; + parsedEntry.targetValue = entry.targetValue; + parsedEntry.targetType = entry.targetType; + parsedTable.lookupEntry.push(parsedEntry); + } + tables.push(parsedTable); + } + return tables; + } + + /** + * Walk the list of field actions found in the parsed data and restore them to the live mapping. + * + * @param field + * @param mappedField + * @param mapping + * @param cfg + * @param isSource + */ + private static deserializeFieldActions( + field: IField, + mappedField: MappedField, + mapping: MappingModel, + cfg: ConfigModel, + isSource: boolean + ): void { + if (!field.actions) { + return; + } + + for (const action of field.actions) { + const parsedAction = this.parseAction(action); + if (action.name === 'CustomAction') { + parsedAction.definition = + cfg.fieldActionService.getActionDefinitionForName( + action.argumentValues[0].value, + Multiplicity.ONE_TO_ONE + ); + } else { + parsedAction.definition = + cfg.fieldActionService.getActionDefinitionForName(parsedAction.name)!; + } + if (parsedAction.definition == null) { + cfg.errorService.addError( + new ErrorInfo({ + message: `Could not find field action definition for action '${action.name}'`, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + }) + ); + continue; + } + parsedAction.definition.populateFieldAction(parsedAction); + + /** @deprecated Support old-style transformation-action-based expressions. */ + if (isSource && (action.Expression || action['@type'] === 'Expression')) { + mapping.transition.enableExpression = true; + mapping.transition.expression = new ExpressionModel(mapping, cfg); + const expr = action.Expression + ? action.Expression.expression + : action['expression']; + mapping.transition.expression.insertText(expr); + } else if ( + isSource && + parsedAction.definition && + [Multiplicity.ONE_TO_MANY, Multiplicity.MANY_TO_ONE].includes( + parsedAction.definition.multiplicity + ) + ) { + if (mapping.transition.transitionFieldAction) { + cfg.logger! + .warn(`Duplicated multiplicity transformations were detected: \ + ${mapping.transition.transitionFieldAction.name} is being overwritten by ${parsedAction.name} ...`); + } + mapping.transition.transitionFieldAction = parsedAction; + } else { + mappedField.actions.push(parsedAction); + } + } + } + + private static deserializeMappedField( + mapping: MappingModel, + field: IField, + isSource: boolean, + cfg: ConfigModel + ): MappedField | null { + if (MappingUtil.isConstantField(field)) { + if (field.docId) { + cfg.constantDoc.id = field.docId; + } else { + field.docId = cfg.constantDoc.id; + } + } else if (MappingUtil.isPropertyField(field)) { + const doc = isSource ? cfg.sourcePropertyDoc : cfg.targetPropertyDoc; + if (field.docId) { + doc.id = field.docId; + } else { + field.docId = doc.id; + } + field.path = cfg.documentService.getPropertyPath( + (field as IPropertyField).scope, + field.name! + ); + } else if (!field.docId) { + cfg.errorService.addError( + new ErrorInfo({ + message: 'Parsed mapping field does not have document id, dropping.', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: field, + }) + ); + return null; + } + const mappedField: MappedField = new MappedField(); + mappedField.mappingField = field; + mapping.addMappedField(mappedField, isSource); + if (field.actions) { + this.deserializeFieldActions(field, mappedField, mapping, cfg, isSource); + } + return mappedField; + } + + private static parseAction(action: IFieldAction): FieldAction { + if (action['@type']) { + return MappingSerializer.parseNewAction(action); + } else { + // TODO: check this non null operator + return MappingSerializer.parseOldAction(action)!; + } + } + + /** + * @deprecated actionName: {param:...} style has been deprecated. Use {`@type`: actionName} style action description. + */ + private static parseOldAction(action: IFieldAction): FieldAction | null { + for (const actionName of Object.keys(action)) { + if (!action.hasOwnProperty(actionName)) { + return null; + } + const parsedAction: FieldAction = new FieldAction(); + parsedAction.name = actionName; + const actionParams: any = action[actionName]; + if (actionParams) { + for (const paramName of Object.keys(actionParams)) { + if (!actionParams.hasOwnProperty(paramName)) { + return null; + } + const parsedArgumentValue: FieldActionArgumentValue = + new FieldActionArgumentValue(); + parsedArgumentValue.name = paramName; + let value = actionParams[paramName]; + value = value == null ? null : value.toString(); + parsedArgumentValue.value = value; + parsedAction.argumentValues.push(parsedArgumentValue); + } + } + return parsedAction; + } + return null; + } + + private static parseNewAction(action: IFieldAction): FieldAction { + const parsedAction: FieldAction = new FieldAction(); + parsedAction.name = action['@type']!; + for (const [key, value] of Object.entries(action)) { + if ('@type' === key) { + continue; + } + const parsedArgumentValue: FieldActionArgumentValue = + new FieldActionArgumentValue(); + parsedArgumentValue.name = key; + const valueString = value == null ? null : (value as any).toString(); + parsedArgumentValue.value = valueString; + parsedAction.argumentValues.push(parsedArgumentValue); + } + return parsedAction; + } +} diff --git a/packages/ui/src/core/utils/mapping-util.ts b/packages/ui/src/core/utils/mapping-util.ts new file mode 100644 index 000000000..bba27de3c --- /dev/null +++ b/packages/ui/src/core/utils/mapping-util.ts @@ -0,0 +1,353 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CONSTANT_FIELD_JSON_TYPE, + IPropertyField, + PROPERTY_FIELD_JSON_TYPE, +} from '../contracts/mapping'; +import { + DocumentDefinition, + PaddingField, +} from '../models/document-definition.model'; +import { + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, +} from '../models/error.model'; +import { MappedField, MappingModel } from '../models/mapping.model'; +import { ConfigModel } from '../models/config.model'; +import { Field } from '../models/field.model'; +import { IField } from '../contracts/common'; + +/** + * Static routines for handling mappings. + */ +export class MappingUtil { + static updateMappingsFromDocuments(cfg: ConfigModel): void { + // TODO: check this non null operator + for (const mapping of cfg.mappings!.mappings) { + MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); + MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, false); + } + for (const doc of cfg.getAllDocs()) { + if (doc.id == null) { + doc.id = + 'DOC.' + + doc.name + + '.' + + Math.floor(Math.random() * 1000000 + 1).toString(); + } + } + } + + static updateMappedFieldsFromDocuments( + mapping: MappingModel, + cfg: ConfigModel, + isSource: boolean + ): void { + let mappedFields: MappedField[] = mapping.getMappedFields(isSource); + let mappedFieldIndex = -1; + + for (const mappedField of mappedFields) { + let doc: DocumentDefinition | null = null; + mappedFieldIndex += 1; + + if ( + mappedField.field instanceof PaddingField || + mappedField.mappingField === undefined + ) { + continue; + } + if (MappingUtil.isPropertyField(mappedField.mappingField)) { + doc = isSource ? cfg.sourcePropertyDoc : cfg.targetPropertyDoc; + // Preserve property Document ID from parsed data + if (mappedField.mappingField.docId) { + doc.id = mappedField.mappingField.docId; + } + } else if (MappingUtil.isConstantField(mappedField.mappingField)) { + doc = cfg.constantDoc; + // Preserve constant Document ID from parsed data + if (mappedField.mappingField.docId) { + doc.id = mappedField.mappingField.docId; + } + } else { + if (mappedField.mappingField.docId == null) { + cfg.errorService.addError( + new ErrorInfo({ + message: `Could not find doc ID for mapped field ${mappedField.mappingField.name}`, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + }) + ); + continue; + } + doc = cfg.getDocForIdentifier( + mappedField.mappingField.docId!, + isSource + ); + if (doc == null) { + if (mappedField.mappingField.name != null) { + cfg.errorService.addError( + new ErrorInfo({ + message: `Could not find document for mapped field '${mappedField.mappingField.name}' \ +with ID ${mappedField.mappingField.docId}`, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + }) + ); + } + continue; + } + + doc.id = mappedField.mappingField.docId; + } + + if (!mappedField.mappingField.path) { + continue; + } + mappedField.field = doc.getField(mappedField.mappingField.path); + + if (mappedField.field == null) { + // Check for collection instance. + if (mappedField.mappingField.path.indexOf('<0>') >= 0) { + mappedField.field = doc.getField( + mappedField.mappingField.path!.replace('<0>', '<>') + ); + } else if ( + MappingUtil.isConstantField(mappedField.mappingField) && + mappedField.mappingField.value && + mappedField.mappingField.fieldType + ) { + let constantField = cfg.constantDoc.getField( + mappedField.mappingField.value + ); + if (!constantField) { + constantField = new Field(); + } + constantField.value = mappedField.mappingField.value; + constantField.type = mappedField.mappingField.fieldType; + constantField.displayName = constantField.value; + constantField.name = constantField.value; + constantField.path = constantField.value; + constantField.userCreated = true; + mappedField.field = constantField; + doc.addField(constantField); + } else if ( + MappingUtil.isPropertyField(mappedField.mappingField) && + mappedField.mappingField.fieldType && + mappedField.mappingField.name && + mappedField.mappingField.path + ) { + const propMappingField = mappedField.mappingField as IPropertyField; + let propertyField = doc.getField(propMappingField.path!); + + if (!propertyField) { + propertyField = new Field(); + } + let fieldName = propMappingField.name; + propertyField.type = propMappingField.fieldType!; + if (propMappingField.scope) { + propertyField.scope = propMappingField.scope; + } + propertyField.displayName = fieldName!; + propertyField.name = fieldName!; + propertyField.path = propMappingField.path!; + propertyField.userCreated = true; + mappedField.field = propertyField; + doc.addField(propertyField); + } else { + cfg.errorService.addError( + new ErrorInfo({ + message: `Could not find field from document '${doc.name}' for mapped field '${mappedField.mappingField.name}'`, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: { mappedField: mappedField, doc: doc }, + }) + ); + return; + } + } + + const zeroBasedIndex = +mappedField.mappingField.index!; // TODO: check this non null operator + mappedFields = mapping.getMappedFields(isSource); + if (zeroBasedIndex <= mappedFieldIndex) { + mappedFields[mappedFieldIndex] = mappedField; + } else { + cfg.mappingService.addPlaceholders( + zeroBasedIndex - mappedFieldIndex, + mapping, + mappedFieldIndex, + isSource + ); + } + } + } + + /** + * Check all mappings in the current context and remove if it refers to un-existing fields. + * + * @param cfg ConfigModel + */ + static removeStaleMappings(cfg: ConfigModel): void { + let index = 0; + let sourceFieldPaths: string[] = []; + for (const doc of cfg.getDocs(true)) { + sourceFieldPaths = sourceFieldPaths.concat( + Field.getFieldPaths(doc.getAllFields()) + ); + } + let targetSourcePaths: string[] = []; + for (const doc of cfg.getDocs(false)) { + targetSourcePaths = targetSourcePaths.concat( + Field.getFieldPaths(doc.getAllFields()) + ); + } + // TODO: check these non null operator + while (index < cfg.mappings!.mappings.length) { + const mapping: MappingModel = cfg.mappings!.mappings[index]; + const mappingIsStale: boolean = this.isMappingStale( + mapping, + sourceFieldPaths, + targetSourcePaths + ); + if (mappingIsStale) { + cfg.mappings!.mappings.splice(index, 1); + } else { + index++; + } + } + } + + private static isMappingStale( + mapping: MappingModel, + sourceFieldPaths: string[], + targetSourcePaths: string[] + ): boolean { + for (const field of mapping.getFields(true)) { + if ( + !(field instanceof PaddingField) && + sourceFieldPaths.indexOf(field.path) === -1 + ) { + return true; + } + } + for (const field of mapping.getFields(false)) { + if ( + !(field instanceof PaddingField) && + targetSourcePaths.indexOf(field.path) === -1 + ) { + return true; + } + } + + return false; + } + + static updateDocumentNamespacesFromMappings(cfg: ConfigModel): void { + const docs: DocumentDefinition[] = cfg.getDocs(false); + + // TODO: check this non null operator + for (const parsedDoc of cfg.mappings!.parsedDocs) { + if (!parsedDoc) { + continue; + } + if (parsedDoc.isSource) { + continue; + } + if (parsedDoc.namespaces.length === 0) { + continue; + } + + const doc = this.getDocById(parsedDoc.id, docs); + if (doc == null) { + cfg.errorService.addError( + new ErrorInfo({ + message: `Could not find document with identifier '${parsedDoc.id}' for namespace override.`, + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + object: { + identifier: parsedDoc.id, + parsedDoc: parsedDoc, + docs: docs, + }, + }) + ); + continue; + } + + doc.namespaces = [...parsedDoc.namespaces]; + } + } + + private static getDocById( + documentId: string, + docs: DocumentDefinition[] + ): DocumentDefinition | null { + if (documentId == null || docs == null || !docs.length) { + return null; + } + for (const doc of docs) { + if (doc.id === documentId) { + return doc; + } + } + return null; + } + + static activeMapping(cfg: ConfigModel): boolean { + return !!cfg?.mappings?.activeMapping; + } + + /** + * Return true if the specified mapped field array has any established field actions, + * false otherwise. + * + * @param fields + */ + static hasFieldAction(fields: MappedField[]): boolean { + for (let field of fields) { + if (field.actions.length > 0) { + return true; + } + } + return false; + } + + static hasMappedCollection( + mapping: MappingModel, + isSource: boolean + ): boolean | null { + const mappedFields = mapping.getMappedFields(isSource); + return ( + mapping.isFullyMapped() && + mappedFields[0].field && + mappedFields[0].field.isInCollection() + ); + } + + static isPropertyField(field: IField) { + return field?.jsonType === PROPERTY_FIELD_JSON_TYPE; + } + + static isConstantField(field: IField) { + return field?.jsonType === CONSTANT_FIELD_JSON_TYPE; + } +} diff --git a/packages/ui/src/impl/Atlasmap.stories.tsx b/packages/ui/src/impl/Atlasmap.stories.tsx new file mode 100644 index 000000000..79b21a8fb --- /dev/null +++ b/packages/ui/src/impl/Atlasmap.stories.tsx @@ -0,0 +1,182 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { AtlasmapProvider, IAtlasmapProviderProps } from './AtlasmapProvider'; +import { boolean, text } from '@storybook/addon-knobs'; + +import { Atlasmap } from './Atlasmap'; +import React from 'react'; +import { action } from '@storybook/addon-actions'; +import { html } from '../stories/htmlKnob'; + +const sampleExternalDocument = JSON.stringify( + { + documentId: 'i-M5XxdCeWJ837juDzeM3z', + initialMappings: + '{"AtlasMapping":{"jsonType":"io.atlasmap.v2.AtlasMapping","dataSource":[{"jsonType":"io.atlasmap.json.v2.JsonDataSource","id":"i-M5XxQUHWJ837juDzeLrz","uri":"atlas:json:i-M5XxQUHWJ837juDzeLrz","dataSourceType":"SOURCE"},{"jsonType":"io.atlasmap.v2.DataSource","id":"-M5XxkSP4RiiMiYC85vx","uri":"atlas:java?className=io.syndesis.connector.slack.SlackPlainMessage","dataSourceType":"TARGET"}],"mappings":{"mapping":[{"jsonType":"io.atlasmap.v2.Mapping","id":"mapping.900920","inputField":[{"jsonType":"io.atlasmap.json.v2.JsonField","name":"name","path":"/body/name","fieldType":"STRING","docId":"i-M5XxQUHWJ837juDzeLrz","userCreated":false}],"outputField":[{"jsonType":"io.atlasmap.java.v2.JavaField","name":"message","path":"/message","fieldType":"STRING","docId":"-M5XxkSP4RiiMiYC85vx"}]}]},"name":"UI.0","lookupTables":{"lookupTable":[]},"constants":{"constant":[]},"properties":{"property":[]}}}', + inputDocuments: [ + { + dataShape: { + name: 'Request', + description: 'API request payload', + kind: 'json-schema', + specification: + '{"$schema":"http://json-schema.org/schema#","type":"object","$id":"io:syndesis:wrapped","properties":{"body":{"type":"object","description":"","properties":{"name":{"type":"string"}},"example":{"name":"gary"}}}}', + metadata: { unified: 'true' }, + }, + description: 'API request payload', + id: 'i-M5XxQUHWJ837juDzeLrz', + inspectionResult: '', + inspectionSource: + '{"$schema":"http://json-schema.org/schema#","type":"object","$id":"io:syndesis:wrapped","properties":{"body":{"type":"object","description":"","properties":{"name":{"type":"string"}},"example":{"name":"gary"}}}}', + name: '1 - Request', + showFields: true, + documentType: 'JSON', + inspectionType: 'SCHEMA', + }, + ], + outputDocument: { + dataShape: { + name: 'Message', + kind: 'java', + type: 'io.syndesis.connector.slack.SlackPlainMessage', + specification: + '{"JavaClass":{"jsonType":"io.atlasmap.java.v2.JavaClass","collectionType":"NONE","path":"/","fieldType":"COMPLEX","modifiers":{"modifier":["PUBLIC"]},"className":"io.syndesis.connector.slack.SlackPlainMessage","canonicalClassName":"io.syndesis.connector.slack.SlackPlainMessage","primitive":false,"synthetic":false,"javaEnumFields":{"javaEnumField":[]},"javaFields":{"javaField":[{"jsonType":"io.atlasmap.java.v2.JavaField","path":"/message","status":"SUPPORTED","fieldType":"STRING","modifiers":{"modifier":["PRIVATE"]},"name":"message","className":"java.lang.String","canonicalClassName":"java.lang.String","getMethod":"getMessage","setMethod":"setMessage","primitive":true,"synthetic":false}]},"packageName":"io.syndesis.connector.slack","annotation":false,"annonymous":false,"enumeration":false,"localClass":false,"memberClass":false,"uri":"atlas:java?className=io.syndesis.connector.slack.SlackPlainMessage","interface":false}}', + }, + description: '', + id: '-M5XxkSP4RiiMiYC85vx', + inspectionResult: + '{"JavaClass":{"jsonType":"io.atlasmap.java.v2.JavaClass","collectionType":"NONE","path":"/","fieldType":"COMPLEX","modifiers":{"modifier":["PUBLIC"]},"className":"io.syndesis.connector.slack.SlackPlainMessage","canonicalClassName":"io.syndesis.connector.slack.SlackPlainMessage","primitive":false,"synthetic":false,"javaEnumFields":{"javaEnumField":[]},"javaFields":{"javaField":[{"jsonType":"io.atlasmap.java.v2.JavaField","path":"/message","status":"SUPPORTED","fieldType":"STRING","modifiers":{"modifier":["PRIVATE"]},"name":"message","className":"java.lang.String","canonicalClassName":"java.lang.String","getMethod":"getMessage","setMethod":"setMessage","primitive":true,"synthetic":false}]},"packageName":"io.syndesis.connector.slack","annotation":false,"annonymous":false,"enumeration":false,"localClass":false,"memberClass":false,"uri":"atlas:java?className=io.syndesis.connector.slack.SlackPlainMessage","interface":false}}', + inspectionSource: 'io.syndesis.connector.slack.SlackPlainMessage', + name: '2 - Message', + showFields: true, + documentType: 'JAVA', + inspectionType: 'JAVA_CLASS', + }, + }, + null, + 2, +); + +const obj = { + title: 'AtlasMap|Demo', +}; +export default obj; + +export const wiredToTheBackend = () => ( + + + +); + +export const embeddedInSyndesis = () => { + const externalDocumentFromKnob = html( + 'External document', + sampleExternalDocument, + ); + let externalDocument: IAtlasmapProviderProps['externalDocument']; + try { + externalDocument = JSON.parse(externalDocumentFromKnob); + } catch (e) { + // do nothing + } + return ( + + + + ); +}; diff --git a/packages/ui/src/impl/Atlasmap.tsx b/packages/ui/src/impl/Atlasmap.tsx new file mode 100644 index 000000000..baab38d3d --- /dev/null +++ b/packages/ui/src/impl/Atlasmap.tsx @@ -0,0 +1,456 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CanvasProvider, + ConditionalExpressionInput, + FieldDragLayer, + FieldsDndProvider, + TimedToast, +} from '../UI'; +import { ExpressionToolbar, MainLayout } from '../Layout'; +import { + IAtlasmapField, + IAtlasmapMapping, + ISourceColumnCallbacks, + ITargetsColumnCallbacks, + MappingTableView, + NamespaceTableView, + SourceTargetView, +} from '../Views'; +import { IUseContextToolbarData, useContextToolbar } from './useContextToolbar'; +import React, { FunctionComponent, useCallback, useMemo } from 'react'; +import { getConstantType, getPropertyType } from './utils'; + +import { AlertGroup } from '@patternfly/react-core'; +import { useAtlasmap } from './AtlasmapProvider'; +import { useAtlasmapDialogs } from './useAtlasmapDialogs'; +import { useSidebar } from './useSidebar'; + +export interface IAtlasmapProps { + allowImport?: boolean; + allowExport?: boolean; + allowReset?: boolean; + allowDelete?: boolean; + allowCustomJavaClasses?: boolean; + modalsContainerId?: string; + toolbarOptions?: IUseContextToolbarData; +} + +export const Atlasmap: FunctionComponent = ({ + allowImport = true, + allowExport = true, + allowReset = true, + allowDelete = true, + allowCustomJavaClasses = true, + modalsContainerId = 'modals', + toolbarOptions, +}) => { + const { + pending, + // error, + notifications, + markNotificationRead, + sourceProperties, + targetProperties, + constants, + sources, + targets, + mappings, + selectedMapping, + selectMapping, + onFieldPreviewChange, + searchSources, + searchTargets, + importJarFile, + // expression + currentMappingExpression, + executeFieldSearch, + getFieldEnums, + setSelectedEnumValue, + mappingExpressionAddField, + mappingExpressionClearText, + mappingExpressionInit, + mappingExpressionInsertText, + mappingExpressionObservable, + mappingExpressionRemoveField, + mappingExpressionEnabled, + isMappingExpressionEmpty, + trailerId, + canAddToSelectedMapping, + isFieldAddableToSelection, + isFieldRemovableFromSelection, + onAddToMapping, + onRemoveFromMapping, + onCreateMapping, + isEnumerationMapping, + } = useAtlasmap(); + + const { handlers, dialogs } = useAtlasmapDialogs({ + modalContainer: document.getElementById(modalsContainerId)!, + }); + const { activeView, showMappingPreview, showTypes, contextToolbar } = + useContextToolbar({ + showImportAtlasFileToolbarItem: allowImport, + showImportJarFileToolbarItem: allowImport, + showExportAtlasFileToolbarItem: allowExport, + showResetToolbarItem: allowReset, + ...toolbarOptions, + onImportADMArchiveFile: handlers.onImportADMArchive, + onImportJarFile: (file) => importJarFile(file), + onExportAtlasFile: handlers.onExportADMArchive, + onResetAtlasmap: handlers.onResetAtlasmap, + onAbout: handlers.onAbout, + }); + + const shouldShowMappingPreviewForField = useCallback( + (field: IAtlasmapField) => + showMappingPreview && + !!selectedMapping && + field.isConnected && + !!field.mappings.find((m) => m.id === selectedMapping.id), + [selectedMapping, showMappingPreview], + ); + + const shouldShowMappingPreview = useCallback( + (mapping: IAtlasmapMapping) => + showMappingPreview && + !!selectedMapping && + mapping.id === selectedMapping.id, + [selectedMapping, showMappingPreview], + ); + + const expressionToolbar = ( + + + + ); + + const sourceEvents = useMemo( + () => ({ + isSource: true, + acceptDropType: 'target', + draggableType: 'source', + canDrop: (dt, i) => { + return isFieldAddableToSelection( + 'target', + i.payload as IAtlasmapField, + dt, + ); + }, + onDrop: (s, t) => onCreateMapping(s, t?.payload as IAtlasmapField), + onShowMappingDetails: selectMapping, + onAddToSelectedMapping: onAddToMapping, + canAddToSelectedMapping: canAddToSelectedMapping, + canAddFieldToSelectedMapping: (f) => + isFieldAddableToSelection('source', f), + onAddFieldToSelectedMapping: onAddToMapping, + canRemoveFromSelectedMapping: (f) => + isFieldRemovableFromSelection('source', f), + onRemoveFromSelectedMapping: onRemoveFromMapping, + onCreateConstant: () => handlers.onCreateConstant(constants), + onEditConstant: (constName, constValue) => { + const name = constName; + const value = constValue; + const valueType = getConstantType(name); + + handlers.onEditConstant({ name, value, valueType }, constants); + }, + onDeleteConstant: handlers.onDeleteConstant, + onCreateProperty: (isSource: boolean) => { + handlers.onCreateProperty(isSource, sourceProperties); + }, + onEditProperty: (property, scope, isSource) => { + const [leftPart] = property.split(' '); + const valueType = getPropertyType(leftPart, scope, isSource); + handlers.onEditProperty( + { + name: leftPart, + valueType, + scope, + }, + true, + sourceProperties, + ); + }, + onDeleteProperty: handlers.onDeleteProperty, + onDeleteDocument: allowDelete + ? (id) => handlers.onDeleteDocument(id, true) + : undefined, + onCaptureDocumentID: (id) => handlers.onCaptureDocumentID(id), + onChangeDocumentName: (id, name) => + handlers.onChangeDocumentName({ + id: id, + name: name, + isSource: true, + }), + onCustomClassSearch: allowCustomJavaClasses + ? (isSource: boolean) => handlers.onEnableCustomClass(isSource) + : undefined, + onImportDocument: allowImport + ? (id) => handlers.onImportDocument(id, true) + : undefined, + onSearch: searchSources, + shouldShowMappingPreviewForField, + onFieldPreviewChange, + canStartMapping: () => true, // TODO: check that there is at least one target field unmapped and compatible + onStartMapping: (field) => onCreateMapping(field, undefined), + onEditCSVParams: (docId, isSource) => { + handlers.onEditCSVParams(docId, isSource); + }, + }), + [ + selectMapping, + onAddToMapping, + onRemoveFromMapping, + handlers, + constants, + allowDelete, + allowCustomJavaClasses, + allowImport, + searchSources, + shouldShowMappingPreviewForField, + onFieldPreviewChange, + onCreateMapping, + canAddToSelectedMapping, + isFieldAddableToSelection, + isFieldRemovableFromSelection, + sourceProperties, + ], + ); + + const targetEvents = useMemo( + () => ({ + isSource: false, + acceptDropType: 'source', + draggableType: 'target', + canDrop: (dt, i) => { + return isFieldAddableToSelection( + 'source', + i.payload as IAtlasmapField, + dt, + ); + }, + onDrop: (s, t) => onCreateMapping(t?.payload as IAtlasmapField, s), + canAddToSelectedMapping: canAddToSelectedMapping, + canAddFieldToSelectedMapping: (f) => + isFieldAddableToSelection('target', f), + onShowMappingDetails: selectMapping, + onAddToSelectedMapping: onAddToMapping, + canRemoveFromSelectedMapping: (f) => + isFieldRemovableFromSelection('target', f), + onRemoveFromSelectedMapping: onRemoveFromMapping, + onCreateProperty: (isSource: boolean) => { + handlers.onCreateProperty(isSource, targetProperties); + }, + onEditProperty: (property, scope, isSource) => { + const [leftPart] = property.split(' '); + const valueType = getPropertyType(leftPart, scope, isSource); + handlers.onEditProperty( + { + name: leftPart, + valueType, + scope, + }, + false, + targetProperties, + ); + }, + onDeleteProperty: handlers.onDeleteProperty, + onDeleteDocument: allowDelete + ? (id) => handlers.onDeleteDocument(id, false) + : undefined, + onCaptureDocumentID: (id) => handlers.onCaptureDocumentID(id), + onChangeDocumentName: (id, name) => + handlers.onChangeDocumentName({ + id: id, + name: name, + isSource: false, + }), + onCustomClassSearch: allowCustomJavaClasses + ? (isSource: boolean) => handlers.onEnableCustomClass(isSource) + : undefined, + onImportDocument: allowImport + ? (id) => handlers.onImportDocument(id, false) + : undefined, + onSearch: searchTargets, + shouldShowMappingPreviewForField, + onFieldPreviewChange, + canStartMapping: (field) => !field.isConnected, + onStartMapping: (field) => onCreateMapping(undefined, field), + onEditCSVParams: (docId, isSource) => { + handlers.onEditCSVParams(docId, isSource); + }, + }), + [ + selectMapping, + onAddToMapping, + onRemoveFromMapping, + handlers, + allowDelete, + allowCustomJavaClasses, + allowImport, + searchTargets, + shouldShowMappingPreviewForField, + onFieldPreviewChange, + onCreateMapping, + canAddToSelectedMapping, + isFieldAddableToSelection, + isFieldRemovableFromSelection, + targetProperties, + ], + ); + + const currentView = useMemo(() => { + switch (activeView) { + case 'ColumnMapper': + return ( + + ); + case 'MappingTable': + return ( + + ); + case 'NamespaceTable': + return ( + + handlers.onEditNamespace(docName, { + alias, + uri, + locationUri, + targetNamespace, + }) + } + onDeleteNamespace={handlers.deleteNamespace} + /> + ); + default: + return <>TODO; + } + }, [ + activeView, + constants, + handlers, + mappings, + onFieldPreviewChange, + sourceProperties, + targetProperties, + selectMapping, + selectedMapping, + shouldShowMappingPreview, + showMappingPreview, + showTypes, + sourceEvents, + sources, + targetEvents, + targets, + ]); + + const renderSidebar = useSidebar({ + onCreateConstant: () => { + handlers.onCreateConstant(constants, true); + }, + onCreateProperty: (isSource: boolean) => { + if (isSource) { + handlers.onCreateProperty(isSource, sourceProperties, true); + } else { + handlers.onCreateProperty(isSource, targetProperties, true); + } + }, + onRemoveMapping: handlers.onDeleteSelectedMapping, + onEditEnum: handlers.onEditMappingEnumeration, + isEnumMapping: isEnumerationMapping, + }); + + return ( + + + + {currentView} + + + + {notifications + .filter((n) => !n.isRead && !n.mappingId) + .slice(0, 5) + .map(({ id, variant, title, description }) => ( + markNotificationRead(id)} + onTimeout={() => markNotificationRead(id)} + > + {description} + + ))} + + {dialogs} + + + ); +}; diff --git a/packages/ui/src/impl/AtlasmapProvider.tsx b/packages/ui/src/impl/AtlasmapProvider.tsx new file mode 100644 index 000000000..1c1863819 --- /dev/null +++ b/packages/ui/src/impl/AtlasmapProvider.tsx @@ -0,0 +1,721 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + DataActionPayload, + IDataState, + INotificationsState, + dataReducer, + initDataState, + initNotificationsState, + notificationsReducer, +} from './reducers'; +import { + DocumentInitializationModel, + DocumentType, + InspectionType, + MappingSerializer, + TransitionMode, +} from '../core'; +import { IAtlasmapDocument, IAtlasmapField } from '../Views'; +import { + FunctionComponent, + createContext, + useCallback, + useContext, + useEffect, + useReducer, +} from 'react'; +import { + addToCurrentMapping, + changeDocumentName, + createConstant, + createMapping, + createNamespace, + createProperty, + deleteAtlasFile, + deleteConstant, + deleteNamespace, + deleteProperty, + deselectMapping, + documentExists, + editConstant, + editNamespace, + editProperty, + enableCustomClass, + errorInfoToNotification, + executeFieldSearch, + exportADMArchiveFile, + fromDocumentDefinitionToFieldGroup, + fromFieldToIFieldsNode, + fromMappedFieldToIMappingField, + fromMappingDefinitionToIMappings, + fromMappingModelToImapping, + getEnumerationValues, + getFieldEnums, + getMappingActions, + getMappingExpression, + getMultiplicityActionDelimiters, + getMultiplicityActions, + getRuntimeVersion, + getUIVersion, + handleActionChange, + handleIndexChange, + handleMultiplicityArgumentChange, + handleMultiplicityChange, + handleNewTransformation, + handleRemoveTransformation, + handleTransformationArgumentChange, + handleTransformationChange, + importADMArchiveFile, + importInstanceSchema, + importJarFile, + initializationService, + isEnumerationMapping, + mappingExpressionAddField, + mappingExpressionClearText, + mappingExpressionInit, + mappingExpressionInsertText, + mappingExpressionObservable, + mappingExpressionRemoveField, + newMapping, + onFieldPreviewChange, + removeFromCurrentMapping, + removeMappedFieldFromCurrentMapping, + removeMapping, + resetAtlasmap, + selectMapping, + setSelectedEnumValue, + toggleExpressionMode, + toggleMappingPreview, + toggleShowMappedFields, + toggleShowUnmappedFields, + trailerId, +} from './utils'; + +import { LogLevelDesc } from 'loglevel'; +import { debounceTime } from 'rxjs/operators'; + +// the document payload with get from Syndesis +export interface IExternalDocumentProps { + id: string; + name: string; + description: string; + documentType: DocumentType; + inspectionType: InspectionType; + inspectionSource: string; + inspectionParameters: { [key: string]: string }; + inspectionResult: string; + showFields: boolean; +} +interface IAtlasmapContext extends IDataState, INotificationsState { + onLoading: () => void; + onReset: () => void; + markNotificationRead: (id: string) => void; +} +const AtlasmapContext = createContext(null); + +export interface IAtlasmapProviderProps { + baseJavaInspectionServiceUrl: string; + baseXMLInspectionServiceUrl: string; + baseJSONInspectionServiceUrl: string; + baseCSVInspectionServiceUrl: string; + baseMappingServiceUrl: string; + logLevel: string; + + externalDocument?: { + documentId: string; + inputDocuments: IExternalDocumentProps[]; + outputDocument: IExternalDocumentProps; + initialMappings?: string; + }; + onMappingChange?: (serializedMappings: string) => void; +} +export const AtlasmapProvider: FunctionComponent = ({ + baseJavaInspectionServiceUrl, + baseXMLInspectionServiceUrl, + baseJSONInspectionServiceUrl, + baseCSVInspectionServiceUrl, + baseMappingServiceUrl, + externalDocument, + onMappingChange, + logLevel, + children, +}) => { + const [data, dispatchData] = useReducer(dataReducer, {}, initDataState); + const [notifications, dispatchNotifications] = useReducer( + notificationsReducer, + {}, + initNotificationsState, + ); + + const onReset = () => { + dispatchData({ type: 'reset' }); + dispatchNotifications({ + type: 'reset', + }); + }; + + const onLoading = () => { + dispatchData({ type: 'loading' }); + }; + + const onUpdates = (payload: DataActionPayload) => { + dispatchData({ + type: 'update', + payload, + }); + }; + + const markNotificationRead = (id: string) => + dispatchNotifications({ type: 'dismiss', payload: { id } }); + + useEffect( + function onInitializationCb() { + onReset(); + initializationService.resetConfig(); + const cfg = initializationService.cfg; + cfg.logger?.setLevel(logLevel as LogLevelDesc); + + cfg.initCfg.baseMappingServiceUrl = baseMappingServiceUrl; + cfg.initCfg.baseJavaInspectionServiceUrl = baseJavaInspectionServiceUrl; + cfg.initCfg.baseXMLInspectionServiceUrl = baseXMLInspectionServiceUrl; + cfg.initCfg.baseJSONInspectionServiceUrl = baseJSONInspectionServiceUrl; + cfg.initCfg.baseCSVInspectionServiceUrl = baseCSVInspectionServiceUrl; + + if (externalDocument) { + externalDocument.inputDocuments.forEach((d) => { + const inputDoc: DocumentInitializationModel = + new DocumentInitializationModel(); + inputDoc.type = d.documentType; + inputDoc.inspectionType = d.inspectionType; + inputDoc.inspectionSource = d.inspectionSource; + inputDoc.inspectionParameters = d.inspectionParameters; + inputDoc.inspectionResult = d.inspectionResult; + inputDoc.id = d.id; + inputDoc.name = d.name; + inputDoc.description = d.description; + inputDoc.isSource = true; + inputDoc.showFields = d.showFields; + cfg.addDocument(inputDoc); + }); + + const outputDoc: DocumentInitializationModel = + new DocumentInitializationModel(); + outputDoc.type = externalDocument.outputDocument.documentType; + outputDoc.inspectionType = + externalDocument.outputDocument.inspectionType; + outputDoc.inspectionSource = + externalDocument.outputDocument.inspectionSource; + outputDoc.inspectionParameters = + externalDocument.outputDocument.inspectionParameters; + outputDoc.inspectionResult = + externalDocument.outputDocument.inspectionResult; + outputDoc.id = externalDocument.outputDocument.id; + outputDoc.name = externalDocument.outputDocument.name; + outputDoc.description = externalDocument.outputDocument.description; + outputDoc.isSource = false; + outputDoc.showFields = externalDocument.outputDocument.showFields; + cfg.addDocument(outputDoc); + + if (externalDocument.initialMappings) { + cfg.preloadedMappingJson = externalDocument.initialMappings; + } + } + + initializationService.initialize(); + + onLoading(); + }, + [ + baseCSVInspectionServiceUrl, + baseJSONInspectionServiceUrl, + baseJavaInspectionServiceUrl, + baseMappingServiceUrl, + baseXMLInspectionServiceUrl, + externalDocument, + logLevel, + ], + ); + + const configModel = initializationService.cfg; + + const convertSources = useCallback( + function convertSourcesCb() { + return configModel.sourceDocs + .map(fromDocumentDefinitionToFieldGroup) + .filter((d: any) => d) as IAtlasmapDocument[]; + }, + [configModel], + ); + + const convertConstants = useCallback( + function convertConstantsCb() { + return fromDocumentDefinitionToFieldGroup(configModel.constantDoc); + }, + [configModel], + ); + + const convertSourceProperties = useCallback( + function convertPropertiesCb() { + return fromDocumentDefinitionToFieldGroup(configModel.sourcePropertyDoc); + }, + [configModel], + ); + + const convertTargetProperties = useCallback( + function convertPropertiesCb() { + return fromDocumentDefinitionToFieldGroup(configModel.targetPropertyDoc); + }, + [configModel], + ); + + const convertTargets = useCallback( + function convertTargetsCb() { + return configModel.targetDocs + .map(fromDocumentDefinitionToFieldGroup) + .filter((d) => d) as IAtlasmapDocument[]; + }, + [configModel], + ); + + const convertMappings = useCallback( + function convertMappingsCb() { + return fromMappingDefinitionToIMappings(configModel.mappings); + }, + [configModel], + ); + + const convertSelectedMapping = useCallback( + function convertSelectedMappingCb() { + return fromMappingModelToImapping(configModel.mappings?.activeMapping); + }, + [configModel], + ); + + const convertSourcesToFlatArray = useCallback( + function convertSourcesToFlatArrayCb(): IAtlasmapField[] { + return configModel.sourceDocs.flatMap((s) => + s.getAllFields().flatMap((f) => { + const af = fromFieldToIFieldsNode(f); + return af ? [af] : []; + }), + ); + }, + [configModel], + ); + const convertTargetsToFlatArray = useCallback( + function convertTargetsToFlatArrayCb() { + return configModel.targetDocs.flatMap((t) => + t.getAllFields().flatMap((f) => { + const af = fromFieldToIFieldsNode(f); + return af ? [af] : []; + }), + ); + }, + [configModel], + ); + + const onSubUpdate = useCallback( + function onSubUpdateCb(_caller: string) { + onUpdates({ + pending: !configModel.initCfg.initialized, + error: configModel.initCfg.initializationErrorOccurred, + sources: convertSources(), + constants: convertConstants(), + sourceProperties: convertSourceProperties(), + targets: convertTargets(), + targetProperties: convertTargetProperties(), + mappings: convertMappings(), + selectedMapping: convertSelectedMapping(), + flatSources: convertSourcesToFlatArray(), + flatTargets: convertTargetsToFlatArray(), + }); + dispatchNotifications({ + type: 'update', + payload: { + notifications: configModel.errorService + .getErrors() + .reverse() + .filter((e) => e.level !== 'DEBUG') + .map(errorInfoToNotification), + }, + }); + }, + [ + configModel, + convertConstants, + convertMappings, + convertSelectedMapping, + convertSources, + convertSourceProperties, + convertSourcesToFlatArray, + convertTargets, + convertTargetProperties, + convertTargetsToFlatArray, + ], + ); + + useEffect( + function subscriptionListener() { + const debounceTimeWindow = data.pending ? 1000 : 50; + const initializationObservable = + initializationService.systemInitializedSource.pipe( + debounceTime(debounceTimeWindow), + ); + const lineRefreshObservable = + configModel.mappingService.lineRefreshSource.pipe( + debounceTime(debounceTimeWindow), + ); + const mappingUpdatedSource = + configModel.mappingService.mappingUpdatedSource.pipe( + debounceTime(debounceTimeWindow), + ); + const mappingPreview = + configModel.previewService.mappingPreviewOutput$.pipe( + debounceTime(debounceTimeWindow), + ); + + const subscriptions = [ + initializationObservable.subscribe(() => + onSubUpdate('initializationObservable'), + ), + mappingUpdatedSource.subscribe(() => + onSubUpdate('mappingUpdatedSource'), + ), + mappingPreview.subscribe(() => onSubUpdate('mappingPreviewOutput$')), + lineRefreshObservable.subscribe(() => + onSubUpdate('lineRefreshObservable'), + ), + configModel.errorService.subscribe(() => onSubUpdate('errorService')), + ]; + + return () => { + subscriptions.forEach((s) => s.unsubscribe()); + }; + }, + [ + baseJavaInspectionServiceUrl, + baseXMLInspectionServiceUrl, + baseJSONInspectionServiceUrl, + baseCSVInspectionServiceUrl, + baseMappingServiceUrl, + configModel, + data.pending, + data.selectedMapping, + onSubUpdate, + ], + ); + + useEffect( + function onMappingChangeListenerCb() { + if (onMappingChange) { + configModel.mappingService.mappingUpdatedSource.subscribe( + function onMappingChangeListenerSubCb() { + if (configModel.initCfg.initialized) { + onMappingChange( + JSON.stringify( + MappingSerializer.serializeMappings(configModel), + ), + ); + } + }, + ); + } + }, + [configModel, onMappingChange], + ); + + return ( + + {children} + + ); +}; + +export function useAtlasmap() { + const context = useContext(AtlasmapContext); + + if (!context) { + throw new Error( + `useAtlasmap must be used inside an AtlasmapProvider component`, + ); + } + + const configModel = initializationService.cfg; + + const { onLoading, onReset, ...state } = context; + + const searchSources = useCallback( + (term: string) => + configModel.documentService.filterDocumentFields(term, true), + [configModel], + ); + const searchTargets = useCallback( + (term: string) => + configModel.documentService.filterDocumentFields(term, false), + [configModel], + ); + + const handleImportADMArchiveFile = useCallback( + (file: File) => { + importADMArchiveFile(file, configModel); + }, + [configModel], + ); + + const handleImportJarFile = useCallback( + (file: File) => { + importJarFile(file, configModel); + }, + [configModel], + ); + + const handleResetAtlasmap = useCallback(() => { + onReset(); + resetAtlasmap(); + }, [onReset]); + + const onAddToMapping = useCallback((node: IAtlasmapField) => { + const field = node.amField; + addToCurrentMapping(field); + }, []); + + const onRemoveFromMapping = useCallback((node: IAtlasmapField) => { + const field = node.amField; + removeFromCurrentMapping(field); + }, []); + + const onCreateMapping = useCallback( + ( + source: IAtlasmapField | undefined, + target: IAtlasmapField | undefined, + ) => { + const sourceField = source?.amField; + const targetField = target?.amField; + createMapping(sourceField, targetField); + }, + [], + ); + + const isMappingExpressionEmpty = + configModel.mappings?.activeMapping?.transition?.expression?.nodes + .length === 0; + + const mappingHasSourceCollection = useCallback(() => { + return configModel.expressionService.willClearOutSourceFieldsOnTogglingExpression(); + }, [configModel]); + + /** + * Return true if it's possible to add a source or target field to the current + * mapping from the specified panel, false otherwise. + */ + const canAddToSelectedMapping = useCallback( + (isSource: boolean): boolean => { + const { selectedMapping } = context; + if ( + !selectedMapping || + (selectedMapping.mapping.transition.mode === TransitionMode.ENUM && + selectedMapping.sourceFields.length > 0 && + selectedMapping.targetFields.length > 0) + ) { + return false; + } + if ( + selectedMapping.sourceFields.length <= 1 && + selectedMapping.targetFields.length <= 1 + ) { + return true; + } else if ( + isSource && + (selectedMapping.targetFields.length <= 1 || + selectedMapping.sourceFields.length === 0) + ) { + return true; + } else if ( + !isSource && + (selectedMapping.sourceFields.length <= 1 || + selectedMapping.targetFields.length === 0) + ) { + return true; + } + return false; + }, + [context], + ); + + /** + * Return true if it's possible to add the specified source field to the current mapping + * from the specified panel, false otherwise. + */ + const isFieldAddableToSelection = useCallback( + ( + documentType: 'source' | 'target', + field: IAtlasmapField, + dropTarget?: IAtlasmapField, + ): boolean => { + const { selectedMapping } = context; + const isSource = documentType === 'source'; + if ( + !field || + !field.amField.isTerminal() || + dropTarget?.type === 'UNSUPPORTED' || + (selectedMapping && + selectedMapping.mapping.transition.mode === TransitionMode.ENUM && + selectedMapping.sourceFields.length > 0 && + selectedMapping.targetFields.length > 0) + ) { + return false; + } + if (!selectedMapping || (dropTarget && !dropTarget.isConnected)) { + return true; + } + if ( + selectedMapping.sourceFields.length <= 1 && + selectedMapping.targetFields.length <= 1 + ) { + if ( + isSource && + !selectedMapping.sourceFields.find((f) => f.id === field.id) + ) { + return true; + } else if ( + field.isCollection || + field.isInCollection || + (!field.isConnected && + !selectedMapping.targetFields.find((f) => f.id === field.id)) + ) { + return true; + } + } else if ( + isSource && + (selectedMapping.targetFields.length <= 1 || + selectedMapping.sourceFields.length === 0) && + !selectedMapping.sourceFields.find((f) => f.id === field.id) + ) { + return true; + } else if ( + !isSource && + (field.isCollection || + field.isInCollection || + (!field.isConnected && + (selectedMapping.sourceFields.length <= 1 || + selectedMapping.targetFields.length === 0) && + !selectedMapping.targetFields.find((f) => f.id === field.id))) + ) { + return true; + } + return false; + }, + [context], + ); + + const isFieldRemovableFromSelection = useCallback( + (documentType: 'source' | 'target', field: IAtlasmapField): boolean => + !!context.selectedMapping && + !!context.selectedMapping[ + documentType === 'source' ? 'sourceFields' : 'targetFields' + ].find((f) => f.id === field.id), + [context.selectedMapping], + ); + + return { + ...state, + selectMapping, + deselectMapping, + deleteAtlasFile, + exportADMArchiveFile: exportADMArchiveFile, + importADMArchiveFile: handleImportADMArchiveFile, + importJarFile: handleImportJarFile, + resetAtlasmap: handleResetAtlasmap, + getUIVersion: getUIVersion, + getRuntimeVersion: getRuntimeVersion, + mappingExpressionClearText, + isMappingExpressionEmpty, + executeFieldSearch, + getFieldEnums, + setSelectedEnumValue, + mappingExpressionAddField, + mappingExpressionInit, + mappingExpressionInsertText, + mappingExpressionObservable, + mappingExpressionRemoveField, + mappingHasSourceCollection, + mappingExpressionEnabled: + configModel.expressionService.isExpressionEnabledForActiveMapping(), + currentMappingExpression: + configModel.expressionService.getMappingExpressionStr( + true, + configModel.mappings?.activeMapping, + ), + getMappingExpression, + toggleExpressionMode, + toggleMappingPreview, + toggleShowMappedFields, + toggleShowUnmappedFields, + onFieldPreviewChange, + addToCurrentMapping, + removeFromCurrentMapping, + removeMappedFieldFromCurrentMapping, + fromMappedFieldToIMappingField, + createMapping, + newMapping, + removeMapping, + documentExists, + getMappingActions, + getMultiplicityActions, + getMultiplicityActionDelimiters, + handleActionChange, + handleIndexChange, + handleNewTransformation, + handleRemoveTransformation, + handleTransformationChange, + handleTransformationArgumentChange, + handleMultiplicityChange, + handleMultiplicityArgumentChange, + createConstant, + deleteConstant, + editConstant, + createProperty, + deleteProperty, + editProperty, + trailerId, + canAddToSelectedMapping, + isFieldAddableToSelection, + isFieldRemovableFromSelection, + searchSources, + searchTargets, + importInstanceSchema, + enableCustomClass, + createNamespace, + editNamespace, + deleteNamespace, + onAddToMapping, + onRemoveFromMapping, + onCreateMapping, + changeDocumentName, + getEnumerationValues, + isEnumerationMapping, + configModel, + }; +} diff --git a/packages/ui/src/impl/dialogs/index.ts b/packages/ui/src/impl/dialogs/index.ts new file mode 100644 index 000000000..3c0874ef9 --- /dev/null +++ b/packages/ui/src/impl/dialogs/index.ts @@ -0,0 +1,36 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './useConfirmationDialog'; +export * from './useConstantDialog'; +export * from './useCustomClassDialog'; +export * from './useDeleteConstantDialog'; +export * from './useDeleteDocumentDialog'; +export * from './useCaptureDocumentIDToast'; +export * from './useChangeDocumentNameDialog'; +export * from './useDeleteMappingDialog'; +export * from './useDeletePropertyDialog'; +export * from './useImportADMArchiveDialog'; +export * from './useExportADMArchiveDialog'; +export * from './useImportDocumentDialog'; +export * from './useNamespaceDialog'; +export * from './useParametersDialog'; +export * from './usePropertyDialog'; +export * from './useRemoveMappedFieldDialog'; +export * from './useResetAtlasmapDialog'; +export * from './useAboutDialog'; +export * from './useSpecifyInstanceSchemaDialog'; +export * from './useToggleExpressionModeDialog'; +export * from './useEditMappingEnumerationDialog'; diff --git a/packages/ui/src/impl/dialogs/useAboutDialog.tsx b/packages/ui/src/impl/dialogs/useAboutDialog.tsx new file mode 100644 index 000000000..897245db4 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useAboutDialog.tsx @@ -0,0 +1,53 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { ReactElement, useCallback, useState } from 'react'; + +import { AboutDialog } from '../../UI'; +import { useAtlasmap } from '../AtlasmapProvider'; +import { useToggle } from '../utils'; + +export function useAboutDialog(): [ReactElement, () => void] { + const { getRuntimeVersion, getUIVersion } = useAtlasmap(); + const uiVersion = getUIVersion(); + const [runtimeVersion, setRuntimeVersion]: [ + string, + (version: string) => void, + ] = useState('0.0'); + const { state, toggleOn, toggleOff } = useToggle(false); + + const dialog = ( + + ); + + const onAboutDialog = useCallback(() => { + getRuntimeVersion() + .then((body: any) => { + setRuntimeVersion(body); + toggleOn(); + }) + .catch((error) => { + setRuntimeVersion(error); + toggleOn(); + }); + }, [toggleOn, getRuntimeVersion]); + return [dialog, onAboutDialog]; +} diff --git a/packages/ui/src/impl/dialogs/useCaptureDocumentIDToast.tsx b/packages/ui/src/impl/dialogs/useCaptureDocumentIDToast.tsx new file mode 100644 index 000000000..4cc2d9aa8 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useCaptureDocumentIDToast.tsx @@ -0,0 +1,71 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback, useRef } from 'react'; + +import React from 'react'; +import { TimedToast } from '../../UI'; +import { copyToClipboard } from '../utils/ui'; +import { useToggle } from '../utils'; + +let docId = ''; + +function useCreateToast(): [ReactElement, (cb: () => void) => void] { + const { state, toggleOn, toggleOff } = useToggle(false); + const onExecuteCb = useRef<(() => void) | null>(null); + const onClose = () => { + toggleOff(); + }; + const description = 'Document ID ' + docId + ' copied to clipboard.'; + const openToast = (executeCb: () => void) => { + onExecuteCb.current = executeCb; + toggleOn(); + }; + let toastElement: ReactElement = ( + + {description} + + ); + + if (state) { + if (onExecuteCb.current) { + onExecuteCb.current(); + } + } else { + toastElement = ; + } + return [toastElement, openToast]; +} + +export function useCaptureDocumentIDToast(): [ + ReactElement, + (documentId: string) => void, +] { + const [captureDocumentIDToast, openCaptureDocumentIDToast] = useCreateToast(); + const onCaptureDocumentID = useCallback( + (documentId: string) => { + docId = documentId; + openCaptureDocumentIDToast(() => copyToClipboard(documentId)); + }, + [openCaptureDocumentIDToast], + ); + return [captureDocumentIDToast, onCaptureDocumentID]; +} diff --git a/packages/ui/src/impl/dialogs/useChangeDocumentNameDialog.tsx b/packages/ui/src/impl/dialogs/useChangeDocumentNameDialog.tsx new file mode 100644 index 000000000..a142d11cf --- /dev/null +++ b/packages/ui/src/impl/dialogs/useChangeDocumentNameDialog.tsx @@ -0,0 +1,62 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ChangeDocumentNameDialog, IDocumentName } from '../../UI'; +import React, { ReactElement, useCallback, useState } from 'react'; + +import { useToggle } from '../utils'; + +type ChangeDocumentNameCallback = (documentNameInfo: IDocumentName) => void; + +export function useChangeDocumentNameDialog(): [ + ReactElement, + (cb: ChangeDocumentNameCallback, documentNameInfo: IDocumentName) => void, +] { + const [onDocumentNameCb, setOnChangeDocumentNameCb] = + useState(null); + const [initialDocumentName, setInitialDocumentName] = + useState({ + id: '', + name: '', + isSource: false, + }); + const { state, toggleOn, toggleOff } = useToggle(false); + const onConfirm = useCallback( + (documentNameInfo: IDocumentName) => { + if (onDocumentNameCb) { + onDocumentNameCb(documentNameInfo); + toggleOff(); + } + }, + [onDocumentNameCb, toggleOff], + ); + const dialog = ( + + ); + const onOpenChangeDocumentNameDialog = useCallback( + (callback: ChangeDocumentNameCallback, documentNameInfo: IDocumentName) => { + setOnChangeDocumentNameCb(() => callback); + setInitialDocumentName(documentNameInfo); + toggleOn(); + }, + [toggleOn], + ); + return [dialog, onOpenChangeDocumentNameDialog]; +} diff --git a/packages/ui/src/impl/dialogs/useConfirmationDialog.tsx b/packages/ui/src/impl/dialogs/useConfirmationDialog.tsx new file mode 100644 index 000000000..4d88c57c3 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useConfirmationDialog.tsx @@ -0,0 +1,50 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { ReactChild, ReactElement, useRef } from 'react'; + +import { ConfirmationDialog } from '../../UI'; +import { TextContent } from '@patternfly/react-core'; +import { useToggle } from '../utils'; + +export function useConfirmationDialog( + title: string, + content: ReactChild, +): [ReactElement, (cb: () => void) => void] { + const { state, toggleOn, toggleOff } = useToggle(false); + const onConfirmCb = useRef<(() => void) | null>(null); + const onConfirm = () => { + if (onConfirmCb.current) { + onConfirmCb.current(); + } + toggleOff(); + }; + const openDialog = (confirmCb: () => void) => { + onConfirmCb.current = confirmCb; + toggleOn(); + }; + return [ + + {content} + , + openDialog, + ]; +} diff --git a/packages/ui/src/impl/dialogs/useConstantDialog.tsx b/packages/ui/src/impl/dialogs/useConstantDialog.tsx new file mode 100644 index 000000000..b6124e072 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useConstantDialog.tsx @@ -0,0 +1,103 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ConstantDialog, IConstant } from '../../UI'; +import { ReactElement, useCallback, useState } from 'react'; + +import { IAtlasmapDocument } from '../../Views'; +import { constantTypes } from '../../core'; +import { useToggle } from '../utils'; + +type ConstantCallback = (constant: IConstant, origName?: string) => void; + +export function useConstantDialog( + title: string, +): [ + ReactElement, + ( + cb: ConstantCallback, + constants: IAtlasmapDocument | null, + constant?: IConstant, + ) => void, +] { + const [onConstantCb, setOnConstantCb] = useState( + null, + ); + const [initialConstant, setInitialConstant] = useState({ + name: '', + value: '', + valueType: constantTypes[0][0], + }); + const [constantsDoc, setConstants] = useState(null); + const { state, toggleOn, toggleOff } = useToggle(false); + const onConfirm = useCallback( + (constant: IConstant) => { + if (onConstantCb) { + if (initialConstant?.name !== constant.name) { + onConstantCb(constant, initialConstant?.name); + } else { + onConstantCb(constant); + } + toggleOff(); + } + }, + [initialConstant, onConstantCb, toggleOff], + ); + function onValidation(name: string): boolean { + let fieldNameExists = false; + if (constantsDoc) { + // Ensure constant name is unique + const fields = constantsDoc.fields.filter( + (fieldOrGroup) => fieldOrGroup.name === name, + ); + fieldNameExists = fields.length > 0; + } + return name === initialConstant?.name || !fieldNameExists; + } + const dialog = ( + ({ + value, + label, + }))} + onCancel={toggleOff} + onConfirm={onConfirm} + onValidation={onValidation} + {...(initialConstant || {})} + /> + ); + const onOpenConstantDialog = useCallback( + ( + callback: ConstantCallback, + constantsDoc: IAtlasmapDocument | null, + constant?: IConstant, + ) => { + // we use a closure to set the state here else React will think that callback + // is the function to retrieve the state and will call it immediately. + setOnConstantCb(() => callback); + if (constant) { + setInitialConstant(constant); + } + if (constantsDoc) { + setConstants(constantsDoc); + } + toggleOn(); + }, + [toggleOn], + ); + return [dialog, onOpenConstantDialog]; +} diff --git a/packages/ui/src/impl/dialogs/useCustomClassDialog.tsx b/packages/ui/src/impl/dialogs/useCustomClassDialog.tsx new file mode 100644 index 000000000..1b0e2a114 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useCustomClassDialog.tsx @@ -0,0 +1,80 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { CustomClassDialog, ICustomClass } from '../../UI'; +import { ReactElement, useCallback, useState } from 'react'; + +import { collectionTypes } from '../../core'; +import { getCustomClassNameOptions } from '../utils/document'; +import { useToggle } from '../utils'; + +type CustomClassCallback = (constant: ICustomClass) => void; + +export function useCustomClassDialog( + title: string, +): [ReactElement, (cb: CustomClassCallback, constant?: ICustomClass) => void] { + const [onCustomClassCb, setOnCustomClassCb] = + useState(null); + + const [initialCustomClass, setInitialCustomClass] = + useState(null); + + const [customClassNames, setCustomClassNames] = useState([]); + + const { state, toggleOn, toggleOff } = useToggle(false); + const onConfirm = useCallback( + (constant: ICustomClass) => { + if (onCustomClassCb) { + onCustomClassCb(constant); + toggleOff(); + } + }, + [onCustomClassCb, toggleOff], + ); + + const getCustomClassNames = async () => { + setCustomClassNames(await getCustomClassNameOptions()); + }; + + const dialog = ( + ({ + value, + label, + }))} + onCancel={toggleOff} + onConfirm={onConfirm} + {...(initialCustomClass || { collectionType: 'NONE' })} + /> + ); + const onOpenCustomClassDialog = useCallback( + (callback: CustomClassCallback, constant?: ICustomClass) => { + // we use a closure to set the state here else React will think that callback + // is the function to retrieve the state and will call it immediately. + setOnCustomClassCb(() => callback); + if (constant) { + setInitialCustomClass(constant); + } + getCustomClassNames(); + toggleOn(); + }, + [toggleOn], + ); + return [dialog, onOpenCustomClassDialog]; +} diff --git a/packages/ui/src/impl/dialogs/useDeleteConstantDialog.tsx b/packages/ui/src/impl/dialogs/useDeleteConstantDialog.tsx new file mode 100644 index 000000000..af22d17a9 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useDeleteConstantDialog.tsx @@ -0,0 +1,37 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useDeleteConstantDialog(): [ + ReactElement, + (constName: string) => void, +] { + const { deleteConstant } = useAtlasmap(); + const [deleteConstantDialog, openDeleteConstantDialog] = + useConfirmationDialog( + 'Delete constant?', + 'Are you sure you want to delete the selected constant and remove any associated mapping references?', + ); + const onDeleteConstant = useCallback( + (constName: string) => + openDeleteConstantDialog(() => deleteConstant(constName)), + [deleteConstant, openDeleteConstantDialog], + ); + return [deleteConstantDialog, onDeleteConstant]; +} diff --git a/packages/ui/src/impl/dialogs/useDeleteDocumentDialog.tsx b/packages/ui/src/impl/dialogs/useDeleteDocumentDialog.tsx new file mode 100644 index 000000000..ee3116774 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useDeleteDocumentDialog.tsx @@ -0,0 +1,37 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { GroupId } from '../../Views'; +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useDeleteDocumentDialog(): [ + ReactElement, + (id: GroupId, isSource: boolean) => void, +] { + const { deleteAtlasFile } = useAtlasmap(); + const [deleteDialog, openDeleteDialog] = useConfirmationDialog( + 'Delete selected document?', + 'Are you sure you want to delete the selected document and remove any associated mappings?', + ); + const onDeleteDocument = useCallback( + (id: GroupId, isSource: boolean) => + openDeleteDialog(() => deleteAtlasFile(id, isSource)), + [deleteAtlasFile, openDeleteDialog], + ); + return [deleteDialog, onDeleteDocument]; +} diff --git a/packages/ui/src/impl/dialogs/useDeleteMappingDialog.tsx b/packages/ui/src/impl/dialogs/useDeleteMappingDialog.tsx new file mode 100644 index 000000000..ece198323 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useDeleteMappingDialog.tsx @@ -0,0 +1,42 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { IAtlasmapMapping } from '../../Views'; +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useDeleteMappingDialog(): [ + ReactElement, + (mapping: IAtlasmapMapping) => void, +] { + const { removeMapping, deselectMapping } = useAtlasmap(); + const [deleteMappingDialog, openDeleteMappingDialog] = useConfirmationDialog( + 'Remove Mapping?', + 'Are you sure you want to remove the current mapping?', + ); + const onDeleteMapping = useCallback( + (mapping: IAtlasmapMapping) => { + openDeleteMappingDialog(() => { + removeMapping(mapping.mapping); + deselectMapping(); + }); + }, + [deselectMapping, openDeleteMappingDialog, removeMapping], + ); + + return [deleteMappingDialog, onDeleteMapping]; +} diff --git a/packages/ui/src/impl/dialogs/useDeletePropertyDialog.tsx b/packages/ui/src/impl/dialogs/useDeletePropertyDialog.tsx new file mode 100644 index 000000000..f6254d0fe --- /dev/null +++ b/packages/ui/src/impl/dialogs/useDeletePropertyDialog.tsx @@ -0,0 +1,39 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useDeletePropertyDialog(): [ + ReactElement, + (propName: string, propScope: string, isSource: boolean) => void, +] { + const { deleteProperty } = useAtlasmap(); + const [deletePropertyDialog, openDeletePropertyDialog] = + useConfirmationDialog( + 'Delete property?', + 'Are you sure you want to delete the selected property and remove any associated mapping references?', + ); + const onDeleteProperty = useCallback( + (propName: string, propScope: string, isSource: boolean) => + openDeletePropertyDialog(() => + deleteProperty(propName, propScope, isSource), + ), + [deleteProperty, openDeletePropertyDialog], + ); + return [deletePropertyDialog, onDeleteProperty]; +} diff --git a/packages/ui/src/impl/dialogs/useEditMappingEnumerationDialog.tsx b/packages/ui/src/impl/dialogs/useEditMappingEnumerationDialog.tsx new file mode 100644 index 000000000..d4a0a6bee --- /dev/null +++ b/packages/ui/src/impl/dialogs/useEditMappingEnumerationDialog.tsx @@ -0,0 +1,78 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfirmationDialog, + LookupTableData, + LookupTableDialog, +} from '../../UI'; +import React, { ReactElement, useCallback, useState } from 'react'; +import { getEnumerationValues, updateEnumerationValues } from '../utils'; + +import { useToggle } from '../utils'; + +type LookupTableCallback = () => void; + +/** + * Enumeration mapping occurs through a "lookup" table. + */ +export function useEditMappingEnumerationDialog(): [ + ReactElement, + (cb: LookupTableCallback) => void, +] { + const { state, toggleOn, toggleOff } = useToggle(false); + + const [enumerationValues, setEnumerationValues] = useState< + LookupTableData[] | null + >([]); + + const getEnumValues = () => { + setEnumerationValues(getEnumerationValues()); + }; + + const onConfirm = useCallback(() => { + updateEnumerationValues(enumerationValues!); + toggleOff(); + }, [enumerationValues, toggleOff]); + + const dialog = ( + + {state && + enumerationValues && + enumerationValues.map((value, idx) => ( +
+ +
+ ))} +
+ ); + + const onOpenDialog = useCallback(() => { + getEnumValues(); + toggleOn(); + }, [toggleOn]); + + return [dialog, onOpenDialog]; +} diff --git a/packages/ui/src/impl/dialogs/useExportADMArchiveDialog.tsx b/packages/ui/src/impl/dialogs/useExportADMArchiveDialog.tsx new file mode 100644 index 000000000..aa684d501 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useExportADMArchiveDialog.tsx @@ -0,0 +1,40 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { ReactElement, useCallback } from 'react'; + +import { ExportCatalogDialog } from '../../UI'; +import { useAtlasmap } from '../AtlasmapProvider'; +import { useToggle } from '../utils'; + +export function useExportADMArchiveDialog(): [ReactElement, () => void] { + const { state, toggleOn, toggleOff } = useToggle(false); + const { exportADMArchiveFile } = useAtlasmap(); + const onExportADMArchiveFile = useCallback( + (filename: string) => { + exportADMArchiveFile(filename); + toggleOff(); + }, + [exportADMArchiveFile, toggleOff], + ); + const dialog = ( + + ); + return [dialog, toggleOn]; +} diff --git a/packages/ui/src/impl/dialogs/useImportADMArchiveDialog.tsx b/packages/ui/src/impl/dialogs/useImportADMArchiveDialog.tsx new file mode 100644 index 000000000..6f6c9e1bf --- /dev/null +++ b/packages/ui/src/impl/dialogs/useImportADMArchiveDialog.tsx @@ -0,0 +1,37 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useImportADMArchiveDialog(): [ + ReactElement, + (file: File) => void, +] { + const { importADMArchiveFile } = useAtlasmap(); + const [ImportADMArchiveDialog, openImportADMArchiveDialog] = + useConfirmationDialog( + 'Import ADM archive file?', + 'Importing a new ADM archive file will discard all unsaved changes. To save the current mappings, use the Export feature.', + ); + const onImportADMArchive = useCallback( + (file: File) => + openImportADMArchiveDialog(() => importADMArchiveFile(file)), + [importADMArchiveFile, openImportADMArchiveDialog], + ); + return [ImportADMArchiveDialog, onImportADMArchive]; +} diff --git a/packages/ui/src/impl/dialogs/useImportDocumentDialog.tsx b/packages/ui/src/impl/dialogs/useImportDocumentDialog.tsx new file mode 100644 index 000000000..0a618bc6b --- /dev/null +++ b/packages/ui/src/impl/dialogs/useImportDocumentDialog.tsx @@ -0,0 +1,94 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback, useState } from 'react'; +import { getCsvParameterOptions } from '../../core'; +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; +import { useParametersDialog } from './useParametersDialog'; +import { useSpecifyInstanceSchemaDialog } from './useSpecifyInstanceSchemaDialog'; + +export function useImportDocumentDialog(): [ + ReactElement, + (selectedFile: File, isSource: boolean) => void, +] { + const { configModel, documentExists, importInstanceSchema } = useAtlasmap(); + const [importDialog, openImportDialog] = useConfirmationDialog( + 'Confirm document import', + 'A document with the selected name has already been imported into the specified panel. It will appear in addition to the pre-existing document.', + ); + const [parametersDialog, openParametersDialog] = useParametersDialog( + 'Select CSV Processing Parameters', + ); + const [defaultSchema, setDefaultSchema] = useState(false); + const [specifyInstanceSchemaDialog, openSpecifyInstanceSchema] = + useSpecifyInstanceSchemaDialog(defaultSchema); + + const importFile = useCallback( + (selectedFile: File, isSource: boolean) => { + if (selectedFile.name) { + const userFileSplit = selectedFile.name.split('.'); + const userFileSuffix: string = + userFileSplit[userFileSplit.length - 1].toUpperCase(); + if (userFileSuffix === 'CSV') { + openParametersDialog((parameters) => { + const inspectionParameters: { [key: string]: string } = {}; + for (let parameter of parameters) { + inspectionParameters[parameter.name] = parameter.value; + } + importInstanceSchema( + selectedFile, + configModel, + isSource, + false, + inspectionParameters, + ); + }, getCsvParameterOptions()); + return; + } + + setDefaultSchema(userFileSuffix === 'XSD' ? true : false); + openSpecifyInstanceSchema((isSchema: boolean) => { + importInstanceSchema(selectedFile, configModel, isSource, isSchema); + }); + } + }, + [ + configModel, + importInstanceSchema, + openParametersDialog, + openSpecifyInstanceSchema, + ], + ); + + const onImportDocument = useCallback( + (selectedFile: File, isSource: boolean) => { + if (documentExists(selectedFile, isSource)) { + openImportDialog(() => importFile(selectedFile, isSource)); + } else { + importFile(selectedFile, isSource); + } + }, + [documentExists, importFile, openImportDialog], + ); + return [ + <> + {importDialog} + {parametersDialog} + {specifyInstanceSchemaDialog} + , + onImportDocument, + ]; +} diff --git a/packages/ui/src/impl/dialogs/useNamespaceDialog.tsx b/packages/ui/src/impl/dialogs/useNamespaceDialog.tsx new file mode 100644 index 000000000..69e07c09f --- /dev/null +++ b/packages/ui/src/impl/dialogs/useNamespaceDialog.tsx @@ -0,0 +1,64 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { INamespace, NamespaceDialog } from '../../UI'; +import React, { ReactElement, useCallback, useState } from 'react'; + +import { useToggle } from '../utils'; + +type NamespaceCallback = (namespace: INamespace) => void; + +export function useNamespaceDialog( + title: string, +): [ReactElement, (cb: NamespaceCallback, namespace?: INamespace) => void] { + const [onNamespaceCb, setOnNamespaceCb] = useState( + null, + ); + const [initialNamespace, setInitialNamespace] = useState( + null, + ); + const { state, toggleOn, toggleOff } = useToggle(false); + const onConfirm = useCallback( + (namespace: INamespace) => { + if (onNamespaceCb) { + onNamespaceCb(namespace); + toggleOff(); + } + }, + [onNamespaceCb, toggleOff], + ); + const dialog = ( + + ); + const onOpenNamespaceDialog = useCallback( + (callback: NamespaceCallback, namespace?: INamespace) => { + // we use a closure to set the state here else React will think that callback + // is the function to retrieve the state and will call it immediately. + setOnNamespaceCb(() => callback); + if (namespace) { + setInitialNamespace(namespace); + } + toggleOn(); + }, + [toggleOn], + ); + return [dialog, onOpenNamespaceDialog]; +} diff --git a/packages/ui/src/impl/dialogs/useParametersDialog.tsx b/packages/ui/src/impl/dialogs/useParametersDialog.tsx new file mode 100644 index 000000000..710b592d9 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useParametersDialog.tsx @@ -0,0 +1,65 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import React, { ReactElement, useCallback, useEffect, useState } from 'react'; +import { IParameter } from '@atlasmap/core'; +import { ParametersDialog } from '../../UI'; + +import { useToggle } from '../utils'; + +type ParametersCallback = (parameters: IParameter[]) => void; + +export function useParametersDialog( + title: string, +): [ReactElement, (cb: ParametersCallback, parameters?: IParameter[]) => void] { + const [onParametersCb, setOnParametersCb] = + useState(null); + const [parameters, setParameters] = useState([]); + const { state, toggleOn, toggleOff } = useToggle(false); + const reset = useCallback(() => { + setParameters([]); + }, []); + const onConfirm = useCallback( + (parameters: IParameter[]) => { + if (onParametersCb) { + onParametersCb(parameters); + toggleOff(); + } + }, + [onParametersCb, toggleOff], + ); + const dialog = ( + p.required || p.enabled)} + /> + ); + const onOpenParametersDialog = useCallback( + (callback: ParametersCallback, parameters?: IParameter[]) => { + setOnParametersCb(() => callback); + if (parameters) { + setParameters(parameters); + } + toggleOn(); + }, + [toggleOn], + ); + useEffect(reset, [reset]); + return [dialog, onOpenParametersDialog]; +} diff --git a/packages/ui/src/impl/dialogs/usePropertyDialog.tsx b/packages/ui/src/impl/dialogs/usePropertyDialog.tsx new file mode 100644 index 000000000..b9890e67c --- /dev/null +++ b/packages/ui/src/impl/dialogs/usePropertyDialog.tsx @@ -0,0 +1,107 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { IProperty, PropertyDialog } from '../../UI'; +import { ReactElement, useCallback, useState } from 'react'; + +import { IAtlasmapDocument } from '../../Views'; +import { propertyTypes } from '../../core'; +import { useToggle } from '../utils'; + +type PropertyCallback = (property: IProperty) => void; + +export function usePropertyDialog( + title: string, + scopeOptions: { + value: string; + label: string; + }[], +): [ + ReactElement, + ( + cb: PropertyCallback, + properties: IAtlasmapDocument | null, + property?: IProperty, + ) => void, +] { + const [onPropertyCb, setOnPropertyCb] = useState( + null, + ); + const [initialProperty, setInitialProperty] = useState({ + name: '', + valueType: propertyTypes[0][0], + scope: scopeOptions[0].value, + }); + const [properties, setProperties] = useState(null); + const { state, toggleOn, toggleOff } = useToggle(false); + const onConfirm = useCallback( + (property: IProperty) => { + if (onPropertyCb) { + onPropertyCb(property); + toggleOff(); + } + }, + [onPropertyCb, toggleOff], + ); + function onValidation(name: string, scope: string): boolean { + let fieldNameExists = false; + if (properties) { + // Ensure proerty name/scope combination is unique + const fields = properties.fields.filter( + (fieldOrGroup) => + fieldOrGroup.name === name && fieldOrGroup.amField.scope === scope, + ); + fieldNameExists = fields.length > 0; + } + return ( + (name === initialProperty?.name && scope === initialProperty.scope) || + !fieldNameExists + ); + } + const dialog = ( + ({ + value, + label, + }))} + scopeOptions={scopeOptions} + isOpen={state} + onCancel={toggleOff} + onConfirm={onConfirm} + onValidation={onValidation} + {...(initialProperty || {})} + /> + ); + const onOpenPropertyDialog = useCallback( + ( + callback: PropertyCallback, + properties: IAtlasmapDocument | null, + property?: IProperty, + ) => { + // we use a closure to set the state here else React will think that callback + // is the function to retrieve the state and will call it immediately. + setOnPropertyCb(() => callback); + if (property) { + setInitialProperty(property); + } + // Set properties even if null to reset values when switching panels. + setProperties(properties); + toggleOn(); + }, + [toggleOn], + ); + return [dialog, onOpenPropertyDialog]; +} diff --git a/packages/ui/src/impl/dialogs/useRemoveMappedFieldDialog.tsx b/packages/ui/src/impl/dialogs/useRemoveMappedFieldDialog.tsx new file mode 100644 index 000000000..decfc348b --- /dev/null +++ b/packages/ui/src/impl/dialogs/useRemoveMappedFieldDialog.tsx @@ -0,0 +1,35 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useRemoveMappedFieldDialog(): [ + ReactElement, + (cb: () => void) => void, +] { + const [removeMappedFieldDialog, openRemoveMappedFieldDialog] = + useConfirmationDialog( + 'Remove field?', + 'Are you sure you want to remove this field?', + ); + const onRemoveMappedField = useCallback( + (removeMappedField: () => void) => + openRemoveMappedFieldDialog(removeMappedField), + [openRemoveMappedFieldDialog], + ); + return [removeMappedFieldDialog, onRemoveMappedField]; +} diff --git a/packages/ui/src/impl/dialogs/useResetAtlasmapDialog.tsx b/packages/ui/src/impl/dialogs/useResetAtlasmapDialog.tsx new file mode 100644 index 000000000..16db9019e --- /dev/null +++ b/packages/ui/src/impl/dialogs/useResetAtlasmapDialog.tsx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useResetAtlasmapDialog(): [ReactElement, () => void] { + const { resetAtlasmap } = useAtlasmap(); + const [resetDialog, openResetDialog] = useConfirmationDialog( + 'Reset All Mappings and Imports?', + 'Are you sure you want to reset all mappings and clear all imported documents?', + ); + const onResetAtlasmap = useCallback( + () => openResetDialog(resetAtlasmap), + [openResetDialog, resetAtlasmap], + ); + + return [resetDialog, onResetAtlasmap]; +} diff --git a/packages/ui/src/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx b/packages/ui/src/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx new file mode 100644 index 000000000..5204e4065 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx @@ -0,0 +1,103 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Modal, Radio } from '@patternfly/react-core'; +import React, { ReactElement, useRef } from 'react'; + +import { useToggle } from '../utils'; + +export function useSpecifyInstanceSchemaDialog( + defaultSchema: boolean, +): [ReactElement, (cb: (isSchema: boolean) => void) => void] { + const dialogState: { + state: boolean; + toggleOn: () => void; + toggleOff: () => void; + } = useToggle(false); + const isSchema: { + state: boolean; + toggleOn: () => void; + toggleOff: () => void; + } = useToggle(defaultSchema); + const onConfirmCb = useRef<((isSchema: boolean) => void) | null>(null); + const onConfirm = () => { + if (onConfirmCb.current) { + onConfirmCb.current(isSchema.state); + } + dialogState.toggleOff(); + }; + const openDialog = (confirmCb: (isSchema: boolean) => void) => { + onConfirmCb.current = confirmCb; + if (defaultSchema) { + isSchema.toggleOn(); + } else { + isSchema.toggleOff(); + } + dialogState.toggleOn(); + }; + const handleInstanceChange = () => { + isSchema.toggleOff(); + }; + const handleSchemaChange = () => { + isSchema.toggleOn(); + }; + return [ + + OK + , + ]} + > + { + + + + + } + , + openDialog, + ]; +} diff --git a/packages/ui/src/impl/dialogs/useToggleExpressionModeDialog.tsx b/packages/ui/src/impl/dialogs/useToggleExpressionModeDialog.tsx new file mode 100644 index 000000000..e8d624387 --- /dev/null +++ b/packages/ui/src/impl/dialogs/useToggleExpressionModeDialog.tsx @@ -0,0 +1,40 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { ReactElement, useCallback } from 'react'; + +import { useAtlasmap } from '../AtlasmapProvider'; +import { useConfirmationDialog } from './useConfirmationDialog'; + +export function useToggleExpressionModeDialog(): [ReactElement, () => void] { + const { mappingHasSourceCollection, toggleExpressionMode } = useAtlasmap(); + const [toggleExpressionModeDialog, openToggleExpressionModeDialog] = + useConfirmationDialog( + 'Disable Expression?', + 'If you disable an expression with a source collection, all source fields will be removed from the mapping. Proceed with expression disable?', + ); + const onToggleExpressionMode = useCallback((): void => { + if (mappingHasSourceCollection()) { + openToggleExpressionModeDialog(toggleExpressionMode); + } else { + toggleExpressionMode(); + } + }, [ + mappingHasSourceCollection, + openToggleExpressionModeDialog, + toggleExpressionMode, + ]); + return [toggleExpressionModeDialog, onToggleExpressionMode]; +} diff --git a/packages/ui/src/impl/index.ts b/packages/ui/src/impl/index.ts new file mode 100644 index 000000000..9623e963c --- /dev/null +++ b/packages/ui/src/impl/index.ts @@ -0,0 +1,19 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './utils'; +export * from './Atlasmap'; +export * from './AtlasmapProvider'; +export * from './useAtlasmapDialogs'; diff --git a/packages/ui/src/impl/reducers/data.ts b/packages/ui/src/impl/reducers/data.ts new file mode 100644 index 000000000..534b909f9 --- /dev/null +++ b/packages/ui/src/impl/reducers/data.ts @@ -0,0 +1,93 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { IAtlasmapDocument, IAtlasmapMapping } from '../../Views'; + +import { IAtlasmapField } from './../../Views/models'; + +export interface DataAction { + type: 'reset' | 'loading' | 'update' | 'error'; + payload?: DataActionPayload; +} + +export interface DataActionPayload { + pending?: boolean; + error?: boolean; + sources?: IAtlasmapDocument[]; + targets?: IAtlasmapDocument[]; + constants?: IAtlasmapDocument | null; + mappings?: IAtlasmapMapping[]; + selectedMapping?: IAtlasmapMapping | null; + sourcesFilter?: string; + sourceProperties?: IAtlasmapDocument | null; + targetsFilter?: string; + targetProperties?: IAtlasmapDocument | null; + flatSources?: IAtlasmapField[]; + flatTargets?: IAtlasmapField[]; +} + +export interface IDataState { + pending: boolean; + error: boolean; + sources: IAtlasmapDocument[]; + targets: IAtlasmapDocument[]; + sourceProperties: IAtlasmapDocument | null; + targetProperties: IAtlasmapDocument | null; + constants: IAtlasmapDocument | null; + mappings: IAtlasmapMapping[]; + selectedMapping: IAtlasmapMapping | null; + flatSources: IAtlasmapField[]; + flatTargets: IAtlasmapField[]; +} + +export function initDataState(): IDataState { + return { + pending: false, + error: false, + sourceProperties: null, + targetProperties: null, + constants: null, + sources: [], + targets: [], + mappings: [], + selectedMapping: null, + flatSources: [], + flatTargets: [], + }; +} + +export function dataReducer(state: IDataState, action: DataAction): IDataState { + switch (action.type) { + case 'reset': + return initDataState(); + case 'loading': + return { + ...state, + pending: true, + error: false, + }; + case 'update': + return { + ...state, + ...action.payload, + }; + case 'error': + return { + ...initDataState(), + }; + default: + return state; + } +} diff --git a/packages/ui/src/impl/reducers/index.ts b/packages/ui/src/impl/reducers/index.ts new file mode 100644 index 000000000..6dd86ef03 --- /dev/null +++ b/packages/ui/src/impl/reducers/index.ts @@ -0,0 +1,17 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './data'; +export * from './notifications'; diff --git a/packages/ui/src/impl/reducers/notifications.ts b/packages/ui/src/impl/reducers/notifications.ts new file mode 100644 index 000000000..5af7d76c9 --- /dev/null +++ b/packages/ui/src/impl/reducers/notifications.ts @@ -0,0 +1,74 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { INotification } from '../../Views'; + +export interface ResetNotificationsAction { + type: 'reset'; +} + +export interface UpdateNotificationsAction { + type: 'update'; + payload: { + notifications: INotification[]; + }; +} + +export interface DismissNotificationAction { + type: 'dismiss'; + payload: { + id: string; + }; +} + +export interface INotificationsState { + notifications: INotification[]; +} + +export function initNotificationsState(): INotificationsState { + return { + notifications: [], + }; +} + +export function notificationsReducer( + state: INotificationsState, + action: + | ResetNotificationsAction + | UpdateNotificationsAction + | DismissNotificationAction, +): INotificationsState { + switch (action.type) { + case 'reset': + return { + notifications: [], + }; + case 'update': + return { + notifications: action.payload.notifications.map((n) => ({ + ...n, + isRead: state.notifications.find((on) => on.id === n.id)?.isRead, + })), + }; + case 'dismiss': + return { + notifications: state.notifications.map((n) => + n.id === action.payload.id ? { ...n, isRead: true } : n, + ), + }; + default: + return state; + } +} diff --git a/packages/ui/src/impl/toolbarItems.module.css b/packages/ui/src/impl/toolbarItems.module.css new file mode 100644 index 000000000..67ab85c4f --- /dev/null +++ b/packages/ui/src/impl/toolbarItems.module.css @@ -0,0 +1,3 @@ +.toggled { + color: var(--pf-global--primary-color--100) !important; +} diff --git a/packages/ui/src/impl/toolbarItems.module.css.d.ts b/packages/ui/src/impl/toolbarItems.module.css.d.ts new file mode 100644 index 000000000..21716d80b --- /dev/null +++ b/packages/ui/src/impl/toolbarItems.module.css.d.ts @@ -0,0 +1,5 @@ +declare const styles: { + readonly "toggled": string; +}; +export = styles; + diff --git a/packages/ui/src/impl/toolbarItems.tsx b/packages/ui/src/impl/toolbarItems.tsx new file mode 100644 index 000000000..4ed0d1ae5 --- /dev/null +++ b/packages/ui/src/impl/toolbarItems.tsx @@ -0,0 +1,480 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + BezierCurveIcon, + CaretDownIcon, + CodeIcon, + ColumnsIcon, + ExportIcon, + EyeIcon, + HelpIcon, + ImportIcon, + InfoIcon, + MapIcon, + MapMarkedIcon, + PficonDragdropIcon, + PlusIcon, + TableIcon, + TrashIcon, +} from '@patternfly/react-icons'; +import { + Button, + Dropdown, + DropdownItem, + DropdownSeparator, + DropdownToggle, + ToolbarItem, + Tooltip, +} from '@patternfly/react-core'; +import { FunctionComponent, useEffect, useRef } from 'react'; + +import { css } from '@patternfly/react-styles'; +import styles from './toolbarItems.module.css'; +import { useFilePicker } from 'react-sage'; +import { useToggle } from './utils'; + +export interface IAtlasmapToolbarItemProps { + showImportAtlasFileToolbarItem: boolean; + showImportJarFileToolbarItem: boolean; + showExportAtlasFileToolbarItem: boolean; + showResetToolbarItem: boolean; + onImportAtlasFile: (file: File) => void; + onImportJarFile: (file: File) => void; + onExportAtlasFile: () => void; + onResetAtlasmap: () => void; +} +export const AtlasmapToolbarItem: FunctionComponent< + IAtlasmapToolbarItemProps +> = ({ + showImportAtlasFileToolbarItem, + showImportJarFileToolbarItem, + showExportAtlasFileToolbarItem, + showResetToolbarItem, + onImportAtlasFile, + onImportJarFile, + onExportAtlasFile, + onResetAtlasmap, +}) => { + const { state: isOpen, toggle: onToggle, toggleOff } = useToggle(false); + const runAndClose = (cb: (...args: any[]) => any) => { + return (...args: any[]) => { + cb(...args); + toggleOff(); + }; + }; + const dropdownItems = [ + showImportAtlasFileToolbarItem && ( + + ), + showImportJarFileToolbarItem && ( + + ), + (showImportAtlasFileToolbarItem || showImportJarFileToolbarItem) && ( + + ), + showExportAtlasFileToolbarItem && ( + + ), + showExportAtlasFileToolbarItem && ( + + ), + showResetToolbarItem && ( + + ), + ].filter((f) => f); + return ( + + + AtlasMap + + } + isOpen={isOpen} + dropdownItems={dropdownItems} + isPlain={true} + /> + + ); +}; + +export const ImportAtlasFileToolbarItem: FunctionComponent<{ + onFile: (file: File) => void; +}> = ({ onFile }) => { + const { files, onClick, HiddenFileInput } = useFilePicker({ + maxFileSize: 1, + }); + const previouslyUploadedFiles = useRef(null); + + useEffect(() => { + if (previouslyUploadedFiles.current !== files) { + previouslyUploadedFiles.current = files; + if (files?.length === 1) { + previouslyUploadedFiles.current = null; + onFile(files[0]); + } + } + }, [files, onFile]); + + return ( + } + onClick={onClick} + data-testid="import-mappings-button" + > + Import a catalog (.adm) + + + ); +}; + +export const ImportJarFileToolbarItem: FunctionComponent<{ + onFile: (file: File) => void; +}> = ({ onFile }) => { + const { files, onClick, HiddenFileInput } = useFilePicker({ + maxFileSize: 1, + }); + const previouslyUploadedFiles = useRef(null); + + useEffect(() => { + if (previouslyUploadedFiles.current !== files) { + previouslyUploadedFiles.current = files; + if (files?.length === 1) { + previouslyUploadedFiles.current = null; + onFile(files[0]); + } + } + }, [files, onFile]); + + return ( + } + onClick={onClick} + data-testid="import-archive-button" + > + Import a Java archive (.jar) + + + ); +}; + +export const ExportAtlasFileToolbarItem: FunctionComponent<{ + onClick: () => void; +}> = ({ onClick }) => ( + } + onClick={onClick} + data-testid="export-mappings-button" + > + Export the current mappings and support files into a catalog (.adm) + +); + +export const ResetToolbarItem: FunctionComponent<{ + onClick: () => void; +}> = ({ onClick }) => ( + } + onClick={onClick} + data-testid="reset-all-button" + > + Reset all mappings and clear all imported documents + +); + +export const ToggleMappingColumnToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show mapping column} + > + + + +); + +export const ToggleColumnMapperViewToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show column mapper} + > + + + +); + +export const ToggleMappingTableViewToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show mapping table} + > + + + +); + +export const ToggleNamespaceTableViewToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show namespace table} + > + + + +); + +export const ToggleFreeViewToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show free view} + > + + + +); + +export const ToggleMappingPreviewToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show/hide mapping preview} + > + + + +); + +export const ToggleTypesToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show/hide types} + > + + + +); + +export const ToggleMappedFieldsToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show/hide mapped fields} + > + + + +); + +export const ToggleUnmappedFieldsToolbarItem: FunctionComponent<{ + toggled: boolean; + disabled?: boolean; + onClick: () => void; +}> = ({ toggled, disabled = false, onClick }) => ( + + Show/hide unmapped fields} + > + + + +); + +export const AddMappingToolbarItem: FunctionComponent<{ + onClick: () => void; +}> = ({ onClick }) => ( + + Add a new mapping} + > + + + +); + +export const AboutToolbarItem: FunctionComponent<{ + onClick: () => void; +}> = ({ onClick }) => ( + + About AtlasMap} + > + + + +); diff --git a/packages/ui/src/impl/useAtlasmapDialogs.tsx b/packages/ui/src/impl/useAtlasmapDialogs.tsx new file mode 100644 index 000000000..3f7753cc1 --- /dev/null +++ b/packages/ui/src/impl/useAtlasmapDialogs.tsx @@ -0,0 +1,389 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { IConstant, IDocumentName, INamespace, IProperty } from '../UI'; +import { IParameter, getCsvParameterOptions } from '../core'; +import { useCallback, useMemo, useState } from 'react'; +import { + enableCustomClass, + getDocCSVParams, + getPropertyScopeOptions, + setDocCSVParams, +} from './utils'; +import { + useAboutDialog, + useCaptureDocumentIDToast, + useChangeDocumentNameDialog, + useConstantDialog, + useCustomClassDialog, + useDeleteConstantDialog, + useDeleteDocumentDialog, + useDeleteMappingDialog, + useDeletePropertyDialog, + useEditMappingEnumerationDialog, + useExportADMArchiveDialog, + useImportADMArchiveDialog, + useImportDocumentDialog, + useNamespaceDialog, + useParametersDialog, + usePropertyDialog, + useRemoveMappedFieldDialog, + useResetAtlasmapDialog, + useSpecifyInstanceSchemaDialog, + useToggleExpressionModeDialog, +} from './dialogs'; + +import { IAtlasmapDocument } from '../Views'; +import { createPortal } from 'react-dom'; +import { useAtlasmap } from './AtlasmapProvider'; + +export interface IUseAtlasmapDialogsProps { + modalContainer: HTMLElement; +} +export function useAtlasmapDialogs({ + modalContainer, +}: IUseAtlasmapDialogsProps) { + const { + configModel, + selectedMapping, + createConstant, + editConstant, + createProperty, + editProperty, + createNamespace, + editNamespace, + deleteNamespace, + changeDocumentName, + } = useAtlasmap(); + + //#region constant dialogs + const [createConstantDialog, openCreateConstantDialog] = + useConstantDialog('Create Constant'); + const onCreateConstant = useCallback( + (constants: IAtlasmapDocument | null, addToActiveMapping?: boolean) => { + openCreateConstantDialog(({ name, value, valueType }) => { + createConstant(name, value, valueType, addToActiveMapping); + }, constants); + }, + [createConstant, openCreateConstantDialog], + ); + const [editConstantDialog, openEditConstantDialog] = + useConstantDialog('Edit Constant'); + const onEditConstant = useCallback( + (constant: IConstant, constants: IAtlasmapDocument | null) => { + openEditConstantDialog( + ({ name, value, valueType }, origName) => { + editConstant(name, value, valueType, origName); + }, + constants, + constant, + ); + }, + [editConstant, openEditConstantDialog], + ); + const [deleteConstantDialog, onDeleteConstant] = useDeleteConstantDialog(); + //#endregion + + //#region property dialogs + const [scopeOptions, setScopeOptions] = useState( + getPropertyScopeOptions(true), + ); + const [createPropertyDialog, openCreatePropertyDialog] = usePropertyDialog( + 'Create Property', + scopeOptions, + ); + const onCreateProperty = useCallback( + ( + isSource: boolean, + properties: IAtlasmapDocument | null, + addToActiveMapping?: boolean, + ) => { + setScopeOptions(getPropertyScopeOptions(isSource)); + openCreatePropertyDialog(({ name, valueType, scope }) => { + createProperty(name, valueType, scope, isSource, addToActiveMapping); + }, properties); + }, + [createProperty, openCreatePropertyDialog], + ); + const [editPropertyDialog, openEditPropertyDialog] = usePropertyDialog( + 'Edit Property', + scopeOptions, + ); + const onEditProperty = useCallback( + ( + property: IProperty, + isSource: boolean, + properties: IAtlasmapDocument | null, + ) => { + setScopeOptions(getPropertyScopeOptions(isSource)); + openEditPropertyDialog( + ({ name, valueType, scope }) => { + editProperty( + property.name, + valueType, + property.scope, + isSource, + name, + scope, + ); + }, + properties, + property, + ); + }, + [editProperty, openEditPropertyDialog], + ); + const [deletePropertyDialog, onDeleteProperty] = useDeletePropertyDialog(); + //#endregion + + //#region atlasmap catalog + const [importADMArchiveDialog, onImportADMArchive] = + useImportADMArchiveDialog(); + const [exportADMArchiveDialog, onExportADMArchive] = + useExportADMArchiveDialog(); + const [resetDialog, onResetAtlasmap] = useResetAtlasmapDialog(); + const [aboutDialog, onAbout] = useAboutDialog(); + const [toggleExpressionModeDialog, onToggleExpressionMode] = + useToggleExpressionModeDialog(); + //#endregion + + //#region document dialogs + const [importDocumentDialog, onImportDocument] = useImportDocumentDialog(); + const [deleteDocumentDialog, onDeleteDocument] = useDeleteDocumentDialog(); + const [captureDocumentNameToast, onCaptureDocumentID] = + useCaptureDocumentIDToast(); + + const [changeDocumentNameDialog, openChangeDocumentNameDialog] = + useChangeDocumentNameDialog(); + const onChangeDocumentName = useCallback( + (docNameInfo: IDocumentName) => { + openChangeDocumentNameDialog(({ id, name, isSource }) => { + changeDocumentName(id, name, isSource); + }, docNameInfo); + }, + [changeDocumentName, openChangeDocumentNameDialog], + ); + //#endregion + + //#region namespace table dialogs + const [createNamespaceDialog, openCreateNamespaceDialog] = + useNamespaceDialog('Create namespace'); + const onCreateNamespace = useCallback( + (docName: string) => { + openCreateNamespaceDialog( + ({ alias, uri, locationUri, targetNamespace }) => + createNamespace(docName, alias, uri, locationUri, targetNamespace), + ); + }, + [createNamespace, openCreateNamespaceDialog], + ); + const [editNamespaceDialog, openEditNamespaceDialog] = + useNamespaceDialog('Edit namespace'); + const onEditNamespace = useCallback( + (docName: string, namespace: INamespace) => { + openEditNamespaceDialog( + ({ alias, uri, locationUri, targetNamespace }) => + editNamespace( + docName, + namespace.alias, + alias, + uri, + locationUri, + targetNamespace, + ), + namespace, + ); + }, + [editNamespace, openEditNamespaceDialog], + ); + //#endregion + + //#region mapping support dialogs + const [removeMappedFieldDialog, onRemoveMappedField] = + useRemoveMappedFieldDialog(); + const [deleteMappingDialog, onDeleteMapping] = useDeleteMappingDialog(); + const onDeleteSelectedMapping = useCallback(() => { + if (selectedMapping) { + onDeleteMapping(selectedMapping); + } + }, [onDeleteMapping, selectedMapping]); + const [editMappingEnumerationDialog, onEditMappingEnumeration] = + useEditMappingEnumerationDialog(); + //#endregion + + //#region custom class dialogs + const [createEnableCustomClassDialog, openCreateEnableCustomClassDialog] = + useCustomClassDialog('Load Java Document From Custom Class'); + const onEnableCustomClass = useCallback( + (isSource: boolean): void => { + openCreateEnableCustomClassDialog(({ customClassName, collectionType }) => + enableCustomClass( + configModel, + customClassName, + collectionType, + isSource, + ), + ); + }, + [configModel, openCreateEnableCustomClassDialog], + ); + //#endregion + + //#region CSV processing dialogs + const [editCSVParamsDialog, openEditCSVParamsDialog] = useParametersDialog( + 'Edit CSV Processing Parameters', + ); + function initialCSVParams(docId: string, isSource: boolean): IParameter[] { + // User-defined CSV parameters. + const predefinedParameters: { [key: string]: string } = getDocCSVParams( + docId, + isSource, + ); + + // Complete list of available CSV parameters. + const initialCSVParameters = getCsvParameterOptions(); + const predefinedParamNames = Object.keys(predefinedParameters).map( + (key) => key, + ); + const predefinedParamValues = Object.values(predefinedParameters).map( + (key) => key, + ); + + // Annotate the initial CSV parameters with the predefined values. + for (const { index } of initialCSVParameters.map((value, index) => ({ + index, + value, + }))) { + for (const { pvalue, pindex } of predefinedParamNames.map( + (pvalue, pindex) => ({ + pindex, + pvalue, + }), + )) { + if (initialCSVParameters[index].name === pvalue) { + initialCSVParameters[index].value = predefinedParamValues[pindex]; + initialCSVParameters[index].enabled = true; + break; + } + } + } + return initialCSVParameters; + } + const onEditCSVParams = useCallback( + (docId: string, isSource: boolean) => { + openEditCSVParamsDialog((parameters) => { + const inspectionParameters: { [key: string]: string } = {}; + for (let parameter of parameters) { + inspectionParameters[parameter.name] = parameter.value; + } + setDocCSVParams(docId, isSource, inspectionParameters); + }, initialCSVParams(docId, isSource)); + }, + [openEditCSVParamsDialog], + ); + //#endregion + + const [specifyInstanceSchemaDialog, onSpecifyInstanceSchema] = + useSpecifyInstanceSchemaDialog(false); + + const portal = useMemo( + () => + createPortal( + <> + {importADMArchiveDialog} + {exportADMArchiveDialog} + {importDocumentDialog} + {deleteDocumentDialog} + {specifyInstanceSchemaDialog} + {captureDocumentNameToast} + {changeDocumentNameDialog} + {createConstantDialog} + {deleteConstantDialog} + {editConstantDialog} + {createPropertyDialog} + {deletePropertyDialog} + {editPropertyDialog} + {resetDialog} + {aboutDialog} + {removeMappedFieldDialog} + {deleteMappingDialog} + {createEnableCustomClassDialog} + {createNamespaceDialog} + {editNamespaceDialog} + {toggleExpressionModeDialog} + {editMappingEnumerationDialog} + {editCSVParamsDialog} + , + modalContainer, + ), + [ + createConstantDialog, + createEnableCustomClassDialog, + createNamespaceDialog, + createPropertyDialog, + deleteConstantDialog, + deleteDocumentDialog, + captureDocumentNameToast, + changeDocumentNameDialog, + deleteMappingDialog, + deletePropertyDialog, + editConstantDialog, + editNamespaceDialog, + editPropertyDialog, + exportADMArchiveDialog, + importADMArchiveDialog, + importDocumentDialog, + specifyInstanceSchemaDialog, + modalContainer, + removeMappedFieldDialog, + resetDialog, + aboutDialog, + toggleExpressionModeDialog, + editMappingEnumerationDialog, + editCSVParamsDialog, + ], + ); + + return { + handlers: { + onImportADMArchive: onImportADMArchive, + onExportADMArchive: onExportADMArchive, + onCreateConstant, + onDeleteConstant, + onEditConstant, + onCreateProperty, + onDeleteProperty, + onEditProperty, + onResetAtlasmap, + onAbout, + onImportDocument, + onDeleteDocument, + onSpecifyInstanceSchema, + onCaptureDocumentID, + onChangeDocumentName, + onRemoveMappedField, + onDeleteMapping, + onDeleteSelectedMapping, + onEnableCustomClass, + onCreateNamespace, + onEditNamespace, + deleteNamespace, + onToggleExpressionMode, + onEditMappingEnumeration, + onEditCSVParams, + }, + dialogs: portal, + }; +} diff --git a/packages/ui/src/impl/useContextToolbar.tsx b/packages/ui/src/impl/useContextToolbar.tsx new file mode 100644 index 000000000..2cce182de --- /dev/null +++ b/packages/ui/src/impl/useContextToolbar.tsx @@ -0,0 +1,236 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + AboutToolbarItem, + AddMappingToolbarItem, + AtlasmapToolbarItem, + ToggleColumnMapperViewToolbarItem, + ToggleMappedFieldsToolbarItem, + ToggleMappingPreviewToolbarItem, + ToggleMappingTableViewToolbarItem, + ToggleNamespaceTableViewToolbarItem, + ToggleTypesToolbarItem, + ToggleUnmappedFieldsToolbarItem, +} from './toolbarItems'; +import React, { useMemo, useState } from 'react'; + +import { ContextToolbar } from '../Layout'; +import { ToolbarGroup } from '@patternfly/react-core'; +import { useAtlasmap } from './AtlasmapProvider'; +import { useToggle } from './utils'; + +export type Views = + | 'ColumnMapper' + | 'MappingTable' + | 'NamespaceTable' + | 'FreeView'; + +export interface IUseContextToolbarHandlers { + onImportADMArchiveFile: (file: File) => void; + onImportJarFile: (file: File) => void; + onExportAtlasFile: () => void; + onResetAtlasmap: () => void; + onAbout: () => void; +} + +export interface IUseContextToolbarData { + showImportAtlasFileToolbarItem?: boolean; + showImportJarFileToolbarItem?: boolean; + showExportAtlasFileToolbarItem?: boolean; + showResetToolbarItem?: boolean; + + showColumnMapperViewToolbarItem?: boolean; + showMappingTableViewToolbarItem?: boolean; + showNamespaceTableViewToolbarItem?: boolean; + + showToggleMappingPreviewToolbarItem?: boolean; + showToggleTypesToolbarItem?: boolean; + showToggleMappedFieldsToolbarItem?: boolean; + showToggleUnmappedFieldsToolbarItem?: boolean; + showAddNewMappingToolbarItem?: boolean; +} + +export function useContextToolbar({ + showImportAtlasFileToolbarItem = true, + showImportJarFileToolbarItem = true, + showExportAtlasFileToolbarItem = true, + showResetToolbarItem = true, + + showColumnMapperViewToolbarItem = true, + showMappingTableViewToolbarItem = true, + showNamespaceTableViewToolbarItem = true, + + showToggleMappingPreviewToolbarItem = true, + showToggleTypesToolbarItem = true, + showToggleMappedFieldsToolbarItem = true, + showToggleUnmappedFieldsToolbarItem = true, + showAddNewMappingToolbarItem = true, + + onImportADMArchiveFile, + onImportJarFile, + onExportAtlasFile, + onResetAtlasmap, + onAbout, +}: IUseContextToolbarData & IUseContextToolbarHandlers) { + const { + toggleMappingPreview: amToggleMappingPreview, + toggleShowMappedFields: amToggleShowMappedFields, + toggleShowUnmappedFields: amToggleShowUnmappedFields, + newMapping, + } = useAtlasmap(); + + const [activeView, setActiveView] = useState('ColumnMapper'); + const { state: showMappingPreview, toggle: toggleShowMappingPreview } = + useToggle(false, amToggleMappingPreview); + const { state: showTypes, toggle: toggleShowTypes } = useToggle(true); + const { state: showMappedFields, toggle: toggleShowMappedFields } = useToggle( + true, + amToggleShowMappedFields, + ); + const { state: showUnmappedFields, toggle: toggleShowUnmappedFields } = + useToggle(true, amToggleShowUnmappedFields); + + const contextToolbar = useMemo( + () => ( + + {(showImportAtlasFileToolbarItem || + showImportJarFileToolbarItem || + showExportAtlasFileToolbarItem || + showResetToolbarItem) && ( + + + + )} + {(showColumnMapperViewToolbarItem || + showMappingTableViewToolbarItem || + showNamespaceTableViewToolbarItem) && ( + + {showColumnMapperViewToolbarItem && ( + setActiveView('ColumnMapper')} + /> + )} + {showMappingTableViewToolbarItem && ( + setActiveView('MappingTable')} + /> + )} + {showNamespaceTableViewToolbarItem && ( + setActiveView('NamespaceTable')} + /> + )} + + )} + + {showToggleMappingPreviewToolbarItem && + (activeView === 'ColumnMapper' || + activeView === 'MappingTable') && ( + + )} + {showToggleTypesToolbarItem && + (activeView === 'ColumnMapper' || + activeView === 'MappingTable') && ( + + )} + {showToggleMappedFieldsToolbarItem && + activeView === 'ColumnMapper' && ( + + )} + {showToggleUnmappedFieldsToolbarItem && + activeView === 'ColumnMapper' && ( + + )} + {showAddNewMappingToolbarItem && + (activeView === 'ColumnMapper' || + activeView === 'MappingTable') && ( + + )} + {showAddNewMappingToolbarItem && + (activeView === 'ColumnMapper' || + activeView === 'MappingTable') && ( + + )} + + + ), + [ + showImportAtlasFileToolbarItem, + showImportJarFileToolbarItem, + showExportAtlasFileToolbarItem, + showResetToolbarItem, + onImportADMArchiveFile, + onImportJarFile, + onExportAtlasFile, + onResetAtlasmap, + onAbout, + showColumnMapperViewToolbarItem, + showMappingTableViewToolbarItem, + showNamespaceTableViewToolbarItem, + activeView, + showToggleMappingPreviewToolbarItem, + showMappingPreview, + toggleShowMappingPreview, + showToggleTypesToolbarItem, + showTypes, + toggleShowTypes, + showToggleMappedFieldsToolbarItem, + showMappedFields, + toggleShowMappedFields, + showToggleUnmappedFieldsToolbarItem, + showUnmappedFields, + toggleShowUnmappedFields, + showAddNewMappingToolbarItem, + newMapping, + ], + ); + + return { + activeView, + showMappingPreview, + showTypes, + showMappedFields, + showUnmappedFields, + contextToolbar, + }; +} diff --git a/packages/ui/src/impl/useSidebar.tsx b/packages/ui/src/impl/useSidebar.tsx new file mode 100644 index 000000000..6a20d0138 --- /dev/null +++ b/packages/ui/src/impl/useSidebar.tsx @@ -0,0 +1,233 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + IAtlasmapField, + IMappingDetailsViewProps, + MappingDetailsView, +} from '../Views'; +import { useCallback } from 'react'; + +import { CommonUtil } from '../core'; +import { useAtlasmap } from './AtlasmapProvider'; + +export interface IUseSidebarProps { + onCreateConstant: ( + constants: any | null, + addToActiveMapping?: boolean, + ) => void; + onCreateProperty: ( + isSource: boolean, + props: any | null, + addToActiveMapping?: boolean, + ) => void; + onRemoveMapping: () => void; + onEditEnum: (cb: any) => void; + isEnumMapping: () => boolean; +} + +export function useSidebar({ + onCreateConstant, + onCreateProperty, + onRemoveMapping, + onEditEnum, + isEnumMapping, +}: IUseSidebarProps) { + const { + selectedMapping, + deselectMapping, + removeMappedFieldFromCurrentMapping, + fromMappedFieldToIMappingField, + flatSources, + flatTargets, + constants, + sourceProperties, + targetProperties, + canAddToSelectedMapping, + isFieldAddableToSelection, + addToCurrentMapping, + notifications, + markNotificationRead, + mappingExpressionEnabled, + + //mapping details + getMultiplicityActions, + getMultiplicityActionDelimiters, + handleIndexChange, + handleNewTransformation, + handleRemoveTransformation, + handleTransformationChange, + handleTransformationArgumentChange, + handleMultiplicityChange, + handleMultiplicityArgumentChange, + } = useAtlasmap(); + + return useCallback(() => { + if (selectedMapping) { + const m = selectedMapping.mapping; + const sources = m + .getMappedFields(true) + .map(fromMappedFieldToIMappingField); + const targets = m + .getMappedFields(false) + .map(fromMappedFieldToIMappingField); + const showSourcesIndex = + sources.length > 1 && + m.transition.isManyToOneMode() && + !m.transition.enableExpression; + const showTargetsIndex = + targets.length > 1 && + m.transition.isOneToManyMode() && + !m.transition.enableExpression; + + const multiplicityFieldAction = m.transition.transitionFieldAction; + + let multiplicity: IMappingDetailsViewProps['multiplicity'] = undefined; + if (multiplicityFieldAction) { + const transformations = getMultiplicityActions(m); + const transformationsOptions = transformations.map((a) => ({ + label: CommonUtil.toDisplayable(a.name), + name: a.name, + value: a.name, + })); + const delimiters = getMultiplicityActionDelimiters(); + const delimitersOptions = delimiters.map((a) => ({ + name: a.prettyName!, + value: a.actualDelimiter, + })); + + multiplicity = { + name: multiplicityFieldAction.name, + transformationsOptions, + transformationsArguments: multiplicityFieldAction.argumentValues.map( + (a) => ({ + label: CommonUtil.toDisplayable(a.name), + name: a.name, + type: multiplicityFieldAction.definition?.arguments.find( + (arg) => arg.name === a.name, + )?.type, + value: a.value, + options: a.name === 'delimiter' ? delimitersOptions : undefined, + }), + ), + onChange: (name) => + handleMultiplicityChange(multiplicityFieldAction, name), + onArgumentChange: (argumentName, arguemntValue) => + handleMultiplicityArgumentChange( + multiplicityFieldAction, + argumentName, + arguemntValue, + ), + }; + } + + const handleRemoveMappedField = (isSource: boolean, index: number) => { + const amField = selectedMapping.mapping.getMappedFieldForIndex( + '' + (index + 1), + isSource, + ); + if (amField) { + removeMappedFieldFromCurrentMapping(amField); + } + }; + + /** + * @todo Field search has to be consolidated when server side field search is implemented, + * see {@link MappingExpressionService.executeFieldSearch()} and + * {@link DocumentManagementService.filterDocumentFields()} + * https://github.com/atlasmap/atlasmap/issues/603 + */ + const addableSources = [ + constants?.fields, + sourceProperties?.fields, + flatSources, + ] + .flatMap((fields) => (fields ? (fields as IAtlasmapField[]) : [])) + .filter((f) => isFieldAddableToSelection('source', f)); + + const addableTargets = [targetProperties?.fields, flatTargets] + .flatMap((fields) => (fields ? (fields as IAtlasmapField[]) : [])) + .filter((f) => isFieldAddableToSelection('target', f)); + + return ( + n.mappingId === selectedMapping.id && !n.isRead, + )} + sources={sources} + targets={targets} + addableSources={addableSources} + addableTargets={addableTargets} + onClose={deselectMapping} + onRemoveMapping={onRemoveMapping} + onRemoveMappedField={handleRemoveMappedField} + showSourcesIndex={showSourcesIndex} + showTargetsIndex={showTargetsIndex} + mappingExpressionEnabled={mappingExpressionEnabled} + multiplicity={multiplicity} + onIndexChange={handleIndexChange} + onNewTransformation={handleNewTransformation} + onRemoveTransformation={handleRemoveTransformation} + onTransformationChange={handleTransformationChange} + onTransformationArgumentChange={handleTransformationArgumentChange} + onAddFieldToMapping={(_isSource, f) => addToCurrentMapping(f.amField)} + onNotificationRead={markNotificationRead} + onEditEnum={onEditEnum} + isEnumMapping={isEnumMapping} + onCreateConstant={onCreateConstant} + onCreateProperty={(isSource) => { + if (isSource) { + onCreateProperty(isSource, sourceProperties, true); + } else { + onCreateProperty(isSource, targetProperties, true); + } + }} + canAddToSelectedMapping={canAddToSelectedMapping} + /> + ); + } + return <>TODO: error; + }, [ + selectedMapping, + fromMappedFieldToIMappingField, + constants, + sourceProperties, + targetProperties, + flatSources, + flatTargets, + notifications, + deselectMapping, + onRemoveMapping, + onEditEnum, + isEnumMapping, + handleIndexChange, + handleNewTransformation, + handleRemoveTransformation, + handleTransformationChange, + handleTransformationArgumentChange, + markNotificationRead, + getMultiplicityActions, + getMultiplicityActionDelimiters, + handleMultiplicityChange, + handleMultiplicityArgumentChange, + removeMappedFieldFromCurrentMapping, + isFieldAddableToSelection, + addToCurrentMapping, + mappingExpressionEnabled, + onCreateConstant, + onCreateProperty, + canAddToSelectedMapping, + ]); +} diff --git a/packages/ui/src/impl/utils/document.ts b/packages/ui/src/impl/utils/document.ts new file mode 100644 index 000000000..1fd68b661 --- /dev/null +++ b/packages/ui/src/impl/utils/document.ts @@ -0,0 +1,319 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CollectionType, + CommonUtil, + ConfigModel, + DocumentDefinition, + NamespaceModel, +} from '../../core'; + +/** + * Modify the document name of the document specified by the document ID. + * + * @param docId + * @param newDocName + * @param isSource + */ +export async function changeDocumentName( + docId: string, + newDocName: string, + isSource: boolean, +) { + const cfg = ConfigModel.getConfig(); + const docDef = getDocDef(docId, cfg, isSource); + docDef.name = newDocName; + await cfg.mappingService.notifyMappingUpdated(); + await cfg.fileService.updateDigestFile(); +} + +/** + * Create a new namespace for the supplied XML document. + * + * @param docName + * @param alias + * @param uri + * @param locationUri + */ +export function createNamespace( + docName: string, + alias: string, + uri: string, + locationUri: string, + isTarget: boolean, +) { + const cfg = ConfigModel.getConfig(); + const docDef = getDocDefByName(docName, cfg, true); + const namespace: NamespaceModel = { + alias: alias, + uri: uri, + locationUri: locationUri, + createdByUser: true, + isTarget: isTarget, + getPrettyLabel: () => alias + ' [' + uri + ']', + copy: () => Object.assign({}, namespace), + copyFrom: (n: NamespaceModel) => Object.assign(namespace, n), + }; + docDef.namespaces.push(namespace); + cfg.mappingService.notifyMappingUpdated(); +} + +export function editNamespace( + docName: string, + initAlias: string, + alias: string, + uri: string, + locationUri: string, + isTarget: boolean, +) { + const cfg = ConfigModel.getConfig(); + const docDef = getDocDefByName(docName, cfg, true); + const namespace = docDef.getNamespaceForAlias(initAlias); + namespace.alias = alias; + namespace.uri = uri; + namespace.locationUri = locationUri; + namespace.isTarget = isTarget; + cfg.mappingService.notifyMappingUpdated(); +} + +export function deleteNamespace(docName: string, alias: string) { + const cfg = ConfigModel.getConfig(); + const docDef = getDocDefByName(docName, cfg, true); + docDef.namespaces = docDef.namespaces.filter( + (namespace: { alias: string }) => namespace.alias !== alias, + ); + cfg.mappingService.notifyMappingUpdated(); +} + +/** + * Remove a document from the UI and backend service. + * + * @param docDef + * @param cfg + */ +export async function removeDocumentRef( + docDef: DocumentDefinition, + cfg: ConfigModel, +): Promise { + return new Promise(async (resolve) => { + cfg.mappingService.removeDocumentReferenceFromAllMappings(docDef.id); + if (docDef.isSource) { + CommonUtil.removeItemFromArray(docDef, cfg.sourceDocs); + } else { + CommonUtil.removeItemFromArray(docDef, cfg.targetDocs); + } + await cfg.mappingService.notifyMappingUpdated(); + await cfg.fileService.updateDigestFile(); + resolve(true); + }); +} + +/** + * Return the document definition associated with the specified document ID. + * + * @param docId - document ID + * @param cfg + * @param isSource + */ +export function getDocDef( + docId: string, + cfg: ConfigModel, + isSource: boolean, +): DocumentDefinition { + for (const docDef of cfg.getDocs(isSource)) { + if (docDef.id.match(docId)) { + return docDef; + } + } + return null as unknown as DocumentDefinition; +} + +/** + * Return the document definition associated with the specified document name. + * + * @param docName - document name + * @param cfg + * @param isSource + */ +export function getDocDefByName( + docName: string, + cfg: ConfigModel, + isSource: boolean, +): DocumentDefinition { + for (const docDef of cfg.getDocs(isSource)) { + const candidateDocName = + docDef.getName(false) + '.' + docDef.type.toLowerCase(); + if (candidateDocName.match(docName)) { + return docDef; + } + } + return null as unknown as DocumentDefinition; +} + +/** + * Determine the user-defined class names associated with previously + * imported JARs. + */ +export async function getCustomClassNameOptions(): Promise { + return new Promise(async (resolve, reject) => { + const cfg = ConfigModel.getConfig(); + cfg.documentService + .getLibraryClassNames() + .then((classNames: string[]) => { + resolve(classNames); + }) + .catch(() => { + reject(); + }); + }); +} + +/** + * Import a CSV, instance or schema document into either the Source panel or Target + * panel (CSV, JSON, XML, XSD). + * + * @param selectedFile + * @param cfg + * @param isSource + * @param isSchema - user-specified instance/ schema (true === schema) + * @param inspectionParameters - CSV parameters + */ +export async function importInstanceSchema( + selectedFile: File, + cfg: ConfigModel, + isSource: boolean, + isSchema: boolean, + inspectionParameters?: { [key: string]: string }, +) { + return new Promise(async (resolve) => { + cfg.initCfg.initialized = false; + cfg.initializationService.updateLoadingStatus( + 'Importing Document ' + selectedFile.name, + ); + cfg.documentService + .importNonJavaDocument( + selectedFile, + isSource, + isSchema, + inspectionParameters, + ) + .then(() => { + cfg.fileService.updateDigestFile().finally(() => { + cfg.initializationService.updateStatus(); + resolve(true); + }); + }); + }); +} + +/** + * Enable the specified class name and collection type in the targetted + * panel for use in Java document loading. The user must have previously + * imported a JAR file containing the class. + * + * @param selectedClass + * @param selectedCollection + * @param isSource + */ +export function enableCustomClass( + cfg: ConfigModel, + selectedClass: string, + selectedCollection: string, + isSource: boolean, +) { + return new Promise((resolve) => { + cfg.initCfg.initialized = false; + cfg.initializationService.updateLoadingStatus( + 'Importing Document ' + selectedClass, + ); + cfg.documentService + .importJavaDocument( + selectedClass, + isSource, + selectedCollection as CollectionType, + ) + .then(() => { + cfg.fileService.updateDigestFile().finally(() => { + cfg.initializationService.updateStatus(); + resolve(true); + }); + }); + }); +} + +export function getPropertyScopeOptions(isSource: boolean): { + value: string; + label: string; +}[] { + const cfg = ConfigModel.getConfig(); + let scopeOptions: { + value: string; + label: string; + }[] = [ + { + label: 'Current Message Header', + value: 'current', + }, + { + label: 'Camel Exchange Property', + value: 'camelExchangeProperty', + }, + ]; + const propertyDocOptions: DocumentDefinition[] = isSource + ? cfg.sourceDocs + : cfg.targetDocs; + for (let propertyDocOption of propertyDocOptions) { + scopeOptions.push({ + value: propertyDocOption.id, + label: propertyDocOption.name, + }); + } + return scopeOptions; +} + +/** + * Return CSV document inspection parameters. + * + * @param docId + * @param isSource + * @returns + */ +export function getDocCSVParams( + docId: string, + isSource: boolean, +): { [key: string]: string } { + const doc = getDocDef(docId, ConfigModel.getConfig(), isSource); + return doc?.inspectionParameters; +} + +/** + * Set CSV document inspection parameters. + * + * @param docId + * @param isSource + * @param parameters + */ +export async function setDocCSVParams( + docId: string, + isSource: boolean, + parameters: { [key: string]: string }, +) { + const cfg = ConfigModel.getConfig(); + const docDef = getDocDef(docId, cfg, isSource); + docDef.inspectionParameters = parameters; + await cfg.mappingService.notifyMappingUpdated(); + await cfg.fileService.updateDigestFile(); +} diff --git a/packages/ui/src/impl/utils/expression.ts b/packages/ui/src/impl/utils/expression.ts new file mode 100644 index 000000000..b97605100 --- /dev/null +++ b/packages/ui/src/impl/utils/expression.ts @@ -0,0 +1,129 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfigModel, + ExpressionModel, + MappedField, + MappingModel, +} from '../../core'; + +export const trailerId = 'expression-trailer'; + +function activeMapping(): boolean { + const cfg = ConfigModel.getConfig(); + return !!cfg?.mappings?.activeMapping; +} + +export abstract class ExpressionNode { + protected static sequence = 0; + protected uuid: string; + constructor(prefix: string) { + this.uuid = prefix + ExpressionNode.sequence++; + } + getUuid() { + return this.uuid; + } + abstract toText(): string; + abstract toHTML(): string; +} + +export class TextNode extends ExpressionNode { + static readonly PREFIX = 'expression-text-'; + constructor(public str: string) { + super(TextNode.PREFIX); + } + toText(): string { + return this.str; + } + toHTML(): string { + return `${this.str.replace(/ /g, ' ')}`; + } +} + +export class FieldNode extends ExpressionNode { + protected field: MappedField | null | undefined; + static readonly PREFIX = 'expression-field-'; + + constructor( + private mapping: MappingModel, + public mfield?: MappedField, + index?: number, + ) { + super(FieldNode.PREFIX); + if (!mfield && index) { + this.field = mapping.getMappedFieldForIndex((index + 1).toString(), true); + } + } + + toText(): string { + if (!this.mapping || !this.field) { + return ''; + } + return '${' + (this.mapping.getIndexForMappedField(this.field)! - 1) + '}'; + } + + toHTML(): string { + if (!this.field) { + return ''; + } + if (this.field && this.field.field) { + return `${this.field.field.name}`; + } else { + return `N/A`; + } + } +} + +export function getExpression(): ExpressionModel | null | undefined { + const cfg = ConfigModel.getConfig(); + if (!activeMapping() || !cfg.mappings?.activeMapping) { + return null; + } + const mapping = cfg.mappings!.activeMapping; + let expression = mapping!.transition.expression; + if (!expression) { + mapping!.transition.expression = new ExpressionModel(mapping!, cfg); + expression = mapping!.transition.expression; + expression.generateInitialExpression(); + expression.updateFieldReference(mapping!); + } else { + if (mapping!.transition.expression) { + mapping!.transition.expression.setConfigModel(cfg); + } + } + return mapping!.transition.expression; +} + +export function getMappingExpression(): string { + const cfg = ConfigModel.getConfig(); + if (!activeMapping()) { + return ''; + } + if (!cfg.mappings?.activeMapping?.transition?.expression) { + if (!getExpression()) { + return ''; + } + } + return cfg.mappings!.activeMapping!.transition.expression && + cfg.mappings!.activeMapping!.transition.enableExpression + ? cfg.mappings!.activeMapping!.transition.expression.toHTML() + : ''; +} diff --git a/packages/ui/src/impl/utils/field.ts b/packages/ui/src/impl/utils/field.ts new file mode 100644 index 000000000..675797cb6 --- /dev/null +++ b/packages/ui/src/impl/utils/field.ts @@ -0,0 +1,357 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + ConfigModel, + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, + Field, + MappedField, + MappingModel, +} from '../../core'; + +import { LookupTableData } from '../../UI'; +import { initializationService } from './ui'; + +export type EnumValue = { + name: string; + ordinal: number; +}; + +export function createConstant( + constName: string, + constValue: string, + constType: string, + addToActiveMapping?: boolean, +): void { + const cfg = ConfigModel.getConfig(); + cfg.documentService.createConstant( + constName, + constValue, + constType, + addToActiveMapping, + ); +} + +export function deleteConstant(constName: string): void { + const cfg = ConfigModel.getConfig(); + cfg.documentService.deleteConstant(constName); +} + +export function editConstant( + constName: string, + constValue: string, + constType: string, + origName?: string, +): void { + const cfg = ConfigModel.getConfig(); + cfg.documentService.editConstant(constName, constValue, constType, origName); +} + +export function getConstantType(constName: string): string { + const cfg = ConfigModel.getConfig(); + return cfg.documentService.getConstantType(constName); +} + +export function getConstantTypeIndex(constName: string): number { + const cfg = ConfigModel.getConfig(); + return cfg.documentService.getConstantTypeIndex(constName); +} + +export function createProperty( + propName: string, + propType: string, + propScope: string, + isSource: boolean, + addToActiveMapping?: boolean, +): void { + const cfg = ConfigModel.getConfig(); + cfg.documentService.createProperty( + propName, + propType, + propScope, + isSource, + addToActiveMapping, + ); +} + +export function deleteProperty( + propName: string, + propScope: string, + isSource: boolean, +): void { + const cfg = ConfigModel.getConfig(); + cfg.documentService.deleteProperty(propName, propScope, isSource); +} + +export function editProperty( + propName: string, + propType: string, + propScope: string, + isSource: boolean, + newName?: string, + newScope?: string, +): void { + const cfg = ConfigModel.getConfig(); + cfg.documentService.editProperty( + propName, + propType, + propScope, + isSource, + newName, + newScope, + ); +} + +export function getPropertyType( + propName: string, + propScope: string, + isSource: boolean, +): string { + const cfg = ConfigModel.getConfig(); + return cfg.documentService.getPropertyType(propName, propScope, isSource); +} + +export function getPropertyTypeIndex( + propName: string, + propScope: string, + isSource: boolean, +): number { + const cfg = ConfigModel.getConfig(); + return cfg.documentService.getPropertyTypeIndex( + propName, + propScope, + isSource, + ); +} + +/** + * Create a new mapping or modify the existing active mapping using the specified source and target IDs. + * + * @param source + * @param target + */ +export function createMapping(source: Field | undefined, target?: Field): void { + const cfg = ConfigModel.getConfig(); + const ms = initializationService.cfg.mappingService; + + if (target) { + if ( + !cfg.mappings?.activeMapping && + (source?.partOfMapping || target.partOfMapping) + ) { + cfg.errorService.addError( + new ErrorInfo({ + message: `Unable to map '${source!.name}/${ + target.name + }'. Please select a mapping before adding to it.`, + level: ErrorLevel.INFO, + scope: ErrorScope.MAPPING, + type: ErrorType.USER, + }), + ); + return; + } + if ( + source && + cfg.mappings?.activeMapping && + (source.partOfMapping || target.partOfMapping) + ) { + let exclusionReason = null; + + if (!source.partOfMapping) { + exclusionReason = ms.getFieldSelectionExclusionReason( + cfg.mappings?.activeMapping!, + source, + ); + } else { + exclusionReason = ms.getFieldSelectionExclusionReason( + cfg.mappings?.activeMapping!, + target, + ); + } + + if (exclusionReason !== null) { + cfg.errorService.addError( + new ErrorInfo({ + message: `The field '${target.name}' cannot be selected, ${exclusionReason}.`, + level: ErrorLevel.ERROR, + mapping: cfg.mappings?.activeMapping!, + scope: ErrorScope.MAPPING, + type: ErrorType.USER, + }), + ); + return; + } + if ( + target.partOfMapping && + cfg.mappings.activeMapping.targetFields[0]!.field!.path === target!.path + ) { + addToCurrentMapping(source); + return; + } + if ( + source.partOfMapping && + cfg.mappings.activeMapping.sourceFields[0]!.field!.path === source!.path + ) { + addToCurrentMapping(target); + return; + } + } + } + if (source) { + cfg.mappingService.addNewMapping(source, false); + } else { + cfg.mappingService.newMapping(); + } + if (target) { + addToCurrentMapping(target); + } +} + +/** + * Create a new mapping. + */ +export function newMapping(): void { + const cfg = ConfigModel.getConfig(); + cfg.mappingService.newMapping(); +} + +/** + * Removes a mapping. + */ +export function removeMapping(mappingModel: MappingModel): void { + ConfigModel.getConfig().mappingService.removeMapping(mappingModel); +} + +/** + * Add the specified field to the current mapping. + * + * @param field + */ +export function addToCurrentMapping(field: Field): void { + const cfg = ConfigModel.getConfig(); + cfg.mappingService.addFieldToActiveMapping(field); +} + +/** + * Remove the specified field from the current mapping. + * + * @param field + */ +export function removeFromCurrentMapping(field: Field): void { + const cfg = ConfigModel.getConfig(); + const mapping = cfg.mappings?.activeMapping; + if (mapping) { + const mappedField = mapping.getMappedFieldForField(field); + if (mappedField) { + mapping.removeMappedField(mappedField); + cfg.mappingService.updateMappedField(mapping); + } + } +} + +/** + * Add the specified field to the current mapping. + * + * @param field + */ +export function removeMappedFieldFromCurrentMapping(field: MappedField): void { + const cfg = ConfigModel.getConfig(); + const mapping = cfg.mappings?.activeMapping; + if (mapping && field) { + mapping.removeMappedField(field); + cfg.mappingService.updateMappedField(mapping); + } +} + +/** + * Return the enumeration mapping lookup table associated with the active mapping. + * + */ +export function getEnumerationValues(): LookupTableData[] { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return []; + } + return initializationService.cfg.mappingService.getEnumerationValues( + cfg, + activeMapping, + ); +} + +/** + * Retrieve the enumeration values for the specified field node ID. + * + * @param nodeId - enumeration field node ID + */ +export function getFieldEnums(nodeId: string): EnumValue[] { + const uuidNode = + initializationService.cfg.mappings!.activeMapping!.transition.expression!.getNode( + nodeId, + ); + if (uuidNode && uuidNode.mappedField?.field.enumeration) { + return uuidNode.mappedField.field.enumValues; + } + return []; +} + +/** + * Set the value for a enumeration reference field. This way the enumeration field may be + * used in conditional expressions. Not used for enumeration mappings. + * + * @param selectedEnumNodeId - enumeration field node ID + * @param selectedEnumValueIndex - enumeration index value + */ +export function setSelectedEnumValue( + selectedEnumNodeId: string, + selectedEnumValueIndex: number, +) { + const mapping = initializationService.cfg.mappings!.activeMapping!; + const uuidNode = mapping.transition.expression!.getNode(selectedEnumNodeId); + if (uuidNode && uuidNode.mappedField?.field.enumeration) { + initializationService.cfg.mappingService.setEnumFieldValue( + uuidNode.mappedField.field, + selectedEnumValueIndex, + ); + mapping.transition.expression.updateFieldReference(mapping); + initializationService.cfg.mappingService.notifyMappingUpdated(); + } +} + +export function updateEnumerationValues( + enumerationValues: LookupTableData[], +): void { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return; + } + initializationService.cfg.mappingService.updateEnumerationValues( + cfg, + activeMapping, + enumerationValues, + ); +} + +export function isEnumerationMapping(): boolean { + const cfg = ConfigModel.getConfig(); + return initializationService.cfg.mappingService.isEnumerationMapping( + cfg.mappings?.activeMapping!, + ); +} diff --git a/packages/ui/src/impl/utils/index.ts b/packages/ui/src/impl/utils/index.ts new file mode 100644 index 000000000..43682b2ad --- /dev/null +++ b/packages/ui/src/impl/utils/index.ts @@ -0,0 +1,21 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +export * from './document'; +export * from './expression'; +export * from './field'; +export * from './toolbar'; +export * from './ui'; +export * from './useToggle'; diff --git a/packages/ui/src/impl/utils/toolbar.ts b/packages/ui/src/impl/utils/toolbar.ts new file mode 100644 index 000000000..01938c983 --- /dev/null +++ b/packages/ui/src/impl/utils/toolbar.ts @@ -0,0 +1,116 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { getDocDef, getDocDefByName, removeDocumentRef } from './document'; + +import { ConfigModel } from '../../core'; + +/** + * Return true if the specified file object exists as a source or target + * document, false otherwise. + * + * @param file - file object + * @param isSource - source or target panel + */ +export function documentExists(file: File, isSource: boolean): boolean { + const docDef = getDocDefByName(file.name, ConfigModel.getConfig(), isSource); + return docDef ? true : false; +} + +/** + * Delete the specified source or target document. + * + * @param fileId - document ID to delete + * @param isSource - source or target panel + */ +export async function deleteAtlasFile(fileId: string, isSource: boolean) { + const cfg = ConfigModel.getConfig(); + const docDef = getDocDef(fileId, cfg, isSource); + await removeDocumentRef(docDef, cfg); + cfg.initializationService.updateInitComplete(); +} + +/** + * The user has requested their current mappings be exported. Use the mapping management + * service to establish the file content and to push it down to the server. + * + * @param fileName - user-specified ADM archive file name + */ +export function exportADMArchiveFile(fileName: string) { + const cfg = ConfigModel.getConfig(); + return cfg.fileService.exportADMArchive(fileName); +} + +/** + * Import an ADM archive file or a user JAR file. + * + * @param selectedFile + * @param userFileSuffix + * @param cfg + */ +export function importADMArchiveFile(selectedFile: File, cfg: ConfigModel) { + cfg.initializationService.initializeWithADMArchiveFile(selectedFile); +} + +/** + * Import a JAR file. + * + * @param selectedFile + * @param userFileSuffix + * @param cfg + */ +export function importJarFile(selectedFile: File, cfg: ConfigModel) { + cfg.fileService.importJarFile(selectedFile); +} + +/** + * Remove all documents and imported JARs from the server. + */ +export function resetAtlasmap() { + const cfg = ConfigModel.getConfig(); + cfg.initializationService.resetAtlasMap(); +} + +export function getRuntimeVersion(): Promise { + const cfg = ConfigModel.getConfig(); + return cfg.initializationService.getRuntimeVersion(); +} + +export function getUIVersion(): string { + return '0.0.1'; +} + +export function toggleMappingPreview(enabled: boolean) { + const cfg = ConfigModel.getConfig(); + return cfg.previewService.toggleMappingPreview(enabled); +} + +export function toggleShowMappedFields(enabled: boolean) { + const cfg = ConfigModel.getConfig(); + + cfg.showMappedFields = enabled; + cfg.initializationService.systemInitializedSource.next(); + + return enabled; +} + +export function toggleShowUnmappedFields(enabled: boolean) { + const cfg = ConfigModel.getConfig(); + + cfg.showUnmappedFields = enabled; + cfg.initializationService.systemInitializedSource.next(); + + return enabled; +} diff --git a/packages/ui/src/impl/utils/ui.ts b/packages/ui/src/impl/utils/ui.ts new file mode 100644 index 000000000..0b6f16da6 --- /dev/null +++ b/packages/ui/src/impl/utils/ui.ts @@ -0,0 +1,706 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + CommonUtil, + ConfigModel, + DocumentDefinition, + ErrorInfo, + ErrorLevel, + ErrorScope, + ErrorType, + ExpressionModel, + Field, + FieldAction, + FieldActionDefinition, + InitializationService, + MappedField, + MappingDefinition, + MappingModel, + Multiplicity, + NamespaceModel, + TransitionMode, + TransitionModel, +} from '../../core'; +import { + IAtlasmapDocument, + IAtlasmapField, + IAtlasmapGroup, + IAtlasmapMappedField, + IAtlasmapMapping, + IAtlasmapNamespace, + INotification, +} from '../../Views'; +import { ITransformationArgument, ITransformationSelectOption } from '../../UI'; + +import { Observable } from 'rxjs'; + +export function copyToClipboard(text: string) { + const textArea = document.createElement('textarea'); + textArea.value = text; + document.body.appendChild(textArea); + textArea.select(); + try { + document.execCommand('copy'); + } catch (err) { + ConfigModel.getConfig().errorService.addError( + new ErrorInfo({ + message: 'Error copying ' + text + ' to clipboard', + level: ErrorLevel.ERROR, + scope: ErrorScope.APPLICATION, + type: ErrorType.INTERNAL, + }), + ); + } + document.body.removeChild(textArea); +} + +export const initializationService: InitializationService = + new InitializationService(); +export const configModel = initializationService.cfg; + +export function fromFieldToIFieldsGroup(field: Field): IAtlasmapGroup | null { + const fields = field.children + .map(fromFieldToIFields) + .filter((f) => f) as IAtlasmapField[]; + return fields.length > 0 && field.visibleInCurrentDocumentSearch + ? { + id: `${field.docDef.uri || field.docDef.type + '-' + field.scope}:${ + field.docDef.isSource ? 'source' : 'target' + }:${field.path}`, + name: field.name, + type: field.type, + isCollection: field.isCollection, + isInCollection: field.isInCollection(), + fields: fields, + amField: field, + } + : null; +} + +export function fromFieldToIFieldsNode(field: Field): IAtlasmapField | null { + const cfg = ConfigModel.getConfig(); + const partOfMapping: boolean = field.partOfMapping; + const shouldBeVisible = partOfMapping + ? cfg.showMappedFields + : cfg.showUnmappedFields && field.visibleInCurrentDocumentSearch; + return shouldBeVisible + ? { + id: `${field.docDef.uri || field.docDef.type + '-' + field.scope}:${ + field.docDef.isSource ? 'source' : 'target' + }:${field.path}`, + name: field.getFieldLabel(false, false), + type: field.type, + path: field.path, + scope: field.scope ? field.scope : '', + value: field.value, + amField: field, + mappings: + (cfg.mappings + ?.findMappingsForField(field) + .map(fromMappingModelToImapping) + .filter((d) => d) as IAtlasmapMapping[]) || [], + hasTransformations: field.partOfTransformation, + isAttribute: field.isAttribute, + isCollection: field.isCollection, + isInCollection: field.isInCollection(), + isConnected: partOfMapping, + isDisabled: + field.type === 'UNSUPPORTED' || + (field.type === 'COMPLEX' && !field.enumeration), + enumeration: field.enumeration, + } + : null; +} + +export function fromFieldToIFields(field: Field) { + return field.children.length > 0 + ? fromFieldToIFieldsGroup(field) + : fromFieldToIFieldsNode(field); +} + +export function fromNamespaceModelToINamespace(namespace: NamespaceModel) { + return { + alias: namespace.alias, + uri: namespace.uri, + locationUri: namespace.locationUri, + isTarget: namespace.isTarget, + }; +} + +export function fromDocumentDefinitionToFieldGroup( + def: DocumentDefinition, +): IAtlasmapDocument | null { + if (!def || !def.fields || def.fields.length === 0) { + return null; + } + const fields = def.fields + .map(fromFieldToIFields) + .filter((f) => f) as IAtlasmapField[]; + const namespaces = def.namespaces + .map(fromNamespaceModelToINamespace) + .filter((n) => n) as IAtlasmapNamespace[]; + return def.visibleInCurrentDocumentSearch && fields.length > 0 + ? { + id: def.id, + fields, + name: def.name, + type: def.type, + namespaces, + } + : null; +} + +export function fromMappedFieldToIMappingField( + mappedField: MappedField, +): IAtlasmapMappedField | null { + if (!mappedField.field || !mappedField.field.docDef) { + return null; + } + return { + id: `${ + mappedField.field!.docDef.uri || + mappedField.field!.docDef.type + '-' + mappedField.field!.scope + }:${mappedField.field!.docDef.isSource ? 'source' : 'target'}:${ + mappedField.field!.path + }`, + name: mappedField.field!.getFieldLabel(false, false), + type: mappedField.field!.type, + path: mappedField.field!.path, + scope: mappedField.field?.scope ? mappedField.field.scope : '', + value: mappedField.field!.value, + hasTransformations: false, + mappings: [], + isAttribute: false, + isCollection: false, + isInCollection: false, + isConnected: false, + isDisabled: false, + enumeration: false, + amField: mappedField.field, + transformations: mappedField.actions.map((a) => ({ + name: a.name, + options: getMappingActions(mappedField.isSource()).map( + (a): ITransformationSelectOption => ({ + name: CommonUtil.toDisplayable(a.name), + value: a.name, + }), + ), + arguments: a.definition!.arguments.map( + (av, idx): ITransformationArgument => ({ + label: + av.serviceObject?.title?.length > 0 + ? av.serviceObject.title + : CommonUtil.toDisplayable(av.name), + type: av.type, + name: av.name, + value: a.argumentValues[idx].value, + options: av.values + ? av.values.map( + (avv): ITransformationSelectOption => ({ + name: avv, + value: avv, + }), + ) + : undefined, + }), + ), + })), + }; +} + +export function errorLevelToVariant( + level: ErrorLevel, +): INotification['variant'] { + switch (level) { + case ErrorLevel.INFO: + return 'info'; + case ErrorLevel.WARN: + return 'warning'; + case ErrorLevel.ERROR: + return 'danger'; + default: + return 'default'; + } +} + +export function errorMessageToString(message: any): string { + switch (typeof message) { + case 'string': + return message; + default: + return message?.message || JSON.stringify(message); + } +} + +export function errorTypeToString(type: ErrorType): string { + switch (type) { + case ErrorType.INTERNAL: + return 'Internal'; + case ErrorType.USER: + return 'User'; + case ErrorType.VALIDATION: + return 'Validation'; + case ErrorType.PREVIEW: + return 'Preview'; + case ErrorType.FORM: + return 'Form'; + } +} + +export function errorInfoToNotification(e: ErrorInfo): INotification { + return { + variant: errorLevelToVariant(e.level), + title: + e.mapping && e.type !== ErrorType.PREVIEW + ? `${errorTypeToString( + e.type, + )}: "${e.mapping.transition.getPrettyName()}"` + : errorTypeToString(e.type), + description: errorMessageToString(e.message), + id: e.identifier, + mappingId: e.mapping?.uuid, + }; +} + +export function fromMappingModelToImapping( + m: MappingModel | null | undefined, +): IAtlasmapMapping | null { + return m + ? { + id: m.uuid, + name: m.transition.getPrettyName(), + sourceFields: m + .getUserMappedFields(true) + .map(fromMappedFieldToIMappingField) + .filter((f) => f) as IAtlasmapMappedField[], + targetFields: m + .getUserMappedFields(false) + .map(fromMappedFieldToIMappingField) + .filter((f) => f) as IAtlasmapMappedField[], + mapping: m, + } + : null; +} + +export function fromMappingDefinitionToIMappings( + def: MappingDefinition | null, +): IAtlasmapMapping[] { + return def + ? (def.mappings + .map(fromMappingModelToImapping) + .filter((d) => d) as IAtlasmapMapping[]) + : []; +} + +export function executeFieldSearch( + searchFilter: string, + isSource: boolean, +): string[][] { + return initializationService.cfg.expressionService.executeFieldSearch( + initializationService.cfg, + searchFilter, + isSource, + ); +} + +export function getField(fieldPath: string, isSource: boolean): Field | null { + let field: Field | null = null; + for (const doc of initializationService.cfg.getDocs(isSource)) { + field = Field.getField(fieldPath, doc.getAllFields()); + if (field) { + break; + } + } + return field; +} + +export function mappingExpressionAddField( + selectedDocId: string, + selectedField: string, + newTextNode: any, + atIndex: number, + isTrailer: boolean, +) { + const mapping = initializationService.cfg.mappings!.activeMapping; + if (!mapping || !selectedDocId || !selectedField) { + return; + } + configModel.expressionService.addFieldToExpression( + mapping, + selectedDocId, + selectedField, + newTextNode, + atIndex, + isTrailer, + ); + initializationService.cfg.mappingService.notifyMappingUpdated(); +} + +export function mappingExpressionInit() { + if ( + !initializationService.cfg.mappings || + !initializationService.cfg.mappings.activeMapping + ) { + return; + } + const mapping = initializationService.cfg.mappings!.activeMapping!; + + // Filter out padding fields for expression mapping. + mapping + .getMappedFields(true) + .filter((mf) => mf.isPadField()) + .forEach((mf) => mapping.removeMappedField(mf)); + + if (!mapping.transition.expression) { + mapping.transition.expression = new ExpressionModel( + mapping, + initializationService.cfg, + ); + mapping.transition.expression.generateInitialExpression(); + } else { + mapping.transition.expression.setConfigModel(initializationService.cfg); + } + mapping.transition.expression.updateFieldReference(mapping); +} +export function mappingExpressionClearText( + nodeId?: string, + startOffset?: number, + endOffset?: number, +) { + const uuidNode = + initializationService.cfg.mappings!.activeMapping!.transition.expression!.clearText( + nodeId!, + startOffset, + endOffset, + ); + initializationService.cfg.mappingService.notifyMappingUpdated(); + return uuidNode; +} +export function mappingExpressionInsertText( + str: string, + nodeId?: string, + offset?: number, +) { + initializationService.cfg.mappings!.activeMapping!.transition.expression!.insertText( + str, + nodeId, + offset, + ); + initializationService.cfg.mappingService.notifyMappingUpdated(); +} +export function mappingExpressionObservable(): Observable | null { + if ( + !initializationService.cfg.mappings?.activeMapping?.transition?.expression + ) { + return null; + } + return initializationService.cfg.mappings.activeMapping.transition.expression + .expressionUpdated$; +} +export function mappingExpressionRemoveField( + tokenPosition?: string, + offset?: number, + removeNext?: boolean, +) { + initializationService.cfg.mappings!.activeMapping!.transition.expression!.removeToken( + tokenPosition, + offset, + removeNext, + ); + initializationService.cfg.mappingService.notifyMappingUpdated(); +} +export function onFieldPreviewChange(field: IAtlasmapField, value: string) { + field.amField.value = value; + initializationService.cfg.mappingService.notifyMappingUpdated(); +} + +export function toggleExpressionMode() { + initializationService.cfg.expressionService.toggleExpressionMode(); + initializationService.cfg.mappingService.notifyMappingUpdated(); +} + +export function getMappingActions(isSource: boolean) { + return initializationService.cfg.fieldActionService.getActionsAppliesToField( + initializationService.cfg.mappings!.activeMapping!, + isSource, + Multiplicity.ONE_TO_ONE, + ); +} +export function getMultiplicityActions(mapping: MappingModel) { + if (mapping.transition.mode === TransitionMode.ONE_TO_MANY) { + return initializationService.cfg.fieldActionService.getActionsAppliesToField( + mapping, + true, + Multiplicity.ONE_TO_MANY, + ); + } else if (mapping.transition.mode === TransitionMode.MANY_TO_ONE) { + return initializationService.cfg.fieldActionService.getActionsAppliesToField( + mapping, + true, + Multiplicity.MANY_TO_ONE, + ); + } else { + return []; + } +} +export function getMultiplicityActionDelimiters() { + return TransitionModel.delimiterModels; +} + +export function handleActionChange( + action: FieldAction, + definition: FieldActionDefinition, +) { + action.argumentValues = []; // Invalidate the previously selected field action arguments. + definition.populateFieldAction(action); + + // If the field action configuration predefines argument values then populate the fields with + // default values. Needed to support pull-down menus in action argument definitions. + if ( + action.argumentValues.values() && + action.argumentValues.length > 0 && + definition.arguments[0] && + definition.arguments[0].values && + definition.arguments[0].values.length > 0 + ) { + for (let i = 0; i < action.argumentValues.length; i++) { + action.argumentValues[i].value = definition.arguments[i].values![i]; + } + } + initializationService.cfg.mappingService.notifyMappingUpdated(); +} + +/** + * Process a mapped field index change. The source field is represented by + * currentIndex. The target index is represented either by a number or by a + * mapped field (depending on whether the index was physically modified or + * d&d modified). + * + * @param isSource + * @param currentIndex + * @param target + */ +export function handleIndexChange( + isSource: boolean, + currentIndex: number, + target: number | Field, +) { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return; + } + const sourceField = activeMapping.getMappedFieldForIndex( + '' + (currentIndex + 1), + isSource, + ); + if (!sourceField) { + return; + } + let newIndex: number | null = 0; + + // If the target is an actual index value then check for the need to add padding. + if (typeof target === 'number') { + newIndex = target; + if (target <= 0 || !activeMapping) { + return; + } + const mappedFields = activeMapping.getMappedFields(isSource); + const maxIndex = mappedFields.length; + if (target > maxIndex) { + // Add place-holders for each index value between the previous max index + // and the insertion index. + cfg.mappingService.addPlaceholders( + target - mappedFields.length, + activeMapping, + maxIndex, + isSource, + ); + } + // If the target is a dropped field then extract the mapped field to determine the index. + } else { + const field = activeMapping.getMappedFieldForField(target!); + if (!field) { + return; + } + newIndex = activeMapping.getIndexForMappedField(field); + } + cfg.mappingService.moveMappedFieldTo(activeMapping, sourceField, newIndex!); +} + +export function handleNewTransformation(isSource: boolean, index: number) { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return; + } + const field = activeMapping.getMappedFieldForIndex( + '' + (index + 1), + isSource, + ); + if (!field) { + return; + } + const action: FieldAction = new FieldAction(); + const availableActions = getMappingActions(isSource); + availableActions[0].populateFieldAction(action); + field.actions.push(action); + cfg.mappingService.notifyMappingUpdated(); +} + +export function handleTransformationChange( + isSource: boolean, + index: number, + currentTransformationIndex: number, + newTransformationName: string, +) { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return; + } + const field = activeMapping.getMappedFieldForIndex( + '' + (index + 1), + isSource, + ); + if (!field) { + return; + } + const action = field.actions[currentTransformationIndex]; + const newAction = getMappingActions(isSource).find( + (a) => a.name === newTransformationName, + ); + + if (action && newAction) { + action.argumentValues = []; // Invalidate the previously selected field action arguments. + newAction.populateFieldAction(action); + + // If the field action configuration predefines argument values then populate the fields with + // default values. Needed to support pull-down menus in action argument definitions. + if ( + action.argumentValues.values() && + action.argumentValues.length > 0 && + newAction.arguments[0] && + newAction.arguments[0].values && + newAction.arguments[0].values.length > 0 + ) { + for (let i = 0; i < action.argumentValues.length; i++) { + action.argumentValues[i].value = newAction.arguments[i].values![i]; + } + } + cfg.mappingService.notifyMappingUpdated(); + } +} + +export function handleTransformationArgumentChange( + isSource: boolean, + index: number, + transformationIndex: number, + argumentName: string, + argumentValue: string, +) { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return; + } + const field = activeMapping.getMappedFieldForIndex( + '' + (index + 1), + isSource, + ); + if (!field) { + return; + } + const action = field.actions[transformationIndex]; + if (action) { + action.setArgumentValue(argumentName, argumentValue); + cfg.mappingService.notifyMappingUpdated(); + } +} + +export function handleRemoveTransformation( + isSource: boolean, + index: number, + transformationIndex: number, +) { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return; + } + const field = activeMapping.getMappedFieldForIndex( + '' + (index + 1), + isSource, + ); + if (!field) { + return; + } + const action = field.actions[transformationIndex]; + if (action) { + CommonUtil.removeItemFromArray(action, field.actions); + cfg.mappingService.notifyMappingUpdated(); + } +} + +export function handleMultiplicityChange(action: FieldAction, name: string) { + const cfg = ConfigModel.getConfig(); + const activeMapping = cfg.mappings?.activeMapping; + if (!activeMapping) { + return; + } + + const newAction = getMultiplicityActions(activeMapping).find( + (a) => a.name === name, + ); + + if (action && newAction) { + action.argumentValues = []; // Invalidate the previously selected field action arguments. + newAction.populateFieldAction(action); + + // If the field action configuration predefines argument values then populate the fields with + // default values. Needed to support pull-down menus in action argument definitions. + if ( + action.argumentValues.values() && + action.argumentValues.length > 0 && + newAction.arguments[0] && + newAction.arguments[0].values && + newAction.arguments[0].values.length > 0 + ) { + for (let i = 0; i < action.argumentValues.length; i++) { + action.argumentValues[i].value = newAction.arguments[i].values![i]; + } + } + initializationService.cfg.mappingService.notifyMappingUpdated(); + } +} +export function handleMultiplicityArgumentChange( + multiplicityFieldAction: FieldAction, + argumentName: string, + argumentValue: string, +) { + const cfg = ConfigModel.getConfig(); + + multiplicityFieldAction.setArgumentValue(argumentName, argumentValue); + cfg.mappingService.notifyMappingUpdated(); +} + +export function selectMapping(mapping: IAtlasmapMapping) { + initializationService.cfg.mappingService.selectMapping(mapping.mapping); +} + +export function deselectMapping() { + initializationService.cfg.mappingService.deselectMapping(); +} diff --git a/packages/ui/src/impl/utils/useToggle.ts b/packages/ui/src/impl/utils/useToggle.ts new file mode 100644 index 000000000..daf845edd --- /dev/null +++ b/packages/ui/src/impl/utils/useToggle.ts @@ -0,0 +1,33 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { useCallback, useEffect, useState } from 'react'; + +type OnToggleReturnType = Promise | boolean; + +export function useToggle( + initialState: boolean, + onToggle?: (toggled: boolean) => OnToggleReturnType, +) { + const [state, setState] = useState(initialState); + useEffect(() => setState(initialState), [initialState]); + const toggle = useCallback(async () => { + const newState = onToggle ? await onToggle(!state) : !state; + setState(newState); + }, [onToggle, state]); + const toggleOff = useCallback(() => setState(false), []); + const toggleOn = useCallback(() => setState(true), []); + return { state, toggle, toggleOff, toggleOn, setToggle: setState }; +} diff --git a/packages/ui/src/main.tsx b/packages/ui/src/main.tsx new file mode 100644 index 000000000..4038c51a1 --- /dev/null +++ b/packages/ui/src/main.tsx @@ -0,0 +1,8 @@ +import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first +import ReactDOM from 'react-dom'; +import {Atlasmap} from "./impl"; + +ReactDOM.render( + , + document.getElementById('root') +); diff --git a/packages/ui/src/stories/decorators.tsx b/packages/ui/src/stories/decorators.tsx new file mode 100644 index 000000000..fedbf8bb7 --- /dev/null +++ b/packages/ui/src/stories/decorators.tsx @@ -0,0 +1,27 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FieldDragLayer, FieldsDndProvider } from '../UI'; +import React, { ReactElement } from 'react'; + +const stories = [ + (storyFn: () => ReactElement) => ( + + {storyFn()} + + + ), +]; +export default stories; diff --git a/packages/ui/src/stories/fromJava.ts b/packages/ui/src/stories/fromJava.ts new file mode 100644 index 000000000..5bc8873af --- /dev/null +++ b/packages/ui/src/stories/fromJava.ts @@ -0,0 +1,173 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { IAtlasmapField, IAtlasmapGroup, IAtlasmapMapping } from '../Views'; + +interface Modifiers { + modifier: string[]; +} + +interface JavaEnumFields { + javaEnumField: any[]; +} + +interface JavaField { + jsonType: string; + path: string; + status: string; + fieldType: string; + modifiers: Modifiers; + name: string; + className: string; + canonicalClassName: string; + primitive: boolean; + synthetic: boolean; + arrayDimensions?: number; + collectionType?: string; + javaEnumFields?: JavaEnumFields; + javaFields?: JavaFields; + packageName?: string; + annotation?: boolean; + annonymous?: boolean; + enumeration?: boolean; + localClass?: boolean; + memberClass?: boolean; + uri?: string; + interface?: boolean; +} + +interface JavaFields { + javaField: JavaField[]; +} + +interface JavaClass { + jsonType: string; + path: string; + fieldType: string; + modifiers: Modifiers; + className: string; + canonicalClassName: string; + primitive: boolean; + synthetic: boolean; + javaEnumFields?: JavaEnumFields; + javaFields?: JavaFields; + packageName?: string; + annotation: boolean; + annonymous: boolean; + enumeration: boolean; + localClass: boolean; + memberClass: boolean; + uri?: string; + interface: boolean; +} + +interface ClassInspectionResponse { + jsonType: string; + javaClass: JavaClass; + executionTime: number; +} + +export interface JavaObject { + ClassInspectionResponse: ClassInspectionResponse; +} + +export function javaToFieldGroup( + java: JavaObject, + idPrefix: string, + allMappings: IAtlasmapMapping[], +) { + const fromElement = (jf: JavaField): IAtlasmapField => { + const id = `${idPrefix}-${jf.path}`; + const mappings = allMappings.filter( + (m) => + m.sourceFields.find((s) => s.id === id) || + m.targetFields.find((t) => t.id === id), + ); + + return { + id: `${idPrefix}-${jf.path}`, + name: jf.name, + type: jf.fieldType, + path: jf.path, + scope: 'current', + value: '', + mappings, + hasTransformations: + mappings.length > 0 && + (jf.name.startsWith('a') || + jf.name.startsWith('b') || + jf.name.startsWith('c')), + isCollection: jf.collectionType === 'LIST', + isAttribute: false, + isInCollection: false, + isConnected: false, + isDisabled: jf.collectionType === 'COMPLEX', + amField: {} as IAtlasmapField['amField'], + enumeration: false, + }; + }; + const fromGroup = (f: JavaField): IAtlasmapGroup => ({ + name: f.name, + type: f.fieldType, + id: `${idPrefix}-${f.path}`, + fields: f.javaFields!.javaField.map((f) => + f.javaFields ? fromGroup(f as JavaField) : fromElement(f), + ), + isCollection: false, + isInCollection: false, + amField: {} as IAtlasmapField['amField'], + }); + + return java.ClassInspectionResponse.javaClass.javaFields!.javaField.map((f) => + f.javaFields ? fromGroup(f as JavaField) : fromElement(f), + ); +} +// export function javaToFieldGroup(java, idPrefix, allMappings) { +// const fromElement = (jf) => { +// const id = `${idPrefix}-${jf.path}`; +// const mappings = allMappings.filter( +// (m) => +// m.sourceFields.find((s) => s.id === id) || +// m.targetFields.find((t) => t.id === id) +// ); + +// return { +// id: `${idPrefix}-${jf.path}`, +// name: jf.name, +// type: jf.fieldType, +// value: "", +// mappings, +// hasTransformations: +// mappings.length > 0 && +// (jf.name.startsWith("a") || +// jf.name.startsWith("b") || +// jf.name.startsWith("c")), +// isCollection: jf.collectionType === "LIST", +// }; +// }; +// const fromGroup = (f) => ({ +// name: f.name, +// type: f.fieldType, +// id: `${idPrefix}-${f.path}`, +// fields: f.javaFields.javaField +// .map((f) => (f.javaFields ? fromGroup(f) : fromElement(f))) +// .sort((a, b) => a.name.localeCompare(b.name)), +// isCollection: f.collectionType === "LIST", +// }); + +// return java.ClassInspectionResponse.javaClass.javaFields.javaField +// .map((f) => (f.javaFields ? fromGroup(f) : fromElement(f))) +// .sort((a, b) => a.name.localeCompare(b.name)); +// } diff --git a/packages/ui/src/stories/fromJson.ts b/packages/ui/src/stories/fromJson.ts new file mode 100644 index 000000000..6513d21b9 --- /dev/null +++ b/packages/ui/src/stories/fromJson.ts @@ -0,0 +1,145 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { IAtlasmapField, IAtlasmapGroup, IAtlasmapMapping } from '../Views'; + +interface JsonField { + jsonType: string; + path: string; + status: string; + fieldType: string; + name: string; + jsonFields?: JsonFields; + collectionType?: string; + value?: any; +} + +interface JsonFields { + jsonField: JsonField[]; +} + +interface Field { + jsonType: string; + path: string; + status: string; + fieldType: string; + name: string; + jsonFields: JsonFields; + collectionType?: string; +} + +interface Fields { + field: Field[]; +} + +interface JsonDocument { + jsonType: string; + fields: Fields; +} + +interface JsonInspectionResponse { + jsonType: string; + jsonDocument: JsonDocument; + executionTime: number; +} + +export interface JsonObject { + JsonInspectionResponse: JsonInspectionResponse; +} + +export function jsonToFieldGroup( + json: JsonObject, + idPrefix: string, + allMappings: IAtlasmapMapping[], +) { + const fromElement = (jf: JsonField): IAtlasmapField => { + const id = `${idPrefix}-${jf.path}`; + const mappings = allMappings.filter( + (m) => + m.sourceFields.find((s) => s.id === id) || + m.targetFields.find((t) => t.id === id), + ); + return { + id, + name: jf.name, + type: jf.fieldType, + path: jf.path, + scope: 'current', + value: '', + mappings, + hasTransformations: + mappings.length > 0 && + (jf.name.startsWith('a') || + jf.name.startsWith('b') || + jf.name.startsWith('c')), + isAttribute: false, + isCollection: jf.collectionType === 'LIST', + isInCollection: false, + isConnected: false, + isDisabled: jf.collectionType === 'COMPLEX', + amField: {} as IAtlasmapField['amField'], + enumeration: false, + }; + }; + const fromGroup = (f: Field): IAtlasmapGroup => ({ + name: f.name, + type: f.fieldType, + id: `${idPrefix}-${f.path}`, + fields: f.jsonFields.jsonField.map((f) => + f.jsonFields ? fromGroup(f as Field) : fromElement(f), + ), + isCollection: false, + isInCollection: false, + amField: {} as IAtlasmapField['amField'], + }); + + return json.JsonInspectionResponse.jsonDocument.fields.field.map(fromGroup); +} +// export function jsonToFieldGroup(json, idPrefix, allMappings) { +// const fromElement = (jf) => { +// const id = `${idPrefix}-${jf.path}`; +// const mappings = allMappings.filter( +// (m) => +// m.sourceFields.find((s) => s.id === id) || +// m.targetFields.find((t) => t.id === id) +// ); +// return { +// id, +// name: jf.name, +// type: jf.fieldType, +// value: "", +// mappings, +// hasTransformations: +// mappings.length > 0 && +// (jf.name.startsWith("a") || +// jf.name.startsWith("b") || +// jf.name.startsWith("c")), +// isCollection: jf.collectionType === "LIST", +// }; +// }; +// const fromGroup = (f) => ({ +// name: f.name, +// type: f.fieldType, +// id: `${idPrefix}-${f.path}`, +// fields: f.jsonFields.jsonField +// .map((f) => (f.jsonFields ? fromGroup(f) : fromElement(f))) +// .sort((a, b) => a.name.localeCompare(b.name)), +// isCollection: f.collectionType === "LIST", +// }); + +// return json.JsonInspectionResponse.jsonDocument.fields.field +// .map(fromGroup) +// .sort((a, b) => a.name.localeCompare(b.name)); +// } diff --git a/packages/ui/src/stories/fromXML.ts b/packages/ui/src/stories/fromXML.ts new file mode 100644 index 000000000..de0bcc9b7 --- /dev/null +++ b/packages/ui/src/stories/fromXML.ts @@ -0,0 +1,163 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { IAtlasmapField, IAtlasmapGroup, IAtlasmapMapping } from '../Views'; + +interface Restrictions { + restriction: any[]; +} +interface XmlField { + jsonType: string; + path: string; + fieldType: string; + name: string; + value?: any; + status?: any; + xmlFields?: XmlFields; + restrictions?: Restrictions; + collectionType?: string; +} + +interface XmlFields { + xmlField: XmlField[]; +} + +interface Field { + jsonType: string; + path: string; + fieldType: string; + name: string; + xmlFields: XmlFields; + typeName?: any; +} + +interface Fields { + field: Field[]; +} + +interface XmlNamespace { + alias: string; + uri: string; +} + +interface XmlNamespaces { + xmlNamespace: XmlNamespace[]; +} + +interface XmlDocument { + jsonType: string; + fields: Fields; + xmlNamespaces: XmlNamespaces; +} + +interface XmlInspectionResponse { + jsonType: string; + xmlDocument: XmlDocument; + executionTime: number; +} + +export interface XMLObject { + XmlInspectionResponse: XmlInspectionResponse; +} + +export function xmlToFieldGroup( + xml: XMLObject, + idPrefix: string, + allMappings: IAtlasmapMapping[], +) { + const fromElement = (jf: XmlField): IAtlasmapField => { + const id = `${idPrefix}-${jf.path}`; + const mappings = allMappings.filter( + (m) => + m.sourceFields.find((s) => s.id === id) || + m.targetFields.find((t) => t.id === id), + ); + + return { + id, + name: jf.name, + type: jf.fieldType, + path: jf.path, + scope: 'current', + value: '', + mappings, + hasTransformations: + mappings.length > 0 && + (jf.name.startsWith('a') || + jf.name.startsWith('b') || + jf.name.startsWith('c')), + isAttribute: false, + isCollection: jf.collectionType === 'LIST', + isInCollection: false, + isConnected: false, + isDisabled: jf.collectionType === 'COMPLEX', + amField: {} as IAtlasmapField['amField'], + enumeration: false, + }; + }; + const fromGroup = (f: Field): IAtlasmapGroup => ({ + name: f.name, + type: f.fieldType, + id: `${idPrefix}-${f.path}`, + fields: f.xmlFields.xmlField.map((f) => + f.xmlFields ? fromGroup(f as Field) : fromElement(f), + ), + isCollection: false, + isInCollection: false, + amField: {} as IAtlasmapField['amField'], + }); + + return xml.XmlInspectionResponse.xmlDocument.fields.field.map((f) => + f.xmlFields ? fromGroup(f as Field) : fromElement(f), + ); +} +// export function xmlToFieldGroup(xml, idPrefix, allMappings) { +// const fromElement = (jf) => { +// const id = `${idPrefix}-${jf.path}`; +// const mappings = allMappings.filter( +// (m) => +// m.sourceFields.find((s) => s.id === id) || +// m.targetFields.find((t) => t.id === id) +// ); + +// return { +// id, +// name: jf.name, +// type: jf.fieldType, +// value: "", +// mappings, +// hasTransformations: +// mappings.length > 0 && +// (jf.name.startsWith("a") || +// jf.name.startsWith("b") || +// jf.name.startsWith("c")), +// isCollection: jf.collectionType === "LIST", +// }; +// }; + +// const fromGroup = (f) => ({ +// name: f.name, +// type: f.fieldType, +// id: `${idPrefix}-${f.path}`, +// fields: f.xmlFields.xmlField +// .map((f) => (f.xmlFields ? fromGroup(f) : fromElement(f))) +// .sort((a, b) => a.name.localeCompare(b.name)), +// isCollection: f.collectionType === "LIST", +// }); + +// return xml.XmlInspectionResponse.xmlDocument.fields.field +// .map((f) => (f.xmlFields ? fromGroup(f) : fromElement(f))) +// .sort((a, b) => a.name.localeCompare(b.name)); +// } diff --git a/packages/ui/src/stories/htmlKnob.ts b/packages/ui/src/stories/htmlKnob.ts new file mode 100644 index 000000000..51e3a0a1d --- /dev/null +++ b/packages/ui/src/stories/htmlKnob.ts @@ -0,0 +1,21 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import he from 'he'; +import { text } from '@storybook/addon-knobs'; + +export function html(name: string, value: string, groupId?: string) { + return he.decode(text(name, value, groupId)); +} diff --git a/packages/ui/src/stories/sampleData.ts b/packages/ui/src/stories/sampleData.ts new file mode 100644 index 000000000..56ae77056 --- /dev/null +++ b/packages/ui/src/stories/sampleData.ts @@ -0,0 +1,1111 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { + IAtlasmapDocument, + IAtlasmapField, + IAtlasmapMappedField, + IAtlasmapMapping, +} from '../Views'; + +import { MappingModel } from '@atlasmap/core'; +import { javaToFieldGroup } from './fromJava'; +import { jsonToFieldGroup } from './fromJson'; +import { xmlToFieldGroup } from './fromXML'; + +const mockJSONInstanceSource = { + JsonInspectionResponse: { + jsonType: 'io.atlasmap.json.v2.JsonInspectionResponse', + jsonDocument: { + jsonType: 'io.atlasmap.json.v2.JsonDocument', + fields: { + field: [ + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/order', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'order', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/order/address', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'address', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: '123 any st', + path: '/order/address/street', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'street', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 'Austin', + path: '/order/address/city', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'city', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 'TX', + path: '/order/address/state', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'state', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: '78626', + path: '/order/address/zip', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'zip', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/order/contact', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'contact', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 'james', + path: '/order/contact/firstName', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'firstName', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 'smith', + path: '/order/contact/lastName', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'lastName', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: '512-123-1234', + path: '/order/contact/phone', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'phone', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: '123', + path: '/order/orderId', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'orderId', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: '', + path: '/order/customerName', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'customerName', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/primitives', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'primitives', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 'some value', + path: '/primitives/stringPrimitive', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'stringPrimitive', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: true, + path: '/primitives/booleanPrimitive', + status: 'SUPPORTED', + fieldType: 'BOOLEAN', + name: 'booleanPrimitive', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 24, + path: '/primitives/numberPrimitive', + status: 'SUPPORTED', + fieldType: 'INTEGER', + name: 'numberPrimitive', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + collectionType: 'LIST', + path: '/addressList<>', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'addressList', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: '123 any st', + path: '/addressList<>/street', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'street', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 'Austin', + path: '/addressList<>/city', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'city', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: 'TX', + path: '/addressList<>/state', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'state', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + value: '78626', + path: '/addressList<>/zip', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'zip', + }, + ], + }, + }, + ], + }, + }, + executionTime: 10, + }, +}; +const mockJSONSchemaSource = { + JsonInspectionResponse: { + jsonType: 'io.atlasmap.json.v2.JsonInspectionResponse', + jsonDocument: { + jsonType: 'io.atlasmap.json.v2.JsonDocument', + fields: { + field: [ + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/order', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'order', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/order/address', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'address', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/address/street', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'street', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/address/city', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'city', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/address/state', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'state', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/address/zip', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'zip', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/order/contact', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'contact', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/contact/firstName', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'firstName', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/contact/lastName', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'lastName', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/contact/phone', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'phone', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/order/orderId', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'orderId', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/primitives', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'primitives', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/primitives/stringPrimitive', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'stringPrimitive', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/primitives/booleanPrimitive', + status: 'SUPPORTED', + fieldType: 'BOOLEAN', + name: 'booleanPrimitive', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/primitives/numberPrimitive', + status: 'SUPPORTED', + fieldType: 'NUMBER', + name: 'numberPrimitive', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + path: '/primitiveArrays', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'primitiveArrays', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + collectionType: 'LIST', + path: '/primitiveArrays/stringArray<>', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'stringArray', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + collectionType: 'LIST', + path: '/primitiveArrays/booleanArray<>', + status: 'SUPPORTED', + fieldType: 'BOOLEAN', + name: 'booleanArray', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + collectionType: 'LIST', + path: '/primitiveArrays/numberArray<>', + status: 'SUPPORTED', + fieldType: 'NUMBER', + name: 'numberArray', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.json.v2.JsonComplexType', + collectionType: 'LIST', + path: '/addressList<>', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + name: 'addressList', + jsonFields: { + jsonField: [ + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/addressList<>/street', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'street', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/addressList<>/city', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'city', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/addressList<>/state', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'state', + }, + { + jsonType: 'io.atlasmap.json.v2.JsonField', + path: '/addressList<>/zip', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'zip', + }, + ], + }, + }, + ], + }, + }, + executionTime: 2, + }, +}; + +const ioPaulBicycle = { + ClassInspectionResponse: { + jsonType: 'io.atlasmap.java.v2.ClassInspectionResponse', + javaClass: { + jsonType: 'io.atlasmap.java.v2.JavaClass', + path: '/', + fieldType: 'COMPLEX', + modifiers: { + modifier: ['PUBLIC'], + }, + className: 'io.paul.Bicycle', + canonicalClassName: 'io.paul.Bicycle', + primitive: false, + synthetic: false, + javaEnumFields: { + javaEnumField: [], + }, + javaFields: { + javaField: [ + { + jsonType: 'io.atlasmap.java.v2.JavaField', + path: '/cadence', + status: 'SUPPORTED', + fieldType: 'INTEGER', + modifiers: { + modifier: ['PUBLIC'], + }, + name: 'cadence', + className: 'int', + canonicalClassName: 'int', + primitive: true, + synthetic: false, + }, + { + jsonType: 'io.atlasmap.java.v2.JavaField', + path: '/gear', + status: 'SUPPORTED', + fieldType: 'INTEGER', + modifiers: { + modifier: ['PUBLIC'], + }, + name: 'gear', + className: 'int', + canonicalClassName: 'int', + primitive: true, + synthetic: false, + }, + { + jsonType: 'io.atlasmap.java.v2.JavaField', + path: '/speed', + status: 'SUPPORTED', + fieldType: 'INTEGER', + modifiers: { + modifier: ['PUBLIC'], + }, + name: 'speed', + className: 'int', + canonicalClassName: 'int', + primitive: true, + synthetic: false, + }, + { + jsonType: 'io.atlasmap.java.v2.JavaField', + path: '/serialId', + status: 'SUPPORTED', + fieldType: 'STRING', + modifiers: { + modifier: ['PUBLIC'], + }, + name: 'serialId', + className: 'java.lang.String', + canonicalClassName: 'java.lang.String', + primitive: true, + synthetic: false, + }, + { + jsonType: 'io.atlasmap.java.v2.JavaField', + arrayDimensions: 1, + collectionType: 'ARRAY', + path: '/seatHeight', + status: 'SUPPORTED', + fieldType: 'FLOAT', + modifiers: { + modifier: ['PUBLIC'], + }, + name: 'seatHeight', + className: 'float', + canonicalClassName: 'float', + primitive: true, + synthetic: false, + }, + { + jsonType: 'io.atlasmap.java.v2.JavaField', + arrayDimensions: 1, + collectionType: 'ARRAY', + path: '/color', + status: 'SUPPORTED', + fieldType: 'STRING', + modifiers: { + modifier: ['PUBLIC'], + }, + name: 'color', + className: 'java.lang.String', + canonicalClassName: 'java.lang.String', + primitive: true, + synthetic: false, + }, + { + jsonType: 'io.atlasmap.java.v2.JavaClass', + path: '/geoLocation', + status: 'SUPPORTED', + fieldType: 'COMPLEX', + modifiers: { + modifier: ['PUBLIC', 'PUBLIC'], + }, + name: 'geoLocation', + className: 'io.paul.GeoLocation', + canonicalClassName: 'io.paul.GeoLocation', + primitive: false, + synthetic: false, + javaEnumFields: { + javaEnumField: [], + }, + javaFields: { + javaField: [ + { + jsonType: 'io.atlasmap.java.v2.JavaField', + path: '/geoLocation/lattitude', + status: 'SUPPORTED', + fieldType: 'DOUBLE', + modifiers: { + modifier: ['PACKAGE_PRIVATE'], + }, + name: 'lattitude', + className: 'double', + canonicalClassName: 'double', + primitive: true, + synthetic: false, + }, + { + jsonType: 'io.atlasmap.java.v2.JavaField', + path: '/geoLocation/longitude', + status: 'SUPPORTED', + fieldType: 'DOUBLE', + modifiers: { + modifier: ['PACKAGE_PRIVATE'], + }, + name: 'longitude', + className: 'double', + canonicalClassName: 'double', + primitive: true, + synthetic: false, + }, + ], + }, + packageName: 'io.paul', + annotation: false, + annonymous: false, + enumeration: false, + localClass: false, + memberClass: false, + uri: 'atlas:java?className=io.paul.GeoLocation', + interface: false, + }, + ], + }, + packageName: 'io.paul', + annotation: false, + annonymous: false, + enumeration: false, + localClass: false, + memberClass: false, + uri: 'atlas:java?className=io.paul.Bicycle', + interface: false, + }, + executionTime: 247, + }, +}; + +const XMLSchemaSource = { + XmlInspectionResponse: { + jsonType: 'io.atlasmap.xml.v2.XmlInspectionResponse', + xmlDocument: { + jsonType: 'io.atlasmap.xml.v2.XmlDocument', + fields: { + field: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/tns:request', + fieldType: 'COMPLEX', + name: 'tns:request', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/tns:request/tns:body', + fieldType: 'COMPLEX', + name: 'tns:body', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/tns:request/tns:body/Pet', + fieldType: 'COMPLEX', + name: 'Pet', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/id', + fieldType: 'DECIMAL', + restrictions: { + restriction: [], + }, + name: 'id', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/tns:request/tns:body/Pet/Category', + fieldType: 'COMPLEX', + name: 'Category', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/Category/id', + fieldType: 'DECIMAL', + restrictions: { + restriction: [], + }, + name: 'id', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/Category/name', + fieldType: 'STRING', + restrictions: { + restriction: [], + }, + name: 'name', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/name', + fieldType: 'STRING', + restrictions: { + restriction: [], + }, + name: 'name', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/tns:request/tns:body/Pet/photoUrl', + fieldType: 'COMPLEX', + name: 'photoUrl', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/photoUrl/photoUrl', + fieldType: 'STRING', + restrictions: { + restriction: [], + }, + name: 'photoUrl', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/tns:request/tns:body/Pet/tag', + fieldType: 'COMPLEX', + name: 'tag', + xmlFields: { + xmlField: [ + { + jsonType: + 'io.atlasmap.xml.v2.XmlComplexType', + collectionType: 'LIST', + path: '/tns:request/tns:body/Pet/tag/Tag', + fieldType: 'COMPLEX', + name: 'Tag', + xmlFields: { + xmlField: [ + { + jsonType: + 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/tag/Tag/id', + fieldType: 'DECIMAL', + restrictions: { + restriction: [], + }, + name: 'id', + }, + { + jsonType: + 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/tag/Tag/name', + fieldType: 'STRING', + restrictions: { + restriction: [], + }, + name: 'name', + }, + ], + }, + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + path: '/tns:request/tns:body/Pet/status', + fieldType: 'STRING', + restrictions: { + restriction: [], + }, + name: 'status', + }, + ], + }, + }, + ], + }, + }, + ], + }, + }, + ], + }, + xmlNamespaces: { + xmlNamespace: [ + { + alias: 'tns', + uri: 'http://syndesis.io/v1/swagger-connector-template/request', + }, + ], + }, + }, + executionTime: 65, + }, +}; + +const XMLInstanceSource = { + XmlInspectionResponse: { + jsonType: 'io.atlasmap.xml.v2.XmlInspectionResponse', + xmlDocument: { + jsonType: 'io.atlasmap.xml.v2.XmlDocument', + fields: { + field: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/ns:XmlOE', + fieldType: 'COMPLEX', + name: 'ns:XmlOE', + typeName: + 'http://atlasmap.io/xml/test/v2 atlas-xml-test-model-v2.xsd ', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:orderId', + path: '/ns:XmlOE/ns:orderId', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:orderId', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/ns:XmlOE/ns:Address', + fieldType: 'COMPLEX', + name: 'ns:Address', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:addressLine1', + path: '/ns:XmlOE/ns:Address/ns:addressLine1', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:addressLine1', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:addressLine2', + path: '/ns:XmlOE/ns:Address/ns:addressLine2', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:addressLine2', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:city', + path: '/ns:XmlOE/ns:Address/ns:city', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:city', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:state', + path: '/ns:XmlOE/ns:Address/ns:state', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:state', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:zipCode', + path: '/ns:XmlOE/ns:Address/ns:zipCode', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:zipCode', + }, + ], + }, + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlComplexType', + path: '/ns:XmlOE/ns:Contact', + fieldType: 'COMPLEX', + name: 'ns:Contact', + xmlFields: { + xmlField: [ + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:firstName', + path: '/ns:XmlOE/ns:Contact/ns:firstName', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:firstName', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:lastName', + path: '/ns:XmlOE/ns:Contact/ns:lastName', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:lastName', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:phoneNumber', + path: '/ns:XmlOE/ns:Contact/ns:phoneNumber', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:phoneNumber', + }, + { + jsonType: 'io.atlasmap.xml.v2.XmlField', + value: 'ns:zipCode', + path: '/ns:XmlOE/ns:Contact/ns:zipCode', + status: 'SUPPORTED', + fieldType: 'STRING', + name: 'ns:zipCode', + }, + ], + }, + }, + ], + }, + }, + ], + }, + xmlNamespaces: { + xmlNamespace: [ + { + alias: 'xsi', + uri: 'http://www.w3.org/2001/XMLSchema-instance', + }, + { + alias: 'ns', + uri: 'http://atlasmap.io/xml/test/v2', + }, + ], + }, + }, + executionTime: 26, + }, +}; + +export const mappings: IAtlasmapMapping[] = [ + { + id: 'a', + name: 'Many To One(Concatenate)', + sourceFields: [ + { + id: 'JSONInstanceSource-source-/order/address/city', + name: 'JSONInstanceSource-source-/order/address/city', + } as IAtlasmapMappedField, + { + id: 'JSONInstanceSource-source-/order/address/state', + name: 'JSONInstanceSource-source-/order/address/state', + } as IAtlasmapMappedField, + ], + targetFields: [ + { + id: 'XMLInstanceSource-target-/ns:XmlOE/ns:Address/ns:addressLine1', + name: 'XMLInstanceSource-target-/ns:XmlOE/ns:Address/ns:addressLine1', + } as IAtlasmapMappedField, + ], + mapping: {} as MappingModel, + }, + { + id: 'b', + name: 'One to Many (Split)', + sourceFields: [ + { + id: 'JSONInstanceSource-source-/primitives/numberPrimitive', + name: 'JSONInstanceSource-source-/primitives/numberPrimitive', + } as IAtlasmapMappedField, + ], + targetFields: [ + { + id: 'io.paul.Bicycle-target-/cadence', + name: 'io.paul.Bicycle-target-/cadence', + } as IAtlasmapMappedField, + { + id: 'io.paul.Bicycle-target-/gear', + name: 'io.paul.Bicycle-target-/gear', + } as IAtlasmapMappedField, + { + id: 'io.paul.Bicycle-target-/speed', + name: 'io.paul.Bicycle-target-/speed', + } as IAtlasmapMappedField, + ], + mapping: {} as MappingModel, + }, + { + id: 'c', + name: 'Many to One (Concatenate)', + sourceFields: [ + { + id: 'JSONInstanceSource-source-/primitives/stringPrimitive', + name: 'JSONInstanceSource-source-/primitives/stringPrimitive', + } as IAtlasmapMappedField, + { + id: 'JSONInstanceSource-source-/order/orderId', + name: 'JSONInstanceSource-source-/order/orderId', + } as IAtlasmapMappedField, + { + id: 'JSONSchemaSource-/primitives/stringPrimitive', + name: 'JSONSchemaSource-/primitives/stringPrimitive', + } as IAtlasmapMappedField, + ], + targetFields: [ + { + id: 'io.paul.Bicycle-target-/serialId', + name: 'io.paul.Bicycle-target-/serialId', + } as IAtlasmapMappedField, + ], + mapping: {} as MappingModel, + }, +]; + +export const properties: IAtlasmapDocument = { + id: 'properties', + name: 'Properties', + type: 'properties', + fields: [ + { + id: 'boston', + name: 'boston = boston', + value: '', + type: 'STRING', + path: '/boston', + scope: 'current', + mappings: [], + hasTransformations: false, + isAttribute: false, + isCollection: false, + isInCollection: false, + isConnected: false, + isDisabled: false, + amField: {} as IAtlasmapField['amField'], + enumeration: false, + }, + { + id: 'prop-city', + name: 'prop-city = boston', + value: '', + type: 'STRING', + path: '/prop-city', + scope: 'current', + mappings: [], + hasTransformations: false, + isAttribute: false, + isCollection: false, + isInCollection: false, + isConnected: false, + isDisabled: false, + amField: {} as IAtlasmapField['amField'], + enumeration: false, + }, + ], +}; + +export const constants: IAtlasmapDocument = { + id: 'constants', + name: 'Constants', + type: 'constants', + fields: [ + { + id: 'Boston', + name: 'Boston', + value: 'Boston', + type: '', + path: '/Boston', + scope: 'current', + mappings: [], + hasTransformations: false, + isAttribute: false, + isCollection: false, + isInCollection: false, + isConnected: false, + isDisabled: false, + amField: {} as IAtlasmapField['amField'], + enumeration: false, + }, + ], +}; + +export const sources: IAtlasmapDocument[] = [ + { + id: 'JSONInstanceSource', + name: 'JSONInstanceSource', + type: 'JSON', + fields: jsonToFieldGroup( + mockJSONInstanceSource, + 'JSONInstanceSource-source', + mappings, + ), + }, + { + id: 'JSONSchemaSource', + name: 'JSONSchemaSource', + type: 'JSON', + fields: jsonToFieldGroup( + mockJSONSchemaSource, + 'JSONSchemaSource-source', + mappings, + ), + }, +]; + +export const targets: IAtlasmapDocument[] = [ + { + id: 'XMLInstanceSource', + name: 'XMLInstanceSource', + type: 'XML', + fields: xmlToFieldGroup( + XMLInstanceSource, + 'XMLInstanceSource-target', + mappings, + ), + }, + { + id: 'XMLSchemaSource', + name: 'XMLSchemaSource', + type: 'XML', + fields: xmlToFieldGroup( + XMLSchemaSource, + 'XMLSchemaSource-target', + mappings, + ), + }, + { + id: 'io.paul.Bicycle', + name: 'io.paul.Bicycle', + type: 'JAVA', + fields: javaToFieldGroup(ioPaulBicycle, 'io.paul.Bicycle-target', mappings), + }, +]; diff --git a/packages/ui/tsconfig.cjs.json b/packages/ui/tsconfig.cjs.json new file mode 100644 index 000000000..afed6cc1b --- /dev/null +++ b/packages/ui/tsconfig.cjs.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.esm.json", + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "target": "ES5", + "outDir": "lib/cjs", + }, +} diff --git a/packages/ui/tsconfig.esm.json b/packages/ui/tsconfig.esm.json new file mode 100644 index 000000000..6bd76de1a --- /dev/null +++ b/packages/ui/tsconfig.esm.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": false, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": false, + "sourceMap": true, + "declaration": true, + "jsx": "react-jsx", + "outDir": "lib/esm", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + /* Typings */ + "types": [ + "@testing-library/jest-dom", + ] + }, + "include": ["src/public-api.ts","src/testing-api.ts", "src/global.d.ts"], + "exclude": ["src/**/*.test.tsx", "src/**/*.test.ts"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json new file mode 100644 index 000000000..4262a143e --- /dev/null +++ b/packages/ui/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + /* Typings */ + "types": [ + "@testing-library/jest-dom", + "@types/jest", + "@types/node", + ] + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/ui/tsconfig.node.json b/packages/ui/tsconfig.node.json new file mode 100644 index 000000000..c7f60c62b --- /dev/null +++ b/packages/ui/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.js"] +} diff --git a/packages/ui/vite.config.js b/packages/ui/vite.config.js new file mode 100644 index 000000000..a4799fbc3 --- /dev/null +++ b/packages/ui/vite.config.js @@ -0,0 +1,15 @@ +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + react(), + ], + build: { + outDir: './dist', + sourcemap: true, + emptyOutDir: true, + }, + base: './', +}); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..2a7dd1a49 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4940 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.3.2": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff" + integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.23.5": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helpers@^7.23.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + +"@babel/plugin-transform-react-jsx-self@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz#ed3e7dadde046cce761a8e3cf003a13d1a7972d9" + integrity sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-source@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz#03527006bdc8775247a78643c51d4e715fe39a3e" + integrity sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/runtime@^7.2.0": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" + integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.9.2": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" + integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@hutson/parse-repository-url@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz#bf344cc75136039bc41bcf5d1ddbcb40405fca3b" + integrity sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.22" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" + integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lerna-lite/cli@3.2.1", "@lerna-lite/cli@^3.0.0": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@lerna-lite/cli/-/cli-3.2.1.tgz#d4bc5286e5d5520d9c5eb9fe538d218a9c9083d3" + integrity sha512-aF7lfe+TOmL+YxaKgJcHCfFT/nZ3ZI+icZTEVM80LaEIhVvgBJZSqabGFu1PbQ9onvBdKX2/FYaWhJz+fO7cIQ== + dependencies: + "@lerna-lite/core" "3.2.1" + "@lerna-lite/init" "3.2.1" + dedent "^1.5.1" + dotenv "^16.3.1" + import-local "^3.1.0" + load-json-file "^7.0.1" + npmlog "^7.0.1" + yargs "^17.7.2" + +"@lerna-lite/core@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@lerna-lite/core/-/core-3.2.1.tgz#e69feae6df039909c8375766c40517bd103b043c" + integrity sha512-vqH4bpg0vaAPwzDGnyTR4RRjffZDhuSRJSa+lKhGH5NymM15KskB2HGZtRvSutX2Q5MZExTQ9IijWz7l139gaA== + dependencies: + "@npmcli/run-script" "^7.0.3" + chalk "^5.3.0" + clone-deep "^4.0.1" + config-chain "^1.1.13" + cosmiconfig "^9.0.0" + dedent "^1.5.1" + execa "^8.0.1" + fs-extra "^11.2.0" + glob-parent "^6.0.2" + globby "^14.0.0" + inquirer "^9.2.12" + is-ci "^3.0.1" + json5 "^2.2.3" + load-json-file "^7.0.1" + minimatch "^9.0.3" + npm-package-arg "^11.0.1" + npmlog "^7.0.1" + p-map "^7.0.1" + p-queue "^8.0.1" + resolve-from "^5.0.0" + semver "^7.5.4" + slash "^5.1.0" + strong-log-transformer "^2.1.0" + write-file-atomic "^5.0.1" + write-json-file "^5.0.0" + write-pkg "^6.0.1" + +"@lerna-lite/init@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@lerna-lite/init/-/init-3.2.1.tgz#e5b8880c7978495b5851a2a15244bf6dd9fa1e84" + integrity sha512-DuEsi4Jii4nmP+c7aID3L5viXkMKhWGKRtI798pcnNjB3dyVN22dZNCDzhiaetMo+ayTsLTe50UDpf5+yxamNg== + dependencies: + "@lerna-lite/core" "3.2.1" + fs-extra "^11.2.0" + p-map "^7.0.1" + write-json-file "^5.0.0" + +"@lerna-lite/publish@^3.0.0": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@lerna-lite/publish/-/publish-3.2.1.tgz#d30c098d225f19036d5ac1a53665b379236c59fc" + integrity sha512-a9xE0OV6NeM0l+9rKrkmDeDyNg051QKY4a9zJAaiUJKbdn54z6WvHdaq8PUzM627Fg6cTxYdXtP1elodXGPxmA== + dependencies: + "@lerna-lite/cli" "3.2.1" + "@lerna-lite/core" "3.2.1" + "@lerna-lite/version" "3.2.1" + "@npmcli/arborist" "^7.3.0" + byte-size "^8.1.1" + chalk "^5.3.0" + columnify "^1.6.0" + fs-extra "^11.2.0" + glob "^10.3.10" + has-unicode "^2.0.1" + libnpmaccess "^8.0.2" + libnpmpublish "^9.0.3" + normalize-path "^3.0.0" + npm-package-arg "^11.0.1" + npm-packlist "^8.0.2" + npm-registry-fetch "^16.1.0" + npmlog "^7.0.1" + p-map "^7.0.1" + p-pipe "^4.0.0" + pacote "^17.0.5" + pify "^6.1.0" + read-package-json "^7.0.0" + semver "^7.5.4" + ssri "^10.0.5" + tar "^6.2.0" + temp-dir "^3.0.0" + +"@lerna-lite/version@3.2.1", "@lerna-lite/version@^3.0.0": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@lerna-lite/version/-/version-3.2.1.tgz#15cbe4c5070eaed5f2b1a7e13883ff56805b1f5f" + integrity sha512-cMXSTOjAQgtsUCPLXna/Uflxbmppkgxa9yulwCnUGsEZP0G8DfvQAaIpb1QOgxy49mFzPpcw51VDt4zfcF0MHA== + dependencies: + "@lerna-lite/cli" "3.2.1" + "@lerna-lite/core" "3.2.1" + "@octokit/plugin-enterprise-rest" "^6.0.1" + "@octokit/rest" "^20.0.2" + chalk "^5.3.0" + conventional-changelog-angular "^7.0.0" + conventional-changelog-core "^7.0.0" + conventional-changelog-writer "^7.0.1" + conventional-commits-parser "^5.0.0" + conventional-recommended-bump "^9.0.0" + dedent "^1.5.1" + fs-extra "^11.2.0" + get-stream "^8.0.1" + git-url-parse "^14.0.0" + graceful-fs "^4.2.11" + is-stream "^3.0.0" + load-json-file "^7.0.1" + make-dir "^4.0.0" + minimatch "^9.0.3" + new-github-release-url "^2.0.0" + node-fetch "^3.3.2" + npm-package-arg "^11.0.1" + npmlog "^7.0.1" + p-map "^7.0.1" + p-pipe "^4.0.0" + p-reduce "^3.0.0" + pify "^6.1.0" + semver "^7.5.4" + slash "^5.1.0" + temp-dir "^3.0.0" + uuid "^9.0.1" + write-json-file "^5.0.0" + +"@ljharb/through@^2.3.11": + version "2.3.11" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" + integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== + dependencies: + call-bind "^1.0.2" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/agent@^2.0.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.0.tgz#e81f00fdb2a670750ff7731bbefb47ecbf0ccf44" + integrity sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.1" + +"@npmcli/arborist@^7.3.0": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.3.1.tgz#7f3f9bed8981584b040483a2f4b126fabcd06674" + integrity sha512-qjMywu8clYczZE2SlLZWVOujAyiJEHHSEzapIXpuMURRH/tfY0KPKvGPyjvV041QsGN3tsWeaTUHcOi59wscSw== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/fs" "^3.1.0" + "@npmcli/installed-package-contents" "^2.0.2" + "@npmcli/map-workspaces" "^3.0.2" + "@npmcli/metavuln-calculator" "^7.0.0" + "@npmcli/name-from-folder" "^2.0.0" + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.0.0" + "@npmcli/query" "^3.0.1" + "@npmcli/run-script" "^7.0.2" + bin-links "^4.0.1" + cacache "^18.0.0" + common-ancestor-path "^1.0.1" + hosted-git-info "^7.0.1" + json-parse-even-better-errors "^3.0.0" + json-stringify-nice "^1.1.4" + minimatch "^9.0.0" + nopt "^7.0.0" + npm-install-checks "^6.2.0" + npm-package-arg "^11.0.1" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^16.0.0" + npmlog "^7.0.1" + pacote "^17.0.4" + parse-conflict-json "^3.0.0" + proc-log "^3.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^3.0.1" + read-package-json-fast "^3.0.2" + semver "^7.3.7" + ssri "^10.0.5" + treeverse "^3.0.0" + walk-up-path "^3.0.1" + +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^5.0.0": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c" + integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^3.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" + integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== + dependencies: + npm-bundled "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +"@npmcli/map-workspaces@^3.0.2": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" + integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== + dependencies: + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" + +"@npmcli/metavuln-calculator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.0.0.tgz#fb59245926d7f677db904177f9aca15ac883d6cb" + integrity sha512-Pw0tyX02VkpqlIQlG2TeiJNsdrecYeUU0ubZZa9pi3N37GCsxI+en43u4hYFdq+eSx1A9a9vwFAUyqEtKFsbHQ== + dependencies: + cacache "^18.0.0" + json-parse-even-better-errors "^3.0.0" + pacote "^17.0.0" + semver "^7.3.5" + +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@npmcli/node-gyp@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== + +"@npmcli/package-json@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91" + integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g== + dependencies: + "@npmcli/git" "^5.0.0" + glob "^10.2.2" + hosted-git-info "^7.0.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + proc-log "^3.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz#a836de2f42a2245d629cf6fbb8dd6c74c74c55af" + integrity sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg== + dependencies: + which "^4.0.0" + +"@npmcli/query@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6" + integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA== + dependencies: + postcss-selector-parser "^6.0.10" + +"@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.2", "@npmcli/run-script@^7.0.3": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.4.tgz#9f29aaf4bfcf57f7de2a9e28d1ef091d14b2e6eb" + integrity sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg== + dependencies: + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.0.0" + "@npmcli/promise-spawn" "^7.0.0" + node-gyp "^10.0.0" + which "^4.0.0" + +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + +"@octokit/core@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" + integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== + dependencies: + "@octokit/auth-token" "^4.0.0" + "@octokit/graphql" "^7.0.0" + "@octokit/request" "^8.0.2" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^9.0.0": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" + integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== + dependencies: + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" + integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== + dependencies: + "@octokit/request" "^8.0.1" + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc" + integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw== + +"@octokit/plugin-enterprise-rest@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^9.0.0": + version "9.1.5" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480" + integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg== + dependencies: + "@octokit/types" "^12.4.0" + +"@octokit/plugin-request-log@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz#260fa6970aa97bbcbd91f99f3cd812e2b285c9f1" + integrity sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA== + +"@octokit/plugin-rest-endpoint-methods@^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz#eeaa4de97a2ae26404dea30ce3e17b11928e027c" + integrity sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q== + dependencies: + "@octokit/types" "^12.3.0" + +"@octokit/request-error@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" + integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== + dependencies: + "@octokit/types" "^12.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": + version "8.1.6" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.1.6.tgz#a76a859c30421737a3918b40973c2ff369009571" + integrity sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ== + dependencies: + "@octokit/endpoint" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^20.0.2": + version "20.0.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.0.2.tgz#5cc8871ba01b14604439049e5f06c74b45c99594" + integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ== + dependencies: + "@octokit/core" "^5.0.0" + "@octokit/plugin-paginate-rest" "^9.0.0" + "@octokit/plugin-request-log" "^4.0.0" + "@octokit/plugin-rest-endpoint-methods" "^10.0.0" + +"@octokit/types@^12.0.0", "@octokit/types@^12.3.0", "@octokit/types@^12.4.0": + version "12.4.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.4.0.tgz#8f97b601e91ce6b9776ed8152217e77a71be7aac" + integrity sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ== + dependencies: + "@octokit/openapi-types" "^19.1.0" + +"@patternfly/react-core@^5.1.1", "@patternfly/react-core@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@patternfly/react-core/-/react-core-5.1.2.tgz#dcf643ce369452565bc471e2fe4e597182400306" + integrity sha512-MeSasp7PgkqlirlbbGuEj6j3KqXVoNkE3c3N6rfxTZOF025ullDJjtzf/L/Fiyht4tH1uNCtkdlpnea6jqTMPg== + dependencies: + "@patternfly/react-icons" "^5.1.2" + "@patternfly/react-styles" "^5.1.2" + "@patternfly/react-tokens" "^5.1.2" + focus-trap "7.5.2" + react-dropzone "^14.2.3" + tslib "^2.5.0" + +"@patternfly/react-icons@^5.1.1", "@patternfly/react-icons@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-5.1.2.tgz#c5c1a733230261a4747cd5fc88c946d4f290526c" + integrity sha512-hgf3OchvNyCcxqDrRJCkxauFdxENtVX2d6uTkMfOQWP3hs8hqYGHR5S0pe2teJ1SwAs2Rgtf7ezzmzKAouAjkw== + +"@patternfly/react-styles@^5.1.1", "@patternfly/react-styles@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@patternfly/react-styles/-/react-styles-5.1.2.tgz#89fa082f728e2724f89455a7049b3a9f6e48c4e0" + integrity sha512-rGNo8MstZG2r3yDS1tWwYDctK1qWW5RT1UwKF1DrQfhZ8ruEEL6m2ZXXM0u62hmM3qq4Q8h5lgn/bVHBnOHSLA== + +"@patternfly/react-table@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-5.1.2.tgz#5541807f9770e32d29d7049470a6f71a7957e89d" + integrity sha512-C+ctkW6oWmdVhGv1rawVlo54baSu5G3ja3ZDtBjVsgMmpsGD0GIBXpvwtFO+OJVeY7T6qXHInMyuW3QNz/0rog== + dependencies: + "@patternfly/react-core" "^5.1.2" + "@patternfly/react-icons" "^5.1.2" + "@patternfly/react-styles" "^5.1.2" + "@patternfly/react-tokens" "^5.1.2" + lodash "^4.17.19" + tslib "^2.5.0" + +"@patternfly/react-tokens@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-5.1.2.tgz#9cf5c65c4e67b1686412b88af7465b18348a16ec" + integrity sha512-hu/6kEEMnyDc4GiMiaEau3kYq0BZoB3X1tZLcNfg9zQZnOydUgaLcUgR8+IlMF/nVVIqNjZF2RA/5lmKAVz2cQ== + +"@patternfly/react-topology@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@patternfly/react-topology/-/react-topology-5.1.0.tgz#75428154c3c4e7411f3baf6fc00fb8d6b6581ec9" + integrity sha512-Qzu7GMxqCsRvQj4RF2AHOGSp0nPpVuDE2xpdAaj/yCKz0cqHhvrwpC4+qyVL3mlqIs5qb+Fxm2d81Do7YIx3ig== + dependencies: + "@patternfly/react-core" "^5.1.1" + "@patternfly/react-icons" "^5.1.1" + "@patternfly/react-styles" "^5.1.1" + "@types/d3" "^7.4.0" + "@types/d3-force" "^1.2.1" + "@types/dagre" "0.7.42" + "@types/react-measure" "^2.0.6" + d3 "^7.8.0" + dagre "0.8.2" + lodash "^4.17.19" + mobx "^6.9.0" + mobx-react "^7.6.0" + point-in-svg-path "^1.0.1" + popper.js "^1.16.1" + react-measure "^2.3.0" + tslib "^2.0.0" + webcola "3.4.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@react-dnd/asap@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@react-dnd/asap/-/asap-5.0.2.tgz#1f81f124c1cd6f39511c11a881cfb0f715343488" + integrity sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A== + +"@react-dnd/invariant@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@react-dnd/invariant/-/invariant-4.0.2.tgz#b92edffca10a26466643349fac7cdfb8799769df" + integrity sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw== + +"@react-dnd/shallowequal@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz#d1b4befa423f692fa4abf1c79209702e7d8ae4b4" + integrity sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA== + +"@rollup/rollup-android-arm-eabi@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" + integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== + +"@rollup/rollup-android-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" + integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== + +"@rollup/rollup-darwin-arm64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" + integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== + +"@rollup/rollup-darwin-x64@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" + integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== + +"@rollup/rollup-linux-arm-gnueabihf@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" + integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== + +"@rollup/rollup-linux-arm64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" + integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== + +"@rollup/rollup-linux-arm64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" + integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== + +"@rollup/rollup-linux-riscv64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" + integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== + +"@rollup/rollup-linux-x64-gnu@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" + integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== + +"@rollup/rollup-linux-x64-musl@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" + integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== + +"@rollup/rollup-win32-arm64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" + integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== + +"@rollup/rollup-win32-ia32-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" + integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== + +"@rollup/rollup-win32-x64-msvc@4.9.6": + version "4.9.6" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" + integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== + +"@sigstore/bundle@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.1.tgz#7fad9a1728939301607103722ac6f2a083d2f09a" + integrity sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg== + dependencies: + "@sigstore/protobuf-specs" "^0.2.1" + +"@sigstore/core@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-0.2.0.tgz#2d8ecae2c38a59a52b1dcbd6110014d88de08a80" + integrity sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA== + +"@sigstore/protobuf-specs@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== + +"@sigstore/sign@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.1.tgz#b37383db1f25ab20cfec980d23ce08e6f99e6caf" + integrity sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ== + dependencies: + "@sigstore/bundle" "^2.1.1" + "@sigstore/core" "^0.2.0" + "@sigstore/protobuf-specs" "^0.2.1" + make-fetch-happen "^13.0.0" + +"@sigstore/tuf@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.0.tgz#de64925ea10b16f3a7e77535d91eaf22be4dd904" + integrity sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q== + dependencies: + "@sigstore/protobuf-specs" "^0.2.1" + tuf-js "^2.2.0" + +"@sigstore/verify@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-0.1.0.tgz#c017aadb1a516ab4a10651cece29463aa9540bfe" + integrity sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA== + dependencies: + "@sigstore/bundle" "^2.1.1" + "@sigstore/core" "^0.2.0" + "@sigstore/protobuf-specs" "^0.2.1" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sindresorhus/merge-streams@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90" + integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw== + +"@testing-library/jest-dom@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.3.0.tgz#e8d308e0c0e91d882340cbbfdea0e4daa7987d36" + integrity sha512-hJVIrkFizEQxoWsGBlycTcQhrpoCH4DhXfrnHFFXgkx3Xdm15zycsq5Ep+vpw4W8S0NJa8cxDHcuJib+1tEbhg== + dependencies: + "@adobe/css-tools" "^4.3.2" + "@babel/runtime" "^7.9.2" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.6.3" + lodash "^4.17.15" + redent "^3.0.0" + +"@tufjs/canonical-json@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" + integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== + +"@tufjs/models@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.0.tgz#c7ab241cf11dd29deb213d6817dabb8c99ce0863" + integrity sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg== + dependencies: + "@tufjs/canonical-json" "2.0.0" + minimatch "^9.0.3" + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/d3-array@*": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" + integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz#096efdf55eb97480e3f5621ff9a8da552f0961e7" + integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== + +"@types/d3-drag@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.9.tgz#dd96ccefba4386fe4ff36b8e4ee4e120c21fcf29" + integrity sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA== + +"@types/d3-force@^1.2.1": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.2.7.tgz#b066d91ac3b8f19c35a60b49e89e99f60187460a" + integrity sha512-zySqZfnxn67RVEGWzpD9dQA0AbNIp4Rj0qGvAuUdUNfGLrwuGCbEGAGze5hEdNaHJKQT2gTqr6j+qAzncm11ew== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" + integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz#8d3638df273ec90da34b3ac89d8784c59708cb0d" + integrity sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.2.tgz#4327f4a05d475cf9be46a93fc2e0f8d23380805a" + integrity sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" + integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== + +"@types/d3-scale-chromatic@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz#fc0db9c10e789c351f4c42d96f31f2e4df8f5644" + integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== + +"@types/d3-scale@*": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" + integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.10.tgz#98cdcf986d0986de6912b5892e7c015a95ca27fe" + integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg== + +"@types/d3-shape@*": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" + integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.3.tgz#3c186bbd9d12b9d84253b6be6487ca56b54f88be" + integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.8.tgz#677707f5eed5b24c66a1918cde05963021351a8f" + integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.0": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + +"@types/dagre@0.7.42": + version "0.7.42" + resolved "https://registry.yarnpkg.com/@types/dagre/-/dagre-0.7.42.tgz#2b0cd7678d5fc273df7816a88b8b34016e3a5d85" + integrity sha512-knVdi1Ul8xYgJ0wdhQ+/2YGJFKJFa/5srcPII9zvOs4KhsHfpnFrSTQXATYmjslglxRMif3Lg+wEZ0beag+94A== + +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/geojson@*": + version "7946.0.13" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.13.tgz#e6e77ea9ecf36564980a861e24e62a095988775e" + integrity sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.11": + version "29.5.11" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" + integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/node@*", "@types/node@^20.11.6": + version "20.11.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.6.tgz#6adf4241460e28be53836529c033a41985f85b6e" + integrity sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q== + dependencies: + undici-types "~5.26.4" + +"@types/normalize-package-data@^2.4.1": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/prop-types@*": + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== + +"@types/react-dom@^18.2.18": + version "18.2.18" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd" + integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw== + dependencies: + "@types/react" "*" + +"@types/react-measure@^2.0.6": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@types/react-measure/-/react-measure-2.0.12.tgz#e8ba05057357b9529aa4115064fe7ea77549f54c" + integrity sha512-Y6V11CH6bU7RhqrIdENPwEUZlPXhfXNGylMNnGwq5TAEs2wDoBA3kSVVM/EQ8u72sz5r9ja+7W8M8PIVcS841Q== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.2.48" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" + integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@vitejs/plugin-react@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" + integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + dependencies: + "@babel/core" "^7.23.5" + "@babel/plugin-transform-react-jsx-self" "^7.23.3" + "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.0" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-escapes@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" + integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== + dependencies: + type-fest "^3.0.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a" + integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +attr-accept@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" + integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +bin-links@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" + integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA== + dependencies: + cmd-shim "^6.0.0" + npm-normalize-package-bin "^3.0.0" + read-cmd-shim "^4.0.0" + write-file-atomic "^5.0.0" + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +byte-size@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" + integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== + +cacache@^18.0.0: + version "18.0.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.2.tgz#fd527ea0f03a603be5c0da5805635f8eef00c60c" + integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + +call-bind@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +caniuse-lite@^1.0.30001565: + version "1.0.30001579" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz#45c065216110f46d6274311a4b3fcf6278e0852a" + integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== + +chalk@5.3.0, chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +ci-info@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" + integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + dependencies: + slice-ansi "^5.0.0" + string-width "^7.0.0" + +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cmd-shim@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" + integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +columnify@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" + +commander@11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@7: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +config-chain@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +conventional-changelog-angular@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-core@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-7.0.0.tgz#d8879ebb8692cd1fa8126c209e1b3af34d94e113" + integrity sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg== + dependencies: + "@hutson/parse-repository-url" "^5.0.0" + add-stream "^1.0.0" + conventional-changelog-writer "^7.0.0" + conventional-commits-parser "^5.0.0" + git-raw-commits "^4.0.0" + git-semver-tags "^7.0.0" + hosted-git-info "^7.0.0" + normalize-package-data "^6.0.0" + read-pkg "^8.0.0" + read-pkg-up "^10.0.0" + +conventional-changelog-preset-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.1.0.tgz#996bc40d516471c5bf8248fdc30222563b9bcfe6" + integrity sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA== + +conventional-changelog-writer@^7.0.0, conventional-changelog-writer@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz#e64ef74fa8e773cab4124af217f3f02b29eb0a9c" + integrity sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA== + dependencies: + conventional-commits-filter "^4.0.0" + handlebars "^4.7.7" + json-stringify-safe "^5.0.1" + meow "^12.0.1" + semver "^7.5.2" + split2 "^4.0.0" + +conventional-commits-filter@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz#845d713e48dc7d1520b84ec182e2773c10c7bf7f" + integrity sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A== + +conventional-commits-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" + integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== + dependencies: + JSONStream "^1.3.5" + is-text-path "^2.0.0" + meow "^12.0.1" + split2 "^4.0.0" + +conventional-recommended-bump@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-9.0.0.tgz#2910b08b10e6c705301335ab916e7438eba5907f" + integrity sha512-HR1yD0G5HgYAu6K0wJjLd7QGRK8MQDqqj6Tn1n/ja1dFwBCE6QmV+iSgQ5F7hkx7OUR/8bHpxJqYtXj2f/opPQ== + dependencies: + conventional-changelog-preset-loader "^4.1.0" + conventional-commits-filter "^4.0.0" + conventional-commits-parser "^5.0.0" + git-raw-commits "^4.0.0" + git-semver-tags "^7.0.0" + meow "^12.0.1" + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + +cross-spawn@^7.0.0, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +d3-dispatch@1, d3-dispatch@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" + integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +d3-drag@^1.0.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" + integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== + dependencies: + d3-dispatch "1" + d3-selection "1" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" + integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4, d3-scale@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +d3-selection@1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" + integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3, d3-shape@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +d3-shape@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +d3-timer@^1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.8.0: + version "7.8.5" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" + integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.2.tgz#755b79f4d5499d63cf74c3368fb08add93eceafe" + integrity sha512-TEOOGZOkCOgCG7AoUIq64sJ3d21SMv8tyoqteLpX+UsUsS9Qw8iap4hhogXY4oB3r0bbZuAjO0atAilgCmsE0Q== + dependencies: + graphlib "^2.1.5" + lodash "^4.17.4" + +dargs@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-8.1.0.tgz#a34859ea509cbce45485e5aa356fef70bfcc7272" + integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +dedent@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + +deepmerge-ts@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/deepmerge-ts/-/deepmerge-ts-5.1.0.tgz#c55206cc4c7be2ded89b9c816cf3608884525d7a" + integrity sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +delaunator@5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" + integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== + dependencies: + robust-predicates "^3.0.2" + +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-indent@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25" + integrity sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +dnd-core@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/dnd-core/-/dnd-core-16.0.1.tgz#a1c213ed08961f6bd1959a28bb76f1a868360d19" + integrity sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng== + dependencies: + "@react-dnd/asap" "^5.0.1" + "@react-dnd/invariant" "^4.0.1" + redux "^4.2.0" + +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv@^16.3.1: + version "16.4.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.1.tgz#1d9931f1d3e5d2959350d1250efab299561f7f11" + integrity sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +electron-to-chromium@^1.4.601: + version "1.4.645" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.645.tgz#117f964252eb2f0ff00fc7360cb3080e2cf66e3c" + integrity sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw== + +emoji-regex@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1, error-ex@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@8.0.1, execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +expect@^29.0.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +external-editor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-xml-parser@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.3.tgz#aeaf5778392329f17168c40c51bcbfec8ff965be" + integrity sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg== + dependencies: + strnum "^1.0.5" + +fastq@^1.6.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== + dependencies: + reusify "^1.0.4" + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== + dependencies: + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" + +file-saver@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" + integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== + +file-selector@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.6.0.tgz#fa0a8d9007b829504db4d07dd4de0310b65287dc" + integrity sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw== + dependencies: + tslib "^2.4.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +focus-trap@7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" + integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw== + dependencies: + tabbable "^6.2.0" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gauge@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" + integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^4.0.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-node-dimensions@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz#fb7b4bb57060fb4247dd51c9d690dfbec56b0823" + integrity sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +git-raw-commits@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-4.0.0.tgz#b212fd2bff9726d27c1283a1157e829490593285" + integrity sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== + dependencies: + dargs "^8.0.0" + meow "^12.0.1" + split2 "^4.0.0" + +git-semver-tags@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-7.0.1.tgz#74426e7d7710e5a263655e78b4c651eed804d63e" + integrity sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q== + dependencies: + meow "^12.0.1" + semver "^7.5.2" + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" + integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== + dependencies: + git-up "^7.0.0" + +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.2.2, glob@^10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.0.tgz#ea9c062a3614e33f516804e778590fcf055256b9" + integrity sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ== + dependencies: + "@sindresorhus/merge-streams" "^1.0.0" + fast-glob "^3.3.2" + ignore "^5.2.4" + path-type "^5.0.0" + slash "^5.1.0" + unicorn-magic "^0.1.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphlib@^2.1.5: + version "2.1.8" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" + integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== + dependencies: + lodash "^4.17.15" + +handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + dependencies: + get-intrinsic "^1.2.2" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hosted-git-info@^7.0.0, hosted-git-info@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" + integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== + dependencies: + lru-cache "^10.0.1" + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +https-proxy-agent@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +husky@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + +iconv-lite@0.6, iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" + integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== + dependencies: + minimatch "^9.0.0" + +ignore@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + +import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@^9.2.12: + version "9.2.12" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.12.tgz#0348e9311765b7c93fce143bb1c0ef1ae879b1d7" + integrity sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q== + dependencies: + "@ljharb/through" "^2.3.11" + ansi-escapes "^4.3.2" + chalk "^5.3.0" + cli-cursor "^3.1.0" + cli-width "^4.1.0" + external-editor "^3.1.0" + figures "^5.0.0" + lodash "^4.17.21" + mute-stream "1.0.0" + ora "^5.4.1" + run-async "^3.0.0" + rxjs "^7.8.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.8.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + +is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-text-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" + integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== + dependencies: + text-extensions "^2.0.0" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-unicode-supported@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" + integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0, jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +just-diff-apply@^5.2.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== + +just-diff@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" + integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +libnpmaccess@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.2.tgz#a13a72fd5b71a1063ea54973fa56d61ec38f718f" + integrity sha512-4K+nsg3OYt4rjryP/3D5zGWluLbZaKozwj6YdtvAyxNhLhUrjCoyxHVoL5AkTJcAnjsd6/ATei52QPVvpSX9Ug== + dependencies: + npm-package-arg "^11.0.1" + npm-registry-fetch "^16.0.0" + +libnpmpublish@^9.0.3: + version "9.0.4" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.4.tgz#0222c14578088ca9a758585c36d8133b828c87ad" + integrity sha512-330o6pVsCCg77jQ/+kidyG/RiohXYQKpqmzOC4BjUDWcimb+mXptRBh1Kvy27/Zb/CStZLVrfgGc6tXf5+PE3Q== + dependencies: + ci-info "^4.0.0" + normalize-package-data "^6.0.0" + npm-package-arg "^11.0.1" + npm-registry-fetch "^16.0.0" + proc-log "^3.0.0" + semver "^7.3.7" + sigstore "^2.2.0" + ssri "^10.0.5" + +lilconfig@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lines-and-columns@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== + +lint-staged@^15.0.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.0.tgz#3111534ca58096a3c8f70b044b6e7fe21b36f859" + integrity sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ== + dependencies: + chalk "5.3.0" + commander "11.1.0" + debug "4.3.4" + execa "8.0.1" + lilconfig "3.0.0" + listr2 "8.0.0" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.4" + +listr2@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.0.0.tgz#aa7c230995f8ce378585f7c96c0c6d1cefa4700d" + integrity sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.0.0" + rfdc "^1.3.0" + wrap-ansi "^9.0.0" + +load-json-file@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-7.0.1.tgz#a3c9fde6beffb6bedb5acf104fad6bb1604e1b00" + integrity sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" + integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== + dependencies: + ansi-escapes "^6.2.0" + cli-cursor "^4.0.0" + slice-ansi "^7.0.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + +loglevel@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-fetch-happen@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" + integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== + dependencies: + "@npmcli/agent" "^2.0.0" + cacache "^18.0.0" + http-cache-semantics "^4.1.1" + is-lambda "^1.0.1" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + ssri "^10.0.0" + +meow@^12.0.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@4.0.5, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mobx-react-lite@^3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.4.3.tgz#3a4c22c30bfaa8b1b2aa48d12b2ba811c0947ab7" + integrity sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg== + +mobx-react@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.6.0.tgz#ebf0456728a9bd2e5c24fdcf9b36e285a222a7d6" + integrity sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA== + dependencies: + mobx-react-lite "^3.4.0" + +mobx@^6.9.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.12.0.tgz#72b2685ca5af031aaa49e77a4d76ed67fcbf9135" + integrity sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +mute-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +new-github-release-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-2.0.0.tgz#335189b91f52bbb9569042a7485900a205a0500b" + integrity sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ== + dependencies: + type-fest "^2.5.1" + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-gyp@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" + integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^10.3.10" + graceful-fs "^4.2.6" + make-fetch-happen "^13.0.0" + nopt "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + tar "^6.1.2" + which "^4.0.0" + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +nopt@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + dependencies: + abbrev "^2.0.0" + +normalize-package-data@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" + integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== + dependencies: + hosted-git-info "^7.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-bundled@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" + integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== + dependencies: + npm-normalize-package-bin "^3.0.0" + +npm-install-checks@^6.0.0, npm-install-checks@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@^11.0.0, npm-package-arg@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" + integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-packlist@^8.0.0, npm-packlist@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478" + integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA== + dependencies: + ignore-walk "^6.0.4" + +npm-pick-manifest@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" + integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + +npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz#10227b7b36c97bc1cf2902a24e4f710cfe62803c" + integrity sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw== + dependencies: + make-fetch-happen "^13.0.0" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^11.0.0" + proc-log "^3.0.0" + +npm-run-path@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + dependencies: + path-key "^4.0.0" + +npmlog@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== + dependencies: + are-we-there-yet "^4.0.0" + console-control-strings "^1.1.0" + gauge "^5.0.0" + set-blocking "^2.0.0" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.1.tgz#1faf994e597160f7851882926bfccabc1d226f80" + integrity sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw== + +p-pipe@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-4.0.0.tgz#7e5424569351b2ab452a47826acb93ce09ad6a2c" + integrity sha512-HkPfFklpZQPUKBFXzKFB6ihLriIHxnmuQdK9WmLDwe4hf2PdhhfWT/FJa+pc3bA1ywvKXtedxIRmd4Y7BTXE4w== + +p-queue@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-8.0.1.tgz#718b7f83836922ef213ddec263ff4223ce70bef8" + integrity sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA== + dependencies: + eventemitter3 "^5.0.1" + p-timeout "^6.1.2" + +p-reduce@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" + integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== + +p-timeout@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" + integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pacote@^17.0.0, pacote@^17.0.4, pacote@^17.0.5: + version "17.0.6" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.6.tgz#874bb59cda5d44ab784d0b6530fcb4a7d9b76a60" + integrity sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ== + dependencies: + "@npmcli/git" "^5.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/promise-spawn" "^7.0.0" + "@npmcli/run-script" "^7.0.0" + cacache "^18.0.0" + fs-minipass "^3.0.0" + minipass "^7.0.2" + npm-package-arg "^11.0.0" + npm-packlist "^8.0.0" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^16.0.0" + proc-log "^3.0.0" + promise-retry "^2.0.1" + read-package-json "^7.0.0" + read-package-json-fast "^3.0.0" + sigstore "^2.2.0" + ssri "^10.0.0" + tar "^6.1.11" + +pako@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-conflict-json@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c" + integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw== + dependencies: + json-parse-even-better-errors "^3.0.0" + just-diff "^6.0.0" + just-diff-apply "^5.2.0" + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-json@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" + integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== + dependencies: + "@babel/code-frame" "^7.21.4" + error-ex "^1.3.2" + json-parse-even-better-errors "^3.0.0" + lines-and-columns "^2.0.3" + type-fest "^3.8.0" + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + +pify@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-6.1.0.tgz#db9f2ebfba65f0bc144db65ae84d1a486ab72909" + integrity sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +point-in-svg-path@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/point-in-svg-path/-/point-in-svg-path-1.0.2.tgz#e7b25370e96f58a858c34882ffb57d41b7a574bf" + integrity sha512-+Smsf7B9e7eRFHIwpN+4rE8inF2APbFWeywPfUgbeh02xdJSkbTz6Pqdt7A36wVCR+CnLbaNkRnBjgOpF5RMVQ== + +popper.js@^1.16.1: + version "1.16.1" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== + +postcss-selector-parser@^6.0.10: + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss@^8.4.32: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.1.tgz#3570f7a3f2aaaf8e703623a552cd74749688cf19" + integrity sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prop-types@^15.6.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +react-dnd-html5-backend@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz#87faef15845d512a23b3c08d29ecfd34871688b6" + integrity sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw== + dependencies: + dnd-core "^16.0.1" + +react-dnd-touch-backend@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/react-dnd-touch-backend/-/react-dnd-touch-backend-16.0.1.tgz#e73f8169e2b9fac0f687970f875cac0a4d02d6e2" + integrity sha512-NonoCABzzjyWGZuDxSG77dbgMZ2Wad7eQiCd/ECtsR2/NBLTjGksPUx9UPezZ1nQ/L7iD130Tz3RUshL/ClKLA== + dependencies: + "@react-dnd/invariant" "^4.0.1" + dnd-core "^16.0.1" + +react-dnd@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/react-dnd/-/react-dnd-16.0.1.tgz#2442a3ec67892c60d40a1559eef45498ba26fa37" + integrity sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q== + dependencies: + "@react-dnd/invariant" "^4.0.1" + "@react-dnd/shallowequal" "^4.0.1" + dnd-core "^16.0.1" + fast-deep-equal "^3.1.3" + hoist-non-react-statics "^3.3.2" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-dropzone@^14.2.3: + version "14.2.3" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.2.3.tgz#0acab68308fda2d54d1273a1e626264e13d4e84b" + integrity sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug== + dependencies: + attr-accept "^2.2.2" + file-selector "^0.6.0" + prop-types "^15.8.1" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-measure@^2.3.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/react-measure/-/react-measure-2.5.2.tgz#4ffc410e8b9cb836d9455a9ff18fc1f0fca67f89" + integrity sha512-M+rpbTLWJ3FD6FXvYV6YEGvQ5tMayQ3fGrZhRPHrE9bVlBYfDCLuDcgNttYfk8IqfOI03jz6cbpqMRTUclQnaA== + dependencies: + "@babel/runtime" "^7.2.0" + get-node-dimensions "^1.2.1" + prop-types "^15.6.2" + resize-observer-polyfill "^1.5.0" + +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + +react-sage@^0.3.16: + version "0.3.16" + resolved "https://registry.yarnpkg.com/react-sage/-/react-sage-0.3.16.tgz#bd8ba2735ed2bceb0b1e2226ad8588c2acd58dac" + integrity sha512-oVVmwiEH+iS0+ZWnfwWEnx1TKVcHDlleqo1fluQKlG7JAtZpgU+a0RPLdT2wGcNcPecrOaELuSz5VL9GKbtiXw== + +react-use-gesture@^9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/react-use-gesture/-/react-use-gesture-9.1.3.tgz#92bd143e4f58e69bd424514a5bfccba2a1d62ec0" + integrity sha512-CdqA2SmS/fj3kkS2W8ZU8wjTbVBAIwDWaRprX7OKaj7HlGwBasGEFggmk5qNklknqk9zK/h8D355bEJFTpqEMg== + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +read-cmd-shim@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" + integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== + +read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-package-json@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-7.0.0.tgz#d605c9dcf6bc5856da24204aa4e9518ee9714be0" + integrity sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg== + dependencies: + glob "^10.2.2" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-10.1.0.tgz#2d13ab732d2f05d6e8094167c2112e2ee50644f4" + integrity sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA== + dependencies: + find-up "^6.3.0" + read-pkg "^8.1.0" + type-fest "^4.2.0" + +read-pkg@^8.0.0, read-pkg@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-8.1.0.tgz#6cf560b91d90df68bce658527e7e3eee75f7c4c7" + integrity sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ== + dependencies: + "@types/normalize-package-data" "^2.4.1" + normalize-package-data "^6.0.0" + parse-json "^7.0.0" + type-fest "^4.2.0" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redux@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resize-observer-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +rollup@^4.2.0: + version "4.9.6" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" + integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.9.6" + "@rollup/rollup-android-arm64" "4.9.6" + "@rollup/rollup-darwin-arm64" "4.9.6" + "@rollup/rollup-darwin-x64" "4.9.6" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" + "@rollup/rollup-linux-arm64-gnu" "4.9.6" + "@rollup/rollup-linux-arm64-musl" "4.9.6" + "@rollup/rollup-linux-riscv64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-gnu" "4.9.6" + "@rollup/rollup-linux-x64-musl" "4.9.6" + "@rollup/rollup-win32-arm64-msvc" "4.9.6" + "@rollup/rollup-win32-ia32-msvc" "4.9.6" + "@rollup/rollup-win32-x64-msvc" "4.9.6" + fsevents "~2.3.2" + +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" + integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== + dependencies: + define-data-property "^1.1.1" + function-bind "^1.1.2" + get-intrinsic "^1.2.2" + gopd "^1.0.1" + has-property-descriptors "^1.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +signal-exit@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sigstore@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.2.0.tgz#acba5f73ca2158d2b0507bc52d3592149c3ed20e" + integrity sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug== + dependencies: + "@sigstore/bundle" "^2.1.1" + "@sigstore/core" "^0.2.0" + "@sigstore/protobuf-specs" "^0.2.1" + "@sigstore/sign" "^2.2.1" + "@sigstore/tuf" "^2.3.0" + "@sigstore/verify" "^0.1.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" + integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +slice-ansi@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + socks "^2.7.1" + +socks@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sort-keys@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446" + integrity sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw== + dependencies: + is-plain-obj "^4.0.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz#c07a4ede25b16e4f78e6707bbd84b15a45c19c1b" + integrity sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +ssri@^10.0.0, ssri@^10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +string-argv@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.1.0.tgz#d994252935224729ea3719c49f7206dc9c46550a" + integrity sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +strong-log-transformer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +tabbable@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + +tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa" + integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw== + +text-extensions@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" + integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== + +"through@>=2.2.7 <3", through@^2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +treeverse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" + integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== + +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tuf-js@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.0.tgz#4daaa8620ba7545501d04dfa933c98abbcc959b9" + integrity sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg== + dependencies: + "@tufjs/models" "2.0.0" + debug "^4.3.4" + make-fetch-happen "^13.0.0" + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^2.5.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-fest@^3.0.0, type-fest@^3.8.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + +type-fest@^4.2.0, type-fest@^4.6.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.10.1.tgz#35e6cd34d1fe331cf261d8ebb83e64788b89db4b" + integrity sha512-7ZnJYTp6uc04uYRISWtiX3DSKB/fxNQT0B5o1OUeCqiQiwF+JC9+rJiZIDrPrNCLLuTqyQmh4VdQqh/ZOkv9MQ== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +use-debounce@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-10.0.0.tgz#5091b18d6c16292605f588bae3c0d2cfae756ff2" + integrity sha512-XRjvlvCB46bah9IBXVnq/ACP2lxqXyZj0D9hj4K5OzNroMDpTEBg8Anuh1/UfRTRs7pLhQ+RiNxxwZu9+MVl1A== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== + dependencies: + builtins "^5.0.0" + +vite@^5.0.12: + version "5.0.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" + integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + +walk-up-path@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.0.3: + version "3.3.2" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b" + integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ== + +webcola@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/webcola/-/webcola-3.4.0.tgz#490d26ae98e5b5109478b94a846a62ff6831a99d" + integrity sha512-4BiLXjXw3SJHo3Xd+rF+7fyClT6n7I+AR6TkBqyQ4kTsePSAMDLRCXY1f3B/kXJeP9tYn4G1TblxTO+jAt0gaw== + dependencies: + d3-dispatch "^1.0.3" + d3-drag "^1.0.4" + d3-shape "^1.3.5" + d3-timer "^1.0.5" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +write-json-file@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-5.0.0.tgz#11c329a8ea9e8e23fb92a87cc27412a15f87708b" + integrity sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw== + dependencies: + detect-indent "^7.0.0" + is-plain-obj "^4.0.0" + sort-keys "^5.0.0" + write-file-atomic "^3.0.3" + +write-pkg@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-6.0.1.tgz#5b5ec22edf199f372b68c54d3f80b112c8463a6e" + integrity sha512-ZwKp0+CQCNrJbhHStRy6IVDnVjvD4gYy6MhQLKgBnl85oaiTNXhvtuox7AqvOSf1wta0YW4U5JidjpJnd1i8TA== + dependencies: + deepmerge-ts "^5.1.0" + read-pkg "^8.1.0" + sort-keys "^5.0.0" + type-fest "^4.6.0" + write-json-file "^5.0.0" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From cff111e0b3e04925ac4ca8f560c4296b298d0039 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 2 Feb 2024 13:30:29 -0500 Subject: [PATCH 002/471] checkpoint: Now component loads. Next step is to satisfy the loading complete condition and render the empty datamapper screen. This loading status will soon be used while uploading user schema, so don't just disable it. --- package.json | 8 +- packages/ui/index.html | 3 +- packages/ui/package.json | 9 +- packages/ui/src/Layout/ExpressionToolbar.tsx | 4 +- packages/ui/src/Layout/MainContent.tsx | 4 +- packages/ui/src/Layout/MainLayout.tsx | 11 +- packages/ui/src/UI/Actions.tsx | 4 +- packages/ui/src/UI/AutoDropdown.tsx | 4 +- packages/ui/src/UI/Canvas/CanvasContext.tsx | 6 +- packages/ui/src/UI/Loading.tsx | 10 +- packages/ui/src/UI/MappingTransformation.tsx | 42 +++--- packages/ui/src/UI/TimedToast.tsx | 6 +- packages/ui/src/UI/dnd/FieldsDndProvider.tsx | 8 +- .../Columns/commonActions.tsx | 25 ++-- packages/ui/src/Views/MappingTableView.tsx | 14 +- packages/ui/src/Views/NamespaceTableView.tsx | 8 +- .../services/document-management.service.ts | 14 +- .../src/core/services/field-action.service.ts | 19 +-- .../core/services/file-management.service.ts | 68 ++++----- .../core/services/initialization.service.ts | 34 ++++- .../services/mapping-management.service.ts | 6 +- .../core/services/mapping-preview.service.ts | 18 +-- ...map.stories.tsx => DataMapper.stories.tsx} | 18 +-- .../src/impl/{Atlasmap.tsx => DataMapper.tsx} | 48 ++++--- ...mapProvider.tsx => DataMapperProvider.tsx} | 135 +++--------------- .../ui/src/impl/dialogs/useAboutDialog.tsx | 4 +- .../impl/dialogs/useDeleteConstantDialog.tsx | 4 +- .../impl/dialogs/useDeleteDocumentDialog.tsx | 4 +- .../impl/dialogs/useDeleteMappingDialog.tsx | 4 +- .../impl/dialogs/useDeletePropertyDialog.tsx | 4 +- .../dialogs/useExportADMArchiveDialog.tsx | 4 +- .../dialogs/useImportADMArchiveDialog.tsx | 4 +- .../impl/dialogs/useImportDocumentDialog.tsx | 4 +- .../impl/dialogs/useResetAtlasmapDialog.tsx | 4 +- .../dialogs/useToggleExpressionModeDialog.tsx | 4 +- packages/ui/src/impl/index.ts | 6 +- packages/ui/src/impl/toolbarItems.tsx | 30 ++-- packages/ui/src/impl/useContextToolbar.tsx | 4 +- ...apDialogs.tsx => useDataMapperDialogs.tsx} | 6 +- packages/ui/src/impl/useSidebar.tsx | 4 +- packages/ui/src/main.tsx | 12 +- yarn.lock | 5 + 42 files changed, 280 insertions(+), 353 deletions(-) rename packages/ui/src/impl/{Atlasmap.stories.tsx => DataMapper.stories.tsx} (96%) rename packages/ui/src/impl/{Atlasmap.tsx => DataMapper.tsx} (93%) rename packages/ui/src/impl/{AtlasmapProvider.tsx => DataMapperProvider.tsx} (78%) rename packages/ui/src/impl/{useAtlasmapDialogs.tsx => useDataMapperDialogs.tsx} (99%) diff --git a/package.json b/package.json index 0bca9f945..91d3f41c2 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { - "name": "kdm", + "name": "datamapper-poc", "version": "0.0.1", - "description": "kdm", - "repository": "https://github.com/igarashitm/kdm", + "description": "datamapper-poc", + "repository": "https://github.com/KaotoIO/datamapper-poc", "private": true, - "author": "kdm", + "author": "KaotoIO", "license": "Apache-2.0", "workspaces": [ "packages/*" diff --git a/packages/ui/index.html b/packages/ui/index.html index f2d4367ab..35ed20590 100644 --- a/packages/ui/index.html +++ b/packages/ui/index.html @@ -4,7 +4,7 @@ - kdm + DataMapper
+
diff --git a/packages/ui/package.json b/packages/ui/package.json index aac7566d0..32f6d47e3 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,11 +1,11 @@ { - "name": "@kdm/ui", + "name": "@datamapper-poc/ui", "version": "0.0.1", "type": "module", - "description": "kdm", - "repository": "https://github.com/igarashitm/kdm", + "description": "datamapper-poc", + "repository": "https://github.com/KaotoIO/datamapper-poc", "repositoryDirectory": "packages/ui", - "author": "kdm", + "author": "KaotoIO", "publishConfig": { "access": "public" }, @@ -44,6 +44,7 @@ "@patternfly/react-core": "^5.1.2", "@patternfly/react-table": "^5.1.2", "@patternfly/react-topology": "^5.1.0", + "@types/pako": "^2.0.3", "d3-scale": "^4.0.2", "d3-shape": "^3.2.0", "fast-xml-parser": "^4.3.3", diff --git a/packages/ui/src/Layout/ExpressionToolbar.tsx b/packages/ui/src/Layout/ExpressionToolbar.tsx index 1f86c3ac8..1ba206580 100644 --- a/packages/ui/src/Layout/ExpressionToolbar.tsx +++ b/packages/ui/src/Layout/ExpressionToolbar.tsx @@ -13,13 +13,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { FunctionComponent } from 'react'; +import {FunctionComponent, PropsWithChildren} from 'react'; import { Toolbar, ToolbarContent } from '@patternfly/react-core'; import { css } from '@patternfly/react-styles'; import styles from './Toolbar.module.css'; -export const ExpressionToolbar: FunctionComponent = ({ children }) => { +export const ExpressionToolbar: FunctionComponent = ({ children }) => { return ( diff --git a/packages/ui/src/Layout/MainContent.tsx b/packages/ui/src/Layout/MainContent.tsx index 5e879dc2b..a12894026 100644 --- a/packages/ui/src/Layout/MainContent.tsx +++ b/packages/ui/src/Layout/MainContent.tsx @@ -13,10 +13,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { FunctionComponent } from 'react'; +import { FunctionComponent, PropsWithChildren } from 'react'; import styles from './MainContent.module.css'; -export const MainContent: FunctionComponent = ({ children }) => ( +export const MainContent: FunctionComponent = ({ children }) => (
{children}
diff --git a/packages/ui/src/Layout/MainLayout.tsx b/packages/ui/src/Layout/MainLayout.tsx index a9f8933d2..5ea2c6547 100644 --- a/packages/ui/src/Layout/MainLayout.tsx +++ b/packages/ui/src/Layout/MainLayout.tsx @@ -13,15 +13,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { FunctionComponent, ReactElement, ReactNode, memo } from 'react'; +import {FunctionComponent, ReactElement, ReactNode, memo, PropsWithChildren} from 'react'; import { Stack, StackItem } from '@patternfly/react-core'; -import { Loading } from '../UI'; import { Sidebar } from './Sidebar'; import styles from './MainLayout.module.css'; -export interface IMainLayoutProps { - loading: boolean; +export interface IMainLayoutProps extends PropsWithChildren { showSidebar: boolean; contextToolbar?: ReactNode; expressionToolbar?: ReactNode; @@ -31,7 +29,6 @@ export interface IMainLayoutProps { export const MainLayout: FunctionComponent = memo( function MainLayout({ - loading, showSidebar, renderSidebar, contextToolbar, @@ -45,9 +42,7 @@ export const MainLayout: FunctionComponent = memo( `${sideBar ? ' pf-topology-container__with-sidebar' : ''}` + `${showSidebar ? ' pf-topology-container__with-sidebar--open' : ''}`; - return loading ? ( - - ) : ( + return ( {contextToolbar && ( {contextToolbar} diff --git a/packages/ui/src/UI/Actions.tsx b/packages/ui/src/UI/Actions.tsx index 50cd7c72e..317720ce5 100644 --- a/packages/ui/src/UI/Actions.tsx +++ b/packages/ui/src/UI/Actions.tsx @@ -13,10 +13,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { Children, FunctionComponent } from 'react'; +import {Children, FunctionComponent, PropsWithChildren} from 'react'; import styles from './Actions.module.css'; -export const Actions: FunctionComponent = ({ children }) => ( +export const Actions: FunctionComponent = ({ children }) => (
{Children.map(children, (c, idx) => (
diff --git a/packages/ui/src/UI/AutoDropdown.tsx b/packages/ui/src/UI/AutoDropdown.tsx index 8f267d4b2..258702884 100644 --- a/packages/ui/src/UI/AutoDropdown.tsx +++ b/packages/ui/src/UI/AutoDropdown.tsx @@ -20,7 +20,7 @@ import { useToggle } from '../impl/utils'; export interface IAutoDropdown extends Omit, 'toggle'> { - toggle: (props: { isOpen: boolean; toggleOpen: () => void }) => ReactElement; + toggle: (toggleRef: React.RefObject) => ReactElement; } export const AutoDropdown: FunctionComponent = ({ @@ -34,7 +34,7 @@ export const AutoDropdown: FunctionComponent = ({ {...props} isOpen={isOpen} onSelect={toggleOpen} - toggle={toggle({ isOpen, toggleOpen })} + toggle={toggle} /> ); }; diff --git a/packages/ui/src/UI/Canvas/CanvasContext.tsx b/packages/ui/src/UI/Canvas/CanvasContext.tsx index 312d04abd..3005e9d30 100644 --- a/packages/ui/src/UI/Canvas/CanvasContext.tsx +++ b/packages/ui/src/UI/Canvas/CanvasContext.tsx @@ -14,8 +14,8 @@ limitations under the License. */ import { Coords, RectWithId, Rects } from './models'; -import { FunctionComponent, createContext, useContext } from 'react'; -import React, { +import {FunctionComponent, createContext, useContext, PropsWithChildren} from 'react'; +import { ReactElement, useCallback, useEffect, @@ -61,7 +61,7 @@ export interface ICanvasContext { } const CanvasContext = createContext(null); -export interface ICanvasProviderProps { +export interface ICanvasProviderProps extends PropsWithChildren { allowPanning?: boolean; initialWidth?: number; initialHeight?: number; diff --git a/packages/ui/src/UI/Loading.tsx b/packages/ui/src/UI/Loading.tsx index b4f3477fd..e217ba7b5 100644 --- a/packages/ui/src/UI/Loading.tsx +++ b/packages/ui/src/UI/Loading.tsx @@ -14,19 +14,15 @@ limitations under the License. */ import { - EmptyState, + EmptyState, EmptyStateHeader, EmptyStateIcon, EmptyStateVariant, Spinner, - Title, } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; +import { FunctionComponent } from 'react'; export const Loading: FunctionComponent = () => ( - - - Loading - + }> ); diff --git a/packages/ui/src/UI/MappingTransformation.tsx b/packages/ui/src/UI/MappingTransformation.tsx index 1623e06cd..df285ea12 100644 --- a/packages/ui/src/UI/MappingTransformation.tsx +++ b/packages/ui/src/UI/MappingTransformation.tsx @@ -19,16 +19,16 @@ import { FormGroup, FormSelect, FormSelectOption, - InputGroup, + InputGroup, MenuToggle, MenuToggleElement, Select, SelectOption, - SelectOptionObject, - SelectVariant, Split, SplitItem, - TextInput, + Text, + TextContent, + TextInput, TextVariants, } from '@patternfly/react-core'; -import React, { FunctionComponent, useState } from 'react'; +import React, {FunctionComponent, Ref, useCallback, useState} from 'react'; import { FieldType } from '../core'; import { TrashIcon } from '@patternfly/react-icons'; @@ -124,15 +124,23 @@ export const MappingTransformation: FunctionComponent< const [userDefinedValue, setUserDefinedValue] = useState(initialUserDefined); - const onToggle = (isOpen: boolean) => { - setIsOpen(isOpen); + const onToggle = () => { + setIsOpen(!isOpen); }; + const toggle = useCallback( + (toggleRef: Ref) => ( + + {selected?.name || '[None]'} + + ), + [isOpen], + ); + const onSelect = ( _event: - | React.MouseEvent - | React.ChangeEvent, - selection: string | SelectOptionObject, + | React.MouseEvent | undefined, + selection: string | number | undefined, _isPlaceholder?: boolean, ) => { setIsOpen(false); @@ -147,11 +155,11 @@ export const MappingTransformation: FunctionComponent< ? userDefinedValue ? userDefinedValue : '' - : selection.toString(); + : selection!.toString(); onTransformationArgumentChange(arg.name, arg.value); }; - const onChangeUserDefinedValue = (value: string) => { + const onChangeUserDefinedValue = (_event: React.FormEvent, value: string) => { setUserDefinedValue(value); arg.value = value; onTransformationArgumentChange(arg.name, value); @@ -161,15 +169,11 @@ export const MappingTransformation: FunctionComponent< - {enumCandidates.map((s, idx: number) => - createSelectOption(s.name, idx), - )} +
+
); diff --git a/packages/ui/src/atlasmap/UI/ExpressionFieldSearch.module.css b/packages/ui/src/components/expression/ExpressionFieldSearch.css similarity index 100% rename from packages/ui/src/atlasmap/UI/ExpressionFieldSearch.module.css rename to packages/ui/src/components/expression/ExpressionFieldSearch.css diff --git a/packages/ui/src/atlasmap/UI/ExpressionFieldSearch.tsx b/packages/ui/src/components/expression/ExpressionFieldSearch.tsx similarity index 77% rename from packages/ui/src/atlasmap/UI/ExpressionFieldSearch.tsx rename to packages/ui/src/components/expression/ExpressionFieldSearch.tsx index 485e8f8a6..9ecd1c70d 100644 --- a/packages/ui/src/atlasmap/UI/ExpressionFieldSearch.tsx +++ b/packages/ui/src/components/expression/ExpressionFieldSearch.tsx @@ -13,15 +13,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { - Select, - SelectOption, - SelectOptionObject, -} from '@patternfly/react-core'; +import { Select, SelectOption, SelectOptionObject } from '@patternfly/react-core'; import { FunctionComponent } from 'react'; -import React from 'react'; -import styles from './ExpressionFieldSearch.module.css'; -import { useToggle } from '../impl/utils'; +import { useToggle } from '../../hooks/useToggle'; +import './ExpressionFieldSearch.css'; export interface IExpressionFieldSearchProps { clearSearchMode: (clearAtSign: boolean) => void; @@ -30,9 +25,11 @@ export interface IExpressionFieldSearchProps { } let selectedField = ''; -export const ExpressionFieldSearch: FunctionComponent< - IExpressionFieldSearchProps -> = ({ clearSearchMode, insertSelectedField, mappedFieldCandidates }) => { +export const ExpressionFieldSearch: FunctionComponent = ({ + clearSearchMode, + insertSelectedField, + mappedFieldCandidates, +}) => { function onToggleFieldSearch(toggled: boolean): any { if (!toggled) { mappedFieldCandidates = []; @@ -73,11 +70,7 @@ export const ExpressionFieldSearch: FunctionComponent< } } - function onKeyHandler( - _index: number, - _innerIndex: number, - _position: string, - ): void { + function onKeyHandler(_index: number, _innerIndex: number, _position: string): void { // TODO } @@ -101,24 +94,16 @@ export const ExpressionFieldSearch: FunctionComponent< } } else if ('Tab' === event.key) { if (!candidateSrcElement && event.srcElement) { - candidateSrcElement = - event.srcElement.nextElementSibling.firstElementChild; + candidateSrcElement = event.srcElement.nextElementSibling.firstElementChild; candidateSrcElement.style.backgroundColor = 'lightblue'; - } else if ( - candidateSrcElement && - candidateSrcElement.nextElementSibling - ) { + } else if (candidateSrcElement && candidateSrcElement.nextElementSibling) { event.preventDefault(); updateCandidate(candidateSrcElement!.nextElementSibling); } } } - function selectionChanged( - event: any, - value: string | SelectOptionObject, - isPlaceholder?: boolean | undefined, - ): void { + function selectionChanged(event: any, value: string | SelectOptionObject, isPlaceholder?: boolean | undefined): void { if (!isPlaceholder) { const docId = event.target.getAttribute('label'); selectedField = value as string; @@ -137,7 +122,7 @@ export const ExpressionFieldSearch: FunctionComponent< value={selectField[0]} key={idx} index={idx} - className={styles.document} + className="document" isPlaceholder={true} /> ); @@ -149,18 +134,14 @@ export const ExpressionFieldSearch: FunctionComponent< key={idx} keyHandler={onKeyHandler} index={idx} - className={styles.field} + className="field" /> ); } } return ( -
+
); diff --git a/packages/ui/src/components/expression/index.ts b/packages/ui/src/components/expression/index.ts new file mode 100644 index 000000000..840ab477a --- /dev/null +++ b/packages/ui/src/components/expression/index.ts @@ -0,0 +1,3 @@ +export * from './ExpressionEditor'; +export * from './ExpressionEnumSelect'; +export * from './ExpressionFieldSearch'; diff --git a/packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TraverseFields.tsx b/packages/ui/src/components/fields/TraverseFields.tsx similarity index 61% rename from packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TraverseFields.tsx rename to packages/ui/src/components/fields/TraverseFields.tsx index 2ef520c78..c396618a5 100644 --- a/packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TraverseFields.tsx +++ b/packages/ui/src/components/fields/TraverseFields.tsx @@ -13,38 +13,31 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { AtlasmapFields, IAtlasmapField, IAtlasmapGroup } from '../../../Views'; +import { IAtlasmapGroup } from '../../_bk_atlasmap/Views'; import { ITreeGroupAndNodeRefsAndDnDProps, TreeGroupAndNodeRefsAndDnD, -} from './TreeGroupAndNodeRefsAndDnD'; -import { ITreeItemFieldAndNodeRefsAndDnDProps, TreeItemWithFieldAndNodeRefsAndDnD, -} from './TreeItemFieldAndNodeRefsAndDnD'; -import React, { FunctionComponent } from 'react'; +} from '.'; +import { FunctionComponent } from 'react'; -import { NodeRef } from '../../../UI'; +import { NodeRef } from '../../_bk_atlasmap/UI'; +import { IField } from '../../models'; -function getChildrenIds( - fields: AtlasmapFields, - idPrefix: string, -): (string | undefined)[] { +function getChildrenIds(fields: IField[], idPrefix: string): (string | undefined)[] { return fields.reduce<(string | undefined)[]>( (ids, f) => [ ...ids, `${idPrefix}${f.id}`, - ...((f as IAtlasmapGroup).fields - ? getChildrenIds((f as IAtlasmapGroup).fields, idPrefix) - : []), + ...((f as IAtlasmapGroup).fields ? getChildrenIds((f as IAtlasmapGroup).fields, idPrefix) : []), ], [], ); } -export interface ITraverseFieldsProps - extends Omit, 'fieldId'> { - fields: AtlasmapFields; +export interface ITraverseFieldsProps extends Omit, 'fieldId'> { + fields: IField[]; } export const TraverseFields: FunctionComponent = ({ @@ -68,11 +61,7 @@ export const TraverseFields: FunctionComponent = ({ ))} ) : ( - +
 
); @@ -80,38 +69,25 @@ export const TraverseFields: FunctionComponent = ({ export interface IFieldOrGroupProps extends Omit, 'fieldId'>, - Omit< - Omit, 'fieldId'>, - 'children' - > { + Omit, 'fieldId'>, 'children'> { idPrefix: string; - field: IAtlasmapGroup | IAtlasmapField; + field: IAtlasmapGroup | IField; isVisible?: boolean; } -const FieldOrGroup: FunctionComponent = ({ - field, - idPrefix, - level = 1, - ...props -}) => { +const FieldOrGroup: FunctionComponent = ({ field, idPrefix, level = 1, ...props }) => { const fieldId = `${idPrefix}${field.id}`; const maybeGroup = field as IAtlasmapGroup; - const maybeField = field as IAtlasmapField; + const maybeField = field as IField; if (maybeGroup.fields) { return ( - + {({ expanded }) => ( = ({ ); } - return ( - - ); + return ; }; diff --git a/packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TreeGroupAndNodeRefsAndDnD.tsx b/packages/ui/src/components/fields/TreeGroupAndNodeRefsAndDnD.tsx similarity index 79% rename from packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TreeGroupAndNodeRefsAndDnD.tsx rename to packages/ui/src/components/fields/TreeGroupAndNodeRefsAndDnD.tsx index 6dd5bb910..5c93c5197 100644 --- a/packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TreeGroupAndNodeRefsAndDnD.tsx +++ b/packages/ui/src/components/fields/TreeGroupAndNodeRefsAndDnD.tsx @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { AtlasmapDocumentType, IAtlasmapGroup } from '../../../Views'; +import { AtlasmapDocumentType, IAtlasmapGroup } from '../../_bk_atlasmap/Views'; import { DelayedBoolean, DocumentGroup, @@ -21,8 +21,8 @@ import { ITreeGroupProps, NodeRef, TreeGroup, -} from '../../../UI'; -import React, { FunctionComponent } from 'react'; +} from '../../_bk_atlasmap/UI'; +import { FunctionComponent } from 'react'; import { LayerGroupIcon } from '@patternfly/react-icons'; @@ -41,9 +41,7 @@ export interface ITreeGroupAndNodeRefsAndDnDProps { children: ITreeGroupProps['children']; } -export const TreeGroupAndNodeRefsAndDnD: FunctionComponent< - ITreeGroupAndNodeRefsAndDnDProps -> = ({ +export const TreeGroupAndNodeRefsAndDnD: FunctionComponent = ({ fieldId, group, showTypes, @@ -70,12 +68,7 @@ export const TreeGroupAndNodeRefsAndDnD: FunctionComponent< {({ isOver }) => ( {(isOver) => ( - + : undefined} - iconTooltip={ - group.isCollection - ? 'This object is a collection' - : undefined - } + iconTooltip={group.isCollection ? 'This object is a collection' : undefined} expanded={isOver || expanded} /> )} diff --git a/packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TreeItemFieldAndNodeRefsAndDnD.tsx b/packages/ui/src/components/fields/TreeItemFieldAndNodeRefsAndDnD.tsx similarity index 78% rename from packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TreeItemFieldAndNodeRefsAndDnD.tsx rename to packages/ui/src/components/fields/TreeItemFieldAndNodeRefsAndDnD.tsx index 280261ac7..3151b9f13 100644 --- a/packages/ui/src/atlasmap/Views/ColumnMapperView/Columns/TreeItemFieldAndNodeRefsAndDnD.tsx +++ b/packages/ui/src/components/fields/TreeItemFieldAndNodeRefsAndDnD.tsx @@ -13,15 +13,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { - AtIcon, - BoltIcon, - BullseyeIcon, - CircleIcon, - GripVerticalIcon, - LayerGroupIcon, -} from '@patternfly/react-icons'; -import { AtlasmapDocumentType, IAtlasmapField } from '../../../Views'; +import { AtIcon, BoltIcon, BullseyeIcon, CircleIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; +import { AtlasmapDocumentType } from '../../_bk_atlasmap/Views'; import { Button, Tooltip } from '@patternfly/react-core'; import { DocumentField, @@ -31,12 +24,13 @@ import { IDragAndDropField, NodeRef, TreeItem, -} from '../../../UI'; +} from '../../_bk_atlasmap/UI'; import React, { FunctionComponent, ReactNode } from 'react'; +import { IField } from '../../models'; export interface ITreeItemFieldAndNodeRefsAndDnDProps { fieldId: string; - field: IAtlasmapField; + field: IField; showTypes: boolean; boundaryId?: string; overrideWidth?: string; @@ -46,15 +40,13 @@ export interface ITreeItemFieldAndNodeRefsAndDnDProps { level?: number; position?: number; setSize?: number; - renderActions?: (field: IAtlasmapField) => IDocumentFieldProps['actions']; - renderPreview?: (field: IAtlasmapField) => ReactNode; - canDrop: (source: IAtlasmapField, target: IDragAndDropField) => boolean; - onDrop: (source: IAtlasmapField, target: IDragAndDropField | null) => void; + renderActions?: (field: IField) => IDocumentFieldProps['actions']; + renderPreview?: (field: IField) => ReactNode; + canDrop: (source: IField, target: IDragAndDropField) => boolean; + onDrop: (source: IField, target: IDragAndDropField | null) => void; } -export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent< - ITreeItemFieldAndNodeRefsAndDnDProps -> = ({ +export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent = ({ fieldId, field, showTypes, @@ -96,11 +88,7 @@ export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent< > {({ isDragging }) => ( This field is connected
} > - + ) : null, field.isCollection ? ( @@ -165,11 +149,7 @@ export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent< exitDelay={100} content={
This field is a collection
} > - + ) : null, field.hasTransformations ? ( @@ -181,11 +161,7 @@ export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent< exitDelay={100} content={
This field has transformations
} > - + ) : null, field.isAttribute ? ( @@ -197,11 +173,7 @@ export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent< exitDelay={100} content={
This field is an attribute
} > - + ) : null, ]} diff --git a/packages/ui/src/components/fields/index.ts b/packages/ui/src/components/fields/index.ts new file mode 100644 index 000000000..18d838d73 --- /dev/null +++ b/packages/ui/src/components/fields/index.ts @@ -0,0 +1,3 @@ +export * from './TraverseFields'; +export * from './TreeGroupAndNodeRefsAndDnD'; +export * from './TreeItemFieldAndNodeRefsAndDnD'; diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts index 3db8f9ebe..73bb684a1 100644 --- a/packages/ui/src/components/index.ts +++ b/packages/ui/src/components/index.ts @@ -1 +1,3 @@ export * from './DataMapper'; +export * from './documents/Document'; +export * from './Loading'; diff --git a/packages/ui/src/components/toolbarItems/AboutToolbarItem.tsx b/packages/ui/src/components/toolbarItems/AboutToolbarItem.tsx new file mode 100644 index 000000000..0500be46b --- /dev/null +++ b/packages/ui/src/components/toolbarItems/AboutToolbarItem.tsx @@ -0,0 +1,20 @@ +import { FunctionComponent } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { HelpIcon } from '@patternfly/react-icons'; +import { AboutDialog } from '../../_bk_atlasmap/UI'; +import { useToggle } from '../../hooks'; + +export const AboutToolbarItem: FunctionComponent = () => { + const { state, toggleOn, toggleOff } = useToggle(false); + + return ( + + About AtlasMap
}> + + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/AddMappingToolbarItem.tsx b/packages/ui/src/components/toolbarItems/AddMappingToolbarItem.tsx new file mode 100644 index 000000000..3e3865bc6 --- /dev/null +++ b/packages/ui/src/components/toolbarItems/AddMappingToolbarItem.tsx @@ -0,0 +1,25 @@ +import { FunctionComponent, useCallback, useContext } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { PlusIcon } from '@patternfly/react-icons'; +import { DataMapperContext } from '../../providers'; +import { Mapping } from '../../models'; + +export const AddMappingToolbarItem: FunctionComponent = () => { + const { mappings, setSelectedMappingIndex, setMappings } = useContext(DataMapperContext)!; + const onClick = useCallback(() => { + const newMapping = new Mapping(); + mappings.push(newMapping); + setMappings(mappings); + setSelectedMappingIndex(mappings.indexOf(newMapping)); + }, [mappings, setMappings, setSelectedMappingIndex]); + + return ( + + Add a new mapping
}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbarItems/ExportMappingFileDropdownItem.tsx new file mode 100644 index 000000000..65c6bcb7f --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ExportMappingFileDropdownItem.tsx @@ -0,0 +1,33 @@ +import { DropdownItem } from '@patternfly/react-core'; +import { FunctionComponent, useCallback } from 'react'; +import { ExportIcon } from '@patternfly/react-icons'; +import { ConfigModel } from '../../_bk_atlasmap/core'; +import { useToggle } from '../../hooks/useToggle'; +import { ExportMappingDialog } from '../../_bk_atlasmap/UI'; + +export const ExportMappingFileDropdownItem: FunctionComponent<{ + onComplete: () => void; +}> = ({ onComplete }) => { + const { state, toggleOn, toggleOff } = useToggle(false); + + const onExportMappingFile = useCallback( + (fileName: string) => { + const cfg = ConfigModel.getConfig(); + cfg.fileService.exportADMArchive(fileName); + toggleOff(); + onComplete(); + }, + [onComplete, toggleOff], + ); + + const onClick = useCallback(() => { + toggleOn(); + }, [toggleOn]); + + return ( + } onClick={onClick} data-testid="export-mappings-button"> + Export the current mappings (.xsl) + ; + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbarItems/ImportMappingFileDropdownItem.tsx new file mode 100644 index 000000000..61cb90a74 --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ImportMappingFileDropdownItem.tsx @@ -0,0 +1,46 @@ +import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; +import { DropdownItem } from '@patternfly/react-core'; +import { ImportIcon } from '@patternfly/react-icons'; +import { useFilePicker } from 'react-sage'; +import { ConfigModel } from '../../_bk_atlasmap/core'; +import { useConfirmationDialog } from '../dialogs/useConfirmationDialog'; + +export const ImportMappingFileDropdownItem: FunctionComponent<{ onComplete: () => void }> = ({ onComplete }) => { + const { files, onClick, HiddenFileInput } = useFilePicker({ + maxFileSize: 1, + }); + const previouslyUploadedFiles = useRef(null); + + const [ImportMappingDialog, openImportMappingDialog] = useConfirmationDialog( + 'Import mapping file?', + 'Importing a new mapping file will discard all existing mappings. To save the current mappings, use the Export feature.', + ); + + const onImportMapping = useCallback( + (file: File) => + openImportMappingDialog(() => { + const cfg = ConfigModel.getConfig(); + cfg.initializationService.initializeWithADMArchiveFile(file); + }), + [openImportMappingDialog], + ); + + useEffect(() => { + if (previouslyUploadedFiles.current !== files) { + previouslyUploadedFiles.current = files; + if (files?.length === 1) { + previouslyUploadedFiles.current = null; + onImportMapping(files[0]); + onComplete(); + } + } + }, [files, onComplete, onImportMapping]); + + return ( + } onClick={onClick} data-testid="import-mappings-button"> + Import a mapping (.xsl) + + {ImportMappingDialog} + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/MainMenuToolbarItem.tsx b/packages/ui/src/components/toolbarItems/MainMenuToolbarItem.tsx new file mode 100644 index 000000000..edd0aa7ac --- /dev/null +++ b/packages/ui/src/components/toolbarItems/MainMenuToolbarItem.tsx @@ -0,0 +1,30 @@ +import { FunctionComponent } from 'react'; +import { useToggle } from '../../hooks/useToggle'; +import { Divider, Dropdown, DropdownList, MenuToggle, ToolbarItem } from '@patternfly/react-core'; +import { ExportMappingFileDropdownItem, ImportMappingFileDropdownItem, ResetDropdownItem } from './index'; + +export const MainMenuToolbarItem: FunctionComponent = () => { + const { state: isOpen, toggle: onToggle, toggleOff } = useToggle(false); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return ( + + ( + + Data Mapper + + )} + isOpen={isOpen} + isPlain={true} + > + + + + + + + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ResetDropdownItem.tsx b/packages/ui/src/components/toolbarItems/ResetDropdownItem.tsx new file mode 100644 index 000000000..b2ef0f561 --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ResetDropdownItem.tsx @@ -0,0 +1,31 @@ +import { FunctionComponent, useCallback } from 'react'; +import { DropdownItem } from '@patternfly/react-core'; +import { TrashIcon } from '@patternfly/react-icons'; +import { useConfirmationDialog } from '../dialogs/useConfirmationDialog'; +import { ConfigModel } from '../../_bk_atlasmap/core'; + +export const ResetDropdownItem: FunctionComponent<{ + onComplete: () => void; +}> = ({ onComplete }) => { + const [resetDialog, openResetDialog] = useConfirmationDialog( + 'Reset All Mappings and Imports?', + 'Are you sure you want to reset all mappings and clear all imported documents?', + ); + + const onReset = useCallback(() => { + const cfg = ConfigModel.getConfig(); + cfg.initializationService.resetAtlasMap(); + onComplete(); + }, [onComplete]); + + const onClick = useCallback(() => { + openResetDialog(onReset); + }, [onReset, openResetDialog]); + + return ( + } onClick={onClick} data-testid="reset-all-button"> + Reset all mappings and clear all imported documents + {resetDialog} + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ToggleMappedFieldsToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleMappedFieldsToolbarItem.tsx new file mode 100644 index 000000000..52e0bdc9a --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ToggleMappedFieldsToolbarItem.tsx @@ -0,0 +1,29 @@ +import { FunctionComponent, useCallback, useContext } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { MapMarkedIcon } from '@patternfly/react-icons'; +import { css } from '@patternfly/react-styles'; +import { DataMapperContext } from '../../providers'; +import './toolbarItems.css'; + +export const ToggleMappedFieldsToolbarItem: FunctionComponent = () => { + const { showMappedFields, toggleShowMappedFields } = useContext(DataMapperContext)!; + const onClick = useCallback(() => { + toggleShowMappedFields(); + }, [toggleShowMappedFields]); + + return ( + + Show/hide mapped fields}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ToggleMappingPreviewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleMappingPreviewToolbarItem.tsx new file mode 100644 index 000000000..658922f6e --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ToggleMappingPreviewToolbarItem.tsx @@ -0,0 +1,29 @@ +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { FunctionComponent, useCallback, useContext } from 'react'; +import { EyeIcon } from '@patternfly/react-icons'; +import { css } from '@patternfly/react-styles'; +import { DataMapperContext } from '../../providers'; +import './toolbarItems.css'; + +export const ToggleMappingPreviewToolbarItem: FunctionComponent = () => { + const { isPreviewEnabled, togglePreview } = useContext(DataMapperContext)!; + const onClick = useCallback(() => { + togglePreview(); + }, [togglePreview]); + + return ( + + Show preview}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ToggleMappingTableViewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleMappingTableViewToolbarItem.tsx new file mode 100644 index 000000000..1dceadb00 --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ToggleMappingTableViewToolbarItem.tsx @@ -0,0 +1,30 @@ +import { FunctionComponent, useCallback, useContext } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { TableIcon } from '@patternfly/react-icons'; +import { css } from '@patternfly/react-styles'; +import { DataMapperContext } from '../../providers'; +import './toolbarItems.css'; + +export const ToggleMappingTableViewToolbarItem: FunctionComponent = () => { + const { activeView, setActiveView } = useContext(DataMapperContext)!; + const toggled = activeView === 'MappingTable'; + const onClick = useCallback(() => { + setActiveView('SourceTarget'); + }, [setActiveView]); + + return ( + + Show mapping table}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ToggleNamespaceTableViewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleNamespaceTableViewToolbarItem.tsx new file mode 100644 index 000000000..acf68f22d --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ToggleNamespaceTableViewToolbarItem.tsx @@ -0,0 +1,30 @@ +import { FunctionComponent, useCallback, useContext } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { css } from '@patternfly/react-styles'; +import { CodeIcon } from '@patternfly/react-icons'; +import { DataMapperContext } from '../../providers'; +import './toolbarItems.css'; + +export const ToggleNamespaceTableViewToolbarItem: FunctionComponent = () => { + const { activeView, setActiveView } = useContext(DataMapperContext)!; + const toggled = activeView === 'NamespaceTable'; + const onClick = useCallback(() => { + setActiveView('SourceTarget'); + }, [setActiveView]); + + return ( + + Show namespace table}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ToggleSourceTargetViewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleSourceTargetViewToolbarItem.tsx new file mode 100644 index 000000000..8edf0447d --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ToggleSourceTargetViewToolbarItem.tsx @@ -0,0 +1,30 @@ +import { FunctionComponent, useCallback, useContext } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { ColumnsIcon } from '@patternfly/react-icons'; +import { css } from '@patternfly/react-styles'; +import { DataMapperContext } from '../../providers'; +import './toolbarItems.css'; + +export const ToggleSourceTargetViewToolbarItem: FunctionComponent = () => { + const { activeView, setActiveView } = useContext(DataMapperContext)!; + const toggled = activeView === 'SourceTarget'; + const onClick = useCallback(() => { + setActiveView('SourceTarget'); + }, [setActiveView]); + + return ( + + Show source target view}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ToggleTypesToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleTypesToolbarItem.tsx new file mode 100644 index 000000000..a2206a4eb --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ToggleTypesToolbarItem.tsx @@ -0,0 +1,29 @@ +import { FunctionComponent, useCallback, useContext } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { InfoIcon } from '@patternfly/react-icons'; +import { css } from '@patternfly/react-styles'; +import { DataMapperContext } from '../../providers'; +import './toolbarItems.css'; + +export const ToggleTypesToolbarItem: FunctionComponent = () => { + const { showTypes, toggleShowTypes } = useContext(DataMapperContext)!; + const onClick = useCallback(() => { + toggleShowTypes(); + }, [toggleShowTypes]); + + return ( + + Show/hide types}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/ToggleUnmappedFieldsToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleUnmappedFieldsToolbarItem.tsx new file mode 100644 index 000000000..9d208ee7e --- /dev/null +++ b/packages/ui/src/components/toolbarItems/ToggleUnmappedFieldsToolbarItem.tsx @@ -0,0 +1,29 @@ +import { FunctionComponent, useCallback, useContext } from 'react'; +import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; +import { MapIcon } from '@patternfly/react-icons'; +import { css } from '@patternfly/react-styles'; +import { DataMapperContext } from '../../providers'; +import './toolbarItems.css'; + +export const ToggleUnmappedFieldsToolbarItem: FunctionComponent = () => { + const { showUnmappedFields, toggleShowUnmappedFields } = useContext(DataMapperContext)!; + const onClick = useCallback(() => { + toggleShowUnmappedFields(); + }, [toggleShowUnmappedFields]); + + return ( + + Show/hide unmapped fields}> + + + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/index.ts b/packages/ui/src/components/toolbarItems/index.ts new file mode 100644 index 000000000..031e1c88b --- /dev/null +++ b/packages/ui/src/components/toolbarItems/index.ts @@ -0,0 +1,13 @@ +export * from './AboutToolbarItem'; +export * from './AddMappingToolbarItem'; +export * from './ExportMappingFileDropdownItem'; +export * from './ImportMappingFileDropdownItem'; +export * from './MainMenuToolbarItem'; +export * from './ResetDropdownItem'; +export * from './ToggleSourceTargetViewToolbarItem'; +export * from './ToggleMappedFieldsToolbarItem'; +export * from './ToggleMappingPreviewToolbarItem'; +export * from './ToggleMappingTableViewToolbarItem'; +export * from './ToggleNamespaceTableViewToolbarItem'; +export * from './ToggleTypesToolbarItem'; +export * from './ToggleUnmappedFieldsToolbarItem'; diff --git a/packages/ui/src/atlasmap/impl/toolbarItems.module.css b/packages/ui/src/components/toolbarItems/toolbarItems.css similarity index 100% rename from packages/ui/src/atlasmap/impl/toolbarItems.module.css rename to packages/ui/src/components/toolbarItems/toolbarItems.css diff --git a/packages/ui/src/hooks/index.ts b/packages/ui/src/hooks/index.ts new file mode 100644 index 000000000..143c7ed0f --- /dev/null +++ b/packages/ui/src/hooks/index.ts @@ -0,0 +1,3 @@ +export * from './useDataMapperContext'; +export * from './useDimensions'; +export * from './useToggle'; diff --git a/packages/ui/src/hooks/useDataMapperContext.ts b/packages/ui/src/hooks/useDataMapperContext.ts new file mode 100644 index 000000000..b60d8d9bb --- /dev/null +++ b/packages/ui/src/hooks/useDataMapperContext.ts @@ -0,0 +1,70 @@ +import { CanvasView, IDataMapperContext, IMapping, INotification } from '../models'; +import { useMemo, useState } from 'react'; +import { useToggle } from './useToggle'; + +export const useDataMapperContext = (): IDataMapperContext => { + const [loading, setLoading] = useState(false); + const [activeView, setActiveView] = useState('SourceTarget'); + const [notifications, setNotifications] = useState([]); + const { state: isPreviewEnabled, toggle: togglePreview } = useToggle(false); + const { state: showTypes, toggle: toggleShowTypes } = useToggle(true); + const { state: showMappedFields, toggle: toggleShowMappedFields } = useToggle(true); + const { state: showUnmappedFields, toggle: toggleShowUnmappedFields } = useToggle(true); + const [selectedMapping, setSelectedMapping] = useState(null); + const [mappings, setMappings] = useState([]); + + return useMemo(() => { + return { + loading, + activeView, + setActiveView, + notifications, + constants: { + id: 'constants', + name: 'Constants', + type: 'constants', + fields: [], + }, + sourceProperties: { + id: 'sourceProperties', + name: 'Source Properties', + type: 'source', + fields: [], + }, + targetProperties: { + id: 'targetProperties', + name: 'Target Properties', + type: 'target', + fields: [], + }, + sources: [], + targets: [], + mappings, + setMappings, + selectedMapping, + setSelectedMapping, + isPreviewEnabled, + togglePreview, + showTypes, + toggleShowTypes, + showMappedFields, + toggleShowMappedFields, + showUnmappedFields, + toggleShowUnmappedFields, + }; + }, [ + activeView, + isPreviewEnabled, + loading, + mappings, + notifications, + selectedMapping, + showMappedFields, + showTypes, + showUnmappedFields, + togglePreview, + toggleShowMappedFields, + toggleShowTypes, + toggleShowUnmappedFields, + ]); +}; diff --git a/packages/ui/src/atlasmap/impl/utils/useToggle.ts b/packages/ui/src/hooks/useToggle.ts similarity index 91% rename from packages/ui/src/atlasmap/impl/utils/useToggle.ts rename to packages/ui/src/hooks/useToggle.ts index daf845edd..7087868fc 100644 --- a/packages/ui/src/atlasmap/impl/utils/useToggle.ts +++ b/packages/ui/src/hooks/useToggle.ts @@ -17,10 +17,7 @@ import { useCallback, useEffect, useState } from 'react'; type OnToggleReturnType = Promise | boolean; -export function useToggle( - initialState: boolean, - onToggle?: (toggled: boolean) => OnToggleReturnType, -) { +export function useToggle(initialState: boolean, onToggle?: (toggled: boolean) => OnToggleReturnType) { const [state, setState] = useState(initialState); useEffect(() => setState(initialState), [initialState]); const toggle = useCallback(async () => { diff --git a/packages/ui/src/layout/ContextToolbar.tsx b/packages/ui/src/layout/ContextToolbar.tsx new file mode 100644 index 000000000..51ed36d72 --- /dev/null +++ b/packages/ui/src/layout/ContextToolbar.tsx @@ -0,0 +1,60 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent, useContext } from 'react'; +import { Toolbar, ToolbarContent, ToolbarGroup } from '@patternfly/react-core'; +import './Toolbar.css'; +import { + AboutToolbarItem, + AddMappingToolbarItem, + ToggleSourceTargetViewToolbarItem, + ToggleMappedFieldsToolbarItem, + ToggleMappingPreviewToolbarItem, + ToggleMappingTableViewToolbarItem, + ToggleNamespaceTableViewToolbarItem, + ToggleTypesToolbarItem, + ToggleUnmappedFieldsToolbarItem, + MainMenuToolbarItem, +} from '../components/toolbarItems'; +import { DataMapperContext } from '../providers'; + +export const ContextToolbar: FunctionComponent = () => { + const { activeView } = useContext(DataMapperContext)!; + + return ( + + + { + + + + } + + + + + + + {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } + {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } + {activeView === 'SourceTarget' && } + {activeView === 'SourceTarget' && } + {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } + {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } + + + + ); +}; diff --git a/packages/ui/src/atlasmap/Layout/ExpressionToolbar.tsx b/packages/ui/src/layout/ExpressionToolbar.tsx similarity index 56% rename from packages/ui/src/atlasmap/Layout/ExpressionToolbar.tsx rename to packages/ui/src/layout/ExpressionToolbar.tsx index 1ba206580..4c27481f3 100644 --- a/packages/ui/src/atlasmap/Layout/ExpressionToolbar.tsx +++ b/packages/ui/src/layout/ExpressionToolbar.tsx @@ -13,17 +13,20 @@ See the License for the specific language governing permissions and limitations under the License. */ -import {FunctionComponent, PropsWithChildren} from 'react'; -import { Toolbar, ToolbarContent } from '@patternfly/react-core'; +import { FunctionComponent, PropsWithChildren } from 'react'; +import { Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem } from '@patternfly/react-core'; +import './Toolbar.css'; +import { ExpressionEditor } from '../components/expression'; -import { css } from '@patternfly/react-styles'; -import styles from './Toolbar.module.css'; - -export const ExpressionToolbar: FunctionComponent = ({ children }) => { +export const ExpressionToolbar: FunctionComponent = () => { return ( - - - {children} + + + + + + + ); diff --git a/packages/ui/src/layout/MainLayout.scss b/packages/ui/src/layout/MainLayout.css similarity index 100% rename from packages/ui/src/layout/MainLayout.scss rename to packages/ui/src/layout/MainLayout.css diff --git a/packages/ui/src/layout/MainLayout.tsx b/packages/ui/src/layout/MainLayout.tsx index 122ed3c41..2bd9e5033 100644 --- a/packages/ui/src/layout/MainLayout.tsx +++ b/packages/ui/src/layout/MainLayout.tsx @@ -13,16 +13,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, ReactElement, ReactNode, memo, PropsWithChildren } from 'react'; +import { FunctionComponent, ReactElement, ReactNode, memo, useMemo, useContext } from 'react'; import { Stack, StackItem } from '@patternfly/react-core'; +import { Sidebar } from '../_bk_atlasmap/Layout/Sidebar'; +import './MainLayout.css'; +import { ContextToolbar, ExpressionToolbar } from '.'; +import { MappingTableView, NamespaceTableView } from '../_bk_atlasmap/Views'; +import { SourceTargetView } from './views'; +import { DataMapperContext } from '../providers'; -import { Sidebar } from '../atlasmap/Layout/Sidebar'; -import './MainLayout.scss'; - -export interface IMainLayoutProps extends PropsWithChildren { +export interface IMainLayoutProps { showSidebar: boolean; - contextToolbar?: ReactNode; - expressionToolbar?: ReactNode; controlBar?: ReactNode; renderSidebar: () => ReactElement; } @@ -30,24 +31,65 @@ export interface IMainLayoutProps extends PropsWithChildren { export const MainLayout: FunctionComponent = memo(function MainLayout({ showSidebar, renderSidebar, - contextToolbar, - expressionToolbar, controlBar, - children, }) { const sideBar = {renderSidebar}; const containerClasses = 'pf-topology-container' + `${sideBar ? ' pf-topology-container__with-sidebar' : ''}` + `${showSidebar ? ' pf-topology-container__with-sidebar--open' : ''}`; + const { activeView } = useContext(DataMapperContext)!; + const currentView = useMemo(() => { + switch (activeView) { + case 'SourceTarget': + return ; + case 'MappingTable': + return ( + + ); + case 'NamespaceTable': + return ( + + handlers.onEditNamespace(docName, { + alias, + uri, + locationUri, + targetNamespace, + }) + } + onDeleteNamespace={handlers.deleteNamespace} + /> + ); + default: + return <>View {activeView} is not supported; + } + }, [activeView]); return ( - {contextToolbar && {contextToolbar}} - {expressionToolbar && {expressionToolbar}} + + + + + +
- {children} + {currentView} {controlBar && {controlBar}}
{sideBar} diff --git a/packages/ui/src/atlasmap/Layout/Toolbar.module.css b/packages/ui/src/layout/Toolbar.css similarity index 89% rename from packages/ui/src/atlasmap/Layout/Toolbar.module.css rename to packages/ui/src/layout/Toolbar.css index 4764ea0f9..c103ac642 100644 --- a/packages/ui/src/atlasmap/Layout/Toolbar.module.css +++ b/packages/ui/src/layout/Toolbar.css @@ -8,4 +8,8 @@ .toolbarContent { --pf-c-toolbar__content--PaddingLeft: 0px !important; --pf-c-toolbar__content--PaddingRight: 0px !important; +} + +.expressionToolbarItem { + flex: 1 } \ No newline at end of file diff --git a/packages/ui/src/layout/index.ts b/packages/ui/src/layout/index.ts index 1abe55193..107c59cb0 100644 --- a/packages/ui/src/layout/index.ts +++ b/packages/ui/src/layout/index.ts @@ -1 +1,3 @@ export * from './MainLayout'; +export * from './ContextToolbar'; +export * from './ExpressionToolbar'; diff --git a/packages/ui/src/layout/views/index.ts b/packages/ui/src/layout/views/index.ts new file mode 100644 index 000000000..bf3c357dc --- /dev/null +++ b/packages/ui/src/layout/views/index.ts @@ -0,0 +1 @@ +export * from './sourceTarget/SourceTargetView'; diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/Column.module.css b/packages/ui/src/layout/views/sourceTarget/Column.css similarity index 100% rename from packages/ui/src/atlasmap/UI/ColumnMapper/Column.module.css rename to packages/ui/src/layout/views/sourceTarget/Column.css diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/Column.tsx b/packages/ui/src/layout/views/sourceTarget/Column.tsx similarity index 61% rename from packages/ui/src/atlasmap/UI/ColumnMapper/Column.tsx rename to packages/ui/src/layout/views/sourceTarget/Column.tsx index 880f9838d..3ebf0bb3b 100644 --- a/packages/ui/src/atlasmap/UI/ColumnMapper/Column.tsx +++ b/packages/ui/src/layout/views/sourceTarget/Column.tsx @@ -13,31 +13,19 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { FunctionComponent, useMemo } from 'react'; +import { FunctionComponent, PropsWithChildren, useMemo } from 'react'; import { css } from '@patternfly/react-styles'; -import styles from './Column.module.css'; +import './Column.css'; -export interface IColumnProps { +export interface IColumnProps extends PropsWithChildren { totalColumns?: number; visible?: boolean; } -export const Column: FunctionComponent = ({ - totalColumns = 1, - visible = true, - children, - ...props -}) => { - const style = useMemo( - () => ({ flex: `0 0 ${100 / totalColumns}%` }), - [totalColumns], - ); +export const Column: FunctionComponent = ({ totalColumns = 1, visible = true, children, ...props }) => { + const style = useMemo(() => ({ flex: `0 0 ${100 / totalColumns}%` }), [totalColumns]); return ( -
+
{children}
); diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/ColumnBody.module.css b/packages/ui/src/layout/views/sourceTarget/ColumnBody.css similarity index 100% rename from packages/ui/src/atlasmap/UI/ColumnMapper/ColumnBody.module.css rename to packages/ui/src/layout/views/sourceTarget/ColumnBody.css diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/ColumnBody.tsx b/packages/ui/src/layout/views/sourceTarget/ColumnBody.tsx similarity index 71% rename from packages/ui/src/atlasmap/UI/ColumnMapper/ColumnBody.tsx rename to packages/ui/src/layout/views/sourceTarget/ColumnBody.tsx index 931302a7c..030a5de61 100644 --- a/packages/ui/src/atlasmap/UI/ColumnMapper/ColumnBody.tsx +++ b/packages/ui/src/layout/views/sourceTarget/ColumnBody.tsx @@ -13,15 +13,16 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { PropsWithChildren, forwardRef } from 'react'; -import styles from './ColumnBody.module.css'; +import { PropsWithChildren, forwardRef } from 'react'; +import './ColumnBody.css'; -export const ColumnBody = forwardRef>( - function ColumnBody({ children }, ref) { - return ( -
- {children} -
- ); - }, -); +export const ColumnBody = forwardRef>>(function ColumnBody( + { children }, + ref, +) { + return ( +
+ {children} +
+ ); +}); diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/ColumnMapper.module.css b/packages/ui/src/layout/views/sourceTarget/ColumnMapper.css similarity index 100% rename from packages/ui/src/atlasmap/UI/ColumnMapper/ColumnMapper.module.css rename to packages/ui/src/layout/views/sourceTarget/ColumnMapper.css diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/ColumnMapper.tsx b/packages/ui/src/layout/views/sourceTarget/ColumnMapper.tsx similarity index 75% rename from packages/ui/src/atlasmap/UI/ColumnMapper/ColumnMapper.tsx rename to packages/ui/src/layout/views/sourceTarget/ColumnMapper.tsx index be9f9a2ec..13a91c2ab 100644 --- a/packages/ui/src/atlasmap/UI/ColumnMapper/ColumnMapper.tsx +++ b/packages/ui/src/layout/views/sourceTarget/ColumnMapper.tsx @@ -13,20 +13,16 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { Canvas, ICanvasProps } from '../Canvas'; -import React, { FunctionComponent } from 'react'; +import { Canvas, ICanvasProps } from '../../../_bk_atlasmap/UI/Canvas'; +import { FunctionComponent } from 'react'; import { css } from '@patternfly/react-styles'; -import styles from './ColumnMapper.module.css'; +import './ColumnMapper.css'; export interface IColumnMapperProps extends ICanvasProps {} -export const ColumnMapper: FunctionComponent = ({ - className, - children, - ...props -}) => { +export const ColumnMapper: FunctionComponent = ({ className, children, ...props }) => { return ( - + {children} ); diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/Columns.module.css b/packages/ui/src/layout/views/sourceTarget/Columns.css similarity index 100% rename from packages/ui/src/atlasmap/UI/ColumnMapper/Columns.module.css rename to packages/ui/src/layout/views/sourceTarget/Columns.css diff --git a/packages/ui/src/atlasmap/UI/ColumnMapper/Columns.tsx b/packages/ui/src/layout/views/sourceTarget/Columns.tsx similarity index 72% rename from packages/ui/src/atlasmap/UI/ColumnMapper/Columns.tsx rename to packages/ui/src/layout/views/sourceTarget/Columns.tsx index 04cd648d7..85dd71ccb 100644 --- a/packages/ui/src/atlasmap/UI/ColumnMapper/Columns.tsx +++ b/packages/ui/src/layout/views/sourceTarget/Columns.tsx @@ -13,17 +13,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { HTMLObject, useCanvas } from '../Canvas'; -import React, { FunctionComponent } from 'react'; -import styles from './Columns.module.css'; +import { HTMLObject, useCanvas } from '../../../_bk_atlasmap/UI/Canvas'; +import { FunctionComponent, PropsWithChildren } from 'react'; +import './Columns.css'; -export const Columns: FunctionComponent = ({ children }) => { +export const Columns: FunctionComponent = ({ children }) => { const { dimensions: { width, height }, } = useCanvas(); return ( -
{children}
+
{children}
); }; diff --git a/packages/ui/src/atlasmap/Views/ColumnMapperView/Links/SourceTargetLinks.module.css b/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.css similarity index 100% rename from packages/ui/src/atlasmap/Views/ColumnMapperView/Links/SourceTargetLinks.module.css rename to packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.css diff --git a/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.tsx b/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.tsx new file mode 100644 index 000000000..2c5d80a5d --- /dev/null +++ b/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.tsx @@ -0,0 +1,90 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent, MouseEvent, ReactElement, useContext, useMemo } from 'react'; +import { SOURCES_FIELD_ID_PREFIX, TARGETS_FIELD_ID_PREFIX } from '../../../_bk_atlasmap/Views/ColumnMapperView/Columns'; + +import { NodesArc } from '../../../_bk_atlasmap/UI'; +import './SourceTargetLinks.css'; +import { useToggle } from '../../../hooks'; +import { IMapping } from '../../../models'; +import { DataMapperContext } from '../../../providers'; + +export const SourceTargetLinks: FunctionComponent = () => { + const { mappings, selectedMapping, setSelectedMapping } = useContext(DataMapperContext)!; + const selectedMappingId = selectedMapping?.id; + const sortedMappings = useMemo( + () => mappings.sort((a) => (a.id === selectedMappingId ? 1 : -1)), + [mappings, selectedMappingId], + ); + + return ( + + {sortedMappings.map((m) => ( + setSelectedMapping(m)} + isSelected={m.id === selectedMappingId} + key={m.id} + /> + ))} + + + + ); +}; + +interface IMappingLinesProps { + mapping: IMapping; + isSelected: boolean; + onClick: () => void; +} + +const MappingLines: FunctionComponent = ({ mapping, isSelected, onClick }) => { + const { state: isHovered, toggleOn: toggleHoveredOn, toggleOff: toggleHoveredOff } = useToggle(false); + + const handleClick = (event: MouseEvent) => { + onClick(); + event.stopPropagation(); + }; + + const color = isSelected ? 'var(--pf-global--active-color--100)' : undefined; + const hoverColor = !isSelected ? 'var(--pf-global--active-color--400)' : undefined; + const mappingLines = mapping.sourceFields.reduce((lines, start) => { + const linesFromSource = mapping.targetFields.map((end) => ( + + )); + return [...lines, ...linesFromSource]; + }, []); + return {mappingLines}; +}; diff --git a/packages/ui/src/layout/views/sourceTarget/SourceTargetView.css b/packages/ui/src/layout/views/sourceTarget/SourceTargetView.css new file mode 100644 index 000000000..7cc656947 --- /dev/null +++ b/packages/ui/src/layout/views/sourceTarget/SourceTargetView.css @@ -0,0 +1,3 @@ +.canvas { + background-color: var(--pf-global--BackgroundColor--light-300); +} diff --git a/packages/ui/src/layout/views/sourceTarget/SourceTargetView.tsx b/packages/ui/src/layout/views/sourceTarget/SourceTargetView.tsx new file mode 100644 index 000000000..77ee421a2 --- /dev/null +++ b/packages/ui/src/layout/views/sourceTarget/SourceTargetView.tsx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Columns, SourceTargetLinks, SourcesColumn, TargetsColumn } from './index'; +import { FunctionComponent } from 'react'; +import { NodeRefProvider } from '../../../providers/NodeRefProvider'; +import { ColumnMapper } from './ColumnMapper'; + +export const SourceTargetView: FunctionComponent = () => { + return ( + + + + + + + + + + ); +}; diff --git a/packages/ui/src/layout/views/sourceTarget/SourcesColumn.action.ts b/packages/ui/src/layout/views/sourceTarget/SourcesColumn.action.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx b/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx new file mode 100644 index 000000000..aa65da178 --- /dev/null +++ b/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx @@ -0,0 +1,114 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { AtlasmapDocumentType, GroupId } from '../../../_bk_atlasmap/Views'; +import { ImportButton } from '../../../_bk_atlasmap/Views'; +import { Column, ColumnBody, NodeRef, SearchableColumnHeader } from '../../../_bk_atlasmap/UI'; +import { IConstantsTreeCallbacks } from '../../../components/documents'; +import { IPropertiesTreeCallbacks } from '../../../components/documents'; +import { FunctionComponent, useCallback, useContext } from 'react'; +import { + SOURCES_CONSTANTS_ID, + SOURCES_DOCUMENT_ID_PREFIX, + SOURCES_HEIGHT_BOUNDARY_ID, + SOURCES_PROPERTIES_ID, + SOURCES_WIDTH_BOUNDARY_ID, +} from '../../../_bk_atlasmap/Views'; + +import { IMapping, IField, IDragAndDropField } from '../../../models'; +import { DataMapperContext } from '../../../providers'; +import { ConstantsDocument, SourceDocument, SourcePropertiesDocument } from '../../../components/documents'; + +export interface ISourceColumnCallbacks extends IConstantsTreeCallbacks, IPropertiesTreeCallbacks { + acceptDropType: AtlasmapDocumentType; + draggableType: AtlasmapDocumentType; + isSource: boolean; + onCreateConstant: () => void; + onCreateProperty: (isSource: boolean) => void; + onCustomClassSearch?: (isSource: boolean) => void; + onCaptureDocumentID?: (id: string) => void; + onChangeDocumentName?: (id: string, name: string) => void; + onImportDocument?: (selectedFile: File) => void; + onDeleteDocument?: (id: GroupId) => void; + onSearch: (content: string) => void; + canDrop: (source: IField, target: IDragAndDropField) => boolean; + onDrop: (source: IField, target: IDragAndDropField | null) => void; + onShowMappingDetails: (mapping: IMapping) => void; + canAddFieldToSelectedMapping: (source: IField) => boolean; + onAddToSelectedMapping: (source: IField) => void; + canRemoveFromSelectedMapping: (source: IField) => boolean; + canStartMapping: (field: IField) => boolean; + onStartMapping: (field: IField) => void; + onRemoveFromSelectedMapping: (source: IField) => void; + shouldShowMappingPreviewForField: (field: IField) => boolean; + onFieldPreviewChange: (field: IField, value: string) => void; + canAddToSelectedMapping: (isSource: boolean) => boolean; + onEditCSVParams: (id: string, isSource: boolean) => void; +} + +export const SourcesColumn: FunctionComponent = () => { + const { sources } = useContext(DataMapperContext)!; + const onSearch = useCallback(() => { + alert('not yet implemented'); + }, []); + const onImportDocument = useCallback(() => { + alert('not yet implemented'); + }, []); + + return ( + + ]} + /> + + + +
+ + + + + + + {sources.map((s) => { + const documentId = `${SOURCES_DOCUMENT_ID_PREFIX}${s.id}`; + return ( + + + + ); + })} +
+
+
+
+
+ ); +}; diff --git a/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx b/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx new file mode 100644 index 000000000..2700b4b2b --- /dev/null +++ b/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx @@ -0,0 +1,111 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { AtlasmapDocumentType, GroupId } from '../../../_bk_atlasmap/Views/models'; +import { ImportButton } from '../../../_bk_atlasmap/Views/ColumnMapperView/Actions'; +import { NodeRef, SearchableColumnHeader } from '../../../_bk_atlasmap/UI'; +import { IPropertiesTreeCallbacks } from '../../../components/documents/PropertiesTree'; +import { FunctionComponent, useCallback, useContext } from 'react'; +import { + TARGETS_DOCUMENT_ID_PREFIX, + TARGETS_HEIGHT_BOUNDARY_ID, + TARGETS_PROPERTIES_ID, + TARGETS_WIDTH_BOUNDARY_ID, +} from '../../../_bk_atlasmap/Views/ColumnMapperView/Columns/constants'; + +import { IMapping, IDocument, IField, IDragAndDropField } from '../../../models'; +import { TargetDocument, TargetPropertiesDocument } from '../../../components/documents'; +import { DataMapperContext } from '../../../providers'; +import { Column, ColumnBody } from '.'; +export interface ITargetsColumnCallbacks extends IPropertiesTreeCallbacks { + acceptDropType: AtlasmapDocumentType; + draggableType: AtlasmapDocumentType; + isSource: boolean; + onCreateProperty: (isSource: boolean) => void; + onCaptureDocumentID?: (id: string) => void; + onChangeDocumentName?: (id: string, name: string) => void; + onDeleteDocument?: (id: GroupId) => void; + onImportDocument?: (selectedFile: File) => void; + onCustomClassSearch?: (isSource: boolean) => void; + onSearch: (content: string) => void; + onDrop: (source: IField, target: IDragAndDropField | null) => void; + canDrop: (source: IField, target: IDragAndDropField) => boolean; + onShowMappingDetails: (mapping: IMapping) => void; + canAddFieldToSelectedMapping: (field: IField) => boolean; + onAddToSelectedMapping: (field: IField) => void; + canRemoveFromSelectedMapping: (field: IField) => boolean; + onRemoveFromSelectedMapping: (field: IField) => void; + canStartMapping: (field: IField) => boolean; + onStartMapping: (field: IField) => void; + shouldShowMappingPreviewForField: (field: IField) => boolean; + onFieldPreviewChange: (field: IField, value: string) => void; + canAddToSelectedMapping: (isSource: boolean) => boolean; + onEditCSVParams: (id: string, isSource: boolean) => void; +} + +export interface ITargetsColumnData { + targetProperties?: IDocument | null; + showMappingPreview: boolean; + showTypes: boolean; + targets: Array; +} + +export const TargetsColumn: FunctionComponent = () => { + const { targets } = useContext(DataMapperContext)!; + const onSearch = useCallback(() => { + alert('not yet implemented'); + }, []); + const onImportDocument = useCallback(() => { + alert('not yet implemented'); + }, []); + + return ( + + ]} + /> + + + +
+ + + + {targets.map((t) => { + const documentId = `${TARGETS_DOCUMENT_ID_PREFIX}${t.id}`; + return ( + + + + ); + })} +
+
+
+
+
+ ); +}; diff --git a/packages/ui/src/layout/views/sourceTarget/index.ts b/packages/ui/src/layout/views/sourceTarget/index.ts new file mode 100644 index 000000000..7edd7b5ca --- /dev/null +++ b/packages/ui/src/layout/views/sourceTarget/index.ts @@ -0,0 +1,6 @@ +export * from './Column'; +export * from './ColumnBody'; +export * from './Columns'; +export * from './SourceTargetLinks'; +export * from './SourcesColumn'; +export * from './TargetsColumn'; diff --git a/packages/ui/src/models/api.ts b/packages/ui/src/models/api.ts new file mode 100644 index 000000000..58a94f913 --- /dev/null +++ b/packages/ui/src/models/api.ts @@ -0,0 +1,85 @@ +import { AlertProps } from '@patternfly/react-core'; +import { ElementId } from '../_bk_atlasmap/Views'; +import { ITransformationArgument, ITransformationSelectOption } from '../_bk_atlasmap/UI'; + +export type CanvasView = 'SourceTarget' | 'MappingTable' | 'NamespaceTable'; + +export interface INotification { + id: string; + variant: AlertProps['variant']; + title: string; + description: string; + isRead?: boolean; + mappingId?: string; +} + +export interface IDataMapperContext { + loading: boolean; + activeView: CanvasView; + setActiveView(view: CanvasView): void; + notifications: INotification[]; + constants: IDocument; + sourceProperties: IDocument; + targetProperties: IDocument; + sources: IDocument[]; + targets: IDocument[]; + mappings: IMapping[]; + setMappings(mappings: IMapping[]): void; + selectedMapping: IMapping | null; + setSelectedMapping(mapping: IMapping | null): void; + isPreviewEnabled: boolean; + togglePreview(): void; + showTypes: boolean; + toggleShowTypes(): void; + showMappedFields: boolean; + toggleShowMappedFields(): void; + showUnmappedFields: boolean; + toggleShowUnmappedFields(): void; +} + +export interface IDocument { + id: string; + name: string; + type: string; + fields: IField[]; + namespaces?: INamespace[]; +} + +export interface INamespace { + alias: string; + uri: string; + locationUri: string; + isTarget: boolean; +} + +export interface IMappedField extends IField { + transformations: Array<{ + name: string; + options: ITransformationSelectOption[]; + arguments: ITransformationArgument[]; + }>; +} + +export interface IMapping { + id: string; + name: string; + sourceFields: IMappedField[]; + targetFields: IMappedField[]; +} + +export interface IField { + id: ElementId; + name: string; + type: string; + scope: string; + value: string; + path: string; + mappings: IMapping[]; + hasTransformations: boolean; + isAttribute: boolean; + isCollection: boolean; + isConnected: boolean; + isInCollection: boolean; + isDisabled: boolean; + enumeration: boolean; +} diff --git a/packages/ui/src/models/index.ts b/packages/ui/src/models/index.ts index 9cf4c2b6b..d010b95c8 100644 --- a/packages/ui/src/models/index.ts +++ b/packages/ui/src/models/index.ts @@ -1 +1,3 @@ +export * from './api'; export * from './dnd'; +export * from './mapping'; diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts new file mode 100644 index 000000000..6b62d34ab --- /dev/null +++ b/packages/ui/src/models/mapping.ts @@ -0,0 +1,9 @@ +import { IMappedField, IMapping } from './api'; +import { generateRandomId } from '../util'; + +export class Mapping implements IMapping { + id: string = generateRandomId('mapping'); + name: string = ''; + sourceFields: IMappedField[] = []; + targetFields: IMappedField[] = []; +} diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index 1e009743f..23efa6ce1 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -16,14 +16,11 @@ import { DataActionPayload, dataReducer, - IDataState, initDataState, initNotificationsState, - INotificationsState, notificationsReducer, -} from '../atlasmap/impl/reducers'; -import { MappingSerializer } from '../atlasmap/core'; -import { IAtlasmapDocument, IAtlasmapField } from '../atlasmap/Views'; +} from '../_bk_atlasmap/impl/reducers'; +import { MappingSerializer } from '../_bk_atlasmap/core'; import { createContext, FunctionComponent, PropsWithChildren, useCallback, useEffect, useReducer } from 'react'; import { errorInfoToNotification, @@ -32,15 +29,13 @@ import { fromMappingDefinitionToIMappings, fromMappingModelToImapping, initializationService, -} from '../atlasmap/impl/utils'; +} from '../_bk_atlasmap/impl/utils'; import { debounceTime } from 'rxjs/operators'; -import { Loading } from '../atlasmap/UI'; +import { Loading } from '../components'; +import { useDataMapperContext } from '../hooks/useDataMapperContext'; +import { IDocument, IDataMapperContext, IField } from '../models'; -interface IDataMapperContext extends IDataState, INotificationsState { - onLoading: () => void; - onReset: () => void; -} export const DataMapperContext = createContext(null); export interface IDataMapperProviderProps extends PropsWithChildren { @@ -49,6 +44,7 @@ export interface IDataMapperProviderProps extends PropsWithChildren { export const DataMapperProvider: FunctionComponent = ({ onMappingChange, children }) => { const [data, dispatchData] = useReducer(dataReducer, {}, initDataState); const [notifications, dispatchNotifications] = useReducer(notificationsReducer, {}, initNotificationsState); + const value = useDataMapperContext(); const onReset = () => { dispatchData({ type: 'reset' }); @@ -83,7 +79,7 @@ export const DataMapperProvider: FunctionComponent = ( configModel.sourceDocs .map(fromDocumentDefinitionToFieldGroup) /* eslint-disable @typescript-eslint/no-explicit-any */ - .filter((d: any) => d) as IAtlasmapDocument[] + .filter((d: any) => d) as IDocument[] ); }, [configModel], @@ -112,7 +108,7 @@ export const DataMapperProvider: FunctionComponent = ( const convertTargets = useCallback( function convertTargetsCb() { - return configModel.targetDocs.map(fromDocumentDefinitionToFieldGroup).filter((d) => d) as IAtlasmapDocument[]; + return configModel.targetDocs.map(fromDocumentDefinitionToFieldGroup).filter((d) => d) as IDocument[]; }, [configModel], ); @@ -132,7 +128,7 @@ export const DataMapperProvider: FunctionComponent = ( ); const convertSourcesToFlatArray = useCallback( - function convertSourcesToFlatArrayCb(): IAtlasmapField[] { + function convertSourcesToFlatArrayCb(): IField[] { return configModel.sourceDocs.flatMap((s) => s.getAllFields().flatMap((f) => { const af = fromFieldToIFieldsNode(f); @@ -235,15 +231,6 @@ export const DataMapperProvider: FunctionComponent = ( ); return ( - - {data.pending ? : children} - + {value.loading ? : children} ); }; diff --git a/packages/ui/src/atlasmap/UI/Canvas/NodeRefProvider.tsx b/packages/ui/src/providers/NodeRefProvider.tsx similarity index 79% rename from packages/ui/src/atlasmap/UI/Canvas/NodeRefProvider.tsx rename to packages/ui/src/providers/NodeRefProvider.tsx index aa59ecbbd..953589f19 100644 --- a/packages/ui/src/atlasmap/UI/Canvas/NodeRefProvider.tsx +++ b/packages/ui/src/providers/NodeRefProvider.tsx @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { +import { FunctionComponent, MutableRefObject, createContext, @@ -21,8 +21,9 @@ import React, { useContext, useEffect, useRef, + PropsWithChildren, } from 'react'; -import { useBoundingCanvasRect } from './useBoundingCanvasRect'; +import { useBoundingCanvasRect } from '../_bk_atlasmap/UI/Canvas/useBoundingCanvasRect'; export interface NodeRect extends DOMRect { clipped?: boolean; @@ -55,15 +56,12 @@ export interface NodeRefMap { export interface INodeRefContext { nodes: MutableRefObject; setRef: (props: NodeRefPropsWithId) => string; - unsetRef: ( - id: string | undefined | Array, - key: string, - ) => void; + unsetRef: (id: string | undefined | Array, key: string) => void; } export const NodeRefContext = createContext(null); -export const NodeRefProvider: FunctionComponent = ({ children }) => { +export const NodeRefProvider: FunctionComponent = ({ children }) => { const nodes = useRef({}); const setRef = ({ id, ...props }: NodeRefPropsWithId) => { const key = `${id}-${Date.now()}`; @@ -79,10 +77,7 @@ export const NodeRefProvider: FunctionComponent = ({ children }) => { } return key; }; - const unsetRef = ( - id: string | undefined | Array, - key: string, - ) => { + const unsetRef = (id: string | undefined | Array, key: string) => { const ids = Array.isArray(id) ? id : [id]; for (let index = 0; index < ids.length; index++) { const curId = ids[index]; @@ -129,38 +124,26 @@ export function useNodeRect() { const node = nodes.current[id]; const element = node ? node.ref.current : undefined; if (element) { - let dimensions = getBoundingCanvasRect(element); + const dimensions = getBoundingCanvasRect(element); if (dimensions.height === 0 && node.parentId) { return getRect(node.parentId); } let boundaryRect; if (node.boundaryId && (boundaryRect = getRect(node.boundaryId))) { - const overrideWidthRect = node.overrideWidth - ? getRect(node.overrideWidth) - : undefined; - const overrideHeightRect = node.overrideHeight - ? getRect(node.overrideHeight) - : undefined; + const overrideWidthRect = node.overrideWidth ? getRect(node.overrideWidth) : undefined; + const overrideHeightRect = node.overrideHeight ? getRect(node.overrideHeight) : undefined; const width = overrideWidthRect?.width || dimensions.width; const height = overrideHeightRect?.height || dimensions.height; const x = Math.min( - Math.max( - overrideWidthRect?.left || dimensions.left, - boundaryRect.left, - ), + Math.max(overrideWidthRect?.left || dimensions.left, boundaryRect.left), boundaryRect.width + boundaryRect.left - dimensions.width, ); const isXClipped = x !== (overrideWidthRect?.x || dimensions.x); const y = Math.min( - Math.max( - overrideHeightRect?.top || dimensions.top + dimensions.height / 2, - boundaryRect.top, - ), + Math.max(overrideHeightRect?.top || dimensions.top + dimensions.height / 2, boundaryRect.top), boundaryRect.height + boundaryRect.top, ); - const isYClipped = - y === boundaryRect.top || - y === boundaryRect.height + boundaryRect.top; + const isYClipped = y === boundaryRect.top || y === boundaryRect.height + boundaryRect.top; return { width, height, diff --git a/packages/ui/src/atlasmap/UI/Tree/TreeFocusProvider.tsx b/packages/ui/src/providers/TreeFocusProvider.tsx similarity index 88% rename from packages/ui/src/atlasmap/UI/Tree/TreeFocusProvider.tsx rename to packages/ui/src/providers/TreeFocusProvider.tsx index 693afa5a7..0b4672f17 100644 --- a/packages/ui/src/atlasmap/UI/Tree/TreeFocusProvider.tsx +++ b/packages/ui/src/providers/TreeFocusProvider.tsx @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import React, { +import { FocusEvent, FunctionComponent, KeyboardEvent, @@ -22,6 +22,7 @@ import React, { createContext, useContext, useState, + PropsWithChildren, } from 'react'; interface ITreeFocusContext { @@ -31,13 +32,9 @@ interface ITreeFocusContext { const TreeFocusContext = createContext(null); -export const TreeFocusProvider: FunctionComponent = ({ children }) => { +export const TreeFocusProvider: FunctionComponent = ({ children }) => { const [focusedItem, setFocusedItem] = useState(null); - return ( - - {children} - - ); + return {children}; }; export interface IUseTreeFocusProps { @@ -61,15 +58,15 @@ export const useTreeFocus = ({ } const { focusedItem, setFocusedItem } = context; const getFocusableItems = (el: HTMLElement) => { - return Array.from( - el.closest('[role=tree]')?.querySelectorAll('[role=treeitem]') || [], - ).filter((el) => { - const group = el.parentElement?.closest('[aria-expanded]'); - if (group) { - return group.getAttribute('aria-expanded') === 'true'; - } - return true; - }); + return Array.from(el.closest('[role=tree]')?.querySelectorAll('[role=treeitem]') || []).filter( + (el) => { + const group = el.parentElement?.closest('[aria-expanded]'); + if (group) { + return group.getAttribute('aria-expanded') === 'true'; + } + return true; + }, + ); }; const setFocus = (index: number, nodes: HTMLElement[]) => { @@ -199,9 +196,7 @@ export const useTreeFocus = ({ onClick, onBlur: (event: FocusEvent) => { if ( - (event.relatedTarget as HTMLElement | null)?.closest( - '[role=tree]', - ) !== ref.current?.closest('[role=tree]') + (event.relatedTarget as HTMLElement | null)?.closest('[role=tree]') !== ref.current?.closest('[role=tree]') ) { setFocusedItem(null); } diff --git a/packages/ui/src/providers/useDataMapper.ts b/packages/ui/src/providers/useDataMapper.ts index 4ae2e514f..54d827efa 100644 --- a/packages/ui/src/providers/useDataMapper.ts +++ b/packages/ui/src/providers/useDataMapper.ts @@ -59,11 +59,10 @@ import { toggleShowMappedFields, toggleShowUnmappedFields, trailerId, -} from '../atlasmap/impl'; -import { IAtlasmapField } from '../atlasmap/Views'; -import { TransitionMode } from '../atlasmap/core'; +} from '../_bk_atlasmap/impl'; +import { TransitionMode } from '../_bk_atlasmap/core'; import { DataMapperContext } from './DataMapperProvider'; - +import { IField } from '../models'; export function useDataMapper() { const context = useContext(DataMapperContext); @@ -102,17 +101,17 @@ export function useDataMapper() { resetAtlasmap(); }, []); - const onAddToMapping = useCallback((node: IAtlasmapField) => { + const onAddToMapping = useCallback((node: IField) => { const field = node.amField; addToCurrentMapping(field); }, []); - const onRemoveFromMapping = useCallback((node: IAtlasmapField) => { + const onRemoveFromMapping = useCallback((node: IField) => { const field = node.amField; removeFromCurrentMapping(field); }, []); - const onCreateMapping = useCallback((source: IAtlasmapField | undefined, target: IAtlasmapField | undefined) => { + const onCreateMapping = useCallback((source: IField | undefined, target: IField | undefined) => { const sourceField = source?.amField; const targetField = target?.amField; createMapping(sourceField, targetField); @@ -156,7 +155,7 @@ export function useDataMapper() { * from the specified panel, false otherwise. */ const isFieldAddableToSelection = useCallback( - (documentType: 'source' | 'target', field: IAtlasmapField, dropTarget?: IAtlasmapField): boolean => { + (documentType: 'source' | 'target', field: IField, dropTarget?: IField): boolean => { const { selectedMapping } = context; const isSource = documentType === 'source'; if ( @@ -205,7 +204,7 @@ export function useDataMapper() { ); const isFieldRemovableFromSelection = useCallback( - (documentType: 'source' | 'target', field: IAtlasmapField): boolean => + (documentType: 'source' | 'target', field: IField): boolean => !!context.selectedMapping && !!context.selectedMapping[documentType === 'source' ? 'sourceFields' : 'targetFields'].find( (f) => f.id === field.id, diff --git a/packages/ui/src/test-resources/hello.xsd b/packages/ui/src/test-resources/hello.xsd new file mode 100644 index 000000000..8dc58b8a4 --- /dev/null +++ b/packages/ui/src/test-resources/hello.xsd @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/packages/ui/src/test-resources/hello.xsl b/packages/ui/src/test-resources/hello.xsl new file mode 100644 index 000000000..15d2b34a6 --- /dev/null +++ b/packages/ui/src/test-resources/hello.xsl @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/packages/ui/src/test-resources/mock-xml-schema-shiporder.xsd b/packages/ui/src/test-resources/mock-xml-schema-shiporder.xsd new file mode 100644 index 000000000..c4db4258a --- /dev/null +++ b/packages/ui/src/test-resources/mock-xml-schema-shiporder.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/ui/src/util/common.ts b/packages/ui/src/util/common.ts new file mode 100644 index 000000000..30c2fd99c --- /dev/null +++ b/packages/ui/src/util/common.ts @@ -0,0 +1,6 @@ +export const generateRandomId = (kind: string, length = 4): string => { + const cryptoObj = window.crypto || (window as Window & { msCrypto?: Crypto }).msCrypto; + const randomNumber = Math.floor(cryptoObj?.getRandomValues(new Uint32Array(1))[0] ?? Date.now()); + + return `${kind}-${randomNumber.toString(10).slice(0, length)}`; +}; diff --git a/packages/ui/src/util/index.ts b/packages/ui/src/util/index.ts new file mode 100644 index 000000000..d0b932366 --- /dev/null +++ b/packages/ui/src/util/index.ts @@ -0,0 +1 @@ +export * from './common'; From cd49af4d10c65a9d7c83d245ea9be0a7559b5c60 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 7 Feb 2024 22:20:00 -0500 Subject: [PATCH 005/471] checkpoint: upload file and stringify (#2 1/5) --- .../Views/ColumnMapperView/Actions/index.ts | 2 +- .../views/sourceTarget/SourcesColumn.tsx | 4 ++-- .../views/sourceTarget/TargetsColumn.tsx | 4 ++-- .../actions/ImportDocumentButton.tsx} | 19 +++++++++++++------ packages/ui/src/models/api.ts | 2 ++ packages/ui/src/util/common.ts | 10 ++++++++++ 6 files changed, 30 insertions(+), 11 deletions(-) rename packages/ui/src/{_bk_atlasmap/Views/ColumnMapperView/Actions/ImportButton.tsx => layout/views/sourceTarget/actions/ImportDocumentButton.tsx} (71%) diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts index fa9b936a4..44d3b37ec 100644 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts +++ b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts @@ -20,4 +20,4 @@ export * from './DeleteMappingAction'; export * from './EditCSVParamsAction'; export * from './EditMappingAction'; export * from './EnableJavaClassAction'; -export * from './ImportButton'; +export * from '../../../../layout/views/sourceTarget/actions/ImportDocumentButton'; diff --git a/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx b/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx index aa65da178..0d34736a8 100644 --- a/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx +++ b/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx @@ -14,7 +14,7 @@ limitations under the License. */ import { AtlasmapDocumentType, GroupId } from '../../../_bk_atlasmap/Views'; -import { ImportButton } from '../../../_bk_atlasmap/Views'; +import { ImportDocumentButton } from '../../../_bk_atlasmap/Views'; import { Column, ColumnBody, NodeRef, SearchableColumnHeader } from '../../../_bk_atlasmap/UI'; import { IConstantsTreeCallbacks } from '../../../components/documents'; import { IPropertiesTreeCallbacks } from '../../../components/documents'; @@ -72,7 +72,7 @@ export const SourcesColumn: FunctionComponent = () => { ]} + actions={[]} /> diff --git a/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx b/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx index 2700b4b2b..7af0da070 100644 --- a/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx +++ b/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx @@ -14,7 +14,7 @@ limitations under the License. */ import { AtlasmapDocumentType, GroupId } from '../../../_bk_atlasmap/Views/models'; -import { ImportButton } from '../../../_bk_atlasmap/Views/ColumnMapperView/Actions'; +import { ImportDocumentButton } from '../../../_bk_atlasmap/Views/ColumnMapperView/Actions'; import { NodeRef, SearchableColumnHeader } from '../../../_bk_atlasmap/UI'; import { IPropertiesTreeCallbacks } from '../../../components/documents/PropertiesTree'; import { FunctionComponent, useCallback, useContext } from 'react'; @@ -76,7 +76,7 @@ export const TargetsColumn: FunctionComponent = () => { ]} + actions={[onImportDocument && ]} /> diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/ImportButton.tsx b/packages/ui/src/layout/views/sourceTarget/actions/ImportDocumentButton.tsx similarity index 71% rename from packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/ImportButton.tsx rename to packages/ui/src/layout/views/sourceTarget/actions/ImportDocumentButton.tsx index 71ff3694a..148201981 100644 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/ImportButton.tsx +++ b/packages/ui/src/layout/views/sourceTarget/actions/ImportDocumentButton.tsx @@ -14,21 +14,28 @@ limitations under the License. */ import { Button, Tooltip } from '@patternfly/react-core'; -import React, { FunctionComponent, useEffect, useRef } from 'react'; +import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; import { useFilePicker } from 'react-sage'; +import { SourceOrTarget } from '../../../../models'; +import { readFileAsString } from '../../../../util'; export interface IImportActionProps { - id: string; - onImport: (selectedFile: File) => void; + sourceOrTarget: SourceOrTarget; } -export const ImportButton: FunctionComponent = ({ id, onImport }) => { +export const ImportDocumentButton: FunctionComponent = ({ sourceOrTarget }) => { const { files, onClick, HiddenFileInput } = useFilePicker({ maxFileSize: 1, }); const previouslyUploadedFiles = useRef(null); + const onImport = useCallback((file: File) => { + readFileAsString(file).then((content) => { + alert('Uploaded:' + content); + }); + }, []); + useEffect(() => { if (previouslyUploadedFiles.current !== files) { previouslyUploadedFiles.current = files; @@ -43,11 +50,11 @@ export const ImportButton: FunctionComponent = ({ id, onImpo ); diff --git a/packages/ui/src/models/api.ts b/packages/ui/src/models/api.ts index 58a94f913..a5893541d 100644 --- a/packages/ui/src/models/api.ts +++ b/packages/ui/src/models/api.ts @@ -4,6 +4,8 @@ import { ITransformationArgument, ITransformationSelectOption } from '../_bk_atl export type CanvasView = 'SourceTarget' | 'MappingTable' | 'NamespaceTable'; +export type SourceOrTarget = 'source' | 'target'; + export interface INotification { id: string; variant: AlertProps['variant']; diff --git a/packages/ui/src/util/common.ts b/packages/ui/src/util/common.ts index 30c2fd99c..75ece6a4d 100644 --- a/packages/ui/src/util/common.ts +++ b/packages/ui/src/util/common.ts @@ -4,3 +4,13 @@ export const generateRandomId = (kind: string, length = 4): string => { return `${kind}-${randomNumber.toString(10).slice(0, length)}`; }; + +export const readFileAsString = (file: File): Promise => { + const reader = new FileReader(); + return new Promise((resolve, reject) => { + reader.onload = (e) => { + e.target ? resolve(e.target.result as string) : reject(); + }; + reader.readAsText(file); + }); +}; From 9e6a6f3d87604bcfaf5f79abf5f6cf2be5dad132 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 14 Feb 2024 22:04:35 -0500 Subject: [PATCH 006/471] checkpoint: Port Apache XmlSchema (#5) Done: - XmlSchema - XmlSchemaCollection --- packages/ui/jest-setup.ts | 3 - packages/ui/package.json | 9 +- .../actions/ImportDocumentButton.tsx | 4 +- packages/ui/src/models/document.ts | 9 + packages/ui/src/models/index.ts | 1 + .../ui/src/services/document.service.test.ts | 13 + packages/ui/src/services/document.service.ts | 16 + packages/ui/src/services/index.ts | 1 + packages/ui/src/util/xml/Constants.ts | 1 + packages/ui/src/util/xml/README.md | 6 + packages/ui/src/util/xml/XmlDocument.ts | 55 + packages/ui/src/util/xml/index.ts | 2 + packages/ui/src/util/xml/xml-parser.test.ts | 52 + .../src/util/xsd/DocumentFragmentNodeList.ts | 62 + packages/ui/src/util/xsd/QName.ts | 50 + packages/ui/src/util/xsd/README.md | 11 + packages/ui/src/util/xsd/SchemaBuilder.ts | 1685 +++++++++++++++++ packages/ui/src/util/xsd/TypeReceiver.ts | 5 + packages/ui/src/util/xsd/XmlSchema.ts | 800 ++++++++ .../ui/src/util/xsd/XmlSchemaAllMember.ts | 3 + .../ui/src/util/xsd/XmlSchemaAnnotated.ts | 29 + .../ui/src/util/xsd/XmlSchemaAnnotation.ts | 38 + .../ui/src/util/xsd/XmlSchemaAttribute.ts | 1 + .../src/util/xsd/XmlSchemaAttributeGroup.ts | 1 + .../ui/src/util/xsd/XmlSchemaChoiceMember.ts | 3 + .../ui/src/util/xsd/XmlSchemaCollection.ts | 605 ++++++ .../ui/src/util/xsd/XmlSchemaComplexType.ts | 127 ++ .../src/util/xsd/XmlSchemaDerivationMethod.ts | 130 ++ .../ui/src/util/xsd/XmlSchemaDocumentation.ts | 38 + packages/ui/src/util/xsd/XmlSchemaElement.ts | 246 +++ packages/ui/src/util/xsd/XmlSchemaExternal.ts | 38 + packages/ui/src/util/xsd/XmlSchemaFacet.ts | 81 + packages/ui/src/util/xsd/XmlSchemaForm.ts | 9 + packages/ui/src/util/xsd/XmlSchemaGroup.ts | 1 + .../util/xsd/XmlSchemaIdentityConstraint.ts | 49 + packages/ui/src/util/xsd/XmlSchemaImport.ts | 20 + packages/ui/src/util/xsd/XmlSchemaInclude.ts | 11 + .../ui/src/util/xsd/XmlSchemaItemWithRef.ts | 5 + .../src/util/xsd/XmlSchemaItemWithRefBase.ts | 19 + packages/ui/src/util/xsd/XmlSchemaNotation.ts | 1 + packages/ui/src/util/xsd/XmlSchemaObject.ts | 45 + packages/ui/src/util/xsd/XmlSchemaParticle.ts | 25 + .../src/util/xsd/XmlSchemaSequenceMember.ts | 3 + .../ui/src/util/xsd/XmlSchemaSimpleType.ts | 61 + packages/ui/src/util/xsd/XmlSchemaType.ts | 99 + packages/ui/src/util/xsd/constants.ts | 77 + .../util/xsd/extensions/ExtensionRegistry.ts | 1 + packages/ui/src/util/xsd/extensions/index.ts | 1 + packages/ui/src/util/xsd/index.ts | 32 + .../util/xsd/resolver/DefaultURIResolver.ts | 25 + packages/ui/src/util/xsd/resolver/index.ts | 1 + .../ui/src/util/xsd/utils/NamespaceContext.ts | 7 + .../util/xsd/utils/NamespaceContextOwner.ts | 5 + .../src/util/xsd/utils/NamespacePrefixList.ts | 5 + .../util/xsd/utils/NodeNamespaceContext.ts | 66 + .../ui/src/util/xsd/utils/PrefixCollector.ts | 33 + .../xsd/utils/TargetNamespaceValidator.ts | 5 + packages/ui/src/util/xsd/utils/XDOMUtil.ts | 85 + .../ui/src/util/xsd/utils/XmlSchemaNamed.ts | 47 + .../src/util/xsd/utils/XmlSchemaNamedImpl.ts | 69 + .../ui/src/util/xsd/utils/XmlSchemaRef.ts | 3 + .../ui/src/util/xsd/utils/XmlSchemaRefBase.ts | 29 + packages/ui/src/util/xsd/utils/index.ts | 11 + packages/ui/test-resources/ExampleOrder.xml | 23 + .../ShipOrder.xsd} | 3 +- .../ui/{src => }/test-resources/hello.xsd | 0 .../ui/{src => }/test-resources/hello.xsl | 0 yarn.lock | 1506 ++++++++++++++- 68 files changed, 6435 insertions(+), 72 deletions(-) create mode 100644 packages/ui/src/models/document.ts create mode 100644 packages/ui/src/services/document.service.test.ts create mode 100644 packages/ui/src/services/document.service.ts create mode 100644 packages/ui/src/services/index.ts create mode 100644 packages/ui/src/util/xml/Constants.ts create mode 100644 packages/ui/src/util/xml/README.md create mode 100644 packages/ui/src/util/xml/XmlDocument.ts create mode 100644 packages/ui/src/util/xml/index.ts create mode 100644 packages/ui/src/util/xml/xml-parser.test.ts create mode 100644 packages/ui/src/util/xsd/DocumentFragmentNodeList.ts create mode 100644 packages/ui/src/util/xsd/QName.ts create mode 100644 packages/ui/src/util/xsd/README.md create mode 100644 packages/ui/src/util/xsd/SchemaBuilder.ts create mode 100644 packages/ui/src/util/xsd/TypeReceiver.ts create mode 100644 packages/ui/src/util/xsd/XmlSchema.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAllMember.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAnnotated.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAnnotation.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAttribute.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaChoiceMember.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaCollection.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaComplexType.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaDerivationMethod.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaDocumentation.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaElement.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaExternal.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaFacet.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaForm.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaGroup.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaImport.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaInclude.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaNotation.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaObject.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaParticle.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaSequenceMember.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaSimpleType.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaType.ts create mode 100644 packages/ui/src/util/xsd/constants.ts create mode 100644 packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts create mode 100644 packages/ui/src/util/xsd/extensions/index.ts create mode 100644 packages/ui/src/util/xsd/index.ts create mode 100644 packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts create mode 100644 packages/ui/src/util/xsd/resolver/index.ts create mode 100644 packages/ui/src/util/xsd/utils/NamespaceContext.ts create mode 100644 packages/ui/src/util/xsd/utils/NamespaceContextOwner.ts create mode 100644 packages/ui/src/util/xsd/utils/NamespacePrefixList.ts create mode 100644 packages/ui/src/util/xsd/utils/NodeNamespaceContext.ts create mode 100644 packages/ui/src/util/xsd/utils/PrefixCollector.ts create mode 100644 packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts create mode 100644 packages/ui/src/util/xsd/utils/XDOMUtil.ts create mode 100644 packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts create mode 100644 packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts create mode 100644 packages/ui/src/util/xsd/utils/XmlSchemaRef.ts create mode 100644 packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts create mode 100644 packages/ui/src/util/xsd/utils/index.ts create mode 100644 packages/ui/test-resources/ExampleOrder.xml rename packages/ui/{src/test-resources/mock-xml-schema-shiporder.xsd => test-resources/ShipOrder.xsd} (88%) rename packages/ui/{src => }/test-resources/hello.xsd (100%) rename packages/ui/{src => }/test-resources/hello.xsl (100%) diff --git a/packages/ui/jest-setup.ts b/packages/ui/jest-setup.ts index 4f2c4af6c..0059d2342 100644 --- a/packages/ui/jest-setup.ts +++ b/packages/ui/jest-setup.ts @@ -1,9 +1,6 @@ import '@testing-library/jest-dom'; -import { FilterDOMPropsKeys, filterDOMProps } from 'uniforms'; // import '@testing-library/jest-dom/extend-expect' -filterDOMProps.register('inputRef' as FilterDOMPropsKeys, 'placeholder' as FilterDOMPropsKeys); - Object.defineProperty(window, 'fetch', { writable: true, value: jest.fn(), diff --git a/packages/ui/package.json b/packages/ui/package.json index b76a665fa..f59e0bac4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -47,7 +47,7 @@ "@types/pako": "^2.0.3", "d3-scale": "^4.0.2", "d3-shape": "^3.2.0", - "fast-xml-parser": "^4.3.3", + "fast-xml-parser": "^4.3.4", "file-saver": "^2.0.5", "loglevel": "^1.9.1", "pako": "^2.1.0", @@ -58,6 +58,7 @@ "react-dom": "^18.2.0", "react-sage": "^0.3.16", "react-use-gesture": "^9.1.3", + "saxon-js": "^2.6.0", "use-debounce": "^10.0.0" }, "devDependencies": { @@ -68,7 +69,7 @@ "@storybook/addon-actions": "^7.6.12", "@storybook/addon-knobs": "^7.0.2", "@testing-library/jest-dom": "^6.3.0", - "@types/jest": "^29.5.11", + "@types/jest": "^29.5.12", "@types/node": "^20.11.6", "@types/react": "^18.2.53", "@types/react-dom": "^18.2.18", @@ -82,11 +83,15 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", + "jest": "^29.7.0", + "jest-canvas-mock": "^2.5.2", + "jest-environment-jsdom": "^29.7.0", "prettier": "^3.2.5", "sass": "^1.70.0", "stylelint": "^16.2.1", "stylelint-config-standard-scss": "^13.0.0", "stylelint-prettier": "^5.0.0", + "ts-node": "^10.9.2", "typescript": "^5.3.3", "vite": "^5.0.12" } diff --git a/packages/ui/src/layout/views/sourceTarget/actions/ImportDocumentButton.tsx b/packages/ui/src/layout/views/sourceTarget/actions/ImportDocumentButton.tsx index 148201981..e879b43fc 100644 --- a/packages/ui/src/layout/views/sourceTarget/actions/ImportDocumentButton.tsx +++ b/packages/ui/src/layout/views/sourceTarget/actions/ImportDocumentButton.tsx @@ -20,6 +20,7 @@ import { ImportIcon } from '@patternfly/react-icons'; import { useFilePicker } from 'react-sage'; import { SourceOrTarget } from '../../../../models'; import { readFileAsString } from '../../../../util'; +import { DocumentService } from '../../../../services'; export interface IImportActionProps { sourceOrTarget: SourceOrTarget; @@ -32,7 +33,8 @@ export const ImportDocumentButton: FunctionComponent = ({ so const onImport = useCallback((file: File) => { readFileAsString(file).then((content) => { - alert('Uploaded:' + content); + const document = DocumentService.parseXmlSchema(content); + alert('Uploaded:' + JSON.stringify(document)); }); }, []); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts new file mode 100644 index 000000000..1b9bbfbbc --- /dev/null +++ b/packages/ui/src/models/document.ts @@ -0,0 +1,9 @@ +import { IDocument, IField } from './api'; +import { generateRandomId } from '../util'; + +export class Document implements IDocument { + fields: IField[] = []; + id: string = generateRandomId('document'); + name: string = ''; + type: string = ''; +} diff --git a/packages/ui/src/models/index.ts b/packages/ui/src/models/index.ts index d010b95c8..d9223eece 100644 --- a/packages/ui/src/models/index.ts +++ b/packages/ui/src/models/index.ts @@ -1,3 +1,4 @@ export * from './api'; export * from './dnd'; +export * from './document'; export * from './mapping'; diff --git a/packages/ui/src/services/document.service.test.ts b/packages/ui/src/services/document.service.test.ts new file mode 100644 index 000000000..c707400ff --- /dev/null +++ b/packages/ui/src/services/document.service.test.ts @@ -0,0 +1,13 @@ +import { DocumentService } from './document.service'; +import * as fs from 'fs'; + +describe('DocumentService', () => { + const orderXsd = fs.readFileSync(__dirname + '/../../test-resources/ShipOrder.xsd').toString(); + + describe('parseXmlSchema', () => { + it('should parse the xml schema', () => { + const document = DocumentService.parseXmlSchema(orderXsd); + expect(document).toBeDefined(); + }); + }); +}); diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts new file mode 100644 index 000000000..74c11ccb7 --- /dev/null +++ b/packages/ui/src/services/document.service.ts @@ -0,0 +1,16 @@ +import { IDocument, Document } from '../models'; +import { XmlSchema, XmlSchemaCollection } from '../util/xsd'; + +export class DocumentService { + static parseXmlSchema(content: string): IDocument { + const collection = new XmlSchemaCollection(); + const xmlSchema = collection.read(content); + return DocumentService.fromXmlSchema(xmlSchema); + } + + private static fromXmlSchema(xmlSchema: XmlSchema): IDocument { + const answer = new Document(); + xmlSchema.getElements(); + return answer; + } +} diff --git a/packages/ui/src/services/index.ts b/packages/ui/src/services/index.ts new file mode 100644 index 000000000..dea92136a --- /dev/null +++ b/packages/ui/src/services/index.ts @@ -0,0 +1 @@ +export * from './document.service'; diff --git a/packages/ui/src/util/xml/Constants.ts b/packages/ui/src/util/xml/Constants.ts new file mode 100644 index 000000000..e7b8d5e44 --- /dev/null +++ b/packages/ui/src/util/xml/Constants.ts @@ -0,0 +1 @@ +export const ATTRIBUTE_PREFIX = '_attr_'; diff --git a/packages/ui/src/util/xml/README.md b/packages/ui/src/util/xml/README.md new file mode 100644 index 000000000..238932a9b --- /dev/null +++ b/packages/ui/src/util/xml/README.md @@ -0,0 +1,6 @@ +XML DOM Document bridge +======================== +This is to mimic XML DOM Document in TypeScript, with handling namespaces transparently. +This internally uses fast-xml-parser to generate a JSON object from XML string, and then wrap +it with XmlDocument class which mimics DOM Document object. The primary focus is to bridge +between our [XSD parser](../xsd/README.md) and the `any` type of object generated from [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser#readme). \ No newline at end of file diff --git a/packages/ui/src/util/xml/XmlDocument.ts b/packages/ui/src/util/xml/XmlDocument.ts new file mode 100644 index 000000000..3f15a42c1 --- /dev/null +++ b/packages/ui/src/util/xml/XmlDocument.ts @@ -0,0 +1,55 @@ +import { XMLParser } from 'fast-xml-parser'; +import { ATTRIBUTE_PREFIX } from './Constants'; + +export function parseDocument(content: string): Document { + const parser = new DOMParser(); + return parser.parseFromString(content, 'text/xml'); +} + +export function buildXmlDocument(content: string): XmlDocument { + const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: ATTRIBUTE_PREFIX }); + const parsed = parser.parse(content); + return new XmlDocument(parsed); +} + +export abstract class XmlNode { + protected nodes: XmlNode[] = []; + constructor(parsed: object) { + this.nodes = Object.entries(parsed).map(([name, value]) => { + if (name?.startsWith(ATTRIBUTE_PREFIX)) { + nodes.push(this.createAttributeNode(value)); + } + }); + } + + getFirstChild(): XmlNode {} + + getFirstChildElementNS(uri: string) { + const child = this.getFirstChild(); + while (child != null) { + if (child.getNodeType === Node.ELEMENT_NODE) { + const childURI = child.getNamespaceURI(); + if (childURI?.equals(uri)) { + return child as XmlElement; + } + } + child = child.getNextSibling(); + } + } +} + +export class XmlDocument extends XmlNode { + constructor(parsed: object) { + super(parsed); + } + + getDocumentElement(): XmlElement { + return new XmlElement(Object.values(this.parsed)[0]); + } +} + +export class XmlElement extends XmlNode { + constructor(parsed: object) { + super(parsed); + } +} diff --git a/packages/ui/src/util/xml/index.ts b/packages/ui/src/util/xml/index.ts new file mode 100644 index 000000000..4cbc983fd --- /dev/null +++ b/packages/ui/src/util/xml/index.ts @@ -0,0 +1,2 @@ +export * from './Constants'; +export * from './XmlDocument'; diff --git a/packages/ui/src/util/xml/xml-parser.test.ts b/packages/ui/src/util/xml/xml-parser.test.ts new file mode 100644 index 000000000..c5b27f006 --- /dev/null +++ b/packages/ui/src/util/xml/xml-parser.test.ts @@ -0,0 +1,52 @@ +import { XMLParser } from 'fast-xml-parser'; +import { ATTRIBUTE_PREFIX } from './Constants'; +import * as fs from 'fs'; + +describe('XML parser', () => { + describe('fast-xml-parser', () => { + const parser = new XMLParser({ + ignoreAttributes: false, + attributeNamePrefix: ATTRIBUTE_PREFIX, + preserveOrder: true, + }); + + it('should parse XML schema', () => { + const orderXsd = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrder.xsd').toString(); + const parsed = parser.parse(orderXsd); + expect(parsed).toBeDefined(); + }); + + it('should parse XML document', () => { + const orderXml = fs.readFileSync(__dirname + '/../../../test-resources/ExampleOrder.xml').toString(); + const parsed = parser.parse(orderXml); + expect(parsed).toBeDefined(); + }); + }); + + describe('DOMParser', () => { + const parser = new DOMParser(); + + it('should parse XML schema', () => { + const orderXsd = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrder.xsd').toString(); + const xmlDoc = parser.parseFromString(orderXsd, 'text/xml'); + expect(xmlDoc).toBeDefined(); + const schema = xmlDoc.getElementsByTagName('xs:schema')[0]; + console.log( + `nodeName=${schema!.nodeName}, localName=${schema!.localName}, namespaceURI=${schema!.namespaceURI}, prefix=${schema.prefix}`, + ); + const children = schema.childNodes; + children.forEach((v) => { + const el = v as Element; + console.log( + `nodeName=${el!.nodeName}, localName=${el!.localName}, namespaceURI=${el!.namespaceURI}, prefix=${el.prefix}`, + ); + }); + }); + + it('should parse XML document', () => { + const orderXml = fs.readFileSync(__dirname + '/../../../test-resources/ExampleOrder.xml').toString(); + const xmlDoc = parser.parseFromString(orderXml, 'text/xml'); + expect(xmlDoc).toBeDefined(); + }); + }); +}); diff --git a/packages/ui/src/util/xsd/DocumentFragmentNodeList.ts b/packages/ui/src/util/xsd/DocumentFragmentNodeList.ts new file mode 100644 index 000000000..947460f8a --- /dev/null +++ b/packages/ui/src/util/xsd/DocumentFragmentNodeList.ts @@ -0,0 +1,62 @@ +export class DocumentFragmentNodeList implements NodeList { + private nodes: Node[] = []; + private fragment?: DocumentFragment; + length: number; + + /** + * Create a list of the children of a given node that are elements with a specified qualified name. + * + * @param parentNode node from which to copy children. + * @param filterUri Namespace URI of children to copy. + * @param filterLocal Local name of children to copy. + */ + constructor(parentNode: Node, filterUri?: string, filterLocal?: string) { + this.length = 0; + if (!parentNode.ownerDocument) { + throw new Error('Could not access the owner Document'); + } + this.fragment = parentNode.ownerDocument.createDocumentFragment(); + for (let child = parentNode.firstChild; child != null; child = child.nextSibling) { + if (filterUri == null && filterLocal == null) { + this.nodes.push(this.fragment.appendChild(child.cloneNode(true))); + continue; + } + if (child.nodeType == Node.ELEMENT_NODE) { + const childElement = child as Element; + if (childElement.namespaceURI === filterUri && childElement.localName === filterLocal) { + this.nodes.push(this.fragment.appendChild(child.cloneNode(true))); + } + } + } + this.length = this.nodes.length; + } + + item(index: number) { + if (this.nodes == null) { + return null; + } else { + return this.nodes[index]; + } + } + + /** + * Java DOM doesn't have followings, but required in TypeScript + */ + + [index: number]: Node; + forEach(_callbackfn: (value: Node, key: number, parent: NodeList) => void, _thisArg?: object): void { + throw new Error('Method not implemented.'); + } + entries(): IterableIterator<[number, Node]> { + throw new Error('Method not implemented.'); + } + keys(): IterableIterator { + throw new Error('Method not implemented.'); + } + values(): IterableIterator { + throw new Error('Method not implemented.'); + } + [Symbol.iterator](): IterableIterator { + throw new Error('Method not implemented.'); + } +} diff --git a/packages/ui/src/util/xsd/QName.ts b/packages/ui/src/util/xsd/QName.ts new file mode 100644 index 000000000..9c5b219b9 --- /dev/null +++ b/packages/ui/src/util/xsd/QName.ts @@ -0,0 +1,50 @@ +export class QName { + private namespaceURI: string; + + constructor( + namespaceURI: string | null, + private localPart: string, + private prefix?: string, + ) { + this.namespaceURI = namespaceURI != null ? namespaceURI : ''; + } + + getNamespaceURI(): string { + return this.namespaceURI; + } + + getLocalPart(): string { + return this.localPart; + } + + getPrefix(): string | undefined { + return this.prefix; + } + + toString(): string { + return this.namespaceURI === '' ? this.localPart : `{${this.namespaceURI}}${this.localPart}`; + } + + valueOf(qNameAsString: string): QName { + if (qNameAsString == null) { + throw new Error('cannot create QName from null'); + } else if (qNameAsString === '') { + return new QName('', qNameAsString, ''); + } else if (qNameAsString.charAt(0) !== '{') { + return new QName('', qNameAsString, ''); + } else if (qNameAsString.startsWith('{}')) { + return new QName('', qNameAsString.substring(2), ''); + } else { + const endOfNamespaceURI = qNameAsString.indexOf('}'); + if (endOfNamespaceURI === -1) { + throw new Error(`cannot create QName from ${qNameAsString}, missing closing "}"`); + } else { + return new QName( + qNameAsString.substring(1, endOfNamespaceURI), + qNameAsString.substring(endOfNamespaceURI + 1), + '' /* prefix */, + ); + } + } + } +} diff --git a/packages/ui/src/util/xsd/README.md b/packages/ui/src/util/xsd/README.md new file mode 100644 index 000000000..aa07c103d --- /dev/null +++ b/packages/ui/src/util/xsd/README.md @@ -0,0 +1,11 @@ +XML Schema Parser +============================================== + +This is supposed to be a minimal porting from [Apache XmlSchema](https://ws.apache.org/xmlschema/) +to TypeScript for what is required for the Data Mapper with using [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser#readme). +The main focus is to parse the XML schema file and build a Data Mapper Document model. + +Always honor the upstream for the internal design so we can share the common sense. +https://github.com/apache/ws-xmlschema + +TODO: To be a separate sub-package in the project. \ No newline at end of file diff --git a/packages/ui/src/util/xsd/SchemaBuilder.ts b/packages/ui/src/util/xsd/SchemaBuilder.ts new file mode 100644 index 000000000..522fea051 --- /dev/null +++ b/packages/ui/src/util/xsd/SchemaBuilder.ts @@ -0,0 +1,1685 @@ +import { + DocumentFragmentNodeList, + QName, + SchemaKey, + XmlSchema, + XmlSchemaAnnotation, XmlSchemaAppInfo, + XmlSchemaAttribute, + XmlSchemaCollection, XmlSchemaComplexType, + XmlSchemaDerivationMethod, XmlSchemaDocumentation, + XmlSchemaElement, XmlSchemaFacet, + XmlSchemaForm, + xmlSchemaFormValueOf, XmlSchemaNotation, + XmlSchemaKey, + XmlSchemaObject, + XmlSchemaSimpleType, XmlSchemaKeyref, XmlSchemaUnique, XmlSchemaImport, XmlSchemaInclude +} from '.'; +import { NamespaceContext, NodeNamespaceContext, XDOMUtil } from './utils'; +import {ExtensionRegistry} from './extensions'; +import * as Constants from "./constants"; +import {} from "./DocumentFragmentNodeList"; + +export class SchemaBuilder { + private resolvedSchemas = new Map(); + private static readonly RESERVED_ATTRIBUTES = new Set(['name', 'type', 'default', 'fixed', 'form', 'id', 'use', 'ref']); + private currentSchema = new XmlSchema(); + private extReg?: ExtensionRegistry; + + constructor( + private collection: XmlSchemaCollection, + private currentValidator?: (s: XmlSchema) => void, + ) { + if (this.collection.getExtReg() != null) { + this.extReg = this.collection.getExtReg(); + } + } + + getExtReg() { + return this.extReg; + } + + setExtReg(extReg: ExtensionRegistry) { + this.extReg = extReg; + } + + build(doc: Document, uri?: string): XmlSchema { + const schemaEl = doc.documentElement as Element; + return this.handleXmlSchemaElement(schemaEl, uri); + } + + getDerivation(el: Element, attrName: string) { + if (el.hasAttribute(attrName) && !(el.getAttribute(attrName) === "")) { + // #all | List of (extension | restriction | substitution) + const derivationMethod = el.getAttribute(attrName)!.trim(); + return XmlSchemaDerivationMethod.schemaValueOf(derivationMethod); + } + return XmlSchemaDerivationMethod.NONE; + } + + getEnumString(el: Element, attrName: string) { + if (el.hasAttribute(attrName)) { + return el.getAttribute(attrName)?.trim(); + } + return "none"; // local convention for empty value. + } + + getFormDefault(el: Element, attrName: string) { + if (el.getAttributeNode(attrName) != null) { + const value = el.getAttribute(attrName)!; + return xmlSchemaFormValueOf(value); + } else { + return XmlSchemaForm.UNQUALIFIED; + } + } + + getMaxOccurs(el: Element) { + if (el.getAttributeNode("maxOccurs") != null) { + const value = el.getAttribute("maxOccurs")!; + if ("unbounded" === value) { + return Number.MAX_SAFE_INTEGER; + } else { + return parseInt(value); + } + } + return 1; + } + + getMinOccurs(el: Element) { + if (el.getAttributeNode("minOccurs") != null) { + const value = el.getAttribute("minOccurs")!; + if ("unbounded" === value) { + return Number.MAX_SAFE_INTEGER; + } else { + return parseInt(value); + } + } + return 1; + } + + /** + * Handles the annotation Traversing if encounter appinfo or documentation add it to annotation collection + */ + handleAnnotation(annotEl: Element) { + const annotation = new XmlSchemaAnnotation(); + const content = annotation.getItems(); + let appInfoObj: XmlSchemaAppInfo | null; + + for (let appinfo = XDOMUtil.getFirstChildElementNS(annotEl, XmlSchema.SCHEMA_NS, 'appinfo'); + appinfo != null; + appinfo = XDOMUtil.getNextSiblingElementNS(appinfo, XmlSchema.SCHEMA_NS, 'appinfo')) { + + appInfoObj = this.handleAppInfo(appinfo); + if (appInfoObj != null) { + content.push(appInfoObj); + } + } + + for (let documentation = XDOMUtil.getFirstChildElementNS(annotEl, + XmlSchema.SCHEMA_NS, 'documentation'); + documentation != null; + documentation = XDOMUtil.getNextSiblingElementNS(documentation, XmlSchema.SCHEMA_NS, + 'documentation')) { + + const docsObj = this.handleDocumentation(documentation); + if (docsObj != null) { + content.push(docsObj); + } + } + + // process extra attributes and elements + this.processExtensibilityComponents(annotation, annotEl, true); + return annotation; + } + + /** + * create new XmlSchemaAppinfo and add value gotten from element to this obj + * + * @param content + */ + handleAppInfo(content: Element) { + const appInfo = new XmlSchemaAppInfo(); + const markup = new DocumentFragmentNodeList(content); + + if (!content.hasAttribute('source') && markup.length == 0) { + return null; + } + + appInfo.setSource(this.getAttribute(content, "source")); + appInfo.setMarkup(markup); + return appInfo; + } + + /** + * Handle complex types + * + * @param schema + * @param complexEl + * @param schemaEl + * @param topLevel + */ + handleComplexType(schema: XmlSchema, complexEl: Element, schemaEl: Element, + topLevel: boolean) { + + const ct = new XmlSchemaComplexType(schema, topLevel); + + if (complexEl.hasAttribute('name')) { + + // String namespace = (schema.targetNamespace==null)? + // "":schema.targetNamespace; + + ct.setName(complexEl.getAttribute('name')); + } + for (let el = XDOMUtil.getFirstChildElementNS(complexEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + // String elPrefix = el.getPrefix() == null ? "" : + // el.getPrefix(); + // if(elPrefix.equals(schema.schema_ns_prefix)) { + if (el.localName === 'sequence') { + ct.setParticle(this.handleSequence(schema, el, schemaEl)); + } else if (el.localName === 'choice') { + ct.setParticle(this.handleChoice(schema, el, schemaEl)); + } else if (el.localName === 'all') { + ct.setParticle(this.handleAll(schema, el, schemaEl)); + } else if (el.localName === 'attribute') { + ct.getAttributes().push(this.handleAttribute(schema, el, schemaEl)); + } else if (el.localName === 'attributeGroup') { + ct.getAttributes().push(this.handleAttributeGroupRef(schema, el)); + } else if (el.localName === 'group') { + const group = this.handleGroupRef(schema, el, schemaEl); + if (group.getParticle() == null) { + ct.setParticle(group); + } else { + ct.setParticle(group.getParticle()); + } + } else if (el.localName === 'simpleContent') { + ct.setContentModel(this.handleSimpleContent(schema, el, schemaEl)); + } else if (el.localName === 'complexContent') { + ct.setContentModel(this.handleComplexContent(schema, el, schemaEl)); + } else if (el.localName === 'annotation') { + ct.setAnnotation(this.handleAnnotation(el)); + } else if (el.localName === 'anyAttribute') { + ct.setAnyAttribute(this.handleAnyAttribute(schema, el, schemaEl)); + } + } + if (complexEl.hasAttribute('block')) { + const blockStr = complexEl.getAttribute('block')!; + ct.setBlock(XmlSchemaDerivationMethod.schemaValueOf(blockStr)); + } + if (complexEl.hasAttribute('final')) { + const finalstr = complexEl.getAttribute('final')!; + ct.setFinal(XmlSchemaDerivationMethod.schemaValueOf(finalstr)); + } + if (complexEl.hasAttribute('abstract')) { + const abs = complexEl.getAttribute('abstract')!; + if (abs.toLowerCase() === 'true') { + ct.setAbstract(true); + } else { + ct.setAbstract(false); + } + } + if (complexEl.hasAttribute("mixed")) { + const mixed = complexEl.getAttribute("mixed")!; + if (mixed.toLowerCase() === "true") { + ct.setMixed(true); + } else { + ct.setMixed(false); + } + } + + // process extra attributes and elements + this.processExtensibilityComponents(ct, complexEl, true); + + return ct; + } + + /** + * iterate each documentation element, create new XmlSchemaAppinfo and add + * to collection + */ + handleDocumentation(content: Element) { + const documentation = new XmlSchemaDocumentation(); + const markup = this.getChildren(content); + + if (!content.hasAttribute("source") && !content.hasAttribute("xml:lang") && markup == null) { + return null; + } + + documentation.setSource(this.getAttribute(content, "source")); + documentation.setLanguage(this.getAttribute(content, "xml:lang")); + documentation.setMarkup(new DocumentFragmentNodeList(content)); + + return documentation; + } + + /** + * handle_complex_content_restriction + */ + /** + * handle elements + * + * @param schema + * @param el + * @param schemaEl + * @param isGlobal + */ + handleElement(schema: XmlSchema, el: Element, schemaEl: Element, isGlobal: boolean) { + + const element = new XmlSchemaElement(schema, isGlobal); + + if (el.getAttributeNode("name") != null) { + element.setName(el.getAttribute("name")); + } + + // String namespace = (schema.targetNamespace==null)? + // "" : schema.targetNamespace; + + let isQualified = schema.getElementFormDefault() == XmlSchemaForm.QUALIFIED; + isQualified = this.handleElementForm(el, element, isQualified); + + this.handleElementName(isGlobal, element, isQualified); + this.handleElementAnnotation(el, element); + this.handleElementGlobalType(el, element); + + let simpleTypeEl: Element | null; + let complexTypeEl: Element | null; + let keyEl: Element | null; + let keyrefEl: Element | null; + let uniqueEl: Element | null; + simpleTypeEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'simpleType'); + if (simpleTypeEl != null) { + + const simpleType = this.handleSimpleType(schema, simpleTypeEl, schemaEl, false); + element.setSchemaType(simpleType); + element.setSchemaTypeName(simpleType.getQName()); + } else { + complexTypeEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'complexType'); + if (complexTypeEl != null) { + element.setSchemaType(this.handleComplexType(schema, complexTypeEl, schemaEl, false)); + } + } + + keyEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'key'); + if (keyEl != null) { + while (keyEl != null) { + element.getConstraints().push(this.handleConstraint(keyEl, new XmlSchemaKey())); + keyEl = XDOMUtil.getNextSiblingElementNS(keyEl, XmlSchema.SCHEMA_NS, "key"); + } + } + + keyrefEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, "keyref"); + if (keyrefEl != null) { + while (keyrefEl != null) { + const keyRef = this.handleConstraint(keyrefEl, new XmlSchemaKeyref()) as XmlSchemaKeyref; + if (keyrefEl.hasAttribute('refer')) { + const name = keyrefEl.getAttribute('refer')!; + keyRef.refer = this.getRefQName(name, el); + } + element.getConstraints().push(keyRef); + keyrefEl = XDOMUtil.getNextSiblingElementNS(keyrefEl, XmlSchema.SCHEMA_NS, 'keyref'); + } + } + + uniqueEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'unique'); + if (uniqueEl != null) { + while (uniqueEl != null) { + element.getConstraints().push(this.handleConstraint(uniqueEl, new XmlSchemaUnique())); + uniqueEl = XDOMUtil.getNextSiblingElementNS(uniqueEl, XmlSchema.SCHEMA_NS, 'unique'); + } + } + + if (el.hasAttribute('abstract')) { + element.setAbstractElement((/true/i).test(el.getAttribute('abstract')!)); + } + + if (el.hasAttribute('block')) { + element.setBlock(this.getDerivation(el, 'block')); + } + + if (el.hasAttribute('default')) { + element.setDefaultValue(el.getAttribute('default')); + } + + if (el.hasAttribute('final')) { + element.setFinalDerivation(this.getDerivation(el, 'final')); + } + + if (el.hasAttribute('fixed')) { + element.setFixedValue(el.getAttribute('fixed')); + } + + if (el.hasAttribute('id')) { + element.setId(el.getAttribute('id')); + } + + if (el.hasAttribute('nillable')) { + element.setNillable((/true/i).test(el.getAttribute('nillable')!)); + } + + if (el.hasAttribute('substitutionGroup')) { + const substitutionGroup = el.getAttribute('substitutionGroup')!; + element.setSubstitutionGroup(this.getRefQName(substitutionGroup, el)); + } + + element.setMinOccurs(this.getMinOccurs(el)); + element.setMaxOccurs(this.getMaxOccurs(el)); + + // process extra attributes and elements + this.processExtensibilityComponents(element, el, true); + + return element; + } + + /** + * Handle the import + * + * @param schema + * @param importEl + * @param _schemaEl + * @return XmlSchemaObject + */ + handleImport(schema: XmlSchema, importEl: Element, _schemaEl: Element) { + + const schemaImport = new XmlSchemaImport(schema); + + const annotationEl = XDOMUtil.getFirstChildElementNS(importEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const importAnnotation = this.handleAnnotation(annotationEl); + schemaImport.setAnnotation(importAnnotation); + } + + schemaImport.namespace = importEl.getAttribute('namespace'); + const uri = schemaImport.namespace; + schemaImport.schemaLocation = importEl.getAttribute('schemaLocation'); + + const validator = (pSchema: XmlSchema) => { + const isEmpty = (pValue: string | null) => { + return pValue == null || Constants.NULL_NS_URI === pValue; + } + + let valid: boolean; + if (isEmpty(uri)) { + valid = isEmpty(pSchema.getSyntacticalTargetNamespace()); + } else { + valid = pSchema.getSyntacticalTargetNamespace() === uri; + } + if (!valid) { + throw new Error("An imported schema was announced to have the namespace " + + uri + ", but has the namespace " + + pSchema.getSyntacticalTargetNamespace()); + } + }; + schemaImport.schema = + this.resolveXmlSchema(uri, schemaImport.schemaLocation, schema.getSourceURI(), validator); + return schemaImport; + } + + /** + * Handles the include + * + * @param schema + * @param includeEl + * @param _schemaEl + */ + handleInclude(schema: XmlSchema, includeEl: Element, _schemaEl: Element) { + + const include = new XmlSchemaInclude(schema); + + const annotationEl = XDOMUtil.getFirstChildElementNS(includeEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const includeAnnotation = this.handleAnnotation(annotationEl); + include.setAnnotation(includeAnnotation); + } + + include.schemaLocation = includeEl.getAttribute("schemaLocation"); + + // includes are not supposed to have a target namespace + // we should be passing in a null in place of the target + // namespace + + const validator = this.newIncludeValidator(schema); + include.schema = + this.resolveXmlSchema(schema.getLogicalTargetNamespace(), include.schemaLocation, + schema.getSourceURI(), validator); + + // process extra attributes and elements + this.processExtensibilityComponents(include, includeEl, true); + return include; + } + + /** + * Handles simple types + * + * @param schema + * @param simpleEl + * @param schemaEl + * @param topLevel + */ + handleSimpleType(schema: XmlSchema, simpleEl: Element, schemaEl: Element, + topLevel: boolean) { + const simpleType = new XmlSchemaSimpleType(schema, topLevel); + if (simpleEl.hasAttribute('name')) { + simpleType.setName(simpleEl.getAttribute('name')); + } + + this.handleSimpleTypeFinal(simpleEl, simpleType); + + const simpleTypeAnnotationEl = + XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (simpleTypeAnnotationEl != null) { + const simpleTypeAnnotation = this.handleAnnotation(simpleTypeAnnotationEl); + + simpleType.setAnnotation(simpleTypeAnnotation); + } + + const unionEl = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'union'); + const listEl = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'list'); + const restrictionEl = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'restriction'); + if (restrictionEl != null) { + + this.handleSimpleTypeRestriction(schema, schemaEl, simpleType, restrictionEl); + + } else if (listEl != null) { + + this.handleSimpleTypeList(schema, schemaEl, simpleType, listEl); + + } else if (unionEl != null) { + + this.handleSimpleTypeUnion(schema, schemaEl, simpleType, unionEl); + } + + // process extra attributes and elements + this.processExtensibilityComponents(simpleType, simpleEl, true); + + return simpleType; + } + + handleXmlSchemaElement(schemaEl: Element, systemId?: string): XmlSchema { + this.currentSchema.setNamespaceContext(NodeNamespaceContext.getNamespaceContext(schemaEl)); + this.setNamespaceAttributes(this.currentSchema, schemaEl); + + const schemaKey = new SchemaKey(this.currentSchema.getLogicalTargetNamespace(), systemId); + this.handleSchemaElementBasics(schemaEl, systemId, schemaKey); + + let el = XDOMUtil.getFirstChildElementNS(schemaEl, XmlSchema.SCHEMA_NS); + for (; el != null; el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + this.handleSchemaElementChild(schemaEl, el); + } + + this.processExtensibilityComponents(this.currentSchema, schemaEl, false); + return this.currentSchema; + } + + /** + * Resolve the schemas + * + * @param targetNamespace + * @param schemaLocation + * @param baseUri + * @param validator + */ + resolveXmlSchema(targetNamespace: string | null, schemaLocation: string | null, baseUri: string | null, + validator: (s: XmlSchema) => void) { + if (baseUri == null) { + baseUri = this.collection.baseUri; + } + + if (targetNamespace != null && schemaLocation != null && baseUri != null && this.getCachedSchema(targetNamespace, schemaLocation, baseUri) != null) { + return this.getCachedSchema(targetNamespace, schemaLocation, baseUri); + } + + // use the entity resolver provided if the schema location is present + // null + if (schemaLocation != null && !('' === schemaLocation)) { + const source = + this.collection.getSchemaResolver().resolveEntity(targetNamespace, schemaLocation, baseUri); + + // the entity resolver was unable to resolve this!! + if (source == null) { + // try resolving it with the target namespace only with the + // known namespace map + return this.collection.getKnownSchema(targetNamespace); + } + const systemId = source.getSystemId() == null ? schemaLocation : source.getSystemId(); + // Push repaired system id back into source where read sees it. + // It is perhaps a bad thing to patch the source, but this fixes + // a problem. + source.setSystemId(systemId); + const key = new SchemaKey(targetNamespace, systemId); + const schema = this.collection.getSchema(key); + if (schema != null) { + return schema; + } + if (this.collection.check(key)) { + this.collection.push(key); + try { + const readSchema = this.collection.read(source, validator); + this.putCachedSchema(targetNamespace, schemaLocation, baseUri, readSchema); + return readSchema; + } finally { + this.collection.pop(); + } + } + } else { + const schema = this.collection.getKnownSchema(targetNamespace); + if (schema != null) { + return schema; + } + } + return null; + } + + setNamespaceAttributes(schema: XmlSchema, schemaEl: Element) { + // no targetnamespace found ! + if (schemaEl.getAttributeNode('targetNamespace') != null) { + const contain = schemaEl.getAttribute("targetNamespace")!; + schema.setTargetNamespace(contain); + } + if (this.currentValidator != null) { + this.currentValidator(schema); + } + } + + private getAttribute(content: Element, attrName: string) { + if (content.hasAttribute(attrName)) { + return content.getAttribute(attrName); + } + return null; + } + + /** + * Return a cached schema if one exists for this thread. In order for schemas to be cached the thread must + * have done an initCache() previously. The parameters are used to construct a key used to lookup the + * schema + * + * @param targetNamespace + * @param schemaLocation + * @param baseUri + * @return The cached schema if one exists for this thread or null. + */ + private getCachedSchema(targetNamespace: string, schemaLocation: string, baseUri: string) { + + let resolvedSchema = undefined; + + if (this.resolvedSchemas != null) { // cache is initialized, use it + const schemaKey = targetNamespace + schemaLocation + baseUri; + resolvedSchema = this.resolvedSchemas.get(schemaKey); + } + return resolvedSchema; + } + + private getChildren(content: Element) { + const result: Node[] = []; + for (let n = content.firstChild; n != null; n = n.nextSibling) { + result.push(n); + } + if (result.length == 0) { + return null; + } else { + return result; + } + } + + private getRefQName(pName: string, pNode?: Node, pContext?: NamespaceContext) { + if (pNode) { + pContext = NodeNamespaceContext.getNamespaceContext(pNode) + } + if (!pContext) { + throw new Error('Either Node or NamespaceContext must be specified'); + } + + const offset = pName.indexOf(':'); + let uri: string; + let localName: string; + let prefix: string; + if (offset == -1) { + uri = pContext.getNamespaceURI(Constants.DEFAULT_NS_PREFIX); + if (Constants.NULL_NS_URI === uri) { + if (this.currentSchema.getTargetNamespace() == null + && !(this.currentSchema.getLogicalTargetNamespace() === '')) { + // If object is unqualified in a schema without a target namespace then it could + // be that this schema is included in another one. The including namespace + // should then be used for this reference + return new QName(this.currentSchema.getLogicalTargetNamespace(), pName); + } + return new QName(Constants.NULL_NS_URI, pName); + } + localName = pName; + prefix = Constants.DEFAULT_NS_PREFIX; + } else { + prefix = pName.substring(0, offset); + uri = pContext.getNamespaceURI(prefix); + if (uri == null || Constants.NULL_NS_URI === uri && this.currentSchema.getParent() != null + && this.currentSchema.getParent().getNamespaceContext() != null) { + uri = this.currentSchema.getParent().getNamespaceContext().getNamespaceURI(prefix); + } + + if (uri == null || Constants.NULL_NS_URI === uri) { + throw new Error("The prefix " + prefix + " is not bound."); + } + localName = pName.substring(offset + 1); + } + return new QName(uri, localName, prefix); + } + + private handleAll(schema: XmlSchema, allEl: Element, schemaEl: Element) { + + const all = new XmlSchemaAll(); + + // handle min and max occurences + all.setMinOccurs(this.getMinOccurs(allEl)); + all.setMaxOccurs(this.getMaxOccurs(allEl)); + + for (let el = XDOMUtil.getFirstChildElementNS(allEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'element') { + const element = this.handleElement(schema, el, schemaEl, false); + all.getItems().add(element); + } else if (el.localName === 'annotation') { + const annotation = this.handleAnnotation(el); + all.setAnnotation(annotation); + } + } + return all; + } + + private handleAny(schema: XmlSchema, anyEl: Element, schemaEl: Element) { + + const any = new XmlSchemaAny(); + + any.setTargetNamespace(schema.getLogicalTargetNamespace()); + + if (anyEl.hasAttribute('namespace')) { + any.setNamespace(anyEl.getAttribute('namespace')); + } + + if (anyEl.hasAttribute('processContents')) { + const processContent = this.getEnumString(anyEl, 'processContents'); + + any.setProcessContent(XmlSchemaContentProcessing.schemaValueOf(processContent)); + } + + const annotationEl = XDOMUtil.getFirstChildElementNS(anyEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + any.setAnnotation(annotation); + } + any.setMinOccurs(this.getMinOccurs(anyEl)); + any.setMaxOccurs(this.getMaxOccurs(anyEl)); + + return any; + } + + private handleAnyAttribute(schema: XmlSchema, anyAttrEl: Element, schemaEl: Element) { + + const anyAttr = new XmlSchemaAnyAttribute(); + + if (anyAttrEl.hasAttribute('namespace')) { + anyAttr.namespace = anyAttrEl.getAttribute('namespace'); + } + + if (anyAttrEl.hasAttribute('processContents')) { + + const contentProcessing = this.getEnumString(anyAttrEl, 'processContents'); + + anyAttr.processContent = XmlSchemaContentProcessing.schemaValueOf(contentProcessing); + } + if (anyAttrEl.hasAttribute('id')) { + anyAttr.setId(anyAttrEl.getAttribute('id')); + } + + const annotationEl = XDOMUtil.getFirstChildElementNS(anyAttrEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + + anyAttr.setAnnotation(annotation); + } + return anyAttr; + } + + /** + * Process attributes + * + * @param schema + * @param attrEl + * @param schemaEl + * @param topLevel + * @return + */ + private handleAttribute(schema: XmlSchema, attrEl: Element, schemaEl: Element, + topLevel: boolean = false) { + const attr = new XmlSchemaAttribute(schema, topLevel); + + if (attrEl.hasAttribute('name')) { + const name = attrEl.getAttribute('name')!; + attr.setName(name); + } + + if (attrEl.hasAttribute('type')) { + const name = attrEl.getAttribute('type')!; + attr.setSchemaTypeName(this.getRefQName(name, attrEl)); + } + + if (attrEl.hasAttribute('default')) { + attr.setDefaultValue(attrEl.getAttribute('default')!); + } + + if (attrEl.hasAttribute('fixed')) { + attr.setFixedValue(attrEl.getAttribute('fixed')!); + } + + if (attrEl.hasAttribute('form')) { + const formValue = this.getEnumString(attrEl, 'form')!; + attr.setForm(xmlSchemaFormValueOf(formValue)); + } + + if (attrEl.hasAttribute('id')) { + attr.setId(attrEl.getAttribute('id')!); + } + + if (attrEl.hasAttribute('use')) { + const useType = this.getEnumString(attrEl, 'use'); + attr.setUse(XmlSchemaUse.schemaValueOf(useType)); + } + if (attrEl.hasAttribute('ref')) { + const name = attrEl.getAttribute("ref"); + attr.getRef().setTargetQName(this.getRefQName(name, attrEl)); + } + + const simpleTypeEl = XDOMUtil.getFirstChildElementNS(attrEl, XmlSchema.SCHEMA_NS, 'simpleType'); + + if (simpleTypeEl != null) { + attr.setSchemaType(this.handleSimpleType(schema, simpleTypeEl, schemaEl, false)); + } + + const annotationEl = XDOMUtil.getFirstChildElementNS(attrEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + + attr.setAnnotation(annotation); + } + + const attrNodes = attrEl.getAttributes(); + const attrs: Attr[] = []; + let ctx?: NodeNamespaceContext; + for (let i = 0; i < attrNodes.getLength(); i++) { + const att = attrNodes.item(i) as Attr; + const attName = att.getName(); + if (!SchemaBuilder.RESERVED_ATTRIBUTES.has(attName)) { + + attrs.push(att); + const value = att.getValue(); + + if (value.indexOf(":") > -1) { + // there is a possibility of some namespace mapping + const prefix = value.substring(0, value.indexOf(":")); + if (ctx == null) { + ctx = NodeNamespaceContext.getNamespaceContext(attrEl); + } + const namespace = ctx.getNamespaceURI(prefix); + if (Constants.NULL_NS_URI !== namespace) { + const nsAttr = attrEl.ownerDocument.createAttributeNS(Constants.XMLNS_ATTRIBUTE_NS_URI, + "xmlns:" + prefix); + nsAttr.setValue(namespace); + attrs.push(nsAttr); + } + } + } + } + + if (attrs.length > 0) { + attr.setUnhandledAttributes(attrs); + } + + // process extra attributes and elements + this.processExtensibilityComponents(attr, attrEl, true); + return attr; + } + + private handleAttributeGroup(schema: XmlSchema, + groupEl: Element, schemaEl: Element) { + const attrGroup = new XmlSchemaAttributeGroup(schema); + + if (groupEl.hasAttribute('name')) { + attrGroup.setName(groupEl.getAttribute('name')); + } + if (groupEl.hasAttribute('id')) { + attrGroup.setId(groupEl.getAttribute('id')); + } + + for (let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'attribute') { + const attr = this.handleAttribute(schema, el, schemaEl); + attrGroup.getAttributes().add(attr); + } else if (el.localName === 'attributeGroup') { + const attrGroupRef = this.handleAttributeGroupRef(schema, el); + attrGroup.getAttributes().add(attrGroupRef); + } else if (el.localName === 'anyAttribute') { + attrGroup.setAnyAttribute(this.handleAnyAttribute(schema, el, schemaEl)); + } else if (el.localName === 'annotation') { + const ann = this.handleAnnotation(el); + attrGroup.setAnnotation(ann); + } + } + return attrGroup; + } + + private handleAttributeGroupRef(schema: XmlSchema, attrGroupEl: Element) { + + const attrGroup = new XmlSchemaAttributeGroupRef(schema); + + if (attrGroupEl.hasAttribute('ref')) { + const ref = attrGroupEl.getAttribute('ref'); + attrGroup.getRef().setTargetQName(this.getRefQName(ref, attrGroupEl)); + } + + if (attrGroupEl.hasAttribute('id')) { + attrGroup.setId(attrGroupEl.getAttribute('id')); + } + + const annotationEl = + XDOMUtil.getFirstChildElementNS(attrGroupEl, XmlSchema.SCHEMA_NS, "annotation"); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + attrGroup.setAnnotation(annotation); + } + return attrGroup; + } + + private handleChoice(schema: XmlSchema, choiceEl: Element, schemaEl: Element) { + const choice = new XmlSchemaChoice(); + + if (choiceEl.hasAttribute('id')) { + choice.setId(choiceEl.getAttribute('id')); + } + + choice.setMinOccurs(this.getMinOccurs(choiceEl)); + choice.setMaxOccurs(this.getMaxOccurs(choiceEl)); + + for (let el = XDOMUtil.getFirstChildElementNS(choiceEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'sequence') { + const seq = this.handleSequence(schema, el, schemaEl); + choice.getItems().add(seq); + } else if (el.localName === 'element') { + const element = this.handleElement(schema, el, schemaEl, false); + choice.getItems().add(element); + } else if (el.localName === 'group') { + const group = this.handleGroupRef(schema, el, schemaEl); + choice.getItems().add(group); + } else if (el.localName === 'choice') { + const choiceItem = this.handleChoice(schema, el, schemaEl); + choice.getItems().add(choiceItem); + } else if (el.localName === 'any') { + const any = this.handleAny(schema, el, schemaEl); + choice.getItems().add(any); + } else if (el.localName === 'annotation') { + const annotation = this.handleAnnotation(el); + choice.setAnnotation(annotation); + } + } + return choice; + } + + private handleComplexContent(schema: XmlSchema, complexEl: Element, schemaEl: Element) { + + const complexContent = new XmlSchemaComplexContent(); + + for (let el = XDOMUtil.getFirstChildElementNS(complexEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'restriction') { + complexContent.content = this.handleComplexContentRestriction(schema, el, schemaEl); + } else if (el.localName === 'extension')) { + complexContent.content = this.handleComplexContentExtension(schema, el, schemaEl); + } else if (el.localName === 'annotation')) { + complexContent.setAnnotation(this.handleAnnotation(el)); + } + } + + if (complexEl.hasAttribute('mixed')) { + const mixed = complexEl.getAttribute("mixed")!; + if (mixed.toLowerCase() === "true") { + complexContent.setMixed(true); + } else { + complexContent.setMixed(false); + } + } + + return complexContent; + } + + private handleComplexContentExtension(schema: XmlSchema, extEl: Element, schemaEl: Element) { + + const ext = new XmlSchemaComplexContentExtension(); + + if (extEl.hasAttribute('base')) { + const name = extEl.getAttribute("base")!; + ext.setBaseTypeName(this.getRefQName(name, extEl)); + } + + for (let el = XDOMUtil.getFirstChildElementNS(extEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'sequence') { + ext.setParticle(this.handleSequence(schema, el, schemaEl)); + } else if (el.localName === 'choice') { + ext.setParticle(this.handleChoice(schema, el, schemaEl)); + } else if (el.localName === 'all') { + ext.setParticle(this.handleAll(schema, el, schemaEl)); + } else if (el.localName === 'attribute') { + ext.getAttributes().add(this.handleAttribute(schema, el, schemaEl)); + } else if (el.localName === 'attributeGroup') { + ext.getAttributes().add(this.handleAttributeGroupRef(schema, el)); + } else if (el.localName === 'group') { + ext.setParticle(this.handleGroupRef(schema, el, schemaEl)); + } else if (el.localName === 'anyAttribute') { + ext.setAnyAttribute(this.handleAnyAttribute(schema, el, schemaEl)); + } else if (el.localName === 'annotation') { + ext.setAnnotation(this.handleAnnotation(el)); + } + } + return ext; + } + + private handleComplexContentRestriction(schema: XmlSchema, restrictionEl: Element, schemaEl: Element) { + + const restriction = new XmlSchemaComplexContentRestriction(); + + if (restrictionEl.hasAttribute("base")) { + const name = restrictionEl.getAttribute("base")!; + restriction.setBaseTypeName(this.getRefQName(name, restrictionEl)); + } + for (let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'sequence') { + restriction.setParticle(this.handleSequence(schema, el, schemaEl)); + } else if (el.localName === 'choice') { + restriction.setParticle(this.handleChoice(schema, el, schemaEl)); + } else if (el.localName === 'all') { + restriction.setParticle(this.handleAll(schema, el, schemaEl)); + } else if (el.localName === 'attribute') { + restriction.getAttributes().add(this.handleAttribute(schema, el, schemaEl)); + } else if (el.localName === 'attributeGroup') { + restriction.getAttributes().add(this.handleAttributeGroupRef(schema, el)); + } else if (el.localName === 'group') { + restriction.setParticle(this.handleGroupRef(schema, el, schemaEl)); + } else if (el.localName === 'anyAttribute') { + restriction.setAnyAttribute(this.handleAnyAttribute(schema, el, schemaEl)); + } else if (el.localName === 'annotation') { + restriction.setAnnotation(this.handleAnnotation(el)); + } + } + return restriction; + } + + private handleConstraint(constraintEl: Element, constraint: XmlSchemaIdentityConstraint) { + + if (constraintEl.hasAttribute('name')) { + constraint.setName(constraintEl.getAttribute('name')!); + } + + if (constraintEl.hasAttribute('refer')) { + const name = constraintEl.getAttribute("refer")!; + (constraint as XmlSchemaKeyref).refer = this.getRefQName(name, constraintEl); + } + for (let el = XDOMUtil.getFirstChildElementNS(constraintEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + // String elPrefix = el.getPrefix() == null ? "" + // : el.getPrefix(); + // if(elPrefix.equals(schema.schema_ns_prefix)) { + if (el.localName === 'selector') { + const selectorXPath = new XmlSchemaXPath(); + selectorXPath.xpath = el.getAttribute('xpath'); + + const annotationEl = + XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + + selectorXPath.setAnnotation(annotation); + } + constraint.setSelector(selectorXPath); + } else if (el.localName === 'field') { + const fieldXPath = new XmlSchemaXPath(); + fieldXPath.xpath = el.getAttribute("xpath"); + constraint.getFields().add(fieldXPath); + + const annotationEl = + XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + + fieldXPath.setAnnotation(annotation); + } + } else if (el.localName ==='annotation') { + const constraintAnnotation = this.handleAnnotation(el); + constraint.setAnnotation(constraintAnnotation); + } + } + return constraint; + } + + private handleElementAnnotation(el: Element, element: XmlSchemaElement) { + const annotationEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + + element.setAnnotation(annotation); + } + } + + private handleElementForm(el: Element, element: XmlSchemaElement, isQualified: boolean) { + if (el.hasAttribute('form')) { + const formDef = el.getAttribute("form")!; + element.setForm(xmlSchemaFormValueOf(formDef)); + } + isQualified = element.getForm() == XmlSchemaForm.QUALIFIED; + + return isQualified; + } + + private handleElementGlobalType(el: Element, element: XmlSchemaElement) { + if (el.getAttributeNode('type') != null) { + const typeName = el.getAttribute("type"); + element.setSchemaTypeName(this.getRefQName(typeName, el)); + const typeQName = element.getSchemaTypeName(); + + const type = this.collection.getTypeByQName(typeQName); + if (type == null) { + // Could be a forward reference... + this.collection.addUnresolvedType(typeQName, element); + } + element.setSchemaType(type); + } else if (el.getAttributeNode('ref') != null) { + const refName = el.getAttribute("ref")!; + const refQName = this.getRefQName(refName, el); + element.getRef().setTargetQName(refQName); + } + } + + private handleElementName(_isGlobal: boolean, _element: XmlSchemaElement, _isQualified: boolean) { + } + + /* + * handle_simple_content_restriction if( restriction has base attribute ) set the baseType else if( + * restriction has an inline simpleType ) handleSimpleType add facets if any to the restriction + */ + + /* + * handle_simple_content_extension extension should have a base name and cannot have any inline defn for( + * each childNode ) if( attribute) handleAttribute else if( attributeGroup) handleAttributeGroup else if( + * anyAttribute) handleAnyAttribute + */ + + private handleGroup(schema: XmlSchema, groupEl: Element, schemaEl: Element) { + + const group = new XmlSchemaGroup(schema); + group.setName(groupEl.getAttribute("name")); + + for (let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'all') { + group.setParticle(this.handleAll(schema, el, schemaEl)); + } else if (el.localName === 'sequence') { + group.setParticle(this.handleSequence(schema, el, schemaEl)); + } else if (el.localName === 'choice') { + group.setParticle(this.handleChoice(schema, el, schemaEl)); + } else if (el.localName === 'annotation')) { + const groupAnnotation = this.handleAnnotation(el); + group.setAnnotation(groupAnnotation); + } + } + return group; + } + + private handleGroupRef(schema: XmlSchema, groupEl: Element, schemaEl: Element) { + + const group = new XmlSchemaGroupRef(); + + group.setMaxOccurs(this.getMaxOccurs(groupEl)); + group.setMinOccurs(this.getMinOccurs(groupEl)); + + const annotationEl = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + + group.setAnnotation(annotation); + } + + if (groupEl.hasAttribute('ref')) { + const ref = groupEl.getAttribute('ref')!; + group.setRefName(this.getRefQName(ref, groupEl)); + return group; + } + for (let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElement(el)) { + + if (el.localName === 'sequence') { + group.setParticle(this.handleSequence(schema, el, schemaEl)); + } else if (el.localName === 'all') { + group.setParticle(this.handleAll(schema, el, schemaEl)); + } else if (el.localName === 'choice') { + group.setParticle(this.handleChoice(schema, el, schemaEl)); + } + } + return group; + } + + private handleNotation(schema: XmlSchema, notationEl: Element) { + + const notation = new XmlSchemaNotation(schema); + + if (notationEl.hasAttribute('id')) { + notation.setId(notationEl.getAttribute('id')!); + } + + if (notationEl.hasAttribute('name')) { + notation.setName(notationEl.getAttribute('name')!); + } + + if (notationEl.hasAttribute('public')) { + notation.setPublicNotation(notationEl.getAttribute('public')!); + } + + if (notationEl.hasAttribute('system')) { + notation.setSystem(notationEl.getAttribute('system')!); + } + + const annotationEl = XDOMUtil.getFirstChildElementNS(notationEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotationEl != null) { + const annotation = this.handleAnnotation(annotationEl); + notation.setAnnotation(annotation); + } + + return notation; + } + + /** + * Handle redefine + * + * @param schema + * @param redefineEl + * @param schemaEl + * @return + */ + private handleRedefine(schema: XmlSchema, redefineEl: Element, schemaEl: Element) { + + const redefine = new XmlSchemaRedefine(schema); + redefine.schemaLocation = redefineEl.getAttribute('schemaLocation'); + const validator = this.newIncludeValidator(schema); + + if (schema.getSourceURI() != null) { + redefine.schema = + this.resolveXmlSchema(schema.getLogicalTargetNamespace(), redefine.schemaLocation, + schema.getSourceURI(), validator); + } else { + redefine.schema = + this.resolveXmlSchema(schema.getLogicalTargetNamespace(), redefine.schemaLocation, validator); + } + + /* + * FIXME - This seems not right. Since the redefine should take into account the attributes of the + * original element we cannot just build the type defined in the redefine section - what we need to do + * is to get the original type object and modify it. However one may argue (quite reasonably) that the + * purpose of this object model is to provide just the representation and not the validation (as it + * has been always the case) + */ + + for (let el = XDOMUtil.getFirstChildElementNS(redefineEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'simpleType') { + const type = this.handleSimpleType(schema, el, schemaEl, false); + + redefine.getSchemaTypes().put(type.getQName(), type); + redefine.getItems().add(type); + } else if (el.localName === 'complexType') { + + const type = this.handleComplexType(schema, el, schemaEl, true); + + redefine.getSchemaTypes().put(type.getQName(), type); + redefine.getItems().add(type); + } else if (el.localName === 'group') { + const group = this.handleGroup(schema, el, schemaEl); + redefine.getGroups().put(group.getQName(), group); + redefine.getItems().add(group); + } else if (el.localName === 'attributeGroup') { + const group = this.handleAttributeGroup(schema, el, schemaEl); + + redefine.getAttributeGroups().put(group.getQName(), group); + redefine.getItems().add(group); + } else if (el.localName === 'annotation')) { + const annotation = this.handleAnnotation(el); + redefine.setAnnotation(annotation); + } + } + return redefine; + } + + private handleSchemaElementBasics( + schemaEl: Element, + systemId?: string, + schemaKey: SchemaKey, + ): void { + if (!this.collection.containsSchema(schemaKey)) { + this.collection.addSchema(schemaKey, this.currentSchema); + this.currentSchema.setParent(this.collection); // establish parentage now. + } else { + throw new Error( + 'Schema name conflict in collection. Namespace: ' + this.currentSchema.getLogicalTargetNamespace(), + ); + } + + this.currentSchema.setElementFormDefault(this.getFormDefault(schemaEl, 'elementFormDefault')); + this.currentSchema.setAttributeFormDefault(this.getFormDefault(schemaEl, 'attributeFormDefault')); + this.currentSchema.setBlockDefault(this.getDerivation(schemaEl, 'blockDefault')); + this.currentSchema.setFinalDefault(this.getDerivation(schemaEl, 'finalDefault')); + + /* set id and version attributes */ + if (schemaEl.hasAttribute('id')) { + this.currentSchema.setId(schemaEl.getAttribute('id')); + } + if (schemaEl.hasAttribute('version')) { + this.currentSchema.setVersion(schemaEl.getAttribute('version')); + } + + this.currentSchema.setSourceURI(systemId); + } + + private handleSchemaElementChild(schemaEl: Element, el: Element): void { + if (el.localName === 'simpleType') { + const type = this.handleSimpleType(this.currentSchema, el, schemaEl, true); + this.collection.resolveType(type.getQName(), type); + } else if (el.localName === 'complexType') { + const type = this.handleComplexType(this.currentSchema, el, schemaEl, true); + this.collection.resolveType(type.getQName(), type); + } else if (el.localName === 'element') { + this.handleElement(this.currentSchema, el, schemaEl, true); + } else if (el.localName === 'include') { + this.handleInclude(this.currentSchema, el, schemaEl); + } else if (el.localName === 'import') { + this.handleImport(this.currentSchema, el, schemaEl); + } else if (el.localName === 'group') { + this.handleGroup(this.currentSchema, el, schemaEl); + } else if (el.localName === 'attributeGroup') { + this.handleAttributeGroup(this.currentSchema, el, schemaEl); + } else if (el.localName === 'attribute') { + this.handleAttribute(this.currentSchema, el, schemaEl, true); + } else if (el.localName === 'redefine') { + this.handleRedefine(this.currentSchema, el, schemaEl); + } else if (el.localName === 'notation') { + this.handleNotation(this.currentSchema, el); + } else if (el.localName === 'annotation') { + const annotation = this.handleAnnotation(el); + this.currentSchema.setAnnotation(annotation); + } + } + + private handleSequence(schema: XmlSchema, sequenceEl: Element, schemaEl: Element) { + + const sequence = new XmlSchemaSequence(); + + // handle min and max occurences + sequence.setMinOccurs(this.getMinOccurs(sequenceEl)); + sequence.setMaxOccurs(this.getMaxOccurs(sequenceEl)); + + for (let el = XDOMUtil.getFirstChildElementNS(sequenceEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'sequence') { + const seq = this.handleSequence(schema, el, schemaEl); + sequence.getItems().add(seq); + } else if (el.localName === 'element') { + const element = this.handleElement(schema, el, schemaEl, false); + sequence.getItems().add(element); + } else if (el.localName === 'group') { + const group = this.handleGroupRef(schema, el, schemaEl); + sequence.getItems().add(group); + } else if (el.localName === 'choice') { + const choice = this.handleChoice(schema, el, schemaEl); + sequence.getItems().add(choice); + } else if (el.localName === 'any') { + const any = this.handleAny(schema, el, schemaEl); + sequence.getItems().add(any); + } else if (el.localName ==='annotation') { + const annotation = this.handleAnnotation(el); + sequence.setAnnotation(annotation); + } + } + return sequence; + } + + private handleSimpleContent(schema: XmlSchema, simpleEl: Element, schemaEl: Element) { + + const simpleContent = new XmlSchemaSimpleContent(); + + for (let el = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'restriction') { + simpleContent.content = this.handleSimpleContentRestriction(schema, el, schemaEl); + } else if (el.localName === 'extension') { + simpleContent.content = this.handleSimpleContentExtension(schema, el, schemaEl); + } else if (el.localName === 'annotation')) { + simpleContent.setAnnotation(this.handleAnnotation(el)); + } + } + return simpleContent; + } + + private handleSimpleContentExtension(schema: XmlSchema, extEl: Element, schemaEl: Element) { + + const ext = new XmlSchemaSimpleContentExtension(); + + if (extEl.hasAttribute('base')) { + const name = extEl.getAttribute("base")!; + ext.setBaseTypeName(this.getRefQName(name, extEl)); + } + + for (let el = XDOMUtil.getFirstChildElementNS(extEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName === 'attribute') { + const attr = this.handleAttribute(schema, el, schemaEl); + ext.getAttributes().add(attr); + } else if (el.localName === 'attributeGroup') { + const attrGroup = this.handleAttributeGroupRef(schema, el); + ext.getAttributes().add(attrGroup); + } else if (el.localName === 'anyAttribute') { + ext.setAnyAttribute(this.handleAnyAttribute(schema, el, schemaEl)); + } else if (el.localName === 'annotation')) { + const ann = this.handleAnnotation(el); + ext.setAnnotation(ann); + } + } + return ext; + } + + private handleSimpleContentRestriction(schema: XmlSchema, restrictionEl: Element, schemaEl: Element) { + + const restriction = new XmlSchemaSimpleContentRestriction(); + + if (restrictionEl.hasAttribute('base')) { + const name = restrictionEl.getAttribute('base')!; + restriction.setBaseTypeName(this.getRefQName(name, restrictionEl)); + } + + if (restrictionEl.hasAttribute('id')) { + restriction.setId(restrictionEl.getAttribute("id")); + } + + // check back simpleContent tag children to add attributes and + // simpleType if any occur + for (let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName ==='attribute') { + const attr = this.handleAttribute(schema, el, schemaEl); + restriction.getAttributes().add(attr); + } else if (el.localName === 'attributeGroup')) { + const attrGroup = this.handleAttributeGroupRef(schema, el); + restriction.getAttributes().add(attrGroup); + } else if (el.localName === 'simpleType') { + restriction.setBaseType(this.handleSimpleType(schema, el, schemaEl, false)); + } else if (el.localName === 'anyAttribute') { + restriction.anyAttribute = this.handleAnyAttribute(schema, el, schemaEl); + } else if (el.localName ==== 'annotation') { + restriction.setAnnotation(this.handleAnnotation(el)); + } else { + const facet = XmlSchemaFacet.construct(el); + const annotation = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotation != null) { + const facetAnnotation = this.handleAnnotation(annotation); + facet.setAnnotation(facetAnnotation); + } + restriction.getFacets().add(facet); + // process extra attributes and elements + this.processExtensibilityComponents(facet, el, true); + } + } + return restriction; + } + + private handleSimpleTypeFinal(simpleEl: Element, simpleType: XmlSchemaSimpleType) { + if (simpleEl.hasAttribute('final')) { + const finalstr = simpleEl.getAttribute('final')!; + simpleType.setFinal(XmlSchemaDerivationMethod.schemaValueOf(finalstr)); + } + } + + private handleSimpleTypeList(schema: XmlSchema, schemaEl: Element, simpleType: XmlSchemaSimpleType, listEl: Element) { + const list = new XmlSchemaSimpleTypeList(); + + /****** + * if( list has an itemType attribute ) set the baseTypeName and look up the base type else if( list + * has a SimpleTypeElement as child) get that element and do a handleSimpleType set the list has the + * content of the simpleType + */ + const inlineListType = XDOMUtil.getFirstChildElementNS(listEl, XmlSchema.SCHEMA_NS, 'simpleType'); + if (listEl.hasAttribute('itemType')) { + const name = listEl.getAttribute('itemType')!; + list.itemTypeName = this.getRefQName(name, listEl); + } else if (inlineListType != null) { + + list.itemType = this.handleSimpleType(schema, inlineListType, schemaEl, false); + } + + const listAnnotationEl = XDOMUtil.getFirstChildElementNS(listEl, XmlSchema.SCHEMA_NS, 'annotation'); + if (listAnnotationEl != null) { + + const listAnnotation = this.handleAnnotation(listAnnotationEl); + list.setAnnotation(listAnnotation); + } + simpleType.content = list; + } + + private handleSimpleTypeRestriction(schema: XmlSchema, schemaEl: Element, simpleType: XmlSchemaSimpleType, restrictionEl: Element) { + const restriction = new XmlSchemaSimpleTypeRestriction(); + + const restAnnotationEl = + XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (restAnnotationEl != null) { + const restAnnotation = this.handleAnnotation(restAnnotationEl); + restriction.setAnnotation(restAnnotation); + } + /** + * if (restriction has a base attribute ) set the baseTypeName and look up the base type else if( + * restriction has a SimpleType Element as child) get that element and do a handleSimpleType; get the + * children of restriction other than annotation and simpleTypes and construct facets from it; set the + * restriction has the content of the simpleType + **/ + + const inlineSimpleType = + XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS, 'simpleType'); + + if (restrictionEl.hasAttribute('base')) { + const ctx = NodeNamespaceContext.getNamespaceContext(restrictionEl); + restriction.setBaseTypeName(this.getRefQName(restrictionEl.getAttribute("base"), ctx)); + } else if (inlineSimpleType != null) { + + restriction.setBaseType(this.handleSimpleType(schema, inlineSimpleType, schemaEl, false)); + } + for (let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + + if (el.localName !== 'annotation' && el.localName !== 'simpleType') { + + const facet = XmlSchemaFacet.construct(el); + const annotation = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); + + if (annotation != null) { + const facetAnnotation = this.handleAnnotation(annotation); + facet.setAnnotation(facetAnnotation); + } + // process extra attributes and elements + this.processExtensibilityComponents(facet, el, true); + restriction.getFacets().add(facet); + } + } + simpleType.content = restriction; + } + + private handleSimpleTypeUnion(schema: XmlSchema, schemaEl: Element, simpleType: XmlSchemaSimpleType, unionEl: Element) { + const union = new XmlSchemaSimpleTypeUnion(); + + /****** + * if( union has a memberTypes attribute ) add the memberTypeSources string for (each memberType in + * the list ) lookup(memberType) for( all SimpleType child Elements) add the simpleTypeName (if any) + * to the memberType Sources do a handleSimpleType with the simpleTypeElement + */ + if (unionEl.hasAttribute('memberTypes')) { + const memberTypes = unionEl.getAttribute('memberTypes')!; + union.setMemberTypesSource(memberTypes); + const v: QName[] = []; + for (let member of memberTypes.split(' ')) { + v.push(this.getRefQName(member, unionEl)); + } + union.setMemberTypesQNames(v); + } + + const inlineUnionType = XDOMUtil.getFirstChildElementNS(unionEl, XmlSchema.SCHEMA_NS, 'simpleType'); + while (inlineUnionType != null) { + + const unionSimpleType = this.handleSimpleType(schema, inlineUnionType, schemaEl, false); + + union.getBaseTypes().add(unionSimpleType); + + if (!unionSimpleType.isAnonymous()) { + union.setMemberTypesSource(union.getMemberTypesSource() + " " + unionSimpleType.getName()); + } + + inlineUnionType = + XDOMUtil.getNextSiblingElementNS(inlineUnionType, XmlSchema.SCHEMA_NS, 'simpleType'); + } + + // NodeList annotations = unionEl.getElementsByTagNameNS( + // XmlSchema.SCHEMA_NS, "annotation"); + const unionAnnotationEl = + XDOMUtil.getFirstChildElementNS(unionEl, XmlSchema.SCHEMA_NS, 'annotation'); + + if (unionAnnotationEl != null) { + const unionAnnotation = this.handleAnnotation(unionAnnotationEl); + + union.setAnnotation(unionAnnotation); + } + simpleType.content = union; + } + + private newIncludeValidator(schema: XmlSchema) { + return (pSchema: XmlSchema) => { + const isEmpty = (pValue?: string) => { + return pValue == null || Constants.NULL_NS_URI === pValue; + } + if (isEmpty(pSchema.getSyntacticalTargetNamespace())) { + pSchema.setLogicalTargetNamespace(schema.getLogicalTargetNamespace()); + } else { + if (!pSchema.getSyntacticalTargetNamespace().equals(schema.getLogicalTargetNamespace())) { + let msg = "An included schema was announced to have the default target namespace"; + if (!isEmpty(schema.getLogicalTargetNamespace())) { + msg += " or the target namespace " + schema.getLogicalTargetNamespace(); + } + throw new Error(msg + ", but has the target namespace " + + pSchema.getLogicalTargetNamespace()); + } + } + } + } + + private processExtensibilityComponents( + schemaObject: XmlSchemaObject, + parentElement: Element, + namespacees: boolean, + ): void { + if (this.extReg != null) { + // process attributes + const attributes = parentElement.getAttributes(); + for (let i = 0; i < attributes.getLength(); i++) { + const attribute = attributes.item(i) as Attr; + + const namespaceURI = attribute.namespaceURI; + const name = attribute.localName; + + if (namespaceURI != null && "" !== namespaceURI // ignore unqualified attributes + // ignore namespaces + && (namespaces || !namespaceURI.startsWith(Constants.XMLNS_ATTRIBUTE_NS_URI)) + // does not belong to the schema namespace by any chance! + && Constants.URI_2001_SCHEMA_XSD !== namespaceURI) { + const qName = new QName(namespaceURI, name); + this.extReg.deserializeExtension(schemaObject, qName, attribute); + } + } + + // process elements + let child = parentElement.firstChild; + while (child != null) { + if (child.nodeType == Node.ELEMENT_NODE) { + const extElement = child as Element; + const namespaceURI = extElement.namespaceURI; + const name = extElement.localName; + + if (namespaceURI != null && Constants.URI_2001_SCHEMA_XSD !== namespaceURI) { + // does not belong to the schema namespace + const qName = new QName(namespaceURI, name); + this.extReg.deserializeExtension(schemaObject, qName, extElement); + } + } + child = child.nextSibling; + } + } + } + + /** + * Add an XmlSchema to the cache if the current thread has the cache enabled. The first three parameters + * are used to construct a key + * + * @param targetNamespace + * @param schemaLocation + * @param baseUri This parameter is the value put under the key (if the cache is enabled) + * @param readSchema + */ + private putCachedSchema(targetNamespace: string, schemaLocation: string, baseUri: string, + readSchema: XmlSchema) { + + if (this.resolvedSchemas != null) { + const schemaKey = targetNamespace + schemaLocation + baseUri; + this.resolvedSchemas.set(schemaKey, readSchema); + } + } +} diff --git a/packages/ui/src/util/xsd/TypeReceiver.ts b/packages/ui/src/util/xsd/TypeReceiver.ts new file mode 100644 index 000000000..b3b745101 --- /dev/null +++ b/packages/ui/src/util/xsd/TypeReceiver.ts @@ -0,0 +1,5 @@ +import { XmlSchemaType } from '.'; + +export interface TypeReceiver { + setType(type: XmlSchemaType): void; +} diff --git a/packages/ui/src/util/xsd/XmlSchema.ts b/packages/ui/src/util/xsd/XmlSchema.ts new file mode 100644 index 000000000..6527f69c7 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchema.ts @@ -0,0 +1,800 @@ +import { + QName, + SchemaKey, + URI_2001_SCHEMA_XSD, + XmlSchemaAnnotated, + XmlSchemaAttribute, + XmlSchemaAttributeGroup, + XmlSchemaCollection, + XmlSchemaDerivationMethod, + XmlSchemaElement, + XmlSchemaExternal, + XmlSchemaGroup, + XmlSchemaImport, + XmlSchemaInclude, + XmlSchemaNotation, + XmlSchemaObject, + XmlSchemaType, +} from '.'; +import { NamespaceContextOwner, NamespacePrefixList } from './utils'; +import { XmlSchemaForm } from './XmlSchemaForm'; + +export class XmlSchema extends XmlSchemaAnnotated implements NamespaceContextOwner { + static readonly SCHEMA_NS = URI_2001_SCHEMA_XSD; + static readonly UTF_8_ENCODING = 'UTF-8'; + + private items: XmlSchemaObject[] = []; + private parent?: XmlSchemaCollection; + private blockDefault = XmlSchemaDerivationMethod.NONE; + private finalDefault = XmlSchemaDerivationMethod.NONE; + private elementFormDefault = XmlSchemaForm.UNQUALIFIED; + private attributeFormDefault = XmlSchemaForm.UNQUALIFIED; + private externals: XmlSchemaExternal[] = []; + private attributeGroups = new Map(); + private attributes = new Map(); + private elements = new Map(); + private groups = new Map(); + private notations = new Map(); + private schemaTypes = new Map(); + private syntacticalTargetNamespace: string | null = null; + private schemaNamespacePrefix: string | null = null; + private logicalTargetNamespace: string | null = null; + private version: string | null = null; + private namespaceContext: NamespacePrefixList | null = null; + private inputEncoding: string | null = null; + + constructor(namespace?: string, systemId?: string, parent?: XmlSchemaCollection) { + super(); + if (namespace == null) return; + const systemIdToUse = systemId ? systemId : namespace; + this.parent = parent; + this.logicalTargetNamespace = namespace; + this.syntacticalTargetNamespace = namespace; + const schemaKey = new SchemaKey(this.logicalTargetNamespace, systemIdToUse); + if (this.parent?.containsSchema(schemaKey)) { + throw new Error(`Schema name '${schemaKey.toString()}' conflicts in collection`); + } + this.parent?.addSchema(schemaKey, this); + } + + /** + * Return an array of DOM documents consisting of this schema and any schemas that it references. + * Referenced schemas are only returned if the {@link XmlSchemaExternal} objects corresponding to them + * have their 'schema' fields filled in. + * + * @return DOM documents. + getAllSchemas() { + const xser = new XmlSchemaSerializer(); + xser.setExtReg(this.parent.getExtReg()); + return xser.serializeSchema(this, true); + + } catch (XmlSchemaSerializer.XmlSchemaSerializerException e) { + throw new XmlSchemaException("Error serializing schema", e); + } + } + */ + + /** + * + * @param name + * @param deep + * @param schemaStack + * @protected + */ + getAttributeByQName(name: QName, deep: boolean = true, schemaStack?: XmlSchema[]): XmlSchemaAttribute | null { + if (schemaStack != null && schemaStack.includes(this)) { + // recursive schema - just return null + return null; + } + let attribute = this.attributes.get(name) as XmlSchemaAttribute | null; + if (deep) { + if (attribute == null) { + // search the imports + for (const item of this.externals) { + const schema = this.getSchema(item); + + if (schema != null) { + if (schemaStack == null) { + schemaStack = []; + } + schemaStack.push(this); + attribute = schema.getAttributeByQName(name, deep, schemaStack); + if (attribute != null) { + return attribute; + } + } + } + } else { + return attribute; + } + } + return attribute; + } + + /** + * Look for an attribute by its local name. + * + * @param name + * @return the attribute + */ + getAttributeByName(name: string) { + const nameToSearchFor = new QName(this.getTargetNamespace(), name); + return this.getAttributeByQName(nameToSearchFor, false); + } + + /** + * @return the default attribute form for this schema. + */ + getAttributeFormDefault() { + return this.attributeFormDefault; + } + + /** + * Retrieve an attribute group by QName. + * + * @param name + * @param deep + * @param schemaStack + * @return + */ + getAttributeGroupByQName( + name: QName, + deep: boolean = true, + schemaStack?: XmlSchema[], + ): XmlSchemaAttributeGroup | null { + if (schemaStack != null && schemaStack.includes(this)) { + // recursive schema - just return null + return null; + } + + let group = this.attributeGroups.get(name) || null; + if (deep) { + if (group == null) { + // search the imports + for (const item of this.externals) { + const schema = this.getSchema(item); + + if (schema != null) { + // create an empty stack - push the current parent in + // and + // use the protected method to process the schema + if (schemaStack == null) { + schemaStack = []; + } + schemaStack.push(this); + group = schema.getAttributeGroupByQName(name, deep, schemaStack); + if (group != null) { + return group; + } + } + } + } else { + return group; + } + } + return group; + } + + /** + * Return a map containing all the defined attribute groups of this schema. The keys are QNames, where the + * namespace will always be the target namespace of this schema. This makes it easier to look up items for + * cross-schema references. + *
+ * If org.apache.ws.commons.schema.protectReadOnlyCollections + * is 'true', this will return a map that checks at runtime. + * + * @return the map of attribute groups. + */ + getAttributeGroups() { + return this.attributeGroups; + } + + /** + * Return a map containing all the defined attributes of this schema. The keys are QNames, where the + * namespace will always be the target namespace of this schema. This makes it easier to look up items for + * cross-schema references. + *
+ * If org.apache.ws.commons.schema.protectReadOnlyCollections + * is 'true', this will return a map that checks at runtime. + * + * @return the map of attributes. + */ + getAttributes() { + return this.attributes; + } + + /** + * Return the default block value for this schema. + * + * @return the default block value. + */ + getBlockDefault() { + return this.blockDefault; + } + + /** + * Look for a element by its QName. + * + * @param name + * @param deep + * @param schemaStack + * @return the element. + */ + getElementByQName(name: QName, deep: boolean = true, schemaStack?: XmlSchema[]): XmlSchemaElement | null { + if (schemaStack != null && schemaStack.includes(this)) { + // recursive schema - just return null + return null; + } + + let element = this.elements.get(name) || null; + if (deep) { + if (element == null) { + // search the imports + for (const item of this.externals) { + const schema = this.getSchema(item); + + if (schema != null) { + // create an empty stack - push the current parent in + // and + // use the protected method to process the schema + if (schemaStack == null) { + schemaStack = []; + } + schemaStack.push(this); + element = schema.getElementByQName(name, deep, schemaStack); + if (element != null) { + return element; + } + } + } + } else { + return element; + } + } + return element; + } + + /** + * get an element by its local name. + * + * @param name + * @return the element. + */ + getElementByName(name: string) { + const nameToSearchFor = new QName(this.getTargetNamespace(), name); + return this.getElementByQName(nameToSearchFor, false); + } + + /** + * @return the default element form for this schema. + */ + getElementFormDefault() { + return this.elementFormDefault; + } + + /** + * Return a map containing all the defined elements of this schema. The keys are QNames, where the + * namespace will always be the target namespace of this schema. This makes it easier to look up items for + * cross-schema references. + *
+ * If org.apache.ws.commons.schema.protectReadOnlyCollections + * is 'true', this will return a map that checks at runtime + * + * @return the map of elements. + */ + getElements(): Map | undefined { + return this.elements; + } + + /** + * Return all of the includes, imports, and redefines for this schema. + *
+ * If org.apache.ws.commons.schema.protectReadOnlyCollections + * is 'true', this will return a list that checks at runtime + * + * @return a list of the objects representing includes, imports, and redefines. + */ + getExternals() { + return this.externals; + } + + /** + * @return the default 'final' value for this schema. + */ + getFinalDefault() { + return this.finalDefault; + } + + /** + * Retrieve a group by QName. + * + * @param name + * @param deep + * @param schemaStack + * @return + */ + getGroupByQName(name: QName, deep: boolean = true, schemaStack?: XmlSchema[]): XmlSchemaGroup | null { + if (schemaStack != null && schemaStack.includes(this)) { + // recursive schema - just return null + return null; + } + let group = this.groups.get(name) || null; + if (deep) { + if (group == null) { + // search the imports + for (const item of this.externals) { + const schema = this.getSchema(item); + + if (schema != null) { + // create an empty stack - push the current parent in + // and + // use the protected method to process the schema + if (schemaStack == null) { + schemaStack = []; + } + schemaStack.push(this); + group = schema.getGroupByQName(name, deep, schemaStack); + if (group != null) { + return group; + } + } + } + } else { + return group; + } + } + return group; + } + + /** + * Return a map containing all the defined groups of this schema. The keys are QNames, where the namespace + * will always be the target namespace of this schema. This makes it easier to look up items for + * cross-schema references.
+ * If org.apache.ws.commons.schema.protectReadOnlyCollections + * is 'true', this will return a map that checks at runtime + * + * @return the map of groups. + */ + getGroups() { + return this.groups; + } + + /** + * Return the character encoding for this schema. This will only be present if either the schema was read + * from an XML document or there was a call to {@link #setInputEncoding(String)}. + * + * @return + */ + getInputEncoding() { + return this.inputEncoding; + } + + /** + * Return all of the global items in this schema.
+ * If org.apache.ws.commons.schema.protectReadOnlyCollections + * is 'true', this will return a map that checks at runtime. + * @return all of the global items from this schema. + * + */ + getItems() { + return this.items; + } + + /** + * Return the logical target namespace. If a schema document has no target namespace, but it is referenced + * via an xs:include or xs:redefine, its logical target namespace is the target namespace of the including + * schema. + * + * @return the logical target namespace. + */ + getLogicalTargetNamespace() { + return this.logicalTargetNamespace; + } + + getNamespaceContext(): NamespacePrefixList | null { + return this.namespaceContext; + } + + /** + * Retrieve a notation by QName. + * + * @param name + * @param deep + * @param schemaStack + * @return the notation + */ + getNotationByQName(name: QName, deep: boolean = true, schemaStack?: XmlSchema[]): XmlSchemaNotation | null { + if (schemaStack != null && schemaStack.includes(this)) { + // recursive schema - just return null + return null; + } + let notation = this.notations.get(name) || null; + if (deep) { + if (notation == null) { + // search the imports + for (const item of this.externals) { + const schema = this.getSchema(item); + + if (schema != null) { + // create an empty stack - push the current parent in + // and + // use the protected method to process the schema + if (schemaStack == null) { + schemaStack = []; + } + schemaStack.push(this); + notation = schema.getNotationByQName(name, deep, schemaStack); + if (notation != null) { + return notation; + } + } + } + } else { + return notation; + } + } + return notation; + } + + /** + * Return a map containing all the defined notations of this schema. The keys are QNames, where the + * namespace will always be the target namespace of this schema. This makes it easier to look up items for + * cross-schema references. + *
+ * If org.apache.ws.commons.schema.protectReadOnlyCollections + * is 'true', this will return a map that checks at runtime. + * + * @return the map of notations. + */ + getNotations() { + return this.notations; + } + + /** + * Return the parent XmlSchemaCollection. If this schema was not initialized in a collection the return + * value will be null. + * + * @return the parent collection. + */ + getParent() { + return this.parent; + } + + /** + * Retrieve a DOM tree for this one schema, independent of any included or related schemas. + * + * @return The DOM document. + * @throws XmlSchemaSerializerException + getSchemaDocument() { + const xser = new XmlSchemaSerializer(); + xser.setExtReg(this.parent.getExtReg()); + return xser.serializeSchema(this, false)[0]; + } + */ + + /** + * @return the namespace prefix for the target namespace. + */ + getSchemaNamespacePrefix() { + return this.schemaNamespacePrefix; + } + + /** + * Return a map containing all the defined types of this schema. The keys are QNames, where the namespace + * will always be the target namespace of this schema. This makes it easier to look up items for + * cross-schema references. + * + * @return the map of types. + */ + getSchemaTypes() { + return this.schemaTypes; + } + + /** + * Return the declared target namespace of this schema. + * + * @see #getLogicalTargetNamespace() + * @return the namespace URI. + */ + getTargetNamespace() { + return this.syntacticalTargetNamespace; + } + + /** + * Search this schema, and its peers in its parent collection, for a schema type specified by QName. + * + * @param name the type name. + * @param deep + * @param schemaStack + * @return the type. + */ + getTypeByQName(name: QName, deep: boolean = true, schemaStack?: XmlSchema[]): XmlSchemaType | null { + if (schemaStack != null && schemaStack.includes(this)) { + // recursive schema - just return null + return null; + } + let type = this.schemaTypes.get(name) || null; + + if (deep) { + if (type == null) { + // search the imports + for (const item of this.externals) { + const schema = this.getSchema(item); + + if (schema != null) { + // create an empty stack - push the current parent + // use the protected method to process the schema + if (schemaStack == null) { + schemaStack = []; + } + schemaStack.push(this); + type = schema.getTypeByQName(name, deep, schemaStack); + if (type != null) { + return type; + } + } + } + } else { + return type; + } + } + return type; + } + + /** + * Retrieve a named type from this schema. + * + * @param name + * @return the type. + */ + getTypeByName(name: string) { + const nameToSearchFor = new QName(this.getTargetNamespace(), name); + return this.getTypeByQName(nameToSearchFor, false); + } + + /** + * Return the declared XML Schema version of this schema. XmlSchema supports only version 1.0. + * + * @return + */ + getVersion() { + return this.version; + } + + /** + * Set the declared XML Schema version of this schema + * + * @param version the new version. + */ + setVersion(version: string | null) { + this.version = version; + } + + /** + * Set the default attribute form for this schema. + * + * @param attributeFormDefault + */ + setAttributeFormDefault(attributeFormDefault: XmlSchemaForm) { + this.attributeFormDefault = attributeFormDefault; + } + + /** + * Set the default block value for this schema. + * + * @param blockDefault the new block value. + */ + setBlockDefault(blockDefault: XmlSchemaDerivationMethod) { + this.blockDefault = blockDefault; + } + + /** + * Set the default element form for this schema. + * + * @param elementFormDefault the element form. This may not be null. + */ + setElementFormDefault(elementFormDefault: XmlSchemaForm) { + this.elementFormDefault = elementFormDefault; + } + + /** + * Set the default 'final' value for this schema. The value may not be null. + * + * @param finalDefault the new final value. + */ + setFinalDefault(finalDefault: XmlSchemaDerivationMethod) { + this.finalDefault = finalDefault; + } + + /** + * Set the character encoding name for the schema. This is typically set when reading a schema from an XML + * file, so that it can be written back out in the same encoding. + * + * @param encoding Character encoding name. + */ + setInputEncoding(encoding: string) { + this.inputEncoding = encoding; + } + + /** + * Sets the schema elements namespace context. This may be used for schema serialization, until a better + * mechanism was found. + */ + setNamespaceContext(namespaceContext: NamespacePrefixList): void { + this.namespaceContext = namespaceContext; + } + + /** + * Set the namespace prefix corresponding to the target namespace. + * + * @param schemaNamespacePrefix + */ + setSchemaNamespacePrefix(schemaNamespacePrefix: string) { + this.schemaNamespacePrefix = schemaNamespacePrefix; + } + + /** + * Set the target namespace for this schema. + * + * @param targetNamespace the new target namespace URI. A value of "" is ignored. + */ + setTargetNamespace(targetNamespace: string) { + if ('' !== targetNamespace) { + this.logicalTargetNamespace = targetNamespace; + this.syntacticalTargetNamespace = targetNamespace; + } + } + + /** + * Serialize the schema as XML to the specified stream using the encoding established with + * {@link #setInputEncoding(String)}. + * + * @param out - the output stream to write to + * @throws UnsupportedEncodingException for an invalid encoding. + public void write(OutputStream out) throws UnsupportedEncodingException { + if (this.inputEncoding != null && !"".equals(this.inputEncoding)) { + write(new OutputStreamWriter(out, this.inputEncoding)); +} else { + // As per the XML spec the default is taken to be UTF 8 + write(new OutputStreamWriter(out, UTF_8_ENCODING)); +} + +} + */ + + /** + * Serialize the schema as XML to the specified stream using the encoding established with + * {@link #setInputEncoding(String)}. + * + * @param out - the output stream to write to + * @param options - a map of options + * @throws UnsupportedEncodingException + * + * +public void write(OutputStream out, Map options) throws UnsupportedEncodingException { + if (this.inputEncoding != null && !"".equals(this.inputEncoding)) { + write(new OutputStreamWriter(out, this.inputEncoding), options); + } else { + write(new OutputStreamWriter(out, UTF_8_ENCODING), options); + } +} +*/ + + /** + * Serialize the schema to a {@link java.io.Writer}. + * + * @param writer - the writer to write this +public void write(Writer writer) { + serializeInternal(writer, null); +} + */ + + /** + * Serialize the schema to a {@link java.io.Writer}. + * + * @param writer - the writer to write this +public void write(Writer writer, Map options) { + serializeInternal(writer, options); +} + */ + + getSyntacticalTargetNamespace() { + return this.syntacticalTargetNamespace; + } + + setLogicalTargetNamespace(logicalTargetNamespace: string) { + this.logicalTargetNamespace = logicalTargetNamespace; + } + + setParent(parent: XmlSchemaCollection) { + this.parent = parent; + } + + setSyntacticalTargetNamespace(syntacticalTargetNamespace: string) { + this.syntacticalTargetNamespace = syntacticalTargetNamespace; + } + + /** + * Get a schema from an import + * + * @param includeOrImport + * @return return the schema object. + */ + private getSchema(includeOrImport: object): XmlSchema | undefined { + let schema: XmlSchema | undefined = undefined; + if (includeOrImport instanceof XmlSchemaImport) { + schema = (includeOrImport as XmlSchemaImport).getSchema(); + } else if (includeOrImport instanceof XmlSchemaInclude) { + schema = (includeOrImport as XmlSchemaInclude).getSchema(); + } + return schema; + } + + /** + * Load the default options + * + * @param options - the map of + private loadDefaultOptions(options: Map ) { + options.put(OutputKeys.OMIT_XML_DECLARATION, "yes"); + options.put(OutputKeys.INDENT, "yes"); + } + */ + + /** + * serialize the schema - this is the method tht does to work + * + * @param out + * @param options +private void serializeInternal(Writer out, Map options) { + + try { + XmlSchemaSerializer xser = new XmlSchemaSerializer(); + xser.setExtReg(this.parent.getExtReg()); + Document[] serializedSchemas = xser.serializeSchema(this, false); + TransformerFactory trFac = TransformerFactory.newInstance(); + trFac.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE); + + try { + trFac.setAttribute("indent-number", "4"); + } catch (IllegalArgumentException e) { + // do nothing - we'll just silently let this pass if it + // was not compatible + } + + Source source = new DOMSource(serializedSchemas[0]); + Result result = new StreamResult(out); + javax.xml.transform.Transformer tr = trFac.newTransformer(); + + // use the input encoding if there is one + if (this.inputEncoding != null && !"".equals(this.inputEncoding)) { + tr.setOutputProperty(OutputKeys.ENCODING, this.inputEncoding); + } + + // let these be configured from outside if any is present + // Note that one can enforce the encoding by passing the necessary + // property in options + + if (options == null) { + options = new HashMap(); + loadDefaultOptions(options); + } + Iterator keys = options.keySet().iterator(); + while (keys.hasNext()) { + Object key = keys.next(); + tr.setOutputProperty((String)key, options.get(key)); + } + + tr.transform(source, result); + out.flush(); + } catch (TransformerConfigurationException e) { + throw new XmlSchemaException(e.getMessage()); + } catch (TransformerException e) { + throw new XmlSchemaException(e.getMessage()); + } catch (XmlSchemaSerializer.XmlSchemaSerializerException e) { + throw new XmlSchemaException(e.getMessage()); + } catch (IOException e) { + throw new XmlSchemaException(e.getMessage()); + } +} + */ +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAllMember.ts b/packages/ui/src/util/xsd/XmlSchemaAllMember.ts new file mode 100644 index 000000000..184ab89c4 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAllMember.ts @@ -0,0 +1,3 @@ +import { XmlSchemaObjectBase } from './utils'; + +export interface XmlSchemaAllMember extends XmlSchemaObjectBase {} diff --git a/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts b/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts new file mode 100644 index 000000000..8a5b81043 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts @@ -0,0 +1,29 @@ +import { XmlSchemaAnnotation, XmlSchemaObject } from '.'; + +export class XmlSchemaAnnotated extends XmlSchemaObject { + private annotation?: XmlSchemaAnnotation; + private id?: string | null; + private unhandledAttributes?: Attr[]; + + getId() { + return this.id; + } + setId(id: string | null) { + this.id = id; + } + getAnnotation() { + return this.annotation; + } + setAnnotation(annotation: XmlSchemaAnnotation) { + this.annotation = annotation; + } + getUnhandledAttributes() { + return this.unhandledAttributes; + } + setUnhanledAttributes(unhandledAttributes: Attr[]) { + this.unhandledAttributes = unhandledAttributes; + } + toString() { + return this.id == null ? super.toString() : super.toString() + `[id:${this.id}]`; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAnnotation.ts b/packages/ui/src/util/xsd/XmlSchemaAnnotation.ts new file mode 100644 index 000000000..1726b5e34 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAnnotation.ts @@ -0,0 +1,38 @@ +import { XmlSchemaObject } from '.'; + +export abstract class XmlSchemaAnnotationItem extends XmlSchemaObject {} +export class XmlSchemaAppInfo extends XmlSchemaAnnotationItem { + /** + * Provides the source of the application information. + */ + source: string | null = null; + + /** + * Returns an array of XmlNode that represents the document text markup. + */ + markup: NodeList | null = null; + + public getSource() { + return this.source; + } + + public setSource(source: string | null) { + this.source = source; + } + + public getMarkup() { + return this.markup; + } + + public setMarkup(markup: NodeList | null) { + this.markup = markup; + } +} + +export class XmlSchemaAnnotation extends XmlSchemaObject { + private items: XmlSchemaAnnotationItem[] = []; + + public getItems() { + return this.items; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAttribute.ts b/packages/ui/src/util/xsd/XmlSchemaAttribute.ts new file mode 100644 index 000000000..60c87a06f --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAttribute.ts @@ -0,0 +1 @@ +export class XmlSchemaAttribute {} diff --git a/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts b/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts new file mode 100644 index 000000000..363e3635d --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts @@ -0,0 +1 @@ +export class XmlSchemaAttributeGroup {} diff --git a/packages/ui/src/util/xsd/XmlSchemaChoiceMember.ts b/packages/ui/src/util/xsd/XmlSchemaChoiceMember.ts new file mode 100644 index 000000000..d1af939c1 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaChoiceMember.ts @@ -0,0 +1,3 @@ +import { XmlSchemaObjectBase } from './utils'; + +export interface XmlSchemaChoiceMember extends XmlSchemaObjectBase {} diff --git a/packages/ui/src/util/xsd/XmlSchemaCollection.ts b/packages/ui/src/util/xsd/XmlSchemaCollection.ts new file mode 100644 index 000000000..70d0eb6ac --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaCollection.ts @@ -0,0 +1,605 @@ +import { + QName, + SchemaBuilder, + TypeReceiver, + XmlSchema, + XmlSchemaFacet, + XmlSchemaFractionDigitsFacet, + XmlSchemaMaxInclusiveFacet, + XmlSchemaMinInclusiveFacet, + XmlSchemaPatternFacet, + XmlSchemaSimpleType, + XmlSchemaSimpleTypeList, + XmlSchemaSimpleTypeRestriction, + XmlSchemaType, + XmlSchemaWhiteSpaceFacet, +} from '.'; +import { ExtensionRegistry } from './extensions'; +import * as Constants from './constants'; +import { CollectionURIResolver, DefaultURIResolver, URIResolver } from './resolver'; +import { NamespacePrefixList } from './utils'; + +export class SchemaKey { + private namespace: string; + private systemId: string; + + constructor(namespace?: string | null, systemId?: string | null) { + this.namespace = namespace != null ? namespace : ''; + this.systemId = systemId != null ? systemId : ''; + } + + toString() { + return this.namespace === '' ? this.systemId : `{${this.namespace}}${this.systemId}`; + } + + getNamespace() { + return this.namespace; + } + getSystemId() { + return this.systemId; + } +} + +export class XmlSchemaCollection { + baseUri: string | null = null; + private stack: SchemaKey[] = []; + private unresolvedTypes = new Map(); + private xsd = new XmlSchema(XmlSchema.SCHEMA_NS, undefined, this); + private extReg: ExtensionRegistry = new ExtensionRegistry(); + + private knownNamespaceMap: Record = {}; + private namespaceContext: NamespacePrefixList | null = null; + private schemaResolver: URIResolver = new DefaultURIResolver(); + private schemas = new Map(); + constructor() { + this.init(); + } + + /** + * Return an indication of whether a particular schema is not in the working stack of schemas. This function, + * while public, is probably not useful outside of the implementation. + * + * @param pKey schema key + * @return false if the schema is in the stack. + */ + check(pKey: SchemaKey) { + return !this.stack.includes(pKey); + } + + getExtReg() { + return this.extReg; + } + + /** + * get the namespace map + * + * @return a map of previously known XMLSchema objects keyed by their namespace (String) + */ + getKnownNamespaceMap() { + return this.knownNamespaceMap; + } + + /** + * Retrieve the namespace context. + * + * @return the namespace context. + */ + getNamespaceContext() { + return this.namespaceContext; + } + + /** + * Retrieve the custom URI resolver, if any. + * + * @return the current resolver. + */ + getSchemaResolver() { + return this.schemaResolver; + } + + /** + * Retrieve a global type from the schema collection. + * + * @param schemaTypeName the QName of the type. + * @return the type object, or null. + */ + getTypeByQName(schemaTypeName: QName) { + const uri = schemaTypeName.getNamespaceURI(); + for (const entry of this.schemas.entries()) { + if (entry[0].getNamespace() === uri) { + const type = entry[1].getTypeByQName(schemaTypeName); + if (type != null) { + return type; + } + } + } + return null; + } + + /** + * Retrieve a set containing the XmlSchema instances with the given system ID. In general, this will + * return a single instance, or none. However, if the schema has no targetNamespace attribute and was + * included from schemata with different target namespaces, then it may occur, that multiple schema + * instances with different logical target namespaces may be returned. + * + * @param systemId the system id for this schema + * @return array of XmlSchema objects + */ + getXmlSchema(systemId: string | null) { + if (systemId == null) { + systemId = ''; + } + const result: XmlSchema[] = []; + for (const entry of this.schemas.entries()) { + if (entry[0].getSystemId() === systemId) { + result.push(entry[1]); + } + } + return result; + } + + getXmlSchemas() { + return Array.from(this.schemas.values()); + } + + init(): void { + /* + * Defined in section 4. + */ + this.addSimpleType(this.xsd, Constants.XSD_ANYSIMPLETYPE.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_ANYTYPE.getLocalPart()); + + /* + * Primitive types 3.2.1 string 3.2.2 boolean 3.2.3 decimal 3.2.4 float 3.2.5 double 3.2.6 duration + * 3.2.7 dateTime 3.2.8 time 3.2.9 date 3.2.10 gYearMonth 3.2.11 gYear 3.2.12 gMonthDay 3.2.13 gDay + * 3.2.14 gMonth 3.2.15 hexBinary 3.2.16 base64Binary 3.2.17 anyURI 3.2.18 QName 3.2.19 NOTATION + */ + this.addSimpleType(this.xsd, Constants.XSD_STRING.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_BOOLEAN.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_FLOAT.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_DOUBLE.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_QNAME.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_DECIMAL.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_DURATION.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_DATE.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_TIME.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_DATETIME.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_DAY.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_MONTH.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_MONTHDAY.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_YEAR.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_YEARMONTH.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NOTATION.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_HEXBIN.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_BASE64.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_ANYURI.getLocalPart()); + + /* + * 3.3.1 normalizedString 3.3.2 token 3.3.3 language 3.3.4 NMTOKEN 3.3.5 NMTOKENS 3.3.6 Name 3.3.7 + * NCName 3.3.8 ID 3.3.9 IDREF 3.3.10 IDREFS 3.3.11 ENTITY 3.3.12 ENTITIES 3.3.13 integer 3.3.14 + * nonPositiveInteger 3.3.15 negativeInteger 3.3.16 long 3.3.17 int 3.3.18 short 3.3.19 byte 3.3.20 + * nonNegativeInteger 3.3.21 unsignedLong 3.3.22 unsignedInt 3.3.23 unsignedShort 3.3.24 unsignedByte + * 3.3.25 positiveInteger + */ + + // derived types from decimal + this.addSimpleType(this.xsd, Constants.XSD_LONG.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_SHORT.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_BYTE.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_INTEGER.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_INT.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_POSITIVEINTEGER.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NEGATIVEINTEGER.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NONPOSITIVEINTEGER.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NONNEGATIVEINTEGER.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDBYTE.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDINT.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDLONG.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDSHORT.getLocalPart()); + + // derived types from string + this.addSimpleType(this.xsd, Constants.XSD_NAME.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NORMALIZEDSTRING.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NCNAME.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NMTOKEN.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NMTOKENS.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_ENTITY.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_ENTITIES.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_ID.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_IDREF.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_IDREFS.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_LANGUAGE.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_TOKEN.getLocalPart()); + + // 2.5.3 setup built-in datatype hierarchy + this.setupBuiltinDatatypeHierarchy(this.xsd); + + /* + * Removed loading ExtensionRegistry from system property. + * It should be enough to register it from application side when necessary. + */ + } + + private setupBuiltinDatatypeHierarchy(xsd: XmlSchema) { + this.setDerivationByRestriction(xsd, Constants.XSD_ANYSIMPLETYPE, Constants.XSD_ANYTYPE); + this.setDerivationByRestriction(xsd, Constants.XSD_DURATION, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_DATETIME, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_TIME, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_DATE, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_YEARMONTH, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_YEAR, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_MONTHDAY, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_DAY, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_MONTH, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_BOOLEAN, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_BASE64, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_HEXBIN, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_FLOAT, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_DOUBLE, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_ANYURI, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_QNAME, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NOTATION, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_DECIMAL, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('collapse', true), + ]); + + this.setDerivationByRestriction(xsd, Constants.XSD_INTEGER, Constants.XSD_DECIMAL, [ + new XmlSchemaFractionDigitsFacet(0, true), + new XmlSchemaPatternFacet('[\\-+]?[0-9]+', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NONPOSITIVEINTEGER, Constants.XSD_INTEGER, [ + new XmlSchemaMaxInclusiveFacet(0, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NEGATIVEINTEGER, Constants.XSD_NONPOSITIVEINTEGER, [ + new XmlSchemaMaxInclusiveFacet(-1, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_LONG, Constants.XSD_INTEGER, [ + new XmlSchemaMinInclusiveFacet(BigInt('-9223372036854775808'), false), + new XmlSchemaMaxInclusiveFacet(BigInt('9223372036854775807'), false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_INT, Constants.XSD_LONG, [ + new XmlSchemaMinInclusiveFacet(-2147483648, false), + new XmlSchemaMaxInclusiveFacet(2147483647, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_SHORT, Constants.XSD_INT, [ + new XmlSchemaMinInclusiveFacet(-32768, false), + new XmlSchemaMaxInclusiveFacet(32767, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_BYTE, Constants.XSD_SHORT, [ + new XmlSchemaMinInclusiveFacet(-128, false), + new XmlSchemaMaxInclusiveFacet(127, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NONNEGATIVEINTEGER, Constants.XSD_INTEGER, [ + new XmlSchemaMinInclusiveFacet(0, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_POSITIVEINTEGER, Constants.XSD_NONNEGATIVEINTEGER, [ + new XmlSchemaMinInclusiveFacet(1, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_UNSIGNEDLONG, Constants.XSD_NONNEGATIVEINTEGER, [ + new XmlSchemaMaxInclusiveFacet(BigInt('18446744073709551615'), false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_UNSIGNEDINT, Constants.XSD_UNSIGNEDLONG, [ + new XmlSchemaMaxInclusiveFacet(4294967295, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_UNSIGNEDSHORT, Constants.XSD_UNSIGNEDINT, [ + new XmlSchemaMaxInclusiveFacet(65535, false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_UNSIGNEDBYTE, Constants.XSD_UNSIGNEDSHORT, [ + new XmlSchemaMaxInclusiveFacet(255, false), + ]); + + this.setDerivationByRestriction(xsd, Constants.XSD_STRING, Constants.XSD_ANYSIMPLETYPE, [ + new XmlSchemaWhiteSpaceFacet('preserve', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NORMALIZEDSTRING, Constants.XSD_STRING, [ + new XmlSchemaWhiteSpaceFacet('replace', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_TOKEN, Constants.XSD_NORMALIZEDSTRING, [ + new XmlSchemaWhiteSpaceFacet('collapse', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_LANGUAGE, Constants.XSD_TOKEN, [ + new XmlSchemaPatternFacet('[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NMTOKEN, Constants.XSD_TOKEN, [ + new XmlSchemaPatternFacet('\\c+', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NAME, Constants.XSD_NMTOKEN, [ + new XmlSchemaPatternFacet('\\i\\c*', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_NCNAME, Constants.XSD_TOKEN, [ + new XmlSchemaPatternFacet('[\\i-[:]][\\c-[:]]*', false), + ]); + this.setDerivationByRestriction(xsd, Constants.XSD_ID, Constants.XSD_NCNAME); + this.setDerivationByRestriction(xsd, Constants.XSD_IDREF, Constants.XSD_NCNAME); + this.setDerivationByRestriction(xsd, Constants.XSD_ENTITY, Constants.XSD_NCNAME); + + this.setDerivationByList(xsd, Constants.XSD_NMTOKENS, Constants.XSD_NMTOKEN); + this.setDerivationByList(xsd, Constants.XSD_IDREFS, Constants.XSD_IDREF); + this.setDerivationByList(xsd, Constants.XSD_ENTITIES, Constants.XSD_ENTITY); + } + + private setDerivationByRestriction(xsd: XmlSchema, child: QName, parent: QName, facets?: XmlSchemaFacet[]) { + const simple = xsd.getTypeByQName(child) as XmlSchemaSimpleType; + const restriction = new XmlSchemaSimpleTypeRestriction(); + restriction.setBaseTypeName(parent); + restriction.setBaseType(xsd.getTypeByQName(parent) as XmlSchemaSimpleType); + + facets != null && restriction.getFacets().push(...facets); + simple.setContent(restriction); + } + + private setDerivationByList(xsd: XmlSchema, child: QName, parent: QName) { + const simple = xsd.getTypeByQName(child) as XmlSchemaSimpleType; + const restriction = new XmlSchemaSimpleTypeList(); + restriction.setItemTypeName(parent); + restriction.setItemType(xsd.getTypeByQName(parent) as XmlSchemaSimpleType); + simple.setContent(restriction); + } + + /** + * Pop the stack of schemas. This function, while public, is probably not useful outside of the + * implementation. + */ + pop() { + this.stack.pop(); + } + + /** + * Push a schema onto the stack of schemas. This function, while public, is probably not useful outside of + * the implementation. + * + * @param pKey the schema key. + */ + push(pKey: SchemaKey) { + this.stack.push(pKey); + } + + read(content: string): XmlSchema { + const parser = new DOMParser(); + const document = parser.parseFromString(content, 'text/xml'); + const builder = new SchemaBuilder(this); + return builder.build(document); + } + + /** + * Return the schema from this collection for a particular targetNamespace. + * + * @param uri target namespace URI. + * @return the schema. + */ + schemaForNamespace(uri: string) { + for (const entry of this.schemas.entries()) { + if (entry[0].getNamespace() === uri) { + return entry[1]; + } + } + return null; + } + + /** + * Set the base URI. This is used when schemas need to be loaded from relative locations + * + * @param baseUri baseUri for this collection. + */ + setBaseUri(baseUri: string) { + this.baseUri = baseUri; + const target = (this.schemaResolver as CollectionURIResolver)?.setCollectionBaseURI; + target && target(baseUri); + } + + setExtReg(extReg: ExtensionRegistry) { + this.extReg = extReg; + } + + /** + * sets the known namespace map + * + * @param knownNamespaceMap a map of previously known XMLSchema objects keyed by their namespace (String) + */ + setKnownNamespaceMap(knownNamespaceMap: Record) { + this.knownNamespaceMap = knownNamespaceMap; + } + + /** + * Set the namespace context for this collection, which controls the assignment of namespace prefixes to + * namespaces. + * + * @param namespaceContext the context. + */ + setNamespaceContext(namespaceContext: NamespacePrefixList) { + this.namespaceContext = namespaceContext; + } + + /** + * Register a custom URI resolver + * + * @param schemaResolver resolver + */ + setSchemaResolver(schemaResolver: URIResolver) { + this.schemaResolver = schemaResolver; + } + + addSchema(pKey: SchemaKey, pSchema: XmlSchema) { + if (this.schemas?.has(pKey)) { + throw new Error( + `A schema with target namespace ${pKey.getNamespace()} and system ID ${pKey.getSystemId()} is already present.`, + ); + } + this.schemas.set(pKey, pSchema); + } + + addUnresolvedType(type: QName, receiver: TypeReceiver) { + let receivers = this.unresolvedTypes.get(type); + if (receivers == null) { + receivers = []; + this.unresolvedTypes.set(type, receivers); + } + receivers.push(receiver); + } + + containsSchema(pKey: SchemaKey): boolean { + return !!this.schemas && this.schemas.has(pKey); + } + + /** + * gets a schema from the external namespace map + * + * @param namespace + * @return + */ + getKnownSchema(namespace: string) { + return this.knownNamespaceMap[namespace]; + } + + /** + * Get a schema given a SchemaKey + * + * @param pKey + * @return + */ + getSchema(pKey: SchemaKey) { + return this.schemas.get(pKey); + } + + resolveType(typeName: QName, type: XmlSchemaType) { + const receivers = this.unresolvedTypes.get(typeName); + if (receivers == null) { + return; + } + for (const receiver of receivers) { + receiver.setType(type); + } + this.unresolvedTypes.delete(typeName); + } + + private addSimpleType(schema: XmlSchema, typeName: string) { + const type = new XmlSchemaSimpleType(schema, true); + type.setName(typeName); + } + + /** + * Find a global attribute by QName in this collection of schemas. + * + * @param schemaAttributeName the name of the attribute. + * @return the attribute or null. + */ + getAttributeByQName(schemaAttributeName: QName | null) { + if (schemaAttributeName == null) { + return null; + } + const uri = schemaAttributeName.getNamespaceURI(); + for (const entry of this.schemas.entries()) { + if (entry[0].getNamespace() === uri) { + const attribute = entry[1].getAttributeByQName(schemaAttributeName); + if (attribute != null) { + return attribute; + } + } + } + return null; + } + + /** + * Retrieve a global element from the schema collection. + * + * @param qname the element QName. + * @return the element object, or null. + */ + getElementByQName(qname: QName | null) { + if (qname == null) { + return null; + } + const uri = qname.getNamespaceURI(); + for (const entry of this.schemas.entries()) { + if (entry[0].getNamespace() === uri) { + const element = entry[1].getElementByQName(qname); + if (element != null) { + return element; + } + } + } + return null; + } + + getAttributeGroupByQName(name: QName | null) { + if (name == null) { + return null; + } + const uri = name.getNamespaceURI(); + for (const entry of this.schemas.entries()) { + if (entry[0].getNamespace() === uri) { + const group = entry[1].getAttributeGroupByQName(name); + if (group != null) { + return group; + } + } + } + return null; + } + + getGroupByQName(name: QName | null) { + if (name == null) { + return null; + } + const uri = name.getNamespaceURI(); + for (const entry of this.schemas.entries()) { + if (entry[0].getNamespace() === uri) { + const group = entry[1].getGroupByQName(name); + if (group != null) { + return group; + } + } + } + return null; + } + + getNotationByQName(name: QName | null) { + if (name == null) { + return null; + } + const uri = name.getNamespaceURI(); + for (const entry of this.schemas.entries()) { + if (entry[0].getNamespace() === uri) { + const notation = entry[1].getNotationByQName(name); + if (notation != null) { + return notation; + } + } + } + return null; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaComplexType.ts b/packages/ui/src/util/xsd/XmlSchemaComplexType.ts new file mode 100644 index 000000000..0469e4a5a --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaComplexType.ts @@ -0,0 +1,127 @@ +import { XmlSchema, XmlSchemaDerivationMethod, XmlSchemaParticle, XmlSchemaType } from '.'; + +export class XmlSchemaComplexType extends XmlSchemaType { + private anyAttribute: XmlSchemaAnyAttribute; + private attributeWildcard: XmlSchemaAnyAttribute; + private attributes: XmlSchemaAttributeOrGroupRef[] = []; + private block: XmlSchemaDerivationMethod = XmlSchemaDerivationMethod.NONE; + private blockResolved: XmlSchemaDerivationMethod; + private contentModel: XmlSchemaContentModel; + private contentType: XmlSchemaContentType; + private particleType: XmlSchemaParticle; + private particle: XmlSchemaParticle; + private isAbstract: boolean = false; + + /** + * Creates new XmlSchemaComplexType + */ + constructor(schema: XmlSchema, topLevel: boolean) { + super(schema, topLevel); + } + + getAnyAttribute() { + return this.anyAttribute; + } + + setAnyAttribute(anyAttribute: XmlSchemaAnyAttribute) { + this.anyAttribute = anyAttribute; + } + + public getAttributes() { + return this.attributes; + } + + public getAttributeWildcard() { + return this.attributeWildcard; + } + + getBlock() { + return this.block; + } + + setBlock(block: XmlSchemaDerivationMethod) { + this.block = block; + } + + getBlockResolved() { + return this.blockResolved; + } + + getContentModel() { + return this.contentModel; + } + + setContentModel(contentModel: XmlSchemaContentModel) { + this.contentModel = contentModel; + } + + getContentType() { + return this.contentType; + } + + setContentType(contentType: XmlSchemaContentType) { + this.contentType = contentType; + } + + getContentTypeParticle() { + return this.particleType; + } + + isAbstract() { + return this.isAbstract; + } + + setAbstract(b: boolean) { + this.isAbstract = b; + } + + getParticle() { + return this.particle; + } + + setParticle(particle: XmlSchemaParticle) { + this.particle = particle; + } + + /** + * Return the QName of the base schema type, if any, as defined in the content model. + */ + getBaseSchemaTypeName() { + const model = this.getContentModel(); + if (model == null) { + return null; + } + const content = model.getContent(); + if (content == null) { + return null; + } + + if (content instanceof XmlSchemaComplexContentExtension) { + return (content as XmlSchemaComplexContentExtension).getBaseTypeName(); + } + if (content instanceof XmlSchemaComplexContentRestriction) { + return (content as XmlSchemaComplexContentRestriction).getBaseTypeName(); + } + return null; + } + + setAttributeWildcard(attributeWildcard: XmlSchemaAnyAttribute) { + this.attributeWildcard = attributeWildcard; + } + + setAttributes(attributes: XmlSchemaAttributeOrGroupRef[]) { + this.attributes = attributes; + } + + setBlockResolved(blockResolved: XmlSchemaDerivationMethod) { + this.blockResolved = blockResolved; + } + + setParticleType(particleType: XmlSchemaParticle) { + this.particleType = particleType; + } + + getParticleType() { + return this.particleType; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaDerivationMethod.ts b/packages/ui/src/util/xsd/XmlSchemaDerivationMethod.ts new file mode 100644 index 000000000..e734e4c19 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaDerivationMethod.ts @@ -0,0 +1,130 @@ +export class XmlSchemaDerivationMethod { + static readonly NONE = new XmlSchemaDerivationMethod(); + private all = false; + private empty = false; + private extension = false; + private list = false; + private restriction = false; + private substitution = false; + private union = false; + + static schemaValueOf(name: string): XmlSchemaDerivationMethod { + const tokens = name.split('\\s'); + const method = new XmlSchemaDerivationMethod(); + for (const t in tokens) { + if ('#all' === t.toLowerCase() || 'all' === t.toLowerCase()) { + if (method.notAll()) { + throw new Error('Derivation method cannot be #all and something else.'); + } else { + method.setAll(true); + } + } else { + if (method.isAll()) { + throw new Error('Derivation method cannot be #all and something else.'); + } + if ('extension' === t) { + method.setExtension(true); + } else if ('list' === t) { + method.setList(true); + } else if ('restriction' === t) { + method.setRestriction(true); + } else if ('substitution' === t) { + method.setSubstitution(true); + } else if ('union' === t) { + method.setUnion(true); + } + } + } + return method; + } + + notAll(): boolean { + return this.empty || this.extension || this.list || this.restriction || this.substitution || this.union; + } + + isAll(): boolean { + return this.all; + } + + setAll(all: boolean) { + this.all = all; + if (all) { + this.empty = false; + this.extension = false; + this.list = false; + this.restriction = false; + this.substitution = false; + this.union = false; + } + } + + isEmpty() { + return this.empty; + } + + setEmpty(empty: boolean) { + this.empty = empty; + } + + isExtension() { + return this.extension; + } + + setExtension(extension: boolean) { + this.extension = extension; + } + + isList() { + return this.list; + } + + setList(list: boolean) { + this.list = list; + } + + isNone() { + return !( + this.all || + this.empty || + this.extension || + this.list || + this.restriction || + this.substitution || + this.union + ); + } + + setNone(_none: boolean) { + this.all = false; + this.empty = false; + this.extension = false; + this.list = false; + this.restriction = false; + this.substitution = false; + this.union = false; + } + + isRestriction() { + return this.restriction; + } + + setRestriction(restriction: boolean) { + this.restriction = restriction; + } + + isSubstitution() { + return this.substitution; + } + + setSubstitution(substitution: boolean) { + this.substitution = substitution; + } + + isUnion() { + return this.union; + } + + setUnion(union: boolean) { + this.union = union; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaDocumentation.ts b/packages/ui/src/util/xsd/XmlSchemaDocumentation.ts new file mode 100644 index 000000000..c12e403ff --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaDocumentation.ts @@ -0,0 +1,38 @@ +import { XmlSchemaAnnotationItem } from '.'; + +export class XmlSchemaDocumentation extends XmlSchemaAnnotationItem { + /** + * Provides the source of the application information. + */ + source: string | null = null; + language: string | null = null; + + /** + * Returns an array of XmlNode that represents the document text markup. + */ + markup: NodeList | null = null; + + getSource() { + return this.source; + } + + setSource(source: string | null) { + this.source = source; + } + + getMarkup() { + return this.markup; + } + + setMarkup(markup: NodeList) { + this.markup = markup; + } + + getLanguage() { + return this.language; + } + + setLanguage(language: string | null) { + this.language = language; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaElement.ts b/packages/ui/src/util/xsd/XmlSchemaElement.ts new file mode 100644 index 000000000..faf65f50e --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaElement.ts @@ -0,0 +1,246 @@ +import { XmlSchemaNamedWithForm, XmlSchemaRef } from './utils'; +import { + QName, + TypeReceiver, + XmlSchema, + XmlSchemaAllMember, + XmlSchemaChoiceMember, + XmlSchemaDerivationMethod, + XmlSchemaForm, + XmlSchemaIdentityConstraint, + XmlSchemaItemWithRef, + XmlSchemaParticle, + XmlSchemaSequenceMember, + XmlSchemaType, +} from '.'; + +export class XmlSchemaElement + extends XmlSchemaParticle + implements + TypeReceiver, + XmlSchemaNamedWithForm, + XmlSchemaChoiceMember, + XmlSchemaSequenceMember, + XmlSchemaAllMember, + XmlSchemaItemWithRef +{ + /** + * Attribute used to block a type derivation. + */ + private block: XmlSchemaDerivationMethod; + + private constraints: XmlSchemaIdentityConstraint[] = []; + + /** + * Provides the default value of the element if its content is a simple type or the element's content is + * textOnly. + */ + defaultValue: string | null = null; + fixedValue: string | null = null; + + finalDerivation: XmlSchemaDerivationMethod; + + abstractElement: boolean; + nillable: boolean; + ref: XmlSchemaRef; + + /** + * Returns the type of the element. This can either be a complex type or a simple type. + */ + private schemaType: XmlSchemaType; + + /** + * QName of a built-in data type defined in this schema or another schema indicated by the specified + * namespace. + */ + private schemaTypeName: QName | null = null; + + /** + * QName of an element that can be a substitute for this element. + */ + private substitutionGroup: QName; + + private namedDelegate: XmlSchemaNamedWithFormImpl; + + /** + * Creates new XmlSchemaElement + */ + constructor(parentSchema: XmlSchema, topLevel: boolean) { + super(); + this.namedDelegate = new XmlSchemaNamedWithFormImpl(parentSchema, topLevel, true); + this.ref = new XmlSchemaRef(parentSchema, XmlSchemaElement.class); + this.namedDelegate.setRefObject(this.ref); + this.ref.setNamedObject(this.namedDelegate); + + this.abstractElement = false; + this.nillable = false; + this.finalDerivation = XmlSchemaDerivationMethod.NONE; + this.block = XmlSchemaDerivationMethod.NONE; + const fParentSchema = parentSchema; + if (topLevel) { + fParentSchema.getItems().push(this); + } + } + + /** + * Returns a collection of constraints on the element. + */ + getConstraints() { + return this.constraints; + } + + getDefaultValue() { + return this.defaultValue; + } + + setDefaultValue(defaultValue: string | null) { + this.defaultValue = defaultValue; + } + + getBlock(): XmlSchemaDerivationMethod { + return this.block; + } + + setBlock(block: XmlSchemaDerivationMethod) { + this.block = block; + } + + getFinal(): XmlSchemaDerivationMethod { + return this.finalDerivation; + } + + setFinal(finalDerivationValue: XmlSchemaDerivationMethod) { + this.finalDerivation = finalDerivationValue; + } + + getFixedValue() { + return this.fixedValue; + } + + setFixedValue(fixedValue: string | null) { + this.fixedValue = fixedValue; + } + + isAbstract() { + return this.abstractElement; + } + + setAbstract(isAbstract: boolean) { + this.abstractElement = isAbstract; + } + + isNillable() { + return this.nillable; + } + + setNillable(isNillable: boolean) { + this.nillable = isNillable; + } + + getRef() { + return this.ref; + } + + getSchemaType() { + return this.schemaType; + } + + setSchemaType(schemaType: XmlSchemaType) { + this.schemaType = schemaType; + } + + getSchemaTypeName() { + return this.schemaTypeName; + } + + setSchemaTypeName(schemaTypeName: QName | null) { + this.schemaTypeName = schemaTypeName; + } + + getSubstitutionGroup() { + return this.substitutionGroup; + } + + setSubstitutionGroup(substitutionGroup: QName) { + this.substitutionGroup = substitutionGroup; + } + + setType(type: XmlSchemaType) { + this.schemaType = type; + } + + getName() { + return this.namedDelegate.getName(); + } + + getParent() { + return this.namedDelegate.getParent(); + } + + getQName() { + return this.namedDelegate.getQName(); + } + + isAnonymous() { + return this.namedDelegate.isAnonymous(); + } + + isTopLevel() { + return this.namedDelegate.isTopLevel(); + } + + setName(name: string | null) { + const fName = name; + if (this.namedDelegate.isTopLevel() && this.namedDelegate.getName() != null) { + this.namedDelegate.getParent().getElements().remove(this.getQName()); + } + this.namedDelegate.setName(fName); + if (this.namedDelegate.isTopLevel()) { + this.namedDelegate.getParent().getElements().put(this.getQName(), this); + } + } + + getForm() { + return this.namedDelegate.getForm(); + } + + isFormSpecified() { + return this.namedDelegate.isFormSpecified(); + } + + setForm(form: XmlSchemaForm) { + this.namedDelegate.setForm(form); + } + + getWireName() { + return this.namedDelegate.getWireName(); + } + + setFinalDerivation(finalDerivation: XmlSchemaDerivationMethod) { + this.finalDerivation = finalDerivation; + } + + getFinalDerivation() { + return this.finalDerivation; + } + + setAbstractElement(abstractElement: boolean) { + this.abstractElement = abstractElement; + } + + isAbstractElement() { + return this.abstractElement; + } + + isRef() { + return this.ref.getTargetQName() != null; + } + + getTargetQName() { + return this.ref.getTargetQName(); + } + + getRefBase() { + return this.ref; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaExternal.ts b/packages/ui/src/util/xsd/XmlSchemaExternal.ts new file mode 100644 index 000000000..d10be5d3a --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaExternal.ts @@ -0,0 +1,38 @@ +import { XmlSchema, XmlSchemaAnnotated } from '.'; + +export abstract class XmlSchemaExternal extends XmlSchemaAnnotated { + schema?: XmlSchema; + schemaLocation: string | null = null; + + /** + * Creates new XmlSchemaExternal + */ + protected constructor(parent: XmlSchema) { + super(); + const fParent = parent; + fParent.getExternals().push(this); + fParent.getItems().push(this); + } + + public getSchema() { + return this.schema; + } + + /** + * Store a reference to an XmlSchema corresponding to this item. This only + * case in which this will be read is if you ask the XmlSchemaSerializer + * to serialize external schemas. + * @param sc schema reference + */ + public setSchema(sc: XmlSchema) { + this.schema = sc; + } + + public getSchemaLocation() { + return this.schemaLocation; + } + + public setSchemaLocation(schemaLocation: string) { + this.schemaLocation = schemaLocation; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaFacet.ts b/packages/ui/src/util/xsd/XmlSchemaFacet.ts new file mode 100644 index 000000000..2c82fbaf2 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaFacet.ts @@ -0,0 +1,81 @@ +import { XmlSchemaAnnotated } from '.'; +import { XmlElement } from '../xml'; + +export abstract class XmlSchemaFacet extends XmlSchemaAnnotated { + fixed: boolean | undefined; + value: object | string | number | bigint | undefined; + + constructor(value?: object | string | number | bigint, fixed?: boolean) { + super(); + this.value = value; + this.fixed = fixed; + } + + static construct(el: XmlElement) { + const name = el.getLocalName(); + let fixed = false; + if (el.getAttribute('fixed') === 'true') { + fixed = true; + } + let facet: XmlSchemaFacet; + if ('enumeration' === name) { + facet = new XmlSchemaEnumerationFacet(); + } else if ('fractionDigits' === name) { + facet = new XmlSchemaFractionDigitsFacet(); + } else if ('length' === name) { + facet = new XmlSchemaLengthFacet(); + } else if ('maxExclusive' === name) { + facet = new XmlSchemaMaxExclusiveFacet(); + } else if ('maxInclusive' === name) { + facet = new XmlSchemaMaxInclusiveFacet(); + } else if ('maxLength' === name) { + facet = new XmlSchemaMaxLengthFacet(); + } else if ('minLength' === name) { + facet = new XmlSchemaMinLengthFacet(); + } else if ('minExclusive' === name) { + facet = new XmlSchemaMinExclusiveFacet(); + } else if ('minInclusive' === name) { + facet = new XmlSchemaMinInclusiveFacet(); + } else if ('pattern' === name) { + facet = new XmlSchemaPatternFacet(); + } else if ('totalDigits' === name) { + facet = new XmlSchemaTotalDigitsFacet(); + } else if ('whiteSpace' === name) { + facet = new XmlSchemaWhiteSpaceFacet(); + } else { + throw new Error('Incorrect facet with name "' + name + '" found.'); + } + if (el.hasAttribute('id')) { + facet.setId(el.getAttribute('id')); + } + facet.setFixed(fixed); + facet.setValue(el.getAttribute('value')); + return facet; + } + + getValue(): object | string | undefined { + return this.value; + } + isFixed(): boolean { + return !!this.fixed && this.fixed; + } + setFixed(fixed: boolean) { + this.fixed = fixed; + } + setValue(value: object) { + this.value = value; + } +} +export class XmlSchemaWhiteSpaceFacet extends XmlSchemaFacet {} +export abstract class XmlSchemaNumericFacet extends XmlSchemaFacet {} +export class XmlSchemaFractionDigitsFacet extends XmlSchemaNumericFacet {} +export class XmlSchemaMaxInclusiveFacet extends XmlSchemaFacet {} +export class XmlSchemaMinInclusiveFacet extends XmlSchemaFacet {} +export class XmlSchemaPatternFacet extends XmlSchemaFacet {} +export class XmlSchemaEnumerationFacet extends XmlSchemaFacet {} +export class XmlSchemaLengthFacet extends XmlSchemaFacet {} +export class XmlSchemaMaxLengthFacet extends XmlSchemaFacet {} +export class XmlSchemaMinLengthFacet extends XmlSchemaFacet {} +export class XmlSchemaMaxExclusiveFacet extends XmlSchemaFacet {} +export class XmlSchemaMinExclusiveFacet extends XmlSchemaFacet {} +export class XmlSchemaTotalDigitsFacet extends XmlSchemaFacet {} diff --git a/packages/ui/src/util/xsd/XmlSchemaForm.ts b/packages/ui/src/util/xsd/XmlSchemaForm.ts new file mode 100644 index 000000000..008d262cc --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaForm.ts @@ -0,0 +1,9 @@ +export enum XmlSchemaForm { + NONE = 'none', + QUALIFIED = 'qualified', + UNQUALIFIED = 'unqualified', +} + +export function xmlSchemaFormValueOf(value: string) { + return XmlSchemaForm[value as keyof typeof XmlSchemaForm]; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaGroup.ts b/packages/ui/src/util/xsd/XmlSchemaGroup.ts new file mode 100644 index 000000000..ae5a28855 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaGroup.ts @@ -0,0 +1 @@ +export class XmlSchemaGroup {} diff --git a/packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts b/packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts new file mode 100644 index 000000000..5790e8d32 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts @@ -0,0 +1,49 @@ +import { QName, XmlSchemaAnnotated } from '.'; + +export class XmlSchemaIdentityConstraint extends XmlSchemaAnnotated { + private fields: XmlSchemaXPath = []; + + private name: string | null = null; + + private selector: XmlSchemaXPath | null = null; + + getFields() { + return this.fields; + } + + getName() { + return this.name; + } + + getSelector() { + return this.selector; + } + + setName(name: string) { + this.name = name; + } + + setSelector(selector: XmlSchemaXPath) { + this.selector = selector; + } + + setFields(fields: XmlSchemaXPath) { + this.fields = fields; + } +} + +export class XmlSchemaKey extends XmlSchemaIdentityConstraint {} + +export class XmlSchemaKeyref extends XmlSchemaIdentityConstraint { + refer: QName | null = null; + + getRefer() { + return this.refer; + } + + setRefer(refer: QName) { + this.refer = refer; + } +} + +export class XmlSchemaUnique extends XmlSchemaIdentityConstraint {} diff --git a/packages/ui/src/util/xsd/XmlSchemaImport.ts b/packages/ui/src/util/xsd/XmlSchemaImport.ts new file mode 100644 index 000000000..d8c9411e3 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaImport.ts @@ -0,0 +1,20 @@ +import { XmlSchema, XmlSchemaExternal } from '.'; + +export class XmlSchemaImport extends XmlSchemaExternal { + namespace: string | null = null; + + /** + * Creates new XmlSchemaImport + */ + constructor(parent: XmlSchema) { + super(parent); + } + + getNamespace(): string | null { + return this.namespace; + } + + setNamespace(namespace: string) { + this.namespace = namespace; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaInclude.ts b/packages/ui/src/util/xsd/XmlSchemaInclude.ts new file mode 100644 index 000000000..2757e6421 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaInclude.ts @@ -0,0 +1,11 @@ +import { XmlSchemaExternal } from './XmlSchemaExternal'; +import { XmlSchema } from './XmlSchema'; + +export class XmlSchemaInclude extends XmlSchemaExternal { + /** + * Creates new XmlSchemaInclude + */ + constructor(parent: XmlSchema) { + super(parent); + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts b/packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts new file mode 100644 index 000000000..239406df4 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts @@ -0,0 +1,5 @@ +import { XmlSchemaNamed, XmlSchemaRef } from './utils'; +import { XmlSchemaItemWithRefBase } from '.'; +export interface XmlSchemaItemWithRef extends XmlSchemaItemWithRefBase { + getRef(): XmlSchemaRef; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts b/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts new file mode 100644 index 000000000..7adc70fc9 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts @@ -0,0 +1,19 @@ +import { QName } from '.'; +import { XmlSchemaRefBase } from './utils'; + +export interface XmlSchemaItemWithRefBase { + /** + * @return true if this object has a non-null ref. + */ + isRef(): boolean; + + /** + * @return the Qualified Name of the target of the ref. + */ + getTargetQName(): QName; + + /** + * @return the non-generic reference object. + */ + getRefBase(): XmlSchemaRefBase; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaNotation.ts b/packages/ui/src/util/xsd/XmlSchemaNotation.ts new file mode 100644 index 000000000..b5e1a4202 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaNotation.ts @@ -0,0 +1 @@ +export class XmlSchemaNotation {} diff --git a/packages/ui/src/util/xsd/XmlSchemaObject.ts b/packages/ui/src/util/xsd/XmlSchemaObject.ts new file mode 100644 index 000000000..e35101074 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaObject.ts @@ -0,0 +1,45 @@ +import { XmlSchemaObjectBase } from './utils'; + +export abstract class XmlSchemaObject implements XmlSchemaObjectBase { + lineNumber?: number; + linePosition?: number; + sourceURI: string | null = null; + + private metaInfoMap = new Map(); + + addMetaInfo(key: object, value: object) { + this.metaInfoMap.set(key, value); + } + + getLineNumber() { + return this.lineNumber; + } + + getLinePosition() { + return this.linePosition; + } + + getMetaInfoMap() { + return this.metaInfoMap; + } + + getSourceURI() { + return this.sourceURI; + } + + setLineNumber(lineNumber: number) { + this.lineNumber = lineNumber; + } + + setLinePosition(linePosition: number) { + this.linePosition = linePosition; + } + + setMetaInfoMap(metaInfoMap: Map) { + this.metaInfoMap = metaInfoMap; + } + + setSourceURI(sourceURI: string | null) { + this.sourceURI = sourceURI; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaParticle.ts b/packages/ui/src/util/xsd/XmlSchemaParticle.ts new file mode 100644 index 000000000..3ecbb7024 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaParticle.ts @@ -0,0 +1,25 @@ +import { XmlSchemaAnnotated } from '.'; + +export abstract class XmlSchemaParticle extends XmlSchemaAnnotated { + static readonly DEFAULT_MAX_OCCURS = 1; + static readonly DEFAULT_MIN_OCCURS = 1; + + private maxOccurs = XmlSchemaParticle.DEFAULT_MAX_OCCURS; + private minOccurs = XmlSchemaParticle.DEFAULT_MIN_OCCURS; + + setMaxOccurs(maxOccurs: number) { + this.maxOccurs = maxOccurs; + } + + getMaxOccurs() { + return this.maxOccurs; + } + + setMinOccurs(minOccurs: number) { + this.minOccurs = minOccurs; + } + + getMinOccurs() { + return this.minOccurs; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaSequenceMember.ts b/packages/ui/src/util/xsd/XmlSchemaSequenceMember.ts new file mode 100644 index 000000000..3b4ec9ec9 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaSequenceMember.ts @@ -0,0 +1,3 @@ +import { XmlSchemaObjectBase } from './utils'; + +export interface XmlSchemaSequenceMember extends XmlSchemaObjectBase {} diff --git a/packages/ui/src/util/xsd/XmlSchemaSimpleType.ts b/packages/ui/src/util/xsd/XmlSchemaSimpleType.ts new file mode 100644 index 000000000..8d01bfbad --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaSimpleType.ts @@ -0,0 +1,61 @@ +import { QName, XmlSchemaAnnotated, XmlSchemaFacet, XmlSchemaType } from '.'; + +export abstract class XmlSchemaSimpleTypeContent extends XmlSchemaAnnotated {} + +export class XmlSchemaSimpleTypeRestriction extends XmlSchemaSimpleTypeContent { + private baseType?: XmlSchemaSimpleType; + private baseTypeName?: QName; + private facets: XmlSchemaFacet[] = []; + + getBaseType() { + return this.baseType; + } + + setBaseType(baseType: XmlSchemaSimpleType) { + this.baseType = baseType; + } + + getBaseTypeName() { + return this.baseTypeName; + } + + setBaseTypeName(baseTypeName: QName) { + this.baseTypeName = baseTypeName; + } + + getFacets() { + return this.facets; + } +} + +export class XmlSchemaSimpleTypeList extends XmlSchemaSimpleTypeContent { + itemType?: XmlSchemaSimpleType; + itemTypeName?: QName; + + getItemType() { + return this.itemType; + } + + setItemType(itemType: XmlSchemaSimpleType) { + this.itemType = itemType; + } + + getItemTypeName() { + return this.itemTypeName; + } + + setItemTypeName(itemTypeName: QName) { + this.itemTypeName = itemTypeName; + } +} + +export class XmlSchemaSimpleType extends XmlSchemaType { + content?: XmlSchemaSimpleTypeContent; + + getContent() { + return this.content; + } + setContent(content: XmlSchemaSimpleTypeContent) { + this.content = content; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaType.ts b/packages/ui/src/util/xsd/XmlSchemaType.ts new file mode 100644 index 000000000..49d641cd3 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaType.ts @@ -0,0 +1,99 @@ +import { XmlSchema, XmlSchemaAnnotated, XmlSchemaDerivationMethod } from '.'; +import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; + +export class XmlSchemaType extends XmlSchemaAnnotated implements XmlSchemaNamed { + private deriveBy: XmlSchemaDerivationMethod | null = null; + private finalDerivation: XmlSchemaDerivationMethod; + private finalResolved?: XmlSchemaDerivationMethod; + private _isMixed = false; + private namedDelegate: XmlSchemaNamedImpl; + + constructor(schema: XmlSchema, topLevel: boolean) { + super(); + this.namedDelegate = new XmlSchemaNamedImpl(schema, topLevel); + this.finalDerivation = XmlSchemaDerivationMethod.NONE; + if (topLevel) { + schema.getItems().push(this); + } + } + + getDeriveBy() { + return this.deriveBy; + } + + getFinal() { + return this.finalDerivation; + } + + setFinal(finalDerivationValue: XmlSchemaDerivationMethod) { + this.finalDerivation = finalDerivationValue; + } + + getFinalResolved() { + return this.finalResolved; + } + + isMixed() { + return this._isMixed; + } + + setMixed(isMixedValue: boolean) { + this._isMixed = isMixedValue; + } + + getName() { + return this.namedDelegate.getName(); + } + + getParent() { + return this.namedDelegate.getParent(); + } + + getQName() { + return this.namedDelegate.getQName(); + } + + isAnonymous() { + return this.namedDelegate.isAnonymous(); + } + + isTopLevel() { + return this.namedDelegate.isTopLevel(); + } + + setName(name: string | null) { + /* + * Inside a redefine, a 'non-top-level' type can have a name. + * This requires us to tolerate this case (non-top-level, named) even it + * in any other case it's completely invalid. + */ + if (this.isTopLevel() && name == null) { + throw new Error('A non-top-level type may not be anonyous.'); + } + if (this.isTopLevel() && this.getName() != null) { + const qname = this.getQName(); + qname && this.getParent().getSchemaTypes().delete(qname); + } + this.namedDelegate.setName(name!); + if (this.isTopLevel()) { + const qname = this.getQName(); + qname && this.getParent().getSchemaTypes().set(qname, this); + } + } + + setFinalResolved(finalResolved: XmlSchemaDerivationMethod) { + this.finalResolved = finalResolved; + } + + setFinalDerivation(finalDerivation: XmlSchemaDerivationMethod) { + this.finalDerivation = finalDerivation; + } + + getFinalDerivation() { + return this.finalDerivation; + } + + setDeriveBy(deriveBy: XmlSchemaDerivationMethod) { + this.deriveBy = deriveBy; + } +} diff --git a/packages/ui/src/util/xsd/constants.ts b/packages/ui/src/util/xsd/constants.ts new file mode 100644 index 000000000..700fea789 --- /dev/null +++ b/packages/ui/src/util/xsd/constants.ts @@ -0,0 +1,77 @@ +import { QName } from './QName'; + +export const DEFAULT_NS_PREFIX = ''; +export const NULL_NS_URI = ''; + +// +// Schema Namespaces +// +export const URI_2001_SCHEMA_XSD = 'http://www.w3.org/2001/XMLSchema'; +export const URI_2001_SCHEMA_XSI = 'http://www.w3.org/2001/XMLSchema-instance'; +export const XML_NS_PREFIX = 'xml'; +export const XML_NS_URI = 'http://www.w3.org/XML/1998/namespace'; +export const XMLNS_ATTRIBUTE = 'xmlns'; +export const XMLNS_ATTRIBUTE_NS_URI = 'http://www.w3.org/2000/xmlns/'; +export const XMLNS_PREFIX = 'xml'; +export const XMLNS_URI = 'http://www.w3.org/XML/1998/namespace'; +export const XSD_ANY = new QName(URI_2001_SCHEMA_XSD, 'any'); +export const XSD_ANYSIMPLETYPE = new QName(URI_2001_SCHEMA_XSD, 'anySimpleType'); +export const XSD_ANYTYPE = new QName(URI_2001_SCHEMA_XSD, 'anyType'); +export const XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, 'anyURI'); +export const XSD_BASE64 = new QName(URI_2001_SCHEMA_XSD, 'base64Binary'); +export const XSD_BOOLEAN = new QName(URI_2001_SCHEMA_XSD, 'boolean'); +export const XSD_BYTE = new QName(URI_2001_SCHEMA_XSD, 'byte'); +export const XSD_DATE = new QName(URI_2001_SCHEMA_XSD, 'date'); +export const XSD_DATETIME = new QName(URI_2001_SCHEMA_XSD, 'dateTime'); +export const XSD_DAY = new QName(URI_2001_SCHEMA_XSD, 'gDay'); +export const XSD_DECIMAL = new QName(URI_2001_SCHEMA_XSD, 'decimal'); + +export const XSD_DOUBLE = new QName(URI_2001_SCHEMA_XSD, 'double'); +export const XSD_DURATION = new QName(URI_2001_SCHEMA_XSD, 'duration'); + +export const XSD_ENTITIES = new QName(URI_2001_SCHEMA_XSD, 'ENTITIES'); +export const XSD_ENTITY = new QName(URI_2001_SCHEMA_XSD, 'ENTITY'); +export const XSD_FLOAT = new QName(URI_2001_SCHEMA_XSD, 'float'); +export const XSD_HEXBIN = new QName(URI_2001_SCHEMA_XSD, 'hexBinary'); +export const XSD_ID = new QName(URI_2001_SCHEMA_XSD, 'ID'); +export const XSD_IDREF = new QName(URI_2001_SCHEMA_XSD, 'IDREF'); +export const XSD_IDREFS = new QName(URI_2001_SCHEMA_XSD, 'IDREFS'); +export const XSD_INT = new QName(URI_2001_SCHEMA_XSD, 'int'); + +export const XSD_INTEGER = new QName(URI_2001_SCHEMA_XSD, 'integer'); +export const XSD_LANGUAGE = new QName(URI_2001_SCHEMA_XSD, 'language'); +export const XSD_LONG = new QName(URI_2001_SCHEMA_XSD, 'long'); +export const XSD_MONTH = new QName(URI_2001_SCHEMA_XSD, 'gMonth'); +export const XSD_MONTHDAY = new QName(URI_2001_SCHEMA_XSD, 'gMonthDay'); +export const XSD_NAME = new QName(URI_2001_SCHEMA_XSD, 'Name'); + +export const XSD_NCNAME = new QName(URI_2001_SCHEMA_XSD, 'NCName'); +export const XSD_NEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, 'negativeInteger'); +export const XSD_NMTOKEN = new QName(URI_2001_SCHEMA_XSD, 'NMTOKEN'); +export const XSD_NMTOKENS = new QName(URI_2001_SCHEMA_XSD, 'NMTOKENS'); +export const XSD_NONNEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, 'nonNegativeInteger'); +export const XSD_NONPOSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, 'nonPositiveInteger'); +export const XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, 'normalizedString'); +export const XSD_NOTATION = new QName(URI_2001_SCHEMA_XSD, 'NOTATION'); +export const XSD_POSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, 'positiveInteger'); +export const XSD_QNAME = new QName(URI_2001_SCHEMA_XSD, 'QName'); +export const XSD_SCHEMA = new QName(URI_2001_SCHEMA_XSD, 'schema'); +export const XSD_SHORT = new QName(URI_2001_SCHEMA_XSD, 'short'); +// Define qnames for the all of the XSD and SOAP-ENC encodings +export const XSD_STRING = new QName(URI_2001_SCHEMA_XSD, 'string'); + +export const XSD_TIME = new QName(URI_2001_SCHEMA_XSD, 'time'); + +export const XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, 'token'); + +export const XSD_UNSIGNEDBYTE = new QName(URI_2001_SCHEMA_XSD, 'unsignedByte'); + +export const XSD_UNSIGNEDINT = new QName(URI_2001_SCHEMA_XSD, 'unsignedInt'); + +export const XSD_UNSIGNEDLONG = new QName(URI_2001_SCHEMA_XSD, 'unsignedLong'); + +export const XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, 'unsignedShort'); + +export const XSD_YEAR = new QName(URI_2001_SCHEMA_XSD, 'gYear'); + +export const XSD_YEARMONTH = new QName(URI_2001_SCHEMA_XSD, 'gYearMonth'); diff --git a/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts b/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts new file mode 100644 index 000000000..ae017461a --- /dev/null +++ b/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts @@ -0,0 +1 @@ +export class ExtensionRegistry {} diff --git a/packages/ui/src/util/xsd/extensions/index.ts b/packages/ui/src/util/xsd/extensions/index.ts new file mode 100644 index 000000000..8d3695a17 --- /dev/null +++ b/packages/ui/src/util/xsd/extensions/index.ts @@ -0,0 +1 @@ +export * from './ExtensionRegistry'; diff --git a/packages/ui/src/util/xsd/index.ts b/packages/ui/src/util/xsd/index.ts new file mode 100644 index 000000000..574b726d4 --- /dev/null +++ b/packages/ui/src/util/xsd/index.ts @@ -0,0 +1,32 @@ +export * from './constants'; +export * from './DocumentFragmentNodeList'; +export * from './QName'; +export * from './TypeReceiver'; +export * from './SchemaBuilder'; +export * from './XmlSchema'; +export * from './XmlSchemaAllMember'; +export * from './XmlSchemaAnnotated'; +export * from './XmlSchemaAnnotation'; +export * from './XmlSchemaAttribute'; +export * from './XmlSchemaAttributeGroup'; +export * from './XmlSchemaChoiceMember'; +export * from './XmlSchemaCollection'; +export * from './XmlSchemaComplexType'; +export * from './XmlSchemaDerivationMethod'; +export * from './XmlSchemaDocumentation'; +export * from './XmlSchemaElement'; +export * from './XmlSchemaExternal'; +export * from './XmlSchemaFacet'; +export * from './XmlSchemaGroup'; +export * from './XmlSchemaIdentityConstraint'; +export * from './XmlSchemaImport'; +export * from './XmlSchemaInclude'; +export * from './XmlSchemaItemWithRef'; +export * from './XmlSchemaItemWithRefBase'; +export * from './XmlSchemaObject'; +export * from './XmlSchemaNotation'; +export * from './XmlSchemaParticle'; +export * from './XmlSchemaSequenceMember'; +export * from './XmlSchemaSimpleType'; +export * from './XmlSchemaType'; +export * from './XmlSchemaForm'; diff --git a/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts b/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts new file mode 100644 index 000000000..8b66f0428 --- /dev/null +++ b/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts @@ -0,0 +1,25 @@ +export interface URIResolver { + resolveEntity(targetNamespace: string, schemaLocation: string, baseUri: string): File; +} +export interface CollectionURIResolver extends URIResolver { + setCollectionBaseURI(uri: string): void; + getCollectionBaseURI(): string | undefined; +} + +export class DefaultURIResolver implements CollectionURIResolver { + private collectionBaseUri?: string; + + getCollectionBaseURI(): string | undefined { + return this.collectionBaseUri; + } + + resolveEntity(targetNamespace: string, schemaLocation: string, baseUri: string): File { + throw new Error( + `XML schema External entity resolution is not yet supported: [namespace:${targetNamespace}, schemaLocation:${schemaLocation}, baseUri:${baseUri}]`, + ); + } + + setCollectionBaseURI(uri: string): void { + this.collectionBaseUri = uri; + } +} diff --git a/packages/ui/src/util/xsd/resolver/index.ts b/packages/ui/src/util/xsd/resolver/index.ts new file mode 100644 index 000000000..216df1a1d --- /dev/null +++ b/packages/ui/src/util/xsd/resolver/index.ts @@ -0,0 +1 @@ +export * from './DefaultURIResolver'; diff --git a/packages/ui/src/util/xsd/utils/NamespaceContext.ts b/packages/ui/src/util/xsd/utils/NamespaceContext.ts new file mode 100644 index 000000000..dbbded459 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/NamespaceContext.ts @@ -0,0 +1,7 @@ +export interface NamespaceContext { + getNamespaceURI(var1: string): string; + + getPrefix(var1: string): string; + + getPrefixes(var1: string): string[]; +} diff --git a/packages/ui/src/util/xsd/utils/NamespaceContextOwner.ts b/packages/ui/src/util/xsd/utils/NamespaceContextOwner.ts new file mode 100644 index 000000000..0bd0c127c --- /dev/null +++ b/packages/ui/src/util/xsd/utils/NamespaceContextOwner.ts @@ -0,0 +1,5 @@ +import { NamespacePrefixList } from '.'; + +export interface NamespaceContextOwner { + getNamespaceContext(): NamespacePrefixList | null; +} diff --git a/packages/ui/src/util/xsd/utils/NamespacePrefixList.ts b/packages/ui/src/util/xsd/utils/NamespacePrefixList.ts new file mode 100644 index 000000000..055855492 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/NamespacePrefixList.ts @@ -0,0 +1,5 @@ +import { NamespaceContext } from '.'; + +export interface NamespacePrefixList extends NamespaceContext { + getDeclaredPrefixes(): string[]; +} diff --git a/packages/ui/src/util/xsd/utils/NodeNamespaceContext.ts b/packages/ui/src/util/xsd/utils/NodeNamespaceContext.ts new file mode 100644 index 000000000..98c099503 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/NodeNamespaceContext.ts @@ -0,0 +1,66 @@ +import { NULL_NS_URI, XML_NS_PREFIX, XML_NS_URI, XMLNS_ATTRIBUTE, XMLNS_ATTRIBUTE_NS_URI } from '..'; +import { NamespacePrefixList, PrefixCollector } from '.'; + +export class NodeNamespaceContext implements NamespacePrefixList { + private prefixes?: string[]; + + private constructor(private declarations: Record) {} + + static getNamespaceContext(pNode: Node): NodeNamespaceContext { + const declarations: Record = {}; + PrefixCollector.searchAllPrefixDeclarations(pNode, (pPrefix: string, pNamespaceURI: string) => { + declarations[pPrefix] = pNamespaceURI; + }); + return new NodeNamespaceContext(declarations); + } + + getDeclaredPrefixes(): string[] { + if (this.prefixes == null) { + this.prefixes = Object.keys(this.declarations); + } + return this.prefixes; + } + + getNamespaceURI(pPrefix: string): string { + if (pPrefix == null) { + throw new Error('Prefix cannot be null'); + } + if (XML_NS_PREFIX === pPrefix) { + return XML_NS_URI; + } + if (XMLNS_ATTRIBUTE === pPrefix) { + return XMLNS_ATTRIBUTE_NS_URI; + } + const uri = this.declarations[pPrefix]; + return uri == null ? NULL_NS_URI : uri; + } + + getPrefix(pNamespaceURI: string): string { + if (pNamespaceURI == null) { + throw new Error('Namespace URI cannot be null'); + } + if (XML_NS_URI === pNamespaceURI) { + return XML_NS_PREFIX; + } + if (XMLNS_ATTRIBUTE_NS_URI === pNamespaceURI) { + return XMLNS_ATTRIBUTE; + } + const found = Object.entries(this.declarations).find((entry) => entry[1] === pNamespaceURI); + return found ? found[0] : ''; + } + + getPrefixes(pNamespaceURI: string): string[] { + if (pNamespaceURI == null) { + throw new Error('Namespace URI cannot be null'); + } + if (XML_NS_URI === pNamespaceURI) { + return [XML_NS_PREFIX]; + } + if (XMLNS_ATTRIBUTE_NS_URI === pNamespaceURI) { + return [XMLNS_ATTRIBUTE]; + } + return Object.entries(this.declarations) + .filter((entry) => entry[1] === pNamespaceURI) + .map((entry) => entry[0]); + } +} diff --git a/packages/ui/src/util/xsd/utils/PrefixCollector.ts b/packages/ui/src/util/xsd/utils/PrefixCollector.ts new file mode 100644 index 000000000..7e456688f --- /dev/null +++ b/packages/ui/src/util/xsd/utils/PrefixCollector.ts @@ -0,0 +1,33 @@ +import { DEFAULT_NS_PREFIX, XMLNS_ATTRIBUTE, XMLNS_ATTRIBUTE_NS_URI } from '..'; + +export class PrefixCollector { + static searchLocalPrefixDeclarations( + pNode: Node, + declarePrefix: (pPrefix: string, pNamespaceURI: string) => void, + ): void { + const type = pNode.nodeType; + if (type === Node.ELEMENT_NODE || type === Node.DOCUMENT_NODE) { + const map = (pNode as Element).attributes; + for (let i = 0; map != null && i < map.length; i++) { + const attr = map.item(i); + const uri = attr?.namespaceURI; + if (XMLNS_ATTRIBUTE_NS_URI === uri) { + const localName = attr?.localName; + const prefix = XMLNS_ATTRIBUTE === localName ? DEFAULT_NS_PREFIX : localName; + declarePrefix(prefix!, attr!.nodeValue!); + } + } + } + } + + static searchAllPrefixDeclarations( + pNode: Node, + declarePrefix: (pPrefix: string, pNamespaceURI: string) => void, + ): void { + const parent = pNode.parentNode; + if (parent != null) { + PrefixCollector.searchAllPrefixDeclarations(parent, declarePrefix); + } + PrefixCollector.searchLocalPrefixDeclarations(pNode, declarePrefix); + } +} diff --git a/packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts b/packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts new file mode 100644 index 000000000..7645695d1 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts @@ -0,0 +1,5 @@ +import { XmlSchema } from '..'; + +export interface TargetNamespaceValidator { + validate(schema: XmlSchema): void; +} diff --git a/packages/ui/src/util/xsd/utils/XDOMUtil.ts b/packages/ui/src/util/xsd/utils/XDOMUtil.ts new file mode 100644 index 000000000..d728d4e01 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/XDOMUtil.ts @@ -0,0 +1,85 @@ +/** + * Merging DOMUtil and XDOMUtil. In TypeScript, inheritance and method overloading + * is different from Java, which caused a problem on these relationship. + */ +export class XDOMUtil { + /** + * Finds and returns the next sibling element node. + */ + static getNextSiblingElement(node: Node): Element | null { + // search for node + let sibling = node.nextSibling; + while (sibling != null) { + if (sibling.nodeType == Node.ELEMENT_NODE) { + return sibling as Element; + } + sibling = sibling.nextSibling; + } + // not found + return null; + } // getNextSiblingElement(Node):Element + + /** + * Finds and returns the first child node with the given qualified name. + */ + static getFirstChildElementNS(parent: Node, uri: string, localpart?: string): Element | null { + // search for node + let child = parent.firstChild; + while (child != null) { + if (child.nodeType == Node.ELEMENT_NODE) { + const childElement = child as Element; + const childURI = childElement.namespaceURI; + if (childURI != null && childURI === uri) { + if (localpart == null || childElement.localName === localpart) { + return childElement; + } + } + } + child = child.nextSibling; + } + // not found + return null; + } // getFirstChildElementNS(Node,String,String):Element + + /** + * Finds and returns the next sibling node with the given qualified name. + */ + static getNextSiblingElementByNamesNS(node: Node, elemNames: string[][]) { + // search for node + let sibling = node.nextSibling; + while (sibling != null) { + if (sibling.nodeType == Node.ELEMENT_NODE) { + const siblingElement = sibling as Element; + for (const elemName of elemNames) { + const uri = siblingElement.namespaceURI; + if (uri != null && uri === elemName[0] && siblingElement.localName === elemName[1]) { + return siblingElement; + } + } + } + sibling = sibling.nextSibling; + } + // not found + return null; + } // getNextSiblingdElementNS(Node,String[][]):Element + + /** + * Finds and returns the next sibling node with the given qualified name. + */ + static getNextSiblingElementNS(node: Node, uri: string, localpart?: string) { + // search for node + let sibling = node.nextSibling; + while (sibling != null) { + if (sibling.nodeType == Node.ELEMENT_NODE) { + const siblingElement = sibling as Element; + const siblingURI = siblingElement.namespaceURI; + if (siblingURI != null && siblingURI === uri && (localpart == null || siblingElement.localName === localpart)) { + return siblingElement; + } + } + sibling = sibling.nextSibling; + } + // not found + return null; + } // getNextSiblingdElementNS(Node,String,String):Element +} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts new file mode 100644 index 000000000..77cff7a93 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts @@ -0,0 +1,47 @@ +import { QName, XmlSchema } from '..'; + +export interface XmlSchemaObjectBase {} +export interface XmlSchemaNamed extends XmlSchemaObjectBase { + /** + * Retrieve the name. + * @return the local name of this object within its schema. + */ + getName(): string | null; + + /** + * @return true if this object has no name. + */ + isAnonymous(): boolean; + + /** + * Set the name. Set to null to render the object anonymous, or to prepare to + * change it to refer to some other object. + * @param name the name. + */ + setName(name: string): void; + + /** + * Retrieve the parent schema. + * @return the containing schema. + */ + getParent(): XmlSchema; + + /** + * Get the QName for this object. This is always the formal name that identifies this + * item in the schema. If the item has a form (an element or attribute), and the form + * is 'unqualified', this is not the appropriate QName in an instance + * document. For those items, the getWiredName method returns the appropriate + * QName for an instance document. + * @see XmlSchemaNamedWithForm#getWireName() + * @return The qualified name of this object. + */ + getQName(): QName | null; + + /** + * @return true if this item is a top-level item of the schema; false if this item + * is nested inside of some other schema object. + */ + isTopLevel(): boolean; +} + +export interface XmlSchemaNamedWithForm extends XmlSchemaNamed {} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts new file mode 100644 index 000000000..09aa44980 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts @@ -0,0 +1,69 @@ +import { QName, XmlSchema } from '..'; +import { XmlSchemaNamed, XmlSchemaRefBase } from '.'; + +export class XmlSchemaNamedImpl implements XmlSchemaNamed { + protected parentSchema: XmlSchema; + /* + * Some objects implement both name= and ref=. This reference allows us some error + * checking. + */ + protected refTwin?: XmlSchemaRefBase; + // Store the name as a QName for the convenience of QName fans. + private qname: QName | null = null; + private topLevel: boolean = false; + + /** + * Create a new named object. + * @param parent the parent schema. + */ + constructor(parent: XmlSchema, topLevel: boolean) { + this.parentSchema = parent; + this.topLevel = topLevel; + } + + /** + * If the named object also implements ref=, it should pass the reference object + * here for some error checking. + * @param refBase + */ + setRefObject(refBase: XmlSchemaRefBase) { + this.refTwin = refBase; + } + + getName() { + if (this.qname == null) { + return null; + } else { + return this.qname.getLocalPart(); + } + } + + isAnonymous() { + return this.qname == null; + } + + setName(name: string) { + if (name == null) { + this.qname = null; + } else if ('' === name) { + throw new Error('Attempt to set empty name.'); + } else { + if (this.refTwin != null && this.refTwin.getTargetQName() != null) { + throw new Error("Attempt to set name on object with ref='xxx'"); + } + this.qname = new QName(this.parentSchema.getLogicalTargetNamespace(), name); + } + } + + getParent() { + return this.parentSchema; + } + + getQName() { + return this.qname; + } + + public isTopLevel() { + return this.topLevel; + } +} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts b/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts new file mode 100644 index 000000000..3ea82b095 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts @@ -0,0 +1,3 @@ +import { XmlSchemaNamed, XmlSchemaRefBase } from '.'; + +export class XmlSchemaRef extends XmlSchemaRefBase {} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts b/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts new file mode 100644 index 000000000..eb7ce08c1 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts @@ -0,0 +1,29 @@ +import { XmlSchemaNamed } from '.'; +import { QName, XmlSchema } from '..'; + +export abstract class XmlSchemaRefBase { + protected parent: XmlSchema | null = null; + protected targetQName: QName | null = null; + private namedTwin?: XmlSchemaNamed; + + protected abstract forgetTargetObject(): void; + + setNamedObject(named: XmlSchemaNamed) { + this.namedTwin = named; + } + + getTargetQName() { + return this.targetQName; + } + + setTargetQName(targetQName: QName) { + if (this.targetQName != null && this.namedTwin != null && !this.namedTwin.isAnonymous()) { + throw new Error('It is invalid to set the ref= name for an item that has a name.'); + } + /** + * We could possibly complain about no ref and also no name. + */ + this.targetQName = targetQName; + this.forgetTargetObject(); + } +} diff --git a/packages/ui/src/util/xsd/utils/index.ts b/packages/ui/src/util/xsd/utils/index.ts new file mode 100644 index 000000000..b43b3a5d3 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/index.ts @@ -0,0 +1,11 @@ +export * from './XDOMUtil'; +export * from './NamespaceContext'; +export * from './NamespaceContextOwner'; +export * from './NamespacePrefixList'; +export * from './NodeNamespaceContext'; +export * from './PrefixCollector'; +export * from './TargetNamespaceValidator'; +export * from './XmlSchemaNamed'; +export * from './XmlSchemaNamedImpl'; +export * from './XmlSchemaRef'; +export * from './XmlSchemaRefBase'; diff --git a/packages/ui/test-resources/ExampleOrder.xml b/packages/ui/test-resources/ExampleOrder.xml new file mode 100644 index 000000000..dfe89181b --- /dev/null +++ b/packages/ui/test-resources/ExampleOrder.xml @@ -0,0 +1,23 @@ + + + + Jon Doh + + sometext + + Jon Doh +
123 Jon Rd
+ Doh + MA +
+ + Apple + 1 + 3 + + + Lemon + 1 + 3 + +
\ No newline at end of file diff --git a/packages/ui/src/test-resources/mock-xml-schema-shiporder.xsd b/packages/ui/test-resources/ShipOrder.xsd similarity index 88% rename from packages/ui/src/test-resources/mock-xml-schema-shiporder.xsd rename to packages/ui/test-resources/ShipOrder.xsd index c4db4258a..cdd0283bf 100644 --- a/packages/ui/src/test-resources/mock-xml-schema-shiporder.xsd +++ b/packages/ui/test-resources/ShipOrder.xsd @@ -1,4 +1,5 @@ - + + diff --git a/packages/ui/src/test-resources/hello.xsd b/packages/ui/test-resources/hello.xsd similarity index 100% rename from packages/ui/src/test-resources/hello.xsd rename to packages/ui/test-resources/hello.xsd diff --git a/packages/ui/src/test-resources/hello.xsl b/packages/ui/test-resources/hello.xsl similarity index 100% rename from packages/ui/src/test-resources/hello.xsl rename to packages/ui/test-resources/hello.xsl diff --git a/yarn.lock b/yarn.lock index cd06b0225..a517ffd01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,49 +33,49 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@^7.23.5": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" - integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" + integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.23.5" "@babel/generator" "^7.23.6" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.7" - "@babel/parser" "^7.23.6" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.7" - "@babel/types" "^7.23.6" + "@babel/helpers" "^7.23.9" + "@babel/parser" "^7.23.9" + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" - integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== +"@babel/core@^7.23.5": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.23.5" "@babel/generator" "^7.23.6" "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.9" - "@babel/parser" "^7.23.9" - "@babel/template" "^7.23.9" - "@babel/traverse" "^7.23.9" - "@babel/types" "^7.23.9" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6": +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== @@ -297,7 +297,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== -"@babel/parser@^7.23.9": +"@babel/parser@^7.14.7", "@babel/parser@^7.23.9": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== @@ -338,7 +338,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.13": +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== @@ -380,7 +387,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-import-meta@^7.10.4": +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -394,14 +401,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.23.3": +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -415,7 +422,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4": +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -450,14 +457,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.14.5": +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.23.3": +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== @@ -1063,7 +1070,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/template@^7.23.9": +"@babel/template@^7.23.9", "@babel/template@^7.3.3": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== @@ -1113,7 +1120,7 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.22.19", "@babel/types@^7.23.4", "@babel/types@^7.23.9", "@babel/types@^7.4.4": +"@babel/types@^7.22.19", "@babel/types@^7.23.4", "@babel/types@^7.23.9", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.23.9" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== @@ -1122,6 +1129,18 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + "@csstools/css-parser-algorithms@^2.5.0": version "2.5.0" resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532" @@ -1438,6 +1457,78 @@ resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + "@jest/expect-utils@^29.7.0": version "29.7.0" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" @@ -1445,6 +1536,66 @@ dependencies: jest-get-type "^29.6.3" +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + "@jest/schemas@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" @@ -1452,6 +1603,56 @@ dependencies: "@sinclair/typebox" "^0.27.8" +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + "@jest/types@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" @@ -1473,7 +1674,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.1.0": +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== @@ -1488,7 +1689,15 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": version "0.3.22" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== @@ -2103,6 +2312,20 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90" integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw== +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@storybook/addon-actions@^7.6.12": version "7.6.12" resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.12.tgz#9f8ec7ea0b656699ea7b69caf29a7e0e8e482d31" @@ -2158,6 +2381,31 @@ lodash "^4.17.15" redent "^3.0.0" +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + "@tufjs/canonical-json@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" @@ -2171,7 +2419,7 @@ "@tufjs/canonical-json" "2.0.0" minimatch "^9.0.3" -"@types/babel__core@^7.20.5": +"@types/babel__core@^7.1.14", "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== @@ -2197,7 +2445,7 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*": +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== @@ -2434,7 +2682,14 @@ resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.13.tgz#e6e77ea9ecf36564980a861e24e62a095988775e" integrity sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ== -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== @@ -2453,14 +2708,23 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.11": - version "29.5.11" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" - integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== +"@types/jest@^29.5.12": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== dependencies: expect "^29.0.0" pretty-format "^29.0.0" +"@types/jsdom@^20.0.0": + version "20.0.1" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" + integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== + dependencies: + "@types/node" "*" + "@types/tough-cookie" "*" + parse5 "^7.0.0" + "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" @@ -2552,6 +2816,11 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + "@types/uuid@^9.0.1": version "9.0.8" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" @@ -2727,17 +2996,35 @@ JSONStream@^1.3.5: jsonparse "^1.2.0" through ">=2.2.7 <3" +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + abbrev@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== + dependencies: + acorn "^8.1.0" + acorn-walk "^8.0.2" + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: +acorn-walk@^8.0.2, acorn-walk@^8.1.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^8.1.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.9.0: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== @@ -2747,6 +3034,13 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + agent-base@^7.0.2, agent-base@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" @@ -2782,7 +3076,7 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-escapes@^4.3.2: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -2830,7 +3124,7 @@ ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== -anymatch@~3.1.2: +anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -2848,6 +3142,18 @@ are-we-there-yet@^4.0.0: resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a" integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg== +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -2950,6 +3256,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + attr-accept@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" @@ -2960,6 +3271,49 @@ available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== +axios@^1.5.1: + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + babel-plugin-macros@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" @@ -2993,6 +3347,32 @@ babel-plugin-polyfill-regenerator@^0.5.5: dependencies: "@babel/helper-define-polyfill-provider" "^0.5.0" +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -3069,6 +3449,18 @@ browserslist@^4.22.2: node-releases "^2.0.14" update-browserslist-db "^1.0.13" +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" @@ -3121,6 +3513,16 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + caniuse-lite@^1.0.30001565: version "1.0.30001579" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz#45c065216110f46d6274311a4b3fcf6278e0852a" @@ -3156,6 +3558,11 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -3191,6 +3598,11 @@ ci-info@^4.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== +cjs-module-lexer@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -3256,6 +3668,16 @@ cmd-shim@^6.0.0: resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -3275,7 +3697,7 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.1.4, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -3303,6 +3725,13 @@ columnify@^1.6.0: strip-ansi "^6.0.1" wcwidth "^1.0.0" +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + commander@11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" @@ -3461,6 +3890,24 @@ cosmiconfig@^9.0.0: js-yaml "^4.1.0" parse-json "^5.2.0" +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -3493,6 +3940,28 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +cssfontparser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" + integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== + +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + csstype@^3.0.2: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" @@ -3795,6 +4264,15 @@ data-uri-to-buffer@^4.0.0: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== +data-urls@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" + integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== + dependencies: + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -3809,7 +4287,12 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -dedent@^1.5.1: +decimal.js@^10.4.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +dedent@^1.0.0, dedent@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== @@ -3824,6 +4307,11 @@ deepmerge-ts@^5.1.0: resolved "https://registry.yarnpkg.com/deepmerge-ts/-/deepmerge-ts-5.1.0.tgz#c55206cc4c7be2ded89b9c816cf3608884525d7a" integrity sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw== +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -3856,6 +4344,11 @@ delaunator@5: dependencies: robust-predicates "^3.0.2" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + deprecation@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -3871,11 +4364,21 @@ detect-indent@^7.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25" integrity sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -3924,6 +4427,13 @@ dom-walk@^0.1.0: resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== + dependencies: + webidl-conversions "^7.0.0" + dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -3951,6 +4461,11 @@ electron-to-chromium@^1.4.601: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.645.tgz#117f964252eb2f0ff00fc7360cb3080e2cf66e3c" integrity sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + emoji-regex@^10.3.0: version "10.3.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" @@ -3973,6 +4488,11 @@ encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -4129,6 +4649,17 @@ escape-string-regexp@^5.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + eslint-config-prettier@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" @@ -4272,7 +4803,12 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esquery@^1.4.2: +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== @@ -4321,7 +4857,27 @@ execa@8.0.1, execa@^8.0.1: signal-exit "^4.1.0" strip-final-newline "^3.0.0" -expect@^29.0.0: +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^29.0.0, expect@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== @@ -4367,7 +4923,7 @@ fast-glob@^3.2.9, fast-glob@^3.3.2: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -4377,10 +4933,10 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-xml-parser@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.3.tgz#aeaf5778392329f17168c40c51bcbfec8ff965be" - integrity sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg== +fast-xml-parser@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.4.tgz#385cc256ad7bbc57b91515a38a22502a9e1fca0d" + integrity sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA== dependencies: strnum "^1.0.5" @@ -4396,6 +4952,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -4450,7 +5013,7 @@ find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4504,6 +5067,11 @@ focus-trap@7.5.2: dependencies: tabbable "^6.2.0" +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -4519,6 +5087,15 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + formdata-polyfill@^4.0.10: version "4.0.10" resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" @@ -4554,7 +5131,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2, fsevents@~2.3.3: +fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -4634,6 +5211,16 @@ get-node-dimensions@^1.2.1: resolved "https://registry.yarnpkg.com/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz#fb7b4bb57060fb4247dd51c9d690dfbec56b0823" integrity sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ== +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-stream@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" @@ -4704,7 +5291,7 @@ glob@^10.2.2, glob@^10.3.10, glob@^10.3.7: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" -glob@^7.1.3: +glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4889,6 +5476,18 @@ hosted-git-info@^7.0.0, hosted-git-info@^7.0.1: dependencies: lru-cache "^10.0.1" +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + html-tags@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" @@ -4899,6 +5498,15 @@ http-cache-semantics@^4.1.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + http-proxy-agent@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" @@ -4907,6 +5515,14 @@ http-proxy-agent@^7.0.0: agent-base "^7.1.0" debug "^4.3.4" +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + https-proxy-agent@^7.0.1: version "7.0.2" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" @@ -4915,6 +5531,11 @@ https-proxy-agent@^7.0.1: agent-base "^7.0.2" debug "4" +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + human-signals@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" @@ -4925,7 +5546,7 @@ husky@^8.0.3: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== -iconv-lite@0.6, iconv-lite@^0.6.2: +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -4974,7 +5595,7 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@^3.1.0: +import-local@^3.0.2, import-local@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== @@ -5133,6 +5754,11 @@ is-fullwidth-code-point@^5.0.0: dependencies: get-east-asian-width "^1.0.0" +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -5194,6 +5820,11 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -5216,6 +5847,11 @@ is-ssh@^1.4.0: dependencies: protocols "^2.0.1" +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + is-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" @@ -5291,6 +5927,59 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + jackspeak@^2.3.5: version "2.3.6" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" @@ -5300,6 +5989,94 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jest-canvas-mock@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" + integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== + dependencies: + cssfontparser "^1.2.1" + moo-color "^1.0.2" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + jest-diff@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" @@ -5310,11 +6087,82 @@ jest-diff@^29.7.0: jest-get-type "^29.6.3" pretty-format "^29.7.0" +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-jsdom@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" + integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/jsdom" "^20.0.0" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + jsdom "^20.0.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + jest-get-type@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + jest-matcher-utils@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" @@ -5340,6 +6188,129 @@ jest-message-util@^29.7.0: slash "^3.0.0" stack-utils "^2.0.3" +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + jest-util@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" @@ -5352,11 +6323,65 @@ jest-util@^29.7.0: graceful-fs "^4.2.9" picomatch "^2.2.3" +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -5364,6 +6389,38 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsdom@^20.0.0: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" + integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== + dependencies: + abab "^2.0.6" + acorn "^8.8.1" + acorn-globals "^7.0.0" + cssom "^0.5.0" + cssstyle "^2.3.0" + data-urls "^3.0.2" + decimal.js "^10.4.2" + domexception "^4.0.0" + escodegen "^2.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.2" + parse5 "^7.1.1" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + ws "^8.11.0" + xml-name-validator "^4.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -5462,11 +6519,21 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + known-css-properties@^0.29.0: version "0.29.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.29.0.tgz#e8ba024fb03886f23cb882e806929f32d814158f" integrity sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ== +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -5643,6 +6710,11 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + make-fetch-happen@^13.0.0: version "13.0.0" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" @@ -5660,6 +6732,13 @@ make-fetch-happen@^13.0.0: promise-retry "^2.0.1" ssri "^10.0.0" +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + mathml-tag-names@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" @@ -5703,6 +6782,18 @@ micromatch@4.0.5, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -5732,7 +6823,7 @@ minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -5838,6 +6929,13 @@ mobx@^6.9.0: resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.12.0.tgz#72b2685ca5af031aaa49e77a4d76ed67fcbf9135" integrity sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ== +moo-color@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" + integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== + dependencies: + color-name "^1.1.4" + ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -5910,6 +7008,11 @@ node-gyp@^10.0.0: tar "^6.1.2" which "^4.0.0" +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + node-releases@^2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" @@ -5996,6 +7099,13 @@ npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0: npm-package-arg "^11.0.0" proc-log "^3.0.0" +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npm-run-path@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" @@ -6013,6 +7123,11 @@ npmlog@^7.0.1: gauge "^5.0.0" set-blocking "^2.0.0" +nwsapi@^2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -6074,7 +7189,7 @@ once@^1.3.0, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -6127,7 +7242,7 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -6282,6 +7397,13 @@ parse-url@^8.1.0: dependencies: parse-path "^7.0.0" +parse5@^7.0.0, parse5@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -6297,7 +7419,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.1.0: +path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -6350,6 +7472,11 @@ pify@^6.1.0: resolved "https://registry.yarnpkg.com/pify/-/pify-6.1.0.tgz#db9f2ebfba65f0bc144db65ae84d1a486ab72909" integrity sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw== +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -6475,6 +7602,14 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" @@ -6494,11 +7629,26 @@ protocols@^2.0.0, protocols@^2.0.1: resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== -punycode@^2.1.0: +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== +pure-rand@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + qs@^6.11.1: version "6.11.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" @@ -6506,6 +7656,11 @@ qs@^6.11.1: dependencies: side-channel "^1.0.4" +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -6766,6 +7921,11 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + resize-observer-polyfill@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" @@ -6788,7 +7948,12 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.4: +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -6931,6 +8096,20 @@ sass@^1.70.0: immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + +saxon-js@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/saxon-js/-/saxon-js-2.6.0.tgz#68080fa2f000eac48abf0bdc880eb74bf9766baf" + integrity sha512-4dinQEGz/OQX0cnmwLTbjVFY9KciMGRyfA6AUsMCO/mKDOwDxOJFmzoLStieTpEiOB/98E1E4VKV1ElsiD88yQ== + dependencies: + axios "^1.5.1" + scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -6938,7 +8117,7 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -semver@^6.3.1: +semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -7003,7 +8182,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2: +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -7025,6 +8204,11 @@ sigstore@^2.2.0: "@sigstore/tuf" "^2.3.0" "@sigstore/verify" "^0.1.0" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -7094,12 +8278,20 @@ sort-keys@^5.0.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -7135,6 +8327,11 @@ split2@^4.0.0: resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + ssri@^10.0.0, ssri@^10.0.5: version "10.0.5" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" @@ -7154,6 +8351,14 @@ string-argv@0.3.2: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -7234,6 +8439,16 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" @@ -7375,6 +8590,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" @@ -7393,6 +8615,11 @@ svg-tags@^1.0.0: resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + synckit@^0.8.6: version "0.8.8" resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" @@ -7434,6 +8661,15 @@ temp-dir@^3.0.0: resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa" integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw== +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + text-extensions@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" @@ -7456,6 +8692,11 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -7473,6 +8714,23 @@ toggle-selection@^1.0.6: resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== +tough-cookie@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + treeverse@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" @@ -7488,6 +8746,25 @@ ts-dedent@^2.0.0: resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -7531,6 +8808,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -7674,6 +8956,11 @@ universal-user-agent@^6.0.0: resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + universalify@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" @@ -7694,6 +8981,14 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + use-debounce@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-10.0.0.tgz#5091b18d6c16292605f588bae3c0d2cfae756ff2" @@ -7714,6 +9009,20 @@ uuid@^9.0.0, uuid@^9.0.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -7740,11 +9049,25 @@ vite@^5.0.12: optionalDependencies: fsevents "~2.3.3" +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== + dependencies: + xml-name-validator "^4.0.0" + walk-up-path@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -7767,6 +9090,31 @@ webcola@3.4.0: d3-shape "^1.3.5" d3-timer "^1.0.5" +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -7873,6 +9221,14 @@ write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" @@ -7902,6 +9258,21 @@ write-pkg@^6.0.1: type-fest "^4.6.0" write-json-file "^5.0.0" +ws@^8.11.0: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" @@ -7932,7 +9303,7 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.7.2: +yargs@^17.3.1, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -7945,6 +9316,11 @@ yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 5d485931ab81be0d06e3f586f2a65a3627b61e57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 03:10:46 +0000 Subject: [PATCH 007/471] chore(deps): update dependency @storybook/addon-actions to v7.6.15 --- yarn.lock | 21994 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 12662 insertions(+), 9332 deletions(-) diff --git a/yarn.lock b/yarn.lock index a517ffd01..a16bc871b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,9332 +1,12662 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@adobe/css-tools@^4.3.2": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff" - integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" - integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.9" - "@babel/parser" "^7.23.9" - "@babel/template" "^7.23.9" - "@babel/traverse" "^7.23.9" - "@babel/types" "^7.23.9" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/core@^7.23.5": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" - integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.7" - "@babel/parser" "^7.23.6" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.7" - "@babel/types" "^7.23.6" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== - dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" - integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== - dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": - version "7.23.10" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" - integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-member-expression-to-functions" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" - integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" - integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== - dependencies: - "@babel/helper-compilation-targets" "^7.22.6" - "@babel/helper-plugin-utils" "^7.22.5" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" - integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== - dependencies: - "@babel/types" "^7.23.0" - -"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-remap-async-to-generator@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" - integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-wrap-function" "^7.22.20" - -"@babel/helper-replace-supers@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helper-wrap-function@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" - integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.15" - "@babel/types" "^7.22.19" - -"@babel/helpers@^7.23.7": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" - integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.7" - "@babel/types" "^7.23.6" - -"@babel/helpers@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" - integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ== - dependencies: - "@babel/template" "^7.23.9" - "@babel/traverse" "^7.23.9" - "@babel/types" "^7.23.9" - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" - integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== - -"@babel/parser@^7.14.7", "@babel/parser@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" - integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" - integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" - integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.23.3" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" - integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-assertions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" - integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-attributes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" - integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" - integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-async-generator-functions@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" - integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-transform-async-to-generator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" - integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== - dependencies: - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.20" - -"@babel/plugin-transform-block-scoped-functions@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" - integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoping@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" - integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" - integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-static-block@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" - integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-transform-classes@^7.23.8": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" - integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - "@babel/helper-split-export-declaration" "^7.22.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" - integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.15" - -"@babel/plugin-transform-destructuring@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" - integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dotall-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" - integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-duplicate-keys@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" - integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dynamic-import@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" - integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" - integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-export-namespace-from@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" - integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" - integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" - integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== - dependencies: - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-json-strings@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" - integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-transform-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" - integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-logical-assignment-operators@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" - integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" - integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-amd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" - integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-commonjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" - integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - -"@babel/plugin-transform-modules-systemjs@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" - integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== - dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/plugin-transform-modules-umd@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" - integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-new-target@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" - integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" - integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-transform-numeric-separator@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" - integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-transform-object-rest-spread@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" - integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== - dependencies: - "@babel/compat-data" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.23.3" - -"@babel/plugin-transform-object-super@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" - integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" - -"@babel/plugin-transform-optional-catch-binding@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" - integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" - integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" - integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-methods@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" - integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-property-in-object@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" - integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-transform-property-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" - integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-display-name@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" - integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-jsx-development@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" - integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== - dependencies: - "@babel/plugin-transform-react-jsx" "^7.22.5" - -"@babel/plugin-transform-react-jsx-self@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz#ed3e7dadde046cce761a8e3cf003a13d1a7972d9" - integrity sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-jsx-source@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz#03527006bdc8775247a78643c51d4e715fe39a3e" - integrity sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" - integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx" "^7.23.3" - "@babel/types" "^7.23.4" - -"@babel/plugin-transform-react-pure-annotations@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" - integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-regenerator@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" - integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.2" - -"@babel/plugin-transform-reserved-words@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" - integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-shorthand-properties@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" - integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-spread@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" - integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - -"@babel/plugin-transform-sticky-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" - integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-template-literals@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" - integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-typeof-symbol@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" - integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-typescript@^7.23.3": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" - integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.23.6" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.23.3" - -"@babel/plugin-transform-unicode-escapes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" - integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-property-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" - integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" - integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-sets-regex@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" - integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.15" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/preset-env@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.9.tgz#beace3b7994560ed6bf78e4ae2073dff45387669" - integrity sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A== - dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.23.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.23.3" - "@babel/plugin-syntax-import-attributes" "^7.23.3" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.9" - "@babel/plugin-transform-async-to-generator" "^7.23.3" - "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.4" - "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.8" - "@babel/plugin-transform-computed-properties" "^7.23.3" - "@babel/plugin-transform-destructuring" "^7.23.3" - "@babel/plugin-transform-dotall-regex" "^7.23.3" - "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.4" - "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.4" - "@babel/plugin-transform-for-of" "^7.23.6" - "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.4" - "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" - "@babel/plugin-transform-member-expression-literals" "^7.23.3" - "@babel/plugin-transform-modules-amd" "^7.23.3" - "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-modules-systemjs" "^7.23.9" - "@babel/plugin-transform-modules-umd" "^7.23.3" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" - "@babel/plugin-transform-numeric-separator" "^7.23.4" - "@babel/plugin-transform-object-rest-spread" "^7.23.4" - "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.4" - "@babel/plugin-transform-optional-chaining" "^7.23.4" - "@babel/plugin-transform-parameters" "^7.23.3" - "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.4" - "@babel/plugin-transform-property-literals" "^7.23.3" - "@babel/plugin-transform-regenerator" "^7.23.3" - "@babel/plugin-transform-reserved-words" "^7.23.3" - "@babel/plugin-transform-shorthand-properties" "^7.23.3" - "@babel/plugin-transform-spread" "^7.23.3" - "@babel/plugin-transform-sticky-regex" "^7.23.3" - "@babel/plugin-transform-template-literals" "^7.23.3" - "@babel/plugin-transform-typeof-symbol" "^7.23.3" - "@babel/plugin-transform-unicode-escapes" "^7.23.3" - "@babel/plugin-transform-unicode-property-regex" "^7.23.3" - "@babel/plugin-transform-unicode-regex" "^7.23.3" - "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.8" - babel-plugin-polyfill-corejs3 "^0.9.0" - babel-plugin-polyfill-regenerator "^0.5.5" - core-js-compat "^3.31.0" - semver "^6.3.1" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-react@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" - integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-transform-react-display-name" "^7.23.3" - "@babel/plugin-transform-react-jsx" "^7.22.15" - "@babel/plugin-transform-react-jsx-development" "^7.22.5" - "@babel/plugin-transform-react-pure-annotations" "^7.23.3" - -"@babel/preset-typescript@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" - integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-syntax-jsx" "^7.23.3" - "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-typescript" "^7.23.3" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" - integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.9.2": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" - integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/template@^7.23.9", "@babel/template@^7.3.3": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" - integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.23.9" - -"@babel/traverse@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" - integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.6" - "@babel/types" "^7.23.6" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/traverse@^7.23.9": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" - integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.23.9" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" - integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.19", "@babel/types@^7.23.4", "@babel/types@^7.23.9", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.9" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" - integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== - dependencies: - "@jridgewell/trace-mapping" "0.3.9" - -"@csstools/css-parser-algorithms@^2.5.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532" - integrity sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ== - -"@csstools/css-tokenizer@^2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6" - integrity sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg== - -"@csstools/media-query-list-parser@^2.1.7": - version "2.1.7" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788" - integrity sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ== - -"@csstools/selector-specificity@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz#d84597fbc0f897240c12fc0a31e492b036c70e40" - integrity sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww== - -"@emotion/babel-plugin@^11.11.0": - version "11.11.0" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" - integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== - dependencies: - "@babel/helper-module-imports" "^7.16.7" - "@babel/runtime" "^7.18.3" - "@emotion/hash" "^0.9.1" - "@emotion/memoize" "^0.8.1" - "@emotion/serialize" "^1.1.2" - babel-plugin-macros "^3.1.0" - convert-source-map "^1.5.0" - escape-string-regexp "^4.0.0" - find-root "^1.1.0" - source-map "^0.5.7" - stylis "4.2.0" - -"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": - version "11.11.0" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" - integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== - dependencies: - "@emotion/memoize" "^0.8.1" - "@emotion/sheet" "^1.2.2" - "@emotion/utils" "^1.2.1" - "@emotion/weak-memoize" "^0.3.1" - stylis "4.2.0" - -"@emotion/hash@^0.9.1": - version "0.9.1" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" - integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== - -"@emotion/memoize@^0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" - integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== - -"@emotion/react@^11.8.1": - version "11.11.3" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.3.tgz#96b855dc40a2a55f52a72f518a41db4f69c31a25" - integrity sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA== - dependencies: - "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.11.0" - "@emotion/cache" "^11.11.0" - "@emotion/serialize" "^1.1.3" - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" - "@emotion/utils" "^1.2.1" - "@emotion/weak-memoize" "^0.3.1" - hoist-non-react-statics "^3.3.1" - -"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.3.tgz#84b77bfcfe3b7bb47d326602f640ccfcacd5ffb0" - integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA== - dependencies: - "@emotion/hash" "^0.9.1" - "@emotion/memoize" "^0.8.1" - "@emotion/unitless" "^0.8.1" - "@emotion/utils" "^1.2.1" - csstype "^3.0.2" - -"@emotion/sheet@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" - integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== - -"@emotion/unitless@^0.8.1": - version "0.8.1" - resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" - integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== - -"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" - integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== - -"@emotion/utils@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" - integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== - -"@emotion/weak-memoize@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" - integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== - -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== - -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== - -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== - -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== - -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== - -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== - -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== - -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== - -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== - -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== - -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== - -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== - -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== - -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== - -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== - -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== - -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== - -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== - -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== - -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== - -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== - -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== - -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== - -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== - -"@floating-ui/core@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1" - integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g== - dependencies: - "@floating-ui/utils" "^0.2.1" - -"@floating-ui/dom@^1.0.1": - version "1.6.1" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.1.tgz#d552e8444f77f2d88534372369b3771dc3a2fa5d" - integrity sha512-iA8qE43/H5iGozC3W0YSnVSW42Vh522yyM1gj+BqRwVsTNOyr231PsXDaV04yT39PsO0QL2QpbI/M0ZaLUQgRQ== - dependencies: - "@floating-ui/core" "^1.6.0" - "@floating-ui/utils" "^0.2.1" - -"@floating-ui/utils@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" - integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== - -"@humanwhocodes/config-array@^0.11.13": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== - dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== - -"@hutson/parse-repository-url@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz#bf344cc75136039bc41bcf5d1ddbcb40405fca3b" - integrity sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg== - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" - -"@isaacs/string-locale-compare@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" - integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== - dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.22" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" - integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@lerna-lite/cli@3.2.1", "@lerna-lite/cli@^3.0.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@lerna-lite/cli/-/cli-3.2.1.tgz#d4bc5286e5d5520d9c5eb9fe538d218a9c9083d3" - integrity sha512-aF7lfe+TOmL+YxaKgJcHCfFT/nZ3ZI+icZTEVM80LaEIhVvgBJZSqabGFu1PbQ9onvBdKX2/FYaWhJz+fO7cIQ== - dependencies: - "@lerna-lite/core" "3.2.1" - "@lerna-lite/init" "3.2.1" - dedent "^1.5.1" - dotenv "^16.3.1" - import-local "^3.1.0" - load-json-file "^7.0.1" - npmlog "^7.0.1" - yargs "^17.7.2" - -"@lerna-lite/core@3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@lerna-lite/core/-/core-3.2.1.tgz#e69feae6df039909c8375766c40517bd103b043c" - integrity sha512-vqH4bpg0vaAPwzDGnyTR4RRjffZDhuSRJSa+lKhGH5NymM15KskB2HGZtRvSutX2Q5MZExTQ9IijWz7l139gaA== - dependencies: - "@npmcli/run-script" "^7.0.3" - chalk "^5.3.0" - clone-deep "^4.0.1" - config-chain "^1.1.13" - cosmiconfig "^9.0.0" - dedent "^1.5.1" - execa "^8.0.1" - fs-extra "^11.2.0" - glob-parent "^6.0.2" - globby "^14.0.0" - inquirer "^9.2.12" - is-ci "^3.0.1" - json5 "^2.2.3" - load-json-file "^7.0.1" - minimatch "^9.0.3" - npm-package-arg "^11.0.1" - npmlog "^7.0.1" - p-map "^7.0.1" - p-queue "^8.0.1" - resolve-from "^5.0.0" - semver "^7.5.4" - slash "^5.1.0" - strong-log-transformer "^2.1.0" - write-file-atomic "^5.0.1" - write-json-file "^5.0.0" - write-pkg "^6.0.1" - -"@lerna-lite/init@3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@lerna-lite/init/-/init-3.2.1.tgz#e5b8880c7978495b5851a2a15244bf6dd9fa1e84" - integrity sha512-DuEsi4Jii4nmP+c7aID3L5viXkMKhWGKRtI798pcnNjB3dyVN22dZNCDzhiaetMo+ayTsLTe50UDpf5+yxamNg== - dependencies: - "@lerna-lite/core" "3.2.1" - fs-extra "^11.2.0" - p-map "^7.0.1" - write-json-file "^5.0.0" - -"@lerna-lite/publish@^3.0.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@lerna-lite/publish/-/publish-3.2.1.tgz#d30c098d225f19036d5ac1a53665b379236c59fc" - integrity sha512-a9xE0OV6NeM0l+9rKrkmDeDyNg051QKY4a9zJAaiUJKbdn54z6WvHdaq8PUzM627Fg6cTxYdXtP1elodXGPxmA== - dependencies: - "@lerna-lite/cli" "3.2.1" - "@lerna-lite/core" "3.2.1" - "@lerna-lite/version" "3.2.1" - "@npmcli/arborist" "^7.3.0" - byte-size "^8.1.1" - chalk "^5.3.0" - columnify "^1.6.0" - fs-extra "^11.2.0" - glob "^10.3.10" - has-unicode "^2.0.1" - libnpmaccess "^8.0.2" - libnpmpublish "^9.0.3" - normalize-path "^3.0.0" - npm-package-arg "^11.0.1" - npm-packlist "^8.0.2" - npm-registry-fetch "^16.1.0" - npmlog "^7.0.1" - p-map "^7.0.1" - p-pipe "^4.0.0" - pacote "^17.0.5" - pify "^6.1.0" - read-package-json "^7.0.0" - semver "^7.5.4" - ssri "^10.0.5" - tar "^6.2.0" - temp-dir "^3.0.0" - -"@lerna-lite/version@3.2.1", "@lerna-lite/version@^3.0.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@lerna-lite/version/-/version-3.2.1.tgz#15cbe4c5070eaed5f2b1a7e13883ff56805b1f5f" - integrity sha512-cMXSTOjAQgtsUCPLXna/Uflxbmppkgxa9yulwCnUGsEZP0G8DfvQAaIpb1QOgxy49mFzPpcw51VDt4zfcF0MHA== - dependencies: - "@lerna-lite/cli" "3.2.1" - "@lerna-lite/core" "3.2.1" - "@octokit/plugin-enterprise-rest" "^6.0.1" - "@octokit/rest" "^20.0.2" - chalk "^5.3.0" - conventional-changelog-angular "^7.0.0" - conventional-changelog-core "^7.0.0" - conventional-changelog-writer "^7.0.1" - conventional-commits-parser "^5.0.0" - conventional-recommended-bump "^9.0.0" - dedent "^1.5.1" - fs-extra "^11.2.0" - get-stream "^8.0.1" - git-url-parse "^14.0.0" - graceful-fs "^4.2.11" - is-stream "^3.0.0" - load-json-file "^7.0.1" - make-dir "^4.0.0" - minimatch "^9.0.3" - new-github-release-url "^2.0.0" - node-fetch "^3.3.2" - npm-package-arg "^11.0.1" - npmlog "^7.0.1" - p-map "^7.0.1" - p-pipe "^4.0.0" - p-reduce "^3.0.0" - pify "^6.1.0" - semver "^7.5.4" - slash "^5.1.0" - temp-dir "^3.0.0" - uuid "^9.0.1" - write-json-file "^5.0.0" - -"@ljharb/through@^2.3.11": - version "2.3.11" - resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" - integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== - dependencies: - call-bind "^1.0.2" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@npmcli/agent@^2.0.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.0.tgz#e81f00fdb2a670750ff7731bbefb47ecbf0ccf44" - integrity sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q== - dependencies: - agent-base "^7.1.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.1" - lru-cache "^10.0.1" - socks-proxy-agent "^8.0.1" - -"@npmcli/arborist@^7.3.0": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.3.1.tgz#7f3f9bed8981584b040483a2f4b126fabcd06674" - integrity sha512-qjMywu8clYczZE2SlLZWVOujAyiJEHHSEzapIXpuMURRH/tfY0KPKvGPyjvV041QsGN3tsWeaTUHcOi59wscSw== - dependencies: - "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/fs" "^3.1.0" - "@npmcli/installed-package-contents" "^2.0.2" - "@npmcli/map-workspaces" "^3.0.2" - "@npmcli/metavuln-calculator" "^7.0.0" - "@npmcli/name-from-folder" "^2.0.0" - "@npmcli/node-gyp" "^3.0.0" - "@npmcli/package-json" "^5.0.0" - "@npmcli/query" "^3.0.1" - "@npmcli/run-script" "^7.0.2" - bin-links "^4.0.1" - cacache "^18.0.0" - common-ancestor-path "^1.0.1" - hosted-git-info "^7.0.1" - json-parse-even-better-errors "^3.0.0" - json-stringify-nice "^1.1.4" - minimatch "^9.0.0" - nopt "^7.0.0" - npm-install-checks "^6.2.0" - npm-package-arg "^11.0.1" - npm-pick-manifest "^9.0.0" - npm-registry-fetch "^16.0.0" - npmlog "^7.0.1" - pacote "^17.0.4" - parse-conflict-json "^3.0.0" - proc-log "^3.0.0" - promise-all-reject-late "^1.0.0" - promise-call-limit "^3.0.1" - read-package-json-fast "^3.0.2" - semver "^7.3.7" - ssri "^10.0.5" - treeverse "^3.0.0" - walk-up-path "^3.0.1" - -"@npmcli/fs@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" - integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== - dependencies: - semver "^7.3.5" - -"@npmcli/git@^5.0.0": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c" - integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ== - dependencies: - "@npmcli/promise-spawn" "^7.0.0" - lru-cache "^10.0.1" - npm-pick-manifest "^9.0.0" - proc-log "^3.0.0" - promise-inflight "^1.0.1" - promise-retry "^2.0.1" - semver "^7.3.5" - which "^4.0.0" - -"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" - integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== - dependencies: - npm-bundled "^3.0.0" - npm-normalize-package-bin "^3.0.0" - -"@npmcli/map-workspaces@^3.0.2": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" - integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== - dependencies: - "@npmcli/name-from-folder" "^2.0.0" - glob "^10.2.2" - minimatch "^9.0.0" - read-package-json-fast "^3.0.0" - -"@npmcli/metavuln-calculator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.0.0.tgz#fb59245926d7f677db904177f9aca15ac883d6cb" - integrity sha512-Pw0tyX02VkpqlIQlG2TeiJNsdrecYeUU0ubZZa9pi3N37GCsxI+en43u4hYFdq+eSx1A9a9vwFAUyqEtKFsbHQ== - dependencies: - cacache "^18.0.0" - json-parse-even-better-errors "^3.0.0" - pacote "^17.0.0" - semver "^7.3.5" - -"@npmcli/name-from-folder@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" - integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== - -"@npmcli/node-gyp@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" - integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== - -"@npmcli/package-json@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91" - integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g== - dependencies: - "@npmcli/git" "^5.0.0" - glob "^10.2.2" - hosted-git-info "^7.0.0" - json-parse-even-better-errors "^3.0.0" - normalize-package-data "^6.0.0" - proc-log "^3.0.0" - semver "^7.5.3" - -"@npmcli/promise-spawn@^7.0.0": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz#a836de2f42a2245d629cf6fbb8dd6c74c74c55af" - integrity sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg== - dependencies: - which "^4.0.0" - -"@npmcli/query@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6" - integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA== - dependencies: - postcss-selector-parser "^6.0.10" - -"@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.2", "@npmcli/run-script@^7.0.3": - version "7.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.4.tgz#9f29aaf4bfcf57f7de2a9e28d1ef091d14b2e6eb" - integrity sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg== - dependencies: - "@npmcli/node-gyp" "^3.0.0" - "@npmcli/package-json" "^5.0.0" - "@npmcli/promise-spawn" "^7.0.0" - node-gyp "^10.0.0" - which "^4.0.0" - -"@octokit/auth-token@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" - integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== - -"@octokit/core@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" - integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== - dependencies: - "@octokit/auth-token" "^4.0.0" - "@octokit/graphql" "^7.0.0" - "@octokit/request" "^8.0.2" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^9.0.0": - version "9.0.4" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" - integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== - dependencies: - "@octokit/types" "^12.0.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" - integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== - dependencies: - "@octokit/request" "^8.0.1" - "@octokit/types" "^12.0.0" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^19.1.0": - version "19.1.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc" - integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw== - -"@octokit/plugin-enterprise-rest@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" - integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== - -"@octokit/plugin-paginate-rest@^9.0.0": - version "9.1.5" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480" - integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg== - dependencies: - "@octokit/types" "^12.4.0" - -"@octokit/plugin-request-log@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz#260fa6970aa97bbcbd91f99f3cd812e2b285c9f1" - integrity sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA== - -"@octokit/plugin-rest-endpoint-methods@^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz#eeaa4de97a2ae26404dea30ce3e17b11928e027c" - integrity sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q== - dependencies: - "@octokit/types" "^12.3.0" - -"@octokit/request-error@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" - integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== - dependencies: - "@octokit/types" "^12.0.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": - version "8.1.6" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.1.6.tgz#a76a859c30421737a3918b40973c2ff369009571" - integrity sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ== - dependencies: - "@octokit/endpoint" "^9.0.0" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" - universal-user-agent "^6.0.0" - -"@octokit/rest@^20.0.2": - version "20.0.2" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.0.2.tgz#5cc8871ba01b14604439049e5f06c74b45c99594" - integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ== - dependencies: - "@octokit/core" "^5.0.0" - "@octokit/plugin-paginate-rest" "^9.0.0" - "@octokit/plugin-request-log" "^4.0.0" - "@octokit/plugin-rest-endpoint-methods" "^10.0.0" - -"@octokit/types@^12.0.0", "@octokit/types@^12.3.0", "@octokit/types@^12.4.0": - version "12.4.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.4.0.tgz#8f97b601e91ce6b9776ed8152217e77a71be7aac" - integrity sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ== - dependencies: - "@octokit/openapi-types" "^19.1.0" - -"@patternfly/react-core@^5.1.1", "@patternfly/react-core@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-core/-/react-core-5.1.2.tgz#dcf643ce369452565bc471e2fe4e597182400306" - integrity sha512-MeSasp7PgkqlirlbbGuEj6j3KqXVoNkE3c3N6rfxTZOF025ullDJjtzf/L/Fiyht4tH1uNCtkdlpnea6jqTMPg== - dependencies: - "@patternfly/react-icons" "^5.1.2" - "@patternfly/react-styles" "^5.1.2" - "@patternfly/react-tokens" "^5.1.2" - focus-trap "7.5.2" - react-dropzone "^14.2.3" - tslib "^2.5.0" - -"@patternfly/react-icons@^5.1.1", "@patternfly/react-icons@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-5.1.2.tgz#c5c1a733230261a4747cd5fc88c946d4f290526c" - integrity sha512-hgf3OchvNyCcxqDrRJCkxauFdxENtVX2d6uTkMfOQWP3hs8hqYGHR5S0pe2teJ1SwAs2Rgtf7ezzmzKAouAjkw== - -"@patternfly/react-styles@^5.1.1", "@patternfly/react-styles@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-styles/-/react-styles-5.1.2.tgz#89fa082f728e2724f89455a7049b3a9f6e48c4e0" - integrity sha512-rGNo8MstZG2r3yDS1tWwYDctK1qWW5RT1UwKF1DrQfhZ8ruEEL6m2ZXXM0u62hmM3qq4Q8h5lgn/bVHBnOHSLA== - -"@patternfly/react-table@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-5.1.2.tgz#5541807f9770e32d29d7049470a6f71a7957e89d" - integrity sha512-C+ctkW6oWmdVhGv1rawVlo54baSu5G3ja3ZDtBjVsgMmpsGD0GIBXpvwtFO+OJVeY7T6qXHInMyuW3QNz/0rog== - dependencies: - "@patternfly/react-core" "^5.1.2" - "@patternfly/react-icons" "^5.1.2" - "@patternfly/react-styles" "^5.1.2" - "@patternfly/react-tokens" "^5.1.2" - lodash "^4.17.19" - tslib "^2.5.0" - -"@patternfly/react-tokens@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-5.1.2.tgz#9cf5c65c4e67b1686412b88af7465b18348a16ec" - integrity sha512-hu/6kEEMnyDc4GiMiaEau3kYq0BZoB3X1tZLcNfg9zQZnOydUgaLcUgR8+IlMF/nVVIqNjZF2RA/5lmKAVz2cQ== - -"@patternfly/react-topology@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@patternfly/react-topology/-/react-topology-5.1.0.tgz#75428154c3c4e7411f3baf6fc00fb8d6b6581ec9" - integrity sha512-Qzu7GMxqCsRvQj4RF2AHOGSp0nPpVuDE2xpdAaj/yCKz0cqHhvrwpC4+qyVL3mlqIs5qb+Fxm2d81Do7YIx3ig== - dependencies: - "@patternfly/react-core" "^5.1.1" - "@patternfly/react-icons" "^5.1.1" - "@patternfly/react-styles" "^5.1.1" - "@types/d3" "^7.4.0" - "@types/d3-force" "^1.2.1" - "@types/dagre" "0.7.42" - "@types/react-measure" "^2.0.6" - d3 "^7.8.0" - dagre "0.8.2" - lodash "^4.17.19" - mobx "^6.9.0" - mobx-react "^7.6.0" - point-in-svg-path "^1.0.1" - popper.js "^1.16.1" - react-measure "^2.3.0" - tslib "^2.0.0" - webcola "3.4.0" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - -"@react-dnd/asap@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@react-dnd/asap/-/asap-5.0.2.tgz#1f81f124c1cd6f39511c11a881cfb0f715343488" - integrity sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A== - -"@react-dnd/invariant@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@react-dnd/invariant/-/invariant-4.0.2.tgz#b92edffca10a26466643349fac7cdfb8799769df" - integrity sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw== - -"@react-dnd/shallowequal@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz#d1b4befa423f692fa4abf1c79209702e7d8ae4b4" - integrity sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA== - -"@rollup/rollup-android-arm-eabi@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz#66b8d9cb2b3a474d115500f9ebaf43e2126fe496" - integrity sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg== - -"@rollup/rollup-android-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz#46327d5b86420d2307946bec1535fdf00356e47d" - integrity sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw== - -"@rollup/rollup-darwin-arm64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz#166987224d2f8b1e2fd28ee90c447d52271d5e90" - integrity sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw== - -"@rollup/rollup-darwin-x64@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz#a2e6e096f74ccea6e2f174454c26aef6bcdd1274" - integrity sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog== - -"@rollup/rollup-linux-arm-gnueabihf@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz#09fcd4c55a2d6160c5865fec708a8e5287f30515" - integrity sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ== - -"@rollup/rollup-linux-arm64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz#19a3c0b6315c747ca9acf86e9b710cc2440f83c9" - integrity sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ== - -"@rollup/rollup-linux-arm64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz#94aaf95fdaf2ad9335983a4552759f98e6b2e850" - integrity sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ== - -"@rollup/rollup-linux-riscv64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz#160510e63f4b12618af4013bddf1761cf9fc9880" - integrity sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA== - -"@rollup/rollup-linux-x64-gnu@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz#5ac5d068ce0726bd0a96ca260d5bd93721c0cb98" - integrity sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw== - -"@rollup/rollup-linux-x64-musl@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz#bafa759ab43e8eab9edf242a8259ffb4f2a57a5d" - integrity sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ== - -"@rollup/rollup-win32-arm64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz#1cc3416682e5a20d8f088f26657e6e47f8db468e" - integrity sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA== - -"@rollup/rollup-win32-ia32-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz#7d2251e1aa5e8a1e47c86891fe4547a939503461" - integrity sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ== - -"@rollup/rollup-win32-x64-msvc@4.9.6": - version "4.9.6" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" - integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== - -"@sigstore/bundle@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.1.tgz#7fad9a1728939301607103722ac6f2a083d2f09a" - integrity sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg== - dependencies: - "@sigstore/protobuf-specs" "^0.2.1" - -"@sigstore/core@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-0.2.0.tgz#2d8ecae2c38a59a52b1dcbd6110014d88de08a80" - integrity sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA== - -"@sigstore/protobuf-specs@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" - integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== - -"@sigstore/sign@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.1.tgz#b37383db1f25ab20cfec980d23ce08e6f99e6caf" - integrity sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ== - dependencies: - "@sigstore/bundle" "^2.1.1" - "@sigstore/core" "^0.2.0" - "@sigstore/protobuf-specs" "^0.2.1" - make-fetch-happen "^13.0.0" - -"@sigstore/tuf@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.0.tgz#de64925ea10b16f3a7e77535d91eaf22be4dd904" - integrity sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q== - dependencies: - "@sigstore/protobuf-specs" "^0.2.1" - tuf-js "^2.2.0" - -"@sigstore/verify@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-0.1.0.tgz#c017aadb1a516ab4a10651cece29463aa9540bfe" - integrity sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA== - dependencies: - "@sigstore/bundle" "^2.1.1" - "@sigstore/core" "^0.2.0" - "@sigstore/protobuf-specs" "^0.2.1" - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sindresorhus/merge-streams@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90" - integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw== - -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - -"@storybook/addon-actions@^7.6.12": - version "7.6.12" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.12.tgz#9f8ec7ea0b656699ea7b69caf29a7e0e8e482d31" - integrity sha512-vK/H6K+AJ4ZSsCu/+MapYYI/xrynB6JoCOejt//flTigZOhwTWv7WXbmEeqGIIToXy0LA2IUZ1/kCjFXR0lEdQ== - dependencies: - "@storybook/core-events" "7.6.12" - "@storybook/global" "^5.0.0" - "@types/uuid" "^9.0.1" - dequal "^2.0.2" - polished "^4.2.2" - uuid "^9.0.0" - -"@storybook/addon-knobs@^7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-7.0.2.tgz#f28fd180d8a283df6eb67f8f2578f1563b7b7615" - integrity sha512-PzKuscxcBPhA2jpDxJ/F+BvBRqHJ8qBki1kS1IOjmJbAfE96WFnweXZ73ImyAJnRtmtReCL6p0ZmFkrNDMDpUw== - dependencies: - copy-to-clipboard "^3.3.3" - core-js "^3.29.0" - escape-html "^1.0.3" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.21" - prop-types "^15.8.1" - qs "^6.11.1" - react-colorful "^5.6.1" - react-lifecycles-compat "^3.0.4" - react-select "^5.7.0" - -"@storybook/core-events@7.6.12": - version "7.6.12" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.12.tgz#b622a51ee905ca1adb83163a912bb9dcfee3ba4a" - integrity sha512-IO4cwk7bBCKH6lLnnIlHO9FwQXt/9CzLUAoZSY9msWsdPppCdKlw8ynJI5YarSNKDBUn8ArIfnRf0Mve0KQr9Q== - dependencies: - ts-dedent "^2.0.0" - -"@storybook/global@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" - integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== - -"@testing-library/jest-dom@^6.3.0": - version "6.3.0" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.3.0.tgz#e8d308e0c0e91d882340cbbfdea0e4daa7987d36" - integrity sha512-hJVIrkFizEQxoWsGBlycTcQhrpoCH4DhXfrnHFFXgkx3Xdm15zycsq5Ep+vpw4W8S0NJa8cxDHcuJib+1tEbhg== - dependencies: - "@adobe/css-tools" "^4.3.2" - "@babel/runtime" "^7.9.2" - aria-query "^5.0.0" - chalk "^3.0.0" - css.escape "^1.5.1" - dom-accessibility-api "^0.6.3" - lodash "^4.17.15" - redent "^3.0.0" - -"@tootallnate/once@2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" - integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== - -"@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== - -"@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== - -"@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== - -"@tsconfig/node16@^1.0.2": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" - integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== - -"@tufjs/canonical-json@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" - integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== - -"@tufjs/models@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.0.tgz#c7ab241cf11dd29deb213d6817dabb8c99ce0863" - integrity sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg== - dependencies: - "@tufjs/canonical-json" "2.0.0" - minimatch "^9.0.3" - -"@types/babel__core@^7.1.14", "@types/babel__core@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" - integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== - dependencies: - "@babel/types" "^7.20.7" - -"@types/d3-array@*": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" - integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== - -"@types/d3-axis@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" - integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-brush@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" - integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-chord@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" - integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== - -"@types/d3-color@*": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" - integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== - -"@types/d3-contour@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" - integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== - dependencies: - "@types/d3-array" "*" - "@types/geojson" "*" - -"@types/d3-delaunay@*": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" - integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== - -"@types/d3-dispatch@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz#096efdf55eb97480e3f5621ff9a8da552f0961e7" - integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== - -"@types/d3-drag@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" - integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-dsv@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" - integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== - -"@types/d3-ease@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" - integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== - -"@types/d3-fetch@*": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" - integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== - dependencies: - "@types/d3-dsv" "*" - -"@types/d3-force@*": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.9.tgz#dd96ccefba4386fe4ff36b8e4ee4e120c21fcf29" - integrity sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA== - -"@types/d3-force@^1.2.1": - version "1.2.7" - resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.2.7.tgz#b066d91ac3b8f19c35a60b49e89e99f60187460a" - integrity sha512-zySqZfnxn67RVEGWzpD9dQA0AbNIp4Rj0qGvAuUdUNfGLrwuGCbEGAGze5hEdNaHJKQT2gTqr6j+qAzncm11ew== - -"@types/d3-format@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" - integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== - -"@types/d3-geo@*": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" - integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== - dependencies: - "@types/geojson" "*" - -"@types/d3-hierarchy@*": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz#8d3638df273ec90da34b3ac89d8784c59708cb0d" - integrity sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw== - -"@types/d3-interpolate@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" - integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== - dependencies: - "@types/d3-color" "*" - -"@types/d3-path@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.0.2.tgz#4327f4a05d475cf9be46a93fc2e0f8d23380805a" - integrity sha512-WAIEVlOCdd/NKRYTsqCpOMHQHemKBEINf8YXMYOtXH0GA7SY0dqMB78P3Uhgfy+4X+/Mlw2wDtlETkN6kQUCMA== - -"@types/d3-polygon@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" - integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== - -"@types/d3-quadtree@*": - version "3.0.6" - resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" - integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== - -"@types/d3-random@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" - integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== - -"@types/d3-scale-chromatic@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz#fc0db9c10e789c351f4c42d96f31f2e4df8f5644" - integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== - -"@types/d3-scale@*": - version "4.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" - integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== - dependencies: - "@types/d3-time" "*" - -"@types/d3-selection@*": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.10.tgz#98cdcf986d0986de6912b5892e7c015a95ca27fe" - integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg== - -"@types/d3-shape@*": - version "3.1.6" - resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" - integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== - dependencies: - "@types/d3-path" "*" - -"@types/d3-time-format@*": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" - integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== - -"@types/d3-time@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.3.tgz#3c186bbd9d12b9d84253b6be6487ca56b54f88be" - integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== - -"@types/d3-timer@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" - integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== - -"@types/d3-transition@*": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.8.tgz#677707f5eed5b24c66a1918cde05963021351a8f" - integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ== - dependencies: - "@types/d3-selection" "*" - -"@types/d3-zoom@*": - version "3.0.8" - resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" - integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== - dependencies: - "@types/d3-interpolate" "*" - "@types/d3-selection" "*" - -"@types/d3@^7.4.0": - version "7.4.3" - resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" - integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== - dependencies: - "@types/d3-array" "*" - "@types/d3-axis" "*" - "@types/d3-brush" "*" - "@types/d3-chord" "*" - "@types/d3-color" "*" - "@types/d3-contour" "*" - "@types/d3-delaunay" "*" - "@types/d3-dispatch" "*" - "@types/d3-drag" "*" - "@types/d3-dsv" "*" - "@types/d3-ease" "*" - "@types/d3-fetch" "*" - "@types/d3-force" "*" - "@types/d3-format" "*" - "@types/d3-geo" "*" - "@types/d3-hierarchy" "*" - "@types/d3-interpolate" "*" - "@types/d3-path" "*" - "@types/d3-polygon" "*" - "@types/d3-quadtree" "*" - "@types/d3-random" "*" - "@types/d3-scale" "*" - "@types/d3-scale-chromatic" "*" - "@types/d3-selection" "*" - "@types/d3-shape" "*" - "@types/d3-time" "*" - "@types/d3-time-format" "*" - "@types/d3-timer" "*" - "@types/d3-transition" "*" - "@types/d3-zoom" "*" - -"@types/dagre@0.7.42": - version "0.7.42" - resolved "https://registry.yarnpkg.com/@types/dagre/-/dagre-0.7.42.tgz#2b0cd7678d5fc273df7816a88b8b34016e3a5d85" - integrity sha512-knVdi1Ul8xYgJ0wdhQ+/2YGJFKJFa/5srcPII9zvOs4KhsHfpnFrSTQXATYmjslglxRMif3Lg+wEZ0beag+94A== - -"@types/estree@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== - -"@types/geojson@*": - version "7946.0.13" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.13.tgz#e6e77ea9ecf36564980a861e24e62a095988775e" - integrity sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ== - -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^29.5.12": - version "29.5.12" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" - integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/jsdom@^20.0.0": - version "20.0.1" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" - integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - -"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/node@*", "@types/node@^20.11.6": - version "20.11.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.6.tgz#6adf4241460e28be53836529c033a41985f85b6e" - integrity sha512-+EOokTnksGVgip2PbYbr3xnR7kZigh4LbybAfBAw5BpnQ+FqBYUsvCEjYd70IXKlbohQ64mzEYmMtlWUY8q//Q== - dependencies: - undici-types "~5.26.4" - -"@types/normalize-package-data@^2.4.1": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - -"@types/pako@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.3.tgz#b6993334f3af27c158f3fe0dfeeba987c578afb1" - integrity sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q== - -"@types/parse-json@^4.0.0": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" - integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== - -"@types/prop-types@*": - version "15.7.11" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" - integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== - -"@types/react-dom@^18.2.18": - version "18.2.18" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd" - integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw== - dependencies: - "@types/react" "*" - -"@types/react-measure@^2.0.6": - version "2.0.12" - resolved "https://registry.yarnpkg.com/@types/react-measure/-/react-measure-2.0.12.tgz#e8ba05057357b9529aa4115064fe7ea77549f54c" - integrity sha512-Y6V11CH6bU7RhqrIdENPwEUZlPXhfXNGylMNnGwq5TAEs2wDoBA3kSVVM/EQ8u72sz5r9ja+7W8M8PIVcS841Q== - dependencies: - "@types/react" "*" - -"@types/react-transition-group@^4.4.0": - version "4.4.10" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" - integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== - dependencies: - "@types/react" "*" - -"@types/react@*": - version "18.2.48" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" - integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/react@^18.2.53": - version "18.2.53" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.53.tgz#09c21b4621aaad5fed6a5045b33a7430749d8dc5" - integrity sha512-52IHsMDT8qATp9B9zoOyobW8W3/0QhaJQTw1HwRj0UY2yBpCAQ7+S/CqHYQ8niAm3p4ji+rWUQ9UCib0GxQ60w== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/scheduler@*": - version "0.16.8" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - -"@types/semver@^7.3.12", "@types/semver@^7.5.0": - version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - -"@types/tough-cookie@*": - version "4.0.5" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" - integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== - -"@types/uuid@^9.0.1": - version "9.0.8" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" - integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" - integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/type-utils" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" - integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== - dependencies: - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/scope-manager@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" - integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - -"@typescript-eslint/type-utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" - integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== - dependencies: - "@typescript-eslint/typescript-estree" "6.21.0" - "@typescript-eslint/utils" "6.21.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - -"@typescript-eslint/types@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" - integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== - -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/typescript-estree@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" - integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== - dependencies: - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/visitor-keys" "6.21.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" - integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.21.0" - "@typescript-eslint/types" "6.21.0" - "@typescript-eslint/typescript-estree" "6.21.0" - semver "^7.5.4" - -"@typescript-eslint/utils@^5.10.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@typescript-eslint/visitor-keys@6.21.0": - version "6.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" - integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== - dependencies: - "@typescript-eslint/types" "6.21.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - -"@vitejs/plugin-react@^4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" - integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== - dependencies: - "@babel/core" "^7.23.5" - "@babel/plugin-transform-react-jsx-self" "^7.23.3" - "@babel/plugin-transform-react-jsx-source" "^7.23.3" - "@types/babel__core" "^7.20.5" - react-refresh "^0.14.0" - -JSONStream@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abab@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -abbrev@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" - integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== - -acorn-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" - integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== - dependencies: - acorn "^8.1.0" - acorn-walk "^8.0.2" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^8.0.2, acorn-walk@^8.1.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" - integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== - -acorn@^8.1.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - -add-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" - integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== - dependencies: - debug "^4.3.4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-escapes@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" - integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== - dependencies: - type-fest "^3.0.0" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -"aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a" - integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg== - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -aria-query@^5.0.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== - dependencies: - dequal "^2.0.3" - -array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-ify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== - -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.filter@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" - integrity sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -arraybuffer.prototype.slice@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -attr-accept@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" - integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== - -available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" - integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== - -axios@^1.5.1: - version "1.6.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" - integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== - dependencies: - follow-redirects "^1.15.4" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-macros@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" - integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== - dependencies: - "@babel/runtime" "^7.12.5" - cosmiconfig "^7.0.0" - resolve "^1.19.0" - -babel-plugin-polyfill-corejs2@^0.4.8: - version "0.4.8" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" - integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== - dependencies: - "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.5.0" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" - integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.5.0" - core-js-compat "^3.34.0" - -babel-plugin-polyfill-regenerator@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" - integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.5.0" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -balanced-match@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" - integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - -bin-links@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" - integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA== - dependencies: - cmd-shim "^6.0.0" - npm-normalize-package-bin "^3.0.0" - read-cmd-shim "^4.0.0" - write-file-atomic "^5.0.0" - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bl@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.22.2: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== - dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -builtins@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - -byte-size@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" - integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== - -cacache@^18.0.0: - version "18.0.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.2.tgz#fd527ea0f03a603be5c0da5805635f8eef00c60c" - integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw== - dependencies: - "@npmcli/fs" "^3.1.0" - fs-minipass "^3.0.0" - glob "^10.2.2" - lru-cache "^10.0.1" - minipass "^7.0.3" - minipass-collect "^2.0.1" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - p-map "^4.0.0" - ssri "^10.0.0" - tar "^6.1.11" - unique-filename "^3.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001565: - version "1.0.30001579" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz#45c065216110f46d6274311a4b3fcf6278e0852a" - integrity sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA== - -chalk@5.3.0, chalk@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -"chokidar@>=3.0.0 <4.0.0": - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -ci-info@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" - integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== - -cjs-module-lexer@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== - dependencies: - restore-cursor "^4.0.0" - -cli-spinners@^2.5.0: - version "2.9.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" - integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - -cli-truncate@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" - integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== - dependencies: - slice-ansi "^5.0.0" - string-width "^7.0.0" - -cli-width@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" - integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - -cmd-shim@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" - integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.1.4, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -colord@^2.9.3: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -columnify@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" - integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== - dependencies: - strip-ansi "^6.0.1" - wcwidth "^1.0.0" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" - integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== - -commander@7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -common-ancestor-path@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" - integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== - -compare-func@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" - integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - dependencies: - array-ify "^1.0.0" - dot-prop "^5.1.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -config-chain@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -conventional-changelog-angular@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" - integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== - dependencies: - compare-func "^2.0.0" - -conventional-changelog-core@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-7.0.0.tgz#d8879ebb8692cd1fa8126c209e1b3af34d94e113" - integrity sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg== - dependencies: - "@hutson/parse-repository-url" "^5.0.0" - add-stream "^1.0.0" - conventional-changelog-writer "^7.0.0" - conventional-commits-parser "^5.0.0" - git-raw-commits "^4.0.0" - git-semver-tags "^7.0.0" - hosted-git-info "^7.0.0" - normalize-package-data "^6.0.0" - read-pkg "^8.0.0" - read-pkg-up "^10.0.0" - -conventional-changelog-preset-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.1.0.tgz#996bc40d516471c5bf8248fdc30222563b9bcfe6" - integrity sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA== - -conventional-changelog-writer@^7.0.0, conventional-changelog-writer@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz#e64ef74fa8e773cab4124af217f3f02b29eb0a9c" - integrity sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA== - dependencies: - conventional-commits-filter "^4.0.0" - handlebars "^4.7.7" - json-stringify-safe "^5.0.1" - meow "^12.0.1" - semver "^7.5.2" - split2 "^4.0.0" - -conventional-commits-filter@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz#845d713e48dc7d1520b84ec182e2773c10c7bf7f" - integrity sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A== - -conventional-commits-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" - integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== - dependencies: - JSONStream "^1.3.5" - is-text-path "^2.0.0" - meow "^12.0.1" - split2 "^4.0.0" - -conventional-recommended-bump@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-9.0.0.tgz#2910b08b10e6c705301335ab916e7438eba5907f" - integrity sha512-HR1yD0G5HgYAu6K0wJjLd7QGRK8MQDqqj6Tn1n/ja1dFwBCE6QmV+iSgQ5F7hkx7OUR/8bHpxJqYtXj2f/opPQ== - dependencies: - conventional-changelog-preset-loader "^4.1.0" - conventional-commits-filter "^4.0.0" - conventional-commits-parser "^5.0.0" - git-raw-commits "^4.0.0" - git-semver-tags "^7.0.0" - meow "^12.0.1" - -convert-source-map@^1.5.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -copy-to-clipboard@^3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" - integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== - dependencies: - toggle-selection "^1.0.6" - -core-js-compat@^3.31.0, core-js-compat@^3.34.0: - version "3.35.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.1.tgz#215247d7edb9e830efa4218ff719beb2803555e2" - integrity sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw== - dependencies: - browserslist "^4.22.2" - -core-js@^3.29.0: - version "3.35.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.1.tgz#9c28f8b7ccee482796f8590cc8d15739eaaf980c" - integrity sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw== - -cosmiconfig@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" - integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - -cosmiconfig@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" - integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - dependencies: - env-paths "^2.2.1" - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-functions-list@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.1.tgz#2eb205d8ce9f9ce74c5c1d7490b66b77c45ce3ea" - integrity sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ== - -css-tree@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" - integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== - dependencies: - mdn-data "2.0.30" - source-map-js "^1.0.1" - -css.escape@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" - integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssfontparser@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" - integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== - -cssom@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" - integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" - integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== - dependencies: - internmap "1 - 2" - -d3-axis@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" - integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== - -d3-brush@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" - integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "3" - d3-transition "3" - -d3-chord@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" - integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== - dependencies: - d3-path "1 - 3" - -"d3-color@1 - 3", d3-color@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" - integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== - -d3-contour@4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" - integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== - dependencies: - d3-array "^3.2.0" - -d3-delaunay@6: - version "6.0.4" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" - integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== - dependencies: - delaunator "5" - -d3-dispatch@1, d3-dispatch@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - -"d3-dispatch@1 - 3", d3-dispatch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -"d3-drag@2 - 3", d3-drag@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" - integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== - dependencies: - d3-dispatch "1 - 3" - d3-selection "3" - -d3-drag@^1.0.4: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== - dependencies: - d3-dispatch "1" - d3-selection "1" - -"d3-dsv@1 - 3", d3-dsv@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -"d3-ease@1 - 3", d3-ease@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" - integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== - -d3-fetch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" - integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== - dependencies: - d3-dsv "1 - 3" - -d3-force@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"d3-format@1 - 3", d3-format@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" - integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@3: - version "3.1.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" - integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== - -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - -"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - -d3-polygon@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" - integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== - -"d3-quadtree@1 - 3", d3-quadtree@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-random@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" - integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== - -d3-scale-chromatic@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" - integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== - dependencies: - d3-color "1 - 3" - d3-interpolate "1 - 3" - -d3-scale@4, d3-scale@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -d3-selection@1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - -"d3-selection@2 - 3", d3-selection@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" - integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== - -d3-shape@3, d3-shape@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - -d3-shape@^1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - -"d3-time-format@2 - 4", d3-time-format@4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" - integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== - dependencies: - d3-array "2 - 3" - -"d3-timer@1 - 3", d3-timer@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -d3-timer@^1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - -"d3-transition@2 - 3", d3-transition@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" - integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== - dependencies: - d3-color "1 - 3" - d3-dispatch "1 - 3" - d3-ease "1 - 3" - d3-interpolate "1 - 3" - d3-timer "1 - 3" - -d3-zoom@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" - integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "2 - 3" - d3-transition "2 - 3" - -d3@^7.8.0: - version "7.8.5" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" - integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== - dependencies: - d3-array "3" - d3-axis "3" - d3-brush "3" - d3-chord "3" - d3-color "3" - d3-contour "4" - d3-delaunay "6" - d3-dispatch "3" - d3-drag "3" - d3-dsv "3" - d3-ease "3" - d3-fetch "3" - d3-force "3" - d3-format "3" - d3-geo "3" - d3-hierarchy "3" - d3-interpolate "3" - d3-path "3" - d3-polygon "3" - d3-quadtree "3" - d3-random "3" - d3-scale "4" - d3-scale-chromatic "3" - d3-selection "3" - d3-shape "3" - d3-time "3" - d3-time-format "4" - d3-timer "3" - d3-transition "3" - d3-zoom "3" - -dagre@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.2.tgz#755b79f4d5499d63cf74c3368fb08add93eceafe" - integrity sha512-TEOOGZOkCOgCG7AoUIq64sJ3d21SMv8tyoqteLpX+UsUsS9Qw8iap4hhogXY4oB3r0bbZuAjO0atAilgCmsE0Q== - dependencies: - graphlib "^2.1.5" - lodash "^4.17.4" - -dargs@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-8.1.0.tgz#a34859ea509cbce45485e5aa356fef70bfcc7272" - integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== - -data-uri-to-buffer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" - integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== - -data-urls@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" - integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== - dependencies: - abab "^2.0.6" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - -debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decimal.js@^10.4.2: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -dedent@^1.0.0, dedent@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge-ts@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/deepmerge-ts/-/deepmerge-ts-5.1.0.tgz#c55206cc4c7be2ded89b9c816cf3608884525d7a" - integrity sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -defaults@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" - integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - dependencies: - clone "^1.0.2" - -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delaunator@5: - version "5.0.1" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" - integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== - dependencies: - robust-predicates "^3.0.2" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - -dequal@^2.0.2, dequal@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - -detect-indent@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25" - integrity sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dnd-core@^16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/dnd-core/-/dnd-core-16.0.1.tgz#a1c213ed08961f6bd1959a28bb76f1a868360d19" - integrity sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng== - dependencies: - "@react-dnd/asap" "^5.0.1" - "@react-dnd/invariant" "^4.0.1" - redux "^4.2.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-accessibility-api@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" - integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== - -dom-helpers@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" - integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -domexception@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" - integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== - dependencies: - webidl-conversions "^7.0.0" - -dot-prop@^5.1.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotenv@^16.3.1: - version "16.4.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.1.tgz#1d9931f1d3e5d2959350d1250efab299561f7f11" - integrity sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ== - -duplexer@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -electron-to-chromium@^1.4.601: - version "1.4.645" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.645.tgz#117f964252eb2f0ff00fc7360cb3080e2cf66e3c" - integrity sha512-EeS1oQDCmnYsRDRy2zTeC336a/4LZ6WKqvSaM1jLocEk5ZuyszkQtCpsqvuvaIXGOUjwtvF6LTcS8WueibXvSw== - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - -emoji-regex@^10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" - integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -entities@^4.4.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -env-paths@^2.2.0, env-paths@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -error-ex@^1.3.1, error-ex@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1, es-abstract@^1.22.3: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-errors@^1.0.0, es-errors@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== - dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -esbuild@^0.19.3: - version "0.19.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== - optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@^2.29.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== - dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" - semver "^6.3.1" - tsconfig-paths "^3.15.0" - -eslint-plugin-jest@^27.6.3: - version "27.6.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.3.tgz#8acb8b1e45597fe1f4d4cf25163d90119efc12be" - integrity sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-prettier@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" - -eslint-plugin-react-hooks@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" - integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== - -eslint-plugin-react-refresh@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz#6b9b307bad3feba2244ef64a1a15485ac70a2d0f" - integrity sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@^8.56.0: - version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" - "@humanwhocodes/config-array" "^0.11.13" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - -execa@8.0.1, execa@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - -exponential-backoff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" - integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== - -external-editor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-xml-parser@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.4.tgz#385cc256ad7bbc57b91515a38a22502a9e1fca0d" - integrity sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA== - dependencies: - strnum "^1.0.5" - -fastest-levenshtein@^1.0.16: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -fastq@^1.6.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" - integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" - integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== - dependencies: - node-domexception "^1.0.0" - web-streams-polyfill "^3.0.3" - -figures@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" - integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== - dependencies: - escape-string-regexp "^5.0.0" - is-unicode-supported "^1.2.0" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-entry-cache@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" - integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== - dependencies: - flat-cache "^4.0.0" - -file-saver@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" - integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - -file-selector@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.6.0.tgz#fa0a8d9007b829504db4d07dd4de0310b65287dc" - integrity sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw== - dependencies: - tslib "^2.4.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-root@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flat-cache@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.0.tgz#d12437636f83bb8a12b8f300c36fd1614e1c7224" - integrity sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA== - dependencies: - flatted "^3.2.9" - keyv "^4.5.4" - rimraf "^5.0.5" - -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== - -focus-trap@7.5.2: - version "7.5.2" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" - integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw== - dependencies: - tabbable "^6.2.0" - -follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -formdata-polyfill@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" - integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== - dependencies: - fetch-blob "^3.1.2" - -fs-extra@^11.2.0: - version "11.2.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs-minipass@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" - integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== - dependencies: - minipass "^7.0.3" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gauge@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" - integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^4.0.1" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-east-asian-width@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" - integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.3.tgz#9d2d284a238e62672f556361e7d4e1a4686ae50e" - integrity sha512-JIcZczvcMVE7AUOP+X72bh8HqHBRxFdz5PDHYtNG/lE3yk9b3KZBJlwFcTyPYjg3L4RLLmZJzvjxhaZVapxFrQ== - dependencies: - es-errors "^1.0.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-node-dimensions@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz#fb7b4bb57060fb4247dd51c9d690dfbec56b0823" - integrity sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -git-raw-commits@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-4.0.0.tgz#b212fd2bff9726d27c1283a1157e829490593285" - integrity sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== - dependencies: - dargs "^8.0.0" - meow "^12.0.1" - split2 "^4.0.0" - -git-semver-tags@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-7.0.1.tgz#74426e7d7710e5a263655e78b4c651eed804d63e" - integrity sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q== - dependencies: - meow "^12.0.1" - semver "^7.5.2" - -git-up@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" - integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== - dependencies: - is-ssh "^1.4.0" - parse-url "^8.1.0" - -git-url-parse@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" - integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== - dependencies: - git-up "^7.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^10.2.2, glob@^10.3.10, glob@^10.3.7: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -global@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globby@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.0.tgz#ea9c062a3614e33f516804e778590fcf055256b9" - integrity sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ== - dependencies: - "@sindresorhus/merge-streams" "^1.0.0" - fast-glob "^3.3.2" - ignore "^5.2.4" - path-type "^5.0.0" - slash "^5.1.0" - unicorn-magic "^0.1.0" - -globjoin@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" - integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -graphlib@^2.1.5: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - -handlebars@^4.7.7: - version "4.7.8" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" - integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== - dependencies: - minimist "^1.2.5" - neo-async "^2.6.2" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^7.0.0, hosted-git-info@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" - integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== - dependencies: - lru-cache "^10.0.1" - -html-encoding-sniffer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" - integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== - dependencies: - whatwg-encoding "^2.0.0" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-tags@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - -http-cache-semantics@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-proxy-agent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" - integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== - dependencies: - agent-base "^7.1.0" - debug "^4.3.4" - -https-proxy-agent@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -https-proxy-agent@^7.0.1: - version "7.0.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" - integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== - dependencies: - agent-base "^7.0.2" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - -husky@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== - -iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore-walk@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" - integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== - dependencies: - minimatch "^9.0.0" - -ignore@^5.2.0, ignore@^5.3.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== - -ignore@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== - -immutable@^4.0.0: - version "4.3.5" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" - integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== - -import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2, import-local@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.4, ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inquirer@^9.2.12: - version "9.2.12" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.12.tgz#0348e9311765b7c93fce143bb1c0ef1ae879b1d7" - integrity sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q== - dependencies: - "@ljharb/through" "^2.3.11" - ansi-escapes "^4.3.2" - chalk "^5.3.0" - cli-cursor "^3.1.0" - cli-width "^4.1.0" - external-editor "^3.1.0" - figures "^5.0.0" - lodash "^4.17.21" - mute-stream "1.0.0" - ora "^5.4.1" - run-async "^3.0.0" - rxjs "^7.8.1" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wrap-ansi "^6.2.0" - -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - -is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-ci@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" - integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== - dependencies: - ci-info "^3.2.0" - -is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.8.1: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-fullwidth-code-point@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" - integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== - dependencies: - get-east-asian-width "^1.0.0" - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-plain-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" - integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-ssh@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" - integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== - dependencies: - protocols "^2.0.1" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-text-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" - integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== - dependencies: - text-extensions "^2.0.0" - -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - dependencies: - which-typed-array "^1.1.14" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-unicode-supported@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" - integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isexe@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" - integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== - -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" - integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -jest-canvas-mock@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" - integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== - dependencies: - cssfontparser "^1.2.1" - moo-color "^1.0.2" - -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== - dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-jsdom@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" - integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/jsdom" "^20.0.0" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - jsdom "^20.0.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== - dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== - dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsdom@^20.0.0: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" - integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== - dependencies: - abab "^2.0.6" - acorn "^8.8.1" - acorn-globals "^7.0.0" - cssom "^0.5.0" - cssstyle "^2.3.0" - data-urls "^3.0.2" - decimal.js "^10.4.2" - domexception "^4.0.0" - escodegen "^2.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.2" - parse5 "^7.1.1" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^11.0.0" - ws "^8.11.0" - xml-name-validator "^4.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-parse-even-better-errors@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" - integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stringify-nice@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" - integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== - -json-stringify-safe@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonparse@^1.2.0, jsonparse@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - -just-diff-apply@^5.2.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" - integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== - -just-diff@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" - integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== - -keyv@^4.5.3, keyv@^4.5.4: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -known-css-properties@^0.29.0: - version "0.29.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.29.0.tgz#e8ba024fb03886f23cb882e806929f32d814158f" - integrity sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -libnpmaccess@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.2.tgz#a13a72fd5b71a1063ea54973fa56d61ec38f718f" - integrity sha512-4K+nsg3OYt4rjryP/3D5zGWluLbZaKozwj6YdtvAyxNhLhUrjCoyxHVoL5AkTJcAnjsd6/ATei52QPVvpSX9Ug== - dependencies: - npm-package-arg "^11.0.1" - npm-registry-fetch "^16.0.0" - -libnpmpublish@^9.0.3: - version "9.0.4" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.4.tgz#0222c14578088ca9a758585c36d8133b828c87ad" - integrity sha512-330o6pVsCCg77jQ/+kidyG/RiohXYQKpqmzOC4BjUDWcimb+mXptRBh1Kvy27/Zb/CStZLVrfgGc6tXf5+PE3Q== - dependencies: - ci-info "^4.0.0" - normalize-package-data "^6.0.0" - npm-package-arg "^11.0.1" - npm-registry-fetch "^16.0.0" - proc-log "^3.0.0" - semver "^7.3.7" - sigstore "^2.2.0" - ssri "^10.0.5" - -lilconfig@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" - integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lines-and-columns@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" - integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== - -lint-staged@^15.0.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.0.tgz#3111534ca58096a3c8f70b044b6e7fe21b36f859" - integrity sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ== - dependencies: - chalk "5.3.0" - commander "11.1.0" - debug "4.3.4" - execa "8.0.1" - lilconfig "3.0.0" - listr2 "8.0.0" - micromatch "4.0.5" - pidtree "0.6.0" - string-argv "0.3.2" - yaml "2.3.4" - -listr2@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.0.0.tgz#aa7c230995f8ce378585f7c96c0c6d1cefa4700d" - integrity sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg== - dependencies: - cli-truncate "^4.0.0" - colorette "^2.0.20" - eventemitter3 "^5.0.1" - log-update "^6.0.0" - rfdc "^1.3.0" - wrap-ansi "^9.0.0" - -load-json-file@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-7.0.1.tgz#a3c9fde6beffb6bedb5acf104fad6bb1604e1b00" - integrity sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - -log-update@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" - integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== - dependencies: - ansi-escapes "^6.2.0" - cli-cursor "^4.0.0" - slice-ansi "^7.0.0" - strip-ansi "^7.1.0" - wrap-ansi "^9.0.0" - -loglevel@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" - integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== - -loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -make-fetch-happen@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" - integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== - dependencies: - "@npmcli/agent" "^2.0.0" - cacache "^18.0.0" - http-cache-semantics "^4.1.1" - is-lambda "^1.0.1" - minipass "^7.0.2" - minipass-fetch "^3.0.0" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - ssri "^10.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -mathml-tag-names@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" - integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== - -mdn-data@2.0.30: - version "2.0.30" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" - integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== - -memoize-one@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" - integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== - -meow@^12.0.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" - integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== - -meow@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-13.1.0.tgz#62995b0e8c3951739fe6e0a4becdd4d0df23eb37" - integrity sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@4.0.5, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== - dependencies: - dom-walk "^0.1.0" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass-collect@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" - integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== - dependencies: - minipass "^7.0.3" - -minipass-fetch@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" - integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== - dependencies: - minipass "^7.0.3" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-json-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" - integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== - dependencies: - jsonparse "^1.3.1" - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== - -minizlib@^2.1.1, minizlib@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mobx-react-lite@^3.4.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.4.3.tgz#3a4c22c30bfaa8b1b2aa48d12b2ba811c0947ab7" - integrity sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg== - -mobx-react@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.6.0.tgz#ebf0456728a9bd2e5c24fdcf9b36e285a222a7d6" - integrity sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA== - dependencies: - mobx-react-lite "^3.4.0" - -mobx@^6.9.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.12.0.tgz#72b2685ca5af031aaa49e77a4d76ed67fcbf9135" - integrity sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ== - -moo-color@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" - integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== - dependencies: - color-name "^1.1.4" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -mute-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" - integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== - -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -new-github-release-url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-2.0.0.tgz#335189b91f52bbb9569042a7485900a205a0500b" - integrity sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ== - dependencies: - type-fest "^2.5.1" - -node-domexception@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" - integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== - -node-fetch@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" - integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== - dependencies: - data-uri-to-buffer "^4.0.0" - fetch-blob "^3.1.4" - formdata-polyfill "^4.0.10" - -node-gyp@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" - integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== - dependencies: - env-paths "^2.2.0" - exponential-backoff "^3.1.1" - glob "^10.3.10" - graceful-fs "^4.2.6" - make-fetch-happen "^13.0.0" - nopt "^7.0.0" - proc-log "^3.0.0" - semver "^7.3.5" - tar "^6.1.2" - which "^4.0.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - -nopt@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" - integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== - dependencies: - abbrev "^2.0.0" - -normalize-package-data@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" - integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== - dependencies: - hosted-git-info "^7.0.0" - is-core-module "^2.8.1" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-bundled@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" - integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== - dependencies: - npm-normalize-package-bin "^3.0.0" - -npm-install-checks@^6.0.0, npm-install-checks@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" - integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== - dependencies: - semver "^7.1.1" - -npm-normalize-package-bin@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" - integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== - -npm-package-arg@^11.0.0, npm-package-arg@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" - integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== - dependencies: - hosted-git-info "^7.0.0" - proc-log "^3.0.0" - semver "^7.3.5" - validate-npm-package-name "^5.0.0" - -npm-packlist@^8.0.0, npm-packlist@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478" - integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA== - dependencies: - ignore-walk "^6.0.4" - -npm-pick-manifest@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" - integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== - dependencies: - npm-install-checks "^6.0.0" - npm-normalize-package-bin "^3.0.0" - npm-package-arg "^11.0.0" - semver "^7.3.5" - -npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz#10227b7b36c97bc1cf2902a24e4f710cfe62803c" - integrity sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw== - dependencies: - make-fetch-happen "^13.0.0" - minipass "^7.0.2" - minipass-fetch "^3.0.0" - minipass-json-stream "^1.0.1" - minizlib "^2.1.2" - npm-package-arg "^11.0.0" - proc-log "^3.0.0" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" - integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== - dependencies: - path-key "^4.0.0" - -npmlog@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" - integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== - dependencies: - are-we-there-yet "^4.0.0" - console-control-strings "^1.1.0" - gauge "^5.0.0" - set-blocking "^2.0.0" - -nwsapi@^2.2.2: - version "2.2.7" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.2.tgz#494800ff5bab78fd0eff2835ec859066e00192ec" - integrity sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw== - dependencies: - array.prototype.filter "^1.0.3" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.0.0" - -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -once@^1.3.0, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" - wcwidth "^1.0.1" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-map@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.1.tgz#1faf994e597160f7851882926bfccabc1d226f80" - integrity sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw== - -p-pipe@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-4.0.0.tgz#7e5424569351b2ab452a47826acb93ce09ad6a2c" - integrity sha512-HkPfFklpZQPUKBFXzKFB6ihLriIHxnmuQdK9WmLDwe4hf2PdhhfWT/FJa+pc3bA1ywvKXtedxIRmd4Y7BTXE4w== - -p-queue@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-8.0.1.tgz#718b7f83836922ef213ddec263ff4223ce70bef8" - integrity sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA== - dependencies: - eventemitter3 "^5.0.1" - p-timeout "^6.1.2" - -p-reduce@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" - integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== - -p-timeout@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" - integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pacote@^17.0.0, pacote@^17.0.4, pacote@^17.0.5: - version "17.0.6" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.6.tgz#874bb59cda5d44ab784d0b6530fcb4a7d9b76a60" - integrity sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ== - dependencies: - "@npmcli/git" "^5.0.0" - "@npmcli/installed-package-contents" "^2.0.1" - "@npmcli/promise-spawn" "^7.0.0" - "@npmcli/run-script" "^7.0.0" - cacache "^18.0.0" - fs-minipass "^3.0.0" - minipass "^7.0.2" - npm-package-arg "^11.0.0" - npm-packlist "^8.0.0" - npm-pick-manifest "^9.0.0" - npm-registry-fetch "^16.0.0" - proc-log "^3.0.0" - promise-retry "^2.0.1" - read-package-json "^7.0.0" - read-package-json-fast "^3.0.0" - sigstore "^2.2.0" - ssri "^10.0.0" - tar "^6.1.11" - -pako@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" - integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-conflict-json@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c" - integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw== - dependencies: - json-parse-even-better-errors "^3.0.0" - just-diff "^6.0.0" - just-diff-apply "^5.2.0" - -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-json@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" - integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== - dependencies: - "@babel/code-frame" "^7.21.4" - error-ex "^1.3.2" - json-parse-even-better-errors "^3.0.0" - lines-and-columns "^2.0.3" - type-fest "^3.8.0" - -parse-path@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" - integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== - dependencies: - protocols "^2.0.0" - -parse-url@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" - integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== - dependencies: - parse-path "^7.0.0" - -parse5@^7.0.0, parse5@^7.1.1: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" - integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== - dependencies: - entities "^4.4.0" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -path-type@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" - integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pify@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-6.1.0.tgz#db9f2ebfba65f0bc144db65ae84d1a486ab72909" - integrity sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw== - -pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -point-in-svg-path@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/point-in-svg-path/-/point-in-svg-path-1.0.2.tgz#e7b25370e96f58a858c34882ffb57d41b7a574bf" - integrity sha512-+Smsf7B9e7eRFHIwpN+4rE8inF2APbFWeywPfUgbeh02xdJSkbTz6Pqdt7A36wVCR+CnLbaNkRnBjgOpF5RMVQ== - -polished@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/polished/-/polished-4.3.1.tgz#5a00ae32715609f83d89f6f31d0f0261c6170548" - integrity sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA== - dependencies: - "@babel/runtime" "^7.17.8" - -popper.js@^1.16.1: - version "1.16.1" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - -postcss-media-query-parser@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" - integrity sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== - -postcss-resolve-nested-selector@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" - integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== - -postcss-safe-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz#6273d4e5149e286db5a45bc6cf6eafcad464014a" - integrity sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg== - -postcss-scss@^4.0.9: - version "4.0.9" - resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685" - integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== - -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.15: - version "6.0.15" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.4.32, postcss@^8.4.33: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" - integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== - -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -proc-log@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" - integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -promise-all-reject-late@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" - integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== - -promise-call-limit@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.1.tgz#3570f7a3f2aaaf8e703623a552cd74749688cf19" - integrity sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -protocols@^2.0.0, protocols@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" - integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -pure-rand@^6.0.0: - version "6.0.4" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" - integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== - -qs@^6.11.1: - version "6.11.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== - dependencies: - side-channel "^1.0.4" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-colorful@^5.6.1: - version "5.6.1" - resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.6.1.tgz#7dc2aed2d7c72fac89694e834d179e32f3da563b" - integrity sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw== - -react-dnd-html5-backend@^16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz#87faef15845d512a23b3c08d29ecfd34871688b6" - integrity sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw== - dependencies: - dnd-core "^16.0.1" - -react-dnd-touch-backend@^16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/react-dnd-touch-backend/-/react-dnd-touch-backend-16.0.1.tgz#e73f8169e2b9fac0f687970f875cac0a4d02d6e2" - integrity sha512-NonoCABzzjyWGZuDxSG77dbgMZ2Wad7eQiCd/ECtsR2/NBLTjGksPUx9UPezZ1nQ/L7iD130Tz3RUshL/ClKLA== - dependencies: - "@react-dnd/invariant" "^4.0.1" - dnd-core "^16.0.1" - -react-dnd@^16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/react-dnd/-/react-dnd-16.0.1.tgz#2442a3ec67892c60d40a1559eef45498ba26fa37" - integrity sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q== - dependencies: - "@react-dnd/invariant" "^4.0.1" - "@react-dnd/shallowequal" "^4.0.1" - dnd-core "^16.0.1" - fast-deep-equal "^3.1.3" - hoist-non-react-statics "^3.3.2" - -react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" - -react-dropzone@^14.2.3: - version "14.2.3" - resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.2.3.tgz#0acab68308fda2d54d1273a1e626264e13d4e84b" - integrity sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug== - dependencies: - attr-accept "^2.2.2" - file-selector "^0.6.0" - prop-types "^15.8.1" - -react-is@^16.13.1, react-is@^16.7.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-measure@^2.3.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/react-measure/-/react-measure-2.5.2.tgz#4ffc410e8b9cb836d9455a9ff18fc1f0fca67f89" - integrity sha512-M+rpbTLWJ3FD6FXvYV6YEGvQ5tMayQ3fGrZhRPHrE9bVlBYfDCLuDcgNttYfk8IqfOI03jz6cbpqMRTUclQnaA== - dependencies: - "@babel/runtime" "^7.2.0" - get-node-dimensions "^1.2.1" - prop-types "^15.6.2" - resize-observer-polyfill "^1.5.0" - -react-refresh@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" - integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== - -react-sage@^0.3.16: - version "0.3.16" - resolved "https://registry.yarnpkg.com/react-sage/-/react-sage-0.3.16.tgz#bd8ba2735ed2bceb0b1e2226ad8588c2acd58dac" - integrity sha512-oVVmwiEH+iS0+ZWnfwWEnx1TKVcHDlleqo1fluQKlG7JAtZpgU+a0RPLdT2wGcNcPecrOaELuSz5VL9GKbtiXw== - -react-select@^5.7.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.0.tgz#bd5c467a4df223f079dd720be9498076a3f085b5" - integrity sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA== - dependencies: - "@babel/runtime" "^7.12.0" - "@emotion/cache" "^11.4.0" - "@emotion/react" "^11.8.1" - "@floating-ui/dom" "^1.0.1" - "@types/react-transition-group" "^4.4.0" - memoize-one "^6.0.0" - prop-types "^15.6.0" - react-transition-group "^4.3.0" - use-isomorphic-layout-effect "^1.1.2" - -react-transition-group@^4.3.0: - version "4.4.5" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" - integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== - dependencies: - "@babel/runtime" "^7.5.5" - dom-helpers "^5.0.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" - -react-use-gesture@^9.1.3: - version "9.1.3" - resolved "https://registry.yarnpkg.com/react-use-gesture/-/react-use-gesture-9.1.3.tgz#92bd143e4f58e69bd424514a5bfccba2a1d62ec0" - integrity sha512-CdqA2SmS/fj3kkS2W8ZU8wjTbVBAIwDWaRprX7OKaj7HlGwBasGEFggmk5qNklknqk9zK/h8D355bEJFTpqEMg== - -react@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== - dependencies: - loose-envify "^1.1.0" - -read-cmd-shim@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" - integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== - -read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" - integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== - dependencies: - json-parse-even-better-errors "^3.0.0" - npm-normalize-package-bin "^3.0.0" - -read-package-json@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-7.0.0.tgz#d605c9dcf6bc5856da24204aa4e9518ee9714be0" - integrity sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg== - dependencies: - glob "^10.2.2" - json-parse-even-better-errors "^3.0.0" - normalize-package-data "^6.0.0" - npm-normalize-package-bin "^3.0.0" - -read-pkg-up@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-10.1.0.tgz#2d13ab732d2f05d6e8094167c2112e2ee50644f4" - integrity sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA== - dependencies: - find-up "^6.3.0" - read-pkg "^8.1.0" - type-fest "^4.2.0" - -read-pkg@^8.0.0, read-pkg@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-8.1.0.tgz#6cf560b91d90df68bce658527e7e3eee75f7c4c7" - integrity sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ== - dependencies: - "@types/normalize-package-data" "^2.4.1" - normalize-package-data "^6.0.0" - parse-json "^7.0.0" - type-fest "^4.2.0" - -readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - -redux@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" - integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== - dependencies: - "@babel/runtime" "^7.9.2" - -regenerate-unicode-properties@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" - integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regenerator-transform@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" - integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== - dependencies: - "@babel/runtime" "^7.8.4" - -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resize-observer-polyfill@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== - -resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rfdc@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rimraf@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" - integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== - dependencies: - glob "^10.3.7" - -robust-predicates@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" - integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== - -rollup@^4.2.0: - version "4.9.6" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.6.tgz#4515facb0318ecca254a2ee1315e22e09efc50a0" - integrity sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg== - dependencies: - "@types/estree" "1.0.5" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.9.6" - "@rollup/rollup-android-arm64" "4.9.6" - "@rollup/rollup-darwin-arm64" "4.9.6" - "@rollup/rollup-darwin-x64" "4.9.6" - "@rollup/rollup-linux-arm-gnueabihf" "4.9.6" - "@rollup/rollup-linux-arm64-gnu" "4.9.6" - "@rollup/rollup-linux-arm64-musl" "4.9.6" - "@rollup/rollup-linux-riscv64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-gnu" "4.9.6" - "@rollup/rollup-linux-x64-musl" "4.9.6" - "@rollup/rollup-win32-arm64-msvc" "4.9.6" - "@rollup/rollup-win32-ia32-msvc" "4.9.6" - "@rollup/rollup-win32-x64-msvc" "4.9.6" - fsevents "~2.3.2" - -run-async@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" - integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== - -rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-array-concat@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" - integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== - dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== - dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" - is-regex "^1.1.4" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass@^1.70.0: - version "1.70.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.70.0.tgz#761197419d97b5358cb25f9dd38c176a8a270a75" - integrity sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" - -saxon-js@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/saxon-js/-/saxon-js-2.6.0.tgz#68080fa2f000eac48abf0bdc880eb74bf9766baf" - integrity sha512-4dinQEGz/OQX0cnmwLTbjVFY9KciMGRyfA6AUsMCO/mKDOwDxOJFmzoLStieTpEiOB/98E1E4VKV1ElsiD88yQ== - dependencies: - axios "^1.5.1" - -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" - -semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== - dependencies: - define-data-property "^1.1.1" - function-bind "^1.1.2" - get-intrinsic "^1.2.2" - gopd "^1.0.1" - has-property-descriptors "^1.0.1" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1, signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -sigstore@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.2.0.tgz#acba5f73ca2158d2b0507bc52d3592149c3ed20e" - integrity sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug== - dependencies: - "@sigstore/bundle" "^2.1.1" - "@sigstore/core" "^0.2.0" - "@sigstore/protobuf-specs" "^0.2.1" - "@sigstore/sign" "^2.2.1" - "@sigstore/tuf" "^2.3.0" - "@sigstore/verify" "^0.1.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" - integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -slice-ansi@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" - integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== - dependencies: - ansi-styles "^6.2.1" - is-fullwidth-code-point "^5.0.0" - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@^8.0.1: - version "8.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" - integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== - dependencies: - agent-base "^7.0.2" - debug "^4.3.4" - socks "^2.7.1" - -socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - -sort-keys@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446" - integrity sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw== - dependencies: - is-plain-obj "^4.0.0" - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz#c07a4ede25b16e4f78e6707bbd84b15a45c19c1b" - integrity sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.16" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" - integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== - -split2@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -ssri@^10.0.0, ssri@^10.0.5: - version "10.0.5" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" - integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== - dependencies: - minipass "^7.0.3" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -string-argv@0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string-width@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.1.0.tgz#d994252935224729ea3719c49f7206dc9c46550a" - integrity sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw== - dependencies: - emoji-regex "^10.3.0" - get-east-asian-width "^1.0.0" - strip-ansi "^7.1.0" - -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1, strip-ansi@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== - -strong-log-transformer@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" - integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== - dependencies: - duplexer "^0.1.1" - minimist "^1.2.0" - through "^2.3.4" - -stylelint-config-recommended-scss@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz#d3482c9817dada80b5ec01685b38fc8af8f7263f" - integrity sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw== - dependencies: - postcss-scss "^4.0.9" - stylelint-config-recommended "^14.0.0" - stylelint-scss "^6.0.0" - -stylelint-config-recommended@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz#b395c7014838d2aaca1755eebd914d0bb5274994" - integrity sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ== - -stylelint-config-standard-scss@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.0.0.tgz#fa65637d439a012a435213f73e00d3576eb925bb" - integrity sha512-WaLvkP689qSYUpJQPCo30TFJSSc3VzvvoWnrgp+7PpVby5o8fRUY1cZcP0sePZfjrFl9T8caGhcKg0GO34VDiQ== - dependencies: - stylelint-config-recommended-scss "^14.0.0" - stylelint-config-standard "^36.0.0" - -stylelint-config-standard@^36.0.0: - version "36.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz#6704c044d611edc12692d4a5e37b039a441604d4" - integrity sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug== - dependencies: - stylelint-config-recommended "^14.0.0" - -stylelint-prettier@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-5.0.0.tgz#515a87800228f6bea603966462f7119755ee9b82" - integrity sha512-RHfSlRJIsaVg5Br94gZVdWlz/rBTyQzZflNE6dXvSxt/GthWMY3gEHsWZEBaVGg7GM+XrtVSp4RznFlB7i0oyw== - dependencies: - prettier-linter-helpers "^1.0.0" - -stylelint-scss@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-6.1.0.tgz#b7ef162c417132e8df2b69d1759ae07395d54fb5" - integrity sha512-kCfK8TQzthGwb4vaZniZgxRsVbCM4ZckmT1b/H5m4FU3I8Dz0id9llKsy1NMp3XXqC8+OPD4rVKtUbSxXlJb5g== - dependencies: - known-css-properties "^0.29.0" - postcss-media-query-parser "^0.2.3" - postcss-resolve-nested-selector "^0.1.1" - postcss-selector-parser "^6.0.15" - postcss-value-parser "^4.2.0" - -stylelint@^16.2.1: - version "16.2.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-16.2.1.tgz#895d6d42523c5126ec0895f0ca2a58febeb77e89" - integrity sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA== - dependencies: - "@csstools/css-parser-algorithms" "^2.5.0" - "@csstools/css-tokenizer" "^2.2.3" - "@csstools/media-query-list-parser" "^2.1.7" - "@csstools/selector-specificity" "^3.0.1" - balanced-match "^2.0.0" - colord "^2.9.3" - cosmiconfig "^9.0.0" - css-functions-list "^3.2.1" - css-tree "^2.3.1" - debug "^4.3.4" - fast-glob "^3.3.2" - fastest-levenshtein "^1.0.16" - file-entry-cache "^8.0.0" - global-modules "^2.0.0" - globby "^11.1.0" - globjoin "^0.1.4" - html-tags "^3.3.1" - ignore "^5.3.0" - imurmurhash "^0.1.4" - is-plain-object "^5.0.0" - known-css-properties "^0.29.0" - mathml-tag-names "^2.1.3" - meow "^13.1.0" - micromatch "^4.0.5" - normalize-path "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.33" - postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^7.0.0" - postcss-selector-parser "^6.0.15" - postcss-value-parser "^4.2.0" - resolve-from "^5.0.0" - string-width "^4.2.3" - strip-ansi "^7.1.0" - supports-hyperlinks "^3.0.0" - svg-tags "^1.0.0" - table "^6.8.1" - write-file-atomic "^5.0.1" - -stylis@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" - integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" - integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - -tabbable@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" - integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== - -table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -temp-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa" - integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw== - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-extensions@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" - integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -"through@>=2.2.7 <3", through@^2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== - -tough-cookie@^4.1.2: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - -treeverse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" - integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== - -ts-api-utils@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.0.tgz#48c31073e7ae7868d27ffabef993a2de8c2b006f" - integrity sha512-d+3WxW4r8WQy2cZWpNRPPGExX8ffOLGcIhheUANKbL5Sqjbhkneki76fRAWeXkaslV2etTb4tSJBSxOsH5+CJw== - -ts-dedent@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" - integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== - -ts-node@^10.9.2: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== - dependencies: - "@cspotcode/source-map-support" "^0.8.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tuf-js@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.0.tgz#4daaa8620ba7545501d04dfa933c98abbcc959b9" - integrity sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg== - dependencies: - "@tufjs/models" "2.0.0" - debug "^4.3.4" - make-fetch-happen "^13.0.0" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^2.5.1: - version "2.19.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - -type-fest@^3.0.0, type-fest@^3.8.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - -type-fest@^4.2.0, type-fest@^4.6.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.10.1.tgz#35e6cd34d1fe331cf261d8ebb83e64788b89db4b" - integrity sha512-7ZnJYTp6uc04uYRISWtiX3DSKB/fxNQT0B5o1OUeCqiQiwF+JC9+rJiZIDrPrNCLLuTqyQmh4VdQqh/ZOkv9MQ== - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typescript@^5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== - -uglify-js@^3.1.4: - version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -unicorn-magic@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" - integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== - -unique-filename@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" - integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== - dependencies: - unique-slug "^4.0.0" - -unique-slug@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" - integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== - dependencies: - imurmurhash "^0.1.4" - -universal-user-agent@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" - integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -use-debounce@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-10.0.0.tgz#5091b18d6c16292605f588bae3c0d2cfae756ff2" - integrity sha512-XRjvlvCB46bah9IBXVnq/ACP2lxqXyZj0D9hj4K5OzNroMDpTEBg8Anuh1/UfRTRs7pLhQ+RiNxxwZu9+MVl1A== - -use-isomorphic-layout-effect@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" - integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== - -util-deprecate@^1.0.1, util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -uuid@^9.0.0, uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-to-istanbul@^9.0.1: - version "9.2.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" - integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - -validate-npm-package-license@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -validate-npm-package-name@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" - integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== - dependencies: - builtins "^5.0.0" - -vite@^5.0.12: - version "5.0.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" - integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== - dependencies: - esbuild "^0.19.3" - postcss "^8.4.32" - rollup "^4.2.0" - optionalDependencies: - fsevents "~2.3.3" - -w3c-xmlserializer@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" - integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== - dependencies: - xml-name-validator "^4.0.0" - -walk-up-path@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" - integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -wcwidth@^1.0.0, wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - dependencies: - defaults "^1.0.3" - -web-streams-polyfill@^3.0.3: - version "3.3.2" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b" - integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ== - -webcola@3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/webcola/-/webcola-3.4.0.tgz#490d26ae98e5b5109478b94a846a62ff6831a99d" - integrity sha512-4BiLXjXw3SJHo3Xd+rF+7fyClT6n7I+AR6TkBqyQ4kTsePSAMDLRCXY1f3B/kXJeP9tYn4G1TblxTO+jAt0gaw== - dependencies: - d3-dispatch "^1.0.3" - d3-drag "^1.0.4" - d3-shape "^1.3.5" - d3-timer "^1.0.5" - -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-encoding@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" - integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== - dependencies: - iconv-lite "0.6.3" - -whatwg-mimetype@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" - integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== - -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.13, which-typed-array@^1.1.14: - version "1.1.14" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" - integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== - dependencies: - available-typed-arrays "^1.0.6" - call-bind "^1.0.5" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.1" - -which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -which@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" - integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== - dependencies: - isexe "^3.1.1" - -wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrap-ansi@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" - integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== - dependencies: - ansi-styles "^6.2.1" - string-width "^7.0.0" - strip-ansi "^7.1.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" - integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" - -write-json-file@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-5.0.0.tgz#11c329a8ea9e8e23fb92a87cc27412a15f87708b" - integrity sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw== - dependencies: - detect-indent "^7.0.0" - is-plain-obj "^4.0.0" - sort-keys "^5.0.0" - write-file-atomic "^3.0.3" - -write-pkg@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-6.0.1.tgz#5b5ec22edf199f372b68c54d3f80b112c8463a6e" - integrity sha512-ZwKp0+CQCNrJbhHStRy6IVDnVjvD4gYy6MhQLKgBnl85oaiTNXhvtuox7AqvOSf1wta0YW4U5JidjpJnd1i8TA== - dependencies: - deepmerge-ts "^5.1.0" - read-pkg "^8.1.0" - sort-keys "^5.0.0" - type-fest "^4.6.0" - write-json-file "^5.0.0" - -ws@^8.11.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== - -xml-name-validator@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" - integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" - integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== - -yaml@^1.10.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^17.3.1, yargs@^17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd + languageName: node + linkType: hard + +"@adobe/css-tools@npm:^4.3.2": + version: 4.3.3 + resolution: "@adobe/css-tools@npm:4.3.3" + checksum: d21f3786b84911fee59c995a146644a85c98692979097b26484ffa9e442fb1a92ccd68ce984e3e7cf8d5933c3560fbc0ad3e3cd1de50b9a723d1c012e793bbcb + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" + dependencies: + "@babel/highlight": ^7.23.4 + chalk: ^2.4.2 + checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 + languageName: node + linkType: hard + +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/core@npm:7.23.9" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.23.9 + "@babel/parser": ^7.23.9 + "@babel/template": ^7.23.9 + "@babel/traverse": ^7.23.9 + "@babel/types": ^7.23.9 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 634a511f74db52a5f5a283c1121f25e2227b006c095b84a02a40a9213842489cd82dc7d61cdc74e10b5bcd9bb0a4e28bab47635b54c7e2256d47ab57356e2a76 + languageName: node + linkType: hard + +"@babel/core@npm:^7.23.5": + version: 7.23.7 + resolution: "@babel/core@npm:7.23.7" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helpers": ^7.23.7 + "@babel/parser": ^7.23.6 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.7 + "@babel/types": ^7.23.6 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: 32d5bf73372a47429afaae9adb0af39e47bcea6a831c4b5dcbb4791380cda6949cb8cb1a2fea8b60bb1ebe189209c80e333903df1fa8e9dcb04798c0ce5bf59e + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": + version: 7.23.6 + resolution: "@babel/generator@npm:7.23.6" + dependencies: + "@babel/types": ^7.23.6 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 1a1a1c4eac210f174cd108d479464d053930a812798e09fee069377de39a893422df5b5b146199ead7239ae6d3a04697b45fc9ac6e38e0f6b76374390f91fc6c + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" + dependencies: + "@babel/compat-data": ^7.23.5 + "@babel/helper-validator-option": ^7.23.5 + browserslist: ^4.22.2 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": + version: 7.23.10 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.10" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-member-expression-to-functions": ^7.23.0 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ff0730c21f0e73b9e314701bca6568bb5885dff2aa3c32b1e2e3d18ed2818f56851b9ffdbe2e8008c9bb94b265a1443883ae4c1ca5dde278ce71ac4218006d68 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + regexpu-core: ^5.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.5.0": + version: 0.5.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: d24626b819d3875cb65189d761004e9230f2b3fb60542525c4785616f4b2366741369235a864b744f54beb26d625ae4b0af0c9bb3306b61bf4fccb61e0620020 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" + dependencies: + "@babel/types": ^7.23.0 + checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-module-imports@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/helper-module-transforms@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.22.5 + resolution: "@babel/helper-plugin-utils@npm:7.22.5" + checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.22.15 + "@babel/helper-optimise-call-expression": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-simple-access@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/helper-string-parser@npm:7.23.4" + checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" + dependencies: + "@babel/helper-function-name": ^7.22.5 + "@babel/template": ^7.22.15 + "@babel/types": ^7.22.19 + checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.23.7": + version: 7.23.8 + resolution: "@babel/helpers@npm:7.23.8" + dependencies: + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.7 + "@babel/types": ^7.23.6 + checksum: 8b522d527921f8df45a983dc7b8e790c021250addf81ba7900ba016e165442a527348f6f877aa55e1debb3eef9e860a334b4e8d834e6c9b438ed61a63d9a7ad4 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/helpers@npm:7.23.9" + dependencies: + "@babel/template": ^7.23.9 + "@babel/traverse": ^7.23.9 + "@babel/types": ^7.23.9 + checksum: 2678231192c0471dbc2fc403fb19456cc46b1afefcfebf6bc0f48b2e938fdb0fef2e0fe90c8c8ae1f021dae5012b700372e4b5d15867f1d7764616532e4a6324 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" + bin: + parser: ./bin/babel-parser.js + checksum: 140801c43731a6c41fd193f5c02bc71fd647a0360ca616b23d2db8be4b9739b9f951a03fc7c2db4f9b9214f4b27c1074db0f18bc3fa653783082d5af7c8860d5 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.14.7, @babel/parser@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/parser@npm:7.23.9" + bin: + parser: ./bin/babel-parser.js + checksum: e7cd4960ac8671774e13803349da88d512f9292d7baa952173260d3e8f15620a28a3701f14f709d769209022f9e7b79965256b8be204fc550cfe783cdcabe7c7 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ddbaf2c396b7780f15e80ee01d6dd790db076985f3dfeb6527d1a8d4cacf370e49250396a3aa005b2c40233cac214a106232f83703d5e8491848bde273938232 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.23.3 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 434b9d710ae856fa1a456678cc304fbc93915af86d581ee316e077af746a709a741ea39d7e1d4f5b98861b629cc7e87f002d3138f5e836775632466d4c74aef2 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f88e400b548202a6f8c5dfd25bc4949a13ea1ccb64a170d7dea4deaa655a0fcb001d3fd61c35e1ad9c09a3d5f0d43f783400425471fe6d660ccaf33dabea9aba + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": ^7.12.13 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 883e6b35b2da205138caab832d54505271a3fee3fc1e8dc0894502434fc2b5d517cbe93bbfbfef8068a0fb6ec48ebc9eef3f605200a489065ba43d8cddc1c9a7 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9aed7661ffb920ca75df9f494757466ca92744e43072e0848d87fa4aa61a3f2ee5a22198ac1959856c036434b5614a8f46f1fb70298835dbe28220cdd1d4c11e + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.23.3 + resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.23.3, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.23.3 + resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: abfad3a19290d258b028e285a1f34c9b8a0cbe46ef79eafed4ed7ffce11b5d0720b5e536c82f91cbd8442cde35a3dd8e861fa70366d87ff06fdc0d4756e30876 + languageName: node + linkType: hard + +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1e99118176e5366c2636064d09477016ab5272b2a92e78b8edb571d20bc3eaa881789a905b20042942c3c2d04efc530726cf703f937226db5ebc495f5d067e66 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.20 + "@babel/plugin-syntax-async-generators": ^7.8.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d402494087a6b803803eb5ab46b837aab100a04c4c5148e38bfa943ea1bbfc1ecfb340f1ced68972564312d3580f550c125f452372e77607a558fbbaf98c31c0 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" + dependencies: + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2e9d9795d4b3b3d8090332104e37061c677f29a1ce65bcbda4099a32d243e5d9520270a44bbabf0fb1fb40d463bd937685b1a1042e646979086c546d55319c3c + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e63b16d94ee5f4d917e669da3db5ea53d1e7e79141a2ec873c1e644678cdafe98daa556d0d359963c827863d6b3665d23d4938a94a4c5053a1619c4ebd01d020 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fc4b2100dd9f2c47d694b4b35ae8153214ccb4e24ef545c259a9db17211b18b6a430f22799b56db8f6844deaeaa201af45a03331d0c80cc28b0c4e3c814570e4 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9c6f8366f667897541d360246de176dd29efc7a13d80a5b48361882f7173d9173be4646c3b7d9b003ccc0e01e25df122330308f33db921fa553aa17ad544b3fc + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: c8bfaba19a674fc2eb54edad71e958647360474e3163e8226f1acd63e4e2dbec32a171a0af596c1dc5359aee402cc120fea7abd1fb0e0354b6527f0fc9e8aa1e + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.23.8": + version: 7.23.8 + resolution: "@babel/plugin-transform-classes@npm:7.23.8" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-split-export-declaration": ^7.22.6 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7dee6cebe52131d2d16944f36e1fdb9d4b24f44d0e7e450f93a44435d001f17cc0789a4cb6b15ec67c8e484581b8a730b5c3ec374470f29ff0133086955b8c58 + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/template": ^7.22.15 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 80452661dc25a0956f89fe98cb562e8637a9556fb6c00d312c57653ce7df8798f58d138603c7e1aad96614ee9ccd10c47e50ab9ded6b6eded5adeb230d2a982e + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9e015099877272501162419bfe781689aec5c462cd2aec752ee22288f209eec65969ff11b8fdadca2eaddea71d705d3bba5b9c60752fcc1be67874fcec687105 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a2dbbf7f1ea16a97948c37df925cb364337668c41a3948b8d91453f140507bd8a3429030c7ce66d09c299987b27746c19a2dd18b6f17dcb474854b14fd9159a3 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c2a21c34dc0839590cd945192cbc46fde541a27e140c48fe1808315934664cdbf18db64889e23c4eeb6bad9d3e049482efdca91d29de5734ffc887c4fbabaa16 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 57a722604c430d9f3dacff22001a5f31250e34785d4969527a2ae9160fa86858d0892c5b9ff7a06a04076f8c76c9e6862e0541aadca9c057849961343aab0845 + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 00d05ab14ad0f299160fcf9d8f55a1cc1b740e012ab0b5ce30207d2365f091665115557af7d989cd6260d075a252d9e4283de5f2b247dfbbe0e42ae586e6bf66 + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9f770a81bfd03b48d6ba155d452946fd56d6ffe5b7d871e9ec2a0b15e0f424273b632f3ed61838b90015b25bbda988896b7a46c7d964fbf8f6feb5820b309f93 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/plugin-transform-for-of@npm:7.23.6" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 228c060aa61f6aa89dc447170075f8214863b94f830624e74ade99c1a09316897c12d76e848460b0b506593e58dbc42739af6dc4cb0fe9b84dffe4a596050a36 + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-function-name@npm:7.23.3" + dependencies: + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 355c6dbe07c919575ad42b2f7e020f320866d72f8b79181a16f8e0cd424a2c761d979f03f47d583d9471b55dcd68a8a9d829b58e1eebcd572145b934b48975a6 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" + dependencies: + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cec6abeae6be66fd1a5940c482fe9ff94b689c71fcf4147e179119e4accd09d17d476e36528bc9cb4ab0ec6728fedf48b1c49d0551ea707fb192575d8eac9167 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": ^7.23.3 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 586a7a2241e8b4e753a37af9466a9ffa8a67b4ba9aa756ad7500712c05d8fa9a8c1ed4f7bd25fae2a8265e6cf8fe781ec85a8ee885dd34cf50d8955ee65f12dc + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-new-target@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e5053389316fce73ad5201b7777437164f333e24787fbcda4ae489cd2580dbbbdfb5694a7237bad91fabb46b591d771975d69beb1c740b82cb4761625379f00b + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a27d73ea134d3d9560a6b2e26ab60012fba15f1db95865aa0153c18f5ec82cfef6a7b3d8df74e3c2fca81534fa5efeb6cacaf7b08bdb7d123e3dafdd079886a3 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6ba0e5db3c620a3ec81f9e94507c821f483c15f196868df13fa454cbac719a5449baf73840f5b6eb7d77311b24a2cf8e45db53700d41727f693d46f7caf3eec3 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" + dependencies: + "@babel/compat-data": ^7.23.3 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 73fec495e327ca3959c1c03d07a621be09df00036c69fff0455af9a008291677ee9d368eec48adacdc6feac703269a649747568b4af4c4e9f134aa71cc5b378d + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-object-super@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e495497186f621fa79026e183b4f1fbb172fd9df812cbd2d7f02c05b08adbe58012b1a6eb6dd58d11a30343f6ec80d0f4074f9b501d70aa1c94df76d59164c53 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d50b5ee142cdb088d8b5de1ccf7cea85b18b85d85b52f86618f6e45226372f01ad4cdb29abd4fd35ea99a71fefb37009e0107db7a787dcc21d4d402f97470faf + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e7a4c08038288057b7a08d68c4d55396ada9278095509ca51ed8dfb72a7f13f26bdd7c5185de21079fe0a9d60d22c227cb32e300d266c1bda40f70eee9f4bc1e + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-parameters@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a735b3e85316d17ec102e3d3d1b6993b429bdb3b494651c9d754e3b7d270462ee1f1a126ccd5e3d871af5e683727e9ef98c9d34d4a42204fffaabff91052ed16 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cedc1285c49b5a6d9a3d0e5e413b756ac40b3ac2f8f68bdfc3ae268bc8d27b00abd8bb0861c72756ff5dd8bf1eb77211b7feb5baf4fdae2ebbaabe49b9adc1d0 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fb7adfe94ea97542f250a70de32bddbc3e0b802381c92be947fec83ebffda57e68533c4d0697152719a3496fdd3ebf3798d451c024cd4ac848fc15ac26b70aa7 + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 16b048c8e87f25095f6d53634ab7912992f78e6997a6ff549edc3cf519db4fca01c7b4e0798530d7f6a05228ceee479251245cdd850a5531c6e6f404104d6cc9 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-display-name@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": + version: 7.23.4 + resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/types": ^7.23.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a + languageName: node + linkType: hard + +"@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9ea3698b1d422561d93c0187ac1ed8f2367e4250b10e259785ead5aa643c265830fd0f4cf5087a5bedbc4007444c06da2f2006686613220acf0949895f453666 + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + regenerator-transform: ^0.15.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7fdacc7b40008883871b519c9e5cdea493f75495118ccc56ac104b874983569a24edd024f0f5894ba1875c54ee2b442f295d6241c3280e61c725d0dd3317c8e6 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 298c4440ddc136784ff920127cea137168e068404e635dc946ddb5d7b2a27b66f1dd4c4acb01f7184478ff7d5c3e7177a127279479926519042948fb7fa0fa48 + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5d677a03676f9fff969b0246c423d64d77502e90a832665dc872a5a5e05e5708161ce1effd56bb3c0f2c20a1112fca874be57c8a759d8b08152755519281f326 + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-spread@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8fd5cac201e77a0b4825745f4e07a25f923842f282f006b3a79223c00f61075c8868d12eafec86b2642cd0b32077cdd32314e27bcb75ee5e6a68c0144140dcf2 + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.23.3": + version: 7.23.6 + resolution: "@babel/plugin-transform-typescript@npm:7.23.6" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.23.6 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-typescript": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0462241843d14dff9f1a4c49ab182a6f01a5f7679957c786b08165dac3e8d49184011f05ca204183d164c54b9d3496d1b3005f904fa8708e394e6f15bf5548e6 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2298461a194758086d17c23c26c7de37aa533af910f9ebf31ebd0893d4aa317468043d23f73edc782ec21151d3c46cf0ff8098a83b725c49a59de28a1d4d6225 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c5f835d17483ba899787f92e313dfa5b0055e3deab332f1d254078a2bba27ede47574b6599fcf34d3763f0c048ae0779dc21d2d8db09295edb4057478dc80a9a + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 79d0b4c951955ca68235c87b91ab2b393c96285f8aeaa34d6db416d2ddac90000c9bd6e8c4d82b60a2b484da69930507245035f28ba63c6cae341cf3ba68fdef + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/preset-env@npm:7.23.9" + dependencies: + "@babel/compat-data": ^7.23.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.7 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.23.3 + "@babel/plugin-syntax-import-attributes": ^7.23.3 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.23.3 + "@babel/plugin-transform-async-generator-functions": ^7.23.9 + "@babel/plugin-transform-async-to-generator": ^7.23.3 + "@babel/plugin-transform-block-scoped-functions": ^7.23.3 + "@babel/plugin-transform-block-scoping": ^7.23.4 + "@babel/plugin-transform-class-properties": ^7.23.3 + "@babel/plugin-transform-class-static-block": ^7.23.4 + "@babel/plugin-transform-classes": ^7.23.8 + "@babel/plugin-transform-computed-properties": ^7.23.3 + "@babel/plugin-transform-destructuring": ^7.23.3 + "@babel/plugin-transform-dotall-regex": ^7.23.3 + "@babel/plugin-transform-duplicate-keys": ^7.23.3 + "@babel/plugin-transform-dynamic-import": ^7.23.4 + "@babel/plugin-transform-exponentiation-operator": ^7.23.3 + "@babel/plugin-transform-export-namespace-from": ^7.23.4 + "@babel/plugin-transform-for-of": ^7.23.6 + "@babel/plugin-transform-function-name": ^7.23.3 + "@babel/plugin-transform-json-strings": ^7.23.4 + "@babel/plugin-transform-literals": ^7.23.3 + "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 + "@babel/plugin-transform-member-expression-literals": ^7.23.3 + "@babel/plugin-transform-modules-amd": ^7.23.3 + "@babel/plugin-transform-modules-commonjs": ^7.23.3 + "@babel/plugin-transform-modules-systemjs": ^7.23.9 + "@babel/plugin-transform-modules-umd": ^7.23.3 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 + "@babel/plugin-transform-new-target": ^7.23.3 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 + "@babel/plugin-transform-numeric-separator": ^7.23.4 + "@babel/plugin-transform-object-rest-spread": ^7.23.4 + "@babel/plugin-transform-object-super": ^7.23.3 + "@babel/plugin-transform-optional-catch-binding": ^7.23.4 + "@babel/plugin-transform-optional-chaining": ^7.23.4 + "@babel/plugin-transform-parameters": ^7.23.3 + "@babel/plugin-transform-private-methods": ^7.23.3 + "@babel/plugin-transform-private-property-in-object": ^7.23.4 + "@babel/plugin-transform-property-literals": ^7.23.3 + "@babel/plugin-transform-regenerator": ^7.23.3 + "@babel/plugin-transform-reserved-words": ^7.23.3 + "@babel/plugin-transform-shorthand-properties": ^7.23.3 + "@babel/plugin-transform-spread": ^7.23.3 + "@babel/plugin-transform-sticky-regex": ^7.23.3 + "@babel/plugin-transform-template-literals": ^7.23.3 + "@babel/plugin-transform-typeof-symbol": ^7.23.3 + "@babel/plugin-transform-unicode-escapes": ^7.23.3 + "@babel/plugin-transform-unicode-property-regex": ^7.23.3 + "@babel/plugin-transform-unicode-regex": ^7.23.3 + "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 + "@babel/preset-modules": 0.1.6-no-external-plugins + babel-plugin-polyfill-corejs2: ^0.4.8 + babel-plugin-polyfill-corejs3: ^0.9.0 + babel-plugin-polyfill-regenerator: ^0.5.5 + core-js-compat: ^3.31.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 23a48468ba820c68ba34ea2c1dbc62fd2ff9cf858cfb69e159cabb0c85c72dc4c2266ce20ca84318d8742de050cb061e7c66902fbfddbcb09246afd248847933 + languageName: node + linkType: hard + +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 + languageName: node + linkType: hard + +"@babel/preset-react@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/preset-react@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-transform-react-display-name": ^7.23.3 + "@babel/plugin-transform-react-jsx": ^7.22.15 + "@babel/plugin-transform-react-jsx-development": ^7.22.5 + "@babel/plugin-transform-react-pure-annotations": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2d90961e7e627a74b44551e88ad36a440579e283e8dc27972bf2f50682152bbc77228673a3ea22c0e0d005b70cbc487eccd64897c5e5e0384e5ce18f300b21eb + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/preset-typescript@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-syntax-jsx": ^7.23.3 + "@babel/plugin-transform-modules-commonjs": ^7.23.3 + "@babel/plugin-transform-typescript": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 105a2d39bbc464da0f7e1ad7f535c77c5f62d6b410219355b20e552e7d29933567a5c55339b5d0aec1a5c7a0a7dfdf1b54aae601a4fe15a157d54dcbfcb3e854 + languageName: node + linkType: hard + +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": + version: 7.23.9 + resolution: "@babel/runtime@npm:7.23.9" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: 6bbebe8d27c0c2dd275d1ac197fc1a6c00e18dab68cc7aaff0adc3195b45862bae9c4cc58975629004b0213955b2ed91e99eccb3d9b39cabea246c657323d667 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.9.2": + version: 7.23.8 + resolution: "@babel/runtime@npm:7.23.8" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: 0bd5543c26811153822a9f382fd39886f66825ff2a397a19008011376533747cd05c33a91f6248c0b8b0edf0448d7c167ebfba34786088f1b7eb11c65be7dfc3 + languageName: node + linkType: hard + +"@babel/template@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd + languageName: node + linkType: hard + +"@babel/template@npm:^7.23.9, @babel/template@npm:^7.3.3": + version: 7.23.9 + resolution: "@babel/template@npm:7.23.9" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/parser": ^7.23.9 + "@babel/types": ^7.23.9 + checksum: 6e67414c0f7125d7ecaf20c11fab88085fa98a96c3ef10da0a61e962e04fdf3a18a496a66047005ddd1bb682a7cc7842d556d1db2f3f3f6ccfca97d5e445d342 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.23.7": + version: 7.23.7 + resolution: "@babel/traverse@npm:7.23.7" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.6 + "@babel/types": ^7.23.6 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: d4a7afb922361f710efc97b1e25ec343fab8b2a4ddc81ca84f9a153f22d4482112cba8f263774be8d297918b6c4767c7a98988ab4e53ac73686c986711dd002e + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/traverse@npm:7.23.9" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/generator": ^7.23.6 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.9 + "@babel/types": ^7.23.9 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: a932f7aa850e158c00c97aad22f639d48c72805c687290f6a73e30c5c4957c07f5d28310c9bf59648e2980fe6c9d16adeb2ff92a9ca0f97fa75739c1328fc6c3 + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/types@npm:7.23.6" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 68187dbec0d637f79bc96263ac95ec8b06d424396678e7e225492be866414ce28ebc918a75354d4c28659be6efe30020b4f0f6df81cc418a2d30645b690a8de0 + languageName: node + linkType: hard + +"@babel/types@npm:^7.22.19, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.9 + resolution: "@babel/types@npm:7.23.9" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 0a9b008e9bfc89beb8c185e620fa0f8ed6c771f1e1b2e01e1596870969096fec7793898a1d64a035176abf1dd13e2668ee30bf699f2d92c210a8128f4b151e65 + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + languageName: node + linkType: hard + +"@csstools/css-parser-algorithms@npm:^2.5.0": + version: 2.5.0 + resolution: "@csstools/css-parser-algorithms@npm:2.5.0" + peerDependencies: + "@csstools/css-tokenizer": ^2.2.3 + checksum: 6bfbdb4052acca48de9db0806a1b18458709103390656634ebe3cf0390048a6e9b304b78173fbcd524e03669dacb5cc3bedbe8008c354ff9511aed4935dcfc6f + languageName: node + linkType: hard + +"@csstools/css-tokenizer@npm:^2.2.3": + version: 2.2.3 + resolution: "@csstools/css-tokenizer@npm:2.2.3" + checksum: a2a69f0de516046f85b8f47916879780f9712bdda8166ab01dd47613515ff5a0771555c78badd220686bc1dae3cb0eea5de6896e1e326247a276cc8965520aa6 + languageName: node + linkType: hard + +"@csstools/media-query-list-parser@npm:^2.1.7": + version: 2.1.7 + resolution: "@csstools/media-query-list-parser@npm:2.1.7" + peerDependencies: + "@csstools/css-parser-algorithms": ^2.5.0 + "@csstools/css-tokenizer": ^2.2.3 + checksum: f910d9c29c84e828d121f451607fe9c275297041f317075ede935ffacdd7fd53fcbc0dd4993585e405b5337b7f991b864d101dff3cb8fc400e8c32a9aedbfe69 + languageName: node + linkType: hard + +"@csstools/selector-specificity@npm:^3.0.1": + version: 3.0.1 + resolution: "@csstools/selector-specificity@npm:3.0.1" + peerDependencies: + postcss-selector-parser: ^6.0.13 + checksum: e4b5aac3bd3ca1f824cb9578f52b16046a519aa8050ce291da37e611976a83cd3b2b2f908d2678dd4cbbe00bbde8ec28c34fffc40dbbf9a13608dfcaf382ee80 + languageName: node + linkType: hard + +"@datamapper-poc/ui@workspace:packages/ui": + version: 0.0.0-use.local + resolution: "@datamapper-poc/ui@workspace:packages/ui" + dependencies: + "@babel/core": ^7.23.9 + "@babel/preset-env": ^7.23.9 + "@babel/preset-react": ^7.23.3 + "@babel/preset-typescript": ^7.23.3 + "@patternfly/react-core": ^5.1.2 + "@patternfly/react-table": ^5.1.2 + "@patternfly/react-topology": ^5.1.0 + "@storybook/addon-actions": ^7.6.12 + "@storybook/addon-knobs": ^7.0.2 + "@testing-library/jest-dom": ^6.3.0 + "@types/jest": ^29.5.12 + "@types/node": ^20.11.6 + "@types/pako": ^2.0.3 + "@types/react": ^18.2.53 + "@types/react-dom": ^18.2.18 + "@typescript-eslint/eslint-plugin": ^6.21.0 + "@typescript-eslint/parser": ^6.21.0 + "@vitejs/plugin-react": ^4.2.1 + d3-scale: ^4.0.2 + d3-shape: ^3.2.0 + eslint: ^8.56.0 + eslint-config-prettier: ^9.1.0 + eslint-plugin-import: ^2.29.1 + eslint-plugin-jest: ^27.6.3 + eslint-plugin-prettier: ^5.1.3 + eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-refresh: ^0.4.5 + fast-xml-parser: ^4.3.4 + file-saver: ^2.0.5 + jest: ^29.7.0 + jest-canvas-mock: ^2.5.2 + jest-environment-jsdom: ^29.7.0 + loglevel: ^1.9.1 + pako: ^2.1.0 + prettier: ^3.2.5 + react: ^18.2.0 + react-dnd: ^16.0.1 + react-dnd-html5-backend: ^16.0.1 + react-dnd-touch-backend: ^16.0.1 + react-dom: ^18.2.0 + react-sage: ^0.3.16 + react-use-gesture: ^9.1.3 + sass: ^1.70.0 + saxon-js: ^2.6.0 + stylelint: ^16.2.1 + stylelint-config-standard-scss: ^13.0.0 + stylelint-prettier: ^5.0.0 + ts-node: ^10.9.2 + typescript: ^5.3.3 + use-debounce: ^10.0.0 + vite: ^5.0.12 + languageName: unknown + linkType: soft + +"@emotion/babel-plugin@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/babel-plugin@npm:11.11.0" + dependencies: + "@babel/helper-module-imports": ^7.16.7 + "@babel/runtime": ^7.18.3 + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/serialize": ^1.1.2 + babel-plugin-macros: ^3.1.0 + convert-source-map: ^1.5.0 + escape-string-regexp: ^4.0.0 + find-root: ^1.1.0 + source-map: ^0.5.7 + stylis: 4.2.0 + checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9 + languageName: node + linkType: hard + +"@emotion/cache@npm:^11.11.0, @emotion/cache@npm:^11.4.0": + version: 11.11.0 + resolution: "@emotion/cache@npm:11.11.0" + dependencies: + "@emotion/memoize": ^0.8.1 + "@emotion/sheet": ^1.2.2 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + stylis: 4.2.0 + checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.9.1": + version: 0.9.1 + resolution: "@emotion/hash@npm:0.9.1" + checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 + languageName: node + linkType: hard + +"@emotion/memoize@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/memoize@npm:0.8.1" + checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 + languageName: node + linkType: hard + +"@emotion/react@npm:^11.8.1": + version: 11.11.3 + resolution: "@emotion/react@npm:11.11.3" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/cache": ^11.11.0 + "@emotion/serialize": ^1.1.3 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + hoist-non-react-statics: ^3.3.1 + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 2e4b223591569f0a41686d5bd72dc8778629b7be33267e4a09582979e6faee4d7218de84e76294ed827058d4384d75557b5d71724756539c1f235e9a69e62b2e + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3": + version: 1.1.3 + resolution: "@emotion/serialize@npm:1.1.3" + dependencies: + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/unitless": ^0.8.1 + "@emotion/utils": ^1.2.1 + csstype: ^3.0.2 + checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063 + languageName: node + linkType: hard + +"@emotion/sheet@npm:^1.2.2": + version: 1.2.2 + resolution: "@emotion/sheet@npm:1.2.2" + checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/unitless@npm:0.8.1" + checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 + languageName: node + linkType: hard + +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": + version: 1.0.1 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" + peerDependencies: + react: ">=16.8.0" + checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/utils@npm:1.2.1" + checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.3.1": + version: 0.3.1 + resolution: "@emotion/weak-memoize@npm:0.3.1" + checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/aix-ppc64@npm:0.19.12" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-arm64@npm:0.19.12" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-arm@npm:0.19.12" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/android-x64@npm:0.19.12" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/darwin-arm64@npm:0.19.12" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/darwin-x64@npm:0.19.12" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/freebsd-arm64@npm:0.19.12" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/freebsd-x64@npm:0.19.12" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-arm64@npm:0.19.12" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-arm@npm:0.19.12" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-ia32@npm:0.19.12" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-loong64@npm:0.19.12" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-mips64el@npm:0.19.12" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-ppc64@npm:0.19.12" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-riscv64@npm:0.19.12" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-s390x@npm:0.19.12" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/linux-x64@npm:0.19.12" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/netbsd-x64@npm:0.19.12" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/openbsd-x64@npm:0.19.12" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/sunos-x64@npm:0.19.12" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-arm64@npm:0.19.12" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-ia32@npm:0.19.12" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.19.12": + version: 0.19.12 + resolution: "@esbuild/win32-x64@npm:0.19.12" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.6.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 + languageName: node + linkType: hard + +"@eslint/js@npm:8.56.0": + version: 8.56.0 + resolution: "@eslint/js@npm:8.56.0" + checksum: 5804130574ef810207bdf321c265437814e7a26f4e6fac9b496de3206afd52f533e09ec002a3be06cd9adcc9da63e727f1883938e663c4e4751c007d5b58e539 + languageName: node + linkType: hard + +"@floating-ui/core@npm:^1.6.0": + version: 1.6.0 + resolution: "@floating-ui/core@npm:1.6.0" + dependencies: + "@floating-ui/utils": ^0.2.1 + checksum: 2e25c53b0c124c5c9577972f8ae21d081f2f7895e6695836a53074463e8c65b47722744d6d2b5a993164936da006a268bcfe87fe68fd24dc235b1cb86bed3127 + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.0.1": + version: 1.6.1 + resolution: "@floating-ui/dom@npm:1.6.1" + dependencies: + "@floating-ui/core": ^1.6.0 + "@floating-ui/utils": ^0.2.1 + checksum: 5565e4dee612bab62950913c311d75d3f773bd1d9dc437f7e33b46340f32ec565733c995c6185381adaf64e627df3c79901d0a9d555f58c02509d0764bceb57d + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.2.1": + version: 0.2.1 + resolution: "@floating-ui/utils@npm:0.2.1" + checksum: 9ed4380653c7c217cd6f66ae51f20fdce433730dbc77f95b5abfb5a808f5fdb029c6ae249b4e0490a816f2453aa6e586d9a873cd157fdba4690f65628efc6e06 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.11.13": + version: 0.11.14 + resolution: "@humanwhocodes/config-array@npm:0.11.14" + dependencies: + "@humanwhocodes/object-schema": ^2.0.2 + debug: ^4.3.1 + minimatch: ^3.0.5 + checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^2.0.2": + version: 2.0.2 + resolution: "@humanwhocodes/object-schema@npm:2.0.2" + checksum: 2fc11503361b5fb4f14714c700c02a3f4c7c93e9acd6b87a29f62c522d90470f364d6161b03d1cc618b979f2ae02aed1106fd29d302695d8927e2fc8165ba8ee + languageName: node + linkType: hard + +"@hutson/parse-repository-url@npm:^5.0.0": + version: 5.0.0 + resolution: "@hutson/parse-repository-url@npm:5.0.0" + checksum: 8adce66fd62e339382191f32a90708fab4c65560124b67a06262c57815706944a2f894d33f9bd8dd97180fd80accc0c3d1d5b5138ab86ed10ee071cb487d5983 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@isaacs/string-locale-compare@npm:^1.1.0": + version: 1.1.0 + resolution: "@isaacs/string-locale-compare@npm:1.1.0" + checksum: 7287da5d11497b82c542d3c2abe534808015be4f4883e71c26853277b5456f6bbe4108535db847a29f385ad6dc9318ffb0f55ee79bb5f39993233d7dccf8751d + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: ^5.3.1 + find-up: ^4.1.0 + get-package-type: ^0.1.0 + js-yaml: ^3.13.1 + resolve-from: ^5.0.0 + checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 + languageName: node + linkType: hard + +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/reporters": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + ci-info: ^3.2.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-changed-files: ^29.7.0 + jest-config: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-resolve-dependencies: ^29.7.0 + jest-runner: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + jest-watcher: ^29.7.0 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-ansi: ^6.0.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d + languageName: node + linkType: hard + +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed + languageName: node + linkType: hard + +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: ^29.7.0 + jest-snapshot: ^29.7.0 + checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@sinonjs/fake-timers": ^10.0.2 + "@types/node": "*" + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 + languageName: node + linkType: hard + +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/types": ^29.6.3 + jest-mock: ^29.7.0 + checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 + languageName: node + linkType: hard + +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": ^0.2.3 + "@jest/console": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + "@types/node": "*" + chalk: ^4.0.0 + collect-v8-coverage: ^1.0.0 + exit: ^0.1.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + istanbul-lib-coverage: ^3.0.0 + istanbul-lib-instrument: ^6.0.0 + istanbul-lib-report: ^3.0.0 + istanbul-lib-source-maps: ^4.0.0 + istanbul-reports: ^3.1.3 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + slash: ^3.0.0 + string-length: ^4.0.1 + strip-ansi: ^6.0.0 + v8-to-istanbul: ^9.0.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" + dependencies: + "@jridgewell/trace-mapping": ^0.3.18 + callsites: ^3.0.0 + graceful-fs: ^4.2.9 + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb + languageName: node + linkType: hard + +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + collect-v8-coverage: ^1.0.0 + checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + slash: ^3.0.0 + checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd + languageName: node + linkType: hard + +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + babel-plugin-istanbul: ^6.1.1 + chalk: ^4.0.0 + convert-source-map: ^2.0.0 + fast-json-stable-stringify: ^2.1.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + micromatch: ^4.0.4 + pirates: ^4.0.4 + slash: ^3.0.0 + write-file-atomic: ^4.0.2 + checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab + languageName: node + linkType: hard + +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": ^3.0.3 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.22 + resolution: "@jridgewell/trace-mapping@npm:0.3.22" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: ac7dd2cfe0b479aa1b81776d40d789243131cc792dc8b6b6a028c70fcd6171958ae1a71bf67b618ffe3c0c3feead9870c095ee46a5e30319410d92976b28f498 + languageName: node + linkType: hard + +"@lerna-lite/cli@npm:3.2.1, @lerna-lite/cli@npm:^3.0.0": + version: 3.2.1 + resolution: "@lerna-lite/cli@npm:3.2.1" + dependencies: + "@lerna-lite/core": 3.2.1 + "@lerna-lite/init": 3.2.1 + dedent: ^1.5.1 + dotenv: ^16.3.1 + import-local: ^3.1.0 + load-json-file: ^7.0.1 + npmlog: ^7.0.1 + yargs: ^17.7.2 + peerDependenciesMeta: + "@lerna-lite/exec": + optional: true + "@lerna-lite/list": + optional: true + "@lerna-lite/publish": + optional: true + "@lerna-lite/run": + optional: true + "@lerna-lite/version": + optional: true + "@lerna-lite/watch": + optional: true + bin: + lerna: dist/cli.js + checksum: bf5bf97f78e9078e2b48e80273d310034ace09fa8a7822ec9491c37bf420bc7a9fad006763d50cba15b8e8c8a2faf7dd38f7469f9ef032afbcedd8794e7262eb + languageName: node + linkType: hard + +"@lerna-lite/core@npm:3.2.1": + version: 3.2.1 + resolution: "@lerna-lite/core@npm:3.2.1" + dependencies: + "@npmcli/run-script": ^7.0.3 + chalk: ^5.3.0 + clone-deep: ^4.0.1 + config-chain: ^1.1.13 + cosmiconfig: ^9.0.0 + dedent: ^1.5.1 + execa: ^8.0.1 + fs-extra: ^11.2.0 + glob-parent: ^6.0.2 + globby: ^14.0.0 + inquirer: ^9.2.12 + is-ci: ^3.0.1 + json5: ^2.2.3 + load-json-file: ^7.0.1 + minimatch: ^9.0.3 + npm-package-arg: ^11.0.1 + npmlog: ^7.0.1 + p-map: ^7.0.1 + p-queue: ^8.0.1 + resolve-from: ^5.0.0 + semver: ^7.5.4 + slash: ^5.1.0 + strong-log-transformer: ^2.1.0 + write-file-atomic: ^5.0.1 + write-json-file: ^5.0.0 + write-pkg: ^6.0.1 + checksum: fbef0a63c1d4985c6a066b427bbf84e88f184671a703aebbcf8412bd40354edccb47dbcdb24776e635466d191194ec73cfa38cc03bf5167fdb3c527ec64d2669 + languageName: node + linkType: hard + +"@lerna-lite/init@npm:3.2.1": + version: 3.2.1 + resolution: "@lerna-lite/init@npm:3.2.1" + dependencies: + "@lerna-lite/core": 3.2.1 + fs-extra: ^11.2.0 + p-map: ^7.0.1 + write-json-file: ^5.0.0 + checksum: 0aae06bd3c4e8b3087affe6e0e1d00a14692e3229b7cf5a15f5c8327b5378c9aad3caa5fd1f9740e3de896d2780e42d252fbb5a699f83690c35172bda9a7088d + languageName: node + linkType: hard + +"@lerna-lite/publish@npm:^3.0.0": + version: 3.2.1 + resolution: "@lerna-lite/publish@npm:3.2.1" + dependencies: + "@lerna-lite/cli": 3.2.1 + "@lerna-lite/core": 3.2.1 + "@lerna-lite/version": 3.2.1 + "@npmcli/arborist": ^7.3.0 + byte-size: ^8.1.1 + chalk: ^5.3.0 + columnify: ^1.6.0 + fs-extra: ^11.2.0 + glob: ^10.3.10 + has-unicode: ^2.0.1 + libnpmaccess: ^8.0.2 + libnpmpublish: ^9.0.3 + normalize-path: ^3.0.0 + npm-package-arg: ^11.0.1 + npm-packlist: ^8.0.2 + npm-registry-fetch: ^16.1.0 + npmlog: ^7.0.1 + p-map: ^7.0.1 + p-pipe: ^4.0.0 + pacote: ^17.0.5 + pify: ^6.1.0 + read-package-json: ^7.0.0 + semver: ^7.5.4 + ssri: ^10.0.5 + tar: ^6.2.0 + temp-dir: ^3.0.0 + checksum: f7f61615e6e990d71afde1e8770bb60104d9b193b6b854687b777a10b61d2f097a84ab051ab1a7c35686ffed7203b74c9115ddf1798eae442f63e023ca72aaba + languageName: node + linkType: hard + +"@lerna-lite/version@npm:3.2.1, @lerna-lite/version@npm:^3.0.0": + version: 3.2.1 + resolution: "@lerna-lite/version@npm:3.2.1" + dependencies: + "@lerna-lite/cli": 3.2.1 + "@lerna-lite/core": 3.2.1 + "@octokit/plugin-enterprise-rest": ^6.0.1 + "@octokit/rest": ^20.0.2 + chalk: ^5.3.0 + conventional-changelog-angular: ^7.0.0 + conventional-changelog-core: ^7.0.0 + conventional-changelog-writer: ^7.0.1 + conventional-commits-parser: ^5.0.0 + conventional-recommended-bump: ^9.0.0 + dedent: ^1.5.1 + fs-extra: ^11.2.0 + get-stream: ^8.0.1 + git-url-parse: ^14.0.0 + graceful-fs: ^4.2.11 + is-stream: ^3.0.0 + load-json-file: ^7.0.1 + make-dir: ^4.0.0 + minimatch: ^9.0.3 + new-github-release-url: ^2.0.0 + node-fetch: ^3.3.2 + npm-package-arg: ^11.0.1 + npmlog: ^7.0.1 + p-map: ^7.0.1 + p-pipe: ^4.0.0 + p-reduce: ^3.0.0 + pify: ^6.1.0 + semver: ^7.5.4 + slash: ^5.1.0 + temp-dir: ^3.0.0 + uuid: ^9.0.1 + write-json-file: ^5.0.0 + checksum: 01c5f1ed0bc5111aa9ebab980a7dcc560fb3fad408a6b7d0dd4f6248e236f618fde83eae47788a5071795742e3a91ad21f6ef966fdcf3b752a8abe269aaaf9d0 + languageName: node + linkType: hard + +"@ljharb/through@npm:^2.3.11": + version: 2.3.11 + resolution: "@ljharb/through@npm:2.3.11" + dependencies: + call-bind: ^1.0.2 + checksum: 10502726028b8a4e0b270a2213e546821c04ed8d7fe411009a8e47497e4ae99c57eeb9ff3d13620ebdefd7c856b16fc873f27c433cad60465dc132fb4b997233 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.0 + resolution: "@npmcli/agent@npm:2.2.0" + dependencies: + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.1 + checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4 + languageName: node + linkType: hard + +"@npmcli/arborist@npm:^7.3.0": + version: 7.3.1 + resolution: "@npmcli/arborist@npm:7.3.1" + dependencies: + "@isaacs/string-locale-compare": ^1.1.0 + "@npmcli/fs": ^3.1.0 + "@npmcli/installed-package-contents": ^2.0.2 + "@npmcli/map-workspaces": ^3.0.2 + "@npmcli/metavuln-calculator": ^7.0.0 + "@npmcli/name-from-folder": ^2.0.0 + "@npmcli/node-gyp": ^3.0.0 + "@npmcli/package-json": ^5.0.0 + "@npmcli/query": ^3.0.1 + "@npmcli/run-script": ^7.0.2 + bin-links: ^4.0.1 + cacache: ^18.0.0 + common-ancestor-path: ^1.0.1 + hosted-git-info: ^7.0.1 + json-parse-even-better-errors: ^3.0.0 + json-stringify-nice: ^1.1.4 + minimatch: ^9.0.0 + nopt: ^7.0.0 + npm-install-checks: ^6.2.0 + npm-package-arg: ^11.0.1 + npm-pick-manifest: ^9.0.0 + npm-registry-fetch: ^16.0.0 + npmlog: ^7.0.1 + pacote: ^17.0.4 + parse-conflict-json: ^3.0.0 + proc-log: ^3.0.0 + promise-all-reject-late: ^1.0.0 + promise-call-limit: ^3.0.1 + read-package-json-fast: ^3.0.2 + semver: ^7.3.7 + ssri: ^10.0.5 + treeverse: ^3.0.0 + walk-up-path: ^3.0.1 + bin: + arborist: bin/index.js + checksum: 3fa39e73893be4fc7ec88259c8e8540f374cf1fe8b38715433e295f957812076c00b297ccda49565c030529e0f2fa6c90de401c922983c54a211c695f6c67694 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + languageName: node + linkType: hard + +"@npmcli/git@npm:^5.0.0": + version: 5.0.4 + resolution: "@npmcli/git@npm:5.0.4" + dependencies: + "@npmcli/promise-spawn": ^7.0.0 + lru-cache: ^10.0.1 + npm-pick-manifest: ^9.0.0 + proc-log: ^3.0.0 + promise-inflight: ^1.0.1 + promise-retry: ^2.0.1 + semver: ^7.3.5 + which: ^4.0.0 + checksum: 3c4adb7294eb7562cb0d908f36e1967ae6bde438192affd7f103cdeebbd9b2d83cd6b41b7db2278c9acd934c4af138baa094544e8e8a530b515c4084438d0170 + languageName: node + linkType: hard + +"@npmcli/installed-package-contents@npm:^2.0.1, @npmcli/installed-package-contents@npm:^2.0.2": + version: 2.0.2 + resolution: "@npmcli/installed-package-contents@npm:2.0.2" + dependencies: + npm-bundled: ^3.0.0 + npm-normalize-package-bin: ^3.0.0 + bin: + installed-package-contents: lib/index.js + checksum: 60789d5ed209ee5df479232f62d9d38ecec36e95701cae88320b828b8651351b32d7b47d16d4c36cc7ce5000db4bf1f3e6981bed6381bdc5687ff4bc0795682d + languageName: node + linkType: hard + +"@npmcli/map-workspaces@npm:^3.0.2": + version: 3.0.4 + resolution: "@npmcli/map-workspaces@npm:3.0.4" + dependencies: + "@npmcli/name-from-folder": ^2.0.0 + glob: ^10.2.2 + minimatch: ^9.0.0 + read-package-json-fast: ^3.0.0 + checksum: 99607dbc502b16d0ce7a47a81ccc496b3f5ed10df4e61e61a505929de12c356092996044174ae0cfd6d8cc177ef3b597eef4987b674fc0c5a306d3a8cc1fe91a + languageName: node + linkType: hard + +"@npmcli/metavuln-calculator@npm:^7.0.0": + version: 7.0.0 + resolution: "@npmcli/metavuln-calculator@npm:7.0.0" + dependencies: + cacache: ^18.0.0 + json-parse-even-better-errors: ^3.0.0 + pacote: ^17.0.0 + semver: ^7.3.5 + checksum: 653448528b8d1a1f10314e3cf04ccb76c77ccbdf3afc61ca4b790e01788ebb552839082258149619c0aa7cf745660c40e21e7ca86123580819490082d0c762ed + languageName: node + linkType: hard + +"@npmcli/name-from-folder@npm:^2.0.0": + version: 2.0.0 + resolution: "@npmcli/name-from-folder@npm:2.0.0" + checksum: fb3ef891aa57315fb6171866847f298577c8bda98a028e93e458048477133e142b4eb45ce9f3b80454f7c257612cb01754ee782d608507698dd712164436f5bd + languageName: node + linkType: hard + +"@npmcli/node-gyp@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/node-gyp@npm:3.0.0" + checksum: fe3802b813eecb4ade7ad77c9396cb56721664275faab027e3bd8a5e15adfbbe39e2ecc19f7885feb3cfa009b96632741cc81caf7850ba74440c6a2eee7b4ffc + languageName: node + linkType: hard + +"@npmcli/package-json@npm:^5.0.0": + version: 5.0.0 + resolution: "@npmcli/package-json@npm:5.0.0" + dependencies: + "@npmcli/git": ^5.0.0 + glob: ^10.2.2 + hosted-git-info: ^7.0.0 + json-parse-even-better-errors: ^3.0.0 + normalize-package-data: ^6.0.0 + proc-log: ^3.0.0 + semver: ^7.5.3 + checksum: 0d128e84e05e8a1771c8cc1f4232053fecf32e28f44e123ad16366ca3a7fd06f272f25f0b7d058f2763cab26bc479c8fc3c570af5de6324b05cb39868dcc6264 + languageName: node + linkType: hard + +"@npmcli/promise-spawn@npm:^7.0.0": + version: 7.0.1 + resolution: "@npmcli/promise-spawn@npm:7.0.1" + dependencies: + which: ^4.0.0 + checksum: a2b25d66d4dc835c69593bdf56588d66299fde3e80be4978347e686f24647007b794ce4da4cfcfcc569c67112720b746c4e7bf18ce45c096712d8b75fed19ec7 + languageName: node + linkType: hard + +"@npmcli/query@npm:^3.0.1": + version: 3.0.1 + resolution: "@npmcli/query@npm:3.0.1" + dependencies: + postcss-selector-parser: ^6.0.10 + checksum: b169b9c9a37c5a6e68d61604c7e3175ebdefbc3a77a8981326eaa8fa89cf4044fc6a87bd0fdbe5d096eda2f765aff1477924b55f4e23f64b3143dd1d9004eead + languageName: node + linkType: hard + +"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.2, @npmcli/run-script@npm:^7.0.3": + version: 7.0.4 + resolution: "@npmcli/run-script@npm:7.0.4" + dependencies: + "@npmcli/node-gyp": ^3.0.0 + "@npmcli/package-json": ^5.0.0 + "@npmcli/promise-spawn": ^7.0.0 + node-gyp: ^10.0.0 + which: ^4.0.0 + checksum: c44d6874cffb0a2f6d947e230083b605b6f253450e24aa185ef28391dc366b10807cd4ca113fe367057b8b5310add36391894f9d782af15424830658ee386dfb + languageName: node + linkType: hard + +"@octokit/auth-token@npm:^4.0.0": + version: 4.0.0 + resolution: "@octokit/auth-token@npm:4.0.0" + checksum: d78f4dc48b214d374aeb39caec4fdbf5c1e4fd8b9fcb18f630b1fe2cbd5a880fca05445f32b4561f41262cb551746aeb0b49e89c95c6dd99299706684d0cae2f + languageName: node + linkType: hard + +"@octokit/core@npm:^5.0.0": + version: 5.1.0 + resolution: "@octokit/core@npm:5.1.0" + dependencies: + "@octokit/auth-token": ^4.0.0 + "@octokit/graphql": ^7.0.0 + "@octokit/request": ^8.0.2 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + before-after-hook: ^2.2.0 + universal-user-agent: ^6.0.0 + checksum: 170d16f5577df484116238ce04e2dbd6b45d8e96b4680fee657ae22fcafb311af8df8a14ae80610f41c1a85493c927910698019a761914ff4b0323ddbabcc9a4 + languageName: node + linkType: hard + +"@octokit/endpoint@npm:^9.0.0": + version: 9.0.4 + resolution: "@octokit/endpoint@npm:9.0.4" + dependencies: + "@octokit/types": ^12.0.0 + universal-user-agent: ^6.0.0 + checksum: ed1b64a448f478e5951a043ef816d634a5a1f584519cbf2f374ceac058f82a16e52f078f156aa8b8cbcab7b0590348d94294fc83c9b4eebd42a820a5f10db81c + languageName: node + linkType: hard + +"@octokit/graphql@npm:^7.0.0": + version: 7.0.2 + resolution: "@octokit/graphql@npm:7.0.2" + dependencies: + "@octokit/request": ^8.0.1 + "@octokit/types": ^12.0.0 + universal-user-agent: ^6.0.0 + checksum: 05a752c4c2d84fc2900d8e32e1c2d1ee98a5a14349e651cb1109d0741e821e7417a048b1bb40918534ed90a472314aabbda35688868016f248098925f82a3bfa + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^19.1.0": + version: 19.1.0 + resolution: "@octokit/openapi-types@npm:19.1.0" + checksum: 9d1b188741609a9832b964df2bc337ee77c1fc89d5f686faebb743c7cb27721e214180d623ee28227427b4c43719b79ee4890e338a709b78a9f249a7c369ac3e + languageName: node + linkType: hard + +"@octokit/plugin-enterprise-rest@npm:^6.0.1": + version: 6.0.1 + resolution: "@octokit/plugin-enterprise-rest@npm:6.0.1" + checksum: 1c9720002f31daf62f4f48e73557dcdd7fcde6e0f6d43256e3f2ec827b5548417297186c361fb1af497fdcc93075a7b681e6ff06e2f20e4a8a3e74cc09d1f7e3 + languageName: node + linkType: hard + +"@octokit/plugin-paginate-rest@npm:^9.0.0": + version: 9.1.5 + resolution: "@octokit/plugin-paginate-rest@npm:9.1.5" + dependencies: + "@octokit/types": ^12.4.0 + peerDependencies: + "@octokit/core": ">=5" + checksum: ee5bc62e3175b61fdd3e65cc26410e1130931e729591003b302167cb02d0cec0746fd58220800d07de179e36077b9d675c794d0859457b701a7692b9fcde49a0 + languageName: node + linkType: hard + +"@octokit/plugin-request-log@npm:^4.0.0": + version: 4.0.0 + resolution: "@octokit/plugin-request-log@npm:4.0.0" + peerDependencies: + "@octokit/core": ">=5" + checksum: 2a8a6619640942092009a9248ceeb163ce01c978e2d7b2a7eb8686bd09a04b783c4cd9071eebb16652d233587abcde449a02ce4feabc652f0a171615fb3e9946 + languageName: node + linkType: hard + +"@octokit/plugin-rest-endpoint-methods@npm:^10.0.0": + version: 10.2.0 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.2.0" + dependencies: + "@octokit/types": ^12.3.0 + peerDependencies: + "@octokit/core": ">=5" + checksum: 3209688bf508d22a525fe32d632ff928b048688c1859c7e4bbb08bd181aa07f580b375a502e34368628103e5d5cccf7f9fb0ff0c8fd4262470ac8eeffb80ac6b + languageName: node + linkType: hard + +"@octokit/request-error@npm:^5.0.0": + version: 5.0.1 + resolution: "@octokit/request-error@npm:5.0.1" + dependencies: + "@octokit/types": ^12.0.0 + deprecation: ^2.0.0 + once: ^1.4.0 + checksum: a681341e43b4da7a8acb19e1a6ba0355b1af146fa0191f2554a98950cf85f898af6ae3ab0b0287d6c871f5465ec57cb38363b96b5019f9f77ba6f30eca39ede5 + languageName: node + linkType: hard + +"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2": + version: 8.1.6 + resolution: "@octokit/request@npm:8.1.6" + dependencies: + "@octokit/endpoint": ^9.0.0 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + universal-user-agent: ^6.0.0 + checksum: df90204586ee7db5adf69c3007c5d9c0a866de488c9ba8756f98083208726ed360d5a541e68204c413fa10e6f17e171dc9868b18768b9799df0003bc84c59cf2 + languageName: node + linkType: hard + +"@octokit/rest@npm:^20.0.2": + version: 20.0.2 + resolution: "@octokit/rest@npm:20.0.2" + dependencies: + "@octokit/core": ^5.0.0 + "@octokit/plugin-paginate-rest": ^9.0.0 + "@octokit/plugin-request-log": ^4.0.0 + "@octokit/plugin-rest-endpoint-methods": ^10.0.0 + checksum: 5c56ac23f063a5375ae5a0609e6477d90afac872eccd07002870f9dd62755037282a74c15c90c848b76b64ea4b5af52f32720b8a1b7b133e758118d11d2c0e34 + languageName: node + linkType: hard + +"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.3.0, @octokit/types@npm:^12.4.0": + version: 12.4.0 + resolution: "@octokit/types@npm:12.4.0" + dependencies: + "@octokit/openapi-types": ^19.1.0 + checksum: 17bca450efc5433f14e1f93a24232316a0fb490aec8d886c3a430e853f10a74e6664751a44e0e199336b23c20658c4afcb3590e422ba7c155c2cb31f433ebbb7 + languageName: node + linkType: hard + +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2": + version: 5.1.2 + resolution: "@patternfly/react-core@npm:5.1.2" + dependencies: + "@patternfly/react-icons": ^5.1.2 + "@patternfly/react-styles": ^5.1.2 + "@patternfly/react-tokens": ^5.1.2 + focus-trap: 7.5.2 + react-dropzone: ^14.2.3 + tslib: ^2.5.0 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: 850e0cff69273c36b1da8e38dd9a2037ec8fd5954c69cd5be8516c14b87152b0a725a6c97f9d0d9b46b54ec6dcd92d389cd4d14774f64a29467836a3a78009e6 + languageName: node + linkType: hard + +"@patternfly/react-icons@npm:^5.1.1, @patternfly/react-icons@npm:^5.1.2": + version: 5.1.2 + resolution: "@patternfly/react-icons@npm:5.1.2" + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: 67bc3c291f5b01f949e29b03f65079c4fe996710cee766e2c696ab7b31cd4370b6960ba40f782a6e401efc635a0389b9402368fefe7d5cebe85a560af9450801 + languageName: node + linkType: hard + +"@patternfly/react-styles@npm:^5.1.1, @patternfly/react-styles@npm:^5.1.2": + version: 5.1.2 + resolution: "@patternfly/react-styles@npm:5.1.2" + checksum: 49f0f05744a94cb4ba9aa071807efb9beb804a532a97a78ca60b567c3f65262456e997c18a480ad8823684a248a2af4cc873ccae703ab77b081184296dcef2c3 + languageName: node + linkType: hard + +"@patternfly/react-table@npm:^5.1.2": + version: 5.1.2 + resolution: "@patternfly/react-table@npm:5.1.2" + dependencies: + "@patternfly/react-core": ^5.1.2 + "@patternfly/react-icons": ^5.1.2 + "@patternfly/react-styles": ^5.1.2 + "@patternfly/react-tokens": ^5.1.2 + lodash: ^4.17.19 + tslib: ^2.5.0 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: b043489395594cb83485459a2bd27289d08f4a85bbe64121fe4b4285dca70149b4cf6dcf9bdac642c42d8c9c741bbeab615136ecc31a8ae9433668104835641b + languageName: node + linkType: hard + +"@patternfly/react-tokens@npm:^5.1.2": + version: 5.1.2 + resolution: "@patternfly/react-tokens@npm:5.1.2" + checksum: e7e4df34254aa474889c1f571b6a232ebe67210d302f8b86ef68371f66d56c6ba72c785ba6dcb41c57b30dbd0977b4e9ccecffaac599a158ae83bad8e11bbb8f + languageName: node + linkType: hard + +"@patternfly/react-topology@npm:^5.1.0": + version: 5.1.0 + resolution: "@patternfly/react-topology@npm:5.1.0" + dependencies: + "@patternfly/react-core": ^5.1.1 + "@patternfly/react-icons": ^5.1.1 + "@patternfly/react-styles": ^5.1.1 + "@types/d3": ^7.4.0 + "@types/d3-force": ^1.2.1 + "@types/dagre": 0.7.42 + "@types/react-measure": ^2.0.6 + d3: ^7.8.0 + dagre: 0.8.2 + lodash: ^4.17.19 + mobx: ^6.9.0 + mobx-react: ^7.6.0 + point-in-svg-path: ^1.0.1 + popper.js: ^1.16.1 + react-measure: ^2.3.0 + tslib: ^2.0.0 + webcola: 3.4.0 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: e83627f62f0f77bd6e0b83f40909a1d35d782efe9df0a2f2f65caa5728aef53dcca512b94434d5070f14d5f98322fc98d9f092323d4db4588da7c95b7a107339 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"@pkgr/core@npm:^0.1.0": + version: 0.1.1 + resolution: "@pkgr/core@npm:0.1.1" + checksum: 6f25fd2e3008f259c77207ac9915b02f1628420403b2630c92a07ff963129238c9262afc9e84344c7a23b5cc1f3965e2cd17e3798219f5fd78a63d144d3cceba + languageName: node + linkType: hard + +"@react-dnd/asap@npm:^5.0.1": + version: 5.0.2 + resolution: "@react-dnd/asap@npm:5.0.2" + checksum: 18f040e53512983f11c542ef21e6e4cac605d585a10cd764b13bc1b2f3ac7490e0fa40503adc348d8387aa45bc8e7eebe9cb33003b960a30bb5fde666ff2adde + languageName: node + linkType: hard + +"@react-dnd/invariant@npm:^4.0.1": + version: 4.0.2 + resolution: "@react-dnd/invariant@npm:4.0.2" + checksum: 594f6d78896c19bb8f023e101334fd91a9fdff686117bd8e830ba53737ec0a6042dab66971d3d63c7afbc622103909aff7a64c5c6767e0aa8d9561fd42705016 + languageName: node + linkType: hard + +"@react-dnd/shallowequal@npm:^4.0.1": + version: 4.0.2 + resolution: "@react-dnd/shallowequal@npm:4.0.2" + checksum: 7f21d691bddbfd4d2830948cbeefecca1600b2b46bcb1934926795f07ae8a1fa60a3dfd3a2112be5ef682c3820c80a99711e9fa15843f7e300acb25a4ecb70ab + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.6" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-android-arm64@npm:4.9.6" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-darwin-arm64@npm:4.9.6" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-darwin-x64@npm:4.9.6" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.6" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.6" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.6" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.6" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.6" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.6" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.6" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.6" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@sigstore/bundle@npm:^2.1.1": + version: 2.1.1 + resolution: "@sigstore/bundle@npm:2.1.1" + dependencies: + "@sigstore/protobuf-specs": ^0.2.1 + checksum: c441904765e94710288f3fcf0458f2544a9b480b239219eb738f11bddb2518a5dc5b4a3f8ca22884d7948f1034d4b802ce74a4d21517a35b7ac52970f78971f0 + languageName: node + linkType: hard + +"@sigstore/core@npm:^0.2.0": + version: 0.2.0 + resolution: "@sigstore/core@npm:0.2.0" + checksum: e3226bcb8edf663001f11b6ac45190d21a9583a6bc7b6823deae171138a4f39fd1467f9c444f198e4e5930b4cf623035f5ebd0d9a864973818968977ecadb007 + languageName: node + linkType: hard + +"@sigstore/protobuf-specs@npm:^0.2.1": + version: 0.2.1 + resolution: "@sigstore/protobuf-specs@npm:0.2.1" + checksum: ddb7c829c7bf4148eccb571ede07cf9fda62f46b7b4d3a5ca02c0308c950ee90b4206b61082ee8d5753f24098632a8b24c147117bef8c68791bf5da537b55db9 + languageName: node + linkType: hard + +"@sigstore/sign@npm:^2.2.1": + version: 2.2.1 + resolution: "@sigstore/sign@npm:2.2.1" + dependencies: + "@sigstore/bundle": ^2.1.1 + "@sigstore/core": ^0.2.0 + "@sigstore/protobuf-specs": ^0.2.1 + make-fetch-happen: ^13.0.0 + checksum: 198d6c0c0f1b1ff21546289478d26f9068ed7ead95f104bda1bdda8b2ce48393e784660a2c2d9ec1afe91260347ad677862493f1a80ca28e82b557cab219cc71 + languageName: node + linkType: hard + +"@sigstore/tuf@npm:^2.3.0": + version: 2.3.0 + resolution: "@sigstore/tuf@npm:2.3.0" + dependencies: + "@sigstore/protobuf-specs": ^0.2.1 + tuf-js: ^2.2.0 + checksum: 77ed2931c4e80b13310ccb1f57623bdf20b8c1d1760a07ed2f0b6c31aeed799cb839646f688c7cc3be05e05f7cf25acce18d90a864774ce768834a6e9017deef + languageName: node + linkType: hard + +"@sigstore/verify@npm:^0.1.0": + version: 0.1.0 + resolution: "@sigstore/verify@npm:0.1.0" + dependencies: + "@sigstore/bundle": ^2.1.1 + "@sigstore/core": ^0.2.0 + "@sigstore/protobuf-specs": ^0.2.1 + checksum: ddcd3482de4b9b01376b077574db05efa641fb26e9e9cd7cb9340e13767f6b1b39cbca47d80f2b5eacea88f49b99bcac957ff154c5c15461702f8c0f77d23541 + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 + languageName: node + linkType: hard + +"@sindresorhus/merge-streams@npm:^1.0.0": + version: 1.0.0 + resolution: "@sindresorhus/merge-streams@npm:1.0.0" + checksum: 453c2a28164113a5ec4fd23ba636e291a4112f6ee9e91cd5476b9a96e0fc9ee5ff40d405fe81bbf284c9773b7ed718a3a0f31df7895a0efd413b1f9775d154fe + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.1 + resolution: "@sinonjs/commons@npm:3.0.1" + dependencies: + type-detect: 4.0.8 + checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" + dependencies: + "@sinonjs/commons": ^3.0.0 + checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 + languageName: node + linkType: hard + +"@storybook/addon-actions@npm:^7.6.12": + version: 7.6.15 + resolution: "@storybook/addon-actions@npm:7.6.15" + dependencies: + "@storybook/core-events": 7.6.15 + "@storybook/global": ^5.0.0 + "@types/uuid": ^9.0.1 + dequal: ^2.0.2 + polished: ^4.2.2 + uuid: ^9.0.0 + checksum: bed47a7fd5a2ade9fd408ef6cf2f037fbf39906f9e9dc788e90acb296fe65224001d4014f6f960adf0236fb23f0aa84ba2b25dd83e1a0353990c271b9a4cddf9 + languageName: node + linkType: hard + +"@storybook/addon-knobs@npm:^7.0.2": + version: 7.0.2 + resolution: "@storybook/addon-knobs@npm:7.0.2" + dependencies: + copy-to-clipboard: ^3.3.3 + core-js: ^3.29.0 + escape-html: ^1.0.3 + fast-deep-equal: ^3.1.3 + global: ^4.4.0 + lodash: ^4.17.21 + prop-types: ^15.8.1 + qs: ^6.11.1 + react-colorful: ^5.6.1 + react-lifecycles-compat: ^3.0.4 + react-select: ^5.7.0 + peerDependencies: + "@storybook/addons": ^7.0.0 + "@storybook/api": ^7.0.0 + "@storybook/components": ^7.0.0 + "@storybook/core-events": ^7.0.0 + "@storybook/theming": ^7.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: a28a61bb18d4c07edd3b031abbc9c81b48cf1c2b7d0707177f383c70f01b1e91d6f364969e42cdb34a7b761bc68e7603b53136c01887e56e24b408eb843d36fe + languageName: node + linkType: hard + +"@storybook/core-events@npm:7.6.15": + version: 7.6.15 + resolution: "@storybook/core-events@npm:7.6.15" + dependencies: + ts-dedent: ^2.0.0 + checksum: e09dbf0b6349da9b93ec01794318bf58fd48260419835bf55466c1a20dfc76d8b11b74a78c6835e7629ee9ee471fd08ec3f6550017b6119209ff01f4c3ac4ce9 + languageName: node + linkType: hard + +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: ede0ad35ec411fe31c61150dbd118fef344d1d0e72bf5d3502368e35cf68126f6b7ae4a0ab5e2ffe2f0baa3b4286f03ad069ba3e098e1725449ef08b7e154ba8 + languageName: node + linkType: hard + +"@testing-library/jest-dom@npm:^6.3.0": + version: 6.3.0 + resolution: "@testing-library/jest-dom@npm:6.3.0" + dependencies: + "@adobe/css-tools": ^4.3.2 + "@babel/runtime": ^7.9.2 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.6.3 + lodash: ^4.17.15 + redent: ^3.0.0 + peerDependencies: + "@jest/globals": ">= 28" + "@types/bun": "*" + "@types/jest": ">= 28" + jest: ">= 28" + vitest: ">= 0.32" + peerDependenciesMeta: + "@jest/globals": + optional: true + "@types/bun": + optional: true + "@types/jest": + optional: true + jest: + optional: true + vitest: + optional: true + checksum: cea8aa17895cf4aff573fedee80e8a592611caf7bc724702fc70b3b7bfee94becd3a10873c818d931424018d6fdeeca9d1a2ea5f53b74092ad5e8e09f03dde90 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.9 + resolution: "@tsconfig/node10@npm:1.0.9" + checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff + languageName: node + linkType: hard + +"@tufjs/canonical-json@npm:2.0.0": + version: 2.0.0 + resolution: "@tufjs/canonical-json@npm:2.0.0" + checksum: cc719a1d0d0ae1aa1ba551a82c87dcbefac088e433c03a3d8a1d547ea721350e47dab4ab5b0fca40d5c7ab1f4882e72edc39c9eae15bf47c45c43bcb6ee39f4f + languageName: node + linkType: hard + +"@tufjs/models@npm:2.0.0": + version: 2.0.0 + resolution: "@tufjs/models@npm:2.0.0" + dependencies: + "@tufjs/canonical-json": 2.0.0 + minimatch: ^9.0.3 + checksum: aac9f2f3a4838112764bd41c1ddcb15665e133412decbbc3e35a733ae63e4d69db4636df6d42ff3a88e7dd9ffbdc17c2d90737ac52e630403d1e86d595c45ea4 + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.5": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": ^7.0.0 + checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.20.5 + resolution: "@types/babel__traverse@npm:7.20.5" + dependencies: + "@babel/types": ^7.20.7 + checksum: 608e0ab4fc31cd47011d98942e6241b34d461608c0c0e153377c5fd822c436c475f1ded76a56bfa76a1adf8d9266b727bbf9bfac90c4cb152c97f30dadc5b7e8 + languageName: node + linkType: hard + +"@types/d3-array@npm:*": + version: 3.2.1 + resolution: "@types/d3-array@npm:3.2.1" + checksum: 8a41cee0969e53bab3f56cc15c4e6c9d76868d6daecb2b7d8c9ce71e0ececccc5a8239697cc52dadf5c665f287426de5c8ef31a49e7ad0f36e8846889a383df4 + languageName: node + linkType: hard + +"@types/d3-axis@npm:*": + version: 3.0.6 + resolution: "@types/d3-axis@npm:3.0.6" + dependencies: + "@types/d3-selection": "*" + checksum: ea1065d9e6d134c04427763603cbe9d549b8b5785b8ae0d002b5b14a362619d5b8f5ee3c2fda8b36b7e5a413cbcd387e1a2d89898b919a9f0cc91ad4e67b5ab5 + languageName: node + linkType: hard + +"@types/d3-brush@npm:*": + version: 3.0.6 + resolution: "@types/d3-brush@npm:3.0.6" + dependencies: + "@types/d3-selection": "*" + checksum: e5166bc53e5c914b1fed0a6ce55ca14d76ae11c5afd16b724b8ae47989e977c4af02bb07496d1ccd0a77f4ccd9a2ca7345e1d289bcfce16490fe4b39a9e0d170 + languageName: node + linkType: hard + +"@types/d3-chord@npm:*": + version: 3.0.6 + resolution: "@types/d3-chord@npm:3.0.6" + checksum: b511cf372ed8a0086d37a715c0d4aca811b614454e1f7c1561fbcd46863beaccdb115d274a7a992a30a8218393fbc3e1fdd7ca6e9d572e729a4570002c327083 + languageName: node + linkType: hard + +"@types/d3-color@npm:*": + version: 3.1.3 + resolution: "@types/d3-color@npm:3.1.3" + checksum: 8a0e79a709929502ec4effcee2c786465b9aec51b653ba0b5d05dbfec3e84f418270dd603002d94021885061ff592f614979193bd7a02ad76317f5608560e357 + languageName: node + linkType: hard + +"@types/d3-contour@npm:*": + version: 3.0.6 + resolution: "@types/d3-contour@npm:3.0.6" + dependencies: + "@types/d3-array": "*" + "@types/geojson": "*" + checksum: 83c13eb0567e95d6675d6d81cbeab38d0899c5af70a7c69354e23e0860ddb2f3e911d2cacd33a8baa60ce7846b38785a337b2d7c8d2763a1340bfb999b4bd2ab + languageName: node + linkType: hard + +"@types/d3-delaunay@npm:*": + version: 6.0.4 + resolution: "@types/d3-delaunay@npm:6.0.4" + checksum: 502fe0eb91f7d05b0f57904d68028c24348a54b1e5458009caf662de995d0e59bd82cd701b4af0087d614ee9e456d415fe32d63c25272ca753bf12b3f27b2d77 + languageName: node + linkType: hard + +"@types/d3-dispatch@npm:*": + version: 3.0.6 + resolution: "@types/d3-dispatch@npm:3.0.6" + checksum: f82076c7d205885480d363c92c19b8e0d6b9e529a3a78ce772f96a7cc4cce01f7941141f148828337035fac9676b13e7440565530491d560fdf12e562cb56573 + languageName: node + linkType: hard + +"@types/d3-drag@npm:*": + version: 3.0.7 + resolution: "@types/d3-drag@npm:3.0.7" + dependencies: + "@types/d3-selection": "*" + checksum: 1107cb1667ead79073741c06ea4a9e8e4551698f6c9c60821e327a6aa30ca2ba0b31a6fe767af85a2e38a22d2305f6c45b714df15c2bba68adf58978223a5fc5 + languageName: node + linkType: hard + +"@types/d3-dsv@npm:*": + version: 3.0.7 + resolution: "@types/d3-dsv@npm:3.0.7" + checksum: 5025e01459827d09d14e0d00281995a04042ce9e3e76444c5a65466c1d29649d82cbfaa9251e33837bf576f5c587525d8d8ff5aacc6bd3b831824d54449261b9 + languageName: node + linkType: hard + +"@types/d3-ease@npm:*": + version: 3.0.2 + resolution: "@types/d3-ease@npm:3.0.2" + checksum: 0885219966294bfc99548f37297e1c75e75da812a5f3ec941977ebb57dcab0a25acec5b2bbd82d09a49d387daafca08521ca269b7e4c27ddca7768189e987b54 + languageName: node + linkType: hard + +"@types/d3-fetch@npm:*": + version: 3.0.7 + resolution: "@types/d3-fetch@npm:3.0.7" + dependencies: + "@types/d3-dsv": "*" + checksum: e60cf60b25cbc49b2066ac2a3638f610c7379000562b0f499dd90fd57a8cb9740c24667a70496c2a66456d42867afeffb1722a75b26d95e7d7ee8667d96b0b36 + languageName: node + linkType: hard + +"@types/d3-force@npm:*": + version: 3.0.9 + resolution: "@types/d3-force@npm:3.0.9" + checksum: 6ec16109b5048cda0877931b5e60565436fee697ccbc223eae1562c4a8401dddacb25b0137da2babca2a810ad0471114444e08c8e395ce90758d768a05a23b4f + languageName: node + linkType: hard + +"@types/d3-force@npm:^1.2.1": + version: 1.2.7 + resolution: "@types/d3-force@npm:1.2.7" + checksum: 9290f55beebcb4826b9b92dab2bb5204ca76a546ef5d84ded789f915605196da52d548f0a7b23c6e4327a1361096a20b096a9918148d1e0f3a10945a332b1844 + languageName: node + linkType: hard + +"@types/d3-format@npm:*": + version: 3.0.4 + resolution: "@types/d3-format@npm:3.0.4" + checksum: e69421cd93861a0c080084b0b23d4a5d6a427497559e46898189002fb756dae2c7c858b465308f6bcede7272b90e39ce8adab810bded2309035a5d9556c59134 + languageName: node + linkType: hard + +"@types/d3-geo@npm:*": + version: 3.1.0 + resolution: "@types/d3-geo@npm:3.1.0" + dependencies: + "@types/geojson": "*" + checksum: a4b2daa8a64012912ce7186891e8554af123925dca344c111b771e168a37477e02d504c6c94ee698440380e8c4f3f373d6755be97935da30eae0904f6745ce40 + languageName: node + linkType: hard + +"@types/d3-hierarchy@npm:*": + version: 3.1.6 + resolution: "@types/d3-hierarchy@npm:3.1.6" + checksum: cb6a80823fd8820277863f78dac7c8072b364c548cf266215d6bb3f3d017304348cfcb1ca806f38de48ce3ccd5e6af12c70814a10660f882ee4a48e6ae710afa + languageName: node + linkType: hard + +"@types/d3-interpolate@npm:*": + version: 3.0.4 + resolution: "@types/d3-interpolate@npm:3.0.4" + dependencies: + "@types/d3-color": "*" + checksum: efd2770e174e84fc7316fdafe03cf3688451f767dde1fa6211610137f495be7f3923db7e1723a6961a0e0e9ae0ed969f4f47c038189fa0beb1d556b447922622 + languageName: node + linkType: hard + +"@types/d3-path@npm:*": + version: 3.0.2 + resolution: "@types/d3-path@npm:3.0.2" + checksum: 0107d89510e19e478c168e0e5df0c901f57e12f42f90f961a52b0b1e5b58182dde14a5b27ef66a0a769f09119f305d484dd8dc5adca17f6dd74baab87ad36a98 + languageName: node + linkType: hard + +"@types/d3-polygon@npm:*": + version: 3.0.2 + resolution: "@types/d3-polygon@npm:3.0.2" + checksum: 7cf1eadb54f02dd3617512b558f4c0f3811f8a6a8c887d9886981c3cc251db28b68329b2b0707d9f517231a72060adbb08855227f89bef6ef30caedc0a67cab2 + languageName: node + linkType: hard + +"@types/d3-quadtree@npm:*": + version: 3.0.6 + resolution: "@types/d3-quadtree@npm:3.0.6" + checksum: 631fb1a50dbe4fb0c97574891b180ec3d6a0f524bbd8aee8dfd44eda405e7ed1ca2b03d5568a35f697d09e5e4b598117e149236874b0c8764979a3d6242bb0bc + languageName: node + linkType: hard + +"@types/d3-random@npm:*": + version: 3.0.3 + resolution: "@types/d3-random@npm:3.0.3" + checksum: 33285b57768a724d2466ac1deec002432805c9df3e475ffb7f7fec66681cfe3e18d2f68b7f8ba45f400b274907bbebfe8adff14c9a97ef1987e476135e784925 + languageName: node + linkType: hard + +"@types/d3-scale-chromatic@npm:*": + version: 3.0.3 + resolution: "@types/d3-scale-chromatic@npm:3.0.3" + checksum: a465d126a00a71d3824957283580b4b404fe6f6bb52eb2b7303047fffed2bec6e31aeb34bfb30313e72ee1d75243c50ec5a45824eaf547f9c0849a1379527662 + languageName: node + linkType: hard + +"@types/d3-scale@npm:*": + version: 4.0.8 + resolution: "@types/d3-scale@npm:4.0.8" + dependencies: + "@types/d3-time": "*" + checksum: 3b1906da895564f73bb3d0415033d9a8aefe7c4f516f970176d5b2ff7a417bd27ae98486e9a9aa0472001dc9885a9204279a1973a985553bdb3ee9bbc1b94018 + languageName: node + linkType: hard + +"@types/d3-selection@npm:*": + version: 3.0.10 + resolution: "@types/d3-selection@npm:3.0.10" + checksum: 8a1b0940eca565d754c1898b9e4f86e2778e4135878b76b3b8a89d497e37675d423ec3376f248577a502bccb55c1218cc9f6b5688a29a3b500973de8fc5f1c5c + languageName: node + linkType: hard + +"@types/d3-shape@npm:*": + version: 3.1.6 + resolution: "@types/d3-shape@npm:3.1.6" + dependencies: + "@types/d3-path": "*" + checksum: bd765be021019c43c8dca066a798a1de28a051d1213db6ca25f76c9e577da7ec40a592e3bda7628383ab48cb87164fe60b95eb5ec23761b2012bd0adb30c549a + languageName: node + linkType: hard + +"@types/d3-time-format@npm:*": + version: 4.0.3 + resolution: "@types/d3-time-format@npm:4.0.3" + checksum: e981fc9780697a9d8c5d1ddf1167d9c6bc28e4e610afddff1384fe55e6eb52cb65309b2a0a1d4cf817413b0a80b9f1a652fe0b2cb8054ace4eafff80a6093aa5 + languageName: node + linkType: hard + +"@types/d3-time@npm:*": + version: 3.0.3 + resolution: "@types/d3-time@npm:3.0.3" + checksum: a071826c80efdb1999e6406fef2db516d45f3906da3a9a4da8517fa863bae53c4c1056ca5347a20921660607d21ec874fd2febe0e961adb7be6954255587d08f + languageName: node + linkType: hard + +"@types/d3-timer@npm:*": + version: 3.0.2 + resolution: "@types/d3-timer@npm:3.0.2" + checksum: 1643eebfa5f4ae3eb00b556bbc509444d88078208ec2589ddd8e4a24f230dd4cf2301e9365947e70b1bee33f63aaefab84cd907822aae812b9bc4871b98ab0e1 + languageName: node + linkType: hard + +"@types/d3-transition@npm:*": + version: 3.0.8 + resolution: "@types/d3-transition@npm:3.0.8" + dependencies: + "@types/d3-selection": "*" + checksum: 4ff2727f0f2305cbe4fed1ef860a6cac44393607db42e4d0975eb6348338c2c3091b25bc5a1bddd31d7f3e10d1028187f7d271f6e4239d67f485f28c4f076a8b + languageName: node + linkType: hard + +"@types/d3-zoom@npm:*": + version: 3.0.8 + resolution: "@types/d3-zoom@npm:3.0.8" + dependencies: + "@types/d3-interpolate": "*" + "@types/d3-selection": "*" + checksum: a1685728949ed39faf8ce162cc13338639c57bc2fd4d55fc7902b2632cad2bc2a808941263e57ce6685647e8a6a0a556e173386a52d6bb74c9ed6195b68be3de + languageName: node + linkType: hard + +"@types/d3@npm:^7.4.0": + version: 7.4.3 + resolution: "@types/d3@npm:7.4.3" + dependencies: + "@types/d3-array": "*" + "@types/d3-axis": "*" + "@types/d3-brush": "*" + "@types/d3-chord": "*" + "@types/d3-color": "*" + "@types/d3-contour": "*" + "@types/d3-delaunay": "*" + "@types/d3-dispatch": "*" + "@types/d3-drag": "*" + "@types/d3-dsv": "*" + "@types/d3-ease": "*" + "@types/d3-fetch": "*" + "@types/d3-force": "*" + "@types/d3-format": "*" + "@types/d3-geo": "*" + "@types/d3-hierarchy": "*" + "@types/d3-interpolate": "*" + "@types/d3-path": "*" + "@types/d3-polygon": "*" + "@types/d3-quadtree": "*" + "@types/d3-random": "*" + "@types/d3-scale": "*" + "@types/d3-scale-chromatic": "*" + "@types/d3-selection": "*" + "@types/d3-shape": "*" + "@types/d3-time": "*" + "@types/d3-time-format": "*" + "@types/d3-timer": "*" + "@types/d3-transition": "*" + "@types/d3-zoom": "*" + checksum: 12234aa093c8661546168becdd8956e892b276f525d96f65a7b32fed886fc6a569fe5a1171bff26fef2a5663960635f460c9504a6f2d242ba281a2b6c8c6465c + languageName: node + linkType: hard + +"@types/dagre@npm:0.7.42": + version: 0.7.42 + resolution: "@types/dagre@npm:0.7.42" + checksum: c63a0e9155df7d00b4e3bd5a781a69a958cf7281d2fec90cbea0e553841cd41bef3b35c749b1b481811ac7d81d25eb8a8366ea17ac647a907828e399ccdce82d + languageName: node + linkType: hard + +"@types/estree@npm:1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a + languageName: node + linkType: hard + +"@types/geojson@npm:*": + version: 7946.0.13 + resolution: "@types/geojson@npm:7946.0.13" + checksum: b3b68457c89bc3f0445dc9eb54d07e6f89658672867c54989bc7f71f87d54e562195b291d43e1b84476493351271d7ccb9f5c6ab2012b29fbafbb0e8e43c4bca + languageName: node + linkType: hard + +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" + dependencies: + "@types/node": "*" + checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" + dependencies: + "@types/istanbul-lib-coverage": "*" + checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" + dependencies: + "@types/istanbul-lib-report": "*" + checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 + languageName: node + linkType: hard + +"@types/jest@npm:^29.5.12": + version: 29.5.12 + resolution: "@types/jest@npm:29.5.12" + dependencies: + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c + languageName: node + linkType: hard + +"@types/jsdom@npm:^20.0.0": + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" + dependencies: + "@types/node": "*" + "@types/tough-cookie": "*" + parse5: ^7.0.0 + checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:^20.11.6": + version: 20.11.6 + resolution: "@types/node@npm:20.11.6" + dependencies: + undici-types: ~5.26.4 + checksum: 54b3739f42d9c2266fd724d8ecbf50bc64eb0563343b65a6ea874a51a7fc8bb4793bf3a1b2222e40e3b7bd62cf5af5609899bf1a3de8b69748dcac65e63e8bdc + languageName: node + linkType: hard + +"@types/normalize-package-data@npm:^2.4.1": + version: 2.4.4 + resolution: "@types/normalize-package-data@npm:2.4.4" + checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 + languageName: node + linkType: hard + +"@types/pako@npm:^2.0.3": + version: 2.0.3 + resolution: "@types/pako@npm:2.0.3" + checksum: 0746dd5d29eccf5b2e6cceb3ccb093851219e78bd2e2e20d25757e247987139e061e5d4ba37cb5295493f06e3c683c74f8876011cd8a3f3748a09244fbc841d9 + languageName: node + linkType: hard + +"@types/parse-json@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 + languageName: node + linkType: hard + +"@types/prop-types@npm:*": + version: 15.7.11 + resolution: "@types/prop-types@npm:15.7.11" + checksum: 7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.2.18": + version: 18.2.18 + resolution: "@types/react-dom@npm:18.2.18" + dependencies: + "@types/react": "*" + checksum: 8e3da404c980e2b2a76da3852f812ea6d8b9d0e7f5923fbaf3bfbbbfa1d59116ff91c129de8f68e9b7668a67ae34484fe9df74d5a7518cf8591ec07a0c4dad57 + languageName: node + linkType: hard + +"@types/react-measure@npm:^2.0.6": + version: 2.0.12 + resolution: "@types/react-measure@npm:2.0.12" + dependencies: + "@types/react": "*" + checksum: c04ab0835bc4732383a9c7cf90aabab1155e3834fc4ee8470e173964aaa301963057a1905db51c208d5bc833df345720565ae430ac4f41e34e6aff6d9671cc61 + languageName: node + linkType: hard + +"@types/react-transition-group@npm:^4.4.0": + version: 4.4.10 + resolution: "@types/react-transition-group@npm:4.4.10" + dependencies: + "@types/react": "*" + checksum: fe2ea11f70251e9f79f368e198c18fd469b1d4f1e1d44e4365845b44e15974b0ec925100036f449b023b0ca3480a82725c5f0a73040e282ad32ec7b0def9b57c + languageName: node + linkType: hard + +"@types/react@npm:*": + version: 18.2.48 + resolution: "@types/react@npm:18.2.48" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: c9ca43ed2995389b7e09492c24e6f911a8439bb8276dd17cc66a2fbebbf0b42daf7b2ad177043256533607c2ca644d7d928fdfce37a67af1f8646d2bac988900 + languageName: node + linkType: hard + +"@types/react@npm:^18.2.53": + version: 18.2.53 + resolution: "@types/react@npm:18.2.53" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 0dda3a7868c52a5c84287dbd12280c16cee7233571c24c00b14d2e9e3d30596ea96ea9f7808302a8d8bff81f9b49a8435d1814d2e63142376a1084b7e0d84f6a + languageName: node + linkType: hard + +"@types/scheduler@npm:*": + version: 0.16.8 + resolution: "@types/scheduler@npm:0.16.8" + checksum: 6c091b096daa490093bf30dd7947cd28e5b2cd612ec93448432b33f724b162587fed9309a0acc104d97b69b1d49a0f3fc755a62282054d62975d53d7fd13472d + languageName: node + linkType: hard + +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": + version: 7.5.6 + resolution: "@types/semver@npm:7.5.6" + checksum: 563a0120ec0efcc326567db2ed920d5d98346f3638b6324ea6b50222b96f02a8add3c51a916b6897b51523aad8ac227d21d3dcf8913559f1bfc6c15b14d23037 + languageName: node + linkType: hard + +"@types/stack-utils@npm:^2.0.0": + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 + languageName: node + linkType: hard + +"@types/tough-cookie@npm:*": + version: 4.0.5 + resolution: "@types/tough-cookie@npm:4.0.5" + checksum: f19409d0190b179331586365912920d192733112a195e870c7f18d20ac8adb7ad0b0ff69dad430dba8bc2be09593453a719cfea92dc3bda19748fd158fe1498d + languageName: node + linkType: hard + +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.32 + resolution: "@types/yargs@npm:17.0.32" + dependencies: + "@types/yargs-parser": "*" + checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" + dependencies: + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/type-utils": 6.21.0 + "@typescript-eslint/utils": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 5ef2c502255e643e98051e87eb682c2a257e87afd8ec3b9f6274277615e1c2caf3131b352244cfb1987b8b2c415645eeacb9113fa841fc4c9b2ac46e8aed6efd + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/parser@npm:6.21.0" + dependencies: + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 162fe3a867eeeffda7328bce32dae45b52283c68c8cb23258fb9f44971f761991af61f71b8c9fe1aa389e93dfe6386f8509c1273d870736c507d76dd40647b68 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/scope-manager@npm:6.21.0" + dependencies: + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + checksum: 71028b757da9694528c4c3294a96cc80bc7d396e383a405eab3bc224cda7341b88e0fc292120b35d3f31f47beac69f7083196c70616434072fbcd3d3e62d3376 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/type-utils@npm:6.21.0" + dependencies: + "@typescript-eslint/typescript-estree": 6.21.0 + "@typescript-eslint/utils": 6.21.0 + debug: ^4.3.4 + ts-api-utils: ^1.0.1 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 77025473f4d80acf1fafcce99c5c283e557686a61861febeba9c9913331f8a41e930bf5cd8b7a54db502a57b6eb8ea6d155cbd4f41349ed00e3d7aeb1f477ddc + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/types@npm:6.21.0" + checksum: 9501b47d7403417af95fc1fb72b2038c5ac46feac0e1598a46bcb43e56a606c387e9dcd8a2a0abe174c91b509f2d2a8078b093786219eb9a01ab2fbf9ee7b684 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" + dependencies: + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/visitor-keys": 6.21.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + minimatch: 9.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: dec02dc107c4a541e14fb0c96148f3764b92117c3b635db3a577b5a56fc48df7a556fa853fb82b07c0663b4bf2c484c9f245c28ba3e17e5cb0918ea4cab2ea21 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/utils@npm:6.21.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.21.0 + "@typescript-eslint/types": 6.21.0 + "@typescript-eslint/typescript-estree": 6.21.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: b129b3a4aebec8468259f4589985cb59ea808afbfdb9c54f02fad11e17d185e2bf72bb332f7c36ec3c09b31f18fc41368678b076323e6e019d06f74ee93f7bf2 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.10.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + eslint-visitor-keys: ^3.3.0 + checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" + dependencies: + "@typescript-eslint/types": 6.21.0 + eslint-visitor-keys: ^3.4.1 + checksum: 67c7e6003d5af042d8703d11538fca9d76899f0119130b373402819ae43f0bc90d18656aa7add25a24427ccf1a0efd0804157ba83b0d4e145f06107d7d1b7433 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + languageName: node + linkType: hard + +"@vitejs/plugin-react@npm:^4.2.1": + version: 4.2.1 + resolution: "@vitejs/plugin-react@npm:4.2.1" + dependencies: + "@babel/core": ^7.23.5 + "@babel/plugin-transform-react-jsx-self": ^7.23.3 + "@babel/plugin-transform-react-jsx-source": ^7.23.3 + "@types/babel__core": ^7.20.5 + react-refresh: ^0.14.0 + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + checksum: 08d227d27ff2304e395e746bd2d4b5fee40587f69d7e2fcd6beb7d91163c1f1dc26d843bc48e2ffb8f38c6b8a1b9445fb07840e3dcc841f97b56bbb8205346aa + languageName: node + linkType: hard + +"JSONStream@npm:^1.3.5": + version: 1.3.5 + resolution: "JSONStream@npm:1.3.5" + dependencies: + jsonparse: ^1.2.0 + through: ">=2.2.7 <3" + bin: + JSONStream: ./bin.js + checksum: 2605fa124260c61bad38bb65eba30d2f72216a78e94d0ab19b11b4e0327d572b8d530c0c9cc3b0764f727ad26d39e00bf7ebad57781ca6368394d73169c59e46 + languageName: node + linkType: hard + +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 + languageName: node + linkType: hard + +"acorn-globals@npm:^7.0.0": + version: 7.0.1 + resolution: "acorn-globals@npm:7.0.1" + dependencies: + acorn: ^8.1.0 + acorn-walk: ^8.0.2 + checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": + version: 8.3.2 + resolution: "acorn-walk@npm:8.3.2" + checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 + languageName: node + linkType: hard + +"acorn@npm:^8.1.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": + version: 8.11.3 + resolution: "acorn@npm:8.11.3" + bin: + acorn: bin/acorn + checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c + languageName: node + linkType: hard + +"add-stream@npm:^1.0.0": + version: 1.0.0 + resolution: "add-stream@npm:1.0.0" + checksum: 3e9e8b0b8f0170406d7c3a9a39bfbdf419ccccb0fd2a396338c0fda0a339af73bf738ad414fc520741de74517acf0dd92b4a36fd3298a47fd5371eee8f2c5a06 + languageName: node + linkType: hard + +"agent-base@npm:6": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" + dependencies: + debug: ^4.3.4 + checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ajv@npm:^8.0.1": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: ^0.21.3 + checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + languageName: node + linkType: hard + +"ansi-escapes@npm:^6.2.0": + version: 6.2.0 + resolution: "ansi-escapes@npm:6.2.0" + dependencies: + type-fest: ^3.0.0 + checksum: f0bc667d5f1ededc3ea89b73c34f0cba95473525b07e1290ddfd3fc868c94614e95f3549f5c4fd0c05424af7d3fd298101fb3d9a52a597d3782508b340783bd7 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: ^3.0.0 + picomatch: ^2.0.4 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^4.0.0": + version: 4.0.2 + resolution: "are-we-there-yet@npm:4.0.2" + checksum: 29d562d3aad6428aa4d732f78b058f1025fda00305bb307b4cd6ee26a43e5b4c90c113e97e01fa43bfe04556a800ba7e5c947907891ae99bfb8a5ae2488078d0 + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: ~1.0.2 + checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"aria-query@npm:^5.0.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: ^2.0.3 + checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.5 + is-array-buffer: ^3.0.4 + checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + languageName: node + linkType: hard + +"array-ify@npm:^1.0.0": + version: 1.0.0 + resolution: "array-ify@npm:1.0.0" + checksum: c0502015b319c93dd4484f18036bcc4b654eb76a4aa1f04afbcef11ac918859bb1f5d71ba1f0f1141770db9eef1a4f40f1761753650873068010bbf7bcdae4a4 + languageName: node + linkType: hard + +"array-includes@npm:^3.1.7": + version: 3.1.7 + resolution: "array-includes@npm:3.1.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + get-intrinsic: ^1.2.1 + is-string: ^1.0.7 + checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"array.prototype.filter@npm:^1.0.3": + version: 1.0.3 + resolution: "array.prototype.filter@npm:1.0.3" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-array-method-boxes-properly: ^1.0.0 + is-string: ^1.0.7 + checksum: 5443cde6ad64596649e5751252b1b2f5242b41052980c2fb2506ba485e3ffd7607e8f6f2f1aefa0cb1cfb9b8623b2b2be103579cb367a161a3426400619b6e73 + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.3": + version: 1.2.3 + resolution: "array.prototype.findlastindex@npm:1.2.3" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-shim-unscopables: ^1.0.0 + get-intrinsic: ^1.2.1 + checksum: 31f35d7b370c84db56484618132041a9af401b338f51899c2e78ef7690fbba5909ee7ca3c59a7192085b328cc0c68c6fd1f6d1553db01a689a589ae510f3966e + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.2": + version: 1.3.2 + resolution: "array.prototype.flat@npm:1.3.2" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-shim-unscopables: ^1.0.0 + checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.2": + version: 1.3.2 + resolution: "array.prototype.flatmap@npm:1.3.2" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + es-shim-unscopables: ^1.0.0 + checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.2": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" + dependencies: + array-buffer-byte-length: ^1.0.1 + call-bind: ^1.0.5 + define-properties: ^1.2.1 + es-abstract: ^1.22.3 + es-errors: ^1.2.1 + get-intrinsic: ^1.2.3 + is-array-buffer: ^3.0.4 + is-shared-array-buffer: ^1.0.2 + checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e + languageName: node + linkType: hard + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + languageName: node + linkType: hard + +"attr-accept@npm:^2.2.2": + version: 2.2.2 + resolution: "attr-accept@npm:2.2.2" + checksum: 496f7249354ab53e522510c1dc8f67a1887382187adde4dc205507d2f014836a247073b05e9d9ea51e2e9c7f71b0d2aa21730af80efa9af2d68303e5f0565c4d + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.5, available-typed-arrays@npm:^1.0.6": + version: 1.0.6 + resolution: "available-typed-arrays@npm:1.0.6" + checksum: 8295571eb86447138adf64a0df0c08ae61250b17190bba30e1fae8c80a816077a6d028e5506f602c382c0197d3080bae131e92e331139d55460989580eeae659 + languageName: node + linkType: hard + +"axios@npm:^1.5.1": + version: 1.6.7 + resolution: "axios@npm:1.6.7" + dependencies: + follow-redirects: ^1.15.4 + form-data: ^4.0.0 + proxy-from-env: ^1.1.0 + checksum: 87d4d429927d09942771f3b3a6c13580c183e31d7be0ee12f09be6d5655304996bb033d85e54be81606f4e89684df43be7bf52d14becb73a12727bf33298a082 + languageName: node + linkType: hard + +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": ^29.7.0 + "@types/babel__core": ^7.1.14 + babel-plugin-istanbul: ^6.1.1 + babel-preset-jest: ^29.6.3 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + slash: ^3.0.0 + peerDependencies: + "@babel/core": ^7.8.0 + checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@istanbuljs/load-nyc-config": ^1.0.0 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-instrument: ^5.0.4 + test-exclude: ^6.0.0 + checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a + languageName: node + linkType: hard + +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": ^7.3.3 + "@babel/types": ^7.3.3 + "@types/babel__core": ^7.1.14 + "@types/babel__traverse": ^7.0.6 + checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 + languageName: node + linkType: hard + +"babel-plugin-macros@npm:^3.1.0": + version: 3.1.0 + resolution: "babel-plugin-macros@npm:3.1.0" + dependencies: + "@babel/runtime": ^7.12.5 + cosmiconfig: ^7.0.0 + resolve: ^1.19.0 + checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.8": + version: 0.4.8 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.8" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.5.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 22857b87268b354e095452199464accba5fd8f690558a2f24b0954807ca2494b96da8d5c13507955802427582015160bce26a66893acf6da5dafbed8b336cf79 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.9.0": + version: 0.9.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.5.0 + core-js-compat: ^3.34.0 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 65bbf59fc0145c7a264822777403632008dce00015b4b5c7ec359125ef4faf9e8f494ae5123d2992104feb6f19a3cff85631992862e48b6d7bd64eb7e755ee1f + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.5.5": + version: 0.5.5 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.5.0 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 3a9b4828673b23cd648dcfb571eadcd9d3fadfca0361d0a7c6feeb5a30474e92faaa49f067a6e1c05e49b6a09812879992028ff3ef3446229ff132d6e1de7eb6 + languageName: node + linkType: hard + +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.0.1 + resolution: "babel-preset-current-node-syntax@npm:1.0.1" + dependencies: + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-bigint": ^7.8.3 + "@babel/plugin-syntax-class-properties": ^7.8.3 + "@babel/plugin-syntax-import-meta": ^7.8.3 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.8.3 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-top-level-await": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"balanced-match@npm:^2.0.0": + version: 2.0.0 + resolution: "balanced-match@npm:2.0.0" + checksum: 9a5caad6a292c5df164cc6d0c38e0eedf9a1413f42e5fece733640949d74d0052cfa9587c1a1681f772147fb79be495121325a649526957fd75b3a216d1fbc68 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"before-after-hook@npm:^2.2.0": + version: 2.2.3 + resolution: "before-after-hook@npm:2.2.3" + checksum: a1a2430976d9bdab4cd89cb50d27fa86b19e2b41812bf1315923b0cba03371ebca99449809226425dd3bcef20e010db61abdaff549278e111d6480034bebae87 + languageName: node + linkType: hard + +"bin-links@npm:^4.0.1": + version: 4.0.3 + resolution: "bin-links@npm:4.0.3" + dependencies: + cmd-shim: ^6.0.0 + npm-normalize-package-bin: ^3.0.0 + read-cmd-shim: ^4.0.0 + write-file-atomic: ^5.0.0 + checksum: 3b3ee22efc38d608479d51675c8958a841b8b55b8975342ce86f28ac4e0bb3aef46e9dbdde976c6dc1fe1bd2aa00d42e00869ad35b57ee6d868f39f662858911 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.2.0 + resolution: "binary-extensions@npm:2.2.0" + checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 + languageName: node + linkType: hard + +"bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: ^5.5.0 + inherits: ^2.0.4 + readable-stream: ^3.4.0 + checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.2, braces@npm:~3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + languageName: node + linkType: hard + +"browserslist@npm:^4.22.2": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" + dependencies: + caniuse-lite: ^1.0.30001565 + electron-to-chromium: ^1.4.601 + node-releases: ^2.0.14 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 33ddfcd9145220099a7a1ac533cecfe5b7548ffeb29b313e1b57be6459000a1f8fa67e781cf4abee97268ac594d44134fcc4a6b2b4750ceddc9796e3a22076d9 + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: ^0.4.0 + checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + languageName: node + linkType: hard + +"builtins@npm:^5.0.0": + version: 5.0.1 + resolution: "builtins@npm:5.0.1" + dependencies: + semver: ^7.0.0 + checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 + languageName: node + linkType: hard + +"byte-size@npm:^8.1.1": + version: 8.1.1 + resolution: "byte-size@npm:8.1.1" + checksum: 65f00881ffd3c2b282fe848ed954fa4ff8363eaa3f652102510668b90b3fad04d81889486ee1b641ee0d8c8b75cf32201f3b309e6b5fbb6cc869b48a91b62d3e + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.2 + resolution: "cacache@npm:18.0.2" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: 0250df80e1ad0c828c956744850c5f742c24244e9deb5b7dc81bca90f8c10e011e132ecc58b64497cc1cad9a98968676147fb6575f4f94722f7619757b17a11b + languageName: node + linkType: hard + +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5": + version: 1.0.5 + resolution: "call-bind@npm:1.0.5" + dependencies: + function-bind: ^1.1.2 + get-intrinsic: ^1.2.1 + set-function-length: ^1.1.1 + checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001579 + resolution: "caniuse-lite@npm:1.0.30001579" + checksum: 7539dcff74d2243a30c428393dc690c87fa34d7da36434731853e9bcfe783757763b2971f5cc878e25242a93e184e53f167d11bd74955af956579f7af71cc764 + languageName: node + linkType: hard + +"chalk@npm:5.3.0, chalk@npm:^5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 + languageName: node + linkType: hard + +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d + languageName: node + linkType: hard + +"chokidar@npm:>=3.0.0 <4.0.0": + version: 3.5.3 + resolution: "chokidar@npm:3.5.3" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 + languageName: node + linkType: hard + +"ci-info@npm:^4.0.0": + version: 4.0.0 + resolution: "ci-info@npm:4.0.0" + checksum: 122fe41c5eb8d0b5fa0ab6fd674c5ddcf2dc59766528b062a0144ff0d913cfb210ef925ec52110e7c2a7f4e603d5f0e8b91cfe68867e196e9212fa0b94d0a08a + languageName: node + linkType: hard + +"cjs-module-lexer@npm:^1.0.0": + version: 1.2.3 + resolution: "cjs-module-lexer@npm:1.2.3" + checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: ^3.1.0 + checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-cursor@npm:4.0.0" + dependencies: + restore-cursor: ^4.0.0 + checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc + languageName: node + linkType: hard + +"cli-spinners@npm:^2.5.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c + languageName: node + linkType: hard + +"cli-truncate@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-truncate@npm:4.0.0" + dependencies: + slice-ansi: ^5.0.0 + string-width: ^7.0.0 + checksum: d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d + languageName: node + linkType: hard + +"cli-width@npm:^4.1.0": + version: 4.1.0 + resolution: "cli-width@npm:4.1.0" + checksum: 0a79cff2dbf89ef530bcd54c713703ba94461457b11e5634bd024c78796ed21401e32349c004995954e06f442d82609287e7aabf6a5f02c919a1cf3b9b6854ff + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + +"clone-deep@npm:^4.0.1": + version: 4.0.1 + resolution: "clone-deep@npm:4.0.1" + dependencies: + is-plain-object: ^2.0.4 + kind-of: ^6.0.2 + shallow-clone: ^3.0.0 + checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + +"cmd-shim@npm:^6.0.0": + version: 6.0.2 + resolution: "cmd-shim@npm:6.0.2" + checksum: df3a01fc4d72a49b450985b991205e65774b28e7f74a2e4d2a11fd0df8732e3828f9e7b644050def3cd0be026cbd3ee46a1f50ce5f57d0b3fb5afe335bdfacde + languageName: node + linkType: hard + +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:^1.1.4, color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"colord@npm:^2.9.3": + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 + languageName: node + linkType: hard + +"colorette@npm:^2.0.20": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + languageName: node + linkType: hard + +"columnify@npm:^1.6.0": + version: 1.6.0 + resolution: "columnify@npm:1.6.0" + dependencies: + strip-ansi: ^6.0.1 + wcwidth: ^1.0.0 + checksum: 0d590023616a27bcd2135c0f6ddd6fac94543263f9995538bbe391068976e30545e5534d369737ec7c3e9db4e53e70a277462de46aeb5a36e6997b4c7559c335 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: ~1.0.0 + checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + languageName: node + linkType: hard + +"commander@npm:11.1.0": + version: 11.1.0 + resolution: "commander@npm:11.1.0" + checksum: fd1a8557c6b5b622c89ecdfde703242ab7db3b628ea5d1755784c79b8e7cb0d74d65b4a262289b533359cd58e1bfc0bf50245dfbcd2954682a6f367c828b79ef + languageName: node + linkType: hard + +"commander@npm:7": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + +"common-ancestor-path@npm:^1.0.1": + version: 1.0.1 + resolution: "common-ancestor-path@npm:1.0.1" + checksum: 1d2e4186067083d8cc413f00fc2908225f04ae4e19417ded67faa6494fb313c4fcd5b28a52326d1a62b466e2b3a4325e92c31133c5fee628cdf8856b3a57c3d7 + languageName: node + linkType: hard + +"compare-func@npm:^2.0.0": + version: 2.0.0 + resolution: "compare-func@npm:2.0.0" + dependencies: + array-ify: ^1.0.0 + dot-prop: ^5.1.0 + checksum: fb71d70632baa1e93283cf9d80f30ac97f003aabee026e0b4426c9716678079ef5fea7519b84d012cbed938c476493866a38a79760564a9e21ae9433e40e6f0d + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"config-chain@npm:^1.1.13": + version: 1.1.13 + resolution: "config-chain@npm:1.1.13" + dependencies: + ini: ^1.3.4 + proto-list: ~1.2.1 + checksum: 828137a28e7c2fc4b7fb229bd0cd6c1397bcf83434de54347e608154008f411749041ee392cbe42fab6307e02de4c12480260bf769b7d44b778fdea3839eafab + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"conventional-changelog-angular@npm:^7.0.0": + version: 7.0.0 + resolution: "conventional-changelog-angular@npm:7.0.0" + dependencies: + compare-func: ^2.0.0 + checksum: 2478962ad7ce42878449ba3568347d704f22c5c9af1cd36916b5600734bd7f82c09712a338c649195c44e907f1b0372ce52d6cb51df643f495c89af05ad4bc48 + languageName: node + linkType: hard + +"conventional-changelog-core@npm:^7.0.0": + version: 7.0.0 + resolution: "conventional-changelog-core@npm:7.0.0" + dependencies: + "@hutson/parse-repository-url": ^5.0.0 + add-stream: ^1.0.0 + conventional-changelog-writer: ^7.0.0 + conventional-commits-parser: ^5.0.0 + git-raw-commits: ^4.0.0 + git-semver-tags: ^7.0.0 + hosted-git-info: ^7.0.0 + normalize-package-data: ^6.0.0 + read-pkg: ^8.0.0 + read-pkg-up: ^10.0.0 + checksum: 0409bd06acdcab5c2798e9e66cc015d93cced5848fe12e56f54bfaf4c6be7ec2a876fc3bc64daaed2464a7a49a7fb9860b51247bd05727bbebbae6e83d3e7a72 + languageName: node + linkType: hard + +"conventional-changelog-preset-loader@npm:^4.1.0": + version: 4.1.0 + resolution: "conventional-changelog-preset-loader@npm:4.1.0" + checksum: 8813c34884a9e3f4be9f3a9ffa216012ee40ef8c0eb1593a70fa8ab906e08de09cab9e0b769b187a43456dbcb24b01a517b3798ebc5b8b9264af2e32c976d9c9 + languageName: node + linkType: hard + +"conventional-changelog-writer@npm:^7.0.0, conventional-changelog-writer@npm:^7.0.1": + version: 7.0.1 + resolution: "conventional-changelog-writer@npm:7.0.1" + dependencies: + conventional-commits-filter: ^4.0.0 + handlebars: ^4.7.7 + json-stringify-safe: ^5.0.1 + meow: ^12.0.1 + semver: ^7.5.2 + split2: ^4.0.0 + bin: + conventional-changelog-writer: cli.mjs + checksum: 6d1e2ef2d75752c74d87321b9e33562f37a0734bbdb69ed48ce6cf868168e7847d5cf5238402ebd612ac763f521ba063aab452766d39ee81f5748b93a79ae51f + languageName: node + linkType: hard + +"conventional-commits-filter@npm:^4.0.0": + version: 4.0.0 + resolution: "conventional-commits-filter@npm:4.0.0" + checksum: 46d2d90531f024d596f61d353876276e5357adb5c4684e042467bb7d159feb0a2831b74656bd3038ac9ec38d99b0b24ac39f319ad511861e1299c4cdfb5a119a + languageName: node + linkType: hard + +"conventional-commits-parser@npm:^5.0.0": + version: 5.0.0 + resolution: "conventional-commits-parser@npm:5.0.0" + dependencies: + JSONStream: ^1.3.5 + is-text-path: ^2.0.0 + meow: ^12.0.1 + split2: ^4.0.0 + bin: + conventional-commits-parser: cli.mjs + checksum: bb92a0bfe41802330d2d14ddb0f912fd65dd355f1aa294e708f4891aac95c580919a70580b9f26563c24c3335baaed2ce003104394a8fa5ba61eeb3889e45df0 + languageName: node + linkType: hard + +"conventional-recommended-bump@npm:^9.0.0": + version: 9.0.0 + resolution: "conventional-recommended-bump@npm:9.0.0" + dependencies: + conventional-changelog-preset-loader: ^4.1.0 + conventional-commits-filter: ^4.0.0 + conventional-commits-parser: ^5.0.0 + git-raw-commits: ^4.0.0 + git-semver-tags: ^7.0.0 + meow: ^12.0.1 + bin: + conventional-recommended-bump: cli.mjs + checksum: 0842628777609ef17f1b4f6bb11edbbc243bcc72ae5265e92eb24cac4206e5eadbea48f4a2b0732fbf9c3cea7d1369a08f93fd9ec9755fbf54e6dddb2b88e757 + languageName: node + linkType: hard + +"convert-source-map@npm:^1.5.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + +"copy-to-clipboard@npm:^3.3.3": + version: 3.3.3 + resolution: "copy-to-clipboard@npm:3.3.3" + dependencies: + toggle-selection: ^1.0.6 + checksum: e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf + languageName: node + linkType: hard + +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.34.0": + version: 3.35.1 + resolution: "core-js-compat@npm:3.35.1" + dependencies: + browserslist: ^4.22.2 + checksum: 4c1a7076d31fa489eec5c46eb11c7127703f9756b5fed1eab9bf27b7f0f151247886d3fa488911078bd2801a5dfa12a9ea2ecb7a4e61dfa460b2c291805f503b + languageName: node + linkType: hard + +"core-js@npm:^3.29.0": + version: 3.35.1 + resolution: "core-js@npm:3.35.1" + checksum: e246af6b634be3763ffe3ce6ac4601b4dc5b928006fb6c95e5d08ecd82a2413bf36f00ffe178b89c9a8e94000288933a78a9881b2c9498e6cf312b031013b952 + languageName: node + linkType: hard + +"cosmiconfig@npm:^7.0.0": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.2.1 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.10.0 + checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + languageName: node + linkType: hard + +"cosmiconfig@npm:^9.0.0": + version: 9.0.0 + resolution: "cosmiconfig@npm:9.0.0" + dependencies: + env-paths: ^2.2.1 + import-fresh: ^3.3.0 + js-yaml: ^4.1.0 + parse-json: ^5.2.0 + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: a30c424b53d442ea0bdd24cb1b3d0d8687c8dda4a17ab6afcdc439f8964438801619cdb66e8e79f63b9caa3e6586b60d8bab9ce203e72df6c5e80179b971fe8f + languageName: node + linkType: hard + +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + prompts: ^2.0.1 + bin: + create-jest: bin/create-jest.js + checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"css-functions-list@npm:^3.2.1": + version: 3.2.1 + resolution: "css-functions-list@npm:3.2.1" + checksum: 57d7deb3b05e84d95b88ba9b3244cf60d33b40652b3357f084c805b24a9febda5987ade44ef25a56be41e73249a7dcc157abd704d8a0e998b2c1c2e2d5de6461 + languageName: node + linkType: hard + +"css-tree@npm:^2.3.1": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: 2.0.30 + source-map-js: ^1.0.1 + checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 + languageName: node + linkType: hard + +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + +"cssfontparser@npm:^1.2.1": + version: 1.2.1 + resolution: "cssfontparser@npm:1.2.1" + checksum: 952d487cddab591fb944f2a4c326a7736bc963784a6d92b6ad4051f3bf5ee49a732eff62e29a52ff085197cb07f5bd66525a2245ded7fd356113ac81be9238b9 + languageName: node + linkType: hard + +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: ~0.3.6 + checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 + languageName: node + linkType: hard + +"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0": + version: 3.2.4 + resolution: "d3-array@npm:3.2.4" + dependencies: + internmap: 1 - 2 + checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 + languageName: node + linkType: hard + +"d3-axis@npm:3": + version: 3.0.0 + resolution: "d3-axis@npm:3.0.0" + checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b + languageName: node + linkType: hard + +"d3-brush@npm:3": + version: 3.0.0 + resolution: "d3-brush@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 3 + d3-transition: 3 + checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 + languageName: node + linkType: hard + +"d3-chord@npm:3": + version: 3.0.1 + resolution: "d3-chord@npm:3.0.1" + dependencies: + d3-path: 1 - 3 + checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b + languageName: node + linkType: hard + +"d3-color@npm:1 - 3, d3-color@npm:3": + version: 3.1.0 + resolution: "d3-color@npm:3.1.0" + checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b + languageName: node + linkType: hard + +"d3-contour@npm:4": + version: 4.0.2 + resolution: "d3-contour@npm:4.0.2" + dependencies: + d3-array: ^3.2.0 + checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b + languageName: node + linkType: hard + +"d3-delaunay@npm:6": + version: 6.0.4 + resolution: "d3-delaunay@npm:6.0.4" + dependencies: + delaunator: 5 + checksum: ce6d267d5ef21a8aeadfe4606329fc80a22ab6e7748d47bc220bcc396ee8be84b77a5473033954c5ac4aa522d265ddc45d4165d30fe4787dd60a15ea66b9bbb4 + languageName: node + linkType: hard + +"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 + languageName: node + linkType: hard + +"d3-dispatch@npm:1, d3-dispatch@npm:^1.0.3": + version: 1.0.6 + resolution: "d3-dispatch@npm:1.0.6" + checksum: b4ecb016b6dda8b99aa4263b2d0a0c7b12e7dea93e4b0ce3013c94dca4d360d9ba00f5bdc15dc944cc4543af8e341067bd628f061f7b8deb642257e2ac90d06c + languageName: node + linkType: hard + +"d3-drag@npm:2 - 3, d3-drag@npm:3": + version: 3.0.0 + resolution: "d3-drag@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-selection: 3 + checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 + languageName: node + linkType: hard + +"d3-drag@npm:^1.0.4": + version: 1.2.5 + resolution: "d3-drag@npm:1.2.5" + dependencies: + d3-dispatch: 1 + d3-selection: 1 + checksum: 6e86e89aa8d511979eea1b5326709c05c2a3c2d43a93a82ed6b6f98528b2ab03b2f58f5e4f66582f2f1c0ae44f9c19f6f4f857249eb66aabc46e4942295fa0a7 + languageName: node + linkType: hard + +"d3-dsv@npm:1 - 3, d3-dsv@npm:3": + version: 3.0.1 + resolution: "d3-dsv@npm:3.0.1" + dependencies: + commander: 7 + iconv-lite: 0.6 + rw: 1 + bin: + csv2json: bin/dsv2json.js + csv2tsv: bin/dsv2dsv.js + dsv2dsv: bin/dsv2dsv.js + dsv2json: bin/dsv2json.js + json2csv: bin/json2dsv.js + json2dsv: bin/json2dsv.js + json2tsv: bin/json2dsv.js + tsv2csv: bin/dsv2dsv.js + tsv2json: bin/dsv2json.js + checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a + languageName: node + linkType: hard + +"d3-ease@npm:1 - 3, d3-ease@npm:3": + version: 3.0.1 + resolution: "d3-ease@npm:3.0.1" + checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd + languageName: node + linkType: hard + +"d3-fetch@npm:3": + version: 3.0.1 + resolution: "d3-fetch@npm:3.0.1" + dependencies: + d3-dsv: 1 - 3 + checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 + languageName: node + linkType: hard + +"d3-force@npm:3": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-quadtree: 1 - 3 + d3-timer: 1 - 3 + checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def + languageName: node + linkType: hard + +"d3-format@npm:1 - 3, d3-format@npm:3": + version: 3.1.0 + resolution: "d3-format@npm:3.1.0" + checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 + languageName: node + linkType: hard + +"d3-geo@npm:3": + version: 3.1.0 + resolution: "d3-geo@npm:3.1.0" + dependencies: + d3-array: 2.5.0 - 3 + checksum: adf82b0c105c0c5951ae0a833d4dfc479a563791ad7938579fa14e1cffd623b469d8aa7a37dc413a327fb6ac56880f3da3f6c43d4abe3c923972dd98f34f37d1 + languageName: node + linkType: hard + +"d3-hierarchy@npm:3": + version: 3.1.2 + resolution: "d3-hierarchy@npm:3.1.2" + checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 + languageName: node + linkType: hard + +"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3": + version: 3.0.1 + resolution: "d3-interpolate@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b + languageName: node + linkType: hard + +"d3-path@npm:1": + version: 1.0.9 + resolution: "d3-path@npm:1.0.9" + checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 + languageName: node + linkType: hard + +"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 + languageName: node + linkType: hard + +"d3-polygon@npm:3": + version: 3.0.1 + resolution: "d3-polygon@npm:3.0.1" + checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c + languageName: node + linkType: hard + +"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 + languageName: node + linkType: hard + +"d3-random@npm:3": + version: 3.0.1 + resolution: "d3-random@npm:3.0.1" + checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 + languageName: node + linkType: hard + +"d3-scale-chromatic@npm:3": + version: 3.0.0 + resolution: "d3-scale-chromatic@npm:3.0.0" + dependencies: + d3-color: 1 - 3 + d3-interpolate: 1 - 3 + checksum: a8ce4cb0267a17b28ebbb929f5e3071d985908a9c13b6fcaa2a198e1e018f275804d691c5794b970df0049725b7944f32297b31603d235af6414004f0c7f82c0 + languageName: node + linkType: hard + +"d3-scale@npm:4, d3-scale@npm:^4.0.2": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" + dependencies: + d3-array: 2.10.0 - 3 + d3-format: 1 - 3 + d3-interpolate: 1.2.0 - 3 + d3-time: 2.1.1 - 3 + d3-time-format: 2 - 4 + checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e + languageName: node + linkType: hard + +"d3-selection@npm:1": + version: 1.4.2 + resolution: "d3-selection@npm:1.4.2" + checksum: 2484b392259b087a98f546f2610e6a11c90f38dae6b6b20a3fc85171038fcab4c72e702788b1960a4fece88bed2e36f268096358b5b48d3c7f0d35cfbe305da6 + languageName: node + linkType: hard + +"d3-selection@npm:2 - 3, d3-selection@npm:3": + version: 3.0.0 + resolution: "d3-selection@npm:3.0.0" + checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 + languageName: node + linkType: hard + +"d3-shape@npm:3, d3-shape@npm:^3.2.0": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: ^3.1.0 + checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa + languageName: node + linkType: hard + +"d3-shape@npm:^1.3.5": + version: 1.3.7 + resolution: "d3-shape@npm:1.3.7" + dependencies: + d3-path: 1 + checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 + languageName: node + linkType: hard + +"d3-time-format@npm:2 - 4, d3-time-format@npm:4": + version: 4.1.0 + resolution: "d3-time-format@npm:4.1.0" + dependencies: + d3-time: 1 - 3 + checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 + languageName: node + linkType: hard + +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3": + version: 3.1.0 + resolution: "d3-time@npm:3.1.0" + dependencies: + d3-array: 2 - 3 + checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 + languageName: node + linkType: hard + +"d3-timer@npm:1 - 3, d3-timer@npm:3": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 + languageName: node + linkType: hard + +"d3-timer@npm:^1.0.5": + version: 1.0.10 + resolution: "d3-timer@npm:1.0.10" + checksum: f7040953672deb2dfa03830ace80dbbcb212f80890218eba15dcca6f33f74102d943023ccc2a563295195cd8c63639bb2410ef1691c8fecff4a114fdf5c666f4 + languageName: node + linkType: hard + +"d3-transition@npm:2 - 3, d3-transition@npm:3": + version: 3.0.1 + resolution: "d3-transition@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + d3-dispatch: 1 - 3 + d3-ease: 1 - 3 + d3-interpolate: 1 - 3 + d3-timer: 1 - 3 + peerDependencies: + d3-selection: 2 - 3 + checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea + languageName: node + linkType: hard + +"d3-zoom@npm:3": + version: 3.0.0 + resolution: "d3-zoom@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-drag: 2 - 3 + d3-interpolate: 1 - 3 + d3-selection: 2 - 3 + d3-transition: 2 - 3 + checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 + languageName: node + linkType: hard + +"d3@npm:^7.8.0": + version: 7.8.5 + resolution: "d3@npm:7.8.5" + dependencies: + d3-array: 3 + d3-axis: 3 + d3-brush: 3 + d3-chord: 3 + d3-color: 3 + d3-contour: 4 + d3-delaunay: 6 + d3-dispatch: 3 + d3-drag: 3 + d3-dsv: 3 + d3-ease: 3 + d3-fetch: 3 + d3-force: 3 + d3-format: 3 + d3-geo: 3 + d3-hierarchy: 3 + d3-interpolate: 3 + d3-path: 3 + d3-polygon: 3 + d3-quadtree: 3 + d3-random: 3 + d3-scale: 4 + d3-scale-chromatic: 3 + d3-selection: 3 + d3-shape: 3 + d3-time: 3 + d3-time-format: 4 + d3-timer: 3 + d3-transition: 3 + d3-zoom: 3 + checksum: e407e79731f74d946a5eb8dec2f037b5a4ad33c294409b1d3531fdf7094de48adfe364974cb37e2396bdb81e23149d56d0ede716c004d6aebb52b3cc114cd15c + languageName: node + linkType: hard + +"dagre@npm:0.8.2": + version: 0.8.2 + resolution: "dagre@npm:0.8.2" + dependencies: + graphlib: ^2.1.5 + lodash: ^4.17.4 + checksum: 5a0446354610d423152badf34d0870a23382a8d224e158522840513dc095bf60fbc45132f9093a5bb348597be9967a46a21f3729af1a6d8d4d98d73ed8825fa4 + languageName: node + linkType: hard + +"dargs@npm:^8.0.0": + version: 8.1.0 + resolution: "dargs@npm:8.1.0" + checksum: 33f1b8f5f08e72c8a28355a87c0e1a9b6a0fec99252ecd9cf4735e65dd5f2e19747c860251ed5747b38e7204c7915fd7a7146aee5aaef5882c69169aae8b1d09 + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c + languageName: node + linkType: hard + +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: ^2.0.6 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + +"datamapper-poc@workspace:.": + version: 0.0.0-use.local + resolution: "datamapper-poc@workspace:." + dependencies: + "@lerna-lite/cli": ^3.0.0 + "@lerna-lite/publish": ^3.0.0 + "@lerna-lite/version": ^3.0.0 + husky: ^8.0.3 + lint-staged: ^15.0.0 + languageName: unknown + linkType: soft + +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: ^2.1.1 + checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.2": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae + languageName: node + linkType: hard + +"dedent@npm:^1.0.0, dedent@npm:^1.5.1": + version: 1.5.1 + resolution: "dedent@npm:1.5.1" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: c3c300a14edf1bdf5a873f9e4b22e839d62490bc5c8d6169c1f15858a1a76733d06a9a56930e963d677a2ceeca4b6b0894cc5ea2f501aa382ca5b92af3413c2a + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + +"deepmerge-ts@npm:^5.1.0": + version: 5.1.0 + resolution: "deepmerge-ts@npm:5.1.0" + checksum: 6b57db93c2985e4a35f24b2451db31715050d143988b7d6346f4049c9aec21a6c289514b88d3ee3d6e0697e72ef5d96ff0bbb7cb75422d56fee55ee85c7168e7 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: ^1.0.2 + checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": + version: 1.1.1 + resolution: "define-data-property@npm:1.1.1" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + +"delaunator@npm:5": + version: 5.0.1 + resolution: "delaunator@npm:5.0.1" + dependencies: + robust-predicates: ^3.0.2 + checksum: 69ee43ec649b4a13b7f33c8a027fb3e8dfcb09266af324286118da757e04d3d39df619b905dca41421405c311317ccf632ecfa93db44519bacec3303c57c5a0b + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"deprecation@npm:^2.0.0": + version: 2.3.1 + resolution: "deprecation@npm:2.3.1" + checksum: f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 + languageName: node + linkType: hard + +"dequal@npm:^2.0.2, dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + +"detect-indent@npm:^7.0.0": + version: 7.0.1 + resolution: "detect-indent@npm:7.0.1" + checksum: cbf3f0b1c3c881934ca94428e1179b26ab2a587e0d719031d37a67fb506d49d067de54ff057cb1e772e75975fed5155c01cd4518306fee60988b1486e3fc7768 + languageName: node + linkType: hard + +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 + languageName: node + linkType: hard + +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"dnd-core@npm:^16.0.1": + version: 16.0.1 + resolution: "dnd-core@npm:16.0.1" + dependencies: + "@react-dnd/asap": ^5.0.1 + "@react-dnd/invariant": ^4.0.1 + redux: ^4.2.0 + checksum: b7d3ef4664f433af796f440ddd27ad9d7fef0205f26c4b7c0af6ebf612ffa9b33e64d095d3e79190c4baaed34aa36570f321ebe0d2cc8ff1031ff158a0907b3f + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: ^2.0.2 + checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: c325b5144bb406df23f4affecffc117dbaec9af03daad9ee6b510c5be647b14d28ef0a4ea5ca06d696d8ab40bb777e5fed98b985976fdef9d8790178fa1d573f + languageName: node + linkType: hard + +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": ^7.8.7 + csstype: ^3.0.2 + checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c + languageName: node + linkType: hard + +"dom-walk@npm:^0.1.0": + version: 0.1.2 + resolution: "dom-walk@npm:0.1.2" + checksum: 19eb0ce9c6de39d5e231530685248545d9cd2bd97b2cb3486e0bfc0f2a393a9addddfd5557463a932b52fdfcf68ad2a619020cd2c74a5fe46fbecaa8e80872f3 + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: ^7.0.0 + checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 + languageName: node + linkType: hard + +"dot-prop@npm:^5.1.0": + version: 5.3.0 + resolution: "dot-prop@npm:5.3.0" + dependencies: + is-obj: ^2.0.0 + checksum: d5775790093c234ef4bfd5fbe40884ff7e6c87573e5339432870616331189f7f5d86575c5b5af2dcf0f61172990f4f734d07844b1f23482fff09e3c4bead05ea + languageName: node + linkType: hard + +"dotenv@npm:^16.3.1": + version: 16.4.1 + resolution: "dotenv@npm:16.4.1" + checksum: a343f0a1d156deef8c60034f797969867af4dbccfacedd4ac15fad04547e7ffe0553b58fc3b27a5837950f0d977e38e9234943fbcec4aeced4e3d044309a76ab + languageName: node + linkType: hard + +"duplexer@npm:^0.1.1": + version: 0.1.2 + resolution: "duplexer@npm:0.1.2" + checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.601": + version: 1.4.645 + resolution: "electron-to-chromium@npm:1.4.645" + checksum: ac7d23b8123f09e2343016216b1a8f297ccfb4ae9dccefe3716023344cda8a81656916d40a87039fa3d448cac31c2c4147c6b913b22178a3a00d0221a8019513 + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 + languageName: node + linkType: hard + +"emoji-regex@npm:^10.3.0": + version: 10.3.0 + resolution: "emoji-regex@npm:10.3.0" + checksum: 5da48edfeb9462fb1ae5495cff2d79129974c696853fb0ce952cbf560f29a2756825433bf51cfd5157ec7b9f93f46f31d712e896d63e3d8ac9c3832bdb45ab73 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1, error-ex@npm:^1.3.2": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3": + version: 1.22.3 + resolution: "es-abstract@npm:1.22.3" + dependencies: + array-buffer-byte-length: ^1.0.0 + arraybuffer.prototype.slice: ^1.0.2 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.5 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.2 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + hasown: ^2.0.0 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.12 + is-weakref: ^1.0.2 + object-inspect: ^1.13.1 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 + safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 + typed-array-buffer: ^1.0.0 + typed-array-byte-length: ^1.0.0 + typed-array-byte-offset: ^1.0.0 + typed-array-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.13 + checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a + languageName: node + linkType: hard + +"es-array-method-boxes-properly@npm:^1.0.0": + version: 1.0.0 + resolution: "es-array-method-boxes-properly@npm:1.0.0" + checksum: 2537fcd1cecf187083890bc6f5236d3a26bf39237433587e5bf63392e88faae929dbba78ff0120681a3f6f81c23fe3816122982c160d63b38c95c830b633b826 + languageName: node + linkType: hard + +"es-errors@npm:^1.0.0, es-errors@npm:^1.2.1": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.2 + resolution: "es-set-tostringtag@npm:2.0.2" + dependencies: + get-intrinsic: ^1.2.2 + has-tostringtag: ^1.0.0 + hasown: ^2.0.0 + checksum: afcec3a4c9890ae14d7ec606204858441c801ff84f312538e1d1ccf1e5493c8b17bd672235df785f803756472cb4f2d49b87bde5237aef33411e74c22f194e07 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0": + version: 1.0.2 + resolution: "es-shim-unscopables@npm:1.0.2" + dependencies: + hasown: ^2.0.0 + checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.2.1": + version: 1.2.1 + resolution: "es-to-primitive@npm:1.2.1" + dependencies: + is-callable: ^1.1.4 + is-date-object: ^1.0.1 + is-symbol: ^1.0.2 + checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + languageName: node + linkType: hard + +"esbuild@npm:^0.19.3": + version: 0.19.12 + resolution: "esbuild@npm:0.19.12" + dependencies: + "@esbuild/aix-ppc64": 0.19.12 + "@esbuild/android-arm": 0.19.12 + "@esbuild/android-arm64": 0.19.12 + "@esbuild/android-x64": 0.19.12 + "@esbuild/darwin-arm64": 0.19.12 + "@esbuild/darwin-x64": 0.19.12 + "@esbuild/freebsd-arm64": 0.19.12 + "@esbuild/freebsd-x64": 0.19.12 + "@esbuild/linux-arm": 0.19.12 + "@esbuild/linux-arm64": 0.19.12 + "@esbuild/linux-ia32": 0.19.12 + "@esbuild/linux-loong64": 0.19.12 + "@esbuild/linux-mips64el": 0.19.12 + "@esbuild/linux-ppc64": 0.19.12 + "@esbuild/linux-riscv64": 0.19.12 + "@esbuild/linux-s390x": 0.19.12 + "@esbuild/linux-x64": 0.19.12 + "@esbuild/netbsd-x64": 0.19.12 + "@esbuild/openbsd-x64": 0.19.12 + "@esbuild/sunos-x64": 0.19.12 + "@esbuild/win32-arm64": 0.19.12 + "@esbuild/win32-ia32": 0.19.12 + "@esbuild/win32-x64": 0.19.12 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 2936e29107b43e65a775b78b7bc66ddd7d76febd73840ac7e825fb22b65029422ff51038a08d19b05154f543584bd3afe7d1ef1c63900429475b17fbe61cb61f + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + languageName: node + linkType: hard + +"escape-html@npm:^1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: ^4.0.1 + estraverse: ^5.2.0 + esutils: ^2.0.2 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^9.1.0": + version: 9.1.0 + resolution: "eslint-config-prettier@npm:9.1.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 + languageName: node + linkType: hard + +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: ^3.2.7 + is-core-module: ^2.13.0 + resolve: ^1.22.4 + checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.8.0": + version: 2.8.0 + resolution: "eslint-module-utils@npm:2.8.0" + dependencies: + debug: ^3.2.7 + peerDependenciesMeta: + eslint: + optional: true + checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:^2.29.1": + version: 2.29.1 + resolution: "eslint-plugin-import@npm:2.29.1" + dependencies: + array-includes: ^3.1.7 + array.prototype.findlastindex: ^1.2.3 + array.prototype.flat: ^1.3.2 + array.prototype.flatmap: ^1.3.2 + debug: ^3.2.7 + doctrine: ^2.1.0 + eslint-import-resolver-node: ^0.3.9 + eslint-module-utils: ^2.8.0 + hasown: ^2.0.0 + is-core-module: ^2.13.1 + is-glob: ^4.0.3 + minimatch: ^3.1.2 + object.fromentries: ^2.0.7 + object.groupby: ^1.0.1 + object.values: ^1.1.7 + semver: ^6.3.1 + tsconfig-paths: ^3.15.0 + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + checksum: e65159aef808136d26d029b71c8c6e4cb5c628e65e5de77f1eb4c13a379315ae55c9c3afa847f43f4ff9df7e54515c77ffc6489c6a6f81f7dd7359267577468c + languageName: node + linkType: hard + +"eslint-plugin-jest@npm:^27.6.3": + version: 27.6.3 + resolution: "eslint-plugin-jest@npm:27.6.3" + dependencies: + "@typescript-eslint/utils": ^5.10.0 + peerDependencies: + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + jest: + optional: true + checksum: e22e8dbd941b34bb95958f035ffabb94114506b294e74d6e411bc85bc9dc57888ffd3ebb5c28316a8b7cc9d391cca35557acc64bf815f48d1dcc5ea3d28fa43a + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^5.1.3": + version: 5.1.3 + resolution: "eslint-plugin-prettier@npm:5.1.3" + dependencies: + prettier-linter-helpers: ^1.0.0 + synckit: ^0.8.6 + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: "*" + prettier: ">=3.0.0" + peerDependenciesMeta: + "@types/eslint": + optional: true + eslint-config-prettier: + optional: true + checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^4.6.0": + version: 4.6.0 + resolution: "eslint-plugin-react-hooks@npm:4.6.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 23001801f14c1d16bf0a837ca7970d9dd94e7b560384b41db378b49b6e32dc43d6e2790de1bd737a652a86f81a08d6a91f402525061b47719328f586a57e86c3 + languageName: node + linkType: hard + +"eslint-plugin-react-refresh@npm:^0.4.5": + version: 0.4.5 + resolution: "eslint-plugin-react-refresh@npm:0.4.5" + peerDependencies: + eslint: ">=7" + checksum: 953e665f6aaf097291a2bb07fde05466338aecd169bcd6faa708b50166912e3a757f45a45252cf7738b5e0d986224d363cc227864e98c979fe9978770b2b9f42 + languageName: node + linkType: hard + +"eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + +"eslint@npm:^8.56.0": + version: 8.56.0 + resolution: "eslint@npm:8.56.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.4 + "@eslint/js": 8.56.0 + "@humanwhocodes/config-array": ^0.11.13 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + "@ungap/structured-clone": ^1.2.0 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 883436d1e809b4a25d9eb03d42f584b84c408dbac28b0019f6ea07b5177940bf3cca86208f749a6a1e0039b63e085ee47aca1236c30721e91f0deef5cc5a5136 + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: ^8.9.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + languageName: node + linkType: hard + +"esquery@npm:^1.4.2": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" + dependencies: + estraverse: ^5.1.0 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 + languageName: node + linkType: hard + +"execa@npm:8.0.1, execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^8.0.1 + human-signals: ^5.0.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^4.1.0 + strip-final-newline: ^3.0.0 + checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.0 + human-signals: ^2.1.0 + is-stream: ^2.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^4.0.1 + onetime: ^5.1.2 + signal-exit: ^3.0.3 + strip-final-newline: ^2.0.0 + checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 + languageName: node + linkType: hard + +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"external-editor@npm:^3.1.0": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: ^0.7.0 + iconv-lite: ^0.4.24 + tmp: ^0.0.33 + checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-diff@npm:^1.1.2": + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + +"fast-xml-parser@npm:^4.3.4": + version: 4.3.4 + resolution: "fast-xml-parser@npm:4.3.4" + dependencies: + strnum: ^1.0.5 + bin: + fxparser: src/cli/cli.js + checksum: ab88177343f6d3d971d53462db3011003a83eb8a8db704840127ddaaf27105ea90cdf7903a0f9b2e1279ccc4adfca8dfc0277b33bae6262406f10c16bd60ccf9 + languageName: node + linkType: hard + +"fastest-levenshtein@npm:^1.0.16": + version: 1.0.16 + resolution: "fastest-levenshtein@npm:1.0.16" + checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.16.0 + resolution: "fastq@npm:1.16.0" + dependencies: + reusify: ^1.0.4 + checksum: 1d40ed1f100ae625e5720484e8602b7ad07649370f1cbc3e34a6b9630a0bfed6946bab0322d8a368a1e3cde87bb9bbb8d3bc2ae01a0c1f022fac1d07c04e4feb + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: 2.1.1 + checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 + languageName: node + linkType: hard + +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: ^1.0.0 + web-streams-polyfill: ^3.0.3 + checksum: f19bc28a2a0b9626e69fd7cf3a05798706db7f6c7548da657cbf5026a570945f5eeaedff52007ea35c8bcd3d237c58a20bf1543bc568ab2422411d762dd3d5bf + languageName: node + linkType: hard + +"figures@npm:^5.0.0": + version: 5.0.0 + resolution: "figures@npm:5.0.0" + dependencies: + escape-string-regexp: ^5.0.0 + is-unicode-supported: ^1.2.0 + checksum: e6e8b6d1df2f554d4effae4a5ceff5d796f9449f6d4e912d74dab7d5f25916ecda6c305b9084833157d56485a0c78b37164430ddc5675bcee1330e346710669e + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" + dependencies: + flat-cache: ^4.0.0 + checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f + languageName: node + linkType: hard + +"file-saver@npm:^2.0.5": + version: 2.0.5 + resolution: "file-saver@npm:2.0.5" + checksum: c62d96e5cebc58b4bdf3ae8a60d5cf9607ad82f75f798c33a4ee63435ac2203002584d5256a2a780eda7feb5e19dc3b6351c2212e58b3f529e63d265a7cc79f7 + languageName: node + linkType: hard + +"file-selector@npm:^0.6.0": + version: 0.6.0 + resolution: "file-selector@npm:0.6.0" + dependencies: + tslib: ^2.4.0 + checksum: 7d051b6e5d793f3c6e2ab287ba5e7c2c6a0971bccc9d56e044c8047ba483e18f60fc0b5771c951dc707c0d15f4f36ccb4f1f1aaf385d21ec8f7700dadf8325ba + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + languageName: node + linkType: hard + +"find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf + languageName: node + linkType: hard + +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: ^5.0.0 + path-exists: ^4.0.0 + checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"find-up@npm:^6.3.0": + version: 6.3.0 + resolution: "find-up@npm:6.3.0" + dependencies: + locate-path: ^7.1.0 + path-exists: ^5.0.0 + checksum: 9a21b7f9244a420e54c6df95b4f6fc3941efd3c3e5476f8274eb452f6a85706e7a6a90de71353ee4f091fcb4593271a6f92810a324ec542650398f928783c280 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.3 + rimraf: ^3.0.2 + checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec + languageName: node + linkType: hard + +"flat-cache@npm:^4.0.0": + version: 4.0.0 + resolution: "flat-cache@npm:4.0.0" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.4 + rimraf: ^5.0.5 + checksum: 744d5f111aeecdfb963faab7089230c737a90c325137251b4fe144fd76932e19738a861e356c5ee828bb310592b42a1da667912d74d0403f1f4ef75be8bfdbac + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 + languageName: node + linkType: hard + +"focus-trap@npm:7.5.2": + version: 7.5.2 + resolution: "focus-trap@npm:7.5.2" + dependencies: + tabbable: ^6.2.0 + checksum: 1eee29d18c152ef08849a5cfd6d462a6741ec15f08938a9d87336d47807f07dbfff2e6405b16b5ce96745eb86b60f3dcdd87b63f0ad240e47252254d2c248d40 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.15.4": + version: 1.15.5 + resolution: "follow-redirects@npm:1.15.5" + peerDependenciesMeta: + debug: + optional: true + checksum: 5ca49b5ce6f44338cbfc3546823357e7a70813cecc9b7b768158a1d32c1e62e7407c944402a918ea8c38ae2e78266312d617dc68783fac502cbb55e1047b34ec + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + languageName: node + linkType: hard + +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: ^3.1.2 + checksum: 82a34df292afadd82b43d4a740ce387bc08541e0a534358425193017bf9fb3567875dc5f69564984b1da979979b70703aa73dee715a17b6c229752ae736dd9db + languageName: node + linkType: hard + +"fs-extra@npm:^11.2.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + +"gauge@npm:^5.0.0": + version: 5.0.1 + resolution: "gauge@npm:5.0.1" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^4.0.1 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 09b1eb8d8c850df7e4e2822feef27427afc845d4839fa13a08ddad74f882caf668dd1e77ac5e059d3e9a7b0cef59b706d28be40e1dc5fd326da32965e1f206a6 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-east-asian-width@npm:^1.0.0": + version: 1.2.0 + resolution: "get-east-asian-width@npm:1.2.0" + checksum: ea55f4d4a42c4b00d3d9be3111bc17eb0161f60ed23fc257c1390323bb780a592d7a8bdd550260fd4627dabee9a118cdfa3475ae54edca35ebcd3bdae04179e3 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.2.3": + version: 1.2.3 + resolution: "get-intrinsic@npm:1.2.3" + dependencies: + es-errors: ^1.0.0 + function-bind: ^1.1.2 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + hasown: ^2.0.0 + checksum: 497fe6e444a2c570d174486c2450fc2b8c5020ae33a945a4b3d06c88bd69fb02a4611163e7a5bd9a5f61162e85ee83e55f06400dd3de108d6407eea32c6330b7 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": + version: 1.2.2 + resolution: "get-intrinsic@npm:1.2.2" + dependencies: + function-bind: ^1.1.2 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + hasown: ^2.0.0 + checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417 + languageName: node + linkType: hard + +"get-node-dimensions@npm:^1.2.1": + version: 1.2.1 + resolution: "get-node-dimensions@npm:1.2.1" + checksum: a68502769588a62a1005a22687517474f9cd426817403ed15fe7b411a2fdeb792ded5f52b3647051e2e982e01681f3010d25dd5679d754dea1d4e904e98d89b6 + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad + languageName: node + linkType: hard + +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.0.0": + version: 1.0.0 + resolution: "get-symbol-description@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + languageName: node + linkType: hard + +"git-raw-commits@npm:^4.0.0": + version: 4.0.0 + resolution: "git-raw-commits@npm:4.0.0" + dependencies: + dargs: ^8.0.0 + meow: ^12.0.1 + split2: ^4.0.0 + bin: + git-raw-commits: cli.mjs + checksum: 95546f4afcb33cf00ff638f7fec55ad61d4d927447737900e1f6fcbbdbb341b3f150908424cc62acb6d9faaea6f1e8f55d0697b899f0589af9d2733afb20abfb + languageName: node + linkType: hard + +"git-semver-tags@npm:^7.0.0": + version: 7.0.1 + resolution: "git-semver-tags@npm:7.0.1" + dependencies: + meow: ^12.0.1 + semver: ^7.5.2 + bin: + git-semver-tags: cli.mjs + checksum: 07b8a352bd28ad7678a2e12c91b11b5e53aff017420497bbb1cba0645e609f58d0a7d02d5f2ea6c7cd3019d7631ce7737f64cc90c47d944753c6bd2a36c03211 + languageName: node + linkType: hard + +"git-up@npm:^7.0.0": + version: 7.0.0 + resolution: "git-up@npm:7.0.0" + dependencies: + is-ssh: ^1.4.0 + parse-url: ^8.1.0 + checksum: 2faadbab51e94d2ffb220e426e950087cc02c15d664e673bd5d1f734cfa8196fed8b19493f7bf28fe216d087d10e22a7fd9b63687e0ba7d24f0ddcfb0a266d6e + languageName: node + linkType: hard + +"git-url-parse@npm:^14.0.0": + version: 14.0.0 + resolution: "git-url-parse@npm:14.0.0" + dependencies: + git-up: ^7.0.0 + checksum: b011c5de652e60e5f19de9815d1b78b2f725deb07e73d1b9ff8ca6657406d0a6c691fbe4460017822676a80635f93099345cadbd06361b76f53c4556265d3e48 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.3.5 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"global-modules@npm:^2.0.0": + version: 2.0.0 + resolution: "global-modules@npm:2.0.0" + dependencies: + global-prefix: ^3.0.0 + checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 + languageName: node + linkType: hard + +"global-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "global-prefix@npm:3.0.0" + dependencies: + ini: ^1.3.5 + kind-of: ^6.0.2 + which: ^1.3.1 + checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d + languageName: node + linkType: hard + +"global@npm:^4.4.0": + version: 4.4.0 + resolution: "global@npm:4.4.0" + dependencies: + min-document: ^2.19.0 + process: ^0.11.10 + checksum: 9c057557c8f5a5bcfbeb9378ba4fe2255d04679452be504608dd5f13b54edf79f7be1db1031ea06a4ec6edd3b9f5f17d2d172fb47e6c69dae57fd84b7e72b77f + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" + dependencies: + type-fest: ^0.20.2 + checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c + languageName: node + linkType: hard + +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + +"globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + +"globby@npm:^14.0.0": + version: 14.0.0 + resolution: "globby@npm:14.0.0" + dependencies: + "@sindresorhus/merge-streams": ^1.0.0 + fast-glob: ^3.3.2 + ignore: ^5.2.4 + path-type: ^5.0.0 + slash: ^5.1.0 + unicorn-magic: ^0.1.0 + checksum: f331b42993e420c8f2b61a6ca062276977ea6d95f181640ff018f00200f4fe5b50f1fae7540903483e6570ca626fe16234ab88e848d43381a2529220548a9d39 + languageName: node + linkType: hard + +"globjoin@npm:^0.1.4": + version: 0.1.4 + resolution: "globjoin@npm:0.1.4" + checksum: 0a47d88d566122d9e42da946453ee38b398e0021515ac6a95d13f980ba8c1e42954e05ee26cfcbffce1ac1ee094d0524b16ce1dd874ca52408d6db5c6d39985b + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + +"graphlib@npm:^2.1.5": + version: 2.1.8 + resolution: "graphlib@npm:2.1.8" + dependencies: + lodash: ^4.17.15 + checksum: 1e0db4dea1c8187d59103d5582ecf32008845ebe2103959a51d22cb6dae495e81fb9263e22c922bca3aaecb56064a45cd53424e15a4626cfb5a0c52d0aff61a8 + languageName: node + linkType: hard + +"handlebars@npm:^4.7.7": + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" + dependencies: + minimist: ^1.2.5 + neo-async: ^2.6.2 + source-map: ^0.6.1 + uglify-js: ^3.1.4 + wordwrap: ^1.0.0 + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1": + version: 1.0.1 + resolution: "has-property-descriptors@npm:1.0.1" + dependencies: + get-intrinsic: ^1.2.2 + checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4 + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: ^1.0.3 + checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"hasown@npm:^2.0.0": + version: 2.0.0 + resolution: "hasown@npm:2.0.0" + dependencies: + function-bind: ^1.1.2 + checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 + languageName: node + linkType: hard + +"hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + languageName: node + linkType: hard + +"hosted-git-info@npm:^7.0.0, hosted-git-info@npm:^7.0.1": + version: 7.0.1 + resolution: "hosted-git-info@npm:7.0.1" + dependencies: + lru-cache: ^10.0.1 + checksum: be5280f0a20d6153b47e1ab578e09f5ae8ad734301b3ed7e547dc88a6814d7347a4888db1b4f9635cc738e3c0ef1fbff02272aba7d07c75d4c5a50ff8d618db6 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: ^2.0.0 + checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 + languageName: node + linkType: hard + +"html-tags@npm:^3.3.1": + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "http-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.2 + resolution: "https-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 + languageName: node + linkType: hard + +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c + languageName: node + linkType: hard + +"husky@npm:^8.0.3": + version: 8.0.3 + resolution: "husky@npm:8.0.3" + bin: + husky: lib/bin.js + checksum: 837bc7e4413e58c1f2946d38fb050f5d7324c6f16b0fd66411ffce5703b294bd21429e8ba58711cd331951ee86ed529c5be4f76805959ff668a337dbfa82a1b0 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6, iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + languageName: node + linkType: hard + +"ignore-walk@npm:^6.0.4": + version: 6.0.4 + resolution: "ignore-walk@npm:6.0.4" + dependencies: + minimatch: ^9.0.0 + checksum: 8161bb3232eee92367049b186a02ad35e3a47edda2de0c0eb216aa89cf6183c33c46aef22b25e1bf5105c643bd2cc2bb722f474870a93a3c56ef8cca22eb64a1 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.3.0": + version: 5.3.1 + resolution: "ignore@npm:5.3.1" + checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 + languageName: node + linkType: hard + +"ignore@npm:^5.2.4": + version: 5.3.0 + resolution: "ignore@npm:5.3.0" + checksum: 2736da6621f14ced652785cb05d86301a66d70248597537176612bd0c8630893564bd5f6421f8806b09e8472e75c591ef01672ab8059c07c6eb2c09cefe04bf9 + languageName: node + linkType: hard + +"immutable@npm:^4.0.0": + version: 4.3.5 + resolution: "immutable@npm:4.3.5" + checksum: 0e25dd5c314421faede9e1122ab26cdb638cc3edc8678c4a75dee104279b12621a30c80a480fae7f68bc7e81672f1e672e454dc0fdc7e6cf0af10809348387b8 + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"import-local@npm:^3.0.2, import-local@npm:^3.1.0": + version: 3.1.0 + resolution: "import-local@npm:3.1.0" + dependencies: + pkg-dir: ^4.2.0 + resolve-cwd: ^3.0.0 + bin: + import-local-fixture: fixtures/cli.js + checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"ini@npm:^1.3.4, ini@npm:^1.3.5": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + +"inquirer@npm:^9.2.12": + version: 9.2.12 + resolution: "inquirer@npm:9.2.12" + dependencies: + "@ljharb/through": ^2.3.11 + ansi-escapes: ^4.3.2 + chalk: ^5.3.0 + cli-cursor: ^3.1.0 + cli-width: ^4.1.0 + external-editor: ^3.1.0 + figures: ^5.0.0 + lodash: ^4.17.21 + mute-stream: 1.0.0 + ora: ^5.4.1 + run-async: ^3.0.0 + rxjs: ^7.8.1 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wrap-ansi: ^6.2.0 + checksum: 8c372832367f5adb4bb08a0c3ee3b8b16e83202c125d1a681ece2c0ef2f00a5d7d6589a501fd58a0249b4ad49a8013584ac58ae12a20d29b1c24a0ec450927a5 + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.5": + version: 1.0.6 + resolution: "internal-slot@npm:1.0.6" + dependencies: + get-intrinsic: ^1.2.2 + hasown: ^2.0.0 + side-channel: ^1.0.4 + checksum: 7872454888047553ce97a3fa1da7cc054a28ec5400a9c2e9f4dbe4fe7c1d041cb8e8301467614b80d4246d50377aad2fb58860b294ed74d6700cc346b6f89549 + languageName: node + linkType: hard + +"internmap@npm:1 - 2": + version: 2.0.3 + resolution: "internmap@npm:2.0.3" + checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + +"is-bigint@npm:^1.0.1": + version: 1.0.4 + resolution: "is-bigint@npm:1.0.4" + dependencies: + has-bigints: ^1.0.1 + checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: ^2.0.0 + checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.1.0": + version: 1.1.2 + resolution: "is-boolean-object@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + +"is-ci@npm:^3.0.1": + version: 3.0.1 + resolution: "is-ci@npm:3.0.1" + dependencies: + ci-info: ^3.2.0 + bin: + is-ci: bin.js + checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.8.1": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" + dependencies: + hasown: ^2.0.0 + checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.1": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: ^1.0.0 + checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^4.0.0": + version: 4.0.0 + resolution: "is-fullwidth-code-point@npm:4.0.0" + checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^5.0.0": + version: 5.0.0 + resolution: "is-fullwidth-code-point@npm:5.0.0" + dependencies: + get-east-asian-width: ^1.0.0 + checksum: 8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 + languageName: node + linkType: hard + +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.2": + version: 2.0.2 + resolution: "is-negative-zero@npm:2.0.2" + checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a + languageName: node + linkType: hard + +"is-number-object@npm:^1.0.4": + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + languageName: node + linkType: hard + +"is-obj@npm:^2.0.0": + version: 2.0.0 + resolution: "is-obj@npm:2.0.0" + checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: ^3.0.1 + checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + +"is-regex@npm:^1.1.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "is-shared-array-buffer@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + languageName: node + linkType: hard + +"is-ssh@npm:^1.4.0": + version: 1.4.0 + resolution: "is-ssh@npm:1.4.0" + dependencies: + protocols: ^2.0.1 + checksum: 75eaa17b538bee24b661fbeb0f140226ac77e904a6039f787bea418431e2162f1f9c4c4ccad3bd169e036cd701cc631406e8c505d9fa7e20164e74b47f86f40f + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + languageName: node + linkType: hard + +"is-string@npm:^1.0.5, is-string@npm:^1.0.7": + version: 1.0.7 + resolution: "is-string@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": + version: 1.0.4 + resolution: "is-symbol@npm:1.0.4" + dependencies: + has-symbols: ^1.0.2 + checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + languageName: node + linkType: hard + +"is-text-path@npm:^2.0.0": + version: 2.0.0 + resolution: "is-text-path@npm:2.0.0" + dependencies: + text-extensions: ^2.0.0 + checksum: 3a8725fc7c0d4c7741a97993bc2fecc09a0963660394d3ee76145274366c98ad57c6791d20d4ef829835f573b1137265051c05ecd65fbe72f69bb9ab9e3babbd + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.9": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: ^1.1.14 + checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 + languageName: node + linkType: hard + +"is-typedarray@npm:^1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^1.2.0": + version: 1.3.0 + resolution: "is-unicode-supported@npm:1.3.0" + checksum: 20a1fc161afafaf49243551a5ac33b6c4cf0bbcce369fcd8f2951fbdd000c30698ce320de3ee6830497310a8f41880f8066d440aa3eb0a853e2aa4836dd89abc + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2": + version: 1.0.2 + resolution: "is-weakref@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + languageName: node + linkType: hard + +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^6.3.0 + checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.1 + resolution: "istanbul-lib-instrument@npm:6.0.1" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: fb23472e739cfc9b027cefcd7d551d5e7ca7ff2817ae5150fab99fe42786a7f7b56a29a2aa8309c37092e18297b8003f9c274f50ca4360949094d17fbac81472 + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: ^3.0.0 + make-dir: ^4.0.0 + supports-color: ^7.1.0 + checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: ^4.1.1 + istanbul-lib-coverage: ^3.0.0 + source-map: ^0.6.1 + checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.3": + version: 3.1.6 + resolution: "istanbul-reports@npm:3.1.6" + dependencies: + html-escaper: ^2.0.0 + istanbul-lib-report: ^3.0.0 + checksum: 44c4c0582f287f02341e9720997f9e82c071627e1e862895745d5f52ec72c9b9f38e1d12370015d2a71dcead794f34c7732aaef3fab80a24bc617a21c3d911d6 + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + languageName: node + linkType: hard + +"jest-canvas-mock@npm:^2.5.2": + version: 2.5.2 + resolution: "jest-canvas-mock@npm:2.5.2" + dependencies: + cssfontparser: ^1.2.1 + moo-color: ^1.0.2 + checksum: a3004d2e96473049045e49dcf98e5ea6011494048ab42b5422b3089d9ff406aaca8353e79587055d840fa145541668eb8f78613765f252ad5901a8217e91ea5d + languageName: node + linkType: hard + +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: ^5.0.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 + languageName: node + linkType: hard + +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + co: ^4.6.0 + dedent: ^1.0.0 + is-generator-fn: ^2.0.0 + jest-each: ^29.7.0 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + pretty-format: ^29.7.0 + pure-rand: ^6.0.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 + languageName: node + linkType: hard + +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + create-jest: ^29.7.0 + exit: ^0.1.2 + import-local: ^3.0.2 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + yargs: ^17.3.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 + languageName: node + linkType: hard + +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@jest/test-sequencer": ^29.7.0 + "@jest/types": ^29.6.3 + babel-jest: ^29.7.0 + chalk: ^4.0.0 + ci-info: ^3.2.0 + deepmerge: ^4.2.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-circus: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-get-type: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-runner: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + micromatch: ^4.0.4 + parse-json: ^5.2.0 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-json-comments: ^3.1.1 + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff + languageName: node + linkType: hard + +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^29.6.3 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: ^3.0.0 + checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + jest-util: ^29.7.0 + pretty-format: ^29.7.0 + checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c + languageName: node + linkType: hard + +"jest-environment-jsdom@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/jsdom": ^20.0.0 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + jsdom: ^20.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 + languageName: node + linkType: hard + +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/graceful-fs": ^4.1.3 + "@types/node": "*" + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + walker: ^1.0.8 + dependenciesMeta: + fsevents: + optional: true + checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd + languageName: node + linkType: hard + +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": ^7.12.13 + "@jest/types": ^29.6.3 + "@types/stack-utils": ^2.0.0 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 + languageName: node + linkType: hard + +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-util: ^29.7.0 + checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 + languageName: node + linkType: hard + +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.7.0 + checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 + languageName: node + linkType: hard + +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-pnp-resolver: ^1.2.2 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + resolve: ^1.20.0 + resolve.exports: ^2.0.0 + slash: ^3.0.0 + checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 + languageName: node + linkType: hard + +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/environment": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + emittery: ^0.13.1 + graceful-fs: ^4.2.9 + jest-docblock: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-leak-detector: ^29.7.0 + jest-message-util: ^29.7.0 + jest-resolve: ^29.7.0 + jest-runtime: ^29.7.0 + jest-util: ^29.7.0 + jest-watcher: ^29.7.0 + jest-worker: ^29.7.0 + p-limit: ^3.1.0 + source-map-support: 0.5.13 + checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb + languageName: node + linkType: hard + +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/globals": ^29.7.0 + "@jest/source-map": ^29.6.3 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + cjs-module-lexer: ^1.0.0 + collect-v8-coverage: ^1.0.0 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + strip-bom: ^4.0.0 + checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@babel/generator": ^7.7.2 + "@babel/plugin-syntax-jsx": ^7.7.2 + "@babel/plugin-syntax-typescript": ^7.7.2 + "@babel/types": ^7.3.3 + "@jest/expect-utils": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + chalk: ^4.0.0 + expect: ^29.7.0 + graceful-fs: ^4.2.9 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + natural-compare: ^1.4.0 + pretty-format: ^29.7.0 + semver: ^7.5.3 + checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad + languageName: node + linkType: hard + +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca + languageName: node + linkType: hard + +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + camelcase: ^6.2.0 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + leven: ^3.1.0 + pretty-format: ^29.7.0 + checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae + languageName: node + linkType: hard + +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + emittery: ^0.13.1 + jest-util: ^29.7.0 + string-length: ^4.0.1 + checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f + languageName: node + linkType: hard + +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "*" + jest-util: ^29.7.0 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 + languageName: node + linkType: hard + +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/types": ^29.6.3 + import-local: ^3.0.2 + jest-cli: ^29.7.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: ^1.0.7 + esprima: ^4.0.0 + bin: + js-yaml: bin/js-yaml.js + checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + +"jsdom@npm:^20.0.0": + version: 20.0.3 + resolution: "jsdom@npm:20.0.3" + dependencies: + abab: ^2.0.6 + acorn: ^8.8.1 + acorn-globals: ^7.0.0 + cssom: ^0.5.0 + cssstyle: ^2.3.0 + data-urls: ^3.0.2 + decimal.js: ^10.4.2 + domexception: ^4.0.0 + escodegen: ^2.0.0 + form-data: ^4.0.0 + html-encoding-sniffer: ^3.0.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.1 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.2 + parse5: ^7.1.1 + saxes: ^6.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^4.1.2 + w3c-xmlserializer: ^4.0.0 + webidl-conversions: ^7.0.0 + whatwg-encoding: ^2.0.0 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + ws: ^8.11.0 + xml-name-validator: ^4.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + languageName: node + linkType: hard + +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^3.0.0": + version: 3.0.1 + resolution: "json-parse-even-better-errors@npm:3.0.1" + checksum: bf74fa3f715e56699ccd68b80a7d20908de432a3fae2d5aa2ed530a148e9d9ccdf8e6983b93d9966a553aa70dcf003ce3a7ffec2c0ce74d2a6173e3691a426f0 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + languageName: node + linkType: hard + +"json-stringify-nice@npm:^1.1.4": + version: 1.1.4 + resolution: "json-stringify-nice@npm:1.1.4" + checksum: 6ddf781148b46857ab04e97f47be05f14c4304b86eb5478369edbeacd070c21c697269964b982fc977e8989d4c59091103b1d9dc291aba40096d6cbb9a392b72 + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee + languageName: node + linkType: hard + +"json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: ^1.2.0 + bin: + json5: lib/cli.js + checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 + languageName: node + linkType: hard + +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + +"jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": + version: 1.3.1 + resolution: "jsonparse@npm:1.3.1" + checksum: 6514a7be4674ebf407afca0eda3ba284b69b07f9958a8d3113ef1005f7ec610860c312be067e450c569aab8b89635e332cee3696789c750692bb60daba627f4d + languageName: node + linkType: hard + +"just-diff-apply@npm:^5.2.0": + version: 5.5.0 + resolution: "just-diff-apply@npm:5.5.0" + checksum: ed6bbd59781542ccb786bd843038e4591e8390aa788075beb69d358051f68fbeb122bda050b7f42515d51fb64b907d5c7bea694a0543b87b24ce406cfb5f5bfa + languageName: node + linkType: hard + +"just-diff@npm:^6.0.0": + version: 6.0.2 + resolution: "just-diff@npm:6.0.2" + checksum: 1a0c7524f640cb88ab013862733e710f840927834208fd3b85cbc5da2ced97acc75e7dcfe493268ac6a6514c51dd8624d2fd9d057050efba3c02b81a6dcb7ff9 + languageName: node + linkType: hard + +"keyv@npm:^4.5.3, keyv@npm:^4.5.4": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + +"kind-of@npm:^6.0.2": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 + languageName: node + linkType: hard + +"known-css-properties@npm:^0.29.0": + version: 0.29.0 + resolution: "known-css-properties@npm:0.29.0" + checksum: daa6562e907f856cbfd58a00c42f532c9bba283388984da6a3bffb494e56612e5f23c52f30b0d9885f0ea07ad5d88bfa0470ee65017a6ce6c565289a1afd78af + languageName: node + linkType: hard + +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + languageName: node + linkType: hard + +"libnpmaccess@npm:^8.0.2": + version: 8.0.2 + resolution: "libnpmaccess@npm:8.0.2" + dependencies: + npm-package-arg: ^11.0.1 + npm-registry-fetch: ^16.0.0 + checksum: 20113f2fe4e32e3aaaa04f89cf2a7c1c907f847e274cc81d16617e5e5d5be4f801cd5709fe978bd9f9c0f6983d2cd941933a3c59393b63f7f2283bafb6a31659 + languageName: node + linkType: hard + +"libnpmpublish@npm:^9.0.3": + version: 9.0.4 + resolution: "libnpmpublish@npm:9.0.4" + dependencies: + ci-info: ^4.0.0 + normalize-package-data: ^6.0.0 + npm-package-arg: ^11.0.1 + npm-registry-fetch: ^16.0.0 + proc-log: ^3.0.0 + semver: ^7.3.7 + sigstore: ^2.2.0 + ssri: ^10.0.5 + checksum: 0f7341b222cfd7d60721804cf2e1468fe4315e7ce77389ecc475d5b3b380dc8fdf13de40a8116e3da6a1d8544cbd467545227d4f62e5a2bc1637e110c80bbf6e + languageName: node + linkType: hard + +"lilconfig@npm:3.0.0": + version: 3.0.0 + resolution: "lilconfig@npm:3.0.0" + checksum: a155f1cd24d324ab20dd6974db9ebcf3fb6f2b60175f7c052d917ff8a746b590bc1ee550f6fc3cb1e8716c8b58304e22fe2193febebc0cf16fa86d85e6f896c5 + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"lines-and-columns@npm:^2.0.3": + version: 2.0.4 + resolution: "lines-and-columns@npm:2.0.4" + checksum: f5e3e207467d3e722280c962b786dc20ebceb191821dcd771d14ab3146b6744cae28cf305ee4638805bec524ac54800e15698c853fcc53243821f88df37e4975 + languageName: node + linkType: hard + +"lint-staged@npm:^15.0.0": + version: 15.2.0 + resolution: "lint-staged@npm:15.2.0" + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 3.0.0 + listr2: 8.0.0 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + bin: + lint-staged: bin/lint-staged.js + checksum: 4fb178b8d3ff454f7874697dfbd41017630f61a06296d12ac9dfd578d078c70aff7108b67fab38af94896ef2740a1e7541c1512d0d3c688ed90e6c3af3530f0d + languageName: node + linkType: hard + +"listr2@npm:8.0.0": + version: 8.0.0 + resolution: "listr2@npm:8.0.0" + dependencies: + cli-truncate: ^4.0.0 + colorette: ^2.0.20 + eventemitter3: ^5.0.1 + log-update: ^6.0.0 + rfdc: ^1.3.0 + wrap-ansi: ^9.0.0 + checksum: 5cb110a710d14488c71d2207fc5141256abb1f21cbe5ebc12177ae640f94e040a1ef8c031b70ff9f24c4a8fa57c0825a54b534e52bdfaffc122a81082faae8ed + languageName: node + linkType: hard + +"load-json-file@npm:^7.0.1": + version: 7.0.1 + resolution: "load-json-file@npm:7.0.1" + checksum: a560288da6891778321ef993e4bdbdf05374a4f3a3aeedd5ba6b64672798c830d748cfc59a2ec9891a3db30e78b3d04172e0dcb0d4828168289a393147ca0e74 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: ^4.1.0 + checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"locate-path@npm:^7.1.0": + version: 7.2.0 + resolution: "locate-path@npm:7.2.0" + dependencies: + p-locate: ^6.0.0 + checksum: c1b653bdf29beaecb3d307dfb7c44d98a2a98a02ebe353c9ad055d1ac45d6ed4e1142563d222df9b9efebc2bcb7d4c792b507fad9e7150a04c29530b7db570f8 + languageName: node + linkType: hard + +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + languageName: node + linkType: hard + +"lodash.truncate@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.truncate@npm:4.4.2" + checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 + languageName: node + linkType: hard + +"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: ^4.1.0 + is-unicode-supported: ^0.1.0 + checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"log-update@npm:^6.0.0": + version: 6.0.0 + resolution: "log-update@npm:6.0.0" + dependencies: + ansi-escapes: ^6.2.0 + cli-cursor: ^4.0.0 + slice-ansi: ^7.0.0 + strip-ansi: ^7.1.0 + wrap-ansi: ^9.0.0 + checksum: 8803ceba2fb28626951b85de598c8d5a4f5e39f1f767cc54fd925412cc7780ba89ce1dbec24dc96fa46f89d226e1ae984534aa729dc9c9b734e36bb805428ffa + languageName: node + linkType: hard + +"loglevel@npm:^1.9.1": + version: 1.9.1 + resolution: "loglevel@npm:1.9.1" + checksum: e1c8586108c4d566122e91f8a79c8df728920e3a714875affa5120566761a24077ec8ec9e5fc388b022e39fc411ec6e090cde1b5775871241b045139771eeb06 + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 58056d33e2500fbedce92f8c542e7c11b50d7d086578f14b7074d8c241422004af0718e08a6eaae8705cee09c77e39a61c1c79e9370ba689b7010c152e6a76ab + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: ^7.5.3 + checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + languageName: node + linkType: hard + +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.0 + resolution: "make-fetch-happen@npm:13.0.0" + dependencies: + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 + http-cache-semantics: ^4.1.1 + is-lambda: ^1.0.1 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + ssri: ^10.0.0 + checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: 1.0.5 + checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 + languageName: node + linkType: hard + +"mathml-tag-names@npm:^2.1.3": + version: 2.1.3 + resolution: "mathml-tag-names@npm:2.1.3" + checksum: 1201a25a137d6b9e328facd67912058b8b45b19a6c4cc62641c9476195da28a275ca6e0eca070af5378b905c2b11abc1114676ba703411db0b9ce007de921ad0 + languageName: node + linkType: hard + +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa + languageName: node + linkType: hard + +"memoize-one@npm:^6.0.0": + version: 6.0.0 + resolution: "memoize-one@npm:6.0.0" + checksum: f185ea69f7cceae5d1cb596266dcffccf545e8e7b4106ec6aa93b71ab9d16460dd118ac8b12982c55f6d6322fcc1485de139df07eacffaae94888b9b3ad7675f + languageName: node + linkType: hard + +"meow@npm:^12.0.1": + version: 12.1.1 + resolution: "meow@npm:12.1.1" + checksum: a6f3be85fbe53430ef53ab933dd790c39216eb4dbaabdbef593aa59efb40ecaa417897000175476bc33eed09e4cbce01df7ba53ba91e9a4bd84ec07024cb8914 + languageName: node + linkType: hard + +"meow@npm:^13.1.0": + version: 13.1.0 + resolution: "meow@npm:13.1.0" + checksum: 78270d501c9f77c38c4d2b8d7a191396f4c4a9ea35710221f16cb21c30869f0c866a038b704fe0782d22ae2ca254cac159bc0c478b4c2f3dd72b26afc9ff2383 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"micromatch@npm:4.0.5, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: 1.52.0 + checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + languageName: node + linkType: hard + +"min-document@npm:^2.19.0": + version: 2.19.0 + resolution: "min-document@npm:2.19.0" + dependencies: + dom-walk: ^0.1.0 + checksum: da6437562ea2228041542a2384528e74e22d1daa1a4ec439c165abf0b9d8a63e17e3b8a6dc6e0c731845e85301198730426932a0e813d23f932ca668340c9623 + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 + languageName: node + linkType: hard + +"minimatch@npm:9.0.3, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-json-stream@npm:^1.0.1": + version: 1.0.1 + resolution: "minipass-json-stream@npm:1.0.1" + dependencies: + jsonparse: ^1.3.1 + minipass: ^3.0.0 + checksum: 791b696a27d1074c4c08dab1bf5a9f3201145c2933e428f45d880467bce12c60de4703203d2928de4b162d0ae77b0bb4b55f96cb846645800aa0eb4919b3e796 + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"mobx-react-lite@npm:^3.4.0": + version: 3.4.3 + resolution: "mobx-react-lite@npm:3.4.3" + peerDependencies: + mobx: ^6.1.0 + react: ^16.8.0 || ^17 || ^18 + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 60a2580eb9a0b9988fc76959d7299f018733dc33cacaa73c45500953006d4d45e738d9ae39ccfc767ac19a75656dbc028d833282c848fbc67d8d18a2bcb5c262 + languageName: node + linkType: hard + +"mobx-react@npm:^7.6.0": + version: 7.6.0 + resolution: "mobx-react@npm:7.6.0" + dependencies: + mobx-react-lite: ^3.4.0 + peerDependencies: + mobx: ^6.1.0 + react: ^16.8.0 || ^17 || ^18 + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: 07ce6eb297ddab2cc693df7350a3e2f730194cc6eb56bd912f80e28f9427237569e0bda6b30167154faf094e7c5e5ff360abd52acd2860d9a0d0e53320617ee8 + languageName: node + linkType: hard + +"mobx@npm:^6.9.0": + version: 6.12.0 + resolution: "mobx@npm:6.12.0" + checksum: 482914d39199cadc8808907a2b9dbc634c74534d6c6d6cb34984c199aa94665ce07e7d183c0e97d54f4b06c8e42fec0a48c79484f4bbeac04a4dfd0f160290c6 + languageName: node + linkType: hard + +"moo-color@npm:^1.0.2": + version: 1.0.3 + resolution: "moo-color@npm:1.0.3" + dependencies: + color-name: ^1.1.4 + checksum: 02bf59b6bbd5e86641bc062e2dc0843e6e579e18ef67e1c8e93bfc01945df578f20e66ce16aa9632db2aa0e16806e0914a26eb345a804f45fff1ae12a8906a29 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:^2.1.1": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"mute-stream@npm:1.0.0": + version: 1.0.0 + resolution: "mute-stream@npm:1.0.0" + checksum: 36fc968b0e9c9c63029d4f9dc63911950a3bdf55c9a87f58d3a266289b67180201cade911e7699f8b2fa596b34c9db43dad37649e3f7fdd13c3bb9edb0017ee7 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"neo-async@npm:^2.6.2": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 + languageName: node + linkType: hard + +"new-github-release-url@npm:^2.0.0": + version: 2.0.0 + resolution: "new-github-release-url@npm:2.0.0" + dependencies: + type-fest: ^2.5.1 + checksum: 3d4ae0f3b775623ceed8e558b6f9850e897aea981a9c937d3ad4e018669c829beccb2c4b5a6af996726ebf86c5b7638368dfc01f3ac2e395d1df29309bc0c5ca + languageName: node + linkType: hard + +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f + languageName: node + linkType: hard + +"node-fetch@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch@npm:3.3.2" + dependencies: + data-uri-to-buffer: ^4.0.0 + fetch-blob: ^3.1.4 + formdata-polyfill: ^4.0.10 + checksum: 06a04095a2ddf05b0830a0d5302699704d59bda3102894ea64c7b9d4c865ecdff2d90fd042df7f5bc40337266961cb6183dcc808ea4f3000d024f422b462da92 + languageName: node + linkType: hard + +"node-gyp@npm:^10.0.0, node-gyp@npm:latest": + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^10.3.10 + graceful-fs: ^4.2.6 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^3.0.0 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^4.0.0 + bin: + node-gyp: bin/node-gyp.js + checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e + languageName: node + linkType: hard + +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.0 + resolution: "nopt@npm:7.2.0" + dependencies: + abbrev: ^2.0.0 + bin: + nopt: bin/nopt.js + checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 + languageName: node + linkType: hard + +"normalize-package-data@npm:^6.0.0": + version: 6.0.0 + resolution: "normalize-package-data@npm:6.0.0" + dependencies: + hosted-git-info: ^7.0.0 + is-core-module: ^2.8.1 + semver: ^7.3.5 + validate-npm-package-license: ^3.0.4 + checksum: 741211a4354ba6d618caffa98f64e0e5ec9e5575bf3aefe47f4b68e662d65f9ba1b6b2d10640c16254763ed0879288155566138b5ffe384172352f6e969c1752 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"npm-bundled@npm:^3.0.0": + version: 3.0.0 + resolution: "npm-bundled@npm:3.0.0" + dependencies: + npm-normalize-package-bin: ^3.0.0 + checksum: 110859c2d6dcd7941dac0932a29171cbde123060486a4b6e897aaf5e025abeb3d9ffcdfe9e9271992e6396b2986c2c534f1029a45a7c196f1257fa244305dbf8 + languageName: node + linkType: hard + +"npm-install-checks@npm:^6.0.0, npm-install-checks@npm:^6.2.0": + version: 6.3.0 + resolution: "npm-install-checks@npm:6.3.0" + dependencies: + semver: ^7.1.1 + checksum: 6c20dadb878a0d2f1f777405217b6b63af1299d0b43e556af9363ee6eefaa98a17dfb7b612a473a473e96faf7e789c58b221e0d8ffdc1d34903c4f71618df3b4 + languageName: node + linkType: hard + +"npm-normalize-package-bin@npm:^3.0.0": + version: 3.0.1 + resolution: "npm-normalize-package-bin@npm:3.0.1" + checksum: de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf + languageName: node + linkType: hard + +"npm-package-arg@npm:^11.0.0, npm-package-arg@npm:^11.0.1": + version: 11.0.1 + resolution: "npm-package-arg@npm:11.0.1" + dependencies: + hosted-git-info: ^7.0.0 + proc-log: ^3.0.0 + semver: ^7.3.5 + validate-npm-package-name: ^5.0.0 + checksum: 60364504e04e34fc20b47ad192efc9181922bce0cb41fa81871b1b75748d8551725f61b2f9a2e3dffb1782d749a35313f5dc02c18c3987653990d486f223adf2 + languageName: node + linkType: hard + +"npm-packlist@npm:^8.0.0, npm-packlist@npm:^8.0.2": + version: 8.0.2 + resolution: "npm-packlist@npm:8.0.2" + dependencies: + ignore-walk: ^6.0.4 + checksum: c75ae66b285503409e07878274d0580c1915e8db3a52539e7588a00d8c7c27b5c3c8459906d26142ffd772f0e8f291e9aa4ea076bb44a4ab0ba7e0f25b46423b + languageName: node + linkType: hard + +"npm-pick-manifest@npm:^9.0.0": + version: 9.0.0 + resolution: "npm-pick-manifest@npm:9.0.0" + dependencies: + npm-install-checks: ^6.0.0 + npm-normalize-package-bin: ^3.0.0 + npm-package-arg: ^11.0.0 + semver: ^7.3.5 + checksum: a6f102f9e9e8feea69be3a65e492fef6319084a85fc4e40dc88a277a3aa675089cef13ab0436ed7916e97c7bbba8315633d818eb15402c3abfb0bddc1af08cc7 + languageName: node + linkType: hard + +"npm-registry-fetch@npm:^16.0.0, npm-registry-fetch@npm:^16.1.0": + version: 16.1.0 + resolution: "npm-registry-fetch@npm:16.1.0" + dependencies: + make-fetch-happen: ^13.0.0 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minipass-json-stream: ^1.0.1 + minizlib: ^2.1.2 + npm-package-arg: ^11.0.0 + proc-log: ^3.0.0 + checksum: 6aa8483973aaf8c8543753d415983eb6722ecba0703030f3b152074eaa1106df75ffd084e483f30a33c81203c7ec07555bcc9e45fc07f7c0904501506c0929a2 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: ^3.0.0 + checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"npm-run-path@npm:^5.1.0": + version: 5.2.0 + resolution: "npm-run-path@npm:5.2.0" + dependencies: + path-key: ^4.0.0 + checksum: c5325e016014e715689c4014f7e0be16cc4cbf529f32a1723e511bc4689b5f823b704d2bca61ac152ce2bda65e0205dc8b3ba0ec0f5e4c3e162d302f6f5b9efb + languageName: node + linkType: hard + +"npmlog@npm:^7.0.1": + version: 7.0.1 + resolution: "npmlog@npm:7.0.1" + dependencies: + are-we-there-yet: ^4.0.0 + console-control-strings: ^1.1.0 + gauge: ^5.0.0 + set-blocking: ^2.0.0 + checksum: caabeb1f557c1094ad7ed3275b968b83ccbaefc133f17366ebb9fe8eb44e1aace28c31419d6244bfc0422aede1202875d555fe6661978bf04386f6cf617f43a4 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.2": + version: 2.2.7 + resolution: "nwsapi@npm:2.2.7" + checksum: cab25f7983acec7e23490fec3ef7be608041b460504229770e3bfcf9977c41d6fe58f518994d3bd9aa3a101f501089a3d4a63536f4ff8ae4b8c4ca23bdbfda4e + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": + version: 1.13.1 + resolution: "object-inspect@npm:1.13.1" + checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object.assign@npm:^4.1.4": + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" + dependencies: + call-bind: ^1.0.5 + define-properties: ^1.2.1 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.7": + version: 2.0.7 + resolution: "object.fromentries@npm:2.0.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 7341ce246e248b39a431b87a9ddd331ff52a454deb79afebc95609f94b1f8238966cf21f52188f2a353f0fdf83294f32f1ebf1f7826aae915ebad21fd0678065 + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.1": + version: 1.0.2 + resolution: "object.groupby@npm:1.0.2" + dependencies: + array.prototype.filter: ^1.0.3 + call-bind: ^1.0.5 + define-properties: ^1.2.1 + es-abstract: ^1.22.3 + es-errors: ^1.0.0 + checksum: 5f95c2a3a5f60a1a8c05fdd71455110bd3d5e6af0350a20b133d8cd70f9c3385d5c7fceb6a17b940c3c61752d9c202d10d5e2eb5ce73b89002656a87e7bf767a + languageName: node + linkType: hard + +"object.values@npm:^1.1.7": + version: 1.1.7 + resolution: "object.values@npm:1.1.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: ^4.0.0 + checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.3 + resolution: "optionator@npm:0.9.3" + dependencies: + "@aashutoshrathi/word-wrap": ^1.2.3 + deep-is: ^0.1.3 + fast-levenshtein: ^2.0.6 + levn: ^0.4.1 + prelude-ls: ^1.2.1 + type-check: ^0.4.0 + checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a + languageName: node + linkType: hard + +"ora@npm:^5.4.1": + version: 5.4.1 + resolution: "ora@npm:5.4.1" + dependencies: + bl: ^4.1.0 + chalk: ^4.1.0 + cli-cursor: ^3.1.0 + cli-spinners: ^2.5.0 + is-interactive: ^1.0.0 + is-unicode-supported: ^0.1.0 + log-symbols: ^4.1.0 + strip-ansi: ^6.0.0 + wcwidth: ^1.0.1 + checksum: 28d476ee6c1049d68368c0dc922e7225e3b5600c3ede88fade8052837f9ed342625fdaa84a6209302587c8ddd9b664f71f0759833cbdb3a4cf81344057e63c63 + languageName: node + linkType: hard + +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: ^2.0.0 + checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-limit@npm:^4.0.0": + version: 4.0.0 + resolution: "p-limit@npm:4.0.0" + dependencies: + yocto-queue: ^1.0.0 + checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: ^2.2.0 + checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-locate@npm:^6.0.0": + version: 6.0.0 + resolution: "p-locate@npm:6.0.0" + dependencies: + p-limit: ^4.0.0 + checksum: 2bfe5234efa5e7a4e74b30a5479a193fdd9236f8f6b4d2f3f69e3d286d9a7d7ab0c118a2a50142efcf4e41625def635bd9332d6cbf9cc65d85eb0718c579ab38 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"p-map@npm:^7.0.1": + version: 7.0.1 + resolution: "p-map@npm:7.0.1" + checksum: 553c218f582b9c7f96159dd55d082fc6df386ea86a78a3798b768f87f761d6f01ea52dd76225e69199720fa0684901d38353cd0978a39ef4f7f4fd287c4e9262 + languageName: node + linkType: hard + +"p-pipe@npm:^4.0.0": + version: 4.0.0 + resolution: "p-pipe@npm:4.0.0" + checksum: d2638c08e15e049e37835f3d999f0063ecd063ccac45a90925701c604f342ca376c8373ecf945e322f5112cc630644ef99ec55084e4eeb70c90cff9237b89296 + languageName: node + linkType: hard + +"p-queue@npm:^8.0.1": + version: 8.0.1 + resolution: "p-queue@npm:8.0.1" + dependencies: + eventemitter3: ^5.0.1 + p-timeout: ^6.1.2 + checksum: 84a27a5b1faf2dcc96b8c0e423c34b5984b241acc07353d3cc6d8d3d1dadefb250b4ec84ce278cb1c946466999c6bf2a36ff718a75810bad8e11c7ca47ce80f5 + languageName: node + linkType: hard + +"p-reduce@npm:^3.0.0": + version: 3.0.0 + resolution: "p-reduce@npm:3.0.0" + checksum: 387de355e906c07159d5e6270f3b58b7c7c7349ec7294ba0a9cff2a2e2faa8c602b841b079367685d3fa166a3ee529db7aaa73fadc936987c35e90f0ba64d955 + languageName: node + linkType: hard + +"p-timeout@npm:^6.1.2": + version: 6.1.2 + resolution: "p-timeout@npm:6.1.2" + checksum: 887b805eb72c217dbc3c55a60a7f3b89a46cab14f04af62224f253ec84716cbd0880758be13b35444a4fa12d64d37d4c8a300f0b12a57c004d289f0a574cfe91 + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"pacote@npm:^17.0.0, pacote@npm:^17.0.4, pacote@npm:^17.0.5": + version: 17.0.6 + resolution: "pacote@npm:17.0.6" + dependencies: + "@npmcli/git": ^5.0.0 + "@npmcli/installed-package-contents": ^2.0.1 + "@npmcli/promise-spawn": ^7.0.0 + "@npmcli/run-script": ^7.0.0 + cacache: ^18.0.0 + fs-minipass: ^3.0.0 + minipass: ^7.0.2 + npm-package-arg: ^11.0.0 + npm-packlist: ^8.0.0 + npm-pick-manifest: ^9.0.0 + npm-registry-fetch: ^16.0.0 + proc-log: ^3.0.0 + promise-retry: ^2.0.1 + read-package-json: ^7.0.0 + read-package-json-fast: ^3.0.0 + sigstore: ^2.2.0 + ssri: ^10.0.0 + tar: ^6.1.11 + bin: + pacote: lib/bin.js + checksum: e410331e0b1ea0d0764cdb412e8def62f90c3b2d7dccce16f3eb7c1f847d37d730e9661eff039f623777dccce1b3fcb4c4ad8c9e5950d60e6d8ef6eec924f8b3 + languageName: node + linkType: hard + +"pako@npm:^2.1.0": + version: 2.1.0 + resolution: "pako@npm:2.1.0" + checksum: 71666548644c9a4d056bcaba849ca6fd7242c6cf1af0646d3346f3079a1c7f4a66ffec6f7369ee0dc88f61926c10d6ab05da3e1fca44b83551839e89edd75a3e + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: ^3.0.0 + checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-conflict-json@npm:^3.0.0": + version: 3.0.1 + resolution: "parse-conflict-json@npm:3.0.1" + dependencies: + json-parse-even-better-errors: ^3.0.0 + just-diff: ^6.0.0 + just-diff-apply: ^5.2.0 + checksum: d8d2656bc02d4df36846366baec36b419da2fe944e31298719a4d28d28f772aa7cad2a69d01f6f329918e7c298ac481d1e6a9138d62d5662d5620a74f794af8f + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": ^7.0.0 + error-ex: ^1.3.1 + json-parse-even-better-errors: ^2.3.0 + lines-and-columns: ^1.1.6 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse-json@npm:^7.0.0": + version: 7.1.1 + resolution: "parse-json@npm:7.1.1" + dependencies: + "@babel/code-frame": ^7.21.4 + error-ex: ^1.3.2 + json-parse-even-better-errors: ^3.0.0 + lines-and-columns: ^2.0.3 + type-fest: ^3.8.0 + checksum: 187275c7ac097dcfb3c7420bca2399caa4da33bcd5d5aac3604bda0e2b8eee4df61cc26aa0d79fab97f0d67bf42d41d332baa9f9f56ad27636ad785f1ae639e5 + languageName: node + linkType: hard + +"parse-path@npm:^7.0.0": + version: 7.0.0 + resolution: "parse-path@npm:7.0.0" + dependencies: + protocols: ^2.0.0 + checksum: 244b46523a58181d251dda9b888efde35d8afb957436598d948852f416d8c76ddb4f2010f9fc94218b4be3e5c0f716aa0d2026194a781e3b8981924142009302 + languageName: node + linkType: hard + +"parse-url@npm:^8.1.0": + version: 8.1.0 + resolution: "parse-url@npm:8.1.0" + dependencies: + parse-path: ^7.0.0 + checksum: b93e21ab4c93c7d7317df23507b41be7697694d4c94f49ed5c8d6288b01cba328fcef5ba388e147948eac20453dee0df9a67ab2012415189fff85973bdffe8d9 + languageName: node + linkType: hard + +"parse5@npm:^7.0.0, parse5@npm:^7.1.1": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: ^4.4.0 + checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-exists@npm:^5.0.0": + version: 5.0.0 + resolution: "path-exists@npm:5.0.0" + checksum: 8ca842868cab09423994596eb2c5ec2a971c17d1a3cb36dbf060592c730c725cd524b9067d7d2a1e031fef9ba7bd2ac6dc5ec9fb92aa693265f7be3987045254 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + languageName: node + linkType: hard + +"pidtree@npm:0.6.0": + version: 0.6.0 + resolution: "pidtree@npm:0.6.0" + bin: + pidtree: bin/pidtree.js + checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a + languageName: node + linkType: hard + +"pify@npm:^6.1.0": + version: 6.1.0 + resolution: "pify@npm:6.1.0" + checksum: cb21ee8794e9e14955669fbc06b964d0dd3d4e6fa3c2ea3cf22f6794de61ec1ea5c1fac02dadfd4aa16c9cf589f6733406e826e64366f70e09f5e95917a0b8ac + languageName: node + linkType: hard + +"pirates@npm:^4.0.4": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + languageName: node + linkType: hard + +"pkg-dir@npm:^4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: ^4.0.0 + checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + languageName: node + linkType: hard + +"point-in-svg-path@npm:^1.0.1": + version: 1.0.2 + resolution: "point-in-svg-path@npm:1.0.2" + checksum: 0145eeb8c513fd4087ae569c6c7a4be5382854a251726d32e49cf0f08ff2663178f018ccc77c05609dd8fa73c087066ce8d6ab77b97350316e7b2e6a59174e12 + languageName: node + linkType: hard + +"polished@npm:^4.2.2": + version: 4.3.1 + resolution: "polished@npm:4.3.1" + dependencies: + "@babel/runtime": ^7.17.8 + checksum: a6f863c23f1d2f3f5cda3427b5885c9fb9e83b036d681e24820b143c7df40d2685bebb01c0939767120a28e1183671ae17c93db82ac30b3c20942180bb153bc7 + languageName: node + linkType: hard + +"popper.js@npm:^1.16.1": + version: 1.16.1 + resolution: "popper.js@npm:1.16.1" + checksum: c56ae5001ec50a77ee297a8061a0221d99d25c7348d2e6bcd3e45a0d0f32a1fd81bca29d46cb0d4bdf13efb77685bd6a0ce93f9eb3c608311a461f945fffedbe + languageName: node + linkType: hard + +"postcss-media-query-parser@npm:^0.2.3": + version: 0.2.3 + resolution: "postcss-media-query-parser@npm:0.2.3" + checksum: 8000d4d95b912994928ff86137f5ab0ed4c4ee1498af2336e93d708ae8827a690cd7acbaed55d14684cf44d82c8d44b031c1c69ae6bcd2f9620ea67573888090 + languageName: node + linkType: hard + +"postcss-resolve-nested-selector@npm:^0.1.1": + version: 0.1.1 + resolution: "postcss-resolve-nested-selector@npm:0.1.1" + checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 + languageName: node + linkType: hard + +"postcss-safe-parser@npm:^7.0.0": + version: 7.0.0 + resolution: "postcss-safe-parser@npm:7.0.0" + peerDependencies: + postcss: ^8.4.31 + checksum: dba4d782393e6f07339c24bdb8b41166e483d5e7b8f34174c35c64065aef36aadef94b53e0501d7a630d42f51bbd824671e8fb1c2b417333b08b71c9b0066c76 + languageName: node + linkType: hard + +"postcss-scss@npm:^4.0.9": + version: 4.0.9 + resolution: "postcss-scss@npm:4.0.9" + peerDependencies: + postcss: ^8.4.29 + checksum: dc358bafc23d52ed3a9a29333808825deba213042be74ece6eae7a61c692f67d0e6691fa7005367b013c01c79562fbb9ef2fe4c0485075233931bd90715f5132 + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.15": + version: 6.0.15 + resolution: "postcss-selector-parser@npm:6.0.15" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f + languageName: node + linkType: hard + +"postcss@npm:^8.4.32, postcss@npm:^8.4.33": + version: 8.4.33 + resolution: "postcss@npm:8.4.33" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 6f98b2af4b76632a3de20c4f47bf0e984a1ce1a531cf11adcb0b1d63a6cbda0aae4165e578b66c32ca4879038e3eaad386a6be725a8fb4429c78e3c1ab858fe9 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + languageName: node + linkType: hard + +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: ^1.1.2 + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + languageName: node + linkType: hard + +"prettier@npm:^3.2.5": + version: 3.2.5 + resolution: "prettier@npm:3.2.5" + bin: + prettier: bin/prettier.cjs + checksum: 2ee4e1417572372afb7a13bb446b34f20f1bf1747db77cf6ccaf57a9be005f2f15c40f903d41a6b79eec3f57fff14d32a20fb6dee1f126da48908926fe43c311 + languageName: node + linkType: hard + +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": ^29.6.3 + ansi-styles: ^5.0.0 + react-is: ^18.0.0 + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 + languageName: node + linkType: hard + +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 + languageName: node + linkType: hard + +"promise-all-reject-late@npm:^1.0.0": + version: 1.0.1 + resolution: "promise-all-reject-late@npm:1.0.1" + checksum: d7d61ac412352e2c8c3463caa5b1c3ca0f0cc3db15a09f180a3da1446e33d544c4261fc716f772b95e4c27d559cfd2388540f44104feb356584f9c73cfb9ffcb + languageName: node + linkType: hard + +"promise-call-limit@npm:^3.0.1": + version: 3.0.1 + resolution: "promise-call-limit@npm:3.0.1" + checksum: f1b3c4d3a9c5482ce27ec5f40311e1389adb9bb10c16166e61c96d29ab22c701691d5225bf6745a162858f45dfb46cc82275fd09e7aa57846fc446c7855c2f06 + languageName: node + linkType: hard + +"promise-inflight@npm:^1.0.1": + version: 1.0.1 + resolution: "promise-inflight@npm:1.0.1" + checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"prompts@npm:^2.0.1": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: ^3.0.3 + sisteransi: ^1.0.5 + checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d + languageName: node + linkType: hard + +"prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + +"proto-list@npm:~1.2.1": + version: 1.2.4 + resolution: "proto-list@npm:1.2.4" + checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 + languageName: node + linkType: hard + +"protocols@npm:^2.0.0, protocols@npm:^2.0.1": + version: 2.0.1 + resolution: "protocols@npm:2.0.1" + checksum: 4a9bef6aa0449a0245ded319ac3cbfd032c3e76ebb562777037a3a832c99253d0e8bc2847f7be350236df620a11f7d4fe683ea7f59a2cc14c69f746b6259eda4 + languageName: node + linkType: hard + +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 + languageName: node + linkType: hard + +"pure-rand@npm:^6.0.0": + version: 6.0.4 + resolution: "pure-rand@npm:6.0.4" + checksum: e1c4e69f8bf7303e5252756d67c3c7551385cd34d94a1f511fe099727ccbab74c898c03a06d4c4a24a89b51858781057b83ebbfe740d984240cdc04fead36068 + languageName: node + linkType: hard + +"qs@npm:^6.11.1": + version: 6.11.2 + resolution: "qs@npm:6.11.2" + dependencies: + side-channel: ^1.0.4 + checksum: e812f3c590b2262548647d62f1637b6989cc56656dc960b893fe2098d96e1bd633f36576f4cd7564dfbff9db42e17775884db96d846bebe4f37420d073ecdc0b + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"react-colorful@npm:^5.6.1": + version: 5.6.1 + resolution: "react-colorful@npm:5.6.1" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: e432b7cb0df57e8f0bcdc3b012d2e93fcbcb6092c9e0f85654788d5ebfc4442536d8cc35b2418061ba3c4afb8b7788cc101c606d86a1732407921de7a9244c8d + languageName: node + linkType: hard + +"react-dnd-html5-backend@npm:^16.0.1": + version: 16.0.1 + resolution: "react-dnd-html5-backend@npm:16.0.1" + dependencies: + dnd-core: ^16.0.1 + checksum: e2368bf85d5632a5cd867b743feb54c9052d909ea5331608860fa455edf3c633ac791f5b338e3db29b19ea8670c0ba5fb43c9c1c2510760bea030811d726cdfa + languageName: node + linkType: hard + +"react-dnd-touch-backend@npm:^16.0.1": + version: 16.0.1 + resolution: "react-dnd-touch-backend@npm:16.0.1" + dependencies: + "@react-dnd/invariant": ^4.0.1 + dnd-core: ^16.0.1 + checksum: 5362c5f4266e3655d02c716f341dc55c61fae53e12eb3b239245bafb7a3f3cdb953e27e187e8dcb9d86c01bc738853d764d7c85b87104a49a8a8f1ecc4d35755 + languageName: node + linkType: hard + +"react-dnd@npm:^16.0.1": + version: 16.0.1 + resolution: "react-dnd@npm:16.0.1" + dependencies: + "@react-dnd/invariant": ^4.0.1 + "@react-dnd/shallowequal": ^4.0.1 + dnd-core: ^16.0.1 + fast-deep-equal: ^3.1.3 + hoist-non-react-statics: ^3.3.2 + peerDependencies: + "@types/hoist-non-react-statics": ">= 3.3.1" + "@types/node": ">= 12" + "@types/react": ">= 16" + react: ">= 16.14" + peerDependenciesMeta: + "@types/hoist-non-react-statics": + optional: true + "@types/node": + optional: true + "@types/react": + optional: true + checksum: e8da2186aaafcd5bb41c090a995c963a7c3c73c20991667a2cfc0c800d7f7f73913414b2e61c437cdb6221bb2151bd5174088b8b42c17056a896fc4d1da5729f + languageName: node + linkType: hard + +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + +"react-dropzone@npm:^14.2.3": + version: 14.2.3 + resolution: "react-dropzone@npm:14.2.3" + dependencies: + attr-accept: ^2.2.2 + file-selector: ^0.6.0 + prop-types: ^15.8.1 + peerDependencies: + react: ">= 16.8 || 18.0.0" + checksum: 174b744d5ca898cf3d84ec1aeb6cef5211c446697e45dc8ece8287a03d291f8d07253206d5a1247ef156fd385d65e7de666d4d5c2986020b8543b8f2434e8b40 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-is@npm:^18.0.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + languageName: node + linkType: hard + +"react-lifecycles-compat@npm:^3.0.4": + version: 3.0.4 + resolution: "react-lifecycles-compat@npm:3.0.4" + checksum: a904b0fc0a8eeb15a148c9feb7bc17cec7ef96e71188280061fc340043fd6d8ee3ff233381f0e8f95c1cf926210b2c4a31f38182c8f35ac55057e453d6df204f + languageName: node + linkType: hard + +"react-measure@npm:^2.3.0": + version: 2.5.2 + resolution: "react-measure@npm:2.5.2" + dependencies: + "@babel/runtime": ^7.2.0 + get-node-dimensions: ^1.2.1 + prop-types: ^15.6.2 + resize-observer-polyfill: ^1.5.0 + peerDependencies: + react: ">0.13.0" + react-dom: ">0.13.0" + checksum: 75bd3cd74d96f3e83f0a42b8f59e8764e6a5eec994492e077c49a4fea0d0b27775a5154502aff2eee3f6af40650ce2e58ed18ac927a64013b14c9942cc9c4872 + languageName: node + linkType: hard + +"react-refresh@npm:^0.14.0": + version: 0.14.0 + resolution: "react-refresh@npm:0.14.0" + checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 + languageName: node + linkType: hard + +"react-sage@npm:^0.3.16": + version: 0.3.16 + resolution: "react-sage@npm:0.3.16" + checksum: 575f1a2b3e29aaeaa665907099909909730173d4cfc601e2929eb12e40e21f2edf42a4429bc25186f82f176a15edc0b2348b20b2850c0520708d2167f18cd276 + languageName: node + linkType: hard + +"react-select@npm:^5.7.0": + version: 5.8.0 + resolution: "react-select@npm:5.8.0" + dependencies: + "@babel/runtime": ^7.12.0 + "@emotion/cache": ^11.4.0 + "@emotion/react": ^11.8.1 + "@floating-ui/dom": ^1.0.1 + "@types/react-transition-group": ^4.4.0 + memoize-one: ^6.0.0 + prop-types: ^15.6.0 + react-transition-group: ^4.3.0 + use-isomorphic-layout-effect: ^1.1.2 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: c8398cc0aefb5ee5438b6176c86676e2d3fed7457c16b0769f423a0da0ae431a7df25c2cadf13b709700882b8ebd80a58b1e557fec3e22ad3cbf60164ca9e745 + languageName: node + linkType: hard + +"react-transition-group@npm:^4.3.0": + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" + dependencies: + "@babel/runtime": ^7.5.5 + dom-helpers: ^5.0.1 + loose-envify: ^1.4.0 + prop-types: ^15.6.2 + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 + languageName: node + linkType: hard + +"react-use-gesture@npm:^9.1.3": + version: 9.1.3 + resolution: "react-use-gesture@npm:9.1.3" + peerDependencies: + react: ">= 16.8.0" + checksum: 4436b9c4e6634c74884b6d8c8b22b57e280a3ec5b2167467f4405c56e7ca9a188771d0c043d17eb62d5d9d6e15c16ae2b7a370a187391ef1d1740361b8882b43 + languageName: node + linkType: hard + +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + +"read-cmd-shim@npm:^4.0.0": + version: 4.0.0 + resolution: "read-cmd-shim@npm:4.0.0" + checksum: 2fb5a8a38984088476f559b17c6a73324a5db4e77e210ae0aab6270480fd85c355fc990d1c79102e25e555a8201606ed12844d6e3cd9f35d6a1518791184e05b + languageName: node + linkType: hard + +"read-package-json-fast@npm:^3.0.0, read-package-json-fast@npm:^3.0.2": + version: 3.0.2 + resolution: "read-package-json-fast@npm:3.0.2" + dependencies: + json-parse-even-better-errors: ^3.0.0 + npm-normalize-package-bin: ^3.0.0 + checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 + languageName: node + linkType: hard + +"read-package-json@npm:^7.0.0": + version: 7.0.0 + resolution: "read-package-json@npm:7.0.0" + dependencies: + glob: ^10.2.2 + json-parse-even-better-errors: ^3.0.0 + normalize-package-data: ^6.0.0 + npm-normalize-package-bin: ^3.0.0 + checksum: 9b6e3ebba0b44bb72ab42031f02e0a46c95873cd302f151e35841e075464f0f4d1404da2333cb491c5c83599bb917c32b23b86d4df8337237d4d1a37c6db1517 + languageName: node + linkType: hard + +"read-pkg-up@npm:^10.0.0": + version: 10.1.0 + resolution: "read-pkg-up@npm:10.1.0" + dependencies: + find-up: ^6.3.0 + read-pkg: ^8.1.0 + type-fest: ^4.2.0 + checksum: 554470d7ff54026b561f6c851c35470f5bc95a47bfb8645dc13c447d83c42c78b42d47fffdc8f86bffe731215406dab498f75cb27494e1fb3eca7fa8d00fb501 + languageName: node + linkType: hard + +"read-pkg@npm:^8.0.0, read-pkg@npm:^8.1.0": + version: 8.1.0 + resolution: "read-pkg@npm:8.1.0" + dependencies: + "@types/normalize-package-data": ^2.4.1 + normalize-package-data: ^6.0.0 + parse-json: ^7.0.0 + type-fest: ^4.2.0 + checksum: f4cd164f096e78cf3e338a55f800043524e3055f9b0b826143290002fafc951025fc3cbd6ca683ebaf7945efcfb092d31c683dd252a7871a974662985c723b67 + languageName: node + linkType: hard + +"readable-stream@npm:^3.4.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: ^2.2.1 + checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 + languageName: node + linkType: hard + +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: ^4.0.0 + strip-indent: ^3.0.0 + checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + +"redux@npm:^4.2.0": + version: 4.2.1 + resolution: "redux@npm:4.2.1" + dependencies: + "@babel/runtime": ^7.9.2 + checksum: f63b9060c3a1d930ae775252bb6e579b42415aee7a23c4114e21a0b4ba7ec12f0ec76936c00f546893f06e139819f0e2855e0d55ebfce34ca9c026241a6950dd + languageName: node + linkType: hard + +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" + dependencies: + regenerate: ^1.4.2 + checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.5.1": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 + languageName: node + linkType: hard + +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": ^0.8.0 + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.1.0 + regjsparser: ^0.9.1 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.1.0 + checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + languageName: node + linkType: hard + +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: ~0.5.0 + bin: + regjsparser: bin/parser + checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + +"resize-observer-polyfill@npm:^1.5.0": + version: 1.5.1 + resolution: "resize-observer-polyfill@npm:1.5.1" + checksum: 57e7f79489867b00ba43c9c051524a5c8f162a61d5547e99333549afc23e15c44fd43f2f318ea0261ea98c0eb3158cca261e6f48d66e1ed1cd1f340a43977094 + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: ^5.0.0 + checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + +"resolve.exports@npm:^2.0.0": + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 + languageName: node + linkType: hard + +"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"restore-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "restore-cursor@npm:4.0.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + languageName: node + linkType: hard + +"rfdc@npm:^1.3.0": + version: 1.3.1 + resolution: "rfdc@npm:1.3.1" + checksum: d5d1e930aeac7e0e0a485f97db1356e388bdbeff34906d206fe524dd5ada76e95f186944d2e68307183fdc39a54928d4426bbb6734851692cfe9195efba58b79 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"rimraf@npm:^5.0.5": + version: 5.0.5 + resolution: "rimraf@npm:5.0.5" + dependencies: + glob: ^10.3.7 + bin: + rimraf: dist/esm/bin.mjs + checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 + languageName: node + linkType: hard + +"robust-predicates@npm:^3.0.2": + version: 3.0.2 + resolution: "robust-predicates@npm:3.0.2" + checksum: 36854c1321548ceca96d36ad9d6e0a5a512986029ec6929ad6ed3ec1612c22cc8b46cc72d2c5674af42e8074a119d793f6f0ea3a5b51373e3ab926c64b172d7a + languageName: node + linkType: hard + +"rollup@npm:^4.2.0": + version: 4.9.6 + resolution: "rollup@npm:4.9.6" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.9.6 + "@rollup/rollup-android-arm64": 4.9.6 + "@rollup/rollup-darwin-arm64": 4.9.6 + "@rollup/rollup-darwin-x64": 4.9.6 + "@rollup/rollup-linux-arm-gnueabihf": 4.9.6 + "@rollup/rollup-linux-arm64-gnu": 4.9.6 + "@rollup/rollup-linux-arm64-musl": 4.9.6 + "@rollup/rollup-linux-riscv64-gnu": 4.9.6 + "@rollup/rollup-linux-x64-gnu": 4.9.6 + "@rollup/rollup-linux-x64-musl": 4.9.6 + "@rollup/rollup-win32-arm64-msvc": 4.9.6 + "@rollup/rollup-win32-ia32-msvc": 4.9.6 + "@rollup/rollup-win32-x64-msvc": 4.9.6 + "@types/estree": 1.0.5 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: cdc0bdd41ee2d3fe7f01df26f5a85921caf46ffe0ae118b2f3deebdf569e8b1c1800b8eee04960425e67aecbd9ccdd37bcdb92595866adb3968d223a07e9b7e6 + languageName: node + linkType: hard + +"run-async@npm:^3.0.0": + version: 3.0.0 + resolution: "run-async@npm:3.0.0" + checksum: 280c03d5a88603f48103fc6fd69f07fb0c392a1e0d319c34ec96a2516030e07ba06f79231a563c78698b882649c2fc1fda601bc84705f57d50efcd1fa506cfc0 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rw@npm:1": + version: 1.3.3 + resolution: "rw@npm:1.3.3" + checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 + languageName: node + linkType: hard + +"rxjs@npm:^7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: ^2.1.0 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.0.1": + version: 1.1.0 + resolution: "safe-array-concat@npm:1.1.0" + dependencies: + call-bind: ^1.0.5 + get-intrinsic: ^1.2.2 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: 5c71eaa999168ee7474929f1cd3aae80f486353a651a094d9968936692cf90aa065224929a6486dcda66334a27dce4250a83612f9e0fef6dced1a925d3ac7296 + languageName: node + linkType: hard + +"safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.0.0": + version: 1.0.2 + resolution: "safe-regex-test@npm:1.0.2" + dependencies: + call-bind: ^1.0.5 + get-intrinsic: ^1.2.2 + is-regex: ^1.1.4 + checksum: 4af5ce05a2daa4f6d4bfd5a3c64fc33d6b886f6592122e93c0efad52f7147b9b605e5ffc03c269a1e3d1f8db2a23bc636628a961c9fd65bafdc09503330673fd + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"sass@npm:^1.70.0": + version: 1.70.0 + resolution: "sass@npm:1.70.0" + dependencies: + chokidar: ">=3.0.0 <4.0.0" + immutable: ^4.0.0 + source-map-js: ">=0.6.2 <2.0.0" + bin: + sass: sass.js + checksum: fd1b622cf9b7fa699a03ec634611997552ece45eb98ac365fef22f42bdcb8ed63b326b64173379c966830c8551ae801e44e4a00d2de16fdadda2dc8f35400bbb + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: ^2.2.0 + checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b + languageName: node + linkType: hard + +"saxon-js@npm:^2.6.0": + version: 2.6.0 + resolution: "saxon-js@npm:2.6.0" + dependencies: + axios: ^1.5.1 + checksum: 484564a4d6490d28d33ca278a25386e95e5aabe53bbf1406fb193790304afda941b7274f3fcad2c55a43884b55dd65a7cad42e8325c7d53d85623727fd951aef + languageName: node + linkType: hard + +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + +"semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"set-function-length@npm:^1.1.1": + version: 1.2.0 + resolution: "set-function-length@npm:1.2.0" + dependencies: + define-data-property: ^1.1.1 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.2 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.1 + checksum: 63e34b45a2ff9abb419f52583481bf8ba597d33c0c85e56999085eb6078a0f7fbb4222051981c287feceeb358aa7789e7803cea2c82ac94c0ab37059596aff79 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.0": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 + languageName: node + linkType: hard + +"shallow-clone@npm:^3.0.0": + version: 3.0.1 + resolution: "shallow-clone@npm:3.0.1" + dependencies: + kind-of: ^6.0.2 + checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.4 + resolution: "side-channel@npm:1.0.4" + dependencies: + call-bind: ^1.0.0 + get-intrinsic: ^1.0.2 + object-inspect: ^1.9.0 + checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + +"sigstore@npm:^2.2.0": + version: 2.2.0 + resolution: "sigstore@npm:2.2.0" + dependencies: + "@sigstore/bundle": ^2.1.1 + "@sigstore/core": ^0.2.0 + "@sigstore/protobuf-specs": ^0.2.1 + "@sigstore/sign": ^2.2.1 + "@sigstore/tuf": ^2.3.0 + "@sigstore/verify": ^0.1.0 + checksum: 607a15624c5c7c0de3241e5c9ea4dda6495a55104fcadb85c3712dba54c154054a4de657038258c72748bcf207915ec0e338b8c6b3db6d07b5c904d4bcc35f44 + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 70434b34c50eb21b741d37d455110258c42d2cf18c01e6518aeb7299f3c6e626330c889c0c552b5ca2ef54a8f5a74213ab48895f0640717cacefeef6830a1ba4 + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + languageName: node + linkType: hard + +"slice-ansi@npm:^5.0.0": + version: 5.0.0 + resolution: "slice-ansi@npm:5.0.0" + dependencies: + ansi-styles: ^6.0.0 + is-fullwidth-code-point: ^4.0.0 + checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e + languageName: node + linkType: hard + +"slice-ansi@npm:^7.0.0": + version: 7.1.0 + resolution: "slice-ansi@npm:7.1.0" + dependencies: + ansi-styles: ^6.2.1 + is-fullwidth-code-point: ^5.0.0 + checksum: 10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.1": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" + dependencies: + agent-base: ^7.0.2 + debug: ^4.3.4 + socks: ^2.7.1 + checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d + languageName: node + linkType: hard + +"socks@npm:^2.7.1": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"sort-keys@npm:^5.0.0": + version: 5.0.0 + resolution: "sort-keys@npm:5.0.0" + dependencies: + is-plain-obj: ^4.0.0 + checksum: 9c0b7a468312075be03770b260b2cc0e5d55149025e564edaed41c9ff619199698aad6712a6fe4bbc75c541efb081276ac6bbd4cf2723d742f272f7a8fe354f5 + languageName: node + linkType: hard + +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 + languageName: node + linkType: hard + +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + languageName: node + linkType: hard + +"spdx-correct@npm:^3.0.0": + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" + dependencies: + spdx-expression-parse: ^3.0.0 + spdx-license-ids: ^3.0.0 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 + languageName: node + linkType: hard + +"spdx-exceptions@npm:^2.1.0": + version: 2.4.0 + resolution: "spdx-exceptions@npm:2.4.0" + checksum: b1b650a8d94424473bf9629cf972c86a91c03cccc260f5c901bce0e4b92d831627fec28c9e0a1e9c34c5ebad0a12cf2eab887bec088e0a862abb9d720c2fd0a1 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^3.0.0": + version: 3.0.1 + resolution: "spdx-expression-parse@npm:3.0.1" + dependencies: + spdx-exceptions: ^2.1.0 + spdx-license-ids: ^3.0.0 + checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde + languageName: node + linkType: hard + +"spdx-license-ids@npm:^3.0.0": + version: 3.0.16 + resolution: "spdx-license-ids@npm:3.0.16" + checksum: 5cdaa85aaa24bd02f9353a2e357b4df0a4f205cb35655f3fd0a5674a4fb77081f28ffd425379214bc3be2c2b7593ce1215df6bcc75884aeee0a9811207feabe2 + languageName: node + linkType: hard + +"split2@npm:^4.0.0": + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0, ssri@npm:^10.0.5": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" + dependencies: + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + languageName: node + linkType: hard + +"stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: ^2.0.0 + checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 + languageName: node + linkType: hard + +"string-argv@npm:0.3.2": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f + languageName: node + linkType: hard + +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: ^1.0.2 + strip-ansi: ^6.0.0 + checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string-width@npm:^7.0.0": + version: 7.1.0 + resolution: "string-width@npm:7.1.0" + dependencies: + emoji-regex: ^10.3.0 + get-east-asian-width: ^1.0.0 + strip-ansi: ^7.1.0 + checksum: a183573fe7209e0d294f661846d33f8caf72aa86d983e5b48a0ed45ab15bcccb02c6f0344b58b571988871105457137b8207855ea536827dbc4a376a0f31bf8f + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.8": + version: 1.2.8 + resolution: "string.prototype.trim@npm:1.2.8" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimend@npm:1.0.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.7": + version: 1.0.7 + resolution: "string.prototype.trimstart@npm:1.0.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: ^1.0.0 + checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"strnum@npm:^1.0.5": + version: 1.0.5 + resolution: "strnum@npm:1.0.5" + checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 + languageName: node + linkType: hard + +"strong-log-transformer@npm:^2.1.0": + version: 2.1.0 + resolution: "strong-log-transformer@npm:2.1.0" + dependencies: + duplexer: ^0.1.1 + minimist: ^1.2.0 + through: ^2.3.4 + bin: + sl-log-transformer: bin/sl-log-transformer.js + checksum: abf9a4ac143118f26c3a0771b204b02f5cf4fa80384ae158f25e02bfbff761038accc44a7f65869ccd5a5995a7f2c16b1466b83149644ba6cecd3072a8927297 + languageName: node + linkType: hard + +"stylelint-config-recommended-scss@npm:^14.0.0": + version: 14.0.0 + resolution: "stylelint-config-recommended-scss@npm:14.0.0" + dependencies: + postcss-scss: ^4.0.9 + stylelint-config-recommended: ^14.0.0 + stylelint-scss: ^6.0.0 + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.0.2 + peerDependenciesMeta: + postcss: + optional: true + checksum: 512fba4d81654b65a7a36d531f165c7d8f0c938e63a0f90daca0c21d623cc637e29195fec5e0ae1edd862502d69717f6f3e90016cd7ba8458e4a8afcd87bb3b4 + languageName: node + linkType: hard + +"stylelint-config-recommended@npm:^14.0.0": + version: 14.0.0 + resolution: "stylelint-config-recommended@npm:14.0.0" + peerDependencies: + stylelint: ^16.0.0 + checksum: 36511115b06d9f51aa0edc05f6064a7aae98cc990da14dd03629951f63a029d9e66a4d5b1ca678cce699e24413a62c2cd608cc07413ca5026f9680ddb8993858 + languageName: node + linkType: hard + +"stylelint-config-standard-scss@npm:^13.0.0": + version: 13.0.0 + resolution: "stylelint-config-standard-scss@npm:13.0.0" + dependencies: + stylelint-config-recommended-scss: ^14.0.0 + stylelint-config-standard: ^36.0.0 + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.1.0 + peerDependenciesMeta: + postcss: + optional: true + checksum: 72e8fbb8d49b76e30031d05470d610790a966714fef0101418b889c564d9cc324788519733cad714316224c68541466dce534c51092d13bae3f9e596916415c3 + languageName: node + linkType: hard + +"stylelint-config-standard@npm:^36.0.0": + version: 36.0.0 + resolution: "stylelint-config-standard@npm:36.0.0" + dependencies: + stylelint-config-recommended: ^14.0.0 + peerDependencies: + stylelint: ^16.1.0 + checksum: 78b14cdfdd03be409687acc863ef88d0e79d9a7f7ab3a9158e7dcd74212893db24841d22f076f248f3b1b6419d778538a5c885dc42fc056eaeb240463edf2f8f + languageName: node + linkType: hard + +"stylelint-prettier@npm:^5.0.0": + version: 5.0.0 + resolution: "stylelint-prettier@npm:5.0.0" + dependencies: + prettier-linter-helpers: ^1.0.0 + peerDependencies: + prettier: ">=3.0.0" + stylelint: ">=16.0.0" + checksum: 757b677f0e4345de1eab62b0e1a8d6ff50d968e2c541bae7ac7b5595157a49ee033c8911f92056d2bdfb0a2945faa5509814cb13170e48336bfc2c4c3b3ee9c2 + languageName: node + linkType: hard + +"stylelint-scss@npm:^6.0.0": + version: 6.1.0 + resolution: "stylelint-scss@npm:6.1.0" + dependencies: + known-css-properties: ^0.29.0 + postcss-media-query-parser: ^0.2.3 + postcss-resolve-nested-selector: ^0.1.1 + postcss-selector-parser: ^6.0.15 + postcss-value-parser: ^4.2.0 + peerDependencies: + stylelint: ^16.0.2 + checksum: ff3b1c97e8379e45acd1b5b28bafa11251539366f362ff6a674690fd9aef0c7da926b2445304699d48edd1c375acb51b5fcb8039a4106ef4a6f4e29b8515e00b + languageName: node + linkType: hard + +"stylelint@npm:^16.2.1": + version: 16.2.1 + resolution: "stylelint@npm:16.2.1" + dependencies: + "@csstools/css-parser-algorithms": ^2.5.0 + "@csstools/css-tokenizer": ^2.2.3 + "@csstools/media-query-list-parser": ^2.1.7 + "@csstools/selector-specificity": ^3.0.1 + balanced-match: ^2.0.0 + colord: ^2.9.3 + cosmiconfig: ^9.0.0 + css-functions-list: ^3.2.1 + css-tree: ^2.3.1 + debug: ^4.3.4 + fast-glob: ^3.3.2 + fastest-levenshtein: ^1.0.16 + file-entry-cache: ^8.0.0 + global-modules: ^2.0.0 + globby: ^11.1.0 + globjoin: ^0.1.4 + html-tags: ^3.3.1 + ignore: ^5.3.0 + imurmurhash: ^0.1.4 + is-plain-object: ^5.0.0 + known-css-properties: ^0.29.0 + mathml-tag-names: ^2.1.3 + meow: ^13.1.0 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + picocolors: ^1.0.0 + postcss: ^8.4.33 + postcss-resolve-nested-selector: ^0.1.1 + postcss-safe-parser: ^7.0.0 + postcss-selector-parser: ^6.0.15 + postcss-value-parser: ^4.2.0 + resolve-from: ^5.0.0 + string-width: ^4.2.3 + strip-ansi: ^7.1.0 + supports-hyperlinks: ^3.0.0 + svg-tags: ^1.0.0 + table: ^6.8.1 + write-file-atomic: ^5.0.1 + bin: + stylelint: bin/stylelint.mjs + checksum: 0b84d7218b43bc89978cac40edb5dc0a0f8f7c7a60e3f932fe91392bcf79da165b5694a386247fefb51569eb26535071bf5c7f3cbba0bd094e2590c1b2494717 + languageName: node + linkType: hard + +"stylis@npm:4.2.0": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + +"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: ^4.0.0 + checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + languageName: node + linkType: hard + +"supports-hyperlinks@npm:^3.0.0": + version: 3.0.0 + resolution: "supports-hyperlinks@npm:3.0.0" + dependencies: + has-flag: ^4.0.0 + supports-color: ^7.0.0 + checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + +"svg-tags@npm:^1.0.0": + version: 1.0.0 + resolution: "svg-tags@npm:1.0.0" + checksum: 407e5ef87cfa2fb81c61d738081c2decd022ce13b922d035b214b49810630bf5d1409255a4beb3a940b77b32f6957806deff16f1bf0ce1ab11c7a184115a0b7f + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d + languageName: node + linkType: hard + +"synckit@npm:^0.8.6": + version: 0.8.8 + resolution: "synckit@npm:0.8.8" + dependencies: + "@pkgr/core": ^0.1.0 + tslib: ^2.6.2 + checksum: 9ed5d33abb785f5f24e2531efd53b2782ca77abf7912f734d170134552b99001915531be5a50297aa45c5701b5c9041e8762e6cd7a38e41e2461c1e7fccdedf8 + languageName: node + linkType: hard + +"tabbable@npm:^6.2.0": + version: 6.2.0 + resolution: "tabbable@npm:6.2.0" + checksum: f8440277d223949272c74bb627a3371be21735ca9ad34c2570f7e1752bd646ccfc23a9d8b1ee65d6561243f4134f5fbbf1ad6b39ac3c4b586554accaff4a1300 + languageName: node + linkType: hard + +"table@npm:^6.8.1": + version: 6.8.1 + resolution: "table@npm:6.8.1" + dependencies: + ajv: ^8.0.1 + lodash.truncate: ^4.4.2 + slice-ansi: ^4.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": + version: 6.2.0 + resolution: "tar@npm:6.2.0" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c + languageName: node + linkType: hard + +"temp-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "temp-dir@npm:3.0.0" + checksum: 577211e995d1d584dd60f1469351d45e8a5b4524e4a9e42d3bdd12cfde1d0bb8f5898311bef24e02aaafb69514c1feb58c7b4c33dcec7129da3b0861a4ca935b + languageName: node + linkType: hard + +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": ^0.1.2 + glob: ^7.1.4 + minimatch: ^3.0.4 + checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 + languageName: node + linkType: hard + +"text-extensions@npm:^2.0.0": + version: 2.4.0 + resolution: "text-extensions@npm:2.4.0" + checksum: 9bdbc9959e004ccc86a6ec076d6c5bb6765978263e9d0d5febb640d7675c09919ea912f3fe9d50b68c3c7c43cc865610a7cb24954343abb31f74c205fbae4e45 + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + +"through@npm:>=2.2.7 <3, through@npm:^2.3.4": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + languageName: node + linkType: hard + +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: ~1.0.2 + checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 + languageName: node + linkType: hard + +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: ^7.0.0 + checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + languageName: node + linkType: hard + +"toggle-selection@npm:^1.0.6": + version: 1.0.6 + resolution: "toggle-selection@npm:1.0.6" + checksum: a90dc80ed1e7b18db8f4e16e86a5574f87632dc729cfc07d9ea3ced50021ad42bb4e08f22c0913e0b98e3837b0b717e0a51613c65f30418e21eb99da6556a74c + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2": + version: 4.1.3 + resolution: "tough-cookie@npm:4.1.3" + dependencies: + psl: ^1.1.33 + punycode: ^2.1.1 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: ^2.1.1 + checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 + languageName: node + linkType: hard + +"treeverse@npm:^3.0.0": + version: 3.0.0 + resolution: "treeverse@npm:3.0.0" + checksum: 73168d9887fa57b0719218f176c5a3cfbaaf310922879acb4adf76665bc17dcdb6ed3e4163f0c27eee17e346886186a1515ea6f87e96cdc10df1dce13bf622a0 + languageName: node + linkType: hard + +"ts-api-utils@npm:^1.0.1": + version: 1.2.0 + resolution: "ts-api-utils@npm:1.2.0" + peerDependencies: + typescript: ">=4.2.0" + checksum: 9f11d4fdb8171e68cca664ae7b9c0438a2f57f66283f2e5aec8eb7ca3cb5126fb35be9cdf8884b35bf75bbf4cf222d7ea5f30e12bc7b984a720e42a4e44524bb + languageName: node + linkType: hard + +"ts-dedent@npm:^2.0.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af + languageName: node + linkType: hard + +"ts-node@npm:^10.9.2": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": ^0.8.0 + "@tsconfig/node10": ^1.0.7 + "@tsconfig/node12": ^1.0.7 + "@tsconfig/node14": ^1.0.0 + "@tsconfig/node16": ^1.0.2 + acorn: ^8.4.1 + acorn-walk: ^8.1.1 + arg: ^4.1.0 + create-require: ^1.1.0 + diff: ^4.0.1 + make-error: ^1.1.1 + v8-compile-cache-lib: ^3.0.1 + yn: 3.1.1 + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac + languageName: node + linkType: hard + +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" + dependencies: + "@types/json5": ^0.0.29 + json5: ^1.0.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: 59f35407a390d9482b320451f52a411a256a130ff0e7543d18c6f20afab29ac19fbe55c360a93d6476213cc335a4d76ce90f67df54c4e9037f7d240920832201 + languageName: node + linkType: hard + +"tslib@npm:^1.8.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + +"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: ^1.8.1 + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 + languageName: node + linkType: hard + +"tuf-js@npm:^2.2.0": + version: 2.2.0 + resolution: "tuf-js@npm:2.2.0" + dependencies: + "@tufjs/models": 2.0.0 + debug: ^4.3.4 + make-fetch-happen: ^13.0.0 + checksum: 5e7ce24d5339a7c9255eb130e735f6fef36f02c916e6d2058602982803832afa086f31ae3b00d8cac6dca106644cc6f1b1463058dd513e2cc7b47c5783bb3098 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: ^1.2.1 + checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + languageName: node + linkType: hard + +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + languageName: node + linkType: hard + +"type-fest@npm:^2.5.1": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 + languageName: node + linkType: hard + +"type-fest@npm:^3.0.0, type-fest@npm:^3.8.0": + version: 3.13.1 + resolution: "type-fest@npm:3.13.1" + checksum: c06b0901d54391dc46de3802375f5579868949d71f93b425ce564e19a428a0d411ae8d8cb0e300d330071d86152c3ea86e744c3f2860a42a79585b6ec2fdae8e + languageName: node + linkType: hard + +"type-fest@npm:^4.2.0, type-fest@npm:^4.6.0": + version: 4.10.1 + resolution: "type-fest@npm:4.10.1" + checksum: 93fa506a81c963d4a4efcf72daa730d7720366fd26cde38c2be816122d46dddebaf4faa91ab89f8b19482d1bbdf8c497858e11d451602eafc9ea9ab08aee7327 + languageName: node + linkType: hard + +"typed-array-buffer@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-buffer@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + is-typed-array: ^1.1.10 + checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-offset@npm:1.0.0" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + +"typedarray-to-buffer@npm:^3.1.5": + version: 3.1.5 + resolution: "typedarray-to-buffer@npm:3.1.5" + dependencies: + is-typedarray: ^1.0.0 + checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 + languageName: node + linkType: hard + +"typescript@npm:^5.3.3": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 2007ccb6e51bbbf6fde0a78099efe04dc1c3dfbdff04ca3b6a8bc717991862b39fd6126c0c3ebf2d2d98ac5e960bcaa873826bb2bb241f14277034148f41f6a2 + languageName: node + linkType: hard + +"typescript@patch:typescript@^5.3.3#~builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=e012d7" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 4e604a9e107ce0c23b16a2f8d79d0531d4d8fe9ebbb7a8c395c66998c39892f0e0a071ef0b0d4e66420a8ec2b8d6cfd9cdb29ba24f25b37cba072e9282376df9 + languageName: node + linkType: hard + +"uglify-js@npm:^3.1.4": + version: 3.17.4 + resolution: "uglify-js@npm:3.17.4" + bin: + uglifyjs: bin/uglifyjs + checksum: 7b3897df38b6fc7d7d9f4dcd658599d81aa2b1fb0d074829dd4e5290f7318dbca1f4af2f45acb833b95b1fe0ed4698662ab61b87e94328eb4c0a0d3435baf924 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "unbox-primitive@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + has-bigints: ^1.0.2 + has-symbols: ^1.0.3 + which-boxed-primitive: ^1.0.2 + checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + languageName: node + linkType: hard + +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 + languageName: node + linkType: hard + +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" + checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: ^2.0.0 + unicode-property-aliases-ecmascript: ^2.0.0 + checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.1.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" + checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + +"unicorn-magic@npm:^0.1.0": + version: 0.1.0 + resolution: "unicorn-magic@npm:0.1.0" + checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"universal-user-agent@npm:^6.0.0": + version: 6.0.1 + resolution: "universal-user-agent@npm:6.0.1" + checksum: fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + +"use-debounce@npm:^10.0.0": + version: 10.0.0 + resolution: "use-debounce@npm:10.0.0" + peerDependencies: + react: ">=16.8.0" + checksum: b296fedba916ca721eeb7117f29a13c252966d03411abccc5e5894ed4de0f32b9cb6f6b150555b8b4cb9b0acf53b84022ad4cd43b89253389e9cd13779eebca7 + languageName: node + linkType: hard + +"use-isomorphic-layout-effect@npm:^1.1.2": + version: 1.1.2 + resolution: "use-isomorphic-layout-effect@npm:1.1.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"uuid@npm:^9.0.0, uuid@npm:^9.0.1": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 + languageName: node + linkType: hard + +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^9.0.1": + version: 9.2.0 + resolution: "v8-to-istanbul@npm:9.2.0" + dependencies: + "@jridgewell/trace-mapping": ^0.3.12 + "@types/istanbul-lib-coverage": ^2.0.1 + convert-source-map: ^2.0.0 + checksum: 31ef98c6a31b1dab6be024cf914f235408cd4c0dc56a5c744a5eea1a9e019ba279e1b6f90d695b78c3186feed391ed492380ccf095009e2eb91f3d058f0b4491 + languageName: node + linkType: hard + +"validate-npm-package-license@npm:^3.0.4": + version: 3.0.4 + resolution: "validate-npm-package-license@npm:3.0.4" + dependencies: + spdx-correct: ^3.0.0 + spdx-expression-parse: ^3.0.0 + checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad + languageName: node + linkType: hard + +"validate-npm-package-name@npm:^5.0.0": + version: 5.0.0 + resolution: "validate-npm-package-name@npm:5.0.0" + dependencies: + builtins: ^5.0.0 + checksum: 5342a994986199b3c28e53a8452a14b2bb5085727691ea7aa0d284a6606b127c371e0925ae99b3f1ef7cc7d2c9de75f52eb61a3d1cc45e39bca1e3a9444cbb4e + languageName: node + linkType: hard + +"vite@npm:^5.0.12": + version: 5.0.12 + resolution: "vite@npm:5.0.12" + dependencies: + esbuild: ^0.19.3 + fsevents: ~2.3.3 + postcss: ^8.4.32 + rollup: ^4.2.0 + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: b97b6f1c204d9091d0973626827a6e9d8e8b1959ebd0877b6f76e7068e1e7adf9ecd3b1cc382cbab9d421e3eeca5e1a95f27f9c1734439b229f5a58ef2052fa4 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: ^4.0.0 + checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 + languageName: node + linkType: hard + +"walk-up-path@npm:^3.0.1": + version: 3.0.1 + resolution: "walk-up-path@npm:3.0.1" + checksum: 9ffca02fe30fb65f6db531260582988c5e766f4c739cf86a6109380a7f791236b5d0b92b1dce37a6f73e22dca6bc9d93bf3700413e16251b2bd6bbd1ca2be316 + languageName: node + linkType: hard + +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: 1.0.12 + checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c + languageName: node + linkType: hard + +"wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: ^1.0.3 + checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.2 + resolution: "web-streams-polyfill@npm:3.3.2" + checksum: 0292f4113c1bda40d8e8ecebee39eb14cc2e2e560a65a6867980e394537a2645130e2c73f5ef6e641fd3697d2f71720ccf659aebaf69a9d5a773f653a0fdf39d + languageName: node + linkType: hard + +"webcola@npm:3.4.0": + version: 3.4.0 + resolution: "webcola@npm:3.4.0" + dependencies: + d3-dispatch: ^1.0.3 + d3-drag: ^1.0.4 + d3-shape: ^1.3.5 + d3-timer: ^1.0.5 + checksum: 046f7cc06ef077b42e2cdecba9b9407452008444629a95d1c921283b9dae7c874ef8b5d66d4e21d56f427662598ae12d11992fbe10ec29d8ec0bcc68f6c40b75 + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b + languageName: node + linkType: hard + +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: 0.6.3 + checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: ^3.0.0 + webidl-conversions: ^7.0.0 + checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "which-boxed-primitive@npm:1.0.2" + dependencies: + is-bigint: ^1.0.1 + is-boolean-object: ^1.1.0 + is-number-object: ^1.0.4 + is-string: ^1.0.5 + is-symbol: ^1.0.3 + checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14": + version: 1.1.14 + resolution: "which-typed-array@npm:1.1.14" + dependencies: + available-typed-arrays: ^1.0.6 + call-bind: ^1.0.5 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.1 + checksum: efe30c143c58630dde8ab96f9330e20165bacd77ca843c602b510120a415415573bcdef3ccbc30a0e5aaf20f257360cfe24712aea0008f149ce5bb99834c0c0b + languageName: node + linkType: hard + +"which@npm:^1.3.1": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"wordwrap@npm:^1.0.0": + version: 1.0.0 + resolution: "wordwrap@npm:1.0.0" + checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrap-ansi@npm:^9.0.0": + version: 9.0.0 + resolution: "wrap-ansi@npm:9.0.0" + dependencies: + ansi-styles: ^6.2.1 + string-width: ^7.0.0 + strip-ansi: ^7.1.0 + checksum: b2d43b76b3d8dcbdd64768165e548aad3e54e1cae4ecd31bac9966faaa7cf0b0345677ad6879db10ba58eb446ba8fa44fb82b4951872fd397f096712467a809f + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"write-file-atomic@npm:^3.0.3": + version: 3.0.3 + resolution: "write-file-atomic@npm:3.0.3" + dependencies: + imurmurhash: ^0.1.4 + is-typedarray: ^1.0.0 + signal-exit: ^3.0.2 + typedarray-to-buffer: ^3.1.5 + checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: ^0.1.4 + signal-exit: ^3.0.7 + checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c + languageName: node + linkType: hard + +"write-file-atomic@npm:^5.0.0, write-file-atomic@npm:^5.0.1": + version: 5.0.1 + resolution: "write-file-atomic@npm:5.0.1" + dependencies: + imurmurhash: ^0.1.4 + signal-exit: ^4.0.1 + checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 + languageName: node + linkType: hard + +"write-json-file@npm:^5.0.0": + version: 5.0.0 + resolution: "write-json-file@npm:5.0.0" + dependencies: + detect-indent: ^7.0.0 + is-plain-obj: ^4.0.0 + sort-keys: ^5.0.0 + write-file-atomic: ^3.0.3 + checksum: 6df0e8857c6ebe091cf8d23fa3405f004e7febf10307ad3d4da7b1ddfe1fa80e7cdd9832d3a554e253b6d3a6255d67b66f419cea0f8724abb25949be392eb23b + languageName: node + linkType: hard + +"write-pkg@npm:^6.0.1": + version: 6.0.1 + resolution: "write-pkg@npm:6.0.1" + dependencies: + deepmerge-ts: ^5.1.0 + read-pkg: ^8.1.0 + sort-keys: ^5.0.0 + type-fest: ^4.6.0 + write-json-file: ^5.0.0 + checksum: d482355662774945a7243bea2e03d32bf1173571211646d3793c18df5a41516c2eb35eca2ebbe65563b9d20c643560bd3751ea32ae57aa9144b3f81b79512a60 + languageName: node + linkType: hard + +"ws@npm:^8.11.0": + version: 8.16.0 + resolution: "ws@npm:8.16.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: feb3eecd2bae82fa8a8beef800290ce437d8b8063bdc69712725f21aef77c49cb2ff45c6e5e7fce622248f9c7abaee506bae0a9064067ffd6935460c7357321b + languageName: node + linkType: hard + +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yaml@npm:2.3.4": + version: 2.3.4 + resolution: "yaml@npm:2.3.4" + checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 + languageName: node + linkType: hard + +"yaml@npm:^1.10.0": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c + languageName: node + linkType: hard + +"yargs@npm:^17.3.1, yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard + +"yocto-queue@npm:^1.0.0": + version: 1.0.0 + resolution: "yocto-queue@npm:1.0.0" + checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 + languageName: node + linkType: hard From 4a6ffa944da974e38ef8d9d7500e246bc638caeb Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 14 Feb 2024 22:24:01 -0500 Subject: [PATCH 008/471] cleanup --- packages/ui/src/util/xml/Constants.ts | 1 - packages/ui/src/util/xml/README.md | 6 -- packages/ui/src/util/xml/XmlDocument.ts | 55 ------------------- packages/ui/src/util/xml/index.ts | 2 - packages/ui/src/util/xsd/SchemaBuilder.ts | 4 +- packages/ui/src/util/xsd/XmlSchemaExternal.ts | 2 +- .../src/util/{xml => xsd}/xml-parser.test.ts | 3 +- 7 files changed, 4 insertions(+), 69 deletions(-) delete mode 100644 packages/ui/src/util/xml/Constants.ts delete mode 100644 packages/ui/src/util/xml/README.md delete mode 100644 packages/ui/src/util/xml/XmlDocument.ts delete mode 100644 packages/ui/src/util/xml/index.ts rename packages/ui/src/util/{xml => xsd}/xml-parser.test.ts (95%) diff --git a/packages/ui/src/util/xml/Constants.ts b/packages/ui/src/util/xml/Constants.ts deleted file mode 100644 index e7b8d5e44..000000000 --- a/packages/ui/src/util/xml/Constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const ATTRIBUTE_PREFIX = '_attr_'; diff --git a/packages/ui/src/util/xml/README.md b/packages/ui/src/util/xml/README.md deleted file mode 100644 index 238932a9b..000000000 --- a/packages/ui/src/util/xml/README.md +++ /dev/null @@ -1,6 +0,0 @@ -XML DOM Document bridge -======================== -This is to mimic XML DOM Document in TypeScript, with handling namespaces transparently. -This internally uses fast-xml-parser to generate a JSON object from XML string, and then wrap -it with XmlDocument class which mimics DOM Document object. The primary focus is to bridge -between our [XSD parser](../xsd/README.md) and the `any` type of object generated from [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser#readme). \ No newline at end of file diff --git a/packages/ui/src/util/xml/XmlDocument.ts b/packages/ui/src/util/xml/XmlDocument.ts deleted file mode 100644 index 3f15a42c1..000000000 --- a/packages/ui/src/util/xml/XmlDocument.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { XMLParser } from 'fast-xml-parser'; -import { ATTRIBUTE_PREFIX } from './Constants'; - -export function parseDocument(content: string): Document { - const parser = new DOMParser(); - return parser.parseFromString(content, 'text/xml'); -} - -export function buildXmlDocument(content: string): XmlDocument { - const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: ATTRIBUTE_PREFIX }); - const parsed = parser.parse(content); - return new XmlDocument(parsed); -} - -export abstract class XmlNode { - protected nodes: XmlNode[] = []; - constructor(parsed: object) { - this.nodes = Object.entries(parsed).map(([name, value]) => { - if (name?.startsWith(ATTRIBUTE_PREFIX)) { - nodes.push(this.createAttributeNode(value)); - } - }); - } - - getFirstChild(): XmlNode {} - - getFirstChildElementNS(uri: string) { - const child = this.getFirstChild(); - while (child != null) { - if (child.getNodeType === Node.ELEMENT_NODE) { - const childURI = child.getNamespaceURI(); - if (childURI?.equals(uri)) { - return child as XmlElement; - } - } - child = child.getNextSibling(); - } - } -} - -export class XmlDocument extends XmlNode { - constructor(parsed: object) { - super(parsed); - } - - getDocumentElement(): XmlElement { - return new XmlElement(Object.values(this.parsed)[0]); - } -} - -export class XmlElement extends XmlNode { - constructor(parsed: object) { - super(parsed); - } -} diff --git a/packages/ui/src/util/xml/index.ts b/packages/ui/src/util/xml/index.ts deleted file mode 100644 index 4cbc983fd..000000000 --- a/packages/ui/src/util/xml/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './Constants'; -export * from './XmlDocument'; diff --git a/packages/ui/src/util/xsd/SchemaBuilder.ts b/packages/ui/src/util/xsd/SchemaBuilder.ts index 522fea051..87d7e6d40 100644 --- a/packages/ui/src/util/xsd/SchemaBuilder.ts +++ b/packages/ui/src/util/xsd/SchemaBuilder.ts @@ -603,11 +603,11 @@ export class SchemaBuilder { */ private getCachedSchema(targetNamespace: string, schemaLocation: string, baseUri: string) { - let resolvedSchema = undefined; + let resolvedSchema = null; if (this.resolvedSchemas != null) { // cache is initialized, use it const schemaKey = targetNamespace + schemaLocation + baseUri; - resolvedSchema = this.resolvedSchemas.get(schemaKey); + resolvedSchema = this.resolvedSchemas.get(schemaKey) || null; } return resolvedSchema; } diff --git a/packages/ui/src/util/xsd/XmlSchemaExternal.ts b/packages/ui/src/util/xsd/XmlSchemaExternal.ts index d10be5d3a..d11dc203b 100644 --- a/packages/ui/src/util/xsd/XmlSchemaExternal.ts +++ b/packages/ui/src/util/xsd/XmlSchemaExternal.ts @@ -1,7 +1,7 @@ import { XmlSchema, XmlSchemaAnnotated } from '.'; export abstract class XmlSchemaExternal extends XmlSchemaAnnotated { - schema?: XmlSchema; + schema: XmlSchema | null = null; schemaLocation: string | null = null; /** diff --git a/packages/ui/src/util/xml/xml-parser.test.ts b/packages/ui/src/util/xsd/xml-parser.test.ts similarity index 95% rename from packages/ui/src/util/xml/xml-parser.test.ts rename to packages/ui/src/util/xsd/xml-parser.test.ts index c5b27f006..021bddfda 100644 --- a/packages/ui/src/util/xml/xml-parser.test.ts +++ b/packages/ui/src/util/xsd/xml-parser.test.ts @@ -1,12 +1,11 @@ import { XMLParser } from 'fast-xml-parser'; -import { ATTRIBUTE_PREFIX } from './Constants'; import * as fs from 'fs'; describe('XML parser', () => { describe('fast-xml-parser', () => { const parser = new XMLParser({ ignoreAttributes: false, - attributeNamePrefix: ATTRIBUTE_PREFIX, + attributeNamePrefix: '_attr_', preserveOrder: true, }); From 0ca7e7c7ca3dce9f15adce0b2af6ac6147440489 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 15 Feb 2024 17:00:21 -0500 Subject: [PATCH 009/471] checkpoint: XmlSchema porting hopefully done. Let's try (#5) --- packages/ui/src/services/document.service.ts | 2 +- packages/ui/src/util/xsd/QName.ts | 8 +- packages/ui/src/util/xsd/SchemaBuilder.ts | 726 +++++++++--------- packages/ui/src/util/xsd/XmlSchema.ts | 12 +- packages/ui/src/util/xsd/XmlSchemaAll.ts | 9 + .../ui/src/util/xsd/XmlSchemaAnnotated.ts | 2 +- packages/ui/src/util/xsd/XmlSchemaAny.ts | 66 ++ .../ui/src/util/xsd/XmlSchemaAnyAttribute.ts | 27 + .../ui/src/util/xsd/XmlSchemaAttribute.ts | 156 +++- .../src/util/xsd/XmlSchemaAttributeGroup.ts | 63 +- .../util/xsd/XmlSchemaAttributeGroupMember.ts | 4 + .../util/xsd/XmlSchemaAttributeGroupRef.ts | 49 ++ .../util/xsd/XmlSchemaAttributeOrGroupRef.ts | 8 + packages/ui/src/util/xsd/XmlSchemaChoice.ts | 15 + .../ui/src/util/xsd/XmlSchemaCollection.ts | 100 +-- .../src/util/xsd/XmlSchemaComplexContent.ts | 35 + .../xsd/XmlSchemaComplexContentExtension.ts | 53 ++ .../xsd/XmlSchemaComplexContentRestriction.ts | 54 ++ .../ui/src/util/xsd/XmlSchemaComplexType.ts | 35 +- packages/ui/src/util/xsd/XmlSchemaContent.ts | 6 + .../ui/src/util/xsd/XmlSchemaContentModel.ts | 9 + .../util/xsd/XmlSchemaContentProcessing.ts | 14 + .../ui/src/util/xsd/XmlSchemaContentType.ts | 15 + packages/ui/src/util/xsd/XmlSchemaElement.ts | 16 +- packages/ui/src/util/xsd/XmlSchemaFacet.ts | 15 +- packages/ui/src/util/xsd/XmlSchemaGroup.ts | 64 +- .../ui/src/util/xsd/XmlSchemaGroupParticle.ts | 6 + packages/ui/src/util/xsd/XmlSchemaGroupRef.ts | 37 + .../util/xsd/XmlSchemaIdentityConstraint.ts | 6 +- .../src/util/xsd/XmlSchemaItemWithRefBase.ts | 2 +- packages/ui/src/util/xsd/XmlSchemaNotation.ts | 72 +- packages/ui/src/util/xsd/XmlSchemaObject.ts | 6 +- packages/ui/src/util/xsd/XmlSchemaRedefine.ts | 45 ++ packages/ui/src/util/xsd/XmlSchemaSequence.ts | 22 + .../ui/src/util/xsd/XmlSchemaSimpleContent.ts | 18 + .../xsd/XmlSchemaSimpleContentExtension.ts | 44 ++ .../xsd/XmlSchemaSimpleContentRestriction.ts | 66 ++ .../src/util/xsd/XmlSchemaSimpleTypeUnion.ts | 31 + packages/ui/src/util/xsd/XmlSchemaUse.ts | 13 + packages/ui/src/util/xsd/XmlSchemaXPath.ts | 17 + packages/ui/src/util/xsd/constants.ts | 5 + .../DefaultExtensionDeserializer.ts | 58 ++ .../extensions/DefaultExtensionSerializer.ts | 39 + .../xsd/extensions/ExtensionDeserializer.ts | 22 + .../util/xsd/extensions/ExtensionRegistry.ts | 115 ++- .../xsd/extensions/ExtensionSerializer.ts | 19 + packages/ui/src/util/xsd/extensions/index.ts | 4 + packages/ui/src/util/xsd/index.ts | 30 +- .../util/xsd/resolver/DefaultURIResolver.ts | 4 +- .../ui/src/util/xsd/utils/XmlSchemaNamed.ts | 9 + .../src/util/xsd/utils/XmlSchemaNamedImpl.ts | 2 +- .../xsd/utils/XmlSchemaNamedWithFormImpl.ts | 69 ++ .../ui/src/util/xsd/utils/XmlSchemaRef.ts | 42 +- packages/ui/src/util/xsd/utils/index.ts | 1 + 54 files changed, 1910 insertions(+), 457 deletions(-) create mode 100644 packages/ui/src/util/xsd/XmlSchemaAll.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAny.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAnyAttribute.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAttributeGroupMember.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaAttributeOrGroupRef.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaChoice.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaComplexContent.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaComplexContentExtension.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaComplexContentRestriction.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaContent.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaContentModel.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaContentProcessing.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaContentType.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaGroupParticle.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaGroupRef.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaRedefine.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaSequence.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaSimpleContent.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaSimpleContentExtension.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaSimpleContentRestriction.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaSimpleTypeUnion.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaUse.ts create mode 100644 packages/ui/src/util/xsd/XmlSchemaXPath.ts create mode 100644 packages/ui/src/util/xsd/extensions/DefaultExtensionDeserializer.ts create mode 100644 packages/ui/src/util/xsd/extensions/DefaultExtensionSerializer.ts create mode 100644 packages/ui/src/util/xsd/extensions/ExtensionDeserializer.ts create mode 100644 packages/ui/src/util/xsd/extensions/ExtensionSerializer.ts create mode 100644 packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index 74c11ccb7..11aceca0d 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -4,7 +4,7 @@ import { XmlSchema, XmlSchemaCollection } from '../util/xsd'; export class DocumentService { static parseXmlSchema(content: string): IDocument { const collection = new XmlSchemaCollection(); - const xmlSchema = collection.read(content); + const xmlSchema = collection.read(content, () => {}); return DocumentService.fromXmlSchema(xmlSchema); } diff --git a/packages/ui/src/util/xsd/QName.ts b/packages/ui/src/util/xsd/QName.ts index 9c5b219b9..beb53d5fe 100644 --- a/packages/ui/src/util/xsd/QName.ts +++ b/packages/ui/src/util/xsd/QName.ts @@ -3,7 +3,7 @@ export class QName { constructor( namespaceURI: string | null, - private localPart: string, + private localPart: string | null, private prefix?: string, ) { this.namespaceURI = namespaceURI != null ? namespaceURI : ''; @@ -13,7 +13,7 @@ export class QName { return this.namespaceURI; } - getLocalPart(): string { + getLocalPart(): string | null { return this.localPart; } @@ -21,10 +21,6 @@ export class QName { return this.prefix; } - toString(): string { - return this.namespaceURI === '' ? this.localPart : `{${this.namespaceURI}}${this.localPart}`; - } - valueOf(qNameAsString: string): QName { if (qNameAsString == null) { throw new Error('cannot create QName from null'); diff --git a/packages/ui/src/util/xsd/SchemaBuilder.ts b/packages/ui/src/util/xsd/SchemaBuilder.ts index 87d7e6d40..3a7c8cf27 100644 --- a/packages/ui/src/util/xsd/SchemaBuilder.ts +++ b/packages/ui/src/util/xsd/SchemaBuilder.ts @@ -3,25 +3,66 @@ import { QName, SchemaKey, XmlSchema, - XmlSchemaAnnotation, XmlSchemaAppInfo, + XmlSchemaAnnotation, + XmlSchemaAppInfo, XmlSchemaAttribute, - XmlSchemaCollection, XmlSchemaComplexType, - XmlSchemaDerivationMethod, XmlSchemaDocumentation, - XmlSchemaElement, XmlSchemaFacet, + XmlSchemaCollection, + XmlSchemaComplexType, + XmlSchemaDerivationMethod, + XmlSchemaDocumentation, + XmlSchemaElement, + XmlSchemaFacet, XmlSchemaForm, - xmlSchemaFormValueOf, XmlSchemaNotation, + xmlSchemaFormValueOf, + XmlSchemaNotation, XmlSchemaKey, XmlSchemaObject, - XmlSchemaSimpleType, XmlSchemaKeyref, XmlSchemaUnique, XmlSchemaImport, XmlSchemaInclude + XmlSchemaSimpleType, + XmlSchemaKeyref, + XmlSchemaUnique, + XmlSchemaImport, + XmlSchemaInclude, + XmlSchemaAll, + XmlSchemaAny, + xmlSchemaContentProcessingValueOf, + XmlSchemaContentProcessing, + XmlSchemaAnyAttribute, + xmlSchemaUseValueOf, + XmlSchemaAttributeGroup, + XmlSchemaAttributeGroupRef, + XmlSchemaChoice, + XmlSchemaComplexContent, + XmlSchemaComplexContentExtension, + XmlSchemaComplexContentRestriction, + XmlSchemaIdentityConstraint, + XmlSchemaXPath, + XmlSchemaGroup, + XmlSchemaGroupRef, + XmlSchemaRedefine, + XmlSchemaSequence, + XmlSchemaSimpleContent, + XmlSchemaSimpleContentExtension, + XmlSchemaSimpleContentRestriction, + XmlSchemaSimpleTypeList, + XmlSchemaSimpleTypeRestriction, + XmlSchemaSimpleTypeUnion, } from '.'; import { NamespaceContext, NodeNamespaceContext, XDOMUtil } from './utils'; -import {ExtensionRegistry} from './extensions'; -import * as Constants from "./constants"; -import {} from "./DocumentFragmentNodeList"; +import { ExtensionRegistry } from './extensions'; +import * as Constants from './constants'; export class SchemaBuilder { private resolvedSchemas = new Map(); - private static readonly RESERVED_ATTRIBUTES = new Set(['name', 'type', 'default', 'fixed', 'form', 'id', 'use', 'ref']); + private static readonly RESERVED_ATTRIBUTES = new Set([ + 'name', + 'type', + 'default', + 'fixed', + 'form', + 'id', + 'use', + 'ref', + ]); private currentSchema = new XmlSchema(); private extReg?: ExtensionRegistry; @@ -48,7 +89,7 @@ export class SchemaBuilder { } getDerivation(el: Element, attrName: string) { - if (el.hasAttribute(attrName) && !(el.getAttribute(attrName) === "")) { + if (el.hasAttribute(attrName) && !(el.getAttribute(attrName) === '')) { // #all | List of (extension | restriction | substitution) const derivationMethod = el.getAttribute(attrName)!.trim(); return XmlSchemaDerivationMethod.schemaValueOf(derivationMethod); @@ -60,7 +101,7 @@ export class SchemaBuilder { if (el.hasAttribute(attrName)) { return el.getAttribute(attrName)?.trim(); } - return "none"; // local convention for empty value. + return 'none'; // local convention for empty value. } getFormDefault(el: Element, attrName: string) { @@ -73,21 +114,21 @@ export class SchemaBuilder { } getMaxOccurs(el: Element) { - if (el.getAttributeNode("maxOccurs") != null) { - const value = el.getAttribute("maxOccurs")!; - if ("unbounded" === value) { - return Number.MAX_SAFE_INTEGER; - } else { - return parseInt(value); - } + if (el.getAttributeNode('maxOccurs') != null) { + const value = el.getAttribute('maxOccurs')!; + if ('unbounded' === value) { + return Number.MAX_SAFE_INTEGER; + } else { + return parseInt(value); + } } return 1; } getMinOccurs(el: Element) { - if (el.getAttributeNode("minOccurs") != null) { - const value = el.getAttribute("minOccurs")!; - if ("unbounded" === value) { + if (el.getAttributeNode('minOccurs') != null) { + const value = el.getAttribute('minOccurs')!; + if ('unbounded' === value) { return Number.MAX_SAFE_INTEGER; } else { return parseInt(value); @@ -104,22 +145,22 @@ export class SchemaBuilder { const content = annotation.getItems(); let appInfoObj: XmlSchemaAppInfo | null; - for (let appinfo = XDOMUtil.getFirstChildElementNS(annotEl, XmlSchema.SCHEMA_NS, 'appinfo'); - appinfo != null; - appinfo = XDOMUtil.getNextSiblingElementNS(appinfo, XmlSchema.SCHEMA_NS, 'appinfo')) { - + for ( + let appinfo = XDOMUtil.getFirstChildElementNS(annotEl, XmlSchema.SCHEMA_NS, 'appinfo'); + appinfo != null; + appinfo = XDOMUtil.getNextSiblingElementNS(appinfo, XmlSchema.SCHEMA_NS, 'appinfo') + ) { appInfoObj = this.handleAppInfo(appinfo); if (appInfoObj != null) { content.push(appInfoObj); } } - for (let documentation = XDOMUtil.getFirstChildElementNS(annotEl, - XmlSchema.SCHEMA_NS, 'documentation'); - documentation != null; - documentation = XDOMUtil.getNextSiblingElementNS(documentation, XmlSchema.SCHEMA_NS, - 'documentation')) { - + for ( + let documentation = XDOMUtil.getFirstChildElementNS(annotEl, XmlSchema.SCHEMA_NS, 'documentation'); + documentation != null; + documentation = XDOMUtil.getNextSiblingElementNS(documentation, XmlSchema.SCHEMA_NS, 'documentation') + ) { const docsObj = this.handleDocumentation(documentation); if (docsObj != null) { content.push(docsObj); @@ -141,10 +182,10 @@ export class SchemaBuilder { const markup = new DocumentFragmentNodeList(content); if (!content.hasAttribute('source') && markup.length == 0) { - return null; - } + return null; + } - appInfo.setSource(this.getAttribute(content, "source")); + appInfo.setSource(this.getAttribute(content, 'source')); appInfo.setMarkup(markup); return appInfo; } @@ -157,22 +198,20 @@ export class SchemaBuilder { * @param schemaEl * @param topLevel */ - handleComplexType(schema: XmlSchema, complexEl: Element, schemaEl: Element, - topLevel: boolean) { - - const ct = new XmlSchemaComplexType(schema, topLevel); + handleComplexType(schema: XmlSchema, complexEl: Element, schemaEl: Element, topLevel: boolean) { + const ct = new XmlSchemaComplexType(schema, topLevel); if (complexEl.hasAttribute('name')) { - // String namespace = (schema.targetNamespace==null)? // "":schema.targetNamespace; ct.setName(complexEl.getAttribute('name')); } - for (let el = XDOMUtil.getFirstChildElementNS(complexEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(complexEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { // String elPrefix = el.getPrefix() == null ? "" : // el.getPrefix(); // if(elPrefix.equals(schema.schema_ns_prefix)) { @@ -219,9 +258,9 @@ export class SchemaBuilder { ct.setAbstract(false); } } - if (complexEl.hasAttribute("mixed")) { - const mixed = complexEl.getAttribute("mixed")!; - if (mixed.toLowerCase() === "true") { + if (complexEl.hasAttribute('mixed')) { + const mixed = complexEl.getAttribute('mixed')!; + if (mixed.toLowerCase() === 'true') { ct.setMixed(true); } else { ct.setMixed(false); @@ -242,12 +281,12 @@ export class SchemaBuilder { const documentation = new XmlSchemaDocumentation(); const markup = this.getChildren(content); - if (!content.hasAttribute("source") && !content.hasAttribute("xml:lang") && markup == null) { + if (!content.hasAttribute('source') && !content.hasAttribute('xml:lang') && markup == null) { return null; } - documentation.setSource(this.getAttribute(content, "source")); - documentation.setLanguage(this.getAttribute(content, "xml:lang")); + documentation.setSource(this.getAttribute(content, 'source')); + documentation.setLanguage(this.getAttribute(content, 'xml:lang')); documentation.setMarkup(new DocumentFragmentNodeList(content)); return documentation; @@ -265,11 +304,10 @@ export class SchemaBuilder { * @param isGlobal */ handleElement(schema: XmlSchema, el: Element, schemaEl: Element, isGlobal: boolean) { - const element = new XmlSchemaElement(schema, isGlobal); - if (el.getAttributeNode("name") != null) { - element.setName(el.getAttribute("name")); + if (el.getAttributeNode('name') != null) { + element.setName(el.getAttribute('name')); } // String namespace = (schema.targetNamespace==null)? @@ -282,14 +320,12 @@ export class SchemaBuilder { this.handleElementAnnotation(el, element); this.handleElementGlobalType(el, element); - let simpleTypeEl: Element | null; let complexTypeEl: Element | null; let keyEl: Element | null; let keyrefEl: Element | null; let uniqueEl: Element | null; - simpleTypeEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'simpleType'); + const simpleTypeEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'simpleType'); if (simpleTypeEl != null) { - const simpleType = this.handleSimpleType(schema, simpleTypeEl, schemaEl, false); element.setSchemaType(simpleType); element.setSchemaTypeName(simpleType.getQName()); @@ -304,11 +340,11 @@ export class SchemaBuilder { if (keyEl != null) { while (keyEl != null) { element.getConstraints().push(this.handleConstraint(keyEl, new XmlSchemaKey())); - keyEl = XDOMUtil.getNextSiblingElementNS(keyEl, XmlSchema.SCHEMA_NS, "key"); + keyEl = XDOMUtil.getNextSiblingElementNS(keyEl, XmlSchema.SCHEMA_NS, 'key'); } } - keyrefEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, "keyref"); + keyrefEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'keyref'); if (keyrefEl != null) { while (keyrefEl != null) { const keyRef = this.handleConstraint(keyrefEl, new XmlSchemaKeyref()) as XmlSchemaKeyref; @@ -330,7 +366,7 @@ export class SchemaBuilder { } if (el.hasAttribute('abstract')) { - element.setAbstractElement((/true/i).test(el.getAttribute('abstract')!)); + element.setAbstractElement(/true/i.test(el.getAttribute('abstract')!)); } if (el.hasAttribute('block')) { @@ -354,7 +390,7 @@ export class SchemaBuilder { } if (el.hasAttribute('nillable')) { - element.setNillable((/true/i).test(el.getAttribute('nillable')!)); + element.setNillable(/true/i.test(el.getAttribute('nillable')!)); } if (el.hasAttribute('substitutionGroup')) { @@ -380,7 +416,6 @@ export class SchemaBuilder { * @return XmlSchemaObject */ handleImport(schema: XmlSchema, importEl: Element, _schemaEl: Element) { - const schemaImport = new XmlSchemaImport(schema); const annotationEl = XDOMUtil.getFirstChildElementNS(importEl, XmlSchema.SCHEMA_NS, 'annotation'); @@ -397,7 +432,7 @@ export class SchemaBuilder { const validator = (pSchema: XmlSchema) => { const isEmpty = (pValue: string | null) => { return pValue == null || Constants.NULL_NS_URI === pValue; - } + }; let valid: boolean; if (isEmpty(uri)) { @@ -406,13 +441,15 @@ export class SchemaBuilder { valid = pSchema.getSyntacticalTargetNamespace() === uri; } if (!valid) { - throw new Error("An imported schema was announced to have the namespace " - + uri + ", but has the namespace " - + pSchema.getSyntacticalTargetNamespace()); + throw new Error( + 'An imported schema was announced to have the namespace ' + + uri + + ', but has the namespace ' + + pSchema.getSyntacticalTargetNamespace(), + ); } }; - schemaImport.schema = - this.resolveXmlSchema(uri, schemaImport.schemaLocation, schema.getSourceURI(), validator); + schemaImport.schema = this.resolveXmlSchema(uri, schemaImport.schemaLocation, schema.getSourceURI(), validator); return schemaImport; } @@ -424,7 +461,6 @@ export class SchemaBuilder { * @param _schemaEl */ handleInclude(schema: XmlSchema, includeEl: Element, _schemaEl: Element) { - const include = new XmlSchemaInclude(schema); const annotationEl = XDOMUtil.getFirstChildElementNS(includeEl, XmlSchema.SCHEMA_NS, 'annotation'); @@ -434,16 +470,19 @@ export class SchemaBuilder { include.setAnnotation(includeAnnotation); } - include.schemaLocation = includeEl.getAttribute("schemaLocation"); + include.schemaLocation = includeEl.getAttribute('schemaLocation'); // includes are not supposed to have a target namespace // we should be passing in a null in place of the target // namespace const validator = this.newIncludeValidator(schema); - include.schema = - this.resolveXmlSchema(schema.getLogicalTargetNamespace(), include.schemaLocation, - schema.getSourceURI(), validator); + include.schema = this.resolveXmlSchema( + schema.getLogicalTargetNamespace(), + include.schemaLocation, + schema.getSourceURI(), + validator, + ); // process extra attributes and elements this.processExtensibilityComponents(include, includeEl, true); @@ -458,8 +497,7 @@ export class SchemaBuilder { * @param schemaEl * @param topLevel */ - handleSimpleType(schema: XmlSchema, simpleEl: Element, schemaEl: Element, - topLevel: boolean) { + handleSimpleType(schema: XmlSchema, simpleEl: Element, schemaEl: Element, topLevel: boolean) { const simpleType = new XmlSchemaSimpleType(schema, topLevel); if (simpleEl.hasAttribute('name')) { simpleType.setName(simpleEl.getAttribute('name')); @@ -467,8 +505,7 @@ export class SchemaBuilder { this.handleSimpleTypeFinal(simpleEl, simpleType); - const simpleTypeAnnotationEl = - XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'annotation'); + const simpleTypeAnnotationEl = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'annotation'); if (simpleTypeAnnotationEl != null) { const simpleTypeAnnotation = this.handleAnnotation(simpleTypeAnnotationEl); @@ -480,15 +517,10 @@ export class SchemaBuilder { const listEl = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'list'); const restrictionEl = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS, 'restriction'); if (restrictionEl != null) { - this.handleSimpleTypeRestriction(schema, schemaEl, simpleType, restrictionEl); - } else if (listEl != null) { - this.handleSimpleTypeList(schema, schemaEl, simpleType, listEl); - } else if (unionEl != null) { - this.handleSimpleTypeUnion(schema, schemaEl, simpleType, unionEl); } @@ -522,21 +554,32 @@ export class SchemaBuilder { * @param baseUri * @param validator */ - resolveXmlSchema(targetNamespace: string | null, schemaLocation: string | null, baseUri: string | null, - validator: (s: XmlSchema) => void) { + resolveXmlSchema( + targetNamespace: string | null, + schemaLocation: string | null, + baseUri: string | null, + validator: (s: XmlSchema) => void, + ) { if (baseUri == null) { baseUri = this.collection.baseUri; } + if (targetNamespace == null) { + targetNamespace = Constants.NULL_NS_URI; + } - if (targetNamespace != null && schemaLocation != null && baseUri != null && this.getCachedSchema(targetNamespace, schemaLocation, baseUri) != null) { + if ( + targetNamespace != null && + schemaLocation != null && + baseUri != null && + this.getCachedSchema(targetNamespace, schemaLocation, baseUri) != null + ) { return this.getCachedSchema(targetNamespace, schemaLocation, baseUri); } // use the entity resolver provided if the schema location is present // null if (schemaLocation != null && !('' === schemaLocation)) { - const source = - this.collection.getSchemaResolver().resolveEntity(targetNamespace, schemaLocation, baseUri); + const source = this.collection.getSchemaResolver().resolveEntity(targetNamespace, schemaLocation, baseUri); // the entity resolver was unable to resolve this!! if (source == null) { @@ -544,11 +587,12 @@ export class SchemaBuilder { // known namespace map return this.collection.getKnownSchema(targetNamespace); } - const systemId = source.getSystemId() == null ? schemaLocation : source.getSystemId(); + //const systemId = source.getSystemId() == null ? schemaLocation : source.getSystemId(); + const systemId = schemaLocation; // Push repaired system id back into source where read sees it. // It is perhaps a bad thing to patch the source, but this fixes // a problem. - source.setSystemId(systemId); + //source.setSystemId(systemId); const key = new SchemaKey(targetNamespace, systemId); const schema = this.collection.getSchema(key); if (schema != null) { @@ -558,7 +602,7 @@ export class SchemaBuilder { this.collection.push(key); try { const readSchema = this.collection.read(source, validator); - this.putCachedSchema(targetNamespace, schemaLocation, baseUri, readSchema); + this.putCachedSchema(targetNamespace, schemaLocation, baseUri || '', readSchema); return readSchema; } finally { this.collection.pop(); @@ -576,7 +620,7 @@ export class SchemaBuilder { setNamespaceAttributes(schema: XmlSchema, schemaEl: Element) { // no targetnamespace found ! if (schemaEl.getAttributeNode('targetNamespace') != null) { - const contain = schemaEl.getAttribute("targetNamespace")!; + const contain = schemaEl.getAttribute('targetNamespace')!; schema.setTargetNamespace(contain); } if (this.currentValidator != null) { @@ -602,10 +646,10 @@ export class SchemaBuilder { * @return The cached schema if one exists for this thread or null. */ private getCachedSchema(targetNamespace: string, schemaLocation: string, baseUri: string) { - let resolvedSchema = null; - if (this.resolvedSchemas != null) { // cache is initialized, use it + if (this.resolvedSchemas != null) { + // cache is initialized, use it const schemaKey = targetNamespace + schemaLocation + baseUri; resolvedSchema = this.resolvedSchemas.get(schemaKey) || null; } @@ -616,7 +660,7 @@ export class SchemaBuilder { const result: Node[] = []; for (let n = content.firstChild; n != null; n = n.nextSibling) { result.push(n); - } + } if (result.length == 0) { return null; } else { @@ -626,7 +670,7 @@ export class SchemaBuilder { private getRefQName(pName: string, pNode?: Node, pContext?: NamespaceContext) { if (pNode) { - pContext = NodeNamespaceContext.getNamespaceContext(pNode) + pContext = NodeNamespaceContext.getNamespaceContext(pNode); } if (!pContext) { throw new Error('Either Node or NamespaceContext must be specified'); @@ -639,8 +683,10 @@ export class SchemaBuilder { if (offset == -1) { uri = pContext.getNamespaceURI(Constants.DEFAULT_NS_PREFIX); if (Constants.NULL_NS_URI === uri) { - if (this.currentSchema.getTargetNamespace() == null - && !(this.currentSchema.getLogicalTargetNamespace() === '')) { + if ( + this.currentSchema.getTargetNamespace() == null && + !(this.currentSchema.getLogicalTargetNamespace() === '') + ) { // If object is unqualified in a schema without a target namespace then it could // be that this schema is included in another one. The including namespace // should then be used for this reference @@ -653,13 +699,16 @@ export class SchemaBuilder { } else { prefix = pName.substring(0, offset); uri = pContext.getNamespaceURI(prefix); - if (uri == null || Constants.NULL_NS_URI === uri && this.currentSchema.getParent() != null - && this.currentSchema.getParent().getNamespaceContext() != null) { - uri = this.currentSchema.getParent().getNamespaceContext().getNamespaceURI(prefix); + const parentSchema = this.currentSchema.getParent(); + if ( + uri == null || + (Constants.NULL_NS_URI === uri && parentSchema != null && parentSchema.getNamespaceContext() != null) + ) { + uri = parentSchema!.getNamespaceContext()!.getNamespaceURI(prefix); } if (uri == null || Constants.NULL_NS_URI === uri) { - throw new Error("The prefix " + prefix + " is not bound."); + throw new Error('The prefix ' + prefix + ' is not bound.'); } localName = pName.substring(offset + 1); } @@ -667,20 +716,20 @@ export class SchemaBuilder { } private handleAll(schema: XmlSchema, allEl: Element, schemaEl: Element) { - const all = new XmlSchemaAll(); // handle min and max occurences all.setMinOccurs(this.getMinOccurs(allEl)); all.setMaxOccurs(this.getMaxOccurs(allEl)); - for (let el = XDOMUtil.getFirstChildElementNS(allEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(allEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'element') { const element = this.handleElement(schema, el, schemaEl, false); - all.getItems().add(element); + all.getItems().push(element); } else if (el.localName === 'annotation') { const annotation = this.handleAnnotation(el); all.setAnnotation(annotation); @@ -689,8 +738,7 @@ export class SchemaBuilder { return all; } - private handleAny(schema: XmlSchema, anyEl: Element, schemaEl: Element) { - + private handleAny(schema: XmlSchema, anyEl: Element, _schemaEl: Element) { const any = new XmlSchemaAny(); any.setTargetNamespace(schema.getLogicalTargetNamespace()); @@ -702,8 +750,8 @@ export class SchemaBuilder { if (anyEl.hasAttribute('processContents')) { const processContent = this.getEnumString(anyEl, 'processContents'); - any.setProcessContent(XmlSchemaContentProcessing.schemaValueOf(processContent)); - } + processContent != null && any.setProcessContent(xmlSchemaContentProcessingValueOf(processContent)); + } const annotationEl = XDOMUtil.getFirstChildElementNS(anyEl, XmlSchema.SCHEMA_NS, 'annotation'); @@ -717,8 +765,7 @@ export class SchemaBuilder { return any; } - private handleAnyAttribute(schema: XmlSchema, anyAttrEl: Element, schemaEl: Element) { - + private handleAnyAttribute(_schema: XmlSchema, anyAttrEl: Element, _schemaEl: Element) { const anyAttr = new XmlSchemaAnyAttribute(); if (anyAttrEl.hasAttribute('namespace')) { @@ -726,10 +773,12 @@ export class SchemaBuilder { } if (anyAttrEl.hasAttribute('processContents')) { - const contentProcessing = this.getEnumString(anyAttrEl, 'processContents'); - anyAttr.processContent = XmlSchemaContentProcessing.schemaValueOf(contentProcessing); + anyAttr.processContent = + contentProcessing != null + ? xmlSchemaContentProcessingValueOf(contentProcessing) + : XmlSchemaContentProcessing.NONE; } if (anyAttrEl.hasAttribute('id')) { anyAttr.setId(anyAttrEl.getAttribute('id')); @@ -754,8 +803,7 @@ export class SchemaBuilder { * @param topLevel * @return */ - private handleAttribute(schema: XmlSchema, attrEl: Element, schemaEl: Element, - topLevel: boolean = false) { + private handleAttribute(schema: XmlSchema, attrEl: Element, schemaEl: Element, topLevel: boolean = false) { const attr = new XmlSchemaAttribute(schema, topLevel); if (attrEl.hasAttribute('name')) { @@ -786,11 +834,11 @@ export class SchemaBuilder { } if (attrEl.hasAttribute('use')) { - const useType = this.getEnumString(attrEl, 'use'); - attr.setUse(XmlSchemaUse.schemaValueOf(useType)); + const useType = this.getEnumString(attrEl, 'use')!; + attr.setUse(xmlSchemaUseValueOf(useType)); } if (attrEl.hasAttribute('ref')) { - const name = attrEl.getAttribute("ref"); + const name = attrEl.getAttribute('ref')!; attr.getRef().setTargetQName(this.getRefQName(name, attrEl)); } @@ -808,64 +856,62 @@ export class SchemaBuilder { attr.setAnnotation(annotation); } - const attrNodes = attrEl.getAttributes(); + const attrNodes = attrEl.attributes; const attrs: Attr[] = []; - let ctx?: NodeNamespaceContext; - for (let i = 0; i < attrNodes.getLength(); i++) { + let ctx: NodeNamespaceContext | null = null; + for (let i = 0; i < attrNodes.length; i++) { const att = attrNodes.item(i) as Attr; - const attName = att.getName(); + const attName = att.name; if (!SchemaBuilder.RESERVED_ATTRIBUTES.has(attName)) { - attrs.push(att); - const value = att.getValue(); + const value = att.value; - if (value.indexOf(":") > -1) { + if (value.indexOf(':') > -1) { // there is a possibility of some namespace mapping - const prefix = value.substring(0, value.indexOf(":")); + const prefix = value.substring(0, value.indexOf(':')); if (ctx == null) { ctx = NodeNamespaceContext.getNamespaceContext(attrEl); } const namespace = ctx.getNamespaceURI(prefix); if (Constants.NULL_NS_URI !== namespace) { - const nsAttr = attrEl.ownerDocument.createAttributeNS(Constants.XMLNS_ATTRIBUTE_NS_URI, - "xmlns:" + prefix); - nsAttr.setValue(namespace); + const nsAttr = attrEl.ownerDocument.createAttributeNS(Constants.XMLNS_ATTRIBUTE_NS_URI, 'xmlns:' + prefix); + nsAttr.value = namespace; attrs.push(nsAttr); + } } } } - } - if (attrs.length > 0) { - attr.setUnhandledAttributes(attrs); - } + if (attrs.length > 0) { + attr.setUnhandledAttributes(attrs); + } // process extra attributes and elements this.processExtensibilityComponents(attr, attrEl, true); return attr; } - private handleAttributeGroup(schema: XmlSchema, - groupEl: Element, schemaEl: Element) { - const attrGroup = new XmlSchemaAttributeGroup(schema); + private handleAttributeGroup(schema: XmlSchema, groupEl: Element, schemaEl: Element) { + const attrGroup = new XmlSchemaAttributeGroup(schema); if (groupEl.hasAttribute('name')) { - attrGroup.setName(groupEl.getAttribute('name')); + attrGroup.setName(groupEl.getAttribute('name')!); } if (groupEl.hasAttribute('id')) { attrGroup.setId(groupEl.getAttribute('id')); } - for (let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'attribute') { const attr = this.handleAttribute(schema, el, schemaEl); - attrGroup.getAttributes().add(attr); + attrGroup.getAttributes().push(attr); } else if (el.localName === 'attributeGroup') { const attrGroupRef = this.handleAttributeGroupRef(schema, el); - attrGroup.getAttributes().add(attrGroupRef); + attrGroup.getAttributes().push(attrGroupRef); } else if (el.localName === 'anyAttribute') { attrGroup.setAnyAttribute(this.handleAnyAttribute(schema, el, schemaEl)); } else if (el.localName === 'annotation') { @@ -877,11 +923,10 @@ export class SchemaBuilder { } private handleAttributeGroupRef(schema: XmlSchema, attrGroupEl: Element) { - const attrGroup = new XmlSchemaAttributeGroupRef(schema); if (attrGroupEl.hasAttribute('ref')) { - const ref = attrGroupEl.getAttribute('ref'); + const ref = attrGroupEl.getAttribute('ref')!; attrGroup.getRef().setTargetQName(this.getRefQName(ref, attrGroupEl)); } @@ -889,8 +934,7 @@ export class SchemaBuilder { attrGroup.setId(attrGroupEl.getAttribute('id')); } - const annotationEl = - XDOMUtil.getFirstChildElementNS(attrGroupEl, XmlSchema.SCHEMA_NS, "annotation"); + const annotationEl = XDOMUtil.getFirstChildElementNS(attrGroupEl, XmlSchema.SCHEMA_NS, 'annotation'); if (annotationEl != null) { const annotation = this.handleAnnotation(annotationEl); @@ -909,25 +953,26 @@ export class SchemaBuilder { choice.setMinOccurs(this.getMinOccurs(choiceEl)); choice.setMaxOccurs(this.getMaxOccurs(choiceEl)); - for (let el = XDOMUtil.getFirstChildElementNS(choiceEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(choiceEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'sequence') { const seq = this.handleSequence(schema, el, schemaEl); - choice.getItems().add(seq); + choice.getItems().push(seq); } else if (el.localName === 'element') { const element = this.handleElement(schema, el, schemaEl, false); - choice.getItems().add(element); + choice.getItems().push(element); } else if (el.localName === 'group') { const group = this.handleGroupRef(schema, el, schemaEl); - choice.getItems().add(group); + choice.getItems().push(group); } else if (el.localName === 'choice') { const choiceItem = this.handleChoice(schema, el, schemaEl); - choice.getItems().add(choiceItem); + choice.getItems().push(choiceItem); } else if (el.localName === 'any') { const any = this.handleAny(schema, el, schemaEl); - choice.getItems().add(any); + choice.getItems().push(any); } else if (el.localName === 'annotation') { const annotation = this.handleAnnotation(el); choice.setAnnotation(annotation); @@ -937,25 +982,25 @@ export class SchemaBuilder { } private handleComplexContent(schema: XmlSchema, complexEl: Element, schemaEl: Element) { + const complexContent = new XmlSchemaComplexContent(); - const complexContent = new XmlSchemaComplexContent(); - - for (let el = XDOMUtil.getFirstChildElementNS(complexEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(complexEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'restriction') { complexContent.content = this.handleComplexContentRestriction(schema, el, schemaEl); - } else if (el.localName === 'extension')) { + } else if (el.localName === 'extension') { complexContent.content = this.handleComplexContentExtension(schema, el, schemaEl); - } else if (el.localName === 'annotation')) { + } else if (el.localName === 'annotation') { complexContent.setAnnotation(this.handleAnnotation(el)); } } if (complexEl.hasAttribute('mixed')) { - const mixed = complexEl.getAttribute("mixed")!; - if (mixed.toLowerCase() === "true") { + const mixed = complexEl.getAttribute('mixed')!; + if (mixed.toLowerCase() === 'true') { complexContent.setMixed(true); } else { complexContent.setMixed(false); @@ -966,18 +1011,18 @@ export class SchemaBuilder { } private handleComplexContentExtension(schema: XmlSchema, extEl: Element, schemaEl: Element) { - const ext = new XmlSchemaComplexContentExtension(); if (extEl.hasAttribute('base')) { - const name = extEl.getAttribute("base")!; + const name = extEl.getAttribute('base')!; ext.setBaseTypeName(this.getRefQName(name, extEl)); } - for (let el = XDOMUtil.getFirstChildElementNS(extEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(extEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'sequence') { ext.setParticle(this.handleSequence(schema, el, schemaEl)); } else if (el.localName === 'choice') { @@ -985,9 +1030,9 @@ export class SchemaBuilder { } else if (el.localName === 'all') { ext.setParticle(this.handleAll(schema, el, schemaEl)); } else if (el.localName === 'attribute') { - ext.getAttributes().add(this.handleAttribute(schema, el, schemaEl)); + ext.getAttributes().push(this.handleAttribute(schema, el, schemaEl)); } else if (el.localName === 'attributeGroup') { - ext.getAttributes().add(this.handleAttributeGroupRef(schema, el)); + ext.getAttributes().push(this.handleAttributeGroupRef(schema, el)); } else if (el.localName === 'group') { ext.setParticle(this.handleGroupRef(schema, el, schemaEl)); } else if (el.localName === 'anyAttribute') { @@ -1000,17 +1045,17 @@ export class SchemaBuilder { } private handleComplexContentRestriction(schema: XmlSchema, restrictionEl: Element, schemaEl: Element) { - const restriction = new XmlSchemaComplexContentRestriction(); - if (restrictionEl.hasAttribute("base")) { - const name = restrictionEl.getAttribute("base")!; + if (restrictionEl.hasAttribute('base')) { + const name = restrictionEl.getAttribute('base')!; restriction.setBaseTypeName(this.getRefQName(name, restrictionEl)); } - for (let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'sequence') { restriction.setParticle(this.handleSequence(schema, el, schemaEl)); } else if (el.localName === 'choice') { @@ -1018,9 +1063,9 @@ export class SchemaBuilder { } else if (el.localName === 'all') { restriction.setParticle(this.handleAll(schema, el, schemaEl)); } else if (el.localName === 'attribute') { - restriction.getAttributes().add(this.handleAttribute(schema, el, schemaEl)); + restriction.getAttributes().push(this.handleAttribute(schema, el, schemaEl)); } else if (el.localName === 'attributeGroup') { - restriction.getAttributes().add(this.handleAttributeGroupRef(schema, el)); + restriction.getAttributes().push(this.handleAttributeGroupRef(schema, el)); } else if (el.localName === 'group') { restriction.setParticle(this.handleGroupRef(schema, el, schemaEl)); } else if (el.localName === 'anyAttribute') { @@ -1033,19 +1078,19 @@ export class SchemaBuilder { } private handleConstraint(constraintEl: Element, constraint: XmlSchemaIdentityConstraint) { - if (constraintEl.hasAttribute('name')) { constraint.setName(constraintEl.getAttribute('name')!); } if (constraintEl.hasAttribute('refer')) { - const name = constraintEl.getAttribute("refer")!; + const name = constraintEl.getAttribute('refer')!; (constraint as XmlSchemaKeyref).refer = this.getRefQName(name, constraintEl); } - for (let el = XDOMUtil.getFirstChildElementNS(constraintEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(constraintEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { // String elPrefix = el.getPrefix() == null ? "" // : el.getPrefix(); // if(elPrefix.equals(schema.schema_ns_prefix)) { @@ -1053,8 +1098,7 @@ export class SchemaBuilder { const selectorXPath = new XmlSchemaXPath(); selectorXPath.xpath = el.getAttribute('xpath'); - const annotationEl = - XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); + const annotationEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); if (annotationEl != null) { const annotation = this.handleAnnotation(annotationEl); @@ -1063,18 +1107,17 @@ export class SchemaBuilder { constraint.setSelector(selectorXPath); } else if (el.localName === 'field') { const fieldXPath = new XmlSchemaXPath(); - fieldXPath.xpath = el.getAttribute("xpath"); - constraint.getFields().add(fieldXPath); + fieldXPath.xpath = el.getAttribute('xpath'); + constraint.getFields().push(fieldXPath); - const annotationEl = - XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); + const annotationEl = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); if (annotationEl != null) { const annotation = this.handleAnnotation(annotationEl); fieldXPath.setAnnotation(annotation); } - } else if (el.localName ==='annotation') { + } else if (el.localName === 'annotation') { const constraintAnnotation = this.handleAnnotation(el); constraint.setAnnotation(constraintAnnotation); } @@ -1094,7 +1137,7 @@ export class SchemaBuilder { private handleElementForm(el: Element, element: XmlSchemaElement, isQualified: boolean) { if (el.hasAttribute('form')) { - const formDef = el.getAttribute("form")!; + const formDef = el.getAttribute('form')!; element.setForm(xmlSchemaFormValueOf(formDef)); } isQualified = element.getForm() == XmlSchemaForm.QUALIFIED; @@ -1104,25 +1147,24 @@ export class SchemaBuilder { private handleElementGlobalType(el: Element, element: XmlSchemaElement) { if (el.getAttributeNode('type') != null) { - const typeName = el.getAttribute("type"); + const typeName = el.getAttribute('type')!; element.setSchemaTypeName(this.getRefQName(typeName, el)); - const typeQName = element.getSchemaTypeName(); + const typeQName = element.getSchemaTypeName()!; const type = this.collection.getTypeByQName(typeQName); if (type == null) { // Could be a forward reference... this.collection.addUnresolvedType(typeQName, element); - } + } element.setSchemaType(type); } else if (el.getAttributeNode('ref') != null) { - const refName = el.getAttribute("ref")!; + const refName = el.getAttribute('ref')!; const refQName = this.getRefQName(refName, el); element.getRef().setTargetQName(refQName); } } - private handleElementName(_isGlobal: boolean, _element: XmlSchemaElement, _isQualified: boolean) { - } + private handleElementName(_isGlobal: boolean, _element: XmlSchemaElement, _isQualified: boolean) {} /* * handle_simple_content_restriction if( restriction has base attribute ) set the baseType else if( @@ -1136,21 +1178,21 @@ export class SchemaBuilder { */ private handleGroup(schema: XmlSchema, groupEl: Element, schemaEl: Element) { - const group = new XmlSchemaGroup(schema); - group.setName(groupEl.getAttribute("name")); - - for (let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + group.setName(groupEl.getAttribute('name')); + for ( + let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'all') { group.setParticle(this.handleAll(schema, el, schemaEl)); } else if (el.localName === 'sequence') { group.setParticle(this.handleSequence(schema, el, schemaEl)); } else if (el.localName === 'choice') { group.setParticle(this.handleChoice(schema, el, schemaEl)); - } else if (el.localName === 'annotation')) { + } else if (el.localName === 'annotation') { const groupAnnotation = this.handleAnnotation(el); group.setAnnotation(groupAnnotation); } @@ -1159,7 +1201,6 @@ export class SchemaBuilder { } private handleGroupRef(schema: XmlSchema, groupEl: Element, schemaEl: Element) { - const group = new XmlSchemaGroupRef(); group.setMaxOccurs(this.getMaxOccurs(groupEl)); @@ -1178,40 +1219,40 @@ export class SchemaBuilder { group.setRefName(this.getRefQName(ref, groupEl)); return group; } - for (let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElement(el)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(groupEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElement(el) + ) { if (el.localName === 'sequence') { group.setParticle(this.handleSequence(schema, el, schemaEl)); } else if (el.localName === 'all') { group.setParticle(this.handleAll(schema, el, schemaEl)); } else if (el.localName === 'choice') { group.setParticle(this.handleChoice(schema, el, schemaEl)); - } + } } return group; } private handleNotation(schema: XmlSchema, notationEl: Element) { - const notation = new XmlSchemaNotation(schema); - if (notationEl.hasAttribute('id')) { - notation.setId(notationEl.getAttribute('id')!); - } + if (notationEl.hasAttribute('id')) { + notation.setId(notationEl.getAttribute('id')!); + } - if (notationEl.hasAttribute('name')) { - notation.setName(notationEl.getAttribute('name')!); - } + if (notationEl.hasAttribute('name')) { + notation.setName(notationEl.getAttribute('name')!); + } if (notationEl.hasAttribute('public')) { - notation.setPublicNotation(notationEl.getAttribute('public')!); - } + notation.setPublicNotation(notationEl.getAttribute('public')!); + } - if (notationEl.hasAttribute('system')) { - notation.setSystem(notationEl.getAttribute('system')!); - } + if (notationEl.hasAttribute('system')) { + notation.setSystem(notationEl.getAttribute('system')!); + } const annotationEl = XDOMUtil.getFirstChildElementNS(notationEl, XmlSchema.SCHEMA_NS, 'annotation'); @@ -1232,53 +1273,50 @@ export class SchemaBuilder { * @return */ private handleRedefine(schema: XmlSchema, redefineEl: Element, schemaEl: Element) { - const redefine = new XmlSchemaRedefine(schema); redefine.schemaLocation = redefineEl.getAttribute('schemaLocation'); const validator = this.newIncludeValidator(schema); - if (schema.getSourceURI() != null) { - redefine.schema = - this.resolveXmlSchema(schema.getLogicalTargetNamespace(), redefine.schemaLocation, - schema.getSourceURI(), validator); - } else { - redefine.schema = - this.resolveXmlSchema(schema.getLogicalTargetNamespace(), redefine.schemaLocation, validator); - } + redefine.schema = this.resolveXmlSchema( + schema.getLogicalTargetNamespace(), + redefine.schemaLocation, + schema.getSourceURI(), + validator, + ); /* - * FIXME - This seems not right. Since the redefine should take into account the attributes of the - * original element we cannot just build the type defined in the redefine section - what we need to do - * is to get the original type object and modify it. However one may argue (quite reasonably) that the - * purpose of this object model is to provide just the representation and not the validation (as it - * has been always the case) - */ - - for (let el = XDOMUtil.getFirstChildElementNS(redefineEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { + * FIXME - This seems not right. Since the redefine should take into account the attributes of the + * original element we cannot just build the type defined in the redefine section - what we need to do + * is to get the original type object and modify it. However one may argue (quite reasonably) that the + * purpose of this object model is to provide just the representation and not the validation (as it + * has been always the case) + */ + for ( + let el = XDOMUtil.getFirstChildElementNS(redefineEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'simpleType') { const type = this.handleSimpleType(schema, el, schemaEl, false); - redefine.getSchemaTypes().put(type.getQName(), type); - redefine.getItems().add(type); + redefine.getSchemaTypes().set(type.getQName()!, type); + redefine.getItems().push(type); } else if (el.localName === 'complexType') { - const type = this.handleComplexType(schema, el, schemaEl, true); - redefine.getSchemaTypes().put(type.getQName(), type); - redefine.getItems().add(type); + redefine.getSchemaTypes().set(type.getQName()!, type); + redefine.getItems().push(type); } else if (el.localName === 'group') { const group = this.handleGroup(schema, el, schemaEl); - redefine.getGroups().put(group.getQName(), group); - redefine.getItems().add(group); + redefine.getGroups().set(group.getQName()!, group); + redefine.getItems().push(group); } else if (el.localName === 'attributeGroup') { const group = this.handleAttributeGroup(schema, el, schemaEl); - redefine.getAttributeGroups().put(group.getQName(), group); - redefine.getItems().add(group); - } else if (el.localName === 'annotation')) { + redefine.getAttributeGroups().set(group.getQName()!, group); + redefine.getItems().push(group); + } else if (el.localName === 'annotation') { const annotation = this.handleAnnotation(el); redefine.setAnnotation(annotation); } @@ -1286,11 +1324,7 @@ export class SchemaBuilder { return redefine; } - private handleSchemaElementBasics( - schemaEl: Element, - systemId?: string, - schemaKey: SchemaKey, - ): void { + private handleSchemaElementBasics(schemaEl: Element, systemId: string | null = null, schemaKey: SchemaKey): void { if (!this.collection.containsSchema(schemaKey)) { this.collection.addSchema(schemaKey, this.currentSchema); this.currentSchema.setParent(this.collection); // establish parentage now. @@ -1319,10 +1353,10 @@ export class SchemaBuilder { private handleSchemaElementChild(schemaEl: Element, el: Element): void { if (el.localName === 'simpleType') { const type = this.handleSimpleType(this.currentSchema, el, schemaEl, true); - this.collection.resolveType(type.getQName(), type); + this.collection.resolveType(type.getQName()!, type); } else if (el.localName === 'complexType') { const type = this.handleComplexType(this.currentSchema, el, schemaEl, true); - this.collection.resolveType(type.getQName(), type); + this.collection.resolveType(type.getQName()!, type); } else if (el.localName === 'element') { this.handleElement(this.currentSchema, el, schemaEl, true); } else if (el.localName === 'include') { @@ -1346,33 +1380,33 @@ export class SchemaBuilder { } private handleSequence(schema: XmlSchema, sequenceEl: Element, schemaEl: Element) { - const sequence = new XmlSchemaSequence(); // handle min and max occurences sequence.setMinOccurs(this.getMinOccurs(sequenceEl)); sequence.setMaxOccurs(this.getMaxOccurs(sequenceEl)); - for (let el = XDOMUtil.getFirstChildElementNS(sequenceEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(sequenceEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'sequence') { const seq = this.handleSequence(schema, el, schemaEl); - sequence.getItems().add(seq); + sequence.getItems().push(seq); } else if (el.localName === 'element') { const element = this.handleElement(schema, el, schemaEl, false); - sequence.getItems().add(element); + sequence.getItems().push(element); } else if (el.localName === 'group') { const group = this.handleGroupRef(schema, el, schemaEl); - sequence.getItems().add(group); + sequence.getItems().push(group); } else if (el.localName === 'choice') { const choice = this.handleChoice(schema, el, schemaEl); - sequence.getItems().add(choice); + sequence.getItems().push(choice); } else if (el.localName === 'any') { const any = this.handleAny(schema, el, schemaEl); - sequence.getItems().add(any); - } else if (el.localName ==='annotation') { + sequence.getItems().push(any); + } else if (el.localName === 'annotation') { const annotation = this.handleAnnotation(el); sequence.setAnnotation(annotation); } @@ -1381,18 +1415,18 @@ export class SchemaBuilder { } private handleSimpleContent(schema: XmlSchema, simpleEl: Element, schemaEl: Element) { - const simpleContent = new XmlSchemaSimpleContent(); - for (let el = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(simpleEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'restriction') { simpleContent.content = this.handleSimpleContentRestriction(schema, el, schemaEl); } else if (el.localName === 'extension') { simpleContent.content = this.handleSimpleContentExtension(schema, el, schemaEl); - } else if (el.localName === 'annotation')) { + } else if (el.localName === 'annotation') { simpleContent.setAnnotation(this.handleAnnotation(el)); } } @@ -1400,27 +1434,27 @@ export class SchemaBuilder { } private handleSimpleContentExtension(schema: XmlSchema, extEl: Element, schemaEl: Element) { - const ext = new XmlSchemaSimpleContentExtension(); if (extEl.hasAttribute('base')) { - const name = extEl.getAttribute("base")!; + const name = extEl.getAttribute('base')!; ext.setBaseTypeName(this.getRefQName(name, extEl)); } - for (let el = XDOMUtil.getFirstChildElementNS(extEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(extEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName === 'attribute') { const attr = this.handleAttribute(schema, el, schemaEl); - ext.getAttributes().add(attr); + ext.getAttributes().push(attr); } else if (el.localName === 'attributeGroup') { const attrGroup = this.handleAttributeGroupRef(schema, el); - ext.getAttributes().add(attrGroup); + ext.getAttributes().push(attrGroup); } else if (el.localName === 'anyAttribute') { ext.setAnyAttribute(this.handleAnyAttribute(schema, el, schemaEl)); - } else if (el.localName === 'annotation')) { + } else if (el.localName === 'annotation') { const ann = this.handleAnnotation(el); ext.setAnnotation(ann); } @@ -1429,7 +1463,6 @@ export class SchemaBuilder { } private handleSimpleContentRestriction(schema: XmlSchema, restrictionEl: Element, schemaEl: Element) { - const restriction = new XmlSchemaSimpleContentRestriction(); if (restrictionEl.hasAttribute('base')) { @@ -1438,26 +1471,27 @@ export class SchemaBuilder { } if (restrictionEl.hasAttribute('id')) { - restriction.setId(restrictionEl.getAttribute("id")); + restriction.setId(restrictionEl.getAttribute('id')); } // check back simpleContent tag children to add attributes and // simpleType if any occur - for (let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - - if (el.localName ==='attribute') { + for ( + let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { + if (el.localName === 'attribute') { const attr = this.handleAttribute(schema, el, schemaEl); - restriction.getAttributes().add(attr); - } else if (el.localName === 'attributeGroup')) { + restriction.getAttributes().push(attr); + } else if (el.localName === 'attributeGroup') { const attrGroup = this.handleAttributeGroupRef(schema, el); - restriction.getAttributes().add(attrGroup); + restriction.getAttributes().push(attrGroup); } else if (el.localName === 'simpleType') { restriction.setBaseType(this.handleSimpleType(schema, el, schemaEl, false)); } else if (el.localName === 'anyAttribute') { restriction.anyAttribute = this.handleAnyAttribute(schema, el, schemaEl); - } else if (el.localName ==== 'annotation') { + } else if (el.localName === 'annotation') { restriction.setAnnotation(this.handleAnnotation(el)); } else { const facet = XmlSchemaFacet.construct(el); @@ -1467,7 +1501,7 @@ export class SchemaBuilder { const facetAnnotation = this.handleAnnotation(annotation); facet.setAnnotation(facetAnnotation); } - restriction.getFacets().add(facet); + restriction.getFacets().push(facet); // process extra attributes and elements this.processExtensibilityComponents(facet, el, true); } @@ -1495,24 +1529,26 @@ export class SchemaBuilder { const name = listEl.getAttribute('itemType')!; list.itemTypeName = this.getRefQName(name, listEl); } else if (inlineListType != null) { - list.itemType = this.handleSimpleType(schema, inlineListType, schemaEl, false); } const listAnnotationEl = XDOMUtil.getFirstChildElementNS(listEl, XmlSchema.SCHEMA_NS, 'annotation'); if (listAnnotationEl != null) { - const listAnnotation = this.handleAnnotation(listAnnotationEl); list.setAnnotation(listAnnotation); } simpleType.content = list; } - private handleSimpleTypeRestriction(schema: XmlSchema, schemaEl: Element, simpleType: XmlSchemaSimpleType, restrictionEl: Element) { + private handleSimpleTypeRestriction( + schema: XmlSchema, + schemaEl: Element, + simpleType: XmlSchemaSimpleType, + restrictionEl: Element, + ) { const restriction = new XmlSchemaSimpleTypeRestriction(); - const restAnnotationEl = - XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS, 'annotation'); + const restAnnotationEl = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS, 'annotation'); if (restAnnotationEl != null) { const restAnnotation = this.handleAnnotation(restAnnotationEl); @@ -1525,22 +1561,20 @@ export class SchemaBuilder { * restriction has the content of the simpleType **/ - const inlineSimpleType = - XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS, 'simpleType'); + const inlineSimpleType = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS, 'simpleType'); if (restrictionEl.hasAttribute('base')) { const ctx = NodeNamespaceContext.getNamespaceContext(restrictionEl); - restriction.setBaseTypeName(this.getRefQName(restrictionEl.getAttribute("base"), ctx)); + restriction.setBaseTypeName(this.getRefQName(restrictionEl.getAttribute('base')!, undefined, ctx)); } else if (inlineSimpleType != null) { - restriction.setBaseType(this.handleSimpleType(schema, inlineSimpleType, schemaEl, false)); } - for (let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); - el != null; - el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS)) { - + for ( + let el = XDOMUtil.getFirstChildElementNS(restrictionEl, XmlSchema.SCHEMA_NS); + el != null; + el = XDOMUtil.getNextSiblingElementNS(el, XmlSchema.SCHEMA_NS) + ) { if (el.localName !== 'annotation' && el.localName !== 'simpleType') { - const facet = XmlSchemaFacet.construct(el); const annotation = XDOMUtil.getFirstChildElementNS(el, XmlSchema.SCHEMA_NS, 'annotation'); @@ -1550,13 +1584,18 @@ export class SchemaBuilder { } // process extra attributes and elements this.processExtensibilityComponents(facet, el, true); - restriction.getFacets().add(facet); + restriction.getFacets().push(facet); } } simpleType.content = restriction; } - private handleSimpleTypeUnion(schema: XmlSchema, schemaEl: Element, simpleType: XmlSchemaSimpleType, unionEl: Element) { + private handleSimpleTypeUnion( + schema: XmlSchema, + schemaEl: Element, + simpleType: XmlSchemaSimpleType, + unionEl: Element, + ) { const union = new XmlSchemaSimpleTypeUnion(); /****** @@ -1568,31 +1607,28 @@ export class SchemaBuilder { const memberTypes = unionEl.getAttribute('memberTypes')!; union.setMemberTypesSource(memberTypes); const v: QName[] = []; - for (let member of memberTypes.split(' ')) { + for (const member of memberTypes.split(' ')) { v.push(this.getRefQName(member, unionEl)); } union.setMemberTypesQNames(v); } - const inlineUnionType = XDOMUtil.getFirstChildElementNS(unionEl, XmlSchema.SCHEMA_NS, 'simpleType'); + let inlineUnionType = XDOMUtil.getFirstChildElementNS(unionEl, XmlSchema.SCHEMA_NS, 'simpleType'); while (inlineUnionType != null) { - const unionSimpleType = this.handleSimpleType(schema, inlineUnionType, schemaEl, false); - union.getBaseTypes().add(unionSimpleType); + union.getBaseTypes().push(unionSimpleType); if (!unionSimpleType.isAnonymous()) { - union.setMemberTypesSource(union.getMemberTypesSource() + " " + unionSimpleType.getName()); + union.setMemberTypesSource(union.getMemberTypesSource() + ' ' + unionSimpleType.getName()); } - inlineUnionType = - XDOMUtil.getNextSiblingElementNS(inlineUnionType, XmlSchema.SCHEMA_NS, 'simpleType'); + inlineUnionType = XDOMUtil.getNextSiblingElementNS(inlineUnionType, XmlSchema.SCHEMA_NS, 'simpleType'); } // NodeList annotations = unionEl.getElementsByTagNameNS( // XmlSchema.SCHEMA_NS, "annotation"); - const unionAnnotationEl = - XDOMUtil.getFirstChildElementNS(unionEl, XmlSchema.SCHEMA_NS, 'annotation'); + const unionAnnotationEl = XDOMUtil.getFirstChildElementNS(unionEl, XmlSchema.SCHEMA_NS, 'annotation'); if (unionAnnotationEl != null) { const unionAnnotation = this.handleAnnotation(unionAnnotationEl); @@ -1604,43 +1640,45 @@ export class SchemaBuilder { private newIncludeValidator(schema: XmlSchema) { return (pSchema: XmlSchema) => { - const isEmpty = (pValue?: string) => { + const isEmpty = (pValue?: string | null) => { return pValue == null || Constants.NULL_NS_URI === pValue; - } + }; if (isEmpty(pSchema.getSyntacticalTargetNamespace())) { pSchema.setLogicalTargetNamespace(schema.getLogicalTargetNamespace()); } else { - if (!pSchema.getSyntacticalTargetNamespace().equals(schema.getLogicalTargetNamespace())) { - let msg = "An included schema was announced to have the default target namespace"; + if (pSchema.getSyntacticalTargetNamespace() !== schema.getLogicalTargetNamespace()) { + let msg = 'An included schema was announced to have the default target namespace'; if (!isEmpty(schema.getLogicalTargetNamespace())) { - msg += " or the target namespace " + schema.getLogicalTargetNamespace(); + msg += ' or the target namespace ' + schema.getLogicalTargetNamespace(); } - throw new Error(msg + ", but has the target namespace " - + pSchema.getLogicalTargetNamespace()); + throw new Error(msg + ', but has the target namespace ' + pSchema.getLogicalTargetNamespace()); } } - } + }; } private processExtensibilityComponents( schemaObject: XmlSchemaObject, parentElement: Element, - namespacees: boolean, + namespaces: boolean, ): void { if (this.extReg != null) { // process attributes - const attributes = parentElement.getAttributes(); - for (let i = 0; i < attributes.getLength(); i++) { + const attributes = parentElement.attributes; + for (let i = 0; i < attributes.length; i++) { const attribute = attributes.item(i) as Attr; const namespaceURI = attribute.namespaceURI; const name = attribute.localName; - if (namespaceURI != null && "" !== namespaceURI // ignore unqualified attributes + if ( + namespaceURI != null && + '' !== namespaceURI && // ignore unqualified attributes // ignore namespaces - && (namespaces || !namespaceURI.startsWith(Constants.XMLNS_ATTRIBUTE_NS_URI)) + (namespaces || !namespaceURI.startsWith(Constants.XMLNS_ATTRIBUTE_NS_URI)) && // does not belong to the schema namespace by any chance! - && Constants.URI_2001_SCHEMA_XSD !== namespaceURI) { + Constants.URI_2001_SCHEMA_XSD !== namespaceURI + ) { const qName = new QName(namespaceURI, name); this.extReg.deserializeExtension(schemaObject, qName, attribute); } @@ -1674,9 +1712,7 @@ export class SchemaBuilder { * @param baseUri This parameter is the value put under the key (if the cache is enabled) * @param readSchema */ - private putCachedSchema(targetNamespace: string, schemaLocation: string, baseUri: string, - readSchema: XmlSchema) { - + private putCachedSchema(targetNamespace: string, schemaLocation: string, baseUri: string, readSchema: XmlSchema) { if (this.resolvedSchemas != null) { const schemaKey = targetNamespace + schemaLocation + baseUri; this.resolvedSchemas.set(schemaKey, readSchema); diff --git a/packages/ui/src/util/xsd/XmlSchema.ts b/packages/ui/src/util/xsd/XmlSchema.ts index 6527f69c7..e078a799d 100644 --- a/packages/ui/src/util/xsd/XmlSchema.ts +++ b/packages/ui/src/util/xsd/XmlSchema.ts @@ -24,7 +24,7 @@ export class XmlSchema extends XmlSchemaAnnotated implements NamespaceContextOwn static readonly UTF_8_ENCODING = 'UTF-8'; private items: XmlSchemaObject[] = []; - private parent?: XmlSchemaCollection; + private parent: XmlSchemaCollection | null = null; private blockDefault = XmlSchemaDerivationMethod.NONE; private finalDefault = XmlSchemaDerivationMethod.NONE; private elementFormDefault = XmlSchemaForm.UNQUALIFIED; @@ -47,7 +47,7 @@ export class XmlSchema extends XmlSchemaAnnotated implements NamespaceContextOwn super(); if (namespace == null) return; const systemIdToUse = systemId ? systemId : namespace; - this.parent = parent; + this.parent = parent || null; this.logicalTargetNamespace = namespace; this.syntacticalTargetNamespace = namespace; const schemaKey = new SchemaKey(this.logicalTargetNamespace, systemIdToUse); @@ -282,7 +282,7 @@ export class XmlSchema extends XmlSchemaAnnotated implements NamespaceContextOwn * * @return the map of elements. */ - getElements(): Map | undefined { + getElements(): Map { return this.elements; } @@ -702,7 +702,7 @@ public void write(Writer writer, Map options) { return this.syntacticalTargetNamespace; } - setLogicalTargetNamespace(logicalTargetNamespace: string) { + setLogicalTargetNamespace(logicalTargetNamespace: string | null) { this.logicalTargetNamespace = logicalTargetNamespace; } @@ -720,8 +720,8 @@ public void write(Writer writer, Map options) { * @param includeOrImport * @return return the schema object. */ - private getSchema(includeOrImport: object): XmlSchema | undefined { - let schema: XmlSchema | undefined = undefined; + private getSchema(includeOrImport: object): XmlSchema | null { + let schema: XmlSchema | null = null; if (includeOrImport instanceof XmlSchemaImport) { schema = (includeOrImport as XmlSchemaImport).getSchema(); } else if (includeOrImport instanceof XmlSchemaInclude) { diff --git a/packages/ui/src/util/xsd/XmlSchemaAll.ts b/packages/ui/src/util/xsd/XmlSchemaAll.ts new file mode 100644 index 000000000..a29f80091 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAll.ts @@ -0,0 +1,9 @@ +import { XmlSchemaAllMember, XmlSchemaGroupParticle } from '.'; + +export class XmlSchemaAll extends XmlSchemaGroupParticle { + private items: XmlSchemaAllMember[] = []; + + public getItems() { + return this.items; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts b/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts index 8a5b81043..c4e963047 100644 --- a/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts +++ b/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts @@ -20,7 +20,7 @@ export class XmlSchemaAnnotated extends XmlSchemaObject { getUnhandledAttributes() { return this.unhandledAttributes; } - setUnhanledAttributes(unhandledAttributes: Attr[]) { + setUnhandledAttributes(unhandledAttributes: Attr[]) { this.unhandledAttributes = unhandledAttributes; } toString() { diff --git a/packages/ui/src/util/xsd/XmlSchemaAny.ts b/packages/ui/src/util/xsd/XmlSchemaAny.ts new file mode 100644 index 000000000..b43f3bc4f --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAny.ts @@ -0,0 +1,66 @@ +/** + * Enables any element from the specified namespace or namespaces to appear in the containing complexType + * element. Represents the World Wide Web Consortium (W3C) any element. + */ +import { + XmlSchemaAllMember, + XmlSchemaChoiceMember, + XmlSchemaContentProcessing, + XmlSchemaParticle, + XmlSchemaSequenceMember, +} from '.'; + +export class XmlSchemaAny + extends XmlSchemaParticle + implements XmlSchemaChoiceMember, XmlSchemaSequenceMember, XmlSchemaAllMember +{ + /** + * Namespaces containing the elements that can be used. + */ + private namespace: string | null = null; + private processContent: XmlSchemaContentProcessing = XmlSchemaContentProcessing.NONE; + private targetNamespace: string | null = null; + + getNamespace() { + return this.namespace; + } + + setNamespace(namespace: string | null) { + this.namespace = namespace; + } + + getProcessContent() { + return this.processContent; + } + + setProcessContent(processContent: XmlSchemaContentProcessing) { + this.processContent = processContent; + } + + /** + * {@link #getNamespace()} returns the namespace or set of namespaces + * that this wildcard element is valid for. The target namespaces may + * include ##other, ##targetNamespace. The + * ##other directive means any namespace other than the + * schema's target namespace, while the ##targetNamespace + * directive means the element must be in the schema's target + * namespace. Resolving either of these requires knowledge of what + * the schema's target namespace is, which is returned by this method. + * + * @return The wildcard element's target namespace. + */ + getTargetNamespace() { + return this.targetNamespace; + } + + /** + * Sets the schema's target namespace. + * + * @param namespace The schema's target namespace. + * + * @see #getTargetNamespace() + */ + setTargetNamespace(namespace: string | null) { + this.targetNamespace = namespace; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAnyAttribute.ts b/packages/ui/src/util/xsd/XmlSchemaAnyAttribute.ts new file mode 100644 index 000000000..067cf8752 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAnyAttribute.ts @@ -0,0 +1,27 @@ +import { XmlSchemaAnnotated } from './XmlSchemaAnnotated'; +import { XmlSchemaContentProcessing } from './XmlSchemaContentProcessing'; + +/** + * Enables any attribute from the specified namespace or namespaces to appear in the containing complexType + * element. Represents the World Wide Web Consortium (W3C) anyAttribute element. + */ +export class XmlSchemaAnyAttribute extends XmlSchemaAnnotated { + namespace: string | null = null; + processContent: XmlSchemaContentProcessing = XmlSchemaContentProcessing.NONE; + + getNamespace() { + return this.namespace; + } + + setNamespace(namespace: string) { + this.namespace = namespace; + } + + getProcessContent() { + return this.processContent; + } + + setProcessContent(processContent: XmlSchemaContentProcessing) { + this.processContent = processContent; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAttribute.ts b/packages/ui/src/util/xsd/XmlSchemaAttribute.ts index 60c87a06f..782e0f630 100644 --- a/packages/ui/src/util/xsd/XmlSchemaAttribute.ts +++ b/packages/ui/src/util/xsd/XmlSchemaAttribute.ts @@ -1 +1,155 @@ -export class XmlSchemaAttribute {} +import { XmlSchemaNamedWithFormImpl, XmlSchemaNamedType, XmlSchemaNamedWithForm, XmlSchemaRef } from './utils'; +import { + QName, + XmlSchema, + XmlSchemaAttributeGroupMember, + XmlSchemaAttributeOrGroupRef, + XmlSchemaForm, + XmlSchemaItemWithRef, + XmlSchemaSimpleType, + XmlSchemaUse, +} from '.'; +import {} from './utils/XmlSchemaNamedWithFormImpl'; + +export class XmlSchemaAttribute + extends XmlSchemaAttributeOrGroupRef + implements XmlSchemaNamedWithForm, XmlSchemaAttributeGroupMember, XmlSchemaItemWithRef +{ + private defaultValue: string | null = null; + private fixedValue: string | null = null; + private schemaType: XmlSchemaSimpleType | null = null; + private schemaTypeName: QName | null = null; + private use: XmlSchemaUse; + private namedDelegate: XmlSchemaNamedWithFormImpl; + private ref: XmlSchemaRef; + + /** + * Create a new attribute. + * @param schema containing scheme. + * @param topLevel true if a global attribute. + */ + constructor(schema: XmlSchema, topLevel: boolean) { + super(); + this.namedDelegate = new XmlSchemaNamedWithFormImpl(schema, topLevel, false); + this.ref = new XmlSchemaRef(schema, XmlSchemaNamedType.XmlSchemaAttribute); + this.namedDelegate.setRefObject(this.ref); + this.ref.setNamedObject(this.namedDelegate); + this.use = XmlSchemaUse.NONE; + const fSchema = schema; + if (topLevel) { + fSchema.getItems().push(this); + } + } + + getDefaultValue() { + return this.defaultValue; + } + + setDefaultValue(defaultValue: string) { + this.defaultValue = defaultValue; + } + + getFixedValue() { + return this.fixedValue; + } + + setFixedValue(fixedValue: string) { + this.fixedValue = fixedValue; + } + + getRef(): XmlSchemaRef { + return this.ref; + } + + getSchemaType() { + return this.schemaType; + } + + setSchemaType(schemaType: XmlSchemaSimpleType) { + this.schemaType = schemaType; + } + + getSchemaTypeName() { + return this.schemaTypeName; + } + + setSchemaTypeName(schemaTypeName: QName) { + this.schemaTypeName = schemaTypeName; + } + + getUse() { + return this.use; + } + + setUse(use: XmlSchemaUse) { + if (this.namedDelegate.isTopLevel() && use != null) { + throw new Error("Top-level attributes may not have a 'use'"); + } + this.use = use; + } + + getName() { + return this.namedDelegate.getName(); + } + + getParent() { + return this.namedDelegate.getParent(); + } + + getQName() { + return this.namedDelegate.getQName(); + } + + isAnonymous() { + return this.namedDelegate.isAnonymous(); + } + + isTopLevel() { + return this.namedDelegate.isTopLevel(); + } + + setName(name: string) { + const fName = name; + if (this.isTopLevel() && this.getName() != null) { + this.getParent().getAttributes().delete(this.getQName()!); + } + this.namedDelegate.setName(fName); + if (this.isTopLevel()) { + if (fName == null) { + throw new Error('Top-level attributes may not be anonymous'); + } + this.getParent().getAttributes().set(this.getQName()!, this); + } + } + + isFormSpecified() { + return this.namedDelegate.isFormSpecified(); + } + + getForm() { + return this.namedDelegate.getForm(); + } + + setForm(form: XmlSchemaForm) { + if (this.isTopLevel() && form != XmlSchemaForm.NONE) { + throw new Error("Top-level attributes may not have a 'form'"); + } + this.namedDelegate.setForm(form); + } + + getWireName() { + return this.namedDelegate.getWireName(); + } + + isRef() { + return this.ref.getTargetQName() != null; + } + + getTargetQName() { + return this.ref.getTargetQName(); + } + + getRefBase() { + return this.ref; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts b/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts index 363e3635d..194e492c9 100644 --- a/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts +++ b/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts @@ -1 +1,62 @@ -export class XmlSchemaAttributeGroup {} +import { XmlSchema, XmlSchemaAnnotated, XmlSchemaAnyAttribute, XmlSchemaAttributeGroupMember } from '.'; +import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; + +export class XmlSchemaAttributeGroup + extends XmlSchemaAnnotated + implements XmlSchemaNamed, XmlSchemaAttributeGroupMember +{ + private anyAttribute: XmlSchemaAnyAttribute | null = null; + private attributes: XmlSchemaAttributeGroupMember[] = []; + private namedDelegate: XmlSchemaNamedImpl; + + /** + * Creates new XmlSchemaAttributeGroup + */ + constructor(parent: XmlSchema) { + super(); + const fParent = parent; + this.namedDelegate = new XmlSchemaNamedImpl(parent, true); + fParent.getItems().push(this); + } + + getAnyAttribute() { + return this.anyAttribute; + } + + setAnyAttribute(anyAttribute: XmlSchemaAnyAttribute) { + this.anyAttribute = anyAttribute; + } + + getAttributes() { + return this.attributes; + } + + getName() { + return this.namedDelegate.getName(); + } + + getParent() { + return this.namedDelegate.getParent(); + } + + getQName() { + return this.namedDelegate.getQName(); + } + + isAnonymous() { + return this.namedDelegate.isAnonymous(); + } + + isTopLevel() { + return this.namedDelegate.isTopLevel(); + } + + setName(name: string) { + const fName = name; + if (fName != null) { + this.getQName() != null && this.getParent().getAttributeGroups().delete(this.getQName()!); + } + this.namedDelegate.setName(fName); + this.getQName() != null && this.getParent().getAttributeGroups().set(this.getQName()!, this); + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAttributeGroupMember.ts b/packages/ui/src/util/xsd/XmlSchemaAttributeGroupMember.ts new file mode 100644 index 000000000..d67349f29 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAttributeGroupMember.ts @@ -0,0 +1,4 @@ +/** + * Implemented by the types that can go into an attribute group. + */ +export interface XmlSchemaAttributeGroupMember {} diff --git a/packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts b/packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts new file mode 100644 index 000000000..d8ee0a3d5 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts @@ -0,0 +1,49 @@ +import { + XmlSchema, + XmlSchemaAttributeGroup, + XmlSchemaAttributeGroupMember, + XmlSchemaAttributeOrGroupRef, + XmlSchemaItemWithRef, +} from '.'; +import { XmlSchemaNamedType, XmlSchemaRef } from './utils'; + +/** + * Class for the attribute group reference. + * Represents the World Wide Web Consortium (W3C) attributeGroup + * element with the ref attribute. + */ +export class XmlSchemaAttributeGroupRef + extends XmlSchemaAttributeOrGroupRef + implements XmlSchemaAttributeGroupMember, XmlSchemaItemWithRef +{ + private ref: XmlSchemaRef; + + /** + * Create an attribute group reference. + * @param parent containing schema. + */ + constructor(parent: XmlSchema) { + super(); + this.ref = new XmlSchemaRef(parent, XmlSchemaNamedType.XmlSchemaAttributeGroup); + } + + /** + * Return the reference object. + * @return + */ + public getRef() { + return this.ref; + } + + isRef() { + return this.ref.getTargetQName() != null; + } + + getTargetQName() { + return this.ref.getTargetQName(); + } + + public getRefBase() { + return this.ref; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaAttributeOrGroupRef.ts b/packages/ui/src/util/xsd/XmlSchemaAttributeOrGroupRef.ts new file mode 100644 index 000000000..340864b4f --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaAttributeOrGroupRef.ts @@ -0,0 +1,8 @@ +import { XmlSchemaAnnotated } from './XmlSchemaAnnotated'; + +/** + * Several objects in the model allow either an XmlSchemaAttribute or + * an XmlSchemaAttributeGroupRef. This type is here only allow + * tight type specifications for them. + */ +export class XmlSchemaAttributeOrGroupRef extends XmlSchemaAnnotated {} diff --git a/packages/ui/src/util/xsd/XmlSchemaChoice.ts b/packages/ui/src/util/xsd/XmlSchemaChoice.ts new file mode 100644 index 000000000..bb64b92e5 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaChoice.ts @@ -0,0 +1,15 @@ +import { XmlSchemaChoiceMember, XmlSchemaGroupParticle, XmlSchemaSequenceMember } from '.'; + +/** + * Allows only one of its children to appear in an instance. Represents the World Wide Web Consortium (W3C) + * choice (compositor) element. + * + * This can contain any of (element|group|choice|sequence|any)*. + */ +export class XmlSchemaChoice extends XmlSchemaGroupParticle implements XmlSchemaChoiceMember, XmlSchemaSequenceMember { + private items: XmlSchemaChoiceMember[] = []; + + public getItems() { + return this.items; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaCollection.ts b/packages/ui/src/util/xsd/XmlSchemaCollection.ts index 70d0eb6ac..a81df290a 100644 --- a/packages/ui/src/util/xsd/XmlSchemaCollection.ts +++ b/packages/ui/src/util/xsd/XmlSchemaCollection.ts @@ -146,33 +146,33 @@ export class XmlSchemaCollection { /* * Defined in section 4. */ - this.addSimpleType(this.xsd, Constants.XSD_ANYSIMPLETYPE.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_ANYTYPE.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_ANYSIMPLETYPE.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_ANYTYPE.getLocalPart()!); /* * Primitive types 3.2.1 string 3.2.2 boolean 3.2.3 decimal 3.2.4 float 3.2.5 double 3.2.6 duration * 3.2.7 dateTime 3.2.8 time 3.2.9 date 3.2.10 gYearMonth 3.2.11 gYear 3.2.12 gMonthDay 3.2.13 gDay * 3.2.14 gMonth 3.2.15 hexBinary 3.2.16 base64Binary 3.2.17 anyURI 3.2.18 QName 3.2.19 NOTATION */ - this.addSimpleType(this.xsd, Constants.XSD_STRING.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_BOOLEAN.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_FLOAT.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_DOUBLE.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_QNAME.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_DECIMAL.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_DURATION.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_DATE.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_TIME.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_DATETIME.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_DAY.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_MONTH.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_MONTHDAY.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_YEAR.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_YEARMONTH.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NOTATION.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_HEXBIN.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_BASE64.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_ANYURI.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_STRING.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_BOOLEAN.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_FLOAT.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_DOUBLE.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_QNAME.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_DECIMAL.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_DURATION.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_DATE.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_TIME.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_DATETIME.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_DAY.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_MONTH.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_MONTHDAY.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_YEAR.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_YEARMONTH.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NOTATION.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_HEXBIN.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_BASE64.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_ANYURI.getLocalPart()!); /* * 3.3.1 normalizedString 3.3.2 token 3.3.3 language 3.3.4 NMTOKEN 3.3.5 NMTOKENS 3.3.6 Name 3.3.7 @@ -183,33 +183,33 @@ export class XmlSchemaCollection { */ // derived types from decimal - this.addSimpleType(this.xsd, Constants.XSD_LONG.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_SHORT.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_BYTE.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_INTEGER.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_INT.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_POSITIVEINTEGER.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NEGATIVEINTEGER.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NONPOSITIVEINTEGER.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NONNEGATIVEINTEGER.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDBYTE.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDINT.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDLONG.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDSHORT.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_LONG.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_SHORT.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_BYTE.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_INTEGER.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_INT.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_POSITIVEINTEGER.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NEGATIVEINTEGER.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NONPOSITIVEINTEGER.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NONNEGATIVEINTEGER.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDBYTE.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDINT.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDLONG.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_UNSIGNEDSHORT.getLocalPart()!); // derived types from string - this.addSimpleType(this.xsd, Constants.XSD_NAME.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NORMALIZEDSTRING.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NCNAME.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NMTOKEN.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_NMTOKENS.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_ENTITY.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_ENTITIES.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_ID.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_IDREF.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_IDREFS.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_LANGUAGE.getLocalPart()); - this.addSimpleType(this.xsd, Constants.XSD_TOKEN.getLocalPart()); + this.addSimpleType(this.xsd, Constants.XSD_NAME.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NORMALIZEDSTRING.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NCNAME.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NMTOKEN.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_NMTOKENS.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_ENTITY.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_ENTITIES.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_ID.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_IDREF.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_IDREFS.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_LANGUAGE.getLocalPart()!); + this.addSimpleType(this.xsd, Constants.XSD_TOKEN.getLocalPart()!); // 2.5.3 setup built-in datatype hierarchy this.setupBuiltinDatatypeHierarchy(this.xsd); @@ -388,10 +388,10 @@ export class XmlSchemaCollection { this.stack.push(pKey); } - read(content: string): XmlSchema { + read(content: string, validator: (schema: XmlSchema) => void): XmlSchema { const parser = new DOMParser(); const document = parser.parseFromString(content, 'text/xml'); - const builder = new SchemaBuilder(this); + const builder = new SchemaBuilder(this, validator); return builder.build(document); } @@ -481,8 +481,8 @@ export class XmlSchemaCollection { * @param namespace * @return */ - getKnownSchema(namespace: string) { - return this.knownNamespaceMap[namespace]; + getKnownSchema(namespace: string | null) { + return namespace == null ? null : this.knownNamespaceMap[namespace]; } /** diff --git a/packages/ui/src/util/xsd/XmlSchemaComplexContent.ts b/packages/ui/src/util/xsd/XmlSchemaComplexContent.ts new file mode 100644 index 000000000..8d785871b --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaComplexContent.ts @@ -0,0 +1,35 @@ +import { XmlSchemaContent } from '.'; +import { XmlSchemaContentModel } from './XmlSchemaContentModel'; + +/** + * Class that represents the complex content model for complex types. Contains extensions or restrictions on a + * complex type that has mixed content or elements only. Represents the World Wide Web Consortium (W3C) + * complexContent element. + */ +export class XmlSchemaComplexContent extends XmlSchemaContentModel { + /* + * One of either the XmlSchemaComplexContentRestriction or XmlSchemaComplexContentExtension classes. + */ + content: XmlSchemaContent | null = null; + /* + * Indicates that this type has a mixed content model. Character data is allowed to appear between the + * child elements of the complex type. + */ + private mixed: boolean = false; + + getContent() { + return this.content; + } + + setContent(content: XmlSchemaContent) { + this.content = content; + } + + isMixed() { + return this.mixed; + } + + setMixed(mixed: boolean) { + this.mixed = mixed; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaComplexContentExtension.ts b/packages/ui/src/util/xsd/XmlSchemaComplexContentExtension.ts new file mode 100644 index 000000000..b732913a8 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaComplexContentExtension.ts @@ -0,0 +1,53 @@ +/** + * Class for complex types with a complex content model derived by extension. Extends the complex type by + * adding attributes or elements. Represents the World Wide Web Consortium (W3C) extension element for complex + * content. + */ +import { QName, XmlSchemaAnyAttribute, XmlSchemaAttributeOrGroupRef, XmlSchemaContent, XmlSchemaParticle } from '.'; + +export class XmlSchemaComplexContentExtension extends XmlSchemaContent { + /* Allows an XmlSchemaAnyAttribute to be used for the attribute value. */ + private anyAttribute: XmlSchemaAnyAttribute | null = null; + /* + * Contains XmlSchemaAttribute and XmlSchemaAttributeGroupRef. Collection of attributes for the simple + * type. + */ + private attributes: XmlSchemaAttributeOrGroupRef[] = []; + /* Name of the built-in data type, simple type, or complex type. */ + private baseTypeName: QName | null = null; + + /* One of the XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaAll, or XmlSchemaSequence classes. */ + private particle: XmlSchemaParticle | null = null; + + setAnyAttribute(anyAttribute: XmlSchemaAnyAttribute) { + this.anyAttribute = anyAttribute; + } + + getAnyAttribute() { + return this.anyAttribute; + } + + public getAttributes() { + return this.attributes; + } + + setBaseTypeName(baseTypeName: QName) { + this.baseTypeName = baseTypeName; + } + + getBaseTypeName() { + return this.baseTypeName; + } + + getParticle() { + return this.particle; + } + + setParticle(particle: XmlSchemaParticle) { + this.particle = particle; + } + + setAttributes(attributes: XmlSchemaAttributeOrGroupRef[]) { + this.attributes = attributes; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaComplexContentRestriction.ts b/packages/ui/src/util/xsd/XmlSchemaComplexContentRestriction.ts new file mode 100644 index 000000000..dff41dc69 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaComplexContentRestriction.ts @@ -0,0 +1,54 @@ +/** + * Class for complex types with a complex content model that are derived by restriction. Restricts the + * contents of the complex type to a subset of the inherited complex type. Represents the World Wide Web + * Consortium (W3C) restriction element for complex content. + */ +import { QName, XmlSchemaAnyAttribute, XmlSchemaAttributeOrGroupRef, XmlSchemaContent, XmlSchemaParticle } from '.'; + +export class XmlSchemaComplexContentRestriction extends XmlSchemaContent { + /* Allows an XmlSchemaAnyAttribute to be used for the attribute value. */ + private anyAttribute: XmlSchemaAnyAttribute | null = null; + /* + * Contains XmlSchemaAttribute and XmlSchemaAttributeGroupRef. Collection of attributes for the simple + * type. + */ + private attributes: XmlSchemaAttributeOrGroupRef[] = []; + /* Name of the built-in data type, simple type, or complex type. */ + private baseTypeName: QName | null = null; + /* + * One of the XmlSchemaGroupRef, XmlSchemaChoice, XmlSchemaAll, or XmlSchemaSequence classes. + */ + private particle: XmlSchemaParticle | null = null; + + setAnyAttribute(anyAttribute: XmlSchemaAnyAttribute) { + this.anyAttribute = anyAttribute; + } + + getAnyAttribute() { + return this.anyAttribute; + } + + getAttributes() { + return this.attributes; + } + + setBaseTypeName(baseTypeName: QName) { + this.baseTypeName = baseTypeName; + } + + getBaseTypeName() { + return this.baseTypeName; + } + + getParticle() { + return this.particle; + } + + setParticle(particle: XmlSchemaParticle) { + this.particle = particle; + } + + setAttributes(attributes: XmlSchemaAttributeOrGroupRef[]) { + this.attributes = attributes; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaComplexType.ts b/packages/ui/src/util/xsd/XmlSchemaComplexType.ts index 0469e4a5a..a31a3fa16 100644 --- a/packages/ui/src/util/xsd/XmlSchemaComplexType.ts +++ b/packages/ui/src/util/xsd/XmlSchemaComplexType.ts @@ -1,16 +1,27 @@ -import { XmlSchema, XmlSchemaDerivationMethod, XmlSchemaParticle, XmlSchemaType } from '.'; +import { + XmlSchema, + XmlSchemaAnyAttribute, + XmlSchemaAttributeOrGroupRef, + XmlSchemaComplexContentExtension, + XmlSchemaComplexContentRestriction, + XmlSchemaContentModel, + XmlSchemaContentType, + XmlSchemaDerivationMethod, + XmlSchemaParticle, + XmlSchemaType, +} from '.'; export class XmlSchemaComplexType extends XmlSchemaType { - private anyAttribute: XmlSchemaAnyAttribute; - private attributeWildcard: XmlSchemaAnyAttribute; + private anyAttribute: XmlSchemaAnyAttribute | null = null; + private attributeWildcard: XmlSchemaAnyAttribute | null = null; private attributes: XmlSchemaAttributeOrGroupRef[] = []; private block: XmlSchemaDerivationMethod = XmlSchemaDerivationMethod.NONE; - private blockResolved: XmlSchemaDerivationMethod; - private contentModel: XmlSchemaContentModel; - private contentType: XmlSchemaContentType; - private particleType: XmlSchemaParticle; - private particle: XmlSchemaParticle; - private isAbstract: boolean = false; + private blockResolved: XmlSchemaDerivationMethod | null = null; + private contentModel: XmlSchemaContentModel | null = null; + private contentType: XmlSchemaContentType | null = null; + private particleType: XmlSchemaParticle | null = null; + private particle: XmlSchemaParticle | null = null; + private _isAbstract: boolean = false; /** * Creates new XmlSchemaComplexType @@ -68,18 +79,18 @@ export class XmlSchemaComplexType extends XmlSchemaType { } isAbstract() { - return this.isAbstract; + return this._isAbstract; } setAbstract(b: boolean) { - this.isAbstract = b; + this._isAbstract = b; } getParticle() { return this.particle; } - setParticle(particle: XmlSchemaParticle) { + setParticle(particle: XmlSchemaParticle | null) { this.particle = particle; } diff --git a/packages/ui/src/util/xsd/XmlSchemaContent.ts b/packages/ui/src/util/xsd/XmlSchemaContent.ts new file mode 100644 index 000000000..0d524117a --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaContent.ts @@ -0,0 +1,6 @@ +/** + * An abstract class for schema content. + */ +import { XmlSchemaAnnotated } from './XmlSchemaAnnotated'; + +export abstract class XmlSchemaContent extends XmlSchemaAnnotated {} diff --git a/packages/ui/src/util/xsd/XmlSchemaContentModel.ts b/packages/ui/src/util/xsd/XmlSchemaContentModel.ts new file mode 100644 index 000000000..5aa6aafa6 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaContentModel.ts @@ -0,0 +1,9 @@ +/** + * An abstract class for the schema content model. + */ +import { XmlSchemaAnnotated, XmlSchemaContent } from '.'; + +export abstract class XmlSchemaContentModel extends XmlSchemaAnnotated { + abstract setContent(content: XmlSchemaContent | null): void; + abstract getContent(): XmlSchemaContent | null; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaContentProcessing.ts b/packages/ui/src/util/xsd/XmlSchemaContentProcessing.ts new file mode 100644 index 000000000..724c80f15 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaContentProcessing.ts @@ -0,0 +1,14 @@ +/** + * Provides information about the validation mode of any and anyAttribute element replacements. + */ + +export enum XmlSchemaContentProcessing { + LAX, + NONE, + SKIP, + STRICT, +} + +export function xmlSchemaContentProcessingValueOf(name: string) { + return XmlSchemaContentProcessing[name as keyof typeof XmlSchemaContentProcessing]; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaContentType.ts b/packages/ui/src/util/xsd/XmlSchemaContentType.ts new file mode 100644 index 000000000..9f87a3c49 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaContentType.ts @@ -0,0 +1,15 @@ +/** + * Enumerations for the content model of the complex type. This represents the content in the + * post-schema-validation infoset. + */ + +export enum XmlSchemaContentType { + ELEMENT_ONLY, + EMPTY, + MIXED, + TEXT_ONLY, +} + +export function xmlSchemaContentTypeValueOf(name: string) { + return XmlSchemaContentType[name as keyof typeof XmlSchemaContentType]; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaElement.ts b/packages/ui/src/util/xsd/XmlSchemaElement.ts index faf65f50e..7508c6cfb 100644 --- a/packages/ui/src/util/xsd/XmlSchemaElement.ts +++ b/packages/ui/src/util/xsd/XmlSchemaElement.ts @@ -1,4 +1,4 @@ -import { XmlSchemaNamedWithForm, XmlSchemaRef } from './utils'; +import { XmlSchemaNamedType, XmlSchemaNamedWithForm, XmlSchemaNamedWithFormImpl, XmlSchemaRef } from './utils'; import { QName, TypeReceiver, @@ -47,7 +47,7 @@ export class XmlSchemaElement /** * Returns the type of the element. This can either be a complex type or a simple type. */ - private schemaType: XmlSchemaType; + private schemaType: XmlSchemaType | null = null; /** * QName of a built-in data type defined in this schema or another schema indicated by the specified @@ -58,7 +58,7 @@ export class XmlSchemaElement /** * QName of an element that can be a substitute for this element. */ - private substitutionGroup: QName; + private substitutionGroup: QName | null = null; private namedDelegate: XmlSchemaNamedWithFormImpl; @@ -68,7 +68,7 @@ export class XmlSchemaElement constructor(parentSchema: XmlSchema, topLevel: boolean) { super(); this.namedDelegate = new XmlSchemaNamedWithFormImpl(parentSchema, topLevel, true); - this.ref = new XmlSchemaRef(parentSchema, XmlSchemaElement.class); + this.ref = new XmlSchemaRef(parentSchema, XmlSchemaNamedType.XmlSchemaElement); this.namedDelegate.setRefObject(this.ref); this.ref.setNamedObject(this.namedDelegate); @@ -145,7 +145,7 @@ export class XmlSchemaElement return this.schemaType; } - setSchemaType(schemaType: XmlSchemaType) { + setSchemaType(schemaType: XmlSchemaType | null) { this.schemaType = schemaType; } @@ -191,12 +191,12 @@ export class XmlSchemaElement setName(name: string | null) { const fName = name; - if (this.namedDelegate.isTopLevel() && this.namedDelegate.getName() != null) { - this.namedDelegate.getParent().getElements().remove(this.getQName()); + if (this.isTopLevel() && this.getName() != null) { + this.getParent().getElements().delete(this.getQName()!); } this.namedDelegate.setName(fName); if (this.namedDelegate.isTopLevel()) { - this.namedDelegate.getParent().getElements().put(this.getQName(), this); + this.getParent().getElements().set(this.getQName()!, this); } } diff --git a/packages/ui/src/util/xsd/XmlSchemaFacet.ts b/packages/ui/src/util/xsd/XmlSchemaFacet.ts index 2c82fbaf2..e64b401d7 100644 --- a/packages/ui/src/util/xsd/XmlSchemaFacet.ts +++ b/packages/ui/src/util/xsd/XmlSchemaFacet.ts @@ -1,18 +1,17 @@ import { XmlSchemaAnnotated } from '.'; -import { XmlElement } from '../xml'; export abstract class XmlSchemaFacet extends XmlSchemaAnnotated { fixed: boolean | undefined; - value: object | string | number | bigint | undefined; + value: object | string | number | bigint | null; - constructor(value?: object | string | number | bigint, fixed?: boolean) { + constructor(value?: object | string | number | bigint | null, fixed?: boolean) { super(); - this.value = value; + this.value = value || null; this.fixed = fixed; } - static construct(el: XmlElement) { - const name = el.getLocalName(); + static construct(el: Element) { + const name = el.localName; let fixed = false; if (el.getAttribute('fixed') === 'true') { fixed = true; @@ -53,7 +52,7 @@ export abstract class XmlSchemaFacet extends XmlSchemaAnnotated { return facet; } - getValue(): object | string | undefined { + getValue(): object | string | number | bigint | null { return this.value; } isFixed(): boolean { @@ -62,7 +61,7 @@ export abstract class XmlSchemaFacet extends XmlSchemaAnnotated { setFixed(fixed: boolean) { this.fixed = fixed; } - setValue(value: object) { + setValue(value: object | string | number | bigint | null) { this.value = value; } } diff --git a/packages/ui/src/util/xsd/XmlSchemaGroup.ts b/packages/ui/src/util/xsd/XmlSchemaGroup.ts index ae5a28855..8b81509bd 100644 --- a/packages/ui/src/util/xsd/XmlSchemaGroup.ts +++ b/packages/ui/src/util/xsd/XmlSchemaGroup.ts @@ -1 +1,63 @@ -export class XmlSchemaGroup {} +import { + XmlSchema, + XmlSchemaAllMember, + XmlSchemaAnnotated, + XmlSchemaChoiceMember, + XmlSchemaGroupParticle, + XmlSchemaSequenceMember, +} from '.'; +import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; + +export class XmlSchemaGroup + extends XmlSchemaAnnotated + implements XmlSchemaNamed, XmlSchemaChoiceMember, XmlSchemaSequenceMember, XmlSchemaAllMember +{ + private particle: XmlSchemaGroupParticle | null = null; + private namedDelegate: XmlSchemaNamedImpl; + + constructor(parent: XmlSchema) { + super(); + this.namedDelegate = new XmlSchemaNamedImpl(parent, true); + const fParent = parent; + fParent.getItems().push(this); + } + + getParticle() { + return this.particle; + } + + setParticle(particle: XmlSchemaGroupParticle) { + this.particle = particle; + } + + getName() { + return this.namedDelegate.getName(); + } + + getParent() { + return this.namedDelegate.getParent(); + } + + getQName() { + return this.namedDelegate.getQName(); + } + + isAnonymous() { + return this.namedDelegate.isAnonymous(); + } + + isTopLevel() { + return this.namedDelegate.isTopLevel(); + } + + setName(name: string | null) { + const fName = name; + if (this.getQName() != null) { + this.getParent().getGroups().delete(this.getQName()!); + } + this.namedDelegate.setName(fName); + if (fName != null) { + this.getParent().getGroups().set(this.getQName()!, this); + } + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaGroupParticle.ts b/packages/ui/src/util/xsd/XmlSchemaGroupParticle.ts new file mode 100644 index 000000000..1512942eb --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaGroupParticle.ts @@ -0,0 +1,6 @@ +import { XmlSchemaParticle } from '.'; + +/** + * Common type for items that can serve as the particle of a group. + */ +export abstract class XmlSchemaGroupParticle extends XmlSchemaParticle {} diff --git a/packages/ui/src/util/xsd/XmlSchemaGroupRef.ts b/packages/ui/src/util/xsd/XmlSchemaGroupRef.ts new file mode 100644 index 000000000..8c6469082 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaGroupRef.ts @@ -0,0 +1,37 @@ +import { + QName, + XmlSchemaGroupParticle, + XmlSchemaAllMember, + XmlSchemaChoiceMember, + XmlSchemaSequenceMember, + XmlSchemaParticle, +} from '.'; + +/** + * Class used within complex types that defines the reference to groups defined at the schema level. + * Represents the World Wide Web Consortium (W3C) group element with ref attribute. + */ +export class XmlSchemaGroupRef + extends XmlSchemaParticle + implements XmlSchemaSequenceMember, XmlSchemaChoiceMember, XmlSchemaAllMember +{ + private particle: XmlSchemaGroupParticle | null = null; + + private refName: QName | null = null; + + getParticle() { + return this.particle; + } + + getRefName() { + return this.refName; + } + + setRefName(refName: QName) { + this.refName = refName; + } + + setParticle(particle: XmlSchemaGroupParticle) { + this.particle = particle; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts b/packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts index 5790e8d32..2495cfdc2 100644 --- a/packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts +++ b/packages/ui/src/util/xsd/XmlSchemaIdentityConstraint.ts @@ -1,7 +1,7 @@ -import { QName, XmlSchemaAnnotated } from '.'; +import { QName, XmlSchemaAnnotated, XmlSchemaXPath } from '.'; export class XmlSchemaIdentityConstraint extends XmlSchemaAnnotated { - private fields: XmlSchemaXPath = []; + private fields: XmlSchemaXPath[] = []; private name: string | null = null; @@ -27,7 +27,7 @@ export class XmlSchemaIdentityConstraint extends XmlSchemaAnnotated { this.selector = selector; } - setFields(fields: XmlSchemaXPath) { + setFields(fields: XmlSchemaXPath[]) { this.fields = fields; } } diff --git a/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts b/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts index 7adc70fc9..e8af4bd76 100644 --- a/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts +++ b/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts @@ -10,7 +10,7 @@ export interface XmlSchemaItemWithRefBase { /** * @return the Qualified Name of the target of the ref. */ - getTargetQName(): QName; + getTargetQName(): QName | null; /** * @return the non-generic reference object. diff --git a/packages/ui/src/util/xsd/XmlSchemaNotation.ts b/packages/ui/src/util/xsd/XmlSchemaNotation.ts index b5e1a4202..40b9a4f68 100644 --- a/packages/ui/src/util/xsd/XmlSchemaNotation.ts +++ b/packages/ui/src/util/xsd/XmlSchemaNotation.ts @@ -1 +1,71 @@ -export class XmlSchemaNotation {} +import { XmlSchema, XmlSchemaAnnotated } from '.'; +import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; + +export class XmlSchemaNotation extends XmlSchemaAnnotated implements XmlSchemaNamed { + private system: string | null = null; + private publicNotation: string | null = null; + private namedDelegate: XmlSchemaNamedImpl; + + /** + * Creates new XmlSchemaNotation + */ + constructor(parent: XmlSchema) { + super(); + this.namedDelegate = new XmlSchemaNamedImpl(parent, true); + const fParent = parent; + fParent.getItems().push(this); + } + + getPublic() { + return this.publicNotation; + } + + setPublic(isPublic: string) { + this.publicNotation = isPublic; + } + + getSystem() { + return this.system; + } + + setSystem(system: string) { + this.system = system; + } + + getParent() { + return this.namedDelegate.getParent(); + } + + getQName() { + return this.namedDelegate.getQName(); + } + + isAnonymous() { + return this.namedDelegate.isAnonymous(); + } + + isTopLevel() { + return this.namedDelegate.isTopLevel(); + } + + setPublicNotation(publicNotation: string) { + this.publicNotation = publicNotation; + } + + getPublicNotation() { + return this.publicNotation; + } + + getName() { + return this.namedDelegate.getName(); + } + + setName(name: string) { + const fName = name; + if (this.getName() != null) { + this.getParent().getNotations().delete(this.getQName()!); + } + this.namedDelegate.setName(fName); + this.getParent().getNotations().set(this.getQName()!, this); + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaObject.ts b/packages/ui/src/util/xsd/XmlSchemaObject.ts index e35101074..efe06ce9d 100644 --- a/packages/ui/src/util/xsd/XmlSchemaObject.ts +++ b/packages/ui/src/util/xsd/XmlSchemaObject.ts @@ -5,9 +5,9 @@ export abstract class XmlSchemaObject implements XmlSchemaObjectBase { linePosition?: number; sourceURI: string | null = null; - private metaInfoMap = new Map(); + private metaInfoMap = new Map(); - addMetaInfo(key: object, value: object) { + addMetaInfo(key: string, value: object) { this.metaInfoMap.set(key, value); } @@ -35,7 +35,7 @@ export abstract class XmlSchemaObject implements XmlSchemaObjectBase { this.linePosition = linePosition; } - setMetaInfoMap(metaInfoMap: Map) { + setMetaInfoMap(metaInfoMap: Map) { this.metaInfoMap = metaInfoMap; } diff --git a/packages/ui/src/util/xsd/XmlSchemaRedefine.ts b/packages/ui/src/util/xsd/XmlSchemaRedefine.ts new file mode 100644 index 000000000..62f9b7dfc --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaRedefine.ts @@ -0,0 +1,45 @@ +/** + * Allows simple and complex types, groups, and attribute groups from external schema files to be redefined in + * the current schema. This class provides versioning for the schema elements. Represents the World Wide Web + * Consortium (W3C) redefine element. + */ +import { + QName, + XmlSchema, + XmlSchemaAttributeGroup, + XmlSchemaExternal, + XmlSchemaGroup, + XmlSchemaObject, + XmlSchemaType, +} from '.'; + +export class XmlSchemaRedefine extends XmlSchemaExternal { + private attributeGroups = new Map(); + private groups = new Map(); + private schemaTypes = new Map(); + + private items: XmlSchemaObject[] = []; + + /** + * Creates new XmlSchemaRedefine + */ + constructor(parent: XmlSchema) { + super(parent); + } + + getAttributeGroups() { + return this.attributeGroups; + } + + getGroups() { + return this.groups; + } + + getItems() { + return this.items; + } + + getSchemaTypes() { + return this.schemaTypes; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaSequence.ts b/packages/ui/src/util/xsd/XmlSchemaSequence.ts new file mode 100644 index 000000000..cb5fbc5d5 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaSequence.ts @@ -0,0 +1,22 @@ +/** + * Requires the elements in the group to appear in the specified sequence within the containing element. + * Represents the World Wide Web Consortium (W3C) sequence (compositor) element. + * + * (element|group|choice|sequence|any) + */ +import { XmlSchemaSequenceMember, XmlSchemaChoiceMember, XmlSchemaGroupParticle } from '.'; + +export class XmlSchemaSequence + extends XmlSchemaGroupParticle + implements XmlSchemaChoiceMember, XmlSchemaSequenceMember +{ + private items: XmlSchemaSequenceMember[] = []; + + /** + * The elements contained within the compositor. Collection of XmlSchemaElement, XmlSchemaGroupRef, + * XmlSchemaChoice, XmlSchemaSequence, or XmlSchemaAny. + */ + getItems() { + return this.items; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaSimpleContent.ts b/packages/ui/src/util/xsd/XmlSchemaSimpleContent.ts new file mode 100644 index 000000000..0671efc41 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaSimpleContent.ts @@ -0,0 +1,18 @@ +/** + * Class for simple types and complex types with a simple content model. Represents the World Wide Web + * Consortium (W3C) simpleContent element. + */ +import { XmlSchemaContent, XmlSchemaContentModel } from '.'; + +export class XmlSchemaSimpleContent extends XmlSchemaContentModel { + /* One of XmlSchemaSimpleContentRestriction or XmlSchemaSimpleContentExtension. */ + content: XmlSchemaContent | null = null; + + getContent() { + return this.content; + } + + setContent(content: XmlSchemaContent) { + this.content = content; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaSimpleContentExtension.ts b/packages/ui/src/util/xsd/XmlSchemaSimpleContentExtension.ts new file mode 100644 index 000000000..35626963c --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaSimpleContentExtension.ts @@ -0,0 +1,44 @@ +/** + * Class for simple types that are derived by extension. Extends the simple type content of the element by + * adding attributes. Represents the World Wide Web Consortium (W3C) extension element for simple content. + */ +import {} from './XmlSchemaContent'; +import { XmlSchemaContent, XmlSchemaAttributeOrGroupRef, XmlSchemaAnyAttribute, QName } from '.'; + +export class XmlSchemaSimpleContentExtension extends XmlSchemaContent { + /* Allows an XmlSchemaAnyAttribute to be used for the attribute value. */ + private anyAttribute: XmlSchemaAnyAttribute | null = null; + + /* + * Contains XmlSchemaAttribute and XmlSchemaAttributeGroupRef. Collection of attributes for the simple + * type. + */ + private attributes: XmlSchemaAttributeOrGroupRef[] = []; + + /* Name of the built-in data type, simple type, or complex type. */ + private baseTypeName: QName | null = null; + + getAnyAttribute() { + return this.anyAttribute; + } + + getAttributes() { + return this.attributes; + } + + getBaseTypeName() { + return this.baseTypeName; + } + + setAnyAttribute(anyAttribute: XmlSchemaAnyAttribute) { + this.anyAttribute = anyAttribute; + } + + setBaseTypeName(baseTypeName: QName) { + this.baseTypeName = baseTypeName; + } + + setAttributes(attributes: XmlSchemaAttributeOrGroupRef[]) { + this.attributes = attributes; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaSimpleContentRestriction.ts b/packages/ui/src/util/xsd/XmlSchemaSimpleContentRestriction.ts new file mode 100644 index 000000000..1a050b435 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaSimpleContentRestriction.ts @@ -0,0 +1,66 @@ +/** + * Class for simple types that are derived by restriction. Restricts the range of values for the element to a + * subset of the inherited simple types. Represents the World Wide Web Consortium (W3C) restriction element + * for simple content. + */ + +import { + QName, + XmlSchemaAnyAttribute, + XmlSchemaAttributeOrGroupRef, + XmlSchemaContent, + XmlSchemaFacet, + XmlSchemaSimpleType, +} from '.'; + +export class XmlSchemaSimpleContentRestriction extends XmlSchemaContent { + anyAttribute: XmlSchemaAnyAttribute | null = null; + /* + * Contains XmlSchemaAttribute and XmlSchemaAttributeGroupRef. Collection of attributes for the simple + * type. + */ + private attributes: XmlSchemaAttributeOrGroupRef[] = []; + + /* Derived from the type specified by the base value. */ + private baseType: XmlSchemaSimpleType | null = null; + + /* Name of the built-in data type, simple type, or complex type. */ + private baseTypeName: QName | null = null; + + /* One or more of the facet classes: */ + private facets: XmlSchemaFacet[] = []; + + /* Allows an XmlSchemaAnyAttribute to be used for the attribute value. */ + + setAnyAttribute(anyAttribute: XmlSchemaAnyAttribute) { + this.anyAttribute = anyAttribute; + } + + getAnyAttribute() { + return this.anyAttribute; + } + + getAttributes() { + return this.attributes; + } + + setBaseType(baseType: XmlSchemaSimpleType) { + this.baseType = baseType; + } + + getBaseType() { + return this.baseType; + } + + setBaseTypeName(baseTypeName: QName) { + this.baseTypeName = baseTypeName; + } + + getBaseTypeName() { + return this.baseTypeName; + } + + getFacets() { + return this.facets; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaSimpleTypeUnion.ts b/packages/ui/src/util/xsd/XmlSchemaSimpleTypeUnion.ts new file mode 100644 index 000000000..030a61faf --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaSimpleTypeUnion.ts @@ -0,0 +1,31 @@ +/** + * Class for the union of simpleType elements. Defines a simpleType element as a list of values of a specified + * data type. Represents the World Wide Web Consortium (W3C) union element. + */ +import { QName, XmlSchemaSimpleType, XmlSchemaSimpleTypeContent } from '.'; + +export class XmlSchemaSimpleTypeUnion extends XmlSchemaSimpleTypeContent { + private baseTypes: XmlSchemaSimpleType[] = []; + private memberTypesSource: string | null = null; + private memberTypesQNames: QName[] = []; + + getBaseTypes() { + return this.baseTypes; + } + + setMemberTypesSource(memberTypesSources: string) { + this.memberTypesSource = memberTypesSources; + } + + getMemberTypesSource() { + return this.memberTypesSource; + } + + getMemberTypesQNames() { + return this.memberTypesQNames; + } + + setMemberTypesQNames(memberTypesQNames: QName[]) { + this.memberTypesQNames = memberTypesQNames; + } +} diff --git a/packages/ui/src/util/xsd/XmlSchemaUse.ts b/packages/ui/src/util/xsd/XmlSchemaUse.ts new file mode 100644 index 000000000..34385313a --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaUse.ts @@ -0,0 +1,13 @@ +/** + * use= values. + */ +export enum XmlSchemaUse { + NONE, + OPTIONAL, + PROHIBITED, + REQUIRED, +} + +export function xmlSchemaUseValueOf(name: string) { + return XmlSchemaUse[name as keyof typeof XmlSchemaUse]; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaXPath.ts b/packages/ui/src/util/xsd/XmlSchemaXPath.ts new file mode 100644 index 000000000..8f126ac11 --- /dev/null +++ b/packages/ui/src/util/xsd/XmlSchemaXPath.ts @@ -0,0 +1,17 @@ +/** + * Class for XML Path Language (XPath) expressions. Represents the World Wide Web Consortium (W3C) selector + * element. The World Wide Web Consortium (W3C) field element is a collection of XmlSchemaXPath classes. + */ +import { XmlSchemaAnnotated } from './XmlSchemaAnnotated'; + +export class XmlSchemaXPath extends XmlSchemaAnnotated { + xpath: string | null = null; + + getXPath() { + return this.xpath; + } + + setXPath(xpathString: string) { + this.xpath = xpathString; + } +} diff --git a/packages/ui/src/util/xsd/constants.ts b/packages/ui/src/util/xsd/constants.ts index 700fea789..93cc911a8 100644 --- a/packages/ui/src/util/xsd/constants.ts +++ b/packages/ui/src/util/xsd/constants.ts @@ -75,3 +75,8 @@ export const XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, 'unsignedShort') export const XSD_YEAR = new QName(URI_2001_SCHEMA_XSD, 'gYear'); export const XSD_YEARMONTH = new QName(URI_2001_SCHEMA_XSD, 'gYearMonth'); + +export class MetaDataConstants { + static readonly EXTERNAL_ATTRIBUTES = 'EXTERNAL_ATTRIBUTES'; + static readonly EXTERNAL_ELEMENTS = 'EXTERNAL_ELEMENTS'; +} diff --git a/packages/ui/src/util/xsd/extensions/DefaultExtensionDeserializer.ts b/packages/ui/src/util/xsd/extensions/DefaultExtensionDeserializer.ts new file mode 100644 index 000000000..6eaaf68ba --- /dev/null +++ b/packages/ui/src/util/xsd/extensions/DefaultExtensionDeserializer.ts @@ -0,0 +1,58 @@ +import { ExtensionDeserializer } from '.'; +import { MetaDataConstants, QName, XmlSchemaObject } from '..'; + +/** + * Default deserializer. The action taken when there is nothing specific to be done would be to attach the raw + * element object as it is to the meta information map for an element or the raw attribute object + */ +export class DefaultExtensionDeserializer implements ExtensionDeserializer { + /** + * deserialize the given element + * + * @param schemaObject - Parent schema element + * @param name - the QName of the element/attribute to be deserialized. in the case where a deserializer + * is used to handle multiple elements/attributes this may be useful to determine the correct + * deserialization + * @param node - the raw DOM Node read from the source. This will be the extension element itself if for + * an element or the extension attribute object if it is an attribute + */ + deserialize(schemaObject: XmlSchemaObject, name: QName, node: Node) { + // we just attach the raw node either to the meta map of + // elements or the attributes + + let metaInfoMap = schemaObject.getMetaInfoMap(); + if (metaInfoMap == null) { + metaInfoMap = new Map(); + } + + if (node.nodeType == Node.ATTRIBUTE_NODE) { + let attribMap: Map; + if (metaInfoMap.has(MetaDataConstants.EXTERNAL_ATTRIBUTES)) { + attribMap = metaInfoMap.get(MetaDataConstants.EXTERNAL_ATTRIBUTES) as Map; + } else { + attribMap = new Map(); + metaInfoMap.set(MetaDataConstants.EXTERNAL_ATTRIBUTES, attribMap); + } + attribMap.set(name, node); + } else if (node.nodeType == Node.ELEMENT_NODE) { + let elementMap; + if (metaInfoMap.has(MetaDataConstants.EXTERNAL_ELEMENTS)) { + elementMap = metaInfoMap.get(MetaDataConstants.EXTERNAL_ELEMENTS) as Map; + } else { + elementMap = new Map(); + metaInfoMap.set(MetaDataConstants.EXTERNAL_ELEMENTS, elementMap); + } + elementMap.set(name, node); + } + + // subsequent processing takes place only if this map is not empty + if (metaInfoMap.size !== 0) { + const metaInfoMapFromSchemaElement = schemaObject.getMetaInfoMap(); + if (metaInfoMapFromSchemaElement == null) { + schemaObject.setMetaInfoMap(metaInfoMap); + } else { + metaInfoMap.forEach((value, key) => metaInfoMapFromSchemaElement.set(key, value)); + } + } + } +} diff --git a/packages/ui/src/util/xsd/extensions/DefaultExtensionSerializer.ts b/packages/ui/src/util/xsd/extensions/DefaultExtensionSerializer.ts new file mode 100644 index 000000000..dd7351c48 --- /dev/null +++ b/packages/ui/src/util/xsd/extensions/DefaultExtensionSerializer.ts @@ -0,0 +1,39 @@ +import { ExtensionSerializer } from '.'; +import { MetaDataConstants, XmlSchemaObject } from '..'; + +/** + + */ +export class DefaultExtensionSerializer implements ExtensionSerializer { + /** + * serialize the given element + * + * @param schemaObject - Parent schema element + * @param _typeName - the class of the object to be serialized + * @param node - The DOM Node that is the parent of the serialzation + */ + serialize(schemaObject: XmlSchemaObject, _typeName: string, node: Node) { + // serialization is somewhat tricky in most cases hence this default serializer will + // do the exact reverse of the deserializer - look for any plain 'as is' items + // and attach them to the parent node. + // we just attach the raw node either to the meta map of + // elements or the attributes + const metaInfoMap = schemaObject.getMetaInfoMap(); + const parentDoc = node.ownerDocument; + if (metaInfoMap.has(MetaDataConstants.EXTERNAL_ATTRIBUTES)) { + const attribMap = metaInfoMap.get(MetaDataConstants.EXTERNAL_ATTRIBUTES) as Map; + for (const value of attribMap.values()) { + if (node.nodeType == Node.ELEMENT_NODE) { + (node as Element).setAttributeNodeNS(parentDoc!.importNode(value, true) as Attr); + } + } + } + + if (metaInfoMap.has(MetaDataConstants.EXTERNAL_ELEMENTS)) { + const elementMap = metaInfoMap.get(MetaDataConstants.EXTERNAL_ELEMENTS) as Map; + for (const value of elementMap.values()) { + node.appendChild(parentDoc!.importNode(value, true)); + } + } + } +} diff --git a/packages/ui/src/util/xsd/extensions/ExtensionDeserializer.ts b/packages/ui/src/util/xsd/extensions/ExtensionDeserializer.ts new file mode 100644 index 000000000..ab0ed4697 --- /dev/null +++ b/packages/ui/src/util/xsd/extensions/ExtensionDeserializer.ts @@ -0,0 +1,22 @@ +import { QName } from '../QName'; +import { XmlSchemaObject } from '../XmlSchemaObject'; + +/** + * Interface for the extension deserializer. The purpose of an instance of this is to deserialize the relevant + * attribute/element and perhaps generate a desired custom object. This custom object can be stored in the + * metadata map of the parent schema object. When to invoke a given deserializer is a decision taken by the + * extension registry + */ +export interface ExtensionDeserializer { + /** + * deserialize the given element + * + * @param schemaObject - Parent schema element + * @param name - the QName of the element/attribute to be deserialized. in the case where a deserializer + * is used to handle multiple elements/attributes this may be useful to determine the correct + * deserialization + * @param domNode - the raw DOM Node read from the source. This will be the extension element itself if + * for an element or the extension attribute object if it is an attribute + */ + deserialize(schemaObject: XmlSchemaObject, name: QName, domNode: Node): void; +} diff --git a/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts b/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts index ae017461a..1f9199ea2 100644 --- a/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts +++ b/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts @@ -1 +1,114 @@ -export class ExtensionRegistry {} +import { QName, XmlSchemaObject } from '..'; +import { + DefaultExtensionDeserializer, + DefaultExtensionSerializer, + ExtensionDeserializer, + ExtensionSerializer, +} from '.'; + +export class ExtensionRegistry { + /** + * Maps for the storage of extension serializers /deserializers + */ + private extensionSerializers = new Map(); + private extensionDeserializers = new Map(); + + /** + * Default serializer and serializer + */ + private defaultExtensionSerializer = new DefaultExtensionSerializer(); + private defaultExtensionDeserializer = new DefaultExtensionDeserializer(); + + getDefaultExtensionSerializer() { + return this.defaultExtensionSerializer; + } + + setDefaultExtensionSerializer(defaultExtensionSerializer: ExtensionSerializer) { + this.defaultExtensionSerializer = defaultExtensionSerializer; + } + + getDefaultExtensionDeserializer() { + return this.defaultExtensionDeserializer; + } + + setDefaultExtensionDeserializer(defaultExtensionDeserializer: ExtensionDeserializer) { + this.defaultExtensionDeserializer = defaultExtensionDeserializer; + } + + /** + * Register a deserializer with a QName + * + * @param name + * @param deserializer + */ + registerDeserializer(name: QName, deserializer: ExtensionDeserializer) { + this.extensionDeserializers.set(name, deserializer); + } + + /** + * Register a serializer with a Class + * + * @param classOfType - the class of the object that would be serialized + * @param serializer - an instance of the deserializer + */ + registerSerializer(typeName: string, serializer: ExtensionSerializer) { + this.extensionSerializers.set(typeName, serializer); + } + + /** + * remove the registration for a serializer with a Class + * + * @param classOfType - the Class of the element/attribute the serializer is associated with + */ + unregisterSerializer(typeName: string) { + this.extensionSerializers.delete(typeName); + } + + /** + * remove the registration for a deserializer with a QName + * + * @param name - the QName fo the element that the deserializer is associated with + */ + unregisterDeserializer(name: QName) { + this.extensionDeserializers.delete(name); + } + + /** + * Serialize a given extension element + * + * @param parentSchemaObject - the parent schema object. This is what would contain the extension object, + * probably in side its meta information map + * @param typeName - The class of type to be serialized + * @param node - the parent DOM Node that will ultimately be serialized. The XMLSchema serialization + * mechanism is to create a DOM tree first and serialize it + */ + serializeExtension(parentSchemaObject: XmlSchemaObject, typeName: string, node: Node) { + const serializerObject = this.extensionSerializers.get(typeName); + if (serializerObject != null) { + serializerObject.serialize(parentSchemaObject, typeName, node); + } else if (this.defaultExtensionSerializer != null) { + this.defaultExtensionSerializer.serialize(parentSchemaObject, typeName, node); + } + } + + /** + * Deserialize a given extension element + * + * @param parentSchemaObject - the parent schema object. This is anticipated to be created already and the + * relevant object would contain the extension object, probably in side its meta information + * map + * @param name - The qname of the element/attribute to be deserialized. This will be used to search for + * the extension as well as by the deserializer if a single deserializer is registered against + * a number of qnames + * @param rawNode - the raw DOM Node read from the source. This will be the extension element itself if + * for an element or extension attribute itself in case of an attribute + */ + deserializeExtension(parentSchemaObject: XmlSchemaObject, name: QName, rawNode: Node) { + const deserializerObject = this.extensionDeserializers.get(name); + if (deserializerObject != null) { + deserializerObject.deserialize(parentSchemaObject, name, rawNode); + } else if (this.defaultExtensionDeserializer != null) { + this.defaultExtensionDeserializer.deserialize(parentSchemaObject, name, rawNode); + } + } +} diff --git a/packages/ui/src/util/xsd/extensions/ExtensionSerializer.ts b/packages/ui/src/util/xsd/extensions/ExtensionSerializer.ts new file mode 100644 index 000000000..3137e0b04 --- /dev/null +++ b/packages/ui/src/util/xsd/extensions/ExtensionSerializer.ts @@ -0,0 +1,19 @@ +import { XmlSchemaObject } from '..'; + +/** + * Interface for the extension serializer. The purpose of an instance of this is to serialize the relevant + * custom object and generate attribute/elementa desired . This custom object may be stored in the metadata + * map of the parent schema object. When to invoke a given serializer is a decision taken by the extension + * registry + */ +export interface ExtensionSerializer { + /** + * serialize the given element + * + * @param schemaObject - Parent schema object.contains the extension to be serialized + * @param typeName - The class of type to be serialized + * @param domNode - the parent DOM Node that will ultimately be serialized. The XMLSchema serialization + * mechanism is to create a DOM tree first and serialize it + */ + serialize(schemaObject: XmlSchemaObject, typeName: string, domNode: Node): void; +} diff --git a/packages/ui/src/util/xsd/extensions/index.ts b/packages/ui/src/util/xsd/extensions/index.ts index 8d3695a17..52e30d71a 100644 --- a/packages/ui/src/util/xsd/extensions/index.ts +++ b/packages/ui/src/util/xsd/extensions/index.ts @@ -1 +1,5 @@ +export * from './DefaultExtensionDeserializer'; +export * from './DefaultExtensionSerializer'; +export * from './ExtensionDeserializer'; export * from './ExtensionRegistry'; +export * from './ExtensionSerializer'; diff --git a/packages/ui/src/util/xsd/index.ts b/packages/ui/src/util/xsd/index.ts index 574b726d4..c03776125 100644 --- a/packages/ui/src/util/xsd/index.ts +++ b/packages/ui/src/util/xsd/index.ts @@ -1,32 +1,56 @@ export * from './constants'; export * from './DocumentFragmentNodeList'; export * from './QName'; -export * from './TypeReceiver'; export * from './SchemaBuilder'; +export * from './TypeReceiver'; export * from './XmlSchema'; +export * from './XmlSchemaAll'; export * from './XmlSchemaAllMember'; export * from './XmlSchemaAnnotated'; export * from './XmlSchemaAnnotation'; +export * from './XmlSchemaAny'; +export * from './XmlSchemaAnyAttribute'; export * from './XmlSchemaAttribute'; export * from './XmlSchemaAttributeGroup'; +export * from './XmlSchemaAttributeGroupMember'; +export * from './XmlSchemaAttributeGroupRef'; +export * from './XmlSchemaAttributeOrGroupRef'; +export * from './XmlSchemaChoice'; export * from './XmlSchemaChoiceMember'; export * from './XmlSchemaCollection'; +export * from './XmlSchemaComplexContent'; +export * from './XmlSchemaComplexContentExtension'; +export * from './XmlSchemaComplexContentRestriction'; export * from './XmlSchemaComplexType'; +export * from './XmlSchemaContent'; +export * from './XmlSchemaContentModel'; +export * from './XmlSchemaContentProcessing'; +export * from './XmlSchemaContentType'; export * from './XmlSchemaDerivationMethod'; export * from './XmlSchemaDocumentation'; export * from './XmlSchemaElement'; export * from './XmlSchemaExternal'; export * from './XmlSchemaFacet'; +export * from './XmlSchemaForm'; export * from './XmlSchemaGroup'; +export * from './XmlSchemaGroupParticle'; +export * from './XmlSchemaGroupRef'; export * from './XmlSchemaIdentityConstraint'; export * from './XmlSchemaImport'; export * from './XmlSchemaInclude'; export * from './XmlSchemaItemWithRef'; export * from './XmlSchemaItemWithRefBase'; -export * from './XmlSchemaObject'; export * from './XmlSchemaNotation'; +export * from './XmlSchemaObject'; export * from './XmlSchemaParticle'; +export * from './XmlSchemaRedefine'; +export * from './XmlSchemaSequence'; export * from './XmlSchemaSequenceMember'; +export * from './XmlSchemaSimpleContent'; +export * from './XmlSchemaSimpleContentExtension'; +export * from './XmlSchemaSimpleContentRestriction'; export * from './XmlSchemaSimpleType'; +export * from './XmlSchemaSimpleTypeUnion'; export * from './XmlSchemaType'; -export * from './XmlSchemaForm'; +export * from './XmlSchemaUse'; +export * from './XmlSchemaXPath'; diff --git a/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts b/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts index 8b66f0428..a4b5800c0 100644 --- a/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts +++ b/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts @@ -1,5 +1,5 @@ export interface URIResolver { - resolveEntity(targetNamespace: string, schemaLocation: string, baseUri: string): File; + resolveEntity(targetNamespace: string | null, schemaLocation: string, baseUri: string | null): string; } export interface CollectionURIResolver extends URIResolver { setCollectionBaseURI(uri: string): void; @@ -13,7 +13,7 @@ export class DefaultURIResolver implements CollectionURIResolver { return this.collectionBaseUri; } - resolveEntity(targetNamespace: string, schemaLocation: string, baseUri: string): File { + resolveEntity(targetNamespace: string | null, schemaLocation: string, baseUri: string | null): string { throw new Error( `XML schema External entity resolution is not yet supported: [namespace:${targetNamespace}, schemaLocation:${schemaLocation}, baseUri:${baseUri}]`, ); diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts index 77cff7a93..bf71c5747 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts @@ -45,3 +45,12 @@ export interface XmlSchemaNamed extends XmlSchemaObjectBase { } export interface XmlSchemaNamedWithForm extends XmlSchemaNamed {} + +export enum XmlSchemaNamedType { + XmlSchemaElement, + XmlSchemaAttribute, + XmlSchemaType, + XmlSchemaAttributeGroup, + XmlSchemaGroup, + XmlSchemaNotation, +} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts index 09aa44980..c9019b9c5 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts @@ -42,7 +42,7 @@ export class XmlSchemaNamedImpl implements XmlSchemaNamed { return this.qname == null; } - setName(name: string) { + setName(name: string | null) { if (name == null) { this.qname = null; } else if ('' === name) { diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts new file mode 100644 index 000000000..b19ae2cc5 --- /dev/null +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts @@ -0,0 +1,69 @@ +import { XmlSchemaNamedImpl, XmlSchemaNamedWithForm } from '.'; +import { QName, XmlSchema, XmlSchemaForm } from '..'; + +/** + * + */ +export class XmlSchemaNamedWithFormImpl extends XmlSchemaNamedImpl implements XmlSchemaNamedWithForm { + private form = XmlSchemaForm.NONE; + private element = false; + private wireName: QName | null = null; + + /** + * Delegate object for managing names for attributes and elements. + * @param parent containing schema. + * @param topLevel if this object is global. + * @param element true for an element, false for an attribute. + */ + constructor(parent: XmlSchema, topLevel: boolean, element: boolean) { + super(parent, topLevel); + this.element = element; + } + + /** + * Return the effective 'form' for this item. If the item + * has an explicit form declaration, this returns that declared form. If not, + * it returns the appropriate default form from the containing schema. + * @return {@link XmlSchemaForm#QUALIFIED} or {@link XmlSchemaForm#UNQUALIFIED}. + */ + getForm() { + if (this.form != XmlSchemaForm.NONE) { + return this.form; + } else if (this.element) { + return this.parentSchema.getElementFormDefault(); + } else { + return this.parentSchema.getAttributeFormDefault(); + } + } + + isFormSpecified() { + return this.form != XmlSchemaForm.NONE; + } + + setForm(form: XmlSchemaForm) { + if (form == null) { + throw new Error('form may not be null. ' + 'Pass XmlSchemaForm.NONE to use schema default.'); + } + this.form = form; + this.setName(this.getName()); + } + + setName(name: string | null) { + super.setName(name); + if (this.getForm() == XmlSchemaForm.QUALIFIED) { + this.wireName = this.getQName(); + } else { + this.wireName = new QName('', this.getName()); + } + } + + getWireName() { + // If this is a ref= case, then we take the name from the ref=, not from the QName. + // what about ref='foo' form='unqualified'? Is that possible? + if (this.refTwin != null && this.refTwin.getTargetQName() != null) { + return this.refTwin.getTargetQName(); + } else { + return this.wireName; + } + } +} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts b/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts index 3ea82b095..aa73b33c6 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts @@ -1,3 +1,41 @@ -import { XmlSchemaNamed, XmlSchemaRefBase } from '.'; +import { XmlSchemaNamed, XmlSchemaNamedType, XmlSchemaRefBase } from '.'; +import { XmlSchema } from '..'; -export class XmlSchemaRef extends XmlSchemaRefBase {} +export class XmlSchemaRef extends XmlSchemaRefBase { + private targetObject: XmlSchemaNamed | null = null; + private targetType: XmlSchemaNamedType; + + constructor(parent: XmlSchema, targetType: XmlSchemaNamedType) { + super(); + this.parent = parent; + this.targetType = targetType; + } + + forgetTargetObject() { + this.targetObject = null; + } + + getTarget(): T | null { + if (this.targetObject == null && this.targetQName != null) { + const parentCollection = this.parent!.getParent(); + if (parentCollection == null) { + return this.targetObject; + } + + if (this.targetType === XmlSchemaNamedType.XmlSchemaElement) { + this.targetObject = parentCollection.getElementByQName(this.targetQName); + } else if (this.targetType == XmlSchemaNamedType.XmlSchemaAttribute) { + this.targetObject = parentCollection.getAttributeByQName(this.targetQName); + } else if (this.targetType == XmlSchemaNamedType.XmlSchemaType) { + this.targetObject = parentCollection.getTypeByQName(this.targetQName); + } else if (this.targetType == XmlSchemaNamedType.XmlSchemaAttributeGroup) { + this.targetObject = parentCollection.getAttributeGroupByQName(this.targetQName); + } else if (this.targetType == XmlSchemaNamedType.XmlSchemaGroup) { + this.targetObject = parentCollection.getGroupByQName(this.targetQName); + } else if (this.targetType == XmlSchemaNamedType.XmlSchemaNotation) { + this.targetObject = parentCollection.getNotationByQName(this.targetQName); + } + } + return this.targetObject as T; + } +} diff --git a/packages/ui/src/util/xsd/utils/index.ts b/packages/ui/src/util/xsd/utils/index.ts index b43b3a5d3..59595d643 100644 --- a/packages/ui/src/util/xsd/utils/index.ts +++ b/packages/ui/src/util/xsd/utils/index.ts @@ -7,5 +7,6 @@ export * from './PrefixCollector'; export * from './TargetNamespaceValidator'; export * from './XmlSchemaNamed'; export * from './XmlSchemaNamedImpl'; +export * from './XmlSchemaNamedWithFormImpl'; export * from './XmlSchemaRef'; export * from './XmlSchemaRefBase'; From 52b47a90294874b410e44f853f8b2490c6874c25 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:05:55 +0000 Subject: [PATCH 010/471] chore(deps): update dependency @types/node to v20.11.19 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a16bc871b..0020ad0f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3738,11 +3738,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.6 - resolution: "@types/node@npm:20.11.6" + version: 20.11.19 + resolution: "@types/node@npm:20.11.19" dependencies: undici-types: ~5.26.4 - checksum: 54b3739f42d9c2266fd724d8ecbf50bc64eb0563343b65a6ea874a51a7fc8bb4793bf3a1b2222e40e3b7bd62cf5af5609899bf1a3de8b69748dcac65e63e8bdc + checksum: 259d16643ba611ade617a8212e594a3ac014727457507389bbf7213971346ab052d870f1e6e2df0afd0876ecd7874f578bccb130be01e069263cfc7136ddc0c1 languageName: node linkType: hard From a4aa50eb27d099dad760367d44d63e265c397dca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:10:44 +0000 Subject: [PATCH 011/471] chore(deps): update dependency lint-staged to v15.2.2 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0020ad0f6..21035c08d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8880,28 +8880,28 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.0 - resolution: "lint-staged@npm:15.2.0" + version: 15.2.2 + resolution: "lint-staged@npm:15.2.2" dependencies: chalk: 5.3.0 commander: 11.1.0 debug: 4.3.4 execa: 8.0.1 lilconfig: 3.0.0 - listr2: 8.0.0 + listr2: 8.0.1 micromatch: 4.0.5 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.3.4 bin: lint-staged: bin/lint-staged.js - checksum: 4fb178b8d3ff454f7874697dfbd41017630f61a06296d12ac9dfd578d078c70aff7108b67fab38af94896ef2740a1e7541c1512d0d3c688ed90e6c3af3530f0d + checksum: 031718ad3f839475fb1d41bda34bab4330f25814175808169daa2686ff026e5a667a25c95fdf3cd46dac72f9af2c98852565bb62d920992f5e2d3f730c279760 languageName: node linkType: hard -"listr2@npm:8.0.0": - version: 8.0.0 - resolution: "listr2@npm:8.0.0" +"listr2@npm:8.0.1": + version: 8.0.1 + resolution: "listr2@npm:8.0.1" dependencies: cli-truncate: ^4.0.0 colorette: ^2.0.20 @@ -8909,7 +8909,7 @@ __metadata: log-update: ^6.0.0 rfdc: ^1.3.0 wrap-ansi: ^9.0.0 - checksum: 5cb110a710d14488c71d2207fc5141256abb1f21cbe5ebc12177ae640f94e040a1ef8c031b70ff9f24c4a8fa57c0825a54b534e52bdfaffc122a81082faae8ed + checksum: 4dfeabfa037b3981d0edbf30789971ba727ba4cfcc13051ceaff7a1b3d26509ef2d946015c65c600b0775ec9d1ef58a81937d94c9c03de464b654f429cc7c3ed languageName: node linkType: hard From 6887acc4fbb2dd38e295d1c0ca849f5fe3a74213 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:11:03 +0000 Subject: [PATCH 012/471] chore(deps): update react monorepo --- yarn.lock | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index 21035c08d..a505364c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3775,11 +3775,11 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.2.18": - version: 18.2.18 - resolution: "@types/react-dom@npm:18.2.18" + version: 18.2.19 + resolution: "@types/react-dom@npm:18.2.19" dependencies: "@types/react": "*" - checksum: 8e3da404c980e2b2a76da3852f812ea6d8b9d0e7f5923fbaf3bfbbbfa1d59116ff91c129de8f68e9b7668a67ae34484fe9df74d5a7518cf8591ec07a0c4dad57 + checksum: 087a19d8e4c1c0900ec4ac5ddb749a811a38274b25683d233c11755d2895cc6e475e8bf9bea3dee36519769298e078d4c2feab9ab4bd13b26bc2a6170716437e languageName: node linkType: hard @@ -3801,25 +3801,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*": - version: 18.2.48 - resolution: "@types/react@npm:18.2.48" +"@types/react@npm:*, @types/react@npm:^18.2.53": + version: 18.2.55 + resolution: "@types/react@npm:18.2.55" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: c9ca43ed2995389b7e09492c24e6f911a8439bb8276dd17cc66a2fbebbf0b42daf7b2ad177043256533607c2ca644d7d928fdfce37a67af1f8646d2bac988900 - languageName: node - linkType: hard - -"@types/react@npm:^18.2.53": - version: 18.2.53 - resolution: "@types/react@npm:18.2.53" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: 0dda3a7868c52a5c84287dbd12280c16cee7233571c24c00b14d2e9e3d30596ea96ea9f7808302a8d8bff81f9b49a8435d1814d2e63142376a1084b7e0d84f6a + checksum: a8eb4fa77f73831b9112d4f11a7006217dc0740361649b9b0da3fd441d151a9cd415d5d68b91c0af4e430e063424d301c77489e5edaddc9f711c4e46cf9818a5 languageName: node linkType: hard From 3b4c0c6714137d1aec8617ef67de6e4cb9faa23b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:11:22 +0000 Subject: [PATCH 013/471] chore(deps): update @lerna-lite to v3.3.0 --- yarn.lock | 146 ++++++++++++++++++++++++++---------------------------- 1 file changed, 71 insertions(+), 75 deletions(-) diff --git a/yarn.lock b/yarn.lock index a505364c2..d4ecd0d2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2384,14 +2384,14 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.2.1, @lerna-lite/cli@npm:^3.0.0": - version: 3.2.1 - resolution: "@lerna-lite/cli@npm:3.2.1" +"@lerna-lite/cli@npm:3.3.0, @lerna-lite/cli@npm:^3.0.0": + version: 3.3.0 + resolution: "@lerna-lite/cli@npm:3.3.0" dependencies: - "@lerna-lite/core": 3.2.1 - "@lerna-lite/init": 3.2.1 + "@lerna-lite/core": 3.3.0 + "@lerna-lite/init": 3.3.0 dedent: ^1.5.1 - dotenv: ^16.3.1 + dotenv: ^16.4.1 import-local: ^3.1.0 load-json-file: ^7.0.1 npmlog: ^7.0.1 @@ -2411,15 +2411,15 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: bf5bf97f78e9078e2b48e80273d310034ace09fa8a7822ec9491c37bf420bc7a9fad006763d50cba15b8e8c8a2faf7dd38f7469f9ef032afbcedd8794e7262eb + checksum: 60cd5d035429e84afc40aef6742fb9ea214d9325b140559362b31e42f46bcf25219cda4042a71205121fb48cd8331762e49dca1d4f9f3e148981f144d0fe4786 languageName: node linkType: hard -"@lerna-lite/core@npm:3.2.1": - version: 3.2.1 - resolution: "@lerna-lite/core@npm:3.2.1" +"@lerna-lite/core@npm:3.3.0": + version: 3.3.0 + resolution: "@lerna-lite/core@npm:3.3.0" dependencies: - "@npmcli/run-script": ^7.0.3 + "@npmcli/run-script": ^7.0.4 chalk: ^5.3.0 clone-deep: ^4.0.1 config-chain: ^1.1.13 @@ -2429,7 +2429,7 @@ __metadata: fs-extra: ^11.2.0 glob-parent: ^6.0.2 globby: ^14.0.0 - inquirer: ^9.2.12 + inquirer: ^9.2.14 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 @@ -2439,36 +2439,36 @@ __metadata: p-map: ^7.0.1 p-queue: ^8.0.1 resolve-from: ^5.0.0 - semver: ^7.5.4 + semver: ^7.6.0 slash: ^5.1.0 strong-log-transformer: ^2.1.0 write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 write-pkg: ^6.0.1 - checksum: fbef0a63c1d4985c6a066b427bbf84e88f184671a703aebbcf8412bd40354edccb47dbcdb24776e635466d191194ec73cfa38cc03bf5167fdb3c527ec64d2669 + checksum: 4939cc51f712ee00630d499b62265ed05f7c5a193c03484b50674066cb3337547b83cfc61181cf51860dd2171db00ab3ba34831b00f8af11b2c1c5dc0272278f languageName: node linkType: hard -"@lerna-lite/init@npm:3.2.1": - version: 3.2.1 - resolution: "@lerna-lite/init@npm:3.2.1" +"@lerna-lite/init@npm:3.3.0": + version: 3.3.0 + resolution: "@lerna-lite/init@npm:3.3.0" dependencies: - "@lerna-lite/core": 3.2.1 + "@lerna-lite/core": 3.3.0 fs-extra: ^11.2.0 p-map: ^7.0.1 write-json-file: ^5.0.0 - checksum: 0aae06bd3c4e8b3087affe6e0e1d00a14692e3229b7cf5a15f5c8327b5378c9aad3caa5fd1f9740e3de896d2780e42d252fbb5a699f83690c35172bda9a7088d + checksum: c23db113e0ca89bb5ce533ea65e5f27cd5b2f2ec5bf0dd37433a453695cda9a0ba6ccc9630a81df4a276ff4ab76d5571c7210e523c8cef2e4b0fde89b146bd93 languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.2.1 - resolution: "@lerna-lite/publish@npm:3.2.1" + version: 3.3.0 + resolution: "@lerna-lite/publish@npm:3.3.0" dependencies: - "@lerna-lite/cli": 3.2.1 - "@lerna-lite/core": 3.2.1 - "@lerna-lite/version": 3.2.1 - "@npmcli/arborist": ^7.3.0 + "@lerna-lite/cli": 3.3.0 + "@lerna-lite/core": 3.3.0 + "@lerna-lite/version": 3.3.0 + "@npmcli/arborist": ^7.3.1 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 @@ -2476,7 +2476,7 @@ __metadata: glob: ^10.3.10 has-unicode: ^2.0.1 libnpmaccess: ^8.0.2 - libnpmpublish: ^9.0.3 + libnpmpublish: ^9.0.4 normalize-path: ^3.0.0 npm-package-arg: ^11.0.1 npm-packlist: ^8.0.2 @@ -2484,23 +2484,23 @@ __metadata: npmlog: ^7.0.1 p-map: ^7.0.1 p-pipe: ^4.0.0 - pacote: ^17.0.5 + pacote: ^17.0.6 pify: ^6.1.0 read-package-json: ^7.0.0 - semver: ^7.5.4 + semver: ^7.6.0 ssri: ^10.0.5 tar: ^6.2.0 temp-dir: ^3.0.0 - checksum: f7f61615e6e990d71afde1e8770bb60104d9b193b6b854687b777a10b61d2f097a84ab051ab1a7c35686ffed7203b74c9115ddf1798eae442f63e023ca72aaba + checksum: 3fe1f90b7822aaa8af0e644f6885bfcd81ba9272f6d182c956cea4f2f8ca757bcf72022666e8dcd0b6071d142dd5ddd6ae933c626493de051bea0e899c4891be languageName: node linkType: hard -"@lerna-lite/version@npm:3.2.1, @lerna-lite/version@npm:^3.0.0": - version: 3.2.1 - resolution: "@lerna-lite/version@npm:3.2.1" +"@lerna-lite/version@npm:3.3.0, @lerna-lite/version@npm:^3.0.0": + version: 3.3.0 + resolution: "@lerna-lite/version@npm:3.3.0" dependencies: - "@lerna-lite/cli": 3.2.1 - "@lerna-lite/core": 3.2.1 + "@lerna-lite/cli": 3.3.0 + "@lerna-lite/core": 3.3.0 "@octokit/plugin-enterprise-rest": ^6.0.1 "@octokit/rest": ^20.0.2 chalk: ^5.3.0 @@ -2526,21 +2526,21 @@ __metadata: p-pipe: ^4.0.0 p-reduce: ^3.0.0 pify: ^6.1.0 - semver: ^7.5.4 + semver: ^7.6.0 slash: ^5.1.0 temp-dir: ^3.0.0 uuid: ^9.0.1 write-json-file: ^5.0.0 - checksum: 01c5f1ed0bc5111aa9ebab980a7dcc560fb3fad408a6b7d0dd4f6248e236f618fde83eae47788a5071795742e3a91ad21f6ef966fdcf3b752a8abe269aaaf9d0 + checksum: 480f5ae58b4d74fc10702fa877d8f75838110daae82d483ba2b02783b020c550b47f3f912a916d190e5f85735f0646ee76a989c51cc1e0b270ba1a60542adfe2 languageName: node linkType: hard -"@ljharb/through@npm:^2.3.11": - version: 2.3.11 - resolution: "@ljharb/through@npm:2.3.11" +"@ljharb/through@npm:^2.3.12": + version: 2.3.12 + resolution: "@ljharb/through@npm:2.3.12" dependencies: - call-bind: ^1.0.2 - checksum: 10502726028b8a4e0b270a2213e546821c04ed8d7fe411009a8e47497e4ae99c57eeb9ff3d13620ebdefd7c856b16fc873f27c433cad60465dc132fb4b997233 + call-bind: ^1.0.5 + checksum: d5a78568cd3025c03264a9f9c61b30511d27cb9611fae7575cb1339a1baa1a263b6af03e28505b821324f3c6285086ee5add612b8b0155d1f253ed5159cd3f56 languageName: node linkType: hard @@ -2584,7 +2584,7 @@ __metadata: languageName: node linkType: hard -"@npmcli/arborist@npm:^7.3.0": +"@npmcli/arborist@npm:^7.3.1": version: 7.3.1 resolution: "@npmcli/arborist@npm:7.3.1" dependencies: @@ -2735,7 +2735,7 @@ __metadata: languageName: node linkType: hard -"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.2, @npmcli/run-script@npm:^7.0.3": +"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.2, @npmcli/run-script@npm:^7.0.4": version: 7.0.4 resolution: "@npmcli/run-script@npm:7.0.4" dependencies: @@ -6007,10 +6007,10 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.3.1": - version: 16.4.1 - resolution: "dotenv@npm:16.4.1" - checksum: a343f0a1d156deef8c60034f797969867af4dbccfacedd4ac15fad04547e7ffe0553b58fc3b27a5837950f0d977e38e9234943fbcec4aeced4e3d044309a76ab +"dotenv@npm:^16.4.1": + version: 16.4.4 + resolution: "dotenv@npm:16.4.4" + checksum: fbe0355972634d8843e1804115885e94d70618cfc975eadca67e26b2d71eb46f0ed45c12c2b88fd88cd6b1476a151471227b13311127a3504d10060cc74ce2f7 languageName: node linkType: hard @@ -6309,13 +6309,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^5.0.0": - version: 5.0.0 - resolution: "escape-string-regexp@npm:5.0.0" - checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e - languageName: node - linkType: hard - "escodegen@npm:^2.0.0": version: 2.1.0 resolution: "escodegen@npm:2.1.0" @@ -6752,13 +6745,12 @@ __metadata: languageName: node linkType: hard -"figures@npm:^5.0.0": - version: 5.0.0 - resolution: "figures@npm:5.0.0" +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" dependencies: - escape-string-regexp: ^5.0.0 - is-unicode-supported: ^1.2.0 - checksum: e6e8b6d1df2f554d4effae4a5ceff5d796f9449f6d4e912d74dab7d5f25916ecda6c305b9084833157d56485a0c78b37164430ddc5675bcee1330e346710669e + escape-string-regexp: ^1.0.5 + checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b languageName: node linkType: hard @@ -7637,17 +7629,17 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.2.12": - version: 9.2.12 - resolution: "inquirer@npm:9.2.12" +"inquirer@npm:^9.2.14": + version: 9.2.14 + resolution: "inquirer@npm:9.2.14" dependencies: - "@ljharb/through": ^2.3.11 + "@ljharb/through": ^2.3.12 ansi-escapes: ^4.3.2 chalk: ^5.3.0 cli-cursor: ^3.1.0 cli-width: ^4.1.0 external-editor: ^3.1.0 - figures: ^5.0.0 + figures: ^3.2.0 lodash: ^4.17.21 mute-stream: 1.0.0 ora: ^5.4.1 @@ -7656,7 +7648,7 @@ __metadata: string-width: ^4.2.3 strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 - checksum: 8c372832367f5adb4bb08a0c3ee3b8b16e83202c125d1a681ece2c0ef2f00a5d7d6589a501fd58a0249b4ad49a8013584ac58ae12a20d29b1c24a0ec450927a5 + checksum: a4e4d6eaa295dee1a4e658f51646a19644f7a747566fc445ca14ba4401dbbf1819edb6832d8b1f5c3fb2baa3d1bf26251ea33fe087ee45a7ae45381911443833 languageName: node linkType: hard @@ -7985,13 +7977,6 @@ __metadata: languageName: node linkType: hard -"is-unicode-supported@npm:^1.2.0": - version: 1.3.0 - resolution: "is-unicode-supported@npm:1.3.0" - checksum: 20a1fc161afafaf49243551a5ac33b6c4cf0bbcce369fcd8f2951fbdd000c30698ce320de3ee6830497310a8f41880f8066d440aa3eb0a853e2aa4836dd89abc - languageName: node - linkType: hard - "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -8831,7 +8816,7 @@ __metadata: languageName: node linkType: hard -"libnpmpublish@npm:^9.0.3": +"libnpmpublish@npm:^9.0.4": version: 9.0.4 resolution: "libnpmpublish@npm:9.0.4" dependencies: @@ -9848,7 +9833,7 @@ __metadata: languageName: node linkType: hard -"pacote@npm:^17.0.0, pacote@npm:^17.0.4, pacote@npm:^17.0.5": +"pacote@npm:^17.0.0, pacote@npm:^17.0.4, pacote@npm:^17.0.6": version: 17.0.6 resolution: "pacote@npm:17.0.6" dependencies: @@ -10995,6 +10980,17 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.6.0": + version: 7.6.0 + resolution: "semver@npm:7.6.0" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" From 46e21b6a14381d96a44a0b70e80af39082b393cf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:11:41 +0000 Subject: [PATCH 014/471] chore(deps): update dependency @testing-library/jest-dom to v6.4.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d4ecd0d2e..c2be1c79f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3243,8 +3243,8 @@ __metadata: linkType: hard "@testing-library/jest-dom@npm:^6.3.0": - version: 6.3.0 - resolution: "@testing-library/jest-dom@npm:6.3.0" + version: 6.4.2 + resolution: "@testing-library/jest-dom@npm:6.4.2" dependencies: "@adobe/css-tools": ^4.3.2 "@babel/runtime": ^7.9.2 @@ -3271,7 +3271,7 @@ __metadata: optional: true vitest: optional: true - checksum: cea8aa17895cf4aff573fedee80e8a592611caf7bc724702fc70b3b7bfee94becd3a10873c818d931424018d6fdeeca9d1a2ea5f53b74092ad5e8e09f03dde90 + checksum: 631aeadbf4e738080ae095242cf1a29a0b4ee2f09c8bdd0d3f00a923707da64c1617e088ba9a961d098481afabdc1d19149fb7ef98edf15132348eb222f345ae languageName: node linkType: hard From 0d7bafefa6ab127c28a443a986d7ccfe80c333e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:11:59 +0000 Subject: [PATCH 015/471] chore(deps): update dependency eslint-plugin-jest to v27.8.0 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index c2be1c79f..afaacb007 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6389,12 +6389,12 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:^27.6.3": - version: 27.6.3 - resolution: "eslint-plugin-jest@npm:27.6.3" + version: 27.8.0 + resolution: "eslint-plugin-jest@npm:27.8.0" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 eslint: ^7.0.0 || ^8.0.0 jest: "*" peerDependenciesMeta: @@ -6402,7 +6402,7 @@ __metadata: optional: true jest: optional: true - checksum: e22e8dbd941b34bb95958f035ffabb94114506b294e74d6e411bc85bc9dc57888ffd3ebb5c28316a8b7cc9d391cca35557acc64bf815f48d1dcc5ea3d28fa43a + checksum: 1fcdcf332b6d95c2433dcdf908b46e494a671bb101c675f99525c7a664853e60c247d63f302946d5a4f74f497a73c41673bc365a841f81bb4651b527379487e2 languageName: node linkType: hard From 79898eda852496327b7ee5847b6639b657d9543e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:12:20 +0000 Subject: [PATCH 016/471] chore(deps): update dependency vite to v5.1.3 --- yarn.lock | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index afaacb007..7c51ed34b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10124,7 +10124,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.32, postcss@npm:^8.4.33": +"postcss@npm:^8.4.33": version: 8.4.33 resolution: "postcss@npm:8.4.33" dependencies: @@ -10135,6 +10135,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.35": + version: 8.4.35 + resolution: "postcss@npm:8.4.35" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: cf3c3124d3912a507603f6d9a49b3783f741075e9aa73eb592a6dd9194f9edab9d20a8875d16d137d4f779fe7b6fbd1f5727e39bfd1c3003724980ee4995e1da + languageName: node + linkType: hard + "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" @@ -12231,12 +12242,12 @@ __metadata: linkType: hard "vite@npm:^5.0.12": - version: 5.0.12 - resolution: "vite@npm:5.0.12" + version: 5.1.3 + resolution: "vite@npm:5.1.3" dependencies: esbuild: ^0.19.3 fsevents: ~2.3.3 - postcss: ^8.4.32 + postcss: ^8.4.35 rollup: ^4.2.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -12266,7 +12277,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: b97b6f1c204d9091d0973626827a6e9d8e8b1959ebd0877b6f76e7068e1e7adf9ecd3b1cc382cbab9d421e3eeca5e1a95f27f9c1734439b229f5a58ef2052fa4 + checksum: 827d67c5b951f0eab9d0293f30a6d60274da914d7548f4220021a596873c8a8891fe8d9418fac52486b8808a57cab8ee61ffe048520cce11b680eae4ed72bffa languageName: node linkType: hard From 7ea615a0d0896e37bd5d46afcc82236887de053e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:12:33 +0000 Subject: [PATCH 017/471] chore(deps): update yarn to v3.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 91d3f41c2..d8f53c4a1 100644 --- a/package.json +++ b/package.json @@ -22,5 +22,5 @@ "husky": "^8.0.3", "lint-staged": "^15.0.0" }, - "packageManager": "yarn@3.7.0" + "packageManager": "yarn@3.8.0" } From 0b321a5744e8217b9d3538676285473056e84cf9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:13:20 +0000 Subject: [PATCH 018/471] fix(deps): update @patternfly to v5.2.0 --- yarn.lock | 63 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7c51ed34b..4cb59ff03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2880,24 +2880,24 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2": - version: 5.1.2 - resolution: "@patternfly/react-core@npm:5.1.2" +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0": + version: 5.2.0 + resolution: "@patternfly/react-core@npm:5.2.0" dependencies: - "@patternfly/react-icons": ^5.1.2 - "@patternfly/react-styles": ^5.1.2 - "@patternfly/react-tokens": ^5.1.2 + "@patternfly/react-icons": ^5.2.0 + "@patternfly/react-styles": ^5.2.0 + "@patternfly/react-tokens": ^5.2.0 focus-trap: 7.5.2 react-dropzone: ^14.2.3 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 850e0cff69273c36b1da8e38dd9a2037ec8fd5954c69cd5be8516c14b87152b0a725a6c97f9d0d9b46b54ec6dcd92d389cd4d14774f64a29467836a3a78009e6 + checksum: 78a67e72c6180ec330c8a22ff990d855739195de41d96c0c52523354641345390bd295ba2ee1a14dd881b368d5b6d0a40edafe74b063f1ec0da78443e07cbe0c languageName: node linkType: hard -"@patternfly/react-icons@npm:^5.1.1, @patternfly/react-icons@npm:^5.1.2": +"@patternfly/react-icons@npm:^5.1.1": version: 5.1.2 resolution: "@patternfly/react-icons@npm:5.1.2" peerDependencies: @@ -2907,40 +2907,57 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-styles@npm:^5.1.1, @patternfly/react-styles@npm:^5.1.2": +"@patternfly/react-icons@npm:^5.2.0": + version: 5.2.0 + resolution: "@patternfly/react-icons@npm:5.2.0" + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: c33b7bb4d5760bbade5b989319dad4425ec13f9fbf7c7dc34924c29186798270ce3bc2cc566cc2169e695152a31afc6623bf96de7ad6d258a15e044f2dd654aa + languageName: node + linkType: hard + +"@patternfly/react-styles@npm:^5.1.1": version: 5.1.2 resolution: "@patternfly/react-styles@npm:5.1.2" checksum: 49f0f05744a94cb4ba9aa071807efb9beb804a532a97a78ca60b567c3f65262456e997c18a480ad8823684a248a2af4cc873ccae703ab77b081184296dcef2c3 languageName: node linkType: hard +"@patternfly/react-styles@npm:^5.2.0": + version: 5.2.0 + resolution: "@patternfly/react-styles@npm:5.2.0" + checksum: ab38211d265c5fdcebf1c6d10503cca3fa87e7f5021021a61e0b1cf320f6f906eb7ae4279b5d7767cd657ddea4659d74b072b100416f8c6dfb485d4d31a3dc76 + languageName: node + linkType: hard + "@patternfly/react-table@npm:^5.1.2": - version: 5.1.2 - resolution: "@patternfly/react-table@npm:5.1.2" + version: 5.2.0 + resolution: "@patternfly/react-table@npm:5.2.0" dependencies: - "@patternfly/react-core": ^5.1.2 - "@patternfly/react-icons": ^5.1.2 - "@patternfly/react-styles": ^5.1.2 - "@patternfly/react-tokens": ^5.1.2 + "@patternfly/react-core": ^5.2.0 + "@patternfly/react-icons": ^5.2.0 + "@patternfly/react-styles": ^5.2.0 + "@patternfly/react-tokens": ^5.2.0 lodash: ^4.17.19 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: b043489395594cb83485459a2bd27289d08f4a85bbe64121fe4b4285dca70149b4cf6dcf9bdac642c42d8c9c741bbeab615136ecc31a8ae9433668104835641b + checksum: d7a83c4baaf71ad7273be58f94fad0654f32ac0767d4a94711a36e2bfd7e93f0ce9b61adb57ff368a3176b3e0c1aae06c42c255a39a8fbad7721141104c0dcf2 languageName: node linkType: hard -"@patternfly/react-tokens@npm:^5.1.2": - version: 5.1.2 - resolution: "@patternfly/react-tokens@npm:5.1.2" - checksum: e7e4df34254aa474889c1f571b6a232ebe67210d302f8b86ef68371f66d56c6ba72c785ba6dcb41c57b30dbd0977b4e9ccecffaac599a158ae83bad8e11bbb8f +"@patternfly/react-tokens@npm:^5.2.0": + version: 5.2.0 + resolution: "@patternfly/react-tokens@npm:5.2.0" + checksum: cdb42955cfafe1a9b7adcb9d38258092126a85e08624b081b6cd10ea422d890c7786797dfa151a8213e5d394377c6cd85f86fbf5e425a2e813baff175ba2509a languageName: node linkType: hard "@patternfly/react-topology@npm:^5.1.0": - version: 5.1.0 - resolution: "@patternfly/react-topology@npm:5.1.0" + version: 5.2.1 + resolution: "@patternfly/react-topology@npm:5.2.1" dependencies: "@patternfly/react-core": ^5.1.1 "@patternfly/react-icons": ^5.1.1 @@ -2962,7 +2979,7 @@ __metadata: peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: e83627f62f0f77bd6e0b83f40909a1d35d782efe9df0a2f2f65caa5728aef53dcca512b94434d5070f14d5f98322fc98d9f092323d4db4588da7c95b7a107339 + checksum: 91dd662a42a21b717cbce815f2305ec9957cc3a013f42591be9a7bac704eba7ff5eba2113736253255b4f8821380d32a0cf84eb04203068f048d66cf189c468b languageName: node linkType: hard From d72e1bd8ddc357018765c233cd2ab37f25024566 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 22:13:43 +0000 Subject: [PATCH 019/471] chore(deps): update dependency husky to v9 --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index d8f53c4a1..0b3e6fb7d 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@lerna-lite/cli": "^3.0.0", "@lerna-lite/publish": "^3.0.0", "@lerna-lite/version": "^3.0.0", - "husky": "^8.0.3", + "husky": "^9.0.0", "lint-staged": "^15.0.0" }, "packageManager": "yarn@3.8.0" diff --git a/yarn.lock b/yarn.lock index 4cb59ff03..d60acf467 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5789,7 +5789,7 @@ __metadata: "@lerna-lite/cli": ^3.0.0 "@lerna-lite/publish": ^3.0.0 "@lerna-lite/version": ^3.0.0 - husky: ^8.0.3 + husky: ^9.0.0 lint-staged: ^15.0.0 languageName: unknown linkType: soft @@ -7522,12 +7522,12 @@ __metadata: languageName: node linkType: hard -"husky@npm:^8.0.3": - version: 8.0.3 - resolution: "husky@npm:8.0.3" +"husky@npm:^9.0.0": + version: 9.0.11 + resolution: "husky@npm:9.0.11" bin: - husky: lib/bin.js - checksum: 837bc7e4413e58c1f2946d38fb050f5d7324c6f16b0fd66411ffce5703b294bd21429e8ba58711cd331951ee86ed529c5be4f76805959ff668a337dbfa82a1b0 + husky: bin.mjs + checksum: 1aebc3334dc7ac6288ff5e1fb72cfb447cfa474e72cf7ba692e8c5698c573ab725c28c6a5088c9f8e6aca5f47d40fa7261beffbc07a4d307ca21656dc4571f07 languageName: node linkType: hard From 14a55aec28b9820397b3fdabb98af991a59b76a7 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 15 Feb 2024 17:23:25 -0500 Subject: [PATCH 020/471] chore --- packages/ui/src/util/xsd/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/util/xsd/README.md b/packages/ui/src/util/xsd/README.md index aa07c103d..6b819cd11 100644 --- a/packages/ui/src/util/xsd/README.md +++ b/packages/ui/src/util/xsd/README.md @@ -2,7 +2,7 @@ XML Schema Parser ============================================== This is supposed to be a minimal porting from [Apache XmlSchema](https://ws.apache.org/xmlschema/) -to TypeScript for what is required for the Data Mapper with using [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser#readme). +to TypeScript for what is required for the Data Mapper with using standard DOMParser. The main focus is to parse the XML schema file and build a Data Mapper Document model. Always honor the upstream for the internal design so we can share the common sense. From fef4a456d5bd0054deadc8e414de67b89b42f96f Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 15 Feb 2024 20:44:23 -0500 Subject: [PATCH 021/471] chore - exclude _bk_atlasmap in tsconfig and jest config - trying to avoid `Uncaught ReferenceError: Cannot access 'XmlSchemaAnnotated' before initialization at XmlSchema.ts:24:32` error in the browser console without luck --- .gitignore | 2 + packages/ui/jest.config.ts | 5 +- packages/ui/package.json | 4 +- packages/ui/src/util/xsd/XmlSchema.ts | 14 +- .../ui/src/util/xsd/XmlSchemaAnnotated.ts | 3 +- .../ui/src/util/xsd/XmlSchemaCollection.ts | 18 +- packages/ui/src/util/xsd/XmlSchemaExternal.ts | 3 +- packages/ui/src/util/xsd/XmlSchemaImport.ts | 4 +- packages/ui/src/util/xsd/XmlSchemaInclude.ts | 2 +- .../ui/src/util/xsd/utils/XmlSchemaNamed.ts | 2 +- .../ui/src/util/xsd/utils/XmlSchemaRef.ts | 6 +- .../ui/src/util/xsd/utils/XmlSchemaRefBase.ts | 5 +- packages/ui/src/util/xsd/utils/index.ts | 2 +- packages/ui/tsconfig.json | 3 +- packages/ui/vite.config.js | 4 + yarn.lock | 22516 +++++++--------- 16 files changed, 9886 insertions(+), 12707 deletions(-) diff --git a/.gitignore b/.gitignore index a64f23ebd..61d5cc486 100644 --- a/.gitignore +++ b/.gitignore @@ -140,3 +140,5 @@ lib # storybook storybook-static + +**/circleDep diff --git a/packages/ui/jest.config.ts b/packages/ui/jest.config.ts index 1d82a2205..feac9cd40 100644 --- a/packages/ui/jest.config.ts +++ b/packages/ui/jest.config.ts @@ -35,6 +35,7 @@ export default { '!src/**/stubs/*.ts', // Ignore icon resolver '!src/**/node-icon-resolver.ts', + '!src/_bk_atlasmap/**/*', ], // The directory where Jest should output its coverage files @@ -174,9 +175,7 @@ export default { testMatch: ['**/?(*.)+(test).[tj]s?(x)'], // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - // testPathIgnorePatterns: [ - // '\\\\node_modules\\\\' - // ], + testPathIgnorePatterns: ['\\\\node_modules\\\\', '/src/_bk_atlasmap/'], // The regexp pattern or array of patterns that Jest uses to detect test files // testRegex: [], diff --git a/packages/ui/package.json b/packages/ui/package.json index f59e0bac4..e175171a6 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -86,6 +86,7 @@ "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", + "madge": "^6.1.0", "prettier": "^3.2.5", "sass": "^1.70.0", "stylelint": "^16.2.1", @@ -93,6 +94,7 @@ "stylelint-prettier": "^5.0.0", "ts-node": "^10.9.2", "typescript": "^5.3.3", - "vite": "^5.0.12" + "vite": "^5.0.12", + "vite-plugin-circular-dependency": "^0.3.1" } } diff --git a/packages/ui/src/util/xsd/XmlSchema.ts b/packages/ui/src/util/xsd/XmlSchema.ts index e078a799d..33a42f5d9 100644 --- a/packages/ui/src/util/xsd/XmlSchema.ts +++ b/packages/ui/src/util/xsd/XmlSchema.ts @@ -1,22 +1,24 @@ import { - QName, - SchemaKey, URI_2001_SCHEMA_XSD, XmlSchemaAnnotated, + XmlSchemaDerivationMethod, + SchemaKey, + QName, + XmlSchemaImport, + XmlSchemaInclude, +} from '.'; +import type { XmlSchemaAttribute, XmlSchemaAttributeGroup, XmlSchemaCollection, - XmlSchemaDerivationMethod, XmlSchemaElement, XmlSchemaExternal, XmlSchemaGroup, - XmlSchemaImport, - XmlSchemaInclude, XmlSchemaNotation, XmlSchemaObject, XmlSchemaType, } from '.'; -import { NamespaceContextOwner, NamespacePrefixList } from './utils'; +import type { NamespaceContextOwner, NamespacePrefixList } from './utils'; import { XmlSchemaForm } from './XmlSchemaForm'; export class XmlSchema extends XmlSchemaAnnotated implements NamespaceContextOwner { diff --git a/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts b/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts index c4e963047..9b6d52e1e 100644 --- a/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts +++ b/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts @@ -1,4 +1,5 @@ -import { XmlSchemaAnnotation, XmlSchemaObject } from '.'; +import { XmlSchemaObject } from '.'; +import type { XmlSchemaAnnotation } from '.'; export class XmlSchemaAnnotated extends XmlSchemaObject { private annotation?: XmlSchemaAnnotation; diff --git a/packages/ui/src/util/xsd/XmlSchemaCollection.ts b/packages/ui/src/util/xsd/XmlSchemaCollection.ts index a81df290a..53e438a64 100644 --- a/packages/ui/src/util/xsd/XmlSchemaCollection.ts +++ b/packages/ui/src/util/xsd/XmlSchemaCollection.ts @@ -1,23 +1,21 @@ import { - QName, - SchemaBuilder, - TypeReceiver, XmlSchema, - XmlSchemaFacet, XmlSchemaFractionDigitsFacet, XmlSchemaMaxInclusiveFacet, XmlSchemaMinInclusiveFacet, XmlSchemaPatternFacet, - XmlSchemaSimpleType, - XmlSchemaSimpleTypeList, - XmlSchemaSimpleTypeRestriction, - XmlSchemaType, XmlSchemaWhiteSpaceFacet, + XmlSchemaSimpleTypeRestriction, + XmlSchemaSimpleTypeList, + SchemaBuilder, + XmlSchemaSimpleType, } from '.'; +import type { QName, TypeReceiver, XmlSchemaFacet, XmlSchemaType } from '.'; import { ExtensionRegistry } from './extensions'; import * as Constants from './constants'; -import { CollectionURIResolver, DefaultURIResolver, URIResolver } from './resolver'; -import { NamespacePrefixList } from './utils'; +import { DefaultURIResolver } from './resolver'; +import type { CollectionURIResolver, URIResolver } from './resolver'; +import type { NamespacePrefixList } from './utils'; export class SchemaKey { private namespace: string; diff --git a/packages/ui/src/util/xsd/XmlSchemaExternal.ts b/packages/ui/src/util/xsd/XmlSchemaExternal.ts index d11dc203b..813a66306 100644 --- a/packages/ui/src/util/xsd/XmlSchemaExternal.ts +++ b/packages/ui/src/util/xsd/XmlSchemaExternal.ts @@ -1,4 +1,5 @@ -import { XmlSchema, XmlSchemaAnnotated } from '.'; +import { XmlSchemaAnnotated } from '.'; +import type { XmlSchema } from '.'; export abstract class XmlSchemaExternal extends XmlSchemaAnnotated { schema: XmlSchema | null = null; diff --git a/packages/ui/src/util/xsd/XmlSchemaImport.ts b/packages/ui/src/util/xsd/XmlSchemaImport.ts index d8c9411e3..2c58ca3cf 100644 --- a/packages/ui/src/util/xsd/XmlSchemaImport.ts +++ b/packages/ui/src/util/xsd/XmlSchemaImport.ts @@ -1,5 +1,5 @@ -import { XmlSchema, XmlSchemaExternal } from '.'; - +import { XmlSchemaExternal } from '.'; +import type { XmlSchema } from '.'; export class XmlSchemaImport extends XmlSchemaExternal { namespace: string | null = null; diff --git a/packages/ui/src/util/xsd/XmlSchemaInclude.ts b/packages/ui/src/util/xsd/XmlSchemaInclude.ts index 2757e6421..699d26213 100644 --- a/packages/ui/src/util/xsd/XmlSchemaInclude.ts +++ b/packages/ui/src/util/xsd/XmlSchemaInclude.ts @@ -1,5 +1,5 @@ import { XmlSchemaExternal } from './XmlSchemaExternal'; -import { XmlSchema } from './XmlSchema'; +import type { XmlSchema } from './XmlSchema'; export class XmlSchemaInclude extends XmlSchemaExternal { /** diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts index bf71c5747..ee59de99c 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts @@ -1,4 +1,4 @@ -import { QName, XmlSchema } from '..'; +import type { QName, XmlSchema } from '..'; export interface XmlSchemaObjectBase {} export interface XmlSchemaNamed extends XmlSchemaObjectBase { diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts b/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts index aa73b33c6..317e08493 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts @@ -1,5 +1,7 @@ -import { XmlSchemaNamed, XmlSchemaNamedType, XmlSchemaRefBase } from '.'; -import { XmlSchema } from '..'; +import { XmlSchemaRefBase } from './XmlSchemaRefBase'; +import type { XmlSchemaNamed } from '.'; +import { XmlSchemaNamedType } from '.'; +import type { XmlSchema } from '..'; export class XmlSchemaRef extends XmlSchemaRefBase { private targetObject: XmlSchemaNamed | null = null; diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts b/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts index eb7ce08c1..ae9c8f180 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts @@ -1,5 +1,6 @@ -import { XmlSchemaNamed } from '.'; -import { QName, XmlSchema } from '..'; +import type { XmlSchema } from '../XmlSchema'; +import { QName } from '../QName'; +import type { XmlSchemaNamed } from './XmlSchemaNamed'; export abstract class XmlSchemaRefBase { protected parent: XmlSchema | null = null; diff --git a/packages/ui/src/util/xsd/utils/index.ts b/packages/ui/src/util/xsd/utils/index.ts index 59595d643..f46df3d85 100644 --- a/packages/ui/src/util/xsd/utils/index.ts +++ b/packages/ui/src/util/xsd/utils/index.ts @@ -9,4 +9,4 @@ export * from './XmlSchemaNamed'; export * from './XmlSchemaNamedImpl'; export * from './XmlSchemaNamedWithFormImpl'; export * from './XmlSchemaRef'; -export * from './XmlSchemaRefBase'; +export { XmlSchemaRefBase } from './XmlSchemaRefBase'; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index 4262a143e..129f35107 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -26,6 +26,7 @@ "@types/node", ] }, - "include": ["src"], + "include": ["src/**/*"], + "exclude": ["**/_bk_atlasmap/**/*"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/packages/ui/vite.config.js b/packages/ui/vite.config.js index a4799fbc3..13de7eb40 100644 --- a/packages/ui/vite.config.js +++ b/packages/ui/vite.config.js @@ -1,10 +1,14 @@ import react from '@vitejs/plugin-react'; +import circleDependency from 'vite-plugin-circular-dependency'; import { defineConfig } from 'vite'; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ react(), + circleDependency({ + outputFilePath: './circleDep', + }), ], build: { outDir: './dist', diff --git a/yarn.lock b/yarn.lock index d60acf467..df685fc45 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,12675 +1,9841 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 - -"@aashutoshrathi/word-wrap@npm:^1.2.3": - version: 1.2.6 - resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" - checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd - languageName: node - linkType: hard - -"@adobe/css-tools@npm:^4.3.2": - version: 4.3.3 - resolution: "@adobe/css-tools@npm:4.3.3" - checksum: d21f3786b84911fee59c995a146644a85c98692979097b26484ffa9e442fb1a92ccd68ce984e3e7cf8d5933c3560fbc0ad3e3cd1de50b9a723d1c012e793bbcb - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.2.0": - version: 2.2.1 - resolution: "@ampproject/remapping@npm:2.2.1" - dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/code-frame@npm:7.23.5" - dependencies: - "@babel/highlight": ^7.23.4 - chalk: ^2.4.2 - checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/compat-data@npm:7.23.5" - checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 - languageName: node - linkType: hard - -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/core@npm:7.23.9" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.23.9 - "@babel/parser": ^7.23.9 - "@babel/template": ^7.23.9 - "@babel/traverse": ^7.23.9 - "@babel/types": ^7.23.9 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 634a511f74db52a5f5a283c1121f25e2227b006c095b84a02a40a9213842489cd82dc7d61cdc74e10b5bcd9bb0a4e28bab47635b54c7e2256d47ab57356e2a76 - languageName: node - linkType: hard - -"@babel/core@npm:^7.23.5": - version: 7.23.7 - resolution: "@babel/core@npm:7.23.7" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.23.7 - "@babel/parser": ^7.23.6 - "@babel/template": ^7.22.15 - "@babel/traverse": ^7.23.7 - "@babel/types": ^7.23.6 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 32d5bf73372a47429afaae9adb0af39e47bcea6a831c4b5dcbb4791380cda6949cb8cb1a2fea8b60bb1ebe189209c80e333903df1fa8e9dcb04798c0ce5bf59e - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": - version: 7.23.6 - resolution: "@babel/generator@npm:7.23.6" - dependencies: - "@babel/types": ^7.23.6 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 1a1a1c4eac210f174cd108d479464d053930a812798e09fee069377de39a893422df5b5b146199ead7239ae6d3a04697b45fc9ac6e38e0f6b76374390f91fc6c - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d - languageName: node - linkType: hard - -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" - dependencies: - "@babel/types": ^7.22.15 - checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helper-compilation-targets@npm:7.23.6" - dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-validator-option": ^7.23.5 - browserslist: ^4.22.2 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": - version: 7.23.10 - resolution: "@babel/helper-create-class-features-plugin@npm:7.23.10" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-member-expression-to-functions": ^7.23.0 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: ff0730c21f0e73b9e314701bca6568bb5885dff2aa3c32b1e2e3d18ed2818f56851b9ffdbe2e8008c9bb94b265a1443883ae4c1ca5dde278ce71ac4218006d68 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - regexpu-core: ^5.3.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.5.0": - version: 0.5.0 - resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" - dependencies: - "@babel/helper-compilation-targets": ^7.22.6 - "@babel/helper-plugin-utils": ^7.22.5 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: d24626b819d3875cb65189d761004e9230f2b3fb60542525c4785616f4b2366741369235a864b744f54beb26d625ae4b0af0c9bb3306b61bf4fccb61e0620020 - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-environment-visitor@npm:7.22.20" - checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" - dependencies: - "@babel/template": ^7.22.15 - "@babel/types": ^7.23.0 - checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" - dependencies: - "@babel/types": ^7.23.0 - checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-module-imports@npm:7.22.15" - dependencies: - "@babel/types": ^7.22.15 - checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/helper-module-transforms@npm:7.23.3" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/helper-plugin-utils@npm:7.22.5" - checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 - languageName: node - linkType: hard - -"@babel/helper-remap-async-to-generator@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-wrap-function": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-replace-supers@npm:7.22.20" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-member-expression-to-functions": ^7.22.15 - "@babel/helper-optimise-call-expression": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 - languageName: node - linkType: hard - -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helper-split-export-declaration@npm:7.22.6" - dependencies: - "@babel/types": ^7.22.5 - checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/helper-string-parser@npm:7.23.4" - checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helper-validator-option@npm:7.23.5" - checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-wrap-function@npm:7.22.20" - dependencies: - "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.15 - "@babel/types": ^7.22.19 - checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.23.7": - version: 7.23.8 - resolution: "@babel/helpers@npm:7.23.8" - dependencies: - "@babel/template": ^7.22.15 - "@babel/traverse": ^7.23.7 - "@babel/types": ^7.23.6 - checksum: 8b522d527921f8df45a983dc7b8e790c021250addf81ba7900ba016e165442a527348f6f877aa55e1debb3eef9e860a334b4e8d834e6c9b438ed61a63d9a7ad4 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/helpers@npm:7.23.9" - dependencies: - "@babel/template": ^7.23.9 - "@babel/traverse": ^7.23.9 - "@babel/types": ^7.23.9 - checksum: 2678231192c0471dbc2fc403fb19456cc46b1afefcfebf6bc0f48b2e938fdb0fef2e0fe90c8c8ae1f021dae5012b700372e4b5d15867f1d7764616532e4a6324 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/highlight@npm:7.23.4" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/parser@npm:7.23.6" - bin: - parser: ./bin/babel-parser.js - checksum: 140801c43731a6c41fd193f5c02bc71fd647a0360ca616b23d2db8be4b9739b9f951a03fc7c2db4f9b9214f4b27c1074db0f18bc3fa653783082d5af7c8860d5 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.14.7, @babel/parser@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/parser@npm:7.23.9" - bin: - parser: ./bin/babel-parser.js - checksum: e7cd4960ac8671774e13803349da88d512f9292d7baa952173260d3e8f15620a28a3701f14f709d769209022f9e7b79965256b8be204fc550cfe783cdcabe7c7 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: ddbaf2c396b7780f15e80ee01d6dd790db076985f3dfeb6527d1a8d4cacf370e49250396a3aa005b2c40233cac214a106232f83703d5e8491848bde273938232 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.23.3 - peerDependencies: - "@babel/core": ^7.13.0 - checksum: 434b9d710ae856fa1a456678cc304fbc93915af86d581ee316e077af746a709a741ea39d7e1d4f5b98861b629cc7e87f002d3138f5e836775632466d4c74aef2 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: f88e400b548202a6f8c5dfd25bc4949a13ea1ccb64a170d7dea4deaa655a0fcb001d3fd61c35e1ad9c09a3d5f0d43f783400425471fe6d660ccaf33dabea9aba - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": - version: 7.21.0-placeholder-for-preset-env.2 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 - languageName: node - linkType: hard - -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-bigint@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": ^7.12.13 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 883e6b35b2da205138caab832d54505271a3fee3fc1e8dc0894502434fc2b5d517cbe93bbfbfef8068a0fb6ec48ebc9eef3f605200a489065ba43d8cddc1c9a7 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9aed7661ffb920ca75df9f494757466ca92744e43072e0848d87fa4aa61a3f2ee5a22198ac1959856c036434b5614a8f46f1fb70298835dbe28220cdd1d4c11e - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.23.3 - resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.23.3, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.23.3 - resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: abfad3a19290d258b028e285a1f34c9b8a0cbe46ef79eafed4ed7ffce11b5d0720b5e536c82f91cbd8442cde35a3dd8e861fa70366d87ff06fdc0d4756e30876 - languageName: node - linkType: hard - -"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1e99118176e5366c2636064d09477016ab5272b2a92e78b8edb571d20bc3eaa881789a905b20042942c3c2d04efc530726cf703f937226db5ebc495f5d067e66 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-generator-functions@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.20 - "@babel/plugin-syntax-async-generators": ^7.8.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d402494087a6b803803eb5ab46b837aab100a04c4c5148e38bfa943ea1bbfc1ecfb340f1ced68972564312d3580f550c125f452372e77607a558fbbaf98c31c0 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" - dependencies: - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2e9d9795d4b3b3d8090332104e37061c677f29a1ce65bcbda4099a32d243e5d9520270a44bbabf0fb1fb40d463bd937685b1a1042e646979086c546d55319c3c - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e63b16d94ee5f4d917e669da3db5ea53d1e7e79141a2ec873c1e644678cdafe98daa556d0d359963c827863d6b3665d23d4938a94a4c5053a1619c4ebd01d020 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fc4b2100dd9f2c47d694b4b35ae8153214ccb4e24ef545c259a9db17211b18b6a430f22799b56db8f6844deaeaa201af45a03331d0c80cc28b0c4e3c814570e4 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9c6f8366f667897541d360246de176dd29efc7a13d80a5b48361882f7173d9173be4646c3b7d9b003ccc0e01e25df122330308f33db921fa553aa17ad544b3fc - languageName: node - linkType: hard - -"@babel/plugin-transform-class-static-block@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: c8bfaba19a674fc2eb54edad71e958647360474e3163e8226f1acd63e4e2dbec32a171a0af596c1dc5359aee402cc120fea7abd1fb0e0354b6527f0fc9e8aa1e - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.23.8": - version: 7.23.8 - resolution: "@babel/plugin-transform-classes@npm:7.23.8" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 - "@babel/helper-split-export-declaration": ^7.22.6 - globals: ^11.1.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7dee6cebe52131d2d16944f36e1fdb9d4b24f44d0e7e450f93a44435d001f17cc0789a4cb6b15ec67c8e484581b8a730b5c3ec374470f29ff0133086955b8c58 - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/template": ^7.22.15 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 80452661dc25a0956f89fe98cb562e8637a9556fb6c00d312c57653ce7df8798f58d138603c7e1aad96614ee9ccd10c47e50ab9ded6b6eded5adeb230d2a982e - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9e015099877272501162419bfe781689aec5c462cd2aec752ee22288f209eec65969ff11b8fdadca2eaddea71d705d3bba5b9c60752fcc1be67874fcec687105 - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a2dbbf7f1ea16a97948c37df925cb364337668c41a3948b8d91453f140507bd8a3429030c7ce66d09c299987b27746c19a2dd18b6f17dcb474854b14fd9159a3 - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c2a21c34dc0839590cd945192cbc46fde541a27e140c48fe1808315934664cdbf18db64889e23c4eeb6bad9d3e049482efdca91d29de5734ffc887c4fbabaa16 - languageName: node - linkType: hard - -"@babel/plugin-transform-dynamic-import@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 57a722604c430d9f3dacff22001a5f31250e34785d4969527a2ae9160fa86858d0892c5b9ff7a06a04076f8c76c9e6862e0541aadca9c057849961343aab0845 - languageName: node - linkType: hard - -"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 00d05ab14ad0f299160fcf9d8f55a1cc1b740e012ab0b5ce30207d2365f091665115557af7d989cd6260d075a252d9e4283de5f2b247dfbbe0e42ae586e6bf66 - languageName: node - linkType: hard - -"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9f770a81bfd03b48d6ba155d452946fd56d6ffe5b7d871e9ec2a0b15e0f424273b632f3ed61838b90015b25bbda988896b7a46c7d964fbf8f6feb5820b309f93 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/plugin-transform-for-of@npm:7.23.6" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 228c060aa61f6aa89dc447170075f8214863b94f830624e74ade99c1a09316897c12d76e848460b0b506593e58dbc42739af6dc4cb0fe9b84dffe4a596050a36 - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-function-name@npm:7.23.3" - dependencies: - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 355c6dbe07c919575ad42b2f7e020f320866d72f8b79181a16f8e0cd424a2c761d979f03f47d583d9471b55dcd68a8a9d829b58e1eebcd572145b934b48975a6 - languageName: node - linkType: hard - -"@babel/plugin-transform-json-strings@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-json-strings": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed - languageName: node - linkType: hard - -"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-amd@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" - dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" - dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-simple-access": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-systemjs@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" - dependencies: - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cec6abeae6be66fd1a5940c482fe9ff94b689c71fcf4147e179119e4accd09d17d476e36528bc9cb4ab0ec6728fedf48b1c49d0551ea707fb192575d8eac9167 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-umd@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" - dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 586a7a2241e8b4e753a37af9466a9ffa8a67b4ba9aa756ad7500712c05d8fa9a8c1ed4f7bd25fae2a8265e6cf8fe781ec85a8ee885dd34cf50d8955ee65f12dc - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 - languageName: node - linkType: hard - -"@babel/plugin-transform-new-target@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-new-target@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e5053389316fce73ad5201b7777437164f333e24787fbcda4ae489cd2580dbbbdfb5694a7237bad91fabb46b591d771975d69beb1c740b82cb4761625379f00b - languageName: node - linkType: hard - -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a27d73ea134d3d9560a6b2e26ab60012fba15f1db95865aa0153c18f5ec82cfef6a7b3d8df74e3c2fca81534fa5efeb6cacaf7b08bdb7d123e3dafdd079886a3 - languageName: node - linkType: hard - -"@babel/plugin-transform-numeric-separator@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6ba0e5db3c620a3ec81f9e94507c821f483c15f196868df13fa454cbac719a5449baf73840f5b6eb7d77311b24a2cf8e45db53700d41727f693d46f7caf3eec3 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-rest-spread@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" - dependencies: - "@babel/compat-data": ^7.23.3 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.23.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 73fec495e327ca3959c1c03d07a621be09df00036c69fff0455af9a008291677ee9d368eec48adacdc6feac703269a649747568b4af4c4e9f134aa71cc5b378d - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-object-super@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e495497186f621fa79026e183b4f1fbb172fd9df812cbd2d7f02c05b08adbe58012b1a6eb6dd58d11a30343f6ec80d0f4074f9b501d70aa1c94df76d59164c53 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d50b5ee142cdb088d8b5de1ccf7cea85b18b85d85b52f86618f6e45226372f01ad4cdb29abd4fd35ea99a71fefb37009e0107db7a787dcc21d4d402f97470faf - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: e7a4c08038288057b7a08d68c4d55396ada9278095509ca51ed8dfb72a7f13f26bdd7c5185de21079fe0a9d60d22c227cb32e300d266c1bda40f70eee9f4bc1e - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-parameters@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a735b3e85316d17ec102e3d3d1b6993b429bdb3b494651c9d754e3b7d270462ee1f1a126ccd5e3d871af5e683727e9ef98c9d34d4a42204fffaabff91052ed16 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-methods@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cedc1285c49b5a6d9a3d0e5e413b756ac40b3ac2f8f68bdfc3ae268bc8d27b00abd8bb0861c72756ff5dd8bf1eb77211b7feb5baf4fdae2ebbaabe49b9adc1d0 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fb7adfe94ea97542f250a70de32bddbc3e0b802381c92be947fec83ebffda57e68533c4d0697152719a3496fdd3ebf3798d451c024cd4ac848fc15ac26b70aa7 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 16b048c8e87f25095f6d53634ab7912992f78e6997a6ff549edc3cf519db4fca01c7b4e0798530d7f6a05228ceee479251245cdd850a5531c6e6f404104d6cc9 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-self@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-source@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": - version: 7.23.4 - resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-jsx": ^7.23.3 - "@babel/types": ^7.23.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a - languageName: node - linkType: hard - -"@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9ea3698b1d422561d93c0187ac1ed8f2367e4250b10e259785ead5aa643c265830fd0f4cf5087a5bedbc4007444c06da2f2006686613220acf0949895f453666 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - regenerator-transform: ^0.15.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7fdacc7b40008883871b519c9e5cdea493f75495118ccc56ac104b874983569a24edd024f0f5894ba1875c54ee2b442f295d6241c3280e61c725d0dd3317c8e6 - languageName: node - linkType: hard - -"@babel/plugin-transform-reserved-words@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 298c4440ddc136784ff920127cea137168e068404e635dc946ddb5d7b2a27b66f1dd4c4acb01f7184478ff7d5c3e7177a127279479926519042948fb7fa0fa48 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 5d677a03676f9fff969b0246c423d64d77502e90a832665dc872a5a5e05e5708161ce1effd56bb3c0f2c20a1112fca874be57c8a759d8b08152755519281f326 - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-spread@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8fd5cac201e77a0b4825745f4e07a25f923842f282f006b3a79223c00f61075c8868d12eafec86b2642cd0b32077cdd32314e27bcb75ee5e6a68c0144140dcf2 - languageName: node - linkType: hard - -"@babel/plugin-transform-sticky-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 - languageName: node - linkType: hard - -"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 - languageName: node - linkType: hard - -"@babel/plugin-transform-typescript@npm:^7.23.3": - version: 7.23.6 - resolution: "@babel/plugin-transform-typescript@npm:7.23.6" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.23.6 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-typescript": ^7.23.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0462241843d14dff9f1a4c49ab182a6f01a5f7679957c786b08165dac3e8d49184011f05ca204183d164c54b9d3496d1b3005f904fa8708e394e6f15bf5548e6 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-escapes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2298461a194758086d17c23c26c7de37aa533af910f9ebf31ebd0893d4aa317468043d23f73edc782ec21151d3c46cf0ff8098a83b725c49a59de28a1d4d6225 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c5f835d17483ba899787f92e313dfa5b0055e3deab332f1d254078a2bba27ede47574b6599fcf34d3763f0c048ae0779dc21d2d8db09295edb4057478dc80a9a - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 79d0b4c951955ca68235c87b91ab2b393c96285f8aeaa34d6db416d2ddac90000c9bd6e8c4d82b60a2b484da69930507245035f28ba63c6cae341cf3ba68fdef - languageName: node - linkType: hard - -"@babel/preset-env@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/preset-env@npm:7.23.9" - dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.7 - "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.23.3 - "@babel/plugin-syntax-import-attributes": ^7.23.3 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.23.3 - "@babel/plugin-transform-async-generator-functions": ^7.23.9 - "@babel/plugin-transform-async-to-generator": ^7.23.3 - "@babel/plugin-transform-block-scoped-functions": ^7.23.3 - "@babel/plugin-transform-block-scoping": ^7.23.4 - "@babel/plugin-transform-class-properties": ^7.23.3 - "@babel/plugin-transform-class-static-block": ^7.23.4 - "@babel/plugin-transform-classes": ^7.23.8 - "@babel/plugin-transform-computed-properties": ^7.23.3 - "@babel/plugin-transform-destructuring": ^7.23.3 - "@babel/plugin-transform-dotall-regex": ^7.23.3 - "@babel/plugin-transform-duplicate-keys": ^7.23.3 - "@babel/plugin-transform-dynamic-import": ^7.23.4 - "@babel/plugin-transform-exponentiation-operator": ^7.23.3 - "@babel/plugin-transform-export-namespace-from": ^7.23.4 - "@babel/plugin-transform-for-of": ^7.23.6 - "@babel/plugin-transform-function-name": ^7.23.3 - "@babel/plugin-transform-json-strings": ^7.23.4 - "@babel/plugin-transform-literals": ^7.23.3 - "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 - "@babel/plugin-transform-member-expression-literals": ^7.23.3 - "@babel/plugin-transform-modules-amd": ^7.23.3 - "@babel/plugin-transform-modules-commonjs": ^7.23.3 - "@babel/plugin-transform-modules-systemjs": ^7.23.9 - "@babel/plugin-transform-modules-umd": ^7.23.3 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.23.3 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 - "@babel/plugin-transform-numeric-separator": ^7.23.4 - "@babel/plugin-transform-object-rest-spread": ^7.23.4 - "@babel/plugin-transform-object-super": ^7.23.3 - "@babel/plugin-transform-optional-catch-binding": ^7.23.4 - "@babel/plugin-transform-optional-chaining": ^7.23.4 - "@babel/plugin-transform-parameters": ^7.23.3 - "@babel/plugin-transform-private-methods": ^7.23.3 - "@babel/plugin-transform-private-property-in-object": ^7.23.4 - "@babel/plugin-transform-property-literals": ^7.23.3 - "@babel/plugin-transform-regenerator": ^7.23.3 - "@babel/plugin-transform-reserved-words": ^7.23.3 - "@babel/plugin-transform-shorthand-properties": ^7.23.3 - "@babel/plugin-transform-spread": ^7.23.3 - "@babel/plugin-transform-sticky-regex": ^7.23.3 - "@babel/plugin-transform-template-literals": ^7.23.3 - "@babel/plugin-transform-typeof-symbol": ^7.23.3 - "@babel/plugin-transform-unicode-escapes": ^7.23.3 - "@babel/plugin-transform-unicode-property-regex": ^7.23.3 - "@babel/plugin-transform-unicode-regex": ^7.23.3 - "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 - "@babel/preset-modules": 0.1.6-no-external-plugins - babel-plugin-polyfill-corejs2: ^0.4.8 - babel-plugin-polyfill-corejs3: ^0.9.0 - babel-plugin-polyfill-regenerator: ^0.5.5 - core-js-compat: ^3.31.0 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 23a48468ba820c68ba34ea2c1dbc62fd2ff9cf858cfb69e159cabb0c85c72dc4c2266ce20ca84318d8742de050cb061e7c66902fbfddbcb09246afd248847933 - languageName: node - linkType: hard - -"@babel/preset-modules@npm:0.1.6-no-external-plugins": - version: 0.1.6-no-external-plugins - resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@babel/types": ^7.4.4 - esutils: ^2.0.2 - peerDependencies: - "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 - checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 - languageName: node - linkType: hard - -"@babel/preset-react@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/preset-react@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-transform-react-display-name": ^7.23.3 - "@babel/plugin-transform-react-jsx": ^7.22.15 - "@babel/plugin-transform-react-jsx-development": ^7.22.5 - "@babel/plugin-transform-react-pure-annotations": ^7.23.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2d90961e7e627a74b44551e88ad36a440579e283e8dc27972bf2f50682152bbc77228673a3ea22c0e0d005b70cbc487eccd64897c5e5e0384e5ce18f300b21eb - languageName: node - linkType: hard - -"@babel/preset-typescript@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/preset-typescript@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-syntax-jsx": ^7.23.3 - "@babel/plugin-transform-modules-commonjs": ^7.23.3 - "@babel/plugin-transform-typescript": ^7.23.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 105a2d39bbc464da0f7e1ad7f535c77c5f62d6b410219355b20e552e7d29933567a5c55339b5d0aec1a5c7a0a7dfdf1b54aae601a4fe15a157d54dcbfcb3e854 - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": - version: 7.23.9 - resolution: "@babel/runtime@npm:7.23.9" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 6bbebe8d27c0c2dd275d1ac197fc1a6c00e18dab68cc7aaff0adc3195b45862bae9c4cc58975629004b0213955b2ed91e99eccb3d9b39cabea246c657323d667 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.9.2": - version: 7.23.8 - resolution: "@babel/runtime@npm:7.23.8" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 0bd5543c26811153822a9f382fd39886f66825ff2a397a19008011376533747cd05c33a91f6248c0b8b0edf0448d7c167ebfba34786088f1b7eb11c65be7dfc3 - languageName: node - linkType: hard - -"@babel/template@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/template@npm:7.22.15" - dependencies: - "@babel/code-frame": ^7.22.13 - "@babel/parser": ^7.22.15 - "@babel/types": ^7.22.15 - checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd - languageName: node - linkType: hard - -"@babel/template@npm:^7.23.9, @babel/template@npm:^7.3.3": - version: 7.23.9 - resolution: "@babel/template@npm:7.23.9" - dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/parser": ^7.23.9 - "@babel/types": ^7.23.9 - checksum: 6e67414c0f7125d7ecaf20c11fab88085fa98a96c3ef10da0a61e962e04fdf3a18a496a66047005ddd1bb682a7cc7842d556d1db2f3f3f6ccfca97d5e445d342 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/traverse@npm:7.23.7" - dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.23.6 - "@babel/types": ^7.23.6 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: d4a7afb922361f710efc97b1e25ec343fab8b2a4ddc81ca84f9a153f22d4482112cba8f263774be8d297918b6c4767c7a98988ab4e53ac73686c986711dd002e - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/traverse@npm:7.23.9" - dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.23.9 - "@babel/types": ^7.23.9 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: a932f7aa850e158c00c97aad22f639d48c72805c687290f6a73e30c5c4957c07f5d28310c9bf59648e2980fe6c9d16adeb2ff92a9ca0f97fa75739c1328fc6c3 - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/types@npm:7.23.6" - dependencies: - "@babel/helper-string-parser": ^7.23.4 - "@babel/helper-validator-identifier": ^7.22.20 - to-fast-properties: ^2.0.0 - checksum: 68187dbec0d637f79bc96263ac95ec8b06d424396678e7e225492be866414ce28ebc918a75354d4c28659be6efe30020b4f0f6df81cc418a2d30645b690a8de0 - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.19, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.23.9 - resolution: "@babel/types@npm:7.23.9" - dependencies: - "@babel/helper-string-parser": ^7.23.4 - "@babel/helper-validator-identifier": ^7.22.20 - to-fast-properties: ^2.0.0 - checksum: 0a9b008e9bfc89beb8c185e620fa0f8ed6c771f1e1b2e01e1596870969096fec7793898a1d64a035176abf1dd13e2668ee30bf699f2d92c210a8128f4b151e65 - languageName: node - linkType: hard - -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 - languageName: node - linkType: hard - -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" - dependencies: - "@jridgewell/trace-mapping": 0.3.9 - checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa - languageName: node - linkType: hard - -"@csstools/css-parser-algorithms@npm:^2.5.0": - version: 2.5.0 - resolution: "@csstools/css-parser-algorithms@npm:2.5.0" - peerDependencies: - "@csstools/css-tokenizer": ^2.2.3 - checksum: 6bfbdb4052acca48de9db0806a1b18458709103390656634ebe3cf0390048a6e9b304b78173fbcd524e03669dacb5cc3bedbe8008c354ff9511aed4935dcfc6f - languageName: node - linkType: hard - -"@csstools/css-tokenizer@npm:^2.2.3": - version: 2.2.3 - resolution: "@csstools/css-tokenizer@npm:2.2.3" - checksum: a2a69f0de516046f85b8f47916879780f9712bdda8166ab01dd47613515ff5a0771555c78badd220686bc1dae3cb0eea5de6896e1e326247a276cc8965520aa6 - languageName: node - linkType: hard - -"@csstools/media-query-list-parser@npm:^2.1.7": - version: 2.1.7 - resolution: "@csstools/media-query-list-parser@npm:2.1.7" - peerDependencies: - "@csstools/css-parser-algorithms": ^2.5.0 - "@csstools/css-tokenizer": ^2.2.3 - checksum: f910d9c29c84e828d121f451607fe9c275297041f317075ede935ffacdd7fd53fcbc0dd4993585e405b5337b7f991b864d101dff3cb8fc400e8c32a9aedbfe69 - languageName: node - linkType: hard - -"@csstools/selector-specificity@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/selector-specificity@npm:3.0.1" - peerDependencies: - postcss-selector-parser: ^6.0.13 - checksum: e4b5aac3bd3ca1f824cb9578f52b16046a519aa8050ce291da37e611976a83cd3b2b2f908d2678dd4cbbe00bbde8ec28c34fffc40dbbf9a13608dfcaf382ee80 - languageName: node - linkType: hard - -"@datamapper-poc/ui@workspace:packages/ui": - version: 0.0.0-use.local - resolution: "@datamapper-poc/ui@workspace:packages/ui" - dependencies: - "@babel/core": ^7.23.9 - "@babel/preset-env": ^7.23.9 - "@babel/preset-react": ^7.23.3 - "@babel/preset-typescript": ^7.23.3 - "@patternfly/react-core": ^5.1.2 - "@patternfly/react-table": ^5.1.2 - "@patternfly/react-topology": ^5.1.0 - "@storybook/addon-actions": ^7.6.12 - "@storybook/addon-knobs": ^7.0.2 - "@testing-library/jest-dom": ^6.3.0 - "@types/jest": ^29.5.12 - "@types/node": ^20.11.6 - "@types/pako": ^2.0.3 - "@types/react": ^18.2.53 - "@types/react-dom": ^18.2.18 - "@typescript-eslint/eslint-plugin": ^6.21.0 - "@typescript-eslint/parser": ^6.21.0 - "@vitejs/plugin-react": ^4.2.1 - d3-scale: ^4.0.2 - d3-shape: ^3.2.0 - eslint: ^8.56.0 - eslint-config-prettier: ^9.1.0 - eslint-plugin-import: ^2.29.1 - eslint-plugin-jest: ^27.6.3 - eslint-plugin-prettier: ^5.1.3 - eslint-plugin-react-hooks: ^4.6.0 - eslint-plugin-react-refresh: ^0.4.5 - fast-xml-parser: ^4.3.4 - file-saver: ^2.0.5 - jest: ^29.7.0 - jest-canvas-mock: ^2.5.2 - jest-environment-jsdom: ^29.7.0 - loglevel: ^1.9.1 - pako: ^2.1.0 - prettier: ^3.2.5 - react: ^18.2.0 - react-dnd: ^16.0.1 - react-dnd-html5-backend: ^16.0.1 - react-dnd-touch-backend: ^16.0.1 - react-dom: ^18.2.0 - react-sage: ^0.3.16 - react-use-gesture: ^9.1.3 - sass: ^1.70.0 - saxon-js: ^2.6.0 - stylelint: ^16.2.1 - stylelint-config-standard-scss: ^13.0.0 - stylelint-prettier: ^5.0.0 - ts-node: ^10.9.2 - typescript: ^5.3.3 - use-debounce: ^10.0.0 - vite: ^5.0.12 - languageName: unknown - linkType: soft - -"@emotion/babel-plugin@npm:^11.11.0": - version: 11.11.0 - resolution: "@emotion/babel-plugin@npm:11.11.0" - dependencies: - "@babel/helper-module-imports": ^7.16.7 - "@babel/runtime": ^7.18.3 - "@emotion/hash": ^0.9.1 - "@emotion/memoize": ^0.8.1 - "@emotion/serialize": ^1.1.2 - babel-plugin-macros: ^3.1.0 - convert-source-map: ^1.5.0 - escape-string-regexp: ^4.0.0 - find-root: ^1.1.0 - source-map: ^0.5.7 - stylis: 4.2.0 - checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9 - languageName: node - linkType: hard - -"@emotion/cache@npm:^11.11.0, @emotion/cache@npm:^11.4.0": - version: 11.11.0 - resolution: "@emotion/cache@npm:11.11.0" - dependencies: - "@emotion/memoize": ^0.8.1 - "@emotion/sheet": ^1.2.2 - "@emotion/utils": ^1.2.1 - "@emotion/weak-memoize": ^0.3.1 - stylis: 4.2.0 - checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 - languageName: node - linkType: hard - -"@emotion/hash@npm:^0.9.1": - version: 0.9.1 - resolution: "@emotion/hash@npm:0.9.1" - checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 - languageName: node - linkType: hard - -"@emotion/memoize@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/memoize@npm:0.8.1" - checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 - languageName: node - linkType: hard - -"@emotion/react@npm:^11.8.1": - version: 11.11.3 - resolution: "@emotion/react@npm:11.11.3" - dependencies: - "@babel/runtime": ^7.18.3 - "@emotion/babel-plugin": ^11.11.0 - "@emotion/cache": ^11.11.0 - "@emotion/serialize": ^1.1.3 - "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 - "@emotion/utils": ^1.2.1 - "@emotion/weak-memoize": ^0.3.1 - hoist-non-react-statics: ^3.3.1 - peerDependencies: - react: ">=16.8.0" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 2e4b223591569f0a41686d5bd72dc8778629b7be33267e4a09582979e6faee4d7218de84e76294ed827058d4384d75557b5d71724756539c1f235e9a69e62b2e - languageName: node - linkType: hard - -"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3": - version: 1.1.3 - resolution: "@emotion/serialize@npm:1.1.3" - dependencies: - "@emotion/hash": ^0.9.1 - "@emotion/memoize": ^0.8.1 - "@emotion/unitless": ^0.8.1 - "@emotion/utils": ^1.2.1 - csstype: ^3.0.2 - checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063 - languageName: node - linkType: hard - -"@emotion/sheet@npm:^1.2.2": - version: 1.2.2 - resolution: "@emotion/sheet@npm:1.2.2" - checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe - languageName: node - linkType: hard - -"@emotion/unitless@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/unitless@npm:0.8.1" - checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 - languageName: node - linkType: hard - -"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": - version: 1.0.1 - resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" - peerDependencies: - react: ">=16.8.0" - checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 - languageName: node - linkType: hard - -"@emotion/utils@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/utils@npm:1.2.1" - checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 - languageName: node - linkType: hard - -"@emotion/weak-memoize@npm:^0.3.1": - version: 0.3.1 - resolution: "@emotion/weak-memoize@npm:0.3.1" - checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 - languageName: node - linkType: hard - -"@esbuild/aix-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/aix-ppc64@npm:0.19.12" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm64@npm:0.19.12" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm@npm:0.19.12" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-x64@npm:0.19.12" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-arm64@npm:0.19.12" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-x64@npm:0.19.12" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-arm64@npm:0.19.12" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-x64@npm:0.19.12" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm64@npm:0.19.12" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm@npm:0.19.12" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ia32@npm:0.19.12" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-loong64@npm:0.19.12" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-mips64el@npm:0.19.12" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ppc64@npm:0.19.12" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-riscv64@npm:0.19.12" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-s390x@npm:0.19.12" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-x64@npm:0.19.12" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/netbsd-x64@npm:0.19.12" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/openbsd-x64@npm:0.19.12" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/sunos-x64@npm:0.19.12" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-arm64@npm:0.19.12" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-ia32@npm:0.19.12" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-x64@npm:0.19.12" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: ^3.3.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" - dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 - languageName: node - linkType: hard - -"@eslint/js@npm:8.56.0": - version: 8.56.0 - resolution: "@eslint/js@npm:8.56.0" - checksum: 5804130574ef810207bdf321c265437814e7a26f4e6fac9b496de3206afd52f533e09ec002a3be06cd9adcc9da63e727f1883938e663c4e4751c007d5b58e539 - languageName: node - linkType: hard - -"@floating-ui/core@npm:^1.6.0": - version: 1.6.0 - resolution: "@floating-ui/core@npm:1.6.0" - dependencies: - "@floating-ui/utils": ^0.2.1 - checksum: 2e25c53b0c124c5c9577972f8ae21d081f2f7895e6695836a53074463e8c65b47722744d6d2b5a993164936da006a268bcfe87fe68fd24dc235b1cb86bed3127 - languageName: node - linkType: hard - -"@floating-ui/dom@npm:^1.0.1": - version: 1.6.1 - resolution: "@floating-ui/dom@npm:1.6.1" - dependencies: - "@floating-ui/core": ^1.6.0 - "@floating-ui/utils": ^0.2.1 - checksum: 5565e4dee612bab62950913c311d75d3f773bd1d9dc437f7e33b46340f32ec565733c995c6185381adaf64e627df3c79901d0a9d555f58c02509d0764bceb57d - languageName: node - linkType: hard - -"@floating-ui/utils@npm:^0.2.1": - version: 0.2.1 - resolution: "@floating-ui/utils@npm:0.2.1" - checksum: 9ed4380653c7c217cd6f66ae51f20fdce433730dbc77f95b5abfb5a808f5fdb029c6ae249b4e0490a816f2453aa6e586d9a873cd157fdba4690f65628efc6e06 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.11.13": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": ^2.0.2 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.2 - resolution: "@humanwhocodes/object-schema@npm:2.0.2" - checksum: 2fc11503361b5fb4f14714c700c02a3f4c7c93e9acd6b87a29f62c522d90470f364d6161b03d1cc618b979f2ae02aed1106fd29d302695d8927e2fc8165ba8ee - languageName: node - linkType: hard - -"@hutson/parse-repository-url@npm:^5.0.0": - version: 5.0.0 - resolution: "@hutson/parse-repository-url@npm:5.0.0" - checksum: 8adce66fd62e339382191f32a90708fab4c65560124b67a06262c57815706944a2f894d33f9bd8dd97180fd80accc0c3d1d5b5138ab86ed10ee071cb487d5983 - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: ^5.1.2 - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb - languageName: node - linkType: hard - -"@isaacs/string-locale-compare@npm:^1.1.0": - version: 1.1.0 - resolution: "@isaacs/string-locale-compare@npm:1.1.0" - checksum: 7287da5d11497b82c542d3c2abe534808015be4f4883e71c26853277b5456f6bbe4108535db847a29f385ad6dc9318ffb0f55ee79bb5f39993233d7dccf8751d - languageName: node - linkType: hard - -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 - languageName: node - linkType: hard - -"@jest/console@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/console@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 - languageName: node - linkType: hard - -"@jest/core@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/core@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/reporters": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^29.7.0 - jest-config: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-resolve-dependencies: ^29.7.0 - jest-runner: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - jest-watcher: ^29.7.0 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d - languageName: node - linkType: hard - -"@jest/environment@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/environment@npm:29.7.0" - dependencies: - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 - languageName: node - linkType: hard - -"@jest/expect-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect-utils@npm:29.7.0" - dependencies: - jest-get-type: ^29.6.3 - checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed - languageName: node - linkType: hard - -"@jest/expect@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect@npm:29.7.0" - dependencies: - expect: ^29.7.0 - jest-snapshot: ^29.7.0 - checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/fake-timers@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@sinonjs/fake-timers": ^10.0.2 - "@types/node": "*" - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 - languageName: node - linkType: hard - -"@jest/globals@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/globals@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/types": ^29.6.3 - jest-mock: ^29.7.0 - checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 - languageName: node - linkType: hard - -"@jest/reporters@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/reporters@npm:29.7.0" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^6.0.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - slash: ^3.0.0 - string-length: ^4.0.1 - strip-ansi: ^6.0.0 - v8-to-istanbul: ^9.0.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 - languageName: node - linkType: hard - -"@jest/schemas@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/schemas@npm:29.6.3" - dependencies: - "@sinclair/typebox": ^0.27.8 - checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 - languageName: node - linkType: hard - -"@jest/source-map@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/source-map@npm:29.6.3" - dependencies: - "@jridgewell/trace-mapping": ^0.3.18 - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb - languageName: node - linkType: hard - -"@jest/test-result@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-result@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-sequencer@npm:29.7.0" - dependencies: - "@jest/test-result": ^29.7.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - slash: ^3.0.0 - checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd - languageName: node - linkType: hard - -"@jest/transform@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/transform@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - babel-plugin-istanbul: ^6.1.1 - chalk: ^4.0.0 - convert-source-map: ^2.0.0 - fast-json-stable-stringify: ^2.1.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - micromatch: ^4.0.4 - pirates: ^4.0.4 - slash: ^3.0.0 - write-file-atomic: ^4.0.2 - checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab - languageName: node - linkType: hard - -"@jest/types@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/types@npm:29.6.3" - dependencies: - "@jest/schemas": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.3 - resolution: "@jridgewell/gen-mapping@npm:0.3.3" - dependencies: - "@jridgewell/set-array": ^1.0.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.1 - resolution: "@jridgewell/resolve-uri@npm:3.1.1" - checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.22 - resolution: "@jridgewell/trace-mapping@npm:0.3.22" - dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: ac7dd2cfe0b479aa1b81776d40d789243131cc792dc8b6b6a028c70fcd6171958ae1a71bf67b618ffe3c0c3feead9870c095ee46a5e30319410d92976b28f498 - languageName: node - linkType: hard - -"@lerna-lite/cli@npm:3.3.0, @lerna-lite/cli@npm:^3.0.0": - version: 3.3.0 - resolution: "@lerna-lite/cli@npm:3.3.0" - dependencies: - "@lerna-lite/core": 3.3.0 - "@lerna-lite/init": 3.3.0 - dedent: ^1.5.1 - dotenv: ^16.4.1 - import-local: ^3.1.0 - load-json-file: ^7.0.1 - npmlog: ^7.0.1 - yargs: ^17.7.2 - peerDependenciesMeta: - "@lerna-lite/exec": - optional: true - "@lerna-lite/list": - optional: true - "@lerna-lite/publish": - optional: true - "@lerna-lite/run": - optional: true - "@lerna-lite/version": - optional: true - "@lerna-lite/watch": - optional: true - bin: - lerna: dist/cli.js - checksum: 60cd5d035429e84afc40aef6742fb9ea214d9325b140559362b31e42f46bcf25219cda4042a71205121fb48cd8331762e49dca1d4f9f3e148981f144d0fe4786 - languageName: node - linkType: hard - -"@lerna-lite/core@npm:3.3.0": - version: 3.3.0 - resolution: "@lerna-lite/core@npm:3.3.0" - dependencies: - "@npmcli/run-script": ^7.0.4 - chalk: ^5.3.0 - clone-deep: ^4.0.1 - config-chain: ^1.1.13 - cosmiconfig: ^9.0.0 - dedent: ^1.5.1 - execa: ^8.0.1 - fs-extra: ^11.2.0 - glob-parent: ^6.0.2 - globby: ^14.0.0 - inquirer: ^9.2.14 - is-ci: ^3.0.1 - json5: ^2.2.3 - load-json-file: ^7.0.1 - minimatch: ^9.0.3 - npm-package-arg: ^11.0.1 - npmlog: ^7.0.1 - p-map: ^7.0.1 - p-queue: ^8.0.1 - resolve-from: ^5.0.0 - semver: ^7.6.0 - slash: ^5.1.0 - strong-log-transformer: ^2.1.0 - write-file-atomic: ^5.0.1 - write-json-file: ^5.0.0 - write-pkg: ^6.0.1 - checksum: 4939cc51f712ee00630d499b62265ed05f7c5a193c03484b50674066cb3337547b83cfc61181cf51860dd2171db00ab3ba34831b00f8af11b2c1c5dc0272278f - languageName: node - linkType: hard - -"@lerna-lite/init@npm:3.3.0": - version: 3.3.0 - resolution: "@lerna-lite/init@npm:3.3.0" - dependencies: - "@lerna-lite/core": 3.3.0 - fs-extra: ^11.2.0 - p-map: ^7.0.1 - write-json-file: ^5.0.0 - checksum: c23db113e0ca89bb5ce533ea65e5f27cd5b2f2ec5bf0dd37433a453695cda9a0ba6ccc9630a81df4a276ff4ab76d5571c7210e523c8cef2e4b0fde89b146bd93 - languageName: node - linkType: hard - -"@lerna-lite/publish@npm:^3.0.0": - version: 3.3.0 - resolution: "@lerna-lite/publish@npm:3.3.0" - dependencies: - "@lerna-lite/cli": 3.3.0 - "@lerna-lite/core": 3.3.0 - "@lerna-lite/version": 3.3.0 - "@npmcli/arborist": ^7.3.1 - byte-size: ^8.1.1 - chalk: ^5.3.0 - columnify: ^1.6.0 - fs-extra: ^11.2.0 - glob: ^10.3.10 - has-unicode: ^2.0.1 - libnpmaccess: ^8.0.2 - libnpmpublish: ^9.0.4 - normalize-path: ^3.0.0 - npm-package-arg: ^11.0.1 - npm-packlist: ^8.0.2 - npm-registry-fetch: ^16.1.0 - npmlog: ^7.0.1 - p-map: ^7.0.1 - p-pipe: ^4.0.0 - pacote: ^17.0.6 - pify: ^6.1.0 - read-package-json: ^7.0.0 - semver: ^7.6.0 - ssri: ^10.0.5 - tar: ^6.2.0 - temp-dir: ^3.0.0 - checksum: 3fe1f90b7822aaa8af0e644f6885bfcd81ba9272f6d182c956cea4f2f8ca757bcf72022666e8dcd0b6071d142dd5ddd6ae933c626493de051bea0e899c4891be - languageName: node - linkType: hard - -"@lerna-lite/version@npm:3.3.0, @lerna-lite/version@npm:^3.0.0": - version: 3.3.0 - resolution: "@lerna-lite/version@npm:3.3.0" - dependencies: - "@lerna-lite/cli": 3.3.0 - "@lerna-lite/core": 3.3.0 - "@octokit/plugin-enterprise-rest": ^6.0.1 - "@octokit/rest": ^20.0.2 - chalk: ^5.3.0 - conventional-changelog-angular: ^7.0.0 - conventional-changelog-core: ^7.0.0 - conventional-changelog-writer: ^7.0.1 - conventional-commits-parser: ^5.0.0 - conventional-recommended-bump: ^9.0.0 - dedent: ^1.5.1 - fs-extra: ^11.2.0 - get-stream: ^8.0.1 - git-url-parse: ^14.0.0 - graceful-fs: ^4.2.11 - is-stream: ^3.0.0 - load-json-file: ^7.0.1 - make-dir: ^4.0.0 - minimatch: ^9.0.3 - new-github-release-url: ^2.0.0 - node-fetch: ^3.3.2 - npm-package-arg: ^11.0.1 - npmlog: ^7.0.1 - p-map: ^7.0.1 - p-pipe: ^4.0.0 - p-reduce: ^3.0.0 - pify: ^6.1.0 - semver: ^7.6.0 - slash: ^5.1.0 - temp-dir: ^3.0.0 - uuid: ^9.0.1 - write-json-file: ^5.0.0 - checksum: 480f5ae58b4d74fc10702fa877d8f75838110daae82d483ba2b02783b020c550b47f3f912a916d190e5f85735f0646ee76a989c51cc1e0b270ba1a60542adfe2 - languageName: node - linkType: hard - -"@ljharb/through@npm:^2.3.12": - version: 2.3.12 - resolution: "@ljharb/through@npm:2.3.12" - dependencies: - call-bind: ^1.0.5 - checksum: d5a78568cd3025c03264a9f9c61b30511d27cb9611fae7575cb1339a1baa1a263b6af03e28505b821324f3c6285086ee5add612b8b0155d1f253ed5159cd3f56 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.0 - resolution: "@npmcli/agent@npm:2.2.0" - dependencies: - agent-base: ^7.1.0 - http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.1 - lru-cache: ^10.0.1 - socks-proxy-agent: ^8.0.1 - checksum: 3b25312edbdfaa4089af28e2d423b6f19838b945e47765b0c8174c1395c79d43c3ad6d23cb364b43f59fd3acb02c93e3b493f72ddbe3dfea04c86843a7311fc4 - languageName: node - linkType: hard - -"@npmcli/arborist@npm:^7.3.1": - version: 7.3.1 - resolution: "@npmcli/arborist@npm:7.3.1" - dependencies: - "@isaacs/string-locale-compare": ^1.1.0 - "@npmcli/fs": ^3.1.0 - "@npmcli/installed-package-contents": ^2.0.2 - "@npmcli/map-workspaces": ^3.0.2 - "@npmcli/metavuln-calculator": ^7.0.0 - "@npmcli/name-from-folder": ^2.0.0 - "@npmcli/node-gyp": ^3.0.0 - "@npmcli/package-json": ^5.0.0 - "@npmcli/query": ^3.0.1 - "@npmcli/run-script": ^7.0.2 - bin-links: ^4.0.1 - cacache: ^18.0.0 - common-ancestor-path: ^1.0.1 - hosted-git-info: ^7.0.1 - json-parse-even-better-errors: ^3.0.0 - json-stringify-nice: ^1.1.4 - minimatch: ^9.0.0 - nopt: ^7.0.0 - npm-install-checks: ^6.2.0 - npm-package-arg: ^11.0.1 - npm-pick-manifest: ^9.0.0 - npm-registry-fetch: ^16.0.0 - npmlog: ^7.0.1 - pacote: ^17.0.4 - parse-conflict-json: ^3.0.0 - proc-log: ^3.0.0 - promise-all-reject-late: ^1.0.0 - promise-call-limit: ^3.0.1 - read-package-json-fast: ^3.0.2 - semver: ^7.3.7 - ssri: ^10.0.5 - treeverse: ^3.0.0 - walk-up-path: ^3.0.1 - bin: - arborist: bin/index.js - checksum: 3fa39e73893be4fc7ec88259c8e8540f374cf1fe8b38715433e295f957812076c00b297ccda49565c030529e0f2fa6c90de401c922983c54a211c695f6c67694 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/fs@npm:3.1.0" - dependencies: - semver: ^7.3.5 - checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e - languageName: node - linkType: hard - -"@npmcli/git@npm:^5.0.0": - version: 5.0.4 - resolution: "@npmcli/git@npm:5.0.4" - dependencies: - "@npmcli/promise-spawn": ^7.0.0 - lru-cache: ^10.0.1 - npm-pick-manifest: ^9.0.0 - proc-log: ^3.0.0 - promise-inflight: ^1.0.1 - promise-retry: ^2.0.1 - semver: ^7.3.5 - which: ^4.0.0 - checksum: 3c4adb7294eb7562cb0d908f36e1967ae6bde438192affd7f103cdeebbd9b2d83cd6b41b7db2278c9acd934c4af138baa094544e8e8a530b515c4084438d0170 - languageName: node - linkType: hard - -"@npmcli/installed-package-contents@npm:^2.0.1, @npmcli/installed-package-contents@npm:^2.0.2": - version: 2.0.2 - resolution: "@npmcli/installed-package-contents@npm:2.0.2" - dependencies: - npm-bundled: ^3.0.0 - npm-normalize-package-bin: ^3.0.0 - bin: - installed-package-contents: lib/index.js - checksum: 60789d5ed209ee5df479232f62d9d38ecec36e95701cae88320b828b8651351b32d7b47d16d4c36cc7ce5000db4bf1f3e6981bed6381bdc5687ff4bc0795682d - languageName: node - linkType: hard - -"@npmcli/map-workspaces@npm:^3.0.2": - version: 3.0.4 - resolution: "@npmcli/map-workspaces@npm:3.0.4" - dependencies: - "@npmcli/name-from-folder": ^2.0.0 - glob: ^10.2.2 - minimatch: ^9.0.0 - read-package-json-fast: ^3.0.0 - checksum: 99607dbc502b16d0ce7a47a81ccc496b3f5ed10df4e61e61a505929de12c356092996044174ae0cfd6d8cc177ef3b597eef4987b674fc0c5a306d3a8cc1fe91a - languageName: node - linkType: hard - -"@npmcli/metavuln-calculator@npm:^7.0.0": - version: 7.0.0 - resolution: "@npmcli/metavuln-calculator@npm:7.0.0" - dependencies: - cacache: ^18.0.0 - json-parse-even-better-errors: ^3.0.0 - pacote: ^17.0.0 - semver: ^7.3.5 - checksum: 653448528b8d1a1f10314e3cf04ccb76c77ccbdf3afc61ca4b790e01788ebb552839082258149619c0aa7cf745660c40e21e7ca86123580819490082d0c762ed - languageName: node - linkType: hard - -"@npmcli/name-from-folder@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/name-from-folder@npm:2.0.0" - checksum: fb3ef891aa57315fb6171866847f298577c8bda98a028e93e458048477133e142b4eb45ce9f3b80454f7c257612cb01754ee782d608507698dd712164436f5bd - languageName: node - linkType: hard - -"@npmcli/node-gyp@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/node-gyp@npm:3.0.0" - checksum: fe3802b813eecb4ade7ad77c9396cb56721664275faab027e3bd8a5e15adfbbe39e2ecc19f7885feb3cfa009b96632741cc81caf7850ba74440c6a2eee7b4ffc - languageName: node - linkType: hard - -"@npmcli/package-json@npm:^5.0.0": - version: 5.0.0 - resolution: "@npmcli/package-json@npm:5.0.0" - dependencies: - "@npmcli/git": ^5.0.0 - glob: ^10.2.2 - hosted-git-info: ^7.0.0 - json-parse-even-better-errors: ^3.0.0 - normalize-package-data: ^6.0.0 - proc-log: ^3.0.0 - semver: ^7.5.3 - checksum: 0d128e84e05e8a1771c8cc1f4232053fecf32e28f44e123ad16366ca3a7fd06f272f25f0b7d058f2763cab26bc479c8fc3c570af5de6324b05cb39868dcc6264 - languageName: node - linkType: hard - -"@npmcli/promise-spawn@npm:^7.0.0": - version: 7.0.1 - resolution: "@npmcli/promise-spawn@npm:7.0.1" - dependencies: - which: ^4.0.0 - checksum: a2b25d66d4dc835c69593bdf56588d66299fde3e80be4978347e686f24647007b794ce4da4cfcfcc569c67112720b746c4e7bf18ce45c096712d8b75fed19ec7 - languageName: node - linkType: hard - -"@npmcli/query@npm:^3.0.1": - version: 3.0.1 - resolution: "@npmcli/query@npm:3.0.1" - dependencies: - postcss-selector-parser: ^6.0.10 - checksum: b169b9c9a37c5a6e68d61604c7e3175ebdefbc3a77a8981326eaa8fa89cf4044fc6a87bd0fdbe5d096eda2f765aff1477924b55f4e23f64b3143dd1d9004eead - languageName: node - linkType: hard - -"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.2, @npmcli/run-script@npm:^7.0.4": - version: 7.0.4 - resolution: "@npmcli/run-script@npm:7.0.4" - dependencies: - "@npmcli/node-gyp": ^3.0.0 - "@npmcli/package-json": ^5.0.0 - "@npmcli/promise-spawn": ^7.0.0 - node-gyp: ^10.0.0 - which: ^4.0.0 - checksum: c44d6874cffb0a2f6d947e230083b605b6f253450e24aa185ef28391dc366b10807cd4ca113fe367057b8b5310add36391894f9d782af15424830658ee386dfb - languageName: node - linkType: hard - -"@octokit/auth-token@npm:^4.0.0": - version: 4.0.0 - resolution: "@octokit/auth-token@npm:4.0.0" - checksum: d78f4dc48b214d374aeb39caec4fdbf5c1e4fd8b9fcb18f630b1fe2cbd5a880fca05445f32b4561f41262cb551746aeb0b49e89c95c6dd99299706684d0cae2f - languageName: node - linkType: hard - -"@octokit/core@npm:^5.0.0": - version: 5.1.0 - resolution: "@octokit/core@npm:5.1.0" - dependencies: - "@octokit/auth-token": ^4.0.0 - "@octokit/graphql": ^7.0.0 - "@octokit/request": ^8.0.2 - "@octokit/request-error": ^5.0.0 - "@octokit/types": ^12.0.0 - before-after-hook: ^2.2.0 - universal-user-agent: ^6.0.0 - checksum: 170d16f5577df484116238ce04e2dbd6b45d8e96b4680fee657ae22fcafb311af8df8a14ae80610f41c1a85493c927910698019a761914ff4b0323ddbabcc9a4 - languageName: node - linkType: hard - -"@octokit/endpoint@npm:^9.0.0": - version: 9.0.4 - resolution: "@octokit/endpoint@npm:9.0.4" - dependencies: - "@octokit/types": ^12.0.0 - universal-user-agent: ^6.0.0 - checksum: ed1b64a448f478e5951a043ef816d634a5a1f584519cbf2f374ceac058f82a16e52f078f156aa8b8cbcab7b0590348d94294fc83c9b4eebd42a820a5f10db81c - languageName: node - linkType: hard - -"@octokit/graphql@npm:^7.0.0": - version: 7.0.2 - resolution: "@octokit/graphql@npm:7.0.2" - dependencies: - "@octokit/request": ^8.0.1 - "@octokit/types": ^12.0.0 - universal-user-agent: ^6.0.0 - checksum: 05a752c4c2d84fc2900d8e32e1c2d1ee98a5a14349e651cb1109d0741e821e7417a048b1bb40918534ed90a472314aabbda35688868016f248098925f82a3bfa - languageName: node - linkType: hard - -"@octokit/openapi-types@npm:^19.1.0": - version: 19.1.0 - resolution: "@octokit/openapi-types@npm:19.1.0" - checksum: 9d1b188741609a9832b964df2bc337ee77c1fc89d5f686faebb743c7cb27721e214180d623ee28227427b4c43719b79ee4890e338a709b78a9f249a7c369ac3e - languageName: node - linkType: hard - -"@octokit/plugin-enterprise-rest@npm:^6.0.1": - version: 6.0.1 - resolution: "@octokit/plugin-enterprise-rest@npm:6.0.1" - checksum: 1c9720002f31daf62f4f48e73557dcdd7fcde6e0f6d43256e3f2ec827b5548417297186c361fb1af497fdcc93075a7b681e6ff06e2f20e4a8a3e74cc09d1f7e3 - languageName: node - linkType: hard - -"@octokit/plugin-paginate-rest@npm:^9.0.0": - version: 9.1.5 - resolution: "@octokit/plugin-paginate-rest@npm:9.1.5" - dependencies: - "@octokit/types": ^12.4.0 - peerDependencies: - "@octokit/core": ">=5" - checksum: ee5bc62e3175b61fdd3e65cc26410e1130931e729591003b302167cb02d0cec0746fd58220800d07de179e36077b9d675c794d0859457b701a7692b9fcde49a0 - languageName: node - linkType: hard - -"@octokit/plugin-request-log@npm:^4.0.0": - version: 4.0.0 - resolution: "@octokit/plugin-request-log@npm:4.0.0" - peerDependencies: - "@octokit/core": ">=5" - checksum: 2a8a6619640942092009a9248ceeb163ce01c978e2d7b2a7eb8686bd09a04b783c4cd9071eebb16652d233587abcde449a02ce4feabc652f0a171615fb3e9946 - languageName: node - linkType: hard - -"@octokit/plugin-rest-endpoint-methods@npm:^10.0.0": - version: 10.2.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.2.0" - dependencies: - "@octokit/types": ^12.3.0 - peerDependencies: - "@octokit/core": ">=5" - checksum: 3209688bf508d22a525fe32d632ff928b048688c1859c7e4bbb08bd181aa07f580b375a502e34368628103e5d5cccf7f9fb0ff0c8fd4262470ac8eeffb80ac6b - languageName: node - linkType: hard - -"@octokit/request-error@npm:^5.0.0": - version: 5.0.1 - resolution: "@octokit/request-error@npm:5.0.1" - dependencies: - "@octokit/types": ^12.0.0 - deprecation: ^2.0.0 - once: ^1.4.0 - checksum: a681341e43b4da7a8acb19e1a6ba0355b1af146fa0191f2554a98950cf85f898af6ae3ab0b0287d6c871f5465ec57cb38363b96b5019f9f77ba6f30eca39ede5 - languageName: node - linkType: hard - -"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2": - version: 8.1.6 - resolution: "@octokit/request@npm:8.1.6" - dependencies: - "@octokit/endpoint": ^9.0.0 - "@octokit/request-error": ^5.0.0 - "@octokit/types": ^12.0.0 - universal-user-agent: ^6.0.0 - checksum: df90204586ee7db5adf69c3007c5d9c0a866de488c9ba8756f98083208726ed360d5a541e68204c413fa10e6f17e171dc9868b18768b9799df0003bc84c59cf2 - languageName: node - linkType: hard - -"@octokit/rest@npm:^20.0.2": - version: 20.0.2 - resolution: "@octokit/rest@npm:20.0.2" - dependencies: - "@octokit/core": ^5.0.0 - "@octokit/plugin-paginate-rest": ^9.0.0 - "@octokit/plugin-request-log": ^4.0.0 - "@octokit/plugin-rest-endpoint-methods": ^10.0.0 - checksum: 5c56ac23f063a5375ae5a0609e6477d90afac872eccd07002870f9dd62755037282a74c15c90c848b76b64ea4b5af52f32720b8a1b7b133e758118d11d2c0e34 - languageName: node - linkType: hard - -"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.3.0, @octokit/types@npm:^12.4.0": - version: 12.4.0 - resolution: "@octokit/types@npm:12.4.0" - dependencies: - "@octokit/openapi-types": ^19.1.0 - checksum: 17bca450efc5433f14e1f93a24232316a0fb490aec8d886c3a430e853f10a74e6664751a44e0e199336b23c20658c4afcb3590e422ba7c155c2cb31f433ebbb7 - languageName: node - linkType: hard - -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0": - version: 5.2.0 - resolution: "@patternfly/react-core@npm:5.2.0" - dependencies: - "@patternfly/react-icons": ^5.2.0 - "@patternfly/react-styles": ^5.2.0 - "@patternfly/react-tokens": ^5.2.0 - focus-trap: 7.5.2 - react-dropzone: ^14.2.3 - tslib: ^2.5.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 78a67e72c6180ec330c8a22ff990d855739195de41d96c0c52523354641345390bd295ba2ee1a14dd881b368d5b6d0a40edafe74b063f1ec0da78443e07cbe0c - languageName: node - linkType: hard - -"@patternfly/react-icons@npm:^5.1.1": - version: 5.1.2 - resolution: "@patternfly/react-icons@npm:5.1.2" - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 67bc3c291f5b01f949e29b03f65079c4fe996710cee766e2c696ab7b31cd4370b6960ba40f782a6e401efc635a0389b9402368fefe7d5cebe85a560af9450801 - languageName: node - linkType: hard - -"@patternfly/react-icons@npm:^5.2.0": - version: 5.2.0 - resolution: "@patternfly/react-icons@npm:5.2.0" - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: c33b7bb4d5760bbade5b989319dad4425ec13f9fbf7c7dc34924c29186798270ce3bc2cc566cc2169e695152a31afc6623bf96de7ad6d258a15e044f2dd654aa - languageName: node - linkType: hard - -"@patternfly/react-styles@npm:^5.1.1": - version: 5.1.2 - resolution: "@patternfly/react-styles@npm:5.1.2" - checksum: 49f0f05744a94cb4ba9aa071807efb9beb804a532a97a78ca60b567c3f65262456e997c18a480ad8823684a248a2af4cc873ccae703ab77b081184296dcef2c3 - languageName: node - linkType: hard - -"@patternfly/react-styles@npm:^5.2.0": - version: 5.2.0 - resolution: "@patternfly/react-styles@npm:5.2.0" - checksum: ab38211d265c5fdcebf1c6d10503cca3fa87e7f5021021a61e0b1cf320f6f906eb7ae4279b5d7767cd657ddea4659d74b072b100416f8c6dfb485d4d31a3dc76 - languageName: node - linkType: hard - -"@patternfly/react-table@npm:^5.1.2": - version: 5.2.0 - resolution: "@patternfly/react-table@npm:5.2.0" - dependencies: - "@patternfly/react-core": ^5.2.0 - "@patternfly/react-icons": ^5.2.0 - "@patternfly/react-styles": ^5.2.0 - "@patternfly/react-tokens": ^5.2.0 - lodash: ^4.17.19 - tslib: ^2.5.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: d7a83c4baaf71ad7273be58f94fad0654f32ac0767d4a94711a36e2bfd7e93f0ce9b61adb57ff368a3176b3e0c1aae06c42c255a39a8fbad7721141104c0dcf2 - languageName: node - linkType: hard - -"@patternfly/react-tokens@npm:^5.2.0": - version: 5.2.0 - resolution: "@patternfly/react-tokens@npm:5.2.0" - checksum: cdb42955cfafe1a9b7adcb9d38258092126a85e08624b081b6cd10ea422d890c7786797dfa151a8213e5d394377c6cd85f86fbf5e425a2e813baff175ba2509a - languageName: node - linkType: hard - -"@patternfly/react-topology@npm:^5.1.0": - version: 5.2.1 - resolution: "@patternfly/react-topology@npm:5.2.1" - dependencies: - "@patternfly/react-core": ^5.1.1 - "@patternfly/react-icons": ^5.1.1 - "@patternfly/react-styles": ^5.1.1 - "@types/d3": ^7.4.0 - "@types/d3-force": ^1.2.1 - "@types/dagre": 0.7.42 - "@types/react-measure": ^2.0.6 - d3: ^7.8.0 - dagre: 0.8.2 - lodash: ^4.17.19 - mobx: ^6.9.0 - mobx-react: ^7.6.0 - point-in-svg-path: ^1.0.1 - popper.js: ^1.16.1 - react-measure: ^2.3.0 - tslib: ^2.0.0 - webcola: 3.4.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 91dd662a42a21b717cbce815f2305ec9957cc3a013f42591be9a7bac704eba7ff5eba2113736253255b4f8821380d32a0cf84eb04203068f048d66cf189c468b - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f - languageName: node - linkType: hard - -"@pkgr/core@npm:^0.1.0": - version: 0.1.1 - resolution: "@pkgr/core@npm:0.1.1" - checksum: 6f25fd2e3008f259c77207ac9915b02f1628420403b2630c92a07ff963129238c9262afc9e84344c7a23b5cc1f3965e2cd17e3798219f5fd78a63d144d3cceba - languageName: node - linkType: hard - -"@react-dnd/asap@npm:^5.0.1": - version: 5.0.2 - resolution: "@react-dnd/asap@npm:5.0.2" - checksum: 18f040e53512983f11c542ef21e6e4cac605d585a10cd764b13bc1b2f3ac7490e0fa40503adc348d8387aa45bc8e7eebe9cb33003b960a30bb5fde666ff2adde - languageName: node - linkType: hard - -"@react-dnd/invariant@npm:^4.0.1": - version: 4.0.2 - resolution: "@react-dnd/invariant@npm:4.0.2" - checksum: 594f6d78896c19bb8f023e101334fd91a9fdff686117bd8e830ba53737ec0a6042dab66971d3d63c7afbc622103909aff7a64c5c6767e0aa8d9561fd42705016 - languageName: node - linkType: hard - -"@react-dnd/shallowequal@npm:^4.0.1": - version: 4.0.2 - resolution: "@react-dnd/shallowequal@npm:4.0.2" - checksum: 7f21d691bddbfd4d2830948cbeefecca1600b2b46bcb1934926795f07ae8a1fa60a3dfd3a2112be5ef682c3820c80a99711e9fa15843f7e300acb25a4ecb70ab - languageName: node - linkType: hard - -"@rollup/rollup-android-arm-eabi@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.6" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-android-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm64@npm:4.9.6" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-arm64@npm:4.9.6" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-x64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-x64@npm:4.9.6" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.6" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.6" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.6" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.6" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.6" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-win32-arm64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.6" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-ia32-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.6" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@rollup/rollup-win32-x64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.6" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@sigstore/bundle@npm:^2.1.1": - version: 2.1.1 - resolution: "@sigstore/bundle@npm:2.1.1" - dependencies: - "@sigstore/protobuf-specs": ^0.2.1 - checksum: c441904765e94710288f3fcf0458f2544a9b480b239219eb738f11bddb2518a5dc5b4a3f8ca22884d7948f1034d4b802ce74a4d21517a35b7ac52970f78971f0 - languageName: node - linkType: hard - -"@sigstore/core@npm:^0.2.0": - version: 0.2.0 - resolution: "@sigstore/core@npm:0.2.0" - checksum: e3226bcb8edf663001f11b6ac45190d21a9583a6bc7b6823deae171138a4f39fd1467f9c444f198e4e5930b4cf623035f5ebd0d9a864973818968977ecadb007 - languageName: node - linkType: hard - -"@sigstore/protobuf-specs@npm:^0.2.1": - version: 0.2.1 - resolution: "@sigstore/protobuf-specs@npm:0.2.1" - checksum: ddb7c829c7bf4148eccb571ede07cf9fda62f46b7b4d3a5ca02c0308c950ee90b4206b61082ee8d5753f24098632a8b24c147117bef8c68791bf5da537b55db9 - languageName: node - linkType: hard - -"@sigstore/sign@npm:^2.2.1": - version: 2.2.1 - resolution: "@sigstore/sign@npm:2.2.1" - dependencies: - "@sigstore/bundle": ^2.1.1 - "@sigstore/core": ^0.2.0 - "@sigstore/protobuf-specs": ^0.2.1 - make-fetch-happen: ^13.0.0 - checksum: 198d6c0c0f1b1ff21546289478d26f9068ed7ead95f104bda1bdda8b2ce48393e784660a2c2d9ec1afe91260347ad677862493f1a80ca28e82b557cab219cc71 - languageName: node - linkType: hard - -"@sigstore/tuf@npm:^2.3.0": - version: 2.3.0 - resolution: "@sigstore/tuf@npm:2.3.0" - dependencies: - "@sigstore/protobuf-specs": ^0.2.1 - tuf-js: ^2.2.0 - checksum: 77ed2931c4e80b13310ccb1f57623bdf20b8c1d1760a07ed2f0b6c31aeed799cb839646f688c7cc3be05e05f7cf25acce18d90a864774ce768834a6e9017deef - languageName: node - linkType: hard - -"@sigstore/verify@npm:^0.1.0": - version: 0.1.0 - resolution: "@sigstore/verify@npm:0.1.0" - dependencies: - "@sigstore/bundle": ^2.1.1 - "@sigstore/core": ^0.2.0 - "@sigstore/protobuf-specs": ^0.2.1 - checksum: ddcd3482de4b9b01376b077574db05efa641fb26e9e9cd7cb9340e13767f6b1b39cbca47d80f2b5eacea88f49b99bcac957ff154c5c15461702f8c0f77d23541 - languageName: node - linkType: hard - -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 - languageName: node - linkType: hard - -"@sindresorhus/merge-streams@npm:^1.0.0": - version: 1.0.0 - resolution: "@sindresorhus/merge-streams@npm:1.0.0" - checksum: 453c2a28164113a5ec4fd23ba636e291a4112f6ee9e91cd5476b9a96e0fc9ee5ff40d405fe81bbf284c9773b7ed718a3a0f31df7895a0efd413b1f9775d154fe - languageName: node - linkType: hard - -"@sinonjs/commons@npm:^3.0.0": - version: 3.0.1 - resolution: "@sinonjs/commons@npm:3.0.1" - dependencies: - type-detect: 4.0.8 - checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" - dependencies: - "@sinonjs/commons": ^3.0.0 - checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 - languageName: node - linkType: hard - -"@storybook/addon-actions@npm:^7.6.12": - version: 7.6.15 - resolution: "@storybook/addon-actions@npm:7.6.15" - dependencies: - "@storybook/core-events": 7.6.15 - "@storybook/global": ^5.0.0 - "@types/uuid": ^9.0.1 - dequal: ^2.0.2 - polished: ^4.2.2 - uuid: ^9.0.0 - checksum: bed47a7fd5a2ade9fd408ef6cf2f037fbf39906f9e9dc788e90acb296fe65224001d4014f6f960adf0236fb23f0aa84ba2b25dd83e1a0353990c271b9a4cddf9 - languageName: node - linkType: hard - -"@storybook/addon-knobs@npm:^7.0.2": - version: 7.0.2 - resolution: "@storybook/addon-knobs@npm:7.0.2" - dependencies: - copy-to-clipboard: ^3.3.3 - core-js: ^3.29.0 - escape-html: ^1.0.3 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - prop-types: ^15.8.1 - qs: ^6.11.1 - react-colorful: ^5.6.1 - react-lifecycles-compat: ^3.0.4 - react-select: ^5.7.0 - peerDependencies: - "@storybook/addons": ^7.0.0 - "@storybook/api": ^7.0.0 - "@storybook/components": ^7.0.0 - "@storybook/core-events": ^7.0.0 - "@storybook/theming": ^7.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: a28a61bb18d4c07edd3b031abbc9c81b48cf1c2b7d0707177f383c70f01b1e91d6f364969e42cdb34a7b761bc68e7603b53136c01887e56e24b408eb843d36fe - languageName: node - linkType: hard - -"@storybook/core-events@npm:7.6.15": - version: 7.6.15 - resolution: "@storybook/core-events@npm:7.6.15" - dependencies: - ts-dedent: ^2.0.0 - checksum: e09dbf0b6349da9b93ec01794318bf58fd48260419835bf55466c1a20dfc76d8b11b74a78c6835e7629ee9ee471fd08ec3f6550017b6119209ff01f4c3ac4ce9 - languageName: node - linkType: hard - -"@storybook/global@npm:^5.0.0": - version: 5.0.0 - resolution: "@storybook/global@npm:5.0.0" - checksum: ede0ad35ec411fe31c61150dbd118fef344d1d0e72bf5d3502368e35cf68126f6b7ae4a0ab5e2ffe2f0baa3b4286f03ad069ba3e098e1725449ef08b7e154ba8 - languageName: node - linkType: hard - -"@testing-library/jest-dom@npm:^6.3.0": - version: 6.4.2 - resolution: "@testing-library/jest-dom@npm:6.4.2" - dependencies: - "@adobe/css-tools": ^4.3.2 - "@babel/runtime": ^7.9.2 - aria-query: ^5.0.0 - chalk: ^3.0.0 - css.escape: ^1.5.1 - dom-accessibility-api: ^0.6.3 - lodash: ^4.17.15 - redent: ^3.0.0 - peerDependencies: - "@jest/globals": ">= 28" - "@types/bun": "*" - "@types/jest": ">= 28" - jest: ">= 28" - vitest: ">= 0.32" - peerDependenciesMeta: - "@jest/globals": - optional: true - "@types/bun": - optional: true - "@types/jest": - optional: true - jest: - optional: true - vitest: - optional: true - checksum: 631aeadbf4e738080ae095242cf1a29a0b4ee2f09c8bdd0d3f00a923707da64c1617e088ba9a961d098481afabdc1d19149fb7ef98edf15132348eb222f345ae - languageName: node - linkType: hard - -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node10@npm:1.0.9" - checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.3 - resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.4 - resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff - languageName: node - linkType: hard - -"@tufjs/canonical-json@npm:2.0.0": - version: 2.0.0 - resolution: "@tufjs/canonical-json@npm:2.0.0" - checksum: cc719a1d0d0ae1aa1ba551a82c87dcbefac088e433c03a3d8a1d547ea721350e47dab4ab5b0fca40d5c7ab1f4882e72edc39c9eae15bf47c45c43bcb6ee39f4f - languageName: node - linkType: hard - -"@tufjs/models@npm:2.0.0": - version: 2.0.0 - resolution: "@tufjs/models@npm:2.0.0" - dependencies: - "@tufjs/canonical-json": 2.0.0 - minimatch: ^9.0.3 - checksum: aac9f2f3a4838112764bd41c1ddcb15665e133412decbbc3e35a733ae63e4d69db4636df6d42ff3a88e7dd9ffbdc17c2d90737ac52e630403d1e86d595c45ea4 - languageName: node - linkType: hard - -"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.5": - version: 7.20.5 - resolution: "@types/babel__core@npm:7.20.5" - dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 - languageName: node - linkType: hard - -"@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" - dependencies: - "@babel/types": ^7.0.0 - checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 - languageName: node - linkType: hard - -"@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" - dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 - languageName: node - linkType: hard - -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.20.5 - resolution: "@types/babel__traverse@npm:7.20.5" - dependencies: - "@babel/types": ^7.20.7 - checksum: 608e0ab4fc31cd47011d98942e6241b34d461608c0c0e153377c5fd822c436c475f1ded76a56bfa76a1adf8d9266b727bbf9bfac90c4cb152c97f30dadc5b7e8 - languageName: node - linkType: hard - -"@types/d3-array@npm:*": - version: 3.2.1 - resolution: "@types/d3-array@npm:3.2.1" - checksum: 8a41cee0969e53bab3f56cc15c4e6c9d76868d6daecb2b7d8c9ce71e0ececccc5a8239697cc52dadf5c665f287426de5c8ef31a49e7ad0f36e8846889a383df4 - languageName: node - linkType: hard - -"@types/d3-axis@npm:*": - version: 3.0.6 - resolution: "@types/d3-axis@npm:3.0.6" - dependencies: - "@types/d3-selection": "*" - checksum: ea1065d9e6d134c04427763603cbe9d549b8b5785b8ae0d002b5b14a362619d5b8f5ee3c2fda8b36b7e5a413cbcd387e1a2d89898b919a9f0cc91ad4e67b5ab5 - languageName: node - linkType: hard - -"@types/d3-brush@npm:*": - version: 3.0.6 - resolution: "@types/d3-brush@npm:3.0.6" - dependencies: - "@types/d3-selection": "*" - checksum: e5166bc53e5c914b1fed0a6ce55ca14d76ae11c5afd16b724b8ae47989e977c4af02bb07496d1ccd0a77f4ccd9a2ca7345e1d289bcfce16490fe4b39a9e0d170 - languageName: node - linkType: hard - -"@types/d3-chord@npm:*": - version: 3.0.6 - resolution: "@types/d3-chord@npm:3.0.6" - checksum: b511cf372ed8a0086d37a715c0d4aca811b614454e1f7c1561fbcd46863beaccdb115d274a7a992a30a8218393fbc3e1fdd7ca6e9d572e729a4570002c327083 - languageName: node - linkType: hard - -"@types/d3-color@npm:*": - version: 3.1.3 - resolution: "@types/d3-color@npm:3.1.3" - checksum: 8a0e79a709929502ec4effcee2c786465b9aec51b653ba0b5d05dbfec3e84f418270dd603002d94021885061ff592f614979193bd7a02ad76317f5608560e357 - languageName: node - linkType: hard - -"@types/d3-contour@npm:*": - version: 3.0.6 - resolution: "@types/d3-contour@npm:3.0.6" - dependencies: - "@types/d3-array": "*" - "@types/geojson": "*" - checksum: 83c13eb0567e95d6675d6d81cbeab38d0899c5af70a7c69354e23e0860ddb2f3e911d2cacd33a8baa60ce7846b38785a337b2d7c8d2763a1340bfb999b4bd2ab - languageName: node - linkType: hard - -"@types/d3-delaunay@npm:*": - version: 6.0.4 - resolution: "@types/d3-delaunay@npm:6.0.4" - checksum: 502fe0eb91f7d05b0f57904d68028c24348a54b1e5458009caf662de995d0e59bd82cd701b4af0087d614ee9e456d415fe32d63c25272ca753bf12b3f27b2d77 - languageName: node - linkType: hard - -"@types/d3-dispatch@npm:*": - version: 3.0.6 - resolution: "@types/d3-dispatch@npm:3.0.6" - checksum: f82076c7d205885480d363c92c19b8e0d6b9e529a3a78ce772f96a7cc4cce01f7941141f148828337035fac9676b13e7440565530491d560fdf12e562cb56573 - languageName: node - linkType: hard - -"@types/d3-drag@npm:*": - version: 3.0.7 - resolution: "@types/d3-drag@npm:3.0.7" - dependencies: - "@types/d3-selection": "*" - checksum: 1107cb1667ead79073741c06ea4a9e8e4551698f6c9c60821e327a6aa30ca2ba0b31a6fe767af85a2e38a22d2305f6c45b714df15c2bba68adf58978223a5fc5 - languageName: node - linkType: hard - -"@types/d3-dsv@npm:*": - version: 3.0.7 - resolution: "@types/d3-dsv@npm:3.0.7" - checksum: 5025e01459827d09d14e0d00281995a04042ce9e3e76444c5a65466c1d29649d82cbfaa9251e33837bf576f5c587525d8d8ff5aacc6bd3b831824d54449261b9 - languageName: node - linkType: hard - -"@types/d3-ease@npm:*": - version: 3.0.2 - resolution: "@types/d3-ease@npm:3.0.2" - checksum: 0885219966294bfc99548f37297e1c75e75da812a5f3ec941977ebb57dcab0a25acec5b2bbd82d09a49d387daafca08521ca269b7e4c27ddca7768189e987b54 - languageName: node - linkType: hard - -"@types/d3-fetch@npm:*": - version: 3.0.7 - resolution: "@types/d3-fetch@npm:3.0.7" - dependencies: - "@types/d3-dsv": "*" - checksum: e60cf60b25cbc49b2066ac2a3638f610c7379000562b0f499dd90fd57a8cb9740c24667a70496c2a66456d42867afeffb1722a75b26d95e7d7ee8667d96b0b36 - languageName: node - linkType: hard - -"@types/d3-force@npm:*": - version: 3.0.9 - resolution: "@types/d3-force@npm:3.0.9" - checksum: 6ec16109b5048cda0877931b5e60565436fee697ccbc223eae1562c4a8401dddacb25b0137da2babca2a810ad0471114444e08c8e395ce90758d768a05a23b4f - languageName: node - linkType: hard - -"@types/d3-force@npm:^1.2.1": - version: 1.2.7 - resolution: "@types/d3-force@npm:1.2.7" - checksum: 9290f55beebcb4826b9b92dab2bb5204ca76a546ef5d84ded789f915605196da52d548f0a7b23c6e4327a1361096a20b096a9918148d1e0f3a10945a332b1844 - languageName: node - linkType: hard - -"@types/d3-format@npm:*": - version: 3.0.4 - resolution: "@types/d3-format@npm:3.0.4" - checksum: e69421cd93861a0c080084b0b23d4a5d6a427497559e46898189002fb756dae2c7c858b465308f6bcede7272b90e39ce8adab810bded2309035a5d9556c59134 - languageName: node - linkType: hard - -"@types/d3-geo@npm:*": - version: 3.1.0 - resolution: "@types/d3-geo@npm:3.1.0" - dependencies: - "@types/geojson": "*" - checksum: a4b2daa8a64012912ce7186891e8554af123925dca344c111b771e168a37477e02d504c6c94ee698440380e8c4f3f373d6755be97935da30eae0904f6745ce40 - languageName: node - linkType: hard - -"@types/d3-hierarchy@npm:*": - version: 3.1.6 - resolution: "@types/d3-hierarchy@npm:3.1.6" - checksum: cb6a80823fd8820277863f78dac7c8072b364c548cf266215d6bb3f3d017304348cfcb1ca806f38de48ce3ccd5e6af12c70814a10660f882ee4a48e6ae710afa - languageName: node - linkType: hard - -"@types/d3-interpolate@npm:*": - version: 3.0.4 - resolution: "@types/d3-interpolate@npm:3.0.4" - dependencies: - "@types/d3-color": "*" - checksum: efd2770e174e84fc7316fdafe03cf3688451f767dde1fa6211610137f495be7f3923db7e1723a6961a0e0e9ae0ed969f4f47c038189fa0beb1d556b447922622 - languageName: node - linkType: hard - -"@types/d3-path@npm:*": - version: 3.0.2 - resolution: "@types/d3-path@npm:3.0.2" - checksum: 0107d89510e19e478c168e0e5df0c901f57e12f42f90f961a52b0b1e5b58182dde14a5b27ef66a0a769f09119f305d484dd8dc5adca17f6dd74baab87ad36a98 - languageName: node - linkType: hard - -"@types/d3-polygon@npm:*": - version: 3.0.2 - resolution: "@types/d3-polygon@npm:3.0.2" - checksum: 7cf1eadb54f02dd3617512b558f4c0f3811f8a6a8c887d9886981c3cc251db28b68329b2b0707d9f517231a72060adbb08855227f89bef6ef30caedc0a67cab2 - languageName: node - linkType: hard - -"@types/d3-quadtree@npm:*": - version: 3.0.6 - resolution: "@types/d3-quadtree@npm:3.0.6" - checksum: 631fb1a50dbe4fb0c97574891b180ec3d6a0f524bbd8aee8dfd44eda405e7ed1ca2b03d5568a35f697d09e5e4b598117e149236874b0c8764979a3d6242bb0bc - languageName: node - linkType: hard - -"@types/d3-random@npm:*": - version: 3.0.3 - resolution: "@types/d3-random@npm:3.0.3" - checksum: 33285b57768a724d2466ac1deec002432805c9df3e475ffb7f7fec66681cfe3e18d2f68b7f8ba45f400b274907bbebfe8adff14c9a97ef1987e476135e784925 - languageName: node - linkType: hard - -"@types/d3-scale-chromatic@npm:*": - version: 3.0.3 - resolution: "@types/d3-scale-chromatic@npm:3.0.3" - checksum: a465d126a00a71d3824957283580b4b404fe6f6bb52eb2b7303047fffed2bec6e31aeb34bfb30313e72ee1d75243c50ec5a45824eaf547f9c0849a1379527662 - languageName: node - linkType: hard - -"@types/d3-scale@npm:*": - version: 4.0.8 - resolution: "@types/d3-scale@npm:4.0.8" - dependencies: - "@types/d3-time": "*" - checksum: 3b1906da895564f73bb3d0415033d9a8aefe7c4f516f970176d5b2ff7a417bd27ae98486e9a9aa0472001dc9885a9204279a1973a985553bdb3ee9bbc1b94018 - languageName: node - linkType: hard - -"@types/d3-selection@npm:*": - version: 3.0.10 - resolution: "@types/d3-selection@npm:3.0.10" - checksum: 8a1b0940eca565d754c1898b9e4f86e2778e4135878b76b3b8a89d497e37675d423ec3376f248577a502bccb55c1218cc9f6b5688a29a3b500973de8fc5f1c5c - languageName: node - linkType: hard - -"@types/d3-shape@npm:*": - version: 3.1.6 - resolution: "@types/d3-shape@npm:3.1.6" - dependencies: - "@types/d3-path": "*" - checksum: bd765be021019c43c8dca066a798a1de28a051d1213db6ca25f76c9e577da7ec40a592e3bda7628383ab48cb87164fe60b95eb5ec23761b2012bd0adb30c549a - languageName: node - linkType: hard - -"@types/d3-time-format@npm:*": - version: 4.0.3 - resolution: "@types/d3-time-format@npm:4.0.3" - checksum: e981fc9780697a9d8c5d1ddf1167d9c6bc28e4e610afddff1384fe55e6eb52cb65309b2a0a1d4cf817413b0a80b9f1a652fe0b2cb8054ace4eafff80a6093aa5 - languageName: node - linkType: hard - -"@types/d3-time@npm:*": - version: 3.0.3 - resolution: "@types/d3-time@npm:3.0.3" - checksum: a071826c80efdb1999e6406fef2db516d45f3906da3a9a4da8517fa863bae53c4c1056ca5347a20921660607d21ec874fd2febe0e961adb7be6954255587d08f - languageName: node - linkType: hard - -"@types/d3-timer@npm:*": - version: 3.0.2 - resolution: "@types/d3-timer@npm:3.0.2" - checksum: 1643eebfa5f4ae3eb00b556bbc509444d88078208ec2589ddd8e4a24f230dd4cf2301e9365947e70b1bee33f63aaefab84cd907822aae812b9bc4871b98ab0e1 - languageName: node - linkType: hard - -"@types/d3-transition@npm:*": - version: 3.0.8 - resolution: "@types/d3-transition@npm:3.0.8" - dependencies: - "@types/d3-selection": "*" - checksum: 4ff2727f0f2305cbe4fed1ef860a6cac44393607db42e4d0975eb6348338c2c3091b25bc5a1bddd31d7f3e10d1028187f7d271f6e4239d67f485f28c4f076a8b - languageName: node - linkType: hard - -"@types/d3-zoom@npm:*": - version: 3.0.8 - resolution: "@types/d3-zoom@npm:3.0.8" - dependencies: - "@types/d3-interpolate": "*" - "@types/d3-selection": "*" - checksum: a1685728949ed39faf8ce162cc13338639c57bc2fd4d55fc7902b2632cad2bc2a808941263e57ce6685647e8a6a0a556e173386a52d6bb74c9ed6195b68be3de - languageName: node - linkType: hard - -"@types/d3@npm:^7.4.0": - version: 7.4.3 - resolution: "@types/d3@npm:7.4.3" - dependencies: - "@types/d3-array": "*" - "@types/d3-axis": "*" - "@types/d3-brush": "*" - "@types/d3-chord": "*" - "@types/d3-color": "*" - "@types/d3-contour": "*" - "@types/d3-delaunay": "*" - "@types/d3-dispatch": "*" - "@types/d3-drag": "*" - "@types/d3-dsv": "*" - "@types/d3-ease": "*" - "@types/d3-fetch": "*" - "@types/d3-force": "*" - "@types/d3-format": "*" - "@types/d3-geo": "*" - "@types/d3-hierarchy": "*" - "@types/d3-interpolate": "*" - "@types/d3-path": "*" - "@types/d3-polygon": "*" - "@types/d3-quadtree": "*" - "@types/d3-random": "*" - "@types/d3-scale": "*" - "@types/d3-scale-chromatic": "*" - "@types/d3-selection": "*" - "@types/d3-shape": "*" - "@types/d3-time": "*" - "@types/d3-time-format": "*" - "@types/d3-timer": "*" - "@types/d3-transition": "*" - "@types/d3-zoom": "*" - checksum: 12234aa093c8661546168becdd8956e892b276f525d96f65a7b32fed886fc6a569fe5a1171bff26fef2a5663960635f460c9504a6f2d242ba281a2b6c8c6465c - languageName: node - linkType: hard - -"@types/dagre@npm:0.7.42": - version: 0.7.42 - resolution: "@types/dagre@npm:0.7.42" - checksum: c63a0e9155df7d00b4e3bd5a781a69a958cf7281d2fec90cbea0e553841cd41bef3b35c749b1b481811ac7d81d25eb8a8366ea17ac647a907828e399ccdce82d - languageName: node - linkType: hard - -"@types/estree@npm:1.0.5": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a - languageName: node - linkType: hard - -"@types/geojson@npm:*": - version: 7946.0.13 - resolution: "@types/geojson@npm:7946.0.13" - checksum: b3b68457c89bc3f0445dc9eb54d07e6f89658672867c54989bc7f71f87d54e562195b291d43e1b84476493351271d7ccb9f5c6ab2012b29fbafbb0e8e43c4bca - languageName: node - linkType: hard - -"@types/graceful-fs@npm:^4.1.3": - version: 4.1.9 - resolution: "@types/graceful-fs@npm:4.1.9" - dependencies: - "@types/node": "*" - checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 - languageName: node - linkType: hard - -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.6 - resolution: "@types/istanbul-lib-coverage@npm:2.0.6" - checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" - dependencies: - "@types/istanbul-lib-report": "*" - checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 - languageName: node - linkType: hard - -"@types/jest@npm:^29.5.12": - version: 29.5.12 - resolution: "@types/jest@npm:29.5.12" - dependencies: - expect: ^29.0.0 - pretty-format: ^29.0.0 - checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c - languageName: node - linkType: hard - -"@types/jsdom@npm:^20.0.0": - version: 20.0.1 - resolution: "@types/jsdom@npm:20.0.1" - dependencies: - "@types/node": "*" - "@types/tough-cookie": "*" - parse5: ^7.0.0 - checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 - languageName: node - linkType: hard - -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.19 - resolution: "@types/node@npm:20.11.19" - dependencies: - undici-types: ~5.26.4 - checksum: 259d16643ba611ade617a8212e594a3ac014727457507389bbf7213971346ab052d870f1e6e2df0afd0876ecd7874f578bccb130be01e069263cfc7136ddc0c1 - languageName: node - linkType: hard - -"@types/normalize-package-data@npm:^2.4.1": - version: 2.4.4 - resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 - languageName: node - linkType: hard - -"@types/pako@npm:^2.0.3": - version: 2.0.3 - resolution: "@types/pako@npm:2.0.3" - checksum: 0746dd5d29eccf5b2e6cceb3ccb093851219e78bd2e2e20d25757e247987139e061e5d4ba37cb5295493f06e3c683c74f8876011cd8a3f3748a09244fbc841d9 - languageName: node - linkType: hard - -"@types/parse-json@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/parse-json@npm:4.0.2" - checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 - languageName: node - linkType: hard - -"@types/prop-types@npm:*": - version: 15.7.11 - resolution: "@types/prop-types@npm:15.7.11" - checksum: 7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54 - languageName: node - linkType: hard - -"@types/react-dom@npm:^18.2.18": - version: 18.2.19 - resolution: "@types/react-dom@npm:18.2.19" - dependencies: - "@types/react": "*" - checksum: 087a19d8e4c1c0900ec4ac5ddb749a811a38274b25683d233c11755d2895cc6e475e8bf9bea3dee36519769298e078d4c2feab9ab4bd13b26bc2a6170716437e - languageName: node - linkType: hard - -"@types/react-measure@npm:^2.0.6": - version: 2.0.12 - resolution: "@types/react-measure@npm:2.0.12" - dependencies: - "@types/react": "*" - checksum: c04ab0835bc4732383a9c7cf90aabab1155e3834fc4ee8470e173964aaa301963057a1905db51c208d5bc833df345720565ae430ac4f41e34e6aff6d9671cc61 - languageName: node - linkType: hard - -"@types/react-transition-group@npm:^4.4.0": - version: 4.4.10 - resolution: "@types/react-transition-group@npm:4.4.10" - dependencies: - "@types/react": "*" - checksum: fe2ea11f70251e9f79f368e198c18fd469b1d4f1e1d44e4365845b44e15974b0ec925100036f449b023b0ca3480a82725c5f0a73040e282ad32ec7b0def9b57c - languageName: node - linkType: hard - -"@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.2.55 - resolution: "@types/react@npm:18.2.55" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: a8eb4fa77f73831b9112d4f11a7006217dc0740361649b9b0da3fd441d151a9cd415d5d68b91c0af4e430e063424d301c77489e5edaddc9f711c4e46cf9818a5 - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.8 - resolution: "@types/scheduler@npm:0.16.8" - checksum: 6c091b096daa490093bf30dd7947cd28e5b2cd612ec93448432b33f724b162587fed9309a0acc104d97b69b1d49a0f3fc755a62282054d62975d53d7fd13472d - languageName: node - linkType: hard - -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": - version: 7.5.6 - resolution: "@types/semver@npm:7.5.6" - checksum: 563a0120ec0efcc326567db2ed920d5d98346f3638b6324ea6b50222b96f02a8add3c51a916b6897b51523aad8ac227d21d3dcf8913559f1bfc6c15b14d23037 - languageName: node - linkType: hard - -"@types/stack-utils@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/stack-utils@npm:2.0.3" - checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 - languageName: node - linkType: hard - -"@types/tough-cookie@npm:*": - version: 4.0.5 - resolution: "@types/tough-cookie@npm:4.0.5" - checksum: f19409d0190b179331586365912920d192733112a195e870c7f18d20ac8adb7ad0b0ff69dad430dba8bc2be09593453a719cfea92dc3bda19748fd158fe1498d - languageName: node - linkType: hard - -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 - languageName: node - linkType: hard - -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" - dependencies: - "@types/yargs-parser": "*" - checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" - dependencies: - "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 6.21.0 - "@typescript-eslint/type-utils": 6.21.0 - "@typescript-eslint/utils": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - debug: ^4.3.4 - graphemer: ^1.4.0 - ignore: ^5.2.4 - natural-compare: ^1.4.0 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 - peerDependencies: - "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 5ef2c502255e643e98051e87eb682c2a257e87afd8ec3b9f6274277615e1c2caf3131b352244cfb1987b8b2c415645eeacb9113fa841fc4c9b2ac46e8aed6efd - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/parser@npm:6.21.0" - dependencies: - "@typescript-eslint/scope-manager": 6.21.0 - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/typescript-estree": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - debug: ^4.3.4 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 162fe3a867eeeffda7328bce32dae45b52283c68c8cb23258fb9f44971f761991af61f71b8c9fe1aa389e93dfe6386f8509c1273d870736c507d76dd40647b68 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/scope-manager@npm:5.62.0" - dependencies: - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/visitor-keys": 5.62.0 - checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/scope-manager@npm:6.21.0" - dependencies: - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - checksum: 71028b757da9694528c4c3294a96cc80bc7d396e383a405eab3bc224cda7341b88e0fc292120b35d3f31f47beac69f7083196c70616434072fbcd3d3e62d3376 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/type-utils@npm:6.21.0" - dependencies: - "@typescript-eslint/typescript-estree": 6.21.0 - "@typescript-eslint/utils": 6.21.0 - debug: ^4.3.4 - ts-api-utils: ^1.0.1 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 77025473f4d80acf1fafcce99c5c283e557686a61861febeba9c9913331f8a41e930bf5cd8b7a54db502a57b6eb8ea6d155cbd4f41349ed00e3d7aeb1f477ddc - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/types@npm:5.62.0" - checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/types@npm:6.21.0" - checksum: 9501b47d7403417af95fc1fb72b2038c5ac46feac0e1598a46bcb43e56a606c387e9dcd8a2a0abe174c91b509f2d2a8078b093786219eb9a01ab2fbf9ee7b684 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" - dependencies: - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/visitor-keys": 5.62.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" - dependencies: - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/visitor-keys": 6.21.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - minimatch: 9.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 - peerDependenciesMeta: - typescript: - optional: true - checksum: dec02dc107c4a541e14fb0c96148f3764b92117c3b635db3a577b5a56fc48df7a556fa853fb82b07c0663b4bf2c484c9f245c28ba3e17e5cb0918ea4cab2ea21 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/utils@npm:6.21.0" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.12 - "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 6.21.0 - "@typescript-eslint/types": 6.21.0 - "@typescript-eslint/typescript-estree": 6.21.0 - semver: ^7.5.4 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: b129b3a4aebec8468259f4589985cb59ea808afbfdb9c54f02fad11e17d185e2bf72bb332f7c36ec3c09b31f18fc41368678b076323e6e019d06f74ee93f7bf2 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:^5.10.0": - version: 5.62.0 - resolution: "@typescript-eslint/utils@npm:5.62.0" - dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@types/json-schema": ^7.0.9 - "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.62.0 - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/typescript-estree": 5.62.0 - eslint-scope: ^5.1.1 - semver: ^7.3.7 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" - dependencies: - "@typescript-eslint/types": 5.62.0 - eslint-visitor-keys: ^3.3.0 - checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" - dependencies: - "@typescript-eslint/types": 6.21.0 - eslint-visitor-keys: ^3.4.1 - checksum: 67c7e6003d5af042d8703d11538fca9d76899f0119130b373402819ae43f0bc90d18656aa7add25a24427ccf1a0efd0804157ba83b0d4e145f06107d7d1b7433 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 - languageName: node - linkType: hard - -"@vitejs/plugin-react@npm:^4.2.1": - version: 4.2.1 - resolution: "@vitejs/plugin-react@npm:4.2.1" - dependencies: - "@babel/core": ^7.23.5 - "@babel/plugin-transform-react-jsx-self": ^7.23.3 - "@babel/plugin-transform-react-jsx-source": ^7.23.3 - "@types/babel__core": ^7.20.5 - react-refresh: ^0.14.0 - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - checksum: 08d227d27ff2304e395e746bd2d4b5fee40587f69d7e2fcd6beb7d91163c1f1dc26d843bc48e2ffb8f38c6b8a1b9445fb07840e3dcc841f97b56bbb8205346aa - languageName: node - linkType: hard - -"JSONStream@npm:^1.3.5": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: ^1.2.0 - through: ">=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 2605fa124260c61bad38bb65eba30d2f72216a78e94d0ab19b11b4e0327d572b8d530c0c9cc3b0764f727ad26d39e00bf7ebad57781ca6368394d73169c59e46 - languageName: node - linkType: hard - -"abab@npm:^2.0.6": - version: 2.0.6 - resolution: "abab@npm:2.0.6" - checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 - languageName: node - linkType: hard - -"acorn-globals@npm:^7.0.0": - version: 7.0.1 - resolution: "acorn-globals@npm:7.0.1" - dependencies: - acorn: ^8.1.0 - acorn-walk: ^8.0.2 - checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 - languageName: node - linkType: hard - -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 - languageName: node - linkType: hard - -"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": - version: 8.3.2 - resolution: "acorn-walk@npm:8.3.2" - checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 - languageName: node - linkType: hard - -"acorn@npm:^8.1.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" - bin: - acorn: bin/acorn - checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c - languageName: node - linkType: hard - -"add-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "add-stream@npm:1.0.0" - checksum: 3e9e8b0b8f0170406d7c3a9a39bfbdf419ccccb0fd2a396338c0fda0a339af73bf738ad414fc520741de74517acf0dd92b4a36fd3298a47fd5371eee8f2c5a06 - languageName: node - linkType: hard - -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": - version: 7.1.0 - resolution: "agent-base@npm:7.1.0" - dependencies: - debug: ^4.3.4 - checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: ^3.1.1 - fast-json-stable-stringify: ^2.0.0 - json-schema-traverse: ^0.4.1 - uri-js: ^4.2.2 - checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 - languageName: node - linkType: hard - -"ajv@npm:^8.0.1": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 - languageName: node - linkType: hard - -"ansi-escapes@npm:^6.2.0": - version: 6.2.0 - resolution: "ansi-escapes@npm:6.2.0" - dependencies: - type-fest: ^3.0.0 - checksum: f0bc667d5f1ededc3ea89b73c34f0cba95473525b07e1290ddfd3fc868c94614e95f3549f5c4fd0c05424af7d3fd298101fb3d9a52a597d3782508b340783bd7 - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 - languageName: node - linkType: hard - -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 - languageName: node - linkType: hard - -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" - dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 - languageName: node - linkType: hard - -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 - languageName: node - linkType: hard - -"are-we-there-yet@npm:^4.0.0": - version: 4.0.2 - resolution: "are-we-there-yet@npm:4.0.2" - checksum: 29d562d3aad6428aa4d732f78b058f1025fda00305bb307b4cd6ee26a43e5b4c90c113e97e01fa43bfe04556a800ba7e5c947907891ae99bfb8a5ae2488078d0 - languageName: node - linkType: hard - -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: ~1.0.2 - checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced - languageName: node - linkType: hard - -"aria-query@npm:^5.0.0": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: ^2.0.3 - checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: ^1.0.5 - is-array-buffer: ^3.0.4 - checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e - languageName: node - linkType: hard - -"array-ify@npm:^1.0.0": - version: 1.0.0 - resolution: "array-ify@npm:1.0.0" - checksum: c0502015b319c93dd4484f18036bcc4b654eb76a4aa1f04afbcef11ac918859bb1f5d71ba1f0f1141770db9eef1a4f40f1761753650873068010bbf7bcdae4a4 - languageName: node - linkType: hard - -"array-includes@npm:^3.1.7": - version: 3.1.7 - resolution: "array-includes@npm:3.1.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - get-intrinsic: ^1.2.1 - is-string: ^1.0.7 - checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"array.prototype.filter@npm:^1.0.3": - version: 1.0.3 - resolution: "array.prototype.filter@npm:1.0.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-array-method-boxes-properly: ^1.0.0 - is-string: ^1.0.7 - checksum: 5443cde6ad64596649e5751252b1b2f5242b41052980c2fb2506ba485e3ffd7607e8f6f2f1aefa0cb1cfb9b8623b2b2be103579cb367a161a3426400619b6e73 - languageName: node - linkType: hard - -"array.prototype.findlastindex@npm:^1.2.3": - version: 1.2.3 - resolution: "array.prototype.findlastindex@npm:1.2.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.2.1 - checksum: 31f35d7b370c84db56484618132041a9af401b338f51899c2e78ef7690fbba5909ee7ca3c59a7192085b328cc0c68c6fd1f6d1553db01a689a589ae510f3966e - languageName: node - linkType: hard - -"array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.2": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" - dependencies: - array-buffer-byte-length: ^1.0.1 - call-bind: ^1.0.5 - define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.2.1 - get-intrinsic: ^1.2.3 - is-array-buffer: ^3.0.4 - is-shared-array-buffer: ^1.0.2 - checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e - languageName: node - linkType: hard - -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be - languageName: node - linkType: hard - -"attr-accept@npm:^2.2.2": - version: 2.2.2 - resolution: "attr-accept@npm:2.2.2" - checksum: 496f7249354ab53e522510c1dc8f67a1887382187adde4dc205507d2f014836a247073b05e9d9ea51e2e9c7f71b0d2aa21730af80efa9af2d68303e5f0565c4d - languageName: node - linkType: hard - -"available-typed-arrays@npm:^1.0.5, available-typed-arrays@npm:^1.0.6": - version: 1.0.6 - resolution: "available-typed-arrays@npm:1.0.6" - checksum: 8295571eb86447138adf64a0df0c08ae61250b17190bba30e1fae8c80a816077a6d028e5506f602c382c0197d3080bae131e92e331139d55460989580eeae659 - languageName: node - linkType: hard - -"axios@npm:^1.5.1": - version: 1.6.7 - resolution: "axios@npm:1.6.7" - dependencies: - follow-redirects: ^1.15.4 - form-data: ^4.0.0 - proxy-from-env: ^1.1.0 - checksum: 87d4d429927d09942771f3b3a6c13580c183e31d7be0ee12f09be6d5655304996bb033d85e54be81606f4e89684df43be7bf52d14becb73a12727bf33298a082 - languageName: node - linkType: hard - -"babel-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "babel-jest@npm:29.7.0" - dependencies: - "@jest/transform": ^29.7.0 - "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.6.3 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - slash: ^3.0.0 - peerDependencies: - "@babel/core": ^7.8.0 - checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-instrument: ^5.0.4 - test-exclude: ^6.0.0 - checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a - languageName: node - linkType: hard - -"babel-plugin-jest-hoist@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-plugin-jest-hoist@npm:29.6.3" - dependencies: - "@babel/template": ^7.3.3 - "@babel/types": ^7.3.3 - "@types/babel__core": ^7.1.14 - "@types/babel__traverse": ^7.0.6 - checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 - languageName: node - linkType: hard - -"babel-plugin-macros@npm:^3.1.0": - version: 3.1.0 - resolution: "babel-plugin-macros@npm:3.1.0" - dependencies: - "@babel/runtime": ^7.12.5 - cosmiconfig: ^7.0.0 - resolve: ^1.19.0 - checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs2@npm:^0.4.8": - version: 0.4.8 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.8" - dependencies: - "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.5.0 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 22857b87268b354e095452199464accba5fd8f690558a2f24b0954807ca2494b96da8d5c13507955802427582015160bce26a66893acf6da5dafbed8b336cf79 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.9.0": - version: 0.9.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.5.0 - core-js-compat: ^3.34.0 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 65bbf59fc0145c7a264822777403632008dce00015b4b5c7ec359125ef4faf9e8f494ae5123d2992104feb6f19a3cff85631992862e48b6d7bd64eb7e755ee1f - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.5.5": - version: 0.5.5 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.5.0 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 3a9b4828673b23cd648dcfb571eadcd9d3fadfca0361d0a7c6feeb5a30474e92faaa49f067a6e1c05e49b6a09812879992028ff3ef3446229ff132d6e1de7eb6 - languageName: node - linkType: hard - -"babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.0.1 - resolution: "babel-preset-current-node-syntax@npm:1.0.1" - dependencies: - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-bigint": ^7.8.3 - "@babel/plugin-syntax-class-properties": ^7.8.3 - "@babel/plugin-syntax-import-meta": ^7.8.3 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.8.3 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-top-level-await": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 - languageName: node - linkType: hard - -"babel-preset-jest@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-preset-jest@npm:29.6.3" - dependencies: - babel-plugin-jest-hoist: ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"balanced-match@npm:^2.0.0": - version: 2.0.0 - resolution: "balanced-match@npm:2.0.0" - checksum: 9a5caad6a292c5df164cc6d0c38e0eedf9a1413f42e5fece733640949d74d0052cfa9587c1a1681f772147fb79be495121325a649526957fd75b3a216d1fbc68 - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 - languageName: node - linkType: hard - -"before-after-hook@npm:^2.2.0": - version: 2.2.3 - resolution: "before-after-hook@npm:2.2.3" - checksum: a1a2430976d9bdab4cd89cb50d27fa86b19e2b41812bf1315923b0cba03371ebca99449809226425dd3bcef20e010db61abdaff549278e111d6480034bebae87 - languageName: node - linkType: hard - -"bin-links@npm:^4.0.1": - version: 4.0.3 - resolution: "bin-links@npm:4.0.3" - dependencies: - cmd-shim: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - read-cmd-shim: ^4.0.0 - write-file-atomic: ^5.0.0 - checksum: 3b3ee22efc38d608479d51675c8958a841b8b55b8975342ce86f28ac4e0bb3aef46e9dbdde976c6dc1fe1bd2aa00d42e00869ad35b57ee6d868f39f662858911 - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 - languageName: node - linkType: hard - -"bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: ^5.5.0 - inherits: ^2.0.4 - readable-stream: ^3.4.0 - checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 - languageName: node - linkType: hard - -"browserslist@npm:^4.22.2": - version: 4.22.2 - resolution: "browserslist@npm:4.22.2" - dependencies: - caniuse-lite: ^1.0.30001565 - electron-to-chromium: ^1.4.601 - node-releases: ^2.0.14 - update-browserslist-db: ^1.0.13 - bin: - browserslist: cli.js - checksum: 33ddfcd9145220099a7a1ac533cecfe5b7548ffeb29b313e1b57be6459000a1f8fa67e781cf4abee97268ac594d44134fcc4a6b2b4750ceddc9796e3a22076d9 - languageName: node - linkType: hard - -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: ^0.4.0 - checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb - languageName: node - linkType: hard - -"buffer@npm:^5.5.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 - languageName: node - linkType: hard - -"builtins@npm:^5.0.0": - version: 5.0.1 - resolution: "builtins@npm:5.0.1" - dependencies: - semver: ^7.0.0 - checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 - languageName: node - linkType: hard - -"byte-size@npm:^8.1.1": - version: 8.1.1 - resolution: "byte-size@npm:8.1.1" - checksum: 65f00881ffd3c2b282fe848ed954fa4ff8363eaa3f652102510668b90b3fad04d81889486ee1b641ee0d8c8b75cf32201f3b309e6b5fbb6cc869b48a91b62d3e - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.2 - resolution: "cacache@npm:18.0.2" - dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^10.0.1 - minipass: ^7.0.3 - minipass-collect: ^2.0.1 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: 0250df80e1ad0c828c956744850c5f742c24244e9deb5b7dc81bca90f8c10e011e132ecc58b64497cc1cad9a98968676147fb6575f4f94722f7619757b17a11b - languageName: node - linkType: hard - -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5": - version: 1.0.5 - resolution: "call-bind@npm:1.0.5" - dependencies: - function-bind: ^1.1.2 - get-intrinsic: ^1.2.1 - set-function-length: ^1.1.1 - checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 - languageName: node - linkType: hard - -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001565": - version: 1.0.30001579 - resolution: "caniuse-lite@npm:1.0.30001579" - checksum: 7539dcff74d2243a30c428393dc690c87fa34d7da36434731853e9bcfe783757763b2971f5cc878e25242a93e184e53f167d11bd74955af956579f7af71cc764 - languageName: node - linkType: hard - -"chalk@npm:5.3.0, chalk@npm:^5.3.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 - languageName: node - linkType: hard - -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - -"chalk@npm:^3.0.0": - version: 3.0.0 - resolution: "chalk@npm:3.0.0" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc - languageName: node - linkType: hard - -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 - languageName: node - linkType: hard - -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d - languageName: node - linkType: hard - -"chokidar@npm:>=3.0.0 <4.0.0": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.2 - glob-parent: ~5.1.2 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.6.0 - dependenciesMeta: - fsevents: - optional: true - checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"ci-info@npm:^3.2.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 - languageName: node - linkType: hard - -"ci-info@npm:^4.0.0": - version: 4.0.0 - resolution: "ci-info@npm:4.0.0" - checksum: 122fe41c5eb8d0b5fa0ab6fd674c5ddcf2dc59766528b062a0144ff0d913cfb210ef925ec52110e7c2a7f4e603d5f0e8b91cfe68867e196e9212fa0b94d0a08a - languageName: node - linkType: hard - -"cjs-module-lexer@npm:^1.0.0": - version: 1.2.3 - resolution: "cjs-module-lexer@npm:1.2.3" - checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-cursor@npm:4.0.0" - dependencies: - restore-cursor: ^4.0.0 - checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc - languageName: node - linkType: hard - -"cli-spinners@npm:^2.5.0": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c - languageName: node - linkType: hard - -"cli-truncate@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-truncate@npm:4.0.0" - dependencies: - slice-ansi: ^5.0.0 - string-width: ^7.0.0 - checksum: d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d - languageName: node - linkType: hard - -"cli-width@npm:^4.1.0": - version: 4.1.0 - resolution: "cli-width@npm:4.1.0" - checksum: 0a79cff2dbf89ef530bcd54c713703ba94461457b11e5634bd024c78796ed21401e32349c004995954e06f442d82609287e7aabf6a5f02c919a1cf3b9b6854ff - languageName: node - linkType: hard - -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.1 - wrap-ansi: ^7.0.0 - checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 - languageName: node - linkType: hard - -"clone-deep@npm:^4.0.1": - version: 4.0.1 - resolution: "clone-deep@npm:4.0.1" - dependencies: - is-plain-object: ^2.0.4 - kind-of: ^6.0.2 - shallow-clone: ^3.0.0 - checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 - languageName: node - linkType: hard - -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd - languageName: node - linkType: hard - -"cmd-shim@npm:^6.0.0": - version: 6.0.2 - resolution: "cmd-shim@npm:6.0.2" - checksum: df3a01fc4d72a49b450985b991205e65774b28e7f74a2e4d2a11fd0df8732e3828f9e7b644050def3cd0be026cbd3ee46a1f50ce5f57d0b3fb5afe335bdfacde - languageName: node - linkType: hard - -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 - languageName: node - linkType: hard - -"collect-v8-coverage@npm:^1.0.0": - version: 1.0.2 - resolution: "collect-v8-coverage@npm:1.0.2" - checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - -"color-name@npm:^1.1.4, color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 - languageName: node - linkType: hard - -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b - languageName: node - linkType: hard - -"colord@npm:^2.9.3": - version: 2.9.3 - resolution: "colord@npm:2.9.3" - checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 - languageName: node - linkType: hard - -"colorette@npm:^2.0.20": - version: 2.0.20 - resolution: "colorette@npm:2.0.20" - checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d - languageName: node - linkType: hard - -"columnify@npm:^1.6.0": - version: 1.6.0 - resolution: "columnify@npm:1.6.0" - dependencies: - strip-ansi: ^6.0.1 - wcwidth: ^1.0.0 - checksum: 0d590023616a27bcd2135c0f6ddd6fac94543263f9995538bbe391068976e30545e5534d369737ec7c3e9db4e53e70a277462de46aeb5a36e6997b4c7559c335 - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.8": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: ~1.0.0 - checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c - languageName: node - linkType: hard - -"commander@npm:11.1.0": - version: 11.1.0 - resolution: "commander@npm:11.1.0" - checksum: fd1a8557c6b5b622c89ecdfde703242ab7db3b628ea5d1755784c79b8e7cb0d74d65b4a262289b533359cd58e1bfc0bf50245dfbcd2954682a6f367c828b79ef - languageName: node - linkType: hard - -"commander@npm:7": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc - languageName: node - linkType: hard - -"common-ancestor-path@npm:^1.0.1": - version: 1.0.1 - resolution: "common-ancestor-path@npm:1.0.1" - checksum: 1d2e4186067083d8cc413f00fc2908225f04ae4e19417ded67faa6494fb313c4fcd5b28a52326d1a62b466e2b3a4325e92c31133c5fee628cdf8856b3a57c3d7 - languageName: node - linkType: hard - -"compare-func@npm:^2.0.0": - version: 2.0.0 - resolution: "compare-func@npm:2.0.0" - dependencies: - array-ify: ^1.0.0 - dot-prop: ^5.1.0 - checksum: fb71d70632baa1e93283cf9d80f30ac97f003aabee026e0b4426c9716678079ef5fea7519b84d012cbed938c476493866a38a79760564a9e21ae9433e40e6f0d - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af - languageName: node - linkType: hard - -"config-chain@npm:^1.1.13": - version: 1.1.13 - resolution: "config-chain@npm:1.1.13" - dependencies: - ini: ^1.3.4 - proto-list: ~1.2.1 - checksum: 828137a28e7c2fc4b7fb229bd0cd6c1397bcf83434de54347e608154008f411749041ee392cbe42fab6307e02de4c12480260bf769b7d44b778fdea3839eafab - languageName: node - linkType: hard - -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed - languageName: node - linkType: hard - -"conventional-changelog-angular@npm:^7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-angular@npm:7.0.0" - dependencies: - compare-func: ^2.0.0 - checksum: 2478962ad7ce42878449ba3568347d704f22c5c9af1cd36916b5600734bd7f82c09712a338c649195c44e907f1b0372ce52d6cb51df643f495c89af05ad4bc48 - languageName: node - linkType: hard - -"conventional-changelog-core@npm:^7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-core@npm:7.0.0" - dependencies: - "@hutson/parse-repository-url": ^5.0.0 - add-stream: ^1.0.0 - conventional-changelog-writer: ^7.0.0 - conventional-commits-parser: ^5.0.0 - git-raw-commits: ^4.0.0 - git-semver-tags: ^7.0.0 - hosted-git-info: ^7.0.0 - normalize-package-data: ^6.0.0 - read-pkg: ^8.0.0 - read-pkg-up: ^10.0.0 - checksum: 0409bd06acdcab5c2798e9e66cc015d93cced5848fe12e56f54bfaf4c6be7ec2a876fc3bc64daaed2464a7a49a7fb9860b51247bd05727bbebbae6e83d3e7a72 - languageName: node - linkType: hard - -"conventional-changelog-preset-loader@npm:^4.1.0": - version: 4.1.0 - resolution: "conventional-changelog-preset-loader@npm:4.1.0" - checksum: 8813c34884a9e3f4be9f3a9ffa216012ee40ef8c0eb1593a70fa8ab906e08de09cab9e0b769b187a43456dbcb24b01a517b3798ebc5b8b9264af2e32c976d9c9 - languageName: node - linkType: hard - -"conventional-changelog-writer@npm:^7.0.0, conventional-changelog-writer@npm:^7.0.1": - version: 7.0.1 - resolution: "conventional-changelog-writer@npm:7.0.1" - dependencies: - conventional-commits-filter: ^4.0.0 - handlebars: ^4.7.7 - json-stringify-safe: ^5.0.1 - meow: ^12.0.1 - semver: ^7.5.2 - split2: ^4.0.0 - bin: - conventional-changelog-writer: cli.mjs - checksum: 6d1e2ef2d75752c74d87321b9e33562f37a0734bbdb69ed48ce6cf868168e7847d5cf5238402ebd612ac763f521ba063aab452766d39ee81f5748b93a79ae51f - languageName: node - linkType: hard - -"conventional-commits-filter@npm:^4.0.0": - version: 4.0.0 - resolution: "conventional-commits-filter@npm:4.0.0" - checksum: 46d2d90531f024d596f61d353876276e5357adb5c4684e042467bb7d159feb0a2831b74656bd3038ac9ec38d99b0b24ac39f319ad511861e1299c4cdfb5a119a - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^5.0.0": - version: 5.0.0 - resolution: "conventional-commits-parser@npm:5.0.0" - dependencies: - JSONStream: ^1.3.5 - is-text-path: ^2.0.0 - meow: ^12.0.1 - split2: ^4.0.0 - bin: - conventional-commits-parser: cli.mjs - checksum: bb92a0bfe41802330d2d14ddb0f912fd65dd355f1aa294e708f4891aac95c580919a70580b9f26563c24c3335baaed2ce003104394a8fa5ba61eeb3889e45df0 - languageName: node - linkType: hard - -"conventional-recommended-bump@npm:^9.0.0": - version: 9.0.0 - resolution: "conventional-recommended-bump@npm:9.0.0" - dependencies: - conventional-changelog-preset-loader: ^4.1.0 - conventional-commits-filter: ^4.0.0 - conventional-commits-parser: ^5.0.0 - git-raw-commits: ^4.0.0 - git-semver-tags: ^7.0.0 - meow: ^12.0.1 - bin: - conventional-recommended-bump: cli.mjs - checksum: 0842628777609ef17f1b4f6bb11edbbc243bcc72ae5265e92eb24cac4206e5eadbea48f4a2b0732fbf9c3cea7d1369a08f93fd9ec9755fbf54e6dddb2b88e757 - languageName: node - linkType: hard - -"convert-source-map@npm:^1.5.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 - languageName: node - linkType: hard - -"copy-to-clipboard@npm:^3.3.3": - version: 3.3.3 - resolution: "copy-to-clipboard@npm:3.3.3" - dependencies: - toggle-selection: ^1.0.6 - checksum: e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf - languageName: node - linkType: hard - -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.34.0": - version: 3.35.1 - resolution: "core-js-compat@npm:3.35.1" - dependencies: - browserslist: ^4.22.2 - checksum: 4c1a7076d31fa489eec5c46eb11c7127703f9756b5fed1eab9bf27b7f0f151247886d3fa488911078bd2801a5dfa12a9ea2ecb7a4e61dfa460b2c291805f503b - languageName: node - linkType: hard - -"core-js@npm:^3.29.0": - version: 3.35.1 - resolution: "core-js@npm:3.35.1" - checksum: e246af6b634be3763ffe3ce6ac4601b4dc5b928006fb6c95e5d08ecd82a2413bf36f00ffe178b89c9a8e94000288933a78a9881b2c9498e6cf312b031013b952 - languageName: node - linkType: hard - -"cosmiconfig@npm:^7.0.0": - version: 7.1.0 - resolution: "cosmiconfig@npm:7.1.0" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f - languageName: node - linkType: hard - -"cosmiconfig@npm:^9.0.0": - version: 9.0.0 - resolution: "cosmiconfig@npm:9.0.0" - dependencies: - env-paths: ^2.2.1 - import-fresh: ^3.3.0 - js-yaml: ^4.1.0 - parse-json: ^5.2.0 - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: a30c424b53d442ea0bdd24cb1b3d0d8687c8dda4a17ab6afcdc439f8964438801619cdb66e8e79f63b9caa3e6586b60d8bab9ce203e72df6c5e80179b971fe8f - languageName: node - linkType: hard - -"create-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "create-jest@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - prompts: ^2.0.1 - bin: - create-jest: bin/create-jest.js - checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 - languageName: node - linkType: hard - -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 - languageName: node - linkType: hard - -"css-functions-list@npm:^3.2.1": - version: 3.2.1 - resolution: "css-functions-list@npm:3.2.1" - checksum: 57d7deb3b05e84d95b88ba9b3244cf60d33b40652b3357f084c805b24a9febda5987ade44ef25a56be41e73249a7dcc157abd704d8a0e998b2c1c2e2d5de6461 - languageName: node - linkType: hard - -"css-tree@npm:^2.3.1": - version: 2.3.1 - resolution: "css-tree@npm:2.3.1" - dependencies: - mdn-data: 2.0.30 - source-map-js: ^1.0.1 - checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 - languageName: node - linkType: hard - -"css.escape@npm:^1.5.1": - version: 1.5.1 - resolution: "css.escape@npm:1.5.1" - checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 - languageName: node - linkType: hard - -"cssesc@npm:^3.0.0": - version: 3.0.0 - resolution: "cssesc@npm:3.0.0" - bin: - cssesc: bin/cssesc - checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 - languageName: node - linkType: hard - -"cssfontparser@npm:^1.2.1": - version: 1.2.1 - resolution: "cssfontparser@npm:1.2.1" - checksum: 952d487cddab591fb944f2a4c326a7736bc963784a6d92b6ad4051f3bf5ee49a732eff62e29a52ff085197cb07f5bd66525a2245ded7fd356113ac81be9238b9 - languageName: node - linkType: hard - -"cssom@npm:^0.5.0": - version: 0.5.0 - resolution: "cssom@npm:0.5.0" - checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 - languageName: node - linkType: hard - -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 - languageName: node - linkType: hard - -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" - dependencies: - cssom: ~0.3.6 - checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 - languageName: node - linkType: hard - -"csstype@npm:^3.0.2": - version: 3.1.3 - resolution: "csstype@npm:3.1.3" - checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 - languageName: node - linkType: hard - -"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0": - version: 3.2.4 - resolution: "d3-array@npm:3.2.4" - dependencies: - internmap: 1 - 2 - checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 - languageName: node - linkType: hard - -"d3-axis@npm:3": - version: 3.0.0 - resolution: "d3-axis@npm:3.0.0" - checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b - languageName: node - linkType: hard - -"d3-brush@npm:3": - version: 3.0.0 - resolution: "d3-brush@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-drag: 2 - 3 - d3-interpolate: 1 - 3 - d3-selection: 3 - d3-transition: 3 - checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 - languageName: node - linkType: hard - -"d3-chord@npm:3": - version: 3.0.1 - resolution: "d3-chord@npm:3.0.1" - dependencies: - d3-path: 1 - 3 - checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b - languageName: node - linkType: hard - -"d3-color@npm:1 - 3, d3-color@npm:3": - version: 3.1.0 - resolution: "d3-color@npm:3.1.0" - checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b - languageName: node - linkType: hard - -"d3-contour@npm:4": - version: 4.0.2 - resolution: "d3-contour@npm:4.0.2" - dependencies: - d3-array: ^3.2.0 - checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b - languageName: node - linkType: hard - -"d3-delaunay@npm:6": - version: 6.0.4 - resolution: "d3-delaunay@npm:6.0.4" - dependencies: - delaunator: 5 - checksum: ce6d267d5ef21a8aeadfe4606329fc80a22ab6e7748d47bc220bcc396ee8be84b77a5473033954c5ac4aa522d265ddc45d4165d30fe4787dd60a15ea66b9bbb4 - languageName: node - linkType: hard - -"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": - version: 3.0.1 - resolution: "d3-dispatch@npm:3.0.1" - checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 - languageName: node - linkType: hard - -"d3-dispatch@npm:1, d3-dispatch@npm:^1.0.3": - version: 1.0.6 - resolution: "d3-dispatch@npm:1.0.6" - checksum: b4ecb016b6dda8b99aa4263b2d0a0c7b12e7dea93e4b0ce3013c94dca4d360d9ba00f5bdc15dc944cc4543af8e341067bd628f061f7b8deb642257e2ac90d06c - languageName: node - linkType: hard - -"d3-drag@npm:2 - 3, d3-drag@npm:3": - version: 3.0.0 - resolution: "d3-drag@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-selection: 3 - checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 - languageName: node - linkType: hard - -"d3-drag@npm:^1.0.4": - version: 1.2.5 - resolution: "d3-drag@npm:1.2.5" - dependencies: - d3-dispatch: 1 - d3-selection: 1 - checksum: 6e86e89aa8d511979eea1b5326709c05c2a3c2d43a93a82ed6b6f98528b2ab03b2f58f5e4f66582f2f1c0ae44f9c19f6f4f857249eb66aabc46e4942295fa0a7 - languageName: node - linkType: hard - -"d3-dsv@npm:1 - 3, d3-dsv@npm:3": - version: 3.0.1 - resolution: "d3-dsv@npm:3.0.1" - dependencies: - commander: 7 - iconv-lite: 0.6 - rw: 1 - bin: - csv2json: bin/dsv2json.js - csv2tsv: bin/dsv2dsv.js - dsv2dsv: bin/dsv2dsv.js - dsv2json: bin/dsv2json.js - json2csv: bin/json2dsv.js - json2dsv: bin/json2dsv.js - json2tsv: bin/json2dsv.js - tsv2csv: bin/dsv2dsv.js - tsv2json: bin/dsv2json.js - checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a - languageName: node - linkType: hard - -"d3-ease@npm:1 - 3, d3-ease@npm:3": - version: 3.0.1 - resolution: "d3-ease@npm:3.0.1" - checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd - languageName: node - linkType: hard - -"d3-fetch@npm:3": - version: 3.0.1 - resolution: "d3-fetch@npm:3.0.1" - dependencies: - d3-dsv: 1 - 3 - checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 - languageName: node - linkType: hard - -"d3-force@npm:3": - version: 3.0.0 - resolution: "d3-force@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-quadtree: 1 - 3 - d3-timer: 1 - 3 - checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def - languageName: node - linkType: hard - -"d3-format@npm:1 - 3, d3-format@npm:3": - version: 3.1.0 - resolution: "d3-format@npm:3.1.0" - checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 - languageName: node - linkType: hard - -"d3-geo@npm:3": - version: 3.1.0 - resolution: "d3-geo@npm:3.1.0" - dependencies: - d3-array: 2.5.0 - 3 - checksum: adf82b0c105c0c5951ae0a833d4dfc479a563791ad7938579fa14e1cffd623b469d8aa7a37dc413a327fb6ac56880f3da3f6c43d4abe3c923972dd98f34f37d1 - languageName: node - linkType: hard - -"d3-hierarchy@npm:3": - version: 3.1.2 - resolution: "d3-hierarchy@npm:3.1.2" - checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 - languageName: node - linkType: hard - -"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3": - version: 3.0.1 - resolution: "d3-interpolate@npm:3.0.1" - dependencies: - d3-color: 1 - 3 - checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b - languageName: node - linkType: hard - -"d3-path@npm:1": - version: 1.0.9 - resolution: "d3-path@npm:1.0.9" - checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 - languageName: node - linkType: hard - -"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": - version: 3.1.0 - resolution: "d3-path@npm:3.1.0" - checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 - languageName: node - linkType: hard - -"d3-polygon@npm:3": - version: 3.0.1 - resolution: "d3-polygon@npm:3.0.1" - checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c - languageName: node - linkType: hard - -"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": - version: 3.0.1 - resolution: "d3-quadtree@npm:3.0.1" - checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 - languageName: node - linkType: hard - -"d3-random@npm:3": - version: 3.0.1 - resolution: "d3-random@npm:3.0.1" - checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 - languageName: node - linkType: hard - -"d3-scale-chromatic@npm:3": - version: 3.0.0 - resolution: "d3-scale-chromatic@npm:3.0.0" - dependencies: - d3-color: 1 - 3 - d3-interpolate: 1 - 3 - checksum: a8ce4cb0267a17b28ebbb929f5e3071d985908a9c13b6fcaa2a198e1e018f275804d691c5794b970df0049725b7944f32297b31603d235af6414004f0c7f82c0 - languageName: node - linkType: hard - -"d3-scale@npm:4, d3-scale@npm:^4.0.2": - version: 4.0.2 - resolution: "d3-scale@npm:4.0.2" - dependencies: - d3-array: 2.10.0 - 3 - d3-format: 1 - 3 - d3-interpolate: 1.2.0 - 3 - d3-time: 2.1.1 - 3 - d3-time-format: 2 - 4 - checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e - languageName: node - linkType: hard - -"d3-selection@npm:1": - version: 1.4.2 - resolution: "d3-selection@npm:1.4.2" - checksum: 2484b392259b087a98f546f2610e6a11c90f38dae6b6b20a3fc85171038fcab4c72e702788b1960a4fece88bed2e36f268096358b5b48d3c7f0d35cfbe305da6 - languageName: node - linkType: hard - -"d3-selection@npm:2 - 3, d3-selection@npm:3": - version: 3.0.0 - resolution: "d3-selection@npm:3.0.0" - checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 - languageName: node - linkType: hard - -"d3-shape@npm:3, d3-shape@npm:^3.2.0": - version: 3.2.0 - resolution: "d3-shape@npm:3.2.0" - dependencies: - d3-path: ^3.1.0 - checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa - languageName: node - linkType: hard - -"d3-shape@npm:^1.3.5": - version: 1.3.7 - resolution: "d3-shape@npm:1.3.7" - dependencies: - d3-path: 1 - checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 - languageName: node - linkType: hard - -"d3-time-format@npm:2 - 4, d3-time-format@npm:4": - version: 4.1.0 - resolution: "d3-time-format@npm:4.1.0" - dependencies: - d3-time: 1 - 3 - checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 - languageName: node - linkType: hard - -"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3": - version: 3.1.0 - resolution: "d3-time@npm:3.1.0" - dependencies: - d3-array: 2 - 3 - checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 - languageName: node - linkType: hard - -"d3-timer@npm:1 - 3, d3-timer@npm:3": - version: 3.0.1 - resolution: "d3-timer@npm:3.0.1" - checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 - languageName: node - linkType: hard - -"d3-timer@npm:^1.0.5": - version: 1.0.10 - resolution: "d3-timer@npm:1.0.10" - checksum: f7040953672deb2dfa03830ace80dbbcb212f80890218eba15dcca6f33f74102d943023ccc2a563295195cd8c63639bb2410ef1691c8fecff4a114fdf5c666f4 - languageName: node - linkType: hard - -"d3-transition@npm:2 - 3, d3-transition@npm:3": - version: 3.0.1 - resolution: "d3-transition@npm:3.0.1" - dependencies: - d3-color: 1 - 3 - d3-dispatch: 1 - 3 - d3-ease: 1 - 3 - d3-interpolate: 1 - 3 - d3-timer: 1 - 3 - peerDependencies: - d3-selection: 2 - 3 - checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea - languageName: node - linkType: hard - -"d3-zoom@npm:3": - version: 3.0.0 - resolution: "d3-zoom@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-drag: 2 - 3 - d3-interpolate: 1 - 3 - d3-selection: 2 - 3 - d3-transition: 2 - 3 - checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 - languageName: node - linkType: hard - -"d3@npm:^7.8.0": - version: 7.8.5 - resolution: "d3@npm:7.8.5" - dependencies: - d3-array: 3 - d3-axis: 3 - d3-brush: 3 - d3-chord: 3 - d3-color: 3 - d3-contour: 4 - d3-delaunay: 6 - d3-dispatch: 3 - d3-drag: 3 - d3-dsv: 3 - d3-ease: 3 - d3-fetch: 3 - d3-force: 3 - d3-format: 3 - d3-geo: 3 - d3-hierarchy: 3 - d3-interpolate: 3 - d3-path: 3 - d3-polygon: 3 - d3-quadtree: 3 - d3-random: 3 - d3-scale: 4 - d3-scale-chromatic: 3 - d3-selection: 3 - d3-shape: 3 - d3-time: 3 - d3-time-format: 4 - d3-timer: 3 - d3-transition: 3 - d3-zoom: 3 - checksum: e407e79731f74d946a5eb8dec2f037b5a4ad33c294409b1d3531fdf7094de48adfe364974cb37e2396bdb81e23149d56d0ede716c004d6aebb52b3cc114cd15c - languageName: node - linkType: hard - -"dagre@npm:0.8.2": - version: 0.8.2 - resolution: "dagre@npm:0.8.2" - dependencies: - graphlib: ^2.1.5 - lodash: ^4.17.4 - checksum: 5a0446354610d423152badf34d0870a23382a8d224e158522840513dc095bf60fbc45132f9093a5bb348597be9967a46a21f3729af1a6d8d4d98d73ed8825fa4 - languageName: node - linkType: hard - -"dargs@npm:^8.0.0": - version: 8.1.0 - resolution: "dargs@npm:8.1.0" - checksum: 33f1b8f5f08e72c8a28355a87c0e1a9b6a0fec99252ecd9cf4735e65dd5f2e19747c860251ed5747b38e7204c7915fd7a7146aee5aaef5882c69169aae8b1d09 - languageName: node - linkType: hard - -"data-uri-to-buffer@npm:^4.0.0": - version: 4.0.1 - resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c - languageName: node - linkType: hard - -"data-urls@npm:^3.0.2": - version: 3.0.2 - resolution: "data-urls@npm:3.0.2" - dependencies: - abab: ^2.0.6 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 - languageName: node - linkType: hard - -"datamapper-poc@workspace:.": - version: 0.0.0-use.local - resolution: "datamapper-poc@workspace:." - dependencies: - "@lerna-lite/cli": ^3.0.0 - "@lerna-lite/publish": ^3.0.0 - "@lerna-lite/version": ^3.0.0 - husky: ^9.0.0 - lint-staged: ^15.0.0 - languageName: unknown - linkType: soft - -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 - languageName: node - linkType: hard - -"debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: ^2.1.1 - checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c - languageName: node - linkType: hard - -"decimal.js@npm:^10.4.2": - version: 10.4.3 - resolution: "decimal.js@npm:10.4.3" - checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae - languageName: node - linkType: hard - -"dedent@npm:^1.0.0, dedent@npm:^1.5.1": - version: 1.5.1 - resolution: "dedent@npm:1.5.1" - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - checksum: c3c300a14edf1bdf5a873f9e4b22e839d62490bc5c8d6169c1f15858a1a76733d06a9a56930e963d677a2ceeca4b6b0894cc5ea2f501aa382ca5b92af3413c2a - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 - languageName: node - linkType: hard - -"deepmerge-ts@npm:^5.1.0": - version: 5.1.0 - resolution: "deepmerge-ts@npm:5.1.0" - checksum: 6b57db93c2985e4a35f24b2451db31715050d143988b7d6346f4049c9aec21a6c289514b88d3ee3d6e0697e72ef5d96ff0bbb7cb75422d56fee55ee85c7168e7 - languageName: node - linkType: hard - -"deepmerge@npm:^4.2.2": - version: 4.3.1 - resolution: "deepmerge@npm:4.3.1" - checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 - languageName: node - linkType: hard - -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" - dependencies: - clone: ^1.0.2 - checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a - languageName: node - linkType: hard - -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": - version: 1.1.1 - resolution: "define-data-property@npm:1.1.1" - dependencies: - get-intrinsic: ^1.2.1 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.0 - checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": - version: 1.2.1 - resolution: "define-properties@npm:1.2.1" - dependencies: - define-data-property: ^1.0.1 - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 - languageName: node - linkType: hard - -"delaunator@npm:5": - version: 5.0.1 - resolution: "delaunator@npm:5.0.1" - dependencies: - robust-predicates: ^3.0.2 - checksum: 69ee43ec649b4a13b7f33c8a027fb3e8dfcb09266af324286118da757e04d3d39df619b905dca41421405c311317ccf632ecfa93db44519bacec3303c57c5a0b - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 - languageName: node - linkType: hard - -"deprecation@npm:^2.0.0": - version: 2.3.1 - resolution: "deprecation@npm:2.3.1" - checksum: f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 - languageName: node - linkType: hard - -"dequal@npm:^2.0.2, dequal@npm:^2.0.3": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 - languageName: node - linkType: hard - -"detect-indent@npm:^7.0.0": - version: 7.0.1 - resolution: "detect-indent@npm:7.0.1" - checksum: cbf3f0b1c3c881934ca94428e1179b26ab2a587e0d719031d37a67fb506d49d067de54ff057cb1e772e75975fed5155c01cd4518306fee60988b1486e3fc7768 - languageName: node - linkType: hard - -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - -"diff-sequences@npm:^29.6.3": - version: 29.6.3 - resolution: "diff-sequences@npm:29.6.3" - checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa - languageName: node - linkType: hard - -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 - languageName: node - linkType: hard - -"dnd-core@npm:^16.0.1": - version: 16.0.1 - resolution: "dnd-core@npm:16.0.1" - dependencies: - "@react-dnd/asap": ^5.0.1 - "@react-dnd/invariant": ^4.0.1 - redux: ^4.2.0 - checksum: b7d3ef4664f433af796f440ddd27ad9d7fef0205f26c4b7c0af6ebf612ffa9b33e64d095d3e79190c4baaed34aa36570f321ebe0d2cc8ff1031ff158a0907b3f - languageName: node - linkType: hard - -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" - dependencies: - esutils: ^2.0.2 - checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: ^2.0.2 - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce - languageName: node - linkType: hard - -"dom-accessibility-api@npm:^0.6.3": - version: 0.6.3 - resolution: "dom-accessibility-api@npm:0.6.3" - checksum: c325b5144bb406df23f4affecffc117dbaec9af03daad9ee6b510c5be647b14d28ef0a4ea5ca06d696d8ab40bb777e5fed98b985976fdef9d8790178fa1d573f - languageName: node - linkType: hard - -"dom-helpers@npm:^5.0.1": - version: 5.2.1 - resolution: "dom-helpers@npm:5.2.1" - dependencies: - "@babel/runtime": ^7.8.7 - csstype: ^3.0.2 - checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c - languageName: node - linkType: hard - -"dom-walk@npm:^0.1.0": - version: 0.1.2 - resolution: "dom-walk@npm:0.1.2" - checksum: 19eb0ce9c6de39d5e231530685248545d9cd2bd97b2cb3486e0bfc0f2a393a9addddfd5557463a932b52fdfcf68ad2a619020cd2c74a5fe46fbecaa8e80872f3 - languageName: node - linkType: hard - -"domexception@npm:^4.0.0": - version: 4.0.0 - resolution: "domexception@npm:4.0.0" - dependencies: - webidl-conversions: ^7.0.0 - checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 - languageName: node - linkType: hard - -"dot-prop@npm:^5.1.0": - version: 5.3.0 - resolution: "dot-prop@npm:5.3.0" - dependencies: - is-obj: ^2.0.0 - checksum: d5775790093c234ef4bfd5fbe40884ff7e6c87573e5339432870616331189f7f5d86575c5b5af2dcf0f61172990f4f734d07844b1f23482fff09e3c4bead05ea - languageName: node - linkType: hard - -"dotenv@npm:^16.4.1": - version: 16.4.4 - resolution: "dotenv@npm:16.4.4" - checksum: fbe0355972634d8843e1804115885e94d70618cfc975eadca67e26b2d71eb46f0ed45c12c2b88fd88cd6b1476a151471227b13311127a3504d10060cc74ce2f7 - languageName: node - linkType: hard - -"duplexer@npm:^0.1.1": - version: 0.1.2 - resolution: "duplexer@npm:0.1.2" - checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.601": - version: 1.4.645 - resolution: "electron-to-chromium@npm:1.4.645" - checksum: ac7d23b8123f09e2343016216b1a8f297ccfb4ae9dccefe3716023344cda8a81656916d40a87039fa3d448cac31c2c4147c6b913b22178a3a00d0221a8019513 - languageName: node - linkType: hard - -"emittery@npm:^0.13.1": - version: 0.13.1 - resolution: "emittery@npm:0.13.1" - checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 - languageName: node - linkType: hard - -"emoji-regex@npm:^10.3.0": - version: 10.3.0 - resolution: "emoji-regex@npm:10.3.0" - checksum: 5da48edfeb9462fb1ae5495cff2d79129974c696853fb0ce952cbf560f29a2756825433bf51cfd5157ec7b9f93f46f31d712e896d63e3d8ac9c3832bdb45ab73 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"entities@npm:^4.4.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1, error-ex@npm:^1.3.2": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3": - version: 1.22.3 - resolution: "es-abstract@npm:1.22.3" - dependencies: - array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.2 - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.5 - es-set-tostringtag: ^2.0.1 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.2 - get-symbol-description: ^1.0.0 - globalthis: ^1.0.3 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.0 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - internal-slot: ^1.0.5 - is-array-buffer: ^3.0.2 - is-callable: ^1.2.7 - is-negative-zero: ^2.0.2 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - is-string: ^1.0.7 - is-typed-array: ^1.1.12 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 - object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.1 - safe-array-concat: ^1.0.1 - safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.8 - string.prototype.trimend: ^1.0.7 - string.prototype.trimstart: ^1.0.7 - typed-array-buffer: ^1.0.0 - typed-array-byte-length: ^1.0.0 - typed-array-byte-offset: ^1.0.0 - typed-array-length: ^1.0.4 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.13 - checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a - languageName: node - linkType: hard - -"es-array-method-boxes-properly@npm:^1.0.0": - version: 1.0.0 - resolution: "es-array-method-boxes-properly@npm:1.0.0" - checksum: 2537fcd1cecf187083890bc6f5236d3a26bf39237433587e5bf63392e88faae929dbba78ff0120681a3f6f81c23fe3816122982c160d63b38c95c830b633b826 - languageName: node - linkType: hard - -"es-errors@npm:^1.0.0, es-errors@npm:^1.2.1": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.0.1": - version: 2.0.2 - resolution: "es-set-tostringtag@npm:2.0.2" - dependencies: - get-intrinsic: ^1.2.2 - has-tostringtag: ^1.0.0 - hasown: ^2.0.0 - checksum: afcec3a4c9890ae14d7ec606204858441c801ff84f312538e1d1ccf1e5493c8b17bd672235df785f803756472cb4f2d49b87bde5237aef33411e74c22f194e07 - languageName: node - linkType: hard - -"es-shim-unscopables@npm:^1.0.0": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" - dependencies: - hasown: ^2.0.0 - checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 - languageName: node - linkType: hard - -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: ^1.1.4 - is-date-object: ^1.0.1 - is-symbol: ^1.0.2 - checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed - languageName: node - linkType: hard - -"esbuild@npm:^0.19.3": - version: 0.19.12 - resolution: "esbuild@npm:0.19.12" - dependencies: - "@esbuild/aix-ppc64": 0.19.12 - "@esbuild/android-arm": 0.19.12 - "@esbuild/android-arm64": 0.19.12 - "@esbuild/android-x64": 0.19.12 - "@esbuild/darwin-arm64": 0.19.12 - "@esbuild/darwin-x64": 0.19.12 - "@esbuild/freebsd-arm64": 0.19.12 - "@esbuild/freebsd-x64": 0.19.12 - "@esbuild/linux-arm": 0.19.12 - "@esbuild/linux-arm64": 0.19.12 - "@esbuild/linux-ia32": 0.19.12 - "@esbuild/linux-loong64": 0.19.12 - "@esbuild/linux-mips64el": 0.19.12 - "@esbuild/linux-ppc64": 0.19.12 - "@esbuild/linux-riscv64": 0.19.12 - "@esbuild/linux-s390x": 0.19.12 - "@esbuild/linux-x64": 0.19.12 - "@esbuild/netbsd-x64": 0.19.12 - "@esbuild/openbsd-x64": 0.19.12 - "@esbuild/sunos-x64": 0.19.12 - "@esbuild/win32-arm64": 0.19.12 - "@esbuild/win32-ia32": 0.19.12 - "@esbuild/win32-x64": 0.19.12 - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 2936e29107b43e65a775b78b7bc66ddd7d76febd73840ac7e825fb22b65029422ff51038a08d19b05154f543584bd3afe7d1ef1c63900429475b17fbe61cb61f - languageName: node - linkType: hard - -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 - languageName: node - linkType: hard - -"escape-html@npm:^1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 - languageName: node - linkType: hard - -"escodegen@npm:^2.0.0": - version: 2.1.0 - resolution: "escodegen@npm:2.1.0" - dependencies: - esprima: ^4.0.1 - estraverse: ^5.2.0 - esutils: ^2.0.2 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^9.1.0": - version: 9.1.0 - resolution: "eslint-config-prettier@npm:9.1.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 - languageName: node - linkType: hard - -"eslint-import-resolver-node@npm:^0.3.9": - version: 0.3.9 - resolution: "eslint-import-resolver-node@npm:0.3.9" - dependencies: - debug: ^3.2.7 - is-core-module: ^2.13.0 - resolve: ^1.22.4 - checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.8.0": - version: 2.8.0 - resolution: "eslint-module-utils@npm:2.8.0" - dependencies: - debug: ^3.2.7 - peerDependenciesMeta: - eslint: - optional: true - checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 - languageName: node - linkType: hard - -"eslint-plugin-import@npm:^2.29.1": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" - dependencies: - array-includes: ^3.1.7 - array.prototype.findlastindex: ^1.2.3 - array.prototype.flat: ^1.3.2 - array.prototype.flatmap: ^1.3.2 - debug: ^3.2.7 - doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.9 - eslint-module-utils: ^2.8.0 - hasown: ^2.0.0 - is-core-module: ^2.13.1 - is-glob: ^4.0.3 - minimatch: ^3.1.2 - object.fromentries: ^2.0.7 - object.groupby: ^1.0.1 - object.values: ^1.1.7 - semver: ^6.3.1 - tsconfig-paths: ^3.15.0 - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e65159aef808136d26d029b71c8c6e4cb5c628e65e5de77f1eb4c13a379315ae55c9c3afa847f43f4ff9df7e54515c77ffc6489c6a6f81f7dd7359267577468c - languageName: node - linkType: hard - -"eslint-plugin-jest@npm:^27.6.3": - version: 27.8.0 - resolution: "eslint-plugin-jest@npm:27.8.0" - dependencies: - "@typescript-eslint/utils": ^5.10.0 - peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: "*" - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: 1fcdcf332b6d95c2433dcdf908b46e494a671bb101c675f99525c7a664853e60c247d63f302946d5a4f74f497a73c41673bc365a841f81bb4651b527379487e2 - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^5.1.3": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" - dependencies: - prettier-linter-helpers: ^1.0.0 - synckit: ^0.8.6 - peerDependencies: - "@types/eslint": ">=8.0.0" - eslint: ">=8.0.0" - eslint-config-prettier: "*" - prettier: ">=3.0.0" - peerDependenciesMeta: - "@types/eslint": - optional: true - eslint-config-prettier: - optional: true - checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.6.0": - version: 4.6.0 - resolution: "eslint-plugin-react-hooks@npm:4.6.0" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 23001801f14c1d16bf0a837ca7970d9dd94e7b560384b41db378b49b6e32dc43d6e2790de1bd737a652a86f81a08d6a91f402525061b47719328f586a57e86c3 - languageName: node - linkType: hard - -"eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.5 - resolution: "eslint-plugin-react-refresh@npm:0.4.5" - peerDependencies: - eslint: ">=7" - checksum: 953e665f6aaf097291a2bb07fde05466338aecd169bcd6faa708b50166912e3a757f45a45252cf7738b5e0d986224d363cc227864e98c979fe9978770b2b9f42 - languageName: node - linkType: hard - -"eslint-scope@npm:^5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^4.1.1 - checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 - languageName: node - linkType: hard - -"eslint@npm:^8.56.0": - version: 8.56.0 - resolution: "eslint@npm:8.56.0" - dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.56.0 - "@humanwhocodes/config-array": ^0.11.13 - "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 - ajv: ^6.12.4 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - find-up: ^5.0.0 - glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 - ignore: ^5.2.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 - bin: - eslint: bin/eslint.js - checksum: 883436d1e809b4a25d9eb03d42f584b84c408dbac28b0019f6ea07b5177940bf3cca86208f749a6a1e0039b63e085ee47aca1236c30721e91f0deef5cc5a5136 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: ^8.9.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 - languageName: node - linkType: hard - -"esprima@npm:^4.0.0, esprima@npm:^4.0.1": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" - dependencies: - estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: ^5.2.0 - checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 - languageName: node - linkType: hard - -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b - languageName: node - linkType: hard - -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 - languageName: node - linkType: hard - -"eventemitter3@npm:^5.0.1": - version: 5.0.1 - resolution: "eventemitter3@npm:5.0.1" - checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 - languageName: node - linkType: hard - -"execa@npm:8.0.1, execa@npm:^8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^8.0.1 - human-signals: ^5.0.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^4.1.0 - strip-final-newline: ^3.0.0 - checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f - languageName: node - linkType: hard - -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.0 - human-signals: ^2.1.0 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.1 - onetime: ^5.1.2 - signal-exit: ^3.0.3 - strip-final-newline: ^2.0.0 - checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 - languageName: node - linkType: hard - -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 - languageName: node - linkType: hard - -"expect@npm:^29.0.0, expect@npm:^29.7.0": - version: 29.7.0 - resolution: "expect@npm:29.7.0" - dependencies: - "@jest/expect-utils": ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 - languageName: node - linkType: hard - -"external-editor@npm:^3.1.0": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: ^0.7.0 - iconv-lite: ^0.4.24 - tmp: ^0.0.33 - checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d - languageName: node - linkType: hard - -"fast-diff@npm:^1.1.2": - version: 1.3.0 - resolution: "fast-diff@npm:1.3.0" - checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 - languageName: node - linkType: hard - -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c - languageName: node - linkType: hard - -"fast-xml-parser@npm:^4.3.4": - version: 4.3.4 - resolution: "fast-xml-parser@npm:4.3.4" - dependencies: - strnum: ^1.0.5 - bin: - fxparser: src/cli/cli.js - checksum: ab88177343f6d3d971d53462db3011003a83eb8a8db704840127ddaaf27105ea90cdf7903a0f9b2e1279ccc4adfca8dfc0277b33bae6262406f10c16bd60ccf9 - languageName: node - linkType: hard - -"fastest-levenshtein@npm:^1.0.16": - version: 1.0.16 - resolution: "fastest-levenshtein@npm:1.0.16" - checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.16.0 - resolution: "fastq@npm:1.16.0" - dependencies: - reusify: ^1.0.4 - checksum: 1d40ed1f100ae625e5720484e8602b7ad07649370f1cbc3e34a6b9630a0bfed6946bab0322d8a368a1e3cde87bb9bbb8d3bc2ae01a0c1f022fac1d07c04e4feb - languageName: node - linkType: hard - -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: 2.1.1 - checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 - languageName: node - linkType: hard - -"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": - version: 3.2.0 - resolution: "fetch-blob@npm:3.2.0" - dependencies: - node-domexception: ^1.0.0 - web-streams-polyfill: ^3.0.3 - checksum: f19bc28a2a0b9626e69fd7cf3a05798706db7f6c7548da657cbf5026a570945f5eeaedff52007ea35c8bcd3d237c58a20bf1543bc568ab2422411d762dd3d5bf - languageName: node - linkType: hard - -"figures@npm:^3.2.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" - dependencies: - escape-string-regexp: ^1.0.5 - checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b - languageName: node - linkType: hard - -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 - languageName: node - linkType: hard - -"file-entry-cache@npm:^8.0.0": - version: 8.0.0 - resolution: "file-entry-cache@npm:8.0.0" - dependencies: - flat-cache: ^4.0.0 - checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f - languageName: node - linkType: hard - -"file-saver@npm:^2.0.5": - version: 2.0.5 - resolution: "file-saver@npm:2.0.5" - checksum: c62d96e5cebc58b4bdf3ae8a60d5cf9607ad82f75f798c33a4ee63435ac2203002584d5256a2a780eda7feb5e19dc3b6351c2212e58b3f529e63d265a7cc79f7 - languageName: node - linkType: hard - -"file-selector@npm:^0.6.0": - version: 0.6.0 - resolution: "file-selector@npm:0.6.0" - dependencies: - tslib: ^2.4.0 - checksum: 7d051b6e5d793f3c6e2ab287ba5e7c2c6a0971bccc9d56e044c8047ba483e18f60fc0b5771c951dc707c0d15f4f36ccb4f1f1aaf385d21ec8f7700dadf8325ba - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 - languageName: node - linkType: hard - -"find-root@npm:^1.1.0": - version: 1.1.0 - resolution: "find-root@npm:1.1.0" - checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 - languageName: node - linkType: hard - -"find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: ^6.0.0 - path-exists: ^4.0.0 - checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 - languageName: node - linkType: hard - -"find-up@npm:^6.3.0": - version: 6.3.0 - resolution: "find-up@npm:6.3.0" - dependencies: - locate-path: ^7.1.0 - path-exists: ^5.0.0 - checksum: 9a21b7f9244a420e54c6df95b4f6fc3941efd3c3e5476f8274eb452f6a85706e7a6a90de71353ee4f091fcb4593271a6f92810a324ec542650398f928783c280 - languageName: node - linkType: hard - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: ^3.2.9 - keyv: ^4.5.3 - rimraf: ^3.0.2 - checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec - languageName: node - linkType: hard - -"flat-cache@npm:^4.0.0": - version: 4.0.0 - resolution: "flat-cache@npm:4.0.0" - dependencies: - flatted: ^3.2.9 - keyv: ^4.5.4 - rimraf: ^5.0.5 - checksum: 744d5f111aeecdfb963faab7089230c737a90c325137251b4fe144fd76932e19738a861e356c5ee828bb310592b42a1da667912d74d0403f1f4ef75be8bfdbac - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.2.9 - resolution: "flatted@npm:3.2.9" - checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 - languageName: node - linkType: hard - -"focus-trap@npm:7.5.2": - version: 7.5.2 - resolution: "focus-trap@npm:7.5.2" - dependencies: - tabbable: ^6.2.0 - checksum: 1eee29d18c152ef08849a5cfd6d462a6741ec15f08938a9d87336d47807f07dbfff2e6405b16b5ce96745eb86b60f3dcdd87b63f0ad240e47252254d2c248d40 - languageName: node - linkType: hard - -"follow-redirects@npm:^1.15.4": - version: 1.15.5 - resolution: "follow-redirects@npm:1.15.5" - peerDependenciesMeta: - debug: - optional: true - checksum: 5ca49b5ce6f44338cbfc3546823357e7a70813cecc9b7b768158a1d32c1e62e7407c944402a918ea8c38ae2e78266312d617dc68783fac502cbb55e1047b34ec - languageName: node - linkType: hard - -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" - dependencies: - is-callable: ^1.1.3 - checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" - dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c - languageName: node - linkType: hard - -"formdata-polyfill@npm:^4.0.10": - version: 4.0.10 - resolution: "formdata-polyfill@npm:4.0.10" - dependencies: - fetch-blob: ^3.1.2 - checksum: 82a34df292afadd82b43d4a740ce387bc08541e0a534358425193017bf9fb3567875dc5f69564984b1da979979b70703aa73dee715a17b6c229752ae736dd9db - languageName: node - linkType: hard - -"fs-extra@npm:^11.2.0": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: ^7.0.3 - checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 - languageName: node - linkType: hard - -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 - languageName: node - linkType: hard - -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - functions-have-names: ^1.2.3 - checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 - languageName: node - linkType: hard - -"gauge@npm:^5.0.0": - version: 5.0.1 - resolution: "gauge@npm:5.0.1" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^4.0.1 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 09b1eb8d8c850df7e4e2822feef27427afc845d4839fa13a08ddad74f882caf668dd1e77ac5e059d3e9a7b0cef59b706d28be40e1dc5fd326da32965e1f206a6 - languageName: node - linkType: hard - -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 - languageName: node - linkType: hard - -"get-east-asian-width@npm:^1.0.0": - version: 1.2.0 - resolution: "get-east-asian-width@npm:1.2.0" - checksum: ea55f4d4a42c4b00d3d9be3111bc17eb0161f60ed23fc257c1390323bb780a592d7a8bdd550260fd4627dabee9a118cdfa3475ae54edca35ebcd3bdae04179e3 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.2.3": - version: 1.2.3 - resolution: "get-intrinsic@npm:1.2.3" - dependencies: - es-errors: ^1.0.0 - function-bind: ^1.1.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 497fe6e444a2c570d174486c2450fc2b8c5020ae33a945a4b3d06c88bd69fb02a4611163e7a5bd9a5f61162e85ee83e55f06400dd3de108d6407eea32c6330b7 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": - version: 1.2.2 - resolution: "get-intrinsic@npm:1.2.2" - dependencies: - function-bind: ^1.1.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417 - languageName: node - linkType: hard - -"get-node-dimensions@npm:^1.2.1": - version: 1.2.1 - resolution: "get-node-dimensions@npm:1.2.1" - checksum: a68502769588a62a1005a22687517474f9cd426817403ed15fe7b411a2fdeb792ded5f52b3647051e2e982e01681f3010d25dd5679d754dea1d4e904e98d89b6 - languageName: node - linkType: hard - -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad - languageName: node - linkType: hard - -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 - languageName: node - linkType: hard - -"get-symbol-description@npm:^1.0.0": - version: 1.0.0 - resolution: "get-symbol-description@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 - languageName: node - linkType: hard - -"git-raw-commits@npm:^4.0.0": - version: 4.0.0 - resolution: "git-raw-commits@npm:4.0.0" - dependencies: - dargs: ^8.0.0 - meow: ^12.0.1 - split2: ^4.0.0 - bin: - git-raw-commits: cli.mjs - checksum: 95546f4afcb33cf00ff638f7fec55ad61d4d927447737900e1f6fcbbdbb341b3f150908424cc62acb6d9faaea6f1e8f55d0697b899f0589af9d2733afb20abfb - languageName: node - linkType: hard - -"git-semver-tags@npm:^7.0.0": - version: 7.0.1 - resolution: "git-semver-tags@npm:7.0.1" - dependencies: - meow: ^12.0.1 - semver: ^7.5.2 - bin: - git-semver-tags: cli.mjs - checksum: 07b8a352bd28ad7678a2e12c91b11b5e53aff017420497bbb1cba0645e609f58d0a7d02d5f2ea6c7cd3019d7631ce7737f64cc90c47d944753c6bd2a36c03211 - languageName: node - linkType: hard - -"git-up@npm:^7.0.0": - version: 7.0.0 - resolution: "git-up@npm:7.0.0" - dependencies: - is-ssh: ^1.4.0 - parse-url: ^8.1.0 - checksum: 2faadbab51e94d2ffb220e426e950087cc02c15d664e673bd5d1f734cfa8196fed8b19493f7bf28fe216d087d10e22a7fd9b63687e0ba7d24f0ddcfb0a266d6e - languageName: node - linkType: hard - -"git-url-parse@npm:^14.0.0": - version: 14.0.0 - resolution: "git-url-parse@npm:14.0.0" - dependencies: - git-up: ^7.0.0 - checksum: b011c5de652e60e5f19de9815d1b78b2f725deb07e73d1b9ff8ca6657406d0a6c691fbe4460017822676a80635f93099345cadbd06361b76f53c4556265d3e48 - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: ^4.0.3 - checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": - version: 10.3.10 - resolution: "glob@npm:10.3.10" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 - bin: - glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 - languageName: node - linkType: hard - -"glob@npm:^7.1.3, glob@npm:^7.1.4": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 - languageName: node - linkType: hard - -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" - dependencies: - global-prefix: ^3.0.0 - checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 - languageName: node - linkType: hard - -"global-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "global-prefix@npm:3.0.0" - dependencies: - ini: ^1.3.5 - kind-of: ^6.0.2 - which: ^1.3.1 - checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d - languageName: node - linkType: hard - -"global@npm:^4.4.0": - version: 4.4.0 - resolution: "global@npm:4.4.0" - dependencies: - min-document: ^2.19.0 - process: ^0.11.10 - checksum: 9c057557c8f5a5bcfbeb9378ba4fe2255d04679452be504608dd5f13b54edf79f7be1db1031ea06a4ec6edd3b9f5f17d2d172fb47e6c69dae57fd84b7e72b77f - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e - languageName: node - linkType: hard - -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: ^0.20.2 - checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c - languageName: node - linkType: hard - -"globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" - dependencies: - define-properties: ^1.1.3 - checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 - languageName: node - linkType: hard - -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - -"globby@npm:^14.0.0": - version: 14.0.0 - resolution: "globby@npm:14.0.0" - dependencies: - "@sindresorhus/merge-streams": ^1.0.0 - fast-glob: ^3.3.2 - ignore: ^5.2.4 - path-type: ^5.0.0 - slash: ^5.1.0 - unicorn-magic: ^0.1.0 - checksum: f331b42993e420c8f2b61a6ca062276977ea6d95f181640ff018f00200f4fe5b50f1fae7540903483e6570ca626fe16234ab88e848d43381a2529220548a9d39 - languageName: node - linkType: hard - -"globjoin@npm:^0.1.4": - version: 0.1.4 - resolution: "globjoin@npm:0.1.4" - checksum: 0a47d88d566122d9e42da946453ee38b398e0021515ac6a95d13f980ba8c1e42954e05ee26cfcbffce1ac1ee094d0524b16ce1dd874ca52408d6db5c6d39985b - languageName: node - linkType: hard - -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: ^1.1.3 - checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 - languageName: node - linkType: hard - -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 - languageName: node - linkType: hard - -"graphlib@npm:^2.1.5": - version: 2.1.8 - resolution: "graphlib@npm:2.1.8" - dependencies: - lodash: ^4.17.15 - checksum: 1e0db4dea1c8187d59103d5582ecf32008845ebe2103959a51d22cb6dae495e81fb9263e22c922bca3aaecb56064a45cd53424e15a4626cfb5a0c52d0aff61a8 - languageName: node - linkType: hard - -"handlebars@npm:^4.7.7": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" - dependencies: - minimist: ^1.2.5 - neo-async: ^2.6.2 - source-map: ^0.6.1 - uglify-js: ^3.1.4 - wordwrap: ^1.0.0 - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1": - version: 1.0.1 - resolution: "has-property-descriptors@npm:1.0.1" - dependencies: - get-intrinsic: ^1.2.2 - checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4 - languageName: node - linkType: hard - -"has-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "has-proto@npm:1.0.1" - checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: ^1.0.3 - checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d - languageName: node - linkType: hard - -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 - languageName: node - linkType: hard - -"hasown@npm:^2.0.0": - version: 2.0.0 - resolution: "hasown@npm:2.0.0" - dependencies: - function-bind: ^1.1.2 - checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 - languageName: node - linkType: hard - -"hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": - version: 3.3.2 - resolution: "hoist-non-react-statics@npm:3.3.2" - dependencies: - react-is: ^16.7.0 - checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 - languageName: node - linkType: hard - -"hosted-git-info@npm:^7.0.0, hosted-git-info@npm:^7.0.1": - version: 7.0.1 - resolution: "hosted-git-info@npm:7.0.1" - dependencies: - lru-cache: ^10.0.1 - checksum: be5280f0a20d6153b47e1ab578e09f5ae8ad734301b3ed7e547dc88a6814d7347a4888db1b4f9635cc738e3c0ef1fbff02272aba7d07c75d4c5a50ff8d618db6 - languageName: node - linkType: hard - -"html-encoding-sniffer@npm:^3.0.0": - version: 3.0.0 - resolution: "html-encoding-sniffer@npm:3.0.0" - dependencies: - whatwg-encoding: ^2.0.0 - checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 - languageName: node - linkType: hard - -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 - languageName: node - linkType: hard - -"html-tags@npm:^3.3.1": - version: 3.3.1 - resolution: "html-tags@npm:3.3.1" - checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "http-proxy-agent@npm:7.0.0" - dependencies: - agent-base: ^7.1.0 - debug: ^4.3.4 - checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.2 - resolution: "https-proxy-agent@npm:7.0.2" - dependencies: - agent-base: ^7.0.2 - debug: 4 - checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 - languageName: node - linkType: hard - -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c - languageName: node - linkType: hard - -"husky@npm:^9.0.0": - version: 9.0.11 - resolution: "husky@npm:9.0.11" - bin: - husky: bin.mjs - checksum: 1aebc3334dc7ac6288ff5e1fb72cfb447cfa474e72cf7ba692e8c5698c573ab725c28c6a5088c9f8e6aca5f47d40fa7261beffbc07a4d307ca21656dc4571f07 - languageName: node - linkType: hard - -"iconv-lite@npm:0.6, iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf - languageName: node - linkType: hard - -"iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e - languageName: node - linkType: hard - -"ignore-walk@npm:^6.0.4": - version: 6.0.4 - resolution: "ignore-walk@npm:6.0.4" - dependencies: - minimatch: ^9.0.0 - checksum: 8161bb3232eee92367049b186a02ad35e3a47edda2de0c0eb216aa89cf6183c33c46aef22b25e1bf5105c643bd2cc2bb722f474870a93a3c56ef8cca22eb64a1 - languageName: node - linkType: hard - -"ignore@npm:^5.2.0, ignore@npm:^5.3.0": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 - languageName: node - linkType: hard - -"ignore@npm:^5.2.4": - version: 5.3.0 - resolution: "ignore@npm:5.3.0" - checksum: 2736da6621f14ced652785cb05d86301a66d70248597537176612bd0c8630893564bd5f6421f8806b09e8472e75c591ef01672ab8059c07c6eb2c09cefe04bf9 - languageName: node - linkType: hard - -"immutable@npm:^4.0.0": - version: 4.3.5 - resolution: "immutable@npm:4.3.5" - checksum: 0e25dd5c314421faede9e1122ab26cdb638cc3edc8678c4a75dee104279b12621a30c80a480fae7f68bc7e81672f1e672e454dc0fdc7e6cf0af10809348387b8 - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa - languageName: node - linkType: hard - -"import-local@npm:^3.0.2, import-local@npm:^3.1.0": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" - dependencies: - pkg-dir: ^4.2.0 - resolve-cwd: ^3.0.0 - bin: - import-local-fixture: fixtures/cli.js - checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 - languageName: node - linkType: hard - -"ini@npm:^1.3.4, ini@npm:^1.3.5": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 - languageName: node - linkType: hard - -"inquirer@npm:^9.2.14": - version: 9.2.14 - resolution: "inquirer@npm:9.2.14" - dependencies: - "@ljharb/through": ^2.3.12 - ansi-escapes: ^4.3.2 - chalk: ^5.3.0 - cli-cursor: ^3.1.0 - cli-width: ^4.1.0 - external-editor: ^3.1.0 - figures: ^3.2.0 - lodash: ^4.17.21 - mute-stream: 1.0.0 - ora: ^5.4.1 - run-async: ^3.0.0 - rxjs: ^7.8.1 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wrap-ansi: ^6.2.0 - checksum: a4e4d6eaa295dee1a4e658f51646a19644f7a747566fc445ca14ba4401dbbf1819edb6832d8b1f5c3fb2baa3d1bf26251ea33fe087ee45a7ae45381911443833 - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.5": - version: 1.0.6 - resolution: "internal-slot@npm:1.0.6" - dependencies: - get-intrinsic: ^1.2.2 - hasown: ^2.0.0 - side-channel: ^1.0.4 - checksum: 7872454888047553ce97a3fa1da7cc054a28ec5400a9c2e9f4dbe4fe7c1d041cb8e8301467614b80d4246d50377aad2fb58860b294ed74d6700cc346b6f89549 - languageName: node - linkType: hard - -"internmap@npm:1 - 2": - version: 2.0.3 - resolution: "internmap@npm:2.0.3" - checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 - languageName: node - linkType: hard - -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: ^1.0.1 - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: ^2.0.0 - checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 - languageName: node - linkType: hard - -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac - languageName: node - linkType: hard - -"is-ci@npm:^3.0.1": - version: 3.0.1 - resolution: "is-ci@npm:3.0.1" - dependencies: - ci-info: ^3.2.0 - bin: - is-ci: bin.js - checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.8.1": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" - dependencies: - hasown: ^2.0.0 - checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^4.0.0": - version: 4.0.0 - resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^5.0.0": - version: 5.0.0 - resolution: "is-fullwidth-code-point@npm:5.0.0" - dependencies: - get-east-asian-width: ^1.0.0 - checksum: 8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 - languageName: node - linkType: hard - -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 - languageName: node - linkType: hard - -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 - languageName: node - linkType: hard - -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.2": - version: 2.0.2 - resolution: "is-negative-zero@npm:2.0.2" - checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: ^1.0.0 - checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a - languageName: node - linkType: hard - -"is-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "is-obj@npm:2.0.0" - checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - -"is-plain-obj@npm:^4.0.0": - version: 4.1.0 - resolution: "is-plain-obj@npm:4.1.0" - checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce - languageName: node - linkType: hard - -"is-plain-object@npm:^2.0.4": - version: 2.0.4 - resolution: "is-plain-object@npm:2.0.4" - dependencies: - isobject: ^3.0.1 - checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca - languageName: node - linkType: hard - -"is-plain-object@npm:^5.0.0": - version: 5.0.0 - resolution: "is-plain-object@npm:5.0.0" - checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c - languageName: node - linkType: hard - -"is-potential-custom-element-name@npm:^1.0.1": - version: 1.0.1 - resolution: "is-potential-custom-element-name@npm:1.0.1" - checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab - languageName: node - linkType: hard - -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "is-shared-array-buffer@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a - languageName: node - linkType: hard - -"is-ssh@npm:^1.4.0": - version: 1.4.0 - resolution: "is-ssh@npm:1.4.0" - dependencies: - protocols: ^2.0.1 - checksum: 75eaa17b538bee24b661fbeb0f140226ac77e904a6039f787bea418431e2162f1f9c4c4ccad3bd169e036cd701cc631406e8c505d9fa7e20164e74b47f86f40f - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 - languageName: node - linkType: hard - -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: ^1.0.0 - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: ^1.0.2 - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 - languageName: node - linkType: hard - -"is-text-path@npm:^2.0.0": - version: 2.0.0 - resolution: "is-text-path@npm:2.0.0" - dependencies: - text-extensions: ^2.0.0 - checksum: 3a8725fc7c0d4c7741a97993bc2fecc09a0963660394d3ee76145274366c98ad57c6791d20d4ef829835f573b1137265051c05ecd65fbe72f69bb9ab9e3babbd - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.9": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" - dependencies: - which-typed-array: ^1.1.14 - checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 - languageName: node - linkType: hard - -"is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 - languageName: node - linkType: hard - -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de - languageName: node - linkType: hard - -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e - languageName: node - linkType: hard - -"isobject@npm:^3.0.1": - version: 3.0.1 - resolution: "isobject@npm:3.0.1" - checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.2 - resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^6.3.0 - checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.1 - resolution: "istanbul-lib-instrument@npm:6.0.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^7.5.4 - checksum: fb23472e739cfc9b027cefcd7d551d5e7ca7ff2817ae5150fab99fe42786a7f7b56a29a2aa8309c37092e18297b8003f9c274f50ca4360949094d17fbac81472 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.1 - resolution: "istanbul-lib-report@npm:3.0.1" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^4.0.0 - supports-color: ^7.1.0 - checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.3": - version: 3.1.6 - resolution: "istanbul-reports@npm:3.1.6" - dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 44c4c0582f287f02341e9720997f9e82c071627e1e862895745d5f52ec72c9b9f38e1d12370015d2a71dcead794f34c7732aaef3fab80a24bc617a21c3d911d6 - languageName: node - linkType: hard - -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 - languageName: node - linkType: hard - -"jest-canvas-mock@npm:^2.5.2": - version: 2.5.2 - resolution: "jest-canvas-mock@npm:2.5.2" - dependencies: - cssfontparser: ^1.2.1 - moo-color: ^1.0.2 - checksum: a3004d2e96473049045e49dcf98e5ea6011494048ab42b5422b3089d9ff406aaca8353e79587055d840fa145541668eb8f78613765f252ad5901a8217e91ea5d - languageName: node - linkType: hard - -"jest-changed-files@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-changed-files@npm:29.7.0" - dependencies: - execa: ^5.0.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 - languageName: node - linkType: hard - -"jest-circus@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-circus@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^1.0.0 - is-generator-fn: ^2.0.0 - jest-each: ^29.7.0 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - pretty-format: ^29.7.0 - pure-rand: ^6.0.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 - languageName: node - linkType: hard - -"jest-cli@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-cli@npm:29.7.0" - dependencies: - "@jest/core": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - create-jest: ^29.7.0 - exit: ^0.1.2 - import-local: ^3.0.2 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - yargs: ^17.3.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 - languageName: node - linkType: hard - -"jest-config@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-config@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.7.0 - "@jest/types": ^29.6.3 - babel-jest: ^29.7.0 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-circus: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-get-type: ^29.6.3 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-runner: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" - peerDependenciesMeta: - "@types/node": - optional: true - ts-node: - optional: true - checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff - languageName: node - linkType: hard - -"jest-diff@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-diff@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.6.3 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 - languageName: node - linkType: hard - -"jest-docblock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-docblock@npm:29.7.0" - dependencies: - detect-newline: ^3.0.0 - checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 - languageName: node - linkType: hard - -"jest-each@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-each@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - jest-util: ^29.7.0 - pretty-format: ^29.7.0 - checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c - languageName: node - linkType: hard - -"jest-environment-jsdom@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-jsdom@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/jsdom": ^20.0.0 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - jsdom: ^20.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 - languageName: node - linkType: hard - -"jest-environment-node@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-node@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 - languageName: node - linkType: hard - -"jest-get-type@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-get-type@npm:29.6.3" - checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 - languageName: node - linkType: hard - -"jest-haste-map@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-haste-map@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/graceful-fs": ^4.1.3 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - micromatch: ^4.0.4 - walker: ^1.0.8 - dependenciesMeta: - fsevents: - optional: true - checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 - languageName: node - linkType: hard - -"jest-leak-detector@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-leak-detector@npm:29.7.0" - dependencies: - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-matcher-utils@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd - languageName: node - linkType: hard - -"jest-message-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-message-util@npm:29.7.0" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.6.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 - languageName: node - linkType: hard - -"jest-mock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-mock@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-util: ^29.7.0 - checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 - languageName: node - linkType: hard - -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.3 - resolution: "jest-pnp-resolver@npm:1.2.3" - peerDependencies: - jest-resolve: "*" - peerDependenciesMeta: - jest-resolve: - optional: true - checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 - languageName: node - linkType: hard - -"jest-regex-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-regex-util@npm:29.6.3" - checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a - languageName: node - linkType: hard - -"jest-resolve-dependencies@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve-dependencies@npm:29.7.0" - dependencies: - jest-regex-util: ^29.6.3 - jest-snapshot: ^29.7.0 - checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 - languageName: node - linkType: hard - -"jest-resolve@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-pnp-resolver: ^1.2.2 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - resolve: ^1.20.0 - resolve.exports: ^2.0.0 - slash: ^3.0.0 - checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 - languageName: node - linkType: hard - -"jest-runner@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runner@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/environment": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.13.1 - graceful-fs: ^4.2.9 - jest-docblock: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-leak-detector: ^29.7.0 - jest-message-util: ^29.7.0 - jest-resolve: ^29.7.0 - jest-runtime: ^29.7.0 - jest-util: ^29.7.0 - jest-watcher: ^29.7.0 - jest-worker: ^29.7.0 - p-limit: ^3.1.0 - source-map-support: 0.5.13 - checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb - languageName: node - linkType: hard - -"jest-runtime@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runtime@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/globals": ^29.7.0 - "@jest/source-map": ^29.6.3 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e - languageName: node - linkType: hard - -"jest-snapshot@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-snapshot@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-jsx": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - chalk: ^4.0.0 - expect: ^29.7.0 - graceful-fs: ^4.2.9 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - natural-compare: ^1.4.0 - pretty-format: ^29.7.0 - semver: ^7.5.3 - checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-util@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca - languageName: node - linkType: hard - -"jest-validate@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-validate@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - camelcase: ^6.2.0 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - leven: ^3.1.0 - pretty-format: ^29.7.0 - checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae - languageName: node - linkType: hard - -"jest-watcher@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-watcher@npm:29.7.0" - dependencies: - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - emittery: ^0.13.1 - jest-util: ^29.7.0 - string-length: ^4.0.1 - checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f - languageName: node - linkType: hard - -"jest-worker@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-worker@npm:29.7.0" - dependencies: - "@types/node": "*" - jest-util: ^29.7.0 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 - languageName: node - linkType: hard - -"jest@npm:^29.7.0": - version: 29.7.0 - resolution: "jest@npm:29.7.0" - dependencies: - "@jest/core": ^29.7.0 - "@jest/types": ^29.6.3 - import-local: ^3.0.2 - jest-cli: ^29.7.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b - languageName: node - linkType: hard - -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 - languageName: node - linkType: hard - -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 - bin: - js-yaml: bin/js-yaml.js - checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c - languageName: node - linkType: hard - -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: ^2.0.1 - bin: - js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a - languageName: node - linkType: hard - -"jsdom@npm:^20.0.0": - version: 20.0.3 - resolution: "jsdom@npm:20.0.3" - dependencies: - abab: ^2.0.6 - acorn: ^8.8.1 - acorn-globals: ^7.0.0 - cssom: ^0.5.0 - cssstyle: ^2.3.0 - data-urls: ^3.0.2 - decimal.js: ^10.4.2 - domexception: ^4.0.0 - escodegen: ^2.0.0 - form-data: ^4.0.0 - html-encoding-sniffer: ^3.0.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.1 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.2 - parse5: ^7.1.1 - saxes: ^6.0.0 - symbol-tree: ^3.2.4 - tough-cookie: ^4.1.2 - w3c-xmlserializer: ^4.0.0 - webidl-conversions: ^7.0.0 - whatwg-encoding: ^2.0.0 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - ws: ^8.11.0 - xml-name-validator: ^4.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d - languageName: node - linkType: hard - -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" - bin: - jsesc: bin/jsesc - checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^3.0.0": - version: 3.0.1 - resolution: "json-parse-even-better-errors@npm:3.0.1" - checksum: bf74fa3f715e56699ccd68b80a7d20908de432a3fae2d5aa2ed530a148e9d9ccdf8e6983b93d9966a553aa70dcf003ce3a7ffec2c0ce74d2a6173e3691a426f0 - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b - languageName: node - linkType: hard - -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 - languageName: node - linkType: hard - -"json-stringify-nice@npm:^1.1.4": - version: 1.1.4 - resolution: "json-stringify-nice@npm:1.1.4" - checksum: 6ddf781148b46857ab04e97f47be05f14c4304b86eb5478369edbeacd070c21c697269964b982fc977e8989d4c59091103b1d9dc291aba40096d6cbb9a392b72 - languageName: node - linkType: hard - -"json-stringify-safe@npm:^5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee - languageName: node - linkType: hard - -"json5@npm:^1.0.2": - version: 1.0.2 - resolution: "json5@npm:1.0.2" - dependencies: - minimist: ^1.2.0 - bin: - json5: lib/cli.js - checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 - languageName: node - linkType: hard - -"json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 - languageName: node - linkType: hard - -"jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": - version: 1.3.1 - resolution: "jsonparse@npm:1.3.1" - checksum: 6514a7be4674ebf407afca0eda3ba284b69b07f9958a8d3113ef1005f7ec610860c312be067e450c569aab8b89635e332cee3696789c750692bb60daba627f4d - languageName: node - linkType: hard - -"just-diff-apply@npm:^5.2.0": - version: 5.5.0 - resolution: "just-diff-apply@npm:5.5.0" - checksum: ed6bbd59781542ccb786bd843038e4591e8390aa788075beb69d358051f68fbeb122bda050b7f42515d51fb64b907d5c7bea694a0543b87b24ce406cfb5f5bfa - languageName: node - linkType: hard - -"just-diff@npm:^6.0.0": - version: 6.0.2 - resolution: "just-diff@npm:6.0.2" - checksum: 1a0c7524f640cb88ab013862733e710f840927834208fd3b85cbc5da2ced97acc75e7dcfe493268ac6a6514c51dd8624d2fd9d057050efba3c02b81a6dcb7ff9 - languageName: node - linkType: hard - -"keyv@npm:^4.5.3, keyv@npm:^4.5.4": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: 3.0.1 - checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 - languageName: node - linkType: hard - -"kind-of@npm:^6.0.2": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b - languageName: node - linkType: hard - -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 - languageName: node - linkType: hard - -"known-css-properties@npm:^0.29.0": - version: 0.29.0 - resolution: "known-css-properties@npm:0.29.0" - checksum: daa6562e907f856cbfd58a00c42f532c9bba283388984da6a3bffb494e56612e5f23c52f30b0d9885f0ea07ad5d88bfa0470ee65017a6ce6c565289a1afd78af - languageName: node - linkType: hard - -"leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 - languageName: node - linkType: hard - -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: ^1.2.1 - type-check: ~0.4.0 - checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 - languageName: node - linkType: hard - -"libnpmaccess@npm:^8.0.2": - version: 8.0.2 - resolution: "libnpmaccess@npm:8.0.2" - dependencies: - npm-package-arg: ^11.0.1 - npm-registry-fetch: ^16.0.0 - checksum: 20113f2fe4e32e3aaaa04f89cf2a7c1c907f847e274cc81d16617e5e5d5be4f801cd5709fe978bd9f9c0f6983d2cd941933a3c59393b63f7f2283bafb6a31659 - languageName: node - linkType: hard - -"libnpmpublish@npm:^9.0.4": - version: 9.0.4 - resolution: "libnpmpublish@npm:9.0.4" - dependencies: - ci-info: ^4.0.0 - normalize-package-data: ^6.0.0 - npm-package-arg: ^11.0.1 - npm-registry-fetch: ^16.0.0 - proc-log: ^3.0.0 - semver: ^7.3.7 - sigstore: ^2.2.0 - ssri: ^10.0.5 - checksum: 0f7341b222cfd7d60721804cf2e1468fe4315e7ce77389ecc475d5b3b380dc8fdf13de40a8116e3da6a1d8544cbd467545227d4f62e5a2bc1637e110c80bbf6e - languageName: node - linkType: hard - -"lilconfig@npm:3.0.0": - version: 3.0.0 - resolution: "lilconfig@npm:3.0.0" - checksum: a155f1cd24d324ab20dd6974db9ebcf3fb6f2b60175f7c052d917ff8a746b590bc1ee550f6fc3cb1e8716c8b58304e22fe2193febebc0cf16fa86d85e6f896c5 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 - languageName: node - linkType: hard - -"lines-and-columns@npm:^2.0.3": - version: 2.0.4 - resolution: "lines-and-columns@npm:2.0.4" - checksum: f5e3e207467d3e722280c962b786dc20ebceb191821dcd771d14ab3146b6744cae28cf305ee4638805bec524ac54800e15698c853fcc53243821f88df37e4975 - languageName: node - linkType: hard - -"lint-staged@npm:^15.0.0": - version: 15.2.2 - resolution: "lint-staged@npm:15.2.2" - dependencies: - chalk: 5.3.0 - commander: 11.1.0 - debug: 4.3.4 - execa: 8.0.1 - lilconfig: 3.0.0 - listr2: 8.0.1 - micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.4 - bin: - lint-staged: bin/lint-staged.js - checksum: 031718ad3f839475fb1d41bda34bab4330f25814175808169daa2686ff026e5a667a25c95fdf3cd46dac72f9af2c98852565bb62d920992f5e2d3f730c279760 - languageName: node - linkType: hard - -"listr2@npm:8.0.1": - version: 8.0.1 - resolution: "listr2@npm:8.0.1" - dependencies: - cli-truncate: ^4.0.0 - colorette: ^2.0.20 - eventemitter3: ^5.0.1 - log-update: ^6.0.0 - rfdc: ^1.3.0 - wrap-ansi: ^9.0.0 - checksum: 4dfeabfa037b3981d0edbf30789971ba727ba4cfcc13051ceaff7a1b3d26509ef2d946015c65c600b0775ec9d1ef58a81937d94c9c03de464b654f429cc7c3ed - languageName: node - linkType: hard - -"load-json-file@npm:^7.0.1": - version: 7.0.1 - resolution: "load-json-file@npm:7.0.1" - checksum: a560288da6891778321ef993e4bdbdf05374a4f3a3aeedd5ba6b64672798c830d748cfc59a2ec9891a3db30e78b3d04172e0dcb0d4828168289a393147ca0e74 - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 - languageName: node - linkType: hard - -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: ^5.0.0 - checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a - languageName: node - linkType: hard - -"locate-path@npm:^7.1.0": - version: 7.2.0 - resolution: "locate-path@npm:7.2.0" - dependencies: - p-locate: ^6.0.0 - checksum: c1b653bdf29beaecb3d307dfb7c44d98a2a98a02ebe353c9ad055d1ac45d6ed4e1142563d222df9b9efebc2bcb7d4c792b507fad9e7150a04c29530b7db570f8 - languageName: node - linkType: hard - -"lodash.debounce@npm:^4.0.8": - version: 4.0.8 - resolution: "lodash.debounce@npm:4.0.8" - checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 - languageName: node - linkType: hard - -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 - languageName: node - linkType: hard - -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 - languageName: node - linkType: hard - -"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 - languageName: node - linkType: hard - -"log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: ^4.1.0 - is-unicode-supported: ^0.1.0 - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 - languageName: node - linkType: hard - -"log-update@npm:^6.0.0": - version: 6.0.0 - resolution: "log-update@npm:6.0.0" - dependencies: - ansi-escapes: ^6.2.0 - cli-cursor: ^4.0.0 - slice-ansi: ^7.0.0 - strip-ansi: ^7.1.0 - wrap-ansi: ^9.0.0 - checksum: 8803ceba2fb28626951b85de598c8d5a4f5e39f1f767cc54fd925412cc7780ba89ce1dbec24dc96fa46f89d226e1ae984534aa729dc9c9b734e36bb805428ffa - languageName: node - linkType: hard - -"loglevel@npm:^1.9.1": - version: 1.9.1 - resolution: "loglevel@npm:1.9.1" - checksum: e1c8586108c4d566122e91f8a79c8df728920e3a714875affa5120566761a24077ec8ec9e5fc388b022e39fc411ec6e090cde1b5775871241b045139771eeb06 - languageName: node - linkType: hard - -"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: ^3.0.0 || ^4.0.0 - bin: - loose-envify: cli.js - checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.1.0 - resolution: "lru-cache@npm:10.1.0" - checksum: 58056d33e2500fbedce92f8c542e7c11b50d7d086578f14b7074d8c241422004af0718e08a6eaae8705cee09c77e39a61c1c79e9370ba689b7010c152e6a76ab - languageName: node - linkType: hard - -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"make-dir@npm:^4.0.0": - version: 4.0.0 - resolution: "make-dir@npm:4.0.0" - dependencies: - semver: ^7.5.3 - checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a - languageName: node - linkType: hard - -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.0 - resolution: "make-fetch-happen@npm:13.0.0" - dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 - http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af - languageName: node - linkType: hard - -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" - dependencies: - tmpl: 1.0.5 - checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 - languageName: node - linkType: hard - -"mathml-tag-names@npm:^2.1.3": - version: 2.1.3 - resolution: "mathml-tag-names@npm:2.1.3" - checksum: 1201a25a137d6b9e328facd67912058b8b45b19a6c4cc62641c9476195da28a275ca6e0eca070af5378b905c2b11abc1114676ba703411db0b9ce007de921ad0 - languageName: node - linkType: hard - -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa - languageName: node - linkType: hard - -"memoize-one@npm:^6.0.0": - version: 6.0.0 - resolution: "memoize-one@npm:6.0.0" - checksum: f185ea69f7cceae5d1cb596266dcffccf545e8e7b4106ec6aa93b71ab9d16460dd118ac8b12982c55f6d6322fcc1485de139df07eacffaae94888b9b3ad7675f - languageName: node - linkType: hard - -"meow@npm:^12.0.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: a6f3be85fbe53430ef53ab933dd790c39216eb4dbaabdbef593aa59efb40ecaa417897000175476bc33eed09e4cbce01df7ba53ba91e9a4bd84ec07024cb8914 - languageName: node - linkType: hard - -"meow@npm:^13.1.0": - version: 13.1.0 - resolution: "meow@npm:13.1.0" - checksum: 78270d501c9f77c38c4d2b8d7a191396f4c4a9ea35710221f16cb21c30869f0c866a038b704fe0782d22ae2ca254cac159bc0c478b4c2f3dd72b26afc9ff2383 - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"micromatch@npm:4.0.5, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: 1.52.0 - checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 - languageName: node - linkType: hard - -"min-document@npm:^2.19.0": - version: 2.19.0 - resolution: "min-document@npm:2.19.0" - dependencies: - dom-walk: ^0.1.0 - checksum: da6437562ea2228041542a2384528e74e22d1daa1a4ec439c165abf0b9d8a63e17e3b8a6dc6e0c731845e85301198730426932a0e813d23f932ca668340c9623 - languageName: node - linkType: hard - -"min-indent@npm:^1.0.0": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 - languageName: node - linkType: hard - -"minimatch@npm:9.0.3, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 - languageName: node - linkType: hard - -"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - -"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": - version: 1.2.8 - resolution: "minimist@npm:1.2.8" - checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: ^7.0.3 - checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.4 - resolution: "minipass-fetch@npm:3.0.4" - dependencies: - encoding: ^0.1.13 - minipass: ^7.0.3 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-json-stream@npm:^1.0.1": - version: 1.0.1 - resolution: "minipass-json-stream@npm:1.0.1" - dependencies: - jsonparse: ^1.3.1 - minipass: ^3.0.0 - checksum: 791b696a27d1074c4c08dab1bf5a9f3201145c2933e428f45d880467bce12c60de4703203d2928de4b162d0ae77b0bb4b55f96cb846645800aa0eb4919b3e796 - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: ^4.0.0 - checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"mobx-react-lite@npm:^3.4.0": - version: 3.4.3 - resolution: "mobx-react-lite@npm:3.4.3" - peerDependencies: - mobx: ^6.1.0 - react: ^16.8.0 || ^17 || ^18 - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 60a2580eb9a0b9988fc76959d7299f018733dc33cacaa73c45500953006d4d45e738d9ae39ccfc767ac19a75656dbc028d833282c848fbc67d8d18a2bcb5c262 - languageName: node - linkType: hard - -"mobx-react@npm:^7.6.0": - version: 7.6.0 - resolution: "mobx-react@npm:7.6.0" - dependencies: - mobx-react-lite: ^3.4.0 - peerDependencies: - mobx: ^6.1.0 - react: ^16.8.0 || ^17 || ^18 - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 07ce6eb297ddab2cc693df7350a3e2f730194cc6eb56bd912f80e28f9427237569e0bda6b30167154faf094e7c5e5ff360abd52acd2860d9a0d0e53320617ee8 - languageName: node - linkType: hard - -"mobx@npm:^6.9.0": - version: 6.12.0 - resolution: "mobx@npm:6.12.0" - checksum: 482914d39199cadc8808907a2b9dbc634c74534d6c6d6cb34984c199aa94665ce07e7d183c0e97d54f4b06c8e42fec0a48c79484f4bbeac04a4dfd0f160290c6 - languageName: node - linkType: hard - -"moo-color@npm:^1.0.2": - version: 1.0.3 - resolution: "moo-color@npm:1.0.3" - dependencies: - color-name: ^1.1.4 - checksum: 02bf59b6bbd5e86641bc062e2dc0843e6e579e18ef67e1c8e93bfc01945df578f20e66ce16aa9632db2aa0e16806e0914a26eb345a804f45fff1ae12a8906a29 - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:^2.1.1": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d - languageName: node - linkType: hard - -"mute-stream@npm:1.0.0": - version: 1.0.0 - resolution: "mute-stream@npm:1.0.0" - checksum: 36fc968b0e9c9c63029d4f9dc63911950a3bdf55c9a87f58d3a266289b67180201cade911e7699f8b2fa596b34c9db43dad37649e3f7fdd13c3bb9edb0017ee7 - languageName: node - linkType: hard - -"nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" - bin: - nanoid: bin/nanoid.cjs - checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d - languageName: node - linkType: hard - -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"neo-async@npm:^2.6.2": - version: 2.6.2 - resolution: "neo-async@npm:2.6.2" - checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 - languageName: node - linkType: hard - -"new-github-release-url@npm:^2.0.0": - version: 2.0.0 - resolution: "new-github-release-url@npm:2.0.0" - dependencies: - type-fest: ^2.5.1 - checksum: 3d4ae0f3b775623ceed8e558b6f9850e897aea981a9c937d3ad4e018669c829beccb2c4b5a6af996726ebf86c5b7638368dfc01f3ac2e395d1df29309bc0c5ca - languageName: node - linkType: hard - -"node-domexception@npm:^1.0.0": - version: 1.0.0 - resolution: "node-domexception@npm:1.0.0" - checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f - languageName: node - linkType: hard - -"node-fetch@npm:^3.3.2": - version: 3.3.2 - resolution: "node-fetch@npm:3.3.2" - dependencies: - data-uri-to-buffer: ^4.0.0 - fetch-blob: ^3.1.4 - formdata-polyfill: ^4.0.10 - checksum: 06a04095a2ddf05b0830a0d5302699704d59bda3102894ea64c7b9d4c865ecdff2d90fd042df7f5bc40337266961cb6183dcc808ea4f3000d024f422b462da92 - languageName: node - linkType: hard - -"node-gyp@npm:^10.0.0, node-gyp@npm:latest": - version: 10.0.1 - resolution: "node-gyp@npm:10.0.1" - dependencies: - env-paths: ^2.2.0 - exponential-backoff: ^3.1.1 - glob: ^10.3.10 - graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^3.0.0 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^4.0.0 - bin: - node-gyp: bin/node-gyp.js - checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f - languageName: node - linkType: hard - -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e - languageName: node - linkType: hard - -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.0 - resolution: "nopt@npm:7.2.0" - dependencies: - abbrev: ^2.0.0 - bin: - nopt: bin/nopt.js - checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 - languageName: node - linkType: hard - -"normalize-package-data@npm:^6.0.0": - version: 6.0.0 - resolution: "normalize-package-data@npm:6.0.0" - dependencies: - hosted-git-info: ^7.0.0 - is-core-module: ^2.8.1 - semver: ^7.3.5 - validate-npm-package-license: ^3.0.4 - checksum: 741211a4354ba6d618caffa98f64e0e5ec9e5575bf3aefe47f4b68e662d65f9ba1b6b2d10640c16254763ed0879288155566138b5ffe384172352f6e969c1752 - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 - languageName: node - linkType: hard - -"npm-bundled@npm:^3.0.0": - version: 3.0.0 - resolution: "npm-bundled@npm:3.0.0" - dependencies: - npm-normalize-package-bin: ^3.0.0 - checksum: 110859c2d6dcd7941dac0932a29171cbde123060486a4b6e897aaf5e025abeb3d9ffcdfe9e9271992e6396b2986c2c534f1029a45a7c196f1257fa244305dbf8 - languageName: node - linkType: hard - -"npm-install-checks@npm:^6.0.0, npm-install-checks@npm:^6.2.0": - version: 6.3.0 - resolution: "npm-install-checks@npm:6.3.0" - dependencies: - semver: ^7.1.1 - checksum: 6c20dadb878a0d2f1f777405217b6b63af1299d0b43e556af9363ee6eefaa98a17dfb7b612a473a473e96faf7e789c58b221e0d8ffdc1d34903c4f71618df3b4 - languageName: node - linkType: hard - -"npm-normalize-package-bin@npm:^3.0.0": - version: 3.0.1 - resolution: "npm-normalize-package-bin@npm:3.0.1" - checksum: de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf - languageName: node - linkType: hard - -"npm-package-arg@npm:^11.0.0, npm-package-arg@npm:^11.0.1": - version: 11.0.1 - resolution: "npm-package-arg@npm:11.0.1" - dependencies: - hosted-git-info: ^7.0.0 - proc-log: ^3.0.0 - semver: ^7.3.5 - validate-npm-package-name: ^5.0.0 - checksum: 60364504e04e34fc20b47ad192efc9181922bce0cb41fa81871b1b75748d8551725f61b2f9a2e3dffb1782d749a35313f5dc02c18c3987653990d486f223adf2 - languageName: node - linkType: hard - -"npm-packlist@npm:^8.0.0, npm-packlist@npm:^8.0.2": - version: 8.0.2 - resolution: "npm-packlist@npm:8.0.2" - dependencies: - ignore-walk: ^6.0.4 - checksum: c75ae66b285503409e07878274d0580c1915e8db3a52539e7588a00d8c7c27b5c3c8459906d26142ffd772f0e8f291e9aa4ea076bb44a4ab0ba7e0f25b46423b - languageName: node - linkType: hard - -"npm-pick-manifest@npm:^9.0.0": - version: 9.0.0 - resolution: "npm-pick-manifest@npm:9.0.0" - dependencies: - npm-install-checks: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - npm-package-arg: ^11.0.0 - semver: ^7.3.5 - checksum: a6f102f9e9e8feea69be3a65e492fef6319084a85fc4e40dc88a277a3aa675089cef13ab0436ed7916e97c7bbba8315633d818eb15402c3abfb0bddc1af08cc7 - languageName: node - linkType: hard - -"npm-registry-fetch@npm:^16.0.0, npm-registry-fetch@npm:^16.1.0": - version: 16.1.0 - resolution: "npm-registry-fetch@npm:16.1.0" - dependencies: - make-fetch-happen: ^13.0.0 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-json-stream: ^1.0.1 - minizlib: ^2.1.2 - npm-package-arg: ^11.0.0 - proc-log: ^3.0.0 - checksum: 6aa8483973aaf8c8543753d415983eb6722ecba0703030f3b152074eaa1106df75ffd084e483f30a33c81203c7ec07555bcc9e45fc07f7c0904501506c0929a2 - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: ^3.0.0 - checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 - languageName: node - linkType: hard - -"npm-run-path@npm:^5.1.0": - version: 5.2.0 - resolution: "npm-run-path@npm:5.2.0" - dependencies: - path-key: ^4.0.0 - checksum: c5325e016014e715689c4014f7e0be16cc4cbf529f32a1723e511bc4689b5f823b704d2bca61ac152ce2bda65e0205dc8b3ba0ec0f5e4c3e162d302f6f5b9efb - languageName: node - linkType: hard - -"npmlog@npm:^7.0.1": - version: 7.0.1 - resolution: "npmlog@npm:7.0.1" - dependencies: - are-we-there-yet: ^4.0.0 - console-control-strings: ^1.1.0 - gauge: ^5.0.0 - set-blocking: ^2.0.0 - checksum: caabeb1f557c1094ad7ed3275b968b83ccbaefc133f17366ebb9fe8eb44e1aace28c31419d6244bfc0422aede1202875d555fe6661978bf04386f6cf617f43a4 - languageName: node - linkType: hard - -"nwsapi@npm:^2.2.2": - version: 2.2.7 - resolution: "nwsapi@npm:2.2.7" - checksum: cab25f7983acec7e23490fec3ef7be608041b460504229770e3bfcf9977c41d6fe58f518994d3bd9aa3a101f501089a3d4a63536f4ff8ae4b8c4ca23bdbfda4e - languageName: node - linkType: hard - -"object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f - languageName: node - linkType: hard - -"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a - languageName: node - linkType: hard - -"object.assign@npm:^4.1.4": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" - dependencies: - call-bind: ^1.0.5 - define-properties: ^1.2.1 - has-symbols: ^1.0.3 - object-keys: ^1.1.1 - checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 - languageName: node - linkType: hard - -"object.fromentries@npm:^2.0.7": - version: 2.0.7 - resolution: "object.fromentries@npm:2.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 7341ce246e248b39a431b87a9ddd331ff52a454deb79afebc95609f94b1f8238966cf21f52188f2a353f0fdf83294f32f1ebf1f7826aae915ebad21fd0678065 - languageName: node - linkType: hard - -"object.groupby@npm:^1.0.1": - version: 1.0.2 - resolution: "object.groupby@npm:1.0.2" - dependencies: - array.prototype.filter: ^1.0.3 - call-bind: ^1.0.5 - define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.0.0 - checksum: 5f95c2a3a5f60a1a8c05fdd71455110bd3d5e6af0350a20b133d8cd70f9c3385d5c7fceb6a17b940c3c61752d9c202d10d5e2eb5ce73b89002656a87e7bf767a - languageName: node - linkType: hard - -"object.values@npm:^1.1.7": - version: 1.1.7 - resolution: "object.values@npm:1.1.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777 - languageName: node - linkType: hard - -"once@npm:^1.3.0, once@npm:^1.4.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 - languageName: node - linkType: hard - -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: ^4.0.0 - checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 - languageName: node - linkType: hard - -"optionator@npm:^0.9.3": - version: 0.9.3 - resolution: "optionator@npm:0.9.3" - dependencies: - "@aashutoshrathi/word-wrap": ^1.2.3 - deep-is: ^0.1.3 - fast-levenshtein: ^2.0.6 - levn: ^0.4.1 - prelude-ls: ^1.2.1 - type-check: ^0.4.0 - checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a - languageName: node - linkType: hard - -"ora@npm:^5.4.1": - version: 5.4.1 - resolution: "ora@npm:5.4.1" - dependencies: - bl: ^4.1.0 - chalk: ^4.1.0 - cli-cursor: ^3.1.0 - cli-spinners: ^2.5.0 - is-interactive: ^1.0.0 - is-unicode-supported: ^0.1.0 - log-symbols: ^4.1.0 - strip-ansi: ^6.0.0 - wcwidth: ^1.0.1 - checksum: 28d476ee6c1049d68368c0dc922e7225e3b5600c3ede88fade8052837f9ed342625fdaa84a6209302587c8ddd9b664f71f0759833cbdb3a4cf81344057e63c63 - languageName: node - linkType: hard - -"os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d - languageName: node - linkType: hard - -"p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: ^2.0.0 - checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 - languageName: node - linkType: hard - -"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - -"p-limit@npm:^4.0.0": - version: 4.0.0 - resolution: "p-limit@npm:4.0.0" - dependencies: - yocto-queue: ^1.0.0 - checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: ^2.2.0 - checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 - languageName: node - linkType: hard - -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: ^3.0.2 - checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 - languageName: node - linkType: hard - -"p-locate@npm:^6.0.0": - version: 6.0.0 - resolution: "p-locate@npm:6.0.0" - dependencies: - p-limit: ^4.0.0 - checksum: 2bfe5234efa5e7a4e74b30a5479a193fdd9236f8f6b4d2f3f69e3d286d9a7d7ab0c118a2a50142efcf4e41625def635bd9332d6cbf9cc65d85eb0718c579ab38 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - -"p-map@npm:^7.0.1": - version: 7.0.1 - resolution: "p-map@npm:7.0.1" - checksum: 553c218f582b9c7f96159dd55d082fc6df386ea86a78a3798b768f87f761d6f01ea52dd76225e69199720fa0684901d38353cd0978a39ef4f7f4fd287c4e9262 - languageName: node - linkType: hard - -"p-pipe@npm:^4.0.0": - version: 4.0.0 - resolution: "p-pipe@npm:4.0.0" - checksum: d2638c08e15e049e37835f3d999f0063ecd063ccac45a90925701c604f342ca376c8373ecf945e322f5112cc630644ef99ec55084e4eeb70c90cff9237b89296 - languageName: node - linkType: hard - -"p-queue@npm:^8.0.1": - version: 8.0.1 - resolution: "p-queue@npm:8.0.1" - dependencies: - eventemitter3: ^5.0.1 - p-timeout: ^6.1.2 - checksum: 84a27a5b1faf2dcc96b8c0e423c34b5984b241acc07353d3cc6d8d3d1dadefb250b4ec84ce278cb1c946466999c6bf2a36ff718a75810bad8e11c7ca47ce80f5 - languageName: node - linkType: hard - -"p-reduce@npm:^3.0.0": - version: 3.0.0 - resolution: "p-reduce@npm:3.0.0" - checksum: 387de355e906c07159d5e6270f3b58b7c7c7349ec7294ba0a9cff2a2e2faa8c602b841b079367685d3fa166a3ee529db7aaa73fadc936987c35e90f0ba64d955 - languageName: node - linkType: hard - -"p-timeout@npm:^6.1.2": - version: 6.1.2 - resolution: "p-timeout@npm:6.1.2" - checksum: 887b805eb72c217dbc3c55a60a7f3b89a46cab14f04af62224f253ec84716cbd0880758be13b35444a4fa12d64d37d4c8a300f0b12a57c004d289f0a574cfe91 - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae - languageName: node - linkType: hard - -"pacote@npm:^17.0.0, pacote@npm:^17.0.4, pacote@npm:^17.0.6": - version: 17.0.6 - resolution: "pacote@npm:17.0.6" - dependencies: - "@npmcli/git": ^5.0.0 - "@npmcli/installed-package-contents": ^2.0.1 - "@npmcli/promise-spawn": ^7.0.0 - "@npmcli/run-script": ^7.0.0 - cacache: ^18.0.0 - fs-minipass: ^3.0.0 - minipass: ^7.0.2 - npm-package-arg: ^11.0.0 - npm-packlist: ^8.0.0 - npm-pick-manifest: ^9.0.0 - npm-registry-fetch: ^16.0.0 - proc-log: ^3.0.0 - promise-retry: ^2.0.1 - read-package-json: ^7.0.0 - read-package-json-fast: ^3.0.0 - sigstore: ^2.2.0 - ssri: ^10.0.0 - tar: ^6.1.11 - bin: - pacote: lib/bin.js - checksum: e410331e0b1ea0d0764cdb412e8def62f90c3b2d7dccce16f3eb7c1f847d37d730e9661eff039f623777dccce1b3fcb4c4ad8c9e5950d60e6d8ef6eec924f8b3 - languageName: node - linkType: hard - -"pako@npm:^2.1.0": - version: 2.1.0 - resolution: "pako@npm:2.1.0" - checksum: 71666548644c9a4d056bcaba849ca6fd7242c6cf1af0646d3346f3079a1c7f4a66ffec6f7369ee0dc88f61926c10d6ab05da3e1fca44b83551839e89edd75a3e - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: ^3.0.0 - checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff - languageName: node - linkType: hard - -"parse-conflict-json@npm:^3.0.0": - version: 3.0.1 - resolution: "parse-conflict-json@npm:3.0.1" - dependencies: - json-parse-even-better-errors: ^3.0.0 - just-diff: ^6.0.0 - just-diff-apply: ^5.2.0 - checksum: d8d2656bc02d4df36846366baec36b419da2fe944e31298719a4d28d28f772aa7cad2a69d01f6f329918e7c298ac481d1e6a9138d62d5662d5620a74f794af8f - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 - languageName: node - linkType: hard - -"parse-json@npm:^7.0.0": - version: 7.1.1 - resolution: "parse-json@npm:7.1.1" - dependencies: - "@babel/code-frame": ^7.21.4 - error-ex: ^1.3.2 - json-parse-even-better-errors: ^3.0.0 - lines-and-columns: ^2.0.3 - type-fest: ^3.8.0 - checksum: 187275c7ac097dcfb3c7420bca2399caa4da33bcd5d5aac3604bda0e2b8eee4df61cc26aa0d79fab97f0d67bf42d41d332baa9f9f56ad27636ad785f1ae639e5 - languageName: node - linkType: hard - -"parse-path@npm:^7.0.0": - version: 7.0.0 - resolution: "parse-path@npm:7.0.0" - dependencies: - protocols: ^2.0.0 - checksum: 244b46523a58181d251dda9b888efde35d8afb957436598d948852f416d8c76ddb4f2010f9fc94218b4be3e5c0f716aa0d2026194a781e3b8981924142009302 - languageName: node - linkType: hard - -"parse-url@npm:^8.1.0": - version: 8.1.0 - resolution: "parse-url@npm:8.1.0" - dependencies: - parse-path: ^7.0.0 - checksum: b93e21ab4c93c7d7317df23507b41be7697694d4c94f49ed5c8d6288b01cba328fcef5ba388e147948eac20453dee0df9a67ab2012415189fff85973bdffe8d9 - languageName: node - linkType: hard - -"parse5@npm:^7.0.0, parse5@npm:^7.1.1": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 - languageName: node - linkType: hard - -"path-exists@npm:^5.0.0": - version: 5.0.0 - resolution: "path-exists@npm:5.0.0" - checksum: 8ca842868cab09423994596eb2c5ec2a971c17d1a3cb36dbf060592c730c725cd524b9067d7d2a1e031fef9ba7bd2ac6dc5ec9fb92aa693265f7be3987045254 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 - languageName: node - linkType: hard - -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"path-scurry@npm:^1.10.1": - version: 1.10.1 - resolution: "path-scurry@npm:1.10.1" - dependencies: - lru-cache: ^9.1.1 || ^10.0.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf - languageName: node - linkType: hard - -"pidtree@npm:0.6.0": - version: 0.6.0 - resolution: "pidtree@npm:0.6.0" - bin: - pidtree: bin/pidtree.js - checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a - languageName: node - linkType: hard - -"pify@npm:^6.1.0": - version: 6.1.0 - resolution: "pify@npm:6.1.0" - checksum: cb21ee8794e9e14955669fbc06b964d0dd3d4e6fa3c2ea3cf22f6794de61ec1ea5c1fac02dadfd4aa16c9cf589f6733406e826e64366f70e09f5e95917a0b8ac - languageName: node - linkType: hard - -"pirates@npm:^4.0.4": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 - languageName: node - linkType: hard - -"pkg-dir@npm:^4.2.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: ^4.0.0 - checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 - languageName: node - linkType: hard - -"point-in-svg-path@npm:^1.0.1": - version: 1.0.2 - resolution: "point-in-svg-path@npm:1.0.2" - checksum: 0145eeb8c513fd4087ae569c6c7a4be5382854a251726d32e49cf0f08ff2663178f018ccc77c05609dd8fa73c087066ce8d6ab77b97350316e7b2e6a59174e12 - languageName: node - linkType: hard - -"polished@npm:^4.2.2": - version: 4.3.1 - resolution: "polished@npm:4.3.1" - dependencies: - "@babel/runtime": ^7.17.8 - checksum: a6f863c23f1d2f3f5cda3427b5885c9fb9e83b036d681e24820b143c7df40d2685bebb01c0939767120a28e1183671ae17c93db82ac30b3c20942180bb153bc7 - languageName: node - linkType: hard - -"popper.js@npm:^1.16.1": - version: 1.16.1 - resolution: "popper.js@npm:1.16.1" - checksum: c56ae5001ec50a77ee297a8061a0221d99d25c7348d2e6bcd3e45a0d0f32a1fd81bca29d46cb0d4bdf13efb77685bd6a0ce93f9eb3c608311a461f945fffedbe - languageName: node - linkType: hard - -"postcss-media-query-parser@npm:^0.2.3": - version: 0.2.3 - resolution: "postcss-media-query-parser@npm:0.2.3" - checksum: 8000d4d95b912994928ff86137f5ab0ed4c4ee1498af2336e93d708ae8827a690cd7acbaed55d14684cf44d82c8d44b031c1c69ae6bcd2f9620ea67573888090 - languageName: node - linkType: hard - -"postcss-resolve-nested-selector@npm:^0.1.1": - version: 0.1.1 - resolution: "postcss-resolve-nested-selector@npm:0.1.1" - checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 - languageName: node - linkType: hard - -"postcss-safe-parser@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-safe-parser@npm:7.0.0" - peerDependencies: - postcss: ^8.4.31 - checksum: dba4d782393e6f07339c24bdb8b41166e483d5e7b8f34174c35c64065aef36aadef94b53e0501d7a630d42f51bbd824671e8fb1c2b417333b08b71c9b0066c76 - languageName: node - linkType: hard - -"postcss-scss@npm:^4.0.9": - version: 4.0.9 - resolution: "postcss-scss@npm:4.0.9" - peerDependencies: - postcss: ^8.4.29 - checksum: dc358bafc23d52ed3a9a29333808825deba213042be74ece6eae7a61c692f67d0e6691fa7005367b013c01c79562fbb9ef2fe4c0485075233931bd90715f5132 - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.15": - version: 6.0.15 - resolution: "postcss-selector-parser@npm:6.0.15" - dependencies: - cssesc: ^3.0.0 - util-deprecate: ^1.0.2 - checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 - languageName: node - linkType: hard - -"postcss-value-parser@npm:^4.2.0": - version: 4.2.0 - resolution: "postcss-value-parser@npm:4.2.0" - checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f - languageName: node - linkType: hard - -"postcss@npm:^8.4.33": - version: 8.4.33 - resolution: "postcss@npm:8.4.33" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 6f98b2af4b76632a3de20c4f47bf0e984a1ce1a531cf11adcb0b1d63a6cbda0aae4165e578b66c32ca4879038e3eaad386a6be725a8fb4429c78e3c1ab858fe9 - languageName: node - linkType: hard - -"postcss@npm:^8.4.35": - version: 8.4.35 - resolution: "postcss@npm:8.4.35" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: cf3c3124d3912a507603f6d9a49b3783f741075e9aa73eb592a6dd9194f9edab9d20a8875d16d137d4f779fe7b6fbd1f5727e39bfd1c3003724980ee4995e1da - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a - languageName: node - linkType: hard - -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" - dependencies: - fast-diff: ^1.1.2 - checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 - languageName: node - linkType: hard - -"prettier@npm:^3.2.5": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" - bin: - prettier: bin/prettier.cjs - checksum: 2ee4e1417572372afb7a13bb446b34f20f1bf1747db77cf6ccaf57a9be005f2f15c40f903d41a6b79eec3f57fff14d32a20fb6dee1f126da48908926fe43c311 - languageName: node - linkType: hard - -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": - version: 29.7.0 - resolution: "pretty-format@npm:29.7.0" - dependencies: - "@jest/schemas": ^29.6.3 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 - languageName: node - linkType: hard - -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 - languageName: node - linkType: hard - -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 - languageName: node - linkType: hard - -"promise-all-reject-late@npm:^1.0.0": - version: 1.0.1 - resolution: "promise-all-reject-late@npm:1.0.1" - checksum: d7d61ac412352e2c8c3463caa5b1c3ca0f0cc3db15a09f180a3da1446e33d544c4261fc716f772b95e4c27d559cfd2388540f44104feb356584f9c73cfb9ffcb - languageName: node - linkType: hard - -"promise-call-limit@npm:^3.0.1": - version: 3.0.1 - resolution: "promise-call-limit@npm:3.0.1" - checksum: f1b3c4d3a9c5482ce27ec5f40311e1389adb9bb10c16166e61c96d29ab22c701691d5225bf6745a162858f45dfb46cc82275fd09e7aa57846fc446c7855c2f06 - languageName: node - linkType: hard - -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 - languageName: node - linkType: hard - -"prompts@npm:^2.0.1": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: ^3.0.3 - sisteransi: ^1.0.5 - checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d - languageName: node - linkType: hard - -"prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": - version: 15.8.1 - resolution: "prop-types@npm:15.8.1" - dependencies: - loose-envify: ^1.4.0 - object-assign: ^4.1.1 - react-is: ^16.13.1 - checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 - languageName: node - linkType: hard - -"proto-list@npm:~1.2.1": - version: 1.2.4 - resolution: "proto-list@npm:1.2.4" - checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 - languageName: node - linkType: hard - -"protocols@npm:^2.0.0, protocols@npm:^2.0.1": - version: 2.0.1 - resolution: "protocols@npm:2.0.1" - checksum: 4a9bef6aa0449a0245ded319ac3cbfd032c3e76ebb562777037a3a832c99253d0e8bc2847f7be350236df620a11f7d4fe683ea7f59a2cc14c69f746b6259eda4 - languageName: node - linkType: hard - -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4 - languageName: node - linkType: hard - -"psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d - languageName: node - linkType: hard - -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 - languageName: node - linkType: hard - -"pure-rand@npm:^6.0.0": - version: 6.0.4 - resolution: "pure-rand@npm:6.0.4" - checksum: e1c4e69f8bf7303e5252756d67c3c7551385cd34d94a1f511fe099727ccbab74c898c03a06d4c4a24a89b51858781057b83ebbfe740d984240cdc04fead36068 - languageName: node - linkType: hard - -"qs@npm:^6.11.1": - version: 6.11.2 - resolution: "qs@npm:6.11.2" - dependencies: - side-channel: ^1.0.4 - checksum: e812f3c590b2262548647d62f1637b6989cc56656dc960b893fe2098d96e1bd633f36576f4cd7564dfbff9db42e17775884db96d846bebe4f37420d073ecdc0b - languageName: node - linkType: hard - -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 - languageName: node - linkType: hard - -"react-colorful@npm:^5.6.1": - version: 5.6.1 - resolution: "react-colorful@npm:5.6.1" - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: e432b7cb0df57e8f0bcdc3b012d2e93fcbcb6092c9e0f85654788d5ebfc4442536d8cc35b2418061ba3c4afb8b7788cc101c606d86a1732407921de7a9244c8d - languageName: node - linkType: hard - -"react-dnd-html5-backend@npm:^16.0.1": - version: 16.0.1 - resolution: "react-dnd-html5-backend@npm:16.0.1" - dependencies: - dnd-core: ^16.0.1 - checksum: e2368bf85d5632a5cd867b743feb54c9052d909ea5331608860fa455edf3c633ac791f5b338e3db29b19ea8670c0ba5fb43c9c1c2510760bea030811d726cdfa - languageName: node - linkType: hard - -"react-dnd-touch-backend@npm:^16.0.1": - version: 16.0.1 - resolution: "react-dnd-touch-backend@npm:16.0.1" - dependencies: - "@react-dnd/invariant": ^4.0.1 - dnd-core: ^16.0.1 - checksum: 5362c5f4266e3655d02c716f341dc55c61fae53e12eb3b239245bafb7a3f3cdb953e27e187e8dcb9d86c01bc738853d764d7c85b87104a49a8a8f1ecc4d35755 - languageName: node - linkType: hard - -"react-dnd@npm:^16.0.1": - version: 16.0.1 - resolution: "react-dnd@npm:16.0.1" - dependencies: - "@react-dnd/invariant": ^4.0.1 - "@react-dnd/shallowequal": ^4.0.1 - dnd-core: ^16.0.1 - fast-deep-equal: ^3.1.3 - hoist-non-react-statics: ^3.3.2 - peerDependencies: - "@types/hoist-non-react-statics": ">= 3.3.1" - "@types/node": ">= 12" - "@types/react": ">= 16" - react: ">= 16.14" - peerDependenciesMeta: - "@types/hoist-non-react-statics": - optional: true - "@types/node": - optional: true - "@types/react": - optional: true - checksum: e8da2186aaafcd5bb41c090a995c963a7c3c73c20991667a2cfc0c800d7f7f73913414b2e61c437cdb6221bb2151bd5174088b8b42c17056a896fc4d1da5729f - languageName: node - linkType: hard - -"react-dom@npm:^18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" - dependencies: - loose-envify: ^1.1.0 - scheduler: ^0.23.0 - peerDependencies: - react: ^18.2.0 - checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc - languageName: node - linkType: hard - -"react-dropzone@npm:^14.2.3": - version: 14.2.3 - resolution: "react-dropzone@npm:14.2.3" - dependencies: - attr-accept: ^2.2.2 - file-selector: ^0.6.0 - prop-types: ^15.8.1 - peerDependencies: - react: ">= 16.8 || 18.0.0" - checksum: 174b744d5ca898cf3d84ec1aeb6cef5211c446697e45dc8ece8287a03d291f8d07253206d5a1247ef156fd385d65e7de666d4d5c2986020b8543b8f2434e8b40 - languageName: node - linkType: hard - -"react-is@npm:^16.13.1, react-is@npm:^16.7.0": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f - languageName: node - linkType: hard - -"react-is@npm:^18.0.0": - version: 18.2.0 - resolution: "react-is@npm:18.2.0" - checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e - languageName: node - linkType: hard - -"react-lifecycles-compat@npm:^3.0.4": - version: 3.0.4 - resolution: "react-lifecycles-compat@npm:3.0.4" - checksum: a904b0fc0a8eeb15a148c9feb7bc17cec7ef96e71188280061fc340043fd6d8ee3ff233381f0e8f95c1cf926210b2c4a31f38182c8f35ac55057e453d6df204f - languageName: node - linkType: hard - -"react-measure@npm:^2.3.0": - version: 2.5.2 - resolution: "react-measure@npm:2.5.2" - dependencies: - "@babel/runtime": ^7.2.0 - get-node-dimensions: ^1.2.1 - prop-types: ^15.6.2 - resize-observer-polyfill: ^1.5.0 - peerDependencies: - react: ">0.13.0" - react-dom: ">0.13.0" - checksum: 75bd3cd74d96f3e83f0a42b8f59e8764e6a5eec994492e077c49a4fea0d0b27775a5154502aff2eee3f6af40650ce2e58ed18ac927a64013b14c9942cc9c4872 - languageName: node - linkType: hard - -"react-refresh@npm:^0.14.0": - version: 0.14.0 - resolution: "react-refresh@npm:0.14.0" - checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 - languageName: node - linkType: hard - -"react-sage@npm:^0.3.16": - version: 0.3.16 - resolution: "react-sage@npm:0.3.16" - checksum: 575f1a2b3e29aaeaa665907099909909730173d4cfc601e2929eb12e40e21f2edf42a4429bc25186f82f176a15edc0b2348b20b2850c0520708d2167f18cd276 - languageName: node - linkType: hard - -"react-select@npm:^5.7.0": - version: 5.8.0 - resolution: "react-select@npm:5.8.0" - dependencies: - "@babel/runtime": ^7.12.0 - "@emotion/cache": ^11.4.0 - "@emotion/react": ^11.8.1 - "@floating-ui/dom": ^1.0.1 - "@types/react-transition-group": ^4.4.0 - memoize-one: ^6.0.0 - prop-types: ^15.6.0 - react-transition-group: ^4.3.0 - use-isomorphic-layout-effect: ^1.1.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c8398cc0aefb5ee5438b6176c86676e2d3fed7457c16b0769f423a0da0ae431a7df25c2cadf13b709700882b8ebd80a58b1e557fec3e22ad3cbf60164ca9e745 - languageName: node - linkType: hard - -"react-transition-group@npm:^4.3.0": - version: 4.4.5 - resolution: "react-transition-group@npm:4.4.5" - dependencies: - "@babel/runtime": ^7.5.5 - dom-helpers: ^5.0.1 - loose-envify: ^1.4.0 - prop-types: ^15.6.2 - peerDependencies: - react: ">=16.6.0" - react-dom: ">=16.6.0" - checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 - languageName: node - linkType: hard - -"react-use-gesture@npm:^9.1.3": - version: 9.1.3 - resolution: "react-use-gesture@npm:9.1.3" - peerDependencies: - react: ">= 16.8.0" - checksum: 4436b9c4e6634c74884b6d8c8b22b57e280a3ec5b2167467f4405c56e7ca9a188771d0c043d17eb62d5d9d6e15c16ae2b7a370a187391ef1d1740361b8882b43 - languageName: node - linkType: hard - -"react@npm:^18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" - dependencies: - loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b - languageName: node - linkType: hard - -"read-cmd-shim@npm:^4.0.0": - version: 4.0.0 - resolution: "read-cmd-shim@npm:4.0.0" - checksum: 2fb5a8a38984088476f559b17c6a73324a5db4e77e210ae0aab6270480fd85c355fc990d1c79102e25e555a8201606ed12844d6e3cd9f35d6a1518791184e05b - languageName: node - linkType: hard - -"read-package-json-fast@npm:^3.0.0, read-package-json-fast@npm:^3.0.2": - version: 3.0.2 - resolution: "read-package-json-fast@npm:3.0.2" - dependencies: - json-parse-even-better-errors: ^3.0.0 - npm-normalize-package-bin: ^3.0.0 - checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 - languageName: node - linkType: hard - -"read-package-json@npm:^7.0.0": - version: 7.0.0 - resolution: "read-package-json@npm:7.0.0" - dependencies: - glob: ^10.2.2 - json-parse-even-better-errors: ^3.0.0 - normalize-package-data: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - checksum: 9b6e3ebba0b44bb72ab42031f02e0a46c95873cd302f151e35841e075464f0f4d1404da2333cb491c5c83599bb917c32b23b86d4df8337237d4d1a37c6db1517 - languageName: node - linkType: hard - -"read-pkg-up@npm:^10.0.0": - version: 10.1.0 - resolution: "read-pkg-up@npm:10.1.0" - dependencies: - find-up: ^6.3.0 - read-pkg: ^8.1.0 - type-fest: ^4.2.0 - checksum: 554470d7ff54026b561f6c851c35470f5bc95a47bfb8645dc13c447d83c42c78b42d47fffdc8f86bffe731215406dab498f75cb27494e1fb3eca7fa8d00fb501 - languageName: node - linkType: hard - -"read-pkg@npm:^8.0.0, read-pkg@npm:^8.1.0": - version: 8.1.0 - resolution: "read-pkg@npm:8.1.0" - dependencies: - "@types/normalize-package-data": ^2.4.1 - normalize-package-data: ^6.0.0 - parse-json: ^7.0.0 - type-fest: ^4.2.0 - checksum: f4cd164f096e78cf3e338a55f800043524e3055f9b0b826143290002fafc951025fc3cbd6ca683ebaf7945efcfb092d31c683dd252a7871a974662985c723b67 - languageName: node - linkType: hard - -"readable-stream@npm:^3.4.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: ^2.2.1 - checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 - languageName: node - linkType: hard - -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" - dependencies: - indent-string: ^4.0.0 - strip-indent: ^3.0.0 - checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b - languageName: node - linkType: hard - -"redux@npm:^4.2.0": - version: 4.2.1 - resolution: "redux@npm:4.2.1" - dependencies: - "@babel/runtime": ^7.9.2 - checksum: f63b9060c3a1d930ae775252bb6e579b42415aee7a23c4114e21a0b4ba7ec12f0ec76936c00f546893f06e139819f0e2855e0d55ebfce34ca9c026241a6950dd - languageName: node - linkType: hard - -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.1 - resolution: "regenerate-unicode-properties@npm:10.1.1" - dependencies: - regenerate: ^1.4.2 - checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf - languageName: node - linkType: hard - -"regenerate@npm:^1.4.2": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.1": - version: 1.5.1 - resolution: "regexp.prototype.flags@npm:1.5.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - set-function-name: ^2.0.0 - checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 - languageName: node - linkType: hard - -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" - dependencies: - "@babel/regjsgen": ^0.8.0 - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.1.0 - regjsparser: ^0.9.1 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 - languageName: node - linkType: hard - -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 - languageName: node - linkType: hard - -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b - languageName: node - linkType: hard - -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff - languageName: node - linkType: hard - -"resize-observer-polyfill@npm:^1.5.0": - version: 1.5.1 - resolution: "resize-observer-polyfill@npm:1.5.1" - checksum: 57e7f79489867b00ba43c9c051524a5c8f162a61d5547e99333549afc23e15c44fd43f2f318ea0261ea98c0eb3158cca261e6f48d66e1ed1cd1f340a43977094 - languageName: node - linkType: hard - -"resolve-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-cwd@npm:3.0.0" - dependencies: - resolve-from: ^5.0.0 - checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f - languageName: node - linkType: hard - -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - -"resolve.exports@npm:^2.0.0": - version: 2.0.2 - resolution: "resolve.exports@npm:2.0.2" - checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 - languageName: node - linkType: hard - -"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - -"restore-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "restore-cursor@npm:4.0.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc - languageName: node - linkType: hard - -"rfdc@npm:^1.3.0": - version: 1.3.1 - resolution: "rfdc@npm:1.3.1" - checksum: d5d1e930aeac7e0e0a485f97db1356e388bdbeff34906d206fe524dd5ada76e95f186944d2e68307183fdc39a54928d4426bbb6734851692cfe9195efba58b79 - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: ^7.1.3 - bin: - rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 - languageName: node - linkType: hard - -"rimraf@npm:^5.0.5": - version: 5.0.5 - resolution: "rimraf@npm:5.0.5" - dependencies: - glob: ^10.3.7 - bin: - rimraf: dist/esm/bin.mjs - checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 - languageName: node - linkType: hard - -"robust-predicates@npm:^3.0.2": - version: 3.0.2 - resolution: "robust-predicates@npm:3.0.2" - checksum: 36854c1321548ceca96d36ad9d6e0a5a512986029ec6929ad6ed3ec1612c22cc8b46cc72d2c5674af42e8074a119d793f6f0ea3a5b51373e3ab926c64b172d7a - languageName: node - linkType: hard - -"rollup@npm:^4.2.0": - version: 4.9.6 - resolution: "rollup@npm:4.9.6" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.9.6 - "@rollup/rollup-android-arm64": 4.9.6 - "@rollup/rollup-darwin-arm64": 4.9.6 - "@rollup/rollup-darwin-x64": 4.9.6 - "@rollup/rollup-linux-arm-gnueabihf": 4.9.6 - "@rollup/rollup-linux-arm64-gnu": 4.9.6 - "@rollup/rollup-linux-arm64-musl": 4.9.6 - "@rollup/rollup-linux-riscv64-gnu": 4.9.6 - "@rollup/rollup-linux-x64-gnu": 4.9.6 - "@rollup/rollup-linux-x64-musl": 4.9.6 - "@rollup/rollup-win32-arm64-msvc": 4.9.6 - "@rollup/rollup-win32-ia32-msvc": 4.9.6 - "@rollup/rollup-win32-x64-msvc": 4.9.6 - "@types/estree": 1.0.5 - fsevents: ~2.3.2 - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: cdc0bdd41ee2d3fe7f01df26f5a85921caf46ffe0ae118b2f3deebdf569e8b1c1800b8eee04960425e67aecbd9ccdd37bcdb92595866adb3968d223a07e9b7e6 - languageName: node - linkType: hard - -"run-async@npm:^3.0.0": - version: 3.0.0 - resolution: "run-async@npm:3.0.0" - checksum: 280c03d5a88603f48103fc6fd69f07fb0c392a1e0d319c34ec96a2516030e07ba06f79231a563c78698b882649c2fc1fda601bc84705f57d50efcd1fa506cfc0 - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: ^1.2.2 - checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - -"rw@npm:1": - version: 1.3.3 - resolution: "rw@npm:1.3.3" - checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 - languageName: node - linkType: hard - -"rxjs@npm:^7.8.1": - version: 7.8.1 - resolution: "rxjs@npm:7.8.1" - dependencies: - tslib: ^2.1.0 - checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 - languageName: node - linkType: hard - -"safe-array-concat@npm:^1.0.1": - version: 1.1.0 - resolution: "safe-array-concat@npm:1.1.0" - dependencies: - call-bind: ^1.0.5 - get-intrinsic: ^1.2.2 - has-symbols: ^1.0.3 - isarray: ^2.0.5 - checksum: 5c71eaa999168ee7474929f1cd3aae80f486353a651a094d9968936692cf90aa065224929a6486dcda66334a27dce4250a83612f9e0fef6dced1a925d3ac7296 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - -"safe-regex-test@npm:^1.0.0": - version: 1.0.2 - resolution: "safe-regex-test@npm:1.0.2" - dependencies: - call-bind: ^1.0.5 - get-intrinsic: ^1.2.2 - is-regex: ^1.1.4 - checksum: 4af5ce05a2daa4f6d4bfd5a3c64fc33d6b886f6592122e93c0efad52f7147b9b605e5ffc03c269a1e3d1f8db2a23bc636628a961c9fd65bafdc09503330673fd - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 - languageName: node - linkType: hard - -"sass@npm:^1.70.0": - version: 1.70.0 - resolution: "sass@npm:1.70.0" - dependencies: - chokidar: ">=3.0.0 <4.0.0" - immutable: ^4.0.0 - source-map-js: ">=0.6.2 <2.0.0" - bin: - sass: sass.js - checksum: fd1b622cf9b7fa699a03ec634611997552ece45eb98ac365fef22f42bdcb8ed63b326b64173379c966830c8551ae801e44e4a00d2de16fdadda2dc8f35400bbb - languageName: node - linkType: hard - -"saxes@npm:^6.0.0": - version: 6.0.0 - resolution: "saxes@npm:6.0.0" - dependencies: - xmlchars: ^2.2.0 - checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b - languageName: node - linkType: hard - -"saxon-js@npm:^2.6.0": - version: 2.6.0 - resolution: "saxon-js@npm:2.6.0" - dependencies: - axios: ^1.5.1 - checksum: 484564a4d6490d28d33ca278a25386e95e5aabe53bbf1406fb193790304afda941b7274f3fcad2c55a43884b55dd65a7cad42e8325c7d53d85623727fd951aef - languageName: node - linkType: hard - -"scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" - dependencies: - loose-envify: ^1.1.0 - checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a - languageName: node - linkType: hard - -"semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 - languageName: node - linkType: hard - -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 - languageName: node - linkType: hard - -"semver@npm:^7.6.0": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c - languageName: node - linkType: hard - -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 - languageName: node - linkType: hard - -"set-function-length@npm:^1.1.1": - version: 1.2.0 - resolution: "set-function-length@npm:1.2.0" - dependencies: - define-data-property: ^1.1.1 - function-bind: ^1.1.2 - get-intrinsic: ^1.2.2 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.1 - checksum: 63e34b45a2ff9abb419f52583481bf8ba597d33c0c85e56999085eb6078a0f7fbb4222051981c287feceeb358aa7789e7803cea2c82ac94c0ab37059596aff79 - languageName: node - linkType: hard - -"set-function-name@npm:^2.0.0": - version: 2.0.1 - resolution: "set-function-name@npm:2.0.1" - dependencies: - define-data-property: ^1.0.1 - functions-have-names: ^1.2.3 - has-property-descriptors: ^1.0.0 - checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 - languageName: node - linkType: hard - -"shallow-clone@npm:^3.0.0": - version: 3.0.1 - resolution: "shallow-clone@npm:3.0.1" - dependencies: - kind-of: ^6.0.2 - checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7 - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" - dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 - languageName: node - linkType: hard - -"sigstore@npm:^2.2.0": - version: 2.2.0 - resolution: "sigstore@npm:2.2.0" - dependencies: - "@sigstore/bundle": ^2.1.1 - "@sigstore/core": ^0.2.0 - "@sigstore/protobuf-specs": ^0.2.1 - "@sigstore/sign": ^2.2.1 - "@sigstore/tuf": ^2.3.0 - "@sigstore/verify": ^0.1.0 - checksum: 607a15624c5c7c0de3241e5c9ea4dda6495a55104fcadb85c3712dba54c154054a4de657038258c72748bcf207915ec0e338b8c6b3db6d07b5c904d4bcc35f44 - languageName: node - linkType: hard - -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - -"slash@npm:^5.1.0": - version: 5.1.0 - resolution: "slash@npm:5.1.0" - checksum: 70434b34c50eb21b741d37d455110258c42d2cf18c01e6518aeb7299f3c6e626330c889c0c552b5ca2ef54a8f5a74213ab48895f0640717cacefeef6830a1ba4 - languageName: node - linkType: hard - -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 - languageName: node - linkType: hard - -"slice-ansi@npm:^5.0.0": - version: 5.0.0 - resolution: "slice-ansi@npm:5.0.0" - dependencies: - ansi-styles: ^6.0.0 - is-fullwidth-code-point: ^4.0.0 - checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e - languageName: node - linkType: hard - -"slice-ansi@npm:^7.0.0": - version: 7.1.0 - resolution: "slice-ansi@npm:7.1.0" - dependencies: - ansi-styles: ^6.2.1 - is-fullwidth-code-point: ^5.0.0 - checksum: 10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.1": - version: 8.0.2 - resolution: "socks-proxy-agent@npm:8.0.2" - dependencies: - agent-base: ^7.0.2 - debug: ^4.3.4 - socks: ^2.7.1 - checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d - languageName: node - linkType: hard - -"socks@npm:^2.7.1": - version: 2.7.1 - resolution: "socks@npm:2.7.1" - dependencies: - ip: ^2.0.0 - smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 - languageName: node - linkType: hard - -"sort-keys@npm:^5.0.0": - version: 5.0.0 - resolution: "sort-keys@npm:5.0.0" - dependencies: - is-plain-obj: ^4.0.0 - checksum: 9c0b7a468312075be03770b260b2cc0e5d55149025e564edaed41c9ff619199698aad6712a6fe4bbc75c541efb081276ac6bbd4cf2723d742f272f7a8fe354f5 - languageName: node - linkType: hard - -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c - languageName: node - linkType: hard - -"source-map-support@npm:0.5.13": - version: 0.5.13 - resolution: "source-map-support@npm:0.5.13" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 - languageName: node - linkType: hard - -"source-map@npm:^0.5.7": - version: 0.5.7 - resolution: "source-map@npm:0.5.7" - checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - -"spdx-correct@npm:^3.0.0": - version: 3.2.0 - resolution: "spdx-correct@npm:3.2.0" - dependencies: - spdx-expression-parse: ^3.0.0 - spdx-license-ids: ^3.0.0 - checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 - languageName: node - linkType: hard - -"spdx-exceptions@npm:^2.1.0": - version: 2.4.0 - resolution: "spdx-exceptions@npm:2.4.0" - checksum: b1b650a8d94424473bf9629cf972c86a91c03cccc260f5c901bce0e4b92d831627fec28c9e0a1e9c34c5ebad0a12cf2eab887bec088e0a862abb9d720c2fd0a1 - languageName: node - linkType: hard - -"spdx-expression-parse@npm:^3.0.0": - version: 3.0.1 - resolution: "spdx-expression-parse@npm:3.0.1" - dependencies: - spdx-exceptions: ^2.1.0 - spdx-license-ids: ^3.0.0 - checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde - languageName: node - linkType: hard - -"spdx-license-ids@npm:^3.0.0": - version: 3.0.16 - resolution: "spdx-license-ids@npm:3.0.16" - checksum: 5cdaa85aaa24bd02f9353a2e357b4df0a4f205cb35655f3fd0a5674a4fb77081f28ffd425379214bc3be2c2b7593ce1215df6bcc75884aeee0a9811207feabe2 - languageName: node - linkType: hard - -"split2@npm:^4.0.0": - version: 4.2.0 - resolution: "split2@npm:4.2.0" - checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 - languageName: node - linkType: hard - -"ssri@npm:^10.0.0, ssri@npm:^10.0.5": - version: 10.0.5 - resolution: "ssri@npm:10.0.5" - dependencies: - minipass: ^7.0.3 - checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 - languageName: node - linkType: hard - -"stack-utils@npm:^2.0.3": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 - languageName: node - linkType: hard - -"string-argv@npm:0.3.2": - version: 0.3.2 - resolution: "string-argv@npm:0.3.2" - checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f - languageName: node - linkType: hard - -"string-length@npm:^4.0.1": - version: 4.0.2 - resolution: "string-length@npm:4.0.2" - dependencies: - char-regex: ^1.0.2 - strip-ansi: ^6.0.0 - checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 - languageName: node - linkType: hard - -"string-width@npm:^7.0.0": - version: 7.1.0 - resolution: "string-width@npm:7.1.0" - dependencies: - emoji-regex: ^10.3.0 - get-east-asian-width: ^1.0.0 - strip-ansi: ^7.1.0 - checksum: a183573fe7209e0d294f661846d33f8caf72aa86d983e5b48a0ed45ab15bcccb02c6f0344b58b571988871105457137b8207855ea536827dbc4a376a0f31bf8f - languageName: node - linkType: hard - -"string.prototype.trim@npm:^1.2.8": - version: 1.2.8 - resolution: "string.prototype.trim@npm:1.2.8" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimend@npm:1.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimstart@npm:1.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: ^6.0.1 - checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b - languageName: node - linkType: hard - -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 - languageName: node - linkType: hard - -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 - languageName: node - linkType: hard - -"strip-indent@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" - dependencies: - min-indent: ^1.0.0 - checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 - languageName: node - linkType: hard - -"strnum@npm:^1.0.5": - version: 1.0.5 - resolution: "strnum@npm:1.0.5" - checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 - languageName: node - linkType: hard - -"strong-log-transformer@npm:^2.1.0": - version: 2.1.0 - resolution: "strong-log-transformer@npm:2.1.0" - dependencies: - duplexer: ^0.1.1 - minimist: ^1.2.0 - through: ^2.3.4 - bin: - sl-log-transformer: bin/sl-log-transformer.js - checksum: abf9a4ac143118f26c3a0771b204b02f5cf4fa80384ae158f25e02bfbff761038accc44a7f65869ccd5a5995a7f2c16b1466b83149644ba6cecd3072a8927297 - languageName: node - linkType: hard - -"stylelint-config-recommended-scss@npm:^14.0.0": - version: 14.0.0 - resolution: "stylelint-config-recommended-scss@npm:14.0.0" - dependencies: - postcss-scss: ^4.0.9 - stylelint-config-recommended: ^14.0.0 - stylelint-scss: ^6.0.0 - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.0.2 - peerDependenciesMeta: - postcss: - optional: true - checksum: 512fba4d81654b65a7a36d531f165c7d8f0c938e63a0f90daca0c21d623cc637e29195fec5e0ae1edd862502d69717f6f3e90016cd7ba8458e4a8afcd87bb3b4 - languageName: node - linkType: hard - -"stylelint-config-recommended@npm:^14.0.0": - version: 14.0.0 - resolution: "stylelint-config-recommended@npm:14.0.0" - peerDependencies: - stylelint: ^16.0.0 - checksum: 36511115b06d9f51aa0edc05f6064a7aae98cc990da14dd03629951f63a029d9e66a4d5b1ca678cce699e24413a62c2cd608cc07413ca5026f9680ddb8993858 - languageName: node - linkType: hard - -"stylelint-config-standard-scss@npm:^13.0.0": - version: 13.0.0 - resolution: "stylelint-config-standard-scss@npm:13.0.0" - dependencies: - stylelint-config-recommended-scss: ^14.0.0 - stylelint-config-standard: ^36.0.0 - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.1.0 - peerDependenciesMeta: - postcss: - optional: true - checksum: 72e8fbb8d49b76e30031d05470d610790a966714fef0101418b889c564d9cc324788519733cad714316224c68541466dce534c51092d13bae3f9e596916415c3 - languageName: node - linkType: hard - -"stylelint-config-standard@npm:^36.0.0": - version: 36.0.0 - resolution: "stylelint-config-standard@npm:36.0.0" - dependencies: - stylelint-config-recommended: ^14.0.0 - peerDependencies: - stylelint: ^16.1.0 - checksum: 78b14cdfdd03be409687acc863ef88d0e79d9a7f7ab3a9158e7dcd74212893db24841d22f076f248f3b1b6419d778538a5c885dc42fc056eaeb240463edf2f8f - languageName: node - linkType: hard - -"stylelint-prettier@npm:^5.0.0": - version: 5.0.0 - resolution: "stylelint-prettier@npm:5.0.0" - dependencies: - prettier-linter-helpers: ^1.0.0 - peerDependencies: - prettier: ">=3.0.0" - stylelint: ">=16.0.0" - checksum: 757b677f0e4345de1eab62b0e1a8d6ff50d968e2c541bae7ac7b5595157a49ee033c8911f92056d2bdfb0a2945faa5509814cb13170e48336bfc2c4c3b3ee9c2 - languageName: node - linkType: hard - -"stylelint-scss@npm:^6.0.0": - version: 6.1.0 - resolution: "stylelint-scss@npm:6.1.0" - dependencies: - known-css-properties: ^0.29.0 - postcss-media-query-parser: ^0.2.3 - postcss-resolve-nested-selector: ^0.1.1 - postcss-selector-parser: ^6.0.15 - postcss-value-parser: ^4.2.0 - peerDependencies: - stylelint: ^16.0.2 - checksum: ff3b1c97e8379e45acd1b5b28bafa11251539366f362ff6a674690fd9aef0c7da926b2445304699d48edd1c375acb51b5fcb8039a4106ef4a6f4e29b8515e00b - languageName: node - linkType: hard - -"stylelint@npm:^16.2.1": - version: 16.2.1 - resolution: "stylelint@npm:16.2.1" - dependencies: - "@csstools/css-parser-algorithms": ^2.5.0 - "@csstools/css-tokenizer": ^2.2.3 - "@csstools/media-query-list-parser": ^2.1.7 - "@csstools/selector-specificity": ^3.0.1 - balanced-match: ^2.0.0 - colord: ^2.9.3 - cosmiconfig: ^9.0.0 - css-functions-list: ^3.2.1 - css-tree: ^2.3.1 - debug: ^4.3.4 - fast-glob: ^3.3.2 - fastest-levenshtein: ^1.0.16 - file-entry-cache: ^8.0.0 - global-modules: ^2.0.0 - globby: ^11.1.0 - globjoin: ^0.1.4 - html-tags: ^3.3.1 - ignore: ^5.3.0 - imurmurhash: ^0.1.4 - is-plain-object: ^5.0.0 - known-css-properties: ^0.29.0 - mathml-tag-names: ^2.1.3 - meow: ^13.1.0 - micromatch: ^4.0.5 - normalize-path: ^3.0.0 - picocolors: ^1.0.0 - postcss: ^8.4.33 - postcss-resolve-nested-selector: ^0.1.1 - postcss-safe-parser: ^7.0.0 - postcss-selector-parser: ^6.0.15 - postcss-value-parser: ^4.2.0 - resolve-from: ^5.0.0 - string-width: ^4.2.3 - strip-ansi: ^7.1.0 - supports-hyperlinks: ^3.0.0 - svg-tags: ^1.0.0 - table: ^6.8.1 - write-file-atomic: ^5.0.1 - bin: - stylelint: bin/stylelint.mjs - checksum: 0b84d7218b43bc89978cac40edb5dc0a0f8f7c7a60e3f932fe91392bcf79da165b5694a386247fefb51569eb26535071bf5c7f3cbba0bd094e2590c1b2494717 - languageName: node - linkType: hard - -"stylis@npm:4.2.0": - version: 4.2.0 - resolution: "stylis@npm:4.2.0" - checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac - languageName: node - linkType: hard - -"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a - languageName: node - linkType: hard - -"supports-color@npm:^8.0.0": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: ^4.0.0 - checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 - languageName: node - linkType: hard - -"supports-hyperlinks@npm:^3.0.0": - version: 3.0.0 - resolution: "supports-hyperlinks@npm:3.0.0" - dependencies: - has-flag: ^4.0.0 - supports-color: ^7.0.0 - checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae - languageName: node - linkType: hard - -"svg-tags@npm:^1.0.0": - version: 1.0.0 - resolution: "svg-tags@npm:1.0.0" - checksum: 407e5ef87cfa2fb81c61d738081c2decd022ce13b922d035b214b49810630bf5d1409255a4beb3a940b77b32f6957806deff16f1bf0ce1ab11c7a184115a0b7f - languageName: node - linkType: hard - -"symbol-tree@npm:^3.2.4": - version: 3.2.4 - resolution: "symbol-tree@npm:3.2.4" - checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d - languageName: node - linkType: hard - -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" - dependencies: - "@pkgr/core": ^0.1.0 - tslib: ^2.6.2 - checksum: 9ed5d33abb785f5f24e2531efd53b2782ca77abf7912f734d170134552b99001915531be5a50297aa45c5701b5c9041e8762e6cd7a38e41e2461c1e7fccdedf8 - languageName: node - linkType: hard - -"tabbable@npm:^6.2.0": - version: 6.2.0 - resolution: "tabbable@npm:6.2.0" - checksum: f8440277d223949272c74bb627a3371be21735ca9ad34c2570f7e1752bd646ccfc23a9d8b1ee65d6561243f4134f5fbbf1ad6b39ac3c4b586554accaff4a1300 - languageName: node - linkType: hard - -"table@npm:^6.8.1": - version: 6.8.1 - resolution: "table@npm:6.8.1" - dependencies: - ajv: ^8.0.1 - lodash.truncate: ^4.4.2 - slice-ansi: ^4.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": - version: 6.2.0 - resolution: "tar@npm:6.2.0" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c - languageName: node - linkType: hard - -"temp-dir@npm:^3.0.0": - version: 3.0.0 - resolution: "temp-dir@npm:3.0.0" - checksum: 577211e995d1d584dd60f1469351d45e8a5b4524e4a9e42d3bdd12cfde1d0bb8f5898311bef24e02aaafb69514c1feb58c7b4c33dcec7129da3b0861a4ca935b - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": ^0.1.2 - glob: ^7.1.4 - minimatch: ^3.0.4 - checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 - languageName: node - linkType: hard - -"text-extensions@npm:^2.0.0": - version: 2.4.0 - resolution: "text-extensions@npm:2.4.0" - checksum: 9bdbc9959e004ccc86a6ec076d6c5bb6765978263e9d0d5febb640d7675c09919ea912f3fe9d50b68c3c7c43cc865610a7cb24954343abb31f74c205fbae4e45 - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - -"through@npm:>=2.2.7 <3, through@npm:^2.3.4": - version: 2.3.8 - resolution: "through@npm:2.3.8" - checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd - languageName: node - linkType: hard - -"tmp@npm:^0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" - dependencies: - os-tmpdir: ~1.0.2 - checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 - languageName: node - linkType: hard - -"tmpl@npm:1.0.5": - version: 1.0.5 - resolution: "tmpl@npm:1.0.5" - checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed - languageName: node - linkType: hard - -"toggle-selection@npm:^1.0.6": - version: 1.0.6 - resolution: "toggle-selection@npm:1.0.6" - checksum: a90dc80ed1e7b18db8f4e16e86a5574f87632dc729cfc07d9ea3ced50021ad42bb4e08f22c0913e0b98e3837b0b717e0a51613c65f30418e21eb99da6556a74c - languageName: node - linkType: hard - -"tough-cookie@npm:^4.1.2": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" - dependencies: - psl: ^1.1.33 - punycode: ^2.1.1 - universalify: ^0.2.0 - url-parse: ^1.5.3 - checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc - languageName: node - linkType: hard - -"tr46@npm:^3.0.0": - version: 3.0.0 - resolution: "tr46@npm:3.0.0" - dependencies: - punycode: ^2.1.1 - checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 - languageName: node - linkType: hard - -"treeverse@npm:^3.0.0": - version: 3.0.0 - resolution: "treeverse@npm:3.0.0" - checksum: 73168d9887fa57b0719218f176c5a3cfbaaf310922879acb4adf76665bc17dcdb6ed3e4163f0c27eee17e346886186a1515ea6f87e96cdc10df1dce13bf622a0 - languageName: node - linkType: hard - -"ts-api-utils@npm:^1.0.1": - version: 1.2.0 - resolution: "ts-api-utils@npm:1.2.0" - peerDependencies: - typescript: ">=4.2.0" - checksum: 9f11d4fdb8171e68cca664ae7b9c0438a2f57f66283f2e5aec8eb7ca3cb5126fb35be9cdf8884b35bf75bbf4cf222d7ea5f30e12bc7b984a720e42a4e44524bb - languageName: node - linkType: hard - -"ts-dedent@npm:^2.0.0": - version: 2.2.0 - resolution: "ts-dedent@npm:2.2.0" - checksum: 93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af - languageName: node - linkType: hard - -"ts-node@npm:^10.9.2": - version: 10.9.2 - resolution: "ts-node@npm:10.9.2" - dependencies: - "@cspotcode/source-map-support": ^0.8.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.1 - yn: 3.1.1 - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac - languageName: node - linkType: hard - -"tsconfig-paths@npm:^3.15.0": - version: 3.15.0 - resolution: "tsconfig-paths@npm:3.15.0" - dependencies: - "@types/json5": ^0.0.29 - json5: ^1.0.2 - minimist: ^1.2.6 - strip-bom: ^3.0.0 - checksum: 59f35407a390d9482b320451f52a411a256a130ff0e7543d18c6f20afab29ac19fbe55c360a93d6476213cc335a4d76ce90f67df54c4e9037f7d240920832201 - languageName: node - linkType: hard - -"tslib@npm:^1.8.1": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd - languageName: node - linkType: hard - -"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad - languageName: node - linkType: hard - -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 - languageName: node - linkType: hard - -"tuf-js@npm:^2.2.0": - version: 2.2.0 - resolution: "tuf-js@npm:2.2.0" - dependencies: - "@tufjs/models": 2.0.0 - debug: ^4.3.4 - make-fetch-happen: ^13.0.0 - checksum: 5e7ce24d5339a7c9255eb130e735f6fef36f02c916e6d2058602982803832afa086f31ae3b00d8cac6dca106644cc6f1b1463058dd513e2cc7b47c5783bb3098 - languageName: node - linkType: hard - -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: ^1.2.1 - checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a - languageName: node - linkType: hard - -"type-detect@npm:4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 - languageName: node - linkType: hard - -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 - languageName: node - linkType: hard - -"type-fest@npm:^2.5.1": - version: 2.19.0 - resolution: "type-fest@npm:2.19.0" - checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 - languageName: node - linkType: hard - -"type-fest@npm:^3.0.0, type-fest@npm:^3.8.0": - version: 3.13.1 - resolution: "type-fest@npm:3.13.1" - checksum: c06b0901d54391dc46de3802375f5579868949d71f93b425ce564e19a428a0d411ae8d8cb0e300d330071d86152c3ea86e744c3f2860a42a79585b6ec2fdae8e - languageName: node - linkType: hard - -"type-fest@npm:^4.2.0, type-fest@npm:^4.6.0": - version: 4.10.1 - resolution: "type-fest@npm:4.10.1" - checksum: 93fa506a81c963d4a4efcf72daa730d7720366fd26cde38c2be816122d46dddebaf4faa91ab89f8b19482d1bbdf8c497858e11d451602eafc9ea9ab08aee7327 - languageName: node - linkType: hard - -"typed-array-buffer@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-buffer@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - is-typed-array: ^1.1.10 - checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-length@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - for-each: ^0.3.3 - has-proto: ^1.0.1 - is-typed-array: ^1.1.10 - checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-offset@npm:1.0.0" - dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - for-each: ^0.3.3 - has-proto: ^1.0.1 - is-typed-array: ^1.1.10 - checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b - languageName: node - linkType: hard - -"typed-array-length@npm:^1.0.4": - version: 1.0.4 - resolution: "typed-array-length@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - for-each: ^0.3.3 - is-typed-array: ^1.1.9 - checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 - languageName: node - linkType: hard - -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - -"typescript@npm:^5.3.3": - version: 5.3.3 - resolution: "typescript@npm:5.3.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 2007ccb6e51bbbf6fde0a78099efe04dc1c3dfbdff04ca3b6a8bc717991862b39fd6126c0c3ebf2d2d98ac5e960bcaa873826bb2bb241f14277034148f41f6a2 - languageName: node - linkType: hard - -"typescript@patch:typescript@^5.3.3#~builtin": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=e012d7" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 4e604a9e107ce0c23b16a2f8d79d0531d4d8fe9ebbb7a8c395c66998c39892f0e0a071ef0b0d4e66420a8ec2b8d6cfd9cdb29ba24f25b37cba072e9282376df9 - languageName: node - linkType: hard - -"uglify-js@npm:^3.1.4": - version: 3.17.4 - resolution: "uglify-js@npm:3.17.4" - bin: - uglifyjs: bin/uglifyjs - checksum: 7b3897df38b6fc7d7d9f4dcd658599d81aa2b1fb0d074829dd4e5290f7318dbca1f4af2f45acb833b95b1fe0ed4698662ab61b87e94328eb4c0a0d3435baf924 - languageName: node - linkType: hard - -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - has-bigints: ^1.0.2 - has-symbols: ^1.0.3 - which-boxed-primitive: ^1.0.2 - checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 - languageName: node - linkType: hard - -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 - languageName: node - linkType: hard - -"unicode-canonical-property-names-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" - checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 - languageName: node - linkType: hard - -"unicode-match-property-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-ecmascript@npm:2.0.0" - dependencies: - unicode-canonical-property-names-ecmascript: ^2.0.0 - unicode-property-aliases-ecmascript: ^2.0.0 - checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a - languageName: node - linkType: hard - -"unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 - languageName: node - linkType: hard - -"unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.1.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" - checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b - languageName: node - linkType: hard - -"unicorn-magic@npm:^0.1.0": - version: 0.1.0 - resolution: "unicorn-magic@npm:0.1.0" - checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 - languageName: node - linkType: hard - -"universal-user-agent@npm:^6.0.0": - version: 6.0.1 - resolution: "universal-user-agent@npm:6.0.1" - checksum: fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c - languageName: node - linkType: hard - -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.0.13": - version: 1.0.13 - resolution: "update-browserslist-db@npm:1.0.13" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: ^2.1.0 - checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 - languageName: node - linkType: hard - -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: ^2.1.1 - requires-port: ^1.0.0 - checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf - languageName: node - linkType: hard - -"use-debounce@npm:^10.0.0": - version: 10.0.0 - resolution: "use-debounce@npm:10.0.0" - peerDependencies: - react: ">=16.8.0" - checksum: b296fedba916ca721eeb7117f29a13c252966d03411abccc5e5894ed4de0f32b9cb6f6b150555b8b4cb9b0acf53b84022ad4cd43b89253389e9cd13779eebca7 - languageName: node - linkType: hard - -"use-isomorphic-layout-effect@npm:^1.1.2": - version: 1.1.2 - resolution: "use-isomorphic-layout-effect@npm:1.1.2" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - -"uuid@npm:^9.0.0, uuid@npm:^9.0.1": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 - languageName: node - linkType: hard - -"v8-compile-cache-lib@npm:^3.0.1": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 - languageName: node - linkType: hard - -"v8-to-istanbul@npm:^9.0.1": - version: 9.2.0 - resolution: "v8-to-istanbul@npm:9.2.0" - dependencies: - "@jridgewell/trace-mapping": ^0.3.12 - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^2.0.0 - checksum: 31ef98c6a31b1dab6be024cf914f235408cd4c0dc56a5c744a5eea1a9e019ba279e1b6f90d695b78c3186feed391ed492380ccf095009e2eb91f3d058f0b4491 - languageName: node - linkType: hard - -"validate-npm-package-license@npm:^3.0.4": - version: 3.0.4 - resolution: "validate-npm-package-license@npm:3.0.4" - dependencies: - spdx-correct: ^3.0.0 - spdx-expression-parse: ^3.0.0 - checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad - languageName: node - linkType: hard - -"validate-npm-package-name@npm:^5.0.0": - version: 5.0.0 - resolution: "validate-npm-package-name@npm:5.0.0" - dependencies: - builtins: ^5.0.0 - checksum: 5342a994986199b3c28e53a8452a14b2bb5085727691ea7aa0d284a6606b127c371e0925ae99b3f1ef7cc7d2c9de75f52eb61a3d1cc45e39bca1e3a9444cbb4e - languageName: node - linkType: hard - -"vite@npm:^5.0.12": - version: 5.1.3 - resolution: "vite@npm:5.1.3" - dependencies: - esbuild: ^0.19.3 - fsevents: ~2.3.3 - postcss: ^8.4.35 - rollup: ^4.2.0 - peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" - lightningcss: ^1.21.0 - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: 827d67c5b951f0eab9d0293f30a6d60274da914d7548f4220021a596873c8a8891fe8d9418fac52486b8808a57cab8ee61ffe048520cce11b680eae4ed72bffa - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^4.0.0": - version: 4.0.0 - resolution: "w3c-xmlserializer@npm:4.0.0" - dependencies: - xml-name-validator: ^4.0.0 - checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 - languageName: node - linkType: hard - -"walk-up-path@npm:^3.0.1": - version: 3.0.1 - resolution: "walk-up-path@npm:3.0.1" - checksum: 9ffca02fe30fb65f6db531260582988c5e766f4c739cf86a6109380a7f791236b5d0b92b1dce37a6f73e22dca6bc9d93bf3700413e16251b2bd6bbd1ca2be316 - languageName: node - linkType: hard - -"walker@npm:^1.0.8": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: 1.0.12 - checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: ^1.0.3 - checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c - languageName: node - linkType: hard - -"web-streams-polyfill@npm:^3.0.3": - version: 3.3.2 - resolution: "web-streams-polyfill@npm:3.3.2" - checksum: 0292f4113c1bda40d8e8ecebee39eb14cc2e2e560a65a6867980e394537a2645130e2c73f5ef6e641fd3697d2f71720ccf659aebaf69a9d5a773f653a0fdf39d - languageName: node - linkType: hard - -"webcola@npm:3.4.0": - version: 3.4.0 - resolution: "webcola@npm:3.4.0" - dependencies: - d3-dispatch: ^1.0.3 - d3-drag: ^1.0.4 - d3-shape: ^1.3.5 - d3-timer: ^1.0.5 - checksum: 046f7cc06ef077b42e2cdecba9b9407452008444629a95d1c921283b9dae7c874ef8b5d66d4e21d56f427662598ae12d11992fbe10ec29d8ec0bcc68f6c40b75 - languageName: node - linkType: hard - -"webidl-conversions@npm:^7.0.0": - version: 7.0.0 - resolution: "webidl-conversions@npm:7.0.0" - checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b - languageName: node - linkType: hard - -"whatwg-encoding@npm:^2.0.0": - version: 2.0.0 - resolution: "whatwg-encoding@npm:2.0.0" - dependencies: - iconv-lite: 0.6.3 - checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 - languageName: node - linkType: hard - -"whatwg-mimetype@npm:^3.0.0": - version: 3.0.0 - resolution: "whatwg-mimetype@npm:3.0.0" - checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 - languageName: node - linkType: hard - -"whatwg-url@npm:^11.0.0": - version: 11.0.0 - resolution: "whatwg-url@npm:11.0.0" - dependencies: - tr46: ^3.0.0 - webidl-conversions: ^7.0.0 - checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af - languageName: node - linkType: hard - -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: ^1.0.1 - is-boolean-object: ^1.1.0 - is-number-object: ^1.0.4 - is-string: ^1.0.5 - is-symbol: ^1.0.3 - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14": - version: 1.1.14 - resolution: "which-typed-array@npm:1.1.14" - dependencies: - available-typed-arrays: ^1.0.6 - call-bind: ^1.0.5 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-tostringtag: ^1.0.1 - checksum: efe30c143c58630dde8ab96f9330e20165bacd77ca843c602b510120a415415573bcdef3ccbc30a0e5aaf20f257360cfe24712aea0008f149ce5bb99834c0c0b - languageName: node - linkType: hard - -"which@npm:^1.3.1": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: ^2.0.0 - bin: - which: ./bin/which - checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: ^2.0.0 - bin: - node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: ^3.1.1 - bin: - node-which: bin/which.js - checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 - languageName: node - linkType: hard - -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" - dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 - languageName: node - linkType: hard - -"wordwrap@npm:^1.0.0": - version: 1.0.0 - resolution: "wordwrap@npm:1.0.0" - checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04 - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b - languageName: node - linkType: hard - -"wrap-ansi@npm:^6.2.0": - version: 6.2.0 - resolution: "wrap-ansi@npm:6.2.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: ^6.1.0 - string-width: ^5.0.1 - strip-ansi: ^7.0.1 - checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 - languageName: node - linkType: hard - -"wrap-ansi@npm:^9.0.0": - version: 9.0.0 - resolution: "wrap-ansi@npm:9.0.0" - dependencies: - ansi-styles: ^6.2.1 - string-width: ^7.0.0 - strip-ansi: ^7.1.0 - checksum: b2d43b76b3d8dcbdd64768165e548aad3e54e1cae4ecd31bac9966faaa7cf0b0345677ad6879db10ba58eb446ba8fa44fb82b4951872fd397f096712467a809f - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"write-file-atomic@npm:^3.0.3": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - -"write-file-atomic@npm:^4.0.2": - version: 4.0.2 - resolution: "write-file-atomic@npm:4.0.2" - dependencies: - imurmurhash: ^0.1.4 - signal-exit: ^3.0.7 - checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c - languageName: node - linkType: hard - -"write-file-atomic@npm:^5.0.0, write-file-atomic@npm:^5.0.1": - version: 5.0.1 - resolution: "write-file-atomic@npm:5.0.1" - dependencies: - imurmurhash: ^0.1.4 - signal-exit: ^4.0.1 - checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 - languageName: node - linkType: hard - -"write-json-file@npm:^5.0.0": - version: 5.0.0 - resolution: "write-json-file@npm:5.0.0" - dependencies: - detect-indent: ^7.0.0 - is-plain-obj: ^4.0.0 - sort-keys: ^5.0.0 - write-file-atomic: ^3.0.3 - checksum: 6df0e8857c6ebe091cf8d23fa3405f004e7febf10307ad3d4da7b1ddfe1fa80e7cdd9832d3a554e253b6d3a6255d67b66f419cea0f8724abb25949be392eb23b - languageName: node - linkType: hard - -"write-pkg@npm:^6.0.1": - version: 6.0.1 - resolution: "write-pkg@npm:6.0.1" - dependencies: - deepmerge-ts: ^5.1.0 - read-pkg: ^8.1.0 - sort-keys: ^5.0.0 - type-fest: ^4.6.0 - write-json-file: ^5.0.0 - checksum: d482355662774945a7243bea2e03d32bf1173571211646d3793c18df5a41516c2eb35eca2ebbe65563b9d20c643560bd3751ea32ae57aa9144b3f81b79512a60 - languageName: node - linkType: hard - -"ws@npm:^8.11.0": - version: 8.16.0 - resolution: "ws@npm:8.16.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: feb3eecd2bae82fa8a8beef800290ce437d8b8063bdc69712725f21aef77c49cb2ff45c6e5e7fce622248f9c7abaee506bae0a9064067ffd6935460c7357321b - languageName: node - linkType: hard - -"xml-name-validator@npm:^4.0.0": - version: 4.0.0 - resolution: "xml-name-validator@npm:4.0.0" - checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad - languageName: node - linkType: hard - -"xmlchars@npm:^2.2.0": - version: 2.2.0 - resolution: "xmlchars@npm:2.2.0" - checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 - languageName: node - linkType: hard - -"yallist@npm:^3.0.2": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 - languageName: node - linkType: hard - -"yaml@npm:2.3.4": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 - languageName: node - linkType: hard - -"yaml@npm:^1.10.0": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f - languageName: node - linkType: hard - -"yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c - languageName: node - linkType: hard - -"yargs@npm:^17.3.1, yargs@npm:^17.7.2": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: ^8.0.1 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.1.1 - checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a - languageName: node - linkType: hard - -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 - languageName: node - linkType: hard - -"yocto-queue@npm:^1.0.0": - version: 1.0.0 - resolution: "yocto-queue@npm:1.0.0" - checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 - languageName: node - linkType: hard +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@adobe/css-tools@^4.3.2": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff" + integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.5", "@babel/core@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" + integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.9" + "@babel/parser" "^7.23.9" + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": + version "7.23.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz#25d55fafbaea31fd0e723820bb6cc3df72edf7ea" + integrity sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" + +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" + +"@babel/helpers@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" + integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ== + dependencies: + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4", "@babel/parser@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" + integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-async-generator-functions@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" + integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" + +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== + dependencies: + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + +"@babel/plugin-transform-modules-systemjs@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz#105d3ed46e4a21d257f83a2f9e2ee4203ceda6be" + integrity sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw== + dependencies: + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== + dependencies: + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" + +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-display-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-development@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.22.5" + +"@babel/plugin-transform-react-jsx-self@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz#ed3e7dadde046cce761a8e3cf003a13d1a7972d9" + integrity sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-source@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz#03527006bdc8775247a78643c51d4e715fe39a3e" + integrity sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx@^7.22.15", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" + +"@babel/plugin-transform-react-pure-annotations@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" + integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" + +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.9.tgz#beace3b7994560ed6bf78e4ae2073dff45387669" + integrity sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.9" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.8" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.9" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.8" + babel-plugin-polyfill-corejs3 "^0.9.0" + babel-plugin-polyfill-regenerator "^0.5.5" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" + integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-react-display-name" "^7.23.3" + "@babel/plugin-transform-react-jsx" "^7.22.15" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.23.3" + +"@babel/preset-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.9.tgz#47791a15e4603bb5f905bc0753801cf21d6345f7" + integrity sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.15", "@babel/template@^7.23.9", "@babel/template@^7.3.3": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" + integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + +"@babel/traverse@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" + integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.23.9", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" + integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@csstools/css-parser-algorithms@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532" + integrity sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ== + +"@csstools/css-tokenizer@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6" + integrity sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg== + +"@csstools/media-query-list-parser@^2.1.7": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788" + integrity sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ== + +"@csstools/selector-specificity@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz#d84597fbc0f897240c12fc0a31e492b036c70e40" + integrity sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww== + +"@dependents/detective-less@^3.0.1": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@dependents/detective-less/-/detective-less-3.0.2.tgz#c6e46997010fe03a5dc98351a7e99a46d34f5832" + integrity sha512-1YUvQ+e0eeTWAHoN8Uz2x2U37jZs6IGutiIE5LXId7cxfUGhtZjzxE06FdUiuiRrW+UE0vNCdSNPH2lY4dQCOQ== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^5.0.1" + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0", "@emotion/cache@^11.4.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.8.1": + version "11.11.3" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.3.tgz#96b855dc40a2a55f52a72f518a41db4f69c31a25" + integrity sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.3" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.3.tgz#84b77bfcfe3b7bb47d326602f640ccfcacd5ffb0" + integrity sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== + +"@floating-ui/core@^1.0.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1" + integrity sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g== + dependencies: + "@floating-ui/utils" "^0.2.1" + +"@floating-ui/dom@^1.0.1": + version "1.6.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.3.tgz#954e46c1dd3ad48e49db9ada7218b0985cee75ef" + integrity sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw== + dependencies: + "@floating-ui/core" "^1.0.0" + "@floating-ui/utils" "^0.2.0" + +"@floating-ui/utils@^0.2.0", "@floating-ui/utils@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" + integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== + +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + +"@hutson/parse-repository-url@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-5.0.0.tgz#bf344cc75136039bc41bcf5d1ddbcb40405fca3b" + integrity sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.22" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c" + integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lerna-lite/cli@3.3.0", "@lerna-lite/cli@^3.0.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lerna-lite/cli/-/cli-3.3.0.tgz#0c4c27b4d254edfb24c6fa8b6432af82e0992572" + integrity sha512-u3JG4576T0oex9TDIJoB1QOMwZ14FB4h1sae1/FtTUUhPis1loyvdlr2zw2HvPpCtMhv+JTGYpsjslQNFfWigA== + dependencies: + "@lerna-lite/core" "3.3.0" + "@lerna-lite/init" "3.3.0" + dedent "^1.5.1" + dotenv "^16.4.1" + import-local "^3.1.0" + load-json-file "^7.0.1" + npmlog "^7.0.1" + yargs "^17.7.2" + +"@lerna-lite/core@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lerna-lite/core/-/core-3.3.0.tgz#2b8d2fe236fddc7dfd706cdf2c4b11b099616ea8" + integrity sha512-IpCIvql2LuJJ6UQpsKlOMtYTz0bSa9Gq/hMGkWeT75lVSa9NICYxBAaSXSkMHvoUEPex+y7XVGm2LYbhVCOzPA== + dependencies: + "@npmcli/run-script" "^7.0.4" + chalk "^5.3.0" + clone-deep "^4.0.1" + config-chain "^1.1.13" + cosmiconfig "^9.0.0" + dedent "^1.5.1" + execa "^8.0.1" + fs-extra "^11.2.0" + glob-parent "^6.0.2" + globby "^14.0.0" + inquirer "^9.2.14" + is-ci "^3.0.1" + json5 "^2.2.3" + load-json-file "^7.0.1" + minimatch "^9.0.3" + npm-package-arg "^11.0.1" + npmlog "^7.0.1" + p-map "^7.0.1" + p-queue "^8.0.1" + resolve-from "^5.0.0" + semver "^7.6.0" + slash "^5.1.0" + strong-log-transformer "^2.1.0" + write-file-atomic "^5.0.1" + write-json-file "^5.0.0" + write-pkg "^6.0.1" + +"@lerna-lite/init@3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lerna-lite/init/-/init-3.3.0.tgz#0625c6ec400bfd55df15c9ed531fc08a34a30d43" + integrity sha512-lYhswm6lid8GhZ8My93GUhoN/+NW5E+5FwFKInLNUsFaNY7Oxb4kGmIrxShY3uAe0fj6PytohYFJy+IeeEGYoQ== + dependencies: + "@lerna-lite/core" "3.3.0" + fs-extra "^11.2.0" + p-map "^7.0.1" + write-json-file "^5.0.0" + +"@lerna-lite/publish@^3.0.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lerna-lite/publish/-/publish-3.3.0.tgz#50d81d3bdd1636e2d8255f0689a8a5d0c7be6773" + integrity sha512-3DxprCHf+CTUmSfLhalui+v2Ej8Beo//Ls7jhP2IsMxUPvVBE4clOtyCpJdwUJ/1eNvkq9WsAnkwx+HqG9xOUQ== + dependencies: + "@lerna-lite/cli" "3.3.0" + "@lerna-lite/core" "3.3.0" + "@lerna-lite/version" "3.3.0" + "@npmcli/arborist" "^7.3.1" + byte-size "^8.1.1" + chalk "^5.3.0" + columnify "^1.6.0" + fs-extra "^11.2.0" + glob "^10.3.10" + has-unicode "^2.0.1" + libnpmaccess "^8.0.2" + libnpmpublish "^9.0.4" + normalize-path "^3.0.0" + npm-package-arg "^11.0.1" + npm-packlist "^8.0.2" + npm-registry-fetch "^16.1.0" + npmlog "^7.0.1" + p-map "^7.0.1" + p-pipe "^4.0.0" + pacote "^17.0.6" + pify "^6.1.0" + read-package-json "^7.0.0" + semver "^7.6.0" + ssri "^10.0.5" + tar "^6.2.0" + temp-dir "^3.0.0" + +"@lerna-lite/version@3.3.0", "@lerna-lite/version@^3.0.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@lerna-lite/version/-/version-3.3.0.tgz#bbd7d5438221af3b058e028777f0cf49a6f76b42" + integrity sha512-Mi75gbjQreIDKWG9gtaolzuVua2hutp/tx4oXYkX0MENvWB5zmIYZCEqOawqvGSFSt+esD7P0MIU896aV2qyAQ== + dependencies: + "@lerna-lite/cli" "3.3.0" + "@lerna-lite/core" "3.3.0" + "@octokit/plugin-enterprise-rest" "^6.0.1" + "@octokit/rest" "^20.0.2" + chalk "^5.3.0" + conventional-changelog-angular "^7.0.0" + conventional-changelog-core "^7.0.0" + conventional-changelog-writer "^7.0.1" + conventional-commits-parser "^5.0.0" + conventional-recommended-bump "^9.0.0" + dedent "^1.5.1" + fs-extra "^11.2.0" + get-stream "^8.0.1" + git-url-parse "^14.0.0" + graceful-fs "^4.2.11" + is-stream "^3.0.0" + load-json-file "^7.0.1" + make-dir "^4.0.0" + minimatch "^9.0.3" + new-github-release-url "^2.0.0" + node-fetch "^3.3.2" + npm-package-arg "^11.0.1" + npmlog "^7.0.1" + p-map "^7.0.1" + p-pipe "^4.0.0" + p-reduce "^3.0.0" + pify "^6.1.0" + semver "^7.6.0" + slash "^5.1.0" + temp-dir "^3.0.0" + uuid "^9.0.1" + write-json-file "^5.0.0" + +"@ljharb/through@^2.3.12": + version "2.3.12" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.12.tgz#c418c43060eee193adce48b15c2206096a28e9ea" + integrity sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g== + dependencies: + call-bind "^1.0.5" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/agent@^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.1.tgz#8aa677d0a4136d57524336a35d5679aedf2d56f7" + integrity sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.1" + +"@npmcli/arborist@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.3.1.tgz#7f3f9bed8981584b040483a2f4b126fabcd06674" + integrity sha512-qjMywu8clYczZE2SlLZWVOujAyiJEHHSEzapIXpuMURRH/tfY0KPKvGPyjvV041QsGN3tsWeaTUHcOi59wscSw== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/fs" "^3.1.0" + "@npmcli/installed-package-contents" "^2.0.2" + "@npmcli/map-workspaces" "^3.0.2" + "@npmcli/metavuln-calculator" "^7.0.0" + "@npmcli/name-from-folder" "^2.0.0" + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.0.0" + "@npmcli/query" "^3.0.1" + "@npmcli/run-script" "^7.0.2" + bin-links "^4.0.1" + cacache "^18.0.0" + common-ancestor-path "^1.0.1" + hosted-git-info "^7.0.1" + json-parse-even-better-errors "^3.0.0" + json-stringify-nice "^1.1.4" + minimatch "^9.0.0" + nopt "^7.0.0" + npm-install-checks "^6.2.0" + npm-package-arg "^11.0.1" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^16.0.0" + npmlog "^7.0.1" + pacote "^17.0.4" + parse-conflict-json "^3.0.0" + proc-log "^3.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^3.0.1" + read-package-json-fast "^3.0.2" + semver "^7.3.7" + ssri "^10.0.5" + treeverse "^3.0.0" + walk-up-path "^3.0.1" + +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^5.0.0": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.4.tgz#d18c50f99649e6e89e8b427318134f582498700c" + integrity sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^3.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" + integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== + dependencies: + npm-bundled "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +"@npmcli/map-workspaces@^3.0.2": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" + integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== + dependencies: + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" + +"@npmcli/metavuln-calculator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.0.0.tgz#fb59245926d7f677db904177f9aca15ac883d6cb" + integrity sha512-Pw0tyX02VkpqlIQlG2TeiJNsdrecYeUU0ubZZa9pi3N37GCsxI+en43u4hYFdq+eSx1A9a9vwFAUyqEtKFsbHQ== + dependencies: + cacache "^18.0.0" + json-parse-even-better-errors "^3.0.0" + pacote "^17.0.0" + semver "^7.3.5" + +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@npmcli/node-gyp@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== + +"@npmcli/package-json@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91" + integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g== + dependencies: + "@npmcli/git" "^5.0.0" + glob "^10.2.2" + hosted-git-info "^7.0.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + proc-log "^3.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz#a836de2f42a2245d629cf6fbb8dd6c74c74c55af" + integrity sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg== + dependencies: + which "^4.0.0" + +"@npmcli/query@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6" + integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA== + dependencies: + postcss-selector-parser "^6.0.10" + +"@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.2", "@npmcli/run-script@^7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.4.tgz#9f29aaf4bfcf57f7de2a9e28d1ef091d14b2e6eb" + integrity sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg== + dependencies: + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.0.0" + "@npmcli/promise-spawn" "^7.0.0" + node-gyp "^10.0.0" + which "^4.0.0" + +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + +"@octokit/core@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.1.0.tgz#81dacf0197ed7855e6413f128bd6dd9e121e7d2f" + integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== + dependencies: + "@octokit/auth-token" "^4.0.0" + "@octokit/graphql" "^7.0.0" + "@octokit/request" "^8.0.2" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^9.0.0": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.4.tgz#8afda5ad1ffc3073d08f2b450964c610b821d1ea" + integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== + dependencies: + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.0.2.tgz#3df14b9968192f9060d94ed9e3aa9780a76e7f99" + integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== + dependencies: + "@octokit/request" "^8.0.1" + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^19.1.0": + version "19.1.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-19.1.0.tgz#75ec7e64743870fc73e1ab4bc6ec252ecdd624dc" + integrity sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw== + +"@octokit/plugin-enterprise-rest@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^9.0.0": + version "9.1.5" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz#1705bcef4dcde1f4015ee58a63dc61b68648f480" + integrity sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg== + dependencies: + "@octokit/types" "^12.4.0" + +"@octokit/plugin-request-log@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz#260fa6970aa97bbcbd91f99f3cd812e2b285c9f1" + integrity sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA== + +"@octokit/plugin-rest-endpoint-methods@^10.0.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.3.0.tgz#cba45a365ebc5dbeeca2db95466a514e69c5aa75" + integrity sha512-c/fjpoHispRvBZuRoTVt/uALg7pXa9RQbXWJiDMk6NDkGNomuAZG7YuYYpZoxeoXv+kVRjIDTsO0e1z0pei+PQ== + dependencies: + "@octokit/types" "^12.4.0" + +"@octokit/request-error@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.0.1.tgz#277e3ce3b540b41525e07ba24c5ef5e868a72db9" + integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== + dependencies: + "@octokit/types" "^12.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.2.0.tgz#125c547bc3f4c0e2dfa38c6829a1cf00027fbd98" + integrity sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ== + dependencies: + "@octokit/endpoint" "^9.0.0" + "@octokit/request-error" "^5.0.0" + "@octokit/types" "^12.0.0" + universal-user-agent "^6.0.0" + +"@octokit/rest@^20.0.2": + version "20.0.2" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.0.2.tgz#5cc8871ba01b14604439049e5f06c74b45c99594" + integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ== + dependencies: + "@octokit/core" "^5.0.0" + "@octokit/plugin-paginate-rest" "^9.0.0" + "@octokit/plugin-request-log" "^4.0.0" + "@octokit/plugin-rest-endpoint-methods" "^10.0.0" + +"@octokit/types@^12.0.0", "@octokit/types@^12.4.0": + version "12.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-12.5.0.tgz#a60003ad6bb073e5cac936f6ecf47c834f87c058" + integrity sha512-YJEKcb0KkJlIUNU/zjnZwHEP8AoVh/OoIcP/1IyR4UHxExz7fzpe/a8IG4wBtQi7QDEqiomVLX88S6FpxxAJtg== + dependencies: + "@octokit/openapi-types" "^19.1.0" + +"@patternfly/react-core@^5.1.1", "@patternfly/react-core@^5.1.2", "@patternfly/react-core@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@patternfly/react-core/-/react-core-5.2.0.tgz#85abcce50e5e6aa08c5f4a377422374b987faf40" + integrity sha512-AUd7jccCgE2ZRwVtpEbJNF2Sq1A//ZhRaEQ/QHZiiq8mQRQM0Bkpnx0HdefToZT+TgUIjmPW4AXO3ooRJmt26w== + dependencies: + "@patternfly/react-icons" "^5.2.0" + "@patternfly/react-styles" "^5.2.0" + "@patternfly/react-tokens" "^5.2.0" + focus-trap "7.5.2" + react-dropzone "^14.2.3" + tslib "^2.5.0" + +"@patternfly/react-icons@^5.1.1", "@patternfly/react-icons@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@patternfly/react-icons/-/react-icons-5.2.0.tgz#65080fdbf5b4ea375f59f5ff64dc981372db006c" + integrity sha512-vklAF2unvtK0trwx9Kk8nf4Xa2+nie4zxaIaQdnjIL7kX6a5SdsewDjlavOC3cRxnibZLQ5HQtpDZ4EmuXm8DQ== + +"@patternfly/react-styles@^5.1.1", "@patternfly/react-styles@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@patternfly/react-styles/-/react-styles-5.2.0.tgz#5e2ffd1270f252844acddb1b45b4e70fefbc72c6" + integrity sha512-u8in9RSU8YzcT0npgVeiIHi1Bdp7UdER9azWGi7vlJWooRI1hgQjIDpm22wopGFg0h8VOqhfIFWIyvqxuzhW6A== + +"@patternfly/react-table@^5.1.2": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@patternfly/react-table/-/react-table-5.2.0.tgz#b2fdaa5ca4ed647503e4eae71165a16823f802de" + integrity sha512-Pd+llSuAU9i1dvteQL1keEXmsQv6d8x4+F2arqGQS1umeOR3lvvycyFac1OboJ4oV2rAX97GVmtZdoJjaqxdhg== + dependencies: + "@patternfly/react-core" "^5.2.0" + "@patternfly/react-icons" "^5.2.0" + "@patternfly/react-styles" "^5.2.0" + "@patternfly/react-tokens" "^5.2.0" + lodash "^4.17.19" + tslib "^2.5.0" + +"@patternfly/react-tokens@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@patternfly/react-tokens/-/react-tokens-5.2.0.tgz#525aa82c9b280eca32cc48987fd70e3da1e08422" + integrity sha512-ZsrLpStHJQfvUJLIXT+cObJbA3jM4r9iWwULLva0s7DzznXJ6iIACQQfgwDtcSVyM95z5S1a/LHPj/wYgaqUIg== + +"@patternfly/react-topology@^5.1.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@patternfly/react-topology/-/react-topology-5.2.0.tgz#09df2807af75af172ef5291513f1f27235c7d41e" + integrity sha512-+kZJSbD6Pb1bTriNzLRiddfSbEBxyiNGSreiV6zOyPwfRizqbFPsOYyRuEocduzLqj0/wT3PM5Ml6JSp8Rw2TQ== + dependencies: + "@patternfly/react-core" "^5.1.1" + "@patternfly/react-icons" "^5.1.1" + "@patternfly/react-styles" "^5.1.1" + "@types/d3" "^7.4.0" + "@types/d3-force" "^1.2.1" + "@types/dagre" "0.7.42" + "@types/react-measure" "^2.0.6" + d3 "^7.8.0" + dagre "0.8.2" + lodash "^4.17.19" + mobx "^6.9.0" + mobx-react "^7.6.0" + point-in-svg-path "^1.0.1" + popper.js "^1.16.1" + react-measure "^2.3.0" + tslib "^2.0.0" + webcola "3.4.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + +"@react-dnd/asap@^5.0.1": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@react-dnd/asap/-/asap-5.0.2.tgz#1f81f124c1cd6f39511c11a881cfb0f715343488" + integrity sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A== + +"@react-dnd/invariant@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@react-dnd/invariant/-/invariant-4.0.2.tgz#b92edffca10a26466643349fac7cdfb8799769df" + integrity sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw== + +"@react-dnd/shallowequal@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz#d1b4befa423f692fa4abf1c79209702e7d8ae4b4" + integrity sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA== + +"@rollup/pluginutils@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rollup/rollup-android-arm-eabi@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.11.0.tgz#78693f843483a511bce6ce1d8a153a49f4cbab87" + integrity sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ== + +"@rollup/rollup-android-arm64@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.11.0.tgz#772cb1856f720863d982c17f25d3fbb930c946d3" + integrity sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw== + +"@rollup/rollup-darwin-arm64@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.11.0.tgz#cac4aac05432ac684a6c6c5788e8db738e047a22" + integrity sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg== + +"@rollup/rollup-darwin-x64@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.11.0.tgz#e36d66c6b2d4d716c94926a375d6865b0c0c9c02" + integrity sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw== + +"@rollup/rollup-linux-arm-gnueabihf@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.11.0.tgz#f7cc62debb348fb109724c882b99adc5c3f73e31" + integrity sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg== + +"@rollup/rollup-linux-arm64-gnu@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.11.0.tgz#ed398c7434734101e77a1fd0b05682b2c2027ecd" + integrity sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg== + +"@rollup/rollup-linux-arm64-musl@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.11.0.tgz#4860560d18d9f18568859a800b1e79fe3b85df9e" + integrity sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg== + +"@rollup/rollup-linux-riscv64-gnu@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.11.0.tgz#25bc0e9dbd5feab0b6fa68b2b87ce5f28a8a7c19" + integrity sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA== + +"@rollup/rollup-linux-x64-gnu@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.11.0.tgz#8c318d9c33a89cf9f917a1be90b0d8c75e0ab3ba" + integrity sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA== + +"@rollup/rollup-linux-x64-musl@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.11.0.tgz#132cf0787c966b3b22cf4475706fc4cb08ec880c" + integrity sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w== + +"@rollup/rollup-win32-arm64-msvc@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.11.0.tgz#18e49376786def75843e605bdc8059a301c11dad" + integrity sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g== + +"@rollup/rollup-win32-ia32-msvc@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.11.0.tgz#ff9281d8b189436b7c234a52e7e0b635631c8667" + integrity sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ== + +"@rollup/rollup-win32-x64-msvc@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.11.0.tgz#a59158f78d07cd3ac15092ffca2f0319f3bb69f6" + integrity sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg== + +"@sigstore/bundle@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.2.0.tgz#e3f555a5c503fe176d8d1e0e829b00f842502e46" + integrity sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ== + dependencies: + "@sigstore/protobuf-specs" "^0.3.0" + +"@sigstore/core@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-1.0.0.tgz#0fcdb32d191d4145a70cb837061185353b3b08e3" + integrity sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw== + +"@sigstore/protobuf-specs@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz#bdcc773671f625bb81591bca86ec5314d57297f3" + integrity sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA== + +"@sigstore/sign@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.3.tgz#f07bcd2cfee654fade867db44ae260f1a0142ba4" + integrity sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw== + dependencies: + "@sigstore/bundle" "^2.2.0" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.0" + make-fetch-happen "^13.0.0" + +"@sigstore/tuf@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.1.tgz#86ff3c3c907e271696c88de0108d9063a8cbcc45" + integrity sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q== + dependencies: + "@sigstore/protobuf-specs" "^0.3.0" + tuf-js "^2.2.0" + +"@sigstore/verify@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-1.1.0.tgz#ab617c5dc0bc09ead7f101a848f4870af2d84374" + integrity sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg== + dependencies: + "@sigstore/bundle" "^2.2.0" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.0" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sindresorhus/merge-streams@^2.1.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.2.1.tgz#82b5e1e135ef62ef8b522d6e7f43ad360a69f294" + integrity sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@storybook/addon-actions@^7.6.12": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.6.16.tgz#aed33b43743832f037aede8ce2bfda26b3b91fe6" + integrity sha512-wCpZljLXnu08TZzp+qL5AXousfUBzY6TgHVwn4yoZkMhPg3WLxZTceKYnc+XAxoMmdTrDjwanEF7v/uQ9eu64Q== + dependencies: + "@storybook/core-events" "7.6.16" + "@storybook/global" "^5.0.0" + "@types/uuid" "^9.0.1" + dequal "^2.0.2" + polished "^4.2.2" + uuid "^9.0.0" + +"@storybook/addon-knobs@^7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-7.0.2.tgz#f28fd180d8a283df6eb67f8f2578f1563b7b7615" + integrity sha512-PzKuscxcBPhA2jpDxJ/F+BvBRqHJ8qBki1kS1IOjmJbAfE96WFnweXZ73ImyAJnRtmtReCL6p0ZmFkrNDMDpUw== + dependencies: + copy-to-clipboard "^3.3.3" + core-js "^3.29.0" + escape-html "^1.0.3" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.21" + prop-types "^15.8.1" + qs "^6.11.1" + react-colorful "^5.6.1" + react-lifecycles-compat "^3.0.4" + react-select "^5.7.0" + +"@storybook/core-events@7.6.16": + version "7.6.16" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.6.16.tgz#320f88f463201a1a1c857c7b596dd61bde34e4c8" + integrity sha512-mkBqzrbp6vmdjo0fBZGrFQQ4YdvMFxF6AesdKTf8EzPa69FoxnhQLrmQ4aXF+9vXkxfXVJF2HfpoTEdfqqAo+w== + dependencies: + ts-dedent "^2.0.0" + +"@storybook/global@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" + integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== + +"@testing-library/jest-dom@^6.3.0": + version "6.4.2" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz#38949f6b63722900e2d75ba3c6d9bf8cffb3300e" + integrity sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw== + dependencies: + "@adobe/css-tools" "^4.3.2" + "@babel/runtime" "^7.9.2" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.6.3" + lodash "^4.17.15" + redent "^3.0.0" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@tufjs/canonical-json@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" + integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== + +"@tufjs/models@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.0.tgz#c7ab241cf11dd29deb213d6817dabb8c99ce0863" + integrity sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg== + dependencies: + "@tufjs/canonical-json" "2.0.0" + minimatch "^9.0.3" + +"@types/babel__core@^7.1.14", "@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + dependencies: + "@babel/types" "^7.20.7" + +"@types/d3-array@*": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.2.1.tgz#1f6658e3d2006c4fceac53fde464166859f8b8c5" + integrity sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg== + +"@types/d3-axis@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-axis/-/d3-axis-3.0.6.tgz#e760e5765b8188b1defa32bc8bb6062f81e4c795" + integrity sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-brush@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-brush/-/d3-brush-3.0.6.tgz#c2f4362b045d472e1b186cdbec329ba52bdaee6c" + integrity sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-chord@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-chord/-/d3-chord-3.0.6.tgz#1706ca40cf7ea59a0add8f4456efff8f8775793d" + integrity sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg== + +"@types/d3-color@*": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" + integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== + +"@types/d3-contour@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-contour/-/d3-contour-3.0.6.tgz#9ada3fa9c4d00e3a5093fed0356c7ab929604231" + integrity sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg== + dependencies: + "@types/d3-array" "*" + "@types/geojson" "*" + +"@types/d3-delaunay@*": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz#185c1a80cc807fdda2a3fe960f7c11c4a27952e1" + integrity sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw== + +"@types/d3-dispatch@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz#096efdf55eb97480e3f5621ff9a8da552f0961e7" + integrity sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ== + +"@types/d3-drag@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-dsv@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-dsv/-/d3-dsv-3.0.7.tgz#0a351f996dc99b37f4fa58b492c2d1c04e3dac17" + integrity sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g== + +"@types/d3-ease@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" + integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== + +"@types/d3-fetch@*": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-fetch/-/d3-fetch-3.0.7.tgz#c04a2b4f23181aa376f30af0283dbc7b3b569980" + integrity sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA== + dependencies: + "@types/d3-dsv" "*" + +"@types/d3-force@*": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-3.0.9.tgz#dd96ccefba4386fe4ff36b8e4ee4e120c21fcf29" + integrity sha512-IKtvyFdb4Q0LWna6ymywQsEYjK/94SGhPrMfEr1TIc5OBeziTi+1jcCvttts8e0UWZIxpasjnQk9MNk/3iS+kA== + +"@types/d3-force@^1.2.1": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/d3-force/-/d3-force-1.2.7.tgz#b066d91ac3b8f19c35a60b49e89e99f60187460a" + integrity sha512-zySqZfnxn67RVEGWzpD9dQA0AbNIp4Rj0qGvAuUdUNfGLrwuGCbEGAGze5hEdNaHJKQT2gTqr6j+qAzncm11ew== + +"@types/d3-format@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-3.0.4.tgz#b1e4465644ddb3fdf3a263febb240a6cd616de90" + integrity sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g== + +"@types/d3-geo@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-3.1.0.tgz#b9e56a079449174f0a2c8684a9a4df3f60522440" + integrity sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ== + dependencies: + "@types/geojson" "*" + +"@types/d3-hierarchy@*": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-3.1.6.tgz#8d3638df273ec90da34b3ac89d8784c59708cb0d" + integrity sha512-qlmD/8aMk5xGorUvTUWHCiumvgaUXYldYjNVOWtYoTYY/L+WwIEAmJxUmTgr9LoGNG0PPAOmqMDJVDPc7DOpPw== + +"@types/d3-interpolate@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" + integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== + dependencies: + "@types/d3-color" "*" + +"@types/d3-path@*": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-3.1.0.tgz#2b907adce762a78e98828f0b438eaca339ae410a" + integrity sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ== + +"@types/d3-polygon@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-polygon/-/d3-polygon-3.0.2.tgz#dfae54a6d35d19e76ac9565bcb32a8e54693189c" + integrity sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA== + +"@types/d3-quadtree@*": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz#d4740b0fe35b1c58b66e1488f4e7ed02952f570f" + integrity sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg== + +"@types/d3-random@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-3.0.3.tgz#ed995c71ecb15e0cd31e22d9d5d23942e3300cfb" + integrity sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ== + +"@types/d3-scale-chromatic@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz#fc0db9c10e789c351f4c42d96f31f2e4df8f5644" + integrity sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw== + +"@types/d3-scale@*": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-4.0.8.tgz#d409b5f9dcf63074464bf8ddfb8ee5a1f95945bb" + integrity sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ== + dependencies: + "@types/d3-time" "*" + +"@types/d3-selection@*": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.10.tgz#98cdcf986d0986de6912b5892e7c015a95ca27fe" + integrity sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg== + +"@types/d3-shape@*": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" + integrity sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA== + dependencies: + "@types/d3-path" "*" + +"@types/d3-time-format@*": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.3.tgz#d6bc1e6b6a7db69cccfbbdd4c34b70632d9e9db2" + integrity sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg== + +"@types/d3-time@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-3.0.3.tgz#3c186bbd9d12b9d84253b6be6487ca56b54f88be" + integrity sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw== + +"@types/d3-timer@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" + integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== + +"@types/d3-transition@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.8.tgz#677707f5eed5b24c66a1918cde05963021351a8f" + integrity sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@*": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + +"@types/d3@^7.4.0": + version "7.4.3" + resolved "https://registry.yarnpkg.com/@types/d3/-/d3-7.4.3.tgz#d4550a85d08f4978faf0a4c36b848c61eaac07e2" + integrity sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww== + dependencies: + "@types/d3-array" "*" + "@types/d3-axis" "*" + "@types/d3-brush" "*" + "@types/d3-chord" "*" + "@types/d3-color" "*" + "@types/d3-contour" "*" + "@types/d3-delaunay" "*" + "@types/d3-dispatch" "*" + "@types/d3-drag" "*" + "@types/d3-dsv" "*" + "@types/d3-ease" "*" + "@types/d3-fetch" "*" + "@types/d3-force" "*" + "@types/d3-format" "*" + "@types/d3-geo" "*" + "@types/d3-hierarchy" "*" + "@types/d3-interpolate" "*" + "@types/d3-path" "*" + "@types/d3-polygon" "*" + "@types/d3-quadtree" "*" + "@types/d3-random" "*" + "@types/d3-scale" "*" + "@types/d3-scale-chromatic" "*" + "@types/d3-selection" "*" + "@types/d3-shape" "*" + "@types/d3-time" "*" + "@types/d3-time-format" "*" + "@types/d3-timer" "*" + "@types/d3-transition" "*" + "@types/d3-zoom" "*" + +"@types/dagre@0.7.42": + version "0.7.42" + resolved "https://registry.yarnpkg.com/@types/dagre/-/dagre-0.7.42.tgz#2b0cd7678d5fc273df7816a88b8b34016e3a5d85" + integrity sha512-knVdi1Ul8xYgJ0wdhQ+/2YGJFKJFa/5srcPII9zvOs4KhsHfpnFrSTQXATYmjslglxRMif3Lg+wEZ0beag+94A== + +"@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + +"@types/geojson@*": + version "7946.0.14" + resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.14.tgz#319b63ad6df705ee2a65a73ef042c8271e696613" + integrity sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg== + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.12": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jsdom@^20.0.0": + version "20.0.1" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" + integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== + dependencies: + "@types/node" "*" + "@types/tough-cookie" "*" + parse5 "^7.0.0" + +"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/node@*", "@types/node@^20.11.6": + version "20.11.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.19.tgz#b466de054e9cb5b3831bee38938de64ac7f81195" + integrity sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ== + dependencies: + undici-types "~5.26.4" + +"@types/normalize-package-data@^2.4.1": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/pako@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.3.tgz#b6993334f3af27c158f3fe0dfeeba987c578afb1" + integrity sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q== + +"@types/parse-json@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== + +"@types/prop-types@*": + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== + +"@types/react-dom@^18.2.18": + version "18.2.19" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.19.tgz#b84b7c30c635a6c26c6a6dfbb599b2da9788be58" + integrity sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA== + dependencies: + "@types/react" "*" + +"@types/react-measure@^2.0.6": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@types/react-measure/-/react-measure-2.0.12.tgz#e8ba05057357b9529aa4115064fe7ea77549f54c" + integrity sha512-Y6V11CH6bU7RhqrIdENPwEUZlPXhfXNGylMNnGwq5TAEs2wDoBA3kSVVM/EQ8u72sz5r9ja+7W8M8PIVcS841Q== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.0": + version "4.4.10" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.2.53": + version "18.2.55" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.55.tgz#38141821b7084404b5013742bc4ae08e44da7a67" + integrity sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + +"@types/semver@^7.3.12", "@types/semver@^7.5.0": + version "7.5.7" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.7.tgz#326f5fdda70d13580777bcaa1bc6fa772a5aef0e" + integrity sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + +"@types/uuid@^9.0.1": + version "9.0.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" + integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/type-utils" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/type-utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" + integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== + dependencies: + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + +"@typescript-eslint/typescript-estree@5.62.0", "@typescript-eslint/typescript-estree@^5.55.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/typescript-estree@^4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/utils@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" + integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + semver "^7.5.4" + +"@typescript-eslint/utils@^5.10.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vitejs/plugin-react@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" + integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + dependencies: + "@babel/core" "^7.23.5" + "@babel/plugin-transform-react-jsx-self" "^7.23.3" + "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.0" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== + dependencies: + acorn "^8.1.0" + acorn-walk "^8.0.2" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.2, acorn-walk@^8.1.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + +acorn@^8.1.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-escapes@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" + integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== + dependencies: + type-fest "^3.0.0" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-module-path@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" + integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a" + integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.filter@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" + integrity sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +array.prototype.findlastindex@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz#d1c50f0b3a9da191981ff8942a0aedd82794404f" + integrity sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +ast-module-types@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-2.7.1.tgz#3f7989ef8dfa1fdb82dfe0ab02bdfc7c77a57dd3" + integrity sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw== + +ast-module-types@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-3.0.0.tgz#9a6d8a80f438b6b8fe4995699d700297f398bf81" + integrity sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ== + +ast-module-types@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-4.0.0.tgz#17e1cadd5b5b108e7295b0cf0cff21ccc226b639" + integrity sha512-Kd0o8r6CDazJGCRzs8Ivpn0xj19oNKrULhoJFzhGjRsLpekF2zyZs9Ukz+JvZhWD6smszfepakTFhAaYpsI12g== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +attr-accept@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b" + integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg== + +available-typed-arrays@^1.0.5, available-typed-arrays@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== + +axios@^1.5.1: + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-polyfill-corejs2@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" + integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.5.0" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" + integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + core-js-compat "^3.34.0" + +babel-plugin-polyfill-regenerator@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +balanced-match@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" + integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +bin-links@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" + integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA== + dependencies: + cmd-shim "^6.0.0" + npm-normalize-package-bin "^3.0.0" + read-cmd-shim "^4.0.0" + write-file-atomic "^5.0.0" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.22.2, browserslist@^4.22.3: + version "4.23.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + dependencies: + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +byte-size@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" + integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== + +cacache@^18.0.0: + version "18.0.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.2.tgz#fd527ea0f03a603be5c0da5805635f8eef00c60c" + integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001587: + version "1.0.30001587" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz#a0bce920155fa56a1885a69c74e1163fc34b4881" + integrity sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA== + +chalk@5.3.0, chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +"chokidar@>=3.0.0 <4.0.0": + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +ci-info@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" + integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== + +cjs-module-lexer@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== + dependencies: + slice-ansi "^5.0.0" + string-width "^7.0.0" + +cli-width@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" + integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cmd-shim@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" + integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.1.4, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +columnify@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^2.16.0, commander@^2.20.3, commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^9.5.0: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== + +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +config-chain@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +conventional-changelog-angular@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-core@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-7.0.0.tgz#d8879ebb8692cd1fa8126c209e1b3af34d94e113" + integrity sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg== + dependencies: + "@hutson/parse-repository-url" "^5.0.0" + add-stream "^1.0.0" + conventional-changelog-writer "^7.0.0" + conventional-commits-parser "^5.0.0" + git-raw-commits "^4.0.0" + git-semver-tags "^7.0.0" + hosted-git-info "^7.0.0" + normalize-package-data "^6.0.0" + read-pkg "^8.0.0" + read-pkg-up "^10.0.0" + +conventional-changelog-preset-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-4.1.0.tgz#996bc40d516471c5bf8248fdc30222563b9bcfe6" + integrity sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA== + +conventional-changelog-writer@^7.0.0, conventional-changelog-writer@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz#e64ef74fa8e773cab4124af217f3f02b29eb0a9c" + integrity sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA== + dependencies: + conventional-commits-filter "^4.0.0" + handlebars "^4.7.7" + json-stringify-safe "^5.0.1" + meow "^12.0.1" + semver "^7.5.2" + split2 "^4.0.0" + +conventional-commits-filter@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz#845d713e48dc7d1520b84ec182e2773c10c7bf7f" + integrity sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A== + +conventional-commits-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz#57f3594b81ad54d40c1b4280f04554df28627d9a" + integrity sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== + dependencies: + JSONStream "^1.3.5" + is-text-path "^2.0.0" + meow "^12.0.1" + split2 "^4.0.0" + +conventional-recommended-bump@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-9.0.0.tgz#2910b08b10e6c705301335ab916e7438eba5907f" + integrity sha512-HR1yD0G5HgYAu6K0wJjLd7QGRK8MQDqqj6Tn1n/ja1dFwBCE6QmV+iSgQ5F7hkx7OUR/8bHpxJqYtXj2f/opPQ== + dependencies: + conventional-changelog-preset-loader "^4.1.0" + conventional-commits-filter "^4.0.0" + conventional-commits-parser "^5.0.0" + git-raw-commits "^4.0.0" + git-semver-tags "^7.0.0" + meow "^12.0.1" + +convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +copy-to-clipboard@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + dependencies: + toggle-selection "^1.0.6" + +core-js-compat@^3.31.0, core-js-compat@^3.34.0: + version "3.36.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" + integrity sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw== + dependencies: + browserslist "^4.22.3" + +core-js@^3.29.0: + version "3.36.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.36.0.tgz#e752fa0b0b462a0787d56e9d73f80b0f7c0dde68" + integrity sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-functions-list@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.1.tgz#2eb205d8ce9f9ce74c5c1d7490b66b77c45ce3ea" + integrity sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ== + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfontparser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" + integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== + +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +d3-dispatch@1, d3-dispatch@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" + integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +d3-drag@^1.0.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" + integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== + dependencies: + d3-dispatch "1" + d3-selection "1" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" + integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4, d3-scale@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +d3-selection@1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" + integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3, d3-shape@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +d3-shape@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +d3-timer@^1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" + integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.8.0: + version "7.8.5" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" + integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + +dagre@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.2.tgz#755b79f4d5499d63cf74c3368fb08add93eceafe" + integrity sha512-TEOOGZOkCOgCG7AoUIq64sJ3d21SMv8tyoqteLpX+UsUsS9Qw8iap4hhogXY4oB3r0bbZuAjO0atAilgCmsE0Q== + dependencies: + graphlib "^2.1.5" + lodash "^4.17.4" + +dargs@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-8.1.0.tgz#a34859ea509cbce45485e5aa356fef70bfcc7272" + integrity sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-urls@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" + integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== + dependencies: + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decimal.js@^10.4.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +dedent@^1.0.0, dedent@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge-ts@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/deepmerge-ts/-/deepmerge-ts-5.1.0.tgz#c55206cc4c7be2ded89b9c816cf3608884525d7a" + integrity sha512-eS8dRJOckyo9maw9Tu5O5RUi/4inFLrnoLkBe3cPfDMx3WZioXtmOew4TXQaxq7Rhl4xjDtR7c6x8nNTxOvbFw== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delaunator@5: + version "5.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.1.tgz#39032b08053923e924d6094fe2cde1a99cc51278" + integrity sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw== + dependencies: + robust-predicates "^3.0.2" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dependency-tree@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-9.0.0.tgz#9288dd6daf35f6510c1ea30d9894b75369aa50a2" + integrity sha512-osYHZJ1fBSon3lNLw70amAXsQ+RGzXsPvk9HbBgTLbp/bQBmpH5mOmsUvqXU+YEWVU0ZLewsmzOET/8jWswjDQ== + dependencies: + commander "^2.20.3" + debug "^4.3.1" + filing-cabinet "^3.0.1" + precinct "^9.0.0" + typescript "^4.0.0" + +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dequal@^2.0.2, dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-indent@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.1.tgz#cbb060a12842b9c4d333f1cac4aa4da1bb66bc25" + integrity sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detective-amd@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-3.1.2.tgz#bf55eb5291c218b76d6224a3d07932ef13a9a357" + integrity sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ== + dependencies: + ast-module-types "^3.0.0" + escodegen "^2.0.0" + get-amd-module-type "^3.0.0" + node-source-walk "^4.2.0" + +detective-amd@^4.0.1, detective-amd@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-4.2.0.tgz#21c43465669f06cf894eef047a27e6e72ba6bc13" + integrity sha512-RbuEJHz78A8nW7CklkqTzd8lDCN42En53dgEIsya0DilpkwslamSZDasLg8dJyxbw46OxhSQeY+C2btdSkCvQQ== + dependencies: + ast-module-types "^4.0.0" + escodegen "^2.0.0" + get-amd-module-type "^4.1.0" + node-source-walk "^5.0.1" + +detective-cjs@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-3.1.3.tgz#50e107d67b37f459b0ec02966ceb7e20a73f268b" + integrity sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^4.0.0" + +detective-cjs@^4.0.0, detective-cjs@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-4.1.0.tgz#56b1558ca0910933c7fc47c740b957f0280ff302" + integrity sha512-QxzMwt5MfPLwS7mG30zvnmOvHLx5vyVvjsAV6gQOyuMoBR5G1DhS1eJZ4P10AlH+HSnk93mTcrg3l39+24XCtg== + dependencies: + ast-module-types "^4.0.0" + node-source-walk "^5.0.1" + +detective-es6@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-2.2.2.tgz#ee5f880981d9fecae9a694007029a2f6f26d8d28" + integrity sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw== + dependencies: + node-source-walk "^4.0.0" + +detective-es6@^3.0.0, detective-es6@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-3.0.1.tgz#53a15fbb2f298c4a106d9fe7427da8a57162dde6" + integrity sha512-evPeYIEdK1jK3Oji5p0hX4sPV/1vK+o4ihcWZkMQE6voypSW/cIBiynOLxQk5KOOQbdP8oOAsYqouMTYO5l1sw== + dependencies: + node-source-walk "^5.0.0" + +detective-less@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/detective-less/-/detective-less-1.0.2.tgz#a68af9ca5f69d74b7d0aa190218b211d83b4f7e3" + integrity sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA== + dependencies: + debug "^4.0.0" + gonzales-pe "^4.2.3" + node-source-walk "^4.0.0" + +detective-postcss@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-4.0.0.tgz#24e69b465e5fefe7a6afd05f7e894e34595dbf51" + integrity sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A== + dependencies: + debug "^4.1.1" + is-url "^1.2.4" + postcss "^8.1.7" + postcss-values-parser "^2.0.1" + +detective-postcss@^6.1.0, detective-postcss@^6.1.1: + version "6.1.3" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-6.1.3.tgz#51a2d4419327ad85d0af071c7054c79fafca7e73" + integrity sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw== + dependencies: + is-url "^1.2.4" + postcss "^8.4.23" + postcss-values-parser "^6.0.2" + +detective-sass@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-3.0.2.tgz#e0f35aac79a4d2f6409c284d95b8f7ecd5973afd" + integrity sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^4.0.0" + +detective-sass@^4.0.1, detective-sass@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-4.1.3.tgz#6cdcc27ae8a90d15704e0ba83683048f77f10b75" + integrity sha512-xGRbwGaGte57gvEqM8B9GDiURY3El/H49vA6g9wFkxq9zalmTlTAuqWu+BsH0iwonGPruLt55tZZDEZqPc6lag== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^5.0.1" + +detective-scss@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-2.0.2.tgz#7d2a642616d44bf677963484fa8754d9558b8235" + integrity sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^4.0.0" + +detective-scss@^3.0.0, detective-scss@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-3.1.1.tgz#b49f05cadfb0837b04e23baba292581b7c7f65e1" + integrity sha512-FWkfru1jZBhUeuBsOeGKXKAVDrzYFSQFK2o2tuG/nCCFQ0U/EcXC157MNAcR5mmj+mCeneZzlkBOFJTesDjrww== + dependencies: + gonzales-pe "^4.3.0" + node-source-walk "^5.0.1" + +detective-stylus@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-1.0.3.tgz#20a702936c9fd7d4203fd7a903314b5dd43ac713" + integrity sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q== + +detective-stylus@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-2.0.1.tgz#d528dfa7ef3c4eb2fbc9a7249d54906ec4e05d09" + integrity sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ== + +detective-stylus@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-3.0.0.tgz#c869795a7d6df7043ab6aee8b1a6f3dd66764232" + integrity sha512-1xYTzbrduExqMYmte7Qk99IRA3Aa6oV7PYzd+3yDcQXkmENvyGF/arripri6lxRDdNYEb4fZFuHtNRAXbz3iAA== + +detective-typescript@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-7.0.2.tgz#c6e00b4c28764741ef719662250e6b014a5f3c8e" + integrity sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA== + dependencies: + "@typescript-eslint/typescript-estree" "^4.33.0" + ast-module-types "^2.7.1" + node-source-walk "^4.2.0" + typescript "^3.9.10" + +detective-typescript@^9.0.0, detective-typescript@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-9.1.1.tgz#b99c0122cbb35b39de2c5f58447f1e93ac28c6d5" + integrity sha512-Uc1yVutTF0RRm1YJ3g//i1Cn2vx1kwHj15cnzQP6ff5koNzQ0idc1zAC73ryaWEulA0ElRXFTq6wOqe8vUQ3MA== + dependencies: + "@typescript-eslint/typescript-estree" "^5.55.0" + ast-module-types "^4.0.0" + node-source-walk "^5.0.1" + typescript "^4.9.5" + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dnd-core@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/dnd-core/-/dnd-core-16.0.1.tgz#a1c213ed08961f6bd1959a28bb76f1a868360d19" + integrity sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng== + dependencies: + "@react-dnd/asap" "^5.0.1" + "@react-dnd/invariant" "^4.0.1" + redux "^4.2.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== + dependencies: + webidl-conversions "^7.0.0" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv@^16.4.1: + version "16.4.4" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.4.tgz#a26e7bb95ebd36272ebb56edb80b826aecf224c1" + integrity sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +electron-to-chromium@^1.4.668: + version "1.4.671" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.671.tgz#fa3094d6d2512a6c4d609a9bc4997154543febfe" + integrity sha512-UUlE+/rWbydmp+FW8xlnnTA5WNA0ZZd2XL8CuMS72rh+k4y1f8+z6yk3UQhEwqHQWj6IBdL78DwWOdGMvYfQyA== + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +enhanced-resolve@^5.8.3: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1, error-ex@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.22.1, es-abstract@^1.22.3: + version "1.22.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.4.tgz#26eb2e7538c3271141f5754d31aabfdb215f27bf" + integrity sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.6" + call-bind "^1.0.7" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.2" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.1" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.0" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.1" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.14" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-set-tostringtag@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== + dependencies: + get-intrinsic "^1.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + +escalade@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jest@^27.6.3: + version "27.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.8.0.tgz#c8900c3e74e4c6b8cee67ea77dbc8de9cbd9e093" + integrity sha512-347hVFiu4ZKMYl5xFp0X81gLNwBdno0dl0CMpUMjwuAux9X/M2a7z+ab2VHmPL6XCT87q8nv1vaVzhIO4TE/hw== + dependencies: + "@typescript-eslint/utils" "^5.10.0" + +eslint-plugin-prettier@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react-refresh@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz#6b9b307bad3feba2244ef64a1a15485ac70a2d0f" + integrity sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w== + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.56.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@8.0.1, execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +external-editor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-xml-parser@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.4.tgz#385cc256ad7bbc57b91515a38a22502a9e1fca0d" + integrity sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA== + dependencies: + strnum "^1.0.5" + +fastest-levenshtein@^1.0.16: + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +figures@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + +file-saver@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" + integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== + +file-selector@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.6.0.tgz#fa0a8d9007b829504db4d07dd4de0310b65287dc" + integrity sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw== + dependencies: + tslib "^2.4.0" + +filing-cabinet@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-3.3.1.tgz#45d87bb273a0e0a7dd6ac6bac9111059186e2e9c" + integrity sha512-renEK4Hh6DUl9Vl22Y3cxBq1yh8oNvbAdXnhih0wVpmea+uyKjC9K4QeRjUaybIiIewdzfum+Fg15ZqJ/GyCaA== + dependencies: + app-module-path "^2.2.0" + commander "^2.20.3" + debug "^4.3.3" + enhanced-resolve "^5.8.3" + is-relative-path "^1.0.2" + module-definition "^3.3.1" + module-lookup-amd "^7.0.1" + resolve "^1.21.0" + resolve-dependency-path "^2.0.0" + sass-lookup "^3.0.0" + stylus-lookup "^3.0.1" + tsconfig-paths "^3.10.1" + typescript "^3.9.7" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat-cache@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.0.tgz#d12437636f83bb8a12b8f300c36fd1614e1c7224" + integrity sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + rimraf "^5.0.5" + +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +focus-trap@7.5.2: + version "7.5.2" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf" + integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw== + dependencies: + tabbable "^6.2.0" + +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" + integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^4.0.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-amd-module-type@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz#46550cee2b8e1fa4c3f2c8a5753c36990aa49ab0" + integrity sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^4.2.2" + +get-amd-module-type@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-4.1.0.tgz#af1396d02cd935cb6fafdc4a5282395db3422db6" + integrity sha512-0e/eK6vTGCnSfQ6eYs3wtH05KotJYIP7ZIZEueP/KlA+0dIAEs8bYFvOd/U56w1vfjhJqBagUxVMyy9Tr/cViQ== + dependencies: + ast-module-types "^4.0.0" + node-source-walk "^5.0.1" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-east-asian-width@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-node-dimensions@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz#fb7b4bb57060fb4247dd51c9d690dfbec56b0823" + integrity sha512-2MSPMu7S1iOTL+BOa6K1S62hB2zUAYNF/lV0gSVlOaacd087lc6nR1H1r0e3B1CerTo+RceOmi1iJW+vp21xcQ== + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +git-raw-commits@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-4.0.0.tgz#b212fd2bff9726d27c1283a1157e829490593285" + integrity sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== + dependencies: + dargs "^8.0.0" + meow "^12.0.1" + split2 "^4.0.0" + +git-semver-tags@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-7.0.1.tgz#74426e7d7710e5a263655e78b4c651eed804d63e" + integrity sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q== + dependencies: + meow "^12.0.1" + semver "^7.5.2" + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" + integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== + dependencies: + git-up "^7.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^10.2.2, glob@^10.3.10, glob@^10.3.7: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.3, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^14.0.0: + version "14.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.1.tgz#a1b44841aa7f4c6d8af2bc39951109d77301959b" + integrity sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ== + dependencies: + "@sindresorhus/merge-streams" "^2.1.0" + fast-glob "^3.3.2" + ignore "^5.2.4" + path-type "^5.0.0" + slash "^5.1.0" + unicorn-magic "^0.1.0" + +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== + +gonzales-pe@^4.2.3, gonzales-pe@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3" + integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ== + dependencies: + minimist "^1.2.5" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphlib@^2.1.5: + version "2.1.8" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" + integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== + dependencies: + lodash "^4.17.15" + +handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +hasown@^2.0.0, hasown@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" + integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== + dependencies: + function-bind "^1.1.2" + +hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hosted-git-info@^7.0.0, hosted-git-info@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" + integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== + dependencies: + lru-cache "^10.0.1" + +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^7.0.1: + version "7.0.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168" + integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +husky@^9.0.0: + version "9.0.11" + resolved "https://registry.yarnpkg.com/husky/-/husky-9.0.11.tgz#fc91df4c756050de41b3e478b2158b87c1e79af9" + integrity sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw== + +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" + integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== + dependencies: + minimatch "^9.0.0" + +ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +immutable@^4.0.0: + version "4.3.5" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0" + integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw== + +import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2, import-local@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@^9.2.14: + version "9.2.14" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.14.tgz#b55474f1e4f5f0eb28b2f75f09c082209f0cc2ca" + integrity sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ== + dependencies: + "@ljharb/through" "^2.3.12" + ansi-escapes "^4.3.2" + chalk "^5.3.0" + cli-cursor "^3.1.0" + cli-width "^4.1.0" + external-editor "^3.1.0" + figures "^3.2.0" + lodash "^4.17.21" + mute-stream "1.0.0" + ora "^5.4.1" + run-async "^3.0.0" + rxjs "^7.8.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wrap-ansi "^6.2.0" + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.8.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-fullwidth-code-point@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== + +is-fullwidth-code-point@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" + integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== + dependencies: + get-east-asian-width "^1.0.0" + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-relative-path@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-relative-path/-/is-relative-path-1.0.2.tgz#091b46a0d67c1ed0fe85f1f8cfdde006bb251d46" + integrity sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-text-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-2.0.0.tgz#b2484e2b720a633feb2e85b67dc193ff72c75636" + integrity sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== + dependencies: + text-extensions "^2.0.0" + +is-typed-array@^1.1.10, is-typed-array@^1.1.13, is-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-url-superb@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2" + integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-canvas-mock@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" + integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== + dependencies: + cssfontparser "^1.2.1" + moo-color "^1.0.2" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-jsdom@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" + integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/jsdom" "^20.0.0" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + jsdom "^20.0.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + +jsdom@^20.0.0: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" + integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== + dependencies: + abab "^2.0.6" + acorn "^8.8.1" + acorn-globals "^7.0.0" + cssom "^0.5.0" + cssstyle "^2.3.0" + data-urls "^3.0.2" + decimal.js "^10.4.2" + domexception "^4.0.0" + escodegen "^2.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.2" + parse5 "^7.1.1" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + ws "^8.11.0" + xml-name-validator "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0, jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +just-diff-apply@^5.2.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== + +just-diff@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" + integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== + +keyv@^4.5.3, keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +known-css-properties@^0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.29.0.tgz#e8ba024fb03886f23cb882e806929f32d814158f" + integrity sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +libnpmaccess@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.2.tgz#a13a72fd5b71a1063ea54973fa56d61ec38f718f" + integrity sha512-4K+nsg3OYt4rjryP/3D5zGWluLbZaKozwj6YdtvAyxNhLhUrjCoyxHVoL5AkTJcAnjsd6/ATei52QPVvpSX9Ug== + dependencies: + npm-package-arg "^11.0.1" + npm-registry-fetch "^16.0.0" + +libnpmpublish@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.4.tgz#0222c14578088ca9a758585c36d8133b828c87ad" + integrity sha512-330o6pVsCCg77jQ/+kidyG/RiohXYQKpqmzOC4BjUDWcimb+mXptRBh1Kvy27/Zb/CStZLVrfgGc6tXf5+PE3Q== + dependencies: + ci-info "^4.0.0" + normalize-package-data "^6.0.0" + npm-package-arg "^11.0.1" + npm-registry-fetch "^16.0.0" + proc-log "^3.0.0" + semver "^7.3.7" + sigstore "^2.2.0" + ssri "^10.0.5" + +lilconfig@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lines-and-columns@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== + +lint-staged@^15.0.0: + version "15.2.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.2.tgz#ad7cbb5b3ab70e043fa05bff82a09ed286bc4c5f" + integrity sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw== + dependencies: + chalk "5.3.0" + commander "11.1.0" + debug "4.3.4" + execa "8.0.1" + lilconfig "3.0.0" + listr2 "8.0.1" + micromatch "4.0.5" + pidtree "0.6.0" + string-argv "0.3.2" + yaml "2.3.4" + +listr2@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.0.1.tgz#4d3f50ae6cec3c62bdf0e94f5c2c9edebd4b9c34" + integrity sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA== + dependencies: + cli-truncate "^4.0.0" + colorette "^2.0.20" + eventemitter3 "^5.0.1" + log-update "^6.0.0" + rfdc "^1.3.0" + wrap-ansi "^9.0.0" + +load-json-file@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-7.0.1.tgz#a3c9fde6beffb6bedb5acf104fad6bb1604e1b00" + integrity sha512-Gnxj3ev3mB5TkVBGad0JM6dmLiQL+o0t23JPBZ9sd+yvSLk05mFoqKBw5N8gbbkU4TNXyqCgIrl/VM17OgUIgQ== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" + integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== + dependencies: + ansi-escapes "^6.2.0" + cli-cursor "^4.0.0" + slice-ansi "^7.0.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" + +loglevel@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +madge@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/madge/-/madge-6.1.0.tgz#9835bb53f2e00d184914c2b007b50736a964d297" + integrity sha512-irWhT5RpFOc6lkzGHKLihonCVgM0YtfNUh4IrFeW3EqHpnt/JHUG3z26j8PeJEktCGB4tmGOOOJi1Rl/ACWucQ== + dependencies: + chalk "^4.1.1" + commander "^7.2.0" + commondir "^1.0.1" + debug "^4.3.1" + dependency-tree "^9.0.0" + detective-amd "^4.0.1" + detective-cjs "^4.0.0" + detective-es6 "^3.0.0" + detective-less "^1.0.2" + detective-postcss "^6.1.0" + detective-sass "^4.0.1" + detective-scss "^3.0.0" + detective-stylus "^2.0.1" + detective-typescript "^9.0.0" + ora "^5.4.1" + pluralize "^8.0.0" + precinct "^8.1.0" + pretty-ms "^7.0.1" + rc "^1.2.7" + stream-to-array "^2.3.0" + ts-graphviz "^1.5.0" + walkdir "^0.4.1" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" + integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== + dependencies: + "@npmcli/agent" "^2.0.0" + cacache "^18.0.0" + http-cache-semantics "^4.1.1" + is-lambda "^1.0.1" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + ssri "^10.0.0" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +mathml-tag-names@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" + integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + +meow@^12.0.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== + +meow@^13.1.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" + integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@4.0.5, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ== + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mobx-react-lite@^3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-3.4.3.tgz#3a4c22c30bfaa8b1b2aa48d12b2ba811c0947ab7" + integrity sha512-NkJREyFTSUXR772Qaai51BnE1voWx56LOL80xG7qkZr6vo8vEaLF3sz1JNUVh+rxmUzxYaqOhfuxTfqUh0FXUg== + +mobx-react@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-7.6.0.tgz#ebf0456728a9bd2e5c24fdcf9b36e285a222a7d6" + integrity sha512-+HQUNuh7AoQ9ZnU6c4rvbiVVl+wEkb9WqYsVDzGLng+Dqj1XntHu79PvEWKtSMoMj67vFp/ZPXcElosuJO8ckA== + dependencies: + mobx-react-lite "^3.4.0" + +mobx@^6.9.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.12.0.tgz#72b2685ca5af031aaa49e77a4d76ed67fcbf9135" + integrity sha512-Mn6CN6meXEnMa0a5u6a5+RKrqRedHBhZGd15AWLk9O6uFY4KYHzImdt8JI8WODo1bjTSRnwXhJox+FCUZhCKCQ== + +module-definition@^3.3.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-3.4.0.tgz#953a3861f65df5e43e80487df98bb35b70614c2b" + integrity sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA== + dependencies: + ast-module-types "^3.0.0" + node-source-walk "^4.0.0" + +module-definition@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-4.1.0.tgz#148ff9348e3401867229dcbe5947f4f6d5ccd3a2" + integrity sha512-rHXi/DpMcD2qcKbPCTklDbX9lBKJrUSl971TW5l6nMpqKCIlzJqmQ8cfEF5M923h2OOLHPDVlh5pJxNyV+AJlw== + dependencies: + ast-module-types "^4.0.0" + node-source-walk "^5.0.1" + +module-lookup-amd@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz#d67c1a93f2ff8e38b8774b99a638e9a4395774b2" + integrity sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ== + dependencies: + commander "^2.8.1" + debug "^4.1.0" + glob "^7.1.6" + requirejs "^2.3.5" + requirejs-config-file "^4.0.0" + +moo-color@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" + integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== + dependencies: + color-name "^1.1.4" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mute-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +new-github-release-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-2.0.0.tgz#335189b91f52bbb9569042a7485900a205a0500b" + integrity sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ== + dependencies: + type-fest "^2.5.1" + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-gyp@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" + integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^10.3.10" + graceful-fs "^4.2.6" + make-fetch-happen "^13.0.0" + nopt "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + tar "^6.1.2" + which "^4.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +node-source-walk@^4.0.0, node-source-walk@^4.2.0, node-source-walk@^4.2.2: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-4.3.0.tgz#8336b56cfed23ac5180fe98f1e3bb6b11fd5317c" + integrity sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA== + dependencies: + "@babel/parser" "^7.0.0" + +node-source-walk@^5.0.0, node-source-walk@^5.0.1: + version "5.0.2" + resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-5.0.2.tgz#0eb439ce378946ce531e07a6a0073d06288396dd" + integrity sha512-Y4jr/8SRS5hzEdZ7SGuvZGwfORvNsSsNRwDXx5WisiqzsVfeftDvRgfeqWNgZvWSJbgubTRVRYBzK6UO+ErqjA== + dependencies: + "@babel/parser" "^7.21.4" + +nopt@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + dependencies: + abbrev "^2.0.0" + +normalize-package-data@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" + integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== + dependencies: + hosted-git-info "^7.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-bundled@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" + integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== + dependencies: + npm-normalize-package-bin "^3.0.0" + +npm-install-checks@^6.0.0, npm-install-checks@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@^11.0.0, npm-package-arg@^11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" + integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-packlist@^8.0.0, npm-packlist@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478" + integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA== + dependencies: + ignore-walk "^6.0.4" + +npm-pick-manifest@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" + integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + +npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz#10227b7b36c97bc1cf2902a24e4f710cfe62803c" + integrity sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw== + dependencies: + make-fetch-happen "^13.0.0" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^11.0.0" + proc-log "^3.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npm-run-path@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + dependencies: + path-key "^4.0.0" + +npmlog@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== + dependencies: + are-we-there-yet "^4.0.0" + console-control-strings "^1.1.0" + gauge "^5.0.0" + set-blocking "^2.0.0" + +nwsapi@^2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.2.tgz#494800ff5bab78fd0eff2835ec859066e00192ec" + integrity sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw== + dependencies: + array.prototype.filter "^1.0.3" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" + +object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-7.0.1.tgz#1faf994e597160f7851882926bfccabc1d226f80" + integrity sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw== + +p-pipe@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-4.0.0.tgz#7e5424569351b2ab452a47826acb93ce09ad6a2c" + integrity sha512-HkPfFklpZQPUKBFXzKFB6ihLriIHxnmuQdK9WmLDwe4hf2PdhhfWT/FJa+pc3bA1ywvKXtedxIRmd4Y7BTXE4w== + +p-queue@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-8.0.1.tgz#718b7f83836922ef213ddec263ff4223ce70bef8" + integrity sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA== + dependencies: + eventemitter3 "^5.0.1" + p-timeout "^6.1.2" + +p-reduce@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-3.0.0.tgz#f11773794792974bd1f7a14c72934248abff4160" + integrity sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q== + +p-timeout@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" + integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pacote@^17.0.0, pacote@^17.0.4, pacote@^17.0.6: + version "17.0.6" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.6.tgz#874bb59cda5d44ab784d0b6530fcb4a7d9b76a60" + integrity sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ== + dependencies: + "@npmcli/git" "^5.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/promise-spawn" "^7.0.0" + "@npmcli/run-script" "^7.0.0" + cacache "^18.0.0" + fs-minipass "^3.0.0" + minipass "^7.0.2" + npm-package-arg "^11.0.0" + npm-packlist "^8.0.0" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^16.0.0" + proc-log "^3.0.0" + promise-retry "^2.0.1" + read-package-json "^7.0.0" + read-package-json-fast "^3.0.0" + sigstore "^2.2.0" + ssri "^10.0.0" + tar "^6.1.11" + +pako@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-conflict-json@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c" + integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw== + dependencies: + json-parse-even-better-errors "^3.0.0" + just-diff "^6.0.0" + just-diff-apply "^5.2.0" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-json@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-7.1.1.tgz#68f7e6f0edf88c54ab14c00eb700b753b14e2120" + integrity sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw== + dependencies: + "@babel/code-frame" "^7.21.4" + error-ex "^1.3.2" + json-parse-even-better-errors "^3.0.0" + lines-and-columns "^2.0.3" + type-fest "^3.8.0" + +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + +parse5@^7.0.0, parse5@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== + +pify@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-6.1.0.tgz#db9f2ebfba65f0bc144db65ae84d1a486ab72909" + integrity sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw== + +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + +point-in-svg-path@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/point-in-svg-path/-/point-in-svg-path-1.0.2.tgz#e7b25370e96f58a858c34882ffb57d41b7a574bf" + integrity sha512-+Smsf7B9e7eRFHIwpN+4rE8inF2APbFWeywPfUgbeh02xdJSkbTz6Pqdt7A36wVCR+CnLbaNkRnBjgOpF5RMVQ== + +polished@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/polished/-/polished-4.3.1.tgz#5a00ae32715609f83d89f6f31d0f0261c6170548" + integrity sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA== + dependencies: + "@babel/runtime" "^7.17.8" + +popper.js@^1.16.1: + version "1.16.1" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== + +postcss-media-query-parser@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + integrity sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== + +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== + +postcss-safe-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz#6273d4e5149e286db5a45bc6cf6eafcad464014a" + integrity sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg== + +postcss-scss@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685" + integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.15: + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-values-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz#636edc5b86c953896f1bb0d7a7a6615df00fb76f" + integrity sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw== + dependencies: + color-name "^1.1.4" + is-url-superb "^4.0.0" + quote-unquote "^1.0.0" + +postcss@^8.1.7, postcss@^8.4.23, postcss@^8.4.33, postcss@^8.4.35: + version "8.4.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +precinct@^8.1.0: + version "8.3.1" + resolved "https://registry.yarnpkg.com/precinct/-/precinct-8.3.1.tgz#94b99b623df144eed1ce40e0801c86078466f0dc" + integrity sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q== + dependencies: + commander "^2.20.3" + debug "^4.3.3" + detective-amd "^3.1.0" + detective-cjs "^3.1.1" + detective-es6 "^2.2.1" + detective-less "^1.0.2" + detective-postcss "^4.0.0" + detective-sass "^3.0.1" + detective-scss "^2.0.1" + detective-stylus "^1.0.0" + detective-typescript "^7.0.0" + module-definition "^3.3.1" + node-source-walk "^4.2.0" + +precinct@^9.0.0: + version "9.2.1" + resolved "https://registry.yarnpkg.com/precinct/-/precinct-9.2.1.tgz#db0a67abff7b0a9a3b2b1ac33d170e8a5fcac7b2" + integrity sha512-uzKHaTyiVejWW7VJtHInb9KBUq9yl9ojxXGujhjhDmPon2wgZPBKQIKR+6csGqSlUeGXAA4MEFnU6DesxZib+A== + dependencies: + "@dependents/detective-less" "^3.0.1" + commander "^9.5.0" + detective-amd "^4.1.0" + detective-cjs "^4.1.0" + detective-es6 "^3.0.1" + detective-postcss "^6.1.1" + detective-sass "^4.1.1" + detective-scss "^3.0.1" + detective-stylus "^3.0.0" + detective-typescript "^9.1.1" + module-definition "^4.1.0" + node-source-walk "^5.0.1" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-ms@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.1.tgz#3570f7a3f2aaaf8e703623a552cd74749688cf19" + integrity sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-rand@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + +qs@^6.11.1: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quote-unquote@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b" + integrity sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg== + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-colorful@^5.6.1: + version "5.6.1" + resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.6.1.tgz#7dc2aed2d7c72fac89694e834d179e32f3da563b" + integrity sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw== + +react-dnd-html5-backend@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz#87faef15845d512a23b3c08d29ecfd34871688b6" + integrity sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw== + dependencies: + dnd-core "^16.0.1" + +react-dnd-touch-backend@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/react-dnd-touch-backend/-/react-dnd-touch-backend-16.0.1.tgz#e73f8169e2b9fac0f687970f875cac0a4d02d6e2" + integrity sha512-NonoCABzzjyWGZuDxSG77dbgMZ2Wad7eQiCd/ECtsR2/NBLTjGksPUx9UPezZ1nQ/L7iD130Tz3RUshL/ClKLA== + dependencies: + "@react-dnd/invariant" "^4.0.1" + dnd-core "^16.0.1" + +react-dnd@^16.0.1: + version "16.0.1" + resolved "https://registry.yarnpkg.com/react-dnd/-/react-dnd-16.0.1.tgz#2442a3ec67892c60d40a1559eef45498ba26fa37" + integrity sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q== + dependencies: + "@react-dnd/invariant" "^4.0.1" + "@react-dnd/shallowequal" "^4.0.1" + dnd-core "^16.0.1" + fast-deep-equal "^3.1.3" + hoist-non-react-statics "^3.3.2" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-dropzone@^14.2.3: + version "14.2.3" + resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-14.2.3.tgz#0acab68308fda2d54d1273a1e626264e13d4e84b" + integrity sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug== + dependencies: + attr-accept "^2.2.2" + file-selector "^0.6.0" + prop-types "^15.8.1" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-measure@^2.3.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/react-measure/-/react-measure-2.5.2.tgz#4ffc410e8b9cb836d9455a9ff18fc1f0fca67f89" + integrity sha512-M+rpbTLWJ3FD6FXvYV6YEGvQ5tMayQ3fGrZhRPHrE9bVlBYfDCLuDcgNttYfk8IqfOI03jz6cbpqMRTUclQnaA== + dependencies: + "@babel/runtime" "^7.2.0" + get-node-dimensions "^1.2.1" + prop-types "^15.6.2" + resize-observer-polyfill "^1.5.0" + +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + +react-sage@^0.3.16: + version "0.3.16" + resolved "https://registry.yarnpkg.com/react-sage/-/react-sage-0.3.16.tgz#bd8ba2735ed2bceb0b1e2226ad8588c2acd58dac" + integrity sha512-oVVmwiEH+iS0+ZWnfwWEnx1TKVcHDlleqo1fluQKlG7JAtZpgU+a0RPLdT2wGcNcPecrOaELuSz5VL9GKbtiXw== + +react-select@^5.7.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.0.tgz#bd5c467a4df223f079dd720be9498076a3f085b5" + integrity sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA== + dependencies: + "@babel/runtime" "^7.12.0" + "@emotion/cache" "^11.4.0" + "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" + "@types/react-transition-group" "^4.4.0" + memoize-one "^6.0.0" + prop-types "^15.6.0" + react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" + +react-transition-group@^4.3.0: + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react-use-gesture@^9.1.3: + version "9.1.3" + resolved "https://registry.yarnpkg.com/react-use-gesture/-/react-use-gesture-9.1.3.tgz#92bd143e4f58e69bd424514a5bfccba2a1d62ec0" + integrity sha512-CdqA2SmS/fj3kkS2W8ZU8wjTbVBAIwDWaRprX7OKaj7HlGwBasGEFggmk5qNklknqk9zK/h8D355bEJFTpqEMg== + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +read-cmd-shim@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" + integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== + +read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-package-json@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-7.0.0.tgz#d605c9dcf6bc5856da24204aa4e9518ee9714be0" + integrity sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg== + dependencies: + glob "^10.2.2" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-10.1.0.tgz#2d13ab732d2f05d6e8094167c2112e2ee50644f4" + integrity sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA== + dependencies: + find-up "^6.3.0" + read-pkg "^8.1.0" + type-fest "^4.2.0" + +read-pkg@^8.0.0, read-pkg@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-8.1.0.tgz#6cf560b91d90df68bce658527e7e3eee75f7c4c7" + integrity sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ== + dependencies: + "@types/normalize-package-data" "^2.4.1" + normalize-package-data "^6.0.0" + parse-json "^7.0.0" + type-fest "^4.2.0" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redux@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requirejs-config-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz#4244da5dd1f59874038cc1091d078d620abb6ebc" + integrity sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw== + dependencies: + esprima "^4.0.0" + stringify-object "^3.2.1" + +requirejs@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9" + integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resize-observer-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-dependency-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz#11700e340717b865d216c66cabeb4a2a3c696736" + integrity sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.21.0, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" + integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + dependencies: + glob "^10.3.7" + +robust-predicates@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + +rollup@^4.2.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.11.0.tgz#28f28d8f8660facfed001b512d3cfda8c0dc09b6" + integrity sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.11.0" + "@rollup/rollup-android-arm64" "4.11.0" + "@rollup/rollup-darwin-arm64" "4.11.0" + "@rollup/rollup-darwin-x64" "4.11.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.11.0" + "@rollup/rollup-linux-arm64-gnu" "4.11.0" + "@rollup/rollup-linux-arm64-musl" "4.11.0" + "@rollup/rollup-linux-riscv64-gnu" "4.11.0" + "@rollup/rollup-linux-x64-gnu" "4.11.0" + "@rollup/rollup-linux-x64-musl" "4.11.0" + "@rollup/rollup-win32-arm64-msvc" "4.11.0" + "@rollup/rollup-win32-ia32-msvc" "4.11.0" + "@rollup/rollup-win32-x64-msvc" "4.11.0" + fsevents "~2.3.2" + +run-async@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" + integrity sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + +rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== + dependencies: + call-bind "^1.0.5" + get-intrinsic "^1.2.2" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sass-lookup@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/sass-lookup/-/sass-lookup-3.0.0.tgz#3b395fa40569738ce857bc258e04df2617c48cac" + integrity sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg== + dependencies: + commander "^2.16.0" + +sass@^1.70.0: + version "1.70.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.70.0.tgz#761197419d97b5358cb25f9dd38c176a8a270a75" + integrity sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + +saxon-js@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/saxon-js/-/saxon-js-2.6.0.tgz#68080fa2f000eac48abf0bdc880eb74bf9766baf" + integrity sha512-4dinQEGz/OQX0cnmwLTbjVFY9KciMGRyfA6AUsMCO/mKDOwDxOJFmzoLStieTpEiOB/98E1E4VKV1ElsiD88yQ== + dependencies: + axios "^1.5.1" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425" + integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g== + dependencies: + define-data-property "^1.1.2" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.1" + +set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.5.tgz#9a84546599b48909fb6af1211708d23b1946221b" + integrity sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1, signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sigstore@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.2.2.tgz#5e4ff39febeae9e0679bafa22180cb0f445a7e35" + integrity sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg== + dependencies: + "@sigstore/bundle" "^2.2.0" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.0" + "@sigstore/sign" "^2.2.3" + "@sigstore/tuf" "^2.3.1" + "@sigstore/verify" "^1.1.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" + integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== + dependencies: + ansi-styles "^6.0.0" + is-fullwidth-code-point "^4.0.0" + +slice-ansi@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + socks "^2.7.1" + +socks@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.3.tgz#7d8a75d7ce845c0a96f710917174dba0d543a785" + integrity sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw== + dependencies: + ip-address "^9.0.5" + smart-buffer "^4.2.0" + +sort-keys@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446" + integrity sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw== + dependencies: + is-plain-obj "^4.0.0" + +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.17" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" + integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== + +split2@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssri@^10.0.0, ssri@^10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +stream-to-array@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" + integrity sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA== + dependencies: + any-promise "^1.1.0" + +string-argv@0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string-width@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.1.0.tgz#d994252935224729ea3719c49f7206dc9c46550a" + integrity sha512-SEIJCWiX7Kg4c129n48aDRwLbFb2LJmXXFrWBG4NGaRtMQ3myKPKbwrD1BKqQn74oCoNMBVrfDEr5M9YxCsrkw== + dependencies: + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" + +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +stringify-object@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1, strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + +strong-log-transformer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +stylelint-config-recommended-scss@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz#d3482c9817dada80b5ec01685b38fc8af8f7263f" + integrity sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw== + dependencies: + postcss-scss "^4.0.9" + stylelint-config-recommended "^14.0.0" + stylelint-scss "^6.0.0" + +stylelint-config-recommended@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz#b395c7014838d2aaca1755eebd914d0bb5274994" + integrity sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ== + +stylelint-config-standard-scss@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-13.0.0.tgz#fa65637d439a012a435213f73e00d3576eb925bb" + integrity sha512-WaLvkP689qSYUpJQPCo30TFJSSc3VzvvoWnrgp+7PpVby5o8fRUY1cZcP0sePZfjrFl9T8caGhcKg0GO34VDiQ== + dependencies: + stylelint-config-recommended-scss "^14.0.0" + stylelint-config-standard "^36.0.0" + +stylelint-config-standard@^36.0.0: + version "36.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz#6704c044d611edc12692d4a5e37b039a441604d4" + integrity sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug== + dependencies: + stylelint-config-recommended "^14.0.0" + +stylelint-prettier@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/stylelint-prettier/-/stylelint-prettier-5.0.0.tgz#515a87800228f6bea603966462f7119755ee9b82" + integrity sha512-RHfSlRJIsaVg5Br94gZVdWlz/rBTyQzZflNE6dXvSxt/GthWMY3gEHsWZEBaVGg7GM+XrtVSp4RznFlB7i0oyw== + dependencies: + prettier-linter-helpers "^1.0.0" + +stylelint-scss@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-6.1.0.tgz#b7ef162c417132e8df2b69d1759ae07395d54fb5" + integrity sha512-kCfK8TQzthGwb4vaZniZgxRsVbCM4ZckmT1b/H5m4FU3I8Dz0id9llKsy1NMp3XXqC8+OPD4rVKtUbSxXlJb5g== + dependencies: + known-css-properties "^0.29.0" + postcss-media-query-parser "^0.2.3" + postcss-resolve-nested-selector "^0.1.1" + postcss-selector-parser "^6.0.15" + postcss-value-parser "^4.2.0" + +stylelint@^16.2.1: + version "16.2.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-16.2.1.tgz#895d6d42523c5126ec0895f0ca2a58febeb77e89" + integrity sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA== + dependencies: + "@csstools/css-parser-algorithms" "^2.5.0" + "@csstools/css-tokenizer" "^2.2.3" + "@csstools/media-query-list-parser" "^2.1.7" + "@csstools/selector-specificity" "^3.0.1" + balanced-match "^2.0.0" + colord "^2.9.3" + cosmiconfig "^9.0.0" + css-functions-list "^3.2.1" + css-tree "^2.3.1" + debug "^4.3.4" + fast-glob "^3.3.2" + fastest-levenshtein "^1.0.16" + file-entry-cache "^8.0.0" + global-modules "^2.0.0" + globby "^11.1.0" + globjoin "^0.1.4" + html-tags "^3.3.1" + ignore "^5.3.0" + imurmurhash "^0.1.4" + is-plain-object "^5.0.0" + known-css-properties "^0.29.0" + mathml-tag-names "^2.1.3" + meow "^13.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.33" + postcss-resolve-nested-selector "^0.1.1" + postcss-safe-parser "^7.0.0" + postcss-selector-parser "^6.0.15" + postcss-value-parser "^4.2.0" + resolve-from "^5.0.0" + string-width "^4.2.3" + strip-ansi "^7.1.0" + supports-hyperlinks "^3.0.0" + svg-tags "^1.0.0" + table "^6.8.1" + write-file-atomic "^5.0.1" + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +stylus-lookup@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/stylus-lookup/-/stylus-lookup-3.0.2.tgz#c9eca3ff799691020f30b382260a67355fefdddd" + integrity sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg== + dependencies: + commander "^2.8.1" + debug "^4.1.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" + integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +tabbable@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + +table@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" + integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa" + integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw== + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-extensions@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-2.4.0.tgz#a1cfcc50cf34da41bfd047cc744f804d1680ea34" + integrity sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +"through@>=2.2.7 <3", through@^2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== + +tough-cookie@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +treeverse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" + integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== + +ts-api-utils@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.2.1.tgz#f716c7e027494629485b21c0df6180f4d08f5e8b" + integrity sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA== + +ts-dedent@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +ts-graphviz@^1.5.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/ts-graphviz/-/ts-graphviz-1.8.2.tgz#6c4768d05f8a36e37abe34855ffe89a4c4bd96cc" + integrity sha512-5YhbFoHmjxa7pgQLkB07MtGnGJ/yhvjmc9uhsnDBEICME6gkPf83SBwLDQqGDoCa3XzUMWLk1AU2Wn1u1naDtA== + +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^3.10.1, tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tuf-js@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.0.tgz#4daaa8620ba7545501d04dfa933c98abbcc959b9" + integrity sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg== + dependencies: + "@tufjs/models" "2.0.0" + debug "^4.3.4" + make-fetch-happen "^13.0.0" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^2.5.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-fest@^3.0.0, type-fest@^3.8.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== + +type-fest@^4.2.0, type-fest@^4.6.0: + version "4.10.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.10.2.tgz#3abdb144d93c5750432aac0d73d3e85fcab45738" + integrity sha512-anpAG63wSpdEbLwOqH8L84urkL6PiVIov3EMmgIhhThevh9aiMQov+6Btx0wldNcvm4wV+e2/Rt1QdDwKHFbHw== + +typed-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz#0608ffe6bca71bf15a45bff0ca2604107a1325f5" + integrity sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^3.9.10, typescript@^3.9.7: + version "3.9.10" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== + +typescript@^4.0.0, typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +typescript@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA== + +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +use-debounce@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/use-debounce/-/use-debounce-10.0.0.tgz#5091b18d6c16292605f588bae3c0d2cfae756ff2" + integrity sha512-XRjvlvCB46bah9IBXVnq/ACP2lxqXyZj0D9hj4K5OzNroMDpTEBg8Anuh1/UfRTRs7pLhQ+RiNxxwZu9+MVl1A== + +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.0, uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== + dependencies: + builtins "^5.0.0" + +vite-plugin-circular-dependency@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/vite-plugin-circular-dependency/-/vite-plugin-circular-dependency-0.3.1.tgz#838016f8fe48a561c09fa3cd1fd09dfa99c695f7" + integrity sha512-87WQI+lYNPN6gnkJsdGvrMzgkAtfa0P0TSZjZ9y/AWcbt+EdZL27l3tB0k7QZJV6XoERniUlJmZs08LV/w4aRA== + dependencies: + "@rollup/pluginutils" "^5.1.0" + chalk "^4.1.2" + +vite@^5.0.12: + version "5.1.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.1.3.tgz#dd072653a80225702265550a4700561740dfde55" + integrity sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.35" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== + dependencies: + xml-name-validator "^4.0.0" + +walk-up-path@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== + +walkdir@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39" + integrity sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ== + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.0.3: + version "3.3.2" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b" + integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ== + +webcola@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/webcola/-/webcola-3.4.0.tgz#490d26ae98e5b5109478b94a846a62ff6831a99d" + integrity sha512-4BiLXjXw3SJHo3Xd+rF+7fyClT6n7I+AR6TkBqyQ4kTsePSAMDLRCXY1f3B/kXJeP9tYn4G1TblxTO+jAt0gaw== + dependencies: + d3-dispatch "^1.0.3" + d3-drag "^1.0.4" + d3-shape "^1.3.5" + d3-timer "^1.0.5" + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.14: + version "1.1.14" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.14.tgz#1f78a111aee1e131ca66164d8bdc3ab062c95a06" + integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== + dependencies: + available-typed-arrays "^1.0.6" + call-bind "^1.0.5" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.1" + +which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrap-ansi@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== + dependencies: + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +write-json-file@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-5.0.0.tgz#11c329a8ea9e8e23fb92a87cc27412a15f87708b" + integrity sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw== + dependencies: + detect-indent "^7.0.0" + is-plain-obj "^4.0.0" + sort-keys "^5.0.0" + write-file-atomic "^3.0.3" + +write-pkg@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-6.0.1.tgz#5b5ec22edf199f372b68c54d3f80b112c8463a6e" + integrity sha512-ZwKp0+CQCNrJbhHStRy6IVDnVjvD4gYy6MhQLKgBnl85oaiTNXhvtuox7AqvOSf1wta0YW4U5JidjpJnd1i8TA== + dependencies: + deepmerge-ts "^5.1.0" + read-pkg "^8.1.0" + sort-keys "^5.0.0" + type-fest "^4.6.0" + write-json-file "^5.0.0" + +ws@^8.11.0: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.3.1, yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From 1b268d0b054af8edd05ebcad795af4833b4addd8 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 15 Feb 2024 21:57:07 -0500 Subject: [PATCH 022/471] use `import type` as much as possible - no luck --- packages/ui/src/services/document.service.ts | 3 +- packages/ui/src/util/xsd/SchemaBuilder.ts | 51 +++++++++---------- .../ui/src/util/xsd/XmlSchemaAttribute.ts | 16 ++---- .../src/util/xsd/XmlSchemaAttributeGroup.ts | 6 ++- .../util/xsd/XmlSchemaAttributeGroupRef.ts | 9 +--- .../ui/src/util/xsd/XmlSchemaComplexType.ts | 10 ++-- packages/ui/src/util/xsd/XmlSchemaElement.ts | 8 +-- packages/ui/src/util/xsd/XmlSchemaGroup.ts | 7 +-- packages/ui/src/util/xsd/XmlSchemaNotation.ts | 6 ++- packages/ui/src/util/xsd/XmlSchemaRedefine.ts | 11 +--- packages/ui/src/util/xsd/XmlSchemaType.ts | 6 ++- .../xsd/utils/TargetNamespaceValidator.ts | 5 -- .../src/util/xsd/utils/XmlSchemaNamedImpl.ts | 6 ++- .../xsd/utils/XmlSchemaNamedWithFormImpl.ts | 6 ++- packages/ui/src/util/xsd/utils/index.ts | 3 +- 15 files changed, 70 insertions(+), 83 deletions(-) delete mode 100644 packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index 11aceca0d..f2e053c6f 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -1,5 +1,6 @@ import { IDocument, Document } from '../models'; -import { XmlSchema, XmlSchemaCollection } from '../util/xsd'; +import { XmlSchemaCollection } from '../util/xsd'; +import type { XmlSchema } from '../util/xsd'; export class DocumentService { static parseXmlSchema(content: string): IDocument { diff --git a/packages/ui/src/util/xsd/SchemaBuilder.ts b/packages/ui/src/util/xsd/SchemaBuilder.ts index 3a7c8cf27..a4113291a 100644 --- a/packages/ui/src/util/xsd/SchemaBuilder.ts +++ b/packages/ui/src/util/xsd/SchemaBuilder.ts @@ -3,52 +3,51 @@ import { QName, SchemaKey, XmlSchema, - XmlSchemaAnnotation, - XmlSchemaAppInfo, - XmlSchemaAttribute, - XmlSchemaCollection, - XmlSchemaComplexType, - XmlSchemaDerivationMethod, - XmlSchemaDocumentation, - XmlSchemaElement, - XmlSchemaFacet, - XmlSchemaForm, - xmlSchemaFormValueOf, - XmlSchemaNotation, - XmlSchemaKey, - XmlSchemaObject, - XmlSchemaSimpleType, - XmlSchemaKeyref, - XmlSchemaUnique, - XmlSchemaImport, - XmlSchemaInclude, XmlSchemaAll, XmlSchemaAny, - xmlSchemaContentProcessingValueOf, - XmlSchemaContentProcessing, + XmlSchemaAnnotation, XmlSchemaAnyAttribute, - xmlSchemaUseValueOf, + XmlSchemaAppInfo, + XmlSchemaAttribute, XmlSchemaAttributeGroup, XmlSchemaAttributeGroupRef, XmlSchemaChoice, XmlSchemaComplexContent, XmlSchemaComplexContentExtension, XmlSchemaComplexContentRestriction, - XmlSchemaIdentityConstraint, - XmlSchemaXPath, + XmlSchemaComplexType, + XmlSchemaContentProcessing, + XmlSchemaDerivationMethod, + XmlSchemaDocumentation, + XmlSchemaElement, + XmlSchemaFacet, + XmlSchemaForm, XmlSchemaGroup, XmlSchemaGroupRef, + XmlSchemaImport, + XmlSchemaInclude, + XmlSchemaKey, + XmlSchemaKeyref, + XmlSchemaNotation, XmlSchemaRedefine, XmlSchemaSequence, XmlSchemaSimpleContent, XmlSchemaSimpleContentExtension, XmlSchemaSimpleContentRestriction, + XmlSchemaSimpleType, XmlSchemaSimpleTypeList, XmlSchemaSimpleTypeRestriction, XmlSchemaSimpleTypeUnion, + XmlSchemaUnique, + XmlSchemaXPath, + xmlSchemaFormValueOf, + xmlSchemaContentProcessingValueOf, + xmlSchemaUseValueOf, } from '.'; -import { NamespaceContext, NodeNamespaceContext, XDOMUtil } from './utils'; -import { ExtensionRegistry } from './extensions'; +import type { XmlSchemaCollection, XmlSchemaObject, XmlSchemaIdentityConstraint } from '.'; +import { NodeNamespaceContext, XDOMUtil } from './utils'; +import type { NamespaceContext } from './utils'; +import type { ExtensionRegistry } from './extensions'; import * as Constants from './constants'; export class SchemaBuilder { diff --git a/packages/ui/src/util/xsd/XmlSchemaAttribute.ts b/packages/ui/src/util/xsd/XmlSchemaAttribute.ts index 782e0f630..267255cb0 100644 --- a/packages/ui/src/util/xsd/XmlSchemaAttribute.ts +++ b/packages/ui/src/util/xsd/XmlSchemaAttribute.ts @@ -1,15 +1,7 @@ -import { XmlSchemaNamedWithFormImpl, XmlSchemaNamedType, XmlSchemaNamedWithForm, XmlSchemaRef } from './utils'; -import { - QName, - XmlSchema, - XmlSchemaAttributeGroupMember, - XmlSchemaAttributeOrGroupRef, - XmlSchemaForm, - XmlSchemaItemWithRef, - XmlSchemaSimpleType, - XmlSchemaUse, -} from '.'; -import {} from './utils/XmlSchemaNamedWithFormImpl'; +import { XmlSchemaNamedWithFormImpl, XmlSchemaNamedType, XmlSchemaRef } from './utils'; +import type { XmlSchemaNamedWithForm } from './utils'; +import { XmlSchemaAttributeOrGroupRef, XmlSchemaForm, XmlSchemaUse } from '.'; +import type { QName, XmlSchema, XmlSchemaAttributeGroupMember, XmlSchemaItemWithRef, XmlSchemaSimpleType } from '.'; export class XmlSchemaAttribute extends XmlSchemaAttributeOrGroupRef diff --git a/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts b/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts index 194e492c9..e519b9678 100644 --- a/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts +++ b/packages/ui/src/util/xsd/XmlSchemaAttributeGroup.ts @@ -1,5 +1,7 @@ -import { XmlSchema, XmlSchemaAnnotated, XmlSchemaAnyAttribute, XmlSchemaAttributeGroupMember } from '.'; -import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; +import { XmlSchemaAnnotated } from '.'; +import type { XmlSchema, XmlSchemaAnyAttribute, XmlSchemaAttributeGroupMember } from '.'; +import { XmlSchemaNamedImpl } from './utils'; +import type { XmlSchemaNamed } from './utils'; export class XmlSchemaAttributeGroup extends XmlSchemaAnnotated diff --git a/packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts b/packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts index d8ee0a3d5..c3c1c7b1f 100644 --- a/packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts +++ b/packages/ui/src/util/xsd/XmlSchemaAttributeGroupRef.ts @@ -1,10 +1,5 @@ -import { - XmlSchema, - XmlSchemaAttributeGroup, - XmlSchemaAttributeGroupMember, - XmlSchemaAttributeOrGroupRef, - XmlSchemaItemWithRef, -} from '.'; +import { XmlSchemaAttributeOrGroupRef } from '.'; +import type { XmlSchema, XmlSchemaAttributeGroup, XmlSchemaAttributeGroupMember, XmlSchemaItemWithRef } from '.'; import { XmlSchemaNamedType, XmlSchemaRef } from './utils'; /** diff --git a/packages/ui/src/util/xsd/XmlSchemaComplexType.ts b/packages/ui/src/util/xsd/XmlSchemaComplexType.ts index a31a3fa16..02d3ac61a 100644 --- a/packages/ui/src/util/xsd/XmlSchemaComplexType.ts +++ b/packages/ui/src/util/xsd/XmlSchemaComplexType.ts @@ -1,14 +1,16 @@ import { + XmlSchemaType, + XmlSchemaDerivationMethod, + XmlSchemaComplexContentExtension, + XmlSchemaComplexContentRestriction, +} from '.'; +import type { XmlSchema, XmlSchemaAnyAttribute, XmlSchemaAttributeOrGroupRef, - XmlSchemaComplexContentExtension, - XmlSchemaComplexContentRestriction, XmlSchemaContentModel, XmlSchemaContentType, - XmlSchemaDerivationMethod, XmlSchemaParticle, - XmlSchemaType, } from '.'; export class XmlSchemaComplexType extends XmlSchemaType { diff --git a/packages/ui/src/util/xsd/XmlSchemaElement.ts b/packages/ui/src/util/xsd/XmlSchemaElement.ts index 7508c6cfb..7193b1456 100644 --- a/packages/ui/src/util/xsd/XmlSchemaElement.ts +++ b/packages/ui/src/util/xsd/XmlSchemaElement.ts @@ -1,15 +1,15 @@ -import { XmlSchemaNamedType, XmlSchemaNamedWithForm, XmlSchemaNamedWithFormImpl, XmlSchemaRef } from './utils'; -import { +import { XmlSchemaNamedWithFormImpl, XmlSchemaRef, XmlSchemaNamedType } from './utils'; +import type { XmlSchemaNamedWithForm } from './utils'; +import { XmlSchemaParticle, XmlSchemaDerivationMethod } from '.'; +import type { QName, TypeReceiver, XmlSchema, XmlSchemaAllMember, XmlSchemaChoiceMember, - XmlSchemaDerivationMethod, XmlSchemaForm, XmlSchemaIdentityConstraint, XmlSchemaItemWithRef, - XmlSchemaParticle, XmlSchemaSequenceMember, XmlSchemaType, } from '.'; diff --git a/packages/ui/src/util/xsd/XmlSchemaGroup.ts b/packages/ui/src/util/xsd/XmlSchemaGroup.ts index 8b81509bd..06567ec18 100644 --- a/packages/ui/src/util/xsd/XmlSchemaGroup.ts +++ b/packages/ui/src/util/xsd/XmlSchemaGroup.ts @@ -1,12 +1,13 @@ -import { +import { XmlSchemaAnnotated } from '.'; +import type { XmlSchema, XmlSchemaAllMember, - XmlSchemaAnnotated, XmlSchemaChoiceMember, XmlSchemaGroupParticle, XmlSchemaSequenceMember, } from '.'; -import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; +import { XmlSchemaNamedImpl } from './utils'; +import type { XmlSchemaNamed } from './utils'; export class XmlSchemaGroup extends XmlSchemaAnnotated diff --git a/packages/ui/src/util/xsd/XmlSchemaNotation.ts b/packages/ui/src/util/xsd/XmlSchemaNotation.ts index 40b9a4f68..2d09207e1 100644 --- a/packages/ui/src/util/xsd/XmlSchemaNotation.ts +++ b/packages/ui/src/util/xsd/XmlSchemaNotation.ts @@ -1,5 +1,7 @@ -import { XmlSchema, XmlSchemaAnnotated } from '.'; -import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; +import { XmlSchemaAnnotated } from '.'; +import type { XmlSchema } from '.'; +import { XmlSchemaNamedImpl } from './utils'; +import type { XmlSchemaNamed } from './utils'; export class XmlSchemaNotation extends XmlSchemaAnnotated implements XmlSchemaNamed { private system: string | null = null; diff --git a/packages/ui/src/util/xsd/XmlSchemaRedefine.ts b/packages/ui/src/util/xsd/XmlSchemaRedefine.ts index 62f9b7dfc..084570c16 100644 --- a/packages/ui/src/util/xsd/XmlSchemaRedefine.ts +++ b/packages/ui/src/util/xsd/XmlSchemaRedefine.ts @@ -3,15 +3,8 @@ * the current schema. This class provides versioning for the schema elements. Represents the World Wide Web * Consortium (W3C) redefine element. */ -import { - QName, - XmlSchema, - XmlSchemaAttributeGroup, - XmlSchemaExternal, - XmlSchemaGroup, - XmlSchemaObject, - XmlSchemaType, -} from '.'; +import { XmlSchemaExternal } from '.'; +import type { QName, XmlSchema, XmlSchemaAttributeGroup, XmlSchemaGroup, XmlSchemaObject, XmlSchemaType } from '.'; export class XmlSchemaRedefine extends XmlSchemaExternal { private attributeGroups = new Map(); diff --git a/packages/ui/src/util/xsd/XmlSchemaType.ts b/packages/ui/src/util/xsd/XmlSchemaType.ts index 49d641cd3..7441d2dd0 100644 --- a/packages/ui/src/util/xsd/XmlSchemaType.ts +++ b/packages/ui/src/util/xsd/XmlSchemaType.ts @@ -1,5 +1,7 @@ -import { XmlSchema, XmlSchemaAnnotated, XmlSchemaDerivationMethod } from '.'; -import { XmlSchemaNamed, XmlSchemaNamedImpl } from './utils'; +import { XmlSchemaAnnotated, XmlSchemaDerivationMethod } from '.'; +import type { XmlSchema } from '.'; +import { XmlSchemaNamedImpl } from './utils'; +import type { XmlSchemaNamed } from './utils'; export class XmlSchemaType extends XmlSchemaAnnotated implements XmlSchemaNamed { private deriveBy: XmlSchemaDerivationMethod | null = null; diff --git a/packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts b/packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts deleted file mode 100644 index 7645695d1..000000000 --- a/packages/ui/src/util/xsd/utils/TargetNamespaceValidator.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { XmlSchema } from '..'; - -export interface TargetNamespaceValidator { - validate(schema: XmlSchema): void; -} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts index c9019b9c5..4885d605c 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts @@ -1,5 +1,6 @@ -import { QName, XmlSchema } from '..'; -import { XmlSchemaNamed, XmlSchemaRefBase } from '.'; +import { QName } from '..'; +import type { XmlSchema } from '..'; +import type { XmlSchemaNamed, XmlSchemaRefBase } from '.'; export class XmlSchemaNamedImpl implements XmlSchemaNamed { protected parentSchema: XmlSchema; @@ -15,6 +16,7 @@ export class XmlSchemaNamedImpl implements XmlSchemaNamed { /** * Create a new named object. * @param parent the parent schema. + * @param topLevel */ constructor(parent: XmlSchema, topLevel: boolean) { this.parentSchema = parent; diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts b/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts index b19ae2cc5..053f1a4ff 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts +++ b/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts @@ -1,5 +1,7 @@ -import { XmlSchemaNamedImpl, XmlSchemaNamedWithForm } from '.'; -import { QName, XmlSchema, XmlSchemaForm } from '..'; +import { XmlSchemaNamedImpl } from '.'; +import type { XmlSchemaNamedWithForm } from '.'; +import { QName, XmlSchemaForm } from '..'; +import type { XmlSchema } from '..'; /** * diff --git a/packages/ui/src/util/xsd/utils/index.ts b/packages/ui/src/util/xsd/utils/index.ts index f46df3d85..0c55b523a 100644 --- a/packages/ui/src/util/xsd/utils/index.ts +++ b/packages/ui/src/util/xsd/utils/index.ts @@ -4,9 +4,8 @@ export * from './NamespaceContextOwner'; export * from './NamespacePrefixList'; export * from './NodeNamespaceContext'; export * from './PrefixCollector'; -export * from './TargetNamespaceValidator'; export * from './XmlSchemaNamed'; export * from './XmlSchemaNamedImpl'; export * from './XmlSchemaNamedWithFormImpl'; export * from './XmlSchemaRef'; -export { XmlSchemaRefBase } from './XmlSchemaRefBase'; +export * from './XmlSchemaRefBase'; From 2d5d2dd93e67336d0a695270ad0c73bb62adbc06 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 15 Feb 2024 22:04:13 -0500 Subject: [PATCH 023/471] SchemaKey was causing circular import, fixed, still no luck --- packages/ui/src/util/xsd/XmlSchema.ts | 22 +++++++++++++++++- .../ui/src/util/xsd/XmlSchemaCollection.ts | 23 +------------------ 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/packages/ui/src/util/xsd/XmlSchema.ts b/packages/ui/src/util/xsd/XmlSchema.ts index 33a42f5d9..38d3e4318 100644 --- a/packages/ui/src/util/xsd/XmlSchema.ts +++ b/packages/ui/src/util/xsd/XmlSchema.ts @@ -2,7 +2,6 @@ import { URI_2001_SCHEMA_XSD, XmlSchemaAnnotated, XmlSchemaDerivationMethod, - SchemaKey, QName, XmlSchemaImport, XmlSchemaInclude, @@ -21,6 +20,27 @@ import type { import type { NamespaceContextOwner, NamespacePrefixList } from './utils'; import { XmlSchemaForm } from './XmlSchemaForm'; +export class SchemaKey { + private namespace: string; + private systemId: string; + + constructor(namespace?: string | null, systemId?: string | null) { + this.namespace = namespace != null ? namespace : ''; + this.systemId = systemId != null ? systemId : ''; + } + + toString() { + return this.namespace === '' ? this.systemId : `{${this.namespace}}${this.systemId}`; + } + + getNamespace() { + return this.namespace; + } + getSystemId() { + return this.systemId; + } +} + export class XmlSchema extends XmlSchemaAnnotated implements NamespaceContextOwner { static readonly SCHEMA_NS = URI_2001_SCHEMA_XSD; static readonly UTF_8_ENCODING = 'UTF-8'; diff --git a/packages/ui/src/util/xsd/XmlSchemaCollection.ts b/packages/ui/src/util/xsd/XmlSchemaCollection.ts index 53e438a64..ba9240f65 100644 --- a/packages/ui/src/util/xsd/XmlSchemaCollection.ts +++ b/packages/ui/src/util/xsd/XmlSchemaCollection.ts @@ -10,34 +10,13 @@ import { SchemaBuilder, XmlSchemaSimpleType, } from '.'; -import type { QName, TypeReceiver, XmlSchemaFacet, XmlSchemaType } from '.'; +import type { QName, SchemaKey, TypeReceiver, XmlSchemaFacet, XmlSchemaType } from '.'; import { ExtensionRegistry } from './extensions'; import * as Constants from './constants'; import { DefaultURIResolver } from './resolver'; import type { CollectionURIResolver, URIResolver } from './resolver'; import type { NamespacePrefixList } from './utils'; -export class SchemaKey { - private namespace: string; - private systemId: string; - - constructor(namespace?: string | null, systemId?: string | null) { - this.namespace = namespace != null ? namespace : ''; - this.systemId = systemId != null ? systemId : ''; - } - - toString() { - return this.namespace === '' ? this.systemId : `{${this.namespace}}${this.systemId}`; - } - - getNamespace() { - return this.namespace; - } - getSystemId() { - return this.systemId; - } -} - export class XmlSchemaCollection { baseUri: string | null = null; private stack: SchemaKey[] = []; From 4de27f990bf70389c0aaa6a643a79b8169b90246 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 15 Feb 2024 23:07:36 -0500 Subject: [PATCH 024/471] yarn --- .yarn/plugins/@yarnpkg/plugin-exec.cjs | 35 + .../@yarnpkg/plugin-workspace-tools.cjs | 28 + .yarn/releases/yarn-3.8.0.cjs | 875 + .yarnrc.yml | 23 + yarn.lock | 23222 +++++++++------- 5 files changed, 14342 insertions(+), 9841 deletions(-) create mode 100644 .yarn/plugins/@yarnpkg/plugin-exec.cjs create mode 100644 .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs create mode 100755 .yarn/releases/yarn-3.8.0.cjs create mode 100644 .yarnrc.yml diff --git a/.yarn/plugins/@yarnpkg/plugin-exec.cjs b/.yarn/plugins/@yarnpkg/plugin-exec.cjs new file mode 100644 index 000000000..7aeff2daa --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-exec.cjs @@ -0,0 +1,35 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-exec", +factory: function (require) { +var plugin=(()=>{var V=Object.create,d=Object.defineProperty,_=Object.defineProperties,G=Object.getOwnPropertyDescriptor,z=Object.getOwnPropertyDescriptors,J=Object.getOwnPropertyNames,j=Object.getOwnPropertySymbols,Y=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var U=(r,e,t)=>e in r?d(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,u=(r,e)=>{for(var t in e||(e={}))S.call(e,t)&&U(r,t,e[t]);if(j)for(var t of j(e))B.call(e,t)&&U(r,t,e[t]);return r},T=(r,e)=>_(r,z(e)),K=r=>d(r,"__esModule",{value:!0});var C=(r,e)=>{for(var t in e)d(r,t,{get:e[t],enumerable:!0})},Q=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of J(e))!S.call(r,a)&&a!=="default"&&d(r,a,{get:()=>e[a],enumerable:!(t=G(e,a))||t.enumerable});return r},h=r=>Q(K(d(r!=null?V(Y(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var Z={};C(Z,{default:()=>te,execUtils:()=>y});var l=h(require("@yarnpkg/core")),O=h(require("@yarnpkg/core")),n=h(require("@yarnpkg/fslib"));var p="exec:";var y={};C(y,{loadGeneratorFile:()=>P,makeLocator:()=>x,makeSpec:()=>A,parseSpec:()=>v});var f=h(require("@yarnpkg/core")),c=h(require("@yarnpkg/fslib"));function v(r){let{params:e,selector:t}=f.structUtils.parseRange(r),a=c.npath.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?f.structUtils.parseLocator(e.locator):null,path:a}}function A({parentLocator:r,path:e,generatorHash:t,protocol:a}){let o=r!==null?{locator:f.structUtils.stringifyLocator(r)}:{},i=typeof t!="undefined"?{hash:t}:{};return f.structUtils.makeRange({protocol:a,source:e,selector:e,params:u(u({},i),o)})}function x(r,{parentLocator:e,path:t,generatorHash:a,protocol:o}){return f.structUtils.makeLocator(r,A({parentLocator:e,path:t,generatorHash:a,protocol:o}))}async function P(r,e,t){let{parentLocator:a,path:o}=f.structUtils.parseFileStyleRange(r,{protocol:e}),i=c.ppath.isAbsolute(o)?{packageFs:new c.CwdFS(c.PortablePath.root),prefixPath:c.PortablePath.dot,localPath:c.PortablePath.root}:await t.fetcher.fetch(a,t),s=i.localPath?{packageFs:new c.CwdFS(c.PortablePath.root),prefixPath:c.ppath.relative(c.PortablePath.root,i.localPath)}:i;i!==s&&i.releaseFs&&i.releaseFs();let g=s.packageFs,b=c.ppath.join(s.prefixPath,o);return await g.readFilePromise(b,"utf8")}var L=class{supports(e,t){return!!e.reference.startsWith(p)}getLocalPath(e,t){let{parentLocator:a,path:o}=l.structUtils.parseFileStyleRange(e.reference,{protocol:p});if(n.ppath.isAbsolute(o))return o;let i=t.fetcher.getLocalPath(a,t);return i===null?null:n.ppath.resolve(i,o)}async fetch(e,t){let a=t.checksums.get(e.locatorHash)||null,[o,i,s]=await t.cache.fetchPackageFromCache(e,a,u({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:o,releaseFs:i,prefixPath:l.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async fetchFromDisk(e,t){let a=await P(e.reference,p,t);return n.xfs.mktempPromise(async o=>{let i=n.ppath.join(o,"generator.js");return await n.xfs.writeFilePromise(i,a),n.xfs.mktempPromise(async s=>{if(await this.generatePackage(s,e,i,t),!n.xfs.existsSync(n.ppath.join(s,"build")))throw new Error("The script should have generated a build directory");return await l.tgzUtils.makeArchiveFromDirectory(n.ppath.join(s,"build"),{prefixPath:l.structUtils.getIdentVendorPath(e),compressionLevel:t.project.configuration.get("compressionLevel")})})})}async generatePackage(e,t,a,o){return await n.xfs.mktempPromise(async i=>{let s=await l.scriptUtils.makeScriptEnv({project:o.project,binFolder:i}),g=n.ppath.join(e,"runtime.js");return await n.xfs.mktempPromise(async b=>{let E=n.ppath.join(b,"buildfile.log"),I=null,F=n.xfs.createWriteStream(E),W=F,R=n.ppath.join(e,"generator"),D=n.ppath.join(e,"build");await n.xfs.mkdirPromise(R),await n.xfs.mkdirPromise(D);let $={tempDir:n.npath.fromPortablePath(R),buildDir:n.npath.fromPortablePath(D),locator:l.structUtils.stringifyLocator(t)};await n.xfs.writeFilePromise(g,` + // Expose 'Module' as a global variable + Object.defineProperty(global, 'Module', { + get: () => require('module'), + configurable: true, + enumerable: false, + }); + + // Expose non-hidden built-in modules as global variables + for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { + Object.defineProperty(global, name, { + get: () => require(name), + configurable: true, + enumerable: false, + }); + } + + // Expose the 'execEnv' global variable + Object.defineProperty(global, 'execEnv', { + value: { + ...${JSON.stringify($)}, + }, + enumerable: true, + }); + `);let k=s.NODE_OPTIONS||"",q=/\s*--require\s+\S*\.pnp\.c?js\s*/g;k=k.replace(q," ").trim(),s.NODE_OPTIONS=k,F.write(`# This file contains the result of Yarn generating a package (${l.structUtils.stringifyLocator(t)}) +`),F.write(` +`);let{code:M}=await l.execUtils.pipevp(process.execPath,["--require",n.npath.fromPortablePath(g),n.npath.fromPortablePath(a),l.structUtils.stringifyIdent(t)],{cwd:e,env:s,stdin:I,stdout:F,stderr:W});if(M!==0)throw n.xfs.detachTemp(b),new Error(`Package generation failed (exit code ${M}, logs can be found here: ${O.formatUtils.pretty(o.project.configuration,E,O.formatUtils.Type.PATH)})`)})})}};var N=h(require("@yarnpkg/core")),H=h(require("@yarnpkg/core")),m=h(require("@yarnpkg/core"));var X=2,w=class{supportsDescriptor(e,t){return!!e.range.startsWith(p)}supportsLocator(e,t){return!!e.reference.startsWith(p)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,a){return m.structUtils.bindDescriptor(e,{locator:m.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,a){if(!a.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:o,parentLocator:i}=v(e.range);if(i===null)throw new Error("Assertion failed: The descriptor should have been bound");let s=await P(m.structUtils.makeRange({protocol:p,source:o,selector:o,params:{locator:m.structUtils.stringifyLocator(i)}}),p,a.fetchOptions),g=m.hashUtils.makeHash(`${X}`,s).slice(0,6);return[x(e,{parentLocator:i,path:o,generatorHash:g,protocol:p})]}async getSatisfying(e,t,a){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let a=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),o=await m.miscUtils.releaseAfterUseAsync(async()=>await N.Manifest.find(a.prefixPath,{baseFs:a.packageFs}),a.releaseFs);return T(u({},e),{version:o.version||"0.0.0",languageName:o.languageName||t.project.configuration.get("defaultLanguageName"),linkType:H.LinkType.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var ee={fetchers:[L],resolvers:[w]},te=ee;return Z;})(); +return plugin; +} +}; diff --git a/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs new file mode 100644 index 000000000..4e89c7c35 --- /dev/null +++ b/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs @@ -0,0 +1,28 @@ +/* eslint-disable */ +//prettier-ignore +module.exports = { +name: "@yarnpkg/plugin-workspace-tools", +factory: function (require) { +var plugin=(()=>{var yr=Object.create;var we=Object.defineProperty;var _r=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var br=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty;var W=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var q=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Cr=(e,r)=>{for(var t in r)we(e,t,{get:r[t],enumerable:!0})},Je=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Er(r))!xr.call(e,s)&&s!==t&&we(e,s,{get:()=>r[s],enumerable:!(n=_r(r,s))||n.enumerable});return e};var Be=(e,r,t)=>(t=e!=null?yr(br(e)):{},Je(r||!e||!e.__esModule?we(t,"default",{value:e,enumerable:!0}):t,e)),wr=e=>Je(we({},"__esModule",{value:!0}),e);var ve=q(ee=>{"use strict";ee.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;ee.find=(e,r)=>e.nodes.find(t=>t.type===r);ee.exceedsLimit=(e,r,t=1,n)=>n===!1||!ee.isInteger(e)||!ee.isInteger(r)?!1:(Number(r)-Number(e))/Number(t)>=n;ee.escapeNode=(e,r=0,t)=>{let n=e.nodes[r];!n||(t&&n.type===t||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};ee.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;ee.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;ee.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;ee.reduce=e=>e.reduce((r,t)=>(t.type==="text"&&r.push(t.value),t.type==="range"&&(t.type="text"),r),[]);ee.flatten=(...e)=>{let r=[],t=n=>{for(let s=0;s{"use strict";var tt=ve();rt.exports=(e,r={})=>{let t=(n,s={})=>{let i=r.escapeInvalid&&tt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c="";if(n.value)return(i||a)&&tt.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let p of n.nodes)c+=t(p);return c};return t(e)}});var st=q((Vn,nt)=>{"use strict";nt.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var ht=q((Jn,pt)=>{"use strict";var at=st(),le=(e,r,t)=>{if(at(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(r===void 0||e===r)return String(e);if(at(r)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...t};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),i=String(n.shorthand),a=String(n.capture),c=String(n.wrap),p=e+":"+r+"="+s+i+a+c;if(le.cache.hasOwnProperty(p))return le.cache[p].result;let m=Math.min(e,r),h=Math.max(e,r);if(Math.abs(m-h)===1){let y=e+"|"+r;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let R=ft(e)||ft(r),f={min:e,max:r,a:m,b:h},$=[],_=[];if(R&&(f.isPadded=R,f.maxLen=String(f.max).length),m<0){let y=h<0?Math.abs(h):1;_=it(y,Math.abs(m),f,n),m=f.a=0}return h>=0&&($=it(m,h,f,n)),f.negatives=_,f.positives=$,f.result=Sr(_,$,n),n.capture===!0?f.result=`(${f.result})`:n.wrap!==!1&&$.length+_.length>1&&(f.result=`(?:${f.result})`),le.cache[p]=f,f.result};function Sr(e,r,t){let n=Pe(e,r,"-",!1,t)||[],s=Pe(r,e,"",!1,t)||[],i=Pe(e,r,"-?",!0,t)||[];return n.concat(i).concat(s).join("|")}function vr(e,r){let t=1,n=1,s=ut(e,t),i=new Set([r]);for(;e<=s&&s<=r;)i.add(s),t+=1,s=ut(e,t);for(s=ct(r+1,n)-1;e1&&c.count.pop(),c.count.push(h.count[0]),c.string=c.pattern+lt(c.count),a=m+1;continue}t.isPadded&&(R=Lr(m,t,n)),h.string=R+h.pattern+lt(h.count),i.push(h),a=m+1,c=h}return i}function Pe(e,r,t,n,s){let i=[];for(let a of e){let{string:c}=a;!n&&!ot(r,"string",c)&&i.push(t+c),n&&ot(r,"string",c)&&i.push(t+c)}return i}function $r(e,r){let t=[];for(let n=0;nr?1:r>e?-1:0}function ot(e,r,t){return e.some(n=>n[r]===t)}function ut(e,r){return Number(String(e).slice(0,-r)+"9".repeat(r))}function ct(e,r){return e-e%Math.pow(10,r)}function lt(e){let[r=0,t=""]=e;return t||r>1?`{${r+(t?","+t:"")}}`:""}function kr(e,r,t){return`[${e}${r-e===1?"":"-"}${r}]`}function ft(e){return/^-?(0+)\d/.test(e)}function Lr(e,r,t){if(!r.isPadded)return e;let n=Math.abs(r.maxLen-String(e).length),s=t.relaxZeros!==!1;switch(n){case 0:return"";case 1:return s?"0?":"0";case 2:return s?"0{0,2}":"00";default:return s?`0{0,${n}}`:`0{${n}}`}}le.cache={};le.clearCache=()=>le.cache={};pt.exports=le});var Ue=q((es,Et)=>{"use strict";var Or=W("util"),At=ht(),dt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Nr=e=>r=>e===!0?Number(r):String(r),Me=e=>typeof e=="number"||typeof e=="string"&&e!=="",Ae=e=>Number.isInteger(+e),De=e=>{let r=`${e}`,t=-1;if(r[0]==="-"&&(r=r.slice(1)),r==="0")return!1;for(;r[++t]==="0";);return t>0},Ir=(e,r,t)=>typeof e=="string"||typeof r=="string"?!0:t.stringify===!0,Br=(e,r,t)=>{if(r>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?r-1:r,"0")}return t===!1?String(e):e},gt=(e,r)=>{let t=e[0]==="-"?"-":"";for(t&&(e=e.slice(1),r--);e.length{e.negatives.sort((a,c)=>ac?1:0),e.positives.sort((a,c)=>ac?1:0);let t=r.capture?"":"?:",n="",s="",i;return e.positives.length&&(n=e.positives.join("|")),e.negatives.length&&(s=`-(${t}${e.negatives.join("|")})`),n&&s?i=`${n}|${s}`:i=n||s,r.wrap?`(${t}${i})`:i},mt=(e,r,t,n)=>{if(t)return At(e,r,{wrap:!1,...n});let s=String.fromCharCode(e);if(e===r)return s;let i=String.fromCharCode(r);return`[${s}-${i}]`},Rt=(e,r,t)=>{if(Array.isArray(e)){let n=t.wrap===!0,s=t.capture?"":"?:";return n?`(${s}${e.join("|")})`:e.join("|")}return At(e,r,t)},yt=(...e)=>new RangeError("Invalid range arguments: "+Or.inspect(...e)),_t=(e,r,t)=>{if(t.strictRanges===!0)throw yt([e,r]);return[]},Mr=(e,r)=>{if(r.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Dr=(e,r,t=1,n={})=>{let s=Number(e),i=Number(r);if(!Number.isInteger(s)||!Number.isInteger(i)){if(n.strictRanges===!0)throw yt([e,r]);return[]}s===0&&(s=0),i===0&&(i=0);let a=s>i,c=String(e),p=String(r),m=String(t);t=Math.max(Math.abs(t),1);let h=De(c)||De(p)||De(m),R=h?Math.max(c.length,p.length,m.length):0,f=h===!1&&Ir(e,r,n)===!1,$=n.transform||Nr(f);if(n.toRegex&&t===1)return mt(gt(e,R),gt(r,R),!0,n);let _={negatives:[],positives:[]},y=T=>_[T<0?"negatives":"positives"].push(Math.abs(T)),E=[],S=0;for(;a?s>=i:s<=i;)n.toRegex===!0&&t>1?y(s):E.push(Br($(s,S),R,f)),s=a?s-t:s+t,S++;return n.toRegex===!0?t>1?Pr(_,n):Rt(E,null,{wrap:!1,...n}):E},Ur=(e,r,t=1,n={})=>{if(!Ae(e)&&e.length>1||!Ae(r)&&r.length>1)return _t(e,r,n);let s=n.transform||(f=>String.fromCharCode(f)),i=`${e}`.charCodeAt(0),a=`${r}`.charCodeAt(0),c=i>a,p=Math.min(i,a),m=Math.max(i,a);if(n.toRegex&&t===1)return mt(p,m,!1,n);let h=[],R=0;for(;c?i>=a:i<=a;)h.push(s(i,R)),i=c?i-t:i+t,R++;return n.toRegex===!0?Rt(h,null,{wrap:!1,options:n}):h},$e=(e,r,t,n={})=>{if(r==null&&Me(e))return[e];if(!Me(e)||!Me(r))return _t(e,r,n);if(typeof t=="function")return $e(e,r,1,{transform:t});if(dt(t))return $e(e,r,0,t);let s={...n};return s.capture===!0&&(s.wrap=!0),t=t||s.step||1,Ae(t)?Ae(e)&&Ae(r)?Dr(e,r,t,s):Ur(e,r,Math.max(Math.abs(t),1),s):t!=null&&!dt(t)?Mr(t,s):$e(e,r,1,t)};Et.exports=$e});var Ct=q((ts,xt)=>{"use strict";var Gr=Ue(),bt=ve(),qr=(e,r={})=>{let t=(n,s={})=>{let i=bt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c=i===!0||a===!0,p=r.escapeInvalid===!0?"\\":"",m="";if(n.isOpen===!0||n.isClose===!0)return p+n.value;if(n.type==="open")return c?p+n.value:"(";if(n.type==="close")return c?p+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":c?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let h=bt.reduce(n.nodes),R=Gr(...h,{...r,wrap:!1,toRegex:!0});if(R.length!==0)return h.length>1&&R.length>1?`(${R})`:R}if(n.nodes)for(let h of n.nodes)m+=t(h,n);return m};return t(e)};xt.exports=qr});var vt=q((rs,St)=>{"use strict";var Kr=Ue(),wt=He(),he=ve(),fe=(e="",r="",t=!1)=>{let n=[];if(e=[].concat(e),r=[].concat(r),!r.length)return e;if(!e.length)return t?he.flatten(r).map(s=>`{${s}}`):r;for(let s of e)if(Array.isArray(s))for(let i of s)n.push(fe(i,r,t));else for(let i of r)t===!0&&typeof i=="string"&&(i=`{${i}}`),n.push(Array.isArray(i)?fe(s,i,t):s+i);return he.flatten(n)},Wr=(e,r={})=>{let t=r.rangeLimit===void 0?1e3:r.rangeLimit,n=(s,i={})=>{s.queue=[];let a=i,c=i.queue;for(;a.type!=="brace"&&a.type!=="root"&&a.parent;)a=a.parent,c=a.queue;if(s.invalid||s.dollar){c.push(fe(c.pop(),wt(s,r)));return}if(s.type==="brace"&&s.invalid!==!0&&s.nodes.length===2){c.push(fe(c.pop(),["{}"]));return}if(s.nodes&&s.ranges>0){let R=he.reduce(s.nodes);if(he.exceedsLimit(...R,r.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=Kr(...R,r);f.length===0&&(f=wt(s,r)),c.push(fe(c.pop(),f)),s.nodes=[];return}let p=he.encloseBrace(s),m=s.queue,h=s;for(;h.type!=="brace"&&h.type!=="root"&&h.parent;)h=h.parent,m=h.queue;for(let R=0;R{"use strict";Ht.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Nt=q((ss,Ot)=>{"use strict";var jr=He(),{MAX_LENGTH:Tt,CHAR_BACKSLASH:Ge,CHAR_BACKTICK:Fr,CHAR_COMMA:Qr,CHAR_DOT:Xr,CHAR_LEFT_PARENTHESES:Zr,CHAR_RIGHT_PARENTHESES:Yr,CHAR_LEFT_CURLY_BRACE:zr,CHAR_RIGHT_CURLY_BRACE:Vr,CHAR_LEFT_SQUARE_BRACKET:kt,CHAR_RIGHT_SQUARE_BRACKET:Lt,CHAR_DOUBLE_QUOTE:Jr,CHAR_SINGLE_QUOTE:en,CHAR_NO_BREAK_SPACE:tn,CHAR_ZERO_WIDTH_NOBREAK_SPACE:rn}=$t(),nn=(e,r={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let t=r||{},n=typeof t.maxLength=="number"?Math.min(Tt,t.maxLength):Tt;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:"root",input:e,nodes:[]},i=[s],a=s,c=s,p=0,m=e.length,h=0,R=0,f,$={},_=()=>e[h++],y=E=>{if(E.type==="text"&&c.type==="dot"&&(c.type="text"),c&&c.type==="text"&&E.type==="text"){c.value+=E.value;return}return a.nodes.push(E),E.parent=a,E.prev=c,c=E,E};for(y({type:"bos"});h0){if(a.ranges>0){a.ranges=0;let E=a.nodes.shift();a.nodes=[E,{type:"text",value:jr(a)}]}y({type:"comma",value:f}),a.commas++;continue}if(f===Xr&&R>0&&a.commas===0){let E=a.nodes;if(R===0||E.length===0){y({type:"text",value:f});continue}if(c.type==="dot"){if(a.range=[],c.value+=f,c.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,c.type="text";continue}a.ranges++,a.args=[];continue}if(c.type==="range"){E.pop();let S=E[E.length-1];S.value+=c.value+f,c=S,a.ranges--;continue}y({type:"dot",value:f});continue}y({type:"text",value:f})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(T=>{T.nodes||(T.type==="open"&&(T.isOpen=!0),T.type==="close"&&(T.isClose=!0),T.nodes||(T.type="text"),T.invalid=!0)});let E=i[i.length-1],S=E.nodes.indexOf(a);E.nodes.splice(S,1,...a.nodes)}while(i.length>0);return y({type:"eos"}),s};Ot.exports=nn});var Pt=q((as,Bt)=>{"use strict";var It=He(),sn=Ct(),an=vt(),on=Nt(),Z=(e,r={})=>{let t=[];if(Array.isArray(e))for(let n of e){let s=Z.create(n,r);Array.isArray(s)?t.push(...s):t.push(s)}else t=[].concat(Z.create(e,r));return r&&r.expand===!0&&r.nodupes===!0&&(t=[...new Set(t)]),t};Z.parse=(e,r={})=>on(e,r);Z.stringify=(e,r={})=>It(typeof e=="string"?Z.parse(e,r):e,r);Z.compile=(e,r={})=>(typeof e=="string"&&(e=Z.parse(e,r)),sn(e,r));Z.expand=(e,r={})=>{typeof e=="string"&&(e=Z.parse(e,r));let t=an(e,r);return r.noempty===!0&&(t=t.filter(Boolean)),r.nodupes===!0&&(t=[...new Set(t)]),t};Z.create=(e,r={})=>e===""||e.length<3?[e]:r.expand!==!0?Z.compile(e,r):Z.expand(e,r);Bt.exports=Z});var me=q((is,qt)=>{"use strict";var un=W("path"),se="\\\\/",Mt=`[^${se}]`,ie="\\.",cn="\\+",ln="\\?",Te="\\/",fn="(?=.)",Dt="[^/]",qe=`(?:${Te}|$)`,Ut=`(?:^|${Te})`,Ke=`${ie}{1,2}${qe}`,pn=`(?!${ie})`,hn=`(?!${Ut}${Ke})`,dn=`(?!${ie}{0,1}${qe})`,gn=`(?!${Ke})`,An=`[^.${Te}]`,mn=`${Dt}*?`,Gt={DOT_LITERAL:ie,PLUS_LITERAL:cn,QMARK_LITERAL:ln,SLASH_LITERAL:Te,ONE_CHAR:fn,QMARK:Dt,END_ANCHOR:qe,DOTS_SLASH:Ke,NO_DOT:pn,NO_DOTS:hn,NO_DOT_SLASH:dn,NO_DOTS_SLASH:gn,QMARK_NO_DOT:An,STAR:mn,START_ANCHOR:Ut},Rn={...Gt,SLASH_LITERAL:`[${se}]`,QMARK:Mt,STAR:`${Mt}*?`,DOTS_SLASH:`${ie}{1,2}(?:[${se}]|$)`,NO_DOT:`(?!${ie})`,NO_DOTS:`(?!(?:^|[${se}])${ie}{1,2}(?:[${se}]|$))`,NO_DOT_SLASH:`(?!${ie}{0,1}(?:[${se}]|$))`,NO_DOTS_SLASH:`(?!${ie}{1,2}(?:[${se}]|$))`,QMARK_NO_DOT:`[^.${se}]`,START_ANCHOR:`(?:^|[${se}])`,END_ANCHOR:`(?:[${se}]|$)`},yn={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};qt.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:yn,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:un.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Rn:Gt}}});var Re=q(Q=>{"use strict";var _n=W("path"),En=process.platform==="win32",{REGEX_BACKSLASH:bn,REGEX_REMOVE_BACKSLASH:xn,REGEX_SPECIAL_CHARS:Cn,REGEX_SPECIAL_CHARS_GLOBAL:wn}=me();Q.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Q.hasRegexChars=e=>Cn.test(e);Q.isRegexChar=e=>e.length===1&&Q.hasRegexChars(e);Q.escapeRegex=e=>e.replace(wn,"\\$1");Q.toPosixSlashes=e=>e.replace(bn,"/");Q.removeBackslashes=e=>e.replace(xn,r=>r==="\\"?"":r);Q.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Q.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:En===!0||_n.sep==="\\";Q.escapeLast=(e,r,t)=>{let n=e.lastIndexOf(r,t);return n===-1?e:e[n-1]==="\\"?Q.escapeLast(e,r,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Q.removePrefix=(e,r={})=>{let t=e;return t.startsWith("./")&&(t=t.slice(2),r.prefix="./"),t};Q.wrapOutput=(e,r={},t={})=>{let n=t.contains?"":"^",s=t.contains?"":"$",i=`${n}(?:${e})${s}`;return r.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var Yt=q((us,Zt)=>{"use strict";var Kt=Re(),{CHAR_ASTERISK:We,CHAR_AT:Sn,CHAR_BACKWARD_SLASH:ye,CHAR_COMMA:vn,CHAR_DOT:je,CHAR_EXCLAMATION_MARK:Fe,CHAR_FORWARD_SLASH:Xt,CHAR_LEFT_CURLY_BRACE:Qe,CHAR_LEFT_PARENTHESES:Xe,CHAR_LEFT_SQUARE_BRACKET:Hn,CHAR_PLUS:$n,CHAR_QUESTION_MARK:Wt,CHAR_RIGHT_CURLY_BRACE:Tn,CHAR_RIGHT_PARENTHESES:jt,CHAR_RIGHT_SQUARE_BRACKET:kn}=me(),Ft=e=>e===Xt||e===ye,Qt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},Ln=(e,r)=>{let t=r||{},n=e.length-1,s=t.parts===!0||t.scanToEnd===!0,i=[],a=[],c=[],p=e,m=-1,h=0,R=0,f=!1,$=!1,_=!1,y=!1,E=!1,S=!1,T=!1,L=!1,z=!1,I=!1,re=0,K,g,v={value:"",depth:0,isGlob:!1},k=()=>m>=n,l=()=>p.charCodeAt(m+1),H=()=>(K=g,p.charCodeAt(++m));for(;m0&&(B=p.slice(0,h),p=p.slice(h),R-=h),w&&_===!0&&R>0?(w=p.slice(0,R),o=p.slice(R)):_===!0?(w="",o=p):w=p,w&&w!==""&&w!=="/"&&w!==p&&Ft(w.charCodeAt(w.length-1))&&(w=w.slice(0,-1)),t.unescape===!0&&(o&&(o=Kt.removeBackslashes(o)),w&&T===!0&&(w=Kt.removeBackslashes(w)));let u={prefix:B,input:e,start:h,base:w,glob:o,isBrace:f,isBracket:$,isGlob:_,isExtglob:y,isGlobstar:E,negated:L,negatedExtglob:z};if(t.tokens===!0&&(u.maxDepth=0,Ft(g)||a.push(v),u.tokens=a),t.parts===!0||t.tokens===!0){let P;for(let b=0;b{"use strict";var ke=me(),Y=Re(),{MAX_LENGTH:Le,POSIX_REGEX_SOURCE:On,REGEX_NON_SPECIAL_CHARS:Nn,REGEX_SPECIAL_CHARS_BACKREF:In,REPLACEMENTS:zt}=ke,Bn=(e,r)=>{if(typeof r.expandRange=="function")return r.expandRange(...e,r);e.sort();let t=`[${e.join("-")}]`;try{new RegExp(t)}catch{return e.map(s=>Y.escapeRegex(s)).join("..")}return t},de=(e,r)=>`Missing ${e}: "${r}" - use "\\\\${r}" to match literal characters`,Vt=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=zt[e]||e;let t={...r},n=typeof t.maxLength=="number"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);let i={type:"bos",value:"",output:t.prepend||""},a=[i],c=t.capture?"":"?:",p=Y.isWindows(r),m=ke.globChars(p),h=ke.extglobChars(m),{DOT_LITERAL:R,PLUS_LITERAL:f,SLASH_LITERAL:$,ONE_CHAR:_,DOTS_SLASH:y,NO_DOT:E,NO_DOT_SLASH:S,NO_DOTS_SLASH:T,QMARK:L,QMARK_NO_DOT:z,STAR:I,START_ANCHOR:re}=m,K=A=>`(${c}(?:(?!${re}${A.dot?y:R}).)*?)`,g=t.dot?"":E,v=t.dot?L:z,k=t.bash===!0?K(t):I;t.capture&&(k=`(${k})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let l={input:e,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};e=Y.removePrefix(e,l),s=e.length;let H=[],w=[],B=[],o=i,u,P=()=>l.index===s-1,b=l.peek=(A=1)=>e[l.index+A],V=l.advance=()=>e[++l.index]||"",J=()=>e.slice(l.index+1),X=(A="",O=0)=>{l.consumed+=A,l.index+=O},Ee=A=>{l.output+=A.output!=null?A.output:A.value,X(A.value)},mr=()=>{let A=1;for(;b()==="!"&&(b(2)!=="("||b(3)==="?");)V(),l.start++,A++;return A%2===0?!1:(l.negated=!0,l.start++,!0)},be=A=>{l[A]++,B.push(A)},oe=A=>{l[A]--,B.pop()},C=A=>{if(o.type==="globstar"){let O=l.braces>0&&(A.type==="comma"||A.type==="brace"),d=A.extglob===!0||H.length&&(A.type==="pipe"||A.type==="paren");A.type!=="slash"&&A.type!=="paren"&&!O&&!d&&(l.output=l.output.slice(0,-o.output.length),o.type="star",o.value="*",o.output=k,l.output+=o.output)}if(H.length&&A.type!=="paren"&&(H[H.length-1].inner+=A.value),(A.value||A.output)&&Ee(A),o&&o.type==="text"&&A.type==="text"){o.value+=A.value,o.output=(o.output||"")+A.value;return}A.prev=o,a.push(A),o=A},xe=(A,O)=>{let d={...h[O],conditions:1,inner:""};d.prev=o,d.parens=l.parens,d.output=l.output;let x=(t.capture?"(":"")+d.open;be("parens"),C({type:A,value:O,output:l.output?"":_}),C({type:"paren",extglob:!0,value:V(),output:x}),H.push(d)},Rr=A=>{let O=A.close+(t.capture?")":""),d;if(A.type==="negate"){let x=k;A.inner&&A.inner.length>1&&A.inner.includes("/")&&(x=K(t)),(x!==k||P()||/^\)+$/.test(J()))&&(O=A.close=`)$))${x}`),A.inner.includes("*")&&(d=J())&&/^\.[^\\/.]+$/.test(d)&&(O=A.close=`)${d})${x})`),A.prev.type==="bos"&&(l.negatedExtglob=!0)}C({type:"paren",extglob:!0,value:u,output:O}),oe("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let A=!1,O=e.replace(In,(d,x,M,j,G,Ie)=>j==="\\"?(A=!0,d):j==="?"?x?x+j+(G?L.repeat(G.length):""):Ie===0?v+(G?L.repeat(G.length):""):L.repeat(M.length):j==="."?R.repeat(M.length):j==="*"?x?x+j+(G?k:""):k:x?d:`\\${d}`);return A===!0&&(t.unescape===!0?O=O.replace(/\\/g,""):O=O.replace(/\\+/g,d=>d.length%2===0?"\\\\":d?"\\":"")),O===e&&t.contains===!0?(l.output=e,l):(l.output=Y.wrapOutput(O,l,r),l)}for(;!P();){if(u=V(),u==="\0")continue;if(u==="\\"){let d=b();if(d==="/"&&t.bash!==!0||d==="."||d===";")continue;if(!d){u+="\\",C({type:"text",value:u});continue}let x=/^\\+/.exec(J()),M=0;if(x&&x[0].length>2&&(M=x[0].length,l.index+=M,M%2!==0&&(u+="\\")),t.unescape===!0?u=V():u+=V(),l.brackets===0){C({type:"text",value:u});continue}}if(l.brackets>0&&(u!=="]"||o.value==="["||o.value==="[^")){if(t.posix!==!1&&u===":"){let d=o.value.slice(1);if(d.includes("[")&&(o.posix=!0,d.includes(":"))){let x=o.value.lastIndexOf("["),M=o.value.slice(0,x),j=o.value.slice(x+2),G=On[j];if(G){o.value=M+G,l.backtrack=!0,V(),!i.output&&a.indexOf(o)===1&&(i.output=_);continue}}}(u==="["&&b()!==":"||u==="-"&&b()==="]")&&(u=`\\${u}`),u==="]"&&(o.value==="["||o.value==="[^")&&(u=`\\${u}`),t.posix===!0&&u==="!"&&o.value==="["&&(u="^"),o.value+=u,Ee({value:u});continue}if(l.quotes===1&&u!=='"'){u=Y.escapeRegex(u),o.value+=u,Ee({value:u});continue}if(u==='"'){l.quotes=l.quotes===1?0:1,t.keepQuotes===!0&&C({type:"text",value:u});continue}if(u==="("){be("parens"),C({type:"paren",value:u});continue}if(u===")"){if(l.parens===0&&t.strictBrackets===!0)throw new SyntaxError(de("opening","("));let d=H[H.length-1];if(d&&l.parens===d.parens+1){Rr(H.pop());continue}C({type:"paren",value:u,output:l.parens?")":"\\)"}),oe("parens");continue}if(u==="["){if(t.nobracket===!0||!J().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(de("closing","]"));u=`\\${u}`}else be("brackets");C({type:"bracket",value:u});continue}if(u==="]"){if(t.nobracket===!0||o&&o.type==="bracket"&&o.value.length===1){C({type:"text",value:u,output:`\\${u}`});continue}if(l.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(de("opening","["));C({type:"text",value:u,output:`\\${u}`});continue}oe("brackets");let d=o.value.slice(1);if(o.posix!==!0&&d[0]==="^"&&!d.includes("/")&&(u=`/${u}`),o.value+=u,Ee({value:u}),t.literalBrackets===!1||Y.hasRegexChars(d))continue;let x=Y.escapeRegex(o.value);if(l.output=l.output.slice(0,-o.value.length),t.literalBrackets===!0){l.output+=x,o.value=x;continue}o.value=`(${c}${x}|${o.value})`,l.output+=o.value;continue}if(u==="{"&&t.nobrace!==!0){be("braces");let d={type:"brace",value:u,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};w.push(d),C(d);continue}if(u==="}"){let d=w[w.length-1];if(t.nobrace===!0||!d){C({type:"text",value:u,output:u});continue}let x=")";if(d.dots===!0){let M=a.slice(),j=[];for(let G=M.length-1;G>=0&&(a.pop(),M[G].type!=="brace");G--)M[G].type!=="dots"&&j.unshift(M[G].value);x=Bn(j,t),l.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){let M=l.output.slice(0,d.outputIndex),j=l.tokens.slice(d.tokensIndex);d.value=d.output="\\{",u=x="\\}",l.output=M;for(let G of j)l.output+=G.output||G.value}C({type:"brace",value:u,output:x}),oe("braces"),w.pop();continue}if(u==="|"){H.length>0&&H[H.length-1].conditions++,C({type:"text",value:u});continue}if(u===","){let d=u,x=w[w.length-1];x&&B[B.length-1]==="braces"&&(x.comma=!0,d="|"),C({type:"comma",value:u,output:d});continue}if(u==="/"){if(o.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",a.pop(),o=i;continue}C({type:"slash",value:u,output:$});continue}if(u==="."){if(l.braces>0&&o.type==="dot"){o.value==="."&&(o.output=R);let d=w[w.length-1];o.type="dots",o.output+=u,o.value+=u,d.dots=!0;continue}if(l.braces+l.parens===0&&o.type!=="bos"&&o.type!=="slash"){C({type:"text",value:u,output:R});continue}C({type:"dot",value:u,output:R});continue}if(u==="?"){if(!(o&&o.value==="(")&&t.noextglob!==!0&&b()==="("&&b(2)!=="?"){xe("qmark",u);continue}if(o&&o.type==="paren"){let x=b(),M=u;if(x==="<"&&!Y.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(o.value==="("&&!/[!=<:]/.test(x)||x==="<"&&!/<([!=]|\w+>)/.test(J()))&&(M=`\\${u}`),C({type:"text",value:u,output:M});continue}if(t.dot!==!0&&(o.type==="slash"||o.type==="bos")){C({type:"qmark",value:u,output:z});continue}C({type:"qmark",value:u,output:L});continue}if(u==="!"){if(t.noextglob!==!0&&b()==="("&&(b(2)!=="?"||!/[!=<:]/.test(b(3)))){xe("negate",u);continue}if(t.nonegate!==!0&&l.index===0){mr();continue}}if(u==="+"){if(t.noextglob!==!0&&b()==="("&&b(2)!=="?"){xe("plus",u);continue}if(o&&o.value==="("||t.regex===!1){C({type:"plus",value:u,output:f});continue}if(o&&(o.type==="bracket"||o.type==="paren"||o.type==="brace")||l.parens>0){C({type:"plus",value:u});continue}C({type:"plus",value:f});continue}if(u==="@"){if(t.noextglob!==!0&&b()==="("&&b(2)!=="?"){C({type:"at",extglob:!0,value:u,output:""});continue}C({type:"text",value:u});continue}if(u!=="*"){(u==="$"||u==="^")&&(u=`\\${u}`);let d=Nn.exec(J());d&&(u+=d[0],l.index+=d[0].length),C({type:"text",value:u});continue}if(o&&(o.type==="globstar"||o.star===!0)){o.type="star",o.star=!0,o.value+=u,o.output=k,l.backtrack=!0,l.globstar=!0,X(u);continue}let A=J();if(t.noextglob!==!0&&/^\([^?]/.test(A)){xe("star",u);continue}if(o.type==="star"){if(t.noglobstar===!0){X(u);continue}let d=o.prev,x=d.prev,M=d.type==="slash"||d.type==="bos",j=x&&(x.type==="star"||x.type==="globstar");if(t.bash===!0&&(!M||A[0]&&A[0]!=="/")){C({type:"star",value:u,output:""});continue}let G=l.braces>0&&(d.type==="comma"||d.type==="brace"),Ie=H.length&&(d.type==="pipe"||d.type==="paren");if(!M&&d.type!=="paren"&&!G&&!Ie){C({type:"star",value:u,output:""});continue}for(;A.slice(0,3)==="/**";){let Ce=e[l.index+4];if(Ce&&Ce!=="/")break;A=A.slice(3),X("/**",3)}if(d.type==="bos"&&P()){o.type="globstar",o.value+=u,o.output=K(t),l.output=o.output,l.globstar=!0,X(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&!j&&P()){l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type="globstar",o.output=K(t)+(t.strictSlashes?")":"|$)"),o.value+=u,l.globstar=!0,l.output+=d.output+o.output,X(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&A[0]==="/"){let Ce=A[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type="globstar",o.output=`${K(t)}${$}|${$}${Ce})`,o.value+=u,l.output+=d.output+o.output,l.globstar=!0,X(u+V()),C({type:"slash",value:"/",output:""});continue}if(d.type==="bos"&&A[0]==="/"){o.type="globstar",o.value+=u,o.output=`(?:^|${$}|${K(t)}${$})`,l.output=o.output,l.globstar=!0,X(u+V()),C({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-o.output.length),o.type="globstar",o.output=K(t),o.value+=u,l.output+=o.output,l.globstar=!0,X(u);continue}let O={type:"star",value:u,output:k};if(t.bash===!0){O.output=".*?",(o.type==="bos"||o.type==="slash")&&(O.output=g+O.output),C(O);continue}if(o&&(o.type==="bracket"||o.type==="paren")&&t.regex===!0){O.output=u,C(O);continue}(l.index===l.start||o.type==="slash"||o.type==="dot")&&(o.type==="dot"?(l.output+=S,o.output+=S):t.dot===!0?(l.output+=T,o.output+=T):(l.output+=g,o.output+=g),b()!=="*"&&(l.output+=_,o.output+=_)),C(O)}for(;l.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing","]"));l.output=Y.escapeLast(l.output,"["),oe("brackets")}for(;l.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing",")"));l.output=Y.escapeLast(l.output,"("),oe("parens")}for(;l.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing","}"));l.output=Y.escapeLast(l.output,"{"),oe("braces")}if(t.strictSlashes!==!0&&(o.type==="star"||o.type==="bracket")&&C({type:"maybe_slash",value:"",output:`${$}?`}),l.backtrack===!0){l.output="";for(let A of l.tokens)l.output+=A.output!=null?A.output:A.value,A.suffix&&(l.output+=A.suffix)}return l};Vt.fastpaths=(e,r)=>{let t={...r},n=typeof t.maxLength=="number"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);e=zt[e]||e;let i=Y.isWindows(r),{DOT_LITERAL:a,SLASH_LITERAL:c,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:h,NO_DOTS:R,NO_DOTS_SLASH:f,STAR:$,START_ANCHOR:_}=ke.globChars(i),y=t.dot?R:h,E=t.dot?f:h,S=t.capture?"":"?:",T={negated:!1,prefix:""},L=t.bash===!0?".*?":$;t.capture&&(L=`(${L})`);let z=g=>g.noglobstar===!0?L:`(${S}(?:(?!${_}${g.dot?m:a}).)*?)`,I=g=>{switch(g){case"*":return`${y}${p}${L}`;case".*":return`${a}${p}${L}`;case"*.*":return`${y}${L}${a}${p}${L}`;case"*/*":return`${y}${L}${c}${p}${E}${L}`;case"**":return y+z(t);case"**/*":return`(?:${y}${z(t)}${c})?${E}${p}${L}`;case"**/*.*":return`(?:${y}${z(t)}${c})?${E}${L}${a}${p}${L}`;case"**/.*":return`(?:${y}${z(t)}${c})?${a}${p}${L}`;default:{let v=/^(.*?)\.(\w+)$/.exec(g);if(!v)return;let k=I(v[1]);return k?k+a+v[2]:void 0}}},re=Y.removePrefix(e,T),K=I(re);return K&&t.strictSlashes!==!0&&(K+=`${c}?`),K};Jt.exports=Vt});var rr=q((ls,tr)=>{"use strict";var Pn=W("path"),Mn=Yt(),Ze=er(),Ye=Re(),Dn=me(),Un=e=>e&&typeof e=="object"&&!Array.isArray(e),D=(e,r,t=!1)=>{if(Array.isArray(e)){let h=e.map(f=>D(f,r,t));return f=>{for(let $ of h){let _=$(f);if(_)return _}return!1}}let n=Un(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let s=r||{},i=Ye.isWindows(r),a=n?D.compileRe(e,r):D.makeRe(e,r,!1,!0),c=a.state;delete a.state;let p=()=>!1;if(s.ignore){let h={...r,ignore:null,onMatch:null,onResult:null};p=D(s.ignore,h,t)}let m=(h,R=!1)=>{let{isMatch:f,match:$,output:_}=D.test(h,a,r,{glob:e,posix:i}),y={glob:e,state:c,regex:a,posix:i,input:h,output:_,match:$,isMatch:f};return typeof s.onResult=="function"&&s.onResult(y),f===!1?(y.isMatch=!1,R?y:!1):p(h)?(typeof s.onIgnore=="function"&&s.onIgnore(y),y.isMatch=!1,R?y:!1):(typeof s.onMatch=="function"&&s.onMatch(y),R?y:!0)};return t&&(m.state=c),m};D.test=(e,r,t,{glob:n,posix:s}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let i=t||{},a=i.format||(s?Ye.toPosixSlashes:null),c=e===n,p=c&&a?a(e):e;return c===!1&&(p=a?a(e):e,c=p===n),(c===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?c=D.matchBase(e,r,t,s):c=r.exec(p)),{isMatch:Boolean(c),match:c,output:p}};D.matchBase=(e,r,t,n=Ye.isWindows(t))=>(r instanceof RegExp?r:D.makeRe(r,t)).test(Pn.basename(e));D.isMatch=(e,r,t)=>D(r,t)(e);D.parse=(e,r)=>Array.isArray(e)?e.map(t=>D.parse(t,r)):Ze(e,{...r,fastpaths:!1});D.scan=(e,r)=>Mn(e,r);D.compileRe=(e,r,t=!1,n=!1)=>{if(t===!0)return e.output;let s=r||{},i=s.contains?"":"^",a=s.contains?"":"$",c=`${i}(?:${e.output})${a}`;e&&e.negated===!0&&(c=`^(?!${c}).*$`);let p=D.toRegex(c,r);return n===!0&&(p.state=e),p};D.makeRe=(e,r={},t=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let s={negated:!1,fastpaths:!0};return r.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(s.output=Ze.fastpaths(e,r)),s.output||(s=Ze(e,r)),D.compileRe(s,r,t,n)};D.toRegex=(e,r)=>{try{let t=r||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(t){if(r&&r.debug===!0)throw t;return/$^/}};D.constants=Dn;tr.exports=D});var sr=q((fs,nr)=>{"use strict";nr.exports=rr()});var cr=q((ps,ur)=>{"use strict";var ir=W("util"),or=Pt(),ae=sr(),ze=Re(),ar=e=>e===""||e==="./",N=(e,r,t)=>{r=[].concat(r),e=[].concat(e);let n=new Set,s=new Set,i=new Set,a=0,c=h=>{i.add(h.output),t&&t.onResult&&t.onResult(h)};for(let h=0;h!n.has(h));if(t&&m.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${r.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?r.map(h=>h.replace(/\\/g,"")):r}return m};N.match=N;N.matcher=(e,r)=>ae(e,r);N.isMatch=(e,r,t)=>ae(r,t)(e);N.any=N.isMatch;N.not=(e,r,t={})=>{r=[].concat(r).map(String);let n=new Set,s=[],a=N(e,r,{...t,onResult:c=>{t.onResult&&t.onResult(c),s.push(c.output)}});for(let c of s)a.includes(c)||n.add(c);return[...n]};N.contains=(e,r,t)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ir.inspect(e)}"`);if(Array.isArray(r))return r.some(n=>N.contains(e,n,t));if(typeof r=="string"){if(ar(e)||ar(r))return!1;if(e.includes(r)||e.startsWith("./")&&e.slice(2).includes(r))return!0}return N.isMatch(e,r,{...t,contains:!0})};N.matchKeys=(e,r,t)=>{if(!ze.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=N(Object.keys(e),r,t),s={};for(let i of n)s[i]=e[i];return s};N.some=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(n.some(a=>i(a)))return!0}return!1};N.every=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(!n.every(a=>i(a)))return!1}return!0};N.all=(e,r,t)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ir.inspect(e)}"`);return[].concat(r).every(n=>ae(n,t)(e))};N.capture=(e,r,t)=>{let n=ze.isWindows(t),i=ae.makeRe(String(e),{...t,capture:!0}).exec(n?ze.toPosixSlashes(r):r);if(i)return i.slice(1).map(a=>a===void 0?"":a)};N.makeRe=(...e)=>ae.makeRe(...e);N.scan=(...e)=>ae.scan(...e);N.parse=(e,r)=>{let t=[];for(let n of[].concat(e||[]))for(let s of or(String(n),r))t.push(ae.parse(s,r));return t};N.braces=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");return r&&r.nobrace===!0||!/\{.*\}/.test(e)?[e]:or(e,r)};N.braceExpand=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");return N.braces(e,{...r,expand:!0})};ur.exports=N});var fr=q((hs,lr)=>{"use strict";lr.exports=(e,...r)=>new Promise(t=>{t(e(...r))})});var hr=q((ds,Ve)=>{"use strict";var Gn=fr(),pr=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let r=[],t=0,n=()=>{t--,r.length>0&&r.shift()()},s=(c,p,...m)=>{t++;let h=Gn(c,...m);p(h),h.then(n,n)},i=(c,p,...m)=>{tnew Promise(m=>i(c,m,...p));return Object.defineProperties(a,{activeCount:{get:()=>t},pendingCount:{get:()=>r.length}}),a};Ve.exports=pr;Ve.exports.default=pr});var jn={};Cr(jn,{default:()=>Wn});var Se=W("@yarnpkg/cli"),ne=W("@yarnpkg/core"),et=W("@yarnpkg/core"),ue=W("clipanion"),ce=class extends Se.BaseCommand{constructor(){super(...arguments);this.json=ue.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ue.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ue.Option.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ue.Option.Rest()}async execute(){let t=await ne.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ne.Project.find(t,this.context.cwd),i=await ne.Cache.find(t);await n.restoreInstallState({restoreResolutions:!1});let a;if(this.all)a=new Set(n.workspaces);else if(this.workspaces.length===0){if(!s)throw new Se.WorkspaceRequiredError(n.cwd,this.context.cwd);a=new Set([s])}else a=new Set(this.workspaces.map(p=>n.getWorkspaceByIdent(et.structUtils.parseIdent(p))));for(let p of a)for(let m of this.production?["dependencies"]:ne.Manifest.hardDependencies)for(let h of p.manifest.getForScope(m).values()){let R=n.tryWorkspaceByDescriptor(h);R!==null&&a.add(R)}for(let p of n.workspaces)a.has(p)?this.production&&p.manifest.devDependencies.clear():(p.manifest.installConfig=p.manifest.installConfig||{},p.manifest.installConfig.selfReferences=!1,p.manifest.dependencies.clear(),p.manifest.devDependencies.clear(),p.manifest.peerDependencies.clear(),p.manifest.scripts.clear());return(await ne.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await n.install({cache:i,report:p,persistProject:!1})})).exitCode()}};ce.paths=[["workspaces","focus"]],ce.usage=ue.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});var Ne=W("@yarnpkg/cli"),ge=W("@yarnpkg/core"),_e=W("@yarnpkg/core"),F=W("@yarnpkg/core"),gr=W("@yarnpkg/plugin-git"),U=W("clipanion"),Oe=Be(cr()),Ar=Be(hr()),te=Be(W("typanion")),pe=class extends Ne.BaseCommand{constructor(){super(...arguments);this.recursive=U.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=U.Option.Array("--from",[],{description:"An array of glob pattern idents from which to base any recursion"});this.all=U.Option.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=U.Option.Boolean("-v,--verbose",!1,{description:"Prefix each output line with the name of the originating workspace"});this.parallel=U.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=U.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=U.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:te.isOneOf([te.isEnum(["unlimited"]),te.applyCascade(te.isNumber(),[te.isInteger(),te.isAtLeast(1)])])});this.topological=U.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=U.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=U.Option.Array("--include",[],{description:"An array of glob pattern idents; only matching workspaces will be traversed"});this.exclude=U.Option.Array("--exclude",[],{description:"An array of glob pattern idents; matching workspaces won't be traversed"});this.publicOnly=U.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=U.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.commandName=U.Option.String();this.args=U.Option.Proxy()}async execute(){let t=await ge.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ge.Project.find(t,this.context.cwd);if(!this.all&&!s)throw new Ne.WorkspaceRequiredError(n.cwd,this.context.cwd);await n.restoreInstallState();let i=this.cli.process([this.commandName,...this.args]),a=i.path.length===1&&i.path[0]==="run"&&typeof i.scriptName<"u"?i.scriptName:null;if(i.path.length===0)throw new U.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let c=this.all?n.topLevelWorkspace:s,p=this.since?Array.from(await gr.gitUtils.fetchChangedWorkspaces({ref:this.since,project:n})):[c,...this.from.length>0?c.getRecursiveWorkspaceChildren():[]],m=g=>Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.from),h=this.from.length>0?p.filter(m):p,R=new Set([...h,...h.map(g=>[...this.recursive?this.since?g.getRecursiveWorkspaceDependents():g.getRecursiveWorkspaceDependencies():g.getRecursiveWorkspaceChildren()]).flat()]),f=[],$=!1;if(a!=null&&a.includes(":")){for(let g of n.workspaces)if(g.manifest.scripts.has(a)&&($=!$,$===!1))break}for(let g of R)a&&!g.manifest.scripts.has(a)&&!$&&!(await ge.scriptUtils.getWorkspaceAccessibleBinaries(g)).has(a)||a===process.env.npm_lifecycle_event&&g.cwd===s.cwd||this.include.length>0&&!Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.include)||this.exclude.length>0&&Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.exclude)||this.publicOnly&&g.manifest.private===!0||f.push(g);let _=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(F.nodeUtils.availableParallelism()/2):1,y=_===1?!1:this.parallel,E=y?this.interlaced:!0,S=(0,Ar.default)(_),T=new Map,L=new Set,z=0,I=null,re=!1,K=await _e.StreamReport.start({configuration:t,stdout:this.context.stdout,includePrefix:!1},async g=>{let v=async(k,{commandIndex:l})=>{if(re)return-1;!y&&this.verbose&&l>1&&g.reportSeparator();let H=qn(k,{configuration:t,verbose:this.verbose,commandIndex:l}),[w,B]=dr(g,{prefix:H,interlaced:E}),[o,u]=dr(g,{prefix:H,interlaced:E});try{this.verbose&&g.reportInfo(null,`${H} Process started`);let P=Date.now(),b=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:w,stderr:o})||0;w.end(),o.end(),await B,await u;let V=Date.now();if(this.verbose){let J=t.get("enableTimers")?`, completed in ${F.formatUtils.pretty(t,V-P,F.formatUtils.Type.DURATION)}`:"";g.reportInfo(null,`${H} Process exited (exit code ${b})${J}`)}return b===130&&(re=!0,I=b),b}catch(P){throw w.end(),o.end(),await B,await u,P}};for(let k of f)T.set(k.anchoredLocator.locatorHash,k);for(;T.size>0&&!g.hasErrors();){let k=[];for(let[w,B]of T){if(L.has(B.anchoredDescriptor.descriptorHash))continue;let o=!0;if(this.topological||this.topologicalDev){let u=this.topologicalDev?new Map([...B.manifest.dependencies,...B.manifest.devDependencies]):B.manifest.dependencies;for(let P of u.values()){let b=n.tryWorkspaceByDescriptor(P);if(o=b===null||!T.has(b.anchoredLocator.locatorHash),!o)break}}if(!!o&&(L.add(B.anchoredDescriptor.descriptorHash),k.push(S(async()=>{let u=await v(B,{commandIndex:++z});return T.delete(w),L.delete(B.anchoredDescriptor.descriptorHash),u})),!y))break}if(k.length===0){let w=Array.from(T.values()).map(B=>F.structUtils.prettyLocator(t,B.anchoredLocator)).join(", ");g.reportError(_e.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${w})`);return}let H=(await Promise.all(k)).find(w=>w!==0);I===null&&(I=typeof H<"u"?1:I),(this.topological||this.topologicalDev)&&typeof H<"u"&&g.reportError(_e.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return I!==null?I:K.exitCode()}};pe.paths=[["workspaces","foreach"]],pe.usage=U.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});function dr(e,{prefix:r,interlaced:t}){let n=e.createStreamReporter(r),s=new F.miscUtils.DefaultStream;s.pipe(n,{end:!1}),s.on("finish",()=>{n.end()});let i=new Promise(c=>{n.on("finish",()=>{c(s.active)})});if(t)return[s,i];let a=new F.miscUtils.BufferStream;return a.pipe(s,{end:!1}),a.on("finish",()=>{s.end()}),[a,i]}function qn(e,{configuration:r,commandIndex:t,verbose:n}){if(!n)return null;let i=`[${F.structUtils.stringifyIdent(e.locator)}]:`,a=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],c=a[t%a.length];return F.formatUtils.pretty(r,i,c)}var Kn={commands:[ce,pe]},Wn=Kn;return wr(jn);})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +return plugin; +} +}; diff --git a/.yarn/releases/yarn-3.8.0.cjs b/.yarn/releases/yarn-3.8.0.cjs new file mode 100755 index 000000000..ff0891825 --- /dev/null +++ b/.yarn/releases/yarn-3.8.0.cjs @@ -0,0 +1,875 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Tr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},Ir=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},br=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ +`,Tn=Ue(`\\ +`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),An=function(C){return C},b="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},Wi="\\n",Ol=Ue("\\n",!1),ze=function(){return` +`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),ln=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Lr=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function cn(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};Rk&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=Sr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Sr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Sr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Tp(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=G(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Tr?(C=Tr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,T===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,T===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,T===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,T===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=Ir(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Nl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Nge(),Q!==t&&(E=C,Q=br(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Tl?(Q=Tl,f+=2):(Q=t,T===0&&Be(Tn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,T===0&&Be(Nt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,T===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(Q=j,f+=2):(Q=t,T===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===Wi?(Q=Wi,f+=2):(Q=t,T===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,T===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,T===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,T===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(Q=Ne,f+=2):(Q=t,T===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,T===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,T===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie));else le=t;le!==t?(E=C,Q=Gl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Np(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Yl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,T===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,T===0&&Be(N)),Qe!==t?(E=C,Q=Lr(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,T===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,T===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,T===0&&Be(Ea)),Q!==t?(R=Sr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,Q=T1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,T===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,Q,R;return C=f,Q=Tge(),Q!==t?(E=f,R=j1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=G1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;gH&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(P=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(P=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(P=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BU.repeat(" ",e)+i+a+s+` +`+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};QU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Ng(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Qa.repeat(` +`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),fn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function bpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndente)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),T2(r,e,Qa.extend({schema:S2},t))}function Npe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function j2(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function ade(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,G2(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+G2(l,e),n=s}return i}function G2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Dr.exports.Type=ni();Dr.exports.Schema=nc();Dr.exports.FAILSAFE_SCHEMA=dI();Dr.exports.JSON_SCHEMA=GS();Dr.exports.CORE_SCHEMA=YS();Dr.exports.DEFAULT_SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_FULL_SCHEMA=Zp();Dr.exports.load=BI.load;Dr.exports.loadAll=BI.loadAll;Dr.exports.safeLoad=BI.safeLoad;Dr.exports.safeLoadAll=BI.safeLoadAll;Dr.exports.dump=aH.dump;Dr.exports.safeDump=aH.safeDump;Dr.exports.YAMLException=Ng();Dr.exports.MINIMAL_SCHEMA=dI();Dr.exports.SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_SCHEMA=Zp();Dr.exports.scan=QI("scan");Dr.exports.parse=QI("parse");Dr.exports.compose=QI("compose");Dr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",` +`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Tr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),Ir=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` +`},br="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,An=Ln([" "," "],!1,!1),b=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` +`,"\r"],!1,!1),Ll=`\r +`,bp=sr(`\r +`,!1),Sp=` +`,vp=sr(` +`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],Wi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return ln(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};peWi&&(Wi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Lr(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Lr(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Lr(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Lr(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Lr(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Lr(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=QA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=QA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function QA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Tr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=Ir()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=Qp()),D=Y,D===t&&(D=j,r.substr(j,2)===br?(Y=br,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Lr(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(b)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(bp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Ne(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var hn={};ct(hn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Xi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Xi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aBt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sBt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&tBt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rtj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((b$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var Qj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,bj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bj.exports=VCe});var xj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),Qme=GI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=bme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Mr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Mr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Mr("comp",r,e),r=Gme(r,e),Mr("caret",r),r=Hme(r,e),Mr("tildes",r),r=qme(r,e),Mr("xrange",r),r=Wme(r,e),Mr("stars",r),r),_i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Mr("tilde",r,i,n,s,o,a);let l;return _i(n)?l="":_i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:_i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Mr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Mr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Mr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Mr("caret",r,n,s,o,a,l);let c;return _i(s)?c="":_i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:_i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Mr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Mr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Mr("caret return",c),c})},qme=(r,e)=>(Mr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Mr("xRange",r,i,n,s,o,a,l);let c=_i(s),u=c||_i(o),g=u||_i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Mr("xRange return",i),i})},Wme=(r,e)=>(Mr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Mr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>(_i(i)?t="":_i(n)?t=`>=${i}.0.0${r?"-0":""}`:_i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,_i(c)?l="":_i(u)?l=`<${+c+1}.0.0-0`:_i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),Qv=mv(),bv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),QG=Cd(),bG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=QG,s=dEe,o=bG,a=">",l=">=";break;case"<":n=bG,s=CEe,o=QG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var PG=I((aet,xG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var QEe=wd(),bEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var Pv=fc();jG.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:Qj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:PG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(` +`);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),P=S.type==="Character";if(P){if(S.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var h=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(Cn=>{"use strict";var REe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),Pa=Rv(),WG="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+qG.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}Cn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=Qd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(P):Nv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var GEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findStartOfInputAnchor=rY;function iY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iY;function nY(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nY;function sY(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sY;function oY(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oY;function aY(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Tv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition +`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,We.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.MODES+`> property in its definition +`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,We.MODES)&&(0,Se.has)(r,We.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+We.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,We.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:tr.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}We.performRuntimeChecks=JEe;function WEe(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[ko]===tr.Lexer.NA}),a=uY(t);return e&&(0,Se.forEach)(o,function(l){var c=lY(l,a);if(c!==!1){var u=cY(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:tr.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}We.performWarningRuntimeChecks=WEe;function zEe(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}We.cloneEmptyGroups=zEe;function Ov(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}We.isCustomPattern=Ov;function AY(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}We.isShortPattern=AY;We.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Qd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,rr.isArray)(e)?(s={modes:{}},s.modes[Zs.DEFAULT_MODE]=(0,rr.cloneArr)(e),s[Zs.DEFAULT_MODE]=Zs.DEFAULT_MODE):(o=!1,s=(0,rr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,rr.forEach)(s.modes,function(u,g){s.modes[g]=(0,rr.reject)(u,function(h){return(0,rr.isUndefined)(h)})});var a=(0,rr.keys)(s.modes);if((0,rr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.validatePatterns)(u,a))}),(0,rr.isEmpty)(i.lexerDefinitionErrors)){(0,eIe.augmentTokenTypes)(u);var h;i.TRACE_INIT("analyzeTokenTypes",function(){h=(0,Zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=h.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=h.charCodeToPatternIdxToConfig,i.emptyGroups=(0,rr.merge)(i.emptyGroups,h.emptyGroups),i.hasCustom=h.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=h.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,rr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,rr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,rr.forEach)(i.lexerDefinitionWarning,function(u){(0,rr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Zs.SUPPORT_STICKY?(i.chopInput=rr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=rr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=rr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=rr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=rr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,rr.reduce)(i.canModeBeOptimized,function(g,h,p){return h===!1&&g.push(p),g},[]);if(t.ensureOptimizations&&!(0,rr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;qc.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Tr=void 0,ti=void 0;O.lastIndex=0;do Tr=O.test(c),Tr===!0&&(ti=O.lastIndex-1,mt++);while(Tr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",QY="longer_alt",bY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,QY)&&(t.LONGER_ALT=r[QY]),(0,_s.has)(r,bY)&&(t.LINE_BREAKS=r[bY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var mn=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),En=mn(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=mn(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),wr=mn(),CIe=$g();function mIe(r){return r instanceof wr.Alternative||r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionMandatory||r instanceof wr.RepetitionMandatoryWithSeparator||r instanceof wr.RepetitionWithSeparator||r instanceof wr.Terminal||r instanceof wr.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionWithSeparator;return t?!0:r instanceof wr.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof wr.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof wr.AbstractProduction?(r instanceof wr.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof wr.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof wr.NonTerminal)return"SUBRULE";if(r instanceof wr.Option)return"OPTION";if(r instanceof wr.Alternation)return"OR";if(r instanceof wr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof wr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof wr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof wr.Repetition)return"MANY";if(r instanceof wr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=mn(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),YY=Kt(),qY=Jv(),bIe=mn(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),xIe=Kt(),$s=Kt(),Wv=mn(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,$s.reduce)(e,function(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences: +`+g.join(` +`);return o+h+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,$s.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,$s.map)(e,function(u){return"["+(0,$s.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,$s.first)(e),s=n.idx,o=(0,VY.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,$s.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,$s.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,VY.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=xIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var PIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Rr=>{"use strict";var Ic=Rr&&Rr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Rr,"__esModule",{value:!0});Rr.nextPossibleTokensAfter=Rr.possiblePathsFrom=Rr.NextTerminalAfterAtLeastOneSepWalker=Rr.NextTerminalAfterAtLeastOneWalker=Rr.NextTerminalAfterManySepWalker=Rr.NextTerminalAfterManyWalker=Rr.AbstractNextTerminalAfterProductionWalker=Rr.NextAfterTokenWalker=Rr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=mn(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Rr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Rr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Rr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Rr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=mn(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Br=Kt(),No=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=mn(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Br.every)(o,Br.isEmpty)&&(a=(0,Br.map)(r,function(p){return fq(p,i)}),l=(0,Br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Br.map)(r,function(p){return dq(p,i)}),h=(0,Br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Br.isEmpty)((0,Br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Br.forEach)(l,function(u){var g=[c];(0,Br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(o,a,l){var c=(0,Br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(In=>{"use strict";var Nd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}In.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);In.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);In.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);In.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);In.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var xye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Nye=rx(),Tye=mn(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var xr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=NA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,xr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,xr.isArray)(e)){if((0,xr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,xr.isArray)(e))this.tokensMap=(0,xr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,xr.has)(e,"modes")&&(0,xr.every)((0,xr.flatten)((0,xr.values)(e.modes)),Ld.isTokenType)){var i=(0,xr.flatten)((0,xr.values)(e.modes)),n=(0,xr.uniq)(i);this.tokensMap=(0,xr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,xr.isObject)(e))this.tokensMap=(0,xr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,xr.every)((0,xr.values)(e),function(o){return(0,xr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,xr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,xr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,xr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,xr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,xr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var yn=Kt(),Lo=mn(),Gye=Qd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Yye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var $i=Kt(),_ye=zY(),lJ=NA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,$i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,$i.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,$i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,$i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,$i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,$i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,$i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,$i.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,$i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,$i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,$i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,$i.isEmpty)(e.definitionErrors))throw t=(0,$i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();hr.Parser=ky;(0,lwe.applyMixins)(ky,[$ye.Recoverable,ewe.LooksAhead,twe.TreeBuilder,rwe.LexerAdapter,nwe.RecognizerEngine,iwe.RecognizerApi,swe.ErrorHandler,owe.ContentAssist,awe.GastRecorder,Awe.PerformanceTracer]);var gwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,$i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);hr.CstParser=gwe;var fwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,$i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);hr.EmbeddedActionsParser=fwe});var hJ=I(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.createSyntaxDiagramsCode=void 0;var fJ=kv();function hwe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` + +
+
+ + + diff --git a/packages/poc-dnd-line/package.json b/packages/poc-dnd-line/package.json new file mode 100644 index 000000000..995a547fc --- /dev/null +++ b/packages/poc-dnd-line/package.json @@ -0,0 +1,16 @@ +{ + "name": "@datamapper-poc/poc-dnd-line", + "version": "0.0.1", + "scripts": { + "start": "vite", + "build": "tsc && vite build --config vite.config.js" + }, + "dependencies": { + "@patternfly/react-core": "^5.2.0" + }, + "devDependencies": { + "@types/react": "^18.2.61", + "typescript": "^5.3.3", + "vite": "^5.1.4" + } +} diff --git a/packages/poc-dnd-line/src/DocumentField.tsx b/packages/poc-dnd-line/src/DocumentField.tsx new file mode 100644 index 000000000..cd9e551cd --- /dev/null +++ b/packages/poc-dnd-line/src/DocumentField.tsx @@ -0,0 +1,36 @@ +import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; +import { FunctionComponent, useCallback, useState } from 'react'; + +type DocumentFieldProps = { + field: any; + initialExpanded?: boolean; +}; +export const DocumentField: FunctionComponent = ({ field, initialExpanded = false }) => { + const [isExpanded, setIsExpanded] = useState(initialExpanded); + + const renderField = useCallback( + (field: any) => { + return ( + + {field.fields && field.fields.length !== 0 ? ( + <> + setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> + {field.name} + + + {field.fields.map((f: any) => ( + + ))} + + + ) : ( + {field.name} + )} + + ); + }, + [isExpanded], + ); + + return renderField(field); +}; diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx new file mode 100644 index 000000000..e061a9f03 --- /dev/null +++ b/packages/poc-dnd-line/src/SourceTarget.tsx @@ -0,0 +1,21 @@ +import { Accordion, Split, SplitItem } from '@patternfly/react-core'; +import { doc } from './data'; +import { DocumentField } from './DocumentField'; + +export const SourceTarget: React.FunctionComponent = () => { + return ( + + + + + + + draw lines here + + + + + + + ); +}; diff --git a/packages/poc-dnd-line/src/data.ts b/packages/poc-dnd-line/src/data.ts new file mode 100644 index 000000000..93689b017 --- /dev/null +++ b/packages/poc-dnd-line/src/data.ts @@ -0,0 +1,8 @@ +export const doc = { + name: 'doc1', + fields: [ + { name: 'field1' }, + { name: 'field2', fields: [{ name: 'field1' }, { name: 'field2' }, { name: 'field3' }] }, + { name: 'field3' }, + ], +}; diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx new file mode 100644 index 000000000..ed65f2d16 --- /dev/null +++ b/packages/poc-dnd-line/src/main.tsx @@ -0,0 +1,8 @@ +import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first +import { createRoot } from 'react-dom/client'; +import { DnDCodeSample } from './dnd'; +import { SourceTarget } from './SourceTarget'; + +const container = document.getElementById('root'); +const root = createRoot(container!); +root.render(); diff --git a/packages/poc-dnd-line/tsconfig.json b/packages/poc-dnd-line/tsconfig.json new file mode 100644 index 000000000..129f35107 --- /dev/null +++ b/packages/poc-dnd-line/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + /* Typings */ + "types": [ + "@testing-library/jest-dom", + "@types/jest", + "@types/node", + ] + }, + "include": ["src/**/*"], + "exclude": ["**/_bk_atlasmap/**/*"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/poc-dnd-line/tsconfig.node.json b/packages/poc-dnd-line/tsconfig.node.json new file mode 100644 index 000000000..c7f60c62b --- /dev/null +++ b/packages/poc-dnd-line/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.js"] +} diff --git a/packages/poc-dnd-line/vite.config.js b/packages/poc-dnd-line/vite.config.js new file mode 100644 index 000000000..13de7eb40 --- /dev/null +++ b/packages/poc-dnd-line/vite.config.js @@ -0,0 +1,19 @@ +import react from '@vitejs/plugin-react'; +import circleDependency from 'vite-plugin-circular-dependency'; +import { defineConfig } from 'vite'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + react(), + circleDependency({ + outputFilePath: './circleDep', + }), + ], + build: { + outDir: './dist', + sourcemap: true, + emptyOutDir: true, + }, + base: './', +}); diff --git a/packages/ui/src/components/documents/TargetDocument.tsx b/packages/ui/src/components/documents/TargetDocument.tsx index 0d2474ea7..d895a73b6 100644 --- a/packages/ui/src/components/documents/TargetDocument.tsx +++ b/packages/ui/src/components/documents/TargetDocument.tsx @@ -1,62 +1,35 @@ import { IDocument } from '../../models'; import { FunctionComponent } from 'react'; -import { Document } from '.'; +import { Document, Tree } from '.'; import { DocumentFooter } from './DocumentFooter'; +import { useDataMapperContext } from '../../hooks'; +import { DeleteDocumentButton } from './DeleteDocumentButton'; +import { TraverseFields } from '../fields'; +import { + TARGETS_FIELD_ID_PREFIX, + TARGETS_HEIGHT_BOUNDARY_ID, + TARGETS_WIDTH_BOUNDARY_ID, +} from '../../layout/views/sourceTarget/constants'; + export const TargetDocument: FunctionComponent<{ documentModel: IDocument }> = ({ documentModel }) => { + const { showTypes } = useDataMapperContext(); + const onDeleteDocument = (_id: string) => { + alert('not yet implemented'); + }; return ( Target document type: {documentModel.type} : undefined} - actions={ - documentModel.type === DocumentType.CSV - ? [ - onCaptureDocumentID && ( - onCaptureDocumentID(documentModel.id)} - key={'capture-tgt-csv-document-id'} - /> - ), - onEditCSVParams && ( - onEditCSVParams(documentModel.id, false)} - key={'on-edit-tgt-csv-params'} - /> - ), - onDeleteDocument && ( - onDeleteDocument(documentModel.id)} - key={'delete-tgt-csv-document'} - /> - ), - ] - : [ - onCaptureDocumentID && ( - onCaptureDocumentID(documentModel.id)} - key={'capture-tgt-document-id'} - /> - ), - onChangeDocumentName && ( - onChangeDocumentName(documentModel.id, documentModel.name)} - key={'change-tgt-document-name'} - /> - ), - onDeleteDocument && ( - onDeleteDocument(documentModel.id)} - key={'delete-tgt-documents'} - /> - ), - ] - } + actions={[ + onDeleteDocument && ( + onDeleteDocument(documentModel.id)} + key={'delete-tgt-documents'} + /> + ), + ]} noPadding={true} > diff --git a/yarn.lock b/yarn.lock index ce19f6e85..e18e2e04a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1533,6 +1533,17 @@ __metadata: languageName: node linkType: hard +"@datamapper-poc/poc-dnd-line@workspace:packages/poc-dnd-line": + version: 0.0.0-use.local + resolution: "@datamapper-poc/poc-dnd-line@workspace:packages/poc-dnd-line" + dependencies: + "@patternfly/react-core": ^5.2.0 + "@types/react": ^18.2.61 + typescript: ^5.3.3 + vite: ^5.1.4 + languageName: unknown + linkType: soft + "@datamapper-poc/ui@workspace:packages/ui": version: 0.0.0-use.local resolution: "@datamapper-poc/ui@workspace:packages/ui" @@ -3748,6 +3759,17 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:^18.2.61": + version: 18.2.61 + resolution: "@types/react@npm:18.2.61" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: a100c09bc0d6d1a0a42b3fa0944b71d209b5adea6515fc21109972ec3267185372cc416c0467b1998afce6b90fc80f4c0029b5d975afb0b3070d864c7a924a5e + languageName: node + linkType: hard + "@types/scheduler@npm:*": version: 0.16.8 resolution: "@types/scheduler@npm:0.16.8" @@ -12957,7 +12979,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.12": +"vite@npm:^5.0.12, vite@npm:^5.1.4": version: 5.1.4 resolution: "vite@npm:5.1.4" dependencies: From 4fd6cc2cf9e0f6094db3333ed5907acbc58637c4 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 29 Feb 2024 21:33:21 -0500 Subject: [PATCH 042/471] trying dndkit --- packages/poc-dnd-line/package.json | 5 ++- packages/poc-dnd-line/src/DocumentField.tsx | 35 ++++++++++++++++-- packages/poc-dnd-line/src/main.tsx | 8 +++-- yarn.lock | 39 +++++++++++++++++++++ 4 files changed, 81 insertions(+), 6 deletions(-) diff --git a/packages/poc-dnd-line/package.json b/packages/poc-dnd-line/package.json index 995a547fc..8ae87cf95 100644 --- a/packages/poc-dnd-line/package.json +++ b/packages/poc-dnd-line/package.json @@ -6,7 +6,10 @@ "build": "tsc && vite build --config vite.config.js" }, "dependencies": { - "@patternfly/react-core": "^5.2.0" + "@dnd-kit/core": "^6.1.0", + "@patternfly/react-core": "^5.2.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { "@types/react": "^18.2.61", diff --git a/packages/poc-dnd-line/src/DocumentField.tsx b/packages/poc-dnd-line/src/DocumentField.tsx index cd9e551cd..df547a05c 100644 --- a/packages/poc-dnd-line/src/DocumentField.tsx +++ b/packages/poc-dnd-line/src/DocumentField.tsx @@ -1,5 +1,6 @@ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; import { FunctionComponent, useCallback, useState } from 'react'; +import { useDraggable, useDroppable } from '@dnd-kit/core'; type DocumentFieldProps = { field: any; @@ -7,7 +8,25 @@ type DocumentFieldProps = { }; export const DocumentField: FunctionComponent = ({ field, initialExpanded = false }) => { const [isExpanded, setIsExpanded] = useState(initialExpanded); - + const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ + id: 'droppable', + }); + const droppableStyle = { + color: isOver ? 'green' : undefined, + }; + const { + attributes, + listeners, + setNodeRef: setDraggableNodeRef, + transform, + } = useDraggable({ + id: 'draggable', + }); + const draggableStyle = transform + ? { + transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, + } + : undefined; const renderField = useCallback( (field: any) => { return ( @@ -15,7 +34,11 @@ export const DocumentField: FunctionComponent = ({ field, in {field.fields && field.fields.length !== 0 ? ( <> setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> - {field.name} +
+
+ {field.name} +
+
{field.fields.map((f: any) => ( @@ -24,7 +47,13 @@ export const DocumentField: FunctionComponent = ({ field, in ) : ( - {field.name} + +
+
+ {field.name} +
+
+
)} ); diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx index ed65f2d16..c18124082 100644 --- a/packages/poc-dnd-line/src/main.tsx +++ b/packages/poc-dnd-line/src/main.tsx @@ -1,8 +1,12 @@ import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first import { createRoot } from 'react-dom/client'; -import { DnDCodeSample } from './dnd'; import { SourceTarget } from './SourceTarget'; +import { DndContext } from '@dnd-kit/core'; const container = document.getElementById('root'); const root = createRoot(container!); -root.render(); +root.render( + + + , +); diff --git a/yarn.lock b/yarn.lock index e18e2e04a..c431fc5cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1537,8 +1537,11 @@ __metadata: version: 0.0.0-use.local resolution: "@datamapper-poc/poc-dnd-line@workspace:packages/poc-dnd-line" dependencies: + "@dnd-kit/core": ^6.1.0 "@patternfly/react-core": ^5.2.0 "@types/react": ^18.2.61 + react: ^18.2.0 + react-dom: ^18.2.0 typescript: ^5.3.3 vite: ^5.1.4 languageName: unknown @@ -1614,6 +1617,42 @@ __metadata: languageName: node linkType: hard +"@dnd-kit/accessibility@npm:^3.1.0": + version: 3.1.0 + resolution: "@dnd-kit/accessibility@npm:3.1.0" + dependencies: + tslib: ^2.0.0 + peerDependencies: + react: ">=16.8.0" + checksum: fcb88c961e2f4c226ab575bc4a13712419884bb0f60761befcaa23bcb6c9939dc2cac6633416f2a07baee9a8830350c6df444039332408cdaaf27cad17c6b64b + languageName: node + linkType: hard + +"@dnd-kit/core@npm:^6.1.0": + version: 6.1.0 + resolution: "@dnd-kit/core@npm:6.1.0" + dependencies: + "@dnd-kit/accessibility": ^3.1.0 + "@dnd-kit/utilities": ^3.2.2 + tslib: ^2.0.0 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 3b8f46d2f4d2723abad4721c7bc4d1df2c4f6f26ce54673243666212cfa6f34f33e3255b53144a847da469dc736c966c19e4c45330f967ce8c01f8f878ec7f5b + languageName: node + linkType: hard + +"@dnd-kit/utilities@npm:^3.2.2": + version: 3.2.2 + resolution: "@dnd-kit/utilities@npm:3.2.2" + dependencies: + tslib: ^2.0.0 + peerDependencies: + react: ">=16.8.0" + checksum: 8a5015c2faa52760ab82a64287b2ac6a3d798867a1bca5ccbc1178560dbd9a1f9f1a21faea80f590ba1a4277c3eb7e7c4d3b4a39f1f32171bf6bc8174b370547 + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/babel-plugin@npm:11.11.0" From 9c84d6d13d9b65d872c1ba23ba120f9f3c79febb Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 1 Mar 2024 08:16:29 -0500 Subject: [PATCH 043/471] chore: poc-dnd-line: add a separate DNDKitTest to focus on dndkit apart from Accordion tree --- packages/poc-dnd-line/package.json | 3 +- packages/poc-dnd-line/src/DnDKitTest.tsx | 69 +++++++++++++++++++++ packages/poc-dnd-line/src/DocumentField.tsx | 43 +++++++------ packages/poc-dnd-line/src/main.tsx | 57 +++++++++++++++-- yarn.lock | 32 ++++++++++ 5 files changed, 180 insertions(+), 24 deletions(-) create mode 100644 packages/poc-dnd-line/src/DnDKitTest.tsx diff --git a/packages/poc-dnd-line/package.json b/packages/poc-dnd-line/package.json index 8ae87cf95..b929d5493 100644 --- a/packages/poc-dnd-line/package.json +++ b/packages/poc-dnd-line/package.json @@ -9,7 +9,8 @@ "@dnd-kit/core": "^6.1.0", "@patternfly/react-core": "^5.2.0", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.2" }, "devDependencies": { "@types/react": "^18.2.61", diff --git a/packages/poc-dnd-line/src/DnDKitTest.tsx b/packages/poc-dnd-line/src/DnDKitTest.tsx new file mode 100644 index 000000000..66f512d01 --- /dev/null +++ b/packages/poc-dnd-line/src/DnDKitTest.tsx @@ -0,0 +1,69 @@ +import { FunctionComponent, PropsWithChildren, useState } from 'react'; +import { DndContext, DragEndEvent, Over, UniqueIdentifier, useDraggable, useDroppable } from '@dnd-kit/core'; + +interface DroppableProps extends PropsWithChildren { + id: string; +} + +const Droppable: FunctionComponent = (props) => { + const { isOver, setNodeRef } = useDroppable({ + id: props.id, + }); + const style = { + color: isOver ? 'green' : undefined, + }; + + return ( +
+ {props.children} +
+ ); +}; + +interface DraggableProps extends PropsWithChildren { + id: string; +} +const Draggable: FunctionComponent = (props) => { + const { attributes, listeners, setNodeRef, transform } = useDraggable({ + id: props.id, + }); + const style = transform + ? { + transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, + } + : undefined; + + return ( + + ); +}; + +export const DnDKitTest: FunctionComponent = () => { + const containers = ['A', 'B', 'C']; + const [parent, setParent] = useState(null); + const draggableMarkup = Drag me; + + return ( + + {parent === null ? draggableMarkup : null} + + {containers.map((id) => ( + // We updated the Droppable component so it would accept an `id` + // prop and pass it to `useDroppable` + + {parent === id ? draggableMarkup : 'Drop here'} + + ))} + + ); + + function handleDragEnd(event: DragEndEvent) { + const { over } = event; + + // If the item is dropped over a container, set it as the parent + // otherwise reset the parent to `null` + setParent(over ? over.id : null); + } +}; diff --git a/packages/poc-dnd-line/src/DocumentField.tsx b/packages/poc-dnd-line/src/DocumentField.tsx index df547a05c..4923b205f 100644 --- a/packages/poc-dnd-line/src/DocumentField.tsx +++ b/packages/poc-dnd-line/src/DocumentField.tsx @@ -8,27 +8,28 @@ type DocumentFieldProps = { }; export const DocumentField: FunctionComponent = ({ field, initialExpanded = false }) => { const [isExpanded, setIsExpanded] = useState(initialExpanded); + const fieldId = field.name + Math.random(); const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ - id: 'droppable', + id: 'droppable-' + fieldId, }); - const droppableStyle = { - color: isOver ? 'green' : undefined, - }; const { attributes, listeners, setNodeRef: setDraggableNodeRef, transform, } = useDraggable({ - id: 'draggable', + id: 'draggable-' + fieldId, }); - const draggableStyle = transform - ? { - transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, - } - : undefined; const renderField = useCallback( (field: any) => { + const droppableStyle = { + color: isOver ? 'green' : undefined, + }; + const draggableStyle = transform + ? { + transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, + } + : undefined; return ( {field.fields && field.fields.length !== 0 ? ( @@ -40,25 +41,29 @@ export const DocumentField: FunctionComponent = ({ field, in
- + {field.fields.map((f: any) => ( - + ))} ) : ( - -
-
- {field.name} -
+
+
+ {field.name}
- +
)} ); }, - [isExpanded], + [attributes, fieldId, isExpanded, isOver, listeners, setDraggableNodeRef, setDroppableNodeRef, transform], ); return renderField(field); diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx index c18124082..6322eaf2b 100644 --- a/packages/poc-dnd-line/src/main.tsx +++ b/packages/poc-dnd-line/src/main.tsx @@ -1,12 +1,61 @@ import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first import { createRoot } from 'react-dom/client'; import { SourceTarget } from './SourceTarget'; -import { DndContext } from '@dnd-kit/core'; +import { DndContext, useDndMonitor } from '@dnd-kit/core'; +import { FunctionComponent } from 'react'; +import { Link, Route, BrowserRouter, Routes } from 'react-router-dom'; +import { DnDKitTest } from './DnDKitTest'; const container = document.getElementById('root'); const root = createRoot(container!); +const DnDMonitor: FunctionComponent = () => { + useDndMonitor({ + onDragStart(event) { + console.log('onDragStart:' + event); + }, + onDragMove(event) { + console.log('onDragMove:' + event); + }, + onDragOver(event) { + console.log('onDragOver:' + event); + }, + onDragEnd(event) { + console.log('onDragEnd:' + event); + }, + onDragCancel(event) { + console.log('onDragCancel:' + event); + }, + }); + return <>; +}; + +const Layout: FunctionComponent = () => ( + +); + root.render( - - - , + + + }> + + + + + } + /> + } /> + + , ); diff --git a/yarn.lock b/yarn.lock index c431fc5cf..058fe39ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1542,6 +1542,7 @@ __metadata: "@types/react": ^18.2.61 react: ^18.2.0 react-dom: ^18.2.0 + react-router-dom: ^6.22.2 typescript: ^5.3.3 vite: ^5.1.4 languageName: unknown @@ -2971,6 +2972,13 @@ __metadata: languageName: node linkType: hard +"@remix-run/router@npm:1.15.2": + version: 1.15.2 + resolution: "@remix-run/router@npm:1.15.2" + checksum: aac403791316d7f3a32b20621138a34ec0ffc62b32617a42a4e1c5390221eec6da9756032032e22ec1b1f3756758666f5dd7f03c5babd9171d4696f894ee3012 + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.1.0": version: 5.1.0 resolution: "@rollup/pluginutils@npm:5.1.0" @@ -11065,6 +11073,30 @@ __metadata: languageName: node linkType: hard +"react-router-dom@npm:^6.22.2": + version: 6.22.2 + resolution: "react-router-dom@npm:6.22.2" + dependencies: + "@remix-run/router": 1.15.2 + react-router: 6.22.2 + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + checksum: b4226d7f2640de5598bc0c02266301f43b55966481634b9225adeab0360ec1ff56f4cdebe20c7112470cb33c4f4e5b7ef81fc8a42c54126e52111b63c5bace74 + languageName: node + linkType: hard + +"react-router@npm:6.22.2": + version: 6.22.2 + resolution: "react-router@npm:6.22.2" + dependencies: + "@remix-run/router": 1.15.2 + peerDependencies: + react: ">=16.8" + checksum: adbf6afdd568fa746e1c16a90efcdeecb34d311bd7d8b14eec8df7bc0f972362cbe56ea5efa65de2ed62325389038ddf6e5c65b4c0e32d99fa58dc9132f9416e + languageName: node + linkType: hard + "react-sage@npm:^0.3.16": version: 0.3.16 resolution: "react-sage@npm:0.3.16" From 0b41996da586c4acec8f211e2515a185cf51ee81 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 4 Mar 2024 08:10:49 -0500 Subject: [PATCH 044/471] try react-topology - doesn't look fitting --- packages/poc-dnd-line/src/DnDKitTest.tsx | 25 +-- .../poc-dnd-line/src/ReactTopologyTest.tsx | 143 ++++++++++++++++++ packages/poc-dnd-line/src/SourceTarget.tsx | 30 ++-- packages/poc-dnd-line/src/main.tsx | 28 ++-- 4 files changed, 191 insertions(+), 35 deletions(-) create mode 100644 packages/poc-dnd-line/src/ReactTopologyTest.tsx diff --git a/packages/poc-dnd-line/src/DnDKitTest.tsx b/packages/poc-dnd-line/src/DnDKitTest.tsx index 66f512d01..8b5c6b046 100644 --- a/packages/poc-dnd-line/src/DnDKitTest.tsx +++ b/packages/poc-dnd-line/src/DnDKitTest.tsx @@ -1,5 +1,6 @@ import { FunctionComponent, PropsWithChildren, useState } from 'react'; -import { DndContext, DragEndEvent, Over, UniqueIdentifier, useDraggable, useDroppable } from '@dnd-kit/core'; +import { DndContext, DragEndEvent, UniqueIdentifier, useDraggable, useDroppable } from '@dnd-kit/core'; +import { Page } from '@patternfly/react-core'; interface DroppableProps extends PropsWithChildren { id: string; @@ -46,17 +47,19 @@ export const DnDKitTest: FunctionComponent = () => { const draggableMarkup = Drag me; return ( - - {parent === null ? draggableMarkup : null} + + + {parent === null ? draggableMarkup : null} - {containers.map((id) => ( - // We updated the Droppable component so it would accept an `id` - // prop and pass it to `useDroppable` - - {parent === id ? draggableMarkup : 'Drop here'} - - ))} - + {containers.map((id) => ( + // We updated the Droppable component so it would accept an `id` + // prop and pass it to `useDroppable` + + {parent === id ? draggableMarkup : 'Drop here'} + + ))} + + ); function handleDragEnd(event: DragEndEvent) { diff --git a/packages/poc-dnd-line/src/ReactTopologyTest.tsx b/packages/poc-dnd-line/src/ReactTopologyTest.tsx new file mode 100644 index 000000000..35df7920f --- /dev/null +++ b/packages/poc-dnd-line/src/ReactTopologyTest.tsx @@ -0,0 +1,143 @@ +import { + GridLayout, + ComponentFactory, + DefaultEdge, + DefaultGroup, + DefaultNode, + EdgeModel, + Graph, + GraphComponent, + Layout, + LayoutFactory, + Model, + ModelKind, + Node, + NodeModel, + NodeShape, + SELECTION_EVENT, + TopologyView, + Visualization, + VisualizationProvider, + VisualizationSurface, +} from '@patternfly/react-topology'; +import { FunctionComponent, useCallback, useMemo, useState } from 'react'; +import { Page, ToolbarItem } from '@patternfly/react-core'; +import { doc } from './data'; + +const baselineLayoutFactory: LayoutFactory = (type: string, graph: Graph): Layout | undefined => { + return new GridLayout(graph, { + groupDistance: 0, + collideDistance: 0, + }); +}; + +const baselineComponentFactory: ComponentFactory = (kind: ModelKind, type: string) => { + switch (type) { + case 'group': + return CustomGroup; + default: + switch (kind) { + case ModelKind.graph: + return GraphComponent; + case ModelKind.node: + return CustomNode; + case ModelKind.edge: + return DefaultEdge; + default: + return undefined; + } + } +}; + +const NODE_SHAPE = NodeShape.rect; +const NODE_WIDTH = 200; +const NODE_HEIGHT = 75; + +interface FieldNodeModel extends NodeModel {} + +const EDGES: EdgeModel[] = []; + +interface CustomNodeProps { + element: Node; +} + +const CustomNode: FunctionComponent = ({ element }) => { + return ; +}; + +interface CustomGroupProps { + element: Node; +} + +const CustomGroup: FunctionComponent = ({ element }) => { + return ; +}; + +export const ReactTopologyTest: FunctionComponent = () => { + const [selectedIds, setSelectedIds] = useState([]); + + const populateChildrenFromField = useCallback( + (field: any, nodes: FieldNodeModel[], parentPath: string): FieldNodeModel => { + const path = parentPath + '/' + field.name; + const childNodes = []; + if (field.fields && field.fields.length !== 0) { + for (const child of field.fields) { + childNodes.push(populateChildrenFromField(child, nodes, path)); + } + nodes.push(...childNodes); + } + return { + id: path, + group: childNodes.length > 0, + type: childNodes.length > 0 ? 'group' : 'node', + children: childNodes.length > 0 ? childNodes.map((n) => n.id) : undefined, + label: field.name, + width: NODE_WIDTH, + height: NODE_HEIGHT, + shape: NODE_SHAPE, + }; + }, + [], + ); + + const documentNodes: FieldNodeModel[] = useMemo(() => { + const answer: FieldNodeModel[] = []; + const source = populateChildrenFromField(doc, answer, 'Source:/'); + const target = populateChildrenFromField(doc, answer, 'Target:/'); + answer.push(source, target); + return answer; + }, [populateChildrenFromField]); + + const controller = useMemo(() => { + const model: Model = { + nodes: documentNodes, + edges: EDGES, + graph: { + id: 'g1', + type: 'graph', + layout: 'Grid', + }, + }; + + const newController = new Visualization(); + newController.registerLayoutFactory(baselineLayoutFactory); + newController.registerComponentFactory(baselineComponentFactory); + + newController.addEventListener(SELECTION_EVENT, setSelectedIds); + + newController.fromModel(model, false); + + return newController; + }, [documentNodes]); + + const contextToolbar = ; + return ( + + + + + + + + ); +}; diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx index e061a9f03..62e22fac4 100644 --- a/packages/poc-dnd-line/src/SourceTarget.tsx +++ b/packages/poc-dnd-line/src/SourceTarget.tsx @@ -1,21 +1,23 @@ -import { Accordion, Split, SplitItem } from '@patternfly/react-core'; +import { Accordion, Page, Split, SplitItem } from '@patternfly/react-core'; import { doc } from './data'; import { DocumentField } from './DocumentField'; export const SourceTarget: React.FunctionComponent = () => { return ( - - - - - - - draw lines here - - - - - - + + + + + + + + draw lines here + + + + + + + ); }; diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx index 6322eaf2b..53ead5796 100644 --- a/packages/poc-dnd-line/src/main.tsx +++ b/packages/poc-dnd-line/src/main.tsx @@ -5,6 +5,8 @@ import { DndContext, useDndMonitor } from '@dnd-kit/core'; import { FunctionComponent } from 'react'; import { Link, Route, BrowserRouter, Routes } from 'react-router-dom'; import { DnDKitTest } from './DnDKitTest'; +import { ReactTopologyTest } from './ReactTopologyTest'; +import { Page } from '@patternfly/react-core'; const container = document.getElementById('root'); const root = createRoot(container!); @@ -30,16 +32,21 @@ const DnDMonitor: FunctionComponent = () => { }; const Layout: FunctionComponent = () => ( - + + + ); root.render( @@ -56,6 +63,7 @@ root.render( } /> } /> + } /> , ); From f747877888522855b8ee99e31532eaf7bb2e9bc7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 16:31:18 +0000 Subject: [PATCH 045/471] chore(deps): update dependency @types/node to v20.11.24 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 058fe39ac..f8f4dfafa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3732,11 +3732,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.21 - resolution: "@types/node@npm:20.11.21" + version: 20.11.24 + resolution: "@types/node@npm:20.11.24" dependencies: undici-types: ~5.26.4 - checksum: 6d32edc3ba61236d879ebb6aa8905602310a2dc6469113ed6e282d63c03b4b800bd17a10ae780e4ac2a92f1ad99ad44fe8aa14cac67f86389cb141a2477a2fee + checksum: b11a650e09e254f4725c94f226752b69949a9ac4a5e004e98f109437ac50b02df3ab4d12b2086722fedf2cb62e68b9e723abd3f358a7d7d90d741a0d3bee90c2 languageName: node linkType: hard From 1e2f9e62b097ebbf2fb2670c1ffe40ce6670118d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 01:25:21 +0000 Subject: [PATCH 046/471] chore(deps): update babel monorepo to v7.24.0 --- yarn.lock | 108 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 73 insertions(+), 35 deletions(-) diff --git a/yarn.lock b/yarn.lock index f8f4dfafa..2aecf70dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 @@ -47,25 +47,25 @@ __metadata: linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/core@npm:7.23.9" + version: 7.24.0 + resolution: "@babel/core@npm:7.24.0" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.23.5 "@babel/generator": ^7.23.6 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.23.9 - "@babel/parser": ^7.23.9 - "@babel/template": ^7.23.9 - "@babel/traverse": ^7.23.9 - "@babel/types": ^7.23.9 + "@babel/helpers": ^7.24.0 + "@babel/parser": ^7.24.0 + "@babel/template": ^7.24.0 + "@babel/traverse": ^7.24.0 + "@babel/types": ^7.24.0 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 634a511f74db52a5f5a283c1121f25e2227b006c095b84a02a40a9213842489cd82dc7d61cdc74e10b5bcd9bb0a4e28bab47635b54c7e2256d47ab57356e2a76 + checksum: 3124a8a1c550f3818a55dc6f621af9c580b4959bc780cce7220f671088c404830f41870573f5acf7f837878f8aa82e84675ea148a9852c1b053533cb899300d3 languageName: node linkType: hard @@ -234,6 +234,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/helper-plugin-utils@npm:7.24.0" + checksum: e2baa0eede34d2fa2265947042aa84d444aa48dc51e9feedea55b67fc1bc3ab051387e18b33ca7748285a6061390831ab82f8a2c767d08470b93500ec727e9b9 + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" @@ -319,14 +326,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/helpers@npm:7.23.9" +"@babel/helpers@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/helpers@npm:7.24.0" dependencies: - "@babel/template": ^7.23.9 - "@babel/traverse": ^7.23.9 - "@babel/types": ^7.23.9 - checksum: 2678231192c0471dbc2fc403fb19456cc46b1afefcfebf6bc0f48b2e938fdb0fef2e0fe90c8c8ae1f021dae5012b700372e4b5d15867f1d7764616532e4a6324 + "@babel/template": ^7.24.0 + "@babel/traverse": ^7.24.0 + "@babel/types": ^7.24.0 + checksum: 2c1d9547c7a6e5aa648d4f3959252f825d4176ee52ed5430d65e50e68a138776adfd87ff3c8f9719ea6cd36601e935936d006340770ad8282b8664770aca8e33 languageName: node linkType: hard @@ -350,6 +357,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/parser@npm:7.24.0" + bin: + parser: ./bin/babel-parser.js + checksum: 4a6afec49487a212e7a27345b0c090b56905efb62c0b3a1499b0a57a5b3bf43d9d1e99e31b137080eacc24dee659a29699740d0a6289999117c0d8c5a04bd68f + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" @@ -981,18 +997,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.0" dependencies: - "@babel/compat-data": ^7.23.3 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/compat-data": ^7.23.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 "@babel/plugin-transform-parameters": ^7.23.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 73fec495e327ca3959c1c03d07a621be09df00036c69fff0455af9a008291677ee9d368eec48adacdc6feac703269a649747568b4af4c4e9f134aa71cc5b378d + checksum: 8877b6a5493df0e36007286ea5e5e2305575346cf1b128049e7db3ff3861f2eb7eb0e8fa3e0b6334de27724253bf32b27e572b2c35dd93b02403476c306b9f5d languageName: node linkType: hard @@ -1293,12 +1309,12 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/preset-env@npm:7.23.9" + version: 7.24.0 + resolution: "@babel/preset-env@npm:7.24.0" dependencies: "@babel/compat-data": ^7.23.5 "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-validator-option": ^7.23.5 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 @@ -1351,7 +1367,7 @@ __metadata: "@babel/plugin-transform-new-target": ^7.23.3 "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 "@babel/plugin-transform-numeric-separator": ^7.23.4 - "@babel/plugin-transform-object-rest-spread": ^7.23.4 + "@babel/plugin-transform-object-rest-spread": ^7.24.0 "@babel/plugin-transform-object-super": ^7.23.3 "@babel/plugin-transform-optional-catch-binding": ^7.23.4 "@babel/plugin-transform-optional-chaining": ^7.23.4 @@ -1378,7 +1394,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 23a48468ba820c68ba34ea2c1dbc62fd2ff9cf858cfb69e159cabb0c85c72dc4c2266ce20ca84318d8742de050cb061e7c66902fbfddbcb09246afd248847933 + checksum: d9e894037382ce35be4b511034a9fb110003ca104f4f800e9b8f9c3b830999014c8314dcdaa3c89669e034784f7c81fe6851e2ff237805fef6479c7dff68d12c languageName: node linkType: hard @@ -1442,7 +1458,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.23.9, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.3.3": version: 7.23.9 resolution: "@babel/template@npm:7.23.9" dependencies: @@ -1453,9 +1469,20 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/traverse@npm:7.23.9" +"@babel/template@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/template@npm:7.24.0" + dependencies: + "@babel/code-frame": ^7.23.5 + "@babel/parser": ^7.24.0 + "@babel/types": ^7.24.0 + checksum: f257b003c071a0cecdbfceca74185f18fe62c055469ab5c1d481aab12abeebed328e67e0a19fd978a2a8de97b28953fa4bc3da6d038a7345fdf37923b9fcdec8 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/traverse@npm:7.24.0" dependencies: "@babel/code-frame": ^7.23.5 "@babel/generator": ^7.23.6 @@ -1463,11 +1490,11 @@ __metadata: "@babel/helper-function-name": ^7.23.0 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.23.9 - "@babel/types": ^7.23.9 + "@babel/parser": ^7.24.0 + "@babel/types": ^7.24.0 debug: ^4.3.1 globals: ^11.1.0 - checksum: a932f7aa850e158c00c97aad22f639d48c72805c687290f6a73e30c5c4957c07f5d28310c9bf59648e2980fe6c9d16adeb2ff92a9ca0f97fa75739c1328fc6c3 + checksum: 790cf14a6452575ceef767285bad0dd96d14b3640ed4e6a4ddb5b592e4e66020424bac21e4a4b965ac0d2fe9ed504fe3644748b1922fb8ac37c681cb435c3995 languageName: node linkType: hard @@ -1482,6 +1509,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/types@npm:7.24.0" + dependencies: + "@babel/helper-string-parser": ^7.23.4 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 4b574a37d490f621470ff36a5afaac6deca5546edcb9b5e316d39acbb20998e9c2be42f3fc0bf2b55906fc49ff2a5a6a097e8f5a726ee3f708a0b0ca93aed807 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" From 8d758f44553c3e88c278e7273215c16ef8c979ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 00:52:41 +0000 Subject: [PATCH 047/471] fix(deps): update @patternfly to v5.2.1 --- yarn.lock | 57 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2aecf70dd..bc7c57d4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2889,24 +2889,24 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0": - version: 5.2.0 - resolution: "@patternfly/react-core@npm:5.2.0" +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0, @patternfly/react-core@npm:^5.2.1": + version: 5.2.1 + resolution: "@patternfly/react-core@npm:5.2.1" dependencies: - "@patternfly/react-icons": ^5.2.0 - "@patternfly/react-styles": ^5.2.0 - "@patternfly/react-tokens": ^5.2.0 + "@patternfly/react-icons": ^5.2.1 + "@patternfly/react-styles": ^5.2.1 + "@patternfly/react-tokens": ^5.2.1 focus-trap: 7.5.2 react-dropzone: ^14.2.3 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 78a67e72c6180ec330c8a22ff990d855739195de41d96c0c52523354641345390bd295ba2ee1a14dd881b368d5b6d0a40edafe74b063f1ec0da78443e07cbe0c + checksum: 81135f23e4f42f49dcbe1bb40ee439813db450da67ab3f0651761905363e881e5d354ebed63762f19394692638b6c569309c6bc84afbc04fed5fe1577cdd4caa languageName: node linkType: hard -"@patternfly/react-icons@npm:^5.1.1, @patternfly/react-icons@npm:^5.2.0": +"@patternfly/react-icons@npm:^5.1.1": version: 5.2.0 resolution: "@patternfly/react-icons@npm:5.2.0" peerDependencies: @@ -2916,34 +2916,51 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-styles@npm:^5.1.1, @patternfly/react-styles@npm:^5.2.0": +"@patternfly/react-icons@npm:^5.2.1": + version: 5.2.1 + resolution: "@patternfly/react-icons@npm:5.2.1" + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: 2bc14d3a3de34c48816988b9be65429b9c4bd2edb28c3e82e8dd47cc4be031e30ce65b4987e00abfd09ed36b89637a6fdd19ee5c46b07ff701e8315201b7ca36 + languageName: node + linkType: hard + +"@patternfly/react-styles@npm:^5.1.1": version: 5.2.0 resolution: "@patternfly/react-styles@npm:5.2.0" checksum: ab38211d265c5fdcebf1c6d10503cca3fa87e7f5021021a61e0b1cf320f6f906eb7ae4279b5d7767cd657ddea4659d74b072b100416f8c6dfb485d4d31a3dc76 languageName: node linkType: hard +"@patternfly/react-styles@npm:^5.2.1": + version: 5.2.1 + resolution: "@patternfly/react-styles@npm:5.2.1" + checksum: fbc36df191fd1d75a1a9c390bfbe4884adc7b6556a2b30de9e848169df5541c946cde71f4a54db01873a21bce4a09e64f54ee722eb5d9bd6d8b1a77fc62ba141 + languageName: node + linkType: hard + "@patternfly/react-table@npm:^5.1.2": - version: 5.2.0 - resolution: "@patternfly/react-table@npm:5.2.0" + version: 5.2.1 + resolution: "@patternfly/react-table@npm:5.2.1" dependencies: - "@patternfly/react-core": ^5.2.0 - "@patternfly/react-icons": ^5.2.0 - "@patternfly/react-styles": ^5.2.0 - "@patternfly/react-tokens": ^5.2.0 + "@patternfly/react-core": ^5.2.1 + "@patternfly/react-icons": ^5.2.1 + "@patternfly/react-styles": ^5.2.1 + "@patternfly/react-tokens": ^5.2.1 lodash: ^4.17.19 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: d7a83c4baaf71ad7273be58f94fad0654f32ac0767d4a94711a36e2bfd7e93f0ce9b61adb57ff368a3176b3e0c1aae06c42c255a39a8fbad7721141104c0dcf2 + checksum: 0b11a03381a0ccaaefc0f178b680116ae80f949d51a34eaaaf10fc032f935719f2755d3186a32c94d04ee717731bbfe70ca5a412e76d31aba654a336b41b88e9 languageName: node linkType: hard -"@patternfly/react-tokens@npm:^5.2.0": - version: 5.2.0 - resolution: "@patternfly/react-tokens@npm:5.2.0" - checksum: cdb42955cfafe1a9b7adcb9d38258092126a85e08624b081b6cd10ea422d890c7786797dfa151a8213e5d394377c6cd85f86fbf5e425a2e813baff175ba2509a +"@patternfly/react-tokens@npm:^5.2.1": + version: 5.2.1 + resolution: "@patternfly/react-tokens@npm:5.2.1" + checksum: 2b95ad2088babc375f2ca38c36e8e9a1b38f1a2d26d716a10c61a8535a2fe32d34a61b787609e9e9b29e518dc2584261aa5d7a83f0cfbcfa9606942618d61eb9 languageName: node linkType: hard From 3a7b35e38496cec0c7bdd7ebae8600db1fd15bb4 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 4 Mar 2024 11:47:06 -0500 Subject: [PATCH 048/471] fix: Split XmlSchemaTS as a sub package Fixes: #20 --- packages/ui/package.json | 8 +- packages/ui/src/models/document.ts | 3 +- packages/ui/src/services/document.service.ts | 2 +- .../ui/src/util/xsd/XmlSchemaItemWithRef.ts | 5 - packages/xml-schema-ts/.lintstagedrc.json | 3 + .../src/util/xsd => xml-schema-ts}/README.md | 3 - packages/xml-schema-ts/babel.config.cjs | 8 + packages/xml-schema-ts/jest.config.js | 48 ++++++ packages/xml-schema-ts/jest.setup.ts | 20 +++ packages/xml-schema-ts/package.json | 48 ++++++ .../src}/DocumentFragmentNodeList.ts | 0 .../util/xsd => xml-schema-ts/src}/QName.ts | 0 .../src}/SchemaBuilder.ts | 2 +- .../xsd => xml-schema-ts/src}/SchemaKey.ts | 0 .../xsd => xml-schema-ts/src}/TypeReceiver.ts | 2 +- .../xsd => xml-schema-ts/src}/XmlSchema.ts | 0 .../src}/XmlSchemaAnnotated.ts | 0 .../src}/XmlSchemaAnyAttribute.ts | 0 .../src}/XmlSchemaCollection.test.ts | 0 .../src}/XmlSchemaCollection.ts | 0 .../src}/XmlSchemaContent.ts | 0 .../src}/XmlSchemaContentModel.ts | 0 .../src}/XmlSchemaContentProcessing.ts | 0 .../src}/XmlSchemaContentType.ts | 0 .../src}/XmlSchemaDerivationMethod.ts | 0 .../src}/XmlSchemaDocumentation.ts | 0 .../src}/XmlSchemaForm.ts | 0 .../src}/XmlSchemaGroup.ts | 0 .../xml-schema-ts/src/XmlSchemaItemWithRef.ts | 7 + .../src}/XmlSchemaItemWithRefBase.ts | 4 +- .../src}/XmlSchemaNotation.ts | 0 .../src}/XmlSchemaObject.ts | 2 +- .../src}/XmlSchemaType.ts | 0 .../xsd => xml-schema-ts/src}/XmlSchemaUse.ts | 0 .../src}/XmlSchemaXPath.ts | 0 .../src}/annotation/XmlSchemaAnnotation.ts | 0 .../annotation/XmlSchemaAnnotationItem.ts | 0 .../src}/annotation/XmlSchemaAppInfo.ts | 0 .../src}/annotation/XmlSchemaDocumentation.ts | 0 .../src}/attribute/XmlSchemaAttribute.ts | 0 .../src}/attribute/XmlSchemaAttributeGroup.ts | 0 .../XmlSchemaAttributeGroupMember.ts | 0 .../attribute/XmlSchemaAttributeGroupRef.ts | 0 .../attribute/XmlSchemaAttributeOrGroupRef.ts | 0 .../src}/complex/XmlSchemaComplexContent.ts | 0 .../XmlSchemaComplexContentExtension.ts | 0 .../XmlSchemaComplexContentRestriction.ts | 0 .../src}/complex/XmlSchemaComplexType.ts | 0 .../xsd => xml-schema-ts/src}/constants.ts | 0 .../constraint/XmlSchemaIdentityConstraint.ts | 0 .../src}/constraint/XmlSchemaKey.ts | 0 .../src}/constraint/XmlSchemaKeyref.ts | 0 .../src}/constraint/XmlSchemaUnique.ts | 0 .../DefaultExtensionDeserializer.ts | 0 .../extensions/DefaultExtensionSerializer.ts | 0 .../src}/extensions/ExtensionDeserializer.ts | 0 .../src}/extensions/ExtensionRegistry.ts | 0 .../src}/extensions/ExtensionSerializer.ts | 0 .../src}/external/XmlSchemaExternal.ts | 0 .../src}/external/XmlSchemaImport.ts | 0 .../src}/external/XmlSchemaInclude.ts | 0 .../src}/external/XmlSchemaRedefine.ts | 0 .../src}/facet/XmlSchemaEnumerationFacet.ts | 0 .../src}/facet/XmlSchemaFacet.ts | 0 .../src}/facet/XmlSchemaFacetConstructor.ts | 0 .../facet/XmlSchemaFractionDigitsFacet.ts | 0 .../src}/facet/XmlSchemaLengthFacet.ts | 0 .../src}/facet/XmlSchemaMaxExclusiveFacet.ts | 0 .../src}/facet/XmlSchemaMaxInclusiveFacet.ts | 0 .../src}/facet/XmlSchemaMaxLengthFacet.ts | 0 .../src}/facet/XmlSchemaMinExclusiveFacet.ts | 0 .../src}/facet/XmlSchemaMinInclusiveFacet.ts | 0 .../src}/facet/XmlSchemaMinLengthFacet.ts | 0 .../src}/facet/XmlSchemaNumericFacet.ts | 0 .../src}/facet/XmlSchemaPatternFacet.ts | 0 .../src}/facet/XmlSchemaTotalDigitsFacet.ts | 0 .../src}/facet/XmlSchemaWhiteSpaceFacet.ts | 0 packages/xml-schema-ts/src/index.ts | 3 + .../src}/particle/XmlSchemaAll.ts | 0 .../src}/particle/XmlSchemaAllMember.ts | 0 .../src}/particle/XmlSchemaAny.ts | 0 .../src}/particle/XmlSchemaChoice.ts | 0 .../src}/particle/XmlSchemaChoiceMember.ts | 0 .../src}/particle/XmlSchemaElement.ts | 0 .../src}/particle/XmlSchemaGroupParticle.ts | 0 .../src}/particle/XmlSchemaGroupRef.ts | 0 .../src}/particle/XmlSchemaParticle.ts | 0 .../src}/particle/XmlSchemaSequence.ts | 0 .../src}/particle/XmlSchemaSequenceMember.ts | 0 .../src}/resolver/CollectionURIResolver.ts | 0 .../src}/resolver/DefaultURIResolver.ts | 0 .../src}/resolver/URIResolver.ts | 0 .../src}/simple/XmlSchemaSimpleContent.ts | 0 .../simple/XmlSchemaSimpleContentExtension.ts | 0 .../XmlSchemaSimpleContentRestriction.ts | 0 .../src}/simple/XmlSchemaSimpleType.ts | 0 .../src}/simple/XmlSchemaSimpleTypeContent.ts | 0 .../src}/simple/XmlSchemaSimpleTypeList.ts | 0 .../simple/XmlSchemaSimpleTypeRestriction.ts | 0 .../src}/simple/XmlSchemaSimpleTypeUnion.ts | 0 .../src}/utils/NamespaceContext.ts | 0 .../src}/utils/NamespaceContextOwner.ts | 0 .../src}/utils/NamespacePrefixList.ts | 0 .../src}/utils/NodeNamespaceContext.ts | 0 .../src}/utils/ObjectMap.ts | 0 .../src}/utils/PrefixCollector.ts | 0 .../src}/utils/XDOMUtil.ts | 0 .../src}/utils/XmlSchemaNamed.ts | 5 +- .../src}/utils/XmlSchemaNamedImpl.ts | 0 .../src}/utils/XmlSchemaNamedType.ts | 0 .../src}/utils/XmlSchemaNamedWithForm.ts | 2 +- .../src}/utils/XmlSchemaNamedWithFormImpl.ts | 0 .../src}/utils/XmlSchemaObjectBase.ts | 0 .../src}/utils/XmlSchemaRef.ts | 0 .../src}/utils/XmlSchemaRefBase.ts | 0 .../src}/xml-parser.test.ts | 8 +- packages/xml-schema-ts/tsconfig.cjs.json | 13 ++ packages/xml-schema-ts/tsconfig.esm.json | 13 ++ packages/xml-schema-ts/tsconfig.json | 28 ++++ .../ExampleOrder.xml | 0 .../ShipOrder.xsd | 0 .../hello.xsd | 0 .../hello.xsl | 0 yarn.lock | 145 +++++++++++++++++- 124 files changed, 347 insertions(+), 35 deletions(-) delete mode 100644 packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts create mode 100644 packages/xml-schema-ts/.lintstagedrc.json rename packages/{ui/src/util/xsd => xml-schema-ts}/README.md (94%) create mode 100644 packages/xml-schema-ts/babel.config.cjs create mode 100644 packages/xml-schema-ts/jest.config.js create mode 100644 packages/xml-schema-ts/jest.setup.ts create mode 100644 packages/xml-schema-ts/package.json rename packages/{ui/src/util/xsd => xml-schema-ts/src}/DocumentFragmentNodeList.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/QName.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/SchemaBuilder.ts (99%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/SchemaKey.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/TypeReceiver.ts (59%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchema.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaAnnotated.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaAnyAttribute.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaCollection.test.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaCollection.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaContent.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaContentModel.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaContentProcessing.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaContentType.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaDerivationMethod.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaDocumentation.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaForm.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaGroup.ts (100%) create mode 100644 packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaItemWithRefBase.ts (77%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaNotation.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaObject.ts (92%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaType.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaUse.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/XmlSchemaXPath.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/annotation/XmlSchemaAnnotation.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/annotation/XmlSchemaAnnotationItem.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/annotation/XmlSchemaAppInfo.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/annotation/XmlSchemaDocumentation.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/attribute/XmlSchemaAttribute.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/attribute/XmlSchemaAttributeGroup.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/attribute/XmlSchemaAttributeGroupMember.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/attribute/XmlSchemaAttributeGroupRef.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/attribute/XmlSchemaAttributeOrGroupRef.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/complex/XmlSchemaComplexContent.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/complex/XmlSchemaComplexContentExtension.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/complex/XmlSchemaComplexContentRestriction.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/complex/XmlSchemaComplexType.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/constants.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/constraint/XmlSchemaIdentityConstraint.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/constraint/XmlSchemaKey.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/constraint/XmlSchemaKeyref.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/constraint/XmlSchemaUnique.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/extensions/DefaultExtensionDeserializer.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/extensions/DefaultExtensionSerializer.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/extensions/ExtensionDeserializer.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/extensions/ExtensionRegistry.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/extensions/ExtensionSerializer.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/external/XmlSchemaExternal.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/external/XmlSchemaImport.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/external/XmlSchemaInclude.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/external/XmlSchemaRedefine.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaEnumerationFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaFacetConstructor.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaFractionDigitsFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaLengthFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaMaxExclusiveFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaMaxInclusiveFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaMaxLengthFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaMinExclusiveFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaMinInclusiveFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaMinLengthFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaNumericFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaPatternFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaTotalDigitsFacet.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/facet/XmlSchemaWhiteSpaceFacet.ts (100%) create mode 100644 packages/xml-schema-ts/src/index.ts rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaAll.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaAllMember.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaAny.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaChoice.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaChoiceMember.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaElement.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaGroupParticle.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaGroupRef.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaParticle.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaSequence.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/particle/XmlSchemaSequenceMember.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/resolver/CollectionURIResolver.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/resolver/DefaultURIResolver.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/resolver/URIResolver.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleContent.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleContentExtension.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleContentRestriction.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleType.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleTypeContent.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleTypeList.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleTypeRestriction.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/simple/XmlSchemaSimpleTypeUnion.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/NamespaceContext.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/NamespaceContextOwner.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/NamespacePrefixList.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/NodeNamespaceContext.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/ObjectMap.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/PrefixCollector.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XDOMUtil.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaNamed.ts (89%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaNamedImpl.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaNamedType.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaNamedWithForm.ts (56%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaNamedWithFormImpl.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaObjectBase.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaRef.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/utils/XmlSchemaRefBase.ts (100%) rename packages/{ui/src/util/xsd => xml-schema-ts/src}/xml-parser.test.ts (76%) create mode 100644 packages/xml-schema-ts/tsconfig.cjs.json create mode 100644 packages/xml-schema-ts/tsconfig.esm.json create mode 100644 packages/xml-schema-ts/tsconfig.json rename {packages/ui/test-resources => test-resources}/ExampleOrder.xml (100%) rename {packages/ui/test-resources => test-resources}/ShipOrder.xsd (100%) rename {packages/ui/test-resources => test-resources}/hello.xsd (100%) rename {packages/ui/test-resources => test-resources}/hello.xsl (100%) diff --git a/packages/ui/package.json b/packages/ui/package.json index b7a24e9b1..f08d3d677 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -41,13 +41,13 @@ "lint:style:fix": "yarn lint:style --fix" }, "dependencies": { + "@datamapper-poc/xml-schema-ts": "workspace:*", "@patternfly/react-core": "^5.1.2", "@patternfly/react-table": "^5.1.2", "@patternfly/react-topology": "^5.1.0", "@types/pako": "^2.0.3", "d3-scale": "^4.0.2", "d3-shape": "^3.2.0", - "fast-xml-parser": "^4.3.4", "file-saver": "^2.0.5", "loglevel": "^1.9.1", "pako": "^2.1.0", @@ -68,7 +68,7 @@ "@babel/preset-typescript": "^7.23.3", "@storybook/addon-actions": "^7.6.12", "@storybook/addon-knobs": "^7.0.2", - "@testing-library/jest-dom": "^6.3.0", + "@testing-library/jest-dom": "^6.4.2", "@types/jest": "^29.5.12", "@types/node": "^20.11.6", "@types/react": "^18.2.53", @@ -76,10 +76,10 @@ "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^7.0.0", "@vitejs/plugin-react": "^4.2.1", - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.6.3", + "eslint-plugin-jest": "^27.9.0", "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.5", diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index 6f89e4fe0..13b8f693b 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,7 +1,6 @@ import { IDocument, IField } from './api'; import { generateRandomId } from '../util'; -import { XmlSchema } from '../util/xsd/XmlSchema'; -import { XmlSchemaElement } from '../util/xsd/particle/XmlSchemaElement'; +import { XmlSchema, XmlSchemaElement } from '@datamapper-poc/xml-schema-ts'; abstract class Document implements IDocument { fields: IField[] = []; diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index e3670f983..dc9b8885f 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -1,5 +1,5 @@ import { IDocument, XmlSchemaDocument } from '../models'; -import { XmlSchemaCollection } from '../util/xsd/XmlSchemaCollection'; +import { XmlSchemaCollection } from '@datamapper-poc/xml-schema-ts'; export class DocumentService { static parseXmlSchema(content: string): IDocument { diff --git a/packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts b/packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts deleted file mode 100644 index 239406df4..000000000 --- a/packages/ui/src/util/xsd/XmlSchemaItemWithRef.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { XmlSchemaNamed, XmlSchemaRef } from './utils'; -import { XmlSchemaItemWithRefBase } from '.'; -export interface XmlSchemaItemWithRef extends XmlSchemaItemWithRefBase { - getRef(): XmlSchemaRef; -} diff --git a/packages/xml-schema-ts/.lintstagedrc.json b/packages/xml-schema-ts/.lintstagedrc.json new file mode 100644 index 000000000..cafe25df7 --- /dev/null +++ b/packages/xml-schema-ts/.lintstagedrc.json @@ -0,0 +1,3 @@ +{ + "*.ts": "yarn workspace @datamapper-poc/xml-schema-ts run eslint \"src/**/*.ts\"", +} diff --git a/packages/ui/src/util/xsd/README.md b/packages/xml-schema-ts/README.md similarity index 94% rename from packages/ui/src/util/xsd/README.md rename to packages/xml-schema-ts/README.md index bb5aec8f9..88e158055 100644 --- a/packages/ui/src/util/xsd/README.md +++ b/packages/xml-schema-ts/README.md @@ -11,9 +11,6 @@ https://github.com/apache/ws-xmlschema See this test case for the basic usage https://github.com/KaotoIO/datamapper-poc/blob/main/packages/ui/src/util/xsd/XmlSchemaCollection.test.ts -### TODO -- To be a separate sub-package in the project. - ### Behavioral Changes - From what I understand from XML Schema definition, the top level elements are always assigned to the target namespace. In order to achieve this behavior, I made the following change - https://github.com/KaotoIO/datamapper-poc/commit/92be1f4b21d37194bf627a845c785aa9462dab16#diff-f4482bd2efd45dc85f74b837385f37fde87ddb67c49dde92608c37549185b3adR35-R36 \ No newline at end of file diff --git a/packages/xml-schema-ts/babel.config.cjs b/packages/xml-schema-ts/babel.config.cjs new file mode 100644 index 000000000..d40df42bf --- /dev/null +++ b/packages/xml-schema-ts/babel.config.cjs @@ -0,0 +1,8 @@ +// eslint-disable-next-line no-undef +module.exports = { + presets: [ + ['@babel/preset-env', { targets: { node: 'current' } }], + ['@babel/preset-react', { runtime: 'automatic' }], + '@babel/preset-typescript', + ], +}; diff --git a/packages/xml-schema-ts/jest.config.js b/packages/xml-schema-ts/jest.config.js new file mode 100644 index 000000000..48c95ec7c --- /dev/null +++ b/packages/xml-schema-ts/jest.config.js @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +export default { + testEnvironment: 'jsdom', + reporters: ['default'], + setupFilesAfterEnv: ['./jest.setup.ts'], + moduleDirectories: ['node_modules'], + testMatch: ['**/?(*.)+(test).[tj]s?(x)'], + modulePathIgnorePatterns: ['dist'], + + // Indicates whether the coverage information should be collected while executing the test + collectCoverage: true, + + // An array of glob patterns indicating a set of files for which coverage information should be collected + collectCoverageFrom: [ + // Collect coverage from all ts and tsx files in the src folder + 'src/**/*.{ts,tsx}', + // Ignore all test files + '!src/**/*.test.{ts,tsx}', + // Ignore all declaration files + '!src/**/*.d.ts', + ], + + // The directory where Jest should output its coverage files + coverageDirectory: 'coverage', + + // An array of regexp pattern strings used to skip coverage collection + coveragePathIgnorePatterns: ['\\\\node_modules\\\\'], + + // Indicates which provider should be used to instrument code for coverage + coverageProvider: 'babel', +}; diff --git a/packages/xml-schema-ts/jest.setup.ts b/packages/xml-schema-ts/jest.setup.ts new file mode 100644 index 000000000..e9bb7f2aa --- /dev/null +++ b/packages/xml-schema-ts/jest.setup.ts @@ -0,0 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import '@testing-library/jest-dom'; diff --git a/packages/xml-schema-ts/package.json b/packages/xml-schema-ts/package.json new file mode 100644 index 000000000..f8481d90d --- /dev/null +++ b/packages/xml-schema-ts/package.json @@ -0,0 +1,48 @@ +{ + "name": "@datamapper-poc/xml-schema-ts", + "version": "0.0.1", + "type": "module", + "description": "datamapper-poc :: XmlSchemaTS", + "repository": "https://github.com/KaotoIO/datamapper-poc", + "repositoryDirectory": "packages/xml-schema-ts", + "author": "KaotoIO", + "private": true, + "license": "Apache-2.0", + "types": "./dist/esm/index.d.ts", + "main": "./dist/esm/index.js", + "exports": { + ".": { + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js" + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "rimraf dist && tsc --build tsconfig.cjs.json && tsc --build tsconfig.esm.json", + "test": "jest", + "test:watch": "jest --watch", + "lint": "yarn eslint \"src/**/*.{ts,tsx}\"", + "lint:fix": "yarn lint:code --fix" + }, + "devDependencies": { + "@babel/preset-env": "^7.24.0", + "@babel/preset-react": "^7.23.3", + "@babel/preset-typescript": "^7.23.3", + "@testing-library/jest-dom": "^6.4.2", + "@types/jest": "^29.5.12", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-prettier": "^5.1.3", + "fast-xml-parser": "^4.3.5", + "jest": "^29.7.0", + "rimraf": "^5.0.5", + "stylelint": "^16.2.1", + "stylelint-prettier": "^5.0.0", + "typescript": "^5.3.3", + "vite": "^5.1.4" + } +} diff --git a/packages/ui/src/util/xsd/DocumentFragmentNodeList.ts b/packages/xml-schema-ts/src/DocumentFragmentNodeList.ts similarity index 100% rename from packages/ui/src/util/xsd/DocumentFragmentNodeList.ts rename to packages/xml-schema-ts/src/DocumentFragmentNodeList.ts diff --git a/packages/ui/src/util/xsd/QName.ts b/packages/xml-schema-ts/src/QName.ts similarity index 100% rename from packages/ui/src/util/xsd/QName.ts rename to packages/xml-schema-ts/src/QName.ts diff --git a/packages/ui/src/util/xsd/SchemaBuilder.ts b/packages/xml-schema-ts/src/SchemaBuilder.ts similarity index 99% rename from packages/ui/src/util/xsd/SchemaBuilder.ts rename to packages/xml-schema-ts/src/SchemaBuilder.ts index 180c3b04b..3c1d4af21 100644 --- a/packages/ui/src/util/xsd/SchemaBuilder.ts +++ b/packages/xml-schema-ts/src/SchemaBuilder.ts @@ -645,7 +645,7 @@ export class SchemaBuilder { * @return The cached schema if one exists for this thread or null. */ private getCachedSchema(targetNamespace: string, schemaLocation: string, baseUri: string) { - let resolvedSchema = null; + let resolvedSchema: XmlSchema | null = null; if (this.resolvedSchemas != null) { // cache is initialized, use it diff --git a/packages/ui/src/util/xsd/SchemaKey.ts b/packages/xml-schema-ts/src/SchemaKey.ts similarity index 100% rename from packages/ui/src/util/xsd/SchemaKey.ts rename to packages/xml-schema-ts/src/SchemaKey.ts diff --git a/packages/ui/src/util/xsd/TypeReceiver.ts b/packages/xml-schema-ts/src/TypeReceiver.ts similarity index 59% rename from packages/ui/src/util/xsd/TypeReceiver.ts rename to packages/xml-schema-ts/src/TypeReceiver.ts index b3b745101..10d9bbec0 100644 --- a/packages/ui/src/util/xsd/TypeReceiver.ts +++ b/packages/xml-schema-ts/src/TypeReceiver.ts @@ -1,4 +1,4 @@ -import { XmlSchemaType } from '.'; +import { XmlSchemaType } from './XmlSchemaType'; export interface TypeReceiver { setType(type: XmlSchemaType): void; diff --git a/packages/ui/src/util/xsd/XmlSchema.ts b/packages/xml-schema-ts/src/XmlSchema.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchema.ts rename to packages/xml-schema-ts/src/XmlSchema.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaAnnotated.ts b/packages/xml-schema-ts/src/XmlSchemaAnnotated.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaAnnotated.ts rename to packages/xml-schema-ts/src/XmlSchemaAnnotated.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaAnyAttribute.ts b/packages/xml-schema-ts/src/XmlSchemaAnyAttribute.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaAnyAttribute.ts rename to packages/xml-schema-ts/src/XmlSchemaAnyAttribute.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaCollection.test.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaCollection.test.ts rename to packages/xml-schema-ts/src/XmlSchemaCollection.test.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaCollection.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaCollection.ts rename to packages/xml-schema-ts/src/XmlSchemaCollection.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaContent.ts b/packages/xml-schema-ts/src/XmlSchemaContent.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaContent.ts rename to packages/xml-schema-ts/src/XmlSchemaContent.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaContentModel.ts b/packages/xml-schema-ts/src/XmlSchemaContentModel.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaContentModel.ts rename to packages/xml-schema-ts/src/XmlSchemaContentModel.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaContentProcessing.ts b/packages/xml-schema-ts/src/XmlSchemaContentProcessing.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaContentProcessing.ts rename to packages/xml-schema-ts/src/XmlSchemaContentProcessing.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaContentType.ts b/packages/xml-schema-ts/src/XmlSchemaContentType.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaContentType.ts rename to packages/xml-schema-ts/src/XmlSchemaContentType.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaDerivationMethod.ts b/packages/xml-schema-ts/src/XmlSchemaDerivationMethod.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaDerivationMethod.ts rename to packages/xml-schema-ts/src/XmlSchemaDerivationMethod.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaDocumentation.ts b/packages/xml-schema-ts/src/XmlSchemaDocumentation.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaDocumentation.ts rename to packages/xml-schema-ts/src/XmlSchemaDocumentation.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaForm.ts b/packages/xml-schema-ts/src/XmlSchemaForm.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaForm.ts rename to packages/xml-schema-ts/src/XmlSchemaForm.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaGroup.ts b/packages/xml-schema-ts/src/XmlSchemaGroup.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaGroup.ts rename to packages/xml-schema-ts/src/XmlSchemaGroup.ts diff --git a/packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts b/packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts new file mode 100644 index 000000000..7e8983939 --- /dev/null +++ b/packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts @@ -0,0 +1,7 @@ +import { XmlSchemaNamed } from './utils/XmlSchemaNamed'; +import { XmlSchemaRef } from './utils/XmlSchemaRef'; +import { XmlSchemaItemWithRefBase } from './XmlSchemaItemWithRefBase'; + +export interface XmlSchemaItemWithRef extends XmlSchemaItemWithRefBase { + getRef(): XmlSchemaRef; +} diff --git a/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts b/packages/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts similarity index 77% rename from packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts rename to packages/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts index e8af4bd76..06547c309 100644 --- a/packages/ui/src/util/xsd/XmlSchemaItemWithRefBase.ts +++ b/packages/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts @@ -1,5 +1,5 @@ -import { QName } from '.'; -import { XmlSchemaRefBase } from './utils'; +import { QName } from './QName'; +import { XmlSchemaRefBase } from './utils/XmlSchemaRefBase'; export interface XmlSchemaItemWithRefBase { /** diff --git a/packages/ui/src/util/xsd/XmlSchemaNotation.ts b/packages/xml-schema-ts/src/XmlSchemaNotation.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaNotation.ts rename to packages/xml-schema-ts/src/XmlSchemaNotation.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaObject.ts b/packages/xml-schema-ts/src/XmlSchemaObject.ts similarity index 92% rename from packages/ui/src/util/xsd/XmlSchemaObject.ts rename to packages/xml-schema-ts/src/XmlSchemaObject.ts index efe06ce9d..72bad56d0 100644 --- a/packages/ui/src/util/xsd/XmlSchemaObject.ts +++ b/packages/xml-schema-ts/src/XmlSchemaObject.ts @@ -1,4 +1,4 @@ -import { XmlSchemaObjectBase } from './utils'; +import { XmlSchemaObjectBase } from './utils/XmlSchemaObjectBase'; export abstract class XmlSchemaObject implements XmlSchemaObjectBase { lineNumber?: number; diff --git a/packages/ui/src/util/xsd/XmlSchemaType.ts b/packages/xml-schema-ts/src/XmlSchemaType.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaType.ts rename to packages/xml-schema-ts/src/XmlSchemaType.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaUse.ts b/packages/xml-schema-ts/src/XmlSchemaUse.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaUse.ts rename to packages/xml-schema-ts/src/XmlSchemaUse.ts diff --git a/packages/ui/src/util/xsd/XmlSchemaXPath.ts b/packages/xml-schema-ts/src/XmlSchemaXPath.ts similarity index 100% rename from packages/ui/src/util/xsd/XmlSchemaXPath.ts rename to packages/xml-schema-ts/src/XmlSchemaXPath.ts diff --git a/packages/ui/src/util/xsd/annotation/XmlSchemaAnnotation.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotation.ts similarity index 100% rename from packages/ui/src/util/xsd/annotation/XmlSchemaAnnotation.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaAnnotation.ts diff --git a/packages/ui/src/util/xsd/annotation/XmlSchemaAnnotationItem.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotationItem.ts similarity index 100% rename from packages/ui/src/util/xsd/annotation/XmlSchemaAnnotationItem.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaAnnotationItem.ts diff --git a/packages/ui/src/util/xsd/annotation/XmlSchemaAppInfo.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaAppInfo.ts similarity index 100% rename from packages/ui/src/util/xsd/annotation/XmlSchemaAppInfo.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaAppInfo.ts diff --git a/packages/ui/src/util/xsd/annotation/XmlSchemaDocumentation.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaDocumentation.ts similarity index 100% rename from packages/ui/src/util/xsd/annotation/XmlSchemaDocumentation.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaDocumentation.ts diff --git a/packages/ui/src/util/xsd/attribute/XmlSchemaAttribute.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttribute.ts similarity index 100% rename from packages/ui/src/util/xsd/attribute/XmlSchemaAttribute.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttribute.ts diff --git a/packages/ui/src/util/xsd/attribute/XmlSchemaAttributeGroup.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroup.ts similarity index 100% rename from packages/ui/src/util/xsd/attribute/XmlSchemaAttributeGroup.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroup.ts diff --git a/packages/ui/src/util/xsd/attribute/XmlSchemaAttributeGroupMember.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts similarity index 100% rename from packages/ui/src/util/xsd/attribute/XmlSchemaAttributeGroupMember.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts diff --git a/packages/ui/src/util/xsd/attribute/XmlSchemaAttributeGroupRef.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupRef.ts similarity index 100% rename from packages/ui/src/util/xsd/attribute/XmlSchemaAttributeGroupRef.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupRef.ts diff --git a/packages/ui/src/util/xsd/attribute/XmlSchemaAttributeOrGroupRef.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeOrGroupRef.ts similarity index 100% rename from packages/ui/src/util/xsd/attribute/XmlSchemaAttributeOrGroupRef.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeOrGroupRef.ts diff --git a/packages/ui/src/util/xsd/complex/XmlSchemaComplexContent.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexContent.ts similarity index 100% rename from packages/ui/src/util/xsd/complex/XmlSchemaComplexContent.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexContent.ts diff --git a/packages/ui/src/util/xsd/complex/XmlSchemaComplexContentExtension.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentExtension.ts similarity index 100% rename from packages/ui/src/util/xsd/complex/XmlSchemaComplexContentExtension.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexContentExtension.ts diff --git a/packages/ui/src/util/xsd/complex/XmlSchemaComplexContentRestriction.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentRestriction.ts similarity index 100% rename from packages/ui/src/util/xsd/complex/XmlSchemaComplexContentRestriction.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexContentRestriction.ts diff --git a/packages/ui/src/util/xsd/complex/XmlSchemaComplexType.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexType.ts similarity index 100% rename from packages/ui/src/util/xsd/complex/XmlSchemaComplexType.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexType.ts diff --git a/packages/ui/src/util/xsd/constants.ts b/packages/xml-schema-ts/src/constants.ts similarity index 100% rename from packages/ui/src/util/xsd/constants.ts rename to packages/xml-schema-ts/src/constants.ts diff --git a/packages/ui/src/util/xsd/constraint/XmlSchemaIdentityConstraint.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaIdentityConstraint.ts similarity index 100% rename from packages/ui/src/util/xsd/constraint/XmlSchemaIdentityConstraint.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaIdentityConstraint.ts diff --git a/packages/ui/src/util/xsd/constraint/XmlSchemaKey.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaKey.ts similarity index 100% rename from packages/ui/src/util/xsd/constraint/XmlSchemaKey.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaKey.ts diff --git a/packages/ui/src/util/xsd/constraint/XmlSchemaKeyref.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaKeyref.ts similarity index 100% rename from packages/ui/src/util/xsd/constraint/XmlSchemaKeyref.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaKeyref.ts diff --git a/packages/ui/src/util/xsd/constraint/XmlSchemaUnique.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaUnique.ts similarity index 100% rename from packages/ui/src/util/xsd/constraint/XmlSchemaUnique.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaUnique.ts diff --git a/packages/ui/src/util/xsd/extensions/DefaultExtensionDeserializer.ts b/packages/xml-schema-ts/src/extensions/DefaultExtensionDeserializer.ts similarity index 100% rename from packages/ui/src/util/xsd/extensions/DefaultExtensionDeserializer.ts rename to packages/xml-schema-ts/src/extensions/DefaultExtensionDeserializer.ts diff --git a/packages/ui/src/util/xsd/extensions/DefaultExtensionSerializer.ts b/packages/xml-schema-ts/src/extensions/DefaultExtensionSerializer.ts similarity index 100% rename from packages/ui/src/util/xsd/extensions/DefaultExtensionSerializer.ts rename to packages/xml-schema-ts/src/extensions/DefaultExtensionSerializer.ts diff --git a/packages/ui/src/util/xsd/extensions/ExtensionDeserializer.ts b/packages/xml-schema-ts/src/extensions/ExtensionDeserializer.ts similarity index 100% rename from packages/ui/src/util/xsd/extensions/ExtensionDeserializer.ts rename to packages/xml-schema-ts/src/extensions/ExtensionDeserializer.ts diff --git a/packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts b/packages/xml-schema-ts/src/extensions/ExtensionRegistry.ts similarity index 100% rename from packages/ui/src/util/xsd/extensions/ExtensionRegistry.ts rename to packages/xml-schema-ts/src/extensions/ExtensionRegistry.ts diff --git a/packages/ui/src/util/xsd/extensions/ExtensionSerializer.ts b/packages/xml-schema-ts/src/extensions/ExtensionSerializer.ts similarity index 100% rename from packages/ui/src/util/xsd/extensions/ExtensionSerializer.ts rename to packages/xml-schema-ts/src/extensions/ExtensionSerializer.ts diff --git a/packages/ui/src/util/xsd/external/XmlSchemaExternal.ts b/packages/xml-schema-ts/src/external/XmlSchemaExternal.ts similarity index 100% rename from packages/ui/src/util/xsd/external/XmlSchemaExternal.ts rename to packages/xml-schema-ts/src/external/XmlSchemaExternal.ts diff --git a/packages/ui/src/util/xsd/external/XmlSchemaImport.ts b/packages/xml-schema-ts/src/external/XmlSchemaImport.ts similarity index 100% rename from packages/ui/src/util/xsd/external/XmlSchemaImport.ts rename to packages/xml-schema-ts/src/external/XmlSchemaImport.ts diff --git a/packages/ui/src/util/xsd/external/XmlSchemaInclude.ts b/packages/xml-schema-ts/src/external/XmlSchemaInclude.ts similarity index 100% rename from packages/ui/src/util/xsd/external/XmlSchemaInclude.ts rename to packages/xml-schema-ts/src/external/XmlSchemaInclude.ts diff --git a/packages/ui/src/util/xsd/external/XmlSchemaRedefine.ts b/packages/xml-schema-ts/src/external/XmlSchemaRedefine.ts similarity index 100% rename from packages/ui/src/util/xsd/external/XmlSchemaRedefine.ts rename to packages/xml-schema-ts/src/external/XmlSchemaRedefine.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaEnumerationFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaEnumerationFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaEnumerationFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaEnumerationFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaFacetConstructor.ts b/packages/xml-schema-ts/src/facet/XmlSchemaFacetConstructor.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaFacetConstructor.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaFacetConstructor.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaFractionDigitsFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaFractionDigitsFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaFractionDigitsFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaFractionDigitsFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaLengthFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaLengthFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaLengthFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaLengthFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaMaxExclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMaxExclusiveFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaMaxExclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMaxExclusiveFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaMaxInclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMaxInclusiveFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaMaxInclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMaxInclusiveFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaMaxLengthFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMaxLengthFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaMaxLengthFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMaxLengthFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaMinExclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMinExclusiveFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaMinExclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMinExclusiveFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaMinInclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMinInclusiveFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaMinInclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMinInclusiveFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaMinLengthFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMinLengthFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaMinLengthFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMinLengthFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaNumericFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaNumericFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaNumericFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaNumericFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaPatternFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaPatternFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaPatternFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaPatternFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaTotalDigitsFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaTotalDigitsFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaTotalDigitsFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaTotalDigitsFacet.ts diff --git a/packages/ui/src/util/xsd/facet/XmlSchemaWhiteSpaceFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaWhiteSpaceFacet.ts similarity index 100% rename from packages/ui/src/util/xsd/facet/XmlSchemaWhiteSpaceFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaWhiteSpaceFacet.ts diff --git a/packages/xml-schema-ts/src/index.ts b/packages/xml-schema-ts/src/index.ts new file mode 100644 index 000000000..faf5e6428 --- /dev/null +++ b/packages/xml-schema-ts/src/index.ts @@ -0,0 +1,3 @@ +export { XmlSchema } from './XmlSchema'; +export { XmlSchemaCollection } from './XmlSchemaCollection'; +export { XmlSchemaElement } from './particle/XmlSchemaElement'; diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaAll.ts b/packages/xml-schema-ts/src/particle/XmlSchemaAll.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaAll.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaAll.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaAllMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaAllMember.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaAny.ts b/packages/xml-schema-ts/src/particle/XmlSchemaAny.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaAny.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaAny.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaChoice.ts b/packages/xml-schema-ts/src/particle/XmlSchemaChoice.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaChoice.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaChoice.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaChoiceMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaChoiceMember.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaElement.ts b/packages/xml-schema-ts/src/particle/XmlSchemaElement.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaElement.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaElement.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaGroupParticle.ts b/packages/xml-schema-ts/src/particle/XmlSchemaGroupParticle.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaGroupParticle.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaGroupParticle.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaGroupRef.ts b/packages/xml-schema-ts/src/particle/XmlSchemaGroupRef.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaGroupRef.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaGroupRef.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaParticle.ts b/packages/xml-schema-ts/src/particle/XmlSchemaParticle.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaParticle.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaParticle.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaSequence.ts b/packages/xml-schema-ts/src/particle/XmlSchemaSequence.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaSequence.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaSequence.ts diff --git a/packages/ui/src/util/xsd/particle/XmlSchemaSequenceMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts similarity index 100% rename from packages/ui/src/util/xsd/particle/XmlSchemaSequenceMember.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts diff --git a/packages/ui/src/util/xsd/resolver/CollectionURIResolver.ts b/packages/xml-schema-ts/src/resolver/CollectionURIResolver.ts similarity index 100% rename from packages/ui/src/util/xsd/resolver/CollectionURIResolver.ts rename to packages/xml-schema-ts/src/resolver/CollectionURIResolver.ts diff --git a/packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts b/packages/xml-schema-ts/src/resolver/DefaultURIResolver.ts similarity index 100% rename from packages/ui/src/util/xsd/resolver/DefaultURIResolver.ts rename to packages/xml-schema-ts/src/resolver/DefaultURIResolver.ts diff --git a/packages/ui/src/util/xsd/resolver/URIResolver.ts b/packages/xml-schema-ts/src/resolver/URIResolver.ts similarity index 100% rename from packages/ui/src/util/xsd/resolver/URIResolver.ts rename to packages/xml-schema-ts/src/resolver/URIResolver.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleContent.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContent.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleContent.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleContent.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleContentExtension.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentExtension.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleContentExtension.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentExtension.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleContentRestriction.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentRestriction.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleContentRestriction.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentRestriction.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleType.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleType.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleType.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleType.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeContent.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeContent.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeContent.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeContent.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeList.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeList.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeList.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeList.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeRestriction.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeRestriction.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeRestriction.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeRestriction.ts diff --git a/packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeUnion.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeUnion.ts similarity index 100% rename from packages/ui/src/util/xsd/simple/XmlSchemaSimpleTypeUnion.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeUnion.ts diff --git a/packages/ui/src/util/xsd/utils/NamespaceContext.ts b/packages/xml-schema-ts/src/utils/NamespaceContext.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/NamespaceContext.ts rename to packages/xml-schema-ts/src/utils/NamespaceContext.ts diff --git a/packages/ui/src/util/xsd/utils/NamespaceContextOwner.ts b/packages/xml-schema-ts/src/utils/NamespaceContextOwner.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/NamespaceContextOwner.ts rename to packages/xml-schema-ts/src/utils/NamespaceContextOwner.ts diff --git a/packages/ui/src/util/xsd/utils/NamespacePrefixList.ts b/packages/xml-schema-ts/src/utils/NamespacePrefixList.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/NamespacePrefixList.ts rename to packages/xml-schema-ts/src/utils/NamespacePrefixList.ts diff --git a/packages/ui/src/util/xsd/utils/NodeNamespaceContext.ts b/packages/xml-schema-ts/src/utils/NodeNamespaceContext.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/NodeNamespaceContext.ts rename to packages/xml-schema-ts/src/utils/NodeNamespaceContext.ts diff --git a/packages/ui/src/util/xsd/utils/ObjectMap.ts b/packages/xml-schema-ts/src/utils/ObjectMap.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/ObjectMap.ts rename to packages/xml-schema-ts/src/utils/ObjectMap.ts diff --git a/packages/ui/src/util/xsd/utils/PrefixCollector.ts b/packages/xml-schema-ts/src/utils/PrefixCollector.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/PrefixCollector.ts rename to packages/xml-schema-ts/src/utils/PrefixCollector.ts diff --git a/packages/ui/src/util/xsd/utils/XDOMUtil.ts b/packages/xml-schema-ts/src/utils/XDOMUtil.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/XDOMUtil.ts rename to packages/xml-schema-ts/src/utils/XDOMUtil.ts diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamed.ts similarity index 89% rename from packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamed.ts index 56616a523..87421280f 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaNamed.ts +++ b/packages/xml-schema-ts/src/utils/XmlSchemaNamed.ts @@ -1,5 +1,6 @@ -import type { QName, XmlSchema } from '..'; -import { XmlSchemaObjectBase } from '.'; +import type { QName } from '../QName'; +import type { XmlSchema } from '../XmlSchema'; +import { XmlSchemaObjectBase } from './XmlSchemaObjectBase'; export interface XmlSchemaNamed extends XmlSchemaObjectBase { /** diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedImpl.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/XmlSchemaNamedImpl.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedImpl.ts diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedType.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedType.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/XmlSchemaNamedType.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedType.ts diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithForm.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts similarity index 56% rename from packages/ui/src/util/xsd/utils/XmlSchemaNamedWithForm.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts index b6ce2ee60..6f72cf429 100644 --- a/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithForm.ts +++ b/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts @@ -1,3 +1,3 @@ -import { XmlSchemaNamed } from '.'; +import { XmlSchemaNamed } from './XmlSchemaNamed'; export interface XmlSchemaNamedWithForm extends XmlSchemaNamed {} diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithFormImpl.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/XmlSchemaNamedWithFormImpl.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedWithFormImpl.ts diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaObjectBase.ts b/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/XmlSchemaObjectBase.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaRef.ts b/packages/xml-schema-ts/src/utils/XmlSchemaRef.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/XmlSchemaRef.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaRef.ts diff --git a/packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts b/packages/xml-schema-ts/src/utils/XmlSchemaRefBase.ts similarity index 100% rename from packages/ui/src/util/xsd/utils/XmlSchemaRefBase.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaRefBase.ts diff --git a/packages/ui/src/util/xsd/xml-parser.test.ts b/packages/xml-schema-ts/src/xml-parser.test.ts similarity index 76% rename from packages/ui/src/util/xsd/xml-parser.test.ts rename to packages/xml-schema-ts/src/xml-parser.test.ts index 846e375c3..20e4addff 100644 --- a/packages/ui/src/util/xsd/xml-parser.test.ts +++ b/packages/xml-schema-ts/src/xml-parser.test.ts @@ -10,13 +10,13 @@ describe.skip('XML parser', () => { }); it('should parse XML schema', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrder.xsd').toString(); + const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); const parsed = parser.parse(orderXsd); expect(parsed).toBeDefined(); }); it('should parse XML document', () => { - const orderXml = fs.readFileSync(__dirname + '/../../../test-resources/ExampleOrder.xml').toString(); + const orderXml = fs.readFileSync(__dirname + '/../../../../test-resources/ExampleOrder.xml').toString(); const parsed = parser.parse(orderXml); expect(parsed).toBeDefined(); }); @@ -26,7 +26,7 @@ describe.skip('XML parser', () => { const parser = new DOMParser(); it('should parse XML schema', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrder.xsd').toString(); + const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); const xmlDoc = parser.parseFromString(orderXsd, 'text/xml'); expect(xmlDoc).toBeDefined(); const schema = xmlDoc.getElementsByTagName('xs:schema')[0]; @@ -43,7 +43,7 @@ describe.skip('XML parser', () => { }); it('should parse XML document', () => { - const orderXml = fs.readFileSync(__dirname + '/../../../test-resources/ExampleOrder.xml').toString(); + const orderXml = fs.readFileSync(__dirname + '/../../../../test-resources/ExampleOrder.xml').toString(); const xmlDoc = parser.parseFromString(orderXml, 'text/xml'); expect(xmlDoc).toBeDefined(); }); diff --git a/packages/xml-schema-ts/tsconfig.cjs.json b/packages/xml-schema-ts/tsconfig.cjs.json new file mode 100644 index 000000000..7bd691fdf --- /dev/null +++ b/packages/xml-schema-ts/tsconfig.cjs.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "baseUrl": "src", + "outDir": "dist/cjs", + "rootDir": "src", + "module": "commonjs", + "target": "es6", + "esModuleInterop": true, + "moduleResolution": "node" + }, + "include": ["src"] +} diff --git a/packages/xml-schema-ts/tsconfig.esm.json b/packages/xml-schema-ts/tsconfig.esm.json new file mode 100644 index 000000000..147793c44 --- /dev/null +++ b/packages/xml-schema-ts/tsconfig.esm.json @@ -0,0 +1,13 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "baseUrl": "src", + "outDir": "dist/esm", + "rootDir": "src", + "module": "es6", + "target": "es6", + "esModuleInterop": true, + "moduleResolution": "node" + }, + "include": ["src"] +} diff --git a/packages/xml-schema-ts/tsconfig.json b/packages/xml-schema-ts/tsconfig.json new file mode 100644 index 000000000..5862af91e --- /dev/null +++ b/packages/xml-schema-ts/tsconfig.json @@ -0,0 +1,28 @@ +{ + "exclude": ["node_modules"], + "compilerOptions": { + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "target": "ES2020", + "module": "ESNext", + "useDefineForClassFields": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "noImplicitAny": false, + "noImplicitThis": true, + "removeComments": true, + "strictNullChecks": true, + "experimentalDecorators": true, + "downlevelIteration": true, + "skipLibCheck": true, + "jsx": "react-jsx", + "types": [ + "@testing-library/jest-dom", + "@types/jest", + "@types/node", + ], + } +} diff --git a/packages/ui/test-resources/ExampleOrder.xml b/test-resources/ExampleOrder.xml similarity index 100% rename from packages/ui/test-resources/ExampleOrder.xml rename to test-resources/ExampleOrder.xml diff --git a/packages/ui/test-resources/ShipOrder.xsd b/test-resources/ShipOrder.xsd similarity index 100% rename from packages/ui/test-resources/ShipOrder.xsd rename to test-resources/ShipOrder.xsd diff --git a/packages/ui/test-resources/hello.xsd b/test-resources/hello.xsd similarity index 100% rename from packages/ui/test-resources/hello.xsd rename to test-resources/hello.xsd diff --git a/packages/ui/test-resources/hello.xsl b/test-resources/hello.xsl similarity index 100% rename from packages/ui/test-resources/hello.xsl rename to test-resources/hello.xsl diff --git a/yarn.lock b/yarn.lock index bc7c57d4e..65e95504f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1012,6 +1012,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.0" + dependencies: + "@babel/compat-data": ^7.23.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.23.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8877b6a5493df0e36007286ea5e5e2305575346cf1b128049e7db3ff3861f2eb7eb0e8fa3e0b6334de27724253bf32b27e572b2c35dd93b02403476c306b9f5d + languageName: node + linkType: hard + "@babel/plugin-transform-object-super@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-object-super@npm:7.23.3" @@ -1398,6 +1413,96 @@ __metadata: languageName: node linkType: hard +"@babel/preset-env@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/preset-env@npm:7.24.0" + dependencies: + "@babel/compat-data": ^7.23.5 + "@babel/helper-compilation-targets": ^7.23.6 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.7 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.23.3 + "@babel/plugin-syntax-import-attributes": ^7.23.3 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.23.3 + "@babel/plugin-transform-async-generator-functions": ^7.23.9 + "@babel/plugin-transform-async-to-generator": ^7.23.3 + "@babel/plugin-transform-block-scoped-functions": ^7.23.3 + "@babel/plugin-transform-block-scoping": ^7.23.4 + "@babel/plugin-transform-class-properties": ^7.23.3 + "@babel/plugin-transform-class-static-block": ^7.23.4 + "@babel/plugin-transform-classes": ^7.23.8 + "@babel/plugin-transform-computed-properties": ^7.23.3 + "@babel/plugin-transform-destructuring": ^7.23.3 + "@babel/plugin-transform-dotall-regex": ^7.23.3 + "@babel/plugin-transform-duplicate-keys": ^7.23.3 + "@babel/plugin-transform-dynamic-import": ^7.23.4 + "@babel/plugin-transform-exponentiation-operator": ^7.23.3 + "@babel/plugin-transform-export-namespace-from": ^7.23.4 + "@babel/plugin-transform-for-of": ^7.23.6 + "@babel/plugin-transform-function-name": ^7.23.3 + "@babel/plugin-transform-json-strings": ^7.23.4 + "@babel/plugin-transform-literals": ^7.23.3 + "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 + "@babel/plugin-transform-member-expression-literals": ^7.23.3 + "@babel/plugin-transform-modules-amd": ^7.23.3 + "@babel/plugin-transform-modules-commonjs": ^7.23.3 + "@babel/plugin-transform-modules-systemjs": ^7.23.9 + "@babel/plugin-transform-modules-umd": ^7.23.3 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 + "@babel/plugin-transform-new-target": ^7.23.3 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 + "@babel/plugin-transform-numeric-separator": ^7.23.4 + "@babel/plugin-transform-object-rest-spread": ^7.24.0 + "@babel/plugin-transform-object-super": ^7.23.3 + "@babel/plugin-transform-optional-catch-binding": ^7.23.4 + "@babel/plugin-transform-optional-chaining": ^7.23.4 + "@babel/plugin-transform-parameters": ^7.23.3 + "@babel/plugin-transform-private-methods": ^7.23.3 + "@babel/plugin-transform-private-property-in-object": ^7.23.4 + "@babel/plugin-transform-property-literals": ^7.23.3 + "@babel/plugin-transform-regenerator": ^7.23.3 + "@babel/plugin-transform-reserved-words": ^7.23.3 + "@babel/plugin-transform-shorthand-properties": ^7.23.3 + "@babel/plugin-transform-spread": ^7.23.3 + "@babel/plugin-transform-sticky-regex": ^7.23.3 + "@babel/plugin-transform-template-literals": ^7.23.3 + "@babel/plugin-transform-typeof-symbol": ^7.23.3 + "@babel/plugin-transform-unicode-escapes": ^7.23.3 + "@babel/plugin-transform-unicode-property-regex": ^7.23.3 + "@babel/plugin-transform-unicode-regex": ^7.23.3 + "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 + "@babel/preset-modules": 0.1.6-no-external-plugins + babel-plugin-polyfill-corejs2: ^0.4.8 + babel-plugin-polyfill-corejs3: ^0.9.0 + babel-plugin-polyfill-regenerator: ^0.5.5 + core-js-compat: ^3.31.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d9e894037382ce35be4b511034a9fb110003ca104f4f800e9b8f9c3b830999014c8314dcdaa3c89669e034784f7c81fe6851e2ff237805fef6479c7dff68d12c + languageName: node + linkType: hard + "@babel/preset-modules@npm:0.1.6-no-external-plugins": version: 0.1.6-no-external-plugins resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" @@ -1594,12 +1699,13 @@ __metadata: "@babel/preset-env": ^7.23.9 "@babel/preset-react": ^7.23.3 "@babel/preset-typescript": ^7.23.3 + "@datamapper-poc/xml-schema-ts": "workspace:*" "@patternfly/react-core": ^5.1.2 "@patternfly/react-table": ^5.1.2 "@patternfly/react-topology": ^5.1.0 "@storybook/addon-actions": ^7.6.12 "@storybook/addon-knobs": ^7.0.2 - "@testing-library/jest-dom": ^6.3.0 + "@testing-library/jest-dom": ^6.4.2 "@types/jest": ^29.5.12 "@types/node": ^20.11.6 "@types/pako": ^2.0.3 @@ -1610,14 +1716,13 @@ __metadata: "@vitejs/plugin-react": ^4.2.1 d3-scale: ^4.0.2 d3-shape: ^3.2.0 - eslint: ^8.56.0 + eslint: ^8.57.0 eslint-config-prettier: ^9.1.0 eslint-plugin-import: ^2.29.1 - eslint-plugin-jest: ^27.6.3 + eslint-plugin-jest: ^27.9.0 eslint-plugin-prettier: ^5.1.3 eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-refresh: ^0.4.5 - fast-xml-parser: ^4.3.4 file-saver: ^2.0.5 jest: ^29.7.0 jest-canvas-mock: ^2.5.2 @@ -1646,6 +1751,30 @@ __metadata: languageName: unknown linkType: soft +"@datamapper-poc/xml-schema-ts@workspace:*, @datamapper-poc/xml-schema-ts@workspace:packages/xml-schema-ts": + version: 0.0.0-use.local + resolution: "@datamapper-poc/xml-schema-ts@workspace:packages/xml-schema-ts" + dependencies: + "@babel/preset-env": ^7.24.0 + "@babel/preset-react": ^7.23.3 + "@babel/preset-typescript": ^7.23.3 + "@testing-library/jest-dom": ^6.4.2 + "@types/jest": ^29.5.12 + eslint: ^8.57.0 + eslint-config-prettier: ^9.1.0 + eslint-plugin-import: ^2.29.1 + eslint-plugin-jest: ^27.9.0 + eslint-plugin-prettier: ^5.1.3 + fast-xml-parser: ^4.3.5 + jest: ^29.7.0 + rimraf: ^5.0.5 + stylelint: ^16.2.1 + stylelint-prettier: ^5.0.0 + typescript: ^5.3.3 + vite: ^5.1.4 + languageName: unknown + linkType: soft + "@dependents/detective-less@npm:^3.0.1": version: 3.0.2 resolution: "@dependents/detective-less@npm:3.0.2" @@ -3291,7 +3420,7 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:^6.3.0": +"@testing-library/jest-dom@npm:^6.4.2": version: 6.4.2 resolution: "@testing-library/jest-dom@npm:6.4.2" dependencies: @@ -6769,7 +6898,7 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jest@npm:^27.6.3": +"eslint-plugin-jest@npm:^27.9.0": version: 27.9.0 resolution: "eslint-plugin-jest@npm:27.9.0" dependencies: @@ -6859,7 +6988,7 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.56.0": +"eslint@npm:^8.57.0": version: 8.57.0 resolution: "eslint@npm:8.57.0" dependencies: @@ -7094,7 +7223,7 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.3.4": +"fast-xml-parser@npm:^4.3.5": version: 4.3.5 resolution: "fast-xml-parser@npm:4.3.5" dependencies: From 9bf1e1c1afd4e2341664b249530348308f4a6c37 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 4 Mar 2024 13:21:52 -0500 Subject: [PATCH 049/471] chore: yarn.lock --- packages/ui/package.json | 2 +- yarn.lock | 107 +-------------------------------------- 2 files changed, 2 insertions(+), 107 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index f08d3d677..014ca1e9a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -63,7 +63,7 @@ }, "devDependencies": { "@babel/core": "^7.23.9", - "@babel/preset-env": "^7.23.9", + "@babel/preset-env": "^7.24.0", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.23.3", "@storybook/addon-actions": "^7.6.12", diff --git a/yarn.lock b/yarn.lock index 65e95504f..fa98b05c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1012,21 +1012,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.0" - dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.23.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8877b6a5493df0e36007286ea5e5e2305575346cf1b128049e7db3ff3861f2eb7eb0e8fa3e0b6334de27724253bf32b27e572b2c35dd93b02403476c306b9f5d - languageName: node - linkType: hard - "@babel/plugin-transform-object-super@npm:^7.23.3": version: 7.23.3 resolution: "@babel/plugin-transform-object-super@npm:7.23.3" @@ -1323,96 +1308,6 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.23.9": - version: 7.24.0 - resolution: "@babel/preset-env@npm:7.24.0" - dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.7 - "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.23.3 - "@babel/plugin-syntax-import-attributes": ^7.23.3 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.23.3 - "@babel/plugin-transform-async-generator-functions": ^7.23.9 - "@babel/plugin-transform-async-to-generator": ^7.23.3 - "@babel/plugin-transform-block-scoped-functions": ^7.23.3 - "@babel/plugin-transform-block-scoping": ^7.23.4 - "@babel/plugin-transform-class-properties": ^7.23.3 - "@babel/plugin-transform-class-static-block": ^7.23.4 - "@babel/plugin-transform-classes": ^7.23.8 - "@babel/plugin-transform-computed-properties": ^7.23.3 - "@babel/plugin-transform-destructuring": ^7.23.3 - "@babel/plugin-transform-dotall-regex": ^7.23.3 - "@babel/plugin-transform-duplicate-keys": ^7.23.3 - "@babel/plugin-transform-dynamic-import": ^7.23.4 - "@babel/plugin-transform-exponentiation-operator": ^7.23.3 - "@babel/plugin-transform-export-namespace-from": ^7.23.4 - "@babel/plugin-transform-for-of": ^7.23.6 - "@babel/plugin-transform-function-name": ^7.23.3 - "@babel/plugin-transform-json-strings": ^7.23.4 - "@babel/plugin-transform-literals": ^7.23.3 - "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 - "@babel/plugin-transform-member-expression-literals": ^7.23.3 - "@babel/plugin-transform-modules-amd": ^7.23.3 - "@babel/plugin-transform-modules-commonjs": ^7.23.3 - "@babel/plugin-transform-modules-systemjs": ^7.23.9 - "@babel/plugin-transform-modules-umd": ^7.23.3 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.23.3 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 - "@babel/plugin-transform-numeric-separator": ^7.23.4 - "@babel/plugin-transform-object-rest-spread": ^7.24.0 - "@babel/plugin-transform-object-super": ^7.23.3 - "@babel/plugin-transform-optional-catch-binding": ^7.23.4 - "@babel/plugin-transform-optional-chaining": ^7.23.4 - "@babel/plugin-transform-parameters": ^7.23.3 - "@babel/plugin-transform-private-methods": ^7.23.3 - "@babel/plugin-transform-private-property-in-object": ^7.23.4 - "@babel/plugin-transform-property-literals": ^7.23.3 - "@babel/plugin-transform-regenerator": ^7.23.3 - "@babel/plugin-transform-reserved-words": ^7.23.3 - "@babel/plugin-transform-shorthand-properties": ^7.23.3 - "@babel/plugin-transform-spread": ^7.23.3 - "@babel/plugin-transform-sticky-regex": ^7.23.3 - "@babel/plugin-transform-template-literals": ^7.23.3 - "@babel/plugin-transform-typeof-symbol": ^7.23.3 - "@babel/plugin-transform-unicode-escapes": ^7.23.3 - "@babel/plugin-transform-unicode-property-regex": ^7.23.3 - "@babel/plugin-transform-unicode-regex": ^7.23.3 - "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 - "@babel/preset-modules": 0.1.6-no-external-plugins - babel-plugin-polyfill-corejs2: ^0.4.8 - babel-plugin-polyfill-corejs3: ^0.9.0 - babel-plugin-polyfill-regenerator: ^0.5.5 - core-js-compat: ^3.31.0 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d9e894037382ce35be4b511034a9fb110003ca104f4f800e9b8f9c3b830999014c8314dcdaa3c89669e034784f7c81fe6851e2ff237805fef6479c7dff68d12c - languageName: node - linkType: hard - "@babel/preset-env@npm:^7.24.0": version: 7.24.0 resolution: "@babel/preset-env@npm:7.24.0" @@ -1696,7 +1591,7 @@ __metadata: resolution: "@datamapper-poc/ui@workspace:packages/ui" dependencies: "@babel/core": ^7.23.9 - "@babel/preset-env": ^7.23.9 + "@babel/preset-env": ^7.24.0 "@babel/preset-react": ^7.23.3 "@babel/preset-typescript": ^7.23.3 "@datamapper-poc/xml-schema-ts": "workspace:*" From d56f5d3c5c71ad13b94837d64d3c9ee86c879453 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 4 Mar 2024 13:30:00 -0500 Subject: [PATCH 050/471] fix --- packages/ui/src/services/document.service.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/services/document.service.test.ts b/packages/ui/src/services/document.service.test.ts index c707400ff..be103b4a9 100644 --- a/packages/ui/src/services/document.service.test.ts +++ b/packages/ui/src/services/document.service.test.ts @@ -2,7 +2,7 @@ import { DocumentService } from './document.service'; import * as fs from 'fs'; describe('DocumentService', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../test-resources/ShipOrder.xsd').toString(); + const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); describe('parseXmlSchema', () => { it('should parse the xml schema', () => { From 3ee772add44635229563ae370c054462ce5f768a Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 4 Mar 2024 13:34:46 -0500 Subject: [PATCH 051/471] fix workflow --- .github/workflows/build-lint-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-lint-test.yml b/.github/workflows/build-lint-test.yml index f05d74d06..b075cf8c6 100644 --- a/.github/workflows/build-lint-test.yml +++ b/.github/workflows/build-lint-test.yml @@ -30,6 +30,9 @@ jobs: #- name: 💅 Run stylelint # run: yarn workspace @kaoto-next/ui run lint:style + - name: Build xml-schema-ts + run: yarn workspace @datamapper-poc/xml-schema-ts run build + # Run tests - name: 🧪 Run tests run: yarn workspaces foreach --verbose --topological-dev run test From ccfbd4c34b1a62c316805b2f83b04e76eb22ced2 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 4 Mar 2024 21:27:31 -0500 Subject: [PATCH 052/471] fix: Switching to bottom up strategy, remove all atlasmap files Fixes: #28 Fixes: #4 Also enable full lint/build/test in GH workflow --- .github/workflows/build-lint-test.yml | 21 +- .../poc-dnd-line/src/ReactTopologyTest.tsx | 10 +- packages/poc-dnd-line/tsconfig.json | 9 +- packages/ui/index.html | 5 - packages/ui/package.json | 1 + .../UI/TruncatedString.tsx => DataMapper.tsx} | 26 +- .../Layout/ContextToolbar.stories.tsx | 26 - .../Layout/MainContent.module.css | 8 - .../Layout/MainContent.module.css.d.ts | 5 - .../Layout/MainContent.stories.tsx | 151 -- .../src/_bk_atlasmap/Layout/MainContent.tsx | 23 - .../Layout/MainLayout.module.css.d.ts | 7 - .../MappingDetailsSidebar.module.css.d.ts | 5 - .../Layout/MappingDetailsSidebar.stories.tsx | 38 - .../_bk_atlasmap/Layout/Sidebar.module.css | 8 - .../Layout/Sidebar.module.css.d.ts | 6 - .../_bk_atlasmap/Layout/Sidebar.stories.tsx | 38 - .../ui/src/_bk_atlasmap/Layout/Sidebar.tsx | 34 - .../Layout/Toolbar.module.css.d.ts | 6 - packages/ui/src/_bk_atlasmap/Layout/index.ts | 21 - packages/ui/src/_bk_atlasmap/README.md | 1 - .../ui/src/_bk_atlasmap/UI/Actions.module.css | 9 - .../_bk_atlasmap/UI/Actions.module.css.d.ts | 6 - packages/ui/src/_bk_atlasmap/UI/Actions.tsx | 27 - .../UI/AddFieldTypeahead.module.css | 15 - .../UI/AddFieldTypeahead.module.css.d.ts | 8 - .../UI/AddFieldTypeahead.stories.tsx | 68 - .../src/_bk_atlasmap/UI/AddFieldTypeahead.tsx | 114 -- .../ui/src/_bk_atlasmap/UI/AutoDropdown.tsx | 40 - .../UI/Canvas/0.Canvas.stories.mdx | 43 - .../UI/Canvas/1.HTMLObject.stories.mdx | 16 - .../_bk_atlasmap/UI/Canvas/2.Arc.stories.mdx | 26 - .../UI/Canvas/3.NodesArc.stories.mdx | 52 - .../src/_bk_atlasmap/UI/Canvas/Arc.module.css | 3 - .../UI/Canvas/Arc.module.css.d.ts | 5 - .../_bk_atlasmap/UI/Canvas/Arc.stories.tsx | 57 - .../ui/src/_bk_atlasmap/UI/Canvas/Arc.tsx | 95 -- .../ui/src/_bk_atlasmap/UI/Canvas/ArcEdge.tsx | 42 - .../_bk_atlasmap/UI/Canvas/Canvas.module.css | 18 - .../UI/Canvas/Canvas.module.css.d.ts | 7 - .../_bk_atlasmap/UI/Canvas/Canvas.stories.tsx | 79 - .../ui/src/_bk_atlasmap/UI/Canvas/Canvas.tsx | 85 -- .../_bk_atlasmap/UI/Canvas/CanvasContext.tsx | 227 --- .../UI/Canvas/CanvasTransforms.tsx | 36 - .../UI/Canvas/HTMLObject.module.css | 3 - .../UI/Canvas/HTMLObject.module.css.d.ts | 5 - .../UI/Canvas/HTMLObject.stories.tsx | 44 - .../src/_bk_atlasmap/UI/Canvas/HTMLObject.tsx | 46 - .../UI/Canvas/NodesArc.stories.tsx | 211 --- .../src/_bk_atlasmap/UI/Canvas/NodesArc.tsx | 144 -- .../_bk_atlasmap/UI/Canvas/PrintNodeRef.tsx | 50 - .../src/_bk_atlasmap/UI/Canvas/canvasBg.png | Bin 10561 -> 0 bytes .../ui/src/_bk_atlasmap/UI/Canvas/index.ts | 24 - .../ui/src/_bk_atlasmap/UI/Canvas/models.ts | 29 - .../UI/Canvas/useBoundingCanvasRect.ts | 62 - .../UI/ColumnMapper/Column.module.css.d.ts | 6 - .../UI/ColumnMapper/Column.spec.tsx | 59 - .../UI/ColumnMapper/Column.stories.tsx | 433 ------ .../ColumnMapper/ColumnBody.module.css.d.ts | 5 - .../UI/ColumnMapper/ColumnBody.spec.tsx | 26 - .../ColumnMapper/ColumnHeader.module.css.d.ts | 8 - .../UI/ColumnMapper/ColumnHeader.spec.tsx | 24 - .../UI/ColumnMapper/ColumnHeader.stories.tsx | 43 - .../ColumnMapper/ColumnMapper.module.css.d.ts | 5 - .../UI/ColumnMapper/ColumnMapper.spec.tsx | 30 - .../UI/ColumnMapper/ColumnMapper.stories.tsx | 306 ---- .../UI/ColumnMapper/Columns.module.css.d.ts | 5 - .../UI/ColumnMapper/Columns.spec.tsx | 33 - .../SearchableColumnHeader.spec.tsx | 40 - .../SearchableColumnHeader.stories.tsx | 46 - .../UI/ColumnMapper/index.stories.mdx | 40 - .../src/_bk_atlasmap/UI/ColumnMapper/index.ts | 15 - ...ConditionalExpressionInput.module.css.d.ts | 5 - .../ui/src/_bk_atlasmap/UI/DelayedBoolean.tsx | 36 - .../_bk_atlasmap/UI/Document.module.css.d.ts | 16 - .../src/_bk_atlasmap/UI/Document.stories.mdx | 27 - .../src/_bk_atlasmap/UI/Document.stories.tsx | 69 - .../src/_bk_atlasmap/UI/DocumentActions.tsx | 75 - .../_bk_atlasmap/UI/DocumentField.module.css | 59 - .../UI/DocumentField.module.css.d.ts | 13 - .../ui/src/_bk_atlasmap/UI/DocumentField.tsx | 107 -- .../UI/DocumentFieldPreview.module.css | 6 - .../UI/DocumentFieldPreview.module.css.d.ts | 5 - .../_bk_atlasmap/UI/DocumentFieldPreview.tsx | 47 - .../UI/DocumentFieldPreviewResults.module.css | 6 - ...ocumentFieldPreviewResults.module.css.d.ts | 5 - .../UI/DocumentFieldPreviewResults.tsx | 43 - .../UI/DocumentFooter.module.css.d.ts | 5 - .../_bk_atlasmap/UI/DocumentGroup.module.css | 13 - .../UI/DocumentGroup.module.css.d.ts | 7 - .../ui/src/_bk_atlasmap/UI/DocumentGroup.tsx | 74 - .../UI/ExpressionContent.stories.tsx | 129 -- .../UI/ExpressionEnumSelect.module.css.d.ts | 7 - .../UI/ExpressionFieldSearch.module.css.d.ts | 7 - .../UI/MappingField.module.css.d.ts | 11 - .../_bk_atlasmap/UI/MappingFields.module.css | 9 - .../UI/MappingFields.module.css.d.ts | 6 - .../ui/src/_bk_atlasmap/UI/MappingFields.tsx | 106 -- .../UI/MappingTransformation.module.css | 6 - .../UI/MappingTransformation.module.css.d.ts | 5 - .../UI/MappingTransformation.spec.tsx | 67 - .../UI/MappingTransformation.stories.tsx | 123 -- .../_bk_atlasmap/UI/MappingTransformation.tsx | 309 ---- .../ui/src/_bk_atlasmap/UI/TimedToast.tsx | 88 -- .../_bk_atlasmap/UI/Tree/Tree.module.css.d.ts | 5 - .../src/_bk_atlasmap/UI/Tree/Tree.stories.mdx | 60 - .../src/_bk_atlasmap/UI/Tree/Tree.stories.tsx | 83 -- .../_bk_atlasmap/UI/Tree/TreeGroup.module.css | 16 - .../UI/Tree/TreeGroup.module.css.d.ts | 7 - .../ui/src/_bk_atlasmap/UI/Tree/TreeGroup.tsx | 133 -- .../ui/src/_bk_atlasmap/UI/Tree/TreeItem.tsx | 60 - packages/ui/src/_bk_atlasmap/UI/Tree/index.ts | 17 - .../UI/TruncatedString.module.css | 7 - .../UI/TruncatedString.module.css.d.ts | 5 - .../UI/dialogs/ChangeDocumentNameDialog.tsx | 83 -- .../UI/dialogs/ConstantDialog.stories.tsx | 50 - .../UI/dialogs/ConstantDialog.tsx | 177 --- .../UI/dialogs/CustomClassDialog.stories.tsx | 51 - .../UI/dialogs/CustomClassDialog.tsx | 110 -- .../dialogs/ExportCatalogDialog.stories.tsx | 33 - .../UI/dialogs/LookupTableDialog.module.css | 17 - .../dialogs/LookupTableDialog.module.css.d.ts | 7 - .../UI/dialogs/LookupTableDialog.tsx | 67 - .../UI/dialogs/NamespaceDialog.stories.tsx | 39 - .../UI/dialogs/NamespaceDialog.tsx | 100 -- .../UI/dialogs/ParametersDialog.stories.tsx | 158 -- .../UI/dialogs/ParametersDialog.tsx | 227 --- .../UI/dialogs/PropertyDialog.stories.tsx | 73 - .../UI/dialogs/PropertyDialog.tsx | 205 --- .../ui/src/_bk_atlasmap/UI/dialogs/index.ts | 22 - .../UI/dnd/Drag-and-drop.stories.mdx | 26 - .../UI/dnd/Drag-and-drop.stories.tsx | 212 --- .../UI/dnd/FieldDragLayer.module.css.d.ts | 6 - packages/ui/src/_bk_atlasmap/UI/dnd/index.ts | 15 - packages/ui/src/_bk_atlasmap/UI/dnd/models.ts | 21 - packages/ui/src/_bk_atlasmap/UI/index.ts | 33 - .../UI/useInputTextSelectDialog.module.css | 23 - .../useInputTextSelectDialog.module.css.d.ts | 8 - .../UI/useInputTextSelectDialog.tsx | 212 --- .../ui/src/_bk_atlasmap/UI/useLatestValue.tsx | 34 - .../_bk_atlasmap/UI/useSingleInputDialog.tsx | 125 -- .../Actions/CaptureDocumentIDAction.tsx | 36 - .../Actions/ChangeDocumentNameAction.tsx | 42 - .../Actions/DeleteMappingAction.tsx | 42 - .../Actions/EditCSVParamsAction.tsx | 42 - .../Actions/EditMappingAction.tsx | 43 - .../Actions/EnableJavaClassAction.tsx | 53 - .../Views/ColumnMapperView/Actions/index.ts | 23 - .../ColumnMapperView.spec.tsx | 71 - .../ColumnMapperView.stories.tsx | 128 -- .../ColumnMapperView/Columns/AtlasmapLogo.tsx | 90 -- .../Views/ColumnMapperView/Columns/index.ts | 15 - .../Links/SourceTargetLinks.module.css.d.ts | 6 - .../Views/ColumnMapperView/Links/index.ts | 16 - .../Views/ColumnMapperView/index.ts | 18 - .../Views/MappingTableView.module.css | 3 - .../Views/MappingTableView.module.css.d.ts | 5 - .../Views/MappingTableView.stories.tsx | 45 - .../_bk_atlasmap/Views/MappingTableView.tsx | 127 -- .../Views/NamespaceTableView.module.css | 4 - .../Views/NamespaceTableView.module.css.d.ts | 5 - .../_bk_atlasmap/Views/NamespaceTableView.tsx | 158 -- .../Views/SourceTargetView.spec.tsx | 28 - .../Views/SourceTargetView.stories.tsx | 119 -- packages/ui/src/_bk_atlasmap/Views/index.ts | 21 - packages/ui/src/_bk_atlasmap/Views/models.ts | 20 - .../_bk_atlasmap/core/common/config.types.ts | 90 -- .../ui/src/_bk_atlasmap/core/common/index.ts | 16 - .../_bk_atlasmap/core/contracts/adm-digest.ts | 38 - .../src/_bk_atlasmap/core/contracts/common.ts | 179 --- .../core/contracts/documents/csv.ts | 163 --- .../core/contracts/documents/index.ts | 19 - .../core/contracts/documents/java.ts | 152 -- .../core/contracts/documents/json.ts | 120 -- .../core/contracts/documents/xml.ts | 131 -- .../_bk_atlasmap/core/contracts/expression.ts | 22 - .../core/contracts/field-action.ts | 104 -- .../src/_bk_atlasmap/core/contracts/index.ts | 22 - .../core/contracts/mapping-preview.ts | 82 -- .../_bk_atlasmap/core/contracts/mapping.ts | 274 ---- packages/ui/src/_bk_atlasmap/core/index.ts | 20 - .../core/models/config.model.spec.ts | 28 - .../_bk_atlasmap/core/models/config.model.ts | 292 ---- .../models/document-definition.model.spec.ts | 39 - .../core/models/document-definition.model.ts | 498 ------- .../core/models/error.model.spec.ts | 31 - .../_bk_atlasmap/core/models/error.model.ts | 66 - .../src/_bk_atlasmap/core/models/examples.ts | 49 - .../core/models/expression.model.ts | 754 ---------- .../core/models/field-action.model.spec.ts | 30 - .../core/models/field-action.model.ts | 107 -- .../core/models/field.model.spec.ts | 24 - .../_bk_atlasmap/core/models/field.model.ts | 287 ---- .../ui/src/_bk_atlasmap/core/models/index.ts | 27 - .../models/inspect/csv-inspection.model.ts | 128 -- .../inspect/cvs-inspection.model.spec.ts | 52 - .../inspect/document-inspection.model.ts | 99 -- .../_bk_atlasmap/core/models/inspect/index.ts | 20 - .../models/inspect/java-inspection.model.ts | 194 --- .../models/inspect/json-inspection.model.ts | 144 -- .../models/inspect/xml-inspection.model.ts | 169 --- .../core/models/lookup-table.model.spec.ts | 32 - .../core/models/lookup-table.model.ts | 82 -- .../models/mapping-definition.model.spec.ts | 24 - .../core/models/mapping-definition.model.ts | 119 -- .../core/models/mapping.model.spec.ts | 25 - .../_bk_atlasmap/core/models/mapping.model.ts | 490 ------- .../core/models/transition.model.spec.ts | 26 - .../core/models/transition.model.ts | 306 ---- .../document-management.service.spec.ts | 407 ------ .../services/document-management.service.ts | 836 ----------- .../services/error-handler.service.spec.ts | 181 --- .../core/services/error-handler.service.ts | 264 ---- .../services/field-action.service.spec.ts | 154 -- .../core/services/field-action.service.ts | 449 ------ .../services/file-management.service.spec.ts | 465 ------ .../core/services/file-management.service.ts | 562 -------- .../src/_bk_atlasmap/core/services/index.ts | 22 - .../services/initialization.service.spec.ts | 340 ----- .../core/services/initialization.service.ts | 458 ------ .../mapping-expression.service.spec.ts | 226 --- .../services/mapping-expression.service.ts | 437 ------ .../mapping-management.service.spec.ts | 386 ----- .../services/mapping-management.service.ts | 704 --------- .../services/mapping-preview.service.spec.ts | 84 -- .../core/services/mapping-preview.service.ts | 236 --- .../core/utils/common-util.spec.ts | 56 - .../_bk_atlasmap/core/utils/common-util.ts | 229 --- .../core/utils/document-inspection-util.ts | 182 --- .../ui/src/_bk_atlasmap/core/utils/guid.ts | 31 - .../ui/src/_bk_atlasmap/core/utils/index.ts | 22 - .../core/utils/lookup-table-util.ts | 200 --- .../core/utils/mapping-digest-util.spec.ts | 26 - .../core/utils/mapping-digest-util.ts | 49 - .../core/utils/mapping-serializer.spec.ts | 1195 ---------------- .../core/utils/mapping-serializer.ts | 1271 ----------------- .../_bk_atlasmap/core/utils/mapping-util.ts | 353 ----- .../ui/src/_bk_atlasmap/impl/dialogs/index.ts | 33 - .../dialogs/useCaptureDocumentIDToast.tsx | 71 - .../dialogs/useChangeDocumentNameDialog.tsx | 62 - .../impl/dialogs/useConstantDialog.tsx | 88 -- .../impl/dialogs/useCustomClassDialog.tsx | 80 -- .../impl/dialogs/useDeleteConstantDialog.tsx | 32 - .../impl/dialogs/useDeleteDocumentDialog.tsx | 33 - .../impl/dialogs/useDeleteMappingDialog.tsx | 39 - .../impl/dialogs/useDeletePropertyDialog.tsx | 36 - .../dialogs/useExportADMArchiveDialog.tsx | 34 - .../dialogs/useImportADMArchiveDialog.tsx | 32 - .../impl/dialogs/useImportDocumentDialog.tsx | 76 - .../impl/dialogs/useNamespaceDialog.tsx | 64 - .../impl/dialogs/useParametersDialog.tsx | 65 - .../impl/dialogs/usePropertyDialog.tsx | 90 -- .../dialogs/useRemoveMappedFieldDialog.tsx | 30 - .../impl/dialogs/useResetAtlasmapDialog.tsx | 30 - .../useSpecifyInstanceSchemaDialog.tsx | 103 -- .../dialogs/useToggleExpressionModeDialog.tsx | 35 - packages/ui/src/_bk_atlasmap/impl/index.ts | 20 - .../ui/src/_bk_atlasmap/impl/reducers/data.ts | 92 -- .../src/_bk_atlasmap/impl/reducers/index.ts | 17 - .../impl/reducers/notifications.ts | 70 - .../impl/toolbarItems.module.css.d.ts | 5 - .../_bk_atlasmap/impl/useContextToolbar.tsx | 200 --- .../impl/useDataMapperDialogs.tsx | 313 ---- .../ui/src/_bk_atlasmap/impl/useSidebar.tsx | 196 --- .../src/_bk_atlasmap/impl/utils/document.ts | 319 ----- .../src/_bk_atlasmap/impl/utils/expression.ts | 129 -- .../ui/src/_bk_atlasmap/impl/utils/field.ts | 357 ----- .../ui/src/_bk_atlasmap/impl/utils/index.ts | 21 - .../ui/src/_bk_atlasmap/impl/utils/toolbar.ts | 116 -- packages/ui/src/_bk_atlasmap/impl/utils/ui.ts | 601 -------- .../src/_bk_atlasmap/stories/decorators.tsx | 27 - .../ui/src/_bk_atlasmap/stories/fromJava.ts | 173 --- .../ui/src/_bk_atlasmap/stories/fromJson.ts | 145 -- .../ui/src/_bk_atlasmap/stories/fromXML.ts | 163 --- .../ui/src/_bk_atlasmap/stories/htmlKnob.ts | 21 - .../ui/src/_bk_atlasmap/stories/sampleData.ts | 1111 -------------- packages/ui/src/components/ColumnHeader.css | 25 - packages/ui/src/components/ColumnHeader.tsx | 44 - .../ui/src/components/DataMapper.stories.tsx | 45 - packages/ui/src/components/DataMapper.tsx | 80 -- packages/ui/src/components/NodeRef.tsx | 42 - .../src/components/SearchableColumnHeader.tsx | 63 - .../ui/src/components/dialogs/AboutDialog.tsx | 50 - .../components/dialogs/ConfirmationDialog.tsx | 73 - .../dialogs/ExportMappingDialog.tsx | 54 - packages/ui/src/components/dialogs/index.ts | 3 - .../dialogs/useConfirmationDialog.tsx | 50 - .../ui/src/components/dnd/DraggableField.tsx | 75 - .../ui/src/components/dnd/DraggedField.tsx | 49 - .../ui/src/components/dnd/FieldDragLayer.css | 9 - .../ui/src/components/dnd/FieldDragLayer.tsx | 50 - .../ui/src/components/dnd/FieldDropTarget.tsx | 95 -- packages/ui/src/components/dnd/index.ts | 4 - .../ui/src/components/document/Document.tsx | 29 + .../src/components/document/DocumentField.tsx | 54 + .../document}/ImportDocumentButton.tsx | 6 +- packages/ui/src/components/document/index.ts | 3 + .../documents/ConstantsDocument.tsx | 60 - .../components/documents/ConstantsTree.tsx | 130 -- .../documents/DeleteDocumentButton.tsx | 36 - .../ui/src/components/documents/Document.css | 48 - .../ui/src/components/documents/Document.tsx | 144 -- .../components/documents/DocumentFooter.css | 3 - .../components/documents/DocumentFooter.tsx | 23 - .../components/documents/PropertiesTree.tsx | 141 -- .../components/documents/SourceDocument.tsx | 69 - .../documents/SourcePropertiesDocument.tsx | 64 - .../components/documents/TargetDocument.tsx | 64 - .../documents/TargetPropertiesDocument.tsx | 63 - packages/ui/src/components/documents/Tree.css | 3 - packages/ui/src/components/documents/Tree.tsx | 45 - .../components/documents/commonActions.tsx | 154 -- packages/ui/src/components/documents/index.ts | 10 - .../expression/ExpressionEditor.tsx | 559 -------- .../expression/ExpressionEnumSelect.css | 14 - .../expression/ExpressionEnumSelect.tsx | 74 - .../expression/ExpressionFieldSearch.css | 14 - .../expression/ExpressionFieldSearch.tsx | 158 -- .../ui/src/components/expression/index.ts | 3 - .../src/components/fields/TraverseFields.tsx | 100 -- .../fields/TreeGroupAndNodeRefsAndDnD.tsx | 92 -- .../fields/TreeItemFieldAndNodeRefsAndDnD.tsx | 188 --- packages/ui/src/components/fields/index.ts | 3 - packages/ui/src/components/index.ts | 3 +- .../src/components/mapping/MappingField.css | 49 - .../src/components/mapping/MappingField.tsx | 200 --- .../toolbar/ExportMappingFileDropdownItem.tsx | 18 + .../MainMenuToolbarItem.tsx | 10 +- packages/ui/src/components/toolbar/index.ts | 2 + .../toolbarItems/AboutToolbarItem.tsx | 20 - .../toolbarItems/AddMappingToolbarItem.tsx | 25 - .../ExportMappingFileDropdownItem.tsx | 33 - .../ImportMappingFileDropdownItem.tsx | 46 - .../toolbarItems/ResetDropdownItem.tsx | 31 - .../ToggleMappedFieldsToolbarItem.tsx | 29 - .../ToggleMappingPreviewToolbarItem.tsx | 29 - .../ToggleMappingTableViewToolbarItem.tsx | 30 - .../ToggleNamespaceTableViewToolbarItem.tsx | 30 - .../ToggleSourceTargetViewToolbarItem.tsx | 30 - .../toolbarItems/ToggleTypesToolbarItem.tsx | 29 - .../ToggleUnmappedFieldsToolbarItem.tsx | 29 - .../ui/src/components/toolbarItems/index.ts | 13 - .../components/toolbarItems/toolbarItems.css | 3 - packages/ui/src/hooks/index.ts | 3 +- packages/ui/src/hooks/useDimensions.ts | 81 -- packages/ui/src/layout/ContextToolbar.tsx | 36 +- packages/ui/src/layout/ExpressionToolbar.tsx | 33 - packages/ui/src/layout/MainLayout.css | 9 - packages/ui/src/layout/MainLayout.stories.tsx | 38 - packages/ui/src/layout/MainLayout.tsx | 115 +- .../ui/src/layout/MappingDetailsSidebar.css | 6 - .../ui/src/layout/MappingDetailsSidebar.tsx | 97 -- packages/ui/src/layout/Toolbar.css | 15 - packages/ui/src/layout/index.ts | 2 - .../src/layout/views/MappingDetailsView.tsx | 298 +--- .../ui/src/layout/views/SourceTargetView.tsx | 72 + packages/ui/src/layout/views/index.ts | 3 +- .../src/layout/views/sourceTarget/Column.css | 9 - .../src/layout/views/sourceTarget/Column.tsx | 32 - .../layout/views/sourceTarget/ColumnBody.css | 23 - .../layout/views/sourceTarget/ColumnBody.tsx | 28 - .../views/sourceTarget/ColumnMapper.css | 3 - .../views/sourceTarget/ColumnMapper.tsx | 29 - .../src/layout/views/sourceTarget/Columns.css | 7 - .../src/layout/views/sourceTarget/Columns.tsx | 29 - .../views/sourceTarget/SourceTargetLinks.css | 7 - .../views/sourceTarget/SourceTargetLinks.tsx | 90 -- .../views/sourceTarget/SourceTargetView.css | 3 - .../views/sourceTarget/SourceTargetView.tsx | 33 - .../sourceTarget/SourcesColumn.action.ts | 0 .../views/sourceTarget/SourcesColumn.tsx | 82 -- .../views/sourceTarget/TargetsColumn.tsx | 74 - .../layout/views/sourceTarget/constants.ts | 35 - .../ui/src/layout/views/sourceTarget/index.ts | 6 - packages/ui/src/main.tsx | 7 +- packages/ui/src/models/api.ts | 106 -- packages/ui/src/models/dnd.ts | 7 - packages/ui/src/models/document.ts | 64 +- packages/ui/src/models/index.ts | 3 +- packages/ui/src/models/mapping.ts | 15 +- packages/ui/src/models/view.ts | 5 + .../ui/src/providers/DataMapperProvider.tsx | 55 +- .../ui/src/providers/FieldsDndProvider.tsx | 56 - packages/ui/src/providers/NodeRefProvider.tsx | 167 --- .../ui/src/providers/TreeFocusProvider.tsx | 206 --- packages/ui/src/providers/index.ts | 1 - packages/ui/src/providers/useDataMapper.ts | 292 ---- yarn.lock | 1 + 388 files changed, 359 insertions(+), 34723 deletions(-) rename packages/ui/src/{_bk_atlasmap/UI/TruncatedString.tsx => DataMapper.tsx} (60%) delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/ContextToolbar.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/MainContent.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/MainContent.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/MainLayout.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/Sidebar.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/Sidebar.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/Toolbar.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Layout/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/README.md delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Actions.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Actions.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Actions.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/AutoDropdown.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/0.Canvas.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/1.HTMLObject.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/2.Arc.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/3.NodesArc.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/ArcEdge.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasContext.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasTransforms.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/PrintNodeRef.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/canvasBg.png delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/models.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Canvas/useBoundingCanvasRect.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ConditionalExpressionInput.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DelayedBoolean.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Document.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Document.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Document.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentActions.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentField.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentFooter.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/DocumentGroup.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ExpressionContent.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ExpressionEnumSelect.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/ExpressionFieldSearch.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingField.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingFields.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingTransformation.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingTransformation.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/MappingTransformation.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/TimedToast.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/Tree.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/TreeItem.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/Tree/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/ChangeDocumentNameDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/ExportCatalogDialog.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dialogs/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.mdx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dnd/FieldDragLayer.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dnd/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/dnd/models.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/useLatestValue.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/UI/useSingleInputDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditMappingAction.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/MappingTableView.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/MappingTableView.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css delete mode 100644 packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/SourceTargetView.spec.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/SourceTargetView.stories.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/Views/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/Views/models.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/common/config.types.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/common/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/adm-digest.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/common.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/documents/csv.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/documents/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/documents/java.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/documents/json.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/documents/xml.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/expression.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/field-action.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/mapping-preview.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/contracts/mapping.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/config.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/config.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/document-definition.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/document-definition.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/error.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/error.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/examples.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/expression.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/field-action.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/field-action.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/field.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/field.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/inspect/csv-inspection.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/inspect/cvs-inspection.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/inspect/document-inspection.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/inspect/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/inspect/java-inspection.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/inspect/json-inspection.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/inspect/xml-inspection.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/mapping.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/mapping.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/transition.model.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/models/transition.model.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/document-management.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/document-management.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/error-handler.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/error-handler.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/field-action.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/field-action.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/file-management.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/file-management.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/initialization.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/initialization.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/common-util.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/common-util.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/document-inspection-util.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/guid.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/lookup-table-util.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.spec.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.ts delete mode 100644 packages/ui/src/_bk_atlasmap/core/utils/mapping-util.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useCaptureDocumentIDToast.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useChangeDocumentNameDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useConstantDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useCustomClassDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteConstantDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteDocumentDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteMappingDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useDeletePropertyDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useExportADMArchiveDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useImportADMArchiveDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useImportDocumentDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useNamespaceDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useParametersDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/usePropertyDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useRemoveMappedFieldDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useResetAtlasmapDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/dialogs/useToggleExpressionModeDialog.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/reducers/data.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/reducers/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/reducers/notifications.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/toolbarItems.module.css.d.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/useContextToolbar.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/useDataMapperDialogs.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/useSidebar.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/impl/utils/document.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/utils/expression.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/utils/field.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/utils/index.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/utils/toolbar.ts delete mode 100644 packages/ui/src/_bk_atlasmap/impl/utils/ui.ts delete mode 100644 packages/ui/src/_bk_atlasmap/stories/decorators.tsx delete mode 100644 packages/ui/src/_bk_atlasmap/stories/fromJava.ts delete mode 100644 packages/ui/src/_bk_atlasmap/stories/fromJson.ts delete mode 100644 packages/ui/src/_bk_atlasmap/stories/fromXML.ts delete mode 100644 packages/ui/src/_bk_atlasmap/stories/htmlKnob.ts delete mode 100644 packages/ui/src/_bk_atlasmap/stories/sampleData.ts delete mode 100644 packages/ui/src/components/ColumnHeader.css delete mode 100644 packages/ui/src/components/ColumnHeader.tsx delete mode 100644 packages/ui/src/components/DataMapper.stories.tsx delete mode 100644 packages/ui/src/components/DataMapper.tsx delete mode 100644 packages/ui/src/components/NodeRef.tsx delete mode 100644 packages/ui/src/components/SearchableColumnHeader.tsx delete mode 100644 packages/ui/src/components/dialogs/AboutDialog.tsx delete mode 100644 packages/ui/src/components/dialogs/ConfirmationDialog.tsx delete mode 100644 packages/ui/src/components/dialogs/ExportMappingDialog.tsx delete mode 100644 packages/ui/src/components/dialogs/index.ts delete mode 100644 packages/ui/src/components/dialogs/useConfirmationDialog.tsx delete mode 100644 packages/ui/src/components/dnd/DraggableField.tsx delete mode 100644 packages/ui/src/components/dnd/DraggedField.tsx delete mode 100644 packages/ui/src/components/dnd/FieldDragLayer.css delete mode 100644 packages/ui/src/components/dnd/FieldDragLayer.tsx delete mode 100644 packages/ui/src/components/dnd/FieldDropTarget.tsx delete mode 100644 packages/ui/src/components/dnd/index.ts create mode 100644 packages/ui/src/components/document/Document.tsx create mode 100644 packages/ui/src/components/document/DocumentField.tsx rename packages/ui/src/{layout/views/sourceTarget => components/document}/ImportDocumentButton.tsx (94%) create mode 100644 packages/ui/src/components/document/index.ts delete mode 100644 packages/ui/src/components/documents/ConstantsDocument.tsx delete mode 100644 packages/ui/src/components/documents/ConstantsTree.tsx delete mode 100644 packages/ui/src/components/documents/DeleteDocumentButton.tsx delete mode 100644 packages/ui/src/components/documents/Document.css delete mode 100644 packages/ui/src/components/documents/Document.tsx delete mode 100644 packages/ui/src/components/documents/DocumentFooter.css delete mode 100644 packages/ui/src/components/documents/DocumentFooter.tsx delete mode 100644 packages/ui/src/components/documents/PropertiesTree.tsx delete mode 100644 packages/ui/src/components/documents/SourceDocument.tsx delete mode 100644 packages/ui/src/components/documents/SourcePropertiesDocument.tsx delete mode 100644 packages/ui/src/components/documents/TargetDocument.tsx delete mode 100644 packages/ui/src/components/documents/TargetPropertiesDocument.tsx delete mode 100644 packages/ui/src/components/documents/Tree.css delete mode 100644 packages/ui/src/components/documents/Tree.tsx delete mode 100644 packages/ui/src/components/documents/commonActions.tsx delete mode 100644 packages/ui/src/components/documents/index.ts delete mode 100644 packages/ui/src/components/expression/ExpressionEditor.tsx delete mode 100644 packages/ui/src/components/expression/ExpressionEnumSelect.css delete mode 100644 packages/ui/src/components/expression/ExpressionEnumSelect.tsx delete mode 100644 packages/ui/src/components/expression/ExpressionFieldSearch.css delete mode 100644 packages/ui/src/components/expression/ExpressionFieldSearch.tsx delete mode 100644 packages/ui/src/components/expression/index.ts delete mode 100644 packages/ui/src/components/fields/TraverseFields.tsx delete mode 100644 packages/ui/src/components/fields/TreeGroupAndNodeRefsAndDnD.tsx delete mode 100644 packages/ui/src/components/fields/TreeItemFieldAndNodeRefsAndDnD.tsx delete mode 100644 packages/ui/src/components/fields/index.ts delete mode 100644 packages/ui/src/components/mapping/MappingField.css delete mode 100644 packages/ui/src/components/mapping/MappingField.tsx create mode 100644 packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx rename packages/ui/src/components/{toolbarItems => toolbar}/MainMenuToolbarItem.tsx (60%) create mode 100644 packages/ui/src/components/toolbar/index.ts delete mode 100644 packages/ui/src/components/toolbarItems/AboutToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/AddMappingToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ExportMappingFileDropdownItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ImportMappingFileDropdownItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ResetDropdownItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ToggleMappedFieldsToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ToggleMappingPreviewToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ToggleMappingTableViewToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ToggleNamespaceTableViewToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ToggleSourceTargetViewToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ToggleTypesToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/ToggleUnmappedFieldsToolbarItem.tsx delete mode 100644 packages/ui/src/components/toolbarItems/index.ts delete mode 100644 packages/ui/src/components/toolbarItems/toolbarItems.css delete mode 100644 packages/ui/src/hooks/useDimensions.ts delete mode 100644 packages/ui/src/layout/ExpressionToolbar.tsx delete mode 100644 packages/ui/src/layout/MainLayout.css delete mode 100644 packages/ui/src/layout/MainLayout.stories.tsx delete mode 100644 packages/ui/src/layout/MappingDetailsSidebar.css delete mode 100644 packages/ui/src/layout/MappingDetailsSidebar.tsx delete mode 100644 packages/ui/src/layout/Toolbar.css create mode 100644 packages/ui/src/layout/views/SourceTargetView.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/Column.css delete mode 100644 packages/ui/src/layout/views/sourceTarget/Column.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/ColumnBody.css delete mode 100644 packages/ui/src/layout/views/sourceTarget/ColumnBody.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/ColumnMapper.css delete mode 100644 packages/ui/src/layout/views/sourceTarget/ColumnMapper.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/Columns.css delete mode 100644 packages/ui/src/layout/views/sourceTarget/Columns.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.css delete mode 100644 packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/SourceTargetView.css delete mode 100644 packages/ui/src/layout/views/sourceTarget/SourceTargetView.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/SourcesColumn.action.ts delete mode 100644 packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx delete mode 100644 packages/ui/src/layout/views/sourceTarget/constants.ts delete mode 100644 packages/ui/src/layout/views/sourceTarget/index.ts delete mode 100644 packages/ui/src/models/api.ts delete mode 100644 packages/ui/src/models/dnd.ts create mode 100644 packages/ui/src/models/view.ts delete mode 100644 packages/ui/src/providers/FieldsDndProvider.tsx delete mode 100644 packages/ui/src/providers/NodeRefProvider.tsx delete mode 100644 packages/ui/src/providers/TreeFocusProvider.tsx delete mode 100644 packages/ui/src/providers/useDataMapper.ts diff --git a/.github/workflows/build-lint-test.yml b/.github/workflows/build-lint-test.yml index b075cf8c6..700ca309a 100644 --- a/.github/workflows/build-lint-test.yml +++ b/.github/workflows/build-lint-test.yml @@ -23,24 +23,13 @@ jobs: - run: yarn # Lint files - #- name: 💅 Run eslint - # run: yarn workspaces foreach --verbose --topological-dev run lint + - name: 💅 Run eslint + run: yarn workspaces foreach --verbose --topological-dev run lint - # Lint style files - #- name: 💅 Run stylelint - # run: yarn workspace @kaoto-next/ui run lint:style - - - name: Build xml-schema-ts - run: yarn workspace @datamapper-poc/xml-schema-ts run build + # Build packages + - name: Build packages + run: yarn workspaces foreach --verbose --topological-dev run build # Run tests - name: 🧪 Run tests run: yarn workspaces foreach --verbose --topological-dev run test - - # Build packages excluding @kaoto-next/camel-catalog since it was build during installing dependencies - #- name: Build packages - # run: yarn workspaces foreach --verbose --topological-dev --exclude @kaoto-next/camel-catalog run build - - # Build lib - #- name: Build @kaoto-next/ui package in lib mode - # run: yarn workspace @kaoto-next/ui run build:lib diff --git a/packages/poc-dnd-line/src/ReactTopologyTest.tsx b/packages/poc-dnd-line/src/ReactTopologyTest.tsx index 35df7920f..32f5c84a7 100644 --- a/packages/poc-dnd-line/src/ReactTopologyTest.tsx +++ b/packages/poc-dnd-line/src/ReactTopologyTest.tsx @@ -20,7 +20,7 @@ import { VisualizationProvider, VisualizationSurface, } from '@patternfly/react-topology'; -import { FunctionComponent, useCallback, useMemo, useState } from 'react'; +import { FunctionComponent, ReactNode, useCallback, useMemo, useState } from 'react'; import { Page, ToolbarItem } from '@patternfly/react-core'; import { doc } from './data'; @@ -31,20 +31,20 @@ const baselineLayoutFactory: LayoutFactory = (type: string, graph: Graph): Layou }); }; -const baselineComponentFactory: ComponentFactory = (kind: ModelKind, type: string) => { +const baselineComponentFactory: ComponentFactory = (kind: ModelKind, type: string): ReturnType => { switch (type) { case 'group': - return CustomGroup; + return CustomGroup as ReturnType; default: switch (kind) { case ModelKind.graph: return GraphComponent; case ModelKind.node: - return CustomNode; + return CustomNode as ReturnType; case ModelKind.edge: return DefaultEdge; default: - return undefined; + throw Error(`Unsupported type/kind: ${type}/${kind}`); } } }; diff --git a/packages/poc-dnd-line/tsconfig.json b/packages/poc-dnd-line/tsconfig.json index 129f35107..2faaf45e1 100644 --- a/packages/poc-dnd-line/tsconfig.json +++ b/packages/poc-dnd-line/tsconfig.json @@ -14,10 +14,10 @@ "jsx": "react-jsx", /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, + "strict": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noFallthroughCasesInSwitch": false, /* Typings */ "types": [ @@ -27,6 +27,5 @@ ] }, "include": ["src/**/*"], - "exclude": ["**/_bk_atlasmap/**/*"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/packages/ui/index.html b/packages/ui/index.html index 35ed20590..274e6141e 100644 --- a/packages/ui/index.html +++ b/packages/ui/index.html @@ -7,12 +7,7 @@ DataMapper -
-
diff --git a/packages/ui/package.json b/packages/ui/package.json index 014ca1e9a..81cd6f34e 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -42,6 +42,7 @@ }, "dependencies": { "@datamapper-poc/xml-schema-ts": "workspace:*", + "@dnd-kit/core": "^6.1.0", "@patternfly/react-core": "^5.1.2", "@patternfly/react-table": "^5.1.2", "@patternfly/react-topology": "^5.1.0", diff --git a/packages/ui/src/_bk_atlasmap/UI/TruncatedString.tsx b/packages/ui/src/DataMapper.tsx similarity index 60% rename from packages/ui/src/_bk_atlasmap/UI/TruncatedString.tsx rename to packages/ui/src/DataMapper.tsx index c924e28cc..4d4291a8a 100644 --- a/packages/ui/src/_bk_atlasmap/UI/TruncatedString.tsx +++ b/packages/ui/src/DataMapper.tsx @@ -1,5 +1,5 @@ /* - Copyright (C) 2017 Red Hat, Inc. + Copyright (C) 2024 Red Hat, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -13,21 +13,17 @@ See the License for the specific language governing permissions and limitations under the License. */ +import { MainLayout } from './layout'; import { FunctionComponent } from 'react'; -import styles from './TruncatedString.module.css'; -export interface ITruncatedStringProps { - title?: string; +import { useDataMapperContext } from './hooks/useDataMapperContext'; + +export interface IDataMapperProps { + modalsContainerId?: string; } -export const TruncatedString: FunctionComponent = ({ - title, - children, -}) => ( - - {children} - -); +export const DataMapper: FunctionComponent = () => { + const { selectedMapping } = useDataMapperContext()!; + + return ; +}; diff --git a/packages/ui/src/_bk_atlasmap/Layout/ContextToolbar.stories.tsx b/packages/ui/src/_bk_atlasmap/Layout/ContextToolbar.stories.tsx deleted file mode 100644 index 9dd786131..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/ContextToolbar.stories.tsx +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ContextToolbar } from '../../layout/ContextToolbar'; -import React from 'react'; - -const obj = { - title: 'AtlasMap|Layout/ContextToolbar', -}; -export default obj; - -export const example = () => { - return icons go here; -}; diff --git a/packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css b/packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css deleted file mode 100644 index e912abcbf..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css +++ /dev/null @@ -1,8 +0,0 @@ -.wrapper { - min-height: 100%; - flex: 1; - padding: 1rem; - box-sizing: border-box; - max-width: 1000; - align-self: flex-start; -} diff --git a/packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css.d.ts deleted file mode 100644 index b8932fc97..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/MainContent.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "wrapper": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Layout/MainContent.stories.tsx b/packages/ui/src/_bk_atlasmap/Layout/MainContent.stories.tsx deleted file mode 100644 index 4c35a6c00..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/MainContent.stories.tsx +++ /dev/null @@ -1,151 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { MainContent } from './MainContent'; -import React from 'react'; -import { TextContent } from '@patternfly/react-core'; - -const obj = { - title: 'AtlasMap|Layout/MainContent', -}; -export default obj; - -export const example = () => ( - - -

This content should scroll

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-

- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias - tenetur veritatis dolore perferendis dicta excepturi illum - necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et - veniam quaerat nesciunt repudiandae! -

-
-
-); diff --git a/packages/ui/src/_bk_atlasmap/Layout/MainContent.tsx b/packages/ui/src/_bk_atlasmap/Layout/MainContent.tsx deleted file mode 100644 index a12894026..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/MainContent.tsx +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, PropsWithChildren } from 'react'; -import styles from './MainContent.module.css'; - -export const MainContent: FunctionComponent = ({ children }) => ( -
- {children} -
-); diff --git a/packages/ui/src/_bk_atlasmap/Layout/MainLayout.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Layout/MainLayout.module.css.d.ts deleted file mode 100644 index 0b14d2df0..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/MainLayout.module.css.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const styles: { - readonly "view": string; - readonly "pf-topology-container": string; - readonly "pf-topology-content": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.module.css.d.ts deleted file mode 100644 index 144e657a2..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "content": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.stories.tsx b/packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.stories.tsx deleted file mode 100644 index 016cbcbc2..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/MappingDetailsSidebar.stories.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { MappingDetailsSidebar } from '../../layout/MappingDetailsSidebar'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'AtlasMap|Layout/MappingDetailsSidebar', -}; -export default obj; - -export const example = () => ( - { - return false; - }} - > - Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos incidunt, fugiat sequi obcaecati sapiente - debitis fuga perspiciatis possimus minima recusandae dolor minus unde nesciunt in aspernatur accusantium laborum sit - cumque? - -); diff --git a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css b/packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css deleted file mode 100644 index 6ca5b1b76..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css +++ /dev/null @@ -1,8 +0,0 @@ -.sidebar { - font-size: small; - height: 100%; - overflow: auto; -} -.sidebar > .pf-topology-side-bar__body { - height: "100%", -} diff --git a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css.d.ts deleted file mode 100644 index 4c4f7558b..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.module.css.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const styles: { - readonly "sidebar": string; - readonly "pf-topology-side-bar__body": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.stories.tsx b/packages/ui/src/_bk_atlasmap/Layout/Sidebar.stories.tsx deleted file mode 100644 index 25a009fe1..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.stories.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React from 'react'; -import { Sidebar } from './Sidebar'; -import { boolean } from '@storybook/addon-knobs'; - -const obj = { - title: 'AtlasMap|Layout/Sidebar', -}; -export default obj; - -export const example = () => ( -
- - {() => ( -
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos - incidunt, fugiat sequi obcaecati sapiente debitis fuga perspiciatis - possimus minima recusandae dolor minus unde nesciunt in aspernatur - accusantium laborum sit cumque? -
- )} -
-
-); diff --git a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.tsx b/packages/ui/src/_bk_atlasmap/Layout/Sidebar.tsx deleted file mode 100644 index 7c726ddfc..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/Sidebar.tsx +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { FunctionComponent, ReactElement } from 'react'; -import { TopologySideBar } from '@patternfly/react-topology'; -import styles from './Sidebar.module.css'; - -export interface ISidebarProps { - show: boolean; - children: () => ReactElement; -} - -export const Sidebar: FunctionComponent = ({ - show, - children, -}) => { - return ( - - {show && children()} - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/Layout/Toolbar.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Layout/Toolbar.module.css.d.ts deleted file mode 100644 index d7e861aab..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/Toolbar.module.css.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const styles: { - readonly "toolbar": string; - readonly "toolbarContent": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Layout/index.ts b/packages/ui/src/_bk_atlasmap/Layout/index.ts deleted file mode 100644 index a295c7cbb..000000000 --- a/packages/ui/src/_bk_atlasmap/Layout/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from '../../layout/ContextToolbar'; -export * from '../../layout/ExpressionToolbar'; -export * from './MainContent'; -export * from '../../layout/MainLayout'; -export * from '../../layout/MappingDetailsSidebar'; -export * from './Sidebar'; diff --git a/packages/ui/src/_bk_atlasmap/README.md b/packages/ui/src/_bk_atlasmap/README.md deleted file mode 100644 index 87ddd1f81..000000000 --- a/packages/ui/src/_bk_atlasmap/README.md +++ /dev/null @@ -1 +0,0 @@ -TODO remove this entire directory once all React componets are taken \ No newline at end of file diff --git a/packages/ui/src/_bk_atlasmap/UI/Actions.module.css b/packages/ui/src/_bk_atlasmap/UI/Actions.module.css deleted file mode 100644 index ee29e6067..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Actions.module.css +++ /dev/null @@ -1,9 +0,0 @@ -.toolbar { - display: flex; - flex-flow: row no-wrap; -} - -.toolbarItem { - min-width: 1.5rem; - flex: 0 1 auto; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/Actions.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/Actions.module.css.d.ts deleted file mode 100644 index 4a41c2e72..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Actions.module.css.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const styles: { - readonly "toolbar": string; - readonly "toolbarItem": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/Actions.tsx b/packages/ui/src/_bk_atlasmap/UI/Actions.tsx deleted file mode 100644 index 317720ce5..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Actions.tsx +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import {Children, FunctionComponent, PropsWithChildren} from 'react'; -import styles from './Actions.module.css'; - -export const Actions: FunctionComponent = ({ children }) => ( -
- {Children.map(children, (c, idx) => ( -
- {c} -
- ))} -
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css b/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css deleted file mode 100644 index 7df437341..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css +++ /dev/null @@ -1,15 +0,0 @@ -.document { - font-size: medium; - font-weight: bold; -} - -.select .pf-c-select__menu { - font-size: small; - max-width: "100%", -} - -.field { - font-size: small; - margin-left: 20, -} - diff --git a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css.d.ts deleted file mode 100644 index d84a087f7..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.module.css.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -declare const styles: { - readonly "document": string; - readonly "select": string; - readonly "pf-c-select__menu": string; - readonly "field": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.stories.tsx deleted file mode 100644 index ae0b5303f..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.stories.tsx +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - AddFieldTypeahead, - IAddFieldTypeaheadField, -} from './AddFieldTypeahead'; - -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'UI|Mapping Details/Add field typeahead', -}; -export default obj; - -const onAddAction = action('onAdd'); - -const fields: IAddFieldTypeaheadField[] = [ - { group: 'Foo group', label: 'Aaa', onAdd: onAddAction }, - { group: 'Foo group', label: 'Bbbb', onAdd: onAddAction }, - { group: 'Foo group', label: 'Cccc', onAdd: onAddAction }, - { group: 'Bar group', label: 'Aaa', onAdd: onAddAction }, - { group: 'Bar group', label: 'Bbbb', onAdd: onAddAction }, - { group: 'Bar group', label: 'Cccc', onAdd: onAddAction }, - { group: 'Baz group', label: 'Aaa', onAdd: onAddAction }, - { group: 'Baz group', label: 'Bbbb', onAdd: onAddAction }, - { group: 'Baz group', label: 'Cccc', onAdd: onAddAction }, - { - group: 'Stretch group', - label: - 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Reprehenderit expedita animi facere optio sit eaque, aut numquam, asperiores ratione earum natus iste in. Nemo cupiditate praesentium, amet accusamus impedit iure.', - onAdd: onAddAction, - }, - { - group: 'Stretch group', - label: - 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Reprehenderit expedita animi facere optio sit eaque, aut numquam, asperiores ratione earum natus iste in. Nemo cupiditate praesentium, amet accusamus impedit iure.', - onAdd: onAddAction, - }, - { - group: 'Stretch group', - label: - 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Reprehenderit expedita animi facere optio sit eaque, aut numquam, asperiores ratione earum natus iste in. Nemo cupiditate praesentium, amet accusamus impedit iure.', - onAdd: onAddAction, - }, -]; - -export const example = () => ( - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.tsx b/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.tsx deleted file mode 100644 index 57408ff7e..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/AddFieldTypeahead.tsx +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - FormSelect, - FormSelectOption, - FormSelectOptionGroup, -} from '@patternfly/react-core'; -import React, { FunctionComponent, ReactElement, useCallback } from 'react'; - -import styles from './AddFieldTypeahead.module.css'; - -export interface IAddFieldTypeaheadField { - label: string; - group: string; - onAdd: () => void; -} - -export interface IAddFieldTypeaheadProps { - fields: IAddFieldTypeaheadField[]; - ariaLabelTypeAhead: string; - placeholderText: string; - isSource: boolean; -} - -export const AddFieldTypeahead: FunctionComponent = ({ - fields, - ariaLabelTypeAhead, - placeholderText, - isSource, -}) => { - const renderOptions = ( - fields: IAddFieldTypeaheadField[], - placeholderField: IAddFieldTypeaheadField, - ) => { - fields.unshift(placeholderField); - const groups = fields.reduce<{ [group: string]: ReactElement[] }>( - (groups, f) => { - const optValue = f.group + '\\' + f.label; - groups[f.group] = [ - ...(groups[f.group] || []), - - {f.label} - , - ]; - return groups; - }, - {}, - ); - return Object.entries(groups).map( - ([groupName, elements]) => ( - - {elements} - - ), - ); - }; - - const onChange = useCallback( - (value: string, _e: React.FormEvent) => { - const valueComps = value.split('\\'); - const selField = fields.find( - (f) => f.label === valueComps[1] && f.group === valueComps[0], - ); - if (selField) { - (selField as IAddFieldTypeaheadField).onAdd(); - } - }, - [fields], - ); - - const placeholderField: IAddFieldTypeaheadField = { - label: placeholderText, - group: '', - onAdd: () => void {}, - }; - - return ( -
- - {renderOptions(fields, placeholderField)} - -
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/AutoDropdown.tsx b/packages/ui/src/_bk_atlasmap/UI/AutoDropdown.tsx deleted file mode 100644 index 258702884..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/AutoDropdown.tsx +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Dropdown, DropdownProps } from '@patternfly/react-core'; -import React, { FunctionComponent, ReactElement } from 'react'; - -import { useToggle } from '../impl/utils'; - -export interface IAutoDropdown - extends Omit, 'toggle'> { - toggle: (toggleRef: React.RefObject) => ReactElement; -} - -export const AutoDropdown: FunctionComponent = ({ - toggle, - ...props -}) => { - const { state: isOpen, toggle: toggleOpen } = useToggle(false); - - return ( - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/0.Canvas.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/Canvas/0.Canvas.stories.mdx deleted file mode 100644 index 9923c65ef..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/0.Canvas.stories.mdx +++ /dev/null @@ -1,43 +0,0 @@ -import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; -import { Canvas, CanvasProvider } from "."; -import * as stories from "./Canvas.stories.tsx"; - - - -# Canvas - -Renders a resizable SVG which allows panning and zooming the content. Try dragging around the example, or scrolling -mouse wheel. - -{stories.example()} - -A `Canvas` component must be used inside a `CanvasProvider` component. If `width` or `height` are not provided to the -`CanvasProvider`, they will be automatically determined. - -## CanvasProvider props - - - -## Canvas props - -Same as the `svg` component. - -## Stories - -### With pan/zoom disabled. - -{stories.panZoomDisabled()} - -### With pan/zoom enabled - -{stories.panZoomEnabled()} - -### With a custom initial zoom and pan - -{stories.initialZoomAndPan()} - -### Automatically sized - -In this example, a white circle should be visible sitting on the bottom right corner of a red square. - -{stories.automaticallySized()} diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/1.HTMLObject.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/Canvas/1.HTMLObject.stories.mdx deleted file mode 100644 index 292a1fd37..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/1.HTMLObject.stories.mdx +++ /dev/null @@ -1,16 +0,0 @@ -import { Meta, Props } from "@storybook/addon-docs/blocks"; -import LinkTo from "@storybook/addon-links/react"; -import { example } from "./HTMLObject.stories.tsx"; -import { HTMLObject } from "."; - - - -# HTMLObject - -A component to embed any HTML element inside a Canvas component. - -
{example()}
- -## HTMLObject Props - - diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/2.Arc.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/Canvas/2.Arc.stories.mdx deleted file mode 100644 index 16e2c100f..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/2.Arc.stories.mdx +++ /dev/null @@ -1,26 +0,0 @@ -import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; -import LinkTo from "@storybook/addon-links/react"; -import * as stories from "./Arc.stories.tsx"; -import { Arc } from "."; - - - -# Arc - -Elements rendered inside a Canvas can be linked together using a -`Arc`. - -A `Arc` is rendered as an arch between a start and and end point, specified as SVG coordinates. The width and the -color of the arch can be customized. - -{stories.example()} - -## Arc Props - - - -## Stories - -### Multiple Arcs with custom width and color - -{stories.customWidthAndColor()} diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/3.NodesArc.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/Canvas/3.NodesArc.stories.mdx deleted file mode 100644 index 6e82c3706..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/3.NodesArc.stories.mdx +++ /dev/null @@ -1,52 +0,0 @@ -import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; -import LinkTo from "@storybook/addon-links/react"; -import * as stories from "./NodesArc.stories.tsx"; -import { NodeRef, NodesArc } from "."; - - - -# NodesArc - -It's possible to create Arcs between elements without knowing the -start and end coordinates beforehand using `NodesArc` and `NodeRef`. - -This enables the possibility to move elements inside a `Canvas` programmatically without having to deal with coordinates -change. For example, nodes could be animated: - -{stories.example()} - -## NodesArc Props - - - -## NodeRef Props - - - -## Stories - -### Multiple links with custom width and color - -{stories.customWidthAndColor()} - -### SVG elements coordinates can be automatically detected - -{stories.svgElementCoordinates()} - -### HTML elements coordinates can be automatically detected - - - {stories.htmlElementCoordinates()} - - -### Nested HTML elements coordinates can be automatically detected - - - {stories.nestedHtmlElementCoordinates()} - - -### HTML elements coordinates can be automatically detected - - - {stories.linksBetweenDifferentHtmlElements()} - diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css b/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css deleted file mode 100644 index cd9df37a3..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.clickable { - cursor: pointer; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css.d.ts deleted file mode 100644 index 4cfa81e39..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "clickable": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.stories.tsx deleted file mode 100644 index 3f07e1bbd..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.stories.tsx +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Arc } from './Arc'; -import { Canvas } from './Canvas'; -import { CanvasProvider } from './CanvasContext'; -import React from 'react'; - -const obj = { - title: 'Canvas', - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( - - - - - - - -); - -export const customWidthAndColor = () => ( - - - - - - - - - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.tsx deleted file mode 100644 index 46cdf0964..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Arc.tsx +++ /dev/null @@ -1,95 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, SVGAttributes, useMemo } from 'react'; -import { linkHorizontal, linkVertical } from 'd3-shape'; - -import { Coords } from './models'; -import { css } from '@patternfly/react-styles'; -import styles from './Arc.module.css'; -import { useToggle } from '../../impl/utils'; - -export interface IArcProps extends Omit, 'end'> { - start: Coords; - end: Coords; - startSideSize?: number; - endSideSize?: number; - type?: 'horizontal' | 'vertical'; - strokeWidth?: number; - color?: string; - hoveredColor?: string; - sideStrokeWidth?: number; -} - -export const Arc: FunctionComponent = ({ - start, - end, - type = 'horizontal', - color = 'grey', - hoveredColor = color, - strokeWidth = 2, - startSideSize = strokeWidth, - endSideSize = strokeWidth, - sideStrokeWidth = 5, - className, - children, - ...props -}) => { - const { - state: hovered, - toggleOn: toggleHoverOn, - toggleOff: toggleHoverOff, - } = useToggle(false); - const s = strokeWidth; - const appliedColor = hovered ? hoveredColor : color; - - const link = useMemo( - () => - (type === 'horizontal' ? linkHorizontal : linkVertical)< - any, - { start: Coords; end: Coords }, - Coords - >() - .context(null) - .source((d) => d.start) - .target((d) => d.end) - .x((d) => d.x) - .y((d) => d.y), - [type], - ); - - const d = link({ start, end }); - - startSideSize = startSideSize / 2; - endSideSize = endSideSize / 2; - return d ? ( - - - - {children} - - ) : null; -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/ArcEdge.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/ArcEdge.tsx deleted file mode 100644 index 46cff2162..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/ArcEdge.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { FunctionComponent } from 'react'; - -import { Coords } from './models'; - -export interface IArcEdgeProps { - start: Coords; - end: Coords; - strokeWidth?: number; - color?: string; -} -export const ArcEdge: FunctionComponent = ({ - start, - end, - strokeWidth, - color, -}) => { - return ( - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css b/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css deleted file mode 100644 index e70254a5d..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css +++ /dev/null @@ -1,18 +0,0 @@ -.canvasWrapper { - flex: 1; - height: 100%; - overflow: hidden; -} - -.svg { - display: "block", -} - -.svg * { - transition: stroke 0.35s, stroke-width 0.15s; -} - -.panning { - background-image: url(canvasBg.png); - background-repeat: repeat; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css.d.ts deleted file mode 100644 index dcb78e88b..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.module.css.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const styles: { - readonly "canvasWrapper": string; - readonly "svg": string; - readonly "panning": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.stories.tsx deleted file mode 100644 index f557154e9..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.stories.tsx +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Canvas, CanvasProvider } from '.'; -import React from 'react'; - -const obj = { - title: 'Canvas', - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( - - - - - - - -); - -export const panZoomDisabled = () => ( - - - - - - - -); - -export const panZoomEnabled = () => ( - - - - - - - -); - -export const initialZoomAndPan = () => ( - - - - - - - -); - -export const automaticallySized = () => ( -
- - - - - -
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.tsx deleted file mode 100644 index b14fdc7b7..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/Canvas.tsx +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { - CSSProperties, - FunctionComponent, - SVGAttributes, - useEffect, - useMemo, -} from 'react'; -import { CanvasTransforms } from './CanvasTransforms'; -import { css } from '@patternfly/react-styles'; -import styles from './Canvas.module.css'; -import { useCanvas } from './CanvasContext'; -import { useDimensions } from '../../../hooks/useDimensions'; - -export interface ICanvasProps extends SVGAttributes { - isFilled?: boolean; -} - -export const Canvas: FunctionComponent = ({ - children, - className, - style, - isFilled = true, - ...props -}) => { - const { - initialWidth, - initialHeight, - setDimension, - addRedrawListener, - removeRedrawListener, - } = useCanvas(); - const [dimensionsRef, dimensions, measure] = useDimensions(); - useEffect(() => { - setDimension({ - width: dimensions.width, - height: dimensions.height, - offsetLeft: dimensions.left, - offsetTop: dimensions.top, - }); - }, [dimensions, setDimension]); - - useEffect(() => { - addRedrawListener(measure); - return () => removeRedrawListener(measure); - }, [addRedrawListener, measure, removeRedrawListener]); - - const { allowPanning, isPanning, zoom, bindCanvas } = useCanvas(); - const svgStyle = useMemo(() => { - return { - cursor: allowPanning ? (isPanning ? 'grabbing' : 'grab') : undefined, - userSelect: allowPanning && isPanning ? 'none' : 'auto', - backgroundSize: `${30 * zoom}px ${30 * zoom}px`, - width: initialWidth || '100%', - height: initialHeight || '100%', - ...style, - } as CSSProperties; - }, [allowPanning, initialHeight, initialWidth, isPanning, style, zoom]); - return ( -
- - {children} - -
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasContext.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasContext.tsx deleted file mode 100644 index 3005e9d30..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasContext.tsx +++ /dev/null @@ -1,227 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Coords, RectWithId, Rects } from './models'; -import {FunctionComponent, createContext, useContext, PropsWithChildren} from 'react'; -import { - ReactElement, - useCallback, - useEffect, - useMemo, - useRef, - useState, -} from 'react'; - -import { scaleLinear } from 'd3-scale'; -import { useGesture } from 'react-use-gesture'; - -type RedrawCallback = () => unknown; -type RedrawCallbacks = Array; - -export interface ICanvasDimension { - width: number; - height: number; - offsetTop: number; - offsetLeft: number; -} - -export interface ICanvasContext { - initialWidth?: number; - initialHeight?: number; - dimensions: ICanvasDimension; - setDimension: (dimension: ICanvasDimension) => void; - panX: number; - panY: number; - addRedrawListener: (callback: RedrawCallback) => void; - removeRedrawListener: (callback: RedrawCallback) => void; - addRect: (rect: RectWithId) => void; - removeRect: (id: string) => void; - getRects: () => Rects; - zoom: number; - updateZoom: (tick: number) => void; - resetZoom: () => void; - pan: Coords; - setPan: (pan: Coords) => void; - resetPan: () => void; - allowPanning: boolean; - isPanning: boolean; - bindCanvas: ReturnType; -} -const CanvasContext = createContext(null); - -export interface ICanvasProviderProps extends PropsWithChildren { - allowPanning?: boolean; - initialWidth?: number; - initialHeight?: number; - initialZoom?: number; - initialPanX?: number; - initialPanY?: number; -} -export const CanvasProvider: FunctionComponent = ({ - children, - allowPanning = false, - initialWidth = 0, - initialHeight = 0, - initialZoom = 1, - initialPanX = 0, - initialPanY = 0, -}) => { - const [canvasDimension, setCanvasDimension] = useState({ - width: 0, - height: 0, - offsetLeft: 0, - offsetTop: 0, - }); - const rects = useRef([]); - const removeRect = useCallback((id: string) => { - rects.current = rects.current.filter((r) => r.id !== id); - }, []); - const addRect = useCallback( - (rect: RectWithId) => { - removeRect(rect.id); - rects.current = [...rects.current, rect]; - }, - [removeRect], - ); - const getRects = useCallback(() => rects.current, []); - const redrawCallbacks = useRef([]); - const addRedrawListener = useCallback((cb: RedrawCallback) => { - redrawCallbacks.current = [...redrawCallbacks.current, cb]; - }, []); - const removeRedrawListener = useCallback((cb: RedrawCallback) => { - redrawCallbacks.current = redrawCallbacks.current.filter((c) => c !== cb); - }, []); - - useEffect(function effectLoop() { - let frame = requestAnimationFrame(function loop() { - frame = requestAnimationFrame(loop); - - for (let i = 0, len = redrawCallbacks.current.length; i < len; i++) { - redrawCallbacks.current[i](); - } - }); - return function cancelEffectLoop() { - cancelAnimationFrame(frame); - }; - }, []); - - const [{ x: panX, y: panY }, setPan] = useState({ - x: initialPanX, - y: initialPanY, - }); - const [zoom, setZoom] = useState(initialZoom); - - const updateZoom = useCallback( - (tick: number) => { - setZoom((currentZoom) => Math.max(0.2, Math.min(2, currentZoom + tick))); - }, - [setZoom], - ); - - const resetZoom = useCallback(() => setZoom(1), [setZoom]); - const resetPan = useCallback(() => setPan({ x: 0, y: 0 }), [setPan]); - const [isPanning, setIsPanning] = useState(false); - const bindCanvas = useGesture( - { - onDrag: ({ movement: [x, y], first, last, memo = [panX, panY] }) => { - if (first) setIsPanning(true); - if (last) setIsPanning(false); - setPan({ x: x + memo[0], y: y + memo[1] }); - return memo; - }, - onWheel: ({ delta }) => { - updateZoom(delta[1] * -0.001); - }, - }, - { - drag: { - delay: true, - }, - enabled: allowPanning, - }, - ); - - return ( - - {children} - - ); -}; - -export function useCanvas() { - const context = useContext(CanvasContext); - if (!context) { - throw new Error('A CanvasProvider wrapper is required to use this hook.'); - } - const { - dimensions: { width, height }, - zoom, - } = context; - - const xDomain = useMemo( - () => - scaleLinear() - .range([0, width]) - .domain([0, width * zoom]), - [width, zoom], - ); - const yDomain = useMemo( - () => - scaleLinear() - .range([height, 0]) - .domain([height * zoom, 0]), - [height, zoom], - ); - - return { - ...context, - xDomain, - yDomain, - }; -} - -export interface IWithCanvasProps { - children: (props: ICanvasContext) => ReactElement; -} - -export const WithCanvas: FunctionComponent = ({ - children, -}) => { - const context = useCanvas(); - return children(context); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasTransforms.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasTransforms.tsx deleted file mode 100644 index 4316c5a52..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/CanvasTransforms.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { FunctionComponent } from 'react'; -import { useCanvas } from './CanvasContext'; - -export const CanvasTransforms: FunctionComponent = ({ children }) => { - const { panX, panY, zoom /* width, height, xDomain, yDomain*/ } = useCanvas(); - // const originX = width / 2; - // const originY = height / 2; - // const x = xDomain(zoom * (panX + originX) - originX); - // const y = yDomain(zoom * (panY + originY) - originY); - - return ( - - {children} - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css b/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css deleted file mode 100644 index c3364ce1a..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.foreignObject { - overflow: visible; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css.d.ts deleted file mode 100644 index f7dc69134..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "foreignObject": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.stories.tsx deleted file mode 100644 index 50ca1bf19..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.stories.tsx +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Canvas } from './Canvas'; -import { CanvasProvider } from './CanvasContext'; -import { HTMLObject } from './HTMLObject'; -import React from 'react'; - -const obj = { - title: 'Canvas', - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( - - - - - -
-

Plain html content inside an SVG.

-

- This is rendered with respect to SVG rules, so this element will - stay in front of the red circle. -

- -
-
-
-
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.tsx deleted file mode 100644 index e04f4c68c..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/HTMLObject.tsx +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { SVGProps, forwardRef } from 'react'; -import { css } from '@patternfly/react-styles'; -import styles from './HTMLObject.module.css'; - -export interface IHTMLObjectProps extends SVGProps { - width: number; - height: number; - x: number; - y: number; -} - -export const HTMLObject = forwardRef( - function HTMLObject( - { children, width, height, x, y, className, ...props }, - ref, - ) { - return ( - - {children} - - ); - }, -); diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.stories.tsx deleted file mode 100644 index 4369f4df0..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.stories.tsx +++ /dev/null @@ -1,211 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Canvas, - CanvasProvider, - HTMLObject, - NodeRef, - NodeRefProvider, - NodesArc, -} from '.'; -import React, { - FunctionComponent, - createElement, - useCallback, - useState, -} from 'react'; -import { animated, useSpring } from 'react-spring'; - -import PrintNodeRef from './PrintNodeRef'; - -const obj = { - title: 'UI|Canvas/NodesArc', - includeStories: [], // or don't load this file at all - parameters: { - chromatic: { disableSnapshot: true }, - }, -}; -export default obj; - -export const example: FunctionComponent = () => - createElement(() => { - const [reverse, setReverse] = useState(false); - const onRest = useCallback(() => setReverse(!reverse), [reverse]); - // @ts-ignore - const props = useSpring({ - from: { x: 30, y: 0 }, - to: [ - { x: 250, y: 0 }, - { x: 250, y: 260 }, - { x: 30, y: 260 }, - { x: 30, y: 0 }, - ], - config: { duration: 2500 }, - onRest, - }); - return ( - - - - - - - - - - - - - - - - - - ); - }); - -export const customWidthAndColor = () => ( - - - - - - - - - - - - - - - - - -); - -export const svgElementCoordinates = () => ( - - - - - - - - - - - - -); - -export const htmlElementCoordinates = () => ( - - - - - - - - - - - -); - -export const nestedHtmlElementCoordinates = () => ( - - - - - - - - - - - - - - - -); - -export const linksBetweenDifferentHtmlElements = () => ( - - - - - -
    - -
  • item a1
  • -
    - -
  • item a2
  • -
    - -
  • item a3
  • -
    -
-
-
- - -
    - -
  • item b1
  • -
    - -
  • item b2
  • -
    - -
  • item b3
  • -
    -
-
-
- - - -
-
-
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.tsx deleted file mode 100644 index 95c3896c3..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/NodesArc.tsx +++ /dev/null @@ -1,144 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Arc, IArcProps } from './Arc'; -import React, { FunctionComponent, useCallback, useEffect, useState } from 'react'; - -import { Coords } from './models'; -import { useCanvas } from './CanvasContext'; -import { useNodeRect } from '../../../providers/NodeRefProvider'; - -function leftCoords(rect: DOMRect) { - const { left, y } = rect; - return { - x: left, - y: y, - }; -} - -function rightCoords(rect: DOMRect) { - const { right, y } = rect; - return { - x: right, - y: y, - }; -} - -function topCoords(rect: DOMRect) { - const { x, top } = rect; - return { - x: x, - y: top, - }; -} - -function bottomCoords(rect: DOMRect) { - const { x, bottom } = rect; - return { - x: x, - y: bottom, - }; -} - -export interface INodesArcProps extends Omit, 'end'>, 'type'> { - start: string; - end: string; -} - -export const NodesArc: FunctionComponent = ({ start: startId, end: endId, color, ...props }) => { - const { addRedrawListener, removeRedrawListener } = useCanvas(); - const getRect = useNodeRect(); - const [coords, setCoords] = useState<{ - start: Coords; - end: Coords; - startSideSize: number; - endSideSize: number; - } | null>(null); - const [linkType, setLinkType] = useState<'horizontal' | 'vertical'>('horizontal'); - - const calculateCoords = useCallback( - function calculateCoordsCb() { - const startRect = getRect(startId); - const endRect = getRect(endId); - if (startRect && endRect) { - const [smallRect, bigRect] = startRect.width < endRect.width ? [startRect, endRect] : [endRect, startRect]; - const sameVerticalSpace = - (smallRect.left > bigRect.left && smallRect.left < bigRect.right) || - (smallRect.right < bigRect.right && smallRect.right > bigRect.left); - if (sameVerticalSpace) { - const [aboveId, bottomId] = startRect.top > endRect.top ? [startId, endId] : [endId, startId]; - const start = getRect(aboveId); - const end = getRect(bottomId); - if (start && end) { - setCoords({ - start: topCoords(start), - end: bottomCoords(end), - startSideSize: start.clipped ? 0 : start.width, - endSideSize: end.clipped ? 0 : end.width, - }); - setLinkType('vertical'); - } else { - setCoords(null); - } - } else { - const [leftId, rightId] = startRect.left > endRect.left ? [startId, endId] : [endId, startId]; - const start = getRect(leftId); - const end = getRect(rightId); - if (start && end) { - setCoords({ - start: leftCoords(start), - end: rightCoords(end), - startSideSize: start.clipped ? 0 : start.height, - endSideSize: end.clipped ? 0 : end.height, - }); - setLinkType('horizontal'); - } else { - setCoords(null); - } - } - } else { - setCoords(null); - } - }, - [endId, startId, getRect], - ); - - useEffect( - function onNodeArcRedrawCb() { - addRedrawListener(calculateCoords); - return () => { - removeRedrawListener(calculateCoords); - }; - }, - [addRedrawListener, removeRedrawListener, calculateCoords], - ); - - return coords ? ( - - ) : null; -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/PrintNodeRef.tsx b/packages/ui/src/_bk_atlasmap/UI/Canvas/PrintNodeRef.tsx deleted file mode 100644 index 303ee7c1a..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/PrintNodeRef.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { NodeRect, useNodeRect } from '../../../providers/NodeRefProvider'; -import React, { HTMLAttributes, forwardRef, useCallback, useEffect, useState } from 'react'; - -import { useCanvas } from './CanvasContext'; - -const printNodeRef = forwardRef>(function PrintNodeRef( - { id, children, ...props }, - ref, -) { - const { addRedrawListener, removeRedrawListener } = useCanvas(); - const getRect = useNodeRect(); - const [rect, setRect] = useState(null); - - const getAndSetRect = useCallback(() => { - if (id) { - const nodeRect = getRect(id); - setRect(nodeRect ? getRect(id) : null); - } - }, [getRect, id]); - - useEffect(() => { - addRedrawListener(getAndSetRect); - return () => { - removeRedrawListener(getAndSetRect); - }; - }, [addRedrawListener, removeRedrawListener, getAndSetRect]); - - return ( -
-
{JSON.stringify(rect, null, 2)}
- {children} -
- ); -}); -export default printNodeRef; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/canvasBg.png b/packages/ui/src/_bk_atlasmap/UI/Canvas/canvasBg.png deleted file mode 100644 index aab827d20eb67821557a13f1f6ffdc26fb5b7a6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10561 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 W_grym0wpf6O*mzJvh28L%zpun$wcS? diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/index.ts b/packages/ui/src/_bk_atlasmap/UI/Canvas/index.ts deleted file mode 100644 index 1cf846694..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './Canvas'; -export * from './CanvasContext'; -export * from './CanvasTransforms'; -export * from './HTMLObject'; -export * from './Arc'; -export * from './ArcEdge'; -export * from './models'; -export * from './NodesArc'; -export * from './useBoundingCanvasRect'; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/models.ts b/packages/ui/src/_bk_atlasmap/UI/Canvas/models.ts deleted file mode 100644 index 3cdb06c61..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/models.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export type Coords = { - x: number; - y: number; -}; -export type Rect = { - x: number; - y: number; - width: number; - height: number; -}; -export type RectWithId = { - id: string; -} & Rect; -export type Rects = Array; diff --git a/packages/ui/src/_bk_atlasmap/UI/Canvas/useBoundingCanvasRect.ts b/packages/ui/src/_bk_atlasmap/UI/Canvas/useBoundingCanvasRect.ts deleted file mode 100644 index 1ebc42934..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Canvas/useBoundingCanvasRect.ts +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { useCallback } from 'react'; -import { useCanvas } from './CanvasContext'; - -export function useBoundingCanvasRect() { - const { - xDomain, - yDomain, - dimensions: { offsetLeft, offsetTop }, - panX, - panY, - } = useCanvas(); - const convertClientX = useCallback( - (x: number) => xDomain(x - offsetLeft - panX), - [offsetLeft, panX, xDomain], - ); - const convertClientY = useCallback( - (y: number) => yDomain(y - offsetTop - panY), - [offsetTop, panY, yDomain], - ); - const convertDOMRectToCanvasRect = useCallback( - (rect: DOMRect): DOMRect => { - return { - x: convertClientX(rect.x), - y: convertClientY(rect.y), - width: xDomain(rect.width), - height: yDomain(rect.height), - top: convertClientY(rect.top), - right: convertClientX(rect.right), - bottom: convertClientY(rect.bottom), - left: convertClientX(rect.left), - } as DOMRect; - }, - [convertClientX, convertClientY, xDomain, yDomain], - ); - return { - getBoundingCanvasRect: useCallback( - (element: Element): DOMRect => { - const rect = element.getBoundingClientRect() as DOMRect; - return convertDOMRectToCanvasRect(rect); - }, - [convertDOMRectToCanvasRect], - ), - convertDOMRectToCanvasRect, - convertClientX, - convertClientY, - }; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.module.css.d.ts deleted file mode 100644 index 94ebc60fd..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.module.css.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const styles: { - readonly "column": string; - readonly "hidden": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.spec.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.spec.tsx deleted file mode 100644 index 46ca26659..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.spec.tsx +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import * as React from 'react'; - -import { Column } from '../../../layout/views/sourceTarget/Column'; -import { example } from './Column.stories'; -import { render } from '@testing-library/react'; - -describe('Column tests', () => { - test('should render', async () => { - const { getByText } = render(example()); - getByText('I can scroll.'); - }); - - /* the following tests are not really meant to be unit tests since checking - * the actual rendering of the DOM is better handled in a real browser, like - * Puppeteer. But I don't like Jest's snapshots, so... - * */ - - test('should respect the parent size', async () => { - const { getByTestId } = render( - - test - , - ); - expect(getByTestId('column').style).toHaveProperty('flex', '0 0 50%'); - }); - - test('should respect the visible prop=false', async () => { - const { getByTestId } = render( - - test - , - ); - expect(getByTestId('column').className).toBe('column hidden'); - }); - - test('should respect the visible prop=true', async () => { - const { getByTestId } = render( - - test - , - ); - expect(getByTestId('column').className).toBe('column'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.stories.tsx deleted file mode 100644 index c1dab85be..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Column.stories.tsx +++ /dev/null @@ -1,433 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Column, ColumnBody, SearchableColumnHeader } from '.'; -import { boolean, number } from '@storybook/addon-knobs'; - -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'ColumnMapper', - component: Column, - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( - - - -

I can scroll.

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

- -

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

- -

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

- -

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

- -

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi at - deserunt dolor eos est impedit ipsa, laboriosam laborum nisi officia - officiis quis reiciendis repellendus reprehenderit sapiente sint sunt - totam vitae! -

-
-
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.module.css.d.ts deleted file mode 100644 index 0cf2655e3..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "body": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.spec.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.spec.tsx deleted file mode 100644 index 171c2008e..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnBody.spec.tsx +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import * as React from 'react'; - -import { ColumnBody } from '../../../layout/views/sourceTarget/ColumnBody'; -import { render } from '@testing-library/react'; - -describe('ColumnBody tests', () => { - test('should render', async () => { - const { getByText } = render(test); - getByText('test'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.module.css.d.ts deleted file mode 100644 index 510a24257..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.module.css.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -declare const styles: { - readonly "header": string; - readonly "plain": string; - readonly "toolbar": string; - readonly "title": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.spec.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.spec.tsx deleted file mode 100644 index 1b148e69a..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.spec.tsx +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { example } from './ColumnHeader.stories'; -import { render } from '@testing-library/react'; - -describe('ColumnHeader tests', () => { - test('should render', async () => { - const { getByText } = render(example()); - getByText('Source'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.stories.tsx deleted file mode 100644 index ac5e26d6f..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnHeader.stories.tsx +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ColumnHeader } from '.'; -import React from 'react'; - -const obj = { - title: 'ColumnMapper', - component: ColumnHeader, - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( -
- - -
, -
- -
, -
- -
, - ]} - /> -
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.module.css.d.ts deleted file mode 100644 index 7a0276dfe..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "canvas": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.spec.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.spec.tsx deleted file mode 100644 index 51c3a0279..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.spec.tsx +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { act, render } from '@testing-library/react'; -import { example } from './ColumnMapper.stories'; - -describe('ColumnMapper tests', () => { - test('should render', async () => { - const { getByText, findByTestId } = render(example()); - getByText('Source'); - getByText('Target'); - // lines are rendered after a DOM layout event - await act(async () => { - await findByTestId('Fiz:Foo'); - await findByTestId('Foo bar:Baz'); - }); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.stories.tsx deleted file mode 100644 index e15ce259f..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/ColumnMapper.stories.tsx +++ /dev/null @@ -1,306 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { AddCircleOIcon, ImportIcon } from '@patternfly/react-icons'; -import { - CanvasProvider, - Column, - ColumnBody, - ColumnMapper, - Columns, - Document, - DocumentField, - DocumentGroup, - NodeRef, - NodeRefProvider, - NodesArc, - SearchableColumnHeader, - Tree, - TreeGroup, -} from '..'; - -import { Button } from '@patternfly/react-core'; -import React from 'react'; -import { TreeItem } from '../Tree/TreeItem'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'ColumnMapper', - component: ColumnMapper, - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( - - - - - - - - , - , - ]} - /> - - - -
- - - - - ( - - )} - > - {() => ( - <> - - ( - - )} - > - {() => ( - - - {() => ( - - )} - - - )} - - - - - {() => ( - - )} - - - - )} - - - - - - -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
-
-
-
-
-
- - - - , - , - ]} - /> - - - -
- - - - <> - - ( - - )} - > - {() => ( - - - {() => ( - - )} - - - )} - - - - - - - - - - - - - -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
- -
lorem dolor
-
-
-
-
-
-
-
- - -
-
-
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.module.css.d.ts deleted file mode 100644 index b8932fc97..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "wrapper": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.spec.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.spec.tsx deleted file mode 100644 index 2a0d970e7..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/Columns.spec.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import * as React from 'react'; -import { Canvas, CanvasProvider } from '../Canvas'; - -import { Columns } from '../../../layout/views/sourceTarget/Columns'; -import { render } from '@testing-library/react'; - -describe('Columns tests', () => { - test('should render', async () => { - const { getByText } = render( - - - test - - , - ); - getByText('test'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.spec.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.spec.tsx deleted file mode 100644 index ad9c57ef1..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.spec.tsx +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React from 'react'; -import { SearchableColumnHeader } from '../../../components/SearchableColumnHeader'; -import { example } from './SearchableColumnHeader.stories'; -import { render } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; - -describe('SearchableColumnHeader tests', () => { - test('should render', async () => { - const { getByText } = render(example()); - getByText('Source'); - }); - - test('change events are propagated when typing', async () => { - const searchInputLabel = 'Search fields'; - const onSearchSpy = jest.fn(); - const { findByLabelText } = render(); - - const inputField = await findByLabelText(searchInputLabel); - - await userEvent.type(inputField, 'ABC'); - - // the onChange event should be triggered for every keystoke - expect(onSearchSpy).toHaveBeenCalledTimes(3); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.stories.tsx deleted file mode 100644 index ff470ab30..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/SearchableColumnHeader.stories.tsx +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React from 'react'; - -import { SearchableColumnHeader } from '.'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'ColumnMapper', - component: SearchableColumnHeader, - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( -
- - -
, -
- -
, -
- -
, - ]} - /> - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.stories.mdx deleted file mode 100644 index bf13449db..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.stories.mdx +++ /dev/null @@ -1,40 +0,0 @@ -import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; -import { example as columnMapperExample } from "./ColumnMapper.stories.tsx"; -import { example as columnExample } from "./Column.stories.tsx"; -import { example as columnHeaderExample } from "./ColumnHeader.stories.tsx"; -import { example as searchableColumnHeaderExample } from "./SearchableColumnHeader.stories.tsx"; -import { Column, ColumnHeader, ColumnMapper, SearchableColumnHeader } from ".."; - - - -# ColumnMapper - -{columnMapperExample()} - -## Props - - - -# Column - -{columnExample()} - -## Props - - - -# ColumnHeader - -{columnHeaderExample()} - -## Props - - - -# SearchableColumnHeader - -{searchableColumnHeaderExample()} - -## Props - - diff --git a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.ts b/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.ts deleted file mode 100644 index c22b08aef..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ColumnMapper/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ diff --git a/packages/ui/src/_bk_atlasmap/UI/ConditionalExpressionInput.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ConditionalExpressionInput.module.css.d.ts deleted file mode 100644 index 7e1523922..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ConditionalExpressionInput.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "toolbarItem": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/DelayedBoolean.tsx b/packages/ui/src/_bk_atlasmap/UI/DelayedBoolean.tsx deleted file mode 100644 index 04c9a9875..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DelayedBoolean.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, ReactElement, useEffect, useState } from 'react'; - -export interface IDelayedBooleanProps { - value: boolean; - delay?: number; - children: (value: boolean) => ReactElement | null; -} - -export const DelayedBoolean: FunctionComponent = ({ - value, - delay = 1000, - children, -}) => { - const [delayedValue, setDelayedValue] = useState(value); - useEffect(() => { - const updateValue = () => setDelayedValue(value); - const timer = setTimeout(updateValue, delay); - return () => clearTimeout(timer); - }, [delay, value]); - return children(delayedValue); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Document.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/Document.module.css.d.ts deleted file mode 100644 index bb4f2d7a1..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Document.module.css.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -declare const styles: { - readonly "card": string; - readonly "stacked": string; - readonly "head": string; - readonly "header": string; - readonly "actions": string; - readonly "headerButton": string; - readonly "bodyNoPadding": string; - readonly "bodyWithPadding": string; - readonly "hidden": string; - readonly "noShadows": string; - readonly "dropTarget": string; - readonly "dropAccepted": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/Document.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/Document.stories.mdx deleted file mode 100644 index 33eae4e7c..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Document.stories.mdx +++ /dev/null @@ -1,27 +0,0 @@ -import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; -import * as stories from "./Document.stories.tsx"; -import { Document } from "./Document"; - - - -# Document - -{stories.document()} - -## Props - - - -## Stories - -### States - -{stories.states()} - -### No actions - -{stories.noActions()} - -### Documents can be stacked - -{stories.stacked()} diff --git a/packages/ui/src/_bk_atlasmap/UI/Document.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/Document.stories.tsx deleted file mode 100644 index bd38018d7..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Document.stories.tsx +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button } from '@patternfly/react-core'; -import { Document } from '../../components/documents/Document'; -import React from 'react'; -import { text } from '@storybook/addon-knobs'; - -const obj = { - title: 'Document', - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const document = () => ( -
- some action]} - > - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium assumenda atque consequuntur cupiditate - doloremque eius eligendi et, ex, harum impedit ipsum magnam minus, officia provident qui quidem veniam. Facere, - quo. - -
-); - -export const states = () => ( -
- - - -
-); - -export const noActions = () => ( -
- - Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium assumenda atque consequuntur cupiditate - doloremque eius eligendi et, ex, harum impedit ipsum magnam minus, officia provident qui quidem veniam. Facere, - quo. - -
-); - -export const stacked = () => ( -
- - - -
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentActions.tsx b/packages/ui/src/_bk_atlasmap/UI/DocumentActions.tsx deleted file mode 100644 index 3e3b29ae0..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentActions.tsx +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Dropdown, - DropdownItem, - Divider, - MenuToggle, - MenuToggleElement, - MenuToggleAction, -} from '@patternfly/react-core'; -import { - FolderCloseIcon, - FolderOpenIcon, - TrashIcon, -} from '@patternfly/react-icons'; -import { FunctionComponent, useState } from 'react'; - -export interface IDocumentActions { - onExpandFields: () => void; - onCollapseFields: () => void; - onDelete: () => void; -} - -export const DocumentActions: FunctionComponent = ({ - onExpandFields, - onCollapseFields, - onDelete, -}) => { - const [showActions, setShowActions] = useState(false); - const toggleActions = () => setShowActions(!showActions); - - - return ( - ) => - - - , - ]}} - variant="primary" - onClick={toggleActions} - /> - } - isOpen={showActions} - > - } - key={'collapse'} - onClick={onCollapseFields} - > - Collapse all - , - , - } key={'delete'} onClick={onDelete}> - Remove instance or schema file - , - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css b/packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css deleted file mode 100644 index af8c4f1b2..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css +++ /dev/null @@ -1,59 +0,0 @@ -.element { - --bg-color: var(--pf-global--BackgroundColor--100); - --bg-color-fade: rgba(255, 255, 255, 0.5); - color: var(--pf-global--Color--100); - border: 3px solid transparent; - background: var(--bg-color); -} - -.row { - /* padding: 0 1rem; */ - display: flex; - position: relative; -} - -.nameWrapper { - display: flex !important; - align-items: center; -} - -.nameIcon { - width: 48px; -} - -.statusIcons { - display: flex; - align-items: center; - padding: 0 1rem; -} -.statusIcons > * { - margin: 0 0.5rem; -} - -.isDragging { - color: var(--pf-global--active-color--400); -} - -.isSelected { - --bg-color: var(--pf-global--BackgroundColor--150); - --bg-color-fade: rgba(245, 245, 245, 0.5); -} - -.isDisabled { - pointer-events: none; - color: var(--pf-global--disabled-color--200); -} - -.actions { - position: absolute; - top: 0; - right: 0; - height: 100%; - text-align: right; - transition: all 0.2s; - background: - linear-gradient(to left, var(--bg-color) calc(100% - 2rem), var(--bg-color-fade)); - padding-left: 2rem; -} - - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css.d.ts deleted file mode 100644 index c5ed621c6..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentField.module.css.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -declare const styles: { - readonly "element": string; - readonly "row": string; - readonly "nameWrapper": string; - readonly "nameIcon": string; - readonly "statusIcons": string; - readonly "isDragging": string; - readonly "isSelected": string; - readonly "isDisabled": string; - readonly "actions": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentField.tsx b/packages/ui/src/_bk_atlasmap/UI/DocumentField.tsx deleted file mode 100644 index d9459ed96..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentField.tsx +++ /dev/null @@ -1,107 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - PropsWithChildren, - ReactChild, - ReactElement, - forwardRef, -} from 'react'; - -import { Tooltip } from '@patternfly/react-core'; -import { css } from '@patternfly/react-styles'; -import styles from './DocumentField.module.css'; -import { useToggle } from '../impl/utils'; - -export interface IDocumentFieldProps { - name: ReactChild; - type: string; - scope?: string; - icon?: ReactElement; - statusIcons?: (ReactElement | null)[]; - actions?: (ReactElement | null)[]; - showType?: boolean; - isDragging?: boolean; - isFocused?: boolean; - isSelected?: boolean; - isDisabled?: boolean; -} - -export const DocumentField = forwardRef< - HTMLDivElement, - PropsWithChildren ->(function DocumentField( - { - name, - type, - scope, - icon, - statusIcons, - actions, - showType = false, - isDragging = false, - isFocused = false, - isSelected = false, - isDisabled = false, - children, - }, - ref, -) { - const { - state: isHovering, - toggleOff: hideActions, - toggleOn: showActions, - } = useToggle(false); - return ( -
-
- {icon &&
{icon}
} - ` : `${name}`} - entryDelay={750} - exitDelay={100} - > -
- {name} - {showType && ` (${type})`} - - {statusIcons && statusIcons?.filter((a) => a)} - -
-
- {(isHovering || isFocused) && actions && !isDisabled && ( -
{actions?.filter((a) => a)}
- )} -
- {children} -
- ); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css b/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css deleted file mode 100644 index 4d2e8a82a..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css +++ /dev/null @@ -1,6 +0,0 @@ -.form { - padding: 1rem; - margin-top: 0.5rem; -} - - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css.d.ts deleted file mode 100644 index fe509acd5..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "form": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.tsx b/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.tsx deleted file mode 100644 index 51df923ee..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreview.tsx +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Form, FormGroup, TextInput } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import styles from './DocumentFieldPreview.module.css'; -import { useDebouncedCallback } from 'use-debounce'; - -export interface IDocumentFieldPreviewProps { - id: string; - value: string; - onChange: (value: string) => void; -} - -export const DocumentFieldPreview: FunctionComponent< - IDocumentFieldPreviewProps -> = ({ id, value, onChange }) => { - const debouncedOnChange = useDebouncedCallback(onChange, 200); - return ( -
event.stopPropagation()}> - - - -
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css b/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css deleted file mode 100644 index 4d2e8a82a..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css +++ /dev/null @@ -1,6 +0,0 @@ -.form { - padding: 1rem; - margin-top: 0.5rem; -} - - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css.d.ts deleted file mode 100644 index fe509acd5..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "form": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.tsx b/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.tsx deleted file mode 100644 index cd8aeb8ce..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentFieldPreviewResults.tsx +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Form, FormGroup, TextInput } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; -import styles from './DocumentFieldPreviewResults.module.css'; - -export interface IDocumentFieldPreviewResultsProps { - id: string; - value: string; -} - -export const DocumentFieldPreviewResults: FunctionComponent< - IDocumentFieldPreviewResultsProps -> = ({ id, value }) => { - return ( -
- - - -
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentFooter.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/DocumentFooter.module.css.d.ts deleted file mode 100644 index 9de929a56..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentFooter.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "footer": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css b/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css deleted file mode 100644 index 02f3fd091..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css +++ /dev/null @@ -1,13 +0,0 @@ -.buttonContent { - display: flex; - align-items: center; - padding: 0.5rem 1rem 0.5rem 1.2rem; -} - -.buttonIcon { - margin-right: 1rem; -} - -.icon { - padding-left: 1.5rem; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css.d.ts deleted file mode 100644 index 87c87a64b..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.module.css.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const styles: { - readonly "buttonContent": string; - readonly "buttonIcon": string; - readonly "icon": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.tsx b/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.tsx deleted file mode 100644 index 79ed4610c..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/DocumentGroup.tsx +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FolderCloseIcon, FolderOpenIcon } from '@patternfly/react-icons'; -import React, { - PropsWithChildren, - ReactElement, - forwardRef, - useRef, -} from 'react'; -import { Tooltip } from '@patternfly/react-core'; -import styles from './DocumentGroup.module.css'; - -export interface IDocumentGroupProps { - name: string; - icon?: ReactElement; - iconTooltip?: string; - type?: string; - showType?: boolean; - expanded?: boolean; -} - -export const DocumentGroup = forwardRef< - HTMLSpanElement, - PropsWithChildren ->(function DocumentGroup( - { name, type, icon, iconTooltip, showType = false, expanded }, - ref, -) { - const spanRef = useRef(null); - - const handleRef = (el: HTMLSpanElement | null) => { - spanRef.current = el; - if (ref) { - if (typeof ref === 'function') { - ref(el); - } else { - // @ts-ignore - ref.current = el; - } - } - }; - - return ( - - - {expanded ? : } - - {name} - {showType && ` (${type})`} - {icon && ( - - {icon} - - )} - - ); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/ExpressionContent.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/ExpressionContent.stories.tsx deleted file mode 100644 index 9c6c40352..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ExpressionContent.stories.tsx +++ /dev/null @@ -1,129 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { boolean, text } from '@storybook/addon-knobs'; - -import { EnumValue } from '../impl/utils'; -import { ExpressionEditor } from '../../components/expression/ExpressionEditor'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'UI|Mapping expression', -}; -export default obj; - -const executeFieldSearch = (): string[][] => { - return [ - ['foo', 'Foo'], - ['bar', 'Bar'], - ['baz', 'Baz'], - ]; -}; - -const getFieldEnums = (): EnumValue[] => { - return [ - { name: '[ None ]', ordinal: 0 }, - { name: 'rat', ordinal: 1 }, - { name: 'cat', ordinal: 2 }, - { name: 'bat', ordinal: 3 }, - ]; -}; - -const setSelectedEnumValue = (): void => {}; - -export const disabled = () => ( - ({ - str: '', - uuid: '123', - getUuid() { - return this.uuid; - }, - toText() { - return this.str; - }, - })} - isMappingExpressionEmpty={boolean('isMappingExpressionEmpty', true)} - mappingExpressionInit={action('mappingExpressionInit')} - mappingExpressionInsertText={action('mappingExpressionInsertText')} - mappingExpressionObservable={() => null} - mappingExpressionRemoveField={action('mappingExpressionRemoveField')} - mappingExpression={text('Mapping expression', '')} - trailerId={text('Trailer id', 'expression-trailer')} - disabled={boolean('Disabled', true)} - onToggle={action('onToggle')} - setSelectedEnumValue={setSelectedEnumValue} - /> -); - -export const enabledWithExpression = () => ( - ({ - str: '', - uuid: '123', - getUuid() { - return this.uuid; - }, - toText() { - return this.str; - }, - })} - isMappingExpressionEmpty={boolean('isMappingExpressionEmpty', true)} - mappingExpressionInit={action('mappingExpressionInit')} - mappingExpressionInsertText={action('mappingExpressionInsertText')} - mappingExpressionObservable={() => null} - mappingExpressionRemoveField={action('mappingExpressionRemoveField')} - mappingExpression={text('Mapping expression', 'if (prop-city== Boston, city, state)')} - trailerId={text('Trailer id', 'expression-trailer')} - disabled={boolean('Disabled', false)} - onToggle={action('onToggle')} - setSelectedEnumValue={setSelectedEnumValue} - /> -); - -export const enabledWithoutExpression = () => ( - ({ - str: '', - uuid: '123', - getUuid() { - return this.uuid; - }, - toText() { - return this.str; - }, - })} - isMappingExpressionEmpty={boolean('isMappingExpressionEmpty', true)} - mappingExpressionInit={action('mappingExpressionInit')} - mappingExpressionInsertText={action('mappingExpressionInsertText')} - mappingExpressionObservable={() => null} - mappingExpressionRemoveField={action('mappingExpressionRemoveField')} - mappingExpression={text('Mapping expression', '')} - trailerId={text('Trailer id', 'expression-trailer')} - disabled={boolean('Disabled', false)} - onToggle={action('onToggle')} - setSelectedEnumValue={setSelectedEnumValue} - /> -); diff --git a/packages/ui/src/_bk_atlasmap/UI/ExpressionEnumSelect.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ExpressionEnumSelect.module.css.d.ts deleted file mode 100644 index 0d810b85d..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ExpressionEnumSelect.module.css.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const styles: { - readonly "document": string; - readonly "field": string; - readonly "enumSelectMenu": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/ExpressionFieldSearch.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/ExpressionFieldSearch.module.css.d.ts deleted file mode 100644 index a6705f68c..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/ExpressionFieldSearch.module.css.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const styles: { - readonly "document": string; - readonly "field": string; - readonly "searchMenu": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingField.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/MappingField.module.css.d.ts deleted file mode 100644 index 07e04b874..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingField.module.css.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -declare const styles: { - readonly "field": string; - readonly "title": string; - readonly "fieldIndex": string; - readonly "fieldName": string; - readonly "link": string; - readonly "transformationsWrapper": string; - readonly "transformations": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css b/packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css deleted file mode 100644 index 07196b4a5..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css +++ /dev/null @@ -1,9 +0,0 @@ -.wrapper { - background: var(--pf-global--BackgroundColor--light-300); - padding: 0.5rem; - margin: 1rem 0; - font-size: medium; -} -.wrapper .pf-c-expandable__content { - margin: 0 !important; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css.d.ts deleted file mode 100644 index 9bdf55773..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingFields.module.css.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const styles: { - readonly "wrapper": string; - readonly "pf-c-expandable__content": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingFields.tsx b/packages/ui/src/_bk_atlasmap/UI/MappingFields.tsx deleted file mode 100644 index 059e1ff69..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingFields.tsx +++ /dev/null @@ -1,106 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - AddCircleOIcon, - CaretDownIcon, - CaretRightIcon, - PlusIcon, -} from '@patternfly/react-icons'; -import { Button, Tooltip } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import styles from './MappingFields.module.css'; -import { useToggle } from '../impl/utils'; - -export interface IMappingFieldsProps { - isSource: boolean; - title: string; - canAddToSelectedMapping: (isSource: boolean) => boolean; - onCreateConstant: (constants: any | null) => void; - onCreateProperty: (isSource: boolean, props: any | null) => void; -} - -export interface IMappedFieldsProps {} - -export const MappingFields: FunctionComponent = ({ - title, - isSource, - onCreateConstant, - onCreateProperty, - canAddToSelectedMapping, - children, -}) => { - const { state: expanded, toggle: toggleExpanded } = useToggle(true); - - return ( -
- - {title} - Create and map a property.
} - key={'create-property'} - entryDelay={750} - exitDelay={100} - > - - - {isSource && ( - Create and map a source constant.} - key={'create-constant'} - entryDelay={750} - exitDelay={100} - > - - - )} - {expanded && children} - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css b/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css deleted file mode 100644 index 264dd61a1..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css +++ /dev/null @@ -1,6 +0,0 @@ -.transArgs { - margin-left: 1.0rem; - margin-top: 0.5rem; - background: var(--pf-global--BackgroundColor--150); - font-size: small; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css.d.ts deleted file mode 100644 index 790f18a75..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "transArgs": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.spec.tsx b/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.spec.tsx deleted file mode 100644 index 31870e6bd..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.spec.tsx +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - example, - nonRemovable, - stacked, -} from './MappingTransformation.stories'; -import { act } from 'react-dom/test-utils'; -import { render } from '@testing-library/react'; - -describe('MappingTransformation', () => { - test('should render example', async () => { - const { getByTestId } = render(example()); - await act(async () => { - expect( - getByTestId(`user-field-action-Sample transformation`).tagName, - ).toBe('SELECT'); - const checkbox = getByTestId( - `user-field-action-Sample transformation-transformation-3-checkbox`, - ); - expect(checkbox.tagName).toBe('INPUT'); - expect(checkbox.getAttribute('type')).toBe('checkbox'); - }); - }); - - test('should render nonRemovable', async () => { - const { getByTestId } = render(nonRemovable()); - await act(async () => { - expect( - getByTestId(`user-field-action-Sample transformation`).tagName, - ).toBe('SELECT'); - const checkbox = getByTestId( - `user-field-action-Sample transformation-transformation-3-checkbox`, - ); - expect(checkbox.tagName).toBe('INPUT'); - expect(checkbox.getAttribute('type')).toBe('checkbox'); - }); - }); - - test('should render stacked', async () => { - const { getAllByTestId } = render(stacked()); - await act(async () => { - getAllByTestId(`user-field-action-Sample transformation`).forEach( - (element) => expect(element.tagName).toBe('SELECT'), - ); - getAllByTestId( - `user-field-action-Sample transformation-transformation-3-checkbox`, - ).forEach((element) => { - expect(element.tagName).toBe('INPUT'); - expect(element.getAttribute('type')).toBe('checkbox'); - }); - }); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.stories.tsx deleted file mode 100644 index 5cae03e17..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.stories.tsx +++ /dev/null @@ -1,123 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FieldType, TransitionModel } from '@atlasmap/core'; -import { - ITransformationArgument, - MappingTransformation, -} from './MappingTransformation'; -import { boolean, text } from '@storybook/addon-knobs'; -import { Form } from '@patternfly/react-core'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'UI|Mapping Details/Transformation', -}; -export default obj; - -TransitionModel.initialize(); - -const transformationsOptions = [ - { name: 'Transformation foo', value: 'foo' }, - { name: 'Transformation bar', value: 'bar' }, -]; - -const transformationsArguments: ITransformationArgument[] = [ - { - label: 'Argument foo', - name: 'foo', - value: text('Argument foo value', 'foo'), - }, - { - label: 'Argument bar', - name: 'bar', - value: text('Argument bar value', 'bar'), - }, - { - label: 'Delimiter', - name: 'Delimiter', - value: text('Delimiter value', 'baz'), - options: TransitionModel.delimiterModels.map((model) => { - return { - name: model.prettyName ? model.prettyName : '', - value: model.actualDelimiter, - }; - }), - }, - { - label: 'Collapse Repeating Delimiter', - name: 'Collapse Repeating Delimiter', - type: FieldType.BOOLEAN, - value: boolean('Collapse Repeating Delimiter value', false) - ? 'true' - : 'false', - }, -]; - -export const example = () => ( - -); - -export const nonRemovable = () => ( - -); - -export const stacked = () => ( -
- - - - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.tsx b/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.tsx deleted file mode 100644 index df285ea12..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/MappingTransformation.tsx +++ /dev/null @@ -1,309 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Button, - Checkbox, - FormGroup, - FormSelect, - FormSelectOption, - InputGroup, MenuToggle, MenuToggleElement, - Select, - SelectOption, - Split, - SplitItem, - Text, - TextContent, - TextInput, TextVariants, -} from '@patternfly/react-core'; -import React, {FunctionComponent, Ref, useCallback, useState} from 'react'; - -import { FieldType } from '../core'; -import { TrashIcon } from '@patternfly/react-icons'; -import { css } from '@patternfly/react-styles'; -import styles from './MappingTransformation.module.css'; - -export interface ITransformationSelectOption { - name: string; - value: string; -} - -export interface ITransformationArgument { - label: string; - name: string; - value: string; - type?: FieldType; - options?: ITransformationSelectOption[]; -} - -export interface IMappingTransformationProps { - name: string; - transformationsOptions: ITransformationSelectOption[]; - transformationsArguments?: ITransformationArgument[]; - disableTransformation: boolean; - onTransformationArgumentChange: (name: string, value: string) => void; - onTransformationChange: (value: string) => void; - onRemoveTransformation?: () => void; - noPaddings?: boolean; -} - -const formTransStyle = { - '--pf-c-form-control--FontSize': 'small', - '--pf-c-form--GridGap': '0', - marginTop: '0.4rem', -} as React.CSSProperties; - -const formTransGroupStyle = { - '--pf-c-form-control--FontSize': 'small', - marginTop: '1.0rem', -} as React.CSSProperties; - -const formTransTextInputStyle = { - '--pf-c-form-control--FontSize': 'small', - marginTop: '0rem', -} as React.CSSProperties; - -export const MappingTransformation: FunctionComponent< - IMappingTransformationProps -> = ({ - name, - transformationsOptions, - transformationsArguments = [], - disableTransformation, - onTransformationArgumentChange, - onTransformationChange, - onRemoveTransformation, -}) => { - const RenderTransformationArgumentOptions = ( - argId: string, - arg: ITransformationArgument, - disableTransformation: boolean, - onTransformationArgumentChange: (name: string, value: string) => void, - ) => { - /** If the option name is 'User defined', we assume it accepts a user input */ - const isUserDefined = (option?: ITransformationSelectOption) => { - return option?.name === 'User defined'; - }; - - const userDefinedOption = arg.options?.find((option) => - isUserDefined(option), - ); - - let initialSelected = arg.options?.find( - (option) => option.value === arg.value, - ); - if (!initialSelected) { - if (arg.value) { - initialSelected = userDefinedOption; - } else if (arg.options) { - initialSelected = arg.options[1]; - arg.value = arg.options[1].value; - } - } - let initialUserDefined = ''; - if (isUserDefined(initialSelected)) { - initialUserDefined = arg.value; - } - - const [isOpen, setIsOpen] = useState(false); - const [selected, setSelected] = useState< - ITransformationSelectOption | undefined - >(initialSelected); - const [userDefinedValue, setUserDefinedValue] = - useState(initialUserDefined); - - const onToggle = () => { - setIsOpen(!isOpen); - }; - - const toggle = useCallback( - (toggleRef: Ref) => ( - - {selected?.name || '[None]'} - - ), - [isOpen], - ); - - const onSelect = ( - _event: - | React.MouseEvent | undefined, - selection: string | number | undefined, - _isPlaceholder?: boolean, - ) => { - setIsOpen(false); - const selectedOption = arg.options!.find( - (option) => option.value === selection, - ); - if (!selectedOption) { - return; - } - setSelected(selectedOption); - arg.value = isUserDefined(selectedOption) - ? userDefinedValue - ? userDefinedValue - : '' - : selection!.toString(); - onTransformationArgumentChange(arg.name, arg.value); - }; - - const onChangeUserDefinedValue = (_event: React.FormEvent, value: string) => { - setUserDefinedValue(value); - arg.value = value; - onTransformationArgumentChange(arg.name, value); - }; - - return ( - - - - - {isUserDefined(selected) && ( - - - - )} - - ); - }; - - const renderTransformationArgumentText = ( - argId: string, - a: ITransformationArgument, - ) => { - return ( - onTransformationArgumentChange(a.name, value)} - data-testid={`insert-transformation-parameter-${a.name}-input-field`} - style={formTransTextInputStyle} - /> - ); - }; - - const renderTransformationArgumentBoolean = ( - argId: string, - a: ITransformationArgument, - ) => { - return ( - - onTransformationArgumentChange(a.name, value.toString()) - } - /> - ); - }; - - const renderTransformationArgument = ( - a: ITransformationArgument, - idx: number, - ) => { - const argId = `${id}-transformation-${idx}`; - switch (a.type) { - case FieldType.BOOLEAN: { - return renderTransformationArgumentBoolean(argId, a); - } - default: { - return ( - - {a.options - ? RenderTransformationArgumentOptions( - argId, - a, - disableTransformation, - onTransformationArgumentChange, - ) - : renderTransformationArgumentText(argId, a)} - - ); - } - } - }; - - const id = `user-field-action-${name}`; - return ( - <> - - - onTransformationChange(value)} - data-testid={id} - style={formTransStyle} - > - {transformationsOptions.map((a, idx) => ( - - ))} - - {onRemoveTransformation && ( - - )} - - - {transformationsArguments.map(renderTransformationArgument)} - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/TimedToast.tsx b/packages/ui/src/_bk_atlasmap/UI/TimedToast.tsx deleted file mode 100644 index dda1339fd..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/TimedToast.tsx +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Alert, - AlertActionCloseButton, - AlertProps, - // Progress, -} from '@patternfly/react-core'; -import {FunctionComponent, PropsWithChildren, useEffect, useState} from 'react'; - -import { useToggle } from '../impl/utils'; - -export interface ITimedToastProps extends PropsWithChildren { - variant: AlertProps['variant']; - title: string; - onTimeout: () => void; - onClose: () => void; -} - -export const TimedToast: FunctionComponent = ({ - variant, - title, - children, - onTimeout, - onClose, -}) => { - const showTime = 8000; - const intervalTime = 100; - const [elapsed, setElapsed] = useState(showTime); - const { - state: hovering, - toggleOn: hoveringOn, - toggleOff: hoveringOff, - } = useToggle(false); - useEffect(() => { - const tick = () => { - setElapsed((elapsed) => elapsed - intervalTime); - }; - let timer: NodeJS.Timeout | undefined = undefined; - if (elapsed <= 0) { - onTimeout(); - } else if (!hovering && !timer) { - timer = setInterval(tick, intervalTime); - } else { - setElapsed(showTime); - } - return () => timer && clearTimeout(timer); - }, [elapsed, hovering, onTimeout]); - return ( - - } - onMouseEnter={hoveringOn} - onMouseLeave={hoveringOff} - > - {children} - {/* {!hovering && ( - - )} */} - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.module.css.d.ts deleted file mode 100644 index 8d5fda7c1..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "accordion": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.mdx deleted file mode 100644 index 2e40d16fb..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.mdx +++ /dev/null @@ -1,60 +0,0 @@ -import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; -import { example as treeExample } from "./Tree.stories.tsx"; -import { Tree, TreeGroup, TreeItem } from "."; - - - -# Tree - -{treeExample()} - -## Keyboard Support - -### Enter or Space - -Performs the default action (e.g. onclick event) for the focused node. -In this example, the default action is to update the File or Folder Selected textbox. - -### Down arrow - -Moves focus to the next node that is focusable without opening or closing a node. -If focus is on the last node, does nothing. - -### Up arrow - -Moves focus to the previous node that is focusable without opening or closing a node. -If focus is on the first node, does nothing. - -### Right Arrow - -When focus is on a closed node, opens the node; focus does not move. -When focus is on a open node, moves focus to the first child node. -When focus is on an end node, does nothing. - -### Left Arrow - -When focus is on an open node, closes the node. -When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node. -When focus is on a root node that is also either an end node or a closed node, does nothing. - -### Home - -Moves focus to first node without opening or closing a node. - -### End - -Moves focus to the last node that can be focused without expanding any nodes that are closed. - -## Props - -### Tree - - - -### TreeGroup - - - -### TreeItem - - diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.tsx deleted file mode 100644 index de867528d..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/Tree.stories.tsx +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Tree, TreeGroup, TreeItem } from '.'; -import React from 'react'; - -const obj = { - title: 'Tree', - component: Tree, - includeStories: [], // or don't load this file at all -}; -export default obj; - -export const example = () => ( - - - `${expanded ? '⌄' : '›'} G1 ${focused ? '- has focus' : ''}` - } - > - {() => ( - <> - - `${expanded ? '⌄' : '›'} Group G1-1 ${ - focused ? '- has focus' : '' - }` - } - > - {() => ( - <> - - {({ focused }) => - `Item G1-1 1 ${focused ? '- has focus' : ''}` - } - - - {({ focused }) => - `Item G1-1 2 ${focused ? '- has focus' : ''}` - } - - - {({ focused }) => - `Item G1-1 3 ${focused ? '- has focus' : ''}` - } - - - )} - - - {({ focused }) => `Item G1-2 ${focused ? '- has focus' : ''}`} - - - )} - - - {({ focused }) => `Item G2 ${focused ? '- has focus' : ''}`} - - - {({ focused }) => `Item G3 ${focused ? '- has focus' : ''}`} - - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css b/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css deleted file mode 100644 index 049c8b10b..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css +++ /dev/null @@ -1,16 +0,0 @@ -.button { - padding: 0 !important; -} - -.content { - font-size: inherit !important; -} - -.content > div { - box-sizing: border-box; - padding: - var(--pf-c-accordion__expanded-content-body--PaddingTop) 0 var(--pf-c-accordion__expanded-content-body--PaddingBottom) 1.2rem !important; -} -.hiddenContent { - display: none; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css.d.ts deleted file mode 100644 index 154f70ddc..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.module.css.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const styles: { - readonly "button": string; - readonly "content": string; - readonly "hiddenContent": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.tsx b/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.tsx deleted file mode 100644 index 51cb22e9d..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeGroup.tsx +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; -import React, { - FunctionComponent, - MouseEvent, - PropsWithChildren, - ReactNode, - forwardRef, - useCallback, - useEffect, - useRef, - useState, -} from 'react'; - -import { css } from '@patternfly/react-styles'; -import styles from './TreeGroup.module.css'; -import { useTreeFocus } from '../../../providers/TreeFocusProvider'; - -export interface ITreeGroupProps { - id: string; - level: number; - setSize: number; - position: number; - expanded?: boolean; - renderLabel: (props: { expanded: boolean; focused: boolean }) => ReactNode; - children: (props: { expanded: boolean; focused: boolean }) => ReactNode; -} - -export const TreeGroup = forwardRef>(function TreeGroup( - { id, expanded, level, setSize, position, renderLabel, children }, - ref, -) { - const divRef = useRef(null); - const [isExpanded, setIsExpanded] = useState(false); - const toggleExpand = useCallback(() => { - setIsExpanded(!isExpanded); - }, [isExpanded]); - const toggleExpandNoPropagation = useCallback( - (event: MouseEvent) => { - event.stopPropagation(); - toggleExpand(); - }, - [toggleExpand], - ); - - const expand = useCallback(() => setIsExpanded(true), []); - const collapse = useCallback(() => setIsExpanded(false), []); - - useEffect(() => { - if (expanded !== undefined) { - setIsExpanded(expanded); - } - }, [expanded]); - - const { focused, handlers: focusHandlers } = useTreeFocus({ - ref: divRef, - isExpandable: true, - isExpanded, - collapseTreeitem: collapse, - expandTreeitem: expand, - }); - - const handleRef = (el: HTMLDivElement | null) => { - divRef.current = el; - if (ref) { - if (typeof ref === 'function') { - ref(el); - } else { - // @ts-ignore - ref.current = el; - } - } - }; - - const Component: FunctionComponent = ({ children }) => ( - - {children} - - ); - - return ( -
{ - focusHandlers.onClick(event); - if (!event.isPropagationStopped()) { - toggleExpand(); - } - }} - > - - - {renderLabel({ expanded: isExpanded, focused: focused || false })} - - - {children({ expanded: isExpanded, focused: focused || false })} - - -
- ); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeItem.tsx b/packages/ui/src/_bk_atlasmap/UI/Tree/TreeItem.tsx deleted file mode 100644 index defc3e732..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/TreeItem.tsx +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { HTMLAttributes, PropsWithChildren, ReactNode, forwardRef, useRef } from 'react'; - -import { useTreeFocus } from '../../../providers/TreeFocusProvider'; - -export interface ITreeItemProps extends HTMLAttributes { - level: number; - setSize: number; - position: number; - children: (props: { focused: boolean }) => ReactNode; -} - -export const TreeItem = forwardRef>(function TreeItem( - { level, setSize, position, children, ...props }, - ref, -) { - const divRef = useRef(null); - const { focused, handlers: focusHandlers } = useTreeFocus({ - ref: divRef, - }); - - const handleRef = (el: HTMLDivElement | null) => { - divRef.current = el; - if (ref) { - if (typeof ref === 'function') { - ref(el); - } else { - // @ts-ignore - ref.current = el; - } - } - }; - return ( -
- {children({ focused: focused || false })} -
- ); -}); diff --git a/packages/ui/src/_bk_atlasmap/UI/Tree/index.ts b/packages/ui/src/_bk_atlasmap/UI/Tree/index.ts deleted file mode 100644 index 100e22ee4..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/Tree/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './TreeGroup'; -export * from './TreeItem'; diff --git a/packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css b/packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css deleted file mode 100644 index 82376e294..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css +++ /dev/null @@ -1,7 +0,0 @@ -.fieldName { - display: inline-block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - width: 100%; -} \ No newline at end of file diff --git a/packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css.d.ts deleted file mode 100644 index fee8f244d..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/TruncatedString.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "fieldName": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/ChangeDocumentNameDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/ChangeDocumentNameDialog.tsx deleted file mode 100644 index b63ec74c5..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/ChangeDocumentNameDialog.tsx +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ConfirmationDialog, IConfirmationDialogProps } from '../../../components/dialogs/ConfirmationDialog'; -import React, { FunctionComponent, useCallback, useEffect, useState } from 'react'; - -import { TextInput } from '@patternfly/react-core'; - -export interface IDocumentName { - id: string; - name: string; - isSource: boolean; -} -export interface IChangeDocumentNameDialogProps { - id?: string; - name?: string; - isSource?: boolean; - isOpen: IConfirmationDialogProps['isOpen']; - onCancel: IConfirmationDialogProps['onCancel']; - onConfirm: (updatedDocNameInfo: IDocumentName) => void; -} -export const ChangeDocumentNameDialog: FunctionComponent = ({ - id, - name: initialName = '', - isSource, - isOpen, - onCancel, - onConfirm, -}) => { - const [documentName, setDocumentName] = useState(initialName); - - const reset = useCallback(() => { - setDocumentName(initialName); - }, [initialName]); - - const handleOnConfirm = useCallback(() => { - if (id && isSource !== undefined) { - onConfirm({ id: id, name: documentName, isSource: isSource }); - } - reset(); - }, [documentName, id, isSource, onConfirm, reset]); - - const handleOnCancel = useCallback(() => { - onCancel(); - reset(); - }, [onCancel, reset]); - - function handleOnNameChange(name: string) { - setDocumentName(name); - } - - // resync the internal state to the values passed in as props - useEffect(reset, [reset]); - - return ( - - handleOnNameChange(value)} - id={id} - name={documentName} - data-testid={id + '-parameter-text-input'} - /> - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.stories.tsx deleted file mode 100644 index f0e3b316b..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.stories.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { boolean, select, text } from '@storybook/addon-knobs'; - -import { ConstantDialog } from './ConstantDialog'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'UI|Dialogs', - component: ConstantDialog, -}; -export default obj; -const options = [ - { label: 'Foo', value: 'foo' }, - { label: 'Bar', value: 'bar' }, - { label: 'Baz', value: 'baz' }, -]; - -const valueTypeOptions = options.map((o) => o.value); - -export const constantDialog = () => ( - boolean('Confirm', true)} - /> -); diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.tsx deleted file mode 100644 index 8aae8c7b4..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/ConstantDialog.tsx +++ /dev/null @@ -1,177 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ConfirmationDialog, IConfirmationDialogProps } from '../../../components/dialogs/ConfirmationDialog'; -import { - Form, - FormGroup, - FormSelect, - FormSelectOption, - TextInput, - Tooltip, - ValidatedOptions, -} from '@patternfly/react-core'; - -import React, { FunctionComponent, useCallback, useEffect, useState } from 'react'; - -interface ValueTypeOption { - label: string; - value: string; -} - -export interface IConstant { - name: string; - value: string; - valueType: string; -} - -export interface IConstantDialogProps { - title: string; - name?: string; - value?: string; - valueType?: string; - valueTypeOptions: ValueTypeOption[]; - isOpen: IConfirmationDialogProps['isOpen']; - onCancel: IConfirmationDialogProps['onCancel']; - onConfirm: (constant: IConstant) => void; - onValidation: (name: string, value: string) => boolean; -} -export const ConstantDialog: FunctionComponent = ({ - title, - name: initialName = '', - value: initialValue = '', - valueType: initialValueType = '', - valueTypeOptions, - isOpen, - onCancel, - onConfirm, - onValidation, -}) => { - const [name, setName] = useState(initialName); - const [value, setValue] = useState(initialValue); - const [valueType, setValueType] = useState(initialValueType); - const [isConstantNameUnique, setConstantNameUnique] = useState(true); - const [isConstantValid, setConstantValid] = useState(false); - const [isConstantNameValid, setConstantNameValid] = useState(ValidatedOptions.default); - - const reset = useCallback(() => { - setName(initialName); - setValue(initialValue); - setValueType(initialValueType); - setConstantValid(false); - setConstantNameValid(ValidatedOptions.default); - setConstantNameUnique(true); - }, [initialName, initialValue, initialValueType]); - - const handleOnConfirm = useCallback(() => { - onConfirm({ name, value: value, valueType }); - reset(); - }, [onConfirm, reset, name, value, valueType]); - - const handleOnCancel = useCallback(() => { - onCancel(); - reset(); - }, [onCancel, reset]); - - function handleOnNameChange(name: string) { - validateConstant(name, value); - setName(name); - } - - function handleOnValueChange(value: string) { - validateConstant(name, value); - setValue(value); - } - - function validateConstant(name: string, value: string): boolean { - if (!name || name.length === 0) { - setConstantNameValid(ValidatedOptions.default); - setConstantValid(false); - return false; - } - const nameRegex = /^[a-zA-Z0-9_@-]+$/; - if (!nameRegex.test(name)) { - setConstantNameValid(ValidatedOptions.error); - return false; - } - setConstantNameValid(ValidatedOptions.success); - const isValid = onValidation(name, value); - setConstantValid(value.length > 0 && isValid); - setConstantNameUnique(isValid); - return isValid; - } - - // make sure to resync the internal state to the values passed in as props - useEffect(reset, [reset]); - - return ( - -
- - {!isConstantNameUnique ? ( - A constant with this name already exists} entryDelay={750} exitDelay={100}> - - - ) : ( - - )} - - - - - - - {valueTypeOptions.map(({ label, value }, idx) => ( - - ))} - - -
-
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.stories.tsx deleted file mode 100644 index 42595b020..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.stories.tsx +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { boolean, select, text } from '@storybook/addon-knobs'; - -import { CustomClassDialog } from './CustomClassDialog'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'UI|Dialogs', - component: CustomClassDialog, -}; -export default obj; - -const options = [ - { label: 'Foo', value: 'foo' }, - { label: 'Bar', value: 'bar' }, - { label: 'Baz', value: 'baz' }, -]; - -const collectionTypeOptions = options.map((o) => o.value); - -export const customClassDialog = () => ( - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.tsx deleted file mode 100644 index cd8b3e89d..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/CustomClassDialog.tsx +++ /dev/null @@ -1,110 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ConfirmationDialog, IConfirmationDialogProps } from '../../../components/dialogs/ConfirmationDialog'; -import { Form, FormGroup, FormSelect, FormSelectOption } from '@patternfly/react-core'; -import React, { FunctionComponent, useCallback, useEffect, useState } from 'react'; - -interface ValueTypeOption { - label: string; - value: string; -} - -export interface ICustomClass { - customClassName: string; - collectionType: string; -} - -export interface ICustomClassDialogProps { - title: string; - customClassName: string; - customClassNames: string[] | null; - collectionType?: string; - collectionTypeOptions: ValueTypeOption[]; - isOpen: IConfirmationDialogProps['isOpen']; - onCancel: IConfirmationDialogProps['onCancel']; - onConfirm: (constant: ICustomClass) => void; -} -export const CustomClassDialog: FunctionComponent = ({ - title, - customClassName: initialCustomClassName = '', - customClassNames, - collectionType: initialCollectionType = '', - collectionTypeOptions, - isOpen, - onCancel, - onConfirm, -}) => { - const [customClassName, setCustomClassName] = useState(initialCustomClassName); - const [collectionType, setCollectionType] = useState(initialCollectionType); - - const reset = useCallback(() => { - setCustomClassName(initialCustomClassName); - setCollectionType(initialCollectionType); - }, [initialCustomClassName, initialCollectionType]); - - const handleOnConfirm = useCallback(() => { - onConfirm({ - customClassName: customClassName, - collectionType: collectionType, - }); - reset(); - }, [onConfirm, reset, customClassName, collectionType]); - - const handleOnCancel = useCallback(() => { - onCancel(); - reset(); - }, [onCancel, reset]); - - // make sure to resync the internal state to the values passed in as props - useEffect(reset, [reset]); - - return ( - 0 ? handleOnConfirm : undefined} - isOpen={isOpen} - > -
- - - {isOpen && - customClassNames && - customClassNames.map((value, idx) => )} - - - - - {collectionTypeOptions.map(({ label, value }, idx) => ( - - ))} - - -
-
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/ExportCatalogDialog.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/ExportCatalogDialog.stories.tsx deleted file mode 100644 index c8803cb3e..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/ExportCatalogDialog.stories.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ExportMappingDialog } from '../../../components/dialogs/ExportMappingDialog'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; -import { boolean } from '@storybook/addon-knobs'; - -const obj = { - title: 'UI|Dialogs', - component: ExportMappingDialog, -}; -export default obj; - -export const exportCatalogDialog = () => ( - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css b/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css deleted file mode 100644 index 720afe508..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css +++ /dev/null @@ -1,17 +0,0 @@ -.iGroup { - margin-bottom: 1.0rem; - margin-left: 0.5rem; -} - -.iSelectBody { - font-size: small; - width: 48%; -} - -.iSelectLabel { - justify-content: center; - margin-right: 0.5rem; - margin-top: 0.2rem; - text-align: center; - width: 48%; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css.d.ts deleted file mode 100644 index 394baa3a2..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.module.css.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare const styles: { - readonly "iGroup": string; - readonly "iSelectBody": string; - readonly "iSelectLabel": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.tsx deleted file mode 100644 index 1cb8ecde3..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/LookupTableDialog.tsx +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Form, FormGroup, FormSelect, FormSelectOption, Label } from '@patternfly/react-core'; -import React, { FunctionComponent, useState } from 'react'; - -import { IConfirmationDialogProps } from '../../../components/dialogs/ConfirmationDialog'; -import styles from './LookupTableDialog.module.css'; - -export type LookupTableData = { - sourceEnumValue: string; - targetEnumValues: string[]; - selectedTargetEnumValue: string; -}; -export interface ILookupTableDialogProps { - enumerationValue: LookupTableData; - sourceKey: number; - isOpen: IConfirmationDialogProps['isOpen']; -} - -export const LookupTableDialog: FunctionComponent = ({ - enumerationValue, - sourceKey, - isOpen, -}) => { - const [targetEnum, setTargetEnum] = useState(enumerationValue.selectedTargetEnumValue); - - const onChangeTargetEnum = (enumValue: string, _event: React.FormEvent) => { - setTargetEnum(enumValue); - enumerationValue.selectedTargetEnumValue = enumValue; - }; - - return ( -
- - - - {isOpen && - enumerationValue.targetEnumValues && - enumerationValue.targetEnumValues.map((value, idx) => ( - - ))} - - -
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.stories.tsx deleted file mode 100644 index a7352ce88..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.stories.tsx +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { boolean, text } from '@storybook/addon-knobs'; - -import { NamespaceDialog } from './NamespaceDialog'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'UI|Dialogs', - component: NamespaceDialog, -}; -export default obj; - -export const namespaceDialog = () => ( - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.tsx deleted file mode 100644 index 79831cb3b..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/NamespaceDialog.tsx +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Checkbox, Form, FormGroup, TextInput } from '@patternfly/react-core'; -import { ConfirmationDialog, IConfirmationDialogProps } from '../../../components/dialogs/ConfirmationDialog'; -import React, { FunctionComponent, useCallback, useEffect, useState } from 'react'; - -export interface INamespace { - alias: string; - uri: string; - locationUri: string; - targetNamespace: boolean; -} - -export interface INamespaceDialogProps { - title: string; - alias?: string; - uri?: string; - locationUri?: string; - targetNamespace?: boolean; - isOpen: IConfirmationDialogProps['isOpen']; - onCancel: IConfirmationDialogProps['onCancel']; - onConfirm: (namespace: INamespace) => void; -} -export const NamespaceDialog: FunctionComponent = ({ - title, - alias: initialAlias = '', - uri: initialUri = '', - locationUri: initialLocationUri = '', - targetNamespace: initialTargetNamespace = false, - isOpen, - onCancel, - onConfirm, -}) => { - const [alias, setAlias] = useState(initialAlias); - const [uri, setUri] = useState(initialUri); - const [locationUri, setLocationUri] = useState(initialLocationUri); - const [targetNamespace, setTargetNamespace] = useState(initialTargetNamespace); - - const reset = useCallback(() => { - setAlias(initialAlias); - setUri(initialUri); - setLocationUri(initialLocationUri); - setTargetNamespace(initialTargetNamespace); - }, [initialAlias, initialLocationUri, initialTargetNamespace, initialUri]); - - const handleOnConfirm = useCallback(() => { - onConfirm({ alias, uri, locationUri, targetNamespace }); - reset(); - }, [alias, locationUri, onConfirm, reset, targetNamespace, uri]); - - const handleOnCancel = useCallback(() => { - onCancel(); - reset(); - }, [onCancel, reset]); - - // make sure to resync the internal state to the values passed in as props - useEffect(reset, [reset]); - - return ( - 0 ? handleOnConfirm : undefined} - isOpen={isOpen} - > -
- - - - - - - - - - - - -
-
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.stories.tsx deleted file mode 100644 index 9b93a795f..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.stories.tsx +++ /dev/null @@ -1,158 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { boolean, text } from '@storybook/addon-knobs'; -import { ParametersDialog } from './ParametersDialog'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; -import { getCsvParameterOptions } from '@atlasmap/core'; - -const obj = { - title: 'UI|Dialogs', - component: ParametersDialog, -}; -export default obj; - -const initialParameters = [ - { - name: 'format', - label: 'CSV File Format', - value: 'Excel', - options: [ - { label: 'Default', value: 'Default' }, - { label: 'Excel', value: 'Excel' }, - { label: 'InformixUnload', value: 'InformixUnload' }, - { label: 'InformixUnloadCsv', value: 'InformixUnloadCsv' }, - { label: 'MongoDBCsv', value: 'MongoDBCsv' }, - { label: 'MongoDBTsv', value: 'MongoDBTsv' }, - { label: 'MySQL', value: 'MySQL' }, - { label: 'Oracle', value: 'Oracle' }, - { label: 'PostgreSQLCsv', value: 'PostgreSQLCsv' }, - { label: 'PostgreSQLText', value: 'PostgreSQLText' }, - { label: 'RFC4180', value: 'RFC4180' }, - { label: 'TDF', value: 'TDF' }, - ], - required: true, - enabled: true, - }, - { - name: 'allowDuplicateHeaderNames', - label: 'Allow Duplicate Header Names', - value: 'true', - boolean: true, - required: false, - enabled: true, - }, - { - name: 'allowMissingColumnNames', - label: 'Allow Missing Column Names', - value: 'true', - boolean: true, - required: false, - enabled: true, - }, - { - name: 'commentMarker', - label: 'Comment Marker', - value: '#', - required: false, - enabled: true, - }, - { - name: 'delimiter', - label: 'Delimiter', - value: ':', - required: false, - enabled: true, - }, - { - name: 'escape', - label: 'Escape', - value: '', - required: false, - enabled: true, - }, - { - name: 'firstRecordAsHeader', - label: 'First Record As Header', - value: 'false', - boolean: true, - required: false, - enabled: true, - }, - { name: 'headers', label: 'Headers', value: 'hdr', required: false }, - { - name: 'ignoreEmptyLines', - label: 'Ignore Empty Lines', - value: 'true', - boolean: true, - required: false, - enabled: true, - }, - { - name: 'ignoreHeaderCase', - label: 'Ignore Header Case', - value: 'false', - boolean: true, - required: false, - enabled: true, - }, - { - name: 'ignoreSurroundingSpaces', - label: 'Ignore Surrounding Spaces', - value: 'true', - boolean: true, - required: false, - enabled: true, - }, - { - name: 'nullString', - label: 'Null String', - value: '', - required: false, - enabled: true, - }, - { name: 'quote', label: 'Quote', value: '', required: false, enabled: false }, -]; - -const parameters = getCsvParameterOptions(); -/** - * The 'Select' parameters dialog doesn't specify predefined parameters, the - * 'Edit' dialog does. - * - * @returns - */ -export const parametersSelectDialog = () => ( - -); - -export const parametersEditDialog = () => ( - -); diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.tsx deleted file mode 100644 index 810405c56..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/ParametersDialog.tsx +++ /dev/null @@ -1,227 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Button, - Form, - FormGroup, - FormSelect, - FormSelectOption, - InputGroup, - Switch, - TextInput, -} from '@patternfly/react-core'; -import { ConfirmationDialog, IConfirmationDialogProps } from '../../../components/dialogs/ConfirmationDialog'; -import { PlusIcon, TrashIcon } from '@patternfly/react-icons'; -import React, { FunctionComponent, useCallback, useEffect, useState } from 'react'; -import { IParameter } from '@atlasmap/core'; - -export interface IParametersDialogProps { - title: string; - readonly parameters: IParameter[]; - readonly initialParameters: IParameter[]; - isOpen: IConfirmationDialogProps['isOpen']; - onCancel: IConfirmationDialogProps['onCancel']; - onConfirm: (parameters: IParameter[]) => void; -} - -export const ParametersDialog: FunctionComponent = ({ - title, - parameters: totalAvailableParameters = [], - initialParameters, - isOpen, - onCancel, - onConfirm, -}) => { - // Defined parameters are the current working set of user-selected parameters. - const [definedParameters, setDefinedParameters] = useState([]); - - // Available parameters are: (total-available-parameters - defined-parameters). - const availableParameters: IParameter[] = totalAvailableParameters.filter( - (param) => !definedParameters.map((p) => p.name).includes(param.name), - ); - - const reset = useCallback(() => { - if (initialParameters) { - setDefinedParameters(initialParameters); - } else { - setDefinedParameters([]); - } - }, [initialParameters]); - - // Callback to actually set the list of user-selected (defined) parameters. - const handleOnConfirm = useCallback(() => { - onConfirm(definedParameters); - }, [definedParameters, onConfirm]); - - const handleOnCancel = useCallback(() => { - onCancel(); - reset(); - }, [onCancel, reset]); - - const handleAddParameter = useCallback(() => { - setDefinedParameters(definedParameters.concat({ ...availableParameters[0] })); - }, [definedParameters, availableParameters]); - - const handleRemoveParameter = useCallback( - (parameter: IParameter) => { - setDefinedParameters(definedParameters.filter((p) => p !== parameter)); - }, - [definedParameters], - ); - - const handleChangeParameterValue = useCallback( - (index, value) => { - const parameters = [...definedParameters]; - const parameter = { ...parameters[index], value: value }; - parameters[index] = parameter; - setDefinedParameters(parameters); - }, - [definedParameters], - ); - - const handleChangeParameter = useCallback( - (index, availableParameterIndex) => { - if (availableParameterIndex === 0) { - return; //nothing changed - } - const parameters = [...definedParameters]; - const parameter = { ...availableParameters[availableParameterIndex - 1] }; - parameters[index] = parameter; - setDefinedParameters(parameters); - }, - [definedParameters, availableParameters], - ); - - const formLabelColumnWidth = { - '--pf-c-form--m-horizontal--md__group--GridTemplateColumns': '340px 1fr', - '--pf-c-form--GridGap': '0.5rem', - } as React.CSSProperties; - const formLabelParamRequired = { - '--pf-c-form__label--FontSize': 'large', - '--pf-c-form--m-horizontal--md__group--GridTemplateColumns': '140px 1fr', - marginBottom: '1.0rem', - } as React.CSSProperties; - const formLabelTopPadding = { - '--pf-c-form--m-horizontal__group-label--md--GridColumnWidth': '380px', - '--pf-c-form--m-horizontal__group-label--md--PaddingTop': '0rem', - } as React.CSSProperties; - - useEffect(reset, [reset]); - - return ( - 0 ? handleOnConfirm : undefined} - isOpen={isOpen} - > -
- {definedParameters.map((parameter, index) => ( - {parameter.label} - ) : ( - handleChangeParameter(index, availableParameterIndex)} - > - {[parameter].concat(availableParameters).map((parameter, index) => ( - - ))} - - ) - } - > - - {parameter.boolean ? ( - - { - handleChangeParameterValue(index, String(checked)); - }} - /> - - ) : parameter.options && parameter.options.length > 0 ? ( - handleChangeParameterValue(index, value)} - id={parameter.name} - name={parameter.name} - data-testid={parameter.name + '-parameter-form-select'} - > - {parameter.options.map(({ label, value }, idx) => ( - - ))} - - ) : ( - handleChangeParameterValue(index, value)} - id={parameter.name} - name={parameter.name} - data-testid={parameter.name + '-parameter-text-input'} - /> - )} - {!parameter.required && ( - - )} - - - ))} - - - -
-
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.stories.tsx deleted file mode 100644 index f93b403be..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.stories.tsx +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { boolean, select, text } from '@storybook/addon-knobs'; - -import { PropertyDialog } from './PropertyDialog'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'UI|Dialogs', - component: PropertyDialog, -}; -export default obj; - -const options = [ - { label: 'Foo', value: 'foo' }, - { label: 'Bar', value: 'bar' }, - { label: 'Baz', value: 'baz' }, -]; - -const valueTypeOptions = options.map((o) => o.value); -const scopeOptions = options.map((o) => o.value); - -export const sourcePropertyDialog = () => ( - boolean('Confirm', true)} - /> -); - -export const targetPropertyDialog = () => ( - boolean('Confirm', true)} - /> -); diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.tsx deleted file mode 100644 index ad8d702af..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/PropertyDialog.tsx +++ /dev/null @@ -1,205 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ConfirmationDialog, IConfirmationDialogProps } from '../../../components/dialogs/ConfirmationDialog'; -import { - Form, - FormGroup, - FormSelect, - FormSelectOption, - TextInput, - Tooltip, - ValidatedOptions, -} from '@patternfly/react-core'; -import React, { FunctionComponent, useCallback, useEffect, useState } from 'react'; - -interface ValueLabelOption { - label: string; - value: string; -} - -export interface IProperty { - name: string; - valueType: string; - scope: string; -} - -export interface IPropertyDialogProps { - title: string; - name?: string; - valueType?: string; - valueTypeOptions: ValueLabelOption[]; - scope?: string; - scopeOptions: ValueLabelOption[]; - isOpen: IConfirmationDialogProps['isOpen']; - onCancel: IConfirmationDialogProps['onCancel']; - onConfirm: (property: IProperty) => void; - onValidation: (name: string, scope: string) => boolean; -} -export const PropertyDialog: FunctionComponent = ({ - title, - name: initialName = '', - valueType: initialValueType = '', - valueTypeOptions, - scope: initialScope = '', - scopeOptions, - isOpen, - onCancel, - onConfirm, - onValidation, -}) => { - const [name, setName] = useState(initialName); - const [valueType, setValueType] = useState(initialValueType); - const [scope, setScope] = useState(initialScope); - const [isPropertyValid, setPropertyValid] = useState(false); - const [isPropertyNameValid, setPropertyNameValid] = useState(ValidatedOptions.default); - const [isNameAndScopeUnique, setNameAndScopeUnique] = useState(false); - - const reset = useCallback(() => { - setName(initialName); - setValueType(initialValueType); - setScope(initialScope); - setPropertyValid(false); - setPropertyNameValid(ValidatedOptions.default); - setNameAndScopeUnique(false); - }, [initialName, initialValueType, initialScope]); - - const handleOnConfirm = useCallback(() => { - onConfirm({ name, valueType, scope }); - reset(); - }, [name, onConfirm, reset, valueType, scope]); - - const handleOnCancel = useCallback(() => { - onCancel(); - reset(); - }, [onCancel, reset]); - - function handleOnNameChange(name: string) { - validateProperty(name, scope); - setName(name); - } - - function handleOnScopeChange(scope: string) { - if (validateProperty(name, scope)) { - setScope(scope); - } - } - - function validateProperty(name: string, scope: string): boolean { - if (!name || name.length === 0) { - setPropertyNameValid(ValidatedOptions.default); - setPropertyValid(false); - return false; - } - const nameRegex = /^[a-zA-Z0-9_@]+$/; - if (!nameRegex.test(name)) { - setPropertyNameValid(ValidatedOptions.error); - return false; - } - setPropertyNameValid(ValidatedOptions.success); - const isValid = onValidation(name, scope); - setNameAndScopeUnique(isValid); - setPropertyValid(name.length > 0 && isValid); - return isValid; - } - - // make sure to resync the internal state to the values passed in as props - useEffect(reset, [reset]); - - return ( - -
- - {!isNameAndScopeUnique ? ( - A property with this name and scope already exists} - entryDelay={750} - exitDelay={100} - > - - - ) : ( - - )} - - - - {valueTypeOptions.map(({ label, value }, idx) => ( - - ))} - - - - {!isNameAndScopeUnique ? ( - A property with this name and scope already exists} - entryDelay={750} - exitDelay={100} - > - - {scopeOptions.map(({ label, value }, idx) => ( - - ))} - - - ) : ( - - {scopeOptions.map(({ label, value }, idx) => ( - - ))} - - )} - -
-
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/UI/dialogs/index.ts b/packages/ui/src/_bk_atlasmap/UI/dialogs/index.ts deleted file mode 100644 index 2da003da4..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dialogs/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './ConstantDialog'; -export * from './CustomClassDialog'; -export * from './ChangeDocumentNameDialog'; -export * from './LookupTableDialog'; -export * from './NamespaceDialog'; -export * from './PropertyDialog'; -export * from './ParametersDialog'; diff --git a/packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.mdx b/packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.mdx deleted file mode 100644 index ffcf567a0..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.mdx +++ /dev/null @@ -1,26 +0,0 @@ -import { Meta, Story, Props } from "@storybook/addon-docs/blocks"; -import * as stories from "./Drag-and-drop.stories.tsx"; -import { DraggableField, FieldDropTarget } from "."; -import decorators from "../../stories/decorators"; - - - -# Drag & drop - -{stories.example()} - -## DraggableField Props - - - -## FieldDropTarget Props - - - -## Stories - -### Can be used with NodesArc - - - {stories.canBeUsedWithNodesArc()} - diff --git a/packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.tsx b/packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.tsx deleted file mode 100644 index c461b1ce9..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dnd/Drag-and-drop.stories.tsx +++ /dev/null @@ -1,212 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Canvas, - CanvasProvider, - Document, - DraggableField, - FieldDropTarget, - HTMLObject, - NodeRef, - NodeRefProvider, - NodesArc, -} from '..'; - -import React from 'react'; -import { action } from '@storybook/addon-actions'; -import decorators from '../../atlasmap/stories/decorators'; - -const obj = { - title: 'Drag & Drop', - includeStories: [], // or don't load this file at all - decorators, -}; -export default obj; - -export const example = () => ( - - - - - {({ isDragging }) =>
{isDragging ? 'dragging' : 'drag me'}
} -
-
- - true} - > - {({ isOver, isDroppable, field }) => ( -
-

Drop here!

-

- isOver: {isOver ? 'yes' : 'no'} -
- isDroppable: {isDroppable ? 'yes' : 'no'} -
- field: {JSON.stringify(field, null, 2)} -

-
- )} -
-
-
-
-); - -export const canBeUsedWithNodesArc = () => ( - -
-

- Canvas area is dashed. -

- - - - - {({ isDragging }) => ( - - - {isDragging ? 'Dragging' : 'Drag me'} - - - )} - - - {({ isDragging }) => ( - - - {isDragging ? 'Dragging' : 'Drag me'} - - - )} - - - - item.id === 'f2'} - style={{ height: '100%' }} - > - {({ isDroppable, isTarget }) => ( - - - {isTarget - ? 'GIMME!' - : isDroppable - ? 'Drop here!' - : 'Drop area'} - - - )} - - item.id === 'f1'} - style={{ height: '100%' }} - > - {({ isDroppable, isTarget }) => ( - - - {isTarget - ? 'GIMME!' - : isDroppable - ? 'Drop here!' - : 'Drop area'} - - - )} - - item.id === 'f1'} - style={{ height: '100%' }} - > - {({ isDroppable, isTarget }) => ( - - - {isTarget - ? 'GIMME!' - : isDroppable - ? 'Drop here!' - : 'Also field #1 drop area'} - - - )} - - - - - - -
-

Can drag & drop outside the canvas too.

- item.id === 'f1'} - style={{ height: '100%' }} - > - {({ isDroppable, isTarget }) => ( - - {isTarget - ? 'GIMME!' - : isDroppable - ? 'Drop here!' - : 'Also field #1 drop area, but outside the canvas'} - - )} - -
-
-
-); diff --git a/packages/ui/src/_bk_atlasmap/UI/dnd/FieldDragLayer.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/dnd/FieldDragLayer.module.css.d.ts deleted file mode 100644 index 2557d2f0c..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dnd/FieldDragLayer.module.css.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const styles: { - readonly "canvasObject": string; - readonly "canvasInner": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/dnd/index.ts b/packages/ui/src/_bk_atlasmap/UI/dnd/index.ts deleted file mode 100644 index c22b08aef..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dnd/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ diff --git a/packages/ui/src/_bk_atlasmap/UI/dnd/models.ts b/packages/ui/src/_bk_atlasmap/UI/dnd/models.ts deleted file mode 100644 index 18cb6ecd9..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/dnd/models.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export interface IDragAndDropField { - type: 'source' | 'target' | 'mapping'; - id: string; - name: string; - payload?: any; // TODO: I hate this -} diff --git a/packages/ui/src/_bk_atlasmap/UI/index.ts b/packages/ui/src/_bk_atlasmap/UI/index.ts deleted file mode 100644 index 40d5d1be7..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './Canvas'; -export * from './Actions'; -export * from './AddFieldTypeahead'; -export * from './AutoDropdown'; -export * from './dialogs'; -export * from './DelayedBoolean'; -export * from './DocumentActions'; -export * from './DocumentField'; -export * from './DocumentFieldPreview'; -export * from './DocumentFieldPreviewResults'; -export * from './DocumentGroup'; -export * from './MappingTransformation'; -export * from '../../components/mapping/MappingField'; -export * from './MappingFields'; -export * from './TimedToast'; -export * from './Tree'; -export * from './useInputTextSelectDialog'; -export * from './useLatestValue'; diff --git a/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css b/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css deleted file mode 100644 index 8e4f3da6c..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css +++ /dev/null @@ -1,23 +0,0 @@ -.iGroup { - margin-bottom: 1.0rem; - margin-left: 0.5rem; -} - -.iSelectBody { - width: 200; - margin-left: 0.5rem; -} - -.iSelectLabel { - margin-top: 1.5rem; - margin-left: 0.5rem; - width: 150; - margin-right: 250; -} - -.iGroupTextLabel { - margin-top: 1.0rem; - width: 425, -} - - diff --git a/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css.d.ts b/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css.d.ts deleted file mode 100644 index 3dbf4eb53..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.module.css.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -declare const styles: { - readonly "iGroup": string; - readonly "iSelectBody": string; - readonly "iSelectLabel": string; - readonly "iGroupTextLabel": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.tsx deleted file mode 100644 index 7d77f37ab..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/useInputTextSelectDialog.tsx +++ /dev/null @@ -1,212 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Button, - FormSelect, - FormSelectOption, - Label, - Modal, - TextInput, -} from '@patternfly/react-core'; -import React, { - FormEvent, - ReactPortal, - useCallback, - useRef, - useState, -} from 'react'; - -import { CancelCallback } from './useSingleInputDialog'; -import { createPortal } from 'react-dom'; -import styles from './useInputTextSelectDialog.module.css'; - -export type ConfirmInputTextCallback = ( - value1: string, - value2: string, - selectValue: string, -) => void; - -export interface IUseInputTextSelectDialogArgs { - title: string; - textLabel1: string; - textValue1: React.MutableRefObject; - text1ReadOnly: boolean; - textLabel2: string; - textValue2: React.MutableRefObject; - selectLabel: string; - selectValues: string[][]; - selectDefault: React.MutableRefObject; - modalContainer: HTMLElement; -} - -export function useInputTextSelectDialog({ - title, - textLabel1, - textValue1, - text1ReadOnly, - textLabel2, - textValue2, - selectLabel, - selectValues, - selectDefault, - modalContainer, -}: IUseInputTextSelectDialogArgs): [ - ReactPortal, - (onConfirm?: ConfirmInputTextCallback, onCancel?: CancelCallback) => void, -] { - const onConfirm = useRef(); - const onCancel = useRef(); - const [isOpen, setIsOpen] = useState(false); - const [isValid, setIsValid] = useState(true); - const [value1, setValue1] = useState(textValue1.current); - const [value2, setValue2] = useState(textValue2.current); - const [selectValue, setSelectValue] = useState(''); - const openModal = ( - onConfirmCb?: ConfirmInputTextCallback, - onCancelCb?: CancelCallback, - ) => { - onConfirm.current = onConfirmCb; - onCancel.current = onCancelCb; - setIsOpen(true); - setValue1(textValue1.current); - setValue2(textValue2.current); - setSelectValue(selectValues[selectDefault.current][0]); - }; - - const closeModal = () => setIsOpen(false); - - const handleTextInputChange = ( - value: string, - event: FormEvent, - ) => { - setValue1(value); - setIsValid((event.target as HTMLInputElement).reportValidity()); - }; - - const handleTextInputChange2 = ( - value: string, - event: FormEvent, - ) => { - setValue2(value); - setIsValid((event.target as HTMLInputElement).reportValidity()); - }; - - const handleSelect = (value: string) => { - setSelectValue(value); - }; - - const handleConfirm = useCallback(() => { - if (isValid && onConfirm.current) { - onConfirm.current(value1, value2, selectValue); - } - closeModal(); - }, [onConfirm, value1, value2, selectValue, isValid]); - - const handleCancel = useCallback(() => { - if (onCancel.current) { - onCancel.current(); - } - closeModal(); - }, [onCancel]); - - const modal = createPortal( - - Confirm - , - , - ]} - > - {textLabel1 && ( - <> - - - )} - {textLabel2.length > 0 && ( - <> - - - )} - {selectLabel && ( - <> - - - {selectValues.map( - (selectValue: string[], idx: number | undefined) => ( - - ), - )} - - - )} - , - modalContainer, - ); - - return [modal, openModal]; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/useLatestValue.tsx b/packages/ui/src/_bk_atlasmap/UI/useLatestValue.tsx deleted file mode 100644 index f7ee42953..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/useLatestValue.tsx +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactNode, useCallback, useRef, useState } from 'react'; - -export function useLatestValue(): [ - ReactNode | undefined, - (el: ReactNode) => void, -] { - const [element, setElement] = useState(); - const previousElement = useRef(); - const handleSetElement = useCallback( - (newElement: ReactNode) => { - if (previousElement.current !== newElement) { - previousElement.current = newElement; - setElement(previousElement.current); - } - }, - [setElement, previousElement], - ); - return [element, handleSetElement]; -} diff --git a/packages/ui/src/_bk_atlasmap/UI/useSingleInputDialog.tsx b/packages/ui/src/_bk_atlasmap/UI/useSingleInputDialog.tsx deleted file mode 100644 index bd14d147e..000000000 --- a/packages/ui/src/_bk_atlasmap/UI/useSingleInputDialog.tsx +++ /dev/null @@ -1,125 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Modal, TextInput } from '@patternfly/react-core'; -import React, { - FormEvent, - ReactChild, - ReactPortal, - useCallback, - useRef, - useState, -} from 'react'; -import { createPortal } from 'react-dom'; - -export type ConfirmCallback = (value: string) => void; -export type CancelCallback = () => void; - -export interface IUseSingleInputDialogArgs { - title: string; - content: ReactChild; - placeholder: string; - modalContainer: HTMLElement; -} - -export function useSingleInputDialog({ - title, - content, - placeholder, - modalContainer, -}: IUseSingleInputDialogArgs): [ - ReactPortal, - (onConfirm?: ConfirmCallback, onCancel?: CancelCallback) => void, -] { - const onConfirm = useRef(); - const onCancel = useRef(); - const [isOpen, setIsOpen] = useState(false); - const [isValid, setIsValid] = useState(true); - const [value, setValue] = useState(''); - const openModal = ( - onConfirmCb?: ConfirmCallback, - onCancelCb?: CancelCallback, - ) => { - onConfirm.current = onConfirmCb; - onCancel.current = onCancelCb; - setIsOpen(true); - }; - const closeModal = () => setIsOpen(false); - const handleTextInputChange = ( - value: string, - event: FormEvent, - ) => { - setValue(value); - setIsValid((event.target as HTMLInputElement).reportValidity()); - }; - const handleConfirm = useCallback(() => { - if (isValid && onConfirm.current) { - onConfirm.current(value); - } - closeModal(); - }, [onConfirm, value, isValid]); - const handleCancel = useCallback(() => { - if (onCancel.current) { - onCancel.current(); - } - closeModal(); - }, [onCancel]); - - const modal = createPortal( - , - , - , - ]} - > - {content} - , - modalContainer, - ); - - return [modal, openModal]; -} diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx deleted file mode 100644 index a759f64d4..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/CaptureDocumentIDAction.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; - -import { ClipboardIcon } from '@patternfly/react-icons'; - -export interface ICaptureDocumentIDActionProps { - id: string; - onClick: () => void; -} -export const CaptureDocumentIDAction: FunctionComponent = ({ id, onClick }) => ( - Capture Document ID to clipboard}> - - -); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx deleted file mode 100644 index 7541d7498..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/ChangeDocumentNameAction.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import { EditIcon } from '@patternfly/react-icons'; - -export interface IChangeDocumentNameActionProps { - id: string; - onClick: () => void; -} -export const ChangeDocumentNameAction: FunctionComponent< - IChangeDocumentNameActionProps -> = ({ id, onClick }) => ( - Change document name} - > - - -); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx deleted file mode 100644 index 92726fc74..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/DeleteMappingAction.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import { TrashIcon } from '@patternfly/react-icons'; - -export interface IDeleteMappingActionProps { - id: string; - onClick: () => void; -} -export const DeleteMappingAction: FunctionComponent< - IDeleteMappingActionProps -> = ({ id, onClick }) => ( - Remove the mapping} - > - - -); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx deleted file mode 100644 index 1370e262c..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditCSVParamsAction.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import { EditIcon } from '@patternfly/react-icons'; - -export interface IEditCSVParamsActionProps { - id: string; - onClick: () => void; -} -export const EditCSVParamsAction: FunctionComponent< - IEditCSVParamsActionProps -> = ({ id, onClick }) => ( - Modify CSV Parameters} - > - - -); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditMappingAction.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditMappingAction.tsx deleted file mode 100644 index e48d30c39..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EditMappingAction.tsx +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import { ExchangeAltIcon } from '@patternfly/react-icons'; - -export interface IEditMappingActionProps { - id: string; - onClick: () => void; -} -export const EditMappingAction: FunctionComponent = ({ - id, - onClick, -}) => ( - Modify the mapping} - > - - -); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx deleted file mode 100644 index 3697ffcf7..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/EnableJavaClassAction.tsx +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import { AddCircleOIcon } from '@patternfly/react-icons'; - -export interface IEnableJavaClassActionProps { - onCustomClassSearch: () => void; -} - -export const EnableJavaClassAction: FunctionComponent< - IEnableJavaClassActionProps -> = ({ onCustomClassSearch, ...props }) => { - function onEnableClassSearch(): void { - onCustomClassSearch(); - } - - return ( - - Load a Java document based on classes from your previously imported - Java archive. - - } - > - - - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts deleted file mode 100644 index 569d4562e..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Actions/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './CaptureDocumentIDAction'; -export * from './ChangeDocumentNameAction'; -export * from '../../../../components/documents/DeleteDocumentButton'; -export * from './DeleteMappingAction'; -export * from './EditCSVParamsAction'; -export * from './EditMappingAction'; -export * from './EnableJavaClassAction'; -export * from '../../../../layout/views/sourceTarget/ImportDocumentButton'; diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.spec.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.spec.tsx deleted file mode 100644 index cf5f9ee23..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.spec.tsx +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { fireEvent, render } from '@testing-library/react'; -import { sourcesColumn, targetsColumn } from './ColumnMapperView.stories'; -import { act } from 'react-dom/test-utils'; - -describe('SourcesColumn', () => { - test('should render editable preview inputs', async () => { - const { getByTestId, findByTestId } = render(sourcesColumn()); - await act(async () => { - const previewInputProperty = getByTestId( - 'input-document-mapping-preview-boston-field', - ); - expect(previewInputProperty.tagName).toBe('INPUT'); - expect( - previewInputProperty.attributes.getNamedItem('disabled'), - ).toBeFalsy(); - const previewInputConstant = getByTestId( - 'input-document-mapping-preview-Boston-field', - ); - expect(previewInputConstant.tagName).toBe('INPUT'); - expect( - previewInputConstant.attributes.getNamedItem('disabled'), - ).toBeFalsy(); - const docButton = getByTestId( - 'sources-field-JSONInstanceSource-source-/order-toggle', - ); - fireEvent.click(docButton); - const previewInputField = await findByTestId( - 'input-document-mapping-preview-JSONInstanceSource-source-/order/orderId-field', - ); - expect(previewInputField.tagName).toBe('INPUT'); - expect(previewInputField.attributes.getNamedItem('disabled')).toBeFalsy(); - }); - }); -}); - -describe('TargetsColumn', () => { - test('should render readonly preview result', async () => { - const { getByTestId } = render(targetsColumn()); - await act(async () => { - const previewInputProperty = getByTestId( - 'results-document-mapping-preview-boston-field', - ); - expect(previewInputProperty.tagName).toBe('INPUT'); - expect( - previewInputProperty.attributes.getNamedItem('disabled'), - ).toBeTruthy(); - const previewInputField = getByTestId( - 'results-document-mapping-preview-io.paul.Bicycle-target-/cadence-field', - ); - expect(previewInputField.tagName).toBe('INPUT'); - expect( - previewInputField.attributes.getNamedItem('disabled'), - ).toBeTruthy(); - }); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.stories.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.stories.tsx deleted file mode 100644 index 1aebcd846..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/ColumnMapperView.stories.tsx +++ /dev/null @@ -1,128 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { CanvasProvider, Column, FieldsDndProvider } from '../../UI'; -import { SourceTargetLinks, SourcesColumn, TargetsColumn } from '../../Views'; -import { boolean, text } from '@storybook/addon-knobs'; -import { - constants, - mappings, - properties, - sources, - targets, -} from '../../atlasmap/stories/sampleData'; - -import React from 'react'; -import { action } from '@storybook/addon-actions'; -import decorators from '../../atlasmap/stories/decorators'; - -const obj = { - title: 'AtlasMap|Views/ColumnMapperView', - decorators, -}; -export default obj; - -export const sourcesColumn = () => ( - - - - true} - canAddFieldToSelectedMapping={() => true} - onAddToSelectedMapping={action('onAddToSelectedMapping')} - canRemoveFromSelectedMapping={() => true} - onRemoveFromSelectedMapping={action('onRemoveFromSelectedMapping')} - canStartMapping={() => true} - onStartMapping={action('onStartMapping')} - shouldShowMappingPreviewForField={() => true} - onFieldPreviewChange={action('onFieldPreviewChange')} - canDrop={() => true} - onDrop={action('onDrop')} - onSearch={action('onSearch')} - showTypes={boolean('Show types', true)} - sourceProperties={properties} - constants={constants} - sources={sources} - isSource={true} - acceptDropType={'target'} - draggableType={'source'} - onEditCSVParams={action('onEditCSVParams')} - /> - - - -); - -export const targetsColumn = () => ( - - - - true} - onShowMappingDetails={action('onShowMappingDetails')} - canAddToSelectedMapping={() => true} - canAddFieldToSelectedMapping={() => true} - onAddToSelectedMapping={action('onAddToSelectedMapping')} - canRemoveFromSelectedMapping={() => true} - onRemoveFromSelectedMapping={action('onRemoveFromSelectedMapping')} - canStartMapping={() => true} - onStartMapping={action('onStartMapping')} - shouldShowMappingPreviewForField={() => true} - showMappingPreview={boolean('Show mapping preview', false)} - showTypes={boolean('Show types', true)} - targetProperties={properties} - targets={targets} - isSource={false} - acceptDropType={'source'} - draggableType={'target'} - onEditCSVParams={action('onEditCSVParams')} - /> - - - -); - -export const sourceTargetLinks = () => ( - - - -); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx deleted file mode 100644 index af784a208..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/AtlasmapLogo.tsx +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { SVGAttributes, forwardRef } from 'react'; - -export const AtlasmapLogo = forwardRef< - SVGSVGElement, - SVGAttributes ->(function atlasmapLogo(props, ref) { - return ( - - - - - - - - - - - - - ); -}); diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/index.ts b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/index.ts deleted file mode 100644 index c22b08aef..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Columns/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts deleted file mode 100644 index d271315c3..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/SourceTargetLinks.module.css.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare const styles: { - readonly "arc": string; - readonly "group": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/index.ts b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/index.ts deleted file mode 100644 index 7fef92101..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/Links/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from '../../../../layout/views/sourceTarget/SourceTargetLinks'; diff --git a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/index.ts b/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/index.ts deleted file mode 100644 index 42f9b8763..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/ColumnMapperView/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './Actions'; -export * from './Columns'; -export * from './Links'; diff --git a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css b/packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css deleted file mode 100644 index b7ab27778..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css +++ /dev/null @@ -1,3 +0,0 @@ -.title { - margin-bottom: 0.2rem; -} diff --git a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css.d.ts deleted file mode 100644 index 409059b19..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "title": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.stories.tsx b/packages/ui/src/_bk_atlasmap/Views/MappingTableView.stories.tsx deleted file mode 100644 index 259c2c2c6..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.stories.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { MappingTableView } from '../Views'; -import React from 'react'; -import { action } from '@storybook/addon-actions'; -import { boolean } from '@storybook/addon-knobs'; -import decorators from '../atlasmap/stories/decorators'; -import { mappings } from '../atlasmap/stories/sampleData'; - -const obj = { - title: 'AtlasMap|Views', - decorators, -}; -export default obj; - -export const mappingTableView = () => ( - boolean('shouldShowMappingPreview', false)} - onFieldPreviewChange={action('onFieldPreviewChange')} - /> -); - -export const mappingTableViewNoMappings = () => ( - boolean('shouldShowMappingPreview', false)} - onFieldPreviewChange={action('onFieldPreviewChange')} - /> -); diff --git a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.tsx b/packages/ui/src/_bk_atlasmap/Views/MappingTableView.tsx deleted file mode 100644 index 0382f2a93..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/MappingTableView.tsx +++ /dev/null @@ -1,127 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Bullseye, EmptyState, EmptyStateIcon, EmptyStateVariant, Title } from '@patternfly/react-core'; -import { DocumentFieldPreview, DocumentFieldPreviewResults } from '../UI'; -import { ICell, IRow } from '@patternfly/react-table'; -import { Table, TableBody, TableHeader } from '@patternfly/react-table/deprecated'; -import { FunctionComponent } from 'react'; - -import { MainContent } from '../Layout'; -import { TableIcon } from '@patternfly/react-icons'; -import styles from './MappingTableView.module.css'; -import { IField, IMapping } from '../../models'; - -const emptyContent = [ - { - heightAuto: true, - cells: [ - { - props: { colSpan: 8 }, - title: ( - - - - - No mappings found - - - - ), - }, - ], - }, -]; - -export interface IMappingTableProps { - mappings: Array; - onSelectMapping: (mapping: IMapping) => void; - shouldShowMappingPreview: (field: IMapping) => boolean; - onFieldPreviewChange: (field: IField, value: string) => void; -} - -export const MappingTableView: FunctionComponent = ({ - mappings, - onSelectMapping, - shouldShowMappingPreview, - onFieldPreviewChange, -}) => { - const rows = - mappings.length === 0 - ? emptyContent - : mappings.map((mapping) => { - const sources = mapping.sourceFields.map((source, index) => { - const field: IField = source; - const { name } = field; - return ( -
- {name} - {shouldShowMappingPreview(mapping) && ( - onFieldPreviewChange(field, value)} - /> - )} -
- ); - }); - const targets = mapping.targetFields.map((target, index) => { - const field: IField = target; - const { name } = field; - return ( -
- {name} - {shouldShowMappingPreview(mapping) && } -
- ); - }); - return { - cells: [ - { - title: sources, - data: mapping.id, - }, - { - title: targets, - }, - { - title: mapping.name, - }, - ], - }; - }); - - const columns = ['Sources', 'Targets', 'Types']; - - const handleSelectMapping = (_event: any, row: IRow) => { - const mapping: IMapping | undefined = mappings.find((mapping) => (row.cells?.[0] as ICell).data === mapping.id); - if (mapping) { - onSelectMapping(mapping); - } - }; - - return ( - - - Mappings - - - - -
-
- ); -}; diff --git a/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css b/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css deleted file mode 100644 index e2b2a5a34..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css +++ /dev/null @@ -1,4 +0,0 @@ -.title { - margin-top: 1rem; - margin-bottom: 1rem; -} diff --git a/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css.d.ts b/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css.d.ts deleted file mode 100644 index 409059b19..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "title": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.tsx b/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.tsx deleted file mode 100644 index 7140ab7aa..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/NamespaceTableView.tsx +++ /dev/null @@ -1,158 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Bullseye, - Button, - EmptyState, - EmptyStateIcon, - EmptyStateVariant, - Level, - LevelItem, - Title, - Tooltip, -} from '@patternfly/react-core'; -import { ICell, IRowData, textCenter } from '@patternfly/react-table'; -import { Table, TableBody, TableHeader } from '@patternfly/react-table/deprecated'; -import { PlusIcon, TableIcon } from '@patternfly/react-icons'; -import { FunctionComponent, ReactElement } from 'react'; - -import { Actions } from '../UI'; -import { MainContent } from '../Layout'; -import styles from './NamespaceTableView.module.css'; -import { IDocument } from '../../models'; - -export interface INamespaceTableProps { - sources: IDocument[]; - onCreateNamespace: (docName: string) => void; - onEditNamespace: (docName: string, alias: string, uri: string, locationUri: string, isTarget: boolean) => void; - onDeleteNamespace: (docName: string, alias: string) => void; -} - -export const NamespaceTableView: FunctionComponent = ({ - sources, - onCreateNamespace, - onEditNamespace, - onDeleteNamespace, -}) => { - const columns = [ - 'Alias', - 'URI', - 'Location URI', - { - title: 'Target Namespace', - transforms: [textCenter], - cellTransforms: [textCenter], - }, - ]; - - const namespaceTables: ReactElement[] = sources.reduce((xmlSources: ReactElement[], source: IDocument) => { - if (source.type !== 'XML') { - return xmlSources; - } - - const rows = - !source.namespaces || source.namespaces.length === 0 - ? [ - { - cells: [''], - }, - ] - : source.namespaces.map((namespace) => { - return { - cells: [ - { title: namespace.alias }, - { title: namespace.uri }, - { title: namespace.locationUri }, - { - title: namespace.isTarget ? '\u2713' : '', - }, - ], - }; - }); - - const actions = [ - { - title: 'Edit', - onClick: (_event: any, _rowId: any, row: IRowData, _extra: any) => { - onEditNamespace( - source.name, - (row.cells?.[0] as ICell).title as string, - (row.cells?.[1] as ICell).title as string, - (row.cells?.[2] as ICell).title as string, - ((row.cells?.[3] as ICell).title as string).length > 0 ? true : false, - ); - }, - }, - { - title: 'Remove', - onClick: (_event: any, _rowId: any, row: any, _extra: any) => onDeleteNamespace(source.name, row.alias.title), - }, - ]; - - return [ - ...xmlSources, - - - - Namespaces for {source.name} - - - - - Create a namespace} - key={'create-namespace'} - > - - - - - , - 0 ? actions : undefined} - > - - -
, - ]; - }, []); - - return namespaceTables.length === 0 ? ( - - - - - No XML sources found - - - - ) : ( - {namespaceTables} - ); -}; diff --git a/packages/ui/src/_bk_atlasmap/Views/SourceTargetView.spec.tsx b/packages/ui/src/_bk_atlasmap/Views/SourceTargetView.spec.tsx deleted file mode 100644 index b0b4dc8b9..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/SourceTargetView.spec.tsx +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { act } from 'react-dom/test-utils'; -import { render } from '@testing-library/react'; -import { sourceTargetView } from './SourceTargetView.stories'; - -describe('SourceTargetView', () => { - test('should render', async () => { - const { getByTestId } = render(sourceTargetView()); - await act(async () => { - expect(getByTestId('column-source-area').tagName).toBe('DIV'); - expect(getByTestId('column-target-area').tagName).toBe('DIV'); - }); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/Views/SourceTargetView.stories.tsx b/packages/ui/src/_bk_atlasmap/Views/SourceTargetView.stories.tsx deleted file mode 100644 index 245368d19..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/SourceTargetView.stories.tsx +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { CanvasProvider, FieldsDndProvider } from '../UI'; -import { SourceTargetView } from '../Views'; -import React, { createElement, useState } from 'react'; -import { constants, mappings, properties, sources, targets } from '../atlasmap/stories/sampleData'; - -import { action } from '@storybook/addon-actions'; -import { boolean } from '@storybook/addon-knobs'; -import decorators from '../atlasmap/stories/decorators'; -import { IField, IMapping } from '../../models'; - -const obj = { - title: 'AtlasMap|Views', - decorators, -}; -export default obj; - -export const sourceTargetView = () => - createElement(() => { - const [selectedMappingId, setSelectedMappingId] = useState(undefined); - const onSelectMapping = (m: IMapping) => setSelectedMappingId(m.id); - const shouldShowMappingPreviewForField = (f: IField) => - boolean('Show mapping preview', false) && - !!selectedMappingId && - !!f.mappings.find((m) => m.id === selectedMappingId); - return ( - - - true, - onAddToSelectedMapping: action('onAddToSelectedMapping'), - onShowMappingDetails: action('onShowMappingDetails'), - canAddToSelectedMapping: () => true, - canAddFieldToSelectedMapping: (item) => - !!selectedMappingId && !item.mappings.find((m) => m.id === selectedMappingId), - onRemoveFromSelectedMapping: action('onRemoveFromSelectedMapping'), - canRemoveFromSelectedMapping: (item) => - !!selectedMappingId && !!item.mappings.find((m) => m.id === selectedMappingId), - canStartMapping: () => true, - onStartMapping: action('onStartMapping'), - shouldShowMappingPreviewForField: shouldShowMappingPreviewForField, - onFieldPreviewChange: action('onFieldPreviewChange'), - isSource: true, - acceptDropType: 'target', - draggableType: 'source', - onEditCSVParams: action('onEditCSVParams'), - }} - targetEvents={{ - onCaptureDocumentID: action('onCapthreDocumentID'), - onChangeDocumentName: action('onChangeDocumentName'), - onCreateProperty: action('onCreateProperty'), - onEditProperty: action('onEditProperty'), - onDeleteProperty: action('onDeleteProperty'), - onFieldPreviewChange: action('onFieldPreviewChange'), - onDeleteDocument: action('onDeleteDocument'), - onImportDocument: action('onImportDocument'), - onCustomClassSearch: action('onCustomClassSearch'), - onSearch: action('onSearch'), - onDrop: action('onDrop'), - canDrop: () => true, - onAddToSelectedMapping: action('onAddToSelectedMapping'), - onShowMappingDetails: action('onShowMappingDetails'), - canAddToSelectedMapping: () => true, - canAddFieldToSelectedMapping: (item) => - !!selectedMappingId && !item.mappings.find((m) => m.id === selectedMappingId), - onRemoveFromSelectedMapping: action('onRemoveFromSelectedMapping'), - canRemoveFromSelectedMapping: (item) => - !!selectedMappingId && !!item.mappings.find((m) => m.id === selectedMappingId), - canStartMapping: () => true, - onStartMapping: action('onStartMapping'), - shouldShowMappingPreviewForField: shouldShowMappingPreviewForField, - isSource: false, - acceptDropType: 'source', - draggableType: 'target', - onEditCSVParams: action('onEditCSVParams'), - }} - showTypes={boolean('Show types', false)} - showMappingPreview={boolean('Show mapping preview', false)} - sourceProperties={properties} - targetProperties={properties} - constants={constants} - sources={sources} - mappings={mappings} - targets={targets} - selectedMappingId={selectedMappingId} - onSelectMapping={onSelectMapping} - /> - - - ); - }); diff --git a/packages/ui/src/_bk_atlasmap/Views/index.ts b/packages/ui/src/_bk_atlasmap/Views/index.ts deleted file mode 100644 index 445cacd6f..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './ColumnMapperView'; -export * from '../../layout/views/MappingDetailsView'; -export * from './MappingTableView'; -export * from './NamespaceTableView'; -export * from './models'; -export * from '../../layout/views/sourceTarget/SourceTargetView'; diff --git a/packages/ui/src/_bk_atlasmap/Views/models.ts b/packages/ui/src/_bk_atlasmap/Views/models.ts deleted file mode 100644 index ce2f42896..000000000 --- a/packages/ui/src/_bk_atlasmap/Views/models.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export type ElementId = string; -export type GroupId = string; - -export type AtlasmapDocumentType = 'source' | 'target'; diff --git a/packages/ui/src/_bk_atlasmap/core/common/config.types.ts b/packages/ui/src/_bk_atlasmap/core/common/config.types.ts deleted file mode 100644 index 9102c7c23..000000000 --- a/packages/ui/src/_bk_atlasmap/core/common/config.types.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { CollectionType } from '../contracts/common'; - -export enum DocumentDefaultName { - CONSTANTS = 'Constants', - PROPERTIES = 'Properties', -} - -export const enum FieldMode { - CREATE, - EDIT, -} - -export const collectionTypes = [ - [CollectionType[CollectionType.ARRAY], 'Array'], - [CollectionType[CollectionType.LIST], 'List'], - [CollectionType[CollectionType.MAP], 'Map'], - [CollectionType[CollectionType.NONE], 'None'], -]; - -export const constantTypes = [ - ['STRING', 'String'], // default type - ['BOOLEAN', 'Boolean'], - ['BIG_INTEGER', 'Big Integer'], - ['BYTE', 'Byte'], - ['BYTE_ARRAY', 'ByteArray'], - ['CHAR', 'Char'], - ['COMPLEX', 'Complex'], - ['DECIMAL', 'Decimal'], - ['DOUBLE', 'Double'], - ['FLOAT', 'Float'], - ['INTEGER', 'Integer'], - ['LONG', 'Long'], - ['SHORT', 'Short'], - ['TIME', 'Time'], - ['DATE', 'Date'], - ['DATE_TIME', 'DateTime'], - ['DATE_TZ', 'DateTZ'], - ['TIME_TZ', 'TimeTZ'], - ['DATE_TIME_TZ', 'DateTimeTZ'], - ['UNSIGNED_BYTE', 'Unsigned Byte'], - ['UNSIGNED_INTEGER', 'Unsigned Integer'], - ['UNSIGNED_LONG', 'Unsigned Long'], - ['UNSIGNED_SHORT', 'Unsigned Short'], -]; - -export const propertyTypes = [ - ['STRING', 'String'], // default type - ['ANY', 'Any'], - ['BOOLEAN', 'Boolean'], - ['BIG_INTEGER', 'Big Integer'], - ['BYTE', 'Byte'], - ['BYTE_ARRAY', 'ByteArray'], - ['CHAR', 'Char'], - ['COMPLEX', 'Complex'], - ['DECIMAL', 'Decimal'], - ['DOUBLE', 'Double'], - ['FLOAT', 'Float'], - ['INTEGER', 'Integer'], - ['LONG', 'Long'], - ['SHORT', 'Short'], - ['TIME', 'Time'], - ['DATE', 'Date'], - ['DATE_TIME', 'DateTime'], - ['DATE_TZ', 'DateTZ'], - ['TIME_TZ', 'TimeTZ'], - ['DATE_TIME_TZ', 'DateTimeTZ'], - ['UNSIGNED_BYTE', 'Unsigned Byte'], - ['UNSIGNED_INTEGER', 'Unsigned Integer'], - ['UNSIGNED_LONG', 'Unsigned Long'], - ['UNSIGNED_SHORT', 'Unsigned Short'], -]; - -export const HTTP_STATUS_OK = 200; -export const HTTP_STATUS_NO_CONTENT = 204; diff --git a/packages/ui/src/_bk_atlasmap/core/common/index.ts b/packages/ui/src/_bk_atlasmap/core/common/index.ts deleted file mode 100644 index 82681c680..000000000 --- a/packages/ui/src/_bk_atlasmap/core/common/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './config.types'; diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/adm-digest.ts b/packages/ui/src/_bk_atlasmap/core/contracts/adm-digest.ts deleted file mode 100644 index 4d6a20798..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/adm-digest.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { InspectionType } from './common'; - -export interface ADMDigest { - exportMappings: ValueContainer; - exportMeta: DataSourceMetadata[]; - exportBlockData: ValueContainer[]; -} - -export interface DataSourceMetadata { - id: string; - name: string; - documentType?: string; - inspectionType: InspectionType; - isSource: boolean; - specification?: any; - dataSourceType: string; - inspectionParameters?: { [key: string]: string }; -} - -export interface ValueContainer { - value: string; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/common.ts b/packages/ui/src/_bk_atlasmap/core/contracts/common.ts deleted file mode 100644 index ee803a887..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/common.ts +++ /dev/null @@ -1,179 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export const FIELD_PATH_SEPARATOR = '/'; - -export const MODEL_PACKAGE_PREFIX = 'io.atlasmap.v2'; -export const DATA_SOURCE_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.DataSource'; - -/** SOURCE or TARGET. */ -export enum DataSourceType { - SOURCE = 'SOURCE', - TARGET = 'TARGET', -} - -/** - * The type of collection, such as {@link ARRAY} and {@link LIST}. - */ -export enum CollectionType { - ALL = 'ALL', - ARRAY = 'ARRAY', - LIST = 'LIST', - MAP = 'MAP', - NONE = 'NONE', -} - -/** - * The field status held by {@link IField}. - */ -export enum FieldStatus { - SUPPORTED = 'SUPPORTED', - UNSUPPORTED = 'UNSUPPORTED', - CACHED = 'CACHED', - ERROR = 'ERROR', - NOT_FOUND = 'NOT_FOUND', - EXCLUDED = 'EXCLUDED', -} - -/** - * The field type held by {@link IField}. - */ -export enum FieldType { - ANY = 'ANY', - ANY_DATE = 'ANY_DATE', - BIG_INTEGER = 'BIG_INTEGER', - BOOLEAN = 'BOOLEAN', - BYTE = 'BYTE', - BYTE_ARRAY = 'BYTE_ARRAY', - CHAR = 'CHAR', - COMPLEX = 'COMPLEX', - DATE = 'DATE', - DATE_TIME = 'DATE_TIME', - DATE_TIME_TZ = 'DATE_TIME_TZ', - DATE_TZ = 'DATE_TZ', - DECIMAL = 'DECIMAL', - DOUBLE = 'DOUBLE', - FLOAT = 'FLOAT', - INTEGER = 'INTEGER', - LONG = 'LONG', - NONE = 'NONE', - NUMBER = 'NUMBER', - SHORT = 'SHORT', - STRING = 'STRING', - TIME = 'TIME', - TIME_TZ = 'TIME_TZ', - UNSIGNED_BYTE = 'UNSIGNED_BYTE', - UNSIGNED_INTEGER = 'UNSIGNED_INTEGER', - UNSIGNED_LONG = 'UNSIGNED_LONG', - UNSIGNED_SHORT = 'UNSIGNED_SHORT', - UNSUPPORTED = 'UNSUPPORTED', -} - -export enum DocumentType { - JAVA = 'JAVA', - XML = 'XML', - XSD = 'XSD', - JSON = 'JSON', - CORE = 'Core', - CSV = 'CSV', - CONSTANT = 'Constants', - PROPERTY = 'Property', -} - -export enum InspectionType { - JAVA_CLASS = 'JAVA_CLASS', - SCHEMA = 'SCHEMA', - INSTANCE = 'INSTANCE', - UNKNOWN = 'UNKNOWN', -} - -/** The serialized DataSource held by {@link IAtlasMapping}. */ -export interface IDataSource { - id: string; - name?: string; - description?: string; - uri: string; - dataSourceType: DataSourceType; - characterEncoding?: string; - locale?: string; - jsonType: string; -} - -/** - * The serialized CSV document inspection result. - */ -export interface IDocument { - fields: IFields; -} - -/** - * The container of {@link IField}. - */ -export interface IFields { - field: IField[]; -} - -/** - * The field in the mapping. - */ -export interface IField { - actions?: IFieldAction[]; - value?: string; - arrayDimensions?: number; - arraySize?: number; - collectionType?: CollectionType; - docId?: string; - index?: number; - path?: string; - required?: boolean; - status?: FieldStatus; - fieldType?: FieldType; - format?: string; - name?: string; - jsonType: string; -} - -/** - * The field action, aka transformation in the mapping. - */ -export interface IFieldAction { - '@type'?: string; - displayName?: string; - [x: string]: any; -} - -export interface IStringList { - string: string[]; -} - -export interface IParameterOption { - label: string; - value: string; -} - -export interface IParameter { - name: string; - label: string; - value: string; - boolean?: boolean; - options?: IParameterOption[]; - enabled?: boolean; - required?: boolean; -} - -export interface IStringContainer { - String: string; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/documents/csv.ts b/packages/ui/src/_bk_atlasmap/core/contracts/documents/csv.ts deleted file mode 100644 index c75357965..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/documents/csv.ts +++ /dev/null @@ -1,163 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { IDocument, IField, IParameter } from '../common'; - -/** - * The CSV inspection data model contracts between frontend and backend. - */ - -/** - * The root object that carries {@link ICsvInspectionResponse} - * when it's received from backend. - */ -export interface ICsvInspectionResponseContainer { - CsvInspectionResponse: ICsvInspectionResponse; -} - -/** - * The serialized CSV inspection response. - */ -export interface ICsvInspectionResponse { - csvDocument: IDocument; - errorMessage?: string; - executionTime?: number; -} - -/** - * The root object that carries {@link ICsvDocument} - * when it's inspected with maven plugin. - */ -export interface ICsvDocumentContainer { - CsvDocument: IDocument; -} - -/** - * The serialized CSV complex field. - */ -export interface ICsvComplexType extends ICsvField { - csvFields: ICsvFields; - uri?: string; -} - -/** - * The serialized CSV primitive field. - */ -export interface ICsvField extends IField { - column: number; -} - -/** - * The container of {@link ICsvField}. - */ -export interface ICsvFields { - csvField: ICsvField[]; -} - -// TODO: Retrieve from the backend CSV module -export function getCsvParameterOptions(): IParameter[] { - return [ - { - name: 'format', - label: 'CSV File Format', - value: 'Default', - options: [ - { label: 'Default', value: 'Default' }, - { label: 'Excel', value: 'Excel' }, - { label: 'InformixUnload', value: 'InformixUnload' }, - { label: 'InformixUnloadCsv', value: 'InformixUnloadCsv' }, - { label: 'MongoDBCsv', value: 'MongoDBCsv' }, - { label: 'MongoDBTsv', value: 'MongoDBTsv' }, - { label: 'MySQL', value: 'MySQL' }, - { label: 'Oracle', value: 'Oracle' }, - { label: 'PostgreSQLCsv', value: 'PostgreSQLCsv' }, - { label: 'PostgreSQLText', value: 'PostgreSQLText' }, - { label: 'RFC4180', value: 'RFC4180' }, - { label: 'TDF', value: 'TDF' }, - ], - required: true, - }, - { - name: 'allowDuplicateHeaderNames', - label: 'Allow Duplicate Header Names', - value: 'true', - boolean: true, - required: false, - }, - { - name: 'allowMissingColumnNames', - label: 'Allow Missing Column Names', - value: 'true', - boolean: true, - required: false, - }, - { - name: 'commentMarker', - label: 'Comment Marker', - value: '', - required: false, - }, - { - name: 'delimiter', - label: 'Delimiter', - value: '', - required: false, - }, - { name: 'escape', label: 'Escape', value: '', required: false }, - { - name: 'firstRecordAsHeader', - label: 'First Record As Header', - value: 'true', - boolean: true, - required: false, - }, - { name: 'headers', label: 'Headers', value: '', required: false }, - { - name: 'ignoreEmptyLines', - label: 'Ignore Empty Lines', - value: 'true', - boolean: true, - required: false, - }, - { - name: 'ignoreHeaderCase', - label: 'Ignore Header Case', - value: 'true', - boolean: true, - required: false, - }, - { - name: 'ignoreSurroundingSpaces', - label: 'Ignore Surrounding Spaces', - value: 'true', - boolean: true, - required: false, - }, - { - name: 'nullString', - label: 'Null String', - value: '', - required: false, - }, - { - name: 'skipHeaderRecord', - label: 'Skip Header Record', - value: 'true', - boolean: true, - required: false, - }, - ]; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/documents/index.ts b/packages/ui/src/_bk_atlasmap/core/contracts/documents/index.ts deleted file mode 100644 index 9051b9dd1..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/documents/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './csv'; -export * from './java'; -export * from './json'; -export * from './xml'; diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/documents/java.ts b/packages/ui/src/_bk_atlasmap/core/contracts/documents/java.ts deleted file mode 100644 index 3da6cdcea..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/documents/java.ts +++ /dev/null @@ -1,152 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { CollectionType, IField, IStringList } from '../common'; - -/** - * The Java class inspection data model contracts between frontend and backend. - */ -export const JAVA_MODEL_PACKAGE_PREFIX = 'io.atlasmap.java.v2'; -export const JAVA_INSPECTION_REQUEST_JSON_TYPE = - JAVA_MODEL_PACKAGE_PREFIX + '.ClassInspectionRequest'; -export const JAVA_CLASS_JSON_TYPE = JAVA_MODEL_PACKAGE_PREFIX + '.JavaClass'; -export const JAVA_ENUM_FIELD_JSON_TYPE = - JAVA_MODEL_PACKAGE_PREFIX + '.JavaEnumField'; - -/** - * The root object that carries {@link IClassInspectionRequest} - * when it's sent to backend. - */ -export interface IClassInspectionRequestContainer { - ClassInspectionRequest: IClassInspectionRequest; -} - -/** - * The serialized Java class inspection request. - */ -export interface IClassInspectionRequest { - jsonType: string; - fieldNameExclusions?: IStringList; - classNameExclusions?: IStringList; - classpath?: string; - className: string; - collectionType?: CollectionType; - collectionClassName?: string; - disablePrivateOnlyFields?: boolean; - disableProtectedOnlyFields?: boolean; - disablePublicOnlyFields?: boolean; - disablePublicGetterSetterFields?: boolean; -} - -/** - * The root object that carries {@link IClassInspectionResponse} - * when it's received from backend. - */ -export interface IClassInspectionResponseContainer { - ClassInspectionResponse: IClassInspectionResponse; -} - -/** - * The serialized Java class inspection response. - */ -export interface IClassInspectionResponse { - javaClass: IJavaClass; - errorMessage: string; - executionTime: number; -} - -/** - * The root object that carries {@link IJavaClass} - * when it's read from Java offline inspection (maven plugin). - */ -export interface IJavaClassContainer { - JavaClass: IJavaClass; -} - -/** - * The serialized Java class inspection result. - */ -export interface IJavaClass extends IJavaField { - javaEnumFields: IJavaEnumFields; - javaFields: IJavaFields; - packageName: string; - annotation: boolean; - annonymous: boolean; - enumeration: boolean; - isInterface: boolean; - localClass: boolean; - memberClass: boolean; - uri: string; -} - -/** - * The serialized Java field. - */ -export interface IJavaField extends IField { - annotations?: IStringList; - modifiers?: { modifier: Modifier[] }; - parameterizedTypes?: IStringList; - className?: string; - canonicalClassName?: string; - collectionClassName?: string; - getMethod?: string; - setMethod?: string; - primitive?: boolean; - synthetic?: boolean; -} - -/** - * The serialized Java modifier. - */ -export enum Modifier { - ALL = 'ALL', - ABSTRACT = 'ABSTRACT', - FINAL = 'FINAL', - INTERFACE = 'INTERFACE', - NATIVE = 'NATIVE', - PACKAGE_PRIVATE = 'Package Private', - PUBLIC = 'PUBLIC', - PROTECTED = 'PROTECTED', - PRIVATE = 'PRIVATE', - STATIC = 'STATIC', - STRICT = 'STRICT', - SYNCHRONIZED = 'SYNCHRONIZED', - TRANSIENT = 'TRANSIENT', - VOLATILE = 'VOLATILE', - NONE = 'NONE', -} - -/** - * The container of serialized {@link IJavaEnumField}. - */ -export interface IJavaEnumFields { - javaEnumField: IJavaEnumField[]; -} - -/** - * The serialized Java enum field. - */ -export interface IJavaEnumField extends IField { - name: string; - ordinal: number; - className: string; -} - -/** - * The container of serialized {@link IJavaField}. - */ -export interface IJavaFields { - javaField: IJavaField[]; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/documents/json.ts b/packages/ui/src/_bk_atlasmap/core/contracts/documents/json.ts deleted file mode 100644 index b6ddd459b..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/documents/json.ts +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { IDocument, IField, IStringList, InspectionType } from '../common'; - -/** - * The JSON inspection data model contracts between frontend and backend. - */ -export const JSON_MODEL_PACKAGE_PREFIX = 'io.atlasmap.json.v2'; -export const JSON_DATA_SOURCE_JSON_TYPE = - JSON_MODEL_PACKAGE_PREFIX + '.JsonDataSource'; -export const JSON_ENUM_FIELD_JSON_TYPE = - JSON_MODEL_PACKAGE_PREFIX + '.JsonEnumField'; -export const JSON_INSPECTION_REQUEST_JSON_TYPE = - JSON_MODEL_PACKAGE_PREFIX + '.JsonInspectionRequest'; - -/** - * The root object that carries {@link IJsonInspectionRequest} - * when it's sent to backend. - */ -export interface IJsonInspectionRequestContainer { - JsonInspectionRequest: IJsonInspectionRequest; -} - -/** - * The serialized JSON inspection request. - */ -export interface IJsonInspectionRequest { - fieldNameExclusions?: IStringList; - typeNameExclusions?: IStringList; - namespaceExclusions?: IStringList; - jsonData?: string; - uri?: string; - type: InspectionType; -} - -/** - * The root object that carries {@link IJsonInspectionResponse} - * when it's received from backend. - */ -export interface IJsonInspectionResponseContainer { - JsonInspectionResponse: IJsonInspectionResponse; -} - -/** - * The serialized JSON inspection response. - */ -export interface IJsonInspectionResponse { - jsonDocument: IJsonDocument; - errorMessage?: string; - executionTime?: number; -} - -/** - * The root object that carries {@link IJsonDocument} - * when it's inspected with maven plugin. - */ -export interface IJsonDocumentContainer { - JsonDocument: IJsonDocument; -} - -/** - * The serialized JSON document inspection result. - */ -export interface IJsonDocument extends IDocument {} - -/** - * The serialized JSON primitive field in inspection result. - */ -export interface IJsonField extends IField { - primitive: boolean; - typeName: string; - userCreated?: boolean; -} - -/** - * The serialized JSON complex field in inspection result. - */ -export interface IJsonComplexType extends IJsonField { - jsonFields?: IJsonFields; - jsonEnumFields?: IJsonEnumFields; - enumeration: boolean; - uri?: string; -} - -/** - * The container of JSON field. - */ -export interface IJsonFields { - jsonField: IJsonField[]; -} - -/** - * The container of JSON enum field. - */ -export interface IJsonEnumFields { - jsonEnumField: IJsonEnumField[]; -} - -/** - * The serialized JSON enum field. - */ -export interface IJsonEnumField extends IField { - ordinal: number; - typeName: string; - userCreated?: boolean; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/documents/xml.ts b/packages/ui/src/_bk_atlasmap/core/contracts/documents/xml.ts deleted file mode 100644 index 2fe50a433..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/documents/xml.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { IDataSource, IDocument, IField } from '../common'; - -/** - * The XML inspection data model contracts between frontend and backend. - */ - -export const XML_MODEL_PACKAGE_PREFIX = 'io.atlasmap.xml.v2'; -export const XML_DATA_SOURCE_JSON_TYPE = - XML_MODEL_PACKAGE_PREFIX + '.XmlDataSource'; -export const XML_ENUM_FIELD_JSON_TYPE = - XML_MODEL_PACKAGE_PREFIX + '.XmlEnumField'; -export const XML_INSPECTION_REQUEST_JSON_TYPE = - XML_MODEL_PACKAGE_PREFIX + '.XmlInspectionRequest'; - -/** - * The root object that carries {@link IXmlInspectionResponse} - * when it's sent to backend. - */ -export interface IXmlInspectionResponseContainer { - XmlInspectionResponse: IXmlInspectionResponse; -} - -/** - * The serialized XML inspection response. - */ -export interface IXmlInspectionResponse { - xmlDocument: IXmlDocument; - errorMessage?: string; - executionTime?: number; -} - -/** - * The root object that carries {@link IXmlDocument} - * when it's inspected with maven plugin. - */ -export interface IXmlDocumentContainer { - XmlDocument: IXmlDocument; -} - -/** - * The serialized XML document in inspection result. - */ -export interface IXmlDocument extends IDocument { - xmlNamespaces?: IXmlNamespaces; -} - -/** - * The serialized XML DataSource. - * @see IXmlNamespaces - */ -export interface IXmlDataSource extends IDataSource { - template?: string; - xmlNamespaces?: IXmlNamespaces; -} - -/** - * The container of XML namespace. - */ -export interface IXmlNamespaces { - xmlNamespace: IXmlNamespace[]; -} - -/** - * The serialized XML namespace. - */ -export interface IXmlNamespace { - alias: string; - uri: string; - locationUri?: string; - targetNamespace: boolean; -} - -/** - * The serialized XML primitive field. - */ -export interface IXmlField extends IField { - userCreated?: boolean; - attribute?: boolean; -} - -/** - * The serialized XML complex field. - */ -export interface IXmlComplexType extends IField { - xmlEnumFields?: IXmlEnumFields; - xmlFields?: IXmlFields; - annotation?: boolean; - anonymous?: boolean; - enumeration: boolean; - uri?: string; -} - -/** - * The container of XML enum field. - */ -export interface IXmlEnumFields { - xmlEnumField: IXmlEnumField[]; -} - -/** - * The serialized XML enum field. - */ -export interface IXmlEnumField extends IField { - ordinal: number; - typeName: string; - attribute: boolean; - userCreated: boolean; -} - -/** - * The container of XML field. - */ -export interface IXmlFields { - xmlField: IXmlField[]; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/expression.ts b/packages/ui/src/_bk_atlasmap/core/contracts/expression.ts deleted file mode 100644 index f141b4358..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/expression.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export interface IExpressionNode { - uuid: string; - str: string; - getUuid(): string; - toText(): string; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/field-action.ts b/packages/ui/src/_bk_atlasmap/core/contracts/field-action.ts deleted file mode 100644 index 31f1571bf..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/field-action.ts +++ /dev/null @@ -1,104 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { CollectionType, FieldType } from './common'; - -/** - * The field action Data model contracts between frontend and backend. - */ - -/** - * The root object that carries {@link IAActionDetails} - * when it's received from backend. - */ -export interface IActionDetailsContainer { - ActionDetails: IActionDetails; -} - -/** - * The container of serialized {@link IActionDetail}. - */ -export interface IActionDetails { - actionDetail: IActionDetail[]; -} - -/** - * The serialized field action detail. - */ -export interface IActionDetail { - parameters?: IActionParameters; - name: string; - custom: boolean; - className: string; - method: string; - sourceType: FieldType; - targetType: FieldType; - multiplicity: Multiplicity; - actionSchema: IActionSchema; -} - -/** - * The container of serialized field action parameter in old style. - */ -export interface IActionParameters { - actionParameter: IActionParameter[]; -} - -/** - * The serialized field action parameter in old style. - */ -export interface IActionParameter { - values: string[]; - name: string; - displayName: string; - description: string; - fieldType: FieldType; -} - -/** - * The multiplicity of the field action. - */ -export enum Multiplicity { - ONE_TO_ONE = 'ONE_TO_ONE', - ONE_TO_MANY = 'ONE_TO_MANY', - MANY_TO_ONE = 'MANY_TO_ONE', - ZERO_TO_ONE = 'ZERO_TO_ONE', - MANY_TO_MANY = 'MANY_TO_MANY', -} - -/** - * The newer style of field action metadata. - */ -export interface IActionSchema { - type: string; - id: string; - properties: IActionSchemaProperties; -} - -/** - * The newer style of field action parameter metadata. - */ -export interface IActionSchemaProperties { - [key: string]: { - type: string; - const: string; - description: string; - title: string; - enum?: string[]; - 'atlas-field-type'?: FieldType; - 'atlas-collection-type'?: CollectionType; - }; -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/index.ts b/packages/ui/src/_bk_atlasmap/core/contracts/index.ts deleted file mode 100644 index 010f81f2e..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './adm-digest'; -export * from './common'; -export * from './documents'; -export * from './expression'; -export * from './field-action'; -export * from './mapping'; -export * from './mapping-preview'; diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/mapping-preview.ts b/packages/ui/src/_bk_atlasmap/core/contracts/mapping-preview.ts deleted file mode 100644 index bf51d1301..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/mapping-preview.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { IMapping } from './mapping'; -import { MODEL_PACKAGE_PREFIX } from './common'; - -/** - * The mapping Data model contracts between frontend and backend. - */ - -export const PROCESS_MAPPING_REQUEST_JSON_TYPE = - MODEL_PACKAGE_PREFIX + '.ProcessMappingRequest'; - -/** - * The root object that carries {@link IProcessMappingRequest} - * when it's sent to backend. - */ -export interface IProcessMappingRequestContainer { - ProcessMappingRequest: IProcessMappingRequest; -} - -/** - * The serialized process mapping request object. - */ -export interface IProcessMappingRequest { - jsonType: string; - mapping: IMapping; -} - -/** - * The root object that carries {@link IProcessMappingResponse} - * when it's received from backend. - */ -export interface IProcessMappingResponseContainer { - ProcessMappingResponse: IProcessMappingResponse; -} - -/** - * The serialized process mapping response object. - */ -export interface IProcessMappingResponse { - jsonType: string; - mapping: IMapping; - audits: IAudits; -} - -/** - * The container of serialized {@link IAudit}. - */ -export interface IAudits { - audit: IAudit[]; -} - -/** - * The serialized audit object which is logged during processing a mapping. - */ -export interface IAudit { - message?: string; - docId?: string; - docName?: string; - path?: string; - value?: string; - status: AuditStatus; -} - -export enum AuditStatus { - INFO = 'INFO', - WARN = 'WARN', - ERROR = 'ERROR', -} diff --git a/packages/ui/src/_bk_atlasmap/core/contracts/mapping.ts b/packages/ui/src/_bk_atlasmap/core/contracts/mapping.ts deleted file mode 100644 index f687080b2..000000000 --- a/packages/ui/src/_bk_atlasmap/core/contracts/mapping.ts +++ /dev/null @@ -1,274 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - CollectionType, - DataSourceType, - FieldType, - IDataSource, - IField, - MODEL_PACKAGE_PREFIX, -} from './common'; - -/** - * The mapping Data model contracts between frontend and backend. - */ - -export const ATLAS_MAPPING_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.AtlasMapping'; -export const MAPPING_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.Mapping'; -export const COLLECTION_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.Collection'; -export const FIELD_GROUP_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.FieldGroup'; -export const PROPERTY_FIELD_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.PropertyField'; -export const CONSTANT_FIELD_JSON_TYPE = MODEL_PACKAGE_PREFIX + '.ConstantField'; - -/** - * The root object that carries {@link IAtlasMapping} - * when it's sent/received to/from backend. - */ -export interface IAtlasMappingContainer { - AtlasMapping: IAtlasMapping; -} - -/** - * The serialized AtlasMap mapping definition. - */ -export interface IAtlasMapping { - dataSource?: IDataSource[]; - mappings?: IMappings; - lookupTables?: ILookupTables; - constants?: IConstants; - properties?: IProperties; - name?: string; - jsonType: string; -} - -/** - * The container of serialized {@link IBaseMapping} held by {@link IAtlasMapping} - */ -export interface IMappings { - mapping: IBaseMapping[]; -} - -/** - * The base interface of serialized mapping entry held by {@link IMappings}. - * @see IMapping - * @see ICollection - */ -export interface IBaseMapping { - alias?: string; - description?: string; - mappingType?: MappingType; - jsonType: string; -} - -/** - * The serialized mapping entry held by {@link IMappings}. - * @see IBaseMapping - */ -export interface IMapping extends IBaseMapping { - expression?: string; - inputFieldGroup?: IFieldGroup; - inputField?: IField[]; - outputField: IField[]; - id: string; - delimiter?: string; - delimiterString?: string; - lookupTableName?: string; - strategy?: string; - strategyClassName?: string; -} - -/** - * The serialized collection mapping entry held by {@link IMappings}. - * @see IBaseMapping - * This is no longer used ATM, but the one-to-many/many-to-one for each COMPLEX collection - * might want to resurrect it - https://github.com/atlasmap/atlasmap/issues/1236 - */ -export interface ICollection extends IBaseMapping { - mappings: IMappings; - collectionSize: number; - collectionType: CollectionType; -} - -/** - * The mapping mode, such as {@link LOOKUP}, {@link COLLECTION}, etc. - * @deprecated {@link COMBINE}, {@link MAP}, {@link SEPARATE} - */ -export enum MappingType { - ALL = 'ALL', - COLLECTION = 'COLLECTION', - COMBINE = 'COMBINE', - LOOKUP = 'LOOKUP', - MAP = 'MAP', - SEPARATE = 'SEPARATE', - NONE = 'NONE', -} - -/** - * The group of fields in the mapping. - */ -export interface IFieldGroup extends IField { - field?: IField[]; -} - -/** - * The container of serialized {@link ILookupTable}. - */ -export interface ILookupTables { - lookupTable?: ILookupTable[]; -} - -/** - * The container of serialized LookupTable. - * @see ILookupEntry - */ -export interface ILookupTable { - lookupEntry: ILookupEntry[]; - name: string; - description?: string; -} - -/** - * The serialized lookup table entry. - * @see {@link ILookupTable} - */ -export interface ILookupEntry { - sourceValue: string; - sourceType: FieldType; - targetValue: string; - targetType: FieldType; -} - -/** - * The container of serialized Constant. - * @see IConstant - */ -export interface IConstants { - constant?: IConstant[]; -} - -/** - * The serialized Constant. - */ -export interface IConstant { - name: string; - value: string; - fieldType: FieldType; -} - -/** - * The container of serialized Property. - */ -export interface IProperties { - property?: IProperty[]; -} - -/** - * The serialized Property. - */ -export interface IProperty { - name: string; - value?: string; - fieldType: FieldType; - scope?: string; - dataSourceType?: DataSourceType; -} - -/** - * The serialized JSON DataSource. - * @see IDataSource - */ -export interface IJsonDataSource extends IDataSource { - template?: string; -} - -/** - * The serialized property field in the mapping. - */ -export interface IPropertyField extends IField { - scope?: string; -} - -/** - * The root object that carries {@link IValidation} - * when it's received from backend as a result of - * mapping validation. - */ -export interface IValidationsContainer { - Validations: IValidations; -} - -/** - * THe container of serialized validation result. - */ -export interface IValidations { - validation: IValidation[]; -} - -/** - * The validation result. - */ -export interface IValidation { - message?: string; - id?: string; - docId?: string; - docName?: string; - scope?: ValidationScope; - status?: ValidationStatus; -} - -/** - * The validation scope. - */ -export enum ValidationScope { - DATA_SOURCE = 'DATA_SOURCE', - MAPPING = 'MAPPING', - LOOKUP_TABLE = 'LOOKUP_TABLE', - CONSTANT = 'CONSTANT', - PROPERTY = 'PROPERTY', -} - -/** - * The validation status. - */ -export enum ValidationStatus { - INFO = 'INFO', - WARN = 'WARN', - ERROR = 'ERROR', -} - -/** - * The root object that carries {@link IStringMap} - * when it's received from backend. - */ -export interface IStringMapContainer { - StringMap: IStringMap; -} - -/** - * The serialized string map, used for deliverying - * a list of mapping name. - */ -export interface IStringMap { - stringMapEntry: IStringMapEntry[]; -} - -/** - * The string map entry with name and value. - */ -export interface IStringMapEntry { - name: string; - value: string; -} diff --git a/packages/ui/src/_bk_atlasmap/core/index.ts b/packages/ui/src/_bk_atlasmap/core/index.ts deleted file mode 100644 index e6db8a389..000000000 --- a/packages/ui/src/_bk_atlasmap/core/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './common'; -export * from './contracts'; -export * from './models'; -export * from './services'; -export * from './utils'; diff --git a/packages/ui/src/_bk_atlasmap/core/models/config.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/config.model.spec.ts deleted file mode 100644 index 350495936..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/config.model.spec.ts +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { ConfigModel } from '../models/config.model'; - -describe('ConfigModel', () => { - test('initialize', () => { - const cfg = ConfigModel.getConfig(); - expect(cfg.sourcePropertyDoc); - expect(cfg.sourcePropertyDoc.getName(true) === 'Properties'); - expect(cfg.targetPropertyDoc); - expect(cfg.targetPropertyDoc.getName(true) === 'Properties'); - expect(cfg.constantDoc.getName(true) === 'Constants'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/config.model.ts b/packages/ui/src/_bk_atlasmap/core/models/config.model.ts deleted file mode 100644 index fa42ec89d..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/config.model.ts +++ /dev/null @@ -1,292 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - CollectionType, - DocumentType, - InspectionType, -} from '../contracts/common'; -import { DocumentDefaultName } from '../common/config.types'; -import { DocumentDefinition } from './document-definition.model'; -import { DocumentManagementService } from '../services/document-management.service'; -import { ErrorHandlerService } from '../services/error-handler.service'; -import { FieldActionService } from '../services/field-action.service'; -import { FileManagementService } from '../services/file-management.service'; -import { InitializationService } from '../services/initialization.service'; -import { Logger } from 'loglevel'; -import { MappingDefinition } from './mapping-definition.model'; -import { MappingExpressionService } from '../services/mapping-expression.service'; -import { MappingManagementService } from '../services/mapping-management.service'; -import { MappingPreviewService } from '../services/mapping-preview.service'; - -export class DataMapperInitializationModel { - dataMapperVersion = '0.9.2017.07.28'; - initialized = false; - loadingStatus = 'Loading.'; - admHttpTimeout = 30000; // 30 seconds - initializationErrorOccurred = false; - - baseJavaInspectionServiceUrl?: string; - baseXMLInspectionServiceUrl?: string; - baseJSONInspectionServiceUrl?: string; - baseCSVInspectionServiceUrl?: string; - baseMappingServiceUrl?: string; - - xsrfHeaderName?: string; - xsrfCookieName?: string; - xsrfDefaultTokenValue?: string; - - /* class path fetching configuration */ - classPathFetchTimeoutInMilliseconds = 30000; - // if classPath is specified, maven call to resolve pom will be skipped - pomPayload?: string; - - classPath?: string; - - /* inspection service filtering flags */ - fieldNameExclusions: string[] = []; - classNameExclusions: string[] = []; - disablePrivateOnlyFields = false; - disableProtectedOnlyFields = false; - disablePublicOnlyFields = false; - disablePublicGetterSetterFields = false; - - disableMappingPreviewMode = false; - - /* enable the navigation bar and import/export */ - disableNavbar = true; - - mappingInitialized = false; -} - -export class DocumentInitializationModel { - id: string; - type: DocumentType; - name: string; - description: string; - isSource: boolean; - showFields = true; - inspectionType: InspectionType; - inspectionSource: string; - inspectionParameters: { [key: string]: string }; - inspectionResult: string; - selectedRoot: string; - collectionType?: CollectionType; - collectionClassName?: string; -} - -/** - * The central store of the AtlasMap UI core library. It is expected to be initialized through - * {@link InitializationService}. - */ -export class ConfigModel { - private static cfg: ConfigModel = new ConfigModel(); - - initCfg: DataMapperInitializationModel = new DataMapperInitializationModel(); - - /* current ui state config */ - showMappingDetailTray = false; - showMappingTable = false; - showNamespaceTable = false; - showLinesAlways = true; - showTypes = false; - showMappedFields = true; - showUnmappedFields = true; - _showMappingPreview = false; - currentDraggedField: any = null; - - documentService: DocumentManagementService; - mappingService: MappingManagementService; - errorService: ErrorHandlerService; - initializationService: InitializationService; - fieldActionService: FieldActionService; - fileService: FileManagementService; - previewService: MappingPreviewService; - expressionService: MappingExpressionService; - - sourceDocs: DocumentDefinition[] = []; - targetDocs: DocumentDefinition[] = []; - sourcePropertyDoc: DocumentDefinition = new DocumentDefinition(); - targetPropertyDoc: DocumentDefinition = new DocumentDefinition(); - constantDoc: DocumentDefinition = new DocumentDefinition(); - mappingFiles: string[] = []; - mappingDefinitionId = 0; - mappings: MappingDefinition | null = null; - - preloadedMappingJson: string | null = null; - preloadedFieldActionMetadata: any; - logger?: Logger; - - constructor() { - this.setConstantPropertyDocs(); - } - - static getConfig(): ConfigModel { - return ConfigModel.cfg; - } - - static setConfig(cfg: ConfigModel): void { - ConfigModel.cfg = cfg; - } - - initializePropertyDoc(propertyDoc: DocumentDefinition, isSource: boolean) { - propertyDoc.clearFields(); - propertyDoc.type = DocumentType.PROPERTY; - propertyDoc.name = DocumentDefaultName.PROPERTIES; - propertyDoc.id = - 'DOC.' + - propertyDoc.name + - '.' + - Math.floor(Math.random() * 1000000 + 1).toString(); - propertyDoc.isSource = isSource; - propertyDoc.showFields = false; - propertyDoc.isPropertyOrConstant = true; - } - - setConstantPropertyDocs(): void { - this.initializePropertyDoc(this.sourcePropertyDoc, true); - this.initializePropertyDoc(this.targetPropertyDoc, false); - this.constantDoc.clearFields(); - this.constantDoc.type = DocumentType.CONSTANT; - this.constantDoc.name = DocumentDefaultName.CONSTANTS; - this.constantDoc.id = - 'DOC.' + - this.constantDoc.name + - '.' + - Math.floor(Math.random() * 1000000 + 1).toString(); - this.constantDoc.isSource = true; - this.constantDoc.showFields = false; - this.constantDoc.isPropertyOrConstant = true; - } - - set showMappingPreview(show: boolean) { - this._showMappingPreview = show; - } - - get showMappingPreview(): boolean { - return this._showMappingPreview; - } - - addDocument(docInitModel: DocumentInitializationModel): DocumentDefinition { - const docDef: DocumentDefinition = new DocumentDefinition(); - docDef.initModel = docInitModel; - docDef.id = docInitModel.id; - docDef.type = docInitModel.type; - docDef.name = docInitModel.name; - docDef.description = docInitModel.description; - docDef.isSource = docInitModel.isSource; - docDef.showFields = docInitModel.showFields; - docDef.inspectionType = docInitModel.inspectionType; - docDef.inspectionSource = docInitModel.inspectionSource; - docDef.inspectionResult = docInitModel.inspectionResult; - docDef.inspectionParameters = docInitModel.inspectionParameters; - docDef.selectedRoot = docInitModel.selectedRoot; - - if (docDef.type === DocumentType.XSD) { - docDef.uri = 'atlas:xml:' + docDef.id; - } else if (docDef.type === DocumentType.JAVA) { - docDef.uri = `atlas:java:${docDef.id}?className=${docDef.inspectionSource}`; - if ( - docInitModel.collectionType && - docInitModel.collectionType !== CollectionType.NONE - ) { - docDef.uri += '&collectionType=' + docInitModel.collectionType; - if (docInitModel.collectionClassName) { - docDef.uri += - '&collectionClassName=' + docInitModel.collectionClassName; - } - } - } else { - docDef.uri = 'atlas:' + docDef.type.toLowerCase() + ':' + docDef.id; - } - - if (docInitModel.isSource) { - this.sourceDocs.push(docDef); - } else { - this.targetDocs.push(docDef); - } - return docDef; - } - - addDocuments(docModels: DocumentInitializationModel[]): DocumentDefinition[] { - const docDefs: DocumentDefinition[] = []; - for (const docModel of docModels) { - docDefs.push(this.addDocument(docModel)); - } - return docDefs; - } - - getDocsWithoutPropertyDoc(isSource: boolean): DocumentDefinition[] { - return isSource ? [...this.sourceDocs] : [...this.targetDocs]; - } - - getDocs(isSource: boolean): DocumentDefinition[] { - const docs: DocumentDefinition[] = this.getDocsWithoutPropertyDoc(isSource); - return isSource - ? [this.sourcePropertyDoc, this.constantDoc].concat(docs) - : [this.targetPropertyDoc].concat(docs); - } - - /** - * Clear source/target/mapping documents from the model. Reset constant and property document definitions. - */ - clearDocs(): void { - this.sourceDocs = []; - this.targetDocs = []; - this.sourcePropertyDoc.clearFields(); - this.targetPropertyDoc.clearFields(); - this.constantDoc.clearFields(); - this.mappingFiles = []; - } - - hasJavaDocuments(): boolean { - for (const doc of this.getAllDocs()) { - if (doc.type === DocumentType.JAVA) { - return true; - } - } - return false; - } - - getDocForIdentifier( - documentId: string, - isSource: boolean - ): DocumentDefinition | null { - // TODO: check this non null operator - return this.getDocs(isSource).find((d) => d.id === documentId)!; - } - - getFirstXmlDoc(isSource: boolean): DocumentDefinition { - const docs: DocumentDefinition[] = this.getDocsWithoutPropertyDoc(isSource); - // TODO: check this non null operator - return docs.find((doc) => doc.type === DocumentType.XML)!; - } - - getAllDocs(): DocumentDefinition[] { - return [this.sourcePropertyDoc, this.constantDoc] - .concat(this.sourceDocs) - .concat(this.targetPropertyDoc) - .concat(this.targetDocs); - } - - documentsAreLoaded(): boolean { - for (const doc of this.getAllDocs()) { - if (!doc.initialized) { - return false; - } - } - return true; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/document-definition.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/document-definition.model.spec.ts deleted file mode 100644 index a22913221..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/document-definition.model.spec.ts +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { - DocumentDefinition, - NamespaceModel, -} from '../models/document-definition.model'; -import { DocumentType } from '../contracts/common'; - -describe('DocumentDefinitionModel', () => { - test('initialize NamespaceModel', () => { - const nsModel = new NamespaceModel(); - nsModel.uri = 'http://atlasmap.io/xml/test/testNamespace'; - nsModel.alias = 'ns1'; - expect(nsModel.getPrettyLabel()).toBe( - 'ns1 [http://atlasmap.io/xml/test/testNamespace]' - ); - }); - - test('initialize DocumentDefinition', () => { - const docDef = new DocumentDefinition(); - docDef.name = 'TestDoc'; - docDef.type = DocumentType.JAVA; - expect(docDef.getName(true)).toEqual('TestDoc (JAVA)'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/document-definition.model.ts b/packages/ui/src/_bk_atlasmap/core/models/document-definition.model.ts deleted file mode 100644 index d8e812d1e..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/document-definition.model.ts +++ /dev/null @@ -1,498 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - DocumentType, - FIELD_PATH_SEPARATOR, - FieldType, - InspectionType, -} from '../contracts/common'; - -import { CommonUtil } from '../utils/common-util'; -import { DocumentInitializationModel } from './config.model'; -import { Field } from './field.model'; -import { MappingDefinition } from './mapping-definition.model'; - -export class NamespaceModel { - private static unqualifiedNamespace: NamespaceModel; - - alias: string; - uri: string; - locationUri: string | undefined; - createdByUser = false; - isTarget = false; - - static getUnqualifiedNamespace(): NamespaceModel { - if (NamespaceModel.unqualifiedNamespace == null) { - const ns: NamespaceModel = new NamespaceModel(); - ns.alias = 'Unqualified'; - NamespaceModel.unqualifiedNamespace = ns; - } - return NamespaceModel.unqualifiedNamespace; - } - - getPrettyLabel(): string { - if (this === NamespaceModel.getUnqualifiedNamespace()) { - return this.alias; - } - return ( - (this.isTarget ? 'Target' : this.alias) + - ' [' + - (this.uri == null ? 'NO URI' : this.uri) + - ']' - ); - } - - copy(): NamespaceModel { - const copy: NamespaceModel = new NamespaceModel(); - Object.assign(copy, this); - return copy; - } - - copyFrom(that: NamespaceModel): void { - Object.assign(this, that); - } -} - -export class PaddingField extends Field { - constructor(private _isSource: boolean) { - super(); - this.name = ''; - this.classIdentifier = ''; - this.type = FieldType.NONE; - this.displayName = ''; - this.path = ''; - } - - isSource(): boolean { - return this._isSource; - } -} - -export class DocumentDefinition { - private static padField: Field; - - LEFT_BRACKET = '\x5b'; - RIGHT_BRACKET = '\x5d'; - - initModel: DocumentInitializationModel; - id: string; - _type: DocumentType; - name: string; - description: string | undefined; - uri: string; - inspectionType: InspectionType; - inspectionParameters: { [key: string]: string }; - inspectionSource: string; - inspectionResult: string; - isSource: boolean; - isPropertyOrConstant: boolean; - selectedRoot: string; - classPath: string; - initialized = false; - errorOccurred = false; - fields: Field[] = []; - allFields: Field[] = []; - terminalFields: Field[] = []; - complexFieldsByClassIdentifier: { [key: string]: Field } = {}; - enumFieldsByClassIdentifier: { [key: string]: Field } = {}; - fieldsByPath: { [key: string]: Field } = {}; - fieldPaths: string[] = []; - showFields = true; - visibleInCurrentDocumentSearch = true; - namespaces: NamespaceModel[] = []; - characterEncoding: string; - locale: string; - - set type(type: DocumentType) { - this._type = type; - this.isPropertyOrConstant = - type === DocumentType.CONSTANT || type === DocumentType.PROPERTY; - } - - get type(): DocumentType { - return this._type; - } - - getComplexField(classIdentifier: string): Field { - return this.complexFieldsByClassIdentifier[classIdentifier]; - } - - getEnumField(classIdentifier: string): Field { - return this.enumFieldsByClassIdentifier[classIdentifier]; - } - - getAllFields(): Field[] { - return [...this.allFields]; - } - - /** - * Return true if the specified field name already exists in the specified document definition, - * false otherwise. - * - * @param targetField - * @param targetFieldDocDefType - */ - fieldExists( - targetField: Field, - targetFieldDocDefType: DocumentType - ): boolean { - for (const field of this.getAllFields()) { - if ( - field.name === targetField.name && - field.docDef.type === targetFieldDocDefType - ) { - return true; - } - } - return false; - } - - isFieldsExist(fields: Field[]): boolean { - if (fields == null || fields.length === 0) { - return true; - } - const foundFields: Field[] = this.getFields(Field.getFieldPaths(fields)); - return foundFields != null && fields.length === foundFields.length; - } - - getFields(fieldPaths: string[]): Field[] { - const fields: Field[] = []; - for (const fieldPath of fieldPaths) { - const field = this.getField(fieldPath); - if (field != null) { - fields.push(field); - } - } - return fields; - } - - getName(showTypes: boolean): string { - let name = this.name; - if (showTypes && !this.isPropertyOrConstant) { - const type = this.type; - if (type) { - name += ' (' + type + ')'; - } - } - return name; - } - - getNamespaceForAlias(alias: string): NamespaceModel { - // TODO: check this non null operator - return this.namespaces.find((ns) => alias === ns.alias)!; - } - - getField(fieldPath: string): Field | null { - if (!fieldPath) { - return null; - } - let field: Field = this.fieldsByPath[fieldPath]; - // if we can't find the field we're looking for, find parent fields and populate their children - const pathSeparator: string = FIELD_PATH_SEPARATOR; - let originalPath: string = fieldPath; - // strip beginning path separator from path - if (originalPath != null && originalPath.indexOf(pathSeparator) === 0) { - originalPath = originalPath.substring(1); - } - if (field == null && originalPath.indexOf(pathSeparator) !== -1) { - let currentParentPath = ''; - while (originalPath.indexOf(pathSeparator) !== -1) { - const currentPathSection: string = originalPath.substr( - 0, - originalPath.indexOf(pathSeparator) - ); - currentParentPath += pathSeparator + currentPathSection; - const parentField: Field = this.fieldsByPath[currentParentPath]; - if (parentField == null) { - if (originalPath.indexOf(pathSeparator) !== -1) { - originalPath = originalPath.substr( - originalPath.indexOf(pathSeparator) + 1 - ); - continue; - } else { - break; - } - // https://github.com/atlasmap/atlasmap/issues/1128 - // throw new Error('Could not populate parent field with path \'' - // + currentParentPath + '\' (for: ' + fieldPath + ')'); - } - this.populateChildren(parentField); - if (originalPath.indexOf(pathSeparator) !== -1) { - originalPath = originalPath.substr( - originalPath.indexOf(pathSeparator) + 1 - ); - } - } - field = this.fieldsByPath[fieldPath]; - } - return field; - } - - getComplexFields(): Field[] { - return this.discoverAllComplexFields(this.fields); - } - - getTerminalFields(): Field[] { - return [...this.terminalFields]; - } - - initializeFromFields(): void { - if (this.type === DocumentType.JAVA) { - this.prepareComplexFields(); - } - - Field.alphabetizeFields(this.fields); - - for (const field of this.fields) { - this.populateFieldData(field); - this.allFields.push(field); - this.populateChildren(field); - } - - this.fieldPaths.sort(); - this.initialized = true; - } - - updateField(field: Field, oldPath: string | null): void { - Field.alphabetizeFields(this.fields); - if ( - oldPath != null && - oldPath.length > 0 && - this.fieldsByPath[oldPath] != null - ) { - delete this.fieldsByPath[oldPath]; - CommonUtil.removeItemFromArray(oldPath, this.fieldPaths); - } else { - CommonUtil.removeItemFromArray(field.path, this.fieldPaths); - } - this.populateFieldData(field); - this.fieldPaths.sort(); - } - - addField(field: Field): void { - if (!field.parentField || this.isPropertyOrConstant) { - this.fields.push(field); - Field.alphabetizeFields(this.fields); - } else { - this.populateChildren(field.parentField); - field.parentField.children.push(field); - Field.alphabetizeFields(field.parentField.children); - } - this.populateFieldData(field); - this.allFields.push(field); - this.fieldPaths.sort(); - } - - /** - * Return true if the passed field is terminal or children are detected, false otherwise. - * @param field - target field - */ - populateChildren(field: Field): boolean { - // populate complex fields - if (field.isTerminal() || field.children.length > 0) { - return true; - } - - let cachedField = this.getComplexField(field.classIdentifier); - if (cachedField == null) { - return false; - } - - // copy cached field contents - cachedField = cachedField.copy(); - for (let childField of cachedField.children) { - childField = childField.copy(); - childField.parentField = field; - this.rewriteFieldPath(childField); - this.populateFieldData(childField); - field.children.push(childField); - } - - if (field.children.length > 0) { - this.fieldPaths.sort(); - return true; - } else { - return false; - } - } - - private rewriteFieldPath(field: Field) { - const parent = field.parentField; - const pathSegments = field.path.split(FIELD_PATH_SEPARATOR); - field.path = parent.path + FIELD_PATH_SEPARATOR + pathSegments.slice(-1)[0]; - for (let child of field.children) { - this.rewriteFieldPath(child); - } - } - - /** - * Clear all fields in this document. - */ - clearFields(): void { - this.initialized = false; - this.fields = []; - this.allFields = []; - this.terminalFields = []; - this.fieldPaths = []; - this.namespaces = []; - this.fieldsByPath = {}; - this.complexFieldsByClassIdentifier = {}; - this.enumFieldsByClassIdentifier = {}; - } - - getFieldIndex(field: Field, fields: Field[]): number { - for (let i = 0; i < fields.length; i++) { - if (fields[i].path === field.path) { - return i; - } - } - return -1; - } - - /** - * Remove the specified field from this document definition. - * - * @param field - */ - removeField(field: Field): void { - if (field == null) { - return; - } - let targetIndex = this.getFieldIndex(field, this.fields); - if (targetIndex > -1) { - this.fields.splice(targetIndex, 1); - } - targetIndex = this.getFieldIndex(field, this.allFields); - if (targetIndex > -1) { - this.allFields.splice(targetIndex, 1); - } - targetIndex = this.getFieldIndex(field, this.terminalFields); - if (targetIndex > -1) { - this.terminalFields.splice(targetIndex, 1); - } - let oldFieldPath = field.path; - CommonUtil.removeItemFromArray(oldFieldPath, this.fieldPaths); - delete this.fieldsByPath[oldFieldPath]; - if (field.parentField != null) { - CommonUtil.removeItemFromArray(field, field.parentField.children); - } - } - - updateFromMappings(mappingDefinition: MappingDefinition): void { - if (mappingDefinition === null) { - return; - } - - for (const field of this.allFields) { - field.partOfMapping = false; - field.hasUnmappedChildren = false; - field.partOfTransformation = false; - } - - // FIXME: some of this work is happening N times for N source/target docs, should only happen once. - for (const mapping of mappingDefinition.getAllMappings(true)) { - for (const field of mapping.getAllFields()) { - let parentField = field; - // TODO: check this non null operator - const partOfTransformation = - mapping.getMappedFieldForField(field)!.actions.length > 0; - while (parentField != null) { - parentField.partOfMapping = true; - parentField.partOfTransformation = - parentField.partOfTransformation || partOfTransformation; - parentField = parentField.parentField; - } - } - } - for (const field of this.allFields) { - field.hasUnmappedChildren = Field.fieldHasUnmappedChild(field); - } - } - - private populateFieldData(field: Field): void { - field.docDef = this; - let newFieldKey = field.path; - this.fieldPaths.push(newFieldKey); - this.fieldsByPath[newFieldKey] = field; - - if (field.enumeration) { - this.enumFieldsByClassIdentifier[field.classIdentifier] = field; - } - if (field.isTerminal()) { - this.terminalFields.push(field); - } else { - for (const childField of field.children) { - this.populateFieldData(childField); - this.allFields.push(childField); - } - } - } - - private prepareComplexFields(): void { - const fields: Field[] = this.fields; - - // build complex field cache - this.discoverComplexFields(fields); - - for (const key in this.complexFieldsByClassIdentifier) { - if (!this.complexFieldsByClassIdentifier.hasOwnProperty(key)) { - continue; - } - const cachedField: Field = this.complexFieldsByClassIdentifier[key]; - // remove children more than one level deep in cached fields - for (const childField of cachedField.children) { - childField.children = []; - } - // alphabetize complex field's childrein - Field.alphabetizeFields(cachedField.children); - } - } - - private discoverAllComplexFields(fields: Field[]): Field[] { - let complexFields: Field[] = []; - - for (const field of fields) { - if ( - field.type === 'COMPLEX' && - (field.documentField.status === 'SUPPORTED' || - field.documentField.status === 'CACHED') - ) { - complexFields.push(field.copy()); - } - if (field.children) { - complexFields = complexFields.concat( - this.discoverAllComplexFields(field.children) - ); - } - } - return complexFields; - } - - private discoverComplexFields(fields: Field[]): void { - for (const field of fields) { - if (field.type !== 'COMPLEX') { - continue; - } - if (field.documentField.status === 'SUPPORTED') { - this.complexFieldsByClassIdentifier[field.classIdentifier] = - field.copy(); - } - if (field.children) { - this.discoverComplexFields(field.children); - } - } - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/error.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/error.model.spec.ts deleted file mode 100644 index 6d57c85c8..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/error.model.spec.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { ErrorInfo, ErrorLevel } from '../models/error.model'; - -describe('ErrorModel', () => { - it('initialize', () => { - const ei: ErrorInfo = new ErrorInfo({ - message: 'test error message', - level: ErrorLevel.ERROR, - object: null, - }); - expect(ei.object).toBeNull(); - expect(+ei.identifier).toBeGreaterThanOrEqual(0); - expect(ei.level).toBe(ErrorLevel.ERROR); - expect(ei.message).toBe('test error message'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/error.model.ts b/packages/ui/src/_bk_atlasmap/core/models/error.model.ts deleted file mode 100644 index 9a2a2a7e0..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/error.model.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { MappedField, MappingModel } from './mapping.model'; - -export enum ErrorLevel { - DEBUG = 'DEBUG', - INFO = 'INFO', - WARN = 'WARN', - ERROR = 'ERROR', -} - -export enum ErrorScope { - APPLICATION = 'APPLICATION', - DATA_SOURCE = 'DATA_SOURCE', - LOOKUP_TABLE = 'LOOKUP_TABLE', - MAPPING = 'MAPPING', - FIELD = 'FIELD', - FORM = 'FORM', - CONSTANT = 'CONSTANT', - PROPERTY = 'PROPERTY', -} - -export enum ErrorType { - INTERNAL = 'INTERNAL', - USER = 'USER', - VALIDATION = 'VALIDATION', - PREVIEW = 'PREVIEW', - FORM = 'FORM', -} - -export class ErrorInfo { - private static errorIdentifierCounter = 0; - private _identifier: string; - - message: string; - level: ErrorLevel; - scope: ErrorScope; - type: ErrorType; - mapping: MappingModel; - field: MappedField; - object: any; - - constructor(init: Partial) { - this._identifier = ErrorInfo.errorIdentifierCounter.toString(); - ErrorInfo.errorIdentifierCounter++; - Object.assign(this, init); - } - - get identifier() { - return this._identifier; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/examples.ts b/packages/ui/src/_bk_atlasmap/core/models/examples.ts deleted file mode 100644 index 4e12beccc..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/examples.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -export class Examples { - static pom = ` - - - 4.0.0 - foo.bar - test.model - 1.10.0 - jar - Test :: Model - - - - com.fasterxml.jackson.core - jackson-annotations - 2.8.5 - - - com.fasterxml.jackson.core - jackson-databind - 2.8.5 - - - com.fasterxml.jackson.core - jackson-core - 2.8.5 - - - - `; -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/expression.model.ts b/packages/ui/src/_bk_atlasmap/core/models/expression.model.ts deleted file mode 100644 index ba093eee0..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/expression.model.ts +++ /dev/null @@ -1,754 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from './error.model'; -import { MappedField, MappingModel } from './mapping.model'; - -import { ConfigModel } from './config.model'; -import { IExpressionNode } from '../contracts/expression'; -import { Subject } from 'rxjs'; - -export class ExpressionUpdatedEvent { - constructor(public node?: ExpressionNode, public offset?: number) {} -} - -export abstract class ExpressionNode implements IExpressionNode { - protected static sequence = 0; - public readonly uuid: string; - public readonly str: string; - - constructor(prefix: string) { - this.uuid = prefix + ExpressionNode.sequence++; - } - - getUuid() { - return this.uuid; - } - - abstract toText(): string; - abstract toHTML(): string; -} - -export class TextNode extends ExpressionNode { - static readonly PREFIX = 'expression-text-'; - - constructor(public str: string) { - super(TextNode.PREFIX); - } - - toText(): string { - return this.str; - } - - toHTML(): string { - return `${this.str.replace(/ /g, ' ')}`; - } -} - -export class FieldNode extends ExpressionNode { - static readonly PREFIX = 'expression-field-'; - - constructor( - private mapping: MappingModel, - public mappedField?: MappedField | null, - public metaStr?: string, - index: number = 0, - public collectionContextPath?: string - ) { - super(FieldNode.PREFIX); - if (!mappedField) { - if (metaStr) { - const fieldParts = metaStr.split(':'); - - // Relative paths will not have the full field path in the meta data. - if (fieldParts.length === 1) { - if (collectionContextPath) { - this.mappedField = mapping.getMappedFieldByPath( - collectionContextPath + fieldParts[0], - true - )!; - } else { - this.mappedField = mapping.getMappedFieldByPath( - fieldParts[0], - true - )!; - } - } else { - this.mappedField = mapping.getMappedFieldByPath( - fieldParts[1], - true, - fieldParts[0] - )!; - } - if (!this.mappedField) { - this.mappedField = mapping.getReferenceField( - fieldParts[0], - fieldParts[1] - ); - } - } else { - this.mappedField = mapping.getMappedFieldForIndex( - (index + 1)?.toString(), - true - )!; - } - mappedField = this.mappedField; - } - } - - toText(): string { - if (!this.mappedField || !this.mappedField.field) { - return ''; - } - if (this.mappedField.field.enumeration) { - // Convert enumeration field/index pairs into a string literal. - const enumIdxVal = this.mappedField.field.enumIndexValue - ? this.mappedField.field.enumIndexValue - : 0; - return '"' + this.mappedField.field.enumValues[enumIdxVal].name + '"'; - } else { - let textStr = '${'; - - // If the mapped field's parent is a complex reference field then only use the leaf. - if ( - this.mappedField.field.parentField && - this.mappedField.field.parentField === - this.mapping.referenceFields[0]?.field - ) { - textStr += '/' + this.mappedField.field.name + '}'; - } else { - textStr += - this.mappedField.field.docDef.id + - ':' + - this.mappedField.field.path + - '}'; - } - return textStr; - } - } - - toHTML(): string { - if (this.mappedField && this.mappedField.field) { - let titleAddendum = ''; - let mappedFieldName = this.mappedField.field.name; - if (this.mappedField.field.enumeration) { - const enumIdxVal = this.mappedField.field.enumIndexValue - ? this.mappedField.field.enumIndexValue - : 0; - mappedFieldName += - '.' + this.mappedField.field.enumValues[enumIdxVal].name; - titleAddendum = ': Click to select an enumeration value.'; - } - return `${mappedFieldName}`; - } else { - // TODO: check this non null operator - return `N/A`; - } - } - - hasComplexField(): boolean { - return ( - this.mappedField?.field?.documentField.fieldType === 'COMPLEX' && - (this.mappedField?.field?.documentField.status === 'SUPPORTED' || - this.mappedField?.field?.documentField.status === 'CACHED') - ); - } -} - -export class ExpressionModel { - expressionHTML = ''; - expressionUpdatedSource = new Subject(); - expressionUpdated$ = this.expressionUpdatedSource.asObservable(); - - private _hasComplexField: boolean; - private _nodes: ExpressionNode[] = []; - private textCache = ''; - - constructor(private mapping: MappingModel, private cfg: ConfigModel) {} - - generateInitialExpression() { - this.mapping - .getUserMappedFields(true) - .forEach((f) => this.appendFieldNode(f)); - } - - get hasComplexField(): boolean { - return this._hasComplexField; - } - - set hasComplexField(value: boolean) { - this._hasComplexField = value; - } - - get nodes(): ReadonlyArray { - return this._nodes; - } - - getLastNodeIndex() { - return this._nodes.length - 1; - } - - getLastNode() { - return this._nodes[this.getLastNodeIndex()]; - } - - getNode(nodeId?: string): any { - if (!nodeId) { - return this.getLastNode(); - } - return this._nodes.find((n) => n.getUuid() === nodeId); - } - - setConfigModel(cfg: ConfigModel) { - this.cfg = cfg; - } - - /** - * Clear all text from the specified TextNode offset range or from the '@' to - * the end of the text node if no node ID is specified. - * - * Return the new UUID position indicator string or null. - * - * @param nodeId - * @param startOffset - * @param endOffset - */ - clearText( - nodeId?: string, - startOffset?: number, - endOffset?: number - ): TextNode | null { - let targetNode: TextNode | null = null; - if (!nodeId) { - const lastNode = this.getLastNode(); - if (!(lastNode instanceof TextNode)) { - return null; - } - const keyPos = lastNode.str.indexOf('@'); - if (keyPos !== -1) { - targetNode = lastNode; - targetNode.str = targetNode.str.substring(0, keyPos); - } - } else { - const node = this._nodes.find((n) => n.getUuid() === nodeId); - if (!(node instanceof TextNode) || !endOffset) { - return null; - } - targetNode = node; - // TODO: check this non null operator - const cleanStr = targetNode.str.replace( - targetNode.str.substring(startOffset!, endOffset), - '' - ); - targetNode.str = cleanStr; - } - this.updateCache(); - this.expressionUpdatedSource.next(); - return targetNode; - } - - /** - * Insert text into expression at specified position. If nodeId is not specified, - * it will be added to the end of expression. It parses the string - * and insert a set of TextNode & FieldNode if it contains field reference like ${0}, - * otherwise just one TextNode. - * This emits ExpressionUpdatedEvent which contains the latest node and offset it - * worked on, so that the subscriber can determine where to put the caret in - * the expression input widget. If ExpressionUpdatedEvent is undefined, it means that - * it worked on the end of the expression. - * @param str string to insert - * @param nodeId target node to insert the string - * @param offset position offset in the target node to insert the string - */ - insertText(str: string, nodeId?: string, offset?: number) { - this.insertNodes(this.createNodesFromText(str), nodeId, offset); - } - - /** - * Insert an array of ExpressionNodes at the specified position. If insertPosition is - * not specified the nodes will be appended to the end of the expression. - * This emits an ExpressionUpdatedEvent which contains the latest node and offset it - * worked on, so that the subscriber can determine where to put the caret in - * the expression input widget. If ExpressionUpdatedEvent is undefined, it means that - * it worked on the end of the expression. - * - * @param newNodes an array of ExpressionNode to add - * @param insertPosition target node to insert the string - * @param offset position offset in the target node to insert the string - */ - insertNodes( - newNodes: ExpressionNode[], - insertPosition?: string, - offset?: number - ) { - // No position was specified - append to the end - if (!insertPosition) { - const last = this.getLastNode(); - if (!last) { - this._nodes.push(...newNodes); - } else if (last instanceof TextNode && newNodes[0] instanceof TextNode) { - (last as TextNode).str += (newNodes[0] as TextNode).str; - newNodes.splice(0, 1, last); - this._nodes.splice(this.getLastNodeIndex(), 1, ...newNodes); - } else if ( - last instanceof FieldNode && - newNodes[0] instanceof FieldNode - ) { - this._nodes.splice( - this.getLastNodeIndex(), - 0, - new TextNode(' + '), - ...newNodes - ); - } else { - this._nodes.push(...newNodes); - } - this.updateCache(); - this.expressionUpdatedSource.next(); - return; - } - - // Requires position handling - const updatedEvent = new ExpressionUpdatedEvent(); - const targetNode = this._nodes.find((n) => n.getUuid() === insertPosition); - // TODO: check this non null operator - const targetNodeIndex = this._nodes.indexOf(targetNode!); - - if (targetNode instanceof TextNode) { - if (offset === undefined || offset === null || offset < 0) { - offset = targetNode.str.length; - } - const pre = targetNode.str.substring(0, offset); - const post = targetNode.str.substring(offset); - if (pre.length > 0) { - if (newNodes[0] instanceof TextNode) { - targetNode.str = pre + (newNodes[0] as TextNode).str; - newNodes.splice(0, 1, targetNode); - } else { - targetNode.str = pre; - newNodes.splice(0, 0, targetNode); - } - } - if (post.length > 0) { - const lastNewNodeIndex = newNodes.length - 1; - if (newNodes[lastNewNodeIndex] instanceof TextNode) { - let mergedTextNode: TextNode; - if (pre.length > 0) { - mergedTextNode = newNodes[lastNewNodeIndex] as TextNode; - mergedTextNode.str += post; - } else { - mergedTextNode = targetNode; - mergedTextNode.str = - (newNodes[lastNewNodeIndex] as TextNode).str + post; - } - newNodes.splice(lastNewNodeIndex, 1, mergedTextNode); - } else { - if (pre.length > 0) { - newNodes.push(new TextNode(post)); - } else { - targetNode.str = post; - newNodes.push(targetNode); - } - } - } - this._nodes.splice(targetNodeIndex, 1, ...newNodes); - const lastAddedIndex = targetNodeIndex + newNodes.length - 1; - if ( - this._nodes[lastAddedIndex] instanceof FieldNode && - this.nodes[lastAddedIndex + 1] instanceof FieldNode - ) { - // insert a glue in between FieldNodes so that it won't break syntax and caret can go into - const space = new TextNode(' + '); - this._nodes.splice(lastAddedIndex + 1, 0, space); - updatedEvent.node = space; - updatedEvent.offset = 1; - } else if (this._nodes[lastAddedIndex] instanceof FieldNode) { - updatedEvent.node = this._nodes[lastAddedIndex + 1]; - updatedEvent.offset = 0; - } else { - updatedEvent.node = this._nodes[lastAddedIndex]; - updatedEvent.offset = - (this._nodes[lastAddedIndex] as TextNode).str.length - post.length; - } - this.updateCache(); - this.expressionUpdatedSource.next(updatedEvent); - return; - } - - // targetNode is a FieldNode - insert the text before it if offset is 0, otherwise after it - if (offset !== 0 && newNodes[0] instanceof FieldNode) { - // insert a glue in between FieldNodes so that it won't break syntax and caret can go into - newNodes.splice(0, 0, new TextNode(' + ')); - } - const nextNodeIndex = offset === 0 ? targetNodeIndex : targetNodeIndex + 1; - const nextNode = this._nodes[nextNodeIndex]; - if ( - nextNode instanceof TextNode && - newNodes[newNodes.length - 1] instanceof TextNode - ) { - updatedEvent.offset = ( - newNodes[newNodes.length - 1] as TextNode - ).str.length; - nextNode.str = - (newNodes[newNodes.length - 1] as TextNode).str + - (nextNode as TextNode).str; - newNodes.pop(); - this._nodes.splice(nextNodeIndex, 1, ...newNodes); - updatedEvent.node = nextNode; - } else if ( - nextNode instanceof FieldNode && - newNodes[newNodes.length - 1] instanceof FieldNode - ) { - // insert a glue in between FieldNodes so that it won't break syntax and caret can go into - const space = new TextNode(' + '); - this._nodes.splice(nextNodeIndex, 0, ...newNodes, space); - updatedEvent.node = space; - updatedEvent.offset = 1; - } else { - this._nodes.splice(nextNodeIndex, 0, ...newNodes); - if (nextNode instanceof TextNode) { - updatedEvent.node = nextNode; - updatedEvent.offset = 0; - } else { - updatedEvent.node = newNodes[newNodes.length - 1]; - updatedEvent.offset = ( - newNodes[newNodes.length - 1] as TextNode - ).str.length; - } - } - this.updateCache(); - this.expressionUpdatedSource.next(updatedEvent); - } - - removeToken(tokenPosition?: string, offset?: number, removeNext?: boolean) { - // No position was specified - remove from the end - if (!tokenPosition) { - const last = this.getLastNode(); - if (!last) { - return; - } - if (last instanceof FieldNode) { - const removed = this._nodes.pop() as FieldNode; - if ( - !this._nodes.find( - (n) => - n instanceof FieldNode && n.mappedField === removed.mappedField - ) - ) { - // TODO: check this non null operator - this.mapping.removeField(removed.mappedField!.field!); - this.cfg.mappingService.updateMappedField(this.mapping); - } - } else if (last instanceof TextNode) { - if (last.str.length > 0) { - last.str = last.str.substring(0, last.str.length - 1); - } - if (last.str.length === 0) { - this._nodes.pop(); - } - } - this.updateCache(); - this.expressionUpdatedSource.next(); - return; - } - - // Requires position handling - let updatedEvent: ExpressionUpdatedEvent | undefined = - new ExpressionUpdatedEvent(); - let targetNode = this._nodes.find((n) => n.getUuid() === tokenPosition); - // TODO: check this non null operator - let targetNodeIndex = this._nodes.indexOf(targetNode!); - if (removeNext) { - targetNodeIndex++; - targetNode = this._nodes[targetNodeIndex]; - } - if (!targetNode || offset === -1) { - if (targetNodeIndex < 1) { - return; - } - targetNode = this._nodes[--targetNodeIndex]; - offset = - targetNode instanceof TextNode - ? (targetNode as TextNode).str.length - : 1; - } - if (targetNode instanceof FieldNode) { - const removed = this._nodes.splice(targetNodeIndex, 1); - const targetFieldNode: FieldNode = removed[0] as FieldNode; - if ( - !this._nodes.find( - (n) => - n instanceof FieldNode && - n.mappedField === targetFieldNode.mappedField - ) - ) { - // TODO: check this non null operator - this.mapping.removeField(targetFieldNode.mappedField!.field!); - this.cfg.mappingService.updateMappedField(this.mapping); - } - if (this._nodes.length > targetNodeIndex) { - if ( - this._nodes[targetNodeIndex - 1] instanceof TextNode && - this._nodes[targetNodeIndex] instanceof TextNode - ) { - const newOffset = (this._nodes[targetNodeIndex - 1] as TextNode).str - .length; - (this._nodes[targetNodeIndex - 1] as TextNode).str += ( - this._nodes[targetNodeIndex] as TextNode - ).str; - this._nodes.splice(targetNodeIndex, 1); - updatedEvent.node = this._nodes[targetNodeIndex - 1]; - updatedEvent.offset = newOffset; - } else if ( - this._nodes[targetNodeIndex - 1] instanceof FieldNode && - this._nodes[targetNodeIndex] instanceof FieldNode - ) { - const glue = new TextNode(' + '); - this._nodes.splice(targetNodeIndex, 0, glue); - updatedEvent.node = glue; - updatedEvent.offset = 3; - } else if (this._nodes[targetNodeIndex - 1] instanceof TextNode) { - updatedEvent.node = this._nodes[targetNodeIndex - 1]; - updatedEvent.offset = ( - this._nodes[targetNodeIndex - 1] as TextNode - ).str.length; - } else if (this._nodes[targetNodeIndex] instanceof TextNode) { - updatedEvent.node = this._nodes[targetNodeIndex]; - updatedEvent.offset = 0; - } - } else { - // end of line - updatedEvent = undefined; - } - } else { - const targetString = (targetNode as TextNode).str; - - // Remove empty string text node. - if (targetString.length === 1) { - this._nodes.splice(targetNodeIndex, 1); - } else { - (targetNode as TextNode).str = - offset === 0 - ? targetString.substr(1) - : targetString.substring(0, offset) + - targetString.substring(offset! + 1); - updatedEvent.node = targetNode; - updatedEvent.offset = offset; - } - } - this.updateCache(); - this.expressionUpdatedSource.next(updatedEvent); - } - - /** - * Replace the content of the last text node with a substring terminating at the - * specified index. - * - * @param index - */ - clearToEnd(index: number): void { - const last = this.getLastNode(); - if (!(last instanceof TextNode)) { - return; - } - last.str = last.str.substring(0, index); - } - - /** - * Reflect mapped source fields to the field references in the expression. - * Selected source fields are inserted into or appended to the expression, - * and unselected source fields are removed from expression. - * - * @param mapping Corresponding MappingModel object - * @param insertPosition - * @param offset - */ - updateFieldReference( - mapping: MappingModel, - insertPosition?: string, - offset?: number - ) { - const mappedFields = mapping.getUserMappedFields(true); - const referenceFields = mapping.getReferenceMappedFields(); - let fieldNodes = this._nodes.filter( - (n) => n instanceof FieldNode - ) as FieldNode[]; - - // Remove non-reference fields from the expression if unmapped. - for (const node of fieldNodes) { - // TODO: check this non null operator - if ( - mappedFields.includes(node.mappedField!) || - referenceFields.includes(node.mappedField!) || - node.hasComplexField() - ) { - continue; - } - const index = this._nodes.indexOf(node); - this._nodes.splice(index, 1); - if ( - this._nodes.length > index && - this._nodes[index - 1] instanceof TextNode && - this._nodes[index] instanceof TextNode - ) { - (this._nodes[index - 1] as TextNode).str += ( - this._nodes[index] as TextNode - ).str; - this._nodes.splice(index, 1); - } - } - - // Add any non-reference mapped fields into the expression - append if no insert - // position is specified. - fieldNodes = this._nodes.filter( - (n) => n instanceof FieldNode - ) as FieldNode[]; - for (const mfield of mappedFields) { - if ( - !fieldNodes.find((n) => n.mappedField === mfield) && - !referenceFields.find((r) => r.field === mfield.field) - ) { - if (insertPosition) { - this.insertNodes( - [new FieldNode(this.mapping, mfield)], - insertPosition, - offset - ); - } else { - this.appendFieldNode(mfield); - } - } - } - this.updateCache(); - this.expressionUpdatedSource.next(); - } - - clear() { - this._nodes = []; - this.updateCache(); - this.expressionUpdatedSource.next(); - } - - toText() { - if (this.textCache.length === 0) { - this.updateCache(); - } - return this.textCache; - } - - toHTML() { - if (this.expressionHTML.length === 0) { - this.updateCache(); - } - return this.expressionHTML; - } - - addConditionalExpressionNode( - mappedField: MappedField, - nodeId: string, - offset: number - ): void { - this.insertNodes( - [new FieldNode(this.mapping, mappedField)], - nodeId, - offset - ); - } - - private updateCache() { - let answer = ''; - this._nodes.forEach((node) => (answer += node.toText())); - this.textCache = answer; - answer = ''; - this._nodes.forEach((node) => (answer += node.toHTML())); - this.expressionHTML = answer; // trigger expr box render - } - - /** - * Translate an expression string into an array of text nodes and field nodes. Handle - * relative paths for collection-based field references. - * - * @param text - */ - private createNodesFromText(text: string): ExpressionNode[] { - const answer = []; - let position = -1; - let collectionContextFieldNode = null; - - while (text.search(/\$\{[a-zA-Z0-9.:/<>[\]_-]+\}/) !== -1) { - position = text.search(/\$/); - if (position !== 0) { - answer.push(new TextNode(text.substring(0, position))); - } - const nodeMetaVal = text.substring(position + 2, text.indexOf('}')); - let fn = null; - if (isNaN(Number(nodeMetaVal))) { - fn = collectionContextFieldNode - ? new FieldNode( - this.mapping, - undefined, - nodeMetaVal, - undefined, - collectionContextFieldNode.mappedField?.field?.path! - ) - : new FieldNode(this.mapping, undefined, nodeMetaVal); - } else { - const index = parseInt(nodeMetaVal, 10); - fn = new FieldNode(this.mapping, undefined, undefined, index); - } - - if (!fn || !fn.mappedField) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `Unable to map expression element '${nodeMetaVal}' to a field node.`, - level: ErrorLevel.ERROR, - scope: ErrorScope.MAPPING, - type: ErrorType.INTERNAL, - mapping: this.mapping, - }) - ); - } else { - if (fn.mappedField?.field?.isCollection) { - collectionContextFieldNode = fn; - } - answer.push(fn); - } - text = text.substring(text.indexOf('}') + 1); - } - if (text.length > 0) { - answer.push(new TextNode(text)); - } - return answer; - } - - private appendFieldNode(mfield: MappedField) { - const lastNode = this._nodes.pop(); - if (lastNode instanceof FieldNode) { - this._nodes.push(lastNode, new TextNode(' + ')); - } else if (lastNode instanceof TextNode) { - if (lastNode.str.length === 0) { - this._nodes.push(new TextNode(' + ')); - } else { - this._nodes.push(lastNode); - } - } - this._nodes.push(new FieldNode(this.mapping, mfield)); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/field-action.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/field-action.model.spec.ts deleted file mode 100644 index 19aded0d4..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/field-action.model.spec.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - FieldAction, - FieldActionDefinition, -} from '../models/field-action.model'; - -describe('FieldActionModel', () => { - test('FieldAction.create()', () => { - const actionDefinition = new FieldActionDefinition(); - actionDefinition.name = 'dummy'; - const action = FieldAction.create(actionDefinition); - expect(action).toBeTruthy(); - expect(action.name).toEqual(actionDefinition.name); - expect(action.definition).toEqual(actionDefinition); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/field-action.model.ts b/packages/ui/src/_bk_atlasmap/core/models/field-action.model.ts deleted file mode 100644 index 6d030f5eb..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/field-action.model.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { FieldType } from '../contracts'; -import { Multiplicity } from '../contracts/field-action'; - -export class FieldActionArgument { - name: string; - type = FieldType.STRING; - values: string[] | null = null; - serviceObject: any = {}; -} - -export class FieldActionArgumentValue { - label: string; - name: string; - value: string; -} - -export class FieldActionDefinition { - name: string; - isCustom: boolean; - arguments: FieldActionArgument[] = []; - method: string; - sourceType = FieldType.NONE; - targetType = FieldType.NONE; - multiplicity = Multiplicity.ONE_TO_ONE; - serviceObject: any = {}; - - populateFieldAction(action: FieldAction): void { - action.name = this.name; - action.definition = this; - - // Use the parsed values if present, otherwise set to '0'. - if (action.argumentValues == null || action.argumentValues.length === 0) { - action.argumentValues = []; - for (const arg of this.arguments) { - // Default the input field to 0 for numerics - if ( - [ - 'LONG', - 'INTEGER', - 'FLOAT', - 'DOUBLE', - 'SHORT', - 'BYTE', - 'DECIMAL', - 'NUMBER', - ].indexOf(arg.type.toUpperCase()) !== -1 - ) { - action.setArgumentValue(arg.name!, '0'); // TODO: check this non null operator - } else { - action.setArgumentValue(arg.name!, ''); // TODO: check this non null operator - } - } - } - } - - getArgumentForName(name: string): FieldActionArgument { - // TODO: check this non null operator - return this.arguments.find((argument) => argument.name === name)!; - } -} - -export class FieldAction { - name: string; - definition: FieldActionDefinition | null; - argumentValues: FieldActionArgumentValue[] = []; - - static create(definition: FieldActionDefinition): FieldAction { - const instance = new FieldAction(); - instance.definition = definition; - instance.name = definition?.name; - return instance; - } - - getArgumentValue(argumentName: string): FieldActionArgumentValue { - for (const argValue of this.argumentValues) { - if (argValue.name === argumentName) { - return argValue; - } - } - const newArgValue: FieldActionArgumentValue = - new FieldActionArgumentValue(); - newArgValue.name = argumentName; - newArgValue.value = '0'; - this.argumentValues.push(newArgValue); - return newArgValue; - } - - setArgumentValue(argumentName: string, value: string): void { - this.getArgumentValue(argumentName).value = value; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/field.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/field.model.spec.ts deleted file mode 100644 index adf35ff47..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/field.model.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { Field } from '../models/field.model'; - -describe('Field', () => { - test('initialize', () => { - const f = new Field(); - expect(f.uuid); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/field.model.ts b/packages/ui/src/_bk_atlasmap/core/models/field.model.ts deleted file mode 100644 index 23e2ad70d..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/field.model.ts +++ /dev/null @@ -1,287 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - DocumentType, - FIELD_PATH_SEPARATOR, - FieldType, - IField, -} from '../contracts/common'; -import { DocumentDefinition } from './document-definition.model'; - -export class EnumValue { - name: string; - ordinal: number; -} - -export class Field { - private static uuidCounter = 0; - - name: string; - classIdentifier: string; - displayName: string; - path: string; - type: FieldType; - scope: string | undefined; - value: string; - column: number; - // The field properties read from document inspection result. - documentField: IField = { jsonType: '' }; - parentField: Field; - partOfMapping = false; - partOfTransformation = false; - visibleInCurrentDocumentSearch = true; - enumeration = false; - enumIndexValue: number; - enumValues: EnumValue[] = []; - children: Field[] = []; - fieldDepth = 0; - uuid: string; - collapsed = true; - hasUnmappedChildren = false; - isCollection = false; - isArray = false; - isAttribute = false; - isPrimitive = false; - userCreated = false; - docDef: DocumentDefinition; - namespaceAlias: string | null; - - static fieldHasUnmappedChild(field: Field): boolean { - if (field == null) { - return false; - } - if (field.isTerminal()) { - return field.partOfMapping === false; - } - for (const childField of field.children) { - if ( - childField.hasUnmappedChildren || - Field.fieldHasUnmappedChild(childField) - ) { - return true; - } - } - return false; - } - - static getFieldPaths(fields: Field[]): string[] { - const paths: string[] = []; - for (const field of fields) { - paths.push(field.path); - } - return paths; - } - - static getFieldNames(fields: Field[]): string[] { - const paths: string[] = []; - for (const field of fields) { - paths.push(field.name); - } - return paths; - } - - static getField(fieldPath: string, fields: Field[]): Field { - // TODO: check this non null operator - return fields.find((field) => fieldPath === field.path)!; - } - - static alphabetizeFields(fields: Field[]): void { - const fieldsByPath: { [key: string]: Field } = {}; - const fieldPaths: string[] = []; - for (const field of fields) { - let fieldKey = field.path; - // Discard duplicate field keys, field names are repeatable. - if (fieldsByPath[fieldKey] != null) { - continue; - } - fieldsByPath[fieldKey] = field; - fieldPaths.push(fieldKey); - } - fieldPaths.sort(); - fields.length = 0; - for (const path of fieldPaths) { - fields.push(fieldsByPath[path]); - } - - for (const field of fields) { - if (field.children && field.children.length) { - this.alphabetizeFields(field.children); - } - } - } - - constructor() { - this.uuid = Field.uuidCounter.toString(); - Field.uuidCounter++; - } - - /** - * Expand all fields above the current field. - */ - expandToRoot() { - let parent: Field = this; - while (parent != null) { - parent.collapsed = false; - if (parent.isPropertyOrConstant()) { - if (parent.docDef) { - parent.docDef.showFields = true; - } - } - parent = parent.parentField; - } - } - - getNameWithNamespace(): string { - if (!this.namespaceAlias) { - return this.name; - } - return this.namespaceAlias + ':' + this.name; - } - - isParentField(): boolean { - if (this.isCollection && !this.isPrimitive) { - return true; - } - return this.type === 'COMPLEX'; - } - - isStringField(): boolean { - return this.type === 'STRING'; - } - - isTerminal(): boolean { - if (this.enumeration) { - return true; - } - if (this.isCollection && !this.isPrimitive) { - return false; - } - return this.type !== 'COMPLEX'; - } - - copy(): Field { - const copy: Field = new Field(); - Object.assign(copy, this); - - // make these pointers to the same object, not copies - copy.documentField = this.documentField; - copy.parentField = this.parentField; - copy.docDef = this.docDef; - - copy.children = []; - for (const childField of this.children) { - copy.children.push(childField.copy()); - } - // console.log("Copied: " + this.name, { "src": this, "target": copy }); - return copy; - } - - copyFrom(that: Field): void { - Object.assign(this, that); - - // make these pointers to the same object, not copies - this.documentField = that.documentField; - this.parentField = that.parentField; - this.docDef = that.docDef; - - this.children = []; - for (const childField of that.children) { - this.children.push(childField.copy()); - } - } - - // @ts-ignore - getCollectionParentField(): Field { - let parent: Field = this; - while (parent != null) { - if (parent.isCollection) { - return parent; - } - parent = parent.parentField; - } - } - - isInCollection(): boolean { - return this.getCollectionParentField() != null; - } - - getCollectionCount(): number { - let count = 0; - let field: Field = this; - while (field != null) { - if (field.isCollection) { - count++; - } - field = field.parentField; - } - return count; - } - - isSource(): boolean { - return this.docDef != null && this.docDef.isSource; - } - - getCollectionType(): string | null { - return this.isCollection ? (this.isArray ? 'ARRAY' : 'LIST') : null; - } - - getFieldLabel(showTypes: boolean, includePath: boolean): string { - let fieldPath = ''; - if (includePath) { - fieldPath = this.path; - } else { - const pathComps = this.path.split(FIELD_PATH_SEPARATOR); - // Check for a leaf path attribute field starting with '@' - if ( - this.isAttribute && - pathComps.length > 0 && - pathComps[pathComps.length - 1].startsWith('@') - ) { - fieldPath = this.path.split('@')[1]; - } else { - fieldPath = this.getNameWithNamespace(); - } - } - if (showTypes && this.type && !this.isPropertyOrConstant()) { - fieldPath += ' (' + this.type + ')'; - } else if (this.isProperty() && this.value != null) { - fieldPath += ' = ' + this.value; - if (showTypes && this.type) { - fieldPath += ' (' + this.type + ')'; - } - } - if (!fieldPath && !this.parentField) { - fieldPath = '< Document Root >'; - } - return fieldPath; - } - - isPropertyOrConstant(): boolean { - return this.docDef == null ? false : this.docDef.isPropertyOrConstant; - } - - isProperty(): boolean { - return this.docDef == null - ? false - : this.docDef.type === DocumentType.PROPERTY; - } - - isConstant(): boolean { - return this.docDef == null - ? false - : this.docDef.type === DocumentType.CONSTANT; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/index.ts b/packages/ui/src/_bk_atlasmap/core/models/index.ts deleted file mode 100644 index 5fa465ce0..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './config.model'; -export * from './document-definition.model'; -export * from './error.model'; -export * from './examples'; -export * from './expression.model'; -export * from './field-action.model'; -export * from './field.model'; -export * from './inspect'; -export * from './lookup-table.model'; -export * from './mapping-definition.model'; -export * from './mapping.model'; -export * from './transition.model'; diff --git a/packages/ui/src/_bk_atlasmap/core/models/inspect/csv-inspection.model.ts b/packages/ui/src/_bk_atlasmap/core/models/inspect/csv-inspection.model.ts deleted file mode 100644 index bc247f26f..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/inspect/csv-inspection.model.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - DocumentInspectionModel, - DocumentInspectionRequestModel, - DocumentInspectionRequestOptions, -} from './document-inspection.model'; -import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; -import { FieldType, IDocument } from '../../contracts/common'; -import { - ICsvComplexType, - ICsvDocumentContainer, - ICsvField, - ICsvInspectionResponse, - ICsvInspectionResponseContainer, -} from '../../contracts/documents/csv'; - -import { CommonUtil } from '../../utils/common-util'; -import { Field } from '../field.model'; - -export class CsvInspectionModel extends DocumentInspectionModel { - request = new CsvInspectionRequestModel(this.cfg, this.doc); - - isOnlineInspectionCapable(): boolean { - if (this.cfg.initCfg.baseCSVInspectionServiceUrl == null) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `CSV inspection service is not configured. Document will not be loaded: ${this.doc.name}`, - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: this.doc, - }) - ); - return false; - } - return true; - } - - parseResponse(responseJson: any): void { - if (typeof responseJson.CsvInspectionResponse !== 'undefined') { - this.extractCSVDocumentDefinitionFromInspectionResponse( - (responseJson as ICsvInspectionResponseContainer).CsvInspectionResponse - ); - } else if (typeof responseJson.CsvDocument !== 'undefined') { - this.extractCSVDocumentDefinition( - (responseJson as ICsvDocumentContainer).CsvDocument - ); - } else { - throw new Error(`Unknown CSV inspection result format: ${responseJson}`); - } - } - - private extractCSVDocumentDefinitionFromInspectionResponse( - body: ICsvInspectionResponse - ): void { - if (body.errorMessage) { - this.doc.errorOccurred = true; - throw new Error( - `Could not load JSON document, error: ${body.errorMessage}` - ); - } - - this.extractCSVDocumentDefinition(body.csvDocument); - } - - private extractCSVDocumentDefinition(csvDocument: IDocument): void { - if (!this.doc.description) { - this.doc.description = this.doc.id; - } - if (!this.doc.name) { - this.doc.name = this.doc.id; - } - if (this.doc.inspectionParameters) { - this.doc.uri = CommonUtil.urlWithParameters( - this.doc.uri, - this.doc.inspectionParameters - ); - } - - for (const field of csvDocument.fields.field) { - this.parseCSVFieldFromDocument(field as ICsvField, null); - } - } - - private parseCSVFieldFromDocument( - field: ICsvField, - parentField: Field | null - ): void { - const parsedField = this.parseFieldFromDocument(field, parentField); - if (parsedField == null) { - return; - } - parsedField.column = field.column; - if (field.fieldType !== FieldType.COMPLEX) { - return; - } - const csvComplexType = field as ICsvComplexType; - if (csvComplexType.csvFields?.csvField?.length) { - for (const childField of csvComplexType.csvFields.csvField) { - this.parseCSVFieldFromDocument(childField, parsedField); - } - } - } -} - -export class CsvInspectionRequestModel extends DocumentInspectionRequestModel { - url = this.cfg.initCfg.baseCSVInspectionServiceUrl + 'inspect'; - options = new CsvInspectionRequestOptions(this.cfg, this.doc); -} - -export class CsvInspectionRequestOptions extends DocumentInspectionRequestOptions { - body = this.doc.inspectionSource; - searchParams: { [key: string]: string } = this.doc.inspectionParameters; -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/inspect/cvs-inspection.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/inspect/cvs-inspection.model.spec.ts deleted file mode 100644 index d4fe15d1d..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/inspect/cvs-inspection.model.spec.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { ConfigModel, DocumentDefinition } from '..'; -import { CsvInspectionModel } from './csv-inspection.model'; - -describe('CsvInspectionModel', () => { - test('Duplicate document URI search parameters', () => { - const cfg = new ConfigModel(); - const doc = new DocumentDefinition(); - const cvs = new CsvInspectionModel(cfg, doc); - - expect(cvs.doc.uri).toBeUndefined(); - - const response = { - CsvDocument: { - fields: { - field: {}, - }, - }, - }; - - doc.uri = 'base:'; - doc.inspectionParameters = { - a: '1', - b: '2', - }; - cvs.parseResponse(response); - expect(cvs.doc.uri).toBe('base:?a=1&b=2'); - - doc.inspectionParameters = { - c: '3', - d: '4', - }; - - cvs.parseResponse(response); - expect(cvs.doc.uri).toBe('base:?c=3&d=4'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/inspect/document-inspection.model.ts b/packages/ui/src/_bk_atlasmap/core/models/inspect/document-inspection.model.ts deleted file mode 100644 index 133c1a033..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/inspect/document-inspection.model.ts +++ /dev/null @@ -1,99 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; - -import { ConfigModel } from '../config.model'; -import { DocumentDefinition } from '../document-definition.model'; -import { Field } from '../field.model'; -import { IField } from '../../contracts/common'; -import { Input } from 'ky/distribution/types/options'; -import { Options } from 'ky'; - -/** - * Encapsulates Document inspection context. - */ -export abstract class DocumentInspectionModel { - request: DocumentInspectionRequestModel; - - constructor(public cfg: ConfigModel, public doc: DocumentDefinition) {} - - /** - * Validates if the online inspection is available for this type of Document. - */ - abstract isOnlineInspectionCapable(): boolean; - - /** - * Parse inspection response returned from backend. - * - * @param responseJson - */ - abstract parseResponse(responseJson: any): void; - - protected parseFieldFromDocument( - field: IField, - parentField: Field | null - ): Field | null { - if (field != null && field.status === 'NOT_FOUND') { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `Ignoring unknown field: ${field.name} (${field.path}), document: ${this.doc.name}`, - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.USER, - }) - ); - return null; - } else if (field != null && field.status === 'EXCLUDED') { - return null; - } - - const parsedField: Field = new Field(); - parsedField.name = field.name!; - parsedField.type = field.fieldType!; - parsedField.path = field.path!; - parsedField.isPrimitive = field.fieldType !== 'COMPLEX'; - parsedField.documentField = field; - - if ('LIST' === field.collectionType || 'ARRAY' === field.collectionType) { - parsedField.isCollection = true; - if ('ARRAY' === field.collectionType) { - parsedField.isArray = true; - } - } - - if (parentField != null) { - parsedField.parentField = parentField; - parentField.children.push(parsedField); - } else { - this.doc.fields.push(parsedField); - } - - return parsedField; - } -} - -export abstract class DocumentInspectionRequestModel { - constructor(protected cfg: ConfigModel, protected doc: DocumentDefinition) {} - url: Input; - options: DocumentInspectionRequestOptions; -} - -export abstract class DocumentInspectionRequestOptions implements Options { - constructor(protected cfg: ConfigModel, protected doc: DocumentDefinition) {} - json: any; - headers: { [key: string]: string } = { 'Content-Type': 'application/json' }; - searchParams: { [key: string]: string } = {}; -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/inspect/index.ts b/packages/ui/src/_bk_atlasmap/core/models/inspect/index.ts deleted file mode 100644 index d65565ac8..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/inspect/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './csv-inspection.model'; -export * from './document-inspection.model'; -export * from './java-inspection.model'; -export * from './json-inspection.model'; -export * from './xml-inspection.model'; diff --git a/packages/ui/src/_bk_atlasmap/core/models/inspect/java-inspection.model.ts b/packages/ui/src/_bk_atlasmap/core/models/inspect/java-inspection.model.ts deleted file mode 100644 index afacca655..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/inspect/java-inspection.model.ts +++ /dev/null @@ -1,194 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { CollectionType, FieldType } from '../../contracts/common'; -import { - DocumentInspectionModel, - DocumentInspectionRequestModel, - DocumentInspectionRequestOptions, -} from './document-inspection.model'; -import { EnumValue, Field } from '../field.model'; -import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; -import { - IClassInspectionRequestContainer, - IClassInspectionResponseContainer, - IJavaClass, - IJavaClassContainer, - IJavaField, - JAVA_INSPECTION_REQUEST_JSON_TYPE, -} from '../../contracts/documents/java'; - -import { ConfigModel } from '../config.model'; -import { DocumentDefinition } from '../document-definition.model'; - -/** - * Encapsulates Java class inspection context. - */ -export class JavaInspectionModel extends DocumentInspectionModel { - request = new JavaInspectionRequestModel(this.cfg, this.doc); - - isOnlineInspectionCapable(): boolean { - if (this.cfg.initCfg.baseJavaInspectionServiceUrl == null) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `Java inspection service is not configured. Document will not be loaded: ${this.doc.name}`, - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: this.doc, - }) - ); - return false; - } - return true; - } - - parseResponse(responseJson: any): void { - let javaClass: IJavaClass; - if (responseJson.ClassInspectionResponse) { - if (responseJson.errorMessage) { - this.doc.errorOccurred = true; - throw new Error( - `Could not load JSON document, error: ${responseJson.errorMessage}` - ); - } - javaClass = (responseJson as IClassInspectionResponseContainer) - .ClassInspectionResponse.javaClass; - } else { - javaClass = (responseJson as IJavaClassContainer).JavaClass; - } - const docIdentifier: string = this.doc.id; - if (!javaClass || javaClass.status === 'NOT_FOUND') { - this.doc.errorOccurred = true; - throw new Error( - `Could not load JAVA document. Document is not found: ${docIdentifier}` - ); - } - - if (!this.doc.description) { - this.doc.description = javaClass.className; - } - if (!this.doc.name) { - this.doc.name = javaClass.className!; - // Make doc name the class name rather than fully qualified name - if (this.doc.name && this.doc.name.indexOf('.') !== -1) { - this.doc.name = this.doc.name.substr( - this.doc.name.lastIndexOf('.') + 1 - ); - } - } - if (javaClass.uri && (!this.doc.uri || this.doc.uri.length === 0)) { - this.doc.uri = javaClass.uri; - } - - let rootField = null; - if ( - javaClass.collectionType && - javaClass.collectionType !== CollectionType.NONE.valueOf() - ) { - this.parseJavaFieldFromDocument(javaClass, null); - rootField = this.doc.fields[0]; - } - for (const field of javaClass.javaFields.javaField) { - this.parseJavaFieldFromDocument(field, rootField); - } - } - - private parseJavaFieldFromDocument( - field: IJavaField, - parentField: Field | null - ): void { - const parsedField = this.parseFieldFromDocument(field, parentField); - if (parsedField == null) { - return; - } - - if (field.className) { - parsedField.classIdentifier = field.className; - } - - if (field.fieldType !== FieldType.COMPLEX) { - return; - } - - const javaClass = field as IJavaClass; - parsedField.enumeration = javaClass.enumeration; - if (javaClass.enumeration && javaClass.javaEnumFields?.javaEnumField) { - for (const enumValue of javaClass.javaEnumFields.javaEnumField) { - const parsedEnumValue: EnumValue = new EnumValue(); - parsedEnumValue.name = enumValue.name; - parsedEnumValue.ordinal = enumValue.ordinal; - parsedField.enumValues.push(parsedEnumValue); - } - } - - if (javaClass.javaFields?.javaField?.length) { - for (const childField of javaClass.javaFields.javaField) { - this.parseJavaFieldFromDocument(childField, parsedField); - } - } - } -} - -export class JavaInspectionRequestModel extends DocumentInspectionRequestModel { - url = this.cfg.initCfg.baseJavaInspectionServiceUrl + 'class'; - options = new JavaInspectionRequestOptions(this.cfg, this.doc); -} - -export class JavaInspectionRequestOptions extends DocumentInspectionRequestOptions { - constructor(protected cfg: ConfigModel, protected doc: DocumentDefinition) { - super(cfg, doc); - const request: IClassInspectionRequestContainer = { - ClassInspectionRequest: { - jsonType: JAVA_INSPECTION_REQUEST_JSON_TYPE, - className: this.doc.inspectionSource, - disablePrivateOnlyFields: this.cfg.initCfg.disablePrivateOnlyFields, - disableProtectedOnlyFields: this.cfg.initCfg.disableProtectedOnlyFields, - disablePublicOnlyFields: this.cfg.initCfg.disablePublicOnlyFields, - disablePublicGetterSetterFields: - this.cfg.initCfg.disablePublicGetterSetterFields, - }, - }; - this.json = request; - if ( - this.doc.initModel.collectionType && - (this.doc.initModel.collectionType as CollectionType) !== - CollectionType.NONE - ) { - request.ClassInspectionRequest.collectionType = - this.doc.initModel.collectionType; - if (this.doc.initModel.collectionClassName) { - request.ClassInspectionRequest.collectionClassName = - this.doc.initModel.collectionClassName; - } - } - if ( - this.cfg.initCfg.fieldNameExclusions && - this.cfg.initCfg.fieldNameExclusions.length - ) { - request.ClassInspectionRequest.fieldNameExclusions = { - string: this.cfg.initCfg.fieldNameExclusions, - }; - } - if ( - this.cfg.initCfg.classNameExclusions && - this.cfg.initCfg.classNameExclusions.length - ) { - request.ClassInspectionRequest.classNameExclusions = { - string: this.cfg.initCfg.classNameExclusions, - }; - } - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/inspect/json-inspection.model.ts b/packages/ui/src/_bk_atlasmap/core/models/inspect/json-inspection.model.ts deleted file mode 100644 index e26983cce..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/inspect/json-inspection.model.ts +++ /dev/null @@ -1,144 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - DocumentInspectionModel, - DocumentInspectionRequestModel, - DocumentInspectionRequestOptions, -} from './document-inspection.model'; -import { EnumValue, Field } from '../field.model'; -import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; -import { - IJsonComplexType, - IJsonDocument, - IJsonDocumentContainer, - IJsonField, - IJsonInspectionResponse, - IJsonInspectionResponseContainer, - JSON_INSPECTION_REQUEST_JSON_TYPE, -} from '../../contracts/documents/json'; -import { FieldType } from '../../contracts/common'; - -/** - * Encapsulates JSON inspection context. - */ -export class JsonInspectionModel extends DocumentInspectionModel { - request = new JsonInspectionRequestModel(this.cfg, this.doc); - - isOnlineInspectionCapable(): boolean { - if (this.cfg.initCfg.baseJSONInspectionServiceUrl == null) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `JSON inspection service is not configured. Document will not be loaded: ${this.doc.name}`, - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: this.doc, - }) - ); - return false; - } - return true; - } - - parseResponse(responseJson: any): void { - if (typeof responseJson.JsonInspectionResponse !== 'undefined') { - this.extractJSONDocumentDefinitionFromInspectionResponse( - (responseJson as IJsonInspectionResponseContainer) - .JsonInspectionResponse - ); - } else if (typeof responseJson.JsonDocument !== 'undefined') { - this.extractJSONDocumentDefinition( - (responseJson as IJsonDocumentContainer).JsonDocument - ); - } else { - throw new Error(`Unknown JSON inspection result format: ${responseJson}`); - } - } - - private extractJSONDocumentDefinitionFromInspectionResponse( - body: IJsonInspectionResponse - ): void { - if (body.errorMessage) { - this.doc.errorOccurred = true; - throw new Error( - `Could not load JSON document, error: ${body.errorMessage}` - ); - } - - this.extractJSONDocumentDefinition(body.jsonDocument); - } - - private extractJSONDocumentDefinition(jsonDocument: IJsonDocument): void { - if (!this.doc.description) { - this.doc.description = this.doc.id; - } - if (!this.doc.name) { - this.doc.name = this.doc.id; - } - - for (const field of jsonDocument.fields.field) { - this.parseJSONFieldFromDocument(field as IJsonField, null); - } - } - - private parseJSONFieldFromDocument( - field: IJsonField, - parentField: Field | null - ): void { - const parsedField = this.parseFieldFromDocument(field, parentField); - if (parsedField == null) { - return; - } - if (field.fieldType !== FieldType.COMPLEX) { - return; - } - const complex = field as IJsonComplexType; - parsedField.enumeration = complex.enumeration; - /** FIXME enumIndexValue doesn't exist on JsonField/JsonComplexType - parsedField.enumIndexValue = complex.enumIndexValue - ? complex.enumIndexValue - : 0; - */ - if (parsedField.enumeration && complex.jsonEnumFields?.jsonEnumField) { - for (const enumValue of complex.jsonEnumFields.jsonEnumField) { - const parsedEnumValue: EnumValue = new EnumValue(); - parsedEnumValue.name = enumValue.name!; - parsedEnumValue.ordinal = enumValue.ordinal; - parsedField.enumValues.push(parsedEnumValue); - } - } - if (complex.jsonFields?.jsonField.length) { - for (const childField of complex.jsonFields.jsonField) { - this.parseJSONFieldFromDocument(childField, parsedField); - } - } - } -} - -export class JsonInspectionRequestModel extends DocumentInspectionRequestModel { - url = this.cfg.initCfg.baseJSONInspectionServiceUrl + 'inspect'; - options = new JsonInspectionRequestOptions(this.cfg, this.doc); -} - -export class JsonInspectionRequestOptions extends DocumentInspectionRequestOptions { - json = { - JsonInspectionRequest: { - jsonType: JSON_INSPECTION_REQUEST_JSON_TYPE, - type: this.doc.inspectionType, - jsonData: this.doc.inspectionSource, - }, - }; -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/inspect/xml-inspection.model.ts b/packages/ui/src/_bk_atlasmap/core/models/inspect/xml-inspection.model.ts deleted file mode 100644 index 62d9f54f8..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/inspect/xml-inspection.model.ts +++ /dev/null @@ -1,169 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - DocumentInspectionModel, - DocumentInspectionRequestModel, - DocumentInspectionRequestOptions, -} from './document-inspection.model'; -import { EnumValue, Field } from '../field.model'; -import { ErrorInfo, ErrorLevel, ErrorScope, ErrorType } from '../error.model'; -import { FieldType, IField } from '../../contracts/common'; -import { - IXmlComplexType, - IXmlDocument, - IXmlDocumentContainer, - IXmlField, - IXmlInspectionResponse, - IXmlInspectionResponseContainer, - XML_INSPECTION_REQUEST_JSON_TYPE, -} from '../../contracts/documents/xml'; -import { NamespaceModel } from '../document-definition.model'; - -export class XmlInspectionModel extends DocumentInspectionModel { - request = new XmlInspectionRequestModel(this.cfg, this.doc); - - isOnlineInspectionCapable(): boolean { - if (this.cfg.initCfg.baseXMLInspectionServiceUrl == null) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `XML inspection service is not configured. Document will not be loaded: ${this.doc.name}`, - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: this.doc, - }) - ); - return false; - } - return true; - } - - parseResponse(responseJson: any): void { - if (typeof responseJson.XmlInspectionResponse !== 'undefined') { - this.extractXMLDocumentDefinitionFromInspectionResponse( - (responseJson as IXmlInspectionResponseContainer).XmlInspectionResponse - ); - } else if (typeof responseJson.XmlDocument !== 'undefined') { - this.extractXMLDocumentDefinition( - (responseJson as IXmlDocumentContainer).XmlDocument - ); - } else { - throw new Error(`Unknown XML inspection result format: ${responseJson}`); - } - } - - private extractXMLDocumentDefinitionFromInspectionResponse( - body: IXmlInspectionResponse - ): void { - if (body.errorMessage) { - this.doc.errorOccurred = true; - throw new Error( - `Could not load XML document, error: ${body.errorMessage}` - ); - } - - this.extractXMLDocumentDefinition(body.xmlDocument); - } - - private extractXMLDocumentDefinition(xmlDocument: IXmlDocument): void { - if (!this.doc.description) { - this.doc.description = this.doc.id; - } - if (!this.doc.name) { - this.doc.name = this.doc.id; - } - - if (xmlDocument?.xmlNamespaces?.xmlNamespace?.length) { - for (const serviceNS of xmlDocument.xmlNamespaces.xmlNamespace) { - const ns: NamespaceModel = new NamespaceModel(); - ns.alias = serviceNS.alias; - ns.uri = serviceNS.uri; - ns.locationUri = serviceNS.locationUri; - ns.isTarget = serviceNS.targetNamespace; - this.doc.namespaces.push(ns); - } - } - - for (const field of xmlDocument.fields.field) { - if (!this.doc.selectedRoot || this.isSelectedRootElement(field)) { - this.parseXMLFieldFromDocument(field, null); - break; - } - } - } - - private isSelectedRootElement(field: IField): boolean { - if (!this.doc.selectedRoot && !field?.name) { - return false; - } - return ( - this.doc.selectedRoot === - (field.name!.indexOf(':') !== -1 ? field.name!.split(':')[1] : field.name) - ); - } - - private parseXMLFieldFromDocument( - field: IXmlField, - parentField: Field | null - ): void { - const parsedField = this.parseFieldFromDocument(field, parentField); - if (parsedField == null) { - return; - } - - if (field.name!.indexOf(':') !== -1) { - parsedField.namespaceAlias = field.name!.split(':')[0]; - parsedField.name = field.name!.split(':')[1]; - } - - parsedField.isAttribute = parsedField.path.indexOf('@') !== -1; - if (field.fieldType !== FieldType.COMPLEX) { - return; - } - const complex = field as IXmlComplexType; - - parsedField.enumeration = complex.enumeration; - - if (parsedField.enumeration && complex.xmlEnumFields?.xmlEnumField) { - for (const enumValue of complex.xmlEnumFields.xmlEnumField) { - const parsedEnumValue: EnumValue = new EnumValue(); - parsedEnumValue.name = enumValue.name!; - parsedEnumValue.ordinal = enumValue.ordinal; - parsedField.enumValues.push(parsedEnumValue); - } - } - if (complex.xmlFields?.xmlField.length) { - for (const childField of complex.xmlFields.xmlField) { - this.parseXMLFieldFromDocument(childField, parsedField); - } - } - } -} - -export class XmlInspectionRequestModel extends DocumentInspectionRequestModel { - url = this.cfg.initCfg.baseXMLInspectionServiceUrl + 'inspect'; - options = new XmlInspectionRequestOptions(this.cfg, this.doc); -} - -export class XmlInspectionRequestOptions extends DocumentInspectionRequestOptions { - json = { - XmlInspectionRequest: { - jsonType: XML_INSPECTION_REQUEST_JSON_TYPE, - type: this.doc.inspectionType, - xmlData: this.doc.inspectionSource, - }, - }; -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.spec.ts deleted file mode 100644 index 14b5e6160..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { LookupTable, LookupTableEntry } from '../models/lookup-table.model'; -import { FieldType } from '../contracts/common'; - -describe('LookupTable', () => { - test('initialize', () => { - const entry = new LookupTableEntry(); - entry.sourceType = FieldType.STRING; - entry.sourceValue = 'sValue'; - entry.targetType = FieldType.STRING; - entry.targetValue = 'tValue'; - const table = new LookupTable(); - expect(table.name); - table.lookupEntry.push(entry); - expect(table.toString()).toContain('Entry #0: sValue => tValue'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.ts b/packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.ts deleted file mode 100644 index 346761d38..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/lookup-table.model.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { FieldType } from '../contracts'; - -export class LookupTableEntry { - sourceValue: string; - sourceType = FieldType.STRING; - targetValue: string; - targetType = FieldType.STRING; -} - -export class LookupTable { - name: string; - lookupEntry: LookupTableEntry[] = []; - sourceIdentifier: string; - targetIdentifier: string; - - constructor() { - this.name = - new Date().getTime() + - '-' + - Math.floor(Math.random() * 1000000).toString(); - } - - getInputOutputKey(): string { - return this.sourceIdentifier + ':' + this.targetIdentifier; - } - - getEntryForSource( - sourceValue: string, - autocreate: boolean - ): LookupTableEntry | null { - for (const entry of this.lookupEntry) { - if (entry.sourceValue === sourceValue) { - return entry; - } - } - if (autocreate) { - const entry: LookupTableEntry = new LookupTableEntry(); - entry.sourceValue = sourceValue; - this.lookupEntry.push(entry); - return entry; - } - return null; - } - - toString() { - let result: string = - 'Lookup Table, name: ' + - this.name + - ', entries: ' + - this.lookupEntry.length; - result += '\nsourceIdentifier: ' + this.sourceIdentifier; - result += '\n\targetIdentifier: ' + this.targetIdentifier; - let counter = 0; - for (const entry of this.lookupEntry) { - result += - '\n\tEntry #' + - counter + - ': ' + - entry.sourceValue + - ' => ' + - entry.targetValue; - counter += 1; - } - return result; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.spec.ts deleted file mode 100644 index 050b4e314..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.spec.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { MappingDefinition } from '../models/mapping-definition.model'; - -describe('MappingDefinition', () => { - test('initialize', () => { - const mappingDef = new MappingDefinition(); - expect(mappingDef.name).toEqual('UI.0'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.ts b/packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.ts deleted file mode 100644 index 979eea7b3..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/mapping-definition.model.ts +++ /dev/null @@ -1,119 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { CommonUtil } from '../utils/common-util'; -import { DocumentDefinition } from './document-definition.model'; -import { Field } from './field.model'; -import { LookupTable } from './lookup-table.model'; -import { MappingModel } from './mapping.model'; -import { TransitionMode } from './transition.model'; - -export class MappingDefinition { - name: string | null = null; - mappings: MappingModel[] = []; - activeMapping: MappingModel | null = null; - parsedDocs: DocumentDefinition[] = []; - templateText: string | null = null; - - private tables: LookupTable[] = []; - private tablesBySourceTargetKey: { [key: string]: LookupTable } = {}; - private tablesByName: { [key: string]: LookupTable } = {}; - - constructor() { - // Mapping definition ID must be 0 until https://github.com/atlasmap/atlasmap/issues/1577 - // this.name = 'UI.' + Math.floor((Math.random() * 1000000) + 1).toString(); - this.name = 'UI.0'; - } - - templateExists(): boolean { - return this.templateText != null && this.templateText !== ''; - } - - addTable(table: LookupTable): void { - this.tablesBySourceTargetKey[table.getInputOutputKey()] = table; - this.tablesByName[table.name] = table; - this.tables.push(table); - } - - getTableByName(name: string): LookupTable { - return this.tablesByName[name]; - } - - getTableBySourceTarget( - sourceIdentifier: string, - targetIdentifier: string - ): LookupTable { - const key: string = sourceIdentifier + ':' + targetIdentifier; - return this.tablesBySourceTargetKey[key]; - } - - getTables(): LookupTable[] { - const tables: LookupTable[] = []; - for (const key in this.tablesByName) { - if (!this.tablesByName.hasOwnProperty(key)) { - continue; - } - const table: LookupTable = this.tablesByName[key]; - tables.push(table); - } - return tables; - } - - removeTableByName(name: string) { - if (name) { - const table = this.tablesByName[name]; - const iokey = table.getInputOutputKey(); - if (this.tablesByName[name]) { - delete this.tables[this.tables.indexOf(table)]; - delete this.tablesByName[name]; - delete this.tablesBySourceTargetKey[iokey]; - } - } - } - - getAllMappings(includeActiveMapping: boolean): MappingModel[] { - const mappings: MappingModel[] = [...this.mappings]; - if (includeActiveMapping) { - if (this.activeMapping == null) { - return mappings; - } - for (const mapping of mappings) { - if (mapping === this.activeMapping) { - return mappings; - } - } - mappings.push(this.activeMapping); - } - return mappings; - } - - findMappingsForField(field: Field): MappingModel[] { - const mappingsForField: MappingModel[] = []; - for (const m of this.mappings) { - if (m.isFieldMapped(field)) { - mappingsForField.push(m); - } - } - return mappingsForField; - } - - removeMapping(m: MappingModel): boolean { - if (m.transition.mode === TransitionMode.ENUM) { - this.removeTableByName(m.transition.lookupTableName!); - } - return CommonUtil.removeItemFromArray(m, this.mappings); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/mapping.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/mapping.model.spec.ts deleted file mode 100644 index 955f2a532..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/mapping.model.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { MappingModel } from '../models/mapping.model'; - -describe('MappingModel', () => { - test('initialize', () => { - const mapping = new MappingModel(); - expect(mapping.uuid).toContain('mapping.'); - expect(mapping.cfg); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/mapping.model.ts b/packages/ui/src/_bk_atlasmap/core/models/mapping.model.ts deleted file mode 100644 index 4d543376f..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/mapping.model.ts +++ /dev/null @@ -1,490 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FieldType, IField } from '../contracts/common'; - -import { CommonUtil } from '../utils/common-util'; -import { ConfigModel } from './config.model'; -import { Field } from './field.model'; -import { FieldAction } from './field-action.model'; -import { PaddingField } from './document-definition.model'; -import { TransitionModel } from './transition.model'; - -export class MappedField { - /** - * The field properties read from mapping definition. This is a temporary object - * when it's deserialized from mapping definition and once {@link field} is populated - * this should not be used. - * @todo Identify document field at once when it deserializes and remove this temporary - * object. - */ - mappingField: IField; - /** The field object created from document field */ - field: Field | null; - /** The field actions read from mapping and enriched through {@link FieldActionService} */ - actions: FieldAction[] = []; - - static sortMappedFieldsByPath(mappedFields: MappedField[]): MappedField[] { - if (mappedFields == null || mappedFields.length === 0) { - return []; - } - const fieldsByPath: { [key: string]: MappedField } = {}; - const fieldPaths: string[] = []; - for (const mappedField of mappedFields) { - if (mappedField == null || mappedField.field == null) { - continue; - } - const path: string = mappedField.field.path; - fieldsByPath[path] = mappedField; - fieldPaths.push(path); - } - fieldPaths.sort(); - const result: MappedField[] = []; - for (const name of fieldPaths) { - result.push(fieldsByPath[name]); - } - return result; - } - - isPadField(): boolean { - return this.field instanceof PaddingField; - } - - isSource(): boolean { - return this.field ? this.field.isSource() : false; - } - - removeAction(action: FieldAction): void { - CommonUtil.removeItemFromArray(action, this.actions); - } -} - -export class MappingModel { - cfg: ConfigModel; - uuid: string; - - sourceFields: MappedField[] = []; - targetFields: MappedField[] = []; - referenceFields: MappedField[] = []; - transition: TransitionModel = new TransitionModel(); - - constructor() { - this.uuid = 'mapping.' + Math.floor(Math.random() * 1000000 + 1).toString(); - this.cfg = ConfigModel.getConfig(); - } - - getFirstCollectionField(isSource: boolean): Field | null { - for (const f of isSource ? this.sourceFields : this.targetFields) { - if (f.field && f.field.isInCollection()) { - return f.field; - } - } - return null; - } - - isLookupMode(): boolean { - for (const f of this.sourceFields.concat(this.targetFields)) { - if (f.field && f.field.enumeration) { - return true; - } - } - return false; - } - - /** - * Add the specified field to this field mapping. - * - * @param field - field to add to the mapping - * @param first - if true add the field to the beginning of the array, last otherwise. - */ - addField(field: Field, first: boolean): MappedField { - const mappedFields = this.getMappedFields(field.isSource()); - if (mappedFields.length === 1) { - const mappedField: MappedField = mappedFields[0]; - if (!mappedField.field) { - mappedField.field = field; - return mappedField; - } - } - const mappedField: MappedField = new MappedField(); - mappedField.field = field; - if (first) { - mappedFields.unshift(mappedField); - } else { - mappedFields.push(mappedField); - } - return mappedField; - } - - /** - * Remove the specified field from this field mapping. - * - * @param field - */ - removeField(field: Field) { - const mappedFields = this.getMappedFields(field.isSource()); - CommonUtil.removeItemFromArray( - mappedFields.find((mf) => mf.field === field), - mappedFields - ); - } - - /** - * Return the number of user-defined (non-padding) fields in this mapping. - * - * @param field - */ - getUserFieldCount(field: Field): number { - const mappedFields = this.getMappedFields(field.isSource()); - let userFieldCount = 0; - - for (const mappedField of mappedFields) { - if (!mappedField.isPadField()) { - userFieldCount++; - } - } - return userFieldCount; - } - - hasMappedField(isSource: boolean) { - return isSource - ? this.sourceFields.length > 0 - : this.targetFields.length > 0; - } - - isEmpty() { - return this.sourceFields.length === 0 && this.targetFields.length === 0; - } - - isFullyMapped(): boolean { - return this.sourceFields.length > 0 && this.targetFields.length > 0; - } - - addMappedField(mappedField: MappedField, isSource: boolean): void { - this.getMappedFields(isSource).push(mappedField); - } - - removeMappedField(mappedField: MappedField): void { - if (!mappedField || !mappedField.field) { - return; - } - if (mappedField.field.isCollection) { - this.removeReferenceField(mappedField); - } - CommonUtil.removeItemFromArray( - mappedField, - this.getMappedFields(mappedField.field!.isSource()) - ); - this.cfg.mappingService.notifyMappingUpdated(); - } - - getMappedFieldForField(field: Field): MappedField | null { - if (!field || !field.isSource) { - return null; - } - - for (const mappedField of this.getMappedFields(field.isSource())) { - if (mappedField.field === field) { - return mappedField; - } - } - return null; - } - - /** - * Return the MappedField associated with the specified field path and panel. The - * document ID is optional identifier parameters used to distinguish the fields - * with the same path in a different document. The first match will be returned - * if not specified. - * - * @param fieldPath - * @param isSource - * @param identifier - */ - getMappedFieldByPath( - fieldPath: string, - isSource: boolean, - docId?: string - ): MappedField | null { - if (!fieldPath) { - return null; - } - const mappedFields = this.getMappedFields(isSource); - for (let i = 0; i < mappedFields.length; i++) { - if (mappedFields[i].field?.path === fieldPath) { - if (!docId) { - return mappedFields[i]; - } - if (docId && mappedFields[i].field?.docDef.id === docId) { - return mappedFields[i]; - } - } - } - return null; - } - - getMappedFieldForIndex(index: string, isSource: boolean): MappedField | null { - if (!index || index.length === 0) { - return null; - } - const mappedFields = this.getMappedFields(isSource); - if (+index - 1 > mappedFields.length - 1) { - return null; - } - return mappedFields[+index - 1]; - } - - getIndexForMappedField(mappedField: MappedField): number | null { - if (!mappedField || !mappedField.field) { - return null; - } - return ( - this.getMappedFields(mappedField.field.isSource()).indexOf(mappedField) + - 1 - ); - } - - getField(docId: string, fieldPath: string): Field | null { - let docDef = this.cfg.getDocForIdentifier(docId, true); - if (!docDef) { - docDef = this.cfg.getDocForIdentifier(docId, false); - } - let field: Field | null = null; - if (docDef) { - field = Field.getField(fieldPath, docDef.getAllFields()); - } - return field; - } - - /** - * Create a reference field in the reference fields array for this mapping. - * - * @param field - */ - createReferenceField(field: Field): MappedField | null { - let mappedField: MappedField | null = null; - - if (!field) { - return null; - } - if ( - !field.documentField?.status || - field.documentField?.status === 'SUPPORTED' || - field.documentField?.status === 'CACHED' - ) { - mappedField = new MappedField(); - mappedField.field = field; - this.referenceFields.push(mappedField); - } - return mappedField; - } - - /** - * Remove the specified reference field from the reference fields array. - * - * @param field - */ - removeReferenceField(mappedField: MappedField) { - if (!mappedField) { - return; - } - CommonUtil.removeItemFromArray(mappedField, this.referenceFields); - } - - /** - * Return true if a reference field exists in this mapping with the specified - * document ID and field path, false otherwise. - * - * @param docId - * @param fieldPath - */ - referenceFieldExists(docId: string, fieldPath: string): boolean { - if (!docId || !fieldPath) { - return false; - } - const referenceFields = this.getReferenceMappedFields(); - for (let referenceField of referenceFields) { - if ( - referenceField.field && - referenceField.field.docDef.id === docId && - referenceField.field.path === fieldPath - ) { - return true; - } - } - return false; - } - - /** - * A reference field is a complex field which is referenced in a conditional - * expression but does not exist as an explicit part of the mapping. It is - * typically used as a parameter to conditional functions/ constructs. If the - * field already exists return it otherwise create it. - * - * @param docId - * @param fieldPath - */ - getReferenceField(docId: string, fieldPath: string): MappedField | null { - if (!docId || !fieldPath) { - return null; - } - const referenceFields = this.getReferenceMappedFields(); - for (let referenceField of referenceFields) { - if ( - referenceField.field && - referenceField.field.docDef.id === docId && - referenceField.field.path === fieldPath - ) { - return referenceField; - } - } - const field = this.getField(docId, fieldPath); - if (field?.type === FieldType.COMPLEX) { - this.transition.expression.hasComplexField = true; - return this.createReferenceField(field); - } - return null; - } - - /** - * Return an array of user mapped fields for the specified panel in this - * field pair instance. No data-mapper generated padding fields will be - * included. - * - * @param isSource - true source panel, false target panel - */ - getUserMappedFields(isSource: boolean): MappedField[] { - const workingFields = isSource ? this.sourceFields : this.targetFields; - const resultFields: MappedField[] = [new MappedField()]; - - for (const mappedField of workingFields) { - if (!mappedField.isPadField()) { - resultFields.push(mappedField); - } - } - resultFields.shift(); - return resultFields; - } - - getReferenceMappedFields(): MappedField[] { - return this.referenceFields; - } - - getMappedFields(isSource: boolean): MappedField[] { - return isSource ? this.sourceFields : this.targetFields; - } - - getLastMappedField(isSource: boolean): MappedField | null { - const fields: MappedField[] = this.getMappedFields(isSource); - if (fields != null && fields.length > 0) { - return fields[fields.length - 1]; - } - return null; - } - - getFields(isSource: boolean): Field[] { - const fields: Field[] = []; - for (const mappedField of this.getMappedFields(isSource)) { - if (mappedField.field != null) { - fields.push(mappedField.field); - } - } - return fields; - } - - getFieldNames(isSource: boolean): string[] { - const fields: Field[] = this.getFields(isSource); - Field.alphabetizeFields(fields); - const names: string[] = []; - for (const field of fields) { - names.push(field.name); - } - return names; - } - - getFieldPaths(isSource: boolean): string[] { - const fields: Field[] = this.getFields(isSource); - Field.alphabetizeFields(fields); - const paths: string[] = []; - for (const field of fields) { - paths.push(field.path); - } - return paths; - } - - hasFieldActions(): boolean { - for (const mappedField of this.getAllMappedFields()) { - if (mappedField.actions.length > 0) { - return true; - } - } - return false; - } - - getAllFields(): Field[] { - return this.getFields(true).concat(this.getFields(false)); - } - - getAllMappedFields(): MappedField[] { - return this.getMappedFields(true).concat(this.getMappedFields(false)); - } - - isFieldMapped(field: Field): boolean { - return this.getMappedFieldForField(field) != null; - } - - hasTransformation(): boolean { - const mappedFields: MappedField[] = this.getAllMappedFields(); - for (const mappedField of mappedFields) { - if (mappedField.actions.length > 0) { - return true; - } - } - return false; - } - - /** - * Walk all target field mappings and return one of corresponding source field name - * if the specified field is already the target of a previous mapping, null otherwise. - * - * @param field - */ - public getMappedTarget(field: Field): string | null { - // TODO: check this non null operator - const mappings: MappingModel[] = this.cfg.mappings!.mappings; - - if (field.isSource()) { - return null; - } - for (const m of mappings) { - if (m.targetFields.length === 0) { - continue; - } - - for (const mappedOutputField of m.targetFields) { - // TODO: check this non null operator - if ( - mappedOutputField.field?.docDef === field.docDef && - mappedOutputField.field!.path === field.path - ) { - if (m.isFieldMapped(field)) { - return m.sourceFields[0]?.field!.name; - } - } - } - } - return null; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/models/transition.model.spec.ts b/packages/ui/src/_bk_atlasmap/core/models/transition.model.spec.ts deleted file mode 100644 index f126481d9..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/transition.model.spec.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { TransitionMode, TransitionModel } from '../models/transition.model'; - -describe('TransitionModel', () => { - test('initialize', () => { - const transition = new TransitionModel(); - expect(TransitionModel.delimiterModels.length > 0); - expect(transition.mode === TransitionMode.ONE_TO_ONE); - expect(transition.getPrettyName() === 'One to One'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/models/transition.model.ts b/packages/ui/src/_bk_atlasmap/core/models/transition.model.ts deleted file mode 100644 index 75dd595b3..000000000 --- a/packages/ui/src/_bk_atlasmap/core/models/transition.model.ts +++ /dev/null @@ -1,306 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ExpressionModel } from './expression.model'; -import { FieldAction } from './field-action.model'; - -export enum TransitionMode { - ONE_TO_ONE = 'ONE_TO_ONE', - ONE_TO_MANY = 'ONE_TO_MANY', - ENUM = 'ENUM', - MANY_TO_ONE = 'MANY_TO_ONE', - FOR_EACH = 'FOR_EACH', - EXPRESSION = 'EXPRESSION', -} - -export enum TransitionDelimiter { - NONE, - AMPERSAND, - AT_SIGN, - BACKSLASH, - COLON, - COMMA, - DASH, - EQUAL, - HASH, - PERIOD, - PIPE, - SEMICOLON, - SLASH, - SPACE, - UNDERSCORE, - USER_DEFINED, -} - -export class TransitionDelimiterModel { - delimiter: TransitionDelimiter = TransitionDelimiter.SPACE; - serializedValue: string | null = null; - prettyName: string | null = null; - actualDelimiter = ''; - - constructor( - delimiter: TransitionDelimiter, - serializedValue: string | null, - prettyName: string, - actualDelimiter: string - ) { - this.delimiter = delimiter; - this.serializedValue = serializedValue; - this.prettyName = prettyName; - this.actualDelimiter = actualDelimiter; - } -} - -export class TransitionModel { - static delimiterModels: TransitionDelimiterModel[] = []; - - mode: TransitionMode = TransitionMode.ONE_TO_ONE; - delimiter: TransitionDelimiter = TransitionDelimiter.SPACE; - userDelimiter = ''; - lookupTableName: string | null = null; - expression!: ExpressionModel; - enableExpression = false; - transitionFieldAction: FieldAction | null = null; - - constructor() { - TransitionModel.initialize(); - } - - static initialize() { - if (TransitionModel.delimiterModels.length === 0) { - const models: TransitionDelimiterModel[] = []; - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.NONE, - null, - '[None]', - '' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.AMPERSAND, - 'Ampersand', - 'Ampersand [&]', - '&' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.AT_SIGN, - 'AtSign', - 'At Sign [@]', - '@' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.BACKSLASH, - 'Backslash', - 'Backslash [\\]', - '\\' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.COLON, - 'Colon', - 'Colon [:]', - ':' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.COMMA, - 'Comma', - 'Comma [,]', - ',' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.DASH, - 'Dash', - 'Dash [-]', - '-' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.EQUAL, - 'Equal', - 'Equal [=]', - '=' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.HASH, - 'Hash', - 'Hash [#]', - '#' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.PERIOD, - 'Period', - 'Period [.]', - '.' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.PIPE, - 'Pipe', - 'Pipe [|]', - '|' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.SEMICOLON, - 'Semicolon', - 'Semicolon [;]', - ';' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.SLASH, - 'Slash', - 'Slash [/]', - '/' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.SPACE, - 'Space', - 'Space [ ]', - ' ' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.UNDERSCORE, - 'Underscore', - 'Underscore [_]', - '_' - ) - ); - models.push( - new TransitionDelimiterModel( - TransitionDelimiter.USER_DEFINED, - 'User defined', - 'User defined', - '\0' - ) - ); - TransitionModel.delimiterModels = models; - } - } - - static delimiterToModel(delimiter: string): TransitionDelimiterModel { - return TransitionModel.delimiterModels.filter( - (model) => model.actualDelimiter === delimiter - )[0]; - } - - /** - * Translate a mapping mode number into a string. - * @param mode - */ - static getMappingModeName(mode: TransitionMode): string { - let actionName: string; - - switch (mode) { - case TransitionMode.ONE_TO_ONE: { - actionName = 'One to One'; - break; - } - case TransitionMode.MANY_TO_ONE: { - actionName = 'Many to One'; - break; - } - case TransitionMode.ONE_TO_MANY: { - actionName = 'One to Many'; - break; - } - case TransitionMode.ENUM: { - actionName = 'ENUM'; - break; - } - case TransitionMode.FOR_EACH: { - actionName = 'For Each'; - break; - } - case TransitionMode.EXPRESSION: { - actionName = 'Expression'; - break; - } - default: { - actionName = ''; - break; - } - } - return actionName; - } - - getPrettyName() { - let transitionFieldActionName = ''; - if (this.transitionFieldAction) { - transitionFieldActionName = ' (' + this.transitionFieldAction.name + ')'; - } - if ( - this.mode === TransitionMode.ONE_TO_MANY || - this.mode === TransitionMode.MANY_TO_ONE - ) { - return ( - TransitionModel.getMappingModeName(this.mode) + - transitionFieldActionName - ); - } else if (this.mode === TransitionMode.ENUM) { - return 'Enum (table: ' + this.lookupTableName + ')'; - } else if (this.mode === TransitionMode.EXPRESSION) { - return 'Expression (' + this.expression?.toText() + ')'; - } - return TransitionModel.getMappingModeName(this.mode); - } - - isOneToManyMode(): boolean { - return this.mode === TransitionMode.ONE_TO_MANY; - } - - isOneToOneMode(): boolean { - return this.mode === TransitionMode.ONE_TO_ONE; - } - - isManyToOneMode(): boolean { - return this.mode === TransitionMode.MANY_TO_ONE; - } - - isForEachMode(): boolean { - return this.mode === TransitionMode.FOR_EACH; - } - - isEnumerationMode(): boolean { - return this.mode === TransitionMode.ENUM; - } - - isExpressionMode(): boolean { - return this.mode === TransitionMode.EXPRESSION; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/document-management.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/document-management.service.spec.ts deleted file mode 100644 index 610dfc781..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/document-management.service.spec.ts +++ /dev/null @@ -1,407 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ConfigModel, - DocumentInitializationModel, -} from '../models/config.model'; -import { DocumentType, FieldType, InspectionType } from '../contracts/common'; - -import { DocumentDefinition } from '../models/document-definition.model'; -import { DocumentManagementService } from '../services/document-management.service'; -import { Field } from '../models/field.model'; -import { InitializationService } from './initialization.service'; -import type { Input } from 'ky/distribution/types/options'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { TestUtils } from '../../test/test-util'; -import atlasmapInspectionComplexObjectRootedJson from '../../../../test-resources/inspected/atlasmap-inspection-complex-object-rooted.json'; -import atlasmapInspectionPoExampleSchemaJson from '../../../../test-resources/inspected/atlasmap-inspection-po-example-schema.json'; -import atlasmapInspectionTargetTestClassJson from '../../../../test-resources/inspected/atlasmap-inspection-io.atlasmap.java.test.TargetTestClass.json'; -import atlasmapInspectionTwitter4jStatusJson from '../../../../test-resources/inspected/atlasmap-inspection-twitter4j.Status.json'; -import fs from 'fs'; -import ky from 'ky'; - -describe('DocumentManagementService', () => { - let cfg: ConfigModel; - let service: DocumentManagementService; - - beforeEach(() => { - const initService = new InitializationService(ky); - cfg = initService.cfg; - service = cfg.documentService; - }); - - test('initialize()/uninitialize()', () => { - TestUtils.createMockMappings(cfg); - const spyUfm = spyOn( - DocumentDefinition.prototype, - 'updateFromMappings' - ).and.stub(); - cfg.sourceDocs[0].initialized = true; - service.uninitialize(); - const count = spyUfm.calls.count(); - cfg.mappingService.mappingUpdatedSource.next(); - expect(spyUfm.calls.count()).toBe(count); - service.initialize(); - cfg.mappingService.mappingUpdatedSource.next(); - expect(spyUfm.calls.count()).toBe(count + 1); - service.uninitialize(); - cfg.mappingService.mappingUpdatedSource.next(); - expect(spyUfm.calls.count()).toBe(count + 1); - }); - - test('inspectDocuments() parse Java inspection', (done) => { - const docDef = new DocumentInitializationModel(); - docDef.type = DocumentType.JAVA; - docDef.inspectionResult = JSON.stringify( - atlasmapInspectionTwitter4jStatusJson - ); - cfg.addDocument(docDef); - service.inspectDocuments().subscribe({ - next: (answer: DocumentDefinition) => { - expect(answer.fields.length).toBe(29); - const text = answer.getField('/text'); - expect(text).toBeTruthy(); - expect(text?.name).toBe('text'); - expect(text?.type).toBe('STRING'); - expect(text?.children.length).toBe(0); - const user = answer.getField('/user'); - expect(user).toBeTruthy(); - expect(user?.name).toBe('user'); - expect(user?.type).toBe('COMPLEX'); - expect(user?.classIdentifier).toBe('twitter4j.User'); - expect(user?.children.length).toBe(57); - const screenName = user?.children?.filter( - (child: Field) => child?.name === 'screenName' - ); - if (!screenName) { - fail('no screenName'); - } - expect(screenName?.length).toBe(1); - expect(screenName[0]?.name).toBe('screenName'); - expect(screenName[0]?.path).toBe('/user/screenName'); - expect(screenName[0]?.type).toBe('STRING'); - expect(screenName[0]?.children.length).toBe(0); - const url = answer.getField('/place/name'); - expect(url?.name).toBe('name'); - expect(url?.path).toBe('/place/name'); - expect(url?.type).toBe('STRING'); - const urlParent = url?.parentField; - expect(urlParent?.name).toBe('place'); - expect(screenName[0]?.children.length).toBe(0); - done(); - }, - error: (error) => { - fail(error); - }, - }); - }); - - test('inspectDocuments() parse Java inspection TargetTestClass', (done) => { - const docDef = new DocumentInitializationModel(); - docDef.type = DocumentType.JAVA; - docDef.inspectionResult = JSON.stringify( - atlasmapInspectionTargetTestClassJson - ); - cfg.addDocument(docDef); - service.inspectDocuments().subscribe({ - next: (answer: DocumentDefinition) => { - const contact = answer.getField('/contact'); - expect(contact).toBeTruthy(); - expect(contact?.type).toBe('COMPLEX'); - expect(contact?.name).toBe('contact'); - expect(contact?.path).toBe('/contact'); - expect(contact?.isCollection).toBeFalsy(); - const contactFirstName = answer.getField('/contact/firstName'); - expect(contactFirstName).toBeTruthy(); - expect(contactFirstName?.type).toBe('STRING'); - expect(contactFirstName?.name).toBe('firstName'); - expect(contactFirstName?.path).toBe('/contact/firstName'); - const list = answer.getField('/contactList<>'); - expect(list).toBeTruthy(); - expect(list?.type).toBe('COMPLEX'); - expect(list?.name).toBe('contactList'); - expect(list?.path).toBe('/contactList<>'); - expect(list?.isCollection).toBeTruthy(); - const listFirstName = answer.getField('/contactList<>/firstName'); - expect(listFirstName).toBeTruthy(); - expect(listFirstName?.type).toBe('STRING'); - expect(listFirstName?.name).toBe('firstName'); - expect(listFirstName?.path).toBe('/contactList<>/firstName'); - const array = answer.getField('/contactArray[]'); - expect(array).toBeTruthy(); - expect(array?.type).toBe('COMPLEX'); - expect(array?.name).toBe('contactArray'); - expect(array?.path).toBe('/contactArray[]'); - expect(array?.isCollection).toBeTruthy(); - const arrayFirstName = answer.getField('/contactArray[]/firstName'); - expect(arrayFirstName).toBeTruthy(); - expect(arrayFirstName?.type).toBe('STRING'); - expect(arrayFirstName?.name).toBe('firstName'); - expect(arrayFirstName?.path).toBe('/contactArray[]/firstName'); - done(); - }, - error: (error) => { - fail(error); - }, - }); - }); - - test('inspectDocuments() parse JSON inspection', (done) => { - const docDef = new DocumentInitializationModel(); - docDef.type = DocumentType.JSON; - docDef.inspectionType = InspectionType.SCHEMA; - docDef.inspectionResult = JSON.stringify( - atlasmapInspectionComplexObjectRootedJson - ); - cfg.addDocument(docDef); - service.inspectDocuments().subscribe({ - next: (answer: DocumentDefinition) => { - expect(answer.fields.length).toBe(1); - expect(answer.fields[0].name).toBe('order'); - const order = answer.getField('/order'); - expect(order?.name).toBe('order'); - expect(order?.type).toBe('COMPLEX'); - expect(order?.children).toBeTruthy(); - expect(order?.children?.length).toBe(3); - done(); - }, - error: (error) => { - fail(error); - }, - }); - }); - - test('inspectDocuments() parse XML inspection', (done) => { - const docDef = new DocumentInitializationModel(); - docDef.type = DocumentType.XML; - docDef.inspectionType = InspectionType.SCHEMA; - docDef.inspectionResult = JSON.stringify( - atlasmapInspectionPoExampleSchemaJson - ); - cfg.addDocument(docDef); - service.inspectDocuments().subscribe((answer: DocumentDefinition) => { - expect(answer.fields.length).toBe(1); - expect(answer.fields[0].name).toBe('purchaseOrder'); - const purchaseOrder = answer.getField('/tns:purchaseOrder'); - expect(purchaseOrder?.name).toBe('purchaseOrder'); - expect(purchaseOrder?.type).toBe('COMPLEX'); - expect(purchaseOrder?.children).toBeTruthy(); - expect(purchaseOrder?.children?.length).toBe(5); - done(); - }); - }); - - test('inspectDocuments() pick up one XML root element', (done) => { - const docDef = new DocumentInitializationModel(); - docDef.type = DocumentType.XML; - docDef.name = 'purchaseOrder'; - docDef.inspectionType = InspectionType.SCHEMA; - docDef.inspectionResult = JSON.stringify( - atlasmapInspectionPoExampleSchemaJson - ); - docDef.selectedRoot = 'purchaseOrder'; - cfg.addDocument(docDef); - const docDef2 = new DocumentInitializationModel(); - docDef2.type = DocumentType.XML; - docDef2.name = 'comment'; - docDef2.inspectionType = InspectionType.SCHEMA; - docDef2.inspectionResult = docDef.inspectionResult; - docDef2.selectedRoot = 'comment'; - cfg.addDocument(docDef2); - let count = 0; - service.inspectDocuments().subscribe((answer) => { - if (answer.name === 'purchaseOrder') { - expect(answer.fields.length).toBe(1); - expect(answer.fields[0].name).toBe('purchaseOrder'); - count++; - } else if (answer.name === 'comment') { - expect(answer.fields.length).toBe(1); - expect(answer.fields[0].name).toBe('comment'); - count++; - } - if (count === 2) { - done(); - } - }); - }); - - test('getLibraryClassNames()', (done) => { - cfg.initCfg.baseMappingServiceUrl = 'dummyurl'; - spyOn(ky, 'get').and.callFake((_url: Input) => { - return new (class { - json(): Promise { - return Promise.resolve({ - ArrayList: ['dummy.class.0', 'dummy.class.1'], - }); - } - })(); - }); - service - .getLibraryClassNames() - .then((values) => { - expect(values[0]).toBe('dummy.class.0'); - expect(values[1]).toBe('dummy.class.1'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('importNonJavaDocument()', (done) => { - cfg.initCfg.baseJSONInspectionServiceUrl = 'json'; - spyOn(ky, 'post').and.callFake((_url: Input) => { - return new (class { - json(): Promise { - return Promise.resolve({ - JsonInspectionResponse: { - jsonDocument: { - fields: { - field: [ - { - name: 'dummyField', - path: 'dummyField', - }, - ], - }, - }, - }, - }); - } - })(); - }); - const buf = fs.readFileSync( - `${__dirname}/../../../../test-resources/json/schema/mock-json-schema.json` - ); - const file = new File([new Blob([buf])], 'mock-json-schema.json'); - expect(cfg.sourceDocs.length).toBe(0); - service - .importNonJavaDocument(file, true, true, {}) - .then((value) => { - expect(value).toBeTruthy(); - expect(cfg.sourceDocs.length).toBe(1); - expect(cfg.sourceDocs[0].type).toBe(DocumentType.JSON); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('importJavaDocument()', (done) => { - cfg.initCfg.baseJavaInspectionServiceUrl = 'java'; - spyOn(ky, 'post').and.callFake((_url: Input) => { - return new (class { - json(): Promise { - return Promise.resolve({ - ClassInspectionResponse: { - javaClass: { - javaFields: { - javaField: [ - { - name: 'dummyField', - path: 'dummyField', - }, - ], - }, - }, - }, - }); - } - })(); - }); - expect(cfg.sourceDocs.length).toBe(0); - service - .importJavaDocument('io.atlasmap.test.TestDocumentClass', true) - .then((value) => { - expect(value).toBeTruthy(); - expect(cfg.sourceDocs.length).toBe(1); - expect(cfg.sourceDocs[0].type).toBe(DocumentType.JAVA); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('Constant field', () => { - cfg.mappings = new MappingDefinition(); - expect(cfg.constantDoc.fields.length).toBe(0); - service.createConstant('testConst', 'testConstVal', 'STRING', false); - expect(cfg.constantDoc.fields.length).toBe(1); - const f = cfg.constantDoc.getField('/testConst'); - expect(f).toBeTruthy(); - expect(f!.name).toBe('testConst'); - expect(f!.path).toBe('/testConst'); - expect(f!.type).toBe(FieldType.STRING); - expect(f!.value).toBe('testConstVal'); - expect(service.getConstantType('testConst')).toBe(FieldType.STRING); - expect(service.getConstantTypeIndex('testConst')).toBe(0); - service.editConstant( - 'testConstMod', - 'testConstValMod', - 'STRING', - 'testConst' - ); - expect(cfg.constantDoc.fields.length).toBe(1); - const fm = cfg.constantDoc.getField('/testConstMod'); - expect(fm).toBeTruthy(); - expect(fm!.name).toBe('testConstMod'); - expect(fm!.path).toBe('/testConstMod'); - expect(fm!.type).toBe(FieldType.STRING); - expect(fm!.value).toBe('testConstValMod'); - service.deleteConstant('testConstMod'); - expect(cfg.constantDoc.fields.length).toBe(0); - }); - - test('Property field', () => { - cfg.mappings = new MappingDefinition(); - expect(cfg.sourcePropertyDoc.fields.length).toBe(0); - expect(cfg.targetPropertyDoc.fields.length).toBe(0); - service.createProperty('testProp', 'STRING', 'current', true, false); - expect(cfg.sourcePropertyDoc.fields.length).toBe(1); - expect(cfg.targetPropertyDoc.fields.length).toBe(0); - const f = cfg.sourcePropertyDoc.getField('/current/testProp'); - expect(f).toBeTruthy(); - expect(f!.name).toBe('testProp'); - expect(f!.scope).toBe('current'); - expect(f!.path).toBe('/current/testProp'); - expect(f!.type).toBe(FieldType.STRING); - expect(service.getPropertyType('testProp', 'current', true)).toBe( - FieldType.STRING - ); - expect(service.getPropertyTypeIndex('testProp', 'current', true)).toBe(0); - service.editProperty( - 'testProp', - 'STRING', - 'current', - true, - 'testPropMod', - 'currentMod' - ); - expect(cfg.sourcePropertyDoc.fields.length).toBe(1); - expect(cfg.targetPropertyDoc.fields.length).toBe(0); - const fm = cfg.sourcePropertyDoc.getField('/currentMod/testPropMod'); - expect(fm).toBeTruthy(); - expect(fm!.name).toBe('testPropMod'); - expect(fm!.scope).toBe('currentMod'); - expect(fm!.path).toBe('/currentMod/testPropMod'); - expect(fm!.type).toBe(FieldType.STRING); - service.deleteProperty('testPropMod', 'currentMod', true); - expect(cfg.sourcePropertyDoc.fields.length).toBe(0); - expect(cfg.targetPropertyDoc.fields.length).toBe(0); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/document-management.service.ts b/packages/ui/src/_bk_atlasmap/core/services/document-management.service.ts deleted file mode 100644 index 14b957ccc..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/document-management.service.ts +++ /dev/null @@ -1,836 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - CollectionType, - DocumentType, - FIELD_PATH_SEPARATOR, - FieldType, - InspectionType, -} from '../contracts/common'; -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { - constantTypes, - propertyTypes, -} from '../common/config.types'; -import { Observable, Subscription } from 'rxjs'; - -import { CommonUtil } from '../utils/common-util'; -import { ConfigModel } from '../models/config.model'; -import { DocumentDefinition } from '../models/document-definition.model'; -import { DocumentInspectionModel } from '../models/inspect/document-inspection.model'; -import { DocumentInspectionUtil } from '../utils/document-inspection-util'; -import { Field } from '../models/field.model'; -import { Guid } from '../utils'; - -/** - * Manages Document object lifecycle. Import a Document source - * such as JSON/XML schema/instance, request an inspection to the backend, - * then enable it for mapping by consuming inspection result in UI. - */ -export class DocumentManagementService { - cfg!: ConfigModel; - - private mappingUpdatedSubscription!: Subscription; - private MAX_SEARCH_MATCH = 10000; - - initialize(): void { - this.mappingUpdatedSubscription = - this.cfg.mappingService.mappingUpdated$.subscribe(() => { - for (const d of this.cfg.getAllDocs()) { - if (d.initialized) { - d.updateFromMappings(this.cfg.mappings!); // TODO: check this non null operator - } - } - }); - } - - uninitialize(): void { - this.mappingUpdatedSubscription.unsubscribe(); - } - - /** - * Request Document inspection for each {@link DocumentDefinition} object - * stored in {@link ConfigModel} and populate it back with the inspection result. - * - * @returns - */ - inspectDocuments(): Observable { - return new Observable((observer) => { - for (const docDef of this.cfg.getAllDocs()) { - if ( - docDef === this.cfg.sourcePropertyDoc || - docDef === this.cfg.targetPropertyDoc || - docDef === this.cfg.constantDoc - ) { - docDef.initialized = true; - continue; - } - - const inspectionModel = DocumentInspectionUtil.fromDocumentDefinition( - this.cfg, - docDef - ); - - // TODO: check this non null operator - this.inspectDocument(inspectionModel) - .then(() => { - observer.next(docDef); - }) - .catch((error: any) => { - observer.error(error); - }); - } - }); - } - - private inspectDocument( - inspectionModel: DocumentInspectionModel - ): Promise { - return new Promise((resolve, reject) => { - const docDef = inspectionModel.doc; - if (docDef.inspectionResult) { - const responseJson: any = JSON.parse(docDef.inspectionResult); - inspectionModel.parseResponse(responseJson); - docDef.initializeFromFields(); - docDef.initialized = true; - resolve(docDef); - return; - } - - if (!inspectionModel.isOnlineInspectionCapable()) { - docDef.initialized = true; - docDef.errorOccurred = true; - reject(docDef); - return; - } - - const request = inspectionModel.request; - this.cfg.logger!.debug( - `Document Inspection Request: ${JSON.stringify(request.options.json)}` - ); - /* - this.api - .post(request.url, request.options) - .json() - .then((responseJson: any) => { - this.cfg.logger!.debug( - `Document Inspection Response: ${JSON.stringify(responseJson)}` - ); - inspectionModel.parseResponse(responseJson); - docDef.initializeFromFields(); - docDef.initialized = true; - resolve(docDef); - }) - .catch((error: any) => { - this.cfg.errorService.addBackendError( - `Failed to inspect Document: ${docDef.name}(${docDef.id})`, - error - ); - docDef.errorOccurred = true; - reject(error); - }); - - */ - }); - } - - getLibraryClassNames(): Promise { - return new Promise((resolve, _reject) => { - if (typeof this.cfg.initCfg.baseMappingServiceUrl === 'undefined') { - resolve([]); - return; - } - const url: string = - this.cfg.initCfg.baseMappingServiceUrl + 'library/list'; - this.cfg.logger!.debug('Library Class List Service Request: ' + url); - /* - this.api - .get(url) - .json() - .then((body: any) => { - this.cfg.logger!.debug( - `Library Class List Service Response: ${JSON.stringify(body)}` - ); - const classNames: string[] = body.ArrayList; - resolve(classNames); - }) - .catch((error: any) => { - if (error.status !== HTTP_STATUS_NO_CONTENT) { - this.cfg.errorService.addBackendError( - 'Error occurred while accessing the user uploaded JARs from the runtime service.', - error - ); - reject(error); - } else { - resolve([]); - } - }); - - */ - }); - } - - /** - * Import user uploaded Document source such as JSON/XML schema/instance, assign - * a unique Document ID with using GUID and delegate to {@link addNonJavaDocument} - * to make it available as a Document for mappings. - * @see addNonJavaDocument - * - * @param selectedFile - user selected file - * @param isSource - true is source panel, false is target - * @param isSchema- user specified instance/ schema (true === schema) - * @param inspectionParameters - CSV parameters - * - */ - importNonJavaDocument( - selectedFile: File, - isSource: boolean, - isSchema: boolean, - inspectionParameters?: { [key: string]: string } - ): Promise { - return new Promise(async (resolve) => { - let fileText = ''; - const reader = new FileReader(); - - this.cfg.errorService.clearValidationErrors(); - - const userFileComps = selectedFile.name.split('.'); - const userFile = userFileComps.slice(0, -1).join('.'); - const userFileSuffix: string = - userFileComps[userFileComps.length - 1].toUpperCase(); - - // Wait for the async read of the selected ascii document to be completed. - try { - fileText = await CommonUtil.readFile(selectedFile, reader); - } catch (error) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: 'Unable to import the specified schema document.', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.USER, - object: error, - }) - ); - resolve(false); - return; - } - - let docType = undefined; - try { - docType = userFileSuffix as DocumentType; - if (!docType) { - throw new Error(docType); - } - } catch (error) { - this.handleError( - 'Unrecognized document suffix (' + userFileSuffix + ')' - ); - resolve(false); - return; - } - this.addNonJavaDocument( - fileText, - userFile + '-' + Guid.newGuid(), - userFile, - docType, - isSchema ? InspectionType.SCHEMA : InspectionType.INSTANCE, - isSource, - inspectionParameters - ).then((value) => { - if (!value) { - resolve(false); - return; - } - this.cfg.errorService.addError( - new ErrorInfo({ - message: `${selectedFile.name} ${userFileSuffix} import complete.`, - level: ErrorLevel.INFO, - scope: ErrorScope.APPLICATION, - type: ErrorType.USER, - }) - ); - resolve(true); - }); - }); - } - - /** - * Import a Java class as a Document source and delegate to {@link addJavaDocument} - * to make it available as a Document for mappings. - * JAR file(s) have to be imported and be available in the backend classpath - * before doing this. - * @see addJavaDocument - * @todo https://github.com/atlasmap/atlasmap/issues/2919 - * A unique Document ID should be assigned with using GUID. - * - * @param className - * @param isSource - * @param collectionType - * @param collectionClassName - */ - importJavaDocument( - className: string, - isSource: boolean, - collectionType = CollectionType.NONE, - collectionClassName?: string - ): Promise { - this.cfg.errorService.clearValidationErrors(); - return this.addJavaDocument( - className, - isSource, - collectionType, - collectionClassName - ); - } - /** - * Add non-Java Document object into the {@link ConfigModel} store and - * delegate to {@link doAddDocument}. - * @see doAddDocument - * - * @param docBody - * @param docId - * @param docName - * @param docType - * @param inspectionType - * @param isSource - * @param parameters - */ - addNonJavaDocument( - docBody: any, - docId: string, - docName: string, - docType: DocumentType, - inspectionType: InspectionType, - isSource: boolean, - parameters?: { [key: string]: string } - ): Promise { - const inspectionModel = DocumentInspectionUtil.fromNonJavaProperties( - this.cfg, - docId, - docName, - docType, - inspectionType, - docBody, - isSource, - parameters - ); - return this.doAddDocument(inspectionModel); - } - - /** - * Add Java Document object into the {@link ConfigModel} store and - * delegate to {@link doAddDocument}. - * @see doAddDocument - * - * @param className - * @param isSource - * @param collectionType {@link CollectionType} - * @param collectionClassName - */ - addJavaDocument( - className: string, - isSource: boolean, - collectionType: CollectionType = CollectionType.NONE, - collectionClassName?: string - ): Promise { - const inspectionModel = DocumentInspectionUtil.fromJavaProperties( - this.cfg, - className, - isSource, - collectionType, - collectionClassName - ); - return this.doAddDocument(inspectionModel); - } - - /** - * An utility method to look at the {@link DocumentType} passed in as an argument - * and see if it's a Java or non-Java Document, then delegate to - * {@link addJavaDocument} or {@link addNonJavaDocument}. - * - * @todo https://github.com/atlasmap/atlasmap/issues/2918 - * {@link CollectionType} and collectionClassName has to be persisted into digest - * so it could be restored here - */ - addDocument( - docBody: any, - docId: string, - docName: string, - docType: DocumentType, - inspectionType: InspectionType, - isSource: boolean, - parameters?: { [key: string]: string } - ): Promise { - if (docType === DocumentType.JAVA) { - return this.addJavaDocument(docId, isSource); - } - return this.addNonJavaDocument( - docBody, - docId, - docName, - docType, - inspectionType, - isSource, - parameters - ); - } - - /** - * Add or replace the {@link DocumentDefinition} object stored in {@link ConfigModel} - * and delegate to {@link inspectDocument} to perform an inspection. - * Then it gets available for mapping in the canvas. - * - * @param inspectionModel {@link DocumentInspectionModel} - * @returns - */ - private doAddDocument( - inspectionModel: DocumentInspectionModel - ): Promise { - return new Promise(async (resolve) => { - let docdef = inspectionModel.doc; - const isSource = docdef.isSource; - - this.inspectDocument(inspectionModel) - .then(async (doc: DocumentDefinition) => { - if (doc.fields.length === 0) { - if (isSource) { - CommonUtil.removeItemFromArray(docdef, this.cfg.sourceDocs); - } else { - CommonUtil.removeItemFromArray(docdef, this.cfg.targetDocs); - } - } - docdef.updateFromMappings(this.cfg.mappings!); - resolve(true); - }) - .catch((error) => { - this.cfg.logger?.error( - `Failed to inspect Document ${docdef.name}(${docdef.id})`, - error - ); - docdef.errorOccurred = true; - resolve(false); - }); - }); - } - - private handleError(message: string, error?: any): void { - this.cfg.errorService.addError( - new ErrorInfo({ - message: message, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: error, - }) - ); - } - - /** - * Filter Document fields that is shwon in a Source/Target Document tree. - * @todo Consolidate with expression field search and Document Details field - * search - https://github.com/atlasmap/atlasmap/issues/603 - * @param searchFilter - * @param isSource - */ - filterDocumentFields(searchFilter: string | undefined, isSource: boolean) { - const cfg = ConfigModel.getConfig(); - - let searchResultsExist = false; - const searchIsEmpty: boolean = - undefined === searchFilter || '' === searchFilter; - const defaultVisibility: boolean = searchIsEmpty; - for (const docDef of cfg.getDocs(isSource)) { - docDef.visibleInCurrentDocumentSearch = defaultVisibility; - for (const field of docDef.getAllFields()) { - field.visibleInCurrentDocumentSearch = defaultVisibility; - } - if (!searchIsEmpty) { - let searchFieldCount = 0; - for (const field of docDef.getAllFields()) { - // Skip this field if it's already determined to be visible. - if (field.visibleInCurrentDocumentSearch && !field.collapsed) { - continue; - } - field.visibleInCurrentDocumentSearch = field.name - .toLowerCase() - .includes(searchFilter!.toLowerCase()); - searchResultsExist = - searchResultsExist || field.visibleInCurrentDocumentSearch; - - // The current field matches the user-specified filter. - if (field.visibleInCurrentDocumentSearch) { - docDef.visibleInCurrentDocumentSearch = true; - let parentField = field.parentField; - - // Direct lineage is then visible. - while ( - parentField != null && - !parentField.visibleInCurrentDocumentSearch - ) { - parentField.visibleInCurrentDocumentSearch = true; - parentField.collapsed = false; - parentField = parentField.parentField; - searchFieldCount++; - } - - // All fields below the matching field are also visible. - try { - this.markChildrenVisible(field); - } catch (error: any) { - cfg.errorService.addError( - new ErrorInfo({ - message: error.message, - level: ErrorLevel.INFO, - scope: ErrorScope.APPLICATION, - type: ErrorType.USER, - }) - ); - break; - } - - // The total number of matches is limited to allow the UI to perform. - if (searchFieldCount++ >= this.MAX_SEARCH_MATCH) { - cfg.errorService.addError( - new ErrorInfo({ - message: - 'The maximum number of fields matching the specified search filter has beeen exceeded ' + - 'Try using a longer field filter.', - level: ErrorLevel.INFO, - scope: ErrorScope.APPLICATION, - type: ErrorType.USER, - }) - ); - break; - } - } - } - } - } - cfg.mappingService.notifyLineRefresh(); - } - - private markChildrenVisible(field: Field): void { - field.visibleInCurrentDocumentSearch = true; - field.collapsed = false; - // if (this.searchFieldCount++ >= this.maxSearchMatch) { - // throw new Error('The maximum number of fields matching the specified search filter has beeen exceeded ' + - // 'Try using a longer field filter.'); - // } - for (const childField of field.children) { - this.markChildrenVisible(childField); - } - } - - /** - * Create a constant field. - * @param constName - * @param constValue - * @param constType - * @param addToActiveMapping - */ - createConstant( - constName: string, - constValue: string, - constType: string, - addToActiveMapping?: boolean - ): void { - let field = this.cfg.constantDoc.getField(FIELD_PATH_SEPARATOR + constName); - if (!field) { - field = new Field(); - } - field.name = constName; - field.path = FIELD_PATH_SEPARATOR + constName; - field.value = constValue; - field.type = FieldType[constType as keyof typeof FieldType]; - field.docDef = this.cfg.constantDoc; - field.userCreated = true; - this.cfg.constantDoc.addField(field); - if (addToActiveMapping) { - this.cfg.mappingService.addFieldToActiveMapping(field); - } - this.cfg.mappingService.notifyMappingUpdated(); - } - - /** - * Delete a constant field. - * @param constName - */ - deleteConstant(constName: string): void { - const field = this.cfg.constantDoc.getField( - FIELD_PATH_SEPARATOR + constName - ); - if (!field) { - return; - } - this.cfg.mappingService.removeFieldFromAllMappings(field); - this.cfg.constantDoc.removeField(field); - const activeMapping = this.cfg.mappings?.activeMapping; - const expression = activeMapping?.transition?.expression; - if (activeMapping && expression) { - expression.updateFieldReference(activeMapping); - } - this.cfg.mappingService.notifyMappingUpdated(); - } - - /** - * Edit a constant field. Look for an existing constant field with the specified name - * and update the properties. If {@link origName} is specified and different from - * {@link constName}, the name of the constant field will be changed. - * @param constName - * @param constValue - * @param constType - * @param origName - */ - editConstant( - constName: string, - constValue: string, - constType: string, - origName?: string - ): void { - let constFieldName = origName ? origName : constName; - let field = this.cfg.constantDoc.getField( - FIELD_PATH_SEPARATOR + constFieldName - ); - if (!field) { - return; - } - if (constType.length > 0) { - field.type = FieldType[constType as keyof typeof FieldType]; - } - if (constValue.length > 0) { - field.value = constValue; - } - if (origName && origName !== constName) { - field.name = constName; - field.path = FIELD_PATH_SEPARATOR + constName; - this.cfg.constantDoc.updateField(field, FIELD_PATH_SEPARATOR + constName); - } - this.cfg.mappingService.notifyMappingUpdated(); - } - - /** - * Get a {@link FieldType} of the constant field. - * @param constName - */ - getConstantType(constName: string): FieldType { - const cfg = ConfigModel.getConfig(); - const field = cfg.constantDoc.getField(FIELD_PATH_SEPARATOR + constName); - if (!field) { - return FieldType.NONE; - } - return field.type; - } - - /** - * Get an index of the constant field type. - * @param constName - */ - getConstantTypeIndex(constName: string): number { - const cfg = ConfigModel.getConfig(); - const field = cfg.constantDoc.getField(FIELD_PATH_SEPARATOR + constName); - if (!field) { - return 0; - } - for (let i = 0; i < constantTypes.length; i++) { - if (constantTypes[i].includes(field.type)) { - return i; - } - } - return 0; - } - - /** - * Create a property field. - * @param propName - * @param propType - * @param propScope - * @param isSource - * @param addToActiveMapping - */ - createProperty( - propName: string, - propType: string, - propScope: string, - isSource: boolean, - addToActiveMapping?: boolean - ): void { - const cfg = ConfigModel.getConfig(); - const path = this.getPropertyPath(propScope, propName); - let field = isSource - ? cfg.sourcePropertyDoc.getField(path) - : cfg.targetPropertyDoc.getField(path); - if (!field) { - field = new Field(); - } - field.name = propName; - field.type = FieldType[propType as keyof typeof FieldType]; - field.scope = propScope; - field.path = path; - field.userCreated = true; - - if (isSource) { - field.docDef = cfg.sourcePropertyDoc; - cfg.sourcePropertyDoc.addField(field); - } else { - field.docDef = cfg.targetPropertyDoc; - cfg.targetPropertyDoc.addField(field); - } - if (addToActiveMapping) { - this.cfg.mappingService.addFieldToActiveMapping(field); - } - cfg.mappingService.notifyMappingUpdated(); - } - - /** - * Delete a property field. - * @param propName - * @param propScope - * @param isSource - */ - deleteProperty(propName: string, propScope: string, isSource: boolean): void { - const path = this.getPropertyPath(propScope, propName); - const field = isSource - ? this.cfg.sourcePropertyDoc.getField(path) - : this.cfg.targetPropertyDoc.getField(path); - if (!field) { - return; - } - this.cfg.mappingService.removeFieldFromAllMappings(field); - if (isSource) { - this.cfg.sourcePropertyDoc.removeField(field); - } else { - this.cfg.targetPropertyDoc.removeField(field); - } - const activeMapping = this.cfg.mappings?.activeMapping; - const expression = activeMapping?.transition?.expression; - if (activeMapping && expression) { - expression.updateFieldReference(activeMapping); - } - this.cfg.mappingService.notifyMappingUpdated(); - } - - /** - * Edit a property field. When editing a property, the propName/propScope - * is needed to fetch the existing field. The newName and newScope may or - * may not be specified. - * - * @param propName - * @param propType - * @param propScope - * @param isSource - * @param newName - * @param newScope - */ - editProperty( - propName: string, - propType: string, - propScope: string, - isSource: boolean, - newName?: string, - newScope?: string - ): void { - let oldPath = this.getPropertyPath(propScope, propName); - let field = isSource - ? this.cfg.sourcePropertyDoc.getField(oldPath) - : this.cfg.targetPropertyDoc.getField(oldPath); - if (!field) { - return; - } - if (newName) { - field.name = newName; - } - if (newScope) { - field.scope = newScope; - } - field.type = FieldType[propType as keyof typeof FieldType]; - field.path = this.getPropertyPath(field.scope, field.name!); - - if (isSource) { - this.cfg.sourcePropertyDoc.updateField(field, oldPath); - } else { - this.cfg.targetPropertyDoc.updateField(field, oldPath); - } - this.cfg.mappingService.notifyMappingUpdated(); - } - - /** - * Get a {@link FieldType} of the property field. - * @param propName - * @param propScope - * @param isSource - */ - getPropertyType( - propName: string, - propScope: string, - isSource: boolean - ): FieldType { - const field = isSource - ? this.cfg.sourcePropertyDoc.getField( - this.getPropertyPath(propScope, propName) - ) - : this.cfg.targetPropertyDoc.getField( - this.getPropertyPath(propScope, propName) - ); - if (!field) { - return FieldType.NONE; - } - return field.type; - } - - /** - * Get an index of the property field type. - * @param propName - * @param propScope - * @param isSource - */ - getPropertyTypeIndex( - propName: string, - propScope: string, - isSource: boolean - ): number { - const field = isSource - ? this.cfg.sourcePropertyDoc.getField( - this.getPropertyPath(propScope, propName) - ) - : this.cfg.targetPropertyDoc.getField( - this.getPropertyPath(propScope, propName) - ); - if (!field) { - return 0; - } - for (let i = 0; i < propertyTypes.length; i++) { - if (propertyTypes[i].includes(field.type)) { - return i; - } - } - return 0; - } - - getPropertyPath(scope: string | undefined | null, name: string) { - let answer = FIELD_PATH_SEPARATOR; - if (scope && scope.length > 0) { - answer += scope + FIELD_PATH_SEPARATOR; - } - answer += name; - return answer; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/error-handler.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/error-handler.service.spec.ts deleted file mode 100644 index 6cdd89b20..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/error-handler.service.spec.ts +++ /dev/null @@ -1,181 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; - -import { ErrorHandlerService } from '../services/error-handler.service'; -import { MappingModel } from '../models/mapping.model'; - -describe('ErrorHandlerService', () => { - test('filterWith()', () => { - const mapping1 = new MappingModel(); - const mapping2 = new MappingModel(); - const errors = [ - new ErrorInfo({ - message: 'app', - scope: ErrorScope.APPLICATION, - type: ErrorType.USER, - level: ErrorLevel.ERROR, - }), - new ErrorInfo({ - message: 'mapping1', - mapping: mapping1, - scope: ErrorScope.MAPPING, - type: ErrorType.VALIDATION, - level: ErrorLevel.ERROR, - }), - new ErrorInfo({ - message: 'mapping2', - mapping: mapping2, - scope: ErrorScope.MAPPING, - type: ErrorType.VALIDATION, - level: ErrorLevel.WARN, - }), - ]; - const noFilter = ErrorHandlerService.filterWith(errors); - expect(noFilter.length).toEqual(1); - expect(noFilter[0].message).toEqual('app'); - const m1 = ErrorHandlerService.filterWith(errors, mapping1); - expect(m1.length).toEqual(2); - expect(m1[0].message).toEqual('app'); - expect(m1[1].message).toEqual('mapping1'); - const m2 = ErrorHandlerService.filterWith(errors, mapping2); - expect(m2.length).toEqual(2); - expect(m2[0].message).toEqual('app'); - expect(m2[1].message).toEqual('mapping2'); - const m2Level = ErrorHandlerService.filterWith( - errors, - mapping2, - ErrorLevel.ERROR - ); - expect(m2Level.length).toEqual(1); - expect(m2Level[0].message).toEqual('app'); - }); - - test('addError() and removeError()', () => { - const service = new ErrorHandlerService(); - expect(service.getErrors().length).toEqual(0); - service.addError(new ErrorInfo({ message: 'test' })); - const errors = service.getErrors(); - expect(errors.length).toEqual(1); - expect(errors[0].message).toEqual('test'); - service.removeError(errors[0].identifier); - expect(service.getErrors().length).toEqual(0); - }); - - test('clearAllErrors()', () => { - const service = new ErrorHandlerService(); - expect(service.getErrors().length).toEqual(0); - service.addError(new ErrorInfo({ message: 'cae' })); - service.addError(new ErrorInfo({ message: 'cae2' })); - const errors = service.getErrors(); - expect(errors.length).toEqual(2); - expect(errors[0].message).toEqual('cae2'); - expect(errors[1].message).toEqual('cae'); - service.clearAllErrors(); - service.removeError(errors[0].identifier); - expect(service.getErrors().length).toEqual(0); - }); - - test('clearPreviewErrors()', () => { - const service = new ErrorHandlerService(); - expect(service.getErrors().length).toEqual(0); - service.addError( - new ErrorInfo({ message: 'cpe' }), - new ErrorInfo({ message: 'cpe2', type: ErrorType.PREVIEW }), - new ErrorInfo({ message: 'cpe3', type: ErrorType.USER }) - ); - let errors = service.getErrors(); - expect(errors.length).toEqual(3); - expect(errors[0].message).toEqual('cpe3'); - expect(errors[1].message).toEqual('cpe2'); - expect(errors[2].message).toEqual('cpe'); - service.clearPreviewErrors(); - errors = service.getErrors(); - expect(errors.length).toEqual(2); - expect(errors[0].message).toEqual('cpe3'); - expect(errors[1].message).toEqual('cpe'); - }); - - test('clearValidationErrors()', () => { - const service = new ErrorHandlerService(); - expect(service.getErrors().length).toEqual(0); - service.addError( - new ErrorInfo({ message: 'cve' }), - new ErrorInfo({ message: 'cve2', type: ErrorType.VALIDATION }), - new ErrorInfo({ message: 'cve3', type: ErrorType.PREVIEW }) - ); - let errors = service.getErrors(); - expect(errors.length).toEqual(3); - expect(errors[0].message).toEqual('cve3'); - expect(errors[1].message).toEqual('cve2'); - expect(errors[2].message).toEqual('cve'); - service.clearValidationErrors(); - errors = service.getErrors(); - expect(errors.length).toEqual(2); - expect(errors[0].message).toEqual('cve3'); - expect(errors[1].message).toEqual('cve'); - }); - - test('should support clearFieldErrors()', () => { - const service = new ErrorHandlerService(); - expect(service.getErrors().length).toEqual(0); - service.addError( - new ErrorInfo({ message: 'cfe' }), - new ErrorInfo({ message: 'cfe2', scope: ErrorScope.FIELD }), - new ErrorInfo({ message: 'cfe3', scope: ErrorScope.MAPPING }) - ); - let errors = service.getErrors(); - expect(errors.length).toEqual(3); - expect(errors[0].message).toEqual('cfe3'); - expect(errors[1].message).toEqual('cfe2'); - expect(errors[2].message).toEqual('cfe'); - service.clearFieldErrors(); - errors = service.getErrors(); - expect(errors.length).toEqual(2); - expect(errors[0].message).toEqual('cfe3'); - expect(errors[1].message).toEqual('cfe'); - }); - - test('async subscription', (done) => { - const service = new ErrorHandlerService(); - const subscription = service.subscribe((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].message).toEqual('async'); - subscription.unsubscribe(); - done(); - }); - service.addError(new ErrorInfo({ message: 'async' })); - }); - - test('should support form error async subscription', (done) => { - const service = new ErrorHandlerService(); - const subject = service.createFormErrorChannel(); - subject.subscribe((errors) => { - expect(errors.length).toEqual(1); - expect(errors[0].message).toEqual('form async is required.'); - expect(errors[0].level).toEqual(ErrorLevel.ERROR); - expect(errors[0].scope).toEqual(ErrorScope.FORM); - subject.complete(); - done(); - }); - service.isRequiredFieldValid(null, 'form async'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/error-handler.service.ts b/packages/ui/src/_bk_atlasmap/core/services/error-handler.service.ts deleted file mode 100644 index 9d7e6fd36..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/error-handler.service.ts +++ /dev/null @@ -1,264 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { Subject, Subscription } from 'rxjs'; -import { MappingModel } from '../models/mapping.model'; - -/** - * ErrorHandlerService handles global errors, mapping validation errors, preview errors, - * mapped field level errors as well as instant form validation errors in a modal windows. - * Global errors, mapping validation errors, preview errors and mapped field level errors - * are stored in a same array at this moment. We might want to split them when we show - * them grouped by {@link ErrorType}. - * Errors with {@link ErrorScope.MAPPING} and {@link ErrorScope.FIELD} are cleared - * everytime active mapping is switched. {@link ErrorScope.FIELD} errors are mostly - * instant and cleared more frequently. - * Form validation errors are supposed to be instant. Channel should be created by - * {@link createFormErrorChannel()} when modal window is initialized, and should be - * completed when modal window is closed. - */ -export class ErrorHandlerService { - private errors: ErrorInfo[] = []; - private formErrors: ErrorInfo[] = []; - private errorUpdatedSource = new Subject(); - private formErrorUpdatedSource: Subject | undefined; - - /** - * FIlter an array of {@link ErrorInfo} with specified condition. - * @param errors An array of {@link ErrorInfo} to filter - * @param mapping {@link MappingModel} to filter {@link ErrorScope.MAPPING} errors - * @param level {@link ErrorLevel} to filter with - */ - static filterWith( - errors: ErrorInfo[], - mapping?: MappingModel, - level?: ErrorLevel - ): ErrorInfo[] { - if (!errors || errors.length === 0) { - return []; - } - return errors.filter( - (e) => - (!e.mapping || (mapping && e.mapping === mapping)) && - (!level || !e.level || e.level === level) - ); - } - - /** - * Add one or more {@link ErrorInfo} object(s) into error store. - * @param errors one or more {@link ErrorInfo} object(s) - */ - addError(...errors: ErrorInfo[]): void { - errors.forEach((error) => { - if (error.object && error.object.message) { - // TODO show error.object in more polished way... maybe with better error console - error.message += '\n' + error.object.message; - } - const store = - ErrorScope.FORM === error.scope ? this.formErrors : this.errors; - if (store.find((e) => e.message === error.message)) { - return; - } - store.unshift(error); - }); - this.emitUpdatedEvent(); - } - - /** - * An utility method to add backend error. It's a network error if {@link error.status} is 0. - * - * @param message error message to put if it's not a network error - * @param error raw error object - */ - addBackendError(message: string, error?: any): void { - if (error?.status === 0) { - this.addError( - new ErrorInfo({ - message: - 'Fatal network error: Unable to connect to the AtlasMap design runtime service.', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: error, - }) - ); - } else { - this.addError( - new ErrorInfo({ - message: message, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: error, - }) - ); - } - } - - /** - * Return all errors in the store. - * @return An array of {@link ErrorInfo} - */ - getErrors(): ErrorInfo[] { - return Object.assign([], this.errors); - } - - /** - * Remove one {@link ErrorInfo} by specifying ID. - * @param identifier Error ID - */ - removeError(identifier: string, scope?: ErrorScope): void { - if ( - scope === ErrorScope.FORM && - this.formErrorUpdatedSource && - !this.formErrorUpdatedSource.closed - ) { - this.formErrors = this.excludeByIdentifier(this.formErrors, identifier); - } else { - this.errors = this.excludeByIdentifier(this.errors, identifier); - } - this.emitUpdatedEvent(); - } - - /** - * Clear all global/mapping errors as well as form validation erros and its Subject - * if it exists. - */ - resetAll(): void { - this.clearAllErrors(); - this.formErrors = []; - if (this.formErrorUpdatedSource && !this.formErrorUpdatedSource.closed) { - this.formErrorUpdatedSource.complete(); - } - } - - /** - * Remova all errors except form validation errors. - */ - clearAllErrors() { - this.errors = []; - this.emitUpdatedEvent(); - } - - /** - * Remove all preview errors. - */ - clearPreviewErrors(): void { - this.errors = this.errors.filter((e) => e.type !== ErrorType.PREVIEW); - this.emitUpdatedEvent(); - } - - /** - * Remove all mapping validation errors. - */ - clearValidationErrors(mapping?: MappingModel): void { - this.errors = this.errors.filter( - (e) => - e.type !== ErrorType.VALIDATION && - (!mapping || !e.mapping || e.mapping !== mapping) - ); - this.emitUpdatedEvent(); - } - - /** - * Remove all field scoped errors. - */ - clearFieldErrors() { - this.errors = this.errors.filter((e) => e.scope !== ErrorScope.FIELD); - this.emitUpdatedEvent(); - } - - /** - * Remove all form validation errors. - */ - clearFormErrors() { - this.formErrors = []; - this.emitUpdatedEvent(ErrorScope.FORM); - } - - /** - * Subscribe an error updated event. Observer will be notified - * when an error is added or removed. - * @param observer Observer - */ - subscribe(observer: (errors: ErrorInfo[]) => void): Subscription { - return this.errorUpdatedSource.subscribe(observer); - } - - /** - * Create a Subject for form validation error. This ErrorHandlerService assumes only - * one form validation happens at once, as it's used in modal window. Revisit this if there - * needs to be more than one channel and manage a list of {@link Subject}. - */ - createFormErrorChannel(): Subject { - if (this.formErrorUpdatedSource && !this.formErrorUpdatedSource.closed) { - this.formErrorUpdatedSource.complete(); - } - this.formErrors = []; - this.formErrorUpdatedSource = new Subject(); - this.formErrorUpdatedSource.subscribe({ - complete: () => (this.formErrors = []), - }); - return this.formErrorUpdatedSource; - } - - /** - * Validate the specified field value in a form, generating a form validation error if not defined. - * @param value - A form field to validate - * @param fieldDescription - used in error diagnostic - */ - isRequiredFieldValid( - value: string | null, - fieldDescription: string - ): boolean { - if (value == null || '' === value) { - const errorMessage: string = fieldDescription + ' is required.'; - this.addError( - new ErrorInfo({ - message: errorMessage, - level: ErrorLevel.ERROR, - scope: ErrorScope.FORM, - }) - ); - this.emitUpdatedEvent(ErrorScope.FORM); - return false; - } - return true; - } - - private emitUpdatedEvent(scope?: ErrorScope) { - if (ErrorScope.FORM === scope) { - if (this.formErrorUpdatedSource && !this.formErrorUpdatedSource.closed) { - this.formErrorUpdatedSource.next(this.formErrors); - } - } else { - this.errorUpdatedSource.next(this.errors); - } - } - - private excludeByIdentifier( - errors: ErrorInfo[], - identifier: string - ): ErrorInfo[] { - return errors.filter((e) => e.identifier !== identifier); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/field-action.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/field-action.service.spec.ts deleted file mode 100644 index f590dbc22..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/field-action.service.spec.ts +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { Field } from '../models/field.model'; -import { FieldActionDefinition } from '../models/field-action.model'; -import { FieldActionService } from '../services/field-action.service'; -import { FieldType } from '../contracts/common'; -import { MappingModel } from '../models/mapping.model'; -import { Multiplicity } from '../contracts/field-action'; -import atlasmapFieldActionJson from '../../../../test-resources/fieldActions/atlasmap-field-action.json'; -import ky from 'ky'; -import log from 'loglevel'; - -describe('FieldActionService', () => { - let service: FieldActionService; - beforeEach(() => { - service = new FieldActionService(ky); - service.cfg.logger = log.getLogger('copnfig'); - }); - - test('parse field action metadata', (done) => { - service.cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - service.fetchFieldActions().then(() => { - let concatenateFound = false; - let dummyFound = false; - for (const action of service.actions[Multiplicity.ONE_TO_ONE]) { - if (action.name === 'io.atlasmap.maven.test.DummyOneToOne') { - expect(action.isCustom).toBeTruthy(); - dummyFound = true; - } else if (action.name === 'Concatenate') { - expect(action.isCustom).toBeFalsy(); - action.arguments[0].name = 'delimiter'; - concatenateFound = true; - } - } - expect(dummyFound).toBeTruthy(); - expect(concatenateFound).toBeFalsy(); - dummyFound = false; - concatenateFound = false; - for (const action of service.actions[Multiplicity.MANY_TO_ONE]) { - if (action.name === 'io.atlasmap.maven.test.DummyOneToOne') { - expect(action.isCustom).toBeTruthy(); - dummyFound = true; - } else if (action.name === 'Concatenate') { - expect(action.isCustom).toBeFalsy(); - action.arguments[0].name = 'delimiter'; - concatenateFound = true; - } - } - expect(dummyFound).toBeFalsy(); - expect(concatenateFound).toBeTruthy(); - done(); - }); - }); -}); - -describe('FieldActionService.appliesToField()', () => { - let action: FieldActionDefinition; - let mapping: MappingModel; - let source: Field; - let target: Field; - let service: FieldActionService; - - beforeEach(() => { - action = new FieldActionDefinition(); - mapping = new MappingModel(); - mapping.sourceFields.splice(0); - source = new Field(); - mapping.addField(source, false); - mapping.targetFields.splice(0); - target = new Field(); - mapping.addField(target, false); - service = new FieldActionService(ky); - service.cfg.logger = log.getLogger('copnfig'); - }); - - test('return false if FieldMappingPair is null', () => { - expect(service.appliesToField(action, new MappingModel(), false)).toBe( - false - ); - }); - - test('should return false if source or target is null', () => { - mapping.targetFields.splice(0); - expect(service.appliesToField(action, mapping, false)).toBe(false); - }); - - test('should return false if action multiplicity is ONE_TO_MANY', () => { - action.multiplicity = Multiplicity.ONE_TO_MANY; - expect(service.appliesToField(action, mapping, false)).toBe(false); - }); - - test('should return false if action multiplicity is MANY_TO_ONE', () => { - action.multiplicity = Multiplicity.MANY_TO_ONE; - expect(service.appliesToField(action, mapping, false)).toBe(false); - }); - - test('should return if action target type is NUMBER and target field type is numeric', () => { - action.sourceType = FieldType.NUMBER; - action.targetType = FieldType.NUMBER; - target.type = FieldType.SHORT; - expect(service.appliesToField(action, mapping, false)).toBe(true); - target.type = FieldType.NUMBER; - expect(service.appliesToField(action, mapping, false)).toBe(true); - target.type = FieldType.STRING; - expect(service.appliesToField(action, mapping, false)).toBe(false); - }); - - test('should return if action target type is ANY_DATE and target field type is a date/time', () => { - action.sourceType = FieldType.ANY_DATE; - action.targetType = FieldType.ANY_DATE; - target.type = FieldType.DATE; - expect(service.appliesToField(action, mapping, false)).toBe(true); - target.type = FieldType.DATE_TIME_TZ; - expect(service.appliesToField(action, mapping, false)).toBe(true); - target.type = FieldType.STRING; - expect(service.appliesToField(action, mapping, false)).toBe(false); - }); - - test('should return true if action source type STRING matches target field type STRING, and action target type matches target type', () => { - source.type = FieldType.STRING; - target.type = FieldType.STRING; - action.targetType = FieldType.STRING; - action.sourceType = FieldType.STRING; - expect(service.appliesToField(action, mapping, false)).toBe(true); - }); - - test('should return false if action source type CHAR matches target field type STRING, and action target type matches target type', () => { - target.type = FieldType.STRING; - action.targetType = FieldType.STRING; - action.sourceType = FieldType.CHAR; - expect(service.appliesToField(action, mapping, false)).toBe(false); - }); - - test('should return false if action source type STRING matches target field type CHAR, and action target type does not match target type', () => { - target.type = FieldType.CHAR; - action.targetType = FieldType.STRING; - action.sourceType = FieldType.STRING; - expect(service.appliesToField(action, mapping, false)).toBe(false); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/field-action.service.ts b/packages/ui/src/_bk_atlasmap/core/services/field-action.service.ts deleted file mode 100644 index b6815eaa6..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/field-action.service.ts +++ /dev/null @@ -1,449 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { - FieldActionArgument, - FieldActionDefinition, -} from '../models/field-action.model'; -import { - IActionDetail, - Multiplicity, -} from '../contracts/field-action'; - -import { ConfigModel } from '../models/config.model'; -import { Field } from '../models/field.model'; -import { FieldType } from '../contracts/common'; -import { MappingModel } from '../models/mapping.model'; - -export class FieldActionService { - cfg: ConfigModel = ConfigModel.getConfig(); - actions: { [key in Multiplicity]: FieldActionDefinition[] } = { - [Multiplicity.ONE_TO_ONE]: [], - [Multiplicity.ONE_TO_MANY]: [], - [Multiplicity.MANY_TO_ONE]: [], - [Multiplicity.ZERO_TO_ONE]: [], - [Multiplicity.MANY_TO_MANY]: [], - }; - - isInitialized = false; - - async fetchFieldActions(): Promise { - return new Promise((resolve) => { - if (this.cfg.preloadedFieldActionMetadata) { - this.clearActionDefinitions(); - if (this.cfg.preloadedFieldActionMetadata.ActionDetails) { - for (const actionDetail of this.cfg.preloadedFieldActionMetadata - .ActionDetails.actionDetail) { - const fieldActionDefinition = - this.extractFieldActionDefinition(actionDetail); - if (!fieldActionDefinition.multiplicity) { - this.cfg.logger!.info( - `Field action (${fieldActionDefinition.name}) is missing multiplicity, ingoring` - ); - continue; - } - if (fieldActionDefinition.name === 'Expression') { - // Expression is handled in special manner - continue; - } - this.actions[fieldActionDefinition.multiplicity].push( - fieldActionDefinition - ); - } - } - this.sortFieldActionDefinitions(); - this.isInitialized = true; - resolve(true); - return; - } - - if ( - this.cfg.mappingService == null || - this.cfg.initCfg.baseMappingServiceUrl == null - ) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: - 'Mapping service URL is not provided. Field Actions will not be used.', - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - }) - ); - this.isInitialized = true; - resolve(false); - return; - } - - // Fetch the field actions from the runtime service. - this.doFetchFieldActions() - .then((fetchedActionConfigs: FieldActionDefinition[]) => { - if (fetchedActionConfigs.length === 1) { - this.cfg.logger!.info('No field action was returned from backend'); - resolve(false); - } - this.clearActionDefinitions(); - fetchedActionConfigs.forEach((action) => { - if (!action.multiplicity) { - this.cfg.logger!.info( - `Field action (${action.name}) is missing multiplicity, ignoring` - ); - return; - } - if (action.name === 'Expression') { - // Expression is handled in special manner - return; - } - this.actions[action.multiplicity].push(action); - }); - this.sortFieldActionDefinitions(); - this.isInitialized = true; - resolve(true); - }) - .catch((error: any) => { - this.cfg.errorService.addBackendError( - `Could not load field action configs: (${error.message})`, - error - ); - resolve(false); - }); - }); - } - - getActionDefinitionForName( - actionName: string, - multiplicity?: Multiplicity - ): FieldActionDefinition | null { - if (!this.actions || !actionName) { - return null; - } - let actions: FieldActionDefinition[] = []; - if (multiplicity) { - actions = this.actions[multiplicity]; - } else { - Object.values(this.actions).forEach( - (arr) => (actions = actions.concat(arr)) - ); - } - for (const actionDef of actions) { - if (actionName === actionDef.name) { - return actionDef; - } - } - return null; - } - - /** - * Return the field action Definitions applicable to the specified field mapping pair. - * @param mapping - * @param isSource - * @param multiplicity - */ - getActionsAppliesToField( - mapping: MappingModel, - isSource: boolean = true, - multiplicity: Multiplicity = Multiplicity.ONE_TO_ONE - ): FieldActionDefinition[] { - if (!mapping || !this.actions) { - return []; - } - return this.actions[multiplicity].filter((d) => - this.appliesToField(d, mapping, isSource) - ); - } - - private doFetchFieldActions(): Promise { - return new Promise((_resolve, _reject) => { - //const actionConfigs: FieldActionDefinition[] = []; - //const url: string = -// this.cfg.initCfg.baseMappingServiceUrl + 'fieldActions'; - this.cfg.logger!.debug('Field Action Config Request'); - /* - this.api - .get(url, { headers: this.headers }) - .json() - .then((body) => { - this.cfg.logger!.debug( - `Field Action Config Response: ${JSON.stringify(body)}` - ); - if (body?.ActionDetails?.actionDetail?.length) { - for (const actionDetail of body.ActionDetails.actionDetail) { - const fieldActionConfig = - this.extractFieldActionDefinition(actionDetail); - actionConfigs.push(fieldActionConfig); - } - } - resolve(actionConfigs); - }) - .catch((error: any) => { - reject(error); - }); - - */ - }); - } - - private extractFieldActionDefinition( - actionDetail: IActionDetail - ): FieldActionDefinition { - this.cfg.logger!.trace( - `Deserializing field action definition: ${JSON.stringify(actionDetail)}` - ); - - const fieldActionDefinition = new FieldActionDefinition(); - fieldActionDefinition.name = actionDetail.name; - fieldActionDefinition.isCustom = actionDetail.custom; - fieldActionDefinition.sourceType = actionDetail.sourceType; - fieldActionDefinition.targetType = actionDetail.targetType; - fieldActionDefinition.method = actionDetail.method; - fieldActionDefinition.multiplicity = actionDetail.multiplicity; - fieldActionDefinition.serviceObject = actionDetail; - - if (actionDetail.actionSchema) { - for (const key of Object.keys(actionDetail.actionSchema.properties)) { - const propertyObject = actionDetail.actionSchema.properties[key]; - if (key === '@type') { - fieldActionDefinition.name = propertyObject.const; - continue; - } - const argTypeString = (propertyObject.type as string).toUpperCase(); - const argType = argTypeString - ? FieldType[argTypeString as keyof typeof FieldType] - : FieldType.STRING; - const argumentDefinition = new FieldActionArgument(); - argumentDefinition.name = key; - argumentDefinition.type = argType; - if (propertyObject.enum) { - argumentDefinition.values = propertyObject.enum; - } - argumentDefinition.serviceObject = propertyObject; - fieldActionDefinition.arguments.push(argumentDefinition); - } - } - return fieldActionDefinition; - } - - private sortFieldActionDefinitions() { - (Object.keys(this.actions) as [keyof typeof Multiplicity]).forEach( - (multiplicity) => { - const definitions = this.actions[multiplicity]; - const sortedActionDefinitions: FieldActionDefinition[] = []; - if (definitions == null || definitions.length === 0) { - return; - } - - const defsByName: { [key: string]: FieldActionDefinition[] } = {}; - const defNames: string[] = []; - for (const fieldActionConfig of definitions) { - const name: string = fieldActionConfig.name; - let sameNamedDefs: FieldActionDefinition[] = defsByName[name]; - if (!sameNamedDefs) { - sameNamedDefs = []; - defNames.push(name); - } - sameNamedDefs.push(fieldActionConfig); - defsByName[name] = sameNamedDefs; - } - - defNames.sort(); - - for (const name of defNames) { - const sameNamedDefs: FieldActionDefinition[] = defsByName[name]; - for (const fieldActionDefinition of sameNamedDefs) { - sortedActionDefinitions.push(fieldActionDefinition); - } - } - this.actions[multiplicity] = sortedActionDefinitions; - } - ); - } - - /** - * Return true if the action's source/target types and collection types match the respective source/target - * field properties for source transformations, or matches the respective target field properties only for - * a target transformation. - * - * @param action - * @param mapping - * @param isSource - */ - appliesToField( - action: FieldActionDefinition, - mapping: MappingModel, - isSource: boolean - ): boolean { - if (mapping == null) { - return false; - } - const selectedSourceField: Field = this.getActualField(mapping, true); - const selectedTargetField: Field = this.getActualField(mapping, false); - - if ( - (isSource && selectedSourceField == null) || - (!isSource && selectedTargetField == null) - ) { - return false; - } - - return isSource - ? this.appliesToSourceField(action, mapping, selectedSourceField) - : this.appliesToTargetField(action, mapping, selectedTargetField); - } - - /** - * Return the first non-padding field in either the source or target mappings. - * - * @param mapping - * @param isSource - */ - private getActualField(mapping: MappingModel, isSource: boolean): Field { - const targetField = mapping - .getFields(isSource) - .find((f) => f.name !== ''); - // TODO: maybe throw an exception instead of assuming the field will be found? - return targetField!; - } - - /** - * Check if it could be applied to source field. - * @param action - * @param _ - * @param selectedSourceField selected source field - */ - private appliesToSourceField( - action: FieldActionDefinition, - _: MappingModel, - selectedSourceField: Field - ): boolean { - // Check for matching types - date. - if (this.matchesDate(action.sourceType, selectedSourceField.type)) { - return true; - } - - // Check for matching types - numeric. - if (this.matchesNumeric(action.sourceType, selectedSourceField.type)) { - return true; - } - - // First check if the source types match. - if ( - action.sourceType === 'ANY' || - selectedSourceField.type === action.sourceType - ) { - return true; - } - - return false; - } - - /** - * Check if it could be applied for target field. Target type may not change. - * @param action - * @param _ - * @param selectedTargetField selected target field - */ - private appliesToTargetField( - action: FieldActionDefinition, - _: MappingModel, - selectedTargetField: Field - ): boolean { - if (selectedTargetField == null) { - return false; - } - - if (action.multiplicity !== Multiplicity.ONE_TO_ONE) { - return false; - } - - // Check for matching types - date. - if ( - this.matchesDate(action.sourceType, selectedTargetField.type) && - this.matchesDate(action.targetType, selectedTargetField.type) - ) { - return true; - } - - // Check for matching types - numeric. - if ( - this.matchesNumeric(action.sourceType, selectedTargetField.type) && - this.matchesNumeric(action.targetType, selectedTargetField.type) - ) { - return true; - } - - if ( - action.sourceType !== 'ANY' && - action.sourceType !== selectedTargetField.type - ) { - return false; - } - - // All other types must match the selected field types with the candidate field action types. - return ( - action.targetType === 'ANY' || - selectedTargetField.type === action.targetType - ); - } - - /** - * Return true if the candidate type and selected type are generically a date, false otherwise. - * - * @param candidateType - * @param selectedType - */ - private matchesDate(candidateType: string, selectedType: string): boolean { - return ( - candidateType === 'ANY' || - (candidateType === 'ANY_DATE' && - ['DATE', 'DATE_TIME', 'DATE_TIME_TZ', 'TIME'].indexOf(selectedType) !== - -1) - ); - } - - /** - * Return true if the candidate type and selected type are generically numeric, false otherwise. - * - * @param candidateType - * @param selectedType - */ - private matchesNumeric(candidateType: string, selectedType: string): boolean { - return ( - candidateType === 'ANY' || - (candidateType === 'NUMBER' && - [ - 'LONG', - 'INTEGER', - 'FLOAT', - 'DOUBLE', - 'SHORT', - 'BYTE', - 'DECIMAL', - 'NUMBER', - ].indexOf(selectedType) !== -1) - ); - } - - private clearActionDefinitions() { - (Object.keys(Multiplicity) as [keyof typeof Multiplicity]).forEach( - (m) => (this.actions[m] = []) - ); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/file-management.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/file-management.service.spec.ts deleted file mode 100644 index 037616233..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/file-management.service.spec.ts +++ /dev/null @@ -1,465 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { DocumentDefinition, MappingDefinition } from '../models'; -import { DocumentType, InspectionType } from '../contracts/common'; -import { TextDecoder, TextEncoder } from 'text-encoding'; - -import { ADMDigest } from '../contracts/adm-digest'; -import { CommonUtil } from '../utils/common-util'; -import { DocumentInitializationModel } from '../models/config.model'; -import { ErrorLevel } from '../models/error.model'; -import { FileManagementService } from './file-management.service'; -import FileSaver from 'file-saver'; -import { InitializationService } from './initialization.service'; -import { MAPPING_JSON_TYPE } from '../contracts/mapping'; -import fs from 'fs'; -import ky from 'ky'; -import log from 'loglevel'; -import { mocked } from 'ts-jest/utils'; -import pako from 'pako'; - -describe('FileManagementService', () => { - jest.mock('./initialization.service'); - const mockedInitService = mocked(InitializationService, true); - jest.mock('ky'); - const mockedKy = mocked(ky, true); - const service = new FileManagementService(ky); - jest.mock('file-saver'); - const mockedFileSaver = mocked(FileSaver); - jest.mock('../utils/common-util'); - const mockedCommonUtil = mocked(CommonUtil, true); - jest.mock('pako'); - const mockedPako = mocked(pako); - - beforeEach(() => { - const initService = new InitializationService(ky); - service.cfg = initService.cfg; - service.cfg.logger = log.getLogger('config'); - service.cfg.fileService = service; - }); - - test('findMappingFiles()', (done) => { - mockedKy.get = jest.fn().mockReturnValue( - new (class { - json(): Promise { - return Promise.resolve({ - StringMap: { - stringMapEntry: [ - { name: 'dummyMappingFile1' }, - { name: 'dummyMappingFile2' }, - ], - }, - }); - } - })() - ); - service - .findMappingFiles('UI') - .then((value) => { - expect(value.length).toBe(2); - expect(value[0]).toBe('dummyMappingFile1'); - expect(value[1]).toBe('dummyMappingFile2'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('findMappingFiles() server error', (done) => { - mockedKy.get = jest.fn().mockReturnValue( - new (class { - json(): Promise { - return Promise.reject('expected error'); - } - })() - ); - service - .findMappingFiles('UI') - .then(() => { - fail('expected to be rejected'); - }) - .catch((error) => { - expect(error).toMatch('expected error'); - const err = service.cfg.errorService.getErrors()[0]; - expect(err.level).toBe(ErrorLevel.ERROR); - expect(err.message.indexOf('current mapping files')).toBeGreaterThan(0); - done(); - }); - }); - - test('getCurrentMappingDigest()', (done) => { - mockedKy.get = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new TextEncoder().encode('test text')); - } - })() - ); - mockedPako.inflate = jest.fn().mockReturnValue('dummy'); - mockedCommonUtil.objectize = jest.fn().mockReturnValue({} as ADMDigest); - service - .getCurrentMappingDigest() - .then((value) => { - expect(value?.exportMappings).toBeUndefined(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('getCurrentMappingDigest() server error', (done) => { - mockedKy.get = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.reject('expected error'); - } - })() - ); - service - .getCurrentMappingDigest() - .then(() => { - fail('expected to be rejected'); - }) - .catch((error) => { - expect(error).toMatch('expected error'); - const err = service.cfg.errorService.getErrors()[0]; - expect(err.level).toBe(ErrorLevel.ERROR); - expect(err.message.indexOf('Mapping digest file')).toBeGreaterThan(0); - done(); - }); - }); - - test('getCurrentADMArchive()', (done) => { - mockedKy.get = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new TextEncoder().encode('test text')); - } - })() - ); - service - .getCurrentADMArchive() - .then((value) => { - expect(new TextDecoder().decode(value!)).toMatch('test text'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('getCurrentADMArchive() server error', (done) => { - mockedKy.get = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.reject('expected error'); - } - })() - ); - service - .getCurrentADMArchive() - .then(() => { - fail('expected to be rejected'); - }) - .catch((error) => { - expect(error).toMatch('expected error'); - const err = service.cfg.errorService.getErrors()[0]; - expect(err.level).toBe(ErrorLevel.ERROR); - expect(err.message.indexOf('ADM archive file')).toBeGreaterThan(0); - done(); - }); - }); - - test('resetMappings()', (done) => { - mockedKy.delete = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })() - ); - service.resetMappings().then((value) => { - expect(value).toBeTruthy(); - done(); - }); - }); - - test('resetMappings() server error', (done) => { - mockedKy.delete = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.reject('expected error'); - } - })() - ); - service - .resetMappings() - .then(() => { - const err = service.cfg.errorService.getErrors()[0]; - expect(err.level).toBe(ErrorLevel.ERROR); - expect(err.message.indexOf('resetting mappings')).toBeGreaterThan(0); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('resetLibs()', (done) => { - mockedKy.delete = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })() - ); - service.resetLibs().then((value) => { - expect(value).toBeTruthy(); - done(); - }); - }); - - test('resetLibs() server error', (done) => { - mockedKy.delete = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.reject('expected error'); - } - })() - ); - service - .resetLibs() - .then(() => { - const err = service.cfg.errorService.getErrors()[0]; - expect(err.level).toBe(ErrorLevel.ERROR); - expect(err.message.indexOf('JAR libraries')).toBeGreaterThan(0); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('setMappingToService()', (done) => { - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })() - ); - const mappingJson = { AtlasMapping: { jsonType: MAPPING_JSON_TYPE } }; - service - .setMappingToService(mappingJson) - .then((value) => { - expect(value).toBeTruthy(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('setMappingToService() server error', (done) => { - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.reject('expected error'); - } - })() - ); - const mappingJson = { AtlasMapping: { jsonType: MAPPING_JSON_TYPE } }; - service - .setMappingToService(mappingJson) - .then((value) => { - expect(value).toBeFalsy(); - const err = service.cfg.errorService.getErrors()[0]; - expect(err.level).toBe(ErrorLevel.ERROR); - expect( - err.message.indexOf('Unable to update the mappings file') - ).toBeGreaterThanOrEqual(0); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('importADMArchive()', (done) => { - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })() - ); - const binary = new TextEncoder().encode('dummy binary'); - service - .importADMArchive(new File([new Blob([binary])], 'dummy.adm')) - .then((value) => { - expect(value).toBeTruthy(); - done(); - }); - }); - - test('setDigestFileToService()', (done) => { - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })() - ); - const digest = {} as ADMDigest; - service - .setMappingDigestToService(digest) - .then((value) => { - expect(value).toBeTruthy(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('setDigestFileToService() server error', (done) => { - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.reject('expected error'); - } - })() - ); - const digest = {} as ADMDigest; - service.setMappingDigestToService(digest).then((value) => { - expect(value).toBeFalsy(); - const err = service.cfg.errorService.getErrors()[0]; - expect(err.level).toBe(ErrorLevel.ERROR); - expect( - err.message.indexOf('Unable to update the Mapping digest file') - ).toBeGreaterThanOrEqual(0); - done(); - }); - }); - - test('importJarFile()', (done) => { - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(Buffer.from('')); - } - })() - ); - const binary = new TextEncoder().encode('dummy binary'); - service.importJarFile(binary).then((value) => { - expect(value).toBeTruthy(); - done(); - }); - }); - - test('exportADMArchive()', (done) => { - // put digest file - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })() - ); - // get ADM archive file - mockedKy.get = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve( - fs.readFileSync( - `${__dirname}/../../../../test-resources/adm/mockdoc.adm` - ) - ); - } - json(): Promise { - return Promise.resolve({ AtlasMapping: {} }); - } - })() - ); - mockedFileSaver.saveAs = jest.fn().mockImplementation((_data) => {}); - service.cfg.mappings = new MappingDefinition(); - const srcDoc = new DocumentDefinition(); - srcDoc.name = 'dummy source document'; - srcDoc.inspectionType = InspectionType.SCHEMA; - srcDoc.inspectionSource = 'dummy schema'; - - const srcCSVDoc = new DocumentDefinition(); - srcCSVDoc.name = 'dummy CSV source document'; - srcCSVDoc.inspectionType = InspectionType.UNKNOWN; - srcCSVDoc.inspectionSource = 'dummy CSV'; - srcCSVDoc.initModel = new DocumentInitializationModel(); - srcCSVDoc.initModel.isSource = true; - srcCSVDoc.initModel.type = DocumentType.CSV; - - const tgtDoc = new DocumentDefinition(); - tgtDoc.name = 'dummy target document'; - tgtDoc.inspectionType = InspectionType.SCHEMA; - tgtDoc.inspectionSource = 'dummy schema'; - - service.cfg.sourceDocs.push(srcDoc); - service.cfg.sourceDocs.push(srcCSVDoc); - service.cfg.targetDocs.push(tgtDoc); - service - .exportADMArchive('atlasmap-mapping.adm') - .then((value) => { - expect(value).toBeTruthy(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('importADMArchive()', (done) => { - mockedCommonUtil.readBinaryFile = jest - .fn() - .mockResolvedValue( - fs.readFileSync( - `${__dirname}/../../../../test-resources/adm/mockdoc.adm` - ) - ); - // put ADM archive file - mockedKy.put = jest.fn().mockReturnValue( - new (class { - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })() - ); - mockedInitService.prototype.initialize = jest - .fn() - .mockImplementation(() => {}); - const buf = fs.readFileSync( - `${__dirname}/../../../../test-resources/json/schema/mock-json-schema.json` - ); - service - .importADMArchive(new File([new Blob([buf])], 'atlasmap-mapping.adm')) - .then((value) => { - expect(value).toBeTruthy(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/file-management.service.ts b/packages/ui/src/_bk_atlasmap/core/services/file-management.service.ts deleted file mode 100644 index 7137c15a8..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/file-management.service.ts +++ /dev/null @@ -1,562 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { - IAtlasMappingContainer, -} from '../contracts/mapping'; -import { gzip, inflate } from 'pako'; - -import { ADMDigest } from '../contracts/adm-digest'; -import { CommonUtil } from '../utils/common-util'; -import { ConfigModel } from '../models/config.model'; -import { MappingDigestUtil } from '../utils/mapping-digest-util'; -import log from 'loglevel'; - -export enum FileName { - DIGEST = 'Mapping digest file', - ADM = 'ADM archive file', - JAR = 'Jar file', -} - -export enum FileType { - DIGEST = 'GZ', - ADM = 'ZIP', - JAR = 'JAR', -} - -/** - * Handles file manipulation stored in the backend, including import/export via UI. - */ -export class FileManagementService { - _cfg!: ConfigModel; - - get cfg() { - return this._cfg; - } - - set cfg(cfg: ConfigModel) { - this._cfg = cfg; - if (!this._cfg.logger) { - this._cfg.logger = log.getLogger('file-management'); - } - } - - findMappingFiles(filter: string): Promise { - return new Promise((_resolve, _reject) => { - this.cfg.logger!.debug(`Mapping List Request: ${filter}`); - /* - this.api - .get(url) - .json() - .then((body) => { - this.cfg.logger!.debug( - `Mapping List Response: ${JSON.stringify(body)}` - ); - const entries = body.StringMap.stringMapEntry; - resolve(entries.map((item) => item.name)); - }) - .catch((error: any) => { - if (error.status !== HTTP_STATUS_NO_CONTENT) { - this.cfg.errorService.addBackendError( - 'Error occurred while accessing the current mapping files from the runtime service.', - error - ); - reject(error); - } - }); - - */ - }); - } - - /** - * Retrieve the current user data mappings digest file from the server as a GZIP compressed byte array buffer. - */ - getCurrentMappingDigest(): Promise { - return new Promise((resolve, reject) => { - this.getCurrentFile(FileName.DIGEST, FileType.DIGEST) - .then((gzipped) => { - if (!gzipped) { - resolve(null); - return; - } - const gunzipped = inflate(gzipped); - const stringified = new Uint8Array(gunzipped).reduce( - (data, byte) => data + String.fromCharCode(byte), - '' - ); - const admDigest = CommonUtil.objectize(stringified); - resolve(admDigest); - }) - .catch((error) => { - reject(error); - }); - }); - } - - getCurrentADMArchive(): Promise { - return this.getCurrentFile(FileName.ADM, FileType.ADM); - } - - private getCurrentFile( - fileName: string, - fileType: string - ): Promise { - return new Promise((_resolve, _reject) => { - const url = `${this.cfg.initCfg.baseMappingServiceUrl}mapping/${fileType}/`; - this.cfg.logger!.debug(`Get Current ${fileName} Request: ${url}`); - /* - this.api - .get(url, { headers }) - .arrayBuffer() - .then((body: ArrayBuffer) => { - this.cfg.logger!.debug( - `Get Current ${fileName} Response: ${JSON.stringify(body)}` - ); - if (body.byteLength) { - resolve(new Uint8Array(body)); - } else { - resolve(null); - } - }) - .catch((error: any) => { - if (error.status !== HTTP_STATUS_NO_CONTENT) { - this.cfg.errorService.addBackendError( - `Error occurred while accessing the ${fileName} from the runtime service.`, - error - ); - reject(error); - } - }); - - */ - }); - } - - /** - * Delete mapping files on the runtime. - */ - resetMappings(): Promise { - return new Promise((_resolve) => { - //const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/RESET'; - this.cfg.logger!.debug('Reset Mappings Request'); - /* - this.api - .delete(url) - .arrayBuffer() - .then((res: any) => { - this.cfg.logger!.debug( - `Reset Mappings Response: ${JSON.stringify(res)}` - ); - resolve(true); - return res; - }) - .catch((error: any) => { - this.cfg.errorService.addBackendError( - 'Error occurred while resetting mappings.', - error - ); - resolve(false); - }); - - */ - }); - } - - /** - * Delete user-defined JAR library files on the runtime. - */ - resetLibs(): Promise { - return new Promise((_resolve) => { - //const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/resetLibs'; - this.cfg.logger!.debug('Reset Libs Request'); - /* - this.api - .delete(url) - .arrayBuffer() - .then((res: any) => { - this.cfg.logger!.debug(`Reset Libs Response: ${JSON.stringify(res)}`); - resolve(true); - return res; - }) - .catch((error: any) => { - this.cfg.errorService.addBackendError( - 'Error occurred while resetting user-defined JAR libraries.', - error - ); - resolve(false); - }); - - */ - }); - } - - /** - * Clear error service and delete jar libraries, documents and mappings. - */ - resetAll(): Promise { - return new Promise((resolve) => { - this.cfg.errorService.resetAll(); - this.cfg.fileService - .resetMappings() - .then(async () => { - this.cfg.mappings = null; - this.cfg.clearDocs(); - this.cfg.fileService - .resetLibs() - .then((value) => { - resolve(value); - }) - .catch((error) => { - this.cfg.errorService.addBackendError( - `Failed to remove jar files: ${error.message}`, - error - ); - resolve(false); - }); - }) - .catch((error) => { - this.cfg.errorService.addBackendError( - `Failed to remove mappings: ${error.message}`, - error - ); - resolve(false); - }); - }); - } - - /** - * Commit the specified AtlasMapping object to the runtime service. The mappings - * are kept separate so they can be updated with minimal overhead. - * - * @param buffer - The stringified AtlasMapping JSON - */ - setMappingToService( - atlasMappingContainer: IAtlasMappingContainer - ): Promise { - const jsonBuffer = JSON.stringify(atlasMappingContainer); - return this.setMappingStringToService(jsonBuffer); - } - - /** - * Commit the specified AtlasMapping JSON user mapping string to the runtime service. The mappings - * are kept separate so they can be updated with minimal overhead. - * - * @param buffer - The stringified AtlasMapping JSON - */ - setMappingStringToService(jsonBuffer: string): Promise { - return new Promise((_resolve) => { - //const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/JSON'; - this.cfg.logger!.debug( - `Set Mapping Request (set mapping): ${jsonBuffer}` - ); - /* - this.api - .put(url, { headers, body: jsonBuffer }) - .arrayBuffer() - .then((res) => { - this.cfg.logger!.debug( - `Set Mapping Response: ${JSON.stringify(res)}` - ); - resolve(true); - }) - .catch((error: any) => { - this.cfg.errorService.addBackendError( - `Unable to update the mappings file to the AtlasMap design runtime service. ${error.status} ${error.statusText}`, - error - ); - resolve(false); - }); - - */ - }); - } - - setMappingDigestToService(mappingDigest: ADMDigest): Promise { - return new Promise((resolve) => { - // Compress the JSON buffer - write out as binary. - const strBuffer = JSON.stringify(mappingDigest); - const binBuffer = CommonUtil.str2bytes(strBuffer); - let compressedBuffer: Uint8Array; - try { - compressedBuffer = gzip(binBuffer); - } catch (error1) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: 'Unable to compress the current data mappings.', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: error1, - }) - ); - resolve(false); - return; - } - // Update .../target/mappings/adm-catalog-files.gz - const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/GZ/0'; - const fileContent: Blob = new Blob([compressedBuffer], { - type: 'application/octet-stream', - }); - this.setBinaryFileToService(fileContent, url, FileName.DIGEST).then( - (value) => { - resolve(value); - } - ); - }); - } - - private setADMArchiveFileToService( - compressedBuffer: BlobPart - ): Promise { - const url = this.cfg.initCfg.baseMappingServiceUrl + 'mapping/ZIP/'; - const fileContent: Blob = new Blob([compressedBuffer], { - type: 'application/octet-stream', - }); - return this.setBinaryFileToService(fileContent, url, FileName.ADM); - } - - /** - * The user has either exported their mappings or imported new mappings. - * Either way we're saving them on the server. - * - * @param compressedBuffer - */ - private setBinaryFileToService( - compressedBuffer: BlobPart, - url: string, - fileName: FileName - ): Promise { - return new Promise((_resolve) => { - this.cfg.logger!.debug(`Set ${fileName} Request: ${compressedBuffer}, ${url}`); - /* - this.api - .put(url, { body: compressedBuffer }) - .arrayBuffer() - .then((res) => { - this.cfg.logger!.debug( - `Set ${fileName} Response: ${JSON.stringify(res)}` - ); - resolve(true); - }) - .catch((error: any) => { - this.cfg.errorService.addBackendError( - `Unable to update the ${fileName} to the AtlasMap design runtime service. - ${error.status} ${error.statusText}`, - error - ); - resolve(false); - }); - - */ - }); - } - - /** - * Push a user-defined Java archive file (JAR binary buffer) to the runtime. - * - * @param binaryBuffer - binary JAR file - */ - importJarFile(binaryBuffer: BlobPart): Promise { - return new Promise(async (resolve) => { - const url = this.cfg.initCfg.baseMappingServiceUrl + 'library'; - const fileContent: Blob = new Blob([binaryBuffer], { - type: 'application/octet-stream', - }); - const jarUpdated = await this.setBinaryFileToService( - fileContent, - url, - FileName.JAR - ); - if (jarUpdated && this.cfg.mappingService) { - this.cfg.mappingService.notifyMappingUpdated(); - await this.cfg.fieldActionService.fetchFieldActions(); - resolve(true); - } else { - resolve(false); - } - }); - } - - /** - * Generate mapping digest file from current state and push it to the runtime. - * - * @returns {@link Promise} - */ - updateDigestFile(): Promise { - return new Promise(async (resolve) => { - try { - let mappingJson = undefined; - // Retrieve the JSON mappings buffer from the server. - if (this.cfg.mappings) { - mappingJson = await this.getCurrentMappingJson(); - } - const mappingDigest = MappingDigestUtil.generateMappingDigest( - this.cfg, - mappingJson - ); - - // Save mapping digest file to the runtime. - this.setMappingDigestToService(mappingDigest).then((value) => { - resolve(value); - }); - } catch (error) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: 'Unable to update mapping digest file.', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: error, - }) - ); - resolve(false); - return; - } - }); - } - - /** - * Update the current mapping files and export the ADM archive file with current mappings. - * - * Establish the mapping digest file content in JSON format (mappings + schema + instance-schema), - * compress it (GZIP), update the runtime, then fetch the full ADM archive ZIP file from the runtime - * and export it. - * - * @param event - */ - exportADMArchive(mappingsFileName: string): Promise { - return new Promise((resolve) => { - this.updateDigestFile().then(() => { - // Fetch the full ADM archive file from the runtime (ZIP) and export it to to the local - // downloads area. - this.getCurrentADMArchive().then(async (value: Uint8Array | null) => { - // If value is null then no compressed mappings digest file is available on the server. - if (value === null) { - resolve(false); - return; - } - // Tack on a .adm suffix if one wasn't already specified. - if (mappingsFileName.split('.').pop() !== 'adm') { - mappingsFileName = mappingsFileName.concat('.adm'); - } - const fileContent = new Blob([value], { - type: 'application/octet-stream', - }); - CommonUtil.writeFile(fileContent, mappingsFileName) - .then((value2) => { - resolve(value2); - }) - .catch((error) => { - this.cfg.errorService.addError( - new ErrorInfo({ - message: 'Unable to save the current data mappings.', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: error, - }) - ); - resolve(false); - }); - }); - }); - }); - } - - /** - * Clean up all existing mappings, documents, libraries and import specified ADM archive file, - * push it to the runtime and reflect back in UI. The ADM file is in (ZIP) file format. - * Once pushed, we can retrieve from runtime the extracted compressed (GZIP) mappings - * digest file as well as the mappings JSON file. These files exist separately for performance reasons. - * - * Once the runtime has its ADM archive file, digest file and mappings file set then restart the DM. - * - * @param mappingsFileName - ADM archive file - */ - importADMArchive(admFile: File): Promise { - return new Promise((resolve) => { - this.resetAll().then(() => { - const reader = new FileReader(); - - // Turn the imported ADM file into a binary octet stream. - CommonUtil.readBinaryFile(admFile, reader) - .then((fileBin) => { - // Push the binary stream to the runtime. - this.setADMArchiveFileToService(fileBin).then((value) => { - resolve(value); - }); - }) - .catch((error) => { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `Unable to import the specified ADM file '${admFile.name}'`, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: error, - }) - ); - resolve(false); - }); - }); - }); - } - - /** - * Retrieve the current user AtlasMap data mappings from the server as a JSON object. - */ - getCurrentMappingJson(): Promise { - return new Promise((_resolve, reject) => { - if (this.cfg.mappings === null) { - reject(); - return; - } - this.cfg.mappingFiles[0] = this.cfg.mappings.name!; - //const baseURL: string = -// this.cfg.initCfg.baseMappingServiceUrl + 'mapping/JSON/'; - this.cfg.logger!.debug('Get Current Mapping Request'); - /* - this.api - .get(baseURL) - .json() - .then((body) => { - this.cfg.logger!.debug( - `Get Current Mapping Response: ${JSON.stringify(body)}` - ); - resolve(body); - }) - .catch((error: any) => { - if (error.status !== HTTP_STATUS_NO_CONTENT) { - this.cfg.errorService.addBackendError( - 'Error occurred while accessing the current mappings from the backend service.', - error - ); - reject(error); - } else { - resolve(undefined); - } - }); - - */ - }); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/index.ts b/packages/ui/src/_bk_atlasmap/core/services/index.ts deleted file mode 100644 index 3e0dc5b3e..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './document-management.service'; -export * from './error-handler.service'; -export * from './field-action.service'; -export * from './file-management.service'; -export * from './initialization.service'; -export * from './mapping-expression.service'; -export * from './mapping-management.service'; diff --git a/packages/ui/src/_bk_atlasmap/core/services/initialization.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/initialization.service.spec.ts deleted file mode 100644 index 5adb1a296..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/initialization.service.spec.ts +++ /dev/null @@ -1,340 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - DocumentType, - IStringContainer, - InspectionType, -} from '../contracts/common'; - -import { DocumentInitializationModel } from '../models/config.model'; -import { InitializationService } from '../services/initialization.service'; -import { Subject } from 'rxjs'; -import { TextEncoder } from 'text-encoding'; -import atlasmapFieldActionJson from '../../../../test-resources/fieldActions/atlasmap-field-action.json'; -import atlasmapInspectionMockJsonInstanceJson from '../../../../test-resources/inspected/atlasmap-inspection-mock-json-instance.json'; -import atlasmapInspectionMockJsonSchemaJson from '../../../../test-resources/inspected/atlasmap-inspection-mock-json-schema.json'; -import atlasmapInspectionMockXmlInstance1Json from '../../../../test-resources/inspected/atlasmap-inspection-mock-xml-instance-1.json'; -import atlasmapInspectionMockXmlSchema1Json from '../../../../test-resources/inspected/atlasmap-inspection-mock-xml-schema-1.json'; -import atlasmapInspectionOldActionSourceJson from '../../../../test-resources/inspected/atlasmap-inspection-old-action-source.json'; -import atlasmapInspectionOldActionTargetJson from '../../../../test-resources/inspected/atlasmap-inspection-old-action-target.json'; -import atlasmappingCvsToJson from '../../../../test-resources/mapping/atlasmapping-cvs-to-json.json'; -import atlasmappingOldActionJson from '../../../../test-resources/mapping/atlasmapping-old-action.json'; -import ky from 'ky'; -import { take } from 'rxjs/operators'; - -describe('InitializationService', () => { - let service: InitializationService; - - beforeEach(() => { - service = new InitializationService(ky); - }); - - afterEach(() => { - service.cfg.clearDocs(); - if (service.cfg.mappings) { - service.cfg.mappings.mappings = []; - } - }); - - test('runtimeServiceActive()', (done) => { - spyOn(ky, 'get').and.returnValue( - new (class { - json(): Promise { - return Promise.resolve({ String: 'pong' }); - } - })() - ); - service - .runtimeServiceActive() - .then((value) => { - expect(value).toBeTruthy(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('getRuntimeVersion()', (done) => { - spyOn(ky, 'get').and.returnValue( - new (class { - json(): Promise { - return Promise.resolve({ String: '10.9.8' }); - } - })() - ); - service - .getRuntimeVersion() - .then((value) => { - expect(value).toBe('10.9.8'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('initialize() load document definitions', (done) => { - const c = service.cfg; - c.initCfg.baseMappingServiceUrl = 'dummy'; - c.initCfg.baseJSONInspectionServiceUrl = 'dummy'; - c.initCfg.baseXMLInspectionServiceUrl = 'dummy'; - c.initCfg.baseCSVInspectionServiceUrl = 'dummy'; - const sourceJson = new DocumentInitializationModel(); - sourceJson.isSource = true; - sourceJson.type = DocumentType.JSON; - sourceJson.inspectionType = InspectionType.SCHEMA; - sourceJson.inspectionResult = JSON.stringify( - atlasmapInspectionMockJsonSchemaJson - ); - c.addDocument(sourceJson); - const sourceXml = new DocumentInitializationModel(); - sourceXml.isSource = true; - sourceXml.type = DocumentType.XML; - sourceXml.inspectionType = InspectionType.INSTANCE; - sourceXml.inspectionResult = JSON.stringify( - atlasmapInspectionMockXmlInstance1Json - ); - c.addDocument(sourceXml); - const targetJson = new DocumentInitializationModel(); - targetJson.isSource = false; - targetJson.type = DocumentType.JSON; - targetJson.inspectionType = InspectionType.INSTANCE; - targetJson.inspectionResult = JSON.stringify( - atlasmapInspectionMockJsonInstanceJson - ); - c.addDocument(targetJson); - const targetXml = new DocumentInitializationModel(); - targetXml.isSource = false; - targetXml.type = DocumentType.XML; - targetXml.inspectionType = InspectionType.SCHEMA; - targetXml.inspectionResult = JSON.stringify( - atlasmapInspectionMockXmlSchema1Json - ); - c.addDocument(targetXml); - spyOn(service, 'runtimeServiceActive').and.returnValue( - Promise.resolve(true) - ); - return service - .initialize() - .then(() => { - expect(c.sourceDocs[0].fields[0].path).toEqual('/addressList<>'); - expect(c.sourceDocs[1].fields[0].path).toEqual('/data'); - expect(c.targetDocs[0].fields[0].path).toEqual('/addressList<>'); - expect(c.targetDocs[1].fields[0].path).toEqual('/data'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('initialize() load mapping definition', (done) => { - const cfg = service.cfg; - cfg.clearDocs(); - cfg.initCfg.baseMappingServiceUrl = 'dummy'; - cfg.initCfg.baseJSONInspectionServiceUrl = 'dummy'; - cfg.initCfg.baseXMLInspectionServiceUrl = 'dummy'; - cfg.initCfg.baseCSVInspectionServiceUrl = 'dummy'; - cfg.preloadedFieldActionMetadata = JSON.stringify(atlasmapFieldActionJson); - - const source = new DocumentInitializationModel(); - source.isSource = true; - source.type = DocumentType.JSON; - source.inspectionType = InspectionType.SCHEMA; - source.id = 'old-action-source'; - source.inspectionResult = JSON.stringify( - atlasmapInspectionOldActionSourceJson - ); - cfg.addDocument(source); - const target = new DocumentInitializationModel(); - target.isSource = false; - target.type = DocumentType.JSON; - target.inspectionType = InspectionType.SCHEMA; - target.id = 'old-action-target'; - target.inspectionResult = JSON.stringify( - atlasmapInspectionOldActionTargetJson - ); - cfg.addDocument(target); - cfg.preloadedMappingJson = JSON.stringify(atlasmappingOldActionJson); - - spyOn(service, 'runtimeServiceActive').and.returnValue( - Promise.resolve(true) - ); - spyOn(cfg.fileService, 'getCurrentMappingDigest').and.returnValue( - Promise.resolve(null) - ); - service.systemInitialized$.subscribe(() => { - expect(cfg.sourceDocs[0].fields.length).toEqual(1); - expect(cfg.sourceDocs[0].fields[0].path).toEqual('/<>'); - expect(cfg.targetDocs[0].fields[0].path).toEqual('/id'); - expect(cfg.mappings?.mappings?.length).toEqual(1); - const mapping = cfg.mappings?.mappings[0]; - expect(mapping?.sourceFields?.length).toEqual(1); - const sourceField = mapping?.sourceFields[0]; - expect(sourceField?.field).toBeTruthy(); - expect(mapping?.targetFields?.length).toEqual(1); - const targetField = mapping?.targetFields[0]; - expect(targetField?.field).toBeTruthy(); - expect(cfg.errorService.getErrors().length).toEqual(0); - done(); - }); - service.initialize().catch((error) => { - fail(error); - }); - }); - - test('initializeWithADMArchiveFile()', (done) => { - const spyImportAdm = spyOn( - service.cfg.fileService, - 'importADMArchive' - ).and.returnValue(Promise.resolve(true)); - const spyInitialize = spyOn(service, 'initialize').and.returnValue( - Promise.resolve(true) - ); - const binary = new TextEncoder().encode('dummy binary'); - service - .initializeWithADMArchiveFile(new File([new Blob([binary])], 'dummy.adm')) - .then((value) => { - expect(value).toBeTruthy(); - expect(spyImportAdm.calls.count()).toBe(1); - expect(spyInitialize.calls.count()).toBe(1); - done(); - }); - }); - - test('resetAtlasMap()', (done) => { - const spyResetAll = spyOn( - service.cfg.fileService, - 'resetAll' - ).and.returnValue(Promise.resolve(true)); - const spyInitialize = spyOn(service, 'initialize').and.returnValue( - Promise.resolve(true) - ); - service.resetAtlasMap().then((value) => { - expect(value).toBeTruthy(); - expect(spyResetAll.calls.count()).toBe(1); - expect(spyInitialize.calls.count()).toBe(1); - done(); - }); - }); - - // repeat the test three times to test that the notifications are sent only once, - // i.e. that they do not exponentially accumulate, that's why we use the singleton - // service here, as initialization service is usually a singleton at runtime: - const serviceNotificationCase = new InitializationService(ky); - test.each([1, 2, 3])( - 'notify of mapping changes upon inspection in initialization run(%i)', - (_, done: any) => { - const c = serviceNotificationCase.cfg; - c.initCfg.baseMappingServiceUrl = 'dummy'; - c.initCfg.baseJSONInspectionServiceUrl = 'dummy'; - c.initCfg.baseXMLInspectionServiceUrl = 'dummy'; - c.initCfg.baseCSVInspectionServiceUrl = 'dummy'; - - const source = new DocumentInitializationModel(); - source.isSource = true; - source.type = DocumentType.CSV; - source.inspectionType = InspectionType.INSTANCE; - source.id = 'source'; - source.inspectionSource = '1,2,3'; - source.inspectionParameters = { - format: 'Default', - headers: 'D,I,F,F,E,R,E,N,T', - }; - source.inspectionResult = `{ - "CsvInspectionResponse": { - "jsonType": "io.atlasmap.csv.v2.CsvInspectionResponse", - "csvDocument": { - "jsonType": "io.atlasmap.v2.Document", - "fields": { - "field": [ - { - "jsonType": "io.atlasmap.csv.v2.CsvComplexType", - "collectionType": "LIST", - "path": "/<>", - "fieldType": "COMPLEX", - "name": "", - "csvFields": { - "csvField": [ - { - "jsonType": "io.atlasmap.csv.v2.CsvField", - "path": "/<>/A", - "fieldType": "STRING", - "name": "A" - }, - { - "jsonType": "io.atlasmap.csv.v2.CsvField", - "path": "/<>/B", - "fieldType": "STRING", - "name": "B" - }, - { - "jsonType": "io.atlasmap.csv.v2.CsvField", - "path": "/<>/C", - "fieldType": "STRING", - "name": "C" - } - ] - } - } - ] - } - }, - "executionTime": 0 - } - }`; - c.addDocument(source); - - const target = new DocumentInitializationModel(); - target.isSource = false; - target.id = 'target'; - target.type = DocumentType.JSON; - target.inspectionResult = JSON.stringify( - atlasmapInspectionMockJsonInstanceJson - ); - c.addDocument(target); - - c.preloadedMappingJson = JSON.stringify(atlasmappingCvsToJson); - - spyOn(serviceNotificationCase, 'runtimeServiceActive').and.callFake( - async () => { - c.fieldActionService.isInitialized = true; - return true; - } - ); - - const notified = new Subject(); - const notifyMappingUpdatedSpy = spyOn( - c.mappingService, - 'notifyMappingUpdated' - ).and.callFake(() => notified.next()); - - serviceNotificationCase - .initialize() - .then(() => { - // we take two (at most), but we expect only one - notified.pipe(take(2)).subscribe(() => { - expect(notifyMappingUpdatedSpy.calls.count()).toBe(1); - done(); - }); - }) - .catch((error) => { - fail(error); - }); - } - ); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/initialization.service.ts b/packages/ui/src/_bk_atlasmap/core/services/initialization.service.ts deleted file mode 100644 index aa1ba938d..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/initialization.service.ts +++ /dev/null @@ -1,458 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { DocumentType } from '../contracts/common'; -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { Observable, Subject } from 'rxjs'; - -import { ADMDigest } from '../contracts/adm-digest'; -import { CommonUtil } from '../utils/common-util'; -import { ConfigModel } from '../models/config.model'; -import { DocumentManagementService } from './document-management.service'; -import { ErrorHandlerService } from './error-handler.service'; -import { FieldActionService } from './field-action.service'; -import { FileManagementService } from './file-management.service'; -import { LookupTableUtil } from '../utils/lookup-table-util'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { MappingExpressionService } from './mapping-expression.service'; -import { MappingManagementService } from './mapping-management.service'; -import { MappingPreviewService } from './mapping-preview.service'; -import { MappingSerializer } from '../utils/mapping-serializer'; -import { MappingUtil } from '../utils/mapping-util'; -import { first } from 'rxjs/operators'; -import log from 'loglevel'; - -log.setDefaultLevel(log.levels.WARN); - -/** - * Initialize AtlasMap UI core library. It initializes {@link ConfigModel} and core services. - */ -export class InitializationService { - cfg: ConfigModel = ConfigModel.getConfig(); - - systemInitializedSource = new Subject(); - systemInitialized$: Observable = - this.systemInitializedSource.asObservable(); - - initializationStatusChangedSource = new Subject(); - initializationStatusChanged$: Observable = - this.initializationStatusChangedSource.asObservable(); - - private documentService: DocumentManagementService; - private mappingService: MappingManagementService; - private errorService: ErrorHandlerService; - private fieldActionService: FieldActionService; - private fileService: FileManagementService; - private previewService: MappingPreviewService; - private expressionService: MappingExpressionService; - - constructor() { - this.documentService = new DocumentManagementService(); - this.mappingService = new MappingManagementService(); - this.errorService = new ErrorHandlerService(); - this.fieldActionService = new FieldActionService(); - this.fileService = new FileManagementService(); - this.previewService = new MappingPreviewService(); - this.expressionService = new MappingExpressionService(); - this.resetConfig(); - this.documentService.initialize(); - } - - resetConfig(): void { - this.cfg = new ConfigModel(); - this.cfg.documentService = this.documentService; - this.cfg.documentService.cfg = this.cfg; - this.cfg.mappingService = this.mappingService; - this.cfg.mappingService.cfg = this.cfg; - this.cfg.errorService = this.errorService; - this.cfg.fieldActionService = this.fieldActionService; - this.cfg.fieldActionService.cfg = this.cfg; - this.cfg.fileService = this.fileService; - this.cfg.fileService.cfg = this.cfg; - this.cfg.previewService = this.previewService; - this.cfg.previewService.cfg = this.cfg; - this.cfg.expressionService = this.expressionService; - this.cfg.expressionService.cfg = this.cfg; - this.cfg.initializationService = this; - this.cfg.logger = log.getLogger('config'); - ConfigModel.setConfig(this.cfg); - } - - initialize(): Promise { - return new Promise(async (resolve) => { - this.cfg.setConstantPropertyDocs(); - this.cfg.errorService.resetAll(); - this.cfg.fieldActionService.isInitialized = false; - this.cfg.initCfg.initialized = false; - this.cfg.initCfg.mappingInitialized = false; - - if (this.cfg.mappingService == null) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: - 'Mapping service is not configured, validation service will not be used.', - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - }) - ); - } else if (this.cfg.initCfg.baseMappingServiceUrl == null) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: - 'Mapping service URL is not configured, validation service will not be used.', - level: ErrorLevel.WARN, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - }) - ); - } - - if (!this.cfg.fieldActionService) { - this.handleError('FieldActionService is not configured'); - resolve(false); - return; - } - - // Verify the runtime service is out there. - try { - if (!(await this.runtimeServiceActive())) { - this.handleError('The AtlasMap runtime service is not available.'); - resolve(false); - return; - } - } catch (error) { - this.handleError('The AtlasMap runtime service is not available.'); - resolve(false); - return; - } - - // load documents from initialization parameters in embedded mode - this.updateLoadingStatus('Loading source/target documents.'); - const allDocs = this.cfg.getAllDocs(); - // assumption is that there will be at least one document present - const lastDoc = allDocs[allDocs.length - 1]; - this.cfg.documentService - .inspectDocuments() - // inspectedDocuments notifies for all documents, wait till the last document - .pipe(first((d) => d === lastDoc)) - .subscribe({ - next: () => { - // updateStatus() will nullify this.cfg.preloadedMappingJson - // let's store it for comparisson below - const preloadedMappingJson = this.cfg.preloadedMappingJson; - this.updateStatus(); - this.systemInitializedSource.pipe(first()).subscribe(() => { - if (preloadedMappingJson) { - const maybeUpdatedMappingJson = JSON.stringify( - MappingSerializer.serializeMappings(this.cfg) - ); - // inspection might change the mapping, for example the preloaded - // mapping could have a document URI that is no longer the same - // after inspection, e.g. when parameters change on the provided - // documents and differ from the parameters embedded in the - // provided mapping; in that case we need to notify that mapping - // has been changed - if (preloadedMappingJson !== maybeUpdatedMappingJson) { - this.cfg.mappingService.notifyMappingUpdated(); - } - } - }); - }, - }); - - this.initializeWithMappingDigest().finally(() => { - this.updateStatus(); - }); - resolve(true); - }); - } - - /** - * Return true if the runtime service is available, false otherwise. - */ - runtimeServiceActive(): Promise { - return new Promise((_resolve, _reject) => { - //const url: string = this.cfg.initCfg.baseMappingServiceUrl + 'ping'; - this.cfg.logger!.debug('Runtime Service Ping Request'); - /* - this.api - .get(url) - .json() - .then((body) => { - this.cfg.logger!.debug( - `Runtime Service Ping Response: ${body.String}` - ); - resolve(body?.String === 'pong'); - }) - .catch((error: any) => { - reject(error); - }); - - */ - }); - } - - /** - * Retrieve AtlasMap design time backend runtime version. - * @returns - */ - getRuntimeVersion(): Promise { - //const url = this.cfg.initCfg.baseMappingServiceUrl + 'version'; - return new Promise((_resolve, _reject) => { - /* - this.api - .get(url) - .json() - .then((body) => { - this.cfg.logger!.debug( - `Runtime Service Version Response: ${body.String}` - ); - resolve(body.String); - }) - .catch((error) => { - reject(error); - }); - - */ - }); - } - - /** - * Initialize with the {@link ADMDigest} mapping digest from either an imported ADM archive - * file or from the DM runtime digest file is presented to update the canvas. - * - * @param mappingDigest - {@link ADMDigest} mapping digest - */ - private initializeWithMappingDigest(): Promise { - return new Promise((resolve) => { - this.cfg.fileService - .getCurrentMappingDigest() - .then(async (mappingDigest: ADMDigest | null) => { - // If digest is null then no compressed mappings digest file is available on the server. - if (!mappingDigest) { - if (this.cfg.mappings === null) { - this.cfg.mappings = new MappingDefinition(); - } - - // load field actions - do this even with no documents so the default field actions are loaded. - await this.cfg.fieldActionService.fetchFieldActions(); - this.updateStatus(); - resolve(true); - return; - } - - await this.addDocumentsFromMappingDigest(mappingDigest); - - if (!mappingDigest || !mappingDigest.exportMappings) { - resolve(false); - return; - } - // Reinitialize the model mappings. - const digestMappingsName = - MappingSerializer.deserializeAtlasMappingName( - CommonUtil.objectize(mappingDigest.exportMappings.value) - ); - - // If the live UI mappings name does not match the UI mappings name extracted from the - // catalog file then use the mappings from the catalog file. Otherwise use the live - // UI file. - this.cfg.fileService - .findMappingFiles('UI') - .then(async (files: string[]) => { - await this.cfg.fileService.setMappingDigestToService( - mappingDigest - ); - await this.cfg.fieldActionService.fetchFieldActions(); - if (digestMappingsName !== files[0]) { - await this.cfg.fileService.setMappingStringToService( - mappingDigest.exportMappings.value - ); - } - // load both default and custom field actions - await this.cfg.fieldActionService.fetchFieldActions(); - - // load mappings - this.fetchMappings().then((value) => { - resolve(value); - }); - }) - .catch(() => { - resolve(false); - }); - }) - .catch(() => { - resolve(false); - }); - }); - } - - private addDocumentsFromMappingDigest( - mappingDigest: ADMDigest - ): Promise { - return new Promise(async (resolve) => { - this.cfg.errorService.resetAll(); - - let fragIndex = 0; - - // Reinitialize the model documents. - for (let metaFragment of mappingDigest.exportMeta) { - const fragData = mappingDigest.exportBlockData[fragIndex].value; - const docID = metaFragment.id ? metaFragment.id : metaFragment.name; - const docType = metaFragment.dataSourceType - ? (metaFragment.dataSourceType as DocumentType) - : (metaFragment.documentType as DocumentType); - const isSource = - typeof metaFragment.isSource === 'string' - ? (metaFragment.isSource as string).toLowerCase() === 'true' - : metaFragment.isSource; - await this.cfg.documentService.addDocument( - fragData, - docID, - metaFragment.name, - docType, - metaFragment.inspectionType, - isSource, - metaFragment.inspectionParameters - ); - this.updateStatus(); - fragIndex++; - } - this.cfg.mappingService.notifyMappingUpdated(); - resolve(true); - }); - } - - /** - * Fetch mapping files and initialize user mappings in the canvas. - * - * @param mappingFiles - */ - private fetchMappings(): Promise { - return new Promise(async (resolve) => { - if (this.cfg.mappings != null) { - resolve(true); - return; - } - - this.cfg.mappings = new MappingDefinition(); - let mappingFiles = this.cfg.mappingFiles; - if (!this.cfg.mappingFiles || this.cfg.mappingFiles.length === 0) { - mappingFiles = await this.cfg.fileService.findMappingFiles('UI'); - } - if (mappingFiles.length === 0) { - resolve(false); - } - - this.cfg.mappingService - .fetchMappings(mappingFiles, this.cfg.mappings) - .then(() => { - this.cfg.initCfg.mappingInitialized = true; - this.updateStatus(); - this.cfg.mappingService - .notifyMappingUpdated() - .then(() => resolve(true)); - }); - }); - } - - updateStatus(): void { - const documentCount: number = this.cfg.getAllDocs().length; - let finishedDocCount = 0; - for (const docDef of this.cfg.getAllDocs()) { - if (docDef.initialized || docDef.errorOccurred) { - finishedDocCount++; - } - } - - if ( - documentCount === finishedDocCount && - this.cfg.fieldActionService.isInitialized - ) { - if (this.cfg.preloadedMappingJson) { - MappingSerializer.deserializeMappingServiceJSON( - JSON.parse(this.cfg.preloadedMappingJson), - this.cfg - ); - this.cfg.preloadedMappingJson = null; - } - if (this.cfg.mappings) { - LookupTableUtil.updateLookupTables(this.cfg.mappings); - MappingUtil.updateDocumentNamespacesFromMappings(this.cfg); - MappingUtil.updateMappingsFromDocuments(this.cfg); - for (const d of this.cfg.getAllDocs()) { - d.updateFromMappings(this.cfg.mappings); - } - MappingUtil.removeStaleMappings(this.cfg); - this.cfg.mappingService.updateMappingsTransition(); - } - this.updateInitComplete(); - } - } - - private handleError(message: string, error?: any) { - message = 'Data Mapper UI Initialization Error: ' + message; - this.cfg.errorService.addError( - new ErrorInfo({ - message: message, - scope: ErrorScope.APPLICATION, - level: ErrorLevel.ERROR, - type: ErrorType.INTERNAL, - object: error, - }) - ); - this.updateLoadingStatus(message); - this.cfg.initCfg.initializationErrorOccurred = true; - this.cfg.initCfg.initialized = true; - this.systemInitializedSource.next(); - } - - updateInitComplete(): void { - this.updateLoadingStatus('Initialization complete.'); - this.cfg.initCfg.initialized = true; - this.systemInitializedSource.next(); - } - - updateLoadingStatus(status: string): void { - this.cfg.initCfg.loadingStatus = status; - this.initializationStatusChangedSource.next(); - } - - initializeWithADMArchiveFile(file: File): Promise { - return new Promise((resolve) => { - this.updateLoadingStatus('Importing ADM archive file'); - this.cfg.fileService.importADMArchive(file).then(() => { - this.initialize().then((value) => { - resolve(value); - }); - }); - }); - } - - resetAtlasMap(): Promise { - return new Promise((resolve) => { - this.cfg.fileService.resetAll().then((value) => { - this.initialize().then((value2) => { - resolve(value && value2); - }); - }); - }); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.spec.ts deleted file mode 100644 index 9aa910f5b..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.spec.ts +++ /dev/null @@ -1,226 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ConfigModel, - DocumentInitializationModel, -} from '../models/config.model'; -import { DocumentType, InspectionType } from '../contracts/common'; - -import { DocumentDefinition } from '../models/document-definition.model'; -import { ExpressionNode } from '../models/expression.model'; -import { Field } from '../models/field.model'; -import { InitializationService } from './initialization.service'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { MappingExpressionService } from './mapping-expression.service'; -import { MappingModel } from '../models/mapping.model'; -import { TestUtils } from '../../test/test-util'; -import ky from 'ky'; - -describe('MappingExpressionService', () => { - let cfg: ConfigModel; - let service: MappingExpressionService; - - beforeEach(() => { - const initService = new InitializationService(ky); - initService.initialize(); - cfg = initService.cfg; - service = cfg.expressionService; - }); - - test('should clear out source fields when toggling expression with a source collection', () => { - const source = new Field(); - source.isPrimitive = true; - source.docDef = new DocumentDefinition(); - source.docDef.isSource = true; - - source.parentField = new Field(); - source.parentField.isCollection = true; - - source.parentField.parentField = new Field(); - source.parentField.parentField.isCollection = true; - - const target = new Field(); - target.isPrimitive = true; - target.docDef = new DocumentDefinition(); - target.docDef.isSource = false; - - target.parentField = new Field(); - target.parentField.isCollection = true; - - target.parentField.parentField = new Field(); - target.parentField.parentField.isCollection = true; - - const mappingModel = new MappingModel(); - mappingModel.addField(source, false); - mappingModel.addField(target, false); - - const mappingDefinition = new MappingDefinition(); - mappingDefinition.mappings.push(mappingModel); - mappingModel.cfg.mappings = mappingDefinition; - mappingDefinition.activeMapping = mappingModel; - - service.cfg.mappings = mappingDefinition; - - service.toggleExpressionMode(); - - expect(service.willClearOutSourceFieldsOnTogglingExpression()).toBeTruthy(); - - service.toggleExpressionMode(); - - expect(service.cfg.mappings?.activeMapping?.sourceFields?.length).toBe(0); - expect(service.cfg.mappings?.activeMapping?.targetFields?.length).toBe(1); - }); - - test('should not clear out source fields when toggling expression without a source collection', () => { - const source = new Field(); - source.isPrimitive = true; - source.docDef = new DocumentDefinition(); - source.docDef.isSource = true; - - source.parentField = new Field(); - source.parentField.isCollection = false; - - source.parentField.parentField = new Field(); - source.parentField.parentField.isCollection = false; - - const target = new Field(); - target.isPrimitive = true; - target.docDef = new DocumentDefinition(); - target.docDef.isSource = false; - - target.parentField = new Field(); - target.parentField.isCollection = true; - - target.parentField.parentField = new Field(); - target.parentField.parentField.isCollection = true; - - const mappingModel = new MappingModel(); - mappingModel.addField(source, false); - mappingModel.addField(target, false); - - const mappingDefinition = new MappingDefinition(); - mappingDefinition.mappings.push(mappingModel); - mappingModel.cfg.mappings = mappingDefinition; - mappingDefinition.activeMapping = mappingModel; - - service.cfg.mappings = mappingDefinition; - - spyOn(cfg.mappingService, 'updateTransition').and.stub(); - - service.toggleExpressionMode(); - - expect(service.willClearOutSourceFieldsOnTogglingExpression()).toBeFalsy(); - - service.toggleExpressionMode(); - - expect(service.cfg.mappings?.activeMapping?.sourceFields?.length).toBe(1); - expect(service.cfg.mappings?.activeMapping?.targetFields?.length).toBe(1); - }); - - test('willClearOutSourceFieldsOnTogglingExpression()', () => { - TestUtils.createMockMappings(service.cfg); - const mapping1 = service.cfg.mappings!.mappings[1]; - expect(service.cfg.mappings?.activeMapping).toBeNull(); - cfg.mappingService.selectMapping(mapping1); - expect(service.willClearOutSourceFieldsOnTogglingExpression()).toBeFalsy(); - }); - - test('conditionalMappingExpressionEnabled()', () => { - TestUtils.createMockMappings(service.cfg); - const mapping1 = service.cfg.mappings!.mappings[1]; - expect(service.cfg.mappings?.activeMapping).toBeNull(); - cfg.mappingService.selectMapping(mapping1); - expect(service.isExpressionEnabledForActiveMapping()).toBeFalsy(); - }); - - test('toggleExpressionMode', () => { - spyOn(cfg.mappingService, 'validateMappings').and.stub(); - TestUtils.createMockMappings(service.cfg); - const mapping1 = service.cfg.mappings!.mappings[1]; - expect(service.cfg.mappings?.activeMapping).toBeNull(); - cfg.mappingService.selectMapping(mapping1); - service.toggleExpressionMode(); - expect(service.isExpressionEnabledForActiveMapping()).toBeTruthy(); - }); - - test('executeFieldSearch()', () => { - TestUtils.createMockMappings(service.cfg); - const mapping1 = service.cfg.mappings!.mappings[1]; - expect(service.cfg.mappings?.activeMapping).toBeNull(); - cfg.mappingService.selectMapping(mapping1); - expect( - service.executeFieldSearch(service.cfg, 'sourceField', true).length - ).toBe(4); - expect( - service.executeFieldSearch(service.cfg, 'sourceField2', true).length - ).toBe(2); - }); - - test('createMappingExpression', () => { - TestUtils.createMockMappings(cfg); - const mapping1 = cfg.mappings!.mappings[1]; - expect(service.createMappingExpression(mapping1)).toContain('Concatenate'); - }); - - test('test adding a field to an expression makes it into the mapping', () => { - TestUtils.createMockMappings(cfg); - const mapping = cfg.mappings!.mappings[1]; - - const docDef = new DocumentInitializationModel(); - docDef.type = DocumentType.JSON; - docDef.inspectionType = InspectionType.SCHEMA; - docDef.name = 'JSONSchemaSource'; - docDef.isSource = true; - docDef.id = 'JSONSchemaSource'; - docDef.description = 'random desc'; - const jsonSchemaSource = cfg.addDocument(docDef); - - const source = new Field(); - source.isPrimitive = true; - source.path = '/addressList<>/city'; - source.docDef = jsonSchemaSource; - source.parentField = new Field(); - source.parentField.isCollection = true; - source.parentField.parentField = new Field(); - source.parentField.parentField.isCollection = true; - jsonSchemaSource.addField(source); - - expect(mapping).toBeDefined(); - cfg.mappingService.selectMapping(mapping); - - const textNode: ExpressionNode = { - uuid: '0', - str: 'mockstr', - getUuid: () => '', - toText: () => '', - toHTML: () => '', - }; - service.addFieldToExpression( - mapping, - source.docDef.id, - source.path, - textNode, - 0, - true - ); - const mappedField = mapping.getMappedFieldByPath( - source.path, - true, - source.docDef.id - ); - expect(mappedField?.field?.path).toEqual(source.path); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.ts b/packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.ts deleted file mode 100644 index 305780ef9..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/mapping-expression.service.ts +++ /dev/null @@ -1,437 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { MappedField, MappingModel } from '../models/mapping.model'; -import { TransitionMode, TransitionModel } from '../models/transition.model'; - -import { CommonUtil } from '../utils/common-util'; -import { ConfigModel } from '../models/config.model'; -import { ExpressionModel } from '../models/expression.model'; -import { Field } from '../models/field.model'; -import { FieldActionArgumentValue } from '../models/field-action.model'; -import { FieldType } from '../contracts/common'; -import { IExpressionNode } from '../contracts/expression'; -import { MappingUtil } from '../utils/mapping-util'; -import { Multiplicity } from '../contracts/field-action'; -import { Subscription } from 'rxjs'; - -/** - * Manages conditional mapping expression. - */ -export class MappingExpressionService { - cfg!: ConfigModel; - - private mappingUpdatedSubscription?: Subscription; - - willClearOutSourceFieldsOnTogglingExpression() { - if (this.cfg.mappings?.activeMapping?.transition.enableExpression) { - return ( - this.cfg.mappings.activeMapping.getFirstCollectionField(true) != null - ); - } else { - return false; - } - } - - isExpressionEnabledForActiveMapping(): boolean { - return !!this.cfg.mappings?.activeMapping?.transition?.enableExpression; - } - - toggleExpressionMode() { - if ( - !this.cfg.mappings || - !this.cfg.mappings.activeMapping || - !this.cfg.mappings.activeMapping.transition - ) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: 'Please select a mapping first.', - level: ErrorLevel.INFO, - scope: ErrorScope.MAPPING, - type: ErrorType.USER, - }) - ); - return; - } - const activeMapping = this.cfg.mappings.activeMapping; - if (activeMapping.transition.mode === TransitionMode.ONE_TO_MANY) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `Cannot establish a conditional mapping expression when multiple target fields are selected. - Please select only one target field and try again.`, - level: ErrorLevel.WARN, - scope: ErrorScope.MAPPING, - type: ErrorType.USER, - mapping: activeMapping, - }) - ); - return; - } - - if (this.willClearOutSourceFieldsOnTogglingExpression()) { - // Clear out source fields, if the mapping contains a source collection - activeMapping.sourceFields.splice(0, activeMapping.sourceFields.length); - } - - activeMapping.transition.enableExpression = - !activeMapping.transition.enableExpression; - if (activeMapping.transition.enableExpression) { - activeMapping.transition.mode = TransitionMode.EXPRESSION; - activeMapping.transition.transitionFieldAction = null; - this.mappingUpdatedSubscription = - this.cfg.mappingService.mappingUpdated$.subscribe(() => { - if ( - !this.cfg || - !this.cfg.mappings || - !this.cfg.mappings.activeMapping - ) { - return; - } - if (this.cfg.mappings.activeMapping.isFullyMapped()) { - this.updateExpression(this.cfg.mappings.activeMapping); - } - }); - if (activeMapping.transition.expression) { - this.cfg.mappings.activeMapping.transition.expression.expressionUpdatedSource.next(); - } - } else { - this.mappingUpdatedSubscription?.unsubscribe(); - activeMapping.transition.mode = TransitionMode.ONE_TO_ONE; - this.cfg.mappingService.updateActiveMappingTransition(); - } - } - - updateExpression(mapping: MappingModel, position?: string, offset?: number) { - // Update conditional expression field references. - mapping.transition.expression?.updateFieldReference( - mapping, - position, - offset - ); - } - - /** - * Add the specified document ID/field path to the specified mapping/ expression. - * - * @param mapping - * @param docId - * @param fieldPath - * @param newTextNode - * @param atIndex - * @param isTrailer - */ - addFieldToExpression( - mapping: MappingModel, - docId: string, - fieldPath: string, - newTextNode: IExpressionNode, - atIndex: number, - isTrailer: boolean - ) { - let mappedField = mapping.getMappedFieldByPath(fieldPath, true, docId); - - if (!mappedField) { - // If the selected field was not part of the original mapping - // and is complex then add it as a reference node. - mappedField = mapping.getReferenceField(docId, fieldPath); - if (!mappedField) { - // Try adding the selected field to the active mapping. - const docDef = this.cfg.getDocForIdentifier(docId, true); - const field = Field.getField(fieldPath, docDef?.getAllFields()!); - if (field) { - this.updateExpression( - mapping, - newTextNode.getUuid(), - isTrailer ? newTextNode.toText().length : atIndex - ); - this.cfg.mappingService.addFieldToActiveMapping(field); - } - mappedField = mapping.getMappedFieldByPath(fieldPath, true, docId); - if (!mappedField) { - return; - } - } - } - mapping.transition!.expression?.addConditionalExpressionNode( - mappedField, - newTextNode.getUuid(), - isTrailer ? newTextNode.str.length : atIndex - ); - } - - /** - * Return an array of strings representing display names of mapping fields based on the - * specified filter. - * @todo ATM this is specialized for listing up candidate fields for adding into expression. - * We will need to consolidate with field filter on the Document tree when we implement server - * side field search - https://github.com/atlasmap/atlasmap/issues/603 - * - * @param filter - */ - executeFieldSearch( - configModel: ConfigModel, - filter: string, - isSource: boolean - ): string[][] { - const activeMapping = configModel.mappings!.activeMapping; - if (!activeMapping) { - return []; - } - const formattedFields: string[][] = []; - let fields: Field[] = []; - for (const docDef of configModel.getDocs(isSource)) { - fields = docDef.getTerminalFields(); - fields = fields.concat(docDef.getComplexFields()); - Field.alphabetizeFields(fields); - let documentName = ''; - let fieldCount = -1; - - for (const field of fields) { - const formattedField: string[] = ['']; - let displayName = - field == null ? '' : field.getFieldLabel(configModel.showTypes, true); - - if ( - filter == null || - filter === '' || - displayName.toLowerCase().indexOf(filter.toLowerCase()) !== -1 - ) { - if ( - !configModel.mappingService.isFieldSelectable( - activeMapping, - field - ) && - field.type !== FieldType.COMPLEX - ) { - continue; - } - if (documentName !== field.docDef.name) { - if (fieldCount === 0) { - formattedFields.pop(); - continue; - } else { - const documentField = ['']; - documentName = field.docDef.name; - documentField[0] = documentName; - documentField[1] = field.docDef.id; - fieldCount = 0; - formattedFields.push(documentField); - } - } - displayName = CommonUtil.extractDisplayPath(field.path, 100); - formattedField[0] = field.docDef.id; - formattedField[1] = field.path; - fieldCount++; - formattedFields.push(formattedField); - } - if (formattedFields.length > 500) { - const endField: string[] = ['']; - endField[0] = '** Displayable field limit reached **'; - endField[1] = ''; - fieldCount++; - formattedFields.push(endField); - break; - } - } - } - return formattedFields; - } - - /** - * Return a string, in either text or HTML form, representing the - * expression mapping of either the optionally specified mapping or - * the active mapping if it exists, empty string otherwise. - * @todo avoid any, use typed mapping object - https://github.com/atlasmap/atlasmap/issues/2975 - * @param asHTML - * @param mapping - */ - getMappingExpressionStr(asHTML: boolean, mapping?: any): string { - if (!mapping && !MappingUtil.activeMapping(this.cfg)) { - return ''; - } - if (!mapping) { - mapping = this.cfg.mappings?.activeMapping; - } - if (!mapping.transition.expression) { - if ( - mapping.transition.enableExpression && - MappingUtil.hasFieldAction(mapping.sourceFields) - ) { - this.createMappingExpression(mapping); - } else { - return ''; - } - } - - if (mapping.transition.expression && mapping.transition.enableExpression) { - return asHTML - ? mapping.transition.expression.expressionHTML - : mapping.transition.expression.toText(true); - } - return ''; - } - - /** - * Create a conditional mapping expression from the specified mapping model. Start - * with a multiplicity action if applicable, then any field-specific field actions. - * - * @param mapping - */ - createMappingExpression(mapping: MappingModel): string { - let expr = ''; - const sourceMappedFields = mapping.getMappedFields(true); - const sourceMappedCollection = MappingUtil.hasMappedCollection( - mapping, - true - ); - const targetMappedFields = mapping.getMappedFields(false); - const targetMappedCollection = MappingUtil.hasMappedCollection( - mapping, - false - ); - - if ( - sourceMappedFields.length > 1 || - (sourceMappedCollection && - mapping.transition.transitionFieldAction?.definition?.multiplicity === - Multiplicity.MANY_TO_ONE) - ) { - expr = 'Concatenate ('; - expr += this.fieldActionsToExpression(mapping); - expr += - ", '" + - TransitionModel.delimiterModels[mapping.transition.delimiter] - .actualDelimiter + - "')"; - } else if ( - (targetMappedFields.length > 1 || targetMappedCollection) && - mapping.transition.transitionFieldAction?.definition?.multiplicity === - Multiplicity.ONE_TO_MANY - ) { - expr = 'Split ('; - expr += this.fieldActionsToExpression(mapping); - expr += ')'; - } else { - expr += this.fieldActionsToExpression(mapping); - } - mapping.transition.expression = new ExpressionModel(mapping, this.cfg); - mapping.transition.expression.insertText(expr); - return expr; - } - - private qualifiedExpressionRef(mappedField: MappedField): string { - if (mappedField.field?.path !== null) { - return ( - '${' + - mappedField.field?.docDef?.id + - ':' + - mappedField.field?.path + - '}' - ); - } else { - return 'null'; - } - } - - /** - * Create a conditional expression fragment based on the specified field action - * argument and type. - * - * @param actionArgument - * @param actionArgType - */ - private fieldActionArgumentToExpression( - actionArgument: FieldActionArgumentValue, - actionArgType: string - ): string { - if (actionArgType === 'string') { - return "'" + actionArgument.value + "'"; - } else { - return actionArgument.value; - } - } - - /** - * Create a conditional expression fragment based on a single field action - * and its arguments if any. - * - * @param mappedField - * @param mfActionIndex - */ - private fieldActionToExpression( - mappedField: MappedField, - mfActionIndex: number - ): string { - let action = mappedField.actions[mfActionIndex]; - let expression = action.name + ' ('; - if (mfActionIndex < mappedField.actions.length - 1) { - mfActionIndex++; - expression += this.fieldActionToExpression(mappedField, mfActionIndex); - } else { - expression += this.qualifiedExpressionRef(mappedField); - } - if (action.argumentValues.length > 0) { - for ( - let actionArgIndex = 0; - actionArgIndex < action.argumentValues.length; - actionArgIndex++ - ) { - expression += - ', ' + - this.fieldActionArgumentToExpression( - action.argumentValues[actionArgIndex], - action.definition!.arguments[actionArgIndex].type - ); - } - } - expression += ')'; - return expression; - } - - /** - * Create a conditional expression fragment based on the field actions of the specified - * mapping model and the root field reference. - * - * @param mapping - */ - private fieldActionsToExpression(mapping: MappingModel): string { - let expression = ''; - let mappedField: MappedField; - - for ( - let mappedFieldIndex = 0; - mappedFieldIndex < mapping.sourceFields.length; - mappedFieldIndex++ - ) { - mappedField = mapping.sourceFields[mappedFieldIndex]; - if (mappedField.actions.length > 0) { - let mfActionIndex = 0; - expression += this.fieldActionToExpression(mappedField, mfActionIndex); - } else { - expression += this.qualifiedExpressionRef(mappedField); - } - if (mappedFieldIndex !== mapping.sourceFields.length - 1) { - expression += ', '; - } - } - return expression; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.spec.ts deleted file mode 100644 index a61f2365d..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.spec.ts +++ /dev/null @@ -1,386 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { LookupTableData, LookupTableUtil } from '../utils'; -import ky, { Options } from 'ky'; - -import { ConfigModel } from '../models/config.model'; -import { Field } from '../models/field.model'; -import { InitializationService } from './initialization.service'; -import { Input } from 'ky/distribution/types/options'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { MappingManagementService } from '../services/mapping-management.service'; -import { MappingModel } from '../models/mapping.model'; -import { PaddingField } from '../models/document-definition.model'; -import { TestUtils } from '../../test/test-util'; -import { TransitionMode } from '../models/transition.model'; -import mockMappingJson from '../../../../test-resources/mapping/atlasmapping-mock.json'; - -describe('MappingManagementService', () => { - let cfg: ConfigModel; - let service: MappingManagementService; - - beforeEach(() => { - const initService = new InitializationService(ky); - cfg = initService.cfg; - service = cfg.mappingService; - }); - - test('check banned fields', () => { - const f = new Field(); - f.isCollection = true; - f.parentField = new Field(); - f.parentField.isCollection = true; - f.isPrimitive = true; - expect( - service.getFieldSelectionExclusionReason( - new MappingModel(), - f.parentField - ) - ).toContain('parent'); - }); - - test('fetchMappings()', (done) => { - spyOn(ky, 'get').and.returnValue( - new (class { - json(): Promise { - return Promise.resolve(mockMappingJson); - } - })() - ); - TestUtils.createMockDocs(service.cfg); - service.cfg.mappings = new MappingDefinition(); - service - .fetchMappings([''], service.cfg.mappings) - .then((value) => { - expect(value).toBeTruthy(); - expect(service.cfg.mappings?.mappings.length).toBeGreaterThan(0); - const m = service.cfg.mappings?.mappings[0]; - expect(m?.transition.mode).toBe(TransitionMode.ONE_TO_ONE); - const sf = m?.sourceFields[0].field; - expect(sf?.name).toBe('sourceField'); - const tf = m?.targetFields[0].field; - expect(tf?.name).toBe('targetField'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('updateMappingsTransition()', () => { - spyOn(service, 'validateMappings').and.stub(); - TestUtils.createMockMappings(service.cfg); - service.cfg.mappings!.mappings[0].transition.mode = - TransitionMode.MANY_TO_ONE; - expect( - service.cfg.mappings!.mappings[0].transition.isOneToOneMode() - ).toBeFalsy(); - expect( - service.cfg.mappings!.mappings[0].transition.isManyToOneMode() - ).toBeTruthy(); - service.updateMappingsTransition(); - expect( - service.cfg.mappings!.mappings[0].transition.isOneToOneMode() - ).toBeTruthy(); - expect( - service.cfg.mappings!.mappings[0].transition.isManyToOneMode() - ).toBeFalsy(); - }); - - test('removeMapping()', (done) => { - spyOn(service, 'validateMappings').and.stub(); - TestUtils.createMockMappings(service.cfg); - const toRemove = service.cfg.mappings!.mappings[0]; - expect(service.cfg.mappings!.mappings.length).toBe(2); - service - .removeMapping(toRemove) - .then((value) => { - expect(value).toBeTruthy(); - expect(service.cfg.mappings!.mappings.length).toBe(1); - expect(service.cfg.mappings!.mappings[0].uuid).not.toBe(toRemove.uuid); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('removeAllMappings()', (done) => { - spyOn(service, 'validateMappings').and.stub(); - TestUtils.createMockMappings(service.cfg); - expect(service.cfg.mappings?.mappings[0]); - service - .removeAllMappings() - .then((value) => { - expect(value).toBeTruthy(); - expect(service.cfg.mappings?.mappings[0]).toBeUndefined(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('updateMappedField()', (done) => { - spyOn(service, 'validateMappings').and.stub(); - const spy = spyOn(service, 'updateTransition').and.stub(); - TestUtils.createMockMappings(service.cfg); - service - .updateMappedField(service.cfg.mappings!.mappings[0]) - .then((value) => { - expect(value).toBeTruthy(); - - expect(spy.calls.count()).toBe(1); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('moveMappedFieldTo', () => { - spyOn(service, 'notifyLineRefresh').and.stub(); - spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { - return new (class { - json(): Promise { - return Promise.resolve(options.json); - } - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })(); - }); - TestUtils.createMockMappings(service.cfg); - const mapping = service.cfg.mappings!.mappings[1]; - const field2 = mapping.getMappedFieldForIndex('1', true); - expect(field2?.field?.path).toBe('/sourceField2'); - const field = mapping.getMappedFieldForIndex('2', true); - expect(field?.field?.path).toBe('/sourceField'); - service.moveMappedFieldTo(mapping, field2!, 2); - const movedField = mapping.getMappedFieldForIndex('1', true); - expect(movedField?.field?.path).toBe('/sourceField'); - }); - - test('addPlaceHolders()', () => { - TestUtils.createMockMappings(service.cfg); - const mapping = service.cfg.mappings!.mappings[1]; - const field = mapping.getMappedFieldForIndex('2', true); - expect(field?.field!.path).toBe('/sourceField'); - service.addPlaceholders(3, mapping, 1, true); - const moved = mapping.getMappedFieldForIndex('5', true); - expect(moved?.field?.path).toBe('/sourceField'); - const pad = mapping.getMappedFieldForIndex('4', true); - expect(pad?.field!).toBeInstanceOf(PaddingField); - }); - - test('addFieldToActiveMapping()', () => { - spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { - return new (class { - json(): Promise { - return Promise.resolve(options.json); - } - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })(); - }); - TestUtils.createMockMappings(service.cfg); - const mapping = service.cfg.mappings!.mappings[1]; - const field2 = mapping.getMappedFieldForIndex('1', true); - expect(field2?.field!.path).toBe('/sourceField2'); - service.selectMapping(mapping); - expect(mapping.sourceFields.length).toBe(2); - const field3 = field2?.field?.docDef.getField('/sourceField3'); - expect(field3).toBeTruthy(); - service.addFieldToActiveMapping(field3!); - expect(mapping.sourceFields.length).toBe(3); - }); - - test('isFieldSelectable()', () => { - const spy = spyOn(service, 'getFieldSelectionExclusionReason').and.stub(); - TestUtils.createMockMappings(service.cfg); - const mapping = service.cfg.mappings!.mappings[1]; - const field2 = mapping.getMappedFieldForIndex('1', true); - service.isFieldSelectable(mapping, field2?.field!); - expect(spy.calls.count()).toBe(1); - }); - - test('addNewMapping()', () => { - spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { - return new (class { - json(): Promise { - return Promise.resolve(options.json); - } - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })(); - }); - TestUtils.createMockMappings(service.cfg); - const doc = service.cfg.sourceDocs[0]; - const field3 = doc.getField('/sourceField3'); - expect(service.cfg.mappings?.mappings.length).toBe(2); - service.addNewMapping(field3!, false); - expect(service.cfg.mappings?.mappings.length).toBe(3); - const mapping = service.cfg.mappings?.mappings[2]; - const mappedField = mapping?.getMappedFieldForField(field3!); - expect(mappedField).toBeTruthy(); - }); - - test('newMapping()', () => { - spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { - return new (class { - json(): Promise { - return Promise.resolve(options.json); - } - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })(); - }); - TestUtils.createMockMappings(service.cfg); - expect(service.cfg.mappings?.mappings.length).toBe(2); - service.newMapping(); - expect(service.cfg.mappings?.mappings.length).toBe(3); - }); - - test('selectMapping()', () => { - TestUtils.createMockMappings(service.cfg); - const mapping1 = service.cfg.mappings!.mappings[1]; - expect(service.cfg.mappings?.activeMapping).toBeNull(); - service.selectMapping(mapping1); - expect(service.cfg.mappings?.activeMapping).toBe(mapping1); - }); - - test('{select,deselect}Mapping()', () => { - spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { - return new (class { - json(): Promise { - return Promise.resolve(options.json); - } - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })(); - }); - TestUtils.createMockMappings(service.cfg); - const mapping1 = service.cfg.mappings!.mappings[1]; - expect(service.cfg.mappings?.activeMapping).toBeNull(); - service.selectMapping(mapping1); - expect(service.cfg.mappings?.activeMapping).toBe(mapping1); - service.deselectMapping(); - expect(service.cfg.mappings?.activeMapping).toBeNull(); - }); - - test('removeDocumentReferenceFromAllMappings()', () => { - spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { - return new (class { - json(): Promise { - return Promise.resolve(options.json); - } - arrayBuffer(): Promise { - return Promise.resolve(new ArrayBuffer(0)); - } - })(); - }); - TestUtils.createMockMappings(service.cfg); - expect(service.cfg.mappings?.mappings.length).toBe(2); - service.removeDocumentReferenceFromAllMappings('SourceJson'); - expect(service.cfg.mappings!.mappings.length).toBe(0); - }); - - test('removeFieldFromAllMappings()', () => { - spyOn(service, 'validateMappings').and.stub(); - TestUtils.createMockMappings(service.cfg); - expect(service.cfg.mappings?.mappings.length).toBe(2); - const doc = service.cfg.sourceDocs[0]; - const field = doc.getField('/sourceField'); - service.removeFieldFromAllMappings(field!); - // **WARN** mapping is not removed even if there's no source field, - // inconsistent with removeDocumentReferenceFromAllMappings() - expect(service.cfg.mappings?.mappings.length).toBe(2); - const mapping = service.cfg.mappings?.mappings[0]; - expect(mapping?.isFullyMapped()).toBeFalsy(); - }); - - test('notifyLineRefresh()', (done) => { - spyOn(service, 'validateMappings').and.stub(); - const subscription = service.lineRefresh$.subscribe({ - next() { - subscription.unsubscribe(); - done(); - }, - error(error) { - fail(error); - }, - }); - service.notifyLineRefresh(); - }); - - test('notifyMappingUpdated()', (done) => { - spyOn(service, 'validateMappings').and.stub(); - TestUtils.createMockMappings(service.cfg); - const mapping1 = service.cfg.mappings!.mappings[1]; - expect(service.cfg.mappings?.activeMapping).toBeNull(); - service.selectMapping(mapping1); - service - .notifyMappingUpdated() - .then((value) => { - expect(value).toBeTruthy(); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - test('getEnumerationValues()', () => { - const spy = spyOn(LookupTableUtil, 'getEnumerationValues').and.stub(); - const mapping = new MappingModel(); - expect(spy.calls.count()).toBe(0); - service.getEnumerationValues(service.cfg, mapping); - expect(spy.calls.count()).toBe(1); - }); - - test('setEnumFieldValue()', () => { - const field = new Field(); - const value = 0; - expect(field.enumIndexValue).toBeFalsy(); - service.setEnumFieldValue(field, value); - expect(field.enumIndexValue).toBe(0); - }); - - test('updateEnumerationValues()', () => { - const spyUev = spyOn( - LookupTableUtil, - 'updateEnumerationValues' - ).and.stub(); - const spyNmu = spyOn(service, 'notifyMappingUpdated').and.stub(); - const mapping = new MappingModel(); - const enumValues: LookupTableData[] = []; - expect(spyUev.calls.count()).toBe(0); - expect(spyNmu.calls.count()).toBe(0); - service.updateEnumerationValues(service.cfg, mapping, enumValues); - expect(spyUev.calls.count()).toBe(1); - expect(spyNmu.calls.count()).toBe(1); - }); - - test('isEnumerationMapping()', () => { - const mapping = new MappingModel(); - mapping.transition.mode = TransitionMode.ENUM; - expect(service.isEnumerationMapping(mapping)).toBeTruthy(); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.ts b/packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.ts deleted file mode 100644 index 0a1c0935d..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/mapping-management.service.ts +++ /dev/null @@ -1,704 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { - IAtlasMappingContainer, - IValidationsContainer, -} from '../contracts/mapping'; -import { LookupTableData, LookupTableUtil } from '../utils/lookup-table-util'; -import { MappedField, MappingModel } from '../models/mapping.model'; -import { Subject, Subscription } from 'rxjs'; - -import { CommonUtil } from '../utils/common-util'; -import { ConfigModel } from '../models/config.model'; -import { Field } from '../models/field.model'; -import { FieldAction } from '../models/field-action.model'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { MappingSerializer } from '../utils/mapping-serializer'; -import { MappingUtil } from '../utils/mapping-util'; -import { Multiplicity } from '../contracts/field-action'; -import { PaddingField } from '../models/document-definition.model'; -import { TransitionMode } from '../models/transition.model'; -import log from 'loglevel'; - -/** - * Handles mapping updates. It restores mapping status from backend and reflect in UI, - * and/or reflect mapping changes caused by the user action made in UI to the backend. - */ -export class MappingManagementService { - _cfg!: ConfigModel; - - lineRefreshSource = new Subject(); - lineRefresh$ = this.lineRefreshSource.asObservable(); - mappingUpdatedSource = new Subject(); - mappingUpdated$ = this.mappingUpdatedSource.asObservable(); - - debugMappingUpdatedSubscription?: Subscription; - - mappingSelectionRequiredSource = new Subject(); - mappingSelectionRequired$ = - this.mappingSelectionRequiredSource.asObservable(); - - get cfg() { - return this._cfg; - } - - set cfg(cfg: ConfigModel) { - this._cfg = cfg; - if (!this._cfg.logger) { - this._cfg.logger = log.getLogger('mapping-management'); - } - if (this._cfg.logger.getLevel() <= this._cfg.logger.levels.DEBUG) { - this.mappingUpdated$.subscribe(() => { - if (!this.cfg.mappings) { - return; - } - if (this.cfg.mappings && this.cfg.mappings.activeMapping) { - this.cfg.logger!.info( - 'mapping updated: ' + - JSON.stringify(MappingSerializer.serializeMappings(this.cfg)) - ); - } - }); - } - } - - /** - * Retrieve current mapping definition JSON file from backend, deserialize it and - * load it into AtlasMap UI. - * - * @param mappingDefinition {@link MappingDefinition} - * @returns - */ - fetchMappings( - _mappingFiles: string[], - mappingDefinition: MappingDefinition - ): Promise { - return new Promise((resolve) => { - this.cfg.fileService - .getCurrentMappingJson() - .then(async (mappingJson: any) => { - if (!mappingJson) { - resolve(false); - return; - } - this.cfg.mappings = mappingDefinition; - MappingSerializer.deserializeMappingServiceJSON( - mappingJson, - this.cfg - ); - this.updateMappingsTransition(); - resolve(true); - }) - .catch((error) => { - this.cfg.errorService.addBackendError( - 'Failed to load mapping definition from backend:', - error - ); - resolve(false); - }); - }); - } - - updateMappingsTransition() { - this.cfg - .mappings!.getAllMappings(true) - .forEach((m) => this.updateTransition(m)); // TODO: check this non null operator - } - - updateActiveMappingTransition() { - if (this.cfg.mappings?.activeMapping) { - this.updateTransition(this.cfg.mappings?.activeMapping); - } - } - - /** - * Remove the specified mapping model from the mappings array and update the runtime. - * - * @param mappingModel - */ - async removeMapping(mappingModel: MappingModel): Promise { - return new Promise(async (resolve) => { - const mappingWasRemoved: boolean = - this.cfg.mappings!.removeMapping(mappingModel); // TODO: check this non null operator - if (mappingWasRemoved) { - this.deselectMapping(); - await this.notifyMappingUpdated(); - } else { - this.deselectMapping(); - } - resolve(true); - }); - } - - /** - * Remove all mappings from the current session. - */ - async removeAllMappings(): Promise { - return new Promise(async (resolve) => { - // TODO: check these non null operator on the mappings - for (const mapping of this.cfg.mappings!.getAllMappings(true)) { - this.cfg.mappings!.removeMapping(mapping); - this.deselectMapping(); - } - await this.notifyMappingUpdated(); - resolve(true); - }); - } - - async updateMappedField(mapping: MappingModel): Promise { - return new Promise(async (resolve) => { - if (mapping.isEmpty()) { - this.cfg.mappings!.removeMapping(mapping); // TODO: check this non null operator - this.deselectMapping(); - } else { - this.updateTransition(mapping); - } - await this.notifyMappingUpdated(); - resolve(true); - }); - } - - /** - * Move the specified mapped field in the specified mapping to the specified index. - * - * @param mapping - * @param insertedMappedField - * @param targetIndex - */ - moveMappedFieldTo( - mapping: MappingModel, - insertedMappedField: MappedField, - targetIndex: number - ): void { - if (!mapping || !insertedMappedField) { - return; - } - const mappedFields = mapping.getMappedFields( - insertedMappedField.isSource() - ); - mappedFields.splice( - mapping.getIndexForMappedField(insertedMappedField)! - 1, - 1 - ); - mappedFields.splice(targetIndex - 1, 0, insertedMappedField); - this.clearExtraPaddingFields(mappedFields, true); - this.notifyMappingUpdated(); - } - - /** - * Given an index range, fill in the mappings gap with place-holder fields. - * - * @param count - number of padding fields to add - * @param mapping - mapping to modify - * @param basePadIndex - 0 based - * @param isSource - */ - addPlaceholders( - count: number, - mapping: MappingModel, - basePadIndex: number, - isSource: boolean - ) { - let padField = null; - for (let i = 0; i < count; i++) { - padField = new MappedField(); - padField.field = new PaddingField(isSource); - if (isSource) { - mapping.sourceFields.splice(basePadIndex + i, 0, padField); - } else { - mapping.targetFields.splice(basePadIndex + i, 0, padField); - } - } - } - - addFieldToActiveMapping(field: Field): void { - let mapping: MappingModel | null = this.cfg.mappings!.activeMapping; - if (!mapping) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `No mapping is selected to add a field '${field.name}'`, - level: ErrorLevel.ERROR, - scope: ErrorScope.MAPPING, - type: ErrorType.USER, - }) - ); - return; - } - - const exclusionReason = this.getFieldSelectionExclusionReason( - mapping, - field - ); - if (exclusionReason != null) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: `The field '${field.name}' cannot be selected, ${exclusionReason}.`, - level: ErrorLevel.ERROR, - mapping: mapping, - scope: ErrorScope.MAPPING, - type: ErrorType.USER, - }) - ); - return; - } - mapping.addField(field, false); - - this.updateTransition(mapping); - if (mapping.sourceFields.length > 0 || mapping.targetFields.length > 0) { - this.notifyMappingUpdated(); - } - return; - } - - getFieldSelectionExclusionReason( - mapping: MappingModel, - field: Field - ): string | null { - if (!field.isTerminal()) { - return 'field is a parent field'; - } - - if (mapping.getAllMappedFields().length === 0) { - // if mapping hasn't had a field selected yet, allow it - return null; - } - - // Non-collection target fields may only be mapped once. - const existingMappedField = mapping.getMappedTarget(field); - if (existingMappedField != null && !field.isInCollection) { - return ( - 'it is already the target of another mapping (' + - existingMappedField + - '). ' - ); - } - - const lookupMode: boolean = mapping.isLookupMode(); - - if (lookupMode) { - if (!field.enumeration) { - return 'only Enumeration fields are valid for this mapping'; - } - return null; - } - // enums are not selectable in these modes - if (field.enumeration) { - return 'Enumeration fields are not valid for this mapping'; - } - // Expression mapping - if ( - mapping.transition.enableExpression && - !field.isSource() && - mapping.getMappedFields(false).length > 0 - ) { - return 'cannot add multiple target fields when conditional mapping is enabled.'; - } - - return null; - } - - isFieldSelectable(mapping: MappingModel, field: Field): boolean { - return this.getFieldSelectionExclusionReason(mapping, field) == null; - } - - /** - * Instantiate a new mapping model and associate the selected field with it. - * @param selectedField - * @param compoundSelection - indicates a compound-selection (ctrl/cmd-M1) if true, standard mouse click if false. - */ - addNewMapping(selectedField: Field, compoundSelection: boolean): void { - if (!compoundSelection) { - this.deselectMapping(); - } - const mapping: MappingModel = new MappingModel(); - if (selectedField != null) { - mapping.addField(selectedField, false); - this.updateTransition(mapping); - this.selectMapping(mapping); - this.notifyMappingUpdated(); - } else { - this.selectMapping(mapping); - } - } - - /** - * Instantiate a new mapping model. - */ - newMapping(): void { - this.deselectMapping(); - const mapping: MappingModel = new MappingModel(); - // Determine type of mapping (i.e., transition mode) - this.updateTransition(mapping); - // SelectMapping marks new mapping as active mapping, which is necessary so - // that it gets added to the existing mappings in notifyMappingUpdated(). - // TODO: this seems very unintuitive, seems like some step to explicitly - // add the new mapping would make more sense - this.selectMapping(mapping); - this.notifyMappingUpdated(); - } - - selectMapping(mappingModel: MappingModel) { - if (mappingModel == null) { - this.deselectMapping(); - return; - } - this.cfg.mappings!.activeMapping = mappingModel; // TODO: check this non null operator - this.cfg.showMappingDetailTray = true; - this.mappingUpdatedSource.next(); - } - - deselectMapping(): void { - this.cfg.showMappingDetailTray = false; - this.cfg.mappings!.activeMapping = null; // TODO: check this non null operator - this.notifyMappingUpdated(); - } - - /** - * Remove any mappings referencing the specified document ID. - * - * @param docId - Specified document ID - * @param cfg - */ - removeDocumentReferenceFromAllMappings(docId: string) { - for (const mapping of this.cfg.mappings!.getAllMappings(true)) { - for (const mappedField of mapping.getAllFields()) { - if ( - mappedField instanceof PaddingField || - mappedField.docDef.id !== docId - ) { - continue; - } - this.removeFieldFromAllMappings(mappedField); - if ( - mapping.sourceFields.length === 0 || - mapping.targetFields.length === 0 - ) { - this.cfg.mappings!.removeMapping(mapping); // TODO: check this non null operator - if (mapping === this.cfg.mappings!.activeMapping) { - // TODO: check this non null operator - this.cfg.mappingService.deselectMapping(); - } - } - } - } - } - - removeFieldFromAllMappings(field: Field): void { - // TODO: check this non null operator - for (const mapping of this.cfg.mappings!.getAllMappings(true)) { - const mappedField = mapping.getMappedFieldForField(field); - if (mappedField != null) { - mapping.removeMappedField(mappedField); - if (mapping.isEmpty()) { - this.cfg.mappings!.removeMapping(mapping); // TODO: check this non null operator - } - } - } - } - - /** - * Invoke the runtime service to validate the current active mapping. - */ - private async validateMappings( - payload: IAtlasMappingContainer - ): Promise { - return new Promise((resolve) => { - if ( - this.cfg.initCfg.baseMappingServiceUrl === null || - this.cfg.mappings === null - ) { - // validation service not configured or required - resolve(false); - return; - } - - this.cfg.errorService.clearValidationErrors(); - const url: string = - this.cfg.initCfg.baseMappingServiceUrl + - 'mapping/validate/' + - this.cfg.mappingDefinitionId; - this.cfg.logger!.debug( - `Validation Service Request: ${JSON.stringify(payload)}\n` - ); - /* - this.api - .put(url, { json: payload }) - .json() - .then((body) => { - this.cfg.logger!.debug( - `Validation Service Response: ${JSON.stringify(body)}\n` - ); - this.processValidationResponse(body, resolve); - }) - .catch(() => { - this.cfg.logger!.warn('Unable to fetch validation data.'); - resolve(false); - }); - - */ - }); - } - - private processValidationResponse( - body: IValidationsContainer, - resolve: (value: boolean) => void - ) { - if (this.cfg.mappings === null) { - resolve(false); - return; - } - const errors: ErrorInfo[] = []; - - // This should be eventually turned into mapping entry level validation. - // https://github.com/atlasmap/atlasmap-ui/issues/116 - if (body && body.Validations && body.Validations.validation) { - for (const validation of body.Validations.validation) { - const level: ErrorLevel = - ErrorLevel[validation.status ? validation.status : 'ERROR']; - let scope: ErrorScope = - ErrorScope[validation.scope ? validation.scope : 'MAPPING']; - let validatedMapping: MappingModel | undefined = undefined; - if (!scope || scope !== ErrorScope.MAPPING || !validation.id) { - scope = ErrorScope.APPLICATION; - } else { - scope = ErrorScope.MAPPING; - if (this.cfg.mappings && this.cfg.mappings.mappings) { - validatedMapping = this.cfg.mappings.mappings.find( - (m) => m.uuid === validation.id - )!; // TODO: check this non null operator - } - } - errors.push( - new ErrorInfo({ - message: validation.message, - level: level, - scope: scope, - mapping: validatedMapping, - type: ErrorType.VALIDATION, - }) - ); - } - } - this.cfg.errorService.addError(...errors); - resolve(true); - } - - /** - * Notify the line machine to update the lines between panels. Most widgets require a - * small delay to allow the panel to complete forming so add it here. - */ - notifyLineRefresh(): void { - setTimeout(() => { - this.lineRefreshSource.next(); - }, 1); - } - - /** - * Validate and save complete mappings. Triggered either as an observable - * or directly. - */ - notifyMappingUpdated(): Promise { - return new Promise(async (resolve) => { - if (this.cfg.mappings) { - const activeMapping: MappingModel = this.cfg.mappings.activeMapping!; // TODO: check this non null operator - if ( - activeMapping && - this.cfg.mappings.mappings.indexOf(activeMapping) === -1 - ) { - this.cfg.mappings.mappings.push(activeMapping); - } - const payload = MappingSerializer.serializeMappings(this.cfg); - if (await this.validateMappings(payload)) { - await this.cfg.fileService.setMappingToService(payload); - } - } - this.mappingUpdatedSource.next(); - this.notifyLineRefresh(); - resolve(true); - }); - } - - /** - * Update mode transition from a single mapping to multiple-mappings and back. - * - * @param mapping - * @param position - * @param offset - */ - private updateTransition(mapping: MappingModel): void { - if (mapping.transition.enableExpression) { - return; - } - - for (const field of mapping.getAllFields()) { - if (field.enumeration) { - mapping.transition.mode = TransitionMode.ENUM; - LookupTableUtil.populateMappingLookupTable(this.cfg.mappings!, mapping); // TODO: check this non null operator - return; - } - } - - const sourceMappedFields = mapping.getMappedFields(true); - const sourceMappedCollection = MappingUtil.hasMappedCollection( - mapping, - true - ); - const targetMappedFields = mapping.getMappedFields(false); - const targetMappedCollection = MappingUtil.hasMappedCollection( - mapping, - false - ); - - if (sourceMappedCollection && targetMappedCollection) { - mapping.transition.mode = TransitionMode.FOR_EACH; - return; - } - if (sourceMappedFields.length > 1 || sourceMappedCollection) { - mapping.transition.mode = TransitionMode.MANY_TO_ONE; - if ( - !mapping.transition.transitionFieldAction || - !mapping.transition.transitionFieldAction.definition || - mapping.transition.transitionFieldAction.definition.multiplicity !== - Multiplicity.MANY_TO_ONE - ) { - mapping.transition.transitionFieldAction = FieldAction.create( - this.cfg.fieldActionService.getActionDefinitionForName( - 'Concatenate', - Multiplicity.MANY_TO_ONE - )! - ); // TODO: check this non null operator - mapping.transition.transitionFieldAction.setArgumentValue( - 'delimiter', - ' ' - ); - mapping.transition.transitionFieldAction.setArgumentValue( - 'delimitingEmptyValues', - 'true' - ); - } - return; - } - if (targetMappedFields.length > 1 || targetMappedCollection) { - mapping.transition.mode = TransitionMode.ONE_TO_MANY; - if ( - !mapping.transition.transitionFieldAction || - mapping.transition.transitionFieldAction.definition?.multiplicity !== - Multiplicity.ONE_TO_MANY - ) { - mapping.transition.transitionFieldAction = FieldAction.create( - this.cfg.fieldActionService.getActionDefinitionForName( - 'Split', - Multiplicity.ONE_TO_MANY - )! - ); // TODO: check this non null operator - mapping.transition.transitionFieldAction.setArgumentValue( - 'delimiter', - ' ' - ); - mapping.transition.transitionFieldAction.setArgumentValue( - 'collapseRepeatingDelimiters', - 'false' - ); - } - return; - } - mapping.transition.mode = TransitionMode.ONE_TO_ONE; - mapping.transition.transitionFieldAction = null; - } - - /** - * Remove any trailing padding fields for the mapped field array. This occurs when a user moves - * a mapped element above the last padding field. - * - * @param mappedFields - * @param trailing - Remove trailing padding fields only - */ - private clearExtraPaddingFields( - mappedFields: MappedField[], - trailing: boolean - ): void { - let index = 0; - let mField = null; - - for (index = mappedFields.length - 1; index >= 0; index--) { - mField = mappedFields[index]; - if (mField.isPadField()) { - CommonUtil.removeItemFromArray(mField, mappedFields); - continue; - } - if (trailing) { - break; - } - } - } - - /** - * Get the enumeration values for the specified mapping and return it in - * the form of a lookup table. - * - * @param cfg - * @param mapping - */ - getEnumerationValues( - cfg: ConfigModel, - mapping: MappingModel - ): LookupTableData[] { - return LookupTableUtil.getEnumerationValues(cfg, mapping); - } - - /** - * Set the enumeration field value based on the specified enumeration value index. - * - * @param enumerationField - * @param enumerationValue - */ - setEnumFieldValue(enumerationField: Field, enumerationValue: number) { - enumerationField.enumIndexValue = enumerationValue; - } - - /** - * Update the enumeration values for the specified mapping with the specified - * enumeration values. - * - * @param cfg - * @param mapping - * @param enumerationValues - */ - updateEnumerationValues( - cfg: ConfigModel, - mapping: MappingModel, - enumerationValues: LookupTableData[] - ): void { - LookupTableUtil.updateEnumerationValues(cfg, mapping, enumerationValues); - this.notifyMappingUpdated(); - } - - /** - * Return true if the specified mapping is an enumeration mapping, false otherwise. - * - * @param mapping - */ - isEnumerationMapping(mapping: MappingModel): boolean { - return mapping.transition.mode === TransitionMode.ENUM; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.spec.ts b/packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.spec.ts deleted file mode 100644 index 01f578b0b..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.spec.ts +++ /dev/null @@ -1,84 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import ky, { Options } from 'ky'; -import { ConfigModel } from '../models'; -import { InitializationService } from './initialization.service'; -import { Input } from 'ky/distribution/types/options'; -import { MappingModel } from '../models/mapping.model'; -import { MappingPreviewService } from './mapping-preview.service'; -import { TestUtils } from '../../test/test-util'; - -describe('MappingPreviewService', () => { - let cfg: ConfigModel; - let service: MappingPreviewService; - - function setSourceFieldValues(mapping: MappingModel) { - let sourceFields = mapping.getFields(true); - for (let i in sourceFields) { - sourceFields[i].value = 'value-' + i; - } - } - - beforeEach(() => { - const initService = new InitializationService(ky); - initService.initialize(); - cfg = initService.cfg; - service = cfg.previewService; - }); - - test('{enable,disable}MappingPreview()', (done) => { - spyOn(cfg.mappingService, 'validateMappings').and.stub(); - const requests = []; - spyOn(ky, 'put').and.callFake((_url: Input, options: Options) => { - requests.push(options.json); - return new (class { - json(): Promise { - return Promise.resolve(options.json); - } - then(): Promise { - return Promise.resolve(options.json); - } - })(); - }); - TestUtils.createMockMappings(cfg); - service.cfg.initCfg.baseMappingServiceUrl = 'http://dummy/'; - const mapping1 = service.cfg.mappings!.mappings[1]; - setSourceFieldValues(mapping1); - cfg.mappingService.selectMapping(mapping1); - service.enableMappingPreview(); - expect(requests.length).toBe(0); - cfg.mappingService - .notifyMappingUpdated() - .then((value) => { - expect(value).toBeTruthy(); - expect(requests.length).toBe(1); - service.disableMappingPreview(); - cfg.mappingService - .notifyMappingUpdated() - .then((value2) => { - expect(value2).toBeTruthy(); - expect(requests.length).toBe(1); - done(); - }) - .catch((error) => { - fail(error); - }); - }) - .catch((error) => { - fail(error); - }); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.ts b/packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.ts deleted file mode 100644 index eb3d31471..000000000 --- a/packages/ui/src/_bk_atlasmap/core/services/mapping-preview.service.ts +++ /dev/null @@ -1,236 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ErrorInfo, -// ErrorType, -} from '../models/error.model'; -import { - IProcessMappingRequestContainer, -// IProcessMappingResponseContainer, - PROCESS_MAPPING_REQUEST_JSON_TYPE, -} from '../contracts/mapping-preview'; -import { Subject, Subscription } from 'rxjs'; -import { ConfigModel } from '../models/config.model'; -import { MappingModel } from '../models/mapping.model'; -import { MappingSerializer } from '../utils/mapping-serializer'; - -/** - * Manages Mapping Preview. - */ -export class MappingPreviewService { - cfg!: ConfigModel; - - mappingPreviewInputSource = new Subject(); - mappingPreviewInput$ = this.mappingPreviewInputSource.asObservable(); - mappingPreviewOutputSource = new Subject(); - mappingPreviewOutput$ = this.mappingPreviewOutputSource.asObservable(); - mappingPreviewErrorSource = new Subject(); - mappingPreviewError$ = this.mappingPreviewErrorSource.asObservable(); - - private mappingPreviewInputSubscription?: Subscription; - private mappingUpdatedSubscription?: Subscription; - - /** - * Enable Mapping Preview. - */ - enableMappingPreview(): void { - if (this.cfg.initCfg.baseMappingServiceUrl == null) { - // process mapping service not configured. - return; - } - this.cfg.showMappingPreview = true; - this.mappingPreviewInputSubscription = - this.createMappingPreviewSubscription(); - this.mappingUpdatedSubscription = this.createMappingUpdatedSubscription(); - } - - private createMappingPreviewSubscription(): Subscription { - return this.mappingPreviewInput$.subscribe((inputFieldMapping) => { - if (!inputFieldMapping || !inputFieldMapping.isFullyMapped()) { - return; - } - let hasValue = false; - for (const sourceField of inputFieldMapping.getFields(true)) { - if (sourceField.value) { - hasValue = true; - break; - } - } - if (!hasValue) { - for (const targetField of inputFieldMapping.getFields(false)) { - if (targetField.value) { - hasValue = true; - break; - } - } - } - if (!hasValue) { - return; - } - const payload = this.createPreviewRequestBody(inputFieldMapping); - this.cfg.logger!.debug( - `Process Mapping Preview Request: ${JSON.stringify(payload)}` - ); -// const url: string = - // this.cfg.initCfg.baseMappingServiceUrl + 'mapping/process'; - /* - this.api - .put(url, { json: payload }) - .json() - .then((body) => { - this.cfg.logger!.debug( - `Process Mapping Preview Response: ${JSON.stringify(body)}` - ); - this.processPreviewResponse(inputFieldMapping, body); - }) - .catch((error: any) => { - if ( - this.cfg.mappings && - this.cfg.mappings.activeMapping && - this.cfg.mappings.activeMapping === inputFieldMapping - ) { - this.cfg.errorService.addError( - new ErrorInfo({ - message: error, - level: ErrorLevel.ERROR, - mapping: inputFieldMapping, - scope: ErrorScope.MAPPING, - type: ErrorType.PREVIEW, - }) - ); - } - this.mappingPreviewErrorSource.next([ - new ErrorInfo({ message: error, level: ErrorLevel.ERROR }), - ]); - }); - - */ - }); - } - - private createPreviewRequestBody( - inputFieldMapping: MappingModel - ): IProcessMappingRequestContainer { - return { - ProcessMappingRequest: { - jsonType: PROCESS_MAPPING_REQUEST_JSON_TYPE, - mapping: MappingSerializer.serializeFieldMapping( - this.cfg, - inputFieldMapping, - 'preview', - false - ), - }, - }; - } - - /* - private processPreviewResponse( - inputFieldMapping: MappingModel, - body: IProcessMappingResponseContainer - ) { - const answer = MappingSerializer.deserializeFieldMapping( - body.ProcessMappingResponse.mapping, - this.cfg - ); - for (const toWrite of inputFieldMapping.targetFields) { - for (const toRead of answer.targetFields) { - // TODO: check these non null operator - if ( - toWrite.field?.docDef?.id === toRead.field?.docDef.id && - toWrite.field?.path === toRead.field?.path - ) { - // TODO let field component subscribe mappingPreviewOutputSource instead of doing this - // TODO: check this non null operator - toWrite.field!.value = toRead.mappingField?.value!; - const index = answer.targetFields.indexOf(toRead); - if (index !== -1) { - answer.targetFields.splice(index, 1); - break; - } - } - } - } - this.mappingPreviewOutputSource.next(answer); - const audits = MappingSerializer.deserializeAudits( - body.ProcessMappingResponse.audits, - ErrorType.PREVIEW - ); - // TODO: check this non null operator - if (this.cfg.mappings!.activeMapping === inputFieldMapping) { - audits.forEach((a) => (a.mapping = inputFieldMapping)); - this.cfg.errorService.addError(...audits); - } - this.mappingPreviewErrorSource.next(audits); - } - */ - - private createMappingUpdatedSubscription(): Subscription { - return this.cfg.mappingService.mappingUpdated$.subscribe(() => { - if (!this.cfg || !this.cfg.mappings || !this.cfg.mappings.activeMapping) { - return; - } - if (this.cfg.mappings.activeMapping.isFullyMapped()) { - this.mappingPreviewInputSource.next(this.cfg.mappings.activeMapping); - } - }); - } - - /** - * On mapping preview disable, clear any preview values and unsubscribe from - * both the mapping-updated and mapping-preview subscriptions. - */ - disableMappingPreview(): void { - let mappedValueCleared = false; - this.cfg.showMappingPreview = false; - - // Clear any preview values on mapping preview disable. - if (this.cfg.mappings?.activeMapping?.isFullyMapped()) { - for (const mapping of this.cfg.mappings.getAllMappings(true)) { - for (const mappedField of mapping.getAllFields()) { - if (mappedField.value?.length > 0 && !mappedField.isConstant()) { - mappedField.value = ''; - mappedValueCleared = true; - } - } - } - } - if (mappedValueCleared) { - this.cfg.mappingService.notifyMappingUpdated(); - } - if (this.mappingUpdatedSubscription) { - this.mappingUpdatedSubscription.unsubscribe(); - this.mappingUpdatedSubscription = undefined; - } - if (this.mappingPreviewInputSubscription) { - this.mappingPreviewInputSubscription.unsubscribe(); - this.mappingPreviewInputSubscription = undefined; - } - } - - /** - * Toggle Mapping Preview. - * @param enabled - */ - toggleMappingPreview(enabled: boolean) { - if (enabled) { - this.enableMappingPreview(); - } else { - this.disableMappingPreview(); - } - return enabled; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/utils/common-util.spec.ts b/packages/ui/src/_bk_atlasmap/core/utils/common-util.spec.ts deleted file mode 100644 index e6d07bc94..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/common-util.spec.ts +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { CommonUtil } from './common-util'; -import { Field } from '../models/field.model'; - -describe('CommonUtil', () => { - test('removeItemFromArray', () => { - const items = [{ foo0: 'bar0' }, { foo1: 'bar1' }, { foo2: 'bar2' }]; - const item = items[1]; - const itemsRemoved = [{ foo0: 'bar0' }, { foo2: 'bar2' }]; - const removed = CommonUtil.removeItemFromArray(item, items); - expect(removed).toBe(true); - expect(items).toEqual(itemsRemoved); - }); - - test('sanitizeJSON()', () => { - const buffer = '{}\u007F\uFFFF'; - const sanitized = CommonUtil.sanitizeJSON(buffer); - expect(sanitized).toBe('"{}\\u007f\\uffff"'); - }); - - test('objectize()', () => { - const objectized = CommonUtil.objectize('{"string": "test"}'); - expect(objectized.string).toBe('test'); - const f = new Field(); - f.name = 'dummy'; - const noop = CommonUtil.objectize(f); - expect(noop).toBe(f); - }); - - test('urlWithParameters', () => { - expect(CommonUtil.urlWithParameters('url:', {})).toBe('url:'); - expect(CommonUtil.urlWithParameters('url:', { a: '1' })).toBe('url:?a=1'); - expect(CommonUtil.urlWithParameters('url:?a=1', { b: '2' })).toBe( - 'url:?b=2' - ); - expect( - CommonUtil.urlWithParameters('url:?a=1&b=2', { b: '2', c: '3' }) - ).toBe('url:?b=2&c=3'); - expect(CommonUtil.urlWithParameters('url:?a=1&b=2', {})).toBe('url:'); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/utils/common-util.ts b/packages/ui/src/_bk_atlasmap/core/utils/common-util.ts deleted file mode 100644 index 28fad728f..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/common-util.ts +++ /dev/null @@ -1,229 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { saveAs } from 'file-saver'; - -export class CommonUtil { - static removeItemFromArray(item: any, items: any[]): boolean { - if (item == null || items == null || items.length === 0) { - return false; - } - let i = 0; - let itemWasRemoved = false; - while (i < items.length) { - if (items[i] === item) { - items.splice(i, 1); - itemWasRemoved = true; - } else { - i++; - } - } - return itemWasRemoved; - } - - /** - * Split a source string by the specified substring into a string array. - * - * @param inStr - * @param splitMarker - */ - static splitByString(inStr: string, splitMarker: string): string[] { - let splitLoc = 0; - let splitLocEnd = 0; - let fragment = null; - const splitMarkerLen = splitMarker.length; - const result: string[] = []; - - if ( - inStr === null || - inStr.length === 0 || - splitMarker === null || - splitMarkerLen === 0 - ) { - return []; - } - while (splitLoc !== -1) { - splitLoc = inStr.indexOf(splitMarker); - splitLocEnd = inStr.indexOf(splitMarker, splitLoc + 1); - fragment = inStr.substring(splitLoc, splitLocEnd); - result.push(fragment); - inStr = inStr.substring(splitLocEnd + splitMarkerLen); - } - return result; - } - - /** - * Turn a string into a byte array. - * - * @param str - */ - static str2bytes(str: string): Uint8Array { - const bytes = new Uint8Array(str.length); - for (let i = 0; i < str.length; i++) { - bytes[i] = str.charCodeAt(i); - } - return bytes; - } - - /** - * Asynchronously read from the specified file and return as a string. - * - * @param fileName - * @param reader - */ - static async readFile(file: File, reader: FileReader): Promise { - return new Promise((resolve) => { - reader.onload = () => { - const fileBody = reader.result; - resolve(fileBody as string); - }; - reader.readAsText(file); - }); - } - - /** - * Perform an asynchronous binary read of the specified file name with the specified reader object. - * - * @param fileName - file to read - * @param reader - reader object - */ - static async readBinaryFile( - file: File, - reader: FileReader - ): Promise { - return new Promise((resolve) => { - reader.onload = () => { - const fileBody = new Int8Array(reader.result as ArrayBuffer); - resolve(fileBody); - }; - reader.readAsArrayBuffer(file); - }); - } - - /** - * Asynchronously write the specified file content (Blob) to the specified file name. It will appear - * in the user's local Downloads directory (or equivalent). - * - * @param fileContent - * @param fName - */ - static async writeFile(fileContent: Blob, fName: string): Promise { - return new Promise((resolve) => { - saveAs(fileContent, fName); - resolve(true); - }); - } - - /** - * Convert a camel-case string into human-readable form. - * - * @param camelCaseString - */ - static toDisplayable(camelCaseString: string): string { - if ( - typeof camelCaseString === 'undefined' || - !camelCaseString || - camelCaseString.indexOf(' ') >= 0 - ) { - return camelCaseString; - } - let displayableString: string = camelCaseString.charAt(0).toUpperCase(); - for (let index = 1; index < camelCaseString.length; index++) { - const chr: string = camelCaseString.charAt(index); - if (chr !== chr.toLowerCase()) { - displayableString += ' '; - } - displayableString += chr; - } - return displayableString; - } - - /** - * Return a string path that fits into the width provided. Capture as much of the leaf - * as possible, then as much of the beginning with the remaining space. - * - * @param path - * @param fieldWidth - */ - static extractDisplayPath(path: string, fieldWidth: number): string { - const MAX_PATH_WIDTH = fieldWidth - 4; // account for length of ellipsis - - if (!path || MAX_PATH_WIDTH <= 0) { - return ''; - } - if (path.length <= MAX_PATH_WIDTH) { - return path; - } - const segmentedPath = path.split('/'); - const leaf = '/' + segmentedPath[segmentedPath.length - 1]; - if (leaf.length >= MAX_PATH_WIDTH) { - return leaf.substr(0, MAX_PATH_WIDTH); - } - const delta = MAX_PATH_WIDTH - leaf.length; - return path.substr(0, delta) + '...' + leaf; - } - - /** - * Use the JSON utility to translate the specified buffer into a JSON buffer - then replace any - * non-ascii character encodings with unicode escape sequences. - * - * @param buffer - */ - static sanitizeJSON(buffer: string): string { - let jsonBuffer = JSON.stringify(buffer); - jsonBuffer = jsonBuffer.replace(/[\u007F-\uFFFF]/g, function (chr) { - return '\\u' + ('0000' + chr.charCodeAt(0).toString(16)).substr(-4); - }); - return jsonBuffer; - } - - /** - * Restrict JSON parsing to the document management service. - * - * @param buffer - */ - static objectize(buffer: any): any { - if (typeof buffer === 'string') { - return JSON.parse(buffer); - } else { - return buffer; - } - } - - /** - * Returns the given URL with the query parameters replaced with the new - * values. - * - * @param url - the URL - * @param parameters - the new parameters to set - */ - static urlWithParameters( - url: string, - parameters: string[][] | Record | string | URLSearchParams - ): string { - const newUrl = new URL(url); - // we can't invoke delete in a loop over uri.searchParams, results - // become unreliable, so we gather the keys for deletion, also the - // URLSearchParams.keys() method is not available for some reason - const keys: string[] = []; - newUrl.searchParams.forEach((_, k) => keys.push(k)); - keys.forEach((k) => newUrl.searchParams.delete(k)); - - const params = new URLSearchParams(parameters); - params.forEach((v, k) => newUrl.searchParams.append(k, v)); - - return newUrl.toString(); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/utils/document-inspection-util.ts b/packages/ui/src/_bk_atlasmap/core/utils/document-inspection-util.ts deleted file mode 100644 index bbf918dfb..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/document-inspection-util.ts +++ /dev/null @@ -1,182 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - CollectionType, - DocumentType, - InspectionType, -} from '../contracts/common'; -import { - ConfigModel, - DocumentInitializationModel, -} from '../models/config.model'; - -import { CommonUtil } from './common-util'; -import { CsvInspectionModel } from '../models/inspect/csv-inspection.model'; -import { DocumentDefinition } from '../models/document-definition.model'; -import { DocumentInspectionModel } from '../models/inspect/document-inspection.model'; -import { JavaInspectionModel } from '../models/inspect/java-inspection.model'; -import { JsonInspectionModel } from '../models/inspect/json-inspection.model'; -import { XmlInspectionModel } from '../models/inspect/xml-inspection.model'; - -export class DocumentInspectionUtil { - /** - * Create one of the subclass of {@link DocumentInspectionModel} which - * corresponds to the existing {@link DocumentDefinition} passed in as an argument. - * @see fromNonJavaProperties() - * @see fromJavaProperties() - * - * @param cfg - * @param doc - * @returns - */ - static fromDocumentDefinition( - cfg: ConfigModel, - doc: DocumentDefinition - ): DocumentInspectionModel { - switch (doc.type) { - case DocumentType.JAVA: - return new JavaInspectionModel(cfg, doc); - case DocumentType.JSON: - return new JsonInspectionModel(cfg, doc); - case DocumentType.XSD: - case DocumentType.XML: - return new XmlInspectionModel(cfg, doc); - case DocumentType.CSV: - return new CsvInspectionModel(cfg, doc); - default: - throw new Error( - `Document type '${doc.type}' is not supported for inspection` - ); - } - } - - /** - * Create {@link JavaInspectionModel} from arguments and add corresponding - * {@link DocumentDefinition} into {@link ConfigModel}. - * @see fromDocumentDefinition() - * @see fromNonJavaProperties() - * @todo https://github.com/atlasmap/atlasmap/issues/2919 - * Assign GUID to Java Document ID as well, and use simple class name for default Document name - * - * @param cfg - * @param className - * @param isSource - * @param collectionType - * @param collectionClassName - * @returns - */ - static fromJavaProperties( - cfg: ConfigModel, - className: string, - isSource: boolean, - collectionType = CollectionType.NONE, - collectionClassName?: string - ): JavaInspectionModel { - const model: DocumentInitializationModel = - new DocumentInitializationModel(); - model.id = className; - const simpleName = className.split('.').pop(); - model.name = simpleName ? simpleName : ''; - model.type = DocumentType.JAVA; - model.inspectionType = InspectionType.JAVA_CLASS; - model.inspectionSource = className; - model.inspectionParameters = { '': '' }; - model.isSource = isSource; - model.collectionType = collectionType; - model.collectionClassName = collectionClassName; - model.description = 'Java document class ' + className; - if (collectionType && collectionType !== CollectionType.NONE) { - model.description += ' collection type: ' + collectionType; - if (collectionClassName) { - model.description += ' collection class name: ' + collectionClassName; - } - } - DocumentInspectionUtil.removeDocumentIfAlreadyExists( - cfg, - model.id, - isSource - ); - const doc = cfg.addDocument(model); - return new JavaInspectionModel(cfg, doc); - } - - /** - * Create one of the subclass of {@link DocumentInspectionModel} - * other than Java from arguments and add corresponding - * {@link DocumentDefinition} into {@link ConfigModel}.. - * @see fromDocumentDefinition() - * @see fromJavaProperties() - * - * @param cfg - * @param id - * @param name - * @param documentType - * @param inspectionType - * @param inspectionSource - * @param isSource - * @param inspectionParameters - * @returns - */ - static fromNonJavaProperties( - cfg: ConfigModel, - id: string, - name: string, - documentType: DocumentType, - inspectionType: InspectionType, - inspectionSource: string, - isSource: boolean, - inspectionParameters?: { [key: string]: string } - ): DocumentInspectionModel { - const model: DocumentInitializationModel = - new DocumentInitializationModel(); - model.name = name; - model.id = id; - model.type = documentType; - model.inspectionType = inspectionType; - model.inspectionSource = inspectionSource; - if (inspectionParameters) { - model.inspectionParameters = inspectionParameters; - } else { - model.inspectionParameters = { '': '' }; - } - model.isSource = isSource; - model.description = isSource ? 'Source document ' : 'Target document '; - model.description += name + ' type: ' + documentType; - DocumentInspectionUtil.removeDocumentIfAlreadyExists( - cfg, - model.id, - isSource - ); - const doc = cfg.addDocument(model); - return this.fromDocumentDefinition(cfg, doc); - } - - private static removeDocumentIfAlreadyExists( - cfg: ConfigModel, - id: string, - isSource: boolean - ) { - // Clear out the existing document if importing the same name. - const existing = cfg.getDocForIdentifier(id, isSource); - if (existing) { - if (isSource) { - CommonUtil.removeItemFromArray(existing, cfg.sourceDocs); - } else { - CommonUtil.removeItemFromArray(existing, cfg.targetDocs); - } - } - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/utils/guid.ts b/packages/ui/src/_bk_atlasmap/core/utils/guid.ts deleted file mode 100644 index 8ddcfa4c0..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/guid.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -/* - Generate a global unique identifier. - Ref: https://stackoverflow.com/questions/26501688/a-typescript-guid-class -*/ -export class Guid { - static newGuid() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace( - /[xy]/g, - function (c) { - var r = (Math.random() * 16) | 0, - v = c === 'x' ? r : (r & 0x3) | 0x8; - return v.toString(16); - } - ); - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/utils/index.ts b/packages/ui/src/_bk_atlasmap/core/utils/index.ts deleted file mode 100644 index 78b4a4cfd..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './common-util'; -export * from './document-inspection-util'; -export * from './guid'; -export * from './lookup-table-util'; -export * from './mapping-digest-util'; -export * from './mapping-serializer'; -export * from './mapping-util'; diff --git a/packages/ui/src/_bk_atlasmap/core/utils/lookup-table-util.ts b/packages/ui/src/_bk_atlasmap/core/utils/lookup-table-util.ts deleted file mode 100644 index 4e47c6aec..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/lookup-table-util.ts +++ /dev/null @@ -1,200 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ErrorInfo, ErrorScope, ErrorType } from '../models/error.model'; -import { LookupTable, LookupTableEntry } from '../models/lookup-table.model'; - -import { ConfigModel } from '../models/config.model'; -import { Field } from '../models/field.model'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { MappingModel } from '../models/mapping.model'; -import { TransitionMode } from '../models/transition.model'; - -const EnumerationUnspecified = '[ None ]'; - -/** - * Lookup table structure. - */ -export class LookupTableData { - sourceEnumValue: string; - targetEnumValues: string[]; - selectedTargetEnumValue: string; -} - -/** - * Static lookup table utility methods. - */ -export class LookupTableUtil { - static populateMappingLookupTable( - mappingDefinition: MappingDefinition, - m: MappingModel - ): void { - if ( - !( - m.transition.mode === TransitionMode.ENUM && - !m.transition.lookupTableName && - m.getFields(true).length === 1 && - m.getFields(false).length === 1 - ) - ) { - return; - } - let inputIdentifier: string | undefined; - let outputIdentifier: string | undefined; - - const inputField: Field = m.getFields(true)[0]; - if (inputField) { - inputIdentifier = inputField.name + '-' + inputField.docDef.id; - } - const outputField: Field = m.getFields(true)[0]; - if (outputField) { - outputIdentifier = outputField.name + '-' + outputField.docDef.id; - } - if (inputIdentifier && outputIdentifier) { - let table: LookupTable = mappingDefinition.getTableBySourceTarget( - inputIdentifier, - outputIdentifier - ); - if (!table) { - table = new LookupTable(); - table.sourceIdentifier = inputIdentifier; - table.targetIdentifier = outputIdentifier; - mappingDefinition.addTable(table); - m.transition.lookupTableName = table.name; - } else { - m.transition.lookupTableName = table.name; - } - } - } - - static updateLookupTables(mappingDefinition: MappingDefinition) { - for (const t of mappingDefinition.getTables()) { - if (t.sourceIdentifier && t.targetIdentifier) { - continue; - } - const m: MappingModel = LookupTableUtil.getFirstMappingForLookupTable( - mappingDefinition, - t.name - ); - if (m && m.transition.lookupTableName) { - if (!t.sourceIdentifier) { - const inputField: Field = m.getFields(true)[0]; - if (inputField) { - t.sourceIdentifier = inputField.classIdentifier; - } - } - if (!t.targetIdentifier) { - const outputField: Field = m.getFields(false)[0]; - if (outputField) { - t.targetIdentifier = outputField.classIdentifier; - } - } - } - } - for (const m of mappingDefinition.mappings) { - LookupTableUtil.populateMappingLookupTable(mappingDefinition, m); - } - } - - private static getFirstMappingForLookupTable( - mappingDefinition: MappingDefinition, - lookupTableName: string - ): MappingModel { - // TODO: check this non null operator - return mappingDefinition.mappings.find( - (m) => m.transition.lookupTableName === lookupTableName - )!; - } - - private static errorNoTable(cfg: ConfigModel, mapping: MappingModel) { - cfg.errorService.addError( - new ErrorInfo({ - message: - 'Could not find enumeration lookup table ' + - mapping.transition?.lookupTableName + - ' for mapping.', - scope: ErrorScope.MAPPING, - type: ErrorType.INTERNAL, - mapping: mapping, - }) - ); - } - - static getEnumerationValues( - cfg: ConfigModel, - mapping: MappingModel - ): LookupTableData[] { - if (!cfg || !cfg.mappings || !mapping) { - return []; - } - const targetField: Field = mapping.getFields(false)[0]; - const targetValues: string[] = []; - targetValues.push('[ None ]'); - for (const e of targetField.enumValues) { - targetValues.push(e.name); - } - - const table = cfg.mappings.getTableByName( - mapping.transition?.lookupTableName! - ); - if (!table) { - LookupTableUtil.errorNoTable(cfg, mapping); - return []; - } - - const enumVals: LookupTableData[] = []; - const sourceField: Field = mapping.getFields(true)[0]; - for (const sourceEnum of sourceField.enumValues) { - const tableData: LookupTableData = new LookupTableData(); - tableData.sourceEnumValue = sourceEnum.name; - tableData.targetEnumValues = targetValues; - const selected: LookupTableEntry | null = table.getEntryForSource( - tableData.sourceEnumValue, - false - ); - tableData.selectedTargetEnumValue = - selected == null ? EnumerationUnspecified : selected.targetValue; - enumVals.push(tableData); - } - return enumVals; - } - - static updateEnumerationValues( - cfg: ConfigModel, - mapping: MappingModel, - enumerationValues: LookupTableData[] - ) { - if (!cfg || !cfg.mappings || !mapping) { - return; - } - const table = cfg.mappings.getTableByName( - mapping.transition?.lookupTableName! - ); - if (!table) { - LookupTableUtil.errorNoTable(cfg, mapping); - return; - } - table.lookupEntry = []; - for (const enumValue of enumerationValues) { - if (enumValue.selectedTargetEnumValue === EnumerationUnspecified) { - continue; - } - const lte: LookupTableEntry = new LookupTableEntry(); - lte.sourceValue = enumValue.sourceEnumValue; - lte.targetValue = enumValue.selectedTargetEnumValue; - table.lookupEntry.push(lte); - } - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.spec.ts b/packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.spec.ts deleted file mode 100644 index 16c65495d..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.spec.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { ConfigModel } from '../models'; -import { MappingDigestUtil } from './mapping-digest-util'; - -describe('MappingDigestUtil', () => { - test('generateExportBlockData()', () => { - expect( - MappingDigestUtil.generateMappingDigest(ConfigModel.getConfig(), {}) - ).toBeTruthy(); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.ts b/packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.ts deleted file mode 100644 index ad3308f48..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/mapping-digest-util.ts +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ADMDigest } from '../contracts/adm-digest'; -import { CommonUtil } from './common-util'; -import { ConfigModel } from '../models/config.model'; - -export class MappingDigestUtil { - static generateMappingDigest(cfg: ConfigModel, mappingJson: any): ADMDigest { - let mappingDigest: ADMDigest = { - exportMappings: { value: '' }, - exportMeta: [], - exportBlockData: [], - }; - - // Retrieve the JSON mappings buffer from the server. - const jsonBuffer = JSON.stringify(mappingJson); - if (jsonBuffer) { - mappingDigest.exportMappings.value = CommonUtil.sanitizeJSON(jsonBuffer); - } - - for (const doc of cfg.getAllDocs()) { - if (!doc.isPropertyOrConstant) { - mappingDigest.exportMeta.push({ - name: doc.name, - dataSourceType: doc.type, - id: doc.id, - inspectionType: doc.inspectionType, - inspectionParameters: doc.inspectionParameters, - isSource: doc.isSource, - }); - mappingDigest.exportBlockData.push({ value: doc.inspectionSource }); - } - } - return mappingDigest; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.spec.ts b/packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.spec.ts deleted file mode 100644 index 5a26b827e..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.spec.ts +++ /dev/null @@ -1,1195 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ConfigModel, - DocumentInitializationModel, -} from '../models/config.model'; -import { - DocumentDefinition, - NamespaceModel, -} from '../models/document-definition.model'; -import { - DocumentType, - FieldStatus, - FieldType, - InspectionType, -} from '../contracts/common'; -import { IAtlasMappingContainer, IMapping } from '../contracts/mapping'; - -import { CsvInspectionModel } from '../models/inspect/csv-inspection.model'; -import { DocumentInspectionUtil } from './document-inspection-util'; -import { ExpressionModel } from '../models/expression.model'; -import { Field } from '../models/field.model'; -import { FieldAction } from '../models/field-action.model'; -import { InitializationService } from '../services'; -import { LookupTable } from '../models/lookup-table.model'; -import { LookupTableUtil } from './lookup-table-util'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { MappingModel } from '../models/mapping.model'; -import { MappingSerializer } from '../utils/mapping-serializer'; -import { MappingUtil } from '../utils/mapping-util'; -import { Multiplicity } from '../contracts/field-action'; -import { TestUtils } from '../../test/test-util'; -import { TransitionMode } from '../models/transition.model'; - -import atlasMappingCSV from '../../../../test-resources/mapping/atlasmapping-csv.json'; -import atlasMappingCollExprMapping from '../../../../test-resources/mapping/atlasmapping-coll-expr-mapping.json'; -import atlasMappingCollExprPreview from '../../../../test-resources/mapping/atlasmapping-coll-expr-preview.json'; -import atlasMappingCollRefExprPreview from '../../../../test-resources/mapping/atlasmapping-coll-ref-expr-preview.json'; -import atlasMappingEnumLookupTableMapping from '../../../../test-resources/mapping/atlasmapping-enum-lookup-table.json'; -import atlasMappingExprPropJson from '../../../../test-resources/mapping/atlasmapping-expr-prop.json'; -import atlasMappingSplitCollapseJson from '../../../../test-resources/mapping/atlasmapping-split-collapse.json'; -import atlasMappingSplitJson from '../../../../test-resources/mapping/atlasmapping-split.json'; -import atlasMappingTestJson from '../../../../test-resources/mapping/atlasmapping-test.json'; -import atlasmapFieldActionJson from '../../../../test-resources/fieldActions/atlasmap-field-action.json'; - -import ky from 'ky'; - -function createTwitter4jSourceDoc() { - const twitter = new DocumentDefinition(); - twitter.type = DocumentType.JAVA; - twitter.name = 'twitter4j.Status'; - twitter.isSource = true; - twitter.id = 'twitter4j.Status'; - twitter.uri = 'atlas:java?className=twitter4j.Status'; - twitter.description = 'random desc'; - const user = new Field(); - user.name = 'User'; - user.path = '/User'; - user.type = FieldType.COMPLEX; - twitter.addField(user); - const userName = new Field(); - userName.name = 'Name'; - userName.path = '/User/Name'; - userName.type = FieldType.STRING; - userName.parentField = user; - twitter.addField(userName); - const userScreenName = new Field(); - userScreenName.name = 'ScreenName'; - userScreenName.path = '/User/ScreenName'; - userScreenName.type = FieldType.STRING; - userScreenName.parentField = user; - twitter.addField(userScreenName); - const text = new Field(); - text.name = 'Text'; - text.path = '/Text'; - text.type = FieldType.STRING; - twitter.addField(text); - twitter.initializeFromFields(); - return twitter; -} - -function createSomeJsonSourceSourceDoc() { - const jsonSource = new DocumentDefinition(); - jsonSource.type = DocumentType.JSON; - jsonSource.name = 'SomeJsonSource'; - jsonSource.isSource = true; - jsonSource.id = 'SomeJsonSource'; - jsonSource.uri = 'atlas:json:SomeJsonSource'; - jsonSource.description = 'random desc'; - const js0 = new Field(); - js0.name = 'js0'; - js0.docDef = jsonSource; - js0.path = '/js0'; - js0.type = FieldType.STRING; - jsonSource.addField(js0); - const js1 = new Field(); - js1.name = 'js1'; - js1.docDef = jsonSource; - js1.path = '/js1'; - js1.type = FieldType.STRING; - jsonSource.addField(js1); - jsonSource.initializeFromFields(); - return jsonSource; -} - -function createPrimitivesField() { - const primitives = new Field(); - primitives.name = 'primitives'; - primitives.path = '/primitives'; - primitives.type = FieldType.COMPLEX; - primitives.documentField.status = FieldStatus.SUPPORTED; - return primitives; -} - -function createJSONSchemaSourceSourceDoc() { - const jsonSchemaSource = new DocumentDefinition(); - jsonSchemaSource.type = DocumentType.JSON; - jsonSchemaSource.name = 'JSONSchemaSource'; - jsonSchemaSource.isSource = true; - jsonSchemaSource.id = 'JSONSchemaSource'; - jsonSchemaSource.uri = 'atlas:json:JSONSchemaSource'; - jsonSchemaSource.description = 'random desc'; - const jc0 = new Field(); - jc0.name = 'addressList'; - jc0.docDef = jsonSchemaSource; - jc0.path = '/addressList<>'; - jc0.type = FieldType.COMPLEX; - jc0.isCollection = true; - jc0.documentField.status = FieldStatus.SUPPORTED; - jsonSchemaSource.addField(jc0); - const jcc0 = new Field(); - jcc0.name = 'city'; - jcc0.docDef = jsonSchemaSource; - jcc0.path = '/addressList<>/city'; - jcc0.type = FieldType.STRING; - jcc0.isPrimitive = true; - jcc0.parentField = jc0; - jc0.children.push(jcc0); - jsonSchemaSource.addField(jcc0); - const jcc1 = new Field(); - jcc1.name = 'state'; - jcc1.docDef = jsonSchemaSource; - jcc1.path = '/addressList<>/state'; - jcc1.type = FieldType.STRING; - jcc1.isPrimitive = true; - jcc1.parentField = jc0; - jc0.children.push(jcc1); - jsonSchemaSource.addField(jcc1); - const jcc2 = new Field(); - jcc2.name = 'street'; - jcc2.docDef = jsonSchemaSource; - jcc2.path = '/addressList<>/street'; - jcc2.type = FieldType.STRING; - jcc2.isPrimitive = true; - jcc2.parentField = jc0; - jc0.children.push(jcc2); - jsonSchemaSource.addField(jcc2); - const jcc3 = new Field(); - jcc3.name = 'zip'; - jcc3.docDef = jsonSchemaSource; - jcc3.path = '/addressList<>/zip'; - jcc3.type = FieldType.STRING; - jcc3.isPrimitive = true; - jcc3.parentField = jc0; - jc0.children.push(jcc3); - jsonSchemaSource.addField(jcc3); - const primitives = createPrimitivesField(); - jsonSchemaSource.addField(primitives); - const stringPrimitive = new Field(); - stringPrimitive.name = 'stringPrimitive'; - stringPrimitive.docDef = jsonSchemaSource; - stringPrimitive.path = '/primitives/stringPrimitive'; - stringPrimitive.type = FieldType.STRING; - stringPrimitive.isPrimitive = true; - stringPrimitive.parentField = primitives; - primitives.children.push(stringPrimitive); - jsonSchemaSource.addField(stringPrimitive); - jsonSchemaSource.initializeFromFields(); - return jsonSchemaSource; -} - -function createSomeXmlSourceSourceDoc() { - const xmlSource = new DocumentDefinition(); - xmlSource.type = DocumentType.XML; - xmlSource.name = 'SomeXmlSource'; - xmlSource.isSource = true; - xmlSource.id = 'SomeXmlSource'; - xmlSource.uri = 'atlas:xml:SomeXmlSource'; - xmlSource.description = 'random desc'; - const xs0 = new Field(); - xs0.name = 'xs0'; - xs0.docDef = xmlSource; - xs0.path = '/xs0'; - xs0.type = FieldType.STRING; - xmlSource.addField(xs0); - const xs1 = new Field(); - xs1.name = 'xs1'; - xs1.docDef = xmlSource; - xs1.path = '/xs1'; - xs1.type = FieldType.STRING; - xmlSource.addField(xs1); - xmlSource.initializeFromFields(); - return xmlSource; -} - -function createSalesforceContactTargetDoc() { - const contact = new DocumentDefinition(); - contact.type = DocumentType.JAVA; - contact.name = 'salesforce.Contact'; - contact.isSource = false; - contact.id = 'salesforce.Contact'; - contact.uri = 'atlas:java?className=org.apache.camel.salesforce.dto.Contact'; - contact.description = 'random desc'; - const desc = new Field(); - desc.name = 'Description'; - desc.docDef = contact; - desc.path = '/Description'; - desc.type = FieldType.STRING; - contact.addField(desc); - const title = new Field(); - title.name = 'Title'; - title.docDef = contact; - title.path = '/Title'; - title.type = FieldType.STRING; - contact.addField(title); - const firstName = new Field(); - firstName.name = 'FirstName'; - firstName.docDef = contact; - firstName.path = '/FirstName'; - firstName.type = FieldType.STRING; - contact.addField(firstName); - const lastName = new Field(); - lastName.name = 'LastName'; - lastName.docDef = contact; - lastName.path = '/LastName'; - lastName.type = FieldType.STRING; - contact.addField(lastName); - contact.initializeFromFields(); - return contact; -} - -function createSomeJsonTargetTargetDoc() { - const jsonTarget = new DocumentDefinition(); - jsonTarget.type = DocumentType.JSON; - jsonTarget.name = 'SomeJsonTarget'; - jsonTarget.isSource = false; - jsonTarget.id = 'SomeJsonTarget'; - jsonTarget.uri = 'atlas:json:SomeJsonTarget'; - jsonTarget.description = 'random desc'; - const jt0 = new Field(); - jt0.name = 'jt0'; - jt0.docDef = jsonTarget; - jt0.path = '/jt0'; - jt0.type = FieldType.STRING; - jsonTarget.addField(jt0); - const jt1 = new Field(); - jt1.name = 'jt1'; - jt1.docDef = jsonTarget; - jt1.path = '/jt1'; - jt1.type = FieldType.STRING; - jsonTarget.addField(jt1); - jsonTarget.initializeFromFields(); - return jsonTarget; -} - -function createJSONSchemaSourceTargetDoc() { - const jsonSchemaSource = new DocumentDefinition(); - jsonSchemaSource.type = DocumentType.JSON; - jsonSchemaSource.name = 'JSONSchemaSource'; - jsonSchemaSource.isSource = false; - jsonSchemaSource.id = 'JSONSchemaSource'; - jsonSchemaSource.uri = 'atlas:json:JSONSchemaSource'; - jsonSchemaSource.description = 'random desc'; - const jtc0 = new Field(); - jtc0.name = 'addressList'; - jtc0.docDef = jsonSchemaSource; - jtc0.path = '/addressList<>'; - jtc0.type = FieldType.COMPLEX; - jtc0.isCollection = true; - jtc0.documentField.status = FieldStatus.SUPPORTED; - jsonSchemaSource.addField(jtc0); - const jtcc0 = new Field(); - jtcc0.name = 'city'; - jtcc0.docDef = jsonSchemaSource; - jtcc0.path = '/addressList<>/city'; - jtcc0.type = FieldType.STRING; - jtcc0.isPrimitive = true; - jtcc0.parentField = jtc0; - jtc0.children.push(jtcc0); - jsonSchemaSource.addField(jtcc0); - const jtcc1 = new Field(); - jtcc1.name = 'zip'; - jtcc1.docDef = jsonSchemaSource; - jtcc1.path = '/addressList<>/zip'; - jtcc1.type = FieldType.STRING; - jtcc1.isPrimitive = true; - jtcc1.parentField = jtc0; - jtc0.children.push(jtcc1); - jsonSchemaSource.addField(jtcc1); - const tprimitives = new Field(); - tprimitives.name = 'primitives'; - tprimitives.docDef = jsonSchemaSource; - tprimitives.path = '/primitives'; - tprimitives.type = FieldType.COMPLEX; - tprimitives.documentField.status = FieldStatus.SUPPORTED; - jsonSchemaSource.addField(tprimitives); - const tstringPrimitive = new Field(); - tstringPrimitive.name = 'stringPrimitive'; - tstringPrimitive.docDef = jsonSchemaSource; - tstringPrimitive.path = '/primitives/stringPrimitive'; - tstringPrimitive.type = FieldType.STRING; - tstringPrimitive.isPrimitive = true; - tstringPrimitive.parentField = createPrimitivesField(); - tprimitives.children.push(tstringPrimitive); - jsonSchemaSource.addField(tstringPrimitive); - jsonSchemaSource.initializeFromFields(); - return jsonSchemaSource; -} - -function createXMLInstanceSourceTargetDoc() { - const xmlTarget = new DocumentDefinition(); - xmlTarget.type = DocumentType.XML; - xmlTarget.name = 'XMLInstanceSource'; - xmlTarget.isSource = false; - xmlTarget.id = 'XMLInstanceSource'; - xmlTarget.uri = 'atlas:xml:XMLInstanceSource'; - xmlTarget.description = 'random desc'; - const ns: NamespaceModel = new NamespaceModel(); - ns.alias = 'xsi'; - ns.uri = 'http://www.w3.org/2001/XMLSchema-instance'; - ns.locationUri = 'http://www.w3.org/2001/XMLSchema-instance'; - ns.isTarget = true; - xmlTarget.namespaces.push(ns); - const xt0 = new Field(); - xt0.name = 'xt0'; - xt0.path = '/xt0'; - xt0.type = FieldType.STRING; - xmlTarget.addField(xt0); - const xt1 = new Field(); - xt1.name = 'xt1'; - xt1.path = '/xt1'; - xt1.type = FieldType.STRING; - xmlTarget.addField(xt1); - const xt2 = new Field(); - xt2.name = 'xt2'; - xt2.path = '/xt2'; - xt2.type = FieldType.STRING; - xmlTarget.addField(xt2); - xmlTarget.initializeFromFields(); - return xmlTarget; -} - -function createAllDocs(cfg: ConfigModel) { - // Source Java doc - cfg.sourceDocs.push(createTwitter4jSourceDoc()); - // Source JSON doc - cfg.sourceDocs.push(createSomeJsonSourceSourceDoc()); - // Source JSON doc - collection - cfg.sourceDocs.push(createJSONSchemaSourceSourceDoc()); - // Source XML doc - cfg.sourceDocs.push(createSomeXmlSourceSourceDoc()); - // Target Java doc - cfg.targetDocs.push(createSalesforceContactTargetDoc()); - // Target JSON doc - cfg.targetDocs.push(createSomeJsonTargetTargetDoc()); - // Target JSON doc - collection - cfg.targetDocs.push(createJSONSchemaSourceTargetDoc()); - // Target XML Namespace doc - cfg.targetDocs.push(createXMLInstanceSourceTargetDoc()); -} - -describe('MappingSerializer', () => { - let cfg: ConfigModel; - let tName = ''; - beforeEach(() => { - const init = new InitializationService(ky); - init.initialize(); - cfg = init.cfg; - cfg.mappings = new MappingDefinition(); - }); - - tName = 'deserialize & serialize mapping definition'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - const mappingJson = atlasMappingTestJson as IAtlasMappingContainer; - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - expect(cfg?.mappings?.mappings?.length).toEqual( - Object.keys( - mappingJson?.AtlasMapping?.mappings?.mapping as IMapping[] - ).length - ); - - const serialized = MappingSerializer.serializeMappings(cfg); - //console.log(JSON.stringify(serialized, null, 2)); - expect( - Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) - .length - ).toEqual(cfg?.mappings?.mappings?.length); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'deserialize & serialize conditional expression mapping definitions'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - cfg.mappings = new MappingDefinition(); - let fieldMapping = null; - const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; - let expressionIndex = 0; - - // Find the expression input field group from the raw JSON. - for (fieldMapping of mappingJson?.AtlasMapping?.mappings - ?.mapping as IMapping[]) { - if ( - fieldMapping.expression && - fieldMapping.expression.startsWith('if (') - ) { - break; - } - expressionIndex++; - } - // console.log(JSON.stringify(mappingJson, null, 2)); - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - expect(cfg.mappings.mappings.length).toEqual( - Object.keys(mappingJson.AtlasMapping?.mappings?.mapping as IMapping[]) - .length - ); - - const mapping = cfg.mappings?.mappings[expressionIndex]; - expect(mapping).toBeDefined(); - const mfields = mapping.getMappedFields(true); - let i = 0; - if (!mfields || !fieldMapping?.inputFieldGroup?.field) { - fail(); - } - for (const field of fieldMapping.inputFieldGroup.field) { - expect(mfields[i]?.mappingField?.path).toEqual(field.path); - i++; - } - expect(fieldMapping.inputFieldGroup.field[0].docId).toContain( - 'DOC.Properties' - ); - - const serialized = MappingSerializer.serializeMappings(cfg); - //console.log(JSON.stringify(serialized, null, 2)); - expect( - Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) - .length - ).toEqual(cfg.mappings?.mappings?.length); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'serialize many-to-one action'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - const mapping = new MappingModel(); - mapping.transition.mode = TransitionMode.MANY_TO_ONE; - const actionDef = cfg.fieldActionService.getActionDefinitionForName( - 'Concatenate', - Multiplicity.MANY_TO_ONE - ); - if (!actionDef) { - fail('Concatenate action defiition not found'); - } - mapping.transition.transitionFieldAction = - FieldAction.create(actionDef); - const f = new Field(); - f.path = '/Text'; - const docDef = cfg.getDocForIdentifier('twitter4j.Status', true); - if (!docDef) { - fail('twitter4j.Status document not found'); - } - f.docDef = docDef; - mapping.addField(f, true); - const json = MappingSerializer.serializeFieldMapping( - cfg, - mapping, - 'm1', - true - ); - expect(json.inputField).toBeFalsy(); - expect(json.inputFieldGroup!.field!.length).toEqual(1); - expect(json.inputFieldGroup!.field![0].actions).toBeFalsy(); - expect(json.inputFieldGroup!.actions!.length).toEqual(1); - expect(json.inputFieldGroup!.actions![0]['@type']).toEqual( - 'Concatenate' - ); - const f2 = new Field(); - f2.path = '/User/Name'; - f2.docDef = f.docDef; - mapping.addField(f, true); - const json2 = MappingSerializer.serializeFieldMapping( - cfg, - mapping, - 'm1', - true - ); - expect(json2.inputField).toBeFalsy(); - expect(json2.inputFieldGroup!.field!.length).toEqual(2); - expect(json2.inputFieldGroup!.field![0].actions).toBeFalsy(); - expect(json2.inputFieldGroup!.actions!.length).toEqual(1); - expect(json2.inputFieldGroup!.actions![0]['@type']).toEqual( - 'Concatenate' - ); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'serialize one-to-many action'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - const mapping = new MappingModel(); - mapping.transition.mode = TransitionMode.ONE_TO_MANY; - const actionDef = cfg.fieldActionService.getActionDefinitionForName( - 'Repeat', - Multiplicity.ONE_TO_MANY - ); - if (!actionDef) { - fail('Repeat action definition not found'); - } - mapping.transition.transitionFieldAction = - FieldAction.create(actionDef); - const f = new Field(); - f.path = '/Text'; - const docDef = cfg.getDocForIdentifier('twitter4j.Status', true); - if (!docDef) { - fail('twitter4j.Status document definition not found'); - } - f.docDef = docDef; - mapping.addField(f, true); - - const json = MappingSerializer.serializeFieldMapping( - cfg, - mapping, - 'm1', - true - ); - expect(json.inputField![0].actions!.length).toEqual(1); - expect(json.inputField![0].actions![0]['@type']).toEqual('Repeat'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'serialize expression action'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - const mapping = new MappingModel(); - mapping.transition.mode = TransitionMode.ONE_TO_ONE; - mapping.transition.enableExpression = true; - mapping.transition.expression = new ExpressionModel(mapping, cfg); - mapping.transition.expression.insertText('{0}'); - const f = new Field(); - f.path = '/Text'; - const docDef = cfg.getDocForIdentifier('twitter4j.Status', true); - if (!docDef) { - fail('twitter4j.Status document definition not found'); - } - f.docDef = docDef; - mapping.addField(f, true); - const json = MappingSerializer.serializeFieldMapping( - cfg, - mapping, - 'm1', - true - ); - expect(json.inputField![0].actions).toBeUndefined(); - expect(json.expression).toBeDefined(); - expect(json.expression).toEqual('{0}'); - const f2 = new Field(); - f2.path = '/User/Name'; - f2.docDef = f.docDef; - mapping.addField(f2, true); - mapping.transition.mode = TransitionMode.MANY_TO_ONE; - mapping.transition.expression = new ExpressionModel(mapping, cfg); - mapping.transition.expression.insertText('{0} + {1}'); - const json2 = MappingSerializer.serializeFieldMapping( - cfg, - mapping, - 'm1', - true - ); - expect(json2.inputField).toBeFalsy(); - expect(json2.inputFieldGroup!.field!.length).toEqual(2); - expect(json2.inputFieldGroup!.field![0].actions).toBeFalsy(); - expect(json2.expression).toBeDefined(); - expect(json2.expression).toEqual('{0} + {1}'); - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = - 'serialize/ preview collection expression: repeat(count(city), const-str)'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - let fieldMapping = null; - const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; - let expressionIndex = 0; - let expressionStr = ''; - - // Find the expression mapping repeat( count(city), const-str) - for (fieldMapping of mappingJson!.AtlasMapping!.mappings! - .mapping as IMapping[]) { - if (fieldMapping?.expression?.includes('repeat( count(')) { - expressionStr = fieldMapping.expression; - break; - } - expressionIndex++; - } - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - expect(cfg.mappings?.mappings.length).toEqual( - Object.keys(mappingJson.AtlasMapping?.mappings?.mapping as IMapping[]) - .length - ); - - const mapping = cfg.mappings?.mappings[expressionIndex]; - expect(mapping).toBeDefined(); - if (!mapping || !mapping.transition.enableExpression) { - fail(); - } - expect(mapping.transition.expression.toText()).toEqual(expressionStr); - - const mfields = mapping.getMappedFields(true); - let i = 0; - if (!fieldMapping?.inputFieldGroup?.field) { - fail(); - } - let testField: Field | null = null; - for (const field of fieldMapping?.inputFieldGroup?.field) { - if (field.path) { - expect(mfields[i].mappingField?.path).toEqual(field.path); - } - if (field.path?.indexOf('street') !== -1) { - testField = mfields[i].field; - } - i++; - } - if (testField === null) { - fail('Unable to locate conditional expression field.'); - } - const serialized = MappingSerializer.serializeMappings(cfg); - expect( - Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) - .length - ).toEqual(cfg.mappings?.mappings?.length); - - // Verify mapping. - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingCollExprMapping, - serialized // ignoreValue defaults to true - ) - ).toBe(true); - - // Verify preview mode. - testField.value = 'somestring'; - // const sanitizedRequest = JSON.stringify( - // MappingSerializer.serializeMappings(cfg, false) - // ).replace(/\.[0-9]*/g, '.'); - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingCollExprPreview, - MappingSerializer.serializeMappings(cfg) // ignoreValue defaults to true - ) - ).toBe(true); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'serialize/ preview reference collection expression'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - let fieldMapping = null; - const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; - let expressionIndex = 0; - let expressionStr = ''; - - // Find the select/ filter expression mapping. - for (fieldMapping of mappingJson?.AtlasMapping?.mappings - ?.mapping as IMapping[]) { - if (fieldMapping.expression?.includes('select( filter(')) { - expressionStr = fieldMapping.expression; - break; - } - expressionIndex++; - } - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - - expect(cfg.mappings?.mappings.length).toEqual( - Object.keys(mappingJson.AtlasMapping?.mappings?.mapping as IMapping[]) - .length - ); - const mapping = cfg.mappings?.mappings[expressionIndex]; - expect(mapping).toBeDefined(); - if (!mapping || !mapping.transition.enableExpression) { - fail(); - } - expect(mapping.transition.expression.toText()).toEqual(expressionStr); - - const mfields = mapping.getMappedFields(true); - let i = 0; - if (!fieldMapping?.inputFieldGroup?.field) { - fail(); - } - - let testField: Field | null = null; - for (const field of fieldMapping?.inputFieldGroup?.field) { - if ( - field.jsonType === 'io.atlasmap.v2.FieldGroup' && - field.path === '/addressList<>' - ) { - testField = Field.getField( - mfields[i].mappingField?.path!, - cfg.getDocForIdentifier(mfields[i].mappingField!.docId!, true) - ?.allFields! - ); - } - i++; - } - expect(testField).toBeDefined(); - - const serialized = MappingSerializer.serializeMappings(cfg); - expect( - Object.keys(serialized.AtlasMapping?.mappings?.mapping as IMapping[]) - .length - ).toEqual(cfg.mappings?.mappings?.length); - - // Verify preview mode. - testField!.value = 'Bosto'; - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingCollRefExprPreview, - MappingSerializer.serializeMappings(cfg, false) - ) - ).toBe(true); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'collection many-to-one deserialize/serialize'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - let mapping = null; - const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - - expect(cfg.mappings?.mappings).toBeDefined(); - if (!cfg.mappings || !cfg.mappings.mappings) { - fail(); - } - for (mapping of cfg.mappings.mappings) { - if (mapping.transition?.mode === TransitionMode.MANY_TO_ONE) { - break; - } - } - expect(mapping).toBeDefined(); - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingCollExprMapping, - MappingSerializer.serializeMappings(cfg) // ignoreValue defaults to true - ) - ).toBe(true); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'collection one-to-many deserialize/serialize'; - test(tName, (done) => { - cfg.sourceDocs.push(createJSONSchemaSourceSourceDoc()); - cfg.targetDocs.push(createJSONSchemaSourceTargetDoc()); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - const mappingJson = atlasMappingSplitJson as IAtlasMappingContainer; - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - cfg.mappingService.updateMappingsTransition(); - - expect(cfg.mappings?.mappings).toBeDefined(); - expect(cfg.mappings?.mappings.length).toBe(1); - const mapping = cfg.mappings?.mappings[0]; - expect(mapping).toBeDefined(); - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingSplitJson, - MappingSerializer.serializeMappings(cfg) - ) - ).toBe(true); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'collection one-to-many collapse deserialize/serialize'; - test(tName, (done) => { - cfg.sourceDocs.push(createJSONSchemaSourceSourceDoc()); - cfg.targetDocs.push(createJSONSchemaSourceTargetDoc()); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - const mappingJson = - atlasMappingSplitCollapseJson as IAtlasMappingContainer; - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - cfg.mappingService.updateMappingsTransition(); - - expect(cfg.mappings?.mappings).toBeDefined(); - expect(cfg.mappings?.mappings.length).toBe(1); - const mapping = cfg.mappings?.mappings[0]; - expect(mapping).toBeDefined(); - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingSplitCollapseJson, - MappingSerializer.serializeMappings(cfg) - ) - ).toBe(true); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'remove a field node from a conditional expression'; - test(tName, (done) => { - createAllDocs(cfg); - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - cfg.mappings = new MappingDefinition(); - let fieldMapping = null; - const mappingJson = atlasMappingExprPropJson as IAtlasMappingContainer; - let expressionIndex = 0; - - // Find the expression input field group from the raw JSON. - for (fieldMapping of mappingJson?.AtlasMapping?.mappings - ?.mapping as IMapping[]) { - if ( - fieldMapping.expression && - fieldMapping.expression.startsWith('select( filter(') - ) { - break; - } - expressionIndex++; - } - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - const mapping = cfg.mappings?.mappings[expressionIndex]; - expect(mapping).toBeDefined(); - - let cityField = mapping?.transition.expression.nodes.find( - (n) => n.toText() === `\${/city}` - ); - expect(cityField).toBeDefined(); - - // Remove the 'city' field from the expression. - mapping?.transition.expression.removeToken(cityField?.getUuid()); - cityField = mapping?.transition.expression.nodes.find( - (n) => n.toText() === `\${/city}` - ); - expect(cityField).toBeUndefined(); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'map enumeration values through a lookup table'; - test(tName, (done) => { - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - cfg.mappings = new MappingDefinition(); - let fieldMapping = null; - const mappingJson = - atlasMappingEnumLookupTableMapping as IAtlasMappingContainer; - - // Find the enum lookup table mapping from the raw JSON. - for (fieldMapping of mappingJson?.AtlasMapping?.mappings - ?.mapping as IMapping[]) { - if ( - fieldMapping?.lookupTableName && - fieldMapping.lookupTableName.length > 0 - ) { - break; - } - } - expect(fieldMapping).toBeDefined(); - - // Isolate the mock documents using the document initialization model. - const docInitSource = new DocumentInitializationModel(); - docInitSource.description = - 'Java document class io.atlasmap.java.test.TargetTestClass'; - docInitSource.id = 'io.atlasmap.java.test.TargetTestClass'; - docInitSource.isSource = true; - docInitSource.name = 'io.atlasmap.java.test.TargetTestClass'; - docInitSource.type = DocumentType.JAVA; - docInitSource.inspectionSource = - 'io.atlasmap.java.test.TargetTestClass'; - const docEnumSrc = cfg.addDocument(docInitSource); - - // Establish the enum fields. - const ss = new Field(); - ss.name = 'statesShort'; - ss.path = '/statesShort'; - ss.scope = ''; - ss.type = FieldType.COMPLEX; - ss.documentField.status = FieldStatus.SUPPORTED; - docEnumSrc.addField(ss); - - const docInitTarget = new DocumentInitializationModel(); - docInitTarget.description = - 'Java document class io.atlasmap.java.test.TargetTestClass'; - docInitTarget.id = 'io.atlasmap.java.test.TargetTestClass'; - docInitTarget.isSource = false; - docInitTarget.name = 'io.atlasmap.java.test.TargetTestClass'; - docInitTarget.type = DocumentType.JAVA; - docInitTarget.inspectionSource = - 'io.atlasmap.java.test.TargetTestClass'; - const docEnumtgt = cfg.addDocument(docInitTarget); - - const sl = new Field(); - sl.name = 'statesLong'; - sl.path = '/statesLong'; - sl.scope = ''; - sl.type = FieldType.COMPLEX; - sl.documentField.status = FieldStatus.SUPPORTED; - docEnumtgt.addField(sl); - - // Deserialize then serialize. - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingEnumLookupTableMapping, - MappingSerializer.serializeMappings(cfg) - ) - ).toBe(true); - - expect(cfg.mappings.mappings[0].transition.mode).toBe( - TransitionMode.ENUM - ); - - // Test the lookup table utilities - LookupTableUtil.populateMappingLookupTable( - cfg.mappings, - cfg.mappings.mappings[0] - ); - LookupTableUtil.updateLookupTables(cfg.mappings); - const sourceField: Field = cfg.mappings.mappings[0].getFields(true)[0]; - sourceField.enumValues = [ - { name: 'AZ', ordinal: 0 }, - { name: 'FL', ordinal: 2 }, - { name: 'TX', ordinal: 4 }, - ]; - const targetField: Field = cfg.mappings.mappings[0].getFields(false)[0]; - targetField.enumValues = [ - { name: 'Arizona', ordinal: 0 }, - { name: 'Florida', ordinal: 2 }, - { name: 'Texas', ordinal: 4 }, - ]; - const tables: LookupTable[] = cfg.mappings!.getTables(); - const lookupTable = tables[0]; - expect(tables.length).toBeGreaterThan(0); - const enumValues = LookupTableUtil.getEnumerationValues( - cfg, - cfg.mappings.mappings[0] - ); - expect(enumValues).toBeDefined(); - - // Inspect the mapping lookup table. - expect(lookupTable.lookupEntry.length).toBe(3); - let i = 0; - for (const eVal of enumValues) { - expect(eVal.sourceEnumValue).toEqual(sourceField.enumValues[i].name); - expect(eVal.selectedTargetEnumValue).toEqual( - targetField.enumValues[i].name - ); - i++; - } - for (const entry of lookupTable.lookupEntry) { - expect(entry.sourceType).toEqual('STRING'); - expect(entry.targetType).toEqual('STRING'); - expect(entry.sourceValue.length).toBe(2); - } - expect(tables[0].lookupEntry[0].targetValue).toEqual('Arizona'); - expect(tables[0].lookupEntry[1].targetValue).toEqual('Florida'); - expect(tables[0].lookupEntry[2].targetValue).toEqual('Texas'); - const flEntry = lookupTable.getEntryForSource('FL', false); - expect(flEntry).toBeDefined(); - expect(flEntry?.targetValue).toEqual('Florida'); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); - - tName = 'process a CSV mapping'; - test(tName, (done) => { - cfg.preloadedFieldActionMetadata = atlasmapFieldActionJson; - return cfg.fieldActionService - .fetchFieldActions() - .then(() => { - cfg.mappings = new MappingDefinition(); - let fieldMapping = null; - const mappingJson = atlasMappingCSV as IAtlasMappingContainer; - - // Isolate the mock documents using the document initialization model. - const docModelSource = DocumentInspectionUtil.fromNonJavaProperties( - cfg, - 'source', - 'CsvDataSource', - DocumentType.CSV, - InspectionType.SCHEMA, - 'io.atlasmap.csv.v2.CsvDataSource', - true - ); - cfg.initCfg.baseCSVInspectionServiceUrl = 'dummy'; - - // Establish the CSV source fields. - const sf1 = new Field(); - sf1.name = '<>'; - sf1.path = '/<>'; - sf1.type = FieldType.COMPLEX; - docModelSource.doc.addField(sf1); - const sf2 = new Field(); - sf2.name = 'last_name'; - sf2.path = '/<>/last_name'; - sf2.scope = ''; - sf2.type = FieldType.STRING; - sf2.documentField.status = FieldStatus.SUPPORTED; - sf2.parentField = sf1; - docModelSource.doc.addField(sf2); - - const docModelTarget = DocumentInspectionUtil.fromNonJavaProperties( - cfg, - 'target-csv', - 'CsvDataSource', - DocumentType.CSV, - InspectionType.SCHEMA, - 'io.atlasmap.csv.v2.CsvDataSource', - false - ); - expect(docModelTarget).toBeDefined(); - - // Establish the CSV target fields. - const st1 = new Field(); - st1.name = '<>'; - st1.path = '/<>'; - st1.type = FieldType.COMPLEX; - docModelSource.doc.addField(st1); - const st2 = new Field(); - st2.name = 'last'; - st2.path = '/<>/last'; - st2.scope = ''; - st2.type = FieldType.STRING; - st2.documentField.status = FieldStatus.SUPPORTED; - st2.parentField = st1; - docModelTarget.doc.addField(st2); - - const docInspModel = DocumentInspectionUtil.fromDocumentDefinition( - cfg, - docModelTarget.doc - ); - expect(docInspModel).toBeDefined(); - - const csvInspModel = new CsvInspectionModel(cfg, docModelTarget.doc); - expect(csvInspModel.isOnlineInspectionCapable()).toBe(true); - - // Find a CSV field mapping. - for (fieldMapping of mappingJson?.AtlasMapping?.mappings - ?.mapping as IMapping[]) { - if (fieldMapping.inputField) { - for (const field of fieldMapping.inputField) { - if (field.name === 'last_name') { - break; - } - } - } - } - expect(fieldMapping).toBeDefined(); - - MappingSerializer.deserializeMappingServiceJSON(mappingJson, cfg); - MappingUtil.updateMappingsFromDocuments(cfg); - expect( - TestUtils.isEqualJSON( - tName, - atlasMappingCSV, - MappingSerializer.serializeMappings(cfg) - ) - ).toBe(true); - - done(); - }) - .catch((error) => { - fail(error); - }); - }); -}); diff --git a/packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.ts b/packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.ts deleted file mode 100644 index a9b2b4ebe..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/mapping-serializer.ts +++ /dev/null @@ -1,1271 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { - ATLAS_MAPPING_JSON_TYPE, - COLLECTION_JSON_TYPE, - CONSTANT_FIELD_JSON_TYPE, - FIELD_GROUP_JSON_TYPE, - IAtlasMappingContainer, - ICollection, - IConstant, - IFieldGroup, - IJsonDataSource, - ILookupEntry, - ILookupTable, - IMapping, - IProperty, - IPropertyField, - MAPPING_JSON_TYPE, - MappingType, - PROPERTY_FIELD_JSON_TYPE, -} from '../contracts/mapping'; -import { - DATA_SOURCE_JSON_TYPE, - DataSourceType, - DocumentType, - FIELD_PATH_SEPARATOR, - FieldType, - IDataSource, - IField, - IFieldAction, -} from '../contracts/common'; -import { - DocumentDefinition, - NamespaceModel, -} from '../models/document-definition.model'; -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { - FieldAction, - FieldActionArgument, - FieldActionArgumentValue, -} from '../models/field-action.model'; -import { - IXmlDataSource, - IXmlField, - IXmlNamespace, - XML_DATA_SOURCE_JSON_TYPE, - XML_ENUM_FIELD_JSON_TYPE, - XML_MODEL_PACKAGE_PREFIX, -} from '../contracts/documents/xml'; -import { - JSON_DATA_SOURCE_JSON_TYPE, - JSON_ENUM_FIELD_JSON_TYPE, -} from '../contracts/documents/json'; -import { LookupTable, LookupTableEntry } from '../models/lookup-table.model'; -import { MappedField, MappingModel } from '../models/mapping.model'; -import { TransitionMode, TransitionModel } from '../models/transition.model'; - -import { ConfigModel } from '../models/config.model'; -import { ExpressionModel } from '../models/expression.model'; -import { Field } from '../models/field.model'; -import { IAudits } from '../contracts/mapping-preview'; -import { ICsvField } from '../contracts/documents/csv'; -import { IJavaField } from '../contracts/documents/java'; -import { JAVA_ENUM_FIELD_JSON_TYPE } from '../contracts/documents/java'; -import { MappingDefinition } from '../models/mapping-definition.model'; -import { MappingUtil } from './mapping-util'; -import { Multiplicity } from '../contracts/field-action'; - -export class MappingSerializer { - static serializeMappings( - cfg: ConfigModel, - ignoreValue: boolean = true - ): IAtlasMappingContainer { - // TODO: check this non null operator - const mappingDefinition: MappingDefinition = cfg.mappings!; - let jsonMappings: IMapping[] = []; - for (const mapping of mappingDefinition.mappings.filter((m) => - m.isFullyMapped() - )) { - try { - const serializedFieldMapping = MappingSerializer.serializeFieldMapping( - cfg, - mapping, - mapping.uuid, - ignoreValue - ); - if (serializedFieldMapping) { - jsonMappings = jsonMappings.concat(serializedFieldMapping); - } - } catch (e) { - const input: any = { - mapping: mapping, - 'mapping def': mappingDefinition, - }; - cfg.errorService.addError( - new ErrorInfo({ - message: - 'Caught exception while attempting to serialize mapping, skipping. ', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: { input: input, error: e }, - }) - ); - } - } - - const serializedLookupTables = MappingSerializer.serializeLookupTables( - cfg.mappings! - ); - const constantDescriptions: IConstant[] = - MappingSerializer.serializeConstants(cfg.constantDoc); - const sourcePropertyDescriptions: IProperty[] = - MappingSerializer.serializeProperties(cfg.sourcePropertyDoc); - const targetPropertyDescriptions: IProperty[] = - MappingSerializer.serializeProperties(cfg.targetPropertyDoc); - const serializedDataSources: IDataSource[] = - MappingSerializer.serializeDocuments( - cfg.sourceDocs.concat(cfg.targetDocs), - mappingDefinition - ); - - const payload: IAtlasMappingContainer = { - AtlasMapping: { - jsonType: ATLAS_MAPPING_JSON_TYPE, - dataSource: serializedDataSources, - mappings: { mapping: jsonMappings }, - name: cfg.mappings!.name ? cfg.mappings!.name : undefined, - lookupTables: { lookupTable: serializedLookupTables }, - constants: { constant: constantDescriptions }, - properties: { - property: sourcePropertyDescriptions.concat( - targetPropertyDescriptions - ), - }, - }, - }; - return payload; - } - - static serializeFieldMapping( - cfg: ConfigModel, - mapping: MappingModel, - id: string, - ignoreValue: boolean = true - ): IMapping { - const serializedInputFields = MappingSerializer.serializeFields( - mapping, - true, - cfg, - ignoreValue - ); - const serializedOutputFields = MappingSerializer.serializeFields( - mapping, - false, - cfg, - ignoreValue - ); - let jsonMapping: IMapping; - const mappingExpression = cfg.expressionService.getMappingExpressionStr( - false, - mapping - ); - - if ( - mapping.transition.isManyToOneMode() || - mapping.transition.isForEachMode() || - mapping.transition.isExpressionMode() - ) { - const actions = []; - if (mapping.transition.transitionFieldAction) { - actions[0] = this.serializeAction( - mapping.transition.transitionFieldAction, - cfg - ); - } - const field = serializedInputFields; - const inputFieldGroup: IFieldGroup = { - jsonType: FIELD_GROUP_JSON_TYPE, - actions, - field, - }; - if (mappingExpression.length > 0) { - jsonMapping = { - jsonType: MAPPING_JSON_TYPE, - id: id, - expression: mappingExpression, - inputFieldGroup, - outputField: serializedOutputFields, - }; - } else { - jsonMapping = { - jsonType: MAPPING_JSON_TYPE, - id: id, - inputFieldGroup, - outputField: serializedOutputFields, - }; - } - } else { - if ( - mapping.transition.isOneToManyMode() && - mapping.transition.transitionFieldAction - ) { - const mappingAction = this.serializeAction( - mapping.transition.transitionFieldAction, - cfg - ); - if (!serializedInputFields[0].actions) { - serializedInputFields[0].actions = []; - } - if (mappingAction) { - serializedInputFields[0].actions.unshift(mappingAction); - } - } - if (mappingExpression.length > 0) { - if (serializedInputFields[0].jsonType?.includes('FieldGroup')) { - let serializedInputFieldGroup = - serializedInputFields[0] as IFieldGroup; - for (let i = 1; i < serializedInputFields.length; i++) { - if (serializedInputFields[i].jsonType?.includes('FieldGroup')) { - const serializedFieldGroup0 = - serializedInputFields[0] as IFieldGroup; - const serializedFieldGroupi = serializedInputFields[ - i - ] as IFieldGroup; - if ( - serializedFieldGroupi.field && - serializedFieldGroup0.field && - serializedFieldGroupi.field[0].path === - serializedFieldGroup0.field[0].path - ) { - serializedInputFieldGroup.field?.push( - serializedFieldGroupi.field[0] - ); - } - } - // TODO - Support input fields from different complex parent fields - // in the same complex conditional expression. - } - - jsonMapping = { - jsonType: MAPPING_JSON_TYPE, - id: id, - expression: mappingExpression, - inputFieldGroup: serializedInputFieldGroup, - outputField: serializedOutputFields, - }; - } else { - jsonMapping = { - jsonType: MAPPING_JSON_TYPE, - id: id, - expression: mappingExpression, - inputField: serializedInputFields, - outputField: serializedOutputFields, - }; - } - } else { - jsonMapping = { - jsonType: MAPPING_JSON_TYPE, - id: id, - inputField: serializedInputFields, - outputField: serializedOutputFields, - }; - } - } - - if (mapping.transition.isEnumerationMode()) { - jsonMapping.mappingType = MappingType.LOOKUP; /* @deprecated */ - if (mapping.transition.lookupTableName) { - jsonMapping.lookupTableName = mapping.transition.lookupTableName; - } - } - return jsonMapping; - } - - static deserializeMappingServiceJSON( - json: IAtlasMappingContainer, - cfg: ConfigModel - ): void { - // Process constants and properties before mappings. - for (const field of MappingSerializer.deserializeConstants(json)) { - cfg.constantDoc.addField(field); - } - for (const field of MappingSerializer.deserializeProperties( - cfg, - json, - true - )) { - cfg.sourcePropertyDoc.addField(field); - } - for (const field of MappingSerializer.deserializeProperties( - cfg, - json, - false - )) { - cfg.targetPropertyDoc.addField(field); - } - if (!cfg.mappings) { - cfg.mappings = new MappingDefinition(); - } - cfg.mappings.name = this.deserializeAtlasMappingName(json); - cfg.mappings.parsedDocs = cfg.mappings.parsedDocs.concat( - MappingSerializer.deserializeDocs(json, cfg.mappings)! - ); // TODO: check this non null operator - cfg.mappings.mappings = cfg.mappings.mappings.concat( - MappingSerializer.deserializeMappings(json, cfg) - ); - for (const lookupTable of MappingSerializer.deserializeLookupTables(json)) { - cfg.mappings.addTable(lookupTable); - } - } - - /** - * Return the AtlasMap mappings file name from the specified JSON buffer or an empty string. - * - * @param json - */ - static deserializeAtlasMappingName(json: IAtlasMappingContainer): string { - if (json?.AtlasMapping?.name) { - return json.AtlasMapping.name; - } else { - return ''; - } - } - - static addInputFieldGroupFields( - inputField: IField[], - mapping: MappingModel, - cfg: ConfigModel - ) { - for (const field of inputField) { - if (field.fieldType === 'COMPLEX') { - MappingSerializer.addInputFieldGroupFields( - (field as IFieldGroup).field!, - mapping, - cfg - ); - } else { - MappingSerializer.deserializeMappedField(mapping, field, true, cfg); - } - } - } - - static deserializeFieldMapping( - mappingJson: IMapping, - cfg: ConfigModel - ): MappingModel { - const mapping = new MappingModel(); - mapping.uuid = mappingJson.id; - mapping.sourceFields = []; - mapping.targetFields = []; - mapping.referenceFields = []; - mapping.transition.mode = TransitionMode.ONE_TO_ONE; - const isLookupMapping = - mappingJson.mappingType === 'LOOKUP' || - mappingJson.lookupTableName != null; - - if ( - mappingJson.mappingType && - mappingJson.mappingType !== MappingType.NONE - ) { - this.deserializeFieldMappingFromType(mapping, mappingJson, cfg); - return mapping; - } - - if (mappingJson.inputFieldGroup) { - MappingSerializer.deserializeInputFieldGroup(mappingJson, mapping, cfg); - } else { - const inputField = mappingJson.inputField; - - if (inputField) { - for (const field of inputField) { - MappingSerializer.deserializeMappedField(mapping, field, true, cfg); - } - } - if ( - mappingJson.outputField?.length && - mappingJson.outputField.length > 1 - ) { - mapping.transition.mode = TransitionMode.ONE_TO_MANY; - } - if (cfg.mappings) { - MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); - } - } - - if (mappingJson.expression && mappingJson.expression.length > 0) { - mapping.transition.enableExpression = true; - mapping.transition.mode = TransitionMode.EXPRESSION; - mapping.transition.expression = new ExpressionModel(mapping, cfg); - mapping.transition.expression.insertText(mappingJson.expression); - } - - for (const field of mappingJson.outputField) { - MappingSerializer.deserializeMappedField(mapping, field, false, cfg); - } - MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, false); - - if (isLookupMapping) { - mapping.transition.lookupTableName = mappingJson.lookupTableName!; - mapping.transition.mode = TransitionMode.ENUM; - } - - return mapping; - } - - private static deserializeInputFieldGroup( - mappingJson: IMapping, - mapping: MappingModel, - cfg: ConfigModel - ) { - if (!mappingJson.inputFieldGroup) { - return; - } - - if ( - mappingJson.expression && - mappingJson.inputFieldGroup!.fieldType === FieldType.COMPLEX - ) { - mapping.transition.expression.hasComplexField = true; - } - mapping.transition.mode = TransitionMode.MANY_TO_ONE; - - MappingSerializer.addInputFieldGroupFields( - mappingJson.inputFieldGroup.field!, - mapping, - cfg - ); - MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); - - if ( - mappingJson.inputFieldGroup.actions && - mappingJson.inputFieldGroup.actions[0]?.delimiter - ) { - mapping.transition.delimiter = TransitionModel.delimiterToModel( - mappingJson.inputFieldGroup.actions[0]?.delimiter - )?.delimiter; - // Check for an InputFieldGroup containing a many-to-one action - const firstAction = mappingJson.inputFieldGroup.actions[0]; - if (firstAction) { - // @deprecated Support legacy ADM files that have transformation-action-based expressions. - if (firstAction.Expression || firstAction['@type'] === 'Expression') { - mapping.transition.enableExpression = true; - mapping.transition.mode = TransitionMode.EXPRESSION; - mapping.transition.expression = new ExpressionModel(mapping, cfg); - const expr = firstAction.Expression - ? firstAction.Expression.expression - : firstAction['expression']; - mapping.transition.expression.insertText(expr); - } else { - mapping.transition.mode = TransitionMode.MANY_TO_ONE; - const parsedAction = this.parseAction(firstAction); - // TODO: check this non null operator - parsedAction.definition = - cfg.fieldActionService.getActionDefinitionForName( - parsedAction.name, - Multiplicity.MANY_TO_ONE - )!; - mapping.transition.transitionFieldAction = parsedAction; - } - } - } - } - - static deserializeAudits(audits: IAudits, errorType: ErrorType): ErrorInfo[] { - const errors: ErrorInfo[] = []; - if (!audits?.audit) { - return errors; - } - for (const audit of audits.audit) { - const msg = audit.status + '[' + audit.path + ']: ' + audit.message; - errors.push( - new ErrorInfo({ - message: msg, - level: ErrorLevel[audit.status], - scope: ErrorScope.MAPPING, - type: errorType, - object: audit.value, - }) - ); - } - return errors; - } - - private static createInputFieldGroup( - field: IField[], - isComplex: boolean, - docId?: string, - path?: string - ): IFieldGroup { - const inputFieldGroup: IFieldGroup = { - jsonType: FIELD_GROUP_JSON_TYPE, - actions: [], - docId: docId, - path: path, - field, - }; - if (isComplex) { - inputFieldGroup.fieldType = FieldType.COMPLEX; - } - return inputFieldGroup; - } - - private static serializeDocuments( - docs: DocumentDefinition[], - mappingDefinition: MappingDefinition - ): IDataSource[] { - const serializedDocs: IDataSource[] = []; - for (const doc of docs) { - let serializedDoc: IDataSource = { - jsonType: DATA_SOURCE_JSON_TYPE, - id: doc.id, - name: doc.name, - description: doc.description, - uri: doc.uri, - dataSourceType: doc.isSource - ? DataSourceType.SOURCE - : DataSourceType.TARGET, - }; - if (doc.characterEncoding != null) { - serializedDoc.characterEncoding = doc.characterEncoding; - } - if (doc.locale != null) { - serializedDoc.locale = doc.locale; - } - if (doc.type === DocumentType.XML || doc.type === DocumentType.XSD) { - const xmlDoc = serializedDoc as IXmlDataSource; - xmlDoc.jsonType = XML_DATA_SOURCE_JSON_TYPE; - const namespaces: IXmlNamespace[] = []; - for (const ns of doc.namespaces) { - namespaces.push({ - alias: ns.alias, - uri: ns.uri, - locationUri: ns.locationUri, - targetNamespace: ns.isTarget, - }); - } - if (!doc.isSource && mappingDefinition.templateText) { - xmlDoc.template = mappingDefinition.templateText; - } - xmlDoc.xmlNamespaces = { xmlNamespace: namespaces }; - } else if (doc.type === DocumentType.JSON) { - const jsonDoc = serializedDoc as IJsonDataSource; - if (!doc.isSource && mappingDefinition.templateText) { - jsonDoc.template = mappingDefinition.templateText; - } - jsonDoc.jsonType = JSON_DATA_SOURCE_JSON_TYPE; - } - - serializedDocs.push(serializedDoc); - } - return serializedDocs; - } - - private static serializeConstants(docDef: DocumentDefinition): IConstant[] { - const constantDescriptions: IConstant[] = []; - for (const field of docDef.fields) { - // Use the constant value for the name. - constantDescriptions.push({ - name: field.name, - value: field.value, - fieldType: field.type, - }); - } - return constantDescriptions; - } - - private static serializeProperties(docDef: DocumentDefinition): IProperty[] { - const propertyDescriptions: IProperty[] = []; - for (const field of docDef.fields) { - propertyDescriptions.push({ - name: field.name, - fieldType: field.type, - scope: field.scope, - dataSourceType: docDef.isSource - ? DataSourceType.SOURCE - : DataSourceType.TARGET, - }); - } - return propertyDescriptions; - } - - private static serializeLookupTables( - mappingDefinition: MappingDefinition - ): ILookupTable[] { - const serializedTables: ILookupTable[] = []; - const tables = mappingDefinition.getTables(); - if (!tables || !tables.length) { - return serializedTables; - } - - for (const table of tables) { - const lookupEntries: ILookupEntry[] = []; - for (const entry of table.lookupEntry) { - const serializedEntry: ILookupEntry = { - sourceValue: entry.sourceValue, - sourceType: entry.sourceType, - targetValue: entry.targetValue, - targetType: entry.targetType, - }; - lookupEntries.push(serializedEntry); - } - - const serializedTable: ILookupTable = { - lookupEntry: lookupEntries, - name: table.name, - }; - serializedTables.push(serializedTable); - } - return serializedTables; - } - - /** - * Generate serialized meta-data representing a direct-reference instance collection preview. - * - * @param cfg - * @param mapping - * @param field - * @param serializedField - * @param fieldsJson - */ - private static processCollectionPreview( - field: Field, - serializedField: IField, - fieldsJson: IField[] - ) { - serializedField.path = field.path.replace('<>', '<0>'); - const collectionInstanceInputFieldGroup = - MappingSerializer.createInputFieldGroup( - [serializedField], - true, - field.docDef.id, - field.path - ); - fieldsJson.push(collectionInstanceInputFieldGroup); - } - - /** - * Serialize field action arguments. - * - * @param action - * @param cfg - */ - private static processActionArguments( - action: FieldAction, - cfg: ConfigModel - ): { [key: string]: string } { - const actionArguments: { [key: string]: any } = {}; - if (action === null) { - return actionArguments; - } - for (const argValue of action.argumentValues) { - if ( - action.definition?.isCustom && - ['methodName', 'className', 'name'].includes(argValue.name) - ) { - continue; - } - actionArguments[argValue.name] = argValue.value; - const argumentConfig: FieldActionArgument = - action.definition!.getArgumentForName(argValue.name); - if (argumentConfig == null) { - cfg.errorService.addError( - new ErrorInfo({ - message: `Cannot find action argument ${argValue.name}: ${argValue.value}`, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: action, - }) - ); - continue; - } - if (argumentConfig.type === 'INTEGER') { - actionArguments[argValue.name] = parseInt(argValue.value, 10); - } - } - return actionArguments; - } - - private static serializeFields( - mapping: MappingModel, - isSource: boolean, - cfg: ConfigModel, - ignoreValue: boolean = false - ): IField[] { - let collectionInputFieldGroup = null; - let collectionInstanceInputFieldGroup = null; - const fields: MappedField[] = mapping.getMappedFields(isSource); - const fieldsJson: IField[] = []; - - for (const mappedField of fields) { - if (!mappedField.field || mappedField.isPadField()) { - continue; - } - - const field: Field = mappedField.field; - const serializedField: IField = { - jsonType: field.documentField.jsonType, - name: field.name, - path: field.path, - fieldType: field.type, - docId: field.docDef.id, - }; - - // The 'attribute' field only applies to XML. - if (field.documentField.jsonType?.includes(XML_MODEL_PACKAGE_PREFIX)) { - (serializedField as IXmlField).attribute = field.isAttribute; - } - - // Only capture a value for preview mode and constants. - if (!ignoreValue || field.isConstant()) { - if (field.value) { - serializedField.value = field.value; - } else { - serializedField.value = ''; - } - } - - if ( - field.docDef.type === DocumentType.XML || - field.docDef.type === DocumentType.XSD - ) { - (serializedField as IXmlField).userCreated = field.userCreated; - } else if ( - field.docDef.type === DocumentType.JAVA && - !field.isPrimitive - ) { - (serializedField as IJavaField).className = field.classIdentifier; - } - - if (field.isProperty()) { - serializedField.jsonType = PROPERTY_FIELD_JSON_TYPE; - serializedField.name = field.name; - (serializedField as IPropertyField).scope = field.scope; - serializedField.path = cfg.documentService.getPropertyPath( - field.scope, - field.name - ); - } else if (field.isConstant()) { - serializedField.jsonType = CONSTANT_FIELD_JSON_TYPE; - serializedField.name = field.name; - } else if (field.enumeration) { - if (field.docDef.type === DocumentType.JSON) { - serializedField.jsonType = JSON_ENUM_FIELD_JSON_TYPE; - } else if ( - field.docDef.type === DocumentType.XML || - field.docDef.type === DocumentType.XSD - ) { - serializedField.jsonType = XML_ENUM_FIELD_JSON_TYPE; - } else { - serializedField.jsonType = JAVA_ENUM_FIELD_JSON_TYPE; - } - } - - let includeIndexes: boolean = - mapping.getMappedFields(isSource).length > 1; - includeIndexes = - includeIndexes || (mapping.transition.isExpressionMode() && isSource); - if (includeIndexes) { - // TODO: check this non null operator - serializedField.index = - mapping.getIndexForMappedField(mappedField)! - 1; - } - if (field.docDef.type === DocumentType.CSV) { - (serializedField as ICsvField).column = field.column; - } - - this.serializeActions(cfg, mappedField, serializedField); - - // Check for collection field references. - if (isSource && field.isInCollection()) { - const collectionParentField = field.getCollectionParentField(); - - if ( - !mapping.referenceFieldExists( - collectionParentField.docDef.id, - collectionParentField.path - ) - ) { - if (!ignoreValue) { - MappingSerializer.processCollectionPreview( - field, - serializedField, - fieldsJson - ); - } else { - fieldsJson.push(serializedField); - collectionInputFieldGroup = null; - } - } else { - // Establish/add to the inner reference field group. - if (collectionInstanceInputFieldGroup === null) { - collectionInstanceInputFieldGroup = - MappingSerializer.createInputFieldGroup( - [serializedField], - true, - collectionParentField.docDef.id, - collectionParentField.path - ); - } else { - (collectionInstanceInputFieldGroup as IFieldGroup)!.field!.push( - serializedField - ); - continue; - } - collectionInstanceInputFieldGroup.fieldType = - collectionParentField.documentField.fieldType; - - // Preview-mode uses element/ item instance <0>. - if (!ignoreValue) { - collectionInstanceInputFieldGroup.path = - collectionParentField.path.replace('<>', '<0>'); - - // Establish one outer input field group for the preview collection. - if (collectionInputFieldGroup === null) { - collectionInputFieldGroup = - MappingSerializer.createInputFieldGroup( - [collectionInstanceInputFieldGroup], - true, - collectionParentField.docDef.id, - collectionParentField.path - ); - collectionInstanceInputFieldGroup.fieldType = - collectionParentField.documentField.fieldType; - fieldsJson.push(collectionInputFieldGroup); - } - } else { - fieldsJson.push(collectionInstanceInputFieldGroup); - } - } - - // Non-aggregate field reference. - } else { - fieldsJson.push(serializedField); - collectionInputFieldGroup = null; - } - } - return fieldsJson; - } - - /** - * Walk the list of actions associated with the specified mapped field and serialize them into JSON. - * - * @param cfg - * @param mappedField - * @param serializedField - */ - private static serializeActions( - cfg: ConfigModel, - mappedField: MappedField, - serializedField: IField - ): void { - if (mappedField.actions.length) { - const actions: IFieldAction[] = []; - - for (const action of mappedField.actions) { - const actionJson = this.serializeAction(action, cfg); - if (actionJson) { - actions.push(actionJson); - } - } - if (actions.length > 0) { - serializedField.actions = actions; - } - } - } - - private static serializeAction( - action: FieldAction, - cfg: ConfigModel - ): { [key: string]: any } { - let actionJson = MappingSerializer.processActionArguments(action, cfg); - actionJson['@type'] = action.definition!.name; - return actionJson; - } - - private static deserializeDocs( - json: IAtlasMappingContainer, - mappingDefinition: MappingDefinition - ): DocumentDefinition[] | null { - const docs: DocumentDefinition[] = []; - if (!json || !json.AtlasMapping || !json.AtlasMapping.dataSource) { - return null; - } - for (const docRef of json.AtlasMapping.dataSource) { - const doc: DocumentDefinition = new DocumentDefinition(); - doc.isSource = docRef.dataSourceType === 'SOURCE'; - doc.uri = docRef.uri; - doc.id = docRef.id; - doc.name = docRef.name ? docRef.name : ''; - doc.description = docRef.description; - const xmlDocRef = docRef as IXmlDataSource; - if (xmlDocRef.xmlNamespaces && xmlDocRef.xmlNamespaces.xmlNamespace) { - for (const svcNS of xmlDocRef.xmlNamespaces.xmlNamespace) { - const ns: NamespaceModel = new NamespaceModel(); - ns.alias = svcNS.alias; - ns.uri = svcNS.uri; - ns.locationUri = svcNS.locationUri; - ns.isTarget = svcNS.targetNamespace ? svcNS.targetNamespace : false; - ns.createdByUser = true; - doc.namespaces.push(ns); - } - } - if (xmlDocRef.template) { - mappingDefinition.templateText = xmlDocRef.template; - } - docs.push(doc); - } - return docs; - } - - private static deserializeMappings( - json: IAtlasMappingContainer, - cfg: ConfigModel - ): MappingModel[] { - const mappings: MappingModel[] = []; - - if (!json.AtlasMapping.mappings?.mapping) { - return mappings; - } - for (const fieldMapping of json.AtlasMapping.mappings.mapping) { - // for backward compatibility - const isCollectionMapping = - fieldMapping.jsonType === COLLECTION_JSON_TYPE; - if (isCollectionMapping) { - const collection = fieldMapping as ICollection; - for (const innerFieldMapping of collection.mappings.mapping) { - mappings.push( - MappingSerializer.deserializeFieldMapping( - innerFieldMapping as IMapping, - cfg - ) - ); - } - } else { - mappings.push( - MappingSerializer.deserializeFieldMapping( - fieldMapping as IMapping, - cfg - ) - ); - } - } - return mappings; - } - - /** - * @deprecated Deserialize a field mapping based on its mapping type. This is deprecated in favor of - * concatenate/ split actions. - * - * @param mapping - * @param fieldMapping - * @param docRefs - * @param cfg - * @param ignoreValue - */ - private static deserializeFieldMappingFromType( - mapping: MappingModel, - fieldMapping: IMapping, - cfg: ConfigModel - ): void { - if (fieldMapping.mappingType === 'SEPARATE') { - mapping.transition.mode = TransitionMode.ONE_TO_MANY; - mapping.transition.transitionFieldAction = FieldAction.create( - cfg.fieldActionService.getActionDefinitionForName( - 'Split', - Multiplicity.ONE_TO_MANY - )! - ); // TODO: check this non null operator - mapping.transition.transitionFieldAction.setArgumentValue( - 'delimiter', - fieldMapping.delimiter! - ); - } else if (fieldMapping.mappingType === 'LOOKUP') { - mapping.transition.mode = TransitionMode.ENUM; - mapping.transition.lookupTableName = fieldMapping.lookupTableName!; - } else if (fieldMapping.mappingType === 'COMBINE') { - mapping.transition.mode = TransitionMode.MANY_TO_ONE; - mapping.transition.transitionFieldAction = FieldAction.create( - cfg.fieldActionService.getActionDefinitionForName( - 'Concatenate', - Multiplicity.MANY_TO_ONE - )! - ); // TODO: check this non null operator - mapping.transition.transitionFieldAction.setArgumentValue( - 'delimiter', - fieldMapping.delimiter! - ); - } else { - mapping.transition.mode = TransitionMode.ONE_TO_ONE; - } - - for (const field of fieldMapping.inputField!) { - MappingSerializer.deserializeMappedField(mapping, field, true, cfg); - } - for (const field of fieldMapping.outputField) { - MappingSerializer.deserializeMappedField(mapping, field, false, cfg); - } - MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); - } - - private static deserializeConstants( - jsonMapping: IAtlasMappingContainer - ): Field[] { - const fields: Field[] = []; - if (!jsonMapping?.AtlasMapping?.constants?.constant) { - return fields; - } - for (const constant of jsonMapping.AtlasMapping.constants.constant) { - const field: Field = new Field(); - field.name = constant.name; - field.path = FIELD_PATH_SEPARATOR + field.name; - field.value = constant.value; - field.type = constant.fieldType; - field.userCreated = true; - field.isAttribute = false; - fields.push(field); - } - return fields; - } - - private static deserializeProperties( - cfg: ConfigModel, - jsonMapping: IAtlasMappingContainer, - isSource: boolean - ): Field[] { - const fields: Field[] = []; - if (!jsonMapping?.AtlasMapping?.properties?.property) { - return fields; - } - - // Source and target properties are mixed in the 'property' JSON array. - for (const property of jsonMapping.AtlasMapping.properties.property) { - if ( - (isSource && property.dataSourceType === DataSourceType.TARGET) || - (!isSource && property.dataSourceType !== DataSourceType.TARGET) - ) { - continue; - } - const field: Field = new Field(); - field.name = property.name; - field.type = property.fieldType; - field.scope = property.scope; - field.path = cfg.documentService.getPropertyPath(field.scope, field.name); - field.userCreated = true; - field.isAttribute = false; - fields.push(field); - } - return fields; - } - - private static deserializeLookupTables( - jsonMapping: IAtlasMappingContainer - ): LookupTable[] { - const tables: LookupTable[] = []; - if ( - !jsonMapping || - !jsonMapping.AtlasMapping || - !jsonMapping.AtlasMapping.lookupTables || - !jsonMapping.AtlasMapping.lookupTables.lookupTable - ) { - return tables; - } - for (const table of jsonMapping.AtlasMapping.lookupTables.lookupTable) { - const parsedTable: LookupTable = new LookupTable(); - parsedTable.name = table.name; - for (const entry of table.lookupEntry) { - const parsedEntry: LookupTableEntry = new LookupTableEntry(); - parsedEntry.sourceValue = entry.sourceValue; - parsedEntry.sourceType = entry.sourceType; - parsedEntry.targetValue = entry.targetValue; - parsedEntry.targetType = entry.targetType; - parsedTable.lookupEntry.push(parsedEntry); - } - tables.push(parsedTable); - } - return tables; - } - - /** - * Walk the list of field actions found in the parsed data and restore them to the live mapping. - * - * @param field - * @param mappedField - * @param mapping - * @param cfg - * @param isSource - */ - private static deserializeFieldActions( - field: IField, - mappedField: MappedField, - mapping: MappingModel, - cfg: ConfigModel, - isSource: boolean - ): void { - if (!field.actions) { - return; - } - - for (const action of field.actions) { - const parsedAction = this.parseAction(action); - if (action.name === 'CustomAction') { - parsedAction.definition = - cfg.fieldActionService.getActionDefinitionForName( - action.argumentValues[0].value, - Multiplicity.ONE_TO_ONE - ); - } else { - parsedAction.definition = - cfg.fieldActionService.getActionDefinitionForName(parsedAction.name)!; - } - if (parsedAction.definition == null) { - cfg.errorService.addError( - new ErrorInfo({ - message: `Could not find field action definition for action '${action.name}'`, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - }) - ); - continue; - } - parsedAction.definition.populateFieldAction(parsedAction); - - /** @deprecated Support old-style transformation-action-based expressions. */ - if (isSource && (action.Expression || action['@type'] === 'Expression')) { - mapping.transition.enableExpression = true; - mapping.transition.expression = new ExpressionModel(mapping, cfg); - const expr = action.Expression - ? action.Expression.expression - : action['expression']; - mapping.transition.expression.insertText(expr); - } else if ( - isSource && - parsedAction.definition && - [Multiplicity.ONE_TO_MANY, Multiplicity.MANY_TO_ONE].includes( - parsedAction.definition.multiplicity - ) - ) { - if (mapping.transition.transitionFieldAction) { - cfg.logger! - .warn(`Duplicated multiplicity transformations were detected: \ - ${mapping.transition.transitionFieldAction.name} is being overwritten by ${parsedAction.name} ...`); - } - mapping.transition.transitionFieldAction = parsedAction; - } else { - mappedField.actions.push(parsedAction); - } - } - } - - private static deserializeMappedField( - mapping: MappingModel, - field: IField, - isSource: boolean, - cfg: ConfigModel - ): MappedField | null { - if (MappingUtil.isConstantField(field)) { - if (field.docId) { - cfg.constantDoc.id = field.docId; - } else { - field.docId = cfg.constantDoc.id; - } - } else if (MappingUtil.isPropertyField(field)) { - const doc = isSource ? cfg.sourcePropertyDoc : cfg.targetPropertyDoc; - if (field.docId) { - doc.id = field.docId; - } else { - field.docId = doc.id; - } - field.path = cfg.documentService.getPropertyPath( - (field as IPropertyField).scope, - field.name! - ); - } else if (!field.docId) { - cfg.errorService.addError( - new ErrorInfo({ - message: 'Parsed mapping field does not have document id, dropping.', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: field, - }) - ); - return null; - } - const mappedField: MappedField = new MappedField(); - mappedField.mappingField = field; - mapping.addMappedField(mappedField, isSource); - if (field.actions) { - this.deserializeFieldActions(field, mappedField, mapping, cfg, isSource); - } - return mappedField; - } - - private static parseAction(action: IFieldAction): FieldAction { - if (action['@type']) { - return MappingSerializer.parseNewAction(action); - } else { - // TODO: check this non null operator - return MappingSerializer.parseOldAction(action)!; - } - } - - /** - * @deprecated actionName: {param:...} style has been deprecated. Use {`@type`: actionName} style action description. - */ - private static parseOldAction(action: IFieldAction): FieldAction | null { - for (const actionName of Object.keys(action)) { - if (!action.hasOwnProperty(actionName)) { - return null; - } - const parsedAction: FieldAction = new FieldAction(); - parsedAction.name = actionName; - const actionParams: any = action[actionName]; - if (actionParams) { - for (const paramName of Object.keys(actionParams)) { - if (!actionParams.hasOwnProperty(paramName)) { - return null; - } - const parsedArgumentValue: FieldActionArgumentValue = - new FieldActionArgumentValue(); - parsedArgumentValue.name = paramName; - let value = actionParams[paramName]; - value = value == null ? null : value.toString(); - parsedArgumentValue.value = value; - parsedAction.argumentValues.push(parsedArgumentValue); - } - } - return parsedAction; - } - return null; - } - - private static parseNewAction(action: IFieldAction): FieldAction { - const parsedAction: FieldAction = new FieldAction(); - parsedAction.name = action['@type']!; - for (const [key, value] of Object.entries(action)) { - if ('@type' === key) { - continue; - } - const parsedArgumentValue: FieldActionArgumentValue = - new FieldActionArgumentValue(); - parsedArgumentValue.name = key; - const valueString = value == null ? null : (value as any).toString(); - parsedArgumentValue.value = valueString; - parsedAction.argumentValues.push(parsedArgumentValue); - } - return parsedAction; - } -} diff --git a/packages/ui/src/_bk_atlasmap/core/utils/mapping-util.ts b/packages/ui/src/_bk_atlasmap/core/utils/mapping-util.ts deleted file mode 100644 index bba27de3c..000000000 --- a/packages/ui/src/_bk_atlasmap/core/utils/mapping-util.ts +++ /dev/null @@ -1,353 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - CONSTANT_FIELD_JSON_TYPE, - IPropertyField, - PROPERTY_FIELD_JSON_TYPE, -} from '../contracts/mapping'; -import { - DocumentDefinition, - PaddingField, -} from '../models/document-definition.model'; -import { - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, -} from '../models/error.model'; -import { MappedField, MappingModel } from '../models/mapping.model'; -import { ConfigModel } from '../models/config.model'; -import { Field } from '../models/field.model'; -import { IField } from '../contracts/common'; - -/** - * Static routines for handling mappings. - */ -export class MappingUtil { - static updateMappingsFromDocuments(cfg: ConfigModel): void { - // TODO: check this non null operator - for (const mapping of cfg.mappings!.mappings) { - MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, true); - MappingUtil.updateMappedFieldsFromDocuments(mapping, cfg, false); - } - for (const doc of cfg.getAllDocs()) { - if (doc.id == null) { - doc.id = - 'DOC.' + - doc.name + - '.' + - Math.floor(Math.random() * 1000000 + 1).toString(); - } - } - } - - static updateMappedFieldsFromDocuments( - mapping: MappingModel, - cfg: ConfigModel, - isSource: boolean - ): void { - let mappedFields: MappedField[] = mapping.getMappedFields(isSource); - let mappedFieldIndex = -1; - - for (const mappedField of mappedFields) { - let doc: DocumentDefinition | null = null; - mappedFieldIndex += 1; - - if ( - mappedField.field instanceof PaddingField || - mappedField.mappingField === undefined - ) { - continue; - } - if (MappingUtil.isPropertyField(mappedField.mappingField)) { - doc = isSource ? cfg.sourcePropertyDoc : cfg.targetPropertyDoc; - // Preserve property Document ID from parsed data - if (mappedField.mappingField.docId) { - doc.id = mappedField.mappingField.docId; - } - } else if (MappingUtil.isConstantField(mappedField.mappingField)) { - doc = cfg.constantDoc; - // Preserve constant Document ID from parsed data - if (mappedField.mappingField.docId) { - doc.id = mappedField.mappingField.docId; - } - } else { - if (mappedField.mappingField.docId == null) { - cfg.errorService.addError( - new ErrorInfo({ - message: `Could not find doc ID for mapped field ${mappedField.mappingField.name}`, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - }) - ); - continue; - } - doc = cfg.getDocForIdentifier( - mappedField.mappingField.docId!, - isSource - ); - if (doc == null) { - if (mappedField.mappingField.name != null) { - cfg.errorService.addError( - new ErrorInfo({ - message: `Could not find document for mapped field '${mappedField.mappingField.name}' \ -with ID ${mappedField.mappingField.docId}`, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - }) - ); - } - continue; - } - - doc.id = mappedField.mappingField.docId; - } - - if (!mappedField.mappingField.path) { - continue; - } - mappedField.field = doc.getField(mappedField.mappingField.path); - - if (mappedField.field == null) { - // Check for collection instance. - if (mappedField.mappingField.path.indexOf('<0>') >= 0) { - mappedField.field = doc.getField( - mappedField.mappingField.path!.replace('<0>', '<>') - ); - } else if ( - MappingUtil.isConstantField(mappedField.mappingField) && - mappedField.mappingField.value && - mappedField.mappingField.fieldType - ) { - let constantField = cfg.constantDoc.getField( - mappedField.mappingField.value - ); - if (!constantField) { - constantField = new Field(); - } - constantField.value = mappedField.mappingField.value; - constantField.type = mappedField.mappingField.fieldType; - constantField.displayName = constantField.value; - constantField.name = constantField.value; - constantField.path = constantField.value; - constantField.userCreated = true; - mappedField.field = constantField; - doc.addField(constantField); - } else if ( - MappingUtil.isPropertyField(mappedField.mappingField) && - mappedField.mappingField.fieldType && - mappedField.mappingField.name && - mappedField.mappingField.path - ) { - const propMappingField = mappedField.mappingField as IPropertyField; - let propertyField = doc.getField(propMappingField.path!); - - if (!propertyField) { - propertyField = new Field(); - } - let fieldName = propMappingField.name; - propertyField.type = propMappingField.fieldType!; - if (propMappingField.scope) { - propertyField.scope = propMappingField.scope; - } - propertyField.displayName = fieldName!; - propertyField.name = fieldName!; - propertyField.path = propMappingField.path!; - propertyField.userCreated = true; - mappedField.field = propertyField; - doc.addField(propertyField); - } else { - cfg.errorService.addError( - new ErrorInfo({ - message: `Could not find field from document '${doc.name}' for mapped field '${mappedField.mappingField.name}'`, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: { mappedField: mappedField, doc: doc }, - }) - ); - return; - } - } - - const zeroBasedIndex = +mappedField.mappingField.index!; // TODO: check this non null operator - mappedFields = mapping.getMappedFields(isSource); - if (zeroBasedIndex <= mappedFieldIndex) { - mappedFields[mappedFieldIndex] = mappedField; - } else { - cfg.mappingService.addPlaceholders( - zeroBasedIndex - mappedFieldIndex, - mapping, - mappedFieldIndex, - isSource - ); - } - } - } - - /** - * Check all mappings in the current context and remove if it refers to un-existing fields. - * - * @param cfg ConfigModel - */ - static removeStaleMappings(cfg: ConfigModel): void { - let index = 0; - let sourceFieldPaths: string[] = []; - for (const doc of cfg.getDocs(true)) { - sourceFieldPaths = sourceFieldPaths.concat( - Field.getFieldPaths(doc.getAllFields()) - ); - } - let targetSourcePaths: string[] = []; - for (const doc of cfg.getDocs(false)) { - targetSourcePaths = targetSourcePaths.concat( - Field.getFieldPaths(doc.getAllFields()) - ); - } - // TODO: check these non null operator - while (index < cfg.mappings!.mappings.length) { - const mapping: MappingModel = cfg.mappings!.mappings[index]; - const mappingIsStale: boolean = this.isMappingStale( - mapping, - sourceFieldPaths, - targetSourcePaths - ); - if (mappingIsStale) { - cfg.mappings!.mappings.splice(index, 1); - } else { - index++; - } - } - } - - private static isMappingStale( - mapping: MappingModel, - sourceFieldPaths: string[], - targetSourcePaths: string[] - ): boolean { - for (const field of mapping.getFields(true)) { - if ( - !(field instanceof PaddingField) && - sourceFieldPaths.indexOf(field.path) === -1 - ) { - return true; - } - } - for (const field of mapping.getFields(false)) { - if ( - !(field instanceof PaddingField) && - targetSourcePaths.indexOf(field.path) === -1 - ) { - return true; - } - } - - return false; - } - - static updateDocumentNamespacesFromMappings(cfg: ConfigModel): void { - const docs: DocumentDefinition[] = cfg.getDocs(false); - - // TODO: check this non null operator - for (const parsedDoc of cfg.mappings!.parsedDocs) { - if (!parsedDoc) { - continue; - } - if (parsedDoc.isSource) { - continue; - } - if (parsedDoc.namespaces.length === 0) { - continue; - } - - const doc = this.getDocById(parsedDoc.id, docs); - if (doc == null) { - cfg.errorService.addError( - new ErrorInfo({ - message: `Could not find document with identifier '${parsedDoc.id}' for namespace override.`, - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - object: { - identifier: parsedDoc.id, - parsedDoc: parsedDoc, - docs: docs, - }, - }) - ); - continue; - } - - doc.namespaces = [...parsedDoc.namespaces]; - } - } - - private static getDocById( - documentId: string, - docs: DocumentDefinition[] - ): DocumentDefinition | null { - if (documentId == null || docs == null || !docs.length) { - return null; - } - for (const doc of docs) { - if (doc.id === documentId) { - return doc; - } - } - return null; - } - - static activeMapping(cfg: ConfigModel): boolean { - return !!cfg?.mappings?.activeMapping; - } - - /** - * Return true if the specified mapped field array has any established field actions, - * false otherwise. - * - * @param fields - */ - static hasFieldAction(fields: MappedField[]): boolean { - for (let field of fields) { - if (field.actions.length > 0) { - return true; - } - } - return false; - } - - static hasMappedCollection( - mapping: MappingModel, - isSource: boolean - ): boolean | null { - const mappedFields = mapping.getMappedFields(isSource); - return ( - mapping.isFullyMapped() && - mappedFields[0].field && - mappedFields[0].field.isInCollection() - ); - } - - static isPropertyField(field: IField) { - return field?.jsonType === PROPERTY_FIELD_JSON_TYPE; - } - - static isConstantField(field: IField) { - return field?.jsonType === CONSTANT_FIELD_JSON_TYPE; - } -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/index.ts b/packages/ui/src/_bk_atlasmap/impl/dialogs/index.ts deleted file mode 100644 index 370a40b11..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from '../../../components/dialogs/useConfirmationDialog'; -export * from './useConstantDialog'; -export * from './useCustomClassDialog'; -export * from './useDeleteConstantDialog'; -export * from './useDeleteDocumentDialog'; -export * from './useCaptureDocumentIDToast'; -export * from './useChangeDocumentNameDialog'; -export * from './useDeleteMappingDialog'; -export * from './useDeletePropertyDialog'; -export * from './useImportADMArchiveDialog'; -export * from './useImportDocumentDialog'; -export * from './useNamespaceDialog'; -export * from './useParametersDialog'; -export * from './usePropertyDialog'; -export * from './useRemoveMappedFieldDialog'; -export * from './useResetAtlasmapDialog'; -export * from './useSpecifyInstanceSchemaDialog'; -export * from './useToggleExpressionModeDialog'; diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useCaptureDocumentIDToast.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useCaptureDocumentIDToast.tsx deleted file mode 100644 index 4cc2d9aa8..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useCaptureDocumentIDToast.tsx +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback, useRef } from 'react'; - -import React from 'react'; -import { TimedToast } from '../../UI'; -import { copyToClipboard } from '../utils/ui'; -import { useToggle } from '../utils'; - -let docId = ''; - -function useCreateToast(): [ReactElement, (cb: () => void) => void] { - const { state, toggleOn, toggleOff } = useToggle(false); - const onExecuteCb = useRef<(() => void) | null>(null); - const onClose = () => { - toggleOff(); - }; - const description = 'Document ID ' + docId + ' copied to clipboard.'; - const openToast = (executeCb: () => void) => { - onExecuteCb.current = executeCb; - toggleOn(); - }; - let toastElement: ReactElement = ( - - {description} - - ); - - if (state) { - if (onExecuteCb.current) { - onExecuteCb.current(); - } - } else { - toastElement = ; - } - return [toastElement, openToast]; -} - -export function useCaptureDocumentIDToast(): [ - ReactElement, - (documentId: string) => void, -] { - const [captureDocumentIDToast, openCaptureDocumentIDToast] = useCreateToast(); - const onCaptureDocumentID = useCallback( - (documentId: string) => { - docId = documentId; - openCaptureDocumentIDToast(() => copyToClipboard(documentId)); - }, - [openCaptureDocumentIDToast], - ); - return [captureDocumentIDToast, onCaptureDocumentID]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useChangeDocumentNameDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useChangeDocumentNameDialog.tsx deleted file mode 100644 index a142d11cf..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useChangeDocumentNameDialog.tsx +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ChangeDocumentNameDialog, IDocumentName } from '../../UI'; -import React, { ReactElement, useCallback, useState } from 'react'; - -import { useToggle } from '../utils'; - -type ChangeDocumentNameCallback = (documentNameInfo: IDocumentName) => void; - -export function useChangeDocumentNameDialog(): [ - ReactElement, - (cb: ChangeDocumentNameCallback, documentNameInfo: IDocumentName) => void, -] { - const [onDocumentNameCb, setOnChangeDocumentNameCb] = - useState(null); - const [initialDocumentName, setInitialDocumentName] = - useState({ - id: '', - name: '', - isSource: false, - }); - const { state, toggleOn, toggleOff } = useToggle(false); - const onConfirm = useCallback( - (documentNameInfo: IDocumentName) => { - if (onDocumentNameCb) { - onDocumentNameCb(documentNameInfo); - toggleOff(); - } - }, - [onDocumentNameCb, toggleOff], - ); - const dialog = ( - - ); - const onOpenChangeDocumentNameDialog = useCallback( - (callback: ChangeDocumentNameCallback, documentNameInfo: IDocumentName) => { - setOnChangeDocumentNameCb(() => callback); - setInitialDocumentName(documentNameInfo); - toggleOn(); - }, - [toggleOn], - ); - return [dialog, onOpenChangeDocumentNameDialog]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useConstantDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useConstantDialog.tsx deleted file mode 100644 index b2c10294e..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useConstantDialog.tsx +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ConstantDialog, IConstant } from '../../UI'; -import { ReactElement, useCallback, useState } from 'react'; - -import { constantTypes } from '../../core'; -import { useToggle } from '../utils'; -import { IDocument } from '../../../models'; - -type ConstantCallback = (constant: IConstant, origName?: string) => void; - -export function useConstantDialog( - title: string, -): [ReactElement, (cb: ConstantCallback, constants: IDocument | null, constant?: IConstant) => void] { - const [onConstantCb, setOnConstantCb] = useState(null); - const [initialConstant, setInitialConstant] = useState({ - name: '', - value: '', - valueType: constantTypes[0][0], - }); - const [constantsDoc, setConstants] = useState(null); - const { state, toggleOn, toggleOff } = useToggle(false); - const onConfirm = useCallback( - (constant: IConstant) => { - if (onConstantCb) { - if (initialConstant?.name !== constant.name) { - onConstantCb(constant, initialConstant?.name); - } else { - onConstantCb(constant); - } - toggleOff(); - } - }, - [initialConstant, onConstantCb, toggleOff], - ); - function onValidation(name: string): boolean { - let fieldNameExists = false; - if (constantsDoc) { - // Ensure constant name is unique - const fields = constantsDoc.fields.filter((fieldOrGroup) => fieldOrGroup.name === name); - fieldNameExists = fields.length > 0; - } - return name === initialConstant?.name || !fieldNameExists; - } - const dialog = ( - ({ - value, - label, - }))} - onCancel={toggleOff} - onConfirm={onConfirm} - onValidation={onValidation} - {...(initialConstant || {})} - /> - ); - const onOpenConstantDialog = useCallback( - (callback: ConstantCallback, constantsDoc: IDocument | null, constant?: IConstant) => { - // we use a closure to set the state here else React will think that callback - // is the function to retrieve the state and will call it immediately. - setOnConstantCb(() => callback); - if (constant) { - setInitialConstant(constant); - } - if (constantsDoc) { - setConstants(constantsDoc); - } - toggleOn(); - }, - [toggleOn], - ); - return [dialog, onOpenConstantDialog]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useCustomClassDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useCustomClassDialog.tsx deleted file mode 100644 index 1b0e2a114..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useCustomClassDialog.tsx +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { CustomClassDialog, ICustomClass } from '../../UI'; -import { ReactElement, useCallback, useState } from 'react'; - -import { collectionTypes } from '../../core'; -import { getCustomClassNameOptions } from '../utils/document'; -import { useToggle } from '../utils'; - -type CustomClassCallback = (constant: ICustomClass) => void; - -export function useCustomClassDialog( - title: string, -): [ReactElement, (cb: CustomClassCallback, constant?: ICustomClass) => void] { - const [onCustomClassCb, setOnCustomClassCb] = - useState(null); - - const [initialCustomClass, setInitialCustomClass] = - useState(null); - - const [customClassNames, setCustomClassNames] = useState([]); - - const { state, toggleOn, toggleOff } = useToggle(false); - const onConfirm = useCallback( - (constant: ICustomClass) => { - if (onCustomClassCb) { - onCustomClassCb(constant); - toggleOff(); - } - }, - [onCustomClassCb, toggleOff], - ); - - const getCustomClassNames = async () => { - setCustomClassNames(await getCustomClassNameOptions()); - }; - - const dialog = ( - ({ - value, - label, - }))} - onCancel={toggleOff} - onConfirm={onConfirm} - {...(initialCustomClass || { collectionType: 'NONE' })} - /> - ); - const onOpenCustomClassDialog = useCallback( - (callback: CustomClassCallback, constant?: ICustomClass) => { - // we use a closure to set the state here else React will think that callback - // is the function to retrieve the state and will call it immediately. - setOnCustomClassCb(() => callback); - if (constant) { - setInitialCustomClass(constant); - } - getCustomClassNames(); - toggleOn(); - }, - [toggleOn], - ); - return [dialog, onOpenCustomClassDialog]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteConstantDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteConstantDialog.tsx deleted file mode 100644 index 28369a856..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteConstantDialog.tsx +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useDeleteConstantDialog(): [ReactElement, (constName: string) => void] { - const { deleteConstant } = useDataMapper(); - const [deleteConstantDialog, openDeleteConstantDialog] = useConfirmationDialog( - 'Delete constant?', - 'Are you sure you want to delete the selected constant and remove any associated mapping references?', - ); - const onDeleteConstant = useCallback( - (constName: string) => openDeleteConstantDialog(() => deleteConstant(constName)), - [deleteConstant, openDeleteConstantDialog], - ); - return [deleteConstantDialog, onDeleteConstant]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteDocumentDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteDocumentDialog.tsx deleted file mode 100644 index 8c1309239..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteDocumentDialog.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { GroupId } from '../../Views'; -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useDeleteDocumentDialog(): [ReactElement, (id: GroupId, isSource: boolean) => void] { - const { deleteAtlasFile } = useDataMapper(); - const [deleteDialog, openDeleteDialog] = useConfirmationDialog( - 'Delete selected document?', - 'Are you sure you want to delete the selected document and remove any associated mappings?', - ); - const onDeleteDocument = useCallback( - (id: GroupId, isSource: boolean) => openDeleteDialog(() => deleteAtlasFile(id, isSource)), - [deleteAtlasFile, openDeleteDialog], - ); - return [deleteDialog, onDeleteDocument]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteMappingDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteMappingDialog.tsx deleted file mode 100644 index 77ea65d57..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeleteMappingDialog.tsx +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; -import { IMapping } from '../../../models'; - -export function useDeleteMappingDialog(): [ReactElement, (mapping: IMapping) => void] { - const { removeMapping, deselectMapping } = useDataMapper(); - const [deleteMappingDialog, openDeleteMappingDialog] = useConfirmationDialog( - 'Remove Mapping?', - 'Are you sure you want to remove the current mapping?', - ); - const onDeleteMapping = useCallback( - (mapping: IMapping) => { - openDeleteMappingDialog(() => { - removeMapping(mapping.mapping); - deselectMapping(); - }); - }, - [deselectMapping, openDeleteMappingDialog, removeMapping], - ); - - return [deleteMappingDialog, onDeleteMapping]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeletePropertyDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeletePropertyDialog.tsx deleted file mode 100644 index 4132b9b5b..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useDeletePropertyDialog.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useDeletePropertyDialog(): [ - ReactElement, - (propName: string, propScope: string, isSource: boolean) => void, -] { - const { deleteProperty } = useDataMapper(); - const [deletePropertyDialog, openDeletePropertyDialog] = useConfirmationDialog( - 'Delete property?', - 'Are you sure you want to delete the selected property and remove any associated mapping references?', - ); - const onDeleteProperty = useCallback( - (propName: string, propScope: string, isSource: boolean) => - openDeletePropertyDialog(() => deleteProperty(propName, propScope, isSource)), - [deleteProperty, openDeletePropertyDialog], - ); - return [deletePropertyDialog, onDeleteProperty]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useExportADMArchiveDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useExportADMArchiveDialog.tsx deleted file mode 100644 index 78217139e..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useExportADMArchiveDialog.tsx +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { ReactElement, useCallback } from 'react'; - -import { ExportMappingDialog } from '../../UI'; -import { useToggle } from '../utils'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useExportADMArchiveDialog(): [ReactElement, () => void] { - const { state, toggleOn, toggleOff } = useToggle(false); - const { exportADMArchiveFile } = useDataMapper(); - const onExportADMArchiveFile = useCallback( - (filename: string) => { - exportADMArchiveFile(filename); - toggleOff(); - }, - [exportADMArchiveFile, toggleOff], - ); - const dialog = ; - return [dialog, toggleOn]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useImportADMArchiveDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useImportADMArchiveDialog.tsx deleted file mode 100644 index f303bc83e..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useImportADMArchiveDialog.tsx +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useImportADMArchiveDialog(): [ReactElement, (file: File) => void] { - const { importADMArchiveFile } = useDataMapper(); - const [ImportADMArchiveDialog, openImportADMArchiveDialog] = useConfirmationDialog( - 'Import ADM archive file?', - 'Importing a new ADM archive file will discard all unsaved changes. To save the current mappings, use the Export feature.', - ); - const onImportADMArchive = useCallback( - (file: File) => openImportADMArchiveDialog(() => importADMArchiveFile(file)), - [importADMArchiveFile, openImportADMArchiveDialog], - ); - return [ImportADMArchiveDialog, onImportADMArchive]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useImportDocumentDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useImportDocumentDialog.tsx deleted file mode 100644 index e5310feda..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useImportDocumentDialog.tsx +++ /dev/null @@ -1,76 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback, useState } from 'react'; -import { getCsvParameterOptions } from '../../core'; -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useParametersDialog } from './useParametersDialog'; -import { useSpecifyInstanceSchemaDialog } from './useSpecifyInstanceSchemaDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useImportDocumentDialog(): [ReactElement, (selectedFile: File, isSource: boolean) => void] { - const { configModel, documentExists, importInstanceSchema } = useDataMapper(); - const [importDialog, openImportDialog] = useConfirmationDialog( - 'Confirm document import', - 'A document with the selected name has already been imported into the specified panel. It will appear in addition to the pre-existing document.', - ); - const [parametersDialog, openParametersDialog] = useParametersDialog('Select CSV Processing Parameters'); - const [defaultSchema, setDefaultSchema] = useState(false); - const [specifyInstanceSchemaDialog, openSpecifyInstanceSchema] = useSpecifyInstanceSchemaDialog(defaultSchema); - - const importFile = useCallback( - (selectedFile: File, isSource: boolean) => { - if (selectedFile.name) { - const userFileSplit = selectedFile.name.split('.'); - const userFileSuffix: string = userFileSplit[userFileSplit.length - 1].toUpperCase(); - if (userFileSuffix === 'CSV') { - openParametersDialog((parameters) => { - const inspectionParameters: { [key: string]: string } = {}; - for (const parameter of parameters) { - inspectionParameters[parameter.name] = parameter.value; - } - importInstanceSchema(selectedFile, configModel, isSource, false, inspectionParameters); - }, getCsvParameterOptions()); - return; - } - - setDefaultSchema(userFileSuffix === 'XSD' ? true : false); - openSpecifyInstanceSchema((isSchema: boolean) => { - importInstanceSchema(selectedFile, configModel, isSource, isSchema); - }); - } - }, - [configModel, importInstanceSchema, openParametersDialog, openSpecifyInstanceSchema], - ); - - const onImportDocument = useCallback( - (selectedFile: File, isSource: boolean) => { - if (documentExists(selectedFile, isSource)) { - openImportDialog(() => importFile(selectedFile, isSource)); - } else { - importFile(selectedFile, isSource); - } - }, - [documentExists, importFile, openImportDialog], - ); - return [ - <> - {importDialog} - {parametersDialog} - {specifyInstanceSchemaDialog} - , - onImportDocument, - ]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useNamespaceDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useNamespaceDialog.tsx deleted file mode 100644 index 69e07c09f..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useNamespaceDialog.tsx +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { INamespace, NamespaceDialog } from '../../UI'; -import React, { ReactElement, useCallback, useState } from 'react'; - -import { useToggle } from '../utils'; - -type NamespaceCallback = (namespace: INamespace) => void; - -export function useNamespaceDialog( - title: string, -): [ReactElement, (cb: NamespaceCallback, namespace?: INamespace) => void] { - const [onNamespaceCb, setOnNamespaceCb] = useState( - null, - ); - const [initialNamespace, setInitialNamespace] = useState( - null, - ); - const { state, toggleOn, toggleOff } = useToggle(false); - const onConfirm = useCallback( - (namespace: INamespace) => { - if (onNamespaceCb) { - onNamespaceCb(namespace); - toggleOff(); - } - }, - [onNamespaceCb, toggleOff], - ); - const dialog = ( - - ); - const onOpenNamespaceDialog = useCallback( - (callback: NamespaceCallback, namespace?: INamespace) => { - // we use a closure to set the state here else React will think that callback - // is the function to retrieve the state and will call it immediately. - setOnNamespaceCb(() => callback); - if (namespace) { - setInitialNamespace(namespace); - } - toggleOn(); - }, - [toggleOn], - ); - return [dialog, onOpenNamespaceDialog]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useParametersDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useParametersDialog.tsx deleted file mode 100644 index 710b592d9..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useParametersDialog.tsx +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import React, { ReactElement, useCallback, useEffect, useState } from 'react'; -import { IParameter } from '@atlasmap/core'; -import { ParametersDialog } from '../../UI'; - -import { useToggle } from '../utils'; - -type ParametersCallback = (parameters: IParameter[]) => void; - -export function useParametersDialog( - title: string, -): [ReactElement, (cb: ParametersCallback, parameters?: IParameter[]) => void] { - const [onParametersCb, setOnParametersCb] = - useState(null); - const [parameters, setParameters] = useState([]); - const { state, toggleOn, toggleOff } = useToggle(false); - const reset = useCallback(() => { - setParameters([]); - }, []); - const onConfirm = useCallback( - (parameters: IParameter[]) => { - if (onParametersCb) { - onParametersCb(parameters); - toggleOff(); - } - }, - [onParametersCb, toggleOff], - ); - const dialog = ( - p.required || p.enabled)} - /> - ); - const onOpenParametersDialog = useCallback( - (callback: ParametersCallback, parameters?: IParameter[]) => { - setOnParametersCb(() => callback); - if (parameters) { - setParameters(parameters); - } - toggleOn(); - }, - [toggleOn], - ); - useEffect(reset, [reset]); - return [dialog, onOpenParametersDialog]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/usePropertyDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/usePropertyDialog.tsx deleted file mode 100644 index 96915204c..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/usePropertyDialog.tsx +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { IProperty, PropertyDialog } from '../../UI'; -import { ReactElement, useCallback, useState } from 'react'; - -import { propertyTypes } from '../../core'; -import { useToggle } from '../utils'; -import { IDocument } from '../../../models'; - -type PropertyCallback = (property: IProperty) => void; - -export function usePropertyDialog( - title: string, - scopeOptions: { - value: string; - label: string; - }[], -): [ReactElement, (cb: PropertyCallback, properties: IDocument | null, property?: IProperty) => void] { - const [onPropertyCb, setOnPropertyCb] = useState(null); - const [initialProperty, setInitialProperty] = useState({ - name: '', - valueType: propertyTypes[0][0], - scope: scopeOptions[0].value, - }); - const [properties, setProperties] = useState(null); - const { state, toggleOn, toggleOff } = useToggle(false); - const onConfirm = useCallback( - (property: IProperty) => { - if (onPropertyCb) { - onPropertyCb(property); - toggleOff(); - } - }, - [onPropertyCb, toggleOff], - ); - function onValidation(name: string, scope: string): boolean { - let fieldNameExists = false; - if (properties) { - // Ensure proerty name/scope combination is unique - const fields = properties.fields.filter( - (fieldOrGroup) => fieldOrGroup.name === name && fieldOrGroup.amField.scope === scope, - ); - fieldNameExists = fields.length > 0; - } - return (name === initialProperty?.name && scope === initialProperty.scope) || !fieldNameExists; - } - const dialog = ( - ({ - value, - label, - }))} - scopeOptions={scopeOptions} - isOpen={state} - onCancel={toggleOff} - onConfirm={onConfirm} - onValidation={onValidation} - {...(initialProperty || {})} - /> - ); - const onOpenPropertyDialog = useCallback( - (callback: PropertyCallback, properties: IDocument | null, property?: IProperty) => { - // we use a closure to set the state here else React will think that callback - // is the function to retrieve the state and will call it immediately. - setOnPropertyCb(() => callback); - if (property) { - setInitialProperty(property); - } - // Set properties even if null to reset values when switching panels. - setProperties(properties); - toggleOn(); - }, - [toggleOn], - ); - return [dialog, onOpenPropertyDialog]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useRemoveMappedFieldDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useRemoveMappedFieldDialog.tsx deleted file mode 100644 index afb048474..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useRemoveMappedFieldDialog.tsx +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; - -export function useRemoveMappedFieldDialog(): [ReactElement, (cb: () => void) => void] { - const [removeMappedFieldDialog, openRemoveMappedFieldDialog] = useConfirmationDialog( - 'Remove field?', - 'Are you sure you want to remove this field?', - ); - const onRemoveMappedField = useCallback( - (removeMappedField: () => void) => openRemoveMappedFieldDialog(removeMappedField), - [openRemoveMappedFieldDialog], - ); - return [removeMappedFieldDialog, onRemoveMappedField]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useResetAtlasmapDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useResetAtlasmapDialog.tsx deleted file mode 100644 index 05de19c9f..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useResetAtlasmapDialog.tsx +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useResetAtlasmapDialog(): [ReactElement, () => void] { - const { resetAtlasmap } = useDataMapper(); - const [resetDialog, openResetDialog] = useConfirmationDialog( - 'Reset All Mappings and Imports?', - 'Are you sure you want to reset all mappings and clear all imported documents?', - ); - const onResetAtlasmap = useCallback(() => openResetDialog(resetAtlasmap), [openResetDialog, resetAtlasmap]); - - return [resetDialog, onResetAtlasmap]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx deleted file mode 100644 index 5204e4065..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useSpecifyInstanceSchemaDialog.tsx +++ /dev/null @@ -1,103 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Modal, Radio } from '@patternfly/react-core'; -import React, { ReactElement, useRef } from 'react'; - -import { useToggle } from '../utils'; - -export function useSpecifyInstanceSchemaDialog( - defaultSchema: boolean, -): [ReactElement, (cb: (isSchema: boolean) => void) => void] { - const dialogState: { - state: boolean; - toggleOn: () => void; - toggleOff: () => void; - } = useToggle(false); - const isSchema: { - state: boolean; - toggleOn: () => void; - toggleOff: () => void; - } = useToggle(defaultSchema); - const onConfirmCb = useRef<((isSchema: boolean) => void) | null>(null); - const onConfirm = () => { - if (onConfirmCb.current) { - onConfirmCb.current(isSchema.state); - } - dialogState.toggleOff(); - }; - const openDialog = (confirmCb: (isSchema: boolean) => void) => { - onConfirmCb.current = confirmCb; - if (defaultSchema) { - isSchema.toggleOn(); - } else { - isSchema.toggleOff(); - } - dialogState.toggleOn(); - }; - const handleInstanceChange = () => { - isSchema.toggleOff(); - }; - const handleSchemaChange = () => { - isSchema.toggleOn(); - }; - return [ - - OK - , - ]} - > - { - - - - - } - , - openDialog, - ]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/dialogs/useToggleExpressionModeDialog.tsx b/packages/ui/src/_bk_atlasmap/impl/dialogs/useToggleExpressionModeDialog.tsx deleted file mode 100644 index 3cf4988cb..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/dialogs/useToggleExpressionModeDialog.tsx +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useCallback } from 'react'; - -import { useConfirmationDialog } from '../../../components/dialogs/useConfirmationDialog'; -import { useDataMapper } from '../../../providers/useDataMapper'; - -export function useToggleExpressionModeDialog(): [ReactElement, () => void] { - const { mappingHasSourceCollection, toggleExpressionMode } = useDataMapper(); - const [toggleExpressionModeDialog, openToggleExpressionModeDialog] = useConfirmationDialog( - 'Disable Expression?', - 'If you disable an expression with a source collection, all source fields will be removed from the mapping. Proceed with expression disable?', - ); - const onToggleExpressionMode = useCallback((): void => { - if (mappingHasSourceCollection()) { - openToggleExpressionModeDialog(toggleExpressionMode); - } else { - toggleExpressionMode(); - } - }, [mappingHasSourceCollection, openToggleExpressionModeDialog, toggleExpressionMode]); - return [toggleExpressionModeDialog, onToggleExpressionMode]; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/index.ts b/packages/ui/src/_bk_atlasmap/impl/index.ts deleted file mode 100644 index 0ae34270c..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './utils'; -export * from '../../components/DataMapper'; -export * from '../../providers/DataMapperProvider'; -export * from './useDataMapperDialogs'; -export { useDataMapper } from '../../providers'; diff --git a/packages/ui/src/_bk_atlasmap/impl/reducers/data.ts b/packages/ui/src/_bk_atlasmap/impl/reducers/data.ts deleted file mode 100644 index 8692a0d83..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/reducers/data.ts +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { IMapping, IDocument, IField } from '../../../models'; - -export interface DataAction { - type: 'reset' | 'loading' | 'update' | 'error'; - payload?: DataActionPayload; -} - -export interface DataActionPayload { - pending?: boolean; - error?: boolean; - sources?: IDocument[]; - targets?: IDocument[]; - constants?: IDocument | null; - mappings?: IMapping[]; - selectedMapping?: IMapping | null; - sourcesFilter?: string; - sourceProperties?: IDocument | null; - targetsFilter?: string; - targetProperties?: IDocument | null; - flatSources?: IField[]; - flatTargets?: IField[]; -} - -export interface IDataState { - pending: boolean; - error: boolean; - sources: IDocument[]; - targets: IDocument[]; - sourceProperties: IDocument | null; - targetProperties: IDocument | null; - constants: IDocument | null; - mappings: IMapping[]; - selectedMapping: IMapping | null; - flatSources: IField[]; - flatTargets: IField[]; -} - -export function initDataState(): IDataState { - return { - pending: false, - error: false, - sourceProperties: null, - targetProperties: null, - constants: null, - sources: [], - targets: [], - mappings: [], - selectedMapping: null, - flatSources: [], - flatTargets: [], - }; -} - -export function dataReducer(state: IDataState, action: DataAction): IDataState { - switch (action.type) { - case 'reset': - return initDataState(); - case 'loading': - return { - ...state, - pending: true, - error: false, - }; - case 'update': - return { - ...state, - ...action.payload, - }; - case 'error': - return { - ...initDataState(), - }; - default: - return state; - } -} diff --git a/packages/ui/src/_bk_atlasmap/impl/reducers/index.ts b/packages/ui/src/_bk_atlasmap/impl/reducers/index.ts deleted file mode 100644 index 6dd86ef03..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/reducers/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './data'; -export * from './notifications'; diff --git a/packages/ui/src/_bk_atlasmap/impl/reducers/notifications.ts b/packages/ui/src/_bk_atlasmap/impl/reducers/notifications.ts deleted file mode 100644 index 1db22cc14..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/reducers/notifications.ts +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -import { INotification } from '../../../models'; - -export interface ResetNotificationsAction { - type: 'reset'; -} - -export interface UpdateNotificationsAction { - type: 'update'; - payload: { - notifications: INotification[]; - }; -} - -export interface DismissNotificationAction { - type: 'dismiss'; - payload: { - id: string; - }; -} - -export interface INotificationsState { - notifications: INotification[]; -} - -export function initNotificationsState(): INotificationsState { - return { - notifications: [], - }; -} - -export function notificationsReducer( - state: INotificationsState, - action: ResetNotificationsAction | UpdateNotificationsAction | DismissNotificationAction, -): INotificationsState { - switch (action.type) { - case 'reset': - return { - notifications: [], - }; - case 'update': - return { - notifications: action.payload.notifications.map((n) => ({ - ...n, - isRead: state.notifications.find((on) => on.id === n.id)?.isRead, - })), - }; - case 'dismiss': - return { - notifications: state.notifications.map((n) => (n.id === action.payload.id ? { ...n, isRead: true } : n)), - }; - default: - return state; - } -} diff --git a/packages/ui/src/_bk_atlasmap/impl/toolbarItems.module.css.d.ts b/packages/ui/src/_bk_atlasmap/impl/toolbarItems.module.css.d.ts deleted file mode 100644 index 21716d80b..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/toolbarItems.module.css.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -declare const styles: { - readonly "toggled": string; -}; -export = styles; - diff --git a/packages/ui/src/_bk_atlasmap/impl/useContextToolbar.tsx b/packages/ui/src/_bk_atlasmap/impl/useContextToolbar.tsx deleted file mode 100644 index 8a6ae6b56..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/useContextToolbar.tsx +++ /dev/null @@ -1,200 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - AboutToolbarItem, - AddMappingToolbarItem, - AtlasmapToolbarItem, - ToggleColumnMapperViewToolbarItem, - ToggleMappedFieldsToolbarItem, - ToggleMappingPreviewToolbarItem, - ToggleMappingTableViewToolbarItem, - ToggleNamespaceTableViewToolbarItem, - ToggleTypesToolbarItem, - ToggleUnmappedFieldsToolbarItem, -} from './toolbarItems'; -import { useMemo, useState } from 'react'; - -import { ContextToolbar } from '../Layout'; -import { ToolbarGroup } from '@patternfly/react-core'; -import { useToggle } from './utils'; -import { useDataMapper } from '../../providers/useDataMapper'; - -export type Views = 'ColumnMapper' | 'MappingTable' | 'NamespaceTable' | 'FreeView'; - -export interface IUseContextToolbarHandlers { - onImportADMArchiveFile: (file: File) => void; - onImportJarFile: (file: File) => void; - onExportAtlasFile: () => void; - onResetAtlasmap: () => void; - onAbout: () => void; -} - -export interface IUseContextToolbarData { - showImportAtlasFileToolbarItem?: boolean; - showImportJarFileToolbarItem?: boolean; - showExportAtlasFileToolbarItem?: boolean; - showResetToolbarItem?: boolean; - - showColumnMapperViewToolbarItem?: boolean; - showMappingTableViewToolbarItem?: boolean; - showNamespaceTableViewToolbarItem?: boolean; - - showToggleMappingPreviewToolbarItem?: boolean; - showToggleTypesToolbarItem?: boolean; - showToggleMappedFieldsToolbarItem?: boolean; - showToggleUnmappedFieldsToolbarItem?: boolean; - showAddNewMappingToolbarItem?: boolean; -} - -export function useContextToolbar({ - showImportAtlasFileToolbarItem = true, - showImportJarFileToolbarItem = true, - showExportAtlasFileToolbarItem = true, - showResetToolbarItem = true, - - showColumnMapperViewToolbarItem = true, - showMappingTableViewToolbarItem = true, - showNamespaceTableViewToolbarItem = true, - - showToggleMappingPreviewToolbarItem = true, - showToggleTypesToolbarItem = true, - showToggleMappedFieldsToolbarItem = true, - showToggleUnmappedFieldsToolbarItem = true, - showAddNewMappingToolbarItem = true, - - onImportADMArchiveFile, - onImportJarFile, - onExportAtlasFile, - onResetAtlasmap, - onAbout, -}: IUseContextToolbarData & IUseContextToolbarHandlers) { - const { - toggleMappingPreview: amToggleMappingPreview, - toggleShowMappedFields: amToggleShowMappedFields, - toggleShowUnmappedFields: amToggleShowUnmappedFields, - newMapping, - } = useDataMapper(); - - const [activeView, setActiveView] = useState('ColumnMapper'); - const { state: showMappingPreview, toggle: toggleShowMappingPreview } = useToggle(false, amToggleMappingPreview); - const { state: showTypes, toggle: toggleShowTypes } = useToggle(true); - const { state: showMappedFields, toggle: toggleShowMappedFields } = useToggle(true, amToggleShowMappedFields); - const { state: showUnmappedFields, toggle: toggleShowUnmappedFields } = useToggle(true, amToggleShowUnmappedFields); - - const contextToolbar = useMemo( - () => ( - - {(showImportAtlasFileToolbarItem || - showImportJarFileToolbarItem || - showExportAtlasFileToolbarItem || - showResetToolbarItem) && ( - - - - )} - {(showColumnMapperViewToolbarItem || showMappingTableViewToolbarItem || showNamespaceTableViewToolbarItem) && ( - - {showColumnMapperViewToolbarItem && ( - setActiveView('ColumnMapper')} - /> - )} - {showMappingTableViewToolbarItem && ( - setActiveView('MappingTable')} - /> - )} - {showNamespaceTableViewToolbarItem && ( - setActiveView('NamespaceTable')} - /> - )} - - )} - - {showToggleMappingPreviewToolbarItem && (activeView === 'ColumnMapper' || activeView === 'MappingTable') && ( - - )} - {showToggleTypesToolbarItem && (activeView === 'ColumnMapper' || activeView === 'MappingTable') && ( - - )} - {showToggleMappedFieldsToolbarItem && activeView === 'ColumnMapper' && ( - - )} - {showToggleUnmappedFieldsToolbarItem && activeView === 'ColumnMapper' && ( - - )} - {showAddNewMappingToolbarItem && (activeView === 'ColumnMapper' || activeView === 'MappingTable') && ( - - )} - {showAddNewMappingToolbarItem && (activeView === 'ColumnMapper' || activeView === 'MappingTable') && ( - - )} - - - ), - [ - showImportAtlasFileToolbarItem, - showImportJarFileToolbarItem, - showExportAtlasFileToolbarItem, - showResetToolbarItem, - onImportADMArchiveFile, - onImportJarFile, - onExportAtlasFile, - onResetAtlasmap, - onAbout, - showColumnMapperViewToolbarItem, - showMappingTableViewToolbarItem, - showNamespaceTableViewToolbarItem, - activeView, - showToggleMappingPreviewToolbarItem, - showMappingPreview, - toggleShowMappingPreview, - showToggleTypesToolbarItem, - showTypes, - toggleShowTypes, - showToggleMappedFieldsToolbarItem, - showMappedFields, - toggleShowMappedFields, - showToggleUnmappedFieldsToolbarItem, - showUnmappedFields, - toggleShowUnmappedFields, - showAddNewMappingToolbarItem, - newMapping, - ], - ); - - return { - activeView, - showMappingPreview, - showTypes, - showMappedFields, - showUnmappedFields, - contextToolbar, - }; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/useDataMapperDialogs.tsx b/packages/ui/src/_bk_atlasmap/impl/useDataMapperDialogs.tsx deleted file mode 100644 index 7b5a5169d..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/useDataMapperDialogs.tsx +++ /dev/null @@ -1,313 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { IConstant, IDocumentName, INamespace, IProperty } from '../UI'; -import { IParameter, getCsvParameterOptions } from '../core'; -import { useCallback, useMemo, useState } from 'react'; -import { enableCustomClass, getDocCSVParams, getPropertyScopeOptions, setDocCSVParams } from './utils'; -import { - useCaptureDocumentIDToast, - useChangeDocumentNameDialog, - useConstantDialog, - useCustomClassDialog, - useDeleteConstantDialog, - useDeleteDocumentDialog, - useDeleteMappingDialog, - useDeletePropertyDialog, - useImportADMArchiveDialog, - useImportDocumentDialog, - useNamespaceDialog, - useParametersDialog, - usePropertyDialog, - useRemoveMappedFieldDialog, - useResetAtlasmapDialog, - useSpecifyInstanceSchemaDialog, - useToggleExpressionModeDialog, -} from './dialogs'; - -import { createPortal } from 'react-dom'; - -import { useDataMapper } from '../../providers/useDataMapper'; -import { IDocument } from '../../models'; - -export interface IUseAtlasmapDialogsProps { - modalContainer: HTMLElement; -} -export function useDataMapperDialogs({ modalContainer }: IUseAtlasmapDialogsProps) { - const { - configModel, - selectedMapping, - createConstant, - editConstant, - createProperty, - editProperty, - createNamespace, - editNamespace, - deleteNamespace, - changeDocumentName, - } = useDataMapper(); - - //#region constant dialogs - const [createConstantDialog, openCreateConstantDialog] = useConstantDialog('Create Constant'); - const onCreateConstant = useCallback( - (constants: IDocument | null, addToActiveMapping?: boolean) => { - openCreateConstantDialog(({ name, value, valueType }) => { - createConstant(name, value, valueType, addToActiveMapping); - }, constants); - }, - [createConstant, openCreateConstantDialog], - ); - const [editConstantDialog, openEditConstantDialog] = useConstantDialog('Edit Constant'); - const onEditConstant = useCallback( - (constant: IConstant, constants: IDocument | null) => { - openEditConstantDialog( - ({ name, value, valueType }, origName) => { - editConstant(name, value, valueType, origName); - }, - constants, - constant, - ); - }, - [editConstant, openEditConstantDialog], - ); - const [deleteConstantDialog, onDeleteConstant] = useDeleteConstantDialog(); - //#endregion - - //#region property dialogs - const [scopeOptions, setScopeOptions] = useState(getPropertyScopeOptions(true)); - const [createPropertyDialog, openCreatePropertyDialog] = usePropertyDialog('Create Property', scopeOptions); - const onCreateProperty = useCallback( - (isSource: boolean, properties: IDocument | null, addToActiveMapping?: boolean) => { - setScopeOptions(getPropertyScopeOptions(isSource)); - openCreatePropertyDialog(({ name, valueType, scope }) => { - createProperty(name, valueType, scope, isSource, addToActiveMapping); - }, properties); - }, - [createProperty, openCreatePropertyDialog], - ); - const [editPropertyDialog, openEditPropertyDialog] = usePropertyDialog('Edit Property', scopeOptions); - const onEditProperty = useCallback( - (property: IProperty, isSource: boolean, properties: IDocument | null) => { - setScopeOptions(getPropertyScopeOptions(isSource)); - openEditPropertyDialog( - ({ name, valueType, scope }) => { - editProperty(property.name, valueType, property.scope, isSource, name, scope); - }, - properties, - property, - ); - }, - [editProperty, openEditPropertyDialog], - ); - const [deletePropertyDialog, onDeleteProperty] = useDeletePropertyDialog(); - //#endregion - - //#region atlasmap catalog - const [importADMArchiveDialog, onImportADMArchive] = useImportADMArchiveDialog(); - const [resetDialog, onResetAtlasmap] = useResetAtlasmapDialog(); - const [toggleExpressionModeDialog, onToggleExpressionMode] = useToggleExpressionModeDialog(); - //#endregion - - //#region document dialogs - const [importDocumentDialog, onImportDocument] = useImportDocumentDialog(); - const [deleteDocumentDialog, onDeleteDocument] = useDeleteDocumentDialog(); - const [captureDocumentNameToast, onCaptureDocumentID] = useCaptureDocumentIDToast(); - - const [changeDocumentNameDialog, openChangeDocumentNameDialog] = useChangeDocumentNameDialog(); - const onChangeDocumentName = useCallback( - (docNameInfo: IDocumentName) => { - openChangeDocumentNameDialog(({ id, name, isSource }) => { - changeDocumentName(id, name, isSource); - }, docNameInfo); - }, - [changeDocumentName, openChangeDocumentNameDialog], - ); - //#endregion - - //#region namespace table dialogs - const [createNamespaceDialog, openCreateNamespaceDialog] = useNamespaceDialog('Create namespace'); - const onCreateNamespace = useCallback( - (docName: string) => { - openCreateNamespaceDialog(({ alias, uri, locationUri, targetNamespace }) => - createNamespace(docName, alias, uri, locationUri, targetNamespace), - ); - }, - [createNamespace, openCreateNamespaceDialog], - ); - const [editNamespaceDialog, openEditNamespaceDialog] = useNamespaceDialog('Edit namespace'); - const onEditNamespace = useCallback( - (docName: string, namespace: INamespace) => { - openEditNamespaceDialog( - ({ alias, uri, locationUri, targetNamespace }) => - editNamespace(docName, namespace.alias, alias, uri, locationUri, targetNamespace), - namespace, - ); - }, - [editNamespace, openEditNamespaceDialog], - ); - //#endregion - - //#region mapping support dialogs - const [removeMappedFieldDialog, onRemoveMappedField] = useRemoveMappedFieldDialog(); - const [deleteMappingDialog, onDeleteMapping] = useDeleteMappingDialog(); - const onDeleteSelectedMapping = useCallback(() => { - if (selectedMapping) { - onDeleteMapping(selectedMapping); - } - }, [onDeleteMapping, selectedMapping]); - //#endregion - - //#region custom class dialogs - const [createEnableCustomClassDialog, openCreateEnableCustomClassDialog] = useCustomClassDialog( - 'Load Java Document From Custom Class', - ); - const onEnableCustomClass = useCallback( - (isSource: boolean): void => { - openCreateEnableCustomClassDialog(({ customClassName, collectionType }) => - enableCustomClass(configModel, customClassName, collectionType, isSource), - ); - }, - [configModel, openCreateEnableCustomClassDialog], - ); - //#endregion - - //#region CSV processing dialogs - const [editCSVParamsDialog, openEditCSVParamsDialog] = useParametersDialog('Edit CSV Processing Parameters'); - function initialCSVParams(docId: string, isSource: boolean): IParameter[] { - // User-defined CSV parameters. - const predefinedParameters: { [key: string]: string } = getDocCSVParams(docId, isSource); - - // Complete list of available CSV parameters. - const initialCSVParameters = getCsvParameterOptions(); - const predefinedParamNames = Object.keys(predefinedParameters).map((key) => key); - const predefinedParamValues = Object.values(predefinedParameters).map((key) => key); - - // Annotate the initial CSV parameters with the predefined values. - for (const { index } of initialCSVParameters.map((value, index) => ({ - index, - value, - }))) { - for (const { pvalue, pindex } of predefinedParamNames.map((pvalue, pindex) => ({ - pindex, - pvalue, - }))) { - if (initialCSVParameters[index].name === pvalue) { - initialCSVParameters[index].value = predefinedParamValues[pindex]; - initialCSVParameters[index].enabled = true; - break; - } - } - } - return initialCSVParameters; - } - const onEditCSVParams = useCallback( - (docId: string, isSource: boolean) => { - openEditCSVParamsDialog( - (parameters) => { - const inspectionParameters: { [key: string]: string } = {}; - for (const parameter of parameters) { - inspectionParameters[parameter.name] = parameter.value; - } - setDocCSVParams(docId, isSource, inspectionParameters); - }, - initialCSVParams(docId, isSource), - ); - }, - [openEditCSVParamsDialog], - ); - //#endregion - - const [specifyInstanceSchemaDialog, onSpecifyInstanceSchema] = useSpecifyInstanceSchemaDialog(false); - - const portal = useMemo( - () => - createPortal( - <> - {importADMArchiveDialog} - {importDocumentDialog} - {deleteDocumentDialog} - {specifyInstanceSchemaDialog} - {captureDocumentNameToast} - {changeDocumentNameDialog} - {createConstantDialog} - {deleteConstantDialog} - {editConstantDialog} - {createPropertyDialog} - {deletePropertyDialog} - {editPropertyDialog} - {resetDialog} - {removeMappedFieldDialog} - {deleteMappingDialog} - {createEnableCustomClassDialog} - {createNamespaceDialog} - {editNamespaceDialog} - {toggleExpressionModeDialog} - {editCSVParamsDialog} - , - modalContainer, - ), - [ - createConstantDialog, - createEnableCustomClassDialog, - createNamespaceDialog, - createPropertyDialog, - deleteConstantDialog, - deleteDocumentDialog, - captureDocumentNameToast, - changeDocumentNameDialog, - deleteMappingDialog, - deletePropertyDialog, - editConstantDialog, - editNamespaceDialog, - editPropertyDialog, - importADMArchiveDialog, - importDocumentDialog, - specifyInstanceSchemaDialog, - modalContainer, - removeMappedFieldDialog, - resetDialog, - toggleExpressionModeDialog, - editCSVParamsDialog, - ], - ); - - return { - handlers: { - onImportADMArchive: onImportADMArchive, - onCreateConstant, - onDeleteConstant, - onEditConstant, - onCreateProperty, - onDeleteProperty, - onEditProperty, - onResetAtlasmap, - onImportDocument, - onDeleteDocument, - onSpecifyInstanceSchema, - onCaptureDocumentID, - onChangeDocumentName, - onRemoveMappedField, - onDeleteMapping, - onDeleteSelectedMapping, - onEnableCustomClass, - onCreateNamespace, - onEditNamespace, - deleteNamespace, - onToggleExpressionMode, - onEditCSVParams, - }, - dialogs: portal, - }; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/useSidebar.tsx b/packages/ui/src/_bk_atlasmap/impl/useSidebar.tsx deleted file mode 100644 index 2382e2854..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/useSidebar.tsx +++ /dev/null @@ -1,196 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { IMappingDetailsViewProps, MappingDetailsView } from '../Views'; -import { useCallback } from 'react'; - -import { CommonUtil } from '../core'; - -import { useDataMapper } from '../../providers/useDataMapper'; -import { IField } from '../../models'; - -export interface IUseSidebarProps { - onCreateConstant: (constants: any | null, addToActiveMapping?: boolean) => void; - onCreateProperty: (isSource: boolean, props: any | null, addToActiveMapping?: boolean) => void; - onRemoveMapping: () => void; - onEditEnum: (cb: any) => void; - isEnumMapping: () => boolean; -} - -export function useSidebar({ - onCreateConstant, - onCreateProperty, - onRemoveMapping, - onEditEnum, - isEnumMapping, -}: IUseSidebarProps) { - const { - selectedMapping, - deselectMapping, - removeMappedFieldFromCurrentMapping, - fromMappedFieldToIMappingField, - flatSources, - flatTargets, - constants, - sourceProperties, - targetProperties, - canAddToSelectedMapping, - isFieldAddableToSelection, - addToCurrentMapping, - notifications, - markNotificationRead, - mappingExpressionEnabled, - - //mapping details - getMultiplicityActions, - getMultiplicityActionDelimiters, - handleIndexChange, - handleNewTransformation, - handleRemoveTransformation, - handleTransformationChange, - handleTransformationArgumentChange, - handleMultiplicityChange, - handleMultiplicityArgumentChange, - } = useDataMapper(); - - return useCallback(() => { - if (selectedMapping) { - const m = selectedMapping.mapping; - const sources = m.getMappedFields(true).map(fromMappedFieldToIMappingField); - const targets = m.getMappedFields(false).map(fromMappedFieldToIMappingField); - const showSourcesIndex = sources.length > 1 && m.transition.isManyToOneMode() && !m.transition.enableExpression; - const showTargetsIndex = targets.length > 1 && m.transition.isOneToManyMode() && !m.transition.enableExpression; - - const multiplicityFieldAction = m.transition.transitionFieldAction; - - let multiplicity: IMappingDetailsViewProps['multiplicity'] = undefined; - if (multiplicityFieldAction) { - const transformations = getMultiplicityActions(m); - const transformationsOptions = transformations.map((a) => ({ - label: CommonUtil.toDisplayable(a.name), - name: a.name, - value: a.name, - })); - const delimiters = getMultiplicityActionDelimiters(); - const delimitersOptions = delimiters.map((a) => ({ - name: a.prettyName!, - value: a.actualDelimiter, - })); - - multiplicity = { - name: multiplicityFieldAction.name, - transformationsOptions, - transformationsArguments: multiplicityFieldAction.argumentValues.map((a) => ({ - label: CommonUtil.toDisplayable(a.name), - name: a.name, - type: multiplicityFieldAction.definition?.arguments.find((arg) => arg.name === a.name)?.type, - value: a.value, - options: a.name === 'delimiter' ? delimitersOptions : undefined, - })), - onChange: (name) => handleMultiplicityChange(multiplicityFieldAction, name), - onArgumentChange: (argumentName, arguemntValue) => - handleMultiplicityArgumentChange(multiplicityFieldAction, argumentName, arguemntValue), - }; - } - - const handleRemoveMappedField = (isSource: boolean, index: number) => { - const amField = selectedMapping.mapping.getMappedFieldForIndex('' + (index + 1), isSource); - if (amField) { - removeMappedFieldFromCurrentMapping(amField); - } - }; - - /** - * @todo Field search has to be consolidated when server side field search is implemented, - * see {@link MappingExpressionService.executeFieldSearch()} and - * {@link DocumentManagementService.filterDocumentFields()} - * https://github.com/atlasmap/atlasmap/issues/603 - */ - const addableSources = [constants?.fields, sourceProperties?.fields, flatSources] - .flatMap((fields) => (fields ? (fields as IField[]) : [])) - .filter((f) => isFieldAddableToSelection('source', f)); - - const addableTargets = [targetProperties?.fields, flatTargets] - .flatMap((fields) => (fields ? (fields as IField[]) : [])) - .filter((f) => isFieldAddableToSelection('target', f)); - - return ( - n.mappingId === selectedMapping.id && !n.isRead)} - sources={sources} - targets={targets} - addableSources={addableSources} - addableTargets={addableTargets} - onClose={deselectMapping} - onRemoveMapping={onRemoveMapping} - onRemoveMappedField={handleRemoveMappedField} - showSourcesIndex={showSourcesIndex} - showTargetsIndex={showTargetsIndex} - mappingExpressionEnabled={mappingExpressionEnabled} - multiplicity={multiplicity} - onIndexChange={handleIndexChange} - onNewTransformation={handleNewTransformation} - onRemoveTransformation={handleRemoveTransformation} - onTransformationChange={handleTransformationChange} - onTransformationArgumentChange={handleTransformationArgumentChange} - onAddFieldToMapping={(_isSource, f) => addToCurrentMapping(f.amField)} - onNotificationRead={markNotificationRead} - onEditEnum={onEditEnum} - isEnumMapping={isEnumMapping} - onCreateConstant={onCreateConstant} - onCreateProperty={(isSource) => { - if (isSource) { - onCreateProperty(isSource, sourceProperties, true); - } else { - onCreateProperty(isSource, targetProperties, true); - } - }} - canAddToSelectedMapping={canAddToSelectedMapping} - /> - ); - } - return <>TODO: error; - }, [ - selectedMapping, - fromMappedFieldToIMappingField, - constants, - sourceProperties, - targetProperties, - flatSources, - flatTargets, - notifications, - deselectMapping, - onRemoveMapping, - onEditEnum, - isEnumMapping, - handleIndexChange, - handleNewTransformation, - handleRemoveTransformation, - handleTransformationChange, - handleTransformationArgumentChange, - markNotificationRead, - getMultiplicityActions, - getMultiplicityActionDelimiters, - handleMultiplicityChange, - handleMultiplicityArgumentChange, - removeMappedFieldFromCurrentMapping, - isFieldAddableToSelection, - addToCurrentMapping, - mappingExpressionEnabled, - onCreateConstant, - onCreateProperty, - canAddToSelectedMapping, - ]); -} diff --git a/packages/ui/src/_bk_atlasmap/impl/utils/document.ts b/packages/ui/src/_bk_atlasmap/impl/utils/document.ts deleted file mode 100644 index 1fd68b661..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/utils/document.ts +++ /dev/null @@ -1,319 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - CollectionType, - CommonUtil, - ConfigModel, - DocumentDefinition, - NamespaceModel, -} from '../../core'; - -/** - * Modify the document name of the document specified by the document ID. - * - * @param docId - * @param newDocName - * @param isSource - */ -export async function changeDocumentName( - docId: string, - newDocName: string, - isSource: boolean, -) { - const cfg = ConfigModel.getConfig(); - const docDef = getDocDef(docId, cfg, isSource); - docDef.name = newDocName; - await cfg.mappingService.notifyMappingUpdated(); - await cfg.fileService.updateDigestFile(); -} - -/** - * Create a new namespace for the supplied XML document. - * - * @param docName - * @param alias - * @param uri - * @param locationUri - */ -export function createNamespace( - docName: string, - alias: string, - uri: string, - locationUri: string, - isTarget: boolean, -) { - const cfg = ConfigModel.getConfig(); - const docDef = getDocDefByName(docName, cfg, true); - const namespace: NamespaceModel = { - alias: alias, - uri: uri, - locationUri: locationUri, - createdByUser: true, - isTarget: isTarget, - getPrettyLabel: () => alias + ' [' + uri + ']', - copy: () => Object.assign({}, namespace), - copyFrom: (n: NamespaceModel) => Object.assign(namespace, n), - }; - docDef.namespaces.push(namespace); - cfg.mappingService.notifyMappingUpdated(); -} - -export function editNamespace( - docName: string, - initAlias: string, - alias: string, - uri: string, - locationUri: string, - isTarget: boolean, -) { - const cfg = ConfigModel.getConfig(); - const docDef = getDocDefByName(docName, cfg, true); - const namespace = docDef.getNamespaceForAlias(initAlias); - namespace.alias = alias; - namespace.uri = uri; - namespace.locationUri = locationUri; - namespace.isTarget = isTarget; - cfg.mappingService.notifyMappingUpdated(); -} - -export function deleteNamespace(docName: string, alias: string) { - const cfg = ConfigModel.getConfig(); - const docDef = getDocDefByName(docName, cfg, true); - docDef.namespaces = docDef.namespaces.filter( - (namespace: { alias: string }) => namespace.alias !== alias, - ); - cfg.mappingService.notifyMappingUpdated(); -} - -/** - * Remove a document from the UI and backend service. - * - * @param docDef - * @param cfg - */ -export async function removeDocumentRef( - docDef: DocumentDefinition, - cfg: ConfigModel, -): Promise { - return new Promise(async (resolve) => { - cfg.mappingService.removeDocumentReferenceFromAllMappings(docDef.id); - if (docDef.isSource) { - CommonUtil.removeItemFromArray(docDef, cfg.sourceDocs); - } else { - CommonUtil.removeItemFromArray(docDef, cfg.targetDocs); - } - await cfg.mappingService.notifyMappingUpdated(); - await cfg.fileService.updateDigestFile(); - resolve(true); - }); -} - -/** - * Return the document definition associated with the specified document ID. - * - * @param docId - document ID - * @param cfg - * @param isSource - */ -export function getDocDef( - docId: string, - cfg: ConfigModel, - isSource: boolean, -): DocumentDefinition { - for (const docDef of cfg.getDocs(isSource)) { - if (docDef.id.match(docId)) { - return docDef; - } - } - return null as unknown as DocumentDefinition; -} - -/** - * Return the document definition associated with the specified document name. - * - * @param docName - document name - * @param cfg - * @param isSource - */ -export function getDocDefByName( - docName: string, - cfg: ConfigModel, - isSource: boolean, -): DocumentDefinition { - for (const docDef of cfg.getDocs(isSource)) { - const candidateDocName = - docDef.getName(false) + '.' + docDef.type.toLowerCase(); - if (candidateDocName.match(docName)) { - return docDef; - } - } - return null as unknown as DocumentDefinition; -} - -/** - * Determine the user-defined class names associated with previously - * imported JARs. - */ -export async function getCustomClassNameOptions(): Promise { - return new Promise(async (resolve, reject) => { - const cfg = ConfigModel.getConfig(); - cfg.documentService - .getLibraryClassNames() - .then((classNames: string[]) => { - resolve(classNames); - }) - .catch(() => { - reject(); - }); - }); -} - -/** - * Import a CSV, instance or schema document into either the Source panel or Target - * panel (CSV, JSON, XML, XSD). - * - * @param selectedFile - * @param cfg - * @param isSource - * @param isSchema - user-specified instance/ schema (true === schema) - * @param inspectionParameters - CSV parameters - */ -export async function importInstanceSchema( - selectedFile: File, - cfg: ConfigModel, - isSource: boolean, - isSchema: boolean, - inspectionParameters?: { [key: string]: string }, -) { - return new Promise(async (resolve) => { - cfg.initCfg.initialized = false; - cfg.initializationService.updateLoadingStatus( - 'Importing Document ' + selectedFile.name, - ); - cfg.documentService - .importNonJavaDocument( - selectedFile, - isSource, - isSchema, - inspectionParameters, - ) - .then(() => { - cfg.fileService.updateDigestFile().finally(() => { - cfg.initializationService.updateStatus(); - resolve(true); - }); - }); - }); -} - -/** - * Enable the specified class name and collection type in the targetted - * panel for use in Java document loading. The user must have previously - * imported a JAR file containing the class. - * - * @param selectedClass - * @param selectedCollection - * @param isSource - */ -export function enableCustomClass( - cfg: ConfigModel, - selectedClass: string, - selectedCollection: string, - isSource: boolean, -) { - return new Promise((resolve) => { - cfg.initCfg.initialized = false; - cfg.initializationService.updateLoadingStatus( - 'Importing Document ' + selectedClass, - ); - cfg.documentService - .importJavaDocument( - selectedClass, - isSource, - selectedCollection as CollectionType, - ) - .then(() => { - cfg.fileService.updateDigestFile().finally(() => { - cfg.initializationService.updateStatus(); - resolve(true); - }); - }); - }); -} - -export function getPropertyScopeOptions(isSource: boolean): { - value: string; - label: string; -}[] { - const cfg = ConfigModel.getConfig(); - let scopeOptions: { - value: string; - label: string; - }[] = [ - { - label: 'Current Message Header', - value: 'current', - }, - { - label: 'Camel Exchange Property', - value: 'camelExchangeProperty', - }, - ]; - const propertyDocOptions: DocumentDefinition[] = isSource - ? cfg.sourceDocs - : cfg.targetDocs; - for (let propertyDocOption of propertyDocOptions) { - scopeOptions.push({ - value: propertyDocOption.id, - label: propertyDocOption.name, - }); - } - return scopeOptions; -} - -/** - * Return CSV document inspection parameters. - * - * @param docId - * @param isSource - * @returns - */ -export function getDocCSVParams( - docId: string, - isSource: boolean, -): { [key: string]: string } { - const doc = getDocDef(docId, ConfigModel.getConfig(), isSource); - return doc?.inspectionParameters; -} - -/** - * Set CSV document inspection parameters. - * - * @param docId - * @param isSource - * @param parameters - */ -export async function setDocCSVParams( - docId: string, - isSource: boolean, - parameters: { [key: string]: string }, -) { - const cfg = ConfigModel.getConfig(); - const docDef = getDocDef(docId, cfg, isSource); - docDef.inspectionParameters = parameters; - await cfg.mappingService.notifyMappingUpdated(); - await cfg.fileService.updateDigestFile(); -} diff --git a/packages/ui/src/_bk_atlasmap/impl/utils/expression.ts b/packages/ui/src/_bk_atlasmap/impl/utils/expression.ts deleted file mode 100644 index b97605100..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/utils/expression.ts +++ /dev/null @@ -1,129 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ConfigModel, - ExpressionModel, - MappedField, - MappingModel, -} from '../../core'; - -export const trailerId = 'expression-trailer'; - -function activeMapping(): boolean { - const cfg = ConfigModel.getConfig(); - return !!cfg?.mappings?.activeMapping; -} - -export abstract class ExpressionNode { - protected static sequence = 0; - protected uuid: string; - constructor(prefix: string) { - this.uuid = prefix + ExpressionNode.sequence++; - } - getUuid() { - return this.uuid; - } - abstract toText(): string; - abstract toHTML(): string; -} - -export class TextNode extends ExpressionNode { - static readonly PREFIX = 'expression-text-'; - constructor(public str: string) { - super(TextNode.PREFIX); - } - toText(): string { - return this.str; - } - toHTML(): string { - return `${this.str.replace(/ /g, ' ')}`; - } -} - -export class FieldNode extends ExpressionNode { - protected field: MappedField | null | undefined; - static readonly PREFIX = 'expression-field-'; - - constructor( - private mapping: MappingModel, - public mfield?: MappedField, - index?: number, - ) { - super(FieldNode.PREFIX); - if (!mfield && index) { - this.field = mapping.getMappedFieldForIndex((index + 1).toString(), true); - } - } - - toText(): string { - if (!this.mapping || !this.field) { - return ''; - } - return '${' + (this.mapping.getIndexForMappedField(this.field)! - 1) + '}'; - } - - toHTML(): string { - if (!this.field) { - return ''; - } - if (this.field && this.field.field) { - return `${this.field.field.name}`; - } else { - return `N/A`; - } - } -} - -export function getExpression(): ExpressionModel | null | undefined { - const cfg = ConfigModel.getConfig(); - if (!activeMapping() || !cfg.mappings?.activeMapping) { - return null; - } - const mapping = cfg.mappings!.activeMapping; - let expression = mapping!.transition.expression; - if (!expression) { - mapping!.transition.expression = new ExpressionModel(mapping!, cfg); - expression = mapping!.transition.expression; - expression.generateInitialExpression(); - expression.updateFieldReference(mapping!); - } else { - if (mapping!.transition.expression) { - mapping!.transition.expression.setConfigModel(cfg); - } - } - return mapping!.transition.expression; -} - -export function getMappingExpression(): string { - const cfg = ConfigModel.getConfig(); - if (!activeMapping()) { - return ''; - } - if (!cfg.mappings?.activeMapping?.transition?.expression) { - if (!getExpression()) { - return ''; - } - } - return cfg.mappings!.activeMapping!.transition.expression && - cfg.mappings!.activeMapping!.transition.enableExpression - ? cfg.mappings!.activeMapping!.transition.expression.toHTML() - : ''; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/utils/field.ts b/packages/ui/src/_bk_atlasmap/impl/utils/field.ts deleted file mode 100644 index 675797cb6..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/utils/field.ts +++ /dev/null @@ -1,357 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ConfigModel, - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, - Field, - MappedField, - MappingModel, -} from '../../core'; - -import { LookupTableData } from '../../UI'; -import { initializationService } from './ui'; - -export type EnumValue = { - name: string; - ordinal: number; -}; - -export function createConstant( - constName: string, - constValue: string, - constType: string, - addToActiveMapping?: boolean, -): void { - const cfg = ConfigModel.getConfig(); - cfg.documentService.createConstant( - constName, - constValue, - constType, - addToActiveMapping, - ); -} - -export function deleteConstant(constName: string): void { - const cfg = ConfigModel.getConfig(); - cfg.documentService.deleteConstant(constName); -} - -export function editConstant( - constName: string, - constValue: string, - constType: string, - origName?: string, -): void { - const cfg = ConfigModel.getConfig(); - cfg.documentService.editConstant(constName, constValue, constType, origName); -} - -export function getConstantType(constName: string): string { - const cfg = ConfigModel.getConfig(); - return cfg.documentService.getConstantType(constName); -} - -export function getConstantTypeIndex(constName: string): number { - const cfg = ConfigModel.getConfig(); - return cfg.documentService.getConstantTypeIndex(constName); -} - -export function createProperty( - propName: string, - propType: string, - propScope: string, - isSource: boolean, - addToActiveMapping?: boolean, -): void { - const cfg = ConfigModel.getConfig(); - cfg.documentService.createProperty( - propName, - propType, - propScope, - isSource, - addToActiveMapping, - ); -} - -export function deleteProperty( - propName: string, - propScope: string, - isSource: boolean, -): void { - const cfg = ConfigModel.getConfig(); - cfg.documentService.deleteProperty(propName, propScope, isSource); -} - -export function editProperty( - propName: string, - propType: string, - propScope: string, - isSource: boolean, - newName?: string, - newScope?: string, -): void { - const cfg = ConfigModel.getConfig(); - cfg.documentService.editProperty( - propName, - propType, - propScope, - isSource, - newName, - newScope, - ); -} - -export function getPropertyType( - propName: string, - propScope: string, - isSource: boolean, -): string { - const cfg = ConfigModel.getConfig(); - return cfg.documentService.getPropertyType(propName, propScope, isSource); -} - -export function getPropertyTypeIndex( - propName: string, - propScope: string, - isSource: boolean, -): number { - const cfg = ConfigModel.getConfig(); - return cfg.documentService.getPropertyTypeIndex( - propName, - propScope, - isSource, - ); -} - -/** - * Create a new mapping or modify the existing active mapping using the specified source and target IDs. - * - * @param source - * @param target - */ -export function createMapping(source: Field | undefined, target?: Field): void { - const cfg = ConfigModel.getConfig(); - const ms = initializationService.cfg.mappingService; - - if (target) { - if ( - !cfg.mappings?.activeMapping && - (source?.partOfMapping || target.partOfMapping) - ) { - cfg.errorService.addError( - new ErrorInfo({ - message: `Unable to map '${source!.name}/${ - target.name - }'. Please select a mapping before adding to it.`, - level: ErrorLevel.INFO, - scope: ErrorScope.MAPPING, - type: ErrorType.USER, - }), - ); - return; - } - if ( - source && - cfg.mappings?.activeMapping && - (source.partOfMapping || target.partOfMapping) - ) { - let exclusionReason = null; - - if (!source.partOfMapping) { - exclusionReason = ms.getFieldSelectionExclusionReason( - cfg.mappings?.activeMapping!, - source, - ); - } else { - exclusionReason = ms.getFieldSelectionExclusionReason( - cfg.mappings?.activeMapping!, - target, - ); - } - - if (exclusionReason !== null) { - cfg.errorService.addError( - new ErrorInfo({ - message: `The field '${target.name}' cannot be selected, ${exclusionReason}.`, - level: ErrorLevel.ERROR, - mapping: cfg.mappings?.activeMapping!, - scope: ErrorScope.MAPPING, - type: ErrorType.USER, - }), - ); - return; - } - if ( - target.partOfMapping && - cfg.mappings.activeMapping.targetFields[0]!.field!.path === target!.path - ) { - addToCurrentMapping(source); - return; - } - if ( - source.partOfMapping && - cfg.mappings.activeMapping.sourceFields[0]!.field!.path === source!.path - ) { - addToCurrentMapping(target); - return; - } - } - } - if (source) { - cfg.mappingService.addNewMapping(source, false); - } else { - cfg.mappingService.newMapping(); - } - if (target) { - addToCurrentMapping(target); - } -} - -/** - * Create a new mapping. - */ -export function newMapping(): void { - const cfg = ConfigModel.getConfig(); - cfg.mappingService.newMapping(); -} - -/** - * Removes a mapping. - */ -export function removeMapping(mappingModel: MappingModel): void { - ConfigModel.getConfig().mappingService.removeMapping(mappingModel); -} - -/** - * Add the specified field to the current mapping. - * - * @param field - */ -export function addToCurrentMapping(field: Field): void { - const cfg = ConfigModel.getConfig(); - cfg.mappingService.addFieldToActiveMapping(field); -} - -/** - * Remove the specified field from the current mapping. - * - * @param field - */ -export function removeFromCurrentMapping(field: Field): void { - const cfg = ConfigModel.getConfig(); - const mapping = cfg.mappings?.activeMapping; - if (mapping) { - const mappedField = mapping.getMappedFieldForField(field); - if (mappedField) { - mapping.removeMappedField(mappedField); - cfg.mappingService.updateMappedField(mapping); - } - } -} - -/** - * Add the specified field to the current mapping. - * - * @param field - */ -export function removeMappedFieldFromCurrentMapping(field: MappedField): void { - const cfg = ConfigModel.getConfig(); - const mapping = cfg.mappings?.activeMapping; - if (mapping && field) { - mapping.removeMappedField(field); - cfg.mappingService.updateMappedField(mapping); - } -} - -/** - * Return the enumeration mapping lookup table associated with the active mapping. - * - */ -export function getEnumerationValues(): LookupTableData[] { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return []; - } - return initializationService.cfg.mappingService.getEnumerationValues( - cfg, - activeMapping, - ); -} - -/** - * Retrieve the enumeration values for the specified field node ID. - * - * @param nodeId - enumeration field node ID - */ -export function getFieldEnums(nodeId: string): EnumValue[] { - const uuidNode = - initializationService.cfg.mappings!.activeMapping!.transition.expression!.getNode( - nodeId, - ); - if (uuidNode && uuidNode.mappedField?.field.enumeration) { - return uuidNode.mappedField.field.enumValues; - } - return []; -} - -/** - * Set the value for a enumeration reference field. This way the enumeration field may be - * used in conditional expressions. Not used for enumeration mappings. - * - * @param selectedEnumNodeId - enumeration field node ID - * @param selectedEnumValueIndex - enumeration index value - */ -export function setSelectedEnumValue( - selectedEnumNodeId: string, - selectedEnumValueIndex: number, -) { - const mapping = initializationService.cfg.mappings!.activeMapping!; - const uuidNode = mapping.transition.expression!.getNode(selectedEnumNodeId); - if (uuidNode && uuidNode.mappedField?.field.enumeration) { - initializationService.cfg.mappingService.setEnumFieldValue( - uuidNode.mappedField.field, - selectedEnumValueIndex, - ); - mapping.transition.expression.updateFieldReference(mapping); - initializationService.cfg.mappingService.notifyMappingUpdated(); - } -} - -export function updateEnumerationValues( - enumerationValues: LookupTableData[], -): void { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return; - } - initializationService.cfg.mappingService.updateEnumerationValues( - cfg, - activeMapping, - enumerationValues, - ); -} - -export function isEnumerationMapping(): boolean { - const cfg = ConfigModel.getConfig(); - return initializationService.cfg.mappingService.isEnumerationMapping( - cfg.mappings?.activeMapping!, - ); -} diff --git a/packages/ui/src/_bk_atlasmap/impl/utils/index.ts b/packages/ui/src/_bk_atlasmap/impl/utils/index.ts deleted file mode 100644 index 8f28bdfd7..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/utils/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export * from './document'; -export * from './expression'; -export * from './field'; -export * from './toolbar'; -export * from './ui'; -export * from '../../../hooks/useToggle'; diff --git a/packages/ui/src/_bk_atlasmap/impl/utils/toolbar.ts b/packages/ui/src/_bk_atlasmap/impl/utils/toolbar.ts deleted file mode 100644 index 01938c983..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/utils/toolbar.ts +++ /dev/null @@ -1,116 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { getDocDef, getDocDefByName, removeDocumentRef } from './document'; - -import { ConfigModel } from '../../core'; - -/** - * Return true if the specified file object exists as a source or target - * document, false otherwise. - * - * @param file - file object - * @param isSource - source or target panel - */ -export function documentExists(file: File, isSource: boolean): boolean { - const docDef = getDocDefByName(file.name, ConfigModel.getConfig(), isSource); - return docDef ? true : false; -} - -/** - * Delete the specified source or target document. - * - * @param fileId - document ID to delete - * @param isSource - source or target panel - */ -export async function deleteAtlasFile(fileId: string, isSource: boolean) { - const cfg = ConfigModel.getConfig(); - const docDef = getDocDef(fileId, cfg, isSource); - await removeDocumentRef(docDef, cfg); - cfg.initializationService.updateInitComplete(); -} - -/** - * The user has requested their current mappings be exported. Use the mapping management - * service to establish the file content and to push it down to the server. - * - * @param fileName - user-specified ADM archive file name - */ -export function exportADMArchiveFile(fileName: string) { - const cfg = ConfigModel.getConfig(); - return cfg.fileService.exportADMArchive(fileName); -} - -/** - * Import an ADM archive file or a user JAR file. - * - * @param selectedFile - * @param userFileSuffix - * @param cfg - */ -export function importADMArchiveFile(selectedFile: File, cfg: ConfigModel) { - cfg.initializationService.initializeWithADMArchiveFile(selectedFile); -} - -/** - * Import a JAR file. - * - * @param selectedFile - * @param userFileSuffix - * @param cfg - */ -export function importJarFile(selectedFile: File, cfg: ConfigModel) { - cfg.fileService.importJarFile(selectedFile); -} - -/** - * Remove all documents and imported JARs from the server. - */ -export function resetAtlasmap() { - const cfg = ConfigModel.getConfig(); - cfg.initializationService.resetAtlasMap(); -} - -export function getRuntimeVersion(): Promise { - const cfg = ConfigModel.getConfig(); - return cfg.initializationService.getRuntimeVersion(); -} - -export function getUIVersion(): string { - return '0.0.1'; -} - -export function toggleMappingPreview(enabled: boolean) { - const cfg = ConfigModel.getConfig(); - return cfg.previewService.toggleMappingPreview(enabled); -} - -export function toggleShowMappedFields(enabled: boolean) { - const cfg = ConfigModel.getConfig(); - - cfg.showMappedFields = enabled; - cfg.initializationService.systemInitializedSource.next(); - - return enabled; -} - -export function toggleShowUnmappedFields(enabled: boolean) { - const cfg = ConfigModel.getConfig(); - - cfg.showUnmappedFields = enabled; - cfg.initializationService.systemInitializedSource.next(); - - return enabled; -} diff --git a/packages/ui/src/_bk_atlasmap/impl/utils/ui.ts b/packages/ui/src/_bk_atlasmap/impl/utils/ui.ts deleted file mode 100644 index 45cfe6c2d..000000000 --- a/packages/ui/src/_bk_atlasmap/impl/utils/ui.ts +++ /dev/null @@ -1,601 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - CommonUtil, - ConfigModel, - DocumentDefinition, - ErrorInfo, - ErrorLevel, - ErrorScope, - ErrorType, - ExpressionModel, - Field, - FieldAction, - FieldActionDefinition, - InitializationService, - MappedField, - MappingDefinition, - MappingModel, - Multiplicity, - NamespaceModel, - TransitionMode, - TransitionModel, -} from '../../core'; -import { ITransformationArgument, ITransformationSelectOption } from '../../UI'; - -import { Observable } from 'rxjs'; -import { INamespace, IDocument, INotification, IMapping, IField, IMappedField, IAtlasmapGroup } from '../../../models'; - -export function copyToClipboard(text: string) { - const textArea = document.createElement('textarea'); - textArea.value = text; - document.body.appendChild(textArea); - textArea.select(); - try { - document.execCommand('copy'); - } catch (err) { - ConfigModel.getConfig().errorService.addError( - new ErrorInfo({ - message: 'Error copying ' + text + ' to clipboard', - level: ErrorLevel.ERROR, - scope: ErrorScope.APPLICATION, - type: ErrorType.INTERNAL, - }), - ); - } - document.body.removeChild(textArea); -} - -export const initializationService: InitializationService = new InitializationService(); -export const configModel = initializationService.cfg; - -export function fromFieldToIFieldsGroup(field: Field): IAtlasmapGroup | null { - const fields = field.children.map(fromFieldToIFields).filter((f) => f) as IField[]; - return fields.length > 0 && field.visibleInCurrentDocumentSearch - ? { - id: `${field.docDef.uri || field.docDef.type + '-' + field.scope}:${ - field.docDef.isSource ? 'source' : 'target' - }:${field.path}`, - name: field.name, - type: field.type, - isCollection: field.isCollection, - isInCollection: field.isInCollection(), - fields: fields, - amField: field, - } - : null; -} - -export function fromFieldToIFieldsNode(field: Field): IField | null { - const cfg = ConfigModel.getConfig(); - const partOfMapping: boolean = field.partOfMapping; - const shouldBeVisible = partOfMapping - ? cfg.showMappedFields - : cfg.showUnmappedFields && field.visibleInCurrentDocumentSearch; - return shouldBeVisible - ? { - id: `${field.docDef.uri || field.docDef.type + '-' + field.scope}:${ - field.docDef.isSource ? 'source' : 'target' - }:${field.path}`, - name: field.getFieldLabel(false, false), - type: field.type, - path: field.path, - scope: field.scope ? field.scope : '', - value: field.value, - amField: field, - mappings: - (cfg.mappings - ?.findMappingsForField(field) - .map(fromMappingModelToImapping) - .filter((d) => d) as IMapping[]) || [], - hasTransformations: field.partOfTransformation, - isAttribute: field.isAttribute, - isCollection: field.isCollection, - isInCollection: field.isInCollection(), - isConnected: partOfMapping, - isDisabled: field.type === 'UNSUPPORTED' || (field.type === 'COMPLEX' && !field.enumeration), - enumeration: field.enumeration, - } - : null; -} - -export function fromFieldToIFields(field: Field) { - return field.children.length > 0 ? fromFieldToIFieldsGroup(field) : fromFieldToIFieldsNode(field); -} - -export function fromNamespaceModelToINamespace(namespace: NamespaceModel) { - return { - alias: namespace.alias, - uri: namespace.uri, - locationUri: namespace.locationUri, - isTarget: namespace.isTarget, - }; -} - -export function fromDocumentDefinitionToFieldGroup(def: DocumentDefinition): IDocument | null { - if (!def || !def.fields || def.fields.length === 0) { - return null; - } - const fields = def.fields.map(fromFieldToIFields).filter((f) => f) as IField[]; - const namespaces = def.namespaces.map(fromNamespaceModelToINamespace).filter((n) => n) as INamespace[]; - return def.visibleInCurrentDocumentSearch && fields.length > 0 - ? { - id: def.id, - fields, - name: def.name, - type: def.type, - namespaces, - } - : null; -} - -export function fromMappedFieldToIMappingField(mappedField: MappedField): IMappedField | null { - if (!mappedField.field || !mappedField.field.docDef) { - return null; - } - return { - id: `${ - mappedField.field!.docDef.uri || mappedField.field!.docDef.type + '-' + mappedField.field!.scope - }:${mappedField.field!.docDef.isSource ? 'source' : 'target'}:${mappedField.field!.path}`, - name: mappedField.field!.getFieldLabel(false, false), - type: mappedField.field!.type, - path: mappedField.field!.path, - scope: mappedField.field?.scope ? mappedField.field.scope : '', - value: mappedField.field!.value, - hasTransformations: false, - mappings: [], - isAttribute: false, - isCollection: false, - isInCollection: false, - isConnected: false, - isDisabled: false, - enumeration: false, - amField: mappedField.field, - transformations: mappedField.actions.map((a) => ({ - name: a.name, - options: getMappingActions(mappedField.isSource()).map( - (a): ITransformationSelectOption => ({ - name: CommonUtil.toDisplayable(a.name), - value: a.name, - }), - ), - arguments: a.definition!.arguments.map( - (av, idx): ITransformationArgument => ({ - label: av.serviceObject?.title?.length > 0 ? av.serviceObject.title : CommonUtil.toDisplayable(av.name), - type: av.type, - name: av.name, - value: a.argumentValues[idx].value, - options: av.values - ? av.values.map( - (avv): ITransformationSelectOption => ({ - name: avv, - value: avv, - }), - ) - : undefined, - }), - ), - })), - }; -} - -export function errorLevelToVariant(level: ErrorLevel): INotification['variant'] { - switch (level) { - case ErrorLevel.INFO: - return 'info'; - case ErrorLevel.WARN: - return 'warning'; - case ErrorLevel.ERROR: - return 'danger'; - default: - return 'default'; - } -} - -export function errorMessageToString(message: any): string { - switch (typeof message) { - case 'string': - return message; - default: - return message?.message || JSON.stringify(message); - } -} - -export function errorTypeToString(type: ErrorType): string { - switch (type) { - case ErrorType.INTERNAL: - return 'Internal'; - case ErrorType.USER: - return 'User'; - case ErrorType.VALIDATION: - return 'Validation'; - case ErrorType.PREVIEW: - return 'Preview'; - case ErrorType.FORM: - return 'Form'; - } -} - -export function errorInfoToNotification(e: ErrorInfo): INotification { - return { - variant: errorLevelToVariant(e.level), - title: - e.mapping && e.type !== ErrorType.PREVIEW - ? `${errorTypeToString(e.type)}: "${e.mapping.transition.getPrettyName()}"` - : errorTypeToString(e.type), - description: errorMessageToString(e.message), - id: e.identifier, - mappingId: e.mapping?.uuid, - }; -} - -export function fromMappingModelToImapping(m: MappingModel | null | undefined): IMapping | null { - return m - ? { - id: m.uuid, - name: m.transition.getPrettyName(), - sourceFields: m - .getUserMappedFields(true) - .map(fromMappedFieldToIMappingField) - .filter((f) => f) as IMappedField[], - targetFields: m - .getUserMappedFields(false) - .map(fromMappedFieldToIMappingField) - .filter((f) => f) as IMappedField[], - mapping: m, - } - : null; -} - -export function fromMappingDefinitionToIMappings(def: MappingDefinition | null): IMapping[] { - return def ? (def.mappings.map(fromMappingModelToImapping).filter((d) => d) as IMapping[]) : []; -} - -export function executeFieldSearch(searchFilter: string, isSource: boolean): string[][] { - return initializationService.cfg.expressionService.executeFieldSearch( - initializationService.cfg, - searchFilter, - isSource, - ); -} - -export function getField(fieldPath: string, isSource: boolean): Field | null { - let field: Field | null = null; - for (const doc of initializationService.cfg.getDocs(isSource)) { - field = Field.getField(fieldPath, doc.getAllFields()); - if (field) { - break; - } - } - return field; -} - -export function mappingExpressionAddField( - selectedDocId: string, - selectedField: string, - newTextNode: any, - atIndex: number, - isTrailer: boolean, -) { - const mapping = initializationService.cfg.mappings!.activeMapping; - if (!mapping || !selectedDocId || !selectedField) { - return; - } - configModel.expressionService.addFieldToExpression( - mapping, - selectedDocId, - selectedField, - newTextNode, - atIndex, - isTrailer, - ); - initializationService.cfg.mappingService.notifyMappingUpdated(); -} - -export function mappingExpressionInit() { - if (!initializationService.cfg.mappings || !initializationService.cfg.mappings.activeMapping) { - return; - } - const mapping = initializationService.cfg.mappings!.activeMapping!; - - // Filter out padding fields for expression mapping. - mapping - .getMappedFields(true) - .filter((mf) => mf.isPadField()) - .forEach((mf) => mapping.removeMappedField(mf)); - - if (!mapping.transition.expression) { - mapping.transition.expression = new ExpressionModel(mapping, initializationService.cfg); - mapping.transition.expression.generateInitialExpression(); - } else { - mapping.transition.expression.setConfigModel(initializationService.cfg); - } - mapping.transition.expression.updateFieldReference(mapping); -} -export function mappingExpressionClearText(nodeId?: string, startOffset?: number, endOffset?: number) { - const uuidNode = initializationService.cfg.mappings!.activeMapping!.transition.expression!.clearText( - nodeId!, - startOffset, - endOffset, - ); - initializationService.cfg.mappingService.notifyMappingUpdated(); - return uuidNode; -} -export function mappingExpressionInsertText(str: string, nodeId?: string, offset?: number) { - initializationService.cfg.mappings!.activeMapping!.transition.expression!.insertText(str, nodeId, offset); - initializationService.cfg.mappingService.notifyMappingUpdated(); -} -export function mappingExpressionObservable(): Observable | null { - if (!initializationService.cfg.mappings?.activeMapping?.transition?.expression) { - return null; - } - return initializationService.cfg.mappings.activeMapping.transition.expression.expressionUpdated$; -} -export function mappingExpressionRemoveField(tokenPosition?: string, offset?: number, removeNext?: boolean) { - initializationService.cfg.mappings!.activeMapping!.transition.expression!.removeToken( - tokenPosition, - offset, - removeNext, - ); - initializationService.cfg.mappingService.notifyMappingUpdated(); -} -export function onFieldPreviewChange(field: IField, value: string) { - field.amField.value = value; - initializationService.cfg.mappingService.notifyMappingUpdated(); -} - -export function toggleExpressionMode() { - initializationService.cfg.expressionService.toggleExpressionMode(); - initializationService.cfg.mappingService.notifyMappingUpdated(); -} - -export function getMappingActions(isSource: boolean) { - return initializationService.cfg.fieldActionService.getActionsAppliesToField( - initializationService.cfg.mappings!.activeMapping!, - isSource, - Multiplicity.ONE_TO_ONE, - ); -} -export function getMultiplicityActions(mapping: MappingModel) { - if (mapping.transition.mode === TransitionMode.ONE_TO_MANY) { - return initializationService.cfg.fieldActionService.getActionsAppliesToField( - mapping, - true, - Multiplicity.ONE_TO_MANY, - ); - } else if (mapping.transition.mode === TransitionMode.MANY_TO_ONE) { - return initializationService.cfg.fieldActionService.getActionsAppliesToField( - mapping, - true, - Multiplicity.MANY_TO_ONE, - ); - } else { - return []; - } -} -export function getMultiplicityActionDelimiters() { - return TransitionModel.delimiterModels; -} - -export function handleActionChange(action: FieldAction, definition: FieldActionDefinition) { - action.argumentValues = []; // Invalidate the previously selected field action arguments. - definition.populateFieldAction(action); - - // If the field action configuration predefines argument values then populate the fields with - // default values. Needed to support pull-down menus in action argument definitions. - if ( - action.argumentValues.values() && - action.argumentValues.length > 0 && - definition.arguments[0] && - definition.arguments[0].values && - definition.arguments[0].values.length > 0 - ) { - for (let i = 0; i < action.argumentValues.length; i++) { - action.argumentValues[i].value = definition.arguments[i].values![i]; - } - } - initializationService.cfg.mappingService.notifyMappingUpdated(); -} - -/** - * Process a mapped field index change. The source field is represented by - * currentIndex. The target index is represented either by a number or by a - * mapped field (depending on whether the index was physically modified or - * d&d modified). - * - * @param isSource - * @param currentIndex - * @param target - */ -export function handleIndexChange(isSource: boolean, currentIndex: number, target: number | Field) { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return; - } - const sourceField = activeMapping.getMappedFieldForIndex('' + (currentIndex + 1), isSource); - if (!sourceField) { - return; - } - let newIndex: number | null = 0; - - // If the target is an actual index value then check for the need to add padding. - if (typeof target === 'number') { - newIndex = target; - if (target <= 0 || !activeMapping) { - return; - } - const mappedFields = activeMapping.getMappedFields(isSource); - const maxIndex = mappedFields.length; - if (target > maxIndex) { - // Add place-holders for each index value between the previous max index - // and the insertion index. - cfg.mappingService.addPlaceholders(target - mappedFields.length, activeMapping, maxIndex, isSource); - } - // If the target is a dropped field then extract the mapped field to determine the index. - } else { - const field = activeMapping.getMappedFieldForField(target!); - if (!field) { - return; - } - newIndex = activeMapping.getIndexForMappedField(field); - } - cfg.mappingService.moveMappedFieldTo(activeMapping, sourceField, newIndex!); -} - -export function handleNewTransformation(isSource: boolean, index: number) { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return; - } - const field = activeMapping.getMappedFieldForIndex('' + (index + 1), isSource); - if (!field) { - return; - } - const action: FieldAction = new FieldAction(); - const availableActions = getMappingActions(isSource); - availableActions[0].populateFieldAction(action); - field.actions.push(action); - cfg.mappingService.notifyMappingUpdated(); -} - -export function handleTransformationChange( - isSource: boolean, - index: number, - currentTransformationIndex: number, - newTransformationName: string, -) { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return; - } - const field = activeMapping.getMappedFieldForIndex('' + (index + 1), isSource); - if (!field) { - return; - } - const action = field.actions[currentTransformationIndex]; - const newAction = getMappingActions(isSource).find((a) => a.name === newTransformationName); - - if (action && newAction) { - action.argumentValues = []; // Invalidate the previously selected field action arguments. - newAction.populateFieldAction(action); - - // If the field action configuration predefines argument values then populate the fields with - // default values. Needed to support pull-down menus in action argument definitions. - if ( - action.argumentValues.values() && - action.argumentValues.length > 0 && - newAction.arguments[0] && - newAction.arguments[0].values && - newAction.arguments[0].values.length > 0 - ) { - for (let i = 0; i < action.argumentValues.length; i++) { - action.argumentValues[i].value = newAction.arguments[i].values![i]; - } - } - cfg.mappingService.notifyMappingUpdated(); - } -} - -export function handleTransformationArgumentChange( - isSource: boolean, - index: number, - transformationIndex: number, - argumentName: string, - argumentValue: string, -) { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return; - } - const field = activeMapping.getMappedFieldForIndex('' + (index + 1), isSource); - if (!field) { - return; - } - const action = field.actions[transformationIndex]; - if (action) { - action.setArgumentValue(argumentName, argumentValue); - cfg.mappingService.notifyMappingUpdated(); - } -} - -export function handleRemoveTransformation(isSource: boolean, index: number, transformationIndex: number) { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return; - } - const field = activeMapping.getMappedFieldForIndex('' + (index + 1), isSource); - if (!field) { - return; - } - const action = field.actions[transformationIndex]; - if (action) { - CommonUtil.removeItemFromArray(action, field.actions); - cfg.mappingService.notifyMappingUpdated(); - } -} - -export function handleMultiplicityChange(action: FieldAction, name: string) { - const cfg = ConfigModel.getConfig(); - const activeMapping = cfg.mappings?.activeMapping; - if (!activeMapping) { - return; - } - - const newAction = getMultiplicityActions(activeMapping).find((a) => a.name === name); - - if (action && newAction) { - action.argumentValues = []; // Invalidate the previously selected field action arguments. - newAction.populateFieldAction(action); - - // If the field action configuration predefines argument values then populate the fields with - // default values. Needed to support pull-down menus in action argument definitions. - if ( - action.argumentValues.values() && - action.argumentValues.length > 0 && - newAction.arguments[0] && - newAction.arguments[0].values && - newAction.arguments[0].values.length > 0 - ) { - for (let i = 0; i < action.argumentValues.length; i++) { - action.argumentValues[i].value = newAction.arguments[i].values![i]; - } - } - initializationService.cfg.mappingService.notifyMappingUpdated(); - } -} -export function handleMultiplicityArgumentChange( - multiplicityFieldAction: FieldAction, - argumentName: string, - argumentValue: string, -) { - const cfg = ConfigModel.getConfig(); - - multiplicityFieldAction.setArgumentValue(argumentName, argumentValue); - cfg.mappingService.notifyMappingUpdated(); -} - -export function selectMapping(mapping: IMapping) { - initializationService.cfg.mappingService.selectMapping(mapping.mapping); -} - -export function deselectMapping() { - initializationService.cfg.mappingService.deselectMapping(); -} diff --git a/packages/ui/src/_bk_atlasmap/stories/decorators.tsx b/packages/ui/src/_bk_atlasmap/stories/decorators.tsx deleted file mode 100644 index 4e1cda2c2..000000000 --- a/packages/ui/src/_bk_atlasmap/stories/decorators.tsx +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FieldDragLayer, FieldsDndProvider } from '../../UI'; -import React, { ReactElement } from 'react'; - -const stories = [ - (storyFn: () => ReactElement) => ( - - {storyFn()} - - - ), -]; -export default stories; diff --git a/packages/ui/src/_bk_atlasmap/stories/fromJava.ts b/packages/ui/src/_bk_atlasmap/stories/fromJava.ts deleted file mode 100644 index bb6159485..000000000 --- a/packages/ui/src/_bk_atlasmap/stories/fromJava.ts +++ /dev/null @@ -1,173 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { IAtlasmapField, IAtlasmapGroup, IAtlasmapMapping } from '../../Views'; - -interface Modifiers { - modifier: string[]; -} - -interface JavaEnumFields { - javaEnumField: any[]; -} - -interface JavaField { - jsonType: string; - path: string; - status: string; - fieldType: string; - modifiers: Modifiers; - name: string; - className: string; - canonicalClassName: string; - primitive: boolean; - synthetic: boolean; - arrayDimensions?: number; - collectionType?: string; - javaEnumFields?: JavaEnumFields; - javaFields?: JavaFields; - packageName?: string; - annotation?: boolean; - annonymous?: boolean; - enumeration?: boolean; - localClass?: boolean; - memberClass?: boolean; - uri?: string; - interface?: boolean; -} - -interface JavaFields { - javaField: JavaField[]; -} - -interface JavaClass { - jsonType: string; - path: string; - fieldType: string; - modifiers: Modifiers; - className: string; - canonicalClassName: string; - primitive: boolean; - synthetic: boolean; - javaEnumFields?: JavaEnumFields; - javaFields?: JavaFields; - packageName?: string; - annotation: boolean; - annonymous: boolean; - enumeration: boolean; - localClass: boolean; - memberClass: boolean; - uri?: string; - interface: boolean; -} - -interface ClassInspectionResponse { - jsonType: string; - javaClass: JavaClass; - executionTime: number; -} - -export interface JavaObject { - ClassInspectionResponse: ClassInspectionResponse; -} - -export function javaToFieldGroup( - java: JavaObject, - idPrefix: string, - allMappings: IAtlasmapMapping[], -) { - const fromElement = (jf: JavaField): IAtlasmapField => { - const id = `${idPrefix}-${jf.path}`; - const mappings = allMappings.filter( - (m) => - m.sourceFields.find((s) => s.id === id) || - m.targetFields.find((t) => t.id === id), - ); - - return { - id: `${idPrefix}-${jf.path}`, - name: jf.name, - type: jf.fieldType, - path: jf.path, - scope: 'current', - value: '', - mappings, - hasTransformations: - mappings.length > 0 && - (jf.name.startsWith('a') || - jf.name.startsWith('b') || - jf.name.startsWith('c')), - isCollection: jf.collectionType === 'LIST', - isAttribute: false, - isInCollection: false, - isConnected: false, - isDisabled: jf.collectionType === 'COMPLEX', - amField: {} as IAtlasmapField['amField'], - enumeration: false, - }; - }; - const fromGroup = (f: JavaField): IAtlasmapGroup => ({ - name: f.name, - type: f.fieldType, - id: `${idPrefix}-${f.path}`, - fields: f.javaFields!.javaField.map((f) => - f.javaFields ? fromGroup(f as JavaField) : fromElement(f), - ), - isCollection: false, - isInCollection: false, - amField: {} as IAtlasmapField['amField'], - }); - - return java.ClassInspectionResponse.javaClass.javaFields!.javaField.map((f) => - f.javaFields ? fromGroup(f as JavaField) : fromElement(f), - ); -} -// export function javaToFieldGroup(java, idPrefix, allMappings) { -// const fromElement = (jf) => { -// const id = `${idPrefix}-${jf.path}`; -// const mappings = allMappings.filter( -// (m) => -// m.sourceFields.find((s) => s.id === id) || -// m.targetFields.find((t) => t.id === id) -// ); - -// return { -// id: `${idPrefix}-${jf.path}`, -// name: jf.name, -// type: jf.fieldType, -// value: "", -// mappings, -// hasTransformations: -// mappings.length > 0 && -// (jf.name.startsWith("a") || -// jf.name.startsWith("b") || -// jf.name.startsWith("c")), -// isCollection: jf.collectionType === "LIST", -// }; -// }; -// const fromGroup = (f) => ({ -// name: f.name, -// type: f.fieldType, -// id: `${idPrefix}-${f.path}`, -// fields: f.javaFields.javaField -// .map((f) => (f.javaFields ? fromGroup(f) : fromElement(f))) -// .sort((a, b) => a.name.localeCompare(b.name)), -// isCollection: f.collectionType === "LIST", -// }); - -// return java.ClassInspectionResponse.javaClass.javaFields.javaField -// .map((f) => (f.javaFields ? fromGroup(f) : fromElement(f))) -// .sort((a, b) => a.name.localeCompare(b.name)); -// } diff --git a/packages/ui/src/_bk_atlasmap/stories/fromJson.ts b/packages/ui/src/_bk_atlasmap/stories/fromJson.ts deleted file mode 100644 index 574316ee6..000000000 --- a/packages/ui/src/_bk_atlasmap/stories/fromJson.ts +++ /dev/null @@ -1,145 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { IAtlasmapField, IAtlasmapGroup, IAtlasmapMapping } from '../../Views'; - -interface JsonField { - jsonType: string; - path: string; - status: string; - fieldType: string; - name: string; - jsonFields?: JsonFields; - collectionType?: string; - value?: any; -} - -interface JsonFields { - jsonField: JsonField[]; -} - -interface Field { - jsonType: string; - path: string; - status: string; - fieldType: string; - name: string; - jsonFields: JsonFields; - collectionType?: string; -} - -interface Fields { - field: Field[]; -} - -interface JsonDocument { - jsonType: string; - fields: Fields; -} - -interface JsonInspectionResponse { - jsonType: string; - jsonDocument: JsonDocument; - executionTime: number; -} - -export interface JsonObject { - JsonInspectionResponse: JsonInspectionResponse; -} - -export function jsonToFieldGroup( - json: JsonObject, - idPrefix: string, - allMappings: IAtlasmapMapping[], -) { - const fromElement = (jf: JsonField): IAtlasmapField => { - const id = `${idPrefix}-${jf.path}`; - const mappings = allMappings.filter( - (m) => - m.sourceFields.find((s) => s.id === id) || - m.targetFields.find((t) => t.id === id), - ); - return { - id, - name: jf.name, - type: jf.fieldType, - path: jf.path, - scope: 'current', - value: '', - mappings, - hasTransformations: - mappings.length > 0 && - (jf.name.startsWith('a') || - jf.name.startsWith('b') || - jf.name.startsWith('c')), - isAttribute: false, - isCollection: jf.collectionType === 'LIST', - isInCollection: false, - isConnected: false, - isDisabled: jf.collectionType === 'COMPLEX', - amField: {} as IAtlasmapField['amField'], - enumeration: false, - }; - }; - const fromGroup = (f: Field): IAtlasmapGroup => ({ - name: f.name, - type: f.fieldType, - id: `${idPrefix}-${f.path}`, - fields: f.jsonFields.jsonField.map((f) => - f.jsonFields ? fromGroup(f as Field) : fromElement(f), - ), - isCollection: false, - isInCollection: false, - amField: {} as IAtlasmapField['amField'], - }); - - return json.JsonInspectionResponse.jsonDocument.fields.field.map(fromGroup); -} -// export function jsonToFieldGroup(json, idPrefix, allMappings) { -// const fromElement = (jf) => { -// const id = `${idPrefix}-${jf.path}`; -// const mappings = allMappings.filter( -// (m) => -// m.sourceFields.find((s) => s.id === id) || -// m.targetFields.find((t) => t.id === id) -// ); -// return { -// id, -// name: jf.name, -// type: jf.fieldType, -// value: "", -// mappings, -// hasTransformations: -// mappings.length > 0 && -// (jf.name.startsWith("a") || -// jf.name.startsWith("b") || -// jf.name.startsWith("c")), -// isCollection: jf.collectionType === "LIST", -// }; -// }; -// const fromGroup = (f) => ({ -// name: f.name, -// type: f.fieldType, -// id: `${idPrefix}-${f.path}`, -// fields: f.jsonFields.jsonField -// .map((f) => (f.jsonFields ? fromGroup(f) : fromElement(f))) -// .sort((a, b) => a.name.localeCompare(b.name)), -// isCollection: f.collectionType === "LIST", -// }); - -// return json.JsonInspectionResponse.jsonDocument.fields.field -// .map(fromGroup) -// .sort((a, b) => a.name.localeCompare(b.name)); -// } diff --git a/packages/ui/src/_bk_atlasmap/stories/fromXML.ts b/packages/ui/src/_bk_atlasmap/stories/fromXML.ts deleted file mode 100644 index fbe40c087..000000000 --- a/packages/ui/src/_bk_atlasmap/stories/fromXML.ts +++ /dev/null @@ -1,163 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { IAtlasmapField, IAtlasmapGroup, IAtlasmapMapping } from '../../Views'; - -interface Restrictions { - restriction: any[]; -} -interface XmlField { - jsonType: string; - path: string; - fieldType: string; - name: string; - value?: any; - status?: any; - xmlFields?: XmlFields; - restrictions?: Restrictions; - collectionType?: string; -} - -interface XmlFields { - xmlField: XmlField[]; -} - -interface Field { - jsonType: string; - path: string; - fieldType: string; - name: string; - xmlFields: XmlFields; - typeName?: any; -} - -interface Fields { - field: Field[]; -} - -interface XmlNamespace { - alias: string; - uri: string; -} - -interface XmlNamespaces { - xmlNamespace: XmlNamespace[]; -} - -interface XmlDocument { - jsonType: string; - fields: Fields; - xmlNamespaces: XmlNamespaces; -} - -interface XmlInspectionResponse { - jsonType: string; - xmlDocument: XmlDocument; - executionTime: number; -} - -export interface XMLObject { - XmlInspectionResponse: XmlInspectionResponse; -} - -export function xmlToFieldGroup( - xml: XMLObject, - idPrefix: string, - allMappings: IAtlasmapMapping[], -) { - const fromElement = (jf: XmlField): IAtlasmapField => { - const id = `${idPrefix}-${jf.path}`; - const mappings = allMappings.filter( - (m) => - m.sourceFields.find((s) => s.id === id) || - m.targetFields.find((t) => t.id === id), - ); - - return { - id, - name: jf.name, - type: jf.fieldType, - path: jf.path, - scope: 'current', - value: '', - mappings, - hasTransformations: - mappings.length > 0 && - (jf.name.startsWith('a') || - jf.name.startsWith('b') || - jf.name.startsWith('c')), - isAttribute: false, - isCollection: jf.collectionType === 'LIST', - isInCollection: false, - isConnected: false, - isDisabled: jf.collectionType === 'COMPLEX', - amField: {} as IAtlasmapField['amField'], - enumeration: false, - }; - }; - const fromGroup = (f: Field): IAtlasmapGroup => ({ - name: f.name, - type: f.fieldType, - id: `${idPrefix}-${f.path}`, - fields: f.xmlFields.xmlField.map((f) => - f.xmlFields ? fromGroup(f as Field) : fromElement(f), - ), - isCollection: false, - isInCollection: false, - amField: {} as IAtlasmapField['amField'], - }); - - return xml.XmlInspectionResponse.xmlDocument.fields.field.map((f) => - f.xmlFields ? fromGroup(f as Field) : fromElement(f), - ); -} -// export function xmlToFieldGroup(xml, idPrefix, allMappings) { -// const fromElement = (jf) => { -// const id = `${idPrefix}-${jf.path}`; -// const mappings = allMappings.filter( -// (m) => -// m.sourceFields.find((s) => s.id === id) || -// m.targetFields.find((t) => t.id === id) -// ); - -// return { -// id, -// name: jf.name, -// type: jf.fieldType, -// value: "", -// mappings, -// hasTransformations: -// mappings.length > 0 && -// (jf.name.startsWith("a") || -// jf.name.startsWith("b") || -// jf.name.startsWith("c")), -// isCollection: jf.collectionType === "LIST", -// }; -// }; - -// const fromGroup = (f) => ({ -// name: f.name, -// type: f.fieldType, -// id: `${idPrefix}-${f.path}`, -// fields: f.xmlFields.xmlField -// .map((f) => (f.xmlFields ? fromGroup(f) : fromElement(f))) -// .sort((a, b) => a.name.localeCompare(b.name)), -// isCollection: f.collectionType === "LIST", -// }); - -// return xml.XmlInspectionResponse.xmlDocument.fields.field -// .map((f) => (f.xmlFields ? fromGroup(f) : fromElement(f))) -// .sort((a, b) => a.name.localeCompare(b.name)); -// } diff --git a/packages/ui/src/_bk_atlasmap/stories/htmlKnob.ts b/packages/ui/src/_bk_atlasmap/stories/htmlKnob.ts deleted file mode 100644 index 51e3a0a1d..000000000 --- a/packages/ui/src/_bk_atlasmap/stories/htmlKnob.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import he from 'he'; -import { text } from '@storybook/addon-knobs'; - -export function html(name: string, value: string, groupId?: string) { - return he.decode(text(name, value, groupId)); -} diff --git a/packages/ui/src/_bk_atlasmap/stories/sampleData.ts b/packages/ui/src/_bk_atlasmap/stories/sampleData.ts deleted file mode 100644 index 324d19b74..000000000 --- a/packages/ui/src/_bk_atlasmap/stories/sampleData.ts +++ /dev/null @@ -1,1111 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - IAtlasmapDocument, - IAtlasmapField, - IAtlasmapMappedField, - IAtlasmapMapping, -} from '../../Views'; - -import { MappingModel } from '@atlasmap/core'; -import { javaToFieldGroup } from './fromJava'; -import { jsonToFieldGroup } from './fromJson'; -import { xmlToFieldGroup } from './fromXML'; - -const mockJSONInstanceSource = { - JsonInspectionResponse: { - jsonType: 'io.atlasmap.json.v2.JsonInspectionResponse', - jsonDocument: { - jsonType: 'io.atlasmap.json.v2.JsonDocument', - fields: { - field: [ - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/order', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'order', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/order/address', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'address', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: '123 any st', - path: '/order/address/street', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'street', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 'Austin', - path: '/order/address/city', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'city', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 'TX', - path: '/order/address/state', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'state', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: '78626', - path: '/order/address/zip', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'zip', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/order/contact', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'contact', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 'james', - path: '/order/contact/firstName', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'firstName', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 'smith', - path: '/order/contact/lastName', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'lastName', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: '512-123-1234', - path: '/order/contact/phone', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'phone', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: '123', - path: '/order/orderId', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'orderId', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: '', - path: '/order/customerName', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'customerName', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/primitives', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'primitives', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 'some value', - path: '/primitives/stringPrimitive', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'stringPrimitive', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: true, - path: '/primitives/booleanPrimitive', - status: 'SUPPORTED', - fieldType: 'BOOLEAN', - name: 'booleanPrimitive', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 24, - path: '/primitives/numberPrimitive', - status: 'SUPPORTED', - fieldType: 'INTEGER', - name: 'numberPrimitive', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - collectionType: 'LIST', - path: '/addressList<>', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'addressList', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: '123 any st', - path: '/addressList<>/street', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'street', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 'Austin', - path: '/addressList<>/city', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'city', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: 'TX', - path: '/addressList<>/state', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'state', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - value: '78626', - path: '/addressList<>/zip', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'zip', - }, - ], - }, - }, - ], - }, - }, - executionTime: 10, - }, -}; -const mockJSONSchemaSource = { - JsonInspectionResponse: { - jsonType: 'io.atlasmap.json.v2.JsonInspectionResponse', - jsonDocument: { - jsonType: 'io.atlasmap.json.v2.JsonDocument', - fields: { - field: [ - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/order', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'order', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/order/address', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'address', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/address/street', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'street', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/address/city', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'city', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/address/state', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'state', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/address/zip', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'zip', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/order/contact', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'contact', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/contact/firstName', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'firstName', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/contact/lastName', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'lastName', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/contact/phone', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'phone', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/order/orderId', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'orderId', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/primitives', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'primitives', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/primitives/stringPrimitive', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'stringPrimitive', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/primitives/booleanPrimitive', - status: 'SUPPORTED', - fieldType: 'BOOLEAN', - name: 'booleanPrimitive', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/primitives/numberPrimitive', - status: 'SUPPORTED', - fieldType: 'NUMBER', - name: 'numberPrimitive', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - path: '/primitiveArrays', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'primitiveArrays', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - collectionType: 'LIST', - path: '/primitiveArrays/stringArray<>', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'stringArray', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - collectionType: 'LIST', - path: '/primitiveArrays/booleanArray<>', - status: 'SUPPORTED', - fieldType: 'BOOLEAN', - name: 'booleanArray', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - collectionType: 'LIST', - path: '/primitiveArrays/numberArray<>', - status: 'SUPPORTED', - fieldType: 'NUMBER', - name: 'numberArray', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.json.v2.JsonComplexType', - collectionType: 'LIST', - path: '/addressList<>', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - name: 'addressList', - jsonFields: { - jsonField: [ - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/addressList<>/street', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'street', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/addressList<>/city', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'city', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/addressList<>/state', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'state', - }, - { - jsonType: 'io.atlasmap.json.v2.JsonField', - path: '/addressList<>/zip', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'zip', - }, - ], - }, - }, - ], - }, - }, - executionTime: 2, - }, -}; - -const ioPaulBicycle = { - ClassInspectionResponse: { - jsonType: 'io.atlasmap.java.v2.ClassInspectionResponse', - javaClass: { - jsonType: 'io.atlasmap.java.v2.JavaClass', - path: '/', - fieldType: 'COMPLEX', - modifiers: { - modifier: ['PUBLIC'], - }, - className: 'io.paul.Bicycle', - canonicalClassName: 'io.paul.Bicycle', - primitive: false, - synthetic: false, - javaEnumFields: { - javaEnumField: [], - }, - javaFields: { - javaField: [ - { - jsonType: 'io.atlasmap.java.v2.JavaField', - path: '/cadence', - status: 'SUPPORTED', - fieldType: 'INTEGER', - modifiers: { - modifier: ['PUBLIC'], - }, - name: 'cadence', - className: 'int', - canonicalClassName: 'int', - primitive: true, - synthetic: false, - }, - { - jsonType: 'io.atlasmap.java.v2.JavaField', - path: '/gear', - status: 'SUPPORTED', - fieldType: 'INTEGER', - modifiers: { - modifier: ['PUBLIC'], - }, - name: 'gear', - className: 'int', - canonicalClassName: 'int', - primitive: true, - synthetic: false, - }, - { - jsonType: 'io.atlasmap.java.v2.JavaField', - path: '/speed', - status: 'SUPPORTED', - fieldType: 'INTEGER', - modifiers: { - modifier: ['PUBLIC'], - }, - name: 'speed', - className: 'int', - canonicalClassName: 'int', - primitive: true, - synthetic: false, - }, - { - jsonType: 'io.atlasmap.java.v2.JavaField', - path: '/serialId', - status: 'SUPPORTED', - fieldType: 'STRING', - modifiers: { - modifier: ['PUBLIC'], - }, - name: 'serialId', - className: 'java.lang.String', - canonicalClassName: 'java.lang.String', - primitive: true, - synthetic: false, - }, - { - jsonType: 'io.atlasmap.java.v2.JavaField', - arrayDimensions: 1, - collectionType: 'ARRAY', - path: '/seatHeight', - status: 'SUPPORTED', - fieldType: 'FLOAT', - modifiers: { - modifier: ['PUBLIC'], - }, - name: 'seatHeight', - className: 'float', - canonicalClassName: 'float', - primitive: true, - synthetic: false, - }, - { - jsonType: 'io.atlasmap.java.v2.JavaField', - arrayDimensions: 1, - collectionType: 'ARRAY', - path: '/color', - status: 'SUPPORTED', - fieldType: 'STRING', - modifiers: { - modifier: ['PUBLIC'], - }, - name: 'color', - className: 'java.lang.String', - canonicalClassName: 'java.lang.String', - primitive: true, - synthetic: false, - }, - { - jsonType: 'io.atlasmap.java.v2.JavaClass', - path: '/geoLocation', - status: 'SUPPORTED', - fieldType: 'COMPLEX', - modifiers: { - modifier: ['PUBLIC', 'PUBLIC'], - }, - name: 'geoLocation', - className: 'io.paul.GeoLocation', - canonicalClassName: 'io.paul.GeoLocation', - primitive: false, - synthetic: false, - javaEnumFields: { - javaEnumField: [], - }, - javaFields: { - javaField: [ - { - jsonType: 'io.atlasmap.java.v2.JavaField', - path: '/geoLocation/lattitude', - status: 'SUPPORTED', - fieldType: 'DOUBLE', - modifiers: { - modifier: ['PACKAGE_PRIVATE'], - }, - name: 'lattitude', - className: 'double', - canonicalClassName: 'double', - primitive: true, - synthetic: false, - }, - { - jsonType: 'io.atlasmap.java.v2.JavaField', - path: '/geoLocation/longitude', - status: 'SUPPORTED', - fieldType: 'DOUBLE', - modifiers: { - modifier: ['PACKAGE_PRIVATE'], - }, - name: 'longitude', - className: 'double', - canonicalClassName: 'double', - primitive: true, - synthetic: false, - }, - ], - }, - packageName: 'io.paul', - annotation: false, - annonymous: false, - enumeration: false, - localClass: false, - memberClass: false, - uri: 'atlas:java?className=io.paul.GeoLocation', - interface: false, - }, - ], - }, - packageName: 'io.paul', - annotation: false, - annonymous: false, - enumeration: false, - localClass: false, - memberClass: false, - uri: 'atlas:java?className=io.paul.Bicycle', - interface: false, - }, - executionTime: 247, - }, -}; - -const XMLSchemaSource = { - XmlInspectionResponse: { - jsonType: 'io.atlasmap.xml.v2.XmlInspectionResponse', - xmlDocument: { - jsonType: 'io.atlasmap.xml.v2.XmlDocument', - fields: { - field: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/tns:request', - fieldType: 'COMPLEX', - name: 'tns:request', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/tns:request/tns:body', - fieldType: 'COMPLEX', - name: 'tns:body', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/tns:request/tns:body/Pet', - fieldType: 'COMPLEX', - name: 'Pet', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/id', - fieldType: 'DECIMAL', - restrictions: { - restriction: [], - }, - name: 'id', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/tns:request/tns:body/Pet/Category', - fieldType: 'COMPLEX', - name: 'Category', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/Category/id', - fieldType: 'DECIMAL', - restrictions: { - restriction: [], - }, - name: 'id', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/Category/name', - fieldType: 'STRING', - restrictions: { - restriction: [], - }, - name: 'name', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/name', - fieldType: 'STRING', - restrictions: { - restriction: [], - }, - name: 'name', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/tns:request/tns:body/Pet/photoUrl', - fieldType: 'COMPLEX', - name: 'photoUrl', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/photoUrl/photoUrl', - fieldType: 'STRING', - restrictions: { - restriction: [], - }, - name: 'photoUrl', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/tns:request/tns:body/Pet/tag', - fieldType: 'COMPLEX', - name: 'tag', - xmlFields: { - xmlField: [ - { - jsonType: - 'io.atlasmap.xml.v2.XmlComplexType', - collectionType: 'LIST', - path: '/tns:request/tns:body/Pet/tag/Tag', - fieldType: 'COMPLEX', - name: 'Tag', - xmlFields: { - xmlField: [ - { - jsonType: - 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/tag/Tag/id', - fieldType: 'DECIMAL', - restrictions: { - restriction: [], - }, - name: 'id', - }, - { - jsonType: - 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/tag/Tag/name', - fieldType: 'STRING', - restrictions: { - restriction: [], - }, - name: 'name', - }, - ], - }, - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - path: '/tns:request/tns:body/Pet/status', - fieldType: 'STRING', - restrictions: { - restriction: [], - }, - name: 'status', - }, - ], - }, - }, - ], - }, - }, - ], - }, - }, - ], - }, - xmlNamespaces: { - xmlNamespace: [ - { - alias: 'tns', - uri: 'http://syndesis.io/v1/swagger-connector-template/request', - }, - ], - }, - }, - executionTime: 65, - }, -}; - -const XMLInstanceSource = { - XmlInspectionResponse: { - jsonType: 'io.atlasmap.xml.v2.XmlInspectionResponse', - xmlDocument: { - jsonType: 'io.atlasmap.xml.v2.XmlDocument', - fields: { - field: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/ns:XmlOE', - fieldType: 'COMPLEX', - name: 'ns:XmlOE', - typeName: - 'http://atlasmap.io/xml/test/v2 atlas-xml-test-model-v2.xsd ', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:orderId', - path: '/ns:XmlOE/ns:orderId', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:orderId', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/ns:XmlOE/ns:Address', - fieldType: 'COMPLEX', - name: 'ns:Address', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:addressLine1', - path: '/ns:XmlOE/ns:Address/ns:addressLine1', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:addressLine1', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:addressLine2', - path: '/ns:XmlOE/ns:Address/ns:addressLine2', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:addressLine2', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:city', - path: '/ns:XmlOE/ns:Address/ns:city', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:city', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:state', - path: '/ns:XmlOE/ns:Address/ns:state', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:state', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:zipCode', - path: '/ns:XmlOE/ns:Address/ns:zipCode', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:zipCode', - }, - ], - }, - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlComplexType', - path: '/ns:XmlOE/ns:Contact', - fieldType: 'COMPLEX', - name: 'ns:Contact', - xmlFields: { - xmlField: [ - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:firstName', - path: '/ns:XmlOE/ns:Contact/ns:firstName', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:firstName', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:lastName', - path: '/ns:XmlOE/ns:Contact/ns:lastName', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:lastName', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:phoneNumber', - path: '/ns:XmlOE/ns:Contact/ns:phoneNumber', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:phoneNumber', - }, - { - jsonType: 'io.atlasmap.xml.v2.XmlField', - value: 'ns:zipCode', - path: '/ns:XmlOE/ns:Contact/ns:zipCode', - status: 'SUPPORTED', - fieldType: 'STRING', - name: 'ns:zipCode', - }, - ], - }, - }, - ], - }, - }, - ], - }, - xmlNamespaces: { - xmlNamespace: [ - { - alias: 'xsi', - uri: 'http://www.w3.org/2001/XMLSchema-instance', - }, - { - alias: 'ns', - uri: 'http://atlasmap.io/xml/test/v2', - }, - ], - }, - }, - executionTime: 26, - }, -}; - -export const mappings: IAtlasmapMapping[] = [ - { - id: 'a', - name: 'Many To One(Concatenate)', - sourceFields: [ - { - id: 'JSONInstanceSource-source-/order/address/city', - name: 'JSONInstanceSource-source-/order/address/city', - } as IAtlasmapMappedField, - { - id: 'JSONInstanceSource-source-/order/address/state', - name: 'JSONInstanceSource-source-/order/address/state', - } as IAtlasmapMappedField, - ], - targetFields: [ - { - id: 'XMLInstanceSource-target-/ns:XmlOE/ns:Address/ns:addressLine1', - name: 'XMLInstanceSource-target-/ns:XmlOE/ns:Address/ns:addressLine1', - } as IAtlasmapMappedField, - ], - mapping: {} as MappingModel, - }, - { - id: 'b', - name: 'One to Many (Split)', - sourceFields: [ - { - id: 'JSONInstanceSource-source-/primitives/numberPrimitive', - name: 'JSONInstanceSource-source-/primitives/numberPrimitive', - } as IAtlasmapMappedField, - ], - targetFields: [ - { - id: 'io.paul.Bicycle-target-/cadence', - name: 'io.paul.Bicycle-target-/cadence', - } as IAtlasmapMappedField, - { - id: 'io.paul.Bicycle-target-/gear', - name: 'io.paul.Bicycle-target-/gear', - } as IAtlasmapMappedField, - { - id: 'io.paul.Bicycle-target-/speed', - name: 'io.paul.Bicycle-target-/speed', - } as IAtlasmapMappedField, - ], - mapping: {} as MappingModel, - }, - { - id: 'c', - name: 'Many to One (Concatenate)', - sourceFields: [ - { - id: 'JSONInstanceSource-source-/primitives/stringPrimitive', - name: 'JSONInstanceSource-source-/primitives/stringPrimitive', - } as IAtlasmapMappedField, - { - id: 'JSONInstanceSource-source-/order/orderId', - name: 'JSONInstanceSource-source-/order/orderId', - } as IAtlasmapMappedField, - { - id: 'JSONSchemaSource-/primitives/stringPrimitive', - name: 'JSONSchemaSource-/primitives/stringPrimitive', - } as IAtlasmapMappedField, - ], - targetFields: [ - { - id: 'io.paul.Bicycle-target-/serialId', - name: 'io.paul.Bicycle-target-/serialId', - } as IAtlasmapMappedField, - ], - mapping: {} as MappingModel, - }, -]; - -export const properties: IAtlasmapDocument = { - id: 'properties', - name: 'Properties', - type: 'properties', - fields: [ - { - id: 'boston', - name: 'boston = boston', - value: '', - type: 'STRING', - path: '/boston', - scope: 'current', - mappings: [], - hasTransformations: false, - isAttribute: false, - isCollection: false, - isInCollection: false, - isConnected: false, - isDisabled: false, - amField: {} as IAtlasmapField['amField'], - enumeration: false, - }, - { - id: 'prop-city', - name: 'prop-city = boston', - value: '', - type: 'STRING', - path: '/prop-city', - scope: 'current', - mappings: [], - hasTransformations: false, - isAttribute: false, - isCollection: false, - isInCollection: false, - isConnected: false, - isDisabled: false, - amField: {} as IAtlasmapField['amField'], - enumeration: false, - }, - ], -}; - -export const constants: IAtlasmapDocument = { - id: 'constants', - name: 'Constants', - type: 'constants', - fields: [ - { - id: 'Boston', - name: 'Boston', - value: 'Boston', - type: '', - path: '/Boston', - scope: 'current', - mappings: [], - hasTransformations: false, - isAttribute: false, - isCollection: false, - isInCollection: false, - isConnected: false, - isDisabled: false, - amField: {} as IAtlasmapField['amField'], - enumeration: false, - }, - ], -}; - -export const sources: IAtlasmapDocument[] = [ - { - id: 'JSONInstanceSource', - name: 'JSONInstanceSource', - type: 'JSON', - fields: jsonToFieldGroup( - mockJSONInstanceSource, - 'JSONInstanceSource-source', - mappings, - ), - }, - { - id: 'JSONSchemaSource', - name: 'JSONSchemaSource', - type: 'JSON', - fields: jsonToFieldGroup( - mockJSONSchemaSource, - 'JSONSchemaSource-source', - mappings, - ), - }, -]; - -export const targets: IAtlasmapDocument[] = [ - { - id: 'XMLInstanceSource', - name: 'XMLInstanceSource', - type: 'XML', - fields: xmlToFieldGroup( - XMLInstanceSource, - 'XMLInstanceSource-target', - mappings, - ), - }, - { - id: 'XMLSchemaSource', - name: 'XMLSchemaSource', - type: 'XML', - fields: xmlToFieldGroup( - XMLSchemaSource, - 'XMLSchemaSource-target', - mappings, - ), - }, - { - id: 'io.paul.Bicycle', - name: 'io.paul.Bicycle', - type: 'JAVA', - fields: javaToFieldGroup(ioPaulBicycle, 'io.paul.Bicycle-target', mappings), - }, -]; diff --git a/packages/ui/src/components/ColumnHeader.css b/packages/ui/src/components/ColumnHeader.css deleted file mode 100644 index 35b736be6..000000000 --- a/packages/ui/src/components/ColumnHeader.css +++ /dev/null @@ -1,25 +0,0 @@ -.header { -} - -.plain { - background: transparent; - border: 0 none transparent; -} - -.toolbar { - background: var(--pf-global--BackgroundColor--150); - border: 1px solid var(--pf-global--BorderColor--100); - border-bottom: 0; - padding: var(--pf-global--spacer--sm) var(--pf-global--spacer--md); - box-sizing: initial; - display: flex; - flex-flow: row no-wrap; -} - -.title { - display: flex; - align-items: center; - flex: 1 0 auto; - margin-right: var(--pf-global--spacer--sm); - height: 36px; -} diff --git a/packages/ui/src/components/ColumnHeader.tsx b/packages/ui/src/components/ColumnHeader.tsx deleted file mode 100644 index 30e3f881d..000000000 --- a/packages/ui/src/components/ColumnHeader.tsx +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, PropsWithChildren, ReactElement } from 'react'; - -import { Actions } from '../_bk_atlasmap/UI/Actions'; - -import { Title } from '@patternfly/react-core'; -import { css } from '@patternfly/react-styles'; -import './ColumnHeader.css'; - -export interface IColumnHeaderProps extends PropsWithChildren { - title: string; - variant?: 'default' | 'plain'; - actions?: (ReactElement | null | undefined)[]; -} - -export const ColumnHeader: FunctionComponent = ({ title, actions, variant, children }) => { - return ( -
-
-
- - {title} - -
- {actions?.filter((a) => a)} -
- {children} -
- ); -}; diff --git a/packages/ui/src/components/DataMapper.stories.tsx b/packages/ui/src/components/DataMapper.stories.tsx deleted file mode 100644 index 43c76288d..000000000 --- a/packages/ui/src/components/DataMapper.stories.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { DataMapperProvider } from '../providers/DataMapperProvider'; -import { boolean } from '@storybook/addon-knobs'; - -import { DataMapper } from './DataMapper'; -import { action } from '@storybook/addon-actions'; - -const obj = { - title: 'AtlasMap|Demo', -}; -export default obj; - -export const wiredToTheBackend = () => ( - - - -); diff --git a/packages/ui/src/components/DataMapper.tsx b/packages/ui/src/components/DataMapper.tsx deleted file mode 100644 index 87e196cc3..000000000 --- a/packages/ui/src/components/DataMapper.tsx +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { CanvasProvider, TimedToast } from '../_bk_atlasmap/UI'; -import { FieldDragLayer } from '../components/dnd/FieldDragLayer'; -import { FieldsDndProvider } from '../providers/FieldsDndProvider'; -import { MainLayout } from '../layout'; -import { FunctionComponent, useContext } from 'react'; - -import { AlertGroup } from '@patternfly/react-core'; -import { useDataMapperDialogs } from '../_bk_atlasmap/impl/useDataMapperDialogs'; -import { useSidebar } from '../_bk_atlasmap/impl/useSidebar'; -import { DataMapperContext } from '../providers'; - -export interface IDataMapperProps { - modalsContainerId?: string; -} - -export const DataMapper: FunctionComponent = ({ modalsContainerId = 'modals' }) => { - const { - // error, - notifications, - sourceProperties, - targetProperties, - constants, - selectedMapping, - isEnumerationMapping, - } = useContext(DataMapperContext)!; - const { handlers, dialogs } = useDataMapperDialogs({ - modalContainer: document.getElementById(modalsContainerId)!, - }); - - const renderSidebar = useSidebar({ - onCreateConstant: () => { - handlers.onCreateConstant(constants, true); - }, - onCreateProperty: (isSource: boolean) => { - if (isSource) { - handlers.onCreateProperty(isSource, sourceProperties, true); - } else { - handlers.onCreateProperty(isSource, targetProperties, true); - } - }, - onRemoveMapping: handlers.onDeleteSelectedMapping, - onEditEnum: handlers.onEditMappingEnumeration, - isEnumMapping: isEnumerationMapping, - }); - - return ( - - - - - - {notifications - .filter((n) => !n.isRead && !n.mappingId) - .slice(0, 5) - .map(({ id, variant, title, description }) => ( - {}} onTimeout={() => {}}> - {description} - - ))} - - {dialogs} - - - ); -}; diff --git a/packages/ui/src/components/NodeRef.tsx b/packages/ui/src/components/NodeRef.tsx deleted file mode 100644 index 86529eaa9..000000000 --- a/packages/ui/src/components/NodeRef.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Children, PropsWithChildren, cloneElement, forwardRef, isValidElement, useRef } from 'react'; -import { NodeRefPropsWithOptionalId, useNodeRef } from '../providers/NodeRefProvider'; - -export const NodeRef = forwardRef>>( - function NodeRef({ children, ...props }, ref) { - const node = Children.only(children); - const nodeRef = useRef(null); - - useNodeRef({ ...props, ref: nodeRef }); - - const handleRef = (el: HTMLElement) => { - if (ref) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - // by default forwardedRef.current is readonly. Let's ignore it - ref.current = el; - } - nodeRef.current = el; - }; - - return isValidElement(node) - ? cloneElement(node, { - ref: handleRef, - }) - : null; - }, -); diff --git a/packages/ui/src/components/SearchableColumnHeader.tsx b/packages/ui/src/components/SearchableColumnHeader.tsx deleted file mode 100644 index 88f564d0b..000000000 --- a/packages/ui/src/components/SearchableColumnHeader.tsx +++ /dev/null @@ -1,63 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, InputGroup, TextInput } from '@patternfly/react-core'; -import { ColumnHeader, IColumnHeaderProps } from './ColumnHeader'; -import { FormEvent, FunctionComponent, useRef } from 'react'; - -import { SearchIcon } from '@patternfly/react-icons'; - -export interface ISearchableColumnHeaderProps extends IColumnHeaderProps { - onSearch: (content: string) => void; -} - -export const SearchableColumnHeader: FunctionComponent = ({ - title, - actions = [], - onSearch, -}) => { - const searchRef = useRef(null); - const onSearchSubmit = (event: FormEvent) => { - if (searchRef.current) { - onSearch(searchRef.current.value); - } - event.preventDefault(); - return false; - }; - return ( - - - - - - , - ...actions, - ]} - /> - ); -}; diff --git a/packages/ui/src/components/dialogs/AboutDialog.tsx b/packages/ui/src/components/dialogs/AboutDialog.tsx deleted file mode 100644 index 2005f64aa..000000000 --- a/packages/ui/src/components/dialogs/AboutDialog.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Modal } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; - -export type CloseCallback = () => void; - -export interface IAboutDialogProps { - title: string; - onClose: CloseCallback; - isOpen: boolean; -} - -export const AboutDialog: FunctionComponent = ({ title, onClose, isOpen }) => { - return ( - - Close - , - ]} - > - <> - - ); -}; diff --git a/packages/ui/src/components/dialogs/ConfirmationDialog.tsx b/packages/ui/src/components/dialogs/ConfirmationDialog.tsx deleted file mode 100644 index 5d133df89..000000000 --- a/packages/ui/src/components/dialogs/ConfirmationDialog.tsx +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Modal } from '@patternfly/react-core'; -import { FunctionComponent, PropsWithChildren } from 'react'; - -export type ConfirmCallback = () => void; -export type CancelCallback = () => void; - -export interface IConfirmationDialogProps extends PropsWithChildren { - title: string; - description?: string; - dataTestid?: string; - onConfirm?: ConfirmCallback; - onCancel: CancelCallback; - isOpen: boolean; -} - -export const ConfirmationDialog: FunctionComponent = ({ - title, - description, - dataTestid, - onCancel, - onConfirm, - isOpen, - children, -}) => { - return ( - - Confirm - , - , - ]} - > - {children} - - ); -}; diff --git a/packages/ui/src/components/dialogs/ExportMappingDialog.tsx b/packages/ui/src/components/dialogs/ExportMappingDialog.tsx deleted file mode 100644 index 548cc7187..000000000 --- a/packages/ui/src/components/dialogs/ExportMappingDialog.tsx +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ConfirmationDialog, IConfirmationDialogProps } from './ConfirmationDialog'; -import { Form, FormGroup, InputGroup, InputGroupText, TextInput } from '@patternfly/react-core'; -import { FunctionComponent, useState } from 'react'; - -export interface IExportCatalogDialogProps { - isOpen: IConfirmationDialogProps['isOpen']; - onCancel: IConfirmationDialogProps['onCancel']; - onConfirm: (filename: string) => void; -} -export const ExportMappingDialog: FunctionComponent = ({ isOpen, onCancel, onConfirm }) => { - const defaultMappingName = 'mapping'; - const [filename, setFilename] = useState(defaultMappingName); - const handleOnConfirm = filename.length > 0 ? () => onConfirm(filename) : undefined; - return ( - -
- - - setFilename(value)} - id={'filename'} - isRequired={true} - autoFocus={true} - data-testid={'export-catalog-dialog-text-input'} - /> - .xsl - - -
-
- ); -}; diff --git a/packages/ui/src/components/dialogs/index.ts b/packages/ui/src/components/dialogs/index.ts deleted file mode 100644 index 5c10dd72a..000000000 --- a/packages/ui/src/components/dialogs/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './ConfirmationDialog'; -export * from './ExportMappingDialog'; -export * from './useConfirmationDialog'; diff --git a/packages/ui/src/components/dialogs/useConfirmationDialog.tsx b/packages/ui/src/components/dialogs/useConfirmationDialog.tsx deleted file mode 100644 index 64faf88e9..000000000 --- a/packages/ui/src/components/dialogs/useConfirmationDialog.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ReactElement, useRef } from 'react'; - -import { ConfirmationDialog } from './ConfirmationDialog'; -import { TextContent } from '@patternfly/react-core'; -import { useToggle } from '../../hooks'; - -export function useConfirmationDialog( - title: string, - content: ReactElement | string, -): [ReactElement, (cb: () => void) => void] { - const { state, toggleOn, toggleOff } = useToggle(false); - const onConfirmCb = useRef<(() => void) | null>(null); - const onConfirm = () => { - if (onConfirmCb.current) { - onConfirmCb.current(); - } - toggleOff(); - }; - const openDialog = (confirmCb: () => void) => { - onConfirmCb.current = confirmCb; - toggleOn(); - }; - return [ - - {content} - , - openDialog, - ]; -} diff --git a/packages/ui/src/components/dnd/DraggableField.tsx b/packages/ui/src/components/dnd/DraggableField.tsx deleted file mode 100644 index d746be96c..000000000 --- a/packages/ui/src/components/dnd/DraggableField.tsx +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ElementType, HTMLAttributes, ReactElement, forwardRef, useEffect } from 'react'; - -import { getEmptyImage } from 'react-dnd-html5-backend'; -import { useDrag } from 'react-dnd'; -import { IDragAndDropField } from '../../models'; - -export interface IDraggableChildrenProps { - isDragging: boolean; -} - -export interface IDraggableProps extends Omit, 'onDrop'> { - field: IDragAndDropField; - onDrop: (source: IDragAndDropField, target: IDragAndDropField | null) => void; - as?: ElementType; - childrenWithProps: (props: IDraggableChildrenProps) => ReactElement; -} - -export const DraggableField = forwardRef(function DraggableField( - { field, onDrop, as: As = 'div', childrenWithProps, ...props }, - ref, -) { - const [{ isDragging }, dragRef, preview] = useDrag< - IDragAndDropField, - IDragAndDropField, - Omit - >({ - type: field.type, - item: field, - collect: (monitor) => ({ - isDragging: monitor.isDragging(), - }), - end: (_, monitor) => { - if (monitor.didDrop()) { - onDrop(field, monitor.getDropResult()); - } - }, - }); - - useEffect(() => { - preview(getEmptyImage(), { captureDraggingState: true }); - }, [preview]); - - const handleRef = (el: HTMLElement) => { - if (ref) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - // by default forwardedRef.current is readonly. Let's ignore it - ref.current = el; - } - dragRef(el); - }; - - return ( - - {childrenWithProps({ - isDragging, - })} - - ); -}); diff --git a/packages/ui/src/components/dnd/DraggedField.tsx b/packages/ui/src/components/dnd/DraggedField.tsx deleted file mode 100644 index 49efed87f..000000000 --- a/packages/ui/src/components/dnd/DraggedField.tsx +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, ReactElement, useContext } from 'react'; -import { XYCoord, useDragLayer } from 'react-dnd'; - -import { IDragAndDropField } from '../../_bk_atlasmap/UI/dnd/models'; -import { FieldsDndContext } from '../../providers/FieldsDndProvider'; - -export interface IIDraggedFieldChildrenProps { - isDragging: boolean; - currentOffset: XYCoord | null; - draggedField: IDragAndDropField | null; - getHoveredTarget: () => IDragAndDropField | null; -} - -export interface IDraggedFieldProps { - children: (props: IIDraggedFieldChildrenProps) => ReactElement | null; -} - -export const DraggedField: FunctionComponent = ({ children }) => { - const { getHoveredTarget } = useContext(FieldsDndContext)!; - const { isDragging, draggedField, currentOffset } = useDragLayer< - Omit - >((monitor) => ({ - draggedField: monitor.getItem(), - currentOffset: monitor.getClientOffset(), - isDragging: monitor.isDragging(), - })); - - return children({ - isDragging, - currentOffset, - draggedField, - getHoveredTarget, - }); -}; diff --git a/packages/ui/src/components/dnd/FieldDragLayer.css b/packages/ui/src/components/dnd/FieldDragLayer.css deleted file mode 100644 index 36024d676..000000000 --- a/packages/ui/src/components/dnd/FieldDragLayer.css +++ /dev/null @@ -1,9 +0,0 @@ -.canvasObject { - pointer-events: none; -} - -.canvasInner { - display: inline-block; - margin: auto; -} - diff --git a/packages/ui/src/components/dnd/FieldDragLayer.tsx b/packages/ui/src/components/dnd/FieldDragLayer.tsx deleted file mode 100644 index 507b60b3d..000000000 --- a/packages/ui/src/components/dnd/FieldDragLayer.tsx +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, useEffect } from 'react'; - -import { DraggedField } from './DraggedField'; -import { Label } from '@patternfly/react-core'; -import './FieldDragLayer.css'; -import { useDimensions } from '../../hooks/useDimensions'; - -export const FieldDragLayer: FunctionComponent = () => { - const [ref, dimensions, measure] = useDimensions(); - useEffect(measure); - - return ( - - {({ isDragging, currentOffset, draggedField }) => - isDragging && currentOffset && draggedField ? ( -
-
- -
-
- ) : null - } -
- ); -}; diff --git a/packages/ui/src/components/dnd/FieldDropTarget.tsx b/packages/ui/src/components/dnd/FieldDropTarget.tsx deleted file mode 100644 index c19effa9e..000000000 --- a/packages/ui/src/components/dnd/FieldDropTarget.tsx +++ /dev/null @@ -1,95 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ElementType, - HTMLAttributes, - ReactElement, - forwardRef, - useEffect, - useRef, - useContext, - // useEffect, -} from 'react'; -import { useDrop } from 'react-dnd'; -import { FieldsDndContext } from '../../providers/FieldsDndProvider'; -import { IDragAndDropField } from '../../models'; - -export interface IFieldDropTargetChildren { - isOver: boolean; - isDroppable: boolean; - isTarget: boolean; - field: IDragAndDropField; -} - -export interface IFieldDropTargetProps extends Omit, 'onDrop'> { - accept: string[]; - target: IDragAndDropField; - canDrop: (draggedField: IDragAndDropField) => boolean; - as?: ElementType; - childrenWithProps: (props: IFieldDropTargetChildren) => ReactElement; -} - -export const FieldDropTarget = forwardRef(function FieldDropTarget( - { accept, target, canDrop, as: As = 'div', childrenWithProps, ...props }, - ref, -) { - const { setHoveredTarget } = useContext(FieldsDndContext); - const [{ isOver, isDroppable, isTarget, field }, dropRef] = useDrop< - IDragAndDropField, - IDragAndDropField, - IFieldDropTargetChildren - >({ - accept, - collect: (monitor) => ({ - isOver: monitor.isOver(), - isDroppable: monitor.canDrop(), - isTarget: monitor.isOver() && monitor.canDrop(), - field: monitor.getItem(), - }), - canDrop: (_, monitor) => canDrop(monitor.getItem()), - drop: () => target, - }); - - const handleRef = (el: HTMLElement) => { - if (ref) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-expect-error - // by default forwardedRef.current is readonly. Let's ignore it - ref.current = el; - } - dropRef(el); - }; - - const wasOver = useRef(false); - const wasTarget = useRef(false); - useEffect(() => { - if (isOver !== wasOver.current || isTarget !== wasTarget.current) { - if (isTarget) { - setHoveredTarget(target); - } else if (!isOver) { - setHoveredTarget(null); - } - wasOver.current = isOver; - wasTarget.current = isTarget; - } - }, [isOver, isTarget, setHoveredTarget, target]); - - return ( - - {childrenWithProps({ isDroppable, isOver, isTarget, field })} - - ); -}); diff --git a/packages/ui/src/components/dnd/index.ts b/packages/ui/src/components/dnd/index.ts deleted file mode 100644 index b0d546cd3..000000000 --- a/packages/ui/src/components/dnd/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './DraggableField'; -export * from './DraggableField'; -export * from './FieldDragLayer'; -export * from './FieldDropTarget'; diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx new file mode 100644 index 000000000..e196a35fd --- /dev/null +++ b/packages/ui/src/components/document/Document.tsx @@ -0,0 +1,29 @@ +import { FunctionComponent, useState } from 'react'; +import { Accordion, Card, CardBody, CardExpandableContent, CardHeader, CardTitle } from '@patternfly/react-core'; +import { IDocument } from '../../models'; +import { DocumentField } from './DocumentField'; + +export type DocumentProps = { + model: IDocument; +}; + +export const Document: FunctionComponent = ({ model }) => { + const [isExpanded, setExpanded] = useState(true); + + return ( + + setExpanded(!isExpanded)}> + {model.name} + + + + + {model.fields.map((field) => ( + + ))} + + + + + ); +}; diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx new file mode 100644 index 000000000..0c268e04b --- /dev/null +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -0,0 +1,54 @@ +import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; +import { FunctionComponent, useState } from 'react'; +import { useDraggable, useDroppable } from '@dnd-kit/core'; +import { IField } from '../../models'; + +type DocumentFieldProps = { + field: IField; +}; +export const DocumentField: FunctionComponent = ({ field }) => { + const [isExpanded, setIsExpanded] = useState(true); + const fieldId = field.name + Math.random(); + const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ + id: 'droppable-' + fieldId, + }); + const { + attributes, + listeners, + setNodeRef: setDraggableNodeRef, + transform, + } = useDraggable({ + id: 'draggable-' + fieldId, + }); + const droppableStyle = { + color: isOver ? 'green' : undefined, + }; + const draggableStyle = transform + ? { + transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, + } + : undefined; + + return !field.fields || field.fields.length == 0 ? ( +
+
+ {field.name} +
+
+ ) : ( + + setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> +
+
+ {field.name} +
+
+
+ + {field.fields.map((f: IField) => ( + + ))} + +
+ ); +}; diff --git a/packages/ui/src/layout/views/sourceTarget/ImportDocumentButton.tsx b/packages/ui/src/components/document/ImportDocumentButton.tsx similarity index 94% rename from packages/ui/src/layout/views/sourceTarget/ImportDocumentButton.tsx rename to packages/ui/src/components/document/ImportDocumentButton.tsx index 8f537f83d..63f0ff4c8 100644 --- a/packages/ui/src/layout/views/sourceTarget/ImportDocumentButton.tsx +++ b/packages/ui/src/components/document/ImportDocumentButton.tsx @@ -18,9 +18,9 @@ import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; import { useFilePicker } from 'react-sage'; -import { readFileAsString } from '../../../util'; -import { DocumentService } from '../../../services'; -import { useDataMapperContext } from '../../../hooks'; +import { readFileAsString } from '../../util'; +import { DocumentService } from '../../services'; +import { useDataMapperContext } from '../../hooks'; export interface IImportActionProps { isSource: boolean; diff --git a/packages/ui/src/components/document/index.ts b/packages/ui/src/components/document/index.ts new file mode 100644 index 000000000..9e2af33ba --- /dev/null +++ b/packages/ui/src/components/document/index.ts @@ -0,0 +1,3 @@ +export * from './Document'; +export * from './DocumentField'; +export * from './ImportDocumentButton'; diff --git a/packages/ui/src/components/documents/ConstantsDocument.tsx b/packages/ui/src/components/documents/ConstantsDocument.tsx deleted file mode 100644 index c6d5f9c5a..000000000 --- a/packages/ui/src/components/documents/ConstantsDocument.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Document } from '../index'; -import { DataMapperContext } from '../../providers'; -import { Button, Tooltip } from '@patternfly/react-core'; -import { PlusIcon } from '@patternfly/react-icons'; -import { ConstantsTree } from './ConstantsTree'; - -export const ConstantsDocument: FunctionComponent = () => { - const { constants } = useContext(DataMapperContext)!; - const onCreateConstant = useCallback(() => { - alert('not yet implemented'); - }, []); - - return ( - 0} - actions={[ - Create a constant for use in mapping} - key={'create-constant'} - entryDelay={750} - exitDelay={100} - > - - , - ]} - noPadding={!!constants} - > - {constants?.fields.length > 0 ? ( - - ) : ( -

No constants

- )} -
- ); -}; diff --git a/packages/ui/src/components/documents/ConstantsTree.tsx b/packages/ui/src/components/documents/ConstantsTree.tsx deleted file mode 100644 index 95abd54c7..000000000 --- a/packages/ui/src/components/documents/ConstantsTree.tsx +++ /dev/null @@ -1,130 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import { EditIcon, TrashIcon } from '@patternfly/react-icons'; -import { Tree } from './Tree'; -import { ITraverseFieldsProps, TraverseFields } from '../fields/TraverseFields'; -import { FunctionComponent } from 'react'; -import { - SOURCES_CONSTANTS_ID, - SOURCES_DRAGGABLE_TYPE, - SOURCES_FIELD_ID_PREFIX, - SOURCES_HEIGHT_BOUNDARY_ID, - SOURCES_WIDTH_BOUNDARY_ID, - TARGETS_DRAGGABLE_TYPE, -} from '../../layout/views/sourceTarget/constants'; - -import { commonActions } from './commonActions'; -import { IMapping, IDocument, IField, IDragAndDropField } from '../../models'; - -export interface IConstantsTreeCallbacks { - onDrop: (source: IField, target: IDragAndDropField | null) => void; - canDrop: (source: IField, target: IDragAndDropField) => boolean; - onShowMappingDetails: (mapping: IMapping) => void; - canAddFieldToSelectedMapping: (source: IField) => boolean; - onAddToSelectedMapping: (source: IField) => void; - canRemoveFromSelectedMapping: (source: IField) => boolean; - onRemoveFromSelectedMapping: (source: IField) => void; - onEditConstant: (name: string, value: string) => void; - onDeleteConstant: (name: string) => void; - canStartMapping: (field: IField) => boolean; - onStartMapping: (field: IField) => void; -} - -export interface IConstantsTreeProps extends IConstantsTreeCallbacks { - fields: IDocument['fields']; - renderPreview: ITraverseFieldsProps['renderPreview']; -} - -export const ConstantsTree: FunctionComponent = ({ - fields, - onDrop, - canDrop, - onShowMappingDetails, - canAddFieldToSelectedMapping, - onAddToSelectedMapping, - canRemoveFromSelectedMapping, - onRemoveFromSelectedMapping, - onEditConstant, - onDeleteConstant, - canStartMapping, - onStartMapping, - renderPreview, -}) => ( - - [ - ...commonActions({ - connectedMappings: field.mappings, - onShowMappingDetails: onShowMappingDetails, - canAddFieldToSelectedMapping: canAddFieldToSelectedMapping(field), - onAddToSelectedMapping: () => onAddToSelectedMapping(field), - canRemoveFromSelectedMapping: canRemoveFromSelectedMapping(field), - onRemoveFromSelectedMapping: () => onRemoveFromSelectedMapping(field), - canStartMapping: canStartMapping(field), - onStartMapping: () => onStartMapping(field), - }), - Edit constant} - entryDelay={750} - exitDelay={100} - > - - , - Remove constant} - entryDelay={750} - exitDelay={100} - > - - , - ]} - renderPreview={renderPreview} - /> - -); diff --git a/packages/ui/src/components/documents/DeleteDocumentButton.tsx b/packages/ui/src/components/documents/DeleteDocumentButton.tsx deleted file mode 100644 index 7a95a77d5..000000000 --- a/packages/ui/src/components/documents/DeleteDocumentButton.tsx +++ /dev/null @@ -1,36 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Tooltip } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; - -import { TrashIcon } from '@patternfly/react-icons'; - -export type DeleteDocumentButtonProps = { - id: string; - onClick: () => void; -}; -export const DeleteDocumentButton: FunctionComponent = ({ id, onClick }) => ( - Remove instance or schema file}> - - -); diff --git a/packages/ui/src/components/documents/Document.css b/packages/ui/src/components/documents/Document.css deleted file mode 100644 index 357b97fc7..000000000 --- a/packages/ui/src/components/documents/Document.css +++ /dev/null @@ -1,48 +0,0 @@ -.card { - padding: 0 !important; -} - -.stacked { - margin: 1rem 0; -} - -.head { - padding: 0.5rem 0 !important; -} - -.header { - width: 100%; - overflow: hidden; -} - -.actions { - align-self: center; -} - -.headerButton { - max-width: 100%; -} - -.bodyNoPadding { - padding: 0 !important; -} - -.bodyWithPadding { - padding: 0 1rem 1rem !important; -} - -.hidden { - display: none; -} - -.noShadows { - box-shadow: none !important; -} - -.dropTarget:before { - background: var(--pf-global--active-color--400) !important; -} - -.dropAccepted:before { - background: var(--pf-global--success-color--100) !important; -} diff --git a/packages/ui/src/components/documents/Document.tsx b/packages/ui/src/components/documents/Document.tsx deleted file mode 100644 index 7ac8f9382..000000000 --- a/packages/ui/src/components/documents/Document.tsx +++ /dev/null @@ -1,144 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { AngleDownIcon, AngleRightIcon } from '@patternfly/react-icons'; -import { Button, Card, CardBody, CardHeader, CardTitle, Title } from '@patternfly/react-core'; -import { - HTMLAttributes, - KeyboardEvent, - MouseEvent, - PropsWithChildren, - ReactElement, - ReactNode, - forwardRef, - useCallback, -} from 'react'; - -import { css } from '@patternfly/react-styles'; -import './Document.css'; -import { useToggle } from '../../hooks'; - -export interface IDocumentProps extends Omit, 'title'> { - title?: string; - actions?: (ReactElement | null | undefined)[]; - footer?: ReactNode; - selected?: boolean; - selectable?: boolean; - dropTarget?: boolean; - dropAccepted?: boolean; - stacked?: boolean; - scrollIntoView?: boolean; - noPadding?: boolean; - noShadows?: boolean; - startExpanded?: boolean; - onSelect?: () => void; - onDeselect?: () => void; -} - -export const Document = forwardRef>(function Document( - { - id, - title, - actions, - footer, - selected = false, - dropTarget = false, - dropAccepted = false, - stacked = true, - selectable = false, - scrollIntoView = false, - noPadding = false, - noShadows = false, - startExpanded, - onSelect, - onDeselect, - children, - ...props - }, - ref, -) { - const { state: isExpanded, toggle: toggleExpanded } = useToggle(startExpanded!); - const handleClick = useCallback( - (event: MouseEvent) => { - event.stopPropagation(); - if (onSelect) { - onSelect(); - } - }, - [onSelect], - ); - const handleKey = useCallback( - (event: KeyboardEvent) => { - switch (event.key) { - case 'Enter': - case 'Space': - if (onSelect) { - onSelect(); - } - break; - case 'Escape': - if (onDeselect) { - onDeselect(); - } - break; - } - }, - [onDeselect, onSelect], - ); - const makeCardSelected = selected || dropTarget || dropAccepted; - - return ( -
- - {(title || actions) && ( - - {title && ( - - - - )} - - )} - - {children} - - {footer} - -
- ); -}); diff --git a/packages/ui/src/components/documents/DocumentFooter.css b/packages/ui/src/components/documents/DocumentFooter.css deleted file mode 100644 index a6766d343..000000000 --- a/packages/ui/src/components/documents/DocumentFooter.css +++ /dev/null @@ -1,3 +0,0 @@ -.footer { - padding-top: 1rem; -} diff --git a/packages/ui/src/components/documents/DocumentFooter.tsx b/packages/ui/src/components/documents/DocumentFooter.tsx deleted file mode 100644 index 5a10c8d7d..000000000 --- a/packages/ui/src/components/documents/DocumentFooter.tsx +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, PropsWithChildren } from 'react'; - -import { CardFooter } from '@patternfly/react-core'; -import './DocumentFooter.css'; - -export const DocumentFooter: FunctionComponent = ({ children }) => { - return {children}; -}; diff --git a/packages/ui/src/components/documents/PropertiesTree.tsx b/packages/ui/src/components/documents/PropertiesTree.tsx deleted file mode 100644 index 4dbdc0052..000000000 --- a/packages/ui/src/components/documents/PropertiesTree.tsx +++ /dev/null @@ -1,141 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { AtlasmapDocumentType } from '../../_bk_atlasmap/Views/models'; -import { Button, Tooltip } from '@patternfly/react-core'; -import { EditIcon, TrashIcon } from '@patternfly/react-icons'; -import { Tree } from '.'; -import { ITraverseFieldsProps, TraverseFields } from '../fields/TraverseFields'; -import { FunctionComponent } from 'react'; -import { - SOURCES_FIELD_ID_PREFIX, - SOURCES_HEIGHT_BOUNDARY_ID, - SOURCES_PROPERTIES_ID, - SOURCES_WIDTH_BOUNDARY_ID, - TARGETS_FIELD_ID_PREFIX, - TARGETS_HEIGHT_BOUNDARY_ID, - TARGETS_PROPERTIES_ID, - TARGETS_WIDTH_BOUNDARY_ID, -} from '../../layout/views/sourceTarget/constants'; - -import { commonActions } from './commonActions'; -import { IMapping, IDocument, IField, IDragAndDropField } from '../../models'; - -export interface IPropertiesTreeCallbacks { - acceptDropType: AtlasmapDocumentType; - draggableType: AtlasmapDocumentType; - isSource: boolean; - onDrop: (source: IField, target: IDragAndDropField | null) => void; - canDrop: (source: IField, target: IDragAndDropField) => boolean; - onShowMappingDetails: (mapping: IMapping) => void; - canAddFieldToSelectedMapping: (source: IField) => boolean; - onAddToSelectedMapping: (source: IField) => void; - canRemoveFromSelectedMapping: (source: IField) => boolean; - onRemoveFromSelectedMapping: (source: IField) => void; - onEditProperty: (name: string, scope: string, isSource: boolean) => void; - onDeleteProperty: (name: string, scope: string, isSource: boolean) => void; - canStartMapping: (field: IField) => boolean; - onStartMapping: (field: IField) => void; -} - -export interface IPropertiesTreeProps extends IPropertiesTreeCallbacks { - fields: IDocument['fields']; - showTypes: boolean; - renderPreview: ITraverseFieldsProps['renderPreview']; -} - -export const PropertiesTree: FunctionComponent = ({ - acceptDropType, - draggableType, - isSource, - fields, - showTypes, - onDrop, - canDrop, - onShowMappingDetails, - canAddFieldToSelectedMapping, - onAddToSelectedMapping, - canRemoveFromSelectedMapping, - onRemoveFromSelectedMapping, - onEditProperty, - onDeleteProperty, - canStartMapping, - onStartMapping, - renderPreview, -}) => ( - - [ - ...commonActions({ - connectedMappings: field.mappings, - onShowMappingDetails: onShowMappingDetails, - canAddFieldToSelectedMapping: canAddFieldToSelectedMapping(field), - onAddToSelectedMapping: () => onAddToSelectedMapping(field), - canRemoveFromSelectedMapping: canRemoveFromSelectedMapping(field), - onRemoveFromSelectedMapping: () => onRemoveFromSelectedMapping(field), - canStartMapping: canStartMapping(field), - onStartMapping: () => onStartMapping(field), - }), - Edit property} - entryDelay={750} - exitDelay={100} - > - - , - Remove property} - entryDelay={750} - exitDelay={100} - > - - , - ]} - renderPreview={renderPreview} - /> - -); diff --git a/packages/ui/src/components/documents/SourceDocument.tsx b/packages/ui/src/components/documents/SourceDocument.tsx deleted file mode 100644 index 4a5624500..000000000 --- a/packages/ui/src/components/documents/SourceDocument.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { FunctionComponent } from 'react'; -import { IDocument } from '../../models'; -import { DocumentFooter, Tree } from '.'; -import { TraverseFields } from '../fields'; -import { Document } from '../index'; -import { useDataMapperContext } from '../../hooks'; -import { DeleteDocumentButton } from './DeleteDocumentButton'; -import { - SOURCES_FIELD_ID_PREFIX, - SOURCES_HEIGHT_BOUNDARY_ID, - SOURCES_WIDTH_BOUNDARY_ID, -} from '../../layout/views/sourceTarget/constants'; -import { commonActions } from './commonActions'; - -export type SourceDocumentProps = { - documentModel: IDocument; -}; - -export const SourceDocument: FunctionComponent = ({ documentModel }) => { - const { showTypes } = useDataMapperContext(); - const onDeleteDocument = (_id: string) => { - console.log('not yet implemented'); - }; - return ( - Source document type: {documentModel.type} : undefined} - actions={[ - onDeleteDocument && ( - onDeleteDocument(documentModel.id)} - key={'delete-document'} - /> - ), - ]} - noPadding={true} - > - - alert('onDrop')} - canDrop={() => true} - renderActions={(field) => - commonActions({ - connectedMappings: field.mappings, - onShowMappingDetails: () => alert('onShowMappingDetails'), - canAddFieldToSelectedMapping: true, - onAddToSelectedMapping: () => alert('onAddToSelectedMapping'), - canRemoveFromSelectedMapping: true, - onRemoveFromSelectedMapping: () => alert('onRemoveFromSelectedMapping'), - canStartMapping: true, - onStartMapping: () => alert('onStartMapping'), - }) - } - renderPreview={() => 'renderPreview'} - /> - - - ); -}; diff --git a/packages/ui/src/components/documents/SourcePropertiesDocument.tsx b/packages/ui/src/components/documents/SourcePropertiesDocument.tsx deleted file mode 100644 index 71595b7c0..000000000 --- a/packages/ui/src/components/documents/SourcePropertiesDocument.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Document } from '../index'; -import { Button, Tooltip } from '@patternfly/react-core'; -import { PlusIcon } from '@patternfly/react-icons'; -import { PropertiesTree } from './PropertiesTree'; -import { DataMapperContext } from '../../providers'; - -export const SourcePropertiesDocument: FunctionComponent = () => { - const { sourceProperties } = useContext(DataMapperContext)!; - const onCreateProperty = useCallback(() => { - alert('not yet implemented'); - }, []); - - return ( - 0} - actions={[ - Create a source property for use in mapping} - key={'create-property'} - entryDelay={750} - exitDelay={100} - > - - , - ]} - noPadding={!!sourceProperties} - > - {sourceProperties?.fields.length > 0 ? ( - - ) : ( - 'No source properties' - )} - - ); -}; diff --git a/packages/ui/src/components/documents/TargetDocument.tsx b/packages/ui/src/components/documents/TargetDocument.tsx deleted file mode 100644 index d895a73b6..000000000 --- a/packages/ui/src/components/documents/TargetDocument.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { IDocument } from '../../models'; -import { FunctionComponent } from 'react'; -import { Document, Tree } from '.'; -import { DocumentFooter } from './DocumentFooter'; -import { useDataMapperContext } from '../../hooks'; -import { DeleteDocumentButton } from './DeleteDocumentButton'; -import { TraverseFields } from '../fields'; -import { - TARGETS_FIELD_ID_PREFIX, - TARGETS_HEIGHT_BOUNDARY_ID, - TARGETS_WIDTH_BOUNDARY_ID, -} from '../../layout/views/sourceTarget/constants'; - -export const TargetDocument: FunctionComponent<{ documentModel: IDocument }> = ({ documentModel }) => { - const { showTypes } = useDataMapperContext(); - const onDeleteDocument = (_id: string) => { - alert('not yet implemented'); - }; - return ( - Target document type: {documentModel.type} : undefined} - actions={[ - onDeleteDocument && ( - onDeleteDocument(documentModel.id)} - key={'delete-tgt-documents'} - /> - ), - ]} - noPadding={true} - > - - - commonActions({ - connectedMappings: field.mappings, - onShowMappingDetails, - canAddFieldToSelectedMapping: canAddFieldToSelectedMapping(field), - onAddToSelectedMapping: () => onAddToSelectedMapping(field), - canRemoveFromSelectedMapping: canRemoveFromSelectedMapping(field), - onRemoveFromSelectedMapping: () => onRemoveFromSelectedMapping(field), - canStartMapping: canStartMapping(field), - onStartMapping: () => onStartMapping(field), - }) - } - renderPreview={renderPreviewResult} - /> - - - ); -}; diff --git a/packages/ui/src/components/documents/TargetPropertiesDocument.tsx b/packages/ui/src/components/documents/TargetPropertiesDocument.tsx deleted file mode 100644 index fe4443ad9..000000000 --- a/packages/ui/src/components/documents/TargetPropertiesDocument.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import { Document } from '.'; -import { FunctionComponent, useCallback, useContext } from 'react'; -import { DataMapperContext } from '../../providers'; -import { Button, Tooltip } from '@patternfly/react-core'; -import { PlusIcon } from '@patternfly/react-icons'; -import { PropertiesTree } from './PropertiesTree'; -export const TargetPropertiesDocument: FunctionComponent = () => { - const { targetProperties } = useContext(DataMapperContext)!; - const onCreateProperty = useCallback(() => { - alert('not yet implemented'); - }, []); - - return ( - 0} - actions={[ - Create a target property for use in mapping} - key={'create-target-property'} - entryDelay={750} - exitDelay={100} - > - - , - ]} - noPadding={!!targetProperties} - > - {targetProperties?.fields.length > 0 ? ( - - ) : ( - 'No target properties' - )} - - ); -}; diff --git a/packages/ui/src/components/documents/Tree.css b/packages/ui/src/components/documents/Tree.css deleted file mode 100644 index 147ac5a5b..000000000 --- a/packages/ui/src/components/documents/Tree.css +++ /dev/null @@ -1,3 +0,0 @@ -.accordion { - padding: 0 1rem 0 0 !important; /* TODO: this padding should be 0 and the right spacing should be given by DocumentGroup */ -} diff --git a/packages/ui/src/components/documents/Tree.tsx b/packages/ui/src/components/documents/Tree.tsx deleted file mode 100644 index a84b7ad79..000000000 --- a/packages/ui/src/components/documents/Tree.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, PropsWithChildren, useLayoutEffect, useRef } from 'react'; - -import { Accordion } from '@patternfly/react-core'; -import { TreeFocusProvider } from '../../providers/TreeFocusProvider'; -import './Tree.css'; - -export const Tree: FunctionComponent = ({ children }) => { - const ref = useRef(null); - - useLayoutEffect(() => { - if (ref.current) { - const itemInTabSequence = ref.current.querySelector(`[role=treeitem][tabindex="0"]`); - if (!itemInTabSequence) { - const firstTreeItem = ref.current.querySelector('[role=treeitem]'); - if (firstTreeItem) { - firstTreeItem.setAttribute('tabindex', '0'); - } - } - } - }); - return ( - -
- - {children} - -
-
- ); -}; diff --git a/packages/ui/src/components/documents/commonActions.tsx b/packages/ui/src/components/documents/commonActions.tsx deleted file mode 100644 index 2c59345e4..000000000 --- a/packages/ui/src/components/documents/commonActions.tsx +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - Button, - DropdownItem, - DropdownList, - MenuToggle, - Split, - SplitItem, - Title, - Tooltip, -} from '@patternfly/react-core'; -import { ExchangeAltIcon, LinkIcon, ProjectDiagramIcon, UnlinkIcon } from '@patternfly/react-icons'; - -import { AutoDropdown } from '../../_bk_atlasmap/UI'; - -import { IMapping } from '../../models'; - -export interface ICommonActionsProps { - connectedMappings: IMapping[]; - onShowMappingDetails: (mapping: IMapping) => void; - canAddFieldToSelectedMapping: boolean; - onAddToSelectedMapping: () => void; - canRemoveFromSelectedMapping: boolean; - onRemoveFromSelectedMapping: () => void; - canStartMapping: boolean; - onStartMapping: () => void; -} - -export function commonActions({ - connectedMappings, - onShowMappingDetails, - canAddFieldToSelectedMapping, - onAddToSelectedMapping, - canRemoveFromSelectedMapping, - onRemoveFromSelectedMapping, - canStartMapping, - onStartMapping, -}: ICommonActionsProps) { - return [ - Show mapping details}> - {connectedMappings.length > 1 ? ( - ( - - - - )} - isPlain={true} - > - - {connectedMappings.map((m) => ( - onShowMappingDetails(m)}> - - {m.name} - - - - - Sources - - {m.sourceFields.map((s) => ( -
{s.name}
- ))} -
- - - Targets - - {m.targetFields.map((t) => ( -
{t.name}
- ))} -
-
-
- ))} -
-
- ) : ( - - )} -
, - canRemoveFromSelectedMapping ? ( - Disconnect from the selected mapping} - > - - - ) : ( - Connect to the selected mapping} - > - - - ), - Create new mapping}> - - , - ]; -} diff --git a/packages/ui/src/components/documents/index.ts b/packages/ui/src/components/documents/index.ts deleted file mode 100644 index 2bf4a8c7f..000000000 --- a/packages/ui/src/components/documents/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from './ConstantsDocument'; -export * from './ConstantsTree'; -export * from './Document'; -export * from './DocumentFooter'; -export * from './PropertiesTree'; -export * from './SourceDocument'; -export * from './SourcePropertiesDocument'; -export * from './TargetDocument'; -export * from './TargetPropertiesDocument'; -export * from './Tree'; diff --git a/packages/ui/src/components/expression/ExpressionEditor.tsx b/packages/ui/src/components/expression/ExpressionEditor.tsx deleted file mode 100644 index e582fea1b..000000000 --- a/packages/ui/src/components/expression/ExpressionEditor.tsx +++ /dev/null @@ -1,559 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Form, FormGroup, InputGroup, TextInput, Tooltip } from '@patternfly/react-core'; -import { EnumValue, useToggle } from '../../_bk_atlasmap/impl/utils'; -import { Observable, Subscription } from 'rxjs'; -import React, { FunctionComponent, KeyboardEvent, MouseEvent, useCallback, useEffect } from 'react'; - -import { ExpressionEnumSelect } from './ExpressionEnumSelect'; -import { ExpressionFieldSearch } from './ExpressionFieldSearch'; -import { IExpressionNode } from '../../_bk_atlasmap/core'; -import { css } from '@patternfly/react-styles'; -import styles from '@patternfly/react-styles/css/components/FormControl/form-control'; - -let atIndex = -1; -let atContainer: Node | undefined; -let enumCandidates: EnumValue[] = []; -let expressionUpdatedSubscription: Subscription | null; -let lastUpdatedEvent: IExpressionUpdatedEvent | null = null; -let mappedFieldCandidates: string[][] = []; -let markup: HTMLDivElement | null = null; -let searchFilter = ''; -let searchMode = false; -let selectedNodeId: string = ''; -let trailerHTML = ''; -let trailerID = ''; -let getMappingExpression: () => string; -let mappingExprInit: () => void; -let mappingExprObservable: () => Observable | null; - -interface IExpressionUpdatedEvent { - node: IExpressionNode; - offset: number; -} - -export interface IExpressionContentProps { - executeFieldSearch: (searchFilter: string, isSource: boolean) => string[][]; - getFieldEnums: (nodeId: string) => EnumValue[]; - mappingExpressionAddField: ( - selectedDocId: string, - selectedField: string, - newTextNode: IExpressionNode, - atIndex: number, - isTrailer: boolean, - ) => void; - mappingExpressionClearText: (nodeId?: string, startOffset?: number, endOffset?: number) => IExpressionNode | null; - isMappingExpressionEmpty: boolean; - mappingExpressionInit: () => void; - mappingExpressionInsertText: (str: string, nodeId?: string | undefined, offset?: number | undefined) => void; - mappingExpressionObservable: () => Observable | null; - mappingExpressionRemoveField: (tokenPosition?: string, offset?: number, removeNext?: boolean) => void; - mappingExpression?: string; - trailerId: string; - disabled: boolean; - onToggle: () => void; - setSelectedEnumValue: (selectedEnum: string, selectedEnumValueIndex: number) => void; -} - -function updateExpressionMarkup(reset?: boolean) { - if (!markup) { - return; - } - if (reset) { - markup.innerHTML = trailerHTML; - } else { - const currentExpression = getMappingExpression(); - markup.innerHTML = currentExpression + trailerHTML; - } -} - -function moveCaretToEnd() { - if (!markup || trailerID.length === 0) { - return; - } - const trailerNode = markup.querySelector('#' + trailerID); - if (!trailerNode) { - return; - } - let range; - if (window.getSelection()!.rangeCount > 0) { - range = window.getSelection()!.getRangeAt(0); - } else { - range = document.createRange(); - window.getSelection()!.addRange(range); - } - range.selectNode(trailerNode.childNodes[0]); - range.setStart(trailerNode.childNodes[0], 0); - range.collapse(true); -} - -function restoreCaretPosition(event: IExpressionUpdatedEvent) { - if (!markup || !event || !event.node) { - return; - } - - for (let i = 0; i < markup.childNodes.length; i++) { - const target: any = markup.childNodes[i]; - if (target.id === event.node.uuid) { - const selection = window.getSelection(); - if (selection && selection.rangeCount) { - const range = selection.getRangeAt(0); - const actualNode = target.childNodes[0] ? target.childNodes[0] : target; - range.selectNode(actualNode); - if (event.offset <= actualNode.length) { - range.setStart(actualNode, event.offset); - } - range.collapse(true); - } - return; - } - } - moveCaretToEnd(); -} - -export function initializeMappingExpression() { - mappingExprInit(); - const mappingExprObs = mappingExprObservable(); - if (mappingExprObs) { - expressionUpdatedSubscription = mappingExprObs.subscribe((updatedEvent: IExpressionUpdatedEvent) => { - lastUpdatedEvent = updatedEvent; - }); - } - updateExpressionMarkup(); - if (!lastUpdatedEvent) { - moveCaretToEnd(); - } else { - restoreCaretPosition(lastUpdatedEvent); - lastUpdatedEvent = null; - } -} - -export const ExpressionEditor: FunctionComponent = ({ - executeFieldSearch, - getFieldEnums, - mappingExpressionAddField, - mappingExpressionClearText, - isMappingExpressionEmpty, - mappingExpressionInit, - mappingExpressionInsertText, - mappingExpressionObservable, - mappingExpressionRemoveField, - mappingExpression, - trailerId, - disabled, - onToggle, - setSelectedEnumValue, -}) => { - let addFieldToExpression: ( - selectedDocId: string, - selectedField: string, - newTextNode: IExpressionNode, - atIndex: number, - isTrailer: boolean, - ) => void; - let clearText: (nodeId?: string, startOffset?: number, endOffset?: number) => IExpressionNode | null; - let fieldSearch: (searchFilter: string, isSource: boolean) => string[][]; - let getEnums: (enumFieldName: string) => EnumValue[]; - let setSelEnumValue: (selectedEnumNodeId: string, selectedEnumValueIndex: number) => void; - - const { state: showEnumSelect, toggleOn: toggleEnumSelOn, toggleOff: toggleEnumSelOff } = useToggle(false); - - /** - * An enumeration value has been selected for the specified selected field node ID. - * - * @param selectedEnumNodeId - selected field node ID - * @param selectedEnumValueIndex - selected enumeration index - */ - function onEnumSelect(selectedEnumNodeId: string, selectedEnumValueIndex: number) { - setSelEnumValue(selectedEnumNodeId, selectedEnumValueIndex); - clearEnumSelect(); - } - - function insertTextAtCaretPosition(key: string) { - const range = window.getSelection()!.getRangeAt(0); - const startContainer = range.startContainer; - const startOffset = range.startOffset; - - // On initial caret positioning before the first field node, the markup - // and start container are the same. - if (markup && startContainer === markup) { - if (startOffset === 0) { - const initialElement = startContainer.childNodes[0] as Element; - mappingExpressionInsertText(key, initialElement.getAttribute('id')!, 0); - } else { - mappingExpressionInsertText(key); - } - return; - } - const nodeId = getCaretPositionNodeId(); - - if (nodeId === trailerID) { - mappingExpressionInsertText(key); - } else { - mappingExpressionInsertText(key, nodeId, startOffset); - } - } - - function removeTokenAtCaretPosition(before: boolean) { - const selection = window.getSelection(); - let removeNext: boolean = false; - if (!selection || !markup) { - return; - } - if (!selection.rangeCount) { - if (getCaretPositionNodeId() === trailerID) { - if (before) { - mappingExpressionRemoveField(); - moveCaretToEnd(); - } - } - return; - } - // The window selection node will be the text node if the cursor lies - // at the boundary between the text node and a field node. In that - // case remove the next node. - removeNext = - !before && - selection.focusNode && - selection.focusNode.nodeType === selection.focusNode.TEXT_NODE && - selection.focusOffset === selection.focusNode.textContent?.length - ? true - : false; - const range = selection.getRangeAt(0); - const startContainer = range.startContainer; - const startOffset = range.startOffset; - - if (startContainer === markup) { - if (startOffset === 0) { - // head of expression - if (!before && !isMappingExpressionEmpty) { - mappingExpressionRemoveField(getCaretPositionNodeId(), 0); - } - return; - } - // end of expression - if (before && !isMappingExpressionEmpty) { - mappingExpressionRemoveField(); - } - return; - } - - if (getCaretPositionNodeId(startContainer) === trailerID) { - if (before) { - mappingExpressionRemoveField(); - } - moveCaretToEnd(); - return; - } - mappingExpressionRemoveField(getCaretPositionNodeId(), before ? startOffset - 1 : startOffset, removeNext); - if (getCaretPositionNodeId() === trailerID) { - moveCaretToEnd(); - } - } - - /** - * Handle key down events. - * - * @param event - expression keyboard event - */ - function onKeyDown(event: KeyboardEvent): void { - if ('Backspace' === event.key) { - // TODO handle cursor position - event.preventDefault(); - removeTokenAtCaretPosition(true); - if (searchMode) { - updateSearchMode(); - } - } else if ('Delete' === event.key) { - event.preventDefault(); - removeTokenAtCaretPosition(false); - if (searchMode) { - updateSearchMode(); - } - } - } - - /** - * A mouse click has occurred within the expression box. - * - * @param event - mouse event - */ - function onExprClick(event: MouseEvent) { - selectedNodeId = getCaretPositionNodeId(); - - // Check for clicking on an enumeration field node. - enumCandidates = getEnums(selectedNodeId); - if (enumCandidates.length > 0) { - event.preventDefault(); - toggleEnumSelOn(); - } - } - - function onKeyPress(event: KeyboardEvent) { - if (event.ctrlKey || event.metaKey || event.altKey) { - return; - } - if (event.key.length > 1) { - return; - } - event.preventDefault(); - - if (isMappingExpressionEmpty) { - initializeMappingExpression(); - } - if (searchMode) { - if (event.key.match(/[a-z0-9]/i)) { - searchFilter += event.key; - mappedFieldCandidates = fieldSearch(searchFilter, true); - } - } else { - searchMode = event.key === '@' ? true : false; - if (searchMode) { - atContainer = window.getSelection()!.getRangeAt(0).startContainer; - atIndex = window.getSelection()!.getRangeAt(0).startOffset; - searchFilter = ''; - mappedFieldCandidates = fieldSearch(searchFilter, true); - } - } - insertTextAtCaretPosition(event.key); - } - - function onChange(_event: React.FormEvent) { - if (isMappingExpressionEmpty) { - initMappingExpression(); - } - if (expressionUpdatedSubscription) { - expressionUpdatedSubscription.unsubscribe(); - } - expressionUpdatedSubscription = mappingExprObservable()!.subscribe((updatedEvent: IExpressionUpdatedEvent) => { - updateExpressionMarkup(); - restoreCaretPosition(updatedEvent); - }); - updateExpressionMarkup(); - } - - function onPaste(event: React.ClipboardEvent) { - if (!event || !event.clipboardData) { - return; - } - event.preventDefault(); - const pasted = event.clipboardData.getData('text/plain'); - // TODO handle cursor position... for now just append to the end - mappingExpressionInsertText(pasted); - } - - /** - * The user has selected a field from the search select menu. Extract - * the field name and the scope if it is present. - * - * @param selectedDocId - * @param selectedField - * @returns - */ - function insertSelectedField(selectedDocId: string, selectedField: string): void { - const newTextNode = clearAtText(getCaretPositionNodeId(atContainer)); - if (newTextNode === null) { - return; - } - const isTrailer = getCaretPositionNodeId(atContainer) === trailerID; - addFieldToExpression(selectedDocId, selectedField, newTextNode, atIndex, isTrailer); - clearSearchMode(false); - markup!.focus(); - } - - /** - * Clear user input from the selected range offset within the TextNode at - * the specified node ID. The input will become a FieldNode so we don't - * need the text. Return the new UUID position indicator. - */ - function clearAtText(nodeId: string): IExpressionNode | null { - if (atIndex === -1) { - return null; - } - const startOffset = atIndex; - const endOffset = startOffset + searchFilter.length + 1; - let updatedTextNode = null; - - if (nodeId === trailerID) { - updatedTextNode = clearText(); - } else { - updatedTextNode = clearText(nodeId, startOffset, endOffset); - } - return updatedTextNode; - } - - /** - * Return the UUID string representing the caret position as defined - * by the user-specified starting container. If no container is - * specified then return the current caret position node ID value. - * - * @param startContainer - */ - function getCaretPositionNodeId(startContainer?: Node): string { - const selection = window.getSelection(); - if (!startContainer) { - if (!selection || selection.rangeCount === 0) { - return trailerID; - } - startContainer = selection!.getRangeAt(0).startContainer; - } - if (startContainer.nodeType === selection?.focusNode?.TEXT_NODE) { - return startContainer.parentElement!.getAttribute('id')!; - } else { - return (startContainer.firstChild! as HTMLElement)?.getAttribute('id')!; - } - } - - /** - * Clear elements associated with mapped-field searching. - */ - function clearSearchMode(clearAtSign: boolean): void { - if (clearAtSign) { - clearAtText(getCaretPositionNodeId(atContainer)); - } - atIndex = -1; - atContainer = undefined; - searchMode = false; - searchFilter = ''; - mappedFieldCandidates = []; - } - - function updateSearchMode(): void { - if (searchFilter.length === 0) { - mappedFieldCandidates = []; - searchMode = false; - } else { - searchFilter = searchFilter.substr(0, searchFilter.length - 1); - mappedFieldCandidates = fieldSearch(searchFilter, true); - } - } - - function clearEnumSelect() { - selectedNodeId = ''; - enumCandidates = []; - toggleEnumSelOff(); - } - - const initMappingExpression = useCallback(() => { - initializeMappingExpression(); - }, []); - - addFieldToExpression = mappingExpressionAddField; - clearText = mappingExpressionClearText; - fieldSearch = executeFieldSearch; - getEnums = getFieldEnums; - setSelEnumValue = setSelectedEnumValue; - - getMappingExpression = () => mappingExpression || ''; - mappingExprInit = mappingExpressionInit; - mappingExprObservable = mappingExpressionObservable; - trailerID = trailerId; - trailerHTML = ` `; - - const uninitializeMappingExpression = () => { - if (expressionUpdatedSubscription) { - expressionUpdatedSubscription.unsubscribe(); - } - }; - - useEffect(() => { - if (mappingExpression !== undefined) { - initMappingExpression(); - return () => uninitializeMappingExpression(); - } - return; - }, [mappingExpression, initMappingExpression]); - - return ( - <> -
- - - - - - {!disabled && mappingExpression !== undefined ? ( - -
(markup = el)} - tabIndex={-1} - style={{ paddingLeft: 8 }} - /> - - ) : ( - /* this to render a disabled field */ - )} - - - -
- {mappedFieldCandidates.length > 0 && ( - - - - )} - {showEnumSelect && ( - - - - )} -
- - ); -}; diff --git a/packages/ui/src/components/expression/ExpressionEnumSelect.css b/packages/ui/src/components/expression/ExpressionEnumSelect.css deleted file mode 100644 index ffbd223e8..000000000 --- a/packages/ui/src/components/expression/ExpressionEnumSelect.css +++ /dev/null @@ -1,14 +0,0 @@ -.document { - font-weight: bold; -} - -.field { - margin-left: 20; -} - -.enumSelectMenu { - margin: var(--pf-global--spacer--form-element) 0; - width: 40%; -} - - diff --git a/packages/ui/src/components/expression/ExpressionEnumSelect.tsx b/packages/ui/src/components/expression/ExpressionEnumSelect.tsx deleted file mode 100644 index 7d9aadd37..000000000 --- a/packages/ui/src/components/expression/ExpressionEnumSelect.tsx +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { EnumValue, useToggle } from '../../_bk_atlasmap/impl/utils'; -import { Select, SelectOption, SelectOptionObject } from '@patternfly/react-core'; - -import { FunctionComponent } from 'react'; -import './ExpressionEnumSelect.css'; - -export interface IExpressionEnumSelectProps { - selectedNodeId: string; - enumCandidates: EnumValue[]; - clearEnumSelect: () => void; - onEnumSelect: (selectedNodeId: string, selectedIndex: number) => void; -} -let selectValue = ''; - -export const ExpressionEnumSelect: FunctionComponent = ({ - selectedNodeId, - enumCandidates, - clearEnumSelect, - onEnumSelect, -}) => { - const id = `expr-enum-select-${selectValue}`; - const { state, toggle, toggleOff } = useToggle(true, onToggleEnumSelect); - - function onToggleEnumSelect(toggled: boolean): any { - if (!toggled) { - enumCandidates = []; - clearEnumSelect(); - } - } - - function selectionChanged( - event: any, - value: string | SelectOptionObject, - _isPlaceholder?: boolean | undefined, - ): void { - selectValue = value as string; - onEnumSelect(selectedNodeId, event.currentTarget.id.split('-').pop()); - onToggleEnumSelect(false); - toggleOff(); - } - - function createSelectOption(selectField: string, idx: number): any { - if (selectField[1].length === 0) { - return ( - - ); - } else { - return ; - } - } - - return ( -
- -
- ); -}; diff --git a/packages/ui/src/components/expression/ExpressionFieldSearch.css b/packages/ui/src/components/expression/ExpressionFieldSearch.css deleted file mode 100644 index caf027a41..000000000 --- a/packages/ui/src/components/expression/ExpressionFieldSearch.css +++ /dev/null @@ -1,14 +0,0 @@ -.document { - font-size: medium; - font-weight: bold; -} - -.field { - font-size: small; - margin-left: 20; -} - -.searchMenu { - margin: var(--pf-global--spacer--form-element) 0; - width: 50%; -} diff --git a/packages/ui/src/components/expression/ExpressionFieldSearch.tsx b/packages/ui/src/components/expression/ExpressionFieldSearch.tsx deleted file mode 100644 index 9ecd1c70d..000000000 --- a/packages/ui/src/components/expression/ExpressionFieldSearch.tsx +++ /dev/null @@ -1,158 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Select, SelectOption, SelectOptionObject } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; -import { useToggle } from '../../hooks/useToggle'; -import './ExpressionFieldSearch.css'; - -export interface IExpressionFieldSearchProps { - clearSearchMode: (clearAtSign: boolean) => void; - insertSelectedField: (docId: string, fieldStr: string) => void; - mappedFieldCandidates: string[][]; -} -let selectedField = ''; - -export const ExpressionFieldSearch: FunctionComponent = ({ - clearSearchMode, - insertSelectedField, - mappedFieldCandidates, -}) => { - function onToggleFieldSearch(toggled: boolean): any { - if (!toggled) { - mappedFieldCandidates = []; - clearSearchMode(true); - candidateSrcElement = null; - } - } - - const id = `expr-field-search-${selectedField}`; - let candidateSrcElement: any; - const { state, toggle, toggleOff } = useToggle(true, onToggleFieldSearch); - - /** - * Track a candidate selection from either a mouse hover or arrow - * key navigation. - * - * @param event - * @param index - */ - function trackSelection(event: any): void { - if (event.srcElement) { - // const docId = event.target.getAttribute('label'); - candidateSrcElement = event.srcElement; - } - } - - /** - * Update the candidate source element and reset the focus. - * - * @param sibling - */ - function updateCandidate(sibling: any): void { - if (candidateSrcElement && sibling) { - candidateSrcElement.style.backgroundColor = 'white'; - sibling.focus(); - candidateSrcElement = sibling; - candidateSrcElement.style.backgroundColor = 'lightblue'; - } - } - - function onKeyHandler(_index: number, _innerIndex: number, _position: string): void { - // TODO - } - - function onKeyDown(event: any): void { - if ('Enter' === event.key) { - event.preventDefault(); - if (candidateSrcElement) { - // insertSelectedField(candidateIndex); - } - } else if ('ArrowDown' === event.key) { - event.preventDefault(); - trackSelection(event); - if (candidateSrcElement) { - updateCandidate(candidateSrcElement.nextElementSibling); - } - } else if ('ArrowUp' === event.key) { - event.preventDefault(); - trackSelection(event); - if (candidateSrcElement) { - updateCandidate(candidateSrcElement.previousElementSibling); - } - } else if ('Tab' === event.key) { - if (!candidateSrcElement && event.srcElement) { - candidateSrcElement = event.srcElement.nextElementSibling.firstElementChild; - candidateSrcElement.style.backgroundColor = 'lightblue'; - } else if (candidateSrcElement && candidateSrcElement.nextElementSibling) { - event.preventDefault(); - updateCandidate(candidateSrcElement!.nextElementSibling); - } - } - } - - function selectionChanged(event: any, value: string | SelectOptionObject, isPlaceholder?: boolean | undefined): void { - if (!isPlaceholder) { - const docId = event.target.getAttribute('label'); - selectedField = value as string; - insertSelectedField(docId, selectedField); - } - onToggleFieldSearch(false); - toggleOff(); - } - - function createSelectOption(selectField: string[], idx: number): any { - // Use the display name for documents and field path for fields. - if (selectField[1][0] !== '/') { - return ( - - ); - } else { - return ( - - ); - } - } - - return ( -
- -
- ); -}; diff --git a/packages/ui/src/components/expression/index.ts b/packages/ui/src/components/expression/index.ts deleted file mode 100644 index 840ab477a..000000000 --- a/packages/ui/src/components/expression/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './ExpressionEditor'; -export * from './ExpressionEnumSelect'; -export * from './ExpressionFieldSearch'; diff --git a/packages/ui/src/components/fields/TraverseFields.tsx b/packages/ui/src/components/fields/TraverseFields.tsx deleted file mode 100644 index 606f59829..000000000 --- a/packages/ui/src/components/fields/TraverseFields.tsx +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - ITreeGroupAndNodeRefsAndDnDProps, - TreeGroupAndNodeRefsAndDnD, - ITreeItemFieldAndNodeRefsAndDnDProps, - TreeItemWithFieldAndNodeRefsAndDnD, -} from '.'; -import { FunctionComponent } from 'react'; - -import { NodeRef } from '../NodeRef'; -import { IAtlasmapGroup, IField } from '../../models'; - -function getChildrenIds(fields: IField[], idPrefix: string): (string | undefined)[] { - return fields.reduce<(string | undefined)[]>( - (ids, f) => [ - ...ids, - `${idPrefix}${f.id}`, - ...((f as IAtlasmapGroup).fields ? getChildrenIds((f as IAtlasmapGroup).fields, idPrefix) : []), - ], - [], - ); -} - -export interface ITraverseFieldsProps extends Omit, 'fieldId'> { - fields: IField[]; -} - -export const TraverseFields: FunctionComponent = ({ - fields, - idPrefix, - isVisible = true, - ...props -}) => { - return isVisible ? ( - <> - {fields.map((field, idx) => ( - - ))} - - ) : ( - -
 
-
- ); -}; - -export interface IFieldOrGroupProps - extends Omit, 'fieldId'>, - Omit, 'fieldId'>, 'children'> { - idPrefix: string; - field: IAtlasmapGroup | IField; - isVisible?: boolean; -} - -const FieldOrGroup: FunctionComponent = ({ field, idPrefix, level = 1, ...props }) => { - const fieldId = `${idPrefix}${field.id}`; - const maybeGroup = field as IAtlasmapGroup; - const maybeField = field as IField; - if (maybeGroup.fields) { - return ( - - {({ expanded }) => ( - - )} - - ); - } - return ; -}; diff --git a/packages/ui/src/components/fields/TreeGroupAndNodeRefsAndDnD.tsx b/packages/ui/src/components/fields/TreeGroupAndNodeRefsAndDnD.tsx deleted file mode 100644 index 5ad56fe1b..000000000 --- a/packages/ui/src/components/fields/TreeGroupAndNodeRefsAndDnD.tsx +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { AtlasmapDocumentType } from '../../_bk_atlasmap/Views'; -import { DelayedBoolean, DocumentGroup, ITreeGroupProps, TreeGroup } from '../../_bk_atlasmap/UI'; -import { NodeRef } from '../NodeRef'; -import { FieldDropTarget } from '../dnd'; -import { FunctionComponent } from 'react'; - -import { LayerGroupIcon } from '@patternfly/react-icons'; -import { IAtlasmapGroup } from '../../models'; - -export interface ITreeGroupAndNodeRefsAndDnDProps { - fieldId: string; - group: IAtlasmapGroup; - showTypes: boolean; - boundaryId?: string; - overrideWidth?: string; - parentId: string; - acceptDropType: AtlasmapDocumentType; - draggableType: AtlasmapDocumentType; - level?: number; - position?: number; - setSize?: number; - children: ITreeGroupProps['children']; -} - -export const TreeGroupAndNodeRefsAndDnD: FunctionComponent = ({ - fieldId, - group, - showTypes, - boundaryId, - overrideWidth, - parentId, - acceptDropType, - draggableType, - level = 1, - position = 1, - setSize = 1, - children, -}) => ( - false} - accept={[acceptDropType]} - > - {({ isOver }) => ( - - {(isOver) => ( - - ( - : undefined} - iconTooltip={group.isCollection ? 'This object is a collection' : undefined} - expanded={isOver || expanded} - /> - )} - > - {children} - - - )} - - )} - -); diff --git a/packages/ui/src/components/fields/TreeItemFieldAndNodeRefsAndDnD.tsx b/packages/ui/src/components/fields/TreeItemFieldAndNodeRefsAndDnD.tsx deleted file mode 100644 index 2edf2b204..000000000 --- a/packages/ui/src/components/fields/TreeItemFieldAndNodeRefsAndDnD.tsx +++ /dev/null @@ -1,188 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { AtIcon, BoltIcon, BullseyeIcon, CircleIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; -import { AtlasmapDocumentType } from '../../_bk_atlasmap/Views'; -import { Button, Tooltip } from '@patternfly/react-core'; -import { DocumentField, IDocumentFieldProps, TreeItem } from '../../_bk_atlasmap/UI'; -import { DraggableField, FieldDropTarget } from '../dnd'; -import { NodeRef } from '../NodeRef'; -import { IDragAndDropField } from '../../models/dnd'; -import { FunctionComponent, ReactNode } from 'react'; -import { IField } from '../../models'; - -export interface ITreeItemFieldAndNodeRefsAndDnDProps { - fieldId: string; - field: IField; - showTypes: boolean; - boundaryId?: string; - overrideWidth?: string; - parentId: string; - acceptDropType: AtlasmapDocumentType; - draggableType: AtlasmapDocumentType; - level?: number; - position?: number; - setSize?: number; - renderActions?: (field: IField) => IDocumentFieldProps['actions']; - renderPreview?: (field: IField) => ReactNode; - canDrop: (source: IField, target: IDragAndDropField) => boolean; - onDrop: (source: IField, target: IDragAndDropField | null) => void; -} - -export const TreeItemWithFieldAndNodeRefsAndDnD: FunctionComponent = ({ - fieldId, - field, - showTypes, - boundaryId, - overrideWidth, - parentId, - acceptDropType, - draggableType, - level = 1, - position = 1, - setSize = 1, - canDrop, - onDrop, - renderActions = () => [], - renderPreview, -}) => { - const preview = renderPreview && renderPreview(field); - return ( - canDrop(field, item)} - accept={[acceptDropType]} - > - {({ isDroppable, isTarget }) => ( - onDrop(field, target)} - > - {({ isDragging }) => ( - - - {({ focused }) => ( - <> - - - - ) : ( - - ) - } - type={field.enumeration ? 'ENUM' : field.type} - scope={field.scope} - showType={showTypes} - isDragging={isDragging} - isFocused={focused} - isSelected={!!preview} - isDisabled={field.isDisabled} - statusIcons={[ - field.isConnected ? ( - This field is connected
} - > - -
- ) : null, - field.isCollection ? ( - This field is a collection} - > - - - ) : null, - field.hasTransformations ? ( - This field has transformations} - > - - - ) : null, - field.isAttribute ? ( - This field is an attribute} - > - - - ) : null, - ]} - actions={renderActions(field)} - > - {preview} - - - )} - - - )} - - )} - - ); -}; diff --git a/packages/ui/src/components/fields/index.ts b/packages/ui/src/components/fields/index.ts deleted file mode 100644 index 18d838d73..000000000 --- a/packages/ui/src/components/fields/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './TraverseFields'; -export * from './TreeGroupAndNodeRefsAndDnD'; -export * from './TreeItemFieldAndNodeRefsAndDnD'; diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts index 73bb684a1..b0973ebbf 100644 --- a/packages/ui/src/components/index.ts +++ b/packages/ui/src/components/index.ts @@ -1,3 +1,2 @@ -export * from './DataMapper'; -export * from './documents/Document'; +export * from '../DataMapper'; export * from './Loading'; diff --git a/packages/ui/src/components/mapping/MappingField.css b/packages/ui/src/components/mapping/MappingField.css deleted file mode 100644 index 1ad4361c1..000000000 --- a/packages/ui/src/components/mapping/MappingField.css +++ /dev/null @@ -1,49 +0,0 @@ -.field { - padding: 1rem; - background: var(--pf-global--BackgroundColor--100); - font-size: small; -} - -.field + .field { - border-top: - var(--pf-global--BorderWidth--md) solid var(--pf-global--BorderColor--300); - font-size: small; -} - -.field:last-child { - border-bottom: - var(--pf-global--BorderWidth--sm) solid var(--pf-global--BorderColor--200); - font-size: small; -} - -.title { - display: flex; - align-items: center; - font-size: medium; -} - -.fieldIndex { - margin-right: 0.5rem; -} - -.fieldName { - flex: 2 0 calc(100% - 6rem); - font-size: small; - margin-right: 0.3rem; -} - -.link { - padding: 0; - margin-right: 5; -} - -.transformationsWrapper { - margin-left: 0.5rem; - margin-top: 0.5rem; - background: var(--pf-global--BackgroundColor--150); -} - -.transformations { - margin-left: 0.8rem; - margin-top: 0rem; -} diff --git a/packages/ui/src/components/mapping/MappingField.tsx b/packages/ui/src/components/mapping/MappingField.tsx deleted file mode 100644 index 7339e4cb1..000000000 --- a/packages/ui/src/components/mapping/MappingField.tsx +++ /dev/null @@ -1,200 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { BoltIcon, InfoAltIcon, TrashIcon } from '@patternfly/react-icons'; -import { - Button, - InputGroup, - InputGroupText, - Split, - SplitItem, - TextInput, - Title, - Tooltip, -} from '@patternfly/react-core'; -import { DraggableField, FieldDropTarget } from '../dnd'; -import { Children, FunctionComponent, PropsWithChildren } from 'react'; - -import { IAtlasmapField } from '../../models'; -import { NodeRef } from '../NodeRef'; -import { css } from '@patternfly/react-styles'; -import './MappingField.css'; - -export interface IMappingFieldProps extends PropsWithChildren { - field: IAtlasmapField; - name: string; - info: string; - index: number; - canShowIndex: boolean; - mappingExpressionEnabled: boolean; - hasTransformations: boolean; - onDelete: () => void; - onIndexChange?: (value: string | IAtlasmapField) => void; - onNewTransformation?: () => void; -} - -const formTransInputGroup = { - '--pf-c-form-control--FontSize': 'small', -} as React.CSSProperties; - -export const MappingField: FunctionComponent = ({ - field, - name, - info, - index, - canShowIndex, - mappingExpressionEnabled, - hasTransformations, - onDelete, - onIndexChange, - onNewTransformation, - children, -}) => { - const id = `mapping-field-${name}`; - return ( - { - return true; - }} - accept={['mapping']} - > - {({ isTarget }) => ( - { - if (!onIndexChange) { - return; - } - onIndexChange(target!.payload as IAtlasmapField); - }} - > - {({ isDragging }) => ( - -
- - - - {canShowIndex && ( - <Tooltip - position={'auto'} - enableFlip={true} - entryDelay={750} - exitDelay={100} - content={ - <div> - Edit the index for this element by selecting the arrows or by dragging and dropping the - element to the desired position. Placeholders may be automatically inserted to account for - any gaps in the indexing. - </div> - } - > - <InputGroup className={styles.fieldIndex}> - <InputGroupText>#</InputGroupText> - <TextInput - type={'number'} - value={index} - id={'index'} - onChange={onIndexChange} - data-testid={`change-${name}-input-index`} - isDisabled={!onIndexChange} - style={formTransInputGroup} - /> - </InputGroup> - </Tooltip> - )} - <Tooltip - position={'auto'} - enableFlip={true} - entryDelay={750} - exitDelay={100} - content={<div>{info}</div>} - > - <div className={styles.fieldName}> - {name} <InfoAltIcon /> - </div> - </Tooltip> - - - {!mappingExpressionEnabled && onNewTransformation && ( - - - - - - )} - - - - - - - {/* - Show established field action transformations associated with this - field. - */} - {!mappingExpressionEnabled && hasTransformations && children && Children.count(children) > 0 && ( -
- - Transformations - -
{children}
-
- )} -
-
- )} -
- )} -
- ); -}; diff --git a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx new file mode 100644 index 000000000..572ce7fd0 --- /dev/null +++ b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx @@ -0,0 +1,18 @@ +import { DropdownItem } from '@patternfly/react-core'; +import { FunctionComponent, useCallback } from 'react'; +import { ExportIcon } from '@patternfly/react-icons'; + +export const ExportMappingFileDropdownItem: FunctionComponent<{ + onComplete: () => void; +}> = ({ onComplete }) => { + const onClick = useCallback(() => { + alert('TODO'); + onComplete(); + }, [onComplete]); + + return ( + } onClick={onClick} data-testid="export-mappings-button"> + Export the current mappings (.xsl) + + ); +}; diff --git a/packages/ui/src/components/toolbarItems/MainMenuToolbarItem.tsx b/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx similarity index 60% rename from packages/ui/src/components/toolbarItems/MainMenuToolbarItem.tsx rename to packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx index edd0aa7ac..f793c5d5e 100644 --- a/packages/ui/src/components/toolbarItems/MainMenuToolbarItem.tsx +++ b/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx @@ -1,7 +1,7 @@ import { FunctionComponent } from 'react'; -import { useToggle } from '../../hooks/useToggle'; -import { Divider, Dropdown, DropdownList, MenuToggle, ToolbarItem } from '@patternfly/react-core'; -import { ExportMappingFileDropdownItem, ImportMappingFileDropdownItem, ResetDropdownItem } from './index'; +import { useToggle } from '../../hooks'; +import { Dropdown, DropdownList, MenuToggle, ToolbarItem } from '@patternfly/react-core'; +import { ExportMappingFileDropdownItem } from './ExportMappingFileDropdownItem'; export const MainMenuToolbarItem: FunctionComponent = () => { const { state: isOpen, toggle: onToggle, toggleOff } = useToggle(false); @@ -18,11 +18,7 @@ export const MainMenuToolbarItem: FunctionComponent = () => { isPlain={true} > - - - -
diff --git a/packages/ui/src/components/toolbar/index.ts b/packages/ui/src/components/toolbar/index.ts new file mode 100644 index 000000000..b39decaeb --- /dev/null +++ b/packages/ui/src/components/toolbar/index.ts @@ -0,0 +1,2 @@ +export * from './ExportMappingFileDropdownItem'; +export * from './MainMenuToolbarItem'; diff --git a/packages/ui/src/components/toolbarItems/AboutToolbarItem.tsx b/packages/ui/src/components/toolbarItems/AboutToolbarItem.tsx deleted file mode 100644 index 9ee0f796f..000000000 --- a/packages/ui/src/components/toolbarItems/AboutToolbarItem.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { FunctionComponent } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { HelpIcon } from '@patternfly/react-icons'; -import { AboutDialog } from '../dialogs/AboutDialog'; -import { useToggle } from '../../hooks'; - -export const AboutToolbarItem: FunctionComponent = () => { - const { state, toggleOn, toggleOff } = useToggle(false); - - return ( - - About AtlasMap}> - - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/AddMappingToolbarItem.tsx b/packages/ui/src/components/toolbarItems/AddMappingToolbarItem.tsx deleted file mode 100644 index 3e3865bc6..000000000 --- a/packages/ui/src/components/toolbarItems/AddMappingToolbarItem.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { PlusIcon } from '@patternfly/react-icons'; -import { DataMapperContext } from '../../providers'; -import { Mapping } from '../../models'; - -export const AddMappingToolbarItem: FunctionComponent = () => { - const { mappings, setSelectedMappingIndex, setMappings } = useContext(DataMapperContext)!; - const onClick = useCallback(() => { - const newMapping = new Mapping(); - mappings.push(newMapping); - setMappings(mappings); - setSelectedMappingIndex(mappings.indexOf(newMapping)); - }, [mappings, setMappings, setSelectedMappingIndex]); - - return ( - - Add a new mapping}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbarItems/ExportMappingFileDropdownItem.tsx deleted file mode 100644 index bfd3c3800..000000000 --- a/packages/ui/src/components/toolbarItems/ExportMappingFileDropdownItem.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { DropdownItem } from '@patternfly/react-core'; -import { FunctionComponent, useCallback } from 'react'; -import { ExportIcon } from '@patternfly/react-icons'; -import { ConfigModel } from '../../_bk_atlasmap/core'; -import { useToggle } from '../../hooks/useToggle'; -import { ExportMappingDialog } from '../dialogs/ExportMappingDialog'; - -export const ExportMappingFileDropdownItem: FunctionComponent<{ - onComplete: () => void; -}> = ({ onComplete }) => { - const { state, toggleOn, toggleOff } = useToggle(false); - - const onExportMappingFile = useCallback( - (fileName: string) => { - const cfg = ConfigModel.getConfig(); - cfg.fileService.exportADMArchive(fileName); - toggleOff(); - onComplete(); - }, - [onComplete, toggleOff], - ); - - const onClick = useCallback(() => { - toggleOn(); - }, [toggleOn]); - - return ( - } onClick={onClick} data-testid="export-mappings-button"> - Export the current mappings (.xsl) - ; - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbarItems/ImportMappingFileDropdownItem.tsx deleted file mode 100644 index 61cb90a74..000000000 --- a/packages/ui/src/components/toolbarItems/ImportMappingFileDropdownItem.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; -import { DropdownItem } from '@patternfly/react-core'; -import { ImportIcon } from '@patternfly/react-icons'; -import { useFilePicker } from 'react-sage'; -import { ConfigModel } from '../../_bk_atlasmap/core'; -import { useConfirmationDialog } from '../dialogs/useConfirmationDialog'; - -export const ImportMappingFileDropdownItem: FunctionComponent<{ onComplete: () => void }> = ({ onComplete }) => { - const { files, onClick, HiddenFileInput } = useFilePicker({ - maxFileSize: 1, - }); - const previouslyUploadedFiles = useRef(null); - - const [ImportMappingDialog, openImportMappingDialog] = useConfirmationDialog( - 'Import mapping file?', - 'Importing a new mapping file will discard all existing mappings. To save the current mappings, use the Export feature.', - ); - - const onImportMapping = useCallback( - (file: File) => - openImportMappingDialog(() => { - const cfg = ConfigModel.getConfig(); - cfg.initializationService.initializeWithADMArchiveFile(file); - }), - [openImportMappingDialog], - ); - - useEffect(() => { - if (previouslyUploadedFiles.current !== files) { - previouslyUploadedFiles.current = files; - if (files?.length === 1) { - previouslyUploadedFiles.current = null; - onImportMapping(files[0]); - onComplete(); - } - } - }, [files, onComplete, onImportMapping]); - - return ( - } onClick={onClick} data-testid="import-mappings-button"> - Import a mapping (.xsl) - - {ImportMappingDialog} - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ResetDropdownItem.tsx b/packages/ui/src/components/toolbarItems/ResetDropdownItem.tsx deleted file mode 100644 index b2ef0f561..000000000 --- a/packages/ui/src/components/toolbarItems/ResetDropdownItem.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { FunctionComponent, useCallback } from 'react'; -import { DropdownItem } from '@patternfly/react-core'; -import { TrashIcon } from '@patternfly/react-icons'; -import { useConfirmationDialog } from '../dialogs/useConfirmationDialog'; -import { ConfigModel } from '../../_bk_atlasmap/core'; - -export const ResetDropdownItem: FunctionComponent<{ - onComplete: () => void; -}> = ({ onComplete }) => { - const [resetDialog, openResetDialog] = useConfirmationDialog( - 'Reset All Mappings and Imports?', - 'Are you sure you want to reset all mappings and clear all imported documents?', - ); - - const onReset = useCallback(() => { - const cfg = ConfigModel.getConfig(); - cfg.initializationService.resetAtlasMap(); - onComplete(); - }, [onComplete]); - - const onClick = useCallback(() => { - openResetDialog(onReset); - }, [onReset, openResetDialog]); - - return ( - } onClick={onClick} data-testid="reset-all-button"> - Reset all mappings and clear all imported documents - {resetDialog} - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ToggleMappedFieldsToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleMappedFieldsToolbarItem.tsx deleted file mode 100644 index 52e0bdc9a..000000000 --- a/packages/ui/src/components/toolbarItems/ToggleMappedFieldsToolbarItem.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { MapMarkedIcon } from '@patternfly/react-icons'; -import { css } from '@patternfly/react-styles'; -import { DataMapperContext } from '../../providers'; -import './toolbarItems.css'; - -export const ToggleMappedFieldsToolbarItem: FunctionComponent = () => { - const { showMappedFields, toggleShowMappedFields } = useContext(DataMapperContext)!; - const onClick = useCallback(() => { - toggleShowMappedFields(); - }, [toggleShowMappedFields]); - - return ( - - Show/hide mapped fields}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ToggleMappingPreviewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleMappingPreviewToolbarItem.tsx deleted file mode 100644 index 658922f6e..000000000 --- a/packages/ui/src/components/toolbarItems/ToggleMappingPreviewToolbarItem.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { FunctionComponent, useCallback, useContext } from 'react'; -import { EyeIcon } from '@patternfly/react-icons'; -import { css } from '@patternfly/react-styles'; -import { DataMapperContext } from '../../providers'; -import './toolbarItems.css'; - -export const ToggleMappingPreviewToolbarItem: FunctionComponent = () => { - const { isPreviewEnabled, togglePreview } = useContext(DataMapperContext)!; - const onClick = useCallback(() => { - togglePreview(); - }, [togglePreview]); - - return ( - - Show preview}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ToggleMappingTableViewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleMappingTableViewToolbarItem.tsx deleted file mode 100644 index 1dceadb00..000000000 --- a/packages/ui/src/components/toolbarItems/ToggleMappingTableViewToolbarItem.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { TableIcon } from '@patternfly/react-icons'; -import { css } from '@patternfly/react-styles'; -import { DataMapperContext } from '../../providers'; -import './toolbarItems.css'; - -export const ToggleMappingTableViewToolbarItem: FunctionComponent = () => { - const { activeView, setActiveView } = useContext(DataMapperContext)!; - const toggled = activeView === 'MappingTable'; - const onClick = useCallback(() => { - setActiveView('SourceTarget'); - }, [setActiveView]); - - return ( - - Show mapping table}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ToggleNamespaceTableViewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleNamespaceTableViewToolbarItem.tsx deleted file mode 100644 index acf68f22d..000000000 --- a/packages/ui/src/components/toolbarItems/ToggleNamespaceTableViewToolbarItem.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { css } from '@patternfly/react-styles'; -import { CodeIcon } from '@patternfly/react-icons'; -import { DataMapperContext } from '../../providers'; -import './toolbarItems.css'; - -export const ToggleNamespaceTableViewToolbarItem: FunctionComponent = () => { - const { activeView, setActiveView } = useContext(DataMapperContext)!; - const toggled = activeView === 'NamespaceTable'; - const onClick = useCallback(() => { - setActiveView('SourceTarget'); - }, [setActiveView]); - - return ( - - Show namespace table}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ToggleSourceTargetViewToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleSourceTargetViewToolbarItem.tsx deleted file mode 100644 index 8edf0447d..000000000 --- a/packages/ui/src/components/toolbarItems/ToggleSourceTargetViewToolbarItem.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { ColumnsIcon } from '@patternfly/react-icons'; -import { css } from '@patternfly/react-styles'; -import { DataMapperContext } from '../../providers'; -import './toolbarItems.css'; - -export const ToggleSourceTargetViewToolbarItem: FunctionComponent = () => { - const { activeView, setActiveView } = useContext(DataMapperContext)!; - const toggled = activeView === 'SourceTarget'; - const onClick = useCallback(() => { - setActiveView('SourceTarget'); - }, [setActiveView]); - - return ( - - Show source target view}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ToggleTypesToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleTypesToolbarItem.tsx deleted file mode 100644 index a2206a4eb..000000000 --- a/packages/ui/src/components/toolbarItems/ToggleTypesToolbarItem.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { InfoIcon } from '@patternfly/react-icons'; -import { css } from '@patternfly/react-styles'; -import { DataMapperContext } from '../../providers'; -import './toolbarItems.css'; - -export const ToggleTypesToolbarItem: FunctionComponent = () => { - const { showTypes, toggleShowTypes } = useContext(DataMapperContext)!; - const onClick = useCallback(() => { - toggleShowTypes(); - }, [toggleShowTypes]); - - return ( - - Show/hide types}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/ToggleUnmappedFieldsToolbarItem.tsx b/packages/ui/src/components/toolbarItems/ToggleUnmappedFieldsToolbarItem.tsx deleted file mode 100644 index 9d208ee7e..000000000 --- a/packages/ui/src/components/toolbarItems/ToggleUnmappedFieldsToolbarItem.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { FunctionComponent, useCallback, useContext } from 'react'; -import { Button, ToolbarItem, Tooltip } from '@patternfly/react-core'; -import { MapIcon } from '@patternfly/react-icons'; -import { css } from '@patternfly/react-styles'; -import { DataMapperContext } from '../../providers'; -import './toolbarItems.css'; - -export const ToggleUnmappedFieldsToolbarItem: FunctionComponent = () => { - const { showUnmappedFields, toggleShowUnmappedFields } = useContext(DataMapperContext)!; - const onClick = useCallback(() => { - toggleShowUnmappedFields(); - }, [toggleShowUnmappedFields]); - - return ( - - Show/hide unmapped fields}> - - - - ); -}; diff --git a/packages/ui/src/components/toolbarItems/index.ts b/packages/ui/src/components/toolbarItems/index.ts deleted file mode 100644 index 031e1c88b..000000000 --- a/packages/ui/src/components/toolbarItems/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -export * from './AboutToolbarItem'; -export * from './AddMappingToolbarItem'; -export * from './ExportMappingFileDropdownItem'; -export * from './ImportMappingFileDropdownItem'; -export * from './MainMenuToolbarItem'; -export * from './ResetDropdownItem'; -export * from './ToggleSourceTargetViewToolbarItem'; -export * from './ToggleMappedFieldsToolbarItem'; -export * from './ToggleMappingPreviewToolbarItem'; -export * from './ToggleMappingTableViewToolbarItem'; -export * from './ToggleNamespaceTableViewToolbarItem'; -export * from './ToggleTypesToolbarItem'; -export * from './ToggleUnmappedFieldsToolbarItem'; diff --git a/packages/ui/src/components/toolbarItems/toolbarItems.css b/packages/ui/src/components/toolbarItems/toolbarItems.css deleted file mode 100644 index 67ab85c4f..000000000 --- a/packages/ui/src/components/toolbarItems/toolbarItems.css +++ /dev/null @@ -1,3 +0,0 @@ -.toggled { - color: var(--pf-global--primary-color--100) !important; -} diff --git a/packages/ui/src/hooks/index.ts b/packages/ui/src/hooks/index.ts index 143c7ed0f..d6f3ce2f4 100644 --- a/packages/ui/src/hooks/index.ts +++ b/packages/ui/src/hooks/index.ts @@ -1,3 +1,2 @@ -export * from './useDataMapperContext'; -export * from './useDimensions'; export * from './useToggle'; +export * from './useDataMapperContext'; diff --git a/packages/ui/src/hooks/useDimensions.ts b/packages/ui/src/hooks/useDimensions.ts deleted file mode 100644 index 51bdc35cf..000000000 --- a/packages/ui/src/hooks/useDimensions.ts +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { MutableRefObject, useCallback, useLayoutEffect, useRef, useState } from 'react'; - -const noSize = { - width: 0, - height: 0, - top: 0, - left: 0, - x: 0, - y: 0, - right: 0, - bottom: 0, -} as DOMRect; - -function areRectsDifferent(a: DOMRect, b: DOMRect) { - return ( - a.width !== b.width || - a.height !== b.height || - a.top !== b.top || - a.left !== b.left || - a.x !== b.x || - a.y !== b.y || - a.right !== b.right || - a.bottom !== b.bottom - ); -} - -export interface UseDimensionsArgs { - liveMeasure?: boolean; -} - -export function useDimensions({ liveMeasure = true }: UseDimensionsArgs = {}): [ - MutableRefObject, - DOMRect, - () => void, -] { - const previousDimensions = useRef(noSize); - const [dimensions, setDimensions] = useState(noSize); - const ref = useRef(null); - - const measure = useCallback(() => { - if (ref.current) { - const d = (ref.current as unknown as HTMLElement).getBoundingClientRect(); - if (areRectsDifferent(d as DOMRect, previousDimensions.current as DOMRect)) { - setDimensions(d); - previousDimensions.current = d; - } - } - }, [setDimensions]); - - useLayoutEffect(() => { - measure(); - - if (liveMeasure) { - window.addEventListener('resize', measure); - window.addEventListener('scroll', measure); - } - return () => { - if (liveMeasure) { - window.removeEventListener('resize', measure); - window.removeEventListener('scroll', measure); - } - }; - }, [liveMeasure, measure]); - - return [ref, dimensions, measure]; -} diff --git a/packages/ui/src/layout/ContextToolbar.tsx b/packages/ui/src/layout/ContextToolbar.tsx index 51ed36d72..db1e47a54 100644 --- a/packages/ui/src/layout/ContextToolbar.tsx +++ b/packages/ui/src/layout/ContextToolbar.tsx @@ -13,47 +13,19 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, useContext } from 'react'; +import { FunctionComponent } from 'react'; import { Toolbar, ToolbarContent, ToolbarGroup } from '@patternfly/react-core'; -import './Toolbar.css'; -import { - AboutToolbarItem, - AddMappingToolbarItem, - ToggleSourceTargetViewToolbarItem, - ToggleMappedFieldsToolbarItem, - ToggleMappingPreviewToolbarItem, - ToggleMappingTableViewToolbarItem, - ToggleNamespaceTableViewToolbarItem, - ToggleTypesToolbarItem, - ToggleUnmappedFieldsToolbarItem, - MainMenuToolbarItem, -} from '../components/toolbarItems'; -import { DataMapperContext } from '../providers'; +import { MainMenuToolbarItem } from '../components/toolbar'; export const ContextToolbar: FunctionComponent = () => { - const { activeView } = useContext(DataMapperContext)!; - return ( - - + + { } - - - - - - - {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } - {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } - {activeView === 'SourceTarget' && } - {activeView === 'SourceTarget' && } - {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } - {(activeView === 'SourceTarget' || activeView === 'MappingTable') && } - ); diff --git a/packages/ui/src/layout/ExpressionToolbar.tsx b/packages/ui/src/layout/ExpressionToolbar.tsx deleted file mode 100644 index 4c27481f3..000000000 --- a/packages/ui/src/layout/ExpressionToolbar.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, PropsWithChildren } from 'react'; -import { Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem } from '@patternfly/react-core'; -import './Toolbar.css'; -import { ExpressionEditor } from '../components/expression'; - -export const ExpressionToolbar: FunctionComponent = () => { - return ( - - - - - - - - - - ); -}; diff --git a/packages/ui/src/layout/MainLayout.css b/packages/ui/src/layout/MainLayout.css deleted file mode 100644 index 611206495..000000000 --- a/packages/ui/src/layout/MainLayout.css +++ /dev/null @@ -1,9 +0,0 @@ -.view { - background: #fff; -} -.view .pf-topology-container { - overflow: hidden; -} -.view .pf-topology-content { - overflow: auto; -} diff --git a/packages/ui/src/layout/MainLayout.stories.tsx b/packages/ui/src/layout/MainLayout.stories.tsx deleted file mode 100644 index 03a51e275..000000000 --- a/packages/ui/src/layout/MainLayout.stories.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { MainLayout } from './MainLayout'; -import { boolean } from '@storybook/addon-knobs'; - -const obj = { - title: 'AtlasMap|Layout/MainLayout', -}; -export default obj; - -export const example = () => ( - context toolbar} - expressionToolbar={
view toolbar
} - controlBar={
canvas bar
} - showSidebar={boolean('showSidebar', true)} - renderSidebar={() =>
a sidebar
} - > -
- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Molestias tenetur veritatis dolore perferendis dicta - excepturi illum necessitatibus eos accusantium ipsum. Aliquid a doloribus libero nemo et veniam quaerat nesciunt - repudiandae! -
-
-); diff --git a/packages/ui/src/layout/MainLayout.tsx b/packages/ui/src/layout/MainLayout.tsx index 2bd9e5033..c60fa590c 100644 --- a/packages/ui/src/layout/MainLayout.tsx +++ b/packages/ui/src/layout/MainLayout.tsx @@ -13,87 +13,70 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, ReactElement, ReactNode, memo, useMemo, useContext } from 'react'; -import { Stack, StackItem } from '@patternfly/react-core'; -import { Sidebar } from '../_bk_atlasmap/Layout/Sidebar'; -import './MainLayout.css'; -import { ContextToolbar, ExpressionToolbar } from '.'; -import { MappingTableView, NamespaceTableView } from '../_bk_atlasmap/Views'; -import { SourceTargetView } from './views'; +import { FunctionComponent, memo, useContext, useMemo, useState } from 'react'; +import { + Drawer, + DrawerActions, + DrawerCloseButton, + DrawerContent, + DrawerContentBody, + DrawerHead, + DrawerPanelContent, + Masthead, + MastheadContent, + Page, + PageSection, + PageSectionVariants, +} from '@patternfly/react-core'; +import { MappingDetailsView, SourceTargetView } from './views'; import { DataMapperContext } from '../providers'; +import { CanvasView } from '../models'; +import { ContextToolbar } from './ContextToolbar'; export interface IMainLayoutProps { showSidebar: boolean; - controlBar?: ReactNode; - renderSidebar: () => ReactElement; } -export const MainLayout: FunctionComponent = memo(function MainLayout({ - showSidebar, - renderSidebar, - controlBar, -}) { - const sideBar = {renderSidebar}; - const containerClasses = - 'pf-topology-container' + - `${sideBar ? ' pf-topology-container__with-sidebar' : ''}` + - `${showSidebar ? ' pf-topology-container__with-sidebar--open' : ''}`; +export const MainLayout: FunctionComponent = memo(function MainLayout() { + const [isDrawerExpanded, setDrawerExpanded] = useState(false); + const { activeView } = useContext(DataMapperContext)!; const currentView = useMemo(() => { switch (activeView) { - case 'SourceTarget': + case CanvasView.SOURCE_TARGET: return ; - case 'MappingTable': - return ( - - ); - case 'NamespaceTable': - return ( - - handlers.onEditNamespace(docName, { - alias, - uri, - locationUri, - targetNamespace, - }) - } - onDeleteNamespace={handlers.deleteNamespace} - /> - ); default: return <>View {activeView} is not supported; } }, [activeView]); - return ( - - + const header = ( + + - - - - - -
- {currentView} - {controlBar && {controlBar}} -
- {sideBar} -
-
+ + + ); + + const drawerPanelContent = ( + + Mapping Details + + setDrawerExpanded(false)} /> + + + + ); + + return ( + + + + + {currentView} + + + + ); }); diff --git a/packages/ui/src/layout/MappingDetailsSidebar.css b/packages/ui/src/layout/MappingDetailsSidebar.css deleted file mode 100644 index c783a6a16..000000000 --- a/packages/ui/src/layout/MappingDetailsSidebar.css +++ /dev/null @@ -1,6 +0,0 @@ -.content { - box-sizing: "border-box"; - height: "100%"; - width: "100%"; - overflow: "auto"; -} diff --git a/packages/ui/src/layout/MappingDetailsSidebar.tsx b/packages/ui/src/layout/MappingDetailsSidebar.tsx deleted file mode 100644 index de48a2892..000000000 --- a/packages/ui/src/layout/MappingDetailsSidebar.tsx +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Button, Stack, StackItem, Tooltip } from '@patternfly/react-core'; -import { CloseIcon, EditIcon, TrashIcon } from '@patternfly/react-icons'; -import { FunctionComponent, PropsWithChildren } from 'react'; - -import { ColumnHeader } from '../components/ColumnHeader'; -import './MappingDetailsSidebar.css'; - -export interface IMappingDetailsSidebarProps extends PropsWithChildren { - onDelete: () => void; - onClose: () => void; - /* eslint-disable @typescript-eslint/no-explicit-any */ - onEditEnum: (cb: any) => void; - isEnumMapping: () => boolean; -} - -export const MappingDetailsSidebar: FunctionComponent = ({ - onDelete, - onClose, - onEditEnum, - isEnumMapping, - children, -}) => { - return ( - - - - - , - Edit the enumeration mappings} - entryDelay={750} - exitDelay={100} - > - - , - Remove the current mapping} - entryDelay={750} - exitDelay={100} - > - - , - ]} - /> - - - {children} - - - ); -}; diff --git a/packages/ui/src/layout/Toolbar.css b/packages/ui/src/layout/Toolbar.css deleted file mode 100644 index c103ac642..000000000 --- a/packages/ui/src/layout/Toolbar.css +++ /dev/null @@ -1,15 +0,0 @@ -.toolbar { - --pf-c-toolbar--PaddingTop: 0px !important; - --pf-c-toolbar--PaddingBottom: 0px !important; - --pf-c-toolbar--RowGap: 0px !important; - border-bottom: 1px solid #ccc; -} - -.toolbarContent { - --pf-c-toolbar__content--PaddingLeft: 0px !important; - --pf-c-toolbar__content--PaddingRight: 0px !important; -} - -.expressionToolbarItem { - flex: 1 -} \ No newline at end of file diff --git a/packages/ui/src/layout/index.ts b/packages/ui/src/layout/index.ts index 107c59cb0..1abe55193 100644 --- a/packages/ui/src/layout/index.ts +++ b/packages/ui/src/layout/index.ts @@ -1,3 +1 @@ export * from './MainLayout'; -export * from './ContextToolbar'; -export * from './ExpressionToolbar'; diff --git a/packages/ui/src/layout/views/MappingDetailsView.tsx b/packages/ui/src/layout/views/MappingDetailsView.tsx index e1b6cf012..bb9452d89 100644 --- a/packages/ui/src/layout/views/MappingDetailsView.tsx +++ b/packages/ui/src/layout/views/MappingDetailsView.tsx @@ -1,297 +1,5 @@ -/* - Copyright (C) 2017 Red Hat, Inc. +import { FunctionComponent } from 'react'; - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - AddFieldTypeahead, - ITransformationArgument, - MappingField, - MappingFields, - MappingTransformation, -} from '../../_bk_atlasmap/UI'; -import { Document } from '../../components/documents/Document'; -import { Alert, AlertActionCloseButton, Badge } from '@patternfly/react-core'; -import React, { FunctionComponent } from 'react'; - -import { Field } from '../../_bk_atlasmap/core/models/field.model'; -import { MappingDetailsSidebar } from '../../_bk_atlasmap/Layout'; -import { IMappedField, IField, INotification } from '../../models'; - -export interface IMappingDetailsViewProps { - notifications: INotification[]; - sources: Array; - targets: Array; - addableSources: IField[]; - addableTargets: IField[]; - showSourcesIndex: boolean; - showTargetsIndex: boolean; - multiplicity?: { - name: string; - transformationsOptions: { name: string; value: string }[]; - transformationsArguments?: ITransformationArgument[]; - onChange: (newName: string) => void; - onArgumentChange: (argumentName: string, argumentValue: string) => void; - }; - onClose: () => void; - mappingExpressionEnabled: boolean; - onRemoveMapping: () => void; - onRemoveMappedField: (isSource: boolean, index: number) => void; - onIndexChange: (isSource: boolean, currentIndex: number, newIndex: number | Field) => void; - onNewTransformation: (isSource: boolean, index: number) => void; - onTransformationChange: ( - isSource: boolean, - index: number, - currentTransformationIndex: number, - newTransformationName: string, - ) => void; - onTransformationArgumentChange: ( - isSource: boolean, - index: number, - transformationIndex: number, - argumentName: string, - argumentValue: string, - ) => void; - onRemoveTransformation: (isSource: boolean, index: number, currentTransformationIndex: number) => void; - onAddFieldToMapping: (isSource: boolean, field: IField) => void; - onNotificationRead: (id: string) => void; - onEditEnum: (cb: any) => void; - isEnumMapping: () => boolean; - onCreateConstant: (constants: any | null, addToActiveMapping?: boolean) => void; - onCreateProperty: (isSource: boolean, props: any | null, addToActiveMapping?: boolean) => void; - canAddToSelectedMapping: (isSource: boolean) => boolean; -} - -export const MappingDetailsView: FunctionComponent = ({ - notifications, - sources, - targets, - addableSources, - addableTargets, - showSourcesIndex, - showTargetsIndex, - onClose, - mappingExpressionEnabled, - onRemoveMapping, - onRemoveMappedField, - onIndexChange, - onNewTransformation, - onTransformationChange, - onTransformationArgumentChange, - onRemoveTransformation, - onAddFieldToMapping, - onNotificationRead, - onEditEnum, - isEnumMapping, - onCreateConstant, - onCreateProperty, - canAddToSelectedMapping, - multiplicity, -}) => { - const formInputGroupStyle = { - '--pf-c-form--GridGap': '0', - marginTop: '1.0rem', - } as React.CSSProperties; - - const mappingAction = multiplicity && ( - - ); - - const genericPaddingField: IField = { - id: '', - name: 'Padding field', - value: '', - type: '', - scope: 'current', - path: '', - mappings: [], - hasTransformations: false, - isAttribute: false, - isCollection: false, - isConnected: false, - isInCollection: false, - isDisabled: false, - amField: {} as IField['amField'], - enumeration: false, - }; - - const renderMappingField = (isSource: boolean, canShowIndex: boolean, f: IMappedField | null, index: number) => { - return f ? ( - (${f.type})` : `${f.path} (${f.type})`} - mappingExpressionEnabled={mappingExpressionEnabled} - hasTransformations={f.transformations.length > 0} - onDelete={() => onRemoveMappedField(isSource, index)} - onIndexChange={(value: string | IField) => - typeof value === 'string' - ? onIndexChange(isSource, index, parseInt(value, 10)) - : onIndexChange(isSource, index, value.amField) - } - onNewTransformation={() => onNewTransformation(isSource, index)} - index={index + 1} - canShowIndex={canShowIndex} - > -
- {f.transformations.map((t, transformationIndex) => ( - onTransformationChange(isSource, index, transformationIndex, value)} - onTransformationArgumentChange={(name, value) => - onTransformationArgumentChange(isSource, index, transformationIndex, name, value) - } - onRemoveTransformation={() => { - onRemoveTransformation(isSource, index, transformationIndex); - }} - /> - ))} -
-
- ) : ( - onRemoveMappedField(isSource, index)} - index={index + 1} - canShowIndex={showSourcesIndex} - /> - ); - }; - - const renderSourceMappingField = (f: IMappedField | null, index: number) => - renderMappingField(true, showSourcesIndex, f, index); - const renderTargetMappingField = (f: IMappedField | null, index: number) => - renderMappingField(false, showTargetsIndex, f, index); - - const errors = notifications.filter((n) => n.variant === 'danger'); - const warnings = notifications.filter((n) => n.variant === 'warning'); - const messages = notifications.filter((n) => n.variant !== 'warning' && n.variant !== 'danger'); - - return ( - - {errors.length > 0 && ( - - )} - {warnings.length > 0 && ( - - )} - {messages.length > 0 && ( - - )} -
- {mappingAction} - - {sources.map(renderSourceMappingField)} - {targets.length <= 1 && ( - ({ - label: s.amField.isPropertyOrConstant() ? s.name : s.path, - group: s.amField!.docDef.name, - onAdd: () => onAddFieldToMapping(true, s), - }))} - data-testid={'add-source-to-mapping'} - /> - )} - - - {targets.map(renderTargetMappingField)} - {sources.length <= 1 && ( - ({ - label: t.amField.isProperty() ? t.name : t.path, - group: t.amField!.docDef.name, - onAdd: () => onAddFieldToMapping(false, t), - }))} - data-testid={'add-target-to-mapping'} - /> - )} - -
-
- ); -}; - -interface INotificationsGroupProps { - title: string; - notifications: INotification[]; - onNotificationRead: (id: string) => void; -} - -const NotificationsGroup: FunctionComponent = ({ - title, - notifications, - onNotificationRead, -}) => { - return ( - {notifications.length}]}> -
- {notifications.map((n, idx) => ( - onNotificationRead(n.id)} - data-testid={`dismiss-mapping-notification-${n.id}`} - /> - } - /> - ))} -
-
- ); +export const MappingDetailsView: FunctionComponent = () => { + return 'TODO'; }; diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx new file mode 100644 index 000000000..96f3c38c8 --- /dev/null +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -0,0 +1,72 @@ +import { + ActionList, + ActionListItem, + Card, + CardBody, + CardHeader, + CardTitle, + Split, + SplitItem, + Stack, + StackItem, +} from '@patternfly/react-core'; +import { FunctionComponent } from 'react'; +import { useDataMapperContext } from '../../hooks'; +import { Document } from '../../components/document'; +import { ImportDocumentButton } from '../../components/document'; + +export const SourceTargetView: FunctionComponent = () => { + const { sourceDocuments, targetDocuments } = useDataMapperContext(); + const sourceDocumentsActions = ( + + + + + + ); + const targetDocumentActions = ( + + + + + + ); + + return ( + + + + + Source + + + + {sourceDocuments.map((doc) => ( + + + + ))} + + + + + draw lines here + + + + Target + + + + {targetDocuments.map((doc) => ( + + + + ))} + + + + + + ); +}; diff --git a/packages/ui/src/layout/views/index.ts b/packages/ui/src/layout/views/index.ts index bf3c357dc..a2e6c1349 100644 --- a/packages/ui/src/layout/views/index.ts +++ b/packages/ui/src/layout/views/index.ts @@ -1 +1,2 @@ -export * from './sourceTarget/SourceTargetView'; +export * from './MappingDetailsView'; +export * from './SourceTargetView'; diff --git a/packages/ui/src/layout/views/sourceTarget/Column.css b/packages/ui/src/layout/views/sourceTarget/Column.css deleted file mode 100644 index 10083fe85..000000000 --- a/packages/ui/src/layout/views/sourceTarget/Column.css +++ /dev/null @@ -1,9 +0,0 @@ -.column { - flex-flow: column nowrap; - display: flex; - min-width: 400px; - padding: 1rem; -} -.hidden { - opacity: 0, -} diff --git a/packages/ui/src/layout/views/sourceTarget/Column.tsx b/packages/ui/src/layout/views/sourceTarget/Column.tsx deleted file mode 100644 index 3ebf0bb3b..000000000 --- a/packages/ui/src/layout/views/sourceTarget/Column.tsx +++ /dev/null @@ -1,32 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, PropsWithChildren, useMemo } from 'react'; -import { css } from '@patternfly/react-styles'; -import './Column.css'; - -export interface IColumnProps extends PropsWithChildren { - totalColumns?: number; - visible?: boolean; -} - -export const Column: FunctionComponent = ({ totalColumns = 1, visible = true, children, ...props }) => { - const style = useMemo(() => ({ flex: `0 0 ${100 / totalColumns}%` }), [totalColumns]); - return ( -
- {children} -
- ); -}; diff --git a/packages/ui/src/layout/views/sourceTarget/ColumnBody.css b/packages/ui/src/layout/views/sourceTarget/ColumnBody.css deleted file mode 100644 index 9a8a5df09..000000000 --- a/packages/ui/src/layout/views/sourceTarget/ColumnBody.css +++ /dev/null @@ -1,23 +0,0 @@ -.body { - background: var(--pf-global--BackgroundColor--150); - border: 1px solid var(--pf-global--BorderColor--100); - flex: 1; - overflow-x: visible; - overflow-y: scroll; - padding: 0 var(--pf-global--spacer--md); -} - -.body::-webkit-scrollbar { - width: 10px; - background-color: transparent; -} - -.body::-webkit-scrollbar-track { - background-color: transparent; -} - -.body::-webkit-scrollbar-thumb { - border-radius: 10px; - box-shadow: inset 0 0 6px rgba(0,0,0,.1); - background-color: rgba(200, 200, 200, 0.8); -} diff --git a/packages/ui/src/layout/views/sourceTarget/ColumnBody.tsx b/packages/ui/src/layout/views/sourceTarget/ColumnBody.tsx deleted file mode 100644 index 030a5de61..000000000 --- a/packages/ui/src/layout/views/sourceTarget/ColumnBody.tsx +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { PropsWithChildren, forwardRef } from 'react'; -import './ColumnBody.css'; - -export const ColumnBody = forwardRef>>(function ColumnBody( - { children }, - ref, -) { - return ( -
- {children} -
- ); -}); diff --git a/packages/ui/src/layout/views/sourceTarget/ColumnMapper.css b/packages/ui/src/layout/views/sourceTarget/ColumnMapper.css deleted file mode 100644 index 7cc656947..000000000 --- a/packages/ui/src/layout/views/sourceTarget/ColumnMapper.css +++ /dev/null @@ -1,3 +0,0 @@ -.canvas { - background-color: var(--pf-global--BackgroundColor--light-300); -} diff --git a/packages/ui/src/layout/views/sourceTarget/ColumnMapper.tsx b/packages/ui/src/layout/views/sourceTarget/ColumnMapper.tsx deleted file mode 100644 index 13a91c2ab..000000000 --- a/packages/ui/src/layout/views/sourceTarget/ColumnMapper.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Canvas, ICanvasProps } from '../../../_bk_atlasmap/UI/Canvas'; -import { FunctionComponent } from 'react'; -import { css } from '@patternfly/react-styles'; -import './ColumnMapper.css'; - -export interface IColumnMapperProps extends ICanvasProps {} - -export const ColumnMapper: FunctionComponent = ({ className, children, ...props }) => { - return ( - - {children} - - ); -}; diff --git a/packages/ui/src/layout/views/sourceTarget/Columns.css b/packages/ui/src/layout/views/sourceTarget/Columns.css deleted file mode 100644 index 8f2095b48..000000000 --- a/packages/ui/src/layout/views/sourceTarget/Columns.css +++ /dev/null @@ -1,7 +0,0 @@ -.wrapper { - width: 100%; - height: 100%; - display: flex; - flex-flow: row nowrap; - overflow: auto; -} diff --git a/packages/ui/src/layout/views/sourceTarget/Columns.tsx b/packages/ui/src/layout/views/sourceTarget/Columns.tsx deleted file mode 100644 index 85dd71ccb..000000000 --- a/packages/ui/src/layout/views/sourceTarget/Columns.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { HTMLObject, useCanvas } from '../../../_bk_atlasmap/UI/Canvas'; -import { FunctionComponent, PropsWithChildren } from 'react'; -import './Columns.css'; - -export const Columns: FunctionComponent = ({ children }) => { - const { - dimensions: { width, height }, - } = useCanvas(); - return ( - -
{children}
-
- ); -}; diff --git a/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.css b/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.css deleted file mode 100644 index ca9d24f7b..000000000 --- a/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.css +++ /dev/null @@ -1,7 +0,0 @@ -.arc { - cursor: pointer; -} - -.group { - pointer-events: all; -} diff --git a/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.tsx b/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.tsx deleted file mode 100644 index 219492814..000000000 --- a/packages/ui/src/layout/views/sourceTarget/SourceTargetLinks.tsx +++ /dev/null @@ -1,90 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, MouseEvent, ReactElement, useContext, useMemo } from 'react'; -import { SOURCES_FIELD_ID_PREFIX, TARGETS_FIELD_ID_PREFIX } from '../../../layout/views/sourceTarget/constants'; - -import { NodesArc } from '../../../_bk_atlasmap/UI'; -import './SourceTargetLinks.css'; -import { useToggle } from '../../../hooks'; -import { IMapping } from '../../../models'; -import { DataMapperContext } from '../../../providers'; - -export const SourceTargetLinks: FunctionComponent = () => { - const { mappings, selectedMapping, setSelectedMapping } = useContext(DataMapperContext)!; - const selectedMappingId = selectedMapping?.id; - const sortedMappings = useMemo( - () => mappings.sort((a) => (a.id === selectedMappingId ? 1 : -1)), - [mappings, selectedMappingId], - ); - - return ( - - {sortedMappings.map((m) => ( - setSelectedMapping(m)} - isSelected={m.id === selectedMappingId} - key={m.id} - /> - ))} - - - - ); -}; - -interface IMappingLinesProps { - mapping: IMapping; - isSelected: boolean; - onClick: () => void; -} - -const MappingLines: FunctionComponent = ({ mapping, isSelected, onClick }) => { - const { state: isHovered, toggleOn: toggleHoveredOn, toggleOff: toggleHoveredOff } = useToggle(false); - - const handleClick = (event: MouseEvent) => { - onClick(); - event.stopPropagation(); - }; - - const color = isSelected ? 'var(--pf-global--active-color--100)' : undefined; - const hoverColor = !isSelected ? 'var(--pf-global--active-color--400)' : undefined; - const mappingLines = mapping.sourceFields.reduce((lines, start) => { - const linesFromSource = mapping.targetFields.map((end) => ( - - )); - return [...lines, ...linesFromSource]; - }, []); - return {mappingLines}; -}; diff --git a/packages/ui/src/layout/views/sourceTarget/SourceTargetView.css b/packages/ui/src/layout/views/sourceTarget/SourceTargetView.css deleted file mode 100644 index 7cc656947..000000000 --- a/packages/ui/src/layout/views/sourceTarget/SourceTargetView.css +++ /dev/null @@ -1,3 +0,0 @@ -.canvas { - background-color: var(--pf-global--BackgroundColor--light-300); -} diff --git a/packages/ui/src/layout/views/sourceTarget/SourceTargetView.tsx b/packages/ui/src/layout/views/sourceTarget/SourceTargetView.tsx deleted file mode 100644 index 77ee421a2..000000000 --- a/packages/ui/src/layout/views/sourceTarget/SourceTargetView.tsx +++ /dev/null @@ -1,33 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { Columns, SourceTargetLinks, SourcesColumn, TargetsColumn } from './index'; -import { FunctionComponent } from 'react'; -import { NodeRefProvider } from '../../../providers/NodeRefProvider'; -import { ColumnMapper } from './ColumnMapper'; - -export const SourceTargetView: FunctionComponent = () => { - return ( - - - - - - - - - - ); -}; diff --git a/packages/ui/src/layout/views/sourceTarget/SourcesColumn.action.ts b/packages/ui/src/layout/views/sourceTarget/SourcesColumn.action.ts deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx b/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx deleted file mode 100644 index ff09a26d0..000000000 --- a/packages/ui/src/layout/views/sourceTarget/SourcesColumn.tsx +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ImportDocumentButton } from './ImportDocumentButton'; -import { Column, ColumnBody } from '.'; -import { NodeRef } from '../../../components/NodeRef'; -import { SearchableColumnHeader } from '../../../components/SearchableColumnHeader'; -import { FunctionComponent, useCallback } from 'react'; -import { - SOURCES_CONSTANTS_ID, - SOURCES_DOCUMENT_ID_PREFIX, - SOURCES_HEIGHT_BOUNDARY_ID, - SOURCES_PROPERTIES_ID, - SOURCES_WIDTH_BOUNDARY_ID, -} from './constants'; - -import { ConstantsDocument, SourceDocument, SourcePropertiesDocument } from '../../../components/documents'; -import { useDataMapperContext } from '../../../hooks'; - -export const SourcesColumn: FunctionComponent = () => { - const { sourceDocuments } = useDataMapperContext(); - const onSearch = useCallback(() => { - alert('not yet implemented'); - }, []); - console.log('rerender sources'); - return ( - - ]} - /> - - - -
- - - - - - - {sourceDocuments.map((s) => { - const documentId = `${SOURCES_DOCUMENT_ID_PREFIX}${s.id}`; - return ( - - - - ); - })} -
-
-
-
-
- ); -}; diff --git a/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx b/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx deleted file mode 100644 index e5cef57f5..000000000 --- a/packages/ui/src/layout/views/sourceTarget/TargetsColumn.tsx +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { ImportDocumentButton } from './ImportDocumentButton'; -import { NodeRef } from '../../../components/NodeRef'; -import { SearchableColumnHeader } from '../../../components/SearchableColumnHeader'; -import { FunctionComponent, useCallback } from 'react'; -import { - TARGETS_DOCUMENT_ID_PREFIX, - TARGETS_HEIGHT_BOUNDARY_ID, - TARGETS_PROPERTIES_ID, - TARGETS_WIDTH_BOUNDARY_ID, -} from './constants'; - -import { TargetDocument, TargetPropertiesDocument } from '../../../components/documents'; -import { Column, ColumnBody } from '.'; -import { useDataMapperContext } from '../../../hooks'; - -export const TargetsColumn: FunctionComponent = () => { - const { targetDocuments } = useDataMapperContext(); - const onSearch = useCallback(() => { - alert('not yet implemented'); - }, []); - - return ( - - ]} - /> - - - -
- - - - {targetDocuments.map((t) => { - const documentId = `${TARGETS_DOCUMENT_ID_PREFIX}${t.id}`; - return ( - - - - ); - })} -
-
-
-
-
- ); -}; diff --git a/packages/ui/src/layout/views/sourceTarget/constants.ts b/packages/ui/src/layout/views/sourceTarget/constants.ts deleted file mode 100644 index 3360c2475..000000000 --- a/packages/ui/src/layout/views/sourceTarget/constants.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -export const SOURCES_DRAGGABLE_TYPE = 'source'; -export const SOURCES_HEIGHT_BOUNDARY_ID = 'sources-height'; -export const SOURCES_WIDTH_BOUNDARY_ID = 'sources-width'; -export const SOURCES_PROPERTIES_ID = 'sources-properties'; -export const SOURCES_CONSTANTS_ID = 'sources-constants'; -export const SOURCES_DOCUMENT_ID_PREFIX = 'sources-document-'; -export const SOURCES_FIELD_ID_PREFIX = 'sources-field-'; - -export const MAPPINGS_DROP_TYPE = 'mapping'; -export const MAPPINGS_HEIGHT_BOUNDARY_ID = 'mappings-height'; -export const MAPPINGS_WIDTH_BOUNDARY_ID = 'mappings-width'; -export const MAPPINGS_DOCUMENT_ID_PREFIX = 'mappings-document-'; -export const MAPPINGS_FIELD_ID_PREFIX = 'mappings-field-'; - -export const TARGETS_DRAGGABLE_TYPE = 'target'; -export const TARGETS_HEIGHT_BOUNDARY_ID = 'targets-height'; -export const TARGETS_PROPERTIES_ID = 'targets-properties'; -export const TARGETS_WIDTH_BOUNDARY_ID = 'targets-width'; -export const TARGETS_DOCUMENT_ID_PREFIX = 'targets-document-'; -export const TARGETS_FIELD_ID_PREFIX = 'targets-field-'; diff --git a/packages/ui/src/layout/views/sourceTarget/index.ts b/packages/ui/src/layout/views/sourceTarget/index.ts deleted file mode 100644 index 7edd7b5ca..000000000 --- a/packages/ui/src/layout/views/sourceTarget/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './Column'; -export * from './ColumnBody'; -export * from './Columns'; -export * from './SourceTargetLinks'; -export * from './SourcesColumn'; -export * from './TargetsColumn'; diff --git a/packages/ui/src/main.tsx b/packages/ui/src/main.tsx index 2561f5578..beb689578 100644 --- a/packages/ui/src/main.tsx +++ b/packages/ui/src/main.tsx @@ -1,15 +1,12 @@ import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first import { DataMapper } from './components'; -import { DataMapperProvider } from './providers'; import { createRoot } from 'react-dom/client'; -import { Page } from '@patternfly/react-core'; +import { DataMapperProvider } from './providers'; const container = document.getElementById('root'); const root = createRoot(container!); root.render( - - - + , ); diff --git a/packages/ui/src/models/api.ts b/packages/ui/src/models/api.ts deleted file mode 100644 index 8b8d79a19..000000000 --- a/packages/ui/src/models/api.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { AlertProps } from '@patternfly/react-core'; -import { ITransformationArgument, ITransformationSelectOption } from '../_bk_atlasmap/UI'; -import { Field, MappingModel } from '../_bk_atlasmap/core'; - -export type CanvasView = 'SourceTarget' | 'MappingTable' | 'NamespaceTable'; - -export interface INotification { - id: string; - variant: AlertProps['variant']; - title: string; - description: string; - isRead?: boolean; - mappingId?: string; -} - -export interface IDocument { - id: string; - name: string; - type: string; - fields: IField[]; - namespaces?: INamespace[]; -} - -export interface INamespace { - alias: string; - uri: string; - locationUri: string; - isTarget: boolean; -} - -export interface IMappedField extends IField { - transformations: Array<{ - name: string; - options: ITransformationSelectOption[]; - arguments: ITransformationArgument[]; - }>; -} - -export interface IMapping { - id: string; - name: string; - sourceFields: IMappedField[]; - targetFields: IMappedField[]; -} - -export interface IField { - id: string; - name: string; - type: string; - scope: string; - value: string; - path: string; - mappings: IMapping[]; - hasTransformations: boolean; - isAttribute: boolean; - isCollection: boolean; - isConnected: boolean; - isInCollection: boolean; - isDisabled: boolean; - enumeration: boolean; -} - -export interface IAtlasmapGroup { - id: string; - fields: (IField | IAtlasmapGroup)[]; - name: string; - type: string; - isCollection: boolean; - isInCollection: boolean; -} - -export interface IAtlasmapField { - id: string; - name: string; - type: string; - scope: string; - value: string; - path: string; - mappings: IAtlasmapMapping[]; - hasTransformations: boolean; - isAttribute: boolean; - isCollection: boolean; - isConnected: boolean; - isInCollection: boolean; - isDisabled: boolean; - enumeration: boolean; - - // TODO: find a way to remove this maybe? - amField: Field; -} - -export interface IAtlasmapMappedField extends IAtlasmapField { - transformations: Array<{ - name: string; - options: Array; - arguments: Array; - }>; -} - -export interface IAtlasmapMapping { - id: string; - name: string; - sourceFields: Array; - targetFields: Array; - mapping: MappingModel; -} diff --git a/packages/ui/src/models/dnd.ts b/packages/ui/src/models/dnd.ts deleted file mode 100644 index 015067617..000000000 --- a/packages/ui/src/models/dnd.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface IDragAndDropField { - type: 'source' | 'target' | 'mapping'; - id: string; - name: string; - /* eslint-disable @typescript-eslint/no-explicit-any */ - payload?: any; // TODO: I hate this -} diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index 13b8f693b..1d2f5139f 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,22 +1,76 @@ -import { IDocument, IField } from './api'; import { generateRandomId } from '../util'; import { XmlSchema, XmlSchemaElement } from '@datamapper-poc/xml-schema-ts'; -abstract class Document implements IDocument { +export interface INamespace { + alias: string; + uri: string; + locationUri: string; + isTarget: boolean; +} + +export interface IField { + id: string; + name: string; + type: string; + fields: IField[]; + scope: string; + value: string; + path: string; + isAttribute: boolean; + isCollection: boolean; + isConnected: boolean; + isInCollection: boolean; + isDisabled: boolean; + enumeration: boolean; +} + +export interface IDocument { + id: string; + name: string; + type: string; + fields: IField[]; + namespaces?: INamespace[]; +} + +abstract class BaseDocument implements IDocument { fields: IField[] = []; id: string = generateRandomId('document'); name: string = ''; type: string = ''; } -export class XmlSchemaDocument extends Document { +export class XmlSchemaDocument extends BaseDocument { private rootElement: XmlSchemaElement; + fields: XmlSchemaField[] = []; constructor(private xmlSchema: XmlSchema) { super(); - if (xmlSchema.getElements().size == 0) { + if (this.xmlSchema.getElements().size == 0) { throw Error("There's no top level Element in the schema"); } - this.rootElement = xmlSchema.getElements().values().next().value; + this.rootElement = this.xmlSchema.getElements().values().next().value; + this.fields.push(new XmlSchemaField(this.rootElement)); this.type = 'XML'; } } + +abstract class BaseField implements IField { + enumeration: boolean = false; + fields: IField[] = []; + id: string = generateRandomId('field'); + isAttribute: boolean = false; + isCollection: boolean = false; + isConnected: boolean = false; + isDisabled: boolean = false; + isInCollection: boolean = false; + name: string = ''; + path: string = ''; + scope: string = ''; + type: string = ''; + value: string = ''; +} + +export class XmlSchemaField extends BaseField { + constructor(_element: XmlSchemaElement) { + super(); + } +} diff --git a/packages/ui/src/models/index.ts b/packages/ui/src/models/index.ts index d9223eece..abe467be3 100644 --- a/packages/ui/src/models/index.ts +++ b/packages/ui/src/models/index.ts @@ -1,4 +1,3 @@ -export * from './api'; -export * from './dnd'; export * from './document'; export * from './mapping'; +export { CanvasView } from './view'; diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 6b62d34ab..f8d7f48c9 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -1,5 +1,18 @@ -import { IMappedField, IMapping } from './api'; import { generateRandomId } from '../util'; +import { IField } from './document'; + +export interface IMappedField extends IField { + transformations: Array<{ + name: string; + }>; +} + +export interface IMapping { + id: string; + name: string; + sourceFields: IMappedField[]; + targetFields: IMappedField[]; +} export class Mapping implements IMapping { id: string = generateRandomId('mapping'); diff --git a/packages/ui/src/models/view.ts b/packages/ui/src/models/view.ts new file mode 100644 index 000000000..3305846a8 --- /dev/null +++ b/packages/ui/src/models/view.ts @@ -0,0 +1,5 @@ +export enum CanvasView { + SOURCE_TARGET = 'SourceTarget', + MAPPING_TABLE = 'MappingTable', + NAMESPACE_TABLE = 'NamespaceTable', +} diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index 889d6d129..f48b8a752 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -14,10 +14,9 @@ limitations under the License. */ import { createContext, FunctionComponent, PropsWithChildren, useCallback, useMemo, useState } from 'react'; -import { useToggle } from '../hooks'; -import { Loading } from '../components'; -import { CanvasView, IDocument, IMapping, INotification } from '../models'; +import { Loading } from '../components/Loading'; +import { CanvasView, IDocument, IMapping } from '../models'; export interface IDataMapperContext { loading: boolean; @@ -25,7 +24,6 @@ export interface IDataMapperContext { setActiveView(view: CanvasView): void; - notifications: INotification[]; constants: IDocument; sourceProperties: IDocument; targetProperties: IDocument; @@ -40,47 +38,26 @@ export interface IDataMapperContext { selectedMapping: IMapping | null; setSelectedMapping(mapping: IMapping | null): void; - - isPreviewEnabled: boolean; - - togglePreview(): void; - - showTypes: boolean; - - toggleShowTypes(): void; - - showMappedFields: boolean; - - toggleShowMappedFields(): void; - - showUnmappedFields: boolean; - - toggleShowUnmappedFields(): void; } export const DataMapperContext = createContext(null); export const DataMapperProvider: FunctionComponent = (props) => { - const [loading, setLoading] = useState(false); - const [activeView, setActiveView] = useState('SourceTarget'); - const [notifications, setNotifications] = useState([]); - const { state: isPreviewEnabled, toggle: togglePreview } = useToggle(false); - const { state: showTypes, toggle: toggleShowTypes } = useToggle(true); - const { state: showMappedFields, toggle: toggleShowMappedFields } = useToggle(true); - const { state: showUnmappedFields, toggle: toggleShowUnmappedFields } = useToggle(true); - const [constants, setConstants] = useState({ + const [loading, _setLoading] = useState(false); + const [activeView, setActiveView] = useState(CanvasView.SOURCE_TARGET); + const [constants, _setConstants] = useState({ id: 'constants', name: 'Constants', type: 'constants', fields: [], } as IDocument); - const [sourceProperties, setSourceProperties] = useState({ + const [sourceProperties, _setSourceProperties] = useState({ id: 'sourceProperties', name: 'Source Properties', type: 'source', fields: [], }); - const [targetProperties, setTargetProperties] = useState({ + const [targetProperties, _setTargetProperties] = useState({ id: 'targetProperties', name: 'Target Properties', type: 'target', @@ -103,7 +80,6 @@ export const DataMapperProvider: FunctionComponent = (props) loading, activeView, setActiveView, - notifications, constants, sourceProperties, targetProperties, @@ -115,36 +91,19 @@ export const DataMapperProvider: FunctionComponent = (props) setMappings, selectedMapping, setSelectedMapping, - isPreviewEnabled, - togglePreview, - showTypes, - toggleShowTypes, - showMappedFields, - toggleShowMappedFields, - showUnmappedFields, - toggleShowUnmappedFields, }; }, [ activeView, refreshSourceDocuments, refreshTargetDocuments, constants, - isPreviewEnabled, loading, mappings, - notifications, selectedMapping, - showMappedFields, - showTypes, - showUnmappedFields, sourceDocuments, sourceProperties, targetDocuments, targetProperties, - togglePreview, - toggleShowMappedFields, - toggleShowTypes, - toggleShowUnmappedFields, ]); return ( diff --git a/packages/ui/src/providers/FieldsDndProvider.tsx b/packages/ui/src/providers/FieldsDndProvider.tsx deleted file mode 100644 index 2fe0919f3..000000000 --- a/packages/ui/src/providers/FieldsDndProvider.tsx +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { FunctionComponent, createContext, PropsWithChildren, useRef } from 'react'; -import { DndProvider } from 'react-dnd'; -import { HTML5Backend } from 'react-dnd-html5-backend'; -import { TouchBackend } from 'react-dnd-touch-backend'; -import { IDragAndDropField } from '../models'; - -const probablyTouch = - window.matchMedia && - (window.matchMedia('(pointer: none)').matches || window.matchMedia('(pointer: coarse)').matches) && - window.matchMedia('(hover: none)').matches; - -const TouchAndPointerProvider: FunctionComponent = ({ children }) => { - return ( - - {children} - - ); -}; - -const MouseOnlyProvider: FunctionComponent = ({ children }) => ( - {children} -); - -interface IFieldsDndContext { - getHoveredTarget: () => IDragAndDropField | null; - setHoveredTarget: (target: IDragAndDropField | null) => void; -} - -export const FieldsDndContext = createContext(null); - -export const FieldsDndProvider: FunctionComponent = ({ children }) => { - const hoveredTarget = useRef(null); - const getHoveredTarget = () => hoveredTarget.current; - const setHoveredTarget = (target: IDragAndDropField | null) => (hoveredTarget.current = target); - const Provider = probablyTouch ? TouchAndPointerProvider : MouseOnlyProvider; - return ( - - {children} - - ); -}; diff --git a/packages/ui/src/providers/NodeRefProvider.tsx b/packages/ui/src/providers/NodeRefProvider.tsx deleted file mode 100644 index 953589f19..000000000 --- a/packages/ui/src/providers/NodeRefProvider.tsx +++ /dev/null @@ -1,167 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - FunctionComponent, - MutableRefObject, - createContext, - useCallback, - useContext, - useEffect, - useRef, - PropsWithChildren, -} from 'react'; -import { useBoundingCanvasRect } from '../_bk_atlasmap/UI/Canvas/useBoundingCanvasRect'; - -export interface NodeRect extends DOMRect { - clipped?: boolean; -} - -export interface NodeRefProps { - ref: MutableRefObject; - parentId?: string; - boundaryId?: string; - overrideWidth?: string; - overrideHeight?: string; -} - -export interface NodeRefPropsWithOptionalId extends NodeRefProps { - id: string | undefined | Array; -} - -export interface NodeRefPropsWithId extends NodeRefProps { - id: string; -} - -export interface NodeRefPropsWithKey extends NodeRefProps { - key: string; -} - -export interface NodeRefMap { - [id: string]: NodeRefPropsWithKey; -} - -export interface INodeRefContext { - nodes: MutableRefObject; - setRef: (props: NodeRefPropsWithId) => string; - unsetRef: (id: string | undefined | Array, key: string) => void; -} - -export const NodeRefContext = createContext(null); - -export const NodeRefProvider: FunctionComponent = ({ children }) => { - const nodes = useRef({}); - const setRef = ({ id, ...props }: NodeRefPropsWithId) => { - const key = `${id}-${Date.now()}`; - const ids = Array.isArray(id) ? id : [id]; - for (let index = 0; index < ids.length; index++) { - const curId = ids[index]; - if (curId) { - nodes.current[ids[index]] = { - ...props, - key, - }; - } - } - return key; - }; - const unsetRef = (id: string | undefined | Array, key: string) => { - const ids = Array.isArray(id) ? id : [id]; - for (let index = 0; index < ids.length; index++) { - const curId = ids[index]; - if (curId && nodes.current[curId]?.key === key) { - delete nodes.current[curId]; - } - } - }; - - return ( - - {children} - - ); -}; - -export function useNodeRef(props: NodeRefPropsWithOptionalId) { - const context = useContext(NodeRefContext); - useEffect(() => { - if (context && props.id) { - const { setRef, unsetRef } = context; - const key = setRef(props as NodeRefPropsWithId); - return () => unsetRef(props.id!, key); - } - return; - }, [context, props]); -} - -export function useNodeRect() { - const context = useContext(NodeRefContext); - const { getBoundingCanvasRect } = useBoundingCanvasRect(); - const getRect = useCallback( - (id: string): NodeRect | null => { - if (!context) { - return null; - } - const { nodes } = context; - const node = nodes.current[id]; - const element = node ? node.ref.current : undefined; - if (element) { - const dimensions = getBoundingCanvasRect(element); - if (dimensions.height === 0 && node.parentId) { - return getRect(node.parentId); - } - let boundaryRect; - if (node.boundaryId && (boundaryRect = getRect(node.boundaryId))) { - const overrideWidthRect = node.overrideWidth ? getRect(node.overrideWidth) : undefined; - const overrideHeightRect = node.overrideHeight ? getRect(node.overrideHeight) : undefined; - const width = overrideWidthRect?.width || dimensions.width; - const height = overrideHeightRect?.height || dimensions.height; - const x = Math.min( - Math.max(overrideWidthRect?.left || dimensions.left, boundaryRect.left), - boundaryRect.width + boundaryRect.left - dimensions.width, - ); - const isXClipped = x !== (overrideWidthRect?.x || dimensions.x); - const y = Math.min( - Math.max(overrideHeightRect?.top || dimensions.top + dimensions.height / 2, boundaryRect.top), - boundaryRect.height + boundaryRect.top, - ); - const isYClipped = y === boundaryRect.top || y === boundaryRect.height + boundaryRect.top; - return { - width, - height, - x, - y, - left: x, - top: y, - right: x + width, - bottom: y + height, - toJSON: () => '', - clipped: isXClipped || isYClipped, - }; - } - return dimensions; - } - return null; - }, - [context, getBoundingCanvasRect], - ); - return getRect; -} diff --git a/packages/ui/src/providers/TreeFocusProvider.tsx b/packages/ui/src/providers/TreeFocusProvider.tsx deleted file mode 100644 index 0b4672f17..000000000 --- a/packages/ui/src/providers/TreeFocusProvider.tsx +++ /dev/null @@ -1,206 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { - FocusEvent, - FunctionComponent, - KeyboardEvent, - MouseEvent as ReactMouseEvent, - RefObject, - createContext, - useContext, - useState, - PropsWithChildren, -} from 'react'; - -interface ITreeFocusContext { - focusedItem: HTMLElement | null; - setFocusedItem: (item: HTMLElement | null) => void; -} - -const TreeFocusContext = createContext(null); - -export const TreeFocusProvider: FunctionComponent = ({ children }) => { - const [focusedItem, setFocusedItem] = useState(null); - return {children}; -}; - -export interface IUseTreeFocusProps { - ref: RefObject; - isExpandable?: boolean; - isExpanded?: boolean; - collapseTreeitem?: () => void; - expandTreeitem?: () => void; -} - -export const useTreeFocus = ({ - ref, - isExpandable = false, - isExpanded = false, - collapseTreeitem, - expandTreeitem, -}: IUseTreeFocusProps) => { - const context = useContext(TreeFocusContext); - if (!context) { - throw new Error(`useTreeFocus can be used only inside a Tree component`); - } - const { focusedItem, setFocusedItem } = context; - const getFocusableItems = (el: HTMLElement) => { - return Array.from(el.closest('[role=tree]')?.querySelectorAll('[role=treeitem]') || []).filter( - (el) => { - const group = el.parentElement?.closest('[aria-expanded]'); - if (group) { - return group.getAttribute('aria-expanded') === 'true'; - } - return true; - }, - ); - }; - - const setFocus = (index: number, nodes: HTMLElement[]) => { - nodes.forEach((n) => n.setAttribute('tabindex', '-1')); - nodes[index].setAttribute('tabindex', '0'); - nodes[index].focus(); - }; - - const setFocusToPreviousItem = () => { - if (ref.current) { - const nodes = getFocusableItems(ref.current); - const idx = nodes?.indexOf(ref.current); - if (idx > 0) { - setFocus(idx - 1, nodes); - } - } - }; - const setFocusToNextItem = () => { - if (ref.current) { - const nodes = getFocusableItems(ref.current); - const idx = nodes?.indexOf(ref.current); - if (idx < nodes.length - 1) { - setFocus(idx + 1, nodes); - } - } - }; - // const setFocusToParentItem = () => { - // if (level > 1 && parentItem) { - // setFocus({ level: level - 1, position: parentItem.position }); - // } - // }; - const setFocusToFirstItem = () => { - if (ref.current) { - const nodes = getFocusableItems(ref.current); - setFocus(0, nodes); - } - }; - const setFocusToLastItem = () => { - if (ref.current) { - const nodes = getFocusableItems(ref.current); - setFocus(nodes.length - 1, nodes); - } - }; - const onKeyDown = (event: KeyboardEvent) => { - // don't handle keyboard events performed on child elements - if (event.target !== ref.current) { - return; - } - // ignore special keys - if (event.altKey || event.ctrlKey || event.metaKey) { - return; - } - switch (event.key) { - case ' ': - case 'Enter': - if (event.target === ref.current) { - // Create simulated mouse event to mimic the behavior of ATs - // and let the event handler handleClick do the housekeeping. - event.target.dispatchEvent( - new MouseEvent('click', { - view: window, - bubbles: true, - cancelable: true, - }), - ); - setFocusedItem(ref.current); - } - break; - case 'Escape': - setFocusedItem(null); - event.preventDefault(); - break; - case 'ArrowUp': - setFocusToPreviousItem(); - break; - case 'ArrowDown': - setFocusToNextItem(); - break; - case 'ArrowRight': - if (isExpandable) { - if (isExpanded) { - setFocusToNextItem(); - } else { - if (expandTreeitem) { - expandTreeitem(); - } - } - } - break; - case 'ArrowLeft': - if (isExpandable && isExpanded) { - if (collapseTreeitem) { - collapseTreeitem(); - } - } else { - // if (itemLevel === level) { - // setFocusToParentItem(); - // } - } - break; - case 'Home': - setFocusToFirstItem(); - break; - case 'End': - setFocusToLastItem(); - break; - default: - break; - } - }; - const onClick = (event: ReactMouseEvent) => { - if (ref.current) { - if (isExpandable && isExpanded) { - event.stopPropagation(); - } else { - const nodes = getFocusableItems(ref.current); - const idx = nodes?.indexOf(ref.current); - setFocus(idx, nodes); - setFocusedItem(ref.current); - } - } - }; - return { - focused: focusedItem && focusedItem === ref.current, - handlers: { - onKeyDown, - onClick, - onBlur: (event: FocusEvent) => { - if ( - (event.relatedTarget as HTMLElement | null)?.closest('[role=tree]') !== ref.current?.closest('[role=tree]') - ) { - setFocusedItem(null); - } - }, - }, - }; -}; diff --git a/packages/ui/src/providers/index.ts b/packages/ui/src/providers/index.ts index 2bc0d9950..aab809fd5 100644 --- a/packages/ui/src/providers/index.ts +++ b/packages/ui/src/providers/index.ts @@ -1,2 +1 @@ export * from './DataMapperProvider'; -export { useDataMapper } from './useDataMapper'; diff --git a/packages/ui/src/providers/useDataMapper.ts b/packages/ui/src/providers/useDataMapper.ts deleted file mode 100644 index 54d827efa..000000000 --- a/packages/ui/src/providers/useDataMapper.ts +++ /dev/null @@ -1,292 +0,0 @@ -import { useCallback, useContext } from 'react'; -import { - addToCurrentMapping, - changeDocumentName, - createConstant, - createMapping, - createNamespace, - createProperty, - deleteAtlasFile, - deleteConstant, - deleteNamespace, - deleteProperty, - deselectMapping, - documentExists, - editConstant, - editNamespace, - editProperty, - enableCustomClass, - executeFieldSearch, - exportADMArchiveFile, - fromMappedFieldToIMappingField, - getEnumerationValues, - getFieldEnums, - getMappingActions, - getMappingExpression, - getMultiplicityActionDelimiters, - getMultiplicityActions, - getRuntimeVersion, - getUIVersion, - handleActionChange, - handleIndexChange, - handleMultiplicityArgumentChange, - handleMultiplicityChange, - handleNewTransformation, - handleRemoveTransformation, - handleTransformationArgumentChange, - handleTransformationChange, - importADMArchiveFile, - importInstanceSchema, - importJarFile, - initializationService, - isEnumerationMapping, - mappingExpressionAddField, - mappingExpressionClearText, - mappingExpressionInit, - mappingExpressionInsertText, - mappingExpressionObservable, - mappingExpressionRemoveField, - newMapping, - onFieldPreviewChange, - removeFromCurrentMapping, - removeMappedFieldFromCurrentMapping, - removeMapping, - resetAtlasmap, - selectMapping, - setSelectedEnumValue, - toggleExpressionMode, - toggleMappingPreview, - toggleShowMappedFields, - toggleShowUnmappedFields, - trailerId, -} from '../_bk_atlasmap/impl'; -import { TransitionMode } from '../_bk_atlasmap/core'; -import { DataMapperContext } from './DataMapperProvider'; -import { IField } from '../models'; -export function useDataMapper() { - const context = useContext(DataMapperContext); - - if (!context) { - throw new Error(`useDataMapper must be used inside an DataMapperProvider component`); - } - - const configModel = initializationService.cfg; - - const { ...state } = context; - - const searchSources = useCallback( - (term: string) => configModel.documentService.filterDocumentFields(term, true), - [configModel], - ); - const searchTargets = useCallback( - (term: string) => configModel.documentService.filterDocumentFields(term, false), - [configModel], - ); - - const handleImportADMArchiveFile = useCallback( - (file: File) => { - importADMArchiveFile(file, configModel); - }, - [configModel], - ); - - const handleImportJarFile = useCallback( - (file: File) => { - importJarFile(file, configModel); - }, - [configModel], - ); - - const handleResetAtlasmap = useCallback(() => { - resetAtlasmap(); - }, []); - - const onAddToMapping = useCallback((node: IField) => { - const field = node.amField; - addToCurrentMapping(field); - }, []); - - const onRemoveFromMapping = useCallback((node: IField) => { - const field = node.amField; - removeFromCurrentMapping(field); - }, []); - - const onCreateMapping = useCallback((source: IField | undefined, target: IField | undefined) => { - const sourceField = source?.amField; - const targetField = target?.amField; - createMapping(sourceField, targetField); - }, []); - - const isMappingExpressionEmpty = configModel.mappings?.activeMapping?.transition?.expression?.nodes.length === 0; - - const mappingHasSourceCollection = useCallback(() => { - return configModel.expressionService.willClearOutSourceFieldsOnTogglingExpression(); - }, [configModel]); - - /** - * Return true if it's possible to add a source or target field to the current - * mapping from the specified panel, false otherwise. - */ - const canAddToSelectedMapping = useCallback( - (isSource: boolean): boolean => { - const { selectedMapping } = context; - if ( - !selectedMapping || - (selectedMapping.mapping.transition.mode === TransitionMode.ENUM && - selectedMapping.sourceFields.length > 0 && - selectedMapping.targetFields.length > 0) - ) { - return false; - } - if (selectedMapping.sourceFields.length <= 1 && selectedMapping.targetFields.length <= 1) { - return true; - } else if (isSource && (selectedMapping.targetFields.length <= 1 || selectedMapping.sourceFields.length === 0)) { - return true; - } else if (!isSource && (selectedMapping.sourceFields.length <= 1 || selectedMapping.targetFields.length === 0)) { - return true; - } - return false; - }, - [context], - ); - - /** - * Return true if it's possible to add the specified source field to the current mapping - * from the specified panel, false otherwise. - */ - const isFieldAddableToSelection = useCallback( - (documentType: 'source' | 'target', field: IField, dropTarget?: IField): boolean => { - const { selectedMapping } = context; - const isSource = documentType === 'source'; - if ( - !field || - !field.amField.isTerminal() || - dropTarget?.type === 'UNSUPPORTED' || - (selectedMapping && - selectedMapping.mapping.transition.mode === TransitionMode.ENUM && - selectedMapping.sourceFields.length > 0 && - selectedMapping.targetFields.length > 0) - ) { - return false; - } - if (!selectedMapping || (dropTarget && !dropTarget.isConnected)) { - return true; - } - if (selectedMapping.sourceFields.length <= 1 && selectedMapping.targetFields.length <= 1) { - if (isSource && !selectedMapping.sourceFields.find((f) => f.id === field.id)) { - return true; - } else if ( - field.isCollection || - field.isInCollection || - (!field.isConnected && !selectedMapping.targetFields.find((f) => f.id === field.id)) - ) { - return true; - } - } else if ( - isSource && - (selectedMapping.targetFields.length <= 1 || selectedMapping.sourceFields.length === 0) && - !selectedMapping.sourceFields.find((f) => f.id === field.id) - ) { - return true; - } else if ( - !isSource && - (field.isCollection || - field.isInCollection || - (!field.isConnected && - (selectedMapping.sourceFields.length <= 1 || selectedMapping.targetFields.length === 0) && - !selectedMapping.targetFields.find((f) => f.id === field.id))) - ) { - return true; - } - return false; - }, - [context], - ); - - const isFieldRemovableFromSelection = useCallback( - (documentType: 'source' | 'target', field: IField): boolean => - !!context.selectedMapping && - !!context.selectedMapping[documentType === 'source' ? 'sourceFields' : 'targetFields'].find( - (f) => f.id === field.id, - ), - [context.selectedMapping], - ); - - return { - ...state, - selectMapping, - deselectMapping, - deleteAtlasFile, - exportADMArchiveFile: exportADMArchiveFile, - importADMArchiveFile: handleImportADMArchiveFile, - importJarFile: handleImportJarFile, - resetAtlasmap: handleResetAtlasmap, - getUIVersion: getUIVersion, - getRuntimeVersion: getRuntimeVersion, - mappingExpressionClearText, - isMappingExpressionEmpty, - executeFieldSearch, - getFieldEnums, - setSelectedEnumValue, - mappingExpressionAddField, - mappingExpressionInit, - mappingExpressionInsertText, - mappingExpressionObservable, - mappingExpressionRemoveField, - mappingHasSourceCollection, - mappingExpressionEnabled: configModel.expressionService.isExpressionEnabledForActiveMapping(), - currentMappingExpression: configModel.expressionService.getMappingExpressionStr( - true, - configModel.mappings?.activeMapping, - ), - getMappingExpression, - toggleExpressionMode, - toggleMappingPreview, - toggleShowMappedFields, - toggleShowUnmappedFields, - onFieldPreviewChange, - addToCurrentMapping, - removeFromCurrentMapping, - removeMappedFieldFromCurrentMapping, - fromMappedFieldToIMappingField, - createMapping, - newMapping, - removeMapping, - documentExists, - getMappingActions, - getMultiplicityActions, - getMultiplicityActionDelimiters, - handleActionChange, - handleIndexChange, - handleNewTransformation, - handleRemoveTransformation, - handleTransformationChange, - handleTransformationArgumentChange, - handleMultiplicityChange, - handleMultiplicityArgumentChange, - createConstant, - deleteConstant, - editConstant, - createProperty, - deleteProperty, - editProperty, - trailerId, - canAddToSelectedMapping, - isFieldAddableToSelection, - isFieldRemovableFromSelection, - searchSources, - searchTargets, - importInstanceSchema, - enableCustomClass, - createNamespace, - editNamespace, - deleteNamespace, - onAddToMapping, - onRemoveFromMapping, - onCreateMapping, - changeDocumentName, - getEnumerationValues, - isEnumerationMapping, - configModel, - }; -} diff --git a/yarn.lock b/yarn.lock index fa98b05c5..588b0b351 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1595,6 +1595,7 @@ __metadata: "@babel/preset-react": ^7.23.3 "@babel/preset-typescript": ^7.23.3 "@datamapper-poc/xml-schema-ts": "workspace:*" + "@dnd-kit/core": ^6.1.0 "@patternfly/react-core": ^5.1.2 "@patternfly/react-table": ^5.1.2 "@patternfly/react-topology": ^5.1.0 From 3054981d98fe12bfe93599e0222331bbf8616ec3 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 5 Mar 2024 13:22:10 -0500 Subject: [PATCH 053/471] feat: Render the Document model in source/target tree view Fixes: #32 --- .../src/components/document/DocumentField.tsx | 16 +- .../document/ImportDocumentButton.tsx | 4 +- packages/ui/src/models/document.ts | 25 +- .../ui/src/services/document.service.test.ts | 13 - packages/ui/src/services/document.service.ts | 10 - packages/ui/src/services/index.ts | 2 +- .../xml-schema-document.service.test.ts | 15 ++ .../services/xml-schema-document.service.ts | 231 ++++++++++++++++++ packages/xml-schema-ts/src/QName.ts | 4 +- packages/xml-schema-ts/src/index.ts | 20 ++ 10 files changed, 285 insertions(+), 55 deletions(-) delete mode 100644 packages/ui/src/services/document.service.test.ts delete mode 100644 packages/ui/src/services/document.service.ts create mode 100644 packages/ui/src/services/xml-schema-document.service.test.ts create mode 100644 packages/ui/src/services/xml-schema-document.service.ts diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index 0c268e04b..d16c64c85 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -30,11 +30,19 @@ export const DocumentField: FunctionComponent = ({ field }) : undefined; return !field.fields || field.fields.length == 0 ? ( -
-
- {field.name} + +
+
+ {field.isAttribute ? '@' + field.name : field.name} +
-
+ ) : ( setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> diff --git a/packages/ui/src/components/document/ImportDocumentButton.tsx b/packages/ui/src/components/document/ImportDocumentButton.tsx index 63f0ff4c8..7b6e8aaea 100644 --- a/packages/ui/src/components/document/ImportDocumentButton.tsx +++ b/packages/ui/src/components/document/ImportDocumentButton.tsx @@ -19,7 +19,7 @@ import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; import { useFilePicker } from 'react-sage'; import { readFileAsString } from '../../util'; -import { DocumentService } from '../../services'; +import { XmlSchemaDocumentService } from '../../services'; import { useDataMapperContext } from '../../hooks'; export interface IImportActionProps { @@ -36,7 +36,7 @@ export const ImportDocumentButton: FunctionComponent = ({ is (file: File) => { const fileName = file.name; readFileAsString(file).then((content) => { - const document = DocumentService.parseXmlSchema(content); + const document = XmlSchemaDocumentService.parseXmlSchema(content); document.name = fileName; if (isSource) { sourceDocuments.push(document); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index 1d2f5139f..a93f18942 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,5 +1,4 @@ import { generateRandomId } from '../util'; -import { XmlSchema, XmlSchemaElement } from '@datamapper-poc/xml-schema-ts'; export interface INamespace { alias: string; @@ -32,28 +31,14 @@ export interface IDocument { namespaces?: INamespace[]; } -abstract class BaseDocument implements IDocument { +export abstract class BaseDocument implements IDocument { fields: IField[] = []; id: string = generateRandomId('document'); name: string = ''; type: string = ''; } -export class XmlSchemaDocument extends BaseDocument { - private rootElement: XmlSchemaElement; - fields: XmlSchemaField[] = []; - constructor(private xmlSchema: XmlSchema) { - super(); - if (this.xmlSchema.getElements().size == 0) { - throw Error("There's no top level Element in the schema"); - } - this.rootElement = this.xmlSchema.getElements().values().next().value; - this.fields.push(new XmlSchemaField(this.rootElement)); - this.type = 'XML'; - } -} - -abstract class BaseField implements IField { +export abstract class BaseField implements IField { enumeration: boolean = false; fields: IField[] = []; id: string = generateRandomId('field'); @@ -68,9 +53,3 @@ abstract class BaseField implements IField { type: string = ''; value: string = ''; } - -export class XmlSchemaField extends BaseField { - constructor(_element: XmlSchemaElement) { - super(); - } -} diff --git a/packages/ui/src/services/document.service.test.ts b/packages/ui/src/services/document.service.test.ts deleted file mode 100644 index be103b4a9..000000000 --- a/packages/ui/src/services/document.service.test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { DocumentService } from './document.service'; -import * as fs from 'fs'; - -describe('DocumentService', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); - - describe('parseXmlSchema', () => { - it('should parse the xml schema', () => { - const document = DocumentService.parseXmlSchema(orderXsd); - expect(document).toBeDefined(); - }); - }); -}); diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts deleted file mode 100644 index dc9b8885f..000000000 --- a/packages/ui/src/services/document.service.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { IDocument, XmlSchemaDocument } from '../models'; -import { XmlSchemaCollection } from '@datamapper-poc/xml-schema-ts'; - -export class DocumentService { - static parseXmlSchema(content: string): IDocument { - const collection = new XmlSchemaCollection(); - const xmlSchema = collection.read(content, () => {}); - return new XmlSchemaDocument(xmlSchema); - } -} diff --git a/packages/ui/src/services/index.ts b/packages/ui/src/services/index.ts index dea92136a..5e5f882ac 100644 --- a/packages/ui/src/services/index.ts +++ b/packages/ui/src/services/index.ts @@ -1 +1 @@ -export * from './document.service'; +export * from './xml-schema-document.service'; diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts new file mode 100644 index 000000000..890592463 --- /dev/null +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -0,0 +1,15 @@ +import { XmlSchemaDocumentService, XmlSchemaField } from './xml-schema-document.service'; +import * as fs from 'fs'; + +describe('XmlSchemaDocumentService', () => { + const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); + + it('should parse the xml schema', () => { + const document = XmlSchemaDocumentService.parseXmlSchema(orderXsd); + expect(document).toBeDefined(); + const shipOrder = XmlSchemaDocumentService.getFirstElement(document.xmlSchema); + const fields: XmlSchemaField[] = []; + XmlSchemaDocumentService.populateElement(fields, shipOrder); + expect(fields.length > 0).toBeTruthy(); + }); +}); diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts new file mode 100644 index 000000000..d0649bb4d --- /dev/null +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -0,0 +1,231 @@ +import { + XmlSchema, + XmlSchemaAll, + XmlSchemaAny, + XmlSchemaAllMember, + XmlSchemaAttribute, + XmlSchemaAttributeGroup, + XmlSchemaAttributeGroupMember, + XmlSchemaAttributeGroupRef, + XmlSchemaAttributeOrGroupRef, + XmlSchemaChoice, + XmlSchemaChoiceMember, + XmlSchemaCollection, + XmlSchemaComplexType, + XmlSchemaElement, + XmlSchemaGroup, + XmlSchemaGroupParticle, + XmlSchemaGroupRef, + XmlSchemaObjectBase, + XmlSchemaParticle, + XmlSchemaRef, + XmlSchemaSequence, + XmlSchemaSequenceMember, + XmlSchemaSimpleType, +} from '@datamapper-poc/xml-schema-ts'; +import { BaseDocument, BaseField } from '../models'; + +export class XmlSchemaDocument extends BaseDocument { + rootElement: XmlSchemaElement; + fields: XmlSchemaField[] = []; + + constructor(public xmlSchema: XmlSchema) { + super(); + if (this.xmlSchema.getElements().size == 0) { + throw Error("There's no top level Element in the schema"); + } + // TODO let user choose the root element from top level elements if there're multiple + this.rootElement = XmlSchemaDocumentService.getFirstElement(this.xmlSchema); + XmlSchemaDocumentService.populateElement(this.fields, this.rootElement); + this.type = 'XML'; + } +} + +export class XmlSchemaField extends BaseField { + fields: XmlSchemaField[] = []; + namespaceURI: string | null = ''; + namespacePrefix: string | null = ''; +} + +export class XmlSchemaDocumentService { + static parseXmlSchema(content: string): XmlSchemaDocument { + const collection = new XmlSchemaCollection(); + const xmlSchema = collection.read(content, () => {}); + return new XmlSchemaDocument(xmlSchema); + } + + static getFirstElement(xmlSchema: XmlSchema) { + return xmlSchema.getElements().values().next().value; + } + + static throwNotYetSupported(object: XmlSchemaObjectBase) { + const cache: any[] = []; + throw Error( + `Not yet supported: ${JSON.stringify(object, (_key, value) => { + if (typeof value === 'object' && value !== null) { + if (cache.includes(value)) return; + cache.push(value); + } + if (typeof value === 'bigint') return value.toString(); + })}`, + ); + } + + static populateElement(fields: XmlSchemaField[], element: XmlSchemaElement) { + const field: XmlSchemaField = new XmlSchemaField(); + field.name = element.getWireName()!.getLocalPart()!; + field.namespaceURI = element.getWireName()!.getNamespaceURI(); + field.namespacePrefix = element.getWireName()!.getPrefix(); + fields.push(field); + + const schemaType = element.getSchemaType(); + if (schemaType == null) { + field.type = element.getSchemaTypeName(); + return; + } + field.type = 'container'; + if (schemaType instanceof XmlSchemaSimpleType) { + XmlSchemaDocumentService.throwNotYetSupported(element); + } else if (schemaType instanceof XmlSchemaComplexType) { + const complex = schemaType as XmlSchemaComplexType; + const attributes: XmlSchemaAttributeOrGroupRef[] = complex.getAttributes(); + attributes.forEach((attr) => { + XmlSchemaDocumentService.populateAttributeOrGroupRef(field.fields, attr); + }); + XmlSchemaDocumentService.populateParticle(field.fields, complex.getParticle()); + } else { + XmlSchemaDocumentService.throwNotYetSupported(element); + } + } + + static populateAttributeOrGroupRef(fields: XmlSchemaField[], attr: XmlSchemaAttributeOrGroupRef) { + if (attr instanceof XmlSchemaAttribute) { + XmlSchemaDocumentService.populateAttribute(fields, attr); + } else if (attr instanceof XmlSchemaAttributeGroupRef) { + XmlSchemaDocumentService.populateAttributeGroupRef(fields, attr); + } else { + XmlSchemaDocumentService.throwNotYetSupported(attr); + } + } + + static populateAttribute(fields: XmlSchemaField[], attr: XmlSchemaAttribute) { + const field = new XmlSchemaField(); + field.isAttribute = true; + field.name = attr.getWireName()!.getLocalPart()!; + field.namespaceURI = attr.getWireName()!.getNamespaceURI(); + field.namespacePrefix = attr.getWireName()!.getPrefix(); + fields.push(field); + } + + static populateAttributeGroupRef(fields: XmlSchemaField[], groupRef: XmlSchemaAttributeGroupRef) { + const ref: XmlSchemaRef = groupRef.getRef(); + XmlSchemaDocumentService.populateAttributeGroup(fields, ref.getTarget()); + } + + static populateAttributeGroupMember(fields: XmlSchemaField[], member: XmlSchemaAttributeGroupMember) { + if (member instanceof XmlSchemaAttribute) { + XmlSchemaDocumentService.populateAttribute(fields, member); + } else if (member instanceof XmlSchemaAttributeGroup) { + XmlSchemaDocumentService.populateAttributeGroup(fields, member); + } else if (member instanceof XmlSchemaAttributeGroupRef) { + XmlSchemaDocumentService.populateAttributeGroupRef(fields, member); + } else { + XmlSchemaDocumentService.throwNotYetSupported(member); + } + } + + static populateAttributeGroup(fields: XmlSchemaField[], group: XmlSchemaAttributeGroup | null) { + if (group == null) { + return; + } + group + .getAttributes() + .forEach((member: XmlSchemaAttributeGroupMember) => + XmlSchemaDocumentService.populateAttributeGroupMember(fields, member), + ); + } + + static populateParticle(fields: XmlSchemaField[], particle: XmlSchemaParticle | null) { + if (particle == null) { + return; + } + if (particle instanceof XmlSchemaAny) { + XmlSchemaDocumentService.populateAny(fields, particle); + } else if (particle instanceof XmlSchemaElement) { + XmlSchemaDocumentService.populateElement(fields, particle); + } else if (particle instanceof XmlSchemaGroupParticle) { + XmlSchemaDocumentService.populateGroupParticle(fields, particle); + } else if (particle instanceof XmlSchemaGroupRef) { + XmlSchemaDocumentService.populateGroupRef(fields, particle); + } else { + XmlSchemaDocumentService.throwNotYetSupported(particle); + } + } + + static populateAny(_fields: XmlSchemaField[], schemaAny: XmlSchemaAny) { + /* TODO - xs:any allows arbitrary elements */ + XmlSchemaDocumentService.throwNotYetSupported(schemaAny); + } + + static populateGroupParticle(fields: XmlSchemaField[], groupParticle: XmlSchemaGroupParticle | null) { + if (groupParticle == null) { + return; + } + if (groupParticle instanceof XmlSchemaChoice) { + const choice = groupParticle as XmlSchemaChoice; + choice + .getItems() + .forEach((member: XmlSchemaChoiceMember) => XmlSchemaDocumentService.populateChoiceMember(fields, member)); + } else if (groupParticle instanceof XmlSchemaSequence) { + const sequence = groupParticle as XmlSchemaSequence; + sequence + .getItems() + .forEach((member: XmlSchemaSequenceMember) => XmlSchemaDocumentService.populateSequenceMember(fields, member)); + } else if (groupParticle instanceof XmlSchemaAll) { + const all = groupParticle as XmlSchemaAll; + all + .getItems() + .forEach((member: XmlSchemaAllMember) => XmlSchemaDocumentService.populateAllMember(fields, member)); + } else { + XmlSchemaDocumentService.throwNotYetSupported(groupParticle); + } + } + + static populateGroupRef(_fields: XmlSchemaField[], groupRef: XmlSchemaGroupRef) { + XmlSchemaDocumentService.throwNotYetSupported(groupRef); + } + + static populateChoiceMember(fields: XmlSchemaField[], member: XmlSchemaChoiceMember) { + if (member instanceof XmlSchemaParticle) { + XmlSchemaDocumentService.populateParticle(fields, member); + } else if (member instanceof XmlSchemaGroup) { + XmlSchemaDocumentService.populateGroup(fields, member); + } else { + XmlSchemaDocumentService.throwNotYetSupported(member); + } + } + + static populateSequenceMember(fields: XmlSchemaField[], member: XmlSchemaSequenceMember) { + if (member instanceof XmlSchemaParticle) { + XmlSchemaDocumentService.populateParticle(fields, member); + } else if (member instanceof XmlSchemaGroup) { + XmlSchemaDocumentService.populateGroup(fields, member); + } else { + XmlSchemaDocumentService.throwNotYetSupported(member); + } + } + + static populateAllMember(fields: XmlSchemaField[], member: XmlSchemaAllMember) { + if (member instanceof XmlSchemaParticle) { + XmlSchemaDocumentService.populateParticle(fields, member); + } else if (member instanceof XmlSchemaGroup) { + XmlSchemaDocumentService.populateGroup(fields, member); + } else { + XmlSchemaDocumentService.throwNotYetSupported(member); + } + } + + static populateGroup(fields: XmlSchemaField[], group: XmlSchemaGroup) { + XmlSchemaDocumentService.populateParticle(fields, group.getParticle()); + } +} diff --git a/packages/xml-schema-ts/src/QName.ts b/packages/xml-schema-ts/src/QName.ts index 94e9055e5..030d85667 100644 --- a/packages/xml-schema-ts/src/QName.ts +++ b/packages/xml-schema-ts/src/QName.ts @@ -4,7 +4,7 @@ export class QName { constructor( namespaceURI: string | null, private localPart: string | null, - private prefix?: string, + private prefix: string | null = null, ) { this.namespaceURI = namespaceURI != null ? namespaceURI : ''; } @@ -17,7 +17,7 @@ export class QName { return this.localPart; } - getPrefix(): string | undefined { + getPrefix(): string | null { return this.prefix; } diff --git a/packages/xml-schema-ts/src/index.ts b/packages/xml-schema-ts/src/index.ts index faf5e6428..461dc310c 100644 --- a/packages/xml-schema-ts/src/index.ts +++ b/packages/xml-schema-ts/src/index.ts @@ -1,3 +1,23 @@ export { XmlSchema } from './XmlSchema'; +export { XmlSchemaAll } from './particle/XmlSchemaAll'; +export { XmlSchemaAny } from './particle/XmlSchemaAny'; +export { XmlSchemaAllMember } from './particle/XmlSchemaAllMember'; +export { XmlSchemaAttribute } from './attribute/XmlSchemaAttribute'; +export { XmlSchemaAttributeGroup } from './attribute/XmlSchemaAttributeGroup'; +export { XmlSchemaAttributeGroupMember } from './attribute/XmlSchemaAttributeGroupMember'; +export { XmlSchemaAttributeGroupRef } from './attribute/XmlSchemaAttributeGroupRef'; +export { XmlSchemaAttributeOrGroupRef } from './attribute/XmlSchemaAttributeOrGroupRef'; +export { XmlSchemaChoice } from './particle/XmlSchemaChoice'; +export { XmlSchemaChoiceMember } from './particle/XmlSchemaChoiceMember'; export { XmlSchemaCollection } from './XmlSchemaCollection'; +export { XmlSchemaComplexType } from './complex/XmlSchemaComplexType'; export { XmlSchemaElement } from './particle/XmlSchemaElement'; +export { XmlSchemaGroup } from './XmlSchemaGroup'; +export { XmlSchemaGroupParticle } from './particle/XmlSchemaGroupParticle'; +export { XmlSchemaGroupRef } from './particle/XmlSchemaGroupRef'; +export { XmlSchemaObjectBase } from './utils/XmlSchemaObjectBase'; +export { XmlSchemaParticle } from './particle/XmlSchemaParticle'; +export { XmlSchemaRef } from './utils/XmlSchemaRef'; +export { XmlSchemaSequence } from './particle/XmlSchemaSequence'; +export { XmlSchemaSequenceMember } from './particle/XmlSchemaSequenceMember'; +export { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; From ab8d765cf1b5e6697d9a260f494c74540cc84d68 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 5 Mar 2024 13:33:40 -0500 Subject: [PATCH 054/471] chore --- packages/ui/src/services/xml-schema-document.service.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index d0649bb4d..6261b9bf9 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -59,6 +59,7 @@ export class XmlSchemaDocumentService { } static throwNotYetSupported(object: XmlSchemaObjectBase) { + /* eslint-disable @typescript-eslint/no-explicit-any */ const cache: any[] = []; throw Error( `Not yet supported: ${JSON.stringify(object, (_key, value) => { From 5def01f04c116d7cbbf16a2c509d429789a02a22 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 5 Mar 2024 13:38:11 -0500 Subject: [PATCH 055/471] chore --- packages/ui/src/services/xml-schema-document.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 6261b9bf9..681b715d0 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -81,7 +81,7 @@ export class XmlSchemaDocumentService { const schemaType = element.getSchemaType(); if (schemaType == null) { - field.type = element.getSchemaTypeName(); + field.type = element.getSchemaTypeName()?.getLocalPart() || 'string'; return; } field.type = 'container'; From 8f7eb2ac995a5e9c9f2c95c2dde658fe95011b77 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 10:20:41 +0000 Subject: [PATCH 056/471] chore(deps): update dependency @types/react to v18.2.63 --- yarn.lock | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index 588b0b351..b7eb1172e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3875,25 +3875,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.2.60 - resolution: "@types/react@npm:18.2.60" +"@types/react@npm:*, @types/react@npm:^18.2.53, @types/react@npm:^18.2.61": + version: 18.2.63 + resolution: "@types/react@npm:18.2.63" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 4cd2000c4c5d93aec92bca9fce3a6050a6a20c5827409099a4cc9e68a259a937b2acc77aecbcea555eb99e295373903da17bc833e3f711442eec20e3c6cc5895 - languageName: node - linkType: hard - -"@types/react@npm:^18.2.61": - version: 18.2.61 - resolution: "@types/react@npm:18.2.61" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: a100c09bc0d6d1a0a42b3fa0944b71d209b5adea6515fc21109972ec3267185372cc416c0467b1998afce6b90fc80f4c0029b5d975afb0b3070d864c7a924a5e + checksum: f3d496b9e3c40fe984aa2f22e0f3776a4f0be223f436ad3a2b79fed4b496ba1549999083408c2c975e5c8b029bfc9e8a2924788325e00de205cf70a10ef772d0 languageName: node linkType: hard From ba742bb36e9741a6ab031c6783af2eb6f5a20244 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 04:05:15 +0000 Subject: [PATCH 057/471] chore(deps): update @lerna-lite to v3.3.1 --- yarn.lock | 107 +++++++++++++++++++++++++++++------------------------- 1 file changed, 57 insertions(+), 50 deletions(-) diff --git a/yarn.lock b/yarn.lock index b7eb1172e..86b221c96 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2418,14 +2418,14 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.3.0, @lerna-lite/cli@npm:^3.0.0": - version: 3.3.0 - resolution: "@lerna-lite/cli@npm:3.3.0" +"@lerna-lite/cli@npm:3.3.1, @lerna-lite/cli@npm:^3.0.0": + version: 3.3.1 + resolution: "@lerna-lite/cli@npm:3.3.1" dependencies: - "@lerna-lite/core": 3.3.0 - "@lerna-lite/init": 3.3.0 + "@lerna-lite/core": 3.3.1 + "@lerna-lite/init": 3.3.1 dedent: ^1.5.1 - dotenv: ^16.4.1 + dotenv: ^16.4.5 import-local: ^3.1.0 load-json-file: ^7.0.1 npmlog: ^7.0.1 @@ -2445,13 +2445,13 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 60cd5d035429e84afc40aef6742fb9ea214d9325b140559362b31e42f46bcf25219cda4042a71205121fb48cd8331762e49dca1d4f9f3e148981f144d0fe4786 + checksum: 29f2e5c9275054ebb2a8e8151145b3f57af043bc11c880fcf9e7d78bd55777a2d440dae930ec071edaa9db062be5a2196296da0c427f5feb46c2a51450755fd1 languageName: node linkType: hard -"@lerna-lite/core@npm:3.3.0": - version: 3.3.0 - resolution: "@lerna-lite/core@npm:3.3.0" +"@lerna-lite/core@npm:3.3.1": + version: 3.3.1 + resolution: "@lerna-lite/core@npm:3.3.1" dependencies: "@npmcli/run-script": ^7.0.4 chalk: ^5.3.0 @@ -2462,8 +2462,8 @@ __metadata: execa: ^8.0.1 fs-extra: ^11.2.0 glob-parent: ^6.0.2 - globby: ^14.0.0 - inquirer: ^9.2.14 + globby: ^14.0.1 + inquirer: ^9.2.15 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 @@ -2479,30 +2479,30 @@ __metadata: write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 write-pkg: ^6.0.1 - checksum: 4939cc51f712ee00630d499b62265ed05f7c5a193c03484b50674066cb3337547b83cfc61181cf51860dd2171db00ab3ba34831b00f8af11b2c1c5dc0272278f + checksum: 62fbddf7b39e7ae195f33572b4598d10056f1052ef22910722d2451e66a6aed7423d16ec5d467d18b0c94055ff9d6645a019546286ff0ffa777baf553260a15f languageName: node linkType: hard -"@lerna-lite/init@npm:3.3.0": - version: 3.3.0 - resolution: "@lerna-lite/init@npm:3.3.0" +"@lerna-lite/init@npm:3.3.1": + version: 3.3.1 + resolution: "@lerna-lite/init@npm:3.3.1" dependencies: - "@lerna-lite/core": 3.3.0 + "@lerna-lite/core": 3.3.1 fs-extra: ^11.2.0 p-map: ^7.0.1 write-json-file: ^5.0.0 - checksum: c23db113e0ca89bb5ce533ea65e5f27cd5b2f2ec5bf0dd37433a453695cda9a0ba6ccc9630a81df4a276ff4ab76d5571c7210e523c8cef2e4b0fde89b146bd93 + checksum: 844781e870b72790707d2a0f7287156bc8d8da61016ce8839129547983a22f639f690c61ea0567cf2d73aa21488b2ce2ee720b5f6aedd0995215628171aa3cf9 languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.3.0 - resolution: "@lerna-lite/publish@npm:3.3.0" + version: 3.3.1 + resolution: "@lerna-lite/publish@npm:3.3.1" dependencies: - "@lerna-lite/cli": 3.3.0 - "@lerna-lite/core": 3.3.0 - "@lerna-lite/version": 3.3.0 - "@npmcli/arborist": ^7.3.1 + "@lerna-lite/cli": 3.3.1 + "@lerna-lite/core": 3.3.1 + "@lerna-lite/version": 3.3.1 + "@npmcli/arborist": ^7.4.0 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 @@ -2525,16 +2525,16 @@ __metadata: ssri: ^10.0.5 tar: ^6.2.0 temp-dir: ^3.0.0 - checksum: 3fe1f90b7822aaa8af0e644f6885bfcd81ba9272f6d182c956cea4f2f8ca757bcf72022666e8dcd0b6071d142dd5ddd6ae933c626493de051bea0e899c4891be + checksum: f37bc890ed57269a0c5e75364372bec9eea6996882063e73f0c57ed0bc872b40c3ec9cd05e7524ee9539ce95129d49f1fa3a4112e68f6e40cd33c2aa76b3a57f languageName: node linkType: hard -"@lerna-lite/version@npm:3.3.0, @lerna-lite/version@npm:^3.0.0": - version: 3.3.0 - resolution: "@lerna-lite/version@npm:3.3.0" +"@lerna-lite/version@npm:3.3.1, @lerna-lite/version@npm:^3.0.0": + version: 3.3.1 + resolution: "@lerna-lite/version@npm:3.3.1" dependencies: - "@lerna-lite/cli": 3.3.0 - "@lerna-lite/core": 3.3.0 + "@lerna-lite/cli": 3.3.1 + "@lerna-lite/core": 3.3.1 "@octokit/plugin-enterprise-rest": ^6.0.1 "@octokit/rest": ^20.0.2 chalk: ^5.3.0 @@ -2548,7 +2548,7 @@ __metadata: get-stream: ^8.0.1 git-url-parse: ^14.0.0 graceful-fs: ^4.2.11 - is-stream: ^3.0.0 + is-stream: ^4.0.1 load-json-file: ^7.0.1 make-dir: ^4.0.0 minimatch: ^9.0.3 @@ -2565,7 +2565,7 @@ __metadata: temp-dir: ^3.0.0 uuid: ^9.0.1 write-json-file: ^5.0.0 - checksum: 480f5ae58b4d74fc10702fa877d8f75838110daae82d483ba2b02783b020c550b47f3f912a916d190e5f85735f0646ee76a989c51cc1e0b270ba1a60542adfe2 + checksum: 1abab1f32db9b47e75eb7b8a3a507f62044e61c8be988e30f7295f145b7cc963c86375fe3f24c3a9819f0f2d941d702cc65a05c7a2799bc8e32158c19d54131b languageName: node linkType: hard @@ -2618,9 +2618,9 @@ __metadata: languageName: node linkType: hard -"@npmcli/arborist@npm:^7.3.1": - version: 7.3.1 - resolution: "@npmcli/arborist@npm:7.3.1" +"@npmcli/arborist@npm:^7.4.0": + version: 7.4.0 + resolution: "@npmcli/arborist@npm:7.4.0" dependencies: "@isaacs/string-locale-compare": ^1.1.0 "@npmcli/fs": ^3.1.0 @@ -2630,7 +2630,7 @@ __metadata: "@npmcli/name-from-folder": ^2.0.0 "@npmcli/node-gyp": ^3.0.0 "@npmcli/package-json": ^5.0.0 - "@npmcli/query": ^3.0.1 + "@npmcli/query": ^3.1.0 "@npmcli/run-script": ^7.0.2 bin-links: ^4.0.1 cacache: ^18.0.0 @@ -2657,7 +2657,7 @@ __metadata: walk-up-path: ^3.0.1 bin: arborist: bin/index.js - checksum: 3fa39e73893be4fc7ec88259c8e8540f374cf1fe8b38715433e295f957812076c00b297ccda49565c030529e0f2fa6c90de401c922983c54a211c695f6c67694 + checksum: 9590c77e28c441a917c00de6422a73c74285e28d87f06fb36a36331d7fb969cb68ee04da16174c207c6587c4eaeedf12a50a7718493e4f3f5079b53520314976 languageName: node linkType: hard @@ -2760,12 +2760,12 @@ __metadata: languageName: node linkType: hard -"@npmcli/query@npm:^3.0.1": - version: 3.0.1 - resolution: "@npmcli/query@npm:3.0.1" +"@npmcli/query@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/query@npm:3.1.0" dependencies: postcss-selector-parser: ^6.0.10 - checksum: b169b9c9a37c5a6e68d61604c7e3175ebdefbc3a77a8981326eaa8fa89cf4044fc6a87bd0fdbe5d096eda2f765aff1477924b55f4e23f64b3143dd1d9004eead + checksum: 33c018bfcc6d64593e7969847d0442beab4e8a42b6c9f932237c9fd135c95ab55de5c4b5d5d66302dd9fc3c748bc4ead780d3595e5d586fedf9859ed6b5f2744 languageName: node linkType: hard @@ -6381,10 +6381,10 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.4.1": - version: 16.4.4 - resolution: "dotenv@npm:16.4.4" - checksum: fbe0355972634d8843e1804115885e94d70618cfc975eadca67e26b2d71eb46f0ed45c12c2b88fd88cd6b1476a151471227b13311127a3504d10060cc74ce2f7 +"dotenv@npm:^16.4.5": + version: 16.4.5 + resolution: "dotenv@npm:16.4.5" + checksum: 301a12c3d44fd49888b74eb9ccf9f07a1f5df43f489e7fcb89647a2edcd84c42d6bc349dc8df099cd18f07c35c7b04685c1a4f3e6a6a9e6b30f8d48c15b7f49c languageName: node linkType: hard @@ -7717,7 +7717,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^14.0.0": +"globby@npm:^14.0.1": version: 14.0.1 resolution: "globby@npm:14.0.1" dependencies: @@ -8095,9 +8095,9 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.2.14": - version: 9.2.14 - resolution: "inquirer@npm:9.2.14" +"inquirer@npm:^9.2.15": + version: 9.2.15 + resolution: "inquirer@npm:9.2.15" dependencies: "@ljharb/through": ^2.3.12 ansi-escapes: ^4.3.2 @@ -8114,7 +8114,7 @@ __metadata: string-width: ^4.2.3 strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 - checksum: a4e4d6eaa295dee1a4e658f51646a19644f7a747566fc445ca14ba4401dbbf1819edb6832d8b1f5c3fb2baa3d1bf26251ea33fe087ee45a7ae45381911443833 + checksum: 98e385ef2900a6071e6576ab9fbf0b04e908ed386aaae5163bd467d32dc80a76bcd33bd03d34cd35a93ce99e47cbd52d62ae48ace9bfb20aff4a45e9bc1323d3 languageName: node linkType: hard @@ -8417,6 +8417,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^4.0.1": + version: 4.0.1 + resolution: "is-stream@npm:4.0.1" + checksum: cbea3f1fc271b21ceb228819d0c12a0965a02b57f39423925f99530b4eb86935235f258f06310b67cd02b2d10b49e9a0998f5ececf110ab7d3760bae4055ad23 + languageName: node + linkType: hard + "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" From eaa46fee7efa4142ce19b74d966c5d83ebfeb7da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 04:05:38 +0000 Subject: [PATCH 058/471] chore(deps): update dependency vite to v5.1.5 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 86b221c96..2d597866f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13127,8 +13127,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.1.4 - resolution: "vite@npm:5.1.4" + version: 5.1.5 + resolution: "vite@npm:5.1.5" dependencies: esbuild: ^0.19.3 fsevents: ~2.3.3 @@ -13162,7 +13162,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: fb8b944c69fd738b412ad10471f01db01ed59b5d7fdf182b836b420b221a8bd5ada74d225a87aaa80cf8d2b693cc4a89ab7c291254a8b4e6faefd93843ebb9d3 + checksum: 14c079ebe508d55198a3b1ca528d13515c745d7ae279e4864e89110a1661a4cfa880d894c2d7dcf557f6ed3ffc17fa3abea9d9ea4b6f256f0cab99d16a3b385b languageName: node linkType: hard From c6e0082b99261bf98a1ffa7818541210eba6c143 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 04:06:10 +0000 Subject: [PATCH 059/471] chore(deps): update eslint to v7.1.1 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2d597866f..477e1725f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3938,14 +3938,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.1.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.1.0" + version: 7.1.1 + resolution: "@typescript-eslint/eslint-plugin@npm:7.1.1" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.1.0 - "@typescript-eslint/type-utils": 7.1.0 - "@typescript-eslint/utils": 7.1.0 - "@typescript-eslint/visitor-keys": 7.1.0 + "@typescript-eslint/scope-manager": 7.1.1 + "@typescript-eslint/type-utils": 7.1.1 + "@typescript-eslint/utils": 7.1.1 + "@typescript-eslint/visitor-keys": 7.1.1 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -3958,25 +3958,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 01d56d92560980fa8daaef2cb5b1e9b5231a766d6aa02697a87d079575399c90f3864e5d6032f889672329cece885faecf696683e380ce23a094fc6ef409572d + checksum: e439a09996dd1b2bc8a643d7a1c7aad09b744ee38f6d3a8d391a7a846a23eafd3b1513c73da363df62e756f8b3a27c569b12fcbedad0fc1f87c0af20fd53db8e languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.1.0 - resolution: "@typescript-eslint/parser@npm:7.1.0" + version: 7.1.1 + resolution: "@typescript-eslint/parser@npm:7.1.1" dependencies: - "@typescript-eslint/scope-manager": 7.1.0 - "@typescript-eslint/types": 7.1.0 - "@typescript-eslint/typescript-estree": 7.1.0 - "@typescript-eslint/visitor-keys": 7.1.0 + "@typescript-eslint/scope-manager": 7.1.1 + "@typescript-eslint/types": 7.1.1 + "@typescript-eslint/typescript-estree": 7.1.1 + "@typescript-eslint/visitor-keys": 7.1.1 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 3c518414a0ccb7b16c17dfcf9bffe9e6dae1fe19640e265ce1fb2d896ea072fdb7e498c4f12f8b1517a0869f9660e64c33447d0ef7b2ce856a1d0d6d49ce2749 + checksum: 9a8494a3ca517759e33c8a153779efe1331d86bcd4af5110d14c79e2507596265dd7cf113c9312fdf97832b60e76646dbabe9b87eb55b6616ba2a0c038b9fad1 languageName: node linkType: hard @@ -3990,22 +3990,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.1.0": - version: 7.1.0 - resolution: "@typescript-eslint/scope-manager@npm:7.1.0" +"@typescript-eslint/scope-manager@npm:7.1.1": + version: 7.1.1 + resolution: "@typescript-eslint/scope-manager@npm:7.1.1" dependencies: - "@typescript-eslint/types": 7.1.0 - "@typescript-eslint/visitor-keys": 7.1.0 - checksum: 737c010cb60eedb2824038995150146a2099b09d0194ee0e7a2b730f29603775eba54b5260731a26e1056c4cdcc1847b5ea505228e9c240b6e31e3ed4b7a1d75 + "@typescript-eslint/types": 7.1.1 + "@typescript-eslint/visitor-keys": 7.1.1 + checksum: 4f91bed41b14051335ec7f73bb2c8970018ba2c056dda3166a722d85a620a610643e7f703304c03106759d0a195ea1d9ff44edcc86feb2c62817ae3d06276c49 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.1.0": - version: 7.1.0 - resolution: "@typescript-eslint/type-utils@npm:7.1.0" +"@typescript-eslint/type-utils@npm:7.1.1": + version: 7.1.1 + resolution: "@typescript-eslint/type-utils@npm:7.1.1" dependencies: - "@typescript-eslint/typescript-estree": 7.1.0 - "@typescript-eslint/utils": 7.1.0 + "@typescript-eslint/typescript-estree": 7.1.1 + "@typescript-eslint/utils": 7.1.1 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4013,7 +4013,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 07c4261da12ac57a7f03064192e20bdc473074839057deb7a2d289ceb5f205f419fb5c753d81a2ed13493ae3cfe60d371348489a326474d9c4cb810c3dd96523 + checksum: d1afa5c5e4602495a545d0d32aca0bbf6963fb0cbf77e47b2a95883e96d35bd9d51e8eb8d51c7d5b7e4e6ed7a275970eb80ed566e25833c8b4517791df8e648a languageName: node linkType: hard @@ -4031,10 +4031,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.1.0": - version: 7.1.0 - resolution: "@typescript-eslint/types@npm:7.1.0" - checksum: ad1e95ee83e9af7569c61260e62e4f4a42c8b82c57c33880c24dba44d1ab6792f5063e71ddf5176a1846b97158caba456805271787785250a937bba0e3df06d0 +"@typescript-eslint/types@npm:7.1.1": + version: 7.1.1 + resolution: "@typescript-eslint/types@npm:7.1.1" + checksum: 42be2d881728d99ab50cb4133656d2f54770304a5dca83777a032b9ec20f6e11ca38db79d2b77b29b9cb41a052aa872f4ac2e37b61d40b438efe91e355ec798f languageName: node linkType: hard @@ -4056,12 +4056,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.1.0": - version: 7.1.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.1.0" +"@typescript-eslint/typescript-estree@npm:7.1.1": + version: 7.1.1 + resolution: "@typescript-eslint/typescript-estree@npm:7.1.1" dependencies: - "@typescript-eslint/types": 7.1.0 - "@typescript-eslint/visitor-keys": 7.1.0 + "@typescript-eslint/types": 7.1.1 + "@typescript-eslint/visitor-keys": 7.1.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4071,7 +4071,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: a4db9f2b5094f3fdeaa09ca93ffefe23a7cfab3924c870b7277d36d1f9e3e9e0bd4fb10d9a4bae75d4ce5c0d1a0193888742f080e7f43a9f1b6d105f05f570c0 + checksum: 19c62c792ff05ccea7e8c6054f55be7d2423695cb7ef84b955ee2b74d950e769b353100032467be71a436f3439ecba3b8709513581755e98e910ecb9d8198223 languageName: node linkType: hard @@ -4093,20 +4093,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.1.0": - version: 7.1.0 - resolution: "@typescript-eslint/utils@npm:7.1.0" +"@typescript-eslint/utils@npm:7.1.1": + version: 7.1.1 + resolution: "@typescript-eslint/utils@npm:7.1.1" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.1.0 - "@typescript-eslint/types": 7.1.0 - "@typescript-eslint/typescript-estree": 7.1.0 + "@typescript-eslint/scope-manager": 7.1.1 + "@typescript-eslint/types": 7.1.1 + "@typescript-eslint/typescript-estree": 7.1.1 semver: ^7.5.4 peerDependencies: eslint: ^8.56.0 - checksum: 9bf1be1fe7fad71412f5150d6ab74085b50da0f495e15a26f02239c9198a84b9376a827cbaa5ac0372ea914a5731168ac2e8a33190f0bbb84114aed27761959b + checksum: 76a499c28dec37effb3512a49e51e1d788e49647ab750fc8a0d16c3aae4b9fea83f1cd20b5bd0be6113eb6112a96e93ee3327ccfd5c80028526c3ce5a73b5027 languageName: node linkType: hard @@ -4148,13 +4148,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.1.0": - version: 7.1.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.1.0" +"@typescript-eslint/visitor-keys@npm:7.1.1": + version: 7.1.1 + resolution: "@typescript-eslint/visitor-keys@npm:7.1.1" dependencies: - "@typescript-eslint/types": 7.1.0 + "@typescript-eslint/types": 7.1.1 eslint-visitor-keys: ^3.4.1 - checksum: 7ddac02dde4e16960ca87f0c05e5c5176fef6203bbf39d217ae15f8db498c262677a5799a258960a8d6bbcbc2ffbb799841e32276d2867f1e2f88bd988606092 + checksum: fc98a8782ad9c5dbb0d6ed89baa89c37d3cb28ecc08fb013180bed4e5336e1d289ad3cdb1cd71b9c0abb7b624858258c0d68fe4db8911416b61f13ec7c553a47 languageName: node linkType: hard From 5522f41d4d497dc76e5cf9aa9f0ad3d6340ef231 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 04:06:26 +0000 Subject: [PATCH 060/471] chore(deps): update yarn to v3.8.1 --- .../{yarn-3.8.0.cjs => yarn-3.8.1.cjs} | 344 +++++++++--------- .yarnrc.yml | 2 +- package.json | 2 +- 3 files changed, 174 insertions(+), 174 deletions(-) rename .yarn/releases/{yarn-3.8.0.cjs => yarn-3.8.1.cjs} (87%) diff --git a/.yarn/releases/yarn-3.8.0.cjs b/.yarn/releases/yarn-3.8.1.cjs similarity index 87% rename from .yarn/releases/yarn-3.8.0.cjs rename to .yarn/releases/yarn-3.8.1.cjs index ff0891825..85d80bac8 100755 --- a/.yarn/releases/yarn-3.8.0.cjs +++ b/.yarn/releases/yarn-3.8.1.cjs @@ -1,24 +1,24 @@ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore -(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Tr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},Ir=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},br=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ +(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,xK)=>{xK.exports=PK;PK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,xS)=>{"use strict";var PS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(PS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(PS,"^$1"),e&&(r=r.replace(PS,"^$1")),r}xS.exports.command=mfe;xS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),bfe=iU(),Qfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Pfe(r){r.file=nU(r);let e=r.file&&bfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function xfe(r){if(!Qfe)return r;let e=Pfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:xfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Tr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},Ir=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},bp=function(C){return{type:"variable",...C,quoted:!1}},Qr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ `,Tn=Ue(`\\ -`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),An=function(C){return C},b="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},Wi="\\n",Ol=Ue("\\n",!1),ze=function(){return` -`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),ln=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Lr=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function cn(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};Rk&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=Sr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Sr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Sr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Tp(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=G(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Tr?(C=Tr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,T===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,T===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,T===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,T===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=Ir(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Nl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Nge(),Q!==t&&(E=C,Q=br(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Tl?(Q=Tl,f+=2):(Q=t,T===0&&Be(Tn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,T===0&&Be(Nt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,T===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(Q=j,f+=2):(Q=t,T===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===Wi?(Q=Wi,f+=2):(Q=t,T===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,T===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,T===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,T===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(Q=Ne,f+=2):(Q=t,T===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,T===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,T===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie));else le=t;le!==t?(E=C,Q=Gl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Np(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Yl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,T===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,T===0&&Be(N)),Qe!==t?(E=C,Q=Lr(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,T===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,T===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,T===0&&Be(Ea)),Q!==t?(R=Sr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,Q=T1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,T===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,Q,R;return C=f,Q=Tge(),Q!==t?(E=f,R=j1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=G1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;gH&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(P=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(P=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(P=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),An=function(C){return C},Q="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",Qp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,Pp=Ve(["E","e"],!1,!1),xp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},Wi="\\n",Ol=Ue("\\n",!1),ze=function(){return` +`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),ln=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),bA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,b,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(b.join("")+"."+R.join(""))}},UE=function(C,b){return{type:"number",value:(C==="-"?-1:1)*parseInt(b.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Lr=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),QA=function(C,b,R){return{type:b==="*"?"multiplication":"division",right:R}},D=function(C,b){return b.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,b,R){return{type:b==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),JQ=":-",R1=Ue(":-",!1),F1=function(C,b){return{name:C,defaultValue:b}},WQ=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zQ=":+",L1=Ue(":+",!1),O1=function(C,b){return{name:C,alternativeValue:b}},VQ=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},XQ=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},ZQ=/^[a-zA-Z0-9_]/,_Q=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,b){throw b=b!==void 0?b:ii(E,f),On([Ii(C)],r.substring(E,f),b)}function at(C,b){throw b=b!==void 0?b:ii(E,f),yi(C,b)}function Ue(C,b){return{type:"literal",text:C,ignoreCase:b}}function Ve(C,b,R){return{type:"class",parts:C,inverted:b,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function cn(C){var b=w[C],R;if(b)return b;for(R=C-1;!w[R];)R--;for(b=w[R],b={line:b.line,column:b.column};Rk&&(k=f,L=[]),L.push(C))}function yi(C,b){return new $l(C,null,null,b)}function On(C,b,R){return new $l($l.buildMessage(C,b),C,b,R)}function Ia(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=Sr(),R===t&&(R=null),R!==t?(E=C,b=s(R),C=b):(f=C,C=t)):(f=C,C=t),C}function Sr(){var C,b,R,U,le;if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,b=o(b,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,b=a(b,U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=Sr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=l(R),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,b,R;return C=f,b=q1(),b!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,b=p(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=d(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,b,R;return C=f,b=Bge(),b!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,b=x(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=F(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,b,R,U,le,be;if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(E=C,b=A(b,U),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ne(b),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,b,R,U,le,be,ft,It,Gr,fi,os;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=ce(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(xe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=se(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],be=W1(),be!==t)for(;be!==t;)le.push(be),be=W1();else le=t;if(le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=Ae(R,le),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ye(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ge(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t?(R=Tp(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();b!==t?(R=qE(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=bge(),U!==t?(le=qE(),le!==t?(E=C,b=G(R,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function bge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Tr?(C=Tr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=z1(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,b,R;if(C=f,b=[],R=V1(),R!==t)for(;R!==t;)b.push(R),R=V1();else b=t;return b!==t&&(E=C,b=Ms(b)),C=b,C}function V1(){var C,b;return C=f,b=Qge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=Sge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=vge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=Pge(),b!==t&&(E=C,b=fr(b)),C=b))),C}function Qge(){var C,b,R,U;return C=f,r.substr(f,2)===Ei?(b=Ei,f+=2):(b=t,T===0&&Be(rs)),b!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,b,R,U;return C=f,r.charCodeAt(f)===39?(b=ua,f++):(b=t,T===0&&Be(CA)),b!==t?(R=xge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,b,R,U;if(C=f,r.substr(f,2)===is?(b=is,f+=2):(b=t,T===0&&Be(mA)),b!==t&&(E=C,b=ga()),C=b,C===t)if(C=f,r.charCodeAt(f)===34?(b=wp,f++):(b=t,T===0&&Be(EA)),b!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,b=IA(R),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function Pge(){var C,b,R;if(C=f,b=[],R=Z1(),R!==t)for(;R!==t;)b.push(R),R=Z1();else b=t;return b!==t&&(E=C,b=IA(b)),C=b,C}function X1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=Ir(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Nl(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=fg(b)),C=b,C===t&&(C=f,b=kge(),b!==t&&(E=C,b=Io(b)),C=b))),C}function Z1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=hg(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Bp(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=bp(b)),C=b,C===t&&(C=f,b=Nge(),b!==t&&(E=C,b=Qr(b)),C=b,C===t&&(C=f,b=Fge(),b!==t&&(E=C,b=Io(b)),C=b)))),C}function xge(){var C,b,R;for(C=f,b=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)b.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return b!==t&&(E=C,b=Nn(b)),C=b,C}function kge(){var C,b,R;if(C=f,b=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)b.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function _1(){var C,b,R;return C=f,r.substr(f,2)===Tl?(b=Tl,f+=2):(b=t,T===0&&Be(Tn)),b!==t&&(E=C,b=ns()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,b=An(R),C=b):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,b,R;for(C=f,b=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)b.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return b!==t&&(E=C,b=Nn(b)),C=b,C}function $1(){var C,b,R;return C=f,r.substr(f,2)===Q?(b=Q,f+=2):(b=t,T===0&&Be(Nt)),b!==t&&(E=C,b=pg()),C=b,C===t&&(C=f,r.substr(f,2)===Ll?(b=Ll,f+=2):(b=t,T===0&&Be(Qp)),b!==t&&(E=C,b=Sp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(Pp)),R!==t?(E=C,b=xp(),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(b=j,f+=2):(b=t,T===0&&Be(Et)),b!==t&&(E=C,b=yA()),C=b,C===t&&(C=f,r.substr(f,2)===Wi?(b=Wi,f+=2):(b=t,T===0&&Be(Ol)),b!==t&&(E=C,b=ze()),C=b,C===t&&(C=f,r.substr(f,2)===fa?(b=fa,f+=2):(b=t,T===0&&Be(dg)),b!==t&&(E=C,b=OE()),C=b,C===t&&(C=f,r.substr(f,2)===kp?(b=kp,f+=2):(b=t,T===0&&Be(ME)),b!==t&&(E=C,b=sr()),C=b,C===t&&(C=f,r.substr(f,2)===Ln?(b=Ln,f+=2):(b=t,T===0&&Be(Ml)),b!==t&&(E=C,b=Dp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,b=An(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,b,R,U,le,be,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(R=nS(),R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(b=Ne,f+=2):(b=t,T===0&&Be(Cg)),b!==t?(R=f,U=f,le=nS(),le!==t?(be=Mn(),be!==t?(le=[le,be],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(b=Kl,f+=2):(b=t,T===0&&Be(Us)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,be,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(b=Ul,f+=2):(b=t,T===0&&Be(wA)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,be,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=mg(R),C=b):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,b,R,U,le;if(C=f,b=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)b.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function sS(){var C,b,R,U,le,be;if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie)),be!==t)for(;be!==t;)le.push(be),Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie));else le=t;le!==t?(E=C,b=Gl(b,R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,b=UE(b,R),C=b):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,b=aS(),b!==t&&(E=C,b=Np(b)),C=b,C===t&&(C=f,b=Wl(),b!==t&&(E=C,b=Yl(b)),C=b,C===t)))if(C=f,r.charCodeAt(f)===40?(b=ue,f++):(b=t,T===0&&Be(te)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.charCodeAt(f)===41?(be=O,f++):(be=t,T===0&&Be(N)),be!==t?(E=C,b=Lr(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,b,R,U,le,be,ft,It;if(C=f,b=sS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,b,R,U,le,be,ft,It;if(C=f,b=oS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,b,R,U,le,be;if(C=f,r.substr(f,3)===pe?(b=pe,f+=3):(b=t,T===0&&Be(Le)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.substr(f,2)===ke?(be=ke,f+=2):(be=t,T===0&&Be(Je)),be!==t?(E=C,b=pt(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,b,R,U;return C=f,r.substr(f,2)===Xt?(b=Xt,f+=2):(b=t,T===0&&Be(Ea)),b!==t?(R=Sr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,b=D1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,b,R,U,le,be;return C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===JQ?(U=JQ,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=F1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===WQ?(U=WQ,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,b=T1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===zQ?(U=zQ,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=O1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===VQ?(U=VQ,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,b=K1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(b=U1,f++):(b=t,T===0&&Be(H1)),b!==t?(R=Wl(),R!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,b,R;return C=f,b=Tge(),b!==t?(E=f,R=j1(b),R?R=void 0:R=t,R!==t?(E=C,b=G1(b),C=b):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,b,R,U,le;if(C=f,b=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)b.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t);else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function iK(){var C,b,R;if(C=f,b=[],ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q)),R!==t)for(;R!==t;)b.push(R),ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function Wl(){var C,b,R;if(C=f,b=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)b.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,b;if(C=[],Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg)),b!==t)for(;b!==t;)C.push(b),Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;gH&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(x=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(x=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(x=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(x=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(x=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(x=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(x=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(x=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var QU=I((LZe,bU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BU.repeat(" ",e)+i+a+s+` `+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};QU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Ng(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Qa.repeat(` -`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),fn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function bpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,xU)=>{"use strict";var PU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var bhe=nc();JU.exports=new bhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var Qhe=nc();WU.exports=new Qhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function Phe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function xhe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:Phe,instanceOf:Date,represent:xhe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var ba=ic(),Q2=Ng(),gpe=QU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,P2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,x2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new Q2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],x2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function xA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=ba.repeat(` +`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),fn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(xA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return xA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function bpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(xA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(xA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function Qpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return xA(r,t,r.position,!0),r.position++,!0;if(a===92){if(xA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(xA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndente)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),T2(r,e,Qa.extend({schema:S2},t))}function Npe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;ne)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),T2(r,e,ba.extend({schema:S2},t))}function Npe(r,e){return L2(r,ba.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` @@ -33,24 +33,24 @@ `+r.slice(n,s),n=s+1),o=a;return l+=` `,r.length-n>e&&o>n?l+=r.slice(n,o)+` `+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Dr.exports.Type=ni();Dr.exports.Schema=nc();Dr.exports.FAILSAFE_SCHEMA=dI();Dr.exports.JSON_SCHEMA=GS();Dr.exports.CORE_SCHEMA=YS();Dr.exports.DEFAULT_SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_FULL_SCHEMA=Zp();Dr.exports.load=BI.load;Dr.exports.loadAll=BI.loadAll;Dr.exports.safeLoad=BI.safeLoad;Dr.exports.safeLoadAll=BI.safeLoadAll;Dr.exports.dump=aH.dump;Dr.exports.safeDump=aH.safeDump;Dr.exports.YAMLException=Ng();Dr.exports.MINIMAL_SCHEMA=dI();Dr.exports.SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_SCHEMA=Zp();Dr.exports.scan=QI("scan");Dr.exports.parse=QI("parse");Dr.exports.compose=QI("compose");Dr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",` +`:""}function hde(r,e){return sH(r,ed.extend({schema:Lpe},e))}_S.exports.dump=sH;_S.exports.safeDump=hde});var AH=I((c_e,Dr)=>{"use strict";var BI=O2(),aH=oH();function bI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Dr.exports.Type=ni();Dr.exports.Schema=nc();Dr.exports.FAILSAFE_SCHEMA=dI();Dr.exports.JSON_SCHEMA=GS();Dr.exports.CORE_SCHEMA=YS();Dr.exports.DEFAULT_SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_FULL_SCHEMA=Zp();Dr.exports.load=BI.load;Dr.exports.loadAll=BI.loadAll;Dr.exports.safeLoad=BI.safeLoad;Dr.exports.safeLoadAll=BI.safeLoadAll;Dr.exports.dump=aH.dump;Dr.exports.safeDump=aH.safeDump;Dr.exports.YAMLException=Ng();Dr.exports.MINIMAL_SCHEMA=dI();Dr.exports.SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_SCHEMA=Zp();Dr.exports.scan=bI("scan");Dr.exports.parse=bI("parse");Dr.exports.compose=bI("compose");Dr.exports.addConstructor=bI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===QA*Ig},A=function(D){return D.length===(QA+1)*Ig},ne=function(){return QA++,!0},ue=function(){return QA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,xe=Ln(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",` -`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Tr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),Ir=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` -`},br="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,An=Ln([" "," "],!1,!1),b=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` +`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Tr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),Ir=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),bp=function(){return` +`},Qr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,An=Ln([" "," "],!1,!1),Q=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` `,"\r"],!1,!1),Ll=`\r -`,bp=sr(`\r +`,Qp=sr(`\r `,!1),Sp=` `,vp=sr(` -`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],Wi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return ln(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};peWi&&(Wi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Lr(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Lr(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Lr(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Lr(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Lr(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Lr(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=QA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=QA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function QA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Tr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=Ir()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=Qp()),D=Y,D===t&&(D=j,r.substr(j,2)===br?(Y=br,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Lr(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(b)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(bp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Ne(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var hn={};ct(hn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Xi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Xi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aBt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sBt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&tBt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rtj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((b$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var Qj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,bj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bj.exports=VCe});var xj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),Qme=GI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=bme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Mr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Mr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Mr("comp",r,e),r=Gme(r,e),Mr("caret",r),r=Hme(r,e),Mr("tildes",r),r=qme(r,e),Mr("xrange",r),r=Wme(r,e),Mr("stars",r),r),_i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Mr("tilde",r,i,n,s,o,a);let l;return _i(n)?l="":_i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:_i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Mr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Mr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Mr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Mr("caret",r,n,s,o,a,l);let c;return _i(s)?c="":_i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:_i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Mr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Mr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Mr("caret return",c),c})},qme=(r,e)=>(Mr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Mr("xRange",r,i,n,s,o,a,l);let c=_i(s),u=c||_i(o),g=u||_i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Mr("xRange return",i),i})},Wme=(r,e)=>(Mr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Mr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>(_i(i)?t="":_i(n)?t=`>=${i}.0.0${r?"-0":""}`:_i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,_i(c)?l="":_i(u)?l=`<${+c+1}.0.0-0`:_i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),Qv=mv(),bv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),QG=Cd(),bG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=QG,s=dEe,o=bG,a=">",l=">=";break;case"<":n=bG,s=CEe,o=QG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var PG=I((aet,xG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var QEe=wd(),bEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var Pv=fc();jG.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:Qj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:PG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`,!1),Pp="\r",xp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],Wi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return ln(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};peWi&&(Wi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Lr(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Lr(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Lr(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=x(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=x(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Lr(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Lr(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Lr(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=bA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=bA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function bA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(xe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(xe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Tr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=Ir()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=bp()),D=Y,D===t&&(D=j,r.substr(j,2)===Qr?(Y=Qr,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Lr(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(Q)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(Qp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=Pp,j++):(D=t,ze===0&&Ne(xp)))),D}let Ig=2,QA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),Po=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!Po[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in Po&&Po[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!Po[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(Po.CI||Po.CONTINUOUS_INTEGRATION||Po.BUILD_NUMBER||Po.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!Po[r]:Object.keys(r).every(function(e){return Po[e]===r[e]})}});var hn={};ct(hn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>QH,colorStringRegExp:()=>bH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>xde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>Pde,isDict:()=>Dde,isEnum:()=>Xi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>bde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>xH,makeTrait:()=>PH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return PH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function xH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function bde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Xi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,bH,QH,SH,vH,ov,PH,kH,od,Qde,Sde,vde,Pde,xde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,bH=/^#[0-9a-f]{6}$/i,QH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,PH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});Qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=Qde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),Pde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),xde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aBt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:xH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sBt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&tBt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?bH.test(e):QH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var bCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=bCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),QCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,bt=(r,e,t)=>{let i=vCe++;QCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};bt("NUMERICIDENTIFIER","0|[1-9]\\d*");bt("NUMERICIDENTIFIERLOOSE","[0-9]+");bt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");bt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);bt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);bt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);bt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);bt("BUILDIDENTIFIER","[0-9A-Za-z-]+");bt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);bt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);bt("FULL",`^${$e[et.FULLPLAIN]}$`);bt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);bt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);bt("GTLT","((?:<|>)?=?)");bt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);bt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);bt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);bt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);bt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);bt("COERCERTL",$e[et.COERCE],!0);bt("LONETILDE","(?:~>?)");bt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";bt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);bt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("LONECARET","(?:\\^)");bt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";bt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);bt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);bt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);bt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";bt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);bt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);bt("STAR","(<|>)?=?\\s*\\*");bt("GTE0","^\\s*>=\\s*0.0.0\\s*$");bt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var PCe=["includePrerelease","loose","rtl"],xCe=r=>r?typeof r!="object"?{loose:!0}:PCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=xCe});var LI=I((b$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rtj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((Q$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((P$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((x$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var bj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,Qj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;Qj.exports=VCe});var Pj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,xj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};xj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),bme=GI(),Qme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return bme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=Qme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),Pme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=Pme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Rme=JI(),dc=Symbol("max"),Pa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[Pa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[Pa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[Pa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[Pa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Pa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[Pa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[Pa]>r[dc])for(let e=r[pi].tail;r[Pa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[Pa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[Qi.HYPHENRANGELOOSE]:Oi[Qi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Mr("hyphen replace",e),e=e.replace(Oi[Qi.COMPARATORTRIM],Lme),Mr("comparator trim",e,Oi[Qi.COMPARATORTRIM]),e=e.replace(Oi[Qi.TILDETRIM],Ome),e=e.replace(Oi[Qi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[Qi.COMPARATORLOOSE]:Oi[Qi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Mr("comp",r,e),r=Gme(r,e),Mr("caret",r),r=Hme(r,e),Mr("tildes",r),r=qme(r,e),Mr("xrange",r),r=Wme(r,e),Mr("stars",r),r),_i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[Qi.TILDELOOSE]:Oi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Mr("tilde",r,i,n,s,o,a);let l;return _i(n)?l="":_i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:_i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Mr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Mr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Mr("caret",r,e);let t=e.loose?Oi[Qi.CARETLOOSE]:Oi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Mr("caret",r,n,s,o,a,l);let c;return _i(s)?c="":_i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:_i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Mr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Mr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Mr("caret return",c),c})},qme=(r,e)=>(Mr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[Qi.XRANGELOOSE]:Oi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Mr("xRange",r,i,n,s,o,a,l);let c=_i(s),u=c||_i(o),g=u||_i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Mr("xRange return",i),i})},Wme=(r,e)=>(Mr("replaceStars",r,e),r.trim().replace(Oi[Qi.STAR],"")),zme=(r,e)=>(Mr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>(_i(i)?t="":_i(n)?t=`>=${i}.0.0${r?"-0":""}`:_i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,_i(c)?l="":_i(u)?l=`<${+c+1}.0.0-0`:_i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),bv=mv(),Qv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),bG=Cd(),QG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=bG,s=dEe,o=QG,a=">",l=">=";break;case"<":n=QG,s=CEe,o=bG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var xG=I((aet,PG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);PG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var bEe=wd(),QEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>QEe(u,g,t));for(let u of o)bEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),Pv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=Pv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=Pv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=Pv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var xv=fc();jG.exports={re:xv.re,src:xv.src,tokens:xv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:bj(),minor:Sj(),patch:Pj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:xG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` `),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(` `);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),P=S.type==="Character";if(P){if(S.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var h=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(Cn=>{"use strict";var REe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),Pa=Rv(),WG="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var PEe=_I(),$I={},xEe=new PEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=xEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(Cn=>{"use strict";var REe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),xa=Rv(),WG="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: `;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > `)+` Complement Sets cannot be automatically optimized. This will disable the lexer's first char optimizations. @@ -59,11 +59,11 @@ See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+` `+(" Failed parsing: < "+r.toString()+` > `)+(" Using the regexp-to-ast library version: "+qG.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}Cn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=Qd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(P):Nv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=xa.minOptimizationVal)for(var h=u.from>=xa.minOptimizationVal?u.from:xa.minOptimizationVal,p=u.to,d=(0,xa.charCodeToOptimizedIndex)(h),m=(0,xa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}Cn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,xa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,xa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,xa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=bd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(S,x){return x()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var x=S[ko];if((0,Se.isRegExp)(x)){var F=x.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!x.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(x):Nv(x)}else{if((0,Se.isFunction)(x))return n=!0,{exec:x};if((0,Se.has)(x,"exec"))return n=!0,x;if(typeof x=="string"){if(x.length===1)return x;var H=x.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var x=S.GROUP;if(x!==tr.Lexer.SKIPPED){if((0,Se.isString)(x))return x;if((0,Se.isUndefined)(x))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var x=S.LONGER_ALT;if(x){var F=(0,Se.isArray)(x)?(0,Se.map)(x,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,x)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(x){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(x){if((0,Se.has)(x,"LINE_BREAKS"))return x.LINE_BREAKS;if(lY(x,S)===!1)return(0,Zg.canMatchCharCode)(S,x.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,x){var F=x.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,x){return{pattern:s[x],longerAlt:l[x],canLineTerminator:g[x],isCustom:h[x],short:p[x],group:a[x],push:c[x],pop:u[x],tokenTypeIdx:o[x],tokenType:i[x]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,x,F){if(typeof x.PATTERN=="string"){var H=x.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(x.START_CHARS_HINT)){var _;(0,Se.forEach)(x.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(x.PATTERN))if(x.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+x.PATTERN.toString()+` > pattern. `)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.name+`> is using a custom token pattern without providing parameter. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(x.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+x.name+`> is using a custom token pattern without providing parameter. `)+` This will disable the lexer's first char optimizations. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' @@ -84,17 +84,17 @@ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e. `)+(" Root cause: "+e.errMsg+`. `)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. `+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Qd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var bd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var Qd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Qd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=Qd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(Qd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Qd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Qd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,rr.isArray)(e)?(s={modes:{}},s.modes[Zs.DEFAULT_MODE]=(0,rr.cloneArr)(e),s[Zs.DEFAULT_MODE]=Zs.DEFAULT_MODE):(o=!1,s=(0,rr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,rr.forEach)(s.modes,function(u,g){s.modes[g]=(0,rr.reject)(u,function(h){return(0,rr.isUndefined)(h)})});var a=(0,rr.keys)(s.modes);if((0,rr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.validatePatterns)(u,a))}),(0,rr.isEmpty)(i.lexerDefinitionErrors)){(0,eIe.augmentTokenTypes)(u);var h;i.TRACE_INIT("analyzeTokenTypes",function(){h=(0,Zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=h.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=h.charCodeToPatternIdxToConfig,i.emptyGroups=(0,rr.merge)(i.emptyGroups,h.emptyGroups),i.hasCustom=h.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=h.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,rr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,rr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- `);throw new Error(`Errors detected in definition of Lexer: `+c)}(0,rr.forEach)(i.lexerDefinitionWarning,function(u){(0,rr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Zs.SUPPORT_STICKY?(i.chopInput=rr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=rr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=rr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=rr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=rr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,rr.reduce)(i.canModeBeOptimized,function(g,h,p){return h===!1&&g.push(p),g},[]);if(t.ensureOptimizations&&!(0,rr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;qc.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Tr=void 0,ti=void 0;O.lastIndex=0;do Tr=O.test(c),Tr===!0&&(ti=O.lastIndex-1,mt++);while(Tr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",QY="longer_alt",bY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,QY)&&(t.LONGER_ALT=r[QY]),(0,_s.has)(r,bY)&&(t.LINE_BREAKS=r[bY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var mn=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),En=mn(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=mn(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),wr=mn(),CIe=$g();function mIe(r){return r instanceof wr.Alternative||r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionMandatory||r instanceof wr.RepetitionMandatoryWithSeparator||r instanceof wr.RepetitionWithSeparator||r instanceof wr.Terminal||r instanceof wr.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionWithSeparator;return t?!0:r instanceof wr.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof wr.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof wr.AbstractProduction?(r instanceof wr.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof wr.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof wr.NonTerminal)return"SUBRULE";if(r instanceof wr.Option)return"OPTION";if(r instanceof wr.Alternation)return"OR";if(r instanceof wr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof wr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof wr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof wr.Repetition)return"MANY";if(r instanceof wr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=mn(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),YY=Kt(),qY=Jv(),bIe=mn(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),xIe=Kt(),$s=Kt(),Wv=mn(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,x,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],xe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(xe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{xe.pop();var rs=(0,rr.last)(xe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){xe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;qc.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Tr=void 0,ti=void 0;O.lastIndex=0;do Tr=O.test(c),Tr===!0&&(ti=O.lastIndex-1,mt++);while(Tr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=bd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",bY="longer_alt",QY="line_breaks",SY="start_chars_hint";function PY(r){return lIe(r)}Si.createToken=PY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,bY)&&(t.LONGER_ALT=r[bY]),(0,_s.has)(r,QY)&&(t.LINE_BREAKS=r[QY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=PY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var mn=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var xY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=xY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof xY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),En=mn(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=mn(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var Pd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),wr=mn(),CIe=$g();function mIe(r){return r instanceof wr.Alternative||r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionMandatory||r instanceof wr.RepetitionMandatoryWithSeparator||r instanceof wr.RepetitionWithSeparator||r instanceof wr.Terminal||r instanceof wr.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionWithSeparator;return t?!0:r instanceof wr.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof wr.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof wr.AbstractProduction?(r instanceof wr.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof wr.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof wr.NonTerminal)return"SUBRULE";if(r instanceof wr.Option)return"OPTION";if(r instanceof wr.Alternation)return"OR";if(r instanceof wr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof wr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof wr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof wr.Repetition)return"MANY";if(r instanceof wr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=mn(),Yv=Pd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),bIe=qv(),YY=Kt(),qY=Jv(),QIe=mn(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new QIe.Alternative({definition:o}),l=(0,bIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var xd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),PIe=Kt(),$s=Kt(),Wv=mn(),VY=Pd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` but found: '`+a+"'";if(n)return o+n+l;var c=(0,$s.reduce)(e,function(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences: `+g.join(` `);return o+h+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,$s.first)(t).image,a=` @@ -119,32 +119,32 @@ For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,VY.getPr This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. `)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: `+(" inside <"+r.topLevelRule.name+`> Rule. - has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=xIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=PIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. `+("rule: <"+e+`> can be invoked from itself (directly or indirectly) `)+(`without consuming any Tokens. The grammar path that causes this is: `+i+` `)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var PIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Rr=>{"use strict";var Ic=Rr&&Rr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Rr,"__esModule",{value:!0});Rr.nextPossibleTokensAfter=Rr.possiblePathsFrom=Rr.NextTerminalAfterAtLeastOneSepWalker=Rr.NextTerminalAfterAtLeastOneWalker=Rr.NextTerminalAfterManySepWalker=Rr.NextTerminalAfterManyWalker=Rr.AbstractNextTerminalAfterProductionWalker=Rr.NextAfterTokenWalker=Rr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=mn(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Rr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Rr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Rr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Rr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=mn(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Br=Kt(),No=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=mn(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Br.every)(o,Br.isEmpty)&&(a=(0,Br.map)(r,function(p){return fq(p,i)}),l=(0,Br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Br.map)(r,function(p){return dq(p,i)}),h=(0,Br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Br.isEmpty)((0,Br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Br.forEach)(l,function(u){var g=[c];(0,Br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(o,a,l){var c=(0,Br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(In=>{"use strict";var Nd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}In.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);In.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);In.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);In.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);In.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n: +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var xIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){xIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Rr=>{"use strict";var Ic=Rr&&Rr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Rr,"__esModule",{value:!0});Rr.nextPossibleTokensAfter=Rr.possiblePathsFrom=Rr.NextTerminalAfterAtLeastOneSepWalker=Rr.NextTerminalAfterAtLeastOneWalker=Rr.NextTerminalAfterManySepWalker=Rr.NextTerminalAfterManyWalker=Rr.AbstractNextTerminalAfterProductionWalker=Rr.NextAfterTokenWalker=Rr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=mn(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Rr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Rr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Rr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Rr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=mn(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(x){return x.GATE}),u=0;u{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Br=Kt(),No=Yn(),_v=Pd(),tf=Rd(),ZIe=Dd(),eo=mn(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return eP(p,p,i)}),a=[],l=[],c=[];(0,Br.every)(o,Br.isEmpty)&&(a=(0,Br.map)(r,function(p){return fq(p,i)}),l=(0,Br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Br.map)(r,function(p){return dq(p,i)}),h=(0,Br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function eP(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),eP(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=eP;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tP=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tP;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tP;r.accept(i);var n=i.alternations;n=(0,Br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tP;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Br.isEmpty)((0,Br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Br.forEach)(l,function(u){var g=[c];(0,Br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(o,a,l){var c=(0,Br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var iP=Kt(),iye=_Y(),nye=rP(),Eq=xd();function sye(r){r=(0,iP.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,iP.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,iP.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(In=>{"use strict";var Nd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",bq="NotAllInputParsedException",Qq=[yq,wq,Bq,bq];Object.freeze(Qq);function Aye(r){return(0,aye.contains)(Qq,r.name)}In.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);In.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);In.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=bq,n}return e}(hy);In.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);In.EarlyExitException=gye});var sP=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nP(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nP;nP.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nP("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=Pd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var xq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function bye(r){return Dq(r.constructor)}OA.classNameFromInstance=bye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function Qye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=Qye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=oP();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n: `+(""+s.join(` `).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var xye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var aP;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(aP=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:aP.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var Pye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(Pye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor There is no Grammar Rule corresponding to this method's name. -`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Nye=rx(),Tye=mn(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var xr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=NA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,xr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. +`,type:aP.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=xq(),Xr=Kt(),Oq=Lq(),xye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:xye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),AP=Yn(),Fye=xd(),Nye=rP(),Tye=mn(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=AP.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:AP.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=AP.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sP(),qq=NA(),Ld=_g(),Mye=oP(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,xr.isArray)(e)){if((0,xr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. Note that the first argument for the parser constructor is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,xr.isArray)(e))this.tokensMap=(0,xr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,xr.has)(e,"modes")&&(0,xr.every)((0,xr.flatten)((0,xr.values)(e.modes)),Ld.isTokenType)){var i=(0,xr.flatten)((0,xr.values)(e.modes)),n=(0,xr.uniq)(i);this.tokensMap=(0,xr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,xr.isObject)(e))this.tokensMap=(0,xr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,xr.every)((0,xr.values)(e),function(o){return(0,xr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,xr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,xr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,xr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,xr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,xr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var yn=Kt(),Lo=mn(),Gye=Qd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lP=nf(),cP=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cP.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lP.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cP.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cP.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lP.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lP.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();by.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var yn=Kt(),Lo=mn(),Gye=bd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Yye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var $i=Kt(),_ye=zY(),lJ=NA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,$i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Qy(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(Qy(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),Qy(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;Qy(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function Qy(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();Py.PerformanceTracer=Xye});var AJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}xy.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var $i=Kt(),_ye=zY(),lJ=NA(),gJ=xd(),cJ=Iq(),$ye=sP(),ewe=Pq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,$i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. Please use the flag on the relevant DSL method instead. See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES For further details.`);this.skipValidations=(0,$i.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,$i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,$i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,$i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,$i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,$i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,$i.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,$i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,$i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,$i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,$i.isEmpty)(e.definitionErrors))throw t=(0,$i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: @@ -178,62 +178,62 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis var diagramsDiv = document.getElementById("diagrams"); main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv); <\/script> -`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=mn();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=mn();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. +`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=bd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=xd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=mn();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=mn();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. It performs no action other than printing this message. Please avoid using it as it will be completely removed in the future`)}qe.clearCache=Ewe;var Iwe=hJ();Object.defineProperty(qe,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Iwe.createSyntaxDiagramsCode}});var ywe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:ux.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,bJ)=>{var Kd=BJ(),QJ={};for(let r of Object.keys(Kd))QJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};bJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function Qwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=QJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=Qwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ty=gx();function bwe(){let r={},e=Object.keys(Ty);for(let t=e.length,i=0;i{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var TJ=I((Att,NJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(NJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Nwe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Nwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Twe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Twe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,uP=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:uP.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:uP.SKIPPED}),t,i,n,o,a,s,e,l],g=new uP(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),x=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||x(F):mJ(S,i)?y=F=>!!(B(F)^x(F)):y=F=>B(F)&&x(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gP=I((stt,QJ)=>{var Kd=BJ(),bJ={};for(let r of Object.keys(Kd))bJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};QJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function bwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=bJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=bwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ty=gP();function Qwe(){let r={},e=Object.keys(Ty);for(let t=e.length,i=0;i{var fP=gP(),xwe=vJ(),Af={},kwe=Object.keys(fP);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fP[r].channels}),Object.defineProperty(Af[r],"labels",{value:fP[r].labels});let e=xwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});PJ.exports=Af});var TJ=I((Att,NJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hP,cf=(r,e,t,i)=>{hP===void 0&&(hP=xJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hP)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(NJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Nwe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function pP(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dP(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Nwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Twe(r){let e=dP(r,r&&r.isTTY);return pP(e)}KJ.exports={supportsColor:Twe,stdout:pP(dP(!0,MJ.isatty(1))),stderr:pP(dP(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r `:` `)+t,n=i+1,i=r.indexOf(` `,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),Qx=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),bx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=bx(a)||bx(l)||bx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&Qx(r))return[r];if(!Qx(r)||!Qx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var Q3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";b3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Ta}{1,2}${xx}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Ta}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(wn=>{"use strict";var GBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Gd();wn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);wn.hasRegexChars=r=>WBe.test(r);wn.isRegexChar=r=>r.length===1&&wn.hasRegexChars(r);wn.escapeRegex=r=>r.replace(zBe,"\\$1");wn.toPosixSlashes=r=>r.replace(qBe,"/");wn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);wn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};wn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||GBe.sep==="\\";wn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?wn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};wn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};wn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Nx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Gd(),G3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&G3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let N={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(N.maxDepth=0,G3(X)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he{"use strict";var Gy=Gd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Gy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Tx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Gy.globChars(l),u=Gy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=G=>`(${a}(?:(?!${q}${G.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,N,ce=()=>A.index===n-1,he=A.peek=(G=1)=>r[A.index+G],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(G="",fe=0)=>{A.consumed+=G,A.index+=fe},se=G=>{A.output+=G.output!=null?G.output:G.value,Re(G.value)},Ae=()=>{let G=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,G++;return G%2===0?!1:(A.negated=!0,A.start++,!0)},ye=G=>{A[G]++,te.push(G)},ge=G=>{A[G]--,te.pop()},oe=G=>{if(O.type==="globstar"){let fe=A.braces>0&&(G.type==="comma"||G.type==="brace"),re=G.extglob===!0||ne.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&G.type!=="paren"&&(ne[ne.length-1].inner+=G.value),(G.value||G.output)&&se(G),O&&O.type==="text"&&G.type==="text"){O.value+=G.value,O.output=(O.output||"")+G.value;return}G.prev=O,o.push(G),O=G},Ye=(G,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:G,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=G=>{let fe=G.close+(t.capture?")":""),re;if(G.type==="negate"){let de=Z;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=G.close=`)$))${de}`),G.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Tx(re,{...e,fastpaths:!1}).output;fe=G.close=`)${Ze})${de})`}G.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:N,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let G=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Tr)=>vt==="\\"?(G=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Tr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return G===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(N=Pe(),N==="\0")continue;if(N==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){N+="\\",oe({type:"text",value:N});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(N+="\\")),t.unescape===!0?N=Pe():N+=Pe(),A.brackets===0){oe({type:"text",value:N});continue}}if(A.brackets>0&&(N!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&N===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(N==="["&&he()!==":"||N==="-"&&he()==="]")&&(N=`\\${N}`),N==="]"&&(O.value==="["||O.value==="[^")&&(N=`\\${N}`),t.posix===!0&&N==="!"&&O.value==="["&&(N="^"),O.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='"'){N=Wn.escapeRegex(N),O.value+=N,se({value:N});continue}if(N==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:N});continue}if(N==="("){ye("parens"),oe({type:"paren",value:N});continue}if(N===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:N,output:A.parens?")":"\\)"}),ge("parens");continue}if(N==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));N=`\\${N}`}else ye("brackets");oe({type:"bracket",value:N});continue}if(N==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:N,output:`\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:N,output:`\\${N}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(N=`/${N}`),O.value+=N,se({value:N}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(N==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:N,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(N==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:N,output:N});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",N=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:N,output:de}),ge("braces"),ue.pop();continue}if(N==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:N});continue}if(N===","){let re=N,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:N,output:re});continue}if(N==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:N,output:p});continue}if(N==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=N,O.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:N,output:g});continue}oe({type:"dot",value:N,output:g});continue}if(N==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",N);continue}if(O&&O.type==="paren"){let de=he(),Ze=N;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${N}`),oe({type:"text",value:N,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:N,output:F});continue}oe({type:"qmark",value:N,output:P});continue}if(N==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",N);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:N,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:N});continue}oe({type:"plus",value:h});continue}if(N==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:N,output:""});continue}oe({type:"text",value:N});continue}if(N!=="*"){(N==="$"||N==="^")&&(N=`\\${N}`);let re=i0e.exec(De());re&&(N+=re[0],A.index+=re[0].length),oe({type:"text",value:N});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=N,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(N);continue}let G=De();if(t.noextglob!==!0&&/^\([^?]/.test(G)){Ye("star",N);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(N);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||G[0]&&G[0]!=="/")){oe({type:"star",value:N,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Tr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Tr){oe({type:"star",value:N,output:""});continue}for(;G.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;G=G.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=N,O.output=_(t),A.output=O.output,A.globstar=!0,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=N,A.globstar=!0,A.output+=re.output+O.output,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&G[0]==="/"){let ti=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=N,A.output+=re.output+O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&G[0]==="/"){O.type="globstar",O.value+=N,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=N,A.output+=O.output,A.globstar=!0,Re(N);continue}let fe={type:"star",value:N,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=N,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};Tx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Gy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Tx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Yd(),A0e=Gd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Kr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Kr(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Kr.compileRe(r,e):Kr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Kr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Kr.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Kr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Kr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Kr.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Kr.makeRe(e,t)).test(o0e.basename(r));Kr.isMatch=(r,e,t)=>Kr(e,t)(r);Kr.parse=(r,e)=>Array.isArray(r)?r.map(t=>Kr.parse(t,e)):Lx(r,{...e,fastpaths:!1});Kr.scan=(r,e)=>a0e(r,e);Kr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Kr.toRegex(a,e);return i===!0&&(l.state=r),l};Kr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Kr.compileRe(n,e,t,i)};Kr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Kr.constants=A0e;Z3.exports=Kr});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var Bn=I((ktt,iW)=>{"use strict";var tW=J("util"),rW=N3(),Ko=Mx(),Kx=Yd(),eW=r=>r===""||r==="./",Qr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Qr.match=Qr;Qr.matcher=(r,e)=>Ko(r,e);Qr.isMatch=(r,e,t)=>Ko(e,t)(r);Qr.any=Qr.isMatch;Qr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Qr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Qr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Qr.contains(r,i,t));if(typeof e=="string"){if(eW(r)||eW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Qr.isMatch(r,e,{...t,contains:!0})};Qr.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Qr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Qr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Qr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Qr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};Qr.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Qr.makeRe=(...r)=>Ko.makeRe(...r);Qr.scan=(...r)=>Ko.scan(...r);Qr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of rW(String(i),e))t.push(Ko.parse(n,e));return t};Qr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:rW(r,e)};Qr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Qr.braces(r,{...e,expand:!0})};iW.exports=Qr});var sW=I((Dtt,nW)=>{"use strict";nW.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var aW=I((Rtt,oW)=>{"use strict";var c0e=sW();oW.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var yW=I((Gtt,IW)=>{"use strict";IW.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Ytt,QW)=>{"use strict";var B0e=J("stream"),wW=B0e.PassThrough,Q0e=Array.prototype.slice;QW.exports=b0e;function b0e(){let r=[],e=!1,t=Q0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=wW(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var SW=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var vW=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var xW=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function N0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=N0e;function T0e(r){return r.replace(R0e,"\\$2")}yf.escape=T0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var kW=I((Vtt,PW)=>{PW.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var FW=I((Xtt,RW)=>{var O0e=kW(),DW={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=DW[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var U0e=FW(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lP="/",G0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;NW.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lP)<0&&(e=e.replace(G0e,lP)),Y0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var YW=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=TW(),LW=Bn(),V0e=Mx(),OW="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,eQe=/[!*+?@]\(.*\)/,tQe=/{.*(?:,|\.\.).*}/;function MW(r,e={}){return!KW(r,e)}Zr.isStaticPattern=MW;function KW(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&eQe.test(r)||e.braceExpansion!==!1&&tQe.test(r))}Zr.isDynamicPattern=KW;function rQe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rQe;function iQe(r){return"!"+r}Zr.convertToNegativePattern=iQe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function UW(r){return!Zy(r)}Zr.isPositivePattern=UW;function nQe(r){return r.filter(Zy)}Zr.getNegativePatterns=nQe;function sQe(r){return r.filter(UW)}Zr.getPositivePatterns=sQe;function oQe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=oQe;function aQe(r){return r.includes(OW)}Zr.hasGlobStar=aQe;function HW(r){return r.endsWith("/"+OW)}Zr.endsWithSlashGlobStar=HW;function AQe(r){let e=W0e.basename(r);return HW(r)||MW(e)}Zr.isAffectDepthOfReadingPattern=AQe;function lQe(r){return r.reduce((e,t)=>e.concat(jW(t)),[])}Zr.expandPatternsWithBraceExpansion=lQe;function jW(r){return LW.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=jW;function cQe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cQe;function GW(r,e){return LW.makeRe(r,e)}Zr.makeRe=GW;function uQe(r,e){return r.map(t=>GW(t,e))}Zr.convertPatternsToRe=uQe;function gQe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gQe});var JW=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fQe=sP();function hQe(r){let e=fQe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>qW(r)),e.once("end",()=>qW(r)),e}cP.merge=hQe;function qW(r){r.forEach(e=>e.emit("close"))}});var WW=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pQe(r){return typeof r=="string"}_y.isString=pQe;function dQe(r){return r===""}_y.isEmpty=dQe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var CQe=bW();Oa.array=CQe;var mQe=SW();Oa.errno=mQe;var EQe=vW();Oa.fs=EQe;var IQe=xW();Oa.path=IQe;var yQe=YW();Oa.pattern=yQe;var wQe=JW();Oa.stream=wQe;var BQe=WW();Oa.string=BQe});var _W=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function QQe(r,e){let t=zW(r),i=VW(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=QQe;function uP(r,e,t){let i=XW(r);return"."in i?[gP(".",r,e,t)]:ZW(i,e,t)}Ka.convertPatternsToTasks=uP;function zW(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=zW;function VW(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=VW;function XW(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=XW;function ZW(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=ZW;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var e4=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function bQe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$W(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$W(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=bQe;function $W(r,e){r(e)}function fP(r,e){r(null,e)}});var t4=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function SQe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=SQe});var r4=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vQe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vQe});var i4=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xQe=r4(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xQe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var n4=e4(),PQe=t4(),dP=i4();UA.Settings=dP.default;function kQe(r,e,t){if(typeof e=="function"){n4.read(r,CP(),e);return}n4.read(r,CP(e),t)}UA.stat=kQe;function DQe(r,e){let t=CP(e);return PQe.read(r,t)}UA.statSync=DQe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var o4=I((Art,s4)=>{s4.exports=RQe;function RQe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var a4=Number.parseInt(rw[0],10),FQe=Number.parseInt(rw[1],10),A4=10,NQe=10,TQe=a4>A4,LQe=a4===A4&&FQe>=NQe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=TQe||LQe});var l4=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function OQe(r,e){return new EP(r,e)}nw.createDirentFromStats=OQe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var MQe=l4();sw.fs=MQe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function KQe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=KQe});var p4=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var UQe=vc(),c4=o4(),HQe=mP(),u4=IP(),g4=yP();function jQe(r,e,t){if(!e.stats&&HQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){f4(r,e,t);return}h4(r,e,t)}HA.read=jQe;function f4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:g4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>GQe(a,e));c4(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=f4;function GQe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=u4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function h4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=g4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{UQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:u4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});c4(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=h4;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var I4=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var YQe=vc(),qQe=mP(),d4=IP(),C4=yP();function JQe(r,e){return!e.stats&&qQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?m4(r,e):E4(r,e)}jA.read=JQe;function m4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:C4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=d4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=m4;function E4(r,e){return e.fs.readdirSync(r).map(i=>{let n=C4.joinPathSegments(r,i,e.pathSegmentSeparator),s=YQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:d4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=E4});var y4=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.createFileSystemAdapter=GA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");GA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function WQe(r){return r===void 0?GA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},GA.FILE_SYSTEM_ADAPTER),r)}GA.createFileSystemAdapter=WQe});var w4=I(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var zQe=J("path"),VQe=vc(),XQe=y4(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=XQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new VQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};QP.default=BP});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var B4=p4(),ZQe=I4(),bP=w4();YA.Settings=bP.default;function _Qe(r,e,t){if(typeof e=="function"){B4.read(r,SP(),e);return}B4.read(r,SP(e),t)}YA.scandir=_Qe;function $Qe(r,e){let t=SP(e);return ZQe.read(r,t)}YA.scandirSync=$Qe;function SP(r={}){return r instanceof bP.default?r:new bP.default(r)}});var b4=I((mrt,Q4)=>{"use strict";function ebe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}Q4.exports=ebe});var v4=I((Ert,vP)=>{"use strict";var tbe=b4();function S4(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tbe(rbe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nbe;function sbe(r,e){return r===null||r(e)}jo.isAppliedFilter=sbe;function obe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=obe;function abe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=abe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Abe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=Abe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lbe=J("events"),cbe=Aw(),ube=v4(),cw=lw(),gbe=kP(),DP=class extends gbe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cbe.scandir,this._emitter=new lbe.EventEmitter,this._queue=ube(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var x4=I(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});var fbe=FP(),NP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pbe(e,[...this._storage])}),this._reader.read()}};TP.default=NP;function hbe(r,e){r(e)}function pbe(r,e){r(null,e)}});var P4=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dbe=J("stream"),Cbe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Cbe.default(this._root,this._settings),this._stream=new dbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var k4=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mbe=Aw(),uw=lw(),Ebe=kP(),MP=class extends Ebe.default{constructor(){super(...arguments),this._scandir=mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var D4=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var Ibe=k4(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Ibe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var R4=I(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});var ybe=J("path"),wbe=Aw(),jP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ybe.sep),this.fsScandirSettings=new wbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};GP.default=jP});var qP=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Settings=Go.walkStream=Go.walkSync=Go.walk=void 0;var F4=x4(),Bbe=P4(),Qbe=D4(),YP=R4();Go.Settings=YP.default;function bbe(r,e,t){if(typeof e=="function"){new F4.default(r,gw()).read(e);return}new F4.default(r,gw(e)).read(t)}Go.walk=bbe;function Sbe(r,e){let t=gw(e);return new Qbe.default(r,t).read()}Go.walkSync=Sbe;function vbe(r,e){let t=gw(e);return new Bbe.default(r,t).read()}Go.walkStream=vbe;function gw(r={}){return r instanceof YP.default?r:new YP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xbe=J("path"),Pbe=vc(),N4=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new Pbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:N4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!N4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kbe=J("stream"),Dbe=vc(),Rbe=qP(),Fbe=zP(),VP=class extends Fbe.default{constructor(){super(...arguments),this._walkStream=Rbe.walkStream,this._stat=Dbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var T4=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var L4=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var Nbe=T4(),ek=class extends Nbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var O4=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),Tbe=L4(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Tbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var M4=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var K4=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var Lbe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return Lbe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var H4=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var U4=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=U4.path.makeAbsolute(this._settings.cwd,t),t=U4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var Obe=J("path"),Mbe=O4(),Kbe=M4(),Ube=K4(),Hbe=H4(),ck=class{constructor(e){this._settings=e,this.errorFilter=new Ube.default(this._settings),this.entryFilter=new Kbe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Mbe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Hbe.default(this._settings)}_getRootDirectory(e){return Obe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var j4=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jbe=ZP(),Gbe=hw(),gk=class extends Gbe.default{constructor(){super(...arguments),this._reader=new jbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var G4=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Ybe=J("stream"),qbe=ZP(),Jbe=hw(),hk=class extends Jbe.default{constructor(){super(...arguments),this._reader=new qbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new Ybe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var Y4=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var Wbe=vc(),zbe=qP(),Vbe=zP(),dk=class extends Vbe.default{constructor(){super(...arguments),this._walkSync=zbe.walkSync,this._statSync=Wbe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var q4=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var Xbe=Y4(),Zbe=hw(),mk=class extends Zbe.default{constructor(){super(...arguments),this._reader=new Xbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var J4=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var Qf=J("fs"),_be=J("os"),$be=_be.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Qf.lstat,lstatSync:Qf.lstatSync,stat:Qf.stat,statSync:Qf.statSync,readdir:Qf.readdir,readdirSync:Qf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$be),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Grt,z4)=>{"use strict";var W4=_W(),eSe=j4(),tSe=G4(),rSe=q4(),yk=J4(),xc=Ma();async function wk(r,e){bf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){bf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){bf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){bf(o);let l=[].concat(o),c=new yk.default(a);return W4.generate(l,c)}r.generateTasks=i;function n(o,a){bf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return bf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=W4.generate(i,n),o=new e(n);return s.map(o.read,o)}function bf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}z4.exports=wk});var X4=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),V4=J("fs");async function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(V4[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return V4[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=Qk.bind(null,"stat","isFile");Pc.isDirectory=Qk.bind(null,"stat","isDirectory");Pc.isSymlink=Qk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=bk.bind(null,"statSync","isFile");Pc.isDirectorySync=bk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=bk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),Z4=X4(),_4=r=>r.length>1?`{${r.join(",")}}`:r[0],$4=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_4(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_4(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await Z4.isDirectory($4(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>Z4.isDirectorySync($4(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],QSe=wSe(g8.readFile),bSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(bSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await QSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Nk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Nk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=yW(),DSe=sP(),Ew=pw(),Iw=t8(),Tk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",NSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},TSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),NSe(r),TSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],Q8=r=>r&&r.gitignore?Tk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Tk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=Q8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=Q8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Tk});var vn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var G8=I((dit,j8)=>{var tve=Is(),rve=function(){return tve.Date.now()};j8.exports=rve});var q8=I((Cit,Y8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Nc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Nc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Tc=I((wit,iz)=>{var tz=Nc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((Qit,sz)=>{var wve=Tc(),Bve=Jo(),Qve="[object Symbol]";function bve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==Qve}sz.exports=bve});var lz=I((bit,Az)=>{var Sve=W8(),oz=vn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=vn(),zk=G8(),cz=lz(),Nve="Expected a function",Tve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Nve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Tve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=vn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((Ga,Gw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var Qz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return Qz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Qz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:bz}=Object.prototype,mC=r=>{let e=bz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(bz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=V;Gw.exports=V;Gw.exports.default=V;Gw.exports.assert=Ga.assert});var xz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,bD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),QD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Nz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Tz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Nz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Tz),this._resolve6(e,Tz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[QD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[QD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Nz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};bD.exports=qw;bD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,Qxe="text/plain",bxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===bxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Qxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Gz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Yz=Gz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Nxe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Txe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Nxe(r))return r.close(EC);if(Txe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((Qnt,e5)=>{"use strict";var jxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Gxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Yxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Yxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Gxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((bnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},ND=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=ND});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),TD=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=TD.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new TD(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=TD.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Tnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,Q5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),sn=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].lengthe[ws].includes(i))&&t[sn]+e[sn]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].lengtht[ws].includes(i))&&e[sn]+t[sn]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]{r[Uf]=!0,r[sn]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[sn]=0,h[Uf]=!1;let p=()=>h[sn]{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[sn]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[sn],h[sn]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[sn],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[sn]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[sn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=sn;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};b5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:QPe}=J("stream"),{Agent:F5,globalAgent:bPe}=HD(),SPe=GD(),vPe=YD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:N5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:T5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:NPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),TPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends QPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=bPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===NPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[T5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[T5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new N5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new N5("set");if(typeof e!="string"||!TPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var G5=I((Wnt,j5)=>{"use strict";var MPe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),jPe=G5(),GPe=YD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},YPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=GPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await YPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=GD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Gf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),QC=Symbol("jobs"),Q6=Symbol("originalResponse"),b6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Qke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function bke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wP=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mP,stderr:EP}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mP?mP.level:0;r.level=e.level===void 0?t:e.level},IP=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=IP,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yP(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yP(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yP(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yP=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},CP,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=BP(r,e,"-",!1,t)||[],n=BP(e,r,"",!1,t)||[],s=BP(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function BP(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var SP=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),bP=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),QP=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=QP(a)||QP(l)||QP(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&bP(r))return[r];if(!bP(r)||!bP(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=SP(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var b3=I((Itt,B3)=>{"use strict";var fBe=SP(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";Q3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vP,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:P3,CHAR_RIGHT_SQUARE_BRACKET:x3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:bBe,CHAR_NO_BREAK_SPACE:QBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),PBe=y3(),xBe=b3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),PBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=xBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((btt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",PP=`(?:${jy}|$)`,O3=`(?:^|${jy})`,xP=`${Ta}{1,2}${PP}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${xP})`,OBe=`(?!${Ta}{0,1}${PP})`,MBe=`(?!${xP})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:PP,DOTS_SLASH:xP,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(wn=>{"use strict";var GBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Gd();wn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);wn.hasRegexChars=r=>WBe.test(r);wn.isRegexChar=r=>r.length===1&&wn.hasRegexChars(r);wn.escapeRegex=r=>r.replace(zBe,"\\$1");wn.toPosixSlashes=r=>r.replace(qBe,"/");wn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);wn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};wn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||GBe.sep==="\\";wn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?wn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};wn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};wn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kP,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:DP,CHAR_EXCLAMATION_MARK:RP,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:FP,CHAR_LEFT_PARENTHESES:NP,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Gd(),G3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,x=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&G3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let N={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:x,negatedExtglob:F};if(t.tokens===!0&&(N.maxDepth=0,G3(X)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he{"use strict";var Gy=Gd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Gy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,TP=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Gy.globChars(l),u=Gy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:x,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=G=>`(${a}(?:(?!${q}${G.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?x:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,N,ce=()=>A.index===n-1,he=A.peek=(G=1)=>r[A.index+G],xe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(G="",fe=0)=>{A.consumed+=G,A.index+=fe},se=G=>{A.output+=G.output!=null?G.output:G.value,Re(G.value)},Ae=()=>{let G=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)xe(),A.start++,G++;return G%2===0?!1:(A.negated=!0,A.start++,!0)},ye=G=>{A[G]++,te.push(G)},ge=G=>{A[G]--,te.pop()},oe=G=>{if(O.type==="globstar"){let fe=A.braces>0&&(G.type==="comma"||G.type==="brace"),re=G.extglob===!0||ne.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&G.type!=="paren"&&(ne[ne.length-1].inner+=G.value),(G.value||G.output)&&se(G),O&&O.type==="text"&&G.type==="text"){O.value+=G.value,O.output=(O.output||"")+G.value;return}G.prev=O,o.push(G),O=G},Ye=(G,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:G,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:xe(),output:de}),ne.push(re)},ie=G=>{let fe=G.close+(t.capture?")":""),re;if(G.type==="negate"){let de=Z;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=G.close=`)$))${de}`),G.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=TP(re,{...e,fastpaths:!1}).output;fe=G.close=`)${Ze})${de})`}G.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:N,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let G=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Tr)=>vt==="\\"?(G=!0,re):vt==="?"?de?de+vt+(mt?x.repeat(mt.length):""):Tr===0?W+(mt?x.repeat(mt.length):""):x.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return G===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(N=xe(),N==="\0")continue;if(N==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){N+="\\",oe({type:"text",value:N});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(N+="\\")),t.unescape===!0?N=xe():N+=xe(),A.brackets===0){oe({type:"text",value:N});continue}}if(A.brackets>0&&(N!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&N===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,xe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(N==="["&&he()!==":"||N==="-"&&he()==="]")&&(N=`\\${N}`),N==="]"&&(O.value==="["||O.value==="[^")&&(N=`\\${N}`),t.posix===!0&&N==="!"&&O.value==="["&&(N="^"),O.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='"'){N=Wn.escapeRegex(N),O.value+=N,se({value:N});continue}if(N==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:N});continue}if(N==="("){ye("parens"),oe({type:"paren",value:N});continue}if(N===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:N,output:A.parens?")":"\\)"}),ge("parens");continue}if(N==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));N=`\\${N}`}else ye("brackets");oe({type:"bracket",value:N});continue}if(N==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:N,output:`\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:N,output:`\\${N}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(N=`/${N}`),O.value+=N,se({value:N}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(N==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:N,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(N==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:N,output:N});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",N=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:N,output:de}),ge("braces"),ue.pop();continue}if(N==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:N});continue}if(N===","){let re=N,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:N,output:re});continue}if(N==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:N,output:p});continue}if(N==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=N,O.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:N,output:g});continue}oe({type:"dot",value:N,output:g});continue}if(N==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",N);continue}if(O&&O.type==="paren"){let de=he(),Ze=N;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${N}`),oe({type:"text",value:N,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:N,output:F});continue}oe({type:"qmark",value:N,output:x});continue}if(N==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",N);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:N,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:N});continue}oe({type:"plus",value:h});continue}if(N==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:N,output:""});continue}oe({type:"text",value:N});continue}if(N!=="*"){(N==="$"||N==="^")&&(N=`\\${N}`);let re=i0e.exec(De());re&&(N+=re[0],A.index+=re[0].length),oe({type:"text",value:N});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=N,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(N);continue}let G=De();if(t.noextglob!==!0&&/^\([^?]/.test(G)){Ye("star",N);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(N);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||G[0]&&G[0]!=="/")){oe({type:"star",value:N,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Tr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Tr){oe({type:"star",value:N,output:""});continue}for(;G.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;G=G.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=N,O.output=_(t),A.output=O.output,A.globstar=!0,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=N,A.globstar=!0,A.output+=re.output+O.output,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&G[0]==="/"){let ti=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=N,A.output+=re.output+O.output,A.globstar=!0,Re(N+xe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&G[0]==="/"){O.type="globstar",O.value+=N,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(N+xe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=N,A.output+=O.output,A.globstar=!0,Re(N);continue}let fe={type:"star",value:N,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=N,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};TP.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Gy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},x=t.bash===!0?".*?":p;t.capture&&(x=`(${x})`);let F=X=>X.noglobstar===!0?x:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${x}`;case".*":return`${o}${l}${x}`;case"*.*":return`${m}${x}${o}${l}${x}`;case"*/*":return`${m}${x}${a}${l}${y}${x}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${x}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${x}${o}${l}${x}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${x}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=TP});var _3=I((Ptt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),LP=X3(),OP=Yd(),A0e=Gd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Kr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Kr(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=OP.isWindows(e),o=i?Kr.compileRe(r,e):Kr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Kr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Kr.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Kr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?OP.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Kr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Kr.matchBase=(r,e,t,i=OP.isWindows(t))=>(e instanceof RegExp?e:Kr.makeRe(e,t)).test(o0e.basename(r));Kr.isMatch=(r,e,t)=>Kr(e,t)(r);Kr.parse=(r,e)=>Array.isArray(r)?r.map(t=>Kr.parse(t,e)):LP(r,{...e,fastpaths:!1});Kr.scan=(r,e)=>a0e(r,e);Kr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Kr.toRegex(a,e);return i===!0&&(l.state=r),l};Kr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=LP.fastpaths(r,e)),n.output||(n=LP(r,e)),Kr.compileRe(n,e,t,i)};Kr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Kr.constants=A0e;Z3.exports=Kr});var MP=I((xtt,$3)=>{"use strict";$3.exports=_3()});var Bn=I((ktt,iW)=>{"use strict";var tW=J("util"),rW=N3(),Ko=MP(),KP=Yd(),eW=r=>r===""||r==="./",br=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};br.match=br;br.matcher=(r,e)=>Ko(r,e);br.isMatch=(r,e,t)=>Ko(e,t)(r);br.any=br.isMatch;br.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=br(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};br.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>br.contains(r,i,t));if(typeof e=="string"){if(eW(r)||eW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return br.isMatch(r,e,{...t,contains:!0})};br.matchKeys=(r,e,t)=>{if(!KP.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=br(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};br.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};br.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};br.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};br.capture=(r,e,t)=>{let i=KP.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?KP.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};br.makeRe=(...r)=>Ko.makeRe(...r);br.scan=(...r)=>Ko.scan(...r);br.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of rW(String(i),e))t.push(Ko.parse(n,e));return t};br.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:rW(r,e)};br.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return br.braces(r,{...e,expand:!0})};iW.exports=br});var sW=I((Dtt,nW)=>{"use strict";nW.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var aW=I((Rtt,oW)=>{"use strict";var c0e=sW();oW.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var yW=I((Gtt,IW)=>{"use strict";IW.exports=(...r)=>[...new Set([].concat(...r))]});var sx=I((Ytt,bW)=>{"use strict";var B0e=J("stream"),wW=B0e.PassThrough,b0e=Array.prototype.slice;bW.exports=Q0e;function Q0e(){let r=[],e=!1,t=b0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=wW(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var SW=I(ox=>{"use strict";Object.defineProperty(ox,"__esModule",{value:!0});function P0e(r){return r.code==="ENOENT"}ox.isEnoentCodeError=P0e});var vW=I(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var ax=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function x0e(r,e){return new ax(r,e)}Ax.createDirentFromStats=x0e});var PW=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function N0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=N0e;function T0e(r){return r.replace(R0e,"\\$2")}yf.escape=T0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var kW=I((Vtt,xW)=>{xW.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var FW=I((Xtt,RW)=>{var O0e=kW(),DW={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=DW[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var U0e=FW(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lx="/",G0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;NW.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lx)<0&&(e=e.replace(G0e,lx)),Y0e.test(e)&&(e+=lx),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var YW=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=TW(),LW=Bn(),V0e=MP(),OW="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,ebe=/[!*+?@]\(.*\)/,tbe=/{.*(?:,|\.\.).*}/;function MW(r,e={}){return!KW(r,e)}Zr.isStaticPattern=MW;function KW(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&ebe.test(r)||e.braceExpansion!==!1&&tbe.test(r))}Zr.isDynamicPattern=KW;function rbe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rbe;function ibe(r){return"!"+r}Zr.convertToNegativePattern=ibe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function UW(r){return!Zy(r)}Zr.isPositivePattern=UW;function nbe(r){return r.filter(Zy)}Zr.getNegativePatterns=nbe;function sbe(r){return r.filter(UW)}Zr.getPositivePatterns=sbe;function obe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=obe;function abe(r){return r.includes(OW)}Zr.hasGlobStar=abe;function HW(r){return r.endsWith("/"+OW)}Zr.endsWithSlashGlobStar=HW;function Abe(r){let e=W0e.basename(r);return HW(r)||MW(e)}Zr.isAffectDepthOfReadingPattern=Abe;function lbe(r){return r.reduce((e,t)=>e.concat(jW(t)),[])}Zr.expandPatternsWithBraceExpansion=lbe;function jW(r){return LW.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=jW;function cbe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cbe;function GW(r,e){return LW.makeRe(r,e)}Zr.makeRe=GW;function ube(r,e){return r.map(t=>GW(t,e))}Zr.convertPatternsToRe=ube;function gbe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gbe});var JW=I(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var fbe=sx();function hbe(r){let e=fbe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>qW(r)),e.once("end",()=>qW(r)),e}cx.merge=hbe;function qW(r){r.forEach(e=>e.emit("close"))}});var WW=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pbe(r){return typeof r=="string"}_y.isString=pbe;function dbe(r){return r===""}_y.isEmpty=dbe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var Cbe=QW();Oa.array=Cbe;var mbe=SW();Oa.errno=mbe;var Ebe=vW();Oa.fs=Ebe;var Ibe=PW();Oa.path=Ibe;var ybe=YW();Oa.pattern=ybe;var wbe=JW();Oa.stream=wbe;var Bbe=WW();Oa.string=Bbe});var _W=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function bbe(r,e){let t=zW(r),i=VW(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=ux(n,i,!1),a=ux(s,i,!0);return o.concat(a)}Ka.generate=bbe;function ux(r,e,t){let i=XW(r);return"."in i?[gx(".",r,e,t)]:ZW(i,e,t)}Ka.convertPatternsToTasks=ux;function zW(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=zW;function VW(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=VW;function XW(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=XW;function ZW(r,e,t){return Object.keys(r).map(i=>gx(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=ZW;function gx(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gx});var e4=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function Qbe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$W(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fx(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$W(t,s);return}fx(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fx(t,o)})})}$y.read=Qbe;function $W(r,e){r(e)}function fx(r,e){r(null,e)}});var t4=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function Sbe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=Sbe});var r4=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vbe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vbe});var i4=I(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});var Pbe=r4(),hx=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=Pbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};px.default=hx});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var n4=e4(),xbe=t4(),dx=i4();UA.Settings=dx.default;function kbe(r,e,t){if(typeof e=="function"){n4.read(r,Cx(),e);return}n4.read(r,Cx(e),t)}UA.stat=kbe;function Dbe(r,e){let t=Cx(e);return xbe.read(r,t)}UA.statSync=Dbe;function Cx(r={}){return r instanceof dx.default?r:new dx.default(r)}});var o4=I((Art,s4)=>{s4.exports=Rbe;function Rbe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mx=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var a4=Number.parseInt(rw[0],10),Fbe=Number.parseInt(rw[1],10),A4=10,Nbe=10,Tbe=a4>A4,Lbe=a4===A4&&Fbe>=Nbe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Tbe||Lbe});var l4=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var Ex=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function Obe(r,e){return new Ex(r,e)}nw.createDirentFromStats=Obe});var Ix=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var Mbe=l4();sw.fs=Mbe});var yx=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function Kbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=Kbe});var p4=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var Ube=vc(),c4=o4(),Hbe=mx(),u4=Ix(),g4=yx();function jbe(r,e,t){if(!e.stats&&Hbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){f4(r,e,t);return}h4(r,e,t)}HA.read=jbe;function f4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:g4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wx(t,s);return}let o=s.map(a=>Gbe(a,e));c4(o,(a,l)=>{if(a!==null){aw(t,a);return}wx(t,l)})})}HA.readdirWithFileTypes=f4;function Gbe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=u4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function h4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=g4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{Ube.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:u4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});c4(s,(o,a)=>{if(o!==null){aw(t,o);return}wx(t,a)})})}HA.readdir=h4;function aw(r,e){r(e)}function wx(r,e){r(null,e)}});var I4=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var Ybe=vc(),qbe=mx(),d4=Ix(),C4=yx();function Jbe(r,e){return!e.stats&&qbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?m4(r,e):E4(r,e)}jA.read=Jbe;function m4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:C4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=d4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=m4;function E4(r,e){return e.fs.readdirSync(r).map(i=>{let n=C4.joinPathSegments(r,i,e.pathSegmentSeparator),s=Ybe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:d4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=E4});var y4=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.createFileSystemAdapter=GA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");GA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function Wbe(r){return r===void 0?GA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},GA.FILE_SYSTEM_ADAPTER),r)}GA.createFileSystemAdapter=Wbe});var w4=I(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var zbe=J("path"),Vbe=vc(),Xbe=y4(),Bx=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=Xbe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zbe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new Vbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};bx.default=Bx});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var B4=p4(),Zbe=I4(),Qx=w4();YA.Settings=Qx.default;function _be(r,e,t){if(typeof e=="function"){B4.read(r,Sx(),e);return}B4.read(r,Sx(e),t)}YA.scandir=_be;function $be(r,e){let t=Sx(e);return Zbe.read(r,t)}YA.scandirSync=$be;function Sx(r={}){return r instanceof Qx.default?r:new Qx.default(r)}});var Q4=I((mrt,b4)=>{"use strict";function eQe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}b4.exports=eQe});var v4=I((Ert,vx)=>{"use strict";var tQe=Q4();function S4(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tQe(rQe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:x,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nQe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nQe;function sQe(r,e){return r===null||r(e)}jo.isAppliedFilter=sQe;function oQe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=oQe;function aQe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=aQe});var kx=I(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});var AQe=lw(),Px=class{constructor(e,t){this._root=e,this._settings=t,this._root=AQe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};xx.default=Px});var Fx=I(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var lQe=J("events"),cQe=Aw(),uQe=v4(),cw=lw(),gQe=kx(),Dx=class extends gQe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cQe.scandir,this._emitter=new lQe.EventEmitter,this._queue=uQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};Rx.default=Dx});var P4=I(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var fQe=Fx(),Nx=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hQe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pQe(e,[...this._storage])}),this._reader.read()}};Tx.default=Nx;function hQe(r,e){r(e)}function pQe(r,e){r(null,e)}});var x4=I(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var dQe=J("stream"),CQe=Fx(),Lx=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new CQe.default(this._root,this._settings),this._stream=new dQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};Ox.default=Lx});var k4=I(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var mQe=Aw(),uw=lw(),EQe=kx(),Mx=class extends EQe.default{constructor(){super(...arguments),this._scandir=mQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};Kx.default=Mx});var D4=I(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});var IQe=k4(),Ux=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new IQe.default(this._root,this._settings)}read(){return this._reader.read()}};Hx.default=Ux});var R4=I(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var yQe=J("path"),wQe=Aw(),jx=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,yQe.sep),this.fsScandirSettings=new wQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};Gx.default=jx});var qx=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Settings=Go.walkStream=Go.walkSync=Go.walk=void 0;var F4=P4(),BQe=x4(),bQe=D4(),Yx=R4();Go.Settings=Yx.default;function QQe(r,e,t){if(typeof e=="function"){new F4.default(r,gw()).read(e);return}new F4.default(r,gw(e)).read(t)}Go.walk=QQe;function SQe(r,e){let t=gw(e);return new bQe.default(r,t).read()}Go.walkSync=SQe;function vQe(r,e){let t=gw(e);return new BQe.default(r,t).read()}Go.walkStream=vQe;function gw(r={}){return r instanceof Yx.default?r:new Yx.default(r)}});var zx=I(Wx=>{"use strict";Object.defineProperty(Wx,"__esModule",{value:!0});var PQe=J("path"),xQe=vc(),N4=Ma(),Jx=class{constructor(e){this._settings=e,this._fsStatSettings=new xQe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return PQe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:N4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!N4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};Wx.default=Jx});var Zx=I(Xx=>{"use strict";Object.defineProperty(Xx,"__esModule",{value:!0});var kQe=J("stream"),DQe=vc(),RQe=qx(),FQe=zx(),Vx=class extends FQe.default{constructor(){super(...arguments),this._walkStream=RQe.walkStream,this._stat=DQe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};Xx.default=Vx});var T4=I($x=>{"use strict";Object.defineProperty($x,"__esModule",{value:!0});var Bf=Ma(),_x=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$x.default=_x});var L4=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var NQe=T4(),ek=class extends NQe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var O4=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),TQe=L4(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new TQe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var M4=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var K4=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var LQe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return LQe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var H4=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var U4=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=U4.path.makeAbsolute(this._settings.cwd,t),t=U4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var OQe=J("path"),MQe=O4(),KQe=M4(),UQe=K4(),HQe=H4(),ck=class{constructor(e){this._settings=e,this.errorFilter=new UQe.default(this._settings),this.entryFilter=new KQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new MQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new HQe.default(this._settings)}_getRootDirectory(e){return OQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var j4=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jQe=Zx(),GQe=hw(),gk=class extends GQe.default{constructor(){super(...arguments),this._reader=new jQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var G4=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var YQe=J("stream"),qQe=Zx(),JQe=hw(),hk=class extends JQe.default{constructor(){super(...arguments),this._reader=new qQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new YQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var Y4=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var WQe=vc(),zQe=qx(),VQe=zx(),dk=class extends VQe.default{constructor(){super(...arguments),this._walkSync=zQe.walkSync,this._statSync=WQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var q4=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var XQe=Y4(),ZQe=hw(),mk=class extends ZQe.default{constructor(){super(...arguments),this._reader=new XQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var J4=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var bf=J("fs"),_Qe=J("os"),$Qe=_Qe.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:bf.lstat,lstatSync:bf.lstatSync,stat:bf.stat,statSync:bf.statSync,readdir:bf.readdir,readdirSync:bf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$Qe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Grt,z4)=>{"use strict";var W4=_W(),eSe=j4(),tSe=G4(),rSe=q4(),yk=J4(),Pc=Ma();async function wk(r,e){Qf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return Pc.array.flatten(i)}(function(r){function e(o,a){Qf(o);let l=Bk(o,rSe.default,a);return Pc.array.flatten(l)}r.sync=e;function t(o,a){Qf(o);let l=Bk(o,tSe.default,a);return Pc.stream.merge(l)}r.stream=t;function i(o,a){Qf(o);let l=[].concat(o),c=new yk.default(a);return W4.generate(l,c)}r.generateTasks=i;function n(o,a){Qf(o);let l=new yk.default(a);return Pc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Qf(o),Pc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=W4.generate(i,n),o=new e(n);return s.map(o.read,o)}function Qf(r){if(![].concat(r).every(i=>Pc.string.isString(i)&&!Pc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}z4.exports=wk});var X4=I(xc=>{"use strict";var{promisify:iSe}=J("util"),V4=J("fs");async function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(V4[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return V4[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}xc.isFile=bk.bind(null,"stat","isFile");xc.isDirectory=bk.bind(null,"stat","isDirectory");xc.isSymlink=bk.bind(null,"lstat","isSymbolicLink");xc.isFileSync=Qk.bind(null,"statSync","isFile");xc.isDirectorySync=Qk.bind(null,"statSync","isDirectory");xc.isSymlinkSync=Qk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),Z4=X4(),_4=r=>r.length>1?`{${r.join(",")}}`:r[0],$4=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_4(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_4(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await Z4.isDirectory($4(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>Z4.isDirectorySync($4(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,Pk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),xk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new xk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(Pk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(Pk)+Pk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],bSe=wSe(g8.readFile),QSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(QSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),PSe=async(r,e)=>{let t=Ha.join(e,r),i=await bSe(t,"utf8");return{cwd:e,filePath:t,content:i}},xSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>PSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>xSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Nk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Nk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=yW(),DSe=sx(),Ew=pw(),Iw=t8(),Tk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",NSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},TSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),NSe(r),TSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],b8=r=>r&&r.gitignore?Tk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Tk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=b8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=b8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Tk});var vn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var G8=I((dit,j8)=>{var tve=Is(),rve=function(){return tve.Date.now()};j8.exports=rve});var q8=I((Cit,Y8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Nc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Nc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Tc=I((wit,iz)=>{var tz=Nc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((bit,sz)=>{var wve=Tc(),Bve=Jo(),bve="[object Symbol]";function Qve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==bve}sz.exports=Qve});var lz=I((Qit,Az)=>{var Sve=W8(),oz=vn(),vve=fC(),az=0/0,Pve=/^[-+]0x[0-9a-f]+$/i,xve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=xve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):Pve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=vn(),zk=G8(),cz=lz(),Nve="Expected a function",Tve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Nve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Tve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function x(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=x,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=vn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((Ga,Gw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var bz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function tPe(r){return bz.includes(r)}var rPe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...bz];function iPe(r){return rPe.includes(r)}var nPe=["null","undefined","string","number","bigint","boolean","symbol"];function sPe(r){return nPe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:Qz}=Object.prototype,mC=r=>{let e=Qz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(iPe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oPe=Lf("number");V.number=r=>oPe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var aPe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||aPe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sPe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(Qz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>tPe(mC(r));var APe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&APe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lPe=1,cPe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lPe&&V.string(r.nodeName)&&!V.plainObject(r)&&cPe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uPe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uPe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=V;Gw.exports=V;Gw.exports.default=V;Gw.exports.assert=Ga.assert});var Pz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var xz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gPe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gPe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fPe=xz(),hPe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hPe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fPe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,QD)=>{"use strict";var{V4MAPPED:pPe,ADDRCONFIG:dPe,ALL:Lz,promises:{Resolver:Dz},lookup:CPe}=J("dns"),{promisify:BD}=J("util"),mPe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),bD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),EPe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},IPe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Nz=()=>{let r=!1,e=!1;for(let t of Object.values(mPe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yPe=r=>Symbol.iterator in r,Tz={ttl:!0},wPe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=CPe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Nz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pPe&&(EPe&&t.hints&Lz||n.length===0)?IPe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dPe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Tz),this._resolve6(e,Tz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yPe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wPe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[bD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[bD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Nz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};QD.exports=qw;QD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var BPe=typeof URL>"u"?J("url").URL:URL,bPe="text/plain",QPe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),SPe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===QPe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==bPe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return SPe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new BPe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Gz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Yz=Gz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var xD=I((Ent,Wz)=>{var vPe=PD(),PPe=function(){},xPe=function(r){return r.setHeader&&typeof r.abort=="function"},kPe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vPe(t||PPe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return xPe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kPe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var DPe=PD(),RPe=xD(),kD=J("fs"),EC=function(){},FPe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},NPe=function(r){return!FPe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},TPe=function(r){return r.setHeader&&Ww(r.abort)},LPe=function(r,e,t,i){i=DPe(i);var n=!1;r.on("close",function(){n=!0}),RPe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,NPe(r))return r.close(EC);if(TPe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},OPe=function(r,e){return r.pipe(e)},MPe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return LPe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(OPe)};Vz.exports=MPe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:KPe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new KPe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var UPe=Xz(),HPe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=UPe(r,HPe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((bnt,e5)=>{"use strict";var jPe=new Set([200,203,204,206,300,301,404,405,410,414,501]),GPe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),YPe=new Set([500,502,503,504]),qPe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},JPe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function WPe(r){return r?YPe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zPe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zPe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&GPe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jPe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qPe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&WPe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!JPe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((Qnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var VPe=J("stream").Readable,XPe=Xw(),RD=class extends VPe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=XPe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var ZPe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(ZPe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((Pnt,a5)=>{"use strict";var _Pe=J("stream").PassThrough,$Pe=o5(),exe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _Pe;return $Pe(r,e),r.pipe(e)};a5.exports=exe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var txe=J("events"),c5=l5(),rxe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},ND=class extends txe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rxe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=ND});var p5=I((Rnt,h5)=>{"use strict";var ixe=J("events"),Zw=J("url"),nxe=Uz(),sxe=$z(),TD=t5(),f5=n5(),oxe=Xw(),axe=A5(),Axe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Axe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lxe(n)},t.headers=oxe(t.headers);let s=new ixe,o=nxe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=TD.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let x=S.policy.responseHeaders();y=new f5(l.statusCode,x,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new TD(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=axe(y),(async()=>{try{let S=sxe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let x=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:x},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=TD.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lxe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Tnt,d5)=>{"use strict";var cxe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cxe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uxe,PassThrough:gxe}=J("stream"),OD=J("zlib"),fxe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uxe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gxe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fxe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,b5)=>{"use strict";var hxe=J("events"),pxe=J("tls"),dxe=J("http2"),Cxe=KD(),sn=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mxe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Exe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},Ixe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].lengthe[ws].includes(i))&&t[sn]+e[sn]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yxe=(r,e)=>{for(let t of r)e[ws].lengtht[ws].includes(i))&&e[sn]+t[sn]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]{r[Uf]=!0,r[sn]===0&&r.close()},Wo=class extends hxe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Cxe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mxe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dxe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[sn]=0,h[Uf]=!1;let p=()=>h[sn]{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(Exe(B,h,Ixe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[sn]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[sn],h[sn]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[sn],!h.destroyed&&!h.closed&&(yxe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let x=h[sn]===0;x&&h.unref(),x&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pxe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[sn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=sn;Wo.kGracefullyClosing=Uf;b5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,Q5)=>{"use strict";var{Readable:wxe}=J("stream"),jD=class extends wxe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Q5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var P5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,x5)=>{"use strict";x5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var Bxe=J("http2"),{Writable:bxe}=J("stream"),{Agent:F5,globalAgent:Qxe}=HD(),Sxe=GD(),vxe=YD(),Pxe=P5(),xxe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kxe,ERR_HTTP_HEADERS_SENT:N5,ERR_INVALID_HTTP_TOKEN:Dxe,ERR_HTTP_INVALID_HEADER_VALUE:Rxe,ERR_INVALID_CHAR:Fxe}=R5(),{HTTP2_HEADER_STATUS:T5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:Nxe}=Bxe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),Txe=/^[\^`\-\w!#$%&*+.|~]+$/,Lxe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends bxe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vxe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=Qxe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kxe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===Nxe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||Pxe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new Sxe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[T5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[T5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new N5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new N5("set");if(typeof e!="string"||!Txe.test(e)&&!xxe(e))throw new Dxe("Header name",e);if(typeof t>"u")throw new Rxe(t,e);if(Lxe.test(t))throw new Fxe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var Oxe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=Oxe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var G5=I((Wnt,j5)=>{"use strict";var Mxe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),Mxe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),Kxe=H5(),Uxe=KD(),Hxe=VD(),jxe=G5(),Gxe=YD(),$w=new Uxe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},Yxe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=Kxe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=Gxe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jxe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await Yxe(e)==="h2"?(n&&(e.agent=n.http2),new Hxe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qxe=J("http2"),Jxe=HD(),_D=VD(),Wxe=GD(),zxe=J5(),Vxe=(r,e,t)=>new _D(r,e,t),Xxe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qxe,ClientRequest:_D,IncomingMessage:Wxe,...Jxe,request:Vxe,get:Xxe,auto:zxe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),Zxe=eR(),_xe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(Zxe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _xe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $xe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$xe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,xi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Gf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),bC=Symbol("jobs"),b6=Symbol("originalResponse"),Q6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function bke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function Qke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),Pke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of Pke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` `).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` `).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` `)}${a.reverse().join(` -`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{Qke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Q6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Gf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),bke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[b6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Gf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[QC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[QC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[b6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[Q6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Gf]/this[jf]:this[jf]===this[Gf]?e=1:e=0,{percent:e,transferred:this[Gf],total:this[jf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Nke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Tke=J("events"),Lke=Ya(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Tke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Nke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var N6=Ya();function T6(r){for(let e of Object.values(r))(N6.default.plainObject(e)||N6.default.array(e))&&T6(e);return Object.freeze(r)}BR.default=T6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var QR=I(Qs=>{"use strict";var Gke=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Gke(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};Qs.default=j6;Yke(M6(),Qs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),G6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=QR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},bR=Y6.default(eDe);qa.default=bR;pB.exports=bR;pB.exports.default=bR;pB.exports.__esModule=!0;G6(QR(),qa);G6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&Ir("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:Ir("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||Ir("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E>10,56320|it&1023)}}return T}function De(f,E){return f?Pe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,G,fe,re,de,Ze,vt,mt;function Tr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=G=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!b.init.initialized&&b.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function Ir(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Nl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Nl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyABKAJcQYUPNgIYIAEoAlRB0f4ANgIEDAQLDAILIAEoAgxBwABxRQRAIAEgASgCJCABLwESIAEoAixBASABKAIMdEEBa3FqQQJ0aigBADYBEAwBCwsgASgCDEEgcQRAIAEoAlRBv/4ANgIEDAILIAEoAlxB6Q42AhggASgCVEHR/gA2AgQMAQsgASgCUCABKAJMSQR/IAEoAkggASgCQEkFQQALQQFxDQELCyABIAEoAihBA3Y2AgggASABKAJQIAEoAghrNgJQIAEgASgCKCABKAIIQQN0azYCKCABIAEoAixBASABKAIodEEBa3E2AiwgASgCXCABKAJQNgIAIAEoAlwgASgCSDYCDCABKAJcAn8gASgCUCABKAJMSQRAIAEoAkwgASgCUGtBBWoMAQtBBSABKAJQIAEoAkxraws2AgQgASgCXAJ/IAEoAkggASgCQEkEQCABKAJAIAEoAkhrQYECagwBC0GBAiABKAJIIAEoAkBraws2AhAgASgCVCABKAIsNgI8IAEoAlQgASgCKDYCQCAAIAAoAlgoAgw2AkggACAAKAJYKAIQNgJAIAAgACgCWCgCADYCTCAAIAAoAlgoAgQ2AkQgACAAKAJQKAI8NgI8IAAgACgCUCgCQDYCOCAAKAJQKAIEQb/+AEYEQCAAKAJQQX82Asg3CwwNCyAAKAJQQQA2Asg3A0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDQ0gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC0AIEUNACAALQAgQfABcQ0AIAAgACgBIDYBGANAAkAgACAAKAJQKAJQIAAvARogACgCPEEBIAAtABkgAC0AGGp0QQFrcSAALQAZdmpBAnRqKAEANgEgIAAoAjggAC0AGSAALQAhak8NACAAKAJERQ0OIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AGXY2AjwgACAAKAI4IAAtABlrNgI4IAAoAlAiASAALQAZIAEoAsg3ajYCyDcLIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggACgCUCIBIAAtACEgASgCyDdqNgLINyAAKAJQIAAvASI2AkQgAC0AIEUEQCAAKAJQQc3+ADYCBAwNCyAALQAgQSBxBEAgACgCUEF/NgLINyAAKAJQQb/+ADYCBAwNCyAALQAgQcAAcQRAIAAoAlhB6Q42AhggACgCUEHR/gA2AgQMDQsgACgCUCAALQAgQQ9xNgJMIAAoAlBByf4ANgIECyAAKAJQKAJMBEADQCAAKAI4IAAoAlAoAkxJBEAgACgCREUNDSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCIBIAEoAkQgACgCPEEBIAAoAlAoAkx0QQFrcWo2AkQgACAAKAI8IAAoAlAoAkx2NgI8IAAgACgCOCAAKAJQKAJMazYCOCAAKAJQIgEgACgCUCgCTCABKALIN2o2Asg3CyAAKAJQIAAoAlAoAkQ2Asw3IAAoAlBByv4ANgIECwNAAkAgACAAKAJQKAJUIAAoAjxBASAAKAJQKAJcdEEBa3FBAnRqKAEANgEgIAAtACEgACgCOE0NACAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAALQAgQfABcUUEQCAAIAAoASA2ARgDQAJAIAAgACgCUCgCVCAALwEaIAAoAjxBASAALQAZIAAtABhqdEEBa3EgAC0AGXZqQQJ0aigBADYBICAAKAI4IAAtABkgAC0AIWpPDQAgACgCREUNDCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtABl2NgI8IAAgACgCOCAALQAZazYCOCAAKAJQIgEgAC0AGSABKALIN2o2Asg3CyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAiASAALQAhIAEoAsg3ajYCyDcgAC0AIEHAAHEEQCAAKAJYQYUPNgIYIAAoAlBB0f4ANgIEDAsLIAAoAlAgAC8BIjYCSCAAKAJQIAAtACBBD3E2AkwgACgCUEHL/gA2AgQLIAAoAlAoAkwEQANAIAAoAjggACgCUCgCTEkEQCAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIgEgASgCSCAAKAI8QQEgACgCUCgCTHRBAWtxajYCSCAAIAAoAjwgACgCUCgCTHY2AjwgACAAKAI4IAAoAlAoAkxrNgI4IAAoAlAiASAAKAJQKAJMIAEoAsg3ajYCyDcLIAAoAlBBzP4ANgIECyAAKAJARQ0HIAAgACgCMCAAKAJAazYCLAJAIAAoAlAoAkggACgCLEsEQCAAIAAoAlAoAkggACgCLGs2AiwgACgCLCAAKAJQKAIwSwRAIAAoAlAoAsQ3BEAgACgCWEHdDDYCGCAAKAJQQdH+ADYCBAwMCwsCQCAAKAIsIAAoAlAoAjRLBEAgACAAKAIsIAAoAlAoAjRrNgIsIAAgACgCUCgCOCAAKAJQKAIsIAAoAixrajYCKAwBCyAAIAAoAlAoAjggACgCUCgCNCAAKAIsa2o2AigLIAAoAiwgACgCUCgCREsEQCAAIAAoAlAoAkQ2AiwLDAELIAAgACgCSCAAKAJQKAJIazYCKCAAIAAoAlAoAkQ2AiwLIAAoAiwgACgCQEsEQCAAIAAoAkA2AiwLIAAgACgCQCAAKAIsazYCQCAAKAJQIgEgASgCRCAAKAIsazYCRANAIAAgACgCKCIBQQFqNgIoIAEtAAAhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAIsQQFrIgE2AiwgAQ0ACyAAKAJQKAJERQRAIAAoAlBByP4ANgIECwwICyAAKAJARQ0GIAAoAlAoAkQhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAJAQQFrNgJAIAAoAlBByP4ANgIEDAcLIAAoAlAoAgwEQANAIAAoAjhBIEkEQCAAKAJERQ0IIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjAgACgCQGs2AjAgACgCWCIBIAAoAjAgASgCFGo2AhQgACgCUCIBIAAoAjAgASgCIGo2AiACQCAAKAJQKAIMQQRxRQ0AIAAoAjBFDQACfyAAKAJQKAIUBEAgACgCUCgCHCAAKAJIIAAoAjBrIAAoAjAQGgwBCyAAKAJQKAIcIAAoAkggACgCMGsgACgCMBA9CyEBIAAoAlAgATYCHCAAKAJYIAE2AjALIAAgACgCQDYCMAJAIAAoAlAoAgxBBHFFDQACfyAAKAJQKAIUBEAgACgCPAwBCyAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoLIAAoAlAoAhxGDQAgACgCWEHIDDYCGCAAKAJQQdH+ADYCBAwICyAAQQA2AjwgAEEANgI4CyAAKAJQQc/+ADYCBAsCQCAAKAJQKAIMRQ0AIAAoAlAoAhRFDQADQCAAKAI4QSBJBEAgACgCREUNByAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPCAAKAJQKAIgRwRAIAAoAlhBsQw2AhggACgCUEHR/gA2AgQMBwsgAEEANgI8IABBADYCOAsgACgCUEHQ/gA2AgQLIABBATYCEAwDCyAAQX02AhAMAgsgAEF8NgJcDAMLIABBfjYCXAwCCwsgACgCWCAAKAJINgIMIAAoAlggACgCQDYCECAAKAJYIAAoAkw2AgAgACgCWCAAKAJENgIEIAAoAlAgACgCPDYCPCAAKAJQIAAoAjg2AkACQAJAIAAoAlAoAiwNACAAKAIwIAAoAlgoAhBGDQEgACgCUCgCBEHR/gBPDQEgACgCUCgCBEHO/gBJDQAgACgCVEEERg0BCwJ/IAAoAlghAiAAKAJYKAIMIQMgACgCMCAAKAJYKAIQayEEIwBBIGsiASQAIAEgAjYCGCABIAM2AhQgASAENgIQIAEgASgCGCgCHDYCDAJAIAEoAgwoAjhFBEAgASgCGCgCKEEBIAEoAgwoAih0QQEgASgCGCgCIBEBACECIAEoAgwgAjYCOCABKAIMKAI4RQRAIAFBATYCHAwCCwsgASgCDCgCLEUEQCABKAIMQQEgASgCDCgCKHQ2AiwgASgCDEEANgI0IAEoAgxBADYCMAsCQCABKAIQIAEoAgwoAixPBEAgASgCDCgCOCABKAIUIAEoAgwoAixrIAEoAgwoAiwQGRogASgCDEEANgI0IAEoAgwgASgCDCgCLDYCMAwBCyABIAEoAgwoAiwgASgCDCgCNGs2AgggASgCCCABKAIQSwRAIAEgASgCEDYCCAsgASgCDCgCOCABKAIMKAI0aiABKAIUIAEoAhBrIAEoAggQGRogASABKAIQIAEoAghrNgIQAkAgASgCEARAIAEoAgwoAjggASgCFCABKAIQayABKAIQEBkaIAEoAgwgASgCEDYCNCABKAIMIAEoAgwoAiw2AjAMAQsgASgCDCICIAEoAgggAigCNGo2AjQgASgCDCgCNCABKAIMKAIsRgRAIAEoAgxBADYCNAsgASgCDCgCMCABKAIMKAIsSQRAIAEoAgwiAiABKAIIIAIoAjBqNgIwCwsLIAFBADYCHAsgASgCHCECIAFBIGokACACCwRAIAAoAlBB0v4ANgIEIABBfDYCXAwCCwsgACAAKAI0IAAoAlgoAgRrNgI0IAAgACgCMCAAKAJYKAIQazYCMCAAKAJYIgEgACgCNCABKAIIajYCCCAAKAJYIgEgACgCMCABKAIUajYCFCAAKAJQIgEgACgCMCABKAIgajYCIAJAIAAoAlAoAgxBBHFFDQAgACgCMEUNAAJ/IAAoAlAoAhQEQCAAKAJQKAIcIAAoAlgoAgwgACgCMGsgACgCMBAaDAELIAAoAlAoAhwgACgCWCgCDCAAKAIwayAAKAIwED0LIQEgACgCUCABNgIcIAAoAlggATYCMAsgACgCWCAAKAJQKAJAQcAAQQAgACgCUCgCCBtqQYABQQAgACgCUCgCBEG//gBGG2pBgAJBACAAKAJQKAIEQcf+AEcEfyAAKAJQKAIEQcL+AEYFQQELQQFxG2o2AiwCQAJAIAAoAjRFBEAgACgCMEUNAQsgACgCVEEERw0BCyAAKAIQDQAgAEF7NgIQCyAAIAAoAhA2AlwLIAAoAlwhASAAQeAAaiQAIAUgATYCCAsgBSgCECIAIAApAwAgBSgCDDUCIH03AwACQAJAAkACQAJAIAUoAghBBWoOBwIDAwMDAAEDCyAFQQA2AhwMAwsgBUEBNgIcDAILIAUoAgwoAhRFBEAgBUEDNgIcDAILCyAFKAIMKAIAQQ0gBSgCCBAUIAVBAjYCHAsgBSgCHCEAIAVBIGokACAACyQBAX8jAEEQayIBIAA2AgwgASABKAIMNgIIIAEoAghBAToADAuXAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjcDCCADIAMoAhg2AgQCQAJAIAMpAwhC/////w9YBEAgAygCBCgCFEUNAQsgAygCBCgCAEESQQAQFCADQQA6AB8MAQsgAygCBCADKQMIPgIUIAMoAgQgAygCFDYCECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAukAgECfyMAQRBrIgEkACABIAA2AgggASABKAIINgIEAkAgASgCBC0ABEEBcQRAIAEgASgCBEEQahC4ATYCAAwBCyABKAIEQRBqIQIjAEEQayIAJAAgACACNgIIAkAgACgCCBBKBEAgAEF+NgIMDAELIAAgACgCCCgCHDYCBCAAKAIEKAI4BEAgACgCCCgCKCAAKAIEKAI4IAAoAggoAiQRBAALIAAoAggoAiggACgCCCgCHCAAKAIIKAIkEQQAIAAoAghBADYCHCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgASACNgIACwJAIAEoAgAEQCABKAIEKAIAQQ0gASgCABAUIAFBADoADwwBCyABQQE6AA8LIAEtAA9BAXEhACABQRBqJAAgAAuyGAEFfyMAQRBrIgQkACAEIAA2AgggBCAEKAIINgIEIAQoAgRBADYCFCAEKAIEQQA2AhAgBCgCBEEANgIgIAQoAgRBADYCHAJAIAQoAgQtAARBAXEEQCAEKAIEQRBqIQEgBCgCBCgCCCECIwBBMGsiACQAIAAgATYCKCAAIAI2AiQgAEEINgIgIABBcTYCHCAAQQk2AhggAEEANgIUIABBwBI2AhAgAEE4NgIMIABBATYCBAJAAkACQCAAKAIQRQ0AIAAoAhAsAABB+O4ALAAARw0AIAAoAgxBOEYNAQsgAEF6NgIsDAELIAAoAihFBEAgAEF+NgIsDAELIAAoAihBADYCGCAAKAIoKAIgRQRAIAAoAihBBTYCICAAKAIoQQA2AigLIAAoAigoAiRFBEAgACgCKEEGNgIkCyAAKAIkQX9GBEAgAEEGNgIkCwJAIAAoAhxBAEgEQCAAQQA2AgQgAEEAIAAoAhxrNgIcDAELIAAoAhxBD0oEQCAAQQI2AgQgACAAKAIcQRBrNgIcCwsCQAJAIAAoAhhBAUgNACAAKAIYQQlKDQAgACgCIEEIRw0AIAAoAhxBCEgNACAAKAIcQQ9KDQAgACgCJEEASA0AIAAoAiRBCUoNACAAKAIUQQBIDQAgACgCFEEESg0AIAAoAhxBCEcNASAAKAIEQQFGDQELIABBfjYCLAwBCyAAKAIcQQhGBEAgAEEJNgIcCyAAIAAoAigoAihBAUHELSAAKAIoKAIgEQEANgIIIAAoAghFBEAgAEF8NgIsDAELIAAoAiggACgCCDYCHCAAKAIIIAAoAig2AgAgACgCCEEqNgIEIAAoAgggACgCBDYCGCAAKAIIQQA2AhwgACgCCCAAKAIcNgIwIAAoAghBASAAKAIIKAIwdDYCLCAAKAIIIAAoAggoAixBAWs2AjQgACgCCCAAKAIYQQdqNgJQIAAoAghBASAAKAIIKAJQdDYCTCAAKAIIIAAoAggoAkxBAWs2AlQgACgCCCAAKAIIKAJQQQJqQQNuNgJYIAAoAigoAiggACgCCCgCLEECIAAoAigoAiARAQAhASAAKAIIIAE2AjggACgCKCgCKCAAKAIIKAIsQQIgACgCKCgCIBEBACEBIAAoAgggATYCQCAAKAIoKAIoIAAoAggoAkxBAiAAKAIoKAIgEQEAIQEgACgCCCABNgJEIAAoAghBADYCwC0gACgCCEEBIAAoAhhBBmp0NgKcLSAAIAAoAigoAiggACgCCCgCnC1BBCAAKAIoKAIgEQEANgIAIAAoAgggACgCADYCCCAAKAIIIAAoAggoApwtQQJ0NgIMAkACQCAAKAIIKAI4RQ0AIAAoAggoAkBFDQAgACgCCCgCREUNACAAKAIIKAIIDQELIAAoAghBmgU2AgQgACgCKEG42QAoAgA2AhggACgCKBC4ARogAEF8NgIsDAELIAAoAgggACgCACAAKAIIKAKcLUEBdkEBdGo2AqQtIAAoAgggACgCCCgCCCAAKAIIKAKcLUEDbGo2ApgtIAAoAgggACgCJDYChAEgACgCCCAAKAIUNgKIASAAKAIIIAAoAiA6ACQgACgCKCEBIwBBEGsiAyQAIAMgATYCDCADKAIMIQIjAEEQayIBJAAgASACNgIIAkAgASgCCBB4BEAgAUF+NgIMDAELIAEoAghBADYCFCABKAIIQQA2AgggASgCCEEANgIYIAEoAghBAjYCLCABIAEoAggoAhw2AgQgASgCBEEANgIUIAEoAgQgASgCBCgCCDYCECABKAIEKAIYQQBIBEAgASgCBEEAIAEoAgQoAhhrNgIYCyABKAIEIAEoAgQoAhhBAkYEf0E5BUEqQfEAIAEoAgQoAhgbCzYCBAJ/IAEoAgQoAhhBAkYEQEEAQQBBABAaDAELQQBBAEEAED0LIQIgASgCCCACNgIwIAEoAgRBADYCKCABKAIEIQUjAEEQayICJAAgAiAFNgIMIAIoAgwgAigCDEGUAWo2ApgWIAIoAgxB0N8ANgKgFiACKAIMIAIoAgxBiBNqNgKkFiACKAIMQeTfADYCrBYgAigCDCACKAIMQfwUajYCsBYgAigCDEH43wA2ArgWIAIoAgxBADsBuC0gAigCDEEANgK8LSACKAIMEL4BIAJBEGokACABQQA2AgwLIAEoAgwhAiABQRBqJAAgAyACNgIIIAMoAghFBEAgAygCDCgCHCECIwBBEGsiASQAIAEgAjYCDCABKAIMIAEoAgwoAixBAXQ2AjwgASgCDCgCRCABKAIMKAJMQQFrQQF0akEAOwEAIAEoAgwoAkRBACABKAIMKAJMQQFrQQF0EDMgASgCDCABKAIMKAKEAUEMbEGA7wBqLwECNgKAASABKAIMIAEoAgwoAoQBQQxsQYDvAGovAQA2AowBIAEoAgwgASgCDCgChAFBDGxBgO8Aai8BBDYCkAEgASgCDCABKAIMKAKEAUEMbEGA7wBqLwEGNgJ8IAEoAgxBADYCbCABKAIMQQA2AlwgASgCDEEANgJ0IAEoAgxBADYCtC0gASgCDEECNgJ4IAEoAgxBAjYCYCABKAIMQQA2AmggASgCDEEANgJIIAFBEGokAAsgAygCCCEBIANBEGokACAAIAE2AiwLIAAoAiwhASAAQTBqJAAgBCABNgIADAELIAQoAgRBEGohASMAQSBrIgAkACAAIAE2AhggAEFxNgIUIABBwBI2AhAgAEE4NgIMAkACQAJAIAAoAhBFDQAgACgCECwAAEHAEiwAAEcNACAAKAIMQThGDQELIABBejYCHAwBCyAAKAIYRQRAIABBfjYCHAwBCyAAKAIYQQA2AhggACgCGCgCIEUEQCAAKAIYQQU2AiAgACgCGEEANgIoCyAAKAIYKAIkRQRAIAAoAhhBBjYCJAsgACAAKAIYKAIoQQFB0DcgACgCGCgCIBEBADYCBCAAKAIERQRAIABBfDYCHAwBCyAAKAIYIAAoAgQ2AhwgACgCBCAAKAIYNgIAIAAoAgRBADYCOCAAKAIEQbT+ADYCBCAAKAIYIQIgACgCFCEDIwBBIGsiASQAIAEgAjYCGCABIAM2AhQCQCABKAIYEEoEQCABQX42AhwMAQsgASABKAIYKAIcNgIMAkAgASgCFEEASARAIAFBADYCECABQQAgASgCFGs2AhQMAQsgASABKAIUQQR1QQVqNgIQIAEoAhRBMEgEQCABIAEoAhRBD3E2AhQLCwJAIAEoAhRFDQAgASgCFEEITgRAIAEoAhRBD0wNAQsgAUF+NgIcDAELAkAgASgCDCgCOEUNACABKAIMKAIoIAEoAhRGDQAgASgCGCgCKCABKAIMKAI4IAEoAhgoAiQRBAAgASgCDEEANgI4CyABKAIMIAEoAhA2AgwgASgCDCABKAIUNgIoIAEoAhghAiMAQRBrIgMkACADIAI2AggCQCADKAIIEEoEQCADQX42AgwMAQsgAyADKAIIKAIcNgIEIAMoAgRBADYCLCADKAIEQQA2AjAgAygCBEEANgI0IAMoAgghBSMAQRBrIgIkACACIAU2AggCQCACKAIIEEoEQCACQX42AgwMAQsgAiACKAIIKAIcNgIEIAIoAgRBADYCICACKAIIQQA2AhQgAigCCEEANgIIIAIoAghBADYCGCACKAIEKAIMBEAgAigCCCACKAIEKAIMQQFxNgIwCyACKAIEQbT+ADYCBCACKAIEQQA2AgggAigCBEEANgIQIAIoAgRBgIACNgIYIAIoAgRBADYCJCACKAIEQQA2AjwgAigCBEEANgJAIAIoAgQgAigCBEG0CmoiBTYCcCACKAIEIAU2AlQgAigCBCAFNgJQIAIoAgRBATYCxDcgAigCBEF/NgLINyACQQA2AgwLIAIoAgwhBSACQRBqJAAgAyAFNgIMCyADKAIMIQIgA0EQaiQAIAEgAjYCHAsgASgCHCECIAFBIGokACAAIAI2AgggACgCCARAIAAoAhgoAiggACgCBCAAKAIYKAIkEQQAIAAoAhhBADYCHAsgACAAKAIINgIcCyAAKAIcIQEgAEEgaiQAIAQgATYCAAsCQCAEKAIABEAgBCgCBCgCAEENIAQoAgAQFCAEQQA6AA8MAQsgBEEBOgAPCyAELQAPQQFxIQAgBEEQaiQAIAALbwEBfyMAQRBrIgEgADYCCCABIAEoAgg2AgQCQCABKAIELQAEQQFxRQRAIAFBADYCDAwBCyABKAIEKAIIQQNIBEAgAUECNgIMDAELIAEoAgQoAghBB0oEQCABQQE2AgwMAQsgAUEANgIMCyABKAIMCywBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABKAIIEBUgAUEQaiQACzwBAX8jAEEQayIDJAAgAyAAOwEOIAMgATYCCCADIAI2AgRBASADKAIIIAMoAgQQtAEhACADQRBqJAAgAAvBEAECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCACKAIYKAJgNgJ4IAIoAhggAigCGCgCcDYCZCACKAIYQQI2AmACQCACKAIQRQ0AIAIoAhgoAnggAigCGCgCgAFPDQAgAigCGCgCLEGGAmsgAigCGCgCbCACKAIQa0kNACACKAIYIAIoAhAQtgEhACACKAIYIAA2AmACQCACKAIYKAJgQQVLDQAgAigCGCgCiAFBAUcEQCACKAIYKAJgQQNHDQEgAigCGCgCbCACKAIYKAJwa0GAIE0NAQsgAigCGEECNgJgCwsCQAJAIAIoAhgoAnhBA0kNACACKAIYKAJgIAIoAhgoAnhLDQAgAiACKAIYIgAoAmwgACgCdGpBA2s2AgggAiACKAIYKAJ4QQNrOgAHIAIgAigCGCIAKAJsIAAoAmRBf3NqOwEEIAIoAhgiACgCpC0gACgCoC1BAXRqIAIvAQQ7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACIAIvAQRBAWs7AQQgAigCGCACLQAHQdDdAGotAABBAnRqQZgJaiIAIAAvAQBBAWo7AQAgAigCGEGIE2oCfyACLwEEQYACSQRAIAIvAQQtANBZDAELIAIvAQRBB3ZBgAJqLQDQWQtBAnRqIgAgAC8BAEEBajsBACACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYIgAgACgCdCACKAIYKAJ4QQFrazYCdCACKAIYIgAgACgCeEECazYCeANAIAIoAhgiASgCbEEBaiEAIAEgADYCbCAAIAIoAghNBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCIBKAJ4QQFrIQAgASAANgJ4IAANAAsgAigCGEEANgJoIAIoAhhBAjYCYCACKAIYIgAgACgCbEEBajYCbCACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBgsLDAELAkAgAigCGCgCaARAIAIgAigCGCIAKAI4IAAoAmxqQQFrLQAAOgADIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AAyEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAANBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAgwEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHAsgAigCGCIAIAAoAmxBAWo2AmwgAigCGCIAIAAoAnRBAWs2AnQgAigCGCgCACgCEEUEQCACQQA2AhwMBgsMAQsgAigCGEEBNgJoIAIoAhgiACAAKAJsQQFqNgJsIAIoAhgiACAAKAJ0QQFrNgJ0CwsMAQsLIAIoAhgoAmgEQCACIAIoAhgiACgCOCAAKAJsakEBay0AADoAAiACKAIYIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAAIhASACKAIYIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCGCACLQACQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYQQA2AmgLIAIoAhgCfyACKAIYKAJsQQJJBEAgAigCGCgCbAwBC0ECCzYCtC0gAigCFEEERgRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQEQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkECNgIcDAILIAJBAzYCHAwBCyACKAIYKAKgLQRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQAQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkEANgIcDAILCyACQQE2AhwLIAIoAhwhACACQSBqJAAgAAuVDQECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsCQCACKAIQRQ0AIAIoAhgoAixBhgJrIAIoAhgoAmwgAigCEGtJDQAgAigCGCACKAIQELYBIQAgAigCGCAANgJgCwJAIAIoAhgoAmBBA08EQCACIAIoAhgoAmBBA2s6AAsgAiACKAIYIgAoAmwgACgCcGs7AQggAigCGCIAKAKkLSAAKAKgLUEBdGogAi8BCDsBACACLQALIQEgAigCGCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BCEEBazsBCCACKAIYIAItAAtB0N0Aai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIYQYgTagJ/IAIvAQhBgAJJBEAgAi8BCC0A0FkMAQsgAi8BCEEHdkGAAmotANBZC0ECdGoiACAALwEAQQFqOwEAIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0IAIoAhgoAmBrNgJ0AkACQCACKAIYKAJgIAIoAhgoAoABSw0AIAIoAhgoAnRBA0kNACACKAIYIgAgACgCYEEBazYCYANAIAIoAhgiACAAKAJsQQFqNgJsIAIoAhggAigCGCgCVCACKAIYKAI4IAIoAhgoAmxBAmpqLQAAIAIoAhgoAkggAigCGCgCWHRzcTYCSCACKAIYKAJAIAIoAhgoAmwgAigCGCgCNHFBAXRqIAIoAhgoAkQgAigCGCgCSEEBdGovAQAiADsBACACIABB//8DcTYCECACKAIYKAJEIAIoAhgoAkhBAXRqIAIoAhgoAmw7AQAgAigCGCIBKAJgQQFrIQAgASAANgJgIAANAAsgAigCGCIAIAAoAmxBAWo2AmwMAQsgAigCGCIAIAIoAhgoAmAgACgCbGo2AmwgAigCGEEANgJgIAIoAhggAigCGCgCOCACKAIYKAJsai0AADYCSCACKAIYIAIoAhgoAlQgAigCGCgCOCACKAIYKAJsQQFqai0AACACKAIYKAJIIAIoAhgoAlh0c3E2AkgLDAELIAIgAigCGCIAKAI4IAAoAmxqLQAAOgAHIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAAdBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0QQFrNgJ0IAIoAhgiACAAKAJsQQFqNgJsCyACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBAsLDAELCyACKAIYAn8gAigCGCgCbEECSQRAIAIoAhgoAmwMAQtBAgs2ArQtIAIoAhRBBEYEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EBECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBAjYCHAwCCyACQQM2AhwMAQsgAigCGCgCoC0EQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBADYCHAwCCwsgAkEBNgIcCyACKAIcIQAgAkEgaiQAIAALBwAgAC8BMAspAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCCBAVIAJBEGokAAs6AQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgggAygCBGwQGCEAIANBEGokACAAC84FAQF/IwBB0ABrIgUkACAFIAA2AkQgBSABNgJAIAUgAjYCPCAFIAM3AzAgBSAENgIsIAUgBSgCQDYCKAJAAkACQAJAAkACQAJAAkACQCAFKAIsDg8AAQIDBQYHBwcHBwcHBwQHCwJ/IAUoAkQhASAFKAIoIQIjAEHgAGsiACQAIAAgATYCWCAAIAI2AlQgACAAKAJYIABByABqQgwQKyIDNwMIAkAgA0IAUwRAIAAoAlQgACgCWBAXIABBfzYCXAwBCyAAKQMIQgxSBEAgACgCVEERQQAQFCAAQX82AlwMAQsgACgCVCAAQcgAaiAAQcgAakIMQQAQfCAAKAJYIABBEGoQOUEASARAIABBADYCXAwBCyAAKAI4IABBBmogAEEEahCNAQJAIAAtAFMgACgCPEEYdkYNACAALQBTIAAvAQZBCHZGDQAgACgCVEEbQQAQFCAAQX82AlwMAQsgAEEANgJcCyAAKAJcIQEgAEHgAGokACABQQBICwRAIAVCfzcDSAwICyAFQgA3A0gMBwsgBSAFKAJEIAUoAjwgBSkDMBArIgM3AyAgA0IAUwRAIAUoAiggBSgCRBAXIAVCfzcDSAwHCyAFKAJAIAUoAjwgBSgCPCAFKQMgQQAQfCAFIAUpAyA3A0gMBgsgBUIANwNIDAULIAUgBSgCPDYCHCAFKAIcQQA7ATIgBSgCHCIAIAApAwBCgAGENwMAIAUoAhwpAwBCCINCAFIEQCAFKAIcIgAgACkDIEIMfTcDIAsgBUIANwNIDAQLIAVBfzYCFCAFQQU2AhAgBUEENgIMIAVBAzYCCCAFQQI2AgQgBUEBNgIAIAVBACAFEDQ3A0gMAwsgBSAFKAIoIAUoAjwgBSkDMBBDNwNIDAILIAUoAigQvwEgBUIANwNIDAELIAUoAihBEkEAEBQgBUJ/NwNICyAFKQNIIQMgBUHQAGokACADC+4CAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE2AhQgBSACOwESIAUgAzYCDCAFIAQ2AggCQAJAAkAgBSgCCEUNACAFKAIURQ0AIAUvARJBAUYNAQsgBSgCGEEIakESQQAQFCAFQQA2AhwMAQsgBSgCDEEBcQRAIAUoAhhBCGpBGEEAEBQgBUEANgIcDAELIAVBGBAYIgA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBADYCHAwBCyMAQRBrIgAgBSgCBDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAFKAIEQfis0ZEBNgIMIAUoAgRBic+VmgI2AhAgBSgCBEGQ8dmiAzYCFCAFKAIEQQAgBSgCCCAFKAIIEC6tQQEQfCAFIAUoAhggBSgCFEEDIAUoAgQQYSIANgIAIABFBEAgBSgCBBC/ASAFQQA2AhwMAQsgBSAFKAIANgIcCyAFKAIcIQAgBUEgaiQAIAALBwAgACgCIAu9GAECfyMAQfAAayIEJAAgBCAANgJkIAQgATYCYCAEIAI3A1ggBCADNgJUIAQgBCgCZDYCUAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCVA4UBgcCDAQFCg8AAwkRCxAOCBIBEg0SC0EAQgBBACAEKAJQEEwhACAEKAJQIAA2AhQgAEUEQCAEQn83A2gMEwsgBCgCUCgCFEIANwM4IAQoAlAoAhRCADcDQCAEQgA3A2gMEgsgBCgCUCgCECEBIAQpA1ghAiAEKAJQIQMjAEFAaiIAJAAgACABNgI4IAAgAjcDMCAAIAM2AiwCQCAAKQMwUARAIABBAEIAQQEgACgCLBBMNgI8DAELIAApAzAgACgCOCkDMFYEQCAAKAIsQRJBABAUIABBADYCPAwBCyAAKAI4KAIoBEAgACgCLEEdQQAQFCAAQQA2AjwMAQsgACAAKAI4IAApAzAQwAE3AyAgACAAKQMwIAAoAjgoAgQgACkDIKdBA3RqKQMAfTcDGCAAKQMYUARAIAAgACkDIEIBfTcDICAAIAAoAjgoAgAgACkDIKdBBHRqKQMINwMYCyAAIAAoAjgoAgAgACkDIKdBBHRqKQMIIAApAxh9NwMQIAApAxAgACkDMFYEQCAAKAIsQRxBABAUIABBADYCPAwBCyAAIAAoAjgoAgAgACkDIEIBfEEAIAAoAiwQTCIBNgIMIAFFBEAgAEEANgI8DAELIAAoAgwoAgAgACgCDCkDCEIBfadBBHRqIAApAxg3AwggACgCDCgCBCAAKAIMKQMIp0EDdGogACkDMDcDACAAKAIMIAApAzA3AzAgACgCDAJ+IAAoAjgpAxggACgCDCkDCEIBfVQEQCAAKAI4KQMYDAELIAAoAgwpAwhCAX0LNwMYIAAoAjggACgCDDYCKCAAKAIMIAAoAjg2AiggACgCOCAAKAIMKQMINwMgIAAoAgwgACkDIEIBfDcDICAAIAAoAgw2AjwLIAAoAjwhASAAQUBrJAAgASEAIAQoAlAgADYCFCAARQRAIARCfzcDaAwSCyAEKAJQKAIUIAQpA1g3AzggBCgCUCgCFCAEKAJQKAIUKQMINwNAIARCADcDaAwRCyAEQgA3A2gMEAsgBCgCUCgCEBAyIAQoAlAgBCgCUCgCFDYCECAEKAJQQQA2AhQgBEIANwNoDA8LIAQgBCgCUCAEKAJgIAQpA1gQQzcDaAwOCyAEKAJQKAIQEDIgBCgCUCgCFBAyIAQoAlAQFSAEQgA3A2gMDQsgBCgCUCgCEEIANwM4IAQoAlAoAhBCADcDQCAEQgA3A2gMDAsgBCkDWEL///////////8AVgRAIAQoAlBBEkEAEBQgBEJ/NwNoDAwLIAQoAlAoAhAhASAEKAJgIQMgBCkDWCECIwBBQGoiACQAIAAgATYCNCAAIAM2AjAgACACNwMoIAACfiAAKQMoIAAoAjQpAzAgACgCNCkDOH1UBEAgACkDKAwBCyAAKAI0KQMwIAAoAjQpAzh9CzcDKAJAIAApAyhQBEAgAEIANwM4DAELIAApAyhC////////////AFYEQCAAQn83AzgMAQsgACAAKAI0KQNANwMYIAAgACgCNCkDOCAAKAI0KAIEIAApAxinQQN0aikDAH03AxAgAEIANwMgA0AgACkDICAAKQMoVARAIAACfiAAKQMoIAApAyB9IAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9VARAIAApAyggACkDIH0MAQsgACgCNCgCACAAKQMYp0EEdGopAwggACkDEH0LNwMIIAAoAjAgACkDIKdqIAAoAjQoAgAgACkDGKdBBHRqKAIAIAApAxCnaiAAKQMIpxAZGiAAKQMIIAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9UQRAIAAgACkDGEIBfDcDGAsgACAAKQMIIAApAyB8NwMgIABCADcDEAwBCwsgACgCNCIBIAApAyAgASkDOHw3AzggACgCNCAAKQMYNwNAIAAgACkDIDcDOAsgACkDOCECIABBQGskACAEIAI3A2gMCwsgBEEAQgBBACAEKAJQEEw2AkwgBCgCTEUEQCAEQn83A2gMCwsgBCgCUCgCEBAyIAQoAlAgBCgCTDYCECAEQgA3A2gMCgsgBCgCUCgCFBAyIAQoAlBBADYCFCAEQgA3A2gMCQsgBCAEKAJQKAIQIAQoAmAgBCkDWCAEKAJQEMEBrDcDaAwICyAEIAQoAlAoAhQgBCgCYCAEKQNYIAQoAlAQwQGsNwNoDAcLIAQpA1hCOFQEQCAEKAJQQRJBABAUIARCfzcDaAwHCyAEIAQoAmA2AkggBCgCSBA7IAQoAkggBCgCUCgCDDYCKCAEKAJIIAQoAlAoAhApAzA3AxggBCgCSCAEKAJIKQMYNwMgIAQoAkhBADsBMCAEKAJIQQA7ATIgBCgCSELcATcDACAEQjg3A2gMBgsgBCgCUCAEKAJgKAIANgIMIARCADcDaAwFCyAEQX82AkAgBEETNgI8IARBCzYCOCAEQQ02AjQgBEEMNgIwIARBCjYCLCAEQQ82AiggBEEJNgIkIARBETYCICAEQQg2AhwgBEEHNgIYIARBBjYCFCAEQQU2AhAgBEEENgIMIARBAzYCCCAEQQI2AgQgBEEBNgIAIARBACAEEDQ3A2gMBAsgBCgCUCgCECkDOEL///////////8AVgRAIAQoAlBBHkE9EBQgBEJ/NwNoDAQLIAQgBCgCUCgCECkDODcDaAwDCyAEKAJQKAIUKQM4Qv///////////wBWBEAgBCgCUEEeQT0QFCAEQn83A2gMAwsgBCAEKAJQKAIUKQM4NwNoDAILIAQpA1hC////////////AFYEQCAEKAJQQRJBABAUIARCfzcDaAwCCyAEKAJQKAIUIQEgBCgCYCEDIAQpA1ghAiAEKAJQIQUjAEHgAGsiACQAIAAgATYCVCAAIAM2AlAgACACNwNIIAAgBTYCRAJAIAApA0ggACgCVCkDOCAAKQNIfEL//wN8VgRAIAAoAkRBEkEAEBQgAEJ/NwNYDAELIAAgACgCVCgCBCAAKAJUKQMIp0EDdGopAwA3AyAgACkDICAAKAJUKQM4IAApA0h8VARAIAAgACgCVCkDCCAAKQNIIAApAyAgACgCVCkDOH19Qv//A3xCEIh8NwMYIAApAxggACgCVCkDEFYEQCAAIAAoAlQpAxA3AxAgACkDEFAEQCAAQhA3AxALA0AgACkDECAAKQMYVARAIAAgACkDEEIBhjcDEAwBCwsgACgCVCAAKQMQIAAoAkQQwgFBAXFFBEAgACgCREEOQQAQFCAAQn83A1gMAwsLA0AgACgCVCkDCCAAKQMYVARAQYCABBAYIQEgACgCVCgCACAAKAJUKQMIp0EEdGogATYCACABBEAgACgCVCgCACAAKAJUKQMIp0EEdGpCgIAENwMIIAAoAlQiASABKQMIQgF8NwMIIAAgACkDIEKAgAR8NwMgIAAoAlQoAgQgACgCVCkDCKdBA3RqIAApAyA3AwAMAgUgACgCREEOQQAQFCAAQn83A1gMBAsACwsLIAAgACgCVCkDQDcDMCAAIAAoAlQpAzggACgCVCgCBCAAKQMwp0EDdGopAwB9NwMoIABCADcDOANAIAApAzggACkDSFQEQCAAAn4gACkDSCAAKQM4fSAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVQEQCAAKQNIIAApAzh9DAELIAAoAlQoAgAgACkDMKdBBHRqKQMIIAApAyh9CzcDCCAAKAJUKAIAIAApAzCnQQR0aigCACAAKQMop2ogACgCUCAAKQM4p2ogACkDCKcQGRogACkDCCAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVEEQCAAIAApAzBCAXw3AzALIAAgACkDCCAAKQM4fDcDOCAAQgA3AygMAQsLIAAoAlQiASAAKQM4IAEpAzh8NwM4IAAoAlQgACkDMDcDQCAAKAJUKQM4IAAoAlQpAzBWBEAgACgCVCAAKAJUKQM4NwMwCyAAIAApAzg3A1gLIAApA1ghAiAAQeAAaiQAIAQgAjcDaAwBCyAEKAJQQRxBABAUIARCfzcDaAsgBCkDaCECIARB8ABqJAAgAgsHACAAKAIACxgAQaibAUIANwIAQbCbAUEANgIAQaibAQuGAQIEfwF+IwBBEGsiASQAAkAgACkDMFAEQAwBCwNAAkAgACAFQQAgAUEPaiABQQhqEIoBIgRBf0YNACABLQAPQQNHDQAgAiABKAIIQYCAgIB/cUGAgICAekZqIQILQX8hAyAEQX9GDQEgAiEDIAVCAXwiBSAAKQMwVA0ACwsgAUEQaiQAIAMLC4GNASMAQYAIC4EMaW5zdWZmaWNpZW50IG1lbW9yeQBuZWVkIGRpY3Rpb25hcnkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQASW52YWxpZCBhcmd1bWVudABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdABGaWxlIGFscmVhZHkgZXhpc3RzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAJXMlcyVzAGJ1ZmZlciBlcnJvcgBObyBlcnJvcgBzdHJlYW0gZXJyb3IAVGVsbCBlcnJvcgBJbnRlcm5hbCBlcnJvcgBTZWVrIGVycm9yAFdyaXRlIGVycm9yAGZpbGUgZXJyb3IAUmVhZCBlcnJvcgBabGliIGVycm9yAGRhdGEgZXJyb3IAQ1JDIGVycm9yAGluY29tcGF0aWJsZSB2ZXJzaW9uAG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){Ir(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var T=ee.toString();throw P("failed to compile wasm module: "+T),(T.includes("imported Memory")||T.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function Qp(){var f={a:da};function E(L,T){var ee=L.exports;t.asm=ee,A=t.asm.u,Tr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var br,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Nn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Nn.GMTString||(Nn.GMTString=ye("GMT")),de[E+40>>2]=Nn.GMTString,E}function ae(f,E){return Nn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Tl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){Ir("randomDevice")}}var Tn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:b.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Tn.resolve(f).substr(1),E=Tn.resolve(E).substr(1);function w(it){for(var at=0;at=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),T=Math.min(k.length,L.length),ee=T,Ie=0;Ie0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var QC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=QC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var xke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[bC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[xi])===null||c===void 0||c.destroy();return}for(let g of this[bC])g();this[bC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{bke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[xi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[b6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Gf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new QC(a,this))}),e.once("aborted",()=>{this._beforeError(new QC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[xi]&&(this[dR](),delete this[xi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,xke),this[xi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:x}=B.groups;Object.assign(o,{socketPath:S,path:x,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[xi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),Qke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[Q6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Gf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[bC].push(n)}_writeRequest(e,t,i){this[xi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[xi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(xi in this)){e();return}if(this[xi].destroyed){e();return}this[xi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[xi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[bC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[Q6]),xi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[xi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[xi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[b6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[xi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Gf]/this[jf]:this[jf]===this[Gf]?e=1:e=0,{percent:e,transferred:this[Gf],total:this[jf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[xi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var P6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Nke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Tke=J("events"),Lke=Ya(),Oke=Pz(),gB=vC(),x6=P6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Tke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:x}=g;if(S&&!x.decompress)d.body=y;else try{d.body=x6.default(d,x.responseType,x.parseJson,x.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of x.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},x);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return x6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Nke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var N6=Ya();function T6(r){for(let e of Object.values(r))(N6.default.plainObject(e)||N6.default.array(e))&&T6(e);return Object.freeze(r)}BR.default=T6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var bR=I(bs=>{"use strict";var Gke=bs&&bs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=bs&&bs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Gke(e,r,t)};Object.defineProperty(bs,"__esModule",{value:!0});bs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];bs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==bs.defaultHandler),s.length===0&&s.push(bs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};bs.default=j6;Yke(M6(),bs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),G6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=bR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},QR=Y6.default(eDe);qa.default=QR;pB.exports=QR;pB.exports.default=QR;pB.exports.__esModule=!0;G6(bR(),qa);G6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),x=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&Ir("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:Ir("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||Ir("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E>10,56320|it&1023)}}return T}function De(f,E){return f?xe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,G,fe,re,de,Ze,vt,mt;function Tr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=G=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!Q.init.initialized&&Q.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function Ir(f){t.onAbort&&t.onAbort(f),f+="",x(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Nl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Nl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACIVCAFINACACQgGDIAJ8IQILIAhBIGokACACIAZCgICAgICAgICAf4OEvws5AwALrRcDEn8CfgF8IwBBsARrIgkkACAJQQA2AiwCQCABvSIYQn9XBEBBASESQa4IIRMgAZoiAb0hGAwBCyAEQYAQcQRAQQEhEkGxCCETDAELQbQIQa8IIARBAXEiEhshEyASRSEXCwJAIBhCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiASQQNqIg0gBEH//3txECYgACATIBIQIiAAQeQLQbUSIAVBIHEiAxtBjw1BuRIgAxsgASABYhtBAxAiDAELIAlBEGohEAJAAn8CQCABIAlBLGoQqQEiASABoCIBRAAAAAAAAAAAYgRAIAkgCSgCLCIGQQFrNgIsIAVBIHIiFEHhAEcNAQwDCyAFQSByIhRB4QBGDQIgCSgCLCELQQYgAyADQQBIGwwBCyAJIAZBHWsiCzYCLCABRAAAAAAAALBBoiEBQQYgAyADQQBIGwshCiAJQTBqIAlB0AJqIAtBAEgbIg4hBwNAIAcCfyABRAAAAAAAAPBBYyABRAAAAAAAAAAAZnEEQCABqwwBC0EACyIDNgIAIAdBBGohByABIAO4oUQAAAAAZc3NQaIiAUQAAAAAAAAAAGINAAsCQCALQQFIBEAgCyEDIAchBiAOIQgMAQsgDiEIIAshAwNAIANBHSADQR1IGyEMAkAgB0EEayIGIAhJDQAgDK0hGUIAIRgDQCAGIAY1AgAgGYYgGHwiGCAYQoCU69wDgCIYQoCU69wDfn0+AgAgCCAGQQRrIgZNBEAgGEL/////D4MhGAwBCwsgGKciA0UNACAIQQRrIgggAzYCAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyAJIAkoAiwgDGsiAzYCLCAGIQcgA0EASg0ACwsgCkEZakEJbSEHIANBf0wEQCAHQQFqIQ0gFEHmAEYhFQNAQQlBACADayADQXdIGyEWAkAgBiAISwRAQYCU69wDIBZ2IQ9BfyAWdEF/cyERQQAhAyAIIQcDQCAHIAMgBygCACIMIBZ2ajYCACAMIBFxIA9sIQMgB0EEaiIHIAZJDQALIAggCEEEaiAIKAIAGyEIIANFDQEgBiADNgIAIAZBBGohBgwBCyAIIAhBBGogCCgCABshCAsgCSAJKAIsIBZqIgM2AiwgDiAIIBUbIgcgDUECdGogBiAGIAdrQQJ1IA1KGyEGIANBAEgNAAsLQQAhBwJAIAYgCE0NACAOIAhrQQJ1QQlsIQcgCCgCACIMQQpJDQBB5AAhAwNAIAdBAWohByADIAxLDQEgA0EKbCEDDAALAAsgCkEAIAcgFEHmAEYbayAUQecARiAKQQBHcWsiAyAGIA5rQQJ1QQlsQQlrSARAIANBgMgAaiIRQQltIgxBAnQgCUEwakEEciAJQdQCaiALQQBIG2pBgCBrIQ1BCiEDAkAgESAMQQlsayIMQQdKDQBB5AAhAwNAIAxBAWoiDEEIRg0BIANBCmwhAwwACwALAkAgDSgCACIRIBEgA24iDCADbGsiD0EBIA1BBGoiCyAGRhtFDQBEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiALRhtEAAAAAAAA+D8gDyADQQF2IgtGGyALIA9LGyEaRAEAAAAAAEBDRAAAAAAAAEBDIAxBAXEbIQECQCAXDQAgEy0AAEEtRw0AIBqaIRogAZohAQsgDSARIA9rIgs2AgAgASAaoCABYQ0AIA0gAyALaiIDNgIAIANBgJTr3ANPBEADQCANQQA2AgAgCCANQQRrIg1LBEAgCEEEayIIQQA2AgALIA0gDSgCAEEBaiIDNgIAIANB/5Pr3ANLDQALCyAOIAhrQQJ1QQlsIQcgCCgCACILQQpJDQBB5AAhAwNAIAdBAWohByADIAtLDQEgA0EKbCEDDAALAAsgDUEEaiIDIAYgAyAGSRshBgsDQCAGIgsgCE0iDEUEQCALQQRrIgYoAgBFDQELCwJAIBRB5wBHBEAgBEEIcSEPDAELIAdBf3NBfyAKQQEgChsiBiAHSiAHQXtKcSIDGyAGaiEKQX9BfiADGyAFaiEFIARBCHEiDw0AQXchBgJAIAwNACALQQRrKAIAIgNFDQBBACEGIANBCnANAEEAIQxB5AAhBgNAIAMgBnBFBEAgDEEBaiEMIAZBCmwhBgwBCwsgDEF/cyEGCyALIA5rQQJ1QQlsIQMgBUFfcUHGAEYEQEEAIQ8gCiADIAZqQQlrIgNBACADQQBKGyIDIAMgCkobIQoMAQtBACEPIAogAyAHaiAGakEJayIDQQAgA0EAShsiAyADIApKGyEKCyAKIA9yQQBHIREgAEEgIAIgBUFfcSIMQcYARgR/IAdBACAHQQBKGwUgECAHIAdBH3UiA2ogA3OtIBAQRCIGa0EBTARAA0AgBkEBayIGQTA6AAAgECAGa0ECSA0ACwsgBkECayIVIAU6AAAgBkEBa0EtQSsgB0EASBs6AAAgECAVawsgCiASaiARampBAWoiDSAEECYgACATIBIQIiAAQTAgAiANIARBgIAEcxAmAkACQAJAIAxBxgBGBEAgCUEQakEIciEDIAlBEGpBCXIhByAOIAggCCAOSxsiBSEIA0AgCDUCACAHEEQhBgJAIAUgCEcEQCAGIAlBEGpNDQEDQCAGQQFrIgZBMDoAACAGIAlBEGpLDQALDAELIAYgB0cNACAJQTA6ABggAyEGCyAAIAYgByAGaxAiIAhBBGoiCCAOTQ0AC0EAIQYgEUUNAiAAQdYSQQEQIiAIIAtPDQEgCkEBSA0BA0AgCDUCACAHEEQiBiAJQRBqSwRAA0AgBkEBayIGQTA6AAAgBiAJQRBqSw0ACwsgACAGIApBCSAKQQlIGxAiIApBCWshBiAIQQRqIgggC08NAyAKQQlKIQMgBiEKIAMNAAsMAgsCQCAKQQBIDQAgCyAIQQRqIAggC0kbIQUgCUEQakEJciELIAlBEGpBCHIhAyAIIQcDQCALIAc1AgAgCxBEIgZGBEAgCUEwOgAYIAMhBgsCQCAHIAhHBEAgBiAJQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiAJQRBqSw0ACwwBCyAAIAZBARAiIAZBAWohBkEAIApBAEwgDxsNACAAQdYSQQEQIgsgACAGIAsgBmsiBiAKIAYgCkgbECIgCiAGayEKIAdBBGoiByAFTw0BIApBf0oNAAsLIABBMCAKQRJqQRJBABAmIAAgFSAQIBVrECIMAgsgCiEGCyAAQTAgBkEJakEJQQAQJgsMAQsgE0EJaiATIAVBIHEiCxshCgJAIANBC0sNAEEMIANrIgZFDQBEAAAAAAAAIEAhGgNAIBpEAAAAAAAAMECiIRogBkEBayIGDQALIAotAABBLUYEQCAaIAGaIBqhoJohAQwBCyABIBqgIBqhIQELIBAgCSgCLCIGIAZBH3UiBmogBnOtIBAQRCIGRgRAIAlBMDoADyAJQQ9qIQYLIBJBAnIhDiAJKAIsIQcgBkECayIMIAVBD2o6AAAgBkEBa0EtQSsgB0EASBs6AAAgBEEIcSEHIAlBEGohCANAIAgiBQJ/IAGZRAAAAAAAAOBBYwRAIAGqDAELQYCAgIB4CyIGQYCHAWotAAAgC3I6AAAgASAGt6FEAAAAAAAAMECiIQECQCAFQQFqIgggCUEQamtBAUcNAAJAIAFEAAAAAAAAAABiDQAgA0EASg0AIAdFDQELIAVBLjoAASAFQQJqIQgLIAFEAAAAAAAAAABiDQALIABBICACIA4CfwJAIANFDQAgCCAJa0ESayADTg0AIAMgEGogDGtBAmoMAQsgECAJQRBqIAxqayAIagsiA2oiDSAEECYgACAKIA4QIiAAQTAgAiANIARBgIAEcxAmIAAgCUEQaiAIIAlBEGprIgUQIiAAQTAgAyAFIBAgDGsiA2prQQBBABAmIAAgDCADECILIABBICACIA0gBEGAwABzECYgCUGwBGokACACIA0gAiANShsLBgBB4J8BCwYAQdyfAQsGAEHUnwELGAEBfyMAQRBrIgEgADYCDCABKAIMQQRqCxgBAX8jAEEQayIBIAA2AgwgASgCDEEIagtpAQF/IwBBEGsiASQAIAEgADYCDCABKAIMKAIUBEAgASgCDCgCFBAbCyABQQA2AgggASgCDCgCBARAIAEgASgCDCgCBDYCCAsgASgCDEEEahA4IAEoAgwQFSABKAIIIQAgAUEQaiQAIAALqQEBA38CQCAALQAAIgJFDQADQCABLQAAIgRFBEAgAiEDDAILAkAgAiAERg0AIAJBIHIgAiACQcEAa0EaSRsgAS0AACICQSByIAIgAkHBAGtBGkkbRg0AIAAtAAAhAwwCCyABQQFqIQEgAC0AASECIABBAWohACACDQALCyADQf8BcSIAQSByIAAgAEHBAGtBGkkbIAEtAAAiAEEgciAAIABBwQBrQRpJG2sLiAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCMAQRBrIgAgAigCDDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCACKAIMIAIoAgg2AgACQCACKAIMEKwBQQFGBEAgAigCDEG0mwEoAgA2AgQMAQsgAigCDEEANgIECyACQRBqJAAL2AkBAX8jAEGwAWsiBSQAIAUgADYCpAEgBSABNgKgASAFIAI2ApwBIAUgAzcDkAEgBSAENgKMASAFIAUoAqABNgKIAQJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCjAEODwABAgMEBQcICQkJCQkJBgkLIAUoAogBQgA3AyAgBUIANwOoAQwJCyAFIAUoAqQBIAUoApwBIAUpA5ABECsiAzcDgAEgA0IAUwRAIAUoAogBQQhqIAUoAqQBEBcgBUJ/NwOoAQwJCwJAIAUpA4ABUARAIAUoAogBKQMoIAUoAogBKQMgUQRAIAUoAogBQQE2AgQgBSgCiAEgBSgCiAEpAyA3AxggBSgCiAEoAgAEQCAFKAKkASAFQcgAahA5QQBIBEAgBSgCiAFBCGogBSgCpAEQFyAFQn83A6gBDA0LAkAgBSkDSEIgg1ANACAFKAJ0IAUoAogBKAIwRg0AIAUoAogBQQhqQQdBABAUIAVCfzcDqAEMDQsCQCAFKQNIQgSDUA0AIAUpA2AgBSgCiAEpAxhRDQAgBSgCiAFBCGpBFUEAEBQgBUJ/NwOoAQwNCwsLDAELAkAgBSgCiAEoAgQNACAFKAKIASkDICAFKAKIASkDKFYNACAFIAUoAogBKQMoIAUoAogBKQMgfTcDQANAIAUpA0AgBSkDgAFUBEAgBSAFKQOAASAFKQNAfUL/////D1YEfkL/////DwUgBSkDgAEgBSkDQH0LNwM4IAUoAogBKAIwIAUoApwBIAUpA0CnaiAFKQM4pxAaIQAgBSgCiAEgADYCMCAFKAKIASIAIAUpAzggACkDKHw3AyggBSAFKQM4IAUpA0B8NwNADAELCwsLIAUoAogBIgAgBSkDgAEgACkDIHw3AyAgBSAFKQOAATcDqAEMCAsgBUIANwOoAQwHCyAFIAUoApwBNgI0IAUoAogBKAIEBEAgBSgCNCAFKAKIASkDGDcDGCAFKAI0IAUoAogBKAIwNgIsIAUoAjQgBSgCiAEpAxg3AyAgBSgCNEEAOwEwIAUoAjRBADsBMiAFKAI0IgAgACkDAELsAYQ3AwALIAVCADcDqAEMBgsgBSAFKAKIAUEIaiAFKAKcASAFKQOQARBDNwOoAQwFCyAFKAKIARAVIAVCADcDqAEMBAsjAEEQayIAIAUoAqQBNgIMIAUgACgCDCkDGDcDKCAFKQMoQgBTBEAgBSgCiAFBCGogBSgCpAEQFyAFQn83A6gBDAQLIAUpAyghAyAFQX82AhggBUEQNgIUIAVBDzYCECAFQQ02AgwgBUEMNgIIIAVBCjYCBCAFQQk2AgAgBUEIIAUQNEJ/hSADgzcDqAEMAwsgBQJ/IAUpA5ABQhBUBEAgBSgCiAFBCGpBEkEAEBRBAAwBCyAFKAKcAQs2AhwgBSgCHEUEQCAFQn83A6gBDAMLAkAgBSgCpAEgBSgCHCkDACAFKAIcKAIIECdBAE4EQCAFIAUoAqQBEEkiAzcDICADQgBZDQELIAUoAogBQQhqIAUoAqQBEBcgBUJ/NwOoAQwDCyAFKAKIASAFKQMgNwMgIAVCADcDqAEMAgsgBSAFKAKIASkDIDcDqAEMAQsgBSgCiAFBCGpBHEEAEBQgBUJ/NwOoAQsgBSkDqAEhAyAFQbABaiQAIAMLnAwBAX8jAEEwayIFJAAgBSAANgIkIAUgATYCICAFIAI2AhwgBSADNwMQIAUgBDYCDCAFIAUoAiA2AggCQAJAAkACQAJAAkACQAJAAkACQCAFKAIMDhEAAQIDBQYICAgICAgICAcIBAgLIAUoAghCADcDGCAFKAIIQQA6AAwgBSgCCEEAOgANIAUoAghBADoADyAFKAIIQn83AyAgBSgCCCgCrEAgBSgCCCgCqEAoAgwRAABBAXFFBEAgBUJ/NwMoDAkLIAVCADcDKAwICyAFKAIkIQEgBSgCCCECIAUoAhwhBCAFKQMQIQMjAEFAaiIAJAAgACABNgI0IAAgAjYCMCAAIAQ2AiwgACADNwMgAkACfyMAQRBrIgEgACgCMDYCDCABKAIMKAIACwRAIABCfzcDOAwBCwJAIAApAyBQRQRAIAAoAjAtAA1BAXFFDQELIABCADcDOAwBCyAAQgA3AwggAEEAOgAbA0AgAC0AG0EBcQR/QQAFIAApAwggACkDIFQLQQFxBEAgACAAKQMgIAApAwh9NwMAIAAgACgCMCgCrEAgACgCLCAAKQMIp2ogACAAKAIwKAKoQCgCHBEBADYCHCAAKAIcQQJHBEAgACAAKQMAIAApAwh8NwMICwJAAkACQAJAIAAoAhxBAWsOAwACAQMLIAAoAjBBAToADQJAIAAoAjAtAAxBAXENAAsgACgCMCkDIEIAUwRAIAAoAjBBFEEAEBQgAEEBOgAbDAMLAkAgACgCMC0ADkEBcUUNACAAKAIwKQMgIAApAwhWDQAgACgCMEEBOgAPIAAoAjAgACgCMCkDIDcDGCAAKAIsIAAoAjBBKGogACgCMCkDGKcQGRogACAAKAIwKQMYNwM4DAYLIABBAToAGwwCCyAAKAIwLQAMQQFxBEAgAEEBOgAbDAILIAAgACgCNCAAKAIwQShqQoDAABArIgM3AxAgA0IAUwRAIAAoAjAgACgCNBAXIABBAToAGwwCCwJAIAApAxBQBEAgACgCMEEBOgAMIAAoAjAoAqxAIAAoAjAoAqhAKAIYEQIAIAAoAjApAyBCAFMEQCAAKAIwQgA3AyALDAELAkAgACgCMCkDIEIAWQRAIAAoAjBBADoADgwBCyAAKAIwIAApAxA3AyALIAAoAjAoAqxAIAAoAjBBKGogACkDECAAKAIwKAKoQCgCFBEQABoLDAELAn8jAEEQayIBIAAoAjA2AgwgASgCDCgCAEULBEAgACgCMEEUQQAQFAsgAEEBOgAbCwwBCwsgACkDCEIAUgRAIAAoAjBBADoADiAAKAIwIgEgACkDCCABKQMYfDcDGCAAIAApAwg3AzgMAQsgAEF/QQACfyMAQRBrIgEgACgCMDYCDCABKAIMKAIACxusNwM4CyAAKQM4IQMgAEFAayQAIAUgAzcDKAwHCyAFKAIIKAKsQCAFKAIIKAKoQCgCEBEAAEEBcUUEQCAFQn83AygMBwsgBUIANwMoDAYLIAUgBSgCHDYCBAJAIAUoAggtABBBAXEEQCAFKAIILQANQQFxBEAgBSgCBCAFKAIILQAPQQFxBH9BAAUCfwJAIAUoAggoAhRBf0cEQCAFKAIIKAIUQX5HDQELQQgMAQsgBSgCCCgCFAtB//8DcQs7ATAgBSgCBCAFKAIIKQMYNwMgIAUoAgQiACAAKQMAQsgAhDcDAAwCCyAFKAIEIgAgACkDAEK3////D4M3AwAMAQsgBSgCBEEAOwEwIAUoAgQiACAAKQMAQsAAhDcDAAJAIAUoAggtAA1BAXEEQCAFKAIEIAUoAggpAxg3AxggBSgCBCIAIAApAwBCBIQ3AwAMAQsgBSgCBCIAIAApAwBC+////w+DNwMACwsgBUIANwMoDAULIAUgBSgCCC0AD0EBcQR/QQAFIAUoAggoAqxAIAUoAggoAqhAKAIIEQAAC6w3AygMBAsgBSAFKAIIIAUoAhwgBSkDEBBDNwMoDAMLIAUoAggQsQEgBUIANwMoDAILIAVBfzYCACAFQRAgBRA0Qj+ENwMoDAELIAUoAghBFEEAEBQgBUJ/NwMoCyAFKQMoIQMgBUEwaiQAIAMLPAEBfyMAQRBrIgMkACADIAA7AQ4gAyABNgIIIAMgAjYCBEEAIAMoAgggAygCBBC0ASEAIANBEGokACAAC46nAQEEfyMAQSBrIgUkACAFIAA2AhggBSABNgIUIAUgAjYCECAFIAUoAhg2AgwgBSgCDCAFKAIQKQMAQv////8PVgR+Qv////8PBSAFKAIQKQMACz4CICAFKAIMIAUoAhQ2AhwCQCAFKAIMLQAEQQFxBEAgBSgCDEEQaiEBQQRBACAFKAIMLQAMQQFxGyECIwBBQGoiACQAIAAgATYCOCAAIAI2AjQCQAJAAkAgACgCOBB4DQAgACgCNEEFSg0AIAAoAjRBAE4NAQsgAEF+NgI8DAELIAAgACgCOCgCHDYCLAJAAkAgACgCOCgCDEUNACAAKAI4KAIEBEAgACgCOCgCAEUNAQsgACgCLCgCBEGaBUcNASAAKAI0QQRGDQELIAAoAjhBsNkAKAIANgIYIABBfjYCPAwBCyAAKAI4KAIQRQRAIAAoAjhBvNkAKAIANgIYIABBezYCPAwBCyAAIAAoAiwoAig2AjAgACgCLCAAKAI0NgIoAkAgACgCLCgCFARAIAAoAjgQHCAAKAI4KAIQRQRAIAAoAixBfzYCKCAAQQA2AjwMAwsMAQsCQCAAKAI4KAIEDQAgACgCNEEBdEEJQQAgACgCNEEEShtrIAAoAjBBAXRBCUEAIAAoAjBBBEoba0oNACAAKAI0QQRGDQAgACgCOEG82QAoAgA2AhggAEF7NgI8DAILCwJAIAAoAiwoAgRBmgVHDQAgACgCOCgCBEUNACAAKAI4QbzZACgCADYCGCAAQXs2AjwMAQsgACgCLCgCBEEqRgRAIAAgACgCLCgCMEEEdEH4AGtBCHQ2AigCQAJAIAAoAiwoAogBQQJIBEAgACgCLCgChAFBAk4NAQsgAEEANgIkDAELAkAgACgCLCgChAFBBkgEQCAAQQE2AiQMAQsCQCAAKAIsKAKEAUEGRgRAIABBAjYCJAwBCyAAQQM2AiQLCwsgACAAKAIoIAAoAiRBBnRyNgIoIAAoAiwoAmwEQCAAIAAoAihBIHI2AigLIAAgACgCKEEfIAAoAihBH3BrajYCKCAAKAIsIAAoAigQSyAAKAIsKAJsBEAgACgCLCAAKAI4KAIwQRB2EEsgACgCLCAAKAI4KAIwQf//A3EQSwtBAEEAQQAQPSEBIAAoAjggATYCMCAAKAIsQfEANgIEIAAoAjgQHCAAKAIsKAIUBEAgACgCLEF/NgIoIABBADYCPAwCCwsgACgCLCgCBEE5RgRAQQBBAEEAEBohASAAKAI4IAE2AjAgACgCLCgCCCECIAAoAiwiAygCFCEBIAMgAUEBajYCFCABIAJqQR86AAAgACgCLCgCCCECIAAoAiwiAygCFCEBIAMgAUEBajYCFCABIAJqQYsBOgAAIAAoAiwoAgghAiAAKAIsIgMoAhQhASADIAFBAWo2AhQgASACakEIOgAAAkAgACgCLCgCHEUEQCAAKAIsKAIIIQIgACgCLCIDKAIUIQEgAyABQQFqNgIUIAEgAmpBADoAACAAKAIsKAIIIQIgACgCLCIDKAIUIQEgAyABQQFqNgIUIAEgAmpBADoAACAAKAIsKAIIIQIgACgCLCIDKAIUIQEgAyABQQFqNgIUIAEgAmpBADoAACAAKAIsKAIIIQIgACgCLCIDKAIUIQEgAyABQQFqNgIUIAEgAmpBADoAACAAKAIsKAIIIQIgACgCLCIDKAIUIQEgAyABQQFqNgIUIAEgAmpBADoAACAAKAIsKAKEAUEJRgR/QQIFQQRBACAAKAIsKAKIAUECSAR/IAAoAiwoAoQBQQJIBUEBC0EBcRsLIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCLCgCCCECIAAoAiwiAygCFCEBIAMgAUEBajYCFCABIAJqQQM6AAAgACgCLEHxADYCBCAAKAI4EBwgACgCLCgCFARAIAAoAixBfzYCKCAAQQA2AjwMBAsMAQsgACgCLCgCHCgCAEVFQQJBACAAKAIsKAIcKAIsG2pBBEEAIAAoAiwoAhwoAhAbakEIQQAgACgCLCgCHCgCHBtqQRBBACAAKAIsKAIcKAIkG2ohAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAIsKAIcKAIEQf8BcSECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAiwoAhwoAgRBCHZB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCLCgCHCgCBEEQdkH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAIsKAIcKAIEQRh2IQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCLCgChAFBCUYEf0ECBUEEQQAgACgCLCgCiAFBAkgEfyAAKAIsKAKEAUECSAVBAQtBAXEbCyECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAiwoAhwoAgxB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCLCgCHCgCEARAIAAoAiwoAhwoAhRB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCLCgCHCgCFEEIdkH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAAAsgACgCLCgCHCgCLARAIAAoAjgoAjAgACgCLCgCCCAAKAIsKAIUEBohASAAKAI4IAE2AjALIAAoAixBADYCICAAKAIsQcUANgIECwsgACgCLCgCBEHFAEYEQCAAKAIsKAIcKAIQBEAgACAAKAIsKAIUNgIgIAAgACgCLCgCHCgCFEH//wNxIAAoAiwoAiBrNgIcA0AgACgCLCgCDCAAKAIsKAIUIAAoAhxqSQRAIAAgACgCLCgCDCAAKAIsKAIUazYCGCAAKAIsKAIIIAAoAiwoAhRqIAAoAiwoAhwoAhAgACgCLCgCIGogACgCGBAZGiAAKAIsIAAoAiwoAgw2AhQCQCAAKAIsKAIcKAIsRQ0AIAAoAiwoAhQgACgCIE0NACAAKAI4KAIwIAAoAiwoAgggACgCIGogACgCLCgCFCAAKAIgaxAaIQEgACgCOCABNgIwCyAAKAIsIgEgACgCGCABKAIgajYCICAAKAI4EBwgACgCLCgCFARAIAAoAixBfzYCKCAAQQA2AjwMBQUgAEEANgIgIAAgACgCHCAAKAIYazYCHAwCCwALCyAAKAIsKAIIIAAoAiwoAhRqIAAoAiwoAhwoAhAgACgCLCgCIGogACgCHBAZGiAAKAIsIgEgACgCHCABKAIUajYCFAJAIAAoAiwoAhwoAixFDQAgACgCLCgCFCAAKAIgTQ0AIAAoAjgoAjAgACgCLCgCCCAAKAIgaiAAKAIsKAIUIAAoAiBrEBohASAAKAI4IAE2AjALIAAoAixBADYCIAsgACgCLEHJADYCBAsgACgCLCgCBEHJAEYEQCAAKAIsKAIcKAIcBEAgACAAKAIsKAIUNgIUA0AgACgCLCgCFCAAKAIsKAIMRgRAAkAgACgCLCgCHCgCLEUNACAAKAIsKAIUIAAoAhRNDQAgACgCOCgCMCAAKAIsKAIIIAAoAhRqIAAoAiwoAhQgACgCFGsQGiEBIAAoAjggATYCMAsgACgCOBAcIAAoAiwoAhQEQCAAKAIsQX82AiggAEEANgI8DAULIABBADYCFAsgACgCLCgCHCgCHCECIAAoAiwiAygCICEBIAMgAUEBajYCICAAIAEgAmotAAA2AhAgACgCECECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAhANAAsCQCAAKAIsKAIcKAIsRQ0AIAAoAiwoAhQgACgCFE0NACAAKAI4KAIwIAAoAiwoAgggACgCFGogACgCLCgCFCAAKAIUaxAaIQEgACgCOCABNgIwCyAAKAIsQQA2AiALIAAoAixB2wA2AgQLIAAoAiwoAgRB2wBGBEAgACgCLCgCHCgCJARAIAAgACgCLCgCFDYCDANAIAAoAiwoAhQgACgCLCgCDEYEQAJAIAAoAiwoAhwoAixFDQAgACgCLCgCFCAAKAIMTQ0AIAAoAjgoAjAgACgCLCgCCCAAKAIMaiAAKAIsKAIUIAAoAgxrEBohASAAKAI4IAE2AjALIAAoAjgQHCAAKAIsKAIUBEAgACgCLEF/NgIoIABBADYCPAwFCyAAQQA2AgwLIAAoAiwoAhwoAiQhAiAAKAIsIgMoAiAhASADIAFBAWo2AiAgACABIAJqLQAANgIIIAAoAgghAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAIIDQALAkAgACgCLCgCHCgCLEUNACAAKAIsKAIUIAAoAgxNDQAgACgCOCgCMCAAKAIsKAIIIAAoAgxqIAAoAiwoAhQgACgCDGsQGiEBIAAoAjggATYCMAsLIAAoAixB5wA2AgQLIAAoAiwoAgRB5wBGBEAgACgCLCgCHCgCLARAIAAoAiwoAgwgACgCLCgCFEECakkEQCAAKAI4EBwgACgCLCgCFARAIAAoAixBfzYCKCAAQQA2AjwMBAsLIAAoAjgoAjBB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCMEEIdkH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAAEEAQQBBABAaIQEgACgCOCABNgIwCyAAKAIsQfEANgIEIAAoAjgQHCAAKAIsKAIUBEAgACgCLEF/NgIoIABBADYCPAwCCwsCQAJAIAAoAjgoAgQNACAAKAIsKAJ0DQAgACgCNEUNASAAKAIsKAIEQZoFRg0BCyAAAn8gACgCLCgChAFFBEAgACgCLCAAKAI0ELcBDAELAn8gACgCLCgCiAFBAkYEQCAAKAIsIQIgACgCNCEDIwBBIGsiASQAIAEgAjYCGCABIAM2AhQCQANAAkAgASgCGCgCdEUEQCABKAIYEFwgASgCGCgCdEUEQCABKAIURQRAIAFBADYCHAwFCwwCCwsgASgCGEEANgJgIAEgASgCGCICKAI4IAIoAmxqLQAAOgAPIAEoAhgiAigCpC0gAigCoC1BAXRqQQA7AQAgAS0ADyEDIAEoAhgiAigCmC0hBCACIAIoAqAtIgJBAWo2AqAtIAIgBGogAzoAACABKAIYIAEtAA9BAnRqIgIgAi8BlAFBAWo7AZQBIAEgASgCGCgCoC0gASgCGCgCnC1BAWtGNgIQIAEoAhgiAiACKAJ0QQFrNgJ0IAEoAhgiAiACKAJsQQFqNgJsIAEoAhAEQCABKAIYAn8gASgCGCgCXEEATgRAIAEoAhgoAjggASgCGCgCXGoMAQtBAAsgASgCGCgCbCABKAIYKAJca0EAECggASgCGCABKAIYKAJsNgJcIAEoAhgoAgAQHCABKAIYKAIAKAIQRQRAIAFBADYCHAwECwsMAQsLIAEoAhhBADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){Ir(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var T=ee.toString();throw x("failed to compile wasm module: "+T),(T.includes("imported Memory")||T.includes("memory import"))&&x("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function bp(){var f={a:da};function E(L,T){var ee=L.exports;t.asm=ee,A=t.asm.u,Tr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return x("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Qr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Nn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Nn.GMTString||(Nn.GMTString=ye("GMT")),de[E+40>>2]=Nn.GMTString,E}function ae(f,E){return Nn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Tl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){Ir("randomDevice")}}var Tn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:Q.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Tn.resolve(f).substr(1),E=Tn.resolve(E).substr(1);function w(it){for(var at=0;at=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),T=Math.min(k.length,L.length),ee=T,Ie=0;Ie0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` `)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f=E)){var k=1024*1024;E=Math.max(E,w*(w>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie0||k+w>2)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new b.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Ne.lstatSync(E)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Ne.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Ne.utimesSync(w,k,k)}E.size!==void 0&&Ne.truncateSync(w,E.size)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),T=At.realPath(L);try{b.isDir(L.mode)?Ne.mkdirSync(T,L.mode):Ne.writeFileSync(T,"",{mode:L.mode})}catch(ee){throw ee.code?new b.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Ne.renameSync(k,L)}catch(T){throw T.code?new b.ErrnoError(At.convertNodeCode(T)):T}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.unlinkSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.rmdirSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Ne.readdirSync(E)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Ne.symlinkSync(w,k)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Ne.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{b.isFile(f.node.mode)&&(f.nfd=Ne.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{b.isFile(f.node.mode)&&f.nfd&&Ne.closeSync(f.nfd)}catch(E){throw E.code?new b.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}},write:function(f,E,w,k,L){try{return Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&b.isFile(f.node.mode))try{var L=Ne.fstatSync(f.nfd);k+=L.size}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}if(k<0)throw new b.ErrnoError(28);return k},mmap:function(f,E,w,k,L,T){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var T=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},An={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){b.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)b.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){b.isDir(f)?Ne.mkdirSync(f,E):Ne.writeFileSync(f,"",{mode:E})},mkdir:function(){Ne.mkdirSync.apply(void 0,arguments)},symlink:function(){Ne.symlinkSync.apply(void 0,arguments)},rename:function(){Ne.renameSync.apply(void 0,arguments)},rmdir:function(){Ne.rmdirSync.apply(void 0,arguments)},readdir:function(){Ne.readdirSync.apply(void 0,arguments)},unlink:function(){Ne.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ne.readlinkSync.apply(void 0,arguments)},stat:function(){return Ne.statSync.apply(void 0,arguments)},lstat:function(){return Ne.lstatSync.apply(void 0,arguments)},chmod:function(){Ne.chmodSync.apply(void 0,arguments)},fchmod:function(){Ne.fchmodSync.apply(void 0,arguments)},chown:function(){Ne.chownSync.apply(void 0,arguments)},fchown:function(){Ne.fchownSync.apply(void 0,arguments)},truncate:function(){Ne.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new b.ErrnoError(28);Ne.ftruncateSync.apply(void 0,arguments)},utime:function(){Ne.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Ne.openSync(f,At.flagsForNode(E),w),T=k!=null?k:b.nextfd(L),ee={fd:T,nfd:L,position:0,path:f,flags:E,seekable:!0};return b.streams[T]=ee,ee},close:function(f){f.stream_ops||Ne.closeSync(f.nfd),b.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Ne.fstatSync(f.nfd).size;else if(w!==0)throw new b.ErrnoError(wo.EINVAL);if(k<0)throw new b.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&b.llseek(f,0,+"2");var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},allocate:function(){throw new b.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,T){if(f.stream_ops)return Us.mmap(f,E,w,k,L,T);if(E!==0)throw new b.ErrnoError(28);var ee=ss(w);return b.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||b.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new b.ErrnoError(wo.ENOTTY)}},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Tn.resolve(b.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new b.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),T=b.root,ee="/",Ie=0;Ie40)throw new b.ErrnoError(32)}}return{path:ee,node:T}},getPath:function(f){for(var E;;){if(b.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k>>0)%b.nameTable.length},hashAddNode:function(f){var E=b.hashName(f.parent.id,f.name);f.name_next=b.nameTable[E],b.nameTable[E]=f},hashRemoveNode:function(f){var E=b.hashName(f.parent.id,f.name);if(b.nameTable[E]===f)b.nameTable[E]=f.name_next;else for(var w=b.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=b.mayLookup(f);if(w)throw new b.ErrnoError(w,f);for(var k=b.hashName(f.id,E),L=b.nameTable[k];L;L=L.name_next){var T=L.name;if(L.parent.id===f.id&&T===E)return L}return b.lookup(f,E)},createNode:function(f,E,w,k){var L=new b.FSNode(f,E,w,k);return b.hashAddNode(L),L},destroyNode:function(f){b.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=b.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return b.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=b.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=b.lookupNode(f,E);return 20}catch{}return b.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=b.lookupNode(f,E)}catch(T){return T.errno}var L=b.nodePermissions(f,"wx");if(L)return L;if(w){if(!b.isDir(k.mode))return 54;if(b.isRoot(k)||b.getPath(k)===b.cwd())return 10}else if(b.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?b.isLink(f.mode)?32:b.isDir(f.mode)&&(b.flagsToPermissionString(E)!=="r"||E&512)?31:b.nodePermissions(f,b.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||b.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!b.streams[w])return w;throw new b.ErrnoError(33)},getStream:function(f){return b.streams[f]},createStream:function(f,E,w){b.FSStream||(b.FSStream=function(){},b.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new b.FSStream;for(var L in f)k[L]=f[L];f=k;var T=b.nextfd(E,w);return f.fd=T,b.streams[T]=f,f},closeStream:function(f){b.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=b.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new b.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){b.devices[f]={stream_ops:E}},getDevice:function(f){return b.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),b.syncFSRequests++,b.syncFSRequests>1&&P("warning: "+b.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=b.getMounts(b.root.mount),k=0;function L(ee){return b.syncFSRequests--,E(ee)}function T(ee){if(ee)return T.errored?void 0:(T.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return T(null);ee.type.syncfs(ee,f,T)})},mount:function(f,E,w){var k=w==="/",L=!w,T;if(k&&b.root)throw new b.ErrnoError(10);if(!k&&!L){var ee=b.lookupPath(w,{follow_mount:!1});if(w=ee.path,T=ee.node,b.isMountpoint(T))throw new b.ErrnoError(10);if(!b.isDir(T.mode))throw new b.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?b.root=Oe:T&&(T.mounted=Ie,T.mount&&T.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=b.lookupPath(f,{follow_mount:!1});if(!b.isMountpoint(E.node))throw new b.ErrnoError(28);var w=E.node,k=w.mounted,L=b.getMounts(k);Object.keys(b.nameTable).forEach(function(ee){for(var Ie=b.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&b.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var T=w.mount.mounts.indexOf(k);w.mount.mounts.splice(T,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=b.lookupPath(f,{parent:!0}),L=k.node,T=yt.basename(f);if(!T||T==="."||T==="..")throw new b.ErrnoError(28);var ee=b.mayCreate(L,T);if(ee)throw new b.ErrnoError(ee);if(!L.node_ops.mknod)throw new b.ErrnoError(63);return L.node_ops.mknod(L,T,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,b.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,b.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L"u"&&(w=E,E=438),E|=8192,b.mknod(f,E,w)},symlink:function(f,E){if(!Tn.resolve(f))throw new b.ErrnoError(44);var w=b.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new b.ErrnoError(44);var L=yt.basename(E),T=b.mayCreate(k,L);if(T)throw new b.ErrnoError(T);if(!k.node_ops.symlink)throw new b.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),T=yt.basename(E),ee,Ie,Oe;if(ee=b.lookupPath(f,{parent:!0}),Ie=ee.node,ee=b.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new b.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new b.ErrnoError(75);var it=b.lookupNode(Ie,L),at=Tn.relative(f,k);if(at.charAt(0)!==".")throw new b.ErrnoError(28);if(at=Tn.relative(E,w),at.charAt(0)!==".")throw new b.ErrnoError(55);var Ue;try{Ue=b.lookupNode(Oe,T)}catch{}if(it!==Ue){var Ve=b.isDir(it.mode),nt=b.mayDelete(Ie,L,Ve);if(nt)throw new b.ErrnoError(nt);if(nt=Ue?b.mayDelete(Oe,T,Ve):b.mayCreate(Oe,T),nt)throw new b.ErrnoError(nt);if(!Ie.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(it)||Ue&&b.isMountpoint(Ue))throw new b.ErrnoError(10);if(Oe!==Ie&&(nt=b.nodePermissions(Ie,"w"),nt))throw new b.ErrnoError(nt);try{b.trackingDelegate.willMovePath&&b.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}b.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,T)}catch(wt){throw wt}finally{b.hashAddNode(it)}try{b.trackingDelegate.onMovePath&&b.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),T=b.mayDelete(w,k,!0);if(T)throw new b.ErrnoError(T);if(!w.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=b.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new b.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),T=b.mayDelete(w,k,!1);if(T)throw new b.ErrnoError(T);if(!w.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=b.lookupPath(f),w=E.node;if(!w)throw new b.ErrnoError(44);if(!w.node_ops.readlink)throw new b.ErrnoError(28);return Tn.resolve(b.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=b.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new b.ErrnoError(44);if(!k.node_ops.getattr)throw new b.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return b.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=b.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new b.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){b.chmod(f,E,!0)},fchmod:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);b.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var T=b.lookupPath(f,{follow:!k});L=T.node}else L=f;if(!L.node_ops.setattr)throw new b.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){b.chown(f,E,w,!0)},fchown:function(f,E,w){var k=b.getStream(f);if(!k)throw new b.ErrnoError(8);b.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new b.ErrnoError(28);var w;if(typeof f=="string"){var k=b.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(w.mode))throw new b.ErrnoError(31);if(!b.isFile(w.mode))throw new b.ErrnoError(28);var L=b.nodePermissions(w,"w");if(L)throw new b.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);if((w.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(w.node,E)},utime:function(f,E,w){var k=b.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new b.ErrnoError(44);E=typeof E=="string"?b.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var T;if(typeof f=="object")T=f;else{f=yt.normalize(f);try{var ee=b.lookupPath(f,{follow:!(E&131072)});T=ee.node}catch{}}var Ie=!1;if(E&64)if(T){if(E&128)throw new b.ErrnoError(20)}else T=b.mknod(f,w,0),Ie=!0;if(!T)throw new b.ErrnoError(44);if(b.isChrdev(T.mode)&&(E&=-513),E&65536&&!b.isDir(T.mode))throw new b.ErrnoError(54);if(!Ie){var Oe=b.mayOpen(T,E);if(Oe)throw new b.ErrnoError(Oe)}E&512&&b.truncate(T,0),E&=-131713;var it=b.createStream({node:T,path:b.getPath(T),flags:E,seekable:!0,position:0,stream_ops:T.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(b.readFiles||(b.readFiles={}),f in b.readFiles||(b.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(b.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=b.tracking.openFlags.READ),(E&2097155)!==0&&(at|=b.tracking.openFlags.WRITE),b.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(b.isClosed(f))throw new b.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{b.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new b.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new b.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.read)throw new b.ErrnoError(28);var T=typeof L<"u";if(!T)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L,T){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.write)throw new b.ErrnoError(28);f.seekable&&f.flags&1024&&b.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,T);ee||(f.position+=Ie);try{f.path&&b.trackingDelegate.onWriteToFile&&b.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(E<0||w<=0)throw new b.ErrnoError(28);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(f.node.mode)&&!b.isDir(f.node.mode))throw new b.ErrnoError(43);if(!f.stream_ops.allocate)throw new b.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,T){if((L&2)!==0&&(T&2)===0&&(f.flags&2097155)!==2)throw new b.ErrnoError(2);if((f.flags&2097155)===1)throw new b.ErrnoError(2);if(!f.stream_ops.mmap)throw new b.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,T)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new b.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=b.open(f,E.flags),L=b.stat(f),T=L.size,ee=new Uint8Array(T);return b.read(k,ee,0,T,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),b.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=b.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),T=Re(E,L,0,L.length);b.write(k,L,0,T,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))b.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");b.close(k)},cwd:function(){return b.currentPath},chdir:function(f){var E=b.lookupPath(f,{follow:!0});if(E.node===null)throw new b.ErrnoError(44);if(!b.isDir(E.node.mode))throw new b.ErrnoError(54);var w=b.nodePermissions(E.node,"x");if(w)throw new b.ErrnoError(w);b.currentPath=E.path},createDefaultDirectories:function(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:function(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,T){return L}}),b.mkdev("/dev/null",b.makedev(1,3)),ns.register(b.makedev(5,0),ns.default_tty_ops),ns.register(b.makedev(6,0),ns.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var f=Tl();b.createDevice("/dev","random",f),b.createDevice("/dev","urandom",f),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){b.mkdir("/proc");var f=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:function(){var E=b.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,T=b.getStream(L);if(!T)throw new b.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return T.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?b.createDevice("/dev","stdin",t.stdin):b.symlink("/dev/tty","/dev/stdin"),t.stdout?b.createDevice("/dev","stdout",null,t.stdout):b.symlink("/dev/tty","/dev/stdout"),t.stderr?b.createDevice("/dev","stderr",null,t.stderr):b.symlink("/dev/tty1","/dev/stderr");var f=b.open("/dev/stdin",0),E=b.open("/dev/stdout",1),w=b.open("/dev/stderr",1)},ensureErrnoError:function(){b.ErrnoError||(b.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(function(f){b.genericErrors[f]=new b.ErrnoError(f),b.genericErrors[f].stack=""}))},staticInit:function(){b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(ut,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){b.init.initialized=!0,b.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,b.createStandardStreams()},quit:function(){b.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;Ethis.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},T.prototype.setDataGetter=function(Ve){this.getter=Ve},T.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",cn=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var Sr=new XMLHttpRequest;if(Sr.open("GET",w,!1),nt!==ii&&Sr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(Sr.responseType="arraybuffer"),Sr.overrideMimeType&&Sr.overrideMimeType("text/plain; charset=x-user-defined"),Sr.send(null),!(Sr.status>=200&&Sr.status<300||Sr.status===304))throw new Error("Couldn't load "+w+". Status: "+Sr.status);return Sr.response!==void 0?new Uint8Array(Sr.response||[]):wA(Sr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,Sr=(On+1)*ii-1;if(Sr=Math.min(Sr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,Sr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(cn||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new T;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=b.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return b.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,cn){b.forceLoadFile(Oe);var ii=Ve.node.contents;if(cn>=ii.length)return 0;var Be=Math.min(ii.length-cn,Ii);if(ii.slice)for(var yi=0;yi>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(br=k.size,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(br=k.ino,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var T=G.slice(f,f+w);b.msync(E,T,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),b.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return b.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=b.readlink(f),L=Math.min(w,Ae(k)),T=ie[E+L];return se(k,E,w+1),ie[E+L]=T,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=b.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&b.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=b.getStream(w);return k&&b.close(k),b.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,T=0;T>2],Ie=de[E+(T*8+4)>>2],Oe=b.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe>2],Ie=de[E+(T*8+4)>>2],Oe=b.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Nt.varargs+=4;var f=de[Nt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=b.getStream(f);if(!E)throw new b.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Nt.getStr(f),b.chmod(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function bp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 0:{var L=Nt.get();if(L<0)return-28;var T;return T=b.open(k.path,k.flags,0,L),T.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Nt.get();return k.flags|=L,0}case 12:{var L=Nt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof b>"u"||!(Ie instanceof b.ErrnoError))&&Ir(Ie),-Ie.errno}}function Sp(f,E){try{var w=Nt.getStreamFromFD(f);return Nt.doStat(b.stat,w.path,E)}catch(k){return(typeof b>"u"||!(k instanceof b.ErrnoError))&&Ir(k),-k.errno}}function vp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Nt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Nt.get();return b.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:Ir("bad ioctl syscall "+E)}}catch(T){return(typeof b>"u"||!(T instanceof b.ErrnoError))&&Ir(T),-T.errno}}function xp(f,E,w){Nt.varargs=w;try{var k=Nt.getStr(f),L=w?Nt.get():0,T=b.open(k,E,L);return T.fd}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),-ee.errno}}function Pp(f,E){try{return f=Nt.getStr(f),E=Nt.getStr(E),b.rename(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function j(f){try{return f=Nt.getStr(f),b.rmdir(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&Ir(E),-E.errno}}function Et(f,E){try{return f=Nt.getStr(f),Nt.doStat(b.stat,f,E)}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function yA(f){try{return f=Nt.getStr(f),b.unlink(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&Ir(E),-E.errno}}function Wi(f,E,w){G.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Tr(A.buffer),1}catch{}}function ze(f){var E=G.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var T=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(T);if(ee)return!0}return!1}function fa(f){try{var E=Nt.getStreamFromFD(f);return b.close(E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),w.errno}}function dg(f,E){try{var w=Nt.getStreamFromFD(f),k=w.tty?2:b.isDir(w.mode)?3:b.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof b>"u"||!(L instanceof b.ErrnoError))&&Ir(L),L.errno}}function OE(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doReadv(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),ee.errno}}function kp(f,E,w,k,L){try{var T=Nt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(b.llseek(T,Ie,k),Ri=[T.position>>>0,(br=T.position,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],T.getdents&&Ie===0&&k===0&&(T.getdents=null),0)}catch(it){return(typeof b>"u"||!(it instanceof b.ErrnoError))&&Ir(it),it.errno}}function ME(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doWritev(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),T=Math.max(k,L);de[eS()>>2]=T*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=b.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,ln=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&ln)===ln},set:function(f){f?this.mode|=ln:this.mode&=~ln}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ks,b.staticInit(),g){var Ne=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new b.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},b);for(var Ul in An)b[Ul]=Kl(An[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),T=Re(f,L,0,L.length);return E&&(L.length=T),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,T,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,T=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(T));while(at0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function bDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Nc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,N9=F9?F9.prototype:void 0,T9=N9?N9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return T9?T9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var NDe=HR();function TDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:NDe(r,e,t)}H9.exports=TDe});var jR=I((Aot,G9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",GDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function YDe(r){return GDe.test(r)}G9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",GR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+GR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+GR+"?",GR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],N=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&N==e)return S;if(O==t||O==r||O==e)return N==d&&ne.every(function(De){return De==i})?F:P;if(N==t||N==r||N==e)return P;if(O==o&&(N==o||N==a||N==c||N==u))return S;if((O==c||O==a)&&(N==a||N==l))return S;if((O==u||O==l)&&N==l)return S;if(N==i||N==m)return S;if(N==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&N==d||O==m&&[y,B].indexOf(N)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&N==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,bV)=>{"use strict";var QV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);bV.exports=r=>r?Object.keys(r).map(e=>[QV.has(e)?QV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,NV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},NRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),TC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),xn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",TRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};NV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[xn]=null:this[xn]=e&&e.encoding||null,this[xn]==="buffer"&&(this[xn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[xn]?new xV(this[xn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[TC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[xn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[xn]&&e!==this[xn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[xn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[xn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[xn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[xn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[TC]&&(this[Za]?OC(()=>t.call(this,this[TC])):t.call(this,this[TC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[TC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[xn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[TRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof NRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,TV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};TV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Gc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Gc](rl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Gc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Gc](e)):super[Gc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},GB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends GB{constructor(e){super(e,"BrotliCompress")}},hF=class extends GB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var GRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=GRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=GV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=GV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,GV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),QF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=QF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s0&&(S(xe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(x(xe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(x(xe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f=E)){var k=1024*1024;E=Math.max(E,w*(w>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=Q.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,Q.isDir(f.mode)?E.size=4096:Q.isFile(f.mode)?E.size=f.usedBytes:Q.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw Q.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(Q.isDir(f.mode)){var k;try{k=Q.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new Q.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=Q.lookupNode(f,E);for(var k in w.contents)throw new Q.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!Q.isLink(f.mode))throw new Q.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie0||k+w>2)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new Q.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Ne.lstatSync(E)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Ne.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Ne.utimesSync(w,k,k)}E.size!==void 0&&Ne.truncateSync(w,E.size)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),T=At.realPath(L);try{Q.isDir(L.mode)?Ne.mkdirSync(T,L.mode):Ne.writeFileSync(T,"",{mode:L.mode})}catch(ee){throw ee.code?new Q.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Ne.renameSync(k,L)}catch(T){throw T.code?new Q.ErrnoError(At.convertNodeCode(T)):T}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.unlinkSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.rmdirSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Ne.readdirSync(E)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Ne.symlinkSync(w,k)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Ne.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{Q.isFile(f.node.mode)&&(f.nfd=Ne.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{Q.isFile(f.node.mode)&&f.nfd&&Ne.closeSync(f.nfd)}catch(E){throw E.code?new Q.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},write:function(f,E,w,k,L){try{return Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&Q.isFile(f.node.mode))try{var L=Ne.fstatSync(f.nfd);k+=L.size}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}if(k<0)throw new Q.ErrnoError(28);return k},mmap:function(f,E,w,k,L,T){if(E!==0)throw new Q.ErrnoError(28);if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);if(L&2)return 0;var T=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},An={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){Q.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)Q.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){Q.isDir(f)?Ne.mkdirSync(f,E):Ne.writeFileSync(f,"",{mode:E})},mkdir:function(){Ne.mkdirSync.apply(void 0,arguments)},symlink:function(){Ne.symlinkSync.apply(void 0,arguments)},rename:function(){Ne.renameSync.apply(void 0,arguments)},rmdir:function(){Ne.rmdirSync.apply(void 0,arguments)},readdir:function(){Ne.readdirSync.apply(void 0,arguments)},unlink:function(){Ne.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ne.readlinkSync.apply(void 0,arguments)},stat:function(){return Ne.statSync.apply(void 0,arguments)},lstat:function(){return Ne.lstatSync.apply(void 0,arguments)},chmod:function(){Ne.chmodSync.apply(void 0,arguments)},fchmod:function(){Ne.fchmodSync.apply(void 0,arguments)},chown:function(){Ne.chownSync.apply(void 0,arguments)},fchown:function(){Ne.fchownSync.apply(void 0,arguments)},truncate:function(){Ne.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);Ne.ftruncateSync.apply(void 0,arguments)},utime:function(){Ne.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Ne.openSync(f,At.flagsForNode(E),w),T=k!=null?k:Q.nextfd(L),ee={fd:T,nfd:L,position:0,path:f,flags:E,seekable:!0};return Q.streams[T]=ee,ee},close:function(f){f.stream_ops||Ne.closeSync(f.nfd),Q.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Ne.fstatSync(f.nfd).size;else if(w!==0)throw new Q.ErrnoError(wo.EINVAL);if(k<0)throw new Q.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&Q.llseek(f,0,+"2");var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},allocate:function(){throw new Q.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,T){if(f.stream_ops)return Us.mmap(f,E,w,k,L,T);if(E!==0)throw new Q.ErrnoError(28);var ee=ss(w);return Q.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||Q.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new Q.ErrnoError(wo.ENOTTY)}},Q={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Tn.resolve(Q.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new Q.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),T=Q.root,ee="/",Ie=0;Ie40)throw new Q.ErrnoError(32)}}return{path:ee,node:T}},getPath:function(f){for(var E;;){if(Q.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k>>0)%Q.nameTable.length},hashAddNode:function(f){var E=Q.hashName(f.parent.id,f.name);f.name_next=Q.nameTable[E],Q.nameTable[E]=f},hashRemoveNode:function(f){var E=Q.hashName(f.parent.id,f.name);if(Q.nameTable[E]===f)Q.nameTable[E]=f.name_next;else for(var w=Q.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=Q.mayLookup(f);if(w)throw new Q.ErrnoError(w,f);for(var k=Q.hashName(f.id,E),L=Q.nameTable[k];L;L=L.name_next){var T=L.name;if(L.parent.id===f.id&&T===E)return L}return Q.lookup(f,E)},createNode:function(f,E,w,k){var L=new Q.FSNode(f,E,w,k);return Q.hashAddNode(L),L},destroyNode:function(f){Q.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=Q.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return Q.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=Q.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=Q.lookupNode(f,E);return 20}catch{}return Q.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=Q.lookupNode(f,E)}catch(T){return T.errno}var L=Q.nodePermissions(f,"wx");if(L)return L;if(w){if(!Q.isDir(k.mode))return 54;if(Q.isRoot(k)||Q.getPath(k)===Q.cwd())return 10}else if(Q.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?Q.isLink(f.mode)?32:Q.isDir(f.mode)&&(Q.flagsToPermissionString(E)!=="r"||E&512)?31:Q.nodePermissions(f,Q.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||Q.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!Q.streams[w])return w;throw new Q.ErrnoError(33)},getStream:function(f){return Q.streams[f]},createStream:function(f,E,w){Q.FSStream||(Q.FSStream=function(){},Q.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new Q.FSStream;for(var L in f)k[L]=f[L];f=k;var T=Q.nextfd(E,w);return f.fd=T,Q.streams[T]=f,f},closeStream:function(f){Q.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=Q.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new Q.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){Q.devices[f]={stream_ops:E}},getDevice:function(f){return Q.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),Q.syncFSRequests++,Q.syncFSRequests>1&&x("warning: "+Q.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=Q.getMounts(Q.root.mount),k=0;function L(ee){return Q.syncFSRequests--,E(ee)}function T(ee){if(ee)return T.errored?void 0:(T.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return T(null);ee.type.syncfs(ee,f,T)})},mount:function(f,E,w){var k=w==="/",L=!w,T;if(k&&Q.root)throw new Q.ErrnoError(10);if(!k&&!L){var ee=Q.lookupPath(w,{follow_mount:!1});if(w=ee.path,T=ee.node,Q.isMountpoint(T))throw new Q.ErrnoError(10);if(!Q.isDir(T.mode))throw new Q.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?Q.root=Oe:T&&(T.mounted=Ie,T.mount&&T.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=Q.lookupPath(f,{follow_mount:!1});if(!Q.isMountpoint(E.node))throw new Q.ErrnoError(28);var w=E.node,k=w.mounted,L=Q.getMounts(k);Object.keys(Q.nameTable).forEach(function(ee){for(var Ie=Q.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&Q.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var T=w.mount.mounts.indexOf(k);w.mount.mounts.splice(T,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=Q.lookupPath(f,{parent:!0}),L=k.node,T=yt.basename(f);if(!T||T==="."||T==="..")throw new Q.ErrnoError(28);var ee=Q.mayCreate(L,T);if(ee)throw new Q.ErrnoError(ee);if(!L.node_ops.mknod)throw new Q.ErrnoError(63);return L.node_ops.mknod(L,T,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,Q.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,Q.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L"u"&&(w=E,E=438),E|=8192,Q.mknod(f,E,w)},symlink:function(f,E){if(!Tn.resolve(f))throw new Q.ErrnoError(44);var w=Q.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new Q.ErrnoError(44);var L=yt.basename(E),T=Q.mayCreate(k,L);if(T)throw new Q.ErrnoError(T);if(!k.node_ops.symlink)throw new Q.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),T=yt.basename(E),ee,Ie,Oe;if(ee=Q.lookupPath(f,{parent:!0}),Ie=ee.node,ee=Q.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new Q.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new Q.ErrnoError(75);var it=Q.lookupNode(Ie,L),at=Tn.relative(f,k);if(at.charAt(0)!==".")throw new Q.ErrnoError(28);if(at=Tn.relative(E,w),at.charAt(0)!==".")throw new Q.ErrnoError(55);var Ue;try{Ue=Q.lookupNode(Oe,T)}catch{}if(it!==Ue){var Ve=Q.isDir(it.mode),nt=Q.mayDelete(Ie,L,Ve);if(nt)throw new Q.ErrnoError(nt);if(nt=Ue?Q.mayDelete(Oe,T,Ve):Q.mayCreate(Oe,T),nt)throw new Q.ErrnoError(nt);if(!Ie.node_ops.rename)throw new Q.ErrnoError(63);if(Q.isMountpoint(it)||Ue&&Q.isMountpoint(Ue))throw new Q.ErrnoError(10);if(Oe!==Ie&&(nt=Q.nodePermissions(Ie,"w"),nt))throw new Q.ErrnoError(nt);try{Q.trackingDelegate.willMovePath&&Q.trackingDelegate.willMovePath(f,E)}catch(wt){x("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}Q.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,T)}catch(wt){throw wt}finally{Q.hashAddNode(it)}try{Q.trackingDelegate.onMovePath&&Q.trackingDelegate.onMovePath(f,E)}catch(wt){x("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!0);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.rmdir)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){x("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){x("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=Q.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new Q.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!1);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.unlink)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){x("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){x("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=Q.lookupPath(f),w=E.node;if(!w)throw new Q.ErrnoError(44);if(!w.node_ops.readlink)throw new Q.ErrnoError(28);return Tn.resolve(Q.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=Q.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new Q.ErrnoError(44);if(!k.node_ops.getattr)throw new Q.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return Q.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=Q.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new Q.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){Q.chmod(f,E,!0)},fchmod:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);Q.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var T=Q.lookupPath(f,{follow:!k});L=T.node}else L=f;if(!L.node_ops.setattr)throw new Q.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){Q.chown(f,E,w,!0)},fchown:function(f,E,w){var k=Q.getStream(f);if(!k)throw new Q.ErrnoError(8);Q.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);var w;if(typeof f=="string"){var k=Q.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new Q.ErrnoError(63);if(Q.isDir(w.mode))throw new Q.ErrnoError(31);if(!Q.isFile(w.mode))throw new Q.ErrnoError(28);var L=Q.nodePermissions(w,"w");if(L)throw new Q.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);if((w.flags&2097155)===0)throw new Q.ErrnoError(28);Q.truncate(w.node,E)},utime:function(f,E,w){var k=Q.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new Q.ErrnoError(44);E=typeof E=="string"?Q.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var T;if(typeof f=="object")T=f;else{f=yt.normalize(f);try{var ee=Q.lookupPath(f,{follow:!(E&131072)});T=ee.node}catch{}}var Ie=!1;if(E&64)if(T){if(E&128)throw new Q.ErrnoError(20)}else T=Q.mknod(f,w,0),Ie=!0;if(!T)throw new Q.ErrnoError(44);if(Q.isChrdev(T.mode)&&(E&=-513),E&65536&&!Q.isDir(T.mode))throw new Q.ErrnoError(54);if(!Ie){var Oe=Q.mayOpen(T,E);if(Oe)throw new Q.ErrnoError(Oe)}E&512&&Q.truncate(T,0),E&=-131713;var it=Q.createStream({node:T,path:Q.getPath(T),flags:E,seekable:!0,position:0,stream_ops:T.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(Q.readFiles||(Q.readFiles={}),f in Q.readFiles||(Q.readFiles[f]=1,x("FS.trackingDelegate error on read file: "+f)));try{if(Q.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=Q.tracking.openFlags.READ),(E&2097155)!==0&&(at|=Q.tracking.openFlags.WRITE),Q.trackingDelegate.onOpenFile(f,at)}}catch(Ue){x("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(Q.isClosed(f))throw new Q.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{Q.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new Q.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new Q.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===1)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.read)throw new Q.ErrnoError(28);var T=typeof L<"u";if(!T)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L,T){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.write)throw new Q.ErrnoError(28);f.seekable&&f.flags&1024&&Q.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,T);ee||(f.position+=Ie);try{f.path&&Q.trackingDelegate.onWriteToFile&&Q.trackingDelegate.onWriteToFile(f.path)}catch(Oe){x("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(E<0||w<=0)throw new Q.ErrnoError(28);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(!Q.isFile(f.node.mode)&&!Q.isDir(f.node.mode))throw new Q.ErrnoError(43);if(!f.stream_ops.allocate)throw new Q.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,T){if((L&2)!==0&&(T&2)===0&&(f.flags&2097155)!==2)throw new Q.ErrnoError(2);if((f.flags&2097155)===1)throw new Q.ErrnoError(2);if(!f.stream_ops.mmap)throw new Q.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,T)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new Q.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=Q.open(f,E.flags),L=Q.stat(f),T=L.size,ee=new Uint8Array(T);return Q.read(k,ee,0,T,0),E.encoding==="utf8"?w=xe(ee,0):E.encoding==="binary"&&(w=ee),Q.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=Q.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),T=Re(E,L,0,L.length);Q.write(k,L,0,T,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))Q.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");Q.close(k)},cwd:function(){return Q.currentPath},chdir:function(f){var E=Q.lookupPath(f,{follow:!0});if(E.node===null)throw new Q.ErrnoError(44);if(!Q.isDir(E.node.mode))throw new Q.ErrnoError(54);var w=Q.nodePermissions(E.node,"x");if(w)throw new Q.ErrnoError(w);Q.currentPath=E.path},createDefaultDirectories:function(){Q.mkdir("/tmp"),Q.mkdir("/home"),Q.mkdir("/home/web_user")},createDefaultDevices:function(){Q.mkdir("/dev"),Q.registerDevice(Q.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,T){return L}}),Q.mkdev("/dev/null",Q.makedev(1,3)),ns.register(Q.makedev(5,0),ns.default_tty_ops),ns.register(Q.makedev(6,0),ns.default_tty1_ops),Q.mkdev("/dev/tty",Q.makedev(5,0)),Q.mkdev("/dev/tty1",Q.makedev(6,0));var f=Tl();Q.createDevice("/dev","random",f),Q.createDevice("/dev","urandom",f),Q.mkdir("/dev/shm"),Q.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Q.mkdir("/proc");var f=Q.mkdir("/proc/self");Q.mkdir("/proc/self/fd"),Q.mount({mount:function(){var E=Q.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,T=Q.getStream(L);if(!T)throw new Q.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return T.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?Q.createDevice("/dev","stdin",t.stdin):Q.symlink("/dev/tty","/dev/stdin"),t.stdout?Q.createDevice("/dev","stdout",null,t.stdout):Q.symlink("/dev/tty","/dev/stdout"),t.stderr?Q.createDevice("/dev","stderr",null,t.stderr):Q.symlink("/dev/tty1","/dev/stderr");var f=Q.open("/dev/stdin",0),E=Q.open("/dev/stdout",1),w=Q.open("/dev/stderr",1)},ensureErrnoError:function(){Q.ErrnoError||(Q.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},Q.ErrnoError.prototype=new Error,Q.ErrnoError.prototype.constructor=Q.ErrnoError,[44].forEach(function(f){Q.genericErrors[f]=new Q.ErrnoError(f),Q.genericErrors[f].stack=""}))},staticInit:function(){Q.ensureErrnoError(),Q.nameTable=new Array(4096),Q.mount(ut,{},"/"),Q.createDefaultDirectories(),Q.createDefaultDevices(),Q.createSpecialDirectories(),Q.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){Q.init.initialized=!0,Q.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,Q.createStandardStreams()},quit:function(){Q.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;Ethis.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},T.prototype.setDataGetter=function(Ve){this.getter=Ve},T.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",cn=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var Sr=new XMLHttpRequest;if(Sr.open("GET",w,!1),nt!==ii&&Sr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(Sr.responseType="arraybuffer"),Sr.overrideMimeType&&Sr.overrideMimeType("text/plain; charset=x-user-defined"),Sr.send(null),!(Sr.status>=200&&Sr.status<300||Sr.status===304))throw new Error("Couldn't load "+w+". Status: "+Sr.status);return Sr.response!==void 0?new Uint8Array(Sr.response||[]):wA(Sr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,Sr=(On+1)*ii-1;if(Sr=Math.min(Sr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,Sr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(cn||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new T;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=Q.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return Q.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,cn){Q.forceLoadFile(Oe);var ii=Ve.node.contents;if(cn>=ii.length)return 0;var Be=Math.min(ii.length-cn,Ii);if(ii.slice)for(var yi=0;yi>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Qr=k.size,+Math.abs(Qr)>=1?Qr>0?(Math.min(+Math.floor(Qr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Qr-+(~~Qr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Qr=k.ino,+Math.abs(Qr)>=1?Qr>0?(Math.min(+Math.floor(Qr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Qr-+(~~Qr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var T=G.slice(f,f+w);Q.msync(E,T,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),Q.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Q.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=Q.readlink(f),L=Math.min(w,Ae(k)),T=ie[E+L];return se(k,E,w+1),ie[E+L]=T,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=Q.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&Q.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=Q.getStream(w);return k&&Q.close(k),Q.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,T=0;T>2],Ie=de[E+(T*8+4)>>2],Oe=Q.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe>2],Ie=de[E+(T*8+4)>>2],Oe=Q.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Nt.varargs+=4;var f=de[Nt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=Q.getStream(f);if(!E)throw new Q.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Nt.getStr(f),Q.chmod(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function Qp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 0:{var L=Nt.get();if(L<0)return-28;var T;return T=Q.open(k.path,k.flags,0,L),T.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Nt.get();return k.flags|=L,0}case 12:{var L=Nt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof Q>"u"||!(Ie instanceof Q.ErrnoError))&&Ir(Ie),-Ie.errno}}function Sp(f,E){try{var w=Nt.getStreamFromFD(f);return Nt.doStat(Q.stat,w.path,E)}catch(k){return(typeof Q>"u"||!(k instanceof Q.ErrnoError))&&Ir(k),-k.errno}}function vp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Nt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Nt.get();return Q.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:Ir("bad ioctl syscall "+E)}}catch(T){return(typeof Q>"u"||!(T instanceof Q.ErrnoError))&&Ir(T),-T.errno}}function Pp(f,E,w){Nt.varargs=w;try{var k=Nt.getStr(f),L=w?Nt.get():0,T=Q.open(k,E,L);return T.fd}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&Ir(ee),-ee.errno}}function xp(f,E){try{return f=Nt.getStr(f),E=Nt.getStr(E),Q.rename(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),-w.errno}}function j(f){try{return f=Nt.getStr(f),Q.rmdir(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&Ir(E),-E.errno}}function Et(f,E){try{return f=Nt.getStr(f),Nt.doStat(Q.stat,f,E)}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),-w.errno}}function yA(f){try{return f=Nt.getStr(f),Q.unlink(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&Ir(E),-E.errno}}function Wi(f,E,w){G.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Tr(A.buffer),1}catch{}}function ze(f){var E=G.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var T=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(T);if(ee)return!0}return!1}function fa(f){try{var E=Nt.getStreamFromFD(f);return Q.close(E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),w.errno}}function dg(f,E){try{var w=Nt.getStreamFromFD(f),k=w.tty?2:Q.isDir(w.mode)?3:Q.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof Q>"u"||!(L instanceof Q.ErrnoError))&&Ir(L),L.errno}}function OE(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doReadv(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&Ir(ee),ee.errno}}function kp(f,E,w,k,L){try{var T=Nt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(Q.llseek(T,Ie,k),Ri=[T.position>>>0,(Qr=T.position,+Math.abs(Qr)>=1?Qr>0?(Math.min(+Math.floor(Qr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Qr-+(~~Qr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],T.getdents&&Ie===0&&k===0&&(T.getdents=null),0)}catch(it){return(typeof Q>"u"||!(it instanceof Q.ErrnoError))&&Ir(it),it.errno}}function ME(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doWritev(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&Ir(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),T=Math.max(k,L);de[eS()>>2]=T*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=Q.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,ln=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&ln)===ln},set:function(f){f?this.mode|=ln:this.mode&=~ln}},isFolder:{get:function(){return Q.isDir(this.mode)}},isDevice:{get:function(){return Q.isChrdev(this.mode)}}}),Q.FSNode=Ks,Q.staticInit(),g){var Ne=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new Q.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},Q);for(var Ul in An)Q[Ul]=Kl(An[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),T=Re(f,L,0,L.length);return E&&(L.length=T),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,T,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,T=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(T));while(at0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function QDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Nc(),vDe=D9(),PDe=Ss(),xDe=fC(),kDe=1/0,N9=F9?F9.prototype:void 0,T9=N9?N9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(PDe(r))return vDe(r,L9)+"";if(xDe(r))return T9?T9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var NDe=HR();function TDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:NDe(r,e,t)}H9.exports=TDe});var jR=I((Aot,G9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",GDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function YDe(r){return GDe.test(r)}G9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",GR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+GR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+GR+"?",GR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var PB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,xB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,x=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],N=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&N==e)return S;if(O==t||O==r||O==e)return N==d&&ne.every(function(De){return De==i})?F:x;if(N==t||N==r||N==e)return x;if(O==o&&(N==o||N==a||N==c||N==u))return S;if((O==c||O==a)&&(N==a||N==l))return S;if((O==u||O==l)&&N==l)return S;if(N==i||N==m)return S;if(N==s)return S;if(O==h)return S;var xe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[xe])!=-1&&te.slice(xe+1,-1).every(function(De){return De==i})&&N==d||O==m&&[y,B].indexOf(N)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&N==n?S:x}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,QV)=>{"use strict";var bV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);QV.exports=r=>r?Object.keys(r).map(e=>[bV.has(e)?bV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,NV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},NRe=J("events"),vV=J("stream"),PV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),TC=Symbol("emittedError"),OB=Symbol("closed"),xV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",TRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};NV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new PV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[TC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new PV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[xV](e||null,this.buffer[0]);return this[Va](),t}[xV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[TC]&&(this[Za]?OC(()=>t.call(this,this[TC])):t.call(this,this[TC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[TC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[TRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof NRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,TV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};TV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Gc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Gc](rl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Gc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Gc](e)):super[Gc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},GB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends GB{constructor(e){super(e,"BrotliCompress")}},hF=class extends GB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var GRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=GRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=GV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=GV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,GV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),bF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=bF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};KC.parse=(r,e,t)=>new KC(AFe(lFe(r),e),t);var AFe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,lFe=r=>r.replace(/\n$/,"").split(` -`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[xF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[NF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[TF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,QFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),GF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),bFe=WB(),HF=th(),WF=bFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new QFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[GF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,Pn=J("fs"),XF=Pn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),Q7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),b7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[Q7]=t.readSize||16*1024*1024,this[ol]=!1,this[b7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[b7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){Pn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[Q7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));Pn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){Pn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=Pn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=Pn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,Pn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eN});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),NFe=dF(),tN=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rN=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),kn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),TFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:TFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[GC]=null,this[Vc]=!1,this[kn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[GC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rN]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[eA]=null,t=!1),t}[rN](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iN](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[GC]=S7.parse(this[ll],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[kn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.lengththis[p0](s)),this[kn].on("error",s=>this.abort(s)),this[kn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[kn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[kn]?this[kn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sN](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nN](e);else if(!e&&!this[Cr])this[sN]();else{if(this[C0]=!0,this[Cr]){this[nN](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sN]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t{"use strict";var LFe=Xf(),N7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oN=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):T7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},UFe=r=>{let e=T7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new N7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},T7=r=>new N7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?GFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var GFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aN(t,e),t}});var AN=I((uat,V7)=>{"use strict";var WFe=Xf(),G7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new G7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new G7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AN();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eNe(i),$Fe(i,e,t)};var eNe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tNe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tNe});var rX=I((hat,tX)=>{var rNe=process.platform,{resolve:iNe,parse:nNe}=J("path"),sNe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iNe(r),rNe==="win32"){let e=/[*|"<>?:]/,{root:t}=nNe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sNe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uN=I((dat,lX)=>{var{dirname:AX}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oNe,findMadeSync:aNe}=aX(),{mkdirpManual:ANe,mkdirpManualSync:lNe}=uN(),cNe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oNe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ANe(r,e);throw n}))),uNe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aNe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lNe(r,e);throw n}};uX.exports={mkdirpNative:cNe,mkdirpNativeSync:uNe}});var dX=I((mat,pX)=>{var fX=J("fs"),gNe=process.version,gN=gNe.replace(/^v/,"").split("."),hX=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,fNe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hNe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fNe,useNativeSync:hNe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uN(),{useNative:pNe,useNativeSync:dNe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pNe(e)?CX(r,e):EX(r,e)),CNe=(r,e)=>(r=dh(r),e=ph(e),dNe(e)?mX(r,e):IX(r,e));Ch.sync=CNe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mNe=Ps.lchown?"lchown":"chown",ENe=Ps.lchownSync?"lchownSync":"chownSync",QX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ENe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},INe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yNe=QX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=QX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;INe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wNe=process.version,bX=(r,e,t)=>Ps.readdir(r,e,t),BNe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wNe)&&(bX=(r,e,t)=>Ps.readdir(r,t));var Q0=(r,e,t,i)=>{Ps[mNe](r,e,t,yNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hN(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);Q0(o,t,i,n)});else{let s=_c.resolve(r,e.name);Q0(s,t,i,n)}},hN=(r,e,t,i)=>{bX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},QNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fN(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>QNe(r,n,e,t)),fN(r,e,t)};xX.exports=hN;hN.sync=vX});var FX=I((yat,pN)=>{"use strict";var kX=wX(),ks=J("fs"),b0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),bNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return bNe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(b0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(b0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},SNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return SNe(g),h();if(l)return h(kX.sync(r,i));let d=lo(b0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(b0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CN=I((wat,NX)=>{var dN=Object.create(null),{hasOwnProperty:vNe}=Object.prototype;NX.exports=r=>(vNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var MX=I((Bat,OX)=>{var TX=J("assert"),xNe=CN(),PNe=nh(),{join:LX}=J("path"),kNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DNe=kNe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);TX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);TX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DNe?["win32 parallelization disabled"]:c.map(h=>xNe(PNe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((Qat,UX)=>{var RNe=process.platform,FNe=RNe==="win32",NNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:TNe,O_TRUNC:LNe,O_WRONLY:ONe,UV_FS_O_FILEMAP:KX=0}=NNe.constants,MNe=FNe&&!!KX,KNe=512*1024,UNe=KX|LNe|TNe|ONe;UX.exports=MNe?r=>r"w"});var SN=I((bat,tZ)=>{"use strict";var HNe=J("assert"),jNe=y0(),Ht=J("fs"),GNe=fh(),rA=J("path"),_X=FX(),jX=SF(),YNe=MX(),qNe=vF(),$n=th(),JNe=nh(),WNe=CN(),GX=Symbol("onEntry"),IN=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yN=Symbol("isReusable"),Ds=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Gi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),QN=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zNe==="win32",VNe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XNe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WNe(JNe($n(r))).toLowerCase(),ZNe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Ne=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[VC]=!1,this.reservations=YNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[GX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[GX](e){if(!this[zX](e))return e.resume();switch(HNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Gi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new GNe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Gi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Gi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Gi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Gi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Gi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[EN]()}[QN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IN](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Ne(this.dirCache):e.type!=="Directory"&&ZNe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Gi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Gi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[QN](e),i();return}if(a||this[yN](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VNe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Gi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Gi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},bN=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IN](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Gi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Gi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[QN](e);if(t||this[yN](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XNe(e.absolute));this[Ds](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Gi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Gi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Gi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Gi](s,e)}}};ZC.Sync=bN;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Ne=Xf(),N0=SN(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vN=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)};var eTe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},tTe=r=>{let e=new N0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rTe=(r,e)=>{let t=new N0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new N0.Sync(r),nTe=r=>new N0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AN();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=SN();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xN;cZ.exports.getContent=()=>(typeof xN>"u"&&(xN=J("zlib").brotliDecompressSync(Buffer.from("W/wmV1NMuPskozeryn8XMH7pBWPXw9cIbz2gtKAsTjBOi8Fdz20rhcqyu2azo6qamVRkuOQ9Sdsx2M9VVTUiyIkqNCW6RTnY3DuZJjeOc2aOBbUxR/TxFF+3DONIygxcEDug4hXZ+fVwadLkThIuGANp1guytZdP40LSgB19u9P7R+TT9OVvVBulhhXOn8KMr9hzDPQQDtPZZGlzvzf+SIv+RVK4NzCx/IRWkXcoXpt8DDDlegOgSGjFjoziRLLCZnOQi7wfQv/r/Wz1vz9fKOelWoeHVPmBCRARR6cvzOUtzLumA9fYt48T7EqjStPDKryHv+b39WunVyIhqH178YL3UdrblkYSkS1XIRR16/rVL8u+fhFB4EyTwsed9FMFuto9fdz27mIFw4pqda00g0KFZkMjarXUen1XgiFwbmZs0iXxFuVAM+OD0rdUO841hdAWO2WumrtmqlnV2hoPTA8vLQBSUoGClmNR+9NFlp/Swj9N7f2qtRoN93EW94grBttr512HzODQ/RwE/Fel/X61fTMBTd3XRxoJfOZkV3QIpzVLIfzQXxj7fem+X691us9s77dSGx+RsEHwgab5qr1Z1a6NQBjaLxOKpP5hBinqlI7u7/rQr3QuS1/fiPQwEnWPmwhFExiyxBjQtUeT0bzax6+3vZqar29gGIGIY3MdU1dVN+a27NyQGUGkR1vZ0Ezt9U2D1uAsx9zjljQm+Opr9/4JApaN6A0Rm0wkuafoa0N+Tv+khL7R9srYx5pCYxEO36b5/139umU/MxQChK0JEg4Suc7fqIqfLCld58r09b4Rucywc5BSN8IYWf/k1xg4Nrp1abj0Bfvxja3joYNU1uLxzfwBRoUakIpuhPk12lBx+7LwRMnmHw89NFXb4vHN7iRsSIITjC3ekH4nkW9RQ7vQge3maAgT8APsS4nz6XjY3W0KtJ8enzSasSYegxwcYm6p+ciu24Rfpxi6b8u347GJ1Fk4Wm4R5L0wLB9L4RZCsyJ3SSZ840v5zueXi/epC9xe7vJII9uTOAFlMtCwo2mRlckHGlpn4j81to6HPcSWte7x/Zk/8BGwD45KN8UcjFpS3Ca71t73eAUTZp5HaKORaWjBiJGbnw5E14QJfoKg2ab9LbdWYBAvNEJBgomqNq5f6si4gl+6FNyGOzCVSpf89v+ZadVa+35kVhUKYDcHaLXkCCX8QqFXnJDCl6yIHxmNjIisRmZWgSiFZgnwGigA1yWAaQLgZBbI2Sqw5z2QHAFy+t6B3XP30Cu5mjOniQK5S9Ej2VzBPiGULYT0pTKssVYY3prrOffWce75ZzjnGOd6Z67/NTXpSncdHz6AD0CV3XepgkCjr5cipVZWebj/WnJdO4UGoNIJDqDAE5SR//+9mdb3MACkUakcS99Yu+ZIJEi1t5M54pi7iXjvRYgRAUCEySwSmVQrk5S6kqT4W81Sn3PvfYEXLwJkwFCNBCkVmZJ6SWpHSW3Uxkpd+t6O5u3MtIeDlL5Tf1s9+4PhH/bwD+bz7///Z2r1v/dGRGaCBAlR1ZSqarVKY4z5zkxCtjTG2u9h3HPuXpVxb8Q0kGZayExMkTBriiC5lkiQY6SqeyMTZEQSpUpAVHcCYnUDlKqbUptFqatnqWve81I9Y93PrzH25/N9fOp5PWMMz/O//J922Ee8dY+iKBDyGzULhdTzqPdS5zvoSVyEiytNCJ0/db4n/ScZZAiaImKnuHXGqcPYAbb5///YpttdvtfnnrN0KgZhACYmNohBWJgoJmKgy7MTN366hjH0IhqDH364yEBCwmn8MV/rze3zhFLqR0qZoImwghe8y4RYwkRGGom0dsyN3v4xN1ZX/7z/5lzajW0HDBgQEGAQYBCpVhVgEGBVbmVgYGBgEKnT9f+b6//hfbtHmPe/lCtWLCWUQFOICDRiRAoR4RFoRAoRIyJGTGHEiBERp5/Fk3/a3he8uxs8KBQKhUIhEAgEAoFAIVAoDAYPCoNBYX5uwj/023uF3N194oqKJotAIBBkg0AgEOQHgUBUkJ+KCsQIxIgRR4wofL4XvT3Rg4PCwkGhECgEAgMDgRD8oTqrxKPM7MGNAGxU2AG4enzv8a/yYeDbVn9IrAeyXpQBWFRJlSADiLTMDMgEMFWA9fFbE7vvzUPb+uffqMy6IPJj75akxFBDD5UzhMwQLS3SUqWUysY557jrAC8G3k2/Cy2MAilf91aBYMEKBJUgIWgSxEtQKxWorj35jXSbtTA5n8XQlt/gl7Ffu7hK2zUWpglEiUl5+FoIqqaoLm8l/KgTrIQpBr3DQcKEhSLRhzDEBM3VpxSSDSKahBnXrBK0EgpIZXOr3pxf8H8X9+wCvRNyloCW3rBhhMGrx7jLad93ge4aHXYcCOeXpdszXaAVuEzUKsAfrWvwW0bLeKyW6V0rcwee+bFWOa93jipmJqkFmWYZ9uKXj4FGORO0cPp7k9f5nzTkAR9bjPsSReHviwYt8IwpZCEdVNGsy8j9cRmCmJYljtSw4jiaJZzkvotGoAXnsU9184BKs5hXvrCBROL2F8xrXkPNP31ynakOoe2p/aY+WjuHZfy13lZBEeCYpmX4d17BqTjz542NID+dwCN+jlI841PZ72k0Hf8y1l1HBXw/cGTy2x57AQE0Ojr5A4MGOaqXkxLM67tr/zIyAabuUZ91CJFb6UI7oVPi1+MD39I0UsPOayurzITWseFdJx9JnD5v3+2RnNt5C9R4hygnV8/Zv4q3rnxk66hGkcnfhULecIb8hQmYnGj6PN2P5iZvMyryppkdMj4nMONKuOGc5bK9ZQON37+XSVoSZGWUuB1A4Zjndc1mQrW+yVgoUK9vWiqp9awkpftMy9UeE1VoYlul6mO41h2OWbXX6DHs2zr9jH9Kd5YwYI/uC9nXdc0IPkOYpAkbNU78mqxxPEnlnmL53GckVP73JGGMVLz/ejw7bq0co6pA1xXV+Umg4qnM3001DZPjK1JpJ5xwb6hASf55vs2MpO4yQ3lNmLG8gEXLRZ3hxnthsW+xb7mfub/5GZueMoOP3mbs1ndVmp+TBgFph3uLAzkLAC1vYEEQD4QajWpXJW+sJg39YUpeWac09Ecd4hMxLQNzUMRBC9uXAgSUvShWwYyNLRauxfoFaPBL16XCCZbjvriKzCHRO3x5AQi81OsIdE2ZOHPDBQ5pHv05rtzTJk8d9Q+RCWZHFVpMFhwfyZox71NTAIc2vUK8aiCQWtccv/gBQqshZQRRptMowqOQL1EOkPhYXPSqI4P8xXfDmUMBJHhaRYwjehYtNw3vW4SOEGTsNoBjImXPfHAjAWoifm+/2CjlKSuUQYSTDwQunAWxfZwlWGBXF2ARdxKWtTiXQ/kSsaSshM3J5xhIE72aid4Q6yML9J/Yww9xdgTEgA9J6QiIAbGiTCxG7sbtgcXF7OJRnn3QQDjDzbgdYXYwL9cSYH+nqAUQA8Dm1CJuRUE964Mddy/qjItEAuVP0cc2Pm/apAQiEPk1ZqEfsT0jDKC01IlPPVPCqCno4QxutU2lmVVL4+hfDl8JOIktsSViDLVkC2EauuPg+iPjMLuNJlgNsb4i3r1keHL3nw6V1pvusUF2Txw6PmIN6FSdJDRYP4/Mk61+vifzvZ7Tq3s5fmhRI9a2G7pTEVI8PvHPGoJpsh4M2uH4E0z/T0pbZ9Uq9b4zOYRgaVvWD1fZQyvo8bovA2Q5eoPCibgqwWHnmg6CdM+tbf9JILKs35fwHksK1/SnMv5kz3sdPtg9BbPXDplorByly9enwHcD2fgygntiEpBDocvXNVQpYkYcUpHKcUEtaj6TRK+XAhqJjyncAhj8+lwP9BHuFGSlJ/c02fIsX3/S8NP3q95bGfyMECW/N/a/URibMU76MejfaKSalOX7i2Xg24oVi2LEkkfw8MwXcfNJyHk29u4jF/qFXVXoTQtWlJR6+gAUJ9HNuLMppOfQgmnasp4JZjpky1gOPMed7EmfcDArKfiojZ9Kcakb02d4YKuzH4TNgHtHWi5yeW+1HDxWkwd6zIIJcLpztJZ6EaMCLbqPEWuPWCS7cCn/kVTVvyIfnAPB3hlSMwBTsEQshwLU6IOLVUtUnK+XMRzWtUdFqNQZjUXHCDyNy17j4iwkhfCPGMRJJExX4HFM3xubBD+fEFEjOvM4/eh9qWMdHd7XH1IVT2aPXhCLTDhpHkDWMYMTPCY0unuuZ76K7z0teXrMNAVvKNq9pv5TruVQRS98vGqaZ4VLn1MitbUSxB3Nh27mhtgPOOaZqzoei1jqH/boOKT21Lq4N4SwTmEq7FKCvfX5+R6X7BbOw0ygNCGFR7Al2U9qgyPd0F6nX0fTVwoF0iOOHyPvb+uqTnZUWDnRkdbPWP9JqeRddtoN2MTlndrhVq2gHbfic1QQSCfAtbyiNYHG6loM1LeGT4TNZSMnrcBBXE6wIVW6boqVSyQ8xYziMFLGRTZoZ++K2OP0BhbvBZlsZsMWJ1ZiR49w+BIucsq+/r7//oXLHdLoot1gEiy3xF6RLJe9S8Ggyvl4fGpk9hKpAongKMMw2O2TdR7mHDuhSdmU4zthRFZXBH8tJdk1ldlbJp2+eftTnzjtCadd6pU+2U9caGnQN7WwCu139jrUMfZVn9y5Du4Xcp/FOgfuVKrjFK2u2vC+FBqHWwbSTZYbYY1l1ZFri/IjIJM49e9+CsEjD5DYq0MCfre2OSdfvIgxvOSpRzXeWFkQPg7Nc+eEj05IV4tB60Ddtk/rNqVKEUrteVqMBhbhU+uWoFgwQHFLvm0LqNOpi42UpYulKtJQdtpprm/4cLnZe9g6HPd7Gt69QqDZQwm69CvCQH4eNWFGWeKZGUWJLfKsHaBwsCW0pbNDE4m99VlLy5qeJPAoS4veK9OQAcfGtuYUZM5GTEvMJBe0Et2wTYe64PHXo4CjFgbCSGJ7Npc8LdOORfjQC32g82kEu8/sRvvs6R1b6Q3768zIuryIp1/v1CcYbMCwR0axj9TKQoPczCl6VmpMPEIHo/b54Lpt2ky3rYe0Oi1iLPFHzyX38rLONCarGoPNmcEqcLosx4W30Iv2Nx2A6BDmpnCVtiI21IFs0C2F0x655V6KTXqbTa/zOMZBwCWBnxKnZAUOfZ4ci2CtIA1k32f5CoJEOpTEUnYIigDCeCitT3sKR0gCy7ahmc0eTNSiwvCBoc+fRehvCD5E5OUjG3NCXl6rRQl2y3mLDvPN1faPX3K7tJU2HMvtF3obxYC8dP7Ww98iiujseP3ytrEjTB4/MswdeMQZo54nz4W7WJwL5vhYsMLAigT1YT97ydRhzpl97i95lGeP8mnLqg/OM1UqJZ8zZ7agOIyH8a+awhCBCb6oTQCHkzs7EWS9Hr8Bsk48Knt/84RvR4fH4FbScfi4JV2WL1FhlYlVcO5qRJbl+qiAEwGIUiXEnjEJj+VqVSpNCjs8ahIf9psM9pjxzrOn+llvfb3fRcxm6CftzmgXgcF5UCTTiwLYkWIC7ntboCMFLl/BQfidQBylI0Tv5HG3PjqJlC2DnBMhWiN8EW1w/ohNu/3W/0ngHAjFE6ByoXkHmPqZPO6y4WWdmi0wd+KYkp4+/iK6C9WgZvjsnasSR3XOUTsaP2pHKj+PVzjLRyxcUQYgj7uIg6rD0kVmLXX8Rdxm3wA27Q4EpWeGMlYmJbiqUJkmG79OV8YxrHRHfAholsNLoRxfS5U1TzkDSJfh/TejoZIM8o9XPn50l/+eX9PQvbXbgsQzy1REr5envAxApUH6l33ulq8uwNEZunzDddlLfuOPhlGhd1dGMAoCsVfG9ymHbxspAchwz9PngvIl0uvLGbdFl0BAioKE/R3qoZuk6DoGv0gADtHRFgL2rqrO9YIYqrWkfEKUdEK3x9++/f6D8o3hlSTCnS6uWv2GagUFOgqqD9j1Vg8enVyhK5Jg/2ly879c+jbCVHpUumswIeGCbdiuSsApnovqiGDWue2hcjlxV4Rgwto5zQ0r2McFQ41FRzQ892ljrBpwCFwFYTt4JIwKiwHhRr4wUH8mzSlpF0QyPs/7uFiiummlPa0tStgmcr+kCLrTusah7wZHytojsXaL3tqCX7Fbgu8tXGhp0Wqqh4ZSIcFqRU3jQdEl1ufY/lSfsvCc83V83Kzt+sd0jcyskLaAFPdAT/QSfEgxSvELYG2gDVUZmnIEut/3dxipcMAukf6wMEAo+W2J2LTn6+KXQao3I6yMo2iDswDaSztFS8qJNGdRU3Fr2rL63qwsT9wIosOEq8gY9DxjIRQe5aOCgAMSha2r7brWHn0S8Rj7vad8gLW8iC4qqEPfcu353NHgm+QoVwcGdAJAaJh3U7O8raGvyFu3klLEK+pIHbmQxqJJC5pckcSRIpkC+qeW8tAwcpPNlb8dJlNXo7aHeb8rH0X5G7UqVGtx6cSPbxoYElcoBQhyaWJbhe0HwcD8UFwlVi1RxeybtYkgAZesFk1ck5wrXKDjUuxN+PLmjFCtB9S1SneBc3Ys9TMBgEDCw0aCPtJMHtrRAXDz/0BFyXnByCDfBtoJL7lPkYFEx/s2RAbIrOj4n4gt7mHk9t/t6KnrH4W3AwPf9OHCSc1tCpV3P97JgApwAqowDH4koppEXIny1GYK32k2R5OUXXeYyoCYRdPpU2MnhFoLaKn0qi5xuALYpiwuUkdCcnNwjz1P+pKkDQu01jpyTCUnLjpt3nRJR8xsIdqRt+2m2zhaxuDw+x89lyZNqMnjcmlSgqB3lzZp1ExW/CPZBTTzMoo0P6mVEUT7A3vrWJn99TRZ30AkAkPtVZ/lFJZC79DT+i83J6UZqbUKCNW4NnrvLbu1C+i5ddGf+JPYSfd/bkLIIa4XAsfZXAyRsffUgRFLJ8qBtAUDt6mmv7cKpJ6JT4k3WW5lJDzwTh9QZ3IrHywLfnQhqya9F2J1wEskOq/udyaNRo0oTSzRV53sypkeQjql5K28dGXUM7Jc1US6uuizSF96LAi3wf55lf9P/A8XPqrhy65on0T3ZmoeuESq3NU19gZmqFDpKaDSJ7nrLiNxsSsuCY+2Qg7N/VIruW2hQN8CVqLKZDHbYYdGJTJ/MU2h2s9l/UTKNIISjuW+h3KaAozUUnsj8MhEpP1CTYqqlXFibT+PLiiT6IqUkbzqvdTOFI7+XgK81xHKQKSiJD7APc9/g3X2494dbd/cwYjAaHhIDkMJiF9/fC1Svr39fg9EKEV2WEcykOpv2UbArqeo9e6rj8G+GgG72pYcIdJMeSSUABgZl9bKTDueYNz7sBME9WM8SS98Mqcxz0hcKkNyr+JEHnHMpgOA5EQqjdQG28VPqg54zpJeXeXz7x0emzY3cIo8mqsSb4noK0rV04g1ge4BJ+sTPZzIpS+TxPtE0RpqxiRT7EIKCQFLt4f7LcjzH1fud+t+12pH/BwLAv0iedAtoK1b5I9LdxgF+B/+kDHN4AC+8eb9d6lcMG8lgDBMbLTOivNF7i0AFIyTaLhTrYPLo9+wEpL6mJ633x6p+Bj3qXNppdBGZgM9r0l6i0qh0qZmHoLn/fp2l+8bZS1vJHH38zd/3H3wHVq1vbFXT0vzl1T9S5nv/fXM6rR2o/rhfN76a682sWM00fZf0VZ0ZLLxJ111ot1ovd3sVgJqdKTGbZlNiyWiybYHAj5yRTICLelCao1RkWv1rFtReHw5VPz1HyFrdSSxUent8N2di5snT1xP2eFT9E2jZiK0EOEyj54dvccaBZw07sz1T+WXaNRTFUvIQo2W31q25C+3/90ZPV+5ywRdrYtS8XbvCY/F/CSbyZWq3cadpgbZdlz4yMzKWVpMxs9BjDSO/y7Aqzw9yPEu3g1KnaOkP0E+XEY6mcRvNYNE4K3m+kSCwU7zjzB18laTdvSptDajdybV8QzGz3H4dUh+5HFKsiBxX0EoVwo52xXvrh/8u+3XXdDnjNnREN9ldc0fX+MMCKUPM8jY1kOP+UPA6ulZqaWAOyxyst0sjJcKOpHTQ/82uCW5BZ+y+xpGDCzbGJjQEn/xy65Ej4+4VFSdH1Y0CBGJUvl9nvwyLQyMWBNNAzS7I5WpZ5m7NNQpnp7WBFl8hv2DdSs1D/0pNs2QHtL6QdSMgokfJ9LLjwZBSgQwP97CSCVDlYvmDWylSiwaVkG8hIsKgjKbZiJQFUFwxe/UVRm0BjEqUijoGYbmB+e9cwXW8l1yIdK2Rr3KN36IOOL5hPyxQsx3P+5HRvtZVKBKGzmS6KUuuAchS12FqDsZsb4/kZNAd2osWkEVhH7pbY5CcUowxRqkqJUMCPaEbKKbLiN4TyEtNxJpFXg2w+9ffOiUMsOljUbhhM4O5en1XwhsF7VTTO81bkGoGT2zsJOm6JRVJ0LExwnUxVqXmjGK9ZE4ZNQKNZ7SGAlizzoBFlnOKvEmGaGu6StnP4VFRjQpnwouMxk2hDIWl9r9nQgO2ZAEZGsqCsSdo2YmU+RIw5nsiChyrsMFzoea4bcDBudJHHaHwTvW5vZ4GTziDm3+6XmENpIVySTIHc5zWcX51pekAM3rQA7jM5O6weCNxAzwTNuK+Q5O832IWR7SNl0/TNoUHuI491zoh8y9FY7STMNYy4epRMvVJMvAhIeTLvc4RK41P30Oc7lAMKLRMaHzSFFDUI6o+q4PKTtMyH48cRN41gPiBE0gAt/cN4aiGo6P8IKdbLIc90eDB0u5E+lWf3Mf/Prma0p5k9Rw3F8Mb7Aa3ig1oOv8KGiHQMFhjn/FYj7Ni1lTHx7pkRwdRbFWE3McZXtio/u3YdfVuwTJWyI0rwS0zkXcrPr0iI/k6Gjqh7X9YI7qNw/Rd3Ak1CRQcs9yHs4vOiCw89OZsTZxDJCsfvwF6kiTjV1FNHFi6iS7wseVwzFFxNGQxWQK9w7T4qSpa4RCTLzGU4MznyZzNz44t2r5Ys6wmU1WWLYXUAI9cvyBfMWPEZZ8jfe7NOxBQN1T76z2Kcw/XqeA706zzeEUAzhH0LATBJnn2fVrcZ7bKIC5ugBaVY+oYhIkR3Qml+4s4caEKqVEO3Es1SQ7nanF3oxq125KHRd1O+VFdTptkqWvE73FDYJh9I/Bq6ffwvMm+T4UbKUr6VtM3khyQPAEcJLuev6F9cfDzxMNjlfaPSrOgVEcCQ/Kl/kALNUGMFz8aBpMDOcIAcCaPMCO88nyCyuuYI1HEMMAHheRkNDmn8PcUZ1jUuhRFaeKJuvMLzv0B049GDUJsHCo3tWpFTiLjwVuKDwYvTCxKwx/nWT574zB/beggmYoaGKwe6IYpMjr0XfoSDNhtqKDzX0tgtLTCwOSF6yLxDQXO3qV3WnrYVCXUC1GBOiTvODO6d6JL3Fhn2JKkwwk0EwuoAjShGC5pDs6sVCh5F4caUe/ujJRAE7zAZz8gdaWI60baRsISI6kpA+X+VfObP3WpqP2H9DUa9+rH4yExcIbhOTSdQHJF9UEEmePXGgAqwXx5L/KcRpwh/mJ4UjmYIYw/zNmVUMFgssjd2RdENkCrVG5S93ziSGJVVJVQHZY55KxjbpT9XXjeOKEO/okecerwhX7MdoWBmRqnHYHfrnNb2BR+9LbqdzlOhf0jnIsq5enkd/lSt6BchPlatGnd89Gr4rn9hdNt9WPSpHc2ykmhzW+W7kcM278isQHYZz4vkZeAhpTeWgKtGxgJ92gsRoIExAnh5oNFWLpPnuJNvj8dXrEl/XzVYmRQZ9xPxVUOxRUJjTXI4fvUUOkhJFmr6CrE0rP1B+LmtgtmtrcOaNNhLKDhQDELvSDDYQ5yaLY04Ja7j1txs3NwwkvjzQ4tMtpSchpWoLMkSUxbQsUaqmlNcg4++XTrfmZZl7xaVXBPmLn9KArjhtqZ98Ip5ukPoWMeQlSnLQXC27TIm4eDIUgEtNknZKzj5dWReZt4KlUf3rTO7lZDraijTdhmp4VSHZbUuEtmNsH1r3Zysmy8JKY+rAp1BqU5Z0aRQ4+eYW1gdIuL7NV3OzIv/jdHMJZ/lwGp+C7S0of/PIBT7F5I9MQ6SsE1SnEucF9tP8R2RWk5gR02fhi789hJ1h9fFhmii5Ga7LpBHoO7KShqUN/odM/Gke6ue+n+6GXGQurxarqMT7tRBdIotae1EKhI/LEx16bDvktzBfMBUWcsNlX+Zstma9djm2EDzcndnd3cdHUwmdInFmFeyQ1dbxTk6Ca1qtacukE2r1FFcoMqZ74upeDwKIqpplXRwjOYRPVlT8i4gKxuPT0UOEaaHuyOYtGnPAijS/58qMhInkTf2HaZd/9i0LXCePkS2DNLledM6KQ/A4pwh3TdN/SlVTbeBZmFQRRP++VPvgGnK7hKVDn5uYKWGZf+TtCzj6XAw7ro9ivAKjg32UJ3sN7c1O1THu0ws6n1IAaul1hTWdlDk94nHeFJBhmDV+sQ2EdFBe3eTJqYSP4zCLRF0q+ZrXcf6L39Q7LcHhucwpvH6pI2WHr4D+vJdLTvU1Lg9HSSPpH/x2bjEcf//433V0x3ku4/gpeIvenwPr5+tl1he/TkDA61s+rLVpxSrUdxoRQ1ZIZuUfjaQVF9H5jvo75dwbLdbBYHGRGJjdkbkhcL3QepS3okxl2T7HFlnhlRKOgW/J6Zf4zn6ZDFcq+ARwGcNKcLjJfyDVh6nOhkMlI+629JrDJ40VL3HiJcdG4jnCGHTogfxV6GWgpL/lzhdtFgSSdK3hGl7VnoR+Lqgq5ttxNdMJ2MXHMok1suINQZVrDDGgbn+O8jflcOdeplefJI78rUcRET8aO6M6PR4W/MdPWzeQ7vXk5koWOEmWoDCjDV/fep1E09c3GxGez3byDVEvO/+GgL59wRUyGr9aIPaPdQkr2GSuETZ5npB+YWi/kQiz7NpTMkowOSpFg9C0C9LQEPI3to0opeIh5lLzXQjf4ZaQf/Xxmk9DFlJ70mjZloG8nawpZmNglv0/ab+ok/3u5qw3MLrFGmRQz8CwKIfohl4slEanjYzwKaYIs2KEGIYbNwd1sf+LnIeQXJdMcH0t5Kub2aBcSUnQBhD2QS8r4ehw7wvIcYFx+vEkqALo4AEQb/sm5emxW2JUxSHOAzBiGef29NB9ScesWGGDtvj4Ye/Sxf1ru8tmSIcdd5pSowiNQppCOuVgYyT1A1RAprT8VN4wMUnvKI6ravZZeoKZoViyQdf5EINJZ4bw4ndg79JWmeOsruN4C04eD7iV/w6+JlqWCOwGoRJffhAizs2pBthKRaom+T49sDP3KbT6NicIiMQcTKloVstBtEVvWhhKUgUJ+6+NJxo3OdcQ37hA1DZ3Y7UlTEAkB8DbqhBtJ+sRPtZKlPYBXQjWaiCVDUWcF0wropOGdwGl7VfLdDm3t7zb1RXQBPrldTM3slSQWyrPLGuoG1mpyko4x5vhKt+Ai5QzwuDaBQZpIwMZIIG63ZF472viqHX6C2TqI9TSZfmgGf4V8CHCdpoF8dURZkkMFDyLESGXmgbrueTiSF/1ZDU9/LZnKd+ZqneX/D/h4xoW7i/NNoooDQGuix5yA+P9NQHj8P+b1uf9llriz3EUOMbs/iDCiM418TBU5AaOK+4bLglhQL4ggz/cFo/ptWBAEs0seegkTsXyznbZbqNaSfOz7PjtDGV8++B5/3cSfFGUb03JNuXO6RJqOYCYROmR9XzxkCHRpq2handxmkKDbakkPZJ7pKm1HQ16Jl1805TRl5wG7OmRrygfzi5UHFwe6pkgOG8aWO3gfo6pjhxav57euqsipBLxQ3+ROp5yiG8UDMM/sR0CzR9eCnR61Hoeu7ZjFzAolpyoBNnHlRVylqhtVGdMBVs56XKsUdHJ9YASwxsj/CMYVuHhQZzzU84z4BBFqD6fR9J6e3J3Pddec7Q31K348AO7E5fXQynFSy5zMuM6NlsucdefyuxlPsTXEO75Jt0uKZ3kuFgNsja5hSIqpOZkbBDv5i+jMZjenrledSEQwT1nd2Av9olVTNbgMrKIlrbji6mdqohlLWhviKH3xCufSbVHSszLBgdr2rLPPCO3+SeloLJqH5LlIkjCpMGSRv2dJUFG53Nf9im5Sa6clJ07nTmOOz17GXUy2phVa9z/19hVfZOw1ZLeR0KmW5kFj1E+A8756GpqzOc35GBYPOvA/XCp7u2CZ52XYnBpK+lFECq0JdstiQniy6vXSX9FiTxmfaUOZsHDF7Ud8cvp4jBZu6UhjlZPB/d9LWVRQJ3DXnxLtpzvT5l+xB4CWM+baR2EketMkjZdTi/c/PSdSYqp19pLh05g4PWGMAIa+uOQM6/76rk8HUoWqlPCWoBChUyJSaJZB9enEZhVuJwxQE+c7nf/ZUdlrfyvNT2zpATqnGn8RI3pL3322VASwPkjxkwI6YRARVqFQexBdDYOXDtr/tENzG5OPbA6P1L8ofbOmhxg8MeNER0UZXcz2hDuxlapC0PPnX+ppVDS86mOh8aF4S4xf5gn4CdG2pu8nlOfGmxdWJOFEg4PQPXMy8TgmLYgzPJGXiqcuYnGLePcHKh/P85d94/6HCUQ/FxMW8KNhTxTr1BMtC+vbyKUcAiE5QinEX3sqWTv0JYvSvyCuHgjnhdITVfUYdocWKcvLE00+EQ7trSxEFbqgeyEtMMcLdQGa3G6sfnzsPnyRUTXz7NV65+vQmvIwETHH0Vj/xPy0foJ7fjNjzRtj36f32bk1EmFUj7uDn1LRo2J87JTXuytUk82KAX8U5kCi1bRSS/opAW70xRsDvqm5bAHbjSyTEF02YUq7JbHaor6kJ58vnwiAAu9xOI0iRMPNDtCcRw84L311RWMcYoZahEpDB7jAXx19KS+hjqbRBRuQH3a9Z/gSQV1hbY/R3DvqGQIidmJUdIocPMsDys5dJhj94oR4wzh0lVnwMeQx4wGEUTJUmP1wx+cwxkxoCOnpIgVRytObItHAI+azF2YAFLZg0ru/hYjPF6TXIOCECnN4flrw9XMhEYPLPo/ninXEmgGIeq5h/yvi3dcX6/XpWz80Y6zPhAvO/GqYUsP3yS+Gtq+Gv6U7uvx++Wo49lfDrK8GWMDyzmiRcIHXoUk+nOb3Xl+Ov9lnOq75MW9n2wyEFt5u/aahTQlNegSd98ByQtr1JZ7PfMyUrgB+GFouaw4ouoiCJu1lMb16stsFLNqM/IkAlJnb4dcGugrt1MLpTo5dB43m9rwasLgBU8I9HBNuYTnrg6p43fUvwXzTaUFM5VZqMS16VyXb1Fs96DJz+dtp034ujFd+2FXCU0g0XOkwKvqzZn4jOW/BZ6TyZqHW81TXtQAxevfxsj5np0E93ca3FZwx9p9R0IVbzahq5X617TT351DRe95e6nsN2+oWrLqX5myR3yhO3P56/5GPall2e/krbpe1fiaqyxEDt9jQ+tsdKV8rrnPhumEu0npH6komXA6PZZzxtveYFU7kWUm5N2Ydc+maKQSsa7oBJeEINeFgL1RXO2+6qCCFfi0zbhPQREQDHotoS5yjU/Q4cBhtAyVpNfdfYvdwe7bbVrPVq3jHX/RajIsylUu1n2JOPBKN8kPYJ7vZQ7wprlbg7H79M1P/ff1196fqJ/lF11CUp2Vikj44TP4vd/Zz+i3KLD1w+bxdGr/Jys/lVju4CIDI3RDSy455y4zEm5u+JXYFmPdWtdlFkUhDzK6tQ0rx8oAHA4IJOiRUQQfkiY/q+dqAgnMYjCT40WHhhy+qaw3JuPuwiWCGdrg5M8ziuKgq955W81MoCV8BBwRVjUnccBgv2zvwd4F1G81PP1QToB0lSyJoVXBN8DvjdWWH0aRJBCfNPai3uHzTlMfaLCaKEEQK7pv+mJAkAhuKqpaA2iO1wPFBISRuVePtJk2UC/a5hljCmsf8azTaNSFiCXSyIQsz6sEyhrsRo8EmUhQlos0HOJaei+icI7I2tFoTb1TQ+MAH+agBT098vcwUMQizZCkeymMvPZEmGG323+i499nOr+9BBo9w3ppJowm+IOZWxb9L3oEcJpVirYIagOmS2enlbmW4hKH6KrSEvWsgcj4pCyIJVCrOO0XMgZ9JJfuNBUHLStoTkAYuHdUhHZ9Ej7A6DG6zvLRvHa0znMR2eR2VbIld2/Rl331r/e8/ZS9SchmiFPCwiK4zu6dJ4mKlo8Y4pZbPGayYi8yePToWntzAsU9ncTKfRSjJcPgaH6iNgnWsamA9RTbGFXExvDddnHbr8RiPBTBNpvkYhHW5WjNsfkgGAMb1+pHxWg/7/LtA+I6hlLajRe0omjCoPN8E/RJTzN8kXCwspzQEqh1CKfEmIBrLRzsB7+XLp3z5Fus7KnWjz45wyJ9OtZGqRWdLGIoGU5NpE1Gi9uQZv+PSWfr+a4/PPkJHbKP+prxnv/lbz4EvCTgdUSBRKcWFG3CTbwiGxV8JX/SS3bzeCOgk8L2tLkJ4Pk71EEMCnbU/8SZJant0rlRTiSRLKg/mhJmJ2yaRs6Oxnxy71qeYcZVvtku8VvBh9xycOAdVzzrtzN3MyrPlktWZVhFPBXNagzQonAhcij1hCtUOOlb+JvHAEbWGs6woyaZMBZd0bPcOuQ+ulswBnw8voRD6K+r7y/oLKdS8N4MqLjVK1+YxwLg6tayzwWLpPzhNq6CB7o5+C1f42Auvtcewpcqlql70KsEH55NYdKInzldWcBhkmVHLE27rH9QKOceNJeVM9ZEu/bk5EahjteZnTm12rF1DWy++y6UyQfgSYiH1yzBNIcFjQSS41T0y/Vj+Vi1lELZhzoY6tAoeY/SbwBkACG6uQdrGac21Z72M7t5fh1m24Gx0ijV75636Fd7A7r7g6SxKmzX2U/kO5V3L1SeRK55Zdv0BpWL4cMhsu+581YIYIOkUKAgIeEukOmqYyUKkqbC2iuo40hIO41jUVobLXzY6vQpk5E49t/IXZw6NFtapVujMnnZu7M4pN2nWLNFzt77y4V5rJWOsaBXiCWxEmONEKHMmzjuIgQBvY9govsvIyNR4vnfQWOZzfryClPTPUfk65hWuarGt7snSm1ztvtInnwqxMJF4new59KOmvjjRZU6tZuet28s7tMbLsrdBQO8tgwLgB3NYp7dtjtAAjLDQNfxKBH1a4oQgInD2ZBrs46yjm1izRe2xwPCB7v0bucWBlVpWFlDVWyUfEMbgU3g8VdsU/xZszkM+uZGT8XlH7rGK1/e8/9UTv5+hgOxBBshtXuAMJJsJU6e6tUw74vsiO1NsNt1KtePot/9e6S9XddgSqdS2R0wjS/UcicvlYHtflzN13gMyOrbNam5XjY6qAAErvR+yjDS1o+3wkod7Rjv7F1Bly8OmPT61r+MONZL0P+F7/9tL/F4fsRbJts63K1XW0yItUjtXbWOscA8aauEdeA0yTdf/TkM3bx0D8jljjxB9G16PhP+eRvZkdH93RmxE5BeSRiMCgn9Sdc3lAPN9UhPVfFm7uKg5zSd2kjlaSfUeirqz/ZByfCXatVPjOh79anXx3FEDUpKg0fSk23UALUhQnKW0itSXatgcw2r+k/sRcTdqFc0CHiX5zQU7tS7WUJZb83GIF9i6F0QSqBiF69L9nEVuJpDQ1su2ozdrhaE4iQLrcdgBYAnhEXAND8DxHgwz1PCG/mJ4U74aUCPPuTJ3hE4kMsmZkDL5NeyuPrU70jBbxTgvlHbWRv5InOw6uo6gQ618idGlvXrq/jy6Rnj+6gOKdvppAqS9peNke5KgDLDbGizQyjE/TSldeg8qRYuK3BTCdidwDhueOcQT+IojPYQHXhSPu56mCmoOxkqpY7o2BGyrx0UubsV3r3OFakQUIwCAYUcQcRM6IORXa4CKszeIcaZJnCpXMwnLYT9cAPexnKohrptAlEebe+AeEtk63S1NPfyR7sa6A5rm6vtCw90SMkwz4Jq0PTh3vQmgdBoOoutACNF2X2G9G5BETdRt7pDtnR6aq9j1WlStDjKb+zdn2jaA+vxZtvdputLC4qOu72e6aPxOCBau+hnqas+lrVz21/awj7Rttz37eN9xFsP6FmmO9hOSfH/7hlrD1shLjzuFTEW6XohCdUF+qam8VwhqtDgirNLE1HIb1nN7aCfYoJlYXeXoFyIwJ0c3acMjq59LY5P3J94b48UxJFdS4lt/LRKkA1+tx67Xm9X2M+WhWSwCKI8MyEAC4I3IjUgGWUexyGj7yNSclVTGJS70OcPu2Dr64qSIzUVQnrv2kurYqsmW81Gr0jrkhgR6rSET8jbtpkcdc1xzCnPAxteGjnAsM9BOPns/5boqCHIEHFFDPbuQ5ymFHou+QFzOyTVd0P80kSK4/gCy91m6XeoNjm63lqYz0EUxT+WnHgiS+NXRjyiyocx3cTgkgz+JgGbsFqj+CjfsOGouXj4DiY6SqLGOjbOQi057q6Or27AUMehcHHgY2XexUXtf5FsiXdRr5rlmeD9dsa0ON/tF4HW/XaWGgodR4vvnWhb/Gb1wotf6jqXUOhWvexFX2d43EyULSUTLAm91LGslHjyShYlqzTyotREPDicElWeRUv+NPFPM+H/+96XfRPBgESvZlF5ouGE+z1LL+tpEpfn3nIpOUSUt0WtV9sw/7+j6gvjOuqFU65+jGSVXv0sldhAqPofNhr/GPlqpa7ff7/JjJnyzka1uWQIPkl3gYTcXAF+IsScVU4pQdkhZ4ael6Ol5YA5eMpYs8yO5bFA6/qAEaB+CRShfbDSvO0TqNX2KTg28lsGQmlTwJ1hvU8VDHPK+Wp/nzLRzqbuTf7kZA9Cb2yb9WUXku4hXjQN4fxr1S2aF/2D0y05Y9n6zOW/nn61D/UV43pd3B63LdoNK7TpS9xz01WWqonOsogsvmiai6E/YnCaNDSDOa/vBWCIJQ599H70Ay+bLfiEfOoZg8nbVMHUz9/Z17EZn++5wUn6yMIMvFrPa7/bjdlbHlt7co3yfIKPHU7y8/MgD94qvAnRr4Ncqvq91unNvvX4LuDd7YRFTUP3BIiIGkyl+2aZPlmPFXIy19dWI9wuaetGigj8vU0pg71PAFtca+dNUrIlLp5921HVKhpVW13pfnqbt0MdqfMaW4g92ebM7qc+oX4UU1VdWpIj48wuG37GoKuYsYiyI7jNabJTA27+/ATjsKqQhaFtBU80KXW8p5pEYk+PRzOdTVFUxdRaapOvc8ucpFBBSBTf6j7FAXypLfDgupDUUx9ATP/S8WmSM5c9DFH8/1dah3nTeiTBVkUiZgYOCFh+ePEU2XXy4pfxcGKl83CZq1hSqeCTfaM+6dMZ2BxYkkUM481BsxMJkghp8GnM08a2xI3ZZ1xMrjS/89DL4boV8m93ae0Yb2ZfpmnOFdV9moepN0JAwXvQjNQdfDglmUCOrTOYmOcp+Nl+W7tLFh1MTjh7RT0hrYP2fwqRImzrz9oluq/tr9H5lIt/cd1+1sdHy6Mrf+c/kmmc+8Y6P/JI/+abCovs8U/OnTGKbVQXvaCp2eKdIIOM535TSVhiV3bIMfVY9etQjdoM4lSs3c50nkLnHPpp9MrAC8KGXc9uOnX/jipenKSwYS+eqtTywG3uuaog+0m17qZCczdfw64PU0JnsLLrU8PBxTW6x34ol0JCkTvXmwLinBo0bOgwpdJKyw7LKs+Vy7br+vetQmYmxE2geErcqJc30TxvFP+tDp69iYc8CpG2OUaQgz042Hsx4zhdJWl4Pp+XIuMgqvIhFw8P2OE/EYb4/i3h+7JerwHyXTQQJFNTejwWjBtRX4Zk36S74hdn0F+st4RMGTPt+0PKSzvFkx+p5fxNiTCeCOQ8r0P9RJFERCbEqLAmawZMvpwr9IyGUYT9Q1DQPRWGWf0JPCrskg88UKWE0FP2EKOcHKT4sca8xh4c1MjJ9XWWvhalocctmOHMky8cPTVY5Le/jjis1xkNQmM90Oks6pmmKApuPYmBIP3o4UNgIbYzJPuPEivDF2UlcWXHOXhNlRwZPOV57PxewMZ7l880AGPwWyOG24FzgPBizEUniwLSfJKQk/mATEdNXX3WtnWx47NWucfd4OHpN+nkwA7h3/VSxUH9cbCbQz2GkFFWYoQGW1wvDbIL2je/mPjOI8Qr+F9dClnbOKQOZzrzN/mQ40w/Z8NL34nc/vJ/kwvHFn8WxMDD5Nh8KxOJg/3tZBxj3SD5aebqPd/GT4af6ZP7l/l8NzH8ncxT/qecwPsP+pAy0P/2n8Z/6V874dtSKCDPjl5GvYs2fcW32adqcZPdCPw4k3dXWCT3cTF9Rmv6XDMmvg69OLbJfTfbxq5DzJub9bzdizxGZfYyxXTTTuQxny+c49nD5ZxpWl7k3iDEB5nZa/EPAkj9kXI+H919hKX0Zxb+jp/4OrxrWHnJqZvh4jWVvckRC5LiD4p3OuUBLmwefdu2R+vaoCKvsst34vHPbsb5wj71yP2HmgveH5mLs0a+51vL5obcyftI0uxiTvfW7YcOw7v8q8vTgtUC8PyAmfE38VX7l+63phvi7DCf/n0wAgL6Jpy3iDLpwbm8/75byi2c7Kxm8u17I7uray+mxn1kZ2d4KlNrEpF98KtiYNCjfJ/BrMh70JzZ24MiI9OOxFV8JeWQ6F4n5NS7HzvIDjLBTn8j5qhNZULLYxi3lJCzkni9udcdJWIlpCgvGK8kwxuNXTrxgfhoH498fsAo3ELmdOJ6hr9UvPw+fK6XGkj3Qa3AwAF9Ggd7o4dsQ+GtA/0yCwYA+FvSJomcYDYGLAfhndPqXdCB97cBkQP8niP43YQTvK8D3AW6ACcNZEm6UQmKMuZG1IGLzC6A4aJX5bPAUsCaGQYEhtVQLeRAAYXiENYAnIs9bOSlhTWtMeCSfWrE8wbsLQwlARSY9aEgwBQUL2oriI3WAENYWug4/SJbBxgdYDrJcgM1TORVCQM2hDQ4rWOmXlhPgO1SYLCd4G4BhSSExPB1Ux8RYlG2YwQEAAHMJdJFMEtZtR35I5LeEVgnQTB5yHoLFsIkk62s2ACjC/igwNQCAa8CKwIYWuIENQpYEVvGzaCfowT6ByR/kLZcUrRzB5+VfT/ccagbiHQrCoaPkRJ8IX2jywL0QDgMaEzJzBksYJRZ0BX9dqUTIYUmCMgq6Hh8mVIaQ4GVEFkY3s8uJKh/m8HLA3SzoVu5caWNujyZPCEHWId5jieG+F+wF/4PvVHuc0GSD+4GwN9wg9GLYY98gIb6hdIK952pCr+Z2aNJiORfsY65NaInQo8v9Vl2HLg8bdR/o8murroUu+626d9jye6uugS3/btW9wZY/W3UndDlslDt0edyqe4UtT1t1L7Dleauuhi3HreKNw5cRGsOPV8WHK39cKXbIYasCnMqRrgvbV8UmK3dXiq8IbyvBxpW3PwTfsvL2VfHNlbdXim8m/NkJvmTlz2fBF1f+PCi+mGQzgZnU2ehSmBc434Uv5mv83ovrXHHehtFXLc7KPq8YZ2HPMMP5RmYm/2H/W/DSUuzLv/y6kz+Wjfw6C//7H+MasEFod2lhJZ2TtUZo2DGCQq5wdypc+CSKMsCyKiOsoAX9/ArHqB4CbMn/L4XD3zZAql2uoaDEGRwRPdYUFESUjkcMR47z/Sbi6NpixshCnTUoIuG6TJyJUwkrKNTL38k6WtSjzKHYWSQKOM/DCCPYbnoi+QAZVBlku4VsrITq85pwkFlxl7wnXPf0VU/yWravEVrhj6VS6XvYZ/pBrvrXrCeY0G5Cnq/1CmeBdXYcVPi0UIiz2zJjDay5uldr2BhBCjmbB2PNqp6MtV0gQystbCw0W1mekiUr/99L2KBoSNLguAWwSjAisJCD1NjguPQKOyBLd/TEKyjUbQkGWUmnpOokH4RVgqFWPAtCw8DiUoYlbAlF8VQPPSubLSN7rz7xPLiwD5BejCEKucIxNBL79CdyNZgZxbclRdVK8+IWhBHK/emdcb3cNfDZSUiFTxtD8ZGS9TBZEQYXCqM3GTCqq3fGsqPZj29cKkFH7L+nWUI3SChDgX3WJxLQ+ARF5+R4031smBhBQYSDXuFmMELroPEJIcxOpd2EAi5QPTdAjhFOa0jgkqvYwGM6EqIZbhRR7nChuB5FdyHCNgaOnlSgvEqEupdQqKs6bJbjay79TEs1v7UGt41iTzex0zCxOItQ+FSV+oiMOYxYaDqZhI0zEMFVqhn6jRojRvq5ZgnbKYlZEVkz7Xk+Vt0BbIfkci8mDSmW9KC4wt7mLv32LPrKobUi9uu5JB86loQZkySFMlf2JJjczqxsu42hj23eJbRmjPi9eD8wIDvVL38k9+RxlH1xuoRuDP4geYpji6KJrRgKaZIIp1ESyN4eHG8kQdPyZ3tKwBXOoCCahXxJAkdCSqA1wwjyzKrELB4jznc74HvDJAXF6vnHlO4Eq/AEtlDlSVkB57plZrB8b3st2alAyNFyB7eNlfGII5jnlhFDqtlsFldKeDkRZw1J12vczTPyJlK9E2cy4Uw52O72S4PgeIAYcj8jxHH6fU59Se5+60ngbkKG13kiC20DoIiUvB6vzJLr/qDb3aS8Al0G8i0X5a129cnLj6TChgzMQo9LMFXtvgNvQ6y6IYsJS7MmjIo+AEgXBYfE+PucCCJPikw4vJ8TMmXR9uNXEFbIGcaIFlDIROwDiRQqrS9C+07fmj0JbJZEydSFQWbldTel3ko64Xm63IasQrKVflzCeKoRyALXwhUNyavzqTqG4IPf0yg4hNuHgX6NNlVHTnJiQ3+g8DhOSJypw/fOEjicAiyZ6SIkaZxIBoVYDCVZKSTYdjVwhGHAigFX5yNmmtjYqBP2PMng66iB2oIZ5VOBOxN8V+WoUFBXaLZiuAVGMNBodn0PF/nbMRXUpQr4443popfPB9Z/UrD9vokB25nRBDd0IFqJukjdlhVXmV3qbkrRdFbXN8lLwrUaUe5t8Y/H55SQT8k6wrUdkFN9oj0x53G606NQmDXx/QbFfwM1yfFGXXO/v9/wD6UTkXsSOKUg1lBGgjCAoPVMqTskkmasHU9E8eC8P7e3G4tEIWLIMFPnaA4RKOi8nyBFjvabCDM43eVsmpyTYYiU7UG120TeTonMXu7M9udkGMdkJOBBlqT0pHLj9c1+U52wwogiimsP74SDTOgB13g9TjQatiHC3itCqCLJGqNdNMxpT7DKXEJUZZzbQrJBAyh4LjCAsU7N1UX06AqF+SD0QMgICccrpBitWEh9JEEioeUsytjy0FVa77RrbyG3xyI4LVyykCJGyctLr8jjBDXB1KBwqP0Yy0hCpbANFxJkwrR52beSD1pLlIXBLA3YNPbpa+9L5eonAiO1t+XWr8SA2fXKSrrynKE3UZ/L4IX06erpFybJmMtR1L0TMZfbfzAnWE+fvXjoxpEKqWkwZCj0jBGHdGIMXkE7dWmdSa1ANz/hsm92msPECEI50S9JrilVu7m/PHSDhznaWBR+2kcfQ4VElZnEa1CiXeJBO8rB4AU8gnBJ20WGJJAJRWzKPO9MSyOhQ2WUigS6EosC2OCRGGGc//yxgSd6M1zhLDic5O2iUUH0e33bOJOS7Wa4c39Outea/39pZsugx6pBct7p9v5tWwOuLCL1+pYwypdnI0FzBxqgg/p8XQWRv7v73D5UtweNW9fhcf8aL0QG6P6Ee8IteFa530pk5ZRA0+6SoLx/2HBHZN8eHwmHZLLV9T3U1NoeEiXlFkSghgK7CFigGNUb3cf2Nv25cWakUGHbbdo7zaJTS7uZl5qCte4ZFDqCNfIEdw3mVOl/VSHL80SKY4zX2f5IgMtlHmHQlLhJXyvgMDsMGZDfgRX7KLn8vyNwvE0evssE6Rp8INI7eBOcevqu76R1D2ABT6C1SNjstCtIlaoSHtq9wumkQQEX/hJBKsNaznyJt2NsUGcJ7E21MaKr8adK6C53rA8zdCJ1CYqKuLCvtEeFeeFAAEHosShVZPbxWdoNBRo4EHAeOmzKbw3AJRJvSIt/BD0lGcYkCc601goF3lxC9J9jwIzhiMeayEp6JiH6Y9zMYcnNjojig08CEqLpBtGmUNNOrMKRv2rxWuGkkHuuIem0LIfXBkVjH97aTNm/C/tSRYKPtB1EJrNNupuMelQYMW5BTc7SoxodZjO63S/DYdfh7uhBlzPLL8/AFrSwbvPFiXE9vZB3//Y2rsv4FcMTg9w9nuLPSS2KlLaU037om9Ppx4d8jwPDUR17hk/iMOsDanWA52EPBAa1NfXdJrJi7IId5VjfizNnYppCbm/gqHDriRRN4Szic5VdKBqOKv876ycgokwaMq8YmNktiPTVETRxQjJBjzZ8S7nNUjoY4vXW+dLM3HU5UkiYT8hxVjZFpY7pXAHNbXRGMxTxKvIDxFiSJ8HADY19VZ5oZ9pNVHFuRD9DfbX92LQCvPOFIRj7JqMpOoL+3mvXzromorPnQ4QiZs6kMBaXhNRW+m4To+2++1+tCkXZVsSgZq53rJRYTQIOlrdJu2JbgKG2oVPCvnBGdF1jtVpIiO3N22rbbnXCjDZVBhRlFSv8j8WLpYe4iPPvRIERDYkjhWJ/1jDfBXS1AmThaXKwNcBoswQMjVqPkrMJuIszra3lN/Li95xgWj0c8mf2+2U2C1MTTJyR/9EmIdDvM/D10jJV7hZi0uMc0nXKMk+Pd1mvkM78FU2eBVGS1PzUkVn1pi2anDco+Eu2j4kKi5TNcVijV7k76qB1FNJs/E0M2pSXaJBeSExBKidpQBmUNQ76xvdN5URLu3+G6t9VmaHaH0Sl/GSwCRjFEIPhzxpNlfuSl4w0vZlNFHkRsp72ijJnqKV1T7TqDjv6ZFDbaNUNAkUkTo9C9/o9mfyGIi0etYMSTsgkjRQ9rRVruCNX+QoiKq2CI4KIhvT54qWZg1DhuQv0bN4ThaBA7xyVvXmXm5PQfUlgVGb7d9PtuaoJR08G7+5CzDKCYGEhAccaOhMUB4+8W/KzpidfT6KdXLOhkaoTwerkRVWpuFYWy2ZybK0ENhY3RmUyz1ZQcwT/6LARB615ArWhmO3PvUbCEX+xQbH4Ylp2YcjCieGJWV4VC2zwXDHs6QjJJ6eIC19sN6WZYtRgYynvEvKZ8J9YUzhF47Fo3/Wf78kGC4zceuraqqzoXJqtmFTxa1aT3ZYhVXjNJcXbmkRW30vFgScVUCLy2GngkCwNpE0o4d0Um8C0c4nPXkaZakRAEXUxPHrX256/1S0t68ejUyOw0wVAEThsiQwxIiExGIGnAHQmEWhDthbpujnbmEGJ7NXe0EyWwQRHspjCJ98uYfpE/DHKfd48NTlWBDVlK1ssRriWaiPZiAguDZ6IrUXEbxi6OwPOJixlxYCVYJCzhB7JJPqoZmW0kihh6PAy7NP07gig/KNPtvsVo7sYZIkEturoYD7F0iAtxbWIbU8YCM27utwcR0lgxbO9WuQnSZILpIQ84ugMpg8Ric0yGqPNJNKP6gHR76ZFGfAiddkBzP7F4mCnZ6ApcqQvaYOhOBzJP34GyO2PnwH4DkiKBJBgwhTgpEQAnYm/WCkJTUiqIEbOoBKIjY4gkXAQLxCz/6nEIdEcpRgBRtsLUAlDjFEEL4NTlbAf0QIj8QV99Cr9biwcyaeFaBmiYoOcXy8p6OgFPI+mWIULmkvI+hP4HcS5eZO5y0mC7hP+MwUsFZFTQitidvN3xVW3tPhIUBa9V21W40TRH/BcpjNM2Ur0lnDMRWtVh67BcN3Wf1T8GmlDMg4KKabpoCeXKKQBKfhKizgiEgTnxEVmwlUc/SoXquP7g+pi6nIzT6JkYGU8pCX7KYmDo8TmGJN+4CxWRmH29zNIMVcr9QzzJhrQMI4rBEFEwi061Y+VZZoHGNVoeYLt50vnmIwfjMT605ALctwZj0A7lRQUTaMezbIQMAFFjxm0WQRW9o7hvs6/r73042lPBQ8IRj+1k1S1nvLGIs+/JqWDONh+L1ZEoiw5JcvqBY3QJQzuCHXCajPNGZYwelS6UzQZSU4R6IFkhqHREwJG6rtCRn9xFBKpQM3rQHVfhaND18ViVjsWZNNBZHAQhqZp7yK9XwSHI+Z1wEDegE3LQtylrO1j84MsK7DdMII1GMDqxBnYGKLk5DWlXyOBWwSBbrKuZyGFQN6yiTl/t+1JRLpku8NE+o9womMsRkdR6TCYJNAiezjGV+uSyCyUnZB5QeLbwrgKjBBCuoTER2NIdEEe2xhqVkgT+nRDE8Lk0ykxphtpfG8Mvwx05m4gxTwm+WA7x0WL+F7fhOHkZSYp6k3UMkYSWSdpgDIzfUI/dR3NiZzAD7YxdSgAfCCRMBAS/f4EjrDpXxYfcy1SboTEUkCkB1flQgi7YikTkReFeTuX7T1IisWIDNg+KSELjg6R2oz7JEQFxFwS+TLCd0kYTaKZ5mFmT93rqipOlZK1J+Hx3BUDXkakR4Lk1qxIeD8RldkoSRTg9O3mzlHsrwRELMrDDInofQwGNQPwKCTNkq1P73eg3tP2c2GA563Aipm6TJ7VszhXKdT4evSyiflmfWSqYfKyqP0yJKnbs2LGjAKj3VfNEoVJkQc+VffXR3uKQBgQfdGYhouSnxiWiSTFUd75eruX8X4TxTqwswh0JZGIo6e2CkVcCBojhndKyCQt9aPjTVJiCyIxiY+2fzTSxzakj2Vxx/4JZI4VMh9YkSk2kTU2kWWsiO98/w8nt3Bfj2TpWHi8oqZzMi9vyCCFxdsOVkwmQLKx0pCqol3GOZTUMpJZlbOm56giXp4/tH5YDpHf5QLkK5D3WRv4yeEm+XvqDxSjOMgTDMtpBAMCuCHI1pog013OO0IZ8thF8SYdpOBYYgWGlB77hYvmyfAsWPiGPRVY2JvAKMSoDCXEZeODtQ0C16oggw23by/uAWpLyI8kT0ZB1CvFloWnbobwqTqOAEoH72MEgGLOQACA2VFod22jBYLJqdJRFjdVF3Tm0IYHis9w4C1pf0/Bb7lX70iKseusDVDk//a2kG7Q31FfPQ+BvUlE9Pn36N0GzYwUk87O8oRnO3WBVrKKBCLxafGaKB0CEOZUa5a6ClwMfvR+e0BZYdvD8gs00c22gdsThEUreUm9hRaXHInzLzDbX80zV3m57kl+9wiIVIgBad4dujfoieRW8Za3POkR7RzQpYiqAophKDnS6JcftqTeJNGgQJOEczh7v8z3Z1TF//0/Bb2iJ0pHbfUTgu1g3paSvt8KgnogUQRRyIjpmbeFSiJC1Rrwnq6uvnAlFKeGptnqYAtQuykYfByDy2HleuNugJfdayrzevz2Tfjkq4vpvth5h8+6oN9WpwkC815sqLZoZ2Rp+OhbEmQo1VCbJXihRJgs2uWONZgymihgdS0Ag7uCYtL198Glvs8tjBgbLR9TmCGx+WD3FwRC2th3/4D5+ad3/gOrE/WgcxYF/Yd0mnQd7oJ8OSpeoJ605rlVbPSPOW1UjGM5LnexTnEYCLkvpxRJHbWcKGNIEvNz4+SQRxhUOtWopeOG20P9ByWcFi+IWFsTLYHaP4P5lFKTrsFRZdsKup5VOEfuTmbB1STDaeW0Hb0BnxKh0dbcZsP1+Mn7ig4cvHtUktYY29mHAaW8NpwNIhu1kRU+2ASH08tpAXORiazbulq4haPfz2wAx/S6QVcNLqq1fOA9mTsuyXG699RHBDeLiQjIltCwbeDYX/RKhNrrlkt0HmIjp3mtOcyErn4WiMKsNqWBymnAUehnAk3DB/mTl75PITzEKCI4I2raIRARlhNYZn8RhyeEECJthNOKVxhl4ECsQ6wWOdQTNo3lmilwDNrExmvcunLIKO5IHa2NPZORIWcf6cr2SjQAb09zOn7S9Em0LpucwQYs7uxcVRQsB4bfaAPfQTgsEIuNLMpCc0YJG4SReVUkhFGCN30+VvwEiHgau6E+V6d/sXmjkDd0vvtI2Qbe3tCzWLIqOo6EVt/wlQsjKaGCnnvDUbnmvXLjtl6NgJyRGcdFy824KexKBvdRquuPYJ1iH1mmvJ2KC3L/wxdHymJvFkZ7JDxagB/bB5o8Xlk7gV061VBhDJ3PcG9iIaDF1zXmCQaP0/m0Z4XTGYqaJJ/Yx8nO9OrTql3hEFrRgHAEMlednsPFFV/XN7SZipKZ5XXQTvrltUO9IQS1THBpQDN0mv9sT4UkHxI2zVmem9R0OqgUod084eokx7nVru9cxoBdvm3/vX0NGe3ns1+RS4/Si0DIvEieFU97ChAhx4XJjB92tADZtog0RYZsbZTuRnRWE8kdQheZQrAbgCqO1zlPQESg0V4fOq+gIjZgGdrI00hdzcs6y+CUVrMydYbuxUTuWl+A3QdifhQi+MUfrIi/mGYzWHIEtedT5KYExCoROiHnzAvHw66LcvnKefwutJRnJuDTF3L6NNxUYH5EBAOPr3C8edPsa8s4cPkm4X2klF+MhbApcE1ZgrPEsrnLGU8DwnTilnT1cp9ahHzJFcAsI3D4prw7gPZffoKB2gCrKHexz19lgFRy5Olkp1Ysp61XHN2kqBff4K5YU/xZsrZqMk/nZuZEnA/004FWgBPA4djaKlRDf9Qvt25W5hRql2If8aT8TT/2g63gEjeWV6ZwNC2j3Si3CdJrFaVd3Ma0/ARm1F+wm8049meVZ3ZONhROWlryLaSgfqU6TYYoo82ze+vNPFEqnMWfBVxVSumVa0JMDHetYk+eaNqi9Rq1SF3lJ4Tehpr67JIT8Ot4AG+9ToyN0ZohPplZHTu7ywzZLjNnTvA+2zQHe4uvmNbW4QVJ+myLUO3e+OTu8R6DaZI6k7xwqQvs0a022WpJoL8wJtrIeregKEcqt6xoDFbrLCkSKzP+lo8lqVljKopu7QERIwv4SrAjuD4/5KKLBxpdS39la1pkNWSfMJylVQewAgF1J32SAHZBSwiCvsJ05KRkRitRjQ8HgRwIbO5hvFpsF+Jqotk8zH5wIRhe9k5idhqAv2ilKYyTJmhuti2j7GlPX1Z21j+aSdFQpCR++uMt9KFBRwDVncESCZjCGuZY/kGa5jKtQ3XP8IL/Zesl8AzMRAR0huk8KK6FJGB2VVDN3o0cSMG26wsBWuTIww9LlXVEQM6Rkr0YFulUEHewuCG4ztqLHOTlpP3QxOcae9XndpRvC6JFmeXWAp/vJtkf74P4/coK264cwzd2N0Redhan5ck72j/8h9QDffDaXVIoD0f75cDKYuJoVORFF7DxDoP37/LQorU5/+Qvlb+otkQv+zi+Mkk3bs9EWtsOQyLfaMVoq+Tk+8VTaFZm5R/KyzKR+GicEgOUs2zbqprKQRgEnXdsPpke300LhvjHdL+XGpTfmd+iFh3TuI7FnbMxIZ0dfLDn5Oa8HMuh2031vNKoEXE9tw28t0HfLAjHgouao6WzM4iF6p+X1Vy2pYQuppHfagUoSLpsGvuzbro88cfbctJua6jumgqy2OLnGVDH9/obvhb7l1n+cHMfjuUfSr9Lm0eZhaGy5nnx5oe0kOApgxUNvYDVOWv2IKjlXKL1slV6ZleswFV1rmUu7qwHgLcClvsyi5N9j9H4OLvr4R+++2n2S7bYxrbthmLmf0MjAD6+Awq8detE+PU2QEpxGfKut3JaEzxYkpEPI93rJ4yw6f8we3EeSfZosH+T1q983HgIM+THIvPercfmaL4VxcU5DPWtWY/Ji/fqcPUmCnnAxqIFrlJ/0XzEG/LZsvENk4asZdtkvJeenE1w8fyVobrYisatj1/3HGI2ryvXtxxF0uW9s9V9YxrFGrfhuFvEPcqAY+SX8msZlXwYUT6qpgFqLFCuqsA/C1OKqyr3Am7g260+Rywd0nZkcZ4LlYEfRjMuTvJhszo7mTrl7ZqMb4Il48fGenhq84Mkwq9Z8/TW/shKCmEDMOAEyW4JRt8qv+Pl5FAVLyXvj8QFQm7MHUHiLTAgulO1UUg+XMMJMSGOJIQIA2BHSJwRzlWTR282XwLNHONraqTLobf7EyF0SdqTaN+81mLQSHYZ4e4iY6RuL5wKNNnxXS2r4utXcEMYMKvRmemuM0totCeprQy9j4PQBckmUOpy2iWNHChJaBz+evlCUyT7d/Z1UcTaG6KkWhp/gARad5NN4GRNSRoefRYEOo4R85UDsjspxzaYAWhc28sWoZnD/Ri7+i/x8ZenvX0axtbi58trWLaTfYq+LB9t/2trNFjTTmAy8WWzdDHG5pqMlx+listgfuPAETfV1TUQmEfx9uUV1nwbuq37wXV7WVEf/yPQZOfN5uucGM3+3O48IPe0zNUTDzS60Jc5CfRcQjBz4ZY8XUuAV3wi1XhsPQh04xL+AcxYcJdkl73+CdsfFUcijtUsww4w/l5QuTraWDqYw5oOc+lsQIzvVMu3bZM4ztwi4UF6yKGbzYvGM10UyfFuLpUPzqN0hNvuVRLF7+vDUclPBG/EW4PSJgnOOCy6adX4il7At7jR4h1RyEEfB9BVM4m+ltv8BoTyxCu9RAldZO78Vp5b3i+sDffeTpHY6IOch2L9Mgt2qsW7OD/ke88PD1J+Zht2ULvOttrAjaaGOCtPeTJfNCbJqEctUn4jgT891qAU0bt9+qJ97JLom/0srvnwQKt4gh+TLlYPsZN69rvZGHtfNGkMdywwTUbEpWQz8PA+zkXjaKP4XDJ1NaE8mNssFO7/+OZvqBF1Rt/vQcyzJHjIJkSaChXEDpF9+gXtm1w1i2jKJ1XDcTe18Has/GcmpqxJAOJxmRFzMZ5al6+EGn56BFGXgMZgyiZ6ZQ0tTaPFur4zEXpyGqkQnsphbhX4XVzA5ybIycs0hMjqJzps+RmOncYwy3ccizyQl16ZNlHpIyfZmO+LYN1w7o/iSthECN9WugQggzfxTbxPppEUu3hBb/qAG3VO2Kq876VSz3DIYwnokKNuYH5K+rsQ/y+D3S8opb8NwqJj+BI4PAMMm9b+AExSXnDgHw5xwipZTFiT9F/ma7LyQXSMjKb6l88HGx/jG2dFLx4LaHB6eDUlzhTfr9auUVGVKClImMNqfdnzXS9nXSJYk/Ke8WM/dPDtXP7t28QZakWjfS7iutONd7BWvQAZOedUTsmUN15dAH0j0Tl821IKyDLytHSJWJlBcTIyU55BIdt0bGRYFUqIjLzLzFpkg6urGTFEWBjHoUmjcbUtFMILgfgdhQSlyFGWoK20gK89xNnp9P9b+fPTyHR4m0oKA3eLYJ4lZJR/Inc2CUcJHP5cUKVdLv+H1ouJQS09M+Hf6IxQjdlMaJGVa4NgE35/l1fnId6M042k6jr+zqB+HEHt17DSp3jsqnyC3cWcu13okTCqj+O/0QIpbhOVk72KCMScHiAr43/3ofRraIQQ3hPqi9PccpA876Nryl3eXASurSMWYILG+zPeqPK8hO60y5t1H677ePwL9N//eUp7fnq/JaoPxiylNbxlLDEbbHF87ZzGC9fs4xioHMTGKkXDoS0Vkv4CgSbb1hilcK2awGbbOiSXjeUyPiLf/AUrFUufZP1HstbIZRgVx1ZOwyvy66pLd5G3pUw4HCcyXLw8OMr13NnIkDuBkvc5m0Y/n/nXjxabGHnRRRscsH80R5/KmVCgX8rSIdCRUWlCybSZeq3aan/5TwcqNangNuP3MCef/rH24ijJbwoqIcf26a55dychFh9LxWXdRX7KFUP7GQ0VWC36trnObV6nisQ6FgMrtc/C6q4C1zK59MWLhIy5TpYpzMrTERGYgDCXoqMi50riKqhPp/FoNgHGS5UnOzSQkhC4trosNmwgZmdGk4XIeHEFkR2ectnLdmZhwV6C+XFg2NIWSA0vHxNuXjTAKn9hkkkIu8QQLkDBMGkmYIMjeE1i9m3VGZx1RE5NJ8uVj0aL7Q6XSZEuUDlZwbzJcjUbCRgdsNmNECnfEOVmgY3BVUWcCp1UA81De5UtUuc0RsQNkrapwRHFC1+pbHun9JpzbVPJHONIS9VYDd8zYDlXAqtEVXlQtErrBU2LwkKENVdIU+6A1x0X1cdZNtYV4xilBx8vJ7txNLLwTxHhn5IaRJXp8UrTp06wQ3sz4z5jOIk+OxRK5Lmen94s9jUK3qsZHze/UmL/rMrBxUJt2vdyTt58EXxayZrJ0UkSMGzaUOJT3Vu8EaJCkFTx3gOjAWbnvnkdVB5C8YjCS/XoBRDhaVomdz8oHT4Bkaddpr4Rz8uu7guYNpM274YVvwwcPXQmlx4kkQ5HwP+0OfFqW6ij2vqt+S7CJ4jrfz2FH8FN/Vvlr1JrYnSXCR4HggQKfYh0fJfVEvobDlqjDgjNaGhDyIbTUoEIImIvdpDls7AdhK4fvMuvZOcAzUsKwuodRLp0KipiV2rGoy6zN/mbo4lxdqUnzPtFrzWzInM2MWBqiZGG9K5N98hk8WtFhEpfUJ2mTUTKfNxuP8eHcHMUkG+bZJARzJltFpty9ey9sJaIzsl51+mqecJTcmCdPT7K4p/+hn940PrLMuFaiL5l5lVYM2+VP2eExtLbjFUWfzZd2bpils3Nd9wz4hVFnRZRY2+OiBXeVa/pc00iqakPo6bhOoJ0nV+ApuVMlrFejH856EVRzTX88eq2an5nhwFOBxOAGTPuApQVCUhNFxxrmbDKquVwiwNXyevoBnrf10LluTrpzwvkCLPCOAQIxxQDOHxCNdwvFVl+P+j+nAvC3G5GSc/uP6C4qHyFfShtcS2qP9YUdNvQ2qjaZUazT/eUmnA4lWaWzZf32JyqQExBEPlAnvBC7PQwK5ssPwokvKao7yMQ2/zK9ThyZx7nzhdrczDqSf0nZ+StGyRK/cDpmeZziqEsQZOkIBvtqZpq2vZ5Je5qs8zMKtk0e7UB6JjJsLX750V8URriT+ukun4O1e+WY5Z+rU9favonzJ/adssvgDlrgPp5paRo/2KEhNVrrfTiB9KJfrWR4eW6yalXSImmHVAvS4g70FQfhZgkX6bHiCm1/vTomGwmgY47D+eqtwmN4RN82eyD3zMuwrbzf2Iyhc2cneODypZ9AmmoM0TmEzhbld5xr2s5AlNj5EpQnI5flzjAgLPiqAIm3FAcMzADz7gJWHCb4sIBdP+4J8HYtUaP8yLLRkkoSbVd1hNc3tWefyFogc0RkWKTW7U/RQSH4rBbI6+DK8URrzHiAHvcBFTcXBwfgDVuLS5UwDvQ7SMRu5pkL5utVq3SQ8RjCReDlBAVoXP44w3J3G266XQrfb0VpKqEaxAJbZGtZayd7BQVd/4lbJ6iwgkx4YQGlmFc7LJdgoBl99FY4vkub3HzSyQTAlkQrpoULfOqBMVFghZmPAZuUjFSAmbqhotkoCMKiviylj5gn+q+hCXV7KdFIKVif56eMFvCRkcmAT0WNGUF0V1s4bOP8J9Oq/eHYUHgBcml5Pe9qIHnOrwwl66HnODK5kYPyl9DH2W7FcrK0woqazsQk2TK4PzudY9QEn96pDtgKevjqmDGdq2uYdWlYafTa8vS48Ns6wj1uwhZVQPTemvR4nW6fsqe8DCA2DkuNfGDcPmLJuh56JNSAlF31c49/uW8w+pwOeHoKZNtp8MlDpc4mMp2dagcxX7P14Np5aEw4rodEe4njO9Xrukd6ko1UX+hi31niPouacgRIjy2A9Uh4MEoLBxXxSpK5TFDm1W1sarrzAjQNPY1gVmcHgdaJNhg+TFsl7Mm/EAvK12TQ5Y0jFs+EMvdNdtmtwfzfs07cVG5VKu5P7GnYcP7ENnCE0OiyRKDei6qpYn1t9BgwPw70R+Yf77evhW67om3JfvdHS7e7NwTObfZqkFitE1etxM2sfpZCHP9dalTdP4xpWB2nHdhatMzzT6iiG4WQB4i9TOTy0t5AQze10OdjJEnAD1yyx5qAy+Sbjk+U1tNT432uE8aOSBsI8IjfhZ6Pe8RSS/JSg2l3SEfRr9Z3b+M4cUfQ/ha+QIYlGtEEnAgH9DRljEj+q9tI77cY6NrTdpQxFNcXcEmlQnebZv6Sa0XhguWR+Gamm2ySdCaFv2tUAHRZeNEKZ1JXzPrnAzMn2Ab+5AIbgkwYJJSpVCrThiFyRlbvT8JGLW3SBYiyvZfECH6+oo1oIp0qz7gXbOmPy4zSOYRqOZxtVPhybi7c0QEnIxxX7jAUlEjw9iGRlqS9b2XD0Zi8ZHnGL2mx3epQ5nmJG8B1+JQ0kBP3B8IwdJuT03GHSR35O75zoHoCxLi/5D/Rdoe9G0/9MBBv4LBvHazONsG1AVndqAJSti8Z0lwVimUivNz1iu/6JVK8pfSzyM935cZzERP+qnWP3V9l4gU47qgPOfSbqvC6Q99cI9K4WcY/1ok767UKeAX5o7Crx+F8Hh5p+LoTiPCzHzVBuSiaNsxjwFY7SDW1PoCunPqEAzp/ZTD3IGZdVAqXVjgi7a+lqYOBB1a4C7iTihKV4070nuXryiV94oXzeDMIZ4e6eM6WdXOxLJvrf6T0yzUdNMrmSO2ItR1xfPs/tE+LwufHjvXd/QS92KOsrk+Mf3zDdkI/At1ePOfU+vcHl8aE3q3kn24ThpSNcqo4x4C80KQKYwVwZIfhDSEjTunib6KMGDJzbq5RuJ4TOcMm9hrEgi8YIjbVEFGko/Hs9jr3hpJ4hPHIYUrxC/f1VE6yuQpdBMeyAK3hoeyQaAD0nCuAe7pqOJmP4V1SUrRwmq9JB0004aCqBH2Hi53d+zsORd9Fg8qwuO4cwt4rzyHYAXpGy0cIohYKCHCa0GotJAFhNUkgkvZZ8JXSo6KzUN7ylczr9xs4M8Lzf+DNZ0E3Kd++OOhndK1Ol5MP7lIpSD8E3FumJSNge4sPQtHrjNu+eusMm20diNk2c4IXVywk7TGfAn5ZXwSyQgsv18NpzSu6Q+/ipIQMaFX85xklGR9rc0I+4D1UUIvh6Hg5J4Kh9CFIorIx1HvTyDH6ISm79pZ9aElFDDQ/LDu5A/pBENECl7vGJKvE0w2wxEYEfvwYmyhaHVM3uWd44G6jkrhfJHo3MWPsqpl7MtBEeplbp6VCavjVvlILFPgqyAOWahsRmmA3VheymiYcG27ODbMfCk64lAzbr7z784FKH9RUtDrZZO+HRKoesa3IlLdpBAL3XlKi3DJhcUcaM0VYrDJbQXBCX13ov5BCpWOFwwjgWV8amSDj75Ibseoip4Dt5XaB+3wJFUcbcHkLAjXtVVa+pAT7PI5oMYKvfmGjc2hkwroavcc6i/mwskWBRGSqkGsczpOIipTWWfOsjlZU3F9M7iUCpgPHcajC2HvI2qQK3QjDlE8nXXCuJjamg5+EnWJFLXtnHZB2a2f0aRMOrRqSUvHwpG85prwNJkuNSMHO5fDFkdQj8hB099B/VUrdnUGv7cxGAlqJEl7Z2ZSig4TWsVPwUFcjjXhlG5w0+rmPYUi5IFexRhL24R6ShrRbZRTwDZgh/RiopwclK610lUWBVzGchNGCCd69YruTRUdKSK5GIQSDZOIXF+G24NUWuBu1SPt3RNY2Ayj4KLGlqZoNf84am+AsJlQ+ZjlNao4TY2Ycgnm8qk8N3g2Ssd1gVmlZCqVjjGbg8OmxMYlQqJhEc1zOAoLryLUWVjD+mylj8ZF1PkQmmlUhXYSFj7PC1e4qkYmxcrEckUSpEi/1XzgiGvNQmjEENaG8AguOPTPHtAQToVmPtSoCv1UkCcCo64f6r3iDUO9VmK2UHOhzo2vMszhIzRBoovHfPsGqTsot1nE5Im6PxJFwlO+Hk+GNx/6YFCsLMwe8xexOc9zy8Tp8MgTJOQnyZ2YiOkJoM9VfjFgVp5La6gJ1/rdW/js2zhU3d3eOr3ykh4AodpFLxFWzHiFQTRLcQGYaKd6hj90JFoWg/yRRstzRZQtGZrv7+a2auCJwPMcYQlG/Jn6h7Z56l9W74NyfswgwJmSySQ4KnghMdbekqDSF/AceZpQcTdj9YVLIzrTErnOYUzDNnIzUiHd0naPUpyCuwsYfjkWAUdhnJIRN0BybhwvFWAGFZbsi8ObITHSQMQrpQ76/LSq7GZMR5KXNxpy00eotMw2M378/Po0a1v6Hm/JbcaAuHwOGHtbKhe4Opcty0a9zhN3qz5YWXErsZD0M5lZ/q+b839qOJM0FRRxBNGnMddEuDO1wefYgjDTpF9VjiWkqYplw4+nWDQV8dAwP6UnIPApqUlRnz6cqc087/ZE+CMhd+cQ/Ht+Gs/0Bme0sGnHHuvhhC8iCc8ZBV+Wr6B33pxm1M/CIb/V8C82HFh1QeuWJG7PaFRvZUPrzbuCDzjLUyleYPnHXXf/+Cj6T6RhXKXPN52vJbKU6ODpPTLsKdN95QVvG6m9KbkPaCIydGbU2uqEtE+W/jMSBKqB+6KOiA6WgUaSdcKeEnxzgZ+77ePJw8eRMNzw6tKTcWrTnpYwDy/11Bt0QsJA9ojUaF1FAypqy7RS7GMYyVgYHMSeQu/iOyLpatCFNTABBUcqPB0XQF1dr/LlJg7d/VkCR0f462ho8R8oK/5KV9ZVNd4IDOYFC+6zTf9lCShiPfQBX0cD7qzJpDODjJnbs2tyea4AVPnBr60adOd6w/xUCV1hZKnFD/4mf0ZGhLm4A7XdvKiVxa94hTg0l0OoxlLPgZ2hGL8nCK0JB/0H43x4cswAJ9fe58bi/Qmj12F3T07gn5I870us69bCUW/NpJYkuKEHiQrCUEK7qslTLkHHV4SdIcFebzwtyee64+gPYCxqMpfyAQrsGE3H0BNeB4HdemTBBXTniE7Y9XUUxPSjWCJdrWssT2ue2VXU6ObdzKQB2EEfI+910MHbV20u3HiBpd7RJ1xSpjnrTa9UdC2885IQoeE4l4X/DYeE7MdrEWOtEdue1NXvWz5sxsP4/rWRfiLpdxyj778jQS4Zp0J9ZAlCemTMCkP8SwoVjprq+qhd1Loem8Gw17HSVwdkUWEwB9+bUlNqXA/el72tPxhWcbqRQoQAYW7eeEcKbZcA/DkS2rrmbtb6irGxl03DXwh2nvA4r3CaRASbIdekTdxq+0RYGyf/n0nY6N/ovi2pF+6vGCmcV6SbHHtYXxIRbxcRFoq/s2mhs97xFhYEi7LntW9/Fn2QV0jnV4rX+RKWL5a1+6fEZh2Jhgq0l6fLql685AA6ZSGbC64Bq5rkLktDOoZhz3tg+g06Z+eK2F/EWqqrluWNTvv/S8BJf5iaWXVPl5Lx1rxuNF2YmReVzC9bB40ckcUd+iWLLOI7Xwq9iAwz7N+wlXq8dIQUqxqs19DihdiRqSH++3xBeImQIfEzOQq0OyidEmmw97m0/nsImTG8/7Uz+YlfHNniU9tDtWWFlyMsJw7X+w1ZhOvaPXo9fj3KWUAY0Wbd4usYqDWmfDfzXrq/YhMThiXfFmfi5cuxYjwgz4YkB/7tjM0z5t7OMIA8kZ5+QUPpTL+HPZTDap7G3gW6apus7tpDZiru9N6CocS7WQsJHWNxiukcMJumrio6/nzFTfeKjLHD3HKnuBZE8Dj6+Z5jMcIL8G3FVI3YCy90Mc3EIPHpnNdaXFA8NEk49DA6vOzgIRbKmPsffCAyuc/Ab5MAg/UhyDejMyKWhlvGyyvMM/CVm/KN+uoiiQ2E80P2DaszGoSHWaFmiQLyKqQFri6IExyKRwLJkVm6eRAw82qtrmlTWUwtQdjlN91sd0Oy0PR8YD5/ABRubK0sPL730VqCuIUTUMknzJL7Jdlw2llkPXLw9SrwjP7v4QYeET05Sneo+mpOxMAIBGptMYKCxDbubR5TErTAhFHiFWq8hxCK3Jg5ZpqJJSU4+iPJ4XFmUxn6f82XgU6CBNDlsyoBpJMwd8hjJ70KMpH9XQVUExRNMVHrqJt84rtIgoKUUFQUGhZNwkzkgMUYHWHTWXyYU5IvBiPTlRsJZAKkqnl+YsC1JSupcAhabzqf7sL0C4njYhDvh0kXt5xXMGMZaasbzOq3nPibJASimQRg4c8rDzhpobNkcLSAzljSeFVyMkBftTyFL730KpLBF6E1gYFEn0x5xyxO0N9cRPDHMvUiV/4cxaJmk+FOX5wHb+PixeVd6PbQavnPVp7QIhhncDAcld7CXbrHJ4a6tprak4xq+Qc1jMfptdyOsUTmh9TwzOTCvKYxdqvkKxcGcF1G19m3BVredVslHj+mn413ljdJLBJ6xdxqxmkhHS7vkzba7oVJqyYzNrDQ9Lydt0lPOicl8726NvqaFnpvO4td5IKU1/ZWNvXdEqGul6hOiTC9J4Wx75owjLyD044aIho3O6ICpy6MrA2my9gB8uy95Vjhj4T5MoKJ2HZuyTFCyA02+CHdSHux3Fp6WovRpywLt61JKYcjAxCKYnqsTxL6EcNJiV8lRxFZyUxAu129mecz0lzCC+G67cqx25S0rXpbJmpfyOhVrVotsz5TBXquFC3s3txaNGKxz/fHAOEKhyxBFXW1ZGiG4qdXgVrlnd+Yi9QQnRUGKdv0vihpFAwq/QiIPtggMPJzC2diYMyl+DPmstrP7caHJ+VJetsmZyWvC+++ZMKTxImCWKFWRlEVVPe+i+VD1IZyPOhlp/apTz9oiRfm2Au9UOLcemIUWsFk0eSSPyshDOhD0oM45YWew04qo0isUiYj2zJtNVljNYY3r3pHaAANXhB6JCkzwSQtUxpwYue9Bonj7qlcVKkzb18Uzw4Spj+sbMh84ppOwFAXKIKrYQFgXYRqTxxmUN+bDtE1q0NdUn8tT9/uvzUW7vpsHH4fnsf/jvZlsK7NkXXqkGHRwe/A6xMO0/cGIWpVZYIoZTNxmDNw01uaVOH+KYolmQehsvFz/8QX1VGWOkmaLcG8oZklvMSzVqbqZ+5zqh2CME8Vp7CIZRRQpp01N0xSqNDL9OT8XZNa3HlZpIqnoc8wi4s+x0QDL4V6XcJipq7HUtxo8xhIcYV58aVeizhM0PAsPbHq6uo49Uc9Z3w1IRpjCIyCa4Ub6VZa9ZbDzSC4aKpojrfjyBAZpTVALOPgPPk6IQLK7SOhhUItKxdYDDw7wqLTM7h0YkkWEJsjVm/RfTSDcV8C6Uw72DZtSGp9XQR2GowxTLwHCRjYxM0hKv6f8gq309+eTXhn/hBkSxMnW7TdeKqdiGbP6rH//bt8OKtgnYfN2nEn7Its03B783a338m+8OAwN3dbPn7Itdqmo+Yx7AXM8S0kvfrF9cgh6wtX3f48sF44NeX/JAPgXSltYc2LU85uMQMJS8rzE8EwiOaX1lUIq/0yiOqPCfJsXA8LcstmLJ8/VruwmadVRRo0jywLs4oNpS9LaZOYA1/SmyXRLkkPTZCQCif6bPu9bop8Fw2nxYcftnDvTuJ2OhokPojlOya5gKo+8pkJKhSKzWyoStfY3ov0REUaf6JuW++7CRo/08ThkwnDIn6ex50s7BvZRs3rUbBZRD9yyC9+hq+Vriz8yoIjWg8NV6EI2X9v7riJyoMEU1mvi2Oxv97d9kRNeKiViJ/4BOOMnYUEWQjsFfdceM7K/wiiUEWHKFjo0jJDvVPlKaBmJlU7ri6VzK/iKouqF0udqKqZaH2J0mdAa4YBlgS4M7/ts0tKBj7WPfWfnUm5UN6XapdiPujbBQKrxa6hjGrBFnfAGvGtTqH5vZdHmcvmqsy4hwIu1qirj1VWyQki14wer1rcNWuUOfC1SN7NEBE1v/N467PwDCTkgZ4SNxZgdhooG/KTxDHttuQAdzXldXEHznymchIUM5A3+fqxmTIh7rVex/Twp+8UxToR/rp6E5EGKcSLCTsaS0O/TgaebxMKKstYyjEwF7N0MF1yNBLCTts5M6wV8cRBLTTNohU611gelS2Wnp4q6ekZSuNtZOF5Cq6naTR9pqJ+pDQZvNx0SWkWEJ+jFGuwc/VTPeNDgadrIceQeKGNve0AoW2Btuo2hrV31zLw21rG5VbirNvMbmu58KLQY9odXR+X2PTxCqCMGFFQZV8TP84iOnUlBCwn24vv4kCXsiLVQymyDaZFpD5OCNGHx+NN+bi1PZKFeXNuUKlNIqjhWlCpIaimAivLKQ/HlhuH5sqQxil0ielQEX2jazZ4GA7tnemyeL/SHgm5ijJE6atextse5p8ghmQYP6RjV22tgMLfgot9fNBWk1AZsJF3oYriFuIDZ6QL/XpxLYxiCLJ3Nth5g8DzmmrO7K26FAzLYYT0JFJfhXz+zGUQvVhv1f5dg/c9asPftYlh6pprWDyYngkggwIB4guj/APJXkQ51tTkJGkImXXHHYxoojKuZLcvcyF/UVKM+5bkvNBJBwV3z55gJTwQNglJ1CTLIhWhm3JwuckNtjoA2jCifqV6TS/RZijM0+GJeWcGjbYBYQhD/eaoN/SmDukdixd+NbAkVOQyT45P5WpQNdRCW9mGy0k5AoqWMWR9ycx6jtRLIEqNSAVYyAq1kK8EoTVPk25C4YvWuI+pFuyK9N2mUUA47X9pe0HGPJWAB2Vhq77MpdQaOYQ4y+AvJvLEf9g11lvCaICXlz2R8LeWIMM3aHRE/tU0dzgiReg5zWvlX++zro7SM1Abvpsm1+rbWdAmF2yjW6VORDwcncnx8LmImDUxS3/OKa2zZLgYiXilSCcqLRbz5HL0aZZ+ifYom+WB058JRR5ToVvNWGvo/HJm91AazCKIGcoi5k2i4JuwwAnzvFTU26VHO6b2Gi87CLjrcoVvJAGcVy50LNd5oNXtYvvmP84Geq7gb4RY2VgTl6/b5vNZez5PFVRtvhbiu4LXerzhZGHkiQVmRu+aNDc8zF8MQiRq7JgE9t2+GDV9GDLsIzxrCTOToRkYXxu45zneT1dO1pYnivixz7gEm9YQG8brJ3NJIFGG6MKdiK2CEeO3FLvBxjKe8ag3SIqootMBYh9XAszQ0e4Md639OGm37tO4w6q7OHKbYc7OSn+Rludw0i/HsyTIaABvpyKl3YhxzKxQHZoWy3flthIGAZJKTO9Ku/yx+dnoJZVbe34wiwLSFpMeFEHI8u6AKZEja4UYQZfnNocYpsgA6WV2lhgGwM52cpQrpOEFSULUPgmXPIM6cIvN1vTUhGipxoKvKI/UVOnN78meEvH6sGz6YrYnOMzmk+7Ja9PD3aydkO5R8ZZ50ql6jf2s0g1aQjdFIiBaaMca9r4xA0u0uIFSS06Pyh30ToVIcWZLq4F2A5Yg2T3KSvTQvmKYwje37aV6zDzypE87Hr7MaakGKexEGkVhIq09rZqatzKKvNWtG2viTaKADjYtuYwWmH8/iGNhRlwHTRPadtsDfZZCRqTIF3rTaxCLtIGePC6hU6VTtLtgUQ/5mgVYHol30QWSYWnV+q7ZO/aUhSiuS0KkfeEQtMEiufGOhqHa1cW5P4exbSlQPl2+PKMhV3gIErdjtTCUtO2KlLVIrgIhrnbI0gc+N28ycrupJLEy1/370flGDCrjJ9nK6SUrRw7paUVgw7PSJjPwyAz8tvqeXauJvbkT8re99ha6ImfWyQ08hMBaqPqgCd2w9xuGkwa7d+XPjS0zqOLEliNi1UZoiIx/Z6wIk/SP8l5DN69upMC83P82TND+K84+N+6xGJu359jKQqGXOVew4zQrHmykOZPL7f8Atpb752vzhB004Qd8/LyE/idf8zmnefYY37GmPGOonOnp3Qw9jGnHT/6+hZrBlhEB1z3mAK4xK/gGNy7KPdfx7UIAe9dsR7vDbmMEiSqXu2YdYSFSi+OXuL+Q/FysBcduiEE8iwMWpP58UgedV9hY25qBC7LB9MDZOtSgDHtnYU/4sGBFn/ZjT+vaUivBI8BT1632ZYh//I0al1XQ6zHLh3hkWn0ETSzk0PbFBVKmHiBF/YM85SzizDxB18ZFYhfzpID+iPDJBEzrWKHKy/Fi9VT07pOyaOXK8MOx0VyTWtVIULJ7c9FQwmwibVJRPBMvxWtbhpWp/p+3uQl78LX/GmZ/TNEzfSu8c2m87ayc5dF2Q0WpaZccMgoBLvH+BoWtb7E14e/e1U0lAbcwbp1Jwml8pblckIfPa2PdougaikAjEm6zChaCtELWBGIme5LQkdJPSFsk8frBDjtBpEVV5eREj4k65TysaisjtoEDGFqNyKZd96LHHfNIAe5FYJ3UJY9qyKXM+ZxJ6+zxAXMW4UgiKk2BDfbs2ffUcjdsTvy0aQBqBCFVuX/xJMpWhpFSVNMDlYX6O2mhqk+/s5K+I09BEcHJU8p7VcbUux7E6QK1rvlqFgOx5k9e8051IVmvjKYSBv2AEVUzPjH+Mv3y5SCSxP8uuorY7/1vcTG8XSQrGZOF7gjLXZhwgj6zYbRurQmQLahhgYfDY8g57hJJMu8ORQo73RNe/c93CSIwIOgmMGDlpeqmBMoWcqnPCODKQsCegGUXbumbAWPDuRgpQBKVOHnek3L3Q4WafupJi6DWjqZWQz24j5m6HiwmvKVJvOQFVYVcFn2xESxOIyUbzoOyJGtgNCWyVyVHjdCq0OsS/gc9c+i/BMbiX3qpkJrvDoLTIhAHpfHcqRK1DVv7jIRAg7GdvQnQdy1xpCOqzMo7KUEO3CI7vUN0eY2BwcvJJ1C3gUg0mrZyOd52TNotBIFHQI/3/IIkz3OlZctMrippK/oOIr6x5qQQFtJo4M3s1XFc5ElggqbzC4enZFtJl4KYQhC4BOmN9eszOYdtmWXgoWZxZWtBbVFY5W1BCU2ds4RqhC0hUqffOcM0vwVH9y4dZTIlnRD1tQgeDhRYyHUNatDKjMjUNwLby+LMieKWa1If3srQq4uht/JEe/q5N4LGBylqD7TpVgYLcgcuQYAIopSUtKFF622skUOZUTwOPArlGYiP6/bKXFpEOgBmRIRoUVWedHoIbEzOYgjEwDFaNz0g2LIZaj8H41swxfdMJCtqSYEsBWtBYC+z8GHm6SyGqNSKFgZDL0KzU84b+Bmx9HxXEqsf1mTTaJvte1rlPrjxVY32UR+3S8yCHTbYrjNfXik+f8xFJaFeuVc30czuokuRw3x8Hsa41r/ha9ZKTc6zVBUdn5BSg4gEJcn8jXZuxWSP88KXFFF/omU9HE+atIYSW7TqJXNWAlTDKp1FVGLGAd1zkAvQMTqimngsuifG5sTRt9uNBlG79+CsMHGFnEVZqONPcndGyTOIlKcX4X7R4QNaG9iqMnOWe1IAnay7iz6ayagJZFacImxtX5DzFPcWTHWfjGKZzP/LWaqNDjZJKUmcLQk7IWxwYZBaimMCWSOYCRvRlhMtYdeTeAzGlW1nr3A4DxwphacUNhun0PNhk7wvh0NO8XKm4vR5m6fqNItAzYcCWgCon0eZa1OvZyYuR3Mq1SyycmlwYtqJMSrMFRoQo9eQxe/jfP8yyK4i1EnA+N7AlFCFpGb++wZR5L/eRL02kMLyjLhxrXL9BJmWi61Aa4D4ZAntybZQ2+i28Ckgj2uzFi8YS/GOa0fQZutdHfvndlSjZIZRs0BtMNAqYF8CVnJw9CcTrCXdAvZOGVt7W6ycJQTGtq06V4xiLTBMGltwS3v6D5103kn0N4F4R4dsOZN6VEtBl9rxIq37nMSWVMeKBMXZjOuXmh7vgqGx1KlCpSO4lVl5GyDHsgQeL8JfW4YGTApoqhuE1pBb56oTMYiR689G0tAEKIsdB9tIT1M6zG0+TYpjSPgvXs7+ryMYjv55fbDdu+QqRxr0PatPAHgDwyjWlfu9lvqqMctlpCKkizx0SxpRxYT45xXUGh9ZSNF7LfrtqXqXf28StV4A1mSWnE33dTDUiieSzbbAhK60qFJ8E8iNGkMU38hbbg6dTwhPuEbOwu/QCxk0J1UqtUNXrmdpL82wbH3v+GMU0qnHesg8524koLVIeYKeqXyiTh1nVeY2+/MoRaF2kXdsjBVV8z28eZd7+aynxbEhu2TGhs+V9HavC43Jpp+PFmk6QUr6PVlJd9A5uoiMKf3lsg/ii8r5m7X49vH2CT4EGdMMNON26OIakYLROdp+LT5vPHcOLE6uNpC+YAs9T7QrK6BtSUesJWCnojNGviljf5M7BgjeSgxDlyDdijIaKVucGga2gEWlqHyIiSPncTWr8zaTuQZHSbj/BDffAIp4cIKoV2ZGi4355RQ/hWV5StqP0mAcyrZzKjuoVKjQ7Nl77pL6qKxdJ509gPcsE/Emlfxa6H03dBhzSUXe0ZfL2oBSye52u4+Mzvwmams+YuBYYHuCBh902EdFM/Xrv9OR8T3pQjDJ4FDSZEjAv6Kx19LUBXmqfqzsJ9cUTWhIqrm+S6YySaqWSDYW2EM9JJji+UORwwy7myoax6D1tmJvnXdf9qqMaB4r+2hqQxdVhKqMa2h5qSCVyIsY/XF9dPkuR4LKdRrm6u+dlWAlS8UTXVviLvasUVQoOY0Z8Bb6WhE0wgxj8v7WtexnDwldx1nw5MmseMhebKllq8SdKNnWNxHyPdkvASPLdpToamKRvTulk0bFzSgOgjKH2VnBIMmZbX1rFGvgSLHY855AWVaTcCOJ5YLhgqLLUHHzwCPr7UmYLud5pmePmSHavj2MsMEubvpVBhOGbltvXX+wD1enRrFjvQuG5HRl0XG/VcUolA5jYGSFuNwcnbzI4exTJAzzNx3ZmPpFZyOVPPmcT0y0tkaN2yVZPXwCb7RLhCbf81ERV4dIhKMSJyx+pdL9WtXt4QR9rXFAldvygDkh6mJbQYCU14Ki+02DB8dMkfZVcpC2d2gfXWkF7oFrs9Hp+6DWeXTpHHR47akUQc5M1i5FefHAUzOeHp737CHhbkfjFLvBA2OrcA/l+JRMLTCsP46Me8VicQJsAydBFU/kE2Q4c0ggyhlF8UVA+JUAl8qDsMYSCWbf3Wc4MPREwvU6dug0kyRb2RZLzDByjP+Q1PGG3SEGs+Sc0Exrk7mdREl1UNbnG3VT9qLEmdb5XRmhC8Tgok/T+hrgvCO81W6hzZuhdsJrLVrtessa29MuDq9va3HJILBpgNegdYv5StDCcpRFvesd5KXx+IwSLQaftnoKTagFdTMR15NMO6NI4ks0nOE8VEHHUe5YgQvJ+hSDnDYTu8Y9RXhCOPKAAxO7UanQ2e+ZRHb10oFDtgWJJyM//NZjY47Yn1ZwuZakX00Reb853bIi2O9stnJf6GA4ktfikeWLHndGDw+LrXnR/9tHODkzFHFh1rApzM0svkbwpycjQ+7bx45B5Fe3LsbCGS58J6JmBCPEM+UN4YPCJSQ4ArxwT2a6jC6g9YI0N5cETOkWNYlHOT6XhteiMdAvlSEF1xNpC2d+Zd2pCXW+oPthbIwKiUTEds6paBLT5Zp0fV8URB9RoWTHniUlMSYCQsaMGc1qs6NvF5Htvk25rUJLqDgmF2yiFk6sq90PSntSubvtl9PFOyY1RzpgyYAh5ODnWUo3eNYTB5TelKRGD2c50Y+0ZiA4bnlwzIJV1DEgM2F1wEXg6Uj/eKwv/ceiLvtHmP2WMDx+q/vVKaoiCQ9PLse1lJ5nwCMCWMZR9LUn3wTcEtYZ4tHObE/yEOJGG90RFCVZ8te8188gTgEZbx3Jm323QlGiGcCt8wPeialDxXpQ+HGD0n/Q8Q/14yAS2UA3+GqFJ4LkqR6MkQQmFbmvomzlZBWtG3bT/IxEGlwVenBdlhp1YIX4YYmm8yTY4MrvkJ/iCS0zaT/hfvYsviMu5HcqzaSIclyaBzT4ONAwltDJzZYyX+ABniZz4ISPd0a2uPtv7HPIyHEPTiqXxVaL2i4QRPBBOxswkrv93NlKYLQIuLbEME6vSVJpoSJmasw4zOSzKksgDHhmJDP5SuxdIPrlK9hKlujJ7xnhLlrL1Nd367y6C0JDKKjakXRDRTTbBeTAIuXGNrdNcYUBDKoxMuBy4D+O2dir9wApawLg3E0oyur2krpCITGNHjAgCwqcSVbiA84KwqqAuCcDgkLILVagbpsWHWA3R7WY6XzdBJ3yZz0rvhCwlMpcQv3S/SR7dIbkMYPe2oBLQTmySLkDWPtApB3dItt0OlmOgDkfRsGUzX+lAbwlBRfdVkK0hg7Ponk5HJ/8cYa/VDTBPlJ0at/HtiRB66w37PMjKVr3P5BnlQHjaROU0FNv0NqOp9PEvDAn0Aj8RG+shJ5ssjKrRbPEuueQ33eAzgMg7Cu+Gwnn+BENt1bfBd6cuIYrrMEma1wg9MWFHkCm2v1jrKZaNsURTNPhjhNU/DNKiTTaONkxOnGAnHS5osU6ON19Bum1NCagHptnXgMl3geUW6HxgztdTB9n9Ey/Z8MhfMyouhRLc6e9p2HWOhKJV1sR0Zo82gFZKZUq8xHlVSTQzuHts92/kWfN6hTHPlrC/fMm8sMCAw6NElRs2Uk2YcwyXojYmpFVlIFZIc88aSCdqq826bXQxjJIG316PIlW4795Bp5wQcAzIc5oxDshWRoviOSurQrmxuNS7/kwGf3CQxdWAq1gXuptjLt/7T+JT1OxNTf7AJ9vrWudy3zoPXRegVEFRXhYAYUgNfrrsAwl+a+9WwqJjn/GSNi293zYORTU3QEaBVpj4tx+le3jxgOxcuxH/8wMjGb2jo10O4mISS9K6izjL8N8qkjadyEvn0yiXBBCGk0iKFP8oaIdwiKklahNWzWZch7dn78tsBadrgPY1/tKgKt98o4ke2HapwJsE0utORp50IUqfecYWKNLHMy5NaFTnFN3ddbW8grFKZHP7rJjWqtXRRzx7WfQqZRNzjVMJ1UIg6dH8/6EpU3ky52q79dCMsn9fTAEcZkqCRgAb1ShDhYzWEAopes5lLaWn4ASdD8oo2LDZ6M6nxbP02sj3Jjv6/8N/6JSaI9K+bY1CuHG0uRF02LjcnrnM5c9c7OtTQhQLOrSq0P2QWIiR2Kou5pk3booVXBX9zQi6K/fnSgmEyJyNN3jUTmzzJNUhAi9fO3xcxXd1OQy5owrKILLUgUtR8X85lTQV6v74YGCfMaUjtT71p4bRiriGtNSiO2HLD5/3vSkBTOrfgKhSFiZwCPfwfjlR/Lodf1sDXn26Nb6ZD/b8Z/gZO7hBFUj7MGAakqJgZevuHutHJo5k7wsZilKWB0Lg14w7ZgfwT9GWJtPx2R7jZgfu9hR3B32beR63ywHtxWaoEMPM7zP/5ibf595Gcud6vP2+ZusesIqtmGZpe2o2rbODnmz4/s8SU7GN3dnO+S1gxYRv7yehH51hscVT4l80yen+1BUMV/G866HLJQfR5tc3/3tnHWB6kf94X/+97kKfbjqdcrium76lJm8nBu+bTzTfeilHvkwayXeF33cvep0ZxZWRUuQZOzFpGKHqSF3iI499iAvZ3GRb7fb5SDhQt6MTW65M8ZOC3dGkq/JnGG3gIh3p11Y+3zDTShgwcVnfuzHzpYr1E5dLeftzE3YSTidOx7+PrfWOuVogng2pPPjrVlYV8pmJxNrO3aIRGKeE+7DEAw/ow2clnveSUEwXWx0YQL+xGT7QiTwrhgrMi3JcFmIYZ7RkI61ZOaFPVNBo6gIMdK1kszap8VPQzFIoqrCGsyz9wSbJqSCk8/VYjA6+UlWTDEhYODE9WUuSGf6y5xWKHTBbBrUJk2WH9ovmc18rUqOvtYeTLkCrlAdVaCHR4gq0GnwcawmUb1bbzE4wZKY57bHxmCCLIaFHyqoXe2p2V2S8CqYsWbsFReeW8olR64kqgVYrX1Hr6IC8KGfKVAvz/GU6LGA2j8dajv5ohezGcq3bdnU/p5Snlbt8mIQaYipf+Xk4CNpwwAah/5M2qIo8BccTFlfNzA3jvzhuQrWS8e9R4quhjkxL/4OfSSfevocKC3u4xkLHAFkHetuuSKBFS+1X5QPcnTfGI3zoB91zAYl+QYBtui7w3BcNAqdSSH5r+8XLYnho4Ef7V1GgY1e00gJm7Zjy6jsqKSM2yzn6J4YINRtCfcFkj/MIl8jzobMNPoXBcPN8uZnXIuPRNFybL9xaMoiJNa+arl0dmfTy1xiVpnAsrlB9sbmF2fdnZ29fEkqL/zqL9T9OQFSUyNWawR77k+oqjZZFWnwQV2n+kdaCAEqUkdnZ/6FrLPP4Pyh7xy43BJcHJjmRK1ucKhzJyM4ywbbNygpJUmytPZZ3mvMPRvNoe0MiqM0VkHJP6zQM7cItIx+1aB4Au9j8R61/SwAtr7Gne1lqbYElJkWL2RmuA/ZSwt7lWnvTzfw7JrM6RiB7adz+9ZgNMULAI7Z9HM23c6KDPA2Tvt5BlyWIHFxzQ/Sc7HAVMS1QFFIJfAQDBhVvDkDo7oBC+2t1VonJBoPzwzY6GalahznAKqi/htVTuNYNbB+NZ5i3fZ5QwXxRiUnrzIn8wt4nT08yg1L4TyOYQv48TOfL9VNlhbDU3Fa+eCOYna1/NHY0UjdDC1l6WGrTFVqalPtLSe4T0YMK9+TH4521Rzn2YUJXNpd2dZQ9TxHXoMgPcmfBE6h5jK1uih6e5gbpltwU0F3qWJBXS1D5k4MreCF4DWhR6kEIMwM7Yp9hnaqTloYosOF8xxef+ZRFehlWE6E9oklR7+yBWodzQFYCTjREZKpzn3DlnlwOoc2xExxh+b+ayi6RHrZQwJZ+D4Ya3nJBC3YPoaRit8Y2acMIqZVK9RbEsnR8nMmPnf3x9THPEk/COrpUgOBspUfapIbMQMpCXGRILRrBk2ekMyOmWSGLZTh3oqKCeA94mstQqnm6inKn3zg27EpPYF8JIo8UG0OjUw5U0GgsGfeLA5LtLYM9DQIJ1rYpSf0oW4yB+UFC+okZdhN1f08scjhZXq2CvwVdC48FGP/BHMywRmphciiIp9Xg4AlSz/yEJxLnmVz1cu1qod3VdZ0ePiM5DpL2zAhf6ammwAWv8fZ2o2MM7CfccBdzpMXSo8/pDvvB+qiiUOoXAMfi/k1lZiOXF17XgVnxPJ4bKUJjdajGycZ0epVbZry9ZXdaBkr1cZ3/dM+so+OOT7xjzAPGkCfjwGD+czhDfHxjHLeiyXr0IghwUF2d9pe325obNui1zE6R+ra3NKjxc5yyjqx6BGpYXvBPvMHcugWMvJyob7d4p3qzXMkhQGooRzAcgopZbl4oPaucP18RSybZdS6bSRhhmflExws//C9HTJ178k9kSEK9gFljunZPQjI4IWcmNmXBxNqN3YXivZPCwWFxAeZa0J6fT6l8NmHLw98zykk8MF3UxKgfzVNCtOqezK3xEzhjHpg2vVFQycqfZChb2CUsx+MAhEyv8Y2Qsme3Uox1kCglTttzG6i/seV+km1PpdzT/oEI4oCxwz4uJxrYQRHQNlc1ywdX2S1CYzS+Iq+ToMhpqIVrkLHPFvM7lif/Dqe3MrpTZaE1uRgAjP9DTljPlygRiK4bH4pOhuk7vTrLAOnWiG490Yh2gVbr7HUI75wseRRdc1XP7K0gxr8z6j9LTWE+p5kMoaDbypVg6rI8hNeW2wIiV4U5lx0pecLqgu+quFZNL9MzLIjqtiIGWJnZSU8nAJvo3oHz72ojWybtIuaZGgML6APL0LGy78Wd5JT4/kfzwRCofChRzkkb7lU2klKsNTQ7eAF0FY6B5+6vviFtZhg8kP17j0F5klkUmk2SwnEMHn6Ivr4n8gHGeZ3UZiP6avxOCGHCWupNLkshqqu6eqfx19oc9XQSpxejTtJFUxdNcKzJBfzrUWnubVxJciWkl0uokotmVqARYBzyMaRW7XEd4H5b5k375DQl6tSQ9V5L1MlAmEHNPeIjWOlrGWHKjahtcWd0tQPPMMMWDDnn3jgh1+U2K57c7xQ6qu9eIGfNkibZYYg0BQlkMsSWa1EOcnPVM1lqHlr/SJfIiZAhWYzQyxp8DaO54NE5Pnbrh4R19RmMzgL5LfWQLkHvos9Ra/o6tbs0tzUww0LNlqvlVgWFAY/r5+HIllx1J4FSGZGNzsmJM8dCdtqI72e9V+QP9Ty/rF2GVhNiyX050e3Tkin1k5CClj1WrNEb6NadUgnG7KO+ULiZfFpy+olkSg18yC5v6vts8S/rk/PdraLrKV7oeWrkdS8X6xrdLYx+kSma0OAmYtZg86ay8hVsWEItdHSPXtGxtf1ZvqeHzVJftKDZ0YUtFJRtr+SXPdGGhSctppFaYXK5P3LL1aPQn7Yhrf4BCQ1ZbqEXypwKzsXthh6m1cMxv1hjswW9aidmjMjb83XCZkMzfizRp99NyHeKS8fStN7Rh8uyWtCoUtBuukUqSwDz6wFLI/YDVVIFmKaHjbpjeODLqpwsq6a+Xv8ObXvkwIbqWP1MP+PmOJT7x97PfJ6YYqRGOq/6smUsmXgZ8KaskH/NOVkd23ty6OBILfus7W9IHbYcDqta/O2Q0+c9IbsOmXRK8prO4YiFqGu6YrO9zWmekpISgUhgBgc/vwLCabZSaFHTXrcNn/orIDGhqAs5cYL86qHNgrFQXdFsVezujBHofvaRxMYInzaudz9Q9Jr+RDoxkL0Jv0mck8GkzudR69lDcN30oK1cCFc9h2EQeB/p9UkxelBHXfxT1LuKltYvjaU5BWIhdYiKtlUlrSl6UJe0z3xthuxTV1IXWICEfb7F8z54ZApDDU/VUQ9m7WhGKNa17N63K/sHK//Ij2KeTiszP7wj1idrzX544PSAcEviT5TKZ2rrPKgpQ7qGo8jftPkAC4X9EfPH62SkjQf15XzSbQtz6aDj2Lvt57UH/1fFDFxsMOQDCaReLY8olCyibCojrps7VSgs2QsuRpXk+80iGS1hZcN4SOqt1DiWYsTYkdn3tuJApqd41xo/7xjEjTDfIljFIOfrCWS9lV2yGnYhiFld5KIClc6AJIgqWbEBhYzFtI4sUr8UTjyKppDrl2w5bKAmtHuSnj0hBgqNR4XdfIoya94MgS/nSw2sIizi99D15TXc0c8AE9RKZM2HfiDMHx4Qf9ROvQQJUli2rWUE2ry4KBxkOLjjHYCHCORic6yTErDy7tDoLVLCw19WoDw+5DGysncCXP8+lwss/oMn+w2CmKd4kfsvDIitueioJmZaicSVCpw8Ms024DobVYBz+4wBtyibavwPhKYUUCb3e2nCg2S3QT+4ExpWOZG/7KbwYkEnpN0GQoj5mW0DIiJc03fCDVy19m+Ju/BwrIAO0tyW4t8xmfcUDIDQU3vi55yr2kYZPdB93sOYUmmyEsriV2eoYBQnWGoZeCah16TAM/aIqoyH3epMnBqYnNnVwmunPwIF7+47OyxxDNzcVM1UnRMZbnzao0DAszuDWy5lxPorFUgIBvqjHOEOdreud77ImK/7xwdDLivpa5Pm+Prgjtoz8o7Pfj87o6C1oVNFHBbnK6okK5RyUw50hLY/ZjwPeDDEG4tAzyUv8OAuU7QgmQ+wFPNFui+Zhxjzf4eU+ZD4/yxYGOLW1EXePzDJVwD/wowO+Qi9tXyU3jszucm7VuJXgNxuNArLM5kQG1l5zgHAMJUStdMXRSKv/Laoo4G1FofDEtc2uL/tgg3u0NKk+cUeCEQfWwJjtH2n/HFKidKFrhiHlxZJ6jmEs0vqFDIt7y4mpr6RohlqAraiOKWLkqaknCJh3aZSRV4ZY2QkKCdGnuLzhoZhbU0IThh2CKk3MYxXv9wg55fTQTaVQujeANBa7HXsMiMrCMQE7v679klvSZCCG2m64LJH9S06eWQ1OBtJqrny6FtaZZRJRGBiVJtCm43+VAebdJXDktiZF38GhaXgwQylOnRiYa68IXqBKRIbyqnycWUsZcoWCVzaJBN2FgVwLokp9LOQBxKZjVGaTVR5t0v5On51C5CXrKSbTeF5BFnCm6RFfmLgcaA8eZ09ppZ+UxjXUnWaev9etKXGYk9h7+hekwdELNvM6EEqEyzkguibnF9fX0vHEQnSXofew13OJzOkZn7HzDMxSFAcLpWYWtzhOQ3jeJKYe/FzFr9+G9gkvTk4RhlovHnZwdUofVp41k3zO6cWVrASxlh5noKDdBN2pxP9raeUrrJ6B6BoH1rWJuN0Tp5Hm7aZ1Z5Yss4QESdz8WMvpAel9aLT2yTKDS2fxpMbZ523kHCqyEQrhY3JaTiKo69eb2uK1jxM10U0+2zemwQBmjNxUoMBUJrfNRUVCMoXPuMnPSxYtzjnMuwQNt7UbV2ie3R0ABnOmoy0pe9kfKsIrs+K8eHAVV24qbuTm6BKK3RmN64C+25S+8r/HkdPIGefHylyqKmi+xLQcP151GqIuDFn36Boh9zUOTdzLNJxdkuMlVhpehEE5g1+wbj17IbllUNNibsx1K6ownGUahT0XHwwHFWUtqz+aKrfD4fRffRkmW+5IQIE3leqml4y4/4SQ6U72EufjvTqew5N4PpAlBaGpP5R0K6SKwKdJUy62nLah2qL0E5xibu+vgbdmYuhnB8in5Ei3fvPSPSXPugUJA4VUaTx2pLhO2LzmZ8zxX7QkdXoc1ayImvngurBqWIVsuFQfSWVPaOv4CqDp4dnSw5cT2Ob+1J/NCk9hgD9x5X8Jt0Qwf6p6LmbuWMijwUdEF2r2PIZiEQfwGm7uT8KsLfeNCH9s1cWhObKK9jScsCVIv6Pi61+nzeG9Sczrs6THbFeWdXA3DUYqoOSmZWsXp6hRQc7bzcJrHhrnI5MSAxvbxWInKhcZK8c0iFPyzpQU3HzSRafuYPq/ZUmj6zNYU5fXKFDte/WO/Gn3Cht9jrF2okAosNLbWd8f4pKqy5z+LWt0kX1I8sgwYy5MZT8ZwsGVDxfnX7qKlKPrdqhjS7oi8LLPJKR10LJxmoO+nquqYUookv3bJAp/PuRB4O3FYSrSUYF3jhv+j6CJWYRl7zjs3kXxT3tnyPE+Iy08nuBVEzZaLW62hOlK1eft6EeBfS4sF7arzjwTgWG2tWC8CsEdDRGdMurzfh1VUy7N8TFitfDpRrSHiTpAWPSNjFJnutCLNMabYDWFKEBCvCNvZ5nFkkTNdX82sux770yg4MDx+xV9jAcTqGSfhcXZnzcA6naOavYL2HHgbdksmH9YU4J2PZNBJ9KQN3f8YnVUzJn1gZjN7n8nQMVHCpHNfggPjt+NvMCIB8kCDAvUTc3Wy0iXMvDAXhRZjdglhwIwNBoG25UE4bfu6VwHgWInBvsABqzNNzr+f3gjJaHaHkR0eD+rRWzfPP9hgcsPv+Z8sADjq/7t92um6R9OsfCdE8fU/GO/IVzCmduT3tgg9e13wVAzOPLVM244/QM6lDk35SLiMOrHVG56eck3tkOBW+s04vtykUOc0c0x9thXWri9Fxdl9h9zrB7f5b53PYzL1sT2z7djWylK4PCj9JhFUGjVhhYdQvYcaclTykrNjsBNbHXMGdrcIcdddXQewdnqUjXbReZBFcEfQMh1HQrJBJusGSTJalVCck/pxCh4NEvaQK3awgTnbTRQxceeSbYwa1VTg0c6M51MWQZuJMrx93ZojCD1RAWhGjKpTi2e5mihWa1Wt0WO+gqBiJUpjfWK+SYIDyL136TAiewj2um3pMdbfmVuA9ER5KY8IYMYEOtQzna3rbk9U5Jz6ae9Qdf2qau6jagxeoGmLfHx0JzoyvSp35Wv7/TxDRno1tWN2aTFFcnUT2GRgbiENzV7nKGgNtR5kNTzPUqPJSdZgvAF3zmn2Jm05q4c0QgF3m398Txl+0F5O1JfQqiPMTMDlpfufCRkGoLcnxrLaebAWGpc28G9NmafY80NuuFWVzjXDCX9ARajwQmEbYTIjh9CMvM6PnsZ9AGsvV9MSxaO5UnEM5gAlTEy0cKO35UTYPReOi/A/aPYOFZHKG+SxnUtQYD6xneTC/+TuLgTCMJWL7bLt7yAwezQ10/Z252Fmr2SZMIqYW+2rIvMVVqHkrLazVw9WmuCbBFoo75ss95iJrjKrURbZNNYlUc0x7djZ4khsTDjPLy4pv8MnVvFrtGLP5nTe50hYQJCOnYPLCtooc3M0dAzUzB7Gbxu2X8nQWnL1tRElCkXaARFtisP02UHIdZJjdR4DAP4T6lyHQ++RQe463Kfc68wKnGy9CR3ZPsKg4VS9GL0J1Yru5ojRnB5WVXb6zB353Qm9LmQpt63CwhapPw3YgtDwgMDvixmVlti7MQN6KQEFtwELa1vHGErdssdq1JDSVXpHUBxKcQPnRmJCs6kRQMQ7RtG00v2nwbHl0Uvw+cPWeGj4zrjmBydaqbiQdcTjeNQQrJpVog22mrK8SLDVEP7IuZzwgdVnYXDwC4JoIpeU1SndQo2U5zQDx1oZedsm+dzsrNBznU6+HVdz7OtbCZI81zBO+5I/f/OppcRhZouCJVkZSYY48eXMgfHOsEzZbxH2UGi7zdO4LnD19DRvNbx7nAIrjRDR6F6iVwDzRMl7TIKsgbP+9OMT10dxvZl1f+QxJPAsZd4Y9fpXm3YQwJJBBOoN2JkiljFuB0w0YTffhaHi3gsaWyFd3sxXW9gC1fn8qakCXkFEt2suqhulBLAe2YVQBzUYeQGBLPzImWr1Ch1olzDDaJyUy1GQowgXbZ2mxOqIB36lETbMBtbmPOEYP187gwaYY38tgiyL12i1AdFBkEK1xiwsI+H8EEBG9cJ6Jk3az9oyWsYQ2tJKixgWAA2VuIFbBGrthl2N0CTNMDAHrBXHanFzFwqcPJq+B3d8v0ZmQew6auGDM6tmeABmB8AtaO8JE0IszRNTEidBD7hd9QFmd9oRTLQyovZQUrkSLWDrZ/eFi/9wuH/TggbMl19vzYcBxUKayGGjfeTpgDk3GsrAiC8HwSd9jRZwj1MGwm58vcWihWeHWCOa8XKUAq5Xl0H7IS+ImsZ9bP1d9fOfRxDtHa9NxLRR4lOt0wjSB57Hd1ZBMvaxzsBzHrE4kwlf5CV+cfZSALjrNdFFWmmPBMO3+BRawLLQijYtfZys0jrGwERv/Edimclb4xcqZYCFsv5XgHKhBcLcMA3u9F7KHHtrpz8xegNflP9XTcGN6/EbkGEroK2Cba3V13Xknr9DevlfErSyQa0ro5VysdPbFAclaWp5j9hdtCrzHv9wfkAjN6vEA3Oy/25LRJ4trGCcF3Xk/wWkYxVtIkiloSfWf2kjMbJK6n5PKFXdqiwBZBec5a8OFGdfFJ5jzV9jrtCOzCA2WrTpIkF2TqstNPgxfFNBx1frbQNtsvybs+vE18DtTZbvKj9lgvSnThRWzykiGK0z3WtsNwu8w9M+Senpbtxc8kSvUqR6dVm0uDhYYnw7+HU31VqN8h3DQxTTF4dAgMdIT7JzKXjO7berm73OdWYUT9xoxT8qYjKxvqKs7OXsGWjeDWBkyMb+J8EtxwPBsLmcb8+RZWQkZP6vGaZdj2IIKucjn1Xfl5Zt87O5zOoTVdMZ0VtoLMwMOfdCHm7JK2EZ7h6DSYl84bpJH3nywMeydmOsho09qVXenP6xTB6Fw15ZGFO2D0y0HRvxjrBO2Jje/OdMowpqJlKuGpFL3T87M2o7SqJr0MEv6wdpIdZuXiEtBu2GCAhqFDArNHhLOQQ9rTRIf0X/uDJmSGlTsYreP7HMPPt+8pAMcGfzNKdz8+OEav7lRK9X+0W/mZrOyymsSpPLeMgsDIR/0Vcz5iKxR40EkUvyMzzmIUpgTeduHBvR/U5n9FvSWPe7WKsTuhagnQ8bBQt7/xvxCRLTzeJ2a+DUN0kyQQ0uXenLDdk4gq5mcA2a/h6X1MZgiJ9vSppHc9sm8L2XOGPeM59zP3YBlDoJAHb0Kwb/CIjWo2TAPtv0bfIQ6JZ0pQwg+9pOX2dk4wlSJkUpannYItF5RlvPVfr2cz43805EQra//vl24pYADH3dTe9KZcxSqarMz2jLPlAM70sQVX71gbYAj7qIKFPS0mfG3TQlcfT/0arBz5tVVSgRejoQOlXrAXVTmUreu+ckvpBzH5rWKVSPgoTlD9kdLz1ysnklsnc39n5n+0TJsPMBT34zy0nAO/kxzyH79gUruCfXwqrDq4kblB/Q2eh8t85ALQEs3ZEvfpESnvjWYR18IsQeAYd27On5kfqAbD5tf6QiIknr3UDLdTPJo1Ut9JvAAI6u7kqYOJ+CufIiyYyiBGgxf9bICoIew+bjvcYnzsj4Lff8XLkAdzkRpCc0nbYOObgznjvho5g18Oii7hkgv5iCrl5CQSurL/KPLDT+RdyKgVvkwQHI+KTtbS0jqx3KqFfh5RkxtsT+61HHHwAqHc5RPgJesPyd467unFGyR7ry0+bGsCLlQk+uLkg4WyOzdJrPnADoI3frMb47Y1ZD2CERFStoqIDXyVmdx2er3mutollmM+Dp8IOY4gUvpCPaNuC5eQgE4FGI9wLSl815dacn0mBK4livITWHLTsMuMuyMC7f3o/rm8arivNfXZCQMNyneee2I4ScTz71dU+Q/vpMDnOn72xDr+HGonst8hQ7VQIFmE+ipwFIG9AotV10skYcJIy07A+bSj2TfwYJWPxtp9t1TY6sDLSMmOeGSntUfuvxacIK/jNYQ4bU6Qe7UfH8LMvB33zm23R55Jm3IMOU7mBIbh7xxNDFjYRQT6Sp2RCc8L9LbAPhbMFDkc+T0FRyoe5VEYbeUF0o54MJciUAA6J0tP3BraBIKm69uRH7zEYh7vh/2rGH/buXN3MwdnMk6kjyNfjwnd8J5TvB9NL/BmU/u/J+3XWX+AwWAYfKLy/XpzuG+ecP5S2idX20bMgvP5yA4LfdIOz4/Ku0Py+y55Ao96JX7AyxZ/nt3QtuaLpzba6NoxKmdjJuGI1op3ogKJ29aJseo9E4ZLlePvYnEM+QvTCR2EXYyl+DZkSnKtIdBjmdmehrXRfjqKetWOy66aFA7CSPbTffDmi777YuKa8myWff31G7srUK23fOqDRs8NS459V4VxrB0GKfi1SZKXmd4bwihIZxrfGzJTIVhsXMkBBGdXdH0kS/DRcM4Mw6W67Nx0gMnWf5YrceUoLQWwkLzHRhxogXbS+U5+DdEzJv002/TgeCxLsi47yuztpjVhONwcVYqeT+FaZtiq6Pv3+9xXmtSHCpvJfZ6zUESBiEAYYs84IMQKl6Ago1lidc1hdgkIwOnJ2OViISvZQHh2+9U3O43gIIseL/66yz+WH9+KdGHWdW9pSQKBdH+rHaz9lf3z2bfP2Z1tCbvKhsfizH6MTyX1UCuy+MKwkNoBRHZYZf7IOP+ZS1odPBrWQMAvaHKcOmL/HRaipjIti9RsGAh16OI5fLygNl3mLQtRXA6S5kOUQOlWYa2AsjQ1O9y83saFg/u0bxZGJ04b1gMs13pmZ4b4/Lfe7MEglNE3zXbuSrbneYLSl6AKDdtWdOGQuy9PVH44vvq8fczLWR/YBdCQHApzFQG5jjfmLCFNB1m1xTlQKalybmYFYgyF1S887BkZrMDkgptzgYkDOxSd3sWKu9wGuvI67xJKNiMleq5bTTFu1XrbpvqGEAL0Wd7kJG27VmlNmmm3O4hXZxp1n7O2mNjYjgR3B9J/wTdkF3ZCUIqKRIYLXV9n5ZQjUDWHOXKiM515fapL3NWK2xNTjnY67mUNTIlMFKkm0MH3bfNHkr+Mm7ibxbiZN9hbYfrnrkVreKOF4RNHTs3crFVVTeBmIlmXfkrlAMJkDZZY3szwagFuggJNCFxF+7UbTn9M8VsER5mHWBrjtiG9jjeq2iz6mSOmxpkVXenKzfB1LVxNIDClKsoDR8cS6abLb7SYmRnoKajYpgeAHyOUm962T1S6syhIVW1NmoRABESFmvMvza3xECI7CDE1x9plCjwZfZUvm1kky9qFyZJasIUNmzXEZrwZJXeiI90vMa4Yq+jhllvCO9dZjiBMrpJDf7U47SjpK6RwmYUTMJ20Wgvy+P31Ky+2VuDiZVmQol0L1qx+zaCoP6JqQfEcAXcS4DUBRA5yJUzxAiXAgmpJ2ZrLEwbQ2nDkJrDHmC2BMQkd9ShftREo4mZO2nC9if02UVtFDgwsKDjNlm41TvdnFkjl+lu4zNo3x8PEGMn2aevrvHRhsLpFS3Q5txlzmZKu/Mvm6Mu44OWkY27xOonJZIHSJknK3mZVPJVKz4Vf2x/ir/ellrKIY6domEFlva/GLf96kapqniwtJI6yy9MfgqDNcCOaJsyPKoAUg5zMpxNomlIUHWyOkVIjFc9x3x9W4OQaCZBsaQl9UVGVE1mr/Rwlsz52im6Ov8emRUOwefN6/v9S9ii5DRnXqKcj/52K5oweV8hxbbpE6uC+O3zgp55QwDcBSdokKn3fbQv1gaAA0a1XbnV8oz+3mGfRwobrekqIqp4HyO5ratLzTmjEezyvrTKllB0K2Y1xF1OlDpBcS8QvqylqjYmj2DqYMhB28RwUYfGY0Z/7IoOeIuEqWHF0WzZSS839NKDE1aBSgUKmegRCKhot33j4vtIPcil3e73dqtE6M2g+b/qNfQLgNNcMi7NiO1vr/nup80s+N3TiyJ51AZIpmaO2IDEqHoI8uan0APW3m2ADLzLhxXvIW60fyTl8+YeCQkqwekLaDqnq2ReycNGmjIxYpYTyIZsNn7B7CLZZgyZVcoVyLyrY5YDDp1ad6oigokUkBZ2oWyuPndbvcXuMaru0rjvmdNxxW1vRdb09CthpeW+wctHlozoxIz2K1sQs5TcSP4zRoMCJxq/yfK9gzb1F5QMNL/+Vplh44mO+auHKad6+8jvUGDl9J86VADghVCtTG2yYxAC/E3pS6iZwoQVZBIFKudNU0WNnwRHi+9wIi/9StqLAFyDHhPqfqQiXCElgLMe6QqN7DYYe2+rCiUjpC3k5cO3Is7kXMR1LV6VbQrdLSYvJRRob8kUxbVv5G/w5CgVDK0RK22+VVhfQsPqAn3aEoKi9dLp9vYrkHR1rnHhAS2hMl8GeagXtB5XcAjFaRQ6VK6YNyTlcKanuxNclrdCqOx0XJ9Pvo1yIosSEMXzOc0KUZGnFEhBMBmew5l/CzYtDhZVspZhFS1xf5Sx61M7q2XAIdyyzKZiauCAlI6CKQosVfoFdcWEHHujz/WsraFw7Gev37q61OOIqfs/qNy2J3ZyzgJGJnF4C2wbiwpyp/DwJre/4iGhkNSSJ1JIkr8ipE/ASfAWBLcVPdNHlnVpzfRuYDNzulECgdMSA7AQO+bTNM7tDVosdbvBNUdmQG+oqn4iMBra2fNv4t6jKImWARFHVj7724qPXYPvA80ZT0/keYz/LbLOkVAauEHfplaoXi4G1n3m7ZT+n4/byJ4Hc3E797dpFBdSxb2Z43TWp/ivmFSxVNOi/PcJ6Kdxj15LlkHldqa8C2w573C+S79EyAqwT6Tpu5UIrGAkCDufxQSIqMBqYnjLZW+VWvRRw/GVewdnQPxkVpBWw/GMDTEAKQI92q3OjB2+eHAeNlkwp0mqbv0j91AWIQqs9j8LcMGHfRNPCNqZm/7pkO/ybAWwQTRHYS+sY8NZlgZx4kkC85/Btf4odHEMX2DOpDSJdPe+H+IQHT9EoeMDLU0/ikCETz48mcyBZ7t2w6ow8XS3LvuMnCGZaFIyrQ5yF/9ek9U/MxllkTX6XBJI0ci+bjvhA3IvtT6lwMp8EtOApdE4VBMGRwfrhkI4XM5dFXPnReaZt5uC2XH2Dnd9YX4IqD7OATeykAgdRCmgvmufvzmqrLJRTvXDeMR4wy/nFMdOa2/msQ6Fuz1oRqdgEOwkuSzB0gX/VBRbXgFVKQmT28zE8pmh8a+4Zo5CC1t/n9wROcVtFplZgKLnpIeDIHPFEeKquZm0NaBUVqs2WlltCZlV6fWaOr+3o2k6Czlz+4al3yDBj6fGyNRDW8ysCUol9EHR57gwv0rhMxwc090I4mFoL4oOm9Xqi9wLqqbn4QbhtsJJNpJd/N7j54EWvdjTDFMmehXwGASDwh36TTsKR5N9YIukN6+D7S4i3XnOmtlrtASlqYMtJ3P/5sY5iRqW1aB3AQsGrJT6MyZ+KMLX6UTAdSc47GHIHFel5dC/yCncP6aR5ew9wcjYoW11E7G3nfS9W/xSFYzN34ij82XhxUyIFuOJxtIyOO0pUJL5pdHqOyOb9qVpT492t0cDaQjfjfCpSvZXkaN4UekQ0kvIhblvc1g3wQvfaOodTKa/zIgsqq8XgGYakx6lItJ88SlDP7xpYfQ8trTTDX/2a4SOCTJ/M+Ka/0iQhhlJJtJ9+oEnD33wqUA0ltYbx0+rgVseMcJGw/hy4TOLGRZMM/dcqBcpnStUWl+Xo7g8jlTIBvKcg/9pxRxGyI9gDml8/8NIN4jgdFTTrJ7p+Je24TQU1Qsh3ryiIPqO4Miltwy+btDPouLF75jXJ0BI86EXwZpu0Fn7x4r7gefMCJhuSOS0vBgIkeQFPMEjCq2vxL9y6FkNALlECfc6STyYI7dfFApD2GixRhkXFWsUQFGZ/HCcmdMzwr/GDe/JAd5iEqj9WRvlw1iA06Zxt0mlWJDlxMgm8csgmQepsDxJdt6O4HhXxPLJlLKzittXDRwUnPxcVvXJXlVQxxNhy0+wyhKEO84kTej8LCrvhNF2NhRaEiKS07PkKI/uG5JkhsCyqvSt4M4p77heOef47Ie5yL13tMDUnw/fQ3+boJUTsmaaCOm0SftCzdYXlgixIISKJ6bbOMCKYGKDr80BS1+xNg/ggXjhGkXotHCJf1Qsp45cxaJU+gujbW+pyVJ01qPr5CV1GIc5PdNPLCdYh6Wkwjd8JuAGUyR7hZ8tgraghZzirox07LB3Hp3MzZMp1uoQ0mNEuCstOVF4k5UOgM91T5lQJ6xhaABpGhpRBj0oJMDgqzb8xNIjEIZDmBf4EZnjDUrL9IBQHxmlWcoTHI4olaUVZ6Bc2tXPUWeYfbOezvzhYT9SrKfSC0AR5wZba9QcMJMDGfUWX7U+AUq9MaRTy76ToMY+L6pA4EWtW0AcVjmbIJ9HVPOcvVtv9kT7cAtw2S+A2Hltf9o6IZqW5g7cjUA6jj1UPGqdAjfMaO+VmRZ9LRkJUNtUbHQEw4xfTHjvycubuE6BXGIYF1gvOVVm5yWmIPCMed2chUqLk6o5dQ01KL8akK9ckwMaanrI/T8lfdw22z4Q3lVpsP37UBfJQS5YSTs9ySbhVxcYhIH+NNLEO00GhHPtndv5rlDUfOdKk7Qugsqdu7Izh9Y3jLTPja9GEWb1YUh53zPj7bN9ekdkHY9anc4Qr2o2Kyloo2nVeEaARfDWiXP4bEJkbrRBJXmHFVPKZINpHI28AeIdeDxlKXs0O90bUU+RBhz97eIxZHpYZ3KxqVr9qtVYf8XLnzgruToBhvr57JgNH835iNIf7uli6+30yRaSVfte78yYeoifzdnnEd92JtxwvDc/0Ox8ylVNFxTq59NimDRhodND/zwhqhK5W+Y9iJh30BUP1EqR13Qf8ZpV1TuQiGHOGleYW8r9bUQaCusFLMquHItO3xAXV7aP1ZSsTK3408Jf3rX+ORJOQDdvu8d5xJxMEhMw6SXBzU8QAkyu5vrJ8dMjoQEClpkbUawlRiyD4dDibwx3gyvJ35mrGNJE2gqTksni+KUgVoYon2IKH0lTjJ4uhUHu7BEbd2mWbqEL+rxSvlB9tF7kDq+oX6+l7XbOe3RkvkmFVD67VqmJR36QwSdLbl8GvgvkoZNJET6jBkbh6M2oBoKdkslKZ/RTqyym0lxWPWy2sueZnv+Yfs8mJkKcUBToFTtsDf7yYbJb9GsGTZKjDaF/EnHQHCQOMFAhH2LS7wVfBxAORcvL76jEMGJn6B0QkrFR0CfdS65DCA+V9bibyuiM0K+Lb7A2tripF/kHvDnKjapi3tehzFtkDOw+uaNihVIS2+usyhu243bMkLUbBw6Ck3+E5O+iI9gx86tUejVTNqI7DQwcyNrIMXcn5dua/YWvSjAMfEjG6VX29SEK06PvkNwOzfHi8kg+Xedn6j0XroJzlh1vLjhN8XGSPKNR5nhKbXCtXWXHDLyhrRieG4/hRspgdzWQYlF2M5lSYaQozJPJPMTRN9rnCon4bfk9s4nqD1u7L4xIIkmGxvcZO2AIrSZDc7oKp0ongamK6qtYVCnkRI9yc8ALmIRyvD42CrNadfIPXbvJwB+si9JRAhcaBfW9tx++UjCnWCvS0d6zenbYeURhIGF3R/YcmmPxqJV8petAo7FusjnYFBNfVEfQNhsnUwRvEZTv0PQUZDASDAQN38XOq66w56DDnuRR8/8Ju+AoqFTfzvmwIY7auJU+M9Jqev3AURa+Zjk1IIClzKe0GjahNfoB/ht2Qubc9pywXO3uQ8FpsEu8FZGkXDKG8VshTRuhNzbX+dFs1a+FjhExObVnh5mfkzp8o4n9na8pWVUkxFQmzFsSedNEo4x2sQfwJ76AQua1CNO0Aj4WHpMO/JN4Vaom4cUhEEQ2i5tr1e2K8dAfVyAiwfwSOxNtpi5OrdsnMBfYgRPGw5bka7LzrG0Zqm/b4uON8EBm4Avz3khjPdzz6GtMs5acd+EQI9lC92lBVcoiJ2CnP3eOxxeVjptS07uXsaLDTIxEe8BFhd2jLs84Y/tlm/dE3FE7wJzrWKdGjwis/B4XzF8zDOP0NbR8vNghede9b9Oim5gLu8ousVljYPzP/mU3uR9ZG0jM8bneMdvd1ZCM3np3XDKxvTj2pO/SBK6vz/E6fwLwrjlSGLFPfxWgi+aYx4NV6g6bwV57iRSsVzZz7OzPwRhFFRYjvrlAPL5BgkOoku0OB+lQ7LxrsD3xnr0894yXLaBpYXe/oJCpfUM9jBGeel5c1pBNcSYFDu5eQV7xyhMUKvYX3BZ54j72IPirqSkUccIyYgHNNH2+tJSTmeuMlU5esOzZdDWfdkXcaPrdurh3ifvkjvuyFHblnyrSw+yZndmyfREbz6apPHiB6dKmXVyVXo4HDdKcZuLk2un0z/VK03XFALHsy7u0n0iQZ12QQzW/S6ZSkNyjvQ7Skdd0ujnB4myuQnsyga0Ys5zaa3e4zXzTPSY+w41reRstlYChBUPlRdvtV6GZZ6zCz4ltuhFMuxrVAjnWcn9fXak99+vNqDtvbpQqn9r20zJt4Ge8J++KiuQdQ7PpjlOxSssiFqYsN5WG3XHzbz5N8zwvqjNdiKHUxFwcN46kQEa4fBN82XCP+El4lpEtNLrAU6O1EZpEGhhQnQExe+bTAbFySrynQSSWWUzO8J2T7rs/MuPemFrHk0vRZaamYdTo0ZDk/DF+vOFxeMHT6GETj507S/mIJ2tPjk4uSBUmt0OgPkxsCl7ijhOeuEmw0eGOEQ7nzkJxvjAP1OCzzDy+DxsUA41HvTOQOnUg8qMXxu5PSn2TiQ6lx6hJYNSVQI+rN+iucrgB07TdEMknGeYe8f8C9lD1deEsqA+584xlkwtdFKwVZqeAadJ4dTg5txEzMJ1Y6NPDednH/eq4vtugqjC3IHtyvF/tXZhf9/ddrSagCLXbXeDmu9E+eR5kwuLgqqPjILw9X9e5UZr+oPgNf01bKsvUHKU41X31o1sPgu6FLUGQ2MKyd9pgS12S5GpVVVEVKuvPaztKDEqJYYPJfjDQEA+PDpthWGr9GLvn3dXVjAGM8DEDTLJb+/kt87yNxVo8OY7uUsl6GW6Wct8qfkUiO1060gBYsa+ZwFBpxQgGzSfftqZOD8Cl9GPrY3wHYTmchwKqfjKV90Qq8wHu+iAAzE0Ni2TwgDlqZc+ZcfsMA+KikmcgrpgHVgTIWj5E2XAY16Yn+uVt6xsJRvS/lAOL7dDBf+mPWUURxdoGNbL69XmFLk5z6DslZYpjkN10zyjs+7kprZzvCBK7uDPQk1kPMH+91c1e1Pr97XXqgY0SrGTawhDYlenLKRWVvLcbE+v48GozpB3lzLnI2WfUzja7tujuCS/evpqypTKRc9vnHhPPb5pY/XKOqAv/exUj8Tyk5H24y61wia4V4a3Y8J1XPVIVM6FkR26pPS5HnKhjG7LANOCLDT4Ciu9U1eoipfoBmP6baqU51mkf+Wz5OVyakJy37PxwCRsZcNngAZNf9BL5uSlteovRJh3wdIO3/1225Y+KlzgNcXzluJhteMB5gyvIOXO+M51NyLa4sDEDbja4YCzomm3mkrbbO7iHKZNkQ67QxBx+y7zSVAusbuWg9HrQtuYo3UfTu7kXpRRLQ3ZItiLVT3c0J2lb2f6Dgykrg+bPXECtlKArgFuB7xm84nTY+EcBL50TxnhVezB4IYYfpzMHRmViN+oqu68JKpgrdD/LBsoljKSLTpxVd77JwU3N3LnJFNpFcXkP1gArsHqvO+46FEa+hBQMk4B7d1ZEtyxVLAE6d4Ys8eQKa2BFjxGkLpaTGFJ7rip4bzuYGL+kXCX6krVwQWs9i0sa+IqQGXJY+nmIZHCbUYxjteOp/JE/RDtb7ybf2W/xJa4lmcpsB1l7RyQNYy01mGpoTBWpyJnPswT/VjMF7/lCXVYbORSbG3p7ySMffNIUCvbcsetN6jLU9moY5t490/JlM8S5uTe3hWiyMc0c8Gn67yt7K/Ff159nuOo2Yl22TStVrmh7kVmmFnklr6QLpswpqRWoBKyaSV7pXmaXRhCb8/a/jpDoAjInyahwvmUSkjIZ/amcz3sKlouIjSW/9EgwNkSQD7hs8IDK/TCZ5beu3TIvr9NO4F9Pw/rE+27Gn7NRTXPz8FFYN2WXbt4kdCU6+nsUGNoJprv7uzwzb+HKcbWjPwvc1NKPHZajcnag1Uz5mS5JbHb8EAR3VVv2qMw8j2fD7ZmcZ3ZE3pY56O1w+6QcXwRmuc6vqgSuDx7y78qcHQ4p8HE8YUkv5lc0SWzMTykNXEBvZ4/9dp1KbHjAeYMrwG0zrM/0NZa2uqDw7CnLXOpmyphF/XOEj/DHy1YWqURUo7Mu76ttc9nlPxw9XAB2Dk0ub2W9qqStDbLZXLOiuh8XsTpfCSHV7xEjMUKAc8CxweFKhNdX5Zn05/HPTwQV6QdkEx/1dW73KV3jefGcTdqzqzG4Gg+68YhopxRD1z7mD9cfVRm4DOEzrHKTUfHc8Gxjq0rxDhsbUaYj6loWdVxnUijHgNRIIrCvX6j2HxWq4IgX1iSbaKFJ54WtHzFcbmta3nF74gtbLkryy1FafIWSoD74gZtonxkp3tXXAmDKhT0NaF1fZmGnoUCQ6nx1GPrLYCzXimCySAvaiEgwlF8df0224b5x9avtmD0nczMtY+VNU4df955znnBOcW9szD8wPj2LDDVJu0y1FbzCPo+2YQyEZ2JISTcU8YKsFHJgTgZowGBynpAOL/OZ2TUu7YZIB+asgALve1vFQxXF+RJh2Lz4d2lGCxb3IeegMIczofmu7yyMw+TMe0cZ//Y+fC3oIqIaZejBxRoiS8Bvib/tBeS/tjqHnmWIsI2ruzCo+DL3dLmhJVY8sARqzBeZ+yL37AJ8t+jOcf+iB3LATvhykd0+/oJFJLJPMuQHjLcPlHKbFiK5T6GWXShAU/FJtuAE+5kvwqTHYwM3t9pbNNYxJOtBcf6RNYb9+97WB35zHlh5HGNVwpSZiA1+YBXnSIx9Uk+VKp+HPrBIAIg3BgYOIOH71iHXN/MDNgA4+wtAANiSB3fTzpWC5rOEozwFwc2OEviFgdyLAcZOrCuSdD+rlq9AbhzB33XDTtysNXvOnnfUlrFEb+AGHBczBSNcEy3E2lSBQhHjI5sPJeyD0+/Y5Z/78347MgQ0vSyJz3EGUWlvIA1UWxmskDgC4Z8jNmXNip1Bo2M+dyksz3x4wM5h3Jh3dalga7IMNqICBICoCr4UkD0z3uStf2+czy3sfaZDcUpU7H2TWJktYlA04A5IXIR6skhormnPk4bCdT3BJByyAhZXw7kL0+qXW3tl3vX8I4sB0o4xf2ZqLweVW6WiWM1X/ic5iy91k0XpoISvh1CtpWanLLrjhDR0gSzQhKUJvd+geEqcKQO1zORJlA+xL49/qPyxRV3QG5f0qMxQmn3ShhT2EVGQjcxFCXcRgiRCpI85QgRZCz1bYaHB1RVmbHutDmVps08pxlRFUpJIqLa/dSr4StVMZ3pN3MLTgcBH5esur/Sa8kxFV3C5I9SCBdxhraDNK+eLzorvuINKtfTmj2jy5RYdj6wl09Nm/oRhhVRVrSMVBFEJP64olZmYNXcJiXKTsiC8mK4hF6XoE+VYEPN+n75uXnIkQYpiaM8LC6zK88L1XJXPCgsg4jPeCTTX55XcIE8l1rXnwi6XcswwUDa3RijOeucUiL7cQg8ZtMG1hydllZNjkV6SVHhX9Kqj2u3dFDlKXis/ElxpQjlNOuOgCCVXDqgOgUDNnRavVHcEhNqoYU/1wI8ms/2VTK+s8Okre7cVacHr9s1l/kb4yLpjwZHLa+rGbHGV03W9OseafPv34mCeBLby5fTroNT9nFGWDiM2S4+LbSlr8RJ9GTVXXZJ0St0hQqX91sEJArXhNLlSquWsuoThl6pJZBQaFhGifMYhlUZB+VF2ZqqIq3qqIgnOJz1LbMQQZjGHlK4VYeoQU4tSswYkuF1hP2RjuFjBPjnMZ7ikhpcebd6NlN972CyMM354K6CuZr+EuG+vzUT8G0lRx8E9EHv/qu/EcgF6gg8z9sfVf27DuWc/k14fcrcxrCtS43Uj+qngHqZAr1jZM4zImdOaArphhL3MyLYbRWHQ3TqCNSFcVW/i76Dljd9f2yiWrL3ly0hEY2zM+Z4EeZHzt2ZPvW1hsn9C8CfYkCO2WgpYs+4E+5ABjvoM7kSYVIGIIqfEUhE6sQKlw2lzMJpvD3Ii4iMNFNqihs4geYI0yE98+6t9G+ZYoVfKHoJvgR+2arelPvpmhMxcup+9fktFzvtTTgJbTSkkOdmwVeano60HhLqkw+Zzho0WYscFqXokvWHnW+KEKvzUvxKD4muxTqTkRaa7wimOJYnpbApKLE3461f5bybZXWe4oQt3MDhZKtFpRd1yGPEv6ygSRDh/O3NUJd5eG+FQqiGWJpj9GkFcOci4eaCozZPnp1BZAy+ilxVKUor1eN2J5bic2I8ddSaBH8P5HlBFOYhJJdY+n8twyL2g5jzzsFwM0nDCZFVObPJKQ9GZSH3Tt5GALnlxTa8YvDKKfUzOr1MCXzzoSEsQZ7yFk1/GEuJfDmxWwSiKV8D0NkikKGOZVPi3Isjj+Xrh8n74jWKk0tpnADBU/uXCwVFLyBHN+Eu0qdFSJJ2Btil/3IBlibeuZ74Qq1ZLa+b1nsP+3nLc/tIYlxKS/Gsukzu/9U291WsV6p7I/GgS/gNJhwRwGHTegM9D9PFoRkWkmjeyKu0mIDJPZPVptTUw6JjnBzCgSJeE7cWcu31AUJhdcY3fg4Q7Q3z/AKLmbCpr8EGvjfPxJageZQ5Mu9urErWwg5oGT0mKFjZSyaJucsck+BzJTbtzxLq9DXTrXZmaDeHEGG76aQK09DL2wjwqYYiBjRk9xt8wnSAAGMyK+oiksjLQNY61vu4iyZGdSGHg1MI2LQMUkxgHgQyfQjsMMKcSZALxwPEt7V6Jyz7UkrE6sQmH6Kpmlvcx2Mq95QYQQe1UxBTrp9P8YXqdXYdmwrPgRqPfDf/O3mM07xE44ipZpa/qtutecJhX4adQ66YU/jLj6xko7k7hsjD4VfmbKfidrGfV6aiAy7xrfruKb+/rNYJ5Ndek0js4vHRJhdPG8Ik548xKKwMoSS+LeS2dy3T53z6yghH0gN3L/EjBc6OoAcg1bqqGYA+cU3kxz3adP+943yyvkFITzz1s52DTzZ9RT432LT7p1Y/C+dYkw4h5Ts46PjZGC6ULuPWKLWg7PUBGc3kLli3owDmu0AmzURtssPLDJTVNZzPmCcGWHKialT5yIdaGW9aR5aG6rFI6hP/1toQDeVrgfkN7UhLESKsnTdHE61tYB6V0ZfZ7QksyBQHPAYgx4Rz/ZcV+2zOjXvY+wi8Yoij8XClK+lY7zsiQ9mCa8F08R5IexY4pzuuGF9jVdN/5G6eZtgxVZHIUbRLpRwWin+apFiGdD++x3Hl0OW2teRKjAOGmHK7EKlU0oWZyLjlnX5/VkSmthJZ12A8/UdGU0+xl65We+pZjuHOvzp4g7Ge1mBxuth3KlNxFEgbPP0WKzv6a1OKGlQtHHTe3pIH4iRM5jBYPug1cPVxnf6SUpL1L9qDKQ0hd4xbrRj0pPC1xo6YY21XE4Z+SJKbuHNmvo/L8DR+AzgyWc9TGma/OQRlMLJAMch5PgQPlh3ffI648F0UhB9PT0bZlIPK2BMEKREFxWnfJ9X1efTgQOCxaOkqrmTVHX2xB5mxIZgQqxpQ3Bj8AmljujiR2/cbeg+yhUVsr4GxDhtnbyoKDelJMXXebWp0he/JOVof19UjNu274SIo7bXDY0bLq4lB/v6RLjzL8P0KMB2ZZekTz9ODPsKNCOTT48SJUK42A9VDkmWZhZ2FjESh025e8IK7YvPWw+I8w4buLftj/NQrMCvIpxC/Z9K/dpVwSfi94B/2LHI8cXRGG/44OUU3VDY20JAw6uXu7QoEb5o9L9mLN92oO/stgRNEz8f0CNWDnOwXOa4InE3yTSaUTCSLY9q2DKzZy83d+8qJIB79lnUdC/P9HToAfMHBsyrDfRGTAwVKBgQzUBPwAfxhNc2shnH3JNhWvJmIdItyPf0STHiP3KtUcfPi6N1tZnjZjIbN2BSkS/fZo9/zgQQ7rHEVilaxMFkvtDHtlGksvnfk0RFQW2CUzxLAYT72+Y68SD8MEi8snIjbDPrKVwfU2McNukIVw2PU2GRs8bHGZsNru6kYNCI7LknL6/ZGwKMGNlxd8LMvRT/DO6rAHAJfnZ0G+YB4/1SE9QSaLBNxAnFcQu2RaSTsao0j2eaOfU7dE3OP7PhUGsLF28ThdH+V4JPiMOHYhZlfBRBmoQPip007Six1hh4sxNFA9kYUIglZDjLWD9+eSCeINCTbRwaawX1ps9YlSvYJd4z5Jvx3230vCfaYvKb/aeAROsNWxoLLDXtYgCaVkfm7oa6PiACjlffuCcJomiU9O3NZFM+VP7oo/NHs20xFleIKcxjwgg7CVcbEwWY6ZBa7aCbOaTYD6C3zuFhaAjx5b6szbUPyKs8Oc1kiEGbCK+QaZClZk7ZNTp3uVBkdAu90ZLAdp28i/BWarUb5AFmqPQ7ppzzI72gPgQx0sLKujovobgqZ0WG7c0NPk7fmtn4XqPDXkspkHlioDedEDypA7t0uyCUQG5jWIsjrb1CbgGVp3szZJD2iSkZrByMdje2Rdhg6Ly73fFo6HjAXhf+qvs3yB3dbEG98xMaj/Qqc258+dMHaZ3jJIkC2SrzyM7RZDpjpkctx7hyXVVpctu4QcjDiv2JR1+R7qGqSbeHH/3qEYrnlXAaiucRD93GTasFYzkPnazD5Q1gwDQF5NgKUKPWHc3pVyxT+Xpr3mIBHdhdwjSkgUerajkiBrufhE7BgDm8TIRB7jqIUxn0EnGmuzNWKEcesykAp8E2Ii/Dbrk/PxlgHkr6pITcEL9+DPDKW9LTToG+J8yIDrM5T0so8GU8S2OeVBEGWNbAlY17w4vTAHyME4rO+EiOvbHxhVXd9RXTOwfC6m1+Ndiwltm1bhDVkqzQMpl3G/lYEQJZNZwUQD2MCpHBWSFsQaQEiZDAPGvxqBhbS41f6Iotg1yt/VcPhdjxDD4Dm6SH+bMS/EFCdzNKAXMM4Xte6i49QqysA66AApq7sW0fHjfsCr4RgB3yttA20HCs+FgaBM9q5TPvboC+Js7a0FX1Go+n/fOurTw2Py6SVpn2EtT5M1W6bAb+mjfLPngMP0LWHarRspHeMp88N+c+EfPviYGJ7SDD+lc8yOvYCLcJVGdioN73v7jI8K2tbDAJdSACx2av3BzGfZDkuspQLfTGzfxkB2OB4mJETYnTSUJu/M4qIeGj5r9pEKqBTy6Z0AkcDGw0MzfwtN5VS07VTOLm/vb5iFEMMczEDsQaBZdKtUcrO8uoo+wKc1wVmazzmPpvGY4aFUKwWgoHeDPoDaIBvOPhg6F4eH3JuLHt/4BAWMJ4O+y4FX00TkUY6bAmGcLfC2kw0/40T9x6Uwb4ZI37p9VUV1yeUxzdfEjDxgUvwTd5AnnGR4uJQeo4q2OdjpR0gOQB1UWeFpGXhG0/mOFDkePHN5C/Wd6Zgmis3yRTjTT9JNz/4TGqkJVxcKcUmtAYO3yVSXamYMGVkbW3SjOOu/1a2tfInjNck5NSxKBqnj9wnEL9gJX6n0RwoszZlFjwT44PmhhivEEbTHDFPRSqVVYaLcVrCqKMUxUdwexmakHFDfxToIXvcsF9Ww3JgSnmepI2QmKYskAvPcdbvYgp0WziIUuHkqyqOcmoLa9CFCLAIeANyk8FwhGwUGyN4V/iswrZvqgkYtLKvOrhmckt9Cg7/IuF5fZexeMIev0IT1o/eIU75hbxVsDvvU2uRU1r7uljNf2NUJdjUTtWKdXAPUbht6HSid8LZsYVLkbUADdAug8rH8Uq88MYSuvEP1yJ7Vjjico+Y9+a4z/2+i4l9owEBAy2GYEWzditA9ZRA4uZcAa2PtwKIBet3cBpC/NeB20ejkRlLF+/QorzaQBOINjOCS5SGumGD45iFRphBOpO/wvZXO/Za+4gL/2Yr5KeW819VXZ5bqIFKNjdT0ruXLohUBaxv+U+pcizjbh23r9c/9NV73Udi9PtSGhzDe3d8VodUWY0GweDeXYN40mmRaqJW783Mi+2NJIntm09JFLEpVb1pH7FCNUb+oMOeXFUVqe9qMfFGq+/yErgwvN4gSI9mo1RMnzQx26J3BDxKcygpYKSSPXVEknr9/iew6DPSArezJ8UBrETrj7VL5y/uNrfMxGi/G0sJ04AJjF78W5oQwPqBjcr+Jm0LN6XptmCbk1aNqKsypQxftFp87poC94/JHHGirNXhoy0ulJ3/4TqyMlCChAEPtJ++9yqAMpt51dND/uSMgMEI5+wxSKcTOuIQc6DLss6YbYp+cFKp8FPQSy/L3/IVzoLSRQ+ckCnIZ+tB36YrVKNOJH6CPxaYydlbbvXDnQiazytSqGLVxtP8lb2dkJNVy1dl7Na2EVFzYlMDsQ0UCIysXuOei7+kS8S8ptco0ZkK4dOGM7NMFZMKmbOXRttxygEWKOlSrC/he33jCKM44VS2RPKEua4ZG8nW7QGI82Z3ifxzI35Gq/e52asRIIKvud5bJU6vbGMUntnWUZxYt2knjzKuO8io4NJMiP+Mxz91nAbndP8hdZfBiqCe0s80Ql+ZBwgbcDNo8TZ2Pl1ZHQqHbo/S8Dcybh2GlLMPfI+pgzWXFFY9KduK+2/O75zCx/BotVfJ0ZIpser+qmUYiWxARcLCNpTsu2SkAr2A0ecaZB/tQeKejtAy91WUE9gvNNm2qKAXKaRC18RBztTFCp0v2dFZxloHcNGWBaQ2w8aXzL1m3DX9ftO0UPZEfuvancwt/hITv/VRcu6xJr8fxRqcJSxy+ts9UTeVC08onGIHzG3+EcnkrBwx+sZwcNOvIK5RL6/EcqGYFS0WKmcNi6pIS75agRNBNoFTofcmT8+hg6+v85yFXxxL4rfbilh6xdI+AEyXxVTQkPIMmpN41E7uZ1+XRCiMxoSvf4Mb69s1WD8AJ59Vmz85ubL/xz8MuKfuVGque3+G/eHDBiQbtzXcukkfx3vkP7owT4Z+B/dPcEBep5w0zf7QY1ZyBMe3JVnuDr7URHaCFib32z+k4Qqmfm1vEt8uXLG10fWtMtydr/5Xbx8PnjXbhNUPjXtaF7X6rDUui/wclCZI0+M2O1AH9QxsE7aRSAd6EnrFHtj1twQgqVnJprU/Ha93NQZKzG0ovtputmn/Hhm27+6wNtQjaQ88Cou+pia11kR/gkf0y4aEnyP1ZKO2Tjn/4qq1MuM7CjEA2K4pzYdWomOxVJzAgrxc36npa+520weGQyxs8yOeSq75wx8oz90N+USGh0Ruk3FfYhMZwZictWbp1FgQRCEh96LAF5dSdhD/ptvriSOj9sBZEDgBtqtvVhy0J0frCRr8CgQiLqho8Uz1Fyp5lSVtgiWUOD6UEq4dDnB2feEaxT9dtz/di3wyxN8dWBnybDk6GBORTjFSII6zqW+5nwnzy3mbSer0SbE5Z2cde+WS2Hv5hRWwksPaPoEM4eNA4f5NGXg4rrCC+LvP/m+BK3TT2QfpwAmhfTnVoj2C/SWXN5s6Iwi7v+xLeMawiK9bpnGJqHZK/lIHGtND9aenfVA1Xp8aYsX0aLR7TMAVm4FCx04bTijcMAGoDeGc7rqRaipsiuiLKCXnuHNmI9y6lUj+nRUYV9L5auU/4PLNmYBuv3EMMZMOmvz2krTaXOHY10NaCpuOPM1LgzIhE/CgSJMo2mpsRGUiRii9Gba6PBD++j394J4iZ1S7piCY23HRDjJmutHc748nEOIXNv11oB4fkyqFvIIKC2UN8alC4UhH6EAE3CV+vAUcVaBZhNaGooRvD0ScDGdFC++C1zVtYukFpGJ1e3uCo/6x98pR24B+XOc/EZIxzE3Vd3uOGJ7Qiq2JL5/CjGwctUg47uMHj+dpD4yC8Rj4xTcUhT2+dlB/G5d3mwdX/td2AffNpwycb/n5HKbJs+h0oTHcq241vLgKQocsws8IFHEOxKO21ta2Ol0h1kKJ/5NODAmFxpAISg5Ib9gYVUxtdnsqYnFmzf8pQvVL/EAaBqp9MBSkRWUeLqYufEtujvB2a7r79meHHXyDdflTke3FH/YLdji6tjuwtjebFnOpOlqcoEXkokSgqhFL41PbAIU/RO8hT26YRycS+/oYa82h2ieG+FdkQkt/oR0klogp4UoFxNr9FUG1wvZCZmSN13Wc41JorOAcIbjatzcr00ggrSoRLIuCM9u6mwIWTcCqU7P6JesMH8N9sLNRpfjQa4brYcdvIo29PN6hmGTHjcC94DVzmR+NjDkbr7I674i1mQhAgGdF9+yzNa9lDdOm1xFNnTAVKKbf3HnNNXRINOvKFlLdAJq1fOxb301MAcsTchjb39Wz4byC1Ul9Y9cnIl9anCqOB8SZGAxFzD4/VNIzAnSpa8jCwZyXv/KwwDrs+e5O+gfMQOWGPAzNw51aljv5pizrym0D3i7Cb1Gc+7lMpKuHuDzsa1ePOhGG0G/DJPdEyAqvoUEc8JwFYwD/xpSWyzOvNJmUXon6AbKfU1oRl+5rf8fEqpCBPR4w0Ph4rCsHJGTYydpgw+fHRre/Xr+KTpzPVFnMNJHcbbKlnR8oh2zFdGOaa5wmRp7gnDKnfqURH+5YmvbIeVOz+rQGH66vfTnw3rPFCSKxu2baYANly3tc+e0DUjbelEH7Y7UlWTNVq2c28ksnT86QzqQ+WGCO9lfvGT8G+wexPi8JOKcdMBZl1GlsPXXzloIME5ZXvdlM23Tf8+uYwrsXJ9YVIfjiP8lT5H+Wc5GCMwNNmG6NoFto7KdXF3OTtDw8HZR3wNpDVDr8nfnC7CV+t6KQh7vCdW9IiR8OF3m8pARvfa74gTGp5XM4ndv4u3DrVdTPvn0HeVLHhHul/neitQ6Hgnrooirw5TbgS30StEP2097LN2gaRMz7pxUWRDzUn/ph2DAduePg60k4sPWDv5ZTi7wA9QomzU8M20cEWLy8zEHI9726e0BOP7LBBlukIEVh0ZE6cn6laM/yHeVhhq17Sp7DnBpXd32fJM2XyCFeqqI91vmLj2O+8FLJBZoDxHcfDcmShWK0RQ9CVPV3PNTtNC4+XuX4/SqVd5CU18h3FfgnERO6frMedgQmT3hpzh0IETR3/oA2udi4YPwxmRcB4poUsfAkR/72ZgmLzg+EiUy2y//hyNWmvkBFGpbn7xUh52AwjzcrfFb0P3KNZhPXiVrdSjixMgbUDF/vd7qCT6cvLU5wPZXkvUdT8F6r4fez9irmGVWHegC2/RugAJWdSksI96huhltfOR1dWDPWfiR/QkA3CILxsbmsitMsTnSxwycyXBG0yXJdvRl7z/Hb6dtuIHTEKfhvSNWjaXe2rs9/cuClm96GoKQos/WrxtV/EjjvrdD3tLJ5HczDbfiBf+w4V/1ip7C2JAqs7iPsewMxiVIn9SL7haOI0urtKDWnXXz/a2Vi5n86CyLHKcLEXGo21KCL2SR/WkeEET16pAkx3NBTDykN6IdG+0yI0Zwle/VmpC35gH5MzayydyHUwoIUx3Xl+z3l//WPp/s4We5B128Ozkg0PsHwpWO6C+V4MLWkCPptS8kGhdDHMhbDyKsgFz6ofavEMAyaMZIrzuQghR8ybR7eh17jGnnTCFKkd9XAu3Ut7tH4lYha9Yzpv6BUu7eVj9DLM/hrXJ47mh9Dswtef1UGSbqf05/7E9++QR6kyn2l1k5Sgkbzt9jND+KNPCtI7PqIPWbrjnWbyfzJ6DkCqBtKrqqafogH50KEVclqAnbExj015nPdV4O8ksesqZQkLJKz9bT/w/+ZHRUPkRqEDgn1ao0YEopHJP8QBASYAW4iSWgEqwEkqyVTAmtDdq3q30Z1INhYqjJtKUuwnCQslsE3RH8h6tZiQOpUlZwnj14hF6XuZgl8q2R44nUZ7geavC0TnhEZ+VYW7jdVcE4d1QoA61uBswhWSOLpWKFoXGJ75S2yTCARCqX2FddMjDIAdkugFozCHO9qGF3QSzArCDsFsW3UTwcpFlX5pwmB85ORenfPUeqOYveQpVPtHMVIUUJe1qHjC3fl9kPn8/P3hoauSWXvfonoIOISJkmyKdwGMRCl45dZo9oI0Yn0xAn0Ggq+VgFloqgs3cc/Dluizwz5v9q/bO/2u3cMNdMLMnOk2MUSmBaQjBx60Zu6BFbZqHxf3C+pzuyANThoFhgZnRBilPNVSnJWODCAvdb/Fsv1BxG0nHJo908dm4IQQ6V+ae2kcPDsBGkJrZ7DArL1vrK0B3VqVYW0M3HLDAb53W6FtARdZMDfjNb98AxBid64yK/aLhcMxKO6AM81PStBm5izBYM+oQFYRtZ1CF6BzuJJdd20oHNUSYB8hB9alKMeGZv6ZDejMz9dV3E5oKmrkVl+KKnogVhmhvQuOB1UIfD02IZxIlmdmpWvgeekL4IXHqX3lQ/X5pjh1aGzQrtjOKfeZm13f3G26P3lFGezSqeX/TKHhknRQuZ1rbSQe9il5rAftRteLdKn8fDxSqnuIO0QZzeuNxb1Elm2dXwG7aadyqhzPNqAt88xDz9ajg7anVcnW7Gl/vDJ3iNfPzwpha0TsZc5kh1TuP32UEuub7mu6GYVq35kTKMAPwY1ZccPUUxd147NXHfsDoXr3I2yxBVrsgwa+L4qX6eyGYhNqkK870ripW7Vj5Z1IQlovqa4/ahDBtp7oNfWp0SaDYOXY0Hq2t9CxEBOh9zDbTPCwM5fiZvHbYGjLqR88hQQVJzss2USNm+uwQXcQ6irJKI815z1asCuu/gM1DRR5Cd/Wn+2kwlzj2DvmIzzC4wngTFyxEuS+mLrXcUk3+vgqr1AouHPlYbkpOZZC9SXPCtHdNBmp8k9de1mIwxxOha2Pc2b3C1sr5ts0izGaUCo70tk6kEXy7BQmGtpc46f+kl2BG8IfGvTB/Gp5oB+gtZuO5HPg7aKRzaTEwQ4KF9q02jpeHp35uSWv1GfYS6L+8Nvwd79zfbsAqlApOicBCjh5eUqmmpaOymYAccQwlHESNTm8PNREJAg28NwA4UO9yBacWKobUtEJ+uAKhqMWRSgCVYbthlMWeeIc6iXDRJpyH5FHax1jzXwZyTeLVl4KKxdfQrTvvD44ifTUV0HgG46CbukYqLvthOty8fk9qeVybGsiDnMJXlVqfA2nIfZJxoke387atM2AJzKdXMu+mFjX4s1GnS4Mq9vFtyMMEuxIogZ/Fvv7dUSXJl3MY2nVA89lWxXjlhVyH3pND02f08Kq525FKwdO6a1aoZgygpursJN70g3KESoNN9tKUHt3qquX6/1wEwElrKQeTac+JKLUfrpEdGzPqGW0RcSWrIcpcZKj+BwE17pd5zmpJ+k6l5w4V8QbC6NcsHnULUw1E+3BAUN6G5UBaMzHJ1d4rWV/xQZdmVz4/m66nEkckHWJ/iIK9sQsjaC4JK/PBwQ37uA0Znd4g6QRXKdSqIARtDsXPe67nFzgW/DWt30HzBDvOg2xRF2cC/i0D1Fu1osBgyfSwkiBarX3Lrk4ZQomeuqS+4SHaMay13zCYYdVA8JNxMvAjxD//kb5YtyZp+fsVRiMD9ogZNGjfn2Pw1M9VEAIxxAnu5spTtrPnEiMJ3AzsQ1ZxCTOXqKnIze9XbmVjC5DUd1iqNRQebRYh7/I5HWC7Hfzb0sWIs2UncvelHgQbD7sj06cNLVoNIp2DbKpSS2uTatugtGfvlOxQgPz+rEr1cbIhwKKYp2dJ7Lel46O4u1UZKIzfh+bz0FL9zrmTsJTfQW4fPwItOToplpEfxp+CSq/71MKZPScx3RI0+C5l8U/ijbXaf3lvlV09QNClAErEDJVurl5TdYThCXfEgZiU0VJYfwTdjsWO+0tHgX9WT8y3hZMFS6hbaRTH+7PqpqsxwUuvQIUQUdxvwYMkbgvmiUkVUEV1TZ4FjVtLLqvqwNrHFEAlTQ1sZ3MXsbw3RLNxlaBw9uQsj73gL1xbBPhaZMPhBQb9nuGYi8LeU+6oOfzLDCw3nHm5XmcWCvkhdyuL4RJeuV4FnOs0OKLl+pRMAE3LFOUA2E+GyUWOOukpDTZjouUIsY3cVIcgD/vYzPXGNf24XVjNYPLePpI5h6SD22HfPs5M3vDe+RQZehxloC40J6T1tnzdUGzuIzzxPBdeDon2xcBQoKNDnyysveMaqgE00syRmVCZlYpVy56rrgYAThgoUG3E5WWRV1olEvPmglSsP7307y7AQEYlUgQMSvHC0RcLVzgrWlaENn/WJsJo1BSg7ZRTZkPF8SiqoR/Bo3NVzMizxy5xQVCy/+khrTCp40zTCYglikcxbpfSFeevRNaGw028YZ1rKc/JPvOGClJ4pBun0nFhRn5v7WDXCmbKu6IcMSGkApU2yuTc7QEmIoXGi/khi2pnxHnrOyzwNE2j8VB8hNLRszMrtt2z/QkKEmn3ip8SAd/uMaZhGn7iGXh6M+RJuiNQnS9nEYYjzYqgcqAIFx5B1IdW1z4lS3XMA7cuJmBKmlNC6T4fmP3iJQUQzbzBGwHeStKo8wz5PB3RChRntbWvv5i2WMk7rdt3Su3xk3cuuu1dADFr26/QXKa64cHKb3VnuX9bPod+cKWBv41Lh/V55FmudOy/KbT1a42uDi8r//tDIPS8qR59g0XP549BdZukCu314i/FVgSRMg23t7y/A9NFDksO2bDVMHUTNjeOCpOubO5nfkQ+Ztp/ZUHpp8b2c2Own4Kd/cm26XJ+gppOJB43QZYgvrZTAiuwgndOOd1aL0sB1Kj95flKcDj5TahFa/Ytt59cUyFn3OhJBk7/uFflzQGEWELel258ZKCDR3sltUNeufrVyhOpmMB3oLnlFQPu799vIW6/XBxHGK+CrsgDbpfY0GXZvgX3Dix+OX+XXspw7t0mDIkM7aun1FaFd0gX/o/zxRq6mL9h+hmNosL9r7APCMOsa8QXy8J9p7dI3MHRrBVy2r8ybtKze9YANQOlKTCjCGJFll+JyspQLzHVyWr6fSx3eylSZ/9wAVRZbVHcHPbdIpMATjP/z6ntBU4DmPN5TgfuVYq3aqgkugGjiablUrUHuLNiSw9naYgwTyjaGCjNyL0gY5CbFTwJdmqBhBu0jknG0VHD4wA/G+pl1U6qGlSupYbcDTp9vLwq7RL7jJp0RecNwiEur4OW4t6x37LOGrQR/8SN38II0br3jRw6fK65zUpMK1MVZHjNLpH2dYNniCw/wDerOUtz19ZGc79NsppEXZe3qdVaGR1TnY4wMhmYH75HaffTezt5/YnCRF2srP2Lmmbe14G50cx7h38+2wNrLMVzGTUUl0Cy4OD1PZh0dr7pGgJB5lknEetpLKSA4caSvtikt0GzYlLs3lWlWVVMitOyYov3ijeX864uC9+UNLGTx3sY0hl2nr3v5xkl7/Iv1V0Lr25qtmfBO94xeTPoVdS5Bcmm54wzOqHyeS5YOBIZDLZ54PDSw+QxhSLoW9Bp1Y0qNDB5jQ6dZrT2NPcaACiNS61bqBECqRpKoVZ6xNlr+MUkDYC3l+fmmhwJduBeQyO4Ey5n9JM2Dguf/PiT8luRpk6KIbwdnGC+57mVAfw9NMxmVPuK0SMY29aQLRtQPW7m2NWy8frrjtroyMLgvnarBbZs93QvUPVoBhGcTwoPaM9ukTFIu6TayhrQ628TUldmBQ1vH/yUqcY62DwOI/GKiu09VEZSdHf4li1aXzVh6li9DZw/nqbo4X4V377XXxyVgMjyY4sfVySwKupuYS1e3y7UjXvlH0oNWtXS1ZYorbKsknKQdUtvacsY25yXirYsW8wu2pS65Y2XPCkTyj60hadfWzuCz6TquoN7caRl1L9Rfp9qQXMvp+BtGj3bQvHfF7tiLvQw5qYjZHe75ItBtN73oLBxXV1c4xUoloXlVEpyq6kq8XDe/RIUUqY+TY/ZkHiqddPGMxl9yBPRBWupUnj3umky/6peioHtpOOkMJgz9EH0DgGLB4S8gq6JHo/rXEY6vLxVH9PtveYATxn0Sme51nlNuEzYjHO5bbXChGch6Yav7ejiXGnGC1ls+8Zth845m5mxzoY0QMoGa3xPjxCKLw34b1pYfsRJCDrLQ1FoRhy+J362F3I9rlldcDcjLLux3mi0im++LaYfn9sMOv/T4dvjVdPK7PvU7Kz4GQWsqy7g8owMbOtcesMZqTp7k0s0DnprfBBAmZME4rZ97y7pIXZdhXBeK97FFGQTNWIB0UmGqDiM/9PSqskzs3NFBjhozpPsVFSfBZKBw+VrtyfymAkAAAAN3Hxl3j7uP9xlItjKOGzjM1zS8ld8lPVTQyKb0066esK/+syIVcCf0qJyH+hfU8qbIyDM7jWAohc+qlA6bRLq8F4GUZ09JjQKr59JJuvcIyE4ymAGotQbJzK0Ho77dGQr9fna5rnvQjZdBfWPtIMfmmwzFtqinvBapPaOSLkeM/s4V6vnx0nVLIvRj32RUVE6nxQNPiqrirHUWxuNdfnausJM1TV4dPblsGuZACduge5e7UOG7mXz8osXrG7MLc/QGGcJ3H01QG9vV1W200M6UTXus7tbSG7iZBOH+Kyd0ucyRSmAnvrdp+La4cQ/PtL+CfVYC2H+YcmEahdExgSqxYvx5tGxX0LWMinovpiLatiQ3kdF0dUCRvIzfH/JaJKd7RpeDX24J8BQpuWT9Y1Yj8zWqVTCooCjJzVAV4Z7tnjbrZvna5rmdY4bWtHua8wBPu1X55tzhNzxbeLKWXaYjQrDdK4icW6LYgPlm2eUXk3hsGUUT2fZ38/TLg5GrfrSyJYyZraRmmDFti8x0D1bYOBlFOGo8AV+gBknHHwSdFxyzGNXiyNLomzNFon9i37BUdqnVV7eGuDcxJk+AhU5bdxLBVt4FWx8C6X/WvaTcQg+hrGT/NR+E1HKfzvnHtg3O2u8yRJFBs8hJrBqERsF1yFpbxODvUumIR+JIl+fGEWhq7mvbnQe2FBlzmdKnmnFBJXWtXiBe8T8P8I4e7BIjhSqDVec9dgAmy7TWZiOiEqLnfBxENRqrCR0LQN3xgzK+m0mfIJGPDA4Nd5Fa6wNftO3RU/zb2Oo/hAME5NoVl0+DDJVYnzLvNN8SwWfZ7OFg09E6rVwMLhKWmdBZkNDJAF+xtqOYydpeEiov6YYZ91bWwUZS9e+UpBZxBxfv3uNZK4ODgNVNBi+kd7jPXhX/SrQFaPl7kDJ+54QpXF5dA0ct7LS4o/KauCOj0fjsRVK8s19ypvxbHPOfTzzNbK5TIOfvWFlwmm9HJWvpv94MUYtg1oo0eKzgq29OS5CW205KyH/gq+zGOwGi01FM3lomgqGe69q6lgrKyD0vG8vAgf4mpIDEeQOoODI+bA1Y8RqY10Go/1aZRGztHJnxw+W9wEecVTS8Tp8GXkiOKD8mdFbjFMzMwW70mbtdKScEpj9MGU1e5XLhYLH+zdsSlEJ+jqnhGfOoIyOJPpvZcrd0TNIzabTmgew56I1qTecIZHZvtsuGXB+QqQLt/KpASuNSS+eZHbDidBN+wnBCwLAB1CC6PKO/5gKexpvYsEkSzP5hsrKwtohRU3Ygo4QhU+F2a40V2GAJfa12s3WOwugl/Hgiguu5f7zye8v8d3j0ebJ27a8zduq7jpJLTlwIkVjVV5juW6SquE0X/TzduHKZX54ZERhDVCvFh/qoQV+n815BTkTk82/peq/dwQVsG/bcfCYQvbXp7RsYJU9SnrkEJr2+spT1u3Ql/v6U07SUMn27jqvrwBthoLcsqB0CmLJl9mIc6VLeyfTOCufUk8qNLpQfU59yRoNRs6RIjrRa308w8fW6c4NnpMq9FJEWBlq2hKUKcsCekiXX94stLUbBBIxCYXM+SXWBMej0ATngntCFeBOmH1O9smiPh+7fMvdjA62+pYd3dz4xDAmBHgPrnS87d0qQYVovQ2zudV2QZgYYn7ounIfxbcucDEqmP1HTPCsy9nkh2lqk6v7DNXvDYFzf29HQySo9L6OfprXAl0y3/rDVlanKk/nUm7xDrUf9mgcCikbWg/IkXeqn9Ct/M92SIKRdJNV9hME+tV0OqEj07aip147Wrjhu8Dd5CHTe0cOH8HwqCOGW90D0/IP63uRJ8AmcIIyQ867RwUNTLykZIIuAYNu+nJxSKRqFprWAI9l34Qrg+JxXfiHlQ97LBfPSOlFaj60ko0bKxHIkaFCD/DZaytgokGofdSE106Mwi7cc9aBSGzQ5S/lYVrr2OlG1OGqeJRzjfcFGg9sfBTCuTz3nFQ6Tbg4+Gvsw62RP4RV8CedpaSX5ik0e4u25tnb2e8Jo1CQLs4EglFhOLzVO9HccFkJ7eW0GoW6jlQYCEINQcnYncjmVU2BwymkodLDnugCilrbEJnVUCIXQfOi3y+h+fpnWVsPQRLYvejTiYCoOuUJ6flQOgPAxcTG30gsitPR4/CYYWcI9usE6sa1GQjiRICQuW1SxEYjlxPXrHwqw/Fk4u4Mnhl2VltOlqgAdL2fHc7F8mRqvZVpf02Nj6nycmQZRnEOfMWkhwC/hpE4LXi/K5vYEOlOohoMdxAHpZg+SSCZmu4LE6ppxP8tsnmAITHqx5FIxPzMsQf2jqTh2CGNlT78UTnkda8DLCdtV8W86FCFwLLAsfkrFFrfRGKqPn7/0+sT+jZMwI04p9YFv+YJsV9elnUISRyDAn4eGw1shp7Y6yuAfTMP17bK6BiSdv/r2SrS4SQkoMuVXEvPoFoHHZpFPTESLgxNgMdLEgkpWZEngahjOudzmyo09YCMbFjOuCSSaO1fUgiZQtpiSQTQBASEzbSkt0jPFm7bt2PjwJBlRLUqEIkuZSWsCkzVZRQfJVP8Pt1Kvachj1PYFZRWv0fNGTrU2lyTA1u2+kQcbrU62sZDOoNNAOxl1IFsYgBP0GsjakIWimUWF+E6KbzzN1n3uiZWBKs+hiK7AxDKTKRsVaD5glg962NKRzeRnVKJYE0k2R/1Jktawl2EMZCBCf6YGPVSHb76O34UUEl0slzdZGOhgPponu4p5HeMBvRioGD/JvG/bdVYQT20WbYadaanowr2wLjCiFBf4UXiiQue4njVRYPnPg448+My5SuypkZnETJYXgQYnh4WTyyUarpMGSKS0HInu+PJA8bIhdLuHdS0Nh8CYAlFx+y4wjYF1GZKNnDlC4ziSkvaxYXfmC8/hk1aVl8zp4r5GzW/UDF3alVfPD9Z0YwifB4GeAxny14QpZEKBBuzlSSEIxVJvrK3t56A3+qHTOPHZUR28Jxv4JAH94mhaKS0CvQRT5r8b1Vc8wupIxopug03H7iif1o39RRvN7Bpu9Y+XA1THDGij/+VxB6pcezhBFUWGxQ9CJ+JRpQvluEl8Jz8NvyhQbZ/LcXCUz0AIn6+dfk16Im+fWeUDY51HzLdI7bwOxJxec/rp2QLcA85VwlTJMW9xDt8/eJrI8oyeGoTsb+Qni3nhiQPgBBaiT29kkMgrlHi24s8KZc1D5ZBvFvXhbPEB/7DfxBZxMYbu0ykUlg26rx3Lffd83MRMDb+lMBvFUgjbosAIlmrVXGDEP/669HjUFRRa2MEHKytvcOcINGJoW/DyHVmmAKyjetbsoItOFSSo7+k40l0axXRLXimnDQ0O/wTAL5hPvFC022QmOP66amCXSXnd0iuAbQ1EGSBN/cie9QbjumG8sManNk6gbA5DeIji84OvAoKUTOpC/Lwus/yNCvjbhT7z/DIRQss4RgXQfXN3PNjF/mGtYzaG3NIv854rvJPoQOKrmernLTny7NfuO2JuMZxxeIx6cdIi+ZZPCFEBvzKwMAcFxO9CeRxyCiXrKePhxWBb/1dJPt/73AaBVbg26nKF5GUA6R4SzKD+SD9jPSq5hMYYEyeGtU8Bkhtin+mHQo0wlGUPbBYOrS8HkMgvecLFE7QbSLlNeV4q2S8+5ysYDTTUdonAv0r78VjIClgxz/F0aSTHJ4+onS47WdPbD6lxdgQRuuzS3UVD5FRfbfcLSa7pWniyZlXmniicBI0W+YfhOvqiyJ0xkTn1dEOWXel5bexRMc0MFgYobBoy+eZ1Kg2QSugr4nSvgui5BqOaBHrZ7fauugnWRl730wRSOCVOdk+sSBo1MW3MMlfFVFIwHXkWBNZfqPP1ZURuZbd2ri+gJXKWdMA6e6oUHurt9PjTeyrtoFMY0KbtBbXpApLa2znH3T0o7OlGI7j9nC8wSnKKp3rq6dah5f60GLyZshMReSN/6X+FG5g6pw+f3N6PquNYnBHEuMrKplle9azCdBwK3Mn0bR6GKq2qIZUXrWfwDL7cwRKWT0wSsfE4793Vn3VwHRH/+EjG/5WIghz5xhcuofWnlz+SMGm8n/LvbhlvzH55z6YYy6oB+f3uN71zFLrhNQuWIBkOR3jNtho7ooHWo9B5tKD853Q06vdTLHP+SViecDx4fIK7mRmU0XYzARuakpGmPRuvD0Y84STWOYNFcE0kNm+/XndoGDlUnGpCJNHoYUs1buYyaiDymFTfEDwsnYLsYStwO88GOccTnsnhiGRyHNg70pFJ4uMlVmRby9lS28n3o8UeynmZaohZ2cW59alPmBoyzwxx1yuLxnPzurSOKe7zUp6sGwm4qgyrKz4mYgqpt8L8z/OVd+rq6UC1l1jI3nDyF80Etuaff01fCfVBYUSaNMrOpu0mmMcoSjS0JnQQyicaee+eZ9hF/4TXLNMCkbAs1EiECfA1De2Ob5zmTTzj/sI0tgqtRTcedwi/a0nHBK0r7PbDzenda+z694Xlp7cjSOp74KgXFVOz+3oPRPpWxefnY738q7ZHKJXYWgE+wOeB5n7gQPxNlGIZ/9FfUR8gMXqyjq9Itg5+e38yIsinCux3M9BgVMbgO3mXXS3eKBXGgK8JWVMYFUbvuQSBm5d2Slbu9dzDMFoMndrHt5MtXEFag2Pt49rS+dwTnJ3f5XEy06oTH649NpfU4be3eBiMSrzFMmpQEAPgGithQOkDZv2rKLl5LHGhHZTGmimm2ZEtaSZXtPjERX93AmIovHjDUP2U+Jtv4YfiOAQyXfuyTYmwaz+MhGLSLXfPCZrK6x+rsACdKfxDIkSbRDvqIShvd8zXv1H/iOF6WgcYIs+Wv9S9PeXL+GCb8dWJlEdPEvcpLnaMpI8pP4t+huGSY/YFVdXLvpiJyBs927KNmyy4WAjQUXkp6D44ah2ZX53vIyE6puWNPYkvFir/EfcMxcB5wxx0sAT6JepqVluNRXXE4whGrtGegB6+IHl+QA9QHHWRCiuELVw8xG+bj6CX8K4vf/u0VoNPQzhiqA8u99VU6ddzDOPH/efKRK9Tixuy9MalgJCU/SXi0Ugp60OXdx3AieVylsLIi6yoeLK53BMLM5rA5Rw4vztBZOjjph46WZ1Hr1kRx+WWSO8X/gV1xe13cHprvGUoI8yNK8RLfG7n900GkMolFrHjdRVNI0XSJSY0VAg3x8Z8XgvA4OqN5BNKooC/S1PmHa83ge31HtY+cE2P0u7EFmhLh7Gj32qCYBTgrTMUbsA/o2nv8qMYZBAx7xjV5fIUhBijB05YZrXapWaMtXDKXNimo4hlYyYMdCnIuqDFrmT1Uo83lr929EKj78Q21ZEkNYiiYx7WQ9VPoTaS78I1ChWImWv6LNGHJxfQzJhAJB3XTFkd1EkDXspujRg4k4vOq766mipEtQ9UKyLI9+sBep3tmmeNWJJLH6xUrcgTycg065Ryv5kOJpR7SlpCmhV5ssQqtz5DJ1kH4NHdnxiEDPoom4DxybFkvs5pPcqgiUUtuSyAoPCE+9CXAUHTNLrQi1nme/EVP8+PcijECebP0J4JegP1h4RvB18sWLUjqblUcTVAXA39J7TrN86e9U/DLxn9py0uEi9xChFCkT1hn0YNOxbnGusTY293Bs4g2L5o4u4ZcTstFGpE2Y48XQq9OAs8jvAoBo48gY1lhLEbvBEGr7Nr0KaoR2W1yBfcFxFkxRNk0IzFgRyosI8xXZPVzk99EL/YxRFcViY0yZbaEGvlJSHAmb7wV/ul4q90cswrwirK8dGtYaiPAOz7bpGaux9bec7nb1nUnkABNb6d4Z7+E9jWnukVIAJDxuLD7x4WqmDWmYYAQPM0hKSoZ0BHUJHzwybTZxq3WqWUkzL0fx60khZHz2JBjCMspClmN4Eka0tZLfIqXsCGvUhSqyKBXy+AkedQPxOC32Anm/Hh4Zvdh8SGrasv+cEXXcg6okAmPGUpj+57a8T06bJ/CF9tsJpG1S8OlRtjka1obg324WGf2Xd/kfv9jt/NT0xhc7wnPxyxHB4ADGcjzOBuaHo12vQxSBo7s4bzFXE9N1dqNgVunRoZ51CfDc2p6VRO3ZXG99TBlvUjPDuKla3pxKSVuQeCVdeYOP3LhjIJjlzcsndn634qYcGdMiyrcQd4er4nVFpD2stmuVXYg3k6bjNIO59zY/YDGtec/X2z6vPbPqRb3dT1e5/O+H4VBnRPWjkcFvcRuJ8fu9xO1hCpbb6cj1NUa68IPyDVWmmf3BVpUW9fYKjc+8cM531zvMQF5PFAzopSnVuKfMXOi/D8rNCdUm72JTXZQ273+8zflHvMYB4Z3wOXVX2Rhvl/oA6/7z/zzMbspVu/jrqQYfQD3ASbJ+8QLfWzDAJrnK0svn2rNAloU3z3hBwWLvxVIjBCfy8eJ/fhrifrOb1v0S8h+TNjMYVibmyoaFcS0rR37jvv0l7ecuq2fP4eZQKFGgtoTi3QzwUpgeEmDErjamm0rvbMPxeVZFYusrIzSpitIhbg4LxSvmMGlfEgWMYnz5Khysh5pwlw5bc3v5tZl6EL5hTOwIdd7nTqen+T0i4yPJyxw4k7y1XZpJcoG2dQvcuOy45nPt9dlytX7SJYWn9z+7cQRMJGRWq5ujMA0Qe8d/S6wDCe0Mj1+IamAyPSyxrGYznT28997F/UgfwwDjWeuc1Xenu0J0dOu5G0Tsn2MvMM8Bp13f1wUNK7z7VxurOyzbhzM6v6pZtBsGZzBa7p0c8RXH/LzC50ezpJGIzYmVTVPAn+2wNJzYztRTYTiZh58Z556Sa8+lf68SfX2+q3MhsPr+5SkjewDyt3oXDbj4eGJDFZaRdUCwyOktQSugQSfuwoCazqphv4AQhCPzyCAMml2GYmpppeZCTbgY24GnjOBYtGeGccLMOgCGbzTvhSbXdHO3jnwK+v4v8mI7ApUWwuD6dzYQyjqwfOeywFzOc8lz3ls+aQzDkk/6L6zEofot3tdmv6ox231GpSLlqwIX0KjYRwMWCE54GYbCjOGkltu5Hs8lWWHUYECTdDp9GJOD/17Xs03P7wRcXX35LhJYjEEX0iGtsZLN/KKUvniBgHmbHQmiSwzcLMEpM3pHkTuIbu4WkyqilxGl1LJcYwL+L8ZcMqLeEcH/hc+831sE06HvEeiaG/jqb1+ENLXbMzxh9tRKGTj9yMOy8Kao8VxVACozVYXhYfduKM7GnuRKneRi/hArKVP0vEDUGitxMP2sMbmraU/t8kSDP8vCNy9pYAHSYMooaaQ4AIdDvkytJ5h0vTgqauXBbrrG5yaftgLDoEojKix9SGKX/0cLtCektAdq9lU6h2/WqnnyI67S23pI1DR/ORlr1KGsD78vPI+wT/K+06xpzu9pVjep9Sw9DJRZBsV8Fd9bp13Ii4EwojEERqGIy2fh2CKBFEl1e7Ye2I+2XZ7gzphJirV6UX9F8CSYjvwPzzTym2Iq1hPzLAZ2ytQn6fEnCvlAJueop3MWi/otliPsG71va61/PtdmpckwZW4vjuZLJtP9/wQqgNWvzSHZSfbZJzv3v4AKMLEm/PHcbXcXaxay5yp4maJhatWIf8PZn2jvuFPR2MYHjAN9/2LK5TMbYlUum+vO20t6Z/Yi7Uatf7ChXIIAafubD4Vp/tNAqNOGqU9lA6EZMV77e1R2L+7Pp9ZHc9+Wq/75HM/18ztNNce1p8nfCStw2wzbQnnatdl8xWlGoQrntZ/LiEkrWy2uDzOSy0x912wuU2y/+J4bZuqn74l8W7mHe9WX1NYa3N986RSxPJ51P1viNVfH6KG8NKDKzwFL3tqb2P8CeKs0PN1TmBSfSajSNq3guy4QFk8YNHaBpYup3VbpEMT5skL9/gKncRHM3p+cIvKFuv38lCJJ1cc9aLZ1i9Gzi0kxhmITc0cSmjXEn+ZSBidF9wNEOW61emQ5YiJkp5LnaXOD1PRfmG9G0gILvg8ezgckBafmxI9pdy6Kj7PbcLcmmqp56c/oGgMB+RXudN6zxIWfRrSO1VhPZ0Y/lO6BtA5FhaRyt2dy7UPONCPFs66sQM/BcrCykgQasNZr0ocmuaK/o4adkpHuGlkzBGKbP/2AWf9vBnGj68rnPbH3JM+1w8e63zQVL80eSgqWC6c23I/ZHSRjiOYcBQ3qv2dZvbpjPNCgrg/NOUxdM1vOh7sEi2q6bzuMlA0e81ci+xuqPT+gTZNbdK4Fmivsc1tB4GMK/WMqG6PaRg/a4+Xf4WjYTa2myT7e4+ztibX2RnercWerfd+BmaCFpg+igs3VdeLQ5YRUFKnyAvUplvaw4pBvNpqTJVvEbXdAAXtUimDho+wAEQqdPfCaHtCn/6m/f9hf1mft/UlTAS73V9znIWQ04+pU+37zDhjoKQ6krp5XcZlKgPWU7RyTcTzf2ft1iaTaZnYmn//M3mtC4Ue6I9qYiwx+DCkSk3oFUkninqIzJ2X4XTr30qF/Tj4R3AmOVmcsoJZnWGVumw0y7+PZ7CT6sR02xATfQexweIXNEPwUnPt/IdlzoBxzaNKrgdvva3NBorKS1bPTuamZxweud7ysiOpWu/RXBr/0fQj3b5by8Ww2xDg/x+qYLt19HaaK+uc8NLe1+/y6Tem/VMyG5ibRKhKLhbibU3igTEdE/DCO0UIqNj3Wbn7kN43wijCPeA4LOJrbzfl+c9HlJMzHurSVrfCwIi4TYW+wv+LjMJzGHE3wU0n4OO79h27o6VTdWhMyM65IGcRmQjoCzV50I0gnhgv+z8OP5nYj/V72ySn7q/46izHzYbprYyuile+TBDJQJv1IzDkAYxLL0z/13UMS2Yx2+IG1qL3kYh7F3ZgNbdVq4hl7tztfDKaGNBxcWoJ1z+HRCv6oXt8PCPb0OAVZNkDWEVkVMjOBj5jpESxPOJ95BY1VePDehrEJsne7Hb9k60n3IqPNLoE+ztdWT7S56tVNkLba7Ck+WVldR2jvrgTDiTW5ZhQKlo8VMy2Q2WpXvFt/JTi9y5VrWZWq2ImdNyDnDWepDYu5Pc8+2YncC5t2dEzbob3MplQTB9usnv4SuKSHjaZ/a2J46AEANC7Vk+tpAMkURe1id/aMkw/jj/yYmkEB5CqFy5NJB94Lp/MHY2NvipQ70yrWbyWZJFOy9aDWi7XLg5A5UTqvGNc9ebSivM4Fn4sUTudBtcbWF/HaRy4ZUg4vnEuJj0ZNMmqv8gbP3f3Dn+zi4C3tnnlPP11rFWMs8NM84n4l3qdP/uQ1wqWRJxb30vUcrRmbv8stAoZgLxj+o4qMBs7Rtiv8DRIY/i2pjmhgx0O8CEHaRwDaRy61h4mWxdLTRTpRNtTdejc2WwNF0/f9Yy+dfCQDNDPbYdENz/bAzPqWs0P3IKneb6xMnIuV4rtFBRVyQ+wzVnV3NB8jWxIeUxNUc2qz6quALs0CuHPqVy14RgCP7CkNK/EvhOzrJyEgdIEXNUaJwmBP5vHhrj/jiLMzVA6zrSD/h79qbwf05hXpsWqnzSmZdosSAkkhR5xmLuSioNo6cgaveCOA6gJR/i2dX4rBf80pKq+ptVcoDmRjerv/0BcvFnc3W8PTbUWaQTYikKh3osfbXVsYY6nsRkEy8vM/PCRFbztYKx6PK62NhEFdRD5wyN6ugHD9zvOTk0pfBCriSgbwBCOGCUtbK0yrlr3MeRpjnBdWZWj1dpS01Vnrn28tyfW9UfYQctLakZF4Ozc9rAzCdeuosWuvISBYg+YEFsimlwn2XPj6zH5i33kyaSuRSuv72qgLS6nEfVy6a+5DlAf4pcJtoFnoy/HvkgM2XkaeWOhC2ASgZBJFjEbFhcs3DDmijYI97jRJ9+04LoJHCPN1Pr0KbSgdJQq4Us4XXB0RlN++yCNr/iV23Bgv2u70X6wIp2skRgiVNt9j19YR+xUqHtrkxQmCzA0utQq5kSivYtKqVtS+Gq1d6m6XJxPqOtfDJ3/gmKsuQh0/el74v6+abJzNA56LhSI8/dAZ3t0oYltK4cbhXIze41AaK168QkNiP00/ayZN6sGXwyvrJfO+nbRxZ2ppYbjf/0Kst3Omz6H3jlMlJjJGHed/z91i13h0jPfWcIXZ/su8xcN7FRqpbgBqOwmlhMY91alcK/IIV6EZ7h3z7O7SFLl5EV7FB77wV/xks8yO0Tja179nytgPoXMHEeXSRWPgVz7vH1+7+ePIEeydKmeVU28I5Dpd1COvi36Y8qiTFrRVSHV/lAID8Qexq1N+AJffNSEn811e1hxtpy2fHyaIIZQSbj62zQY5TA15XHM14Z76IdoAY9YdRfZaixlSnwH177piBssvWi4Li3bgiNZGBkn/ofD8n5XeJ74QwSLzabjFHRNE06ynBJ7XABcNQ8rd66fZuciwgXK3iOyDAiL2o8IbEZdzPwfiLe8fceL8IUbWdEYuf66PKDU5COQCB+u50LHnCh6DsPKd8B5ArcnylyQ6qj5lBjmy9NzxYBrxNZ1OY3kYRyH2OQUch+C6jUS9yhaXOBE/u+uL/K/SpXMretkhaNwX8P2CKOTRYKtk5Ur2nvzsVvo3rHk6DygVJ6qFRoBWzDY34idnmhoHqtC3O9bZvQ55itUSgqmcUcsTtTNo6jxqRZiIOQ0v9HT6lFGHb+vJ7VKmsxBUrKreitxODgPMT5+x6Pit2ujTrY95MitGokY/2sZ7QrX1FqnkuMe8K5C3dIKV2E52ZqAe23G4Jyb0rbjtJbyrqZIKzIzTRlHSz/ef8DfciNTywCzfEZT06HRQptxO6tcpes94pq4XI4tOb6jdZ35gQknHK+J/PALyv890+4OTrBR4zV/xZPG1KDJkDvlaUZz2w3GX9jY5T5MEnj6ai5IVOdlWA4I9U0rDQmrEYSvLnoBP8kThxsrPG6jw4wOs3EWWtXUcyVPfP6fL6cSEUtiPns9yKXLgIA+5DhKAAfRLmm35IbnXcP6B6O7CQlXVqgdLShedmCFaHNiNjky5uWCm68/iY2LKc0LrMGwMyrOw3FXLZoTPcCWD9/mKp1m1q7TJYlfHB9TbTfPVMwUNtuf8vNXNIYrekF7+AFaW71HI4Rx9qW58GHiODz0yJZ1pS7wBvseEVPYmOwqglWDWQ3nRFNUiU1GtadQ5kX/FtXeXf+rllkw6CB4PbpS4Ix1sDCYincKSqj8yC19X2YnAijxEBWN9ubDRNJPyiqIEujR9+VolE1lgIpkxJvbzqeSvqnlDdEVPOnufk9VpREV6/9qD7gHEU202yVyjMvCRa6ZBuEvBAseUAoWFu5b210XFbibL7bicVdLUmCkj3DDt3eXffTQkzZIUzj7FvrAZcRbajNBALaN4OdCCzgmtOZYpZTQ5xowwt53onhlFEWfZZK24T1INzulsyGirjjgZD4W7yOS1DbWKXa+CckdqjvEIn0wAaC60AVhji1DzN+yNZMk1UVE76z3aGtcUkzSSwKa50UqKksBtQFC51bXMfRe/qzb2Omj8SeKfGtjE3b6JOZdvWl3G0b2T8bfH/bAG/P8JRaTM/9qoyLvIP+rBEwlQR4Hgg3F6S2BuECkC+pSW8hzmnhnU4S04Tvw/7IZByTxgbSNN6El2oXEJn2RzNDO+Ylj98IfvjhCt83VRGaIK8c5fwyIyAHbmj1rBtbi4HJIALDKcMrdEGTDKIJ0n7FPK8CUpuq9B8k65dBKJXN0yKosAgmv4JGn9W11SsAusyk+SAa8KVIzbuEv87wMci4hKZoR+kp/M7ArqyhY5GbarpEZqbdN3Zyo89lJadne7+/T4pZICiPwniKKIBshZuhiTE2h9lemQ/qsbOQOiX8s7CgAkZ2r24ZJbgtOEJ3G4qdEVyL/0CGO/J+OXo/B1jlYVmTXFfV523SNmofJhtYQbP21Y6UsxbjRvclAtkkpKX7OL1DObH7PJMRK9C71c0+HuBrDW1TQcP7FVfV9tCrMkJcaeYaPoan9F/hgazHm/4EfhF0iEO8BNcMRGpuDAYewXintNdjoZmRe3umYoj9/KZ1w0e1QxZ5Fjwxz1fcS2fMHN0DfMrH4eGrGTvZU+ITMnE88g1J9CSfm2+KtWCqdBkvPNBgWdyMEeXsxynU7m2nRVKbV3WBJF9lmu/r9mUkS/uY4UzOZyAysoek+6ucksF9nCeU4mKxfcC4IkaJwUtB7lMWjxlFU+TOaemptzGEOSRUplfZE+3kx557pmMiIx8Xl/MmUoIUeJsklR05AV7GFx0SBG7h2RIEYmI9CaG7wAcyZkq8AKXqfNLKezfVM6/xDIzKjHckbmOA8WXfNlx2oCOnC2qzEx/+mbl+z+fu6npzl3sGP5nIcQrwLrfMOEPtwwKe2K1nSvooNDqk9hCmcNOeOMM/dUL+DuopbPNka8UwJhLleB5J3zN1tyhzJdUApsbHF/yOxeVgjD7p58PHC2o63ve6OOc+KdpahbL3Fe7JOqIZ/KXWlMS2Tco3YR9lBRz1BSaYGuZ+z3Acblphu5oVcm3ZwqrEIpI6Qvnz5Jda4OF/T1/hg5uEj7yz/Lx3wPpdPxfpzNrjM3XHwAIFPvpnE4ysVMBIUKNHaqXCNRqZ2rJYt88K2Yy+1S2fm3bsxgB4o7tVYn+XubR1mHda70o4z89SLwyiNSMxTc8RXQBOFt0eu+Z23t1yqPdG3nzg5/iT0t2fRbwvqebyKS9FUNiK/o9tTzu7y0B+Ysvk8pzw314BqS6wk2tZl4K7Uuz/nwonwwpcrF54V8lIEc9T+1pIXUHZbWJeu94+qHuyv3PeZy+BScxjXMun4d+JQBlUwBVnXVjwf5WpdlrYRl3sX7AoYs/YQqfRX+1AkWe9BW/eky6CQSBOw47DT6HnCUxM79KDHh3kCoJtFFOfeE1gpth2U9UQL0TMc5bYk9X67bYcLm0hSPoH+NfdByJnqrZxqNUKTkrupDIZjgwCK1D/w2XZ83jQY9ldJNfKJHaLc3Fkmeu+F5RlYB5naShzp1SrCdxjAP5nz+px2ts6nV2dMxRDPcduSEiZ4OMk3kRdf6h1UearJoc7HEBwAeqimHoeKmXvk4Joqi5zMKEnzDY9KU5b4+SpLMSzvfem7kX46Dayq0wKO2ZPrGKlEZo7QkurxSPjMBFBCjfknphL4XHlGqQdZ8Ave/E6y0tD77Rz5Vw9iZlmmKh9V2NpWK/WlgRQlwFw/9a9xe8boz4qMuni2pW1GdGQWhQYOajTV7WpTC01jH5Stb3f0JoTKiYaCurIaqJDbOmL6UCcRAxJsQaZCeBavJJ0JPhFe/TnI+b/SOH5/B5AwzXwsVpF7HAPa38kppdBw+j7Cx+Y7u2B2opb7rKWMBUWU5qJZKBcpt+b89DKJu3K36MHQzrvMTPWHHc9ihegES92t5E4HSqhmf8l6W0GgU+3AmvNoJjzqRBgvJYReWaCu0bvSAQHlj7GpkVjx7OJestvd27rn+Q4WVHuNcSLaVZrukl2TR/qwCjB3dII3iWltNZdWIbnWgrapDRplK6l6zfZI4Jj+oBxOXWIkfPORAP7wCte8mNYt0ftGUPBEhRce2zWifncUDiuvEOe42a5tDhx9yegh6cR3PKTwR8pjpy9p94GhFijzTXJHdSdK9PoddUUFpw9CozBtSE0K50nEjDc7ulUNw0IFzInmQlujO1dzUsCuiBSnLtRrMKrolrWc/v7vuTmPFZzDBW4t13E9QzXvK/10aaFKyiAN/dbXF3mJN/C/n6jPYzZbKhrksrLzrsm3jT76ETGmifqMXX2vIJxt9cSN9pkA/qHxMdadEWLU9RQ1Fnpfo/pE8cfGSs1e7eOTDsA0YHI2i8J+3uyScTp+SL4S0YxdvMPmH/UVp2vzEEsmJlP2ANuiK71Rwd/9XmK7+HaXEoKydWmATDVARidLpC/omNcli2ypPBVy3A1ymv7UkOeqFNh2FVkbh9Z3fTjjowCG8SReyGCXx8MXPfV6xQi1P6c3S+R0Mb6DuOlRzaIrfX1KAfqRWGkFTFlrvzb20ANnHpmlTr9Nzec2bc+hNuE6dglmkSbE5V1zs8e1GnHaSXbFtbEmFU8r7AHuu/gX7r9hRRcES94GFXwmxd2nqFp3b8nycC1KFZsnMh8gfY6AeArIJxGtfy4dAM9yiVuSJQseN+xl5aZhRZKwUfcwp8/xR8l3Zqjbnmp+L67ipRtxEG/wc2lAach1/5EI/U/APyWPrGvu/V56CjeCRYxbIw7l9tCnpUo9Ptj4gdUN6NhiTUzXsAyGAvvq/5kpb2cgRubStZlnFdxT7pI0QHrFkUWdi4UMEgQrXy6OMEJFQ4RUucxft5nIIGllyXS/0WboX3sDCF8W/HAZ23nl+6/MJv/yUGjHkr55AVcje20X2B06wEdevpUGD7kHAOz4NneLhs3dQ0sj9A2HviEGE794ZXXQcnQkF0Z9IEIfXSU06ZXSEHw8ajMRmPrQxu362hV3hXALZ1RuYkd3BWxq7sE4yTkPf2Sz4zB4+6JDa4GoMjjX+ePg9Lf0zT8/o8+jxM1Zp/8cs1MEe4TV4GrLiB9+a+KXxmvoX+kglhOCP2hB+6oSrt+0vcvjDhFEgc10ZZPyRC/20Y5yv6JxAGiDroVF8vk6x5FjevuSx5ijUUSbsPyXx1fymhBPsXr9flAbreBjflI77RRynZ1uoET6nRXmxFRbGgUuiVe2AGfDJJdpiPaOw/8+e9TA9J4op81s7R9V9vXlFwYjlrySaoJNZRjS6XxsxM9XN763yDOSKdAKAKJ3VtVRbH0yDV5CKN9P6P1N06RV3Yd4uadAHKR74cZtuEdHfo0qHy2NYwlSTTbX5cqRz2K6327SZmFrvqsxi+vZ/5+8hqTt40q/kQeV5pEPckhk2bWIl1IpxH6FghGGSWNXSBate3YeH7p2sDriKpXKpw8CHR116nBgrSGZvIEPt6SJzm3l8p5LRDl/ZyK+xYHfTcvoWbG3q3GFV+sx2zR3XjiKEuyfCMzPOtiAxRqC18n128VsiZKEn3SSFuIYRJViUDAk+j57b5PyEUnJH7W/WEFYuk0bFyu0usrydKhT6cH7QAt/M+YNnxsIo2h+zxkbb4bwrLapDdP1PLih7LbJBhMmElFOVZwmGe0qBQnYAdjMK7ZwCv4rE+yrj+4ntprl4FFIz+6U9HbafXiZP+iNfTpIs/vU6UQiyGruy0z+JKvx4MhXbaWXuiwRn4JM3QFBt1jiOD38T0o0+RPz5r3oKTd5pJ6uWqIkPl8RvGaCFQL58BeqtTeXwj94Tbgby+xBgCfsFWA89X3lgUhIvNhwpzAtBoddQ1vEP3wLoQQaJqxOyYiOlo0Cb40UDyVEpyylPnRshbK8c+bp8kjIW22V0d2ofgwLVd+nQ2D1RyujRgSjnuRu8cl21KbQlZx/ak1TdH4G9rnDeooWcat4eM5nZZ00D0rY5GvKgpUpEfJBI3GmmM5omBtouJF/9fo6eQ8bnEJsdmFhpn7w1+kc/OSmc8+o7I5izyXuYrVkDHXbzK9LLx3pbBjsyu3AUBqD3xFTsfswU4EwEBwu+ctLpbab4KK6lnQfm+PUedP86huwG0/B7rQYi/0Koy678+JJd6drjg9O35uakU4y5JUYXNY3LbB7R5gdMuvk9xxIGPuZKvIYbXq1yTZT8J+pWYAMFSjqHeYSgR+3qMSB8+PMZS46SbL2ynJA4BbdkJpP1gdqmYevXR0yCOjt+M5pUv88Olt8azSUNMjljfRfP3r0gBlFwscI1RfmZ8CZ32wUzJIaFLPhYzjOniBO7KbE/rcrQ0UBIAh3ExOvu1HMDsGVpvD0S66BoLI9m4wTQVLuoGCWeTrsu7NEuUGA3jL4eDhWh6piRyt59U5OzDuN7yIcntIhL8F4cA00wuWuYJfnPTxbjrr0qGt92+cKc++l3EiNswib6oMF29+57FgrFLCwhtfOS/u047NRgbRt0+BJPcuHo5r7mq8RQKKMjtZVMWptWK5RDV45KleRIUHJ4PsfVC2DH9U2iJT/BYbJ0sFprk0a3nO4VPF6t7brSffOY63ytZYYtzxiYU2d1dA5UhkOtFaFzywTJqVlih9lIKdnm2NJg3VhJMajmYMkpdswV0RKv2dL5pzlww+xpUkIfFZllCFciIwh3hH23kgGso+SSjl+jKeR0VrKsSd2hi+ii2JcnM0fea0DA5TiNG5SkZe46TEQeFu/9lphOsyJmCKXxW5ZwEl/hWsQnJ5M5KHPyEKrwJ8csq2AzR18y0TfPgki1rUlVglYKxfJ6Ia7muO0qsib/BZbjQEmI6HfTruaIVSLbf/XQoNQhchzI02p58ttx7CKVQ492TAr6GhJG553r2SJ8kUX3wVIX31K6JVQnhZ4+te8lK/RFJcJX7x/8pg06KkKPEbJj/Dw715AUppaGwcy9O+OidRGgwrqdEOzF6va2iJuA5yCqNxKDST4ZSVPPLufd0BfqKEGnZDp0RyRRw2fomHQa0zwZjaUxMA0a6hxyhS+mriW+2Avx4PeXZQ2DCL2aJNgEUvCh6/dKAuNN78ESpIfMXqWh920izjDf2sJZdQOZedhzSB73nAExy96dDzG7BEA3J6pVqWRksc/VSzJjeShIS6Z94cSgrHoHfN4mNe0acLo5kcNg/rxJoQO1aCgfJG2G8YxCqQHjrNWdjm26MHXo3BWzz2Me0Hm/2k+gUziPQYLfmAPtLGwgbGBNUUt/udmFo8eQchB2Ck3uZGIQmLjkyh3ukJLWEBlRq9GPY2ANijqTuPA4jpvHW7YLS3aNVZVcmbLKa+W1Lq4sXw6+Otr6E8zPtgT7CD/eZOnyXvVfB1P5FMMu5ptQYBar0PDa0Xis1u9b57vnts4Uvf9qerAGpQVkvySrcgWDWderUdoqjx9JP2sloSfNgpSi9rZ+9J5xCJR+OzyIYrjM/Dz/UEFZ87wqsMthDZTnWj40bMe/jpRhDqk8hKAix0DJYmtohejJUN5ReQJxig93leGyDN3Hb+xMf6F99OEgnu6jR3vzz8MP7/bmpg111pWPwfMbUzJPq96M1S+hAsbGlTVJmvr7MHjmZNO2G8OabjzjcCXPtyXfh4lDdNmXkcMKVG8lWqGStpls+T8OI0GB8e2jTZt2v7cCjehVrwFkSzjb4ODAOhomuAynUgEiW2l9ZY5WzYKFZ2hjFQ6bPL0+B5du8sd99pIsyNhQTJeDOtbrHUW1cfHlQojav68r2nSjR2iFmpqM6NjRZPskfE8OmCfLnyGNFapNFh4GDwTxqfY7S/njBkphLXBsZsy60ay4e+tC/3XHW7e7ZrEDF2ShPBILqnMd6DOP7Lq7FlvtL9e9vQ9T64+hoyyLpcPxqC10lmE8uWfaVeUAdhzJ83X+dcolf98mMf89+V89MB8gXcQ5asddQMcS8+BHSLYWiOPFfWCd/Dnp6EImAnL9bQYtBvZC4WmnyxBbvko6fxVjXPIZR1m4p6c3JJughXVw/QCBeemRyCNEID+tY3AYY4n0kyjuZkdpwRlqysnrB6PMt2sucW2bDUjzyEfdRsAuuXrrbR4urGs7PIzWvjPRGvqru7o7Ri4EElrXioernwbD1Zds6cmZ/uHkB6wwJ0hxr/LpCNSOn88lMJfqAw0Tjbz3CDcL2/6ikijkIrDjVKTf9VTlGjuGuiPdo75xcm+TwyLOoisnRQjXpjLJ1orSEhnwRtYEqvldMQVuEns5WH8ODZP9FF6uCvdT7ypudOTQXI1oYFLIuR0ibJPlz6/gikcQaszvLTCcJs5Xh8o6pBMahrvp9f+Iw1wiNipFqIjs9Q0Myde0awlT21Q2OwlxL2z9dtxi3O1b/1Xw2UG4/GHzUpJFB/cwWVgNR9c8UmkncmRqSe8npq824nUyDyn8l9ioOC8Tz8t4oxdUvQnS0jJUXAXu97QptjMc+929wbssrIL8NbPurk2to7frzboNjgYfKEwcqjbF9hryV3s6VOnfPwnZYYhAFOKpXXbkDV7hMV+28/6ZDI6VpiaOMs9DOtuYGlek6wmMoL1jsws8V7bRJPfIklkOkHMry1ejTSy6DPvWF1dxJKQRnu2yLBmjHX8sFZxQJq2d82XNZ2LRU5E/i8XHL2cp4bL8nF3H3Pml70zYAP0qGy+zTb+F1QNtNb80O33hFuzf87vmtvt+qja/jwf7CzdnlT58eaqmN/jBEWlNfk+gc0VetAqD1L0H2aoC5/wPRZZagvhOAeaDBqaWBIHJwBsBpKIEMSEDT9lhomUgHgVQYw9Dm4HwKwpurAHtmBi4DgCzDqYclCE8iIfZ54FBVUHeKMD8gMNIlxjCjxjMjTvMXZcY4kwyzCVvQeVLEIkCTELor+haTAAEAAZAAQRaxSXmGhAGlwPI/3EYooPkBiZYm0J+7GU9bf+t/w7Toz/u6gNT6uJm2c3/X6UXXvZMu6f5Xe/y65/nQ+r3erxjvmPVsYfnIaUyHi5V0keMy7rK6SmNf0N2OCE5PZyhNrzCdWjgDW5ACxxwEY3nhget4QKfowNfiA26AEbssRySGLANn6gxBiFowoIIOtB76aGOZ7SCzviQAnrDfRBFKQwua5SGB6NXlB0R5B3lQBRkixjx08sbEtgaHZByPEK+kRo8Bjkh9WQuv5ECudE/pJg97BVZ2WdpWNb8crll6amMHlmO1LALlnOY7nrcBQhzByzDDfEbaw/h8TeWQ+b4Byvzwidoe3CPHe4Mtx4r9ghgcYY1uCYc0HK8Gf8kVWVu7oKd45PHC6bw7uEbTYyGpxk94i/cHm2EyPfgW24KuE19eCnBO/2soYGh02MNFxjSMNWwd0n/bq4kfPdVqO3eXaofrs9wnoZjDRKiC3MVCv+iQ5W+H32YqlQwdrrhuoB///Cnyruzr268sf3q5cYNhUsvcV+hFxzyHfjWupDXMK25o68TfDvET4zPdGzDxRbHNGk3G32nyTxx+T6BezxeBdh+WjJZmhc2e7D6FQaAugnSX01ocSQOeV2joE7uLOROZdPS+phZ2BOZFaYq9nXmYa16X1QuucIVpyClFmvQh3A5TB0xJut5Pw8uAg6S45wv+ik6u3myhFM0zt6LS8PmkhGAX+ahBMO2L7elxYdrewgUt2SISwCRTpPGOHYDXTCun+ZM2ic/ZAN3YHIKqigSRsYtu/qWyyZm+BVR1UGVw9tCHbDCTbcO6mVkoK31tpx+eEy6ysHHRCIQj9/a3+dm85XhX7sFZcLnm9qltO88n6r9wqCjxARlrYiT7NxkDJ2c0L+6GU1pRPwPMN55V12MsnBKI8aknvJGMhDO9bboe+uvaGRit8uRzNoePJ0ry6JyIhXlwd4c703c4sAVoLa5+MpkhLBbPNw49cN6vyzHIFe8jzMMYG3MFElqY2H5YWYzddoRpIzIOwyOWCRADgXRuSeTeMhm86RJaDGS/pFpIOXyNTLuzdJMx4WUY9NFnh5S6BB54RF7B3Top1z1X8sl3Hkemom1SUHYO/qmT0aS9PkF7p7+CjH612M9R8KCNKLQHo9lQ+eF7672DcGnuRHRyIPmeJlCpqQE6lwSnxUfJLhWUDK/WfvMtn3xY6L++7IhtzmOMgsso99L0vDGMJ5RGx9YeCvMHKT7VOOSbPH3XMVrryLe0E0m95xaH79vQR/wxPK5c1nwR58EfFwH0zRkf567BU7N352NlUG7CFlBHRIbjUIrFKrnITRvXhSvoieAJViIF9jTevJZm2Xzov8POcw1pQ5fdTHM9s5NSbuqYVOm1nNKuVCNUIGHImUhHCd3radIxBR+ekhVIWUIjki0D2Dc7XfhSiAtb3gnPOc0gAP1fN8Lzt97EcMJ8SRW18NnCgy01L6Gnlii/qEQ+Kbk7aZwRa0nJJ0+rZu7qiDdYSLCk3MbiHiNgSTyIjiFfScmHaJItZAYfhnxBGRBZhyIrEuLOd0a7+VfgGBT641xYfyMKXPkhYuN0ulfIoY5Rl5HsHAk8g3jBmmPux3wN4N0zRkF6JzJVSHeU+4nnh+GOkxf/iXAVyzICnOreTLbIHHpA5oNubdRIRetGTNMxHk7EIryhmEbth/xgUlkYkwY6Q0NAsBVhJL0SyklmHO070FYymGn/wK6XWYSwSMtaIo7wUZfhtOXiB4SjbpkkeDjonQyu/EgqFlPOsXMwQo1UKUJve6TjkEgvSdBbOdsimHN1pCnYsKwx7MCyR2PgSdeOq9gESUma7rIqCJoednDukEZWURnnqbNXTs2QyJ86e/7t74pQaIzaB9DvYJk8Mi2Rt/Jzl3H8gyk6a+bBalMgED65rNnbWphXYU6PSOecVVT9l/C2r6MkmciEmgItZkkpp+aZPGGkaNPmPUVxekOwzAMyxrukTaTghiH6eveIbzRO7i1i9ZJNkdjLo+DaHPKnn7CRD6npBEWSHz0DGHPa5/Za9YbAfcdws8HVUxK6QqHqgmcnQa0+dBy5zkV3YZldemtP51+HZ9pU4yLx7PhlEiYkmwOlyPgch7qrpvbWMZxPcnSe4A0BTqlV/Hjbi6dJ4yVEc7Y07i7Nidxtd5b3hK2PEO2vaiKXT1I9L3ltu0jXBI4Lblcb2QIvYIxi+zT8VoVnWkdc3BOoed+Uwi3gbgn8LEwKhWh+5A+O2agj1LfRp6H8i5z5MrKAC1M5QDkV4vkZrYMjqPbMFoW8Nk2jVOoBXhWu9XuLTr+s6FjI/ro/Lgy3hFJcfqULsminzPJEo4CR/ILwhOcNT3ngN0PKi58a9D60fZEFXEHEfWuoTLGW3i8HLvJ2QETqQWAiIYiQl5teCyaHdkYoowPEQ0hl8A05m7FL0P33pKqrQN3WMCI+slVimc0AYcCV7cCnUasYont0IsOmBV8M0yQ0NtZuYNRPEVXSqnOrIeIg0EC0e+rwGIroEmcbKy/2YD5s+2AMOwV6dikczavVue6orbbMXjGvImh7WhBCgBIi6aVjlQ+dZ9QM5izk3MuBGutIlD763ukZXqi+qBTiBsVDSQ2+eNXBT43CtSq7MA+0nzUT5jLxl9P5U5zG9y6gKdZtXh4x1vPtk6crgJ7oHbGdQkCXZIwZeW2K/0+mObJYz2zywvj/jOdyRKH+OSGxDhxnbh0gYxPPukJKZ4ON7aKk9/spjmxmF/wukxWizr0nObiUvkfFMYohvDqc0pfXcoMAwgNl1yh8TYE5yQboUOhBQ/tj/8bo9AmHNMWKIxazZF0FCF1vt5MdW0KVJzIXRnps5HfJpLxuH/bqxSmeUswiundKmGVgKBT1rBUCCawv4ScOlIQOlKkwq2GtkpI5bY8My0qtV4aKeL2VKM3RPy2HVUguvzku28JT0e7ltrNVB8zhbXa9ajsc1BuIJu+Kmkt/pe/IJ+W+Hh27GSwgDRQSpSkWiYQGQPHYeOX7P16bAAJIsAAqwlrdnOfZZ5H+ywqojr5Jbgj1DNPeVjsLthv8LYOZmmClvhIwW+hCzz2ioeJrCfDU79+x8a3008qMvO7XYxttEkPG+Dh8vrglyaTHiOiif9taWPBGNX36oweGle0U/yS4ncLdAb7FZmqvFwv6CAZI5G2CcQbyqVBeQ1Be+gE65dVgwj9trLP0GejM3DcOdqvPFRZFa1BR/VIkg+ZM2vLRmP6r1ObZELW2aE3yigAOCE52t6sT0FaYdqYpakz8Q0+gKsm+wBsrGf+KeGDSpQgnJ/ROaK2m9VHgHKhfZV9q9CkdHF5/8yv1hrUA3azTquqwTAMw5jIzjERGbSMmd5DwqFao7LAzX1P9tUKJLRuarN56woPYVu0YMNLFPOVfIfOOwDuoga4nXDMcs7NQrvwoxeaMclCreIsVJWEUmsu3Mjbo+vvlScVlD0nsEt2BGfurFB94IF4jwpEMh2u5Pqy4YjiQome8YCtS/R7E/mVS4gAK/l+H+sKhferrlrkjHH/QpGDA3KYJ9mjQjz8OwaMQkdsWZkTTc98gTz0AjPZkJiKB4a/9MNp8BDT7RsnxAq+5eDRMawYsKo19pJfrUYfNPkC3CnoMS+c0k1V0oi1MSheB1XcUqP7srsTT2mxoNldD8mycD5o9uvqrtAecS59cT8KkhV2PUeydEUu/k++XRTtMw5osfuwiBS3EJdClMNxiKHKCPhkqtdvovAx1CYHTa2yx1SpUTlzry2MS4DFLlUkc93SJ7syfqL3guXA5AATfrR7uEfAi2aN6hlRA1u2uXIycCc9FeaROW3f2QaFvCamH69T3N+RO1yN0aULvGJS0Xx0qYiEEHoBVgfQiZepqIGSXfnUocoC4Z3waqwlkvhpl71CdlNMKtMDzriFMDSDKxgHzBZwYzvcPnmBUvbKyQdS/4ZSwRlwANxyGHNlhobLzwCiRW796mGtSwVmCNyjvFiVmqGw0URYfqbj9LaEm5iqvMeOTWrhm7kRXeUecMYYk5uVhBZ13ZAH8GLnNBaAWRz/P2X0DOC/Ol9WIPLxPljCMpEP1eAWHs2bfiS125CV3+lA73cWunZ9thMkXGTV/lysTb+07oIqfowgsbJjDOoskwHtSSD2yb0qiZcZXgBCvzK2CTaU/qk9IlCsGLu3FDjODC3frdP1FvZ1bYIQiCQijCFhgV5nY3X1n1mVASDkDxcloc+kXUOdDKNVqJv0n/DSHZNItsJ7npC0xx4dGrKa20G8bS2muBVW7sfuMkAtD8RHMI/qL9Tdnr3DyEhGbYRjzQH/Fz6ExkGUFBKszGwabX44KPbULlXUrFCuoH+xI7vGy+dJbkqnzfwfgjMHzowb4Jbgew4czmm4kmrW5M88MY3bGaRq/RGdFr4J34x2L98qaO8xUY2tgc2aiAMrNORklAhPiE7BRhrpSUO1lRl8pPZOWXvYW2EOYmXJbffAVzbKntOQpjfDIHR50L9Lp6Tqxt8PnjRX9sgL7yLnx4bG57eSNQVJQEhsJfOxHrYb72DbFF8dt/yNO233eK3aSVXWdXmvsu6vduQENL4bckiK/K4fuBtEioRxNDg+gK6FswIa/zv/1m43TC04Et+b7hSUB+PvIJ06MTt6pv6JhvLmbR799fKk2fHQ9IZRpB9S08HkWXtsRLB36l+8VAz5BHUnQTUAU9zlWkU7eJpqBzAMwzBSON96p3/MtJEbAAtjFScL9VEmhqIivav5gME4emu6L3YDpdSR39wRxbaPHF86GHknmmS38pc02IQt20cqHUshTxhavIgq5QCzjO2CrjzyXe9ZLaeQoRRzMOUUaRYycI5ukAgeSp6EA84nk7RfvfzvyvWo1e0cLx3GKFdNA+y/1kRUZ0l6OFvP7jBK9WV+6+jPW5Nq3VHiJLZ4PdqlJLdTBGH8XkYDYP8/tRhoJQmWv2FomQQNmpABu9ywjC11s1OGV49QsxmcmvlwVWF3ensx4HN2LNdZycBuz4ASbEEqBWtk0fdFkIwr0NTfMktBTV/z0ziO5vWg49BAq2w8nIjqmdhE058rUxqljS7JuP1oEvBEr+2WINckISSGIUEz18R7EctWml7aDNkmFfpKPD+n3DQyvvIdqFfIqZSU1fEPqr9I9xbfLLOSaCx6n9Jpe7sqD0LgCwRSfkl/nYUDNF8OtjhMhLwX8KyapfDskx3mxdZ0OVupiEHdDckI4TNgMVlI5kyLpdgf4JJh52uh27i687JgY6BEa8r7blNZfqC4DnR5c7lTEU+wwxVcfVxQ/xQldvvG8DT2nIdVKSb419jIjb+Y7YtIgzyxYnfzrJswOuwj38YCD4YCNk5WjxRYp+9tfptvjjmKIsxeAdycUxOeyFZilO503XTU9sS8QZ7jfManPIY5CwRCHUrVD+acQCbNKLX0PhO+rjQLYRWmV5Fe9wKh5MRwPjT98kb8xnMJMOMT9stPz7YNfK79Bq+WyNyFJIFMcGvBEHsDCe+giSi9FgkpoVU6tk8smo4fq3+1i+kbrjwGw4KlNqaDuMkiEdHogGsDEI8rXVK30ONOkGYQ3NRnDfen2OHAhaAj7fXNzJnABFfnKDFSRyn57xC9XHcKHSU/2wJl0rEqvk07Mt1OnTyOBJoTAe2hoXJslPmzUoLfbK2uJFVkCWFFYf/l4AxbB+zcKgnugCloNjZyOL1n4zDx2oAbaRfrrRbU0lGZG7t4kpDEgO81asStKLIXbpaTpVIFYaqDXxCCjKWiiOvgAMmrySK7MAUkGE3Xvb739PeaKHKIYlHsIGfB196jlNvmgaiYA0+pFgU2dunrhIdcTqFXVwmzWPZyEWG+b+l9tm7QpAlBPNmP0TSJRZar3GCvjcTiTUfVqE48HlKeIDXTKyQ+GWwHob8HsJoohjkxGMVezue7pZbzH5HHLuR0UkbO9i6VPMit/zfxtHh0uX6v9fFztceazF3+LNWNxIDbVODpEKrMgSx8egXuZ61vOrWH+iI9dqATdXj57I82x7LMFOJ791bQYC4vdh3uqdinyuvheAGUjSDANA1R6crE9PzybvGyFyT5OFFOIqINwzAMi7I/F5EN3urqoAb5IueFkxbSDvXA2K9+VKVq1PPnpRjzXFya38DVUI20nnbMhPjcCRzxR+Nkc7I4B8qpUJ4vO2Q701C3hRdBJ9yDXEnnHtQRWuLWDcF66Da0Jb6veUxiOmREz4CRjlfLOn7VEzDhaydPeiD1YtuRZXIMClsI1nzCuwoiGSaCPCxT+Rb9w+OmqLOmK0MNIoJZoJ3RAZ9ZTzi7luTmRX5ldtz2yBhne2BQXMdyXMANam+0QEdenhra66INQ3xm6TY66CRu0p62B4e7LSgUQIzphN1ZYGuMhs0jJXZML/Hm9B3OvaocfddKmWTC4z6RUG5kOuk+jKCC5DDl+bJr7yn6f8MusxW5JHZOhpwuUN+ANxJ6HxhoI3+ZYjP2AI3NtPSXYE1sC2YNQnISROupOORqPSXww2bI6dLseySRJqY+n1CTwvjTI40VlDNZSDZNDz11YL9iOR7mLAl7vQbKBVzWTl1JSyUnVKJvnOnBZEDo/wO0a6QB8iVhQ5yhbC3kw5SmRxqWqqFEyNplF8KE774S6sO3TzrIvGa9eyH1d6ZYKyETh0GCI+ix8TMvOm7NasQ0ZNbG6LCxQKmPym47pgssr/IcJ4VIB6see7e5haeno/6TPMwwWQEOtiLFlBwmlyhHHW+6mx4/FOu7YzZ5Rcf8zVzTd5J5xyvqBh5kwp+XYpS67E3XHrr/VEJzdbPmMYmxXYiL3SfP4Y2SQ7YMfGY9TmTjtuAMaXO4oYI4pDEaNtdOVR01Yw+QJ3Oa7cmN/GXSID03iSZjWTZSOH/veJizeGVPPoOnk5fL7GsA4yDzmqU0rP32hKMIYN0XiItkBTgI9/RnHMGbvSyl5Nd9nzyHa6Og6kH5OVNZRoVIAZ5OXnq6gnh0Y2r0dnPtaZiNqdGDIFQTXycWyG9SXYe+ePUXLWU5jn+I9Pf6OzXvMua01gRT35nHY5R4RHJQwSuNEl1hIKodKF79BRw7pGvcBUWrWhzIIjxnDa5k7Py/cCApoUc0ccnpOTw7fySgMpXR1s+Meg7PVnBOthIPhtioIqdYIDJi4Y85rTWXhlWtSx7edfF6kluq7vXrPcI5Ztbmf5/PnaOfJEG0HlCl3zlTXx5gUyOLeTU5Fv11hqvjeR9y3Up6KZdYo0RXDvLI+qRNQn6twHLwZ6cpCQKSdmWRuIO0EeUGLS7M3lVmYUIXbrGKGViO9T9bOauT7CRsjnrRKPs+fpX0dUHRqiFlmqECX3NIgiL8/Wz5dwU0Qc5HKB8HDRp6DBI5QlPtr12HpgWk5RucBy1ERkB8Iv5lIQ2wX4Xf0CNRBR5ISuiH23p7W2bswWkTtY+6o999zfMK0UZNXEsfxJEYxDAMw0ju8Tq+giSLsuuhzafSL7IyjNJCGEVbJfmQFL1Un3ZN7z77qQIXuHSXDSHFdZwBZZwZDvgpwesJIU/sb3uH4gWhnSovi9Ey7ycVzQ4dccFwgJ5VEshqB8NPxLdqxkl4m04Pt0o6cwLntZrHleFzWcY1feTsHzg+WP/hYs1rJKiaZsxv3K+kKik6sZaI/BKWNBG27eCUXTWfn725OsYhcm2DK83AeWfUs5QzT2f+8GYE1mjjfnNPoeqsUlgSWrt9/r8jJB8X/ISyDGVI8Fzf/tOE8j57psqqCA9M1ZhsVd/2YbUKQqjZXFX+95F/+1PoDGZXq9yDLEoonKDdQlHyaLPV2NWDz/kfIiOwU7yrE3aNZPL7yaydvTQkhSGFgi1GYCr5DfnMFq0Y5fdpbsXGw3BBHBtBewGTppeA6H/7Rsah1y/SE3YKBMKrFPFrXcF467zUtwrV3wKnDgPH5ReTHsfSieMtzIR6XEUBIMxvYgljY4uekap8+yA91DvpOYLRNddWmuFjrXNeaEF8OzCpdC1vp82A8q/U02r7TycaNGAZANk0f82vxutJoh7Tr3qct0OiERL3Cbjd3KVxueg/jdN9Mnh6UXLuCbGsspnB6d+26nkK8ldRXBUSC5C/POO3DYA3yt107Azxb3wEQzfYggDr5rLk9d6ii21aOVr+xU/C0U3aoHF5THwud31YW5MwbLu3e/ATmtoUDD0NYVDw4jnAyiqPzuYyzyJyyTZqgcBQZelVIq0OB7/5k7eK+zrJkmXiRkaQiRJqm+XmnIoebMvNg9QjNUsfUtgNU6D5lDCs1jS/6HcE3g2qBge0XNJGEL0WCIUAyK24jyBpHu5NRRF5UfRZVxglvrfefmvHulcV6hdCdwAilOeAKGkdPqF93tZUIC+iv4SSaVJI0DG7/uPutT6b87SqOGsp0KiXL+57T6MriMO3bVgHuIDxxWzRRU25moG5VnM+sbd8C+rsMxx8IIu1UGlD8rG/iBZQ+2C562Y0D1dDxpuTWR5zrQNnaUGXPPHgbJzF38CYZ+544nl7ZirPVS4yr7T6yXaO0cdBklnSIxtuAL5cY/FLOPt4y9WjtzJwiAMHayTHxTZ+L8p409Mi8fNbVW5tFKFWGDDsTfm/mMGI2k0Fjgd0q2IBFQf2CoTzHetp2P3sH+gJogm/F12wUl9A57Ibn0IiDlDAK6eFduZC5+Zz6C8cRQh9vijPIG9OM4TS4tpIsI9bieMKQHlaNAzuOd3Jsqmgrt8Wv0MK0j42WiXnPJGfEdyWRPNZ7YBcpjU/BQ65ChQmM1zRrIt1y+FDQkYgjFbnO2ZkLNbjDpGjoZpgqVhyhnEZ8S6uVlPKAv685as2/DEMwzCMzGV9wbemezFDBkROoW7mI32UvrMKTB1NaItLYAmwhPG0QPYPErdlYoQV2HLujqdMnwywoc0dpHHwK9vuMy0oU+LGKMuEisot3sjekOvPdUgX3E5vt6OUkmZ5DAt9/H2sjU425R5eNgmyaQxuQEWtE4A904t7Z1VtSeAChPlB3lgJdcD/rQ4LRnBgh9uQf9k8IbXMQT386tmO6qR+Wolwg84yfJvlzpu9k2yO8IYkIBhqHB6/7mfA8guOXKrSPQ5ctPZEMZO/DKgdnH+e2fnB0y1cSSpWliqdMFBvsFW6s2jkXsnfTCVCstjN+uqxUNDc95eHcdFFl+l/1e0xl/UF+0ZWjRYvnu6zXhj4iA5fUJSjaGuoE1OxCsPpKdbLXFQyrZ8DTfNOE9UG3SnxxJSaizkt4VeN13zzLX03fNwc8eQxLrQIhQEnfgErv2ZkJOXSipLiuRihwmW1gZmRdtdP2+duACbetacTvz6hOK5nHaSSR2NI0jHkOmPSZHpmrSvCEC5uqQcvbXmrCFcBWCXga8nMrPvihg4DkqBZKL3qlrhP/uxQyPh3KjSdzzoF9LkCY0eyyXlVsjnYZcih/2YiGxqPOodoRNljhsLN6AMGZwT9tl0wS4mW6t4zGUaXghPi0QQ0naYXIkWaJx8hug++W2j1wccTLUYjcOoI2pruxWB2+Z6A9v4A2RdEnOL998dWDSDRPV5S8eHyYrIVNXl9f+EcY5OaVoUX3NCSvOiAPhAVokDAtZvLvmXhR4OuhVH270JHDYzIV4FwIG31kgncTyLykgMpKTh3W+xz/DPWqFCHxtcgJ9he/rpj4dLMyI52rGuEjfZpTNADCP7liMURn1x9GSP3p/LnAWD/XBV1RKGkVXc0CiulXpjQPcLIYSBmtqYXGJB0h8Ae8jUl262M7y4G9kNA+mSnMkgjKsY35rzqF6hUnmkzKUsCqz5jGf2GFdr2zUKY1j2svIzFae5Er/VUVH/GSL7HoAu1bLhMCf1JejoUyEDvbjH7cA4ZEDkqe4Jy5WmQcg3AsEhpNtnrF6eit4+evlGr3zRGVN9Gjc0zcf74gwl4VgLz1E56eKvqiLKulRv5qU237dYJopo+Z3gwJfcN2sYLaHfIpDUqenSQjiLYIHiJprydBTf4OnSKmvA7wMg7PzXln0GJ5/+iJwZZ2rdvkVhLHhYNsmIn12wcR4zEOrEGsa8Sie/XidUatQrDdebE4+0aKqlZ/TZuNxnAca9yGJZbhNqQ1ADcLCz+ylOESYHZ1t1rVZ6F+0O6I0lVhThaBZyYbna5biLP9/OkQB7BYCc7p6dhRMKfulxtqMRk69NNhg/p894moZ06VGCKBUYjmd1rA5EOwzAMh91SOW7NrHSvBu8AYSdrGZs0+RhduMf0V8J/h7+5s5AopPjYet8VO8CPJDPBHt1k/2VnX2ImjRpw2wti6khhVRNa8AD34syvy+12+6LozXxSLa8EDBdNy/8FfqtrdNYocwpuE9qEhwJYkUAqlv1AMy+zZTs7Lynao1RDrS68dtttZ33ioVlIBR9LwUAc7VjSFJMiZbTh/GA9Oo5YObZL7aL+3pwGYPvwihpfAxKX47SjmpSAyZBlYwKiBGY2swOaqIw4KESd8miXVoUQDXoRiLxgoAx0yKwofIIGk5gp6PgL1J/fVY9tL6rfCi76TrvvwDkeSwm2Zw9bqxB2lYtiQytEA0a8UA56pi517Ytybmfbr20MANRP3bKH2bQi0RSmPslshdLahEXBE6L/7z5XJWYxwWDyresPyZdQu38PZC+z9WZG2bJGsSJ51/iCe092TEEg4JBT6tRjnpnvYV1eaZ5NyGia95BUUvBK1zfl9Uj9OMMotUNz5w4IVtP8MdGPxU8rOw0eBXbc5EcWArkSG/B2Ixsubm4mMFEFQICrXpNCcl3KGExvOZNc+TCz/Hj6rfocWCHgxBiSKeJwuNsEV0CYLQOFgGRsiXcN/eEihH7w3wYaboU2zdBXl6gZoXeyEZkAFbGKygD6A6g41BIuNUxhiDnJ3cAE9cc6r5HhhFhwPEIhLgcy8YDAk8KRQirRn7VQon68vuIoZ/WLspApGQyijB+JPoQjRUS8QKwYpTYv9edXYraHoJz+NuU5zGCZI4JKzorQsOoECPvD8ilz/ncr5o5rs99z04z0UFa2r3oUq+wd6YGOzGSDOK11FcXta2v9iMcpEI1A0FO1ambvINJlCSRW2UEJXqN7vj/NZAXzBhN+uTBCnkL6095KXxvV8iRwZitnjifpus2NI99ZRt+PzCIaAuV9EnLM6Muxak1bbGk1gFZY4vJU3Zaq4iAFtO06sVjs4LoLN5adnbxTCifywgqybu83qRXUlIeE/yoXlYxDTe/+tLquWP1yapJNblHJ2KOCM/WRjzlVj+vo6DqpUZmiMR3lvk9nBh7gLBHOKS7Jk1IM3i3Bu7L/lwc5Iah/no+rlpoedoEjM4X6lM5XX4HKWxauAmFuim5+cv2tpHnZwdtAKl6YxSqW3Qxxmsd24nvVmIK1GNprezRN0sI83rpGpv/bCpjEbMMzzVoSyasjTJXL9L/GfsHjUMIT2C65oFGvU+HCtVSJ4H/IHG9oYR37zC3hw9ZHgs/aDDScE05VgCx8ovft6+ZLOolbASCzzOkSWOmq71/BoLKK/Bx5P42ZYXrxkR8eVjm0Anj2eUUeuiJgzgdR5a7H92wuDfEGTqT72I4mBv5K+tVAACffwyyHGoR3MvAjDAzNUAIQQG81tHEJ5DEYUfTrAPdnazCNBEvImpT8tqewXzI8cfDEwWu2/tJPf1ixp9+5vzPwg19PHj87umDRD6z5OvrBD6xHFxaDWYDJ/57a653bXJINl/UDfYUBx/3X/U+24DvjJ1D2jz87hl0+/uS4zE/8DeY+n/D9axX9GvTo95RXHqQb5ogibcBpTQR2abKXo+IwS6Nu1DpxRyEIZyEIhx1huQxD4CQhHHfG538Av2+yLQAaa0AF8B8OiAGGGgUEKwxnR2TO/ju8RHDFiGb277l2BImU4SA5cP7ORyg0jHLrsjcrE9maSgwcpAYejteWyaJKJKgrFUhsmBTuyko39JhIs6qcEKShFenKN5dlInakbSX1Cg1/pdblh1GZyNRU7tCDm4Ynvrb8sasSyerKJ1RsuFG7KzIaG6qJFKvKHkYaSoGunB2WibgzHciyn+kdm5mDx06mv4KlqTwATgZI6pra/11NfQVRXXkBiw23Snel0w8tEulWlQuSNGzFunLrtkz8/0JGheTExhtwYMiqoswRjDawHiijK/4xNOX/Css41GAuGt1Ic2nN08bRhPLZpiqdEdbFE0ld/hAp4yBi8d2lKf1RuYvDDvblTDt0X8q82uI31ar8I1XFwUnx06guvQl1cUyxfO+0LN2j3RV3+JEW5Wf+0EWcXyj+2q1Kv3LrODIp79ZMYrugYp9ji81Si68AHi+7t0GWtZvycYmqUxyBWJlwQ70sMlLZsCyLwD2DJYXY0kDKW9pfknNdBgvyvMjyIx2Pd5So2DYcKGYQK0EY6uVoRyqNteVAD9wZjoxe2dIUfpUs17QK9n7+Yh/x47DqPOgPX9sordC5eKJ8aV/M+vs5vR4MhIXwXht/7/9/Ifhz5u8Zc4tUL9a1vxuqg7rBO2oOvl8IQ1fpH2eBbeMZZn5RKC7X7f/+9+IoEg4V+0En5BhM11iMNZsLzOnNVDlW91UDL6wW4KSbEU7yI8r8kIP1JH0aCstxF47j+sfrESr57uifbjbLD/eVqO7hJybC6Lqv3pbwOuLa7SFU+j2jf9h2nHlDuKa9Yw/HuxLUFgLSLnPvhYTMEkovczgYgY6SQfoQJ1wfnO5hkhBlh/3YCubP/zQt5FmCLW12nMP/NHp0UBADLiRHGchhY1Jmh8+xzhJQ5tgGuaK0OOYYsG6BKwMAGAToNduYtgA2oIZDPpLx8QVuCjzQplOaA/fmwsJFaCmzdYTdMaHKj/CfCd2wR1HyPO3tbgHoRNbPhoYY2j4CSG1PYGxxdVTkakKJq8APuzEB8XfRI4FHSI/kyWBHpEABG5ANv+bIToCw+WhfR+a3CMs2mNkSDS2rZN/cx7/D98+u66FvfaMGR7PTc+UPbshyqO+fYUh7GIID8BtGsGQPE1IA7jDUw5JtTCPJYB9SvtZ0u+oc2UjTxokP4zHZMgKTBYZxA0m5pm9V+MQ6zgXWXjATnE4OSR6EOj1s/UZmmTXdZlKobnYO0a7zchqlq+BK5OyVtqdHStHtZfNl4Z2HezjWxm37UDIXm8Y5p/XfgKi16tHF+nBD4PT0EiEuvhtn05DQnQkNTnIQjXOH7f2Rp6T1zfI8mEOrc+dkVNQEo1X+Gvy464Jc97vO/Q96cO3WPuDMar3molWNOvQ1q7OdM4VjJXmbtWTm0/bwoKFvfxTdZ+u8md1dIC2AZx/AGTLDwvksFTMpWJ2tApsKxaQzt/XYVKcY8KevZrApq8FbJzeoZ0M5UutJy97vIaCeLHhfenOF/5uro7K98d5rIPFrfHh+u+2zOtqufZL4FivR5ZfW/U2OPJmy9NYuK1XLQOmln64Uq9HWspto8iNq8r2/Xeuji2ir6Smb1lUDqO7TT/Bq59OKfrCulwGim9yJuvwRdZb94w55Fs3yIpv7L6m5v/1y89yJd2/QBtjwEf0/xsoA8hlNwXE5gAZARkGwPQczYF43gKlYPSDkDILUubEMvwJrswxgXQCamlKHno1GwSEJRI/xokXvzT4zOKSFOL+iiGRusMZ1wJXWhYQ5YDUQSP4XiNBHs89OmB5iX93oIWz03qsZ1wqCIaVwt4XeBZRS66o/ZpFXQZGKa3OiZv4b/yz3+SQosudmuRXMrF/e3Z9vA6R/pfyvgOFdxBllHKG7lhp294Z8veS8UW1qZtj947eHw+lbRb7Q3Uz5fFA+5SXnF91NTLJ7kuQkS9LR3SzeKZ94i8r8u+S8iPaJsnL325SnS853cbeXTbkWTWkuOT8fF2Xd7k6X37IuS3G3EM13z+b5fMn5K1rkTjYXyg/an0FwUGxJmTgOK9BUokZN6pGqJyLvVHEQdWB4CwolVDw1jAyehMQZxU6UxYUfBIYDoKQCF38Q6tKlir0ot6w+Aw0ltF3ThpGpp5bgCGhJ2Tr4byiWWKEhTUjDQJZaF41ACrBiAeKaFXul9KgyHaPgJx6tgfnq+6414nEJMIxOfioUZmzDs61VdrBhDtqm3FdEJz4AyvaZnizA3D00ZnENTv+MSAGNaPffKf/BkipP6OGagXoJzn4X7JlQOhh6t1bRNSzjWB5Mv0aN1xja//H/i4r6GVHTeok0Ng6WlMHZrSztGmkCjfKZ2Z/tlXsbgwpM9+w+dUMmsKox7Adekh3GMPL6mj743985ILYr+emsv+9+/NF8bmtep+A0GXMlGEYOf5ZOub9AylO6C7cfHK8/0zrnZUxfCumGx1UZQz+n9XByVbxd2vHmDQmHu3T4qPrbVVFHEeM/k4bW1e2p6bm7C3OS1/3hkK3vm0Tz47+hlqS92fi6OGUv+cn/2Wb8r2vjMh2me37crMEpTsbFyQOIv3i3++wDZMHgZNj1VqC/KWF1qKjK08UFKBljfatQh/S0Et8x6kbhpt0wxFzD/i6P946hYf8op5YoM30bf8Qn4rHcu+xQvoS2fe/zJyvUY3iaQaWXRlhIIWJq7Xb0OR1pTaneJosEAcIbVbDNhQb1vgvFnup5+0zpbXK2Gd+rk01ziSGWNVflcCA/dJkDfK3kMKen4Ck1XlPwNcJ/goo+VHJWbKk7gnmZZ2pF6AXmKdVUDMs5N5mCkNBcRyMx7IAOU3Z9pU2Wp5DP98VVr66QLnd1MEQoOCAtsivEQt/6KTuUtlEYWp7n48Lr7IxHTq8sYN3Lj6YVAuTlQCJr3VtOUtPjHPr/C/K5ZF1ZBds4ejMVvx5XBtCiUkXlSVSfJsVD+e8iKvijIGmZp0d68kr0IA6zW7ecUNrQvU35K0KyMTh/knsqazVBwJFEv6a2/Rt9+1d9B+jVpGVmyjL9py/MGQ9NLWnHSsZcNqHgAh6R8/93SAh0cTXIOdVjQ1DKTrrivO/4O1+Zh3sFHh+1HocVc9n/XRhFXWBbl5xUgMqGLAL1YmQTvXwphaVpuMwbLqOd3DnBy8E+h5B93WMTPQnpXva0HlYXjDrZcgF5lYJWN90ZIRNwRG821hVSSS8s1zGcPn95DkfuVbSb4v6ibpo7mNtdgUDEUELd28IIBYvPbeTGqthtDvrQQr6ppfWScmGyIvK74MpfaFjVvfmxlHxtHYWQvz5a/DLcSVPbSTu5itlqHlbiVBtiKbzFouUJUnyeaivG1JJWJ4U9kUfOcnBICSteyZVFJy6RWs6mp24K/VivPVLwU0kqOWHwhpp0RU+lAMHA2HLHwRdyLsOj5kzU2GcobRbzYWgYN7lek+fpKCGGxSkMRwqxXNyIAh0itgx7lCNL0CRvqXOxDvnQC5m93L/hPIPdgF3qaXFRotSiit7oXU4IZ1IE7Bkw8Pplkai2bBpc8eri2tncSpE3o/attlL6IXo/kF+s3DFQ8dRFgU965hUuU/8EHQpLlaP3GoB62Qu0UhnUyGcAFa2ufEvORsJ+OSE3gVmXdWwmFkehGzxnSFBoa10sat/VFaFyn08MkHJY5KKdyWl4tzLY9tXsjfPXUNNmzQX7JneOmPPs2Tr8+XqoeyM2VpjJFW1d91L5Pg8bFnpapK7+shDIYlpO9qwk6cpuseHSbR/ydOUKVafuLf8A1YL9BQx77mxdeBxXbt+INsW/1hDDnThcsSGz9M7r+wgwFa/Er4RWhnJ5jhzQuuEZdIL/6FJ7p7YX3XT3zG94V5JbVxEKjLOXwyf8ikppWv3qUflj2OUz5E2jpHW8vSw6TBdv/QjPZbYZ7t46bNfnJtEADXT4c2B43UncjrSoV+T6GS+I8ikb/4ZXU0xhU5C40YVi+CcV/ykec1llfUhtYbDLKK2s/EoF/lebNzi2Yi43DapbTw7Qr/PEKBx3dFdnfgb1jv7A6zCCrHwZcq7TPX7wkdJP4vP/qw4shz2sXrtuZADGUbASvce65gv8+7h5wXNQXENNJQP6dLapFrKLp0z7Cid8bgPonzQgLFeQRkR9YUsErvWUk9g0EoFtNy+3HnsR+1ImF2J82b0PDXGjrpV3CEnLNvv1IrYDA+3yy7/+vtG1xDjhUZmnpmQ7r3mgA/JroAh4+KaeCf51kdpr7pVIPL1NHyHUN0aKHILH457iGPqPQMvua311S6Rc3coILXCnHwOGZEl2LR7EmIErAbWAo1mxhY/iX1qIogey5yk9pih+4IigeVuqEmxv4fUanXrj67nEZzc4ECqYeFA216XJMyen7IpaEvkrSpdxxRwYEZHE/qRC1KLyrrFLgA/q5q/HD/R+Oo9IECdV+epIYjqhge6EPzbCoywVO3oNxlafgvGx0g6BPlEsA5JekcID8s9eQUSL6A4Pl8Ki+vI/zeWhWosiTKciEV8H0Xp9jBCd6SDlZ3laNRGhcTE8UqV8dhXYVyUCrbn7V3yUUhLIsTNC+z2jGouY4959RuINralK5lhrSsGijrLFrTJa3QqJc9ZCFqNyjzqF8/lszKoSjk1WDFPsUexgWIr3SrwHPELAtMrXVMSHh0X/B5LYnfgAAhMhPXyANw/N8GtLGE27kAuTFIgQQ4DYVzlYNuYvlAhvt038yYHv5WCIrbD5Y6diI+8hmUAFXfPHyRzh4I1/658j9uXtqdyWNSyWdvB6av/7fz2zwTxp3as8taShN04sZjnqOAlxc97quDGzaOao4+dUJt7LIZ4bfsVmR405WpvlXO1dV6zMkivCc5DSfkK3MGPKnLH0WuYfBPuBBs3fh7ukJ4wPbi10F1E1Vuorgz+mp8/6pL04EGTP4aeQYEvIjKKZDfcTRe2/5ncUp3+fWbUgQYqsQLpwykq+vQKTYoo82+920BS7+5IWunpgumiYYeb2X9t4R7G+EUa5FZu0J0Q/rs3ynmu9xewZpsG7IW68Ng15Qjfa9eOr5zuRsgboyY+2IAiqsjsGxYG8yNtiFxCR8pa44MZb4uuH75WHn9qPTnzb7iMTBWscw4vtA0+PHx0oDHVPJ/cfKox1FVyDnUhoC9qK2P2Am/TOmmYZmZShQfe51SAF0z/BiaJANa8oRXmkT7VldL5bdEppfhWCf04G0coVAsttsABComX2RtcsEBel8gIEJ9nV3SxpD04L0WgNjR3GGHqfXn4Q7I4X8cwT7A4m67HzcxoMQ8J7T7z98KxbTWiGl3OwVMHRqtd3zW5neHf1COxe6opbcAL6tD5Pg6hFXca7gq72l/SwcbonU0ISvbos48SSnlpFgR/lbd+y2Yeylnd5fOyrovWK1P3e5Wwa05roYqIR3E2Gy0ZkUAvc8Q0KBge5x/i62NaSItp+tP5k3M148pM1hc33XrniHj4zYr4jnIBIHYGujJk8HX7GKYXgtOcwesat7eQrzisqjrAmxCCOPOHXFoceyM1vZUUXY7+VDq2ZlhyIympySuF4Cq/H0OobsAe7jtvM8FnlupbagfuYjRkeoIH6ISNtgjWwQzS1CgNFmJn2UvGDeK9roguKQU5hbvpaIiJ3SJ0QrOQn6XSqq9eBGfJQ5MliL67+nkISQm9+90DIf5WkeO1ab5pnRYg3aqcJi9FXfUvid0aC6f9gFuVRhtYXm6vbmbyX6SGOMZZJw1xEj4JKJFr84DJs1JYs5MiJy9859c5Ooy9QVcVYaBUNv2BS19Bg/6tCM2vbTl53rynFidU/8MLx8ShCFekDAsNFRjpyF23O7H6FUSsDrlCut+pN/nj9s1c1rM05gBVI7gA0Kl7drL0X2EiGutJmZGIKRZ7EmGzMiSMzVkjFfabN3fhzN4EOz5Uy4SFEIHf71c3zzpqOCMDoC+LwD+b+7PN6MS6r9th46kcmtpCEK0Ju6aILe2GgS+N5TlKPyjwNTlwy/AirjGnBW74Z6guLcvo7oyjXUCucZLJKGW3bCo2d6245yK9ztrIB3tAGC7t7zWbiB3a6QUH4IG2Q0lkQxxbL7w4vitZgIYkJme0XsN8YFJiui5faUotlBUNx5T8b/dRc2sAn6VsGXYt36h/bybpDG1mtg7Y8hnSMB6snQ58UwgxyykgeoG3KFDWVAFbdxZ2FGWKwYN0abEXyJ8+tdZTXWUhGpYdSoD2aHuddezn9ZO/qhciGvu/OVPPwWsn3wyVCStFxZEHIPeyN3VxQuFEgSVU0+n3xNiiR5jw0JFzatkyLReefQPMMhzuJ9yWvTHvzTUCagT4hmYTkZdi9VmRapQhKmT9na4SHWCaBpXGSGgVFur38wT2Zenz/39uexL2lvZZTFJbo9LaKtsbvIw2ZIG7yt8FtxWttDWATEeQn/I9CUb/5ojNyrK8r73t5s3sdS7PWZ19T4QIPfmbil+Shcosl3NSJPZc59n9EMjwZcm0JmUyExBzDntJ47+Q7fLa2JepuHd2cnJOaYTp6m20u60OJoHjQrHc56jo18Hh/RSP9QTlTUH+ocvVZcgy9msRTLyePwSXKZ+XxCbw/20eyHAO8Q5QlosjUB4qjECSDen+W8yoWDVT1o+X46VOWag8b+Mt1fbh4W8YSOfvkYy8YCqc4QiPVL451MYF40WUn4s/qAqfV9iZMCPpq+Hhtwgsph/J4LRrzZ/VeMIAdocbcGAc8fJHXey/m9nFf9FgAvG9tTrdRv4yDHzUeCtkExPAKE7oykUcZU3BAyO0Okd8URs3mBDhwC6MJ09E0dFtC7OJeg/VFYfSPUq8k6n25r4iFV2J5uK813SvLyCXTfKO+38AbsS11VK4dsdSuuRcz8IPvXFNwazfl+xAx+Obg0DIEhxpoO6z0iNZEdJv0JSYaZMgkfhsaLvHRtdXdO2HBNlk3zJ8g2WNS/S7KQEucxvH1BRIlgmkNEIqOoQqqGFihbO7ONf2qm+VI8+XimwH3EjSEte//giJvgGVgq6nka9yH86okFELv5lu8HvJJaGcmw6fpxa4qEtiodPrTyo3YSkrxLKBo8xsblpjJMgFvgDbunVEIeOe9RFit3eW+gAwlyDeGurSz9jcQp+VpaXJSKvwFNTMGMLulTok768vpn7nBxY2nK9js8uGsA0RwpWckI1FgacLtoMTvpZQIwHTXq0zpjYCXgSxyVyFUrMKUBGNmp2gE2zA7lcTDUiXCQFQ/qkGMT12amJDdwPrb+vH2ctk2gBTCdC5mVydlGcyH754N2lrie5jloAhuGC0q/LuqFoFwqAVHhMwF+hRU/Ea8I3Erp9I5yjZ4H+Wrppe6LWsCUMueV/nq3KZ3V/GDYnrLiQiVt1+xlNhhuh6iV4N6NusGpJqcY5c6HqrwaK+kb/w2qphAedvT7YuE9ebFEbgQ0SzkQ6Sq7twRmF4CJOK7DFHi9+UooBSJbJDxAdQOnDHjo2Z2eYEnUpbSB9P0Yu0Nx/7mao5M9eT5hmWFsCNOzDa9nVix0O3b4K0iy1wF82eU6JlLVCo7aRLH39hmR3uVrB4JS/zy82glXosXvnB8EsTn3jF+2xCfefIA29nWzFfQEu7q8m685PpFHDAEfWzFKcDO91qIfB3YsPvTaPit8Rmjqq+x/cMQ+qVkxNvKsqq9Phj2UVA4zA9dJFevK0a3Phv9P1ptDIuda+aD1JDNC7hy3sU4Xv/55yoVaOqI6JI2qi1XO2PcDfT6yVSg68BaGPiX0ZUr0W95mUgNZDUifjm0gAH3AXiAM7ENkqu+mZGhXudkvr8n7GtxJ9LidklU7fkAvsBdzjYf0J5XRsRKNZ6GDExRM690xy+7TYN9ZfUFDACrLXZw9p3LSZNLj58ZY5W/P0Oflb2GNcUIRsPrbdUn1rA/WDLs8jlBbIh8yXjJE3TH5wU2XrWkybX0DV/HlvyVNEA0kFOUPg/nDRVerfPLjrkoDkT2db6MLGd7Wgrr/NK2Df3O3dCsjGL8rDYUJ5pLl6Uopd6vMlx0dtXzR+DPKXLCH6ziq0i/MtbftaKoQ3RgVlBU+aHK6/5aqjS67aBfJubNlczQyC9cvDWXnZ+2g9pz3WlpvmVYf7p9/xtT9JyvbBvyzvsQVgjJLpnePoe8bbyZtergi6eiFVhO/b0LO67PcmIQVywmOHFlgBvXbhnojPv1jRxAqsM3FwK1IlNtOHHZHHIY4Eo6SAwdl/oimbBCumj7YWUFOKuoFHYwiBvvgek2Ru4PIN1Ty9+7CnjEVsAM2trIYSomdQ5ZlDCqjSjHFbdLlf/wizqB81hr0hlWpTqVkj0cb4C9bNyR/Y1x3KaVS7of9aug8AG/5MpPBrJkJ9C9rXwROQEBC423r1WHAifuJDsYXeqBoX7ANkqdCto0w9OOa2TH7V+/+9sKUJJHvn3sQYdyhn47OcoSwF5mGUU5AWTOU8UF20iLpaRAlytTBY2BO9zLQ3abjHNE6g8ywfbNaJEpwgBsJRtAOsbEs7wwtu1Zx9IfxVvObVgIa6cpjwmsRkcqBRHoXIjmKycctbOmmDAuDmGHr8dBiOKl/gXY4axJ454pqi/VpgXaWlqcOlKG6k5N/sgcMQgUEyzJhnNcUDd/LuqIg72QAs/yfDSWybNBc9htQMopfKScBwX5UclUysvc4Ux1n3LEi5kYUbpNsv6u0IuG/e1AC422hzhSOVJmSsnZYQfUrvaoKlAQozb1GXAevlrD+UM9xdurq2cmNJMKLfT6eTWH2U2RU6ZgKck8ekq3vZVk/cVCJ8aVvFHG9XNFHR8GOIvgLNue4inYR+oUG3wozCspjxlUvwrHMoGXzMHpwPRozWk3X7GOFRjFPYcXIykTSWn7ZcWYVNJGS3D6VicoV/YoR3nyE33GVf97A0oM6Rho9HiXaSN7AjA1OuxiI+hF0uFaoglpc7ri3jyURmJ/5UrRNZ+dkr0nNweMuMt5OmBJ7nO53I3qVTpjWpe2GnXRv1Dw1Q81xA3SnZ+wOsF7k5dpxC1khbshcS7jwuQ+S7kzRjtj7Ek6tHJo5ifnNLIXVIY+mwhmLes/HwSk0ZCnEldcfZU/HWES8bzoHO/BWLSpcXjzTwZcXi8Br29WPQRSGT8SEkmmx3Pbv1eYCMQOLvulxzlkdg86VhEZ3RXp7Wd+XjA5dSlDug+oqEGqncLXmF6FMck7XVxt7xeVLUEP0Ft7/lTVHQp9pdNfXl3EYGQJAU8Nb+77l6kKu9nsKc8GqOfkrWP8s1NAIdu/34UMzMHJ5kre3m7FC+OW6l0BgFxElzKnl6jWEV3reU5yu1/AgJzwZ716fF6z6ndoBZ5BmpFf3bCom5uPdLkIfNgsrnknwgmwy3rWuigyeNZt+eHrbD/lEIwTh2uhhDB1OKJXpLRtEk4eDcvyNnHaG0qPrDxTI0Tq9raCiMySBM+U2z1jJgieRH8TUByvGsWIbTNzF2zJCwDsI1QgnNw+3I2u9BObtLfhZ5oc98WdCiHX3F8+Xd8WazwdcysxKU5G1vZJE+qI41NnYlLbYKLyWIlE193jdcVTn7HH5d+i4gCfIkH1Y2PxcXzhZ4dkgqHcu1aydXzf8YZHmtzAYTGpEjzu81TCt+JCya7HFdCh1+c+9gH05LyXdsS6FMc46PtSSqeRzfIuFIupRESZ2u/Lc3b6bSQ6WmLa+yEVxax4YH0HzBUXvIWPLivt6u0Kao76OnP4iMxDfuYIGFyps6SNbkoCu7t4CJ8lcIeK5a2L9g0LZqCl3eXtPGhKGY2850jXODK4s8XXKit+5fzj05KAU07WlHTnU348aqybuIh7yLdDbHz4PacLCS1D9uywn6TV1ZWIr7+e2AYVZVLxQiei76r/ARN8bcPi7/tv6JBZqHMFiFhNzo5y7qhkgTsH+65K/wxy6j9gxYHcnhgQIJ0S/nEb4oAyn3jGOPTjZs9FnCd7lkAV1hIMn8njlK185HrN2tIYwmD0uNWYy2B9B4+eMSNl8mVI+/D1EO/sAz1zEiZ5jApSm4zXF0ngSylVFlaU3IbntrAUqRQ0OheplNvPHFa+kgzC2dllC49KFFa+s+fj9D2P6KJYfrMUkepiJmNUkeYRCoSNkqO0uZ5kOrOpeiM5Yr+PuWMyCPsbBRWekI+476lY3XH7EL52e9Q9QyJHknEmAk8C+f9djJJ/yArwTZzhjt9z19Igljh++2d0h9anIC81gfNyWPWq80fpL9R1AifZGT0PgQKmBU1fpYZPzeFl+pamb+mrPGt9M2vG4W8FPHz+/uMEM8KuMmrbB/wfuBeWNOZ4f8bwMFDOBmJdJXAFK1gn3u6ilG9UmOaHQQaIDa/vdojkUB7y8Ak/dFYXtzJtH4ATKg3uNgC3tgBiZS8JcHUVRmqxxrLj4sm0Y2rgA+u5fCegWG+XM3XsM67Z/QWLK6Aqb9Jz+SaAr94kZ2qmGgsdm1BqxkM9Y0YcdL5G+DkfrMdUK89MYwVnzxr2mW/CyplaKf5Su+4z2euYkmGPW63h0TfmDBfqJK0+U7SBx9HEQ1mcQEL8CO/38FiffwD4MTIfVrbJ6BezXN6iG4qTK3Zf/En/dkACutNDj2tCFpKqe2r+M43Ca8rWZkt9/9ZSABtKV9raUcHSVB86QAZEOyR32tsaNq10Y9RZA+HHbcyT/XbHLuRANdyALtoADu7fhkmggO6dGPQzryAc8a5wxvq4721eah3LhG1qmzX3JmtEgpIHAWeXnkIZ71IBO03YpL3oO0GZcCOJ3tpWSIB1JglGIx+9xjeOKD+ZhQlaowmWhMM5B62/VAGoGUxFXf/UZGxLqokdvSNJmnLuzQAArIBmU5pkVxQF9P6Pm3BwekrbsSMFYzU6l92eySUFsn5H0U9ZT+0amNptqSZO3ugb4v5jIm9KLfpdGQszwxPSLpv6BbJCVswSrD+8Ff11Ts/nqFcsrsDf4QAwp3HKo6WGMIlBZ1rlMtpEqeeIk6r59Izm3Op5eDPo0qR7c1I7bR0764unoA+4Jx/quha8pwd8YfFDvc06iiROT85LMRnVaFN6b1TeW8uPhlWJIOokqI/Jj/jxvmL/Qgc84oF1/yuApDnBKIGVExuHRL2VqyZQKupqpTzLF3Zd2h96i9PyplttsLKY3dHHqNZdnilSEck07eI43+TDdnz7TCj2NzcE+Xs0Mo6soYueFXNRudanggddv2TgXmEkNDz5f285U62UMGY+lPu2RsY7auR57xAwcJW58pygd5tvVqFK8mEUH3a7nXHbSuazB03N2DAreot8h33/2QyblVIKRQio8OkMN2xaq18DcNNaweDnd/G+Y9VcOwaYHkHGeqtjt24cRHL3e3mx+ehdvo0nbCArzTJqbZk1k1C50H/AdE4G93wbwgQH5N+gVWkY4Fj8Az24dzpv4P7sIhVj2PHPF+cmeTy4XpBThvBJ2SOtxLR5Z+SLm/lEHl7UhJb8z+rknuXDC9pJ1K/ud8elzOeQEEWo5mNvdm3ufTQiSfkLl07cEZ6pnkL6+irNJOwh0Y0h/+09DG9TuAZRhMc8xoUERZW/HcWvcot8zI8cR8jTZi1CydrKjI6Tdd9gMI62OU6776pUYvFkP1jfQt5SpPeHLf69+VWlxGVO9y4SMOX7ahFBm0tAFKXjXxZ9KPaVhFzdKcVGVCjls7s8lEr/MfJvRXPizuRC1GGqkP5S83KuJ694GS2g0WPBdjTjiRBvCxrAAArTl8hdmeaKW/DYlabo92Zr/xz6unEALZaMl3Wj0p6Pvf5UKkIOCLeStLNBVfK+ZXhMOtjAKnlT4KxKOt97FZtYVNA6bfrKraWSzcKJnZUVbwl6vCgdYLfFZOZ/2UTTZcLZEffCt+oyUmoHc4u3uLDnUmGHbbdiT1n5dFM6nOyX8+YRM6MPQBKXVBgfzX/yk6HWz1p5mL1xkKOESGJgkykrZIG58OIwlGQlzZGylG4W989MP8TjchZ4xEWfcHyPwYuRDVWioBQbdmoW6/ym/WeUD8EdGwjdp30u0qW7UexkvGrj+wmKXymyHOy7h2px9XhNx77dDDkZNR3Lwy6BmJopkiDOPk9xF2S9dBYS9eEJEwkho4tsWTgLPpNZ2SwIJ0XgbfwRL5cLjK6Cyc4dejS4lkNvlXldHiYxHEo/HaEaC0b4JwDFSRsgQ+kSEBTK6EoHNY6gL8LdGnjP+LNi3j6LN6LIFdF6j8sxhZtRuR9vT6RHDoAhICuWNOV0B9bICQTk37CiT2Ivq/wo/rMozm3zRTvz5XNMvLzXNBekIIJiReAPQ/o+QlK5uaBOPtUrN5ZRPeU7NTtk0ALH+62fNxXs6AeQIH2SvZtH94eRDiEirY4nN7l8cSC4TEPEkz1reB/GZv1h5Vhc1c9GdLwGVzmTE/nM4uKewZwECXWTE9Od4RZ7ErdRCmFlRZdN/OWtZznWm4vyw33PcjDyxITqhIAXk1uCMpkueDF/M+jcYyo87ibsSBaDNnSUlISsuwSNqMC/CyBVx75hGS0ZxDoct15dl3tYRWxZBVkPcYJ8c0oWd55Rpaen4r5DwDjWRjUU73Ggs1qPSkM9z+7Lh5Gfj0z3tikFjuHkuwUZ/PDx9ZQPr5Y2FIolCEqCzZAlMVuDxE6O8krmwodm/wybzeepREuMG0+fMxxwbL469Rpok1Shhy54pMjvfeLTuqZ/h6QZZ9H6NionVY4R47/3ALgPqfV4ZMcZWfYcTY7yhFWNShG8kQj5Dwyl/vOFNx+pNDn54RSiZ4EJaqCNVJwUG5Uv1r9WpPbwdpSPEKjEipAKUnSRVAVpQ81ohHjOxuO1gXlAkOXGNKoaSvW6wLZ17wf4oHclXi1R8wWvOanTXlQuqOo46lmfUksGnMyiRUqNo0N1Na6VgtQk7HRe8R1IBA2WaMOTIMAWIY3xZaSpk8l76yDlk7ewGg+8VN+NV26W1GZYiA4j2KcR7XBjWtsQHYrb+oY4iuX8rpRT04nMQHcujMx32VtrZ1cDra57QXxc3DSIc7xlKpJih8rgWVbXQxSWqnk1KsM/tpOiU4waFkNdr5o3DLXonSV33r0CUYmgbE4Onb4i14PWruwK1WZNevsx4f0FdDPXp0h0jb7rbinR2RdugdyE1pkegPyMuoNCJk3ZIBMM1F3pDuSmZ+ezQkFWUJMXIbM8FulEN80KNgZQkfIQO6/Sf5damnwWXT0OqbMXkAkku1CiweQRmnDximcjBKjR2gd674x3ijPm/8Sa33gY3/HYQPSlHGHmnVo2S1uS0JWvTEyrIxqOkuSiBwgvoxKnZORkPq1351qhAzX73QTtelJqbC1WWVoAyUTtOD90EePfP7AoIw1yTO/wJSQO0CGgh7g03fcL5RED3+PpYcZw9bIek4ZLVe5ppwJzIF/nVHK6xbtbvsWZktFER5yu023bhuKfYT5/Gt6fJkrnWqmEhLmAXUOmqUd1hLBSZHPJkgY2GfrWexMxAB1PopvyZh7Qamir+IrXM81l7K0SLWVtZyIoJXsmEInit6loCJHeQbO5ddRiHfckpZQ6mtW8/4/pZc26AeG8LjkkSenT7oxi9KO8QB94L6l+VIrN7IdkxWDB35PlVliTfDZRaBqzSOb8HgmBpvoI5cPUrhvL+CIx2bbVLF7mFMkzxDnfqeTYmfDQv7IMOboDwUEFHDGlcb7j9cujn4dVfegfc0ozWq5kqEZcHmilveXaOVh07B4tICJFLxyvgkFjX3qNmUdMzBLPf68C6FAWXf0kw4NJmkiNAJZzlu8tppl1vvq9Sf1XwU7c/MN6+M1o//iArJ+9Ju9sS/oAfqUeD3YnD+g2MpoT9MXwcZwBRmeXSyni9XCJWtiWpCyMFiGKodHf0QLXxqIXW9rPJA8Q6CgOUjwWYjuuBqM29mtJpU8niG7FnqQIt34fvko5rRPtDvmgf41mKxmGM9OfOsPe+oVQ2Mutq1UaLQ+p3NgUd04v1NlebN7bJA8QaKIHYPSc0GzFtLpoy9DYchdrGNkTQXdI1KPfRV3gqSXJ6P+4c6Ayvsc7JgB4DvDrQHS+zYRkarNYGCjfEkhA3zKLqA9IoH1OTocz7+Q3RmcC4i0u13dyU3gEPUEkt06vNpSNUWMCXXV6di7SUtNqISav2FflooZmFnUL1O4htsh5Amjx2wm9NRGnDCirARrmYSvdj4qOEkXQx3yBXKTgM9/4dCjOQJ97HN2+p68ASUh9LKLIx9MMClKzT118WNJNohN5VZhMvzqNWqdRZ8q3OG/u605IRtqCLtSPiKqdb6eU91PHDwu6pdQrzAtz2llk04KzVqnm8xkLR5tZyx2fwdbQoYgVyOtUEAw4+g6jSguxzlfJfn7JG8YFgfvM8COk22C9Bk4POe7ecIqh+TDNxaC0y/KkonqontLwHlZrGPwpplo7oS9t/SfueAfyj9wQhyH0gXEkB1rwbXqGGvS6o08MEc+x3cEUdsisqAdg0MhlGV6rzOIVlBggWrfhmUtLEfBvaXwu67lU2RWLy1s0I+X2SZa9J52i1kjplD9fMVo5I5Ep+1Fpc4p3BT3IGseTNL5+WdrPclVyh0MydMV8NYoHKvxelGQdoPYsb5S2DTiMJWoTaCxievSeEbn+pbGfWHjkLBMrihcotMTPKVsCPnwum07jbuztXrNaRkseDKhn5EIYXvvhcAHdlxBfPb0n8q/ggRSU0mAQnt6NRfcPAUEx70pZtz3HAPiyGKlZXQpBDFRKOTWQnJIMMDao7I9A9nsiD8aDngLHxfmI4Qc5OXovt3x+JDmMqAWIY5Ce36cKzDI8jWAOlcE3vu60WqdzMxcWJHQTOr/pxOwemVvdYWupVwiGU7xKJNXv6Qc4yTPG4nleBYRRmuWJ/laaiJDbJLyqG+pQkBwBqUkWWlj2w53FG1HFtxrJc3Teo0jkaQAF/b00zn14JbmeUsnq3i2QOvESTLhcLikRvvpclmWYaKIV1RxG6vUzQllqryWbBBQUZzGvZfI8ULKE1zIaNvcm6jjkhKTUkmR1f/PE+/UzlK2B/ubLv3Bh8x2OG60uN1ubNeaH25ZLLNcR4bE2a8h+Ge7m7SgTplwbnvqwXddXqSKsi1nxIcUh4YFgqf0waBTWvKPtJXtqtu9UymiddFPMl0thYbYJyYWIt1CthMzD0aDWVCitrbqyN3b7bcgxl34v9JgEJlQRb/C2h521LSxltLbMjHhAX6jarI6RCV9MM4y7DX1GZBbH2bB6QI2Xkn3mOX70oiWCok4VAk3hEIJgYKkGGEP/MjUw9DVBA8eHA/3mFQeqWDcbLS7Ryw+n4i8khAT6/zBILsGbaMClC+laC/iR7FZSHIag2YVqsyKTsqdYPOHaPhXbNj3tIfB632nMxlxCS3CDP24WfxN82xQl8QdMWdFoguvM+KijH6rY3dD39DTt17g3K6V4zqZXVIIFSRuhFkU6tEZ+CTtbzOyNu18EFdHsyjtI7tvCz/abpv/4ZkwY6b6LWH0xcYTQTxakqs66NMHl4YwX0z9wF6WZzpJbktcwJfGEbVlmiWYhX0YIl1CKk11DcrpqRBz1MNDoh5+0+hdMMCmklEYjQhw1WMw2aCTPI2gEVDqpoM5cgtZFeMiVXGWgJPqmyeiv+1icJp3dGLfem/+dnmuj39ii6ygJcdY1ukxMsW2PySTkzV8XDTgjtlAxA1+2hACIfqqcY4qRU+19V4+nxSR1QSA9Lht7F8iXY5vU5oW5yWX5gzWWla4e7EgseeX0D9blS5VFjZILd46cier9M/RdiXIsoR3SedOKEQ0aO7BpxFQi7P7XIQWT+qJdsovW5KTu5ZzWb4VvVh00Wb6mcqsHjo9+9/3RStoYMNHcVMul1WzPpHSpH5df7NLHv/ue/Jsnad//7jJnRUhw21YaWVhiikdvpe28y+pZ7+ka8nmxSku97ESJ8n+ylOFcV5ndU2GbK1NxLxnMmqlMFnGuCKPSB44FW+q1JPHXEMFoRs2sL1RYXTFfZWywPJdpG+xlK8bnbQ6TOOU6kByL/1LWd9Y1ErH4EJ1lgyA14tdQ6vjls/EgPmAStwxT/werhtsWD26Xr9PJl7QELYMDcTEjsei7NQMcsS5hzgo+0Xj4XYsde9K2qB4VOID1q7aCLpyCuQftuKA/6oLj/ivE5MPxJHnLTgXYIMtbc6LrZabh7MkT6jIowePb2V2OUd2o678ZNDV8qdgisbNsuFr3ojqyjiaPxhUpZ4OBjkVvyknacM5zegT2EvHaGGzGbB1M2kjW5C0xpsZenE8PlOrFygL5U2H94rz6ptnUTjDdvQi+NBQqsn5Jl4xGZGUWknSBQ0cmrkA9RgekR4Zwgo5DoG7Yo1jTPQop1jvx+y17ORmraNA/DPf3dgfwXvEI9oiQKV+moW8O6EU2OtBe2VzBMgUYXwG1fgGl/unhfJDnVTTtf90Rz3IidLI3WD4klcgm7A1ZBMGgaTUbX5n6wKig2urkjlmSRyI4YBsmxcf7xcO9k1mU6v0NNKBKW5RPf78jXJuPuK8pssIbGXsovBzZXJUyfvQXYdWDM2n9NO8LwkikehwNtA7r4qfmKK46BV5xcSKZCuviIuchyoSVX0YlZY/kfCqzPAl1ITO5S1niTTMilV2SJasPvuZwq/WhinqN0UHMxJr8FBPApiD5xj2Lhdlw4ZQM7ry/qykIKSyeUEIjdNqe96Bptk+8rLZZgGuGhW16J0TEnl8aSI7/xczm0MoYNlgHXGjqvPtyTg4GzONnTz4XjwxQvt2m6jurzwkImifitcaYoLmMBgO+BMenzM6Y7PFXU8xl2k7ql/prnEdRJMxrZyW9NNqZV1YOllcBDQdH5MCXV16Usrj+sSMZUugeDinROdo4BwU32qkOCsqiyplkg97Qvv7OCZ1LiwtWg68CvSQu3cKlYcHtvCntezHLG4KmHkNnwENc79k4XvA1pN0ucQRWyl6imUwtPWkzRHO4Zc5ypKzyKGVP+GwzvKrGlfrk7WpdsSc8lmv1Sdl6zOdTXs5jOUQydBleiWOCz5bxpGLa5v/j4HDA6gnu9F1HY7KN8DXSDIaJJ2KgxMhE03j6F9vWSkaUzGJ1kfQG3XzAz3YV9DScqBCuS17Fi+aHVg0jY67x1wJvgyoGaS47psNtvuM7sE+g5kLH/VJ24XAaivtrVdCD+hXPy045+1zTl3PAlbaQbXf4648NnBtqyw8Z8YTYtuk9uzRGK2pSHzjtupK7I0qfLWYhWjFQVtAsTzv3PKQWy502YXFvrha5NbSASCMZPYAR3UlT2xdZ+a3MQloURPJMNEQqtrlzu2A8E4nfWbdRtgkOV2F74LLt1gnRb0v1pTqUvm77e2XX+QzlWklf/FJX3egCkmjmquxjKDToJehIgjQAGm0J9hHOjapzOdKw+FL6d0+QFzcHUISkkzTAI//E0TDi8lvMa3gZNlR5JJEpgc3Ajy/A/Evd+F9BOLt3mENAtxPoTwZsurl0JA89hB/p/31VNW3LoFYuFycTR/ZAUysHKYlNSYDC/9yd6Z7w163wU9ouQ8tG9KcHtY6HiWRk440O7ouCiEmMx8UXsG7+oNuoNlaEr63NXB/d6r+rX7+RbXreOrkKMFgthzuv7qjK5USCf2jx+RkvX7HX1Lscw78EGnN4/XkY2dVbdmEVHSJxFklja9BPQ8ghx9gOQRf4xYuGhSkToLzClktoumK1xBS/mAZgnbqUPl3qJrRIMls2OUzIIOqx6olY/cpj2BwaZ3X0nOsnbu1N0p12o7t3GCUxeHO6LwMTa9xCTR5VQCMXxa+Gcc5FLYVBbE5vL55Ku6hK0koSbCA0d0UraXbCFZDIDupzJJn77G/Ai9mM7GPx3WyCYeN1AKU3cDlVaCZbKQcYzEgq3hzK7/2TuosFluk9LPzJq8yVXLd6yOZmj74P/LBkWeJU9dC79lhc7/e05vQGsBkg9U6r3yRI22omMkKwo2RHQLbjNGBZKkv1ZsuV+SmohU0omW0h3o50Ns44GRXqKWCL9fWeqzqy2K9UgfvS4R8vJ07qYj+rcJ/5Xra4pQqvalpXe5UpwayG1o5k8ELjypFqdP6WK7RFX+D52vBWmoBR8Y3tS+g3vLIYvxCZeQ5B8JccnhIz7fTgLJ7MvI7G7KAvX3emFsZoCn3xDbx4UU0OHKzC6X9h0l7yb8Tc1ZPBS2iwPq3Y3arA7kH8ND1Hfv0VwkMcT9v5pYSBROLb42LapAvPQldwv/CNCLuCviVekQ+q+eW/Q0qnL4MnPDPiejUzALLjh8e8P7OzXbVrHOLuR8JbE7Hu/6qdbr5gXc+y3/81uozw5PA/Gt55+mu11HANjg4X5DXNa56oY7s/xV9HU2nWchGcMk52Eynid/X//1E/s8Zv7P/a1iD2BucXSYHF/36ma9lIqQ5+HbPHVbs6yAGhsXmvmpWXbqPIzqsz2ZUxomp+ylXj5cG19FSoujlbmNW1f5jqfGhaOMxVzXULO536rravNV897+W7Zq496iId+KvnN1I4BIikAMpIRPO1XjgLRZUn20T6l8RbzzlDQ6EbHeNt61YDK7Yq90QznpZUI0ZRQqWUql1Esxb9mJSMsF0Un4qZ2piaSVlpS9eNEtrRt7V28IicEs1S0OkUycGVyfQQE8Z5CC3KkxbRJu6R34z3/q/RdZc9ixMtPzfSTMREI2efr8ZIvVia1PwB234tp/OgELSqyXmDPq7jkuntBJnZPw/6ygys/moGW5el4vqwtH/aaZoV6mWu3o575X3Oq7NzpzU4+NvlkoEvXaro/iUSHbo2yqwvmESDtB5nvKDYMgPCll/ccfjov40oLpuJ7FmnX0+p2pmgU4T3ZDA0conXtHgpKuvwimah9XCDMSnpY5g+no5nO2jfpukn/RFjEzdeqZ8yMCEHJUz8vk8W57gbPYrxYBJkZib3H/qYIFOTYOMzlo9opNJgxLpVUyi0f55fTcqVe5uu5eqfgkc/ugAXcTolBSsyveLAKvfkk8R34bDhxtQgWIWIO4tqXrQyqEv9LR7HtFZ4FdO6CNC+XWVTb4TDWj/lBHRdvrzl1sRDxlRPfg5l+c33INa/lG6vkIEEjLm78c+gmsqvUZf86KnEvsT/2b1mfImB5X7MHATKAnx51U/ByPJeBRmDV3gj9uhXnuLwzTkLwkuSZVNF2fXMO7u7o+bDeuY1oU60/uag3+H06evFf3evY/Vl9cao0W3/to6cFfEKmcLl9nZzaYhXW4ep0QwlG1AmkwIuKueuxL9wh+g1sQ9lbp7YgWNxLhuqs6Y0m13FS6DEKV9OA20FpzzH0D2fTI1ou4tjWLOda6AqF+bGpKBkax5fmTYKdkUzBHYzmmTYHVSvm8k30C60nflOzk+PrHedle9P6rjG8cfISsCBJw/9y2shdAFBBXucaYKwoT+8bSFhftfM7VSgqwAW8Pf2IRhnH7QzxVlFhO3cp/o9uPvhpgTalnNnTZPfnXTf26P38m7nwxnBeFc0jTBbPAj8/Xu0AJ+0x4dwV/dBtaOGhselt/5ld+iN8qqsOyEcSUnpDLxrQQtK4384Q6TIjbjvt16VBW3+1ygUZb2wgH9mhDFJ7zwAr9ChDJzi03tLv2gvdk1aFD33iWf+vctugHT7fxRM0BVfzGelWaW0Vz+KTZzzSaH5LbiMbwuE5U+Rbm4tUe1307NH06D7Ey+bVRGpVe8qyv7pmv5Zhp8EY/UiSPeALGFMpglXIecwbd7KvdtXEeanoY2e89WOawe5lD6hdLJwahIEeRVFDNUAZss/W4Nad6wTEgQyDx4akZwbnvf0msRb8sq7QwTj2BrEaoP8deBpDLv7sRxnbZHheAnef9/yGU3birvxaeT6f0XjKe264TnU2zV+AxCGxnNuhwG9BKFR0bClpCEEdHH40Wg5H5/6y03bmLj141p6VuS6WJNnca4rtfos0YI5/jLGdjK7fjprI+Kl1gdTdZEHmthHXrsCpiaMJNv5Go2smr7nfC2NgNexxtEivRdwvvh1SHqbTV2+EB0/ediQtLHFR+Q2Pr2/04Kzy1qELCjKcIe3Uaf+iGT11Sk9ZVGHQqlt7vrR6jnrlx303Szf7OODg1fntlJGDAcfHwwEr8Z9eQAn/lFyjOAzS57V9wapBVPlyW++NI5hv7DP+3/pEtpGK1Y1W9XtFu+LfVkq02IM3/Byoic03Diej/ZVbGfaL/MbGJ7D2jdxoe4Lcf2lGIjEnLNi51ZrUBcPBPtXzns5MOlNoF+/sr0cNoD5p5AnfUMhSLcU7cub20BF3MFIAVzI7e4cjuVV/HXcipVrq8HS3UYk4lSfvGUdPIeH/bwEres3qxaHj4sf3EHoFRRiMdFqlxhttEQR1H1IhP5xadlsfpgivi2mTZmxvFsPiaA3HvzbUPQ+c4mtSbJi3JoAyD+vMp6Wnd1exa8PYu/Zu2PaiCUX0jprHNYade24/ocYe12K/emwlqwpwGAmNPpH+H7Q5GP874NMDfcVuQMuxvt95B31+3iZ+U7/QbjlqPGl8mIm59ceXy5tVpUnmc6G+W+mNwaPw/D6lJ1fQtxiBYuOa5LNLdWpspUz3qslnNWd8SzjH7XXFa8DfOuKec/bXDfzmtRvW/fdZ+01XXN0aYfF//wEfxXFevmd8iy0EvcBXbpTqzTHGEV7cF9PJmKPV7/54a28vXWVHVqew5MtcoQdpA38BOVzJR/TTfyQjl+RsaXV/g7h5eujIYLuRZSfqQheahb5Pg3Wzj6f5uERvxi0UlxwxosTmfdzznb7yPWc2HoOP8hPzKzXMH+z+cqXk8SRe7UZZ+VwLrGPawXxjHzC8WblaGrChqPHCunqq3vh0uk58qdEEF27yaFnU25yZO7pR/w3a/FkC6LdrE0VpXR6sw7dReSTm3V33RsXXKPHMUuXN+tzEGYNpD2nwIe4SNDMoYO3a5j4dq6RQPhpIX24Oi6cOgSxXpvIEQ2Jdn16/yR1uDB9baa8pYjoV+fqX6pi13N8EXudBF1bLHpzNLQvcQDaLStbb2d3KTC4NQvfT9vWqWeX7/YOb6S+4p58FPmKHeHyMsRz/0Elwcq8XIT2nTlkxL/1eGOvMD0a47vlJ6tOUSpRp589MmeG0e0v8MClgaNNGTFivfHCpNcdztUpb5jYr28WvDnDt7jyg/vQYcQhdHKamAIU7LsuSSmJHEZ4fRu8Oe0p95xiO7WRhFzbkXEl2JazHdKHVt8fUkwSfY5/te867o30UeunPmSKtkAT+NAaSv7+z1kma0UIZmsM+FRr/dJDf4xJdHotBcWazpRNnI7UhKOHIpDwjJNrW70kYydvJJ09MR3uB0X0znfzrzkZC2KwUyz/4PWEezZ8q3X216vyHVb62Dlc9/1WDlk4TtXce2c0tQ6NvouX3T2W0S7s8aQjXru3M2LbdHVKYQz7H0vLz/r5WUMHtVcgzI/TmIHO8PwmZZIajZHxc1xd6XTrtnqWB9U+WzPl5ynIqcd2AW7h6srEjrW6uv2mH0KsWloIVtWnot7hTUVdtVZ//7X//ThtyEhE/ef+rm3ou/PeyFMxIhL6LhKRiEROnEShkNx0sDwoWURvERTlxVRTDYV9BLfSZyk1nWUeVS4oOVrerkPAnUYxy+lij7AFY4WjoUKOUD4XFvbIViR7q9diIMnJx6ObF4NYGME6isKkZmHbOzRI1zeU6j8GGicqXznsJ83vEPzXZh4zn2SYyprKRjT0d2+Dx340NE+F7wknvNqmDzMeufPtt/d80fkFt7zLqBJukNWXn64c2S69eecnEy7fXX1bGIwufkw9agtzTIRw+cvOO7ZXMnCjO3oL8IZYUFYR4pjs3m2+dcG/is3zbZlD+NaYTPzyuBG+aAozKZhmYTvgRCrXRFOJSOXEvkkGVGXxoOnGZe/Qn3cSGt7vQrTG/kbAbwG50pAmcMMYCCZLwa8XfjXfpbU+F8XIUrJ4+zPRwx81dLA9p9dePjF5VlJaFMDwExB+NHtVPLWMmJo3XMwjCW4lnkPZnivbsRsnSaDoJS9z5kfyKVRijh1STSWCwMv47pmj1AAUY365O0sakUC8rLuw5y7UdGCh5g3zQSbHaQ1C0RuS78vOdkJMA+r08r1gxwknUPT69kOvs2V61UgQPtol4xVB0Z3ru5RsjMt2UICWHz5tsOXyqhHp9tBDV+wkxLzXiaDkI6O1ywMVf84H+Nhgy8cqx2K+u20lSHHigcDqxxcSf0Atpv/HyzCny3BQL5Pv8M7PWqYDPCB/OTxPV7Isr+qlL7CVGXUfpJ1OHNCDDm7El8tBY6ihNxj5Rz5q8npDzYPMh8nD2fLEdWIZFF5ePtBIyfiJHzf65bXKkTT9IveelDhQdPosA8rhVS4bmWWkdbun+58KRI63A9Oik1q7glV79kz8qApG8cEVQdyWP6y4/Z9u+xJuLiK/qVniVB/c2WmMvPony5rAA2wVDGSZLZQTOl2Ag39NjQCF1/JdOhhS4l0+Gr80Hc4on+ApcJ+5OIvOEReUXbJ8eR2OVLlHKgdpC5BCjf2Xugcsj2VZhBSfe+kuKWf7nwUFTdkeKCs3uotfn/T5rlJ555e/20+MZPzX/g3rkVAq+JFyKasW3E1waDFzyqm0evPFr8YTL+fV/LOmMqbtKV6AsHy0UTAnAU8vF5tX17OZB17dfyhBVlmBCfVHv2eOa5zePa9LsEseedLUziPPWHmaCVf2RFdGvLON1+37vQMPaj9H7Cv8OZRX/HNkd45cGkkvPSQDSWz0ZUBqTNuQ5LLpfAnN3G0EbWJTk9j22lSdoZZxCjGzovLWxTvWzmpcJgG+HY7Yx9CINbhBu3UioKrpHYjcDYEruESkoOXkOKTcgMoD6LPowxLFWsHzfInK2RendTifJG2TLq8IElGtZZ6y8REZsaZl+ckPZskTsxJ0gjTSW9SYRmtaPmOLlQyt70dYk/Ib60xGCoRMq4rYxtAJYLQXpHD7GFvhV6bm/0kI0auZj5Lx9FQzCQSgN044xVFw4nbWy0JpBumTtivdBTlhbPIZdRIe+P7L/qWcciblJrrkJl9QImz3x7uQpltO2iF5PZ+T5n8OYmWdS4+QRGWwjfFn6j/zuPLI0r3wIODJSNDe9aRNqmvTtfeQ7M5U/u8idnZ42nG9XAKELOiOSY4e5F1I9whPHgdIs3qOpG2vW+zNlvYSd6pCpYLotAU6TQGg8FEgSuizawUwmU1BqZwjLSDuiVUDlD+eto5OczyAiiMK1C5BcI50HpVmk1wUPWnT+aDHbRmK20DxWoOoxxsO2iyYyzY+wxaiWZWUpxtX+TWQ+PhoTiQpC1HyQHz8NNMyE99sO1hSzyqwdKBcEOOfuWA8teOjvfk+2Zgz/XD6jWs+jZ2QJSTBxHy2MJoxHDPI8ibTg8s5pU7ZWVbOVliPI+DYAd1g2pPaivaC6Z7sXl2hRN+PMIV6YpnnDV4WViGE7eBsfZDH3JU51i9MqbXnQS+fwsMLecI+uf5t0GuEjgDuo4D5tbSlOJ2lS8eeZ3EClpaBwdNRm8gi01i6lymPxMYFaCHRuc9uCWpg5uicEhE/1KO5KB74J7RmzE9hotA30sy4aUZfewQMGKsCF7SMqs/qnfZC5YqaCxg8iKqO9V6rmaDqYFGY60tTWUDKguYOUqXFMnsn3o4Zn+4uklGSdCLUTZN2WuIaM2VMxMD0l1Tpx7xZ7YbHE3++eyUyvMa4jzio3C6G3nNBkd7jjEqzZjHHp9zRiCvUs3C79RA2PUAjeJ1L1fg5Mv9vJqo7Topcd8T8wr3zs3dcoO5arSQzwtKwq24aDu76hyCSv7cL5cQsryR49c/eOs4mo6+FVDCvfr/H+Cz0IjTAMKNF/FP0QlG9qEDMeLijO9uUw0UlxdnlId0LycdE7GFe6x7/wYRrHNP7oSdwiMEelzlY/3M1/tr4qK32TabGG6oG6Vcxma8W2h83/Z/fQyKw7HeIwj4I3eEHqjTYh4ZrWupflJJFOh6zpYcueH//3X335x9pfMnKK5K7zSty5xzXfzxH0CO1RllWBGOD5xBCduF5UjpTxAz8PSbk7/rGWHwLj+g9eQVAMu7urRdEwLDfIQYHv9Q44y5gl1LUhYnq+qRWXIFm6zvh5o+EuQo8xEy8u9O9u1TZ6L+jHF5QmbPZJmLP1i0hw1Qtr43wzpj/4Pzv+XO+uHJ6jRV6rvzHiFSyk0GrNEjOTIXZDp4Y6C+c8JsweiYZNBcI28W2OX2rPq2sCxKO3y39/KMsbTnxJlphPpmqRKGllXez9uEVJNlP7TS63SHJJC+n+C7VF1PxptgNZ4CXqZI0s8jtkkllb9DwGYTIjAfWldQtJ/baGEN8u5LeHtYJ9ksoAHPdzCsgbEzyXMLXeWkPzSuB9V1KAetRe2hhLlTEPx3rpze4DB1YDKSNWh9n8WNpiy/+sXT9adSB+le69VJae4KtxoebeWAhFUfYxIId7sahlco0whQdwT5EQ9yD0qATwPprxPDN4GDNLEct61OF+Al54HBzQRTu8ITgc3pxV1ZNv/4xkwsNe4RxgGBJqRVJ4QjjC6uqovQOVUeKQj0h6eUmusPYvZYJUQvSRiUdUeG2kY0TbfGwRVcMJF+ezmhaVdUu8wAgeeb3waZwRMxs0FmAVMPHZIet3XeOqYzxmlYtbXTC7BLmtOu5zfLaZQJwtW1QZkvjmFo3H5FKZWpUfBUs3jfcrUY2krWMQswpTlXl1haVmpYi4kpvV+K5asw0vxO2sImA9hg8ImLRf8PqIuBoPCe2Or3iOsvUjtlgizysJpq0Z/GS3C7+uoo/5ddsHN5Rg7REGOeS34StjJpaR0s6TdOVjzq/XUgrTWBHdEPfKcg29hp849HbG7b86On/tJIvyP6bi1M6RyHpRjqbjVYXjz6JBDTwRI8X5Khil5XOGc5F1gEUMrGbzxUpsqC5Vus0rLijji1UibhiE8wwQCl2Br7YzN6UjyIkNIvjKHqmOONcKffsjNSzCtjAlRSZjSLKN49pwH4oBfdTnDUmSQ10MBp5+BcxdghK4O05Fk1Fb4AtaWOdHJVIlDSDaorXC7pWW2dbTWH9/A24AdOBKIXkdMUrV4ZcYisA6rN0hqRiUOvrwhhoEjlWcze3HYbUetxzZhsmvpV9YV2EwqqinLxDCAdgR6CslNOhHrhb6NoBB/L0GSYF/O0O0yppLkeYpgGVyiV1kk22OOk7D0wu/reUKH2ze6vANRMziUFgKWVnZndy/27YrD+L99LC5btIe5xStmx7DLMlkdDwAKk3DNdmljPnifi0aV5ZBX3ZzPcCvoahCPsfstqzJFT9K7G5Imm/H8yGGpZF8EyVMzViYUfNmhi/nMT2j+DGXB2Ij9A5/irUNtE7irck4iXjTTERw1SAtnZRy+PttKIfXrGViyiISe1gkHkoZ+CPtZRzQLRlairXL+4rZGqUeZymtVWzt7aqtRnaAmhUtmID8BJCl89tI13DlUomutYILbKpkVfY4gyo7/vOQANjGbSSJDBliMviJsIzR/fdjEiIkexItOaCIPRcgENC6nRYCmykoOR2CH0UsEFFqZfBAZGxyxFEcHLKRWSyJjWjp98vOMeha4RyxsWwvvnGKXL+gX/SDc66/ljepTQi2VKR+njHO2TSpQb88K7+f/l+TLDEdPWdRS3v/34tJQ7Lq1O23T/HpwY8UoZFKwxuk79TIBD8qifeqgvUMDzR7hhmepb6SKoNFWJ9+BuN30rDSvX7hT6a9uFWdLt/snMqY6F56fwWbVGJFrikCW+Bb0FifRlsTli9TdBjoKeLmqbw9Z1IlrtMCsVt0G3juZsP/EdjU3GPf7HRW4T1A/YSLwIWB1mDsjn0WqF1JgPRThZlvtKW4u1gRVGt/BPsq0d6X1RD406wolgqe+s80p6rCZm6Bxkjqz5VdpeiTZV+0BFRh/OZaLHDjRGmTnhhyQd8bO0upGi/iEdS/QQas6mUbGxsrG6WmCbXrWMonvojWBxiaMEWifGAzjC1nzHoIRL1MA1opIzSOIhTimknbAcXoqUXtxqdIvpxI1oQu64a3yxVTkCW0b8zJifuEFWZkJatpuTKIghUYZMXBFgcShVLpAjjMBeoUOwta25eDqMEG+NAQq9KSnPMQOJSU5KOoMTbApKZTORIRLd3Sak13TzqWiGfepQGApuVK4D6HUy0qseSfWgz5Z6afQuoaSvuoMYj0gRCwNWXZI8iwIUbdDygpYeUq5hf7cDBWp5b8IkXSeaLhuKyYJ5iJYQd7U7NGdoom5HBQEVcyy9XBHIRJw3tAKRoovNTxRYGwABGoE0rAdfR1jY44LUohpaskh+BMdTNzGhasO1YC9oQSKfrrlmv8IheutDvliLCREsxStCVugMZTLqCTkHuNOp3Uda77PhH2JL6eJHe4+CC4SFh/FCbQoOLknJ3V8lt27yuzEYfnuy9mS7RtSu2RHuatQ2CSDHMpu6xccYPKAy4Fd8SnfYTIFLowVrE8uzB6aQ+BBRQD0pbqjqA86X2Y5o+TPQqu/GkYQ+pTWhry1RSgtf7UjDxY7fmNqR3PrIZEsxLTvYxs0zIElVNdEz5cL2rdA8xZeKDxTRrq/k68hLnNOHdnvkf9KtWiLDoCJ5i7dsF0KPRsNfA403ORSBCVB7HpY5k3kaGYRFKKFy95o8LyzT1G0cRsoFQRHBX7DhnHJkn8W65/FZ0oQS6MCwGLpq04EsnQ3RABv9yBvv82hexwnp0BrrT5ryALZFl9QN8gQ6oIwZT6KGACfG+tsr8KNsspIvMgzG6xJcysFyz7ERiLYtYVJNQZ6LeBUOr2yrrNuxyG4V65LSmK5w8TEVuiqlR/ahuPtn9xRXWmYnaUgKeORYpRXGEAj0qr+ndSoW5f8xAyDb/I/ZnL8+Ww3upKjRCLR2pbS+NmvS6XLOl8Kj3X4K+S77oOe89jQwOpSaZ7fr/r5os3P1AzdWq/e3eUuUlUMio50ukx/xTYFnPismxZHkDw83qR+Nhnw4j7bHV86Fx+81dKWFcKqVnRzYellNISeJuiEukpFu4WNKOsghWb3s1aqfCOFKBvdNkKfsuiGOE/vWZPbZfzMrmoJY29R6JE33KgZyl0j/tXK0p2W61yZY5mJ2tpLybZ0K+cEgJ3EJGC8BDxCf71q0/9+EvuWD3w7KvfUPdn/SB+qhM4w5hr594M0d02Um1bRyOD7KxJQ5UrGklkWaBIQ77z0H3IgpJz6cKcDHUPtrSle0CHn+Wqpw8wVMRS57Ef7lxY0AqmL3tgqs6p3Lef0RJnEOQmhfHpEC1j0qt05HX4YXjF+pj20mThPvzykEouA0JorRStUkAl6gHHtqrBUQbXPJCFqGC+8tYg2w2uR4fW5brR+k+FZAnzmtdutye5+D50x+h+cgZiEP0JTnmLR4CqSKTqgEJ5qru6nYiohp3rhOkjgBOmC3CeKYfM2wSXBLGtIi+V8X/HEKLHsFu9U1yt1jDr9bFDuiFFoP4kX3qv2Sg1IrU/C3Nv4H+kIZHkxvDJ3sal7kRNQNVbjK+pXhpnhSie/xWd0rTOcx8hW8dk20YtpIr+OlB6eNaillZbxbsUPTNymxTJ1kEcf0mHSeu5/PYMG6eKWuar66lROVyk1Wuv/LN98o8yWKb5NwZb6RlBBJLQHFObaUldIAK65ccBl2IK/jQK/ho5qg+Zf5xJ+Xa+usjpXfPXlSS624oq2LWPwhG+3Ttg65ro7Tuo0FfkoIf2V8KT9F2vp4fScH+WdANrx/m2C/oknXTEcEuW790j/0i4711+GLp6/orHAsGXbh5WyM9v21E3xPd9E1Xu0y5LXUfJwYb/c8HkwO8DylJzLpxPybzPpoM6HS9dDBq/Omi9ZYvija/jE9JL31d72gGo4WMkv7Jgj8fSn2n0JIK9eXQA2xq5mBdTcIW9nJWT1x3oYEsJABnUKNeYOFgRu3/utxK1DsQpk3QRN1/G19Mjq0eL/rC7l/FtWLWJdOHB7WLZiS/0Nx4q1/MkLeq/WwCNem0HnvcDKJeMijfhRVPkmV54maBf6bweUlEaoxJr6haKFKnhxOsVTxHSdyxEiXK4197J90DHrwEH5QLjsDXBQ/98F36MTUCwe3H7D2v90tda0QRMdG74pWXdtDc7aAJZRIhPeDtS1joWMNvd/M7kWpAJg/QhhGBEPdoV/wMqaoQ7ZLH2AlFUaTMl71wzkp0GfgqLARBkRjMNWHtehhW8WmF3kd4kIS06eV4GuoGLxu4vqR/0Qzs/qa/mRRw0jpQxX3QfZpVg1gwcylCQIwyJ/LGVOEU8dmVi6QQ1BGHMGChYOp2VZVacrSWUMh/x5WmhoMdAO8IQj1VFo+DNmcDoznEh24FQU9Jih6W8WCUThpxvLV57hSpvwt9qObkAGRP+JgIo7lQgU+9BiaG+9FInTqzb4UyTSz42n0K6hxxrKCYUFayi0VdES+pC4UT2846LtrZjLq01KZTM1Mxkn+bK5bNFO1+AeUNPLDyBGtGo2LhM6R5WrOiCVYsFv9mpM124XqFizZIC45q6UkWEsgGIW2JLMfnMdefFZbk8XiYF3oiwY+MFH3qCtDDIymrF3cw5OmuWpBwdzFocWc1YSj3uD/aKL0uELRQncoyUQoHMOSZYJBRLtWnu1JrkJ9T00Kkizt5OSFHYdwbyUrfFDu1zRxLCAGeu7FGLteLW8ZB+5nB2GxpGskRPqVSckfWmNNHWqz1bHKh8ureOh98SDbLfdzFc59GSQpbMzrlrmFzz+qTOt6StzQEJPyefSlpt9iBPGNgXVemxAKQvqaEDaVZsIMArIER2QW7ckbFHMrPBAAm1iREJlSBiwMbo42z23halYKuQoxb0r43IUaCw0kq2lYm0d8sZqTmQpEvX4gaGi3ECNdl4G617Fyy/IAasChvWY8wZ16xVT4qj/45yYEUxa0t9+YSdtM5eFM1SY2wfF2x1gUdk7zsOXFdFEbJ4CLR9d9/1iVF6xoUd2YVqtMYuw3VKTMypETtqLmPIxCVpNVnc1Ia4EIcC2iUspDpR68szwrz8ox2ywFIJgZZrvls+U82/OjoJ205BHZsi8YylNFg/u3wyVc/uEDCQ9MFdmHFX1DMIwsxi6d0EHBt+HXo78/appRNo7adqdACuj4/nxwtPARN9FhCfT6OYXsGC04+QXsgsMAb9F0oWu5P/zYxHWLZOQKbNdBRn9qmbZk4+c0YU4kEO+xChuCLVl7MRcxGUfj5XSW0ExYBoqdEcaUyPweo/kPPf1LAAOTXevhkoJJZS/xjtAweNnDlnIEBCCxQfLaX/51aZoFbxpY8xsYmWRNXbwHEuBWNoVYonosDaaY9nGg+UVIsPkzMUvyYLu0s3yimI+yq+J98Wu6Et03fSZzptt6l8iX/PUv7afhNq7xsC/LfJcSpm72oOo+K49gG+mrW/ARclp+3wqnelXYvM5u/TfLtVvUZFWcsHS4k1stG2pDSb5u4u/i+cv101EIz+UezyzHu2Y9UzYNZKJauZleRdctFdezu/pIP3LwbVQh8LD9sYyCsV6q/0LhCYQK6iwDTKWSmHcusk/ndF1Eev8qKfMGLruZ4Ga2w+u5ZQCCwZRgRKwRKXnxk8E+g5W1L0wujb40FCAnVRxJQx0EKXrz+IJRogD49B8usMtAYN5FVOfvUK4N3gYuIlhEWkHzzn6130+OsYad/4oPLcD/bvlrFT93AAL3Xl4Wx493LG7eNbphxW87MeghFTKguu7RcbfpB3BV/xplqx05gVVSOaE7wTCqLcrq0/CoQOK3PF6uJ7j50BxSlMaYw/KzYkO0APM22h38EssLXuJiPiinxU/Up9DozDvm0JPvYFPip0KuwCq7iKqROseJBhcYbwR4La9M0d1N981OhqhxgXdthmACNFVD8FLStp8KUsSyckuX0bugWPlxGe1CGZRG7vsaOLHipuN0Jt5FWr+MDeZfzpIXcwy37YuewaJT4qUtafMtzOiBY6dhjKRdiShpFcdZUG6a49XpLermnICA0EVbOWV2xz57QhzhKXvpkVZVmTXBSZqT4964NkdnjBPzKSe9/pz8raAcxb03jtmjrVIQwEW0MRKpgpyogAZ0aQKh1bqIgyzu/AgjVpT8Asqzzp4DE1PkrBrJWx0uTEYZZ2qcES61vYf+sTXRcrkRop2sJHgNLIz5WAit1JlmUD9usxUHV7c98P6JjmxdgZ26LRlhYsgubNXVC/9ID/e0/C8sGt+Epn5BEg7p1VaLK4BIAywgBXaLrDm9LKLBJG/XXNtCQoPLBd7R9KfcPDlRIb7Nn5TfkeB5i36sQEAijpzbsR9nwe+CDY6x+txCYwYwvKplaodgTvjtZvCZOVP+hQ08n+2JG5PD6nsbMc6Psq6jhhRv3uB8/i9L9beSJOodfHhj4/qlD3N6iFnUAfnEA31gO6+kPffVjN/GU3FvlHbefkUqAm23UhHA4up7oHd1LKdbnKRB4oh/qe7n3vAFOIbfah84oBXxORw/lszOBPHLeIbQL/qA+t79Uplq3B+BgBYexTQmOFA07othj0E4zpTFsRbM8eOhzyjuv5GWWtchefpMcpuwyQOUga9TbqkiZFR9NXHEozbOkd/oUEmK/0V5b7YLXPsqv2Kaph5Z7H3wyaO6YbKBAdwX2T7E1JHd77TaY6JtBx/MRJHvwOE+n7LNlj35hLFJrOX6pMcZaryEApBlh1yY8dv9g2Q90to5PUTVhrfyyYZJQ+x4rngsOVRqTQquFKwyUHEQAdd+mevy2thCHpoxrctsQFfWozwA10gxdSULgTibeZsC9yqROdO/JH+u/MBJNbJpP1e0H2KmQL+YSSJW1EYBxOcfSDNHUs5DuYCXXGM04PYFMpfCiAXqVeYdUEa1vujkHpVQ2YEzlm5TUfmrekEU/4qgVvABBapOSXj8Dc6+iXm0KjNkqRuaU6cA1rA+f3kF2wKG3gKgc1kkHFXZL9nYqUeMjZ9mM7N5HHzUyxi0tNaEYJhn271KxuSa7eHFgrqmTAMlIBCzZBVzVyOPS6/Um/MGYEY9R6Z4Y2oVIVBJEoxyL7IOabTxH7fhRq1Iv3KAthPQ8Ke3wAsEXW4r0pDH8ZgyARTcxMKkbaq0I5emOEKv2I4DFECz/seYfDYgY9SQwNS4vSyINU55Rvv/Pn2+YvRSqmI3YknafJ3Lit110Z8qkd2e1GN/GGXpnMtwHW3GFIZYA+yYtjpFHonAf1EKEtoeNLtspaaFgG528b5YwvC8U8FTeBxYqPNCVbcMHlCuiNm2L+rYdMtrP4SVhoKiyQ/+SpG4xyAN1LyPUs2REfunG0YvtZFgjnM4IivytB6JUtYwMoqo8vu5l/1gq45TRabZFbh9bRY+NSDo5UmlhDCw8Ww7Iu/8kVNzDwxTLFl9HKA7xblJnITEpv5WFch9SgvsJTOU3Xt8ylsGxh/f96XkKbbMtxRD7qL664i+5nZwWhTruIeAwDEUtxEkmitTa5r0MlLa+acgC8BQxKLAh0XVujhJnQ7nj5kfo6b85yZ47XKlKrP0pSaRojDuj3QNeUEIO57xyAeTP1ATqhTxOGBXddS3HKaajqBMT/BxafkEcRQnkZaSZ86R5dkfgyXMcfEvam/ygcm28QlFsyXRd8zgHcDMseSZOPvF+kp/AGHrAUDd5pBHlx8IV4E5n6tEdjkYZGoGh4jtBxujFmqYgIEisDRH5W2pJaMKYiMVKQovgreRNfpRIUgWYvrBD+zNr5OrfpEtBSrEC71Tfga3vWJiCw9QMoI9xbVtco6UfCP3ewBxnL3NCgN9tifaCuV2knMV0BL2XI79gISVwtTwy2zP+h1DgmTp7F2zsOMNus9nmWJxdM3QcN7f7wnlX/yOnR+tIqC+1BXmHZ4bl4yyn5jBwu+83UqqDU70nZal80tNF+9Q90YCqdl87UBWvDo5B88H9Q/DDwL2Dq8MEFHSAO45aF6faM2SDBigfUSXy4cW6YAfC9vA898vOVTSsjD33f7vVL56b0XhU3R8VlL3GJnn0dVq/VN9tFlYY2+kpb8h/9HrOGJnG+3qoMBkNdeid/ziHSHffSZf/ptt6B2/OQIvAlHdSwQHxeePJRVAxENIB5fTfc8MViS/aOY3VrIP0q1RbU0st4qq/kEMRaWbeH0P8g2FWbGPfkXAj78VU8gWo0CbdaY6cskpfIPooKHkG9/wjRCLudqiOX6oPfeMDe+hQcN888XXtXjMhDtn/+T+iu+eZon46G2XF1UGGg95gFo3KIcbSnQsX52NaLer4BH2SVygHR4uX2SwtL/k13ilBMqIPkRtOI4fjGBJHJshCM84eDCk7RipITCGgqcQJETbyaBsb0rSBD63XjccpBL8scYCrJl9SQEdhQw+OEkyFjM0NME3p3MmenhS2uH9ks0tUqCI/SOa2w4yzIOw+Lh2MMk3kDhTwgCJdEzHUB7XoOBrU3a3zAFcwEB3wc+pqyVvwQ4aQ+cFIr6b+WnPKr3XVBXsin/2K/oEA3H+4xE+oY+B9CPXCHm7FYuzJTzToba+td6Lym1XZO3zMUoZ6FARH6veHp4qnvXU3fKUS4lMVOZ8jJY+W8Ny5Y/AULAL+lcd7xL/Yp+XXner+d4OWEW2Jhc55KYKkFRC/UJk5Ttshp8JfqoWhJhH6Aq6zvicWJ7fouoTnV4O16J3HjJO3JcUC3NJX7yf3Vps04bvaKl1nqeuPNF/8gKPG3m+roXGrtQp3ggg2EQchHB8HF1Goimy8jGRF+Ep7LnFQlQNrYo09dY4ZBnfg+MkzZnX2Ylq6Pv72IrWiX7ZfOi4IaYGSmDSokjTw9l52OpxYaTCkeFo+XxhawsC0dJ7cG1fyKas1wZkPdbtzdN0YZfOlBbFWYL8EWpTLDmpkzXqlaCX6t63evnsI8TIfmali3LSqarXdxYQiycpqRcrBqksoQu1sZ5G49MXp32zFzlev1Tol6kn4aQOTZhp8OmKMwdwdGP5RonYGwt+XRYnaXEpJjc7UwCjsYfXm8VfBIzWxrZ0vz0HeZ1cSw4RmROt2Ly48WEvs3W7qB+tW9GjqajelDd0sr3LbgNMjwJPVwEY1R+9a1fSDuZrAxVtEaE5uiS8D2mE6yk+difErF35si1CzH/WsA2EgMvx2YnHvWLhbrQlXucGU3achisYo0uJ09Cp+atIFjT+2ZncPmrwp1LAGEKkMkHmUMJ1/y3k9xB12j7FY3blDYH/g7czLPM633Kj54UCv5f90PeLdzSp/fTpnQ532irrvGrF9zeFT7JEOCtx/jhn59+sdbZ6V87sdIpTtr0wNcRscSt79QKcNVIx84EfyxcVmTdKJ4/rzM64Q81G6/ae/jfHzrewcaRSZijfE/wKiDBp3r2Y/8MgXAwMNXQXDD60A+tKH4j7DCQduqyGhoW6wShe8brK3HHQ2Myvv+YMr+jQEIa9/QFBUZXuGte1Y5pEQ3DabEXrrM6pdtjyzD8PlQLslm5tj5a91l6y1EQdXOouY+vknW2KHXfrxJLH7Un2p8ZuZ6Y23mRDAlIwUexiTZ2c9+eTuSlm2+LF6ITbdA4g02w4vUIOG6BPjf88xbLt6FOh+hgKMv90QackTiaQioJqkpE1sv79qzbnhl25kj8kDAklraQsrAtK4DsB+dYCisXFmS5N+sPr80x6O5lmxHCjOhQEJT5xqajbspWhDbd0/IIFxlffnKIUlAoI3FSa+vCUF2NHo54/IYLLk6Jw+KKTaYJ+qtnLR12Rkw/0QPunnEyJGPJbEF3YJqpethrdaLrgA8dudUgtwVm2xXjvi3jblwNd7x2T5b3EmSi9cEeeiYojk6CzgVTr8+qvKd59iL03ovnbevoQ3a3Jgtq3Sxlv3bGYZr8M41YhgkrAkGS2Fdz6TGFOOXkiw9QyiCvkt1kP075ENqvLRu7B3CCNzD7PCCuFKuSNwE4h/chT0zBAdSxfsFGj9tm28bzTprE7haHfC7wiK1QbHsT8Mf38cLSvXB493h0edNKuQ3ufP4eQE06MVJZ50f8eo6J/sHhTg+WyPiGE6C4YBcfkhNkEioErIUDFdBWhGFuQQRs/esyWQZCcEg/JD96v0p8TjH7hYhvstfge8g9BdhZCEzDvXivmm86Qewyw+I0nVSuS7CwixZCRGNx6lCQkeo0mEnnMCSti+UMoGis0ZIDdnwUlQKNgDFPAC64948ny3Fpyc55hHP1M3H9Ap9LrZPZYs17sLAQVYy4q7p+Jx70iuEB1dYSXb4KuCaA/bp1IJzRYUmnelU1IR0p995gBveJhtXBFB64tF2VWFs7lwSkqLiaem30X4fvBA191klP14VmIMJ1HA339YwumU0SxysdMTcMpABojs6j2klF6F55OlsiPi4UuR6B6/Asq16za6mWTootLFlPGXqrpHnOnrA9rpUJfckEExR9rvL2OVhP1H2zOlf1qPLVY+aQbC9GaSQy9eHg9XCfWqoC7tt4qvTjmjSyUtm7+hCmiqbGi7dk4mZmRQQlh3p5AGA9m+XG4tW1fTcXQtTkNMeYRKCTC9CppJtnn8hYEhk/4YDYbHNGiME8tZ3FE3ZMoDgWYPwX3vzWcS7fEgG+4M9FLzI/42rPT4UAgccROLNI91Zm60yrEm1fne6Gzv42r9LckhUN4FpsmZMS0qbDI254Om43RaAp1GzcIvjZPo2J1Kwo79BGJ7VJU3vecfinXqLaIiobt5YFt7I2mjnH7Vuw7GAOs/sUDyTiTTGS7lHrBG5TJohHTNXETE3gUAVr7MW3BjehaWHlFBiIyEulYJl+J4/BKaLORwTgkLrzIWJ7mhV4q2+aa2XF3k9aKpA8OxRUxernUfkWnd0MGFfV97lxSAW/irleYFAp4ht0dIImUVGZ1LfWePaT6eIBSn3Yw0q8iOclw4ORahYhyoN1269Wi2F/qqkgh4zBRRtl+XY8w5PMNaCmZOckBMb7VGH9KVTAFCzzWCIcOJMIhfXytftsSElhZKbOjrRrQ481qB4SZRtF3h9A092jV8KVGkjY6maVBQoTho25lI2NBbxFt4BqaHuA20cGXwcVqmb3BuhVDoBXynOFYvASnAmoYFRDJlwjNYO16sJQUf94yqaQjOC3jM56B1JjJJPjzDUmVHfjzjy4Tln3R9+qnC8g2yITNS0tm4TGE9KI2t09iEsxhfoSVrHi+09EPbwm3HiqcNEWtCSQ3FRZkXWm5HKcctIeQWCjmplmhVZHvadH7FJpR9kvbmA7E2j/BxAKx0grGGio/sI5bKp0yOg5/Ap6/MBjNpGQdz3dE20elKZhWlNxDmK4VHYA70sC3QYF3S2MjiRIjZt5yRmiW2HbJhJ9Ui6GmHElnjXTvxlKaAAjCLbuljWPV5Tum9ANYDMFAdlArtmtNAnQ9uYFd+Smf4257YUDOCX2thOKzBQBeev9UbiHdggx/OvFVj2SeF26tGvpWazuKIX30HLLigKgN5VCh5lF4o1skHkeqm91V0dl/JjUP1Jkx7Gs3OQUEpzLPRppPTxza20Itv1+fJBhJXb6yQjrjnJ8TxjoCihKQfomxwro2ahckhP9p53JZ5ZRvW4X3Rrn48SDpGsbp4lQ4HXaL/bAts2knS3wCCy/lsEbtX06LAS7Th37/5Ir9K4QdoGNPwEiymPTIVLnmDX6ItYODFSjYjb67IQ4h1Ot4QkH2E6MDEOBWf+LTcNyp9vdD+dWva5Z4qK0a0yq3U2gRNEA85NX2IiKKIUbq0MsZA7BSJIy70sSIeRMmjBx/v12NAei08DarC6+CRDuqkgWSSzvBa+MZ49aH3otcGyZnKoIhaK49txGajDXeyhOugDrHzSFPZEcR4JJ7CyshPA3L2VEFZJYQG/j85qQw8NxBikPOoT9oEN9uYZM9NxLg5NhwhzH2vdzT9vzSbmp0E3b6ua7jx2WURoTeY3guCEaOfROt/8WabbwymrfElfbyCRtkPy778b6oEkqlB+Wm6j3GG8ihUlVUPI2peCm+L+Qc7FsC2Vq2MTF8BBRuwcUlFWsbPHx4vYna98Tx/DoQSyjOKuxcYhLMQkWYb7KfgBQKTH9mvj5auh5o/eiy0UewzA4pvjg5bEkdlOyR3bIqfEuNisR2tkNWS+u6lt6S9RUW6JJ1xeSppZ225L4n5eV/7cYkw6YRSYmLSXvOVxtxg37Mw9V4MUwJOb4Pkpu92bByANRu/UQ/x5nFuNbFtE0evsZca2LP6qCre+74e1hqOEi139HmtVW/5jfTdhm6rh2WriV+ri1jDeAH0Wk3vwLDVdE4WzzYEu9zJ+QmuCBztEsR3k8QsjQlME9x+m7h33X3P0XPpUMMufK0TWnvnZSt43GlYe9SnrwHRSRuJ2sPFMq7oDat6H1Xsw4VvZk/1gakE28pu64NR7o2ky3jiG3wxBR9+G/wZ/c5xj59+LiT23GWA4jDvjAscv25qIYyC5+dBme+fexBfPXOk44wbrnFPytnYhxFvWTYPv3DZQMdQ2JE+Thqet9hsBx75MllRuMOCxdebKkL3Bb/tq/8Ex4VX68e+Kh+VzXL4eCqtfhAWCSnl3qzanqh3vLH3oNa554XrUA02ibbbLjT/gb7YlrQhIGS1d2W5cf+RMaSurfbA8bGoLB7bh0C2PdBeMeCsNyJ91meRqwUDCFIR04nYRoD4QzTTArHFf/hMzoYWw9gQeoTVaVjS9jBj8YLDtcU3TWLsU3RzpgXh+7IWQiiw/++wAkEYFvMFAVUgYBCwu3fqpWc+NVBVnxYc51Ybr9aj2+Uzgvi7W5IYHSJJFJdsmmibh5m52zvY2rvnpPociSRfP35+/hLpbo9GUN0L1JQKe8EazRgoGQlPEoHSpmvi2sk5hQWQE1JKAhJ6By6sG0ThgiDi1ahSg9ktujTjpaXNxY9jHlaOU/lpY3lbISJgpixOWTF4cVGMkA5wgttBwWtcAxaZOh0KJitZ57CyPgAzDtBoBUBGEkBNKBCyPK4nJpiNT6T+Nhmipv8YinqAgzo3RL4K1vn8xJ80oOaPTP6IXgOOVG4TS3wBRSE5ATm0DBynkEmRgblE3rCjum7eGQpQTuIgkqxfYV0AoBgD4CguhUwA0jDqyLcD9f/E/KqVd+zNrLkPiOSxmxjCVf5YTLqCt+DXQ5OX3KJSMQlMiUU+tagUqpXvvv7WKdT1BYLZRe68CR/9ApxacrAMYJFTvMXZnB5iAO7dX4MOGIEIIeXGl0wDC7ChclTf5DnvIyLtCURAEtDAHQVAzTLqJoFvPJ4Bj5Vt3/gzNJLhiovoQHhTCtsp5vkJkTJ5n/nIqg8ICvMBXUSS5Px/PkqSTd3esf2U4cTcMJExK7q4dYy6pWQunE5ksGXrUBnlO5mCGK1OKlpZvDSH14kzEVME9txGYJQ0Ip7qRwfk6UhBStQGYOIxAUDhXRaKC9KU5AnfIhlB9XFlNOqdENIVpN0pwTp/Lqao4TzO/EtcszGoavDI+oFkmrB/kIT5ACIlE5Bx01hakXEG53b1/HI83j/ycI8SYdbArKQA8ktIdHBbh0z+xgUQ8J3YmickpKo/tRvpvk1GpEgv3l59BUq+/RdFSpA0b2RZ15pAfcpA27yAQUAXEu57Z6w5rZMSWIQI6uwUSxNA6IMIhJHl9VozUaDtOb3hUDVtCEcLsv8WEWYn+OxnLUOQlH77pfgpvWQw45TqnyFSpK5d0QlSfgVNiMpuZvpV208huNUD2uD4wD/rlHpTaCRSB//yILs3vXOK+2wKAg8tiMSUmTVkIxAJ7Y8JFEP+UWJWCnA5fNaC23W7JPe+widI2KbGs1nyPU8GLRxufDXs5vI7xO0HX35g95PhYe0UYusg1CNM/5TmNeZCAYJfa8jKlWOa5jyOg/KGhddct3kl5CrQgDGqQt935Juh0P4isT2aW3h74jViXaG9nGJFETGViAIb9tX/vKSppkY2t6R1AqG2brElfOXzKf8OEHU/I/ZA24JvNJFdGMcMm71L9Q98E0L8kRP0teIxJTLfAaIozAVHm7Nf6kO++7EPvnR1g5j+athFlfYuIne2O3dD8j7uOd/GkCB/ls+tTFYnRi7vUIW3XiCEPrrKTPSv/OYMzoWqmUhWOkIXEoC0AcVQJ5/UVSPuM8YGjUty6WfD+4AAPwk/w120EdBs0lJv5n+C/ogRs9AxIaKHdJ/0ft2Trnv82RJg5e7PR6IUzLtuMJ81+WENBNEeRPWZ2pwCTweqpEh2KyggljWDKjgLWI+XWFJ4AzJmWtyUMZ/i5ryKMbPBoG3rgCoh3YpXLj5ZrA+KoWoQkIS8rcK9JhGg5PD/unAN8UkoazGNDaa0zU1+nW4SF6+RLfeJC+BPl2F9gQ1T69UCkgcUSKHZvOGZ2jDmYv+vTI30iU0LlItMPcXgVvyS85tcOOVBMkKrNPYbpVYVgdwj89qKblF6dH1R2OGqxNNbdBQSu+tiTfQ8JjP6OTqk5zrnL0KmH0NyJjKCPu6bT6TaIWxpVEuX6cnflvqY6H2f5JkJ2MMJ/+fhgdNZal43PK3E6Hq5022uRtjLvp3btSHxmGHKKtRZK1C3yt1pJCxMDYiO9oS9+rpvBs9dFw54CunSt9XYgJYr1dJP73r96NqCPXQ1u2JHWH1isqjKU+lC/Ij/kh4NZIKC1lmUgwtWCr2fqopiGV16rmaLEKlaBtJc+FvCQSSfMahW/XzaVMq5ZI5DBtOPxK5ahgfIT20Za5WjbvLkeTspXfakwCbf3ltM9mxA/GzBIGEEtM27pRFIqrwwQ28rw3llfTs2R+eCcvBXU2d3FjQ8tiNlKuq7LTilAtdnanyqI3f3n9ZUQnyWmF5KLVHF/msp1Ghjqo6c6y6h9EpGAAW9bHnm2pLrgm8QHVB1cvVKplzhVO6DjGtMi/ZETpyJUL0mbp3n8c+3eDswwR48k9StAqOYfaZMpvFNqKSdXb3Q+EKuUMuxdO9H2TASeLxGsHUGFqxDq1+n/GsAwtAoJQjCBVe072tXL6Mn8Kw8TVXccx/RVdVpaSEpHNfY8qhMqKKbFkSIvKnXi5d68hiXTHig3eM6Z5GCivowtAn/j+42OwlPvUtZCyb+ZZ/tuuep1fTtEKMwp6StEINQhbzNjSs8+C5e7/hAIhuNTLvZmJEV1GyA5HrXFzYnzvazuclmP2EU6FoFmepGYSeKckfCCMtM6WU/e6/UeQe6GRMmOKpyQeN/RfmKP1MMKpYQsqYmJ76VIYY91O1CJAasYomtENGR60pqyLEZfH1sXagOICVmFqhDUGGd0c9fjG9kqndhEmW5rgL6WOxJvPYdYbJK+nZES5ZoHaIDf8C1aMNhCYmjEqTXPIE2lV5Eg2UtBPrMc3IKEMGztBpqJgNjWTUyXrc3eLxBcWWmcTW146Kio/CdO3i7v/d4MPm/09L7iULj+cYbiyOPS+zQ4NBCcUtoivuoglXbRjuD4oO76T68pFB76AeZTpmpfOWb5NzBC5dqIhTvKseiGG5qUVEZ6AfSt5BFO6h3a0vKwWvmwKq23pbXMCPp0jjT67aN6ibqbIRHEs0KXwT65g4pHEMA7MlNwe8ebJqbNJOLJ+i8yXHhJCVlbmiIa71j5n6xhfQ23qwHvzltfblLHUQ05f8nQZ61DZOtH2PuF+NlDByqYQsJ5XnNaxpEgrV8uCuQHjFB+ZU9eRR/qsdX/R08DFQIXIK4Kuzv96uXkEyFdaI+od6Sc3VRbMFa/fOreIdHzEhPcOWtatjhDL5Jc5NuRWMWAsrPVDP9h65A8PwzEImA+Bq34u7LPAGONaHKKqclIUMuEBwqBwIRmKe/4aN/QI9TI6jdb/Hd2DASFFl3oboQEQtLaAwT3goO2gYqB8u50YpMpLIhHWSqIprkzwDoiQCcMJAGRZZ6G4OIgiNkrMQajYo+YqIL7qEHIBACIv4JouqhaQAplFUPoSskQVEkU3WkEYeeTz/aWT3aFws2RDpfPaKp7mgh888DBDWVcHw4HFNF7A1p+Edt3BJbqly7Wzw/+8zkfI0n2G+eklI0laghaNC7nYzP5i0XnznLPbk6m092dvLsIzAJDLhiF/Xd1XZih5QqUF3TaMjOlaYTd2k/08znRIp6+MZo5VBe4JGNGe+4x8aiIEQsJjK1o+qwikZHGg9js//oCjKzY/tgAiQyL1mPo8PKtGRuA9KupYeqWnB+nSZ6EbeEmLhUQVp6vfjRZA4G8hdqyqJ8YE6K4f3l1oDNKDGS20Djc6b0sDdJxZSpYZ2kqBJHmymu0c7Ze7EIOrCSqjhKMeDT9AIcfOH6Q7GGQUcmaA3vV9BaGo/T8Wy52Pc2JtpzwChz5xFs23TNWM8QCFClCxEz3WfQAE95KBESvZgxbqKkm8iZjaCKVanUiSm4BZ1x1Kp2F72JzjkF/2GSF2BvpDdgI5I94I1nXac9vJ9tEowPC8UvlRjADBk9DHhbUBRGy091Xo9O93cRYNHNJ+nbBmx/75SZMngvClarfn7nXj5atwW+RCgHZF3p0A6czi96uCvRs52dv22ROfTcTnhB78PMmV0q5uGNlK021c9uj3hA0R525ATYWSxB79H+8GIiLrUdG9rMkrvWOIdUvvl9hCgBu/AQfzQ0a1Or+lAQCVdoGGd49dLEg0o6EwQE3WsnGA8hnd02ux4aWITTIYIMDZC+ebeg1WCIhwDH3EZ+/IN5eDkAiQANb2Dfzri4pFujRGqoxvmadC5EWkYTddGJh1kQCW7LyceCC546A+mciaaPiOS1NOuVYhEzrwaefA8anFkZrrQPr8wXKH0kSZ22hfc1ttG+6Ovpu5WK4gKX1PUm4Nsk1QdfnbEqcbe6ZOEYhsUTJNzoNvSLzrc5jzDFQ6TZO+Q5mvRZMuZBEIr7qpl4Ui/N5W3RYcvkEmIJ2x9OwSPV2lWL7rzJTvRP6vykTS5Jqw/s3ee3kSKdJ5lmpulcyvJB7zfb0J5P3M1fYmbe8fmgQXcqLmRsQ7rMlYs7pPInSRYDodczOrh8tDJ9QW0+7NPmcVumw7RxLcJ1zSwagkubyqYIWIHazOhRFTSZMBJPjcRwKKYyNSuKQniR8KUsEzSwZmcXYniIThvA1JsfSkw6hMcwa9w0kcfdPS32gccZ5jopSRGJaTYb+4ae4/FHfLEB3QZIY53vU5ZrYeTTvtg0jZ5/kEvFOkHy5LOJ98o5Tloz7pPCP+clJuQLvlfdWvjkSDxJCr4kTRue1A53S61plE+q1o8EJvBuUT9GFH5jO1nYy0xeL7My3f23OpSc9CGX9Pqn6ffkTYOwTRStF749SkL9ca0SrMB3xNVwGUAjz8008H22COJyhQibE2x9YhNXKVGQM8ahST6p3mqrxWqfQn0MkfMW7HxfAo27r4Hu8x7e0mjKq7gEV3dSqI8hQVDfnIbmIZDrphuQajuKQXx0+7rdWcSgbdZ/nkbKtK2DnKp9rFWkIQL0QP21fHk+dyrOEQBVwMFw9MDYsffAtBzisus2P6Fgtk8RUTR1WdB2wvQoXYEPNLJiPOJXbHFfoVF8BEQt+rVJpzSfv2wzzzuONc1lcOlM0Xo8Tu0lY8VllYU9gEM/eKi3b+Pu44XnuXyk454gRuXxNY0w2JEFlKEAhhbydHF40FH3H8KEKjbdTT1koTs2pmMYnpAtsTi2LRKoqcrjUi50p03Au83f/cFt+nYDW3E5u3PdTjx/2Agm7mWxG/ZeaAJJYx/LBFudyP7dnCaUSk0xrAhZ7tveoc6m26LbiyKDeVVjLfgYeLad72JjBm2ZtdvbKhMJrkdDY7IFKXst0sGsElKEHPi7jB9lIy3faXfrqOsji2brf+hgaFZwfh+N0D+dWznsofje8CYozeB8yhoGPGdA6HOCT/SQfhoIMMQQ2bXz4wS2HeynJp5NuDE0eYV6j3/lqrRG6ksrrwQg68SDChc7LhBv0IxnV4UFwkkBvtsrywl7L6PlE5oSPZP455DLCdNAaIDIzWP41M8w8+RbFWRJ1Ko3oDEH0fT6w+wLLnOl1Nq2Lx0QkA2J8ZEpdL1vXReCPSgMezU2mljrg5xO8FgTLt2QVUsP+GYm2+1pHcAOiie3OaBPg0+QZIlb9sYD1JKsVTZsjt4DpxEaemvG3UhlOX+TE4oo2GSUMHZ/avHkkXR5690NdMk15P4hjKLaQxd+DenJroYV9hOkGbxszGrpC8qp6/k7LSd8RgSw+O/x6RI/gYmjNypjkKbpzjx4idLquC8kG21DV+L7Ul8jXGfkdK6BPvjLkJyoQhd2XTBLQpdSemps2wYVpUPRKVvn22ON8Gjs+jAQflIhXce0gilDK64kiuCtNtQpMkIeMUcIvqYAFbMRsgFRU8d1tmvvAOF6s9U2UXCVvjFbP/s7b8FBDxkJpyldNjsH2S1QphWNBBo9AkHRlSriuVQ8EulUfIg3eXwdVI+PB+gvasPZcx8tPtDDJ8QDqCutunO3ntgO88jcVRegEgm3cjOwvI0mp5FogNvtIKXSpVc33wwlbmWadSUnTMbCIuAh1MTGn6bIW9Q6FRqU9xXowRvvLz6GQC8nl9znJkD0nWvonDKO3kyT0enFGJ0M9GEPB/BCpdTJZiqm6XF94uHbe3Gzy/T3DfleqP+PHRLEHC/MptKHqoQPB4B19sAAkpMI6jPYVKExjMGhRi1A2KPmhiFjVLcQHtFgwEdzQcOChPOqxGx/XezkaI4CN1WwaRWnMXybqi2hoE34HQgM7Da5ORaCiB58/XU3SxGjrIm7djoqA8+c3CEiuFw5i08o13GCU0sEwuFrzsPDKkTHUoA+UpNCOU7Of3HiGiOVka95rfecfz+9+0XJtXv6Ujx4ZN8Ok9dwSfVohRoLRFRm8TjL6OqLrEOy83p/x5o9Qnm/0CEkrXHbsDMFSbitQUVQ5I0XC4hHg6FskO1zs3FRyhWrTuTF9vAkf+69Wp9EcIbKie51LjzEUYDOawey5ZYgbWmTNvO5qfnz9oo810yf1F1Ppn9caZC0enCS0i0gFD2SohEDtg19LmNUTdxqI4oxjb6m6BB7F3nFq9xRAek2TkhD67FLOa2sM2izX5lZOKYQbAdo2lqmIllaef0YMY6HziGqdVupX5eo149iOf1gS8q03aiWsyGYqfeD73ZMx+k3Uy/uMISiNtCtRwcVTZHmDDJA0zk2Wi86WQxkZXuqXNEvF7HjRomYyDGZZw6XXTK1dfNmy3ALd8hIlP2eKXHyr2dVi9B3tszkiw4dFJoCAg4fjQF0NX8KJhEi/QvmOZ6+UugNR8BcuoV0k/GasHvniAxEMQAZVm34BjVTcBBQAJWhaNK258mCplhJ8w61rGJSCKZKELEzx4JplnVpCr18voatAjZ5w3YQt6cGmcEFhRjS0y5YqP1bKTOsIm5bEAIiuSuOwhNf+Ry/jzQ5EnJI6kp6TfJ4NNnT/CY9lSzd2kXWkW3KBTlSYtLM5nlkk7lWpiQjITqagq6VQsHkILmCidIozniF3zv580HAj6YPkFuIBEtNHkMiRGoVmWg6SDMSyUhFpJwdfQxouwfZtm+mr3F/6XL3BVTfl6+/hr8DqEX/VEl6jKmpUTdGswA2dx+lO551j27GCrN1Sgx8/4EKk5v1dCHSq6X/bAVCpUISfnGA0Uy3bKe+CMhfLqMm1N4tyU849JNC7F5P/YRtToe0LHyF8NM92s/BBy3CMRSLfW+IFKMlh/cjOl76JleeTFwtiSRAXq90VxpYPpMiQHqCRND4BEVfMtxxmh7PntXjQqCtxPzpsH+23nJhQLGRnnE582YvHytE4BrPXKoXLF1PaBEXg+1n/ok88UHxrfsTkbBSTaTRRnUzNMs2jXmiE4DBJEIamkOq85pSHYonHbLtrhg5TUKhntdDFbRPTZzsLmnCvKT6nNJZX6ZvNg4j0630XNPnEB+GO/0EaC118XfBa3H+QmvdH0O8J7tI8JwwzuNtmeiEQMU7dZgkmjaeEGDYhBOa5+ucWsR6nvLNeXS7Brvq4W/TRqbUia2IcGZxpcXLHBqUQjPjYXZ924iQEUU5SvQYxcHGQr8IQILUT//6rIH0J2Ik6qpxz7275a0+1PYy0YN8N8vZapaINDLbA5GcxrdAXjmps1DXx2Dp22PTC5dN8dboXQJsAd2GiKeSHmx6vfW3mpnfv5HJt5160q0WK9qEQSGzWKKXP4OJcx33ojmgzJp+DTdglzdZK7Rli8QM+bhoVBAxbbUqaIhbsLtw1XKD3Wmvq1cKUsmsu3IpIjQMD+a/HcP5QeXR6yaLFdH3jCCHIjSjSB5FlexO8W9hwKaT8Fet816lVOV48f++sH/FSg1JKAPuoB9GO/CQdGfJWhAVukK1EkGcLpSCc4OTqdIja7TaDKqK8qbyc+pwcK6h1tX8lOxw38V+JnA9ptC9MUKogV8CLkK22kkX64hsD1zxfmSaHMqxVqwEkzMGp92Iy9MhXOOShUu+DQv5hwhjwUeEt2gN/zg1PygvDprzQO9f12M1YqnzNbawKiBu6D9pdSh0QStgHWokdKXgUBX9U9dpZPhGXJkObhuBgT+lraP52JYjU/qP5RXvryJ67GoEYjVrel7fALDDmId19myZhjtE0JAd6qbzaKoio7IkgLl2pZCcLFnIRftNNIjeajK2KVqU8N9Y1l10BqOKuBrQvmkvdSR2RUH8Mqgc8fqRRCXKVLqaMocjRCvH9KWxesLh7M3MIyW7j2XZguSKlTAVZFQjx0hFUYktSKlq5J8HUag9brP9oP9PCbcfTcZA0Kh6ND6Mc5QNeq9IQ38u9UiWC911Qgzh/zJIGCxw/AladxPZ38t/UkJpdcfdsHG9OY5ftwgdwa6MPizkjKtZfqwQ8OLq1zXCNpG32y4mfCT5o2Oexx5pE/pXCp80rsgyv60IgW5qGs8WFWN24ornhMnRo+g19HQA8ovy9ZainvJHpKj5XiSXdVdN3kjpxFiU5L/oUO+aJzr74H9yfX9TcfKnFCUv5mrV/SZe52htwlEPPV9tR3U5n5bYL76Z1Vkit0l8RS2ttH6OxKCa0e15Ts0MaR/ltmdN58vhK9QyCsawCetx4M7n+sIan74twVopZuHAMz4VO8WA5IEQPmGH9S8VfzaFa76ak9tUySHs3X8ro4l01tdtyUruS9n3MWxEZBciWkQ121Gh9me3vxUeXlFHQ9jIrMhYHe3H6hTWt2TiQqpgvpqq3ll83XBb9H8F8mUxLrRCg+0/wCBPvg+JhZYf3++RZh+pPL44q0DCqcnKWcieigW437Bl1lxAV7/Mstg25dfVs9601+x9nt05VSvuR99saLwX7VRndfLxlfnKLJ9R02AVYniUYf+QtRRxrtR90WqVhCQjExLWIS2kc7HLwVfrkl3xTpkuOUxUUKPt0DdPRuRyPksKt4Dk0rsXaXLKdo2YGHhD+Zui/OtxAKNmeOyALFASkWtgZ1FCjlN1cuBu5Jz/7yv8i4OuFHVSwqdtScRZEa7gD6WaUwVROJkYYuBvw3xAPmRHElv0ti9dPO0k6TOzHi9nzn2I3pNSQju6epJ5BvJKTJ5M8JdiG/4Kqjma/cKuOoUcxOryVpKazaCFhH1qGb0EjiKy7iO1bfbj1bfdw4vYn29PFed9dmIwKzjRqi0htg9QJNjV1J3sQsrCsTW0rVTDTIX2NleknpQVpvTe2LOvYKuu8IUb4PXXKxIuQCUXErLACSq6hk6U5bPAku9CJUChoooIT6AyfjXfBR7YAFOAgJiKxZUziZUKjjCPRXX+Tg1vEF3Oyo22/ffmw2vOn7hQC7ChJ076ssPQfmJ/66+crXW+kepQoUa3Ykhk/oa1O+/C9t1SOkCqDNyKxS6nYfUQ3IIECyZnzPLYuztwqL8o5g4GmzINH77tu6v/Nc8+6s9ePzWvneqAs8yvxLiShULcga0CzjSmGlH3uhdzyPrwXIISFuLzhjjmOtTpSaAA8g1A//wsr/XL+XN1L97w5PfcQrHzFyxO9UHjG9PRDO+/SHq04+hQ3335E/DtEU3azMAKG1bbLsCghPu3BekDIWfz4JDnXXDpUX69GO2+VpCjJ6yGoopN6w6a5uqw3J4QJHRZf71qaMt5Y7So4vNsJ3sSkD8JYSFlRCcSzdgN3J9icJciVweFbTFX4VM6rZQYIulS7q2o7P0tDpeGBNmMuFwKOezSoj/jdBiLPhSCPU9Hk+6IaSh+t+mqiAD0DNaS+49AFbeWutc0gFWRHUTiwmLuFcCsMeyN7nTQQTTtbQvg4IS3dw52VeckKRdgw0ecqoBzOF/cUPgeWZG4fGdRs84b5OvhNApzOeoyYDw+S10r3WUmeYZupxrqb9dCgDYOEJjV/zmEyA86jhZFoTjyM9Q8MT9Z4yZEYPc3+EIonDAvDPQkQeGAN2aQJcexkRLDuN9H6wxz7z3Dv4MYvVuJ8Hv5fnugMKKd/nudLHChfqpDymh7E4mxc0xF3ityOo/QHEWCzlPYgvPnjaHna3L9jJoNqAlAAXC0aFeM24OH8NEEFVkcpyT/dUlTNdJ5tJHcWKyyTeupHCzX3TKm4LCz8pz+e6q6lErZv4+s3y1zIvVlVZ7LkV8KtePcmQLT04PvtTUInlfrk6EQ1X0JqfjhOJpamHhx2lsPJBb2kxZP14McYFZ52INELr0EU0PrKqYVeCPOoinuvgdqOQ6x0hcBPAqsRsUZ9iSON+JEIh4iGBNcRxEMBnCH8WPbDbqkFDAsQIkbSO1yU91wgjccnVkrqUAnE6OTDKcJOOMagb6ttAhX8DSg+kC4p23xN94CVl8GbEh60dR0AIybD0BtZw9Rs00CgagicIRMwOKdWzVcSUM0ju1DC67fH/z87iGfkpGzPHfNY2yGL39nnJNC0TL/HCQZPEBrz/zmqkc1cEnN6P655KRflooLm8L6pj7/97evYS7HX/R6aFRCP86/h6+X3YWnCiRs+szGCKR142UObReW7pAolRJ+q0aDwQk10QvpDFOsq904WtNME56S25ToEkHmpGF1AQnvHx4CDhjNs3qKS1NqJi04z4PlWj3FeoOf7pvUYKAujSvLmyM/fR7Hwen5DkwY5AmKsMmVJ8ilbPAsJ9KnJF717ubvH34PCyus5lRtqpZ6A47kwUbBHT4CrXdTr+adWdk5Y7LoofvC60vVSE4HJ6NYlUcdrqVUImbsLID1kTp7TgkB/F76kFWxYZG50q782E5b1Vcg1IWrNrZue2KJexF9VgIkGGYBCpyzb3dYzmWWLujVICR87cBjNZnX2rZB1LsjnDv5rrvHn7X+WyrnTFblFRX6bHd9rgkH7EVCrEwJkNvHx1rX+UAeKiWDwBNSVmxgqyprvtMV+33Rv4aiR5l672nbVZgo8VjIVkbUcefqnBWUCjTvPf1d7ky6qY4b4hHQUph6S0nM+zxKPJAiYr5xPAWK0yxNnxKRrCkFjhCLHhyplLBhT9pHITSNmu4G914JArYTAXACiBpHEVR7avprgm+k9TLPcH1VQPMCziMUl+yRSLxVwwNXNb5qws5Ym6Crpm4ULOpRB49tqZr1m2jUB0JmqOSbQwe00BUImwx5rsDa1ygZFtL9OaY69nBSRfNwjr9F7cvU7CxgcdDDV/9eB5319/ni/4XeXpIdzHeA4e18QLroyxnxOprCHmKRuhS15VLivFtvacStsj2qxnY50Tu+/UcQngAkSqdYLal5UYrbs61oEaCYl5HfS1BGMuwkXcbWuStBaUuxI793g5XkCeQTmtRZmhUlqxyUq84jW1AXYfwaGCFTgif3UaiXSujc6prPuq/yLfZxeBXmb0TWLzKeoqq3PpUtF2mX93HOhodxHsd+XSimp9yEy23Moh3FzeBs/STu9tRPj5vEhbBX0gF+5qBeVMh3SL+9tPqxe/fI0UQrbLbRyGpH9Okd1rxRUiHqt+owbvPOIFbfthDk6iQOOvPTGt633/7tWwUZm/kNSQy3Cbd/5Ayu24XiIKRlKVzB+7L5RLT3kn7ohPOWOLjF1N6SEujNJEJ7R2i7nfbi1Ju18y32DE7MHKno4FCWLMLaY+/40KiyTWPbsuirb3pq1PoHZ7HoD5EET1683KWL2N7+HmdRvbYthijSDVhAFw5JLVdxyG35etIim793ZXXNgQanDy2cxTXE78vnxVSMIuzPMiWIyuG2OVmnRlgLkDEKaC8YS7Syqt6ojjpdzbsaawIJO0UmMoMs61YnUhd2EzzxhKb+2AeGSu2prcfMMMlvbTuMKTBxknJajc/1p1UAAqPb8MumySvctpvLr0kV14AQm7ccxWmny0RrkNeOyWRAD3CUmzHsq0Rb1MYoYzViyVvyblRNWAbmsSb3qAZIDF9FZ5BTEm3pfC2tHzERhiBUIl2Cl6PmxDnhmGxCRYqTgPL+1aiyJLQiHYg2warnPoRKa06EPeU+VW7q5g4OuOSuNG3Pvk9mO99MIT1lqjIJDUe3VWfijshHmqDFVB6j7tV77XcqHXhZ8JouNb7a3lbIPd3CKmOP8wcOWZrjxldFjgtCcXjzMaDHwb9D1OrtwB442ON+pPekMVB6ZSoiz7/81FD7FUpkma9K9sNkxQ+ThxhKRN0eDsYZ43z4BuOQKrmX5vcXl2yJi4xtCMCTAZTozlED2weWf96Wh7LaZ41yMdSheFN00bQD2b3it0vUG2YMtNZD8RSeyCueoxy627qOMIGGgb7hPTBOvV8F4VzHYterV+7zNGpP9Gz76t/4zPHq7WhD5vf3mL19ORlwMVooqN8WNC3SF2zc2WBdSIMYhv80mnvp+4wVFMVVbkW3w6pvbuJjr+dZR5nazsb43Kpz0AReiTO8D5vDxov0H1ryUp0+rgnNzXtlwgZjcBdQ+6jhseO35Gkkkdl00oLi7PlK6xjbrLReiP4xj+cMh6pm7yem8yFty+Ti4nkXg4XDIAmN9o4ZP4ieBDPdKp4UGPViOvo+VPxjkOigupldijQ+G5geTz/o2KJT4tNdP84ztIdsWlNYZJWiYgvX4YBsJNqZpP/iZP2NhRzHHahz2PPj78+/6eA3vlaU5sfhUxhI5UwgFVe3R7BtuSUuUwc+KYgAky78PhNzykYP8xHeN3JOt3qcNtpEa+azTmkd29yEe0Rjt0bmfLcqbJfLcKeCnKWY2s2Kr5B+o4qXay8XcvMZCeHdCs/oPW706UNOz6iBLvusYpDCa1IR1x3ufHTaVE+22+3MmFeL8BPakCaqYnBourRau2uiD/ZWiadgvhEtf8PyDSmfflNwYU6rrmeayh+ijeHyFb1GgU9/fV3b4TVrh1esvau+eyvPhkQzn31whWLyLm3N1jW8JG9+g340WjVhYFrQeEwOFs0knajA86ouKjOPjxoTXm0GqTaD9TcDydznRklaA7BkqweuwB4UlfpGDRqYiiuvu6uP8fNB7etkKoJPFmtj/Sq5zViO5CF5+7DIimiE3Qrm5EIskiDy6uotQWQdgNRECuiUWx7LXue3PepwnrdRc8c1vByCLrgJaL2nFFdDKnzcV2wQsxfj/79Tb93hvqSa/Sp4AOKeZPXrHxxLwLsVC1aZBthjKvmyvEcWSYN0DlDPdY7BuY8wkgR31pKMMYJh34fcwVYe8YxVRiE36jKugWLM1R9m7qOP8YGLQC0vckYOms7QQXn9OSMoVOhO6dxZUGxgCB3UwCxgBPQw+jbtWY0A6fDaooEL5F44bHo4hltR0r4Zz3v+efNgXWZxnK+DreJkeec+PG/dbCtIXg2MueHOIKGMlUZkdoQESe8jBlOgvkY1NPEPJWKQFWhEZFC64xpi3UH09D/CZOMjzaiRVxwzlZ9ubrhLr9KG5cS2VWuFqJvCOHf54TSt+BCUNTBKaWoBkTe99ZsquqlaFtXmQPBKetpicLpTRdu2/NzFWa8VHWpHikY+tkP7u5DLpbamVJiHYvRUgqsB/oErni6pECHXG8tswx+B/iyX2GHp60fLb3h2TH6ec+AH+G5JXH0uJ4d3SxeQYY8xGt4oyOqon0/FXyQP6IMhcVyUjkcMXVhfxrpoMf1mGtDgArpoYX4KNsia8c3mjrisJMkgsXbpsSiMiKa5wviWtYekUPwo0/SB2aBTO6+kxJyS4vl4+kRyKb4O+7cF9zyLtBuX/CZme8ckB/kQHuAQZfaj5/wuvqfwUv9W9v1WGebDDsJV8Z1SRj7BbzvEqG5IZ9dbVT4ierfMSGyh20HQmo8aDEkN2r8CYhY6OxWb1ZlKetHxBdqQgtFF2swKmad1TmXRoympPQO9xJMDLdHKy8FpN+rD+CjxnTT8NTZrbOTZa3CUO0Jno5Z1WhYEc40D3scMWMvOXuSbcNEGLhKVv9aYg1P9+WZpeE+Afk8sP0eKa6/rTCxGx1LuBJzw10sGoitSiT4XF/ZWir0PzK5zS2G/hEjKNANBXLgr86Vd4StOkaeul9Mivf3dqx8KA+pqHdSeexIAxn/xk7DCwAKXSX7SMYmp433J6hpfoSdsYqZQH48npsQSs0wG7FNkvO9iBfFbHsfSvY3HZ+Sj2/IljYzeZuHSiTkv6YAX/r4BFf2HPraNbPfXgK4SsalrVqgpDR8wQekC50kdgB7VxaD7sDgpiqFAeh3aee2Zh6ft41HQQqjJ3XgdUkqxL0B+ONrsQTCvn+Lfw/XwYlQa80leWvaQP5wp0dE1wh7y88l/UHoNvQ/LVLAP1URxJ82U/JflBKWtbvkaPOazEpxm9zrd64JrhClusQshU3tr9Kmq5IRCEP1WFZT4lLRm4YqSIDQw40/EwQnEhSkI61YC/2TcRw/HKq1iQ2kt3d8SYzYV90lqop7jsib3MwAi99VABZsxiC6mModpMrLOoN4tVR/XvD81MZaiuzQt7UjsW/hDf5vQfhHSIC/I/n6YUre5FtqgXlczVVkPdQ7v4YmnIb9eTzzUOvD2qzsijvkDRAidmt9N/ku7UpaiLC3QR8QE9wjVBGNDY8DqUyuhMI0fbITU0FnhtwC5igvpLVYAPXthRJoX9PbUQG1WeSdE5RkLMSrrMCeoRyUEmXKQGUP6zt0HiQpoz3hJte6Xlf+C7VM0SKUwGPaEAZd7lD/x+PgM5zlJjLSjcoID19e6XLrMSmCEMCM5iyZJPQmvXElueFpncbyf1WfUXzI9pHzKVIT4Xwtw3KzkYqlLTaTG0upzwG3Tdip7VI23XFZ2SsStzZ3LWUwJriC9tNdXDVKvc1rDrwiX7x45m5B8icHh9DY7ZC6e5uo6P1nhtXjlkgotI0P6yDY9hI4eTTLSdlF5AwyR6yLZLTwtCdOnrCoBA3bIaMzy6lN9P1V8f3fo6SXHU9GM0HuKuS8LjMBjkvbMSSgoQJDdImtJ0tffNvxgqMgiFdybHLyOakn4nF08lNlkHexZGQapdAbr5XQE+mDIwg6AdGobd5Vgr0OzGvaot5G+75EduggjloGC5duGA/l6yy1TSsGqeqRLvGSIPkI5c+vZFXb04j+NDtLAcMFsVtbFBdaI9ixEMViHgQqYqdprw/8oVa5lUot/WhvaFkQKctRPgYPLyA94s5WKbDdUy8IcdCq8accVm/IlJdW7UZYL510AnxuPvJT0mJiJaYLF130lGPs66XKQiUlWY47EFl5y6WLduLgzYAJ7FBxj+Avv+lAObmipHh0cyCc6q61o7HtxIN2xQAFbNFq1Ei8KbiTpXP55kQ40cAkDzWFAEudIWMaJm69E4DCZpIFUviyiRTRF0KFuehzyPsxKzS6QpIG65/TI6Q7n2rbS18/ctSWlvcv9EbbWHCwhKHOPy69boiTDkPNUH6QR/UZvjr4cumKuZy/GIYhc3SAkuqALBUEoyl3atbnKieLXimGtK5Gvq0yhI0CXwmu8m+GDubvH+oikDmG6gS3snlYJl3NAZB1QSh+T0cRMQJsRUjvwdNx5AT7yEFr3/S7uvjwnnQ0L3m9t4SF8SNUWXqlMnAurmipQ2kBXtA5d1xI1QNPnMaF3xg1ajzky78SrTuEYCvnwOO+9Lk2nPXeN/6xffGEAvDf0wJYTeWK+usUlS7ltmC4CtabJObhYDIEzQLIDRjMeEJY60XqX4213UmnwcGmxkgrIVHSu5R9Zd6QSMzTLmqqlLCrwXWUbLKrjYwaubUK5ytSJLDNoV9sj4XDiXTUv9hQ2wWe51BeIOBoqTPUI7SM8ZS4JBNofMT6Jms0BQEO4UiqYXC01/rp/hHnFs3hNFVULLNZ+1T/YyK97e8dOmJEZvVIaYfYf59/hixZisX3aEHe7rDl7TkQTAeOPxtFPoJ/G9OSyorRLw+aq7Xu3Ao83HN/P6Pexh57Hqc9kjui16h5CxDfFNVp7E8DpdKnLsII6qfgtQKbgNOV+P+4iH6JK4gI453Ommoy9Sptqv2JTlE1NcR/fdZ/AzqT3T1ZyWfy6ycanlvl0fC0h2cBLSj5KGoOx48wzdyoUpNEp6fueR7cexY1g9ikgdgVYHU9f0G+tTcQDw+RrAcs+QcnBNGfVmoYznzVjWsOftRuz8bCkKaRFvhdqa1LDZ3Sj0DEWZrcRHm2HaNIrTNfuIEgJ6tcsr7YbW0eJfG4alEutte3mEOSgVg0FvO4nLmK4dRKwRNtoR6KLwTKy2whqtw8oQTjQC+LbzJxkMIsjS3bYwMSpdxDNnQa1OwzgnRzU8BGsZZ/u8rBfivPM0gk37BXL1IWKkxksdMpr9rlxlYre+jV0OwM9HeaJaKpfW3eIp7bS3XdSSyLY2ZE66et/LEitZ7Siox2CE1Lj8y9Gb2yJ+ahLAI9GbDqRxyfcss3jyP4uBUrEAnrxTOsDygyqGAEFooAEGgKlJhivZfxGYCzFTFDvAX7PYfyPIDCAfuArdRlDA6i8SgMY+IIEZbMDKVpNJzjg4UTBDwe+X/CvJCggHDDBYLsQv8k3thv4sIfjzPghDtcXWh5jh88TWXYIvStx1SU90iI9JlwKwGM3VCAn/ZQ+yZPHGYTNBGdLeZQKiwjh9Mq9GHPUPzqGVRj6rwfOInjDAC/6RflXBo9QSJ+UZ2XqOAPymflWdkEv+kVlYZQrZvEhv0BQkEGbE2JNLb6A+eILMADdj27FrDqFJr7yK1zDYb+0l4n1qL/H07+zcAqPjcxWCjSS+2gb7kqwd35IYgnpJZRG//nnKAMODXtB1Qs360oknOnOxytVOyuXgxO8GGqjXnx+jouqq9dPYFdldi2V7fF1odvfOw96ltB8UF2kRSGhUUZWNMOPCddflTINoOG+42td2XMBrcpaOrbZhl47KXpyv6ugZtYqis+V1ANx/AkBVAi275j8xg9kPZOj/caVzDSVKzvgGA7vpYPTpIlHjDtYxygYfwZnR38twtwqfCEJoRA6VNpZeRl74TtH14v1iJVfP0fLx5npn6Z2Xjmv3PminTcHcPhsvPkjzMz7ipD+Dw7g4Bn5BvpEeU/bbFdZGlEOkBBTVeESM+TtkyRvnTKYNdCUZsT11q4NmouAWgcfDFvnT2xrv/GAiWcq8k5l+Wg5/elfhNH699XWX2z851DrLkP0tuwkpij83ZiXFLTE9COBEP27QycHEiQPajiysXfxuVapyrMoVYOytnwAt5IUsG5LQC1aG69Rmua/SHUOh8v6+5JtDpv97vXSrKnOwPrfotj83EOlgHWMqmxjnUqMz+QHhVTPUTHpC9V79z3d/6dyVpPmb1aswQaHqQcfHGJvDUGldXr5jYrsNGAWOIp5JyNKWOUEPTkzJzkJlh7LRFuv6Gu3uDGr8ndnEJKP+3MsfKBa7mIvyfcEdXpzjJDWopkaA1qmjQmFj04U9HCwrLj3/hsq6eN8ftR92XiT9puvMMwI5dP0SaqicCvdzIbPie363vFaDOVy0gTf6vq8uteCIWuoBKpTj48yVAOh3ld2rKqzaYBA0gmpUQ20mGRonxTg1KUtfHu+RAiYPX7wFIuGp1I3wUXqXu6uYJS6I3xk/gCblBAINm9Q7Q85Pri13KbXGrLQhLZ6La068xsas0Vo/3kGPXYBEPqRtT3yrkHW+Tt6qpDuvWSd8z/sp/a0PYkuymQqkJYctxd1UygMWkmUo4NIeGYbUTbpGtcjG7+mIVkkdPM4XKS8Q12DW7QgDHiGOm5qEFhiZYni9cWzcMC418lY7ckQ80976uOyS8Ln7lLlJWHCvI79XOQ/9C8Uccrfqz0KhhA2mmuO+v4HEvYQXTzXPd/+fw+7mYuO5VVCjMxRYgrEsfFGw4d8fzrPqJNAyLuQ8N80ev/IxftXAUdxSqRtFDoAta54nMJS/6SFin2DVRlgrhQAcR6gI2JyLbWSVQ0AUCIHgCwAKfH5AKW7Ctha1jxfNgOFYI8m1bI8adlx3Jumesera4BZzU76ZMf2cBU8LU4d+VC9U+8/vmZ4KQdMARIqReGS0/X0T1lCCm0aLy/rNRM2i0gpnhYFLZ63O1TU04iCeDfuWxrikR/AN6zlsO7+6VVyQwzDCHu7ZcWP/c2HYcdbrh5/CknrJh414cBaQdOdg6VmLST5A71PCursy4vptovHKGN6IFeNE1/5/MRCZEZ1L5G6y+2F4lq4Jp0mnadru/M32lGHIBUDawbDaXlJDdeDGoGPnqkLrsB6gpSNF/nzZrecpN5Vrox+MhYqMwx9dgrO6t+q6ELqaF51wkgnT6d4X37XuTMvz7XUfXtQKnUUsdFWYSYMEcAkglwBwOZuFnEzVtEzFUZSzcht5EBzVnOsOda1yWfOKA/uz04vKXe0rr32XV4p4jWmza1I3ZQOm2XW0JfvN27bXxTJeRrqp0jaUI91bhkwgKFPOcloODTjEozlisr3Yz4cguJ8jnws9dGjvTQ3ntCYij98k7Sf+r7uLwiiSylNcq6QAUsRWIzK3lR24q9n6c09Xt3Bx7v09PGRbIbao+Dp2MUWtVtjdSiAwpU4SZ+YDiV0lXt0qAdVrme9zOaLSsi+Q8FBsYVO1+6NFfuTWqJbsesJWXezs3eyR/Uo8w9lurrtdcQIWD4L0mZM8oiMgLMvssGuJRYYtiqviE+gfSb8X9BMP/dMMEoSgIBaAAu0wIvs57N/MM5NXHY4IVTcUMCKbdaKv7M/PuHF2A4rTw4rqld0EmIGSrxMCu3t+tp/+qtvwX4x+yerp36IkulTdih89S2I1JI95Ibgrtthz/KjmdT+LgvfNDoynZc5uE9npGgpTrQ+PLtEH/qmQsog9EmSNmAVwkatkRbzu1UuZDpT1PvlkWAjrtIhYd6xCULxl4NrXoQmV7wAzkkD7QbsfkF8TKmx2Tmr6p1Imxo3oHFcxaGRpy0K9pO2CPcdkq23WYrwG+TyY8GXd8Z3g/xgJgFyAGDLWHACowwOPfAoLJCHfWc45vG78TdXJznz7Eo0OU3hQ8KknXbuajoqJt+zN5rmFrBOpe82vIORD9fNSHK/ogNcDVwPpFDi2o3DNB1okYvglMuS2jrfwNsntboq/yGyE/0oztMOhbBN7QlM3xtt6B3dynpO+BzINvoMzDqBHBU3czwNJnnNrEh/sEM0stlSQaNfyI7qw2ex2QCUYOFEr6MsGBsj2X+Wv5us/GLfUFZMqZ1lwA6ktX+GtoqX4eiQK22NPop2BlHPmKTWcJWJacZC69ol06F4HszRYh8xIJPWzvIs5jlppKRETF1s97TlX7zZzE1TYI8vB+jNxHN9u7lu4NMx5Sk9AWtMlNz5/UKZvCkwyjNrKutbFRVwcZiSBvN9w2Keimu1pit27SaQYUUaLB7DxmuaHekGn24bkIyPJ27kWS7I3coKeFazGjbLk86crthapsqMT1I2klldU6W6RL/k1FM5z3Vp45RtTN8mRlZlP50JjIqa6jJTS3bNwCEAkuRWntijIkGvbL6MY+fJFrpQcYs4hubyhGXLXUgB50+Vqihk5MULbxtxavu7NmE4nVrhea2uGx82XjlgxzTnacdDvb8a/5jmMVHrIcHKdxF/0Qu1q/7Rx7SVcbLi59Te4QU3ea3685D1Lx3vUnu/Z/2gp2zX6Ka7Q/cZMdy1g8bbC/n+jrdV9cohZDM875Ikz0lEkIcDptIDx87sUA8hXkbSJiIKocIjcn8kXtLL7p12RVUhguju/jD1dAGOeJnNe+eYxxeaZwemjt42xEhnRuJ6UZrCxwOHCYidAoo43d4nJT+nlLu3M/Uxr267E12CiS8ZoKnw7naMlFV3CYxbzTavWJnzksm7jD5HaNf2rKFaj3PapX1HLIIV429dJqyedn3+eWe6Ov9Iph/KxIAHrk1s5hRwZWIRDPC3LuILjw7XYew/4yZXlLAlsSmPnjKc9gY3NEIETDEvvmpCXqrx5hCqLR2l0RIkXfWo3KtHPbuw625SQOpPwkCUtsJJeccWcZJro8u0pAe5t860NHIVU8/pyTcLcMYw4Id8lijMl8NxBZ0CCaX7U0CptHfjWOOAZMTCdwKWGBFPXN2gEitidCf6nNIoCr4RC+UJIgCr5YS/xDx1df0C2hJDlaqyjpYDvSd4JDxGXV06DzfRq+XK8/IDATFgtReHcNWEzqtuN3hxoLCEGMxps+BMa7C+0fpF6WZWPEa/UdNy9pWmwMrD6odRvEQUZDlCWhz+rro2JElztUoSr5rRdw56p133g4RGXuwihdqhrWxyZ0qaUPh/OiNsiX83TakUKpnN+H5a4F9ftLlv318GI3AYLwTjBn2At+1AGewA2WnkxEhka/b066XzEDs1wOoH3D5kF/OHY+eNKEvSiPLZ2+se2CUjJ9M1PY/4RLMCK7qWfvK2lnEdAmfl2TVqOj5zPz7QfN0vBRJJffugnn/h8wfptpsAp+QauybpfvNFB2e1iz79Buvo1u3FTg6THvuKbKQRbCeb+ePPf2lzWoNCreodpCSPB848L6k1fqFzDSh4bei+rm2PUcCoTucPao4qrJiMVtqcgpIb1SBNPaqbIwqrt//yyrN5N1+5M1093/wGi28RNyYGf1WazgseS0S4+EU79yxP69UUe9UxYjbwPcjSoh2x8UJMVDV77bjcKb78rvX4hxsFkfyj1jt4HnzogK84Mz9A7cfldJSAE630d+/JB6mcH3x5ZQG7fHlZ3WtA7Ud19cO9A7JpGPZ9Xg4+e9SEPRAsx13J65HhDip3oAP5t4MCIUXKr/5Fmh48szRFK4O7h/jabkcY14Wvjndrn//8aViYESD7CEs4XB9j3yGP6wy8q9ru3K4vxD0a+PltLzKVbbFV2hnIvHCoNCavZqokWjEfnKkYF+gb9pqFm8GaFAvqiGPBmVS/8b2ml72n4pn1EbLlwOPGvwSWMZLrJ7ua1usZlhWaY3hTqg8jFUV46JW4rHwR86rvkos4g4RFsMu8IJaYjxExEe8CANvl3H2GY0A3ghr+uYH81HPJrssuW6AkQFanoto0xwXEMGLm5iQdJlwNL/kEkB6elyBwxerzzFvDU+tfwJk9FZo7BqSoDqN4i/QaxWYEVIvRkvLICQ7dTA7vL14A/eEHXBUZz6s/gmGOVlh4aYEDEUyz4oM5ENOo+956UmZ39pTWzEpMQ4ugw7LZuklMlAELqr6qvyyafOR/SRtEZMYWKR/urWOp4aog7Yt59mhqopaEn1ef1o7ac6UBLAU+E5ABIXKsQJdr36C6A+J8I9ktJyiepdk1vvZE7eQU4MQ5cHcg1wt6eYuG7EA0VpSTvmEwaKGH6R8/Iub1f6f2D7d6b2YYdf+hrERG7PoVmsL+t043W390H3YxuvD5YpelEJ7ayRmrQx27JYwk7d/JTeQfOWywPSPJa+rzxGOWYqk3lPETMMuSV5gvLjLCzwcyoGKtH6s8xM9vG/g8APt3ydufk/YhL8kCXV+gCRHR1Wrw3mseiCjVpoy32aZ5mSHNmHfhNKfaNhRwmlHYtRPHCSDIV3RCrjo0OI1HCXQD8+HITHg3g156E+QzjnRaB5NFDb8oLM0JOgQY87ZY9QjvP7QZdSqMiRmFyfoM+qSOOTMAuNuTkg88urQuW5BOLBKsWPsv5o9UvgtZooUa1mAwHTbjqQoGgHU7UHghpY5dkzTJ9pb7/qXu2ItLLcHUJqCAeMd/kX686rL+sB3jtb6jUMEdCBp993t++2pretq0rz6MY++XkxeFlD4ouN9DCXFhARBOzUTDGpdlevzqOqm8yCnYRaWeU1B9rHSbJB71VIIjNz07Kq9V4zSnvNTLaA6TUi+ppGrXUuXJZv0zT58B9NaftIdpLS7SDwaDGPIQwmzrBpqi33FMPKPo3KTWw51+gSqqwC277N8bWql3TUF2RmE/hfbPIcCKsCnaaqIo9kahsaUSU5qhn6QzxMbDb7ZlE8mXh1oZ6m5NEJgGnxeMxEqCO4A+GjsSegJvIaNKiTTnMf7xmXeEHuESJPIMo8KLtyX5NCHqQ+CAb1coOFu+K4OCUfDJNhnkCxGlj+k+sRbndwNTADuMnPH+K4VZkz0dSHef5JYTkbwkP7Q0Y/9hOY4VFTLaanomIX5vOd9XkV4bKkeIO4+0jrRuzaTCHhqU6ZcSuL3GA7bU2E5Me1OHV+0ghERfDbsdRh1PZiGFH6v6yw3UC3SBkW1777a/eNbWtjS2yVIWyQ7NFkcZ9ClSIsxsb1G/gx/Ys0tCNS9SrNY1eI7J5VfNSq9TNRUrHHwwmKQ3aSlGNLJsgfFWZNaocX3CRSo80/a0PqKv7EMFVfwoaGbs35fKWtJB3emhgiwd8biu09sLewGyJpug1W87JbiHsu/8GKWBIuk6uRDg3Pe2Bqq2I5Ju3Ai7qP+6X2lEj6FBH/dJwg6XHDccps/GgWlytAFl1HtT7E71P5ZwKs42SGdSXD9BuSFurw/ef9q/W3ri8AZNNX0Yi+qIHYhMnYitdODi5IfmkTZeZxMnFsyycRs/vaiCiT0hKz5Ktuj/SKUMLsNTCQ7CM0AhlIWPTGDPMybc+RfstmpXmEPgRrhswh4/f4uw/oTjQpvlFmQGxTjjqE3dZwswL3nUbNTeKy4HwqGET+pZAtB3efH7DTGWglGa8JILrRMqbKX5a8yiVG+L2wp8UFichNDGpO4p0BclyalhPwHlbeE6nWNRMgO7CfB3SRgQA3060Oj7A3+/zUFnmhK0lvOvlBXUdiu9jd4W/equz4bYMCNLW3CI2Dw9VU0QOj1IwTqkDTr+Kx+O39zT884qIkyBRa2JFfRlIgBLDFcdnHZKFgj/p3QtL7FQgxOamaTgxjdSXqukjimV2D6aBfOapX1Q+E56IbcNIqhKc0xxs9v/ALhqn+BydQHxWLqX0Ddpnm28nfwnXSumcoNnh/f1JpK+iTbac+jb8BAmhDpo+xbsQ+8ghnuGK5gD+CsevsQJSOxeI9CfX6JYxR7ApMrmgPkcJ7IQx+NRBUlvfSpY9EaEJzUIw52UvohCPQK3zMSAvrzYnOw+6yYvfWC4zeiIEamgm+kWgmuTsj46tuqt2IsobMN64uqGLdg7dcwoUCiuCK24RJUordijUQR45MngEexlnEK9J8r6L8fml0lQ7q3dD8XbtVbK0+g0GF9TAZkhMqQR6Im4lzdewwnVO12chrjdcyG8M1HhRdJv3ZWiS98gI47LLgZoYGotx56heucE5pXhuZuj6gWAouzDH2yvn0ikjb3yL4Gjgo6CxxiUKZUxEgM3NY8uIRsoj56WWPuwMvTTcLTd2VpT7ixViFEzScgYOulRBHwfEzb2tPOlE3JbSEsDEAIg7vUpQ5T2bCRIHAAuah2SzHLtDTo2TszDBplWsAJrF+gN0Di5VjpxQyG7T2NE0cSWlSWwG6fqBGQJ7VpueSY0Db/FUAiOzEDHjKbypSU07/6VCKVWWRGGWOoBJsXkGxaXcQMvVHE2jKpO64OwpnwqoOtT44aLhsQIGJ2yqgDfJkL6CETA+5k3DKDjNKEAAjRksXKDSvu3DA94sghjbJZIJgK5+vcUwpDElCDwAIvqzqtO+ztnLx07mDxruB877chxsaj7XSSXzw20LyfVL051sYeHefa1qokDFrVb9qaC4wq/+b4yz4VapfWqNp9er0QWn0K+YBMxOqOS+558DzPdUSSGnJz3mCQ5K7vIZwhNBQ2LEByJPfJqyyMm9fZefYO+rrRvqlj8EhpcjStldabj9AxCBQ4YBrs9WsI5QOvwKhGppy8gBBfqhRK5PepLo0Pi+5BpSsoNAfnUpBuTVtrtRl9fqbbutlsmndMU6oEcOzzIkQfURzWdKkfGBh8zeNX7QKnqFAYDAmGqY/SN8IBYeIiPfH81C9oPFnWXZnLjVQ/Md2UqFhe99vKZZ8ehGim9+VNvCic/cmzmEtzZ1skCx7G4p2too0HBjNxO2AoDlH14UqyAXzwTlXmEzjl8Jmi2mrPOkhKOGpoAO1g9uVVYZJgeGsWY4Xjf8/7l8iJAJAxyYnIos4Fguqi874L9cdS3/VQSXdh/KBPTCZBvqZdsDdZ3g8tlu1q0RLGr4cnvrRm29HN3dHaVBMoUizGsY+6i5ijo1cjqisN3rqGVLOzwtnhooj1WoGtoYdEWZKNxNE5xcYbjydue8nmogtrMpKNVmtVdFT9XnqAZKrCcThGJnXnTCos8zwLRMPL46g3DOBAY3hz26Puh/Z6NPlE0JLGWE87RjePguIyqXDa7TbgShKEfQjxD3bQZksTak3mtsHpXkqE2bDCHAzh5fkKrtPveWsbfcWNMpFDkybp8perIKgbW5hCKKFQzH8rfKFkFUVZgYsbos3RMesjabIeely53SgIoZLGmPaGE2h+4xbkWEst5OrNwdUchwgbSbk9wGu4snFsFcFLBRk2KcNhB8qf9zPtuGPGzrYGi23DuERviyt6c3ZTdhK3JzgrhD7Z4hP180oylWtWkxXVF6UXCUIeRlP4LOuDSRlZ7lqVFnIvFrLApnC8zp/ZNytr1m7N1sJvU16q7H7LoE4dleg3L+4eVAkaDI208jdYkLuaKd1D1yCVhazOwd93jAQSJBaKliNdc0brw4illuTqVx3y9R5Wc2AxUZUQAlUBJxFwcpPMYD2XEkPtiDVdFzKqKVqMuFlq1jSnfak9FCtWXqyVq4MUr2Wz5hjadclqRwTxHpP1Gi1nf1XrwGPtjR9SvRXX7ICsgt6Xp4eZms8mVmn6YNjBaUPu00R5flEamlCMsBw/ALeER4EaLuSfscJ17Vuke4pF/uIZzRCy/hl4rvwgzfVhL7bOb6c+ZCScJYA1ccWrRdQXdc+3sy+QTwJxoUy7Jd4MYZeQ4M63zU9HJROC8R560OM4Cp6jaYidSGTKF8w1oaqpeK0HccfI17Y6NlKLXSTSCwNCTNsTrj4e15Cn3Ey1f+73Pi7OeqY+IEariMNDd9fAAGR70ooZL5Ar8JCJcVSXS2UhVoJdKnb4gLOkLEguEbttgJm7bRbUiXsg7RfUr/DI64Fa+cJvFLk16DZZ0kWHy+O+qcYo5UuQUeyhfZQgRZLFcHpDdJJ/lbkBxj+UBtLHPFO5H3VtxuejE6kO0C0r9RavGGl0RV9zksdvyGUACpS2kgvIMAEi5aLUl5D8A0yxGSh071FC0BErZu4iFVBNbNJ+yaG1OimJ8WQunwlhDRRsPpkyZbICd8EOB9j/2cEN+bL2X77PvbJ/eXT6cWFpgydcfr4e1DVoZM3VoonMdcvobyB/H5N5FitCcJ2Vqtbfh0mQhnAUpUgi2GXJVuaXUjIZLVIrYme8xk6fPgwj62zLTv4mrvzSyXb8+UQi9NxnhbmPOrX3lOJadHNO1SORi3y1SUtML8TTI4o6BNtN84kU/XeHmHYoc5MYQr0ft74CGyggc4GUva6doDEHMSt5qi2pbvHJoOcCz4M0eBLzOVh5WHhBO/HAOk1Uz8qmbqmBpzDct9mU1UaaK2V7jhJJBYAqXxrfalJvpHwA4Iyw2xJAt11mnDzpIjU8XYJYEtrn7daktcxyeqrMBA0EkLQBnD0S8UOARbik/SpbW+rWCbRItcfIQ+wWC2DEPxn7ZQCyzaYn8s2Qt186K8Ai+n6advMTRZgB4V33zdxXEBYgdbVfBLMcxSkvEw0WeTZxeTGVfyh9Ssxs938trV1EBx5qF+Wek1/y2H+B+neQNnvvgez53ar5LQUMQotGAC/9NeJ9ECwMOcGDBDjALH62Ry9ZoCj4s9sZBBnVyCTQXnEb2BcvBSZn4frdUiAdpGMbKkT3R0QLFaOpUsRFqFe9Qe52RHhFrKcLRAB7MlnEer09IVQl9OLwlB9R1ranOkWaxML/ljYgLqKnE81xDCIHHsPYwYEplY6hzS+pEuvIohif6ioTo/sI2hrLObcpP8Oz75qx9WnB8+Wnn9ukOUlzimmz0Q3ue4NM3cKWVvtwaNbU7JEdaj91Z0S07W8mOuZcRFKHpV8LcS20/SNdX4R9KT2ZEPs31NsVytAW0LlwXlPSFvzsgENR5uOCo5nM06LWbUW/ZnxEgeb7sCBbXB3ns3oSOjKAlvIzMKjurkoFi9WCLvaMy68rrzlfzuJjmQjlzKlvRAhxbLDVA0eiFjpMup3cU20hpKKeKBFVvguvYk0WuHBe8JuuFjX+B40HYjEkumAj8KI+5esQF7sksHx2Aihl0fjiEo9GPi/mklqQLhksYU/r86xVUhy9Br+MK63p43wk/peh2I9g3k0192Kf1Teubrk8rUx2PBdCo4Y5Qr9Sl3doNpY4ZwJNrJzuuJLmzM6Nby3aLzAifkAZVL4i76iCisfmym8pcm498b1HJHZw9EvGd2vHRZzPwcPIaVgkdNvHs9PjHPYRwH4ZXYBVe7B0mVvpY6GKlLO9rs5sySd9y9E8lmPxVtQ0kuPDkExXGNgq+zqUmsjyUy5ridkPrTJxD9dkxB2bkXd56ETOCIkMw72/OvxaUU7L7tbNsyfqaPqjcP9ELxqhesBqR7vWRrnbh8/m1uPX0KUgVZt12JnqaDlOvjSbEXzCnFuISbHIbhn4lfVzb0vlRNKVWwsjDvPSLhxJA9sLNzjiyfCjHzDOYFSSIqdqd3xX0RLnnWirUlFlg9fd3wOSEcqmm6pdKznjoXspAqGH3edjKfXRfwtXleQRZ0Oim7DlK5Wo13IN+PXNg71Ua0wAF8fLtCbGiKLa1HNUzho+bb27uKyVsZ/4rG54shycXDtHVno9ZgHR6SvJuouuI7Eg4s2GPOkAaSnBf20KaDykfLFPlrWXiyWrAxCaZD3S1eZ/evY8dgWQgWOuaAOt7oENXa5WPwXAtrFj7OnTLvaRS3wOVLBsm9BqaABbJTE5YCV8LIx1zfmUfPbiQvW3scX7IgBS7MnNbT0S2he4GMIrpMyCJjCD+XKDLYypIMVQYQtX+StZwj0l2lnHLLcA36OYnMJQrnV/eB0n/9B8eCSBxi9AOvhLqUONZYM2k/HGxxKwWqKV7KtzN/SXFUWk5A+SgAA+xw/CM1Qp1oYBncEIA2JstLsj2ANUA8o6S+L4GXrNNQHoXx/+F4lBm9MOwIk17U1R4X0sMCT3je/sgSedOM9UhGjSH3H9owIdkFkaz4V46NurGCGbLSkyf+KtGcQgUO7RqZKjCoTK8+r/kO65aDbxYD1vtVyDJjVqNmctkNWRchv7orr14f5lbONv3iWYQ8U4YcbuIs8G9RKD1HGvFaoZgEm8LEfN5s7CBp5Vj9nk33VXfF40x5ojo7xL9EX2pqDCl0ZlpG34+AxfbjjHUTO09LkE/qsGYJwafW2PJsmYfGVHijSCVYmi0Hp0vfbpR6msMLFNzCmChIjfdso6fFsWLQFjSHsvuLWUf+Kv4v68dZN9nmYIoD00xsqwHjll4zppqD2Su79vrZ64xrj8rX5fCURL/sCjhS94B91KlgaDM+6VQfuiZg2JyW0cuLqN6HwgWdCzdyVTzwEEmghARHL/S7r2P3N+Xm5XAuXojbxGJ6IGpHX8zV/f7USTlbVlafwWSXXFXIvb2sr6R9aWsH/KH4HiGl8JM9LCEV2Ls0kNs7utWkL1BKSd4st0Ino9hjzUyFvuRS6xnm0oxVe/ALlgwZYg0txD14LNaOjaKkhLZI8H5lFNCtBAgBjK65vlTeX8VzBm+kJiCHDX5NRYrS+0oYyJuot1GjfVpTF+HK3r6EJK+nhDlt0T5qKVhoBIy5L+PHV2IawGG7mS/MzENivh8NNqPE/l8ktRsYOSoSnZ/Gv+NTf8H5QtXcd4ke2k/gIKPwxPr6MVH2f78xOfbP/jnSQ3vt+OvL+S8CV2cf08fH+0L+Y/8hU0A2EWQlCq32P9772g/2dlhCYyMjnfgjaBMHkzOyIswmeN6tTtZhQ6lEmifMrui+/44Dx/0ypotNKd0TYH/dvEoAuL7VmWWpa3zvakUtihFTX+/oyXUYamrEszPQo+s+8peL+uP7YfkGUgQ2y/Ji2iw1O/SSXdoioXfWgiwGULL9rwT02QNmuAuz+Ix6cW65Krbp7C7VPjwMd0Bwp3L4bLyv2myo/POk8qDA53XX1XW7G/x0ivbb4oq/1nygMQfXhyIsYFXksJSPnLJdcf6+tCCvATpeEvD0esGU034QCuHlSw3sCCm5wb5o7RmUeM0Vfaus4pzVstaiCrqZsKlRqik4t2gDG4+KsqZrJZvYRmBxJSTlZBerpj20fJiHzrlD20b9vJtujgbf/jCpBH/808IKUh87De77nm24tEr/FFb05k3f1VzReqAbmyz17BO459KZFulHVbfval0V5+iqt4e1+ykhuTeF7maxRmkPZdw9/7rGu1/jemz5fl6mR7iSwPLr683z+YbuAEPWxhXcjXTNQnU1Mmf1v0gEpT1NtHpR9Ql/Vy+nK4FK0kg81vQ2cbFJoWj984gxG/P2SVD5one9SDhiu+xgcW3jdouPYUg9YeYB8TngDRpTzK790nU3EM+iZe0irmjJtcxbJmYA7jDUQnC2MOCZSGK1pZNNiJCRNN3fVx+8QBXsNyghcfY9ku8pubX2GbrChNTUVLpND510oIVe9Xl71Y6b4z/w+o+MFH2S5UjDYYuPxZsvRrT9itZlmmvmR+fDJrzVrqOZlU7o1F5I9Vvx8Pj+ruiK/ArYQ7lkJeOnPaxXKwvkPstp4dy8FBdhZmzcvqo8CqKHpM/4WWnb615Bb1FVRzUB5anONXVcjGEsN51Kmpg3DoXrqUSmZLb1fJq9LF/T8NG/dztQ+XHt7Gbu2xLPw7zERPvhCjT02zqCI+JHYNAnUUP9Bg6DmTC8TyIvYpwoL7dJQul+KxaFkdSzHwiXmkpGKhmlZhNmHx/TPSJH8eUIiTEy4dsn/0CI8TnKva46N3/KD4bZVJ+g+Wo3Ou1clejXxpjMGyHaQbiZq8oobu24Wa1+DK/JOe89Abmt65Zgrk8+Tw7Evhzt9R504Y6KoqSPSbSO8BrJ8nZdyBjy0CVldh9eeQnYttHikuQRqAioCFnNN25SNl2TPYCqYSXeSKvzaJn05nYHdBdIIUrt9L1jzDhITteGKfS1ReRsdGZ/mQUDAl/cL2mB9ak+DuQOck7N+7vh4jktF9uRPRxtPBDlo6NbqpF2ijbaD+rdvDPXur9ZXMnJmJfGt4z8Oa30KoHQCTIFwpo47QVNjDf9rXD/G41Wk+JM9jr72AXssfCiKf1u4kmAQ54IXzvYA7H+ME1OhqfdI0elcSYleL6aMA1w9ylO9989xC7izNa70S7JAwO5fdfRF4Rfx24ACRSJWxDddgsf1KBXte9HLe24WIRajF0t4gE2UQk+mF696diyssxxd+5GHxTls72yalYuSsgeZecT/PT+dS+PKi+qfCi3Y8yAQee0s3/iEx0+52k/rReKGqMLjMjSYpUMPEYI1Uv+cWGzJcqcFpIXogF0SXJMsDTcOhP3e/T2/9flbTrHq+/v/ZZYP0JD/Dcn0Yac345bCWuhZwcAlu0HAb9ue9tdXh4shQaH6SeS/4WD/LxXqSfIvdZD4uyOUJ97rb0FJ+l9g0sU8144muv0DqGaEmHB9Wc2Nc/2Sv3twcKyUZ4wji9/wE=","base64")).toString()),xN)});var CZ=I((PN,dZ)=>{(function(r,e){typeof PN=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),QTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:bTe.test(r)||!QTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,xZ)=>{var vTe=Tc(),xTe=vn(),PTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!xTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==PTe||e==RTe}xZ.exports=FTe});var kZ=I((eAt,PZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];PZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=vn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=b_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var P_=H0(),cOe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||P_),t}KN.Cache=P_;k_.exports=KN});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var T_=I((RAt,N_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});N_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=T_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((NAt,O_)=>{var BOe=fC(),QOe=1/0;function bOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-QOe?"-0":e}O_.exports=bOe});var im=I((TAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var Qh=I((OAt,H_)=>{var U_=UN();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=Qh(),FOe=Ih(),NOe=Object.prototype,TOe=NOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(TOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,G_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r{var UOe=j0(),HOe=Bh(),jOe=nm(),Y_=vn(),GOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var qOe=im(),JOe=HN(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((GAt,X_)=>{var XOe=Tc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var G0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jN=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=G0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var fMe=V_(),hMe=jN();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=GN();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var a$=Nc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),QMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QMe),n||(n=[]);++s0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var bMe=f$();function SMe(r){var e=r==null?0:r.length;return e?bMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YN=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var b$=I((ilt,Q$)=>{var RMe=y$(),B$=UN(),FMe=q0(),NMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;Q$.exports=NMe});var v$=I((nlt,S$)=>{var TMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=TMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qN=I((slt,x$)=>{var KMe=b$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var jMe=p$(),GMe=YN(),YMe=qN();function qMe(r){return YMe(GMe(r,void 0,jMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var G$=I((kct,j$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Nct,tee)=>{var p1e=eee(),d1e=jN();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tT;eQ.default=y1e});var iT=I(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.default=void 0;var B1e=nee(am()),Q1e=nee(iT());function nee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tQ.default=Ph});var rQ=I(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=x1e;var sT=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let h=0;h{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aT=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var N1e=Is(),T1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?N1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||T1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Tc(),U1e=G0(),H1e=Jo(),j1e="[object Arguments]",G1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[G1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var iQ=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nQ=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AT=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();Dh.exports=dKe});var sQ=I((Jct,yee)=>{var CKe=dee(),mKe=iQ(),Eee=nQ(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lT=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),QKe=nm(),bKe=sQ(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&bKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||QKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var oQ=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cT=I((Vct,Qee)=>{function DKe(r,e){return function(t){return r(e(t))}}Qee.exports=DKe});var See=I((Xct,bee)=>{var RKe=cT(),FKe=RKe(Object.keys,Object);bee.exports=FKe});var xee=I((Zct,vee)=>{var NKe=oQ(),TKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!NKe(r))return TKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=G0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lT(),GKe=xee(),YKe=fm();function qKe(r){return YKe(r)?jKe(r):GKe(r)}kee.exports=qKe});var uT=I((eut,Dee)=>{var JKe=aT(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Tee=I((rut,Nee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Nee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length{var sUe=tm(),oUe=Fee(),aUe=Tee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Yee=I((aut,Gee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Gee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function aQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gT=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function QUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g{var bUe=Is(),SUe=bUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Nc(),ote=fT(),PUe=Ih(),kUe=gT(),DUe=rte(),RUe=nte(),FUe=1,NUe=2,TUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hT=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case TUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(hT)return hT.call(r)==hT.call(e)}return!1}Ate.exports=JUe});var pT=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function ZUe(){return[]}fte.exports=ZUe});var AQ=I((Iut,pte)=>{var _Ue=gte(),$Ue=dT(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CT=I((yut,dte)=>{var i2e=pT(),n2e=AQ(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CT(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((Qut,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var bte=I((but,Qte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");Qte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Nte)=>{var mT=yte(),ET=U0(),IT=Bte(),yT=bte(),wT=vte(),Fte=Tc(),Nh=MN(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",Q2e=Nh(mT),b2e=Nh(ET),S2e=Nh(IT),v2e=Nh(yT),x2e=Nh(wT),tu=Fte;(mT&&tu(new mT(new ArrayBuffer(1)))!=Rte||ET&&tu(new ET)!=xte||IT&&tu(IT.resolve())!=Pte||yT&&tu(new yT)!=kte||wT&&tu(new wT)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case Q2e:return Rte;case b2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Nte.exports=tu});var jte=I((xut,Hte)=>{var BT=hm(),P2e=gT(),k2e=lte(),D2e=Ete(),Tte=pm(),Lte=Ss(),Ote=cm(),R2e=sQ(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lQ="[object Object]",N2e=Object.prototype,Ute=N2e.hasOwnProperty;function T2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Tte(r),c=a?Kte:Tte(e);l=l==Mte?lQ:l,c=c==Mte?lQ:c;var u=l==lQ,g=c==lQ,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BT),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BT),n(m,y,t,i,s)}}return h?(s||(s=new BT),D2e(r,e,t,i,n,s)):!1}Hte.exports=T2e});var QT=I((Put,qte)=>{var L2e=jte(),Gte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Gte(r)&&!Gte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=QT(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var j2e=vn();function G2e(r){return r===r&&!j2e(r)}zte.exports=G2e});var Xte=I((Rut,Vte)=>{var Y2e=bT(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var ST=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Nut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=ST();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cQ=I((Tut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=QT(),tHe=cQ(),rHe=GN(),iHe=M0(),nHe=bT(),sHe=ST(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vT=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xT=I((Hut,cre)=>{var QHe=Qh(),bHe=uT(),SHe=vT();function vHe(r,e){var t={};return e=SHe(e,3),bHe(r,function(i,n,s){QHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DT=512,ure=new ru(DT),gre=new ru(DT),fre=new ru(DT);pre.exports={Cache:ru,split:kT,normalizePath:PT,setter:function(r){var e=PT(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),uQ={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===uQ.context,this.isValue=this.key[0]===uQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?uQ.context:this.isValue?uQ.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=HHe;var MHe=FT(xT()),gQ=FT(eu()),KHe=FT(iu());function FT(r){return r&&r.__esModule?r:{default:r}}function fQ(){return fQ=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fQ({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gQ.default(gQ.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fQ({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gQ.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gQ.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var TT=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),GHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?GHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});hQ.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hQ.default=Im});var oA=I(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.default=void 0;var Ire=sA(G$()),Th=nA(),WHe=sA(iee()),yre=sA(rQ()),pQ=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=TT(),XHe=sA(iT()),Bre=sA(eu()),Qre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". +`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],QF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,QF[e]])),gFe=new Map(QF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>QF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),xF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),PF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[xF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[xF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[PF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[xF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[NF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[TF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,bFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),GF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),QFe=WB(),HF=th(),WF=QFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new bFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[GF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,xn=J("fs"),XF=xn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),b7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),Q7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[b7]=t.readSize||16*1024*1024,this[ol]=!1,this[Q7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[Q7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){xn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[b7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));xn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,xn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){xn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,xn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=xn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=xn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,xn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,xn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eN});var y0=I((Aat,R7)=>{"use strict";var PFe=WB(),xFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),NFe=dF(),tN=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rN=Symbol("nextEntry"),v7=Symbol("processEntry"),Ps=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),P7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),x7=Symbol("emittedEnd"),Xc=Symbol("emit"),kn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),TFe=r=>!0;R7.exports=PFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:TFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[Ps]=null,this[GC]=null,this[Vc]=!1,this[kn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new xFe(e,t,this[Ps],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[Ps],this[GC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[Ps]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rN]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[eA]=null,t=!1),t}[rN](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iN](e,t);return this[zc]||this[P7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[P7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Ps]=S7.parse(this[ll],this[Ps],!1);break;case"GlobalExtendedHeader":this[GC]=S7.parse(this[ll],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Ps]=this[Ps]||Object.create(null),this[Ps].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Ps]=this[Ps]||Object.create(null),this[Ps].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[kn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.lengththis[p0](s)),this[kn].on("error",s=>this.abort(s)),this[kn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[kn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[kn]?this[kn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sN](){if(this[Vc]&&!this[x7]&&!this[cl]&&!this[C0]){this[x7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nN](e);else if(!e&&!this[Cr])this[sN]();else{if(this[C0]=!0,this[Cr]){this[nN](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sN]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t{"use strict";var LFe=Xf(),N7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oN=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):T7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},UFe=r=>{let e=T7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new N7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},T7=r=>new N7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?GFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var GFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aN(t,e),t}});var AN=I((uat,V7)=>{"use strict";var WFe=Xf(),G7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new G7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new G7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AN();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eNe(i),$Fe(i,e,t)};var eNe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tNe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tNe});var rX=I((hat,tX)=>{var rNe=process.platform,{resolve:iNe,parse:nNe}=J("path"),sNe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iNe(r),rNe==="win32"){let e=/[*|"<>?:]/,{root:t}=nNe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sNe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uN=I((dat,lX)=>{var{dirname:AX}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oNe,findMadeSync:aNe}=aX(),{mkdirpManual:ANe,mkdirpManualSync:lNe}=uN(),cNe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oNe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ANe(r,e);throw n}))),uNe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aNe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lNe(r,e);throw n}};uX.exports={mkdirpNative:cNe,mkdirpNativeSync:uNe}});var dX=I((mat,pX)=>{var fX=J("fs"),gNe=process.version,gN=gNe.replace(/^v/,"").split("."),hX=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,fNe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hNe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fNe,useNativeSync:hNe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uN(),{useNative:pNe,useNativeSync:dNe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pNe(e)?CX(r,e):EX(r,e)),CNe=(r,e)=>(r=dh(r),e=ph(e),dNe(e)?mX(r,e):IX(r,e));Ch.sync=CNe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var xX=I((Iat,PX)=>{"use strict";var xs=J("fs"),_c=J("path"),mNe=xs.lchown?"lchown":"chown",ENe=xs.lchownSync?"lchownSync":"chownSync",bX=xs.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return xs[ENe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},INe=(r,e,t)=>{try{return xs.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yNe=bX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):xs.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=bX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;INe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wNe=process.version,QX=(r,e,t)=>xs.readdir(r,e,t),BNe=(r,e)=>xs.readdirSync(r,e);/^v4\./.test(wNe)&&(QX=(r,e,t)=>xs.readdir(r,t));var b0=(r,e,t,i)=>{xs[mNe](r,e,t,yNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return xs.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hN(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);b0(o,t,i,n)});else{let s=_c.resolve(r,e.name);b0(s,t,i,n)}},hN=(r,e,t,i)=>{QX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return b0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return b0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},bNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=xs.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fN(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>bNe(r,n,e,t)),fN(r,e,t)};PX.exports=hN;hN.sync=vX});var FX=I((yat,pN)=>{"use strict";var kX=wX(),ks=J("fs"),Q0=J("path"),DX=xX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},P0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),QNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&P0(g,r)===!0)return p();if(r===h)return QNe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(Q0.relative(h,r)).split("/");x0(h,m,n,g,u,h,null,p)};var x0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(Q0.resolve(r+"/"+l));if(P0(i,c))return x0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())x0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,x0(r,e,t,i,n,s,o,a))},SNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&P0(u,r)===!0)return h();if(r===g)return SNe(g),h();if(l)return h(kX.sync(r,i));let d=lo(Q0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(Q0.resolve(B)),!P0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let x=ks.lstatSync(B);if(x.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(x.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CN=I((wat,NX)=>{var dN=Object.create(null),{hasOwnProperty:vNe}=Object.prototype;NX.exports=r=>(vNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var MX=I((Bat,OX)=>{var TX=J("assert"),PNe=CN(),xNe=nh(),{join:LX}=J("path"),kNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DNe=kNe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);TX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);TX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DNe?["win32 parallelization disabled"]:c.map(h=>PNe(xNe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((bat,UX)=>{var RNe=process.platform,FNe=RNe==="win32",NNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:TNe,O_TRUNC:LNe,O_WRONLY:ONe,UV_FS_O_FILEMAP:KX=0}=NNe.constants,MNe=FNe&&!!KX,KNe=512*1024,UNe=KX|LNe|TNe|ONe;UX.exports=MNe?r=>r"w"});var SN=I((Qat,tZ)=>{"use strict";var HNe=J("assert"),jNe=y0(),Ht=J("fs"),GNe=fh(),rA=J("path"),_X=FX(),jX=SF(),YNe=MX(),qNe=vF(),$n=th(),JNe=nh(),WNe=CN(),GX=Symbol("onEntry"),IN=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yN=Symbol("isReusable"),Ds=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Gi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),bN=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zNe==="win32",VNe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XNe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WNe(JNe($n(r))).toLowerCase(),ZNe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Ne=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[VC]=!1,this.reservations=YNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[GX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[GX](e){if(!this[zX](e))return e.resume();switch(HNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Gi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new GNe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Gi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Gi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Gi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Gi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Gi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[EN]()}[bN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IN](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Ne(this.dirCache):e.type!=="Directory"&&ZNe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Gi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Gi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[bN](e),i();return}if(a||this[yN](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VNe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Gi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Gi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},QN=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IN](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Gi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Gi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[bN](e);if(t||this[yN](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XNe(e.absolute));this[Ds](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Gi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Gi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Gi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Gi](s,e)}}};ZC.Sync=QN;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Ne=Xf(),N0=SN(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vN=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)};var eTe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},tTe=r=>{let e=new N0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rTe=(r,e)=>{let t=new N0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new N0.Sync(r),nTe=r=>new N0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AN();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=SN();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((xat,cZ)=>{var PN;cZ.exports.getContent=()=>(typeof PN>"u"&&(PN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),PN)});var CZ=I((xN,dZ)=>{(function(r,e){typeof xN=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(xN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),bTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,QTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:QTe.test(r)||!bTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,PZ)=>{var vTe=Tc(),PTe=vn(),xTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!PTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==xTe||e==RTe}PZ.exports=FTe});var kZ=I((eAt,xZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];xZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=vn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function bLe(r,e){return r===e||r!==r&&e!==e}r_.exports=bLe});var em=I((pAt,i_)=>{var QLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(QLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),PLe=Array.prototype,xLe=PLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():xLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((bAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((QAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var Q_=I((vAt,b_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}b_.exports=rOe});var v_=I((PAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((xAt,P_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=Q_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var x_=H0(),cOe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||x_),t}KN.Cache=x_;k_.exports=KN});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var T_=I((RAt,N_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});N_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=T_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((NAt,O_)=>{var BOe=fC(),bOe=1/0;function QOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-bOe?"-0":e}O_.exports=QOe});var im=I((TAt,M_)=>{var SOe=Bh(),vOe=$c();function POe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t{var xOe=hl(),kOe=function(){try{var r=xOe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var bh=I((OAt,H_)=>{var U_=UN();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=bh(),FOe=Ih(),NOe=Object.prototype,TOe=NOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(TOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,G_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r{var UOe=j0(),HOe=Bh(),jOe=nm(),Y_=vn(),GOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var qOe=im(),JOe=HN(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((GAt,X_)=>{var XOe=Tc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var G0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jN=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=G0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var fMe=V_(),hMe=jN();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=GN();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var a$=Nc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),bMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=bMe),n||(n=[]);++s0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var QMe=f$();function SMe(r){var e=r==null?0:r.length;return e?QMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YN=I((elt,E$)=>{var PMe=C$(),m$=Math.max;function xMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var Q$=I((ilt,b$)=>{var RMe=y$(),B$=UN(),FMe=q0(),NMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;b$.exports=NMe});var v$=I((nlt,S$)=>{var TMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=TMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qN=I((slt,P$)=>{var KMe=Q$(),UMe=v$(),HMe=UMe(KMe);P$.exports=HMe});var k$=I((olt,x$)=>{var jMe=p$(),GMe=YN(),YMe=qN();function qMe(r){return YMe(GMe(r,void 0,jMe),r+"")}x$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var G$=I((kct,j$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Nct,tee)=>{var p1e=eee(),d1e=jN();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var Ph=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.default=void 0;var E1e=ree(Am()),I1e=ree(Ph());function ree(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tT;eb.default=y1e});var iT=I(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.default=void 0;var B1e=nee(am()),b1e=nee(iT());function nee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,b1e.default)(e).forEach(s=>{xh.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,xh)}};tb.default=xh});var rb=I(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=P1e;var sT=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function P1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let h=0;h{function x1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=x1e});var aT=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var N1e=Is(),T1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?N1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||T1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Tc(),U1e=G0(),H1e=Jo(),j1e="[object Arguments]",G1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[G1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var ib=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nb=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AT=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();Dh.exports=dKe});var sb=I((Jct,yee)=>{var CKe=dee(),mKe=ib(),Eee=nb(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lT=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),bKe=nm(),QKe=sb(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function PKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&QKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||bKe(c,l)))&&a.push(c);return a}wee.exports=PKe});var ob=I((zct,Bee)=>{var xKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||xKe;return r===t}Bee.exports=kKe});var cT=I((Vct,bee)=>{function DKe(r,e){return function(t){return r(e(t))}}bee.exports=DKe});var See=I((Xct,Qee)=>{var RKe=cT(),FKe=RKe(Object.keys,Object);Qee.exports=FKe});var Pee=I((Zct,vee)=>{var NKe=ob(),TKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!NKe(r))return TKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,xee)=>{var KKe=K0(),UKe=G0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}xee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lT(),GKe=Pee(),YKe=fm();function qKe(r){return YKe(r)?jKe(r):GKe(r)}kee.exports=qKe});var uT=I((eut,Dee)=>{var JKe=aT(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Tee=I((rut,Nee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Nee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length{var sUe=tm(),oUe=Fee(),aUe=Tee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Yee=I((aut,Gee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Gee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function ab(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gT=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function bUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g{var QUe=Is(),SUe=QUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function PUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=PUe});var lte=I((dut,Ate)=>{var ste=Nc(),ote=fT(),xUe=Ih(),kUe=gT(),DUe=rte(),RUe=nte(),FUe=1,NUe=2,TUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hT=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case TUe:case LUe:case KUe:return xUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(hT)return hT.call(r)==hT.call(e)}return!1}Ate.exports=JUe});var pT=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function ZUe(){return[]}fte.exports=ZUe});var Ab=I((Iut,pte)=>{var _Ue=gte(),$Ue=dT(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CT=I((yut,dte)=>{var i2e=pT(),n2e=Ab(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CT(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((but,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var Qte=I((Qut,bte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");bte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Nte)=>{var mT=yte(),ET=U0(),IT=Bte(),yT=Qte(),wT=vte(),Fte=Tc(),Nh=MN(),Pte="[object Map]",B2e="[object Object]",xte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",b2e=Nh(mT),Q2e=Nh(ET),S2e=Nh(IT),v2e=Nh(yT),P2e=Nh(wT),tu=Fte;(mT&&tu(new mT(new ArrayBuffer(1)))!=Rte||ET&&tu(new ET)!=Pte||IT&&tu(IT.resolve())!=xte||yT&&tu(new yT)!=kte||wT&&tu(new wT)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case b2e:return Rte;case Q2e:return Pte;case S2e:return xte;case v2e:return kte;case P2e:return Dte}return e});Nte.exports=tu});var jte=I((Put,Hte)=>{var BT=hm(),x2e=gT(),k2e=lte(),D2e=Ete(),Tte=pm(),Lte=Ss(),Ote=cm(),R2e=sb(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lb="[object Object]",N2e=Object.prototype,Ute=N2e.hasOwnProperty;function T2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Tte(r),c=a?Kte:Tte(e);l=l==Mte?lb:l,c=c==Mte?lb:c;var u=l==lb,g=c==lb,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BT),o||R2e(r)?x2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BT),n(m,y,t,i,s)}}return h?(s||(s=new BT),D2e(r,e,t,i,n,s)):!1}Hte.exports=T2e});var bT=I((xut,qte)=>{var L2e=jte(),Gte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Gte(r)&&!Gte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=bT(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var j2e=vn();function G2e(r){return r===r&&!j2e(r)}zte.exports=G2e});var Xte=I((Rut,Vte)=>{var Y2e=QT(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var ST=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Nut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=ST();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cb=I((Tut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=bT(),tHe=cb(),rHe=GN(),iHe=M0(),nHe=QT(),sHe=ST(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vT=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var PT=I((Hut,cre)=>{var bHe=bh(),QHe=uT(),SHe=vT();function vHe(r,e){var t={};return e=SHe(e,3),QHe(r,function(i,n,s){bHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var PHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,xHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DT=512,ure=new ru(DT),gre=new ru(DT),fre=new ru(DT);pre.exports={Cache:ru,split:kT,normalizePath:xT,setter:function(r){var e=xT(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),ub={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===ub.context,this.isValue=this.key[0]===ub.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?ub.context:this.isValue?ub.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=HHe;var MHe=FT(PT()),gb=FT(eu()),KHe=FT(iu());function FT(r){return r&&r.__esModule?r:{default:r}}function fb(){return fb=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fb({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gb.default(gb.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let x=fb({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(x,n,x)).then(q=>{gb.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(x,n,x),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${x.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gb.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var TT=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),GHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?GHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hb=>{"use strict";Object.defineProperty(hb,"__esModule",{value:!0});hb.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hb.default=Im});var oA=I(db=>{"use strict";Object.defineProperty(db,"__esModule",{value:!0});db.default=void 0;var Ire=sA(G$()),Th=nA(),WHe=sA(iee()),yre=sA(rb()),pb=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=TT(),XHe=sA(iT()),Bre=sA(eu()),bre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function bre(){return new LT}bre.prototype=LT.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eje=r=>r==null;CQ.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Nre=I(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Fre;bm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new Qm}var Qm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Qm;Fre.prototype=Qm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Tre(Lh()),Aje=Tre(oA());function Tre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||ithis.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KT;xm.default=void 0;var gje=mQ(Mre()),Kre=nA(),Ure=mQ(Lh()),fje=mQ(iu()),hje=mQ(oA());function mQ(r){return r&&r.__esModule?r:{default:r}}var MT=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MT:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MT;KT.prototype=Oh.prototype;KT.INVALID_DATE=MT});var Gre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function Cje(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qje="\\u0300-\\u036f",bje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=Qje+bje+Sje,xje="["+vje+"]",Pje=RegExp(xje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(Pje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Nje(r){return Fje.test(r)}_re.exports=Nje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Tje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Tje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Gje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Yje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Yje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Gje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eGe=die+pie+Zje,tGe="(?:"+[qje,fie,hie].join("|")+")"+eGe,rGe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tGe].join("|"),"g");function iGe(r){return r.match(rGe)||[]}Cie.exports=iGe});var Iie=I((Agt,Eie)=>{var nGe=Zre(),sGe=$re(),oGe=Vf(),aGe=mie();function AGe(r,e,t){return r=oGe(r),e=t?void 0:e,e===void 0?sGe(r)?aGe(r):nGe(r):r.match(e)||[]}Eie.exports=AGe});var UT=I((lgt,yie)=>{var lGe=Gre(),cGe=Vre(),uGe=Iie(),gGe="['\u2019]",fGe=RegExp(gGe,"g");function hGe(r){return function(e){return lGe(uGe(cGe(e).replace(fGe,"")),r,"")}}yie.exports=hGe});var Bie=I((cgt,wie)=>{var pGe=UT(),dGe=pGe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dGe});var bie=I((ugt,Qie)=>{var CGe=xB(),mGe=UT(),EGe=mGe(function(r,e,t){return e=e.toLowerCase(),r+(t?CGe(e):e)});Qie.exports=EGe});var vie=I((ggt,Sie)=>{var IGe=Qh(),yGe=uT(),wGe=vT();function BGe(r,e){var t={};return e=wGe(e,3),yGe(r,function(i,n,s){IGe(t,e(i,n,s),i)}),t}Sie.exports=BGe});var Pie=I((fgt,HT)=>{HT.exports=function(r){return xie(QGe(r),r)};HT.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bGe(e),a=SGe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function QGe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(jT,"__esModule",{value:!0});jT.default=RGe;var vGe=EQ(Am()),xGe=EQ(Pie()),PGe=dm(),kGe=EQ(iu()),DGe=EQ(xh());function EQ(r){return r&&r.__esModule?r:{default:r}}function RGe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,PGe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vGe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kGe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DGe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xGe.default.array(i,t).reverse()}});var Rie=I(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=FGe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FGe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Nie=ia(Bie()),NGe=ia(bie()),TGe=ia(vie()),LGe=ia(xT()),OGe=dm(),Tie=nA(),MGe=ia(kie()),Oie=ia(Rie()),KGe=ia(rQ()),UGe=ia(eu()),YT=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function HGe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jGe=(0,Oie.default)([]),Pm=class extends YT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jGe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UGe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KGe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YT.default&&s instanceof YT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MGe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OGe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Tie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HGe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Tie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,TGe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(NGe.default)}snakeCase(){return this.transformKeys(Nie.default)}constantCase(){return this.transformKeys(e=>(0,Nie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LGe.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qT=Uh(Lh()),GGe=Uh(xh()),YGe=Uh(am()),JT=nA(),qGe=Uh(rQ()),JGe=Uh(eu()),WGe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function IQ(){return IQ=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,IQ({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JGe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;yc.validate(B,P,H)}(0,qGe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,GGe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YGe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XGe;Fm.default=void 0;var zGe=VGe(xh());function VGe(r){return r&&r.__esModule?r:{default:r}}function XGe(r){return new yQ(r)}var yQ=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zGe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZGe=yQ;Fm.default=ZGe});var Gie=I(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=eYe;var _Ge=$Ge(nA());function $Ge(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ge.default[e][t]=r[e][t]})})}});var VT=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zT=ou(Dre()),qie=ou(Nre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=jie(),iYe=Nm(eu()),nYe=Nm(TT()),Xie=Nm(xh()),sYe=Nm(Gie()),oYe=Nm(oA());function Nm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Ngt,ZT)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};QQ.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=QYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var bYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=bYe.merge(r.options)}});var Qne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xYe=uo(),nL=Yi(),go=Bne.exports=wne,Pr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${Pr}G`,down:`${Pr}J`,esc:Pr,getPosition:`${Pr}6n`,hide:`${Pr}?25l`,line:`${Pr}2K`,lineEnd:`${Pr}K`,lineStart:`${Pr}1K`,restorePosition:Pr+(Ine?"8":"u"),savePosition:Pr+(Ine?"7":"s"),screen:`${Pr}2J`,show:`${Pr}?25h`,up:`${Pr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${Pr}${r}C`,backward:(r=1)=>`${Pr}${r}D`,nextLine:(r=1)=>`${Pr}E`.repeat(r),prevLine:(r=1)=>`${Pr}F`.repeat(r),up:(r=1)=>r?`${Pr}${r}A`:"",down:(r=1)=>r?`${Pr}${r}B`:"",right:(r=1)=>r?`${Pr}${r}C`:"",left:(r=1)=>r?`${Pr}${r}D`:"",to(r,e){return e?`${Pr}${e+1};${r+1}H`:`${Pr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return oL.line+au.to(0);let t=s=>[...xYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Gh=I((Ggt,Sne)=>{"use strict";var PYe=J("events"),bne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Dn=Yi(),Au=Qne(),Om=class extends PYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Dn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=bne.unstyle(i);let n=bne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pb.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pb.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pb.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pb.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};db.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=Qre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function Qre(){return new LT}Qre.prototype=LT.prototype});var Lh=I(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.default=void 0;var eje=r=>r==null;Cb.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=xre(oA()),vre=nA(),Pre=xre(Lh());function xre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,Pre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,Pre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Nre=I(Qm=>{"use strict";Object.defineProperty(Qm,"__esModule",{value:!0});Qm.create=Fre;Qm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new bm}var bm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};Qm.default=bm;Fre.prototype=bm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Tre(Lh()),Aje=Tre(oA());function Tre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||ithis.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(Pm=>{"use strict";Object.defineProperty(Pm,"__esModule",{value:!0});Pm.create=KT;Pm.default=void 0;var gje=mb(Mre()),Kre=nA(),Ure=mb(Lh()),fje=mb(iu()),hje=mb(oA());function mb(r){return r&&r.__esModule?r:{default:r}}var MT=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MT:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};Pm.default=Oh;Oh.INVALID_DATE=MT;KT.prototype=Oh.prototype;KT.INVALID_DATE=MT});var Gre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function Cje(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bje="\\u0300-\\u036f",Qje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=bje+Qje+Sje,Pje="["+vje+"]",xje=RegExp(Pje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(xje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Nje(r){return Fje.test(r)}_re.exports=Nje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Tje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Tje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Gje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Yje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Yje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Gje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eGe=die+pie+Zje,tGe="(?:"+[qje,fie,hie].join("|")+")"+eGe,rGe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tGe].join("|"),"g");function iGe(r){return r.match(rGe)||[]}Cie.exports=iGe});var Iie=I((Agt,Eie)=>{var nGe=Zre(),sGe=$re(),oGe=Vf(),aGe=mie();function AGe(r,e,t){return r=oGe(r),e=t?void 0:e,e===void 0?sGe(r)?aGe(r):nGe(r):r.match(e)||[]}Eie.exports=AGe});var UT=I((lgt,yie)=>{var lGe=Gre(),cGe=Vre(),uGe=Iie(),gGe="['\u2019]",fGe=RegExp(gGe,"g");function hGe(r){return function(e){return lGe(uGe(cGe(e).replace(fGe,"")),r,"")}}yie.exports=hGe});var Bie=I((cgt,wie)=>{var pGe=UT(),dGe=pGe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dGe});var Qie=I((ugt,bie)=>{var CGe=PB(),mGe=UT(),EGe=mGe(function(r,e,t){return e=e.toLowerCase(),r+(t?CGe(e):e)});bie.exports=EGe});var vie=I((ggt,Sie)=>{var IGe=bh(),yGe=uT(),wGe=vT();function BGe(r,e){var t={};return e=wGe(e,3),yGe(r,function(i,n,s){IGe(t,e(i,n,s),i)}),t}Sie.exports=BGe});var xie=I((fgt,HT)=>{HT.exports=function(r){return Pie(bGe(r),r)};HT.exports.array=Pie;function Pie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=QGe(e),a=SGe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function bGe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(jT,"__esModule",{value:!0});jT.default=RGe;var vGe=Eb(Am()),PGe=Eb(xie()),xGe=dm(),kGe=Eb(iu()),DGe=Eb(Ph());function Eb(r){return r&&r.__esModule?r:{default:r}}function RGe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,xGe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vGe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kGe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DGe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return PGe.default.array(i,t).reverse()}});var Rie=I(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=FGe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FGe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Nie=ia(Bie()),NGe=ia(Qie()),TGe=ia(vie()),LGe=ia(PT()),OGe=dm(),Tie=nA(),MGe=ia(kie()),Oie=ia(Rie()),KGe=ia(rb()),UGe=ia(eu()),YT=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function HGe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jGe=(0,Oie.default)([]),xm=class extends YT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jGe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UGe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KGe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YT.default&&s instanceof YT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MGe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OGe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Tie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HGe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Tie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,TGe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(NGe.default)}snakeCase(){return this.transformKeys(Nie.default)}constantCase(){return this.transformKeys(e=>(0,Nie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LGe.default)(this.fields,t=>t.describe()),e}};km.default=xm;function Mie(r){return new xm(r)}Mie.prototype=xm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qT=Uh(Lh()),GGe=Uh(Ph()),YGe=Uh(am()),JT=nA(),qGe=Uh(rb()),JGe=Uh(eu()),WGe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function Ib(){return Ib=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,Ib({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JGe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;yc.validate(B,x,H)}(0,qGe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,GGe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YGe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XGe;Fm.default=void 0;var zGe=VGe(Ph());function VGe(r){return r&&r.__esModule?r:{default:r}}function XGe(r){return new yb(r)}var yb=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zGe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZGe=yb;Fm.default=ZGe});var Gie=I(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=eYe;var _Ge=$Ge(nA());function $Ge(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ge.default[e][t]=r[e][t]})})}});var VT=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zT=ou(Dre()),qie=ou(Nre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=jie(),iYe=Nm(eu()),nYe=Nm(TT()),Xie=Nm(Ph()),sYe=Nm(Gie()),oYe=Nm(oA());function Nm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Ngt,ZT)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var Bb=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` +`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!Bb(r))return e;if(!Bb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&Bb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);Bb(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var bb=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` +`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};bb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,bb(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};bb.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=bb});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),bYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=bYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var QYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=QYe.merge(r.options)}});var bne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",PYe=uo(),nL=Yi(),go=Bne.exports=wne,xr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${xr}G`,down:`${xr}J`,esc:xr,getPosition:`${xr}6n`,hide:`${xr}?25l`,line:`${xr}2K`,lineEnd:`${xr}K`,lineStart:`${xr}1K`,restorePosition:xr+(Ine?"8":"u"),savePosition:xr+(Ine?"7":"s"),screen:`${xr}2J`,show:`${xr}?25h`,up:`${xr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${xr}${r}C`,backward:(r=1)=>`${xr}${r}D`,nextLine:(r=1)=>`${xr}E`.repeat(r),prevLine:(r=1)=>`${xr}F`.repeat(r),up:(r=1)=>r?`${xr}${r}A`:"",down:(r=1)=>r?`${xr}${r}B`:"",right:(r=1)=>r?`${xr}${r}C`:"",left:(r=1)=>r?`${xr}${r}D`:"",to(r,e){return e?`${xr}${e+1};${r+1}H`:`${xr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return oL.line+au.to(0);let t=s=>[...PYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Gh=I((Ggt,Sne)=>{"use strict";var xYe=J("events"),Qne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Dn=Yi(),Au=bne(),Om=class extends xYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Dn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=Qne.unstyle(i);let n=Qne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` `),c=l[0],u=l[l.length-1],h=(i+(t?" "+t:"")).length,p=he.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Dn.isObject(e)&&(e=e[i.status]||e.pending),Dn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Dn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Dn.isObject(s)&&(s=s[i.status]||s.pending),Dn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Dn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Dn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Dn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Dn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Dn.height(this.stdout,25)}get width(){return this.options.columns||Dn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function NYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var TYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=Pne(),bQ=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=bQ,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,bQ.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=bQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(bQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jYe=Mm(),cL=Yi(),uL=class extends jYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` +`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var xne=I((Ygt,Pne)=>{"use strict";var TYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};Pne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=xne(),Qb=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=Qb,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,Qb.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=Qb.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Qb.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jYe=Mm(),cL=Yi(),uL=class extends jYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` `),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=SQ(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vQ=I((_gt,Gne)=>{"use strict";var _Ye=Gh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` +`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var Sb=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let x=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,x,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,x,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=Sb(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vb=I((_gt,Gne)=>{"use strict";var _Ye=Gh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vb(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=Sb(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` `,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):sqe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xQ=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xQ([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xQ([...s,t]),present:o};case"save":return{past:xQ([...i,t]),present:""};case"remove":return o=xQ(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),QL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=QL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),bL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=bL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` +`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),Pb=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:Pb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:Pb([...s,t]),present:o};case"save":return{past:Pb([...i,t]),present:""};case"remove":return o=Pb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),bL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=bL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),QL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=QL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),PL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=PL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),xL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(` `)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!cse.hasColor(s)&&(s=this.styles.muted(s));let o=d=>this.margin[3]+d.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=hqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let p=cse.wordWrap(c,{width:this.widths[0],newline:a}).split(` `).map(d=>o(d)+this.margin[1]);return i&&(u=this.styles.info(u),p=p.map(d=>this.styles.info(d))),p[0]+=u,this.linebreak&&p.push(""),[l+n,p.join(` `)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(" "))].join(` `)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),h=await this.footer(),p=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&p!=null&&(o+=this.styles.danger(p)),this.clear(t),this.write([a,o,c,g,h].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=PL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});uF.name===B.key);B.field=n.find(F=>F.name===B.key),P||(P=new DL(B),a.push(P)),P.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,P,F,H)=>{let q=await c(S,P,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let P=S.value,F=S.key;if(S.type!=="template"){P&&(g.output+=P);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,P].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=P;P=await l(P,g,H,p),q!==P?(g.values[F]=q,P=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,P=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(P=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(P=r.styles.danger(q)),p===g.index&&(W!==P?P=r.styles.underline(P):P=r.styles.heading(fse.unstyle(P))),p++}P&&(g.output+=P)}let m=g.output.split(` -`).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(P=>{m[P][0]===" "&&(m[P]=g.styles.danger(g.symbols.bullet)+m[P].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=xL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});uF.name===B.key);B.field=n.find(F=>F.name===B.key),x||(x=new DL(B),a.push(x)),x.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,x,F,H)=>{let q=await c(S,x,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let x=S.value,F=S.key;if(S.type!=="template"){x&&(g.output+=x);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,x].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=x;x=await l(x,g,H,p),q!==x?(g.values[F]=q,x=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,x=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(x=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(x=r.styles.danger(q)),p===g.index&&(W!==x?x=r.styles.underline(x):x=r.styles.heading(fse.unstyle(x))),p++}x&&(g.output+=x)}let m=g.output.split(` +`).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(x=>{m[x][0]===" "&&(m[x]=g.styles.danger(g.symbols.bullet)+m[x].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` `),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Gh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` `].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",h=await this.hint()||"",p=i?"":await this.interpolate(this.state),d=this.state.key=t[e]||"",m=await this.format(d),y=await this.footer();m&&(c+=" "+m),h&&!m&&this.state.completed===0&&(c+=" "+h),this.clear(n);let B=[u,c,p,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} `;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mqe.unstyle(i).split(` `).map(a=>a.slice(1)).join(` `);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use + to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),NL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=Qqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=bqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=x=>(x?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((x,F)=>c(F===e.scaleIdx)).join(a),m=x=>x===e.scaleIdx?g(x):x,y=p+e.scale.map((x,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` `);return i&&(d=this.styles.cyan(d),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` `)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Qqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),TL=class extends bqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Qse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Gh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var Rqe=j0(),Fqe=Qh();function Nqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=vn(),Uqe=oQ(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var rJe=Jh(),iJe=AQ();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kQ=I((dht,aoe)=>{var sJe=cT(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kQ(),lJe=AQ(),cJe=dT(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pT(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var DQ=I((yht,doe)=>{var poe=fT();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var QJe=DQ();function bJe(r,e){var t=e?QJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=bJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var boe=I((Qht,Qoe)=>{var yoe=Nc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}Qoe.exports=xJe});var zL=I((bht,Soe)=>{var PJe=DQ();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=DQ(),RJe=moe(),FJe=Ioe(),NJe=boe(),TJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",GJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return TJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case GJe:return NJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=vn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kQ(),o3e=oQ();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Noe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Noe(),f3e=iQ(),Toe=nQ(),Loe=Toe&&Toe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,Goe)=>{var E3e=Uoe(),I3e=iQ(),Hoe=nQ(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Goe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Gse(),Q3e=j0(),b3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CT(),R3e=goe(),F3e=pm(),N3e=hoe(),T3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=vn(),H3e=Yoe(),j3e=Rh(),G3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[sWe]=lr[oWe]=lr[z3e]=lr[V3e]=lr[aWe]=lr[AWe]=lr[lWe]=lr[cWe]=lr[uWe]=lr[_3e]=lr[$3e]=lr[Woe]=lr[eWe]=lr[tWe]=lr[rWe]=lr[iWe]=lr[gWe]=lr[fWe]=lr[hWe]=lr[pWe]=!0;lr[X3e]=lr[Joe]=lr[nWe]=!1;function RQ(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=N3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,b3e(o,r))}else{if(!lr[g])return n?r:{};o=T3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(RQ(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,RQ(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?G3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),Q3e(o,B,RQ(y,e,t,B,r,s))}),o}zoe.exports=RQ});var XL=I((Nht,Xoe)=>{var dWe=Voe(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xoe.exports=EWe});var _oe=I((Tht,Zoe)=>{var IWe=HN();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zoe.exports=yWe});var iae=I((Hht,rae)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=wWe});var sae=I((jht,nae)=>{var BWe=im(),QWe=HR();function bWe(r,e){return e.length<2?r:BWe(r,QWe(e,0,-1))}nae.exports=bWe});var aae=I((Ght,oae)=>{var SWe=Bh(),vWe=iae(),xWe=sae(),PWe=$c();function kWe(r,e){return e=SWe(e,r),r=xWe(r,e),r==null||delete r[PWe(vWe(e))]}oae.exports=kWe});var lae=I((Yht,Aae)=>{var DWe=aae();function RWe(r,e){return r==null?!0:DWe(r,e)}Aae.exports=RWe});var hae=I((mpt,TWe)=>{TWe.exports={name:"@yarnpkg/cli",version:"3.8.0",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Gmt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,Pae)=>{"use strict";var e4e=oO();function t4e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=e4e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=t4e});var Fae=I((qmt,Rae)=>{"use strict";var r4e=kae();function i4e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var n4e=i4e(r4e),s4e="text/plain",o4e="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),a4e=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===o4e)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==s4e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function A4e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return a4e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=A4e(r,e));let n=n4e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Tae)=>{"use strict";var l4e=oO();function Nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=l4e(r);if(r=r.substring(r.indexOf("://")+3),Nae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var c4e=Fae(),Oae=Lae();function u4e(r){var e=c4e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=u4e});var Hae=I((zmt,Uae)=>{"use strict";var g4e=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=g4e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?f4e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+h4e(r)+n;default:return r.href}};function f4e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function h4e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var T4e=Qh(),L4e=Ih();function O4e(r,e,t){(t!==void 0&&!L4e(r[e],t)||t===void 0&&!(e in r))&&T4e(r,e,t)}AAe.exports=O4e});var cAe=I((Kyt,lAe)=>{var M4e=fm(),K4e=Jo();function U4e(r){return K4e(r)&&M4e(r)}lAe.exports=U4e});var fAe=I((Uyt,gAe)=>{var H4e=Tc(),j4e=kQ(),G4e=Jo(),Y4e="[object Object]",q4e=Function.prototype,J4e=Object.prototype,uAe=q4e.toString,W4e=J4e.hasOwnProperty,z4e=uAe.call(Object);function V4e(r){if(!G4e(r)||H4e(r)!=Y4e)return!1;var e=j4e(r);if(e===null)return!0;var t=W4e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==z4e}gAe.exports=V4e});var DO=I((Hyt,hAe)=>{function X4e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=X4e});var dAe=I((jyt,pAe)=>{var Z4e=Jh(),_4e=Wh();function $4e(r){return Z4e(r,_4e(r))}pAe.exports=$4e});var wAe=I((Gyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=vn(),A8e=fAe(),l8e=sQ(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var bAe=I((Yyt,QAe)=>{var g8e=hm(),f8e=kO(),h8e=aT(),p8e=wAe(),d8e=vn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}QAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=YN(),y8e=qN();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var PAe=I((Jyt,xAe)=>{var B8e=Ih(),Q8e=fm(),b8e=nm(),S8e=vn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?Q8e(t)&&b8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}xAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var x8e=vAe(),P8e=PAe();function k8e(r){return x8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var D8e=bAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Rn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Rn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Rn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Rn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Rn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Rn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Rn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Rn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Rn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Rn;fle.exports=uE});var ble=I((XBt,Qle)=>{var eM;Qle.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((V0t,Tle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ns=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Nle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Nle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Nze(e,t),Tze(r,e,i,t)}function Nze(r,e){return e.fs_.mkdir(Ns.dirname(r),{recursive:!0})}function Tze(r,e,t,i){let n=Nle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Gze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ns.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ns.relative(Ns.dirname(e),r).split("/").join("\\"),s=Ns.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function bqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{wse.exports=wL()});var Qse=I((dft,bse)=>{"use strict";var Qqe=vb(),TL=class extends Qqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};bse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var xse=I(OL=>{"use strict";var Pse=Yi(),ci=(r,e)=>{Pse.defineExport(OL,r,e),Pse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>Sb());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>Qse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vb(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Gh()}static get prompts(){return xse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var Rqe=j0(),Fqe=bh();function Nqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=vn(),Uqe=ob(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var rJe=Jh(),iJe=Ab();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kb=I((dht,aoe)=>{var sJe=cT(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kb(),lJe=Ab(),cJe=dT(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pT(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var Db=I((yht,doe)=>{var poe=fT();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var bJe=Db();function QJe(r,e){var t=e?bJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=QJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var Qoe=I((bht,boe)=>{var yoe=Nc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function PJe(r){return Boe?Object(Boe.call(r)):{}}boe.exports=PJe});var zL=I((Qht,Soe)=>{var xJe=Db();function kJe(r,e){var t=e?xJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var Poe=I((Sht,voe)=>{var DJe=Db(),RJe=moe(),FJe=Ioe(),NJe=Qoe(),TJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",GJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return TJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case GJe:return NJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=vn(),xoe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(xoe)return xoe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((Pht,Roe)=>{var n3e=Doe(),s3e=kb(),o3e=ob();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Noe=I((xht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Noe(),f3e=ib(),Toe=nb(),Loe=Toe&&Toe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,Goe)=>{var E3e=Uoe(),I3e=ib(),Hoe=nb(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Goe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Gse(),b3e=j0(),Q3e=Jse(),S3e=$se(),v3e=qL(),P3e=JL(),x3e=ooe(),k3e=coe(),D3e=CT(),R3e=goe(),F3e=pm(),N3e=hoe(),T3e=Poe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=vn(),H3e=Yoe(),j3e=Rh(),G3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[sWe]=lr[oWe]=lr[z3e]=lr[V3e]=lr[aWe]=lr[AWe]=lr[lWe]=lr[cWe]=lr[uWe]=lr[_3e]=lr[$3e]=lr[Woe]=lr[eWe]=lr[tWe]=lr[rWe]=lr[iWe]=lr[gWe]=lr[fWe]=lr[hWe]=lr[pWe]=!0;lr[X3e]=lr[Joe]=lr[nWe]=!1;function Rb(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=N3e(r),!a)return P3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):x3e(r,Q3e(o,r))}else{if(!lr[g])return n?r:{};o=T3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(Rb(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,Rb(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?G3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),b3e(o,B,Rb(y,e,t,B,r,s))}),o}zoe.exports=Rb});var XL=I((Nht,Xoe)=>{var dWe=Voe(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xoe.exports=EWe});var _oe=I((Tht,Zoe)=>{var IWe=HN();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zoe.exports=yWe});var iae=I((Hht,rae)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=wWe});var sae=I((jht,nae)=>{var BWe=im(),bWe=HR();function QWe(r,e){return e.length<2?r:BWe(r,bWe(e,0,-1))}nae.exports=QWe});var aae=I((Ght,oae)=>{var SWe=Bh(),vWe=iae(),PWe=sae(),xWe=$c();function kWe(r,e){return e=SWe(e,r),r=PWe(r,e),r==null||delete r[xWe(vWe(e))]}oae.exports=kWe});var lae=I((Yht,Aae)=>{var DWe=aae();function RWe(r,e){return r==null?!0:DWe(r,e)}Aae.exports=RWe});var hae=I((mpt,TWe)=>{TWe.exports={name:"@yarnpkg/cli",version:"3.8.1",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Gmt,Pae)=>{"use strict";Pae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,xae)=>{"use strict";var e4e=oO();function t4e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=e4e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}xae.exports=t4e});var Fae=I((qmt,Rae)=>{"use strict";var r4e=kae();function i4e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var n4e=i4e(r4e),s4e="text/plain",o4e="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),a4e=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===o4e)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==s4e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function A4e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return a4e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=A4e(r,e));let n=n4e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Tae)=>{"use strict";var l4e=oO();function Nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=l4e(r);if(r=r.substring(r.indexOf("://")+3),Nae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var c4e=Fae(),Oae=Lae();function u4e(r){var e=c4e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=u4e});var Hae=I((zmt,Uae)=>{"use strict";var g4e=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=g4e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?f4e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+h4e(r)+n;default:return r.href}};function f4e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function h4e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var T4e=bh(),L4e=Ih();function O4e(r,e,t){(t!==void 0&&!L4e(r[e],t)||t===void 0&&!(e in r))&&T4e(r,e,t)}AAe.exports=O4e});var cAe=I((Kyt,lAe)=>{var M4e=fm(),K4e=Jo();function U4e(r){return K4e(r)&&M4e(r)}lAe.exports=U4e});var fAe=I((Uyt,gAe)=>{var H4e=Tc(),j4e=kb(),G4e=Jo(),Y4e="[object Object]",q4e=Function.prototype,J4e=Object.prototype,uAe=q4e.toString,W4e=J4e.hasOwnProperty,z4e=uAe.call(Object);function V4e(r){if(!G4e(r)||H4e(r)!=Y4e)return!1;var e=j4e(r);if(e===null)return!0;var t=W4e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==z4e}gAe.exports=V4e});var DO=I((Hyt,hAe)=>{function X4e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=X4e});var dAe=I((jyt,pAe)=>{var Z4e=Jh(),_4e=Wh();function $4e(r){return Z4e(r,_4e(r))}pAe.exports=$4e});var wAe=I((Gyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=vn(),A8e=fAe(),l8e=sb(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var QAe=I((Yyt,bAe)=>{var g8e=hm(),f8e=kO(),h8e=aT(),p8e=wAe(),d8e=vn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}bAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=YN(),y8e=qN();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var xAe=I((Jyt,PAe)=>{var B8e=Ih(),b8e=fm(),Q8e=nm(),S8e=vn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?b8e(t)&&Q8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}PAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var P8e=vAe(),x8e=xAe();function k8e(r){return P8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&x8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var D8e=QAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Rn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Rn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Rn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Rn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Rn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Rn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Rn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Rn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Rn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Rn;fle.exports=uE});var Qle=I((XBt,ble)=>{var eM;ble.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((V0t,Tle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ns=J("path"),Fle=Rle(),Pze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,xze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Nle(r){let e={...xze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Nle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Nze(e,t),Tze(r,e,i,t)}function Nze(r,e){return e.fs_.mkdir(Ns.dirname(r),{recursive:!0})}function Tze(r,e,t,i){let n=Nle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Gze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(Pze);if(!n){let s=Ns.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ns.relative(Ns.dirname(e),r).split("/").join("\\"),s=Ns.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r `:"";return o?g+=`@IF EXIST ${o} (\r ${o} ${l} ${n} ${u}%*\r ) ELSE (\r @@ -299,33 +299,33 @@ if ($MyInvocation.ExpectingInput) { } ${t.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE -`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Tle.exports=AM});var yM=I((fbt,rce)=>{rce.exports=J("stream")});var oce=I((hbt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((pbt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var bl=I((dbt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var bM=I((Cbt,gce)=>{"use strict";var B5e=bl().codes.ERR_INVALID_OPT_VALUE;function Q5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function b5e(r,e,t,i){var n=Q5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:b5e}});var fce=I((mbt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((Ebt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((Ibt,hce)=>{hce.exports=J("util").deprecate});var DM=I((ybt,yce)=>{"use strict";yce.exports=Nr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Nr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mb=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mb.from(r)}function P5e(r){return mb.isBuffer(r)||r instanceof v5e}var kM=QM(),k5e=bM(),D5e=k5e.getHighWaterMark,vl=bl().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,N5e=vl.ERR_MULTIPLE_CALLBACK,T5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Nr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Cb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Cb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Nr,Symbol.hasInstance,{value:function(e){return Cb.call(this,e)?!0:this!==Nr?!1:e&&e._writableState instanceof dE}})):Cb=function(e){return e instanceof this};function Nr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!Cb.call(Nr,this))return new Nr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Nr.prototype.pipe=function(){Ap(this,new T5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Nr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mb.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Nr.prototype.cork=function(){this._writableState.corked++};Nr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Nr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Nr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mb.from(e,t)),e}Object.defineProperty(Nr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=G5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=NM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),Eb=0;Eb{var yb=J("buffer"),hA=yb.Buffer;function Qce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?bce.exports=yb:(Qce(yb,TM),TM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Qce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yb.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wb=I((Qbt,Dce)=>{"use strict";var Pce=bl().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var Bb;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wb(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),Qb=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[Qb]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((Bb={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[Qb])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(Bb,Symbol.asyncIterator,function(){return this}),xl(Bb,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),Bb),w6e),Q6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,Qb,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[Qb]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=Q6e});var Oce=I((Sbt,Lce)=>{"use strict";function Nce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function b6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Nce(s,i,n,o,a,"next",l)}function a(l){Nce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Tce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var vbt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),bb=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return bb.from(r)}function R6e(r){return bb.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=QM(),N6e=bM(),T6e=N6e.getHighWaterMark,Sb=bl().codes,L6e=Sb.ERR_INVALID_ARG_TYPE,O6e=Sb.ERR_STREAM_PUSH_AFTER_EOF,M6e=Sb.ERR_METHOD_NOT_IMPLEMENTED,K6e=Sb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,GM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=T6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=bb.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,G6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==bb.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vb(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function G6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Gce(r)))}}function vb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Gce,r))}function Gce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vb(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t{"use strict";Vce.exports=pA;var xb=bl().codes,X6e=xb.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xb.ERR_MULTIPLE_CALLBACK,_6e=xb.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xb.ERR_TRANSFORM_WITH_LENGTH_0,Pb=Wu();Sl()(pA,Pb);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((Dbt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=bl().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wb()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wb(),Os.pipeline=iue())});var oue=I((Rbt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;gh)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r{"use strict";var ZM=gp().Duplex,c9e=Sl(),QE=oue();function Ji(r){if(!(this instanceof Ji))return new Ji(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}QE._init.call(this,r),ZM.call(this)}c9e(Ji,ZM);Object.assign(Ji.prototype,QE.prototype);Ji.prototype._new=function(e){return new Ji(e)};Ji.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Ji.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Ji.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Ji.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Ji.prototype._isBufferList=function(e){return e instanceof Ji||e instanceof QE||Ji.isBufferList(e)};Ji.isBufferList=QE.isBufferList;kb.exports=Ji;kb.exports.BufferListStream=Ji;kb.exports.BufferList=QE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),bE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;te?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` +`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Tle.exports=AM});var yM=I((fQt,rce)=>{rce.exports=J("stream")});var oce=I((hQt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pQ.alloc(0);for(var i=pQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pQ.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var bM=I((pQt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(dQ,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(dQ,t),e(s)):process.nextTick(dQ,t)}),this)}function ace(r,e){BM(r,e),dQ(r)}function dQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var Ql=I((dQt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var QM=I((CQt,gce)=>{"use strict";var B5e=Ql().codes.ERR_INVALID_OPT_VALUE;function b5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function Q5e(r,e,t,i){var n=b5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:Q5e}});var fce=I((mQt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((EQt,PM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";PM.exports=vM.inherits}catch{PM.exports=fce()}var vM});var pce=I((IQt,hce)=>{hce.exports=J("util").deprecate});var DM=I((yQt,yce)=>{"use strict";yce.exports=Nr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Nr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mQ=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function P5e(r){return mQ.from(r)}function x5e(r){return mQ.isBuffer(r)||r instanceof v5e}var kM=bM(),k5e=QM(),D5e=k5e.getHighWaterMark,vl=Ql().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,N5e=vl.ERR_MULTIPLE_CALLBACK,T5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Nr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Nr,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Nr?!1:e&&e._writableState instanceof dE}})):CQ=function(e){return e instanceof this};function Nr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!CQ.call(Nr,this))return new Nr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Nr.prototype.pipe=function(){Ap(this,new T5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Nr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&x5e(r);return s&&!mQ.isBuffer(r)&&(r=P5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Nr.prototype.cork=function(){this._writableState.corked++};Nr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Nr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Nr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mQ.from(e,t)),e}Object.defineProperty(Nr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=G5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=NM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),EQ=0;EQ{var yQ=J("buffer"),hA=yQ.Buffer;function bce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?Qce.exports=yQ:(bce(yQ,TM),TM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}bce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yQ.SlowBuffer(r)}});var MM=I(Pce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}Pce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wQ=I((bQt,Dce)=>{"use strict";var xce=Ql().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var BQ;function Pl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wQ(),xl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),bQ=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[xl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[xl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[bQ]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((BQ={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[bQ])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},Pl(BQ,Symbol.asyncIterator,function(){return this}),Pl(BQ,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),BQ),w6e),b6e=function(e){var t,i=Object.create(B6e,(t={},Pl(t,Xu,{value:e,writable:!0}),Pl(t,xl,{value:null,writable:!0}),Pl(t,zu,{value:null,writable:!0}),Pl(t,mE,{value:null,writable:!0}),Pl(t,bQ,{value:e._readableState.endEmitted,writable:!0}),Pl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[xl]=null,i[zu]=null,s(kl(a,!1))):(i[xl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[xl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[xl];o!==null&&(i[Vu]=null,i[xl]=null,i[zu]=null,o(kl(void 0,!0))),i[bQ]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=b6e});var Oce=I((SQt,Lce)=>{"use strict";function Nce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function Q6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Nce(s,i,n,o,a,"next",l)}function a(l){Nce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Tce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var vQt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),QQ=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return QQ.from(r)}function R6e(r){return QQ.isBuffer(r)||r instanceof k6e}var UM=J("util"),xt;UM&&UM.debuglog?xt=UM.debuglog("stream"):xt=function(){};var F6e=oce(),WM=bM(),N6e=QM(),T6e=N6e.getHighWaterMark,SQ=Ql().codes,L6e=SQ.ERR_INVALID_ARG_TYPE,O6e=SQ.ERR_STREAM_PUSH_AFTER_EOF,M6e=SQ.ERR_METHOD_NOT_IMPLEMENTED,K6e=SQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,GM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=T6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=QQ.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){xt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,G6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==QQ.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){xt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return xt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vQ(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;xt("need readable",i),(e.length===0||e.length-r0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function G6e(r,e){if(xt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vQ(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Gce(r)))}}function vQ(r){var e=r._readableState;xt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(xt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Gce,r))}function Gce(r){var e=r._readableState;xt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Jce(i.pipes,r)!==-1)&&!c&&(xt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){xt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){xt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){xt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(xt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;xt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,xt("on readable",i.length,i.reading),i.length?vQ(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){xt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(xt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){xt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return xt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(xt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(xt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(xt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(xt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;xt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(xt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t{"use strict";Vce.exports=pA;var PQ=Ql().codes,X6e=PQ.ERR_METHOD_NOT_IMPLEMENTED,Z6e=PQ.ERR_MULTIPLE_CALLBACK,_6e=PQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=PQ.ERR_TRANSFORM_WITH_LENGTH_0,xQ=Wu();Sl()(pA,xQ);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((DQt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=Ql().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wQ()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wQ(),Os.pipeline=iue())});var oue=I((RQt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;gh)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r{"use strict";var ZM=gp().Duplex,c9e=Sl(),bE=oue();function Ji(r){if(!(this instanceof Ji))return new Ji(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}bE._init.call(this,r),ZM.call(this)}c9e(Ji,ZM);Object.assign(Ji.prototype,bE.prototype);Ji.prototype._new=function(e){return new Ji(e)};Ji.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Ji.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Ji.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Ji.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Ji.prototype._isBufferList=function(e){return e instanceof Ji||e instanceof bE||Ji.isBufferList(e)};Ji.isBufferList=bE.isBufferList;kQ.exports=Ji;kQ.exports.BufferListStream=Ji;kQ.exports.BufferList=bE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),QE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;te?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` `)),r.linkname&&(e+=_M(" linkpath="+r.linkname+` `));var t=r.pax;if(t)for(var i in t)e+=_M(" "+i+"="+t[i]+` -`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Tbt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((Lbt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var bue=I((Obt,Que)=>{var pp=Iue(),yue=PD(),Fb=Sl(),b9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,Rb=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=b9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var Nb=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};Fb(Nb,dp);Nb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};Nb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Tb=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};Fb(Tb,dp);Tb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Tb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};Fb(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Fb(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new Tb;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new Nb(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=Rb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=Rb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(Rb.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(Rb.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Que.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=bue()});var Mue=I((sSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Tue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Tue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Nue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Nue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Nue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=G9e;function G9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Tue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((oSt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,an=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=an(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=an(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=an(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=an(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=an(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=an(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=an(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=an(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=an(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=an(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=an(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=an(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. +`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,QE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,QE,QE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,QE,QE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((TQt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new DQ(r,e);return t.end(),t},b9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},DQ=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(DQ,pue);DQ.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=b9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new DQ(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((LQt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var Que=I((OQt,bue)=>{var pp=Iue(),yue=xD(),FQ=Sl(),Q9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,RQ=e1(),v9e=parseInt("755",8),P9e=parseInt("644",8),Bue=Q9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function x9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var NQ=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};FQ(NQ,dp);NQ.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};NQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var TQ=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};FQ(TQ,dp);TQ.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};TQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};FQ(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};FQ(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=x9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:P9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new TQ;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new NQ(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=RQ.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=RQ.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(RQ.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(RQ.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};bue.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=Que()});var Mue=I((sSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Tue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Tue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Nue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Nue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Nue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=G9e;function G9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Tue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((oSt,ca)=>{"use strict";var xE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,an=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=an(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=an(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=an(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=an(t);let i=typeof e=="string"?e:PE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=an(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=an(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=an(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(PE(t,e),e)}else return c1(PE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=PE;function PE(r,e){return e=an(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?PE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=an(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=an(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=xE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=an(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=an(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=xE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. Wanted: ${t.size} - Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=an(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=an(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. + Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=an(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=an(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(xE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. Wanted: ${r.size} - Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=an(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Ur,YarnVersion:()=>Fr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>yr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>vr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var vr={};ct(vr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Te={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Or(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function un(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} + Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=an(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(xE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(xE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>XP,PackageExtensionType:()=>VP,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>Pi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>Qh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Ur,YarnVersion:()=>Fr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>Qt,stringifyMessageName:()=>RA,structUtils:()=>P,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>Qo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>yr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>vr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>bS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var vr={};ct(vr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Te={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Or(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function bo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function un(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} `)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} `)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},vA=class extends wa{constructor(){super(v)}};function $ge(r){let e=r.match(/\r?\n/g);if(e===null)return fK.EOL;let t=e.filter(n=>n===`\r `).length,i=e.length-t;return t>i?`\r `:` -`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Qg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new Qg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=Qg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Te.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Te.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Or("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Or("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Or("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Te.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=bg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&bg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Or("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Te.root,i);if(o==="/")return Te.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw Qo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Te.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&bg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(bg.constants.COPYFILE_EXCL|bg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Or(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Te.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Te.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Te.root,t);return Gp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var bo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Te.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Te.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Te.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,yr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|zi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==zi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==zi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==zi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==zi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==zi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==zi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==zi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==zi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==zi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==zi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Te.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function QS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return QS(t,e),t}var bK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,bS=null;function QK(){if(bS)return bS;let r=K.toPortablePath(bK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),bS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(TS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` -`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],bI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null +`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var Qg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var bg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new bg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=bg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Te.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Te.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Or("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Or("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Or("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Te.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=Qg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&Qg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Or("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw bo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),x=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:x,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),x=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:x,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Te.root,i);if(o==="/")return Te.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw bo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Te.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&Qg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(Qg.constants.COPYFILE_EXCL|Qg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Or(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw bo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Te.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw bo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Te.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Te.root,t);return Gp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Qo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Te.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Te.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Te.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,yr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|zi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==zi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==zi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==zi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==zi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==zi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==zi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==zi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==zi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==zi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==zi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Te.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var xg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),PA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),Pg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[PA])return this[PA];if(this[Pg]--,this[Pg]===0){let e=this[Ba];this[Ba]=-1,this[PA]=this[Fi].closePromise(e).finally(()=>{this[PA]=void 0})}else this[PA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[PA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[PA]}[(Fi,Ba,ife=Pg,nfe=PA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[Pg]++}[Ws](){if(this[Pg]--,this[Pg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function bS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[xg.promisify.custom])<"u"&&(s[xg.promisify.custom]=o[xg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[xg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[xg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return bS(t,e),t}var QK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,QS=null;function bK(){if(QS)return QS;let r=K.toPortablePath(QK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),QS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(TS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>Qa,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],QI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null `;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} `;if(typeof r=="string")return`${hH(r)} `;if(Array.isArray(r)){if(r.length===0)return`[] `;let i=" ".repeat(e);return` -${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof bI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g} +${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof QI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g} ${p}:`:`${g}:`,m=h.startsWith(` `)?h:` ${h}`;return`${p}${d}${m}`}).join(e===0?` `:"")||` `;return t?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=bI;function Ede(r){return r.endsWith(` +${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function Qa(r){try{let e=$S(r,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Qa.PreserveOrdering=QI;function Ede(r){return r.endsWith(` `)||(r+=` -`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} +`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>Qe,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} ${this.candidates.map(({usage:n})=>`$ ${n}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: @@ -336,14 +336,14 @@ ${sv(e)}`}else this.message=`Command not found; did you mean one of: ${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` `)} -${sv(e)}`}},xI=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: +${sv(e)}`}},PI=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: ${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` `)} -${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Vi(r){return{...r,[id]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function PI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${PI(e[0],!0)}`):new we(`${r}: +${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Vi(r){return{...r,[id]:!0}}function xo(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function xI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${xI(e[0],!0)}`):new we(`${r}: ${e.map(t=>` -- ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var be=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};be.isOption=id;be.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` +- ${xI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var Qe=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};Qe.isOption=id;Qe.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` `),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` `)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` `),r=nCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 @@ -353,11 +353,11 @@ ${e.map(t=>` `)}).join(` `)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var fv=ve(J("tty"),1);function pn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[Zi(),Zi(),Zi()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function Zi(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=Zi();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Qi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=NH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,Zi()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,Zi());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h0||!this.arity.proxy){let h=Vs(e,Zi());Qi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,Zi());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,Zi());this.arity.proxy||this.registerOptions(e,p),Qi(e,c,s,p,"pushExtraNoLimits"),Qi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;ho.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Qi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Qi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,Zi());for(let o of i.names)Qi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&ecCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends be{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`:""}var fv=ve(J("tty"),1);function pn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[Zi(),Zi(),Zi()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:x,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(x))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new PI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function Zi(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=Zi();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function bi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=NH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,Zi()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,Zi());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h0||!this.arity.proxy){let h=Vs(e,Zi());bi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),bi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,Zi());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,Zi());this.arity.proxy||this.registerOptions(e,p),bi(e,c,s,p,"pushExtraNoLimits"),bi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;ho.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)bi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&bi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,Zi());for(let o of i.names)bi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&ecCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends Qe{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` +`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Qe.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Qe?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` `),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} `,a+=` `);let{usage:g,options:h}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} @@ -386,96 +386,96 @@ ${e.map(t=>` `,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} `;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` `,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends be{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends be{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends be{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Vi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Vi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Vi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Vi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function TI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>jSe,bindLocator:()=>GSe,convertDescriptorToLocator:()=>bw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>rn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>en,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>Sn,stringifyIdent:()=>Tt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Gk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>bn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>bc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var mW=ve(Bn()),EW=ve(aW());var me={};ct(me,{AsyncActions:()=>jx,BufferStream:()=>Hx,CachingStrategy:()=>dW,DefaultStream:()=>Gx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>Qc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>CW,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>Qn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var lW=ve(Bn()),cW=ve(Jg()),uW=ve(zr()),Yx=J("stream");function u0e(r){return!!(uW.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==gW&&t.push(n)}return t}var gW=Symbol();Uo.skip=gW;function Wd(r,e){for(let t of r){let i=e(t);if(i!==fW)return i}}var fW=Symbol();Wd.skip=fW;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function Qc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Yx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,cW.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Gx=class extends Yx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function hW(r){return Jd(K.fromPortablePath(r))}function pW(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=hW(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var AW=new Map;function C0e(r){let e=AW.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=pW(r);return AW.set(r,{mtime:t.mtimeMs,instance:i}),i}var dW=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(dW||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return pW(r);case 1:return C0e(r);case 2:return hW(r);default:throw new Error("Unsupported caching strategy")}}function Qn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${lW.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function CW(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return CW(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>bn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Tt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>Sn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Sn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:Sn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,en(e.selector))} \u27A4 ${bn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Tt(r.parentDescriptor)} > ${Tt(r.descriptor)}`;case"PeerDependency":return`${Tt(r.parentDescriptor)} >> ${Tt(r.descriptor)}`;case"PeerDependencyMeta":return`${Tt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,bn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return bn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>bn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function bn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return bn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return bn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?bc(t,i):_e(e,t,i)}function rP(r){return{Check:bn(r,"\u2713","green"),Cross:bn(r,"\u2718","red"),Question:bn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([mW.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,EW.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>Qw,makeHash:()=>tn});var ww=J("crypto"),Kk=ve(Mk());function tn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(x8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:tn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:tn(r.identHash,e),range:e}}function rn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:tn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function bw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,rn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return rn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function GSe(r,e){return r.reference.includes("::")?r:rn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P8(t,i))return!1}return!0}function en(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return rn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function b8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${b8(e)}#`),n+=b8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Tt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Sn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Tt(r)}@${xw(r.reference)}`}function Pf(r){return Qn(r,[e=>Tt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Tt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Tt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Tt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Ur=uC;Ur.protocol="workspace:";var bt={};ct(bt,{SemVer:()=>N8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),N8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=T8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=T8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=en(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=nn(e.main):this.main=null,typeof e.module=="string"?this.module=nn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=nn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(nn(s),typeof o=="string"?nn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,nn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=en(s);this.bin.set(a.name,nn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Ur.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=nn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=nn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=nn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(nn(s),typeof o=="string"?nn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,nn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,nn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(nn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Tt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Tt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Tt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Tt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Tt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Tt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of Qn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of Qn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Sn(zt(en(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Qn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function T8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function nn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Gve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Gve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return rn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=yr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Ur.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Te.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Ur.protocol.length))}};var Nw={};ct(Nw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Tw,Lw;function dC(){return Tw=Tw!=null?Tw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Ur,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=en(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(Qn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(Qn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Bn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>NB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>TB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>NC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>on,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(N=>(N[N.ZIP_ER_OK=0]="ZIP_ER_OK",N[N.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",N[N.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",N[N.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",N[N.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",N[N.ZIP_ER_READ=5]="ZIP_ER_READ",N[N.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",N[N.ZIP_ER_CRC=7]="ZIP_ER_CRC",N[N.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",N[N.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",N[N.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",N[N.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",N[N.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",N[N.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",N[N.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",N[N.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",N[N.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",N[N.ZIP_ER_EOF=17]="ZIP_ER_EOF",N[N.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",N[N.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",N[N.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",N[N.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",N[N.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",N[N.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",N[N.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",N[N.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",N[N.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",N[N.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",N[N.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",N[N.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",N[N.ZIP_ER_TELL=30]="ZIP_ER_TELL",N[N.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",N))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function u9(){return NR===null&&(NR=l9((0,c9.default)())),NR}async function on(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var b9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>TR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Bn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function TR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(TS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends Qe{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends Qe{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends Qe{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>xI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Vi,rerouteArguments:()=>xo});function HH(r,e,t){let[i,n]=xo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=xo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=xo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Vi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Vi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function mCe(r,e,t){let[i,n]=xo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Vi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function TI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var P={};ct(P,{areDescriptorsEqual:()=>x8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>jSe,bindLocator:()=>GSe,convertDescriptorToLocator:()=>Qw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>rn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>en,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nx,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>xw,prettyReference:()=>lC,prettyResolution:()=>ix,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>Pf,sortDescriptors:()=>xf,stringifyDescriptor:()=>Sn,stringifyIdent:()=>Tt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Gk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_P,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Qn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>Qc,jsonOrPretty:()=>w0e,mark:()=>rx,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tx,supportsColor:()=>Wy,supportsHyperlinks:()=>ex,tuple:()=>io});var Xd=ve(wP()),Vd=ve(cc());var mW=ve(Bn()),EW=ve(aW());var me={};ct(me,{AsyncActions:()=>jP,BufferStream:()=>HP,CachingStrategy:()=>dW,DefaultStream:()=>GP,allSettledSafe:()=>ro,assertNever:()=>qP,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>bc,isIndexableObject:()=>UP,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>CW,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>JP,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>WP,sortMap:()=>bn,tryParseOptionalBoolean:()=>zP,validateEnum:()=>h0e});var lW=ve(Bn()),cW=ve(Jg()),uW=ve(zr()),YP=J("stream");function u0e(r){return!!(uW.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qP(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==gW&&t.push(n)}return t}var gW=Symbol();Uo.skip=gW;function Wd(r,e){for(let t of r){let i=e(t);if(i!==fW)return i}}var fW=Symbol();Wd.skip=fW;function UP(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),UP(r))for(let e of Object.keys(r)){let t=r[e];UP(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function bc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function JP(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var HP=class extends YP.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jP=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,cW.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},GP=class extends YP.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function hW(r){return Jd(K.fromPortablePath(r))}function pW(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=hW(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var AW=new Map;function C0e(r){let e=AW.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=pW(r);return AW.set(r,{mtime:t.mtimeMs,instance:i}),i}var dW=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(dW||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return pW(r);case 1:return C0e(r);case 2:return hW(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${lW.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function WP(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function CW(r){return typeof r>"u"?r:zd(r)}function zP(r){try{return CW(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),VP=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(VP||{}),XP=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(XP||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_P=(e=>(e[e.BOLD=2]="BOLD",e))(_P||{}),$P=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$P.level!==0,ex=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,ZP=new Xd.default.Instance($P),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Qn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Tt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>Sn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>ix(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Sn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nx(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:Sn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,en(e.selector))} \u27A4 ${Qn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Tt(r.parentDescriptor)} > ${Tt(r.descriptor)}`;case"PeerDependency":return`${Tt(r.parentDescriptor)} >> ${Tt(r.descriptor)}`;case"PeerDependencyMeta":return`${Tt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Qn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Qn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Qn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Qn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$P.level>=3?i[0]:i[1],s=typeof n=="number"?ZP.ansi256(n):n.startsWith("#")?ZP.hex(n):ZP[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Qn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Qn(r,e,t)}function tx(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function Qc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?Qc(t,i):_e(e,t,i)}function rx(r){return{Check:Qn(r,"\u2713","green"),Cross:Qn(r,"\u2718","red"),Question:Qn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([mW.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,EW.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>bw,makeHash:()=>tn});var ww=J("crypto"),Kk=ve(Mk());function tn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function bw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,P8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(P8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:tn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:tn(r.identHash,e),range:e}}function rn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:tn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function Qw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,rn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return rn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function GSe(r,e){return r.reference.includes("::")?r:rn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function x8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!x8(t,i))return!1}return!0}function en(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return rn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function Q8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${Q8(e)}#`),n+=Q8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Tt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Sn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function Pf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function Pw(r){if(r.startsWith(tC)){let e=Pw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function xw(r,e){return`${_e(r,Pw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${xw(r,e.range)}`}function lC(r,e){return`${_e(r,Pw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Tt(r)}@${Pw(r.reference)}`}function xf(r){return bn(r,[e=>Tt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function ix(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rx(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nx(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${xw(r,t.range)})`}function qk(r){return`node_modules/${Tt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(P8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Tt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Tt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Ur=uC;Ur.protocol="workspace:";var Qt={};ct(Qt,{SemVer:()=>N8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),N8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=T8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=T8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=en(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=nn(e.main):this.main=null,typeof e.module=="string"?this.module=nn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=nn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(nn(s),typeof o=="string"?nn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,nn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=en(s);this.bin.set(a.name,nn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Ur.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=nn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=nn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=nn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(nn(s),typeof o=="string"?nn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,nn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,nn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(nn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Tt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Tt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Tt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Tt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...xf(i).map(o=>({[Tt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...xf(n).map(o=>({[Tt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...xf(this.devDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...xf(this.peerDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Sn(zt(en(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function T8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function nn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zP(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Gve(r){return typeof r.reportCode<"u"}var Pi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Gve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return rn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return Pf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=yr.makeVirtualPath(s,o,n),l=new Qo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Ur.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Te.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Ur.protocol.length))}};var Nw={};ct(Nw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Tw,Lw;function dC(){return Tw=Tw!=null?Tw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:ex,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=WP(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:x,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:x,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:x,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:x}of l)h.useWithSource(B,u(x),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,x=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await x(H,"")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await x(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:S,data:x,strict:F}of l)h.useWithSource(B,g(x),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,Qa(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Ur,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qP(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=en(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{ePe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function ePe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>PC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Bn()),xR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function PR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tx(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function PC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(PC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(PC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(PC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(PC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?xR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?xR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await PR(d):void 0,x=m?await PR(m):void 0,F=y?await PR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:x,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>NB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>TB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>NC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>xRe});var xC={};ct(xC,{getLibzipPromise:()=>on,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(N=>(N[N.ZIP_ER_OK=0]="ZIP_ER_OK",N[N.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",N[N.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",N[N.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",N[N.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",N[N.ZIP_ER_READ=5]="ZIP_ER_READ",N[N.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",N[N.ZIP_ER_CRC=7]="ZIP_ER_CRC",N[N.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",N[N.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",N[N.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",N[N.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",N[N.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",N[N.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",N[N.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",N[N.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",N[N.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",N[N.ZIP_ER_EOF=17]="ZIP_ER_EOF",N[N.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",N[N.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",N[N.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",N[N.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",N[N.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",N[N.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",N[N.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",N[N.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",N[N.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",N[N.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",N[N.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",N[N.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",N[N.ZIP_ER_TELL=30]="ZIP_ER_TELL",N[N.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",N))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function u9(){return NR===null&&(NR=l9((0,c9.default)())),NR}async function on(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var Q9=ve(wP()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>TR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Bn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function TR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(TS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} `),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} `),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var bs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Qs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` `),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function I9(r,{prefix:e}){return{stdout:p9(t=>r.stdout.write(`${t} `),r.stdout.isTTY?e:null),stderr:p9(t=>r.stderr.write(`${t} -`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function bB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} +`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function QB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} `),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} -`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new bs(t.stdin),stdout:new bs(t.stdout),stderr:new bs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;Se.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]} -`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function Q9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,bB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new bs(o.stdin),stdout:new bs(o.stdout),stderr:new bs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return b9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(Q9(r,e,bB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new Qs(t.stdin),stdout:new Qs(t.stdout),stderr:new Qs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;Se.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let x=new Vn.PassThrough;return process.nextTick(()=>{x.write(`${r[S]} +`),x.end()}),x});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let x=v.resolve(t.cwd,K.toPortablePath(r[S]));m(x==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(x,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new Qs(i),stdout:new Qs(n),stderr:new Qs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,QB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function bB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function P9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=bB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=bB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await P9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=bB(p);for(let m=0;m"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,QB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function b9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,QB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new Qs(o.stdin),stdout:new Qs(o.stdout),stderr:new Qs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return Q9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(b9(r,e,QB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} `)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended -`)})),0}return await Q9(r,e,t)}async function QDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} -`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await QDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function P9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} +`)})),0}return await b9(r,e,t)}async function bDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} +`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await bDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function x9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>x9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return x9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(PB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} `,end:r=>`::endgroup:: `}:RB.default.TRAVIS?{start:r=>`travis_fold:start:${r} `,end:r=>`travis_fold:end:${r} `}:RB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${r} -`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,QRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,bRe=r=>r,FB=bRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=QRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} +`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,bRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,QRe=r=>r,FB=QRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=bRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends Pi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} `),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})} `);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>uV&&(this.progressFrame=(this.progressFrame+1)%cV.length,this.progressTime=t);let i=cV[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${_e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Fr="3.8.0";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Fr="3.8.1";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Fr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Fr!==null?`yarn/${Fr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources +`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Fr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Fr!==null?`yarn/${Fr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,PRe=(0,dV.default)(vRe);async function xRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await PRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources `);let p=await mV(r),d;p!==null?(c.write(`Using ${p.packageManager} for bootstrap. Reason: ${p.reason} `),d=p.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn -`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn +`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),x=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn `),c.write(` `),delete B.NODE_ENV;let W=await so("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` -`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await on()})}async function NB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await on()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await on(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await on(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=Te.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,vr.SAFE_TIME,vr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lTe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:bc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} +`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof x>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await x();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await on()})}async function NB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await on()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await on(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await on(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=Te.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,vr.SAFE_TIME,vr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lTe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Qc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:Qc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} `);return}let s=(0,mZ.asTree)(EZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Pf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${Pf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore *.flock *.tmp -`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await on(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} +`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:x}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,xe=ne;if(!te)if(this.check)he=await g(xe);else{let De=await u(xe);if(De.isValid)he=De.hash;else return p()}return[te,xe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,x=await on(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:x,readOnly:!0}),H=new Sg(()=>JP(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new Qo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends Pi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} `)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1=a&&P+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` -`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,rn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(bw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var bh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Te.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${tn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=rn(e,t),this.anchoredDescriptor=zt(this.locator,`${Ur.protocol}${this.relativeCwd}`),this.anchoredLocator=rn(this.locator,`${Ur.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Ur.protocol&&v.normalize(n)===this.relativeCwd||i===Ur.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Ur.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],x=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1=a&&x+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,bZ=/\S/,QZ=new iA;QZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!bZ.test(r)&&!bZ.test(e)};QZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var x=a[S],F=x.lines||x.value.replace(/\n$/,"").split(` +`);if(x.lines=F,x.added||x.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(x.added?"+":"-")+te}))),x.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,rn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Qw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Qw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends Pi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var Qh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Te.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${tn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=rn(e,t),this.anchoredDescriptor=zt(this.locator,`${Ur.protocol}${this.relativeCwd}`),this.anchoredLocator=rn(this.locator,`${Ur.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Ur.protocol&&v.normalize(n)===this.relativeCwd||i===Ur.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Ur.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} `;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var N$=6,XMe=1,ZMe=/ *, */g,T$=/\/$/,_Me=32,$Me=(0,zN.promisify)(VN.default.gzip),e1e=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>tn(`${XMe}`,r),Ge=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ge(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. ${[g,h,p].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Tt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(T$,"")!==e.replace(T$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let N=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,N)})`);g.set(N.locatorHash,N);let ce=this.configuration.normalizePackage(N);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let N=h.get(O.locatorHash);if(typeof N<"u")return N;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,N)=>{let ce=await te(N);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let N=this.resolutionAliases.get(O.descriptorHash);if(typeof N<"u")return ne(O,this.storedDescriptors.get(N));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let N=p.get(O.descriptorHash);if(typeof N<"u")return N;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let N=O.anchoredDescriptor;y.push(te(N))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(Qn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let N=O.makeInstaller(c),ce=N.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&N.attachCustomData(he),[O,N]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(N,a)]}))),m=[];for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(typeof N>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(N.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(N);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(N,c)&&(await ge.installPackage(N,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(N.locatorHash,Ae),!Yo(N)&&Re.length>0&&p.set(N.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(N,c));if(!Re)throw new rt(12,`${Ct(this.configuration,N)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(N,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(N.locatorHash,Re),h.set(N.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(N.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(N)!==null,he=async(Pe,De)=>{let Re=h.get(N.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,N)}) should have been registered`);let se=[];for(let Ae of N.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,N)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(N,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(N,c)&&await he(Pe,De);else{let Pe=g.get(N.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,N]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,N)}let B=new Map;for(let O of u.values()){let N=await O.finalizeInstall();for(let ce of(te=N==null?void 0:N.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(N==null?void 0:N.customData)<"u"&&B.set(O.getCustomDataKey(),N.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let N=q.get(O.locatorHash);if(typeof N<"u")return N;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return N=he.digest("hex"),q.set(O.locatorHash,N),N},X=(O,N)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of N)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let N=new Set([O.locatorHash]);for(let ce of N){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;N.add(se.anchoredLocator.locatorHash)}N.add(De)}}return!0};for(;P.size>0;){let O=P.size,N=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,x=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:x,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new Qh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Tt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(T$,"")!==e.replace(T$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Pi.progressViaTitle(),async W=>{let Z=async O=>{let N=await df(async()=>await s.resolve(O,a),xe=>`${Ct(this.configuration,O)}: ${xe}`);if(!aC(O,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,N)})`);g.set(N.locatorHash,N);let ce=this.configuration.normalizePackage(N);for(let[xe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(xe,se)}let he=ro([...ce.dependencies.values()].map(xe=>te(xe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let N=h.get(O.locatorHash);if(typeof N<"u")return N;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,N)=>{let ce=await te(N);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let N=this.resolutionAliases.get(O.descriptorHash);if(typeof N<"u")return ne(O,this.storedDescriptors.get(N));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let N=p.get(O.descriptorHash);if(typeof N<"u")return N;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let N=O.anchoredDescriptor;y.push(te(N))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let x=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:x,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of x)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=Pi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let N=O.makeInstaller(c),ce=N.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&N.attachCustomData(he),[O,N]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(N,a)]}))),m=[];for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(typeof N>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(N.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],xe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(N);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(N,c)&&(await ge.installPackage(N,ce,{holdFetchResult:xe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(N.locatorHash,Ae),!Yo(N)&&Re.length>0&&p.set(N.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(N,c));if(!Re)throw new rt(12,`${Ct(this.configuration,N)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(N,ce,{holdFetchResult:xe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(N.locatorHash,Re),h.set(N.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(N.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(N)!==null,he=async(xe,De)=>{let Re=h.get(N.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,N)}) should have been registered`);let se=[];for(let Ae of N.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,N)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===xe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(N,se)};if(ce)for(let[xe,De]of u)xe.supportsPackage(N,c)&&await he(xe,De);else{let xe=g.get(N.locatorHash);if(!xe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(xe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(xe,De)}}for(let[O,N]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let xe=u.get(he);if(!xe)throw new Error("Assertion failed: The installer should have been registered");await xe.attachExternalDependents(ce,N)}let B=new Map;for(let O of u.values()){let N=await O.finalizeInstall();for(let ce of(te=N==null?void 0:N.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(N==null?void 0:N.customData)<"u"&&B.set(O.getCustomDataKey(),N.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),x=new Set(p.keys());for(let O of x)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let N=q.get(O.locatorHash);if(typeof N<"u")return N;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"");for(let xe of ce.dependencies.values()){let De=this.storedResolutions.get(xe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,xe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return N=he.digest("hex"),q.set(O.locatorHash,N),N},X=(O,N)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of N)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let N=new Set([O.locatorHash]);for(let ce of N){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let xe of he.dependencies.values()){let De=this.storedResolutions.get(xe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,xe)}) should have been registered`);if(De!==O.locatorHash&&x.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&x.has(se.anchoredLocator.locatorHash))return!1;N.add(se.anchoredLocator.locatorHash)}N.add(De)}}return!0};for(;x.size>0;){let O=x.size,N=[];for(let ce of x){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let xe=p.get(he.locatorHash);if(!xe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,xe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),x.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=xe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of xe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) `;switch(Ae){case 0:ge+=`# Script name: ${ye} `;break;case 1:ge+=`# Script code: ${ye} -`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>Sn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{x.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===x.size){let ce=Array.from(x).map(he=>{let xe=this.storedPackages.get(he);if(!xe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,xe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(Qc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>bw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>bw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>Sn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} -`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=tn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=tn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} -`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(Qn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=tn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=en(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${tn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of N){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Ur.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Ur.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:N.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Tt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements ",Ke.CODE)} for details, where ${_e(r.configuration,"",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of Qn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){Qc(this.values,e).add(t)}reportEnumerator(e,t){Qc(this.enumerators,e).add(tn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),M$=ve(cc());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!bt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZN.realpathSync)(process.cwd()),X=(0,ZN.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Tm={};ct(Tm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wQ,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends be{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VT()),_ie=()=>new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",hn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ge.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VT());var CO={};ct(CO,{dedupeUtils:()=>FQ,default:()=>y4e,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>PQ,Target:()=>Hm,WorkspaceModifier:()=>Nse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Tse,fetchDescriptorFrom:()=>GL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Nse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Nse||{}),PQ=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(PQ||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Tse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await GL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await GL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function GL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Tse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} -`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=be.Usage({description:"get the path to a binary script",details:` +`+Qa(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=tn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=tn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} +`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},x=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],xe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){x(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&bc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(bn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),x(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),xe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(bc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=tn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...xe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),x(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=en(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${tn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let xe=A.dependencies.get(ce.identHash);if(typeof xe<"u"){let De=S(xe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of N){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Ur.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Ur.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:N.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Tt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements ",Ke.CODE)} for details, where ${_e(r.configuration,"",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){bc(this.values,e).add(t)}reportEnumerator(e,t){bc(this.enumerators,e).add(tn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,x]of Object.entries(m.values))x.length>0&&y.set(S,x.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[x,F]of y)S.metrics[x]=F.shift(),F.length===0&&y.delete(x);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,x]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+x}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),M$=ve(cc());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,x;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Qt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(x=Ee.telemetry)==null||x.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZN.realpathSync)(process.cwd()),X=(0,ZN.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Tm={};ct(Tm,{BaseCommand:()=>Pe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wb,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var Pe=class extends Qe{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VT()),_ie=()=>new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",hn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ge.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VT());var CO={};ct(CO,{dedupeUtils:()=>Fb,default:()=>y4e,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>xb,Target:()=>Hm,WorkspaceModifier:()=>Nse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Tse,fetchDescriptorFrom:()=>GL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Nse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Nse||{}),xb=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(xb||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Pqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Tse(r,{project:e}){let t=r.match(Pqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=P.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),P.makeDescriptor(r,P.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return P.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await xqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await GL(P.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=P.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(p.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${P.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${P.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${P.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${P.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${P.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${P.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:P.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await GL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${P.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function GL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=P.parseRange(P.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let x=typeof s=="string"?s:o.range;S=Tse(x,{project:t})+S}return P.makeDescriptor(d,P.makeRange({protocol:m,source:y,params:B,selector:S}))}async function xqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let x=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):P.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,P.makeDescriptor(P.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!x)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,x,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(x,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:x,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:x,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${P.prettyDescriptor(t,x)} can't be resolved to a satisfying range`):S.reportError(27,`${P.prettyDescriptor(t,x)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:x}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>P.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[x].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[x].set(F.identHash,F),this.optional&&(x==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:x==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,x,F,c]):m.push([n,x,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` +`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=Qe.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends Pe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} +`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:P.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${P.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=Qe.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends xe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=be.Usage({description:"remove the shared cache files",details:` + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends Pe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=Qe.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cQ()),YL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cb()),YL=J("util"),fu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} `),c.exitCode();YL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,YL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} -`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=be.Usage({description:"read a configuration settings",details:` +`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=Qe.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var $oe=ve(XL()),eae=ve(cQ()),tae=ve(_oe()),ZL=J("util"),hu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=be.Usage({description:"change a configuration settings",details:` + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var $oe=ve(XL()),eae=ve(cb()),tae=ve(_oe()),ZL=J("util"),hu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=Qe.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends xe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=be.Usage({description:"unset a configuration setting",details:` + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends Pe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=Qe.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=be.Usage({description:"display the current configuration",details:` + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends Pe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=Qe.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Bn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),NWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=NWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Xi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Fr||""} -`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.Usage({description:"execute a shell script",details:` + `,examples:[["Print the active configuration settings","$0 config"]]});As();var Fb={};ct(Fb,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Bn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),NWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=NWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=Pi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:x,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${P.prettyDescriptor(s,x)} can be deduped from ${P.prettyLocator(s,F)} to ${P.prettyLocator(s,H)}`),n.reportJson({descriptor:P.stringifyDescriptor(x),currentResolution:P.stringifyLocator(F),updatedResolution:P.stringifyLocator(H)}),r.storedResolutions.set(x.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends Pe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Xi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=Qe.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends Pe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} +`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends Pe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends Pe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends Pe{async execute(){this.context.stdout.write(`${Fr||""} +`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends Pe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=Qe.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends Pe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>P.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>P.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=P.prettyLocator(t,u),m=P.prettyIdent(t,c.requested),y=P.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,x=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${x}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=Qe.Usage({description:"explain a set of peer requirements",details:` A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. @@ -483,9 +483,9 @@ Try running the command again with the package name prefixed: ${$.pretty(t,"yarn When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Fr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=be.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function OWe(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>bt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(x=>{let F=e.storedPackages.get(x);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=P.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let x=h.every(({peerDependency:F})=>Qt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(S=g.version)!=null?S:"")}, which ${x?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:x,peerDependency:F}of me.sortMap(h,H=>P.stringifyLocator(H.pkg))){let q=(g!==null?Qt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:P.stringifyLocator(x),prettyLocator:P.prettyLocator(i,x),prettyRange:P.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:x})=>x.length)),y=Math.max(...d.map(({prettyRange:x})=>x.length));for(let{stringifiedLocator:x,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-x.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends Pe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Fr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(Qt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Qt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Qt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=Qe.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function OWe(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>Qt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: ${e}`)});let n=(p=r.projectCwd)!=null?p:r.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(r.startingCwd,o),l=v.relative(n,o);i.reportInfo(0,`Saving the new release in ${$.pretty(r,a,"magenta")}`),await M.removePromise(v.dirname(o)),await M.mkdirPromise(v.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ee.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&me.isTaggedYarnVersion(e)?e:await Wm(r,"stable")}`;let u={};c.exportTo(u);let g=v.join(n,ot.fileName),h=`${JSON.stringify(u,null,c.indent)} -`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var MWe=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Fr)?Fr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var MWe=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Fr)?Fr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends Pe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} @@ -493,11 +493,11 @@ ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berr `):this.context.stdout.write(`${s} ${l} -`)}else{let i={children:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=be.Usage({description:"explain an error code",details:` +`)}else{let i={children:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=Qe.Usage({description:"explain an error code",details:` When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Bn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let N=x.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,N;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(N=i.storedPackages.get(ue))!=null?N:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=be.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var NQ=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!NQ.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!NQ.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!NQ.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await GWe(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ge.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],be.Default],Bu.usage=be.Usage({description:"install the project dependencies",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Bn()),wu=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),P.isVirtualLocator(Z)&&X.push(P.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=P.parseLocator(Z),ne=Cae.default.makeRe(P.stringifyIdent(A)),ue=P.isVirtualLocator(A),te=ue?P.devirtualizeLocator(A):A;return O=>{let N=P.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=P.isVirtualLocator(O),he=ce?P.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>P.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!P.isVirtualLocator(F))continue;let H=P.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},x=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=P.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[P.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of x)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,N;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(N=i.storedPackages.get(ue))!=null?N:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=Qe.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Nb=ve(cc());As();var Bu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!Nb.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await GWe(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ge.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],Qe.Default],Bu.usage=Qe.Usage({description:"install the project dependencies",details:` This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). @@ -523,18 +523,18 @@ ${l} - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var UWe="|||||||",HWe=">>>>>>>",jWe="=======",mae="<<<<<<<";async function GWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function YWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===jWe){i=!1;break}else if(i||s.startsWith(UWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var UWe="|||||||",HWe=">>>>>>>",jWe="=======",mae="<<<<<<<";async function GWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,Qa(l),{automaticNewlines:!0}),!0}function YWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===jWe){i=!1;break}else if(i||s.startsWith(UWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` `),e[1].join(` -`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.Usage({description:"run node with the hook already setup",details:` +`)]}var bu=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=P.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};bu.paths=[["link"]],bu.usage=Qe.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Qu=class extends Pe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Qu.paths=[["node"]],Qu.usage=Qe.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Qae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=be.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.Usage({description:"build Yarn from master",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var bae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=Qe.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],Pu=class extends Pe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};Pu.paths=[["set","version","from","sources"]],Pu.usage=Qe.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function zm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await pr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${$.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Fr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Fr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.Usage({category:"Plugin-related commands",description:"download a plugin",details:` +`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var xu=class extends Pe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=P.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Fr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Fr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};xu.paths=[["plugin","import"]],xu.usage=Qe.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: @@ -544,23 +544,23 @@ ${l} - Local plugins can be referenced by their path on the disk. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends Pe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,bae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=P.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=Qe.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends Pe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=P.parseIdent(o);if(!t.plugins.has(o))throw new we(`${P.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=Qe.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=be.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=Qe.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.Usage({description:"rebuild the project's native packages",details:` + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends Pe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(P.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=Qe.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Bn());As();var Nu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=be.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Bn());As();var Nu=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=P.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let x of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(x),c=!0,m=!0;for(let x of a){let F=B.manifest.getForScope(x),H=[...F.values()].map(q=>P.stringifyIdent(q));for(let q of(0,nO.default)(H,P.stringifyIdent(y))){let{identHash:_}=P.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[x].delete(_),u.push([B,x,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=Qe.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -570,7 +570,7 @@ ${l} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=be.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Qae=J("util"),_h=class extends Pe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,Qae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends Pe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=Qe.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -580,48 +580,48 @@ ${l} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Bn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends Pe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=P.parseDescriptor(this.descriptor,!0),a=P.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=Qe.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Bn()),Ou=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(P.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(P.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=Qe.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Bn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Bn());As();var ml=class extends Pe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>P.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(P.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=P.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,x=P.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>P.stringifyIdent(X));for(let X of(0,sO.default)(_,P.stringifyIdent(x))){let W=P.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=P.makeDescriptor(W,x.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:x,rejections:F}]of g){let H=x.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,S)} can't be resolved to a satisfying range -${_}`):B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) +${_}`):B.reportError(27,`${P.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) -${_}`)}else H.length>1&&!o&&B.reportError(27,`${x.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:P}]of g){let F,H=P.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${x.prettyWorkspace(t,B)} \u276F ${S}?`,choices:P.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.Usage({description:"display the reason why a package is needed",details:` +${_}`)}else H.length>1&&!o&&B.reportError(27,`${P.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:x}]of g){let F,H=x.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>P.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${P.prettyWorkspace(t,B)} \u276F ${S}?`,choices:x.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` +`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=Qe.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends Pe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=P.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=Qe.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E4e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>TQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C4e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function p4e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(p4e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],TQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(TQ||{});function ep(r){return r?d4e.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(TQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(TQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,LQ(r.reference))}function fO(r,{configuration:e}){let t=LQ(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=bt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function C4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var OQ=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var MQ=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[OQ],resolvers:[MQ]};var E4e=m4e;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=be.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=P.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=P.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>P.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=P.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let x of h.dependencies.values()){if(!i&&h.peerDependencies.has(x.identHash))continue;let F=r.storedResolutions.get(x.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,x)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E4e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>Tb,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C4e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>Lb,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(PB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function p4e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(p4e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Tb=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(Tb||{});function ep(r){return r?d4e.some(e=>!!r.match(e)):!1}function Vm(r){r=Lb(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Tb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(Tb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function Lb(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return P.makeLocator(r,Lb(r.reference))}function fO(r,{configuration:e}){let t=Lb(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=Qt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function C4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var Ob=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var Mb=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[Ob],resolvers:[Mb]};var E4e=m4e;var Ku=class extends Pe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>P.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?P.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=Qe.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends Pe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[P.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${l.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=be.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=Qe.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var I4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},y4e=I4e;var wO={};ct(wO,{default:()=>B4e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),w4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},B4e=w4e;var BO={};ct(BO,{default:()=>b4e});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} -`),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let P=typeof S=="string"?S:S.path,F=K.isAbsolute(P)?P:K.resolve(K.fromPortablePath(s),P);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var I4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,Pu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,bu,Ou,Qu,ku,xu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},y4e=I4e;var wO={};ct(wO,{default:()=>B4e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("m0N6OqMDsc7bJpTqIc2FFkxFRuqnXiKdSoBaf+vf0xPiHHYG9BftHA0n3p9a1e0E1PPQYzg2lNLvEKTCECQSdIWyK3ZD55SVuTEgcSlLUN7YQb2zlM+tL1Z630Opo03mL1v26ZIk6ewxFxyBG4Pn5CpkgoGPKLcn1Wja4dsIlF4D6LFxUFW4EJFZTVHDMsHGZxB9hG7xzDfNVK3+mwqf5XMc/efucqouSyBp3UgwZxeOVOmRHney4GV5/9Gp7SzTgzRQsF+E5Eb6dm0q3RyWBKR0w1X7X6az1xdv2mJRrKRrspQrpaVIa2SIKBZji/ND2PfLafdeTr8s5SlygRennHAJJ95YTaZA8kJhIbXNz6gTiG9ohqchKEUyJfgG6Znx6YxFpuwL8zsBSEic7F27pQCii9V/+W9U16iLeQUkgVCr7By3cbutX+/pWpOdnRCFinsg4XvtVRS+XxNTNq4USlSh+oReWU5MwkAGcvtg/61YqHIyZasxmb9dEk5VeaBrw6Ys8S861mmMRHVaErDJKqVpGpgPcHLv+/99U7MlsSEEYB1I54pFmSWHFCq7c8bcd++72EnQEgPgCCCowKV8DknJ5yzlkO+9777/BzMDSABBk6DIDU4xNJWbNvfOXT2YGVCJ2sjd7BBTUTSe1+nn6seVZriCfU26SwJpo/6w55lhS1/G6ILkQvrUSpnckNLqMmWYvzPMK3zEJ8UcKZJZ4F8K+KdVv3/bW6Ya6q818PJXIpkUTpAtZwYOEuCM9N/r23X8ZxZBOwaAyD5dr15VifdoDMgZpI5jp1l1a40YAkb4l5p9xmeG/FU3aO7VvIc7Ca/PEOej2cplfOXnsi8lwW5VA8ud/fI2Wp7lrnJFa7gYGRcrkg+Nz8ggiZTlQw4w/AYgZfphSst+jaodNEbmG5nLVSnOo25/6vG3m+/msBOkA+xQ6gAKYlcljf3zOMhllO8F6F0NMwyDM4CgML7xSqs83RLY1QzaCwph4R+04fIKnVKHMfwxj1782vvHaNZzEf56DDPbXW/f18YAIipRtElGZyu2Zj8DjMSzGzKneF465Nm+RI12V+BgMqbV/lzKNBGCDCvtnxqyGXtVHgqUQyzfsWAZ1CPb5yy/lJqeakgeG+GEAohrB805AFu9eIzVWq+27rN7VUQ+ZxBGhICpJf4Rdd4D03SPEDoCWEE/st0FIZarquBC4tJrY+jRgGXL6j3GVDLN0M78iIjIEokcnGJa9IiimotBYa+oLdazuSf8+mviDfqjqzh4fJ8qG6qv74X8R20E6y8I7Gf+4fv3m16v8PZJzV/lEJk55Bvd/TFg6MFvYPI3jJ69+rk1L70NRyMMX8CIw0MsP8W/QL9o7QTrEfeutx8XpMdtob7Yb2uk/vpphtJkt4ICvoOZ1xfmIMsA2FiRnRCQMi9/bBBHefgppNdXyMTI+mArh1MsrZgwOCIgv9V4Ce/8As4bpUPOAs2kS3dDnTEEMAVLImor6amFGG0mf7xrdA/5KrjS3bLjIHcwIrcXIjAuWwhWl+bTwP9s8qOIzaQNifatyePXpjHaHGFFRJ3pvyDIW+82vnwTXE7eZonXAQIeWvytLWXBF7DfAhnSksqMCIW5J6782Qytb90lmbnoUQnHq3NYlXoMEX/ZrEmzsgohWy8P7yfHcsDFBIUUJy3jF9ntWbY5V7BUP+eGSXxy8RrdUHZ0Qbgeqk3umlgwBktcftocHAJmifHn2PbnPCehSHyBITdFsDBGqjIqDVeAvaWg6eLqZ8ttVN9gCAAThLjiL2rP2aww66dAyEAEfpWHiUoEnIl7fX+O5ADhDGFDqKqO7OlZ/NNO6Mnr4QyQpOCTa4IsdJV1n30rrJB8wfqmf5hkAckOX5GbH/TN03DTytH1/puRGHfZ4nBBuySTJQPWwxPzAOeuL0gcsQZn4AvqkwK4kJxmicBEmYQ1bdQabymm+U6PB+yaUpWAqYSM1XxWIpoUcHIylMziASsvFrAg3BagJl91buG7zqLhwR4qwfUKUNZ/TJaUVi1yGdT4K3iKrB9TuZiBZRVEHXIjMqLaujAiK80RqF7kKp9autb9Qn5qOsxpAdOFiy8qhZmLVGDBT95awG9feVpYERbBrBdCxYUDSiZVDjkF4hx1bAbC9SgnOKiaZCP6ZYnj4YMNAsqs17nVgYIUtBOzGbl95XMbd0vXcUwddkBVqTWvS7YyViS3DaUNrdRRiIBB0WLfy8N0vc4koM7c3CcElG7EACbzMN5gjVFuhYYjzjzkwt4/D5/ZnZCky8esfMM2sMcHm/8jv7OMyhU2+uEYnVkNkHdZ5jKjZVbB/Nn+beEcgaDIhTB2oZIviNoaEfcSep9ZplPyxlKvEwsqPPVY2C+b/KwErdGUK98KkoirGF/17UB/g9ylSgfILQdcCFgvipyfLpTu5S09PrFMtevcs6Q+LrwcfVc2lkWNciZ2G8n1uM15fewSCikx+6JZSikgUqzt4mn9uosPXRN+KmWffxp1bn5YwTRZRa+snMK8OWHL31H8wgZlshQTFIKE+6OQn3Pzc23REfSgu9eWXD0kWnj9W1JdCNRBj0bQCIScPdOEyXPMMWvY1+hGbnRZvF1dcw1kdg0fHlyevMfdTwIdkKOXVlMrQYE+DN+BQEGIqCjorN5IebGL3piPsurCYv3l/MBt+fQgksQxr8NCUNa5x+zIGPFr43+QN25ReJNVq5xmFgB8+0P7rhyfRmQp9+ckNiHyZl8SGPnrdh1+beRT9hPyQKWR2izzGWnpPjlXiCHTpvVMTWmzFcYl7u15bS8hBcXF26NHBdGIO4wPXErmvaVnbrWZHfpwN2PtyO1deAHKbFn84Mh7mdtauM2irftBIenee/ckYd+VltbWDm5yh0Z0RTUDhK8yCmErevmIaVCq4iK452hYEGRXekly6UAAY0Q1EhuxIb618xYmwdvZnaWVB+yKr3arkw0dWdBiyytXDtB4bdVLugzpquS2tgHTMTS39xgAR91ayZF/6q0JhIzwlwUVBRQEGXsQYNPTFZYV1XSrS9eQ5c4lKEf2HmS2RKQJUWDyJSMR64SE8M9ipcQvKSwWjMQtGmnx8K2c3zYD6CNAR4ODXePyKul2hqOi1TY9U5jtCxqJRFVuzB2EfQmp/h3sJBKdPPwo9/TsqYM31b8d9RMy9HwT/B6GzN09egkqJp89c/VHh/eIe2u6v5XRwzO2I1TqzkkofPN4CZhEP3TLq42XetYgNo19EYbu+gZ3eYgAF9IPYWARhJRXXa5HzUbk3C9j9xOmyzFiaiyadW5RHyY8/TdoAvM01O6qw+Rc3nM/2rBBGO8bTYugyIGxwVMMZJ6l70ql9nv9CCQK3icrqxMxVofWGdWqHdZCybBvq5H9fbtWh5nS02oTY9h6NNNu26tUnf73ii1IH3taRm8weQObXjZtc/96g9OqShVNQkV4s44e0hWpYnO4+CQqk3ALUBxZIe/PCaPnqS1O/s+bnOwEdhumj12rMtydhn/Bfp6wCWdt3ScR9eZFH7vi/lRir/syM1TN1Hfa4ldYkGq0vkq1xc66wlJyK3fnjRvrP8tupi/j9s7jffky3nsBde4hqr+fXTaMufmUX/rVFpB/j6J2VqHiULvzXETjOcPDf8EmGlwxo9gZPgC+UE0bwrIMD1ZY4z7s/IaG9wxS2vgrGD/gYImD7Q3ejq2qxa0G4rgG2pCfbwzvNotND6TJwZKwjf88dZrNiZ1sXLDRVWgYoLG/mPyGowSIVxzbz4E3EY2/r3fbX5r4R/LhaxhlwAABpwpWmU0ihyGeEcs894rNyUCG+OhqsZ/2U5KYDFXdq6RRS/ctpQPNPfk3iYBYOnfbKaaVCzqa6/E9PFTlND45OT0/+mZW2M0HAaNZA4kNTH7dmfK5wg5ibkIVNfuTxxe2nnI5XXdyf/yh16s8fqHXuYzKDIybhyi4PPSkBRXhIfD6mCcH8LqajVMeLgBwCjPmlkikhUe6obTbmFcgshoBAIsm0ur+M9BzmUe+9wxmVGTfm97sxH184/Nj6P225y2Pn/NsZQOXiwsA4NBJVTiN3qO2a9DbeY8AgBYvodkke9mb92xmtIHytntw+YEXplq8y3vGNHazd08iWAFgOz+w9XFjeRk9bw/mibOe5Yya56GFfCdqTy8bohv/BG9MvsMbxkweLgAwQyu7ZeFcozNKOw9zNySyGgGA03QRjtFZHXU3whPv8QZ8X6PJ1TsyBWCz2yUyAAAahED+d67+9HH4t2PRjQGiqX8iIwCrU2dnyQAqtbyeOoDWl9x9NWc7FPpeEA6P/wLjcrdL3gIANM4oExORjcGkrpiY8M1p4hUCqb06e7oPEO9slgkAJChQWnich2sWxOTPWs5U5lg0FbNRyrUFAEps39Rw2L6x9qjGxLZkXQIALaQ0h989M0Hq+VSOdWg5FBgdu12CLQBgJ7d9owrD6DOp9trE1KWPsxoBgBKPiMYo4A9o/KNZ8OZd2LSX+VWSVwFgN7ONZtygR9maKdfyCYDPNHrrcqphm3mHkmwBgMWxDV9qGGyfePtRWbm2T3IjAKCpIhmjeHTM4ueybofR8Ut3b4y7dySAxet2iQwAgCLpgRq3mix/doo76EpmrLab6OcF9regifQw1Utnd2Zb0v2A0eN/gNR0t0veAgAkWM7TuNXjcjCK3JE4oLHSnsXcNonMTADghCYTLsBntf1P53HzvGW+x2ls1OThAgA1tNJTEg4KMzHZUu0rc9tExiUAsFpZ/JGSa1zlDxfGD9tf5nEZ5TxcAKCMmQ7ZUsInMxGRah+Z2yIyNgGAEWoJm9XwW/UaUuPS25/yuxLBCgDXma1WqL4Smu7pmUbY5+n7w/ssjc1KUS4ZFwBYMXtblOE+tivlPmxXViMAMPhk2bGoUPHxc8XqKrmxXCM3cxMuCfjZ1RNMl9LjHaz0EoymXjQQ6Zsify8yuCehRraDQJIiNTCASjq8IDzp1a1hVyVY8mShJVfQiXhp43c4FDrGEh1XA/b8+nnhT2we3yWqveySlvidXS/Y+6SbLlLOZ/HnFFx0XQgZ6b6l9VfH6BtQi/leYpe3gfhyGjvg/OTZvEKxu/41Or9Kb7bY3t5FLK8Pb12RmQtZJHAj/RY5246J3KJagr6N2/uNQyPRd5k3Z7gA5eHJ8/IXa143Jzmnfu4kYTxeeDGYul7V5+zCcjsrqtIXftXldZpjOQVIFwZeLesr/AXdboxDA4UIJZpr8+fGyJ8Iw1QjdZ1x3o7d707mtzkSM+6TOZCOhfecdroaN8fIUjhm7P1uaWH335uZvAXIVUNyaX3gvWKsKWBwawEyLdXRVYuMbjUUGXwc7MUAhZCOh189KB+4cwQWICMatweueEGA4n0BjMGsTaI0kc53kPDH740e0uRwlx56dN2x+uGI4+CPWHKYEsQOvve4E/Bsj/ffuxJ20MtPHnJH9iEsOTj3zKAk7VRwSno3zUwWL5KoLg4x5DLIzp1L0EpXc5RaItCjUFnltO99wRgDfDpOTiA9M37LsSxcHVZAyMCOZd5sWs6eyFQfIsebCgenPBmf5ekeDdcbISC3ch2h43uwP/oLqfNs55F/XZzkHk9C+PvLHZTJx9dL4scVjiev7pwmDgZ4zQ17IBYA04J2q5mTABHBfqT2xVrklodhg9KYcjYruVe4NUqqFQ987NCLMRKjuSe/uYxBRuCFqT6uTKA4Xts29EryNTy89gGRZkBKtiK7zOT5LAHlddfiRP+PyOKGFUizNlsvGtot3kByxt2RL3gv7irZfuq1HdyKCj6uvl6/uTGhfo6JI/B4OY7G6YcrSQDAhr2Oi9fa/KV10XDNuPRoy2PyuudGOPeiSVx+wmWJf4xJ38d9g4VztV87SeJt3NhbcoQTEsr0JO+3PNH4+/2dBcCjyaSnKkc3qSNvdgQwndfYpDN5ns7SuEFBs3BrOsN50ygHCUuWIdYAjxMWXySm0+LroHhky+RsyORKYUBILAFDj24oXX5Xphu3DNQjdDMXQbsKVXepJvipHvvLyWD6rF2kr7aUfQR9M+2v/CMofprSpq2El9z7qCPg3cw2lHycziYWKe0s4nuv+iK9yQ/l2FnrN7GY8rbRc2hJWC06mFhwcT1wBP0GF1BUOS9XfNPTKp2C2DW7cN7phVzqwXsIiBPsQNVqIOF7aJOFCKBq2Qr8Pa0AEb2hEISgzHk/BiiQysKSLBIXnU+rIzbPD+fzBnlZshrwgxuuQd+0xfWG5OBa7tJjKR1lbcCm3r8nITF+YoxLw4U7ykThQ7vRG9ZFBVaGhI1bw7DsKMYIop/dEJrLcihGvybsQEuo3rOnhUnXfnpt2OyJlckxT8zt8ZV90APVcGZFy2JyRnZMujPoC2EcS01BtTqv6cSrt4xyxf3C3Z5vnFEsi7iDDBwU4Gkf+uoeZqNivEk4Zx34SPT2jXGXRK5stvy210mjJpsrMNeV+Omww5LcczCGvcRtmgAnZ8oCHCI64M/nrmZqCRdiLVZsYplRp/V/2cxJYtbS7u/5su1NMO7w92Mpv6LwU5NuWcDCFb0/duYQr3I8WdNg5QiWZRSiIf7b5jlgVHP0SwKgp/EllFFHXlN2tVmNFoWsKey6EOqnTjJ6TFV4eIfv431KRotjR3OlaRKSlWDE4zOJzACAhk1DkxZeDSnVHg0rQxMAiPScLJ9DHy4SWHBc2tmgzxuOSXcbNKUNYyMb4SHk7cp3aun00dxmmnWStQ4Dl88MAFAMmSIpdXyk2h1MvmHlaAIAzkHfkeVb6OiFAr3snSzsG2PsLnoqwceoW3jGI4jfdFqcu0RMBeDZargZEQ5PTsXf2pkWZ857dppmWbKWMWZymQGAWUZMLRcXlielXaUh5WgCAFfSTVkeonsWAySwii3LSrL+iswvsIB/8B6ycecHP3UUFygtQgR0c6RyzQCAhYBrWEy4a7szi3PpltpuAbybpfk+CD2Loyoey/8GRjcPzYC+l437xJiAYYU9cjNMswMLE2eNZX+UvSeHkHEJOGDazOwpf/R0VElVMb3SStfHB+mPC1NM0Ny7ycio6Vhws2fEwtCe8+zlpmUHGagEUQVvfrEg+KIlX7FT/DHjfHQ6EFlWwO33Rx/pWIll0RtH1xl9kXXHCnMI0nA5/6rjBC3otKbkl3l6LOg0THhBQuaWVBgSKv/fcwFpOQjpLicopatMb+fKEkoQqo8eDo7p4cI7uqEpcc/meu/cUGej5spBl9WsZAKxFAWG1ZyRLPK4U/bLtUbvFjU0maV4PDSd+U92EhNk0pzGsjJxrmjMoiJjXjogOvwHe0QvzdrZGv97CM8xd1z9gJLRsa6PVhskDDOPHjbofDpxMLAw9WjAHeSp1pFLa+sioIrEIg5+tMOfb6trvNVheKoR68ydc9mVwosB55oAJ04UYU70LKuOXxvGCbEPalWFFn75wX5guHPkJ8WFiHfgjH4GoZUQY2gcQ4M8Jc/BcWcqt1k9snnNgZFcU3fT5UqiOvBDBnLwalvxWbiXJDxaHZ2aKltaSh4E7YkZyw7Y7/6eTPi9HEaEB84fnjRG5XqkOoyfCvCvl8QMAMwwfq78HuGzMr34mXc7f5adKtDa3EVp9Q9lAgCU4dvxKW30h//FPaW9iy/8a4BFjZgl61i9rNN8BmFOrjG8MTGei7KprMMX3mgtcD1vEAyaLIPTBL8JjzVzsvLyMSN3jcVthAw3PDq9qjX1S4M2Ckfhx9AGVPyPFpk/N1TvXzWtR656ldgoTVL1wiK9d4mbTuzGIvC59r3r49lU614fgMMxVABQ+H93bMCP0MmTgzf2IXHoe0e3UU40G0wIf6NpIBQgtZX2Lkbr3uyCaj87moqxM2hzS2pARjnqR2d3zNZwekdnsaf64GolhoQYWVsjrpOtFUuvQH3rFBVcWOXMFdvwkPDtVEQDzIurkIwbPcvgi2c2Oov/FTCfZwioQu/Ex5uKuj9uOreWmmvqBPkJ59c7Ujt3WMtdDKdkuJelAo7uohZlzXZcqMI3RPPg6vOPV08HSCmCq8wtSNatdCMMO58ZALDR45RwNpTSA1RTansPepinCQBkMM4b3buEcXtqlADAXRwc1QaTO6A9xgZNVw2L6PKhDVB4Y+vswfbLS7tTi/CvxCoHII0IhqHURMPjV23HVx8p3XymphnBT8lTDkAaEmzjhos2myeD91b/fWXbkZx+BGcdGDWlxWo8I9q8PiUzAMALbZ1TwrSKokufqO0t9GGOJgDQ4tCcF93vshfJNwkANLCKZjWaQfc68lz2ivjwizngUx3BgVFTWoDIphzRd5YZADCyqHjJEhQm4xbmkwUKS4bCHsoCmnZtmO86eelFoTb6S2VsYOmFP/wuPkpGQ8ENQkgtxNa+UIKt9wJeKKgCbHefqCDZLziqD0wnUAAMLw+SNLYfvgBOu+E8dgqj4PPaJji55paMnakp5AsgqvsVs3Xdqogh/B+CW5TkhpAhR6DsF3TDAhkAyJ6ASLJto4QO4EWbZsM001T7H+2ow8Z0YFr6hAJXpt0NknV3zd2XT58b8/ZTA6l6hlHtgcC4Lin8hoIObYC+W3YEtb2oc67/BII+ZLWBU3OjuoOurzPPN+wHPLhjj0Ok0XF/UV/J6eQ/08IuzTClw2SS+w7c9pF3qmsbSqT+6LmPrFE8OmJXcu6izrgCRCHWQ5QOi0KfLZCREk6HLgKEk20wmoBNyzCmOQAGN50kDq2/PP2K9r45OEwBAL5WBzOpL+6D0mAdhFEyfW3vPKxOrklHWqVaykoPkuFe31P6MLYHLnJHaEboUK8/vvaiP2O35hMeWIIhuMqgfXcahP5EGxhFftGwLUaBvNlL+i/0ZesNLTAS0oFJij5QQ/OUfccOE2PweXibuFZHOC22yZTcahan4YYpzmt7acpaIQ+u0WRF5PonHf0BXop+1g4Ajk6OyVoMvIkTW6w0GCktOZIy0zlZivVnXoorcNjkBghhd0s/RxEpbiCFVBhw0I77i4qWsnZgVXSzdNsZO3FWOg0y/EIEHR9Epja676sqdkfoQkbc3QttMCNABNysQSnIHsZYYC76c76DAxeADn9S1+rlUr0e0ZpyzcZcsWKKA+yQzWy3G9W7jYHHBptkXXW7UF4tIDoRFnzBguxWTPUTLE4JQAz3ac5IBAduhaazCRphTcoGHhGGy/WsrU4EpEQstMXgbee4OVQSQdqJlsvXKQNaiTMeuh+wGdGUZ1eF+vnI1PBe9IqANU+ajyr/zrSKQt5ejjTdSjsaIEFRTqJFfuvYC2uxvTyY6pbQgCZgRJqbj7I/HSEDUstg1cggF8WCzryIL/MyGCf87hSdHdqb+D5MJZxPZPDDg1hSd1TRHAXFzQTemKVu3m3kL2GqXJt/WFhNjjCt6Co4YwYpLUKJOCesMon0p44BLWNAheUM0cVAaZ/R0vE2rngxF92TJdpWbZ3LUdW8GcMQU8DDo59nzq5d+yQiCivTAVFtA/eRBb/TrQY+ezG/g/hcBmZkVs4MsMWyZI4P6YOa0yGuRLxYtKMrwJC5IzjEfHp1Sh2IaX/BVMEuneiy44FnZ14Cox97aewFlZsRRvOaEbsrv+7OrMzbiPJngr8eMzwrl3BF4sNnyMZNkzSAxZZkm/ZUjbL9kBI4+3UMk6CfIFovheKA/HPWAANsdKEwuo+tFe8zFXkqmve6z8T0LSkefJHC+B20kIf3OzoI0cSp5fsDHB7WiXHppHn0Hi+1/04JmNX35xFs8eesmivjwTykVD3cus2gmWn6VxIzADAAM9ukCor/17hYxdky2ymCqXZWqga72a68TACAuNPwPLpqMx/gr05XOrX/K9+TwIoAXCugtXip8gi9+iJuKCIS9wGiDgPiOYbiSbKcJ/i6r+v4a08IUF2u9o4YapoCUKuOsfxNs8eUZqrCT0Sjg3cCoT4gwQWrVhwwDBGURIpOIoCSJBaeWN38c3HnKtDV/C05vU9bAPBbtm1zc4nzJD7oMu4aW8+LcMQZaAgiQ5cwNv4gWXGAbc+WczuH3PYWINKY7dpE49N3WQ8A82lQd0y8lnb6q0GMbXO9GX+/oNMIoyWObT89OH+q3Or1UP/yZexFdfskWv4a5TVbskQCfdhVmyuR75+C1hvyqG2hBEg6wYy9KrzzAbzxWNX69keRiYvNl+1u9piASe7QMgZEkdCuxyy2D0rx6L8Bk9OGas3T0KKK2WnPJOjTpH5t2uS5uqyHivV7CMbzBhz2mOEbvDf34+Q7vPOAYKM/GYcloc0TgdAgEnR3uhP+pjoe/0y62dWA3kSvgeYwny60ILDupqDbzPKQepGydj3S5uNishtAh3HlYN1ik3TwKphaV2BdRMraoBrKmaYv8sfMlcr/cIYbjg2G1rtZXSspbjTrhHeSBKPhjLO5ePWA3Bn00LXL+rPzekk366gPHGa2ckWTJtOOb2LEuVtVl1+5Civikb9WIw8LtK8R08iwqb35RXMY+JWwWdWuphltU4SUdXf7Go2GhwSmsiFd3pi+gFUwhQcc8EkHoI2tgmEWUyua6zjTpGVE/bST4AyuoZn9Zp0beccebAast22XgpGtAiBaFPLjdMlpwo/vlWcFU+1ZJ6BiugsLBtpEiPOw45TYyqw5CVHoUcmsKddUvURBhOZGGo8bLC5Gy6xM78jr+RPaxiYoOA0mupURezl9eY/zp3uOPx2Sd93neg7saNb4rzxNf1xqFGu/MBtM5XIPMWExcybsy3SmMwqa1b7AQgqc9Q+VzqKJTaCqcaN4ElNiS4Qt2V7vwrTCmkOCcSDmw7Iu1r+QymIZ8FYohZUZ8EZoYNl+MiVlV3HBE4T8GK/Pwt8RNmUvAMTheAQL4nxxU3wj11Z5m50E+srVHLlyEf/yoT4QHelpHW1N09BIwy4dp08O2vGbUKsNVPE2Jeae8R/PVk7vNkro7BMOiq8mECPpiS7VJTWQsiUpgfYBPicWn6dam0ZVEPMieO1DHbHTCq/MSL3gfsxY7fghp8aIXVyJyoL6Nm/kviZxmfIkcOIIMFhw+TKxa0WDeQcDDHyRnIgmbaSXwhyfEc5uaCDdhvxz1qS9h/CLVbHpzRVET3SCmSPerdmqSoVgToIVoYEdRQk/idPWAqZdV0MJ0w2Xb8syyVM031u1qIk+03opN8JJywCE2AhuvGT2wjbA0FTwZHe6qLuU0bu4M5YxcbFb06KQ4SBdQ5OiiB1CAAGLEPsPNArj5+FhuGHfzWwpv/aECghbMXeEysGlUlfoNnJRuvsTTKaPPa/J/vWP/v783jJ181c9i92Gv7ZictBDWkn4WFxI6e7wO7wTzolCmj103hj4Gk1Yi5iFEEC8tIOLLgSMofGK5CL4VY5YcPzt+esb5kCFMQg7OkHHwpPdv0zOKHJ1/qJWgkZpQOJMwvLeqR/H/lEsHVTEewYv04Un0IEVwOLLlOxipZZb/8sgUxwwLeVQkNhguQHeKR8FSfbM/sbCmyJbDb53ZiN/pyvwSf7r4gZ4BH7nL1N3ZSkl28qzzPsKZgDgsk+uN1v1hJebQhWLVh+Ad5xdHGN7BuxlbSYAcDw/I2dwT8LmduBcefR2Ld52Vz8AcDSUIqE8hO5zfHFDU644U9Cy+MsCjsgJdk/OZgbHa7+vXtwN3tWwpJqDVIUhJXUCs+vMdgC5chbOQVXLbO9AYdx3mpCyr8ikL4FF4dvQvrQ2mD6D1WfpQ2jnwX8SDSSAOfcHY3hMvMrdvtcGm8wmduvVNX7HL4kLEsAsEtmWLRUt3u/NoJ6B5nK13aPHnGNen1S9HuowkKRIZTEDAB1ApslKBysW2yeXyg6uHjmeYHPdw8c5mgAA4WD2VJsFY71Ib8vertx+AIDFUCtRWUZL9ikMnDSOGSr1b4bBVQzGdLPwzgWrqhyjw0OTDyKe88I/2KkaOsGjekGuRcj4coIAImemGQDgAECRlf6cWGA6hMLujgXbRyzMv8nwI86UOfjPuHi0VTkev4n+aN2KIEp8+KjFMbjcNoih8VTg/Y2DbA6wWhCd+txc1934A7zdM9qEajw6Hh7UBOgJLox7JSnhK9Mol9Wv0nH4KdbWPekwJ1pMncpwo/SkoDbHVksYsss8MlZLgqsQtpEHW/IhQxkLY7WCdaNEMLw80Yp4+FITUkHtvHs48ekw767v8PueXf3n6CnfnPUMUlibVYNyScwAwBnVErBuslLCDriqcqXZOWwXLU63rlNnAgDmXd5Idu5vvYZyt94PDzPwOAjXPftHxzb7qWeJlw2/riDW4Ti6znXhyaljDdqNwyfM57VfJBYDALU6Dvk8Sh6YumuX1Z3lp4rb8LdR1e1OqdeaTwn1pRD5y3w4L6hsGBzFb9SGv40C7c4SAQehEma4pPcxp9857DyQjdRrYFjSGSKb25LkWRw33Unavc6bZY1SIdrTV3AERI+CbE4KMVW9N2eDZGCoSNMFw75Cx6hEZ758jidpQXv6o8FxHhgPpYVVUHven9LOp5N7vELncOI/Rw9NehSqgZuKe+YxAwDdATtdxcSOTg5fvCLg+pRyv4fasHFb0LgETQDgPFnESLQR2DBy2w+oaa+cE7GruwsCgKB9HNUEg4LPmUUGomz3yBgIlCWmYyDY3I+JgcKxAicGSrLl3sSp80wGgunyKAXxoFGuODNQcNzO4hg4WZl9FpyT+74tOB1f0ZWIY1GnYzRuZtGdHyYJ8enpGjrHBAQJYP79wajWMSr5ovnVxGPzDn3xqQbnmNAgAcwokfFqHQJ5j+rTnWb4pNqJpo8Q2D+7/5S2548lq5ZRncUMANQwwyX0cjpYeYK9vaTacf4sd+k7eZoAAJahUW1UjGShXNohXHINAoAOA6NEWYwq2Ucw2tLYzUDUv5ABKQZpBk96L7Cq3PFKO7F3twksgRuYHY0dUXMgRwbac9w3l9Qs7TDPukYiqy6+9RTibIHVEslosB8VRzxnhv5L4gJDqRORymPE+/1fEhbVgf7n6F3l7XzFjl34x0+29+rENc2L0gYNDuRJYwRB7WIgsOUXu0z3ZCWu2F2biS9sdSoO77aDXnFzl2kpP1rT8gWYAnishF9FbrekuHsy3FFiivC8QTOSAH+Yze1Yn3iVmOF8kqtQUkNadsrYFLa9f6hqXb7f5sZgI3PABdCmg+VMAhgFdJLygpjuUsWvHQ7h+0id0+qC/dhIUhVBEontdqnj1td+v+RRj9JVHSo6Dhwti3Yv4rL6YUJ7sZ6VJdIyEQi5BrKciYQqYwFoavXECVrNCpUKuV3PHMad3VRRaIMkSPvoiX8Bb2qyIYOcEhkVGDVJqTBAcvK/VPYFECPd4V+EyLQEy6NUWlqUtqaNglxzrMqPNbr8hmCaIZw6fcAi+XFbhCYGPFmoOy6qW/JJ4+WelMouKoSWxM5kHhI6iSnpK3/P7H2IlhgNet0JsZ0KAb/1hWT2XqZbYK64QCdBb3G+OXcVZ2UQfPkIUmEk58gmfvzVXiHMgEykSSiBdbSd5hAl2S5+ITTdk9p6FsveqGUdbWBlDoib9nYkkaOMdVHZb32yTikRB0rHXCG4qI//w2DJXeY4OejtUQoD47Vg6seIrdv3dGt9+jsInmUMhuWyzx4fin+6PKJuyBbNRN5KpePGBVNRBoNgNDJEaL5glcUikJ0dsZ5CewRUbbNwh2FxVLSl4/Sx2kvHKS/ZB3+xZ5cIXDuoI5lwcSF8T/Vg4KL3Tg8IrlKrrL3tbNpd7Pi6wkvWAQAm4/TlNZTTnEOLcUgpr/bIoZ8aSyms9jgT/UmTs+I4fiprsEN7Pml6oEMnHzk+i1QptceZ5Z8Oc2scZe6Q0Uod6w3g5uoEvBPAXdUTVG2o40B6ouPJqs8p5KOxw2pSUq+uUiau2E+/Yl4cwijTw0DLZQulvmQ0TBRmVNcT1ozEqMkM4+kyefI1r9ZdMwwbox1KNveRw+aKcPzSd/XuwkxsbLOgdTN+J/wZ4bvVbabFJDfhA0wN0rfHUpqlKcI+zkvu00hfG/y3l3XMxl7I5n5Z7Y0J6ZBr9XRt3N+m28xc6jZUgIFVmHJsDI7cRFS14b+DFm0U1yaAPLD6dsMUTRydyIMjLMCJvJyAB4C9GeLO1YWYLSosGMXjJQ4+SAf4Oh9iDM8+WepZFRJt9UdKDkxSEiwR7fspFbYCoiEGHeblnCvRHnCenm6zamx+L0RtJoNppE5iaVsCa1KyLZEqU076lSbEnN9LIFWptd9uowwfmd2bGDWNYmCkrvSxnV/SizSY5x/AItcosWZ95KUL6USeEW2cnfkvYs/mT0XIKSDNSWIc/mohz0RP3enoVaWpfVs/vE5qh72s288EXFVvQTjE4nwmaQnC42oN06ELRzURnv4ihXkj3UfdWDYbqp87EUsQWywT4PSeuUNNmNE7P5nRpd9geTNUOVj3OrlCNKkPaLQmrsXHH8sLCUyrEYgcRF5o6Bi392C0shR316OjEIkzFNfHYUQEX9gDgkiWPsFc/3L+pw7wLLjiIuLonUJVY25YJ+8W/VqmiYFEaskclUJM3t5jApKEpwoMTCnPBg25/P9VcYPaeypAmJav8B4taC0NnYp+ud18pjBtJV+uimUjd9VcrIwkJBFhs6Z0ohVLIzExE/sCb0TrxxFlFzWBfX9Qeh23J7FuxdTm5uXvPwh1U+iqtKOOC2Mh9T4hCa3XnnI39V8lTJ1XDKZa1dDiTInfo8Jt/+GaMBb85AkwsUlACWlx2/QcFFKYGwahQBjQjgduDAqCKnYuMq3nJkmZ32WDqmkkwD3TPKWtPQQ3paNmmG7IhOVWNj+hsLbdaYgCSNtx3B24f7VwobnnKyeqWx9/z1XZ9FnwnWZ5b98oeKGrO7sdjiI29ql1R/hn1BepDWB29+d78hYu3bmHSSO806+QvB/SXFvtWLNX++DmGrSj3dm4F/x2UN8zy7GIJ+B9W12pl9K1eDeNAUkcSp9LphEVyJVfb16h00fOUj7vUbhO0h8qJXcPqUJAupCPt/h9qLNqzY6wD/kOj1SOuCdj11uvJ+nEoGTAFgdQSv1k98drtjV5xEWs/d+6upN7qrtVIZ8Pylc9Exu4RjtL4JYSKDoOXjuRPsW9M4XogQXoOurg7SJOWQmYiyCYLLhqpjmP4FawjVjp+eViIBYAmumGRNeZWBTk7o5+vmT4Mz2Pf7jh/5/hv9/7x3LJ6l/+mLz4ccebo+D/67xccrubadUPcvHjJ6tzyez9x1TmO6nSsdpmB9XRfzVkYP0DhzI0Tfsu4lh/hBy92qO1KSU061nBUjujkFxvvpBfHcMXjI1nrufT6dest22XjAFxGW/pRA4Yq1PGNz9hA9mKKCWUULzS3RAaOkuqUfTq+81RcYfiTc+WM8vBlKnmMarizs4rHe9knXNyfbhzG9OfO7i9lb+TGzNId3T5us2mqmTwaGVS46sJG5jDeZu8W835RDmfteDvkoDnTbrFKcAsNAbu8fBUhhC8rjMCmkiCdjXYa5QVgSDdoR4xKtZfBMwsLm+0KR3aV8PTM5QF7kCLLvh0GuxIVMT24pY5fCC+oNrBikSD9fR2zA7U/au+Dtw9igoELSqYmuwGo8amfXojEyBcJUFzuasePug2uUDo4AWHCZhjNWLWK4pYiiGdePk2u263R8tDXN07YQBMSvIa7e5Won0HPGnM7eUf7MbKCX8DCNIOv9P5FoGthQB5KUfV+/4iCGtYxo5tDBtGCEUp+hZl5CJFtxWgc7aUTu18SHhwY9JiN3DdsbBXs1fIshO36uarA4xXpnXwnEPd/ZyGAvrWBmUp/UPa1eps0Vi7V7e81YF8m7Sja7YasXVs00OUb6PK33HjhNQOM1ta+twSuM94M3hw/ycL7EZwmwrfFFWgUtOHUXziizLorirzm5sQo+1zfXXVbnhUfwoAW01BZ1x2W0M3j5AwdSO3X8EpPsbBkiuu1CN0/gGpDsTInpJ5dWLWcbJZP0Fpqzt8n6rx9fFic8dM0dEx9bS8+GeTO9o+f8/Zo4tGPuYpSQm56FKul9nZ8tzSQVdym05FanDFAwNdFr/WLSdeCFdB3XvbNN0Sn6J0nLAK3httVdqPh07qT7OlnrVTF1cKY4a0Pl+ifj0UeHaI/PH5FvV/6DE/mT7LXEZeE7zEF65qtLNLnmJhMsNIZ1V1ersUrOQvDLcrhNPVHv0Za0fv694MDsQETq4KeJLIw48PJg2Qjzc2UthH4P+QXnTrgOk+YW9lmAA/dwSnENw0VoKZ7oqk4QJxXOLK8mmBnlhY8d5uIzgIuHDsG1lJo8DYMsHIKTEGDpPJJ+5cgPF+Y1aoybWUUx1hvW3c7jV2EL54i1hvJZ4Bw4iCirrE1CoNvPdUQqDD7T2zj7Q8V1ifuFHBpXLWGhwyHHQHHp5Jss5JZOCncM+p2ciLnEGohXmzNtG1HpN/Bj4krR9NsrjK69b2gUKejLkXuBlhv8yCtWXmB6xYEmxtIHxucixPSIwbvkhTSqFWiUS3T2BIrMFs9fneBh7xapOf43/n8sUiJQG/fQQG1iW2ah0dyetnsdF6jXVHC4knaIJTsqkNQMn3JqIDUXJuhdsUDzxV7wiTww4KG9IHYvOO5GaguvuCAQPEdueoK0R+p43Tly6ju9NjBsTJHdMjwpAom3S9cb+DhNbR+JGWs/asyRQHwaZcimz5YudcBvzBBSmVvEuAT6+TghwlvdWj8IySNAa+CzG0Osyrk1vaieSA4caJsa/g5MHmQAm0zelAMyTjdjGvUXmLDHrhJzKdtnmizAaBUVYKLOKa0X5b1MQs/lovcQRkrqbddFCtgjekF1kM4I0Z0F/1sTr8z/QIk7+sdsoEtUiguAesAvonq6cRN2D5muU98r7arWy9BZDzu1U6D1BGG9PDl2WYHUXr0l3YSVQtAo/PktCvW9ZTKnaq0tgPp80WwOO3dyyvW1Z9O5jcoVIGbJsGADrxWPs+mcPAL1u6/OEeF273nHC74hZuE4via+tqbgDZFdOyARRT7//1osNEewhwED4/oNeWHCbchw+SpXw5JmoEAcon85lbynb9meTOCJ0Z6e6saZb9KBxwiKgdMQG+9ZMoEjPfc4NWRrsKsJ20MQUIrvPuQWZ+oYNe2oJ5zn/ag++QBjv4yWciv1ZO6boJfLJq4Hx8zp35hkLfa+ydLSonmle5xALhqX+c3tQQoJuZubEqhl8LJ9X1I3eL6V64VkXlIgBocSp6WURsM3phgPp91X890XrQXhw0NBWp0ADgxNoBgRsbXd9W9JgD9aiuzUZrZ+gKiGses9IUFsyNfk5m+inoe2+ZSqarUnh86HsEo9jXRhA04A9tQPpj/Eil0pAl8WLyNWKbp4glXf8qR3BHrkEqR3YaY23WAfhtxo2bXvsXwJHZsrlVZ0bAD8+pgAZ7PaATjbyGI3EVwI2Nl2lPOzJJnORcpKMKqw+cOdXkLWDY7YA7ouqLd56RBFTdY/BlylsaD75DSXjU6LSOOgoM/u4cwC3Z2NVkHcg4nanc8XJ67vKU54R27vKU10uGGsgR25GBNa+rJJ0UmpygKJIU8n55kpBSenf4vEco5yuW761y9zl2vI19fh+8F0guZ2zZVQs6wNu6AYADK/NiQJylY+xEUp4Ltmnt1pXDoFqhfauZLForZvUxq91WHVUsv0qDgN0sgmki5Fa6C1PFCaZs13K2hTv0/t0WeMWt/wAAigJzEj/LBifn3K4LnF07fGyxt3LZUHfsT57gboICtgixGoEAOwIXdLw3By4tx+4ArPsd2wEAVtUyufDNPlZzmdx07lPb7TTSh9rhy+MBOqAGmk4o4JRQZTpBu2468wAA9oCDuLjbAhW5mekDtZDZwwFdKxsmBLXjgRoJkNtvVHeha19UJpl+Vyv9rqeZ/5+FbgfsF/qkO4w1sK0ga0xFWOpqz6q8X7zffM/P5Cl3lStxv+5WbQPIBlO2ufkuUte+qLUw70mp+GS4fmIy1nFqv/q0+C3Olx5PWCszQ3//oVoQr0tkPFp9XyG+NDqnxLcNYK3NjDtzF+QSXuidZfg+/zXdra6WvdNKm6RcJQFXKMpldQMA3r4GR0NDdV0P+TTLc0Fq67sMBzWrFdrnjp1Fa8VQ+9wpmTaJi6ArLKLdIiasdBfyzAlcpnY928JkvX8zBnO79R8A6MWB2hM/QUBHzm3KoJeueLCgT+JvVMAceGoFOC4QW1P143ywMr4rWvmnMt4HU1FW2xJNnfG2m4scgN5QLqsLADj1XMQeDv+7tjh1wXGkfr13+iq+dwFqpTyv3i3raSH5SKSFT9HmAKRhzVlGAZTGJgUAgBIArsgK/xqi/4i3YH4FNrRsxekAbffmOgCAEwIaWyWX5qVewkWg6f4R2ZqmdelhU/l+EWZlDflo5AdxSEddYzBWUZUXvPbxwoqHu125jCAQzALNpSxu++RVb0rtNt0HLz7wt2SMcqjpZPt2pOocgB5oe25pqgS52lr/eNubqy/5Pf2NvXteUYnCnvjBMyk1ZF/S1GGb4s5XlVEm26oi5bK5AYAVsJok5gyTyo2AD+REIFPKsaysKztr0JfixStkiSJInLxijPMKRIk4mcSpBZQrCxEAiOCytkyw6i6YKNSCynnZn7bAMQ282T8AoHWANlT6ceI/C+gUqkuPmKgc9eGQ+su8eEz22nZU0HsOH2nORbxcNkGvXC7wXd0Rgt5UcZJqIouDLR5gN33HeZiNfVN+9x648kGbWdTMNzydDaPXNkfUT/h67D+nbk6HJW7oqatCU8hgXgUMHk0NL7AFVw1soYJDU6Dgta8wwaEbXkHBbukSmp2gbfn80BUgmCoL3AoO7LvQwNwLDMy1sMBMn1bPdyGBfRQQmHpe7lszP2BbMp9xgYCp+wT4ZqrvQgDzKQDw5OeE8HGS+d9MnzYtsOctHDwfY+ip7mtNyL0bShDbrnRZNa4LsYjFUJFQxVA6i1ixBsFiyJoCAOBM4uxqj51wFnHhUjv2mPu65LUJkCqrZGydCnhtb5YHABzHgJuggpuq9nyrPe3NbzHTq+bJ6ZQuEyq2T9Z0WFQlUBnWsgepWQY12Finoic49NR8JhRw0lOvmr0FVTx/zO7BA9/sk2qmJsdtpovS3NSLu1QYrd/aOwMEnQNckbV4bwvgmXrdxkWaHPUlTZqwqs1h8ERq9c07dQMAFgoZ8AJiZTNjYOfquxtXAVctBEA8FsgCULdJ4MzfClB1IQIAkKF1QRJsqjf8OtsT7l7r312tNYp13fkPALgMeXqDH68tnIvTPA642Jr4unXZDC7P0t8axXWpFaV4oiC9za33A6Qs2ROUlhjFU+2fWw84Td/DrtHkyu16giYvYsx7fIhqdLUDACmjacjxDc2HaMJvNxLUBQUrDQmkrjMPAHAOPMfCoX3LasBsORkUK1yRAXMrslGWAQuJBtTIgK0egGJ5YeHnW1a0hz2c9A5P2uN8BldTJx1jyN4RCxezoop+Bv3HePDbgzX90tQ5J2BsAFk5Co73VlfiiHwM+sHyLvcpP5qcdBxizcIsW9lK5P18AF+Kxz+jKP1Sk3NO6NgA1jzMuJU+RaJrU6+HZ8cYWCLS5KzBEaZQFQZwd6BcVjcAMNH5Z4AGZXOngIys3fRovKRqISh0e0XFOqoGFNMmUStAXxciAAAIWtxIglX1XZ5ne8KsvH9zDU5r6z8AoJVBN8VPXKCvneYQYEBbPLGZKjp09J5lqRV5KV7gG/Q+PIBXpxqltHxILsOxHToi5GdK6SoJ0x/yd7unqPmdaB01XkoLENmIV/SdbQMA0HyqvXbb1LOg6uAfu2dSNDOiKpC7CwZZWwozNqDWWeX5uwIYmWUZZgVgbNecTSzAQruRTwAATMsqqkDMmW8kqLR2TGCS3XBlJg0wa3typ9gBAGYLELFKSrHUiqvITEArZkGcmFasVpKIAE3B0Utx4MhyMd6EPgUq9GeSkMmUeljsqwoymDJB1h1M4GPNCCq+s/ONvVBd2SV4OR7P9eAVrLnD3bQlq037MnmGAMBNECSmSdRGLOTZCaBuCwY008mJkwggZnkeOcPHPyarSssrWAKA1V4iwYpBA3s6EAEAAqQo95kpiAKJpvba/6bdNLE3vf4fABhAcxD/2bKyqtqym9uoLWu8jdr6F7pNtSTVunMgp0+0MGTB8qqYDy7i/FfN3TLIp9n9y/dd6S9VK7tBEHP5/wuu8SexrKyNuqrpYtSRfNOEAo5h7IxItmrecd5Bolge/57VfztvR2seK+M+zPPh2aFQZBR3On362otut7vtsIF+hUkWMf5f9aDaKsHnAj07CFYWYvWQ4eXH//LJg7jMwzd0N70ThEH7GprT7W0XBpQtdrldZ5vJspR2bzBGT/Fx2pSE8DQXTwEApk0lR3F8XunjdCy/ndccNdetMEUVkHe9lXvGRXkAQCO9mg6RNeXg3DyQG9XLmAnk5gbZ5gpyR0GD1QWlvUNRUYU0XTiD+eAOlMYassppfQAq0R+HlyOepxeGvxCaHe8D8dFXPMO0qahclh58henRfNudZke7ORasY11nW3SackmGAEBbgy9Gsp0lHHCQzcQBq+Hzu13rhgF94sJg8e6WDgHqfBLwAZxiEUKfK7zSXThNSbS9IJatf7xGsCQeduc/ADAStN3LfxYGTlXbdnOJWljjJWrx0rJSOqEUTuArRGUGlbYn6e/Li0iYCrokBBJmBwMlCkrt9rvBNJSuCsaCFTrd2dYOAIRVUIDt+SIWOmCG7SIeWiIbK7EqqgGrdOUBACw3r6oGKnBxUwOy5WacAknIbM+C9MqGlEAaTIugUu3CPb8J5Vf4iD6D5wTxfRutuZMdY8jUEAuroqIsCm74wzM52mniau5cJ1ZrABkYCo5BT9Ehq2ukNx58j/E7PJqd7DjE+nQZCkV47Froi8cGdr/5aXauE7U1gPXtsrWlKeqwjjMP4mk68fZGs8PdtKSqhW2dQyoPHABIxx8fDbUjmxsCIli77Fi/rGIhwu15LIoNVMknURbQMYtA9/j/K92Frm0UpeX2oqlZ79/0tmyo8XR1/gMAA0JzTf6zZVFTNWc3t1Fb1ngbtfXSdqX0gFDLAu6AcFy/aiGyMrYp2l1R32DhyVrId/e+tR9eOzPNiRSZsNK3Muo/NHA7tQ1MVKtUH8dSkWPuPuJBaCHm5h3t+FeR9wDMmfJ4GJghb7KAChknHAESWGSk88WgLiqx1Go6DHukPvU5R+WrPjsgempO7S1xDVdHXx0yolQMn1w8nYWxA+HxFOwjjHMzkrkoKrfhoboNP6w8fTLjm1xluGII/VB3yveUglkGNiRy9XTWItXqB8HSZH4OKsqe5nCbYRCcZYO0MZeMnpZfIfdVASXvtjbCWmZFkga1K2DxccKq6q11QX/zOqkr3PrK9K5h6LwN5PvHljzfA9llamCfJ4Js3x+k4Gb5JjXo+HTa2E9/0ShOPdSOBKpQmHBUrWzikv0Q6xlZEGdLdG2jxj8IXdu5OGHQ6iDNwXs0yTbUnQuBSPmmKX/ghauVYkHizLIdbdRjAtUxAZPry1IvNGmWBjhsX7pyqU5/yxV/Tijy+RR0r4qABvelAIZ65tOqqdcDf63HwvIKbaIjvSIN+v4VgDwAiKZtXxMG8FfTerXwXSzO/JlINOYNKuDU1Vg4dxFYT1flmyAaahfvpTeuPTxuwyBUuKlsALbT0XmkvlItIzTv/ZqBEHgFx3RJ6TQROBFF5tkROGWL4fPtl0Y80NNYRjkxhRtwiclDnGBLn00P2fG2ljzZfluTL+FC9hxCRQMgfNHqrGM+hG+Ew5vx/252u1DtdnRu8PoPS39rJN2bU381EaU3f8X1mA8CvcfFq5WESfIJH0HKTYCIr39o7R/vZw0POZZoBg5aD4O/Ei31lDw0EzEMlBVfIKTIG/asAXsdtm3sDyrJsrBE/pCNdycRLSo0ErMeb8PdQFLDL5jSnajq6abPJkF+MpOL5XcyevjGZBr0AdGC3Ccx8wUAf6CeLpZz1yiqwyA4D8g3GTVMEHoBTuV6kGZCor+ibOOBHWLN9X/qjvX8Z45j30B5ndBPSyTuyHSAAYAoKKpErRIDFLYMmFBvjmqmscs8rMSK5nIzS2nuwB0jze4viGsb1T6Z6QcLe0zlwNY9leBPtcY26KYKVLxSm+pW3F7CCIFMNPCBYn0N0DI/4fyC0E2ZCClaq8JjdTni1Byj8IORFv/d0y85E0deAzl7AMAgxF/hAKkUYkCKdwwrlN//2zIslt79hPmLGvVBiBJzkyllszBXEbOEkZxZgzdeXW0opNzJZrmqVsCKLK5qs9yuCbASYApT60qvgSm62kofmfgsEutbmF0VzloF7xaBs0l5bMscm13s30ra4UgbScAtRbFmOFiVu3tVmTtXNYSuVfUfFYxBUOoHx87XGK0U4Y87xuBhRAysnMrkvKNJYumNRikNrgOG03em4/b6d2Q589hHTGOtd/Iqd79UxEw8UAHnThXfoppjW4Xldosu4HS5rjJEA3300r20mymewC4obqjwc1qilC8qrh++xoECtBy+X7UTa+gMMHQRH2rXvXoXdzGvMyd2V3DZauCqWMlsLOAKXcveDIArzY/jzS2DO25Zj6QB3kF/iBay56Q+fS6neUxgndEEdMmWq3hwUj/wHCxTy+u/p/jriTUiB9gdsfUmkXeveIASbqRnu4d1R7LjQME34+uYp/bNwdn2q8a778wGYLXD6kNTR5sz6gfInyHAeaznKWsOgyr/6jv6drVfrrZHMQOJgEyLpl7mNBnesYN3kkP5FdJL8vFV/PdJ6urV7JKeGr/sda6+hLCvgNR0mAAA6QYG1fiYSktdRgm4K//EIlHphs5URxJVEBaoWySqUYikxgIgWRs2ol4rtYW55kRzrmGl03lA8FJSbHLdHgCQtLz2pbOQPvGjW1Acp+ktUENLHOw/FRiolSgNAebEClYOYjVw6pjARpTUhV2ZjDA9HsIZo1eM5Q28xEorrRzbkC+tInU/BABxodcT1zdLYq88d3MAsyNVrohO49r3qJbPvvouHNnF3Rn0jZtZLZi2zN4EjFpA7AEM7RHbXYrtadfVwYBI6qU0TPjuTMFzNoxW/54O3QAyX7QeBlQ1e2WpV+wDxZsvteNGc/b/PW26AayR169nW01B/SQesaHLL2bKxK2N1//3W13aq3bthol9I7hlMYxaeI0uzJkAABV0W3q4RQYLUtLLGhBGS9Nnu2hPbVCHzlVJIBor2rZpsdiuLb0RBd737vtja4GriwR5R4OdAwgA0mjr8AdHiNhvjqEsE/cOPolDc1UphqX2RAEtBetQSVJYJ4dszEj3uWDoZ+vzg3nwH+P+vuQWD9B6hKM0gENdSZLsaoADPeSHkLhYjsEVU/dXHAS+EYAhAZytI7lxPat9AlZEAQ2APa6cMSC74wMAcIlE2gpY5CngpHlfQ88EkoaNfn7iDHH5/O/JVqFue5nlYJ9ymlcFdh4tsm5PEjXSeP2S1k1s/7InCsHvcSnOYB6zBOPAAtDWn0Lyaqa8XnbeXcXcnxJX6Q5jLeAu2sbvJXKRPrDgAga8HdJDhxpXED023bdvLsHKuuVuD//mqmsOHibPXkgYh2Ojeczu1ZNpxJfhib+vezr7S7P6+J5EqxfVYYK7FPv5zL21b1jdW5d+EmBdglcTpTC8RKl1JgBACpgemT4eQF3yTwaJOhg6Eyok6nFIIGDIJSza4UhqgUqHKACgapCCIKJJyqLyUZbscvGYYvP/59kPSFaVD8ArZXGVZZc2AOAeF/OohSkb1Evsyk8QXdhsp9ky2JQrbh3YtJRqF4UfuTBle9K7sgdVLXCB5kKjrusTlarAy0sm7dL0RXYNPcuz0qDkuIZh9cagucArON5Dg1eUYwcQX7kDIgA4CLyO6zsO8fV47o4L7frYylWpEJDObHN4b7awWtlW3i+0wvVvmznSFLbfjEmZ4GEKd28THNtlmiJsSjx4Yppmn+ER88CDD+UpfQnhoqlh8EqRE/JlaKbnRXn36zj59BHGeX7hcBX/z6QK9Wq1VxQMNcOFZ4nm1pkAAFvAdXOPc0VrUkYJKTHAKLeNEtEZPJOqBOZspZDSkGdS4LZEEg1YxSJ8DdSFixAAAJGBIOKAP8SyMjflssQLjiv27FptAGD6nulaVFFY5uI8O5/PKrriNKMDLVjibIlxYqBNLjU1N+PPQZwp63qdTEbFirNmAsf8MMLZkl1zAWfbRzg3HF44Ot4FwOjk2NLEiTsgAoB1gzPj+m5FPGu/3R3Rpymuki09WGm2ysM3i5pJuvp+wYAWbmf+xjdQYysz0EAdWfZIA90nIGYKdNMjNglp/YwmVxN8nzH46JALT7K9cjRDq/+TltsAYhhak95enmEffB+7GXLT6y+twxOy9T8uW9N3G8ATtvXcRSQ08MftGW9I+jZfOvQTte13eLOK+cadG7e6cxNS66/AIxf2EPnWmQAAPmAqTH00e4oB7ySg1MOvYuz2n/WZKOIGHaIJS2Ixplkbr940XK2t6jSIMLxZM4puTZTYG16pDQDURGyxsCqw4ZItgtEzq6rtpoTiWOMVkVa26YKKa9feSDEUrNqq/bk3YihqiLD+k0LxuGGCf6tCRxqz/0K9XPg1+8rPuT2/frd4QtKFkIRIXkBGqknIsYkW5S1HtQ+i0D3aQrmmnk1rcC9xfoI6cwahtVErYK7lKqVIvRqHdhpaUKRP/qKboXQ167rpNYfoUY1rXg5W/pvBMRzep0QU4duxwc89RDO9G6dvxx7qpCv/B6QkFD7LIvsjt360qwEAKim/0vjUSmRLVR7Z31bTtrnSmnS75F/3yn/4NQ3YoXfmuoFd2crjNJx4BoWrduSnI5nibfkAAKZ2SRwjXPEIPJyq7Pj39NPM8JYrkT/Z82eWnSwAwGL/pHZRuHR6LtGZj9QeuczOlXaYaXW6XHH1bEE8vlwdvNtgX9KVels1bNc5vYVKvbg6pUuX3uXJacV3wYDzpMnX5I3rcaSbgm+Tu7Kqd20Ak69LBOZcM3hMiFUWb/jWR3oY8SvJ5z7Xx8ZFajU9RXgTdU0AqNYBe249O15AV6JAF3IJ2wFDWpi4dkSEW7sC+4sQAABJCwoiHau26JS9rbdJZB8YwZfuNbr2AIC+rdJNykgJU5A+WNXuAUfEbOkycfCI2I6OGJf1kSYlFhNKETcUL7Ek+8pe2HALlVg+LkCsVbi0WQdduyK0OQ4P7rrHiEWqMmnK6U6vqcqy4fKHrTm4qsuQLsIUM6R8f2G94O1C9fLY9GM15b8V7Lsj2cNkrWtTtueJ4V++Rnx/1v3WpXRD381zEWhDtusIqGB0JceSmc7o/gpBurZ1N9WiRBM2i0R8QUh9psDjWBe9PnV5QAuwqFV9gQezem61L4ASoiFMeIffNI523g4KYObh55R0fAV6jDiV4henzP18XgJSqji3C1G5/oaxiDmXRJdjAmm68BXlZWo+kYPjkDZneFIJUvkzzhM/GEkLjPt2Us+q+vDMAvZz+ctoLpSE81ZeL2ovN3WW1hjHPlvE3OFgjWF6XhsOHu2UyXUAWVEdINN3JSy7pNXv0PzvapxweuVNcOOB09X9pP7TXr3CmAnnAIYAAavFFwZZjXB1jk4/FAO5alfu/V5Q8+RdIF5GGLRA9n4C6IUClBqqs9DYtXGenLLyA431tNAneFV7vgEZigoaPfvIUVBJnbQ4fyBHinhbFfEs0sueyYdq/RoAZVioVtAszTnfzqhVjvr3sDkl2jSTCd7dlcmrYnmBjPoGybEZMoWAMJxnM/hH6bSWErz2pHA+srzqTArc/M1P8dI5kG3ni8mT8/PpVoGTO4Dkvx2lCOcFXt5JhtRVFv2hOT1WU6GlJuKMSwIgb1fai8klUhTNyeMB36ZYmwnC2Pt8FjGbTUgcHrhQ0a+pXilBPTkwNtChcpX9HGC+hA8i8mO8wj+8baRepbVZPa9fq8ITWoIwFQBf+3n85o0bYF96iQR2aqpEMc6Why9QSV7Qf0xbJECufAgN/zsDRrcW2AgoQ2uy98WyuZmVMR5u8OHGJAbrJQa/42bM+7c4F8K6r4JIToLZRfW1Ohxg21Nr5FZp77gb8EW/e4xIWWlUDI64RJMnTtFkhVs0DRjHaDLaB3n+alKa4CZntMNOvCJsm9yOvhVOn0SAT0dP+0JHxGqarLGbJie4vMkT2xmKhPTYT1MkLOjXP+rNjY8XNYXBj5pc8KQmS2dk2HhT0/Dxp6YRwaOa3PCppmB4ldUerLSAP55lai+Nlhw+3hXThht25j0Fz24OPcqQQHbcTAGpvbCZ7rO1q61HjnoojeqoRf0xHNcMgyohXT8Uow5Pt15P7EOKq3cB1P7oKiyN5B23aecQdhpV3oV6D7WGs18RUwPZU6gRwXMoeUBW766RSVV2h2XSUKPokreq/8GaPRJ9FCUX+Z5M4YVfepsdeu2LcCkMLc2s9Z+IiT4cX/oqqVpJNThTbu8MU9Vwsi+v3aVNp04IVqZ7lqri5E71ToQAQKoHpik7phzcAhLU7WSQmdjd0kA4M1h2zjSQbfCHgWkondEmNu3Bh/K0KoZwm+M4NaZNGPLteZkeRsmH+k4av030ni5hCM/1NsHKrmJTpJ4oJxCm0kEJg2a7UQAALYCULEP0PI1XggRW8z8qw0zzaqwcXflopfyauAvCwO2pWzdxAyGSeyJgm0WQ3Zi7ixAAAMnVw4nc9YVLSlTt2yQS3aNGKV17AAB61mWpUlLYi/RhsbJDMOBGLpPdpmR1OWKyK9ygXDYUmrXlrghu/couZU+xIswaRY3HnuVFOlyY1ymbu9SxjfDEkbol3W4TC5oBqdumrD7l8nLNgxc1YDxeqXu19SQAaE6hG4WtdgNAC4KaKsfXTuLcpWpqc596ud340Wmb+ZGrzPrRVFM5ugkBACbAuGq5Lsa9DUzZzuxcCQFlNvYgRCcgcA0xok+M18xppjme6vLeaJ/7h+i/8p6hh2uouBECfhF0CBA76oI08YSn4gtxz/OTLnhNpVMCCCp+ZOZfVB0CBBRUbD5M3NQorx2TTw/dh0SvymCCir9Nbs6q3mxB7Y8k3GZVEZ6MKIGYLK5GAQDm0awE3nEPsSTWK6OEusi/5pJoV94zHeb9b9CeMNCJRNcjkXQzL1GCa7pEAQA3IW0jINL1Qb3FgcS+BrpX3bUHAPRNdbNXRkrItfTBsk7gOCImp8vEtUfElrXEuN7E0JOGXV+TTRdikc6VvXu0pUIlltb5E7XtWiqsviyeGh/lwL63h/9is23Db9hjHd7JAbJCMmRi0i4n0i7wspLspoHb6S4BAO6KpLthG7oTVKziIEyD/42OkLfP2OMeGaeOWKXvkoyz1nKypB2fNXP5ila2nBBG2/EBAMwNyTQSsgw6EGgP1UAKGrzeygIAwAWIKAVKZB9ETFwmeVP2LRVZpuywWIZw5LKx240i3YrPkAmia1w3w2PgHBUN6E4Yuzx5M2XZvHjlKfjYVBrrcDfF1QQcE2jrVfTmPo7kcg2EuWIsX7CpbhQAYCNGx9VVRAMGOAGc8Z55GnBWGHgIeEokeQLsqdl2leP6Km0p9EiiKKNSjGilNZGZX8A1vd4ODwBwekEp4kcpSBbtplL/b5A8dsUaXFFe0aYhpLlxrjpt95YKlbQNGaDLDm7pYDB6vyesa3dBXifVcEhJtcfjU49y4dM3RCHHxzwYKRp/mqfcJR3MckPufbRACGx5sW3dh1QIx+0LyzIziMQIMUMMLI9XARASbz0JALBuNLLcajcA4MoQFnF8LPXyJR4IS+m3Y9mjIXcNVRgUBDNbCQEATBZiWw6OwoYy6iiubi2NkdUSysW0DZSLQ5hQ+mpoLPKRLo55C9wSCF9a9r3HkXy6dloqi3xe72mrKP4OeCx04OJTW2Iiwa5KG3u7+ypCIaxirg2Dyt0oAIDKJOpjmC6QwKEY4GWRwkm8Wefo61JMq1p+hd0WBkcCV82RznMxe9K1yyO6e+ufFyEAAGJsSZQYxWlN5KI5c53aAACvCxCkBRUVix/NQRqO3dSWHCKkybliXRcRSKhZKaUDxV9Id21f3d0LtkIlV8WiuFsSbEuLqZqCKcnlKlM1XYb/zbWBBCcE13C7AiXCFbBRDEQkAQ9lkBCzRudJAKBITVy22g0AdC+a4tm+JDWGY0qeO2YgVbVUEVjvoJiBw1pPCABcLoekVheXFohyTaNMlFAG07ZQBoewoXA1BJeYtJ9Jsf05GLhD7wVaviM/9Z+OErdE7lXFFp7JV6pAXUnhjfdUyzMpAIAOvYo+6hHMIKXuloAeQYJ6PX12hd6pDQ7ovRrphKXnSqIAAOtJOYsESaQHf9xq2PnEAmsuHgAoQjrhstPC18oSNmTuE7fvChWIbx1oWrR1GvNazSK47kKEvNrqbvYn7U466iajJg+8dI1WXwSnOwi3721B6qoNA3mqHhHKzaAEADbNztzdAFAHFPc5eySshpu5i5/wDgoUTIM263ExPTSfiH6Nh38MXjn1gv7xn0ISieAQIAggvxkfYY4oXno/GWNg8okxCQDIf31HcwvY/SpQfzoccXsPhrkYLnqgUgoAIGCkeqMqBhzYwo7yBFoOiDRoKBsllaIOFkzctmkp264tUhYJRD6RYGbjAYAcoArIC4I5A5qPC4xwa3D4GzRz7C98pX2E6VvykRrnV3Poqr2iK8jhvb9eiH9TwyODTuq6Cci6q0i6O1lcYQIAnAC1ZcBUWkgVB2F5/G+nBkIyIHPemekBcmUrhwtrzhkUpmLLx5Uo+P3ZKf+Pd31/XRT8ncSKPkBXaX6ssMvUrjqlScZQ0DLpySsJvCpvzZ3AY7azAAAsFzgD5rKXW1lzEldjMy+rXb0BO+eIVVUGglBx9z9UqTqWiE1a9dfRxeFy0lKNe9cSqiYyLdBcaNRVfYLJR/1cvieci88QiWnEp0fw00nDP8X304ePjFN0jxFu7K5V3RfGP5Q3j/WbEOYNwLssLkoBAByRqfeA62sA1urnZYxL7WeriL+ibW6wIVpypD2gCze6hj0MqMgcL2zVXXUKTpkzJ8r1rLtSqufeJpHCdVxhWujtiAcARKeSKrkR8WPkEYVDo5ym6TXWiwyVKzavWNUlw/3vxiqqAVvN5uIjBCPL57ydfmzgtDXiAiGoatnlAFTdDU+9kRjKjSdhXoXsHx8sFykrQWTvRkXXsRmA/7HpYU82RMWtnE55X2Y4z4Bjg/CoG3pqu8jfir88B3bqfkzT7FMiabwmkLFXhLv91H398k2L58qfy+PAQ8bNJDBXr1uWl/jpszeAIOPDW6FfTzFKu5xkV0Nj+kEDbA+VJ1i1ZOAcRA8ZUFCXFWGn6GME9Km2HrEk5yf9Fuv+J3KeIykykGPo6iGVpKv6UkC3bGCYYvTSjNZtQhP5Wyg62N3NhEmyZJtABzTBDY0XmkHAAoxQYcFlu36/tY9jGOPO9xD6ujH0Hp6s2GX1nl+h5qC078gfuXK6a6cFyBEIxsx2YFeIL7ezrUHCpjiLMcfOgp21Xn+0jIIP3seS444FV4DZOAQuPMgrMNPzISdKIBtsokJGHfh6L1ZeX1mBQ24UtDuBqCQgaNyIvvOEeJvAKoinQ+5DnALochVbNmjnnFMMaaaMhqBOF+KlIurXcxn16xmifo1Th9TxXEb96hleCAGchvEt6YAUIAXhscZLRWf68IHPG1Ap4Vz8UhgDmECBRJ6DBEB4aEMSoHAOon4dWEasjLz3KRLjGfV0Rg5FpafNiA1y2Ycy/DJ3MkPWaKrCVh9NaY0COjcHU2lHS+NMqIcPSQFpINQFH7q7FqEiJ7zSNPBSzun1HAx5BYaOT3wfSj4FRJcVZmQrfihcVFkt1pC7TCBOB+nAKqvj6S48FN2oaHzybo9wqKuMTGdS+JLboaxNCQGAMFfcTNhRDSq4iCqTfR+PD2clExSBPk0tO0ADfcP6Q6ABTtceHq6+rB9v7/OzMzEmrwKme9oJvRcsgI0j1f6rNHZdA5Pby9WcvmrlyyLh/6G5r1fv2A/c2e6VH/uvOj6VADmDD1EiZC4qQHXNYanxJYCwf4fO+x34ICcTgvuOe55yLXQ5n0mocDtOV7Zqrc9JiyhfoYeiE51zS1Fu5HJ1U6tA6owpHjwwUe9tRwEA1MdYRYFYkc4sicuUf657BoyNyd16z7qUfwrQ1cKgK0AXRVLXEqG7dwEADIXbk0RTN/LBDsWhbYna+z/wS1LDNfEAgCWZKP5jrQWzh1bh4jStBUXVxpYs+SW7IiXGtN5bBbXXoZOVByw8Eqql6EJP3ZBzJBTgYCJ6CRw7IFADwIl2WF2Y5Cyj/uz5vQtjlIXLDW2r0+DtbicTANRnSE33p2KMVouCQJyd7X4FXLgyW3FvUCgNjLZ9b9fqu4jExpnVydhhGtTJ8AadVotstdHpjICQGmTBuJxsnVOz63dKp+Ft8+RVZ77X4YSYWHyiC0zMuFUzYHuNivDDXQzqzdbFKACAKDZPp/lGl5SpAK5w3GZMbq/9rGut/oq6uEEXURdL6iJp1G3jBQAaUWCJu1UlWqJwDRW1Jk7YK164BwDs0rLKSVV348cPqjGaZ9SZfGBvMgquiceMYrjUDpFkveceHmND+Wr/dmbVVBZd2RThOtScThxBQE3QhCgWRtq2bqSSVDUyQE1uGzRzc2UCwAZC9qkODSUI0ugyisBd7kUycRU2MHPqYZfR0G3eTitPSCH+TWd/ACGG+B2p8++t0Z9yGZpdbhqj8EJ67wDiqQ6tw3YLLYYNTCkFABigpbpRrAF3odntZ+uygPZYsYEWdJSkBVXiBQAMTF20CzqbOJzpS+4BAN2o1DAplvwRTS9zEkQoPje34gC5nr5kBe7BfaDZv/E1qOd/10zekezk/+OZ/NS+wBPf/ld1D/5X+c1vb3R1TLar6rQ0KqcMA4sqzLA1Ck3soJbk3+6xyhy9ZkcY+6nCtCoF4/2AWeU8t5jjez5qWNIU995l/R4vBvr8KGtyAACYSFdtKa2MCAcP17D63EuvaQEAxkQ3zOW6FDCYl2pQZ97RdYz4SjUxNeJrcSI1cVfV3igo47+kbttQkNPEDxy92u/Pz7/ANgS/o+WU6kN9fmcawjuEljJ3XZMCAFQBraob+jBE1aCLiqt/u+jXTNS49Mz1ZbwRwQ2D0VBys+c41sGoZgGERcT6XQBgB1wcKzqOpSWFbk0k2IPXxQMAXFSH/7BQkN3kojDWWEBhuZSI0tnvCOViAgnU6gm62rNQCx5MbG8AUgEBDQNUzIOxcf1Z+r0LY9QKHAxt0xHI6+1kAgB9C9Hc/pSTRdOKIOBMq8ikAi6wVqrIav5EG6iptYQAwFSVX29g7Vo4ZqMbmndt8jsuZxouvg/iC6/NbPggvj1fgQqE2JCfTFXMxvy8CplcgAJZHpabuinxoXciqV5mGAcqWt7f9qYrwsvPqKGOF6MAABoRVVHPTs7IxQHdHHZVvPTMlX99ZnQNgzEzuobPbTmDniVsUQDSuQsAYBuaAiXRNMtAy0OpxrZE9wT3/yVJcU08AOCVTIu7WN0yzGe9oBir6V3tRsnKOmKnG7ZLZqDmhFRYYHbq1+3cgxYrTqH+32Y86IGEYjEv9PSlSijuS+iVicJpAgI1FzifE1a75oRbRs27SfidrTAKtx7YVs+gVaXtZAKA0A2p3f2puI1W+wSBeFvt5Qq4cGix4s4SOUVM1FEIAPAqTTkV1sbZxGnaGTVx2jxbJE4vh5BR7JYyH/MZ/vPTA86OU/0kNrRU92jRJpbtNxVUhSuHzMxIF6QAABpjuPrRqn0spYxcTcBb0aB++W6sHVXerFbMjbrqyjyeKWfTiNXw2R0T/DPFmBj1rOEFAAZErWpRXdCG4mVWJU6q+8Ye54p4AGA0lNz42QUUylCYWnMKlUxD+erh4trIejhQtRQammVXNJIE/PpGjuGkOySwyUho2bXT4IfV4LYnqo+WJIAWVBguIdo2U6Eko6/6xspuR7qzCmUCQGmRwKijg5UdXPW1JVDsmpzxHDbUX4B4h1igwYsyogsJ/WOBPqn1AUQb4nnqnjc8yfyxHmLyJVQKRxoS9IcFPYwYzhDfen2sUgoAsCrEH83twCClUg24C81l0AiUODAA4TRAl3gBgAAVF1WGPs/VZz6xOMViPAAQQBUQFgRzBjQfFxgx1eCE730n4nNrDf96q/F8DI0XBaLzqTB4Q/G9cQ8+qHt4c5YdHUI8alfXZe0hQg8umgAABiJugx7UgAOm1PNc9kx6ehrY/1ANVJkDFGXvYXCieSi7nVSXajFi3i/wQlXL6VO5UayjvmOEZ8FT2KunWi5Tfwn8MX+kOJBjo4WGd4Q1Epq//2h0H8EBAZCt3dWBs6heohc3ynyhwYTUCtVO9RWB+uvQCfiqutXCaPP1iw6c7eX7T7KPLpFvfLOdiTHCAGwx6cx4Tx8QTa/JAQAGVJJRtssf3YnXlsVWw+7WmtuC2Ufjyt0sAAATEFfJXejZfnk+Et12mTxt07yPip7UEfO8fPRT0Tv3jnp5cOvq9vn82upTQkcQHxvwOuxbIXiRVmobH1DmAIrLkLNTxJtcQQs0lnq/l3u8+qzvctd+5BNTsNYIgzzIp/1HO0b9/XFpWJpHzWwj2IplCEffdjvxzZ4SyY6YgdklwmhhJvyWZCBOgaZeJDEQ3GpLIXdkHyXnSDkKOrw6eJ0smEOKpZ06cZCAbKJdeeQgzOn6tfY/thSal+xJucsV1DsVW6YvooSI0Cc3nG7m3TwnkJWKzk72o6tXryKy7hW+zWCeiGR1owAApCqQW6RPd5UIuRxQKHEPoN6aWwj/aar7FjDWdqelXWQ8eL/ar2irVjsykTexBvCAhgX0NUfSIJu0G0O0diWkpCdpM1s/Ju0gIfLLkklXre1Mp5cjLKfLP5Ilf8awxkpLFRwua8NIp1bCaYSrUJHphNueAfhsV0WVrZHY7bsAgG3YZy4/4uyxoq3pt56MhS/RvO2NijbRHfEAgOWd5SsFMP8JN9CJFHa/EqVmPYJNofhKlMUbJAIKzVei2a6jb6aMM+6bmT2EIsULJpAhFawKvISpQQGlrNbEKbTkkwNxoaVpK5yU7D9LqFralosZoqUb33b2iN3pKBMABgQTOtQ9EmeaEVwtaIbVb7WjZSu74xiftM1uQgDA5XI3giy2i/MUNNh1M+NAw4rMHi80JATEpKBVZshsR5SMchBnlyDLHeR5HPKZAC1+PXe47aJv4SRI1j7/eefwilm5QXX5WOpVCmtJtdTSTAoAIHEkb9fpwV5J7kPTGtDkk4YRMmtuLmBlBgGwxAsALKCYqI8y1AF7W+J+4sXBSu4BAI3w9kApKvoZCvoOVtBcAS8dhWC8R3TvgJDvBBO6k56+A3Y4EbjECOcNu9h9wCWDiWwMsDOCwJUxtI/aFWyuBbUnGF0H6tq77S7UsaNMAHALdK1DNZvYtb5BE1AqEShhzXSmbfzwAkgTAgC9raIOWCFu/5Lr4ASZZgF8B7DIHjtgiwiDyZOBnk5gwhsywj38hl3wflnfvCKd9H/OqO/aNrfu3QGKJYYbYCkFACAwQr0hnAgkoNzcgpMZBJASLwDQqD0smjtw8onLqS7GAwACWwAZLOYUSD5eQPW7DjSDFzhSANw+3WEXu8vYsyOcx87pxN74JikrCDyq6hwowTY6UIJxtXRlartOq4ELZQIAtWjAqKWDlRtsLe2pUHB7M/E12dv4nigL9YdisOBfsQ97ZCv9DeH+lB4IEOmK39wBMDH0gOVF4/T8HtRHJMoV//+oYda5H1canhguAKUUAABApHoBKwIBMDc3YDKDDbjECwAUOFHR1KxvYfKJA9ZsPAAggiV/RIMLmk2DXgcRinWQ8n0B8Wta58+exYT/bvizt37ejUGtDfzj8+H+OGCzi3v4wu6c643qIPIDdgboX2o7KSvAynxE4zUmAMAsMNV1wzRmsysOAgsNQG7YJQxsd8vPHtHI6wMUQOOzqXoL4/Nu4ceTfeGBBtb7/Bs9IPhS4fOhOm1/a749Y2bHHWs8e+ys1riVtqnUGK4IK9WKcJ0k0xQt2Srs/kldHKpR36DVPA+Y4JMqOFU7STctlVwLuXRW0136Uh6Va1tbbEjlure2l9F7iKW0jKXzLqvKN3lYxu07mhLFc3mMDxSfqwLTszl6+rFTMM35cffRlAo6/YMzLtasVcCkokZCWHOALt0oAICrgHB4eqabfpOYMQe0Zjz++01UXHN+OUYgtV5BVQF2Qcpn5WBnF3YCAAHN0TZXEi1UVFCTrfYmOh5wV3vedfEAwDRKW/05t7JkKI/dnEalauPZYZj8StKy9wlqYb9vUCsucEe0LbxwQ7TwJ+KWaCgJdCAaSTadiMaSUWeiGe+2LuzNrSkTAKqIdbKoPXxAp9bBXuLuaaD4QSk7UJvlbkIAwBJwcB+XvgVm5Wa2vEMZptmCzN4aaBYrILYL2guHyQ487460f5hKGJcq56cAnBHkBR6ms4X6+7pPTbE2vliBsRZfz/mPqmRtpumQNOTCUu1fFknrUgAACQjD0zNdT4XEjASgVeuTePQnzb4wWXNzRM3FgryDdEVdAEDgREQnfXY6YG1L3IRDWWfmEvEAwP723UFGLuvI3so2uZC50/jpAB2KT8DZdsCW7wAdXM9ZYPkWK5yciMACLy8Swcgu8vYvK0RIQ4lUWXLb4YCpQO6MEzZ9cmZn6TQPXHaHL+Yk93Fg21zzIaPRTSYAqA9t+typ9/iQmWEEvh1MSgVcNN2eYmU28e0dUGlCAGBO93dQAa4xhd4BGWbKOR4HO87WwYkgdBDb5jwhXK/w7BiMD5VdQnST3rzF476Vd7d/YsRwUDuXAgDoAEj1oFwF8oDOzRngxCAPpVldAMAHQhYRZD5R4JTiAYDptn1YOAKowfBm0fj4WGDJd4PN4AEpBJYjAnPYRe6yWrogeGEieRy5lf8SmJyYJhtvED7TK7aR2mQlY0Grye0JZ4rFMgGgwOLUovEKgm2F88fgEiJQkmOn63Iq7OfOr2MerzFsS6kM8GhWfKegQBIPBIhuxW/uCZg5zV4KrjGlI+10JbIV/2kncG3JrXt/raDFsIEppQAAC3Sk3uwktEAx4IoVYEHl5gQiM7gAi7oAwIIdFfXe4yxEPpFgZuMBgBwYAVSA95w5cNmYND75LrAY3CDYf/CVbwInKjzn6XJ+VHgNb9sjJ0meyVOFwIeUkQCwxQk868HEyiK6zo6dEtc2hKBg4sw/IZKo3ODn1l/CP57diO4O9PZwNMkERIBd77Jb/1jYIUzV42wXMBW277LOWfj4GqzeKSP/wsolQNDKyL6h7uipVVh8d3h85GJrZYvSTAzGig2Eb3xm5IR+FJhnIWh7sdbMCOHPIvCv83SLuTuuUYd0y70xLmZHaXAt3qUXJTvunCT2LnLoThVH/VpS1Z0JwRBiN/vQMY3VUgNEDNh+fP9YFwahiokgNrM3AEADJWbuN92xeLlIabIGNYL8+VStUpkFAIgcJVnSu+2s94+91/ppQAZnrh0QOoCYGHpcQNKHsp5boVPVFYGnBkzYE2uzVf9mHIRESTaNnOw2nmKBTUrggIAY78Z1ey7TBAtcs7fW3DZrwQqjyM1J0+mlvu9siLacfarswd0StgJAAhxcVl6ZS5pfPDbfQcje+vVX/ADQrkB00L6fZNOC/Ou0svqJk3VjJgq7mdMFADqQWhDlDNRVB1AuMV3nFgdZ2gMAeOKbKFAKJ0q0KlP5zaMF5bB5oumqg5pgbAeYSYe5IwN3rWAOhr1vze8+M2UNKTAFYHHci7WEHMByWhRZ4GgbBQdOqtF24Ew1Gg+czeXbB255bZkA4ALOsKpu8FKtgwaYRqgSzqLNzhWFAIB79izkY6xcsOUKppmzk9naE2M0DzPbfJtoZJ8PM8sbg2AcAkKN2snSzNJ0QfUwOQwqZHlzNN4sJfh+rBnijmiJ2AngN5krANwuKQ/C+ZX+ARQF3vOqT/vcNudHGrcM+lRnUhcAkFSCKD8wYaA7ILcllozXDiK5BwCcqhQOlMLGJR3tLL+iAuZpzYe7YsLwiVGyu2JinwnoIPAJCeDTB4sFHf69Z0tohJeWt4SWsPOJonUnkoC07lnJRlr3rmQkrVHKbotjAyyWCQBiwSlWDUvO5gcDWRJlpoDbhxd0khAAaPLSdwBzXO8MARwQy8zpg/oOiCjbx4EbQVS0bQ5yS5k9lYdD7ybb/Qx+Bj5x/w0rR2GauBUAEgrisvLKHPordzfKgkVgAZ2bC8jMYAEq6gIABVIWGWQ+0ZyaYjwAAHBED8HwJmh8fGywsg8BEbzXv24HFVDcXGwJrvDS0rvQEko+UbRujyQgrTsn2UjrnpOMpHWfs9vk2GgVywQAsWCaVcOSufxgIFOizCo8ux6aLWrzcXqGaE3XvKOj7knsCgCJT5Em5wCi8PF8Hg7KkLQ2bg0Rut8yehSBT0JXAEjQjEvK/fu/R/ovSlUgD6jcnAFMDPJQnNUFAHwgZJFA5BPFqRTjAYAGI3oAOmw2+YYsXDYWjS/7YLAZfECyf+ErjTye4ziU4RyeZz726W6KveMGt8cQtmqjDp33hjb/P/n9Dr5eDoJpBp0Y5ZV+mhNf8znq++D9x/uP5ZkjPuqt+crWNb8fY1ZltD43AXp4R3PXRSlbWMPqiAcm5spe1yIqniQQR7w5q7Y3jytlT+voUS/aZ3hEyGz5yDzW9QckhAEehLlHWaCz7+0jJOrRz5wR3+7suT+r14jt89TjKao9USH4RN4+AI3lhUtEzGXUta2hKysAgubXCESwYHY34r3l/7XKetdVhopivKAhi0F1q+VV/nkkdMFyH0nErIhMQscdsa4rC0SIKEguFiGGh2SRTRE/45ZaD+KtlCIRfCRpxNlWMpF7TOXfFw0rkxQnCf8zbx/oKwkn+WpAeeAAimXyRgqXgV5jStCkm9LoNNbb+poIaoASWYYDo3tBFp3vtmr7L6ErfATiiQPlAZY5Yy7qs8xWm+Q9idiVHzeuiWDKJD9FmCmLdt/hnoZ+WUzTEPVNbwsbFd+60ewvETSCiIpnq7DOHjYBVocswgD2Gdvg4CBF64YVxI9JR2GneWt/eEzuripFCjhiFz4vhcCauThgmtOxwO+Qsk9JaRv/SC4AczahpfyJBUgjuvHJq498Cgwobn7+AaCzsQ36s4BZTw8mHFNJtvrl0EgSaI5rBclZeahREj8Fo0UpEaJMjmENiK322GBq/CNWz5F2FAGNJARKC9TSxVdkIpwOA+eXBMRQubV2kL4r/PcCxPge8gvac1s0mdC2kkeP0BLhAZXNSFnlY5o2MjiBPyVb73PAhbqQnE/PpaaA+PTFtGAAKtS4jnfzJndB03HzIKPoUr1YEN5odG0kMQs75i/mVOhnkNLoQRqiaV3fitceYpzPA1jS5quh5JUWzhGJ02GMGE8sOamXEkZyki7BVE3h7eAMZGXoGyb0j03Wm7r9SnX1Gw8dBRsNzsFAhB+L6GU44RMpN5TboNYr6FmdtmATtG7bX0Zk3VAWjkZjLExXw5Z4+ShQ/JSdrXDqlFwLku/92ODNCJjd/NwJ0C9QfeS0/bzRRja4Nw2zUfNWbZqwyJbilYUASE5EF9m2cy1scodx37E64WNACheyg8zvi0RLaw4O30KPwFlXU3BqgLT2wNoGwjKQZLJ/uQD6lhpunElxCqsY3vgdHUNjldxKuiGU9WY3Ufvu3t3o0nfrHvkhN9zowYiE91OKO3a2bwgOGw5/uIS0uClwSD6RX4QTsIs2qxAzLqQUulj/1XrkDaIyNgp98JYbEEqHWtXXgpN0k+fWvPff4HtZDxUys8u+4UcHaYjx/xjsfBKHnVhiqIn19Sz/tzikgq/peOkmKK5o1L/WvR0VM581ahcLZ0J1/hyWf1VCzK9tdcAPyyOFTNCKd4NIaz1MyehYL/fRMEUDX1fn/V79ZxPSWt4keZH2myoyZGTCdt/LgRY/98ZM7r57/aK3MZ/LKjSjtuSTeMPrOGkJHdLDsi17QjBaCw/4PbKX6HOpC8nR5AziCMCNJNe3P1ij5IdPXbO7HpgR7uYQ9a8QcPawNfnTPAOE3OM4fm0EA8sDuRZ4HwCiW6copVgkPet4kRIVMCx869m9FVpH3S7b5rCVZEVcntN0zvYO2sAurxi7ylL0WNDhoV0XQRnrh6Gdt9pXCMO4txFdPx6kniQAMPRJqS0OC/W+O+/dQTF8RgEdmAW1TxsSb8SwDI4BF9vC+40aXgK4LXoe6Y+7GtGTim0HxQ8rMAOSApL/DxebT+E2SwkroAgdQAcNAKI9vFIF/efMQ4fzdw3XbxGO/yWGq+yyhUzmbpo5qDehsFFecR2l6//ZK0Sl0gXe138NJD8goK9DQyUHwdhDNnEbQRGd5qMZlrovGGS9YLTrw8T6/QFiiuP+lZrHHZfg2ZemqAxDZpMJBuZ6GhJlUIEZGN4hgdKZvp2COTvjE+O9R4oXQ1MTeNmxucOpmCg6Y5UrBML1C3rLPVQyjySPXqFsV9pqHdceOqpJrFh2fjmMG2bcZbMUVYW9VYW53ZPiekuRRnHS32Z57xcp3ytPl8sEghS4lk8Q9LUcPVYsU0rmIe11AsuuOnjtxuJNfGX79hvCw3oe5gWkVUyadi7mUlAaBX4qphlyAKK03QgXoDHv7lnf4kl9MsFdRdSjzMGZ6h3btMdVSKmIuqQ8WqzcZsfzxa5gZCOe+r01P5iNdeaUvyyrjFUHJV4p/tviOFwV2u1vXMFM+YdJHgmbMHzY3hyfjWhWfJ6lkkmT2bEs8pq+OkW4B/KhNm2BuglFxXBlI5Shbd7i1PMhBBG1biBMkt5yYM5CSx52s1PQbhX/L7Vv9J8SGhjzYtSRgOrmuSAV+F3AOjMrLNdoEdmo12HbEPVhw9Q1Cf4Sw8jOFBkNGQkNZhfah3+DKt5DtejbW5pJvxXwXx0ArhDoDUHdRIlfKCUBuYdhE61XMMi14sxYJ3nvPYbesOGsC8LmEmYt3qEA/dX0t2i+/e5dtP3b2uSX7eZxcN48nvTfd/KEXVu2ha30+a9XGJqTXWFedZOZv0D3A6b2JQ0bdG9WyrA5Ya4afD74SKGk911K3argwhlzDzucPQYd8nDZlkb/hrA1ddWyLZn/jcDWwNWrbO2NRbPKuugu+BPTIlDs8XGq5UMw0N8AqYVDg6F03e6kcHHM/VIQkNXmJSUlrJnPFSvXbSex53+V5/O3j8qzOkEp+BTmrk/vNZuoALHJwmbdyFqh+4CQhLlze6IsuJEnM1uAM4qwiu433OStQ8q+WbYQ7z/OLaY3nPGKhcz/fQYAWMxmtWxh8T8lLW6uSiEHpPDF14LSOnBNXRMd/p6h9QdCmrKdFz5OnTleFfbG/nN/JIY+noajf62eqa6mk+C+qSM6NdWpbZGnXGo7+uCjgc93oXjNoqJALu3JsyKZN578V6W9xu9sk6Aa2FfV39+q4vTbRHSdb2YfGfrGk7XR7HSMOpNXyQJkWMHlU0DqN2GAza1SQOabLMAS1UNAN4pg8aRTCjjbbVgEft5W1Qrg2kXg56VdZS2wwrrV12IXN+5SPoSATyUK3OwVnpzepVIFbmElbN86tGswxruIjmTgv7ukXgAY9tBcVQjmWyGWv7WB6lRcGyiaZqOZSTw/W+d0ePIeAGl7jlKTlzgqh6aviHK/CERumiL0LBjoJm7k4kqRf9MjAP25v5uxL78LNMdaPRsshmXhF5xFD8nqKnTIoWoIv9kPRQGA97WrMaGbmuI7WT1NSzi2LPIt4re0nKXVr7/06FqNBXUlxtNOuE2DFxWiRFfIGwm6Q2NWaDB8vO4tg3t2u3bRAiXm8vrsrHre9xYG0MXhz6i+8hZFlS+wEHQK/xQwJOSnrBkKD2eJLZ2em3LWcKHKALZrpdQ3AVNYdoPSyppFusnoQW8lQankvR2fvsY9i1a/eg1IMJXLuL5iz8VnDdLOfDyGPvGarxwDZXOcYSKAc8zkr69gHyuiC3LE5JlzTn5D5ivNgJTX7kXTwN6ibrKxrHfVjrcIX0t7kogEAhew62uGkmsj4Ohrftsz+WyRP6DHobd3Y7ZZRQQCMjyPwqtSfG2uPAU/kReIPnrks/jz9YjWUq9Od5e/E76lO6gwrO31CxEm9Zd/PW+PYL/1+M7+mF5WcsBYfldgEKu0VfWv4QKQKe2rEJIp4q/+tvIE9d8UgVenmw5FV8WqclC7ZicN2WadNCSn9SQ75/WkkhN7kt6ZDeNmiP2sIY6zgs6CtoNHr8LVP1mdy38y7vqfxKcAJoWfCpiknhIgMAQl4Pk3vKajkwPClKES0D8IU1yxQxbljaiZihILYyK5FS5igp1gfbqY+vXW8mpX4fAilcSE6sYThp1DcNAtrf3Vxp3iXmN2EQhCJLRs06mfOotE2ZYL+GuYXjNFLRbSRnxzZ3/qhfI1zogc25kPhhMobzyawxkj3sp9bUnc9C1LZzEpB0KnplJMs0tzve4s5Qti1gvMa256BARK3VAmxZ5dzSb3DbLWQrmMQzgvJGP9dj111C5aXmEMiSqHfmBAihnug9EKmDilqwZKRwfGGtVZWxndQZPie4vUf1WeGpAnx0RwrOo8s8Az+7HG39PoYMNSnWB8oF7y3kv89ksmh7qmvuESVBRraZQsuNlKBxaWWHu4Bbi/Yr5a5zvlHMYQGo4kWjXlJis2bhidC9k7Axe5gG94Ev36rkk3QTtPv37RppawG9ko6pyYYZH7Mnh4FNgq97udvCu9odktdMnQlWwU8qekqF/ehRJ9aUmRILVEbtrLZ14oEZmWGBKWlpxeivSWrBjFJ2PimDkyptzFVNkNWvXc1IdElJvb29uk3FLLJYN0PRmkb7s0orgdHkyYlqggYiabzZq2PUkR6UxLiLa0ZCGWliI5qiaZLLSE7CAzUtASJQ1oiZwDMq7gLBn/L0c5E5ZuVa6pMMwlFXvGqxxPdlWuqCjngopLYd7dh5ucTLxH+wabWJFtiXHR5GwKwXxLcb4wu2+q7VvX2TUVUINsFIsmpQC+iIgCFziNhWyj7GrrLeOrDJvPorj42nEBftn4e8vU2SWWFF+7edOL7LnzP9EE6VYVCV8xKNGyvwSNzZVZXMIuU0tskg/DktfrlSLJ37uQTPEZKnxgiZRttIaQ2IuRqbXtKeYBSVM2K2QBCUpCV98Sdz0goCQEbMnJP+vyl0TPLd71LC15jFYwZM+vOIv3+ZxszAveo6nPTXOwtCQA1fRFFgObcrioUaYR5s2pdaoRv/LN3FDjH3JcfJqD70n4kPS8pnzwmoNToFDwOlvCnY9AqAzwetrDTU4I3vj/thZRU9Z3Pc2e6xWirGdi6pENrp19KakoiAa/yduoFeA+SfpofOLeeGSCaV0MihSlDvrN7ARr9VKpFeW8X8UJ4rjQSghdK704rqvXcvvLaNb06RWe1mgnoikpgUIYZD/gIicCPUoJxnnKXAR8LT6MG+Q9tTi/5KTv0q2reVX7s0Q6xzb5O6Gfpd7ER+Sfrq3sJkv+DfJ/z+/jLQ439zJ77ueqy0cmdR944vo6jeiF0LeT15Bu5jLUoWhVKuXojHhi/M53Xc6MBewcapm/sklIgq9KfN+7gE5m4YSDOjvpqKKXYY6yJL+CKAQCKN85Mi3Rz5ZIAB4iUSiCaGrF485fRH4AZFjdPhTJhiMvGjLwFYWlq9GRr71zQ+tEvFF6c7pu+UCHfbvktm/T2P2FVyS/aNJAuL0ux85R2MZ0rivcnqSPhWJEJtFMOwQvy2ZhrJglUXNfwKv0w9YcvPqx7/isLALRH7nfMpeWUxVH7rhVfBjRHN5DgAB8OLChJuO/y21sMpkOnLwsm53Citlx113b5DnxQ5hGhTkJN2CRqMn0ODUikwAE4y6i8wvqT6GIubthlLcEeoEZUxo+I3owgiAGd6NEb1rwLhX3NNcEB4dIpdYcftsAbCkMmYIGgJ0RxZtjYxi4JAvIVyij6GrAbxYgDDcyPY4rUBAwIvkrciMYzSSrFNXB1xvWaKLqzuAzYHejaZXB1JrDrweAGRueJFmeM/Ae23omM0U1GsCl9zvEYNs5epFqLnHiZSf57+cyzr6LkKibjtrcXClEfDZ89MSk8Pxg/3nKi5nQDT1teel2TX++bNzDD+9VyIfaA/UN8VMjWTKE+ArmPGqr89WqJcGqsf5Mk5JPJQNblirI9IKxF4wNBXCnJ7FjJzh/1ggBkYxM1b4lkZCvTcx6s6n+GFRA1VCNOpmLARqu0ScjEF9E4+DAILJR4kjm7xVWlEq7W7TaWY0IKXWNkSHsrn/jafi/8ckzoF6KnQnhQ1LlKJ0xt9bVmgnL/6JoPrfx+KWtGSPtnk11CxHjzTIqEzJqzefqMGp6/Heg8aJmVz3KrzIda+igjrUaAwbDYs7RtEa3VO6uOnvqy0nVAwUVLYhDyxBOjOlV7Lsg3+roS0r119ELwYaeEk6EszbxEGzqS0olZKhGEFdLZQV1ecvo3FGcooqSUnXAig0VIypgSs8eTs17NK+/HVeMfUtL1eO0gtGwJCMyzpsCzgxL3aUPA04NzHyfr/03n2BF27K/ZtdmpaKlSX8hyDq1MbPa3wChCPaaw48p6NiD8TAMBwuvhlMeWEN/GJptOPM8NxmYVwb5JBlPQEvb35O5pwG9oG21bPLGkyfpe0zwg255va94/f9zkMANjWcOHrvyC5kywJId+6kj0HBfBBgsPDzJZtGE48aezJ0aWBoiT5yKnh4nGxQ9osLJuPiU/On5WkrlLuXWKK6SowWbxWPPnz1ZNKLhi0siA08cWJPF50/Pnxo3NFqg4s6cXmzx+QEfwzdY/mR6xIw/mZ6eTC8+PUecnkyPaBHOE+EE/sAVgJlpju6TT9u/vESfk2YN/MVlT8mJPSjyF5w9AJGzFeeSXwbn7Rn0zm7njOyPGxVe2uVO/L21+cMbE4l96LOY3+mCV49Qm0IExZCvzG72A2cPxrytLUGg8yv+DxQZmKmFtiUBbLckphYG+pVzZ9ZB7WAicrpKf3qwkT9Z+82vH/jaUOvR8OpbTw/v/piXLqINfB+WrEXviAbRPaYO3d6f9Ko3d5hPeIiqifQlfjyCfS0r8tOw9gk/UFDk/IRHKcKk/YIG/iAqqAcCqAUFhCH+QKa/paGZ+Ohp6FAgXQ6m/67KYpwOnOmbZhKf1kTiwYr44DDGZv1Bq9cvSf8tEtx+nBPzw4hFvqre9jSfFDKbh7IzTaeXtrPdTs4nuEad9Fd+eS+t2f+p++aeXnpYscPn07th7Ph6eCYcWI8Lt82ajGAmiyQxItySVxUbs2imKPdfKtgc3FGrN0rXLHXJMSlKJFmlmIVHkE1R579M0DMAveE3H2G0gCNQkHv+woO0KavmL5aY7kLiYsv34ORSJIZiL9I/Mie3I/l9VMVrLqhrki1JqwjsgBcIQr6+6buTpvVJsUFpX6Is9ijrqpQtM61qCeHXPfnOYzJNuTIbjt2sYgns65sDE+PNGHx6PHw2ylHcbvU/mPSbA9Ck3fKq654FGuyqjqULE087GvSMRwDAoocHfFdA3h3nqP+iHJrKrS9O1eEy37FF2LNR7/fVOb7RkXO65Om7tP3sHPPnH5A/JG/v0r//CX/BmZJrzKv16geXNRnkrCHqf7SP3N+/Lp2Z9rqJV78er850tz0nBSk4L3h7YimlMPfOZwAAxWr7lPZMSEmrUmhvDxdWHIHpRq+jvvZun/5eEz/d80S3+euHcYRuMZdj0/aYvnFI58zlSxuw7CS8CxxJj9TIK+xsp9LJ8V3KUjC9XW6bnlRRekd6Fjg6pKh0ZKeqa3mwSdHPkfa0BHM1FSSgSbgeaF0hME92/yx88FrMNQPwe9BNVU818WrRAABe9eTN+b2te6rGO4G77MKCR5kKKNAFa/i8/ZxXgoTfED5s+hZBryjAKS6gKSJzPIax3l4bW8d0yeATGK4OYea6Ts2gx0GXcSc0jWirkRrDuoTuvfj8prAS6xT3B04WWr9edMsPmKdknPvrwr38wLkSM9dSICBg5gwekO3heSP4TOM2Zkuub1klMXCdycrQ58JWexfEx7/p5NJJ8MdBUJqko/RdJgtMa0pwdGpB+lmsu9/yTU1DjM2Tu7UTr8i5VqYBj2X5nosYnAXtxWswDiUIjF2YFtilaLzkWXhJs6FRec9bbPkrYLyYl/JxmMe+pfCMB4EXi828MtuW4jbljfGJ8y6BG9+z3FW7uYWWTH0nLnSAVsPkBDN3DkLZUmZy9CH7qnhS5KAYgtl+peiBuPjkRMiEey1COReYEv8v39J49knNnK1RhFYbojC+Qxnqb2TvSlt6kRPdgz8frJlTgdvAfQdGI+H76bbbiHMG/KFsx13Y5YhTu8AxaNvT/MLwmj6qNjmZmpIiAhFt6D0WaZs1vl5+KMLtHk8WPmeYpamSTTktHiXFNKqDd2CJ42CzvJaF86JlAdg2woYVEXgT2e9ZCNqs5g7w4SBlCZ8oUkM4OdcVc+exHm076JzFgDrVVFYd4HWj5apXKvH3OrjMlhZ54ZeO821z44ICKWGdrxfxwnKNMIde57CRIXlInur6A2wW7ribh2j5WG6+ICWCWWONAj2wKH4bQhJb9dYRrhN9YOTuViwUBZiASoDQDyl0toa6Jv7uP5kXzj111yb6NzLQYCH+i8o8mTuSIE0Q96hlimOmj8G5pTje9S04W4pTd5+Hc6S49PRuuBkpLkRviptTfPEpphHeJTi/OLmbPtg+InMEKDrjautTDUb3c2PEyscc3InTY3cxPKceF3qswYbZx3imu0m61/rGwZf+zHeWtIh3kHT8cko+5dB97/p61otyMTlfL4ECTW42OEQJc7zItwWlGIE5jytSMTkzQFepwe1uQQMAVCuJ4BOT4la9cXECUQm4mZnrTTJLDObNzaDZqQH2lE4yezW0k5pGyV3okt0qegoJFQkibn1QUwqZPoaSpRTu+hZKJ6XY3edRLinlnt6NmpJSJnpTauBOPpN3i7/87ao3f3B5WLlUu4WN7nA2+Y19cAwiZ1Q+hRvecszuZ+r4OjfYmpkx37eu3biXeYSuOOKzceMrIHrcz/hj8mf787PvAQ+s4O9DW/uz8bwsuq0t3lsn75sXhT3yfC15b3E2DVRQda2x2Z2S9mZ/9xDuteZyfQa1q/N/T9TNvn9mAOw7NDWOlfcFSqVhIFVZIRAcboI5NChsTwgA4C0EncJDjIEIMPindhDn1Heotmn72l3sHO3QDvlAFGsC3SwHdUX9X3MGNSZ9ffso2XR735B8fbhT3vBF793ia89R4DrQ8aU4QxpvWdEQrfWzQQh6cckIAS5taRsUMrA+Z3C4EeyM+DjNaM51n8/fIvnpa0DFccLr6606wMByZfYRYIfb2gCAujFF62j9ZPB5wMgvzFu5I/DLDwLzGF0ka1bv3in8+TC5mhVdfTBWrPzlXbs6dq2uoWEuWT1XzvSsxOHLnxFCwguKnO/hTr1XB4QBbiOlCutJwnFiohLR8xeTJZk/B6HVU2rZBBFXJRD7K3NgIjxnHgjxH+46Z87kT2pdMDIJIb5TeejrLM/l7x7PW/1dtCr6HQxHZEMW0SgbY/UOWPyt62P0pcSH0s3SXGrLTeR/hD8l4Ie3I9ddr2/sIvAUjsArBNl9DeJC0E7fgmwQdNfnIbc0puzsrkRjUK72YMRqfs4E0HpIe9Cvibiai8FfvgNcrf/gJ/G3W2H1+BnJrqzJAvFnph7xV6sVzQrX1JeBO45ELP2Tg39k0/0ppMCFjsmhjxulQ3Leuj9zezSUAOzk7fttoP2wPR51+YPc2P0MIU35trMb9FwhHeQGt7uhHhqo1et36qjeS9ji9o4AoDsL2yv3eg07cz3qE1qfXvbdKSDtISg1S93ekMpr0H40z2/6MTWpNJP4p0fefzSFrMDS/Y6ZNhiP7+jbf6OT3Q0cyOrv7wsfO9Z3+/R9vFc5l9p9KFl361yVXPVVglN6JEIL7qrPJw7gCkMVQkWMyaX8Rs13uOqPyBNjrYv7S5IgAmhTnDaV0B3S7i5Z1FfzqBxfFXZWBBF5JxfczCL3fEcAMJVFpw73eodFu/+IExPguRSez4BfHq7sWq2dnnOrdyxcT+9Icn09XA6wn+MyPM/xzvbYaU69W9AAgJxkPxdcEJzL5ktEAcHdW+Bhf20Ypl+LmkluA4McKIvS7DJu8jf5naLdpKukgmjcxGaKS0+662twxGfw0XAYdjTUzN4v2Eb2+6nPZUX+FugPH4bRTdO9Q+/wQvyB2WOvJGfbOacInqOUhgbaoqxjwq/jL5ZASSjnw9si26ycPzBg3UFPMeZxOUNP0WFIzrjzc+ceCmsf08cd35U2a1qF1YqE7S2J+1U20+eUuC369OK8LQdZd5Iwnz/4RWYCNLWJW7gz0p50KeQq2gsUMjdgrvWbC6tq3bnJNUHiofIKVg3+oO10FpDFXSk7OIN/3ehoamySWRNkZWV723ipLIhPwNGyssdeIk2WefuxvEwJvKocNjlWKEkAIXdNmqVWDz57Zk1y5UtJ5NfMEJSsmx+++2C+s2pRiIfq793fbeAHRHuo4T79t4H83DMbZhxI7sOhNveY/7b5Y6s/AxkvVEzr/X6+APWmPQ4icHeo7aE88ikv/7YCaFs/qPPZHQFOf2kMrmA+xEnO06V6Zgrp5NasUOb3wbIoWHGp2CatsT2t2Q8bsNVOYUuqr3O2qBi+1KhumzOeX8u+KKivELUjPKhEzaFAyjQnkKguItsyOJyBEhU6PFfXIZWzFQwAUBtzZgLF/kppRixQWZjFqQ8bDMnhdubXlMzB/rzUoLnQw56WZG7p3UkHTe8EL8PsU5xuEbJHOAMncz64JedyZ7CdPs9V41dcmMFYqGM0xS4GsQZtVvo1Ov+FL90VOQ5uI6a6b/xCKbXHKVhKHGJipq1aHbtQkTc85IpIiw4JXWvL1biFIvPwwnfmvJ7hFU0fXvSjLY/nvJhowLwQx5C5TkvvRNsatruqbBwh4/4Pt4uwO309UfKZURgcug6Y3WgbuXs1UMw1pmRpJ122sltI5DrjJzbT+tOTfvOVyeA5rqP637vwOHX9E3cB2/Hfgb26amBvrv5xXAeAFBVh0ddHeU1TYQLHPVT0rHecfkhp75iH0g+lfxTQUyx8uEPRU1hHOlSkbMf5AQD6+V5BRLukcfGWIQ0VKcsZB4TAcmxyYHu8f5cDaw9Rd6kt1DTZ8VBMV4i6wOcSuqEHbn/SYLcDEtY0OKG3YXPAjXoX9hDcps9jrz3D7exrYPtc8vrOtot3bntwPz5aOvXq1dOI7yyiPgWqeS6P1Y+P8I/Znk8E9Zg/oHvHitq7j/jqlZE4wrDSMkSu92ikPnY7nWNIvIZ/l2cd77LiRCLoZtAVsqkcFPpwK3ncR5+2r6lTRtDNoBMGoOHOgBImtiJ4vIYRkg32cByEMTchFlaa6vC/wJR4Nbz7Duw7Z9+KCJ0KgCGO5Xb0hBEsvXCxUv3uvnP2PUuE8Ww6LK/XY7wi2bOpaH2elvNrIqX6hasriux1CgLTwu4LK7zNLBVQLxwwOPM8VnppQH/1JIAjgGbzabYSukaqnSVlyUbdQ6Lzrtpn6e6JJ0bDmukIAObQouJzo8yOI+i/TH1muyJ7aeuAq+ib5DU1juo5wsaO/XFAMS6ueJJ1JTxfo9BavRUMAFiH3dm6n525/iq7rERfqZc7/Qt179lBt1nkEV7/IG/q11lyk4ng0z4r+ttbHzMjvNJnx77m3xELqjTfqOudFp3rhRvScRX3QMpuJ1qYXi6YNl7zc7NWuUZs1GUGm5VJge0VrFcDWpJwkAEZj55k0cjH7h7jk2fHPCmLZVMCRK6kLGYNB+PefJylKsdiy0MewFLzce3M7Jr9+XhmcRnholm6+O3w726r1Qe/953Uk1+zff8XFSmnW3lV+nJTKpXIX33vBoCdv6HH5loHv4bHQYmdGYnDyOW5mM6uXmfUyV1F+V7hc9oo+RKZ6wEAAMc4dDyNMZ4IwVZBojjzUbRonk/jQQZ2z3owAAAdA9Qus8aLdjmd8VnEHWG8481rgk7B/nWUUEr27gCBCqVLJGQYIYhFIbPtYuw6ky18jKbGtdj0MZqpcMF2z/5M25lQx+Ol7WUQ69lyULu8G115T8QSpqr0p9u7Qmru0DVuuOko0tfa7QgBwHGDjlXh4dlLOyXRv1mUHr/wo8C5NsHN9RWLDNoC++NlN7gk0D04iK7t/7hoxGn29SqWaaSvSN7opyErqg6T1pPnlxFKu6GHB8PpwAEARpXJKT3MVcf7vCHhFRaiwKu3Tc4VaKMkar3WDADYES2yj5U9Ga8E2WK9bzL414WF1/KhdxU4yh/TgGj3X6UJWLnXT1E01SdHUiem1tpkxHRbl2maxny+g8ytve/ZbrY7v3fLyG5R+0MwHkocHSkelwg+G6nULxjBREdCBp01DPjoAm8st3ImexPyqLoX+ZCpqrb+m6piCa1KH97gzOOHf/6vrofZ/815yD3ZQaWS3tM/b670vQNL/X+yJUOkXoG0GRT5PfdKowVI5IrgggTSeky7UpG/4KnQLWMiaZOiPXqON3Pnf18N3i1vIOxhk+nOglMkMIHhybfchkjWRsmwaFq87qzkPJ7QlDNyBM1z986hkBqqSLgym9Wv8tjWePDwKjP+TnnA6kmeRwCnN4A0lVAKqXaWlOU1op7aCzp03lDTgfqmsSQNd94kANhBV/WjD413Q5f+60J4Qs7hF7MjSHrvS+i293qN6tCzmHlzdLCfiwFFuuGUwgCAQ1siNsx88GvblvPB9+q8yEfn7PjXgxfFjT7A8djqjEHGbUuZy2jX8hxEe1zwBCbDz7fHuY2BW1gPBgBskg+xC3aqEpl5XIIQDmcs7ezuM71pzxuEGMePzTkLFMikbWfx9Ii9MwlBUADqU/UxqCvUN+hb0AjqW4cLaB6NPoY6oIYG6sJlMGd6oCHlN58GfmuEIt5z2igw45XtWUnQShZXAgAAF6DjdoQCzAlBkSBNwZwN4IxAVwzV6AgDAFwLpsteLZcLv2V0knQhgAt4KDj588SDJDzs7gY0fDsm0ZUrdDmwUVYnQaa4ZAM+Yq4RJzN1YyMQc3Iu00Q5T7gwrY2ejsXO0MPCWU9vy9jhOAghUbCEzSL2hkuRIzcwnS6NKWGAdGaL1LbjrHPRf1ubF9WjFUvax6YreXv6aZZKPziXnzlXtNcbaek0ek3JQ01Ck7Tsn8P4C6QFPf2DtgbMDxs+qj1I41kFdpy3kX+TiT717DfDLXV9MyaDUZA4mIh90pdROkJaP5I9vPSg6HAUxNV6MN2qtSlXzGHS7cIaQpe9IXvS/3n3kGe7r0/dumlUoZc2nAbufEdB3xaR55axY+kccFUdOADAVcND2xcsPIAV4kQaXm0jAODZ7MEYGANeawYA0JTd2pM1uWww1t1wvzsV3x8bdPetB50r1Oj1xqgCOHgeOYVGgNufdMhVESTuW4e5oSt9jRFBd/UtZhVyt8IFs3mhTUAc2Rj3ArFJGWwLOnjOeOW+6pAgSN1EavSmohZptVb09BTszDW196RTBE0JBGszlzY0q1or+biPTVF4JwEAYMrXXSw4l5+VV/TXjTrplE6mhOOEvSiYTnnOuB6ulVkVA6O+a0yfKzZIum0JbHhVHrfchsx4o3RiZG9vsN6FBToxDM9eBMK716lfHm69Bp3RZOGI7n6GcDneis2IMaVTL8ZyRNhz56d6LG/1JM8jgNMMQBwR5DjE2llcli6IHmTR2UVfbaAh7mRUiDz/9hEApGLpuvpxFp12w5z+qy5opm92i3eMwT8b6bO+FvR6DGa8rn12zax3P+DEyUEFptlAn+1jAwNHe6nBZGVSJreRi1cchGWLkmkHeOG0xe2byY8OXrPat45UUEapdQKmx7M0KHiYWmf6yt7AU42/J27us/Gqjlcj9roLPmXrHnieFdNVxWOkV2Vwlcsn5dHy+yAo/qTOY0HUHw180fd/9f23N845uqV+vl2H5qljZ3I/IR1Hc1r+6dNu+pR/seJTHxXv7WLb1G2yyy4b4WNGD4iboUQ4l+QyeivIK7OJU2nJ5lqgqMHKnacpUbbBQlBDiRDR7WSAQLSdC1gO0UEEAztiTrEdIzG4ghmW6cHbpPem24NvrJn13eX3kN675c+SvDkb0dVaAADgCNWwOxMomAnuzQ4nO8c5wTwCkMHPrXOcSkbtXA0GAGwy410Bf80ZXy3MWChM0ksJF2J5IErhTIueEaVuY/eJxNadNDq4+Mup7oV6KsVCoLP8A02DTmbYaNp2LkOh6YxkGDp7HL7j2OOxWi/YiVxi7SVR1aEU0wgK6zeKIJamOyAAyBqmKA83jbZ2wv6lGybtWE4LlXEWY0N3u+O5g7KE7kgo1ez/QoQOel29adPWCm/h1Wl8uRfEx7pJ5+Izclm3ABI1dnQlDgBg46yDIdd464tJ1+s4XjUM8AoMCesURUeevQOJ7TIDAMSCwX4e4yvw4bk473crUgp3qLvk5tguQUUPG7y0/l1DzLRrKRvgJqV8opvWmDWQ+7kUHkyv298aiKYgURFi4mw0DVnrXFwDiRIM7hMbK44GI7Ykg0cHln7BpDR0N0sGUYRCri1RYG4bPbd8F0X1otBLaHCqfFEHi6ev6yMAuCzYMXvsHmaFOHXXy2k4JJlcY9KgzTsvSiZglptlagnurp8Kq8CWe6PtGrC6/n7bDebgrbi6xcdouCmc/mpVGW6B6grCyR/wl/SFBHCiB0iuhLxIvbOkLadZ91DosrOiUHsySqWhZj8CgCW6ih7HeqFD46AQsyPkcyifcZbQc9GwmgD0H+h4U/psx+4ZgLSTQwSGw8/HJWcycAbrwQCAuXw9V82I9atkUQqnOB0rovc1vE36x16u/lGVrxblUREZa62OVrRq2Vmb0Fj9l+wq+fNuf//xdz72aXgrr9HLQHnsTlcNFSE1cjDdJmfK86sagzwG3G43GABwpRiAPX8BZ4GXLC67Se0CM/Ln7RJuw8N+dmAJ787NQFMiJHPQNzZm9NTAENZlth/eCZEEA+ZorCF2WEVjszKWBcVnGvCVbtx6/zDh7FPQXEOKzjiqfzLsDoGQD54YCzJnnH1hpdcRafvCvlBQBO6L7Z6/CZixq3IqRimOnqPCdWEAwND46F1wBeDciNNipZSijT8vbGioJWxq41y0PA9Y8u4MfKky/GUNLbCQQXBSTmbmHE5UcS7LhjEEw4pwU8HOlhvuJKDdGtLk1LXDI0/8DGb/EYttmd+khTn+/nv2C6i4c3xKDavab4S2uFDdAQEAvLAnDFHc0LSkuY0oXNiylV1/jzHvawlm737K4CU4+NBzbPweogJbMV6REhroijWeS94uE3fR2AWlqgG95WdpKNkSB4roxsPpTpbS/OSEY9cH2vQk2BefEWs7gl51nQAAveNY7UwXvtvnVM7CvoxLmAjqkYXaAcnJ6tECKTLbKqjtLjMAwEs42562a4BOyTGWAN3ePxch93zoHgPVeWN8Axw+j8aNttJuf+HtpkzlBCTe3eCknc05cC7O5c5ga8OFVA2d6oRGQZtOEUFwwIEhnjsxYTDPw1U5fpPaJcO2Zczx9+9zoQ8P4cBNBS0ioFryQNji+nsgcJXramohchxBt5Qnq94lxu5aAQDAXJCTrV4YaYi7akC2XbyhLJpoX2N0TRtHL4qnwHg3kZTX7ENn/w217NHv9+HWf+7BZi/I8eSTwpDfj/vk4PIcHtWHMJceaeu2QIg7ZfEFatPCcKXgLcfBm0bwrfLSE4vkV1H9lAaUi0uFNiDayhC9hbogDzbzfnbrwvPsYqvkIc2ulNXVYABAsp+rtQmp3szDmbooHYc6PYNekMSv2xi/kqHfmPU+9a6LyNhnd3yiQ3vTGXaf3QlgE1xwTF+hq+ib2Rbqal0YAHDt/jEVf4F0IBGLmwy8DFi7Re+yHT4Y7fmxVbRAmVxTMqj8tNKzyT2YEhcGIWTX9lwcsZA+hj1BrLRzIXrhdESsoWAgsK520sT2y0jRs9nCnpOZfa2X/Bx8xsfMj3z7d0uHv3TR5ht+RjqaQRM3QSzlMYfxljEl+wpK4PYcx/dR5rer7yGPx3XPDIY5A5izC5wtXMJVnFmY/kLF1NY6M0McA4NuCm4y48EX4ORHj26tzGydnS+FmzMXkKCBPsv7UANzc0UYADD5uq7qiHU3mnRayBGYAcxyONd8se7HvrTnTYXiGw97ZtxPetJqMxeqGjz8vQveClHnhQJBVJ6lKyHRfhD4hQTWhhj/JMTphYa/+1xrZi6VMBg6Vw9LnoB5Fqpm+qnaFfsZfFp+7WbraeGPOc6t7COYp3BhCLItQ1tIH7NoQlvpvmVhQFvDcGERoRfbAdBqkOTat9ogdnXibuxDDzZDVQ5BVIW4nmoRJ6WsAs1lGONKkVFJiuFpbE97/1wFyKhuN/BtOE2OeFPZMdBl0T856Hq8uZ2CeJ3C7TiLxtQ7DOyiQ242cDNSF8ig54LixAFmp61tw8y44qnlE5i9TbI1sltGyTv78FYUuDes1Jj9G9EFHu2aM4U/97rSr9TjWOr6+coHEXovBEQx6zEJdMgkwJfsWaefF+jJGj348gbOPhE4qPzbQIXtAfe0SiDKIr5Vf556vfna5OuJ9ykDAd9LXrePb/UvBMZMn5/jX/QbkNR63uKebfK9133eTSgXTbw/U2WxMJ40c4CEbp+6GzWvILDeZFFenE722/jbBH1FVbzGSm2nxtoNgOvYAQBAaJyxL+YA+gJOExaedYJhyeqtI3Ix7RTKWmsGAETEK7W0jUGQfGwGFNT6NwEVeNGjZbxw55miKhTwVQjzXFoIVPh5xViMVcBnx2J/zo55fy7yZM0hdKtP+zo7wuOuIH4hwrRK6T5OEnYBUCptb0Io6HEuUY82DDFAwBBhp1iczyvMbH3i57Bm50EpoSeXsaWgZfEXHZlhcOKN2CqO8pw5L4RyAh0ghwaNa4sHYFiiZ93ANjdVFgfYmjCji6DC1Qa84SJbFgCArjHV/fbeDW4ROjbcUFdmk2wKEMfaYFQsyNseQkkdoGBrs4q3IrGq47rr7nahl2hXFBC9jJ19Muhjtx8jbT51xD8bcTphH48HdVf3X7zGA/szYCfljGdTF0fRdPN83a5o4FXWgwEABxnY2sb6Ba5tUTTNKeT30dwe/VRd0i/+ekf2etfPrnFoc0KStMfjlI59U4Grekddh7UBvBGDUh0AZ35OtYJGBpK1HgwA4MmA8FoMBvZNnVzq5VGlHcbH+alpm8+rbv+JgXVYjmJOcecicH41dfOJ4BvME7OQcNNXSSp+JNxC/t16PNhOLA2bwpt5XBFU7j2dmog9AYcUhKLiKdvgLCUVWZv1mD04PiND5zGDuTp+52f40K+ycKj2j1KT3xjx9YQWNJgwrr4RUk0XBIkoJyMNSuxb5DqUKBhkdOHSWp4LgDRkmB60fJaxGo+3soqPiuq0kfXCvDkVP7wJHXNIuKO4MX/2qOuexgxI3DUAACQLXMnqXHrCHQOuRwreNgk7Fz4TApPLyHOXV6+U6ipkdTUYAHAyW8Rurmsj9y2kIGcZt0QaVUnu1KK33RVjqC17tWBlopItgzUsOmeMUl7U7AsH2lURSqXDjAg52TH2dFQ5mTOg49i5nAMddwTDedDnuwDo5kr60g5obxuQmyWJTLoOlRwrkPLGEPvkUqgaXLL9ruH8O8P5t4XzqxjnH8S53AhTav2GsyaazojyiJHtdxXn3znOvy2cL1vC+QdxrqYEK7VOx5nIXHDIYEi3NAn6t0bOQk23WzF1bRMpwm07CyK9AgaxoN6YbEC8XOAm+JgCyi3npwFvNzv2d3foCNT+UI2q+8bUgRZ599RHzsX5ezd+pKZMNWFeu+g6XQTtaB3gVfqGfNpj9c4Hje9Qny2WqTcVqNr+1WkY5Vcj73dVxMVrci0XeC2mtUf7BZ9T0AiPs7lu66I1nrJ1U4Cb1wZ3WOH/8ZsO43YviwYmlIRLsm9VOwtefRLMnczeI7hUhxkAcAzEFgbaiCFgrUXJdZ8Zxyn6x9IU1NQnr2b93IpsKqym9e9uXNOGvetKpoa5rFC9bAxx6nyuHErnHWWhQqqwSZncYGZPruzQp26k0/ZWylinboPzGJfx42C01C/+Cy2vcMp7usoxSn2VfmfQZa+HvZ0NMSqN0IJk0kOANhqt+prJHDTucy4zvec8RGN2uDDDmvSMGDDNCegZXxA8F0FbLloE5wZIjtShF2LiTYW7hnii6FGnQreTWr2hijEEpYQGsi3YTXVr0tBc1wIAgEFrdVPZFyG0eMRVy3SDGFwrcQd5qjYY3wSamfaibKk7yaAFs1mtmYlW8Ya7k5BusepNoq0USLcovlm/FZl0G7umxK8POm7+LfJIipE7SxbhC5A69fpD+WxOA5/fa4vS6J8nAr3XpY87nwwIaGWCnQeXRRFci6Ffl5L1MNejNWEAwLUMEMDWNVWNcmE09R6hh/x162HgFyg+pV3QUVVqxc6AKniBNJpahzXj1ohVVRVUJtqtoDc9vBkFXhAGACjHDi4xaCKLzdnscHVeO8Ob2enailqlqFE3Gdzy8JbzilmshOxuQ2aixMq4bZiKUhm1i4VSNxo0XI76sgJPHGiOOGrBvNVMwTzGO8+tl+t31UsrCwONOtr1AwDANKOxPNMoVHNQRIMqtPVSjVE1z7UrhvSr6s5aZaDVSYpKjXVsw70F1c5W5NKlyozm8jwps+uV8MrseBWFDDViBDZIgoW46zO/oc61zApPdC4XgCcJhgv50sUSB1q5zt7Ym2rGRjOpNSfaA6eOSx1skHpIVumGW00ikU8C3949lqeOIUvPKeeklrBhSb3BvvfYFdnHilqecFf2To/dpV3auC61XA9mKmpGIA4Npk727xDE9rXNWTS77SxUBDvljKVFq6u4G2/HuPI8Fu6O+0MV+irn3rlh2pF7SOXWF2yE88V5BzB1XKwFy4ip0+768UquW38huIdcbAAOWiqkrAMAHCCOERBpGGCl9aAQaY9chBts0QwAOCyiJ9sSFGq2DdDb/+riv96xuCTaJqnF3jH61s7/4C/g30BjxyzTOZPV8VR82rM8wdReEHgpZl1/Hm/CVXqS89cqh0/wYdf3B0nVRgiPnucvWclWlgrJqpphJBnQKnczNGpsX0aonQbDDvikjL07znQLbjsM3kKBXXnesBcUIXUig4O+vpya6I7zADtoEpno5roqNOjMjTk0icTxM11wb6nS7MhJfGTgzbvcuQAADLb2/p+NIK4ePzsH95YK9IhaNB2MJB+HVcf/Ccv6XmWX5xvW1cenJz9aL38vfthXYaFNJl0FXqUVpXe8J3W4nNY1K9NgCtfeK4JibNGwbv8bqG1rP9tbDxsoNP8duEp1udO0DYPfALj1gOAzNbesDPXqDkqZ8Z/N4ihicXQJFa8LAwB2iLq5fgA=","base64")).toString()),yO}var rAe=new Map([[P.makeIdent(null,"fsevents").identHash,$ae],[P.makeIdent(null,"resolve").identHash,eAe],[P.makeIdent(null,"typescript").identHash,tAe]]),w4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(P.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=P.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:P.makeDescriptor(r,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},B4e=w4e;var BO={};ct(BO,{default:()=>Q4e});var tp=class extends Pe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=P.parseDescriptor(this.command),n;i.scope?n=P.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=P.makeIdent(i.name.substring(1),"create"):n=P.makeIdent(null,`create-${i.name}`);let s=P.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends Pe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} +`),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let x=typeof S=="string"?S:S.path,F=K.isAbsolute(x)?x:K.resolve(K.fromPortablePath(s),x);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} enableTelemetry: false -`);let l=(m=this.packages)!=null?m:[this.command],c=x.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` -`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var Q4e={commands:[tp,Hu]},b4e=Q4e;var vO={};ct(vO,{default:()=>x4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Hr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(Hr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Hr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:Hr,fetchOptions:t})}};var S4e=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(Hr)}supportsLocator(e,t){return!!e.reference.startsWith(Hr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Hr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:Hr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:Hr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S4e}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:Hr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jQ=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Hr}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var GQ=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(Hr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Hr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(Hr)?e.range.slice(Hr.length):e.range;return[x.makeLocator(e,`${Hr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var v4e={fetchers:[jQ,UQ],resolvers:[GQ,HQ]},x4e=v4e;var xO={};ct(xO,{default:()=>R4e});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(P4e(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function P4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var YQ=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var D4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new YQ;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},R4e=D4e;var PO={};ct(PO,{default:()=>N4e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qQ=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var JQ=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var F4e={fetchers:[qQ],resolvers:[JQ]},N4e=F4e;var FO={};ct(FO,{default:()=>T8e});var NAe=ve(FAe()),RO=J("util"),ju=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ge.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Fr&&me.isTaggedYarnVersion(Fr)?`yarn@${Fr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} +`);let l=(m=this.packages)!=null?m:[this.command],c=P.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` +`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=Qe.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var b4e={commands:[tp,Hu]},Q4e=b4e;var vO={};ct(vO,{default:()=>P4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Hr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>Kb,makeBufferFromLocator:()=>SO,makeLocator:()=>QO,makeSpec:()=>iAe,parseSpec:()=>bO});function bO(r){let{params:e,selector:t}=P.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function QO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Kb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await Kb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var Ub=class{supports(e,t){return!!e.reference.startsWith(Hr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Hr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Kb(e,{protocol:Hr,fetchOptions:t})}};var S4e=2,Hb=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(Hr)}supportsLocator(e,t){return!!e.reference.startsWith(Hr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${Hr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=bO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(P.makeLocator(e,P.makeRange({protocol:Hr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:Hr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S4e}`,o).slice(0,6);return[QO(e,{parentLocator:s,path:n,folderHash:a,protocol:Hr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jb=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Hr}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var Gb=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(Hr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${Hr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(Hr)?e.range.slice(Hr.length):e.range;return[P.makeLocator(e,`${Hr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var v4e={fetchers:[jb,Ub],resolvers:[Gb,Hb]},P4e=v4e;var PO={};ct(PO,{default:()=>R4e});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(x4e(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function x4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var Yb=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var D4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new Yb;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},R4e=D4e;var xO={};ct(xO,{default:()=>N4e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qb=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var Jb=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var F4e={fetchers:[qb],resolvers:[Jb]},N4e=F4e;var FO={};ct(FO,{default:()=>T8e});var NAe=ve(FAe()),RO=J("util"),ju=class extends Pe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ge.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:P.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Fr&&me.isTaggedYarnVersion(Fr)?`yarn@${Fr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} `);let a=v.join(this.context.cwd,ot.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)} -`,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${x.stringifyIdent(n.name)} +`,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${P.stringifyIdent(n.name)} `),!i||i.cwd===this.context.cwd){let u=v.join(this.context.cwd,St.lockfile);M.existsSync(u)||await M.writeFilePromise(u,"");let h=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(F=>`${F} `).join(""),p=v.join(this.context.cwd,".gitignore");M.existsSync(p)||await M.writeFilePromise(p,h);let m=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(F=>`${F} `).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,NAe.default)(B,t.get("initEditorConfig"));let S=`root = true `;for(let[F,H]of Object.entries(B)){S+=` [${F}] `;for(let[q,_]of Object.entries(H)){let X=q.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);S+=`${X} = ${_} -`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=be.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var N8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},T8e=N8e;var NO={};ct(NO,{default:()=>O8e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[VQ,WQ],resolvers:[XQ,zQ]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,TAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let x=v.join(this.context.cwd,".editorconfig");M.existsSync(x)||await M.writeFilePromise(x,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=Qe.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var N8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},T8e=N8e;var NO={};ct(NO,{default:()=>O8e});var cA="portal:",uA="link:";var Wb=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[P.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Vb=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var Xb=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[P.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[Vb,Wb],resolvers:[Xb,zb]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,TAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${u}, next tree: ${eE(a)}`);let h=KAe(a);if(h)throw new Error(`${h}, after hoisting finished: -${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,G8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let N of O.dependsOn){let ce=X.get(N.name)||new Set;ce.add(te.name),X.set(N.name,ce)}}let Z=new Set,A=(te,O,N)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:N});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let N=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!N)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)N.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: -${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},Y8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} +${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let x=t[S];for(let F of B){if(x.peerNames.has(F)&&x.originalDependencies.has(F))continue;let H=x.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(x.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},Zb=r=>`${r.name}@${r.locator}`,G8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,x,F,H)=>{if(u.has(F))return;let q=[...S,Zb(F)],_=[...x,Zb(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let N of O.dependsOn){let ce=X.get(N.name)||new Set;ce.add(te.name),X.set(N.name,ce)}}let Z=new Set,A=(te,O,N)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:N});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let N=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(xe=>Di(xe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(xe=>Di(xe.locator)).join("\u2192"))}if(!N)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)N.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: +${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(Zb(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>Zb(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` +`)},Y8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,x=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:x?x.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} `,l+=t(u,s,`${o}${cOAe?` Tree is too large, part of the tree has been dunped -`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ye);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else N.set(Ye,{target:G.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Te.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Te.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(Gu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Gu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),N=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([N])});else if(ce.dirList){if(ce.dirList.has(N))break;ce.dirList.add(N)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var GAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ +`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,x,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>P.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(x)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let xe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,xe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=P.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(xe)){let fe=Z.get(Ye);if(fe){let re=P.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(xe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ye);if(re){let de=re.target,Ze=P.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,G)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(xe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,G)} conflicts with dependency ${P.prettyLocator(e.project.configuration,Ze)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(re.portal.name))}`})}else N.set(Ye,{target:G.reference,portal:xe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(x),ye=se?x:v.relative(l,K.toPortablePath(Re.packageLocation))||Te.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,xe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Te.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(Gu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:x}=s(d.name),F=x?[x,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Gu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=P.parseLocator(A.locator),O=P.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${P.stringifyLocator(te)} and ${h}/${P.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${P.stringifyLocator(te)} and ${h}/s${P.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,P.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),N=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([N])});else if(ce.dirList){if(ce.dirList.has(N))break;ce.dirList.add(N)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var xle=ve(zr()),kle=J("url");var GAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_b(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ `;let o=0;for(let a=0,l=i.length;a"u"||(o!==0&&(s+=",",s+=` -`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_Q(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` -`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} +`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_b(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` +`),s+=t,s+="}",s}function _b(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} `:"",`/* eslint-disable */ `,`"use strict"; `,` @@ -633,9 +633,9 @@ Tree is too large, part of the tree has been dunped `].join("")}function aze(r){return[`var path = require('path'); `,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); `,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function jO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(GO(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||GO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s[g,new Map(h.map(([p,d])=>{var x;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(x=d.discardFromLookup)!=null?x:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eQ=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(GO(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||GO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;sparseInt(r,10)),EBt=jr>16||jr===16&&Fn>=12,IBt=jr>17||jr===17&&Fn>=5||jr===16&&Fn>=15,yBt=jr>17||jr===17&&Fn>=1||jr===16&&Fn>14,mle=jr>19||jr===19&&Fn>=2||jr===18&&Fn>=13,wBt=jr===20&&Fn<6||jr===19&&Fn>=3,BBt=jr>19||jr===19&&Fn>=6,QBt=jr>18||jr===18&&Fn>=1||jr===16&&Fn>=17,bBt=jr>=21||jr===20&&Fn>=10||jr===18&&Fn>=19;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe{let G=JSON.stringify(ie.name);if(ge.has(G))return;ge.add(G);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let G of[...ye.get(ie)].sort())Ye.push({name:ie,reference:G});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function N(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tb(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let G=_(se,Ae);if(G===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),t}var Ele=J("module");var[jr,Fn]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=jr>16||jr===16&&Fn>=12,IBt=jr>17||jr===17&&Fn>=5||jr===16&&Fn>=15,yBt=jr>17||jr===17&&Fn>=1||jr===16&&Fn>14,mle=jr>19||jr===19&&Fn>=2||jr===18&&Fn>=13,wBt=jr===20&&Fn<6||jr===19&&Fn>=3,BBt=jr>19||jr===19&&Fn>=6,bBt=jr>18||jr===18&&Fn>=1||jr===16&&Fn>=17,QBt=jr>=21||jr===20&&Fn>=10||jr===18&&Fn>=19;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tQ=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let x=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=x,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe{let G=JSON.stringify(ie.name);if(ge.has(G))return;ge.add(G);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let G of[...ye.get(ie)].sort())Ye.push({name:ie,reference:G});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function N(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tQ(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let G=_(se,Ae);if(G===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${ge}" Required by: ${oe} @@ -660,7 +660,7 @@ Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tQ(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} @@ -680,7 +680,7 @@ Required by: ${re.name}@${re.reference} (via ${oe}) Required package: ${Tr.name}@${Tr.reference}${Tr.name!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Tr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). +`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Tr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=x,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). Missing package: ${G.name}@${G.reference} Expected package location: ${ho(fe)} @@ -692,13 +692,13 @@ Expected package location: ${ho(fe)} Source path: ${ie} ${ye.map(fe=>`Not found: ${ho(fe)} -`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=yr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var jBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rb(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,yr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new bo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Te.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(Bn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!bt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!bt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=be.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function Qze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function bze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:bze,setupScriptEnvironment:Qze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,kr="node_modules",ib=".bin",jle=".yarn-state.yml",Yze=1e3;var nb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,kr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function xe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:x,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return xe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tQ(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=yr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var jBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(Qle());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rQ,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return P.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${P.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rQ(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var wze=new Set([P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let x=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(x.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(x.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(x,e.version)}let p=c?rQ(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let x of e.peerDependencies.values())B.set(P.stringifyIdent(x),null),S.add(P.stringifyIdent(x));if(!o){let x=P.devirtualizeLocator(e);this.virtualTemplates.set(x.locatorHash,{location:nM(this.opts.project.cwd,yr.resolveVirtual(m)),locator:x})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rQ(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Qo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Te.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var Ple=ve(Bn());var Ju=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=P.parseDescriptor(p),m=d.range!=="unknown"?d:P.makeDescriptor(d,"*");if(!Qt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(t,m)})`);return y=>{let B=P.stringifyIdent(y);return!Ple.default.isMatch(B,P.stringifyIdent(m))||y.version&&!Qt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!P.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let x=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&x)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>P.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${P.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:P.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=Qe.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function bze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&xle.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function Qze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:Qze,setupScriptEnvironment:bze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,kr="node_modules",iQ=".bin",jle=".yarn-state.yml",Yze=1e3;var nQ=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,kr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sQ(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=P.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:P.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:P.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=P.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=P.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will `,s+=`# cause your node_modules installation to become invalidated. `,s+=` `,s+=`__metadata: `,s+=` version: ${Hle} `,s+=` nmMode: ${i.value} -`;let o=Array.from(e.keys()).sort(),a=x.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` +`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` `,s+=`${JSON.stringify(u)}: `,s+=` locations: `;for(let h of g.locations){let p=v.contains(r.cwd,h);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` - ${JSON.stringify(p)} @@ -707,10 +707,10 @@ ${ye.map(fe=>`Not found: ${ho(fe)} `}if(u===a&&t.size>0){s+=` bin: `;for(let[h,p]of t){let d=v.contains(r.cwd,h);if(d===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` ${JSON.stringify(d)}: `;for(let[m,y]of p){let B=v.relative(v.join(h,kr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)} -`}}}}let l=r.cwd,c=v.join(l,kr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,kr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,kr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==kr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===kr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,kr,ib),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(kr)&&l(c,kr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,kr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Gle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let N=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of N){if(!O.innerLoop&&ce.name===ib)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==kr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(N){throw O.innerLoop||(N.message=`While cloning ${ue} -> ${te} ${N.message}`),N}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!1});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!0});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),N=e.get(ue.locator),ce=N.target,he=te,Pe=N.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,N=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=N.target,De=Z;if(Pe===De)continue;let Re=N.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,kr,ib);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,kr,ib),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var ob=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nb,ob]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>ab,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):ab({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return ab({configuration:e,type:t});let n=i.get(t);return n===null?ab({configuration:e,type:t}):Co(n)}function ab({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lb(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await Ab(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lb(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`}}}}let l=r.cwd,c=v.join(l,kr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,kr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,kr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(d,m),p),B=P.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sQ=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sQ(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==kr){let B=await o(d);for(let[S,x]of B)h.set(S,x)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===kr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let x=e.get(c);if(x){let F=v.join(c,kr,iQ),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of x)q.has(X)&&_.set(X,W)}else s.set(c,x)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:x}=B,F={children:new Map,linkType:S,locator:x};if(h.children.set(u,F),x){let H=me.getSetWithDefault(o,x);H.add(m),o.set(x,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(P.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(kr)&&l(c,kr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=P.parseDescriptor(r);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=P.parseLocator(r);P.isVirtualLocator(t)&&(t=P.devirtualizeLocator(t));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,kr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Gle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let N=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of N){if(!O.innerLoop&&ce.name===iQ)continue;let he=v.join(ue,ce.name),xe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==kr||O&&O.innerLoop)&&(await M.mkdirPromise(xe,{recursive:!0}),await ne(he,xe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,xe):await M.copyFilePromise(he,xe,Ule.default.constants.COPYFILE_FICLONE)}}catch(N){throw O.innerLoop||(N.message=`While cloning ${ue} -> ${te} ${N.message}`),N}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!1});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!0});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,x=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),N=e.get(ue.locator),ce=N.target,he=te,xe=N.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=P.parseLocator(ue.locator);P.isVirtualLocator(De)&&(De=P.devirtualizeLocator(De)),x.push({srcDir:ce,dstDir:he,linkType:xe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,N=e.get(X),ce=P.parseLocator(X);P.isVirtualLocator(ce)&&(ce=P.devirtualizeLocator(ce));let he=ce.locatorHash,xe=N.target,De=Z;if(xe===De)continue;let Re=N.linkType;for(let se of ne)te=te.children.get(se);if(!ue)x.push({srcDir:xe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){x.push({srcDir:xe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=Pi.progressViaCounter(x.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of x)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of x){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,kr,iQ);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,kr,iQ),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var oQ=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=P.parseLocator(h.locator),d=P.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nQ,oQ]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>Pt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var Pt={};ct(Pt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>bl,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>aQ,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):aQ({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return aQ({configuration:e,type:t});let n=i.get(t);return n===null?aQ({configuration:e,type:t}):Co(n)}function aQ({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lQ(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function bl(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await AQ(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await AQ(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lQ(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function AQ(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new bt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=bt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gb.identHash)&&!o.peerDependencies.has(gb.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gb.identHash,x.makeDescriptor(gb,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ts.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>Ob,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Bn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await Ob(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(vr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Ob(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Te.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Te.root,o)),a!=null&&s.accept.push(v.resolve(Te.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Te.root,l));for(let P of c.values())s.accept.push(v.resolve(Te.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Te.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Te.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Te.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Te.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Te.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Te.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=Lb(r,e.accept);if(i!==0)return i===2;let n=Lb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Lb(r,s.accept);if(o!==0)return o===2;let a=Lb(r,s.reject);if(a!==0)return a===1}return!1}function Lb(r,e){let t=e,i=[];for(let n=0;n{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await Ob(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=be.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function N9e(r,{workspace:e}){let t=r.replace("%s",T9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function T9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Gue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Gue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} -`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ts],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Bn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Xi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Xi(Kb)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=be.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`),i}function lQ(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cQ=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var uQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!P.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=Qt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${bl(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gQ=P.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fQ=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!Qt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=P.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Qt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:cr}),a=new Qt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,t){let{selector:i}=P.parseRange(e.reference),n=Qt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(bl(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gQ.identHash)&&!o.peerDependencies.has(gQ.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gQ.identHash,P.makeDescriptor(gQ,"latest")),t.report.reportWarningOnce(32,`${P.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ts.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>OQ,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Bn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await OQ(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(vr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,x)=>{d=S,m=x}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function OQ(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let x of D9e)i.reject.push(x);for(let x of k9e)i.accept.push(x);i.reject.push(t.get("rcFilename"));let n=x=>{if(x===null||!x.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,x),H=v.resolve(Te.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(x=>x.populateYarnPaths,e,x=>{n(x)});for(let x of e.workspaces){let F=v.relative(r.cwd,x.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Te.root,o)),a!=null&&s.accept.push(v.resolve(Te.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Te.root,l));for(let x of c.values())s.accept.push(v.resolve(Te.root,x));if(l instanceof Map)for(let[x,F]of l.entries())s.accept.push(v.resolve(Te.root,x)),typeof F=="string"&&s.accept.push(v.resolve(Te.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let x of r.manifest.files)Fue(s.accept,x,{cwd:Te.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Te.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!Pue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Te.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;Pue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Te.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function Pue(r,{globalList:e,ignoreLists:t}){let i=LQ(r,e.accept);if(i!==0)return i===2;let n=LQ(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=LQ(r,s.accept);if(o!==0)return o===2;let a=LQ(r,s.reject);if(a!==0)return a===1}return!1}function LQ(r,e){let t=e,i=[];for(let n=0;n{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await OQ(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=Qe.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function N9e(r,{workspace:e}){let t=r.replace("%s",T9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function T9e(r){return r.manifest.name!==null?P.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${P.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Gue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=P.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Gue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${P.stringifyIdent(t)} +`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cQ,Ts],resolvers:[uQ,fQ,hQ]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Bn());As();var MQ=(i=>(i.All="all",i.Production="production",i.Development="development",i))(MQ||{}),KQ=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(KQ||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Xi(MQ)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Xi(KQ)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await Pt.post("/-/npm/v1/security/audits/quick",l,{authType:Pt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=Qe.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -724,25 +724,25 @@ ${ye.map(fe=>`Not found: ${ho(fe)} If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends Pe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=P.makeDescriptor(F.manifest.name,"unknown")}else u=P.parseDescriptor(c);let g=Pt.getIdentUrl(u),h=d1(await Pt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:Pt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=Qt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},x;if(n!==null){x={};for(let F of n){let H=S[F];if(typeof H<"u")x[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${P.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),x=S;l.reportJson(x),this.json||s.push(x)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} -`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=be.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=be.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=be.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=Qe.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends Pe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=Qe.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function UQ({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:Pt.AuthType.NO_AUTH};try{return(await Pt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:Pt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await Pt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await Pt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends Pe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=P.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=Qe.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends Pe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await Pt.get(Pt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await Pt.put(Pt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=Qe.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s;if(typeof this.package<"u")s=P.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:P.makeDescriptor(s,c),locator:P.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=Qe.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${Pt.getIdentUrl(r)}/dist-tags`;return Pt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:Pt.customPackageError})}var og=class extends Pe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=P.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${Pt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Pt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=Qe.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends Pe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=P.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${Pt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Pt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=Qe.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:Hb(o),newMode:Hb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Hb(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jb(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!bt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends Pe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await Pt.get("/-/whoami",{configuration:t,registry:i,authType:Pt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=Qe.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jQ,diffFolders:()=>b1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>Q1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),bVe=r=>({header:yVe(r),parts:[]}),QVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let x=n||d;if(!x)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(x),mode:HQ(l),hash:h})}break;case"file creation":{let x=s||m;if(!x)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(x),mode:HQ(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:HQ(o),newMode:HQ(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function HQ(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function PVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jQ(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!Qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` `)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` `):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,vr.SAFE_TIME,vr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function Q1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,P.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,P.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,P.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function b1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var Gb=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await on(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Yb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=be.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function Q1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!Qt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var GQ=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),h=await on(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jQ(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let x=t.project.configuration.get("enableInlineHunks"),F=!x&&!m?" (set enableInlineHunks for details)":"",H=`${P.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!x||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var YQ=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=Q1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends Pe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await b1(o,s),c=await M.readJsonPromise(a),u=P.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${P.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(P.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=P.isVirtualDescriptor(m)?P.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:P.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=Qe.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=P.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:P.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${a.map(l=>` -- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var NVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[Gb],resolvers:[Yb]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qb]},MVe=OVe;var wQ=()=>({modules:new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",hn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",NO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Fr||"",pluginConfiguration:wQ()});})(); +- ${P.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:P.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${P.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=Qe.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var NVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[GQ],resolvers:[YQ]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qQ=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=P1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=P1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return P1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let h=P.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await x1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await x1(dge(this.opts.project)),{customData:this.customData}}};function P1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=P.slugifyLocator(r),i=P.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!P.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>x1(v.join(r,s)))))}async function x1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qQ]},MVe=OVe;var wb=()=>({modules:new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",hn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",PO],["@yarnpkg/plugin-http",xO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",NO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Fr||"",pluginConfiguration:wb()});})(); /*! * buildToken * Builds OAuth token prefix (helper function) diff --git a/.yarnrc.yml b/.yarnrc.yml index 4148f2b01..20a162ba3 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -11,7 +11,7 @@ plugins: - path: .yarn/plugins/@yarnpkg/plugin-exec.cjs spec: "@yarnpkg/plugin-exec" -yarnPath: .yarn/releases/yarn-3.8.0.cjs +yarnPath: .yarn/releases/yarn-3.8.1.cjs packageExtensions: "uniforms-bridge-json-schema@*": diff --git a/package.json b/package.json index 0b3e6fb7d..6cc34ca2a 100644 --- a/package.json +++ b/package.json @@ -22,5 +22,5 @@ "husky": "^9.0.0", "lint-staged": "^15.0.0" }, - "packageManager": "yarn@3.8.0" + "packageManager": "yarn@3.8.1" } From 0a11d2e45fd405ad1d5ad29f03e199a4d399a846 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 03:59:31 +0000 Subject: [PATCH 061/471] chore(deps): update dependency vite-plugin-circular-dependency to ^0.4.0 --- packages/ui/package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 81cd6f34e..3dc712af4 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -96,6 +96,6 @@ "ts-node": "^10.9.2", "typescript": "^5.3.3", "vite": "^5.0.12", - "vite-plugin-circular-dependency": "^0.3.1" + "vite-plugin-circular-dependency": "^0.4.0" } } diff --git a/yarn.lock b/yarn.lock index 477e1725f..4f29dcd4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1643,7 +1643,7 @@ __metadata: typescript: ^5.3.3 use-debounce: ^10.0.0 vite: ^5.0.12 - vite-plugin-circular-dependency: ^0.3.1 + vite-plugin-circular-dependency: ^0.4.0 languageName: unknown linkType: soft @@ -13116,13 +13116,13 @@ __metadata: languageName: node linkType: hard -"vite-plugin-circular-dependency@npm:^0.3.1": - version: 0.3.1 - resolution: "vite-plugin-circular-dependency@npm:0.3.1" +"vite-plugin-circular-dependency@npm:^0.4.0": + version: 0.4.0 + resolution: "vite-plugin-circular-dependency@npm:0.4.0" dependencies: "@rollup/pluginutils": ^5.1.0 chalk: ^4.1.2 - checksum: e8364594b7b38c7f13ac01c03e837a7618a3097df6924b274cb2025909540d77155856530a31b45e6086117471ba45f2d1719e5689bd3d667345309f9474d457 + checksum: 899d9cccf0f188f8111ef1739c8f21cd6eac65b657962f5cd55793c41f049148d9f7da922d7d2b3205d7fd3d4eb074be2edb5a21bc7728185b104d9e3a07cac6 languageName: node linkType: hard From dfa99aa47fec060c64ac63dad8335feaf0d1135b Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 5 Mar 2024 14:24:30 -0500 Subject: [PATCH 062/471] chore --- packages/ui/src/DataMapper.tsx | 7 ++- .../src/components/document/DocumentField.tsx | 56 ++++++++++--------- .../services/xml-schema-document.service.ts | 3 + 3 files changed, 39 insertions(+), 27 deletions(-) diff --git a/packages/ui/src/DataMapper.tsx b/packages/ui/src/DataMapper.tsx index 4d4291a8a..7040692a5 100644 --- a/packages/ui/src/DataMapper.tsx +++ b/packages/ui/src/DataMapper.tsx @@ -17,6 +17,7 @@ import { MainLayout } from './layout'; import { FunctionComponent } from 'react'; import { useDataMapperContext } from './hooks/useDataMapperContext'; +import { DndContext } from '@dnd-kit/core'; export interface IDataMapperProps { modalsContainerId?: string; @@ -25,5 +26,9 @@ export interface IDataMapperProps { export const DataMapper: FunctionComponent = () => { const { selectedMapping } = useDataMapperContext()!; - return ; + return ( + + + + ); }; diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index d16c64c85..b872cdfc1 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -29,34 +29,38 @@ export const DocumentField: FunctionComponent = ({ field }) } : undefined; - return !field.fields || field.fields.length == 0 ? ( - -
-
- {field.isAttribute ? '@' + field.name : field.name} -
-
-
- ) : ( + return ( - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> -
-
- {field.name} + {!field.fields || field.fields.length == 0 ? ( + +
+
+ {field.isAttribute ? '@' + field.name : field.name} +
-
- - - {field.fields.map((f: IField) => ( - - ))} - + + ) : ( + <> + setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> +
+
+ {field.name} +
+
+
+ + {field.fields.map((f: IField) => ( + + ))} + + + )} ); }; diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 681b715d0..6a179553e 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -58,6 +58,9 @@ export class XmlSchemaDocumentService { return xmlSchema.getElements().values().next().value; } + /** + * @deprecated + */ static throwNotYetSupported(object: XmlSchemaObjectBase) { /* eslint-disable @typescript-eslint/no-explicit-any */ const cache: any[] = []; From 41395b43c386e79544cc45cdf1cbec4db49addd0 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 6 Mar 2024 09:33:46 -0500 Subject: [PATCH 063/471] experimenting line drawing, causing event flood ATM --- packages/poc-dnd-line/src/DocumentField.tsx | 100 ++++++++------- packages/poc-dnd-line/src/DrawLines.tsx | 119 ++++++++++++++++++ packages/poc-dnd-line/src/main.tsx | 5 + .../src/components/document/DocumentField.tsx | 2 +- 4 files changed, 178 insertions(+), 48 deletions(-) create mode 100644 packages/poc-dnd-line/src/DrawLines.tsx diff --git a/packages/poc-dnd-line/src/DocumentField.tsx b/packages/poc-dnd-line/src/DocumentField.tsx index 4923b205f..9ac2496e4 100644 --- a/packages/poc-dnd-line/src/DocumentField.tsx +++ b/packages/poc-dnd-line/src/DocumentField.tsx @@ -1,38 +1,59 @@ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; -import { FunctionComponent, useCallback, useState } from 'react'; +import { forwardRef, FunctionComponent, useCallback, useState } from 'react'; import { useDraggable, useDroppable } from '@dnd-kit/core'; type DocumentFieldProps = { field: any; initialExpanded?: boolean; + onToggle: () => void; }; -export const DocumentField: FunctionComponent = ({ field, initialExpanded = false }) => { - const [isExpanded, setIsExpanded] = useState(initialExpanded); - const fieldId = field.name + Math.random(); - const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ - id: 'droppable-' + fieldId, - }); - const { - attributes, - listeners, - setNodeRef: setDraggableNodeRef, - transform, - } = useDraggable({ - id: 'draggable-' + fieldId, - }); - const renderField = useCallback( - (field: any) => { - const droppableStyle = { - color: isOver ? 'green' : undefined, - }; - const draggableStyle = transform - ? { - transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, - } - : undefined; - return ( +export const DocumentField = forwardRef( + ({ field, initialExpanded = false, onToggle }, ref) => { + const [isExpanded, setIsExpanded] = useState(initialExpanded); + const fieldId = field.name + Math.random(); + const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ + id: 'droppable-' + fieldId, + }); + const { + attributes, + listeners, + setNodeRef: setDraggableNodeRef, + transform, + } = useDraggable({ + id: 'draggable-' + fieldId, + }); + + const droppableStyle = { + color: isOver ? 'green' : undefined, + }; + const draggableStyle = transform + ? { + transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, + } + : undefined; + + const handleOnToggle = useCallback(() => { + onToggle(); + }, [onToggle]); + + return ( +
- {field.fields && field.fields.length !== 0 ? ( + {!field.fields || field.fields.length == 0 ? ( + +
+
+ {field.name} +
+
+
+ ) : ( <> setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}>
@@ -43,28 +64,13 @@ export const DocumentField: FunctionComponent = ({ field, in {field.fields.map((f: any) => ( - + ))} - ) : ( -
-
- {field.name} -
-
)} - ); - }, - [attributes, fieldId, isExpanded, isOver, listeners, setDraggableNodeRef, setDroppableNodeRef, transform], - ); - - return renderField(field); -}; +
+ ); + }, +); diff --git a/packages/poc-dnd-line/src/DrawLines.tsx b/packages/poc-dnd-line/src/DrawLines.tsx new file mode 100644 index 000000000..552214e32 --- /dev/null +++ b/packages/poc-dnd-line/src/DrawLines.tsx @@ -0,0 +1,119 @@ +import { + CSSProperties, + FunctionComponent, + MouseEvent, + MouseEventHandler, + MutableRefObject, + ReactNode, + useCallback, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; +import { Accordion, Page, PageSection, Split, SplitItem } from '@patternfly/react-core'; +import { DocumentField } from './DocumentField'; +import { doc } from './data'; + +type LinesProps = { + sourceRef: MutableRefObject; + targetRef: MutableRefObject; + token?: number; +}; + +type LineCoords = { + x1: number; + y1: number; + x2: number; + y2: number; +}; + +const Lines: FunctionComponent = ({ sourceRef, targetRef }) => { + const sourceRect = sourceRef.current?.getBoundingClientRect(); + const targetRect = targetRef.current?.getBoundingClientRect(); + + const [coords, setCoords] = useState(undefined); + const [isOver, setIsOver] = useState(false); + + const lineStyle = { + stroke: 'gray', + strokeWidth: isOver ? 6 : 3, + }; + + useEffect(() => { + if (sourceRect && targetRect) { + setCoords({ + x1: sourceRect.right, + y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, + x2: targetRect.left, + y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, + }); + } + }, [sourceRect, targetRect]); + + const onMouseEnter = () => { + setIsOver(true); + }; + const onMouseLeave = () => { + setIsOver(false); + }; + + return ( + + + {!!coords && ( + alert('boom')} + onMouseEnter={onMouseEnter} + onMouseLeave={onMouseLeave} + d={`M${coords.x1},${coords.y1},${coords.x2},${coords.y2}`} + style={lineStyle} + /> + )} + + + ); +}; + +export const DrawLines: FunctionComponent = () => { + const sourceRef = useRef(null); + const targetRef = useRef(null); + const [token, setToken] = useState(0); + + const onRefresh = useCallback(() => { + setToken(Math.random()); + }, []); + + useEffect(() => { + onRefresh(); + }, [onRefresh]); + + return ( + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx index 53ead5796..0acaf86d0 100644 --- a/packages/poc-dnd-line/src/main.tsx +++ b/packages/poc-dnd-line/src/main.tsx @@ -7,6 +7,7 @@ import { Link, Route, BrowserRouter, Routes } from 'react-router-dom'; import { DnDKitTest } from './DnDKitTest'; import { ReactTopologyTest } from './ReactTopologyTest'; import { Page } from '@patternfly/react-core'; +import { DrawLines } from './DrawLines'; const container = document.getElementById('root'); const root = createRoot(container!); @@ -41,6 +42,9 @@ const Layout: FunctionComponent = () => (
  • dndkit
  • +
  • + line +
  • React Topology
  • @@ -63,6 +67,7 @@ root.render( } /> } /> + } /> } /> , diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index b872cdfc1..bc1d7325e 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -31,7 +31,7 @@ export const DocumentField: FunctionComponent = ({ field }) return ( - {!field.fields || field.fields.length == 0 ? ( + {!field.fields || field.fields.length === 0 ? (
    Date: Wed, 6 Mar 2024 09:44:29 -0500 Subject: [PATCH 064/471] fix --- packages/poc-dnd-line/src/SourceTarget.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx index 62e22fac4..f85fbbb5f 100644 --- a/packages/poc-dnd-line/src/SourceTarget.tsx +++ b/packages/poc-dnd-line/src/SourceTarget.tsx @@ -8,13 +8,13 @@ export const SourceTarget: React.FunctionComponent = () => { - + {}}> draw lines here - + {}}> From c0f08727bb1d75401e1065769c68109bfa6fc178 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:12:45 +0000 Subject: [PATCH 065/471] chore(deps): update dependency @types/node to v20.11.25 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4f29dcd4d..39e529a9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3812,11 +3812,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.24 - resolution: "@types/node@npm:20.11.24" + version: 20.11.25 + resolution: "@types/node@npm:20.11.25" dependencies: undici-types: ~5.26.4 - checksum: b11a650e09e254f4725c94f226752b69949a9ac4a5e004e98f109437ac50b02df3ab4d12b2086722fedf2cb62e68b9e723abd3f358a7d7d90d741a0d3bee90c2 + checksum: bdb29da3f3dc687a0104cb70e30b5277d9df8f22843a4ed94835762683a95a8a0ea0c2ed0cf96f6eeff348491dd50dd9b20307d08f71ba7cb489d54a81cbbfec languageName: node linkType: hard From 45a1dd52bd989fef486f9b8526e02f64baa3dcc7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:13:41 +0000 Subject: [PATCH 066/471] chore(deps): update dependency typescript to v5.4.2 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 39e529a9e..3ff7a0c8a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12858,12 +12858,12 @@ __metadata: linkType: hard "typescript@npm:^5.3.3": - version: 5.3.3 - resolution: "typescript@npm:5.3.3" + version: 5.4.2 + resolution: "typescript@npm:5.4.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 2007ccb6e51bbbf6fde0a78099efe04dc1c3dfbdff04ca3b6a8bc717991862b39fd6126c0c3ebf2d2d98ac5e960bcaa873826bb2bb241f14277034148f41f6a2 + checksum: 96d80fde25a09bcb04d399082fb27a808a9e17c2111e43849d2aafbd642d835e4f4ef0de09b0ba795ec2a700be6c4c2c3f62bf4660c05404c948727b5bbfb32a languageName: node linkType: hard @@ -12888,12 +12888,12 @@ __metadata: linkType: hard "typescript@patch:typescript@^5.3.3#~builtin": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=e012d7" + version: 5.4.2 + resolution: "typescript@patch:typescript@npm%3A5.4.2#~builtin::version=5.4.2&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 4e604a9e107ce0c23b16a2f8d79d0531d4d8fe9ebbb7a8c395c66998c39892f0e0a071ef0b0d4e66420a8ec2b8d6cfd9cdb29ba24f25b37cba072e9282376df9 + checksum: 797ac213c03a19749181c745647b4cab03d13bf4b6b738b05a3426f46c6b540f908989e839d9b0c89d7a4ee2bdb50493b4d4898d4ef1c897c3e9d0b082e78a67 languageName: node linkType: hard From cd5d8d97139649906c613a4eb1d63799fdaaf05b Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 6 Mar 2024 17:33:51 -0500 Subject: [PATCH 067/471] chore: fixed infinite rerender in DrawLines, splitted sourceDoc and targetDoc test data --- packages/poc-dnd-line/src/DrawLines.tsx | 59 ++++++++++--------- .../poc-dnd-line/src/ReactTopologyTest.tsx | 6 +- packages/poc-dnd-line/src/SourceTarget.tsx | 6 +- packages/poc-dnd-line/src/data.ts | 13 +++- 4 files changed, 47 insertions(+), 37 deletions(-) diff --git a/packages/poc-dnd-line/src/DrawLines.tsx b/packages/poc-dnd-line/src/DrawLines.tsx index 552214e32..ce51f551f 100644 --- a/packages/poc-dnd-line/src/DrawLines.tsx +++ b/packages/poc-dnd-line/src/DrawLines.tsx @@ -1,19 +1,7 @@ -import { - CSSProperties, - FunctionComponent, - MouseEvent, - MouseEventHandler, - MutableRefObject, - ReactNode, - useCallback, - useEffect, - useMemo, - useRef, - useState, -} from 'react'; +import { FunctionComponent, MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'; import { Accordion, Page, PageSection, Split, SplitItem } from '@patternfly/react-core'; import { DocumentField } from './DocumentField'; -import { doc } from './data'; +import { sourceDoc, targetDoc } from './data'; type LinesProps = { sourceRef: MutableRefObject; @@ -29,10 +17,10 @@ type LineCoords = { }; const Lines: FunctionComponent = ({ sourceRef, targetRef }) => { - const sourceRect = sourceRef.current?.getBoundingClientRect(); - const targetRect = targetRef.current?.getBoundingClientRect(); - - const [coords, setCoords] = useState(undefined); + const [x1, setX1] = useState(0); + const [y1, setY1] = useState(0); + const [x2, setX2] = useState(0); + const [y2, setY2] = useState(0); const [isOver, setIsOver] = useState(false); const lineStyle = { @@ -40,16 +28,19 @@ const Lines: FunctionComponent = ({ sourceRef, targetRef }) => { strokeWidth: isOver ? 6 : 3, }; + // sourceRef & targetRef doesn't change, while this side effect should happen on every render + // eslint-disable-next-line react-hooks/exhaustive-deps useEffect(() => { + const sourceRect = sourceRef.current?.getBoundingClientRect(); + const targetRect = targetRef.current?.getBoundingClientRect(); + if (sourceRect && targetRect) { - setCoords({ - x1: sourceRect.right, - y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, - x2: targetRect.left, - y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, - }); + setX1(sourceRect.right); + setY1(sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2); + setX2(targetRect.left); + setY2(targetRect.top + (targetRect.bottom - targetRect.top) / 2); } - }, [sourceRect, targetRect]); + }); const onMouseEnter = () => { setIsOver(true); @@ -69,12 +60,12 @@ const Lines: FunctionComponent = ({ sourceRef, targetRef }) => { }} > - {!!coords && ( + {!!sourceRef.current && !!targetRef.current && ( alert('boom')} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} - d={`M${coords.x1},${coords.y1},${coords.x2},${coords.y2}`} + d={`M${x1},${y1},${x2},${y2}`} style={lineStyle} /> )} @@ -103,13 +94,23 @@ export const DrawLines: FunctionComponent = () => { - + - + diff --git a/packages/poc-dnd-line/src/ReactTopologyTest.tsx b/packages/poc-dnd-line/src/ReactTopologyTest.tsx index 32f5c84a7..d5c64dd83 100644 --- a/packages/poc-dnd-line/src/ReactTopologyTest.tsx +++ b/packages/poc-dnd-line/src/ReactTopologyTest.tsx @@ -22,7 +22,7 @@ import { } from '@patternfly/react-topology'; import { FunctionComponent, ReactNode, useCallback, useMemo, useState } from 'react'; import { Page, ToolbarItem } from '@patternfly/react-core'; -import { doc } from './data'; +import { sourceDoc } from './data'; const baselineLayoutFactory: LayoutFactory = (type: string, graph: Graph): Layout | undefined => { return new GridLayout(graph, { @@ -102,8 +102,8 @@ export const ReactTopologyTest: FunctionComponent = () => { const documentNodes: FieldNodeModel[] = useMemo(() => { const answer: FieldNodeModel[] = []; - const source = populateChildrenFromField(doc, answer, 'Source:/'); - const target = populateChildrenFromField(doc, answer, 'Target:/'); + const source = populateChildrenFromField(sourceDoc, answer, 'Source:/'); + const target = populateChildrenFromField(sourceDoc, answer, 'Target:/'); answer.push(source, target); return answer; }, [populateChildrenFromField]); diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx index f85fbbb5f..10ec661de 100644 --- a/packages/poc-dnd-line/src/SourceTarget.tsx +++ b/packages/poc-dnd-line/src/SourceTarget.tsx @@ -1,5 +1,5 @@ import { Accordion, Page, Split, SplitItem } from '@patternfly/react-core'; -import { doc } from './data'; +import { sourceDoc, targetDoc } from './data'; import { DocumentField } from './DocumentField'; export const SourceTarget: React.FunctionComponent = () => { @@ -8,13 +8,13 @@ export const SourceTarget: React.FunctionComponent = () => { - {}}> + {}}> draw lines here - {}}> + {}}> diff --git a/packages/poc-dnd-line/src/data.ts b/packages/poc-dnd-line/src/data.ts index 93689b017..f96a4b60e 100644 --- a/packages/poc-dnd-line/src/data.ts +++ b/packages/poc-dnd-line/src/data.ts @@ -1,5 +1,14 @@ -export const doc = { - name: 'doc1', +export const sourceDoc = { + name: 'SourceDocument1', + fields: [ + { name: 'field1' }, + { name: 'field2', fields: [{ name: 'field1' }, { name: 'field2' }, { name: 'field3' }] }, + { name: 'field3' }, + ], +}; + +export const targetDoc = { + name: 'TargetDocument1', fields: [ { name: 'field1' }, { name: 'field2', fields: [{ name: 'field1' }, { name: 'field2' }, { name: 'field3' }] }, From c6f608ba52a5e03e938bb60d9e7a18e015c89a79 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 7 Mar 2024 09:14:59 -0500 Subject: [PATCH 068/471] PoC: CanvasProvider to manage field references, supposed to be used for drawing mapping lines --- packages/poc-dnd-line/src/DocumentField.tsx | 30 ++++- packages/poc-dnd-line/src/DrawLines.tsx | 120 ++++++++++++------ packages/poc-dnd-line/src/SourceTarget.tsx | 16 ++- .../src/canvas/CanvasProvider.tsx | 57 +++++++++ .../poc-dnd-line/src/canvas/useCanvas.tsx | 10 ++ packages/poc-dnd-line/src/main.tsx | 10 +- 6 files changed, 198 insertions(+), 45 deletions(-) create mode 100644 packages/poc-dnd-line/src/canvas/CanvasProvider.tsx create mode 100644 packages/poc-dnd-line/src/canvas/useCanvas.tsx diff --git a/packages/poc-dnd-line/src/DocumentField.tsx b/packages/poc-dnd-line/src/DocumentField.tsx index 9ac2496e4..e9039f747 100644 --- a/packages/poc-dnd-line/src/DocumentField.tsx +++ b/packages/poc-dnd-line/src/DocumentField.tsx @@ -1,14 +1,34 @@ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; -import { forwardRef, FunctionComponent, useCallback, useState } from 'react'; +import { forwardRef, FunctionComponent, useCallback, useRef, useState } from 'react'; import { useDraggable, useDroppable } from '@dnd-kit/core'; +import { useCanvas } from './canvas/useCanvas'; + +/* eslint-disable @typescript-eslint/no-explicit-any */ +type ChildFieldProps = { + field: any; + parentPath: string; + onToggle: () => void; +}; + +const ChildField: FunctionComponent = ({ field, parentPath, onToggle }) => { + const ref = useRef(); + // TODO don't forget to add '@' prefix for attribute - maybe field.id could contain it + const path = parentPath + '/' + field.name; + const { setFieldReference } = useCanvas(); + setFieldReference(path, ref); + + return ; +}; type DocumentFieldProps = { field: any; + path: string; initialExpanded?: boolean; onToggle: () => void; }; + export const DocumentField = forwardRef( - ({ field, initialExpanded = false, onToggle }, ref) => { + ({ field, path, initialExpanded = false, onToggle }, forwardedRef) => { const [isExpanded, setIsExpanded] = useState(initialExpanded); const fieldId = field.name + Math.random(); const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ @@ -37,7 +57,7 @@ export const DocumentField = forwardRef( }, [onToggle]); return ( -
    +
    {!field.fields || field.fields.length == 0 ? ( @@ -63,8 +83,8 @@ export const DocumentField = forwardRef(
    - {field.fields.map((f: any) => ( - + {field.fields.map((field: any) => ( + ))} diff --git a/packages/poc-dnd-line/src/DrawLines.tsx b/packages/poc-dnd-line/src/DrawLines.tsx index ce51f551f..f4e825c4f 100644 --- a/packages/poc-dnd-line/src/DrawLines.tsx +++ b/packages/poc-dnd-line/src/DrawLines.tsx @@ -2,46 +2,26 @@ import { FunctionComponent, MutableRefObject, useCallback, useEffect, useRef, us import { Accordion, Page, PageSection, Split, SplitItem } from '@patternfly/react-core'; import { DocumentField } from './DocumentField'; import { sourceDoc, targetDoc } from './data'; +import { CanvasProvider } from './canvas/CanvasProvider'; +import { useCanvas } from './canvas/useCanvas'; +import { PageHeader } from '@patternfly/react-core/deprecated'; -type LinesProps = { - sourceRef: MutableRefObject; - targetRef: MutableRefObject; - token?: number; -}; - -type LineCoords = { +type LineCoord = { x1: number; y1: number; x2: number; y2: number; }; -const Lines: FunctionComponent = ({ sourceRef, targetRef }) => { - const [x1, setX1] = useState(0); - const [y1, setY1] = useState(0); - const [x2, setX2] = useState(0); - const [y2, setY2] = useState(0); - const [isOver, setIsOver] = useState(false); +type LineProps = LineCoord; +const Line: FunctionComponent = ({ x1, y1, x2, y2 }) => { + const [isOver, setIsOver] = useState(false); const lineStyle = { stroke: 'gray', strokeWidth: isOver ? 6 : 3, }; - // sourceRef & targetRef doesn't change, while this side effect should happen on every render - // eslint-disable-next-line react-hooks/exhaustive-deps - useEffect(() => { - const sourceRect = sourceRef.current?.getBoundingClientRect(); - const targetRect = targetRef.current?.getBoundingClientRect(); - - if (sourceRect && targetRect) { - setX1(sourceRect.right); - setY1(sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2); - setX2(targetRect.left); - setY2(targetRect.top + (targetRect.bottom - targetRect.top) / 2); - } - }); - const onMouseEnter = () => { setIsOver(true); }; @@ -49,6 +29,56 @@ const Lines: FunctionComponent = ({ sourceRef, targetRef }) => { setIsOver(false); }; + const coord = `[ x1:${x1}, y1:${y1}, x2:${x2}, y2:${y2} ]`; + return ( + alert(coord)} + onMouseEnter={onMouseEnter} + onMouseLeave={onMouseLeave} + d={`M${x1},${y1},${x2},${y2}`} + style={lineStyle} + > + {coord} + + ); +}; + +type LineGroupProps = { + sourceRef: MutableRefObject; + targetRef: MutableRefObject; +}; + +const LineGroup: FunctionComponent = ({ sourceRef, targetRef }) => { + const [lineCoords, setLineCoords] = useState([]); + const { getFieldReference } = useCanvas(); + + const populateCoordFromRect = useCallback((coords: LineCoord[], sourceRect: DOMRect, targetRect: DOMRect) => { + if (sourceRect && targetRect) { + const coord = { + x1: sourceRect.right, + y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, + x2: targetRect.left, + y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, + }; + coords.push(coord); + } + }, []); + + // sourceRef & targetRef doesn't change, while this side effect should happen on every render + // eslint-disable-next-line react-hooks/exhaustive-deps + useEffect(() => { + const answer: LineCoord[] = []; + const sourceDocumentRect = sourceRef.current?.getBoundingClientRect(); + const targetDocumentRect = targetRef.current?.getBoundingClientRect(); + populateCoordFromRect(answer, sourceDocumentRect, targetDocumentRect); + const sourceFieldRef = getFieldReference('SourceDocument1://field2/field1'); + const sourceFieldRect = sourceFieldRef.current?.getBoundingClientRect(); + const targetFieldRef = getFieldReference('TargetDocument1://field2/field3'); + const targetFieldRect = targetFieldRef.current?.getBoundingClientRect(); + populateCoordFromRect(answer, sourceFieldRect, targetFieldRect); + setLineCoords(answer); + }, [getFieldReference, populateCoordFromRect, sourceRef, targetRef]); + return ( = ({ sourceRef, targetRef }) => { }} > - {!!sourceRef.current && !!targetRef.current && ( - alert('boom')} - onMouseEnter={onMouseEnter} - onMouseLeave={onMouseLeave} - d={`M${x1},${y1},${x2},${y2}`} - style={lineStyle} - /> - )} + {!!sourceRef.current && + !!targetRef.current && + lineCoords.map((coord, index) => ( + + ))} ); @@ -78,8 +104,14 @@ export const DrawLines: FunctionComponent = () => { const sourceRef = useRef(null); const targetRef = useRef(null); const [token, setToken] = useState(0); + const { getAllFieldPaths, setFieldReference, reloadFieldReference } = useCanvas(); + const sourcePath = sourceDoc.name + ':/'; + const targetPath = targetDoc.name + ':/'; + setFieldReference(sourcePath, sourceRef); + setFieldReference(targetPath, targetRef); const onRefresh = useCallback(() => { + reloadFieldReference(); setToken(Math.random()); }, []); @@ -89,13 +121,26 @@ export const DrawLines: FunctionComponent = () => { return ( + + + + Fields: +
      + {getAllFieldPaths().map((p) => ( +
    • {p}
    • + ))} +
    +
    +
    +
    - + { { + const sourcePath = sourceDoc.name + ':/'; + const targetPath = targetDoc.name + ':/'; return ( - {}}> + {}} + > draw lines here - {}}> + {}} + > diff --git a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx new file mode 100644 index 000000000..f9998c4a4 --- /dev/null +++ b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx @@ -0,0 +1,57 @@ +import { + createContext, + FunctionComponent, + MutableRefObject, + PropsWithChildren, + useCallback, + useMemo, + useState, +} from 'react'; + +export interface ICanvasContext { + setFieldReference: (path: string, ref: MutableRefObject) => void; + getFieldReference: (path: string) => MutableRefObject; + getAllFieldPaths: () => string[]; + reloadFieldReference: () => void; +} + +export const CanvasContext = createContext(undefined); + +export const CanvasProvider: FunctionComponent = (props) => { + const [fieldReferenceMap, setFieldReferenceMap] = useState>>( + new Map>(), + ); + + const setFieldReference = useCallback( + (path: string, ref: MutableRefObject) => { + fieldReferenceMap.set(path, ref); + }, + [fieldReferenceMap], + ); + + const getFieldReference = useCallback( + (path: string) => { + return fieldReferenceMap.get(path); + }, + [fieldReferenceMap], + ); + + const getAllFieldPaths = useCallback(() => { + return Array.from(fieldReferenceMap.keys()); + }, [fieldReferenceMap]); + + const reloadFieldReference = useCallback(() => { + setFieldReferenceMap(new Map(fieldReferenceMap)); + }, [fieldReferenceMap]); + + const value = useMemo(() => { + return { + setFieldReference, + getFieldReference, + getAllFieldPaths, + reloadFieldReference, + }; + }, [setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReference]); + + return {props.children}; +}; diff --git a/packages/poc-dnd-line/src/canvas/useCanvas.tsx b/packages/poc-dnd-line/src/canvas/useCanvas.tsx new file mode 100644 index 000000000..e1645d694 --- /dev/null +++ b/packages/poc-dnd-line/src/canvas/useCanvas.tsx @@ -0,0 +1,10 @@ +import { CanvasContext, ICanvasContext } from './CanvasProvider'; +import { useContext } from 'react'; + +export const errorMessage = 'useCanvas should be called into CanvasProvider'; + +export const useCanvas = (): ICanvasContext => { + const ctx = useContext(CanvasContext); + if (!ctx) throw new Error(errorMessage); + return ctx; +}; diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx index 0acaf86d0..64b2e311a 100644 --- a/packages/poc-dnd-line/src/main.tsx +++ b/packages/poc-dnd-line/src/main.tsx @@ -8,6 +8,7 @@ import { DnDKitTest } from './DnDKitTest'; import { ReactTopologyTest } from './ReactTopologyTest'; import { Page } from '@patternfly/react-core'; import { DrawLines } from './DrawLines'; +import { CanvasProvider } from './canvas/CanvasProvider'; const container = document.getElementById('root'); const root = createRoot(container!); @@ -67,7 +68,14 @@ root.render( } /> } /> - } /> + + + + } + /> } /> , From 3d236ef5b27d67f0d0b824fdf31b8a209f00ce79 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 7 Mar 2024 15:43:27 -0500 Subject: [PATCH 069/471] PoC: refresh lines to follow parent expand/collapse --- packages/poc-dnd-line/package.json | 1 + packages/poc-dnd-line/src/DocumentField.tsx | 2 +- packages/poc-dnd-line/src/DrawLines.tsx | 90 +++++++++---------- .../src/canvas/CanvasProvider.tsx | 41 ++++++++- yarn.lock | 3 +- 5 files changed, 85 insertions(+), 52 deletions(-) diff --git a/packages/poc-dnd-line/package.json b/packages/poc-dnd-line/package.json index b929d5493..2012ba51f 100644 --- a/packages/poc-dnd-line/package.json +++ b/packages/poc-dnd-line/package.json @@ -8,6 +8,7 @@ "dependencies": { "@dnd-kit/core": "^6.1.0", "@patternfly/react-core": "^5.2.0", + "@patternfly/react-table": "^5.2.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.22.2" diff --git a/packages/poc-dnd-line/src/DocumentField.tsx b/packages/poc-dnd-line/src/DocumentField.tsx index e9039f747..378fcdbcd 100644 --- a/packages/poc-dnd-line/src/DocumentField.tsx +++ b/packages/poc-dnd-line/src/DocumentField.tsx @@ -28,7 +28,7 @@ type DocumentFieldProps = { }; export const DocumentField = forwardRef( - ({ field, path, initialExpanded = false, onToggle }, forwardedRef) => { + ({ field, path, initialExpanded = true, onToggle }, forwardedRef) => { const [isExpanded, setIsExpanded] = useState(initialExpanded); const fieldId = field.name + Math.random(); const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ diff --git a/packages/poc-dnd-line/src/DrawLines.tsx b/packages/poc-dnd-line/src/DrawLines.tsx index f4e825c4f..5eb67313e 100644 --- a/packages/poc-dnd-line/src/DrawLines.tsx +++ b/packages/poc-dnd-line/src/DrawLines.tsx @@ -1,5 +1,6 @@ import { FunctionComponent, MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'; import { Accordion, Page, PageSection, Split, SplitItem } from '@patternfly/react-core'; +import { Caption, Table, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; import { DocumentField } from './DocumentField'; import { sourceDoc, targetDoc } from './data'; import { CanvasProvider } from './canvas/CanvasProvider'; @@ -22,12 +23,13 @@ const Line: FunctionComponent = ({ x1, y1, x2, y2 }) => { strokeWidth: isOver ? 6 : 3, }; - const onMouseEnter = () => { + const onMouseEnter = useCallback(() => { setIsOver(true); - }; - const onMouseLeave = () => { + }, []); + + const onMouseLeave = useCallback(() => { setIsOver(false); - }; + }, []); const coord = `[ x1:${x1}, y1:${y1}, x2:${x2}, y2:${y2} ]`; return ( @@ -52,8 +54,14 @@ const LineGroup: FunctionComponent = ({ sourceRef, targetRef }) const [lineCoords, setLineCoords] = useState([]); const { getFieldReference } = useCanvas(); - const populateCoordFromRect = useCallback((coords: LineCoord[], sourceRect: DOMRect, targetRect: DOMRect) => { - if (sourceRect && targetRect) { + const populateCoordFromFieldRef = useCallback( + (coords: LineCoord[], sourceRef: MutableRefObject, targetRef: MutableRefObject) => { + const sourceRect = sourceRef.current?.getBoundingClientRect(); + const targetRect = targetRef.current?.getBoundingClientRect(); + if (!sourceRect || !targetRect) { + return; + } + const coord = { x1: sourceRect.right, y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, @@ -61,23 +69,38 @@ const LineGroup: FunctionComponent = ({ sourceRef, targetRef }) y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, }; coords.push(coord); - } + }, + [], + ); + + const getParentPath = useCallback((path: string) => { + const lastSeparatorIndex = path.lastIndexOf('/'); + return lastSeparatorIndex !== -1 ? path.substring(0, lastSeparatorIndex) : null; }, []); + const getClosestExpandedPath = useCallback( + (path: string) => { + let tracedPath = path; + while (getFieldReference(tracedPath).current?.getClientRects().length === 0) { + tracedPath = getParentPath(tracedPath); + } + return tracedPath; + }, + [getFieldReference, getParentPath], + ); + // sourceRef & targetRef doesn't change, while this side effect should happen on every render // eslint-disable-next-line react-hooks/exhaustive-deps useEffect(() => { const answer: LineCoord[] = []; - const sourceDocumentRect = sourceRef.current?.getBoundingClientRect(); - const targetDocumentRect = targetRef.current?.getBoundingClientRect(); - populateCoordFromRect(answer, sourceDocumentRect, targetDocumentRect); - const sourceFieldRef = getFieldReference('SourceDocument1://field2/field1'); - const sourceFieldRect = sourceFieldRef.current?.getBoundingClientRect(); - const targetFieldRef = getFieldReference('TargetDocument1://field2/field3'); - const targetFieldRect = targetFieldRef.current?.getBoundingClientRect(); - populateCoordFromRect(answer, sourceFieldRect, targetFieldRect); + const sourceFieldRef1 = getFieldReference(getClosestExpandedPath('SourceDocument1://field3')); + const targetFieldRef1 = getFieldReference(getClosestExpandedPath('TargetDocument1://field1')); + populateCoordFromFieldRef(answer, sourceFieldRef1, targetFieldRef1); + const sourceFieldRef2 = getFieldReference(getClosestExpandedPath('SourceDocument1://field2/field1')); + const targetFieldRef2 = getFieldReference(getClosestExpandedPath('TargetDocument1://field2/field3')); + populateCoordFromFieldRef(answer, sourceFieldRef2, targetFieldRef2); setLineCoords(answer); - }, [getFieldReference, populateCoordFromRect, sourceRef, targetRef]); + }, [getFieldReference, populateCoordFromFieldRef, sourceRef, targetRef]); return ( = ({ sourceRef, targetRef }) export const DrawLines: FunctionComponent = () => { const sourceRef = useRef(null); const targetRef = useRef(null); - const [token, setToken] = useState(0); - const { getAllFieldPaths, setFieldReference, reloadFieldReference } = useCanvas(); + const { getAllFieldPaths, setFieldReference, reloadFieldReferences } = useCanvas(); const sourcePath = sourceDoc.name + ':/'; const targetPath = targetDoc.name + ':/'; setFieldReference(sourcePath, sourceRef); setFieldReference(targetPath, targetRef); const onRefresh = useCallback(() => { - reloadFieldReference(); - setToken(Math.random()); + reloadFieldReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { @@ -121,42 +143,18 @@ export const DrawLines: FunctionComponent = () => { return ( - - - - Fields: -
      - {getAllFieldPaths().map((p) => ( -
    • {p}
    • - ))} -
    -
    -
    -
    - + - + diff --git a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx index f9998c4a4..c7c4d5577 100644 --- a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx +++ b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx @@ -12,7 +12,10 @@ export interface ICanvasContext { setFieldReference: (path: string, ref: MutableRefObject) => void; getFieldReference: (path: string) => MutableRefObject; getAllFieldPaths: () => string[]; - reloadFieldReference: () => void; + reloadFieldReferences: () => void; + getParentPath: (path: string) => string; + setParentPath: (path: string, parentPath: string) => void; + reloadParentPaths: () => void; } export const CanvasContext = createContext(undefined); @@ -21,6 +24,7 @@ export const CanvasProvider: FunctionComponent = (props) => { const [fieldReferenceMap, setFieldReferenceMap] = useState>>( new Map>(), ); + const [parentPathMap, setParentPathMap] = useState>(new Map()); const setFieldReference = useCallback( (path: string, ref: MutableRefObject) => { @@ -40,18 +44,47 @@ export const CanvasProvider: FunctionComponent = (props) => { return Array.from(fieldReferenceMap.keys()); }, [fieldReferenceMap]); - const reloadFieldReference = useCallback(() => { + const reloadFieldReferences = useCallback(() => { setFieldReferenceMap(new Map(fieldReferenceMap)); }, [fieldReferenceMap]); + const getParentPath = useCallback( + (path: string) => { + return parentPathMap.get(path); + }, + [parentPathMap], + ); + + const setParentPath = useCallback( + (path: string, parentPath: string) => { + parentPathMap.set(path, parentPath); + }, + [parentPathMap], + ); + + const reloadParentPaths = useCallback(() => { + setParentPathMap(new Map(parentPathMap)); + }, [parentPathMap]); + const value = useMemo(() => { return { setFieldReference, getFieldReference, getAllFieldPaths, - reloadFieldReference, + reloadFieldReferences, + getParentPath, + setParentPath, + reloadParentPaths, }; - }, [setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReference]); + }, [ + setFieldReference, + getFieldReference, + getAllFieldPaths, + reloadFieldReferences, + getParentPath, + setParentPath, + reloadParentPaths, + ]); return {props.children}; }; diff --git a/yarn.lock b/yarn.lock index 3ff7a0c8a..711e5b4c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1577,6 +1577,7 @@ __metadata: dependencies: "@dnd-kit/core": ^6.1.0 "@patternfly/react-core": ^5.2.0 + "@patternfly/react-table": ^5.2.1 "@types/react": ^18.2.61 react: ^18.2.0 react-dom: ^18.2.0 @@ -2965,7 +2966,7 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-table@npm:^5.1.2": +"@patternfly/react-table@npm:^5.1.2, @patternfly/react-table@npm:^5.2.1": version: 5.2.1 resolution: "@patternfly/react-table@npm:5.2.1" dependencies: From 96075a0951bee141f64d026ed9467b6013a11338 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 7 Mar 2024 23:11:36 -0500 Subject: [PATCH 070/471] PoC: checkpoint: solved conflict between accordion expand/collapse and drag initiation --- packages/poc-dnd-line/src/DrawLines.tsx | 135 ++---------------- packages/poc-dnd-line/src/SourceTarget.tsx | 84 ++++++++++- .../src/canvas/CanvasProvider.tsx | 34 +---- .../src/{ => field}/DocumentField.tsx | 44 +++--- packages/poc-dnd-line/src/line/Line.tsx | 117 +++++++++++++++ packages/poc-dnd-line/src/main.tsx | 33 +---- 6 files changed, 235 insertions(+), 212 deletions(-) rename packages/poc-dnd-line/src/{ => field}/DocumentField.tsx (68%) create mode 100644 packages/poc-dnd-line/src/line/Line.tsx diff --git a/packages/poc-dnd-line/src/DrawLines.tsx b/packages/poc-dnd-line/src/DrawLines.tsx index 5eb67313e..05235c90a 100644 --- a/packages/poc-dnd-line/src/DrawLines.tsx +++ b/packages/poc-dnd-line/src/DrawLines.tsx @@ -1,136 +1,25 @@ -import { FunctionComponent, MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'; +import { FunctionComponent, useCallback, useEffect, useMemo, useRef } from 'react'; import { Accordion, Page, PageSection, Split, SplitItem } from '@patternfly/react-core'; -import { Caption, Table, Tbody, Td, Th, Thead, Tr } from '@patternfly/react-table'; -import { DocumentField } from './DocumentField'; +import { DocumentField } from './field/DocumentField'; import { sourceDoc, targetDoc } from './data'; -import { CanvasProvider } from './canvas/CanvasProvider'; import { useCanvas } from './canvas/useCanvas'; -import { PageHeader } from '@patternfly/react-core/deprecated'; - -type LineCoord = { - x1: number; - y1: number; - x2: number; - y2: number; -}; - -type LineProps = LineCoord; - -const Line: FunctionComponent = ({ x1, y1, x2, y2 }) => { - const [isOver, setIsOver] = useState(false); - const lineStyle = { - stroke: 'gray', - strokeWidth: isOver ? 6 : 3, - }; - - const onMouseEnter = useCallback(() => { - setIsOver(true); - }, []); - - const onMouseLeave = useCallback(() => { - setIsOver(false); - }, []); - - const coord = `[ x1:${x1}, y1:${y1}, x2:${x2}, y2:${y2} ]`; - return ( - alert(coord)} - onMouseEnter={onMouseEnter} - onMouseLeave={onMouseLeave} - d={`M${x1},${y1},${x2},${y2}`} - style={lineStyle} - > - {coord} - - ); -}; - -type LineGroupProps = { - sourceRef: MutableRefObject; - targetRef: MutableRefObject; -}; - -const LineGroup: FunctionComponent = ({ sourceRef, targetRef }) => { - const [lineCoords, setLineCoords] = useState([]); - const { getFieldReference } = useCanvas(); - - const populateCoordFromFieldRef = useCallback( - (coords: LineCoord[], sourceRef: MutableRefObject, targetRef: MutableRefObject) => { - const sourceRect = sourceRef.current?.getBoundingClientRect(); - const targetRect = targetRef.current?.getBoundingClientRect(); - if (!sourceRect || !targetRect) { - return; - } - - const coord = { - x1: sourceRect.right, - y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, - x2: targetRect.left, - y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, - }; - coords.push(coord); - }, - [], - ); - - const getParentPath = useCallback((path: string) => { - const lastSeparatorIndex = path.lastIndexOf('/'); - return lastSeparatorIndex !== -1 ? path.substring(0, lastSeparatorIndex) : null; - }, []); - - const getClosestExpandedPath = useCallback( - (path: string) => { - let tracedPath = path; - while (getFieldReference(tracedPath).current?.getClientRects().length === 0) { - tracedPath = getParentPath(tracedPath); - } - return tracedPath; - }, - [getFieldReference, getParentPath], - ); - - // sourceRef & targetRef doesn't change, while this side effect should happen on every render - // eslint-disable-next-line react-hooks/exhaustive-deps - useEffect(() => { - const answer: LineCoord[] = []; - const sourceFieldRef1 = getFieldReference(getClosestExpandedPath('SourceDocument1://field3')); - const targetFieldRef1 = getFieldReference(getClosestExpandedPath('TargetDocument1://field1')); - populateCoordFromFieldRef(answer, sourceFieldRef1, targetFieldRef1); - const sourceFieldRef2 = getFieldReference(getClosestExpandedPath('SourceDocument1://field2/field1')); - const targetFieldRef2 = getFieldReference(getClosestExpandedPath('TargetDocument1://field2/field3')); - populateCoordFromFieldRef(answer, sourceFieldRef2, targetFieldRef2); - setLineCoords(answer); - }, [getFieldReference, populateCoordFromFieldRef, sourceRef, targetRef]); - - return ( - - - {!!sourceRef.current && - !!targetRef.current && - lineCoords.map((coord, index) => ( - - ))} - - - ); -}; +import { LineGroup, Mapping } from './line/Line'; export const DrawLines: FunctionComponent = () => { const sourceRef = useRef(null); const targetRef = useRef(null); - const { getAllFieldPaths, setFieldReference, reloadFieldReferences } = useCanvas(); + const { setFieldReference, reloadFieldReferences } = useCanvas(); const sourcePath = sourceDoc.name + ':/'; const targetPath = targetDoc.name + ':/'; setFieldReference(sourcePath, sourceRef); setFieldReference(targetPath, targetRef); + const mappings: Mapping[] = useMemo( + () => [ + { sourcePath: 'SourceDocument1://field3', targetPath: 'TargetDocument1://field1' }, + { sourcePath: 'SourceDocument1://field2/field1', targetPath: 'TargetDocument1://field2/field3' }, + ], + [], + ); const onRefresh = useCallback(() => { reloadFieldReferences(); @@ -145,7 +34,7 @@ export const DrawLines: FunctionComponent = () => { - + diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx index acdfbf3a5..83b57642f 100644 --- a/packages/poc-dnd-line/src/SourceTarget.tsx +++ b/packages/poc-dnd-line/src/SourceTarget.tsx @@ -1,31 +1,103 @@ import { Accordion, Page, Split, SplitItem } from '@patternfly/react-core'; import { sourceDoc, targetDoc } from './data'; -import { DocumentField } from './DocumentField'; +import { DocumentField } from './field/DocumentField'; +import { LineGroup } from './line/Line'; +import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; +import { useCanvas } from './canvas/useCanvas'; +import { CanvasProvider } from './canvas/CanvasProvider'; +import { + DndContext, + KeyboardSensor, + MouseSensor, + TouchSensor, + useDndMonitor, + useSensor, + useSensors, +} from '@dnd-kit/core'; -export const SourceTarget: React.FunctionComponent = () => { +export const SourceTargetContainer: FunctionComponent = () => { + const DnDMonitor: FunctionComponent = () => { + useDndMonitor({ + onDragStart(event) { + console.log('onDragStart:' + event); + }, + onDragEnd(event) { + console.log('onDragEnd:' + event); + }, + onDragCancel(event) { + console.log('onDragCancel:' + event); + }, + }); + return <>; + }; + + const mouseSensor = useSensor(MouseSensor, { + activationConstraint: { + distance: 10, + }, + }); + const touchSensor = useSensor(TouchSensor, { + activationConstraint: { + delay: 250, + tolerance: 5, + }, + }); + const keyboardSensor = useSensor(KeyboardSensor); + const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); + + return ( + + + + + + + ); +}; + +const SourceTarget: FunctionComponent = () => { + const sourceRef = useRef(null); + const targetRef = useRef(null); + const { setFieldReference, reloadFieldReferences } = useCanvas(); const sourcePath = sourceDoc.name + ':/'; const targetPath = targetDoc.name + ':/'; + setFieldReference(sourcePath, sourceRef); + setFieldReference(targetPath, targetRef); + const mappings = []; + + const handleRefresh = useCallback(() => { + reloadFieldReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + useEffect(() => { + handleRefresh(); + }, [handleRefresh]); + return ( + - + {}} + onToggle={handleRefresh} > draw lines here - + {}} + onToggle={handleRefresh} > diff --git a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx index c7c4d5577..28599ac04 100644 --- a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx +++ b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx @@ -13,9 +13,6 @@ export interface ICanvasContext { getFieldReference: (path: string) => MutableRefObject; getAllFieldPaths: () => string[]; reloadFieldReferences: () => void; - getParentPath: (path: string) => string; - setParentPath: (path: string, parentPath: string) => void; - reloadParentPaths: () => void; } export const CanvasContext = createContext(undefined); @@ -48,43 +45,14 @@ export const CanvasProvider: FunctionComponent = (props) => { setFieldReferenceMap(new Map(fieldReferenceMap)); }, [fieldReferenceMap]); - const getParentPath = useCallback( - (path: string) => { - return parentPathMap.get(path); - }, - [parentPathMap], - ); - - const setParentPath = useCallback( - (path: string, parentPath: string) => { - parentPathMap.set(path, parentPath); - }, - [parentPathMap], - ); - - const reloadParentPaths = useCallback(() => { - setParentPathMap(new Map(parentPathMap)); - }, [parentPathMap]); - const value = useMemo(() => { return { setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReferences, - getParentPath, - setParentPath, - reloadParentPaths, }; - }, [ - setFieldReference, - getFieldReference, - getAllFieldPaths, - reloadFieldReferences, - getParentPath, - setParentPath, - reloadParentPaths, - ]); + }, [setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReferences]); return {props.children}; }; diff --git a/packages/poc-dnd-line/src/DocumentField.tsx b/packages/poc-dnd-line/src/field/DocumentField.tsx similarity index 68% rename from packages/poc-dnd-line/src/DocumentField.tsx rename to packages/poc-dnd-line/src/field/DocumentField.tsx index 378fcdbcd..5d0615404 100644 --- a/packages/poc-dnd-line/src/DocumentField.tsx +++ b/packages/poc-dnd-line/src/field/DocumentField.tsx @@ -1,7 +1,7 @@ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; -import { forwardRef, FunctionComponent, useCallback, useRef, useState } from 'react'; +import { CSSProperties, forwardRef, FunctionComponent, useCallback, useRef, useState } from 'react'; import { useDraggable, useDroppable } from '@dnd-kit/core'; -import { useCanvas } from './canvas/useCanvas'; +import { useCanvas } from '../canvas/useCanvas'; /* eslint-disable @typescript-eslint/no-explicit-any */ type ChildFieldProps = { @@ -30,7 +30,7 @@ type DocumentFieldProps = { export const DocumentField = forwardRef( ({ field, path, initialExpanded = true, onToggle }, forwardedRef) => { const [isExpanded, setIsExpanded] = useState(initialExpanded); - const fieldId = field.name + Math.random(); + const fieldId = path; const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ id: 'droppable-' + fieldId, }); @@ -43,10 +43,12 @@ export const DocumentField = forwardRef( id: 'draggable-' + fieldId, }); - const droppableStyle = { - color: isOver ? 'green' : undefined, + const droppableStyle: CSSProperties = { + border: isOver ? 5 : 0, + borderColor: isOver ? 'blue' : undefined, + color: isOver ? 'blue' : undefined, }; - const draggableStyle = transform + const draggableStyle: CSSProperties = transform ? { transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, } @@ -60,8 +62,20 @@ export const DocumentField = forwardRef(
    {!field.fields || field.fields.length == 0 ? ( - -
    +
    +
    + {field.name} +
    +
    + ) : ( + <> +
    ( {...listeners} {...attributes} > - {field.name} -
    -
    - - ) : ( - <> - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> -
    -
    + setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> {field.name} -
    +
    -
    +
    {field.fields.map((field: any) => ( diff --git a/packages/poc-dnd-line/src/line/Line.tsx b/packages/poc-dnd-line/src/line/Line.tsx new file mode 100644 index 000000000..418e3503c --- /dev/null +++ b/packages/poc-dnd-line/src/line/Line.tsx @@ -0,0 +1,117 @@ +import { FunctionComponent, MutableRefObject, useCallback, useEffect, useState } from 'react'; +import { useCanvas } from '../canvas/useCanvas'; + +type LineCoord = { + x1: number; + y1: number; + x2: number; + y2: number; +}; + +type LineProps = LineCoord; + +const Line: FunctionComponent = ({ x1, y1, x2, y2 }) => { + const [isOver, setIsOver] = useState(false); + const lineStyle = { + stroke: 'gray', + strokeWidth: isOver ? 6 : 3, + }; + + const onMouseEnter = useCallback(() => { + setIsOver(true); + }, []); + + const onMouseLeave = useCallback(() => { + setIsOver(false); + }, []); + + const coord = `[ x1:${x1}, y1:${y1}, x2:${x2}, y2:${y2} ]`; + return ( + alert(coord)} + onMouseEnter={onMouseEnter} + onMouseLeave={onMouseLeave} + d={`M${x1},${y1},${x2},${y2}`} + style={lineStyle} + > + {coord} + + ); +}; + +export type Mapping = { + sourcePath: string; + targetPath: string; +}; + +type LineGroupProps = { + mappings: Mapping[]; +}; + +export const LineGroup: FunctionComponent = ({ mappings }) => { + const [lineCoords, setLineCoords] = useState([]); + const { getFieldReference } = useCanvas(); + + const populateCoordFromFieldRef = useCallback( + (coords: LineCoord[], sourceRef: MutableRefObject, targetRef: MutableRefObject) => { + const sourceRect = sourceRef.current?.getBoundingClientRect(); + const targetRect = targetRef.current?.getBoundingClientRect(); + if (!sourceRect || !targetRect) { + return; + } + + const coord = { + x1: sourceRect.right, + y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, + x2: targetRect.left, + y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, + }; + coords.push(coord); + }, + [], + ); + + const getParentPath = useCallback((path: string) => { + const lastSeparatorIndex = path.lastIndexOf('/'); + return lastSeparatorIndex !== -1 ? path.substring(0, lastSeparatorIndex) : null; + }, []); + + const getClosestExpandedPath = useCallback( + (path: string) => { + let tracedPath = path; + while (getFieldReference(tracedPath).current?.getClientRects().length === 0) { + tracedPath = getParentPath(tracedPath); + } + return tracedPath; + }, + [getFieldReference, getParentPath], + ); + + useEffect(() => { + const answer: LineCoord[] = []; + mappings.map((mapping) => { + const sourceFieldRef1 = getFieldReference(getClosestExpandedPath(mapping.sourcePath)); + const targetFieldRef1 = getFieldReference(getClosestExpandedPath(mapping.targetPath)); + populateCoordFromFieldRef(answer, sourceFieldRef1, targetFieldRef1); + }); + setLineCoords(answer); + }, [getClosestExpandedPath, getFieldReference, mappings, populateCoordFromFieldRef]); + + return ( + + + {lineCoords.map((coord, index) => ( + + ))} + + + ); +}; diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx index 64b2e311a..3176dd9ed 100644 --- a/packages/poc-dnd-line/src/main.tsx +++ b/packages/poc-dnd-line/src/main.tsx @@ -1,7 +1,6 @@ import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first import { createRoot } from 'react-dom/client'; -import { SourceTarget } from './SourceTarget'; -import { DndContext, useDndMonitor } from '@dnd-kit/core'; +import { SourceTargetContainer } from './SourceTarget'; import { FunctionComponent } from 'react'; import { Link, Route, BrowserRouter, Routes } from 'react-router-dom'; import { DnDKitTest } from './DnDKitTest'; @@ -12,26 +11,6 @@ import { CanvasProvider } from './canvas/CanvasProvider'; const container = document.getElementById('root'); const root = createRoot(container!); -const DnDMonitor: FunctionComponent = () => { - useDndMonitor({ - onDragStart(event) { - console.log('onDragStart:' + event); - }, - onDragMove(event) { - console.log('onDragMove:' + event); - }, - onDragOver(event) { - console.log('onDragOver:' + event); - }, - onDragEnd(event) { - console.log('onDragEnd:' + event); - }, - onDragCancel(event) { - console.log('onDragCancel:' + event); - }, - }); - return <>; -}; const Layout: FunctionComponent = () => ( @@ -58,15 +37,7 @@ root.render( }> - - - - - } - /> + } /> } /> Date: Fri, 8 Mar 2024 00:31:40 -0500 Subject: [PATCH 071/471] PoC: attaching field name and path to the DnD event --- packages/poc-dnd-line/src/SourceTarget.tsx | 25 +++++++++++++++---- .../poc-dnd-line/src/field/DocumentField.tsx | 15 ++++++++--- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx index 83b57642f..66031f15f 100644 --- a/packages/poc-dnd-line/src/SourceTarget.tsx +++ b/packages/poc-dnd-line/src/SourceTarget.tsx @@ -2,11 +2,14 @@ import { Accordion, Page, Split, SplitItem } from '@patternfly/react-core'; import { sourceDoc, targetDoc } from './data'; import { DocumentField } from './field/DocumentField'; import { LineGroup } from './line/Line'; -import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; +import { FunctionComponent, useCallback, useEffect, useRef, useState } from 'react'; import { useCanvas } from './canvas/useCanvas'; import { CanvasProvider } from './canvas/CanvasProvider'; import { + DataRef, DndContext, + DragOverlay, + DragStartEvent, KeyboardSensor, MouseSensor, TouchSensor, @@ -19,13 +22,15 @@ export const SourceTargetContainer: FunctionComponent = () => { const DnDMonitor: FunctionComponent = () => { useDndMonitor({ onDragStart(event) { - console.log('onDragStart:' + event); + console.log(`onDragStart: [active: ${JSON.stringify(event.active.data.current)}`); }, onDragEnd(event) { - console.log('onDragEnd:' + event); + console.log( + `onDragEnd: [active: ${JSON.stringify(event.active.data.current)}, overt:${JSON.stringify(event.over.data.current)}`, + ); }, onDragCancel(event) { - console.log('onDragCancel:' + event); + console.log('onDragCancel:' + JSON.stringify(event.active.data.current)); }, }); return <>; @@ -45,11 +50,21 @@ export const SourceTargetContainer: FunctionComponent = () => { const keyboardSensor = useSensor(KeyboardSensor); const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); + const [activeData, setActiveData] = useState>>(null); + const handleDragStart = useCallback((event: DragStartEvent) => { + setActiveData(event.active.data); + }, []); + + const handleDragEnd = useCallback(() => { + setActiveData(null); + }, []); + return ( - + + {activeData?.current ? activeData.current.name : null} ); diff --git a/packages/poc-dnd-line/src/field/DocumentField.tsx b/packages/poc-dnd-line/src/field/DocumentField.tsx index 5d0615404..81d8da92a 100644 --- a/packages/poc-dnd-line/src/field/DocumentField.tsx +++ b/packages/poc-dnd-line/src/field/DocumentField.tsx @@ -1,6 +1,6 @@ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; import { CSSProperties, forwardRef, FunctionComponent, useCallback, useRef, useState } from 'react'; -import { useDraggable, useDroppable } from '@dnd-kit/core'; +import { Active, useDraggable, useDroppable } from '@dnd-kit/core'; import { useCanvas } from '../canvas/useCanvas'; /* eslint-disable @typescript-eslint/no-explicit-any */ @@ -33,6 +33,10 @@ export const DocumentField = forwardRef( const fieldId = path; const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ id: 'droppable-' + fieldId, + data: { + path, + name: field.name, + }, }); const { attributes, @@ -41,16 +45,21 @@ export const DocumentField = forwardRef( transform, } = useDraggable({ id: 'draggable-' + fieldId, + data: { + path, + name: field.name, + }, }); const droppableStyle: CSSProperties = { - border: isOver ? 5 : 0, + borderWidth: isOver ? 1 : undefined, borderColor: isOver ? 'blue' : undefined, color: isOver ? 'blue' : undefined, }; const draggableStyle: CSSProperties = transform ? { - transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, + borderWidth: 1, + borderColor: 'blue', } : undefined; From 30f29b569ad3ac10239a7ea12ecd959f802ff4e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 01:05:29 +0000 Subject: [PATCH 072/471] fix(deps): update dependency react-router-dom to v6.22.3 --- yarn.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 711e5b4c0..f52ab66a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3053,10 +3053,10 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.15.2": - version: 1.15.2 - resolution: "@remix-run/router@npm:1.15.2" - checksum: aac403791316d7f3a32b20621138a34ec0ffc62b32617a42a4e1c5390221eec6da9756032032e22ec1b1f3756758666f5dd7f03c5babd9171d4696f894ee3012 +"@remix-run/router@npm:1.15.3": + version: 1.15.3 + resolution: "@remix-run/router@npm:1.15.3" + checksum: 9e70bd334d99fdf9285f0885c10353d7e25f66369080f551d997e3ce204e1af3a12d6f12b091f94a2dc9a54c80598bbe3c5194b57cbae17b7b40ab815dcd49a0 languageName: node linkType: hard @@ -11151,26 +11151,26 @@ __metadata: linkType: hard "react-router-dom@npm:^6.22.2": - version: 6.22.2 - resolution: "react-router-dom@npm:6.22.2" + version: 6.22.3 + resolution: "react-router-dom@npm:6.22.3" dependencies: - "@remix-run/router": 1.15.2 - react-router: 6.22.2 + "@remix-run/router": 1.15.3 + react-router: 6.22.3 peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: b4226d7f2640de5598bc0c02266301f43b55966481634b9225adeab0360ec1ff56f4cdebe20c7112470cb33c4f4e5b7ef81fc8a42c54126e52111b63c5bace74 + checksum: 5ae3759a70e4123cd4b8efbb82199a69f5d8c4a7a434d186d2ec7b532b6ef3302df2a98e5c27db977d3f0d725c7a279010a16ae77a3bf6257f1fee96123d8b77 languageName: node linkType: hard -"react-router@npm:6.22.2": - version: 6.22.2 - resolution: "react-router@npm:6.22.2" +"react-router@npm:6.22.3": + version: 6.22.3 + resolution: "react-router@npm:6.22.3" dependencies: - "@remix-run/router": 1.15.2 + "@remix-run/router": 1.15.3 peerDependencies: react: ">=16.8" - checksum: adbf6afdd568fa746e1c16a90efcdeecb34d311bd7d8b14eec8df7bc0f972362cbe56ea5efa65de2ed62325389038ddf6e5c65b4c0e32d99fa58dc9132f9416e + checksum: 1f7d9a5a849761ff69ef8f3d3131b4c1c25d18b76317ba5ad6f0d9421192c0b8b71ab0cc818c57aad7b81ada725559e513307d0ab43296a460262f0358602672 languageName: node linkType: hard From 3400e02a6dfb3e80d1912ef59f2f512eb01b0137 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 11 Mar 2024 13:37:47 -0400 Subject: [PATCH 073/471] feat: Establish a mapping by drag and drop Fixes: #33 Fixes: #31 --- packages/poc-dnd-line/src/DrawLines.tsx | 7 +- packages/poc-dnd-line/src/SourceTarget.tsx | 67 +-------- .../src/canvas/CanvasProvider.tsx | 67 ++++++++- packages/ui/src/DataMapper.tsx | 11 +- .../ui/src/components/debug/DnDMonitor.tsx | 21 +++ .../ui/src/components/document/Document.tsx | 19 ++- .../src/components/document/DocumentField.tsx | 91 ++++++++---- .../document/ImportDocumentButton.tsx | 22 ++- .../ui/src/components/mapping/MappingLink.tsx | 139 ++++++++++++++++++ packages/ui/src/hooks/index.ts | 2 +- packages/ui/src/hooks/useCanvas.tsx | 10 ++ ...eDataMapperContext.ts => useDataMapper.ts} | 4 +- packages/ui/src/layout/MainLayout.tsx | 9 +- .../ui/src/layout/views/SourceTargetView.tsx | 14 +- packages/ui/src/main.tsx | 5 +- packages/ui/src/models/document.ts | 15 +- packages/ui/src/providers/CanvasProvider.tsx | 118 +++++++++++++++ .../ui/src/providers/DataMapperProvider.tsx | 41 ++---- packages/ui/src/services/mapping.service.ts | 21 +++ .../xml-schema-document.service.test.ts | 9 +- .../services/xml-schema-document.service.ts | 136 ++++++++++++----- 21 files changed, 613 insertions(+), 215 deletions(-) create mode 100644 packages/ui/src/components/debug/DnDMonitor.tsx create mode 100644 packages/ui/src/components/mapping/MappingLink.tsx create mode 100644 packages/ui/src/hooks/useCanvas.tsx rename packages/ui/src/hooks/{useDataMapperContext.ts => useDataMapper.ts} (56%) create mode 100644 packages/ui/src/providers/CanvasProvider.tsx create mode 100644 packages/ui/src/services/mapping.service.ts diff --git a/packages/poc-dnd-line/src/DrawLines.tsx b/packages/poc-dnd-line/src/DrawLines.tsx index 05235c90a..ef877b658 100644 --- a/packages/poc-dnd-line/src/DrawLines.tsx +++ b/packages/poc-dnd-line/src/DrawLines.tsx @@ -23,12 +23,7 @@ export const DrawLines: FunctionComponent = () => { const onRefresh = useCallback(() => { reloadFieldReferences(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - useEffect(() => { - onRefresh(); - }, [onRefresh]); + }, [reloadFieldReferences]); return ( diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx index 66031f15f..a31bba965 100644 --- a/packages/poc-dnd-line/src/SourceTarget.tsx +++ b/packages/poc-dnd-line/src/SourceTarget.tsx @@ -5,72 +5,16 @@ import { LineGroup } from './line/Line'; import { FunctionComponent, useCallback, useEffect, useRef, useState } from 'react'; import { useCanvas } from './canvas/useCanvas'; import { CanvasProvider } from './canvas/CanvasProvider'; -import { - DataRef, - DndContext, - DragOverlay, - DragStartEvent, - KeyboardSensor, - MouseSensor, - TouchSensor, - useDndMonitor, - useSensor, - useSensors, -} from '@dnd-kit/core'; export const SourceTargetContainer: FunctionComponent = () => { - const DnDMonitor: FunctionComponent = () => { - useDndMonitor({ - onDragStart(event) { - console.log(`onDragStart: [active: ${JSON.stringify(event.active.data.current)}`); - }, - onDragEnd(event) { - console.log( - `onDragEnd: [active: ${JSON.stringify(event.active.data.current)}, overt:${JSON.stringify(event.over.data.current)}`, - ); - }, - onDragCancel(event) { - console.log('onDragCancel:' + JSON.stringify(event.active.data.current)); - }, - }); - return <>; - }; - - const mouseSensor = useSensor(MouseSensor, { - activationConstraint: { - distance: 10, - }, - }); - const touchSensor = useSensor(TouchSensor, { - activationConstraint: { - delay: 250, - tolerance: 5, - }, - }); - const keyboardSensor = useSensor(KeyboardSensor); - const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); - - const [activeData, setActiveData] = useState>>(null); - const handleDragStart = useCallback((event: DragStartEvent) => { - setActiveData(event.active.data); - }, []); - - const handleDragEnd = useCallback(() => { - setActiveData(null); - }, []); - return ( - - - - {activeData?.current ? activeData.current.name : null} - + ); }; -const SourceTarget: FunctionComponent = () => { +export const SourceTarget: FunctionComponent = () => { const sourceRef = useRef(null); const targetRef = useRef(null); const { setFieldReference, reloadFieldReferences } = useCanvas(); @@ -82,12 +26,7 @@ const SourceTarget: FunctionComponent = () => { const handleRefresh = useCallback(() => { reloadFieldReferences(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - useEffect(() => { - handleRefresh(); - }, [handleRefresh]); + }, [reloadFieldReferences]); return ( diff --git a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx index 28599ac04..e5f7150e4 100644 --- a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx +++ b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx @@ -7,6 +7,38 @@ import { useMemo, useState, } from 'react'; +import { + DataRef, + DndContext, + DragOverlay, + DragStartEvent, + KeyboardSensor, + MouseSensor, + TouchSensor, + useDndMonitor, + useSensor, + useSensors, +} from '@dnd-kit/core'; +import { Label } from '@patternfly/react-core'; + +const DnDMonitor: FunctionComponent = () => { + useDndMonitor({ + onDragStart(event) { + console.log(`onDragStart: [active: ${JSON.stringify(event.active?.data.current)}`); + }, + onDragEnd(event) { + console.log( + `onDragEnd: [active: ${JSON.stringify(event.active?.data.current)}, over:${JSON.stringify(event.over?.data.current)}`, + ); + }, + onDragCancel(event) { + console.log( + `onDragCancel: active: ${JSON.stringify(event.active?.data.current)}, over:${JSON.stringify(event.over?.data.current)}`, + ); + }, + }); + return <>; +}; export interface ICanvasContext { setFieldReference: (path: string, ref: MutableRefObject) => void; @@ -18,11 +50,34 @@ export interface ICanvasContext { export const CanvasContext = createContext(undefined); export const CanvasProvider: FunctionComponent = (props) => { + const mouseSensor = useSensor(MouseSensor, { + activationConstraint: { + distance: 10, + }, + }); + const touchSensor = useSensor(TouchSensor, { + activationConstraint: { + delay: 250, + tolerance: 5, + }, + }); + const keyboardSensor = useSensor(KeyboardSensor); + const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); + + const [activeData, setActiveData] = useState>>(null); const [fieldReferenceMap, setFieldReferenceMap] = useState>>( new Map>(), ); const [parentPathMap, setParentPathMap] = useState>(new Map()); + const handleDragStart = useCallback((event: DragStartEvent) => { + setActiveData(event.active.data); + }, []); + + const handleDragEnd = useCallback(() => { + setActiveData(null); + }, []); + const setFieldReference = useCallback( (path: string, ref: MutableRefObject) => { fieldReferenceMap.set(path, ref); @@ -54,5 +109,15 @@ export const CanvasProvider: FunctionComponent = (props) => { }; }, [setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReferences]); - return {props.children}; + return ( + + + + {props.children} + + + + + + ); }; diff --git a/packages/ui/src/DataMapper.tsx b/packages/ui/src/DataMapper.tsx index 7040692a5..0eb32801d 100644 --- a/packages/ui/src/DataMapper.tsx +++ b/packages/ui/src/DataMapper.tsx @@ -16,19 +16,14 @@ import { MainLayout } from './layout'; import { FunctionComponent } from 'react'; -import { useDataMapperContext } from './hooks/useDataMapperContext'; -import { DndContext } from '@dnd-kit/core'; +import { useDataMapper } from './hooks/useDataMapper'; export interface IDataMapperProps { modalsContainerId?: string; } export const DataMapper: FunctionComponent = () => { - const { selectedMapping } = useDataMapperContext()!; + const { selectedMapping } = useDataMapper()!; - return ( - - - - ); + return ; }; diff --git a/packages/ui/src/components/debug/DnDMonitor.tsx b/packages/ui/src/components/debug/DnDMonitor.tsx new file mode 100644 index 000000000..2749baa72 --- /dev/null +++ b/packages/ui/src/components/debug/DnDMonitor.tsx @@ -0,0 +1,21 @@ +import { useDndMonitor } from '@dnd-kit/core'; +import { FunctionComponent } from 'react'; + +export const DnDMonitor: FunctionComponent = () => { + useDndMonitor({ + onDragStart(event) { + console.log(`onDragStart: [active: ${JSON.stringify(event.active?.data.current?.path)}`); + }, + onDragEnd(event) { + console.log( + `onDragEnd: [active: ${JSON.stringify(event.active?.data.current?.path)}, over:${JSON.stringify(event.over?.data.current?.path)}`, + ); + }, + onDragCancel(event) { + console.log( + `onDragCancel: active: ${JSON.stringify(event.active?.data.current?.path)}, over:${JSON.stringify(event.over?.data.current?.path)}`, + ); + }, + }); + return <>; +}; diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx index e196a35fd..02392f541 100644 --- a/packages/ui/src/components/document/Document.tsx +++ b/packages/ui/src/components/document/Document.tsx @@ -1,25 +1,34 @@ -import { FunctionComponent, useState } from 'react'; +import { FunctionComponent, useCallback, useState } from 'react'; import { Accordion, Card, CardBody, CardExpandableContent, CardHeader, CardTitle } from '@patternfly/react-core'; import { IDocument } from '../../models'; import { DocumentField } from './DocumentField'; +import { useCanvas } from '../../hooks/useCanvas'; export type DocumentProps = { model: IDocument; }; export const Document: FunctionComponent = ({ model }) => { + const { reloadFieldReferences } = useCanvas(); const [isExpanded, setExpanded] = useState(true); + const handleOnToggle = useCallback(() => { + reloadFieldReferences(); + }, [reloadFieldReferences]); + const handleOnExpand = useCallback(() => { + setExpanded(!isExpanded); + reloadFieldReferences(); + }, [isExpanded, reloadFieldReferences]); return ( - - setExpanded(!isExpanded)}> + + {model.name} - + {model.fields.map((field) => ( - + ))} diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index bc1d7325e..7dbc06d95 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -1,16 +1,34 @@ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; -import { FunctionComponent, useState } from 'react'; +import { forwardRef, FunctionComponent, useRef, useState } from 'react'; import { useDraggable, useDroppable } from '@dnd-kit/core'; import { IField } from '../../models'; +import { useCanvas } from '../../hooks/useCanvas'; + +type DocumentFieldContentProps = { + field: IField; +}; + +const DocumentFieldContent: FunctionComponent = ({ field }) => { + return field.isAttribute ? '@' + field.name : field.name; +}; type DocumentFieldProps = { field: IField; + onToggle: () => void; }; -export const DocumentField: FunctionComponent = ({ field }) => { + +export const DocumentField: FunctionComponent = ({ field, onToggle }) => { + const { setFieldReference } = useCanvas(); + const ref = useRef(null); + setFieldReference(field.path, ref); + return ; +}; + +const DocumentFieldImpl = forwardRef(({ field, onToggle }, forwardedRef) => { const [isExpanded, setIsExpanded] = useState(true); - const fieldId = field.name + Math.random(); const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ - id: 'droppable-' + fieldId, + id: 'droppable-' + field.path, + data: field, }); const { attributes, @@ -18,49 +36,62 @@ export const DocumentField: FunctionComponent = ({ field }) setNodeRef: setDraggableNodeRef, transform, } = useDraggable({ - id: 'draggable-' + fieldId, + id: 'draggable-' + field.path, + data: field, }); + const droppableStyle = { - color: isOver ? 'green' : undefined, + borderWidth: isOver ? 1 : undefined, + borderColor: isOver ? 'blue' : undefined, + color: isOver ? 'blue' : undefined, }; const draggableStyle = transform ? { - transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, + borderWidth: 1, + borderColor: 'blue', } : undefined; return ( - - {!field.fields || field.fields.length === 0 ? ( - -
    +
    + + {!field.fields || field.fields.length === 0 ? ( +
    - {field.isAttribute ? '@' + field.name : field.name} + + +
    - - ) : ( - <> - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> -
    -
    - {field.name} + ) : ( + <> +
    +
    + setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> + +
    - - - {field.fields.map((f: IField) => ( - - ))} - - - )} - + + {field.fields.map((f: IField) => ( + + ))} + + + )} + +
    ); -}; +}); diff --git a/packages/ui/src/components/document/ImportDocumentButton.tsx b/packages/ui/src/components/document/ImportDocumentButton.tsx index 7b6e8aaea..4aca043fc 100644 --- a/packages/ui/src/components/document/ImportDocumentButton.tsx +++ b/packages/ui/src/components/document/ImportDocumentButton.tsx @@ -20,13 +20,14 @@ import { ImportIcon } from '@patternfly/react-icons'; import { useFilePicker } from 'react-sage'; import { readFileAsString } from '../../util'; import { XmlSchemaDocumentService } from '../../services'; -import { useDataMapperContext } from '../../hooks'; +import { useDataMapper } from '../../hooks'; +import { DocumentType } from '../../models/document'; export interface IImportActionProps { isSource: boolean; } export const ImportDocumentButton: FunctionComponent = ({ isSource }) => { - const { sourceDocuments, refreshSourceDocuments, targetDocuments, refreshTargetDocuments } = useDataMapperContext(); + const { sourceDocuments, refreshSourceDocuments, targetDocuments, refreshTargetDocuments } = useDataMapper(); const { files, onClick, HiddenFileInput } = useFilePicker({ maxFileSize: 1, }); @@ -34,17 +35,14 @@ export const ImportDocumentButton: FunctionComponent = ({ is const onImport = useCallback( (file: File) => { - const fileName = file.name; readFileAsString(file).then((content) => { - const document = XmlSchemaDocumentService.parseXmlSchema(content); - document.name = fileName; - if (isSource) { - sourceDocuments.push(document); - refreshSourceDocuments(); - } else { - targetDocuments.push(document); - refreshTargetDocuments(); - } + XmlSchemaDocumentService.populateXmlSchemaDocument( + isSource ? sourceDocuments : targetDocuments, + isSource ? DocumentType.SOURCE : DocumentType.TARGET, + file.name, + content, + ); + isSource ? refreshSourceDocuments() : refreshTargetDocuments(); }); }, [isSource, refreshSourceDocuments, refreshTargetDocuments, sourceDocuments, targetDocuments], diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx new file mode 100644 index 000000000..41d61d086 --- /dev/null +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -0,0 +1,139 @@ +import { FunctionComponent, MutableRefObject, useCallback, useEffect, useState } from 'react'; +import { useCanvas } from '../../hooks/useCanvas'; +import { IMapping } from '../../models'; +import { useDataMapper } from '../../hooks'; + +type LineCoord = { + x1: number; + y1: number; + x2: number; + y2: number; +}; + +type LineProps = LineCoord & { + mapping: IMapping; +}; + +const MappingLink: FunctionComponent = ({ x1, y1, x2, y2, mapping }) => { + const { selectedMapping, setSelectedMapping } = useDataMapper(); + const [isOver, setIsOver] = useState(false); + const lineStyle = { + stroke: mapping === selectedMapping ? 'blue' : 'gray', + strokeWidth: isOver ? 6 : 3, + }; + + const onMouseEnter = useCallback(() => { + setIsOver(true); + }, []); + + const onMouseLeave = useCallback(() => { + setIsOver(false); + }, []); + + return ( + setSelectedMapping(mapping)} + onMouseEnter={onMouseEnter} + onMouseLeave={onMouseLeave} + d={`M${x1},${y1},${x2},${y2}`} + style={lineStyle} + > + + Source: {JSON.stringify(mapping.sourceFields.map((f) => f.path))}, Target:{' '} + {JSON.stringify(mapping.targetFields.map((f) => f.path))} + + + ); +}; + +export const MappingLinksContainer = () => { + const { mappings, selectedMapping } = useDataMapper(); + const [linePropsList, setLinePropsList] = useState([]); + const { getFieldReference } = useCanvas(); + + const populateCoordFromFieldRef = useCallback( + ( + coords: LineProps[], + mapping: IMapping, + sourceRef: MutableRefObject, + targetRef: MutableRefObject, + ) => { + const sourceRect = sourceRef.current?.getBoundingClientRect(); + const targetRect = targetRef.current?.getBoundingClientRect(); + if (!sourceRect || !targetRect) { + return; + } + + const lineProps = { + x1: sourceRect.right, + y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, + x2: targetRect.left, + y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, + mapping, + }; + coords.push(lineProps); + }, + [], + ); + + const getParentPath = useCallback((path: string) => { + const lastSeparatorIndex = path.lastIndexOf('/'); + return lastSeparatorIndex !== -1 ? path.substring(0, lastSeparatorIndex) : null; + }, []); + + const getClosestExpandedPath = useCallback( + (path: string) => { + let tracedPath: string | null = path; + while (!!tracedPath && getFieldReference(tracedPath)?.current?.getClientRects().length === 0) { + tracedPath = getParentPath(tracedPath); + } + return tracedPath; + }, + [getFieldReference, getParentPath], + ); + + useEffect(() => { + const answer: LineProps[] = mappings.reduce((acc, mapping) => { + for (const sourceField of mapping.sourceFields) { + for (const targetField of mapping.targetFields) { + const sourceClosestPath = getClosestExpandedPath(sourceField.path); + const targetClosestPath = getClosestExpandedPath(targetField.path); + if (sourceClosestPath && targetClosestPath) { + const sourceFieldRef = getFieldReference(sourceClosestPath); + const targetFieldRef = getFieldReference(targetClosestPath); + !!sourceFieldRef && + !!targetFieldRef && + populateCoordFromFieldRef(acc, mapping, sourceFieldRef, targetFieldRef); + } + } + } + return acc; + }, [] as LineProps[]); + setLinePropsList(answer); + }, [getClosestExpandedPath, getFieldReference, mappings, populateCoordFromFieldRef, selectedMapping]); + + return ( + + + {linePropsList.map((lineProps, index) => ( + + ))} + + + ); +}; diff --git a/packages/ui/src/hooks/index.ts b/packages/ui/src/hooks/index.ts index d6f3ce2f4..08be29e92 100644 --- a/packages/ui/src/hooks/index.ts +++ b/packages/ui/src/hooks/index.ts @@ -1,2 +1,2 @@ export * from './useToggle'; -export * from './useDataMapperContext'; +export * from './useDataMapper'; diff --git a/packages/ui/src/hooks/useCanvas.tsx b/packages/ui/src/hooks/useCanvas.tsx new file mode 100644 index 000000000..183af3b9e --- /dev/null +++ b/packages/ui/src/hooks/useCanvas.tsx @@ -0,0 +1,10 @@ +import { CanvasContext, ICanvasContext } from '../providers/CanvasProvider'; +import { useContext } from 'react'; + +export const errorMessage = 'useCanvas should be called into CanvasProvider'; + +export const useCanvas = (): ICanvasContext => { + const ctx = useContext(CanvasContext); + if (!ctx) throw new Error(errorMessage); + return ctx; +}; diff --git a/packages/ui/src/hooks/useDataMapperContext.ts b/packages/ui/src/hooks/useDataMapper.ts similarity index 56% rename from packages/ui/src/hooks/useDataMapperContext.ts rename to packages/ui/src/hooks/useDataMapper.ts index bdc69a9fd..fd44593b3 100644 --- a/packages/ui/src/hooks/useDataMapperContext.ts +++ b/packages/ui/src/hooks/useDataMapper.ts @@ -1,9 +1,9 @@ import { useContext } from 'react'; import { DataMapperContext, IDataMapperContext } from '../providers'; -export const errorMessage = 'useDataMapperContext should be called into DataMapperContextProvider'; +export const errorMessage = 'useDataMapper should be called into DataMapperProvider'; -export const useDataMapperContext = (): IDataMapperContext => { +export const useDataMapper = (): IDataMapperContext => { const ctx = useContext(DataMapperContext); if (!ctx) throw new Error(errorMessage); return ctx; diff --git a/packages/ui/src/layout/MainLayout.tsx b/packages/ui/src/layout/MainLayout.tsx index c60fa590c..e19066ca2 100644 --- a/packages/ui/src/layout/MainLayout.tsx +++ b/packages/ui/src/layout/MainLayout.tsx @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, memo, useContext, useMemo, useState } from 'react'; +import { FunctionComponent, memo, useContext, useMemo } from 'react'; import { Drawer, DrawerActions, @@ -32,13 +32,14 @@ import { MappingDetailsView, SourceTargetView } from './views'; import { DataMapperContext } from '../providers'; import { CanvasView } from '../models'; import { ContextToolbar } from './ContextToolbar'; +import { useDataMapper } from '../hooks'; export interface IMainLayoutProps { showSidebar: boolean; } export const MainLayout: FunctionComponent = memo(function MainLayout() { - const [isDrawerExpanded, setDrawerExpanded] = useState(false); + const { selectedMapping, setSelectedMapping } = useDataMapper(); const { activeView } = useContext(DataMapperContext)!; const currentView = useMemo(() => { @@ -62,7 +63,7 @@ export const MainLayout: FunctionComponent = memo(function Mai Mapping Details - setDrawerExpanded(false)} /> + setSelectedMapping(null)} /> @@ -71,7 +72,7 @@ export const MainLayout: FunctionComponent = memo(function Mai return ( - + {currentView} diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx index 96f3c38c8..030616810 100644 --- a/packages/ui/src/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -11,12 +11,13 @@ import { StackItem, } from '@patternfly/react-core'; import { FunctionComponent } from 'react'; -import { useDataMapperContext } from '../../hooks'; +import { useDataMapper } from '../../hooks'; import { Document } from '../../components/document'; import { ImportDocumentButton } from '../../components/document'; +import { MappingLinksContainer } from '../../components/mapping/MappingLink'; export const SourceTargetView: FunctionComponent = () => { - const { sourceDocuments, targetDocuments } = useDataMapperContext(); + const { sourceDocuments, targetDocuments } = useDataMapper(); const sourceDocumentsActions = ( @@ -33,9 +34,10 @@ export const SourceTargetView: FunctionComponent = () => { ); return ( - + + - + Source @@ -50,9 +52,9 @@ export const SourceTargetView: FunctionComponent = () => { - draw lines here +   - + Target diff --git a/packages/ui/src/main.tsx b/packages/ui/src/main.tsx index beb689578..9cd5e125d 100644 --- a/packages/ui/src/main.tsx +++ b/packages/ui/src/main.tsx @@ -2,11 +2,14 @@ import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be import { DataMapper } from './components'; import { createRoot } from 'react-dom/client'; import { DataMapperProvider } from './providers'; +import { CanvasProvider } from './providers/CanvasProvider'; const container = document.getElementById('root'); const root = createRoot(container!); root.render( - + + + , ); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index a93f18942..38ad6fcac 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,5 +1,3 @@ -import { generateRandomId } from '../util'; - export interface INamespace { alias: string; uri: string; @@ -26,6 +24,7 @@ export interface IField { export interface IDocument { id: string; name: string; + path: string; type: string; fields: IField[]; namespaces?: INamespace[]; @@ -33,23 +32,29 @@ export interface IDocument { export abstract class BaseDocument implements IDocument { fields: IField[] = []; - id: string = generateRandomId('document'); + abstract id: string; name: string = ''; + abstract path: string; type: string = ''; } export abstract class BaseField implements IField { enumeration: boolean = false; fields: IField[] = []; - id: string = generateRandomId('field'); + abstract id: string; isAttribute: boolean = false; isCollection: boolean = false; isConnected: boolean = false; isDisabled: boolean = false; isInCollection: boolean = false; name: string = ''; - path: string = ''; + abstract path: string; scope: string = ''; type: string = ''; value: string = ''; } + +export enum DocumentType { + SOURCE = 'source', + TARGET = 'target', +} diff --git a/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/providers/CanvasProvider.tsx new file mode 100644 index 000000000..a4abd34f1 --- /dev/null +++ b/packages/ui/src/providers/CanvasProvider.tsx @@ -0,0 +1,118 @@ +import { + createContext, + FunctionComponent, + MutableRefObject, + PropsWithChildren, + useCallback, + useMemo, + useState, +} from 'react'; +import { + DataRef, + DndContext, + DragEndEvent, + DragOverlay, + DragStartEvent, + KeyboardSensor, + MouseSensor, + TouchSensor, + useSensor, + useSensors, +} from '@dnd-kit/core'; +import { Label } from '@patternfly/react-core'; +import { useDataMapper } from '../hooks'; +import { IField } from '../models'; +import { MappingService } from '../services/mapping.service'; +import { DnDMonitor } from '../components/debug/DnDMonitor'; + +export interface ICanvasContext { + setFieldReference: (path: string, ref: MutableRefObject) => void; + getFieldReference: (path: string) => MutableRefObject | null; + getAllFieldPaths: () => string[]; + reloadFieldReferences: () => void; +} + +export const CanvasContext = createContext(undefined); + +export const CanvasProvider: FunctionComponent = (props) => { + const { mappings, refreshMappings } = useDataMapper(); + + const mouseSensor = useSensor(MouseSensor, { + activationConstraint: { + distance: 10, + }, + }); + const touchSensor = useSensor(TouchSensor, { + activationConstraint: { + delay: 250, + tolerance: 5, + }, + }); + const keyboardSensor = useSensor(KeyboardSensor); + const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); + + const [activeData, setActiveData] = useState> | null>(null); + const [fieldReferenceMap, setFieldReferenceMap] = useState>>( + new Map>(), + ); + + const handleDragStart = useCallback((event: DragStartEvent) => { + setActiveData(event.active.data); + }, []); + + const handleDragEnd = useCallback( + (event: DragEndEvent) => { + const sourceField = event.active.data.current as IField; + const targetField = event.over?.data.current as IField; + if (sourceField && targetField && !MappingService.mappingExists(mappings, sourceField, targetField)) { + const mapping = MappingService.createNewMapping(sourceField, targetField); + mappings.push(mapping); + refreshMappings(); + } + }, + [mappings, refreshMappings], + ); + + const setFieldReference = useCallback( + (path: string, ref: MutableRefObject) => { + fieldReferenceMap.set(path, ref); + }, + [fieldReferenceMap], + ); + + const getFieldReference = useCallback( + (path: string) => { + return fieldReferenceMap.get(path) || null; + }, + [fieldReferenceMap], + ); + + const getAllFieldPaths = useCallback(() => { + return Array.from(fieldReferenceMap.keys()); + }, [fieldReferenceMap]); + + const reloadFieldReferences = useCallback(() => { + setFieldReferenceMap(new Map(fieldReferenceMap)); + }, [fieldReferenceMap]); + + const value: ICanvasContext = useMemo(() => { + return { + setFieldReference, + getFieldReference, + getAllFieldPaths, + reloadFieldReferences, + }; + }, [setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReferences]); + + return ( + + + + {props.children} + + + + + + ); +}; diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index f48b8a752..f01a6c042 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -21,22 +21,17 @@ import { CanvasView, IDocument, IMapping } from '../models'; export interface IDataMapperContext { loading: boolean; activeView: CanvasView; - setActiveView(view: CanvasView): void; - constants: IDocument; - sourceProperties: IDocument; - targetProperties: IDocument; sourceDocuments: IDocument[]; refreshSourceDocuments: () => void; targetDocuments: IDocument[]; refreshTargetDocuments: () => void; - mappings: IMapping[]; - setMappings(mappings: IMapping[]): void; + mappings: IMapping[]; + refreshMappings(): void; selectedMapping: IMapping | null; - setSelectedMapping(mapping: IMapping | null): void; } @@ -45,24 +40,6 @@ export const DataMapperContext = createContext(null); export const DataMapperProvider: FunctionComponent = (props) => { const [loading, _setLoading] = useState(false); const [activeView, setActiveView] = useState(CanvasView.SOURCE_TARGET); - const [constants, _setConstants] = useState({ - id: 'constants', - name: 'Constants', - type: 'constants', - fields: [], - } as IDocument); - const [sourceProperties, _setSourceProperties] = useState({ - id: 'sourceProperties', - name: 'Source Properties', - type: 'source', - fields: [], - }); - const [targetProperties, _setTargetProperties] = useState({ - id: 'targetProperties', - name: 'Target Properties', - type: 'target', - fields: [], - }); const [sourceDocuments, setSourceDocuments] = useState([]); const [targetDocuments, setTargetDocuments] = useState([]); const [mappings, setMappings] = useState([]); @@ -71,24 +48,26 @@ export const DataMapperProvider: FunctionComponent = (props) const refreshSourceDocuments = useCallback(() => { setSourceDocuments([...sourceDocuments]); }, [sourceDocuments]); + const refreshTargetDocuments = useCallback(() => { setTargetDocuments([...targetDocuments]); }, [targetDocuments]); + const refreshMappings = useCallback(() => { + setMappings([...mappings]); + }, [mappings]); + const value = useMemo(() => { return { loading, activeView, setActiveView, - constants, - sourceProperties, - targetProperties, sourceDocuments, refreshSourceDocuments, targetDocuments, refreshTargetDocuments, mappings, - setMappings, + refreshMappings, selectedMapping, setSelectedMapping, }; @@ -96,14 +75,12 @@ export const DataMapperProvider: FunctionComponent = (props) activeView, refreshSourceDocuments, refreshTargetDocuments, - constants, loading, mappings, + refreshMappings, selectedMapping, sourceDocuments, - sourceProperties, targetDocuments, - targetProperties, ]); return ( diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts new file mode 100644 index 000000000..019a0f167 --- /dev/null +++ b/packages/ui/src/services/mapping.service.ts @@ -0,0 +1,21 @@ +import { IField, IMapping } from '../models'; + +export class MappingService { + static mappingExists(mappings: IMapping[], sourceField: IField, targetField: IField) { + return ( + !!mappings && + mappings.find((mapping) => { + return mapping.sourceFields[0]?.path === sourceField.path && mapping.targetFields[0]?.path === targetField.path; + }) + ); + } + + static createNewMapping(sourceField: IField, targetField: IField) { + return { + id: 'mapping-' + Math.random(), + name: '', + sourceFields: [sourceField], + targetFields: [targetField], + } as IMapping; + } +} diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index 890592463..003099987 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -1,5 +1,6 @@ import { XmlSchemaDocumentService, XmlSchemaField } from './xml-schema-document.service'; import * as fs from 'fs'; +import { DocumentType, IDocument } from '../models'; describe('XmlSchemaDocumentService', () => { const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); @@ -9,7 +10,13 @@ describe('XmlSchemaDocumentService', () => { expect(document).toBeDefined(); const shipOrder = XmlSchemaDocumentService.getFirstElement(document.xmlSchema); const fields: XmlSchemaField[] = []; - XmlSchemaDocumentService.populateElement(fields, shipOrder); + XmlSchemaDocumentService.populateElement(document, fields, shipOrder); expect(fields.length > 0).toBeTruthy(); }); + + it('should populate XML Schema Document', () => { + const docs: IDocument[] = []; + XmlSchemaDocumentService.populateXmlSchemaDocument(docs, DocumentType.SOURCE, 'ShipOrder.xsd', orderXsd); + expect(docs.length).toEqual(1); + }); }); diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 6a179553e..96759a71c 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -23,11 +23,12 @@ import { XmlSchemaSequenceMember, XmlSchemaSimpleType, } from '@datamapper-poc/xml-schema-ts'; -import { BaseDocument, BaseField } from '../models'; +import { BaseDocument, BaseField, IDocument, DocumentType } from '../models'; export class XmlSchemaDocument extends BaseDocument { rootElement: XmlSchemaElement; fields: XmlSchemaField[] = []; + id: string = `document-` + Math.random(); constructor(public xmlSchema: XmlSchema) { super(); @@ -36,15 +37,33 @@ export class XmlSchemaDocument extends BaseDocument { } // TODO let user choose the root element from top level elements if there're multiple this.rootElement = XmlSchemaDocumentService.getFirstElement(this.xmlSchema); - XmlSchemaDocumentService.populateElement(this.fields, this.rootElement); + XmlSchemaDocumentService.populateElement(this, this.fields, this.rootElement); this.type = 'XML'; } + + get path() { + return `${this.id}:/`; + } } +type XmlSchemaParentType = XmlSchemaDocument | XmlSchemaField; + export class XmlSchemaField extends BaseField { fields: XmlSchemaField[] = []; namespaceURI: string | null = ''; namespacePrefix: string | null = ''; + + constructor(private parent: XmlSchemaParentType) { + super(); + } + + get path(): string { + return `${this.parent.path}/${this.id}`; + } + + get id(): string { + return this.isAttribute ? '@' + this.name : this.name; + } } export class XmlSchemaDocumentService { @@ -54,6 +73,21 @@ export class XmlSchemaDocumentService { return new XmlSchemaDocument(xmlSchema); } + static populateXmlSchemaDocument(documents: IDocument[], type: DocumentType, name: string, content: string) { + const doc = XmlSchemaDocumentService.parseXmlSchema(content); + doc.name = name; + doc.id = type + ':' + name; + const sameNameDocs = documents.filter((d) => d.name === name); + for (let sequence = 0; sameNameDocs.length > 0; sequence++) { + const candidateId = `${name}.${sequence}`; + if (!sameNameDocs.find((d) => d.id === candidateId)) { + doc.id = candidateId; + break; + } + } + documents.push(doc); + } + static getFirstElement(xmlSchema: XmlSchema) { return xmlSchema.getElements().values().next().value; } @@ -75,8 +109,8 @@ export class XmlSchemaDocumentService { ); } - static populateElement(fields: XmlSchemaField[], element: XmlSchemaElement) { - const field: XmlSchemaField = new XmlSchemaField(); + static populateElement(parent: XmlSchemaParentType, fields: XmlSchemaField[], element: XmlSchemaElement) { + const field: XmlSchemaField = new XmlSchemaField(parent); field.name = element.getWireName()!.getLocalPart()!; field.namespaceURI = element.getWireName()!.getNamespaceURI(); field.namespacePrefix = element.getWireName()!.getPrefix(); @@ -94,26 +128,30 @@ export class XmlSchemaDocumentService { const complex = schemaType as XmlSchemaComplexType; const attributes: XmlSchemaAttributeOrGroupRef[] = complex.getAttributes(); attributes.forEach((attr) => { - XmlSchemaDocumentService.populateAttributeOrGroupRef(field.fields, attr); + XmlSchemaDocumentService.populateAttributeOrGroupRef(field, field.fields, attr); }); - XmlSchemaDocumentService.populateParticle(field.fields, complex.getParticle()); + XmlSchemaDocumentService.populateParticle(field, field.fields, complex.getParticle()); } else { XmlSchemaDocumentService.throwNotYetSupported(element); } } - static populateAttributeOrGroupRef(fields: XmlSchemaField[], attr: XmlSchemaAttributeOrGroupRef) { + static populateAttributeOrGroupRef( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + attr: XmlSchemaAttributeOrGroupRef, + ) { if (attr instanceof XmlSchemaAttribute) { - XmlSchemaDocumentService.populateAttribute(fields, attr); + XmlSchemaDocumentService.populateAttribute(parent, fields, attr); } else if (attr instanceof XmlSchemaAttributeGroupRef) { - XmlSchemaDocumentService.populateAttributeGroupRef(fields, attr); + XmlSchemaDocumentService.populateAttributeGroupRef(parent, fields, attr); } else { XmlSchemaDocumentService.throwNotYetSupported(attr); } } - static populateAttribute(fields: XmlSchemaField[], attr: XmlSchemaAttribute) { - const field = new XmlSchemaField(); + static populateAttribute(parent: XmlSchemaParentType, fields: XmlSchemaField[], attr: XmlSchemaAttribute) { + const field = new XmlSchemaField(parent); field.isAttribute = true; field.name = attr.getWireName()!.getLocalPart()!; field.namespaceURI = attr.getWireName()!.getNamespaceURI(); @@ -121,44 +159,56 @@ export class XmlSchemaDocumentService { fields.push(field); } - static populateAttributeGroupRef(fields: XmlSchemaField[], groupRef: XmlSchemaAttributeGroupRef) { + static populateAttributeGroupRef( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + groupRef: XmlSchemaAttributeGroupRef, + ) { const ref: XmlSchemaRef = groupRef.getRef(); - XmlSchemaDocumentService.populateAttributeGroup(fields, ref.getTarget()); + XmlSchemaDocumentService.populateAttributeGroup(parent, fields, ref.getTarget()); } - static populateAttributeGroupMember(fields: XmlSchemaField[], member: XmlSchemaAttributeGroupMember) { + static populateAttributeGroupMember( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + member: XmlSchemaAttributeGroupMember, + ) { if (member instanceof XmlSchemaAttribute) { - XmlSchemaDocumentService.populateAttribute(fields, member); + XmlSchemaDocumentService.populateAttribute(parent, fields, member); } else if (member instanceof XmlSchemaAttributeGroup) { - XmlSchemaDocumentService.populateAttributeGroup(fields, member); + XmlSchemaDocumentService.populateAttributeGroup(parent, fields, member); } else if (member instanceof XmlSchemaAttributeGroupRef) { - XmlSchemaDocumentService.populateAttributeGroupRef(fields, member); + XmlSchemaDocumentService.populateAttributeGroupRef(parent, fields, member); } else { XmlSchemaDocumentService.throwNotYetSupported(member); } } - static populateAttributeGroup(fields: XmlSchemaField[], group: XmlSchemaAttributeGroup | null) { + static populateAttributeGroup( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + group: XmlSchemaAttributeGroup | null, + ) { if (group == null) { return; } group .getAttributes() .forEach((member: XmlSchemaAttributeGroupMember) => - XmlSchemaDocumentService.populateAttributeGroupMember(fields, member), + XmlSchemaDocumentService.populateAttributeGroupMember(parent, fields, member), ); } - static populateParticle(fields: XmlSchemaField[], particle: XmlSchemaParticle | null) { + static populateParticle(parent: XmlSchemaParentType, fields: XmlSchemaField[], particle: XmlSchemaParticle | null) { if (particle == null) { return; } if (particle instanceof XmlSchemaAny) { XmlSchemaDocumentService.populateAny(fields, particle); } else if (particle instanceof XmlSchemaElement) { - XmlSchemaDocumentService.populateElement(fields, particle); + XmlSchemaDocumentService.populateElement(parent, fields, particle); } else if (particle instanceof XmlSchemaGroupParticle) { - XmlSchemaDocumentService.populateGroupParticle(fields, particle); + XmlSchemaDocumentService.populateGroupParticle(parent, fields, particle); } else if (particle instanceof XmlSchemaGroupRef) { XmlSchemaDocumentService.populateGroupRef(fields, particle); } else { @@ -171,7 +221,11 @@ export class XmlSchemaDocumentService { XmlSchemaDocumentService.throwNotYetSupported(schemaAny); } - static populateGroupParticle(fields: XmlSchemaField[], groupParticle: XmlSchemaGroupParticle | null) { + static populateGroupParticle( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + groupParticle: XmlSchemaGroupParticle | null, + ) { if (groupParticle == null) { return; } @@ -179,17 +233,21 @@ export class XmlSchemaDocumentService { const choice = groupParticle as XmlSchemaChoice; choice .getItems() - .forEach((member: XmlSchemaChoiceMember) => XmlSchemaDocumentService.populateChoiceMember(fields, member)); + .forEach((member: XmlSchemaChoiceMember) => + XmlSchemaDocumentService.populateChoiceMember(parent, fields, member), + ); } else if (groupParticle instanceof XmlSchemaSequence) { const sequence = groupParticle as XmlSchemaSequence; sequence .getItems() - .forEach((member: XmlSchemaSequenceMember) => XmlSchemaDocumentService.populateSequenceMember(fields, member)); + .forEach((member: XmlSchemaSequenceMember) => + XmlSchemaDocumentService.populateSequenceMember(parent, fields, member), + ); } else if (groupParticle instanceof XmlSchemaAll) { const all = groupParticle as XmlSchemaAll; all .getItems() - .forEach((member: XmlSchemaAllMember) => XmlSchemaDocumentService.populateAllMember(fields, member)); + .forEach((member: XmlSchemaAllMember) => XmlSchemaDocumentService.populateAllMember(parent, fields, member)); } else { XmlSchemaDocumentService.throwNotYetSupported(groupParticle); } @@ -199,37 +257,41 @@ export class XmlSchemaDocumentService { XmlSchemaDocumentService.throwNotYetSupported(groupRef); } - static populateChoiceMember(fields: XmlSchemaField[], member: XmlSchemaChoiceMember) { + static populateChoiceMember(parent: XmlSchemaParentType, fields: XmlSchemaField[], member: XmlSchemaChoiceMember) { if (member instanceof XmlSchemaParticle) { - XmlSchemaDocumentService.populateParticle(fields, member); + XmlSchemaDocumentService.populateParticle(parent, fields, member); } else if (member instanceof XmlSchemaGroup) { - XmlSchemaDocumentService.populateGroup(fields, member); + XmlSchemaDocumentService.populateGroup(parent, fields, member); } else { XmlSchemaDocumentService.throwNotYetSupported(member); } } - static populateSequenceMember(fields: XmlSchemaField[], member: XmlSchemaSequenceMember) { + static populateSequenceMember( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + member: XmlSchemaSequenceMember, + ) { if (member instanceof XmlSchemaParticle) { - XmlSchemaDocumentService.populateParticle(fields, member); + XmlSchemaDocumentService.populateParticle(parent, fields, member); } else if (member instanceof XmlSchemaGroup) { - XmlSchemaDocumentService.populateGroup(fields, member); + XmlSchemaDocumentService.populateGroup(parent, fields, member); } else { XmlSchemaDocumentService.throwNotYetSupported(member); } } - static populateAllMember(fields: XmlSchemaField[], member: XmlSchemaAllMember) { + static populateAllMember(parent: XmlSchemaParentType, fields: XmlSchemaField[], member: XmlSchemaAllMember) { if (member instanceof XmlSchemaParticle) { - XmlSchemaDocumentService.populateParticle(fields, member); + XmlSchemaDocumentService.populateParticle(parent, fields, member); } else if (member instanceof XmlSchemaGroup) { - XmlSchemaDocumentService.populateGroup(fields, member); + XmlSchemaDocumentService.populateGroup(parent, fields, member); } else { XmlSchemaDocumentService.throwNotYetSupported(member); } } - static populateGroup(fields: XmlSchemaField[], group: XmlSchemaGroup) { - XmlSchemaDocumentService.populateParticle(fields, group.getParticle()); + static populateGroup(parent: XmlSchemaParentType, fields: XmlSchemaField[], group: XmlSchemaGroup) { + XmlSchemaDocumentService.populateParticle(parent, fields, group.getParticle()); } } From ab28350139c4bc3faa7a3cecd1676f245dda5edb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 01:16:19 +0000 Subject: [PATCH 074/471] chore(deps): update dependency @types/node to v20.11.26 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f52ab66a3..55509c7b4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3813,11 +3813,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.25 - resolution: "@types/node@npm:20.11.25" + version: 20.11.26 + resolution: "@types/node@npm:20.11.26" dependencies: undici-types: ~5.26.4 - checksum: bdb29da3f3dc687a0104cb70e30b5277d9df8f22843a4ed94835762683a95a8a0ea0c2ed0cf96f6eeff348491dd50dd9b20307d08f71ba7cb489d54a81cbbfec + checksum: 2cd5a373d2880b7f07ae65d4d23660cdcabddb12772ce631b6caad2f9283350b8a17c802590f67f0ccec5a9c7d43ae0ecd9637c5ad870b8f793328af8c61eae5 languageName: node linkType: hard From 11e15951bc88395a587fe1a8dbf2649867a56170 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 01:16:39 +0000 Subject: [PATCH 075/471] chore(deps): update dependency vite to v5.1.6 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 55509c7b4..b81afbb49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13128,8 +13128,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.1.5 - resolution: "vite@npm:5.1.5" + version: 5.1.6 + resolution: "vite@npm:5.1.6" dependencies: esbuild: ^0.19.3 fsevents: ~2.3.3 @@ -13163,7 +13163,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 14c079ebe508d55198a3b1ca528d13515c745d7ae279e4864e89110a1661a4cfa880d894c2d7dcf557f6ed3ffc17fa3abea9d9ea4b6f256f0cab99d16a3b385b + checksum: 21863ca12303ea6305fe9230a55e7cb30b4cac05dd2a2596889e079163ccc81bcb465ff6dd165001042f47e999192b9c579329484211e000afe9b47068c7fab0 languageName: node linkType: hard From 2eb367047096e1a42a1a6a34a9c17f77000905aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 05:30:49 +0000 Subject: [PATCH 076/471] chore(deps): update eslint to v7.2.0 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index b81afbb49..e92780d4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3939,14 +3939,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.1.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.1.1" + version: 7.2.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.2.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/type-utils": 7.1.1 - "@typescript-eslint/utils": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@typescript-eslint/scope-manager": 7.2.0 + "@typescript-eslint/type-utils": 7.2.0 + "@typescript-eslint/utils": 7.2.0 + "@typescript-eslint/visitor-keys": 7.2.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -3959,25 +3959,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: e439a09996dd1b2bc8a643d7a1c7aad09b744ee38f6d3a8d391a7a846a23eafd3b1513c73da363df62e756f8b3a27c569b12fcbedad0fc1f87c0af20fd53db8e + checksum: 1f6e1d12774f4a2cbe585fdaa0e74982c6b553281624c23646e043547736d2893c4a55fbbee4f7d9d596291f3b94b1856f11c4d71cf6b5bce988945f0fad60d4 languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.1.1 - resolution: "@typescript-eslint/parser@npm:7.1.1" + version: 7.2.0 + resolution: "@typescript-eslint/parser@npm:7.2.0" dependencies: - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/typescript-estree": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@typescript-eslint/scope-manager": 7.2.0 + "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/typescript-estree": 7.2.0 + "@typescript-eslint/visitor-keys": 7.2.0 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 9a8494a3ca517759e33c8a153779efe1331d86bcd4af5110d14c79e2507596265dd7cf113c9312fdf97832b60e76646dbabe9b87eb55b6616ba2a0c038b9fad1 + checksum: 21deb2e7ad1fc730f637af08f5c549f30ef5b50f424639f57f5bc01274e648db47c696bb994bb24e87424b593d4084e306447c9431a0c0e4807952996db306f4 languageName: node linkType: hard @@ -3991,22 +3991,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/scope-manager@npm:7.1.1" +"@typescript-eslint/scope-manager@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/scope-manager@npm:7.2.0" dependencies: - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 - checksum: 4f91bed41b14051335ec7f73bb2c8970018ba2c056dda3166a722d85a620a610643e7f703304c03106759d0a195ea1d9ff44edcc86feb2c62817ae3d06276c49 + "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/visitor-keys": 7.2.0 + checksum: b4ef8e35a56f590fa56cf769e111907828abb4793f482bf57e3fc8c987294ec119acb96359aa4b0150eea7416816e0b2d8635dccd1e4a5c2b02678b0f74def94 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/type-utils@npm:7.1.1" +"@typescript-eslint/type-utils@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/type-utils@npm:7.2.0" dependencies: - "@typescript-eslint/typescript-estree": 7.1.1 - "@typescript-eslint/utils": 7.1.1 + "@typescript-eslint/typescript-estree": 7.2.0 + "@typescript-eslint/utils": 7.2.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4014,7 +4014,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: d1afa5c5e4602495a545d0d32aca0bbf6963fb0cbf77e47b2a95883e96d35bd9d51e8eb8d51c7d5b7e4e6ed7a275970eb80ed566e25833c8b4517791df8e648a + checksum: d38b91ce2c3ffced243948e4778c3b015cf6a4fe988f35000977bf611c33edf455a92a78e69efe1ffa68257110a286c9c5593553bc32e19170410a1f730efed6 languageName: node linkType: hard @@ -4032,10 +4032,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/types@npm:7.1.1" - checksum: 42be2d881728d99ab50cb4133656d2f54770304a5dca83777a032b9ec20f6e11ca38db79d2b77b29b9cb41a052aa872f4ac2e37b61d40b438efe91e355ec798f +"@typescript-eslint/types@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/types@npm:7.2.0" + checksum: 237acd24aa55b762ee98904e4f422ba86579325200dcd058b3cbfe70775926e7f00ee0295788d81eb728f3a6326fe4401c648aee9eb1480d9030a441c17520e8 languageName: node linkType: hard @@ -4057,12 +4057,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.1.1" +"@typescript-eslint/typescript-estree@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.2.0" dependencies: - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/visitor-keys": 7.1.1 + "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/visitor-keys": 7.2.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4072,7 +4072,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 19c62c792ff05ccea7e8c6054f55be7d2423695cb7ef84b955ee2b74d950e769b353100032467be71a436f3439ecba3b8709513581755e98e910ecb9d8198223 + checksum: fe882195cad45bb67e7e127efa9c31977348d0ca923ef26bb9fbd03a2ab64e6772e6e60954ba07a437684fae8e35897d71f0e6a1ef8fbf3f0025cd314960cd9d languageName: node linkType: hard @@ -4094,20 +4094,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/utils@npm:7.1.1" +"@typescript-eslint/utils@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/utils@npm:7.2.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.1.1 - "@typescript-eslint/types": 7.1.1 - "@typescript-eslint/typescript-estree": 7.1.1 + "@typescript-eslint/scope-manager": 7.2.0 + "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/typescript-estree": 7.2.0 semver: ^7.5.4 peerDependencies: eslint: ^8.56.0 - checksum: 76a499c28dec37effb3512a49e51e1d788e49647ab750fc8a0d16c3aae4b9fea83f1cd20b5bd0be6113eb6112a96e93ee3327ccfd5c80028526c3ce5a73b5027 + checksum: 1d333bdc50c52de5757d860512db0dde5748c5fbf8c66a8a984a3bff10d4cd492878c9d5ca3a49d869fdf8d6cf415594be8e7c3cfb4dfe9e3f3f5db297877ad4 languageName: node linkType: hard @@ -4149,13 +4149,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.1.1": - version: 7.1.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.1.1" +"@typescript-eslint/visitor-keys@npm:7.2.0": + version: 7.2.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" dependencies: - "@typescript-eslint/types": 7.1.1 + "@typescript-eslint/types": 7.2.0 eslint-visitor-keys: ^3.4.1 - checksum: fc98a8782ad9c5dbb0d6ed89baa89c37d3cb28ecc08fb013180bed4e5336e1d289ad3cdb1cd71b9c0abb7b624858258c0d68fe4db8911416b61f13ec7c553a47 + checksum: d9b11b52737450f213cea5c6e07e4672684da48325905c096ee09302b6b261c0bb226e1e350011bdf127c0cbbdd9e6474c905befdfa0a2118fc89ece16770f2b languageName: node linkType: hard From d95a847cf43c1b4549089d7e6adac083c175ae3b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 01:40:27 +0000 Subject: [PATCH 077/471] fix(deps): update @patternfly to v5.2.2 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index e92780d4f..37843ed69 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2915,9 +2915,9 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0, @patternfly/react-core@npm:^5.2.1": - version: 5.2.1 - resolution: "@patternfly/react-core@npm:5.2.1" +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0, @patternfly/react-core@npm:^5.2.2": + version: 5.2.2 + resolution: "@patternfly/react-core@npm:5.2.2" dependencies: "@patternfly/react-icons": ^5.2.1 "@patternfly/react-styles": ^5.2.1 @@ -2928,7 +2928,7 @@ __metadata: peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 81135f23e4f42f49dcbe1bb40ee439813db450da67ab3f0651761905363e881e5d354ebed63762f19394692638b6c569309c6bc84afbc04fed5fe1577cdd4caa + checksum: 88bee51a0275e493dbd9519d50bffa548096d5d06b644ced1e14dfe9771d3ec6c6d1bac80513db37e1866803435372e8ffc3c8ceeaaed4bb332e01ad7122a92d languageName: node linkType: hard @@ -2967,10 +2967,10 @@ __metadata: linkType: hard "@patternfly/react-table@npm:^5.1.2, @patternfly/react-table@npm:^5.2.1": - version: 5.2.1 - resolution: "@patternfly/react-table@npm:5.2.1" + version: 5.2.2 + resolution: "@patternfly/react-table@npm:5.2.2" dependencies: - "@patternfly/react-core": ^5.2.1 + "@patternfly/react-core": ^5.2.2 "@patternfly/react-icons": ^5.2.1 "@patternfly/react-styles": ^5.2.1 "@patternfly/react-tokens": ^5.2.1 @@ -2979,7 +2979,7 @@ __metadata: peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 0b11a03381a0ccaaefc0f178b680116ae80f949d51a34eaaaf10fc032f935719f2755d3186a32c94d04ee717731bbfe70ca5a412e76d31aba654a336b41b88e9 + checksum: a97a63297d72a6c66eb3af07c05f7b5ab62c97250490af59eaa6992eab2e5b5c2cb170a307591ad18085849fc9a69b716acd969f74d3744106c2e0ab6e13e165 languageName: node linkType: hard From 18220936d4c5030bc17dfa03737532ab3552cbd0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Mar 2024 05:31:03 +0000 Subject: [PATCH 078/471] chore(deps): update dependency @storybook/addon-actions to v8 --- packages/ui/package.json | 2 +- yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 3dc712af4..a3475fe81 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -67,7 +67,7 @@ "@babel/preset-env": "^7.24.0", "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.23.3", - "@storybook/addon-actions": "^7.6.12", + "@storybook/addon-actions": "^8.0.0", "@storybook/addon-knobs": "^7.0.2", "@testing-library/jest-dom": "^6.4.2", "@types/jest": "^29.5.12", diff --git a/yarn.lock b/yarn.lock index 37843ed69..a9bbc7971 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1600,7 +1600,7 @@ __metadata: "@patternfly/react-core": ^5.1.2 "@patternfly/react-table": ^5.1.2 "@patternfly/react-topology": ^5.1.0 - "@storybook/addon-actions": ^7.6.12 + "@storybook/addon-actions": ^8.0.0 "@storybook/addon-knobs": ^7.0.2 "@testing-library/jest-dom": ^6.4.2 "@types/jest": ^29.5.12 @@ -3255,17 +3255,17 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:^7.6.12": - version: 7.6.17 - resolution: "@storybook/addon-actions@npm:7.6.17" +"@storybook/addon-actions@npm:^8.0.0": + version: 8.0.0 + resolution: "@storybook/addon-actions@npm:8.0.0" dependencies: - "@storybook/core-events": 7.6.17 + "@storybook/core-events": 8.0.0 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: bc512cb1664b614b39fe00340f4eb6bd3311fd26828a5fd6f02448427c6b20bebe17d1f17de2fff1f2a16195b277945920208b924f0a7cca6f4155eec70b79d9 + checksum: c24e07def81e77620c9fafa14cde7aa426efe09b1e4a7906baa22165c17df338dd171cc5b0f3c407ef036583774f25a840521f16b4b2442e0db60699a5044145 languageName: node linkType: hard @@ -3301,12 +3301,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:7.6.17": - version: 7.6.17 - resolution: "@storybook/core-events@npm:7.6.17" +"@storybook/core-events@npm:8.0.0": + version: 8.0.0 + resolution: "@storybook/core-events@npm:8.0.0" dependencies: ts-dedent: ^2.0.0 - checksum: 7463d8349211f23e9a25e08d85b04b9f6b24ee8747c775a8ec41ac4ff208e06f5183487d0f92af1e820f9c5044393a28e2065e5183a43b758f65deaab3ac3b61 + checksum: 5c58add81bae0b9de642ddb06568c663651574ddb86007b50c0a5877c3e300135e3f1a6533a6dd25e260d29c11c811410481e2fc6523f5d4d221ad66d18e91d5 languageName: node linkType: hard From 789fb7466ca01d8345317feebfed64028dbf47ee Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 14 Mar 2024 20:30:46 -0400 Subject: [PATCH 079/471] refactor: refactored DocumentType, documentId and FieldIdentifier where FieldIdentifier contains the field path --- packages/ui/src/DataMapper.tsx | 16 +- .../ui/src/components/debug/CanvasMonitor.tsx | 40 +++++ .../components/debug/DataMapperMonitor.tsx | 16 ++ .../ui/src/components/debug/DnDMonitor.tsx | 21 --- .../ui/src/components/document/Document.tsx | 7 +- .../src/components/document/DocumentField.tsx | 149 +++++++++--------- .../document/ImportDocumentButton.tsx | 2 +- .../ui/src/components/mapping/MappingLink.tsx | 8 +- .../toolbar/ToggleDebugToolbarItem.tsx | 22 +++ packages/ui/src/hooks/useDataMapper.ts | 2 +- packages/ui/src/layout/ContextToolbar.tsx | 2 + .../src/layout/views/MappingDetailsView.tsx | 68 +++++++- .../ui/src/layout/views/SourceTargetView.tsx | 5 +- packages/ui/src/models/document.test.ts | 36 +++++ packages/ui/src/models/document.ts | 79 +++++++--- packages/ui/src/providers/CanvasProvider.tsx | 48 +++--- .../ui/src/providers/DataMapperProvider.tsx | 9 +- .../mapping-serializer.service.test.ts | 22 +++ .../services/mapping-serializer.service.ts | 36 +++++ packages/ui/src/services/mapping.service.ts | 7 +- .../xml-schema-document.service.test.ts | 2 +- .../services/xml-schema-document.service.ts | 63 ++++++-- packages/xml-schema-ts/src/index.ts | 1 + 23 files changed, 488 insertions(+), 173 deletions(-) create mode 100644 packages/ui/src/components/debug/CanvasMonitor.tsx create mode 100644 packages/ui/src/components/debug/DataMapperMonitor.tsx delete mode 100644 packages/ui/src/components/debug/DnDMonitor.tsx create mode 100644 packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx create mode 100644 packages/ui/src/models/document.test.ts create mode 100644 packages/ui/src/services/mapping-serializer.service.test.ts create mode 100644 packages/ui/src/services/mapping-serializer.service.ts diff --git a/packages/ui/src/DataMapper.tsx b/packages/ui/src/DataMapper.tsx index 0eb32801d..e1aa2322a 100644 --- a/packages/ui/src/DataMapper.tsx +++ b/packages/ui/src/DataMapper.tsx @@ -17,13 +17,25 @@ import { MainLayout } from './layout'; import { FunctionComponent } from 'react'; import { useDataMapper } from './hooks/useDataMapper'; +import { DataMapperMonitor } from './components/debug/DataMapperMonitor'; +import { CanvasMonitor } from './components/debug/CanvasMonitor'; export interface IDataMapperProps { modalsContainerId?: string; } export const DataMapper: FunctionComponent = () => { - const { selectedMapping } = useDataMapper()!; + const { debug, selectedMapping } = useDataMapper()!; - return ; + return ( + <> + {debug && ( + <> + + + + )} + ; + + ); }; diff --git a/packages/ui/src/components/debug/CanvasMonitor.tsx b/packages/ui/src/components/debug/CanvasMonitor.tsx new file mode 100644 index 000000000..54249cde8 --- /dev/null +++ b/packages/ui/src/components/debug/CanvasMonitor.tsx @@ -0,0 +1,40 @@ +import { useDndMonitor } from '@dnd-kit/core'; +import { FunctionComponent, useEffect } from 'react'; +import { useCanvas } from '../../hooks/useCanvas'; +import { IField } from '../../models'; + +export const CanvasMonitor: FunctionComponent = () => { + useDndMonitor({ + onDragStart(event) { + const fromField = event.active.data.current as IField; + console.log(`onDragStart: [active: ${fromField?.fieldIdentifier.toString()}`); + }, + onDragEnd(event) { + const fromField = event.active?.data.current as IField; + const toField = event.over?.data.current as IField; + console.log( + `onDragEnd: [active: ${fromField?.fieldIdentifier.toString()}, over:${toField?.fieldIdentifier.toString()}`, + ); + }, + onDragCancel(event) { + const fromField = event.active?.data.current as IField; + const toField = event.over?.data.current as IField; + console.log( + `onDragCancel: active: ${fromField?.fieldIdentifier.toString()}, over:${toField?.fieldIdentifier.toString()}`, + ); + }, + }); + + const { getAllFieldPaths, reloadFieldReferences } = useCanvas(); + useEffect(() => { + console.log( + 'Field References: [' + + getAllFieldPaths() + .map((p) => p + '\n') + .toString() + + ']', + ); + }, [getAllFieldPaths, reloadFieldReferences]); + + return <>; +}; diff --git a/packages/ui/src/components/debug/DataMapperMonitor.tsx b/packages/ui/src/components/debug/DataMapperMonitor.tsx new file mode 100644 index 000000000..a32f03e0b --- /dev/null +++ b/packages/ui/src/components/debug/DataMapperMonitor.tsx @@ -0,0 +1,16 @@ +import { useDataMapper } from '../../hooks/useDataMapper'; +import { useEffect } from 'react'; + +export const DataMapperMonitor = () => { + const { mappings } = useDataMapper(); + + useEffect(() => { + mappings.forEach((mapping) => { + console.log( + `Mapping: [source={${mapping.sourceFields.map((s) => s.fieldIdentifier + ', ')}}, target={${mapping.targetFields.map((t) => t.fieldIdentifier + ', ')}}]`, + ); + }); + }, [mappings]); + + return <>; +}; diff --git a/packages/ui/src/components/debug/DnDMonitor.tsx b/packages/ui/src/components/debug/DnDMonitor.tsx deleted file mode 100644 index 2749baa72..000000000 --- a/packages/ui/src/components/debug/DnDMonitor.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { useDndMonitor } from '@dnd-kit/core'; -import { FunctionComponent } from 'react'; - -export const DnDMonitor: FunctionComponent = () => { - useDndMonitor({ - onDragStart(event) { - console.log(`onDragStart: [active: ${JSON.stringify(event.active?.data.current?.path)}`); - }, - onDragEnd(event) { - console.log( - `onDragEnd: [active: ${JSON.stringify(event.active?.data.current?.path)}, over:${JSON.stringify(event.over?.data.current?.path)}`, - ); - }, - onDragCancel(event) { - console.log( - `onDragCancel: active: ${JSON.stringify(event.active?.data.current?.path)}, over:${JSON.stringify(event.over?.data.current?.path)}`, - ); - }, - }); - return <>; -}; diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx index 02392f541..f42cc9de5 100644 --- a/packages/ui/src/components/document/Document.tsx +++ b/packages/ui/src/components/document/Document.tsx @@ -1,14 +1,15 @@ import { FunctionComponent, useCallback, useState } from 'react'; import { Accordion, Card, CardBody, CardExpandableContent, CardHeader, CardTitle } from '@patternfly/react-core'; -import { IDocument } from '../../models'; +import { IDocument, DocumentType } from '../../models'; import { DocumentField } from './DocumentField'; import { useCanvas } from '../../hooks/useCanvas'; export type DocumentProps = { + documentType: DocumentType; model: IDocument; }; -export const Document: FunctionComponent = ({ model }) => { +export const Document: FunctionComponent = ({ documentType, model }) => { const { reloadFieldReferences } = useCanvas(); const [isExpanded, setExpanded] = useState(true); const handleOnToggle = useCallback(() => { @@ -28,7 +29,7 @@ export const Document: FunctionComponent = ({ model }) => { {model.fields.map((field) => ( - + ))} diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index 7dbc06d95..f05ca27eb 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -1,97 +1,98 @@ import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; -import { forwardRef, FunctionComponent, useRef, useState } from 'react'; +import { forwardRef, FunctionComponent, useMemo, useRef, useState } from 'react'; import { useDraggable, useDroppable } from '@dnd-kit/core'; import { IField } from '../../models'; import { useCanvas } from '../../hooks/useCanvas'; - -type DocumentFieldContentProps = { - field: IField; -}; - -const DocumentFieldContent: FunctionComponent = ({ field }) => { - return field.isAttribute ? '@' + field.name : field.name; -}; +import { DocumentType } from '../../models/document'; type DocumentFieldProps = { + documentType: DocumentType; field: IField; onToggle: () => void; }; -export const DocumentField: FunctionComponent = ({ field, onToggle }) => { - const { setFieldReference } = useCanvas(); +export const DocumentField: FunctionComponent = ({ documentType, field, onToggle }) => { + const { getFieldReference, setFieldReference } = useCanvas(); const ref = useRef(null); - setFieldReference(field.path, ref); - return ; + const fieldRefId = field.fieldIdentifier.toString(); + getFieldReference(fieldRefId) !== ref && setFieldReference(fieldRefId, ref); + return ; }; -const DocumentFieldImpl = forwardRef(({ field, onToggle }, forwardedRef) => { - const [isExpanded, setIsExpanded] = useState(true); - const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ - id: 'droppable-' + field.path, - data: field, - }); - const { - attributes, - listeners, - setNodeRef: setDraggableNodeRef, - transform, - } = useDraggable({ - id: 'draggable-' + field.path, - data: field, - }); +const DocumentFieldImpl = forwardRef( + ({ documentType, field, onToggle }, forwardedRef) => { + const [isExpanded, setIsExpanded] = useState(true); + const dndId = useMemo(() => field.name + '-' + Math.floor(Math.random() * 10000), [field.name]); - const droppableStyle = { - borderWidth: isOver ? 1 : undefined, - borderColor: isOver ? 'blue' : undefined, - color: isOver ? 'blue' : undefined, - }; - const draggableStyle = transform - ? { - borderWidth: 1, - borderColor: 'blue', - } - : undefined; + const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ + id: 'droppable-' + dndId, + data: field, + }); + const { + attributes, + listeners, + setNodeRef: setDraggableNodeRef, + transform, + } = useDraggable({ + id: 'draggable-' + dndId, + data: field, + }); - return ( -
    - - {!field.fields || field.fields.length === 0 ? ( -
    -
    - - - -
    -
    - ) : ( - <> -
    + const droppableStyle = { + borderWidth: isOver ? 1 : undefined, + borderColor: isOver ? 'blue' : undefined, + color: isOver ? 'blue' : undefined, + }; + const draggableStyle = transform + ? { + borderWidth: 1, + borderColor: 'blue', + } + : undefined; + + return ( +
    + + {!field.fields || field.fields.length === 0 ? ( +
    - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> - - + {field.expression}
    - - {field.fields.map((f: IField) => ( - - ))} - - - )} -
    -
    - ); -}); + ) : ( + <> +
    +
    + setIsExpanded(!isExpanded)} + isExpanded={isExpanded} + id={field.expression} + > + {field.expression} + +
    +
    + + {field.fields.map((f: IField) => ( + + ))} + + + )} + +
    + ); + }, +); diff --git a/packages/ui/src/components/document/ImportDocumentButton.tsx b/packages/ui/src/components/document/ImportDocumentButton.tsx index 4aca043fc..131a469d6 100644 --- a/packages/ui/src/components/document/ImportDocumentButton.tsx +++ b/packages/ui/src/components/document/ImportDocumentButton.tsx @@ -38,7 +38,7 @@ export const ImportDocumentButton: FunctionComponent = ({ is readFileAsString(file).then((content) => { XmlSchemaDocumentService.populateXmlSchemaDocument( isSource ? sourceDocuments : targetDocuments, - isSource ? DocumentType.SOURCE : DocumentType.TARGET, + isSource ? DocumentType.SOURCE_BODY : DocumentType.TARGET_BODY, file.name, content, ); diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index 41d61d086..4433d1c5e 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -39,8 +39,8 @@ const MappingLink: FunctionComponent = ({ x1, y1, x2, y2, mapping }) style={lineStyle} > - Source: {JSON.stringify(mapping.sourceFields.map((f) => f.path))}, Target:{' '} - {JSON.stringify(mapping.targetFields.map((f) => f.path))} + Source: {JSON.stringify(mapping.sourceFields.map((f) => f.fieldIdentifier))}, Target:{' '} + {JSON.stringify(mapping.targetFields.map((f) => f.fieldIdentifier))} ); @@ -96,8 +96,8 @@ export const MappingLinksContainer = () => { const answer: LineProps[] = mappings.reduce((acc, mapping) => { for (const sourceField of mapping.sourceFields) { for (const targetField of mapping.targetFields) { - const sourceClosestPath = getClosestExpandedPath(sourceField.path); - const targetClosestPath = getClosestExpandedPath(targetField.path); + const sourceClosestPath = getClosestExpandedPath(sourceField.fieldIdentifier.toString()); + const targetClosestPath = getClosestExpandedPath(targetField.fieldIdentifier.toString()); if (sourceClosestPath && targetClosestPath) { const sourceFieldRef = getFieldReference(sourceClosestPath); const targetFieldRef = getFieldReference(targetClosestPath); diff --git a/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx b/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx new file mode 100644 index 000000000..55a92ade4 --- /dev/null +++ b/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx @@ -0,0 +1,22 @@ +import { FunctionComponent } from 'react'; +import { useDataMapper } from '../../hooks'; +import { ToggleGroup, ToggleGroupItem, ToolbarItem } from '@patternfly/react-core'; +import { BugIcon } from '@patternfly/react-icons'; + +export const ToggleDebugToolbarItem: FunctionComponent = () => { + const { debug, setDebug } = useDataMapper(); + + return ( + + + } + aria-label={'Enable debug mode'} + buttonId={'enable-debug-mode'} + isSelected={debug} + onChange={() => setDebug(!debug)} + > + + + ); +}; diff --git a/packages/ui/src/hooks/useDataMapper.ts b/packages/ui/src/hooks/useDataMapper.ts index fd44593b3..07778617e 100644 --- a/packages/ui/src/hooks/useDataMapper.ts +++ b/packages/ui/src/hooks/useDataMapper.ts @@ -1,5 +1,5 @@ import { useContext } from 'react'; -import { DataMapperContext, IDataMapperContext } from '../providers'; +import { DataMapperContext, IDataMapperContext } from '../providers/DataMapperProvider'; export const errorMessage = 'useDataMapper should be called into DataMapperProvider'; diff --git a/packages/ui/src/layout/ContextToolbar.tsx b/packages/ui/src/layout/ContextToolbar.tsx index db1e47a54..74e8c546d 100644 --- a/packages/ui/src/layout/ContextToolbar.tsx +++ b/packages/ui/src/layout/ContextToolbar.tsx @@ -16,6 +16,7 @@ import { FunctionComponent } from 'react'; import { Toolbar, ToolbarContent, ToolbarGroup } from '@patternfly/react-core'; import { MainMenuToolbarItem } from '../components/toolbar'; +import { ToggleDebugToolbarItem } from '../components/toolbar/ToggleDebugToolbarItem'; export const ContextToolbar: FunctionComponent = () => { return ( @@ -24,6 +25,7 @@ export const ContextToolbar: FunctionComponent = () => { { + } diff --git a/packages/ui/src/layout/views/MappingDetailsView.tsx b/packages/ui/src/layout/views/MappingDetailsView.tsx index bb9452d89..c409f0445 100644 --- a/packages/ui/src/layout/views/MappingDetailsView.tsx +++ b/packages/ui/src/layout/views/MappingDetailsView.tsx @@ -1,5 +1,71 @@ import { FunctionComponent } from 'react'; +import { useDataMapper } from '../../hooks'; +import { Card, CardBody, CardTitle, Stack, StackItem } from '@patternfly/react-core'; +import { IMappedField } from '../../models'; + +type FieldDetailsProps = { + field: IMappedField; +}; + +const FieldDetails: FunctionComponent = ({ field }) => { + return ( +
      +
    • name: {field.name}
    • +
    • type: {field.type}
    • +
    • path: {field.fieldIdentifier.toString()}
    • + {field.defaultValue &&
    • defaultValue: {field.defaultValue}
    • } +
    • minOccurs: {field.minOccurs}
    • +
    • maxOccurs: {field.maxOccurs}
    • +
    + ); +}; export const MappingDetailsView: FunctionComponent = () => { - return 'TODO'; + const { selectedMapping } = useDataMapper(); + + return ( + selectedMapping && ( + + Mapping Details + + + + + Source + + + {selectedMapping.sourceFields.map((field) => ( + + + + ))} + + + + + + + Transformation + TODO + + + + + Target + + + {selectedMapping.sourceFields.map((field) => ( + + + + ))} + + + + + + + + ) + ); }; diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx index 030616810..aa22c4b10 100644 --- a/packages/ui/src/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -15,6 +15,7 @@ import { useDataMapper } from '../../hooks'; import { Document } from '../../components/document'; import { ImportDocumentButton } from '../../components/document'; import { MappingLinksContainer } from '../../components/mapping/MappingLink'; +import { DocumentType } from '../../models/document'; export const SourceTargetView: FunctionComponent = () => { const { sourceDocuments, targetDocuments } = useDataMapper(); @@ -45,7 +46,7 @@ export const SourceTargetView: FunctionComponent = () => { {sourceDocuments.map((doc) => ( - + ))} @@ -62,7 +63,7 @@ export const SourceTargetView: FunctionComponent = () => { {targetDocuments.map((doc) => ( - + ))} diff --git a/packages/ui/src/models/document.test.ts b/packages/ui/src/models/document.test.ts new file mode 100644 index 000000000..6b233ca16 --- /dev/null +++ b/packages/ui/src/models/document.test.ts @@ -0,0 +1,36 @@ +import { DocumentType, FieldIdentifier } from './document'; + +describe('document.ts', () => { + describe('FieldIdentifier', () => { + it('should represent a document root', () => { + const id = new FieldIdentifier('sourceBody:docId://'); + expect(id.documentType).toBe(DocumentType.SOURCE_BODY); + expect(id.documentId).toBe('docId'); + expect(id.pathSegments.length).toBe(0); + }); + + it('should handle without Document ID', () => { + const id = new FieldIdentifier('sourceBody://a/b/c'); + expect(id.documentType).toBe(DocumentType.SOURCE_BODY); + expect(id.documentId).toBe(''); + expect(id.pathSegments.length).toBe(3); + const id2 = new FieldIdentifier('sourceBody:://a/b/c'); + expect(id2.documentType).toBe(DocumentType.SOURCE_BODY); + expect(id2.documentId).toBe(''); + expect(id2.pathSegments.length).toBe(3); + }); + + it('should handle a colon in the Document ID', () => { + const id = new FieldIdentifier('param:global:someGlobalVariable://d/e/f'); + expect(id.documentType).toBe(DocumentType.PARAM); + expect(id.documentId).toBe('global:someGlobalVariable'); + expect(id.pathSegments.length).toBe(3); + }); + + it('should generate a same string', () => { + const expression = 'sourceBody:docId://g/h/i'; + const id = new FieldIdentifier(expression); + expect(id.toString()).toEqual(expression); + }); + }); +}); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index 38ad6fcac..c5f1d4865 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,3 +1,6 @@ +export const DEFAULT_MIN_OCCURS = 0; +export const DEFAULT_MAX_OCCURS = 1; + export interface INamespace { alias: string; uri: string; @@ -5,56 +8,84 @@ export interface INamespace { isTarget: boolean; } +type IParentType = IDocument | IField; + export interface IField { - id: string; + parent: IParentType; + fieldIdentifier: FieldIdentifier; name: string; + expression: string; type: string; fields: IField[]; - scope: string; - value: string; - path: string; isAttribute: boolean; - isCollection: boolean; - isConnected: boolean; - isInCollection: boolean; - isDisabled: boolean; - enumeration: boolean; + defaultValue: string | null; + minOccurs: number; + maxOccurs: number; } export interface IDocument { - id: string; + documentType: DocumentType; + documentId: string; + fieldIdentifier: FieldIdentifier; name: string; - path: string; type: string; fields: IField[]; namespaces?: INamespace[]; } export abstract class BaseDocument implements IDocument { + documentType: DocumentType = DocumentType.SOURCE_BODY; + documentId: string = ''; + abstract fieldIdentifier: FieldIdentifier; fields: IField[] = []; - abstract id: string; name: string = ''; - abstract path: string; type: string = ''; } export abstract class BaseField implements IField { - enumeration: boolean = false; + abstract parent: IParentType; + abstract fieldIdentifier: FieldIdentifier; fields: IField[] = []; - abstract id: string; isAttribute: boolean = false; - isCollection: boolean = false; - isConnected: boolean = false; - isDisabled: boolean = false; - isInCollection: boolean = false; name: string = ''; - abstract path: string; - scope: string = ''; + expression: string = ''; type: string = ''; - value: string = ''; + minOccurs: number = DEFAULT_MIN_OCCURS; + maxOccurs: number = DEFAULT_MAX_OCCURS; + defaultValue: string | null = null; } export enum DocumentType { - SOURCE = 'source', - TARGET = 'target', + SOURCE_BODY = 'sourceBody', + TARGET_BODY = 'targetBody', + PARAM = 'param', +} + +export class FieldIdentifier { + documentType: DocumentType = DocumentType.SOURCE_BODY; + documentId: string = ''; + pathSegments: string[] = []; + + constructor(expression?: string) { + if (!expression) return; + const parts = expression.split('://'); + if (parts.length < 2) return; + const index = parts[0].indexOf(':'); + this.documentType = (index !== -1 ? parts[0].substring(0, index) : parts[0]) as DocumentType; + this.documentId = index !== -1 ? parts[0].substring(index + 1) : this.documentId; + this.pathSegments = parts[1].length > 0 ? parts[1].split('/') : []; + } + + toString() { + const beforePath = `${this.documentType}:${this.documentId}://`; + return this.pathSegments.length > 0 ? `${beforePath}${this.pathSegments.join('/')}` : beforePath; + } + + static childOf(parent: FieldIdentifier, childSegment: string) { + const answer = new FieldIdentifier(); + answer.documentType = parent.documentType; + answer.documentId = parent.documentId; + answer.pathSegments = [...parent.pathSegments, childSegment]; + return answer; + } } diff --git a/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/providers/CanvasProvider.tsx index a4abd34f1..5f5b50359 100644 --- a/packages/ui/src/providers/CanvasProvider.tsx +++ b/packages/ui/src/providers/CanvasProvider.tsx @@ -20,16 +20,15 @@ import { useSensors, } from '@dnd-kit/core'; import { Label } from '@patternfly/react-core'; -import { useDataMapper } from '../hooks'; -import { IField } from '../models'; +import { useDataMapper } from '../hooks/useDataMapper'; +import { DocumentType, IField } from '../models'; import { MappingService } from '../services/mapping.service'; -import { DnDMonitor } from '../components/debug/DnDMonitor'; export interface ICanvasContext { setFieldReference: (path: string, ref: MutableRefObject) => void; getFieldReference: (path: string) => MutableRefObject | null; - getAllFieldPaths: () => string[]; reloadFieldReferences: () => void; + getAllFieldPaths: () => string[]; } export const CanvasContext = createContext(undefined); @@ -51,24 +50,34 @@ export const CanvasProvider: FunctionComponent = (props) => { const keyboardSensor = useSensor(KeyboardSensor); const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); - const [activeData, setActiveData] = useState> | null>(null); + const [activeData, setActiveData] = useState | null>(null); const [fieldReferenceMap, setFieldReferenceMap] = useState>>( new Map>(), ); const handleDragStart = useCallback((event: DragStartEvent) => { - setActiveData(event.active.data); + setActiveData(event.active.data as DataRef); }, []); const handleDragEnd = useCallback( (event: DragEndEvent) => { - const sourceField = event.active.data.current as IField; - const targetField = event.over?.data.current as IField; - if (sourceField && targetField && !MappingService.mappingExists(mappings, sourceField, targetField)) { - const mapping = MappingService.createNewMapping(sourceField, targetField); - mappings.push(mapping); - refreshMappings(); + const fromField = event.active.data.current as IField; + const toField = event.over?.data.current as IField; + const fromDocType = fromField.fieldIdentifier.documentType; + const toDocType = toField.fieldIdentifier.documentType; + if ( + fromDocType !== toDocType && + (fromDocType === DocumentType.TARGET_BODY || toDocType === DocumentType.TARGET_BODY) + ) { + const sourceField = fromDocType !== DocumentType.TARGET_BODY ? fromField : toField; + const targetField = fromDocType !== DocumentType.TARGET_BODY ? toField : fromField; + if (sourceField && targetField && !MappingService.mappingExists(mappings, sourceField, targetField)) { + const mapping = MappingService.createNewMapping(sourceField, targetField); + mappings.push(mapping); + refreshMappings(); + } } + setActiveData(null); }, [mappings, refreshMappings], ); @@ -87,30 +96,29 @@ export const CanvasProvider: FunctionComponent = (props) => { [fieldReferenceMap], ); - const getAllFieldPaths = useCallback(() => { - return Array.from(fieldReferenceMap.keys()); - }, [fieldReferenceMap]); - const reloadFieldReferences = useCallback(() => { setFieldReferenceMap(new Map(fieldReferenceMap)); }, [fieldReferenceMap]); + const getAllFieldPaths = useCallback(() => { + return Array.from(fieldReferenceMap.keys()); + }, [fieldReferenceMap]); + const value: ICanvasContext = useMemo(() => { return { setFieldReference, getFieldReference, - getAllFieldPaths, reloadFieldReferences, + getAllFieldPaths, }; - }, [setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReferences]); + }, [setFieldReference, getFieldReference, reloadFieldReferences, getAllFieldPaths]); return ( - {props.children} - + diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index f01a6c042..bc09a8d95 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -30,9 +30,11 @@ export interface IDataMapperContext { mappings: IMapping[]; refreshMappings(): void; - selectedMapping: IMapping | null; setSelectedMapping(mapping: IMapping | null): void; + + debug: boolean; + setDebug(debug: boolean): void; } export const DataMapperContext = createContext(null); @@ -44,6 +46,7 @@ export const DataMapperProvider: FunctionComponent = (props) const [targetDocuments, setTargetDocuments] = useState([]); const [mappings, setMappings] = useState([]); const [selectedMapping, setSelectedMapping] = useState(null); + const [debug, setDebug] = useState(false); const refreshSourceDocuments = useCallback(() => { setSourceDocuments([...sourceDocuments]); @@ -70,6 +73,8 @@ export const DataMapperProvider: FunctionComponent = (props) refreshMappings, selectedMapping, setSelectedMapping, + debug, + setDebug, }; }, [ activeView, @@ -81,6 +86,8 @@ export const DataMapperProvider: FunctionComponent = (props) selectedMapping, sourceDocuments, targetDocuments, + debug, + setDebug, ]); return ( diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts new file mode 100644 index 000000000..d263f0cf4 --- /dev/null +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -0,0 +1,22 @@ +import { MappingSerializerService, NS_XSL } from './mapping-serializer.service'; + +describe('MappingSerializerService', () => { + it('createNew() should create am empty XSLT document', () => { + const xslt = MappingSerializerService.createNew(); + const stylesheet = xslt.getElementsByTagNameNS(NS_XSL, 'stylesheet'); + expect(stylesheet.length).toEqual(1); + expect(stylesheet[0].namespaceURI).toBe(NS_XSL); + expect(stylesheet[0].localName).toBe('stylesheet'); + const template = xslt.getElementsByTagNameNS(NS_XSL, 'template'); + expect(template.length).toEqual(1); + expect(template[0].namespaceURI).toBe(NS_XSL); + expect(template[0].localName).toBe('template'); + }); + + describe('serialize()', () => { + it('should serialize the mappings into a XSLT document', () => { + const empty = MappingSerializerService.serialize([]); + expect(empty).toBeDefined(); + }); + }); +}); diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts new file mode 100644 index 000000000..835dfbaae --- /dev/null +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -0,0 +1,36 @@ +import { IMapping } from '../models'; + +export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; +export const EMPTY_XSL = ` + + + + +`; +export class MappingSerializerService { + static createNew() { + return new DOMParser().parseFromString(EMPTY_XSL, 'text/xml'); + } + + static serialize(mappings: IMapping[]): string { + const xslt = MappingSerializerService.createNew(); + const template = xslt.getElementsByTagNameNS(NS_XSL, 'template')[0]; + template.localName; + mappings.forEach((mapping) => { + const source = mapping.sourceFields[0]; + source.fieldIdentifier; + const target = mapping.targetFields[0]; + target.fieldIdentifier; + }); + return new XMLSerializer().serializeToString(xslt); + } + + static deserialize(xslt: string): IMapping[] { + const xsltDoc = new DOMParser().parseFromString(xslt, 'application/xml'); + const template = xsltDoc.getElementsByTagNameNS(NS_XSL, 'template')[0]; + template.localName; + const answer: IMapping[] = []; + + return answer; + } +} diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 019a0f167..7470330d9 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -5,14 +5,17 @@ export class MappingService { return ( !!mappings && mappings.find((mapping) => { - return mapping.sourceFields[0]?.path === sourceField.path && mapping.targetFields[0]?.path === targetField.path; + return ( + mapping.sourceFields[0]?.fieldIdentifier === sourceField.fieldIdentifier && + mapping.targetFields[0]?.fieldIdentifier === targetField.fieldIdentifier + ); }) ); } static createNewMapping(sourceField: IField, targetField: IField) { return { - id: 'mapping-' + Math.random(), + id: 'mapping-' + Math.floor(Math.random() * 10000), name: '', sourceFields: [sourceField], targetFields: [targetField], diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index 003099987..a8347ac25 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -16,7 +16,7 @@ describe('XmlSchemaDocumentService', () => { it('should populate XML Schema Document', () => { const docs: IDocument[] = []; - XmlSchemaDocumentService.populateXmlSchemaDocument(docs, DocumentType.SOURCE, 'ShipOrder.xsd', orderXsd); + XmlSchemaDocumentService.populateXmlSchemaDocument(docs, DocumentType.SOURCE_BODY, 'ShipOrder.xsd', orderXsd); expect(docs.length).toEqual(1); }); }); diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 96759a71c..5f7ab7115 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -1,8 +1,8 @@ import { XmlSchema, XmlSchemaAll, - XmlSchemaAny, XmlSchemaAllMember, + XmlSchemaAny, XmlSchemaAttribute, XmlSchemaAttributeGroup, XmlSchemaAttributeGroupMember, @@ -22,13 +22,13 @@ import { XmlSchemaSequence, XmlSchemaSequenceMember, XmlSchemaSimpleType, + XmlSchemaUse, } from '@datamapper-poc/xml-schema-ts'; -import { BaseDocument, BaseField, IDocument, DocumentType } from '../models'; +import { BaseDocument, BaseField, DocumentType, FieldIdentifier, IDocument } from '../models'; export class XmlSchemaDocument extends BaseDocument { rootElement: XmlSchemaElement; fields: XmlSchemaField[] = []; - id: string = `document-` + Math.random(); constructor(public xmlSchema: XmlSchema) { super(); @@ -41,8 +41,8 @@ export class XmlSchemaDocument extends BaseDocument { this.type = 'XML'; } - get path() { - return `${this.id}:/`; + get fieldIdentifier(): FieldIdentifier { + return new FieldIdentifier(`${this.documentType}:${this.documentId}://`); } } @@ -53,16 +53,12 @@ export class XmlSchemaField extends BaseField { namespaceURI: string | null = ''; namespacePrefix: string | null = ''; - constructor(private parent: XmlSchemaParentType) { + constructor(public parent: XmlSchemaParentType) { super(); } - get path(): string { - return `${this.parent.path}/${this.id}`; - } - - get id(): string { - return this.isAttribute ? '@' + this.name : this.name; + get fieldIdentifier(): FieldIdentifier { + return FieldIdentifier.childOf(this.parent.fieldIdentifier, this.expression); } } @@ -73,15 +69,16 @@ export class XmlSchemaDocumentService { return new XmlSchemaDocument(xmlSchema); } - static populateXmlSchemaDocument(documents: IDocument[], type: DocumentType, name: string, content: string) { + static populateXmlSchemaDocument(documents: IDocument[], documentType: DocumentType, name: string, content: string) { const doc = XmlSchemaDocumentService.parseXmlSchema(content); doc.name = name; - doc.id = type + ':' + name; + doc.documentType = documentType; + doc.documentId = name; const sameNameDocs = documents.filter((d) => d.name === name); for (let sequence = 0; sameNameDocs.length > 0; sequence++) { const candidateId = `${name}.${sequence}`; - if (!sameNameDocs.find((d) => d.id === candidateId)) { - doc.id = candidateId; + if (!sameNameDocs.find((d) => d.documentId === candidateId)) { + doc.documentId = candidateId; break; } } @@ -109,11 +106,21 @@ export class XmlSchemaDocumentService { ); } + /** + * Populate XML Element as a field into {@link fields} array passed in as an argument. + * @param parent + * @param fields + * @param element + */ static populateElement(parent: XmlSchemaParentType, fields: XmlSchemaField[], element: XmlSchemaElement) { const field: XmlSchemaField = new XmlSchemaField(parent); field.name = element.getWireName()!.getLocalPart()!; + field.expression = field.name; field.namespaceURI = element.getWireName()!.getNamespaceURI(); field.namespacePrefix = element.getWireName()!.getPrefix(); + field.defaultValue = element.defaultValue || element.fixedValue; + field.minOccurs = element.getMinOccurs(); + field.maxOccurs = element.getMaxOccurs(); fields.push(field); const schemaType = element.getSchemaType(); @@ -150,13 +157,37 @@ export class XmlSchemaDocumentService { } } + /** + * Populate XML Attribute as a field into {@link fields} array passed in as an argument. + * @param parent + * @param fields + * @param attr + */ static populateAttribute(parent: XmlSchemaParentType, fields: XmlSchemaField[], attr: XmlSchemaAttribute) { const field = new XmlSchemaField(parent); field.isAttribute = true; field.name = attr.getWireName()!.getLocalPart()!; + field.expression = '@' + field.name; field.namespaceURI = attr.getWireName()!.getNamespaceURI(); field.namespacePrefix = attr.getWireName()!.getPrefix(); + field.defaultValue = attr.getDefaultValue() || attr.getFixedValue(); fields.push(field); + + const use = attr.getUse(); + switch (use) { + case XmlSchemaUse.PROHIBITED: + field.maxOccurs = 0; + field.minOccurs = 0; + break; + case XmlSchemaUse.REQUIRED: + field.minOccurs = 1; + field.maxOccurs = 1; + break; + default: // OPTIONAL, NONE or not specified + field.minOccurs = 0; + field.maxOccurs = 1; + break; + } } static populateAttributeGroupRef( diff --git a/packages/xml-schema-ts/src/index.ts b/packages/xml-schema-ts/src/index.ts index 461dc310c..b60cd95a8 100644 --- a/packages/xml-schema-ts/src/index.ts +++ b/packages/xml-schema-ts/src/index.ts @@ -21,3 +21,4 @@ export { XmlSchemaRef } from './utils/XmlSchemaRef'; export { XmlSchemaSequence } from './particle/XmlSchemaSequence'; export { XmlSchemaSequenceMember } from './particle/XmlSchemaSequenceMember'; export { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; +export { XmlSchemaUse } from './XmlSchemaUse'; From d28eed092c213a0cb222196110de184b08107455 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 02:29:27 +0000 Subject: [PATCH 080/471] chore(deps): update dependency @types/node to v20.11.27 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a9bbc7971..3a9188176 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3813,11 +3813,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.26 - resolution: "@types/node@npm:20.11.26" + version: 20.11.27 + resolution: "@types/node@npm:20.11.27" dependencies: undici-types: ~5.26.4 - checksum: 2cd5a373d2880b7f07ae65d4d23660cdcabddb12772ce631b6caad2f9283350b8a17c802590f67f0ccec5a9c7d43ae0ecd9637c5ad870b8f793328af8c61eae5 + checksum: 24a134a3c18e7261b6d6385c2b7714b6cf93663f30d5df8ca95c649f9cef917a422d77bfd4a18b2c7d190d3a39f445b345ecd9ef6f994e61c7e92f400ecbe80f languageName: node linkType: hard From 71b88355656535ee7c7cbf63acf937c740db12d7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 02:29:43 +0000 Subject: [PATCH 081/471] chore(deps): update dependency eslint-plugin-react-refresh to v0.4.6 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3a9188176..9137c43e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6832,11 +6832,11 @@ __metadata: linkType: hard "eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.5 - resolution: "eslint-plugin-react-refresh@npm:0.4.5" + version: 0.4.6 + resolution: "eslint-plugin-react-refresh@npm:0.4.6" peerDependencies: eslint: ">=7" - checksum: 953e665f6aaf097291a2bb07fde05466338aecd169bcd6faa708b50166912e3a757f45a45252cf7738b5e0d986224d363cc227864e98c979fe9978770b2b9f42 + checksum: f897bfc1c52d21b9941f1f0b7c3e89a7eb8404c10d73739fc91812a3347d0da8e37e0698fafb059222e629f9d56b5c991a88133105f12b82ad3178b91f7e1041 languageName: node linkType: hard From 61aeb91c6438b765537cbc2997e628584b1a66d5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 04:17:16 +0000 Subject: [PATCH 082/471] chore(deps): update dependency sass to v1.72.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9137c43e2..6b8ab034c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11710,15 +11710,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.71.1 - resolution: "sass@npm:1.71.1" + version: 1.72.0 + resolution: "sass@npm:1.72.0" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 19c4939d3042eb9459d462bbd27b1f576fa18034e23c87ca0005b87effdee431c16503b5a785edcdcde1a76dfb804716d9ad42c85a78968ac3825d515e45cb53 + checksum: f420079c7d51660b7256ee52463c1499ede36f7fd5c8ef50c687451777ad641509001454dea45244073cedd7c00e7a3bc1c362e55206ac6686171b994edb41e4 languageName: node linkType: hard From b0240d175a9d7f3083d5e524f56b53e5786c1f69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 13:34:43 +0000 Subject: [PATCH 083/471] chore(deps): update react monorepo --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6b8ab034c..9a8fbe96a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3850,11 +3850,11 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.2.18": - version: 18.2.19 - resolution: "@types/react-dom@npm:18.2.19" + version: 18.2.22 + resolution: "@types/react-dom@npm:18.2.22" dependencies: "@types/react": "*" - checksum: 087a19d8e4c1c0900ec4ac5ddb749a811a38274b25683d233c11755d2895cc6e475e8bf9bea3dee36519769298e078d4c2feab9ab4bd13b26bc2a6170716437e + checksum: 83bb3ddcd7894f20a9a6cbc2befe75d8b76984734020c455b4c50cad625a4025250d8e1d247ef6264e484d47d5a94f2dd11f77c1dcac6a5de998cb447d85b720 languageName: node linkType: hard @@ -3877,13 +3877,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53, @types/react@npm:^18.2.61": - version: 18.2.63 - resolution: "@types/react@npm:18.2.63" + version: 18.2.66 + resolution: "@types/react@npm:18.2.66" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: f3d496b9e3c40fe984aa2f22e0f3776a4f0be223f436ad3a2b79fed4b496ba1549999083408c2c975e5c8b029bfc9e8a2924788325e00de205cf70a10ef772d0 + checksum: 266cdd046bd1bb4f1e2d07bba305e1264e91bedcb9e8643e303fc80468f3cf0860c82982589c67fc07a10f5496eb04c1cc2bf8283484f27a605c2651c6c8f3f3 languageName: node linkType: hard From 2c25528c29b46094b6094093c9b0d8214fbbd43c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Mar 2024 01:28:04 +0000 Subject: [PATCH 084/471] chore(deps): update dependency @types/node to v20.11.28 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9a8fbe96a..d106e161b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3813,11 +3813,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.27 - resolution: "@types/node@npm:20.11.27" + version: 20.11.28 + resolution: "@types/node@npm:20.11.28" dependencies: undici-types: ~5.26.4 - checksum: 24a134a3c18e7261b6d6385c2b7714b6cf93663f30d5df8ca95c649f9cef917a422d77bfd4a18b2c7d190d3a39f445b345ecd9ef6f994e61c7e92f400ecbe80f + checksum: 83fe7e649c6439103872a292f7b9808233e1eea4bf7d5afa6fce71729e3f7a06933cd792543db84cf65b89ca985fb6f44efaeb748e2ce51a6525ade030338af8 languageName: node linkType: hard From 123c1e5ad128b52077a393886fdeec43c78f7110 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 17 Mar 2024 01:16:02 +0000 Subject: [PATCH 085/471] chore(deps): update dependency fast-xml-parser to v4.3.6 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d106e161b..edf6bc14b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7110,13 +7110,13 @@ __metadata: linkType: hard "fast-xml-parser@npm:^4.3.5": - version: 4.3.5 - resolution: "fast-xml-parser@npm:4.3.5" + version: 4.3.6 + resolution: "fast-xml-parser@npm:4.3.6" dependencies: strnum: ^1.0.5 bin: fxparser: src/cli/cli.js - checksum: 852064985ca56aa2078be02c92509a675408b57bb9862f696689301bf7df786f9ce9116b812b032c627979a4de5755f9cbfeecc4b90ed9d56be76deccd97c0c6 + checksum: 12795c55f4564699c3cee13f7e892423244ac1125775e9b85bf948a1d4b65352da8f688d334bad530972288bb7ee0cf3d2605088d475123fce40d95003f045fa languageName: node linkType: hard From bcc6de06d365eac19102b36df741a35506ef9d36 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 18 Mar 2024 08:45:39 -0400 Subject: [PATCH 086/471] chore: remove fast-xml-parser --- packages/xml-schema-ts/package.json | 1 - packages/xml-schema-ts/src/xml-parser.test.ts | 21 ------------------- yarn.lock | 19 ----------------- 3 files changed, 41 deletions(-) diff --git a/packages/xml-schema-ts/package.json b/packages/xml-schema-ts/package.json index f8481d90d..f14cfdf8e 100644 --- a/packages/xml-schema-ts/package.json +++ b/packages/xml-schema-ts/package.json @@ -37,7 +37,6 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^27.9.0", "eslint-plugin-prettier": "^5.1.3", - "fast-xml-parser": "^4.3.5", "jest": "^29.7.0", "rimraf": "^5.0.5", "stylelint": "^16.2.1", diff --git a/packages/xml-schema-ts/src/xml-parser.test.ts b/packages/xml-schema-ts/src/xml-parser.test.ts index 20e4addff..98afab7ee 100644 --- a/packages/xml-schema-ts/src/xml-parser.test.ts +++ b/packages/xml-schema-ts/src/xml-parser.test.ts @@ -1,27 +1,6 @@ -import { XMLParser } from 'fast-xml-parser'; import * as fs from 'fs'; describe.skip('XML parser', () => { - describe('fast-xml-parser', () => { - const parser = new XMLParser({ - ignoreAttributes: false, - attributeNamePrefix: '_attr_', - preserveOrder: true, - }); - - it('should parse XML schema', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); - const parsed = parser.parse(orderXsd); - expect(parsed).toBeDefined(); - }); - - it('should parse XML document', () => { - const orderXml = fs.readFileSync(__dirname + '/../../../../test-resources/ExampleOrder.xml').toString(); - const parsed = parser.parse(orderXml); - expect(parsed).toBeDefined(); - }); - }); - describe('DOMParser', () => { const parser = new DOMParser(); diff --git a/yarn.lock b/yarn.lock index edf6bc14b..d01226df7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1662,7 +1662,6 @@ __metadata: eslint-plugin-import: ^2.29.1 eslint-plugin-jest: ^27.9.0 eslint-plugin-prettier: ^5.1.3 - fast-xml-parser: ^4.3.5 jest: ^29.7.0 rimraf: ^5.0.5 stylelint: ^16.2.1 @@ -7109,17 +7108,6 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.3.5": - version: 4.3.6 - resolution: "fast-xml-parser@npm:4.3.6" - dependencies: - strnum: ^1.0.5 - bin: - fxparser: src/cli/cli.js - checksum: 12795c55f4564699c3cee13f7e892423244ac1125775e9b85bf948a1d4b65352da8f688d334bad530972288bb7ee0cf3d2605088d475123fce40d95003f045fa - languageName: node - linkType: hard - "fastest-levenshtein@npm:^1.0.16": version: 1.0.16 resolution: "fastest-levenshtein@npm:1.0.16" @@ -12240,13 +12228,6 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^1.0.5": - version: 1.0.5 - resolution: "strnum@npm:1.0.5" - checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 - languageName: node - linkType: hard - "strong-log-transformer@npm:^2.1.0": version: 2.1.0 resolution: "strong-log-transformer@npm:2.1.0" From 8f386a6d26d92d8ca58897d60433518f7e6899dc Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 18 Mar 2024 12:10:21 -0400 Subject: [PATCH 087/471] chore - Remove MappedField and directly use IField, transformations are to be held in IMapping - Move pre-create validation for a new mapping to MappingService --- .../src/layout/views/MappingDetailsView.tsx | 4 +-- packages/ui/src/models/mapping.ts | 16 +++++----- packages/ui/src/providers/CanvasProvider.tsx | 20 ++++--------- packages/ui/src/services/mapping.service.ts | 29 ++++++++++++++++++- 4 files changed, 44 insertions(+), 25 deletions(-) diff --git a/packages/ui/src/layout/views/MappingDetailsView.tsx b/packages/ui/src/layout/views/MappingDetailsView.tsx index c409f0445..694b91d22 100644 --- a/packages/ui/src/layout/views/MappingDetailsView.tsx +++ b/packages/ui/src/layout/views/MappingDetailsView.tsx @@ -1,10 +1,10 @@ import { FunctionComponent } from 'react'; import { useDataMapper } from '../../hooks'; import { Card, CardBody, CardTitle, Stack, StackItem } from '@patternfly/react-core'; -import { IMappedField } from '../../models'; +import { IField } from '../../models'; type FieldDetailsProps = { - field: IMappedField; + field: IField; }; const FieldDetails: FunctionComponent = ({ field }) => { diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index f8d7f48c9..27398f381 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -1,22 +1,22 @@ import { generateRandomId } from '../util'; import { IField } from './document'; -export interface IMappedField extends IField { - transformations: Array<{ - name: string; - }>; +export interface ITransformation { + name: string; } export interface IMapping { id: string; name: string; - sourceFields: IMappedField[]; - targetFields: IMappedField[]; + sourceFields: IField[]; + targetFields: IField[]; + transformations: ITransformation[]; } export class Mapping implements IMapping { id: string = generateRandomId('mapping'); name: string = ''; - sourceFields: IMappedField[] = []; - targetFields: IMappedField[] = []; + sourceFields: IField[] = []; + targetFields: IField[] = []; + transformations: ITransformation[] = []; } diff --git a/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/providers/CanvasProvider.tsx index 5f5b50359..9aabd69b5 100644 --- a/packages/ui/src/providers/CanvasProvider.tsx +++ b/packages/ui/src/providers/CanvasProvider.tsx @@ -21,7 +21,7 @@ import { } from '@dnd-kit/core'; import { Label } from '@patternfly/react-core'; import { useDataMapper } from '../hooks/useDataMapper'; -import { DocumentType, IField } from '../models'; +import { IField } from '../models'; import { MappingService } from '../services/mapping.service'; export interface ICanvasContext { @@ -63,19 +63,11 @@ export const CanvasProvider: FunctionComponent = (props) => { (event: DragEndEvent) => { const fromField = event.active.data.current as IField; const toField = event.over?.data.current as IField; - const fromDocType = fromField.fieldIdentifier.documentType; - const toDocType = toField.fieldIdentifier.documentType; - if ( - fromDocType !== toDocType && - (fromDocType === DocumentType.TARGET_BODY || toDocType === DocumentType.TARGET_BODY) - ) { - const sourceField = fromDocType !== DocumentType.TARGET_BODY ? fromField : toField; - const targetField = fromDocType !== DocumentType.TARGET_BODY ? toField : fromField; - if (sourceField && targetField && !MappingService.mappingExists(mappings, sourceField, targetField)) { - const mapping = MappingService.createNewMapping(sourceField, targetField); - mappings.push(mapping); - refreshMappings(); - } + const { sourceField, targetField } = MappingService.validateFieldPairForNewMapping(mappings, fromField, toField); + if (sourceField && targetField) { + const mapping = MappingService.createNewMapping(sourceField, targetField); + mappings.push(mapping); + refreshMappings(); } setActiveData(null); }, diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 7470330d9..304e0d59e 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -1,4 +1,9 @@ -import { IField, IMapping } from '../models'; +import { DocumentType, IField, IMapping } from '../models'; + +type MappingFieldPairReturnType = { + sourceField?: IField; + targetField?: IField; +}; export class MappingService { static mappingExists(mappings: IMapping[], sourceField: IField, targetField: IField) { @@ -13,6 +18,28 @@ export class MappingService { ); } + static validateFieldPairForNewMapping( + mappings: IMapping[], + fromField: IField, + toField: IField, + ): MappingFieldPairReturnType { + const answer: MappingFieldPairReturnType = {}; + const fromDocType = fromField.fieldIdentifier.documentType; + const toDocType = toField.fieldIdentifier.documentType; + if ( + fromDocType !== toDocType && + (fromDocType === DocumentType.TARGET_BODY || toDocType === DocumentType.TARGET_BODY) + ) { + const sourceField = fromDocType !== DocumentType.TARGET_BODY ? fromField : toField; + const targetField = fromDocType !== DocumentType.TARGET_BODY ? toField : fromField; + if (sourceField && targetField && !MappingService.mappingExists(mappings, sourceField, targetField)) { + answer.sourceField = sourceField; + answer.targetField = targetField; + } + } + return answer; + } + static createNewMapping(sourceField: IField, targetField: IField) { return { id: 'mapping-' + Math.floor(Math.random() * 10000), From 906a577040bbe46a350b95b51cae2d32dd25e4f7 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 19 Mar 2024 08:14:32 -0400 Subject: [PATCH 088/471] checkpoint(#3): Serialize XSLT for the most basic one-to-one mapping The XPath is missing namespace ATM, we might be better to factor it in to the IField/FieldIdentifier model --- packages/ui/package.json | 5 +- .../toolbar/ExportMappingFileDropdownItem.tsx | 69 ++++++++++++-- packages/ui/src/models/document.ts | 2 + .../services/mapping-serializer.service.ts | 79 ++++++++++++++-- .../services/xml-schema-document.service.ts | 4 +- packages/xml-schema-ts/src/QName.ts | 16 ++-- yarn.lock | 93 ++++++++++++++++++- 7 files changed, 241 insertions(+), 27 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index a3475fe81..6dc9c9e61 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -43,6 +43,7 @@ "dependencies": { "@datamapper-poc/xml-schema-ts": "workspace:*", "@dnd-kit/core": "^6.1.0", + "@patternfly/react-code-editor": "^5.2.3", "@patternfly/react-core": "^5.1.2", "@patternfly/react-table": "^5.1.2", "@patternfly/react-topology": "^5.1.0", @@ -51,6 +52,7 @@ "d3-shape": "^3.2.0", "file-saver": "^2.0.5", "loglevel": "^1.9.1", + "monaco-editor": "^0.47.0", "pako": "^2.1.0", "react": "^18.2.0", "react-dnd": "^16.0.1", @@ -60,7 +62,8 @@ "react-sage": "^0.3.16", "react-use-gesture": "^9.1.3", "saxon-js": "^2.6.0", - "use-debounce": "^10.0.0" + "use-debounce": "^10.0.0", + "xml-formatter": "^3.6.2" }, "devDependencies": { "@babel/core": "^7.23.9", diff --git a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx index 572ce7fd0..dc236a579 100644 --- a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx @@ -1,18 +1,73 @@ -import { DropdownItem } from '@patternfly/react-core'; -import { FunctionComponent, useCallback } from 'react'; +import { Button, DropdownItem, Modal } from '@patternfly/react-core'; +import { CodeEditor, Language } from '@patternfly/react-code-editor'; +import { FunctionComponent, useCallback, useMemo, useState } from 'react'; import { ExportIcon } from '@patternfly/react-icons'; +import { MappingSerializerService } from '../../services/mapping-serializer.service'; +import { useDataMapper } from '../../hooks'; +import { Monaco } from '@monaco-editor/react'; +import monaco, { editor } from 'monaco-editor'; +import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions; export const ExportMappingFileDropdownItem: FunctionComponent<{ onComplete: () => void; }> = ({ onComplete }) => { - const onClick = useCallback(() => { - alert('TODO'); + const { mappings } = useDataMapper(); + const [isModalOpen, setIsModalOpen] = useState(); + const [serializedMappings, setSerializedMappings] = useState(); + + const handleMenuClick = useCallback(() => { + const serialized = MappingSerializerService.serialize(mappings); + setSerializedMappings(serialized); + setIsModalOpen(true); + }, [mappings]); + + const handleModalClose = useCallback(() => { + setSerializedMappings(''); + setIsModalOpen(false); onComplete(); }, [onComplete]); + const onEditorDidMount = useCallback((editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) => { + editor.layout(); + editor.focus(); + monaco.editor.getModels()[0].updateOptions({ tabSize: 2 }); + }, []); + + const modalActions = useMemo(() => { + return [ + , + ]; + }, [handleModalClose]); + + const editorOptions: IStandaloneEditorConstructionOptions = useMemo(() => { + return { wordWrap: 'on' }; + }, []); + return ( - } onClick={onClick} data-testid="export-mappings-button"> - Export the current mappings (.xsl) - + <> + } onClick={handleMenuClick} data-testid="export-mappings-button"> + Export the current mappings (.xsl) + + handleModalClose()} + actions={modalActions} + > + + + ); }; diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index c5f1d4865..db3c0d741 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -21,6 +21,7 @@ export interface IField { defaultValue: string | null; minOccurs: number; maxOccurs: number; + namespaceURI: string | null; } export interface IDocument { @@ -53,6 +54,7 @@ export abstract class BaseField implements IField { minOccurs: number = DEFAULT_MIN_OCCURS; maxOccurs: number = DEFAULT_MAX_OCCURS; defaultValue: string | null = null; + namespaceURI: string | null = null; } export enum DocumentType { diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 835dfbaae..d3cd413e1 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -1,4 +1,5 @@ -import { IMapping } from '../models'; +import { IField, IMapping } from '../models'; +import xmlFormat from 'xml-formatter'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; export const EMPTY_XSL = ` @@ -14,15 +15,81 @@ export class MappingSerializerService { static serialize(mappings: IMapping[]): string { const xslt = MappingSerializerService.createNew(); - const template = xslt.getElementsByTagNameNS(NS_XSL, 'template')[0]; - template.localName; mappings.forEach((mapping) => { const source = mapping.sourceFields[0]; - source.fieldIdentifier; const target = mapping.targetFields[0]; - target.fieldIdentifier; + MappingSerializerService.populateMapping(xslt, source, target); }); - return new XMLSerializer().serializeToString(xslt); + return xmlFormat(new XMLSerializer().serializeToString(xslt)); + } + + static populateMapping(xsltDocument: Document, source: IField, target: IField) { + const nsResolver = xsltDocument.createNSResolver(xsltDocument); + const prefix = nsResolver.lookupPrefix(NS_XSL); + const template = xsltDocument + .evaluate(`/${prefix}:stylesheet/${prefix}:template[@match='/']`, xsltDocument, nsResolver) + .iterateNext(); + if (!template || template.nodeType !== Node.ELEMENT_NODE) { + throw Error('No root template in the XSLT document'); + } + const parent = MappingSerializerService.getOrCreateParent(template as Element, target); + MappingSerializerService.putSource(parent, source, target); + } + + static getOrCreateParent(template: Element, target: IField) { + if (!('parent' in target)) { + return template; + } + + const xsltDocument = template.ownerDocument; + const fieldStack: IField[] = []; + for (let next = target.parent; 'parent' in next; next = (next as IField).parent) { + fieldStack.push(next); + } + let parentNode = template; + while (fieldStack.length) { + const currentField = fieldStack.pop()!; + let element: Element | undefined = undefined; + parentNode.childNodes.forEach((n) => { + if ( + n.nodeType === Node.ELEMENT_NODE && + MappingSerializerService.isInSameNamespace(n as Element, currentField) && + (n as Element).localName === currentField.name + ) { + element = n as Element; + } + }); + if (!element) { + const nsResolver = xsltDocument.createNSResolver(parentNode); + const prefix = nsResolver.lookupPrefix(currentField.namespaceURI); + const name = prefix ? prefix + ':' + currentField.name : currentField.name; + element = xsltDocument.createElementNS(currentField.namespaceURI, name); + parentNode.appendChild(element); + } + parentNode = element; + } + return parentNode; + } + + static isInSameNamespace(element: Element, field: IField) { + if (element.namespaceURI === null || element.namespaceURI === '') { + return field.namespaceURI === null || field.namespaceURI === ''; + } + return element.namespaceURI === field.namespaceURI; + } + + static putSource(parent: Element, source: IField, target: IField) { + const xsltDocument = parent.ownerDocument; + const sourceXpath = '/' + source.fieldIdentifier.pathSegments.join('/'); + if (source.isAttribute) { + parent.setAttributeNS(target.namespaceURI, target.name, sourceXpath); + } else { + const element = xsltDocument.createElementNS(target.namespaceURI, target.name); + parent.appendChild(element); + const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); + valueOf.setAttribute('select', sourceXpath); + element.appendChild(valueOf); + } } static deserialize(xslt: string): IMapping[] { diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 5f7ab7115..533277bb8 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -50,8 +50,8 @@ type XmlSchemaParentType = XmlSchemaDocument | XmlSchemaField; export class XmlSchemaField extends BaseField { fields: XmlSchemaField[] = []; - namespaceURI: string | null = ''; - namespacePrefix: string | null = ''; + namespaceURI: string | null = null; + namespacePrefix: string | null = null; constructor(public parent: XmlSchemaParentType) { super(); diff --git a/packages/xml-schema-ts/src/QName.ts b/packages/xml-schema-ts/src/QName.ts index 030d85667..e1979059e 100644 --- a/packages/xml-schema-ts/src/QName.ts +++ b/packages/xml-schema-ts/src/QName.ts @@ -1,15 +1,11 @@ export class QName { - private namespaceURI: string; - constructor( - namespaceURI: string | null, + private namespaceURI: string | null, private localPart: string | null, private prefix: string | null = null, - ) { - this.namespaceURI = namespaceURI != null ? namespaceURI : ''; - } + ) {} - getNamespaceURI(): string { + getNamespaceURI(): string | null { return this.namespaceURI; } @@ -25,11 +21,11 @@ export class QName { if (qNameAsString == null) { throw new Error('cannot create QName from null'); } else if (qNameAsString === '') { - return new QName('', qNameAsString, ''); + return new QName(null, qNameAsString, ''); } else if (qNameAsString.charAt(0) !== '{') { - return new QName('', qNameAsString, ''); + return new QName(null, qNameAsString, ''); } else if (qNameAsString.startsWith('{}')) { - return new QName('', qNameAsString.substring(2), ''); + return new QName(null, qNameAsString.substring(2), ''); } else { const endOfNamespaceURI = qNameAsString.indexOf('}'); if (endOfNamespaceURI === -1) { diff --git a/yarn.lock b/yarn.lock index d01226df7..f8f10f8bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1597,6 +1597,7 @@ __metadata: "@babel/preset-typescript": ^7.23.3 "@datamapper-poc/xml-schema-ts": "workspace:*" "@dnd-kit/core": ^6.1.0 + "@patternfly/react-code-editor": ^5.2.3 "@patternfly/react-core": ^5.1.2 "@patternfly/react-table": ^5.1.2 "@patternfly/react-topology": ^5.1.0 @@ -1626,6 +1627,7 @@ __metadata: jest-environment-jsdom: ^29.7.0 loglevel: ^1.9.1 madge: ^6.1.0 + monaco-editor: ^0.47.0 pako: ^2.1.0 prettier: ^3.2.5 react: ^18.2.0 @@ -1645,6 +1647,7 @@ __metadata: use-debounce: ^10.0.0 vite: ^5.0.12 vite-plugin-circular-dependency: ^0.4.0 + xml-formatter: ^3.6.2 languageName: unknown linkType: soft @@ -2578,6 +2581,30 @@ __metadata: languageName: node linkType: hard +"@monaco-editor/loader@npm:^1.4.0": + version: 1.4.0 + resolution: "@monaco-editor/loader@npm:1.4.0" + dependencies: + state-local: ^1.0.6 + peerDependencies: + monaco-editor: ">= 0.21.0 < 1" + checksum: 374ec0ea872ee15b33310e105a43217148161480d3955c5cece87d0f801754cd2c45a3f6c539a75da18a066c1615756fb87eaf1003f1df6a64a0cbce5d2c3749 + languageName: node + linkType: hard + +"@monaco-editor/react@npm:^4.6.0": + version: 4.6.0 + resolution: "@monaco-editor/react@npm:4.6.0" + dependencies: + "@monaco-editor/loader": ^1.4.0 + peerDependencies: + monaco-editor: ">= 0.25.0 < 1" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 9d44e76c5baad6db5f84c90a5540fbd3c9af691b97d76cf2a99b3c8273004d0efe44c2572d80e9d975c9af10022c21e4a66923924950a5201e82017c8b20428c + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -2914,6 +2941,23 @@ __metadata: languageName: node linkType: hard +"@patternfly/react-code-editor@npm:^5.2.3": + version: 5.2.3 + resolution: "@patternfly/react-code-editor@npm:5.2.3" + dependencies: + "@monaco-editor/react": ^4.6.0 + "@patternfly/react-core": ^5.2.3 + "@patternfly/react-icons": ^5.2.1 + "@patternfly/react-styles": ^5.2.1 + react-dropzone: 14.2.3 + tslib: ^2.5.0 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: b54d0c7763068c070961aacaa4e89faaa685d1a8bc7ad1a0854cb0577885414a4aa5c10b49c48c9cbf20b12d9d2b88e83d791e74ccfe2d268c1c43fbc34038b4 + languageName: node + linkType: hard + "@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0, @patternfly/react-core@npm:^5.2.2": version: 5.2.2 resolution: "@patternfly/react-core@npm:5.2.2" @@ -2931,6 +2975,23 @@ __metadata: languageName: node linkType: hard +"@patternfly/react-core@npm:^5.2.3": + version: 5.2.3 + resolution: "@patternfly/react-core@npm:5.2.3" + dependencies: + "@patternfly/react-icons": ^5.2.1 + "@patternfly/react-styles": ^5.2.1 + "@patternfly/react-tokens": ^5.2.1 + focus-trap: 7.5.2 + react-dropzone: ^14.2.3 + tslib: ^2.5.0 + peerDependencies: + react: ^17 || ^18 + react-dom: ^17 || ^18 + checksum: 3e9e560f745fe00a15e563b3911896cdef7840cce44a98795339ac389c012aa4d104db5f9cc73ca2acef3f9d980aad37a5e1a99e2280b2e480d03e738c67eed9 + languageName: node + linkType: hard + "@patternfly/react-icons@npm:^5.1.1": version: 5.2.0 resolution: "@patternfly/react-icons@npm:5.2.0" @@ -9914,6 +9975,13 @@ __metadata: languageName: node linkType: hard +"monaco-editor@npm:^0.47.0": + version: 0.47.0 + resolution: "monaco-editor@npm:0.47.0" + checksum: a1c5fe6a0d71214aa2fd4fd635f89a7df6ad599e4e01492a268eb70a456e7a29dfa301324e00b577eaf9fa69813b8a28924980ab8457d89faf14d13fcbbc2d6e + languageName: node + linkType: hard + "moo-color@npm:^1.0.2": version: 1.0.3 resolution: "moo-color@npm:1.0.3" @@ -11082,7 +11150,7 @@ __metadata: languageName: node linkType: hard -"react-dropzone@npm:^14.2.3": +"react-dropzone@npm:14.2.3, react-dropzone@npm:^14.2.3": version: 14.2.3 resolution: "react-dropzone@npm:14.2.3" dependencies: @@ -12047,6 +12115,13 @@ __metadata: languageName: node linkType: hard +"state-local@npm:^1.0.6": + version: 1.0.7 + resolution: "state-local@npm:1.0.7" + checksum: d1afcf1429e7e6eb08685b3a94be8797db847369316d4776fd51f3962b15b984dacc7f8e401ad20968e5798c9565b4b377afedf4e4c4d60fe7495e1cbe14a251 + languageName: node + linkType: hard + "stream-to-array@npm:^2.3.0": version: 2.3.0 resolution: "stream-to-array@npm:2.3.0" @@ -13439,6 +13514,15 @@ __metadata: languageName: node linkType: hard +"xml-formatter@npm:^3.6.2": + version: 3.6.2 + resolution: "xml-formatter@npm:3.6.2" + dependencies: + xml-parser-xo: ^4.1.0 + checksum: 6ca632b136d47f68b12be88e5543f859cdc754c9e1c1386c68b8c7803f9b894c8ec19f51bdcbfa957d782358aa19778b2ef46702f4120a78920661b683033290 + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -13446,6 +13530,13 @@ __metadata: languageName: node linkType: hard +"xml-parser-xo@npm:^4.1.0": + version: 4.1.1 + resolution: "xml-parser-xo@npm:4.1.1" + checksum: f726f4416d501eb9b197a7a34178aeaee9ba9a53babf61e78265240f8a6f44bd099a15c76d2610a9519c9d1dcc812bb773ae8a00df39019f911f24e1ecff0cdf + languageName: node + linkType: hard + "xmlchars@npm:^2.2.0": version: 2.2.0 resolution: "xmlchars@npm:2.2.0" From 033353f0b910c96a1b104b5c4c1ea440f610bd43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 01:28:23 +0000 Subject: [PATCH 089/471] chore(deps): update dependency @storybook/addon-actions to v8.0.1 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index f8f10f8bb..58602f8c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3316,16 +3316,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.0 - resolution: "@storybook/addon-actions@npm:8.0.0" + version: 8.0.1 + resolution: "@storybook/addon-actions@npm:8.0.1" dependencies: - "@storybook/core-events": 8.0.0 + "@storybook/core-events": 8.0.1 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: c24e07def81e77620c9fafa14cde7aa426efe09b1e4a7906baa22165c17df338dd171cc5b0f3c407ef036583774f25a840521f16b4b2442e0db60699a5044145 + checksum: b07bd7be362b78fd2e0aa68d7390a580e69c2f5afaf274e40d6ed8bb1d36d5ef40ce723b4cb1d6b92a48d503b83529272f3cb08c4427eb7081657f198a868edd languageName: node linkType: hard @@ -3361,12 +3361,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.0": - version: 8.0.0 - resolution: "@storybook/core-events@npm:8.0.0" +"@storybook/core-events@npm:8.0.1": + version: 8.0.1 + resolution: "@storybook/core-events@npm:8.0.1" dependencies: ts-dedent: ^2.0.0 - checksum: 5c58add81bae0b9de642ddb06568c663651574ddb86007b50c0a5877c3e300135e3f1a6533a6dd25e260d29c11c811410481e2fc6523f5d4d221ad66d18e91d5 + checksum: 721b024b6f144c6f527b7b9af994856a2d49388ccc9c8c1a99c29e2a866f31978162f36fc047bf12b1d6377330b21b6e18273ce95c04e6b849b5fbcbb95d69ef languageName: node linkType: hard From e531df11e468a8f2a8ef9bf57398ee6688f6098e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 01:28:45 +0000 Subject: [PATCH 090/471] chore(deps): update dependency @types/node to v20.11.29 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 58602f8c8..d0a8f2d51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3873,11 +3873,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.28 - resolution: "@types/node@npm:20.11.28" + version: 20.11.29 + resolution: "@types/node@npm:20.11.29" dependencies: undici-types: ~5.26.4 - checksum: 83fe7e649c6439103872a292f7b9808233e1eea4bf7d5afa6fce71729e3f7a06933cd792543db84cf65b89ca985fb6f44efaeb748e2ce51a6525ade030338af8 + checksum: d6d37d4f72a372b033b8737ce615abb2ad8668c689ca4ef8c49b85249f8448fa9348ec8c67e96db3d11f64badd7e598c3da53c6804ea0fca8dd3bea585d93c29 languageName: node linkType: hard From d976c147abe3d932f8f97cb24043e393e86dc8c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 04:09:02 +0000 Subject: [PATCH 091/471] chore(deps): update dependency @types/react to v18.2.67 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d0a8f2d51..20c833443 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3937,13 +3937,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53, @types/react@npm:^18.2.61": - version: 18.2.66 - resolution: "@types/react@npm:18.2.66" + version: 18.2.67 + resolution: "@types/react@npm:18.2.67" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 266cdd046bd1bb4f1e2d07bba305e1264e91bedcb9e8643e303fc80468f3cf0860c82982589c67fc07a10f5496eb04c1cc2bf8283484f27a605c2651c6c8f3f3 + checksum: 9e48122b0e8d0ae20601f613aca32289eeb94d55c58ff03a7dc532d80ed289a1ba9715f14b773bd926ccdd63e503717f14264143ef531dc370063abe09dee0b2 languageName: node linkType: hard From 9024edd1068fe9b5d3783d7fe27ead4d2282d152 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 12:23:15 +0000 Subject: [PATCH 092/471] fix(deps): update @patternfly --- yarn.lock | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index 20c833443..772de528e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2958,24 +2958,7 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0, @patternfly/react-core@npm:^5.2.2": - version: 5.2.2 - resolution: "@patternfly/react-core@npm:5.2.2" - dependencies: - "@patternfly/react-icons": ^5.2.1 - "@patternfly/react-styles": ^5.2.1 - "@patternfly/react-tokens": ^5.2.1 - focus-trap: 7.5.2 - react-dropzone: ^14.2.3 - tslib: ^2.5.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 88bee51a0275e493dbd9519d50bffa548096d5d06b644ced1e14dfe9771d3ec6c6d1bac80513db37e1866803435372e8ffc3c8ceeaaed4bb332e01ad7122a92d - languageName: node - linkType: hard - -"@patternfly/react-core@npm:^5.2.3": +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0, @patternfly/react-core@npm:^5.2.3": version: 5.2.3 resolution: "@patternfly/react-core@npm:5.2.3" dependencies: @@ -3027,10 +3010,10 @@ __metadata: linkType: hard "@patternfly/react-table@npm:^5.1.2, @patternfly/react-table@npm:^5.2.1": - version: 5.2.2 - resolution: "@patternfly/react-table@npm:5.2.2" + version: 5.2.4 + resolution: "@patternfly/react-table@npm:5.2.4" dependencies: - "@patternfly/react-core": ^5.2.2 + "@patternfly/react-core": ^5.2.3 "@patternfly/react-icons": ^5.2.1 "@patternfly/react-styles": ^5.2.1 "@patternfly/react-tokens": ^5.2.1 @@ -3039,7 +3022,7 @@ __metadata: peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: a97a63297d72a6c66eb3af07c05f7b5ab62c97250490af59eaa6992eab2e5b5c2cb170a307591ad18085849fc9a69b716acd969f74d3744106c2e0ab6e13e165 + checksum: d2e4fc2fcd2b5a3d8b3721557486f213aba0a6ad990db14d5094318943eeed0d7f38a6f0ff0093566dfad622f7ce4ffeef3fa86baa2913be493a757e96b73673 languageName: node linkType: hard From 1694e46b2e1b105f9046a40d08f82dbaa0cf739d Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 19 Mar 2024 13:30:20 -0400 Subject: [PATCH 093/471] fix: xsl:attribute is the one to set the attribute --- packages/ui/src/services/mapping-serializer.service.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index d3cd413e1..f9792ff7b 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -81,8 +81,13 @@ export class MappingSerializerService { static putSource(parent: Element, source: IField, target: IField) { const xsltDocument = parent.ownerDocument; const sourceXpath = '/' + source.fieldIdentifier.pathSegments.join('/'); - if (source.isAttribute) { - parent.setAttributeNS(target.namespaceURI, target.name, sourceXpath); + if (target.isAttribute) { + const xslAttribute = xsltDocument.createElementNS(NS_XSL, 'attribute'); + xslAttribute.setAttribute('name', target.name); + parent.appendChild(xslAttribute); + const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); + valueOf.setAttribute('select', sourceXpath); + xslAttribute.appendChild(valueOf); } else { const element = xsltDocument.createElementNS(target.namespaceURI, target.name); parent.appendChild(element); From 0b65872df4b35f5eb5fff2f8c42ae3cc6c0c8c3f Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 19 Mar 2024 18:30:03 -0400 Subject: [PATCH 094/471] checkpoint(#3): fixed namespace handling in select xpath --- .../services/mapping-serializer.service.ts | 55 +++++++++++++++---- 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index f9792ff7b..99c0da661 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -42,10 +42,7 @@ export class MappingSerializerService { } const xsltDocument = template.ownerDocument; - const fieldStack: IField[] = []; - for (let next = target.parent; 'parent' in next; next = (next as IField).parent) { - fieldStack.push(next); - } + const fieldStack: IField[] = MappingSerializerService.getFieldStack(target); let parentNode = template; while (fieldStack.length) { const currentField = fieldStack.pop()!; @@ -60,10 +57,7 @@ export class MappingSerializerService { } }); if (!element) { - const nsResolver = xsltDocument.createNSResolver(parentNode); - const prefix = nsResolver.lookupPrefix(currentField.namespaceURI); - const name = prefix ? prefix + ':' + currentField.name : currentField.name; - element = xsltDocument.createElementNS(currentField.namespaceURI, name); + element = xsltDocument.createElementNS(currentField.namespaceURI, currentField.name); parentNode.appendChild(element); } parentNode = element; @@ -71,6 +65,15 @@ export class MappingSerializerService { return parentNode; } + static getFieldStack(field: IField, includeItself: boolean = false) { + const fieldStack: IField[] = []; + if (includeItself) fieldStack.push(field); + for (let next = field.parent; 'parent' in next; next = (next as IField).parent) { + fieldStack.push(next); + } + return fieldStack; + } + static isInSameNamespace(element: Element, field: IField) { if (element.namespaceURI === null || element.namespaceURI === '') { return field.namespaceURI === null || field.namespaceURI === ''; @@ -80,23 +83,53 @@ export class MappingSerializerService { static putSource(parent: Element, source: IField, target: IField) { const xsltDocument = parent.ownerDocument; - const sourceXpath = '/' + source.fieldIdentifier.pathSegments.join('/'); + const sourceXPath = MappingSerializerService.getXPath(xsltDocument, source); if (target.isAttribute) { const xslAttribute = xsltDocument.createElementNS(NS_XSL, 'attribute'); xslAttribute.setAttribute('name', target.name); parent.appendChild(xslAttribute); const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); - valueOf.setAttribute('select', sourceXpath); + valueOf.setAttribute('select', sourceXPath); xslAttribute.appendChild(valueOf); } else { const element = xsltDocument.createElementNS(target.namespaceURI, target.name); parent.appendChild(element); const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); - valueOf.setAttribute('select', sourceXpath); + valueOf.setAttribute('select', sourceXPath); element.appendChild(valueOf); } } + static getXPath(xsltDocument: Document, field: IField) { + const fieldStack = MappingSerializerService.getFieldStack(field, true); + const pathStack: string[] = []; + while (fieldStack.length) { + const currentField = fieldStack.pop()!; + const prefix = MappingSerializerService.getOrCreateNSPrefix(xsltDocument, currentField.namespaceURI); + pathStack.push(prefix ? prefix + ':' + currentField.expression : currentField.expression); + } + return '/' + pathStack.join('/'); + } + + static getOrCreateNSPrefix(xsltDocument: Document, namespace: string | null) { + const rootElement = xsltDocument.documentElement; + if (namespace == null || namespace === '') { + return null; + } + const prefix = rootElement.lookupPrefix(namespace); + if (prefix != null && prefix !== '') { + return prefix; + } + for (let counter = 0; ; counter++) { + const prefix = 'ns' + counter; + const existing = rootElement.lookupNamespaceURI(prefix); + if (!existing) { + rootElement.setAttribute('xmlns:' + prefix, namespace); + return prefix; + } + } + } + static deserialize(xslt: string): IMapping[] { const xsltDoc = new DOMParser().parseFromString(xslt, 'application/xml'); const template = xsltDoc.getElementsByTagNameNS(NS_XSL, 'template')[0]; From 9df1471c2d41b12739bfeba73f93a9f90ba011d7 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 19 Mar 2024 20:29:32 -0400 Subject: [PATCH 095/471] checkpoint(#3): use `xsl:copy-of` for container field mapping --- packages/ui/src/layout/views/MappingDetailsView.tsx | 2 +- packages/ui/src/services/mapping-serializer.service.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/layout/views/MappingDetailsView.tsx b/packages/ui/src/layout/views/MappingDetailsView.tsx index 694b91d22..a9473d9f3 100644 --- a/packages/ui/src/layout/views/MappingDetailsView.tsx +++ b/packages/ui/src/layout/views/MappingDetailsView.tsx @@ -54,7 +54,7 @@ export const MappingDetailsView: FunctionComponent = () => { Target - {selectedMapping.sourceFields.map((field) => ( + {selectedMapping.targetFields.map((field) => ( diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 99c0da661..d2b43e973 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -91,6 +91,10 @@ export class MappingSerializerService { const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); valueOf.setAttribute('select', sourceXPath); xslAttribute.appendChild(valueOf); + } else if (target.fields.length > 0) { + const copyOf = xsltDocument.createElementNS(NS_XSL, 'copy-of'); + copyOf.setAttribute('select', sourceXPath); + parent.appendChild(copyOf); } else { const element = xsltDocument.createElementNS(target.namespaceURI, target.name); parent.appendChild(element); From 77f84bb78d30b988f8d6b0c402642f137e2783d3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 12:25:38 +0000 Subject: [PATCH 096/471] chore(deps): update babel monorepo --- yarn.lock | 959 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 538 insertions(+), 421 deletions(-) diff --git a/yarn.lock b/yarn.lock index 772de528e..65ebdf122 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,6 +39,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": + version: 7.24.2 + resolution: "@babel/code-frame@npm:7.24.2" + dependencies: + "@babel/highlight": ^7.24.2 + picocolors: ^1.0.0 + checksum: 70e867340cfe09ca5488b2f36372c45cabf43c79a5b6426e6df5ef0611ff5dfa75a57dda841895693de6008f32c21a7c97027a8c7bcabd63a7d17416cbead6f8 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -46,30 +56,49 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/compat-data@npm:7.24.1" + checksum: e14e94b00c3ac57bba929a87da8edb6c6a99d0051c54bf49591a5481440dd4d3ac7b4e4a93b81b54e45c2bca55e538aa1e1ad8281b083440a1598bfa8c8df03a + languageName: node + linkType: hard + "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9": - version: 7.24.0 - resolution: "@babel/core@npm:7.24.0" + version: 7.24.3 + resolution: "@babel/core@npm:7.24.3" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 + "@babel/code-frame": ^7.24.2 + "@babel/generator": ^7.24.1 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.24.0 - "@babel/parser": ^7.24.0 + "@babel/helpers": ^7.24.1 + "@babel/parser": ^7.24.1 "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.0 + "@babel/traverse": ^7.24.1 "@babel/types": ^7.24.0 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 3124a8a1c550f3818a55dc6f621af9c580b4959bc780cce7220f671088c404830f41870573f5acf7f837878f8aa82e84675ea148a9852c1b053533cb899300d3 + checksum: 1a33460794f4122cf255b656f4d6586913f41078a1afdf1bcf0365ddbd99c1ddb68f904062f9079445ab26b507c36bc297055192bc26e5c8e6e3def42195f9ab + languageName: node + linkType: hard + +"@babel/generator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/generator@npm:7.24.1" + dependencies: + "@babel/types": ^7.24.0 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: 98c6ce5ec7a1cba2bdf35cdf607273b90cf7cf82bbe75cd0227363fb84d7e1bd8efa74f40247d5900c8c009123f10132ad209a05283757698de918278c3c6700 languageName: node linkType: hard -"@babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" dependencies: @@ -99,7 +128,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": version: 7.23.6 resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: @@ -112,22 +141,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": - version: 7.23.10 - resolution: "@babel/helper-create-class-features-plugin@npm:7.23.10" +"@babel/helper-create-class-features-plugin@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.1" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-function-name": ^7.23.0 "@babel/helper-member-expression-to-functions": ^7.23.0 "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-replace-supers": ^7.24.1 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: ff0730c21f0e73b9e314701bca6568bb5885dff2aa3c32b1e2e3d18ed2818f56851b9ffdbe2e8008c9bb94b265a1443883ae4c1ca5dde278ce71ac4218006d68 + checksum: 310d063eafbd2a777609770c1aa7b24e43f375122fd84031c45edc512686000197da1cf450b48eca266489131bc06dbaa35db2afed8b7213c9bcfa8c89b82c4d languageName: node linkType: hard @@ -144,9 +173,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.5.0": - version: 0.5.0 - resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" +"@babel/helper-define-polyfill-provider@npm:^0.6.1": + version: 0.6.1 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1" dependencies: "@babel/helper-compilation-targets": ^7.22.6 "@babel/helper-plugin-utils": ^7.22.5 @@ -155,7 +184,7 @@ __metadata: resolve: ^1.14.2 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: d24626b819d3875cb65189d761004e9230f2b3fb60542525c4785616f4b2366741369235a864b744f54beb26d625ae4b0af0c9bb3306b61bf4fccb61e0620020 + checksum: b45deb37ce1342d862422e81a3d25ff55f9c7ca52fe303405641e2add8db754091aaaa2119047a0f0b85072221fbddaa92adf53104274661d2795783b56bea2c languageName: node linkType: hard @@ -185,7 +214,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": +"@babel/helper-member-expression-to-functions@npm:^7.23.0": version: 7.23.0 resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" dependencies: @@ -203,6 +232,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.24.1": + version: 7.24.3 + resolution: "@babel/helper-module-imports@npm:7.24.3" + dependencies: + "@babel/types": ^7.24.0 + checksum: c23492189ba97a1ec7d37012336a5661174e8b88194836b6bbf90d13c3b72c1db4626263c654454986f924c6da8be7ba7f9447876d709cd00bd6ffde6ec00796 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.23.3": version: 7.23.3 resolution: "@babel/helper-module-transforms@npm:7.23.3" @@ -254,16 +292,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-replace-supers@npm:7.22.20" +"@babel/helper-replace-supers@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helper-replace-supers@npm:7.24.1" dependencies: "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-member-expression-to-functions": ^7.22.15 + "@babel/helper-member-expression-to-functions": ^7.23.0 "@babel/helper-optimise-call-expression": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 + checksum: c04182c34a3195c6396de2f2945f86cb60daa94ca7392db09bd8b0d4e7a15b02fbe1947c70f6062c87eadaea6d7135207129efa35cf458ea0987bab8c0f02d5a languageName: node linkType: hard @@ -308,7 +346,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": +"@babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e @@ -326,14 +364,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/helpers@npm:7.24.0" +"@babel/helpers@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helpers@npm:7.24.1" dependencies: "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.0 + "@babel/traverse": ^7.24.1 "@babel/types": ^7.24.0 - checksum: 2c1d9547c7a6e5aa648d4f3959252f825d4176ee52ed5430d65e50e68a138776adfd87ff3c8f9719ea6cd36601e935936d006340770ad8282b8664770aca8e33 + checksum: 0643b8ccf3358682303aea65f0798e482b2c3642040d32ffe130a245f4a46d0d23fe575a5e06e3cda4e8ec4af89d52b94ff1c444a74465d47ccc27da6ddbbb9f languageName: node linkType: hard @@ -348,6 +386,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.24.2": + version: 7.24.2 + resolution: "@babel/highlight@npm:7.24.2" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: 5f17b131cc3ebf3ab285a62cf98a404aef1bd71a6be045e748f8d5bf66d6a6e1aefd62f5972c84369472e8d9f22a614c58a89cd331eb60b7ba965b31b1bbeaf5 + languageName: node + linkType: hard + "@babel/parser@npm:^7.0.0, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.23.9": version: 7.23.9 resolution: "@babel/parser@npm:7.23.9" @@ -366,39 +416,48 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" +"@babel/parser@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/parser@npm:7.24.1" + bin: + parser: ./bin/babel-parser.js + checksum: a1068941dddf82ffdf572565b8b7b2cddb963ff9ddf97e6e28f50e843d820b4285e6def8f59170104a94e2a91ae2e3b326489886d77a57ea29d468f6a5e79bf9 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: ddbaf2c396b7780f15e80ee01d6dd790db076985f3dfeb6527d1a8d4cacf370e49250396a3aa005b2c40233cac214a106232f83703d5e8491848bde273938232 + checksum: ec5fddc8db6de0e0082a883f21141d6f4f9f9f0bc190d662a732b5e9a506aae5d7d2337049a1bf055d7cb7add6f128036db6d4f47de5e9ac1be29e043c8b7ca8 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.23.3 + "@babel/plugin-transform-optional-chaining": ^7.24.1 peerDependencies: "@babel/core": ^7.13.0 - checksum: 434b9d710ae856fa1a456678cc304fbc93915af86d581ee316e077af746a709a741ea39d7e1d4f5b98861b629cc7e87f002d3138f5e836775632466d4c74aef2 + checksum: e18235463e716ac2443938aaec3c18b40c417a1746fba0fa4c26cf4d71326b76ef26c002081ab1b445abfae98e063d561519aa55672dddc1ef80b3940211ffbb languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7": - version: 7.23.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.23.7" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1" dependencies: "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: f88e400b548202a6f8c5dfd25bc4949a13ea1ccb64a170d7dea4deaa655a0fcb001d3fd61c35e1ad9c09a3d5f0d43f783400425471fe6d660ccaf33dabea9aba + checksum: b5e5889ce5ef51e813e3063cd548f55eb3c88e925c3c08913f334e15d62496861e538ae52a3974e0c56a3044ed8fd5033faea67a64814324af56edc9865b7359 languageName: node linkType: hard @@ -477,25 +536,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" +"@babel/plugin-syntax-import-assertions@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 883e6b35b2da205138caab832d54505271a3fee3fc1e8dc0894502434fc2b5d517cbe93bbfbfef8068a0fb6ec48ebc9eef3f605200a489065ba43d8cddc1c9a7 + checksum: 2a463928a63b62052e9fb8f8b0018aa11a926e94f32c168260ae012afe864875c6176c6eb361e13f300542c31316dad791b08a5b8ed92436a3095c7a0e4fce65 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.23.3" +"@babel/plugin-syntax-import-attributes@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9aed7661ffb920ca75df9f494757466ca92744e43072e0848d87fa4aa61a3f2ee5a22198ac1959856c036434b5614a8f46f1fb70298835dbe28220cdd1d4c11e + checksum: 87c8aa4a5ef931313f956871b27f2c051556f627b97ed21e9a5890ca4906b222d89062a956cde459816f5e0dec185ff128d7243d3fdc389504522acb88f0464e languageName: node linkType: hard @@ -532,6 +591,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 712f7e7918cb679f106769f57cfab0bc99b311032665c428b98f4c3e2e6d567601d45386a4f246df6a80d741e1f94192b3f008800d66c4f1daae3ad825c243f0 + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -620,7 +690,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.23.3, @babel/plugin-syntax-typescript@npm:^7.7.2": +"@babel/plugin-syntax-typescript@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-syntax-typescript@npm:7.24.1" + dependencies: + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf4bd70788d5456b5f75572e47a2e31435c7c4e43609bd4dffd2cc0c7a6cf90aabcf6cd389e351854de9a64412a07d30effef5373251fe8f6a4c9db0c0163bda + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.23.3 resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" dependencies: @@ -643,310 +724,310 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" +"@babel/plugin-transform-arrow-functions@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1e99118176e5366c2636064d09477016ab5272b2a92e78b8edb571d20bc3eaa881789a905b20042942c3c2d04efc530726cf703f937226db5ebc495f5d067e66 + checksum: 58f9aa9b0de8382f8cfa3f1f1d40b69d98cd2f52340e2391733d0af745fdddda650ba392e509bc056157c880a2f52834a38ab2c5aa5569af8c61bb6ecbf45f34 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.9" +"@babel/plugin-transform-async-generator-functions@npm:^7.24.3": + version: 7.24.3 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3" dependencies: "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-remap-async-to-generator": ^7.22.20 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d402494087a6b803803eb5ab46b837aab100a04c4c5148e38bfa943ea1bbfc1ecfb340f1ced68972564312d3580f550c125f452372e77607a558fbbaf98c31c0 + checksum: 309af02610be65d937664435adb432a32d9b6eb42bb3d3232c377d27fbc57014774d931665a5bfdaff3d1841b72659e0ad7adcef84b709f251cb0b8444f19214 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" +"@babel/plugin-transform-async-to-generator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1" dependencies: - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-module-imports": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-remap-async-to-generator": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2e9d9795d4b3b3d8090332104e37061c677f29a1ce65bcbda4099a32d243e5d9520270a44bbabf0fb1fb40d463bd937685b1a1042e646979086c546d55319c3c + checksum: 429004a6596aa5c9e707b604156f49a146f8d029e31a3152b1649c0b56425264fda5fd38e5db1ddaeb33c3fe45c97dc8078d7abfafe3542a979b49f229801135 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e63b16d94ee5f4d917e669da3db5ea53d1e7e79141a2ec873c1e644678cdafe98daa556d0d359963c827863d6b3665d23d4938a94a4c5053a1619c4ebd01d020 + checksum: d8e18bd57b156da1cd4d3c1780ab9ea03afed56c6824ca8e6e74f67959d7989a0e953ec370fe9b417759314f2eef30c8c437395ce63ada2e26c2f469e4704f82 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" +"@babel/plugin-transform-block-scoping@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fc4b2100dd9f2c47d694b4b35ae8153214ccb4e24ef545c259a9db17211b18b6a430f22799b56db8f6844deaeaa201af45a03331d0c80cc28b0c4e3c814570e4 + checksum: 65423ee83dba4e84c357f34e0970a96d0f5e727fad327cc7bdb0e1492243eb9c72b95d3c649dc0b488b9b4774dadef5662fed0bf66717b59673ff6d4ffbd6441 languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-class-properties@npm:7.23.3" +"@babel/plugin-transform-class-properties@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9c6f8366f667897541d360246de176dd29efc7a13d80a5b48361882f7173d9173be4646c3b7d9b003ccc0e01e25df122330308f33db921fa553aa17ad544b3fc + checksum: 95779e9eef0c0638b9631c297d48aee53ffdbb2b1b5221bf40d7eccd566a8e34f859ff3571f8f20b9159b67f1bff7d7dc81da191c15d69fbae5a645197eae7e0 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" +"@babel/plugin-transform-class-static-block@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: c8bfaba19a674fc2eb54edad71e958647360474e3163e8226f1acd63e4e2dbec32a171a0af596c1dc5359aee402cc120fea7abd1fb0e0354b6527f0fc9e8aa1e + checksum: 253c627c11d9df79e3b32e78bfa1fe0dd1f91c3579da52bf73f76c83de53b140dcb1c9cc5f4c65ff1505754a01b59bc83987c35bcc8f89492b63dae46adef78f languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.23.8": - version: 7.23.8 - resolution: "@babel/plugin-transform-classes@npm:7.23.8" +"@babel/plugin-transform-classes@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-classes@npm:7.24.1" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-replace-supers": ^7.24.1 "@babel/helper-split-export-declaration": ^7.22.6 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7dee6cebe52131d2d16944f36e1fdb9d4b24f44d0e7e450f93a44435d001f17cc0789a4cb6b15ec67c8e484581b8a730b5c3ec374470f29ff0133086955b8c58 + checksum: e5337e707d731c9f4dcc107d09c9a99b90786bc0da6a250165919587ed818818f6cae2bbcceea880abef975c0411715c0c7f3f361ecd1526bf2eaca5ad26bb00 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" +"@babel/plugin-transform-computed-properties@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/template": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/template": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 80452661dc25a0956f89fe98cb562e8637a9556fb6c00d312c57653ce7df8798f58d138603c7e1aad96614ee9ccd10c47e50ab9ded6b6eded5adeb230d2a982e + checksum: f2832bcf100a70f348facbb395873318ef5b9ee4b0fb4104a420d9daaeb6003cc2ecc12fd8083dd2e4a7c2da873272ad73ff94de4497125a0cf473294ef9664e languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" +"@babel/plugin-transform-destructuring@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9e015099877272501162419bfe781689aec5c462cd2aec752ee22288f209eec65969ff11b8fdadca2eaddea71d705d3bba5b9c60752fcc1be67874fcec687105 + checksum: 994fd3c513e40b8f1bdfdd7104ebdcef7c6a11a4e380086074496f586db3ac04cba0ae70babb820df6363b6700747b0556f6860783e046ace7c741a22f49ec5b languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" +"@babel/plugin-transform-dotall-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1" dependencies: "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a2dbbf7f1ea16a97948c37df925cb364337668c41a3948b8d91453f140507bd8a3429030c7ce66d09c299987b27746c19a2dd18b6f17dcb474854b14fd9159a3 + checksum: 7f623d25b6f213b94ebc1754e9e31c1077c8e288626d8b7bfa76a97b067ce80ddcd0ede402a546706c65002c0ccf45cd5ec621511c2668eed31ebcabe8391d35 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" +"@babel/plugin-transform-duplicate-keys@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c2a21c34dc0839590cd945192cbc46fde541a27e140c48fe1808315934664cdbf18db64889e23c4eeb6bad9d3e049482efdca91d29de5734ffc887c4fbabaa16 + checksum: a3b07c07cee441e185858a9bb9739bb72643173c18bf5f9f949dd2d4784ca124e56b01d0a270790fb1ff0cf75d436075db0a2b643fb4285ff9a21df9e8dc6284 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" +"@babel/plugin-transform-dynamic-import@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 57a722604c430d9f3dacff22001a5f31250e34785d4969527a2ae9160fa86858d0892c5b9ff7a06a04076f8c76c9e6862e0541aadca9c057849961343aab0845 + checksum: 59fc561ee40b1a69f969c12c6c5fac206226d6642213985a569dd0f99f8e41c0f4eaedebd36936c255444a8335079842274c42a975a433beadb436d4c5abb79b languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1" dependencies: "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 00d05ab14ad0f299160fcf9d8f55a1cc1b740e012ab0b5ce30207d2365f091665115557af7d989cd6260d075a252d9e4283de5f2b247dfbbe0e42ae586e6bf66 + checksum: f90841fe1a1e9f680b4209121d3e2992f923e85efcd322b26e5901c180ef44ff727fb89790803a23fac49af34c1ce2e480018027c22b4573b615512ac5b6fc50 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" +"@babel/plugin-transform-export-namespace-from@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9f770a81bfd03b48d6ba155d452946fd56d6ffe5b7d871e9ec2a0b15e0f424273b632f3ed61838b90015b25bbda988896b7a46c7d964fbf8f6feb5820b309f93 + checksum: bc710ac231919df9555331885748385c11c5e695d7271824fe56fba51dd637d48d3e5cd52e1c69f2b1a384fbbb41552572bc1ca3a2285ee29571f002e9bb2421 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/plugin-transform-for-of@npm:7.23.6" +"@babel/plugin-transform-for-of@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-for-of@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 228c060aa61f6aa89dc447170075f8214863b94f830624e74ade99c1a09316897c12d76e848460b0b506593e58dbc42739af6dc4cb0fe9b84dffe4a596050a36 + checksum: 990adde96ea1766ed6008c006c7040127bef59066533bb2977b246ea4a596fe450a528d1881a0db5f894deaf1b81654dfb494b19ad405b369be942738aa9c364 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-function-name@npm:7.23.3" +"@babel/plugin-transform-function-name@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-function-name@npm:7.24.1" dependencies: - "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 355c6dbe07c919575ad42b2f7e020f320866d72f8b79181a16f8e0cd424a2c761d979f03f47d583d9471b55dcd68a8a9d829b58e1eebcd572145b934b48975a6 + checksum: 31eb3c75297dda7265f78eba627c446f2324e30ec0124a645ccc3e9f341254aaa40d6787bd62b2280d77c0a5c9fbfce1da2c200ef7c7f8e0a1b16a8eb3644c6f languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" +"@babel/plugin-transform-json-strings@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f9019820233cf8955d8ba346df709a0683c120fe86a24ed1c9f003f2db51197b979efc88f010d558a12e1491210fc195a43cd1c7fee5e23b92da38f793a875de + checksum: f42302d42fc81ac00d14e9e5d80405eb80477d7f9039d7208e712d6bcd486a4e3b32fdfa07b5f027d6c773723d8168193ee880f93b0e430c828e45f104fb82a4 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-literals@npm:7.23.3" +"@babel/plugin-transform-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-literals@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 519a544cd58586b9001c4c9b18da25a62f17d23c48600ff7a685d75ca9eb18d2c5e8f5476f067f0a8f1fea2a31107eff950b9864833061e6076dcc4bdc3e71ed + checksum: 2df94e9478571852483aca7588419e574d76bde97583e78551c286f498e01321e7dbb1d0ef67bee16e8f950688f79688809cfde370c5c4b84c14d841a3ef217a languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2ae1dc9b4ff3bf61a990ff3accdecb2afe3a0ca649b3e74c010078d1cdf29ea490f50ac0a905306a2bcf9ac177889a39ac79bdcc3a0fdf220b3b75fac18d39b5 + checksum: 895f2290adf457cbf327428bdb4fb90882a38a22f729bcf0629e8ad66b9b616d2721fbef488ac00411b647489d1dda1d20171bb3772d0796bb7ef5ecf057808a languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" +"@babel/plugin-transform-member-expression-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 95cec13c36d447c5aa6b8e4c778b897eeba66dcb675edef01e0d2afcec9e8cb9726baf4f81b4bbae7a782595aed72e6a0d44ffb773272c3ca180fada99bf92db + checksum: 4ea641cc14a615f9084e45ad2319f95e2fee01c77ec9789685e7e11a6c286238a426a98f9c1ed91568a047d8ac834393e06e8c82d1ff01764b7aa61bee8e9023 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" +"@babel/plugin-transform-modules-amd@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1" dependencies: "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d163737b6a3d67ea579c9aa3b83d4df4b5c34d9dcdf25f415f027c0aa8cded7bac2750d2de5464081f67a042ad9e1c03930c2fab42acd79f9e57c00cf969ddff + checksum: 3d777c262f257e93f0405b13e178f9c4a0f31855b409f0191a76bb562a28c541326a027bfe6467fcb74752f3488c0333b5ff2de64feec1b3c4c6ace1747afa03 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" +"@babel/plugin-transform-modules-commonjs@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1" dependencies: "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-simple-access": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 720a231ceade4ae4d2632478db4e7fecf21987d444942b72d523487ac8d715ca97de6c8f415c71e939595e1a4776403e7dc24ed68fe9125ad4acf57753c9bff7 + checksum: 11402b34c49f76aa921b43c2d76f3f129a32544a1dc4f0d1e48b310f9036ab75269a6d8684ed0198b7a0b07bd7898b12f0cacceb26fbb167999fd2a819aa0802 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" +"@babel/plugin-transform-modules-systemjs@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1" dependencies: "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cec6abeae6be66fd1a5940c482fe9ff94b689c71fcf4147e179119e4accd09d17d476e36528bc9cb4ab0ec6728fedf48b1c49d0551ea707fb192575d8eac9167 + checksum: 903766f6808f04278e887e4adec9b1efa741726279652dad255eaad0f5701df8f8ff0af25eb8541a00eb3c9eae2dccf337b085cfa011426ca33ed1f95d70bf75 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" +"@babel/plugin-transform-modules-umd@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1" dependencies: "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 586a7a2241e8b4e753a37af9466a9ffa8a67b4ba9aa756ad7500712c05d8fa9a8c1ed4f7bd25fae2a8265e6cf8fe781ec85a8ee885dd34cf50d8955ee65f12dc + checksum: 4922f5056d34de6fd59a1ab1c85bc3472afa706c776aceeb886289c9ac9117e6eb8e22d06c537eb5bc0ede6c30f6bd85210bdcc150dc0ae2d2373f8252df9364 languageName: node linkType: hard @@ -962,149 +1043,148 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-new-target@npm:7.23.3" +"@babel/plugin-transform-new-target@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-new-target@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e5053389316fce73ad5201b7777437164f333e24787fbcda4ae489cd2580dbbbdfb5694a7237bad91fabb46b591d771975d69beb1c740b82cb4761625379f00b + checksum: f56159ba56e8824840b8073f65073434e4bc4ef20e366bc03aa6cae9a4389365574fa72390e48aed76049edbc6eba1181eb810e58fae22c25946c62f9da13db4 languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a27d73ea134d3d9560a6b2e26ab60012fba15f1db95865aa0153c18f5ec82cfef6a7b3d8df74e3c2fca81534fa5efeb6cacaf7b08bdb7d123e3dafdd079886a3 + checksum: 74025e191ceb7cefc619c15d33753aab81300a03d81b96ae249d9b599bc65878f962d608f452462d3aad5d6e334b7ab2b09a6bdcfe8d101fe77ac7aacca4261e languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" +"@babel/plugin-transform-numeric-separator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6ba0e5db3c620a3ec81f9e94507c821f483c15f196868df13fa454cbac719a5449baf73840f5b6eb7d77311b24a2cf8e45db53700d41727f693d46f7caf3eec3 + checksum: 3247bd7d409574fc06c59e0eb573ae7470d6d61ecf780df40b550102bb4406747d8f39dcbec57eb59406df6c565a86edd3b429e396ad02e4ce201ad92050832e languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.0" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.1" dependencies: - "@babel/compat-data": ^7.23.5 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.23.3 + "@babel/plugin-transform-parameters": ^7.24.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8877b6a5493df0e36007286ea5e5e2305575346cf1b128049e7db3ff3861f2eb7eb0e8fa3e0b6334de27724253bf32b27e572b2c35dd93b02403476c306b9f5d + checksum: d5d28b1f33c279a38299d34011421a4915e24b3846aa23a1aba947f1366ce673ddf8df09dd915e0f2c90c5327f798bf126dca013f8adff1fc8f09e18878b675a languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-object-super@npm:7.23.3" +"@babel/plugin-transform-object-super@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-object-super@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.20 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-replace-supers": ^7.24.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e495497186f621fa79026e183b4f1fbb172fd9df812cbd2d7f02c05b08adbe58012b1a6eb6dd58d11a30343f6ec80d0f4074f9b501d70aa1c94df76d59164c53 + checksum: d34d437456a54e2a5dcb26e9cf09ed4c55528f2a327c5edca92c93e9483c37176e228d00d6e0cf767f3d6fdbef45ae3a5d034a7c59337a009e20ae541c8220fa languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d50b5ee142cdb088d8b5de1ccf7cea85b18b85d85b52f86618f6e45226372f01ad4cdb29abd4fd35ea99a71fefb37009e0107db7a787dcc21d4d402f97470faf + checksum: ff7c02449d32a6de41e003abb38537b4a1ad90b1eaa4c0b578cb1b55548201a677588a8c47f3e161c72738400ae811a6673ea7b8a734344755016ca0ac445dac languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" +"@babel/plugin-transform-optional-chaining@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e7a4c08038288057b7a08d68c4d55396ada9278095509ca51ed8dfb72a7f13f26bdd7c5185de21079fe0a9d60d22c227cb32e300d266c1bda40f70eee9f4bc1e + checksum: 0eb5f4abdeb1a101c0f67ef25eba4cce0978a74d8722f6222cdb179a28e60d21ab545eda231855f50169cd63d604ec8268cff44ae9370fd3a499a507c56c2bbd languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-parameters@npm:7.23.3" +"@babel/plugin-transform-parameters@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-parameters@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a735b3e85316d17ec102e3d3d1b6993b429bdb3b494651c9d754e3b7d270462ee1f1a126ccd5e3d871af5e683727e9ef98c9d34d4a42204fffaabff91052ed16 + checksum: d183008e67b1a13b86c92fb64327a75cd8e13c13eb80d0b6952e15806f1b0c4c456d18360e451c6af73485b2c8f543608b0a29e5126c64eb625a31e970b65f80 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-private-methods@npm:7.23.3" +"@babel/plugin-transform-private-methods@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cedc1285c49b5a6d9a3d0e5e413b756ac40b3ac2f8f68bdfc3ae268bc8d27b00abd8bb0861c72756ff5dd8bf1eb77211b7feb5baf4fdae2ebbaabe49b9adc1d0 + checksum: 7208c30bb3f3fbc73fb3a88bdcb78cd5cddaf6d523eb9d67c0c04e78f6fc6319ece89f4a5abc41777ceab16df55b3a13a4120e0efc9275ca6d2d89beaba80aa0 languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" +"@babel/plugin-transform-private-property-in-object@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.1" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fb7adfe94ea97542f250a70de32bddbc3e0b802381c92be947fec83ebffda57e68533c4d0697152719a3496fdd3ebf3798d451c024cd4ac848fc15ac26b70aa7 + checksum: 47c123ca9975f7f6b20e6fe8fe89f621cd04b622539faf5ec037e2be7c3d53ce2506f7c785b1930dcdea11994eff79094a02715795218c7d6a0bdc11f2fb3ac2 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" +"@babel/plugin-transform-property-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 16b048c8e87f25095f6d53634ab7912992f78e6997a6ff549edc3cf519db4fca01c7b4e0798530d7f6a05228ceee479251245cdd850a5531c6e6f404104d6cc9 + checksum: a73646d7ecd95b3931a3ead82c7d5efeb46e68ba362de63eb437d33531f294ec18bd31b6d24238cd3b6a3b919a6310c4a0ba4a2629927721d4d10b0518eb7715 languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-display-name@npm:7.23.3" +"@babel/plugin-transform-react-display-name@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-react-display-name@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7f86964e8434d3ddbd3c81d2690c9b66dbf1cd8bd9512e2e24500e9fa8cf378bc52c0853270b3b82143aba5965aec04721df7abdb768f952b44f5c6e0b198779 + checksum: d87ac36073f923a25de0ed3cffac067ec5abc4cde63f7f4366881388fbea6dcbced0e4fefd3b7e99edfe58a4ce32ea4d4c523a577d2b9f0515b872ed02b3d8c3 languageName: node linkType: hard @@ -1141,7 +1221,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.22.15, @babel/plugin-transform-react-jsx@npm:^7.22.5": +"@babel/plugin-transform-react-jsx@npm:^7.22.5, @babel/plugin-transform-react-jsx@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" dependencies: @@ -1156,177 +1236,177 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.23.3" +"@babel/plugin-transform-react-pure-annotations@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.1" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9ea3698b1d422561d93c0187ac1ed8f2367e4250b10e259785ead5aa643c265830fd0f4cf5087a5bedbc4007444c06da2f2006686613220acf0949895f453666 + checksum: 06a6bfe80f1f36408d07dd80c48cf9f61177c8e5d814e80ddbe88cfad81a8b86b3110e1fe9d1ac943db77e74497daa7f874b5490c788707106ad26ecfbe44813 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" +"@babel/plugin-transform-regenerator@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7fdacc7b40008883871b519c9e5cdea493f75495118ccc56ac104b874983569a24edd024f0f5894ba1875c54ee2b442f295d6241c3280e61c725d0dd3317c8e6 + checksum: a04319388a0a7931c3f8e15715d01444c32519692178b70deccc86d53304e74c0f589a4268f6c68578d86f75e934dd1fe6e6ed9071f54ee8379f356f88ef6e42 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" +"@babel/plugin-transform-reserved-words@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 298c4440ddc136784ff920127cea137168e068404e635dc946ddb5d7b2a27b66f1dd4c4acb01f7184478ff7d5c3e7177a127279479926519042948fb7fa0fa48 + checksum: 132c6040c65aabae2d98a39289efb5c51a8632546dc50d2ad032c8660aec307fbed74ef499856ea4f881fc8505905f49b48e0270585da2ea3d50b75e962afd89 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" +"@babel/plugin-transform-shorthand-properties@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5d677a03676f9fff969b0246c423d64d77502e90a832665dc872a5a5e05e5708161ce1effd56bb3c0f2c20a1112fca874be57c8a759d8b08152755519281f326 + checksum: 006a2032d1c57dca76579ce6598c679c2f20525afef0a36e9d42affe3c8cf33c1427581ad696b519cc75dfee46c5e8ecdf0c6a29ffb14250caa3e16dd68cb424 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-spread@npm:7.23.3" +"@babel/plugin-transform-spread@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-spread@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8fd5cac201e77a0b4825745f4e07a25f923842f282f006b3a79223c00f61075c8868d12eafec86b2642cd0b32077cdd32314e27bcb75ee5e6a68c0144140dcf2 + checksum: 622ef507e2b5120a9010b25d3df5186c06102ecad8751724a38ec924df8d3527688198fa490c47064eabba14ef2f961b3069855bd22a8c0a1e51a23eed348d02 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" +"@babel/plugin-transform-sticky-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 53e55eb2575b7abfdb4af7e503a2bf7ef5faf8bf6b92d2cd2de0700bdd19e934e5517b23e6dfed94ba50ae516b62f3f916773ef7d9bc81f01503f585051e2949 + checksum: e326e96a9eeb6bb01dbc4d3362f989411490671b97f62edf378b8fb102c463a018b777f28da65344d41b22aa6efcdfa01ed43d2b11fdcf202046d3174be137c5 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" +"@babel/plugin-transform-template-literals@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b16c5cb0b8796be0118e9c144d15bdc0d20a7f3f59009c6303a6e9a8b74c146eceb3f05186f5b97afcba7cfa87e34c1585a22186e3d5b22f2fd3d27d959d92b2 + checksum: 4c9009c72321caf20e3b6328bbe9d7057006c5ae57b794cf247a37ca34d87dfec5e27284169a16df5a6235a083bf0f3ab9e1bfcb005d1c8b75b04aed75652621 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0af7184379d43afac7614fc89b1bdecce4e174d52f4efaeee8ec1a4f2c764356c6dba3525c0685231f1cbf435b6dd4ee9e738d7417f3b10ce8bbe869c32f4384 + checksum: 90251c02986aebe50937522a6e404cb83db1b1feda17c0244e97d6429ded1634340c8411536487d14c54495607e1b7c9dc4db4aed969d519f1ff1e363f9c2229 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.23.3": - version: 7.23.6 - resolution: "@babel/plugin-transform-typescript@npm:7.23.6" +"@babel/plugin-transform-typescript@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-typescript@npm:7.24.1" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.23.6 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-typescript": ^7.23.3 + "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/plugin-syntax-typescript": ^7.24.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0462241843d14dff9f1a4c49ab182a6f01a5f7679957c786b08165dac3e8d49184011f05ca204183d164c54b9d3496d1b3005f904fa8708e394e6f15bf5548e6 + checksum: 1a37fa55ab176b11c3763da4295651b3db38f0a7f3d47b5cd5ab1e33cbcbbf2b471c4bdb7b24f39392d4660409209621c8d11c521de2deffddc3d876a1b60482 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" +"@babel/plugin-transform-unicode-escapes@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 561c429183a54b9e4751519a3dfba6014431e9cdc1484fad03bdaf96582dfc72c76a4f8661df2aeeae7c34efd0fa4d02d3b83a2f63763ecf71ecc925f9cc1f60 + checksum: d4d7cfea91af7be2768fb6bed902e00d6e3190bda738b5149c3a788d570e6cf48b974ec9548442850308ecd8fc9a67681f4ea8403129e7867bcb85adaf6ec238 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.23.3" +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1" dependencies: "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2298461a194758086d17c23c26c7de37aa533af910f9ebf31ebd0893d4aa317468043d23f73edc782ec21151d3c46cf0ff8098a83b725c49a59de28a1d4d6225 + checksum: 276099b4483e707f80b054e2d29bc519158bfe52461ef5ff76f70727d592df17e30b1597ef4d8a0f04d810f6cb5a8dd887bdc1d0540af3744751710ef280090f languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" +"@babel/plugin-transform-unicode-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1" dependencies: "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c5f835d17483ba899787f92e313dfa5b0055e3deab332f1d254078a2bba27ede47574b6599fcf34d3763f0c048ae0779dc21d2d8db09295edb4057478dc80a9a + checksum: 400a0927bdb1425b4c0dc68a61b5b2d7d17c7d9f0e07317a1a6a373c080ef94be1dd65fdc4ac9a78fcdb58f89fd128450c7bc0d5b8ca0ae7eca3fbd98e50acba languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.23.3" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1" dependencies: "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 79d0b4c951955ca68235c87b91ab2b393c96285f8aeaa34d6db416d2ddac90000c9bd6e8c4d82b60a2b484da69930507245035f28ba63c6cae341cf3ba68fdef + checksum: 364342fb8e382dfaa23628b88e6484dc1097e53fb7199f4d338f1e2cd71d839bb0a35a9b1380074f6a10adb2e98b79d53ca3ec78c0b8c557ca895ffff42180df languageName: node linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/preset-env@npm:7.24.0" + version: 7.24.3 + resolution: "@babel/preset-env@npm:7.24.3" dependencies: - "@babel/compat-data": ^7.23.5 + "@babel/compat-data": ^7.24.1 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.23.3 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.23.3 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.23.7 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.1 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.1 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.1 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.23.3 - "@babel/plugin-syntax-import-attributes": ^7.23.3 + "@babel/plugin-syntax-import-assertions": ^7.24.1 + "@babel/plugin-syntax-import-attributes": ^7.24.1 "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 @@ -1338,63 +1418,63 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.23.3 - "@babel/plugin-transform-async-generator-functions": ^7.23.9 - "@babel/plugin-transform-async-to-generator": ^7.23.3 - "@babel/plugin-transform-block-scoped-functions": ^7.23.3 - "@babel/plugin-transform-block-scoping": ^7.23.4 - "@babel/plugin-transform-class-properties": ^7.23.3 - "@babel/plugin-transform-class-static-block": ^7.23.4 - "@babel/plugin-transform-classes": ^7.23.8 - "@babel/plugin-transform-computed-properties": ^7.23.3 - "@babel/plugin-transform-destructuring": ^7.23.3 - "@babel/plugin-transform-dotall-regex": ^7.23.3 - "@babel/plugin-transform-duplicate-keys": ^7.23.3 - "@babel/plugin-transform-dynamic-import": ^7.23.4 - "@babel/plugin-transform-exponentiation-operator": ^7.23.3 - "@babel/plugin-transform-export-namespace-from": ^7.23.4 - "@babel/plugin-transform-for-of": ^7.23.6 - "@babel/plugin-transform-function-name": ^7.23.3 - "@babel/plugin-transform-json-strings": ^7.23.4 - "@babel/plugin-transform-literals": ^7.23.3 - "@babel/plugin-transform-logical-assignment-operators": ^7.23.4 - "@babel/plugin-transform-member-expression-literals": ^7.23.3 - "@babel/plugin-transform-modules-amd": ^7.23.3 - "@babel/plugin-transform-modules-commonjs": ^7.23.3 - "@babel/plugin-transform-modules-systemjs": ^7.23.9 - "@babel/plugin-transform-modules-umd": ^7.23.3 + "@babel/plugin-transform-arrow-functions": ^7.24.1 + "@babel/plugin-transform-async-generator-functions": ^7.24.3 + "@babel/plugin-transform-async-to-generator": ^7.24.1 + "@babel/plugin-transform-block-scoped-functions": ^7.24.1 + "@babel/plugin-transform-block-scoping": ^7.24.1 + "@babel/plugin-transform-class-properties": ^7.24.1 + "@babel/plugin-transform-class-static-block": ^7.24.1 + "@babel/plugin-transform-classes": ^7.24.1 + "@babel/plugin-transform-computed-properties": ^7.24.1 + "@babel/plugin-transform-destructuring": ^7.24.1 + "@babel/plugin-transform-dotall-regex": ^7.24.1 + "@babel/plugin-transform-duplicate-keys": ^7.24.1 + "@babel/plugin-transform-dynamic-import": ^7.24.1 + "@babel/plugin-transform-exponentiation-operator": ^7.24.1 + "@babel/plugin-transform-export-namespace-from": ^7.24.1 + "@babel/plugin-transform-for-of": ^7.24.1 + "@babel/plugin-transform-function-name": ^7.24.1 + "@babel/plugin-transform-json-strings": ^7.24.1 + "@babel/plugin-transform-literals": ^7.24.1 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.1 + "@babel/plugin-transform-member-expression-literals": ^7.24.1 + "@babel/plugin-transform-modules-amd": ^7.24.1 + "@babel/plugin-transform-modules-commonjs": ^7.24.1 + "@babel/plugin-transform-modules-systemjs": ^7.24.1 + "@babel/plugin-transform-modules-umd": ^7.24.1 "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.23.3 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.23.4 - "@babel/plugin-transform-numeric-separator": ^7.23.4 - "@babel/plugin-transform-object-rest-spread": ^7.24.0 - "@babel/plugin-transform-object-super": ^7.23.3 - "@babel/plugin-transform-optional-catch-binding": ^7.23.4 - "@babel/plugin-transform-optional-chaining": ^7.23.4 - "@babel/plugin-transform-parameters": ^7.23.3 - "@babel/plugin-transform-private-methods": ^7.23.3 - "@babel/plugin-transform-private-property-in-object": ^7.23.4 - "@babel/plugin-transform-property-literals": ^7.23.3 - "@babel/plugin-transform-regenerator": ^7.23.3 - "@babel/plugin-transform-reserved-words": ^7.23.3 - "@babel/plugin-transform-shorthand-properties": ^7.23.3 - "@babel/plugin-transform-spread": ^7.23.3 - "@babel/plugin-transform-sticky-regex": ^7.23.3 - "@babel/plugin-transform-template-literals": ^7.23.3 - "@babel/plugin-transform-typeof-symbol": ^7.23.3 - "@babel/plugin-transform-unicode-escapes": ^7.23.3 - "@babel/plugin-transform-unicode-property-regex": ^7.23.3 - "@babel/plugin-transform-unicode-regex": ^7.23.3 - "@babel/plugin-transform-unicode-sets-regex": ^7.23.3 + "@babel/plugin-transform-new-target": ^7.24.1 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.1 + "@babel/plugin-transform-numeric-separator": ^7.24.1 + "@babel/plugin-transform-object-rest-spread": ^7.24.1 + "@babel/plugin-transform-object-super": ^7.24.1 + "@babel/plugin-transform-optional-catch-binding": ^7.24.1 + "@babel/plugin-transform-optional-chaining": ^7.24.1 + "@babel/plugin-transform-parameters": ^7.24.1 + "@babel/plugin-transform-private-methods": ^7.24.1 + "@babel/plugin-transform-private-property-in-object": ^7.24.1 + "@babel/plugin-transform-property-literals": ^7.24.1 + "@babel/plugin-transform-regenerator": ^7.24.1 + "@babel/plugin-transform-reserved-words": ^7.24.1 + "@babel/plugin-transform-shorthand-properties": ^7.24.1 + "@babel/plugin-transform-spread": ^7.24.1 + "@babel/plugin-transform-sticky-regex": ^7.24.1 + "@babel/plugin-transform-template-literals": ^7.24.1 + "@babel/plugin-transform-typeof-symbol": ^7.24.1 + "@babel/plugin-transform-unicode-escapes": ^7.24.1 + "@babel/plugin-transform-unicode-property-regex": ^7.24.1 + "@babel/plugin-transform-unicode-regex": ^7.24.1 + "@babel/plugin-transform-unicode-sets-regex": ^7.24.1 "@babel/preset-modules": 0.1.6-no-external-plugins - babel-plugin-polyfill-corejs2: ^0.4.8 - babel-plugin-polyfill-corejs3: ^0.9.0 - babel-plugin-polyfill-regenerator: ^0.5.5 + babel-plugin-polyfill-corejs2: ^0.4.10 + babel-plugin-polyfill-corejs3: ^0.10.4 + babel-plugin-polyfill-regenerator: ^0.6.1 core-js-compat: ^3.31.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d9e894037382ce35be4b511034a9fb110003ca104f4f800e9b8f9c3b830999014c8314dcdaa3c89669e034784f7c81fe6851e2ff237805fef6479c7dff68d12c + checksum: 4f3376444f938b3884fddd3cded86cfda97a1fb4bccc93b49fb4593a63f79d9b20e6fb0e1a0934736cea6205df3998c752b248c5f5ec398162fbe165c8e69c5c languageName: node linkType: hard @@ -1412,33 +1492,33 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/preset-react@npm:7.23.3" + version: 7.24.1 + resolution: "@babel/preset-react@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-transform-react-display-name": ^7.23.3 - "@babel/plugin-transform-react-jsx": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-transform-react-display-name": ^7.24.1 + "@babel/plugin-transform-react-jsx": ^7.23.4 "@babel/plugin-transform-react-jsx-development": ^7.22.5 - "@babel/plugin-transform-react-pure-annotations": ^7.23.3 + "@babel/plugin-transform-react-pure-annotations": ^7.24.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2d90961e7e627a74b44551e88ad36a440579e283e8dc27972bf2f50682152bbc77228673a3ea22c0e0d005b70cbc487eccd64897c5e5e0384e5ce18f300b21eb + checksum: 70e146a6de480cb4b6c5eb197003960a2d148d513e1f5b5d04ee954f255d68c935c2800da13e550267f47b894bd0214b2548181467b52a4bdc0a85020061b68c languageName: node linkType: hard "@babel/preset-typescript@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/preset-typescript@npm:7.23.3" + version: 7.24.1 + resolution: "@babel/preset-typescript@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-syntax-jsx": ^7.23.3 - "@babel/plugin-transform-modules-commonjs": ^7.23.3 - "@babel/plugin-transform-typescript": ^7.23.3 + "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-syntax-jsx": ^7.24.1 + "@babel/plugin-transform-modules-commonjs": ^7.24.1 + "@babel/plugin-transform-typescript": ^7.24.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 105a2d39bbc464da0f7e1ad7f535c77c5f62d6b410219355b20e552e7d29933567a5c55339b5d0aec1a5c7a0a7dfdf1b54aae601a4fe15a157d54dcbfcb3e854 + checksum: f3e0ff8c20dd5abc82614df2d7953f1549a98282b60809478f7dfb41c29be63720f2d1d7a51ef1f0d939b65e8666cb7d36e32bc4f8ac2b74c20664efd41e8bdd languageName: node linkType: hard @@ -1480,21 +1560,21 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/traverse@npm:7.24.0" +"@babel/traverse@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/traverse@npm:7.24.1" dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 + "@babel/code-frame": ^7.24.1 + "@babel/generator": ^7.24.1 "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-function-name": ^7.23.0 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.24.0 + "@babel/parser": ^7.24.1 "@babel/types": ^7.24.0 debug: ^4.3.1 globals: ^11.1.0 - checksum: 790cf14a6452575ceef767285bad0dd96d14b3640ed4e6a4ddb5b592e4e66020424bac21e4a4b965ac0d2fe9ed504fe3644748b1922fb8ac37c681cb435c3995 + checksum: 92a5ca906abfba9df17666d2001ab23f18600035f706a687055a0e392a690ae48d6fec67c8bd4ef19ba18699a77a5b7f85727e36b83f7d110141608fe0c24fe9 languageName: node linkType: hard @@ -2380,6 +2460,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": ^1.2.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 + languageName: node + linkType: hard + "@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" @@ -2394,6 +2485,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" @@ -2421,6 +2519,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 + languageName: node + linkType: hard + "@lerna-lite/cli@npm:3.3.1, @lerna-lite/cli@npm:^3.0.0": version: 3.3.1 resolution: "@lerna-lite/cli@npm:3.3.1" @@ -4694,39 +4802,39 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.8": - version: 0.4.8 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.8" +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.10 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.10" dependencies: "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.5.0 + "@babel/helper-define-polyfill-provider": ^0.6.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 22857b87268b354e095452199464accba5fd8f690558a2f24b0954807ca2494b96da8d5c13507955802427582015160bce26a66893acf6da5dafbed8b336cf79 + checksum: 2c0e4868789152f50db306f4957fa7934876cefb51d5d86436595f0b091539e45ce0e9c0125b5db2d71f913b29cd48ae76b8e942ba28fcf2273e084f54664a1c languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.9.0": - version: 0.9.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.9.0" +"babel-plugin-polyfill-corejs3@npm:^0.10.4": + version: 0.10.4 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4" dependencies: - "@babel/helper-define-polyfill-provider": ^0.5.0 - core-js-compat: ^3.34.0 + "@babel/helper-define-polyfill-provider": ^0.6.1 + core-js-compat: ^3.36.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 65bbf59fc0145c7a264822777403632008dce00015b4b5c7ec359125ef4faf9e8f494ae5123d2992104feb6f19a3cff85631992862e48b6d7bd64eb7e755ee1f + checksum: b96a54495f7cc8b3797251c8c15f5ed015edddc3110fc122f6b32c94bec33af1e8bc56fa99091808f500bde0cccaaa266889cdc5935d9e6e9cf09898214f02dd languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.5.5": - version: 0.5.5 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.1 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.1" dependencies: - "@babel/helper-define-polyfill-provider": ^0.5.0 + "@babel/helper-define-polyfill-provider": ^0.6.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 3a9b4828673b23cd648dcfb571eadcd9d3fadfca0361d0a7c6feeb5a30474e92faaa49f067a6e1c05e49b6a09812879992028ff3ef3446229ff132d6e1de7eb6 + checksum: 9df4a8e9939dd419fed3d9ea26594b4479f2968f37c225e1b2aa463001d7721f5537740e6622909d2a570b61cec23256924a1701404fc9d6fd4474d3e845cedb languageName: node linkType: hard @@ -4850,7 +4958,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.22.2, browserslist@npm:^4.22.3": +"browserslist@npm:^4.22.2, browserslist@npm:^4.22.3, browserslist@npm:^4.23.0": version: 4.23.0 resolution: "browserslist@npm:4.23.0" dependencies: @@ -5425,7 +5533,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.34.0": +"core-js-compat@npm:^3.31.0": version: 3.36.0 resolution: "core-js-compat@npm:3.36.0" dependencies: @@ -5434,6 +5542,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.36.1": + version: 3.36.1 + resolution: "core-js-compat@npm:3.36.1" + dependencies: + browserslist: ^4.23.0 + checksum: c9109bd599a97b5d20f25fc8b8339b8c7f3fca5f9a1bebd397805383ff7699e117786c7ffe0f7a95058a6fa5e0e1435d4c10e5cda6ad86ce1957986bb6580562 + languageName: node + linkType: hard + "core-js@npm:^3.29.0": version: 3.36.0 resolution: "core-js@npm:3.36.0" From 8fc9cf250f9e6d04fd9583ab2db78a07856ea6ed Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 00:57:47 +0000 Subject: [PATCH 097/471] chore(deps): update dependency @storybook/addon-actions to v8.0.2 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 65ebdf122..96f6d555e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3407,16 +3407,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.1 - resolution: "@storybook/addon-actions@npm:8.0.1" + version: 8.0.2 + resolution: "@storybook/addon-actions@npm:8.0.2" dependencies: - "@storybook/core-events": 8.0.1 + "@storybook/core-events": 8.0.2 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: b07bd7be362b78fd2e0aa68d7390a580e69c2f5afaf274e40d6ed8bb1d36d5ef40ce723b4cb1d6b92a48d503b83529272f3cb08c4427eb7081657f198a868edd + checksum: cfeb4c6dea7c911da321a286f45e84969028f871be39c258372105e1042c320312ff9dcc7d80f9e3ca004e5a17ed7f6b2a56a7486bbe352dac7a9d0d59800c37 languageName: node linkType: hard @@ -3452,12 +3452,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.1": - version: 8.0.1 - resolution: "@storybook/core-events@npm:8.0.1" +"@storybook/core-events@npm:8.0.2": + version: 8.0.2 + resolution: "@storybook/core-events@npm:8.0.2" dependencies: ts-dedent: ^2.0.0 - checksum: 721b024b6f144c6f527b7b9af994856a2d49388ccc9c8c1a99c29e2a866f31978162f36fc047bf12b1d6377330b21b6e18273ce95c04e6b849b5fbcbb95d69ef + checksum: 2eea565524dc327585c2c7efc50e2f350d499c3e8eab28da3c6cfb2240cbff32a53ace30d9d6c8af76903dd300e5aa360532012d56651ab96272cc7355f3b0d5 languageName: node linkType: hard From 796b4d0c992286ec6b448f5bcb7722715dd7af2e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 04:33:24 +0000 Subject: [PATCH 098/471] chore(deps): update dependency @types/node to v20.11.30 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 96f6d555e..167b8887b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3964,11 +3964,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.29 - resolution: "@types/node@npm:20.11.29" + version: 20.11.30 + resolution: "@types/node@npm:20.11.30" dependencies: undici-types: ~5.26.4 - checksum: d6d37d4f72a372b033b8737ce615abb2ad8668c689ca4ef8c49b85249f8448fa9348ec8c67e96db3d11f64badd7e598c3da53c6804ea0fca8dd3bea585d93c29 + checksum: 7597767aa3e44b0f1bf62efa522dd17741135f283c11de6a20ead8bb7016fb4999cc30adcd8f2bb29ebb216906c92894346ccd187de170927dc1e212d2c07c81 languageName: node linkType: hard From 80241ebf8d1aa9e73837a33d45c649a50470f9ab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 04:33:59 +0000 Subject: [PATCH 099/471] chore(deps): update eslint to v7.3.1 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index 167b8887b..82069048c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4090,14 +4090,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.2.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.2.0" + version: 7.3.1 + resolution: "@typescript-eslint/eslint-plugin@npm:7.3.1" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.2.0 - "@typescript-eslint/type-utils": 7.2.0 - "@typescript-eslint/utils": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 + "@typescript-eslint/scope-manager": 7.3.1 + "@typescript-eslint/type-utils": 7.3.1 + "@typescript-eslint/utils": 7.3.1 + "@typescript-eslint/visitor-keys": 7.3.1 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -4110,25 +4110,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 1f6e1d12774f4a2cbe585fdaa0e74982c6b553281624c23646e043547736d2893c4a55fbbee4f7d9d596291f3b94b1856f11c4d71cf6b5bce988945f0fad60d4 + checksum: fa4570552574e37ce70932a348105b98ceb623d38a962486d6b39bbec7d63c7c6dae30b7ee596acfb5a3146fdbe3e36cdb915aa10543d703d6e33f10f1005a7c languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.2.0 - resolution: "@typescript-eslint/parser@npm:7.2.0" + version: 7.3.1 + resolution: "@typescript-eslint/parser@npm:7.3.1" dependencies: - "@typescript-eslint/scope-manager": 7.2.0 - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/typescript-estree": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 + "@typescript-eslint/scope-manager": 7.3.1 + "@typescript-eslint/types": 7.3.1 + "@typescript-eslint/typescript-estree": 7.3.1 + "@typescript-eslint/visitor-keys": 7.3.1 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 21deb2e7ad1fc730f637af08f5c549f30ef5b50f424639f57f5bc01274e648db47c696bb994bb24e87424b593d4084e306447c9431a0c0e4807952996db306f4 + checksum: 8d3c90d2756de25bebf0b015f89149c1c0359aa328f7c04dc22381a807e01d54922df561bd6457377d96097d6c41fe9c2579ab0b86b8a44c0f328475e0b671d7 languageName: node linkType: hard @@ -4142,22 +4142,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/scope-manager@npm:7.2.0" +"@typescript-eslint/scope-manager@npm:7.3.1": + version: 7.3.1 + resolution: "@typescript-eslint/scope-manager@npm:7.3.1" dependencies: - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 - checksum: b4ef8e35a56f590fa56cf769e111907828abb4793f482bf57e3fc8c987294ec119acb96359aa4b0150eea7416816e0b2d8635dccd1e4a5c2b02678b0f74def94 + "@typescript-eslint/types": 7.3.1 + "@typescript-eslint/visitor-keys": 7.3.1 + checksum: 94f290552d8341753a000787230118bca9b5195a0302560dca21628055c565bbc3cf9c4f28543ef5825d8ed0e05639f44c11ebc43060c9014a19b4865210ee2b languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/type-utils@npm:7.2.0" +"@typescript-eslint/type-utils@npm:7.3.1": + version: 7.3.1 + resolution: "@typescript-eslint/type-utils@npm:7.3.1" dependencies: - "@typescript-eslint/typescript-estree": 7.2.0 - "@typescript-eslint/utils": 7.2.0 + "@typescript-eslint/typescript-estree": 7.3.1 + "@typescript-eslint/utils": 7.3.1 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4165,7 +4165,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: d38b91ce2c3ffced243948e4778c3b015cf6a4fe988f35000977bf611c33edf455a92a78e69efe1ffa68257110a286c9c5593553bc32e19170410a1f730efed6 + checksum: e8d65e636724a9c217a97c457445d981166e18a7192fe145e4f62b88788815a516522967d765eabb5126bfb0c4ff5ee17d83264dd1bf1d5390f6abceba058eb9 languageName: node linkType: hard @@ -4183,10 +4183,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/types@npm:7.2.0" - checksum: 237acd24aa55b762ee98904e4f422ba86579325200dcd058b3cbfe70775926e7f00ee0295788d81eb728f3a6326fe4401c648aee9eb1480d9030a441c17520e8 +"@typescript-eslint/types@npm:7.3.1": + version: 7.3.1 + resolution: "@typescript-eslint/types@npm:7.3.1" + checksum: b0d929da57aeaf5f7f9e4c28c7054f1510b029c821f8118d8ac225ce7e0ce77f8f422b6d8cd9c3a198cb79b97853b47f90a5b4702e7dc960e14c36881cac2adb languageName: node linkType: hard @@ -4208,12 +4208,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.2.0" +"@typescript-eslint/typescript-estree@npm:7.3.1": + version: 7.3.1 + resolution: "@typescript-eslint/typescript-estree@npm:7.3.1" dependencies: - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 + "@typescript-eslint/types": 7.3.1 + "@typescript-eslint/visitor-keys": 7.3.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4223,7 +4223,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: fe882195cad45bb67e7e127efa9c31977348d0ca923ef26bb9fbd03a2ab64e6772e6e60954ba07a437684fae8e35897d71f0e6a1ef8fbf3f0025cd314960cd9d + checksum: c2df1e09aad16deec30b8d376c93d4e4804fcd1445b7b822cba30d899165ffc681f0040e55528824fb0d36686514605a434b3c1b991860c55a12c9c8b866e27a languageName: node linkType: hard @@ -4245,20 +4245,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/utils@npm:7.2.0" +"@typescript-eslint/utils@npm:7.3.1": + version: 7.3.1 + resolution: "@typescript-eslint/utils@npm:7.3.1" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.2.0 - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/typescript-estree": 7.2.0 + "@typescript-eslint/scope-manager": 7.3.1 + "@typescript-eslint/types": 7.3.1 + "@typescript-eslint/typescript-estree": 7.3.1 semver: ^7.5.4 peerDependencies: eslint: ^8.56.0 - checksum: 1d333bdc50c52de5757d860512db0dde5748c5fbf8c66a8a984a3bff10d4cd492878c9d5ca3a49d869fdf8d6cf415594be8e7c3cfb4dfe9e3f3f5db297877ad4 + checksum: 1e568169fb54211f3962e1f7b945f1a65dfe0ab61839aeeee07fb091523757e54d60c95c47da1ba5cec2c2017982dd5eb1c5fd3d8743f3dd90faefbf04863ef3 languageName: node linkType: hard @@ -4300,13 +4300,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" +"@typescript-eslint/visitor-keys@npm:7.3.1": + version: 7.3.1 + resolution: "@typescript-eslint/visitor-keys@npm:7.3.1" dependencies: - "@typescript-eslint/types": 7.2.0 + "@typescript-eslint/types": 7.3.1 eslint-visitor-keys: ^3.4.1 - checksum: d9b11b52737450f213cea5c6e07e4672684da48325905c096ee09302b6b261c0bb226e1e350011bdf127c0cbbdd9e6474c905befdfa0a2118fc89ece16770f2b + checksum: b2d20b33dea6cee2c078c23fb4075d68a1501f077df3aa36832cee3a97dcbb2906ad5e8b8f9da351ff3e65249074155446c7b91d7abdbb10be7082fb41e835d1 languageName: node linkType: hard From 2f6b0658d23e303b48fb7e86bda55c4dc248c37e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 21 Mar 2024 12:06:39 -0400 Subject: [PATCH 100/471] chore: tests for XSLT serializer and rendering initial screen Fixes: #3 --- packages/ui/jest.config.ts | 3 +- packages/ui/package.json | 1 + packages/ui/src/__mocks__/fileMock.ts | 1 + packages/ui/src/__mocks__/styleMock.ts | 1 + .../toolbar/ExportMappingFileDropdownItem.tsx | 4 +- packages/ui/src/main.test.tsx | 16 ++ .../mapping-serializer.service.test.ts | 92 ++++++- .../services/mapping-serializer.service.ts | 9 +- yarn.lock | 243 +++++++++++++++++- 9 files changed, 352 insertions(+), 18 deletions(-) create mode 100644 packages/ui/src/__mocks__/fileMock.ts create mode 100644 packages/ui/src/__mocks__/styleMock.ts create mode 100644 packages/ui/src/main.test.tsx diff --git a/packages/ui/jest.config.ts b/packages/ui/jest.config.ts index feac9cd40..d914b92fe 100644 --- a/packages/ui/jest.config.ts +++ b/packages/ui/jest.config.ts @@ -35,7 +35,6 @@ export default { '!src/**/stubs/*.ts', // Ignore icon resolver '!src/**/node-icon-resolver.ts', - '!src/_bk_atlasmap/**/*', ], // The directory where Jest should output its coverage files @@ -175,7 +174,7 @@ export default { testMatch: ['**/?(*.)+(test).[tj]s?(x)'], // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - testPathIgnorePatterns: ['\\\\node_modules\\\\', '/src/_bk_atlasmap/'], + testPathIgnorePatterns: ['\\\\node_modules\\\\'], // The regexp pattern or array of patterns that Jest uses to detect test files // testRegex: [], diff --git a/packages/ui/package.json b/packages/ui/package.json index 6dc9c9e61..1481e3ec2 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -73,6 +73,7 @@ "@storybook/addon-actions": "^8.0.0", "@storybook/addon-knobs": "^7.0.2", "@testing-library/jest-dom": "^6.4.2", + "@testing-library/react": "^14.2.2", "@types/jest": "^29.5.12", "@types/node": "^20.11.6", "@types/react": "^18.2.53", diff --git a/packages/ui/src/__mocks__/fileMock.ts b/packages/ui/src/__mocks__/fileMock.ts new file mode 100644 index 000000000..9dc5fc1e4 --- /dev/null +++ b/packages/ui/src/__mocks__/fileMock.ts @@ -0,0 +1 @@ +module.exports = ''; diff --git a/packages/ui/src/__mocks__/styleMock.ts b/packages/ui/src/__mocks__/styleMock.ts new file mode 100644 index 000000000..f053ebf79 --- /dev/null +++ b/packages/ui/src/__mocks__/styleMock.ts @@ -0,0 +1 @@ +module.exports = {}; diff --git a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx index dc236a579..e2c6a631e 100644 --- a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx @@ -5,7 +5,7 @@ import { ExportIcon } from '@patternfly/react-icons'; import { MappingSerializerService } from '../../services/mapping-serializer.service'; import { useDataMapper } from '../../hooks'; import { Monaco } from '@monaco-editor/react'; -import monaco, { editor } from 'monaco-editor'; +import { editor } from 'monaco-editor/esm/vs/editor/editor.api'; import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions; export const ExportMappingFileDropdownItem: FunctionComponent<{ @@ -27,7 +27,7 @@ export const ExportMappingFileDropdownItem: FunctionComponent<{ onComplete(); }, [onComplete]); - const onEditorDidMount = useCallback((editor: monaco.editor.IStandaloneCodeEditor, monaco: Monaco) => { + const onEditorDidMount = useCallback((editor: editor.IStandaloneCodeEditor, monaco: Monaco) => { editor.layout(); editor.focus(); monaco.editor.getModels()[0].updateOptions({ tabSize: 2 }); diff --git a/packages/ui/src/main.test.tsx b/packages/ui/src/main.test.tsx new file mode 100644 index 000000000..ebf13a06f --- /dev/null +++ b/packages/ui/src/main.test.tsx @@ -0,0 +1,16 @@ +import { render } from '@testing-library/react'; +import { DataMapperProvider } from './providers'; +import { CanvasProvider } from './providers/CanvasProvider'; +import { DataMapper } from './DataMapper'; + +describe('main.tsx', () => { + it('should render the initial screen', () => { + render( + + + + + , + ); + }); +}); diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index d263f0cf4..3c7d422f1 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -1,4 +1,27 @@ import { MappingSerializerService, NS_XSL } from './mapping-serializer.service'; +import { IDocument, IField, IMapping } from '../models'; +import { DocumentType } from '../models/document'; +import * as fs from 'fs'; +import { XmlSchemaDocumentService } from './xml-schema-document.service'; + +const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); +const sourceDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); +sourceDoc.documentType = DocumentType.SOURCE_BODY; +const targetDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); +targetDoc.documentType = DocumentType.TARGET_BODY; + +function getField(doc: IDocument, path: string) { + let answer: IField | IDocument = doc; + const pathSegments = path.split('/'); + for (let i = 1; i < pathSegments.length; i++) { + const f: IField | undefined = answer.fields.find((f) => f.expression === pathSegments[i]); + if (!f) { + throw new Error(`Field ${answer.name} doesn't have a child ${pathSegments[i]}`); + } + answer = f; + } + return answer; +} describe('MappingSerializerService', () => { it('createNew() should create am empty XSLT document', () => { @@ -14,9 +37,74 @@ describe('MappingSerializerService', () => { }); describe('serialize()', () => { - it('should serialize the mappings into a XSLT document', () => { + it('should return an empty XSLT document with empty mappings', () => { const empty = MappingSerializerService.serialize([]); - expect(empty).toBeDefined(); + const dom = new DOMParser().parseFromString(empty, 'application/xml'); + const template = dom + .evaluate('/xsl:stylesheet/xsl:template', dom, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE) + .iterateNext(); + expect(template).toBeTruthy(); + expect(template!.childNodes.length).toEqual(1); + expect(template!.childNodes[0].nodeType).toEqual(Node.TEXT_NODE); + }); + + it('should serialize an attribute mapping', () => { + const serialized = MappingSerializerService.serialize([ + { + sourceFields: [getField(sourceDoc, '/ShipOrder/@OrderId')], + targetFields: [getField(targetDoc, '/ShipOrder/@OrderId')], + }, + ] as IMapping[]); + const dom = new DOMParser().parseFromString(serialized, 'application/xml'); + const xslAttribute = dom + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:attribute', + dom, + null, + XPathResult.UNORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext() as Element; + expect(xslAttribute.getAttribute('name')).toEqual('OrderId'); + const xslValueOf = xslAttribute.getElementsByTagNameNS(NS_XSL, 'value-of').item(0)!; + expect(xslValueOf.getAttribute('select')).toEqual('/ns0:ShipOrder/@OrderId'); + }); + + it('should serialize an element mapping', () => { + const serialized = MappingSerializerService.serialize([ + { + sourceFields: [getField(sourceDoc, '/ShipOrder/ShipTo/Name')], + targetFields: [getField(targetDoc, '/ShipOrder/ShipTo/Name')], + }, + ] as IMapping[]); + const dom = new DOMParser().parseFromString(serialized, 'application/xml'); + const xslValueOf = dom + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/ShipTo/Name/xsl:value-of', + dom, + null, + XPathResult.UNORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext() as Element; + expect(xslValueOf.getAttribute('select')).toEqual('/ns0:ShipOrder/ShipTo/Name'); + }); + + it('should serialize a container field mapping', () => { + const serialized = MappingSerializerService.serialize([ + { + sourceFields: [getField(sourceDoc, '/ShipOrder/Item')], + targetFields: [getField(targetDoc, '/ShipOrder/Item')], + }, + ] as IMapping[]); + const dom = new DOMParser().parseFromString(serialized, 'application/xml'); + const xslCopyOf = dom + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:copy-of', + dom, + null, + XPathResult.UNORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext() as Element; + expect(xslCopyOf.getAttribute('select')).toEqual('/ns0:ShipOrder/Item'); }); }); }); diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index d2b43e973..0bb3ea6a8 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -10,7 +10,7 @@ export const EMPTY_XSL = ` `; export class MappingSerializerService { static createNew() { - return new DOMParser().parseFromString(EMPTY_XSL, 'text/xml'); + return new DOMParser().parseFromString(EMPTY_XSL, 'application/xml'); } static serialize(mappings: IMapping[]): string { @@ -24,10 +24,13 @@ export class MappingSerializerService { } static populateMapping(xsltDocument: Document, source: IField, target: IField) { + const prefix = xsltDocument.lookupPrefix(NS_XSL); const nsResolver = xsltDocument.createNSResolver(xsltDocument); - const prefix = nsResolver.lookupPrefix(NS_XSL); + // jsdom requires `type` to be specified anyway, but if `type` is specified, + // Chrome requires NS Resolver to be explicitly specified. + // Note that `createNSResolver()` returns null with jsdom. const template = xsltDocument - .evaluate(`/${prefix}:stylesheet/${prefix}:template[@match='/']`, xsltDocument, nsResolver) + .evaluate(`/${prefix}:stylesheet/${prefix}:template[@match='/']`, xsltDocument, nsResolver, XPathResult.ANY_TYPE) .iterateNext(); if (!template || template.nodeType !== Node.ELEMENT_NODE) { throw Error('No root template in the XSLT document'); diff --git a/yarn.lock b/yarn.lock index 82069048c..630ea0b91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -1684,6 +1684,7 @@ __metadata: "@storybook/addon-actions": ^8.0.0 "@storybook/addon-knobs": ^7.0.2 "@testing-library/jest-dom": ^6.4.2 + "@testing-library/react": ^14.2.2 "@types/jest": ^29.5.12 "@types/node": ^20.11.6 "@types/pako": ^2.0.3 @@ -3468,6 +3469,22 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:^9.0.0": + version: 9.3.4 + resolution: "@testing-library/dom@npm:9.3.4" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/runtime": ^7.12.5 + "@types/aria-query": ^5.0.1 + aria-query: 5.1.3 + chalk: ^4.1.0 + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: dfd6fb0d6c7b4dd716ba3c47309bc9541b4a55772cb61758b4f396b3785efe2dbc75dc63423545c039078c7ffcc5e4b8c67c2db1b6af4799580466036f70026f + languageName: node + linkType: hard + "@testing-library/jest-dom@npm:^6.4.2": version: 6.4.2 resolution: "@testing-library/jest-dom@npm:6.4.2" @@ -3501,6 +3518,20 @@ __metadata: languageName: node linkType: hard +"@testing-library/react@npm:^14.2.2": + version: 14.2.2 + resolution: "@testing-library/react@npm:14.2.2" + dependencies: + "@babel/runtime": ^7.12.5 + "@testing-library/dom": ^9.0.0 + "@types/react-dom": ^18.0.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: cb73df588592d9101429f057eaa6f320fc12524d5eb2acc8a16002c1ee2d9422a49e44841003bba42974c9ae1ced6b134f0d647826eca42ab8f19e4592971b16 + languageName: node + linkType: hard + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -3553,6 +3584,13 @@ __metadata: languageName: node linkType: hard +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: ad8b87e4ad64255db5f0a73bc2b4da9b146c38a3a8ab4d9306154334e0fc67ae64e76bfa298eebd1e71830591fb15987e5de7111bdb36a2221bdc379e3415fb0 + languageName: node + linkType: hard + "@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -4000,7 +4038,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.2.18": +"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.18": version: 18.2.22 resolution: "@types/react-dom@npm:18.2.22" dependencies: @@ -4577,6 +4615,15 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:5.1.3": + version: 5.1.3 + resolution: "aria-query@npm:5.1.3" + dependencies: + deep-equal: ^2.0.5 + checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b + languageName: node + linkType: hard + "aria-query@npm:^5.0.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" @@ -4586,7 +4633,7 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.1": +"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: @@ -4738,6 +4785,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: ^1.0.0 + checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 + languageName: node + linkType: hard + "axios@npm:^1.5.1": version: 1.6.7 resolution: "axios@npm:1.6.7" @@ -6145,6 +6201,32 @@ __metadata: languageName: node linkType: hard +"deep-equal@npm:^2.0.5": + version: 2.2.3 + resolution: "deep-equal@npm:2.2.3" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.5 + es-get-iterator: ^1.1.3 + get-intrinsic: ^1.2.2 + is-arguments: ^1.1.1 + is-array-buffer: ^3.0.2 + is-date-object: ^1.0.5 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + isarray: ^2.0.5 + object-is: ^1.1.5 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.1 + side-channel: ^1.0.4 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.13 + checksum: ee8852f23e4d20a5626c13b02f415ba443a1b30b4b3d39eaf366d59c4a85e6545d7ec917db44d476a85ae5a86064f7e5f7af7479f38f113995ba869f3a1ddc53 + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -6500,6 +6582,13 @@ __metadata: languageName: node linkType: hard +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 + languageName: node + linkType: hard + "dom-accessibility-api@npm:^0.6.3": version: 0.6.3 resolution: "dom-accessibility-api@npm:0.6.3" @@ -6719,6 +6808,23 @@ __metadata: languageName: node linkType: hard +"es-get-iterator@npm:^1.1.3": + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + is-arguments: ^1.1.1 + is-map: ^2.0.2 + is-set: ^2.0.2 + is-string: ^1.0.7 + isarray: ^2.0.5 + stop-iteration-iterator: ^1.0.0 + checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.2": version: 2.0.2 resolution: "es-set-tostringtag@npm:2.0.2" @@ -7993,7 +8099,7 @@ __metadata: languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1": +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1, has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -8268,7 +8374,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.7": +"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" dependencies: @@ -8296,7 +8402,17 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.4": +"is-arguments@npm:^1.1.1": + version: 1.1.1 + resolution: "is-arguments@npm:1.1.1" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": version: 3.0.4 resolution: "is-array-buffer@npm:3.0.4" dependencies: @@ -8368,7 +8484,7 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.1": +"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" dependencies: @@ -8437,6 +8553,13 @@ __metadata: languageName: node linkType: hard +"is-map@npm:^2.0.2, is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc + languageName: node + linkType: hard + "is-negative-zero@npm:^2.0.2": version: 2.0.2 resolution: "is-negative-zero@npm:2.0.2" @@ -8535,6 +8658,13 @@ __metadata: languageName: node linkType: hard +"is-set@npm:^2.0.2, is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe + languageName: node + linkType: hard + "is-shared-array-buffer@npm:^1.0.2": version: 1.0.2 resolution: "is-shared-array-buffer@npm:1.0.2" @@ -8638,6 +8768,13 @@ __metadata: languageName: node linkType: hard +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d + languageName: node + linkType: hard + "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -8647,6 +8784,16 @@ __metadata: languageName: node linkType: hard +"is-weakset@npm:^2.0.3": + version: 2.0.3 + resolution: "is-weakset@npm:2.0.3" + dependencies: + call-bind: ^1.0.7 + get-intrinsic: ^1.2.4 + checksum: 8b6a20ee9f844613ff8f10962cfee49d981d584525f2357fee0a04dfbcde9fd607ed60cb6dab626dbcc470018ae6392e1ff74c0c1aced2d487271411ad9d85ae + languageName: node + linkType: hard + "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" @@ -9683,6 +9830,15 @@ __metadata: languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d + languageName: node + linkType: hard + "madge@npm:^6.1.0": version: 6.1.0 resolution: "madge@npm:6.1.0" @@ -10375,6 +10531,16 @@ __metadata: languageName: node linkType: hard +"object-is@npm:^1.1.5": + version: 1.1.6 + resolution: "object-is@npm:1.1.6" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + checksum: 3ea22759967e6f2380a2cbbd0f737b42dc9ddb2dfefdb159a1b927fea57335e1b058b564bfa94417db8ad58cddab33621a035de6f5e5ad56d89f2dd03e66c6a1 + languageName: node + linkType: hard + "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -10382,7 +10548,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.5": +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -10858,6 +11024,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae + languageName: node + linkType: hard + "postcss-media-query-parser@npm:^0.2.3": version: 0.2.3 resolution: "postcss-media-query-parser@npm:0.2.3" @@ -11012,6 +11185,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^17.0.1 + checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 + languageName: node + linkType: hard + "pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -11270,6 +11454,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -11513,7 +11704,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.2": +"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" dependencies: @@ -12222,6 +12413,15 @@ __metadata: languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.0.0": + version: 1.0.0 + resolution: "stop-iteration-iterator@npm:1.0.0" + dependencies: + internal-slot: ^1.0.4 + checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 + languageName: node + linkType: hard + "stream-to-array@npm:^2.3.0": version: 2.3.0 resolution: "stream-to-array@npm:2.3.0" @@ -13429,6 +13629,31 @@ __metadata: languageName: node linkType: hard +"which-collection@npm:^1.0.1": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" + dependencies: + is-map: ^2.0.3 + is-set: ^2.0.3 + is-weakmap: ^2.0.2 + is-weakset: ^2.0.3 + checksum: c51821a331624c8197916598a738fc5aeb9a857f1e00d89f5e4c03dc7c60b4032822b8ec5696d28268bb83326456a8b8216344fb84270d18ff1d7628051879d9 + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.13": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.2 + checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 + languageName: node + linkType: hard + "which-typed-array@npm:^1.1.14": version: 1.1.14 resolution: "which-typed-array@npm:1.1.14" From 76b415fac1135931873685d24e3c89bfa4e721fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 01:12:27 +0000 Subject: [PATCH 101/471] chore(deps): update dependency typescript to v5.4.3 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 630ea0b91..0a0d0e64c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13215,12 +13215,12 @@ __metadata: linkType: hard "typescript@npm:^5.3.3": - version: 5.4.2 - resolution: "typescript@npm:5.4.2" + version: 5.4.3 + resolution: "typescript@npm:5.4.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 96d80fde25a09bcb04d399082fb27a808a9e17c2111e43849d2aafbd642d835e4f4ef0de09b0ba795ec2a700be6c4c2c3f62bf4660c05404c948727b5bbfb32a + checksum: d74d731527e35e64d8d2dcf2f897cf8cfbc3428be0ad7c48434218ba4ae41239f53be7c90714089db1068c05cae22436af2ecba71fd36ecc5e7a9118af060198 languageName: node linkType: hard @@ -13245,12 +13245,12 @@ __metadata: linkType: hard "typescript@patch:typescript@^5.3.3#~builtin": - version: 5.4.2 - resolution: "typescript@patch:typescript@npm%3A5.4.2#~builtin::version=5.4.2&hash=5adc0c" + version: 5.4.3 + resolution: "typescript@patch:typescript@npm%3A5.4.3#~builtin::version=5.4.3&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 797ac213c03a19749181c745647b4cab03d13bf4b6b738b05a3426f46c6b540f908989e839d9b0c89d7a4ee2bdb50493b4d4898d4ef1c897c3e9d0b082e78a67 + checksum: 523ec29bc308b4ca0cec9a139ac08a27939891d8ad620d249cf5e1a35454e37cd7bb52613a1884f1206aa11d2fb1c4c83fb9e939bde542aaa8527ba818cb8177 languageName: node linkType: hard From 437279a7835b070d2694d0f536b9e1545d038e97 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 01:13:42 +0000 Subject: [PATCH 102/471] chore(deps): update dependency vite to v5.2.2 --- yarn.lock | 340 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 179 insertions(+), 161 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0a0d0e64c..a586ecd5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1918,163 +1918,163 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/aix-ppc64@npm:0.19.12" +"@esbuild/aix-ppc64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/aix-ppc64@npm:0.20.2" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm64@npm:0.19.12" +"@esbuild/android-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-arm64@npm:0.20.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm@npm:0.19.12" +"@esbuild/android-arm@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-arm@npm:0.20.2" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-x64@npm:0.19.12" +"@esbuild/android-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-x64@npm:0.20.2" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-arm64@npm:0.19.12" +"@esbuild/darwin-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/darwin-arm64@npm:0.20.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-x64@npm:0.19.12" +"@esbuild/darwin-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/darwin-x64@npm:0.20.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-arm64@npm:0.19.12" +"@esbuild/freebsd-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/freebsd-arm64@npm:0.20.2" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-x64@npm:0.19.12" +"@esbuild/freebsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/freebsd-x64@npm:0.20.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm64@npm:0.19.12" +"@esbuild/linux-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-arm64@npm:0.20.2" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm@npm:0.19.12" +"@esbuild/linux-arm@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-arm@npm:0.20.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ia32@npm:0.19.12" +"@esbuild/linux-ia32@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-ia32@npm:0.20.2" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-loong64@npm:0.19.12" +"@esbuild/linux-loong64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-loong64@npm:0.20.2" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-mips64el@npm:0.19.12" +"@esbuild/linux-mips64el@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-mips64el@npm:0.20.2" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ppc64@npm:0.19.12" +"@esbuild/linux-ppc64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-ppc64@npm:0.20.2" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-riscv64@npm:0.19.12" +"@esbuild/linux-riscv64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-riscv64@npm:0.20.2" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-s390x@npm:0.19.12" +"@esbuild/linux-s390x@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-s390x@npm:0.20.2" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-x64@npm:0.19.12" +"@esbuild/linux-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-x64@npm:0.20.2" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/netbsd-x64@npm:0.19.12" +"@esbuild/netbsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/netbsd-x64@npm:0.20.2" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/openbsd-x64@npm:0.19.12" +"@esbuild/openbsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/openbsd-x64@npm:0.20.2" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/sunos-x64@npm:0.19.12" +"@esbuild/sunos-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/sunos-x64@npm:0.20.2" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-arm64@npm:0.19.12" +"@esbuild/win32-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-arm64@npm:0.20.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-ia32@npm:0.19.12" +"@esbuild/win32-ia32@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-ia32@npm:0.20.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-x64@npm:0.19.12" +"@esbuild/win32-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-x64@npm:0.20.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3228,93 +3228,93 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.11.0" +"@rollup/rollup-android-arm-eabi@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.13.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-android-arm64@npm:4.11.0" +"@rollup/rollup-android-arm64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-android-arm64@npm:4.13.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.11.0" +"@rollup/rollup-darwin-arm64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.13.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.11.0" +"@rollup/rollup-darwin-x64@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.13.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.11.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.11.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.13.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.11.0" +"@rollup/rollup-linux-arm64-musl@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.13.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.11.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.13.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.11.0" +"@rollup/rollup-linux-x64-gnu@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.13.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.11.0" +"@rollup/rollup-linux-x64-musl@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.13.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.11.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.13.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.11.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.13.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.11.0": - version: 4.11.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.11.0" +"@rollup/rollup-win32-x64-msvc@npm:4.13.0": + version: 4.13.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.13.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6856,33 +6856,33 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.19.3": - version: 0.19.12 - resolution: "esbuild@npm:0.19.12" - dependencies: - "@esbuild/aix-ppc64": 0.19.12 - "@esbuild/android-arm": 0.19.12 - "@esbuild/android-arm64": 0.19.12 - "@esbuild/android-x64": 0.19.12 - "@esbuild/darwin-arm64": 0.19.12 - "@esbuild/darwin-x64": 0.19.12 - "@esbuild/freebsd-arm64": 0.19.12 - "@esbuild/freebsd-x64": 0.19.12 - "@esbuild/linux-arm": 0.19.12 - "@esbuild/linux-arm64": 0.19.12 - "@esbuild/linux-ia32": 0.19.12 - "@esbuild/linux-loong64": 0.19.12 - "@esbuild/linux-mips64el": 0.19.12 - "@esbuild/linux-ppc64": 0.19.12 - "@esbuild/linux-riscv64": 0.19.12 - "@esbuild/linux-s390x": 0.19.12 - "@esbuild/linux-x64": 0.19.12 - "@esbuild/netbsd-x64": 0.19.12 - "@esbuild/openbsd-x64": 0.19.12 - "@esbuild/sunos-x64": 0.19.12 - "@esbuild/win32-arm64": 0.19.12 - "@esbuild/win32-ia32": 0.19.12 - "@esbuild/win32-x64": 0.19.12 +"esbuild@npm:^0.20.1": + version: 0.20.2 + resolution: "esbuild@npm:0.20.2" + dependencies: + "@esbuild/aix-ppc64": 0.20.2 + "@esbuild/android-arm": 0.20.2 + "@esbuild/android-arm64": 0.20.2 + "@esbuild/android-x64": 0.20.2 + "@esbuild/darwin-arm64": 0.20.2 + "@esbuild/darwin-x64": 0.20.2 + "@esbuild/freebsd-arm64": 0.20.2 + "@esbuild/freebsd-x64": 0.20.2 + "@esbuild/linux-arm": 0.20.2 + "@esbuild/linux-arm64": 0.20.2 + "@esbuild/linux-ia32": 0.20.2 + "@esbuild/linux-loong64": 0.20.2 + "@esbuild/linux-mips64el": 0.20.2 + "@esbuild/linux-ppc64": 0.20.2 + "@esbuild/linux-riscv64": 0.20.2 + "@esbuild/linux-s390x": 0.20.2 + "@esbuild/linux-x64": 0.20.2 + "@esbuild/netbsd-x64": 0.20.2 + "@esbuild/openbsd-x64": 0.20.2 + "@esbuild/sunos-x64": 0.20.2 + "@esbuild/win32-arm64": 0.20.2 + "@esbuild/win32-ia32": 0.20.2 + "@esbuild/win32-x64": 0.20.2 dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -6932,7 +6932,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 2936e29107b43e65a775b78b7bc66ddd7d76febd73840ac7e825fb22b65029422ff51038a08d19b05154f543584bd3afe7d1ef1c63900429475b17fbe61cb61f + checksum: bc88050fc1ca5c1bd03648f9979e514bdefb956a63aa3974373bb7b9cbac0b3aac9b9da1b5bdca0b3490e39d6b451c72815dbd6b7d7f978c91fbe9c9e9aa4e4c languageName: node linkType: hard @@ -11104,7 +11104,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.7, postcss@npm:^8.4.23, postcss@npm:^8.4.33, postcss@npm:^8.4.35": +"postcss@npm:^8.1.7, postcss@npm:^8.4.23, postcss@npm:^8.4.33": version: 8.4.35 resolution: "postcss@npm:8.4.35" dependencies: @@ -11115,6 +11115,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.36": + version: 8.4.38 + resolution: "postcss@npm:8.4.38" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.0 + source-map-js: ^1.2.0 + checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451 + languageName: node + linkType: hard + "precinct@npm:^8.1.0": version: 8.3.1 resolution: "precinct@npm:8.3.1" @@ -11922,23 +11933,23 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.2.0": - version: 4.11.0 - resolution: "rollup@npm:4.11.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.11.0 - "@rollup/rollup-android-arm64": 4.11.0 - "@rollup/rollup-darwin-arm64": 4.11.0 - "@rollup/rollup-darwin-x64": 4.11.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.11.0 - "@rollup/rollup-linux-arm64-gnu": 4.11.0 - "@rollup/rollup-linux-arm64-musl": 4.11.0 - "@rollup/rollup-linux-riscv64-gnu": 4.11.0 - "@rollup/rollup-linux-x64-gnu": 4.11.0 - "@rollup/rollup-linux-x64-musl": 4.11.0 - "@rollup/rollup-win32-arm64-msvc": 4.11.0 - "@rollup/rollup-win32-ia32-msvc": 4.11.0 - "@rollup/rollup-win32-x64-msvc": 4.11.0 +"rollup@npm:^4.13.0": + version: 4.13.0 + resolution: "rollup@npm:4.13.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.13.0 + "@rollup/rollup-android-arm64": 4.13.0 + "@rollup/rollup-darwin-arm64": 4.13.0 + "@rollup/rollup-darwin-x64": 4.13.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.13.0 + "@rollup/rollup-linux-arm64-gnu": 4.13.0 + "@rollup/rollup-linux-arm64-musl": 4.13.0 + "@rollup/rollup-linux-riscv64-gnu": 4.13.0 + "@rollup/rollup-linux-x64-gnu": 4.13.0 + "@rollup/rollup-linux-x64-musl": 4.13.0 + "@rollup/rollup-win32-arm64-msvc": 4.13.0 + "@rollup/rollup-win32-ia32-msvc": 4.13.0 + "@rollup/rollup-win32-x64-msvc": 4.13.0 "@types/estree": 1.0.5 fsevents: ~2.3.2 dependenciesMeta: @@ -11972,7 +11983,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 6a51be8e4e432fcc56d816f04ef48677554ebbfd9be6b051c6a2f1aabeeb73cce4518e3c6e7b682e5533e33b8bb0d93d9462052d341e6a4c81bfcdb9e61eb2f8 + checksum: c2c35bee0a71ceb0df37c170c2b73a500bf9ebdffb747487d77831348603d50dcfcdd9d0a937362d3a87edda559c9d1e017fba2d75f05f0c594634d9b8dde9a4 languageName: node linkType: hard @@ -12309,6 +12320,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -13484,13 +13502,13 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.1.6 - resolution: "vite@npm:5.1.6" + version: 5.2.2 + resolution: "vite@npm:5.2.2" dependencies: - esbuild: ^0.19.3 + esbuild: ^0.20.1 fsevents: ~2.3.3 - postcss: ^8.4.35 - rollup: ^4.2.0 + postcss: ^8.4.36 + rollup: ^4.13.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 less: "*" @@ -13519,7 +13537,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 21863ca12303ea6305fe9230a55e7cb30b4cac05dd2a2596889e079163ccc81bcb465ff6dd165001042f47e999192b9c579329484211e000afe9b47068c7fab0 + checksum: ef20480a0d4145f05378d33d295917995679c75205c19872346f18ad847cca8ac90794b7cfb280f787c0db60a90afcc1ae2c2e5ccedfe4751fb4a3c0ff07be69 languageName: node linkType: hard From c69f3213d0a26d755363f98ce9189fc8dbdd97cd Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 21 Mar 2024 16:15:29 -0400 Subject: [PATCH 103/471] fix: Test serializer-generated XSLT runs as expected Fixes: #96 Injecting XSLTProcessor from xslt-ts since jsdom doesn't provide one. For some reason `xsl:copy-of` behaves differently than XSLT Fiddle, it doesn't copy nested values in tests while it does in XSLT Fiddle. We shouldn't expect too much for unit testing DOM Lv3 and XSLT browser API. --- packages/ui/jest-setup.ts | 6 ++ packages/ui/package.json | 5 +- .../mapping-serializer.service.test.ts | 88 +++++++++++++++---- yarn.lock | 43 +++++++-- 4 files changed, 116 insertions(+), 26 deletions(-) diff --git a/packages/ui/jest-setup.ts b/packages/ui/jest-setup.ts index 0059d2342..72590f380 100644 --- a/packages/ui/jest-setup.ts +++ b/packages/ui/jest-setup.ts @@ -1,5 +1,6 @@ import '@testing-library/jest-dom'; // import '@testing-library/jest-dom/extend-expect' +import { install, XSLTProcessor } from 'xslt-ts'; Object.defineProperty(window, 'fetch', { writable: true, @@ -26,3 +27,8 @@ const fetchMock = jest.spyOn(window, 'fetch'); beforeEach(() => { fetchMock.mockResolvedValue(null as unknown as Response); }); + +// Inject xslt-ts implementation since jsdom doesn't provide XSLTProcessor +install(new DOMParser(), new XMLSerializer(), document.implementation); +global.XSLTProcessor = XSLTProcessor; +window.XSLTProcessor = XSLTProcessor; diff --git a/packages/ui/package.json b/packages/ui/package.json index 1481e3ec2..31fee9127 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -61,7 +61,6 @@ "react-dom": "^18.2.0", "react-sage": "^0.3.16", "react-use-gesture": "^9.1.3", - "saxon-js": "^2.6.0", "use-debounce": "^10.0.0", "xml-formatter": "^3.6.2" }, @@ -94,12 +93,14 @@ "madge": "^6.1.0", "prettier": "^3.2.5", "sass": "^1.70.0", + "saxon-js": "^2.6.0", "stylelint": "^16.2.1", "stylelint-config-standard-scss": "^13.0.0", "stylelint-prettier": "^5.0.0", "ts-node": "^10.9.2", "typescript": "^5.3.3", "vite": "^5.0.12", - "vite-plugin-circular-dependency": "^0.4.0" + "vite-plugin-circular-dependency": "^0.4.0", + "xslt-ts": "^1.1.8" } } diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index 3c7d422f1..d8be648fa 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -9,6 +9,8 @@ const sourceDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); sourceDoc.documentType = DocumentType.SOURCE_BODY; const targetDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); targetDoc.documentType = DocumentType.TARGET_BODY; +const domParser = new DOMParser(); +const xsltProcessor = new XSLTProcessor(); function getField(doc: IDocument, path: string) { let answer: IField | IDocument = doc; @@ -39,7 +41,7 @@ describe('MappingSerializerService', () => { describe('serialize()', () => { it('should return an empty XSLT document with empty mappings', () => { const empty = MappingSerializerService.serialize([]); - const dom = new DOMParser().parseFromString(empty, 'application/xml'); + const dom = domParser.parseFromString(empty, 'application/xml'); const template = dom .evaluate('/xsl:stylesheet/xsl:template', dom, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE) .iterateNext(); @@ -55,11 +57,11 @@ describe('MappingSerializerService', () => { targetFields: [getField(targetDoc, '/ShipOrder/@OrderId')], }, ] as IMapping[]); - const dom = new DOMParser().parseFromString(serialized, 'application/xml'); - const xslAttribute = dom + const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); + const xslAttribute = xsltDomDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/xsl:attribute', - dom, + xsltDomDocument, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, ) @@ -67,6 +69,18 @@ describe('MappingSerializerService', () => { expect(xslAttribute.getAttribute('name')).toEqual('OrderId'); const xslValueOf = xslAttribute.getElementsByTagNameNS(NS_XSL, 'value-of').item(0)!; expect(xslValueOf.getAttribute('select')).toEqual('/ns0:ShipOrder/@OrderId'); + + const inputString = ` + + foo + `; + xsltProcessor.importStylesheet(xsltDomDocument); + const transformed = xsltProcessor.transformToDocument(domParser.parseFromString(inputString, 'application/xml')); + // jsdom namespace handling is buggy + const shipOrder = transformed.getElementsByTagName('ShipOrder')[0] as Element; + const orderId = shipOrder.getAttribute('OrderId'); + expect(orderId).toEqual('3'); + expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); }); it('should serialize an element mapping', () => { @@ -76,16 +90,35 @@ describe('MappingSerializerService', () => { targetFields: [getField(targetDoc, '/ShipOrder/ShipTo/Name')], }, ] as IMapping[]); - const dom = new DOMParser().parseFromString(serialized, 'application/xml'); - const xslValueOf = dom + const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); + const xslValueOf = xsltDomDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/ShipTo/Name/xsl:value-of', - dom, + xsltDomDocument, null, - XPathResult.UNORDERED_NODE_ITERATOR_TYPE, + XPathResult.ANY_TYPE, ) .iterateNext() as Element; expect(xslValueOf.getAttribute('select')).toEqual('/ns0:ShipOrder/ShipTo/Name'); + + const inputString = ` + + foo + + bar +
    somewhere
    +
    +
    `; + xsltProcessor.importStylesheet(xsltDomDocument); + const transformed = xsltProcessor.transformToDocument(domParser.parseFromString(inputString, 'application/xml')); + // jsdom namespace handling is buggy + const shipOrder = transformed.getElementsByTagName('ShipOrder')[0]; + expect(shipOrder.getAttribute('OrderId')).toBeNull(); + expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); + const shipTo = shipOrder.getElementsByTagName('ShipTo')[0]; + const name = shipTo.getElementsByTagName('Name')[0]; + expect(name.textContent).toEqual('bar'); + expect(shipTo.getElementsByTagName('Address').length).toEqual(0); }); it('should serialize a container field mapping', () => { @@ -95,16 +128,39 @@ describe('MappingSerializerService', () => { targetFields: [getField(targetDoc, '/ShipOrder/Item')], }, ] as IMapping[]); - const dom = new DOMParser().parseFromString(serialized, 'application/xml'); - const xslCopyOf = dom - .evaluate( - '/xsl:stylesheet/xsl:template/ShipOrder/xsl:copy-of', - dom, - null, - XPathResult.UNORDERED_NODE_ITERATOR_TYPE, - ) + const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); + const xslCopyOf = xsltDomDocument + .evaluate('/xsl:stylesheet/xsl:template/ShipOrder/xsl:copy-of', xsltDomDocument, null, XPathResult.ANY_TYPE) .iterateNext() as Element; expect(xslCopyOf.getAttribute('select')).toEqual('/ns0:ShipOrder/Item'); + + const inputString = ` + + foo + + bar + + + some title + this element is not defined in the schema + + `; + xsltProcessor.importStylesheet(xsltDomDocument); + const transformed = xsltProcessor.transformToDocument(domParser.parseFromString(inputString, 'application/xml')); + // jsdom namespace handling is buggy + const shipOrder = transformed.getElementsByTagName('ShipOrder')[0]; + expect(shipOrder.getAttribute('OrderId')).toBeNull(); + expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); + expect(shipOrder.getElementsByTagName('ShipTo').length).toEqual(0); + const item = shipOrder.getElementsByTagName('Item')[0]; + const title = item.getElementsByTagName('Title')[0]; + expect(title).toBeTruthy(); + const notInSchema = item.getElementsByTagName('NotInSchema')[0]; + expect(notInSchema).toBeTruthy(); + /* This doesn't work with xslt-ts ATM, although it works fine in XSLT Fiddle, i.e. copy nested values. + expect(title.textContent).toEqual('some title'); + expect(notInSchema.textContent).toEqual('this element is not defined in the schema'); + */ }); }); }); diff --git a/yarn.lock b/yarn.lock index a586ecd5f..cd4ec0086 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1729,6 +1729,7 @@ __metadata: vite: ^5.0.12 vite-plugin-circular-dependency: ^0.4.0 xml-formatter: ^3.6.2 + xslt-ts: ^1.1.8 languageName: unknown linkType: soft @@ -4795,13 +4796,13 @@ __metadata: linkType: hard "axios@npm:^1.5.1": - version: 1.6.7 - resolution: "axios@npm:1.6.7" + version: 1.6.8 + resolution: "axios@npm:1.6.8" dependencies: - follow-redirects: ^1.15.4 + follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 87d4d429927d09942771f3b3a6c13580c183e31d7be0ee12f09be6d5655304996bb033d85e54be81606f4e89684df43be7bf52d14becb73a12727bf33298a082 + checksum: bf007fa4b207d102459300698620b3b0873503c6d47bf5a8f6e43c0c64c90035a4f698b55027ca1958f61ab43723df2781c38a99711848d232cad7accbcdfcdd languageName: node linkType: hard @@ -7567,13 +7568,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.4": - version: 1.15.5 - resolution: "follow-redirects@npm:1.15.5" +"follow-redirects@npm:^1.15.6": + version: 1.15.6 + resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: debug: optional: true - checksum: 5ca49b5ce6f44338cbfc3546823357e7a70813cecc9b7b768158a1d32c1e62e7407c944402a918ea8c38ae2e78266312d617dc68783fac502cbb55e1047b34ec + checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 languageName: node linkType: hard @@ -8124,6 +8125,15 @@ __metadata: languageName: node linkType: hard +"he@npm:^1.2.0": + version: 1.2.0 + resolution: "he@npm:1.2.0" + bin: + he: bin/he + checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 + languageName: node + linkType: hard + "hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" @@ -13887,6 +13897,23 @@ __metadata: languageName: node linkType: hard +"xpath-ts@npm:^1.3.13": + version: 1.3.13 + resolution: "xpath-ts@npm:1.3.13" + checksum: d7e40dbe45ee5b903b88720f0799030d98e4039266ea7aafc7d738fee18eb6351ff283e9e91a1792c72762f7b4794a355b9b2318eadfbec52c432a24ab855860 + languageName: node + linkType: hard + +"xslt-ts@npm:^1.1.8": + version: 1.1.8 + resolution: "xslt-ts@npm:1.1.8" + dependencies: + he: ^1.2.0 + xpath-ts: ^1.3.13 + checksum: 37d358f6f73614c391db6909b21ce2752533597f0984e605fcf49a8dcf1015c9eca73884cb81e84c60380b22fce4102343d42aac3ec6e6b1334bd6bdbb88ff87 + languageName: node + linkType: hard + "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" From e6620f8e46806779afd5c1132108dbcd0606a6e4 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 21 Mar 2024 16:25:07 -0400 Subject: [PATCH 104/471] chore: remove saxon-js --- packages/ui/package.json | 1 - yarn.lock | 38 -------------------------------------- 2 files changed, 39 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 31fee9127..70d857e03 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -93,7 +93,6 @@ "madge": "^6.1.0", "prettier": "^3.2.5", "sass": "^1.70.0", - "saxon-js": "^2.6.0", "stylelint": "^16.2.1", "stylelint-config-standard-scss": "^13.0.0", "stylelint-prettier": "^5.0.0", diff --git a/yarn.lock b/yarn.lock index cd4ec0086..51d2bab2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1719,7 +1719,6 @@ __metadata: react-sage: ^0.3.16 react-use-gesture: ^9.1.3 sass: ^1.70.0 - saxon-js: ^2.6.0 stylelint: ^16.2.1 stylelint-config-standard-scss: ^13.0.0 stylelint-prettier: ^5.0.0 @@ -4795,17 +4794,6 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.5.1": - version: 1.6.8 - resolution: "axios@npm:1.6.8" - dependencies: - follow-redirects: ^1.15.6 - form-data: ^4.0.0 - proxy-from-env: ^1.1.0 - checksum: bf007fa4b207d102459300698620b3b0873503c6d47bf5a8f6e43c0c64c90035a4f698b55027ca1958f61ab43723df2781c38a99711848d232cad7accbcdfcdd - languageName: node - linkType: hard - "babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" @@ -7568,16 +7556,6 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.6": - version: 1.15.6 - resolution: "follow-redirects@npm:1.15.6" - peerDependenciesMeta: - debug: - optional: true - checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 - languageName: node - linkType: hard - "for-each@npm:^0.3.3": version: 0.3.3 resolution: "for-each@npm:0.3.3" @@ -11317,13 +11295,6 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4 - languageName: node - linkType: hard - "psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" @@ -12099,15 +12070,6 @@ __metadata: languageName: node linkType: hard -"saxon-js@npm:^2.6.0": - version: 2.6.0 - resolution: "saxon-js@npm:2.6.0" - dependencies: - axios: ^1.5.1 - checksum: 484564a4d6490d28d33ca278a25386e95e5aabe53bbf1406fb193790304afda941b7274f3fcad2c55a43884b55dd65a7cad42e8325c7d53d85623727fd951aef - languageName: node - linkType: hard - "scheduler@npm:^0.23.0": version: 0.23.0 resolution: "scheduler@npm:0.23.0" From 609f57eec2fa8a050294423fc3e4a0a086257729 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 00:53:56 +0000 Subject: [PATCH 105/471] chore(deps): update dependency @storybook/addon-actions to v8.0.4 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 51d2bab2a..dedb811a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3408,16 +3408,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.2 - resolution: "@storybook/addon-actions@npm:8.0.2" + version: 8.0.4 + resolution: "@storybook/addon-actions@npm:8.0.4" dependencies: - "@storybook/core-events": 8.0.2 + "@storybook/core-events": 8.0.4 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: cfeb4c6dea7c911da321a286f45e84969028f871be39c258372105e1042c320312ff9dcc7d80f9e3ca004e5a17ed7f6b2a56a7486bbe352dac7a9d0d59800c37 + checksum: d6e7c2a7101ee53ef9e3747d78b872af41ba7e69bba030cea7de926ecfbcff68907370a280859511771a44004bc9a449aba9a264a0204565e0ffae6bcb087465 languageName: node linkType: hard @@ -3453,12 +3453,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.2": - version: 8.0.2 - resolution: "@storybook/core-events@npm:8.0.2" +"@storybook/core-events@npm:8.0.4": + version: 8.0.4 + resolution: "@storybook/core-events@npm:8.0.4" dependencies: ts-dedent: ^2.0.0 - checksum: 2eea565524dc327585c2c7efc50e2f350d499c3e8eab28da3c6cfb2240cbff32a53ace30d9d6c8af76903dd300e5aa360532012d56651ab96272cc7355f3b0d5 + checksum: c61eef4b9390c6f41b9fd4ae6b988d7750c8e314b7bea5c13fa95d068ac8c84d37b48420ecf95b6a98afb2709011dc9a34ad3f822ca223158211237ddbab075d languageName: node linkType: hard From 6e7c034730e09e45f30e6c1edfee883c09980514 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 23 Mar 2024 00:21:02 +0000 Subject: [PATCH 106/471] chore(deps): update dependency @types/react to v18.2.69 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index dedb811a2..9dea87c83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4066,13 +4066,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53, @types/react@npm:^18.2.61": - version: 18.2.67 - resolution: "@types/react@npm:18.2.67" + version: 18.2.69 + resolution: "@types/react@npm:18.2.69" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 9e48122b0e8d0ae20601f613aca32289eeb94d55c58ff03a7dc532d80ed289a1ba9715f14b773bd926ccdd63e503717f14264143ef531dc370063abe09dee0b2 + checksum: 7657978c4bbca41f566481b5507cdf571575e6631d0f8105ec2f6eea4029c315f9381182369bd5c700f3f2ea247dd2d12005381b937c9ad1771f86acd7201768 languageName: node linkType: hard From b03b6afd250d76489569212f76bc616fffa42f66 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Mar 2024 13:51:28 +0000 Subject: [PATCH 107/471] chore(deps): update dependency vite to v5.2.6 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9dea87c83..8e6cb8dad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13474,8 +13474,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.2 - resolution: "vite@npm:5.2.2" + version: 5.2.6 + resolution: "vite@npm:5.2.6" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 @@ -13509,7 +13509,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: ef20480a0d4145f05378d33d295917995679c75205c19872346f18ad847cca8ac90794b7cfb280f787c0db60a90afcc1ae2c2e5ccedfe4751fb4a3c0ff07be69 + checksum: 7dc8f5a06601a0183b53a389469e7d898c1f187a567b5af2543a02e08fe5778f87da6e26b71b5096462c81e922f04c593b447307bcd38ee7fe250c0bb18fe88f languageName: node linkType: hard From 5699b390f2a0e9298f3fbba180cc3223e704bfc7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Mar 2024 00:45:35 +0000 Subject: [PATCH 108/471] chore(deps): update dependency stylelint to v16.3.0 --- yarn.lock | 97 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 36 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8e6cb8dad..e7f560e02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1616,38 +1616,38 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.5.0": - version: 2.5.0 - resolution: "@csstools/css-parser-algorithms@npm:2.5.0" +"@csstools/css-parser-algorithms@npm:^2.6.1": + version: 2.6.1 + resolution: "@csstools/css-parser-algorithms@npm:2.6.1" peerDependencies: - "@csstools/css-tokenizer": ^2.2.3 - checksum: 6bfbdb4052acca48de9db0806a1b18458709103390656634ebe3cf0390048a6e9b304b78173fbcd524e03669dacb5cc3bedbe8008c354ff9511aed4935dcfc6f + "@csstools/css-tokenizer": ^2.2.4 + checksum: 365745c2d6b3eaf26c77d09306c66012552d2b2e4cf94fabc230e8a6a954dab57867b24ebedd8bd518c8ced844c7f988e89144b5d9c76cfbddff126cfb2f153d languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.2.3": - version: 2.2.3 - resolution: "@csstools/css-tokenizer@npm:2.2.3" - checksum: a2a69f0de516046f85b8f47916879780f9712bdda8166ab01dd47613515ff5a0771555c78badd220686bc1dae3cb0eea5de6896e1e326247a276cc8965520aa6 +"@csstools/css-tokenizer@npm:^2.2.4": + version: 2.2.4 + resolution: "@csstools/css-tokenizer@npm:2.2.4" + checksum: 306ce5603e1084d782e125caa86eadad2a3115e36ec824b855df7e48bb4821eec7ccf336990d37874d76cf18156586866975e46c6a75583f218c61735749af81 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.7": - version: 2.1.7 - resolution: "@csstools/media-query-list-parser@npm:2.1.7" +"@csstools/media-query-list-parser@npm:^2.1.9": + version: 2.1.9 + resolution: "@csstools/media-query-list-parser@npm:2.1.9" peerDependencies: - "@csstools/css-parser-algorithms": ^2.5.0 - "@csstools/css-tokenizer": ^2.2.3 - checksum: f910d9c29c84e828d121f451607fe9c275297041f317075ede935ffacdd7fd53fcbc0dd4993585e405b5337b7f991b864d101dff3cb8fc400e8c32a9aedbfe69 + "@csstools/css-parser-algorithms": ^2.6.1 + "@csstools/css-tokenizer": ^2.2.4 + checksum: c10c39ac23c38ccf6f21cc075ecced5cf9c98f237c559818d248b7b7ac08da5d2a92f80685a2958ef5862fb8cba4f12054f2fced5a18f8392d545934f52b42ff languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.0.1": - version: 3.0.1 - resolution: "@csstools/selector-specificity@npm:3.0.1" +"@csstools/selector-specificity@npm:^3.0.2": + version: 3.0.2 + resolution: "@csstools/selector-specificity@npm:3.0.2" peerDependencies: postcss-selector-parser: ^6.0.13 - checksum: e4b5aac3bd3ca1f824cb9578f52b16046a519aa8050ce291da37e611976a83cd3b2b2f908d2678dd4cbbe00bbde8ec28c34fffc40dbbf9a13608dfcaf382ee80 + checksum: af3cc9282b600170b7de0fed2106830ab353359bd11f66cf71259419c9bddf8f0773c3a6e513cd9f66fd7e4920a1786a7c288723cbb3ae207974c1e7de26293e languageName: node linkType: hard @@ -1801,6 +1801,13 @@ __metadata: languageName: node linkType: hard +"@dual-bundle/import-meta-resolve@npm:^4.0.0": + version: 4.0.0 + resolution: "@dual-bundle/import-meta-resolve@npm:4.0.0" + checksum: c98c467a17ccb19fc99ef174df22a789949cbb261a27220d856b5dcd4148045ca5d70121d18cae8c2fff53e818c278dda2130c467f87e54e34a744cacc7cedf0 + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/babel-plugin@npm:11.11.0" @@ -8258,7 +8265,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.0": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 @@ -9592,6 +9599,13 @@ __metadata: languageName: node linkType: hard +"known-css-properties@npm:^0.30.0": + version: 0.30.0 + resolution: "known-css-properties@npm:0.30.0" + checksum: 8d682c31f324b18bdad8688aafe16de7e038b63fb5e70579c247fa72cec27797312ab7be241b96485eedd1b8a2f1e5f7481768efb0ce944d7ec0c0441b2b6e5a + languageName: node + linkType: hard + "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -9936,7 +9950,7 @@ __metadata: languageName: node linkType: hard -"meow@npm:^13.1.0": +"meow@npm:^13.2.0": version: 13.2.0 resolution: "meow@npm:13.2.0" checksum: 79c61dc02ad448ff5c29bbaf1ef42181f1eae9947112c0e23db93e84cbc2708ecda53e54bfc6689f1e55255b2cea26840ec76e57a5773a16ca45f4fe2163ec1c @@ -11061,6 +11075,16 @@ __metadata: languageName: node linkType: hard +"postcss-selector-parser@npm:^6.0.16": + version: 6.0.16 + resolution: "postcss-selector-parser@npm:6.0.16" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: e1cd68e33a39e3dc1e1e5bd8717be5bbe3cc23a4cecb466c3acb2f3a77daad7a47df4d6137a76f8db74cf160d2fb16b2cfdb4ccbebdfda844690f8d545fe281d + languageName: node + linkType: hard + "postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" @@ -11092,7 +11116,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.7, postcss@npm:^8.4.23, postcss@npm:^8.4.33": +"postcss@npm:^8.1.7, postcss@npm:^8.4.23": version: 8.4.35 resolution: "postcss@npm:8.4.35" dependencies: @@ -11103,7 +11127,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.36": +"postcss@npm:^8.4.36, postcss@npm:^8.4.38": version: 8.4.38 resolution: "postcss@npm:8.4.38" dependencies: @@ -12687,13 +12711,14 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.2.1 - resolution: "stylelint@npm:16.2.1" - dependencies: - "@csstools/css-parser-algorithms": ^2.5.0 - "@csstools/css-tokenizer": ^2.2.3 - "@csstools/media-query-list-parser": ^2.1.7 - "@csstools/selector-specificity": ^3.0.1 + version: 16.3.0 + resolution: "stylelint@npm:16.3.0" + dependencies: + "@csstools/css-parser-algorithms": ^2.6.1 + "@csstools/css-tokenizer": ^2.2.4 + "@csstools/media-query-list-parser": ^2.1.9 + "@csstools/selector-specificity": ^3.0.2 + "@dual-bundle/import-meta-resolve": ^4.0.0 balanced-match: ^2.0.0 colord: ^2.9.3 cosmiconfig: ^9.0.0 @@ -12707,19 +12732,19 @@ __metadata: globby: ^11.1.0 globjoin: ^0.1.4 html-tags: ^3.3.1 - ignore: ^5.3.0 + ignore: ^5.3.1 imurmurhash: ^0.1.4 is-plain-object: ^5.0.0 - known-css-properties: ^0.29.0 + known-css-properties: ^0.30.0 mathml-tag-names: ^2.1.3 - meow: ^13.1.0 + meow: ^13.2.0 micromatch: ^4.0.5 normalize-path: ^3.0.0 picocolors: ^1.0.0 - postcss: ^8.4.33 + postcss: ^8.4.38 postcss-resolve-nested-selector: ^0.1.1 postcss-safe-parser: ^7.0.0 - postcss-selector-parser: ^6.0.15 + postcss-selector-parser: ^6.0.16 postcss-value-parser: ^4.2.0 resolve-from: ^5.0.0 string-width: ^4.2.3 @@ -12730,7 +12755,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: 0b84d7218b43bc89978cac40edb5dc0a0f8f7c7a60e3f932fe91392bcf79da165b5694a386247fefb51569eb26535071bf5c7f3cbba0bd094e2590c1b2494717 + checksum: 76d82c6f22b929d1297f312dfbf97e9a74193ef0d8e1ef30fc5ecbab23540ff6766da159154543a5267d25cfa724db5e1d34144f2a083add7ed72993ee423f7a languageName: node linkType: hard From 0707ed9e4d8618f8f035fead45a89b8000e9cf4b Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 25 Mar 2024 07:45:15 -0400 Subject: [PATCH 109/471] feat: Introduce Camel specific Document categories (#52) checkpoint: Phase1 in #68: With a single camel-xslt step, i.e. input parameters with `xsl:param` that contains - Message Header - Exchange Property - Variable and in Message Body, and OUT Message Body. Attach/detach schema is now possible, but the non-structured Document (aka PrimitiveDocument, no attached schema) is not mappable yet. --- packages/ui/src/DataMapper.tsx | 2 +- ...umentButton.tsx => AttachSchemaButton.tsx} | 52 ++++-- .../document/DeleteParameterButton.tsx | 49 ++++++ .../document/DetachSchemaButton.tsx | 86 ++++++++++ .../ui/src/components/document/Document.tsx | 67 +++++++- .../ui/src/components/document/Parameters.tsx | 148 ++++++++++++++++++ packages/ui/src/components/document/index.ts | 2 +- .../ui/src/layout/views/SourceTargetView.scss | 12 ++ .../ui/src/layout/views/SourceTargetView.tsx | 93 +++++------ packages/ui/src/models/document.ts | 27 +++- .../ui/src/providers/DataMapperProvider.tsx | 51 +++--- .../mapping-serializer.service.test.ts | 48 ++++++ .../services/mapping-serializer.service.ts | 40 ++++- .../xml-schema-document.service.test.ts | 2 +- .../services/xml-schema-document.service.ts | 25 +-- 15 files changed, 584 insertions(+), 120 deletions(-) rename packages/ui/src/components/document/{ImportDocumentButton.tsx => AttachSchemaButton.tsx} (57%) create mode 100644 packages/ui/src/components/document/DeleteParameterButton.tsx create mode 100644 packages/ui/src/components/document/DetachSchemaButton.tsx create mode 100644 packages/ui/src/components/document/Parameters.tsx create mode 100644 packages/ui/src/layout/views/SourceTargetView.scss diff --git a/packages/ui/src/DataMapper.tsx b/packages/ui/src/DataMapper.tsx index e1aa2322a..0840ba849 100644 --- a/packages/ui/src/DataMapper.tsx +++ b/packages/ui/src/DataMapper.tsx @@ -35,7 +35,7 @@ export const DataMapper: FunctionComponent = () => { )} - ; + ); }; diff --git a/packages/ui/src/components/document/ImportDocumentButton.tsx b/packages/ui/src/components/document/AttachSchemaButton.tsx similarity index 57% rename from packages/ui/src/components/document/ImportDocumentButton.tsx rename to packages/ui/src/components/document/AttachSchemaButton.tsx index 131a469d6..e350dcf44 100644 --- a/packages/ui/src/components/document/ImportDocumentButton.tsx +++ b/packages/ui/src/components/document/AttachSchemaButton.tsx @@ -23,11 +23,18 @@ import { XmlSchemaDocumentService } from '../../services'; import { useDataMapper } from '../../hooks'; import { DocumentType } from '../../models/document'; -export interface IImportActionProps { - isSource: boolean; -} -export const ImportDocumentButton: FunctionComponent = ({ isSource }) => { - const { sourceDocuments, refreshSourceDocuments, targetDocuments, refreshTargetDocuments } = useDataMapper(); +type AttachSchemaProps = { + documentType: DocumentType; + documentId: string; + hasSchema?: boolean; +}; + +export const AttachSchemaButton: FunctionComponent = ({ + documentType, + documentId, + hasSchema = false, +}) => { + const { sourceParameterMap, refreshSourceParameters, setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); const { files, onClick, HiddenFileInput } = useFilePicker({ maxFileSize: 1, }); @@ -36,16 +43,29 @@ export const ImportDocumentButton: FunctionComponent = ({ is const onImport = useCallback( (file: File) => { readFileAsString(file).then((content) => { - XmlSchemaDocumentService.populateXmlSchemaDocument( - isSource ? sourceDocuments : targetDocuments, - isSource ? DocumentType.SOURCE_BODY : DocumentType.TARGET_BODY, - file.name, - content, - ); - isSource ? refreshSourceDocuments() : refreshTargetDocuments(); + const document = XmlSchemaDocumentService.createXmlSchemaDocument(documentType, documentId, content); + switch (documentType) { + case DocumentType.SOURCE_BODY: + setSourceBodyDocument(document); + break; + case DocumentType.TARGET_BODY: + setTargetBodyDocument(document); + break; + case DocumentType.PARAM: + sourceParameterMap.set(documentId, document); + refreshSourceParameters(); + break; + } }); }, - [isSource, refreshSourceDocuments, refreshTargetDocuments, sourceDocuments, targetDocuments], + [ + documentId, + documentType, + refreshSourceParameters, + setSourceBodyDocument, + setTargetBodyDocument, + sourceParameterMap, + ], ); useEffect(() => { @@ -58,11 +78,11 @@ export const ImportDocumentButton: FunctionComponent = ({ is }, [files, onImport]); return ( - Import instance or schema file
    }> + {hasSchema ? 'Update schema' : 'Attach a schema'}
    }>
    }> + + + + Confirm + , + , + ]} + > + Delete parameter "{parameterName}"? + + + ); +}; diff --git a/packages/ui/src/components/document/DetachSchemaButton.tsx b/packages/ui/src/components/document/DetachSchemaButton.tsx new file mode 100644 index 000000000..40c10c125 --- /dev/null +++ b/packages/ui/src/components/document/DetachSchemaButton.tsx @@ -0,0 +1,86 @@ +/* + Copyright (C) 2017 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; +import { FunctionComponent, useCallback } from 'react'; + +import { ExportIcon } from '@patternfly/react-icons'; +import { useDataMapper, useToggle } from '../../hooks'; +import { DocumentType, PrimitiveDocument } from '../../models/document'; + +type DeleteSchemaProps = { + documentType: DocumentType; + documentId: string; +}; + +export const DetachSchemaButton: FunctionComponent = ({ documentType, documentId }) => { + const { sourceParameterMap, refreshSourceParameters, setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); + const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); + + const onConfirmDelete = useCallback(() => { + const primitiveDoc = new PrimitiveDocument(documentType, documentId); + switch (documentType) { + case DocumentType.SOURCE_BODY: + setSourceBodyDocument(primitiveDoc); + break; + case DocumentType.TARGET_BODY: + setTargetBodyDocument(primitiveDoc); + break; + case DocumentType.PARAM: + sourceParameterMap.set(documentId, primitiveDoc); + refreshSourceParameters(); + break; + } + closeModal(); + }, [ + closeModal, + documentId, + documentType, + refreshSourceParameters, + setSourceBodyDocument, + setTargetBodyDocument, + sourceParameterMap, + ]); + + return ( + <> + Detach schema
    }> + + + + Confirm + , + , + ]} + > + Detach correlated schema and make it back to be a primitive value? + + + ); +}; diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx index f42cc9de5..0e942510e 100644 --- a/packages/ui/src/components/document/Document.tsx +++ b/packages/ui/src/components/document/Document.tsx @@ -1,8 +1,20 @@ -import { FunctionComponent, useCallback, useState } from 'react'; -import { Accordion, Card, CardBody, CardExpandableContent, CardHeader, CardTitle } from '@patternfly/react-core'; -import { IDocument, DocumentType } from '../../models'; +import { FunctionComponent, useCallback, useMemo, useState } from 'react'; +import { + Accordion, + ActionList, + ActionListItem, + Card, + CardBody, + CardExpandableContent, + CardHeader, + CardTitle, +} from '@patternfly/react-core'; +import { IDocument, DocumentType, PrimitiveDocument } from '../../models'; import { DocumentField } from './DocumentField'; import { useCanvas } from '../../hooks/useCanvas'; +import { AttachSchemaButton } from './AttachSchemaButton'; +import { DetachSchemaButton } from './DetachSchemaButton'; +import { DeleteParameterButton } from './DeleteParameterButton'; export type DocumentProps = { documentType: DocumentType; @@ -20,9 +32,52 @@ export const Document: FunctionComponent = ({ documentType, model reloadFieldReferences(); }, [isExpanded, reloadFieldReferences]); - return ( - - + const primitiveDocumentHeaderActiopns = useMemo(() => { + return ( + + + + + {documentType === DocumentType.PARAM && ( + + + + )} + + ); + }, [documentType, model.documentId]); + + const structuredDocumentHeaderActions = useMemo(() => { + return ( + + + + + + + + {documentType === DocumentType.PARAM && ( + + + + )} + + ); + }, [documentType, model]); + + return model instanceof PrimitiveDocument ? ( + + + {model.name} + + + ) : ( + + {model.name} diff --git a/packages/ui/src/components/document/Parameters.tsx b/packages/ui/src/components/document/Parameters.tsx new file mode 100644 index 000000000..6afe834db --- /dev/null +++ b/packages/ui/src/components/document/Parameters.tsx @@ -0,0 +1,148 @@ +import { + ActionList, + ActionListItem, + Button, + Card, + CardBody, + CardExpandableContent, + CardHeader, + CardTitle, + Stack, + StackItem, + TextInput, + Tooltip, +} from '@patternfly/react-core'; +import { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useDataMapper, useToggle } from '../../hooks'; +import { CheckIcon, PlusIcon, TimesIcon } from '@patternfly/react-icons'; +import { DocumentType, PrimitiveDocument } from '../../models/document'; +import { Document } from './Document'; + +type AddNewParameterPlaceholderProps = { + onComplete: () => void; +}; + +const AddNewParameterPlaceholder: FunctionComponent = ({ onComplete }) => { + const { sourceParameterMap, refreshSourceParameters } = useDataMapper(); + const [newParameterName, setNewParameterName] = useState(''); + + const submitNewParameter = useCallback(() => { + if (!sourceParameterMap.has(newParameterName)) { + const primitiveDocument = new PrimitiveDocument(DocumentType.PARAM, newParameterName); + sourceParameterMap.set(newParameterName, primitiveDocument); + refreshSourceParameters(); + } + setNewParameterName(''); + onComplete(); + }, [sourceParameterMap, newParameterName, onComplete, refreshSourceParameters]); + + const cancelNewParameter = useCallback(() => { + setNewParameterName(''); + onComplete(); + }, [onComplete]); + + const isNewParameterNameValid = useMemo(() => { + return newParameterName !== '' && !sourceParameterMap.has(newParameterName); + }, [newParameterName, sourceParameterMap]); + + const inputRef = useRef(null); + + useEffect(() => { + inputRef.current?.focus(); + }, []); + + return ( + + + setNewParameterName(text)} + placeholder="parameter name" + /> + + + + + + + + + ); +}; + +export const Parameters: FunctionComponent = () => { + const { sourceParameterMap } = useDataMapper(); + const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(false); + const { + state: isAddingNewParameter, + toggleOff: toggleOffAddNewParameter, + toggleOn: toggleOnAddNewParameter, + } = useToggle(false); + + const handleAddNewParameter = useCallback(() => { + setSourceParametersExpanded(true); + toggleOnAddNewParameter(); + }, [toggleOnAddNewParameter]); + + const parametersHeaderActions = useMemo(() => { + return ( + + + Add a parameter
    }> + + + + + ); + }, [handleAddNewParameter]); + + return ( + + setSourceParametersExpanded(!isSourceParametersExpanded)} + actions={{ actions: parametersHeaderActions, hasNoOffset: true }} + > + Parameters + + + + + {isAddingNewParameter && ( + + toggleOffAddNewParameter()} /> + + )} + {Array.from(sourceParameterMap.entries()).map(([documentId, doc]) => ( + + + + ))} + + + + + ); +}; diff --git a/packages/ui/src/components/document/index.ts b/packages/ui/src/components/document/index.ts index 9e2af33ba..6d7077ab1 100644 --- a/packages/ui/src/components/document/index.ts +++ b/packages/ui/src/components/document/index.ts @@ -1,3 +1,3 @@ export * from './Document'; export * from './DocumentField'; -export * from './ImportDocumentButton'; +export * from './AttachSchemaButton'; diff --git a/packages/ui/src/layout/views/SourceTargetView.scss b/packages/ui/src/layout/views/SourceTargetView.scss new file mode 100644 index 000000000..c7b357156 --- /dev/null +++ b/packages/ui/src/layout/views/SourceTargetView.scss @@ -0,0 +1,12 @@ +.sourceTargetView { + height: 100%; +} +.sourcePanel { + height: 100%; +} + +.lineBlank {} + +.targetPanel { + height: 100%; +} \ No newline at end of file diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx index aa22c4b10..c13e1df33 100644 --- a/packages/ui/src/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -1,74 +1,67 @@ import { - ActionList, - ActionListItem, - Card, - CardBody, - CardHeader, - CardTitle, + Panel, + PanelHeader, + PanelMain, Split, SplitItem, Stack, StackItem, + Text, + TextContent, + TextVariants, } from '@patternfly/react-core'; import { FunctionComponent } from 'react'; import { useDataMapper } from '../../hooks'; import { Document } from '../../components/document'; -import { ImportDocumentButton } from '../../components/document'; import { MappingLinksContainer } from '../../components/mapping/MappingLink'; import { DocumentType } from '../../models/document'; +import { Parameters } from '../../components/document/Parameters'; +import './SourceTargetView.scss'; export const SourceTargetView: FunctionComponent = () => { - const { sourceDocuments, targetDocuments } = useDataMapper(); - const sourceDocumentsActions = ( - - - - - - ); - const targetDocumentActions = ( - - - - - - ); + const { sourceBodyDocument, targetBodyDocument } = useDataMapper(); return ( - + - - - Source - - - - {sourceDocuments.map((doc) => ( - - - - ))} + + + + Source + + + + + + + +   + + + - - + + + + +   -   - - - Target - - - - {targetDocuments.map((doc) => ( - - - - ))} + + + + Target + + + + + + + - - + + ); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index db3c0d741..be5511b54 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -8,10 +8,11 @@ export interface INamespace { isTarget: boolean; } -type IParentType = IDocument | IField; +export type IParentType = IDocument | IField; export interface IField { parent: IParentType; + ownerDocument: IDocument; fieldIdentifier: FieldIdentifier; name: string; expression: string; @@ -37,14 +38,36 @@ export interface IDocument { export abstract class BaseDocument implements IDocument { documentType: DocumentType = DocumentType.SOURCE_BODY; documentId: string = ''; - abstract fieldIdentifier: FieldIdentifier; fields: IField[] = []; name: string = ''; type: string = ''; + get fieldIdentifier(): FieldIdentifier { + return new FieldIdentifier(`${this.documentType}:${this.documentId}://`); + } +} + +export class PrimitiveDocument extends BaseDocument implements IField { + ownerDocument = this; + defaultValue: string | null = null; + expression: string = ''; + isAttribute: boolean = false; + maxOccurs: number = 1; + minOccurs: number = 0; + namespaceURI: string | null = null; + parent: IParentType = this; + + constructor( + public documentType: DocumentType, + public documentId: string, + ) { + super(); + this.name = this.documentId; + } } export abstract class BaseField implements IField { abstract parent: IParentType; + abstract ownerDocument: IDocument; abstract fieldIdentifier: FieldIdentifier; fields: IField[] = []; isAttribute: boolean = false; diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index bc09a8d95..2701afe8b 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -16,17 +16,19 @@ import { createContext, FunctionComponent, PropsWithChildren, useCallback, useMemo, useState } from 'react'; import { Loading } from '../components/Loading'; -import { CanvasView, IDocument, IMapping } from '../models'; +import { CanvasView, DocumentType, IDocument, IMapping, PrimitiveDocument } from '../models'; export interface IDataMapperContext { loading: boolean; activeView: CanvasView; setActiveView(view: CanvasView): void; - sourceDocuments: IDocument[]; - refreshSourceDocuments: () => void; - targetDocuments: IDocument[]; - refreshTargetDocuments: () => void; + sourceParameterMap: Map; + refreshSourceParameters: () => void; + sourceBodyDocument: IDocument; + setSourceBodyDocument: (doc: IDocument) => void; + targetBodyDocument: IDocument; + setTargetBodyDocument: (doc: IDocument) => void; mappings: IMapping[]; refreshMappings(): void; @@ -42,19 +44,20 @@ export const DataMapperContext = createContext(null); export const DataMapperProvider: FunctionComponent = (props) => { const [loading, _setLoading] = useState(false); const [activeView, setActiveView] = useState(CanvasView.SOURCE_TARGET); - const [sourceDocuments, setSourceDocuments] = useState([]); - const [targetDocuments, setTargetDocuments] = useState([]); + const [sourceParameterMap, setSourceParameterMap] = useState>(new Map()); + const [sourceBodyDocument, setSourceBodyDocument] = useState( + new PrimitiveDocument(DocumentType.SOURCE_BODY, 'Body'), + ); + const [targetBodyDocument, setTargetBodyDocument] = useState( + new PrimitiveDocument(DocumentType.TARGET_BODY, 'Body'), + ); const [mappings, setMappings] = useState([]); const [selectedMapping, setSelectedMapping] = useState(null); const [debug, setDebug] = useState(false); - const refreshSourceDocuments = useCallback(() => { - setSourceDocuments([...sourceDocuments]); - }, [sourceDocuments]); - - const refreshTargetDocuments = useCallback(() => { - setTargetDocuments([...targetDocuments]); - }, [targetDocuments]); + const refreshSourceParameters = useCallback(() => { + setSourceParameterMap(new Map(sourceParameterMap)); + }, [sourceParameterMap]); const refreshMappings = useCallback(() => { setMappings([...mappings]); @@ -65,10 +68,12 @@ export const DataMapperProvider: FunctionComponent = (props) loading, activeView, setActiveView, - sourceDocuments, - refreshSourceDocuments, - targetDocuments, - refreshTargetDocuments, + sourceParameterMap, + refreshSourceParameters, + sourceBodyDocument, + setSourceBodyDocument, + targetBodyDocument, + setTargetBodyDocument, mappings, refreshMappings, selectedMapping, @@ -78,14 +83,16 @@ export const DataMapperProvider: FunctionComponent = (props) }; }, [ activeView, - refreshSourceDocuments, - refreshTargetDocuments, + refreshSourceParameters, loading, mappings, refreshMappings, selectedMapping, - sourceDocuments, - targetDocuments, + sourceParameterMap, + sourceBodyDocument, + setSourceBodyDocument, + targetBodyDocument, + setTargetBodyDocument, debug, setDebug, ]); diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index d8be648fa..242de1afe 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -7,6 +7,10 @@ import { XmlSchemaDocumentService } from './xml-schema-document.service'; const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); const sourceDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); sourceDoc.documentType = DocumentType.SOURCE_BODY; +const sourceParamDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); +sourceParamDoc.documentType = DocumentType.PARAM; +sourceParamDoc.name = 'sourceParam1'; +sourceParamDoc.documentId = 'sourceParam1'; const targetDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); targetDoc.documentType = DocumentType.TARGET_BODY; const domParser = new DOMParser(); @@ -162,5 +166,49 @@ describe('MappingSerializerService', () => { expect(notInSchema.textContent).toEqual('this element is not defined in the schema'); */ }); + + it('should serialize structured parameter field mapping', () => { + const serialized = MappingSerializerService.serialize([ + { + sourceFields: [getField(sourceParamDoc, '/ShipOrder/Item')], + targetFields: [getField(targetDoc, '/ShipOrder/Item')], + }, + ] as IMapping[]); + const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); + const xslParam = xsltDomDocument + .evaluate('/xsl:stylesheet/xsl:param', xsltDomDocument, null, XPathResult.ANY_TYPE) + .iterateNext() as Element; + expect(xslParam.getAttribute('name')).toEqual('sourceParam1'); + const xslCopyOf = xsltDomDocument + .evaluate('/xsl:stylesheet/xsl:template/ShipOrder/xsl:copy-of', xsltDomDocument, null, XPathResult.ANY_TYPE) + .iterateNext() as Element; + expect(xslCopyOf.getAttribute('select')).toEqual('$sourceParam1/ns0:ShipOrder/Item'); + + const inputString = ` + + foo + + bar + + + some title + this element is not defined in the schema + + `; + const inputDom = domParser.parseFromString(inputString, 'application/xml'); + xsltProcessor.setParameter(null, 'sourceParam1', inputDom); + xsltProcessor.importStylesheet(xsltDomDocument); + const transformed = xsltProcessor.transformToDocument(domParser.parseFromString('', 'application/xml')); + // jsdom namespace handling is buggy + const shipOrder = transformed.getElementsByTagName('ShipOrder')[0]; + expect(shipOrder.getAttribute('OrderId')).toBeNull(); + expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); + expect(shipOrder.getElementsByTagName('ShipTo').length).toEqual(0); + const item = shipOrder.getElementsByTagName('Item')[0]; + const title = item.getElementsByTagName('Title')[0]; + expect(title).toBeTruthy(); + const notInSchema = item.getElementsByTagName('NotInSchema')[0]; + expect(notInSchema).toBeTruthy(); + }); }); }); diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 0bb3ea6a8..c518df443 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -1,9 +1,10 @@ -import { IField, IMapping } from '../models'; +import { DocumentType, IField, IMapping } from '../models'; import xmlFormat from 'xml-formatter'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; export const EMPTY_XSL = ` + @@ -36,7 +37,7 @@ export class MappingSerializerService { throw Error('No root template in the XSLT document'); } const parent = MappingSerializerService.getOrCreateParent(template as Element, target); - MappingSerializerService.putSource(parent, source, target); + MappingSerializerService.populateSource(parent, source, target); } static getOrCreateParent(template: Element, target: IField) { @@ -84,8 +85,9 @@ export class MappingSerializerService { return element.namespaceURI === field.namespaceURI; } - static putSource(parent: Element, source: IField, target: IField) { + static populateSource(parent: Element, source: IField, target: IField) { const xsltDocument = parent.ownerDocument; + MappingSerializerService.populateParam(xsltDocument, source); const sourceXPath = MappingSerializerService.getXPath(xsltDocument, source); if (target.isAttribute) { const xslAttribute = xsltDocument.createElementNS(NS_XSL, 'attribute'); @@ -107,6 +109,34 @@ export class MappingSerializerService { } } + static populateParam(xsltDocument: Document, source: IField) { + if (source.ownerDocument.documentType !== DocumentType.PARAM) return; + const paramName = source.ownerDocument.documentId; + const prefix = xsltDocument.lookupPrefix(NS_XSL); + const nsResolver = xsltDocument.createNSResolver(xsltDocument); + const existing = xsltDocument + .evaluate( + `/${prefix}:stylesheet/${prefix}:param[@name='${paramName}']`, + xsltDocument, + nsResolver, + XPathResult.ANY_TYPE, + ) + .iterateNext(); + if (!existing) { + const xsltParam = xsltDocument.createElementNS(NS_XSL, 'param'); + xsltParam.setAttribute('name', paramName); + const template = xsltDocument + .evaluate( + `/${prefix}:stylesheet/${prefix}:template[@match='/']`, + xsltDocument, + nsResolver, + XPathResult.ANY_TYPE, + ) + .iterateNext()!; + (template.parentNode as Element).insertBefore(xsltParam, template); + } + } + static getXPath(xsltDocument: Document, field: IField) { const fieldStack = MappingSerializerService.getFieldStack(field, true); const pathStack: string[] = []; @@ -115,7 +145,9 @@ export class MappingSerializerService { const prefix = MappingSerializerService.getOrCreateNSPrefix(xsltDocument, currentField.namespaceURI); pathStack.push(prefix ? prefix + ':' + currentField.expression : currentField.expression); } - return '/' + pathStack.join('/'); + const paramPrefix = + field.ownerDocument.documentType === DocumentType.PARAM ? '$' + field.ownerDocument.documentId : ''; + return paramPrefix + '/' + pathStack.join('/'); } static getOrCreateNSPrefix(xsltDocument: Document, namespace: string | null) { diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index a8347ac25..4264b763e 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -16,7 +16,7 @@ describe('XmlSchemaDocumentService', () => { it('should populate XML Schema Document', () => { const docs: IDocument[] = []; - XmlSchemaDocumentService.populateXmlSchemaDocument(docs, DocumentType.SOURCE_BODY, 'ShipOrder.xsd', orderXsd); + XmlSchemaDocumentService.createXmlSchemaDocument(docs, DocumentType.SOURCE_BODY, 'ShipOrder.xsd', orderXsd); expect(docs.length).toEqual(1); }); }); diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 533277bb8..4d70c15eb 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -24,7 +24,7 @@ import { XmlSchemaSimpleType, XmlSchemaUse, } from '@datamapper-poc/xml-schema-ts'; -import { BaseDocument, BaseField, DocumentType, FieldIdentifier, IDocument } from '../models'; +import { BaseDocument, BaseField, DocumentType, FieldIdentifier } from '../models'; export class XmlSchemaDocument extends BaseDocument { rootElement: XmlSchemaElement; @@ -40,21 +40,20 @@ export class XmlSchemaDocument extends BaseDocument { XmlSchemaDocumentService.populateElement(this, this.fields, this.rootElement); this.type = 'XML'; } - - get fieldIdentifier(): FieldIdentifier { - return new FieldIdentifier(`${this.documentType}:${this.documentId}://`); - } } type XmlSchemaParentType = XmlSchemaDocument | XmlSchemaField; export class XmlSchemaField extends BaseField { + ownerDocument: XmlSchemaDocument; fields: XmlSchemaField[] = []; namespaceURI: string | null = null; namespacePrefix: string | null = null; constructor(public parent: XmlSchemaParentType) { super(); + this.ownerDocument = + this.parent instanceof XmlSchemaDocument ? this.parent : (this.parent as XmlSchemaField).ownerDocument; } get fieldIdentifier(): FieldIdentifier { @@ -69,20 +68,12 @@ export class XmlSchemaDocumentService { return new XmlSchemaDocument(xmlSchema); } - static populateXmlSchemaDocument(documents: IDocument[], documentType: DocumentType, name: string, content: string) { + static createXmlSchemaDocument(documentType: DocumentType, documentId: string, content: string) { const doc = XmlSchemaDocumentService.parseXmlSchema(content); - doc.name = name; + doc.name = documentId; doc.documentType = documentType; - doc.documentId = name; - const sameNameDocs = documents.filter((d) => d.name === name); - for (let sequence = 0; sameNameDocs.length > 0; sequence++) { - const candidateId = `${name}.${sequence}`; - if (!sameNameDocs.find((d) => d.documentId === candidateId)) { - doc.documentId = candidateId; - break; - } - } - documents.push(doc); + doc.documentId = documentId; + return doc; } static getFirstElement(xmlSchema: XmlSchema) { From 6ec17b53146fde75583982a3a2ba97139b672d36 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 01:37:08 +0000 Subject: [PATCH 110/471] chore(deps): update dependency vite-plugin-circular-dependency to v0.4.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e7f560e02..29ee644de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13489,12 +13489,12 @@ __metadata: linkType: hard "vite-plugin-circular-dependency@npm:^0.4.0": - version: 0.4.0 - resolution: "vite-plugin-circular-dependency@npm:0.4.0" + version: 0.4.1 + resolution: "vite-plugin-circular-dependency@npm:0.4.1" dependencies: "@rollup/pluginutils": ^5.1.0 chalk: ^4.1.2 - checksum: 899d9cccf0f188f8111ef1739c8f21cd6eac65b657962f5cd55793c41f049148d9f7da922d7d2b3205d7fd3d4eb074be2edb5a21bc7728185b104d9e3a07cac6 + checksum: 415a960471f08fe43ee3442a49732b52c8e08e57e07a080bc42f8c28f2d8042b14195f1ec75c2226d84d0c3577157373a0d85afd6912d05d761383c891d31788 languageName: node linkType: hard From 9e23d0c5008065c0103bab40a7ba6dfe5e67cfef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 01:36:37 +0000 Subject: [PATCH 111/471] chore(deps): update dependency stylelint to v16.3.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 29ee644de..616d8317e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12711,8 +12711,8 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.3.0 - resolution: "stylelint@npm:16.3.0" + version: 16.3.1 + resolution: "stylelint@npm:16.3.1" dependencies: "@csstools/css-parser-algorithms": ^2.6.1 "@csstools/css-tokenizer": ^2.2.4 @@ -12755,7 +12755,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: 76d82c6f22b929d1297f312dfbf97e9a74193ef0d8e1ef30fc5ecbab23540ff6766da159154543a5267d25cfa724db5e1d34144f2a083add7ed72993ee423f7a + checksum: b3ab398fcabcac36b4a788fbb3e3b9248cdb6c6c36f791687b4e44e56f7e9b3ebde1fc7354ce93978e28cfc4fb47fef3262b7c5f948ff92782b90c459f466a4e languageName: node linkType: hard From 0c4b8367020cae00ff62ef4ea17ffdee7bfcc200 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 01:37:39 +0000 Subject: [PATCH 112/471] chore(deps): update eslint to v7.4.0 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index 616d8317e..a7bce2def 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4135,14 +4135,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.3.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.3.1" + version: 7.4.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.4.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.3.1 - "@typescript-eslint/type-utils": 7.3.1 - "@typescript-eslint/utils": 7.3.1 - "@typescript-eslint/visitor-keys": 7.3.1 + "@typescript-eslint/scope-manager": 7.4.0 + "@typescript-eslint/type-utils": 7.4.0 + "@typescript-eslint/utils": 7.4.0 + "@typescript-eslint/visitor-keys": 7.4.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -4155,25 +4155,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: fa4570552574e37ce70932a348105b98ceb623d38a962486d6b39bbec7d63c7c6dae30b7ee596acfb5a3146fdbe3e36cdb915aa10543d703d6e33f10f1005a7c + checksum: 01932c762939c120e95c81937b8f39f6500336919e87166b8ce35e753fc8fff64b3f3f5b79e86b0e8f4204c883467e4b66ed5af22e34fd6e3d30bc49f8ada7e4 languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.3.1 - resolution: "@typescript-eslint/parser@npm:7.3.1" + version: 7.4.0 + resolution: "@typescript-eslint/parser@npm:7.4.0" dependencies: - "@typescript-eslint/scope-manager": 7.3.1 - "@typescript-eslint/types": 7.3.1 - "@typescript-eslint/typescript-estree": 7.3.1 - "@typescript-eslint/visitor-keys": 7.3.1 + "@typescript-eslint/scope-manager": 7.4.0 + "@typescript-eslint/types": 7.4.0 + "@typescript-eslint/typescript-estree": 7.4.0 + "@typescript-eslint/visitor-keys": 7.4.0 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 8d3c90d2756de25bebf0b015f89149c1c0359aa328f7c04dc22381a807e01d54922df561bd6457377d96097d6c41fe9c2579ab0b86b8a44c0f328475e0b671d7 + checksum: ee8dac1a5bbe8a0ccac3b95116ab5dba8e3cd8541ff2a70aca08949232f75cef1a56151852a06b1a2417e4bdb898c38fed7e4d1731ded1cfb9c58da693abe140 languageName: node linkType: hard @@ -4187,22 +4187,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.3.1": - version: 7.3.1 - resolution: "@typescript-eslint/scope-manager@npm:7.3.1" +"@typescript-eslint/scope-manager@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/scope-manager@npm:7.4.0" dependencies: - "@typescript-eslint/types": 7.3.1 - "@typescript-eslint/visitor-keys": 7.3.1 - checksum: 94f290552d8341753a000787230118bca9b5195a0302560dca21628055c565bbc3cf9c4f28543ef5825d8ed0e05639f44c11ebc43060c9014a19b4865210ee2b + "@typescript-eslint/types": 7.4.0 + "@typescript-eslint/visitor-keys": 7.4.0 + checksum: 6d8677ffed151b6d7b5881a105586d29e2c56c757435f625ca3ba22e494e48328794de8b9df1f06023b1fac60da7ed49f2bfab8854b07fdcceab0f413d28725a languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.3.1": - version: 7.3.1 - resolution: "@typescript-eslint/type-utils@npm:7.3.1" +"@typescript-eslint/type-utils@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/type-utils@npm:7.4.0" dependencies: - "@typescript-eslint/typescript-estree": 7.3.1 - "@typescript-eslint/utils": 7.3.1 + "@typescript-eslint/typescript-estree": 7.4.0 + "@typescript-eslint/utils": 7.4.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4210,7 +4210,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: e8d65e636724a9c217a97c457445d981166e18a7192fe145e4f62b88788815a516522967d765eabb5126bfb0c4ff5ee17d83264dd1bf1d5390f6abceba058eb9 + checksum: 5906909843095686b6cdfd14935033dd6ddbabd1f695fbc1b9ab475472cdc7a14010900189cdd2feae468c0df2f4981c5adcebd115c317a79fd6c665ff40d085 languageName: node linkType: hard @@ -4228,10 +4228,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.3.1": - version: 7.3.1 - resolution: "@typescript-eslint/types@npm:7.3.1" - checksum: b0d929da57aeaf5f7f9e4c28c7054f1510b029c821f8118d8ac225ce7e0ce77f8f422b6d8cd9c3a198cb79b97853b47f90a5b4702e7dc960e14c36881cac2adb +"@typescript-eslint/types@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/types@npm:7.4.0" + checksum: 0be366b4da417b076af456db2b3ceb136c77ee1da293463b98d1897c804db5b81849337eb566bbddadc5171d3bfb48e687fd8db8a63c2eac0f4c52c3f9593b12 languageName: node linkType: hard @@ -4253,12 +4253,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.3.1": - version: 7.3.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.3.1" +"@typescript-eslint/typescript-estree@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.4.0" dependencies: - "@typescript-eslint/types": 7.3.1 - "@typescript-eslint/visitor-keys": 7.3.1 + "@typescript-eslint/types": 7.4.0 + "@typescript-eslint/visitor-keys": 7.4.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4268,7 +4268,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: c2df1e09aad16deec30b8d376c93d4e4804fcd1445b7b822cba30d899165ffc681f0040e55528824fb0d36686514605a434b3c1b991860c55a12c9c8b866e27a + checksum: af8e487004b0a22ac2b494a2ab0c84ba68c188883722ca5d297ac0dcc3719b2d7d12e05cf0038547244f285c6a63a2a6cd5a6f5879109e8e86f8ea1dca0abe9d languageName: node linkType: hard @@ -4290,20 +4290,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.3.1": - version: 7.3.1 - resolution: "@typescript-eslint/utils@npm:7.3.1" +"@typescript-eslint/utils@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/utils@npm:7.4.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.3.1 - "@typescript-eslint/types": 7.3.1 - "@typescript-eslint/typescript-estree": 7.3.1 + "@typescript-eslint/scope-manager": 7.4.0 + "@typescript-eslint/types": 7.4.0 + "@typescript-eslint/typescript-estree": 7.4.0 semver: ^7.5.4 peerDependencies: eslint: ^8.56.0 - checksum: 1e568169fb54211f3962e1f7b945f1a65dfe0ab61839aeeee07fb091523757e54d60c95c47da1ba5cec2c2017982dd5eb1c5fd3d8743f3dd90faefbf04863ef3 + checksum: 9f2c83f113fe49b7179a72c36f585ae6654a3a8c7596809b2c867b8febf2dbfea66de771f820a1dc43c0aab0acb8c7330bd6ed48ece1a4d478cf8b5b3bb62d77 languageName: node linkType: hard @@ -4345,13 +4345,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.3.1": - version: 7.3.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.3.1" +"@typescript-eslint/visitor-keys@npm:7.4.0": + version: 7.4.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.4.0" dependencies: - "@typescript-eslint/types": 7.3.1 + "@typescript-eslint/types": 7.4.0 eslint-visitor-keys: ^3.4.1 - checksum: b2d20b33dea6cee2c078c23fb4075d68a1501f077df3aa36832cee3a97dcbb2906ad5e8b8f9da351ff3e65249074155446c7b91d7abdbb10be7082fb41e835d1 + checksum: 9baa497eefbe40a4f7415be26092c318415fd8ccc1910a0cd79234561107b625b63f3ca250eda9f0060e1181fd8155337ec0caee811b301e774e468f5279d0ad languageName: node linkType: hard From 8034eb3853b672210af51667cdc79a10b99bf9be Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Mar 2024 01:51:09 +0000 Subject: [PATCH 113/471] chore(deps): update dependency @storybook/addon-actions to v8.0.5 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index a7bce2def..cd48e473f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3415,16 +3415,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.4 - resolution: "@storybook/addon-actions@npm:8.0.4" + version: 8.0.5 + resolution: "@storybook/addon-actions@npm:8.0.5" dependencies: - "@storybook/core-events": 8.0.4 + "@storybook/core-events": 8.0.5 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: d6e7c2a7101ee53ef9e3747d78b872af41ba7e69bba030cea7de926ecfbcff68907370a280859511771a44004bc9a449aba9a264a0204565e0ffae6bcb087465 + checksum: d82bbdb6c0c443095ee88176bf7dd512e41d0df94909c5fd77166dec66f783bf053a444c336f12db9f0c5680128eaba50957d89806569657bf46a899210924a0 languageName: node linkType: hard @@ -3460,12 +3460,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.4": - version: 8.0.4 - resolution: "@storybook/core-events@npm:8.0.4" +"@storybook/core-events@npm:8.0.5": + version: 8.0.5 + resolution: "@storybook/core-events@npm:8.0.5" dependencies: ts-dedent: ^2.0.0 - checksum: c61eef4b9390c6f41b9fd4ae6b988d7750c8e314b7bea5c13fa95d068ac8c84d37b48420ecf95b6a98afb2709011dc9a34ad3f822ca223158211237ddbab075d + checksum: d21293b760f16ce63ccbf6829213de5b7cdd54cb495a23a0311ae2edd388336e0fc6752f92f6c79115435a156258516d0ff5cd658189ca18a2b2cdd3382684c1 languageName: node linkType: hard From 710ec559aa3531c8b8a7172320d33f8191b3ee54 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 29 Mar 2024 10:14:06 -0400 Subject: [PATCH 114/471] fix --- .../src/services/xml-schema-document.service.test.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index 4264b763e..de95a3aad 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -14,9 +14,11 @@ describe('XmlSchemaDocumentService', () => { expect(fields.length > 0).toBeTruthy(); }); - it('should populate XML Schema Document', () => { - const docs: IDocument[] = []; - XmlSchemaDocumentService.createXmlSchemaDocument(docs, DocumentType.SOURCE_BODY, 'ShipOrder.xsd', orderXsd); - expect(docs.length).toEqual(1); + it('should create XML Schema Document', () => { + const doc = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.SOURCE_BODY, 'ShipOrder.xsd', orderXsd); + expect(doc.documentType).toEqual(DocumentType.SOURCE_BODY); + expect(doc.documentId).toEqual('ShipOrder.xsd'); + expect(doc.name).toEqual('ShipOrder.xsd'); + expect(doc.fields.length).toEqual(1); }); }); From 6522836320844e7d5b0f6d7fb87b79f7ef793cbb Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 29 Mar 2024 10:17:15 -0400 Subject: [PATCH 115/471] fix --- packages/ui/src/services/xml-schema-document.service.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index de95a3aad..9b31f56c2 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -1,6 +1,6 @@ import { XmlSchemaDocumentService, XmlSchemaField } from './xml-schema-document.service'; import * as fs from 'fs'; -import { DocumentType, IDocument } from '../models'; +import { DocumentType } from '../models'; describe('XmlSchemaDocumentService', () => { const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); From d1aa4a75eec67a6527365524d064acdc4d6d42c1 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Sat, 30 Mar 2024 10:09:07 -0400 Subject: [PATCH 116/471] fix: Highlight draggable and droppable Fixes: #53 --- .../src/components/document/DnDContainer.tsx | 45 ++++++++ .../ui/src/components/document/Document.tsx | 21 +++- .../src/components/document/DocumentField.tsx | 105 ++++++------------ .../ui/src/components/document/Parameters.tsx | 14 ++- .../ui/src/components/mapping/MappingLink.tsx | 15 ++- .../ui/src/layout/views/SourceTargetView.tsx | 3 +- packages/ui/src/models/document.ts | 1 + 7 files changed, 124 insertions(+), 80 deletions(-) create mode 100644 packages/ui/src/components/document/DnDContainer.tsx diff --git a/packages/ui/src/components/document/DnDContainer.tsx b/packages/ui/src/components/document/DnDContainer.tsx new file mode 100644 index 000000000..30cad9671 --- /dev/null +++ b/packages/ui/src/components/document/DnDContainer.tsx @@ -0,0 +1,45 @@ +import { CSSProperties, FunctionComponent, PropsWithChildren } from 'react'; +import { IField } from '../../models'; +import { useDraggable, useDroppable } from '@dnd-kit/core'; + +interface DnDContainerProps extends PropsWithChildren { + dndId: string; + field: IField; +} + +export const DnDContainer: FunctionComponent = ({ children, dndId, field }) => { + const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ + id: 'droppable-' + dndId, + data: field, + }); + const { + attributes, + listeners, + setNodeRef: setDraggableNodeRef, + transform, + } = useDraggable({ + id: 'draggable-' + dndId, + data: field, + }); + + const droppableStyle = { + color: isOver ? 'var(--pf-v5-global--primary-color--200)' : undefined, + fontWeight: isOver ? 'bold' : undefined, + backgroundColor: isOver ? 'var(--pf-v5-global--palette--blue-50)' : undefined, + } as CSSProperties; + const draggableStyle = transform + ? ({ + fontWeight: 'bold', + color: 'var(--pf-v5-global--primary-color--100)', + backgroundColor: 'var(--pf-v5-global--palette--black-200)', + } as CSSProperties) + : undefined; + + return ( +
    +
    + {children} +
    +
    + ); +}; diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx index 0e942510e..069589535 100644 --- a/packages/ui/src/components/document/Document.tsx +++ b/packages/ui/src/components/document/Document.tsx @@ -8,13 +8,17 @@ import { CardExpandableContent, CardHeader, CardTitle, + Split, + SplitItem, } from '@patternfly/react-core'; +import { GripVerticalIcon } from '@patternfly/react-icons'; import { IDocument, DocumentType, PrimitiveDocument } from '../../models'; import { DocumentField } from './DocumentField'; import { useCanvas } from '../../hooks/useCanvas'; import { AttachSchemaButton } from './AttachSchemaButton'; import { DetachSchemaButton } from './DetachSchemaButton'; import { DeleteParameterButton } from './DeleteParameterButton'; +import { DnDContainer } from './DnDContainer'; export type DocumentProps = { documentType: DocumentType; @@ -69,14 +73,25 @@ export const Document: FunctionComponent = ({ documentType, model ); }, [documentType, model]); + const dndId = useMemo(() => model.documentId + '-' + Math.floor(Math.random() * 10000), [model.documentId]); + return model instanceof PrimitiveDocument ? ( - + - {model.name} + + + + + + + {model.name} + + + ) : ( - + {model.name} diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index f05ca27eb..b0832229f 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -1,9 +1,10 @@ -import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; +import { AccordionContent, AccordionItem, AccordionToggle, Split, SplitItem } from '@patternfly/react-core'; import { forwardRef, FunctionComponent, useMemo, useRef, useState } from 'react'; -import { useDraggable, useDroppable } from '@dnd-kit/core'; import { IField } from '../../models'; import { useCanvas } from '../../hooks/useCanvas'; import { DocumentType } from '../../models/document'; +import { DnDContainer } from './DnDContainer'; +import { GripVerticalIcon } from '@patternfly/react-icons'; type DocumentFieldProps = { documentType: DocumentType; @@ -24,74 +25,40 @@ const DocumentFieldImpl = forwardRef( const [isExpanded, setIsExpanded] = useState(true); const dndId = useMemo(() => field.name + '-' + Math.floor(Math.random() * 10000), [field.name]); - const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ - id: 'droppable-' + dndId, - data: field, - }); - const { - attributes, - listeners, - setNodeRef: setDraggableNodeRef, - transform, - } = useDraggable({ - id: 'draggable-' + dndId, - data: field, - }); - - const droppableStyle = { - borderWidth: isOver ? 1 : undefined, - borderColor: isOver ? 'blue' : undefined, - color: isOver ? 'blue' : undefined, - }; - const draggableStyle = transform - ? { - borderWidth: 1, - borderColor: 'blue', - } - : undefined; - - return ( + return !field.fields || field.fields.length === 0 ? ( +
    + + + + + + + + {field.expression} + + + + +
    + ) : (
    - - {!field.fields || field.fields.length === 0 ? ( -
    -
    - {field.expression} -
    -
    - ) : ( - <> -
    -
    - setIsExpanded(!isExpanded)} - isExpanded={isExpanded} - id={field.expression} - > - {field.expression} - -
    -
    - - {field.fields.map((f: IField) => ( - - ))} - - - )} -
    + + + setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.expression}> + + + + + {field.expression} + + + + {field.fields.map((f: IField) => ( + + ))} + + +
    ); }, diff --git a/packages/ui/src/components/document/Parameters.tsx b/packages/ui/src/components/document/Parameters.tsx index 6afe834db..92cfc149c 100644 --- a/packages/ui/src/components/document/Parameters.tsx +++ b/packages/ui/src/components/document/Parameters.tsx @@ -17,6 +17,7 @@ import { useDataMapper, useToggle } from '../../hooks'; import { CheckIcon, PlusIcon, TimesIcon } from '@patternfly/react-icons'; import { DocumentType, PrimitiveDocument } from '../../models/document'; import { Document } from './Document'; +import { useCanvas } from '../../hooks/useCanvas'; type AddNewParameterPlaceholderProps = { onComplete: () => void; @@ -88,6 +89,7 @@ const AddNewParameterPlaceholder: FunctionComponent { const { sourceParameterMap } = useDataMapper(); + const { reloadFieldReferences } = useCanvas(); const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(false); const { state: isAddingNewParameter, @@ -100,6 +102,11 @@ export const Parameters: FunctionComponent = () => { toggleOnAddNewParameter(); }, [toggleOnAddNewParameter]); + const handleOnExpand = useCallback(() => { + setSourceParametersExpanded(!isSourceParametersExpanded); + reloadFieldReferences(); + }, [isSourceParametersExpanded, reloadFieldReferences]); + const parametersHeaderActions = useMemo(() => { return ( @@ -120,11 +127,8 @@ export const Parameters: FunctionComponent = () => { }, [handleAddNewParameter]); return ( - - setSourceParametersExpanded(!isSourceParametersExpanded)} - actions={{ actions: parametersHeaderActions, hasNoOffset: true }} - > + + Parameters diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index 4433d1c5e..2ba777e14 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -46,7 +46,11 @@ const MappingLink: FunctionComponent = ({ x1, y1, x2, y2, mapping }) ); }; -export const MappingLinksContainer = () => { +type MappingLinksContainerProps = { + lineRefreshToken: string; +}; + +export const MappingLinksContainer: FunctionComponent = ({ lineRefreshToken }) => { const { mappings, selectedMapping } = useDataMapper(); const [linePropsList, setLinePropsList] = useState([]); const { getFieldReference } = useCanvas(); @@ -110,7 +114,14 @@ export const MappingLinksContainer = () => { return acc; }, [] as LineProps[]); setLinePropsList(answer); - }, [getClosestExpandedPath, getFieldReference, mappings, populateCoordFromFieldRef, selectedMapping]); + }, [ + lineRefreshToken, + getClosestExpandedPath, + getFieldReference, + mappings, + populateCoordFromFieldRef, + selectedMapping, + ]); return ( { const { sourceBodyDocument, targetBodyDocument } = useDataMapper(); + const lineRefreshToken = Math.floor(Math.random() * 1000).toString(); return ( - + diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index be5511b54..f9514f73e 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -62,6 +62,7 @@ export class PrimitiveDocument extends BaseDocument implements IField { ) { super(); this.name = this.documentId; + this.expression = this.documentId; } } From 6195db62e1b60a3bcb4eda4156da91b28af4d08f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 00:43:45 +0000 Subject: [PATCH 117/471] chore(deps): update dependency vite to v5.2.7 --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index cd48e473f..43e9680d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11127,7 +11127,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.36, postcss@npm:^8.4.38": +"postcss@npm:^8.4.38": version: 8.4.38 resolution: "postcss@npm:8.4.38" dependencies: @@ -13499,12 +13499,12 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.6 - resolution: "vite@npm:5.2.6" + version: 5.2.7 + resolution: "vite@npm:5.2.7" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 - postcss: ^8.4.36 + postcss: ^8.4.38 rollup: ^4.13.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -13534,7 +13534,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 7dc8f5a06601a0183b53a389469e7d898c1f187a567b5af2543a02e08fe5778f87da6e26b71b5096462c81e922f04c593b447307bcd38ee7fe250c0bb18fe88f + checksum: 66b4243f0ce147a1871e9bea772e5bd4842410ec9f3aa71d21e9427836f79a15b00f5cb7f023003f169249bc6ead20f68ee31ce6a326e091670ffd3b5441d131 languageName: node linkType: hard From 9b1b2ba25186ea48b6cc8d7306f74b1d7d82612d Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Sat, 30 Mar 2024 22:18:32 -0400 Subject: [PATCH 118/471] fix: Mapping lines disappear by Document collapse/expand Fixes: #51 --- .../ui/src/components/debug/CanvasMonitor.tsx | 6 +- .../ui/src/components/document/Document.tsx | 168 ++++++++++-------- .../src/components/document/DocumentField.tsx | 68 ++++--- .../{DnDContainer.tsx => NodeContainer.tsx} | 24 ++- .../ui/src/components/document/Parameters.tsx | 20 ++- .../ui/src/components/mapping/MappingLink.tsx | 28 ++- packages/ui/src/providers/CanvasProvider.tsx | 44 ++--- 7 files changed, 208 insertions(+), 150 deletions(-) rename packages/ui/src/components/document/{DnDContainer.tsx => NodeContainer.tsx} (64%) diff --git a/packages/ui/src/components/debug/CanvasMonitor.tsx b/packages/ui/src/components/debug/CanvasMonitor.tsx index 54249cde8..25fa5047b 100644 --- a/packages/ui/src/components/debug/CanvasMonitor.tsx +++ b/packages/ui/src/components/debug/CanvasMonitor.tsx @@ -25,16 +25,16 @@ export const CanvasMonitor: FunctionComponent = () => { }, }); - const { getAllFieldPaths, reloadFieldReferences } = useCanvas(); + const { getAllNodePaths, reloadNodeReferences } = useCanvas(); useEffect(() => { console.log( 'Field References: [' + - getAllFieldPaths() + getAllNodePaths() .map((p) => p + '\n') .toString() + ']', ); - }, [getAllFieldPaths, reloadFieldReferences]); + }, [getAllNodePaths, reloadNodeReferences]); return <>; }; diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx index 069589535..c465eb387 100644 --- a/packages/ui/src/components/document/Document.tsx +++ b/packages/ui/src/components/document/Document.tsx @@ -1,4 +1,4 @@ -import { FunctionComponent, useCallback, useMemo, useState } from 'react'; +import { forwardRef, FunctionComponent, useCallback, useMemo, useRef, useState } from 'react'; import { Accordion, ActionList, @@ -18,92 +18,120 @@ import { useCanvas } from '../../hooks/useCanvas'; import { AttachSchemaButton } from './AttachSchemaButton'; import { DetachSchemaButton } from './DetachSchemaButton'; import { DeleteParameterButton } from './DeleteParameterButton'; -import { DnDContainer } from './DnDContainer'; +import { NodeContainer } from './NodeContainer'; export type DocumentProps = { documentType: DocumentType; model: IDocument; }; -export const Document: FunctionComponent = ({ documentType, model }) => { - const { reloadFieldReferences } = useCanvas(); - const [isExpanded, setExpanded] = useState(true); - const handleOnToggle = useCallback(() => { - reloadFieldReferences(); - }, [reloadFieldReferences]); - const handleOnExpand = useCallback(() => { - setExpanded(!isExpanded); - reloadFieldReferences(); - }, [isExpanded, reloadFieldReferences]); +type DocumentImplProps = DocumentProps & { + nodeId: string; +}; - const primitiveDocumentHeaderActiopns = useMemo(() => { - return ( - - - - - {documentType === DocumentType.PARAM && ( +const PrimitiveDocumentImpl = forwardRef( + ({ documentType, model, nodeId }, forwardedRef) => { + const headerActiopns = useMemo(() => { + return ( + - + - )} - - ); - }, [documentType, model.documentId]); + {documentType === DocumentType.PARAM && ( + + + + )} + + ); + }, [documentType, model.documentId]); - const structuredDocumentHeaderActions = useMemo(() => { return ( - - - - - - - - {documentType === DocumentType.PARAM && ( + + + + + + + + + {model.name} + + + + + + ); + }, +); + +const StructuredDocumentImpl = forwardRef( + ({ documentType, model, nodeId }, forwardedRef) => { + const { reloadNodeReferences } = useCanvas(); + const [isExpanded, setExpanded] = useState(true); + + const handleOnToggle = useCallback(() => { + reloadNodeReferences(); + }, [reloadNodeReferences]); + const handleOnExpand = useCallback(() => { + setExpanded(!isExpanded); + reloadNodeReferences(); + }, [isExpanded, reloadNodeReferences]); + + const headerActions = useMemo(() => { + return ( + + + + - + - )} - + {documentType === DocumentType.PARAM && ( + + + + )} + + ); + }, [documentType, model]); + + return ( + + + + {model.name} + + + + + + {model.fields.map((field) => ( + + ))} + + + + ); - }, [documentType, model]); + }, +); + +export const Document: FunctionComponent = ({ documentType, model }) => { + const { getNodeReference, setNodeReference } = useCanvas(); + const ref = useRef(null); + const fieldRefId = model.fieldIdentifier.toString(); + getNodeReference(fieldRefId) !== ref && setNodeReference(fieldRefId, ref); - const dndId = useMemo(() => model.documentId + '-' + Math.floor(Math.random() * 10000), [model.documentId]); + const nodeId = useMemo(() => model.documentId + '-' + Math.floor(Math.random() * 10000), [model.documentId]); return model instanceof PrimitiveDocument ? ( - - - - - - - - - {model.name} - - - - - + ) : ( - - - {model.name} - - - - - {model.fields.map((field) => ( - - ))} - - - - + ); }; diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index b0832229f..438a6de65 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -3,7 +3,7 @@ import { forwardRef, FunctionComponent, useMemo, useRef, useState } from 'react' import { IField } from '../../models'; import { useCanvas } from '../../hooks/useCanvas'; import { DocumentType } from '../../models/document'; -import { DnDContainer } from './DnDContainer'; +import { NodeContainer } from './NodeContainer'; import { GripVerticalIcon } from '@patternfly/react-icons'; type DocumentFieldProps = { @@ -13,10 +13,10 @@ type DocumentFieldProps = { }; export const DocumentField: FunctionComponent = ({ documentType, field, onToggle }) => { - const { getFieldReference, setFieldReference } = useCanvas(); + const { getNodeReference, setNodeReference } = useCanvas(); const ref = useRef(null); const fieldRefId = field.fieldIdentifier.toString(); - getFieldReference(fieldRefId) !== ref && setFieldReference(fieldRefId, ref); + getNodeReference(fieldRefId) !== ref && setNodeReference(fieldRefId, ref); return ; }; @@ -26,40 +26,36 @@ const DocumentFieldImpl = forwardRef( const dndId = useMemo(() => field.name + '-' + Math.floor(Math.random() * 10000), [field.name]); return !field.fields || field.fields.length === 0 ? ( -
    - - - - - - - - {field.expression} - - - - -
    + + + + + + + + {field.expression} + + + + ) : ( -
    - - - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.expression}> - - - - - {field.expression} - - - - {field.fields.map((f: IField) => ( - - ))} - - - -
    + + + setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.expression}> + + + + + {field.expression} + + + + {field.fields.map((f: IField) => ( + + ))} + + + ); }, ); diff --git a/packages/ui/src/components/document/DnDContainer.tsx b/packages/ui/src/components/document/NodeContainer.tsx similarity index 64% rename from packages/ui/src/components/document/DnDContainer.tsx rename to packages/ui/src/components/document/NodeContainer.tsx index 30cad9671..ac5864b90 100644 --- a/packages/ui/src/components/document/DnDContainer.tsx +++ b/packages/ui/src/components/document/NodeContainer.tsx @@ -1,13 +1,13 @@ -import { CSSProperties, FunctionComponent, PropsWithChildren } from 'react'; +import { CSSProperties, forwardRef, FunctionComponent, PropsWithChildren } from 'react'; import { IField } from '../../models'; import { useDraggable, useDroppable } from '@dnd-kit/core'; -interface DnDContainerProps extends PropsWithChildren { - dndId: string; - field: IField; +interface NodeContainerProps extends PropsWithChildren { + dndId?: string; + field?: IField; } -export const DnDContainer: FunctionComponent = ({ children, dndId, field }) => { +const DnDContainer: FunctionComponent = ({ dndId, field, children }) => { const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ id: 'droppable-' + dndId, data: field, @@ -43,3 +43,17 @@ export const DnDContainer: FunctionComponent = ({ children, d
    ); }; + +export const NodeContainer = forwardRef( + ({ children, dndId, field }, forwardedRef) => { + return dndId && field ? ( +
    + + {children} + +
    + ) : ( +
    {children}
    + ); + }, +); diff --git a/packages/ui/src/components/document/Parameters.tsx b/packages/ui/src/components/document/Parameters.tsx index 92cfc149c..b4de37266 100644 --- a/packages/ui/src/components/document/Parameters.tsx +++ b/packages/ui/src/components/document/Parameters.tsx @@ -18,6 +18,7 @@ import { CheckIcon, PlusIcon, TimesIcon } from '@patternfly/react-icons'; import { DocumentType, PrimitiveDocument } from '../../models/document'; import { Document } from './Document'; import { useCanvas } from '../../hooks/useCanvas'; +import { NodeContainer } from './NodeContainer'; type AddNewParameterPlaceholderProps = { onComplete: () => void; @@ -89,7 +90,7 @@ const AddNewParameterPlaceholder: FunctionComponent { const { sourceParameterMap } = useDataMapper(); - const { reloadFieldReferences } = useCanvas(); + const { reloadNodeReferences } = useCanvas(); const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(false); const { state: isAddingNewParameter, @@ -97,6 +98,11 @@ export const Parameters: FunctionComponent = () => { toggleOn: toggleOnAddNewParameter, } = useToggle(false); + const { getNodeReference, setNodeReference } = useCanvas(); + const ref = useRef(null); + const nodeRefId = 'param'; + getNodeReference(nodeRefId) !== ref && setNodeReference(nodeRefId, ref); + const handleAddNewParameter = useCallback(() => { setSourceParametersExpanded(true); toggleOnAddNewParameter(); @@ -104,8 +110,8 @@ export const Parameters: FunctionComponent = () => { const handleOnExpand = useCallback(() => { setSourceParametersExpanded(!isSourceParametersExpanded); - reloadFieldReferences(); - }, [isSourceParametersExpanded, reloadFieldReferences]); + reloadNodeReferences(); + }, [isSourceParametersExpanded, reloadNodeReferences]); const parametersHeaderActions = useMemo(() => { return ( @@ -128,9 +134,11 @@ export const Parameters: FunctionComponent = () => { return ( - - Parameters - + + + Parameters + + diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index 2ba777e14..fcc94c260 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -53,7 +53,7 @@ type MappingLinksContainerProps = { export const MappingLinksContainer: FunctionComponent = ({ lineRefreshToken }) => { const { mappings, selectedMapping } = useDataMapper(); const [linePropsList, setLinePropsList] = useState([]); - const { getFieldReference } = useCanvas(); + const { getNodeReference } = useCanvas(); const populateCoordFromFieldRef = useCallback( ( @@ -81,19 +81,31 @@ export const MappingLinksContainer: FunctionComponent { + if (path.endsWith('://')) return path.substring(0, path.indexOf(':')); + const lastSeparatorIndex = path.lastIndexOf('/'); - return lastSeparatorIndex !== -1 ? path.substring(0, lastSeparatorIndex) : null; + const endIndex = + lastSeparatorIndex !== -1 && path.charAt(lastSeparatorIndex - 1) === '/' + ? lastSeparatorIndex + 1 + : lastSeparatorIndex; + return endIndex !== -1 ? path.substring(0, endIndex) : null; }, []); const getClosestExpandedPath = useCallback( (path: string) => { let tracedPath: string | null = path; - while (!!tracedPath && getFieldReference(tracedPath)?.current?.getClientRects().length === 0) { - tracedPath = getParentPath(tracedPath); + while ( + !!tracedPath && + (getNodeReference(tracedPath)?.current == null || + getNodeReference(tracedPath)?.current?.getClientRects().length === 0) + ) { + const parentPath = getParentPath(tracedPath); + if (parentPath === tracedPath) break; + tracedPath = parentPath; } return tracedPath; }, - [getFieldReference, getParentPath], + [getNodeReference, getParentPath], ); useEffect(() => { @@ -103,8 +115,8 @@ export const MappingLinksContainer: FunctionComponent) => void; - getFieldReference: (path: string) => MutableRefObject | null; - reloadFieldReferences: () => void; - getAllFieldPaths: () => string[]; + setNodeReference: (path: string, ref: MutableRefObject) => void; + getNodeReference: (path: string) => MutableRefObject | null; + reloadNodeReferences: () => void; + getAllNodePaths: () => string[]; } export const CanvasContext = createContext(undefined); @@ -51,7 +51,7 @@ export const CanvasProvider: FunctionComponent = (props) => { const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); const [activeData, setActiveData] = useState | null>(null); - const [fieldReferenceMap, setFieldReferenceMap] = useState>>( + const [nodeReferenceMap, setNodeReferenceMap] = useState>>( new Map>(), ); @@ -74,36 +74,36 @@ export const CanvasProvider: FunctionComponent = (props) => { [mappings, refreshMappings], ); - const setFieldReference = useCallback( + const setNodeReference = useCallback( (path: string, ref: MutableRefObject) => { - fieldReferenceMap.set(path, ref); + nodeReferenceMap.set(path, ref); }, - [fieldReferenceMap], + [nodeReferenceMap], ); - const getFieldReference = useCallback( + const getNodeReference = useCallback( (path: string) => { - return fieldReferenceMap.get(path) || null; + return nodeReferenceMap.get(path) || null; }, - [fieldReferenceMap], + [nodeReferenceMap], ); - const reloadFieldReferences = useCallback(() => { - setFieldReferenceMap(new Map(fieldReferenceMap)); - }, [fieldReferenceMap]); + const reloadNodeReferences = useCallback(() => { + setNodeReferenceMap(new Map(nodeReferenceMap)); + }, [nodeReferenceMap]); - const getAllFieldPaths = useCallback(() => { - return Array.from(fieldReferenceMap.keys()); - }, [fieldReferenceMap]); + const getAllNodePaths = useCallback(() => { + return Array.from(nodeReferenceMap.keys()); + }, [nodeReferenceMap]); const value: ICanvasContext = useMemo(() => { return { - setFieldReference, - getFieldReference, - reloadFieldReferences, - getAllFieldPaths, + setNodeReference, + getNodeReference, + reloadNodeReferences, + getAllNodePaths, }; - }, [setFieldReference, getFieldReference, reloadFieldReferences, getAllFieldPaths]); + }, [setNodeReference, getNodeReference, reloadNodeReferences, getAllNodePaths]); return ( From 7f6e04e2bee84d9ea5978dbae53e02bcd0ad6fb9 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 1 Apr 2024 11:53:44 -0400 Subject: [PATCH 119/471] feat: Support xsl:param Fixes: #101 The main part was implemented in #52. This supplements to support primitive source value and primitive target body. --- .../mapping-serializer.service.test.ts | 22 ++++++++++++++++++- .../services/mapping-serializer.service.ts | 17 +++++++++----- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index 242de1afe..2b2125868 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -1,5 +1,5 @@ import { MappingSerializerService, NS_XSL } from './mapping-serializer.service'; -import { IDocument, IField, IMapping } from '../models'; +import { IDocument, IField, IMapping, PrimitiveDocument } from '../models'; import { DocumentType } from '../models/document'; import * as fs from 'fs'; import { XmlSchemaDocumentService } from './xml-schema-document.service'; @@ -11,8 +11,10 @@ const sourceParamDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); sourceParamDoc.documentType = DocumentType.PARAM; sourceParamDoc.name = 'sourceParam1'; sourceParamDoc.documentId = 'sourceParam1'; +const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); const targetDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); targetDoc.documentType = DocumentType.TARGET_BODY; +const targetPrimitiveDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, 'primitiveTargetBody'); const domParser = new DOMParser(); const xsltProcessor = new XSLTProcessor(); @@ -210,5 +212,23 @@ describe('MappingSerializerService', () => { const notInSchema = item.getElementsByTagName('NotInSchema')[0]; expect(notInSchema).toBeTruthy(); }); + + it('should serialize primitive parameter to primitive target body mapping', () => { + const serialized = MappingSerializerService.serialize([ + { + sourceFields: [sourcePrimitiveParamDoc as IField], + targetFields: [targetPrimitiveDoc as IField], + }, + ] as IMapping[]); + const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); + const xslParam = xsltDomDocument + .evaluate('/xsl:stylesheet/xsl:param', xsltDomDocument, null, XPathResult.ANY_TYPE) + .iterateNext() as Element; + expect(xslParam.getAttribute('name')).toEqual('primitive'); + const xslValueOf = xsltDomDocument + .evaluate('/xsl:stylesheet/xsl:template/xsl:value-of', xsltDomDocument, null, XPathResult.ANY_TYPE) + .iterateNext() as Element; + expect(xslValueOf.getAttribute('select')).toEqual('$primitive'); + }); }); }); diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index c518df443..f2bd00bf8 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -1,4 +1,4 @@ -import { DocumentType, IField, IMapping } from '../models'; +import { DocumentType, IField, IMapping, PrimitiveDocument } from '../models'; import xmlFormat from 'xml-formatter'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; @@ -32,11 +32,14 @@ export class MappingSerializerService { // Note that `createNSResolver()` returns null with jsdom. const template = xsltDocument .evaluate(`/${prefix}:stylesheet/${prefix}:template[@match='/']`, xsltDocument, nsResolver, XPathResult.ANY_TYPE) - .iterateNext(); + .iterateNext() as Element; if (!template || template.nodeType !== Node.ELEMENT_NODE) { throw Error('No root template in the XSLT document'); } - const parent = MappingSerializerService.getOrCreateParent(template as Element, target); + const parent = + target instanceof PrimitiveDocument + ? template + : MappingSerializerService.getOrCreateParent(template as Element, target); MappingSerializerService.populateSource(parent, source, target); } @@ -72,7 +75,7 @@ export class MappingSerializerService { static getFieldStack(field: IField, includeItself: boolean = false) { const fieldStack: IField[] = []; if (includeItself) fieldStack.push(field); - for (let next = field.parent; 'parent' in next; next = (next as IField).parent) { + for (let next = field.parent; 'parent' in next && next !== next.parent; next = (next as IField).parent) { fieldStack.push(next); } return fieldStack; @@ -96,6 +99,10 @@ export class MappingSerializerService { const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); valueOf.setAttribute('select', sourceXPath); xslAttribute.appendChild(valueOf); + } else if (target instanceof PrimitiveDocument) { + const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); + valueOf.setAttribute('select', sourceXPath); + parent.appendChild(valueOf); } else if (target.fields.length > 0) { const copyOf = xsltDocument.createElementNS(NS_XSL, 'copy-of'); copyOf.setAttribute('select', sourceXPath); @@ -147,7 +154,7 @@ export class MappingSerializerService { } const paramPrefix = field.ownerDocument.documentType === DocumentType.PARAM ? '$' + field.ownerDocument.documentId : ''; - return paramPrefix + '/' + pathStack.join('/'); + return field.ownerDocument instanceof PrimitiveDocument ? paramPrefix : paramPrefix + '/' + pathStack.join('/'); } static getOrCreateNSPrefix(xsltDocument: Document, namespace: string | null) { From b1348f57cb08ed73b009f0101cf3cd7485318f7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 31 Mar 2024 02:18:56 +0000 Subject: [PATCH 120/471] chore(deps): update dependency @types/node to v20.12.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 43e9680d6..f82262f55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4009,11 +4009,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.11.30 - resolution: "@types/node@npm:20.11.30" + version: 20.12.2 + resolution: "@types/node@npm:20.12.2" dependencies: undici-types: ~5.26.4 - checksum: 7597767aa3e44b0f1bf62efa522dd17741135f283c11de6a20ead8bb7016fb4999cc30adcd8f2bb29ebb216906c92894346ccd187de170927dc1e212d2c07c81 + checksum: 3242ab04fe69ae32a2da29a7a2fce41fccb370bc1189de43d2dfbb491bd3253d3ee2070cbb5613061148e4862fdaa9cf62722c43128ce5c7d33fe83750956613 languageName: node linkType: hard From d65677ea24e20a7fcc1e46ba71fe2fedc46367a0 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 1 Apr 2024 18:52:35 -0400 Subject: [PATCH 121/471] feat: Delete Mapping Fixes: #86 --- .../mapping/DeleteMappingButton.tsx | 50 ++++++++++ packages/ui/src/layout/MainLayout.tsx | 20 +--- .../views/MappingDetailsDrawerPanel.tsx | 91 +++++++++++++++++++ .../src/layout/views/MappingDetailsView.tsx | 71 --------------- packages/ui/src/layout/views/index.ts | 2 +- 5 files changed, 145 insertions(+), 89 deletions(-) create mode 100644 packages/ui/src/components/mapping/DeleteMappingButton.tsx create mode 100644 packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx delete mode 100644 packages/ui/src/layout/views/MappingDetailsView.tsx diff --git a/packages/ui/src/components/mapping/DeleteMappingButton.tsx b/packages/ui/src/components/mapping/DeleteMappingButton.tsx new file mode 100644 index 000000000..1b64453dc --- /dev/null +++ b/packages/ui/src/components/mapping/DeleteMappingButton.tsx @@ -0,0 +1,50 @@ +import { FunctionComponent, useCallback } from 'react'; +import { IMapping } from '../../models'; +import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; +import { TrashIcon } from '@patternfly/react-icons'; +import { useDataMapper, useToggle } from '../../hooks'; + +type DeleteMappingButtonProps = { + mapping: IMapping; + onDelete: () => void; +}; + +export const DeleteMappingButton: FunctionComponent = ({ mapping, onDelete }) => { + const { mappings, refreshMappings } = useDataMapper(); + const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); + + const onConfirmDelete = useCallback(() => { + const index = mappings.indexOf(mapping); + if (index > -1) { + mappings.splice(index, 1); + refreshMappings(); + closeModal(); + onDelete(); + } + }, [closeModal, mapping, mappings, onDelete, refreshMappings]); + + return ( + <> + Delete mapping
    }> + + + + Confirm + , + , + ]} + > + Delete mapping? + + + ); +}; diff --git a/packages/ui/src/layout/MainLayout.tsx b/packages/ui/src/layout/MainLayout.tsx index e19066ca2..a4c44098e 100644 --- a/packages/ui/src/layout/MainLayout.tsx +++ b/packages/ui/src/layout/MainLayout.tsx @@ -16,19 +16,15 @@ import { FunctionComponent, memo, useContext, useMemo } from 'react'; import { Drawer, - DrawerActions, - DrawerCloseButton, DrawerContent, DrawerContentBody, - DrawerHead, - DrawerPanelContent, Masthead, MastheadContent, Page, PageSection, PageSectionVariants, } from '@patternfly/react-core'; -import { MappingDetailsView, SourceTargetView } from './views'; +import { MappingDetailsDrawerPanel, SourceTargetView } from './views'; import { DataMapperContext } from '../providers'; import { CanvasView } from '../models'; import { ContextToolbar } from './ContextToolbar'; @@ -39,7 +35,7 @@ export interface IMainLayoutProps { } export const MainLayout: FunctionComponent = memo(function MainLayout() { - const { selectedMapping, setSelectedMapping } = useDataMapper(); + const { selectedMapping } = useDataMapper(); const { activeView } = useContext(DataMapperContext)!; const currentView = useMemo(() => { @@ -59,21 +55,11 @@ export const MainLayout: FunctionComponent = memo(function Mai ); - const drawerPanelContent = ( - - Mapping Details - - setSelectedMapping(null)} /> - - - - ); - return ( - + }> {currentView} diff --git a/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx b/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx new file mode 100644 index 000000000..aaa3c887f --- /dev/null +++ b/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx @@ -0,0 +1,91 @@ +import { FunctionComponent } from 'react'; +import { useDataMapper } from '../../hooks'; +import { + Card, + CardBody, + CardTitle, + DrawerActions, + DrawerCloseButton, + DrawerHead, + DrawerPanelContent, + Stack, + StackItem, + Text, + TextContent, + TextVariants, +} from '@patternfly/react-core'; +import { IField } from '../../models'; +import { DeleteMappingButton } from '../../components/mapping/DeleteMappingButton'; + +type FieldDetailsProps = { + field: IField; +}; + +const FieldDetails: FunctionComponent = ({ field }) => { + return ( +
      +
    • name: {field.name}
    • +
    • type: {field.type}
    • +
    • path: {field.fieldIdentifier.toString()}
    • + {field.defaultValue &&
    • defaultValue: {field.defaultValue}
    • } +
    • minOccurs: {field.minOccurs}
    • +
    • maxOccurs: {field.maxOccurs}
    • +
    + ); +}; + +export const MappingDetailsDrawerPanel: FunctionComponent = () => { + const { selectedMapping, setSelectedMapping } = useDataMapper(); + + return ( + selectedMapping && ( + + + + Mapping Details + + + setSelectedMapping(null)} /> + setSelectedMapping(null)} /> + + + + + + Source + + + {selectedMapping.sourceFields.map((field) => ( + + + + ))} + + + + + + + Transformation + TODO + + + + + Target + + + {selectedMapping.targetFields.map((field) => ( + + + + ))} + + + + + + + ) + ); +}; diff --git a/packages/ui/src/layout/views/MappingDetailsView.tsx b/packages/ui/src/layout/views/MappingDetailsView.tsx deleted file mode 100644 index a9473d9f3..000000000 --- a/packages/ui/src/layout/views/MappingDetailsView.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { FunctionComponent } from 'react'; -import { useDataMapper } from '../../hooks'; -import { Card, CardBody, CardTitle, Stack, StackItem } from '@patternfly/react-core'; -import { IField } from '../../models'; - -type FieldDetailsProps = { - field: IField; -}; - -const FieldDetails: FunctionComponent = ({ field }) => { - return ( -
      -
    • name: {field.name}
    • -
    • type: {field.type}
    • -
    • path: {field.fieldIdentifier.toString()}
    • - {field.defaultValue &&
    • defaultValue: {field.defaultValue}
    • } -
    • minOccurs: {field.minOccurs}
    • -
    • maxOccurs: {field.maxOccurs}
    • -
    - ); -}; - -export const MappingDetailsView: FunctionComponent = () => { - const { selectedMapping } = useDataMapper(); - - return ( - selectedMapping && ( - - Mapping Details - - - - - Source - - - {selectedMapping.sourceFields.map((field) => ( - - - - ))} - - - - - - - Transformation - TODO - - - - - Target - - - {selectedMapping.targetFields.map((field) => ( - - - - ))} - - - - - - - - ) - ); -}; diff --git a/packages/ui/src/layout/views/index.ts b/packages/ui/src/layout/views/index.ts index a2e6c1349..fa873e5f9 100644 --- a/packages/ui/src/layout/views/index.ts +++ b/packages/ui/src/layout/views/index.ts @@ -1,2 +1,2 @@ -export * from './MappingDetailsView'; +export * from './MappingDetailsDrawerPanel'; export * from './SourceTargetView'; From 28b6e98a111c6bad179e55a0b81f0209be20436d Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 2 Apr 2024 22:49:19 -0400 Subject: [PATCH 122/471] trying to fix #113, no luck --- .../ui/src/components/mapping/MappingLink.tsx | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index fcc94c260..ed8dbf08c 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -46,11 +46,7 @@ const MappingLink: FunctionComponent = ({ x1, y1, x2, y2, mapping }) ); }; -type MappingLinksContainerProps = { - lineRefreshToken: string; -}; - -export const MappingLinksContainer: FunctionComponent = ({ lineRefreshToken }) => { +export const MappingLinksContainer: FunctionComponent = () => { const { mappings, selectedMapping } = useDataMapper(); const [linePropsList, setLinePropsList] = useState([]); const { getNodeReference } = useCanvas(); @@ -108,7 +104,7 @@ export const MappingLinksContainer: FunctionComponent { + const refreshLinks = useCallback(() => { const answer: LineProps[] = mappings.reduce((acc, mapping) => { for (const sourceField of mapping.sourceFields) { for (const targetField of mapping.targetFields) { @@ -126,14 +122,17 @@ export const MappingLinksContainer: FunctionComponent { + refreshLinks(); + window.addEventListener('resize', refreshLinks); + window.addEventListener('scroll', refreshLinks); + return () => { + window.removeEventListener('resize', refreshLinks); + window.removeEventListener('scroll', refreshLinks); + }; + }, [refreshLinks, selectedMapping]); return ( Date: Tue, 2 Apr 2024 23:00:40 -0400 Subject: [PATCH 123/471] fix --- packages/ui/src/layout/views/SourceTargetView.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx index f369d0ce5..c13e1df33 100644 --- a/packages/ui/src/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -20,11 +20,10 @@ import './SourceTargetView.scss'; export const SourceTargetView: FunctionComponent = () => { const { sourceBodyDocument, targetBodyDocument } = useDataMapper(); - const lineRefreshToken = Math.floor(Math.random() * 1000).toString(); return ( - + From d714f65bcdcef242988d7d7bde958ef2a24c6c60 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 00:23:18 +0000 Subject: [PATCH 124/471] chore(deps): update eslint to v7.5.0 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index f82262f55..1e38178a3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4135,14 +4135,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.4.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.4.0" + version: 7.5.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.5.0" dependencies: "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.4.0 - "@typescript-eslint/type-utils": 7.4.0 - "@typescript-eslint/utils": 7.4.0 - "@typescript-eslint/visitor-keys": 7.4.0 + "@typescript-eslint/scope-manager": 7.5.0 + "@typescript-eslint/type-utils": 7.5.0 + "@typescript-eslint/utils": 7.5.0 + "@typescript-eslint/visitor-keys": 7.5.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.2.4 @@ -4155,25 +4155,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 01932c762939c120e95c81937b8f39f6500336919e87166b8ce35e753fc8fff64b3f3f5b79e86b0e8f4204c883467e4b66ed5af22e34fd6e3d30bc49f8ada7e4 + checksum: 02ca180a4e46df840b84221219800cc5f6371254a37be7932a2586768925d8c8897b9eebe92d32093be254a98f10eae8b291638515edd79571826d6840044332 languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.4.0 - resolution: "@typescript-eslint/parser@npm:7.4.0" + version: 7.5.0 + resolution: "@typescript-eslint/parser@npm:7.5.0" dependencies: - "@typescript-eslint/scope-manager": 7.4.0 - "@typescript-eslint/types": 7.4.0 - "@typescript-eslint/typescript-estree": 7.4.0 - "@typescript-eslint/visitor-keys": 7.4.0 + "@typescript-eslint/scope-manager": 7.5.0 + "@typescript-eslint/types": 7.5.0 + "@typescript-eslint/typescript-estree": 7.5.0 + "@typescript-eslint/visitor-keys": 7.5.0 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: ee8dac1a5bbe8a0ccac3b95116ab5dba8e3cd8541ff2a70aca08949232f75cef1a56151852a06b1a2417e4bdb898c38fed7e4d1731ded1cfb9c58da693abe140 + checksum: c9f85ae638e27fb249e565fc299cfee456b15f6a67156f373c10fa6e310a470b5298e174ca75309789c4cf1acd1a9fd3391d5fe128208b05bac0b701d5ddf512 languageName: node linkType: hard @@ -4187,22 +4187,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/scope-manager@npm:7.4.0" +"@typescript-eslint/scope-manager@npm:7.5.0": + version: 7.5.0 + resolution: "@typescript-eslint/scope-manager@npm:7.5.0" dependencies: - "@typescript-eslint/types": 7.4.0 - "@typescript-eslint/visitor-keys": 7.4.0 - checksum: 6d8677ffed151b6d7b5881a105586d29e2c56c757435f625ca3ba22e494e48328794de8b9df1f06023b1fac60da7ed49f2bfab8854b07fdcceab0f413d28725a + "@typescript-eslint/types": 7.5.0 + "@typescript-eslint/visitor-keys": 7.5.0 + checksum: 13d858ca9f77922578b154b8568ca172dc8bd3a557ec60b4d027174675e243e34f189127ae073b052c78a96aca2cbad098318388db8723bce25d0a63dd0ba8e3 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/type-utils@npm:7.4.0" +"@typescript-eslint/type-utils@npm:7.5.0": + version: 7.5.0 + resolution: "@typescript-eslint/type-utils@npm:7.5.0" dependencies: - "@typescript-eslint/typescript-estree": 7.4.0 - "@typescript-eslint/utils": 7.4.0 + "@typescript-eslint/typescript-estree": 7.5.0 + "@typescript-eslint/utils": 7.5.0 debug: ^4.3.4 ts-api-utils: ^1.0.1 peerDependencies: @@ -4210,7 +4210,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 5906909843095686b6cdfd14935033dd6ddbabd1f695fbc1b9ab475472cdc7a14010900189cdd2feae468c0df2f4981c5adcebd115c317a79fd6c665ff40d085 + checksum: 9dce5f7f9981febd5967c3c45266787ddf5805fcef40fd2cb644503a32aee4d06de77d64dc3903e61caff3a1a76817c0b3be35703401ddf1bec84c76757f0f69 languageName: node linkType: hard @@ -4228,10 +4228,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/types@npm:7.4.0" - checksum: 0be366b4da417b076af456db2b3ceb136c77ee1da293463b98d1897c804db5b81849337eb566bbddadc5171d3bfb48e687fd8db8a63c2eac0f4c52c3f9593b12 +"@typescript-eslint/types@npm:7.5.0": + version: 7.5.0 + resolution: "@typescript-eslint/types@npm:7.5.0" + checksum: 038e5b10680fd32da8455d0590437888f57511ed8c2b984511890d6bfc0b230b269bc3de6970cc76660e8fd65657e201316bc4abd9758a2d6efb49d659dd4199 languageName: node linkType: hard @@ -4253,12 +4253,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.4.0" +"@typescript-eslint/typescript-estree@npm:7.5.0": + version: 7.5.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.5.0" dependencies: - "@typescript-eslint/types": 7.4.0 - "@typescript-eslint/visitor-keys": 7.4.0 + "@typescript-eslint/types": 7.5.0 + "@typescript-eslint/visitor-keys": 7.5.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4268,7 +4268,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: af8e487004b0a22ac2b494a2ab0c84ba68c188883722ca5d297ac0dcc3719b2d7d12e05cf0038547244f285c6a63a2a6cd5a6f5879109e8e86f8ea1dca0abe9d + checksum: ebc6838af9cf25be3c07ba4ea91bbbc2450d835eeb775139a0ed6344baf193824b0fd5319c0fe94d55c822a54670344655937894f6d0dc77bfbfcdc0493e567d languageName: node linkType: hard @@ -4290,20 +4290,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/utils@npm:7.4.0" +"@typescript-eslint/utils@npm:7.5.0": + version: 7.5.0 + resolution: "@typescript-eslint/utils@npm:7.5.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.12 "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.4.0 - "@typescript-eslint/types": 7.4.0 - "@typescript-eslint/typescript-estree": 7.4.0 + "@typescript-eslint/scope-manager": 7.5.0 + "@typescript-eslint/types": 7.5.0 + "@typescript-eslint/typescript-estree": 7.5.0 semver: ^7.5.4 peerDependencies: eslint: ^8.56.0 - checksum: 9f2c83f113fe49b7179a72c36f585ae6654a3a8c7596809b2c867b8febf2dbfea66de771f820a1dc43c0aab0acb8c7330bd6ed48ece1a4d478cf8b5b3bb62d77 + checksum: 03d5563f50da5f35c84c7ea9dd1c671afa668d614eacb3dff38a94b9f399bd4e371348f6a2feb1cbf0fcb3e3e6d0f662cef8d93a9f3a29ea9a4176aa3abc4902 languageName: node linkType: hard @@ -4345,13 +4345,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.4.0" +"@typescript-eslint/visitor-keys@npm:7.5.0": + version: 7.5.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.5.0" dependencies: - "@typescript-eslint/types": 7.4.0 + "@typescript-eslint/types": 7.5.0 eslint-visitor-keys: ^3.4.1 - checksum: 9baa497eefbe40a4f7415be26092c318415fd8ccc1910a0cd79234561107b625b63f3ca250eda9f0060e1181fd8155337ec0caee811b301e774e468f5279d0ad + checksum: 8de0d3fb470f60b3aca7073ff62c7f9fe078d77c48d43033622ff059f201223fe35eaf834a6b63d95ee5d4c0e2e13669de3f20e4f4de597596dcf63537a60693 languageName: node linkType: hard From 506df0c9a57d393652f1a8ca9a18e96d65af6fa5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 01:34:13 +0000 Subject: [PATCH 125/471] chore(deps): update @lerna-lite to v3.3.2 --- yarn.lock | 213 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 158 insertions(+), 55 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1e38178a3..09c7f1e68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -2537,12 +2537,12 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.3.1, @lerna-lite/cli@npm:^3.0.0": - version: 3.3.1 - resolution: "@lerna-lite/cli@npm:3.3.1" +"@lerna-lite/cli@npm:3.3.2, @lerna-lite/cli@npm:^3.0.0": + version: 3.3.2 + resolution: "@lerna-lite/cli@npm:3.3.2" dependencies: - "@lerna-lite/core": 3.3.1 - "@lerna-lite/init": 3.3.1 + "@lerna-lite/core": 3.3.2 + "@lerna-lite/init": 3.3.2 dedent: ^1.5.1 dotenv: ^16.4.5 import-local: ^3.1.0 @@ -2564,13 +2564,13 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 29f2e5c9275054ebb2a8e8151145b3f57af043bc11c880fcf9e7d78bd55777a2d440dae930ec071edaa9db062be5a2196296da0c427f5feb46c2a51450755fd1 + checksum: 6657289280b522294269361d2a21bbee752355599a4028b43418a04cf4bf8ff4ce1eaaca6a7927b98cb288ed6adb12c8bfcbc9ef72c0a05152d4b1a8fe2201f8 languageName: node linkType: hard -"@lerna-lite/core@npm:3.3.1": - version: 3.3.1 - resolution: "@lerna-lite/core@npm:3.3.1" +"@lerna-lite/core@npm:3.3.2": + version: 3.3.2 + resolution: "@lerna-lite/core@npm:3.3.2" dependencies: "@npmcli/run-script": ^7.0.4 chalk: ^5.3.0 @@ -2582,11 +2582,11 @@ __metadata: fs-extra: ^11.2.0 glob-parent: ^6.0.2 globby: ^14.0.1 - inquirer: ^9.2.15 + inquirer: ^9.2.17 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 - minimatch: ^9.0.3 + minimatch: ^9.0.4 npm-package-arg: ^11.0.1 npmlog: ^7.0.1 p-map: ^7.0.1 @@ -2597,36 +2597,36 @@ __metadata: strong-log-transformer: ^2.1.0 write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 - write-pkg: ^6.0.1 - checksum: 62fbddf7b39e7ae195f33572b4598d10056f1052ef22910722d2451e66a6aed7423d16ec5d467d18b0c94055ff9d6645a019546286ff0ffa777baf553260a15f + write-package: ^7.0.1 + checksum: 0908f849aac7e7dfdd9d4d9b077222373fbe8aad190c4a03e2e8a6a4e1be1a2b5eb94dc252e19a56d56ebc176d708e6ad2cbfb4541394ceea56c8c2a44be3508 languageName: node linkType: hard -"@lerna-lite/init@npm:3.3.1": - version: 3.3.1 - resolution: "@lerna-lite/init@npm:3.3.1" +"@lerna-lite/init@npm:3.3.2": + version: 3.3.2 + resolution: "@lerna-lite/init@npm:3.3.2" dependencies: - "@lerna-lite/core": 3.3.1 + "@lerna-lite/core": 3.3.2 fs-extra: ^11.2.0 p-map: ^7.0.1 write-json-file: ^5.0.0 - checksum: 844781e870b72790707d2a0f7287156bc8d8da61016ce8839129547983a22f639f690c61ea0567cf2d73aa21488b2ce2ee720b5f6aedd0995215628171aa3cf9 + checksum: ad9c83cb27e2e83297ac428ab57380966f720f72f5f49a0bb4bfe8ea6dad1a02d0f1cb2662a7083aebb0a81a3500b0ecd9187eece5e177dc95601cb2604b3d6b languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.3.1 - resolution: "@lerna-lite/publish@npm:3.3.1" + version: 3.3.2 + resolution: "@lerna-lite/publish@npm:3.3.2" dependencies: - "@lerna-lite/cli": 3.3.1 - "@lerna-lite/core": 3.3.1 - "@lerna-lite/version": 3.3.1 + "@lerna-lite/cli": 3.3.2 + "@lerna-lite/core": 3.3.2 + "@lerna-lite/version": 3.3.2 "@npmcli/arborist": ^7.4.0 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 fs-extra: ^11.2.0 - glob: ^10.3.10 + glob: ^10.3.12 has-unicode: ^2.0.1 libnpmaccess: ^8.0.2 libnpmpublish: ^9.0.4 @@ -2642,18 +2642,18 @@ __metadata: read-package-json: ^7.0.0 semver: ^7.6.0 ssri: ^10.0.5 - tar: ^6.2.0 + tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: f37bc890ed57269a0c5e75364372bec9eea6996882063e73f0c57ed0bc872b40c3ec9cd05e7524ee9539ce95129d49f1fa3a4112e68f6e40cd33c2aa76b3a57f + checksum: 6d4961ea821f0ea290d34b3902cf0a703cabbe01a0f66776e76ca47806f1fff5f3b72f5da43b1c1b645b12464aee21c3ab2668cb56fc1289095898a6de3f26bc languageName: node linkType: hard -"@lerna-lite/version@npm:3.3.1, @lerna-lite/version@npm:^3.0.0": - version: 3.3.1 - resolution: "@lerna-lite/version@npm:3.3.1" +"@lerna-lite/version@npm:3.3.2, @lerna-lite/version@npm:^3.0.0": + version: 3.3.2 + resolution: "@lerna-lite/version@npm:3.3.2" dependencies: - "@lerna-lite/cli": 3.3.1 - "@lerna-lite/core": 3.3.1 + "@lerna-lite/cli": 3.3.2 + "@lerna-lite/core": 3.3.2 "@octokit/plugin-enterprise-rest": ^6.0.1 "@octokit/rest": ^20.0.2 chalk: ^5.3.0 @@ -2664,13 +2664,13 @@ __metadata: conventional-recommended-bump: ^9.0.0 dedent: ^1.5.1 fs-extra: ^11.2.0 - get-stream: ^8.0.1 + get-stream: ^9.0.1 git-url-parse: ^14.0.0 graceful-fs: ^4.2.11 is-stream: ^4.0.1 load-json-file: ^7.0.1 make-dir: ^4.0.0 - minimatch: ^9.0.3 + minimatch: ^9.0.4 new-github-release-url: ^2.0.0 node-fetch: ^3.3.2 npm-package-arg: ^11.0.1 @@ -2684,16 +2684,16 @@ __metadata: temp-dir: ^3.0.0 uuid: ^9.0.1 write-json-file: ^5.0.0 - checksum: 1abab1f32db9b47e75eb7b8a3a507f62044e61c8be988e30f7295f145b7cc963c86375fe3f24c3a9819f0f2d941d702cc65a05c7a2799bc8e32158c19d54131b + checksum: 316f5b47e38041db0c291d107325776a698307e14760a258c81644e11eee4fc2a7db7865747a3086bc72d7bb968b8e8d6a34f8a1a3f74f074d31022748300e42 languageName: node linkType: hard -"@ljharb/through@npm:^2.3.12": - version: 2.3.12 - resolution: "@ljharb/through@npm:2.3.12" +"@ljharb/through@npm:^2.3.13": + version: 2.3.13 + resolution: "@ljharb/through@npm:2.3.13" dependencies: - call-bind: ^1.0.5 - checksum: d5a78568cd3025c03264a9f9c61b30511d27cb9611fae7575cb1339a1baa1a263b6af03e28505b821324f3c6285086ee5add612b8b0155d1f253ed5159cd3f56 + call-bind: ^1.0.7 + checksum: 0255464a0ec7901b08cff3e99370b87e66663f46249505959c0cb4f6121095d533bbb7c7cda338063d3e134cbdd721e2705bc18eac7611b4f9ead6e7935d13ba languageName: node linkType: hard @@ -3326,6 +3326,13 @@ __metadata: languageName: node linkType: hard +"@sec-ant/readable-stream@npm:^0.4.1": + version: 0.4.1 + resolution: "@sec-ant/readable-stream@npm:0.4.1" + checksum: eb56f72a70995f725269f1c1c206d6dbeb090e88413b1302a456c600041175a7a484c2f0172454f7bed65a8ab95ffed7647d8ad03e6c23b1e3bbc9845f78cd17 + languageName: node + linkType: hard + "@sigstore/bundle@npm:^2.2.0": version: 2.2.0 resolution: "@sigstore/bundle@npm:2.2.0" @@ -4017,7 +4024,7 @@ __metadata: languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.1": +"@types/normalize-package-data@npm:^2.4.1, @types/normalize-package-data@npm:^2.4.3": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 @@ -7788,6 +7795,16 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^9.0.1": + version: 9.0.1 + resolution: "get-stream@npm:9.0.1" + dependencies: + "@sec-ant/readable-stream": ^0.4.1 + is-stream: ^4.0.1 + checksum: 631df71d7bd60a7f373094d3c352e2ce412b82d30b1b0ec562e5a4aced976173a4cc0dabef019050e1aceaffb1f0e086349ab3d14377b0b7280510bd75bd3e1e + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.2": version: 1.0.2 resolution: "get-symbol-description@npm:1.0.2" @@ -7876,6 +7893,21 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.3.12": + version: 10.3.12 + resolution: "glob@npm:10.3.12" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.3.6 + minimatch: ^9.0.1 + minipass: ^7.0.4 + path-scurry: ^1.10.2 + bin: + glob: dist/esm/bin.mjs + checksum: 2b0949d6363021aaa561b108ac317bf5a97271b8a5d7a5fac1a176e40e8068ecdcccc992f8a7e958593d501103ac06d673de92adc1efcbdab45edefe35f8d7c6 + languageName: node + linkType: hard + "glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -8315,6 +8347,13 @@ __metadata: languageName: node linkType: hard +"index-to-position@npm:^0.1.2": + version: 0.1.2 + resolution: "index-to-position@npm:0.1.2" + checksum: ce0ab15544b154d6821b4f8b3fdb5dc410d560d20e43bcb0fb8ea2ccc5f93dc04caeee6b3ebd4abc7091e437156db4caaaef934ce20f05f079a1dbc73755f7e7 + languageName: node + linkType: hard + "indexes-of@npm:^1.0.1": version: 1.0.1 resolution: "indexes-of@npm:1.0.1" @@ -8346,11 +8385,11 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.2.15": - version: 9.2.15 - resolution: "inquirer@npm:9.2.15" +"inquirer@npm:^9.2.17": + version: 9.2.17 + resolution: "inquirer@npm:9.2.17" dependencies: - "@ljharb/through": ^2.3.12 + "@ljharb/through": ^2.3.13 ansi-escapes: ^4.3.2 chalk: ^5.3.0 cli-cursor: ^3.1.0 @@ -8365,7 +8404,7 @@ __metadata: string-width: ^4.2.3 strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 - checksum: 98e385ef2900a6071e6576ab9fbf0b04e908ed386aaae5163bd467d32dc80a76bcd33bd03d34cd35a93ce99e47cbd52d62ae48ace9bfb20aff4a45e9bc1323d3 + checksum: be5afe4f7008afb8057ee2b30c83708100a467a898ca741f136c1226c321dda4ea169cf1782e01b1b977f4cdd2bed6e47c1db5ae728cadf97ba64995cebc1f91 languageName: node linkType: hard @@ -8882,7 +8921,7 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.3.5": +"jackspeak@npm:^2.3.5, jackspeak@npm:^2.3.6": version: 2.3.6 resolution: "jackspeak@npm:2.3.6" dependencies: @@ -9807,7 +9846,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^9.1.1 || ^10.0.0": version: 10.2.0 resolution: "lru-cache@npm:10.2.0" checksum: eee7ddda4a7475deac51ac81d7dd78709095c6fa46e8350dc2d22462559a1faa3b81ed931d5464b13d48cbd7e08b46100b6f768c76833912bc444b99c37e25db @@ -10045,6 +10084,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.4": + version: 9.0.4 + resolution: "minimatch@npm:9.0.4" + dependencies: + brace-expansion: ^2.0.1 + checksum: cf717f597ec3eed7dabc33153482a2e8d49f4fd3c26e58fd9c71a94c5029a0838728841b93f46bf1263b65a8010e2ee800d0dc9b004ab8ba8b6d1ec07cc115b5 + languageName: node + linkType: hard + "minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -10129,7 +10177,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4": version: 7.0.4 resolution: "minipass@npm:7.0.4" checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 @@ -10850,6 +10898,17 @@ __metadata: languageName: node linkType: hard +"parse-json@npm:^8.0.0": + version: 8.1.0 + resolution: "parse-json@npm:8.1.0" + dependencies: + "@babel/code-frame": ^7.22.13 + index-to-position: ^0.1.2 + type-fest: ^4.7.1 + checksum: efc4256c91e835b1340e2b4f535272247f174fcba85eead15ff938be23b3ca2d521a04c76e564d1dc2f61c0c9ebcb6157d5433d459c7e736c81d014b49577b31 + languageName: node + linkType: hard + "parse-ms@npm:^2.1.0": version: 2.1.0 resolution: "parse-ms@npm:2.1.0" @@ -10936,6 +10995,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.10.2": + version: 1.10.2 + resolution: "path-scurry@npm:1.10.2" + dependencies: + lru-cache: ^10.2.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: 6739b4290f7d1a949c61c758b481c07ac7d1a841964c68cf5e1fa153d7e18cbde4872b37aadf9c5173c800d627f219c47945859159de36c977dd82419997b9b8 + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -11649,6 +11718,19 @@ __metadata: languageName: node linkType: hard +"read-pkg@npm:^9.0.0": + version: 9.0.1 + resolution: "read-pkg@npm:9.0.1" + dependencies: + "@types/normalize-package-data": ^2.4.3 + normalize-package-data: ^6.0.0 + parse-json: ^8.0.0 + type-fest: ^4.6.0 + unicorn-magic: ^0.1.0 + checksum: 5544bea2a58c6e5706db49a96137e8f0768c69395f25363f934064fbba00bdcdaa326fcd2f4281741df38cf81dbf27b76138240dc6de0ed718cf650475e0de3c + languageName: node + linkType: hard + "readable-stream@npm:^3.4.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" @@ -12873,7 +12955,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": +"tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.0 resolution: "tar@npm:6.2.0" dependencies: @@ -12887,6 +12969,20 @@ __metadata: languageName: node linkType: hard +"tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c + languageName: node + linkType: hard + "temp-dir@npm:^3.0.0": version: 3.0.0 resolution: "temp-dir@npm:3.0.0" @@ -13153,6 +13249,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^4.7.1": + version: 4.14.0 + resolution: "type-fest@npm:4.14.0" + checksum: c4e2377112a9311430863d5d4eb778c242570a535f0a2bd648da31ecb1013c71affcbdfc5bfcddc8cd13cf821103ee9df4f2e5804a5a7bca8028aab7f7232f73 + languageName: node + linkType: hard + "typed-array-buffer@npm:^1.0.1": version: 1.0.1 resolution: "typed-array-buffer@npm:1.0.1" @@ -13826,16 +13929,16 @@ __metadata: languageName: node linkType: hard -"write-pkg@npm:^6.0.1": - version: 6.0.1 - resolution: "write-pkg@npm:6.0.1" +"write-package@npm:^7.0.1": + version: 7.0.1 + resolution: "write-package@npm:7.0.1" dependencies: deepmerge-ts: ^5.1.0 - read-pkg: ^8.1.0 + read-pkg: ^9.0.0 sort-keys: ^5.0.0 type-fest: ^4.6.0 write-json-file: ^5.0.0 - checksum: d482355662774945a7243bea2e03d32bf1173571211646d3793c18df5a41516c2eb35eca2ebbe65563b9d20c643560bd3751ea32ae57aa9144b3f81b79512a60 + checksum: fd38402f1088f0f8c9b59795988abaf8229962e5cfa7da0664ec06acadca0ec330028ae33c40a925256f812c9e1b89c7522c6f49f5701af56b36afb763eda6fd languageName: node linkType: hard From 62e08cf469ddb1270532372a9f26146b3b5ee1f7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 01:34:30 +0000 Subject: [PATCH 126/471] chore(deps): update dependency @types/node to v20.12.3 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 09c7f1e68..39504bffe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4016,11 +4016,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.2 - resolution: "@types/node@npm:20.12.2" + version: 20.12.3 + resolution: "@types/node@npm:20.12.3" dependencies: undici-types: ~5.26.4 - checksum: 3242ab04fe69ae32a2da29a7a2fce41fccb370bc1189de43d2dfbb491bd3253d3ee2070cbb5613061148e4862fdaa9cf62722c43128ce5c7d33fe83750956613 + checksum: 982544a014391f214d36e5d65d8879f4d3ca9ed2258a5db76b1475a58858b5468ca1c65973e1a3e578f7665ed881af1ff9387d2d3e99e7a4d315994570fc50ff languageName: node linkType: hard From 80c3f0e74a4b0086781cc067cd69fdc3f6e21c78 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 03:08:44 +0000 Subject: [PATCH 127/471] chore(deps): update dependency stylelint-config-standard-scss to v13.1.0 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 39504bffe..0fc682235 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12739,18 +12739,18 @@ __metadata: linkType: hard "stylelint-config-standard-scss@npm:^13.0.0": - version: 13.0.0 - resolution: "stylelint-config-standard-scss@npm:13.0.0" + version: 13.1.0 + resolution: "stylelint-config-standard-scss@npm:13.1.0" dependencies: stylelint-config-recommended-scss: ^14.0.0 stylelint-config-standard: ^36.0.0 peerDependencies: postcss: ^8.3.3 - stylelint: ^16.1.0 + stylelint: ^16.3.1 peerDependenciesMeta: postcss: optional: true - checksum: 72e8fbb8d49b76e30031d05470d610790a966714fef0101418b889c564d9cc324788519733cad714316224c68541466dce534c51092d13bae3f9e596916415c3 + checksum: c5105e3b3390c9d0aa95e252abdf1850fa50d82e1a25a1fcc11a88b111038e00c8033a4b34905405f2203c84c0fa26ce1d40248df2172c83c76cc3baa552db07 languageName: node linkType: hard From 47d05d47ec056a5f236e789dcf4cf7679fd17a1b Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 3 Apr 2024 22:28:50 -0400 Subject: [PATCH 128/471] fix: Container field mapping should draw the line to the container field name Fixes: #59 --- .../ui/src/components/document/Document.tsx | 39 ++++++--- .../src/components/document/DocumentField.tsx | 79 ++++++++++--------- .../ui/src/components/document/Parameters.tsx | 18 ++++- .../ui/src/components/mapping/MappingLink.tsx | 12 +-- packages/ui/src/providers/CanvasProvider.tsx | 15 ++-- 5 files changed, 104 insertions(+), 59 deletions(-) diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx index c465eb387..ebdd29e22 100644 --- a/packages/ui/src/components/document/Document.tsx +++ b/packages/ui/src/components/document/Document.tsx @@ -1,4 +1,4 @@ -import { forwardRef, FunctionComponent, useCallback, useMemo, useRef, useState } from 'react'; +import { forwardRef, FunctionComponent, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react'; import { Accordion, ActionList, @@ -19,6 +19,7 @@ import { AttachSchemaButton } from './AttachSchemaButton'; import { DetachSchemaButton } from './DetachSchemaButton'; import { DeleteParameterButton } from './DeleteParameterButton'; import { NodeContainer } from './NodeContainer'; +import { NodeReference } from '../../providers/CanvasProvider'; export type DocumentProps = { documentType: DocumentType; @@ -29,8 +30,18 @@ type DocumentImplProps = DocumentProps & { nodeId: string; }; -const PrimitiveDocumentImpl = forwardRef( +const PrimitiveDocumentImpl = forwardRef( ({ documentType, model, nodeId }, forwardedRef) => { + const ref = useRef(null); + useImperativeHandle(forwardedRef, () => ({ + get headerRef() { + return ref.current; + }, + get containerRef() { + return ref.current; + }, + })); + const headerActiopns = useMemo(() => { return ( @@ -48,7 +59,7 @@ const PrimitiveDocumentImpl = forwardRef( return ( - + @@ -65,7 +76,7 @@ const PrimitiveDocumentImpl = forwardRef( }, ); -const StructuredDocumentImpl = forwardRef( +const StructuredDocumentImpl = forwardRef( ({ documentType, model, nodeId }, forwardedRef) => { const { reloadNodeReferences } = useCanvas(); const [isExpanded, setExpanded] = useState(true); @@ -78,6 +89,16 @@ const StructuredDocumentImpl = forwardRef( reloadNodeReferences(); }, [isExpanded, reloadNodeReferences]); + const headerRef = useRef(null); + useImperativeHandle(forwardedRef, () => ({ + get headerRef() { + return headerRef.current; + }, + get containerRef() { + return headerRef.current; + }, + })); + const headerActions = useMemo(() => { return ( @@ -102,7 +123,7 @@ const StructuredDocumentImpl = forwardRef( return ( - + {model.name} @@ -123,15 +144,15 @@ const StructuredDocumentImpl = forwardRef( export const Document: FunctionComponent = ({ documentType, model }) => { const { getNodeReference, setNodeReference } = useCanvas(); - const ref = useRef(null); + const nodeReference = useRef({ headerRef: null, containerRef: null }); const fieldRefId = model.fieldIdentifier.toString(); - getNodeReference(fieldRefId) !== ref && setNodeReference(fieldRefId, ref); + getNodeReference(fieldRefId) !== nodeReference && setNodeReference(fieldRefId, nodeReference); const nodeId = useMemo(() => model.documentId + '-' + Math.floor(Math.random() * 10000), [model.documentId]); return model instanceof PrimitiveDocument ? ( - + ) : ( - + ); }; diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index 438a6de65..63fd4e55c 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -1,10 +1,11 @@ import { AccordionContent, AccordionItem, AccordionToggle, Split, SplitItem } from '@patternfly/react-core'; -import { forwardRef, FunctionComponent, useMemo, useRef, useState } from 'react'; +import { FunctionComponent, useImperativeHandle, useMemo, useRef, useState } from 'react'; import { IField } from '../../models'; import { useCanvas } from '../../hooks/useCanvas'; import { DocumentType } from '../../models/document'; import { NodeContainer } from './NodeContainer'; import { GripVerticalIcon } from '@patternfly/react-icons'; +import { NodeReference } from '../../providers/CanvasProvider'; type DocumentFieldProps = { documentType: DocumentType; @@ -13,34 +14,40 @@ type DocumentFieldProps = { }; export const DocumentField: FunctionComponent = ({ documentType, field, onToggle }) => { + const [isExpanded, setIsExpanded] = useState(true); + const dndId = useMemo(() => field.name + '-' + Math.floor(Math.random() * 10000), [field.name]); const { getNodeReference, setNodeReference } = useCanvas(); - const ref = useRef(null); + const containerRef = useRef(null); + const headerRef = useRef(null); + const nodeReference = useRef({ headerRef: null, containerRef: null }); + useImperativeHandle(nodeReference, () => ({ + get headerRef() { + return headerRef.current ?? containerRef.current; + }, + get containerRef() { + return containerRef.current; + }, + })); const fieldRefId = field.fieldIdentifier.toString(); - getNodeReference(fieldRefId) !== ref && setNodeReference(fieldRefId, ref); - return ; -}; - -const DocumentFieldImpl = forwardRef( - ({ documentType, field, onToggle }, forwardedRef) => { - const [isExpanded, setIsExpanded] = useState(true); - const dndId = useMemo(() => field.name + '-' + Math.floor(Math.random() * 10000), [field.name]); + getNodeReference(fieldRefId) !== nodeReference && setNodeReference(fieldRefId, nodeReference); - return !field.fields || field.fields.length === 0 ? ( - - - - - - - - {field.expression} - - - - - ) : ( - - + return !field.fields || field.fields.length === 0 ? ( + + + + + + + + {field.expression} + + + + + ) : ( + + +
    setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.expression}> @@ -49,13 +56,13 @@ const DocumentFieldImpl = forwardRef( {field.expression} - - {field.fields.map((f: IField) => ( - - ))} - - - - ); - }, -); +
    + + {field.fields.map((f: IField) => ( + + ))} + + + + ); +}; diff --git a/packages/ui/src/components/document/Parameters.tsx b/packages/ui/src/components/document/Parameters.tsx index b4de37266..58935f7f4 100644 --- a/packages/ui/src/components/document/Parameters.tsx +++ b/packages/ui/src/components/document/Parameters.tsx @@ -12,13 +12,14 @@ import { TextInput, Tooltip, } from '@patternfly/react-core'; -import { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { FunctionComponent, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'; import { useDataMapper, useToggle } from '../../hooks'; import { CheckIcon, PlusIcon, TimesIcon } from '@patternfly/react-icons'; import { DocumentType, PrimitiveDocument } from '../../models/document'; import { Document } from './Document'; import { useCanvas } from '../../hooks/useCanvas'; import { NodeContainer } from './NodeContainer'; +import { NodeReference } from '../../providers/CanvasProvider'; type AddNewParameterPlaceholderProps = { onComplete: () => void; @@ -99,9 +100,18 @@ export const Parameters: FunctionComponent = () => { } = useToggle(false); const { getNodeReference, setNodeReference } = useCanvas(); - const ref = useRef(null); + const nodeReference = useRef({ headerRef: null, containerRef: null }); + const headerRef = useRef(null); + useImperativeHandle(nodeReference, () => ({ + get headerRef() { + return headerRef.current; + }, + get containerRef() { + return headerRef.current; + }, + })); const nodeRefId = 'param'; - getNodeReference(nodeRefId) !== ref && setNodeReference(nodeRefId, ref); + getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); const handleAddNewParameter = useCallback(() => { setSourceParametersExpanded(true); @@ -134,7 +144,7 @@ export const Parameters: FunctionComponent = () => { return ( - + Parameters diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index ed8dbf08c..a9b8c81f6 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -2,6 +2,7 @@ import { FunctionComponent, MutableRefObject, useCallback, useEffect, useState } import { useCanvas } from '../../hooks/useCanvas'; import { IMapping } from '../../models'; import { useDataMapper } from '../../hooks'; +import { NodeReference } from '../../providers/CanvasProvider'; type LineCoord = { x1: number; @@ -55,11 +56,11 @@ export const MappingLinksContainer: FunctionComponent = () => { ( coords: LineProps[], mapping: IMapping, - sourceRef: MutableRefObject, - targetRef: MutableRefObject, + sourceRef: MutableRefObject, + targetRef: MutableRefObject, ) => { - const sourceRect = sourceRef.current?.getBoundingClientRect(); - const targetRect = targetRef.current?.getBoundingClientRect(); + const sourceRect = sourceRef.current?.headerRef?.getBoundingClientRect(); + const targetRect = targetRef.current?.headerRef?.getBoundingClientRect(); if (!sourceRect || !targetRect) { return; } @@ -93,7 +94,8 @@ export const MappingLinksContainer: FunctionComponent = () => { while ( !!tracedPath && (getNodeReference(tracedPath)?.current == null || - getNodeReference(tracedPath)?.current?.getClientRects().length === 0) + getNodeReference(tracedPath)?.current.headerRef == null || + getNodeReference(tracedPath)?.current.headerRef?.getClientRects().length === 0) ) { const parentPath = getParentPath(tracedPath); if (parentPath === tracedPath) break; diff --git a/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/providers/CanvasProvider.tsx index 9d7e23970..f866b96f7 100644 --- a/packages/ui/src/providers/CanvasProvider.tsx +++ b/packages/ui/src/providers/CanvasProvider.tsx @@ -24,9 +24,14 @@ import { useDataMapper } from '../hooks/useDataMapper'; import { IField } from '../models'; import { MappingService } from '../services/mapping.service'; +export interface NodeReference { + headerRef: HTMLDivElement | null; + containerRef: HTMLDivElement | null; +} + export interface ICanvasContext { - setNodeReference: (path: string, ref: MutableRefObject) => void; - getNodeReference: (path: string) => MutableRefObject | null; + setNodeReference: (path: string, ref: MutableRefObject) => void; + getNodeReference: (path: string) => MutableRefObject | null; reloadNodeReferences: () => void; getAllNodePaths: () => string[]; } @@ -51,8 +56,8 @@ export const CanvasProvider: FunctionComponent = (props) => { const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); const [activeData, setActiveData] = useState | null>(null); - const [nodeReferenceMap, setNodeReferenceMap] = useState>>( - new Map>(), + const [nodeReferenceMap, setNodeReferenceMap] = useState>>( + new Map>(), ); const handleDragStart = useCallback((event: DragStartEvent) => { @@ -75,7 +80,7 @@ export const CanvasProvider: FunctionComponent = (props) => { ); const setNodeReference = useCallback( - (path: string, ref: MutableRefObject) => { + (path: string, ref: MutableRefObject) => { nodeReferenceMap.set(path, ref); }, [nodeReferenceMap], From 42c20d8f3edc945a7f5b0557f5b7eeef4ca4bf62 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 00:48:56 +0000 Subject: [PATCH 129/471] chore(deps): update babel monorepo to v7.24.4 --- yarn.lock | 111 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 82 insertions(+), 29 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0fc682235..842d8b060 100644 --- a/yarn.lock +++ b/yarn.lock @@ -56,24 +56,24 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/compat-data@npm:7.24.1" - checksum: e14e94b00c3ac57bba929a87da8edb6c6a99d0051c54bf49591a5481440dd4d3ac7b4e4a93b81b54e45c2bca55e538aa1e1ad8281b083440a1598bfa8c8df03a +"@babel/compat-data@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/compat-data@npm:7.24.4" + checksum: 52ce371658dc7796c9447c9cb3b9c0659370d141b76997f21c5e0028cca4d026ca546b84bc8d157ce7ca30bd353d89f9238504eb8b7aefa9b1f178b4c100c2d4 languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9": - version: 7.24.3 - resolution: "@babel/core@npm:7.24.3" + version: 7.24.4 + resolution: "@babel/core@npm:7.24.4" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.24.2 - "@babel/generator": ^7.24.1 + "@babel/generator": ^7.24.4 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.24.1 - "@babel/parser": ^7.24.1 + "@babel/helpers": ^7.24.4 + "@babel/parser": ^7.24.4 "@babel/template": ^7.24.0 "@babel/traverse": ^7.24.1 "@babel/types": ^7.24.0 @@ -82,7 +82,7 @@ __metadata: gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 1a33460794f4122cf255b656f4d6586913f41078a1afdf1bcf0365ddbd99c1ddb68f904062f9079445ab26b507c36bc297055192bc26e5c8e6e3def42195f9ab + checksum: 15ecad7581f3329995956ba461961b1af7bed48901f14fe962ccd3217edca60049e9e6ad4ce48134618397e6c90230168c842e2c28e47ef1f16c97dbbf663c61 languageName: node linkType: hard @@ -98,6 +98,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/generator@npm:7.24.4" + dependencies: + "@babel/types": ^7.24.0 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: 1b6146c31386c9df3eb594a2c36b5c98da4f67f7c06edb3d68a442b92516b21bb5ba3ad7dbe0058fe76625ed24d66923e15c95b0df75ef1907d4068921a699b8 + languageName: node + linkType: hard + "@babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -160,6 +172,25 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-member-expression-to-functions": ^7.23.0 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.24.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 75b0a51ae1f7232932559779b78711c271404d02d069156d1bd9a7982c165c5134058d2ec2d8b5f2e42026ee4f52ba2a30c86a7aa3bce6b5fd0991eb721abc8c + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" @@ -364,14 +395,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helpers@npm:7.24.1" +"@babel/helpers@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/helpers@npm:7.24.4" dependencies: "@babel/template": ^7.24.0 "@babel/traverse": ^7.24.1 "@babel/types": ^7.24.0 - checksum: 0643b8ccf3358682303aea65f0798e482b2c3642040d32ffe130a245f4a46d0d23fe575a5e06e3cda4e8ec4af89d52b94ff1c444a74465d47ccc27da6ddbbb9f + checksum: ecd2dc0b3b32e24b97fa3bcda432dd3235b77c2be1e16eafc35b8ef8f6c461faa99796a8bc2431a408c98b4aabfd572c160e2b67ecea4c5c9dd3a8314a97994a languageName: node linkType: hard @@ -425,6 +456,27 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/parser@npm:7.24.4" + bin: + parser: ./bin/babel-parser.js + checksum: 94c9e3e592894cd6fc57c519f4e06b65463df9be5f01739bb0d0bfce7ffcf99b3c2fdadd44dc59cc858ba2739ce6e469813a941c2f2dfacf333a3b2c9c5c8465 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-plugin-utils": ^7.24.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 0be3f41b1b865d7a4ed1a432337be48de67989d0b4e47def34a05097a804b6fc193115f97c954fd757339e0b80030ecf1d0a3d3fd6e7e91718644de0a5aae3d3 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": version: 7.24.1 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1" @@ -773,14 +825,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.1" +"@babel/plugin-transform-block-scoping@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.4" dependencies: "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 65423ee83dba4e84c357f34e0970a96d0f5e727fad327cc7bdb0e1492243eb9c72b95d3c649dc0b488b9b4774dadef5662fed0bf66717b59673ff6d4ffbd6441 + checksum: 5229ffe1c55744b96f791521e2876b01ed05c81df67488a7453ce66c2faceb9d1d653089ce6f0abf512752e15e9acac0e75a797a860f24e05b4d36497c7c3183 languageName: node linkType: hard @@ -796,16 +848,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.1" +"@babel/plugin-transform-class-static-block@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.1 + "@babel/helper-create-class-features-plugin": ^7.24.4 "@babel/helper-plugin-utils": ^7.24.0 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: 253c627c11d9df79e3b32e78bfa1fe0dd1f91c3579da52bf73f76c83de53b140dcb1c9cc5f4c65ff1505754a01b59bc83987c35bcc8f89492b63dae46adef78f + checksum: 3b1db3308b57ba21d47772a9f183804234c23fd64c9ca40915d2d65c5dc7a48b49a6de16b8b90b7a354eacbb51232a862f0fca3dbd23e27d34641f511decddab languageName: node linkType: hard @@ -1389,13 +1441,14 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.24.3 - resolution: "@babel/preset-env@npm:7.24.3" + version: 7.24.4 + resolution: "@babel/preset-env@npm:7.24.4" dependencies: - "@babel/compat-data": ^7.24.1 + "@babel/compat-data": ^7.24.4 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-plugin-utils": ^7.24.0 "@babel/helper-validator-option": ^7.23.5 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.4 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.1 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.1 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.1 @@ -1422,9 +1475,9 @@ __metadata: "@babel/plugin-transform-async-generator-functions": ^7.24.3 "@babel/plugin-transform-async-to-generator": ^7.24.1 "@babel/plugin-transform-block-scoped-functions": ^7.24.1 - "@babel/plugin-transform-block-scoping": ^7.24.1 + "@babel/plugin-transform-block-scoping": ^7.24.4 "@babel/plugin-transform-class-properties": ^7.24.1 - "@babel/plugin-transform-class-static-block": ^7.24.1 + "@babel/plugin-transform-class-static-block": ^7.24.4 "@babel/plugin-transform-classes": ^7.24.1 "@babel/plugin-transform-computed-properties": ^7.24.1 "@babel/plugin-transform-destructuring": ^7.24.1 @@ -1474,7 +1527,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4f3376444f938b3884fddd3cded86cfda97a1fb4bccc93b49fb4593a63f79d9b20e6fb0e1a0934736cea6205df3998c752b248c5f5ec398162fbe165c8e69c5c + checksum: 5a057a6463f92b02bfe66257d3f2c76878815bc7847f2a716b0539d9f547eae2a9d1f0fc62a5c0eff6ab0504bb52e815829ef893e4586b641f8dd6a609d114f3 languageName: node linkType: hard From 13026414006301d387ecb61d7bf38a6e6f208291 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 00:49:16 +0000 Subject: [PATCH 130/471] chore(deps): update dependency @types/node to v20.12.4 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 842d8b060..7fdf478bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4069,11 +4069,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.3 - resolution: "@types/node@npm:20.12.3" + version: 20.12.4 + resolution: "@types/node@npm:20.12.4" dependencies: undici-types: ~5.26.4 - checksum: 982544a014391f214d36e5d65d8879f4d3ca9ed2258a5db76b1475a58858b5468ca1c65973e1a3e578f7665ed881af1ff9387d2d3e99e7a4d315994570fc50ff + checksum: c29879642bd4f1f35ffc6e2356121c5ffdb6530d41db1e6ac013c6fbd1dfa4b213b9529a1213cf1f320f801423d00301176ffb41689f790b0cd8c1e82fe3ee74 languageName: node linkType: hard From 088ac446e46a2c4f0d5fbc67318bcc2c2de632ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 02:36:26 +0000 Subject: [PATCH 131/471] chore(deps): update dependency vite to v5.2.8 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7fdf478bd..06f39780e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13655,8 +13655,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.7 - resolution: "vite@npm:5.2.7" + version: 5.2.8 + resolution: "vite@npm:5.2.8" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 @@ -13690,7 +13690,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 66b4243f0ce147a1871e9bea772e5bd4842410ec9f3aa71d21e9427836f79a15b00f5cb7f023003f169249bc6ead20f68ee31ce6a326e091670ffd3b5441d131 + checksum: c0a77271b548fce443af59a383939924ffcba8e6d0ba6ecb2e481d0ec2318465d2116ce9317599c448e6d6d8af11a67b8efc5b52cb1deab37d2e83311ac4f1b5 languageName: node linkType: hard From 3bd27ed43656e124aa4692395417841a613ae1b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 02:36:40 +0000 Subject: [PATCH 132/471] chore(deps): update dependency sass to v1.74.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 06f39780e..84315d9bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12208,15 +12208,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.72.0 - resolution: "sass@npm:1.72.0" + version: 1.74.1 + resolution: "sass@npm:1.74.1" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: f420079c7d51660b7256ee52463c1499ede36f7fd5c8ef50c687451777ad641509001454dea45244073cedd7c00e7a3bc1c362e55206ac6686171b994edb41e4 + checksum: 3cbcd73d91e65607f7987656b7f6b0c6143724304544768079ecbe95505f1ce71036916e0e02dcc9923551c3779863bcdd522732a8f4409e89205271966a36f4 languageName: node linkType: hard From 2deb6d6c2b75210c81c49174723b64826f24c0e1 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 4 Apr 2024 12:35:07 -0400 Subject: [PATCH 133/471] fix: Scroll Source panel and Target panel separately Fixes: #112 fix: Mapping lines doesn't follow component scroll Fixes: #133 --- .../ui/src/components/mapping/MappingLink.tsx | 1 + packages/ui/src/layout/MainLayout.scss | 11 ++++++++ packages/ui/src/layout/MainLayout.tsx | 7 ++--- .../ui/src/layout/views/SourceTargetView.scss | 26 ++++++++++++------- .../ui/src/layout/views/SourceTargetView.tsx | 18 +++++++------ 5 files changed, 43 insertions(+), 20 deletions(-) create mode 100644 packages/ui/src/layout/MainLayout.scss diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index a9b8c81f6..ba9476ce7 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -121,6 +121,7 @@ export const MappingLinksContainer: FunctionComponent = () => { } } } + console.log('>>>> refreshLinks'); return acc; }, [] as LineProps[]); setLinePropsList(answer); diff --git a/packages/ui/src/layout/MainLayout.scss b/packages/ui/src/layout/MainLayout.scss new file mode 100644 index 000000000..4b6563b1e --- /dev/null +++ b/packages/ui/src/layout/MainLayout.scss @@ -0,0 +1,11 @@ +.main-layout { + height: 100%; + + &__drawer-content { + height: 100%; + } + + &__drawer-content-body { + height: 100%; + } +} \ No newline at end of file diff --git a/packages/ui/src/layout/MainLayout.tsx b/packages/ui/src/layout/MainLayout.tsx index a4c44098e..67e9f1ae8 100644 --- a/packages/ui/src/layout/MainLayout.tsx +++ b/packages/ui/src/layout/MainLayout.tsx @@ -29,6 +29,7 @@ import { DataMapperContext } from '../providers'; import { CanvasView } from '../models'; import { ContextToolbar } from './ContextToolbar'; import { useDataMapper } from '../hooks'; +import './MainLayout.scss'; export interface IMainLayoutProps { showSidebar: boolean; @@ -57,10 +58,10 @@ export const MainLayout: FunctionComponent = memo(function Mai return ( - + - }> - {currentView} + } className="main-layout__drawer-content"> + {currentView} diff --git a/packages/ui/src/layout/views/SourceTargetView.scss b/packages/ui/src/layout/views/SourceTargetView.scss index c7b357156..104c88321 100644 --- a/packages/ui/src/layout/views/SourceTargetView.scss +++ b/packages/ui/src/layout/views/SourceTargetView.scss @@ -1,12 +1,20 @@ -.sourceTargetView { +.source-target-view { height: 100%; -} -.sourcePanel { - height: 100%; -} -.lineBlank {} + &__source-panel { + height: 100%; + } + &__source-panel-main { + height: 100%; + } -.targetPanel { - height: 100%; -} \ No newline at end of file + &__line-blank {} + + &__target-panel { + height: 100%; + } + + &__target-panel-main { + height: 100%; + } +} diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx index c13e1df33..e9d431ee9 100644 --- a/packages/ui/src/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -17,22 +17,24 @@ import { MappingLinksContainer } from '../../components/mapping/MappingLink'; import { DocumentType } from '../../models/document'; import { Parameters } from '../../components/document/Parameters'; import './SourceTargetView.scss'; +import { useCanvas } from '../../hooks/useCanvas'; export const SourceTargetView: FunctionComponent = () => { const { sourceBodyDocument, targetBodyDocument } = useDataMapper(); + const { reloadNodeReferences } = useCanvas(); return ( - + - + Source - - + + @@ -44,18 +46,18 @@ export const SourceTargetView: FunctionComponent = () => { - +   - + Target - - + + From 134b4e90a0d00a7c4860c8802afdefe8ef3d0483 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 4 Apr 2024 21:52:14 -0400 Subject: [PATCH 134/471] feat: Support editing XPath Fixes: #123 --- .../components/mapping/EditXPathButton.tsx | 86 +++++++++++++++++++ .../ui/src/components/mapping/MappingLink.tsx | 1 - .../views/MappingDetailsDrawerPanel.tsx | 85 +++++++++++++----- packages/ui/src/models/mapping.ts | 1 + .../services/mapping-serializer.service.ts | 17 ++-- test-resources/hello.xsl | 2 +- 6 files changed, 161 insertions(+), 31 deletions(-) create mode 100644 packages/ui/src/components/mapping/EditXPathButton.tsx diff --git a/packages/ui/src/components/mapping/EditXPathButton.tsx b/packages/ui/src/components/mapping/EditXPathButton.tsx new file mode 100644 index 000000000..9b7d57bcd --- /dev/null +++ b/packages/ui/src/components/mapping/EditXPathButton.tsx @@ -0,0 +1,86 @@ +import { FunctionComponent, useCallback, useMemo, useState } from 'react'; +import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; +import { PenIcon } from '@patternfly/react-icons'; +import { useToggle } from '../../hooks'; +import { CodeEditor, Language } from '@patternfly/react-code-editor'; +import { IMapping } from '../../models'; +import { MappingSerializerService } from '../../services/mapping-serializer.service'; +import { Monaco } from '@monaco-editor/react'; +import { editor } from 'monaco-editor'; +import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions; + +type EditXPathButtonProps = { + mapping: IMapping | null; +}; + +export const EditXPathButton: FunctionComponent = ({ mapping }) => { + const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); + const [xpath, setXpath] = useState(mapping?.xpath); + const allowEditXPath = !!(mapping && (mapping.xpath || mapping.sourceFields[0])); + + const handleEditXPath = useCallback(() => { + if (!xpath) { + const emptyXslt = MappingSerializerService.createNew(); + const xpathFromSource = MappingSerializerService.getXPath(emptyXslt, mapping!.sourceFields[0]); + setXpath(xpathFromSource); + } + openModal(); + }, [mapping, openModal, xpath]); + + const handleSubmitXPath = useCallback(() => { + mapping!.xpath = xpath; + if (mapping!.sourceFields.length > 0) mapping!.sourceFields = []; + closeModal(); + }, [closeModal, mapping, xpath]); + + const onEditorDidMount = useCallback((editor: editor.IStandaloneCodeEditor, monaco: Monaco) => { + editor.layout(); + editor.focus(); + monaco.editor.getModels()[0].updateOptions({ tabSize: 2 }); + }, []); + + const editorOptions: IStandaloneEditorConstructionOptions = useMemo(() => { + return { wordWrap: 'on' }; + }, []); + + return ( + <> + Edit XPath expression
    }> + + + + Confirm + , + , + ]} + > + setXpath(value)} + language={Language.plaintext} + onEditorDidMount={onEditorDidMount} + height="sizeToFit" + width="sizeToFit" + options={editorOptions} + /> + + + ); +}; diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index ba9476ce7..a9b8c81f6 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -121,7 +121,6 @@ export const MappingLinksContainer: FunctionComponent = () => { } } } - console.log('>>>> refreshLinks'); return acc; }, [] as LineProps[]); setLinePropsList(answer); diff --git a/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx b/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx index aaa3c887f..33e3f7140 100644 --- a/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx +++ b/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx @@ -1,8 +1,11 @@ -import { FunctionComponent } from 'react'; +import { FunctionComponent, useMemo } from 'react'; import { useDataMapper } from '../../hooks'; import { + ActionList, + ActionListItem, Card, CardBody, + CardHeader, CardTitle, DrawerActions, DrawerCloseButton, @@ -12,10 +15,13 @@ import { StackItem, Text, TextContent, + TextInput, TextVariants, } from '@patternfly/react-core'; import { IField } from '../../models'; import { DeleteMappingButton } from '../../components/mapping/DeleteMappingButton'; +import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table'; +import { EditXPathButton } from '../../components/mapping/EditXPathButton'; type FieldDetailsProps = { field: IField; @@ -23,20 +29,52 @@ type FieldDetailsProps = { const FieldDetails: FunctionComponent = ({ field }) => { return ( -
      -
    • name: {field.name}
    • -
    • type: {field.type}
    • -
    • path: {field.fieldIdentifier.toString()}
    • - {field.defaultValue &&
    • defaultValue: {field.defaultValue}
    • } -
    • minOccurs: {field.minOccurs}
    • -
    • maxOccurs: {field.maxOccurs}
    • -
    + + + + + + + + + + + + + + + {field.defaultValue && ( + + + + + )} + + + + + + + + + +
    name{field.name}
    type{field.type}
    path{field.fieldIdentifier.toString()}
    defaultValue{field.defaultValue}
    minOccurs{field.minOccurs}
    maxOccurs{field.maxOccurs}
    ); }; export const MappingDetailsDrawerPanel: FunctionComponent = () => { const { selectedMapping, setSelectedMapping } = useDataMapper(); + const headerActions = useMemo(() => { + return ( + + + + + + ); + }, [selectedMapping]); + return ( selectedMapping && ( @@ -52,31 +90,36 @@ export const MappingDetailsDrawerPanel: FunctionComponent = () => { - Source + + Source + - {selectedMapping.sourceFields.map((field) => ( + {selectedMapping.xpath ? ( - + XPath + - ))} + ) : ( + selectedMapping.sourceFields.map((field) => ( + + + + )) + )} - Transformation - TODO - - - - - Target + + Target + {selectedMapping.targetFields.map((field) => ( - + ))} diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 27398f381..8faea26c6 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -11,6 +11,7 @@ export interface IMapping { sourceFields: IField[]; targetFields: IField[]; transformations: ITransformation[]; + xpath?: string; } export class Mapping implements IMapping { diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index f2bd00bf8..b7a082fef 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -17,14 +17,15 @@ export class MappingSerializerService { static serialize(mappings: IMapping[]): string { const xslt = MappingSerializerService.createNew(); mappings.forEach((mapping) => { - const source = mapping.sourceFields[0]; - const target = mapping.targetFields[0]; - MappingSerializerService.populateMapping(xslt, source, target); + MappingSerializerService.populateMapping(xslt, mapping); }); return xmlFormat(new XMLSerializer().serializeToString(xslt)); } - static populateMapping(xsltDocument: Document, source: IField, target: IField) { + static populateMapping(xsltDocument: Document, mapping: IMapping) { + const source = mapping.sourceFields[0]; + const target = mapping.targetFields[0]; + const prefix = xsltDocument.lookupPrefix(NS_XSL); const nsResolver = xsltDocument.createNSResolver(xsltDocument); // jsdom requires `type` to be specified anyway, but if `type` is specified, @@ -36,11 +37,13 @@ export class MappingSerializerService { if (!template || template.nodeType !== Node.ELEMENT_NODE) { throw Error('No root template in the XSLT document'); } + MappingSerializerService.populateParam(xsltDocument, source); const parent = target instanceof PrimitiveDocument ? template : MappingSerializerService.getOrCreateParent(template as Element, target); - MappingSerializerService.populateSource(parent, source, target); + const sourceXPath = mapping.xpath ? mapping.xpath : MappingSerializerService.getXPath(xsltDocument, source); + MappingSerializerService.populateSource(parent, sourceXPath, target); } static getOrCreateParent(template: Element, target: IField) { @@ -88,10 +91,8 @@ export class MappingSerializerService { return element.namespaceURI === field.namespaceURI; } - static populateSource(parent: Element, source: IField, target: IField) { + static populateSource(parent: Element, sourceXPath: string, target: IField) { const xsltDocument = parent.ownerDocument; - MappingSerializerService.populateParam(xsltDocument, source); - const sourceXPath = MappingSerializerService.getXPath(xsltDocument, source); if (target.isAttribute) { const xslAttribute = xsltDocument.createElementNS(NS_XSL, 'attribute'); xslAttribute.setAttribute('name', target.name); diff --git a/test-resources/hello.xsl b/test-resources/hello.xsl index 15d2b34a6..dbe9922cb 100644 --- a/test-resources/hello.xsl +++ b/test-resources/hello.xsl @@ -4,7 +4,7 @@ - + From 0c7596994cdf74839655f81d26eb461c74a1cbf7 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 4 Apr 2024 22:00:11 -0400 Subject: [PATCH 135/471] fix --- packages/ui/src/components/mapping/EditXPathButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/components/mapping/EditXPathButton.tsx b/packages/ui/src/components/mapping/EditXPathButton.tsx index 9b7d57bcd..09e93d620 100644 --- a/packages/ui/src/components/mapping/EditXPathButton.tsx +++ b/packages/ui/src/components/mapping/EditXPathButton.tsx @@ -6,7 +6,7 @@ import { CodeEditor, Language } from '@patternfly/react-code-editor'; import { IMapping } from '../../models'; import { MappingSerializerService } from '../../services/mapping-serializer.service'; import { Monaco } from '@monaco-editor/react'; -import { editor } from 'monaco-editor'; +import { editor } from 'monaco-editor/esm/vs/editor/editor.api'; import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions; type EditXPathButtonProps = { From ac3772bf5c6a06464aed95196a0344a380177572 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 5 Apr 2024 00:17:51 +0000 Subject: [PATCH 136/471] chore(deps): update dependency typescript to v5.4.4 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 84315d9bc..475af68e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13386,12 +13386,12 @@ __metadata: linkType: hard "typescript@npm:^5.3.3": - version: 5.4.3 - resolution: "typescript@npm:5.4.3" + version: 5.4.4 + resolution: "typescript@npm:5.4.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d74d731527e35e64d8d2dcf2f897cf8cfbc3428be0ad7c48434218ba4ae41239f53be7c90714089db1068c05cae22436af2ecba71fd36ecc5e7a9118af060198 + checksum: a7b54515d2adfc75c8d14188af0216b6b9ae3c192c9732797c24b1d14608eac1c83be7b1c65ce6f4ced0f2c40583f11b495fe1ba3d982afadbcc523517d183c8 languageName: node linkType: hard @@ -13416,12 +13416,12 @@ __metadata: linkType: hard "typescript@patch:typescript@^5.3.3#~builtin": - version: 5.4.3 - resolution: "typescript@patch:typescript@npm%3A5.4.3#~builtin::version=5.4.3&hash=5adc0c" + version: 5.4.4 + resolution: "typescript@patch:typescript@npm%3A5.4.4#~builtin::version=5.4.4&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 523ec29bc308b4ca0cec9a139ac08a27939891d8ad620d249cf5e1a35454e37cd7bb52613a1884f1206aa11d2fb1c4c83fb9e939bde542aaa8527ba818cb8177 + checksum: f64e07e11f787a18b5b98cbe7506465a5a92f56bbd4691977cc9c690f4ec49ebce51dfac77728dc792b743f8d89e8d99004370f5c96f7f56947c25c3f90f9350 languageName: node linkType: hard From 8e149bdf560e1066d20a4e5548868076fdc99cab Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 5 Apr 2024 15:13:42 -0400 Subject: [PATCH 137/471] fix: Parameter requires source field object, causes an error if custom XPath is provided Fixes: #142 --- .../components/mapping/EditXPathButton.tsx | 6 +- .../toolbar/ExportMappingFileDropdownItem.tsx | 6 +- .../views/MappingDetailsDrawerPanel.tsx | 2 +- .../mapping-serializer.service.test.ts | 81 ++++++++++++------- .../services/mapping-serializer.service.ts | 62 +++++++------- 5 files changed, 89 insertions(+), 68 deletions(-) diff --git a/packages/ui/src/components/mapping/EditXPathButton.tsx b/packages/ui/src/components/mapping/EditXPathButton.tsx index 09e93d620..4c7b906b5 100644 --- a/packages/ui/src/components/mapping/EditXPathButton.tsx +++ b/packages/ui/src/components/mapping/EditXPathButton.tsx @@ -1,7 +1,7 @@ import { FunctionComponent, useCallback, useMemo, useState } from 'react'; import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { PenIcon } from '@patternfly/react-icons'; -import { useToggle } from '../../hooks'; +import { useDataMapper, useToggle } from '../../hooks'; import { CodeEditor, Language } from '@patternfly/react-code-editor'; import { IMapping } from '../../models'; import { MappingSerializerService } from '../../services/mapping-serializer.service'; @@ -14,6 +14,7 @@ type EditXPathButtonProps = { }; export const EditXPathButton: FunctionComponent = ({ mapping }) => { + const { refreshMappings } = useDataMapper(); const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const [xpath, setXpath] = useState(mapping?.xpath); const allowEditXPath = !!(mapping && (mapping.xpath || mapping.sourceFields[0])); @@ -30,8 +31,9 @@ export const EditXPathButton: FunctionComponent = ({ mappi const handleSubmitXPath = useCallback(() => { mapping!.xpath = xpath; if (mapping!.sourceFields.length > 0) mapping!.sourceFields = []; + refreshMappings(); closeModal(); - }, [closeModal, mapping, xpath]); + }, [closeModal, mapping, refreshMappings, xpath]); const onEditorDidMount = useCallback((editor: editor.IStandaloneCodeEditor, monaco: Monaco) => { editor.layout(); diff --git a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx index e2c6a631e..b9cc51c8f 100644 --- a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx @@ -11,15 +11,15 @@ import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructi export const ExportMappingFileDropdownItem: FunctionComponent<{ onComplete: () => void; }> = ({ onComplete }) => { - const { mappings } = useDataMapper(); + const { mappings, sourceParameterMap } = useDataMapper(); const [isModalOpen, setIsModalOpen] = useState(); const [serializedMappings, setSerializedMappings] = useState(); const handleMenuClick = useCallback(() => { - const serialized = MappingSerializerService.serialize(mappings); + const serialized = MappingSerializerService.serialize(mappings, sourceParameterMap); setSerializedMappings(serialized); setIsModalOpen(true); - }, [mappings]); + }, [mappings, sourceParameterMap]); const handleModalClose = useCallback(() => { setSerializedMappings(''); diff --git a/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx b/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx index 33e3f7140..4a9ce4d70 100644 --- a/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx +++ b/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx @@ -98,7 +98,7 @@ export const MappingDetailsDrawerPanel: FunctionComponent = () => { {selectedMapping.xpath ? ( XPath - + ) : ( selectedMapping.sourceFields.map((field) => ( diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index 2b2125868..a57e51151 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -12,6 +12,10 @@ sourceParamDoc.documentType = DocumentType.PARAM; sourceParamDoc.name = 'sourceParam1'; sourceParamDoc.documentId = 'sourceParam1'; const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); +const sourceParameterMap = new Map([ + ['sourceParam1', sourceParamDoc], + ['primitive', sourcePrimitiveParamDoc], +]); const targetDoc = XmlSchemaDocumentService.parseXmlSchema(orderXsd); targetDoc.documentType = DocumentType.TARGET_BODY; const targetPrimitiveDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, 'primitiveTargetBody'); @@ -46,7 +50,7 @@ describe('MappingSerializerService', () => { describe('serialize()', () => { it('should return an empty XSLT document with empty mappings', () => { - const empty = MappingSerializerService.serialize([]); + const empty = MappingSerializerService.serialize([], sourceParameterMap); const dom = domParser.parseFromString(empty, 'application/xml'); const template = dom .evaluate('/xsl:stylesheet/xsl:template', dom, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE) @@ -57,12 +61,15 @@ describe('MappingSerializerService', () => { }); it('should serialize an attribute mapping', () => { - const serialized = MappingSerializerService.serialize([ - { - sourceFields: [getField(sourceDoc, '/ShipOrder/@OrderId')], - targetFields: [getField(targetDoc, '/ShipOrder/@OrderId')], - }, - ] as IMapping[]); + const serialized = MappingSerializerService.serialize( + [ + { + sourceFields: [getField(sourceDoc, '/ShipOrder/@OrderId')], + targetFields: [getField(targetDoc, '/ShipOrder/@OrderId')], + }, + ] as IMapping[], + sourceParameterMap, + ); const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); const xslAttribute = xsltDomDocument .evaluate( @@ -90,12 +97,15 @@ describe('MappingSerializerService', () => { }); it('should serialize an element mapping', () => { - const serialized = MappingSerializerService.serialize([ - { - sourceFields: [getField(sourceDoc, '/ShipOrder/ShipTo/Name')], - targetFields: [getField(targetDoc, '/ShipOrder/ShipTo/Name')], - }, - ] as IMapping[]); + const serialized = MappingSerializerService.serialize( + [ + { + sourceFields: [getField(sourceDoc, '/ShipOrder/ShipTo/Name')], + targetFields: [getField(targetDoc, '/ShipOrder/ShipTo/Name')], + }, + ] as IMapping[], + sourceParameterMap, + ); const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); const xslValueOf = xsltDomDocument .evaluate( @@ -128,12 +138,15 @@ describe('MappingSerializerService', () => { }); it('should serialize a container field mapping', () => { - const serialized = MappingSerializerService.serialize([ - { - sourceFields: [getField(sourceDoc, '/ShipOrder/Item')], - targetFields: [getField(targetDoc, '/ShipOrder/Item')], - }, - ] as IMapping[]); + const serialized = MappingSerializerService.serialize( + [ + { + sourceFields: [getField(sourceDoc, '/ShipOrder/Item')], + targetFields: [getField(targetDoc, '/ShipOrder/Item')], + }, + ] as IMapping[], + sourceParameterMap, + ); const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); const xslCopyOf = xsltDomDocument .evaluate('/xsl:stylesheet/xsl:template/ShipOrder/xsl:copy-of', xsltDomDocument, null, XPathResult.ANY_TYPE) @@ -170,12 +183,15 @@ describe('MappingSerializerService', () => { }); it('should serialize structured parameter field mapping', () => { - const serialized = MappingSerializerService.serialize([ - { - sourceFields: [getField(sourceParamDoc, '/ShipOrder/Item')], - targetFields: [getField(targetDoc, '/ShipOrder/Item')], - }, - ] as IMapping[]); + const serialized = MappingSerializerService.serialize( + [ + { + sourceFields: [getField(sourceParamDoc, '/ShipOrder/Item')], + targetFields: [getField(targetDoc, '/ShipOrder/Item')], + }, + ] as IMapping[], + sourceParameterMap, + ); const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); const xslParam = xsltDomDocument .evaluate('/xsl:stylesheet/xsl:param', xsltDomDocument, null, XPathResult.ANY_TYPE) @@ -214,12 +230,15 @@ describe('MappingSerializerService', () => { }); it('should serialize primitive parameter to primitive target body mapping', () => { - const serialized = MappingSerializerService.serialize([ - { - sourceFields: [sourcePrimitiveParamDoc as IField], - targetFields: [targetPrimitiveDoc as IField], - }, - ] as IMapping[]); + const serialized = MappingSerializerService.serialize( + [ + { + sourceFields: [sourcePrimitiveParamDoc as IField], + targetFields: [targetPrimitiveDoc as IField], + }, + ] as IMapping[], + sourceParameterMap, + ); const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); const xslParam = xsltDomDocument .evaluate('/xsl:stylesheet/xsl:param', xsltDomDocument, null, XPathResult.ANY_TYPE) diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index b7a082fef..87c433b59 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -1,4 +1,4 @@ -import { DocumentType, IField, IMapping, PrimitiveDocument } from '../models'; +import { DocumentType, IDocument, IField, IMapping, PrimitiveDocument } from '../models'; import xmlFormat from 'xml-formatter'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; @@ -14,14 +14,43 @@ export class MappingSerializerService { return new DOMParser().parseFromString(EMPTY_XSL, 'application/xml'); } - static serialize(mappings: IMapping[]): string { + static serialize(mappings: IMapping[], sourceParameterMap: Map): string { const xslt = MappingSerializerService.createNew(); + MappingSerializerService.populateParam(xslt, sourceParameterMap); mappings.forEach((mapping) => { MappingSerializerService.populateMapping(xslt, mapping); }); return xmlFormat(new XMLSerializer().serializeToString(xslt)); } + static populateParam(xsltDocument: Document, sourceParameterMap: Map) { + sourceParameterMap.forEach((_doc, paramName) => { + const prefix = xsltDocument.lookupPrefix(NS_XSL); + const nsResolver = xsltDocument.createNSResolver(xsltDocument); + const existing = xsltDocument + .evaluate( + `/${prefix}:stylesheet/${prefix}:param[@name='${paramName}']`, + xsltDocument, + nsResolver, + XPathResult.ANY_TYPE, + ) + .iterateNext(); + if (!existing) { + const xsltParam = xsltDocument.createElementNS(NS_XSL, 'param'); + xsltParam.setAttribute('name', paramName); + const template = xsltDocument + .evaluate( + `/${prefix}:stylesheet/${prefix}:template[@match='/']`, + xsltDocument, + nsResolver, + XPathResult.ANY_TYPE, + ) + .iterateNext()!; + (template.parentNode as Element).insertBefore(xsltParam, template); + } + }); + } + static populateMapping(xsltDocument: Document, mapping: IMapping) { const source = mapping.sourceFields[0]; const target = mapping.targetFields[0]; @@ -37,7 +66,6 @@ export class MappingSerializerService { if (!template || template.nodeType !== Node.ELEMENT_NODE) { throw Error('No root template in the XSLT document'); } - MappingSerializerService.populateParam(xsltDocument, source); const parent = target instanceof PrimitiveDocument ? template @@ -117,34 +145,6 @@ export class MappingSerializerService { } } - static populateParam(xsltDocument: Document, source: IField) { - if (source.ownerDocument.documentType !== DocumentType.PARAM) return; - const paramName = source.ownerDocument.documentId; - const prefix = xsltDocument.lookupPrefix(NS_XSL); - const nsResolver = xsltDocument.createNSResolver(xsltDocument); - const existing = xsltDocument - .evaluate( - `/${prefix}:stylesheet/${prefix}:param[@name='${paramName}']`, - xsltDocument, - nsResolver, - XPathResult.ANY_TYPE, - ) - .iterateNext(); - if (!existing) { - const xsltParam = xsltDocument.createElementNS(NS_XSL, 'param'); - xsltParam.setAttribute('name', paramName); - const template = xsltDocument - .evaluate( - `/${prefix}:stylesheet/${prefix}:template[@match='/']`, - xsltDocument, - nsResolver, - XPathResult.ANY_TYPE, - ) - .iterateNext()!; - (template.parentNode as Element).insertBefore(xsltParam, template); - } - } - static getXPath(xsltDocument: Document, field: IField) { const fieldStack = MappingSerializerService.getFieldStack(field, true); const pathStack: string[] = []; From 6cce6ed3be6860959042d79d4aabb681544a54ae Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 5 Apr 2024 23:12:38 -0400 Subject: [PATCH 138/471] feat: Add SelectMappingButton on each field Fixes: #136 --- .../ui/src/components/document/Document.scss | 6 ++ .../ui/src/components/document/Document.tsx | 1 + .../src/components/document/DocumentField.tsx | 63 +++++++++++++++++-- .../mapping-serializer.service.test.ts | 11 +++- packages/ui/src/services/mapping.service.ts | 8 +++ 5 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 packages/ui/src/components/document/Document.scss diff --git a/packages/ui/src/components/document/Document.scss b/packages/ui/src/components/document/Document.scss new file mode 100644 index 000000000..6bd41510f --- /dev/null +++ b/packages/ui/src/components/document/Document.scss @@ -0,0 +1,6 @@ +.document-field { + &__button { + padding-top: 0; + padding-bottom: 0; + } +} \ No newline at end of file diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx index ebdd29e22..00e2e7345 100644 --- a/packages/ui/src/components/document/Document.tsx +++ b/packages/ui/src/components/document/Document.tsx @@ -20,6 +20,7 @@ import { DetachSchemaButton } from './DetachSchemaButton'; import { DeleteParameterButton } from './DeleteParameterButton'; import { NodeContainer } from './NodeContainer'; import { NodeReference } from '../../providers/CanvasProvider'; +import './Document.scss'; export type DocumentProps = { documentType: DocumentType; diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index 63fd4e55c..9a5d6a834 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -1,11 +1,58 @@ -import { AccordionContent, AccordionItem, AccordionToggle, Split, SplitItem } from '@patternfly/react-core'; -import { FunctionComponent, useImperativeHandle, useMemo, useRef, useState } from 'react'; +import { + AccordionContent, + AccordionItem, + AccordionToggle, + ActionList, + ActionListItem, + Button, + Split, + SplitItem, + Tooltip, +} from '@patternfly/react-core'; +import { FunctionComponent, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react'; import { IField } from '../../models'; import { useCanvas } from '../../hooks/useCanvas'; import { DocumentType } from '../../models/document'; import { NodeContainer } from './NodeContainer'; -import { GripVerticalIcon } from '@patternfly/react-icons'; +import { CircleIcon, GripVerticalIcon } from '@patternfly/react-icons'; import { NodeReference } from '../../providers/CanvasProvider'; +import './Document.scss'; +import { useDataMapper } from '../../hooks'; +import { MappingService } from '../../services/mapping.service'; +import './Document.scss'; + +type DocumentFieldButtonsProps = { + field: IField; +}; + +const DocumentFieldButtons: FunctionComponent = ({ field }) => { + const { mappings, setSelectedMapping } = useDataMapper(); + const correlatedMappings = MappingService.getMappingsFor(mappings, field); + + const handleSelectMapping = useCallback(() => { + setSelectedMapping(correlatedMappings[0]); + }, [correlatedMappings, setSelectedMapping]); + + return ( + + {correlatedMappings.length > 0 && ( + + + + + + )} + + ); +}; type DocumentFieldProps = { documentType: DocumentType; @@ -39,7 +86,10 @@ export const DocumentField: FunctionComponent = ({ documentT - {field.expression} + {field.expression} + + +
    @@ -53,7 +103,10 @@ export const DocumentField: FunctionComponent = ({ documentT - {field.expression} + {field.expression} + + +
    diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index a57e51151..58f82fffd 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -240,9 +240,14 @@ describe('MappingSerializerService', () => { sourceParameterMap, ); const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); - const xslParam = xsltDomDocument - .evaluate('/xsl:stylesheet/xsl:param', xsltDomDocument, null, XPathResult.ANY_TYPE) - .iterateNext() as Element; + const xpathResult = xsltDomDocument.evaluate( + '/xsl:stylesheet/xsl:param', + xsltDomDocument, + null, + XPathResult.ANY_TYPE, + ); + xpathResult.iterateNext(); + const xslParam = xpathResult.iterateNext() as Element; expect(xslParam.getAttribute('name')).toEqual('primitive'); const xslValueOf = xsltDomDocument .evaluate('/xsl:stylesheet/xsl:template/xsl:value-of', xsltDomDocument, null, XPathResult.ANY_TYPE) diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 304e0d59e..aa0b4b365 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -48,4 +48,12 @@ export class MappingService { targetFields: [targetField], } as IMapping; } + + static getMappingsFor(allMappings: IMapping[], field: IField) { + if (field.ownerDocument.documentType === DocumentType.TARGET_BODY) { + return allMappings.filter((m) => m.targetFields.indexOf(field) !== -1); + } else { + return allMappings.filter((m) => m.sourceFields.indexOf(field) !== -1); + } + } } From f7cf537ebc76a439fbbe00b2ea3bdbfbbc40b20d Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Sat, 6 Apr 2024 09:00:15 -0400 Subject: [PATCH 139/471] fix: Stop propagation after SelectMappingButton click event so that the collapse/expand won't happen at the same time --- .../ui/src/components/document/DocumentField.tsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index 9a5d6a834..f8e1b0e09 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -9,7 +9,7 @@ import { SplitItem, Tooltip, } from '@patternfly/react-core'; -import { FunctionComponent, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react'; +import { FunctionComponent, MouseEvent, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react'; import { IField } from '../../models'; import { useCanvas } from '../../hooks/useCanvas'; import { DocumentType } from '../../models/document'; @@ -29,9 +29,13 @@ const DocumentFieldButtons: FunctionComponent = ({ fi const { mappings, setSelectedMapping } = useDataMapper(); const correlatedMappings = MappingService.getMappingsFor(mappings, field); - const handleSelectMapping = useCallback(() => { - setSelectedMapping(correlatedMappings[0]); - }, [correlatedMappings, setSelectedMapping]); + const handleSelectMapping = useCallback( + (event: MouseEvent) => { + setSelectedMapping(correlatedMappings[0]); + event.stopPropagation(); + }, + [correlatedMappings, setSelectedMapping], + ); return ( From 6c3220dd41cb8e3ae8713e1a19537f4cce813e81 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Sat, 6 Apr 2024 09:23:33 -0400 Subject: [PATCH 140/471] fix --- packages/ui/src/components/document/DocumentField.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index f8e1b0e09..9b7d7e203 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -30,7 +30,7 @@ const DocumentFieldButtons: FunctionComponent = ({ fi const correlatedMappings = MappingService.getMappingsFor(mappings, field); const handleSelectMapping = useCallback( - (event: MouseEvent) => { + (event: MouseEvent) => { setSelectedMapping(correlatedMappings[0]); event.stopPropagation(); }, From dfc1eb52c739dd270a5f9c97cc886fd441bd05b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:09:22 +0000 Subject: [PATCH 141/471] chore(deps): update dependency @storybook/addon-actions to v8.0.6 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 475af68e7..de9afef25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3475,16 +3475,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.5 - resolution: "@storybook/addon-actions@npm:8.0.5" + version: 8.0.6 + resolution: "@storybook/addon-actions@npm:8.0.6" dependencies: - "@storybook/core-events": 8.0.5 + "@storybook/core-events": 8.0.6 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: d82bbdb6c0c443095ee88176bf7dd512e41d0df94909c5fd77166dec66f783bf053a444c336f12db9f0c5680128eaba50957d89806569657bf46a899210924a0 + checksum: c937b93e24716034b4d0f237c7ee46306dab4ffb386ea1459943a0fee4913c5d8b9aa72d2065b70015d7c4a9a846a70c70d9b51845fc2067e719b7fab82af2ed languageName: node linkType: hard @@ -3520,12 +3520,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.5": - version: 8.0.5 - resolution: "@storybook/core-events@npm:8.0.5" +"@storybook/core-events@npm:8.0.6": + version: 8.0.6 + resolution: "@storybook/core-events@npm:8.0.6" dependencies: ts-dedent: ^2.0.0 - checksum: d21293b760f16ce63ccbf6829213de5b7cdd54cb495a23a0311ae2edd388336e0fc6752f92f6c79115435a156258516d0ff5cd658189ca18a2b2cdd3382684c1 + checksum: 8a44d91bf66a7dcbd146a81bd50b32bbc6f56683d27e07dfd8ba8953a4c165294b921a6ad3671d2b9cc87e6d5ed9b25e8f5877026a78111b85b30102a927fe02 languageName: node linkType: hard From 95be5b7b06cfb35aa0f2e7b4c2410f4a364b25f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:09:49 +0000 Subject: [PATCH 142/471] chore(deps): update dependency @types/node to v20.12.5 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index de9afef25..a0d78c30c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4069,11 +4069,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.4 - resolution: "@types/node@npm:20.12.4" + version: 20.12.5 + resolution: "@types/node@npm:20.12.5" dependencies: undici-types: ~5.26.4 - checksum: c29879642bd4f1f35ffc6e2356121c5ffdb6530d41db1e6ac013c6fbd1dfa4b213b9529a1213cf1f320f801423d00301176ffb41689f790b0cd8c1e82fe3ee74 + checksum: 38358c091392bb3def1136772ada4ccd39a9429d459160b5ab728b690d2f15f2212eafd9e65ce716e270f70a4e6927ebffccfefc08dabdf68f4016c1fc8a7938 languageName: node linkType: hard From f35b4734b1db0f198b039d79e0130a2385581d15 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 01:13:33 +0000 Subject: [PATCH 143/471] chore(deps): update dependency @testing-library/react to v14.3.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a0d78c30c..5d4b11b77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3586,8 +3586,8 @@ __metadata: linkType: hard "@testing-library/react@npm:^14.2.2": - version: 14.2.2 - resolution: "@testing-library/react@npm:14.2.2" + version: 14.3.0 + resolution: "@testing-library/react@npm:14.3.0" dependencies: "@babel/runtime": ^7.12.5 "@testing-library/dom": ^9.0.0 @@ -3595,7 +3595,7 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: cb73df588592d9101429f057eaa6f320fc12524d5eb2acc8a16002c1ee2d9422a49e44841003bba42974c9ae1ced6b134f0d647826eca42ab8f19e4592971b16 + checksum: 4aa7e583feac7e9bd93ff981d1dc5113329181bf01ad955af2f748f263dc52cdbff6ead6664a8762481e30b70d7f402aaac7a497d9d1a1747ad6906dfb0eabad languageName: node linkType: hard From 4aeb500ab5d6d41a90c3ff3b5ea6e8620974ced4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 05:04:33 +0000 Subject: [PATCH 144/471] chore(deps): update dependency @types/node to v20.12.6 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5d4b11b77..30b5ddf75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4069,11 +4069,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.5 - resolution: "@types/node@npm:20.12.5" + version: 20.12.6 + resolution: "@types/node@npm:20.12.6" dependencies: undici-types: ~5.26.4 - checksum: 38358c091392bb3def1136772ada4ccd39a9429d459160b5ab728b690d2f15f2212eafd9e65ce716e270f70a4e6927ebffccfefc08dabdf68f4016c1fc8a7938 + checksum: d16272276349244b1b6f15b0a23ce380efe3dfe46ace1ae37d58e791a8e53d832a2dc72d1afe01d7e5bb0ec1fba70ddd58b1da87921ec913e600331b3b906be9 languageName: node linkType: hard From 1a1e29c58df17a81450b5c3bfe4cadb382770ec0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Apr 2024 01:14:12 +0000 Subject: [PATCH 145/471] chore(deps): update eslint to v7.6.0 --- yarn.lock | 161 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 84 insertions(+), 77 deletions(-) diff --git a/yarn.lock b/yarn.lock index 30b5ddf75..9cf6811d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2150,7 +2150,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b @@ -4054,7 +4054,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -4150,13 +4150,20 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": +"@types/semver@npm:^7.3.12": version: 7.5.7 resolution: "@types/semver@npm:7.5.7" checksum: 5af9b13e3d74d86d4b618f6506ccbded801fb35dbc28608cd5a7bfb8bcac0021dd35ef305a72a0c2a8def0cff60acd706bfee16a9ed1c39a893d2a175e778ea7 languageName: node linkType: hard +"@types/semver@npm:^7.5.8": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 + languageName: node + linkType: hard + "@types/stack-utils@npm:^2.0.0": version: 2.0.3 resolution: "@types/stack-utils@npm:2.0.3" @@ -4195,45 +4202,45 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.5.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.5.0" - dependencies: - "@eslint-community/regexpp": ^4.5.1 - "@typescript-eslint/scope-manager": 7.5.0 - "@typescript-eslint/type-utils": 7.5.0 - "@typescript-eslint/utils": 7.5.0 - "@typescript-eslint/visitor-keys": 7.5.0 + version: 7.6.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.6.0" + dependencies: + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 7.6.0 + "@typescript-eslint/type-utils": 7.6.0 + "@typescript-eslint/utils": 7.6.0 + "@typescript-eslint/visitor-keys": 7.6.0 debug: ^4.3.4 graphemer: ^1.4.0 - ignore: ^5.2.4 + ignore: ^5.3.1 natural-compare: ^1.4.0 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 peerDependencies: "@typescript-eslint/parser": ^7.0.0 eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 02ca180a4e46df840b84221219800cc5f6371254a37be7932a2586768925d8c8897b9eebe92d32093be254a98f10eae8b291638515edd79571826d6840044332 + checksum: 4e5a5ab8abf71cc46bcbe462673421b68651be7c72f0bb00d9660eedaeb1db2b51c5f8c7a869761be355cf15900ed2cb5b37a838dd52cd246aaca45c2a0903e7 languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.5.0 - resolution: "@typescript-eslint/parser@npm:7.5.0" + version: 7.6.0 + resolution: "@typescript-eslint/parser@npm:7.6.0" dependencies: - "@typescript-eslint/scope-manager": 7.5.0 - "@typescript-eslint/types": 7.5.0 - "@typescript-eslint/typescript-estree": 7.5.0 - "@typescript-eslint/visitor-keys": 7.5.0 + "@typescript-eslint/scope-manager": 7.6.0 + "@typescript-eslint/types": 7.6.0 + "@typescript-eslint/typescript-estree": 7.6.0 + "@typescript-eslint/visitor-keys": 7.6.0 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: c9f85ae638e27fb249e565fc299cfee456b15f6a67156f373c10fa6e310a470b5298e174ca75309789c4cf1acd1a9fd3391d5fe128208b05bac0b701d5ddf512 + checksum: 96f8219765c7427d679c8a69180ddceafe595ed7fcd796ef00ce7bf5b289725191f0d26bd7009e092010085e7cb54446965b7cdc94e9b30adad80004c34fbbbe languageName: node linkType: hard @@ -4247,30 +4254,30 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/scope-manager@npm:7.5.0" +"@typescript-eslint/scope-manager@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/scope-manager@npm:7.6.0" dependencies: - "@typescript-eslint/types": 7.5.0 - "@typescript-eslint/visitor-keys": 7.5.0 - checksum: 13d858ca9f77922578b154b8568ca172dc8bd3a557ec60b4d027174675e243e34f189127ae073b052c78a96aca2cbad098318388db8723bce25d0a63dd0ba8e3 + "@typescript-eslint/types": 7.6.0 + "@typescript-eslint/visitor-keys": 7.6.0 + checksum: 07c0215bb9631dc580801d860b90d30bf5815bd3acfa1f50d7d7c28625ec90b6c74076d352a1f4d3b2043345b7c2f72575cee7cfc9ad8dcb3d6c8f1ddc7bc2f3 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/type-utils@npm:7.5.0" +"@typescript-eslint/type-utils@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/type-utils@npm:7.6.0" dependencies: - "@typescript-eslint/typescript-estree": 7.5.0 - "@typescript-eslint/utils": 7.5.0 + "@typescript-eslint/typescript-estree": 7.6.0 + "@typescript-eslint/utils": 7.6.0 debug: ^4.3.4 - ts-api-utils: ^1.0.1 + ts-api-utils: ^1.3.0 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 9dce5f7f9981febd5967c3c45266787ddf5805fcef40fd2cb644503a32aee4d06de77d64dc3903e61caff3a1a76817c0b3be35703401ddf1bec84c76757f0f69 + checksum: eb86c475c21ad573877c6c71eb92b501eb2a7a945cb0aad373a11be0df4410dc8a8fa08ef390653f402de929ac9e2721c427d18e681f96d7dd38deaa4a97d051 languageName: node linkType: hard @@ -4288,10 +4295,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/types@npm:7.5.0" - checksum: 038e5b10680fd32da8455d0590437888f57511ed8c2b984511890d6bfc0b230b269bc3de6970cc76660e8fd65657e201316bc4abd9758a2d6efb49d659dd4199 +"@typescript-eslint/types@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/types@npm:7.6.0" + checksum: 5e3157ff8d24e9dd384ed189e89e920bb2525c95330e9f87a9f9fc65c12ab4a2e701b380ede5a655dc4c4517ae27f1b9ca6b3cfb3dada02f03dd634559f06ea1 languageName: node linkType: hard @@ -4313,22 +4320,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.5.0" +"@typescript-eslint/typescript-estree@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.6.0" dependencies: - "@typescript-eslint/types": 7.5.0 - "@typescript-eslint/visitor-keys": 7.5.0 + "@typescript-eslint/types": 7.6.0 + "@typescript-eslint/visitor-keys": 7.6.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 - minimatch: 9.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 peerDependenciesMeta: typescript: optional: true - checksum: ebc6838af9cf25be3c07ba4ea91bbbc2450d835eeb775139a0ed6344baf193824b0fd5319c0fe94d55c822a54670344655937894f6d0dc77bfbfcdc0493e567d + checksum: 8a19895fc58de1094787e03b31a4a7fe96728e1071b0ddfbaeaecfdb15aca3cdc38944ca27a9c3ea0a5304c0c5339f587e67e97f958c1cbb7678c4f99c91d58d languageName: node linkType: hard @@ -4350,20 +4357,20 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/utils@npm:7.5.0" +"@typescript-eslint/utils@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/utils@npm:7.6.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.12 - "@types/semver": ^7.5.0 - "@typescript-eslint/scope-manager": 7.5.0 - "@typescript-eslint/types": 7.5.0 - "@typescript-eslint/typescript-estree": 7.5.0 - semver: ^7.5.4 + "@types/json-schema": ^7.0.15 + "@types/semver": ^7.5.8 + "@typescript-eslint/scope-manager": 7.6.0 + "@typescript-eslint/types": 7.6.0 + "@typescript-eslint/typescript-estree": 7.6.0 + semver: ^7.6.0 peerDependencies: eslint: ^8.56.0 - checksum: 03d5563f50da5f35c84c7ea9dd1c671afa668d614eacb3dff38a94b9f399bd4e371348f6a2feb1cbf0fcb3e3e6d0f662cef8d93a9f3a29ea9a4176aa3abc4902 + checksum: 22475182efee7b19b18d6aee2fe7dbac6303c9b41d99b3323a6cb295bf2cd3505ac2ebc6a0acffccbd8af2917ba42c055404bbed9687af760badd5f0bdbc17b8 languageName: node linkType: hard @@ -4405,13 +4412,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.5.0": - version: 7.5.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.5.0" +"@typescript-eslint/visitor-keys@npm:7.6.0": + version: 7.6.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.6.0" dependencies: - "@typescript-eslint/types": 7.5.0 - eslint-visitor-keys: ^3.4.1 - checksum: 8de0d3fb470f60b3aca7073ff62c7f9fe078d77c48d43033622ff059f201223fe35eaf834a6b63d95ee5d4c0e2e13669de3f20e4f4de597596dcf63537a60693 + "@typescript-eslint/types": 7.6.0 + eslint-visitor-keys: ^3.4.3 + checksum: 9f0378435636a6a80dfcbedfcdf5fd43f200628e0359879f2d8b7ed0b73563e727ad356f7fe9c07d5e09a642c45927b1380a8418a60b8169f7ae749f59f14b9a languageName: node linkType: hard @@ -10119,15 +10126,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 - languageName: node - linkType: hard - "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -10137,6 +10135,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + "minimatch@npm:^9.0.4": version: 9.0.4 resolution: "minimatch@npm:9.0.4" @@ -13142,12 +13149,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.2.1 - resolution: "ts-api-utils@npm:1.2.1" +"ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" peerDependencies: typescript: ">=4.2.0" - checksum: 17a2a4454d65a6765b9351304cfd516fcda3098f49d72bba90cb7f22b6a09a573b4a1993fd7de7d6b8046c408960c5f21a25e64ccb969d484b32ea3b3e19d6e4 + checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 languageName: node linkType: hard From de8da3dc9bd9656b7ba87f1881ef16924e39bdf1 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 11 Apr 2024 11:45:56 -0400 Subject: [PATCH 146/471] checkpoint: XPath 2.0 parser (#138) CST is sucessfully created. For next, build the model from it, probably with using CST visitor - https://chevrotain.io/docs/guide/concrete_syntax_tree.html#cst-visitor --- packages/ui/package.json | 1 + .../ui/src/services/xpath/xpath-2.0-parser.ts | 739 ++++++++++++++++++ .../xpath/xpath-parser.service.test.ts | 18 + .../services/xpath/xpath-parser.service.ts | 10 + .../ui/src/services/xpath/xpath-parser.ts | 11 + yarn.lock | 59 +- 6 files changed, 837 insertions(+), 1 deletion(-) create mode 100644 packages/ui/src/services/xpath/xpath-2.0-parser.ts create mode 100644 packages/ui/src/services/xpath/xpath-parser.service.test.ts create mode 100644 packages/ui/src/services/xpath/xpath-parser.service.ts create mode 100644 packages/ui/src/services/xpath/xpath-parser.ts diff --git a/packages/ui/package.json b/packages/ui/package.json index 70d857e03..64cedc81a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -48,6 +48,7 @@ "@patternfly/react-table": "^5.1.2", "@patternfly/react-topology": "^5.1.0", "@types/pako": "^2.0.3", + "chevrotain": "10.5.0", "d3-scale": "^4.0.2", "d3-shape": "^3.2.0", "file-saver": "^2.0.5", diff --git a/packages/ui/src/services/xpath/xpath-2.0-parser.ts b/packages/ui/src/services/xpath/xpath-2.0-parser.ts new file mode 100644 index 000000000..726109f4e --- /dev/null +++ b/packages/ui/src/services/xpath/xpath-2.0-parser.ts @@ -0,0 +1,739 @@ +import { defaultParserErrorProvider, IParserConfig, ITokenConfig, TokenType } from 'chevrotain'; +import { createToken as orgCreateToken, CstParser, Lexer } from 'chevrotain'; +import { XPathParser, XPathParserResult } from './xpath-parser'; + +const fragments: Record = {}; +const f = fragments; + +fragments['NameStartChar'] = /[a-zA-Z]|\\u2070-\\u218F|\\u2C00-\\u2FEF|\\u3001-\\uD7FF|\\uF900-\\uFDCF|\\uFDF0-\\uFFFD/; +fragments['NameChar'] = new RegExp( + `(${f.NameStartChar.source})|-|_|\\.|\\d|\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]`, +); +fragments['Name'] = new RegExp(`(${f.NameStartChar.source})(${f.NameChar.source})*`); +fragments['StringLiteral'] = /("(""|[^"])*")|('(''|[^'])*')/; +fragments['Digits'] = /[0-9]+/; +fragments['DecimalLiteral'] = /(\.[0-9]+)|([0-9]+\.[0-9]*)/; +fragments['DoubleLiteral'] = /((\.[0-9]+)|([0-9]+(\.[0-9]*)?))[eE][+-]?[0-9]+/; + +const allTokens: TokenType[] = []; + +function createToken(options: ITokenConfig) { + const newToken = orgCreateToken(options); + allTokens.push(newToken); + return newToken; +} + +createToken({ + name: 'WhiteSpace', + pattern: /\s+/, + group: Lexer.SKIPPED, +}); + +const Comma = createToken({ name: 'Comma', pattern: /,/ }); +const Return = createToken({ name: 'Returns', pattern: /return/ }); +const For = createToken({ name: 'For', pattern: /for/ }); +const Dollar = createToken({ name: 'Dollar', pattern: /\$/ }); +const Intersect = createToken({ name: 'Intersect', pattern: /intersect/ }); +const Instance = createToken({ name: 'Instance', pattern: /instance/ }); +const In = createToken({ name: 'In', pattern: /in/ }); +const Some = createToken({ name: 'Some', pattern: /some/ }); +const Every = createToken({ name: 'Every', pattern: /every/ }); +const Satisfies = createToken({ name: 'Satisfies', pattern: /satisfies/ }); +const If = createToken({ name: 'If', pattern: /if/ }); +const Then = createToken({ name: 'Then', pattern: /then/ }); +const Else = createToken({ name: 'Else', pattern: /else/ }); +const LParen = createToken({ name: 'LParen', pattern: /\(/ }); +const RParen = createToken({ name: 'RParen', pattern: /\)/ }); +const Or = createToken({ name: 'Or', pattern: /or/ }); +const And = createToken({ name: 'And', pattern: /and/ }); +const To = createToken({ name: 'To', pattern: /to/ }); +const Plus = createToken({ name: 'Plus', pattern: /\+/ }); +const Minus = createToken({ name: 'Minus', pattern: /-/ }); +const Asterisk = createToken({ name: 'Asterisk', pattern: /\*/ }); +const Div = createToken({ name: 'Div', pattern: /div/ }); +const Idiv = createToken({ name: 'Tdiv', pattern: /idiv/ }); +const Mod = createToken({ name: 'Mod', pattern: /mod/ }); +const Union = createToken({ name: 'Union', pattern: /union/ }); +const Pipe = createToken({ name: 'Pipe', pattern: /\|/ }); +const Except = createToken({ name: 'Except', pattern: /except/ }); +const Of = createToken({ name: 'Of', pattern: /of/ }); +const Treat = createToken({ name: 'Treat', pattern: /treat/ }); +const Castable = createToken({ name: 'Castable', pattern: /castable/ }); +const As = createToken({ name: 'As', pattern: /as/ }); +const Cast = createToken({ name: 'Cast', pattern: /cast/ }); +const Equal = createToken({ name: 'Equal', pattern: /=/ }); +const NotEqual = createToken({ name: 'NotEqual', pattern: /!=/ }); +const Precede = createToken({ name: 'Precede', pattern: /<>/ }); +const GreaterThanEqual = createToken({ name: 'GreaterThanEqual', pattern: />=/ }); +const GreaterThan = createToken({ name: 'GreaterThan', pattern: />/ }); +const Eq = createToken({ name: 'Eq', pattern: /eq/ }); +const Ne = createToken({ name: 'Ne', pattern: /ne/ }); +const Lt = createToken({ name: 'Lt', pattern: /lt/ }); +const Le = createToken({ name: 'Le', pattern: /le/ }); +const Gt = createToken({ name: 'Gt', pattern: /gt/ }); +const Ge = createToken({ name: 'Ge', pattern: /ge/ }); +const Is = createToken({ name: 'Is', pattern: /is/ }); +const DoubleSlash = createToken({ name: 'DoubleSlash', pattern: /\/\// }); +const Slash = createToken({ name: 'Slash', pattern: /\// }); +const DoubleColon = createToken({ name: 'DoubleColon', pattern: /::/ }); +const Colon = createToken({ name: 'Colon', pattern: /:/ }); +const Child = createToken({ name: 'Child', pattern: /child/ }); +const DescendantOrSelf = createToken({ name: 'DescendantOrSelf', pattern: /descendant-or-self/ }); +const Descendant = createToken({ name: 'Descendant', pattern: /descendant/ }); +const Attribute = createToken({ name: 'Attribute', pattern: /attribute/ }); +const Self = createToken({ name: 'Self', pattern: /self/ }); +const FollowingSibling = createToken({ name: 'FollowingSibling', pattern: /following-sibling/ }); +const Following = createToken({ name: 'Following', pattern: /followed-sibling/ }); +const Namespace = createToken({ name: 'Namespace', pattern: /namespace/ }); +const Parent = createToken({ name: 'Parent', pattern: /parent/ }); +const AncestorOrSelf = createToken({ name: 'AncestorOrSelf', pattern: /ancestor-or-self/ }); +const Ancestor = createToken({ name: 'Ancestor', pattern: /ancestor/ }); +const PrecedingSibling = createToken({ name: 'PrecedingSibling', pattern: /preceding-sibling/ }); +const Preceding = createToken({ name: 'Preceding', pattern: /preceding/ }); +const ContextItemExpr = createToken({ name: 'ContextItemExpr', pattern: /\./ }); +const AbbrevReverseStep = createToken({ name: 'AbbrevReverseStep', pattern: /\.\./ }); +const At = createToken({ name: 'At', pattern: /@/ }); +const LSquare = createToken({ name: 'LSquare', pattern: /\[/ }); +const RSquare = createToken({ name: 'RSquare', pattern: /]/ }); +const Question = createToken({ name: 'Question', pattern: /\?/ }); +const Item = createToken({ name: 'Item', pattern: /item/ }); +const Node = createToken({ name: 'Node', pattern: /node/ }); +const DocumentNode = createToken({ name: 'DocumentNode', pattern: /document-node/ }); +const Text = createToken({ name: 'Text', pattern: /text/ }); +const Comment = createToken({ name: 'Comment', pattern: /comment/ }); +const ProcessingInstruction = createToken({ name: 'ProcessingInstruction', pattern: /processing-instruction/ }); +const SchemaAttribute = createToken({ name: 'SchemaAttribute', pattern: /schema-attribute/ }); +const Element = createToken({ name: 'Element', pattern: /element/ }); +const SchemaElement = createToken({ name: 'SchemaElement', pattern: /schema-element/ }); +const EmptySequence = createToken({ name: 'EmptySequence', pattern: /empty-sequence/ }); + +const NCName = createToken({ name: 'NCName', pattern: fragments['Name'] }); +const StringLiteral = createToken({ name: 'StringLiteral', pattern: fragments['StringLiteral'] }); +const IntegerLiteral = createToken({ name: 'IntegerLiteral', pattern: fragments['Digits'] }); +const DecimalLiteral = createToken({ name: 'DecimalLiteral', pattern: fragments['DecimalLiteral'] }); +const DoubleLiteral = createToken({ name: 'DoubleLiteral', pattern: fragments['DoubleLiteral'] }); + +/** + * XPath 2.0 Parser which implements the EBNF defined in the W3C specification + * - https://www.w3.org/TR/xpath20/#id-grammar + */ +export class XPath2Parser extends CstParser implements XPathParser { + static lexer = new Lexer(allTokens); + + constructor() { + super(allTokens, { + recoveryEnabled: false, + maxLookahead: 5, + dynamicTokensEnabled: false, + outputCst: true, + errorMessageProvider: defaultParserErrorProvider, + nodeLocationTracking: 'none', + traceInitPerf: false, + skipValidations: false, + } as IParserConfig & { outputCst: boolean }); + this.performSelfAnalysis(); + } + + parseXPath(xpath: string): XPathParserResult { + const lexResult = XPath2Parser.lexer.tokenize(xpath); + this.input = lexResult.tokens; + const cst = this.Expr(); + + return { + cst: cst, + lexErrors: lexResult.errors, + parseErrors: this.errors, + }; + } + + private Expr = this.RULE('Expr', () => { + this.SUBRULE(this.ExprSingle); + this.MANY(() => { + this.CONSUME(Comma); + this.SUBRULE2(this.ExprSingle); + }); + }); + + private ExprSingle = this.RULE('ExprSingle', () => { + this.OR([ + { ALT: () => this.SUBRULE(this.ForExpr) }, + { ALT: () => this.SUBRULE(this.QuantifiedExpr) }, + { ALT: () => this.SUBRULE(this.IfExpr) }, + { ALT: () => this.SUBRULE(this.OrExpr) }, + ]); + }); + + private ForExpr = this.RULE('ForExpr', () => { + this.SUBRULE(this.SimpleForClause); + this.CONSUME(Return); + this.SUBRULE(this.ExprSingle); + }); + + private SimpleForClause = this.RULE('SimpleForClause', () => { + this.CONSUME(For); + this.SUBRULE(this.VarRef); + this.CONSUME(In); + this.SUBRULE(this.ExprSingle); + this.MANY(() => { + this.CONSUME(Comma); + this.SUBRULE2(this.VarRef); + this.CONSUME2(In); + this.SUBRULE2(this.ExprSingle); + }); + }); + + private QuantifiedExpr = this.RULE('QuantifiedExpr', () => { + this.OR([{ ALT: () => this.CONSUME(Some) }, { ALT: () => this.CONSUME(Every) }]); + this.SUBRULE(this.VarRef); + this.CONSUME(In); + this.SUBRULE(this.ExprSingle); + this.MANY(() => { + this.CONSUME(Comma); + this.SUBRULE2(this.VarRef); + this.CONSUME2(In); + this.SUBRULE2(this.ExprSingle); + }); + this.CONSUME(Satisfies); + this.SUBRULE3(this.ExprSingle); + }); + + private IfExpr = this.RULE('IfExpr', () => { + this.CONSUME(If); + this.CONSUME(LParen); + this.SUBRULE(this.Expr); + this.CONSUME(RParen); + this.CONSUME(Then); + this.SUBRULE(this.ExprSingle); + this.CONSUME(Else); + this.SUBRULE2(this.ExprSingle); + }); + + private OrExpr = this.RULE('OrExpr', () => { + this.SUBRULE(this.AndExpr); + this.MANY(() => { + this.CONSUME(Or); + this.SUBRULE2(this.AndExpr); + }); + }); + + private AndExpr = this.RULE('AndExpr', () => { + this.SUBRULE(this.ComparisonExpr); + this.MANY(() => { + this.CONSUME(And); + this.SUBRULE2(this.ComparisonExpr); + }); + }); + + private ComparisonExpr = this.RULE('ComparisonExpr', () => { + this.SUBRULE(this.RangeExpr); + this.OPTION(() => { + this.OR([ + { ALT: () => this.SUBRULE(this.ValueComp) }, + { ALT: () => this.SUBRULE(this.GeneralComp) }, + { ALT: () => this.SUBRULE(this.NodeComp) }, + { ALT: () => this.SUBRULE2(this.RangeExpr) }, + ]); + }); + }); + + private RangeExpr = this.RULE('RangeExpr', () => { + this.SUBRULE(this.AdditiveExpr); + this.OPTION(() => { + this.CONSUME(To); + this.SUBRULE2(this.AdditiveExpr); + }); + }); + + private AdditiveExpr = this.RULE('AdditiveExpr', () => { + this.SUBRULE(this.MultiplicativeExpr); + this.MANY(() => { + this.OR([{ ALT: () => this.CONSUME(Plus) }, { ALT: () => this.CONSUME(Minus) }]); + this.SUBRULE2(this.MultiplicativeExpr); + }); + }); + + private MultiplicativeExpr = this.RULE('MultiplicativeExpr', () => { + this.SUBRULE(this.UnionExpr); + this.MANY(() => { + this.OR([ + { ALT: () => this.CONSUME(Asterisk) }, + { ALT: () => this.CONSUME(Div) }, + { ALT: () => this.CONSUME(Idiv) }, + { ALT: () => this.CONSUME(Mod) }, + ]); + this.SUBRULE2(this.UnionExpr); + }); + }); + + private UnionExpr = this.RULE('UnionExpr', () => { + this.SUBRULE(this.IntersectExceptExpr); + this.MANY(() => { + this.OR([{ ALT: () => this.CONSUME(Union) }, { ALT: () => this.CONSUME(Pipe) }]); + this.SUBRULE2(this.IntersectExceptExpr); + }); + }); + + private IntersectExceptExpr = this.RULE('IntersectExceptExpr', () => { + this.SUBRULE(this.InstanceofExpr); + this.MANY(() => { + this.OR([{ ALT: () => this.CONSUME(Intersect) }, { ALT: () => this.CONSUME(Except) }]); + this.SUBRULE2(this.InstanceofExpr); + }); + }); + + private InstanceofExpr = this.RULE('InstanceofExpr', () => { + // CastExpr + this.MANY(() => { + this.OR([{ ALT: () => this.CONSUME(Minus) }, { ALT: () => this.CONSUME(Plus) }]); + }); + this.SUBRULE(this.PathExpr); + this.OPTION(() => { + this.CONSUME(Cast); + this.CONSUME(As); + this.SUBRULE(this.SingleType); + }); + // CastableExpr + this.OPTION2(() => { + this.CONSUME(Castable); + this.CONSUME2(As); + this.SUBRULE2(this.SingleType); + }); + // TreatExpr + this.OPTION3(() => { + this.CONSUME(Treat); + this.CONSUME3(As); + this.SUBRULE3(this.SequenceType); + }); + // InstanceofExpr + this.OPTION4(() => { + this.CONSUME(Instance); + this.CONSUME(Of); + this.SUBRULE4(this.SequenceType); + }); + }); + + private GeneralComp = this.RULE('GeneralComp', () => { + this.OR([ + { ALT: () => this.CONSUME(Equal) }, + { ALT: () => this.CONSUME(NotEqual) }, + { ALT: () => this.CONSUME(LessThan) }, + { ALT: () => this.CONSUME(LessThanEqual) }, + { ALT: () => this.CONSUME(GreaterThan) }, + { ALT: () => this.CONSUME(GreaterThanEqual) }, + ]); + }); + + private ValueComp = this.RULE('ValueComp', () => { + this.OR([ + { ALT: () => this.CONSUME(Eq) }, + { ALT: () => this.CONSUME(Ne) }, + { ALT: () => this.CONSUME(Lt) }, + { ALT: () => this.CONSUME(Le) }, + { ALT: () => this.CONSUME(Gt) }, + { ALT: () => this.CONSUME(Ge) }, + ]); + }); + + private NodeComp = this.RULE('NodeComp', () => { + this.OR([ + { ALT: () => this.CONSUME(Is) }, + { ALT: () => this.CONSUME2(Precede) }, + { ALT: () => this.CONSUME(Follow) }, + ]); + }); + + private PathExpr = this.RULE('PathExpr', () => { + this.OR([ + { + ALT: () => { + this.CONSUME(Slash); + this.OPTION(() => this.SUBRULE(this.RelativePathExpr)); + }, + }, + { + ALT: () => { + this.CONSUME(DoubleSlash); + this.SUBRULE2(this.RelativePathExpr); + }, + }, + { ALT: () => this.SUBRULE3(this.RelativePathExpr) }, + ]); + }); + + private RelativePathExpr = this.RULE('RelativePathExpr', () => { + this.SUBRULE(this.StepExpr); + this.MANY(() => { + this.OR([{ ALT: () => this.CONSUME(Slash) }, { ALT: () => this.CONSUME(DoubleSlash) }]); + this.SUBRULE2(this.StepExpr); + }); + }); + + private StepExpr = this.RULE('StepExpr', () => { + this.OR([{ ALT: () => this.SUBRULE(this.FilterExpr) }, { ALT: () => this.SUBRULE(this.AxisStep) }]); + }); + + private AxisStep = this.RULE('AxisStep', () => { + this.OR([{ ALT: () => this.SUBRULE(this.ReverseStep) }, { ALT: () => this.SUBRULE(this.ForwardStep) }]); + this.SUBRULE(this.PredicateList); + }); + + private ForwardStep = this.RULE('ForwardStep', () => { + this.OR([ + { + ALT: () => { + this.SUBRULE(this.ForwardAxis); + this.SUBRULE(this.NodeTest); + }, + }, + { ALT: () => this.SUBRULE(this.AbbrevForwardStep) }, + ]); + }); + + private ForwardAxis = this.RULE('ForwardAxis', () => { + this.OR([ + { + ALT: () => { + this.CONSUME(Child); + this.CONSUME(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(Descendant); + this.CONSUME2(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(Attribute); + this.CONSUME3(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(Self); + this.CONSUME4(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(DescendantOrSelf); + this.CONSUME5(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(FollowingSibling); + this.CONSUME6(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(Following); + this.CONSUME7(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(Namespace); + this.CONSUME8(DoubleColon); + }, + }, + ]); + }); + + private AbbrevForwardStep = this.RULE('AbbrevForwardStep', () => { + this.OPTION(() => this.CONSUME(At)); + this.SUBRULE(this.NodeTest); + }); + + private ReverseStep = this.RULE('ReverseStep', () => { + this.OR([ + { + ALT: () => { + this.SUBRULE(this.ReverseAxis); + this.SUBRULE(this.NodeTest); + }, + }, + { ALT: () => this.CONSUME(AbbrevReverseStep) }, + ]); + }); + + private ReverseAxis = this.RULE('ReverseAxis', () => { + this.OR([ + { + ALT: () => { + this.CONSUME(Parent); + this.CONSUME(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(Ancestor); + this.CONSUME2(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(PrecedingSibling); + this.CONSUME3(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(Preceding); + this.CONSUME4(DoubleColon); + }, + }, + { + ALT: () => { + this.CONSUME(AncestorOrSelf); + this.CONSUME5(DoubleColon); + }, + }, + ]); + }); + + private NodeTest = this.RULE('NodeTest', () => { + this.OR([{ ALT: () => this.SUBRULE(this.KindTest) }, { ALT: () => this.SUBRULE(this.NameTest) }]); + }); + + private NameTest = this.RULE('NameTest', () => { + this.OR([ + { + ALT: () => { + this.CONSUME(NCName); + this.OPTION(() => { + this.CONSUME(Colon); + this.OR2([{ ALT: () => this.CONSUME(Asterisk) }, { ALT: () => this.CONSUME2(NCName) }]); + }); + }, + }, + { + ALT: () => { + this.CONSUME2(Asterisk); + this.OPTION2(() => { + this.CONSUME2(Colon); + this.CONSUME3(NCName); + }); + }, + }, + ]); + }); + + private FilterExpr = this.RULE('FilterExpr', () => { + this.SUBRULE(this.PrimaryExpr); + this.SUBRULE(this.PredicateList); + }); + + private PredicateList = this.RULE('PredicateList', () => { + this.MANY(() => this.SUBRULE(this.Predicate)); + }); + + private Predicate = this.RULE('Predicate', () => { + this.CONSUME(LSquare); + this.SUBRULE(this.Expr); + this.CONSUME(RSquare); + }); + + private PrimaryExpr = this.RULE('PrimaryExpr', () => { + this.OR([ + { ALT: () => this.SUBRULE(this.Literal) }, + { ALT: () => this.SUBRULE(this.VarRef) }, + { ALT: () => this.SUBRULE(this.ParenthesizedExpr) }, + { ALT: () => this.CONSUME(ContextItemExpr) }, + { ALT: () => this.SUBRULE(this.FunctionCall) }, + ]); + }); + + private Literal = this.RULE('Literal', () => { + this.OR([{ ALT: () => this.SUBRULE(this.NumericLiteral) }, { ALT: () => this.CONSUME(StringLiteral) }]); + }); + + private NumericLiteral = this.RULE('NumericLiteral', () => { + this.OR([ + { ALT: () => this.CONSUME(IntegerLiteral) }, + { ALT: () => this.CONSUME(DecimalLiteral) }, + { ALT: () => this.CONSUME(DoubleLiteral) }, + ]); + }); + + private VarRef = this.RULE('VarRef', () => { + this.CONSUME(Dollar); + this.SUBRULE(this.QName); + }); + + private ParenthesizedExpr = this.RULE('ParenthesizedExpr', () => { + this.CONSUME(LParen); + this.OPTION(() => this.SUBRULE(this.Expr)); + this.CONSUME(RParen); + }); + + private FunctionCall = this.RULE('FunctionCall', () => { + this.SUBRULE(this.QName); + this.CONSUME(LParen); + this.OPTION(() => { + this.SUBRULE(this.ExprSingle); + this.MANY(() => { + this.CONSUME(Comma); + this.SUBRULE2(this.ExprSingle); + }); + }); + this.CONSUME(RParen); + }); + + private SingleType = this.RULE('SingleType', () => { + this.SUBRULE(this.AtomicType); + this.OPTION(() => this.CONSUME(Question)); + }); + + private SequenceType = this.RULE('SequenceType', () => { + this.OR([ + { + ALT: () => { + this.CONSUME(EmptySequence); + this.CONSUME(LParen); + this.CONSUME(RParen); + }, + }, + { + ALT: () => { + this.SUBRULE(this.ItemType); + this.OPTION(() => this.SUBRULE(this.OccurrenceIndicator)); + }, + }, + ]); + }); + + private OccurrenceIndicator = this.RULE('OccurrenceIndicator', () => { + this.OR([ + { ALT: () => this.CONSUME(Question) }, + { ALT: () => this.CONSUME(Asterisk) }, + { ALT: () => this.CONSUME(Plus) }, + ]); + }); + + private ItemType = this.RULE('ItemType', () => { + this.OR([ + { ALT: () => this.SUBRULE(this.KindTest) }, + { + ALT: () => { + this.CONSUME(Item); + this.CONSUME(LParen); + this.CONSUME(RParen); + }, + }, + { ALT: () => this.SUBRULE(this.QName) }, + ]); + }); + + private KindTest = this.RULE('KindTest', () => { + this.OR([ + { ALT: () => this.SUBRULE(this.DocumentTest) }, + { ALT: () => this.SUBRULE(this.ElementTest) }, + { ALT: () => this.SUBRULE(this.AttributeTest) }, + { ALT: () => this.SUBRULE(this.SchemaElementTest) }, + { ALT: () => this.SUBRULE(this.SchemaAttributeTest) }, + { ALT: () => this.SUBRULE(this.PITest) }, + { ALT: () => this.SUBRULE(this.CommentTest) }, + { ALT: () => this.SUBRULE(this.TextTest) }, + { ALT: () => this.SUBRULE(this.AnyKindTest) }, + ]); + }); + + private AnyKindTest = this.RULE('AnyKindTest', () => { + this.CONSUME(Node); + this.CONSUME(LParen); + this.CONSUME(RParen); + }); + + private DocumentTest = this.RULE('DocumentTest', () => { + this.CONSUME(DocumentNode); + this.CONSUME(LParen); + this.OPTION(() => { + this.OR([{ ALT: () => this.SUBRULE(this.ElementTest) }, { ALT: () => this.SUBRULE(this.SchemaElementTest) }]); + }); + this.CONSUME(RParen); + }); + + private TextTest = this.RULE('TextTest', () => { + this.CONSUME(Text); + this.CONSUME(LParen); + this.CONSUME(RParen); + }); + + private CommentTest = this.RULE('CommentTest', () => { + this.CONSUME(Comment); + this.CONSUME(LParen); + this.CONSUME(RParen); + }); + + private PITest = this.RULE('PITest', () => { + this.CONSUME(ProcessingInstruction); + this.CONSUME(LParen); + this.OPTION(() => { + this.OR([{ ALT: () => this.CONSUME(NCName) }, { ALT: () => this.CONSUME(StringLiteral) }]); + }); + this.CONSUME(RParen); + }); + + private AttributeTest = this.RULE('AttributeTest', () => { + this.CONSUME(Attribute); + this.CONSUME(LParen); + this.OPTION(() => { + this.SUBRULE(this.AttribNameOrWildcard); + this.OPTION2(() => { + this.CONSUME(Comma); + this.SUBRULE(this.QName); + }); + }); + this.CONSUME(RParen); + }); + + private AttribNameOrWildcard = this.RULE('AttribNameOrWildcard', () => { + this.OR([{ ALT: () => this.SUBRULE(this.QName) }, { ALT: () => this.CONSUME(Asterisk) }]); + }); + + private SchemaAttributeTest = this.RULE('SchemaAttributeTest', () => { + this.CONSUME(SchemaAttribute); + this.CONSUME(LParen); + this.SUBRULE(this.QName); + this.CONSUME(RParen); + }); + + private ElementTest = this.RULE('ElementTest', () => { + this.CONSUME(Element); + this.CONSUME(LParen); + this.OPTION(() => { + this.SUBRULE(this.ElementNameOrWildcard); + this.OPTION2(() => { + this.CONSUME(Comma); + this.SUBRULE(this.QName); + this.OPTION3(() => this.CONSUME(Question)); + }); + }); + this.CONSUME(RParen); + }); + + private ElementNameOrWildcard = this.RULE('ElementNameOrWildcard', () => { + this.OR([{ ALT: () => this.SUBRULE(this.QName) }, { ALT: () => this.CONSUME(Asterisk) }]); + }); + + private SchemaElementTest = this.RULE('SchemaElementTest', () => { + this.CONSUME(SchemaElement); + this.CONSUME(LParen); + this.SUBRULE(this.QName); + this.CONSUME(RParen); + }); + + private QName = this.RULE('QName', () => { + this.OPTION(() => { + this.CONSUME(NCName); + this.CONSUME(Colon); + }); + this.CONSUME2(NCName); + }); +} diff --git a/packages/ui/src/services/xpath/xpath-parser.service.test.ts b/packages/ui/src/services/xpath/xpath-parser.service.test.ts new file mode 100644 index 000000000..bbfc9c52d --- /dev/null +++ b/packages/ui/src/services/xpath/xpath-parser.service.test.ts @@ -0,0 +1,18 @@ +import { XPathParserService } from './xpath-parser.service'; +import { createSyntaxDiagramsCode } from 'chevrotain'; +import * as fs from 'fs'; + +describe('XPathParserService', () => { + it('Generate Syntax Diagram', () => { + const gastProd = XPathParserService.parser.getSerializedGastProductions(); + const html = createSyntaxDiagramsCode(gastProd); + fs.writeFileSync('dist/syntax-diagram.html', html); + }); + + describe('parse()', () => { + it('should parse a field path', () => { + const result = XPathParserService.parse('aaa/bbb/ccc instance of element()'); + expect(result.cst).toBeDefined(); + }); + }); +}); diff --git a/packages/ui/src/services/xpath/xpath-parser.service.ts b/packages/ui/src/services/xpath/xpath-parser.service.ts new file mode 100644 index 000000000..a797dba2f --- /dev/null +++ b/packages/ui/src/services/xpath/xpath-parser.service.ts @@ -0,0 +1,10 @@ +import { XPath2Parser } from './xpath-2.0-parser'; +import { XPathParserResult } from './xpath-parser'; + +export class XPathParserService { + static parser = new XPath2Parser(); + + static parse(xpath: string): XPathParserResult { + return XPathParserService.parser.parseXPath(xpath); + } +} diff --git a/packages/ui/src/services/xpath/xpath-parser.ts b/packages/ui/src/services/xpath/xpath-parser.ts new file mode 100644 index 000000000..28bd70029 --- /dev/null +++ b/packages/ui/src/services/xpath/xpath-parser.ts @@ -0,0 +1,11 @@ +import type { CstNode, ILexingError, IRecognitionException } from 'chevrotain'; + +export interface XPathParserResult { + cst: CstNode; + lexErrors: ILexingError[]; + parseErrors: IRecognitionException[]; +} + +export interface XPathParser { + parseXPath(xpath: string): XPathParserResult; +} diff --git a/yarn.lock b/yarn.lock index 9cf6811d7..59e94fe5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1660,6 +1660,41 @@ __metadata: languageName: node linkType: hard +"@chevrotain/cst-dts-gen@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/cst-dts-gen@npm:10.5.0" + dependencies: + "@chevrotain/gast": 10.5.0 + "@chevrotain/types": 10.5.0 + lodash: 4.17.21 + checksum: 3ff851d5cbccc509269bb77078dafd7acfcd2e128e7d362718cde728f3fa95f4dd58eb1eea67ecf11453fba70bded97df55c5ba31ed93fb2dec4324663bd2eee + languageName: node + linkType: hard + +"@chevrotain/gast@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/gast@npm:10.5.0" + dependencies: + "@chevrotain/types": 10.5.0 + lodash: 4.17.21 + checksum: 35183e7067bc936db9ecfea7624ee3178634618cf1518ea3470b4ed208fb19454dc3ed990a0de2dab80794251398a857ad17d26cc552eac497a2aa974f76b86d + languageName: node + linkType: hard + +"@chevrotain/types@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/types@npm:10.5.0" + checksum: 72f7b48de1888ab14831108da4b0ab3ef244e1101a4094240382e4983a9e71aae6f8a87e09b819854d1028cee08f97b7d2a81fce935742c55d2bc497b7cad350 + languageName: node + linkType: hard + +"@chevrotain/utils@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/utils@npm:10.5.0" + checksum: f3ae9e0fea2e928a1a4930311d3ef04f45c29fa58ba4d5d2ca43c33355ac47f95ce99a98d6496706e2e7f773ef684a9a7e7cbd7b77c00af9158f08c82d88212b + languageName: node + linkType: hard + "@cspotcode/source-map-support@npm:^0.8.0": version: 0.8.1 resolution: "@cspotcode/source-map-support@npm:0.8.1" @@ -1746,6 +1781,7 @@ __metadata: "@typescript-eslint/eslint-plugin": ^7.0.0 "@typescript-eslint/parser": ^7.0.0 "@vitejs/plugin-react": ^4.2.1 + chevrotain: 10.5.0 d3-scale: ^4.0.2 d3-shape: ^3.2.0 eslint: ^8.57.0 @@ -5246,6 +5282,20 @@ __metadata: languageName: node linkType: hard +"chevrotain@npm:10.5.0": + version: 10.5.0 + resolution: "chevrotain@npm:10.5.0" + dependencies: + "@chevrotain/cst-dts-gen": 10.5.0 + "@chevrotain/gast": 10.5.0 + "@chevrotain/types": 10.5.0 + "@chevrotain/utils": 10.5.0 + lodash: 4.17.21 + regexp-to-ast: 0.5.0 + checksum: b641f149f60979a29eff2434d745e9565a7c89422b601d554bcf8f047f7d8ff776b9a54b1b36085a622e3f1ed7eb4b8721b5a5348d90ae2567ce7594b10f25aa + languageName: node + linkType: hard + "chokidar@npm:>=3.0.0 <4.0.0": version: 3.6.0 resolution: "chokidar@npm:3.6.0" @@ -9858,7 +9908,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": +"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -11862,6 +11912,13 @@ __metadata: languageName: node linkType: hard +"regexp-to-ast@npm:0.5.0": + version: 0.5.0 + resolution: "regexp-to-ast@npm:0.5.0" + checksum: 72e32f2a1217bb22398ac30867ddd43e16943b6b569dd4eb472de47494c7a39e34f47ee3e92ad4cbf92308f98997da366fe094a0e58eb6b93eab0ee956fff86d + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" From b786680375c5dc7dc81b75e8f3efd66328cc076f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 05:51:55 +0000 Subject: [PATCH 147/471] chore(deps): update dependency @types/node to v20.12.7 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 59e94fe5f..3a28cc3fa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4105,11 +4105,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.6 - resolution: "@types/node@npm:20.12.6" + version: 20.12.7 + resolution: "@types/node@npm:20.12.7" dependencies: undici-types: ~5.26.4 - checksum: d16272276349244b1b6f15b0a23ce380efe3dfe46ace1ae37d58e791a8e53d832a2dc72d1afe01d7e5bb0ec1fba70ddd58b1da87921ec913e600331b3b906be9 + checksum: 7cc979f7e2ca9a339ec71318c3901b9978555257929ef3666987f3e447123bc6dc92afcc89f6347e09e07d602fde7d51bcddea626c23aa2bb74aeaacfd1e1686 languageName: node linkType: hard From 73cf008839383b8826d201adbc51b228dca02c1b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Apr 2024 00:47:58 +0000 Subject: [PATCH 148/471] chore(deps): update dependency typescript to v5.4.5 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3a28cc3fa..7a0dcf9e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13450,12 +13450,12 @@ __metadata: linkType: hard "typescript@npm:^5.3.3": - version: 5.4.4 - resolution: "typescript@npm:5.4.4" + version: 5.4.5 + resolution: "typescript@npm:5.4.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: a7b54515d2adfc75c8d14188af0216b6b9ae3c192c9732797c24b1d14608eac1c83be7b1c65ce6f4ced0f2c40583f11b495fe1ba3d982afadbcc523517d183c8 + checksum: 53c879c6fa1e3bcb194b274d4501ba1985894b2c2692fa079db03c5a5a7140587a1e04e1ba03184605d35f439b40192d9e138eb3279ca8eee313c081c8bcd9b0 languageName: node linkType: hard @@ -13480,12 +13480,12 @@ __metadata: linkType: hard "typescript@patch:typescript@^5.3.3#~builtin": - version: 5.4.4 - resolution: "typescript@patch:typescript@npm%3A5.4.4#~builtin::version=5.4.4&hash=5adc0c" + version: 5.4.5 + resolution: "typescript@patch:typescript@npm%3A5.4.5#~builtin::version=5.4.5&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: f64e07e11f787a18b5b98cbe7506465a5a92f56bbd4691977cc9c690f4ec49ebce51dfac77728dc792b743f8d89e8d99004370f5c96f7f56947c25c3f90f9350 + checksum: d59e26e74f6b444517d0ba16e0ee16e75c652c2b49a59f2ebdbeb16647a855fd50c7fc786a58987e45f03bce0677092e2dd3333649fd53b11d0b0d271455837c languageName: node linkType: hard From 7b2e7b566d4858a3ec34704ed1cb43b68e6e275a Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 15 Apr 2024 10:36:07 -0400 Subject: [PATCH 149/471] fix --- packages/ui/src/services/xpath/xpath-2.0-parser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/services/xpath/xpath-2.0-parser.ts b/packages/ui/src/services/xpath/xpath-2.0-parser.ts index 726109f4e..825a8419c 100644 --- a/packages/ui/src/services/xpath/xpath-2.0-parser.ts +++ b/packages/ui/src/services/xpath/xpath-2.0-parser.ts @@ -586,7 +586,7 @@ export class XPath2Parser extends CstParser implements XPathParser { }); private SingleType = this.RULE('SingleType', () => { - this.SUBRULE(this.AtomicType); + this.SUBRULE(this.QName); this.OPTION(() => this.CONSUME(Question)); }); From ddfe8f68345d936d00b30f7f8a4d2f4864fe0805 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 01:50:16 +0000 Subject: [PATCH 150/471] chore(deps): update dependency @storybook/addon-actions to v8.0.8 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7a0dcf9e8..dce42396e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3511,16 +3511,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.6 - resolution: "@storybook/addon-actions@npm:8.0.6" + version: 8.0.8 + resolution: "@storybook/addon-actions@npm:8.0.8" dependencies: - "@storybook/core-events": 8.0.6 + "@storybook/core-events": 8.0.8 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: c937b93e24716034b4d0f237c7ee46306dab4ffb386ea1459943a0fee4913c5d8b9aa72d2065b70015d7c4a9a846a70c70d9b51845fc2067e719b7fab82af2ed + checksum: 4392871acd8bce2d849407e1bb0d8d16803570eb7d714884085a4b3ca3c5e8f96868ab8f63f3913628771681ad7fc0df386320202712984c015fe112a6156de0 languageName: node linkType: hard @@ -3556,12 +3556,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.6": - version: 8.0.6 - resolution: "@storybook/core-events@npm:8.0.6" +"@storybook/core-events@npm:8.0.8": + version: 8.0.8 + resolution: "@storybook/core-events@npm:8.0.8" dependencies: ts-dedent: ^2.0.0 - checksum: 8a44d91bf66a7dcbd146a81bd50b32bbc6f56683d27e07dfd8ba8953a4c165294b921a6ad3671d2b9cc87e6d5ed9b25e8f5877026a78111b85b30102a927fe02 + checksum: 5be3d0310bb1db3bbf1ed5a3b2c9b8f89df3fc1e735702e4b237b16c9bca09b27418948f80b10932b0a139256e1b3c9a870d553849319bdf164a14fd21719aa5 languageName: node linkType: hard From 2a5aa9ac95e64da5b582a362f30a9434c8b300a7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 05:17:29 +0000 Subject: [PATCH 151/471] chore(deps): update dependency sass to v1.75.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index dce42396e..d7afa50f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12272,15 +12272,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.74.1 - resolution: "sass@npm:1.74.1" + version: 1.75.0 + resolution: "sass@npm:1.75.0" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 3cbcd73d91e65607f7987656b7f6b0c6143724304544768079ecbe95505f1ce71036916e0e02dcc9923551c3779863bcdd522732a8f4409e89205271966a36f4 + checksum: bfb9f5ddb6a2e1fe0c1ba6191cdb17afa7b40c1eb892c7152f6a29ff2b06dc7a510bdb648f8cca0179dcb3965920ebeb8894f0710b0b450a99db563831345033 languageName: node linkType: hard From fef3c555f177a5fd9e3bc47a08a859887789d419 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 14:37:47 +0000 Subject: [PATCH 152/471] chore(deps): update dependency @testing-library/react to v15 --- packages/ui/package.json | 2 +- yarn.lock | 191 ++++----------------------------------- 2 files changed, 20 insertions(+), 173 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 64cedc81a..96ca3a75e 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -73,7 +73,7 @@ "@storybook/addon-actions": "^8.0.0", "@storybook/addon-knobs": "^7.0.2", "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^14.2.2", + "@testing-library/react": "^15.0.0", "@types/jest": "^29.5.12", "@types/node": "^20.11.6", "@types/react": "^18.2.53", diff --git a/yarn.lock b/yarn.lock index d7afa50f2..757a82f73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1772,7 +1772,7 @@ __metadata: "@storybook/addon-actions": ^8.0.0 "@storybook/addon-knobs": ^7.0.2 "@testing-library/jest-dom": ^6.4.2 - "@testing-library/react": ^14.2.2 + "@testing-library/react": ^15.0.0 "@types/jest": ^29.5.12 "@types/node": ^20.11.6 "@types/pako": ^2.0.3 @@ -3572,19 +3572,19 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^9.0.0": - version: 9.3.4 - resolution: "@testing-library/dom@npm:9.3.4" +"@testing-library/dom@npm:^10.0.0": + version: 10.0.0 + resolution: "@testing-library/dom@npm:10.0.0" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 "@types/aria-query": ^5.0.1 - aria-query: 5.1.3 + aria-query: 5.3.0 chalk: ^4.1.0 dom-accessibility-api: ^0.5.9 lz-string: ^1.5.0 pretty-format: ^27.0.2 - checksum: dfd6fb0d6c7b4dd716ba3c47309bc9541b4a55772cb61758b4f396b3785efe2dbc75dc63423545c039078c7ffcc5e4b8c67c2db1b6af4799580466036f70026f + checksum: 682cc22cb3414ffbcf5d9bac777907167c5523f2dcbe5d96cd2e99386009acd879640c7fe5b1c66b199c2d2679f97057410557b3848b871f59c547b1dc8fc28a languageName: node linkType: hard @@ -3621,17 +3621,17 @@ __metadata: languageName: node linkType: hard -"@testing-library/react@npm:^14.2.2": - version: 14.3.0 - resolution: "@testing-library/react@npm:14.3.0" +"@testing-library/react@npm:^15.0.0": + version: 15.0.2 + resolution: "@testing-library/react@npm:15.0.2" dependencies: "@babel/runtime": ^7.12.5 - "@testing-library/dom": ^9.0.0 + "@testing-library/dom": ^10.0.0 "@types/react-dom": ^18.0.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 4aa7e583feac7e9bd93ff981d1dc5113329181bf01ad955af2f748f263dc52cdbff6ead6664a8762481e30b70d7f402aaac7a497d9d1a1747ad6906dfb0eabad + checksum: 32be030a5540164403f3cd8d6f46ad907119b2bc0a0df43ce6b925cdd520d5003298d06af1ee94d7bd764f294d74e802b6509caf2cf10afc77e67407baa9c1fb languageName: node linkType: hard @@ -4725,16 +4725,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.1.3": - version: 5.1.3 - resolution: "aria-query@npm:5.1.3" - dependencies: - deep-equal: ^2.0.5 - checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b - languageName: node - linkType: hard - -"aria-query@npm:^5.0.0": +"aria-query@npm:5.3.0, aria-query@npm:^5.0.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -4743,7 +4734,7 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": +"array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: @@ -4895,15 +4886,6 @@ __metadata: languageName: node linkType: hard -"available-typed-arrays@npm:^1.0.7": - version: 1.0.7 - resolution: "available-typed-arrays@npm:1.0.7" - dependencies: - possible-typed-array-names: ^1.0.0 - checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 - languageName: node - linkType: hard - "babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" @@ -6314,32 +6296,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.3 - resolution: "deep-equal@npm:2.2.3" - dependencies: - array-buffer-byte-length: ^1.0.0 - call-bind: ^1.0.5 - es-get-iterator: ^1.1.3 - get-intrinsic: ^1.2.2 - is-arguments: ^1.1.1 - is-array-buffer: ^3.0.2 - is-date-object: ^1.0.5 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - isarray: ^2.0.5 - object-is: ^1.1.5 - object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.1 - side-channel: ^1.0.4 - which-boxed-primitive: ^1.0.2 - which-collection: ^1.0.1 - which-typed-array: ^1.1.13 - checksum: ee8852f23e4d20a5626c13b02f415ba443a1b30b4b3d39eaf366d59c4a85e6545d7ec917db44d476a85ae5a86064f7e5f7af7479f38f113995ba869f3a1ddc53 - languageName: node - linkType: hard - "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -6921,23 +6877,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 - has-symbols: ^1.0.3 - is-arguments: ^1.1.1 - is-map: ^2.0.2 - is-set: ^2.0.2 - is-string: ^1.0.7 - isarray: ^2.0.5 - stop-iteration-iterator: ^1.0.0 - checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d - languageName: node - linkType: hard - "es-set-tostringtag@npm:^2.0.2": version: 2.0.2 resolution: "es-set-tostringtag@npm:2.0.2" @@ -8227,7 +8166,7 @@ __metadata: languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1, has-tostringtag@npm:^1.0.2": +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -8518,7 +8457,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7": +"internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" dependencies: @@ -8546,17 +8485,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": +"is-array-buffer@npm:^3.0.4": version: 3.0.4 resolution: "is-array-buffer@npm:3.0.4" dependencies: @@ -8628,7 +8557,7 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": +"is-date-object@npm:^1.0.1": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" dependencies: @@ -8697,13 +8626,6 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.2, is-map@npm:^2.0.3": - version: 2.0.3 - resolution: "is-map@npm:2.0.3" - checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc - languageName: node - linkType: hard - "is-negative-zero@npm:^2.0.2": version: 2.0.2 resolution: "is-negative-zero@npm:2.0.2" @@ -8802,13 +8724,6 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.2, is-set@npm:^2.0.3": - version: 2.0.3 - resolution: "is-set@npm:2.0.3" - checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe - languageName: node - linkType: hard - "is-shared-array-buffer@npm:^1.0.2": version: 1.0.2 resolution: "is-shared-array-buffer@npm:1.0.2" @@ -8912,13 +8827,6 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.2": - version: 2.0.2 - resolution: "is-weakmap@npm:2.0.2" - checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d - languageName: node - linkType: hard - "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -8928,16 +8836,6 @@ __metadata: languageName: node linkType: hard -"is-weakset@npm:^2.0.3": - version: 2.0.3 - resolution: "is-weakset@npm:2.0.3" - dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - checksum: 8b6a20ee9f844613ff8f10962cfee49d981d584525f2357fee0a04dfbcde9fd607ed60cb6dab626dbcc470018ae6392e1ff74c0c1aced2d487271411ad9d85ae - languageName: node - linkType: hard - "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" @@ -10691,16 +10589,6 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.1.5": - version: 1.1.6 - resolution: "object-is@npm:1.1.6" - dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - checksum: 3ea22759967e6f2380a2cbbd0f737b42dc9ddb2dfefdb159a1b927fea57335e1b058b564bfa94417db8ad58cddab33621a035de6f5e5ad56d89f2dd03e66c6a1 - languageName: node - linkType: hard - "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -10708,7 +10596,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": +"object.assign@npm:^4.1.5": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -11205,13 +11093,6 @@ __metadata: languageName: node linkType: hard -"possible-typed-array-names@npm:^1.0.0": - version: 1.0.0 - resolution: "possible-typed-array-names@npm:1.0.0" - checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae - languageName: node - linkType: hard - "postcss-media-query-parser@npm:^0.2.3": version: 0.2.3 resolution: "postcss-media-query-parser@npm:0.2.3" @@ -11919,7 +11800,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": +"regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" dependencies: @@ -12626,15 +12507,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: ^1.0.4 - checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 - languageName: node - linkType: hard - "stream-to-array@npm:^2.3.0": version: 2.3.0 resolution: "stream-to-array@npm:2.3.0" @@ -13864,31 +13736,6 @@ __metadata: languageName: node linkType: hard -"which-collection@npm:^1.0.1": - version: 1.0.2 - resolution: "which-collection@npm:1.0.2" - dependencies: - is-map: ^2.0.3 - is-set: ^2.0.3 - is-weakmap: ^2.0.2 - is-weakset: ^2.0.3 - checksum: c51821a331624c8197916598a738fc5aeb9a857f1e00d89f5e4c03dc7c60b4032822b8ec5696d28268bb83326456a8b8216344fb84270d18ff1d7628051879d9 - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.13": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" - dependencies: - available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-tostringtag: ^1.0.2 - checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 - languageName: node - linkType: hard - "which-typed-array@npm:^1.1.14": version: 1.1.14 resolution: "which-typed-array@npm:1.1.14" From 3987f8f87b0cb2a57224377f803ab522acb7e63b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 14:38:05 +0000 Subject: [PATCH 153/471] chore(deps): update dependency madge to v7 --- packages/ui/package.json | 2 +- yarn.lock | 659 +++++++++++---------------------------- 2 files changed, 184 insertions(+), 477 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 96ca3a75e..c093dfa40 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -91,7 +91,7 @@ "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", - "madge": "^6.1.0", + "madge": "^7.0.0", "prettier": "^3.2.5", "sass": "^1.70.0", "stylelint": "^16.2.1", diff --git a/yarn.lock b/yarn.lock index 757a82f73..ef4d39255 100644 --- a/yarn.lock +++ b/yarn.lock @@ -429,7 +429,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.0.0, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.23.9": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9": version: 7.23.9 resolution: "@babel/parser@npm:7.23.9" bin: @@ -438,6 +438,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.21.8, @babel/parser@npm:^7.24.4": + version: 7.24.4 + resolution: "@babel/parser@npm:7.24.4" + bin: + parser: ./bin/babel-parser.js + checksum: 94c9e3e592894cd6fc57c519f4e06b65463df9be5f01739bb0d0bfce7ffcf99b3c2fdadd44dc59cc858ba2739ce6e469813a941c2f2dfacf333a3b2c9c5c8465 + languageName: node + linkType: hard + "@babel/parser@npm:^7.24.0": version: 7.24.0 resolution: "@babel/parser@npm:7.24.0" @@ -456,15 +465,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/parser@npm:7.24.4" - bin: - parser: ./bin/babel-parser.js - checksum: 94c9e3e592894cd6fc57c519f4e06b65463df9be5f01739bb0d0bfce7ffcf99b3c2fdadd44dc59cc858ba2739ce6e469813a941c2f2dfacf333a3b2c9c5c8465 - languageName: node - linkType: hard - "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4": version: 7.24.4 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4" @@ -1796,7 +1796,7 @@ __metadata: jest-canvas-mock: ^2.5.2 jest-environment-jsdom: ^29.7.0 loglevel: ^1.9.1 - madge: ^6.1.0 + madge: ^7.0.0 monaco-editor: ^0.47.0 pako: ^2.1.0 prettier: ^3.2.5 @@ -1844,13 +1844,13 @@ __metadata: languageName: unknown linkType: soft -"@dependents/detective-less@npm:^3.0.1": - version: 3.0.2 - resolution: "@dependents/detective-less@npm:3.0.2" +"@dependents/detective-less@npm:^4.1.0": + version: 4.1.0 + resolution: "@dependents/detective-less@npm:4.1.0" dependencies: gonzales-pe: ^4.3.0 - node-source-walk: ^5.0.1 - checksum: 2c263ab64fcd1f76117bc35f2b29a150c64bd2b105c96a909a63ce2f2baf07efd93d9ae80e612161d003fb71fbe46598292375f5cc3f447a1b83cfb545dc8f8f + node-source-walk: ^6.0.1 + checksum: 5188bc4f0314ea2c7d6390c938904e91ba8aea15c7eb62f633e916db4d90af9e0cf27b6ab30e4b5bf60af9401433825d8d256076ef7ad258c9edb860f37fdb43 languageName: node linkType: hard @@ -4317,13 +4317,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/types@npm:4.33.0" - checksum: 3baae1ca35872421b4eb60f5d3f3f32dc1d513f2ae0a67dee28c7d159fd7a43ed0d11a8a5a0f0c2d38507ffa036fc7c511cb0f18a5e8ac524b3ebde77390ec53 - languageName: node - linkType: hard - "@typescript-eslint/types@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/types@npm:5.62.0" @@ -4338,7 +4331,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.62.0, @typescript-eslint/typescript-estree@npm:^5.55.0": +"@typescript-eslint/typescript-estree@npm:5.62.0, @typescript-eslint/typescript-estree@npm:^5.62.0": version: 5.62.0 resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" dependencies: @@ -4375,24 +4368,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:^4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/typescript-estree@npm:4.33.0" - dependencies: - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/visitor-keys": 4.33.0 - debug: ^4.3.1 - globby: ^11.0.3 - is-glob: ^4.0.1 - semver: ^7.3.5 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 2566984390c76bd95f43240057215c068c69769e406e27aba41e9f21fd300074d6772e4983fa58fe61e80eb5550af1548d2e31e80550d92ba1d051bb00fe6f5c - languageName: node - linkType: hard - "@typescript-eslint/utils@npm:7.6.0": version: 7.6.0 resolution: "@typescript-eslint/utils@npm:7.6.0" @@ -4428,16 +4403,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/visitor-keys@npm:4.33.0" - dependencies: - "@typescript-eslint/types": 4.33.0 - eslint-visitor-keys: ^2.0.0 - checksum: 59953e474ad4610c1aa23b2b1a964445e2c6201521da6367752f37939d854352bbfced5c04ea539274065e012b1337ba3ffa49c2647a240a4e87155378ba9873 - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" @@ -4837,24 +4802,10 @@ __metadata: languageName: node linkType: hard -"ast-module-types@npm:^2.7.1": - version: 2.7.1 - resolution: "ast-module-types@npm:2.7.1" - checksum: 6238647bcf34eeff2a1390cb60388da8a5064dd598acf48d68f8d972d9a332dc8d0382a5a7c511b16470e314b313bcbb95de4b0b669515393e043282c0489538 - languageName: node - linkType: hard - -"ast-module-types@npm:^3.0.0": - version: 3.0.0 - resolution: "ast-module-types@npm:3.0.0" - checksum: c6ef35d9b286f84c7942aeb0e2b50e389e0b6f44ee3b6d2c46aeed4852dbca0681dde8c3c0ec1d456dad5dbc84fced2e1c607b10b4b4c3b065b901b40f45bbe7 - languageName: node - linkType: hard - -"ast-module-types@npm:^4.0.0": - version: 4.0.0 - resolution: "ast-module-types@npm:4.0.0" - checksum: 12705ff906e57d1440a2ff82f30cf5b3c93e1734076ea5868936477d5812a6fc257eb1e44fb2b7f8c22f7483987251d72251d2a295542f64df8768434f3f06db +"ast-module-types@npm:^5.0.0": + version: 5.0.0 + resolution: "ast-module-types@npm:5.0.0" + checksum: a234d666a16dfdb74f36d288694c4de48dff894009ba6a770cb3d33a6010e515ec6203b51be3e55ab58d056298631ae4a4fc5406abbc0509f6d7e3ac415ca400 languageName: node linkType: hard @@ -5240,7 +5191,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -5512,17 +5463,10 @@ __metadata: languageName: node linkType: hard -"commander@npm:^2.16.0, commander@npm:^2.20.3, commander@npm:^2.8.1": - version: 2.20.3 - resolution: "commander@npm:2.20.3" - checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e - languageName: node - linkType: hard - -"commander@npm:^9.5.0": - version: 9.5.0 - resolution: "commander@npm:9.5.0" - checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade +"commander@npm:^10.0.1": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 languageName: node linkType: hard @@ -6256,7 +6200,7 @@ __metadata: languageName: unknown linkType: soft -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -6371,18 +6315,17 @@ __metadata: languageName: node linkType: hard -"dependency-tree@npm:^9.0.0": - version: 9.0.0 - resolution: "dependency-tree@npm:9.0.0" +"dependency-tree@npm:^10.0.9": + version: 10.0.9 + resolution: "dependency-tree@npm:10.0.9" dependencies: - commander: ^2.20.3 - debug: ^4.3.1 - filing-cabinet: ^3.0.1 - precinct: ^9.0.0 - typescript: ^4.0.0 + commander: ^10.0.1 + filing-cabinet: ^4.1.6 + precinct: ^11.0.5 + typescript: ^5.0.4 bin: dependency-tree: bin/cli.js - checksum: 38f95ec248f350f3ed443e0aac520c8ad979b3801262a1e67f6a5972c14f972887150d88972fb9e2630cef8c75efcd82719f93a55f9fc3207e64174ab9d3b0f3 + checksum: 9330e1e904f456c289ebd8fd072183c73fa5c6a4558f512830965ab14a89da4b58fd93b8491e5221b8d648ca7b0eed119ed360e7fb2a71a0230af686747ea3fc languageName: node linkType: hard @@ -6414,96 +6357,40 @@ __metadata: languageName: node linkType: hard -"detective-amd@npm:^3.1.0": - version: 3.1.2 - resolution: "detective-amd@npm:3.1.2" - dependencies: - ast-module-types: ^3.0.0 - escodegen: ^2.0.0 - get-amd-module-type: ^3.0.0 - node-source-walk: ^4.2.0 - bin: - detective-amd: bin/cli.js - checksum: 0b71555edad8e85c9a2ae85e2799d5faf2bdfe0de969587c9288ca76e717494678e34f444dffe32ffdd432e85ce50ca7017a5d0441a4855677a45a40c4590c74 - languageName: node - linkType: hard - -"detective-amd@npm:^4.0.1, detective-amd@npm:^4.1.0": - version: 4.2.0 - resolution: "detective-amd@npm:4.2.0" +"detective-amd@npm:^5.0.2": + version: 5.0.2 + resolution: "detective-amd@npm:5.0.2" dependencies: - ast-module-types: ^4.0.0 + ast-module-types: ^5.0.0 escodegen: ^2.0.0 - get-amd-module-type: ^4.1.0 - node-source-walk: ^5.0.1 + get-amd-module-type: ^5.0.1 + node-source-walk: ^6.0.1 bin: detective-amd: bin/cli.js - checksum: c1e829a3202045796105680c9fe90ac61f63b0ccecc12cc30c7204c9e7ec22a4e2c3e2357719b9346a4e3579eba778cdce9a050e642938e2a4c8b57b091278e4 + checksum: 6117eec09b4908abe74a3c3bc1f037334092e2a9388231c5f1b672a22c48f6e17ade9ecaf8c0cbbef6fcde52da178b0693e9810ef3c824c11c5c64c6c5865ca1 languageName: node linkType: hard -"detective-cjs@npm:^3.1.1": - version: 3.1.3 - resolution: "detective-cjs@npm:3.1.3" - dependencies: - ast-module-types: ^3.0.0 - node-source-walk: ^4.0.0 - checksum: a691cb4afbbfea59d9aae0ee00752ec1a825a7ef18fc9178b53664975f162f3b537268590def009d9ce1cccfc5bc4f38cf775df08d0872aaacc05d96c72de85a - languageName: node - linkType: hard - -"detective-cjs@npm:^4.0.0, detective-cjs@npm:^4.1.0": - version: 4.1.0 - resolution: "detective-cjs@npm:4.1.0" - dependencies: - ast-module-types: ^4.0.0 - node-source-walk: ^5.0.1 - checksum: 17e40183959e9f377333a9fd03dcf4cbabf1b7a9f588882311066ecaaad68ad16765a7b63ffc096fc91d2a3c14ac044ed1823257c76105c9cb96dfc141a806e2 - languageName: node - linkType: hard - -"detective-es6@npm:^2.2.1": - version: 2.2.2 - resolution: "detective-es6@npm:2.2.2" - dependencies: - node-source-walk: ^4.0.0 - checksum: 9ee9909c089f5dcd1f89eccd347d509197996280ba24e2e08742bbc5ca3eef655ff07b4edfd76b52d6b4376ba03b8ec17d621c9f9c4382a6ba233dc1b1d00d33 - languageName: node - linkType: hard - -"detective-es6@npm:^3.0.0, detective-es6@npm:^3.0.1": - version: 3.0.1 - resolution: "detective-es6@npm:3.0.1" - dependencies: - node-source-walk: ^5.0.0 - checksum: 881a0c16b49504c212e61a521231ebbb4299a6102b178230959c74d2ca22d5f7538dfaf9518d01fb568ff93eadcf61d865d4428c9fed893dd4c91a7f29d515c5 - languageName: node - linkType: hard - -"detective-less@npm:^1.0.2": - version: 1.0.2 - resolution: "detective-less@npm:1.0.2" +"detective-cjs@npm:^5.0.1": + version: 5.0.1 + resolution: "detective-cjs@npm:5.0.1" dependencies: - debug: ^4.0.0 - gonzales-pe: ^4.2.3 - node-source-walk: ^4.0.0 - checksum: 858936fbad87423bd5d7502ff5fafca023e7c99e4006ed01b31c12c4b5ff8697edce91419798479d857efec68ee8f022fcac64de5530db6a64012be600a2249e + ast-module-types: ^5.0.0 + node-source-walk: ^6.0.0 + checksum: c51c27ab10e4c441b26d13e44569c4cd1015268b10537fdfca698996c569ce98e9d69ce635a9680789c9e4fbc6d60c77a752ae64d7532e92678c19fb19ff313b languageName: node linkType: hard -"detective-postcss@npm:^4.0.0": - version: 4.0.0 - resolution: "detective-postcss@npm:4.0.0" +"detective-es6@npm:^4.0.1": + version: 4.0.1 + resolution: "detective-es6@npm:4.0.1" dependencies: - debug: ^4.1.1 - is-url: ^1.2.4 - postcss: ^8.1.7 - postcss-values-parser: ^2.0.1 - checksum: e4c9fed31613df43466357fb104c4c5cdaf45a12909f7c1174161a45ebb2ebe77bb0843b3c0c117b68f55c9acb4e0578668298594c7f0108dfb73e54aaec8513 + node-source-walk: ^6.0.1 + checksum: f9fbcae9399fad5d1c4120d22db97fdab6fc8d9ec8011cec2214b23970b3524d5a8ec30943009543cda99cb6dec2e8b78549b6dd918d7c2bff8f13c0565345c8 languageName: node linkType: hard -"detective-postcss@npm:^6.1.0, detective-postcss@npm:^6.1.1": +"detective-postcss@npm:^6.1.3": version: 6.1.3 resolution: "detective-postcss@npm:6.1.3" dependencies: @@ -6514,88 +6401,42 @@ __metadata: languageName: node linkType: hard -"detective-sass@npm:^3.0.1": - version: 3.0.2 - resolution: "detective-sass@npm:3.0.2" - dependencies: - gonzales-pe: ^4.3.0 - node-source-walk: ^4.0.0 - checksum: 7489e5ae7dbed2eba89855cea21ad32321e8e92bd9f2d3b925e7feec0dd9aa8b4b865296525275938e573a3be9759715490038103cbc970570a1c48c4f2fd23d - languageName: node - linkType: hard - -"detective-sass@npm:^4.0.1, detective-sass@npm:^4.1.1": - version: 4.1.3 - resolution: "detective-sass@npm:4.1.3" - dependencies: - gonzales-pe: ^4.3.0 - node-source-walk: ^5.0.1 - checksum: 91681e90037cc935f38b2867fab2aa5585848491b3a269dfb44b37721146ff83f57a540d964b15db22dc1f232623568bedfd13470ec7363e6111991d4d3fe573 - languageName: node - linkType: hard - -"detective-scss@npm:^2.0.1": - version: 2.0.2 - resolution: "detective-scss@npm:2.0.2" +"detective-sass@npm:^5.0.3": + version: 5.0.3 + resolution: "detective-sass@npm:5.0.3" dependencies: gonzales-pe: ^4.3.0 - node-source-walk: ^4.0.0 - checksum: 515ff1b8946ec92baead48ef435efe1ea0f33ee1d98a7537dd700f1d06dd192f9ea0971c10343adcb08b561ab296d01c18a1f62d0b63163a8f4c09885a956e1a + node-source-walk: ^6.0.1 + checksum: 5b09526931c6d87b8159fd9f10518b546ac2cbbc3cec91db194e67553a64c312bcf53de6950f34236ba7747a4f7855885b662c0e2df42aff7deb9d8aed0ce5e3 languageName: node linkType: hard -"detective-scss@npm:^3.0.0, detective-scss@npm:^3.0.1": - version: 3.1.1 - resolution: "detective-scss@npm:3.1.1" +"detective-scss@npm:^4.0.3": + version: 4.0.3 + resolution: "detective-scss@npm:4.0.3" dependencies: gonzales-pe: ^4.3.0 - node-source-walk: ^5.0.1 - checksum: 3d9c0468216c822c25572e700b9aba1e2e2797d336b6b84fd455d83ce849263324855008d1e58d6ccdf9c7a4f099e31277b99e885407cd19674e0bb10fc458cd - languageName: node - linkType: hard - -"detective-stylus@npm:^1.0.0": - version: 1.0.3 - resolution: "detective-stylus@npm:1.0.3" - checksum: 2723da93545f3a55a2a7eaa76b50712457af3c93c2b003e95d02f4c240d5e5206a5df99209a4f5b54128c11fc4270c2de1d7316b4f7d02b359483ae74f5a6637 + node-source-walk: ^6.0.1 + checksum: afeda1e45468d23499349bedaece546b63f9269b51faf05b00f8d9a8a092f6961a6f2f366cc7664b8a1e4291454085b57cfa94fc7e1a1eaf16ef63c06782cfa9 languageName: node linkType: hard -"detective-stylus@npm:^2.0.1": - version: 2.0.1 - resolution: "detective-stylus@npm:2.0.1" - checksum: c701ba6df3e6b5346aa5dd37b8329a9069a20fd7d075933e2e3b819a75922a2adab809143591151e7337183d59c980e6bc64ad6e51ce96de864575221c1b9506 - languageName: node - linkType: hard - -"detective-stylus@npm:^3.0.0": - version: 3.0.0 - resolution: "detective-stylus@npm:3.0.0" - checksum: e82eda490406d289f7b22050423ad69eb1c0f0d88414adaa292de4ab533be3c50d4cf512a9fefba426f3ad20789f0c0db3b0d32f70162112ca89034bbc5ca9d3 - languageName: node - linkType: hard - -"detective-typescript@npm:^7.0.0": - version: 7.0.2 - resolution: "detective-typescript@npm:7.0.2" - dependencies: - "@typescript-eslint/typescript-estree": ^4.33.0 - ast-module-types: ^2.7.1 - node-source-walk: ^4.2.0 - typescript: ^3.9.10 - checksum: 77703410baa242029dc5e7d02cca7a26278dea498ec1c3320f92efa08a85263affc3b102fc2b09952ece1d2c851a3808733d7bfa9ed11944a7c0f39920e33ec9 +"detective-stylus@npm:^4.0.0": + version: 4.0.0 + resolution: "detective-stylus@npm:4.0.0" + checksum: 50a765f95e95c8204a86122f015dc9b3d32eb1c38d25cba9a71bbcb0441d398185679baa0d15d8cf43ff1c37e071c98b18599adc7ffe6147cc3c7f7f874cf6a3 languageName: node linkType: hard -"detective-typescript@npm:^9.0.0, detective-typescript@npm:^9.1.1": - version: 9.1.1 - resolution: "detective-typescript@npm:9.1.1" +"detective-typescript@npm:^11.1.0": + version: 11.2.0 + resolution: "detective-typescript@npm:11.2.0" dependencies: - "@typescript-eslint/typescript-estree": ^5.55.0 - ast-module-types: ^4.0.0 - node-source-walk: ^5.0.1 - typescript: ^4.9.5 - checksum: 5f50801f622740d4e9d724ce04518ceb81591215bf18c18c5d22f6f3948df49dfb0a8bbe3596dac47220a37028bc2879ccd7a968f265217c9855817bda4622f5 + "@typescript-eslint/typescript-estree": ^5.62.0 + ast-module-types: ^5.0.0 + node-source-walk: ^6.0.2 + typescript: ^5.4.4 + checksum: e990cf13e0dc1c992ee80f4dfe961ac1ae1a48d42360d150302453547fa28fc012db7c0e73d20c6eea66bb7b2232e7c1304fc6861820f22e3005f86bcf56f67d languageName: node linkType: hard @@ -6765,13 +6606,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.8.3": - version: 5.15.0 - resolution: "enhanced-resolve@npm:5.15.0" +"enhanced-resolve@npm:^5.14.1": + version: 5.16.0 + resolution: "enhanced-resolve@npm:5.16.0" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 + checksum: ccfd01850ecf2aa51e8554d539973319ff7d8a539ef1e0ba3460a0ccad6223c4ef6e19165ee64161b459cd8a48df10f52af4434c60023c65fde6afa32d475f7e languageName: node linkType: hard @@ -7178,13 +7019,6 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-visitor-keys@npm:2.1.0" - checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" @@ -7505,26 +7339,25 @@ __metadata: languageName: node linkType: hard -"filing-cabinet@npm:^3.0.1": - version: 3.3.1 - resolution: "filing-cabinet@npm:3.3.1" +"filing-cabinet@npm:^4.1.6": + version: 4.2.0 + resolution: "filing-cabinet@npm:4.2.0" dependencies: app-module-path: ^2.2.0 - commander: ^2.20.3 - debug: ^4.3.3 - enhanced-resolve: ^5.8.3 + commander: ^10.0.1 + enhanced-resolve: ^5.14.1 is-relative-path: ^1.0.2 - module-definition: ^3.3.1 - module-lookup-amd: ^7.0.1 - resolve: ^1.21.0 - resolve-dependency-path: ^2.0.0 - sass-lookup: ^3.0.0 - stylus-lookup: ^3.0.1 - tsconfig-paths: ^3.10.1 - typescript: ^3.9.7 + module-definition: ^5.0.1 + module-lookup-amd: ^8.0.5 + resolve: ^1.22.3 + resolve-dependency-path: ^3.0.2 + sass-lookup: ^5.0.1 + stylus-lookup: ^5.0.1 + tsconfig-paths: ^4.2.0 + typescript: ^5.0.4 bin: filing-cabinet: bin/cli.js - checksum: f6511c2e93e236c0d882244b49936a2c8cb2fde47e0d1a0a93345ce171995c2734670c38ed1c0aceaee9ed4958fcce48bfbbb687efe4dedf04b6ea46b0a8c1c0 + checksum: 963206b779ebb9aac09982500ca4a4483f6b6a43c0841d29663601dcb3a0030f693bd78d7f849cf51d240e1b3b900c2e01ffb3b4cf1d0d8f5a18c63065588d06 languageName: node linkType: hard @@ -7603,13 +7436,6 @@ __metadata: languageName: node linkType: hard -"flatten@npm:^1.0.2": - version: 1.0.3 - resolution: "flatten@npm:1.0.3" - checksum: 5c57379816f1692aaa79fbc6390e0a0644e5e8442c5783ed57c6d315468eddbc53a659eaa03c9bb1e771b0f4a9bd8dd8a2620286bf21fd6538a7857321fdfb20 - languageName: node - linkType: hard - "focus-trap@npm:7.5.2": version: 7.5.2 resolution: "focus-trap@npm:7.5.2" @@ -7762,23 +7588,13 @@ __metadata: languageName: node linkType: hard -"get-amd-module-type@npm:^3.0.0": - version: 3.0.2 - resolution: "get-amd-module-type@npm:3.0.2" - dependencies: - ast-module-types: ^3.0.0 - node-source-walk: ^4.2.2 - checksum: d16fac5037f63027992e6ebd2d642e6d4feef2f8fa71ff3da6aa76006e05b3dcd4aa6044b4c5966f13ba5d412fd7c1367d910df86b58f9c13f53cbb35d2e4b72 - languageName: node - linkType: hard - -"get-amd-module-type@npm:^4.1.0": - version: 4.1.0 - resolution: "get-amd-module-type@npm:4.1.0" +"get-amd-module-type@npm:^5.0.1": + version: 5.0.1 + resolution: "get-amd-module-type@npm:5.0.1" dependencies: - ast-module-types: ^4.0.0 - node-source-walk: ^5.0.1 - checksum: dd3f58e88efb6a2224bb38325fe21b1ab417ba105b7f90d49089141b0eb3c24aab1866a2e2bf370430bbfc7ef226fc0a2a5c657e161d1d42d8a243f44ebd4fbe + ast-module-types: ^5.0.0 + node-source-walk: ^6.0.1 + checksum: 77b6a59b90c54fd2d8adb1555e3939462d7b97c617e74271bbcb8f9741ca6681e831216e9e45f4ab1ab1b249394b89d5c8d9e4afa1497c68d02698775cd2225e languageName: node linkType: hard @@ -7957,7 +7773,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -8026,7 +7842,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.3, globby@npm:^11.1.0": +"globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -8061,7 +7877,7 @@ __metadata: languageName: node linkType: hard -"gonzales-pe@npm:^4.2.3, gonzales-pe@npm:^4.3.0": +"gonzales-pe@npm:^4.3.0": version: 4.3.0 resolution: "gonzales-pe@npm:4.3.0" dependencies: @@ -8403,13 +8219,6 @@ __metadata: languageName: node linkType: hard -"indexes-of@npm:^1.0.1": - version: 1.0.1 - resolution: "indexes-of@npm:1.0.1" - checksum: 4f9799b1739a62f3e02d09f6f4162cf9673025282af7fa36e790146e7f4e216dad3e776a25b08536c093209c9fcb5ea7bd04b082d42686a45f58ff401d6da32e - languageName: node - linkType: hard - "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -9573,7 +9382,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.2.3": +"json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -9888,31 +9697,22 @@ __metadata: languageName: node linkType: hard -"madge@npm:^6.1.0": - version: 6.1.0 - resolution: "madge@npm:6.1.0" +"madge@npm:^7.0.0": + version: 7.0.0 + resolution: "madge@npm:7.0.0" dependencies: - chalk: ^4.1.1 + chalk: ^4.1.2 commander: ^7.2.0 commondir: ^1.0.1 - debug: ^4.3.1 - dependency-tree: ^9.0.0 - detective-amd: ^4.0.1 - detective-cjs: ^4.0.0 - detective-es6: ^3.0.0 - detective-less: ^1.0.2 - detective-postcss: ^6.1.0 - detective-sass: ^4.0.1 - detective-scss: ^3.0.0 - detective-stylus: ^2.0.1 - detective-typescript: ^9.0.0 + debug: ^4.3.4 + dependency-tree: ^10.0.9 ora: ^5.4.1 pluralize: ^8.0.0 - precinct: ^8.1.0 + precinct: ^11.0.5 pretty-ms: ^7.0.1 - rc: ^1.2.7 + rc: ^1.2.8 stream-to-array: ^2.3.0 - ts-graphviz: ^1.5.0 + ts-graphviz: ^1.8.1 walkdir: ^0.4.1 peerDependencies: typescript: ^3.9.5 || ^4.9.5 || ^5 @@ -9921,7 +9721,7 @@ __metadata: optional: true bin: madge: bin/cli.js - checksum: cb8a629c1eb837640ca2416dbd2236f1ea8657eb188725ff42294718dd1769ece5ec635ef02c344c72e3b4faab3cd8f084b043ce8ecccf4018915738b3329096 + checksum: 58bc4cd2efdec7f13d911955cdad57395d0acbd9d7758bd65300317fd07fbfec166988d02dfd02687e2dd9ec9475d382cf76115654d53cfe75bd31f83e0fc8c9 languageName: node linkType: hard @@ -10250,42 +10050,29 @@ __metadata: languageName: node linkType: hard -"module-definition@npm:^3.3.1": - version: 3.4.0 - resolution: "module-definition@npm:3.4.0" - dependencies: - ast-module-types: ^3.0.0 - node-source-walk: ^4.0.0 - bin: - module-definition: bin/cli.js - checksum: 5cbfd38aab1a9169b5c31924e208e430a87a1b1512ab9736a9a368d950e3cc8e2f5cf642e37fe74123e25402cae50bfb8fdf1f5f0fd3d4d9270df705a2360bfa - languageName: node - linkType: hard - -"module-definition@npm:^4.1.0": - version: 4.1.0 - resolution: "module-definition@npm:4.1.0" +"module-definition@npm:^5.0.1": + version: 5.0.1 + resolution: "module-definition@npm:5.0.1" dependencies: - ast-module-types: ^4.0.0 - node-source-walk: ^5.0.1 + ast-module-types: ^5.0.0 + node-source-walk: ^6.0.1 bin: module-definition: bin/cli.js - checksum: d9b6397c9ba04b08bc035fd87a3652900530b9a5d6e5263f8a1e05c927dfc103fdffcecd7071a9fd6cd7813fc9feafbbe828f5277e5b706e5de82831153ef0fb + checksum: cc0f9ab8c940607de3b60e4c979f4897e9d544d03eee8435f61824b08ffc2d70f7f38043a6b8e728258d65b9925446cd82ddee65acf1fc2ae7351fce57896dc9 languageName: node linkType: hard -"module-lookup-amd@npm:^7.0.1": - version: 7.0.1 - resolution: "module-lookup-amd@npm:7.0.1" +"module-lookup-amd@npm:^8.0.5": + version: 8.0.5 + resolution: "module-lookup-amd@npm:8.0.5" dependencies: - commander: ^2.8.1 - debug: ^4.1.0 - glob: ^7.1.6 - requirejs: ^2.3.5 + commander: ^10.0.1 + glob: ^7.2.3 + requirejs: ^2.3.6 requirejs-config-file: ^4.0.0 bin: lookup-amd: bin/cli.js - checksum: 911abd6b8fb1d82cfae4ef38050981d4eb7e710bfeba898903c5c49a4d3a44b3cacb6201ddf9930a39fae3473faf9b96d39930cfa8766dbf0da86689108895b1 + checksum: 29b91623b2620a531bd60ef4cc3fbb4e4e3ffef40a2fb98f748ef2a621e0fc83e57fe8a4345e81a51c07e343bbae73a4ff11ce2e8d397f18385f6546f6631d2d languageName: node linkType: hard @@ -10417,21 +10204,12 @@ __metadata: languageName: node linkType: hard -"node-source-walk@npm:^4.0.0, node-source-walk@npm:^4.2.0, node-source-walk@npm:^4.2.2": - version: 4.3.0 - resolution: "node-source-walk@npm:4.3.0" - dependencies: - "@babel/parser": ^7.0.0 - checksum: 124bcec61f73141a5f13e63f773beb00c9a9620e9eec6d7505b9de8fa884797f3eb0b9e9d225bb324930234ae03b28a4a7a231e2c2f23d71405d4a562b404e34 - languageName: node - linkType: hard - -"node-source-walk@npm:^5.0.0, node-source-walk@npm:^5.0.1": - version: 5.0.2 - resolution: "node-source-walk@npm:5.0.2" +"node-source-walk@npm:^6.0.0, node-source-walk@npm:^6.0.1, node-source-walk@npm:^6.0.2": + version: 6.0.2 + resolution: "node-source-walk@npm:6.0.2" dependencies: - "@babel/parser": ^7.21.4 - checksum: 1031bc0871bb77ace33bd09fb1e9ef7589b03e6a2fa441b8e684023102362da6dba77d6b9b086dc1f995c7e69e3517666d5316c3831b9d9ff077cb36d57179e8 + "@babel/parser": ^7.21.8 + checksum: eacaaa11fa71fd48da16d75a108d5e1e945b581550112b37c5e909c7f112c1b48acf8648d7fa167e6f482e41f047bceca1ffc5aa3c91fee74406acc003f98190 languageName: node linkType: hard @@ -11152,17 +10930,6 @@ __metadata: languageName: node linkType: hard -"postcss-values-parser@npm:^2.0.1": - version: 2.0.1 - resolution: "postcss-values-parser@npm:2.0.1" - dependencies: - flatten: ^1.0.2 - indexes-of: ^1.0.1 - uniq: ^1.0.1 - checksum: 050877880937e15af8d18bf48902e547e2123d7cc32c1f215b392642bc5e2598a87a341995d62f38e450aab4186b8afeb2c9541934806d458ad8b117020b2ebf - languageName: node - linkType: hard - "postcss-values-parser@npm:^6.0.2": version: 6.0.2 resolution: "postcss-values-parser@npm:6.0.2" @@ -11176,7 +10943,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.7, postcss@npm:^8.4.23": +"postcss@npm:^8.4.23": version: 8.4.35 resolution: "postcss@npm:8.4.35" dependencies: @@ -11198,48 +10965,25 @@ __metadata: languageName: node linkType: hard -"precinct@npm:^8.1.0": - version: 8.3.1 - resolution: "precinct@npm:8.3.1" - dependencies: - commander: ^2.20.3 - debug: ^4.3.3 - detective-amd: ^3.1.0 - detective-cjs: ^3.1.1 - detective-es6: ^2.2.1 - detective-less: ^1.0.2 - detective-postcss: ^4.0.0 - detective-sass: ^3.0.1 - detective-scss: ^2.0.1 - detective-stylus: ^1.0.0 - detective-typescript: ^7.0.0 - module-definition: ^3.3.1 - node-source-walk: ^4.2.0 - bin: - precinct: bin/cli.js - checksum: 16ba57e545fc53481b3a194f9d7843cefd562ce5e847280355eed360ca4c55def4d03d501776fb49fdf79bfe84a03ec6138003d8387c0426f6a68e1931688399 - languageName: node - linkType: hard - -"precinct@npm:^9.0.0": - version: 9.2.1 - resolution: "precinct@npm:9.2.1" - dependencies: - "@dependents/detective-less": ^3.0.1 - commander: ^9.5.0 - detective-amd: ^4.1.0 - detective-cjs: ^4.1.0 - detective-es6: ^3.0.1 - detective-postcss: ^6.1.1 - detective-sass: ^4.1.1 - detective-scss: ^3.0.1 - detective-stylus: ^3.0.0 - detective-typescript: ^9.1.1 - module-definition: ^4.1.0 - node-source-walk: ^5.0.1 +"precinct@npm:^11.0.5": + version: 11.0.5 + resolution: "precinct@npm:11.0.5" + dependencies: + "@dependents/detective-less": ^4.1.0 + commander: ^10.0.1 + detective-amd: ^5.0.2 + detective-cjs: ^5.0.1 + detective-es6: ^4.0.1 + detective-postcss: ^6.1.3 + detective-sass: ^5.0.3 + detective-scss: ^4.0.3 + detective-stylus: ^4.0.0 + detective-typescript: ^11.1.0 + module-definition: ^5.0.1 + node-source-walk: ^6.0.2 bin: precinct: bin/cli.js - checksum: 0352553cca8aff0baa04412429bbe3fab278e9e574fd9bcb2b1bb87dc3ed608f3e08b66c86aee90eed6bac5c4091fe78753ae094d54b01a803189d3259817fe7 + checksum: f4c373012f9ec6eeef9c492a0422db9b9ea86f64e0e990ce7464cc0df8655ba2f6516aacf9b05db157e2faf8b9487a5299d359712664ab04c07ddd4496a17654 languageName: node linkType: hard @@ -11430,7 +11174,7 @@ __metadata: languageName: node linkType: hard -"rc@npm:^1.2.7": +"rc@npm:^1.2.8": version: 1.2.8 resolution: "rc@npm:1.2.8" dependencies: @@ -11861,7 +11605,7 @@ __metadata: languageName: node linkType: hard -"requirejs@npm:^2.3.5": +"requirejs@npm:^2.3.6": version: 2.3.6 resolution: "requirejs@npm:2.3.6" bin: @@ -11894,10 +11638,10 @@ __metadata: languageName: node linkType: hard -"resolve-dependency-path@npm:^2.0.0": - version: 2.0.0 - resolution: "resolve-dependency-path@npm:2.0.0" - checksum: 161296969a0a7853ebb7710847154ffb5bd11a51c370b67a0d0c89cacfcb57063d204587617fd030ea227bfd19a3c4af79d39e9d20ae0fbe354c27598d1ea8a8 +"resolve-dependency-path@npm:^3.0.2": + version: 3.0.2 + resolution: "resolve-dependency-path@npm:3.0.2" + checksum: d042bef325ce8dbdbe57f37f93851b2c5651e06378b9f352ceef2c28aa99dc6ae793be7795e8bf4ad18b40769ee06d8e049ce8206f183c9afe9812fd48ef6d8c languageName: node linkType: hard @@ -11922,7 +11666,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.21.0, resolve@npm:^1.22.4": +"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.3, resolve@npm:^1.22.4": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -11935,7 +11679,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.21.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin": +"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@^1.22.4#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -12141,14 +11885,14 @@ __metadata: languageName: node linkType: hard -"sass-lookup@npm:^3.0.0": - version: 3.0.0 - resolution: "sass-lookup@npm:3.0.0" +"sass-lookup@npm:^5.0.1": + version: 5.0.1 + resolution: "sass-lookup@npm:5.0.1" dependencies: - commander: ^2.16.0 + commander: ^10.0.1 bin: sass-lookup: bin/cli.js - checksum: fd4bf1ad9c54111617dec30dd90aff083e87c96aef50aff6cec443ad2fbbfa65da09f6e67a7e5ef99fa39dff65c937dc7358f18d319e083c6031f21def85ce6d + checksum: b965abafac84de186be905c6fa22138b7458f4a01cb1057611d45b9c3e365e8aaa7c8395a1710b8bc38149b6c9bcff0755a209f1263af48352234c02b68c8530 languageName: node linkType: hard @@ -12837,15 +12581,14 @@ __metadata: languageName: node linkType: hard -"stylus-lookup@npm:^3.0.1": - version: 3.0.2 - resolution: "stylus-lookup@npm:3.0.2" +"stylus-lookup@npm:^5.0.1": + version: 5.0.1 + resolution: "stylus-lookup@npm:5.0.1" dependencies: - commander: ^2.8.1 - debug: ^4.1.0 + commander: ^10.0.1 bin: stylus-lookup: bin/cli.js - checksum: 460e9b6e7e662e2cf98d41ee670cb5da9ec8b8dbc1d4574de29ac422c632d5c7933772822fc12792f2ee9f9c2f62b3f60ed5850690e7c780ab7b6f07010199e4 + checksum: b4a5ac4330fec121a8e38ae3ea0c544a6fc7771cf5bfe3eb04525bfe04a607a6d5b6051c2e79386a77e235ed59863134423a34e465abf186bdc1e2014b5e46af languageName: node linkType: hard @@ -13094,7 +12837,7 @@ __metadata: languageName: node linkType: hard -"ts-graphviz@npm:^1.5.0": +"ts-graphviz@npm:^1.8.1": version: 1.8.2 resolution: "ts-graphviz@npm:1.8.2" checksum: 73723d6d9b9b29073ff659b38e8a8443a024d515a30fd77dfb00a9df0e835739f2522c303a353e63bbd39115e23b34c9d92dd66f72590cf5f92d3a447255f9b9 @@ -13139,7 +12882,7 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.10.1, tsconfig-paths@npm:^3.15.0": +"tsconfig-paths@npm:^3.15.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" dependencies: @@ -13151,6 +12894,17 @@ __metadata: languageName: node linkType: hard +"tsconfig-paths@npm:^4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: ^2.2.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: 28c5f7bbbcabc9dabd4117e8fdc61483f6872a1c6b02a4b1c4d68c5b79d06896c3cc9547610c4c3ba64658531caa2de13ead1ea1bf321c7b53e969c4752b98c7 + languageName: node + linkType: hard + "tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -13301,27 +13055,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^3.9.10, typescript@npm:^3.9.7": - version: 3.9.10 - resolution: "typescript@npm:3.9.10" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 46c842e2cd4797b88b66ef06c9c41dd21da48b95787072ccf39d5f2aa3124361bc4c966aa1c7f709fae0509614d76751455b5231b12dbb72eb97a31369e1ff92 - languageName: node - linkType: hard - -"typescript@npm:^4.0.0, typescript@npm:^4.9.5": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db - languageName: node - linkType: hard - -"typescript@npm:^5.3.3": +"typescript@npm:^5.0.4, typescript@npm:^5.3.3, typescript@npm:^5.4.4": version: 5.4.5 resolution: "typescript@npm:5.4.5" bin: @@ -13331,27 +13065,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^3.9.10#~builtin, typescript@patch:typescript@^3.9.7#~builtin": - version: 3.9.10 - resolution: "typescript@patch:typescript@npm%3A3.9.10#~builtin::version=3.9.10&hash=3bd3d3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: dc7141ab555b23a8650a6787f98845fc11692063d02b75ff49433091b3af2fe3d773650dea18389d7c21f47d620fb3b110ea363dab4ab039417a6ccbbaf96fc2 - languageName: node - linkType: hard - -"typescript@patch:typescript@^4.0.0#~builtin, typescript@patch:typescript@^4.9.5#~builtin": - version: 4.9.5 - resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 - languageName: node - linkType: hard - -"typescript@patch:typescript@^5.3.3#~builtin": +"typescript@patch:typescript@^5.0.4#~builtin, typescript@patch:typescript@^5.3.3#~builtin, typescript@patch:typescript@^5.4.4#~builtin": version: 5.4.5 resolution: "typescript@patch:typescript@npm%3A5.4.5#~builtin::version=5.4.5&hash=5adc0c" bin: @@ -13427,13 +13141,6 @@ __metadata: languageName: node linkType: hard -"uniq@npm:^1.0.1": - version: 1.0.1 - resolution: "uniq@npm:1.0.1" - checksum: 8206535f83745ea83f9da7035f3b983fd6ed5e35b8ed7745441944e4065b616bc67cf0d0a23a86b40ee0074426f0607f0a138f9b78e124eb6a7a6a6966055709 - languageName: node - linkType: hard - "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" From 1c0ddadab1ee454113c24802b801df29a0bc0e3c Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 15 Apr 2024 16:16:34 -0400 Subject: [PATCH 154/471] fix: Remove correlated mappings on Document change Fixes: #143 Also removed poc-dnd-line --- packages/poc-dnd-line/index.html | 18 --- packages/poc-dnd-line/package.json | 21 --- packages/poc-dnd-line/src/DnDKitTest.tsx | 72 --------- packages/poc-dnd-line/src/DrawLines.tsx | 48 ------ .../poc-dnd-line/src/ReactTopologyTest.tsx | 143 ------------------ packages/poc-dnd-line/src/SourceTarget.tsx | 61 -------- .../src/canvas/CanvasProvider.tsx | 123 --------------- .../poc-dnd-line/src/canvas/useCanvas.tsx | 10 -- packages/poc-dnd-line/src/data.ts | 17 --- .../poc-dnd-line/src/field/DocumentField.tsx | 111 -------------- packages/poc-dnd-line/src/line/Line.tsx | 117 -------------- packages/poc-dnd-line/src/main.tsx | 53 ------- packages/poc-dnd-line/tsconfig.json | 31 ---- packages/poc-dnd-line/tsconfig.node.json | 10 -- packages/poc-dnd-line/vite.config.js | 19 --- .../document/AttachSchemaButton.tsx | 20 ++- .../document/DeleteParameterButton.tsx | 10 +- .../document/DetachSchemaButton.tsx | 16 +- .../ui/src/providers/DataMapperProvider.tsx | 2 + .../ui/src/services/document.service.test.ts | 52 +++++++ packages/ui/src/services/document.service.ts | 37 +++++ .../services/mapping-serializer.service.ts | 14 +- .../ui/src/services/mapping.service.test.ts | 92 +++++++++++ packages/ui/src/services/mapping.service.ts | 60 +++++++- yarn.lock | 53 +------ 25 files changed, 285 insertions(+), 925 deletions(-) delete mode 100644 packages/poc-dnd-line/index.html delete mode 100644 packages/poc-dnd-line/package.json delete mode 100644 packages/poc-dnd-line/src/DnDKitTest.tsx delete mode 100644 packages/poc-dnd-line/src/DrawLines.tsx delete mode 100644 packages/poc-dnd-line/src/ReactTopologyTest.tsx delete mode 100644 packages/poc-dnd-line/src/SourceTarget.tsx delete mode 100644 packages/poc-dnd-line/src/canvas/CanvasProvider.tsx delete mode 100644 packages/poc-dnd-line/src/canvas/useCanvas.tsx delete mode 100644 packages/poc-dnd-line/src/data.ts delete mode 100644 packages/poc-dnd-line/src/field/DocumentField.tsx delete mode 100644 packages/poc-dnd-line/src/line/Line.tsx delete mode 100644 packages/poc-dnd-line/src/main.tsx delete mode 100644 packages/poc-dnd-line/tsconfig.json delete mode 100644 packages/poc-dnd-line/tsconfig.node.json delete mode 100644 packages/poc-dnd-line/vite.config.js create mode 100644 packages/ui/src/services/document.service.test.ts create mode 100644 packages/ui/src/services/document.service.ts create mode 100644 packages/ui/src/services/mapping.service.test.ts diff --git a/packages/poc-dnd-line/index.html b/packages/poc-dnd-line/index.html deleted file mode 100644 index 35ed20590..000000000 --- a/packages/poc-dnd-line/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - DataMapper - - - -
    -
    - - - diff --git a/packages/poc-dnd-line/package.json b/packages/poc-dnd-line/package.json deleted file mode 100644 index 2012ba51f..000000000 --- a/packages/poc-dnd-line/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "@datamapper-poc/poc-dnd-line", - "version": "0.0.1", - "scripts": { - "start": "vite", - "build": "tsc && vite build --config vite.config.js" - }, - "dependencies": { - "@dnd-kit/core": "^6.1.0", - "@patternfly/react-core": "^5.2.0", - "@patternfly/react-table": "^5.2.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-router-dom": "^6.22.2" - }, - "devDependencies": { - "@types/react": "^18.2.61", - "typescript": "^5.3.3", - "vite": "^5.1.4" - } -} diff --git a/packages/poc-dnd-line/src/DnDKitTest.tsx b/packages/poc-dnd-line/src/DnDKitTest.tsx deleted file mode 100644 index 8b5c6b046..000000000 --- a/packages/poc-dnd-line/src/DnDKitTest.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { FunctionComponent, PropsWithChildren, useState } from 'react'; -import { DndContext, DragEndEvent, UniqueIdentifier, useDraggable, useDroppable } from '@dnd-kit/core'; -import { Page } from '@patternfly/react-core'; - -interface DroppableProps extends PropsWithChildren { - id: string; -} - -const Droppable: FunctionComponent = (props) => { - const { isOver, setNodeRef } = useDroppable({ - id: props.id, - }); - const style = { - color: isOver ? 'green' : undefined, - }; - - return ( -
    - {props.children} -
    - ); -}; - -interface DraggableProps extends PropsWithChildren { - id: string; -} -const Draggable: FunctionComponent = (props) => { - const { attributes, listeners, setNodeRef, transform } = useDraggable({ - id: props.id, - }); - const style = transform - ? { - transform: `translate3d(${transform.x}px, ${transform.y}px, 0)`, - } - : undefined; - - return ( - - ); -}; - -export const DnDKitTest: FunctionComponent = () => { - const containers = ['A', 'B', 'C']; - const [parent, setParent] = useState(null); - const draggableMarkup = Drag me; - - return ( - - - {parent === null ? draggableMarkup : null} - - {containers.map((id) => ( - // We updated the Droppable component so it would accept an `id` - // prop and pass it to `useDroppable` - - {parent === id ? draggableMarkup : 'Drop here'} - - ))} - - - ); - - function handleDragEnd(event: DragEndEvent) { - const { over } = event; - - // If the item is dropped over a container, set it as the parent - // otherwise reset the parent to `null` - setParent(over ? over.id : null); - } -}; diff --git a/packages/poc-dnd-line/src/DrawLines.tsx b/packages/poc-dnd-line/src/DrawLines.tsx deleted file mode 100644 index ef877b658..000000000 --- a/packages/poc-dnd-line/src/DrawLines.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { FunctionComponent, useCallback, useEffect, useMemo, useRef } from 'react'; -import { Accordion, Page, PageSection, Split, SplitItem } from '@patternfly/react-core'; -import { DocumentField } from './field/DocumentField'; -import { sourceDoc, targetDoc } from './data'; -import { useCanvas } from './canvas/useCanvas'; -import { LineGroup, Mapping } from './line/Line'; - -export const DrawLines: FunctionComponent = () => { - const sourceRef = useRef(null); - const targetRef = useRef(null); - const { setFieldReference, reloadFieldReferences } = useCanvas(); - const sourcePath = sourceDoc.name + ':/'; - const targetPath = targetDoc.name + ':/'; - setFieldReference(sourcePath, sourceRef); - setFieldReference(targetPath, targetRef); - const mappings: Mapping[] = useMemo( - () => [ - { sourcePath: 'SourceDocument1://field3', targetPath: 'TargetDocument1://field1' }, - { sourcePath: 'SourceDocument1://field2/field1', targetPath: 'TargetDocument1://field2/field3' }, - ], - [], - ); - - const onRefresh = useCallback(() => { - reloadFieldReferences(); - }, [reloadFieldReferences]); - - return ( - - - - - - - - - - - - - - - - - - - ); -}; diff --git a/packages/poc-dnd-line/src/ReactTopologyTest.tsx b/packages/poc-dnd-line/src/ReactTopologyTest.tsx deleted file mode 100644 index d5c64dd83..000000000 --- a/packages/poc-dnd-line/src/ReactTopologyTest.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import { - GridLayout, - ComponentFactory, - DefaultEdge, - DefaultGroup, - DefaultNode, - EdgeModel, - Graph, - GraphComponent, - Layout, - LayoutFactory, - Model, - ModelKind, - Node, - NodeModel, - NodeShape, - SELECTION_EVENT, - TopologyView, - Visualization, - VisualizationProvider, - VisualizationSurface, -} from '@patternfly/react-topology'; -import { FunctionComponent, ReactNode, useCallback, useMemo, useState } from 'react'; -import { Page, ToolbarItem } from '@patternfly/react-core'; -import { sourceDoc } from './data'; - -const baselineLayoutFactory: LayoutFactory = (type: string, graph: Graph): Layout | undefined => { - return new GridLayout(graph, { - groupDistance: 0, - collideDistance: 0, - }); -}; - -const baselineComponentFactory: ComponentFactory = (kind: ModelKind, type: string): ReturnType => { - switch (type) { - case 'group': - return CustomGroup as ReturnType; - default: - switch (kind) { - case ModelKind.graph: - return GraphComponent; - case ModelKind.node: - return CustomNode as ReturnType; - case ModelKind.edge: - return DefaultEdge; - default: - throw Error(`Unsupported type/kind: ${type}/${kind}`); - } - } -}; - -const NODE_SHAPE = NodeShape.rect; -const NODE_WIDTH = 200; -const NODE_HEIGHT = 75; - -interface FieldNodeModel extends NodeModel {} - -const EDGES: EdgeModel[] = []; - -interface CustomNodeProps { - element: Node; -} - -const CustomNode: FunctionComponent = ({ element }) => { - return ; -}; - -interface CustomGroupProps { - element: Node; -} - -const CustomGroup: FunctionComponent = ({ element }) => { - return ; -}; - -export const ReactTopologyTest: FunctionComponent = () => { - const [selectedIds, setSelectedIds] = useState([]); - - const populateChildrenFromField = useCallback( - (field: any, nodes: FieldNodeModel[], parentPath: string): FieldNodeModel => { - const path = parentPath + '/' + field.name; - const childNodes = []; - if (field.fields && field.fields.length !== 0) { - for (const child of field.fields) { - childNodes.push(populateChildrenFromField(child, nodes, path)); - } - nodes.push(...childNodes); - } - return { - id: path, - group: childNodes.length > 0, - type: childNodes.length > 0 ? 'group' : 'node', - children: childNodes.length > 0 ? childNodes.map((n) => n.id) : undefined, - label: field.name, - width: NODE_WIDTH, - height: NODE_HEIGHT, - shape: NODE_SHAPE, - }; - }, - [], - ); - - const documentNodes: FieldNodeModel[] = useMemo(() => { - const answer: FieldNodeModel[] = []; - const source = populateChildrenFromField(sourceDoc, answer, 'Source:/'); - const target = populateChildrenFromField(sourceDoc, answer, 'Target:/'); - answer.push(source, target); - return answer; - }, [populateChildrenFromField]); - - const controller = useMemo(() => { - const model: Model = { - nodes: documentNodes, - edges: EDGES, - graph: { - id: 'g1', - type: 'graph', - layout: 'Grid', - }, - }; - - const newController = new Visualization(); - newController.registerLayoutFactory(baselineLayoutFactory); - newController.registerComponentFactory(baselineComponentFactory); - - newController.addEventListener(SELECTION_EVENT, setSelectedIds); - - newController.fromModel(model, false); - - return newController; - }, [documentNodes]); - - const contextToolbar = ; - return ( - - - - - - - - ); -}; diff --git a/packages/poc-dnd-line/src/SourceTarget.tsx b/packages/poc-dnd-line/src/SourceTarget.tsx deleted file mode 100644 index a31bba965..000000000 --- a/packages/poc-dnd-line/src/SourceTarget.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { Accordion, Page, Split, SplitItem } from '@patternfly/react-core'; -import { sourceDoc, targetDoc } from './data'; -import { DocumentField } from './field/DocumentField'; -import { LineGroup } from './line/Line'; -import { FunctionComponent, useCallback, useEffect, useRef, useState } from 'react'; -import { useCanvas } from './canvas/useCanvas'; -import { CanvasProvider } from './canvas/CanvasProvider'; - -export const SourceTargetContainer: FunctionComponent = () => { - return ( - - - - ); -}; - -export const SourceTarget: FunctionComponent = () => { - const sourceRef = useRef(null); - const targetRef = useRef(null); - const { setFieldReference, reloadFieldReferences } = useCanvas(); - const sourcePath = sourceDoc.name + ':/'; - const targetPath = targetDoc.name + ':/'; - setFieldReference(sourcePath, sourceRef); - setFieldReference(targetPath, targetRef); - const mappings = []; - - const handleRefresh = useCallback(() => { - reloadFieldReferences(); - }, [reloadFieldReferences]); - - return ( - - - - - - - - - draw lines here - - - - - - - - ); -}; diff --git a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx b/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx deleted file mode 100644 index e5f7150e4..000000000 --- a/packages/poc-dnd-line/src/canvas/CanvasProvider.tsx +++ /dev/null @@ -1,123 +0,0 @@ -import { - createContext, - FunctionComponent, - MutableRefObject, - PropsWithChildren, - useCallback, - useMemo, - useState, -} from 'react'; -import { - DataRef, - DndContext, - DragOverlay, - DragStartEvent, - KeyboardSensor, - MouseSensor, - TouchSensor, - useDndMonitor, - useSensor, - useSensors, -} from '@dnd-kit/core'; -import { Label } from '@patternfly/react-core'; - -const DnDMonitor: FunctionComponent = () => { - useDndMonitor({ - onDragStart(event) { - console.log(`onDragStart: [active: ${JSON.stringify(event.active?.data.current)}`); - }, - onDragEnd(event) { - console.log( - `onDragEnd: [active: ${JSON.stringify(event.active?.data.current)}, over:${JSON.stringify(event.over?.data.current)}`, - ); - }, - onDragCancel(event) { - console.log( - `onDragCancel: active: ${JSON.stringify(event.active?.data.current)}, over:${JSON.stringify(event.over?.data.current)}`, - ); - }, - }); - return <>; -}; - -export interface ICanvasContext { - setFieldReference: (path: string, ref: MutableRefObject) => void; - getFieldReference: (path: string) => MutableRefObject; - getAllFieldPaths: () => string[]; - reloadFieldReferences: () => void; -} - -export const CanvasContext = createContext(undefined); - -export const CanvasProvider: FunctionComponent = (props) => { - const mouseSensor = useSensor(MouseSensor, { - activationConstraint: { - distance: 10, - }, - }); - const touchSensor = useSensor(TouchSensor, { - activationConstraint: { - delay: 250, - tolerance: 5, - }, - }); - const keyboardSensor = useSensor(KeyboardSensor); - const sensors = useSensors(mouseSensor, touchSensor, keyboardSensor); - - const [activeData, setActiveData] = useState>>(null); - const [fieldReferenceMap, setFieldReferenceMap] = useState>>( - new Map>(), - ); - const [parentPathMap, setParentPathMap] = useState>(new Map()); - - const handleDragStart = useCallback((event: DragStartEvent) => { - setActiveData(event.active.data); - }, []); - - const handleDragEnd = useCallback(() => { - setActiveData(null); - }, []); - - const setFieldReference = useCallback( - (path: string, ref: MutableRefObject) => { - fieldReferenceMap.set(path, ref); - }, - [fieldReferenceMap], - ); - - const getFieldReference = useCallback( - (path: string) => { - return fieldReferenceMap.get(path); - }, - [fieldReferenceMap], - ); - - const getAllFieldPaths = useCallback(() => { - return Array.from(fieldReferenceMap.keys()); - }, [fieldReferenceMap]); - - const reloadFieldReferences = useCallback(() => { - setFieldReferenceMap(new Map(fieldReferenceMap)); - }, [fieldReferenceMap]); - - const value = useMemo(() => { - return { - setFieldReference, - getFieldReference, - getAllFieldPaths, - reloadFieldReferences, - }; - }, [setFieldReference, getFieldReference, getAllFieldPaths, reloadFieldReferences]); - - return ( - - - - {props.children} - - - - - - ); -}; diff --git a/packages/poc-dnd-line/src/canvas/useCanvas.tsx b/packages/poc-dnd-line/src/canvas/useCanvas.tsx deleted file mode 100644 index e1645d694..000000000 --- a/packages/poc-dnd-line/src/canvas/useCanvas.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { CanvasContext, ICanvasContext } from './CanvasProvider'; -import { useContext } from 'react'; - -export const errorMessage = 'useCanvas should be called into CanvasProvider'; - -export const useCanvas = (): ICanvasContext => { - const ctx = useContext(CanvasContext); - if (!ctx) throw new Error(errorMessage); - return ctx; -}; diff --git a/packages/poc-dnd-line/src/data.ts b/packages/poc-dnd-line/src/data.ts deleted file mode 100644 index f96a4b60e..000000000 --- a/packages/poc-dnd-line/src/data.ts +++ /dev/null @@ -1,17 +0,0 @@ -export const sourceDoc = { - name: 'SourceDocument1', - fields: [ - { name: 'field1' }, - { name: 'field2', fields: [{ name: 'field1' }, { name: 'field2' }, { name: 'field3' }] }, - { name: 'field3' }, - ], -}; - -export const targetDoc = { - name: 'TargetDocument1', - fields: [ - { name: 'field1' }, - { name: 'field2', fields: [{ name: 'field1' }, { name: 'field2' }, { name: 'field3' }] }, - { name: 'field3' }, - ], -}; diff --git a/packages/poc-dnd-line/src/field/DocumentField.tsx b/packages/poc-dnd-line/src/field/DocumentField.tsx deleted file mode 100644 index 81d8da92a..000000000 --- a/packages/poc-dnd-line/src/field/DocumentField.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import { AccordionContent, AccordionItem, AccordionToggle } from '@patternfly/react-core'; -import { CSSProperties, forwardRef, FunctionComponent, useCallback, useRef, useState } from 'react'; -import { Active, useDraggable, useDroppable } from '@dnd-kit/core'; -import { useCanvas } from '../canvas/useCanvas'; - -/* eslint-disable @typescript-eslint/no-explicit-any */ -type ChildFieldProps = { - field: any; - parentPath: string; - onToggle: () => void; -}; - -const ChildField: FunctionComponent = ({ field, parentPath, onToggle }) => { - const ref = useRef(); - // TODO don't forget to add '@' prefix for attribute - maybe field.id could contain it - const path = parentPath + '/' + field.name; - const { setFieldReference } = useCanvas(); - setFieldReference(path, ref); - - return ; -}; - -type DocumentFieldProps = { - field: any; - path: string; - initialExpanded?: boolean; - onToggle: () => void; -}; - -export const DocumentField = forwardRef( - ({ field, path, initialExpanded = true, onToggle }, forwardedRef) => { - const [isExpanded, setIsExpanded] = useState(initialExpanded); - const fieldId = path; - const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ - id: 'droppable-' + fieldId, - data: { - path, - name: field.name, - }, - }); - const { - attributes, - listeners, - setNodeRef: setDraggableNodeRef, - transform, - } = useDraggable({ - id: 'draggable-' + fieldId, - data: { - path, - name: field.name, - }, - }); - - const droppableStyle: CSSProperties = { - borderWidth: isOver ? 1 : undefined, - borderColor: isOver ? 'blue' : undefined, - color: isOver ? 'blue' : undefined, - }; - const draggableStyle: CSSProperties = transform - ? { - borderWidth: 1, - borderColor: 'blue', - } - : undefined; - - const handleOnToggle = useCallback(() => { - onToggle(); - }, [onToggle]); - - return ( -
    - - {!field.fields || field.fields.length == 0 ? ( -
    -
    - {field.name} -
    -
    - ) : ( - <> -
    -
    - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={field.name}> - {field.name} - -
    -
    - - {field.fields.map((field: any) => ( - - ))} - - - )} -
    -
    - ); - }, -); diff --git a/packages/poc-dnd-line/src/line/Line.tsx b/packages/poc-dnd-line/src/line/Line.tsx deleted file mode 100644 index 418e3503c..000000000 --- a/packages/poc-dnd-line/src/line/Line.tsx +++ /dev/null @@ -1,117 +0,0 @@ -import { FunctionComponent, MutableRefObject, useCallback, useEffect, useState } from 'react'; -import { useCanvas } from '../canvas/useCanvas'; - -type LineCoord = { - x1: number; - y1: number; - x2: number; - y2: number; -}; - -type LineProps = LineCoord; - -const Line: FunctionComponent = ({ x1, y1, x2, y2 }) => { - const [isOver, setIsOver] = useState(false); - const lineStyle = { - stroke: 'gray', - strokeWidth: isOver ? 6 : 3, - }; - - const onMouseEnter = useCallback(() => { - setIsOver(true); - }, []); - - const onMouseLeave = useCallback(() => { - setIsOver(false); - }, []); - - const coord = `[ x1:${x1}, y1:${y1}, x2:${x2}, y2:${y2} ]`; - return ( - alert(coord)} - onMouseEnter={onMouseEnter} - onMouseLeave={onMouseLeave} - d={`M${x1},${y1},${x2},${y2}`} - style={lineStyle} - > - {coord} - - ); -}; - -export type Mapping = { - sourcePath: string; - targetPath: string; -}; - -type LineGroupProps = { - mappings: Mapping[]; -}; - -export const LineGroup: FunctionComponent = ({ mappings }) => { - const [lineCoords, setLineCoords] = useState([]); - const { getFieldReference } = useCanvas(); - - const populateCoordFromFieldRef = useCallback( - (coords: LineCoord[], sourceRef: MutableRefObject, targetRef: MutableRefObject) => { - const sourceRect = sourceRef.current?.getBoundingClientRect(); - const targetRect = targetRef.current?.getBoundingClientRect(); - if (!sourceRect || !targetRect) { - return; - } - - const coord = { - x1: sourceRect.right, - y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, - x2: targetRect.left, - y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, - }; - coords.push(coord); - }, - [], - ); - - const getParentPath = useCallback((path: string) => { - const lastSeparatorIndex = path.lastIndexOf('/'); - return lastSeparatorIndex !== -1 ? path.substring(0, lastSeparatorIndex) : null; - }, []); - - const getClosestExpandedPath = useCallback( - (path: string) => { - let tracedPath = path; - while (getFieldReference(tracedPath).current?.getClientRects().length === 0) { - tracedPath = getParentPath(tracedPath); - } - return tracedPath; - }, - [getFieldReference, getParentPath], - ); - - useEffect(() => { - const answer: LineCoord[] = []; - mappings.map((mapping) => { - const sourceFieldRef1 = getFieldReference(getClosestExpandedPath(mapping.sourcePath)); - const targetFieldRef1 = getFieldReference(getClosestExpandedPath(mapping.targetPath)); - populateCoordFromFieldRef(answer, sourceFieldRef1, targetFieldRef1); - }); - setLineCoords(answer); - }, [getClosestExpandedPath, getFieldReference, mappings, populateCoordFromFieldRef]); - - return ( - - - {lineCoords.map((coord, index) => ( - - ))} - - - ); -}; diff --git a/packages/poc-dnd-line/src/main.tsx b/packages/poc-dnd-line/src/main.tsx deleted file mode 100644 index 3176dd9ed..000000000 --- a/packages/poc-dnd-line/src/main.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first -import { createRoot } from 'react-dom/client'; -import { SourceTargetContainer } from './SourceTarget'; -import { FunctionComponent } from 'react'; -import { Link, Route, BrowserRouter, Routes } from 'react-router-dom'; -import { DnDKitTest } from './DnDKitTest'; -import { ReactTopologyTest } from './ReactTopologyTest'; -import { Page } from '@patternfly/react-core'; -import { DrawLines } from './DrawLines'; -import { CanvasProvider } from './canvas/CanvasProvider'; - -const container = document.getElementById('root'); -const root = createRoot(container!); - -const Layout: FunctionComponent = () => ( - - - -); - -root.render( - - - }> - } /> - } /> - - - - } - /> - } /> - - , -); diff --git a/packages/poc-dnd-line/tsconfig.json b/packages/poc-dnd-line/tsconfig.json deleted file mode 100644 index 2faaf45e1..000000000 --- a/packages/poc-dnd-line/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": false, - "noUnusedLocals": false, - "noUnusedParameters": false, - "noFallthroughCasesInSwitch": false, - - /* Typings */ - "types": [ - "@testing-library/jest-dom", - "@types/jest", - "@types/node", - ] - }, - "include": ["src/**/*"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/packages/poc-dnd-line/tsconfig.node.json b/packages/poc-dnd-line/tsconfig.node.json deleted file mode 100644 index c7f60c62b..000000000 --- a/packages/poc-dnd-line/tsconfig.node.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.js"] -} diff --git a/packages/poc-dnd-line/vite.config.js b/packages/poc-dnd-line/vite.config.js deleted file mode 100644 index 13de7eb40..000000000 --- a/packages/poc-dnd-line/vite.config.js +++ /dev/null @@ -1,19 +0,0 @@ -import react from '@vitejs/plugin-react'; -import circleDependency from 'vite-plugin-circular-dependency'; -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - react(), - circleDependency({ - outputFilePath: './circleDep', - }), - ], - build: { - outDir: './dist', - sourcemap: true, - emptyOutDir: true, - }, - base: './', -}); diff --git a/packages/ui/src/components/document/AttachSchemaButton.tsx b/packages/ui/src/components/document/AttachSchemaButton.tsx index e350dcf44..ed82a10a1 100644 --- a/packages/ui/src/components/document/AttachSchemaButton.tsx +++ b/packages/ui/src/components/document/AttachSchemaButton.tsx @@ -22,6 +22,7 @@ import { readFileAsString } from '../../util'; import { XmlSchemaDocumentService } from '../../services'; import { useDataMapper } from '../../hooks'; import { DocumentType } from '../../models/document'; +import { MappingService } from '../../services/mapping.service'; type AttachSchemaProps = { documentType: DocumentType; @@ -34,7 +35,14 @@ export const AttachSchemaButton: FunctionComponent = ({ documentId, hasSchema = false, }) => { - const { sourceParameterMap, refreshSourceParameters, setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); + const { + mappings, + setMappings, + sourceParameterMap, + refreshSourceParameters, + setSourceBodyDocument, + setTargetBodyDocument, + } = useDataMapper(); const { files, onClick, HiddenFileInput } = useFilePicker({ maxFileSize: 1, }); @@ -44,6 +52,13 @@ export const AttachSchemaButton: FunctionComponent = ({ (file: File) => { readFileAsString(file).then((content) => { const document = XmlSchemaDocumentService.createXmlSchemaDocument(documentType, documentId, content); + if (hasSchema) { + const cleaned = MappingService.removeStaleMappingsForDocument(mappings, document); + setMappings(cleaned); + } else { + const cleaned = MappingService.removeAllMappingsForDocument(mappings, documentType, documentId); + setMappings(cleaned); + } switch (documentType) { case DocumentType.SOURCE_BODY: setSourceBodyDocument(document); @@ -61,7 +76,10 @@ export const AttachSchemaButton: FunctionComponent = ({ [ documentId, documentType, + hasSchema, + mappings, refreshSourceParameters, + setMappings, setSourceBodyDocument, setTargetBodyDocument, sourceParameterMap, diff --git a/packages/ui/src/components/document/DeleteParameterButton.tsx b/packages/ui/src/components/document/DeleteParameterButton.tsx index b9133b22f..abcb4f0dd 100644 --- a/packages/ui/src/components/document/DeleteParameterButton.tsx +++ b/packages/ui/src/components/document/DeleteParameterButton.tsx @@ -2,20 +2,24 @@ import { FunctionComponent, useCallback } from 'react'; import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { TrashIcon } from '@patternfly/react-icons'; import { useDataMapper, useToggle } from '../../hooks'; +import { MappingService } from '../../services/mapping.service'; +import { DocumentType } from '../../models'; type DeleteParameterProps = { parameterName: string; }; export const DeleteParameterButton: FunctionComponent = ({ parameterName }) => { - const { sourceParameterMap, refreshSourceParameters } = useDataMapper(); + const { mappings, setMappings, sourceParameterMap, refreshSourceParameters } = useDataMapper(); const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const onConfirmDelete = useCallback(() => { + const cleaned = MappingService.removeAllMappingsForDocument(mappings, DocumentType.PARAM, parameterName); + setMappings(cleaned); sourceParameterMap.delete(parameterName); refreshSourceParameters(); closeModal(); - }, [closeModal, parameterName, refreshSourceParameters, sourceParameterMap]); + }, [closeModal, mappings, parameterName, refreshSourceParameters, setMappings, sourceParameterMap]); return ( <> @@ -42,7 +46,7 @@ export const DeleteParameterButton: FunctionComponent = ({ , ]} > - Delete parameter "{parameterName}"? + Delete parameter "{parameterName}"? Related mappings will be also removed. ); diff --git a/packages/ui/src/components/document/DetachSchemaButton.tsx b/packages/ui/src/components/document/DetachSchemaButton.tsx index 40c10c125..9e5c71c09 100644 --- a/packages/ui/src/components/document/DetachSchemaButton.tsx +++ b/packages/ui/src/components/document/DetachSchemaButton.tsx @@ -19,6 +19,7 @@ import { FunctionComponent, useCallback } from 'react'; import { ExportIcon } from '@patternfly/react-icons'; import { useDataMapper, useToggle } from '../../hooks'; import { DocumentType, PrimitiveDocument } from '../../models/document'; +import { MappingService } from '../../services/mapping.service'; type DeleteSchemaProps = { documentType: DocumentType; @@ -26,10 +27,19 @@ type DeleteSchemaProps = { }; export const DetachSchemaButton: FunctionComponent = ({ documentType, documentId }) => { - const { sourceParameterMap, refreshSourceParameters, setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); + const { + mappings, + setMappings, + sourceParameterMap, + refreshSourceParameters, + setSourceBodyDocument, + setTargetBodyDocument, + } = useDataMapper(); const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const onConfirmDelete = useCallback(() => { + const cleanedMappings = MappingService.removeAllMappingsForDocument(mappings, documentType, documentId); + setMappings(cleanedMappings); const primitiveDoc = new PrimitiveDocument(documentType, documentId); switch (documentType) { case DocumentType.SOURCE_BODY: @@ -48,6 +58,8 @@ export const DetachSchemaButton: FunctionComponent = ({ docum closeModal, documentId, documentType, + mappings, + setMappings, refreshSourceParameters, setSourceBodyDocument, setTargetBodyDocument, @@ -79,7 +91,7 @@ export const DetachSchemaButton: FunctionComponent = ({ docum , ]} > - Detach correlated schema and make it back to be a primitive value? + Detach correlated schema and make it back to be a primitive value? Related mappings will be also removed. ); diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index 2701afe8b..b288b1a78 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -32,6 +32,7 @@ export interface IDataMapperContext { mappings: IMapping[]; refreshMappings(): void; + setMappings(mappings: IMapping[]): void; selectedMapping: IMapping | null; setSelectedMapping(mapping: IMapping | null): void; @@ -76,6 +77,7 @@ export const DataMapperProvider: FunctionComponent = (props) setTargetBodyDocument, mappings, refreshMappings, + setMappings, selectedMapping, setSelectedMapping, debug, diff --git a/packages/ui/src/services/document.service.test.ts b/packages/ui/src/services/document.service.test.ts new file mode 100644 index 000000000..5cbf02fcd --- /dev/null +++ b/packages/ui/src/services/document.service.test.ts @@ -0,0 +1,52 @@ +import { DocumentService } from './document.service'; +import { XmlSchemaDocumentService } from './xml-schema-document.service'; +import { DocumentType } from '../models'; +import * as fs from 'fs'; + +describe('DocumentService', () => { + const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); + const sourceDoc = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.SOURCE_BODY, + 'ShipOrder.xsd', + orderXsd, + ); + const targetDoc = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.TARGET_BODY, + 'ShipOrder.xsd', + orderXsd, + ); + + describe('getFieldStack()', () => { + it('', () => { + const stack = DocumentService.getFieldStack(sourceDoc.fields[0].fields[1]); + expect(stack.length).toEqual(1); + expect(stack[0].name).toEqual('ShipOrder'); + const stackWithSelf = DocumentService.getFieldStack(sourceDoc.fields[0].fields[1], true); + expect(stackWithSelf.length).toEqual(2); + expect(stackWithSelf[0].name).toEqual('OrderPerson'); + }); + }); + + describe('hasField()', () => { + it('', () => { + expect(DocumentService.hasField(sourceDoc, sourceDoc.fields[0].fields[0])).toBeTruthy(); + expect(DocumentService.hasField(sourceDoc, targetDoc.fields[0].fields[0])).toBeFalsy(); + }); + }); + + describe('getFieldFromPathExpression()', () => { + it('', () => { + const pathExpression = '/' + sourceDoc.fields[0].fields[2].fieldIdentifier.pathSegments.join('/'); + const field = DocumentService.getFieldFromPathExpression(sourceDoc, pathExpression); + expect(field?.name).toEqual('ShipTo'); + }); + }); + + describe('getFieldFromPathSegments()', () => { + it('', () => { + const pathSegments = sourceDoc.fields[0].fields[2].fieldIdentifier.pathSegments; + const field = DocumentService.getFieldFromPathSegments(sourceDoc, pathSegments); + expect(field?.name).toEqual('ShipTo'); + }); + }); +}); diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts new file mode 100644 index 000000000..c99095b55 --- /dev/null +++ b/packages/ui/src/services/document.service.ts @@ -0,0 +1,37 @@ +import { IDocument, IField } from '../models'; + +export class DocumentService { + static getFieldStack(field: IField, includeItself: boolean = false) { + const fieldStack: IField[] = []; + if (includeItself) fieldStack.push(field); + for (let next = field.parent; 'parent' in next && next !== next.parent; next = (next as IField).parent) { + fieldStack.push(next); + } + return fieldStack; + } + + static hasField(document: IDocument, field: IField) { + return ( + document.documentType === field.ownerDocument.documentType && + document.documentId === field.ownerDocument.documentId && + !!DocumentService.getFieldFromPathSegments(document, field?.fieldIdentifier.pathSegments) + ); + } + + static getFieldFromPathSegments(document: IDocument, pathSegments: string[]) { + let parent: IDocument | IField = document; + for (const segment of pathSegments) { + if (!segment) continue; + const child: IField | undefined = parent.fields.find((f) => f.expression === segment); + if (!child) { + return undefined; + } + parent = child; + } + return parent; + } + + static getFieldFromPathExpression(document: IDocument, pathExpression: string) { + return DocumentService.getFieldFromPathSegments(document, pathExpression.split('/')); + } +} diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 87c433b59..eb8433e25 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -1,5 +1,6 @@ import { DocumentType, IDocument, IField, IMapping, PrimitiveDocument } from '../models'; import xmlFormat from 'xml-formatter'; +import { DocumentService } from './document.service'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; export const EMPTY_XSL = ` @@ -80,7 +81,7 @@ export class MappingSerializerService { } const xsltDocument = template.ownerDocument; - const fieldStack: IField[] = MappingSerializerService.getFieldStack(target); + const fieldStack: IField[] = DocumentService.getFieldStack(target); let parentNode = template; while (fieldStack.length) { const currentField = fieldStack.pop()!; @@ -103,15 +104,6 @@ export class MappingSerializerService { return parentNode; } - static getFieldStack(field: IField, includeItself: boolean = false) { - const fieldStack: IField[] = []; - if (includeItself) fieldStack.push(field); - for (let next = field.parent; 'parent' in next && next !== next.parent; next = (next as IField).parent) { - fieldStack.push(next); - } - return fieldStack; - } - static isInSameNamespace(element: Element, field: IField) { if (element.namespaceURI === null || element.namespaceURI === '') { return field.namespaceURI === null || field.namespaceURI === ''; @@ -146,7 +138,7 @@ export class MappingSerializerService { } static getXPath(xsltDocument: Document, field: IField) { - const fieldStack = MappingSerializerService.getFieldStack(field, true); + const fieldStack = DocumentService.getFieldStack(field, true); const pathStack: string[] = []; while (fieldStack.length) { const currentField = fieldStack.pop()!; diff --git a/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts new file mode 100644 index 000000000..26a4bc654 --- /dev/null +++ b/packages/ui/src/services/mapping.service.test.ts @@ -0,0 +1,92 @@ +import { MappingService } from './mapping.service'; +import { DocumentType } from '../models'; +import { XmlSchemaDocumentService } from './xml-schema-document.service'; +import * as fs from 'node:fs'; + +describe('MappingService', () => { + const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); + const sourceDoc = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.SOURCE_BODY, + 'ShipOrder.xsd', + orderXsd, + ); + const sourceParam = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, 'ShipOrder.xsd', orderXsd); + const targetDoc = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.TARGET_BODY, + 'ShipOrder.xsd', + orderXsd, + ); + + describe('mappingExits()', () => { + it('', () => { + const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); + expect(MappingService.mappingExists([mapping], sourceDoc.fields[0], targetDoc.fields[0])).toBeTruthy(); + expect(MappingService.mappingExists([mapping], sourceDoc.fields[0], targetDoc.fields[0].fields[0])).toBeFalsy(); + }); + }); + describe('validateFieldPairForNewMapping()', () => { + it('validate mapping', () => { + const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); + const validated = MappingService.validateFieldPairForNewMapping( + [mapping], + sourceDoc.fields[0].fields[0], + targetDoc.fields[0].fields[0], + ); + expect(validated.sourceField?.fieldIdentifier.toString()).toEqual( + sourceDoc.fields[0].fields[0].fieldIdentifier.toString(), + ); + expect(validated.targetField?.fieldIdentifier.toString()).toEqual( + targetDoc.fields[0].fields[0].fieldIdentifier.toString(), + ); + }); + it('invalidate duplicate mapping', () => { + const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); + let validated = MappingService.validateFieldPairForNewMapping( + [mapping], + sourceDoc.fields[0], + targetDoc.fields[0], + ); + expect(validated.sourceField).toBeUndefined(); + expect(validated.targetField).toBeUndefined(); + validated = MappingService.validateFieldPairForNewMapping([mapping], targetDoc.fields[0], sourceDoc.fields[0]); + expect(validated.sourceField).toBeUndefined(); + expect(validated.targetField).toBeUndefined(); + }); + }); + + describe('createNewMapping', () => { + it('', () => { + const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); + expect(mapping.sourceFields.length).toEqual(1); + expect(mapping.targetFields.length).toEqual(1); + }); + }); + + describe('getMappingsFor', () => { + it('', () => { + const mapping1 = MappingService.createNewMapping(sourceDoc.fields[0].fields[0], targetDoc.fields[0].fields[0]); + const mapping2 = MappingService.createNewMapping(sourceDoc.fields[0].fields[1], targetDoc.fields[0].fields[1]); + const found = MappingService.getMappingsFor([mapping1, mapping2], sourceDoc.fields[0].fields[1]); + expect(found.length).toEqual(1); + expect(found[0].sourceFields[0].fieldIdentifier.toString()).toEqual( + sourceDoc.fields[0].fields[1].fieldIdentifier.toString(), + ); + }); + }); + + describe('removeMappingsForDocument', () => { + it('', () => { + const mapping1 = MappingService.createNewMapping(sourceDoc.fields[0].fields[0], targetDoc.fields[0].fields[0]); + const mapping2 = MappingService.createNewMapping(sourceParam.fields[0].fields[1], targetDoc.fields[0].fields[1]); + const cleaned = MappingService.removeAllMappingsForDocument( + [mapping1, mapping2], + sourceParam.documentType, + sourceParam.documentId, + ); + expect(cleaned.length).toEqual(1); + expect(cleaned[0].sourceFields[0].fieldIdentifier.toString()).toEqual( + sourceDoc.fields[0].fields[0].fieldIdentifier.toString(), + ); + }); + }); +}); diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index aa0b4b365..3b349301c 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -1,4 +1,5 @@ -import { DocumentType, IField, IMapping } from '../models'; +import { DocumentType, IDocument, IField, IMapping } from '../models'; +import { DocumentService } from './document.service'; type MappingFieldPairReturnType = { sourceField?: IField; @@ -9,10 +10,10 @@ export class MappingService { static mappingExists(mappings: IMapping[], sourceField: IField, targetField: IField) { return ( !!mappings && - mappings.find((mapping) => { + !!mappings.find((mapping) => { return ( - mapping.sourceFields[0]?.fieldIdentifier === sourceField.fieldIdentifier && - mapping.targetFields[0]?.fieldIdentifier === targetField.fieldIdentifier + mapping.sourceFields[0]?.fieldIdentifier.toString() === sourceField.fieldIdentifier.toString() && + mapping.targetFields[0]?.fieldIdentifier.toString() === targetField.fieldIdentifier.toString() ); }) ); @@ -56,4 +57,55 @@ export class MappingService { return allMappings.filter((m) => m.sourceFields.indexOf(field) !== -1); } } + + static removeAllMappingsForDocument(allMappings: IMapping[], documentType: DocumentType, documentId: string) { + if (documentType === DocumentType.TARGET_BODY) { + return allMappings.reduce((acc, mapping) => { + const staleField = mapping.targetFields.find( + (targetField) => targetField.fieldIdentifier.documentId === documentId, + ); + if (!staleField) { + acc.push(mapping); + } + return acc; + }, [] as IMapping[]); + } else { + return allMappings.reduce((acc, mapping) => { + const staleField = mapping.sourceFields.find( + (sourceField) => + sourceField.fieldIdentifier.documentType === documentType && + sourceField.fieldIdentifier.documentId === documentId, + ); + if (!staleField) { + acc.push(mapping); + } + return acc; + }, [] as IMapping[]); + } + } + + static removeStaleMappingsForDocument(allMappings: IMapping[], document: IDocument) { + if (document.documentType === DocumentType.TARGET_BODY) { + return allMappings.reduce((acc, mapping) => { + const staleField = mapping.targetFields.find((targetField) => !DocumentService.hasField(document, targetField)); + if (!staleField) { + acc.push(mapping); + } + return acc; + }, [] as IMapping[]); + } else { + return allMappings.reduce((acc, mapping) => { + const staleField = mapping.sourceFields.find( + (sourceField) => + sourceField.ownerDocument.documentType === document.documentType && + sourceField.ownerDocument.documentId === document.documentId && + !DocumentService.hasField(document, sourceField), + ); + if (!staleField) { + acc.push(mapping); + } + return acc; + }, [] as IMapping[]); + } + } } diff --git a/yarn.lock b/yarn.lock index ef4d39255..d86e22c64 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1739,22 +1739,6 @@ __metadata: languageName: node linkType: hard -"@datamapper-poc/poc-dnd-line@workspace:packages/poc-dnd-line": - version: 0.0.0-use.local - resolution: "@datamapper-poc/poc-dnd-line@workspace:packages/poc-dnd-line" - dependencies: - "@dnd-kit/core": ^6.1.0 - "@patternfly/react-core": ^5.2.0 - "@patternfly/react-table": ^5.2.1 - "@types/react": ^18.2.61 - react: ^18.2.0 - react-dom: ^18.2.0 - react-router-dom: ^6.22.2 - typescript: ^5.3.3 - vite: ^5.1.4 - languageName: unknown - linkType: soft - "@datamapper-poc/ui@workspace:packages/ui": version: 0.0.0-use.local resolution: "@datamapper-poc/ui@workspace:packages/ui" @@ -3163,7 +3147,7 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.0, @patternfly/react-core@npm:^5.2.3": +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.3": version: 5.2.3 resolution: "@patternfly/react-core@npm:5.2.3" dependencies: @@ -3214,7 +3198,7 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-table@npm:^5.1.2, @patternfly/react-table@npm:^5.2.1": +"@patternfly/react-table@npm:^5.1.2": version: 5.2.4 resolution: "@patternfly/react-table@npm:5.2.4" dependencies: @@ -3301,13 +3285,6 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.15.3": - version: 1.15.3 - resolution: "@remix-run/router@npm:1.15.3" - checksum: 9e70bd334d99fdf9285f0885c10353d7e25f66369080f551d997e3ce204e1af3a12d6f12b091f94a2dc9a54c80598bbe3c5194b57cbae17b7b40ab815dcd49a0 - languageName: node - linkType: hard - "@rollup/pluginutils@npm:^5.1.0": version: 5.1.0 resolution: "@rollup/pluginutils@npm:5.1.0" @@ -4168,7 +4145,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^18.2.53, @types/react@npm:^18.2.61": +"@types/react@npm:*, @types/react@npm:^18.2.53": version: 18.2.69 resolution: "@types/react@npm:18.2.69" dependencies: @@ -11317,30 +11294,6 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.22.2": - version: 6.22.3 - resolution: "react-router-dom@npm:6.22.3" - dependencies: - "@remix-run/router": 1.15.3 - react-router: 6.22.3 - peerDependencies: - react: ">=16.8" - react-dom: ">=16.8" - checksum: 5ae3759a70e4123cd4b8efbb82199a69f5d8c4a7a434d186d2ec7b532b6ef3302df2a98e5c27db977d3f0d725c7a279010a16ae77a3bf6257f1fee96123d8b77 - languageName: node - linkType: hard - -"react-router@npm:6.22.3": - version: 6.22.3 - resolution: "react-router@npm:6.22.3" - dependencies: - "@remix-run/router": 1.15.3 - peerDependencies: - react: ">=16.8" - checksum: 1f7d9a5a849761ff69ef8f3d3131b4c1c25d18b76317ba5ad6f0d9421192c0b8b71ab0cc818c57aad7b81ada725559e513307d0ab43296a460262f0358602672 - languageName: node - linkType: hard - "react-sage@npm:^0.3.16": version: 0.3.16 resolution: "react-sage@npm:0.3.16" From 51c94db7731823f9f517ea7378c266116fa31ce0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 02:20:33 +0000 Subject: [PATCH 155/471] chore(deps): update @lerna-lite to v3.3.3 --- yarn.lock | 599 +++++++++++++++++++++++++----------------------------- 1 file changed, 272 insertions(+), 327 deletions(-) diff --git a/yarn.lock b/yarn.lock index d86e22c64..d6f1db5f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2259,6 +2259,13 @@ __metadata: languageName: node linkType: hard +"@inquirer/figures@npm:^1.0.0": + version: 1.0.0 + resolution: "@inquirer/figures@npm:1.0.0" + checksum: 91e3a5298d71c71eebdc7870e263bd5f1699de7e105b70db4d75984fe9670740fe933fff377cf6d4b432e3a0975368d540c2697f4d303007a5afbf0ef4d91ecc + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2273,13 +2280,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/string-locale-compare@npm:^1.1.0": - version: 1.1.0 - resolution: "@isaacs/string-locale-compare@npm:1.1.0" - checksum: 7287da5d11497b82c542d3c2abe534808015be4f4883e71c26853277b5456f6bbe4108535db847a29f385ad6dc9318ffb0f55ee79bb5f39993233d7dccf8751d - languageName: node - linkType: hard - "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -2610,13 +2610,13 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.3.2, @lerna-lite/cli@npm:^3.0.0": - version: 3.3.2 - resolution: "@lerna-lite/cli@npm:3.3.2" +"@lerna-lite/cli@npm:3.3.3, @lerna-lite/cli@npm:^3.0.0": + version: 3.3.3 + resolution: "@lerna-lite/cli@npm:3.3.3" dependencies: - "@lerna-lite/core": 3.3.2 - "@lerna-lite/init": 3.3.2 - dedent: ^1.5.1 + "@lerna-lite/core": 3.3.3 + "@lerna-lite/init": 3.3.3 + dedent: ^1.5.3 dotenv: ^16.4.5 import-local: ^3.1.0 load-json-file: ^7.0.1 @@ -2637,32 +2637,32 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 6657289280b522294269361d2a21bbee752355599a4028b43418a04cf4bf8ff4ce1eaaca6a7927b98cb288ed6adb12c8bfcbc9ef72c0a05152d4b1a8fe2201f8 + checksum: 135f96d87769cb3ebad5d2636eed027c28ea3d7855aadcdc494c4ef143a5f9a1d2bca7c59105ef3fef013162b2e3c8f3749ff723c491cb2ac4c7e4fa50c53b69 languageName: node linkType: hard -"@lerna-lite/core@npm:3.3.2": - version: 3.3.2 - resolution: "@lerna-lite/core@npm:3.3.2" +"@lerna-lite/core@npm:3.3.3": + version: 3.3.3 + resolution: "@lerna-lite/core@npm:3.3.3" dependencies: "@npmcli/run-script": ^7.0.4 chalk: ^5.3.0 clone-deep: ^4.0.1 config-chain: ^1.1.13 cosmiconfig: ^9.0.0 - dedent: ^1.5.1 + dedent: ^1.5.3 execa: ^8.0.1 fs-extra: ^11.2.0 glob-parent: ^6.0.2 globby: ^14.0.1 - inquirer: ^9.2.17 + inquirer: ^9.2.18 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 minimatch: ^9.0.4 - npm-package-arg: ^11.0.1 + npm-package-arg: ^11.0.2 npmlog: ^7.0.1 - p-map: ^7.0.1 + p-map: ^7.0.2 p-queue: ^8.0.1 resolve-from: ^5.0.0 semver: ^7.6.0 @@ -2671,71 +2671,70 @@ __metadata: write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 write-package: ^7.0.1 - checksum: 0908f849aac7e7dfdd9d4d9b077222373fbe8aad190c4a03e2e8a6a4e1be1a2b5eb94dc252e19a56d56ebc176d708e6ad2cbfb4541394ceea56c8c2a44be3508 + checksum: bfb4b8bcadb7ede2ff01dffa5d885e33f68ae49154658f45e65f2038b9f195e3375481e16f1d0c6ae22e3d135ac017191ebbd7f85e97d59aa26397de26e6bd5f languageName: node linkType: hard -"@lerna-lite/init@npm:3.3.2": - version: 3.3.2 - resolution: "@lerna-lite/init@npm:3.3.2" +"@lerna-lite/init@npm:3.3.3": + version: 3.3.3 + resolution: "@lerna-lite/init@npm:3.3.3" dependencies: - "@lerna-lite/core": 3.3.2 + "@lerna-lite/core": 3.3.3 fs-extra: ^11.2.0 - p-map: ^7.0.1 + p-map: ^7.0.2 write-json-file: ^5.0.0 - checksum: ad9c83cb27e2e83297ac428ab57380966f720f72f5f49a0bb4bfe8ea6dad1a02d0f1cb2662a7083aebb0a81a3500b0ecd9187eece5e177dc95601cb2604b3d6b + checksum: 0ac9b60177745126a3df44fb016d994012971f95bd1a9680bf493488060ae450a905ad17e39817235836d209f8733cf7b54f6a18da4f68e0bd837d004e6651e9 languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.3.2 - resolution: "@lerna-lite/publish@npm:3.3.2" + version: 3.3.3 + resolution: "@lerna-lite/publish@npm:3.3.3" dependencies: - "@lerna-lite/cli": 3.3.2 - "@lerna-lite/core": 3.3.2 - "@lerna-lite/version": 3.3.2 - "@npmcli/arborist": ^7.4.0 + "@lerna-lite/cli": 3.3.3 + "@lerna-lite/core": 3.3.3 + "@lerna-lite/version": 3.3.3 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 fs-extra: ^11.2.0 glob: ^10.3.12 has-unicode: ^2.0.1 - libnpmaccess: ^8.0.2 - libnpmpublish: ^9.0.4 + libnpmaccess: ^8.0.3 + libnpmpublish: ^9.0.5 normalize-path: ^3.0.0 - npm-package-arg: ^11.0.1 - npm-packlist: ^8.0.2 - npm-registry-fetch: ^16.1.0 + npm-package-arg: ^11.0.2 + npm-packlist: ^5.1.3 + npm-registry-fetch: ^16.2.1 npmlog: ^7.0.1 - p-map: ^7.0.1 + p-map: ^7.0.2 p-pipe: ^4.0.0 - pacote: ^17.0.6 + pacote: ^17.0.7 pify: ^6.1.0 read-package-json: ^7.0.0 semver: ^7.6.0 ssri: ^10.0.5 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: 6d4961ea821f0ea290d34b3902cf0a703cabbe01a0f66776e76ca47806f1fff5f3b72f5da43b1c1b645b12464aee21c3ab2668cb56fc1289095898a6de3f26bc + checksum: 0e387020ca488042bc620c1e860351675c34fe0616775ee54f70fbe1410b240af1059688c6d54d4a13d736eddc8f72654358c66662e4392aac1f41b0becea988 languageName: node linkType: hard -"@lerna-lite/version@npm:3.3.2, @lerna-lite/version@npm:^3.0.0": - version: 3.3.2 - resolution: "@lerna-lite/version@npm:3.3.2" +"@lerna-lite/version@npm:3.3.3, @lerna-lite/version@npm:^3.0.0": + version: 3.3.3 + resolution: "@lerna-lite/version@npm:3.3.3" dependencies: - "@lerna-lite/cli": 3.3.2 - "@lerna-lite/core": 3.3.2 + "@lerna-lite/cli": 3.3.3 + "@lerna-lite/core": 3.3.3 "@octokit/plugin-enterprise-rest": ^6.0.1 - "@octokit/rest": ^20.0.2 + "@octokit/rest": ^20.1.0 chalk: ^5.3.0 conventional-changelog-angular: ^7.0.0 conventional-changelog-core: ^7.0.0 conventional-changelog-writer: ^7.0.1 conventional-commits-parser: ^5.0.0 conventional-recommended-bump: ^9.0.0 - dedent: ^1.5.1 + dedent: ^1.5.3 fs-extra: ^11.2.0 get-stream: ^9.0.1 git-url-parse: ^14.0.0 @@ -2746,9 +2745,9 @@ __metadata: minimatch: ^9.0.4 new-github-release-url: ^2.0.0 node-fetch: ^3.3.2 - npm-package-arg: ^11.0.1 + npm-package-arg: ^11.0.2 npmlog: ^7.0.1 - p-map: ^7.0.1 + p-map: ^7.0.2 p-pipe: ^4.0.0 p-reduce: ^3.0.0 pify: ^6.1.0 @@ -2757,7 +2756,7 @@ __metadata: temp-dir: ^3.0.0 uuid: ^9.0.1 write-json-file: ^5.0.0 - checksum: 316f5b47e38041db0c291d107325776a698307e14760a258c81644e11eee4fc2a7db7865747a3086bc72d7bb968b8e8d6a34f8a1a3f74f074d31022748300e42 + checksum: f2dae11d56d90e6a36fda900afc30b86a16c3226c235d8e8b5208dd9aa78eb971d2955320aea90bfda0173ed682aad1d1bc375514060f25d5f93bc4b52413304 languageName: node linkType: hard @@ -2834,49 +2833,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/arborist@npm:^7.4.0": - version: 7.4.0 - resolution: "@npmcli/arborist@npm:7.4.0" - dependencies: - "@isaacs/string-locale-compare": ^1.1.0 - "@npmcli/fs": ^3.1.0 - "@npmcli/installed-package-contents": ^2.0.2 - "@npmcli/map-workspaces": ^3.0.2 - "@npmcli/metavuln-calculator": ^7.0.0 - "@npmcli/name-from-folder": ^2.0.0 - "@npmcli/node-gyp": ^3.0.0 - "@npmcli/package-json": ^5.0.0 - "@npmcli/query": ^3.1.0 - "@npmcli/run-script": ^7.0.2 - bin-links: ^4.0.1 - cacache: ^18.0.0 - common-ancestor-path: ^1.0.1 - hosted-git-info: ^7.0.1 - json-parse-even-better-errors: ^3.0.0 - json-stringify-nice: ^1.1.4 - minimatch: ^9.0.0 - nopt: ^7.0.0 - npm-install-checks: ^6.2.0 - npm-package-arg: ^11.0.1 - npm-pick-manifest: ^9.0.0 - npm-registry-fetch: ^16.0.0 - npmlog: ^7.0.1 - pacote: ^17.0.4 - parse-conflict-json: ^3.0.0 - proc-log: ^3.0.0 - promise-all-reject-late: ^1.0.0 - promise-call-limit: ^3.0.1 - read-package-json-fast: ^3.0.2 - semver: ^7.3.7 - ssri: ^10.0.5 - treeverse: ^3.0.0 - walk-up-path: ^3.0.1 - bin: - arborist: bin/index.js - checksum: 9590c77e28c441a917c00de6422a73c74285e28d87f06fb36a36331d7fb969cb68ee04da16174c207c6587c4eaeedf12a50a7718493e4f3f5079b53520314976 - languageName: node - linkType: hard - "@npmcli/fs@npm:^3.1.0": version: 3.1.0 resolution: "@npmcli/fs@npm:3.1.0" @@ -2902,7 +2858,7 @@ __metadata: languageName: node linkType: hard -"@npmcli/installed-package-contents@npm:^2.0.1, @npmcli/installed-package-contents@npm:^2.0.2": +"@npmcli/installed-package-contents@npm:^2.0.1": version: 2.0.2 resolution: "@npmcli/installed-package-contents@npm:2.0.2" dependencies: @@ -2914,37 +2870,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/map-workspaces@npm:^3.0.2": - version: 3.0.4 - resolution: "@npmcli/map-workspaces@npm:3.0.4" - dependencies: - "@npmcli/name-from-folder": ^2.0.0 - glob: ^10.2.2 - minimatch: ^9.0.0 - read-package-json-fast: ^3.0.0 - checksum: 99607dbc502b16d0ce7a47a81ccc496b3f5ed10df4e61e61a505929de12c356092996044174ae0cfd6d8cc177ef3b597eef4987b674fc0c5a306d3a8cc1fe91a - languageName: node - linkType: hard - -"@npmcli/metavuln-calculator@npm:^7.0.0": - version: 7.0.0 - resolution: "@npmcli/metavuln-calculator@npm:7.0.0" - dependencies: - cacache: ^18.0.0 - json-parse-even-better-errors: ^3.0.0 - pacote: ^17.0.0 - semver: ^7.3.5 - checksum: 653448528b8d1a1f10314e3cf04ccb76c77ccbdf3afc61ca4b790e01788ebb552839082258149619c0aa7cf745660c40e21e7ca86123580819490082d0c762ed - languageName: node - linkType: hard - -"@npmcli/name-from-folder@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/name-from-folder@npm:2.0.0" - checksum: fb3ef891aa57315fb6171866847f298577c8bda98a028e93e458048477133e142b4eb45ce9f3b80454f7c257612cb01754ee782d608507698dd712164436f5bd - languageName: node - linkType: hard - "@npmcli/node-gyp@npm:^3.0.0": version: 3.0.0 resolution: "@npmcli/node-gyp@npm:3.0.0" @@ -2976,16 +2901,14 @@ __metadata: languageName: node linkType: hard -"@npmcli/query@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/query@npm:3.1.0" - dependencies: - postcss-selector-parser: ^6.0.10 - checksum: 33c018bfcc6d64593e7969847d0442beab4e8a42b6c9f932237c9fd135c95ab55de5c4b5d5d66302dd9fc3c748bc4ead780d3595e5d586fedf9859ed6b5f2744 +"@npmcli/redact@npm:^1.1.0": + version: 1.1.0 + resolution: "@npmcli/redact@npm:1.1.0" + checksum: f200d40c485aea6fdf0487ddfed258ec13a217701261d9115f9c82b65f341403b3dfc7aaa1f5bd0b51b09f7dee03d89b86d99314356faed370bada8d0f000836 languageName: node linkType: hard -"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.2, @npmcli/run-script@npm:^7.0.4": +"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.4": version: 7.0.4 resolution: "@npmcli/run-script@npm:7.0.4" dependencies: @@ -3005,46 +2928,53 @@ __metadata: languageName: node linkType: hard -"@octokit/core@npm:^5.0.0": - version: 5.1.0 - resolution: "@octokit/core@npm:5.1.0" +"@octokit/core@npm:^5.0.2": + version: 5.2.0 + resolution: "@octokit/core@npm:5.2.0" dependencies: "@octokit/auth-token": ^4.0.0 - "@octokit/graphql": ^7.0.0 - "@octokit/request": ^8.0.2 - "@octokit/request-error": ^5.0.0 - "@octokit/types": ^12.0.0 + "@octokit/graphql": ^7.1.0 + "@octokit/request": ^8.3.1 + "@octokit/request-error": ^5.1.0 + "@octokit/types": ^13.0.0 before-after-hook: ^2.2.0 universal-user-agent: ^6.0.0 - checksum: 170d16f5577df484116238ce04e2dbd6b45d8e96b4680fee657ae22fcafb311af8df8a14ae80610f41c1a85493c927910698019a761914ff4b0323ddbabcc9a4 + checksum: 57d5f02b759b569323dcb76cc72bf94ea7d0de58638c118ee14ec3e37d303c505893137dd72918328794844f35c74b3cd16999319c4b40d410a310d44a9b7566 languageName: node linkType: hard -"@octokit/endpoint@npm:^9.0.0": - version: 9.0.4 - resolution: "@octokit/endpoint@npm:9.0.4" +"@octokit/endpoint@npm:^9.0.1": + version: 9.0.5 + resolution: "@octokit/endpoint@npm:9.0.5" dependencies: - "@octokit/types": ^12.0.0 + "@octokit/types": ^13.1.0 universal-user-agent: ^6.0.0 - checksum: ed1b64a448f478e5951a043ef816d634a5a1f584519cbf2f374ceac058f82a16e52f078f156aa8b8cbcab7b0590348d94294fc83c9b4eebd42a820a5f10db81c + checksum: d5cc2df9bd4603844c163eea05eec89c677cfe699c6f065fe86b83123e34554ec16d429e8142dec1e2b4cf56591ef0ce5b1763f250c87bc8e7bf6c74ba59ae82 languageName: node linkType: hard -"@octokit/graphql@npm:^7.0.0": - version: 7.0.2 - resolution: "@octokit/graphql@npm:7.0.2" +"@octokit/graphql@npm:^7.1.0": + version: 7.1.0 + resolution: "@octokit/graphql@npm:7.1.0" dependencies: - "@octokit/request": ^8.0.1 - "@octokit/types": ^12.0.0 + "@octokit/request": ^8.3.0 + "@octokit/types": ^13.0.0 universal-user-agent: ^6.0.0 - checksum: 05a752c4c2d84fc2900d8e32e1c2d1ee98a5a14349e651cb1109d0741e821e7417a048b1bb40918534ed90a472314aabbda35688868016f248098925f82a3bfa + checksum: 7b2706796e0269fc033ed149ea211117bcacf53115fd142c1eeafc06ebc5b6290e4e48c03d6276c210d72e3695e8598f83caac556cd00714fc1f8e4707d77448 languageName: node linkType: hard -"@octokit/openapi-types@npm:^19.1.0": - version: 19.1.0 - resolution: "@octokit/openapi-types@npm:19.1.0" - checksum: 9d1b188741609a9832b964df2bc337ee77c1fc89d5f686faebb743c7cb27721e214180d623ee28227427b4c43719b79ee4890e338a709b78a9f249a7c369ac3e +"@octokit/openapi-types@npm:^20.0.0": + version: 20.0.0 + resolution: "@octokit/openapi-types@npm:20.0.0" + checksum: 23ff7613750f8b5790a0cbed5a2048728a7909e50d726932831044908357a932c7fc0613fb7b86430a49d31b3d03a180632ea5dd936535bfbc1176391a199e96 + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^22.1.0": + version: 22.1.0 + resolution: "@octokit/openapi-types@npm:22.1.0" + checksum: 6c3c1ef11fd04be423eb347622a3da063b3847ba4c5e665458bf9461cf3c21a5ddbb16603b65694825537ef28b01ee6e700c37ec2981fb8eac13906b37874bb8 languageName: node linkType: hard @@ -3055,14 +2985,14 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^9.0.0": - version: 9.1.5 - resolution: "@octokit/plugin-paginate-rest@npm:9.1.5" +"@octokit/plugin-paginate-rest@npm:^9.1.5": + version: 9.2.1 + resolution: "@octokit/plugin-paginate-rest@npm:9.2.1" dependencies: - "@octokit/types": ^12.4.0 + "@octokit/types": ^12.6.0 peerDependencies: - "@octokit/core": ">=5" - checksum: ee5bc62e3175b61fdd3e65cc26410e1130931e729591003b302167cb02d0cec0746fd58220800d07de179e36077b9d675c794d0859457b701a7692b9fcde49a0 + "@octokit/core": 5 + checksum: 554ad17a7dcfd7028e321ffcae233f8ae7975569084f19d9b6217b47fb182e2604145108de7a9029777e6dc976b27b2dd7387e2e47a77532a72e6c195880576d languageName: node linkType: hard @@ -3075,58 +3005,67 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^10.0.0": - version: 10.3.0 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.3.0" +"@octokit/plugin-rest-endpoint-methods@npm:^10.2.0": + version: 10.4.1 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.4.1" dependencies: - "@octokit/types": ^12.4.0 + "@octokit/types": ^12.6.0 peerDependencies: - "@octokit/core": ">=5" - checksum: 42be2790ef2c43f0a811962d7bea9913a2135cc46ac9b72620b09f7bf5f265208dbac3826f3d6d63f5eb0d7a1c64281399344a853f4c98a8768b6f59b81769e7 + "@octokit/core": 5 + checksum: 3e0e95515ccb7fdd5e5cff32a5e34a688fd275c6703caf786f7c49820e2bf2a66e7d845ba4eae4d03c307c1950ea417e34a17055b25b46e2019123b75b394c56 languageName: node linkType: hard -"@octokit/request-error@npm:^5.0.0": - version: 5.0.1 - resolution: "@octokit/request-error@npm:5.0.1" +"@octokit/request-error@npm:^5.1.0": + version: 5.1.0 + resolution: "@octokit/request-error@npm:5.1.0" dependencies: - "@octokit/types": ^12.0.0 + "@octokit/types": ^13.1.0 deprecation: ^2.0.0 once: ^1.4.0 - checksum: a681341e43b4da7a8acb19e1a6ba0355b1af146fa0191f2554a98950cf85f898af6ae3ab0b0287d6c871f5465ec57cb38363b96b5019f9f77ba6f30eca39ede5 + checksum: 2cdbb8e44072323b5e1c8c385727af6700e3e492d55bc1e8d0549c4a3d9026914f915866323d371b1f1772326d6e902341c872679cc05c417ffc15cadf5f4a4e languageName: node linkType: hard -"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2": - version: 8.2.0 - resolution: "@octokit/request@npm:8.2.0" +"@octokit/request@npm:^8.3.0, @octokit/request@npm:^8.3.1": + version: 8.4.0 + resolution: "@octokit/request@npm:8.4.0" dependencies: - "@octokit/endpoint": ^9.0.0 - "@octokit/request-error": ^5.0.0 - "@octokit/types": ^12.0.0 + "@octokit/endpoint": ^9.0.1 + "@octokit/request-error": ^5.1.0 + "@octokit/types": ^13.1.0 universal-user-agent: ^6.0.0 - checksum: 24dd2c96769aa52df19fdbf4058dfd06dc3a799121250c10ec5fbea4c43ec0183639a2beccc84053df2c298c18892ed8fbf722f1ca5271003feaac5290272beb + checksum: 3d937e817a85c0adf447ab46b428ccd702c31b2091e47adec90583ec2242bd64666306fe8188628fb139aa4752e19400eb7652b0f5ca33cd9e77bbb2c60b202a languageName: node linkType: hard -"@octokit/rest@npm:^20.0.2": - version: 20.0.2 - resolution: "@octokit/rest@npm:20.0.2" +"@octokit/rest@npm:^20.1.0": + version: 20.1.0 + resolution: "@octokit/rest@npm:20.1.0" dependencies: - "@octokit/core": ^5.0.0 - "@octokit/plugin-paginate-rest": ^9.0.0 + "@octokit/core": ^5.0.2 + "@octokit/plugin-paginate-rest": ^9.1.5 "@octokit/plugin-request-log": ^4.0.0 - "@octokit/plugin-rest-endpoint-methods": ^10.0.0 - checksum: 5c56ac23f063a5375ae5a0609e6477d90afac872eccd07002870f9dd62755037282a74c15c90c848b76b64ea4b5af52f32720b8a1b7b133e758118d11d2c0e34 + "@octokit/plugin-rest-endpoint-methods": ^10.2.0 + checksum: 2d705cbc30eb12a0b6d75e7c8feed8c10e85fea98b1a6199a347fe751176bc7b5ca346fe874110fe4f350cec9a140a43a01b03d65c79b1adf2c5528ce1524c94 + languageName: node + linkType: hard + +"@octokit/types@npm:^12.6.0": + version: 12.6.0 + resolution: "@octokit/types@npm:12.6.0" + dependencies: + "@octokit/openapi-types": ^20.0.0 + checksum: 850235f425584499a2266d5c585c1c2462ae11e25c650567142f3342cb9ce589c8c8fed87705811ca93271fd28c68e1fa77b88b67b97015d7b63d269fa46ed05 languageName: node linkType: hard -"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.4.0": - version: 12.5.0 - resolution: "@octokit/types@npm:12.5.0" +"@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0": + version: 13.4.1 + resolution: "@octokit/types@npm:13.4.1" dependencies: - "@octokit/openapi-types": ^19.1.0 - checksum: 6f1a67c9db8d414e87c4ee7abd1e2627ce9d998bc8aaaa7880d5a2be1dd7c7130a3d78c08884afda72195c0eb6c97bbf4fbc12b8ad57ff0031d31ffc7cc0d1fb + "@octokit/openapi-types": ^22.1.0 + checksum: d47f42e8c97bd9ce410cbb7ada464f26260ca0147116611e00d9843c4b76fcd963df19d920e35c80e845d057d579f0d4be82ff0b7b7ce5e4dcaae38e012d66cb languageName: node linkType: hard @@ -4965,18 +4904,6 @@ __metadata: languageName: node linkType: hard -"bin-links@npm:^4.0.1": - version: 4.0.3 - resolution: "bin-links@npm:4.0.3" - dependencies: - cmd-shim: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - read-cmd-shim: ^4.0.0 - write-file-atomic: ^5.0.0 - checksum: 3b3ee22efc38d608479d51675c8958a841b8b55b8975342ce86f28ac4e0bb3aef46e9dbdde976c6dc1fe1bd2aa00d42e00869ad35b57ee6d868f39f662858911 - languageName: node - linkType: hard - "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -5331,13 +5258,6 @@ __metadata: languageName: node linkType: hard -"cmd-shim@npm:^6.0.0": - version: 6.0.2 - resolution: "cmd-shim@npm:6.0.2" - checksum: df3a01fc4d72a49b450985b991205e65774b28e7f74a2e4d2a11fd0df8732e3828f9e7b644050def3cd0be026cbd3ee46a1f50ce5f57d0b3fb5afe335bdfacde - languageName: node - linkType: hard - "co@npm:^4.6.0": version: 4.6.0 resolution: "co@npm:4.6.0" @@ -5447,13 +5367,6 @@ __metadata: languageName: node linkType: hard -"common-ancestor-path@npm:^1.0.1": - version: 1.0.1 - resolution: "common-ancestor-path@npm:1.0.1" - checksum: 1d2e4186067083d8cc413f00fc2908225f04ae4e19417ded67faa6494fb313c4fcd5b28a52326d1a62b466e2b3a4325e92c31133c5fee628cdf8856b3a57c3d7 - languageName: node - linkType: hard - "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" @@ -6205,7 +6118,7 @@ __metadata: languageName: node linkType: hard -"dedent@npm:^1.0.0, dedent@npm:^1.5.1": +"dedent@npm:^1.0.0": version: 1.5.1 resolution: "dedent@npm:1.5.1" peerDependencies: @@ -6217,6 +6130,18 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^1.5.3": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -7273,15 +7198,6 @@ __metadata: languageName: node linkType: hard -"figures@npm:^3.2.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" - dependencies: - escape-string-regexp: ^1.0.5 - checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b - languageName: node - linkType: hard - "file-entry-cache@npm:^6.0.1": version: 6.0.1 resolution: "file-entry-cache@npm:6.0.1" @@ -7764,6 +7680,19 @@ __metadata: languageName: node linkType: hard +"glob@npm:^8.0.1": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^5.0.1 + once: ^1.3.0 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 + languageName: node + linkType: hard + "global-modules@npm:^2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -8002,7 +7931,7 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^7.0.0, hosted-git-info@npm:^7.0.1": +"hosted-git-info@npm:^7.0.0": version: 7.0.1 resolution: "hosted-git-info@npm:7.0.1" dependencies: @@ -8130,6 +8059,15 @@ __metadata: languageName: node linkType: hard +"ignore-walk@npm:^5.0.1": + version: 5.0.1 + resolution: "ignore-walk@npm:5.0.1" + dependencies: + minimatch: ^5.0.1 + checksum: 1a4ef35174653a1aa6faab3d9f8781269166536aee36a04946f6e2b319b2475c1903a75ed42f04219274128242f49d0a10e20c4354ee60d9548e97031451150b + languageName: node + linkType: hard + "ignore-walk@npm:^6.0.4": version: 6.0.4 resolution: "ignore-walk@npm:6.0.4" @@ -8220,17 +8158,17 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.2.17": - version: 9.2.17 - resolution: "inquirer@npm:9.2.17" +"inquirer@npm:^9.2.18": + version: 9.2.18 + resolution: "inquirer@npm:9.2.18" dependencies: + "@inquirer/figures": ^1.0.0 "@ljharb/through": ^2.3.13 ansi-escapes: ^4.3.2 chalk: ^5.3.0 cli-cursor: ^3.1.0 cli-width: ^4.1.0 external-editor: ^3.1.0 - figures: ^3.2.0 lodash: ^4.17.21 mute-stream: 1.0.0 ora: ^5.4.1 @@ -8239,7 +8177,7 @@ __metadata: string-width: ^4.2.3 strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 - checksum: be5afe4f7008afb8057ee2b30c83708100a467a898ca741f136c1226c321dda4ea169cf1782e01b1b977f4cdd2bed6e47c1db5ae728cadf97ba64995cebc1f91 + checksum: c9e33f5bb67d4281a76afa3d793a4eea84ce6cedbd3ea6b20eb7a393504e456dace31d59fec4b940a5390ad8a74048bbf056f88cf3c43fddd7945233a31cf5f4 languageName: node linkType: hard @@ -9334,13 +9272,6 @@ __metadata: languageName: node linkType: hard -"json-stringify-nice@npm:^1.1.4": - version: 1.1.4 - resolution: "json-stringify-nice@npm:1.1.4" - checksum: 6ddf781148b46857ab04e97f47be05f14c4304b86eb5478369edbeacd070c21c697269964b982fc977e8989d4c59091103b1d9dc291aba40096d6cbb9a392b72 - languageName: node - linkType: hard - "json-stringify-safe@npm:^5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" @@ -9388,20 +9319,6 @@ __metadata: languageName: node linkType: hard -"just-diff-apply@npm:^5.2.0": - version: 5.5.0 - resolution: "just-diff-apply@npm:5.5.0" - checksum: ed6bbd59781542ccb786bd843038e4591e8390aa788075beb69d358051f68fbeb122bda050b7f42515d51fb64b907d5c7bea694a0543b87b24ce406cfb5f5bfa - languageName: node - linkType: hard - -"just-diff@npm:^6.0.0": - version: 6.0.2 - resolution: "just-diff@npm:6.0.2" - checksum: 1a0c7524f640cb88ab013862733e710f840927834208fd3b85cbc5da2ced97acc75e7dcfe493268ac6a6514c51dd8624d2fd9d057050efba3c02b81a6dcb7ff9 - languageName: node - linkType: hard - "keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -9456,29 +9373,29 @@ __metadata: languageName: node linkType: hard -"libnpmaccess@npm:^8.0.2": - version: 8.0.2 - resolution: "libnpmaccess@npm:8.0.2" +"libnpmaccess@npm:^8.0.3": + version: 8.0.3 + resolution: "libnpmaccess@npm:8.0.3" dependencies: npm-package-arg: ^11.0.1 - npm-registry-fetch: ^16.0.0 - checksum: 20113f2fe4e32e3aaaa04f89cf2a7c1c907f847e274cc81d16617e5e5d5be4f801cd5709fe978bd9f9c0f6983d2cd941933a3c59393b63f7f2283bafb6a31659 + npm-registry-fetch: ^16.2.0 + checksum: 119afc9d7a7bafc971e9fdf4ef078c21ba2ea8de5b8ffb87298182e4f2c7915a06199f3f316abecb7c41ac97216dbf72e87e28fb5a4708af109a16ea5dedcdb0 languageName: node linkType: hard -"libnpmpublish@npm:^9.0.4": - version: 9.0.4 - resolution: "libnpmpublish@npm:9.0.4" +"libnpmpublish@npm:^9.0.5": + version: 9.0.5 + resolution: "libnpmpublish@npm:9.0.5" dependencies: ci-info: ^4.0.0 normalize-package-data: ^6.0.0 npm-package-arg: ^11.0.1 - npm-registry-fetch: ^16.0.0 + npm-registry-fetch: ^16.2.0 proc-log: ^3.0.0 semver: ^7.3.7 sigstore: ^2.2.0 ssri: ^10.0.5 - checksum: 0f7341b222cfd7d60721804cf2e1468fe4315e7ce77389ecc475d5b3b380dc8fdf13de40a8116e3da6a1d8544cbd467545227d4f62e5a2bc1637e110c80bbf6e + checksum: d004cae73ffc302469a72346989b3707b9f9825813192e735ef168a04767ad72c452830beee921e99a3f1f7f4321379281013bb07f046f7b2c97df3fe58cb448 languageName: node linkType: hard @@ -9860,6 +9777,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + languageName: node + linkType: hard + "minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -10220,6 +10146,15 @@ __metadata: languageName: node linkType: hard +"npm-bundled@npm:^2.0.0": + version: 2.0.1 + resolution: "npm-bundled@npm:2.0.1" + dependencies: + npm-normalize-package-bin: ^2.0.0 + checksum: 7747293985c48c5268871efe691545b03731cb80029692000cbdb0b3344b9617be5187aa36281cabbe6b938e3651b4e87236d1c31f9e645eef391a1a779413e6 + languageName: node + linkType: hard + "npm-bundled@npm:^3.0.0": version: 3.0.0 resolution: "npm-bundled@npm:3.0.0" @@ -10229,7 +10164,7 @@ __metadata: languageName: node linkType: hard -"npm-install-checks@npm:^6.0.0, npm-install-checks@npm:^6.2.0": +"npm-install-checks@npm:^6.0.0": version: 6.3.0 resolution: "npm-install-checks@npm:6.3.0" dependencies: @@ -10238,6 +10173,13 @@ __metadata: languageName: node linkType: hard +"npm-normalize-package-bin@npm:^2.0.0": + version: 2.0.0 + resolution: "npm-normalize-package-bin@npm:2.0.0" + checksum: 7c5379f9b188b564c4332c97bdd9a5d6b7b15f02b5823b00989d6a0e6fb31eb0280f02b0a924f930e1fcaf00e60fae333aec8923d2a4c7747613c7d629d8aa25 + languageName: node + linkType: hard + "npm-normalize-package-bin@npm:^3.0.0": version: 3.0.1 resolution: "npm-normalize-package-bin@npm:3.0.1" @@ -10257,7 +10199,33 @@ __metadata: languageName: node linkType: hard -"npm-packlist@npm:^8.0.0, npm-packlist@npm:^8.0.2": +"npm-package-arg@npm:^11.0.2": + version: 11.0.2 + resolution: "npm-package-arg@npm:11.0.2" + dependencies: + hosted-git-info: ^7.0.0 + proc-log: ^4.0.0 + semver: ^7.3.5 + validate-npm-package-name: ^5.0.0 + checksum: cb78da54d42373fc87fcecfc68e74b10be02fea940becddf9fdcc8941334a5d57b5e867da2647e8b74880e1dc2b212d0fcc963fafd41cbccca8da3a1afef5b12 + languageName: node + linkType: hard + +"npm-packlist@npm:^5.1.3": + version: 5.1.3 + resolution: "npm-packlist@npm:5.1.3" + dependencies: + glob: ^8.0.1 + ignore-walk: ^5.0.1 + npm-bundled: ^2.0.0 + npm-normalize-package-bin: ^2.0.0 + bin: + npm-packlist: bin/index.js + checksum: 94cc9c66740e8f80243301de85eb0a2cec5bbd570c3f26b6ad7af1a3eca155f7e810580dc7ea4448f12a8fd82f6db307e7132a5fe69e157eb45b325acadeb22a + languageName: node + linkType: hard + +"npm-packlist@npm:^8.0.0": version: 8.0.2 resolution: "npm-packlist@npm:8.0.2" dependencies: @@ -10278,7 +10246,7 @@ __metadata: languageName: node linkType: hard -"npm-registry-fetch@npm:^16.0.0, npm-registry-fetch@npm:^16.1.0": +"npm-registry-fetch@npm:^16.0.0": version: 16.1.0 resolution: "npm-registry-fetch@npm:16.1.0" dependencies: @@ -10293,6 +10261,22 @@ __metadata: languageName: node linkType: hard +"npm-registry-fetch@npm:^16.2.0, npm-registry-fetch@npm:^16.2.1": + version: 16.2.1 + resolution: "npm-registry-fetch@npm:16.2.1" + dependencies: + "@npmcli/redact": ^1.1.0 + make-fetch-happen: ^13.0.0 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minipass-json-stream: ^1.0.1 + minizlib: ^2.1.2 + npm-package-arg: ^11.0.0 + proc-log: ^4.0.0 + checksum: 0c606dffcddecbccdc9539571ffbacd35b2d70c265841c9a4094042010c68de72c44915154d0a01038ce469ead2fec2ffb5c5225c8bb419a4824b050844d2fdb + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -10526,10 +10510,10 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^7.0.1": - version: 7.0.1 - resolution: "p-map@npm:7.0.1" - checksum: 553c218f582b9c7f96159dd55d082fc6df386ea86a78a3798b768f87f761d6f01ea52dd76225e69199720fa0684901d38353cd0978a39ef4f7f4fd287c4e9262 +"p-map@npm:^7.0.2": + version: 7.0.2 + resolution: "p-map@npm:7.0.2" + checksum: bc128c2b244ef5d4619392b2247d718a3fe471d5fa4a73834fd96182a237f460ec7e0ad0f95139ef7103a6b50ed164228c62e2f8e41ba2b15360fe1c20d13563 languageName: node linkType: hard @@ -10571,9 +10555,9 @@ __metadata: languageName: node linkType: hard -"pacote@npm:^17.0.0, pacote@npm:^17.0.4, pacote@npm:^17.0.6": - version: 17.0.6 - resolution: "pacote@npm:17.0.6" +"pacote@npm:^17.0.7": + version: 17.0.7 + resolution: "pacote@npm:17.0.7" dependencies: "@npmcli/git": ^5.0.0 "@npmcli/installed-package-contents": ^2.0.1 @@ -10586,7 +10570,7 @@ __metadata: npm-packlist: ^8.0.0 npm-pick-manifest: ^9.0.0 npm-registry-fetch: ^16.0.0 - proc-log: ^3.0.0 + proc-log: ^4.0.0 promise-retry: ^2.0.1 read-package-json: ^7.0.0 read-package-json-fast: ^3.0.0 @@ -10595,7 +10579,7 @@ __metadata: tar: ^6.1.11 bin: pacote: lib/bin.js - checksum: e410331e0b1ea0d0764cdb412e8def62f90c3b2d7dccce16f3eb7c1f847d37d730e9661eff039f623777dccce1b3fcb4c4ad8c9e5950d60e6d8ef6eec924f8b3 + checksum: eadc2894f93b89b2965544a4da6c81490778f3ea915b1c21383a81bd9704b7f5704ec8bd2dd5a511b700f13cf0e7367dea62f6ffc7680227bac649fb2a10a2ff languageName: node linkType: hard @@ -10615,17 +10599,6 @@ __metadata: languageName: node linkType: hard -"parse-conflict-json@npm:^3.0.0": - version: 3.0.1 - resolution: "parse-conflict-json@npm:3.0.1" - dependencies: - json-parse-even-better-errors: ^3.0.0 - just-diff: ^6.0.0 - just-diff-apply: ^5.2.0 - checksum: d8d2656bc02d4df36846366baec36b419da2fe944e31298719a4d28d28f772aa7cad2a69d01f6f329918e7c298ac481d1e6a9138d62d5662d5620a74f794af8f - languageName: node - linkType: hard - "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -10880,7 +10853,7 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.15": +"postcss-selector-parser@npm:^6.0.15": version: 6.0.15 resolution: "postcss-selector-parser@npm:6.0.15" dependencies: @@ -11027,6 +11000,13 @@ __metadata: languageName: node linkType: hard +"proc-log@npm:^4.0.0": + version: 4.1.0 + resolution: "proc-log@npm:4.1.0" + checksum: 7f32d169970ce432f348f5350bc1a0069a89d37dfd43878f3f093894a11ba0afd3e3e28a300368a93b449825ca4b08eeb1e0853958224673cb4a394e04aaeadc + languageName: node + linkType: hard + "process@npm:^0.11.10": version: 0.11.10 resolution: "process@npm:0.11.10" @@ -11034,20 +11014,6 @@ __metadata: languageName: node linkType: hard -"promise-all-reject-late@npm:^1.0.0": - version: 1.0.1 - resolution: "promise-all-reject-late@npm:1.0.1" - checksum: d7d61ac412352e2c8c3463caa5b1c3ca0f0cc3db15a09f180a3da1446e33d544c4261fc716f772b95e4c27d559cfd2388540f44104feb356584f9c73cfb9ffcb - languageName: node - linkType: hard - -"promise-call-limit@npm:^3.0.1": - version: 3.0.1 - resolution: "promise-call-limit@npm:3.0.1" - checksum: f1b3c4d3a9c5482ce27ec5f40311e1389adb9bb10c16166e61c96d29ab22c701691d5225bf6745a162858f45dfb46cc82275fd09e7aa57846fc446c7855c2f06 - languageName: node - linkType: hard - "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -11354,14 +11320,7 @@ __metadata: languageName: node linkType: hard -"read-cmd-shim@npm:^4.0.0": - version: 4.0.0 - resolution: "read-cmd-shim@npm:4.0.0" - checksum: 2fb5a8a38984088476f559b17c6a73324a5db4e77e210ae0aab6270480fd85c355fc990d1c79102e25e555a8201606ed12844d6e3cd9f35d6a1518791184e05b - languageName: node - linkType: hard - -"read-package-json-fast@npm:^3.0.0, read-package-json-fast@npm:^3.0.2": +"read-package-json-fast@npm:^3.0.0": version: 3.0.2 resolution: "read-package-json-fast@npm:3.0.2" dependencies: @@ -12767,13 +12726,6 @@ __metadata: languageName: node linkType: hard -"treeverse@npm:^3.0.0": - version: 3.0.0 - resolution: "treeverse@npm:3.0.0" - checksum: 73168d9887fa57b0719218f176c5a3cfbaaf310922879acb4adf76665bc17dcdb6ed3e4163f0c27eee17e346886186a1515ea6f87e96cdc10df1dce13bf622a0 - languageName: node - linkType: hard - "ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -13299,13 +13251,6 @@ __metadata: languageName: node linkType: hard -"walk-up-path@npm:^3.0.1": - version: 3.0.1 - resolution: "walk-up-path@npm:3.0.1" - checksum: 9ffca02fe30fb65f6db531260582988c5e766f4c739cf86a6109380a7f791236b5d0b92b1dce37a6f73e22dca6bc9d93bf3700413e16251b2bd6bbd1ca2be316 - languageName: node - linkType: hard - "walkdir@npm:^0.4.1": version: 0.4.1 resolution: "walkdir@npm:0.4.1" @@ -13531,7 +13476,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^5.0.0, write-file-atomic@npm:^5.0.1": +"write-file-atomic@npm:^5.0.1": version: 5.0.1 resolution: "write-file-atomic@npm:5.0.1" dependencies: From 60885ef0d555ea23061ef8063ddcee6cccf7d89e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 02:21:15 +0000 Subject: [PATCH 156/471] chore(deps): update eslint to v7.7.0 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index d6f1db5f3..9cf1edf43 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4154,14 +4154,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.6.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.6.0" + version: 7.7.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.7.0" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/type-utils": 7.6.0 - "@typescript-eslint/utils": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/type-utils": 7.7.0 + "@typescript-eslint/utils": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.3.1 @@ -4174,25 +4174,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 4e5a5ab8abf71cc46bcbe462673421b68651be7c72f0bb00d9660eedaeb1db2b51c5f8c7a869761be355cf15900ed2cb5b37a838dd52cd246aaca45c2a0903e7 + checksum: f97348425d114282407f4f524cdc618199d0d6d86e4e556709063b07611192068872cbd7f612cbd670617d958ee4519b25eeca0bccbac1b08433ce41511d3825 languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.6.0 - resolution: "@typescript-eslint/parser@npm:7.6.0" + version: 7.7.0 + resolution: "@typescript-eslint/parser@npm:7.7.0" dependencies: - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 96f8219765c7427d679c8a69180ddceafe595ed7fcd796ef00ce7bf5b289725191f0d26bd7009e092010085e7cb54446965b7cdc94e9b30adad80004c34fbbbe + checksum: 44dc88eae2fafd3ae92338683d70d077d0c4342dcd4949dc05ffa7686de2753b8565c643eedb3bf1c6b6c1b4a2f0849000474b8e70572184ebe366b0b1dbb1ee languageName: node linkType: hard @@ -4206,22 +4206,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.6.0": - version: 7.6.0 - resolution: "@typescript-eslint/scope-manager@npm:7.6.0" +"@typescript-eslint/scope-manager@npm:7.7.0": + version: 7.7.0 + resolution: "@typescript-eslint/scope-manager@npm:7.7.0" dependencies: - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 - checksum: 07c0215bb9631dc580801d860b90d30bf5815bd3acfa1f50d7d7c28625ec90b6c74076d352a1f4d3b2043345b7c2f72575cee7cfc9ad8dcb3d6c8f1ddc7bc2f3 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 + checksum: cb280d4aa64cdefee362ef97b6fde3ae86a376fccff7f012e4e635ffe544dd90be37b340c7099784d0fbebb37b925aab6b53195825b41cee38e2382d0b552871 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.6.0": - version: 7.6.0 - resolution: "@typescript-eslint/type-utils@npm:7.6.0" +"@typescript-eslint/type-utils@npm:7.7.0": + version: 7.7.0 + resolution: "@typescript-eslint/type-utils@npm:7.7.0" dependencies: - "@typescript-eslint/typescript-estree": 7.6.0 - "@typescript-eslint/utils": 7.6.0 + "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/utils": 7.7.0 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependencies: @@ -4229,7 +4229,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: eb86c475c21ad573877c6c71eb92b501eb2a7a945cb0aad373a11be0df4410dc8a8fa08ef390653f402de929ac9e2721c427d18e681f96d7dd38deaa4a97d051 + checksum: 74c07e4fcc8e6ee7870a161596d25ecfa22624947d94ca9af7147590caa13b6388f0e55101961ab02f77e7e6cffdaf19895575d7329dda50fa18fc71bf15f6b7 languageName: node linkType: hard @@ -4240,10 +4240,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.6.0": - version: 7.6.0 - resolution: "@typescript-eslint/types@npm:7.6.0" - checksum: 5e3157ff8d24e9dd384ed189e89e920bb2525c95330e9f87a9f9fc65c12ab4a2e701b380ede5a655dc4c4517ae27f1b9ca6b3cfb3dada02f03dd634559f06ea1 +"@typescript-eslint/types@npm:7.7.0": + version: 7.7.0 + resolution: "@typescript-eslint/types@npm:7.7.0" + checksum: c47aae2c1474b85fab012e0518c57685c595f11775b615b6a6749f943aa7a98554d9eb7054114850679f46699578049998408a492e0c1abd3bded2aee8e261a5 languageName: node linkType: hard @@ -4265,12 +4265,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.6.0": - version: 7.6.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.6.0" +"@typescript-eslint/typescript-estree@npm:7.7.0": + version: 7.7.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.7.0" dependencies: - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4280,24 +4280,24 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 8a19895fc58de1094787e03b31a4a7fe96728e1071b0ddfbaeaecfdb15aca3cdc38944ca27a9c3ea0a5304c0c5339f587e67e97f958c1cbb7678c4f99c91d58d + checksum: 54d16b2a083bff3c6d38fbee56465403bbcba411bf25e94f2d8bbbbd8b4b35c151c7845997e5141224f8dba5bc1f34964762713035d49113700efd7381246d02 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.6.0": - version: 7.6.0 - resolution: "@typescript-eslint/utils@npm:7.6.0" +"@typescript-eslint/utils@npm:7.7.0": + version: 7.7.0 + resolution: "@typescript-eslint/utils@npm:7.7.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.15 "@types/semver": ^7.5.8 - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 semver: ^7.6.0 peerDependencies: eslint: ^8.56.0 - checksum: 22475182efee7b19b18d6aee2fe7dbac6303c9b41d99b3323a6cb295bf2cd3505ac2ebc6a0acffccbd8af2917ba42c055404bbed9687af760badd5f0bdbc17b8 + checksum: 830ff3af96538083d7513c211e39f07375b7e973c135a2b9bbae1ad7509bd4dce33a144a22d896a2ff4c18e9fcccd423535b6f9bb8adafe36e800f16bc53378c languageName: node linkType: hard @@ -4329,13 +4329,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.6.0": - version: 7.6.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.6.0" +"@typescript-eslint/visitor-keys@npm:7.7.0": + version: 7.7.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.7.0" dependencies: - "@typescript-eslint/types": 7.6.0 + "@typescript-eslint/types": 7.7.0 eslint-visitor-keys: ^3.4.3 - checksum: 9f0378435636a6a80dfcbedfcdf5fd43f200628e0359879f2d8b7ed0b73563e727ad356f7fe9c07d5e09a642c45927b1380a8418a60b8169f7ae749f59f14b9a + checksum: 16d0b63b9d98ea1d3d20bd6f9dc3cbd2674055845ad493d98118669d54792b1c167f57ae25beaae2c1107ed07012ac3c3093cca978b2ab49833dc491bc302b33 languageName: node linkType: hard From 23828b49f1c7e965bbc50bf941e721f953d8050e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 19:01:15 +0000 Subject: [PATCH 157/471] chore(deps): update react monorepo --- yarn.lock | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9cf1edf43..f1be04bac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4058,11 +4058,11 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.18": - version: 18.2.22 - resolution: "@types/react-dom@npm:18.2.22" + version: 18.2.25 + resolution: "@types/react-dom@npm:18.2.25" dependencies: "@types/react": "*" - checksum: 83bb3ddcd7894f20a9a6cbc2befe75d8b76984734020c455b4c50cad625a4025250d8e1d247ef6264e484d47d5a94f2dd11f77c1dcac6a5de998cb447d85b720 + checksum: 85f9278d6456c6cdc76da6806a33b472588cdd029b08dde32e8b5636b25a3eae529b4ac2e08c848a3d7ca44e4e97ee9a3df406c96fa0768de935c8eed6e07590 languageName: node linkType: hard @@ -4085,20 +4085,12 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.2.69 - resolution: "@types/react@npm:18.2.69" + version: 18.2.79 + resolution: "@types/react@npm:18.2.79" dependencies: "@types/prop-types": "*" - "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 7657978c4bbca41f566481b5507cdf571575e6631d0f8105ec2f6eea4029c315f9381182369bd5c700f3f2ea247dd2d12005381b937c9ad1771f86acd7201768 - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.8 - resolution: "@types/scheduler@npm:0.16.8" - checksum: 6c091b096daa490093bf30dd7947cd28e5b2cd612ec93448432b33f724b162587fed9309a0acc104d97b69b1d49a0f3fc755a62282054d62975d53d7fd13472d + checksum: 85aa96e0e88725c84d8fc5f04f10a4da6a1f507dde33557ac9cc211414756867721264bfefd9e02bae1288ce2905351d949b652b931e734ea24519ee5c625138 languageName: node linkType: hard From 67472ae532084c7d5d36178b902d23a72841a73f Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 16 Apr 2024 20:06:27 -0400 Subject: [PATCH 158/471] chore: Add collection icon and attribute icon --- .../src/components/document/DocumentField.tsx | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/components/document/DocumentField.tsx b/packages/ui/src/components/document/DocumentField.tsx index 9b7d7e203..eb76b48f9 100644 --- a/packages/ui/src/components/document/DocumentField.tsx +++ b/packages/ui/src/components/document/DocumentField.tsx @@ -14,7 +14,7 @@ import { IField } from '../../models'; import { useCanvas } from '../../hooks/useCanvas'; import { DocumentType } from '../../models/document'; import { NodeContainer } from './NodeContainer'; -import { CircleIcon, GripVerticalIcon } from '@patternfly/react-icons'; +import { AtIcon, CircleIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; import { NodeReference } from '../../providers/CanvasProvider'; import './Document.scss'; import { useDataMapper } from '../../hooks'; @@ -90,7 +90,17 @@ export const DocumentField: FunctionComponent = ({ documentT - {field.expression} + {field.maxOccurs > 1 && ( + + + + )} + {field.isAttribute && ( + + + + )} + {field.name} @@ -107,7 +117,12 @@ export const DocumentField: FunctionComponent = ({ documentT - {field.expression} + {field.maxOccurs > 1 && ( + + + + )} + {field.name} From e348d173d95f66ba3411b723eaff26405810b11c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 01:01:31 +0000 Subject: [PATCH 159/471] chore(deps): update dependency vite to v5.2.9 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f1be04bac..b763b94e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13195,8 +13195,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.8 - resolution: "vite@npm:5.2.8" + version: 5.2.9 + resolution: "vite@npm:5.2.9" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 @@ -13230,7 +13230,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: c0a77271b548fce443af59a383939924ffcba8e6d0ba6ecb2e481d0ec2318465d2116ce9317599c448e6d6d8af11a67b8efc5b52cb1deab37d2e83311ac4f1b5 + checksum: 7a97f9547af8550c55bc2529cc6827c1ef0a043a09e9686cf20b615e8d59305cbe917954e806c5fdad6c33bfb883c1ce51325a9c474b5aa5bc13c377a74805fd languageName: node linkType: hard From fb194c792db3cad0e50574904aaa7bb1f579002a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 01:59:56 +0000 Subject: [PATCH 160/471] fix(deps): update @patternfly to v5.3.0 --- yarn.lock | 64 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/yarn.lock b/yarn.lock index b763b94e6..1f1d062a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3070,36 +3070,36 @@ __metadata: linkType: hard "@patternfly/react-code-editor@npm:^5.2.3": - version: 5.2.3 - resolution: "@patternfly/react-code-editor@npm:5.2.3" + version: 5.3.0 + resolution: "@patternfly/react-code-editor@npm:5.3.0" dependencies: "@monaco-editor/react": ^4.6.0 - "@patternfly/react-core": ^5.2.3 - "@patternfly/react-icons": ^5.2.1 - "@patternfly/react-styles": ^5.2.1 + "@patternfly/react-core": ^5.3.0 + "@patternfly/react-icons": ^5.3.0 + "@patternfly/react-styles": ^5.3.0 react-dropzone: 14.2.3 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: b54d0c7763068c070961aacaa4e89faaa685d1a8bc7ad1a0854cb0577885414a4aa5c10b49c48c9cbf20b12d9d2b88e83d791e74ccfe2d268c1c43fbc34038b4 + checksum: 2f1ac183198bf8190f41ec962127dd5fe7b4b156e8e502749d897c3b2bbe2229e4cab0f8cb23bc990c5b7b2866e19aa7906396c70881ef7d0f24e4a8c549e657 languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.2.3": - version: 5.2.3 - resolution: "@patternfly/react-core@npm:5.2.3" +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.3.0": + version: 5.3.0 + resolution: "@patternfly/react-core@npm:5.3.0" dependencies: - "@patternfly/react-icons": ^5.2.1 - "@patternfly/react-styles": ^5.2.1 - "@patternfly/react-tokens": ^5.2.1 + "@patternfly/react-icons": ^5.3.0 + "@patternfly/react-styles": ^5.3.0 + "@patternfly/react-tokens": ^5.3.0 focus-trap: 7.5.2 react-dropzone: ^14.2.3 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 3e9e560f745fe00a15e563b3911896cdef7840cce44a98795339ac389c012aa4d104db5f9cc73ca2acef3f9d980aad37a5e1a99e2280b2e480d03e738c67eed9 + checksum: 0ff7e73b2d8cf8b7540050f06fafa50e74c127603dab14a4bebc0f77fec259f15742c57f39a99437fc9a9e801346c38c9a6b0a1fc2e5cb5cfd284f8f8a2b3c7e languageName: node linkType: hard @@ -3113,13 +3113,13 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-icons@npm:^5.2.1": - version: 5.2.1 - resolution: "@patternfly/react-icons@npm:5.2.1" +"@patternfly/react-icons@npm:^5.3.0": + version: 5.3.0 + resolution: "@patternfly/react-icons@npm:5.3.0" peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 2bc14d3a3de34c48816988b9be65429b9c4bd2edb28c3e82e8dd47cc4be031e30ce65b4987e00abfd09ed36b89637a6fdd19ee5c46b07ff701e8315201b7ca36 + checksum: e6eceaad1eca2929bfee91c8c4c840ac6ae56a3e4ff862f60254fa7cb4b54d589353b93592540ddf4bff6bfcf772ba630e007aa75fe552d648e477a491b4b0dd languageName: node linkType: hard @@ -3130,34 +3130,34 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-styles@npm:^5.2.1": - version: 5.2.1 - resolution: "@patternfly/react-styles@npm:5.2.1" - checksum: fbc36df191fd1d75a1a9c390bfbe4884adc7b6556a2b30de9e848169df5541c946cde71f4a54db01873a21bce4a09e64f54ee722eb5d9bd6d8b1a77fc62ba141 +"@patternfly/react-styles@npm:^5.3.0": + version: 5.3.0 + resolution: "@patternfly/react-styles@npm:5.3.0" + checksum: c65198ba20d6dda4b41c14c0785c26dd3febfa6534d02c2d3f477a907d488e70b99cabad39b9bea9c423711881ebcccfef7293c696c5c25450f134e1db9361f7 languageName: node linkType: hard "@patternfly/react-table@npm:^5.1.2": - version: 5.2.4 - resolution: "@patternfly/react-table@npm:5.2.4" + version: 5.3.0 + resolution: "@patternfly/react-table@npm:5.3.0" dependencies: - "@patternfly/react-core": ^5.2.3 - "@patternfly/react-icons": ^5.2.1 - "@patternfly/react-styles": ^5.2.1 - "@patternfly/react-tokens": ^5.2.1 + "@patternfly/react-core": ^5.3.0 + "@patternfly/react-icons": ^5.3.0 + "@patternfly/react-styles": ^5.3.0 + "@patternfly/react-tokens": ^5.3.0 lodash: ^4.17.19 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: d2e4fc2fcd2b5a3d8b3721557486f213aba0a6ad990db14d5094318943eeed0d7f38a6f0ff0093566dfad622f7ce4ffeef3fa86baa2913be493a757e96b73673 + checksum: a742bd4733d5f34065c05e0a253900c775023bc58ff03a97985b6342a64c8cef8877c781a83d41b8ce0fb93f204c92cb21f3eaea5af8cbdb091c31d5488166df languageName: node linkType: hard -"@patternfly/react-tokens@npm:^5.2.1": - version: 5.2.1 - resolution: "@patternfly/react-tokens@npm:5.2.1" - checksum: 2b95ad2088babc375f2ca38c36e8e9a1b38f1a2d26d716a10c61a8535a2fe32d34a61b787609e9e9b29e518dc2584261aa5d7a83f0cfbcfa9606942618d61eb9 +"@patternfly/react-tokens@npm:^5.3.0": + version: 5.3.0 + resolution: "@patternfly/react-tokens@npm:5.3.0" + checksum: e341aae4a003840adedf84b0e953c952dcd6c14d079c219cd0f3002565af847fb66c7c4377ca1c74f830090bfcde9fc56206f066d7daaca386db0aebedce992f languageName: node linkType: hard From 8cb7e262b3d111b2abd7171d10f066d9cf8b4573 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 21 Apr 2024 00:51:12 +0000 Subject: [PATCH 161/471] chore(deps): update dependency vite to v5.2.10 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1f1d062a8..726b24a2e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13195,8 +13195,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.9 - resolution: "vite@npm:5.2.9" + version: 5.2.10 + resolution: "vite@npm:5.2.10" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 @@ -13230,7 +13230,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 7a97f9547af8550c55bc2529cc6827c1ef0a043a09e9686cf20b615e8d59305cbe917954e806c5fdad6c33bfb883c1ce51325a9c474b5aa5bc13c377a74805fd + checksum: feb11be2b97259783afe1d0ff4b7ee0bef78fe8934d8b043465e039e4d8318249e2263adc724b719b9e9b45a37e012caeb7746854768f371d1a82bb189f50fe6 languageName: node linkType: hard From 73a07ce44de4cc6fa7d9ece8e3de75426adbaf71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 01:58:32 +0000 Subject: [PATCH 162/471] chore(deps): update dependency @storybook/addon-actions to v8.0.9 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 726b24a2e..16b4210ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3427,16 +3427,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.8 - resolution: "@storybook/addon-actions@npm:8.0.8" + version: 8.0.9 + resolution: "@storybook/addon-actions@npm:8.0.9" dependencies: - "@storybook/core-events": 8.0.8 + "@storybook/core-events": 8.0.9 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: 4392871acd8bce2d849407e1bb0d8d16803570eb7d714884085a4b3ca3c5e8f96868ab8f63f3913628771681ad7fc0df386320202712984c015fe112a6156de0 + checksum: 7cd7229935f271a4b9f578793ff269f455afdbe9dae1af8f047a4e339d95e825c4436ad2f140eaa246544e9775afae03ac2770b6527aad9fbe9f22ede4492311 languageName: node linkType: hard @@ -3472,12 +3472,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.8": - version: 8.0.8 - resolution: "@storybook/core-events@npm:8.0.8" +"@storybook/core-events@npm:8.0.9": + version: 8.0.9 + resolution: "@storybook/core-events@npm:8.0.9" dependencies: ts-dedent: ^2.0.0 - checksum: 5be3d0310bb1db3bbf1ed5a3b2c9b8f89df3fc1e735702e4b237b16c9bca09b27418948f80b10932b0a139256e1b3c9a870d553849319bdf164a14fd21719aa5 + checksum: 1a6dc9defdef590e26234db0bcae06bc102b0f13a324fbf617629bb9560348e94ee62ffc03981a9300c182b79e93db38ffb271c12b1504d92ade8b99a196635e languageName: node linkType: hard From 9fe83489ce71392d22a7712a6adca371ba75a52b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 01:19:22 +0000 Subject: [PATCH 163/471] chore(deps): update dependency @testing-library/react to v15.0.4 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 16b4210ec..ec2a6836e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3538,8 +3538,8 @@ __metadata: linkType: hard "@testing-library/react@npm:^15.0.0": - version: 15.0.2 - resolution: "@testing-library/react@npm:15.0.2" + version: 15.0.4 + resolution: "@testing-library/react@npm:15.0.4" dependencies: "@babel/runtime": ^7.12.5 "@testing-library/dom": ^10.0.0 @@ -3547,7 +3547,7 @@ __metadata: peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 - checksum: 32be030a5540164403f3cd8d6f46ad907119b2bc0a0df43ce6b925cdd520d5003298d06af1ee94d7bd764f294d74e802b6509caf2cf10afc77e67407baa9c1fb + checksum: 37f30f0fc009429e5a54fef48c2c354840fbaf1c96f7f29c9c0ec71815fe25978e8bde881018d1122186f150902de45aa9706c9e7b77d3e7ac4649e3a82e0454 languageName: node linkType: hard From 2683af0ccbc7be601676d24e0244d47d8a621a1a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 15:23:31 +0000 Subject: [PATCH 164/471] chore(deps): update eslint to v7.7.1 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index ec2a6836e..d693b63c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4146,14 +4146,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.7.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.7.0" + version: 7.7.1 + resolution: "@typescript-eslint/eslint-plugin@npm:7.7.1" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.7.0 - "@typescript-eslint/type-utils": 7.7.0 - "@typescript-eslint/utils": 7.7.0 - "@typescript-eslint/visitor-keys": 7.7.0 + "@typescript-eslint/scope-manager": 7.7.1 + "@typescript-eslint/type-utils": 7.7.1 + "@typescript-eslint/utils": 7.7.1 + "@typescript-eslint/visitor-keys": 7.7.1 debug: ^4.3.4 graphemer: ^1.4.0 ignore: ^5.3.1 @@ -4166,25 +4166,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: f97348425d114282407f4f524cdc618199d0d6d86e4e556709063b07611192068872cbd7f612cbd670617d958ee4519b25eeca0bccbac1b08433ce41511d3825 + checksum: 17de1806e083cb575ed5b8b7126cbe4341a369a0eb271dcffb5820962a3c9e46e2392628146125d39985b46cfa80b12cebe02e6c2e4043f88cc4884cc308cc21 languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.7.0 - resolution: "@typescript-eslint/parser@npm:7.7.0" + version: 7.7.1 + resolution: "@typescript-eslint/parser@npm:7.7.1" dependencies: - "@typescript-eslint/scope-manager": 7.7.0 - "@typescript-eslint/types": 7.7.0 - "@typescript-eslint/typescript-estree": 7.7.0 - "@typescript-eslint/visitor-keys": 7.7.0 + "@typescript-eslint/scope-manager": 7.7.1 + "@typescript-eslint/types": 7.7.1 + "@typescript-eslint/typescript-estree": 7.7.1 + "@typescript-eslint/visitor-keys": 7.7.1 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 44dc88eae2fafd3ae92338683d70d077d0c4342dcd4949dc05ffa7686de2753b8565c643eedb3bf1c6b6c1b4a2f0849000474b8e70572184ebe366b0b1dbb1ee + checksum: 737035f259120533ffede288a7a9b4f6261e41558ccf333f0422cadc8fe2bf7dee91e64369003b623cc972c0f7149822250c1b2afdd05b94383252a68d8dca97 languageName: node linkType: hard @@ -4198,22 +4198,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.7.0": - version: 7.7.0 - resolution: "@typescript-eslint/scope-manager@npm:7.7.0" +"@typescript-eslint/scope-manager@npm:7.7.1": + version: 7.7.1 + resolution: "@typescript-eslint/scope-manager@npm:7.7.1" dependencies: - "@typescript-eslint/types": 7.7.0 - "@typescript-eslint/visitor-keys": 7.7.0 - checksum: cb280d4aa64cdefee362ef97b6fde3ae86a376fccff7f012e4e635ffe544dd90be37b340c7099784d0fbebb37b925aab6b53195825b41cee38e2382d0b552871 + "@typescript-eslint/types": 7.7.1 + "@typescript-eslint/visitor-keys": 7.7.1 + checksum: 9f9c78bcbf32e65ad0cbd1c5c08e9cf7442d330e4e466ea6e13074241a44b80e8f9f99a9f4b6dbf97db415dbb1e538a9818e9553129c0e4fff005743ae89b6e7 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.7.0": - version: 7.7.0 - resolution: "@typescript-eslint/type-utils@npm:7.7.0" +"@typescript-eslint/type-utils@npm:7.7.1": + version: 7.7.1 + resolution: "@typescript-eslint/type-utils@npm:7.7.1" dependencies: - "@typescript-eslint/typescript-estree": 7.7.0 - "@typescript-eslint/utils": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.1 + "@typescript-eslint/utils": 7.7.1 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependencies: @@ -4221,7 +4221,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 74c07e4fcc8e6ee7870a161596d25ecfa22624947d94ca9af7147590caa13b6388f0e55101961ab02f77e7e6cffdaf19895575d7329dda50fa18fc71bf15f6b7 + checksum: ac8a4f1ad22dd5b414374673e612f40185ba5ac0ade796ddd959c228bb44d270f9004a09fb4ad83d940257ab37c358112e5b535fe45a5a159f68a156051db2d2 languageName: node linkType: hard @@ -4232,10 +4232,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.7.0": - version: 7.7.0 - resolution: "@typescript-eslint/types@npm:7.7.0" - checksum: c47aae2c1474b85fab012e0518c57685c595f11775b615b6a6749f943aa7a98554d9eb7054114850679f46699578049998408a492e0c1abd3bded2aee8e261a5 +"@typescript-eslint/types@npm:7.7.1": + version: 7.7.1 + resolution: "@typescript-eslint/types@npm:7.7.1" + checksum: b30a861b641ea8f9e882647344674893ec4b751ddc9f5431998b1a96ef01b80fd7267d9da719ee8e1b2249de4cfc32d7ef7877589502b412d30f19854987cd80 languageName: node linkType: hard @@ -4257,12 +4257,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.7.0": - version: 7.7.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.7.0" +"@typescript-eslint/typescript-estree@npm:7.7.1": + version: 7.7.1 + resolution: "@typescript-eslint/typescript-estree@npm:7.7.1" dependencies: - "@typescript-eslint/types": 7.7.0 - "@typescript-eslint/visitor-keys": 7.7.0 + "@typescript-eslint/types": 7.7.1 + "@typescript-eslint/visitor-keys": 7.7.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4272,24 +4272,24 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 54d16b2a083bff3c6d38fbee56465403bbcba411bf25e94f2d8bbbbd8b4b35c151c7845997e5141224f8dba5bc1f34964762713035d49113700efd7381246d02 + checksum: 3b33075eb82b98922644a11500ee9c4b6474e8879882c953408b3f33d36d591d4e74a52606106a911801f60dd7d054d6bc6b6e0a547570470ffa7a84aded08a1 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.7.0": - version: 7.7.0 - resolution: "@typescript-eslint/utils@npm:7.7.0" +"@typescript-eslint/utils@npm:7.7.1": + version: 7.7.1 + resolution: "@typescript-eslint/utils@npm:7.7.1" dependencies: "@eslint-community/eslint-utils": ^4.4.0 "@types/json-schema": ^7.0.15 "@types/semver": ^7.5.8 - "@typescript-eslint/scope-manager": 7.7.0 - "@typescript-eslint/types": 7.7.0 - "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/scope-manager": 7.7.1 + "@typescript-eslint/types": 7.7.1 + "@typescript-eslint/typescript-estree": 7.7.1 semver: ^7.6.0 peerDependencies: eslint: ^8.56.0 - checksum: 830ff3af96538083d7513c211e39f07375b7e973c135a2b9bbae1ad7509bd4dce33a144a22d896a2ff4c18e9fcccd423535b6f9bb8adafe36e800f16bc53378c + checksum: 9ef631a29177826105fa8f05bb2f59c2c3ac2f65c155b58dc80df27146499da3590eef26b9e1319ed1d50c58314a889645f7e7ded656507c57b5c4ee0a4bd473 languageName: node linkType: hard @@ -4321,13 +4321,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.7.0": - version: 7.7.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.7.0" +"@typescript-eslint/visitor-keys@npm:7.7.1": + version: 7.7.1 + resolution: "@typescript-eslint/visitor-keys@npm:7.7.1" dependencies: - "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/types": 7.7.1 eslint-visitor-keys: ^3.4.3 - checksum: 16d0b63b9d98ea1d3d20bd6f9dc3cbd2674055845ad493d98118669d54792b1c167f57ae25beaae2c1107ed07012ac3c3093cca978b2ab49833dc491bc302b33 + checksum: cd2897cfc45589cb6d81e7ae92b2765711aa71d2a4e06a3cb766098855a922e1475513288e86cc87a352bfa90e5cf106db043d5f2f76f534fe723f6cf5f14618 languageName: node linkType: hard From abb3b44474d936fab99791761fbcd293c2fab774 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 15:28:51 +0000 Subject: [PATCH 165/471] chore(deps): update dependency stylelint to v16.4.0 --- yarn.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index d693b63c7..2fc992f4e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1730,12 +1730,12 @@ __metadata: languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.0.2": - version: 3.0.2 - resolution: "@csstools/selector-specificity@npm:3.0.2" +"@csstools/selector-specificity@npm:^3.0.3": + version: 3.0.3 + resolution: "@csstools/selector-specificity@npm:3.0.3" peerDependencies: postcss-selector-parser: ^6.0.13 - checksum: af3cc9282b600170b7de0fed2106830ab353359bd11f66cf71259419c9bddf8f0773c3a6e513cd9f66fd7e4920a1786a7c288723cbb3ae207974c1e7de26293e + checksum: 287f17aefe2f22a39cb1c01d45d9e2c4c8c7cf11d9af67c44fe14fa2ed2e11178406661d1b6b023c8a447cdb08933ac134352a0c1452d409af4e7db2570684f3 languageName: node linkType: hard @@ -5600,10 +5600,10 @@ __metadata: languageName: node linkType: hard -"css-functions-list@npm:^3.2.1": - version: 3.2.1 - resolution: "css-functions-list@npm:3.2.1" - checksum: 57d7deb3b05e84d95b88ba9b3244cf60d33b40652b3357f084c805b24a9febda5987ade44ef25a56be41e73249a7dcc157abd704d8a0e998b2c1c2e2d5de6461 +"css-functions-list@npm:^3.2.2": + version: 3.2.2 + resolution: "css-functions-list@npm:3.2.2" + checksum: b8a564118b93b87b63236a57132a3ef581416896a70c1d0df73360a9ec43dc582f7c2a586b578feb8476179518e557c6657570a8b6185b16300c7232a84d43e3 languageName: node linkType: hard @@ -12430,18 +12430,18 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.3.1 - resolution: "stylelint@npm:16.3.1" + version: 16.4.0 + resolution: "stylelint@npm:16.4.0" dependencies: "@csstools/css-parser-algorithms": ^2.6.1 "@csstools/css-tokenizer": ^2.2.4 "@csstools/media-query-list-parser": ^2.1.9 - "@csstools/selector-specificity": ^3.0.2 + "@csstools/selector-specificity": ^3.0.3 "@dual-bundle/import-meta-resolve": ^4.0.0 balanced-match: ^2.0.0 colord: ^2.9.3 cosmiconfig: ^9.0.0 - css-functions-list: ^3.2.1 + css-functions-list: ^3.2.2 css-tree: ^2.3.1 debug: ^4.3.4 fast-glob: ^3.3.2 @@ -12470,11 +12470,11 @@ __metadata: strip-ansi: ^7.1.0 supports-hyperlinks: ^3.0.0 svg-tags: ^1.0.0 - table: ^6.8.1 + table: ^6.8.2 write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: b3ab398fcabcac36b4a788fbb3e3b9248cdb6c6c36f791687b4e44e56f7e9b3ebde1fc7354ce93978e28cfc4fb47fef3262b7c5f948ff92782b90c459f466a4e + checksum: 0363d1eaa1663fa9f7b7b59a8a3cae527ed7cb9b61647da67770f989472595c9d368b8e72aef9dfc5e2ad856f1cbcf19118c4340c693a4fcddab3ab202677ae6 languageName: node linkType: hard @@ -12571,16 +12571,16 @@ __metadata: languageName: node linkType: hard -"table@npm:^6.8.1": - version: 6.8.1 - resolution: "table@npm:6.8.1" +"table@npm:^6.8.2": + version: 6.8.2 + resolution: "table@npm:6.8.2" dependencies: ajv: ^8.0.1 lodash.truncate: ^4.4.2 slice-ansi: ^4.0.0 string-width: ^4.2.3 strip-ansi: ^6.0.1 - checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 + checksum: 61188652f53a980d1759ca460ca8dea5c5322aece3210457e7084882f053c2b6a870041295e08a82cb1d676e31b056406845d94b0abf3c79a4b104777bec413b languageName: node linkType: hard From 18589dcdcb82c9c5df0517db1087866fa98ef5e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 15:29:23 +0000 Subject: [PATCH 166/471] fix(deps): update dependency monaco-editor to ^0.48.0 --- packages/ui/package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index c093dfa40..356fa8e1e 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -53,7 +53,7 @@ "d3-shape": "^3.2.0", "file-saver": "^2.0.5", "loglevel": "^1.9.1", - "monaco-editor": "^0.47.0", + "monaco-editor": "^0.48.0", "pako": "^2.1.0", "react": "^18.2.0", "react-dnd": "^16.0.1", diff --git a/yarn.lock b/yarn.lock index 2fc992f4e..e682960d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1781,7 +1781,7 @@ __metadata: jest-environment-jsdom: ^29.7.0 loglevel: ^1.9.1 madge: ^7.0.0 - monaco-editor: ^0.47.0 + monaco-editor: ^0.48.0 pako: ^2.1.0 prettier: ^3.2.5 react: ^18.2.0 @@ -9971,10 +9971,10 @@ __metadata: languageName: node linkType: hard -"monaco-editor@npm:^0.47.0": - version: 0.47.0 - resolution: "monaco-editor@npm:0.47.0" - checksum: a1c5fe6a0d71214aa2fd4fd635f89a7df6ad599e4e01492a268eb70a456e7a29dfa301324e00b577eaf9fa69813b8a28924980ab8457d89faf14d13fcbbc2d6e +"monaco-editor@npm:^0.48.0": + version: 0.48.0 + resolution: "monaco-editor@npm:0.48.0" + checksum: 611eaded772935a8b7491325672a165efcb5fde69da4fabd822eae799765655fb55b4ef0fac411103a49c65679c597da82177e06f6f466b001af6117e8107e28 languageName: node linkType: hard From bfa6fc6b21fa9b9b8e0b1f16034637eb849cca8a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 19:54:45 +0000 Subject: [PATCH 167/471] chore(deps): update dependency eslint-plugin-react-hooks to v4.6.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e682960d0..03177e92a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6876,11 +6876,11 @@ __metadata: linkType: hard "eslint-plugin-react-hooks@npm:^4.6.0": - version: 4.6.0 - resolution: "eslint-plugin-react-hooks@npm:4.6.0" + version: 4.6.2 + resolution: "eslint-plugin-react-hooks@npm:4.6.2" peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 23001801f14c1d16bf0a837ca7970d9dd94e7b560384b41db378b49b6e32dc43d6e2790de1bd737a652a86f81a08d6a91f402525061b47719328f586a57e86c3 + checksum: 395c433610f59577cfcf3f2e42bcb130436c8a0b3777ac64f441d88c5275f4fcfc89094cedab270f2822daf29af1079151a7a6579a8e9ea8cee66540ba0384c4 languageName: node linkType: hard From 1ff830a86a35fe028a1186b45f696807f5d8e595 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 01:44:17 +0000 Subject: [PATCH 168/471] fix(deps): update @patternfly to v5.3.3 --- yarn.lock | 64 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/yarn.lock b/yarn.lock index 03177e92a..f2737f261 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3070,36 +3070,36 @@ __metadata: linkType: hard "@patternfly/react-code-editor@npm:^5.2.3": - version: 5.3.0 - resolution: "@patternfly/react-code-editor@npm:5.3.0" + version: 5.3.3 + resolution: "@patternfly/react-code-editor@npm:5.3.3" dependencies: "@monaco-editor/react": ^4.6.0 - "@patternfly/react-core": ^5.3.0 - "@patternfly/react-icons": ^5.3.0 - "@patternfly/react-styles": ^5.3.0 + "@patternfly/react-core": ^5.3.3 + "@patternfly/react-icons": ^5.3.2 + "@patternfly/react-styles": ^5.3.1 react-dropzone: 14.2.3 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 2f1ac183198bf8190f41ec962127dd5fe7b4b156e8e502749d897c3b2bbe2229e4cab0f8cb23bc990c5b7b2866e19aa7906396c70881ef7d0f24e4a8c549e657 + checksum: aab024e365402f74b7efa4a65849b728464093825c4dc631d94c73525db7c1b2067c3eb076cec1229d91181f2c18d7d01c03555cb927faf40a54cb3921480e0f languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.3.0": - version: 5.3.0 - resolution: "@patternfly/react-core@npm:5.3.0" +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.3.3": + version: 5.3.3 + resolution: "@patternfly/react-core@npm:5.3.3" dependencies: - "@patternfly/react-icons": ^5.3.0 - "@patternfly/react-styles": ^5.3.0 - "@patternfly/react-tokens": ^5.3.0 + "@patternfly/react-icons": ^5.3.2 + "@patternfly/react-styles": ^5.3.1 + "@patternfly/react-tokens": ^5.3.1 focus-trap: 7.5.2 react-dropzone: ^14.2.3 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 0ff7e73b2d8cf8b7540050f06fafa50e74c127603dab14a4bebc0f77fec259f15742c57f39a99437fc9a9e801346c38c9a6b0a1fc2e5cb5cfd284f8f8a2b3c7e + checksum: 5af2b78ec3b5f7e56d28e150a5596b02cbc87cc1da7c6cb08517768ea165a2489847c4511cf1bc06411d7609da74c0144e0e0897171ac7d355624a576d471cc7 languageName: node linkType: hard @@ -3113,13 +3113,13 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-icons@npm:^5.3.0": - version: 5.3.0 - resolution: "@patternfly/react-icons@npm:5.3.0" +"@patternfly/react-icons@npm:^5.3.2": + version: 5.3.2 + resolution: "@patternfly/react-icons@npm:5.3.2" peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: e6eceaad1eca2929bfee91c8c4c840ac6ae56a3e4ff862f60254fa7cb4b54d589353b93592540ddf4bff6bfcf772ba630e007aa75fe552d648e477a491b4b0dd + checksum: 0d6f2c47905015fd70b1d2a53bb85844b04250742a37f067b42731f609bafda1f2819d77398985e4db0ac5662e24523b459013b312b9fde9a30df1f3de6bc15c languageName: node linkType: hard @@ -3130,34 +3130,34 @@ __metadata: languageName: node linkType: hard -"@patternfly/react-styles@npm:^5.3.0": - version: 5.3.0 - resolution: "@patternfly/react-styles@npm:5.3.0" - checksum: c65198ba20d6dda4b41c14c0785c26dd3febfa6534d02c2d3f477a907d488e70b99cabad39b9bea9c423711881ebcccfef7293c696c5c25450f134e1db9361f7 +"@patternfly/react-styles@npm:^5.3.1": + version: 5.3.1 + resolution: "@patternfly/react-styles@npm:5.3.1" + checksum: fccb4e955e45538807397c7a53ee1b1f6ebf4137a4b708ad4e03f35b0dfe7b707f64240f11ee3a48b007d628d5d55b63b33c110a1f2d268b607e73ce8eccb514 languageName: node linkType: hard "@patternfly/react-table@npm:^5.1.2": - version: 5.3.0 - resolution: "@patternfly/react-table@npm:5.3.0" + version: 5.3.3 + resolution: "@patternfly/react-table@npm:5.3.3" dependencies: - "@patternfly/react-core": ^5.3.0 - "@patternfly/react-icons": ^5.3.0 - "@patternfly/react-styles": ^5.3.0 - "@patternfly/react-tokens": ^5.3.0 + "@patternfly/react-core": ^5.3.3 + "@patternfly/react-icons": ^5.3.2 + "@patternfly/react-styles": ^5.3.1 + "@patternfly/react-tokens": ^5.3.1 lodash: ^4.17.19 tslib: ^2.5.0 peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: a742bd4733d5f34065c05e0a253900c775023bc58ff03a97985b6342a64c8cef8877c781a83d41b8ce0fb93f204c92cb21f3eaea5af8cbdb091c31d5488166df + checksum: 6e0bb878bab665e9b611ffa8dbf36a2fce27eb4c16ba7a2abe714ad5b4e96f68861b002a30ee582387779b39b1a7585fc935e6f9eaf1c85dc97c6bc65fdc2884 languageName: node linkType: hard -"@patternfly/react-tokens@npm:^5.3.0": - version: 5.3.0 - resolution: "@patternfly/react-tokens@npm:5.3.0" - checksum: e341aae4a003840adedf84b0e953c952dcd6c14d079c219cd0f3002565af847fb66c7c4377ca1c74f830090bfcde9fc56206f066d7daaca386db0aebedce992f +"@patternfly/react-tokens@npm:^5.3.1": + version: 5.3.1 + resolution: "@patternfly/react-tokens@npm:5.3.1" + checksum: 0690ab162034370715e938c73a8364d1df2770d42ae2860ecca3cdbc38bae4b5aaf2bb9e46f3a3a4cdd2402b2ca40fd6b43de9bbce35429d392853f6e17f6aec languageName: node linkType: hard From 55d324a6e2d34d037131268fd27d019f7a152bf9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Apr 2024 22:11:44 +0000 Subject: [PATCH 169/471] chore(deps): update react monorepo --- yarn.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index f2737f261..d2f14210c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4058,11 +4058,11 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.18": - version: 18.2.25 - resolution: "@types/react-dom@npm:18.2.25" + version: 18.3.0 + resolution: "@types/react-dom@npm:18.3.0" dependencies: "@types/react": "*" - checksum: 85f9278d6456c6cdc76da6806a33b472588cdd029b08dde32e8b5636b25a3eae529b4ac2e08c848a3d7ca44e4e97ee9a3df406c96fa0768de935c8eed6e07590 + checksum: a0cd9b1b815a6abd2a367a9eabdd8df8dd8f13f95897b2f9e1359ea3ac6619f957c1432ece004af7d95e2a7caddbba19faa045f831f32d6263483fc5404a7596 languageName: node linkType: hard @@ -4085,12 +4085,12 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.2.79 - resolution: "@types/react@npm:18.2.79" + version: 18.3.1 + resolution: "@types/react@npm:18.3.1" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: 85aa96e0e88725c84d8fc5f04f10a4da6a1f507dde33557ac9cc211414756867721264bfefd9e02bae1288ce2905351d949b652b931e734ea24519ee5c625138 + checksum: 9224ef319a0c2b7f66e7e7f06012aa5eb638a6c76c9742843eab1a5d243f2bed5ff829ddbb41efd60d33a266420528adfcb84cb93f238b00e905f98c3a355768 languageName: node linkType: hard @@ -11178,14 +11178,14 @@ __metadata: linkType: hard "react-dom@npm:^18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - scheduler: ^0.23.0 + scheduler: ^0.23.2 peerDependencies: - react: ^18.2.0 - checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 languageName: node linkType: hard @@ -11304,11 +11304,11 @@ __metadata: linkType: hard "react@npm:^18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" + version: 18.3.1 + resolution: "react@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 languageName: node linkType: hard @@ -11822,12 +11822,12 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" dependencies: loose-envify: ^1.1.0 - checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 languageName: node linkType: hard From 777a39520af49e128330aeea1e73a78237970ede Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 11:51:47 +0000 Subject: [PATCH 170/471] chore(deps): update testing-library monorepo --- yarn.lock | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index d2f14210c..e12c7e18f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3505,8 +3505,8 @@ __metadata: linkType: hard "@testing-library/jest-dom@npm:^6.4.2": - version: 6.4.2 - resolution: "@testing-library/jest-dom@npm:6.4.2" + version: 6.4.5 + resolution: "@testing-library/jest-dom@npm:6.4.5" dependencies: "@adobe/css-tools": ^4.3.2 "@babel/runtime": ^7.9.2 @@ -3514,7 +3514,7 @@ __metadata: chalk: ^3.0.0 css.escape: ^1.5.1 dom-accessibility-api: ^0.6.3 - lodash: ^4.17.15 + lodash: ^4.17.21 redent: ^3.0.0 peerDependencies: "@jest/globals": ">= 28" @@ -3533,21 +3533,25 @@ __metadata: optional: true vitest: optional: true - checksum: 631aeadbf4e738080ae095242cf1a29a0b4ee2f09c8bdd0d3f00a923707da64c1617e088ba9a961d098481afabdc1d19149fb7ef98edf15132348eb222f345ae + checksum: 95bd94f1f4ba2110eaaa15174207f74d46481f0f168a4d58c30f92a9285f797f9949c166aa8401bcb46e16edbf14a097013204d65801e9d1361892757e525bd6 languageName: node linkType: hard "@testing-library/react@npm:^15.0.0": - version: 15.0.4 - resolution: "@testing-library/react@npm:15.0.4" + version: 15.0.7 + resolution: "@testing-library/react@npm:15.0.7" dependencies: "@babel/runtime": ^7.12.5 "@testing-library/dom": ^10.0.0 "@types/react-dom": ^18.0.0 peerDependencies: + "@types/react": ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 - checksum: 37f30f0fc009429e5a54fef48c2c354840fbaf1c96f7f29c9c0ec71815fe25978e8bde881018d1122186f150902de45aa9706c9e7b77d3e7ac4649e3a82e0454 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: eb33fd82eb811bb8612aa154e430a2c1c251d5ed45a477ef57fe20095db494ea7dcfa6b1e1e2bffb0c7ee10c86e408745d95a879be8ca8fbe301bb91e5f2e5db languageName: node linkType: hard From 7b1217f115e212995a27d81e19504e299e621f21 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 00:43:44 +0000 Subject: [PATCH 171/471] chore(deps): update babel monorepo to v7.24.5 --- yarn.lock | 302 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 198 insertions(+), 104 deletions(-) diff --git a/yarn.lock b/yarn.lock index e12c7e18f..d88456e57 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.2": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -64,49 +64,37 @@ __metadata: linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9": - version: 7.24.4 - resolution: "@babel/core@npm:7.24.4" + version: 7.24.5 + resolution: "@babel/core@npm:7.24.5" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.24.2 - "@babel/generator": ^7.24.4 + "@babel/generator": ^7.24.5 "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.24.4 - "@babel/parser": ^7.24.4 + "@babel/helper-module-transforms": ^7.24.5 + "@babel/helpers": ^7.24.5 + "@babel/parser": ^7.24.5 "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.1 - "@babel/types": ^7.24.0 + "@babel/traverse": ^7.24.5 + "@babel/types": ^7.24.5 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 15ecad7581f3329995956ba461961b1af7bed48901f14fe962ccd3217edca60049e9e6ad4ce48134618397e6c90230168c842e2c28e47ef1f16c97dbbf663c61 + checksum: f4f0eafde12b145f2cb9cc893085e5f1436e1ef265bb3b7d8aa6282515c9b4e740bbd5e2cbc32114adb9afed2dd62c2336758b9fabb7e46e8ba542f76d4f3f80 languageName: node linkType: hard -"@babel/generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/generator@npm:7.24.1" +"@babel/generator@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/generator@npm:7.24.5" dependencies: - "@babel/types": ^7.24.0 + "@babel/types": ^7.24.5 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 jsesc: ^2.5.1 - checksum: 98c6ce5ec7a1cba2bdf35cdf607273b90cf7cf82bbe75cd0227363fb84d7e1bd8efa74f40247d5900c8c009123f10132ad209a05283757698de918278c3c6700 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/generator@npm:7.24.4" - dependencies: - "@babel/types": ^7.24.0 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: 1b6146c31386c9df3eb594a2c36b5c98da4f67f7c06edb3d68a442b92516b21bb5ba3ad7dbe0058fe76625ed24d66923e15c95b0df75ef1907d4068921a699b8 + checksum: a08c0ab900b36e1a17863e18e3216153322ea993246fd7a358ba38a31cfb15bab2af1dc178b2adafe4cb8a9f3ab0e0ceafd3fe6e8ca870dffb435b53b2b2a803 languageName: node linkType: hard @@ -191,6 +179,25 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-member-expression-to-functions": ^7.24.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.24.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.24.5 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ea761c1155442620ee02920ec7c3190f869ff4d4fcab48a021a11fd8a46c046ed1facb070e5c76539c2b7efc2c8338f50f08a5e49d0ebf12e48743570e92247b + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" @@ -254,6 +261,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.5" + dependencies: + "@babel/types": ^7.24.5 + checksum: d3ad681655128463aa5c2a239345687345f044542563506ee53c9636d147e97f93a470be320950a8ba5f497ade6b27a8136a3a681794867ff94b90060a6e427c + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -263,7 +279,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.1": +"@babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3": version: 7.24.3 resolution: "@babel/helper-module-imports@npm:7.24.3" dependencies: @@ -287,6 +303,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-module-transforms@npm:7.24.5" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.24.3 + "@babel/helper-simple-access": ^7.24.5 + "@babel/helper-split-export-declaration": ^7.24.5 + "@babel/helper-validator-identifier": ^7.24.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 208c2e3877536c367ae3f39345bb5c5954ad481fdb2204d4d1906063e53ae564e5b7b846951b1aa96ee716ec24ec3b6db01b41d128884c27315b415f62db9fd2 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" @@ -310,6 +341,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-plugin-utils@npm:7.24.5" + checksum: fa1450c92541b32fe18a6ae85e5c989296a284838fa0a282a2138732cae6f173f36d39dc724890c1740ae72d6d6fbca0b009916b168d4bc874bacc7e5c2fdce0 + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" @@ -345,6 +383,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-simple-access@npm:7.24.5" + dependencies: + "@babel/types": ^7.24.5 + checksum: 5616044603c98434342f09b056c869394acdeba7cd9ec29e6a9abb0dae1922f779d364aaba74dc2ae4facf85945c6156295adbe0511a8aaecaa8a1559d14757a + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" @@ -363,6 +410,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-split-export-declaration@npm:7.24.5" + dependencies: + "@babel/types": ^7.24.5 + checksum: f23ab6942568084a57789462ce55dc9631aef1d2142ffa2ee28fc411ab55ed3ca65adf109e48655aa349bf8df7ca6dd81fd91c8c229fee1dc77e283189dc83c2 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.23.4": version: 7.23.4 resolution: "@babel/helper-string-parser@npm:7.23.4" @@ -370,6 +426,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helper-string-parser@npm:7.24.1" + checksum: 8404e865b06013979a12406aab4c0e8d2e377199deec09dfe9f57b833b0c9ce7b6e8c1c553f2da8d0bcd240c5005bd7a269f4fef0d628aeb7d5fe035c436fb67 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -377,6 +440,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-validator-identifier@npm:7.24.5" + checksum: 75d6f9f475c08f3be87bae4953e9b8d8c72983e16ed2860870b328d048cb20dccb4fcbf85eacbdd817ea1efbb38552a6db9046e2e37bfe13bdec44ac8939024c + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" @@ -395,14 +465,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/helpers@npm:7.24.4" +"@babel/helpers@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helpers@npm:7.24.5" dependencies: "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.1 - "@babel/types": ^7.24.0 - checksum: ecd2dc0b3b32e24b97fa3bcda432dd3235b77c2be1e16eafc35b8ef8f6c461faa99796a8bc2431a408c98b4aabfd572c160e2b67ecea4c5c9dd3a8314a97994a + "@babel/traverse": ^7.24.5 + "@babel/types": ^7.24.5 + checksum: 941937456ca50ef44dbc5cdcb9a74c6ce18ce38971663acd80b622e7ecf1cc4fa034597de3ccccc37939d324139f159709f493fd8e7c385adbc162cb0888cfee languageName: node linkType: hard @@ -438,7 +508,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.21.8, @babel/parser@npm:^7.24.4": +"@babel/parser@npm:^7.21.8": version: 7.24.4 resolution: "@babel/parser@npm:7.24.4" bin: @@ -456,24 +526,24 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/parser@npm:7.24.1" +"@babel/parser@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/parser@npm:7.24.5" bin: parser: ./bin/babel-parser.js - checksum: a1068941dddf82ffdf572565b8b7b2cddb963ff9ddf97e6e28f50e843d820b4285e6def8f59170104a94e2a91ae2e3b326489886d77a57ea29d468f6a5e79bf9 + checksum: a251ea41bf8b5f61048beb320d43017aff68af5a3506bd2ef392180f5fa32c1061513171d582bb3d46ea48e3659dece8b3ba52511a2566066e58abee300ce2a0 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.5" dependencies: "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: 0be3f41b1b865d7a4ed1a432337be48de67989d0b4e47def34a05097a804b6fc193115f97c954fd757339e0b80030ecf1d0a3d3fd6e7e91718644de0a5aae3d3 + checksum: d9921b3561762b8c7227cfbf1591436d2a12b99472993a7ce382123e88d98cb359952fbc64d66b1a492187d283d02f51e707f524b708c91b9ab82fb2659eae13 languageName: node linkType: hard @@ -825,14 +895,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.4" +"@babel/plugin-transform-block-scoping@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.5" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5229ffe1c55744b96f791521e2876b01ed05c81df67488a7453ce66c2faceb9d1d653089ce6f0abf512752e15e9acac0e75a797a860f24e05b4d36497c7c3183 + checksum: 898c91efc0f8ac8e2a8d3ece36edf0001963bcf5bbeefe9bf798ac36318a33f366e88a24a90bf7c39a7aeb1593846b720ed9a9ba56709d27279f7ba61c5e43c4 languageName: node linkType: hard @@ -861,21 +931,21 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-classes@npm:7.24.1" +"@babel/plugin-transform-classes@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-classes@npm:7.24.5" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 "@babel/helper-compilation-targets": ^7.23.6 "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 "@babel/helper-replace-supers": ^7.24.1 - "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-split-export-declaration": ^7.24.5 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e5337e707d731c9f4dcc107d09c9a99b90786bc0da6a250165919587ed818818f6cae2bbcceea880abef975c0411715c0c7f3f361ecd1526bf2eaca5ad26bb00 + checksum: 797bf2bda770148d3ee43e305e1aea26fa16ca78eb81eaaeb95b441428f52e0d12dd98e93f00bda3b65bbfde3001006995725ce911587efdef0465c41bd0a3f3 languageName: node linkType: hard @@ -891,14 +961,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.1" +"@babel/plugin-transform-destructuring@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.5" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 994fd3c513e40b8f1bdfdd7104ebdcef7c6a11a4e380086074496f586db3ac04cba0ae70babb820df6363b6700747b0556f6860783e046ace7c741a22f49ec5b + checksum: c5def67de09315cd38895c021ee7d02fd53fed596924512c33196ceed143b88f1ea76e4ac777a55bbb9db49be8b63aafb22b12e7d5c7f3051f14caa07e8d4023 languageName: node linkType: hard @@ -1130,17 +1200,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.1" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.5" dependencies: "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.24.1 + "@babel/plugin-transform-parameters": ^7.24.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d5d28b1f33c279a38299d34011421a4915e24b3846aa23a1aba947f1366ce673ddf8df09dd915e0f2c90c5327f798bf126dca013f8adff1fc8f09e18878b675a + checksum: 427705fe1358ca4862e6cfbfc174dc0fbfdd640b786cfe759dd4881cfb2fd51723e8432ecd89f07a60444e555a9c19e0e7bf4c657b91844994b39a53a602eb16 languageName: node linkType: hard @@ -1181,14 +1251,27 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-parameters@npm:7.24.1" +"@babel/plugin-transform-optional-chaining@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.5" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 233934463ef1f9a02a9fda96c722e9c162477fd94816a58413f0d4165cc536c7af0482b46fe066e754748a20bbabec255b4bbde194a7fd20b32280e526e1bfec + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-parameters@npm:7.24.5" + dependencies: + "@babel/helper-plugin-utils": ^7.24.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d183008e67b1a13b86c92fb64327a75cd8e13c13eb80d0b6952e15806f1b0c4c456d18360e451c6af73485b2c8f543608b0a29e5126c64eb625a31e970b65f80 + checksum: b052e1cf43b1ea571fc0867baa01041ce32f46576b711c6331f03263ae479a582f81a6039287535cd90ee46d2977e2f3c66f5bdbf454a9f8cdc7c5c6c67b50be languageName: node linkType: hard @@ -1204,17 +1287,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.1" +"@babel/plugin-transform-private-property-in-object@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.5" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-class-features-plugin": ^7.24.5 + "@babel/helper-plugin-utils": ^7.24.5 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 47c123ca9975f7f6b20e6fe8fe89f621cd04b622539faf5ec037e2be7c3d53ce2506f7c785b1930dcdea11994eff79094a02715795218c7d6a0bdc11f2fb3ac2 + checksum: 59f9007671f50ef8f9eff33bb2dc3de22a2849612d4b64fc9e4ba502466ddbaf3f94774011695dde5128c4ca2009e241babe928ac63f71a29f27c1cc7ce01e5f languageName: node linkType: hard @@ -1368,14 +1451,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.1" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.5" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 90251c02986aebe50937522a6e404cb83db1b1feda17c0244e97d6429ded1634340c8411536487d14c54495607e1b7c9dc4db4aed969d519f1ff1e363f9c2229 + checksum: 35504219e4e8b361dbd285400c846f154754e591e931cd30dbe1426a619e41ed0c410b26dd173824ed3a2ff0371d64213ae2304b6f169b32e78b004114f5acd5 languageName: node linkType: hard @@ -1441,14 +1524,14 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.24.4 - resolution: "@babel/preset-env@npm:7.24.4" + version: 7.24.5 + resolution: "@babel/preset-env@npm:7.24.5" dependencies: "@babel/compat-data": ^7.24.4 "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.5 "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.4 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.5 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.1 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.1 "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.1 @@ -1475,12 +1558,12 @@ __metadata: "@babel/plugin-transform-async-generator-functions": ^7.24.3 "@babel/plugin-transform-async-to-generator": ^7.24.1 "@babel/plugin-transform-block-scoped-functions": ^7.24.1 - "@babel/plugin-transform-block-scoping": ^7.24.4 + "@babel/plugin-transform-block-scoping": ^7.24.5 "@babel/plugin-transform-class-properties": ^7.24.1 "@babel/plugin-transform-class-static-block": ^7.24.4 - "@babel/plugin-transform-classes": ^7.24.1 + "@babel/plugin-transform-classes": ^7.24.5 "@babel/plugin-transform-computed-properties": ^7.24.1 - "@babel/plugin-transform-destructuring": ^7.24.1 + "@babel/plugin-transform-destructuring": ^7.24.5 "@babel/plugin-transform-dotall-regex": ^7.24.1 "@babel/plugin-transform-duplicate-keys": ^7.24.1 "@babel/plugin-transform-dynamic-import": ^7.24.1 @@ -1500,13 +1583,13 @@ __metadata: "@babel/plugin-transform-new-target": ^7.24.1 "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.1 "@babel/plugin-transform-numeric-separator": ^7.24.1 - "@babel/plugin-transform-object-rest-spread": ^7.24.1 + "@babel/plugin-transform-object-rest-spread": ^7.24.5 "@babel/plugin-transform-object-super": ^7.24.1 "@babel/plugin-transform-optional-catch-binding": ^7.24.1 - "@babel/plugin-transform-optional-chaining": ^7.24.1 - "@babel/plugin-transform-parameters": ^7.24.1 + "@babel/plugin-transform-optional-chaining": ^7.24.5 + "@babel/plugin-transform-parameters": ^7.24.5 "@babel/plugin-transform-private-methods": ^7.24.1 - "@babel/plugin-transform-private-property-in-object": ^7.24.1 + "@babel/plugin-transform-private-property-in-object": ^7.24.5 "@babel/plugin-transform-property-literals": ^7.24.1 "@babel/plugin-transform-regenerator": ^7.24.1 "@babel/plugin-transform-reserved-words": ^7.24.1 @@ -1514,7 +1597,7 @@ __metadata: "@babel/plugin-transform-spread": ^7.24.1 "@babel/plugin-transform-sticky-regex": ^7.24.1 "@babel/plugin-transform-template-literals": ^7.24.1 - "@babel/plugin-transform-typeof-symbol": ^7.24.1 + "@babel/plugin-transform-typeof-symbol": ^7.24.5 "@babel/plugin-transform-unicode-escapes": ^7.24.1 "@babel/plugin-transform-unicode-property-regex": ^7.24.1 "@babel/plugin-transform-unicode-regex": ^7.24.1 @@ -1527,7 +1610,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5a057a6463f92b02bfe66257d3f2c76878815bc7847f2a716b0539d9f547eae2a9d1f0fc62a5c0eff6ab0504bb52e815829ef893e4586b641f8dd6a609d114f3 + checksum: cced4e5331231158e02ba5903c4de12ef0aa2d2266ebb07fa80a85045b1fe2c63410d7558b702f1916d9d038531f3d79ab31007762188de5f712b16f7a66bb74 languageName: node linkType: hard @@ -1613,21 +1696,21 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/traverse@npm:7.24.1" +"@babel/traverse@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/traverse@npm:7.24.5" dependencies: - "@babel/code-frame": ^7.24.1 - "@babel/generator": ^7.24.1 + "@babel/code-frame": ^7.24.2 + "@babel/generator": ^7.24.5 "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-function-name": ^7.23.0 "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.24.1 - "@babel/types": ^7.24.0 + "@babel/helper-split-export-declaration": ^7.24.5 + "@babel/parser": ^7.24.5 + "@babel/types": ^7.24.5 debug: ^4.3.1 globals: ^11.1.0 - checksum: 92a5ca906abfba9df17666d2001ab23f18600035f706a687055a0e392a690ae48d6fec67c8bd4ef19ba18699a77a5b7f85727e36b83f7d110141608fe0c24fe9 + checksum: a313fbf4a06946cc4b74b06e9846d7393a9ca1e8b6df6da60c669cff0a9426d6198c21a478041c60807b62b48f980473d4afbd3768764b0d9741ac80f5dfa04f languageName: node linkType: hard @@ -1653,6 +1736,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/types@npm:7.24.5" + dependencies: + "@babel/helper-string-parser": ^7.24.1 + "@babel/helper-validator-identifier": ^7.24.5 + to-fast-properties: ^2.0.0 + checksum: 8eeeacd996593b176e649ee49d8dc3f26f9bb6aa1e3b592030e61a0e58ea010fb018dccc51e5314c8139409ea6cbab02e29b33e674e1f6962d8e24c52da6375b + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" From 1fdb355f27dc7cbd5dfcac58afc4e87237f67e37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 02:22:16 +0000 Subject: [PATCH 172/471] chore(deps): update dependency sass to v1.77.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d88456e57..56f79b3dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11899,15 +11899,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.75.0 - resolution: "sass@npm:1.75.0" + version: 1.77.0 + resolution: "sass@npm:1.77.0" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: bfb9f5ddb6a2e1fe0c1ba6191cdb17afa7b40c1eb892c7152f6a29ff2b06dc7a510bdb648f8cca0179dcb3965920ebeb8894f0710b0b450a99db563831345033 + checksum: 684b70e58ab2077b2ed90c5ae0e3bfed59fb6f362e4cbae2514c6bef57b013a0a1012d1c199b9d9d362fe52e37cddf12c6d843e78d3402ba5ed6fcf29b98e28c languageName: node linkType: hard From 1ed5d239a441040bbaba35f65c1a19950a4349a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 18:48:48 +0000 Subject: [PATCH 173/471] chore(deps): update dependency @types/node to v20.12.10 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 56f79b3dd..1d2cac94e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4119,11 +4119,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.7 - resolution: "@types/node@npm:20.12.7" + version: 20.12.10 + resolution: "@types/node@npm:20.12.10" dependencies: undici-types: ~5.26.4 - checksum: 7cc979f7e2ca9a339ec71318c3901b9978555257929ef3666987f3e447123bc6dc92afcc89f6347e09e07d602fde7d51bcddea626c23aa2bb74aeaacfd1e1686 + checksum: 8c35a349f494846c1f1db4e4f8b21e7fc7f6ee14d99a0998f38699f941652be0e2a236b11f13fe404a6fec9b9a82e0e39b80ca71dafc38c742b160cc498b56c3 languageName: node linkType: hard From d8bb5cc8f20704be355dbf1dc593a53454a1eb7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 01:36:19 +0000 Subject: [PATCH 174/471] chore(deps): update dependency vite to v5.2.11 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1d2cac94e..b44fdc02c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13293,8 +13293,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.10 - resolution: "vite@npm:5.2.10" + version: 5.2.11 + resolution: "vite@npm:5.2.11" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 @@ -13328,7 +13328,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: feb11be2b97259783afe1d0ff4b7ee0bef78fe8934d8b043465e039e4d8318249e2263adc724b719b9e9b45a37e012caeb7746854768f371d1a82bb189f50fe6 + checksum: 3f9f976cc6ada93aca56abcc683a140e807725b351abc241a1ec0763ec561a4bf5760e1ad94de4e59505904ddaa88727de66af02f61ecf540c7720045de55d0a languageName: node linkType: hard From f146887363095e8c6cb56a7c53cbca328e142c83 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 01:36:31 +0000 Subject: [PATCH 175/471] chore(deps): update yarn to v3.8.2 --- .../{yarn-3.8.1.cjs => yarn-3.8.2.cjs} | 444 +++++++++--------- .yarnrc.yml | 2 +- package.json | 2 +- 3 files changed, 224 insertions(+), 224 deletions(-) rename .yarn/releases/{yarn-3.8.1.cjs => yarn-3.8.2.cjs} (82%) diff --git a/.yarn/releases/yarn-3.8.1.cjs b/.yarn/releases/yarn-3.8.2.cjs similarity index 82% rename from .yarn/releases/yarn-3.8.1.cjs rename to .yarn/releases/yarn-3.8.2.cjs index 85d80bac8..96fe2a11c 100755 --- a/.yarn/releases/yarn-3.8.1.cjs +++ b/.yarn/releases/yarn-3.8.2.cjs @@ -1,106 +1,106 @@ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore -(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,xK)=>{xK.exports=PK;PK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,xS)=>{"use strict";var PS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(PS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(PS,"^$1"),e&&(r=r.replace(PS,"^$1")),r}xS.exports.command=mfe;xS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),bfe=iU(),Qfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Pfe(r){r.file=nU(r);let e=r.file&&bfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function xfe(r){if(!Qfe)return r;let e=Pfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:xfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Tr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},Ir=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},bp=function(C){return{type:"variable",...C,quoted:!1}},Qr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ -`,Tn=Ue(`\\ -`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),An=function(C){return C},Q="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",Qp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,Pp=Ve(["E","e"],!1,!1),xp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},Wi="\\n",Ol=Ue("\\n",!1),ze=function(){return` -`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),ln=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),bA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,b,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(b.join("")+"."+R.join(""))}},UE=function(C,b){return{type:"number",value:(C==="-"?-1:1)*parseInt(b.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Lr=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),QA=function(C,b,R){return{type:b==="*"?"multiplication":"division",right:R}},D=function(C,b){return b.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,b,R){return{type:b==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),JQ=":-",R1=Ue(":-",!1),F1=function(C,b){return{name:C,defaultValue:b}},WQ=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zQ=":+",L1=Ue(":+",!1),O1=function(C,b){return{name:C,alternativeValue:b}},VQ=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},XQ=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},ZQ=/^[a-zA-Z0-9_]/,_Q=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,b){throw b=b!==void 0?b:ii(E,f),On([Ii(C)],r.substring(E,f),b)}function at(C,b){throw b=b!==void 0?b:ii(E,f),yi(C,b)}function Ue(C,b){return{type:"literal",text:C,ignoreCase:b}}function Ve(C,b,R){return{type:"class",parts:C,inverted:b,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function cn(C){var b=w[C],R;if(b)return b;for(R=C-1;!w[R];)R--;for(b=w[R],b={line:b.line,column:b.column};Rk&&(k=f,L=[]),L.push(C))}function yi(C,b){return new $l(C,null,null,b)}function On(C,b,R){return new $l($l.buildMessage(C,b),C,b,R)}function Ia(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=Sr(),R===t&&(R=null),R!==t?(E=C,b=s(R),C=b):(f=C,C=t)):(f=C,C=t),C}function Sr(){var C,b,R,U,le;if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,b=o(b,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,b=a(b,U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=Sr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=l(R),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,b,R;return C=f,b=q1(),b!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,b=p(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=d(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,b,R;return C=f,b=Bge(),b!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,b=x(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=F(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,b,R,U,le,be;if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(E=C,b=A(b,U),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ne(b),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,b,R,U,le,be,ft,It,Gr,fi,os;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=ce(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(xe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=se(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],be=W1(),be!==t)for(;be!==t;)le.push(be),be=W1();else le=t;if(le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=Ae(R,le),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ye(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ge(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t?(R=Tp(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();b!==t?(R=qE(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=bge(),U!==t?(le=qE(),le!==t?(E=C,b=G(R,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function bge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Tr?(C=Tr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=z1(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,b,R;if(C=f,b=[],R=V1(),R!==t)for(;R!==t;)b.push(R),R=V1();else b=t;return b!==t&&(E=C,b=Ms(b)),C=b,C}function V1(){var C,b;return C=f,b=Qge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=Sge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=vge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=Pge(),b!==t&&(E=C,b=fr(b)),C=b))),C}function Qge(){var C,b,R,U;return C=f,r.substr(f,2)===Ei?(b=Ei,f+=2):(b=t,T===0&&Be(rs)),b!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,b,R,U;return C=f,r.charCodeAt(f)===39?(b=ua,f++):(b=t,T===0&&Be(CA)),b!==t?(R=xge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,b,R,U;if(C=f,r.substr(f,2)===is?(b=is,f+=2):(b=t,T===0&&Be(mA)),b!==t&&(E=C,b=ga()),C=b,C===t)if(C=f,r.charCodeAt(f)===34?(b=wp,f++):(b=t,T===0&&Be(EA)),b!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,b=IA(R),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function Pge(){var C,b,R;if(C=f,b=[],R=Z1(),R!==t)for(;R!==t;)b.push(R),R=Z1();else b=t;return b!==t&&(E=C,b=IA(b)),C=b,C}function X1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=Ir(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Nl(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=fg(b)),C=b,C===t&&(C=f,b=kge(),b!==t&&(E=C,b=Io(b)),C=b))),C}function Z1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=hg(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Bp(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=bp(b)),C=b,C===t&&(C=f,b=Nge(),b!==t&&(E=C,b=Qr(b)),C=b,C===t&&(C=f,b=Fge(),b!==t&&(E=C,b=Io(b)),C=b)))),C}function xge(){var C,b,R;for(C=f,b=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)b.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return b!==t&&(E=C,b=Nn(b)),C=b,C}function kge(){var C,b,R;if(C=f,b=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)b.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function _1(){var C,b,R;return C=f,r.substr(f,2)===Tl?(b=Tl,f+=2):(b=t,T===0&&Be(Tn)),b!==t&&(E=C,b=ns()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,b=An(R),C=b):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,b,R;for(C=f,b=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)b.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return b!==t&&(E=C,b=Nn(b)),C=b,C}function $1(){var C,b,R;return C=f,r.substr(f,2)===Q?(b=Q,f+=2):(b=t,T===0&&Be(Nt)),b!==t&&(E=C,b=pg()),C=b,C===t&&(C=f,r.substr(f,2)===Ll?(b=Ll,f+=2):(b=t,T===0&&Be(Qp)),b!==t&&(E=C,b=Sp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(Pp)),R!==t?(E=C,b=xp(),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(b=j,f+=2):(b=t,T===0&&Be(Et)),b!==t&&(E=C,b=yA()),C=b,C===t&&(C=f,r.substr(f,2)===Wi?(b=Wi,f+=2):(b=t,T===0&&Be(Ol)),b!==t&&(E=C,b=ze()),C=b,C===t&&(C=f,r.substr(f,2)===fa?(b=fa,f+=2):(b=t,T===0&&Be(dg)),b!==t&&(E=C,b=OE()),C=b,C===t&&(C=f,r.substr(f,2)===kp?(b=kp,f+=2):(b=t,T===0&&Be(ME)),b!==t&&(E=C,b=sr()),C=b,C===t&&(C=f,r.substr(f,2)===Ln?(b=Ln,f+=2):(b=t,T===0&&Be(Ml)),b!==t&&(E=C,b=Dp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,b=An(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,b,R,U,le,be,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(R=nS(),R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(b=Ne,f+=2):(b=t,T===0&&Be(Cg)),b!==t?(R=f,U=f,le=nS(),le!==t?(be=Mn(),be!==t?(le=[le,be],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(b=Kl,f+=2):(b=t,T===0&&Be(Us)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,be,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(b=Ul,f+=2):(b=t,T===0&&Be(wA)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,be,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=mg(R),C=b):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,b,R,U,le;if(C=f,b=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)b.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function sS(){var C,b,R,U,le,be;if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie)),be!==t)for(;be!==t;)le.push(be),Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie));else le=t;le!==t?(E=C,b=Gl(b,R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,b=UE(b,R),C=b):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,b=aS(),b!==t&&(E=C,b=Np(b)),C=b,C===t&&(C=f,b=Wl(),b!==t&&(E=C,b=Yl(b)),C=b,C===t)))if(C=f,r.charCodeAt(f)===40?(b=ue,f++):(b=t,T===0&&Be(te)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.charCodeAt(f)===41?(be=O,f++):(be=t,T===0&&Be(N)),be!==t?(E=C,b=Lr(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,b,R,U,le,be,ft,It;if(C=f,b=sS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,b,R,U,le,be,ft,It;if(C=f,b=oS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,b,R,U,le,be;if(C=f,r.substr(f,3)===pe?(b=pe,f+=3):(b=t,T===0&&Be(Le)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.substr(f,2)===ke?(be=ke,f+=2):(be=t,T===0&&Be(Je)),be!==t?(E=C,b=pt(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,b,R,U;return C=f,r.substr(f,2)===Xt?(b=Xt,f+=2):(b=t,T===0&&Be(Ea)),b!==t?(R=Sr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,b=D1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,b,R,U,le,be;return C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===JQ?(U=JQ,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=F1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===WQ?(U=WQ,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,b=T1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===zQ?(U=zQ,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=O1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===VQ?(U=VQ,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,b=K1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(b=U1,f++):(b=t,T===0&&Be(H1)),b!==t?(R=Wl(),R!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,b,R;return C=f,b=Tge(),b!==t?(E=f,R=j1(b),R?R=void 0:R=t,R!==t?(E=C,b=G1(b),C=b):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,b,R,U,le;if(C=f,b=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)b.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t);else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function iK(){var C,b,R;if(C=f,b=[],ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q)),R!==t)for(;R!==t;)b.push(R),ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function Wl(){var C,b,R;if(C=f,b=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)b.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,b;if(C=[],Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg)),b!==t)for(;b!==t;)C.push(b),Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;gH&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(x=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(x=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(x=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(x=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(x=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(x=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(x=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(x=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var QU=I((LZe,bU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{TK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=NK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var GK=I((AZe,YK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=GK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var NS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),TS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return TS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||TS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=TS});var hU=I((mZe,fU)=>{"use strict";function Tfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Tfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Nr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},Ir=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Tl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},br=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Tn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Nl=`\\ +`,Nn=Ue(`\\ +`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),An=function(C){return C},b="\\a",Tt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},Wi="\\n",Ol=Ue("\\n",!1),ze=function(){return` +`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),ln=function(C){return String.fromCharCode(parseInt(C,16))},Te="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Yl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Tp=function(C){return{type:"variable",...C}},Gl=function(C){return{type:"variable",name:C}},Lr=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},G=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Ys="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",T1=Ue(":-}",!1),N1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},Y1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,YE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],N=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function cn(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};Rk&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=Sr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Sr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=G1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=G1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Sr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function G1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,N===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,N===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,N===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,N===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,N===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,N===0&&Be(X))),C}function GE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,Yr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,N===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,N===0&&Be(T)),ft!==t){for(It=[],Yr=Me();Yr!==t;)It.push(Yr),Yr=Me();if(It!==t){for(Yr=[],fi=Np();fi!==t;)Yr.push(fi),fi=Np();if(Yr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,Yr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,N===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,N===0&&Be(Re)),ft!==t){for(It=[],Yr=Me();Yr!==t;)It.push(Yr),Yr=Me();if(It!==t){for(Yr=[],fi=Np();fi!==t;)Yr.push(fi),fi=Np();if(Yr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,Yr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=GE();U!==t;)R.push(U),U=GE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=GE(),U!==t)for(;U!==t;)R.push(U),U=GE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Np(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Np(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ge.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=Y(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,N===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,N===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,N===0&&Be(mt)),C===t&&(r.substr(f,3)===Nr?(C=Nr,f+=3):(C=t,N===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,N===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,N===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,N===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,N===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,N===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,N===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,N===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=Ir(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Tl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Tge(),Q!==t&&(E=C,Q=br(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Nl?(Q=Nl,f+=2):(Q=t,N===0&&Be(Nn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(At)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,N===0&&Be(Tt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,N===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(Q=j,f+=2):(Q=t,N===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===Wi?(Q=Wi,f+=2):(Q=t,N===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,N===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,N===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,N===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ha)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,Yr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Te?(Q=Te,f+=2):(Q=t,N===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,N===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,N===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Yr=Mn(),Yr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,Yr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,N===0&&Be(KE)),U!==t){if(le=[],Ge.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ge.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie));else le=t;le!==t?(E=C,Q=Yl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Tp(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Gl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,N===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,N===0&&Be(T)),Qe!==t?(E=C,Q=Lr(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=G(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=G(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,N===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,N===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,N===0&&Be(Ea)),Q!==t?(R=Sr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,N===0&&Be(T)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,N===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,N===0&&Be(T1)),U!==t?(E=C,Q=N1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,N===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,N===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,N===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,N===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Tge(){var C,Q,R;return C=f,Q=Nge(),Q!==t?(E=f,R=j1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=Y1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Nge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(jE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(jE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(YE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;gH&&(H=S,q=[]),q.push(ie))}function Re(ie,Y){return new tc(ie,null,null,Y)}function se(ie,Y,fe){return new tc(tc.buildMessage(ie,Y),ie,Y,fe)}function Ae(){var ie,Y,fe,re;return ie=S,Y=ye(),Y!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,Y=a(Y,re),ie=Y):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,Y=ye(),Y!==t&&(P=ie,Y=l(Y)),ie=Y),ie}function ye(){var ie,Y,fe,re;return ie=S,Y=ge(),Y!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ge(),re!==t?(P=ie,Y=g(Y,re),ie=Y):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,Y=ge(),Y!==t&&(P=ie,Y=h(Y)),ie=Y),ie}function ge(){var ie,Y,fe,re,de;return ie=S,r.charCodeAt(S)===64?(Y=c,S++):(Y=t,_===0&&De(u)),Y!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,Y=p(),ie=Y):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,Y=oe(),Y!==t&&(P=ie,Y=p()),ie=Y),ie}function oe(){var ie,Y,fe;if(ie=S,Y=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)Y.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else Y=t;return Y!==t&&(P=ie,Y=p()),ie=Y,ie}function Ge(){var ie,Y,fe;if(ie=S,Y=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)Y.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else Y=t;return Y!==t&&(P=ie,Y=p()),ie=Y,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BU.repeat(" ",e)+i+a+s+` `+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};bU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,xU)=>{"use strict";var PU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var bhe=nc();JU.exports=new bhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var Qhe=nc();WU.exports=new Qhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function Phe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function xhe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:Phe,instanceOf:Date,represent:xhe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var ba=ic(),Q2=Ng(),gpe=QU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,P2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,x2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new Q2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],x2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function xA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=ba.repeat(` -`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),fn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(xA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return xA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function bpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(xA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(xA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function Qpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return xA(r,t,r.position,!0),r.position++,!0;if(a===92){if(xA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(xA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent{"use strict";var SU=Tg(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Tg(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var NU=I((HZe,TU)=>{"use strict";var $fe=ni();TU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),NU()]})});var MU=I((YZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((GZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,GU)=>{"use strict";var YU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(YU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||YU.isNegativeZero(r))}GU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var YS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var GS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[YS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function The(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function Nhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:The,predicate:Lhe,represent:Nhe})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var jhe=ni(),Yhe=Object.prototype.toString;function Ghe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[GS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Tg(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Qa.repeat(` +`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),fn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function bpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndente)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),T2(r,e,ba.extend({schema:S2},t))}function Npe(r,e){return L2(r,ba.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;ne)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=T2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),N2(r,e,Qa.extend({schema:S2},t))}function Tpe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=N2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Tpe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Tg(),Npe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Ype=38,Gpe=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ti={};Ti[0]="\\0";Ti[7]="\\a";Ti[8]="\\b";Ti[9]="\\t";Ti[10]="\\n";Ti[11]="\\v";Ti[12]="\\f";Ti[13]="\\r";Ti[27]="\\e";Ti[34]='\\"';Ti[92]="\\\\";Ti[133]="\\N";Ti[160]="\\_";Ti[8232]="\\L";Ti[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` +`+ed.repeat(" ",r.indent*e)}function rde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` `,n=i&&(r[r.length-2]===` `||r===` `),s=n?"+":i?"":"-";return t+s+` `}function j2(r){return r[r.length-1]===` `?r.slice(0,-1):r}function ade(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,G2(r.slice(0,c),e)}(),n=r[0]===` +`);return c=c!==-1?c:r.length,t.lastIndex=c,Y2(r.slice(0,c),e)}(),n=r[0]===` `||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+G2(l,e),n=s}return i}function G2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`:"")+Y2(l,e),n=s}return i}function Y2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` `+r.slice(n,s),n=s+1),o=a;return l+=` `,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var BI=O2(),aH=oH();function bI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Dr.exports.Type=ni();Dr.exports.Schema=nc();Dr.exports.FAILSAFE_SCHEMA=dI();Dr.exports.JSON_SCHEMA=GS();Dr.exports.CORE_SCHEMA=YS();Dr.exports.DEFAULT_SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_FULL_SCHEMA=Zp();Dr.exports.load=BI.load;Dr.exports.loadAll=BI.loadAll;Dr.exports.safeLoad=BI.safeLoad;Dr.exports.safeLoadAll=BI.safeLoadAll;Dr.exports.dump=aH.dump;Dr.exports.safeDump=aH.safeDump;Dr.exports.YAMLException=Ng();Dr.exports.MINIMAL_SCHEMA=dI();Dr.exports.SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_SCHEMA=Zp();Dr.exports.scan=bI("scan");Dr.exports.parse=bI("parse");Dr.exports.compose=bI("compose");Dr.exports.addConstructor=bI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===QA*Ig},A=function(D){return D.length===(QA+1)*Ig},ne=function(){return QA++,!0},ue=function(){return QA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,xe=Ln(["\r",` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ti[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function G2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,G2(r,t,!1)||G2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Dr.exports.Type=ni();Dr.exports.Schema=nc();Dr.exports.FAILSAFE_SCHEMA=dI();Dr.exports.JSON_SCHEMA=YS();Dr.exports.CORE_SCHEMA=GS();Dr.exports.DEFAULT_SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_FULL_SCHEMA=Zp();Dr.exports.load=BI.load;Dr.exports.loadAll=BI.loadAll;Dr.exports.safeLoad=BI.safeLoad;Dr.exports.safeLoadAll=BI.safeLoadAll;Dr.exports.dump=aH.dump;Dr.exports.safeDump=aH.safeDump;Dr.exports.YAMLException=Tg();Dr.exports.MINIMAL_SCHEMA=dI();Dr.exports.SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_SCHEMA=Zp();Dr.exports.scan=QI("scan");Dr.exports.parse=QI("parse");Dr.exports.compose=QI("compose");Dr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),T=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",` -`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Tr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),Ir=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),bp=function(){return` -`},Qr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,An=Ln([" "," "],!1,!1),Q=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` +`," "," ",":",","],!0,!1),Ge="null",ie=sr("null",!1),Y=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Nr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),Ir=function(){return"\b"},Tl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` +`},br="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Tn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Nl="\\u",Nn=sr("\\u",!1),ns=function(D,G,pe,Le){return String.fromCharCode(parseInt(`0x${D}${G}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,An=Ln([" "," "],!1,!1),b=Ks("white space"),Tt=/^[ \t\n\r]/,pg=Ln([" "," ",` `,"\r"],!1,!1),Ll=`\r -`,Qp=sr(`\r +`,bp=sr(`\r `,!1),Sp=` `,vp=sr(` -`,!1),Pp="\r",xp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],Wi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return ln(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:ln(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};peWi&&(Wi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Lr(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Lr(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Lr(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=x(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=x(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Lr(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Lr(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Lr(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=bA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=bA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function bA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(xe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(xe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Tr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=Ir()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=bp()),D=Y,D===t&&(D=j,r.substr(j,2)===Qr?(Y=Qr,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Lr(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(An));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(Q)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(Qp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=Pp,j++):(D=t,ze===0&&Ne(xp)))),D}let Ig=2,QA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),Po=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!Po[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in Po&&Po[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!Po[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(Po.CI||Po.CONTINUOUS_INTEGRATION||Po.BUILD_NUMBER||Po.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!Po[r]:Object.keys(r).every(function(e){return Po[e]===r[e]})}});var hn={};ct(hn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>QH,colorStringRegExp:()=>bH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>xde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>Pde,isDict:()=>Dde,isEnum:()=>Xi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>bde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>xH,makeTrait:()=>PH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return PH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function xH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function bde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Xi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,bH,QH,SH,vH,ov,PH,kH,od,Qde,Sde,vde,Pde,xde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,bH=/^#[0-9a-f]{6}$/i,QH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,PH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});Qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=Qde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),Pde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),xde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aBt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:xH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sBt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&tBt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?bH.test(e):QH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var bCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=bCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),QCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,bt=(r,e,t)=>{let i=vCe++;QCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};bt("NUMERICIDENTIFIER","0|[1-9]\\d*");bt("NUMERICIDENTIFIERLOOSE","[0-9]+");bt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");bt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);bt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);bt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);bt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);bt("BUILDIDENTIFIER","[0-9A-Za-z-]+");bt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);bt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);bt("FULL",`^${$e[et.FULLPLAIN]}$`);bt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);bt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);bt("GTLT","((?:<|>)?=?)");bt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);bt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);bt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);bt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);bt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);bt("COERCERTL",$e[et.COERCE],!0);bt("LONETILDE","(?:~>?)");bt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";bt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);bt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("LONECARET","(?:\\^)");bt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";bt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);bt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);bt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);bt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";bt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);bt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);bt("STAR","(<|>)?=?\\s*\\*");bt("GTE0","^\\s*>=\\s*0.0.0\\s*$");bt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var PCe=["includePrerelease","loose","rtl"],xCe=r=>r?typeof r!="object"?{loose:!0}:PCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=xCe});var LI=I((b$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rtj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((Q$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((P$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((x$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var bj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,Qj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;Qj.exports=VCe});var Pj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,xj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};xj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),bme=GI(),Qme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return bme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=Qme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),Pme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=Pme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Rme=JI(),dc=Symbol("max"),Pa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[Pa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[Pa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[Pa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[Pa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Pa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[Pa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[Pa]>r[dc])for(let e=r[pi].tail;r[Pa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[Pa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[Qi.HYPHENRANGELOOSE]:Oi[Qi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Mr("hyphen replace",e),e=e.replace(Oi[Qi.COMPARATORTRIM],Lme),Mr("comparator trim",e,Oi[Qi.COMPARATORTRIM]),e=e.replace(Oi[Qi.TILDETRIM],Ome),e=e.replace(Oi[Qi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[Qi.COMPARATORLOOSE]:Oi[Qi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Mr("comp",r,e),r=Gme(r,e),Mr("caret",r),r=Hme(r,e),Mr("tildes",r),r=qme(r,e),Mr("xrange",r),r=Wme(r,e),Mr("stars",r),r),_i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[Qi.TILDELOOSE]:Oi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Mr("tilde",r,i,n,s,o,a);let l;return _i(n)?l="":_i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:_i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Mr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Mr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Mr("caret",r,e);let t=e.loose?Oi[Qi.CARETLOOSE]:Oi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Mr("caret",r,n,s,o,a,l);let c;return _i(s)?c="":_i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:_i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Mr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Mr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Mr("caret return",c),c})},qme=(r,e)=>(Mr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[Qi.XRANGELOOSE]:Oi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Mr("xRange",r,i,n,s,o,a,l);let c=_i(s),u=c||_i(o),g=u||_i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Mr("xRange return",i),i})},Wme=(r,e)=>(Mr("replaceStars",r,e),r.trim().replace(Oi[Qi.STAR],"")),zme=(r,e)=>(Mr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>(_i(i)?t="":_i(n)?t=`>=${i}.0.0${r?"-0":""}`:_i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,_i(c)?l="":_i(u)?l=`<${+c+1}.0.0-0`:_i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),bv=mv(),Qv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),bG=Cd(),QG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=bG,s=dEe,o=QG,a=">",l=">=";break;case"<":n=QG,s=CEe,o=bG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var xG=I((aet,PG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);PG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var bEe=wd(),QEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>QEe(u,g,t));for(let u of o)bEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),Pv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=Pv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=Pv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=Pv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var xv=fc();jG.exports={re:xv.re,src:xv.src,tokens:xv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:bj(),minor:Sj(),patch:Pj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:xG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],Wi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return ln(Et,j)}function kp(D,G){throw G=G!==void 0?G:ln(Et,j),Kl([Ks(D)],r.substring(Et,j),G)}function ME(D,G){throw G=G!==void 0?G:ln(Et,j),Cg(D,G)}function sr(D,G){return{type:"literal",text:D,ignoreCase:G}}function Ln(D,G,pe){return{type:"class",parts:D,inverted:G,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var G=yA[D],pe;if(G)return G;for(pe=D-1;!yA[pe];)pe--;for(G=yA[pe],G={line:G.line,column:G.column};peWi&&(Wi=j,Ol=[]),Ol.push(D))}function Cg(D,G){return new lc(D,null,null,G)}function Kl(D,G,pe){return new lc(lc.buildMessage(D,G),D,G,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,G,pe;for(D=j,G=[],pe=wA();pe!==t;)G.push(pe),pe=wA();return G!==t&&(Et=D,G=s(G)),D=G,D}function wA(){var D,G,pe,Le,ke;return D=j,G=da(),G!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Te(a)),pe!==t?(Le=Lr(),Le!==t?(ke=pa(),ke!==t?(Et=D,G=l(ke),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,G,pe;for(D=j,G=[],pe=Eg();pe!==t;)G.push(pe),pe=Eg();return G!==t&&(Et=D,G=c(G)),D=G,D}function Eg(){var D,G,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,G=Lr(),G===t&&(G=null),G!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Te(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,G=p(),D=G):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,G=da(),G!==t?(pe=Rp(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,G=y(pe,pt),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,G=da(),G!==t?(pe=Ca(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,G=y(pe,pt),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,G=da(),G!==t)if(pe=Ca(),pe!==t)if(Le=Lr(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,G=y(pe,ke),D=G):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,G=da(),G!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Lr(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Te(m)),Je!==t?(pt=Lr(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,G=F(pe,Le,Xt),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,G,pe,Le,ke,Je,pt;if(D=j,G=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Te(a)),Je!==t?(pt=Lr(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=G,G=void 0):G=t,G!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,G=H(ke),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,G=js(),G!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,G=H(Le),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,G=Hl(),G!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,G=q(G),D=G):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,G,pe;for(ze++,D=j,G=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));pe!==t;)G.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));return G!==t?(Et=j,pe=Z(G),pe?pe=void 0:pe=t,pe!==t?(G=[G,pe],D=G):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(G=t,ze===0&&Te(_)),D}function tt(){var D,G,pe;for(D=j,G=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));pe!==t;)G.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));return G!==t?(Et=j,pe=A(G),pe?pe=void 0:pe=t,pe!==t?(G=[G,pe],D=G):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Yl(),D===t&&(D=QA()),D}function Ca(){var D,G,pe;if(D=Yl(),D===t){if(D=j,G=[],pe=ma(),pe!==t)for(;pe!==t;)G.push(pe),pe=ma();else G=t;G!==t&&(Et=D,G=te()),D=G}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Yl(),D===t&&(D=QA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Yl(),D===t&&(D=ma())),D}function QA(){var D,G,pe,Le,ke,Je;if(ze++,D=j,T.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(ce)),G!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,G=De(),D=G):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(G=t,ze===0&&Te(O)),D}function ma(){var D,G,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(G=Re,j+=2):(G=t,ze===0&&Te(se)),G===t&&(G=null),G!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Te(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Te(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Te(oe));Le!==t?(Et=D,G=De(),D=G):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,G;return D=j,r.substr(j,4)===Ge?(G=Ge,j+=4):(G=t,ze===0&&Te(ie)),G!==t&&(Et=D,G=Y()),D=G,D}function KE(){var D,G;return D=j,r.substr(j,4)===fe?(G=fe,j+=4):(G=t,ze===0&&Te(re)),G!==t&&(Et=D,G=de()),D=G,D===t&&(D=j,r.substr(j,5)===Ze?(G=Ze,j+=5):(G=t,ze===0&&Te(vt)),G!==t&&(Et=D,G=mt()),D=G),D}function Yl(){var D,G,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(G=ti,j++):(G=t,ze===0&&Te(ui)),G!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Te(ui)),pe!==t?(Et=D,G=gr(),D=G):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(G=ti,j++):(G=t,ze===0&&Te(ui)),G!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Te(ui)),Le!==t?(Et=D,G=gi(pe),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(G=t,ze===0&&Te(Nr)),D}function UE(){var D,G,pe;if(D=j,G=[],pe=Tp(),pe!==t)for(;pe!==t;)G.push(pe),pe=Tp();else G=t;return G!==t&&(Et=D,G=ri(G)),D=G,D}function Tp(){var D,G,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Te(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(G=Ei,j+=2):(G=t,ze===0&&Te(rs)),G!==t&&(Et=D,G=ua()),D=G,D===t&&(D=j,r.substr(j,2)===CA?(G=CA,j+=2):(G=t,ze===0&&Te(gg)),G!==t&&(Et=D,G=is()),D=G,D===t&&(D=j,r.substr(j,2)===mA?(G=mA,j+=2):(G=t,ze===0&&Te(ga)),G!==t&&(Et=D,G=wp()),D=G,D===t&&(D=j,r.substr(j,2)===EA?(G=EA,j+=2):(G=t,ze===0&&Te(IA)),G!==t&&(Et=D,G=Ir()),D=G,D===t&&(D=j,r.substr(j,2)===Tl?(G=Tl,j+=2):(G=t,ze===0&&Te(fg)),G!==t&&(Et=D,G=Io()),D=G,D===t&&(D=j,r.substr(j,2)===hg?(G=hg,j+=2):(G=t,ze===0&&Te(Bp)),G!==t&&(Et=D,G=Qp()),D=G,D===t&&(D=j,r.substr(j,2)===br?(G=br,j+=2):(G=t,ze===0&&Te(Ri)),G!==t&&(Et=D,G=yo()),D=G,D===t&&(D=j,r.substr(j,2)===Tn?(G=Tn,j+=2):(G=t,ze===0&&Te(ae)),G!==t&&(Et=D,G=yt()),D=G,D===t&&(D=j,r.substr(j,2)===Nl?(G=Nl,j+=2):(G=t,ze===0&&Te(Nn)),G!==t?(pe=Gl(),pe!==t?(Le=Gl(),Le!==t?(ke=Gl(),ke!==t?(Je=Gl(),Je!==t?(Et=D,G=ns(pe,Le,ke,Je),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Gl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Te(ut)),D}function Lr(){var D,G;if(ze++,D=[],At.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(An)),G!==t)for(;G!==t;)D.push(G),At.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(An));else D=t;return ze--,D===t&&(G=t,ze===0&&Te(wo)),D}function HE(){var D,G;if(ze++,D=[],Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(pg)),G!==t)for(;G!==t;)D.push(G),Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(pg));else D=t;return ze--,D===t&&(G=t,ze===0&&Te(b)),D}function Hs(){var D,G,pe,Le,ke,Je;if(D=j,G=js(),G!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(G=[G,pe],D=G):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Te(bp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Te(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Te(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var hn={};ct(hn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Yde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Xi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Gde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Tde,isOptional:()=>Nde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Xi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Tde,ad,Nde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Yde,Gde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aBt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Tde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Nde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sBt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Yde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Gde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&tBt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rtj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((b$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Yn=class{constructor(e,t){if(t=DCe(t),e instanceof Yn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Yn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),TCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=TCe});var gj=I((v$e,uj)=>{var NCe=hc(),LCe=(r,e)=>{let t=NCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),YCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=YCe});var wj=I((R$e,yj)=>{var Ij=hc(),GCe=KI(),qCe=(r,e)=>{if(GCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var Qj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((T$e,bj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bj.exports=VCe});var xj=I((N$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Tj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Nj=Li(),nme=(r,e,t)=>{let i=new Nj(r,t),n=new Nj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((Y$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((G$e,Yj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Yj.exports=hme});var jI=I((q$e,Gj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Gj.exports=dme});var YI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),Qme=YI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=bme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:GI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(GI[qI.COERCE]);else{let i;for(;(i=GI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),GI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;GI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eY=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eY]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eY]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tY.exports=yv});var cs=I((_$e,oY)=>{var mc=class{constructor(e,t){if(t=Tme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nY(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iY.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Mr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Mr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nY(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iY.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sY(i,t)&&e.set.some(n=>sY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Nme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Kme=r=>r.value==="",sY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Mr("comp",r,e),r=Yme(r,e),Mr("caret",r),r=Hme(r,e),Mr("tildes",r),r=qme(r,e),Mr("xrange",r),r=Wme(r,e),Mr("stars",r),r),_i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Mr("tilde",r,i,n,s,o,a);let l;return _i(n)?l="":_i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:_i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Mr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Mr("tilde return",l),l})},Yme=(r,e)=>r.trim().split(/\s+/).map(t=>Gme(t,e)).join(" "),Gme=(r,e)=>{Mr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Mr("caret",r,n,s,o,a,l);let c;return _i(s)?c="":_i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:_i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Mr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Mr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Mr("caret return",c),c})},qme=(r,e)=>(Mr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Mr("xRange",r,i,n,s,o,a,l);let c=_i(s),u=c||_i(o),g=u||_i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Mr("xRange return",i),i})},Wme=(r,e)=>(Mr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Mr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>(_i(i)?t="":_i(n)?t=`>=${i}.0.0${r?"-0":""}`:_i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,_i(c)?l="":_i(u)?l=`<${+c+1}.0.0-0`:_i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uY)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aY[AY.COMPARATORLOOSE]:aY[AY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lY(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lY(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uY.exports=Vg;var Zme=pd(),{re:aY,t:AY}=fc(),Qv=mv(),bv=hd(),lY=Li(),cY=cs()});var wd=I((eet,gY)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gY.exports=$me});var hY=I((tet,fY)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fY.exports=tEe});var dY=I((ret,pY)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pY.exports=nEe});var mY=I((iet,CY)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CY.exports=aEe});var yY=I((net,IY)=>{var Sv=Li(),AEe=cs(),EY=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EY(t,s))&&(t=s)}return t&&r.test(t)?t:null};IY.exports=lEe});var BY=I((set,wY)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wY.exports=uEe});var zI=I((oet,vY)=>{var gEe=Li(),SY=Id(),{ANY:fEe}=SY,hEe=cs(),pEe=wd(),QY=Cd(),bY=HI(),dEe=YI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=QY,s=dEe,o=bY,a=">",l=">=";break;case"<":n=bY,s=CEe,o=QY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c{p.semver===fEe&&(p=new SY(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vY.exports=mEe});var PY=I((aet,xY)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xY.exports=IEe});var DY=I((Aet,kY)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kY.exports=wEe});var TY=I((cet,FY)=>{var RY=cs(),BEe=(r,e,t)=>(r=new RY(r,t),e=new RY(e,t),r.intersects(e));FY.exports=BEe});var LY=I((uet,NY)=>{var QEe=wd(),bEe=ls();NY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var OY=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OY(r,t),e=new OY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MY(n,p,t):p.operator==="<"||p.operator==="<="?s=KY(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MY(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KY(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UY.exports=SEe});var zr=I((fet,jY)=>{var Pv=fc();jY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:Qj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Tj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:YI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hY(),maxSatisfying:dY(),minSatisfying:mY(),minVersion:yY(),validRange:BY(),outside:zI(),gtr:PY(),ltr:DY(),intersects:TY(),simplifyRange:LY(),subset:HY()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:YY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` `),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(` `);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),x=S.type==="Character";if(x){if(S.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var h=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var PEe=_I(),$I={},xEe=new PEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=xEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(Cn=>{"use strict";var REe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),xa=Rv(),WG="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zY=I(Cn=>{"use strict";var REe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var qY=_I(),us=Kt(),JY=ey(),Pa=Rv(),WY="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JY.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WY)e&&(0,us.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > `)+` Complement Sets cannot be automatically optimized. This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+` `+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+qG.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=xa.minOptimizationVal)for(var h=u.from>=xa.minOptimizationVal?u.from:xa.minOptimizationVal,p=u.to,d=(0,xa.charCodeToOptimizedIndex)(h),m=(0,xa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}Cn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,xa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,xa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,xa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=bd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(S,x){return x()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var x=S[ko];if((0,Se.isRegExp)(x)){var F=x.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!x.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(x):Nv(x)}else{if((0,Se.isFunction)(x))return n=!0,{exec:x};if((0,Se.has)(x,"exec"))return n=!0,x;if(typeof x=="string"){if(x.length===1)return x;var H=x.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var x=S.GROUP;if(x!==tr.Lexer.SKIPPED){if((0,Se.isString)(x))return x;if((0,Se.isUndefined)(x))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var x=S.LONGER_ALT;if(x){var F=(0,Se.isArray)(x)?(0,Se.map)(x,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,x)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(x){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(x){if((0,Se.has)(x,"LINE_BREAKS"))return x.LINE_BREAKS;if(lY(x,S)===!1)return(0,Zg.canMatchCharCode)(S,x.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,x){var F=x.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,x){return{pattern:s[x],longerAlt:l[x],canLineTerminator:g[x],isCustom:h[x],short:p[x],group:a[x],push:c[x],pop:u[x],tokenTypeIdx:o[x],tokenType:i[x]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,x,F){if(typeof x.PATTERN=="string"){var H=x.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(x.START_CHARS_HINT)){var _;(0,Se.forEach)(x.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(x.PATTERN))if(x.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+x.PATTERN.toString()+` > pattern. +`)+(" Using the regexp-to-ast library version: "+qY.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}Cn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&TEe(r,e)}function TEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function GY(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var NEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?GY(t,this.targetCharCodes)===void 0&&(this.found=!0):GY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qY.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JY.getRegExpAst)(e),i=new NEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VY=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XY=_I(),tr=Qd(),Se=Kt(),Zg=zY(),ZY=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Nv(P):Tv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Nv(q):Tv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uG(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lG(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AG),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. `)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(x.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+x.name+`> is using a custom token pattern without providing parameter. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.name+`> is using a custom token pattern without providing parameter. `)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_Y(r);t=t.concat(i.errors);var n=$Y(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sG(s)),t=t.concat(oG(s,e)),t=t.concat(aG(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eG(t)),e=e.concat(rG(t)),e=e.concat(iG(t)),e=e.concat(nG(t)),e=e.concat(tG(t)),e}function _Y(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_Y;function $Y(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$Y;var jEe=/[^\\][\$]/;function eG(r){var e=function(n){VY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XY.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var GEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eG;function tG(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tG;var YEe=/[^\\[][\^]|^\^/;function rG(r){var e=function(n){VY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XY.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return YEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findStartOfInputAnchor=rY;function iY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iY;function nY(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nY;function sY(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sY;function oY(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oY;function aY(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iG;function nG(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nG;function sG(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sG;function oG(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oG;function aG(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Tv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aG;function GEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Tv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Tv;function Nv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Nv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,We.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.MODES+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,We.MODES)&&(0,Se.has)(r,We.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+We.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,We.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:tr.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}We.performRuntimeChecks=JEe;function WEe(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[ko]===tr.Lexer.NA}),a=uY(t);return e&&(0,Se.forEach)(o,function(l){var c=lY(l,a);if(c!==!1){var u=cY(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. +`),type:tr.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}We.performRuntimeChecks=JEe;function WEe(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[ko]===tr.Lexer.NA}),a=uG(t);return e&&(0,Se.forEach)(o,function(l){var c=lG(l,a);if(c!==!1){var u=cG(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. This Lexer has been defined to track line and column information, But none of the Token Types can be identified as matching a line terminator. See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:tr.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}We.performWarningRuntimeChecks=WEe;function zEe(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}We.cloneEmptyGroups=zEe;function Ov(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}We.isCustomPattern=Ov;function AY(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}We.isShortPattern=AY;We.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type `)+(" Root cause: "+e.errMsg+`. `)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. `+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var bd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var Qd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Qd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=Qd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(Qd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Qd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Qd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cG;function uG(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gG(r);fG(e),pG(e),hG(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gG(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gG;function fG(r){(0,Vr.forEach)(r,function(e){dG(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CG(e)||(e.categoryMatches=[]),mG(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fG;function hG(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hG;function pG(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pG;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dG(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dG;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CG(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CG;function mG(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mG;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Qd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,rr.isArray)(e)?(s={modes:{}},s.modes[Zs.DEFAULT_MODE]=(0,rr.cloneArr)(e),s[Zs.DEFAULT_MODE]=Zs.DEFAULT_MODE):(o=!1,s=(0,rr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,rr.forEach)(s.modes,function(u,g){s.modes[g]=(0,rr.reject)(u,function(h){return(0,rr.isUndefined)(h)})});var a=(0,rr.keys)(s.modes);if((0,rr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.validatePatterns)(u,a))}),(0,rr.isEmpty)(i.lexerDefinitionErrors)){(0,eIe.augmentTokenTypes)(u);var h;i.TRACE_INIT("analyzeTokenTypes",function(){h=(0,Zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=h.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=h.charCodeToPatternIdxToConfig,i.emptyGroups=(0,rr.merge)(i.emptyGroups,h.emptyGroups),i.hasCustom=h.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=h.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,rr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,rr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- `);throw new Error(`Errors detected in definition of Lexer: `+c)}(0,rr.forEach)(i.lexerDefinitionWarning,function(u){(0,rr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Zs.SUPPORT_STICKY?(i.chopInput=rr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=rr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=rr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=rr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=rr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,rr.reduce)(i.canModeBeOptimized,function(g,h,p){return h===!1&&g.push(p),g},[]);if(t.ensureOptimizations&&!(0,rr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,x,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],xe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(xe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{xe.pop();var rs=(0,rr.last)(xe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){xe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;qc.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Tr=void 0,ti=void 0;O.lastIndex=0;do Tr=O.test(c),Tr===!0&&(ti=O.lastIndex-1,mt++);while(Tr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=bd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",bY="longer_alt",QY="line_breaks",SY="start_chars_hint";function PY(r){return lIe(r)}Si.createToken=PY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,bY)&&(t.LONGER_ALT=r[bY]),(0,_s.has)(r,QY)&&(t.LINE_BREAKS=r[QY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=PY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var mn=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var xY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=xY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof xY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),En=mn(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=mn(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var Pd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),wr=mn(),CIe=$g();function mIe(r){return r instanceof wr.Alternative||r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionMandatory||r instanceof wr.RepetitionMandatoryWithSeparator||r instanceof wr.RepetitionWithSeparator||r instanceof wr.Terminal||r instanceof wr.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionWithSeparator;return t?!0:r instanceof wr.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof wr.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof wr.AbstractProduction?(r instanceof wr.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof wr.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof wr.NonTerminal)return"SUBRULE";if(r instanceof wr.Option)return"OPTION";if(r instanceof wr.Alternation)return"OR";if(r instanceof wr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof wr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof wr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof wr.Repetition)return"MANY";if(r instanceof wr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=mn(),Yv=Pd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),bIe=qv(),YY=Kt(),qY=Jv(),QIe=mn(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new QIe.Alternative({definition:o}),l=(0,bIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var xd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),PIe=Kt(),$s=Kt(),Wv=mn(),VY=Pd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,T=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],T=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],T=ce.length,T=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;qc.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Nr=void 0,ti=void 0;O.lastIndex=0;do Nr=O.test(c),Nr===!0&&(ti=O.lastIndex-1,mt++);while(Nr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var TA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vG(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vG(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vG;var AIe="parent",EG="categories",IG="label",yG="group",wG="push_mode",BG="pop_mode",QG="longer_alt",bG="line_breaks",SG="start_chars_hint";function xG(r){return lIe(r)}Si.createToken=xG;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EG)&&(t.CATEGORIES=r[EG]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IG)&&(t.LABEL=r[IG]),(0,_s.has)(r,yG)&&(t.GROUP=r[yG]),(0,_s.has)(r,BG)&&(t.POP_MODE=r[BG]),(0,_s.has)(r,wG)&&(t.PUSH_MODE=r[wG]),(0,_s.has)(r,QG)&&(t.LONGER_ALT=r[QG]),(0,_s.has)(r,bG)&&(t.LINE_BREAKS=r[bG]),(0,_s.has)(r,SG)&&(t.START_CHARS_HINT=r[SG]),t}Si.EOF=xG({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var mn=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=TA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PG=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PG;var kG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kG;var DG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DG;var RG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RG;var FG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FG;var TG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=TG;var NG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=NG;var LG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LG;var OG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OG;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PG){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DG)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RG)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FG)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof TG)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LG)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof NG)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OG)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kG)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),En=mn(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MG(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MG(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MG(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=mn(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),wr=mn(),CIe=$g();function mIe(r){return r instanceof wr.Alternative||r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionMandatory||r instanceof wr.RepetitionMandatoryWithSeparator||r instanceof wr.RepetitionWithSeparator||r instanceof wr.Terminal||r instanceof wr.Rule}Mi.isSequenceProd=mIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionWithSeparator;return t?!0:r instanceof wr.Alternation?(0,vd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof wr.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof wr.AbstractProduction?(r instanceof wr.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Yv(i,e)})):!1}Mi.isOptionalProd=Yv;function EIe(r){return r instanceof wr.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof wr.NonTerminal)return"SUBRULE";if(r instanceof wr.Option)return"OPTION";if(r instanceof wr.Alternation)return"OR";if(r instanceof wr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof wr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof wr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof wr.Repetition)return"MANY";if(r instanceof wr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KG=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KG;var ly=new KG;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UG=mn(),Gv=xd();function uy(r){if(r instanceof UG.NonTerminal)return uy(r.referencedRule);if(r instanceof UG.Terminal)return YG(r);if((0,Gv.isSequenceProd)(r))return HG(r);if((0,Gv.isBranchingProd)(r))return jG(r);throw Error("non exhaustive match")}Fo.first=uy;function HG(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Gv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HG;function jG(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jG;function YG(r){return[r.terminalType]}Fo.firstForTerminal=YG});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zG=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),GG=Kt(),qG=Jv(),bIe=mn(),JG=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WG(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JG;function SIe(r){var e={};return(0,GG.forEach)(r,function(t){var i=new JG(t).startWalking();(0,GG.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WG(r,e){return r.name+e+qG.IN}gs.buildBetweenProdsFollowPrefix=WG;function vIe(r){var e=r.terminalType.name;return e+r.idx+qG.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=TA(),xIe=Kt(),$s=Kt(),Wv=mn(),VG=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` but found: '`+a+"'";if(n)return o+n+l;var c=(0,$s.reduce)(e,function(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences: `+g.join(` `);return o+h+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,$s.first)(t).image,a=` but found: '`+o+"'";if(i)return s+i+a;var l=(0,$s.map)(e,function(u){return"["+(0,$s.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,$s.first)(e),s=n.idx,o=(0,VY.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` +inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,$s.first)(e),s=n.idx,o=(0,VG.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` @@ -115,36 +115,36 @@ and Non-Terminal names start with a lower case letter.`;return e},buildAlternati For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,$s.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, `)+("<"+e+`> may appears as a prefix path in all these alternatives. `);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,VY.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,VG.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. `)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: `+(" inside <"+r.topLevelRule.name+`> Rule. - has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=PIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=xIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. `+("rule: <"+e+`> can be invoked from itself (directly or indirectly) `)+(`without consuming any Tokens. The grammar path that causes this is: `+i+` `)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var xIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){xIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Rr=>{"use strict";var Ic=Rr&&Rr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Rr,"__esModule",{value:!0});Rr.nextPossibleTokensAfter=Rr.possiblePathsFrom=Rr.NextTerminalAfterAtLeastOneSepWalker=Rr.NextTerminalAfterAtLeastOneWalker=Rr.NextTerminalAfterManySepWalker=Rr.NextTerminalAfterManyWalker=Rr.AbstractNextTerminalAfterProductionWalker=Rr.NextAfterTokenWalker=Rr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=mn(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Rr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Rr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Rr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Rr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=mn(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(x){return x.GATE}),u=0;u{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Br=Kt(),No=Yn(),_v=Pd(),tf=Rd(),ZIe=Dd(),eo=mn(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return eP(p,p,i)}),a=[],l=[],c=[];(0,Br.every)(o,Br.isEmpty)&&(a=(0,Br.map)(r,function(p){return fq(p,i)}),l=(0,Br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Br.map)(r,function(p){return dq(p,i)}),h=(0,Br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function eP(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),eP(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=eP;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tP=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tP;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tP;r.accept(i);var n=i.alternations;n=(0,Br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tP;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Br.isEmpty)((0,Br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Br.forEach)(l,function(u){var g=[c];(0,Br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(o,a,l){var c=(0,Br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var iP=Kt(),iye=_Y(),nye=rP(),Eq=xd();function sye(r){r=(0,iP.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,iP.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,iP.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(In=>{"use strict";var Nd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",bq="NotAllInputParsedException",Qq=[yq,wq,Bq,bq];Object.freeze(Qq);function Aye(r){return(0,aye.contains)(Qq,r.name)}In.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);In.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);In.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=bq,n}return e}(hy);In.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);In.EarlyExitException=gye});var sP=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nP(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nP;nP.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nP("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=Pd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var xq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function bye(r){return Dq(r.constructor)}OA.classNameFromInstance=bye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function Qye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=Qye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=oP();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n: +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _G=I(NA=>{"use strict";var PIe=NA&&NA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(NA,"__esModule",{value:!0});NA.GastRefResolverVisitor=NA.resolveGrammar=void 0;var kIe=Gn(),XG=Kt(),DIe=$g();function RIe(r,e){var t=new ZG(r,e);return t.resolveRefs(),t.errors}NA.resolveGrammar=RIe;var ZG=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XG.forEach)((0,XG.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);NA.GastRefResolverVisitor=ZG});var Dd=I(Rr=>{"use strict";var Ic=Rr&&Rr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Rr,"__esModule",{value:!0});Rr.nextPossibleTokensAfter=Rr.possiblePathsFrom=Rr.NextTerminalAfterAtLeastOneSepWalker=Rr.NextTerminalAfterAtLeastOneWalker=Rr.NextTerminalAfterManySepWalker=Rr.NextTerminalAfterManyWalker=Rr.AbstractNextTerminalAfterProductionWalker=Rr.NextAfterTokenWalker=Rr.AbstractNextPossibleTokensWalker=void 0;var $G=ay(),Lt=Kt(),FIe=qv(),kt=mn(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($G.RestWalker);Rr.AbstractNextPossibleTokensWalker=eq;var TIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Rr.NextAfterTokenWalker=TIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($G.RestWalker);Rr.AbstractNextTerminalAfterProductionWalker=kd;var NIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManyWalker=NIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Rr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=mn(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function YIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=YIe;function GIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=GIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Br=Kt(),To=Gn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=mn(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Br.every)(o,Br.isEmpty)&&(a=(0,Br.map)(r,function(p){return fq(p,i)}),l=(0,Br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Br.map)(r,function(p){return dq(p,i)}),h=(0,Br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:To.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:To.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:To.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:To.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:To.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:To.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Br.isEmpty)((0,Br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:To.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Br.forEach)(l,function(u){var g=[c];(0,Br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:To.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(o,a,l){var c=(0,Br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_G(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(In=>{"use strict";var Td=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}In.isRecognitionException=Aye;var hy=function(r){Td(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);In.MismatchedTokenException=lye;var cye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);In.NoViableAltException=cye;var uye=function(r){Td(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);In.NotAllInputParsedException=uye;var gye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);In.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=TA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Gn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.getKeyForAutomaticLookahead=Yt.AT_LEAST_ONE_SEP_IDX=Yt.MANY_SEP_IDX=Yt.AT_LEAST_ONE_IDX=Yt.MANY_IDX=Yt.OPTION_IDX=Yt.OR_IDX=Yt.BITS_FOR_ALT_IDX=Yt.BITS_FOR_RULE_IDX=Yt.BITS_FOR_OCCURRENCE_IDX=Yt.BITS_FOR_METHOD_TYPE=void 0;Yt.BITS_FOR_METHOD_TYPE=4;Yt.BITS_FOR_OCCURRENCE_IDX=8;Yt.BITS_FOR_RULE_IDX=12;Yt.BITS_FOR_ALT_IDX=8;Yt.OR_IDX=1<{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Gn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.addNoneTerminalToCst=No.addTerminalToCst=No.setNodeLocationFull=No.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Nd=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n: `+(""+s.join(` `).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var aP;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(aP=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:aP.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var Pye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(Pye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Tq(r,e),i=Nq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Tq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Tq;var xye=["constructor","visit","validateVisitor"];function Nq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor There is no Grammar Rule corresponding to this method's name. -`,type:aP.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=xq(),Xr=Kt(),Oq=Lq(),xye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:xye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),AP=Yn(),Fye=xd(),Nye=rP(),Tye=mn(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=AP.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:AP.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=AP.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sP(),qq=NA(),Ld=_g(),Mye=oP(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Nq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Gn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Gn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Gn(),Fye=Pd(),Tye=rx(),Nye=mn(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Tye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Nye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var xr=Kt(),qn=dy(),yy=nf(),Yq=Rd(),of=Dd(),Gq=Gn(),Oye=sx(),qq=TA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,xr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + For Further details.`);if((0,xr.isArray)(e)){if((0,xr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. Note that the first argument for the parser constructor is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lP=nf(),cP=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cP.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lP.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cP.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cP.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lP.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lP.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();by.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var yn=Kt(),Lo=mn(),Gye=bd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase + For Further details.`)}if((0,xr.isArray)(e))this.tokensMap=(0,xr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,xr.has)(e,"modes")&&(0,xr.every)((0,xr.flatten)((0,xr.values)(e.modes)),Ld.isTokenType)){var i=(0,xr.flatten)((0,xr.values)(e.modes)),n=(0,xr.uniq)(i);this.tokensMap=(0,xr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,xr.isObject)(e))this.tokensMap=(0,xr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,xr.every)((0,xr.values)(e),function(o){return(0,xr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,xr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,xr.has)(i,"resyncEnabled")?i.resyncEnabled:Gq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,xr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Gq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,xr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,xr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Gn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var yn=Kt(),Lo=mn(),Yye=Qd(),tJ=_g(),rJ=TA(),Gye=Gn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Yye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Yye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Gye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Qy(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(Qy(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),Qy(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;Qy(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function Qy(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();Py.PerformanceTracer=Xye});var AJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}xy.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var $i=Kt(),_ye=zY(),lJ=NA(),gJ=xd(),cJ=Iq(),$ye=sP(),ewe=Pq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,$i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Gn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Gn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var $i=Kt(),_ye=zG(),lJ=TA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,$i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. Please use the flag on the relevant DSL method instead. See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES For further details.`);this.skipValidations=(0,$i.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,$i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,$i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,$i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,$i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,$i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,$i.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,$i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,$i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,$i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,$i.isEmpty)(e.definitionErrors))throw t=(0,$i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: @@ -178,62 +178,62 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis var diagramsDiv = document.getElementById("diagrams"); main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv); <\/script> -`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=bd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=xd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=mn();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=mn();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. +`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Gn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=TA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=mn();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=mn();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. It performs no action other than printing this message. Please avoid using it as it will be completely removed in the future`)}qe.clearCache=Ewe;var Iwe=hJ();Object.defineProperty(qe,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Iwe.createSyntaxDiagramsCode}});var ywe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,uP=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:uP.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:uP.SKIPPED}),t,i,n,o,a,s,e,l],g=new uP(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),x=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||x(F):mJ(S,i)?y=F=>!!(B(F)^x(F)):y=F=>B(F)&&x(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gP=I((stt,QJ)=>{var Kd=BJ(),bJ={};for(let r of Object.keys(Kd))bJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};QJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function bwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=bJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=bwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ty=gP();function Qwe(){let r={},e=Object.keys(Ty);for(let t=e.length,i=0;i{var fP=gP(),xwe=vJ(),Af={},kwe=Object.keys(fP);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fP[r].channels}),Object.defineProperty(Af[r],"labels",{value:fP[r].labels});let e=xwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});PJ.exports=Af});var TJ=I((Att,NJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hP,cf=(r,e,t,i)=>{hP===void 0&&(hP=xJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hP)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(NJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Nwe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function pP(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dP(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Nwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Twe(r){let e=dP(r,r&&r.isTTY);return pP(e)}KJ.exports={supportsColor:Twe,stdout:pP(dP(!0,MJ.isatty(1))),stderr:pP(dP(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Ta=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Ta({name:"LogicalOperator",pattern:ux.NA}),t=Ta({name:"Or",pattern:/\|/,categories:e}),i=Ta({name:"Xor",pattern:/\^/,categories:e}),n=Ta({name:"And",pattern:/&/,categories:e}),s=Ta({name:"Not",pattern:/!/}),o=Ta({name:"LParen",pattern:/\(/}),a=Ta({name:"RParen",pattern:/\)/}),l=Ta({name:"Query",pattern:r}),u=[Ta({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ty=>{var Bwe=IJ();Ty.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ty.parse=Ty.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,bJ)=>{var Kd=BJ(),QJ={};for(let r of Object.keys(Kd))QJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};bJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function Qwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=QJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=Qwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ny=gx();function bwe(){let r={},e=Object.keys(Ny);for(let t=e.length,i=0;i{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var NJ=I((Att,TJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(TJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Twe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Twe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Nwe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Nwe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r `:` `)+t,n=i+1,i=r.indexOf(` -`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wP=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mP,stderr:EP}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mP?mP.level:0;r.level=e.level===void 0?t:e.level},IP=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=IP,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yP(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yP(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yP(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yP=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},CP,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=BP(r,e,"-",!1,t)||[],n=BP(e,r,"",!1,t)||[],s=BP(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function BP(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var SP=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),bP=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),QP=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=QP(a)||QP(l)||QP(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&bP(r))return[r];if(!bP(r)||!bP(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=SP(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var b3=I((Itt,B3)=>{"use strict";var fBe=SP(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";Q3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vP,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:P3,CHAR_RIGHT_SQUARE_BRACKET:x3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:bBe,CHAR_NO_BREAK_SPACE:QBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),PBe=y3(),xBe=b3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),PBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=xBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((btt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",PP=`(?:${jy}|$)`,O3=`(?:^|${jy})`,xP=`${Ta}{1,2}${PP}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${xP})`,OBe=`(?!${Ta}{0,1}${PP})`,MBe=`(?!${xP})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:PP,DOTS_SLASH:xP,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(wn=>{"use strict";var GBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Gd();wn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);wn.hasRegexChars=r=>WBe.test(r);wn.isRegexChar=r=>r.length===1&&wn.hasRegexChars(r);wn.escapeRegex=r=>r.replace(zBe,"\\$1");wn.toPosixSlashes=r=>r.replace(qBe,"/");wn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);wn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};wn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||GBe.sep==="\\";wn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?wn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};wn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};wn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kP,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:DP,CHAR_EXCLAMATION_MARK:RP,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:FP,CHAR_LEFT_PARENTHESES:NP,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Gd(),G3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,x=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&G3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let N={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:x,negatedExtglob:F};if(t.tokens===!0&&(N.maxDepth=0,G3(X)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he{"use strict";var Gy=Gd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Gy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,TP=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Gy.globChars(l),u=Gy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:x,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=G=>`(${a}(?:(?!${q}${G.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?x:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,N,ce=()=>A.index===n-1,he=A.peek=(G=1)=>r[A.index+G],xe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(G="",fe=0)=>{A.consumed+=G,A.index+=fe},se=G=>{A.output+=G.output!=null?G.output:G.value,Re(G.value)},Ae=()=>{let G=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)xe(),A.start++,G++;return G%2===0?!1:(A.negated=!0,A.start++,!0)},ye=G=>{A[G]++,te.push(G)},ge=G=>{A[G]--,te.pop()},oe=G=>{if(O.type==="globstar"){let fe=A.braces>0&&(G.type==="comma"||G.type==="brace"),re=G.extglob===!0||ne.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&G.type!=="paren"&&(ne[ne.length-1].inner+=G.value),(G.value||G.output)&&se(G),O&&O.type==="text"&&G.type==="text"){O.value+=G.value,O.output=(O.output||"")+G.value;return}G.prev=O,o.push(G),O=G},Ye=(G,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:G,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:xe(),output:de}),ne.push(re)},ie=G=>{let fe=G.close+(t.capture?")":""),re;if(G.type==="negate"){let de=Z;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=G.close=`)$))${de}`),G.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=TP(re,{...e,fastpaths:!1}).output;fe=G.close=`)${Ze})${de})`}G.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:N,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let G=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Tr)=>vt==="\\"?(G=!0,re):vt==="?"?de?de+vt+(mt?x.repeat(mt.length):""):Tr===0?W+(mt?x.repeat(mt.length):""):x.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return G===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(N=xe(),N==="\0")continue;if(N==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){N+="\\",oe({type:"text",value:N});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(N+="\\")),t.unescape===!0?N=xe():N+=xe(),A.brackets===0){oe({type:"text",value:N});continue}}if(A.brackets>0&&(N!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&N===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,xe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(N==="["&&he()!==":"||N==="-"&&he()==="]")&&(N=`\\${N}`),N==="]"&&(O.value==="["||O.value==="[^")&&(N=`\\${N}`),t.posix===!0&&N==="!"&&O.value==="["&&(N="^"),O.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='"'){N=Wn.escapeRegex(N),O.value+=N,se({value:N});continue}if(N==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:N});continue}if(N==="("){ye("parens"),oe({type:"paren",value:N});continue}if(N===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:N,output:A.parens?")":"\\)"}),ge("parens");continue}if(N==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));N=`\\${N}`}else ye("brackets");oe({type:"bracket",value:N});continue}if(N==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:N,output:`\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:N,output:`\\${N}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(N=`/${N}`),O.value+=N,se({value:N}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(N==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:N,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(N==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:N,output:N});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",N=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:N,output:de}),ge("braces"),ue.pop();continue}if(N==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:N});continue}if(N===","){let re=N,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:N,output:re});continue}if(N==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:N,output:p});continue}if(N==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=N,O.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:N,output:g});continue}oe({type:"dot",value:N,output:g});continue}if(N==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",N);continue}if(O&&O.type==="paren"){let de=he(),Ze=N;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${N}`),oe({type:"text",value:N,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:N,output:F});continue}oe({type:"qmark",value:N,output:x});continue}if(N==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",N);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:N,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:N});continue}oe({type:"plus",value:h});continue}if(N==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:N,output:""});continue}oe({type:"text",value:N});continue}if(N!=="*"){(N==="$"||N==="^")&&(N=`\\${N}`);let re=i0e.exec(De());re&&(N+=re[0],A.index+=re[0].length),oe({type:"text",value:N});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=N,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(N);continue}let G=De();if(t.noextglob!==!0&&/^\([^?]/.test(G)){Ye("star",N);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(N);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||G[0]&&G[0]!=="/")){oe({type:"star",value:N,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Tr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Tr){oe({type:"star",value:N,output:""});continue}for(;G.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;G=G.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=N,O.output=_(t),A.output=O.output,A.globstar=!0,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=N,A.globstar=!0,A.output+=re.output+O.output,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&G[0]==="/"){let ti=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=N,A.output+=re.output+O.output,A.globstar=!0,Re(N+xe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&G[0]==="/"){O.type="globstar",O.value+=N,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(N+xe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=N,A.output+=O.output,A.globstar=!0,Re(N);continue}let fe={type:"star",value:N,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=N,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};TP.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Gy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},x=t.bash===!0?".*?":p;t.capture&&(x=`(${x})`);let F=X=>X.noglobstar===!0?x:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${x}`;case".*":return`${o}${l}${x}`;case"*.*":return`${m}${x}${o}${l}${x}`;case"*/*":return`${m}${x}${a}${l}${y}${x}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${x}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${x}${o}${l}${x}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${x}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=TP});var _3=I((Ptt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),LP=X3(),OP=Yd(),A0e=Gd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Kr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Kr(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=OP.isWindows(e),o=i?Kr.compileRe(r,e):Kr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Kr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Kr.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Kr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?OP.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Kr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Kr.matchBase=(r,e,t,i=OP.isWindows(t))=>(e instanceof RegExp?e:Kr.makeRe(e,t)).test(o0e.basename(r));Kr.isMatch=(r,e,t)=>Kr(e,t)(r);Kr.parse=(r,e)=>Array.isArray(r)?r.map(t=>Kr.parse(t,e)):LP(r,{...e,fastpaths:!1});Kr.scan=(r,e)=>a0e(r,e);Kr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Kr.toRegex(a,e);return i===!0&&(l.state=r),l};Kr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=LP.fastpaths(r,e)),n.output||(n=LP(r,e)),Kr.compileRe(n,e,t,i)};Kr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Kr.constants=A0e;Z3.exports=Kr});var MP=I((xtt,$3)=>{"use strict";$3.exports=_3()});var Bn=I((ktt,iW)=>{"use strict";var tW=J("util"),rW=N3(),Ko=MP(),KP=Yd(),eW=r=>r===""||r==="./",br=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};br.match=br;br.matcher=(r,e)=>Ko(r,e);br.isMatch=(r,e,t)=>Ko(e,t)(r);br.any=br.isMatch;br.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=br(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};br.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>br.contains(r,i,t));if(typeof e=="string"){if(eW(r)||eW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return br.isMatch(r,e,{...t,contains:!0})};br.matchKeys=(r,e,t)=>{if(!KP.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=br(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};br.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};br.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};br.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};br.capture=(r,e,t)=>{let i=KP.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?KP.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};br.makeRe=(...r)=>Ko.makeRe(...r);br.scan=(...r)=>Ko.scan(...r);br.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of rW(String(i),e))t.push(Ko.parse(n,e));return t};br.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:rW(r,e)};br.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return br.braces(r,{...e,expand:!0})};iW.exports=br});var sW=I((Dtt,nW)=>{"use strict";nW.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var aW=I((Rtt,oW)=>{"use strict";var c0e=sW();oW.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var yW=I((Gtt,IW)=>{"use strict";IW.exports=(...r)=>[...new Set([].concat(...r))]});var sx=I((Ytt,bW)=>{"use strict";var B0e=J("stream"),wW=B0e.PassThrough,b0e=Array.prototype.slice;bW.exports=Q0e;function Q0e(){let r=[],e=!1,t=b0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=wW(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var SW=I(ox=>{"use strict";Object.defineProperty(ox,"__esModule",{value:!0});function P0e(r){return r.code==="ENOENT"}ox.isEnoentCodeError=P0e});var vW=I(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var ax=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function x0e(r,e){return new ax(r,e)}Ax.createDirentFromStats=x0e});var PW=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function N0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=N0e;function T0e(r){return r.replace(R0e,"\\$2")}yf.escape=T0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var kW=I((Vtt,xW)=>{xW.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var FW=I((Xtt,RW)=>{var O0e=kW(),DW={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=DW[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var U0e=FW(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lx="/",G0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;NW.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lx)<0&&(e=e.replace(G0e,lx)),Y0e.test(e)&&(e+=lx),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var YW=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=TW(),LW=Bn(),V0e=MP(),OW="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,ebe=/[!*+?@]\(.*\)/,tbe=/{.*(?:,|\.\.).*}/;function MW(r,e={}){return!KW(r,e)}Zr.isStaticPattern=MW;function KW(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&ebe.test(r)||e.braceExpansion!==!1&&tbe.test(r))}Zr.isDynamicPattern=KW;function rbe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rbe;function ibe(r){return"!"+r}Zr.convertToNegativePattern=ibe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function UW(r){return!Zy(r)}Zr.isPositivePattern=UW;function nbe(r){return r.filter(Zy)}Zr.getNegativePatterns=nbe;function sbe(r){return r.filter(UW)}Zr.getPositivePatterns=sbe;function obe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=obe;function abe(r){return r.includes(OW)}Zr.hasGlobStar=abe;function HW(r){return r.endsWith("/"+OW)}Zr.endsWithSlashGlobStar=HW;function Abe(r){let e=W0e.basename(r);return HW(r)||MW(e)}Zr.isAffectDepthOfReadingPattern=Abe;function lbe(r){return r.reduce((e,t)=>e.concat(jW(t)),[])}Zr.expandPatternsWithBraceExpansion=lbe;function jW(r){return LW.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=jW;function cbe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cbe;function GW(r,e){return LW.makeRe(r,e)}Zr.makeRe=GW;function ube(r,e){return r.map(t=>GW(t,e))}Zr.convertPatternsToRe=ube;function gbe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gbe});var JW=I(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var fbe=sx();function hbe(r){let e=fbe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>qW(r)),e.once("end",()=>qW(r)),e}cx.merge=hbe;function qW(r){r.forEach(e=>e.emit("close"))}});var WW=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pbe(r){return typeof r=="string"}_y.isString=pbe;function dbe(r){return r===""}_y.isEmpty=dbe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var Cbe=QW();Oa.array=Cbe;var mbe=SW();Oa.errno=mbe;var Ebe=vW();Oa.fs=Ebe;var Ibe=PW();Oa.path=Ibe;var ybe=YW();Oa.pattern=ybe;var wbe=JW();Oa.stream=wbe;var Bbe=WW();Oa.string=Bbe});var _W=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function bbe(r,e){let t=zW(r),i=VW(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=ux(n,i,!1),a=ux(s,i,!0);return o.concat(a)}Ka.generate=bbe;function ux(r,e,t){let i=XW(r);return"."in i?[gx(".",r,e,t)]:ZW(i,e,t)}Ka.convertPatternsToTasks=ux;function zW(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=zW;function VW(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=VW;function XW(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=XW;function ZW(r,e,t){return Object.keys(r).map(i=>gx(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=ZW;function gx(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gx});var e4=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function Qbe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$W(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fx(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$W(t,s);return}fx(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fx(t,o)})})}$y.read=Qbe;function $W(r,e){r(e)}function fx(r,e){r(null,e)}});var t4=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function Sbe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=Sbe});var r4=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vbe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vbe});var i4=I(px=>{"use strict";Object.defineProperty(px,"__esModule",{value:!0});var Pbe=r4(),hx=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=Pbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};px.default=hx});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var n4=e4(),xbe=t4(),dx=i4();UA.Settings=dx.default;function kbe(r,e,t){if(typeof e=="function"){n4.read(r,Cx(),e);return}n4.read(r,Cx(e),t)}UA.stat=kbe;function Dbe(r,e){let t=Cx(e);return xbe.read(r,t)}UA.statSync=Dbe;function Cx(r={}){return r instanceof dx.default?r:new dx.default(r)}});var o4=I((Art,s4)=>{s4.exports=Rbe;function Rbe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mx=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var a4=Number.parseInt(rw[0],10),Fbe=Number.parseInt(rw[1],10),A4=10,Nbe=10,Tbe=a4>A4,Lbe=a4===A4&&Fbe>=Nbe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Tbe||Lbe});var l4=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var Ex=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function Obe(r,e){return new Ex(r,e)}nw.createDirentFromStats=Obe});var Ix=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var Mbe=l4();sw.fs=Mbe});var yx=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function Kbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=Kbe});var p4=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var Ube=vc(),c4=o4(),Hbe=mx(),u4=Ix(),g4=yx();function jbe(r,e,t){if(!e.stats&&Hbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){f4(r,e,t);return}h4(r,e,t)}HA.read=jbe;function f4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:g4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wx(t,s);return}let o=s.map(a=>Gbe(a,e));c4(o,(a,l)=>{if(a!==null){aw(t,a);return}wx(t,l)})})}HA.readdirWithFileTypes=f4;function Gbe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=u4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function h4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=g4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{Ube.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:u4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});c4(s,(o,a)=>{if(o!==null){aw(t,o);return}wx(t,a)})})}HA.readdir=h4;function aw(r,e){r(e)}function wx(r,e){r(null,e)}});var I4=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var Ybe=vc(),qbe=mx(),d4=Ix(),C4=yx();function Jbe(r,e){return!e.stats&&qbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?m4(r,e):E4(r,e)}jA.read=Jbe;function m4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:C4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=d4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=m4;function E4(r,e){return e.fs.readdirSync(r).map(i=>{let n=C4.joinPathSegments(r,i,e.pathSegmentSeparator),s=Ybe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:d4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=E4});var y4=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.createFileSystemAdapter=GA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");GA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function Wbe(r){return r===void 0?GA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},GA.FILE_SYSTEM_ADAPTER),r)}GA.createFileSystemAdapter=Wbe});var w4=I(bx=>{"use strict";Object.defineProperty(bx,"__esModule",{value:!0});var zbe=J("path"),Vbe=vc(),Xbe=y4(),Bx=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=Xbe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zbe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new Vbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};bx.default=Bx});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var B4=p4(),Zbe=I4(),Qx=w4();YA.Settings=Qx.default;function _be(r,e,t){if(typeof e=="function"){B4.read(r,Sx(),e);return}B4.read(r,Sx(e),t)}YA.scandir=_be;function $be(r,e){let t=Sx(e);return Zbe.read(r,t)}YA.scandirSync=$be;function Sx(r={}){return r instanceof Qx.default?r:new Qx.default(r)}});var Q4=I((mrt,b4)=>{"use strict";function eQe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}b4.exports=eQe});var v4=I((Ert,vx)=>{"use strict";var tQe=Q4();function S4(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tQe(rQe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:x,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nQe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nQe;function sQe(r,e){return r===null||r(e)}jo.isAppliedFilter=sQe;function oQe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=oQe;function aQe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=aQe});var kx=I(xx=>{"use strict";Object.defineProperty(xx,"__esModule",{value:!0});var AQe=lw(),Px=class{constructor(e,t){this._root=e,this._settings=t,this._root=AQe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};xx.default=Px});var Fx=I(Rx=>{"use strict";Object.defineProperty(Rx,"__esModule",{value:!0});var lQe=J("events"),cQe=Aw(),uQe=v4(),cw=lw(),gQe=kx(),Dx=class extends gQe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cQe.scandir,this._emitter=new lQe.EventEmitter,this._queue=uQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};Rx.default=Dx});var P4=I(Tx=>{"use strict";Object.defineProperty(Tx,"__esModule",{value:!0});var fQe=Fx(),Nx=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hQe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pQe(e,[...this._storage])}),this._reader.read()}};Tx.default=Nx;function hQe(r,e){r(e)}function pQe(r,e){r(null,e)}});var x4=I(Ox=>{"use strict";Object.defineProperty(Ox,"__esModule",{value:!0});var dQe=J("stream"),CQe=Fx(),Lx=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new CQe.default(this._root,this._settings),this._stream=new dQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};Ox.default=Lx});var k4=I(Kx=>{"use strict";Object.defineProperty(Kx,"__esModule",{value:!0});var mQe=Aw(),uw=lw(),EQe=kx(),Mx=class extends EQe.default{constructor(){super(...arguments),this._scandir=mQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};Kx.default=Mx});var D4=I(Hx=>{"use strict";Object.defineProperty(Hx,"__esModule",{value:!0});var IQe=k4(),Ux=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new IQe.default(this._root,this._settings)}read(){return this._reader.read()}};Hx.default=Ux});var R4=I(Gx=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var yQe=J("path"),wQe=Aw(),jx=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,yQe.sep),this.fsScandirSettings=new wQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};Gx.default=jx});var qx=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Settings=Go.walkStream=Go.walkSync=Go.walk=void 0;var F4=P4(),BQe=x4(),bQe=D4(),Yx=R4();Go.Settings=Yx.default;function QQe(r,e,t){if(typeof e=="function"){new F4.default(r,gw()).read(e);return}new F4.default(r,gw(e)).read(t)}Go.walk=QQe;function SQe(r,e){let t=gw(e);return new bQe.default(r,t).read()}Go.walkSync=SQe;function vQe(r,e){let t=gw(e);return new BQe.default(r,t).read()}Go.walkStream=vQe;function gw(r={}){return r instanceof Yx.default?r:new Yx.default(r)}});var zx=I(Wx=>{"use strict";Object.defineProperty(Wx,"__esModule",{value:!0});var PQe=J("path"),xQe=vc(),N4=Ma(),Jx=class{constructor(e){this._settings=e,this._fsStatSettings=new xQe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return PQe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:N4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!N4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};Wx.default=Jx});var Zx=I(Xx=>{"use strict";Object.defineProperty(Xx,"__esModule",{value:!0});var kQe=J("stream"),DQe=vc(),RQe=qx(),FQe=zx(),Vx=class extends FQe.default{constructor(){super(...arguments),this._walkStream=RQe.walkStream,this._stat=DQe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};Xx.default=Vx});var T4=I($x=>{"use strict";Object.defineProperty($x,"__esModule",{value:!0});var Bf=Ma(),_x=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$x.default=_x});var L4=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var NQe=T4(),ek=class extends NQe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var O4=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),TQe=L4(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new TQe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var M4=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var K4=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var LQe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return LQe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var H4=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var U4=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=U4.path.makeAbsolute(this._settings.cwd,t),t=U4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var OQe=J("path"),MQe=O4(),KQe=M4(),UQe=K4(),HQe=H4(),ck=class{constructor(e){this._settings=e,this.errorFilter=new UQe.default(this._settings),this.entryFilter=new KQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new MQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new HQe.default(this._settings)}_getRootDirectory(e){return OQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var j4=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jQe=Zx(),GQe=hw(),gk=class extends GQe.default{constructor(){super(...arguments),this._reader=new jQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var G4=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var YQe=J("stream"),qQe=Zx(),JQe=hw(),hk=class extends JQe.default{constructor(){super(...arguments),this._reader=new qQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new YQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var Y4=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var WQe=vc(),zQe=qx(),VQe=zx(),dk=class extends VQe.default{constructor(){super(...arguments),this._walkSync=zQe.walkSync,this._statSync=WQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var q4=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var XQe=Y4(),ZQe=hw(),mk=class extends ZQe.default{constructor(){super(...arguments),this._reader=new XQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var J4=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var bf=J("fs"),_Qe=J("os"),$Qe=_Qe.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:bf.lstat,lstatSync:bf.lstatSync,stat:bf.stat,statSync:bf.statSync,readdir:bf.readdir,readdirSync:bf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$Qe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Grt,z4)=>{"use strict";var W4=_W(),eSe=j4(),tSe=G4(),rSe=q4(),yk=J4(),Pc=Ma();async function wk(r,e){Qf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return Pc.array.flatten(i)}(function(r){function e(o,a){Qf(o);let l=Bk(o,rSe.default,a);return Pc.array.flatten(l)}r.sync=e;function t(o,a){Qf(o);let l=Bk(o,tSe.default,a);return Pc.stream.merge(l)}r.stream=t;function i(o,a){Qf(o);let l=[].concat(o),c=new yk.default(a);return W4.generate(l,c)}r.generateTasks=i;function n(o,a){Qf(o);let l=new yk.default(a);return Pc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Qf(o),Pc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=W4.generate(i,n),o=new e(n);return s.map(o.read,o)}function Qf(r){if(![].concat(r).every(i=>Pc.string.isString(i)&&!Pc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}z4.exports=wk});var X4=I(xc=>{"use strict";var{promisify:iSe}=J("util"),V4=J("fs");async function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(V4[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return V4[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}xc.isFile=bk.bind(null,"stat","isFile");xc.isDirectory=bk.bind(null,"stat","isDirectory");xc.isSymlink=bk.bind(null,"lstat","isSymbolicLink");xc.isFileSync=Qk.bind(null,"statSync","isFile");xc.isDirectorySync=Qk.bind(null,"statSync","isDirectory");xc.isSymlinkSync=Qk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),Z4=X4(),_4=r=>r.length>1?`{${r.join(",")}}`:r[0],$4=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_4(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_4(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await Z4.isDirectory($4(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>Z4.isDirectorySync($4(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,Pk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),xk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new xk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(Pk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(Pk)+Pk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],bSe=wSe(g8.readFile),QSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(QSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),PSe=async(r,e)=>{let t=Ha.join(e,r),i=await bSe(t,"utf8");return{cwd:e,filePath:t,content:i}},xSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>PSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>xSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Nk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Nk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=yW(),DSe=sx(),Ew=pw(),Iw=t8(),Tk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",NSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},TSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),NSe(r),TSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],b8=r=>r&&r.gitignore?Tk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Tk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=b8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=b8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Tk});var vn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var G8=I((dit,j8)=>{var tve=Is(),rve=function(){return tve.Date.now()};j8.exports=rve});var q8=I((Cit,Y8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Nc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Nc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Tc=I((wit,iz)=>{var tz=Nc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((bit,sz)=>{var wve=Tc(),Bve=Jo(),bve="[object Symbol]";function Qve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==bve}sz.exports=Qve});var lz=I((Qit,Az)=>{var Sve=W8(),oz=vn(),vve=fC(),az=0/0,Pve=/^[-+]0x[0-9a-f]+$/i,xve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=xve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):Pve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=vn(),zk=G8(),cz=lz(),Nve="Expected a function",Tve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Nve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Tve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function x(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=x,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=vn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((Ga,Gw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var bz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function tPe(r){return bz.includes(r)}var rPe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...bz];function iPe(r){return rPe.includes(r)}var nPe=["null","undefined","string","number","bigint","boolean","symbol"];function sPe(r){return nPe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:Qz}=Object.prototype,mC=r=>{let e=Qz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(iPe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oPe=Lf("number");V.number=r=>oPe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var aPe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||aPe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sPe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(Qz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>tPe(mC(r));var APe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&APe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lPe=1,cPe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lPe&&V.string(r.nodeName)&&!V.plainObject(r)&&cPe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uPe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uPe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=V;Gw.exports=V;Gw.exports.default=V;Gw.exports.assert=Ga.assert});var Pz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var xz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gPe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gPe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fPe=xz(),hPe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hPe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fPe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,QD)=>{"use strict";var{V4MAPPED:pPe,ADDRCONFIG:dPe,ALL:Lz,promises:{Resolver:Dz},lookup:CPe}=J("dns"),{promisify:BD}=J("util"),mPe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),bD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),EPe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},IPe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Nz=()=>{let r=!1,e=!1;for(let t of Object.values(mPe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yPe=r=>Symbol.iterator in r,Tz={ttl:!0},wPe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=CPe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Nz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pPe&&(EPe&&t.hints&Lz||n.length===0)?IPe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dPe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Tz),this._resolve6(e,Tz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yPe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wPe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[bD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[bD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Nz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};QD.exports=qw;QD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var BPe=typeof URL>"u"?J("url").URL:URL,bPe="text/plain",QPe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),SPe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===QPe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==bPe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return SPe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new BPe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Gz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Yz=Gz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var xD=I((Ent,Wz)=>{var vPe=PD(),PPe=function(){},xPe=function(r){return r.setHeader&&typeof r.abort=="function"},kPe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vPe(t||PPe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return xPe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kPe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var DPe=PD(),RPe=xD(),kD=J("fs"),EC=function(){},FPe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},NPe=function(r){return!FPe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},TPe=function(r){return r.setHeader&&Ww(r.abort)},LPe=function(r,e,t,i){i=DPe(i);var n=!1;r.on("close",function(){n=!0}),RPe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,NPe(r))return r.close(EC);if(TPe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},OPe=function(r,e){return r.pipe(e)},MPe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return LPe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(OPe)};Vz.exports=MPe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:KPe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new KPe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var UPe=Xz(),HPe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=UPe(r,HPe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((bnt,e5)=>{"use strict";var jPe=new Set([200,203,204,206,300,301,404,405,410,414,501]),GPe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),YPe=new Set([500,502,503,504]),qPe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},JPe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function WPe(r){return r?YPe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zPe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zPe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&GPe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jPe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qPe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&WPe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!JPe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((Qnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var VPe=J("stream").Readable,XPe=Xw(),RD=class extends VPe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=XPe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var ZPe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(ZPe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((Pnt,a5)=>{"use strict";var _Pe=J("stream").PassThrough,$Pe=o5(),exe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _Pe;return $Pe(r,e),r.pipe(e)};a5.exports=exe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var txe=J("events"),c5=l5(),rxe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},ND=class extends txe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rxe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=ND});var p5=I((Rnt,h5)=>{"use strict";var ixe=J("events"),Zw=J("url"),nxe=Uz(),sxe=$z(),TD=t5(),f5=n5(),oxe=Xw(),axe=A5(),Axe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Axe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lxe(n)},t.headers=oxe(t.headers);let s=new ixe,o=nxe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=TD.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let x=S.policy.responseHeaders();y=new f5(l.statusCode,x,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new TD(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=axe(y),(async()=>{try{let S=sxe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let x=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:x},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=TD.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lxe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Tnt,d5)=>{"use strict";var cxe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cxe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uxe,PassThrough:gxe}=J("stream"),OD=J("zlib"),fxe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uxe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gxe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fxe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,b5)=>{"use strict";var hxe=J("events"),pxe=J("tls"),dxe=J("http2"),Cxe=KD(),sn=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mxe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Exe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},Ixe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].lengthe[ws].includes(i))&&t[sn]+e[sn]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yxe=(r,e)=>{for(let t of r)e[ws].lengtht[ws].includes(i))&&e[sn]+t[sn]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]{r[Uf]=!0,r[sn]===0&&r.close()},Wo=class extends hxe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Cxe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mxe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dxe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[sn]=0,h[Uf]=!1;let p=()=>h[sn]{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(Exe(B,h,Ixe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[sn]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[sn],h[sn]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[sn],!h.destroyed&&!h.closed&&(yxe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let x=h[sn]===0;x&&h.unref(),x&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pxe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[sn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=sn;Wo.kGracefullyClosing=Uf;b5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,Q5)=>{"use strict";var{Readable:wxe}=J("stream"),jD=class extends wxe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Q5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var P5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,x5)=>{"use strict";x5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var Bxe=J("http2"),{Writable:bxe}=J("stream"),{Agent:F5,globalAgent:Qxe}=HD(),Sxe=GD(),vxe=YD(),Pxe=P5(),xxe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kxe,ERR_HTTP_HEADERS_SENT:N5,ERR_INVALID_HTTP_TOKEN:Dxe,ERR_HTTP_INVALID_HEADER_VALUE:Rxe,ERR_INVALID_CHAR:Fxe}=R5(),{HTTP2_HEADER_STATUS:T5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:Nxe}=Bxe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),Txe=/^[\^`\-\w!#$%&*+.|~]+$/,Lxe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends bxe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vxe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=Qxe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kxe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===Nxe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||Pxe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new Sxe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[T5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[T5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new N5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new N5("set");if(typeof e!="string"||!Txe.test(e)&&!xxe(e))throw new Dxe("Header name",e);if(typeof t>"u")throw new Rxe(t,e);if(Lxe.test(t))throw new Fxe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var Oxe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=Oxe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var G5=I((Wnt,j5)=>{"use strict";var Mxe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),Mxe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),Kxe=H5(),Uxe=KD(),Hxe=VD(),jxe=G5(),Gxe=YD(),$w=new Uxe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},Yxe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=Kxe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=Gxe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jxe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await Yxe(e)==="h2"?(n&&(e.agent=n.http2),new Hxe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qxe=J("http2"),Jxe=HD(),_D=VD(),Wxe=GD(),zxe=J5(),Vxe=(r,e,t)=>new _D(r,e,t),Xxe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qxe,ClientRequest:_D,IncomingMessage:Wxe,...Jxe,request:Vxe,get:Xxe,auto:zxe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),Zxe=eR(),_xe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(Zxe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _xe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $xe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$xe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,xi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Gf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),bC=Symbol("jobs"),b6=Symbol("originalResponse"),Q6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function bke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function Qke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),Pke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of Pke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,YJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Ywe(r){YJ.lastIndex=0;let e=[],t;for(;(t=YJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function GJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:GJ(r,t)(g)),t.push({inverse:a,styles:Ywe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(GJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=NJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Gwe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Gwe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),Qx=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),bx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=bx(a)||bx(l)||bx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&Qx(r))return[r];if(!Qx(r)||!Qx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var Q3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";b3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var T3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Yd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",N3=`[^${Mo}]`,Na="\\.",RBe="\\+",FBe="\\?",jy="\\/",TBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Na}{1,2}${xx}`,NBe=`(?!${Na})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Na}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Na,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:TBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:NBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:N3,STAR:`${N3}*?`,DOTS_SLASH:`${Na}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Na})`,NO_DOTS:`(?!(?:^|[${Mo}])${Na}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Na}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Na}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Gd=I(wn=>{"use strict";var YBe=J("path"),GBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Yd();wn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);wn.hasRegexChars=r=>WBe.test(r);wn.isRegexChar=r=>r.length===1&&wn.hasRegexChars(r);wn.escapeRegex=r=>r.replace(zBe,"\\$1");wn.toPosixSlashes=r=>r.replace(qBe,"/");wn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);wn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};wn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:GBe===!0||YBe.sep==="\\";wn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?wn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};wn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};wn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Gd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Tx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Yd(),Y3=r=>r===q3||r===qd,G3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&Y3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let T={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(T.maxDepth=0,Y3(X)||o.push(W),T.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he{"use strict";var Yy=Yd(),Wn=Gd(),{MAX_LENGTH:Gy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Yy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Nx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Gy,t.maxLength):Gy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Yy.globChars(l),u=Yy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=Y=>`(${a}(?:(?!${q}${Y.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,T,ce=()=>A.index===n-1,he=A.peek=(Y=1)=>r[A.index+Y],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(Y="",fe=0)=>{A.consumed+=Y,A.index+=fe},se=Y=>{A.output+=Y.output!=null?Y.output:Y.value,Re(Y.value)},Ae=()=>{let Y=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,Y++;return Y%2===0?!1:(A.negated=!0,A.start++,!0)},ye=Y=>{A[Y]++,te.push(Y)},ge=Y=>{A[Y]--,te.pop()},oe=Y=>{if(O.type==="globstar"){let fe=A.braces>0&&(Y.type==="comma"||Y.type==="brace"),re=Y.extglob===!0||ne.length&&(Y.type==="pipe"||Y.type==="paren");Y.type!=="slash"&&Y.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&Y.type!=="paren"&&(ne[ne.length-1].inner+=Y.value),(Y.value||Y.output)&&se(Y),O&&O.type==="text"&&Y.type==="text"){O.value+=Y.value,O.output=(O.output||"")+Y.value;return}Y.prev=O,o.push(Y),O=Y},Ge=(Y,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:Y,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=Y=>{let fe=Y.close+(t.capture?")":""),re;if(Y.type==="negate"){let de=Z;if(Y.inner&&Y.inner.length>1&&Y.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=Y.close=`)$))${de}`),Y.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Nx(re,{...e,fastpaths:!1}).output;fe=Y.close=`)${Ze})${de})`}Y.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:T,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let Y=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Nr)=>vt==="\\"?(Y=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Nr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return Y===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(T=Pe(),T==="\0")continue;if(T==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){T+="\\",oe({type:"text",value:T});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(T+="\\")),t.unescape===!0?T=Pe():T+=Pe(),A.brackets===0){oe({type:"text",value:T});continue}}if(A.brackets>0&&(T!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&T===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(T==="["&&he()!==":"||T==="-"&&he()==="]")&&(T=`\\${T}`),T==="]"&&(O.value==="["||O.value==="[^")&&(T=`\\${T}`),t.posix===!0&&T==="!"&&O.value==="["&&(T="^"),O.value+=T,se({value:T});continue}if(A.quotes===1&&T!=='"'){T=Wn.escapeRegex(T),O.value+=T,se({value:T});continue}if(T==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:T});continue}if(T==="("){ye("parens"),oe({type:"paren",value:T});continue}if(T===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:T,output:A.parens?")":"\\)"}),ge("parens");continue}if(T==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));T=`\\${T}`}else ye("brackets");oe({type:"bracket",value:T});continue}if(T==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:T,output:`\\${T}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:T,output:`\\${T}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(T=`/${T}`),O.value+=T,se({value:T}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(T==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:T,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(T==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:T,output:T});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",T=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:T,output:de}),ge("braces"),ue.pop();continue}if(T==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:T});continue}if(T===","){let re=T,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:T,output:re});continue}if(T==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:T,output:p});continue}if(T==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=T,O.value+=T,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:T,output:g});continue}oe({type:"dot",value:T,output:g});continue}if(T==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ge("qmark",T);continue}if(O&&O.type==="paren"){let de=he(),Ze=T;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${T}`),oe({type:"text",value:T,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:T,output:F});continue}oe({type:"qmark",value:T,output:P});continue}if(T==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ge("negate",T);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(T==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ge("plus",T);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:T,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:T});continue}oe({type:"plus",value:h});continue}if(T==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:T,output:""});continue}oe({type:"text",value:T});continue}if(T!=="*"){(T==="$"||T==="^")&&(T=`\\${T}`);let re=i0e.exec(De());re&&(T+=re[0],A.index+=re[0].length),oe({type:"text",value:T});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=T,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(T);continue}let Y=De();if(t.noextglob!==!0&&/^\([^?]/.test(Y)){Ge("star",T);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(T);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||Y[0]&&Y[0]!=="/")){oe({type:"star",value:T,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Nr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Nr){oe({type:"star",value:T,output:""});continue}for(;Y.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;Y=Y.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=T,O.output=_(t),A.output=O.output,A.globstar=!0,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=T,A.globstar=!0,A.output+=re.output+O.output,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&Y[0]==="/"){let ti=Y[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=T,A.output+=re.output+O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&Y[0]==="/"){O.type="globstar",O.value+=T,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=T,A.output+=O.output,A.globstar=!0,Re(T);continue}let fe={type:"star",value:T,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=T,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let Y of A.tokens)A.output+=Y.output!=null?Y.output:Y.value,Y.suffix&&(A.output+=Y.suffix)}return A};Nx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Gy,t.maxLength):Gy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Yy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Nx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Gd(),A0e=Yd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Kr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Kr(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Kr.compileRe(r,e):Kr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Kr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Kr.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Kr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Kr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Kr.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Kr.makeRe(e,t)).test(o0e.basename(r));Kr.isMatch=(r,e,t)=>Kr(e,t)(r);Kr.parse=(r,e)=>Array.isArray(r)?r.map(t=>Kr.parse(t,e)):Lx(r,{...e,fastpaths:!1});Kr.scan=(r,e)=>a0e(r,e);Kr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Kr.toRegex(a,e);return i===!0&&(l.state=r),l};Kr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Kr.compileRe(n,e,t,i)};Kr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Kr.constants=A0e;Z3.exports=Kr});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var Bn=I((ktt,i4)=>{"use strict";var t4=J("util"),r4=T3(),Ko=Mx(),Kx=Gd(),e4=r=>r===""||r==="./",Qr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Qr.match=Qr;Qr.matcher=(r,e)=>Ko(r,e);Qr.isMatch=(r,e,t)=>Ko(e,t)(r);Qr.any=Qr.isMatch;Qr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Qr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Qr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Qr.contains(r,i,t));if(typeof e=="string"){if(e4(r)||e4(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Qr.isMatch(r,e,{...t,contains:!0})};Qr.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Qr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Qr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Qr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Qr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};Qr.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Qr.makeRe=(...r)=>Ko.makeRe(...r);Qr.scan=(...r)=>Ko.scan(...r);Qr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of r4(String(i),e))t.push(Ko.parse(n,e));return t};Qr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:r4(r,e)};Qr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Qr.braces(r,{...e,expand:!0})};i4.exports=Qr});var s4=I((Dtt,n4)=>{"use strict";n4.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var a4=I((Rtt,o4)=>{"use strict";var c0e=s4();o4.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var y4=I((Ytt,I4)=>{"use strict";I4.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Gtt,Q4)=>{"use strict";var B0e=J("stream"),w4=B0e.PassThrough,Q0e=Array.prototype.slice;Q4.exports=b0e;function b0e(){let r=[],e=!1,t=Q0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=w4(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var S4=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var v4=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var x4=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function T0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=T0e;function N0e(r){return r.replace(R0e,"\\$2")}yf.escape=N0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var k4=I((Vtt,P4)=>{P4.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var F4=I((Xtt,R4)=>{var O0e=k4(),D4={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=D4[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var U0e=F4(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lP="/",Y0e=/\\/g,G0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;T4.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lP)<0&&(e=e.replace(Y0e,lP)),G0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var G4=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=N4(),L4=Bn(),V0e=Mx(),O4="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,eQe=/[!*+?@]\(.*\)/,tQe=/{.*(?:,|\.\.).*}/;function M4(r,e={}){return!K4(r,e)}Zr.isStaticPattern=M4;function K4(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&eQe.test(r)||e.braceExpansion!==!1&&tQe.test(r))}Zr.isDynamicPattern=K4;function rQe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rQe;function iQe(r){return"!"+r}Zr.convertToNegativePattern=iQe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function U4(r){return!Zy(r)}Zr.isPositivePattern=U4;function nQe(r){return r.filter(Zy)}Zr.getNegativePatterns=nQe;function sQe(r){return r.filter(U4)}Zr.getPositivePatterns=sQe;function oQe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=oQe;function aQe(r){return r.includes(O4)}Zr.hasGlobStar=aQe;function H4(r){return r.endsWith("/"+O4)}Zr.endsWithSlashGlobStar=H4;function AQe(r){let e=W0e.basename(r);return H4(r)||M4(e)}Zr.isAffectDepthOfReadingPattern=AQe;function lQe(r){return r.reduce((e,t)=>e.concat(j4(t)),[])}Zr.expandPatternsWithBraceExpansion=lQe;function j4(r){return L4.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=j4;function cQe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cQe;function Y4(r,e){return L4.makeRe(r,e)}Zr.makeRe=Y4;function uQe(r,e){return r.map(t=>Y4(t,e))}Zr.convertPatternsToRe=uQe;function gQe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gQe});var J4=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fQe=sP();function hQe(r){let e=fQe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>q4(r)),e.once("end",()=>q4(r)),e}cP.merge=hQe;function q4(r){r.forEach(e=>e.emit("close"))}});var W4=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pQe(r){return typeof r=="string"}_y.isString=pQe;function dQe(r){return r===""}_y.isEmpty=dQe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var CQe=b4();Oa.array=CQe;var mQe=S4();Oa.errno=mQe;var EQe=v4();Oa.fs=EQe;var IQe=x4();Oa.path=IQe;var yQe=G4();Oa.pattern=yQe;var wQe=J4();Oa.stream=wQe;var BQe=W4();Oa.string=BQe});var _4=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function QQe(r,e){let t=z4(r),i=V4(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=QQe;function uP(r,e,t){let i=X4(r);return"."in i?[gP(".",r,e,t)]:Z4(i,e,t)}Ka.convertPatternsToTasks=uP;function z4(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=z4;function V4(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=V4;function X4(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=X4;function Z4(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=Z4;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var eW=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function bQe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$4(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$4(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=bQe;function $4(r,e){r(e)}function fP(r,e){r(null,e)}});var tW=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function SQe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=SQe});var rW=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vQe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vQe});var iW=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xQe=rW(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xQe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var nW=eW(),PQe=tW(),dP=iW();UA.Settings=dP.default;function kQe(r,e,t){if(typeof e=="function"){nW.read(r,CP(),e);return}nW.read(r,CP(e),t)}UA.stat=kQe;function DQe(r,e){let t=CP(e);return PQe.read(r,t)}UA.statSync=DQe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var oW=I((Art,sW)=>{sW.exports=RQe;function RQe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var aW=Number.parseInt(rw[0],10),FQe=Number.parseInt(rw[1],10),AW=10,TQe=10,NQe=aW>AW,LQe=aW===AW&&FQe>=TQe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=NQe||LQe});var lW=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function OQe(r,e){return new EP(r,e)}nw.createDirentFromStats=OQe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var MQe=lW();sw.fs=MQe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function KQe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=KQe});var pW=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var UQe=vc(),cW=oW(),HQe=mP(),uW=IP(),gW=yP();function jQe(r,e,t){if(!e.stats&&HQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){fW(r,e,t);return}hW(r,e,t)}HA.read=jQe;function fW(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:gW.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>YQe(a,e));cW(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=fW;function YQe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=uW.fs.createDirentFromStats(r.name,n),t(null,r)})}}function hW(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=gW.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{UQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:uW.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});cW(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=hW;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var IW=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var GQe=vc(),qQe=mP(),dW=IP(),CW=yP();function JQe(r,e){return!e.stats&&qQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?mW(r,e):EW(r,e)}jA.read=JQe;function mW(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:CW.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=dW.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=mW;function EW(r,e){return e.fs.readdirSync(r).map(i=>{let n=CW.joinPathSegments(r,i,e.pathSegmentSeparator),s=GQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:dW.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=EW});var yW=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.createFileSystemAdapter=YA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");YA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function WQe(r){return r===void 0?YA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},YA.FILE_SYSTEM_ADAPTER),r)}YA.createFileSystemAdapter=WQe});var wW=I(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var zQe=J("path"),VQe=vc(),XQe=yW(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=XQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new VQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};QP.default=BP});var Aw=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.Settings=GA.scandirSync=GA.scandir=void 0;var BW=pW(),ZQe=IW(),bP=wW();GA.Settings=bP.default;function _Qe(r,e,t){if(typeof e=="function"){BW.read(r,SP(),e);return}BW.read(r,SP(e),t)}GA.scandir=_Qe;function $Qe(r,e){let t=SP(e);return ZQe.read(r,t)}GA.scandirSync=$Qe;function SP(r={}){return r instanceof bP.default?r:new bP.default(r)}});var bW=I((mrt,QW)=>{"use strict";function ebe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}QW.exports=ebe});var vW=I((Ert,vP)=>{"use strict";var tbe=bW();function SW(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tbe(rbe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nbe;function sbe(r,e){return r===null||r(e)}jo.isAppliedFilter=sbe;function obe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=obe;function abe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=abe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Abe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=Abe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lbe=J("events"),cbe=Aw(),ube=vW(),cw=lw(),gbe=kP(),DP=class extends gbe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cbe.scandir,this._emitter=new lbe.EventEmitter,this._queue=ube(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var xW=I(NP=>{"use strict";Object.defineProperty(NP,"__esModule",{value:!0});var fbe=FP(),TP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pbe(e,[...this._storage])}),this._reader.read()}};NP.default=TP;function hbe(r,e){r(e)}function pbe(r,e){r(null,e)}});var PW=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dbe=J("stream"),Cbe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Cbe.default(this._root,this._settings),this._stream=new dbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var kW=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mbe=Aw(),uw=lw(),Ebe=kP(),MP=class extends Ebe.default{constructor(){super(...arguments),this._scandir=mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var DW=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var Ibe=kW(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Ibe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var RW=I(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});var ybe=J("path"),wbe=Aw(),jP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ybe.sep),this.fsScandirSettings=new wbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};YP.default=jP});var qP=I(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.Settings=Yo.walkStream=Yo.walkSync=Yo.walk=void 0;var FW=xW(),Bbe=PW(),Qbe=DW(),GP=RW();Yo.Settings=GP.default;function bbe(r,e,t){if(typeof e=="function"){new FW.default(r,gw()).read(e);return}new FW.default(r,gw(e)).read(t)}Yo.walk=bbe;function Sbe(r,e){let t=gw(e);return new Qbe.default(r,t).read()}Yo.walkSync=Sbe;function vbe(r,e){let t=gw(e);return new Bbe.default(r,t).read()}Yo.walkStream=vbe;function gw(r={}){return r instanceof GP.default?r:new GP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xbe=J("path"),Pbe=vc(),TW=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new Pbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:TW.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!TW.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kbe=J("stream"),Dbe=vc(),Rbe=qP(),Fbe=zP(),VP=class extends Fbe.default{constructor(){super(...arguments),this._walkStream=Rbe.walkStream,this._stat=Dbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var NW=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var LW=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var Tbe=NW(),ek=class extends Tbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var OW=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),Nbe=LW(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Nbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var MW=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var KW=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var Lbe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return Lbe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var HW=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var UW=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=UW.path.makeAbsolute(this._settings.cwd,t),t=UW.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var Obe=J("path"),Mbe=OW(),Kbe=MW(),Ube=KW(),Hbe=HW(),ck=class{constructor(e){this._settings=e,this.errorFilter=new Ube.default(this._settings),this.entryFilter=new Kbe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Mbe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Hbe.default(this._settings)}_getRootDirectory(e){return Obe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var jW=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jbe=ZP(),Ybe=hw(),gk=class extends Ybe.default{constructor(){super(...arguments),this._reader=new jbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var YW=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Gbe=J("stream"),qbe=ZP(),Jbe=hw(),hk=class extends Jbe.default{constructor(){super(...arguments),this._reader=new qbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new Gbe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var GW=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var Wbe=vc(),zbe=qP(),Vbe=zP(),dk=class extends Vbe.default{constructor(){super(...arguments),this._walkSync=zbe.walkSync,this._statSync=Wbe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var qW=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var Xbe=GW(),Zbe=hw(),mk=class extends Zbe.default{constructor(){super(...arguments),this._reader=new Xbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var JW=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var Qf=J("fs"),_be=J("os"),$be=_be.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Qf.lstat,lstatSync:Qf.lstatSync,stat:Qf.stat,statSync:Qf.statSync,readdir:Qf.readdir,readdirSync:Qf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$be),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Yrt,zW)=>{"use strict";var WW=_4(),eSe=jW(),tSe=YW(),rSe=qW(),yk=JW(),xc=Ma();async function wk(r,e){bf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){bf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){bf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){bf(o);let l=[].concat(o),c=new yk.default(a);return WW.generate(l,c)}r.generateTasks=i;function n(o,a){bf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return bf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=WW.generate(i,n),o=new e(n);return s.map(o.read,o)}function bf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}zW.exports=wk});var XW=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),VW=J("fs");async function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(VW[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return VW[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=Qk.bind(null,"stat","isFile");Pc.isDirectory=Qk.bind(null,"stat","isDirectory");Pc.isSymlink=Qk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=bk.bind(null,"statSync","isFile");Pc.isDirectorySync=bk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=bk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),ZW=XW(),_W=r=>r.length>1?`{${r.join(",")}}`:r[0],$W=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_W(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_W(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await ZW.isDirectory($W(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>ZW.isDirectorySync($W(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],QSe=wSe(g8.readFile),bSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(bSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await QSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Tk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Tk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=y4(),DSe=sP(),Ew=pw(),Iw=t8(),Nk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",TSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},NSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),TSe(r),NSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],Q8=r=>r&&r.gitignore?Nk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Nk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=Q8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=Q8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Nk});var vn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var Y8=I((dit,j8)=>{var tve=Is(),rve=function(){return tve.Date.now()};j8.exports=rve});var q8=I((Cit,G8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}G8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Tc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Tc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Nc=I((wit,iz)=>{var tz=Tc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((Qit,sz)=>{var wve=Nc(),Bve=Jo(),Qve="[object Symbol]";function bve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==Qve}sz.exports=bve});var lz=I((bit,Az)=>{var Sve=W8(),oz=vn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=vn(),zk=Y8(),cz=lz(),Tve="Expected a function",Nve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Tve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Nve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=vn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ga=I((Ya,Yw)=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});var Qz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return Qz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Qz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:bz}=Object.prototype,mC=r=>{let e=bz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(bz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ya.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ya.assert,{class:{value:Ya.assert.class_},function:{value:Ya.assert.function_},null:{value:Ya.assert.null_}});Ya.default=V;Yw.exports=V;Yw.exports.default=V;Yw.exports.assert=Ya.assert});var xz=I((hnt,dD)=>{"use strict";var Gw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Gw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Gw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,bD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),QD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Tz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Nz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Tz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Nz),this._resolve6(e,Nz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[QD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[QD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Tz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};bD.exports=qw;bD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,Qxe="text/plain",bxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===bxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Qxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Yz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Gz=Yz();vD.exports=Gz(Jw);vD.exports.strict=Gz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Txe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Nxe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Txe(r))return r.close(EC);if(Nxe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((Qnt,e5)=>{"use strict";var jxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Yxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Gxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Gxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Yxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((bnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},TD=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=TD});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),ND=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=ND.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new ND(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=ND.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Nnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,Q5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),sn=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].lengthe[ws].includes(i))&&t[sn]+e[sn]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].lengtht[ws].includes(i))&&e[sn]+t[sn]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]{r[Uf]=!0,r[sn]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[sn]=0,h[Uf]=!1;let p=()=>h[sn]{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[sn]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[sn],h[sn]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[sn],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[sn]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[sn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=sn;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var YD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};b5.exports=jD});var GD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Gnt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:QPe}=J("stream"),{Agent:F5,globalAgent:bPe}=HD(),SPe=YD(),vPe=GD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:T5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:N5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:TPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),NPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends QPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=bPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===TPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[N5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[N5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new T5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new T5("set");if(typeof e!="string"||!NPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var Y5=I((Wnt,j5)=>{"use strict";var MPe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var G5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),jPe=Y5(),YPe=GD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},GPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=YPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:G5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await GPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):G5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=YD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ga();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ga(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ga();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ga(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ga(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Yf=Symbol("downloadedSize"),Gf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),QC=Symbol("jobs"),Q6=Symbol("originalResponse"),b6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Qke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function bke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` `).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` `).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` `)}${a.reverse().join(` -`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var QC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=QC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var xke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[bC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[xi])===null||c===void 0||c.destroy();return}for(let g of this[bC])g();this[bC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{bke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[xi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[b6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Gf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new QC(a,this))}),e.once("aborted",()=>{this._beforeError(new QC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[xi]&&(this[dR](),delete this[xi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,xke),this[xi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:x}=B.groups;Object.assign(o,{socketPath:S,path:x,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[xi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),Qke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[Q6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Gf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[bC].push(n)}_writeRequest(e,t,i){this[xi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[xi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(xi in this)){e();return}if(this[xi].destroyed){e();return}this[xi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[xi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[bC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[Q6]),xi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[xi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[xi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[b6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[xi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Gf]/this[jf]:this[jf]===this[Gf]?e=1:e=0,{percent:e,transferred:this[Gf],total:this[jf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[xi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var P6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Nke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Tke=J("events"),Lke=Ya(),Oke=Pz(),gB=vC(),x6=P6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Tke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:x}=g;if(S&&!x.decompress)d.body=y;else try{d.body=x6.default(d,x.responseType,x.parseJson,x.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of x.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},x);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return x6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Nke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var N6=Ya();function T6(r){for(let e of Object.values(r))(N6.default.plainObject(e)||N6.default.array(e))&&T6(e);return Object.freeze(r)}BR.default=T6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var bR=I(bs=>{"use strict";var Gke=bs&&bs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=bs&&bs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Gke(e,r,t)};Object.defineProperty(bs,"__esModule",{value:!0});bs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];bs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==bs.defaultHandler),s.length===0&&s.push(bs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};bs.default=j6;Yke(M6(),bs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),G6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=bR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},QR=Y6.default(eDe);qa.default=QR;pB.exports=QR;pB.exports.default=QR;pB.exports.__esModule=!0;G6(bR(),qa);G6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),x=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&Ir("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:Ir("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||Ir("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E>10,56320|it&1023)}}return T}function De(f,E){return f?xe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,G,fe,re,de,Ze,vt,mt;function Tr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=G=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!Q.init.initialized&&Q.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function Ir(f){t.onAbort&&t.onAbort(f),f+="",x(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Nl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Nl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCABKAIIKAIcKAJAIAEoAggoAiQRBAALIAEoAggoAhwoAjgEQCABKAIIKAIoIAEoAggoAhwoAjggASgCCCgCJBEEAAsgASgCCCgCKCABKAIIKAIcIAEoAggoAiQRBAAgASgCCEEANgIcIAFBfUEAIAEoAgRB8QBGGzYCDAsgASgCDCEAIAFBEGokACAAC+sXAQJ/IwBB8ABrIgMgADYCbCADIAE2AmggAyACNgJkIANBfzYCXCADIAMoAmgvAQI2AlQgA0EANgJQIANBBzYCTCADQQQ2AkggAygCVEUEQCADQYoBNgJMIANBAzYCSAsgA0EANgJgA0AgAygCYCADKAJkSkUEQCADIAMoAlQ2AlggAyADKAJoIAMoAmBBAWpBAnRqLwECNgJUIAMgAygCUEEBaiIANgJQAkACQCADKAJMIABMDQAgAygCWCADKAJURw0ADAELAkAgAygCUCADKAJISARAA0AgAyADKAJsQfwUaiADKAJYQQJ0ai8BAjYCRAJAIAMoAmwoArwtQRAgAygCRGtKBEAgAyADKAJsQfwUaiADKAJYQQJ0ai8BADYCQCADKAJsIgAgAC8BuC0gAygCQEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAJAQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCREEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsQfwUaiADKAJYQQJ0ai8BACADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCRCAAKAK8LWo2ArwtCyADIAMoAlBBAWsiADYCUCAADQALDAELAkAgAygCWARAIAMoAlggAygCXEcEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwECNgI8AkAgAygCbCgCvC1BECADKAI8a0oEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwEANgI4IAMoAmwiACAALwG4LSADKAI4Qf//A3EgAygCbCgCvC10cjsBuC0gAygCbC8BuC1B/wFxIQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbC8BuC1BCHYhASADKAJsKAIIIQIgAygCbCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJsIAMoAjhB//8DcUEQIAMoAmwoArwta3U7AbgtIAMoAmwiACAAKAK8LSADKAI8QRBrajYCvC0MAQsgAygCbCIAIAAvAbgtIAMoAmxB/BRqIAMoAlhBAnRqLwEAIAMoAmwoArwtdHI7AbgtIAMoAmwiACADKAI8IAAoArwtajYCvC0LIAMgAygCUEEBazYCUAsgAyADKAJsLwG+FTYCNAJAIAMoAmwoArwtQRAgAygCNGtKBEAgAyADKAJsLwG8FTYCMCADKAJsIgAgAC8BuC0gAygCMEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIwQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCNEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwG8FSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCNCAAKAK8LWo2ArwtCyADQQI2AiwCQCADKAJsKAK8LUEQIAMoAixrSgRAIAMgAygCUEEDazYCKCADKAJsIgAgAC8BuC0gAygCKEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIoQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAiwgACgCvC1qNgK8LQsMAQsCQCADKAJQQQpMBEAgAyADKAJsLwHCFTYCJAJAIAMoAmwoArwtQRAgAygCJGtKBEAgAyADKAJsLwHAFTYCICADKAJsIgAgAC8BuC0gAygCIEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIgQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHAFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCJCAAKAK8LWo2ArwtCyADQQM2AhwCQCADKAJsKAK8LUEQIAMoAhxrSgRAIAMgAygCUEEDazYCGCADKAJsIgAgAC8BuC0gAygCGEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIYQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCHEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAhwgACgCvC1qNgK8LQsMAQsgAyADKAJsLwHGFTYCFAJAIAMoAmwoArwtQRAgAygCFGtKBEAgAyADKAJsLwHEFTYCECADKAJsIgAgAC8BuC0gAygCEEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIQQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHEFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCFCAAKAK8LWo2ArwtCyADQQc2AgwCQCADKAJsKAK8LUEQIAMoAgxrSgRAIAMgAygCUEELazYCCCADKAJsIgAgAC8BuC0gAygCCEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIIQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQtrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAgwgACgCvC1qNgK8LQsLCwsgA0EANgJQIAMgAygCWDYCXAJAIAMoAlRFBEAgA0GKATYCTCADQQM2AkgMAQsCQCADKAJYIAMoAlRGBEAgA0EGNgJMIANBAzYCSAwBCyADQQc2AkwgA0EENgJICwsLIAMgAygCYEEBajYCYAwBCwsLkQQBAX8jAEEwayIDIAA2AiwgAyABNgIoIAMgAjYCJCADQX82AhwgAyADKAIoLwECNgIUIANBADYCECADQQc2AgwgA0EENgIIIAMoAhRFBEAgA0GKATYCDCADQQM2AggLIAMoAiggAygCJEEBakECdGpB//8DOwECIANBADYCIANAIAMoAiAgAygCJEpFBEAgAyADKAIUNgIYIAMgAygCKCADKAIgQQFqQQJ0ai8BAjYCFCADIAMoAhBBAWoiADYCEAJAAkAgAygCDCAATA0AIAMoAhggAygCFEcNAAwBCwJAIAMoAhAgAygCCEgEQCADKAIsQfwUaiADKAIYQQJ0aiIAIAMoAhAgAC8BAGo7AQAMAQsCQCADKAIYBEAgAygCGCADKAIcRwRAIAMoAiwgAygCGEECdGpB/BRqIgAgAC8BAEEBajsBAAsgAygCLCIAIABBvBVqLwEAQQFqOwG8FQwBCwJAIAMoAhBBCkwEQCADKAIsIgAgAEHAFWovAQBBAWo7AcAVDAELIAMoAiwiACAAQcQVai8BAEEBajsBxBULCwsgA0EANgIQIAMgAygCGDYCHAJAIAMoAhRFBEAgA0GKATYCDCADQQM2AggMAQsCQCADKAIYIAMoAhRGBEAgA0EGNgIMIANBAzYCCAwBCyADQQc2AgwgA0EENgIICwsLIAMgAygCIEEBajYCIAwBCwsLpxIBAn8jAEHQAGsiAyAANgJMIAMgATYCSCADIAI2AkQgA0EANgI4IAMoAkwoAqAtBEADQCADIAMoAkwoAqQtIAMoAjhBAXRqLwEANgJAIAMoAkwoApgtIQAgAyADKAI4IgFBAWo2AjggAyAAIAFqLQAANgI8AkAgAygCQEUEQCADIAMoAkggAygCPEECdGovAQI2AiwCQCADKAJMKAK8LUEQIAMoAixrSgRAIAMgAygCSCADKAI8QQJ0ai8BADYCKCADKAJMIgAgAC8BuC0gAygCKEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIoQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjxBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIsIAAoArwtajYCvC0LDAELIAMgAygCPC0A0F02AjQgAyADKAJIIAMoAjRBgQJqQQJ0ai8BAjYCJAJAIAMoAkwoArwtQRAgAygCJGtKBEAgAyADKAJIIAMoAjRBgQJqQQJ0ai8BADYCICADKAJMIgAgAC8BuC0gAygCIEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIgQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjRBgQJqQQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCJCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBkOoAaigCADYCMCADKAIwBEAgAyADKAI8IAMoAjRBAnRBgO0AaigCAGs2AjwgAyADKAIwNgIcAkAgAygCTCgCvC1BECADKAIca0oEQCADIAMoAjw2AhggAygCTCIAIAAvAbgtIAMoAhhB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdiEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCGEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCPEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIcIAAoArwtajYCvC0LCyADIAMoAkBBAWs2AkAgAwJ/IAMoAkBBgAJJBEAgAygCQC0A0FkMAQsgAygCQEEHdkGAAmotANBZCzYCNCADIAMoAkQgAygCNEECdGovAQI2AhQCQCADKAJMKAK8LUEQIAMoAhRrSgRAIAMgAygCRCADKAI0QQJ0ai8BADYCECADKAJMIgAgAC8BuC0gAygCEEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIQQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJEIAMoAjRBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIUIAAoArwtajYCvC0LIAMgAygCNEECdEGQ6wBqKAIANgIwIAMoAjAEQCADIAMoAkAgAygCNEECdEGA7gBqKAIAazYCQCADIAMoAjA2AgwCQCADKAJMKAK8LUEQIAMoAgxrSgRAIAMgAygCQDYCCCADKAJMIgAgAC8BuC0gAygCCEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIIQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJAQf//A3EgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgwgACgCvC1qNgK8LQsLCyADKAI4IAMoAkwoAqAtSQ0ACwsgAyADKAJILwGCCDYCBAJAIAMoAkwoArwtQRAgAygCBGtKBEAgAyADKAJILwGACDYCACADKAJMIgAgAC8BuC0gAygCAEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIAQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCBEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJILwGACCADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCBCAAKAK8LWo2ArwtCwuXAgEEfyMAQRBrIgEgADYCDAJAIAEoAgwoArwtQRBGBEAgASgCDC8BuC1B/wFxIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDC8BuC1BCHYhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMQQA7AbgtIAEoAgxBADYCvC0MAQsgASgCDCgCvC1BCE4EQCABKAIMLwG4LSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwiACAALwG4LUEIdjsBuC0gASgCDCIAIAAoArwtQQhrNgK8LQsLC+8BAQR/IwBBEGsiASAANgIMAkAgASgCDCgCvC1BCEoEQCABKAIMLwG4LUH/AXEhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMLwG4LUEIdiECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAADAELIAEoAgwoArwtQQBKBEAgASgCDC8BuC0hAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAAAsLIAEoAgxBADsBuC0gASgCDEEANgK8LQv8AQEBfyMAQRBrIgEgADYCDCABQQA2AggDQCABKAIIQZ4CTkUEQCABKAIMQZQBaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEEeTkUEQCABKAIMQYgTaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEETTkUEQCABKAIMQfwUaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgASgCDEEBOwGUCSABKAIMQQA2AqwtIAEoAgxBADYCqC0gASgCDEEANgKwLSABKAIMQQA2AqAtCyIBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQFSABQRBqJAAL6QEBAX8jAEEwayICIAA2AiQgAiABNwMYIAJCADcDECACIAIoAiQpAwhCAX03AwgCQANAIAIpAxAgAikDCFQEQCACIAIpAxAgAikDCCACKQMQfUIBiHw3AwACQCACKAIkKAIEIAIpAwCnQQN0aikDACACKQMYVgRAIAIgAikDAEIBfTcDCAwBCwJAIAIpAwAgAigCJCkDCFIEQCACKAIkKAIEIAIpAwBCAXynQQN0aikDACACKQMYWA0BCyACIAIpAwA3AygMBAsgAiACKQMAQgF8NwMQCwwBCwsgAiACKQMQNwMoCyACKQMoC6cBAQF/IwBBMGsiBCQAIAQgADYCKCAEIAE2AiQgBCACNwMYIAQgAzYCFCAEIAQoAigpAzggBCgCKCkDMCAEKAIkIAQpAxggBCgCFBCIATcDCAJAIAQpAwhCAFMEQCAEQX82AiwMAQsgBCgCKCAEKQMINwM4IAQoAiggBCgCKCkDOBDAASECIAQoAiggAjcDQCAEQQA2AiwLIAQoAiwhACAEQTBqJAAgAAvrAQEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIAMgAjYCDAJAIAMpAxAgAygCGCkDEFQEQCADQQE6AB8MAQsgAyADKAIYKAIAIAMpAxBCBIanEE4iADYCCCAARQRAIAMoAgxBDkEAEBQgA0EAOgAfDAELIAMoAhggAygCCDYCACADIAMoAhgoAgQgAykDEEIBfEIDhqcQTiIANgIEIABFBEAgAygCDEEOQQAQFCADQQA6AB8MAQsgAygCGCADKAIENgIEIAMoAhggAykDEDcDECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAvOAgEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQAJAIAQoAigNACAEKQMgUA0AIAQoAhhBEkEAEBQgBEEANgIsDAELIAQgBCgCKCAEKQMgIAQoAhwgBCgCGBBMIgA2AgwgAEUEQCAEQQA2AiwMAQsgBEEYEBgiADYCFCAARQRAIAQoAhhBDkEAEBQgBCgCDBAyIARBADYCLAwBCyAEKAIUIAQoAgw2AhAgBCgCFEEANgIUQQAQASEAIAQoAhQgADYCDCMAQRBrIgAgBCgCFDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEQQIgBCgCFCAEKAIYEIMBIgA2AhAgAEUEQCAEKAIUKAIQEDIgBCgCFBAVIARBADYCLAwBCyAEIAQoAhA2AiwLIAQoAiwhACAEQTBqJAAgAAupAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQCAEKAIoRQRAIAQpAyBCAFIEQCAEKAIYQRJBABAUIARBADYCLAwCCyAEQQBCACAEKAIcIAQoAhgQwwE2AiwMAQsgBCAEKAIoNgIIIAQgBCkDIDcDECAEIARBCGpCASAEKAIcIAQoAhgQwwE2AiwLIAQoAiwhACAEQTBqJAAgAAtGAQF/IwBBIGsiAyQAIAMgADYCHCADIAE3AxAgAyACNgIMIAMoAhwgAykDECADKAIMIAMoAhxBCGoQTSEAIANBIGokACAAC4sMAQZ/IAAgAWohBQJAAkAgACgCBCICQQFxDQAgAkEDcUUNASAAKAIAIgIgAWohAQJAIAAgAmsiAEH4mwEoAgBHBEAgAkH/AU0EQCAAKAIIIgQgAkEDdiICQQN0QYycAWpGGiAAKAIMIgMgBEcNAkHkmwFB5JsBKAIAQX4gAndxNgIADAMLIAAoAhghBgJAIAAgACgCDCIDRwRAIAAoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgAEEUaiICKAIAIgQNACAAQRBqIgIoAgAiBA0AQQAhAwwBCwNAIAIhByAEIgNBFGoiAigCACIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgALIAZFDQICQCAAIAAoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAQLIAZBEEEUIAYoAhAgAEYbaiADNgIAIANFDQMLIAMgBjYCGCAAKAIQIgIEQCADIAI2AhAgAiADNgIYCyAAKAIUIgJFDQIgAyACNgIUIAIgAzYCGAwCCyAFKAIEIgJBA3FBA0cNAUHsmwEgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggLAkAgBSgCBCICQQJxRQRAIAVB/JsBKAIARgRAQfybASAANgIAQfCbAUHwmwEoAgAgAWoiATYCACAAIAFBAXI2AgQgAEH4mwEoAgBHDQNB7JsBQQA2AgBB+JsBQQA2AgAPCyAFQfibASgCAEYEQEH4mwEgADYCAEHsmwFB7JsBKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohAQJAIAJB/wFNBEAgBSgCCCIEIAJBA3YiAkEDdEGMnAFqRhogBCAFKAIMIgNGBEBB5JsBQeSbASgCAEF+IAJ3cTYCAAwCCyAEIAM2AgwgAyAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIDRwRAIAUoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgBUEUaiIEKAIAIgINACAFQRBqIgQoAgAiAg0AQQAhAwwBCwNAIAQhByACIgNBFGoiBCgCACICDQAgA0EQaiEEIAMoAhAiAg0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAILIAZBEEEUIAYoAhAgBUYbaiADNgIAIANFDQELIAMgBjYCGCAFKAIQIgIEQCADIAI2AhAgAiADNgIYCyAFKAIUIgJFDQAgAyACNgIUIAIgAzYCGAsgACABQQFyNgIEIAAgAWogATYCACAAQfibASgCAEcNAUHsmwEgATYCAA8LIAUgAkF+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQf8BTQRAIAFBA3YiAkEDdEGMnAFqIQECf0HkmwEoAgAiA0EBIAJ0IgJxRQRAQeSbASACIANyNgIAIAEMAQsgASgCCAshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggPC0EfIQIgAEIANwIQIAFB////B00EQCABQQh2IgIgAkGA/j9qQRB2QQhxIgR0IgIgAkGA4B9qQRB2QQRxIgN0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBHIgAnJrIgJBAXQgASACQRVqdkEBcXJBHGohAgsgACACNgIcIAJBAnRBlJ4BaiEHAkACQEHomwEoAgAiBEEBIAJ0IgNxRQRAQeibASADIARyNgIAIAcgADYCACAAIAc2AhgMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQIgBygCACEDA0AgAyIEKAIEQXhxIAFGDQIgAkEddiEDIAJBAXQhAiAEIANBBHFqIgdBEGooAgAiAw0ACyAHIAA2AhAgACAENgIYCyAAIAA2AgwgACAANgIIDwsgBCgCCCIBIAA2AgwgBCAANgIIIABBADYCGCAAIAQ2AgwgACABNgIICwsGAEG0mwELtQkBAX8jAEHgwABrIgUkACAFIAA2AtRAIAUgATYC0EAgBSACNgLMQCAFIAM3A8BAIAUgBDYCvEAgBSAFKALQQDYCuEACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCvEAOEQMEAAYBAgUJCgoKCgoKCAoHCgsgBUIANwPYQAwKCyAFIAUoArhAQeQAaiAFKALMQCAFKQPAQBBDNwPYQAwJCyAFKAK4QBAVIAVCADcD2EAMCAsgBSgCuEAoAhAEQCAFIAUoArhAKAIQIAUoArhAKQMYIAUoArhAQeQAahBgIgM3A5hAIANQBEAgBUJ/NwPYQAwJCyAFKAK4QCkDCCAFKAK4QCkDCCAFKQOYQHxWBEAgBSgCuEBB5ABqQRVBABAUIAVCfzcD2EAMCQsgBSgCuEAiACAFKQOYQCAAKQMAfDcDACAFKAK4QCIAIAUpA5hAIAApAwh8NwMIIAUoArhAQQA2AhALIAUoArhALQB4QQFxRQRAIAVCADcDqEADQCAFKQOoQCAFKAK4QCkDAFQEQCAFIAUoArhAKQMAIAUpA6hAfUKAwABWBH5CgMAABSAFKAK4QCkDACAFKQOoQH0LNwOgQCAFIAUoAtRAIAVBEGogBSkDoEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqIAUoAtRAEBcgBUJ/NwPYQAwLCyAFKQOwQFAEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwLBSAFIAUpA7BAIAUpA6hAfDcDqEAMAgsACwsLIAUoArhAIAUoArhAKQMANwMgIAVCADcD2EAMBwsgBSkDwEAgBSgCuEApAwggBSgCuEApAyB9VgRAIAUgBSgCuEApAwggBSgCuEApAyB9NwPAQAsgBSkDwEBQBEAgBUIANwPYQAwHCyAFKAK4QC0AeEEBcQRAIAUoAtRAIAUoArhAKQMgQQAQJ0EASARAIAUoArhAQeQAaiAFKALUQBAXIAVCfzcD2EAMCAsLIAUgBSgC1EAgBSgCzEAgBSkDwEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqQRFBABAUIAVCfzcD2EAMBwsgBSgCuEAiACAFKQOwQCAAKQMgfDcDICAFKQOwQFAEQCAFKAK4QCkDICAFKAK4QCkDCFQEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwICwsgBSAFKQOwQDcD2EAMBgsgBSAFKAK4QCkDICAFKAK4QCkDAH0gBSgCuEApAwggBSgCuEApAwB9IAUoAsxAIAUpA8BAIAUoArhAQeQAahCIATcDCCAFKQMIQgBTBEAgBUJ/NwPYQAwGCyAFKAK4QCAFKQMIIAUoArhAKQMAfDcDICAFQgA3A9hADAULIAUgBSgCzEA2AgQgBSgCBCAFKAK4QEEoaiAFKAK4QEHkAGoQhAFBAEgEQCAFQn83A9hADAULIAVCADcD2EAMBAsgBSAFKAK4QCwAYKw3A9hADAMLIAUgBSgCuEApA3A3A9hADAILIAUgBSgCuEApAyAgBSgCuEApAwB9NwPYQAwBCyAFKAK4QEHkAGpBHEEAEBQgBUJ/NwPYQAsgBSkD2EAhAyAFQeDAAGokACADCwgAQQFBDBB/CyIBAX8jAEEQayIBIAA2AgwgASgCDCIAIAAoAjBBAWo2AjALBwAgACgCLAsHACAAKAIoCxgBAX8jAEEQayIBIAA2AgwgASgCDEEMagsHACAAKAIYCwcAIAAoAhALBwAgACgCCAtFAEGgmwFCADcDAEGYmwFCADcDAEGQmwFCADcDAEGImwFCADcDAEGAmwFCADcDAEH4mgFCADcDAEHwmgFCADcDAEHwmgELFAAgACABrSACrUIghoQgAyAEEH4LEwEBfiAAEEkiAUIgiKcQACABpwsVACAAIAGtIAKtQiCGhCADIAQQxAELFAAgACABIAKtIAOtQiCGhCAEEH0LrQQBAX8jAEEgayIFJAAgBSAANgIYIAUgAa0gAq1CIIaENwMQIAUgAzYCDCAFIAQ2AggCQAJAIAUpAxAgBSgCGCkDMFQEQCAFKAIIQQlNDQELIAUoAhhBCGpBEkEAEBQgBUF/NgIcDAELIAUoAhgoAhhBAnEEQCAFKAIYQQhqQRlBABAUIAVBfzYCHAwBCwJ/IAUoAgwhASMAQRBrIgAkACAAIAE2AgggAEEBOgAHAkAgACgCCEUEQCAAQQE6AA8MAQsgACAAKAIIIAAtAAdBAXEQswFBAEc6AA8LIAAtAA9BAXEhASAAQRBqJAAgAUULBEAgBSgCGEEIakEQQQAQFCAFQX82AhwMAQsgBSAFKAIYKAJAIAUpAxCnQQR0ajYCBCAFIAUoAgQoAgAEfyAFKAIEKAIAKAIQBUF/CzYCAAJAIAUoAgwgBSgCAEYEQCAFKAIEKAIEBEAgBSgCBCgCBCIAIAAoAgBBfnE2AgAgBSgCBCgCBEEAOwFQIAUoAgQoAgQoAgBFBEAgBSgCBCgCBBA3IAUoAgRBADYCBAsLDAELIAUoAgQoAgRFBEAgBSgCBCgCABBAIQAgBSgCBCAANgIEIABFBEAgBSgCGEEIakEOQQAQFCAFQX82AhwMAwsLIAUoAgQoAgQgBSgCDDYCECAFKAIEKAIEIAUoAgg7AVAgBSgCBCgCBCIAIAAoAgBBAXI2AgALIAVBADYCHAsgBSgCHCEAIAVBIGokACAACxcBAX4gACABIAIQciIDQiCIpxAAIAOnCx8BAX4gACABIAKtIAOtQiCGhBArIgRCIIinEAAgBKcLrgECAX8BfgJ/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQCACKQMIQgBSBH8gAigCFCgCQCACKQMIQgF9p0EEdGooAgAFQQELRQRAIAIgAikDCEIBfTcDCAwBCwsgAiACKQMINwMYDAELIAIgAigCFCkDMDcDGAsgAikDGCIDQiCIpwsQACADpwsTACAAIAGtIAKtQiCGhCADEMUBC4gCAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAq0gA61CIIaENwMIAkAgBCgCFEUEQCAEQn83AxgMAQsgBCgCFCgCBARAIARCfzcDGAwBCyAEKQMIQv///////////wBWBEAgBCgCFEEEakESQQAQFCAEQn83AxgMAQsCQCAEKAIULQAQQQFxRQRAIAQpAwhQRQ0BCyAEQgA3AxgMAQsgBCAEKAIUKAIUIAQoAhAgBCkDCBArIgU3AwAgBUIAUwRAIAQoAhRBBGogBCgCFCgCFBAXIARCfzcDGAwBCyAEIAQpAwA3AxgLIAQpAxghBSAEQSBqJAAgBUIgiKcLEAAgBacLTwEBfyMAQSBrIgQkACAEIAA2AhwgBCABrSACrUIghoQ3AxAgBCADNgIMIAQoAhwgBCkDECAEKAIMIAQoAhwoAhwQrQEhACAEQSBqJAAgAAvZAwEBfyMAQSBrIgUkACAFIAA2AhggBSABrSACrUIghoQ3AxAgBSADNgIMIAUgBDYCCAJAIAUoAhggBSkDEEEAQQAQP0UEQCAFQX82AhwMAQsgBSgCGCgCGEECcQRAIAUoAhhBCGpBGUEAEBQgBUF/NgIcDAELIAUoAhgoAkAgBSkDEKdBBHRqKAIIBEAgBSgCGCgCQCAFKQMQp0EEdGooAgggBSgCDBBnQQBIBEAgBSgCGEEIakEPQQAQFCAFQX82AhwMAgsgBUEANgIcDAELIAUgBSgCGCgCQCAFKQMQp0EEdGo2AgQgBSAFKAIEKAIABH8gBSgCDCAFKAIEKAIAKAIURwVBAQtBAXE2AgACQCAFKAIABEAgBSgCBCgCBEUEQCAFKAIEKAIAEEAhACAFKAIEIAA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBfzYCHAwECwsgBSgCBCgCBCAFKAIMNgIUIAUoAgQoAgQiACAAKAIAQSByNgIADAELIAUoAgQoAgQEQCAFKAIEKAIEIgAgACgCAEFfcTYCACAFKAIEKAIEKAIARQRAIAUoAgQoAgQQNyAFKAIEQQA2AgQLCwsgBUEANgIcCyAFKAIcIQAgBUEgaiQAIAALFwAgACABrSACrUIghoQgAyAEIAUQmQELEgAgACABrSACrUIghoQgAxAnC48BAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAjYCDCAEIAM2AggCQAJAIAQoAhAEQCAEKAIMDQELIAQoAhRBCGpBEkEAEBQgBEJ/NwMYDAELIAQgBCgCFCAEKAIQIAQoAgwgBCgCCBCaATcDGAsgBCkDGCEFIARBIGokACAFQiCIpwsQACAFpwuFBQIBfwF+An8jAEEwayIDJAAgAyAANgIkIAMgATYCICADIAI2AhwCQCADKAIkKAIYQQJxBEAgAygCJEEIakEZQQAQFCADQn83AygMAQsgAygCIEUEQCADKAIkQQhqQRJBABAUIANCfzcDKAwBCyADQQA2AgwgAyADKAIgEC42AhggAygCICADKAIYQQFraiwAAEEvRwRAIAMgAygCGEECahAYIgA2AgwgAEUEQCADKAIkQQhqQQ5BABAUIANCfzcDKAwCCwJAAkAgAygCDCIBIAMoAiAiAHNBA3ENACAAQQNxBEADQCABIAAtAAAiAjoAACACRQ0DIAFBAWohASAAQQFqIgBBA3ENAAsLIAAoAgAiAkF/cyACQYGChAhrcUGAgYKEeHENAANAIAEgAjYCACAAKAIEIQIgAUEEaiEBIABBBGohACACQYGChAhrIAJBf3NxQYCBgoR4cUUNAAsLIAEgAC0AACICOgAAIAJFDQADQCABIAAtAAEiAjoAASABQQFqIQEgAEEBaiEAIAINAAsLIAMoAgwgAygCGGpBLzoAACADKAIMIAMoAhhBAWpqQQA6AAALIAMgAygCJEEAQgBBABB9IgA2AgggAEUEQCADKAIMEBUgA0J/NwMoDAELIAMgAygCJAJ/IAMoAgwEQCADKAIMDAELIAMoAiALIAMoAgggAygCHBCaATcDECADKAIMEBUCQCADKQMQQgBTBEAgAygCCBAbDAELIAMoAiQgAykDEEEAQQNBgID8jwQQmQFBAEgEQCADKAIkIAMpAxAQmAEaIANCfzcDKAwCCwsgAyADKQMQNwMoCyADKQMoIQQgA0EwaiQAIARCIIinCxAAIASnCxEAIAAgAa0gAq1CIIaEEJgBCxcAIAAgAa0gAq1CIIaEIAMgBCAFEIoBC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEHIiBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEK0BNgIcCyADKAIcIQAgA0EgaiQAIAALEAAjACAAa0FwcSIAJAAgAAsGACAAJAALBAAjAAuCAQIBfwF+IwBBIGsiBCQAIAQgADYCGCAEIAE2AhQgBCACNgIQIAQgAzYCDCAEIAQoAhggBCgCFCAEKAIQEHIiBTcDAAJAIAVCAFMEQCAEQX82AhwMAQsgBCAEKAIYIAQpAwAgBCgCECAEKAIMEH42AhwLIAQoAhwhACAEQSBqJAAgAAvQRQMGfwF+AnwjAEHgAGsiASQAIAEgADYCWAJAIAEoAlhFBEAgAUF/NgJcDAELIwBBIGsiACABKAJYNgIcIAAgAUFAazYCGCAAQQA2AhQgAEIANwMAAkAgACgCHC0AKEEBcUUEQCAAKAIcKAIYIAAoAhwoAhRGDQELIABBATYCFAsgAEIANwMIA0AgACkDCCAAKAIcKQMwVARAAkACQCAAKAIcKAJAIAApAwinQQR0aigCCA0AIAAoAhwoAkAgACkDCKdBBHRqLQAMQQFxDQAgACgCHCgCQCAAKQMIp0EEdGooAgRFDQEgACgCHCgCQCAAKQMIp0EEdGooAgQoAgBFDQELIABBATYCFAsgACgCHCgCQCAAKQMIp0EEdGotAAxBAXFFBEAgACAAKQMAQgF8NwMACyAAIAApAwhCAXw3AwgMAQsLIAAoAhgEQCAAKAIYIAApAwA3AwALIAEgACgCFDYCJCABKQNAUARAAkAgASgCWCgCBEEIcUUEQCABKAIkRQ0BCwJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQNGBEAgAEEANgIMDAELIAAoAggoAiAEQCAAKAIIEC9BAEgEQCAAQX82AgwMAgsLIAAoAggoAiQEQCAAKAIIEGILIAAoAghBAEIAQQ8QIEIAUwRAIABBfzYCDAwBCyAAKAIIQQM2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAJBAEgLBEACQAJ/IwBBEGsiACABKAJYKAIANgIMIwBBEGsiAiAAKAIMQQxqNgIMIAIoAgwoAgBBFkYLBEAjAEEQayIAIAEoAlgoAgA2AgwjAEEQayICIAAoAgxBDGo2AgwgAigCDCgCBEEsRg0BCyABKAJYQQhqIAEoAlgoAgAQFyABQX82AlwMBAsLCyABKAJYEDwgAUEANgJcDAELIAEoAiRFBEAgASgCWBA8IAFBADYCXAwBCyABKQNAIAEoAlgpAzBWBEAgASgCWEEIakEUQQAQFCABQX82AlwMAQsgASABKQNAp0EDdBAYIgA2AiggAEUEQCABQX82AlwMAQsgAUJ/NwM4IAFCADcDSCABQgA3A1ADQCABKQNQIAEoAlgpAzBUBEACQCABKAJYKAJAIAEpA1CnQQR0aigCAEUNAAJAIAEoAlgoAkAgASkDUKdBBHRqKAIIDQAgASgCWCgCQCABKQNQp0EEdGotAAxBAXENACABKAJYKAJAIAEpA1CnQQR0aigCBEUNASABKAJYKAJAIAEpA1CnQQR0aigCBCgCAEUNAQsgAQJ+IAEpAzggASgCWCgCQCABKQNQp0EEdGooAgApA0hUBEAgASkDOAwBCyABKAJYKAJAIAEpA1CnQQR0aigCACkDSAs3AzgLIAEoAlgoAkAgASkDUKdBBHRqLQAMQQFxRQRAIAEpA0ggASkDQFoEQCABKAIoEBUgASgCWEEIakEUQQAQFCABQX82AlwMBAsgASgCKCABKQNIp0EDdGogASkDUDcDACABIAEpA0hCAXw3A0gLIAEgASkDUEIBfDcDUAwBCwsgASkDSCABKQNAVARAIAEoAigQFSABKAJYQQhqQRRBABAUIAFBfzYCXAwBCwJAAn8jAEEQayIAIAEoAlgoAgA2AgwgACgCDCkDGEKAgAiDUAsEQCABQgA3AzgMAQsgASkDOEJ/UQRAIAFCfzcDGCABQgA3AzggAUIANwNQA0AgASkDUCABKAJYKQMwVARAIAEoAlgoAkAgASkDUKdBBHRqKAIABEAgASgCWCgCQCABKQNQp0EEdGooAgApA0ggASkDOFoEQCABIAEoAlgoAkAgASkDUKdBBHRqKAIAKQNINwM4IAEgASkDUDcDGAsLIAEgASkDUEIBfDcDUAwBCwsgASkDGEJ/UgRAIAEoAlghAiABKQMYIQcgASgCWEEIaiEDIwBBMGsiACQAIAAgAjYCJCAAIAc3AxggACADNgIUIAAgACgCJCAAKQMYIAAoAhQQYCIHNwMIAkAgB1AEQCAAQgA3AygMAQsgACAAKAIkKAJAIAApAxinQQR0aigCADYCBAJAIAApAwggACkDCCAAKAIEKQMgfFgEQCAAKQMIIAAoAgQpAyB8Qv///////////wBYDQELIAAoAhRBBEEWEBQgAEIANwMoDAELIAAgACgCBCkDICAAKQMIfDcDCCAAKAIELwEMQQhxBEAgACgCJCgCACAAKQMIQQAQJ0EASARAIAAoAhQgACgCJCgCABAXIABCADcDKAwCCyAAKAIkKAIAIABCBBArQgRSBEAgACgCFCAAKAIkKAIAEBcgAEIANwMoDAILIAAoAABB0JadwABGBEAgACAAKQMIQgR8NwMICyAAIAApAwhCDHw3AwggACgCBEEAEGVBAXEEQCAAIAApAwhCCHw3AwgLIAApAwhC////////////AFYEQCAAKAIUQQRBFhAUIABCADcDKAwCCwsgACAAKQMINwMoCyAAKQMoIQcgAEEwaiQAIAEgBzcDOCAHUARAIAEoAigQFSABQX82AlwMBAsLCyABKQM4QgBSBEACfyABKAJYKAIAIQIgASkDOCEHIwBBEGsiACQAIAAgAjYCCCAAIAc3AwACQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAIAApAwBBERAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABQgA3AzgLCwsgASkDOFAEQAJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAQgBBCBAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABKAJYQQhqIAEoAlgoAgAQFyABKAIoEBUgAUF/NgJcDAILCyABKAJYKAJUIQIjAEEQayIAJAAgACACNgIMIAAoAgwEQCAAKAIMRAAAAAAAAAAAOQMYIAAoAgwoAgBEAAAAAAAAAAAgACgCDCgCDCAAKAIMKAIEERYACyAAQRBqJAAgAUEANgIsIAFCADcDSANAAkAgASkDSCABKQNAWg0AIAEoAlgoAlQhAiABKQNIIge6IAEpA0C6IgijIQkjAEEgayIAJAAgACACNgIcIAAgCTkDECAAIAdCAXy6IAijOQMIIAAoAhwEQCAAKAIcIAArAxA5AyAgACgCHCAAKwMIOQMoIAAoAhxEAAAAAAAAAAAQVwsgAEEgaiQAIAEgASgCKCABKQNIp0EDdGopAwA3A1AgASABKAJYKAJAIAEpA1CnQQR0ajYCEAJAAkAgASgCECgCAEUNACABKAIQKAIAKQNIIAEpAzhaDQAMAQsgAQJ/QQEgASgCECgCCA0AGiABKAIQKAIEBEBBASABKAIQKAIEKAIAQQFxDQEaCyABKAIQKAIEBH8gASgCECgCBCgCAEHAAHFBAEcFQQALC0EBcTYCFCABKAIQKAIERQRAIAEoAhAoAgAQQCEAIAEoAhAgADYCBCAARQRAIAEoAlhBCGpBDkEAEBQgAUEBNgIsDAMLCyABIAEoAhAoAgQ2AgwCfyABKAJYIQIgASkDUCEHIwBBMGsiACQAIAAgAjYCKCAAIAc3AyACQCAAKQMgIAAoAigpAzBaBEAgACgCKEEIakESQQAQFCAAQX82AiwMAQsgACAAKAIoKAJAIAApAyCnQQR0ajYCHAJAIAAoAhwoAgAEQCAAKAIcKAIALQAEQQFxRQ0BCyAAQQA2AiwMAQsgACgCHCgCACkDSEIafEL///////////8AVgRAIAAoAihBCGpBBEEWEBQgAEF/NgIsDAELIAAoAigoAgAgACgCHCgCACkDSEIafEEAECdBAEgEQCAAKAIoQQhqIAAoAigoAgAQFyAAQX82AiwMAQsgACAAKAIoKAIAQgQgAEEYaiAAKAIoQQhqEEIiAjYCFCACRQRAIABBfzYCLAwBCyAAIAAoAhQQHTsBEiAAIAAoAhQQHTsBECAAKAIUEEdBAXFFBEAgACgCFBAWIAAoAihBCGpBFEEAEBQgAEF/NgIsDAELIAAoAhQQFiAALwEQBEAgACgCKCgCACAALwESrUEBECdBAEgEQCAAKAIoQQhqQQRBtJsBKAIAEBQgAEF/NgIsDAILIABBACAAKAIoKAIAIAAvARBBACAAKAIoQQhqEGM2AgggACgCCEUEQCAAQX82AiwMAgsgACgCCCAALwEQQYACIABBDGogACgCKEEIahCUAUEBcUUEQCAAKAIIEBUgAEF/NgIsDAILIAAoAggQFSAAKAIMBEAgACAAKAIMEJMBNgIMIAAoAhwoAgAoAjQgACgCDBCVASECIAAoAhwoAgAgAjYCNAsLIAAoAhwoAgBBAToABAJAIAAoAhwoAgRFDQAgACgCHCgCBC0ABEEBcQ0AIAAoAhwoAgQgACgCHCgCACgCNDYCNCAAKAIcKAIEQQE6AAQLIABBADYCLAsgACgCLCECIABBMGokACACQQBICwRAIAFBATYCLAwCCyABIAEoAlgoAgAQNSIHNwMwIAdCAFMEQCABQQE2AiwMAgsgASgCDCABKQMwNwNIAkAgASgCFARAIAFBADYCCCABKAIQKAIIRQRAIAEgASgCWCABKAJYIAEpA1BBCEEAEK4BIgA2AgggAEUEQCABQQE2AiwMBQsLAn8gASgCWCECAn8gASgCCARAIAEoAggMAQsgASgCECgCCAshAyABKAIMIQQjAEGgAWsiACQAIAAgAjYCmAEgACADNgKUASAAIAQ2ApABAkAgACgClAEgAEE4ahA5QQBIBEAgACgCmAFBCGogACgClAEQFyAAQX82ApwBDAELIAApAzhCwACDUARAIAAgACkDOELAAIQ3AzggAEEAOwFoCwJAAkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BCyAALwFoRQ0AIAAoApABIAAvAWg2AhAMAQsCQAJAIAAoApABKAIQDQAgACkDOEIEg1ANACAAIAApAzhCCIQ3AzggACAAKQNQNwNYDAELIAAgACkDOEL3////D4M3AzgLCyAAKQM4QoABg1AEQCAAIAApAzhCgAGENwM4IABBADsBagsgAEGAAjYCJAJAIAApAzhCBINQBEAgACAAKAIkQYAIcjYCJCAAQn83A3AMAQsgACgCkAEgACkDUDcDKCAAIAApA1A3A3ACQCAAKQM4QgiDUARAAkACQAJAAkACQAJ/AkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BC0EIDAELIAAoApABKAIQC0H//wNxDg0CAwMDAwMDAwEDAwMAAwsgAEKUwuTzDzcDEAwDCyAAQoODsP8PNwMQDAILIABC/////w83AxAMAQsgAEIANwMQCyAAKQNQIAApAxBWBEAgACAAKAIkQYAIcjYCJAsMAQsgACgCkAEgACkDWDcDIAsLIAAgACgCmAEoAgAQNSIHNwOIASAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApABIgIgAi8BDEH3/wNxOwEMIAAgACgCmAEgACgCkAEgACgCJBBUIgI2AiggAkEASARAIABBfzYCnAEMAQsgACAALwFoAn8CQCAAKAKQASgCEEF/RwRAIAAoApABKAIQQX5HDQELQQgMAQsgACgCkAEoAhALQf//A3FHOgAiIAAgAC0AIkEBcQR/IAAvAWhBAEcFQQALQQFxOgAhIAAgAC8BaAR/IAAtACEFQQELQQFxOgAgIAAgAC0AIkEBcQR/IAAoApABKAIQQQBHBUEAC0EBcToAHyAAAn9BASAALQAiQQFxDQAaQQEgACgCkAEoAgBBgAFxDQAaIAAoApABLwFSIAAvAWpHC0EBcToAHiAAIAAtAB5BAXEEfyAALwFqQQBHBUEAC0EBcToAHSAAIAAtAB5BAXEEfyAAKAKQAS8BUkEARwVBAAtBAXE6ABwgACAAKAKUATYCNCMAQRBrIgIgACgCNDYCDCACKAIMIgIgAigCMEEBajYCMCAALQAdQQFxBEAgACAALwFqQQAQeyICNgIMIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAvAWpBACAAKAKYASgCHCAAKAIMEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAALQAhQQFxBEAgACAAKAKYASAAKAI0IAAvAWgQsAEiAjYCMCACRQRAIAAoAjQQGyAAQX82ApwBDAILIAAoAjQQGyAAIAAoAjA2AjQLIAAtACBBAXEEQCAAIAAoApgBIAAoAjRBABCvASICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AH0EBcQRAIAAoApgBIQMgACgCNCEEIAAoApABKAIQIQUgACgCkAEvAVAhBiMAQRBrIgIkACACIAM2AgwgAiAENgIIIAIgBTYCBCACIAY2AgAgAigCDCACKAIIIAIoAgRBASACKAIAELIBIQMgAkEQaiQAIAAgAyICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AHEEBcQRAIABBADYCBAJAIAAoApABKAJUBEAgACAAKAKQASgCVDYCBAwBCyAAKAKYASgCHARAIAAgACgCmAEoAhw2AgQLCyAAIAAoApABLwFSQQEQeyICNgIIIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAoApABLwFSQQEgACgCBCAAKAIIEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAAIAAoApgBKAIAEDUiBzcDgAEgB0IAUwRAIAAoApgBQQhqIAAoApgBKAIAEBcgAEF/NgKcAQwBCyAAKAKYASEDIAAoAjQhBCAAKQNwIQcjAEHAwABrIgIkACACIAM2ArhAIAIgBDYCtEAgAiAHNwOoQAJAIAIoArRAEEhBAEgEQCACKAK4QEEIaiACKAK0QBAXIAJBfzYCvEAMAQsgAkEANgIMIAJCADcDEANAAkAgAiACKAK0QCACQSBqQoDAABArIgc3AxggB0IAVw0AIAIoArhAIAJBIGogAikDGBA2QQBIBEAgAkF/NgIMBSACKQMYQoDAAFINAiACKAK4QCgCVEUNAiACKQOoQEIAVw0CIAIgAikDGCACKQMQfDcDECACKAK4QCgCVCACKQMQuSACKQOoQLmjEFcMAgsLCyACKQMYQgBTBEAgAigCuEBBCGogAigCtEAQFyACQX82AgwLIAIoArRAEC8aIAIgAigCDDYCvEALIAIoArxAIQMgAkHAwABqJAAgACADNgIsIAAoAjQgAEE4ahA5QQBIBEAgACgCmAFBCGogACgCNBAXIABBfzYCLAsgACgCNCEDIwBBEGsiAiQAIAIgAzYCCAJAA0AgAigCCARAIAIoAggpAxhCgIAEg0IAUgRAIAIgAigCCEEAQgBBEBAgNwMAIAIpAwBCAFMEQCACQf8BOgAPDAQLIAIpAwBCA1UEQCACKAIIQQxqQRRBABAUIAJB/wE6AA8MBAsgAiACKQMAPAAPDAMFIAIgAigCCCgCADYCCAwCCwALCyACQQA6AA8LIAIsAA8hAyACQRBqJAAgACADIgI6ACMgAkEYdEEYdUEASARAIAAoApgBQQhqIAAoAjQQFyAAQX82AiwLIAAoAjQQGyAAKAIsQQBIBEAgAEF/NgKcAQwBCyAAIAAoApgBKAIAEDUiBzcDeCAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApgBKAIAIAApA4gBEJsBQQBIBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAApAzhC5ACDQuQAUgRAIAAoApgBQQhqQRRBABAUIABBfzYCnAEMAQsgACgCkAEoAgBBIHFFBEACQCAAKQM4QhCDQgBSBEAgACgCkAEgACgCYDYCFAwBCyAAKAKQAUEUahABGgsLIAAoApABIAAvAWg2AhAgACgCkAEgACgCZDYCGCAAKAKQASAAKQNQNwMoIAAoApABIAApA3ggACkDgAF9NwMgIAAoApABIAAoApABLwEMQfn/A3EgAC0AI0EBdHI7AQwgACgCkAEhAyAAKAIkQYAIcUEARyEEIwBBEGsiAiQAIAIgAzYCDCACIAQ6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABBlQQFxRQ0BCyACKAIMQS07AQoMAQsCQCACKAIMKAIQQQhHBEAgAigCDC8BUkEBRw0BCyACKAIMQRQ7AQoMAQsgAiACKAIMKAIwEFEiAzsBCCADQf//A3EEQCACKAIMKAIwKAIAIAIvAQhBAWtqLQAAQS9GBEAgAigCDEEUOwEKDAILCyACKAIMQQo7AQoLIAJBEGokACAAIAAoApgBIAAoApABIAAoAiQQVCICNgIsIAJBAEgEQCAAQX82ApwBDAELIAAoAiggACgCLEcEQCAAKAKYAUEIakEUQQAQFCAAQX82ApwBDAELIAAoApgBKAIAIAApA3gQmwFBAEgEQCAAKAKYAUEIaiAAKAKYASgCABAXIABBfzYCnAEMAQsgAEEANgKcAQsgACgCnAEhAiAAQaABaiQAIAJBAEgLBEAgAUEBNgIsIAEoAggEQCABKAIIEBsLDAQLIAEoAggEQCABKAIIEBsLDAELIAEoAgwiACAALwEMQff/A3E7AQwgASgCWCABKAIMQYACEFRBAEgEQCABQQE2AiwMAwsgASABKAJYIAEpA1AgASgCWEEIahBgIgc3AwAgB1AEQCABQQE2AiwMAwsgASgCWCgCACABKQMAQQAQJ0EASARAIAEoAlhBCGogASgCWCgCABAXIAFBATYCLAwDCwJ/IAEoAlghAiABKAIMKQMgIQcjAEGgwABrIgAkACAAIAI2AphAIAAgBzcDkEAgACAAKQOQQLo5AwACQANAIAApA5BAUEUEQCAAIAApA5BAQoDAAFYEfkKAwAAFIAApA5BACz4CDCAAKAKYQCgCACAAQRBqIAAoAgytIAAoAphAQQhqEGRBAEgEQCAAQX82ApxADAMLIAAoAphAIABBEGogACgCDK0QNkEASARAIABBfzYCnEAMAwUgACAAKQOQQCAANQIMfTcDkEAgACgCmEAoAlQgACsDACAAKQOQQLqhIAArAwCjEFcMAgsACwsgAEEANgKcQAsgACgCnEAhAiAAQaDAAGokACACQQBICwRAIAFBATYCLAwDCwsLIAEgASkDSEIBfDcDSAwBCwsgASgCLEUEQAJ/IAEoAlghACABKAIoIQMgASkDQCEHIwBBMGsiAiQAIAIgADYCKCACIAM2AiQgAiAHNwMYIAIgAigCKCgCABA1Igc3AxACQCAHQgBTBEAgAkF/NgIsDAELIAIoAighAyACKAIkIQQgAikDGCEHIwBBwAFrIgAkACAAIAM2ArQBIAAgBDYCsAEgACAHNwOoASAAIAAoArQBKAIAEDUiBzcDIAJAIAdCAFMEQCAAKAK0AUEIaiAAKAK0ASgCABAXIABCfzcDuAEMAQsgACAAKQMgNwOgASAAQQA6ABcgAEIANwMYA0AgACkDGCAAKQOoAVQEQCAAIAAoArQBKAJAIAAoArABIAApAxinQQN0aikDAKdBBHRqNgIMIAAgACgCtAECfyAAKAIMKAIEBEAgACgCDCgCBAwBCyAAKAIMKAIAC0GABBBUIgM2AhAgA0EASARAIABCfzcDuAEMAwsgACgCEARAIABBAToAFwsgACAAKQMYQgF8NwMYDAELCyAAIAAoArQBKAIAEDUiBzcDICAHQgBTBEAgACgCtAFBCGogACgCtAEoAgAQFyAAQn83A7gBDAELIAAgACkDICAAKQOgAX03A5gBAkAgACkDoAFC/////w9YBEAgACkDqAFC//8DWA0BCyAAQQE6ABcLIAAgAEEwakLiABApIgM2AiwgA0UEQCAAKAK0AUEIakEOQQAQFCAAQn83A7gBDAELIAAtABdBAXEEQCAAKAIsQecSQQQQQSAAKAIsQiwQLSAAKAIsQS0QHyAAKAIsQS0QHyAAKAIsQQAQISAAKAIsQQAQISAAKAIsIAApA6gBEC0gACgCLCAAKQOoARAtIAAoAiwgACkDmAEQLSAAKAIsIAApA6ABEC0gACgCLEHiEkEEEEEgACgCLEEAECEgACgCLCAAKQOgASAAKQOYAXwQLSAAKAIsQQEQIQsgACgCLEHsEkEEEEEgACgCLEEAECEgACgCLCAAKQOoAUL//wNaBH5C//8DBSAAKQOoAQunQf//A3EQHyAAKAIsIAApA6gBQv//A1oEfkL//wMFIAApA6gBC6dB//8DcRAfIAAoAiwgACkDmAFC/////w9aBH9BfwUgACkDmAGnCxAhIAAoAiwgACkDoAFC/////w9aBH9BfwUgACkDoAGnCxAhIAACfyAAKAK0AS0AKEEBcQRAIAAoArQBKAIkDAELIAAoArQBKAIgCzYClAEgACgCLAJ/IAAoApQBBEAgACgClAEvAQQMAQtBAAtB//8DcRAfAn8jAEEQayIDIAAoAiw2AgwgAygCDC0AAEEBcUULBEAgACgCtAFBCGpBFEEAEBQgACgCLBAWIABCfzcDuAEMAQsgACgCtAECfyMAQRBrIgMgACgCLDYCDCADKAIMKAIECwJ+IwBBEGsiAyAAKAIsNgIMAn4gAygCDC0AAEEBcQRAIAMoAgwpAxAMAQtCAAsLEDZBAEgEQCAAKAIsEBYgAEJ/NwO4AQwBCyAAKAIsEBYgACgClAEEQCAAKAK0ASAAKAKUASgCACAAKAKUAS8BBK0QNkEASARAIABCfzcDuAEMAgsLIAAgACkDmAE3A7gBCyAAKQO4ASEHIABBwAFqJAAgAiAHNwMAIAdCAFMEQCACQX82AiwMAQsgAiACKAIoKAIAEDUiBzcDCCAHQgBTBEAgAkF/NgIsDAELIAJBADYCLAsgAigCLCEAIAJBMGokACAAQQBICwRAIAFBATYCLAsLIAEoAigQFSABKAIsRQRAAn8gASgCWCgCACECIwBBEGsiACQAIAAgAjYCCAJAIAAoAggoAiRBAUcEQCAAKAIIQQxqQRJBABAUIABBfzYCDAwBCyAAKAIIKAIgQQFLBEAgACgCCEEMakEdQQAQFCAAQX82AgwMAQsgACgCCCgCIARAIAAoAggQL0EASARAIABBfzYCDAwCCwsgACgCCEEAQgBBCRAgQgBTBEAgACgCCEECNgIkIABBfzYCDAwBCyAAKAIIQQA2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAILBEAgASgCWEEIaiABKAJYKAIAEBcgAUEBNgIsCwsgASgCWCgCVCECIwBBEGsiACQAIAAgAjYCDCAAKAIMRAAAAAAAAPA/EFcgAEEQaiQAIAEoAiwEQCABKAJYKAIAEGIgAUF/NgJcDAELIAEoAlgQPCABQQA2AlwLIAEoAlwhACABQeAAaiQAIAAL0g4CB38CfiMAQTBrIgMkACADIAA2AiggAyABNgIkIAMgAjYCICMAQRBrIgAgA0EIajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADKAIoIQAjAEEgayIEJAAgBCAANgIYIARCADcDECAEQn83AwggBCADQQhqNgIEAkACQCAEKAIYBEAgBCkDCEJ/WQ0BCyAEKAIEQRJBABAUIARBADYCHAwBCyAEKAIYIQAgBCkDECEKIAQpAwghCyAEKAIEIQEjAEGgAWsiAiQAIAIgADYCmAEgAkEANgKUASACIAo3A4gBIAIgCzcDgAEgAkEANgJ8IAIgATYCeAJAAkAgAigClAENACACKAKYAQ0AIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACKQOAAUIAUwRAIAJCADcDgAELAkAgAikDiAFC////////////AFgEQCACKQOIASACKQOIASACKQOAAXxYDQELIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACQYgBEBgiADYCdCAARQRAIAIoAnhBDkEAEBQgAkEANgKcAQwBCyACKAJ0QQA2AhggAigCmAEEQCACKAKYASIAEC5BAWoiARAYIgUEfyAFIAAgARAZBUEACyEAIAIoAnQgADYCGCAARQRAIAIoAnhBDkEAEBQgAigCdBAVIAJBADYCnAEMAgsLIAIoAnQgAigClAE2AhwgAigCdCACKQOIATcDaCACKAJ0IAIpA4ABNwNwAkAgAigCfARAIAIoAnQiACACKAJ8IgEpAwA3AyAgACABKQMwNwNQIAAgASkDKDcDSCAAIAEpAyA3A0AgACABKQMYNwM4IAAgASkDEDcDMCAAIAEpAwg3AyggAigCdEEANgIoIAIoAnQiACAAKQMgQv7///8PgzcDIAwBCyACKAJ0QSBqEDsLIAIoAnQpA3BCAFIEQCACKAJ0IAIoAnQpA3A3AzggAigCdCIAIAApAyBCBIQ3AyALIwBBEGsiACACKAJ0QdgAajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCACKAJ0QQA2AoABIAIoAnRBADYChAEjAEEQayIAIAIoAnQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggAkF/NgIEIAJBBzYCAEEOIAIQNEI/hCEKIAIoAnQgCjcDEAJAIAIoAnQoAhgEQCACIAIoAnQoAhggAkEYahCmAUEATjoAFyACLQAXQQFxRQRAAkAgAigCdCkDaFBFDQAgAigCdCkDcFBFDQAgAigCdEL//wM3AxALCwwBCwJAIAIoAnQoAhwiACgCTEEASA0ACyAAKAI8IQBBACEFIwBBIGsiBiQAAn8CQCAAIAJBGGoiCRAKIgFBeEYEQCMAQSBrIgckACAAIAdBCGoQCSIIBH9BtJsBIAg2AgBBAAVBAQshCCAHQSBqJAAgCA0BCyABQYFgTwR/QbSbAUEAIAFrNgIAQX8FIAELDAELA0AgBSAGaiIBIAVBxxJqLQAAOgAAIAVBDkchByAFQQFqIQUgBw0ACwJAIAAEQEEPIQUgACEBA0AgAUEKTwRAIAVBAWohBSABQQpuIQEMAQsLIAUgBmpBADoAAANAIAYgBUEBayIFaiAAIABBCm4iAUEKbGtBMHI6AAAgAEEJSyEHIAEhACAHDQALDAELIAFBMDoAACAGQQA6AA8LIAYgCRACIgBBgWBPBH9BtJsBQQAgAGs2AgBBfwUgAAsLIQAgBkEgaiQAIAIgAEEATjoAFwsCQCACLQAXQQFxRQRAIAIoAnRB2ABqQQVBtJsBKAIAEBQMAQsgAigCdCkDIEIQg1AEQCACKAJ0IAIoAlg2AkggAigCdCIAIAApAyBCEIQ3AyALIAIoAiRBgOADcUGAgAJGBEAgAigCdEL/gQE3AxAgAikDQCACKAJ0KQNoIAIoAnQpA3B8VARAIAIoAnhBEkEAEBQgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAMLIAIoAnQpA3BQBEAgAigCdCACKQNAIAIoAnQpA2h9NwM4IAIoAnQiACAAKQMgQgSENwMgAkAgAigCdCgCGEUNACACKQOIAVBFDQAgAigCdEL//wM3AxALCwsLIAIoAnQiACAAKQMQQoCAEIQ3AxAgAkEeIAIoAnQgAigCeBCDASIANgJwIABFBEAgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAELIAIgAigCcDYCnAELIAIoApwBIQAgAkGgAWokACAEIAA2AhwLIAQoAhwhACAEQSBqJAAgAyAANgIYAkAgAEUEQCADKAIgIANBCGoQnQEgA0EIahA4IANBADYCLAwBCyADIAMoAhggAygCJCADQQhqEJwBIgA2AhwgAEUEQCADKAIYEBsgAygCICADQQhqEJ0BIANBCGoQOCADQQA2AiwMAQsgA0EIahA4IAMgAygCHDYCLAsgAygCLCEAIANBMGokACAAC5IfAQZ/IwBB4ABrIgQkACAEIAA2AlQgBCABNgJQIAQgAjcDSCAEIAM2AkQgBCAEKAJUNgJAIAQgBCgCUDYCPAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAkQOEwYHAgwEBQoOAQMJEAsPDQgREQARCyAEQgA3A1gMEQsgBCgCQCgCGEUEQCAEKAJAQRxBABAUIARCfzcDWAwRCyAEKAJAIQAjAEGAAWsiASQAIAEgADYCeCABIAEoAngoAhgQLkEIahAYIgA2AnQCQCAARQRAIAEoAnhBDkEAEBQgAUF/NgJ8DAELAkAgASgCeCgCGCABQRBqEKYBRQRAIAEgASgCHDYCbAwBCyABQX82AmwLIAEoAnQhACABIAEoAngoAhg2AgAgAEGrEiABEG8gASgCdCEDIAEoAmwhByMAQTBrIgAkACAAIAM2AiggACAHNgIkIABBADYCECAAIAAoAiggACgCKBAuajYCGCAAIAAoAhhBAWs2AhwDQCAAKAIcIAAoAihPBH8gACgCHCwAAEHYAEYFQQALQQFxBEAgACAAKAIQQQFqNgIQIAAgACgCHEEBazYCHAwBCwsCQCAAKAIQRQRAQbSbAUEcNgIAIABBfzYCLAwBCyAAIAAoAhxBAWo2AhwDQCMAQRBrIgckAAJAAn8jAEEQayIDJAAgAyAHQQhqNgIIIANBBDsBBiADQegLQQBBABBsIgU2AgACQCAFQQBIBEAgA0EAOgAPDAELAn8gAygCACEGIAMoAgghCCADLwEGIQkjAEEQayIFJAAgBSAJNgIMIAUgCDYCCCAGIAVBCGpBASAFQQRqEAYiBgR/QbSbASAGNgIAQX8FQQALIQYgBSgCBCEIIAVBEGokACADLwEGQX8gCCAGG0cLBEAgAygCABBrIANBADoADwwBCyADKAIAEGsgA0EBOgAPCyADLQAPQQFxIQUgA0EQaiQAIAULBEAgByAHKAIINgIMDAELQcCgAS0AAEEBcUUEQEEAEAEhBgJAQciZASgCACIDRQRAQcyZASgCACAGNgIADAELQdCZAUEDQQNBASADQQdGGyADQR9GGzYCAEG8oAFBADYCAEHMmQEoAgAhBSADQQFOBEAgBq0hAkEAIQYDQCAFIAZBAnRqIAJCrf7V5NSF/ajYAH5CAXwiAkIgiD4CACAGQQFqIgYgA0cNAAsLIAUgBSgCAEEBcjYCAAsLQcyZASgCACEDAkBByJkBKAIAIgVFBEAgAyADKAIAQe2cmY4EbEG54ABqQf////8HcSIDNgIADAELIANB0JkBKAIAIgZBAnRqIgggCCgCACADQbygASgCACIIQQJ0aigCAGoiAzYCAEG8oAFBACAIQQFqIgggBSAIRhs2AgBB0JkBQQAgBkEBaiIGIAUgBkYbNgIAIANBAXYhAwsgByADNgIMCyAHKAIMIQMgB0EQaiQAIAAgAzYCDCAAIAAoAhw2AhQDQCAAKAIUIAAoAhhJBEAgACAAKAIMQSRwOgALAn8gACwAC0EKSARAIAAsAAtBMGoMAQsgACwAC0HXAGoLIQMgACAAKAIUIgdBAWo2AhQgByADOgAAIAAgACgCDEEkbjYCDAwBCwsgACgCKCEDIAAgACgCJEF/RgR/QbYDBSAAKAIkCzYCACAAIANBwoEgIAAQbCIDNgIgIANBAE4EQCAAKAIkQX9HBEAgACgCKCAAKAIkEA8iA0GBYE8Ef0G0mwFBACADazYCAEEABSADCxoLIAAgACgCIDYCLAwCC0G0mwEoAgBBFEYNAAsgAEF/NgIsCyAAKAIsIQMgAEEwaiQAIAEgAyIANgJwIABBf0YEQCABKAJ4QQxBtJsBKAIAEBQgASgCdBAVIAFBfzYCfAwBCyABIAEoAnBBoxIQoQEiADYCaCAARQRAIAEoAnhBDEG0mwEoAgAQFCABKAJwEGsgASgCdBBtGiABKAJ0EBUgAUF/NgJ8DAELIAEoAnggASgCaDYChAEgASgCeCABKAJ0NgKAASABQQA2AnwLIAEoAnwhACABQYABaiQAIAQgAKw3A1gMEAsgBCgCQCgCGARAIAQoAkAoAhwQVhogBCgCQEEANgIcCyAEQgA3A1gMDwsgBCgCQCgChAEQVkEASARAIAQoAkBBADYChAEgBCgCQEEGQbSbASgCABAUCyAEKAJAQQA2AoQBIAQoAkAoAoABIAQoAkAoAhgQCCIAQYFgTwR/QbSbAUEAIABrNgIAQX8FIAALQQBIBEAgBCgCQEECQbSbASgCABAUIARCfzcDWAwPCyAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDA4LIAQgBCgCQCAEKAJQIAQpA0gQQzcDWAwNCyAEKAJAKAIYEBUgBCgCQCgCgAEQFSAEKAJAKAIcBEAgBCgCQCgCHBBWGgsgBCgCQBAVIARCADcDWAwMCyAEKAJAKAIYBEAgBCgCQCgCGCEBIwBBIGsiACQAIAAgATYCGCAAQQA6ABcgAEGAgCA2AgwCQCAALQAXQQFxBEAgACAAKAIMQQJyNgIMDAELIAAgACgCDDYCDAsgACgCGCEBIAAoAgwhAyAAQbYDNgIAIAAgASADIAAQbCIBNgIQAkAgAUEASARAIABBADYCHAwBCyAAIAAoAhBBoxJBoBIgAC0AF0EBcRsQoQEiATYCCCABRQRAIABBADYCHAwBCyAAIAAoAgg2AhwLIAAoAhwhASAAQSBqJAAgBCgCQCABNgIcIAFFBEAgBCgCQEELQbSbASgCABAUIARCfzcDWAwNCwsgBCgCQCkDaEIAUgRAIAQoAkAoAhwgBCgCQCkDaCAEKAJAEJ8BQQBIBEAgBEJ/NwNYDA0LCyAEKAJAQgA3A3ggBEIANwNYDAsLAkAgBCgCQCkDcEIAUgRAIAQgBCgCQCkDcCAEKAJAKQN4fTcDMCAEKQMwIAQpA0hWBEAgBCAEKQNINwMwCwwBCyAEIAQpA0g3AzALIAQpAzBC/////w9WBEAgBEL/////DzcDMAsgBAJ/IAQoAjwhByAEKQMwpyEAIAQoAkAoAhwiAygCTBogAyADLQBKIgFBAWsgAXI6AEogAygCCCADKAIEIgVrIgFBAUgEfyAABSAHIAUgASAAIAAgAUsbIgEQGRogAyADKAIEIAFqNgIEIAEgB2ohByAAIAFrCyIBBEADQAJAAn8gAyADLQBKIgVBAWsgBXI6AEogAygCFCADKAIcSwRAIANBAEEAIAMoAiQRAQAaCyADQQA2AhwgA0IANwMQIAMoAgAiBUEEcQRAIAMgBUEgcjYCAEF/DAELIAMgAygCLCADKAIwaiIGNgIIIAMgBjYCBCAFQRt0QR91C0UEQCADIAcgASADKAIgEQEAIgVBAWpBAUsNAQsgACABawwDCyAFIAdqIQcgASAFayIBDQALCyAACyIANgIsIABFBEACfyAEKAJAKAIcIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxBEAgBCgCQEEFQbSbASgCABAUIARCfzcDWAwMCwsgBCgCQCIAIAApA3ggBCgCLK18NwN4IAQgBCgCLK03A1gMCgsgBCgCQCgCGBBtQQBIBEAgBCgCQEEWQbSbASgCABAUIARCfzcDWAwKCyAEQgA3A1gMCQsgBCgCQCgChAEEQCAEKAJAKAKEARBWGiAEKAJAQQA2AoQBCyAEKAJAKAKAARBtGiAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDAgLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIYIAQoAhhFBEAgBEJ/NwNYDAgLIARBATYCHAJAAkACQAJAAkAgBCgCGCgCCA4DAAIBAwsgBCAEKAIYKQMANwMgDAMLAkAgBCgCQCkDcFAEQCAEKAJAKAIcIAQoAhgpAwBBAiAEKAJAEGpBAEgEQCAEQn83A1gMDQsgBCAEKAJAKAIcEKMBIgI3AyAgAkIAUwRAIAQoAkBBBEG0mwEoAgAQFCAEQn83A1gMDQsgBCAEKQMgIAQoAkApA2h9NwMgIARBADYCHAwBCyAEIAQoAkApA3AgBCgCGCkDAHw3AyALDAILIAQgBCgCQCkDeCAEKAIYKQMAfDcDIAwBCyAEKAJAQRJBABAUIARCfzcDWAwICwJAAkAgBCkDIEIAUw0AIAQoAkApA3BCAFIEQCAEKQMgIAQoAkApA3BWDQELIAQoAkApA2ggBCkDICAEKAJAKQNofFgNAQsgBCgCQEESQQAQFCAEQn83A1gMCAsgBCgCQCAEKQMgNwN4IAQoAhwEQCAEKAJAKAIcIAQoAkApA3ggBCgCQCkDaHwgBCgCQBCfAUEASARAIARCfzcDWAwJCwsgBEIANwNYDAcLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIUIAQoAhRFBEAgBEJ/NwNYDAcLIAQoAkAoAoQBIAQoAhQpAwAgBCgCFCgCCCAEKAJAEGpBAEgEQCAEQn83A1gMBwsgBEIANwNYDAYLIAQpA0hCOFQEQCAEQn83A1gMBgsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsEQCAEKAJAAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgALAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgQLEBQgBEJ/NwNYDAYLIAQoAlAiACAEKAJAIgEpACA3AAAgACABKQBQNwAwIAAgASkASDcAKCAAIAEpAEA3ACAgACABKQA4NwAYIAAgASkAMDcAECAAIAEpACg3AAggBEI4NwNYDAULIAQgBCgCQCkDEDcDWAwECyAEIAQoAkApA3g3A1gMAwsgBCAEKAJAKAKEARCjATcDCCAEKQMIQgBTBEAgBCgCQEEeQbSbASgCABAUIARCfzcDWAwDCyAEIAQpAwg3A1gMAgsgBCgCQCgChAEiACgCTEEAThogACAAKAIAQU9xNgIAIAQCfyAEKAJQIQEgBCkDSKciACAAAn8gBCgCQCgChAEiAygCTEF/TARAIAEgACADEHEMAQsgASAAIAMQcQsiAUYNABogAQs2AgQCQCAEKQNIIAQoAgStUQRAAn8gBCgCQCgChAEiACgCTEF/TARAIAAoAgAMAQsgACgCAAtBBXZBAXFFDQELIAQoAkBBBkG0mwEoAgAQFCAEQn83A1gMAgsgBCAEKAIErTcDWAwBCyAEKAJAQRxBABAUIARCfzcDWAsgBCkDWCECIARB4ABqJAAgAgsJACAAKAI8EAUL5AEBBH8jAEEgayIDJAAgAyABNgIQIAMgAiAAKAIwIgRBAEdrNgIUIAAoAiwhBSADIAQ2AhwgAyAFNgIYQX8hBAJAAkAgACgCPCADQRBqQQIgA0EMahAGIgUEf0G0mwEgBTYCAEF/BUEAC0UEQCADKAIMIgRBAEoNAQsgACAAKAIAIARBMHFBEHNyNgIADAELIAQgAygCFCIGTQ0AIAAgACgCLCIFNgIEIAAgBSAEIAZrajYCCCAAKAIwBEAgACAFQQFqNgIEIAEgAmpBAWsgBS0AADoAAAsgAiEECyADQSBqJAAgBAv0AgEHfyMAQSBrIgMkACADIAAoAhwiBTYCECAAKAIUIQQgAyACNgIcIAMgATYCGCADIAQgBWsiATYCFCABIAJqIQVBAiEHIANBEGohAQJ/AkACQCAAKAI8IANBEGpBAiADQQxqEAMiBAR/QbSbASAENgIAQX8FQQALRQRAA0AgBSADKAIMIgRGDQIgBEF/TA0DIAEgBCABKAIEIghLIgZBA3RqIgkgBCAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAFIARrIQUgACgCPCABQQhqIAEgBhsiASAHIAZrIgcgA0EMahADIgQEf0G0mwEgBDYCAEF/BUEAC0UNAAsLIAVBf0cNAQsgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCECACDAELIABBADYCHCAAQgA3AxAgACAAKAIAQSByNgIAQQAgB0ECRg0AGiACIAEoAgRrCyEAIANBIGokACAAC1IBAX8jAEEQayIDJAAgACgCPCABpyABQiCIpyACQf8BcSADQQhqEA0iAAR/QbSbASAANgIAQX8FQQALIQAgAykDCCEBIANBEGokAEJ/IAEgABsL1QQBBX8jAEGwAWsiASQAIAEgADYCqAEgASgCqAEQOAJAAkAgASgCqAEoAgBBAE4EQCABKAKoASgCAEGAFCgCAEgNAQsgASABKAKoASgCADYCECABQSBqQY8SIAFBEGoQbyABQQA2AqQBIAEgAUEgajYCoAEMAQsgASABKAKoASgCAEECdEGAE2ooAgA2AqQBAkACQAJAAkAgASgCqAEoAgBBAnRBkBRqKAIAQQFrDgIAAQILIAEoAqgBKAIEIQJBkJkBKAIAIQRBACEAAkACQANAIAIgAEGgiAFqLQAARwRAQdcAIQMgAEEBaiIAQdcARw0BDAILCyAAIgMNAEGAiQEhAgwBC0GAiQEhAANAIAAtAAAhBSAAQQFqIgIhACAFDQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyABKAJcQYUPNgIYIAEoAlRB0f4ANgIEDAQLDAILIAEoAgxBwABxRQRAIAEgASgCJCABLwESIAEoAixBASABKAIMdEEBa3FqQQJ0aigBADYBEAwBCwsgASgCDEEgcQRAIAEoAlRBv/4ANgIEDAILIAEoAlxB6Q42AhggASgCVEHR/gA2AgQMAQsgASgCUCABKAJMSQR/IAEoAkggASgCQEkFQQALQQFxDQELCyABIAEoAihBA3Y2AgggASABKAJQIAEoAghrNgJQIAEgASgCKCABKAIIQQN0azYCKCABIAEoAixBASABKAIodEEBa3E2AiwgASgCXCABKAJQNgIAIAEoAlwgASgCSDYCDCABKAJcAn8gASgCUCABKAJMSQRAIAEoAkwgASgCUGtBBWoMAQtBBSABKAJQIAEoAkxraws2AgQgASgCXAJ/IAEoAkggASgCQEkEQCABKAJAIAEoAkhrQYECagwBC0GBAiABKAJIIAEoAkBraws2AhAgASgCVCABKAIsNgI8IAEoAlQgASgCKDYCQCAAIAAoAlgoAgw2AkggACAAKAJYKAIQNgJAIAAgACgCWCgCADYCTCAAIAAoAlgoAgQ2AkQgACAAKAJQKAI8NgI8IAAgACgCUCgCQDYCOCAAKAJQKAIEQb/+AEYEQCAAKAJQQX82Asg3CwwNCyAAKAJQQQA2Asg3A0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDQ0gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC0AIEUNACAALQAgQfABcQ0AIAAgACgBIDYBGANAAkAgACAAKAJQKAJQIAAvARogACgCPEEBIAAtABkgAC0AGGp0QQFrcSAALQAZdmpBAnRqKAEANgEgIAAoAjggAC0AGSAALQAhak8NACAAKAJERQ0OIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AGXY2AjwgACAAKAI4IAAtABlrNgI4IAAoAlAiASAALQAZIAEoAsg3ajYCyDcLIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggACgCUCIBIAAtACEgASgCyDdqNgLINyAAKAJQIAAvASI2AkQgAC0AIEUEQCAAKAJQQc3+ADYCBAwNCyAALQAgQSBxBEAgACgCUEF/NgLINyAAKAJQQb/+ADYCBAwNCyAALQAgQcAAcQRAIAAoAlhB6Q42AhggACgCUEHR/gA2AgQMDQsgACgCUCAALQAgQQ9xNgJMIAAoAlBByf4ANgIECyAAKAJQKAJMBEADQCAAKAI4IAAoAlAoAkxJBEAgACgCREUNDSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCIBIAEoAkQgACgCPEEBIAAoAlAoAkx0QQFrcWo2AkQgACAAKAI8IAAoAlAoAkx2NgI8IAAgACgCOCAAKAJQKAJMazYCOCAAKAJQIgEgACgCUCgCTCABKALIN2o2Asg3CyAAKAJQIAAoAlAoAkQ2Asw3IAAoAlBByv4ANgIECwNAAkAgACAAKAJQKAJUIAAoAjxBASAAKAJQKAJcdEEBa3FBAnRqKAEANgEgIAAtACEgACgCOE0NACAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAALQAgQfABcUUEQCAAIAAoASA2ARgDQAJAIAAgACgCUCgCVCAALwEaIAAoAjxBASAALQAZIAAtABhqdEEBa3EgAC0AGXZqQQJ0aigBADYBICAAKAI4IAAtABkgAC0AIWpPDQAgACgCREUNDCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtABl2NgI8IAAgACgCOCAALQAZazYCOCAAKAJQIgEgAC0AGSABKALIN2o2Asg3CyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAiASAALQAhIAEoAsg3ajYCyDcgAC0AIEHAAHEEQCAAKAJYQYUPNgIYIAAoAlBB0f4ANgIEDAsLIAAoAlAgAC8BIjYCSCAAKAJQIAAtACBBD3E2AkwgACgCUEHL/gA2AgQLIAAoAlAoAkwEQANAIAAoAjggACgCUCgCTEkEQCAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIgEgASgCSCAAKAI8QQEgACgCUCgCTHRBAWtxajYCSCAAIAAoAjwgACgCUCgCTHY2AjwgACAAKAI4IAAoAlAoAkxrNgI4IAAoAlAiASAAKAJQKAJMIAEoAsg3ajYCyDcLIAAoAlBBzP4ANgIECyAAKAJARQ0HIAAgACgCMCAAKAJAazYCLAJAIAAoAlAoAkggACgCLEsEQCAAIAAoAlAoAkggACgCLGs2AiwgACgCLCAAKAJQKAIwSwRAIAAoAlAoAsQ3BEAgACgCWEHdDDYCGCAAKAJQQdH+ADYCBAwMCwsCQCAAKAIsIAAoAlAoAjRLBEAgACAAKAIsIAAoAlAoAjRrNgIsIAAgACgCUCgCOCAAKAJQKAIsIAAoAixrajYCKAwBCyAAIAAoAlAoAjggACgCUCgCNCAAKAIsa2o2AigLIAAoAiwgACgCUCgCREsEQCAAIAAoAlAoAkQ2AiwLDAELIAAgACgCSCAAKAJQKAJIazYCKCAAIAAoAlAoAkQ2AiwLIAAoAiwgACgCQEsEQCAAIAAoAkA2AiwLIAAgACgCQCAAKAIsazYCQCAAKAJQIgEgASgCRCAAKAIsazYCRANAIAAgACgCKCIBQQFqNgIoIAEtAAAhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAIsQQFrIgE2AiwgAQ0ACyAAKAJQKAJERQRAIAAoAlBByP4ANgIECwwICyAAKAJARQ0GIAAoAlAoAkQhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAJAQQFrNgJAIAAoAlBByP4ANgIEDAcLIAAoAlAoAgwEQANAIAAoAjhBIEkEQCAAKAJERQ0IIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjAgACgCQGs2AjAgACgCWCIBIAAoAjAgASgCFGo2AhQgACgCUCIBIAAoAjAgASgCIGo2AiACQCAAKAJQKAIMQQRxRQ0AIAAoAjBFDQACfyAAKAJQKAIUBEAgACgCUCgCHCAAKAJIIAAoAjBrIAAoAjAQGgwBCyAAKAJQKAIcIAAoAkggACgCMGsgACgCMBA9CyEBIAAoAlAgATYCHCAAKAJYIAE2AjALIAAgACgCQDYCMAJAIAAoAlAoAgxBBHFFDQACfyAAKAJQKAIUBEAgACgCPAwBCyAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoLIAAoAlAoAhxGDQAgACgCWEHIDDYCGCAAKAJQQdH+ADYCBAwICyAAQQA2AjwgAEEANgI4CyAAKAJQQc/+ADYCBAsCQCAAKAJQKAIMRQ0AIAAoAlAoAhRFDQADQCAAKAI4QSBJBEAgACgCREUNByAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPCAAKAJQKAIgRwRAIAAoAlhBsQw2AhggACgCUEHR/gA2AgQMBwsgAEEANgI8IABBADYCOAsgACgCUEHQ/gA2AgQLIABBATYCEAwDCyAAQX02AhAMAgsgAEF8NgJcDAMLIABBfjYCXAwCCwsgACgCWCAAKAJINgIMIAAoAlggACgCQDYCECAAKAJYIAAoAkw2AgAgACgCWCAAKAJENgIEIAAoAlAgACgCPDYCPCAAKAJQIAAoAjg2AkACQAJAIAAoAlAoAiwNACAAKAIwIAAoAlgoAhBGDQEgACgCUCgCBEHR/gBPDQEgACgCUCgCBEHO/gBJDQAgACgCVEEERg0BCwJ/IAAoAlghAiAAKAJYKAIMIQMgACgCMCAAKAJYKAIQayEEIwBBIGsiASQAIAEgAjYCGCABIAM2AhQgASAENgIQIAEgASgCGCgCHDYCDAJAIAEoAgwoAjhFBEAgASgCGCgCKEEBIAEoAgwoAih0QQEgASgCGCgCIBEBACECIAEoAgwgAjYCOCABKAIMKAI4RQRAIAFBATYCHAwCCwsgASgCDCgCLEUEQCABKAIMQQEgASgCDCgCKHQ2AiwgASgCDEEANgI0IAEoAgxBADYCMAsCQCABKAIQIAEoAgwoAixPBEAgASgCDCgCOCABKAIUIAEoAgwoAixrIAEoAgwoAiwQGRogASgCDEEANgI0IAEoAgwgASgCDCgCLDYCMAwBCyABIAEoAgwoAiwgASgCDCgCNGs2AgggASgCCCABKAIQSwRAIAEgASgCEDYCCAsgASgCDCgCOCABKAIMKAI0aiABKAIUIAEoAhBrIAEoAggQGRogASABKAIQIAEoAghrNgIQAkAgASgCEARAIAEoAgwoAjggASgCFCABKAIQayABKAIQEBkaIAEoAgwgASgCEDYCNCABKAIMIAEoAgwoAiw2AjAMAQsgASgCDCICIAEoAgggAigCNGo2AjQgASgCDCgCNCABKAIMKAIsRgRAIAEoAgxBADYCNAsgASgCDCgCMCABKAIMKAIsSQRAIAEoAgwiAiABKAIIIAIoAjBqNgIwCwsLIAFBADYCHAsgASgCHCECIAFBIGokACACCwRAIAAoAlBB0v4ANgIEIABBfDYCXAwCCwsgACAAKAI0IAAoAlgoAgRrNgI0IAAgACgCMCAAKAJYKAIQazYCMCAAKAJYIgEgACgCNCABKAIIajYCCCAAKAJYIgEgACgCMCABKAIUajYCFCAAKAJQIgEgACgCMCABKAIgajYCIAJAIAAoAlAoAgxBBHFFDQAgACgCMEUNAAJ/IAAoAlAoAhQEQCAAKAJQKAIcIAAoAlgoAgwgACgCMGsgACgCMBAaDAELIAAoAlAoAhwgACgCWCgCDCAAKAIwayAAKAIwED0LIQEgACgCUCABNgIcIAAoAlggATYCMAsgACgCWCAAKAJQKAJAQcAAQQAgACgCUCgCCBtqQYABQQAgACgCUCgCBEG//gBGG2pBgAJBACAAKAJQKAIEQcf+AEcEfyAAKAJQKAIEQcL+AEYFQQELQQFxG2o2AiwCQAJAIAAoAjRFBEAgACgCMEUNAQsgACgCVEEERw0BCyAAKAIQDQAgAEF7NgIQCyAAIAAoAhA2AlwLIAAoAlwhASAAQeAAaiQAIAUgATYCCAsgBSgCECIAIAApAwAgBSgCDDUCIH03AwACQAJAAkACQAJAIAUoAghBBWoOBwIDAwMDAAEDCyAFQQA2AhwMAwsgBUEBNgIcDAILIAUoAgwoAhRFBEAgBUEDNgIcDAILCyAFKAIMKAIAQQ0gBSgCCBAUIAVBAjYCHAsgBSgCHCEAIAVBIGokACAACyQBAX8jAEEQayIBIAA2AgwgASABKAIMNgIIIAEoAghBAToADAuXAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjcDCCADIAMoAhg2AgQCQAJAIAMpAwhC/////w9YBEAgAygCBCgCFEUNAQsgAygCBCgCAEESQQAQFCADQQA6AB8MAQsgAygCBCADKQMIPgIUIAMoAgQgAygCFDYCECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAukAgECfyMAQRBrIgEkACABIAA2AgggASABKAIINgIEAkAgASgCBC0ABEEBcQRAIAEgASgCBEEQahC4ATYCAAwBCyABKAIEQRBqIQIjAEEQayIAJAAgACACNgIIAkAgACgCCBBKBEAgAEF+NgIMDAELIAAgACgCCCgCHDYCBCAAKAIEKAI4BEAgACgCCCgCKCAAKAIEKAI4IAAoAggoAiQRBAALIAAoAggoAiggACgCCCgCHCAAKAIIKAIkEQQAIAAoAghBADYCHCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgASACNgIACwJAIAEoAgAEQCABKAIEKAIAQQ0gASgCABAUIAFBADoADwwBCyABQQE6AA8LIAEtAA9BAXEhACABQRBqJAAgAAuyGAEFfyMAQRBrIgQkACAEIAA2AgggBCAEKAIINgIEIAQoAgRBADYCFCAEKAIEQQA2AhAgBCgCBEEANgIgIAQoAgRBADYCHAJAIAQoAgQtAARBAXEEQCAEKAIEQRBqIQEgBCgCBCgCCCECIwBBMGsiACQAIAAgATYCKCAAIAI2AiQgAEEINgIgIABBcTYCHCAAQQk2AhggAEEANgIUIABBwBI2AhAgAEE4NgIMIABBATYCBAJAAkACQCAAKAIQRQ0AIAAoAhAsAABB+O4ALAAARw0AIAAoAgxBOEYNAQsgAEF6NgIsDAELIAAoAihFBEAgAEF+NgIsDAELIAAoAihBADYCGCAAKAIoKAIgRQRAIAAoAihBBTYCICAAKAIoQQA2AigLIAAoAigoAiRFBEAgACgCKEEGNgIkCyAAKAIkQX9GBEAgAEEGNgIkCwJAIAAoAhxBAEgEQCAAQQA2AgQgAEEAIAAoAhxrNgIcDAELIAAoAhxBD0oEQCAAQQI2AgQgACAAKAIcQRBrNgIcCwsCQAJAIAAoAhhBAUgNACAAKAIYQQlKDQAgACgCIEEIRw0AIAAoAhxBCEgNACAAKAIcQQ9KDQAgACgCJEEASA0AIAAoAiRBCUoNACAAKAIUQQBIDQAgACgCFEEESg0AIAAoAhxBCEcNASAAKAIEQQFGDQELIABBfjYCLAwBCyAAKAIcQQhGBEAgAEEJNgIcCyAAIAAoAigoAihBAUHELSAAKAIoKAIgEQEANgIIIAAoAghFBEAgAEF8NgIsDAELIAAoAiggACgCCDYCHCAAKAIIIAAoAig2AgAgACgCCEEqNgIEIAAoAgggACgCBDYCGCAAKAIIQQA2AhwgACgCCCAAKAIcNgIwIAAoAghBASAAKAIIKAIwdDYCLCAAKAIIIAAoAggoAixBAWs2AjQgACgCCCAAKAIYQQdqNgJQIAAoAghBASAAKAIIKAJQdDYCTCAAKAIIIAAoAggoAkxBAWs2AlQgACgCCCAAKAIIKAJQQQJqQQNuNgJYIAAoAigoAiggACgCCCgCLEECIAAoAigoAiARAQAhASAAKAIIIAE2AjggACgCKCgCKCAAKAIIKAIsQQIgACgCKCgCIBEBACEBIAAoAgggATYCQCAAKAIoKAIoIAAoAggoAkxBAiAAKAIoKAIgEQEAIQEgACgCCCABNgJEIAAoAghBADYCwC0gACgCCEEBIAAoAhhBBmp0NgKcLSAAIAAoAigoAiggACgCCCgCnC1BBCAAKAIoKAIgEQEANgIAIAAoAgggACgCADYCCCAAKAIIIAAoAggoApwtQQJ0NgIMAkACQCAAKAIIKAI4RQ0AIAAoAggoAkBFDQAgACgCCCgCREUNACAAKAIIKAIIDQELIAAoAghBmgU2AgQgACgCKEG42QAoAgA2AhggACgCKBC4ARogAEF8NgIsDAELIAAoAgggACgCACAAKAIIKAKcLUEBdkEBdGo2AqQtIAAoAgggACgCCCgCCCAAKAIIKAKcLUEDbGo2ApgtIAAoAgggACgCJDYChAEgACgCCCAAKAIUNgKIASAAKAIIIAAoAiA6ACQgACgCKCEBIwBBEGsiAyQAIAMgATYCDCADKAIMIQIjAEEQayIBJAAgASACNgIIAkAgASgCCBB4BEAgAUF+NgIMDAELIAEoAghBADYCFCABKAIIQQA2AgggASgCCEEANgIYIAEoAghBAjYCLCABIAEoAggoAhw2AgQgASgCBEEANgIUIAEoAgQgASgCBCgCCDYCECABKAIEKAIYQQBIBEAgASgCBEEAIAEoAgQoAhhrNgIYCyABKAIEIAEoAgQoAhhBAkYEf0E5BUEqQfEAIAEoAgQoAhgbCzYCBAJ/IAEoAgQoAhhBAkYEQEEAQQBBABAaDAELQQBBAEEAED0LIQIgASgCCCACNgIwIAEoAgRBADYCKCABKAIEIQUjAEEQayICJAAgAiAFNgIMIAIoAgwgAigCDEGUAWo2ApgWIAIoAgxB0N8ANgKgFiACKAIMIAIoAgxBiBNqNgKkFiACKAIMQeTfADYCrBYgAigCDCACKAIMQfwUajYCsBYgAigCDEH43wA2ArgWIAIoAgxBADsBuC0gAigCDEEANgK8LSACKAIMEL4BIAJBEGokACABQQA2AgwLIAEoAgwhAiABQRBqJAAgAyACNgIIIAMoAghFBEAgAygCDCgCHCECIwBBEGsiASQAIAEgAjYCDCABKAIMIAEoAgwoAixBAXQ2AjwgASgCDCgCRCABKAIMKAJMQQFrQQF0akEAOwEAIAEoAgwoAkRBACABKAIMKAJMQQFrQQF0EDMgASgCDCABKAIMKAKEAUEMbEGA7wBqLwECNgKAASABKAIMIAEoAgwoAoQBQQxsQYDvAGovAQA2AowBIAEoAgwgASgCDCgChAFBDGxBgO8Aai8BBDYCkAEgASgCDCABKAIMKAKEAUEMbEGA7wBqLwEGNgJ8IAEoAgxBADYCbCABKAIMQQA2AlwgASgCDEEANgJ0IAEoAgxBADYCtC0gASgCDEECNgJ4IAEoAgxBAjYCYCABKAIMQQA2AmggASgCDEEANgJIIAFBEGokAAsgAygCCCEBIANBEGokACAAIAE2AiwLIAAoAiwhASAAQTBqJAAgBCABNgIADAELIAQoAgRBEGohASMAQSBrIgAkACAAIAE2AhggAEFxNgIUIABBwBI2AhAgAEE4NgIMAkACQAJAIAAoAhBFDQAgACgCECwAAEHAEiwAAEcNACAAKAIMQThGDQELIABBejYCHAwBCyAAKAIYRQRAIABBfjYCHAwBCyAAKAIYQQA2AhggACgCGCgCIEUEQCAAKAIYQQU2AiAgACgCGEEANgIoCyAAKAIYKAIkRQRAIAAoAhhBBjYCJAsgACAAKAIYKAIoQQFB0DcgACgCGCgCIBEBADYCBCAAKAIERQRAIABBfDYCHAwBCyAAKAIYIAAoAgQ2AhwgACgCBCAAKAIYNgIAIAAoAgRBADYCOCAAKAIEQbT+ADYCBCAAKAIYIQIgACgCFCEDIwBBIGsiASQAIAEgAjYCGCABIAM2AhQCQCABKAIYEEoEQCABQX42AhwMAQsgASABKAIYKAIcNgIMAkAgASgCFEEASARAIAFBADYCECABQQAgASgCFGs2AhQMAQsgASABKAIUQQR1QQVqNgIQIAEoAhRBMEgEQCABIAEoAhRBD3E2AhQLCwJAIAEoAhRFDQAgASgCFEEITgRAIAEoAhRBD0wNAQsgAUF+NgIcDAELAkAgASgCDCgCOEUNACABKAIMKAIoIAEoAhRGDQAgASgCGCgCKCABKAIMKAI4IAEoAhgoAiQRBAAgASgCDEEANgI4CyABKAIMIAEoAhA2AgwgASgCDCABKAIUNgIoIAEoAhghAiMAQRBrIgMkACADIAI2AggCQCADKAIIEEoEQCADQX42AgwMAQsgAyADKAIIKAIcNgIEIAMoAgRBADYCLCADKAIEQQA2AjAgAygCBEEANgI0IAMoAgghBSMAQRBrIgIkACACIAU2AggCQCACKAIIEEoEQCACQX42AgwMAQsgAiACKAIIKAIcNgIEIAIoAgRBADYCICACKAIIQQA2AhQgAigCCEEANgIIIAIoAghBADYCGCACKAIEKAIMBEAgAigCCCACKAIEKAIMQQFxNgIwCyACKAIEQbT+ADYCBCACKAIEQQA2AgggAigCBEEANgIQIAIoAgRBgIACNgIYIAIoAgRBADYCJCACKAIEQQA2AjwgAigCBEEANgJAIAIoAgQgAigCBEG0CmoiBTYCcCACKAIEIAU2AlQgAigCBCAFNgJQIAIoAgRBATYCxDcgAigCBEF/NgLINyACQQA2AgwLIAIoAgwhBSACQRBqJAAgAyAFNgIMCyADKAIMIQIgA0EQaiQAIAEgAjYCHAsgASgCHCECIAFBIGokACAAIAI2AgggACgCCARAIAAoAhgoAiggACgCBCAAKAIYKAIkEQQAIAAoAhhBADYCHAsgACAAKAIINgIcCyAAKAIcIQEgAEEgaiQAIAQgATYCAAsCQCAEKAIABEAgBCgCBCgCAEENIAQoAgAQFCAEQQA6AA8MAQsgBEEBOgAPCyAELQAPQQFxIQAgBEEQaiQAIAALbwEBfyMAQRBrIgEgADYCCCABIAEoAgg2AgQCQCABKAIELQAEQQFxRQRAIAFBADYCDAwBCyABKAIEKAIIQQNIBEAgAUECNgIMDAELIAEoAgQoAghBB0oEQCABQQE2AgwMAQsgAUEANgIMCyABKAIMCywBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABKAIIEBUgAUEQaiQACzwBAX8jAEEQayIDJAAgAyAAOwEOIAMgATYCCCADIAI2AgRBASADKAIIIAMoAgQQtAEhACADQRBqJAAgAAvBEAECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCACKAIYKAJgNgJ4IAIoAhggAigCGCgCcDYCZCACKAIYQQI2AmACQCACKAIQRQ0AIAIoAhgoAnggAigCGCgCgAFPDQAgAigCGCgCLEGGAmsgAigCGCgCbCACKAIQa0kNACACKAIYIAIoAhAQtgEhACACKAIYIAA2AmACQCACKAIYKAJgQQVLDQAgAigCGCgCiAFBAUcEQCACKAIYKAJgQQNHDQEgAigCGCgCbCACKAIYKAJwa0GAIE0NAQsgAigCGEECNgJgCwsCQAJAIAIoAhgoAnhBA0kNACACKAIYKAJgIAIoAhgoAnhLDQAgAiACKAIYIgAoAmwgACgCdGpBA2s2AgggAiACKAIYKAJ4QQNrOgAHIAIgAigCGCIAKAJsIAAoAmRBf3NqOwEEIAIoAhgiACgCpC0gACgCoC1BAXRqIAIvAQQ7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACIAIvAQRBAWs7AQQgAigCGCACLQAHQdDdAGotAABBAnRqQZgJaiIAIAAvAQBBAWo7AQAgAigCGEGIE2oCfyACLwEEQYACSQRAIAIvAQQtANBZDAELIAIvAQRBB3ZBgAJqLQDQWQtBAnRqIgAgAC8BAEEBajsBACACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYIgAgACgCdCACKAIYKAJ4QQFrazYCdCACKAIYIgAgACgCeEECazYCeANAIAIoAhgiASgCbEEBaiEAIAEgADYCbCAAIAIoAghNBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCIBKAJ4QQFrIQAgASAANgJ4IAANAAsgAigCGEEANgJoIAIoAhhBAjYCYCACKAIYIgAgACgCbEEBajYCbCACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBgsLDAELAkAgAigCGCgCaARAIAIgAigCGCIAKAI4IAAoAmxqQQFrLQAAOgADIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AAyEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAANBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAgwEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHAsgAigCGCIAIAAoAmxBAWo2AmwgAigCGCIAIAAoAnRBAWs2AnQgAigCGCgCACgCEEUEQCACQQA2AhwMBgsMAQsgAigCGEEBNgJoIAIoAhgiACAAKAJsQQFqNgJsIAIoAhgiACAAKAJ0QQFrNgJ0CwsMAQsLIAIoAhgoAmgEQCACIAIoAhgiACgCOCAAKAJsakEBay0AADoAAiACKAIYIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAAIhASACKAIYIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCGCACLQACQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYQQA2AmgLIAIoAhgCfyACKAIYKAJsQQJJBEAgAigCGCgCbAwBC0ECCzYCtC0gAigCFEEERgRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQEQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkECNgIcDAILIAJBAzYCHAwBCyACKAIYKAKgLQRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQAQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkEANgIcDAILCyACQQE2AhwLIAIoAhwhACACQSBqJAAgAAuVDQECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsCQCACKAIQRQ0AIAIoAhgoAixBhgJrIAIoAhgoAmwgAigCEGtJDQAgAigCGCACKAIQELYBIQAgAigCGCAANgJgCwJAIAIoAhgoAmBBA08EQCACIAIoAhgoAmBBA2s6AAsgAiACKAIYIgAoAmwgACgCcGs7AQggAigCGCIAKAKkLSAAKAKgLUEBdGogAi8BCDsBACACLQALIQEgAigCGCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BCEEBazsBCCACKAIYIAItAAtB0N0Aai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIYQYgTagJ/IAIvAQhBgAJJBEAgAi8BCC0A0FkMAQsgAi8BCEEHdkGAAmotANBZC0ECdGoiACAALwEAQQFqOwEAIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0IAIoAhgoAmBrNgJ0AkACQCACKAIYKAJgIAIoAhgoAoABSw0AIAIoAhgoAnRBA0kNACACKAIYIgAgACgCYEEBazYCYANAIAIoAhgiACAAKAJsQQFqNgJsIAIoAhggAigCGCgCVCACKAIYKAI4IAIoAhgoAmxBAmpqLQAAIAIoAhgoAkggAigCGCgCWHRzcTYCSCACKAIYKAJAIAIoAhgoAmwgAigCGCgCNHFBAXRqIAIoAhgoAkQgAigCGCgCSEEBdGovAQAiADsBACACIABB//8DcTYCECACKAIYKAJEIAIoAhgoAkhBAXRqIAIoAhgoAmw7AQAgAigCGCIBKAJgQQFrIQAgASAANgJgIAANAAsgAigCGCIAIAAoAmxBAWo2AmwMAQsgAigCGCIAIAIoAhgoAmAgACgCbGo2AmwgAigCGEEANgJgIAIoAhggAigCGCgCOCACKAIYKAJsai0AADYCSCACKAIYIAIoAhgoAlQgAigCGCgCOCACKAIYKAJsQQFqai0AACACKAIYKAJIIAIoAhgoAlh0c3E2AkgLDAELIAIgAigCGCIAKAI4IAAoAmxqLQAAOgAHIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAAdBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0QQFrNgJ0IAIoAhgiACAAKAJsQQFqNgJsCyACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBAsLDAELCyACKAIYAn8gAigCGCgCbEECSQRAIAIoAhgoAmwMAQtBAgs2ArQtIAIoAhRBBEYEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EBECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBAjYCHAwCCyACQQM2AhwMAQsgAigCGCgCoC0EQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBADYCHAwCCwsgAkEBNgIcCyACKAIcIQAgAkEgaiQAIAALBwAgAC8BMAspAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCCBAVIAJBEGokAAs6AQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgggAygCBGwQGCEAIANBEGokACAAC84FAQF/IwBB0ABrIgUkACAFIAA2AkQgBSABNgJAIAUgAjYCPCAFIAM3AzAgBSAENgIsIAUgBSgCQDYCKAJAAkACQAJAAkACQAJAAkACQCAFKAIsDg8AAQIDBQYHBwcHBwcHBwQHCwJ/IAUoAkQhASAFKAIoIQIjAEHgAGsiACQAIAAgATYCWCAAIAI2AlQgACAAKAJYIABByABqQgwQKyIDNwMIAkAgA0IAUwRAIAAoAlQgACgCWBAXIABBfzYCXAwBCyAAKQMIQgxSBEAgACgCVEERQQAQFCAAQX82AlwMAQsgACgCVCAAQcgAaiAAQcgAakIMQQAQfCAAKAJYIABBEGoQOUEASARAIABBADYCXAwBCyAAKAI4IABBBmogAEEEahCNAQJAIAAtAFMgACgCPEEYdkYNACAALQBTIAAvAQZBCHZGDQAgACgCVEEbQQAQFCAAQX82AlwMAQsgAEEANgJcCyAAKAJcIQEgAEHgAGokACABQQBICwRAIAVCfzcDSAwICyAFQgA3A0gMBwsgBSAFKAJEIAUoAjwgBSkDMBArIgM3AyAgA0IAUwRAIAUoAiggBSgCRBAXIAVCfzcDSAwHCyAFKAJAIAUoAjwgBSgCPCAFKQMgQQAQfCAFIAUpAyA3A0gMBgsgBUIANwNIDAULIAUgBSgCPDYCHCAFKAIcQQA7ATIgBSgCHCIAIAApAwBCgAGENwMAIAUoAhwpAwBCCINCAFIEQCAFKAIcIgAgACkDIEIMfTcDIAsgBUIANwNIDAQLIAVBfzYCFCAFQQU2AhAgBUEENgIMIAVBAzYCCCAFQQI2AgQgBUEBNgIAIAVBACAFEDQ3A0gMAwsgBSAFKAIoIAUoAjwgBSkDMBBDNwNIDAILIAUoAigQvwEgBUIANwNIDAELIAUoAihBEkEAEBQgBUJ/NwNICyAFKQNIIQMgBUHQAGokACADC+4CAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE2AhQgBSACOwESIAUgAzYCDCAFIAQ2AggCQAJAAkAgBSgCCEUNACAFKAIURQ0AIAUvARJBAUYNAQsgBSgCGEEIakESQQAQFCAFQQA2AhwMAQsgBSgCDEEBcQRAIAUoAhhBCGpBGEEAEBQgBUEANgIcDAELIAVBGBAYIgA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBADYCHAwBCyMAQRBrIgAgBSgCBDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAFKAIEQfis0ZEBNgIMIAUoAgRBic+VmgI2AhAgBSgCBEGQ8dmiAzYCFCAFKAIEQQAgBSgCCCAFKAIIEC6tQQEQfCAFIAUoAhggBSgCFEEDIAUoAgQQYSIANgIAIABFBEAgBSgCBBC/ASAFQQA2AhwMAQsgBSAFKAIANgIcCyAFKAIcIQAgBUEgaiQAIAALBwAgACgCIAu9GAECfyMAQfAAayIEJAAgBCAANgJkIAQgATYCYCAEIAI3A1ggBCADNgJUIAQgBCgCZDYCUAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCVA4UBgcCDAQFCg8AAwkRCxAOCBIBEg0SC0EAQgBBACAEKAJQEEwhACAEKAJQIAA2AhQgAEUEQCAEQn83A2gMEwsgBCgCUCgCFEIANwM4IAQoAlAoAhRCADcDQCAEQgA3A2gMEgsgBCgCUCgCECEBIAQpA1ghAiAEKAJQIQMjAEFAaiIAJAAgACABNgI4IAAgAjcDMCAAIAM2AiwCQCAAKQMwUARAIABBAEIAQQEgACgCLBBMNgI8DAELIAApAzAgACgCOCkDMFYEQCAAKAIsQRJBABAUIABBADYCPAwBCyAAKAI4KAIoBEAgACgCLEEdQQAQFCAAQQA2AjwMAQsgACAAKAI4IAApAzAQwAE3AyAgACAAKQMwIAAoAjgoAgQgACkDIKdBA3RqKQMAfTcDGCAAKQMYUARAIAAgACkDIEIBfTcDICAAIAAoAjgoAgAgACkDIKdBBHRqKQMINwMYCyAAIAAoAjgoAgAgACkDIKdBBHRqKQMIIAApAxh9NwMQIAApAxAgACkDMFYEQCAAKAIsQRxBABAUIABBADYCPAwBCyAAIAAoAjgoAgAgACkDIEIBfEEAIAAoAiwQTCIBNgIMIAFFBEAgAEEANgI8DAELIAAoAgwoAgAgACgCDCkDCEIBfadBBHRqIAApAxg3AwggACgCDCgCBCAAKAIMKQMIp0EDdGogACkDMDcDACAAKAIMIAApAzA3AzAgACgCDAJ+IAAoAjgpAxggACgCDCkDCEIBfVQEQCAAKAI4KQMYDAELIAAoAgwpAwhCAX0LNwMYIAAoAjggACgCDDYCKCAAKAIMIAAoAjg2AiggACgCOCAAKAIMKQMINwMgIAAoAgwgACkDIEIBfDcDICAAIAAoAgw2AjwLIAAoAjwhASAAQUBrJAAgASEAIAQoAlAgADYCFCAARQRAIARCfzcDaAwSCyAEKAJQKAIUIAQpA1g3AzggBCgCUCgCFCAEKAJQKAIUKQMINwNAIARCADcDaAwRCyAEQgA3A2gMEAsgBCgCUCgCEBAyIAQoAlAgBCgCUCgCFDYCECAEKAJQQQA2AhQgBEIANwNoDA8LIAQgBCgCUCAEKAJgIAQpA1gQQzcDaAwOCyAEKAJQKAIQEDIgBCgCUCgCFBAyIAQoAlAQFSAEQgA3A2gMDQsgBCgCUCgCEEIANwM4IAQoAlAoAhBCADcDQCAEQgA3A2gMDAsgBCkDWEL///////////8AVgRAIAQoAlBBEkEAEBQgBEJ/NwNoDAwLIAQoAlAoAhAhASAEKAJgIQMgBCkDWCECIwBBQGoiACQAIAAgATYCNCAAIAM2AjAgACACNwMoIAACfiAAKQMoIAAoAjQpAzAgACgCNCkDOH1UBEAgACkDKAwBCyAAKAI0KQMwIAAoAjQpAzh9CzcDKAJAIAApAyhQBEAgAEIANwM4DAELIAApAyhC////////////AFYEQCAAQn83AzgMAQsgACAAKAI0KQNANwMYIAAgACgCNCkDOCAAKAI0KAIEIAApAxinQQN0aikDAH03AxAgAEIANwMgA0AgACkDICAAKQMoVARAIAACfiAAKQMoIAApAyB9IAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9VARAIAApAyggACkDIH0MAQsgACgCNCgCACAAKQMYp0EEdGopAwggACkDEH0LNwMIIAAoAjAgACkDIKdqIAAoAjQoAgAgACkDGKdBBHRqKAIAIAApAxCnaiAAKQMIpxAZGiAAKQMIIAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9UQRAIAAgACkDGEIBfDcDGAsgACAAKQMIIAApAyB8NwMgIABCADcDEAwBCwsgACgCNCIBIAApAyAgASkDOHw3AzggACgCNCAAKQMYNwNAIAAgACkDIDcDOAsgACkDOCECIABBQGskACAEIAI3A2gMCwsgBEEAQgBBACAEKAJQEEw2AkwgBCgCTEUEQCAEQn83A2gMCwsgBCgCUCgCEBAyIAQoAlAgBCgCTDYCECAEQgA3A2gMCgsgBCgCUCgCFBAyIAQoAlBBADYCFCAEQgA3A2gMCQsgBCAEKAJQKAIQIAQoAmAgBCkDWCAEKAJQEMEBrDcDaAwICyAEIAQoAlAoAhQgBCgCYCAEKQNYIAQoAlAQwQGsNwNoDAcLIAQpA1hCOFQEQCAEKAJQQRJBABAUIARCfzcDaAwHCyAEIAQoAmA2AkggBCgCSBA7IAQoAkggBCgCUCgCDDYCKCAEKAJIIAQoAlAoAhApAzA3AxggBCgCSCAEKAJIKQMYNwMgIAQoAkhBADsBMCAEKAJIQQA7ATIgBCgCSELcATcDACAEQjg3A2gMBgsgBCgCUCAEKAJgKAIANgIMIARCADcDaAwFCyAEQX82AkAgBEETNgI8IARBCzYCOCAEQQ02AjQgBEEMNgIwIARBCjYCLCAEQQ82AiggBEEJNgIkIARBETYCICAEQQg2AhwgBEEHNgIYIARBBjYCFCAEQQU2AhAgBEEENgIMIARBAzYCCCAEQQI2AgQgBEEBNgIAIARBACAEEDQ3A2gMBAsgBCgCUCgCECkDOEL///////////8AVgRAIAQoAlBBHkE9EBQgBEJ/NwNoDAQLIAQgBCgCUCgCECkDODcDaAwDCyAEKAJQKAIUKQM4Qv///////////wBWBEAgBCgCUEEeQT0QFCAEQn83A2gMAwsgBCAEKAJQKAIUKQM4NwNoDAILIAQpA1hC////////////AFYEQCAEKAJQQRJBABAUIARCfzcDaAwCCyAEKAJQKAIUIQEgBCgCYCEDIAQpA1ghAiAEKAJQIQUjAEHgAGsiACQAIAAgATYCVCAAIAM2AlAgACACNwNIIAAgBTYCRAJAIAApA0ggACgCVCkDOCAAKQNIfEL//wN8VgRAIAAoAkRBEkEAEBQgAEJ/NwNYDAELIAAgACgCVCgCBCAAKAJUKQMIp0EDdGopAwA3AyAgACkDICAAKAJUKQM4IAApA0h8VARAIAAgACgCVCkDCCAAKQNIIAApAyAgACgCVCkDOH19Qv//A3xCEIh8NwMYIAApAxggACgCVCkDEFYEQCAAIAAoAlQpAxA3AxAgACkDEFAEQCAAQhA3AxALA0AgACkDECAAKQMYVARAIAAgACkDEEIBhjcDEAwBCwsgACgCVCAAKQMQIAAoAkQQwgFBAXFFBEAgACgCREEOQQAQFCAAQn83A1gMAwsLA0AgACgCVCkDCCAAKQMYVARAQYCABBAYIQEgACgCVCgCACAAKAJUKQMIp0EEdGogATYCACABBEAgACgCVCgCACAAKAJUKQMIp0EEdGpCgIAENwMIIAAoAlQiASABKQMIQgF8NwMIIAAgACkDIEKAgAR8NwMgIAAoAlQoAgQgACgCVCkDCKdBA3RqIAApAyA3AwAMAgUgACgCREEOQQAQFCAAQn83A1gMBAsACwsLIAAgACgCVCkDQDcDMCAAIAAoAlQpAzggACgCVCgCBCAAKQMwp0EDdGopAwB9NwMoIABCADcDOANAIAApAzggACkDSFQEQCAAAn4gACkDSCAAKQM4fSAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVQEQCAAKQNIIAApAzh9DAELIAAoAlQoAgAgACkDMKdBBHRqKQMIIAApAyh9CzcDCCAAKAJUKAIAIAApAzCnQQR0aigCACAAKQMop2ogACgCUCAAKQM4p2ogACkDCKcQGRogACkDCCAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVEEQCAAIAApAzBCAXw3AzALIAAgACkDCCAAKQM4fDcDOCAAQgA3AygMAQsLIAAoAlQiASAAKQM4IAEpAzh8NwM4IAAoAlQgACkDMDcDQCAAKAJUKQM4IAAoAlQpAzBWBEAgACgCVCAAKAJUKQM4NwMwCyAAIAApAzg3A1gLIAApA1ghAiAAQeAAaiQAIAQgAjcDaAwBCyAEKAJQQRxBABAUIARCfzcDaAsgBCkDaCECIARB8ABqJAAgAgsHACAAKAIACxgAQaibAUIANwIAQbCbAUEANgIAQaibAQuGAQIEfwF+IwBBEGsiASQAAkAgACkDMFAEQAwBCwNAAkAgACAFQQAgAUEPaiABQQhqEIoBIgRBf0YNACABLQAPQQNHDQAgAiABKAIIQYCAgIB/cUGAgICAekZqIQILQX8hAyAEQX9GDQEgAiEDIAVCAXwiBSAAKQMwVA0ACwsgAUEQaiQAIAMLC4GNASMAQYAIC4EMaW5zdWZmaWNpZW50IG1lbW9yeQBuZWVkIGRpY3Rpb25hcnkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQASW52YWxpZCBhcmd1bWVudABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdABGaWxlIGFscmVhZHkgZXhpc3RzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAJXMlcyVzAGJ1ZmZlciBlcnJvcgBObyBlcnJvcgBzdHJlYW0gZXJyb3IAVGVsbCBlcnJvcgBJbnRlcm5hbCBlcnJvcgBTZWVrIGVycm9yAFdyaXRlIGVycm9yAGZpbGUgZXJyb3IAUmVhZCBlcnJvcgBabGliIGVycm9yAGRhdGEgZXJyb3IAQ1JDIGVycm9yAGluY29tcGF0aWJsZSB2ZXJzaW9uAG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcAUEsGBgBQSwUGAFBLAwQAUEsBAgAAAAAAAFIFAADZBwAArAgAAJEIAACCBQAApAUAAI0FAADFBQAAbwgAADQHAADpBAAAJAcAAAMHAACvBQAA4QYAAMsIAAA3CAAAQQcAAFoEAAC5BgAAcwUAAEEEAABXBwAAWAgAABcIAACnBgAA4ggAAPcIAAD/BwAAywYAAGgFAADBBwAAIABBmBQLEQEAAAABAAAAAQAAAAEAAAABAEG8FAsJAQAAAAEAAAACAEHoFAsBAQBBiBULAQEAQaIVC6REOiY7JmUmZiZjJmAmIiDYJcsl2SVCJkAmaiZrJjwmuiXEJZUhPCC2AKcArCWoIZEhkyGSIZAhHyKUIbIlvCUgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AAiPHAPwA6QDiAOQA4ADlAOcA6gDrAOgA7wDuAOwAxADFAMkA5gDGAPQA9gDyAPsA+QD/ANYA3ACiAKMApQCnIJIB4QDtAPMA+gDxANEAqgC6AL8AECOsAL0AvAChAKsAuwCRJZIlkyUCJSQlYSViJVYlVSVjJVElVyVdJVwlWyUQJRQlNCUsJRwlACU8JV4lXyVaJVQlaSVmJWAlUCVsJWclaCVkJWUlWSVYJVIlUyVrJWolGCUMJYglhCWMJZAlgCWxA98AkwPAA6MDwwO1AMQDpgOYA6kDtAMeIsYDtQMpImEisQBlImQiICMhI/cASCKwABkitwAaIn8gsgCgJaAAAAAAAJYwB3csYQ7uulEJmRnEbQeP9GpwNaVj6aOVZJ4yiNsOpLjceR7p1eCI2dKXK0y2Cb18sX4HLbjnkR2/kGQQtx3yILBqSHG5895BvoR91Noa6+TdbVG11PTHhdODVphsE8Coa2R6+WL97Mllik9cARTZbAZjYz0P+vUNCI3IIG47XhBpTORBYNVycWei0eQDPEfUBEv9hQ3Sa7UKpfqotTVsmLJC1sm720D5vKzjbNgydVzfRc8N1txZPdGrrDDZJjoA3lGAUdfIFmHQv7X0tCEjxLNWmZW6zw+lvbieuAIoCIgFX7LZDMYk6Quxh3xvLxFMaFirHWHBPS1mtpBB3HYGcdsBvCDSmCoQ1e+JhbFxH7W2BqXkv58z1LjooskHeDT5AA+OqAmWGJgO4bsNan8tPW0Il2xkkQFcY+b0UWtrYmFsHNgwZYVOAGLy7ZUGbHulARvB9AiCV8QP9cbZsGVQ6bcS6ri+i3yIufzfHd1iSS3aFfN804xlTNT7WGGyTc5RtTp0ALyj4jC71EGl30rXldg9bcTRpPv01tNq6WlD/NluNEaIZ63QuGDacy0EROUdAzNfTAqqyXwN3TxxBVCqQQInEBALvoYgDMkltWhXs4VvIAnUZrmf5GHODvneXpjJ2SkimNCwtKjXxxc9s1mBDbQuO1y9t61susAgg7jttrO/mgzitgOa0rF0OUfV6q930p0VJtsEgxbccxILY+OEO2SUPmptDahaanoLzw7knf8JkyeuAAqxngd9RJMP8NKjCIdo8gEe/sIGaV1XYvfLZ2WAcTZsGecGa252G9T+4CvTiVp62hDMSt1nb9+5+fnvvo5DvrcX1Y6wYOij1tZ+k9GhxMLYOFLy30/xZ7vRZ1e8pt0GtT9LNrJI2isN2EwbCq/2SgM2YHoEQcPvYN9V32eo745uMXm+aUaMs2HLGoNmvKDSbyU24mhSlXcMzANHC7u5FgIiLyYFVb47usUoC72yklq0KwRqs1yn/9fCMc/QtYue2Swdrt5bsMJkmybyY+yco2p1CpNtAqkGCZw/Ng7rhWcHchNXAAWCSr+VFHq44q4rsXs4G7YMm47Skg2+1eW379x8Id/bC9TS04ZC4tTx+LPdaG6D2h/NFr6BWya59uF3sG93R7cY5loIiHBqD//KOwZmXAsBEf+eZY9prmL40/9rYUXPbBZ44gqg7tIN11SDBE7CswM5YSZnp/cWYNBNR2lJ23duPkpq0a7cWtbZZgvfQPA72DdTrrypxZ673n/Pskfp/7UwHPK9vYrCusowk7NTpqO0JAU20LqTBtfNKVfeVL9n2SMuemazuEphxAIbaF2UK28qN74LtKGODMMb3wVaje8CLQAAAABBMRsZgmI2MsNTLSsExWxkRfR3fYanWlbHlkFPCIrZyEm7wtGK6O/6y9n04wxPtaxNfq61ji2Dns8cmIdREsJKECPZU9Nw9HiSQe9hVdeuLhTmtTfXtZgcloSDBVmYG4IYqQCb2/otsJrLNqldXXfmHGxs/98/QdSeDlrNoiSEleMVn4wgRrKnYXepvqbh6PHn0PPoJIPew2Wyxdqqrl1d659GRCjMa29p/XB2rmsxOe9aKiAsCQcLbTgcEvM2Rt+yB13GcVRw7TBla/T38yq7tsIxonWRHIk0oAeQ+7yfF7qNhA553qklOO+yPP9583O+SOhqfRvFQTwq3lgFT3nwRH5i6YctT8LGHFTbAYoVlEC7Do2D6COmwtk4vw3FoDhM9Lshj6eWCs6WjRMJAMxcSDHXRYti+m7KU+F3VF27uhVsoKPWP42Ilw6WkVCY194RqczH0vrh7JPL+vVc12JyHeZ5a961VECfhE9ZWBIOFhkjFQ/acDgkm0EjPadr/WXmWuZ8JQnLV2Q40E6jrpEB4p+KGCHMpzNg/bwqr+Ekre7QP7QtgxKfbLIJhqskSMnqFVPQKUZ++2h3ZeL2eT8vt0gkNnQbCR01KhIE8rxTS7ONSFJw3mV5Me9+YP7z5ue/wv3+fJHQ1T2gy8z6NoqDuweRmnhUvLE5ZaeoS5iDOwqpmCLJ+rUJiMuuEE9d718ObPRGzT/ZbYwOwnRDElrzAiNB6sFwbMGAQXfYR9c2lwbmLY7FtQClhIQbvBqKQXFbu1pomOh3Q9nZbFoeTy0VX342DJwtGyfdHAA+EgCYuVMxg6CQYq6L0VO1khbF9N1X9O/ElKfC79WW2fbpvAeuqI0ct2veMZwq7yqF7XlryqxIcNNvG134LipG4eE23magB8V/Y1ToVCJl803l87ICpMKpG2eRhDAmoJ8puK7F5Pmf3v06zPPWe/3oz7xrqYD9WrKZPgmfsn84hKuwJBws8RUHNTJGKh5zdzEHtOFwSPXQa1E2g0Z6d7JdY07X+ssP5uHSzLXM+Y2E1+BKEpavCyONtshwoJ2JQbuERl0jAwdsOBrEPxUxhQ4OKEKYT2cDqVR+wPp5VYHLYkwfxTiBXvQjmJ2nDrPclhWqGwBU5VoxT/yZYmLX2FN5zhdP4UlWfvpQlS3Xe9QczGITio0tUruWNJHoux/Q2aAG7PN+Xq3CZUdukUhsL6BTdeg2EjqpBwkjalQkCCtlPxHkeaeWpUi8j2YbkaQnKoq94LzL8qGN0Oti3v3AI+/m2b3hvBT80KcNP4OKJn6ykT+5JNBw+BXLaTtG5kJ6d/1btWtl3PRafsU3CVPudjhI97GuCbjwnxKhM8w/inL9JJMAAAAAN2rCAW7UhANZvkYC3KgJB+vCywayfI0EhRZPBbhREw6PO9EP1oWXDeHvVQxk+RoJU5PYCAotngo9R1wLcKMmHEfJ5B0ed6IfKR1gHqwLLxubYe0awt+rGPW1aRnI8jUS/5j3E6YmsRGRTHMQFFo8FSMw/hR6jrgWTeR6F+BGTTjXLI85jpLJO7n4Czo87kQ/C4SGPlI6wDxlUAI9WBdeNm99nDc2w9o1AakYNIS/VzGz1ZUw6mvTMt0BETOQ5Wskp4+pJf4x7yfJWy0mTE1iI3snoCIimeYgFfMkISi0eCof3rorRmD8KXEKPij0HHEtw3azLJrI9S6tojcvwI2acPfnWHGuWR5zmTPcchwlk3crT1F2cvEXdEWb1XV43Il+T7ZLfxYIDX0hYs98pHSAeZMeQnjKoAR6/crGe7AuvGyHRH5t3vo4b+mQ+m5shrVrW+x3agJSMWg1OPNpCH+vYj8VbWNmqythUcHpYNTXpmXjvWRkugMiZo1p4Gcgy9dIF6EVSU4fU0t5dZFK/GPeT8sJHE6St1pMpd2YTZiaxEav8AZH9k5ARcEkgkREMs1Bc1gPQCrmSUIdjItDUGjxVGcCM1U+vHVXCda3VozA+FO7qjpS4hR8UNV+vlHoOeJa31MgW4btZlmxh6RYNJHrXQP7KVxaRW9ebS+tX4AbNeG3cffg7s+x4tmlc+Ncszzma9n+5zJnuOUFDXrkOEom7w8g5O5WnqLsYfRg7eTiL+jTiO3pijar671caerwuBP9x9LR/J5sl/6pBlX/LBAa+ht62PtCxJ75da5c+EjpAPN/g8LyJj2E8BFXRvGUQQn0oyvL9fqVjffN/0/2YF142Vc3utgOifzaOeM+27z1cd6Ln7Pf0iH13eVLN9zYDGvX72ap1rbY79SBsi3VBKRi0DPOoNFqcObTXRok0hD+XsUnlJzEfiraxklAGMfMVlfC+zyVw6KC08GV6BHAqK9Ny5/Fj8rGe8nI8RELyXQHRMxDbYbNGtPAzy25As5Alq+Rd/xtkC5CK5IZKOmTnD6mlqtUZJfy6iKVxYDglPjHvJ/PrX6elhM4nKF5+p0kb7WYEwV3mUq7MZt90fOaMDWJjQdfS4xe4Q2OaYvPj+ydgIrb90KLgkkEibUjxoiIZJqDvw5YguawHoDR2tyBVMyThGOmUYU6GBeHDXLVhqDQ4qmXuiCozgRmqvlupKt8eOuuSxIprxKsb60lxq2sGIHxpy/rM6Z2VXWkQT+3pcQp+KDzQzqhqv18o52XvqLQc8S15xkGtL6nQLaJzYK3DNvNsjuxD7NiD0mxVWWLsGgi17tfSBW6BvZTuDGckbm0it68g+AcvdpeWr/tNJi+AAAAAGVnvLiLyAmq7q+1EleXYo8y8N433F9rJbk4153vKLTFik8IfWTgvW8BhwHXuL/WSt3YavIzd9/gVhBjWJ9XGVD6MKXoFJ8Q+nH4rELIwHvfrafHZ0MIcnUmb87NcH+tlRUYES37t6Q/ntAYhyfozxpCj3OirCDGsMlHegg+rzKgW8iOGLVnOwrQAIeyaThQLwxf7Jfi8FmFh5flPdGHhmW04DrdWk+Pzz8oM3eGEOTq43dYUg3Y7UBov1H4ofgr8MSfl0gqMCJaT1ee4vZvSX+TCPXHfadA1RjA/G1O0J81K7cjjcUYlp+gfyonGUf9unwgQQKSj/QQ9+hIqD1YFJtYP6gjtpAdMdP3oYlqz3YUD6jKrOEHf76EYMMG0nCgXrcXHOZZuKn0PN8VTIXnwtHggH5pDi/Le2tId8OiDw3Lx2ixcynHBGFMoLjZ9ZhvRJD/0/x+UGbuGzfaVk0nuQ4oQAW2xu+wpKOIDBwasNuBf9dnOZF40iv0H26TA/cmO2aQmoOIPy+R7ViTKVRgRLQxB/gM36hNHrrP8abs35L+ibguRmcXm1QCcCfsu0jwcd4vTMkwgPnbVedFY5ygP2v5x4PTF2g2wXIPinnLN13krlDhXED/VE4lmOj2c4iLrhbvNxb4QIIEnSc+vCQf6SFBeFWZr9fgi8qwXDM7tlntXtHlVbB+UEfVGez/bCE7YglGh9rn6TLIgo6OcNSe7Six+VGQX1bkgjoxWDqDCY+n5m4zHwjBhg1tpjq1pOFAvcGG/AUvKUkXSk71r/N2IjKWEZ6KeL4rmB3ZlyBLyfR4Lq5IwMAB/dKlZkFqHF6W93k5Kk+Xlp9d8vEj5QUZa01gftf1jtFi5+u23l9SjgnCN+m1etlGAGi8IbzQ6jHfiI9WYzBh+dYiBJ5qmr2mvQfYwQG/Nm60rVMJCBWaTnId/ynOpRGGe7d04ccPzdkQkqi+rCpGERk4I3algHVmxtgQAXpg/q7PcpvJc8oi8aRXR5YY76k5rf3MXhFFBu5NdmOJ8c6NJkTc6EH4ZFF5L/k0HpNB2rEmU7/WmuvpxvmzjKFFC2IO8BkHaUyhvlGbPNs2J4Q1mZKWUP4uLpm5VCb83uieEnFdjHcW4TTOLjapq0mKEUXmPwMggYO7dpHg4xP2XFv9WelJmD5V8SEGgmxEYT7Uqs6Lxs+pN344QX/WXSbDbrOJdnzW7srEb9YdWQqxoeHkHhTzgXmoS9dpyxOyDnerXKHCuTnGfgGA/qmc5ZkVJAs2oDZuURyOpxZmhsJx2j4s3m8sSbnTlPCBBAmV5rixe0kNox4usRtIPtJDLVlu+8P22+mmkWdRH6mwzHrODHSUYblm8QYF3gAAAAB3BzCW7g5hLJkJUboHbcQZcGr0j+ljpTWeZJWjDtuIMnncuKTg1ekel9LZiAm2TCt+sXy957gtB5C/HZEdtxBkarAg8vO5cUiEvkHeGtrUfW3d5Ov01LVRg9OFxxNsmFZka6jA/WL5eoplyewUAVxPYwZs2foPPWONCA31O24gyExpEF7VYEHkomdxcjwD5NFLBNRH0g2F/aUKtWs1taj6QrKYbNu7ydasvPlAMths40XfXHXc1g3Pq9E9WSbZMKxR3gA6yNdRgL/QYRYhtPS1VrPEI8+6lZm4vaUPKAK4nl8FiAjGDNmysQvpJC9vfIdYaEwRwWEdq7ZmLT123EGQAdtxBpjSILzv1RAqcbGFiQa2tR+fv+Sl6LjUM3gHyaIPAPk0lgmojuEOmBh/ag27CG09LZFkbJfmY1wBa2tR9BxsYWKFZTDY8mIATmwGle0bAaV7ggj0wfUPxFdlsNnGErfpUIu+uOr8uYh8Yt0d3xXaLUmM03zz+9RMZU2yYVg6tVHOo7wAdNS7MOJK36VBPdiV16TRxG3T1vT7Q2npajRu2fytZ4hG2mC40EQELXMzAx3lqgpMX90NfMlQBXE8JwJBqr4LEBDJDCCGV2i1JSBvhbO5ZtQJzmHkn17e+Q4p2cmYsNCYIsfXqLRZsz0XLrQNgbe9XDvAumyt7biDIJq/s7YDtuIMdLHSmurVRzmd0nevBNsmFXPcFoPjYwsSlGQ7hA1taj56alqo5A7PC5MJ/50KAK4nfQeesfAPk0SHCKPSHgHyaGkGwv73YlddgGVnyxlsNnFuawbn/tQbdonTK+AQ2npaZ91KzPm532+Ovu/5F7e+Q2CwjtXW1qPoodGTfjjYwsRP3/JS0btn8aa8V2c/tQbdSLI2S9gNK9qvChtMNgNK9kEEemDfYO/DqGffVTFuju9Gab55y2GzjLxmgxolb9KgUmjiNswMd5W7C0cDIgIWuVUFJi/Fuju+sr0LKCu0WpJcs2oEwtf/p7XQzzEs2Z6LW96uHZtkwrDsY/ImdWqjnAJtkwqcCQap6w42P3IHZ4UFAFcTlb9KguK4ehR7sSuuDLYbOJLSjpvl1b4NfNzvtwvb3yGG09LU8dTiQmjds/gf2oNugb4Wzfa5JltvsHfhGLdHd4gIWub/D2pwZgY7yhEBC1yPZZ7/+GKuaWFr/9MWbM9FoArieNcN0u5OBINUOQOzwqdnJmHQYBb3SWlHTT5ud9uu0WpK2dZa3EDfC2Y32DvwqbyuU967nsVHss9/MLX/6b298hzKusKKU7OTMCS0o6a60DYFzdcGk1TeVykj2We/s2Z6LsRhSrhdaBsCKm8rlLQLvjfDDI6hWgXfGy0C740AAAAAGRsxQTI2YoIrLVPDZGzFBH139EVWWqeGT0GWx8jZigjRwrtJ+u/oiuP02custU8Mta5+TZ6DLY6HmBzPSsISUVPZIxB49HDTYe9Bki6u11U3teYUHJi11wWDhJaCG5hZmwCpGLAt+tupNsua5nddXf9sbBzUQT/fzVoOnpWEJKKMnxXjp7JGIL6pd2Hx6OGm6PPQ58PegyTaxbJlXV2uqkRGn+tva8wodnD9aTkxa64gKlrvCwcJLBIcOG3fRjbzxl0Hsu1wVHH0a2Uwuyrz96IxwraJHJF1kAegNBefvPsOhI26JaneeTyy7zhz83n/auhIvkHFG31Y3io88HlPBelifkTCTy2H21QcxpQVigGNDrtApiPog7842cI4oMUNIbv0TAqWp48TjZbOXMwACUXXMUhu+mKLd+FTyrq7XVSjoGwViI0/1pGWDpfe15hQx8ypEezh+tL1+suTcmLXXGt55h1AVLXeWU+EnxYOElgPFSMZJDhw2j0jQZtl/WunfOZa5lfLCSVO0DhkAZGuoxiKn+Izp8whKrz9YK0k4a+0P9DunxKDLYYJsmzJSCSr0FMV6vt+RiniZXdoLz959jYkSLcdCRt0BBIqNUtTvPJSSI2zeWXecGB+7zHn5vP+/v3Cv9XQkXzMy6A9g4o2+pqRB7uxvFR4qKdlOTuDmEsimKkKCbX6yRCuy4hf711PRvRsDm3ZP810wg6M81oSQ+pBIwLBbHDB2HdBgJc210eOLeYGpQC1xbwbhIRxQYoaaFq7W0N36JhabNnZFS1PHgw2fl8nGy2cPgAc3bmYABKggzFTi65ikJK1U9Hd9MUWxO/0V+/Cp5T22ZbVrge86bccjaicMd5rhSrvKspree3TcEis+F0bb+FGKi5m3jbhf8UHoFToVGNN82UiArLz5RupwqQwhJFnKZ+gJuTFrrj93p/51vPMOs/o/XuAqWu8mbJa/bKfCT6rhDh/LBwksDUHFfEeKkYyBzF3c0hw4bRRa9D1ekaDNmNdsnfL+tdO0uHmD/nMtczg14SNr5YSSraNIwudoHDIhLtBiQMjXUYaOGwHMRU/xCgODoVnT5hCflSpA1V5+sBMYsuBgTjFH5gj9F6zDqedqhWW3OVUABv8TzFa12Jimc55U9hJ4U8XUPp+VnvXLZVizBzULY2KEzSWu1Ifu+iRBqDZ0F5+8+xHZcKtbEiRbnVToC86EjboIwkHqQgkVGoRP2Urlqd55I+8SKWkkRtmvYoqJ/LLvODr0I2hwP3eYtnm7yMUvOG9DafQ/CaKgz8/kbJ+cNAkuWnLFfhC5kY7W/13etxla7XFflr07lMJN/dIOHa4Ca6xoRKf8Io/zDOTJP1yAAAAAAHCajcDhNRuAka+WQcJqNwGy8LrBI18sgVPFoUOE1G4D9E7jw2XhdYMVe/hCRr5ZAjYk1MKni0KC1xHPRwmo3Ad5MlHH6J3Hh5gHSkbLwusGu1hmxir38IZabX1EjXyyBP3mP8RsSamEHNMkRU8WhQU/jAjFriOehd65E04TUbgOY8s1zvJko46C/i5P0TuPD6GhAs8wDpSPQJQZTZeF1g3nH1vNdrDNjQYqQExV7+EMJXVszLTa+ozEQHdJGvlkCWpj6cn7zH+Ji1bySNiTUwioCd7IOaZIiEk8xUqeLQoK7reHyn8YEYoPgpxLXEc9CyzdsMu9ciaLzeirXCajcBxWOf3cx5ZrnLcM5l3kyUcdlFPK3QX8XJ11ZtFfonceH9Ltk99DQgWfM9iIXmAdKR4Qh6TegSgynvGyv1svC6wbX5Eh284+t5u+pDpa7WGbGp37FtoMVICafM4NWKvfwhjbRU/YSurZmDpwVFlptfUZGS942YiA7pn4GmNSNfLIEkVoRdLUx9OSpF1eU/eY/xOHAnLTFq3kk2Y3aVGxJqYRwbwr0VATvZEgiTBQc0yREAPWHNCSeYqQ4uMHVTxaFBVMwJnV3W8Pla31glT+MCMUjqqu1B8FOJRvn7VWuI56FsgU99ZZu2GWKSHsV3rkTRcKfsDXm9FWl+tL23hNRuA4Pdxt+Kxz+7jc6XZ5jyzXOf+2WvluGcy5HoNBe8mSjju5CAP7KKeVu1g9GHoL+Lk6e2I0+urNorqaVy9/RO48PzR0sf+l2ye/1UGqfoaECz72Hob+Z7EQvhcrnXzAOlI8sKDf/CEPSbxRlcR9AlBlPXLK6P3jZX69k//zdl4XWDYujdX2vyJDts+4znecfW837Ofi931IdLcN0vl12sM2NapZu/U79i21S2ygdBipATRoM4z0+ZwatIkGl3FXv4QxJyUJ8baKn7HGEBJwldWzMOVPPvB04KiwBHolctNr6jKj8WfyMl7xskLEfHMRAd0zYZtQ8/A0xrOArktka+WQJBt/HeSK0Iuk+koGZamPpyXZFSrlSLq8pTggMWfvMf4nn6tz5w4E5ad+nmhmLVvJJl3BRObMbtKmvPRfY2JNTCMS18Hjg3hXo/Pi2mKgJ3si0L324kESYKIxiO1g5pkiIJYDr+AHrDmgdza0YSTzFSFUaZjhxcYOobVcg2p4tCgqCC6l6pmBM6rpG75rut4fK8pEkutb6wSrK3GJafxgRimM+svpHVVdqW3P0Gg+CnEoTpD86N8/aqivpedtcRz0LQGGee2QKe+t4LNibLN2wyzD7E7sUkPYrCLZVW71yJouhVIX7hT9ga5kZwxvN6KtL0c4IO/Wl7avpg07QAAAAC4vGdlqgnIixK1r+6PYpdXN97wMiVrX9yd1zi5xbQo730IT4pvveBk1wGHAUrWv7jyatjd4N93M1hjEFZQGVef6KUw+voQnxRCrPhx33vAyGfHp611cghDzc5vJpWtf3AtERgVP6S3+4cY0J4az+gnonOPQrDGIKwIekfJoDKvPhiOyFsKO2e1socA0C9QOGmX7F8MhVnw4j3ll4dlhofR3TrgtM+PT1p3Myg/6uQQhlJYd+NA7dgN+FG/aPAr+KFIl5/EWiIwKuKeV09/SW/2x/UIk9VAp31t/MAYNZ/QTo0jtyuflhjFJyp/oLr9RxkCQSB8EPSPkqhI6PebFFg9I6g/WDEdkLaJoffTFHbPaqzKqA++fwfhBsNghF6gcNLmHBe39Km4WUwV3zzRwueFaX6A4HvLLw7Dd0hryw0PonOxaMdhBMcp2bigTERvmPX80/+Q7mZQflbaNxsOuSdNtgVAKKSw78YcDIijgduwGjln138r0niRk24f9Dsm9wODmpBmkS8/iCmTWO20RGBUDPgHMR5NqN+m8c+6/pLf7EYuuIlUmxdn7CdwAnHwSLvJTC/e2/mAMGNF51VrP6Cc04PH+cE2aBd5ig9y5F03y1zhUK5OVP9A9uiYJa6LiHMWN+8WBIJA+Lw+J50h6R8kmVV4QYvg168zXLDK7Vm2O1Xl0V5HUH6w/+wZ1WI7IWzah0YJyDLp53COjoIo7Z7UkFH5sYLkVl86WDE6p48Jgx8zbuYNhsEItTqmbb1A4aQF/IbBF0kpL6/1TkoyInbzip4Rlpgrvnggl9kdePTJS8BIri7S/QHAakFmpfeWXhxPKjl5XZ+Wl+Uj8fJNaxkF9dd+YOdi0Y5f3rbrwgmOUnq16TdoAEbZ0LwhvIjfMeowY1aPItb5YZpqngQHvaa9vwHB2K20bjYVCAlTHXJOmqXOKf+3e4YRD8fhdJIQ2c0qrL6oOBkRRoCldiPYxmZ1YHoBEHLPrv7Kc8mbV6TxIu8Ylkf9rTmpRRFezHZN7gbO8Ylj3EQmjWT4Qej5L3lRQZMeNFMmsdrrmta/s/nG6QtFoYwZ8A5ioUxpBzybUb6EJzbblpKZNS4u/lAmVLmZnuje/IxdcRI04RZ3qTYuzhGKSasDP+ZFu4OBIOPgkXZbXPYTSelZ/fFVPphsggYh1D5hRMaLzqp+N6nP1n9BOG7DJl18domzxMru1lkd1m/hobEK8xQe5EuoeYETy2nXq3cOsrnCoVwBfsY5nKn+gCQVmeU2oDYLjhxRboZmFqc+2nHCLG/eLJTTuUkJBIHwsbjmlaMNSXsbsS4eQ9I+SPtuWS3p2/bDUWeRpsywqR90DM56ZrlhlN4FBvEUBAAAtgcAAHoJAACZBQAAWwUAALoFAAAABAAARQUAAM8FAAB6CQBB0dkAC7YQAQIDBAQFBQYGBgYHBwcHCAgICAgICAgJCQkJCQkJCQoKCgoKCgoKCgoKCgoKCgoLCwsLCwsLCwsLCwsLCwsLDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PAAAQERISExMUFBQUFRUVFRYWFhYWFhYWFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYGRkZGRkZGRkZGRkZGRkZGRoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxscHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHQABAgMEBQYHCAgJCQoKCwsMDAwMDQ0NDQ4ODg4PDw8PEBAQEBAQEBARERERERERERISEhISEhISExMTExMTExMUFBQUFBQUFBQUFBQUFBQUFRUVFRUVFRUVFRUVFRUVFRYWFhYWFhYWFhYWFhYWFhYXFxcXFxcXFxcXFxcXFxcXGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxwQMAAAEDUAAAEBAAAeAQAADwAAAJA0AACQNQAAAAAAAB4AAAAPAAAAAAAAABA2AAAAAAAAEwAAAAcAAAAAAAAADAAIAIwACABMAAgAzAAIACwACACsAAgAbAAIAOwACAAcAAgAnAAIAFwACADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){Ir(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var T=ee.toString();throw x("failed to compile wasm module: "+T),(T.includes("imported Memory")||T.includes("memory import"))&&x("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function bp(){var f={a:da};function E(L,T){var ee=L.exports;t.asm=ee,A=t.asm.u,Tr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return x("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Qr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Nn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Nn.GMTString||(Nn.GMTString=ye("GMT")),de[E+40>>2]=Nn.GMTString,E}function ae(f,E){return Nn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Tl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){Ir("randomDevice")}}var Tn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:Q.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Tn.resolve(f).substr(1),E=Tn.resolve(E).substr(1);function w(it){for(var at=0;at=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),T=Math.min(k.length,L.length),ee=T,Ie=0;Ie0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Yf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{Qke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Gf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Q6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Yf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),bke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[b6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Yf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[QC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Gf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[QC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[b6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[Q6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Yf]/this[jf]:this[jf]===this[Yf]?e=1:e=0,{percent:e,transferred:this[Yf],total:this[jf]}}get uploadProgress(){let e;return this[Gf]?e=this[qf]/this[Gf]:this[Gf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Gf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Tke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Nke=J("events"),Lke=Ga(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Nke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Tke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var T6=Ga();function N6(r){for(let e of Object.values(r))(T6.default.plainObject(e)||T6.default.array(e))&&N6(e);return Object.freeze(r)}BR.default=N6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var QR=I(Qs=>{"use strict";var Yke=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Gke=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Yke(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var K6=Ga(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};Qs.default=j6;Gke(M6(),Qs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Y6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),G6=QR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[G6.defaultHandler],mutableDefaults:!1},bR=G6.default(eDe);qa.default=bR;pB.exports=bR;pB.exports.default=bR;pB.exports.__esModule=!0;Y6(QR(),qa);Y6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&Ir("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:Ir("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||Ir("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function T(f,E,w,k,L){var N={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=YE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=YE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var N="";E>10,56320|it&1023)}}return N}function De(f,E){return f?Pe(Y,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,N=w+k-1,ee=0;ee=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=N)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=N)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=N)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=N)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,Y,E,w)}function Ae(f){for(var E=0,w=0;w=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ge,ie,Y,fe,re,de,Ze,vt,mt;function Nr(f){Ge=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=Y=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!b.init.initialized&&b.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function Ir(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Tl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Tl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJIQgQQHhogASgCSBAqBEAgASgCOEEBQQAQFCABQQA2AkwMAQsgASABKAJIEB1B//8Dca03AyggASABKAJIEB1B//8Dca03AyAgASkDICABKQMoUgRAIAEoAjhBE0EAEBQgAUEANgJMDAELIAEgASgCSBAqrTcDGCABIAEoAkgQKq03AxAgASkDECABKQMQIAEpAxh8VgRAIAEoAjhBBEEWEBQgAUEANgJMDAELIAEpAxAgASkDGHwgASkDQCABKQMIfFYEQCABKAI4QRVBABAUIAFBADYCTAwBCwJAIAEoAjxBBHFFDQAgASkDECABKQMYfCABKQNAIAEpAwh8UQ0AIAEoAjhBFUEAEBQgAUEANgJMDAELIAEgASkDICABKAI4EJABIgU2AjQgBUUEQCABQQA2AkwMAQsgASgCNEEAOgAsIAEoAjQgASkDGDcDGCABKAI0IAEpAxA3AyAgASABKAI0NgJMCyABKAJMIQUgAUHQAGokACAAIAU2AlALIAAoAlBFBEAgAEEANgJsDAELIAAoAmQgACkDMEIUfBAsGiAAIAAoAmQQHTsBTiAAKAJQKQMgIAAoAlApAxh8IAApA1ggACkDMHxWBEAgACgCVEEVQQAQFCAAKAJQECUgAEEANgJsDAELAkAgAC8BTkUEQCAAKAJoKAIEQQRxRQ0BCyAAKAJkIAApAzBCFnwQLBogACAAKAJkEDA3AyACQCAAKQMgIAAvAU6tWgRAIAAoAmgoAgRBBHFFDQEgACkDICAALwFOrVENAQsgACgCVEEVQQAQFCAAKAJQECUgAEEANgJsDAILIAAvAU4EQCAAKAJkIAAvAU6tEB4gAC8BTkEAIAAoAlQQUCEBIAAoAlAgATYCKCABRQRAIAAoAlAQJSAAQQA2AmwMAwsLCwJAIAAoAlApAyAgACkDWFoEQCAAKAJkIAAoAlApAyAgACkDWH0QLBogACAAKAJkIAAoAlApAxgQHiIBNgIcIAFFBEAgACgCVEEVQQAQFCAAKAJQECUgAEEANgJsDAMLIAAgACgCHCAAKAJQKQMYECkiATYCLCABRQRAIAAoAlRBDkEAEBQgACgCUBAlIABBADYCbAwDCwwBCyAAQQA2AiwgACgCaCgCACAAKAJQKQMgQQAQJ0EASARAIAAoAlQgACgCaCgCABAXIAAoAlAQJSAAQQA2AmwMAgsgACgCaCgCABBJIAAoAlApAyBSBEAgACgCVEETQQAQFCAAKAJQECUgAEEANgJsDAILCyAAIAAoAlApAxg3AzggAEIANwNAA0ACQCAAKQM4UA0AIABBADoAGyAAKQNAIAAoAlApAwhRBEAgACgCUC0ALEEBcQ0BIAApAzhCLlQNASAAKAJQQoCABCAAKAJUEI8BQQFxRQRAIAAoAlAQJSAAKAIsEBYgAEEANgJsDAQLIABBAToAGwsjAEEQayIBJAAgAUHYABAYIgU2AggCQCAFRQRAIAFBADYCDAwBCyABKAIIEFMgASABKAIINgIMCyABKAIMIQUgAUEQaiQAIAUhASAAKAJQKAIAIAApA0CnQQR0aiABNgIAAkAgAQRAIAAgACgCUCgCACAAKQNAp0EEdGooAgAgACgCaCgCACAAKAIsQQAgACgCVBCMASIJNwMQIAlCAFkNAQsCQCAALQAbQQFxRQ0AIwBBEGsiASAAKAJUNgIMIAEoAgwoAgBBE0cNACAAKAJUQRVBABAUCyAAKAJQECUgACgCLBAWIABBADYCbAwDCyAAIAApA0BCAXw3A0AgACAAKQM4IAApAxB9NwM4DAELCwJAIAApA0AgACgCUCkDCFEEQCAAKQM4UA0BCyAAKAJUQRVBABAUIAAoAiwQFiAAKAJQECUgAEEANgJsDAELIAAoAmgoAgRBBHEEQAJAIAAoAiwEQCAAIAAoAiwQR0EBcToADwwBCyAAIAAoAmgoAgAQSTcDACAAKQMAQgBTBEAgACgCVCAAKAJoKAIAEBcgACgCUBAlIABBADYCbAwDCyAAIAApAwAgACgCUCkDICAAKAJQKQMYfFE6AA8LIAAtAA9BAXFFBEAgACgCVEEVQQAQFCAAKAIsEBYgACgCUBAlIABBADYCbAwCCwsgACgCLBAWIAAgACgCUDYCbAsgACgCbCEBIABB8ABqJAAgAiABNgJIIAEEQAJAIAIoAkwEQCACKQMgQgBXBEAgAiACKAJYIAIoAkwgAkEQahBoNwMgCyACIAIoAlggAigCSCACQRBqEGg3AygCQCACKQMgIAIpAyhTBEAgAigCTBAlIAIgAigCSDYCTCACIAIpAyg3AyAMAQsgAigCSBAlCwwBCyACIAIoAkg2AkwCQCACKAJYKAIEQQRxBEAgAiACKAJYIAIoAkwgAkEQahBoNwMgDAELIAJCADcDIAsLIAJBADYCSAsgAiACKAJEQQFqNgJEIAIoAgwgAigCRAJ/IwBBEGsiACACKAIMNgIMIAAoAgwoAgQLa6wQLBoMAQsLIAIoAgwQFiACKQMgQgBTBEAgAigCWEEIaiACQRBqEEUgAigCTBAlIAJBADYCXAwBCyACIAIoAkw2AlwLIAIoAlwhACACQeAAaiQAIAMgADYCWCAARQRAIAMoAmAgAygCXEEIahBFIwBBEGsiACADKAJoNgIMIAAoAgwiACAAKAIwQQFqNgIwIAMoAlwQPCADQQA2AmwMAQsgAygCXCADKAJYKAIANgJAIAMoAlwgAygCWCkDCDcDMCADKAJcIAMoAlgpAxA3AzggAygCXCADKAJYKAIoNgIgIAMoAlgQFSADKAJcKAJQIQAgAygCXCkDMCEJIAMoAlxBCGohAiMAQSBrIgEkACABIAA2AhggASAJNwMQIAEgAjYCDAJAIAEpAxBQBEAgAUEBOgAfDAELIwBBIGsiACABKQMQNwMQIAAgACkDELpEAAAAAAAA6D+jOQMIAkAgACsDCEQAAOD////vQWQEQCAAQX82AgQMAQsgAAJ/IAArAwgiCkQAAAAAAADwQWMgCkQAAAAAAAAAAGZxBEAgCqsMAQtBAAs2AgQLAkAgACgCBEGAgICAeEsEQCAAQYCAgIB4NgIcDAELIAAgACgCBEEBazYCBCAAIAAoAgQgACgCBEEBdnI2AgQgACAAKAIEIAAoAgRBAnZyNgIEIAAgACgCBCAAKAIEQQR2cjYCBCAAIAAoAgQgACgCBEEIdnI2AgQgACAAKAIEIAAoAgRBEHZyNgIEIAAgACgCBEEBajYCBCAAIAAoAgQ2AhwLIAEgACgCHDYCCCABKAIIIAEoAhgoAgBNBEAgAUEBOgAfDAELIAEoAhggASgCCCABKAIMEFpBAXFFBEAgAUEAOgAfDAELIAFBAToAHwsgAS0AHxogAUEgaiQAIANCADcDEANAIAMpAxAgAygCXCkDMFQEQCADIAMoAlwoAkAgAykDEKdBBHRqKAIAKAIwQQBBACADKAJgEEY2AgwgAygCDEUEQCMAQRBrIgAgAygCaDYCDCAAKAIMIgAgACgCMEEBajYCMCADKAJcEDwgA0EANgJsDAMLIAMoAlwoAlAgAygCDCADKQMQQQggAygCXEEIahB0QQFxRQRAAkAgAygCXCgCCEEKRgRAIAMoAmRBBHFFDQELIAMoAmAgAygCXEEIahBFIwBBEGsiACADKAJoNgIMIAAoAgwiACAAKAIwQQFqNgIwIAMoAlwQPCADQQA2AmwMBAsLIAMgAykDEEIBfDcDEAwBCwsgAygCXCADKAJcKAIUNgIYIAMgAygCXDYCbAsgAygCbCEAIANB8ABqJAAgBCAANgI4CyAEKAI4RQRAIAQoAlgQLxogBEEANgJcDAELIAQgBCgCODYCXAsgBCgCXCEAIARB4ABqJAAgAAuOAQEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAJBADYCBCACKAIIBEAjAEEQayIAIAIoAgg2AgwgAiAAKAIMKAIANgIEIAIoAggQrAFBAUYEQCMAQRBrIgAgAigCCDYCDEG0mwEgACgCDCgCBDYCAAsLIAIoAgwEQCACKAIMIAIoAgQ2AgALIAJBEGokAAuVAQEBfyMAQRBrIgEkACABIAA2AggCQAJ/IwBBEGsiACABKAIINgIMIAAoAgwpAxhCgIAQg1ALBEAgASgCCCgCAARAIAEgASgCCCgCABCeAUEBcToADwwCCyABQQE6AA8MAQsgASABKAIIQQBCAEESECA+AgQgASABKAIEQQBHOgAPCyABLQAPQQFxIQAgAUEQaiQAIAALfwEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIANBADYCDCADIAI2AggCQCADKQMQQv///////////wBWBEAgAygCCEEEQT0QFCADQX82AhwMAQsgAyADKAIYIAMpAxAgAygCDCADKAIIEGo2AhwLIAMoAhwhACADQSBqJAAgAAt9ACACQQFGBEAgASAAKAIIIAAoAgRrrH0hAQsCQCAAKAIUIAAoAhxLBEAgAEEAQQAgACgCJBEBABogACgCFEUNAQsgAEEANgIcIABCADcDECAAIAEgAiAAKAIoEQ8AQgBTDQAgAEIANwIEIAAgACgCAEFvcTYCAEEADwtBfwvhAgECfyMAQSBrIgMkAAJ/AkACQEGnEiABLAAAEKIBRQRAQbSbAUEcNgIADAELQZgJEBgiAg0BC0EADAELIAJBAEGQARAzIAFBKxCiAUUEQCACQQhBBCABLQAAQfIARhs2AgALAkAgAS0AAEHhAEcEQCACKAIAIQEMAQsgAEEDQQAQBCIBQYAIcUUEQCADIAFBgAhyNgIQIABBBCADQRBqEAQaCyACIAIoAgBBgAFyIgE2AgALIAJB/wE6AEsgAkGACDYCMCACIAA2AjwgAiACQZgBajYCLAJAIAFBCHENACADIANBGGo2AgAgAEGTqAEgAxAODQAgAkEKOgBLCyACQRo2AiggAkEbNgIkIAJBHDYCICACQR02AgxB6J8BKAIARQRAIAJBfzYCTAsgAkGsoAEoAgA2AjhBrKABKAIAIgAEQCAAIAI2AjQLQaygASACNgIAIAILIQAgA0EgaiQAIAAL8AEBAn8CfwJAIAFB/wFxIgMEQCAAQQNxBEADQCAALQAAIgJFDQMgAiABQf8BcUYNAyAAQQFqIgBBA3ENAAsLAkAgACgCACICQX9zIAJBgYKECGtxQYCBgoR4cQ0AIANBgYKECGwhAwNAIAIgA3MiAkF/cyACQYGChAhrcUGAgYKEeHENASAAKAIEIQIgAEEEaiEAIAJBgYKECGsgAkF/c3FBgIGChHhxRQ0ACwsDQCAAIgItAAAiAwRAIAJBAWohACADIAFB/wFxRw0BCwsgAgwCCyAAEC4gAGoMAQsgAAsiAEEAIAAtAAAgAUH/AXFGGwsYACAAKAJMQX9MBEAgABCkAQ8LIAAQpAELYAIBfgJ/IAAoAighAkEBIQMgAEIAIAAtAABBgAFxBH9BAkEBIAAoAhQgACgCHEsbBUEBCyACEQ8AIgFCAFkEfiAAKAIUIAAoAhxrrCABIAAoAgggACgCBGusfXwFIAELC2sBAX8gAARAIAAoAkxBf0wEQCAAEG4PCyAAEG4PC0GwoAEoAgAEQEGwoAEoAgAQpQEhAQtBrKABKAIAIgAEQANAIAAoAkwaIAAoAhQgACgCHEsEQCAAEG4gAXIhAQsgACgCOCIADQALCyABCyIAIAAgARACIgBBgWBPBH9BtJsBQQAgAGs2AgBBfwUgAAsLUwEDfwJAIAAoAgAsAABBMGtBCk8NAANAIAAoAgAiAiwAACEDIAAgAkEBajYCACABIANqQTBrIQEgAiwAAUEwa0EKTw0BIAFBCmwhAQwACwALIAELuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEYEQQACwt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARCpASEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC5sCACAARQRAQQAPCwJ/AkAgAAR/IAFB/wBNDQECQEGQmQEoAgAoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIMBAsgAUGAsANPQQAgAUGAQHFBgMADRxtFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwECwtBtJsBQRk2AgBBfwVBAQsMAQsgACABOgAAQQELC+MBAQJ/IAJBAEchAwJAAkACQCAAQQNxRQ0AIAJFDQAgAUH/AXEhBANAIAAtAAAgBEYNAiACQQFrIgJBAEchAyAAQQFqIgBBA3FFDQEgAg0ACwsgA0UNAQsCQCAALQAAIAFB/wFxRg0AIAJBBEkNACABQf8BcUGBgoQIbCEDA0AgACgCACADcyIEQX9zIARBgYKECGtxQYCBgoR4cQ0BIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQAgAUH/AXEhAQNAIAEgAC0AAEYEQCAADwsgAEEBaiEAIAJBAWsiAg0ACwtBAAtaAQF/IwBBEGsiASAANgIIAkACQCABKAIIKAIAQQBOBEAgASgCCCgCAEGAFCgCAEgNAQsgAUEANgIMDAELIAEgASgCCCgCAEECdEGQFGooAgA2AgwLIAEoAgwL+QIBAX8jAEEgayIEJAAgBCAANgIYIAQgATcDECAEIAI2AgwgBCADNgIIIAQgBCgCGCAEKAIYIAQpAxAgBCgCDCAEKAIIEK4BIgA2AgACQCAARQRAIARBADYCHAwBCyAEKAIAEEhBAEgEQCAEKAIYQQhqIAQoAgAQFyAEKAIAEBsgBEEANgIcDAELIAQoAhghAiMAQRBrIgAkACAAIAI2AgggAEEYEBgiAjYCBAJAIAJFBEAgACgCCEEIakEOQQAQFCAAQQA2AgwMAQsgACgCBCAAKAIINgIAIwBBEGsiAiAAKAIEQQRqNgIMIAIoAgxBADYCACACKAIMQQA2AgQgAigCDEEANgIIIAAoAgRBADoAECAAKAIEQQA2AhQgACAAKAIENgIMCyAAKAIMIQIgAEEQaiQAIAQgAjYCBCACRQRAIAQoAgAQGyAEQQA2AhwMAQsgBCgCBCAEKAIANgIUIAQgBCgCBDYCHAsgBCgCHCEAIARBIGokACAAC7cOAgN/AX4jAEHAAWsiBSQAIAUgADYCuAEgBSABNgK0ASAFIAI3A6gBIAUgAzYCpAEgBUIANwOYASAFQgA3A5ABIAUgBDYCjAECQCAFKAK4AUUEQCAFQQA2ArwBDAELAkAgBSgCtAEEQCAFKQOoASAFKAK0ASkDMFQNAQsgBSgCuAFBCGpBEkEAEBQgBUEANgK8AQwBCwJAIAUoAqQBQQhxDQAgBSgCtAEoAkAgBSkDqAGnQQR0aigCCEUEQCAFKAK0ASgCQCAFKQOoAadBBHRqLQAMQQFxRQ0BCyAFKAK4AUEIakEPQQAQFCAFQQA2ArwBDAELIAUoArQBIAUpA6gBIAUoAqQBQQhyIAVByABqEH5BAEgEQCAFKAK4AUEIakEUQQAQFCAFQQA2ArwBDAELIAUoAqQBQSBxBEAgBSAFKAKkAUEEcjYCpAELAkAgBSkDmAFQBEAgBSkDkAFQDQELIAUoAqQBQQRxRQ0AIAUoArgBQQhqQRJBABAUIAVBADYCvAEMAQsCQCAFKQOYAVAEQCAFKQOQAVANAQsgBSkDmAEgBSkDmAEgBSkDkAF8WARAIAUpA2AgBSkDmAEgBSkDkAF8Wg0BCyAFKAK4AUEIakESQQAQFCAFQQA2ArwBDAELIAUpA5ABUARAIAUgBSkDYCAFKQOYAX03A5ABCyAFIAUpA5ABIAUpA2BUOgBHIAUgBSgCpAFBIHEEf0EABSAFLwF6QQBHC0EBcToARSAFIAUoAqQBQQRxBH9BAAUgBS8BeEEARwtBAXE6AEQgBQJ/IAUoAqQBQQRxBEBBACAFLwF4DQEaCyAFLQBHQX9zC0EBcToARiAFLQBFQQFxBEAgBSgCjAFFBEAgBSAFKAK4ASgCHDYCjAELIAUoAowBRQRAIAUoArgBQQhqQRpBABAUIAVBADYCvAEMAgsLIAUpA2hQBEAgBSAFKAK4AUEAQgBBABB9NgK8AQwBCwJAAkAgBS0AR0EBcUUNACAFLQBFQQFxDQAgBS0AREEBcQ0AIAUgBSkDkAE3AyAgBSAFKQOQATcDKCAFQQA7ATggBSAFKAJwNgIwIAVC3AA3AwggBSAFKAK0ASgCACAFKQOYASAFKQOQASAFQQhqQQAgBSgCtAEgBSkDqAEgBSgCuAFBCGoQXyIANgKIAQwBCyAFIAUoArQBIAUpA6gBIAUoAqQBIAUoArgBQQhqED8iADYCBCAARQRAIAVBADYCvAEMAgsgBSAFKAK0ASgCAEIAIAUpA2ggBUHIAGogBSgCBC8BDEEBdkEDcSAFKAK0ASAFKQOoASAFKAK4AUEIahBfIgA2AogBCyAARQRAIAVBADYCvAEMAQsCfyAFKAKIASEAIAUoArQBIQMjAEEQayIBJAAgASAANgIMIAEgAzYCCCABKAIMIAEoAgg2AiwgASgCCCEDIAEoAgwhBCMAQSBrIgAkACAAIAM2AhggACAENgIUAkAgACgCGCgCSCAAKAIYKAJEQQFqTQRAIAAgACgCGCgCSEEKajYCDCAAIAAoAhgoAkwgACgCDEECdBBONgIQIAAoAhBFBEAgACgCGEEIakEOQQAQFCAAQX82AhwMAgsgACgCGCAAKAIMNgJIIAAoAhggACgCEDYCTAsgACgCFCEEIAAoAhgoAkwhBiAAKAIYIgcoAkQhAyAHIANBAWo2AkQgA0ECdCAGaiAENgIAIABBADYCHAsgACgCHCEDIABBIGokACABQRBqJAAgA0EASAsEQCAFKAKIARAbIAVBADYCvAEMAQsgBS0ARUEBcQRAIAUgBS8BekEAEHsiADYCACAARQRAIAUoArgBQQhqQRhBABAUIAVBADYCvAEMAgsgBSAFKAK4ASAFKAKIASAFLwF6QQAgBSgCjAEgBSgCABEFADYChAEgBSgCiAEQGyAFKAKEAUUEQCAFQQA2ArwBDAILIAUgBSgChAE2AogBCyAFLQBEQQFxBEAgBSAFKAK4ASAFKAKIASAFLwF4ELABNgKEASAFKAKIARAbIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUtAEZBAXEEQCAFIAUoArgBIAUoAogBQQEQrwE2AoQBIAUoAogBEBsgBSgChAFFBEAgBUEANgK8AQwCCyAFIAUoAoQBNgKIAQsCQCAFLQBHQQFxRQ0AIAUtAEVBAXFFBEAgBS0AREEBcUUNAQsgBSgCuAEhASAFKAKIASEDIAUpA5gBIQIgBSkDkAEhCCMAQSBrIgAkACAAIAE2AhwgACADNgIYIAAgAjcDECAAIAg3AwggACgCGCAAKQMQIAApAwhBAEEAQQBCACAAKAIcQQhqEF8hASAAQSBqJAAgBSABNgKEASAFKAKIARAbIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUgBSgCiAE2ArwBCyAFKAK8ASEAIAVBwAFqJAAgAAuEAgEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCEAJAIAMoAhRFBEAgAygCGEEIakESQQAQFCADQQA2AhwMAQsgA0E4EBgiADYCDCAARQRAIAMoAhhBCGpBDkEAEBQgA0EANgIcDAELIwBBEGsiACADKAIMQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAMoAgwgAygCEDYCACADKAIMQQA2AgQgAygCDEIANwMoQQBBAEEAEBohACADKAIMIAA2AjAgAygCDEIANwMYIAMgAygCGCADKAIUQRQgAygCDBBhNgIcCyADKAIcIQAgA0EgaiQAIAALQwEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBEEAQQAQsgEhACADQRBqJAAgAAtJAQF/IwBBEGsiASQAIAEgADYCDCABKAIMBEAgASgCDCgCrEAgASgCDCgCqEAoAgQRAgAgASgCDBA4IAEoAgwQFQsgAUEQaiQAC5QFAQF/IwBBMGsiBSQAIAUgADYCKCAFIAE2AiQgBSACNgIgIAUgAzoAHyAFIAQ2AhggBUEANgIMAkAgBSgCJEUEQCAFKAIoQQhqQRJBABAUIAVBADYCLAwBCyAFIAUoAiAgBS0AH0EBcRCzASIANgIMIABFBEAgBSgCKEEIakEQQQAQFCAFQQA2AiwMAQsgBSgCICEBIAUtAB9BAXEhAiAFKAIYIQMgBSgCDCEEIwBBIGsiACQAIAAgATYCGCAAIAI6ABcgACADNgIQIAAgBDYCDCAAQbDAABAYIgE2AggCQCABRQRAIABBADYCHAwBCyMAQRBrIgEgACgCCDYCDCABKAIMQQA2AgAgASgCDEEANgIEIAEoAgxBADYCCCAAKAIIAn8gAC0AF0EBcQRAIAAoAhhBf0cEfyAAKAIYQX5GBUEBC0EBcQwBC0EAC0EARzoADiAAKAIIIAAoAgw2AqhAIAAoAgggACgCGDYCFCAAKAIIIAAtABdBAXE6ABAgACgCCEEAOgAMIAAoAghBADoADSAAKAIIQQA6AA8gACgCCCgCqEAoAgAhAQJ/AkAgACgCGEF/RwRAIAAoAhhBfkcNAQtBCAwBCyAAKAIYC0H//wNxIAAoAhAgACgCCCABEQEAIQEgACgCCCABNgKsQCABRQRAIAAoAggQOCAAKAIIEBUgAEEANgIcDAELIAAgACgCCDYCHAsgACgCHCEBIABBIGokACAFIAE2AhQgAUUEQCAFKAIoQQhqQQ5BABAUIAVBADYCLAwBCyAFIAUoAiggBSgCJEETIAUoAhQQYSIANgIQIABFBEAgBSgCFBCxASAFQQA2AiwMAQsgBSAFKAIQNgIsCyAFKAIsIQAgBUEwaiQAIAALzAEBAX8jAEEgayICIAA2AhggAiABOgAXIAICfwJAIAIoAhhBf0cEQCACKAIYQX5HDQELQQgMAQsgAigCGAs7AQ4gAkEANgIQAkADQCACKAIQQdSXASgCAEkEQCACKAIQQQxsQdiXAWovAQAgAi8BDkYEQCACLQAXQQFxBEAgAiACKAIQQQxsQdiXAWooAgQ2AhwMBAsgAiACKAIQQQxsQdiXAWooAgg2AhwMAwUgAiACKAIQQQFqNgIQDAILAAsLIAJBADYCHAsgAigCHAvkAQEBfyMAQSBrIgMkACADIAA6ABsgAyABNgIUIAMgAjYCECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCABKAIIKAIcKAJAIAEoAggoAiQRBAALIAEoAggoAhwoAjgEQCABKAIIKAIoIAEoAggoAhwoAjggASgCCCgCJBEEAAsgASgCCCgCKCABKAIIKAIcIAEoAggoAiQRBAAgASgCCEEANgIcIAFBfUEAIAEoAgRB8QBGGzYCDAsgASgCDCEAIAFBEGokACAAC+sXAQJ/IwBB8ABrIgMgADYCbCADIAE2AmggAyACNgJkIANBfzYCXCADIAMoAmgvAQI2AlQgA0EANgJQIANBBzYCTCADQQQ2AkggAygCVEUEQCADQYoBNgJMIANBAzYCSAsgA0EANgJgA0AgAygCYCADKAJkSkUEQCADIAMoAlQ2AlggAyADKAJoIAMoAmBBAWpBAnRqLwECNgJUIAMgAygCUEEBaiIANgJQAkACQCADKAJMIABMDQAgAygCWCADKAJURw0ADAELAkAgAygCUCADKAJISARAA0AgAyADKAJsQfwUaiADKAJYQQJ0ai8BAjYCRAJAIAMoAmwoArwtQRAgAygCRGtKBEAgAyADKAJsQfwUaiADKAJYQQJ0ai8BADYCQCADKAJsIgAgAC8BuC0gAygCQEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAJAQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCREEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsQfwUaiADKAJYQQJ0ai8BACADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCRCAAKAK8LWo2ArwtCyADIAMoAlBBAWsiADYCUCAADQALDAELAkAgAygCWARAIAMoAlggAygCXEcEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwECNgI8AkAgAygCbCgCvC1BECADKAI8a0oEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwEANgI4IAMoAmwiACAALwG4LSADKAI4Qf//A3EgAygCbCgCvC10cjsBuC0gAygCbC8BuC1B/wFxIQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbC8BuC1BCHYhASADKAJsKAIIIQIgAygCbCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJsIAMoAjhB//8DcUEQIAMoAmwoArwta3U7AbgtIAMoAmwiACAAKAK8LSADKAI8QRBrajYCvC0MAQsgAygCbCIAIAAvAbgtIAMoAmxB/BRqIAMoAlhBAnRqLwEAIAMoAmwoArwtdHI7AbgtIAMoAmwiACADKAI8IAAoArwtajYCvC0LIAMgAygCUEEBazYCUAsgAyADKAJsLwG+FTYCNAJAIAMoAmwoArwtQRAgAygCNGtKBEAgAyADKAJsLwG8FTYCMCADKAJsIgAgAC8BuC0gAygCMEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIwQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCNEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwG8FSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCNCAAKAK8LWo2ArwtCyADQQI2AiwCQCADKAJsKAK8LUEQIAMoAixrSgRAIAMgAygCUEEDazYCKCADKAJsIgAgAC8BuC0gAygCKEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIoQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAiwgACgCvC1qNgK8LQsMAQsCQCADKAJQQQpMBEAgAyADKAJsLwHCFTYCJAJAIAMoAmwoArwtQRAgAygCJGtKBEAgAyADKAJsLwHAFTYCICADKAJsIgAgAC8BuC0gAygCIEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIgQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHAFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCJCAAKAK8LWo2ArwtCyADQQM2AhwCQCADKAJsKAK8LUEQIAMoAhxrSgRAIAMgAygCUEEDazYCGCADKAJsIgAgAC8BuC0gAygCGEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIYQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCHEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAhwgACgCvC1qNgK8LQsMAQsgAyADKAJsLwHGFTYCFAJAIAMoAmwoArwtQRAgAygCFGtKBEAgAyADKAJsLwHEFTYCECADKAJsIgAgAC8BuC0gAygCEEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIQQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHEFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCFCAAKAK8LWo2ArwtCyADQQc2AgwCQCADKAJsKAK8LUEQIAMoAgxrSgRAIAMgAygCUEELazYCCCADKAJsIgAgAC8BuC0gAygCCEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIIQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQtrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAgwgACgCvC1qNgK8LQsLCwsgA0EANgJQIAMgAygCWDYCXAJAIAMoAlRFBEAgA0GKATYCTCADQQM2AkgMAQsCQCADKAJYIAMoAlRGBEAgA0EGNgJMIANBAzYCSAwBCyADQQc2AkwgA0EENgJICwsLIAMgAygCYEEBajYCYAwBCwsLkQQBAX8jAEEwayIDIAA2AiwgAyABNgIoIAMgAjYCJCADQX82AhwgAyADKAIoLwECNgIUIANBADYCECADQQc2AgwgA0EENgIIIAMoAhRFBEAgA0GKATYCDCADQQM2AggLIAMoAiggAygCJEEBakECdGpB//8DOwECIANBADYCIANAIAMoAiAgAygCJEpFBEAgAyADKAIUNgIYIAMgAygCKCADKAIgQQFqQQJ0ai8BAjYCFCADIAMoAhBBAWoiADYCEAJAAkAgAygCDCAATA0AIAMoAhggAygCFEcNAAwBCwJAIAMoAhAgAygCCEgEQCADKAIsQfwUaiADKAIYQQJ0aiIAIAMoAhAgAC8BAGo7AQAMAQsCQCADKAIYBEAgAygCGCADKAIcRwRAIAMoAiwgAygCGEECdGpB/BRqIgAgAC8BAEEBajsBAAsgAygCLCIAIABBvBVqLwEAQQFqOwG8FQwBCwJAIAMoAhBBCkwEQCADKAIsIgAgAEHAFWovAQBBAWo7AcAVDAELIAMoAiwiACAAQcQVai8BAEEBajsBxBULCwsgA0EANgIQIAMgAygCGDYCHAJAIAMoAhRFBEAgA0GKATYCDCADQQM2AggMAQsCQCADKAIYIAMoAhRGBEAgA0EGNgIMIANBAzYCCAwBCyADQQc2AgwgA0EENgIICwsLIAMgAygCIEEBajYCIAwBCwsLpxIBAn8jAEHQAGsiAyAANgJMIAMgATYCSCADIAI2AkQgA0EANgI4IAMoAkwoAqAtBEADQCADIAMoAkwoAqQtIAMoAjhBAXRqLwEANgJAIAMoAkwoApgtIQAgAyADKAI4IgFBAWo2AjggAyAAIAFqLQAANgI8AkAgAygCQEUEQCADIAMoAkggAygCPEECdGovAQI2AiwCQCADKAJMKAK8LUEQIAMoAixrSgRAIAMgAygCSCADKAI8QQJ0ai8BADYCKCADKAJMIgAgAC8BuC0gAygCKEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIoQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjxBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIsIAAoArwtajYCvC0LDAELIAMgAygCPC0A0F02AjQgAyADKAJIIAMoAjRBgQJqQQJ0ai8BAjYCJAJAIAMoAkwoArwtQRAgAygCJGtKBEAgAyADKAJIIAMoAjRBgQJqQQJ0ai8BADYCICADKAJMIgAgAC8BuC0gAygCIEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIgQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjRBgQJqQQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCJCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBkOoAaigCADYCMCADKAIwBEAgAyADKAI8IAMoAjRBAnRBgO0AaigCAGs2AjwgAyADKAIwNgIcAkAgAygCTCgCvC1BECADKAIca0oEQCADIAMoAjw2AhggAygCTCIAIAAvAbgtIAMoAhhB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdiEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCGEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCPEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIcIAAoArwtajYCvC0LCyADIAMoAkBBAWs2AkAgAwJ/IAMoAkBBgAJJBEAgAygCQC0A0FkMAQsgAygCQEEHdkGAAmotANBZCzYCNCADIAMoAkQgAygCNEECdGovAQI2AhQCQCADKAJMKAK8LUEQIAMoAhRrSgRAIAMgAygCRCADKAI0QQJ0ai8BADYCECADKAJMIgAgAC8BuC0gAygCEEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIQQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJEIAMoAjRBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIUIAAoArwtajYCvC0LIAMgAygCNEECdEGQ6wBqKAIANgIwIAMoAjAEQCADIAMoAkAgAygCNEECdEGA7gBqKAIAazYCQCADIAMoAjA2AgwCQCADKAJMKAK8LUEQIAMoAgxrSgRAIAMgAygCQDYCCCADKAJMIgAgAC8BuC0gAygCCEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIIQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJAQf//A3EgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgwgACgCvC1qNgK8LQsLCyADKAI4IAMoAkwoAqAtSQ0ACwsgAyADKAJILwGCCDYCBAJAIAMoAkwoArwtQRAgAygCBGtKBEAgAyADKAJILwGACDYCACADKAJMIgAgAC8BuC0gAygCAEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIAQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCBEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJILwGACCADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCBCAAKAK8LWo2ArwtCwuXAgEEfyMAQRBrIgEgADYCDAJAIAEoAgwoArwtQRBGBEAgASgCDC8BuC1B/wFxIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDC8BuC1BCHYhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMQQA7AbgtIAEoAgxBADYCvC0MAQsgASgCDCgCvC1BCE4EQCABKAIMLwG4LSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwiACAALwG4LUEIdjsBuC0gASgCDCIAIAAoArwtQQhrNgK8LQsLC+8BAQR/IwBBEGsiASAANgIMAkAgASgCDCgCvC1BCEoEQCABKAIMLwG4LUH/AXEhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMLwG4LUEIdiECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAADAELIAEoAgwoArwtQQBKBEAgASgCDC8BuC0hAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAAAsLIAEoAgxBADsBuC0gASgCDEEANgK8LQv8AQEBfyMAQRBrIgEgADYCDCABQQA2AggDQCABKAIIQZ4CTkUEQCABKAIMQZQBaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEEeTkUEQCABKAIMQYgTaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEETTkUEQCABKAIMQfwUaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgASgCDEEBOwGUCSABKAIMQQA2AqwtIAEoAgxBADYCqC0gASgCDEEANgKwLSABKAIMQQA2AqAtCyIBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQFSABQRBqJAAL6QEBAX8jAEEwayICIAA2AiQgAiABNwMYIAJCADcDECACIAIoAiQpAwhCAX03AwgCQANAIAIpAxAgAikDCFQEQCACIAIpAxAgAikDCCACKQMQfUIBiHw3AwACQCACKAIkKAIEIAIpAwCnQQN0aikDACACKQMYVgRAIAIgAikDAEIBfTcDCAwBCwJAIAIpAwAgAigCJCkDCFIEQCACKAIkKAIEIAIpAwBCAXynQQN0aikDACACKQMYWA0BCyACIAIpAwA3AygMBAsgAiACKQMAQgF8NwMQCwwBCwsgAiACKQMQNwMoCyACKQMoC6cBAQF/IwBBMGsiBCQAIAQgADYCKCAEIAE2AiQgBCACNwMYIAQgAzYCFCAEIAQoAigpAzggBCgCKCkDMCAEKAIkIAQpAxggBCgCFBCIATcDCAJAIAQpAwhCAFMEQCAEQX82AiwMAQsgBCgCKCAEKQMINwM4IAQoAiggBCgCKCkDOBDAASECIAQoAiggAjcDQCAEQQA2AiwLIAQoAiwhACAEQTBqJAAgAAvrAQEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIAMgAjYCDAJAIAMpAxAgAygCGCkDEFQEQCADQQE6AB8MAQsgAyADKAIYKAIAIAMpAxBCBIanEE4iADYCCCAARQRAIAMoAgxBDkEAEBQgA0EAOgAfDAELIAMoAhggAygCCDYCACADIAMoAhgoAgQgAykDEEIBfEIDhqcQTiIANgIEIABFBEAgAygCDEEOQQAQFCADQQA6AB8MAQsgAygCGCADKAIENgIEIAMoAhggAykDEDcDECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAvOAgEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQAJAIAQoAigNACAEKQMgUA0AIAQoAhhBEkEAEBQgBEEANgIsDAELIAQgBCgCKCAEKQMgIAQoAhwgBCgCGBBMIgA2AgwgAEUEQCAEQQA2AiwMAQsgBEEYEBgiADYCFCAARQRAIAQoAhhBDkEAEBQgBCgCDBAyIARBADYCLAwBCyAEKAIUIAQoAgw2AhAgBCgCFEEANgIUQQAQASEAIAQoAhQgADYCDCMAQRBrIgAgBCgCFDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEQQIgBCgCFCAEKAIYEIMBIgA2AhAgAEUEQCAEKAIUKAIQEDIgBCgCFBAVIARBADYCLAwBCyAEIAQoAhA2AiwLIAQoAiwhACAEQTBqJAAgAAupAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQCAEKAIoRQRAIAQpAyBCAFIEQCAEKAIYQRJBABAUIARBADYCLAwCCyAEQQBCACAEKAIcIAQoAhgQwwE2AiwMAQsgBCAEKAIoNgIIIAQgBCkDIDcDECAEIARBCGpCASAEKAIcIAQoAhgQwwE2AiwLIAQoAiwhACAEQTBqJAAgAAtGAQF/IwBBIGsiAyQAIAMgADYCHCADIAE3AxAgAyACNgIMIAMoAhwgAykDECADKAIMIAMoAhxBCGoQTSEAIANBIGokACAAC4sMAQZ/IAAgAWohBQJAAkAgACgCBCICQQFxDQAgAkEDcUUNASAAKAIAIgIgAWohAQJAIAAgAmsiAEH4mwEoAgBHBEAgAkH/AU0EQCAAKAIIIgQgAkEDdiICQQN0QYycAWpGGiAAKAIMIgMgBEcNAkHkmwFB5JsBKAIAQX4gAndxNgIADAMLIAAoAhghBgJAIAAgACgCDCIDRwRAIAAoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgAEEUaiICKAIAIgQNACAAQRBqIgIoAgAiBA0AQQAhAwwBCwNAIAIhByAEIgNBFGoiAigCACIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgALIAZFDQICQCAAIAAoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAQLIAZBEEEUIAYoAhAgAEYbaiADNgIAIANFDQMLIAMgBjYCGCAAKAIQIgIEQCADIAI2AhAgAiADNgIYCyAAKAIUIgJFDQIgAyACNgIUIAIgAzYCGAwCCyAFKAIEIgJBA3FBA0cNAUHsmwEgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggLAkAgBSgCBCICQQJxRQRAIAVB/JsBKAIARgRAQfybASAANgIAQfCbAUHwmwEoAgAgAWoiATYCACAAIAFBAXI2AgQgAEH4mwEoAgBHDQNB7JsBQQA2AgBB+JsBQQA2AgAPCyAFQfibASgCAEYEQEH4mwEgADYCAEHsmwFB7JsBKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohAQJAIAJB/wFNBEAgBSgCCCIEIAJBA3YiAkEDdEGMnAFqRhogBCAFKAIMIgNGBEBB5JsBQeSbASgCAEF+IAJ3cTYCAAwCCyAEIAM2AgwgAyAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIDRwRAIAUoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgBUEUaiIEKAIAIgINACAFQRBqIgQoAgAiAg0AQQAhAwwBCwNAIAQhByACIgNBFGoiBCgCACICDQAgA0EQaiEEIAMoAhAiAg0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAILIAZBEEEUIAYoAhAgBUYbaiADNgIAIANFDQELIAMgBjYCGCAFKAIQIgIEQCADIAI2AhAgAiADNgIYCyAFKAIUIgJFDQAgAyACNgIUIAIgAzYCGAsgACABQQFyNgIEIAAgAWogATYCACAAQfibASgCAEcNAUHsmwEgATYCAA8LIAUgAkF+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQf8BTQRAIAFBA3YiAkEDdEGMnAFqIQECf0HkmwEoAgAiA0EBIAJ0IgJxRQRAQeSbASACIANyNgIAIAEMAQsgASgCCAshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggPC0EfIQIgAEIANwIQIAFB////B00EQCABQQh2IgIgAkGA/j9qQRB2QQhxIgR0IgIgAkGA4B9qQRB2QQRxIgN0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBHIgAnJrIgJBAXQgASACQRVqdkEBcXJBHGohAgsgACACNgIcIAJBAnRBlJ4BaiEHAkACQEHomwEoAgAiBEEBIAJ0IgNxRQRAQeibASADIARyNgIAIAcgADYCACAAIAc2AhgMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQIgBygCACEDA0AgAyIEKAIEQXhxIAFGDQIgAkEddiEDIAJBAXQhAiAEIANBBHFqIgdBEGooAgAiAw0ACyAHIAA2AhAgACAENgIYCyAAIAA2AgwgACAANgIIDwsgBCgCCCIBIAA2AgwgBCAANgIIIABBADYCGCAAIAQ2AgwgACABNgIICwsGAEG0mwELtQkBAX8jAEHgwABrIgUkACAFIAA2AtRAIAUgATYC0EAgBSACNgLMQCAFIAM3A8BAIAUgBDYCvEAgBSAFKALQQDYCuEACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCvEAOEQMEAAYBAgUJCgoKCgoKCAoHCgsgBUIANwPYQAwKCyAFIAUoArhAQeQAaiAFKALMQCAFKQPAQBBDNwPYQAwJCyAFKAK4QBAVIAVCADcD2EAMCAsgBSgCuEAoAhAEQCAFIAUoArhAKAIQIAUoArhAKQMYIAUoArhAQeQAahBgIgM3A5hAIANQBEAgBUJ/NwPYQAwJCyAFKAK4QCkDCCAFKAK4QCkDCCAFKQOYQHxWBEAgBSgCuEBB5ABqQRVBABAUIAVCfzcD2EAMCQsgBSgCuEAiACAFKQOYQCAAKQMAfDcDACAFKAK4QCIAIAUpA5hAIAApAwh8NwMIIAUoArhAQQA2AhALIAUoArhALQB4QQFxRQRAIAVCADcDqEADQCAFKQOoQCAFKAK4QCkDAFQEQCAFIAUoArhAKQMAIAUpA6hAfUKAwABWBH5CgMAABSAFKAK4QCkDACAFKQOoQH0LNwOgQCAFIAUoAtRAIAVBEGogBSkDoEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqIAUoAtRAEBcgBUJ/NwPYQAwLCyAFKQOwQFAEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwLBSAFIAUpA7BAIAUpA6hAfDcDqEAMAgsACwsLIAUoArhAIAUoArhAKQMANwMgIAVCADcD2EAMBwsgBSkDwEAgBSgCuEApAwggBSgCuEApAyB9VgRAIAUgBSgCuEApAwggBSgCuEApAyB9NwPAQAsgBSkDwEBQBEAgBUIANwPYQAwHCyAFKAK4QC0AeEEBcQRAIAUoAtRAIAUoArhAKQMgQQAQJ0EASARAIAUoArhAQeQAaiAFKALUQBAXIAVCfzcD2EAMCAsLIAUgBSgC1EAgBSgCzEAgBSkDwEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqQRFBABAUIAVCfzcD2EAMBwsgBSgCuEAiACAFKQOwQCAAKQMgfDcDICAFKQOwQFAEQCAFKAK4QCkDICAFKAK4QCkDCFQEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwICwsgBSAFKQOwQDcD2EAMBgsgBSAFKAK4QCkDICAFKAK4QCkDAH0gBSgCuEApAwggBSgCuEApAwB9IAUoAsxAIAUpA8BAIAUoArhAQeQAahCIATcDCCAFKQMIQgBTBEAgBUJ/NwPYQAwGCyAFKAK4QCAFKQMIIAUoArhAKQMAfDcDICAFQgA3A9hADAULIAUgBSgCzEA2AgQgBSgCBCAFKAK4QEEoaiAFKAK4QEHkAGoQhAFBAEgEQCAFQn83A9hADAULIAVCADcD2EAMBAsgBSAFKAK4QCwAYKw3A9hADAMLIAUgBSgCuEApA3A3A9hADAILIAUgBSgCuEApAyAgBSgCuEApAwB9NwPYQAwBCyAFKAK4QEHkAGpBHEEAEBQgBUJ/NwPYQAsgBSkD2EAhAyAFQeDAAGokACADCwgAQQFBDBB/CyIBAX8jAEEQayIBIAA2AgwgASgCDCIAIAAoAjBBAWo2AjALBwAgACgCLAsHACAAKAIoCxgBAX8jAEEQayIBIAA2AgwgASgCDEEMagsHACAAKAIYCwcAIAAoAhALBwAgACgCCAtFAEGgmwFCADcDAEGYmwFCADcDAEGQmwFCADcDAEGImwFCADcDAEGAmwFCADcDAEH4mgFCADcDAEHwmgFCADcDAEHwmgELFAAgACABrSACrUIghoQgAyAEEH4LEwEBfiAAEEkiAUIgiKcQACABpwsVACAAIAGtIAKtQiCGhCADIAQQxAELFAAgACABIAKtIAOtQiCGhCAEEH0LrQQBAX8jAEEgayIFJAAgBSAANgIYIAUgAa0gAq1CIIaENwMQIAUgAzYCDCAFIAQ2AggCQAJAIAUpAxAgBSgCGCkDMFQEQCAFKAIIQQlNDQELIAUoAhhBCGpBEkEAEBQgBUF/NgIcDAELIAUoAhgoAhhBAnEEQCAFKAIYQQhqQRlBABAUIAVBfzYCHAwBCwJ/IAUoAgwhASMAQRBrIgAkACAAIAE2AgggAEEBOgAHAkAgACgCCEUEQCAAQQE6AA8MAQsgACAAKAIIIAAtAAdBAXEQswFBAEc6AA8LIAAtAA9BAXEhASAAQRBqJAAgAUULBEAgBSgCGEEIakEQQQAQFCAFQX82AhwMAQsgBSAFKAIYKAJAIAUpAxCnQQR0ajYCBCAFIAUoAgQoAgAEfyAFKAIEKAIAKAIQBUF/CzYCAAJAIAUoAgwgBSgCAEYEQCAFKAIEKAIEBEAgBSgCBCgCBCIAIAAoAgBBfnE2AgAgBSgCBCgCBEEAOwFQIAUoAgQoAgQoAgBFBEAgBSgCBCgCBBA3IAUoAgRBADYCBAsLDAELIAUoAgQoAgRFBEAgBSgCBCgCABBAIQAgBSgCBCAANgIEIABFBEAgBSgCGEEIakEOQQAQFCAFQX82AhwMAwsLIAUoAgQoAgQgBSgCDDYCECAFKAIEKAIEIAUoAgg7AVAgBSgCBCgCBCIAIAAoAgBBAXI2AgALIAVBADYCHAsgBSgCHCEAIAVBIGokACAACxcBAX4gACABIAIQciIDQiCIpxAAIAOnCx8BAX4gACABIAKtIAOtQiCGhBArIgRCIIinEAAgBKcLrgECAX8BfgJ/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQCACKQMIQgBSBH8gAigCFCgCQCACKQMIQgF9p0EEdGooAgAFQQELRQRAIAIgAikDCEIBfTcDCAwBCwsgAiACKQMINwMYDAELIAIgAigCFCkDMDcDGAsgAikDGCIDQiCIpwsQACADpwsTACAAIAGtIAKtQiCGhCADEMUBC4gCAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAq0gA61CIIaENwMIAkAgBCgCFEUEQCAEQn83AxgMAQsgBCgCFCgCBARAIARCfzcDGAwBCyAEKQMIQv///////////wBWBEAgBCgCFEEEakESQQAQFCAEQn83AxgMAQsCQCAEKAIULQAQQQFxRQRAIAQpAwhQRQ0BCyAEQgA3AxgMAQsgBCAEKAIUKAIUIAQoAhAgBCkDCBArIgU3AwAgBUIAUwRAIAQoAhRBBGogBCgCFCgCFBAXIARCfzcDGAwBCyAEIAQpAwA3AxgLIAQpAxghBSAEQSBqJAAgBUIgiKcLEAAgBacLTwEBfyMAQSBrIgQkACAEIAA2AhwgBCABrSACrUIghoQ3AxAgBCADNgIMIAQoAhwgBCkDECAEKAIMIAQoAhwoAhwQrQEhACAEQSBqJAAgAAvZAwEBfyMAQSBrIgUkACAFIAA2AhggBSABrSACrUIghoQ3AxAgBSADNgIMIAUgBDYCCAJAIAUoAhggBSkDEEEAQQAQP0UEQCAFQX82AhwMAQsgBSgCGCgCGEECcQRAIAUoAhhBCGpBGUEAEBQgBUF/NgIcDAELIAUoAhgoAkAgBSkDEKdBBHRqKAIIBEAgBSgCGCgCQCAFKQMQp0EEdGooAgggBSgCDBBnQQBIBEAgBSgCGEEIakEPQQAQFCAFQX82AhwMAgsgBUEANgIcDAELIAUgBSgCGCgCQCAFKQMQp0EEdGo2AgQgBSAFKAIEKAIABH8gBSgCDCAFKAIEKAIAKAIURwVBAQtBAXE2AgACQCAFKAIABEAgBSgCBCgCBEUEQCAFKAIEKAIAEEAhACAFKAIEIAA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBfzYCHAwECwsgBSgCBCgCBCAFKAIMNgIUIAUoAgQoAgQiACAAKAIAQSByNgIADAELIAUoAgQoAgQEQCAFKAIEKAIEIgAgACgCAEFfcTYCACAFKAIEKAIEKAIARQRAIAUoAgQoAgQQNyAFKAIEQQA2AgQLCwsgBUEANgIcCyAFKAIcIQAgBUEgaiQAIAALFwAgACABrSACrUIghoQgAyAEIAUQmQELEgAgACABrSACrUIghoQgAxAnC48BAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAjYCDCAEIAM2AggCQAJAIAQoAhAEQCAEKAIMDQELIAQoAhRBCGpBEkEAEBQgBEJ/NwMYDAELIAQgBCgCFCAEKAIQIAQoAgwgBCgCCBCaATcDGAsgBCkDGCEFIARBIGokACAFQiCIpwsQACAFpwuFBQIBfwF+An8jAEEwayIDJAAgAyAANgIkIAMgATYCICADIAI2AhwCQCADKAIkKAIYQQJxBEAgAygCJEEIakEZQQAQFCADQn83AygMAQsgAygCIEUEQCADKAIkQQhqQRJBABAUIANCfzcDKAwBCyADQQA2AgwgAyADKAIgEC42AhggAygCICADKAIYQQFraiwAAEEvRwRAIAMgAygCGEECahAYIgA2AgwgAEUEQCADKAIkQQhqQQ5BABAUIANCfzcDKAwCCwJAAkAgAygCDCIBIAMoAiAiAHNBA3ENACAAQQNxBEADQCABIAAtAAAiAjoAACACRQ0DIAFBAWohASAAQQFqIgBBA3ENAAsLIAAoAgAiAkF/cyACQYGChAhrcUGAgYKEeHENAANAIAEgAjYCACAAKAIEIQIgAUEEaiEBIABBBGohACACQYGChAhrIAJBf3NxQYCBgoR4cUUNAAsLIAEgAC0AACICOgAAIAJFDQADQCABIAAtAAEiAjoAASABQQFqIQEgAEEBaiEAIAINAAsLIAMoAgwgAygCGGpBLzoAACADKAIMIAMoAhhBAWpqQQA6AAALIAMgAygCJEEAQgBBABB9IgA2AgggAEUEQCADKAIMEBUgA0J/NwMoDAELIAMgAygCJAJ/IAMoAgwEQCADKAIMDAELIAMoAiALIAMoAgggAygCHBCaATcDECADKAIMEBUCQCADKQMQQgBTBEAgAygCCBAbDAELIAMoAiQgAykDEEEAQQNBgID8jwQQmQFBAEgEQCADKAIkIAMpAxAQmAEaIANCfzcDKAwCCwsgAyADKQMQNwMoCyADKQMoIQQgA0EwaiQAIARCIIinCxAAIASnCxEAIAAgAa0gAq1CIIaEEJgBCxcAIAAgAa0gAq1CIIaEIAMgBCAFEIoBC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEHIiBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEK0BNgIcCyADKAIcIQAgA0EgaiQAIAALEAAjACAAa0FwcSIAJAAgAAsGACAAJAALBAAjAAuCAQIBfwF+IwBBIGsiBCQAIAQgADYCGCAEIAE2AhQgBCACNgIQIAQgAzYCDCAEIAQoAhggBCgCFCAEKAIQEHIiBTcDAAJAIAVCAFMEQCAEQX82AhwMAQsgBCAEKAIYIAQpAwAgBCgCECAEKAIMEH42AhwLIAQoAhwhACAEQSBqJAAgAAvQRQMGfwF+AnwjAEHgAGsiASQAIAEgADYCWAJAIAEoAlhFBEAgAUF/NgJcDAELIwBBIGsiACABKAJYNgIcIAAgAUFAazYCGCAAQQA2AhQgAEIANwMAAkAgACgCHC0AKEEBcUUEQCAAKAIcKAIYIAAoAhwoAhRGDQELIABBATYCFAsgAEIANwMIA0AgACkDCCAAKAIcKQMwVARAAkACQCAAKAIcKAJAIAApAwinQQR0aigCCA0AIAAoAhwoAkAgACkDCKdBBHRqLQAMQQFxDQAgACgCHCgCQCAAKQMIp0EEdGooAgRFDQEgACgCHCgCQCAAKQMIp0EEdGooAgQoAgBFDQELIABBATYCFAsgACgCHCgCQCAAKQMIp0EEdGotAAxBAXFFBEAgACAAKQMAQgF8NwMACyAAIAApAwhCAXw3AwgMAQsLIAAoAhgEQCAAKAIYIAApAwA3AwALIAEgACgCFDYCJCABKQNAUARAAkAgASgCWCgCBEEIcUUEQCABKAIkRQ0BCwJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQNGBEAgAEEANgIMDAELIAAoAggoAiAEQCAAKAIIEC9BAEgEQCAAQX82AgwMAgsLIAAoAggoAiQEQCAAKAIIEGILIAAoAghBAEIAQQ8QIEIAUwRAIABBfzYCDAwBCyAAKAIIQQM2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAJBAEgLBEACQAJ/IwBBEGsiACABKAJYKAIANgIMIwBBEGsiAiAAKAIMQQxqNgIMIAIoAgwoAgBBFkYLBEAjAEEQayIAIAEoAlgoAgA2AgwjAEEQayICIAAoAgxBDGo2AgwgAigCDCgCBEEsRg0BCyABKAJYQQhqIAEoAlgoAgAQFyABQX82AlwMBAsLCyABKAJYEDwgAUEANgJcDAELIAEoAiRFBEAgASgCWBA8IAFBADYCXAwBCyABKQNAIAEoAlgpAzBWBEAgASgCWEEIakEUQQAQFCABQX82AlwMAQsgASABKQNAp0EDdBAYIgA2AiggAEUEQCABQX82AlwMAQsgAUJ/NwM4IAFCADcDSCABQgA3A1ADQCABKQNQIAEoAlgpAzBUBEACQCABKAJYKAJAIAEpA1CnQQR0aigCAEUNAAJAIAEoAlgoAkAgASkDUKdBBHRqKAIIDQAgASgCWCgCQCABKQNQp0EEdGotAAxBAXENACABKAJYKAJAIAEpA1CnQQR0aigCBEUNASABKAJYKAJAIAEpA1CnQQR0aigCBCgCAEUNAQsgAQJ+IAEpAzggASgCWCgCQCABKQNQp0EEdGooAgApA0hUBEAgASkDOAwBCyABKAJYKAJAIAEpA1CnQQR0aigCACkDSAs3AzgLIAEoAlgoAkAgASkDUKdBBHRqLQAMQQFxRQRAIAEpA0ggASkDQFoEQCABKAIoEBUgASgCWEEIakEUQQAQFCABQX82AlwMBAsgASgCKCABKQNIp0EDdGogASkDUDcDACABIAEpA0hCAXw3A0gLIAEgASkDUEIBfDcDUAwBCwsgASkDSCABKQNAVARAIAEoAigQFSABKAJYQQhqQRRBABAUIAFBfzYCXAwBCwJAAn8jAEEQayIAIAEoAlgoAgA2AgwgACgCDCkDGEKAgAiDUAsEQCABQgA3AzgMAQsgASkDOEJ/UQRAIAFCfzcDGCABQgA3AzggAUIANwNQA0AgASkDUCABKAJYKQMwVARAIAEoAlgoAkAgASkDUKdBBHRqKAIABEAgASgCWCgCQCABKQNQp0EEdGooAgApA0ggASkDOFoEQCABIAEoAlgoAkAgASkDUKdBBHRqKAIAKQNINwM4IAEgASkDUDcDGAsLIAEgASkDUEIBfDcDUAwBCwsgASkDGEJ/UgRAIAEoAlghAiABKQMYIQcgASgCWEEIaiEDIwBBMGsiACQAIAAgAjYCJCAAIAc3AxggACADNgIUIAAgACgCJCAAKQMYIAAoAhQQYCIHNwMIAkAgB1AEQCAAQgA3AygMAQsgACAAKAIkKAJAIAApAxinQQR0aigCADYCBAJAIAApAwggACkDCCAAKAIEKQMgfFgEQCAAKQMIIAAoAgQpAyB8Qv///////////wBYDQELIAAoAhRBBEEWEBQgAEIANwMoDAELIAAgACgCBCkDICAAKQMIfDcDCCAAKAIELwEMQQhxBEAgACgCJCgCACAAKQMIQQAQJ0EASARAIAAoAhQgACgCJCgCABAXIABCADcDKAwCCyAAKAIkKAIAIABCBBArQgRSBEAgACgCFCAAKAIkKAIAEBcgAEIANwMoDAILIAAoAABB0JadwABGBEAgACAAKQMIQgR8NwMICyAAIAApAwhCDHw3AwggACgCBEEAEGVBAXEEQCAAIAApAwhCCHw3AwgLIAApAwhC////////////AFYEQCAAKAIUQQRBFhAUIABCADcDKAwCCwsgACAAKQMINwMoCyAAKQMoIQcgAEEwaiQAIAEgBzcDOCAHUARAIAEoAigQFSABQX82AlwMBAsLCyABKQM4QgBSBEACfyABKAJYKAIAIQIgASkDOCEHIwBBEGsiACQAIAAgAjYCCCAAIAc3AwACQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAIAApAwBBERAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABQgA3AzgLCwsgASkDOFAEQAJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAQgBBCBAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABKAJYQQhqIAEoAlgoAgAQFyABKAIoEBUgAUF/NgJcDAILCyABKAJYKAJUIQIjAEEQayIAJAAgACACNgIMIAAoAgwEQCAAKAIMRAAAAAAAAAAAOQMYIAAoAgwoAgBEAAAAAAAAAAAgACgCDCgCDCAAKAIMKAIEERYACyAAQRBqJAAgAUEANgIsIAFCADcDSANAAkAgASkDSCABKQNAWg0AIAEoAlgoAlQhAiABKQNIIge6IAEpA0C6IgijIQkjAEEgayIAJAAgACACNgIcIAAgCTkDECAAIAdCAXy6IAijOQMIIAAoAhwEQCAAKAIcIAArAxA5AyAgACgCHCAAKwMIOQMoIAAoAhxEAAAAAAAAAAAQVwsgAEEgaiQAIAEgASgCKCABKQNIp0EDdGopAwA3A1AgASABKAJYKAJAIAEpA1CnQQR0ajYCEAJAAkAgASgCECgCAEUNACABKAIQKAIAKQNIIAEpAzhaDQAMAQsgAQJ/QQEgASgCECgCCA0AGiABKAIQKAIEBEBBASABKAIQKAIEKAIAQQFxDQEaCyABKAIQKAIEBH8gASgCECgCBCgCAEHAAHFBAEcFQQALC0EBcTYCFCABKAIQKAIERQRAIAEoAhAoAgAQQCEAIAEoAhAgADYCBCAARQRAIAEoAlhBCGpBDkEAEBQgAUEBNgIsDAMLCyABIAEoAhAoAgQ2AgwCfyABKAJYIQIgASkDUCEHIwBBMGsiACQAIAAgAjYCKCAAIAc3AyACQCAAKQMgIAAoAigpAzBaBEAgACgCKEEIakESQQAQFCAAQX82AiwMAQsgACAAKAIoKAJAIAApAyCnQQR0ajYCHAJAIAAoAhwoAgAEQCAAKAIcKAIALQAEQQFxRQ0BCyAAQQA2AiwMAQsgACgCHCgCACkDSEIafEL///////////8AVgRAIAAoAihBCGpBBEEWEBQgAEF/NgIsDAELIAAoAigoAgAgACgCHCgCACkDSEIafEEAECdBAEgEQCAAKAIoQQhqIAAoAigoAgAQFyAAQX82AiwMAQsgACAAKAIoKAIAQgQgAEEYaiAAKAIoQQhqEEIiAjYCFCACRQRAIABBfzYCLAwBCyAAIAAoAhQQHTsBEiAAIAAoAhQQHTsBECAAKAIUEEdBAXFFBEAgACgCFBAWIAAoAihBCGpBFEEAEBQgAEF/NgIsDAELIAAoAhQQFiAALwEQBEAgACgCKCgCACAALwESrUEBECdBAEgEQCAAKAIoQQhqQQRBtJsBKAIAEBQgAEF/NgIsDAILIABBACAAKAIoKAIAIAAvARBBACAAKAIoQQhqEGM2AgggACgCCEUEQCAAQX82AiwMAgsgACgCCCAALwEQQYACIABBDGogACgCKEEIahCUAUEBcUUEQCAAKAIIEBUgAEF/NgIsDAILIAAoAggQFSAAKAIMBEAgACAAKAIMEJMBNgIMIAAoAhwoAgAoAjQgACgCDBCVASECIAAoAhwoAgAgAjYCNAsLIAAoAhwoAgBBAToABAJAIAAoAhwoAgRFDQAgACgCHCgCBC0ABEEBcQ0AIAAoAhwoAgQgACgCHCgCACgCNDYCNCAAKAIcKAIEQQE6AAQLIABBADYCLAsgACgCLCECIABBMGokACACQQBICwRAIAFBATYCLAwCCyABIAEoAlgoAgAQNSIHNwMwIAdCAFMEQCABQQE2AiwMAgsgASgCDCABKQMwNwNIAkAgASgCFARAIAFBADYCCCABKAIQKAIIRQRAIAEgASgCWCABKAJYIAEpA1BBCEEAEK4BIgA2AgggAEUEQCABQQE2AiwMBQsLAn8gASgCWCECAn8gASgCCARAIAEoAggMAQsgASgCECgCCAshAyABKAIMIQQjAEGgAWsiACQAIAAgAjYCmAEgACADNgKUASAAIAQ2ApABAkAgACgClAEgAEE4ahA5QQBIBEAgACgCmAFBCGogACgClAEQFyAAQX82ApwBDAELIAApAzhCwACDUARAIAAgACkDOELAAIQ3AzggAEEAOwFoCwJAAkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BCyAALwFoRQ0AIAAoApABIAAvAWg2AhAMAQsCQAJAIAAoApABKAIQDQAgACkDOEIEg1ANACAAIAApAzhCCIQ3AzggACAAKQNQNwNYDAELIAAgACkDOEL3////D4M3AzgLCyAAKQM4QoABg1AEQCAAIAApAzhCgAGENwM4IABBADsBagsgAEGAAjYCJAJAIAApAzhCBINQBEAgACAAKAIkQYAIcjYCJCAAQn83A3AMAQsgACgCkAEgACkDUDcDKCAAIAApA1A3A3ACQCAAKQM4QgiDUARAAkACQAJAAkACQAJ/AkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BC0EIDAELIAAoApABKAIQC0H//wNxDg0CAwMDAwMDAwEDAwMAAwsgAEKUwuTzDzcDEAwDCyAAQoODsP8PNwMQDAILIABC/////w83AxAMAQsgAEIANwMQCyAAKQNQIAApAxBWBEAgACAAKAIkQYAIcjYCJAsMAQsgACgCkAEgACkDWDcDIAsLIAAgACgCmAEoAgAQNSIHNwOIASAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApABIgIgAi8BDEH3/wNxOwEMIAAgACgCmAEgACgCkAEgACgCJBBUIgI2AiggAkEASARAIABBfzYCnAEMAQsgACAALwFoAn8CQCAAKAKQASgCEEF/RwRAIAAoApABKAIQQX5HDQELQQgMAQsgACgCkAEoAhALQf//A3FHOgAiIAAgAC0AIkEBcQR/IAAvAWhBAEcFQQALQQFxOgAhIAAgAC8BaAR/IAAtACEFQQELQQFxOgAgIAAgAC0AIkEBcQR/IAAoApABKAIQQQBHBUEAC0EBcToAHyAAAn9BASAALQAiQQFxDQAaQQEgACgCkAEoAgBBgAFxDQAaIAAoApABLwFSIAAvAWpHC0EBcToAHiAAIAAtAB5BAXEEfyAALwFqQQBHBUEAC0EBcToAHSAAIAAtAB5BAXEEfyAAKAKQAS8BUkEARwVBAAtBAXE6ABwgACAAKAKUATYCNCMAQRBrIgIgACgCNDYCDCACKAIMIgIgAigCMEEBajYCMCAALQAdQQFxBEAgACAALwFqQQAQeyICNgIMIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAvAWpBACAAKAKYASgCHCAAKAIMEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAALQAhQQFxBEAgACAAKAKYASAAKAI0IAAvAWgQsAEiAjYCMCACRQRAIAAoAjQQGyAAQX82ApwBDAILIAAoAjQQGyAAIAAoAjA2AjQLIAAtACBBAXEEQCAAIAAoApgBIAAoAjRBABCvASICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AH0EBcQRAIAAoApgBIQMgACgCNCEEIAAoApABKAIQIQUgACgCkAEvAVAhBiMAQRBrIgIkACACIAM2AgwgAiAENgIIIAIgBTYCBCACIAY2AgAgAigCDCACKAIIIAIoAgRBASACKAIAELIBIQMgAkEQaiQAIAAgAyICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AHEEBcQRAIABBADYCBAJAIAAoApABKAJUBEAgACAAKAKQASgCVDYCBAwBCyAAKAKYASgCHARAIAAgACgCmAEoAhw2AgQLCyAAIAAoApABLwFSQQEQeyICNgIIIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAoApABLwFSQQEgACgCBCAAKAIIEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAAIAAoApgBKAIAEDUiBzcDgAEgB0IAUwRAIAAoApgBQQhqIAAoApgBKAIAEBcgAEF/NgKcAQwBCyAAKAKYASEDIAAoAjQhBCAAKQNwIQcjAEHAwABrIgIkACACIAM2ArhAIAIgBDYCtEAgAiAHNwOoQAJAIAIoArRAEEhBAEgEQCACKAK4QEEIaiACKAK0QBAXIAJBfzYCvEAMAQsgAkEANgIMIAJCADcDEANAAkAgAiACKAK0QCACQSBqQoDAABArIgc3AxggB0IAVw0AIAIoArhAIAJBIGogAikDGBA2QQBIBEAgAkF/NgIMBSACKQMYQoDAAFINAiACKAK4QCgCVEUNAiACKQOoQEIAVw0CIAIgAikDGCACKQMQfDcDECACKAK4QCgCVCACKQMQuSACKQOoQLmjEFcMAgsLCyACKQMYQgBTBEAgAigCuEBBCGogAigCtEAQFyACQX82AgwLIAIoArRAEC8aIAIgAigCDDYCvEALIAIoArxAIQMgAkHAwABqJAAgACADNgIsIAAoAjQgAEE4ahA5QQBIBEAgACgCmAFBCGogACgCNBAXIABBfzYCLAsgACgCNCEDIwBBEGsiAiQAIAIgAzYCCAJAA0AgAigCCARAIAIoAggpAxhCgIAEg0IAUgRAIAIgAigCCEEAQgBBEBAgNwMAIAIpAwBCAFMEQCACQf8BOgAPDAQLIAIpAwBCA1UEQCACKAIIQQxqQRRBABAUIAJB/wE6AA8MBAsgAiACKQMAPAAPDAMFIAIgAigCCCgCADYCCAwCCwALCyACQQA6AA8LIAIsAA8hAyACQRBqJAAgACADIgI6ACMgAkEYdEEYdUEASARAIAAoApgBQQhqIAAoAjQQFyAAQX82AiwLIAAoAjQQGyAAKAIsQQBIBEAgAEF/NgKcAQwBCyAAIAAoApgBKAIAEDUiBzcDeCAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApgBKAIAIAApA4gBEJsBQQBIBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAApAzhC5ACDQuQAUgRAIAAoApgBQQhqQRRBABAUIABBfzYCnAEMAQsgACgCkAEoAgBBIHFFBEACQCAAKQM4QhCDQgBSBEAgACgCkAEgACgCYDYCFAwBCyAAKAKQAUEUahABGgsLIAAoApABIAAvAWg2AhAgACgCkAEgACgCZDYCGCAAKAKQASAAKQNQNwMoIAAoApABIAApA3ggACkDgAF9NwMgIAAoApABIAAoApABLwEMQfn/A3EgAC0AI0EBdHI7AQwgACgCkAEhAyAAKAIkQYAIcUEARyEEIwBBEGsiAiQAIAIgAzYCDCACIAQ6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABBlQQFxRQ0BCyACKAIMQS07AQoMAQsCQCACKAIMKAIQQQhHBEAgAigCDC8BUkEBRw0BCyACKAIMQRQ7AQoMAQsgAiACKAIMKAIwEFEiAzsBCCADQf//A3EEQCACKAIMKAIwKAIAIAIvAQhBAWtqLQAAQS9GBEAgAigCDEEUOwEKDAILCyACKAIMQQo7AQoLIAJBEGokACAAIAAoApgBIAAoApABIAAoAiQQVCICNgIsIAJBAEgEQCAAQX82ApwBDAELIAAoAiggACgCLEcEQCAAKAKYAUEIakEUQQAQFCAAQX82ApwBDAELIAAoApgBKAIAIAApA3gQmwFBAEgEQCAAKAKYAUEIaiAAKAKYASgCABAXIABBfzYCnAEMAQsgAEEANgKcAQsgACgCnAEhAiAAQaABaiQAIAJBAEgLBEAgAUEBNgIsIAEoAggEQCABKAIIEBsLDAQLIAEoAggEQCABKAIIEBsLDAELIAEoAgwiACAALwEMQff/A3E7AQwgASgCWCABKAIMQYACEFRBAEgEQCABQQE2AiwMAwsgASABKAJYIAEpA1AgASgCWEEIahBgIgc3AwAgB1AEQCABQQE2AiwMAwsgASgCWCgCACABKQMAQQAQJ0EASARAIAEoAlhBCGogASgCWCgCABAXIAFBATYCLAwDCwJ/IAEoAlghAiABKAIMKQMgIQcjAEGgwABrIgAkACAAIAI2AphAIAAgBzcDkEAgACAAKQOQQLo5AwACQANAIAApA5BAUEUEQCAAIAApA5BAQoDAAFYEfkKAwAAFIAApA5BACz4CDCAAKAKYQCgCACAAQRBqIAAoAgytIAAoAphAQQhqEGRBAEgEQCAAQX82ApxADAMLIAAoAphAIABBEGogACgCDK0QNkEASARAIABBfzYCnEAMAwUgACAAKQOQQCAANQIMfTcDkEAgACgCmEAoAlQgACsDACAAKQOQQLqhIAArAwCjEFcMAgsACwsgAEEANgKcQAsgACgCnEAhAiAAQaDAAGokACACQQBICwRAIAFBATYCLAwDCwsLIAEgASkDSEIBfDcDSAwBCwsgASgCLEUEQAJ/IAEoAlghACABKAIoIQMgASkDQCEHIwBBMGsiAiQAIAIgADYCKCACIAM2AiQgAiAHNwMYIAIgAigCKCgCABA1Igc3AxACQCAHQgBTBEAgAkF/NgIsDAELIAIoAighAyACKAIkIQQgAikDGCEHIwBBwAFrIgAkACAAIAM2ArQBIAAgBDYCsAEgACAHNwOoASAAIAAoArQBKAIAEDUiBzcDIAJAIAdCAFMEQCAAKAK0AUEIaiAAKAK0ASgCABAXIABCfzcDuAEMAQsgACAAKQMgNwOgASAAQQA6ABcgAEIANwMYA0AgACkDGCAAKQOoAVQEQCAAIAAoArQBKAJAIAAoArABIAApAxinQQN0aikDAKdBBHRqNgIMIAAgACgCtAECfyAAKAIMKAIEBEAgACgCDCgCBAwBCyAAKAIMKAIAC0GABBBUIgM2AhAgA0EASARAIABCfzcDuAEMAwsgACgCEARAIABBAToAFwsgACAAKQMYQgF8NwMYDAELCyAAIAAoArQBKAIAEDUiBzcDICAHQgBTBEAgACgCtAFBCGogACgCtAEoAgAQFyAAQn83A7gBDAELIAAgACkDICAAKQOgAX03A5gBAkAgACkDoAFC/////w9YBEAgACkDqAFC//8DWA0BCyAAQQE6ABcLIAAgAEEwakLiABApIgM2AiwgA0UEQCAAKAK0AUEIakEOQQAQFCAAQn83A7gBDAELIAAtABdBAXEEQCAAKAIsQecSQQQQQSAAKAIsQiwQLSAAKAIsQS0QHyAAKAIsQS0QHyAAKAIsQQAQISAAKAIsQQAQISAAKAIsIAApA6gBEC0gACgCLCAAKQOoARAtIAAoAiwgACkDmAEQLSAAKAIsIAApA6ABEC0gACgCLEHiEkEEEEEgACgCLEEAECEgACgCLCAAKQOgASAAKQOYAXwQLSAAKAIsQQEQIQsgACgCLEHsEkEEEEEgACgCLEEAECEgACgCLCAAKQOoAUL//wNaBH5C//8DBSAAKQOoAQunQf//A3EQHyAAKAIsIAApA6gBQv//A1oEfkL//wMFIAApA6gBC6dB//8DcRAfIAAoAiwgACkDmAFC/////w9aBH9BfwUgACkDmAGnCxAhIAAoAiwgACkDoAFC/////w9aBH9BfwUgACkDoAGnCxAhIAACfyAAKAK0AS0AKEEBcQRAIAAoArQBKAIkDAELIAAoArQBKAIgCzYClAEgACgCLAJ/IAAoApQBBEAgACgClAEvAQQMAQtBAAtB//8DcRAfAn8jAEEQayIDIAAoAiw2AgwgAygCDC0AAEEBcUULBEAgACgCtAFBCGpBFEEAEBQgACgCLBAWIABCfzcDuAEMAQsgACgCtAECfyMAQRBrIgMgACgCLDYCDCADKAIMKAIECwJ+IwBBEGsiAyAAKAIsNgIMAn4gAygCDC0AAEEBcQRAIAMoAgwpAxAMAQtCAAsLEDZBAEgEQCAAKAIsEBYgAEJ/NwO4AQwBCyAAKAIsEBYgACgClAEEQCAAKAK0ASAAKAKUASgCACAAKAKUAS8BBK0QNkEASARAIABCfzcDuAEMAgsLIAAgACkDmAE3A7gBCyAAKQO4ASEHIABBwAFqJAAgAiAHNwMAIAdCAFMEQCACQX82AiwMAQsgAiACKAIoKAIAEDUiBzcDCCAHQgBTBEAgAkF/NgIsDAELIAJBADYCLAsgAigCLCEAIAJBMGokACAAQQBICwRAIAFBATYCLAsLIAEoAigQFSABKAIsRQRAAn8gASgCWCgCACECIwBBEGsiACQAIAAgAjYCCAJAIAAoAggoAiRBAUcEQCAAKAIIQQxqQRJBABAUIABBfzYCDAwBCyAAKAIIKAIgQQFLBEAgACgCCEEMakEdQQAQFCAAQX82AgwMAQsgACgCCCgCIARAIAAoAggQL0EASARAIABBfzYCDAwCCwsgACgCCEEAQgBBCRAgQgBTBEAgACgCCEECNgIkIABBfzYCDAwBCyAAKAIIQQA2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAILBEAgASgCWEEIaiABKAJYKAIAEBcgAUEBNgIsCwsgASgCWCgCVCECIwBBEGsiACQAIAAgAjYCDCAAKAIMRAAAAAAAAPA/EFcgAEEQaiQAIAEoAiwEQCABKAJYKAIAEGIgAUF/NgJcDAELIAEoAlgQPCABQQA2AlwLIAEoAlwhACABQeAAaiQAIAAL0g4CB38CfiMAQTBrIgMkACADIAA2AiggAyABNgIkIAMgAjYCICMAQRBrIgAgA0EIajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADKAIoIQAjAEEgayIEJAAgBCAANgIYIARCADcDECAEQn83AwggBCADQQhqNgIEAkACQCAEKAIYBEAgBCkDCEJ/WQ0BCyAEKAIEQRJBABAUIARBADYCHAwBCyAEKAIYIQAgBCkDECEKIAQpAwghCyAEKAIEIQEjAEGgAWsiAiQAIAIgADYCmAEgAkEANgKUASACIAo3A4gBIAIgCzcDgAEgAkEANgJ8IAIgATYCeAJAAkAgAigClAENACACKAKYAQ0AIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACKQOAAUIAUwRAIAJCADcDgAELAkAgAikDiAFC////////////AFgEQCACKQOIASACKQOIASACKQOAAXxYDQELIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACQYgBEBgiADYCdCAARQRAIAIoAnhBDkEAEBQgAkEANgKcAQwBCyACKAJ0QQA2AhggAigCmAEEQCACKAKYASIAEC5BAWoiARAYIgUEfyAFIAAgARAZBUEACyEAIAIoAnQgADYCGCAARQRAIAIoAnhBDkEAEBQgAigCdBAVIAJBADYCnAEMAgsLIAIoAnQgAigClAE2AhwgAigCdCACKQOIATcDaCACKAJ0IAIpA4ABNwNwAkAgAigCfARAIAIoAnQiACACKAJ8IgEpAwA3AyAgACABKQMwNwNQIAAgASkDKDcDSCAAIAEpAyA3A0AgACABKQMYNwM4IAAgASkDEDcDMCAAIAEpAwg3AyggAigCdEEANgIoIAIoAnQiACAAKQMgQv7///8PgzcDIAwBCyACKAJ0QSBqEDsLIAIoAnQpA3BCAFIEQCACKAJ0IAIoAnQpA3A3AzggAigCdCIAIAApAyBCBIQ3AyALIwBBEGsiACACKAJ0QdgAajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCACKAJ0QQA2AoABIAIoAnRBADYChAEjAEEQayIAIAIoAnQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggAkF/NgIEIAJBBzYCAEEOIAIQNEI/hCEKIAIoAnQgCjcDEAJAIAIoAnQoAhgEQCACIAIoAnQoAhggAkEYahCmAUEATjoAFyACLQAXQQFxRQRAAkAgAigCdCkDaFBFDQAgAigCdCkDcFBFDQAgAigCdEL//wM3AxALCwwBCwJAIAIoAnQoAhwiACgCTEEASA0ACyAAKAI8IQBBACEFIwBBIGsiBiQAAn8CQCAAIAJBGGoiCRAKIgFBeEYEQCMAQSBrIgckACAAIAdBCGoQCSIIBH9BtJsBIAg2AgBBAAVBAQshCCAHQSBqJAAgCA0BCyABQYFgTwR/QbSbAUEAIAFrNgIAQX8FIAELDAELA0AgBSAGaiIBIAVBxxJqLQAAOgAAIAVBDkchByAFQQFqIQUgBw0ACwJAIAAEQEEPIQUgACEBA0AgAUEKTwRAIAVBAWohBSABQQpuIQEMAQsLIAUgBmpBADoAAANAIAYgBUEBayIFaiAAIABBCm4iAUEKbGtBMHI6AAAgAEEJSyEHIAEhACAHDQALDAELIAFBMDoAACAGQQA6AA8LIAYgCRACIgBBgWBPBH9BtJsBQQAgAGs2AgBBfwUgAAsLIQAgBkEgaiQAIAIgAEEATjoAFwsCQCACLQAXQQFxRQRAIAIoAnRB2ABqQQVBtJsBKAIAEBQMAQsgAigCdCkDIEIQg1AEQCACKAJ0IAIoAlg2AkggAigCdCIAIAApAyBCEIQ3AyALIAIoAiRBgOADcUGAgAJGBEAgAigCdEL/gQE3AxAgAikDQCACKAJ0KQNoIAIoAnQpA3B8VARAIAIoAnhBEkEAEBQgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAMLIAIoAnQpA3BQBEAgAigCdCACKQNAIAIoAnQpA2h9NwM4IAIoAnQiACAAKQMgQgSENwMgAkAgAigCdCgCGEUNACACKQOIAVBFDQAgAigCdEL//wM3AxALCwsLIAIoAnQiACAAKQMQQoCAEIQ3AxAgAkEeIAIoAnQgAigCeBCDASIANgJwIABFBEAgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAELIAIgAigCcDYCnAELIAIoApwBIQAgAkGgAWokACAEIAA2AhwLIAQoAhwhACAEQSBqJAAgAyAANgIYAkAgAEUEQCADKAIgIANBCGoQnQEgA0EIahA4IANBADYCLAwBCyADIAMoAhggAygCJCADQQhqEJwBIgA2AhwgAEUEQCADKAIYEBsgAygCICADQQhqEJ0BIANBCGoQOCADQQA2AiwMAQsgA0EIahA4IAMgAygCHDYCLAsgAygCLCEAIANBMGokACAAC5IfAQZ/IwBB4ABrIgQkACAEIAA2AlQgBCABNgJQIAQgAjcDSCAEIAM2AkQgBCAEKAJUNgJAIAQgBCgCUDYCPAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAkQOEwYHAgwEBQoOAQMJEAsPDQgREQARCyAEQgA3A1gMEQsgBCgCQCgCGEUEQCAEKAJAQRxBABAUIARCfzcDWAwRCyAEKAJAIQAjAEGAAWsiASQAIAEgADYCeCABIAEoAngoAhgQLkEIahAYIgA2AnQCQCAARQRAIAEoAnhBDkEAEBQgAUF/NgJ8DAELAkAgASgCeCgCGCABQRBqEKYBRQRAIAEgASgCHDYCbAwBCyABQX82AmwLIAEoAnQhACABIAEoAngoAhg2AgAgAEGrEiABEG8gASgCdCEDIAEoAmwhByMAQTBrIgAkACAAIAM2AiggACAHNgIkIABBADYCECAAIAAoAiggACgCKBAuajYCGCAAIAAoAhhBAWs2AhwDQCAAKAIcIAAoAihPBH8gACgCHCwAAEHYAEYFQQALQQFxBEAgACAAKAIQQQFqNgIQIAAgACgCHEEBazYCHAwBCwsCQCAAKAIQRQRAQbSbAUEcNgIAIABBfzYCLAwBCyAAIAAoAhxBAWo2AhwDQCMAQRBrIgckAAJAAn8jAEEQayIDJAAgAyAHQQhqNgIIIANBBDsBBiADQegLQQBBABBsIgU2AgACQCAFQQBIBEAgA0EAOgAPDAELAn8gAygCACEGIAMoAgghCCADLwEGIQkjAEEQayIFJAAgBSAJNgIMIAUgCDYCCCAGIAVBCGpBASAFQQRqEAYiBgR/QbSbASAGNgIAQX8FQQALIQYgBSgCBCEIIAVBEGokACADLwEGQX8gCCAGG0cLBEAgAygCABBrIANBADoADwwBCyADKAIAEGsgA0EBOgAPCyADLQAPQQFxIQUgA0EQaiQAIAULBEAgByAHKAIINgIMDAELQcCgAS0AAEEBcUUEQEEAEAEhBgJAQciZASgCACIDRQRAQcyZASgCACAGNgIADAELQdCZAUEDQQNBASADQQdGGyADQR9GGzYCAEG8oAFBADYCAEHMmQEoAgAhBSADQQFOBEAgBq0hAkEAIQYDQCAFIAZBAnRqIAJCrf7V5NSF/ajYAH5CAXwiAkIgiD4CACAGQQFqIgYgA0cNAAsLIAUgBSgCAEEBcjYCAAsLQcyZASgCACEDAkBByJkBKAIAIgVFBEAgAyADKAIAQe2cmY4EbEG54ABqQf////8HcSIDNgIADAELIANB0JkBKAIAIgZBAnRqIgggCCgCACADQbygASgCACIIQQJ0aigCAGoiAzYCAEG8oAFBACAIQQFqIgggBSAIRhs2AgBB0JkBQQAgBkEBaiIGIAUgBkYbNgIAIANBAXYhAwsgByADNgIMCyAHKAIMIQMgB0EQaiQAIAAgAzYCDCAAIAAoAhw2AhQDQCAAKAIUIAAoAhhJBEAgACAAKAIMQSRwOgALAn8gACwAC0EKSARAIAAsAAtBMGoMAQsgACwAC0HXAGoLIQMgACAAKAIUIgdBAWo2AhQgByADOgAAIAAgACgCDEEkbjYCDAwBCwsgACgCKCEDIAAgACgCJEF/RgR/QbYDBSAAKAIkCzYCACAAIANBwoEgIAAQbCIDNgIgIANBAE4EQCAAKAIkQX9HBEAgACgCKCAAKAIkEA8iA0GBYE8Ef0G0mwFBACADazYCAEEABSADCxoLIAAgACgCIDYCLAwCC0G0mwEoAgBBFEYNAAsgAEF/NgIsCyAAKAIsIQMgAEEwaiQAIAEgAyIANgJwIABBf0YEQCABKAJ4QQxBtJsBKAIAEBQgASgCdBAVIAFBfzYCfAwBCyABIAEoAnBBoxIQoQEiADYCaCAARQRAIAEoAnhBDEG0mwEoAgAQFCABKAJwEGsgASgCdBBtGiABKAJ0EBUgAUF/NgJ8DAELIAEoAnggASgCaDYChAEgASgCeCABKAJ0NgKAASABQQA2AnwLIAEoAnwhACABQYABaiQAIAQgAKw3A1gMEAsgBCgCQCgCGARAIAQoAkAoAhwQVhogBCgCQEEANgIcCyAEQgA3A1gMDwsgBCgCQCgChAEQVkEASARAIAQoAkBBADYChAEgBCgCQEEGQbSbASgCABAUCyAEKAJAQQA2AoQBIAQoAkAoAoABIAQoAkAoAhgQCCIAQYFgTwR/QbSbAUEAIABrNgIAQX8FIAALQQBIBEAgBCgCQEECQbSbASgCABAUIARCfzcDWAwPCyAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDA4LIAQgBCgCQCAEKAJQIAQpA0gQQzcDWAwNCyAEKAJAKAIYEBUgBCgCQCgCgAEQFSAEKAJAKAIcBEAgBCgCQCgCHBBWGgsgBCgCQBAVIARCADcDWAwMCyAEKAJAKAIYBEAgBCgCQCgCGCEBIwBBIGsiACQAIAAgATYCGCAAQQA6ABcgAEGAgCA2AgwCQCAALQAXQQFxBEAgACAAKAIMQQJyNgIMDAELIAAgACgCDDYCDAsgACgCGCEBIAAoAgwhAyAAQbYDNgIAIAAgASADIAAQbCIBNgIQAkAgAUEASARAIABBADYCHAwBCyAAIAAoAhBBoxJBoBIgAC0AF0EBcRsQoQEiATYCCCABRQRAIABBADYCHAwBCyAAIAAoAgg2AhwLIAAoAhwhASAAQSBqJAAgBCgCQCABNgIcIAFFBEAgBCgCQEELQbSbASgCABAUIARCfzcDWAwNCwsgBCgCQCkDaEIAUgRAIAQoAkAoAhwgBCgCQCkDaCAEKAJAEJ8BQQBIBEAgBEJ/NwNYDA0LCyAEKAJAQgA3A3ggBEIANwNYDAsLAkAgBCgCQCkDcEIAUgRAIAQgBCgCQCkDcCAEKAJAKQN4fTcDMCAEKQMwIAQpA0hWBEAgBCAEKQNINwMwCwwBCyAEIAQpA0g3AzALIAQpAzBC/////w9WBEAgBEL/////DzcDMAsgBAJ/IAQoAjwhByAEKQMwpyEAIAQoAkAoAhwiAygCTBogAyADLQBKIgFBAWsgAXI6AEogAygCCCADKAIEIgVrIgFBAUgEfyAABSAHIAUgASAAIAAgAUsbIgEQGRogAyADKAIEIAFqNgIEIAEgB2ohByAAIAFrCyIBBEADQAJAAn8gAyADLQBKIgVBAWsgBXI6AEogAygCFCADKAIcSwRAIANBAEEAIAMoAiQRAQAaCyADQQA2AhwgA0IANwMQIAMoAgAiBUEEcQRAIAMgBUEgcjYCAEF/DAELIAMgAygCLCADKAIwaiIGNgIIIAMgBjYCBCAFQRt0QR91C0UEQCADIAcgASADKAIgEQEAIgVBAWpBAUsNAQsgACABawwDCyAFIAdqIQcgASAFayIBDQALCyAACyIANgIsIABFBEACfyAEKAJAKAIcIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxBEAgBCgCQEEFQbSbASgCABAUIARCfzcDWAwMCwsgBCgCQCIAIAApA3ggBCgCLK18NwN4IAQgBCgCLK03A1gMCgsgBCgCQCgCGBBtQQBIBEAgBCgCQEEWQbSbASgCABAUIARCfzcDWAwKCyAEQgA3A1gMCQsgBCgCQCgChAEEQCAEKAJAKAKEARBWGiAEKAJAQQA2AoQBCyAEKAJAKAKAARBtGiAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDAgLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIYIAQoAhhFBEAgBEJ/NwNYDAgLIARBATYCHAJAAkACQAJAAkAgBCgCGCgCCA4DAAIBAwsgBCAEKAIYKQMANwMgDAMLAkAgBCgCQCkDcFAEQCAEKAJAKAIcIAQoAhgpAwBBAiAEKAJAEGpBAEgEQCAEQn83A1gMDQsgBCAEKAJAKAIcEKMBIgI3AyAgAkIAUwRAIAQoAkBBBEG0mwEoAgAQFCAEQn83A1gMDQsgBCAEKQMgIAQoAkApA2h9NwMgIARBADYCHAwBCyAEIAQoAkApA3AgBCgCGCkDAHw3AyALDAILIAQgBCgCQCkDeCAEKAIYKQMAfDcDIAwBCyAEKAJAQRJBABAUIARCfzcDWAwICwJAAkAgBCkDIEIAUw0AIAQoAkApA3BCAFIEQCAEKQMgIAQoAkApA3BWDQELIAQoAkApA2ggBCkDICAEKAJAKQNofFgNAQsgBCgCQEESQQAQFCAEQn83A1gMCAsgBCgCQCAEKQMgNwN4IAQoAhwEQCAEKAJAKAIcIAQoAkApA3ggBCgCQCkDaHwgBCgCQBCfAUEASARAIARCfzcDWAwJCwsgBEIANwNYDAcLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIUIAQoAhRFBEAgBEJ/NwNYDAcLIAQoAkAoAoQBIAQoAhQpAwAgBCgCFCgCCCAEKAJAEGpBAEgEQCAEQn83A1gMBwsgBEIANwNYDAYLIAQpA0hCOFQEQCAEQn83A1gMBgsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsEQCAEKAJAAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgALAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgQLEBQgBEJ/NwNYDAYLIAQoAlAiACAEKAJAIgEpACA3AAAgACABKQBQNwAwIAAgASkASDcAKCAAIAEpAEA3ACAgACABKQA4NwAYIAAgASkAMDcAECAAIAEpACg3AAggBEI4NwNYDAULIAQgBCgCQCkDEDcDWAwECyAEIAQoAkApA3g3A1gMAwsgBCAEKAJAKAKEARCjATcDCCAEKQMIQgBTBEAgBCgCQEEeQbSbASgCABAUIARCfzcDWAwDCyAEIAQpAwg3A1gMAgsgBCgCQCgChAEiACgCTEEAThogACAAKAIAQU9xNgIAIAQCfyAEKAJQIQEgBCkDSKciACAAAn8gBCgCQCgChAEiAygCTEF/TARAIAEgACADEHEMAQsgASAAIAMQcQsiAUYNABogAQs2AgQCQCAEKQNIIAQoAgStUQRAAn8gBCgCQCgChAEiACgCTEF/TARAIAAoAgAMAQsgACgCAAtBBXZBAXFFDQELIAQoAkBBBkG0mwEoAgAQFCAEQn83A1gMAgsgBCAEKAIErTcDWAwBCyAEKAJAQRxBABAUIARCfzcDWAsgBCkDWCECIARB4ABqJAAgAgsJACAAKAI8EAUL5AEBBH8jAEEgayIDJAAgAyABNgIQIAMgAiAAKAIwIgRBAEdrNgIUIAAoAiwhBSADIAQ2AhwgAyAFNgIYQX8hBAJAAkAgACgCPCADQRBqQQIgA0EMahAGIgUEf0G0mwEgBTYCAEF/BUEAC0UEQCADKAIMIgRBAEoNAQsgACAAKAIAIARBMHFBEHNyNgIADAELIAQgAygCFCIGTQ0AIAAgACgCLCIFNgIEIAAgBSAEIAZrajYCCCAAKAIwBEAgACAFQQFqNgIEIAEgAmpBAWsgBS0AADoAAAsgAiEECyADQSBqJAAgBAv0AgEHfyMAQSBrIgMkACADIAAoAhwiBTYCECAAKAIUIQQgAyACNgIcIAMgATYCGCADIAQgBWsiATYCFCABIAJqIQVBAiEHIANBEGohAQJ/AkACQCAAKAI8IANBEGpBAiADQQxqEAMiBAR/QbSbASAENgIAQX8FQQALRQRAA0AgBSADKAIMIgRGDQIgBEF/TA0DIAEgBCABKAIEIghLIgZBA3RqIgkgBCAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAFIARrIQUgACgCPCABQQhqIAEgBhsiASAHIAZrIgcgA0EMahADIgQEf0G0mwEgBDYCAEF/BUEAC0UNAAsLIAVBf0cNAQsgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCECACDAELIABBADYCHCAAQgA3AxAgACAAKAIAQSByNgIAQQAgB0ECRg0AGiACIAEoAgRrCyEAIANBIGokACAAC1IBAX8jAEEQayIDJAAgACgCPCABpyABQiCIpyACQf8BcSADQQhqEA0iAAR/QbSbASAANgIAQX8FQQALIQAgAykDCCEBIANBEGokAEJ/IAEgABsL1QQBBX8jAEGwAWsiASQAIAEgADYCqAEgASgCqAEQOAJAAkAgASgCqAEoAgBBAE4EQCABKAKoASgCAEGAFCgCAEgNAQsgASABKAKoASgCADYCECABQSBqQY8SIAFBEGoQbyABQQA2AqQBIAEgAUEgajYCoAEMAQsgASABKAKoASgCAEECdEGAE2ooAgA2AqQBAkACQAJAAkAgASgCqAEoAgBBAnRBkBRqKAIAQQFrDgIAAQILIAEoAqgBKAIEIQJBkJkBKAIAIQRBACEAAkACQANAIAIgAEGgiAFqLQAARwRAQdcAIQMgAEEBaiIAQdcARw0BDAILCyAAIgMNAEGAiQEhAgwBC0GAiQEhAANAIAAtAAAhBSAAQQFqIgIhACAFDQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){Ir(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var N=ee.toString();throw P("failed to compile wasm module: "+N),(N.includes("imported Memory")||N.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function Qp(){var f={a:da};function E(L,N){var ee=L.exports;t.asm=ee,A=t.asm.u,Nr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var br,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Tn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Tn.GMTString||(Tn.GMTString=ye("GMT")),de[E+40>>2]=Tn.GMTString,E}function ae(f,E){return Tn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Nl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){Ir("randomDevice")}}var Nn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:b.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Nn.resolve(f).substr(1),E=Nn.resolve(E).substr(1);function w(it){for(var at=0;at=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),N=Math.min(k.length,L.length),ee=N,Ie=0;Ie0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` `)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(xe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(xe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(x(xe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(x(xe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f=E)){var k=1024*1024;E=Math.max(E,w*(w>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=Q.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,Q.isDir(f.mode)?E.size=4096:Q.isFile(f.mode)?E.size=f.usedBytes:Q.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw Q.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(Q.isDir(f.mode)){var k;try{k=Q.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new Q.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=Q.lookupNode(f,E);for(var k in w.contents)throw new Q.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!Q.isLink(f.mode))throw new Q.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie0||k+w>2)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new Q.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Ne.lstatSync(E)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Ne.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Ne.utimesSync(w,k,k)}E.size!==void 0&&Ne.truncateSync(w,E.size)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),T=At.realPath(L);try{Q.isDir(L.mode)?Ne.mkdirSync(T,L.mode):Ne.writeFileSync(T,"",{mode:L.mode})}catch(ee){throw ee.code?new Q.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Ne.renameSync(k,L)}catch(T){throw T.code?new Q.ErrnoError(At.convertNodeCode(T)):T}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.unlinkSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.rmdirSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Ne.readdirSync(E)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Ne.symlinkSync(w,k)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Ne.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{Q.isFile(f.node.mode)&&(f.nfd=Ne.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{Q.isFile(f.node.mode)&&f.nfd&&Ne.closeSync(f.nfd)}catch(E){throw E.code?new Q.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},write:function(f,E,w,k,L){try{return Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&Q.isFile(f.node.mode))try{var L=Ne.fstatSync(f.nfd);k+=L.size}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}if(k<0)throw new Q.ErrnoError(28);return k},mmap:function(f,E,w,k,L,T){if(E!==0)throw new Q.ErrnoError(28);if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);if(L&2)return 0;var T=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},An={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){Q.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)Q.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){Q.isDir(f)?Ne.mkdirSync(f,E):Ne.writeFileSync(f,"",{mode:E})},mkdir:function(){Ne.mkdirSync.apply(void 0,arguments)},symlink:function(){Ne.symlinkSync.apply(void 0,arguments)},rename:function(){Ne.renameSync.apply(void 0,arguments)},rmdir:function(){Ne.rmdirSync.apply(void 0,arguments)},readdir:function(){Ne.readdirSync.apply(void 0,arguments)},unlink:function(){Ne.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ne.readlinkSync.apply(void 0,arguments)},stat:function(){return Ne.statSync.apply(void 0,arguments)},lstat:function(){return Ne.lstatSync.apply(void 0,arguments)},chmod:function(){Ne.chmodSync.apply(void 0,arguments)},fchmod:function(){Ne.fchmodSync.apply(void 0,arguments)},chown:function(){Ne.chownSync.apply(void 0,arguments)},fchown:function(){Ne.fchownSync.apply(void 0,arguments)},truncate:function(){Ne.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);Ne.ftruncateSync.apply(void 0,arguments)},utime:function(){Ne.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Ne.openSync(f,At.flagsForNode(E),w),T=k!=null?k:Q.nextfd(L),ee={fd:T,nfd:L,position:0,path:f,flags:E,seekable:!0};return Q.streams[T]=ee,ee},close:function(f){f.stream_ops||Ne.closeSync(f.nfd),Q.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Ne.fstatSync(f.nfd).size;else if(w!==0)throw new Q.ErrnoError(wo.EINVAL);if(k<0)throw new Q.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&Q.llseek(f,0,+"2");var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},allocate:function(){throw new Q.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,T){if(f.stream_ops)return Us.mmap(f,E,w,k,L,T);if(E!==0)throw new Q.ErrnoError(28);var ee=ss(w);return Q.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||Q.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new Q.ErrnoError(wo.ENOTTY)}},Q={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Tn.resolve(Q.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new Q.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),T=Q.root,ee="/",Ie=0;Ie40)throw new Q.ErrnoError(32)}}return{path:ee,node:T}},getPath:function(f){for(var E;;){if(Q.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k>>0)%Q.nameTable.length},hashAddNode:function(f){var E=Q.hashName(f.parent.id,f.name);f.name_next=Q.nameTable[E],Q.nameTable[E]=f},hashRemoveNode:function(f){var E=Q.hashName(f.parent.id,f.name);if(Q.nameTable[E]===f)Q.nameTable[E]=f.name_next;else for(var w=Q.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=Q.mayLookup(f);if(w)throw new Q.ErrnoError(w,f);for(var k=Q.hashName(f.id,E),L=Q.nameTable[k];L;L=L.name_next){var T=L.name;if(L.parent.id===f.id&&T===E)return L}return Q.lookup(f,E)},createNode:function(f,E,w,k){var L=new Q.FSNode(f,E,w,k);return Q.hashAddNode(L),L},destroyNode:function(f){Q.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=Q.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return Q.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=Q.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=Q.lookupNode(f,E);return 20}catch{}return Q.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=Q.lookupNode(f,E)}catch(T){return T.errno}var L=Q.nodePermissions(f,"wx");if(L)return L;if(w){if(!Q.isDir(k.mode))return 54;if(Q.isRoot(k)||Q.getPath(k)===Q.cwd())return 10}else if(Q.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?Q.isLink(f.mode)?32:Q.isDir(f.mode)&&(Q.flagsToPermissionString(E)!=="r"||E&512)?31:Q.nodePermissions(f,Q.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||Q.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!Q.streams[w])return w;throw new Q.ErrnoError(33)},getStream:function(f){return Q.streams[f]},createStream:function(f,E,w){Q.FSStream||(Q.FSStream=function(){},Q.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new Q.FSStream;for(var L in f)k[L]=f[L];f=k;var T=Q.nextfd(E,w);return f.fd=T,Q.streams[T]=f,f},closeStream:function(f){Q.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=Q.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new Q.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){Q.devices[f]={stream_ops:E}},getDevice:function(f){return Q.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),Q.syncFSRequests++,Q.syncFSRequests>1&&x("warning: "+Q.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=Q.getMounts(Q.root.mount),k=0;function L(ee){return Q.syncFSRequests--,E(ee)}function T(ee){if(ee)return T.errored?void 0:(T.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return T(null);ee.type.syncfs(ee,f,T)})},mount:function(f,E,w){var k=w==="/",L=!w,T;if(k&&Q.root)throw new Q.ErrnoError(10);if(!k&&!L){var ee=Q.lookupPath(w,{follow_mount:!1});if(w=ee.path,T=ee.node,Q.isMountpoint(T))throw new Q.ErrnoError(10);if(!Q.isDir(T.mode))throw new Q.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?Q.root=Oe:T&&(T.mounted=Ie,T.mount&&T.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=Q.lookupPath(f,{follow_mount:!1});if(!Q.isMountpoint(E.node))throw new Q.ErrnoError(28);var w=E.node,k=w.mounted,L=Q.getMounts(k);Object.keys(Q.nameTable).forEach(function(ee){for(var Ie=Q.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&Q.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var T=w.mount.mounts.indexOf(k);w.mount.mounts.splice(T,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=Q.lookupPath(f,{parent:!0}),L=k.node,T=yt.basename(f);if(!T||T==="."||T==="..")throw new Q.ErrnoError(28);var ee=Q.mayCreate(L,T);if(ee)throw new Q.ErrnoError(ee);if(!L.node_ops.mknod)throw new Q.ErrnoError(63);return L.node_ops.mknod(L,T,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,Q.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,Q.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L"u"&&(w=E,E=438),E|=8192,Q.mknod(f,E,w)},symlink:function(f,E){if(!Tn.resolve(f))throw new Q.ErrnoError(44);var w=Q.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new Q.ErrnoError(44);var L=yt.basename(E),T=Q.mayCreate(k,L);if(T)throw new Q.ErrnoError(T);if(!k.node_ops.symlink)throw new Q.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),T=yt.basename(E),ee,Ie,Oe;if(ee=Q.lookupPath(f,{parent:!0}),Ie=ee.node,ee=Q.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new Q.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new Q.ErrnoError(75);var it=Q.lookupNode(Ie,L),at=Tn.relative(f,k);if(at.charAt(0)!==".")throw new Q.ErrnoError(28);if(at=Tn.relative(E,w),at.charAt(0)!==".")throw new Q.ErrnoError(55);var Ue;try{Ue=Q.lookupNode(Oe,T)}catch{}if(it!==Ue){var Ve=Q.isDir(it.mode),nt=Q.mayDelete(Ie,L,Ve);if(nt)throw new Q.ErrnoError(nt);if(nt=Ue?Q.mayDelete(Oe,T,Ve):Q.mayCreate(Oe,T),nt)throw new Q.ErrnoError(nt);if(!Ie.node_ops.rename)throw new Q.ErrnoError(63);if(Q.isMountpoint(it)||Ue&&Q.isMountpoint(Ue))throw new Q.ErrnoError(10);if(Oe!==Ie&&(nt=Q.nodePermissions(Ie,"w"),nt))throw new Q.ErrnoError(nt);try{Q.trackingDelegate.willMovePath&&Q.trackingDelegate.willMovePath(f,E)}catch(wt){x("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}Q.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,T)}catch(wt){throw wt}finally{Q.hashAddNode(it)}try{Q.trackingDelegate.onMovePath&&Q.trackingDelegate.onMovePath(f,E)}catch(wt){x("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!0);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.rmdir)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){x("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){x("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=Q.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new Q.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!1);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.unlink)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){x("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){x("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=Q.lookupPath(f),w=E.node;if(!w)throw new Q.ErrnoError(44);if(!w.node_ops.readlink)throw new Q.ErrnoError(28);return Tn.resolve(Q.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=Q.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new Q.ErrnoError(44);if(!k.node_ops.getattr)throw new Q.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return Q.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=Q.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new Q.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){Q.chmod(f,E,!0)},fchmod:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);Q.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var T=Q.lookupPath(f,{follow:!k});L=T.node}else L=f;if(!L.node_ops.setattr)throw new Q.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){Q.chown(f,E,w,!0)},fchown:function(f,E,w){var k=Q.getStream(f);if(!k)throw new Q.ErrnoError(8);Q.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);var w;if(typeof f=="string"){var k=Q.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new Q.ErrnoError(63);if(Q.isDir(w.mode))throw new Q.ErrnoError(31);if(!Q.isFile(w.mode))throw new Q.ErrnoError(28);var L=Q.nodePermissions(w,"w");if(L)throw new Q.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);if((w.flags&2097155)===0)throw new Q.ErrnoError(28);Q.truncate(w.node,E)},utime:function(f,E,w){var k=Q.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new Q.ErrnoError(44);E=typeof E=="string"?Q.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var T;if(typeof f=="object")T=f;else{f=yt.normalize(f);try{var ee=Q.lookupPath(f,{follow:!(E&131072)});T=ee.node}catch{}}var Ie=!1;if(E&64)if(T){if(E&128)throw new Q.ErrnoError(20)}else T=Q.mknod(f,w,0),Ie=!0;if(!T)throw new Q.ErrnoError(44);if(Q.isChrdev(T.mode)&&(E&=-513),E&65536&&!Q.isDir(T.mode))throw new Q.ErrnoError(54);if(!Ie){var Oe=Q.mayOpen(T,E);if(Oe)throw new Q.ErrnoError(Oe)}E&512&&Q.truncate(T,0),E&=-131713;var it=Q.createStream({node:T,path:Q.getPath(T),flags:E,seekable:!0,position:0,stream_ops:T.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(Q.readFiles||(Q.readFiles={}),f in Q.readFiles||(Q.readFiles[f]=1,x("FS.trackingDelegate error on read file: "+f)));try{if(Q.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=Q.tracking.openFlags.READ),(E&2097155)!==0&&(at|=Q.tracking.openFlags.WRITE),Q.trackingDelegate.onOpenFile(f,at)}}catch(Ue){x("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(Q.isClosed(f))throw new Q.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{Q.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new Q.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new Q.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===1)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.read)throw new Q.ErrnoError(28);var T=typeof L<"u";if(!T)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L,T){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.write)throw new Q.ErrnoError(28);f.seekable&&f.flags&1024&&Q.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,T);ee||(f.position+=Ie);try{f.path&&Q.trackingDelegate.onWriteToFile&&Q.trackingDelegate.onWriteToFile(f.path)}catch(Oe){x("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(E<0||w<=0)throw new Q.ErrnoError(28);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(!Q.isFile(f.node.mode)&&!Q.isDir(f.node.mode))throw new Q.ErrnoError(43);if(!f.stream_ops.allocate)throw new Q.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,T){if((L&2)!==0&&(T&2)===0&&(f.flags&2097155)!==2)throw new Q.ErrnoError(2);if((f.flags&2097155)===1)throw new Q.ErrnoError(2);if(!f.stream_ops.mmap)throw new Q.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,T)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new Q.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=Q.open(f,E.flags),L=Q.stat(f),T=L.size,ee=new Uint8Array(T);return Q.read(k,ee,0,T,0),E.encoding==="utf8"?w=xe(ee,0):E.encoding==="binary"&&(w=ee),Q.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=Q.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),T=Re(E,L,0,L.length);Q.write(k,L,0,T,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))Q.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");Q.close(k)},cwd:function(){return Q.currentPath},chdir:function(f){var E=Q.lookupPath(f,{follow:!0});if(E.node===null)throw new Q.ErrnoError(44);if(!Q.isDir(E.node.mode))throw new Q.ErrnoError(54);var w=Q.nodePermissions(E.node,"x");if(w)throw new Q.ErrnoError(w);Q.currentPath=E.path},createDefaultDirectories:function(){Q.mkdir("/tmp"),Q.mkdir("/home"),Q.mkdir("/home/web_user")},createDefaultDevices:function(){Q.mkdir("/dev"),Q.registerDevice(Q.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,T){return L}}),Q.mkdev("/dev/null",Q.makedev(1,3)),ns.register(Q.makedev(5,0),ns.default_tty_ops),ns.register(Q.makedev(6,0),ns.default_tty1_ops),Q.mkdev("/dev/tty",Q.makedev(5,0)),Q.mkdev("/dev/tty1",Q.makedev(6,0));var f=Tl();Q.createDevice("/dev","random",f),Q.createDevice("/dev","urandom",f),Q.mkdir("/dev/shm"),Q.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Q.mkdir("/proc");var f=Q.mkdir("/proc/self");Q.mkdir("/proc/self/fd"),Q.mount({mount:function(){var E=Q.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,T=Q.getStream(L);if(!T)throw new Q.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return T.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?Q.createDevice("/dev","stdin",t.stdin):Q.symlink("/dev/tty","/dev/stdin"),t.stdout?Q.createDevice("/dev","stdout",null,t.stdout):Q.symlink("/dev/tty","/dev/stdout"),t.stderr?Q.createDevice("/dev","stderr",null,t.stderr):Q.symlink("/dev/tty1","/dev/stderr");var f=Q.open("/dev/stdin",0),E=Q.open("/dev/stdout",1),w=Q.open("/dev/stderr",1)},ensureErrnoError:function(){Q.ErrnoError||(Q.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},Q.ErrnoError.prototype=new Error,Q.ErrnoError.prototype.constructor=Q.ErrnoError,[44].forEach(function(f){Q.genericErrors[f]=new Q.ErrnoError(f),Q.genericErrors[f].stack=""}))},staticInit:function(){Q.ensureErrnoError(),Q.nameTable=new Array(4096),Q.mount(ut,{},"/"),Q.createDefaultDirectories(),Q.createDefaultDevices(),Q.createSpecialDirectories(),Q.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){Q.init.initialized=!0,Q.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,Q.createStandardStreams()},quit:function(){Q.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;Ethis.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},T.prototype.setDataGetter=function(Ve){this.getter=Ve},T.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",cn=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var Sr=new XMLHttpRequest;if(Sr.open("GET",w,!1),nt!==ii&&Sr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(Sr.responseType="arraybuffer"),Sr.overrideMimeType&&Sr.overrideMimeType("text/plain; charset=x-user-defined"),Sr.send(null),!(Sr.status>=200&&Sr.status<300||Sr.status===304))throw new Error("Couldn't load "+w+". Status: "+Sr.status);return Sr.response!==void 0?new Uint8Array(Sr.response||[]):wA(Sr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,Sr=(On+1)*ii-1;if(Sr=Math.min(Sr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,Sr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(cn||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new T;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=Q.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return Q.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,cn){Q.forceLoadFile(Oe);var ii=Ve.node.contents;if(cn>=ii.length)return 0;var Be=Math.min(ii.length-cn,Ii);if(ii.slice)for(var yi=0;yi>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Qr=k.size,+Math.abs(Qr)>=1?Qr>0?(Math.min(+Math.floor(Qr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Qr-+(~~Qr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Qr=k.ino,+Math.abs(Qr)>=1?Qr>0?(Math.min(+Math.floor(Qr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Qr-+(~~Qr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var T=G.slice(f,f+w);Q.msync(E,T,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),Q.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Q.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=Q.readlink(f),L=Math.min(w,Ae(k)),T=ie[E+L];return se(k,E,w+1),ie[E+L]=T,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=Q.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&Q.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=Q.getStream(w);return k&&Q.close(k),Q.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,T=0;T>2],Ie=de[E+(T*8+4)>>2],Oe=Q.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe>2],Ie=de[E+(T*8+4)>>2],Oe=Q.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Nt.varargs+=4;var f=de[Nt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=Q.getStream(f);if(!E)throw new Q.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Nt.getStr(f),Q.chmod(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function Qp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 0:{var L=Nt.get();if(L<0)return-28;var T;return T=Q.open(k.path,k.flags,0,L),T.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Nt.get();return k.flags|=L,0}case 12:{var L=Nt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof Q>"u"||!(Ie instanceof Q.ErrnoError))&&Ir(Ie),-Ie.errno}}function Sp(f,E){try{var w=Nt.getStreamFromFD(f);return Nt.doStat(Q.stat,w.path,E)}catch(k){return(typeof Q>"u"||!(k instanceof Q.ErrnoError))&&Ir(k),-k.errno}}function vp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Nt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Nt.get();return Q.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:Ir("bad ioctl syscall "+E)}}catch(T){return(typeof Q>"u"||!(T instanceof Q.ErrnoError))&&Ir(T),-T.errno}}function Pp(f,E,w){Nt.varargs=w;try{var k=Nt.getStr(f),L=w?Nt.get():0,T=Q.open(k,E,L);return T.fd}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&Ir(ee),-ee.errno}}function xp(f,E){try{return f=Nt.getStr(f),E=Nt.getStr(E),Q.rename(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),-w.errno}}function j(f){try{return f=Nt.getStr(f),Q.rmdir(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&Ir(E),-E.errno}}function Et(f,E){try{return f=Nt.getStr(f),Nt.doStat(Q.stat,f,E)}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),-w.errno}}function yA(f){try{return f=Nt.getStr(f),Q.unlink(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&Ir(E),-E.errno}}function Wi(f,E,w){G.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Tr(A.buffer),1}catch{}}function ze(f){var E=G.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var T=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(T);if(ee)return!0}return!1}function fa(f){try{var E=Nt.getStreamFromFD(f);return Q.close(E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&Ir(w),w.errno}}function dg(f,E){try{var w=Nt.getStreamFromFD(f),k=w.tty?2:Q.isDir(w.mode)?3:Q.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof Q>"u"||!(L instanceof Q.ErrnoError))&&Ir(L),L.errno}}function OE(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doReadv(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&Ir(ee),ee.errno}}function kp(f,E,w,k,L){try{var T=Nt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(Q.llseek(T,Ie,k),Ri=[T.position>>>0,(Qr=T.position,+Math.abs(Qr)>=1?Qr>0?(Math.min(+Math.floor(Qr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Qr-+(~~Qr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],T.getdents&&Ie===0&&k===0&&(T.getdents=null),0)}catch(it){return(typeof Q>"u"||!(it instanceof Q.ErrnoError))&&Ir(it),it.errno}}function ME(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doWritev(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&Ir(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),T=Math.max(k,L);de[eS()>>2]=T*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=Q.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,ln=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&ln)===ln},set:function(f){f?this.mode|=ln:this.mode&=~ln}},isFolder:{get:function(){return Q.isDir(this.mode)}},isDevice:{get:function(){return Q.isChrdev(this.mode)}}}),Q.FSNode=Ks,Q.staticInit(),g){var Ne=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new Q.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},Q);for(var Ul in An)Q[Ul]=Kl(An[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),T=Re(f,L,0,L.length);return E&&(L.length=T),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,T,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,T=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(T));while(at0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function QDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Nc(),vDe=D9(),PDe=Ss(),xDe=fC(),kDe=1/0,N9=F9?F9.prototype:void 0,T9=N9?N9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(PDe(r))return vDe(r,L9)+"";if(xDe(r))return T9?T9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var NDe=HR();function TDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:NDe(r,e,t)}H9.exports=TDe});var jR=I((Aot,G9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",GDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function YDe(r){return GDe.test(r)}G9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",GR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+GR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+GR+"?",GR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var PB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,xB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,x=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],N=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&N==e)return S;if(O==t||O==r||O==e)return N==d&&ne.every(function(De){return De==i})?F:x;if(N==t||N==r||N==e)return x;if(O==o&&(N==o||N==a||N==c||N==u))return S;if((O==c||O==a)&&(N==a||N==l))return S;if((O==u||O==l)&&N==l)return S;if(N==i||N==m)return S;if(N==s)return S;if(O==h)return S;var xe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[xe])!=-1&&te.slice(xe+1,-1).every(function(De){return De==i})&&N==d||O==m&&[y,B].indexOf(N)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&N==n?S:x}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,QV)=>{"use strict";var bV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);QV.exports=r=>r?Object.keys(r).map(e=>[bV.has(e)?bV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,NV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},NRe=J("events"),vV=J("stream"),PV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),TC=Symbol("emittedError"),OB=Symbol("closed"),xV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",TRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};NV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new PV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[TC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new PV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[xV](e||null,this.buffer[0]);return this[Va](),t}[xV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[TC]&&(this[Za]?OC(()=>t.call(this,this[TC])):t.call(this,this[TC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[TC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[TRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof NRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,TV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};TV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Gc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Gc](rl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Gc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Gc](e)):super[Gc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},GB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends GB{constructor(e){super(e,"BrotliCompress")}},hF=class extends GB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var GRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=GRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=GV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=GV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,GV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),bF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=bF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f=E)){var k=1024*1024;E=Math.max(E,w*(w>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var N=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&N.subarray)E.set(N.subarray(L,L+ee),w);else for(var Ie=0;Ie0||k+w>2)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new b.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Te.lstatSync(E)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Te.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Te.utimesSync(w,k,k)}E.size!==void 0&&Te.truncateSync(w,E.size)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),N=At.realPath(L);try{b.isDir(L.mode)?Te.mkdirSync(N,L.mode):Te.writeFileSync(N,"",{mode:L.mode})}catch(ee){throw ee.code?new b.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Te.renameSync(k,L)}catch(N){throw N.code?new b.ErrnoError(At.convertNodeCode(N)):N}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.unlinkSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.rmdirSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Te.readdirSync(E)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Te.symlinkSync(w,k)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Te.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{b.isFile(f.node.mode)&&(f.nfd=Te.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{b.isFile(f.node.mode)&&f.nfd&&Te.closeSync(f.nfd)}catch(E){throw E.code?new b.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},write:function(f,E,w,k,L){try{return Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&b.isFile(f.node.mode))try{var L=Te.fstatSync(f.nfd);k+=L.size}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}if(k<0)throw new b.ErrnoError(28);return k},mmap:function(f,E,w,k,L,N){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var N=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},An={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){b.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)b.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){b.isDir(f)?Te.mkdirSync(f,E):Te.writeFileSync(f,"",{mode:E})},mkdir:function(){Te.mkdirSync.apply(void 0,arguments)},symlink:function(){Te.symlinkSync.apply(void 0,arguments)},rename:function(){Te.renameSync.apply(void 0,arguments)},rmdir:function(){Te.rmdirSync.apply(void 0,arguments)},readdir:function(){Te.readdirSync.apply(void 0,arguments)},unlink:function(){Te.unlinkSync.apply(void 0,arguments)},readlink:function(){return Te.readlinkSync.apply(void 0,arguments)},stat:function(){return Te.statSync.apply(void 0,arguments)},lstat:function(){return Te.lstatSync.apply(void 0,arguments)},chmod:function(){Te.chmodSync.apply(void 0,arguments)},fchmod:function(){Te.fchmodSync.apply(void 0,arguments)},chown:function(){Te.chownSync.apply(void 0,arguments)},fchown:function(){Te.fchownSync.apply(void 0,arguments)},truncate:function(){Te.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new b.ErrnoError(28);Te.ftruncateSync.apply(void 0,arguments)},utime:function(){Te.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Te.openSync(f,At.flagsForNode(E),w),N=k!=null?k:b.nextfd(L),ee={fd:N,nfd:L,position:0,path:f,flags:E,seekable:!0};return b.streams[N]=ee,ee},close:function(f){f.stream_ops||Te.closeSync(f.nfd),b.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Te.fstatSync(f.nfd).size;else if(w!==0)throw new b.ErrnoError(wo.EINVAL);if(k<0)throw new b.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&b.llseek(f,0,+"2");var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},allocate:function(){throw new b.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,N){if(f.stream_ops)return Us.mmap(f,E,w,k,L,N);if(E!==0)throw new b.ErrnoError(28);var ee=ss(w);return b.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||b.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new b.ErrnoError(wo.ENOTTY)}},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Nn.resolve(b.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new b.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),N=b.root,ee="/",Ie=0;Ie40)throw new b.ErrnoError(32)}}return{path:ee,node:N}},getPath:function(f){for(var E;;){if(b.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k>>0)%b.nameTable.length},hashAddNode:function(f){var E=b.hashName(f.parent.id,f.name);f.name_next=b.nameTable[E],b.nameTable[E]=f},hashRemoveNode:function(f){var E=b.hashName(f.parent.id,f.name);if(b.nameTable[E]===f)b.nameTable[E]=f.name_next;else for(var w=b.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=b.mayLookup(f);if(w)throw new b.ErrnoError(w,f);for(var k=b.hashName(f.id,E),L=b.nameTable[k];L;L=L.name_next){var N=L.name;if(L.parent.id===f.id&&N===E)return L}return b.lookup(f,E)},createNode:function(f,E,w,k){var L=new b.FSNode(f,E,w,k);return b.hashAddNode(L),L},destroyNode:function(f){b.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=b.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return b.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=b.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=b.lookupNode(f,E);return 20}catch{}return b.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=b.lookupNode(f,E)}catch(N){return N.errno}var L=b.nodePermissions(f,"wx");if(L)return L;if(w){if(!b.isDir(k.mode))return 54;if(b.isRoot(k)||b.getPath(k)===b.cwd())return 10}else if(b.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?b.isLink(f.mode)?32:b.isDir(f.mode)&&(b.flagsToPermissionString(E)!=="r"||E&512)?31:b.nodePermissions(f,b.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||b.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!b.streams[w])return w;throw new b.ErrnoError(33)},getStream:function(f){return b.streams[f]},createStream:function(f,E,w){b.FSStream||(b.FSStream=function(){},b.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new b.FSStream;for(var L in f)k[L]=f[L];f=k;var N=b.nextfd(E,w);return f.fd=N,b.streams[N]=f,f},closeStream:function(f){b.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=b.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new b.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){b.devices[f]={stream_ops:E}},getDevice:function(f){return b.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),b.syncFSRequests++,b.syncFSRequests>1&&P("warning: "+b.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=b.getMounts(b.root.mount),k=0;function L(ee){return b.syncFSRequests--,E(ee)}function N(ee){if(ee)return N.errored?void 0:(N.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return N(null);ee.type.syncfs(ee,f,N)})},mount:function(f,E,w){var k=w==="/",L=!w,N;if(k&&b.root)throw new b.ErrnoError(10);if(!k&&!L){var ee=b.lookupPath(w,{follow_mount:!1});if(w=ee.path,N=ee.node,b.isMountpoint(N))throw new b.ErrnoError(10);if(!b.isDir(N.mode))throw new b.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?b.root=Oe:N&&(N.mounted=Ie,N.mount&&N.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=b.lookupPath(f,{follow_mount:!1});if(!b.isMountpoint(E.node))throw new b.ErrnoError(28);var w=E.node,k=w.mounted,L=b.getMounts(k);Object.keys(b.nameTable).forEach(function(ee){for(var Ie=b.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&b.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var N=w.mount.mounts.indexOf(k);w.mount.mounts.splice(N,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=b.lookupPath(f,{parent:!0}),L=k.node,N=yt.basename(f);if(!N||N==="."||N==="..")throw new b.ErrnoError(28);var ee=b.mayCreate(L,N);if(ee)throw new b.ErrnoError(ee);if(!L.node_ops.mknod)throw new b.ErrnoError(63);return L.node_ops.mknod(L,N,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,b.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,b.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L"u"&&(w=E,E=438),E|=8192,b.mknod(f,E,w)},symlink:function(f,E){if(!Nn.resolve(f))throw new b.ErrnoError(44);var w=b.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new b.ErrnoError(44);var L=yt.basename(E),N=b.mayCreate(k,L);if(N)throw new b.ErrnoError(N);if(!k.node_ops.symlink)throw new b.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),N=yt.basename(E),ee,Ie,Oe;if(ee=b.lookupPath(f,{parent:!0}),Ie=ee.node,ee=b.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new b.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new b.ErrnoError(75);var it=b.lookupNode(Ie,L),at=Nn.relative(f,k);if(at.charAt(0)!==".")throw new b.ErrnoError(28);if(at=Nn.relative(E,w),at.charAt(0)!==".")throw new b.ErrnoError(55);var Ue;try{Ue=b.lookupNode(Oe,N)}catch{}if(it!==Ue){var Ve=b.isDir(it.mode),nt=b.mayDelete(Ie,L,Ve);if(nt)throw new b.ErrnoError(nt);if(nt=Ue?b.mayDelete(Oe,N,Ve):b.mayCreate(Oe,N),nt)throw new b.ErrnoError(nt);if(!Ie.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(it)||Ue&&b.isMountpoint(Ue))throw new b.ErrnoError(10);if(Oe!==Ie&&(nt=b.nodePermissions(Ie,"w"),nt))throw new b.ErrnoError(nt);try{b.trackingDelegate.willMovePath&&b.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}b.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,N)}catch(wt){throw wt}finally{b.hashAddNode(it)}try{b.trackingDelegate.onMovePath&&b.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!0);if(N)throw new b.ErrnoError(N);if(!w.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=b.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new b.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!1);if(N)throw new b.ErrnoError(N);if(!w.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=b.lookupPath(f),w=E.node;if(!w)throw new b.ErrnoError(44);if(!w.node_ops.readlink)throw new b.ErrnoError(28);return Nn.resolve(b.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=b.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new b.ErrnoError(44);if(!k.node_ops.getattr)throw new b.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return b.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=b.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new b.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){b.chmod(f,E,!0)},fchmod:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);b.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var N=b.lookupPath(f,{follow:!k});L=N.node}else L=f;if(!L.node_ops.setattr)throw new b.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){b.chown(f,E,w,!0)},fchown:function(f,E,w){var k=b.getStream(f);if(!k)throw new b.ErrnoError(8);b.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new b.ErrnoError(28);var w;if(typeof f=="string"){var k=b.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(w.mode))throw new b.ErrnoError(31);if(!b.isFile(w.mode))throw new b.ErrnoError(28);var L=b.nodePermissions(w,"w");if(L)throw new b.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);if((w.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(w.node,E)},utime:function(f,E,w){var k=b.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new b.ErrnoError(44);E=typeof E=="string"?b.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var N;if(typeof f=="object")N=f;else{f=yt.normalize(f);try{var ee=b.lookupPath(f,{follow:!(E&131072)});N=ee.node}catch{}}var Ie=!1;if(E&64)if(N){if(E&128)throw new b.ErrnoError(20)}else N=b.mknod(f,w,0),Ie=!0;if(!N)throw new b.ErrnoError(44);if(b.isChrdev(N.mode)&&(E&=-513),E&65536&&!b.isDir(N.mode))throw new b.ErrnoError(54);if(!Ie){var Oe=b.mayOpen(N,E);if(Oe)throw new b.ErrnoError(Oe)}E&512&&b.truncate(N,0),E&=-131713;var it=b.createStream({node:N,path:b.getPath(N),flags:E,seekable:!0,position:0,stream_ops:N.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(b.readFiles||(b.readFiles={}),f in b.readFiles||(b.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(b.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=b.tracking.openFlags.READ),(E&2097155)!==0&&(at|=b.tracking.openFlags.WRITE),b.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(b.isClosed(f))throw new b.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{b.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new b.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new b.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.read)throw new b.ErrnoError(28);var N=typeof L<"u";if(!N)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L,N){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.write)throw new b.ErrnoError(28);f.seekable&&f.flags&1024&&b.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,N);ee||(f.position+=Ie);try{f.path&&b.trackingDelegate.onWriteToFile&&b.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(E<0||w<=0)throw new b.ErrnoError(28);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(f.node.mode)&&!b.isDir(f.node.mode))throw new b.ErrnoError(43);if(!f.stream_ops.allocate)throw new b.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,N){if((L&2)!==0&&(N&2)===0&&(f.flags&2097155)!==2)throw new b.ErrnoError(2);if((f.flags&2097155)===1)throw new b.ErrnoError(2);if(!f.stream_ops.mmap)throw new b.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,N)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new b.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=b.open(f,E.flags),L=b.stat(f),N=L.size,ee=new Uint8Array(N);return b.read(k,ee,0,N,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),b.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=b.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),N=Re(E,L,0,L.length);b.write(k,L,0,N,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))b.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");b.close(k)},cwd:function(){return b.currentPath},chdir:function(f){var E=b.lookupPath(f,{follow:!0});if(E.node===null)throw new b.ErrnoError(44);if(!b.isDir(E.node.mode))throw new b.ErrnoError(54);var w=b.nodePermissions(E.node,"x");if(w)throw new b.ErrnoError(w);b.currentPath=E.path},createDefaultDirectories:function(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:function(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,N){return L}}),b.mkdev("/dev/null",b.makedev(1,3)),ns.register(b.makedev(5,0),ns.default_tty_ops),ns.register(b.makedev(6,0),ns.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var f=Nl();b.createDevice("/dev","random",f),b.createDevice("/dev","urandom",f),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){b.mkdir("/proc");var f=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:function(){var E=b.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,N=b.getStream(L);if(!N)throw new b.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return N.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?b.createDevice("/dev","stdin",t.stdin):b.symlink("/dev/tty","/dev/stdin"),t.stdout?b.createDevice("/dev","stdout",null,t.stdout):b.symlink("/dev/tty","/dev/stdout"),t.stderr?b.createDevice("/dev","stderr",null,t.stderr):b.symlink("/dev/tty1","/dev/stderr");var f=b.open("/dev/stdin",0),E=b.open("/dev/stdout",1),w=b.open("/dev/stderr",1)},ensureErrnoError:function(){b.ErrnoError||(b.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(function(f){b.genericErrors[f]=new b.ErrnoError(f),b.genericErrors[f].stack=""}))},staticInit:function(){b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(ut,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){b.init.initialized=!0,b.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,b.createStandardStreams()},quit:function(){b.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;Ethis.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},N.prototype.setDataGetter=function(Ve){this.getter=Ve},N.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",cn=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var Sr=new XMLHttpRequest;if(Sr.open("GET",w,!1),nt!==ii&&Sr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(Sr.responseType="arraybuffer"),Sr.overrideMimeType&&Sr.overrideMimeType("text/plain; charset=x-user-defined"),Sr.send(null),!(Sr.status>=200&&Sr.status<300||Sr.status===304))throw new Error("Couldn't load "+w+". Status: "+Sr.status);return Sr.response!==void 0?new Uint8Array(Sr.response||[]):wA(Sr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,Sr=(On+1)*ii-1;if(Sr=Math.min(Sr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,Sr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(cn||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new N;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=b.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return b.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,cn){b.forceLoadFile(Oe);var ii=Ve.node.contents;if(cn>=ii.length)return 0;var Be=Math.min(ii.length-cn,Ii);if(ii.slice)for(var yi=0;yi>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(br=k.size,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(br=k.ino,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var N=Y.slice(f,f+w);b.msync(E,N,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),b.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return b.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=b.readlink(f),L=Math.min(w,Ae(k)),N=ie[E+L];return se(k,E,w+1),ie[E+L]=N,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=b.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&b.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=b.getStream(w);return k&&b.close(k),b.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,N=0;N>2],Ie=de[E+(N*8+4)>>2],Oe=b.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe>2],Ie=de[E+(N*8+4)>>2],Oe=b.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Tt.varargs+=4;var f=de[Tt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=b.getStream(f);if(!E)throw new b.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Tt.getStr(f),b.chmod(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function bp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 0:{var L=Tt.get();if(L<0)return-28;var N;return N=b.open(k.path,k.flags,0,L),N.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Tt.get();return k.flags|=L,0}case 12:{var L=Tt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof b>"u"||!(Ie instanceof b.ErrnoError))&&Ir(Ie),-Ie.errno}}function Sp(f,E){try{var w=Tt.getStreamFromFD(f);return Tt.doStat(b.stat,w.path,E)}catch(k){return(typeof b>"u"||!(k instanceof b.ErrnoError))&&Ir(k),-k.errno}}function vp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Tt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Tt.get();return b.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:Ir("bad ioctl syscall "+E)}}catch(N){return(typeof b>"u"||!(N instanceof b.ErrnoError))&&Ir(N),-N.errno}}function xp(f,E,w){Tt.varargs=w;try{var k=Tt.getStr(f),L=w?Tt.get():0,N=b.open(k,E,L);return N.fd}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),-ee.errno}}function Pp(f,E){try{return f=Tt.getStr(f),E=Tt.getStr(E),b.rename(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function j(f){try{return f=Tt.getStr(f),b.rmdir(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&Ir(E),-E.errno}}function Et(f,E){try{return f=Tt.getStr(f),Tt.doStat(b.stat,f,E)}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function yA(f){try{return f=Tt.getStr(f),b.unlink(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&Ir(E),-E.errno}}function Wi(f,E,w){Y.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ge.byteLength+65535>>>16),Nr(A.buffer),1}catch{}}function ze(f){var E=Y.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var N=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(N);if(ee)return!0}return!1}function fa(f){try{var E=Tt.getStreamFromFD(f);return b.close(E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),w.errno}}function dg(f,E){try{var w=Tt.getStreamFromFD(f),k=w.tty?2:b.isDir(w.mode)?3:b.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof b>"u"||!(L instanceof b.ErrnoError))&&Ir(L),L.errno}}function OE(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doReadv(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),ee.errno}}function kp(f,E,w,k,L){try{var N=Tt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(b.llseek(N,Ie,k),Ri=[N.position>>>0,(br=N.position,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],N.getdents&&Ie===0&&k===0&&(N.getdents=null),0)}catch(it){return(typeof b>"u"||!(it instanceof b.ErrnoError))&&Ir(it),it.errno}}function ME(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doWritev(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),N=Math.max(k,L);de[eS()>>2]=N*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=b.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,ln=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&ln)===ln},set:function(f){f?this.mode|=ln:this.mode&=~ln}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ks,b.staticInit(),g){var Te=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new b.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},b);for(var Ul in An)b[Ul]=Kl(An[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),N=Re(f,L,0,L.length);return E&&(L.length=N),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,N,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,N=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(N));while(at0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function bDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Tc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,T9=F9?F9.prototype:void 0,N9=T9?T9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return N9?N9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var TDe=HR();function NDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:TDe(r,e,t)}H9.exports=NDe});var jR=I((Aot,Y9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",YDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function GDe(r){return YDe.test(r)}Y9.exports=GDe});var q9=I((lot,G9)=>{function qDe(r){return r.split("")}G9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",YR="["+VDe+"]",GR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+YR+"|"+GR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+YR+"?",YR,z9,V9,ZDe].join("|")+")",iRe=RegExp(GR+"(?="+GR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],T=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&T==e)return S;if(O==t||O==r||O==e)return T==d&&ne.every(function(De){return De==i})?F:P;if(T==t||T==r||T==e)return P;if(O==o&&(T==o||T==a||T==c||T==u))return S;if((O==c||O==a)&&(T==a||T==l))return S;if((O==u||O==l)&&T==l)return S;if(T==i||T==m)return S;if(T==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&T==d||O==m&&[y,B].indexOf(T)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&T==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,bV)=>{"use strict";var QV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);bV.exports=r=>r?Object.keys(r).map(e=>[QV.has(e)?QV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,TV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},TRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),NC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),xn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",NRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};TV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[xn]=null:this[xn]=e&&e.encoding||null,this[xn]==="buffer"&&(this[xn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[xn]?new xV(this[xn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[NC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[xn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[xn]&&e!==this[xn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[xn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[xn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[xn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[xn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[NC]&&(this[Za]?OC(()=>t.call(this,this[NC])):t.call(this,this[NC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[NC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[xn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[NRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof TRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,NV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};NV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Yc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Yc](rl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Yc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Yc](e)):super[Yc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},YB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends YB{constructor(e){super(e,"BrotliCompress")}},hF=class extends YB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var YRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=YRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var GB=I((Got,HV)=>{"use strict";var GRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends GRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,GV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=YV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=YV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,YV=r=>(255^r)+1&255;GV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),QF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Gc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Gc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Gc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Gc(e,t+265,32),this.gname=Gc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Gc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Gc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Gc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=QF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};KC.parse=(r,e,t)=>new KC(AFe(lFe(r),e),t);var AFe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,lFe=r=>r.replace(/\n$/,"").split(` -`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],QF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,QF[e]])),gFe=new Map(QF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>QF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),xF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),PF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[xF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[xF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[PF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[xF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[NF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[TF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,bFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),GF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),QFe=WB(),HF=th(),WF=QFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new bFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[GF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,xn=J("fs"),XF=xn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),b7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),Q7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[b7]=t.readSize||16*1024*1024,this[ol]=!1,this[Q7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[Q7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){xn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[b7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));xn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,xn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){xn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,xn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=xn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=xn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,xn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,xn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eN});var y0=I((Aat,R7)=>{"use strict";var PFe=WB(),xFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),NFe=dF(),tN=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rN=Symbol("nextEntry"),v7=Symbol("processEntry"),Ps=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),P7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),x7=Symbol("emittedEnd"),Xc=Symbol("emit"),kn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),TFe=r=>!0;R7.exports=PFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:TFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[Ps]=null,this[GC]=null,this[Vc]=!1,this[kn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new xFe(e,t,this[Ps],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[Ps],this[GC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[Ps]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rN]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[eA]=null,t=!1),t}[rN](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iN](e,t);return this[zc]||this[P7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[P7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Ps]=S7.parse(this[ll],this[Ps],!1);break;case"GlobalExtendedHeader":this[GC]=S7.parse(this[ll],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Ps]=this[Ps]||Object.create(null),this[Ps].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Ps]=this[Ps]||Object.create(null),this[Ps].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[kn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.lengththis[p0](s)),this[kn].on("error",s=>this.abort(s)),this[kn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[kn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[kn]?this[kn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sN](){if(this[Vc]&&!this[x7]&&!this[cl]&&!this[C0]){this[x7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nN](e);else if(!e&&!this[Cr])this[sN]();else{if(this[C0]=!0,this[Cr]){this[nN](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sN]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t{"use strict";var LFe=Xf(),N7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oN=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):T7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},UFe=r=>{let e=T7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new N7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},T7=r=>new N7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?GFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var GFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aN(t,e),t}});var AN=I((uat,V7)=>{"use strict";var WFe=Xf(),G7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new G7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new G7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AN();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eNe(i),$Fe(i,e,t)};var eNe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tNe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tNe});var rX=I((hat,tX)=>{var rNe=process.platform,{resolve:iNe,parse:nNe}=J("path"),sNe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iNe(r),rNe==="win32"){let e=/[*|"<>?:]/,{root:t}=nNe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sNe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uN=I((dat,lX)=>{var{dirname:AX}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oNe,findMadeSync:aNe}=aX(),{mkdirpManual:ANe,mkdirpManualSync:lNe}=uN(),cNe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oNe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ANe(r,e);throw n}))),uNe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aNe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lNe(r,e);throw n}};uX.exports={mkdirpNative:cNe,mkdirpNativeSync:uNe}});var dX=I((mat,pX)=>{var fX=J("fs"),gNe=process.version,gN=gNe.replace(/^v/,"").split("."),hX=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,fNe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hNe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fNe,useNativeSync:hNe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uN(),{useNative:pNe,useNativeSync:dNe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pNe(e)?CX(r,e):EX(r,e)),CNe=(r,e)=>(r=dh(r),e=ph(e),dNe(e)?mX(r,e):IX(r,e));Ch.sync=CNe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var xX=I((Iat,PX)=>{"use strict";var xs=J("fs"),_c=J("path"),mNe=xs.lchown?"lchown":"chown",ENe=xs.lchownSync?"lchownSync":"chownSync",bX=xs.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return xs[ENe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},INe=(r,e,t)=>{try{return xs.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yNe=bX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):xs.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=bX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;INe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wNe=process.version,QX=(r,e,t)=>xs.readdir(r,e,t),BNe=(r,e)=>xs.readdirSync(r,e);/^v4\./.test(wNe)&&(QX=(r,e,t)=>xs.readdir(r,t));var b0=(r,e,t,i)=>{xs[mNe](r,e,t,yNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return xs.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hN(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);b0(o,t,i,n)});else{let s=_c.resolve(r,e.name);b0(s,t,i,n)}},hN=(r,e,t,i)=>{QX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return b0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return b0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},bNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=xs.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fN(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>bNe(r,n,e,t)),fN(r,e,t)};PX.exports=hN;hN.sync=vX});var FX=I((yat,pN)=>{"use strict";var kX=wX(),ks=J("fs"),Q0=J("path"),DX=xX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},P0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),QNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&P0(g,r)===!0)return p();if(r===h)return QNe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(Q0.relative(h,r)).split("/");x0(h,m,n,g,u,h,null,p)};var x0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(Q0.resolve(r+"/"+l));if(P0(i,c))return x0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())x0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,x0(r,e,t,i,n,s,o,a))},SNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&P0(u,r)===!0)return h();if(r===g)return SNe(g),h();if(l)return h(kX.sync(r,i));let d=lo(Q0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(Q0.resolve(B)),!P0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let x=ks.lstatSync(B);if(x.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(x.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CN=I((wat,NX)=>{var dN=Object.create(null),{hasOwnProperty:vNe}=Object.prototype;NX.exports=r=>(vNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var MX=I((Bat,OX)=>{var TX=J("assert"),PNe=CN(),xNe=nh(),{join:LX}=J("path"),kNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DNe=kNe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);TX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);TX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DNe?["win32 parallelization disabled"]:c.map(h=>PNe(xNe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((bat,UX)=>{var RNe=process.platform,FNe=RNe==="win32",NNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:TNe,O_TRUNC:LNe,O_WRONLY:ONe,UV_FS_O_FILEMAP:KX=0}=NNe.constants,MNe=FNe&&!!KX,KNe=512*1024,UNe=KX|LNe|TNe|ONe;UX.exports=MNe?r=>r"w"});var SN=I((Qat,tZ)=>{"use strict";var HNe=J("assert"),jNe=y0(),Ht=J("fs"),GNe=fh(),rA=J("path"),_X=FX(),jX=SF(),YNe=MX(),qNe=vF(),$n=th(),JNe=nh(),WNe=CN(),GX=Symbol("onEntry"),IN=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yN=Symbol("isReusable"),Ds=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Gi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),bN=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zNe==="win32",VNe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XNe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WNe(JNe($n(r))).toLowerCase(),ZNe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Ne=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[VC]=!1,this.reservations=YNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[GX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[GX](e){if(!this[zX](e))return e.resume();switch(HNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Gi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new GNe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Gi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Gi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Gi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Gi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Gi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[EN]()}[bN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IN](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Ne(this.dirCache):e.type!=="Directory"&&ZNe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Gi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Gi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[bN](e),i();return}if(a||this[yN](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VNe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Gi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Gi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},QN=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IN](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Gi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Gi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[bN](e);if(t||this[yN](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XNe(e.absolute));this[Ds](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Gi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Gi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Gi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Gi](s,e)}}};ZC.Sync=QN;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Ne=Xf(),N0=SN(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vN=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)};var eTe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},tTe=r=>{let e=new N0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rTe=(r,e)=>{let t=new N0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new N0.Sync(r),nTe=r=>new N0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AN();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=SN();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((xat,cZ)=>{var PN;cZ.exports.getContent=()=>(typeof PN>"u"&&(PN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),PN)});var CZ=I((xN,dZ)=>{(function(r,e){typeof xN=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(xN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),bTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,QTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:QTe.test(r)||!bTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,PZ)=>{var vTe=Tc(),PTe=vn(),xTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!PTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==xTe||e==RTe}PZ.exports=FTe});var kZ=I((eAt,xZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];xZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=vn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function bLe(r,e){return r===e||r!==r&&e!==e}r_.exports=bLe});var em=I((pAt,i_)=>{var QLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(QLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),PLe=Array.prototype,xLe=PLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():xLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((bAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((QAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var Q_=I((vAt,b_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}b_.exports=rOe});var v_=I((PAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((xAt,P_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=Q_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var x_=H0(),cOe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||x_),t}KN.Cache=x_;k_.exports=KN});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var T_=I((RAt,N_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});N_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=T_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((NAt,O_)=>{var BOe=fC(),bOe=1/0;function QOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-bOe?"-0":e}O_.exports=QOe});var im=I((TAt,M_)=>{var SOe=Bh(),vOe=$c();function POe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t{var xOe=hl(),kOe=function(){try{var r=xOe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var bh=I((OAt,H_)=>{var U_=UN();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=bh(),FOe=Ih(),NOe=Object.prototype,TOe=NOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(TOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,G_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r{var UOe=j0(),HOe=Bh(),jOe=nm(),Y_=vn(),GOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var qOe=im(),JOe=HN(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((GAt,X_)=>{var XOe=Tc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var G0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jN=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=G0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var fMe=V_(),hMe=jN();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=GN();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var a$=Nc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),bMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=bMe),n||(n=[]);++s0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var QMe=f$();function SMe(r){var e=r==null?0:r.length;return e?QMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YN=I((elt,E$)=>{var PMe=C$(),m$=Math.max;function xMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var Q$=I((ilt,b$)=>{var RMe=y$(),B$=UN(),FMe=q0(),NMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;b$.exports=NMe});var v$=I((nlt,S$)=>{var TMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=TMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qN=I((slt,P$)=>{var KMe=Q$(),UMe=v$(),HMe=UMe(KMe);P$.exports=HMe});var k$=I((olt,x$)=>{var jMe=p$(),GMe=YN(),YMe=qN();function qMe(r){return YMe(GMe(r,void 0,jMe),r+"")}x$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var G$=I((kct,j$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Nct,tee)=>{var p1e=eee(),d1e=jN();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var Ph=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.default=void 0;var E1e=ree(Am()),I1e=ree(Ph());function ree(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tT;eb.default=y1e});var iT=I(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.default=void 0;var B1e=nee(am()),b1e=nee(iT());function nee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,b1e.default)(e).forEach(s=>{xh.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,xh)}};tb.default=xh});var rb=I(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=P1e;var sT=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function P1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let h=0;h{function x1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=x1e});var aT=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var N1e=Is(),T1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?N1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||T1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Tc(),U1e=G0(),H1e=Jo(),j1e="[object Arguments]",G1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[G1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var ib=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nb=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AT=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();Dh.exports=dKe});var sb=I((Jct,yee)=>{var CKe=dee(),mKe=ib(),Eee=nb(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lT=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),bKe=nm(),QKe=sb(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function PKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&QKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||bKe(c,l)))&&a.push(c);return a}wee.exports=PKe});var ob=I((zct,Bee)=>{var xKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||xKe;return r===t}Bee.exports=kKe});var cT=I((Vct,bee)=>{function DKe(r,e){return function(t){return r(e(t))}}bee.exports=DKe});var See=I((Xct,Qee)=>{var RKe=cT(),FKe=RKe(Object.keys,Object);Qee.exports=FKe});var Pee=I((Zct,vee)=>{var NKe=ob(),TKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!NKe(r))return TKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,xee)=>{var KKe=K0(),UKe=G0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}xee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lT(),GKe=Pee(),YKe=fm();function qKe(r){return YKe(r)?jKe(r):GKe(r)}kee.exports=qKe});var uT=I((eut,Dee)=>{var JKe=aT(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Tee=I((rut,Nee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Nee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length{var sUe=tm(),oUe=Fee(),aUe=Tee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Yee=I((aut,Gee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Gee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function ab(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gT=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function bUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g{var QUe=Is(),SUe=QUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function PUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=PUe});var lte=I((dut,Ate)=>{var ste=Nc(),ote=fT(),xUe=Ih(),kUe=gT(),DUe=rte(),RUe=nte(),FUe=1,NUe=2,TUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hT=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case TUe:case LUe:case KUe:return xUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(hT)return hT.call(r)==hT.call(e)}return!1}Ate.exports=JUe});var pT=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function ZUe(){return[]}fte.exports=ZUe});var Ab=I((Iut,pte)=>{var _Ue=gte(),$Ue=dT(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CT=I((yut,dte)=>{var i2e=pT(),n2e=Ab(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CT(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((but,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var Qte=I((Qut,bte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");bte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Nte)=>{var mT=yte(),ET=U0(),IT=Bte(),yT=Qte(),wT=vte(),Fte=Tc(),Nh=MN(),Pte="[object Map]",B2e="[object Object]",xte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",b2e=Nh(mT),Q2e=Nh(ET),S2e=Nh(IT),v2e=Nh(yT),P2e=Nh(wT),tu=Fte;(mT&&tu(new mT(new ArrayBuffer(1)))!=Rte||ET&&tu(new ET)!=Pte||IT&&tu(IT.resolve())!=xte||yT&&tu(new yT)!=kte||wT&&tu(new wT)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case b2e:return Rte;case Q2e:return Pte;case S2e:return xte;case v2e:return kte;case P2e:return Dte}return e});Nte.exports=tu});var jte=I((Put,Hte)=>{var BT=hm(),x2e=gT(),k2e=lte(),D2e=Ete(),Tte=pm(),Lte=Ss(),Ote=cm(),R2e=sb(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lb="[object Object]",N2e=Object.prototype,Ute=N2e.hasOwnProperty;function T2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Tte(r),c=a?Kte:Tte(e);l=l==Mte?lb:l,c=c==Mte?lb:c;var u=l==lb,g=c==lb,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BT),o||R2e(r)?x2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BT),n(m,y,t,i,s)}}return h?(s||(s=new BT),D2e(r,e,t,i,n,s)):!1}Hte.exports=T2e});var bT=I((xut,qte)=>{var L2e=jte(),Gte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Gte(r)&&!Gte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=bT(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var j2e=vn();function G2e(r){return r===r&&!j2e(r)}zte.exports=G2e});var Xte=I((Rut,Vte)=>{var Y2e=QT(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var ST=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Nut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=ST();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cb=I((Tut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=bT(),tHe=cb(),rHe=GN(),iHe=M0(),nHe=QT(),sHe=ST(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vT=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var PT=I((Hut,cre)=>{var bHe=bh(),QHe=uT(),SHe=vT();function vHe(r,e){var t={};return e=SHe(e,3),QHe(r,function(i,n,s){bHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var PHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,xHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DT=512,ure=new ru(DT),gre=new ru(DT),fre=new ru(DT);pre.exports={Cache:ru,split:kT,normalizePath:xT,setter:function(r){var e=xT(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),ub={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===ub.context,this.isValue=this.key[0]===ub.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?ub.context:this.isValue?ub.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=HHe;var MHe=FT(PT()),gb=FT(eu()),KHe=FT(iu());function FT(r){return r&&r.__esModule?r:{default:r}}function fb(){return fb=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fb({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gb.default(gb.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let x=fb({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(x,n,x)).then(q=>{gb.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(x,n,x),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${x.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gb.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var TT=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),GHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?GHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hb=>{"use strict";Object.defineProperty(hb,"__esModule",{value:!0});hb.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hb.default=Im});var oA=I(db=>{"use strict";Object.defineProperty(db,"__esModule",{value:!0});db.default=void 0;var Ire=sA(G$()),Th=nA(),WHe=sA(iee()),yre=sA(rb()),pb=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=TT(),XHe=sA(iT()),Bre=sA(eu()),bre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". +`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),TF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),NF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[TF](t)})}[TF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[xF]())}[NF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[TF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[NF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=GB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,QFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),YF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),GF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),bFe=WB(),HF=th(),WF=bFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[GF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new QFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[YF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[GF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[GF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[YF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,Pn=J("fs"),XF=Pn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),Q7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),b7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[Q7]=t.readSize||16*1024*1024,this[ol]=!1,this[b7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[b7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){Pn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[Q7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));Pn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){Pn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eT=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=Pn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=Pn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,Pn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eT});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=GB(),S7=JB(),TFe=dF(),tT=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rT=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),YC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),kn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iT=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nT=Symbol("bufferConcat"),sT=Symbol("maybeEnd"),GC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),NFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:NFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[YC]=null,this[Vc]=!1,this[kn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[YC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[YC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rT]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rT]()),t=!1)):(this[eA]=null,t=!1),t}[rT](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[GC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iT](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iT](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[YC]=S7.parse(this[ll],this[YC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[kn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.lengththis[p0](s)),this[kn].on("error",s=>this.abort(s)),this[kn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[GC]=!0;let n=this[kn][i?"end":"write"](e);return this[GC]=!1,n}}this[GC]=!0,this[kn]?this[kn].write(e):this[p0](e),this[GC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nT](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sT](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nT](e);else if(!e&&!this[Cr])this[sT]();else{if(this[C0]=!0,this[Cr]){this[nT](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sT]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iT](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t{"use strict";var LFe=Xf(),T7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oT=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):N7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oT(s)):s=>n(oT(s))},UFe=r=>{let e=N7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new T7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},N7=r=>new T7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?YFe(i,e):i.file?GFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var YFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},GFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aT(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aT=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aT(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aT(t,e),t}});var AT=I((uat,V7)=>{"use strict";var WFe=Xf(),Y7=a0(),_n=J("fs"),G7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new Y7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new G7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new Y7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new G7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AT();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eTe(i),$Fe(i,e,t)};var eTe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tTe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tTe});var rX=I((hat,tX)=>{var rTe=process.platform,{resolve:iTe,parse:nTe}=J("path"),sTe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iTe(r),rTe==="win32"){let e=/[*|"<>?:]/,{root:t}=nTe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sTe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uT=I((dat,lX)=>{var{dirname:AX}=J("path"),lT=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lT(i,e).then(s=>lT(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cT=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cT(r,e,cT(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lT,mkdirpManualSync:cT}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oTe,findMadeSync:aTe}=aX(),{mkdirpManual:ATe,mkdirpManualSync:lTe}=uT(),cTe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oTe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ATe(r,e);throw n}))),uTe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aTe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lTe(r,e);throw n}};uX.exports={mkdirpNative:cTe,mkdirpNativeSync:uTe}});var dX=I((mat,pX)=>{var fX=J("fs"),gTe=process.version,gT=gTe.replace(/^v/,"").split("."),hX=+gT[0]>10||+gT[0]==10&&+gT[1]>=12,fTe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hTe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fTe,useNativeSync:hTe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uT(),{useNative:pTe,useNativeSync:dTe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pTe(e)?CX(r,e):EX(r,e)),CTe=(r,e)=>(r=dh(r),e=ph(e),dTe(e)?mX(r,e):IX(r,e));Ch.sync=CTe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mTe=Ps.lchown?"lchown":"chown",ETe=Ps.lchownSync?"lchownSync":"chownSync",QX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ETe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},ITe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yTe=QX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fT=QX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;ITe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wTe=process.version,bX=(r,e,t)=>Ps.readdir(r,e,t),BTe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wTe)&&(bX=(r,e,t)=>Ps.readdir(r,t));var Q0=(r,e,t,i)=>{Ps[mTe](r,e,t,yTe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hT(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);Q0(o,t,i,n)});else{let s=_c.resolve(r,e.name);Q0(s,t,i,n)}},hT=(r,e,t,i)=>{bX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},QTe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fT(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BTe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fT(r,e,t);throw n}return i&&i.length&&i.forEach(n=>QTe(r,n,e,t)),fT(r,e,t)};xX.exports=hT;hT.sync=vX});var FX=I((yat,pT)=>{"use strict";var kX=wX(),ks=J("fs"),b0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),bTe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pT.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return bTe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(b0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(b0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},STe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pT.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return STe(g),h();if(l)return h(kX.sync(r,i));let d=lo(b0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(b0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CT=I((wat,TX)=>{var dT=Object.create(null),{hasOwnProperty:vTe}=Object.prototype;TX.exports=r=>(vTe.call(dT,r)||(dT[r]=r.normalize("NFKD")),dT[r])});var MX=I((Bat,OX)=>{var NX=J("assert"),xTe=CT(),PTe=nh(),{join:LX}=J("path"),kTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DTe=kTe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);NX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);NX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DTe?["win32 parallelization disabled"]:c.map(h=>xTe(PTe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((Qat,UX)=>{var RTe=process.platform,FTe=RTe==="win32",TTe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:NTe,O_TRUNC:LTe,O_WRONLY:OTe,UV_FS_O_FILEMAP:KX=0}=TTe.constants,MTe=FTe&&!!KX,KTe=512*1024,UTe=KX|LTe|NTe|OTe;UX.exports=MTe?r=>r"w"});var ST=I((bat,tZ)=>{"use strict";var HTe=J("assert"),jTe=y0(),Ht=J("fs"),YTe=fh(),rA=J("path"),_X=FX(),jX=SF(),GTe=MX(),qTe=vF(),$n=th(),JTe=nh(),WTe=CT(),YX=Symbol("onEntry"),IT=Symbol("checkFs"),GX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yT=Symbol("isReusable"),Ds=Symbol("makeFs"),wT=Symbol("file"),BT=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Yi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mT=Symbol("ended"),ET=Symbol("maybeClose"),QT=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zTe==="win32",VTe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XTe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WTe(JTe($n(r))).toLowerCase(),ZTe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Te=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jTe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mT]=!0,this[ET]()},super(e),this[VC]=!1,this.reservations=GTe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mT]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[YX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[ET](){this[mT]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qTe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[YX](e){if(!this[zX](e))return e.resume();switch(HTe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IT](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Yi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wT](e,t){let i=e.mode&4095||this.fmode,n=new YTe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Yi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Yi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Yi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Yi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BT](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Yi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[ET]()}[QT](e){this[mh](),e.resume()}[yT](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IT](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[GX](e,i))}[R0](e){e.type==="SymbolicLink"?_Te(this.dirCache):e.type!=="Directory"&&ZTe(this.dirCache,e.absolute)}[GX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Yi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Yi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[QT](e),i();return}if(a||this[yT](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VTe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Yi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wT](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BT](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Yi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},bT=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IT](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Yi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Yi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[QT](e);if(t||this[yT](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XTe(e.absolute));this[Ds](n,e)}[wT](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Yi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Yi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BT](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Yi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Yi](s,e)}}};ZC.Sync=bT;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Te=Xf(),T0=ST(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vT=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Te(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eNe(i,e),i.file&&i.sync?tNe(i):i.file?rNe(i,t):i.sync?iNe(i):nNe(i)};var eNe=(r,e)=>{let t=new Map(e.map(s=>[vT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vT(s)):s=>n(vT(s))},tNe=r=>{let e=new T0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rNe=(r,e)=>{let t=new T0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iNe=r=>new T0.Sync(r),nNe=r=>new T0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AT();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=ST();li.Parse=y0();li.ReadEntry=GB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xT;cZ.exports.getContent=()=>(typeof xT>"u"&&(xT=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xT)});var CZ=I((PT,dZ)=>{(function(r,e){typeof PT=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PT,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var M0=I((_at,vZ)=>{var wNe=Ss(),BNe=fC(),QNe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bNe=/^\w*$/;function SNe(r,e){if(wNe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BNe(r)?!0:bNe.test(r)||!QNe.test(r)||e!=null&&r in Object(e)}vZ.exports=SNe});var K0=I(($at,xZ)=>{var vNe=Nc(),xNe=vn(),PNe="[object AsyncFunction]",kNe="[object Function]",DNe="[object GeneratorFunction]",RNe="[object Proxy]";function FNe(r){if(!xNe(r))return!1;var e=vNe(r);return e==kNe||e==DNe||e==PNe||e==RNe}xZ.exports=FNe});var kZ=I((eAt,PZ)=>{var TNe=Is(),NNe=TNe["__core-js_shared__"];PZ.exports=NNe});var FZ=I((tAt,RZ)=>{var OT=kZ(),DZ=function(){var r=/[^.]+$/.exec(OT&&OT.keys&&OT.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LNe(r){return!!DZ&&DZ in r}RZ.exports=LNe});var MT=I((rAt,TZ)=>{var ONe=Function.prototype,MNe=ONe.toString;function KNe(r){if(r!=null){try{return MNe.call(r)}catch{}try{return r+""}catch{}}return""}TZ.exports=KNe});var LZ=I((iAt,NZ)=>{var UNe=K0(),HNe=FZ(),jNe=vn(),YNe=MT(),GNe=/[\\^$.*+?()[\]{}|]/g,qNe=/^\[object .+?Constructor\]$/,JNe=Function.prototype,WNe=Object.prototype,zNe=JNe.toString,VNe=WNe.hasOwnProperty,XNe=RegExp("^"+zNe.call(VNe).replace(GNe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZNe(r){if(!jNe(r)||HNe(r))return!1;var e=UNe(r)?XNe:qNe;return e.test(YNe(r))}NZ.exports=ZNe});var MZ=I((nAt,OZ)=>{function _Ne(r,e){return r==null?void 0:r[e]}OZ.exports=_Ne});var hl=I((sAt,KZ)=>{var $Ne=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Ne(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var YZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,GZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}GZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=YZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function TLe(r){return FLe(this.__data__,r)>-1}A_.exports=TLe});var u_=I((EAt,c_)=>{var NLe=em();function LLe(r,e){var t=this.__data__,i=NLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var jLe=hl(),YLe=Is(),GLe=jLe(YLe,"Map");f_.exports=GLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=b_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var P_=H0(),cOe="Expected a function";function KT(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KT.Cache||P_),t}KT.Cache=P_;k_.exports=KT});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var N_=I((RAt,T_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});T_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=N_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((TAt,O_)=>{var BOe=fC(),QOe=1/0;function bOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-QOe?"-0":e}O_.exports=bOe});var im=I((NAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var Qh=I((OAt,H_)=>{var U_=UT();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=Qh(),FOe=Ih(),TOe=Object.prototype,NOe=TOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(NOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,Y_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r{var UOe=j0(),HOe=Bh(),jOe=nm(),G_=vn(),YOe=$c();function GOe(r,e,t,i){if(!G_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var qOe=im(),JOe=HT(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((YAt,X_)=>{var XOe=Nc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((GAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var Y0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jT=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=Y0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var fMe=V_(),hMe=jT();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=YT();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var G0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var a$=Tc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=G0(),QMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QMe),n||(n=[]);++s0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var bMe=f$();function SMe(r){var e=r==null?0:r.length;return e?bMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var GT=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var b$=I((ilt,Q$)=>{var RMe=y$(),B$=UT(),FMe=q0(),TMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;Q$.exports=TMe});var v$=I((nlt,S$)=>{var NMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=NMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qT=I((slt,x$)=>{var KMe=b$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var jMe=p$(),YMe=GT(),GMe=qT();function qMe(r){return GMe(YMe(r,void 0,jMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var Y$=I((kct,j$)=>{"use strict";var _T;try{_T=Map}catch{}var $T;try{$T=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_T&&r instanceof _T)return new Map(Array.from(r.entries()));if($T&&r instanceof $T)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eN=>{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function G$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=G$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=G$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Tct,tee)=>{var p1e=eee(),d1e=jT();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tN=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tN;eQ.default=y1e});var iN=I(rN=>{"use strict";Object.defineProperty(rN,"__esModule",{value:!0});rN.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.default=void 0;var B1e=nee(am()),Q1e=nee(iN());function nee(r){return r&&r.__esModule?r:{default:r}}function nN(){return nN=Object.assign||function(r){for(var e=1;e(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tQ.default=Ph});var rQ=I(oN=>{"use strict";Object.defineProperty(oN,"__esModule",{value:!0});oN.default=x1e;var sN=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sN.default(o,s,l)):c(null,s);for(let h=0;h{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aN=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var T1e=Is(),N1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?T1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||N1e;kh.exports=M1e});var dee=I((Gct,pee)=>{var K1e=Nc(),U1e=Y0(),H1e=Jo(),j1e="[object Arguments]",Y1e="[object Array]",G1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[Y1e]=mr[tKe]=mr[G1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var iQ=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nQ=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AN=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AN&&AN.binding&&AN.binding("util")}catch{}}();Dh.exports=dKe});var sQ=I((Jct,yee)=>{var CKe=dee(),mKe=iQ(),Eee=nQ(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lN=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),QKe=nm(),bKe=sQ(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&bKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||QKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var oQ=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cN=I((Vct,Qee)=>{function DKe(r,e){return function(t){return r(e(t))}}Qee.exports=DKe});var See=I((Xct,bee)=>{var RKe=cN(),FKe=RKe(Object.keys,Object);bee.exports=FKe});var xee=I((Zct,vee)=>{var TKe=oQ(),NKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!TKe(r))return NKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=Y0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lN(),YKe=xee(),GKe=fm();function qKe(r){return GKe(r)?jKe(r):YKe(r)}kee.exports=qKe});var uN=I((eut,Dee)=>{var JKe=aN(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Nee=I((rut,Tee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Tee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length{var sUe=tm(),oUe=Fee(),aUe=Nee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Gee=I((aut,Yee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Yee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Gee(),dUe=Jee();function aQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gN=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function QUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g{var bUe=Is(),SUe=bUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Tc(),ote=fN(),PUe=Ih(),kUe=gN(),DUe=rte(),RUe=nte(),FUe=1,TUe=2,NUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",YUe="[object Symbol]",GUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hN=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case GUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case NUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=TUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case YUe:if(hN)return hN.call(r)==hN.call(e)}return!1}Ate.exports=JUe});var pN=I((Cut,cte)=>{var WUe=G0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function ZUe(){return[]}fte.exports=ZUe});var AQ=I((Iut,pte)=>{var _Ue=gte(),$Ue=dN(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CN=I((yut,dte)=>{var i2e=pN(),n2e=AQ(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CN(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((Qut,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var bte=I((but,Qte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");Qte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Tte)=>{var mN=yte(),EN=U0(),IN=Bte(),yN=bte(),wN=vte(),Fte=Nc(),Th=MT(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",Q2e=Th(mN),b2e=Th(EN),S2e=Th(IN),v2e=Th(yN),x2e=Th(wN),tu=Fte;(mN&&tu(new mN(new ArrayBuffer(1)))!=Rte||EN&&tu(new EN)!=xte||IN&&tu(IN.resolve())!=Pte||yN&&tu(new yN)!=kte||wN&&tu(new wN)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Th(t):"";if(i)switch(i){case Q2e:return Rte;case b2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Tte.exports=tu});var jte=I((xut,Hte)=>{var BN=hm(),P2e=gN(),k2e=lte(),D2e=Ete(),Nte=pm(),Lte=Ss(),Ote=cm(),R2e=sQ(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lQ="[object Object]",T2e=Object.prototype,Ute=T2e.hasOwnProperty;function N2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Nte(r),c=a?Kte:Nte(e);l=l==Mte?lQ:l,c=c==Mte?lQ:c;var u=l==lQ,g=c==lQ,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BN),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BN),n(m,y,t,i,s)}}return h?(s||(s=new BN),D2e(r,e,t,i,n,s)):!1}Hte.exports=N2e});var QN=I((Put,qte)=>{var L2e=jte(),Yte=Jo();function Gte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Yte(r)&&!Yte(e)?r!==r&&e!==e:L2e(r,e,t,i,Gte,n)}qte.exports=Gte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=QN(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var j2e=vn();function Y2e(r){return r===r&&!j2e(r)}zte.exports=Y2e});var Xte=I((Rut,Vte)=>{var G2e=bN(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,G2e(n)]}return e}Vte.exports=J2e});var SN=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Tut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=SN();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cQ=I((Nut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=QN(),tHe=cQ(),rHe=YT(),iHe=M0(),nHe=bN(),sHe=SN(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vN=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xN=I((Hut,cre)=>{var QHe=Qh(),bHe=uN(),SHe=vN();function vHe(r,e){var t={};return e=SHe(e,3),bHe(r,function(i,n,s){QHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DN=512,ure=new ru(DN),gre=new ru(DN),fre=new ru(DN);pre.exports={Cache:ru,split:kN,normalizePath:PN,setter:function(r){var e=PN(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),uQ={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===uQ.context,this.isValue=this.key[0]===uQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?uQ.context:this.isValue?uQ.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(TN=>{"use strict";Object.defineProperty(TN,"__esModule",{value:!0});TN.default=HHe;var MHe=FN(xN()),gQ=FN(eu()),KHe=FN(iu());function FN(r){return r&&r.__esModule?r:{default:r}}function fQ(){return fQ=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fQ({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gQ.default(gQ.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fQ({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gQ.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gQ.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var NN=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),YHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?YHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var GHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=GHe;Em.default=qHe});var Ere=I(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});hQ.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hQ.default=Im});var oA=I(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.default=void 0;var Ire=sA(Y$()),Nh=nA(),WHe=sA(iee()),yre=sA(rQ()),pQ=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=NN(),XHe=sA(iN()),Bre=sA(eu()),Qre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e{this.typeError(Nh.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pb.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pb.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pb.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pb.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};db.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=Qre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function Qre(){return new LT}Qre.prototype=LT.prototype});var Lh=I(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.default=void 0;var eje=r=>r==null;Cb.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=xre(oA()),vre=nA(),Pre=xre(Lh());function xre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,Pre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,Pre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Nre=I(Qm=>{"use strict";Object.defineProperty(Qm,"__esModule",{value:!0});Qm.create=Fre;Qm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new bm}var bm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};Qm.default=bm;Fre.prototype=bm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Tre(Lh()),Aje=Tre(oA());function Tre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||ithis.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(Pm=>{"use strict";Object.defineProperty(Pm,"__esModule",{value:!0});Pm.create=KT;Pm.default=void 0;var gje=mb(Mre()),Kre=nA(),Ure=mb(Lh()),fje=mb(iu()),hje=mb(oA());function mb(r){return r&&r.__esModule?r:{default:r}}var MT=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MT:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};Pm.default=Oh;Oh.INVALID_DATE=MT;KT.prototype=Oh.prototype;KT.INVALID_DATE=MT});var Gre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function Cje(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bje="\\u0300-\\u036f",Qje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=bje+Qje+Sje,Pje="["+vje+"]",xje=RegExp(Pje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(xje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Nje(r){return Fje.test(r)}_re.exports=Nje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Tje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Tje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Gje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Yje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Yje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Gje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eGe=die+pie+Zje,tGe="(?:"+[qje,fie,hie].join("|")+")"+eGe,rGe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tGe].join("|"),"g");function iGe(r){return r.match(rGe)||[]}Cie.exports=iGe});var Iie=I((Agt,Eie)=>{var nGe=Zre(),sGe=$re(),oGe=Vf(),aGe=mie();function AGe(r,e,t){return r=oGe(r),e=t?void 0:e,e===void 0?sGe(r)?aGe(r):nGe(r):r.match(e)||[]}Eie.exports=AGe});var UT=I((lgt,yie)=>{var lGe=Gre(),cGe=Vre(),uGe=Iie(),gGe="['\u2019]",fGe=RegExp(gGe,"g");function hGe(r){return function(e){return lGe(uGe(cGe(e).replace(fGe,"")),r,"")}}yie.exports=hGe});var Bie=I((cgt,wie)=>{var pGe=UT(),dGe=pGe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dGe});var Qie=I((ugt,bie)=>{var CGe=PB(),mGe=UT(),EGe=mGe(function(r,e,t){return e=e.toLowerCase(),r+(t?CGe(e):e)});bie.exports=EGe});var vie=I((ggt,Sie)=>{var IGe=bh(),yGe=uT(),wGe=vT();function BGe(r,e){var t={};return e=wGe(e,3),yGe(r,function(i,n,s){IGe(t,e(i,n,s),i)}),t}Sie.exports=BGe});var xie=I((fgt,HT)=>{HT.exports=function(r){return Pie(bGe(r),r)};HT.exports.array=Pie;function Pie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=QGe(e),a=SGe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function bGe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(jT,"__esModule",{value:!0});jT.default=RGe;var vGe=Eb(Am()),PGe=Eb(xie()),xGe=dm(),kGe=Eb(iu()),DGe=Eb(Ph());function Eb(r){return r&&r.__esModule?r:{default:r}}function RGe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,xGe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vGe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kGe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DGe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return PGe.default.array(i,t).reverse()}});var Rie=I(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=FGe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FGe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Nie=ia(Bie()),NGe=ia(Qie()),TGe=ia(vie()),LGe=ia(PT()),OGe=dm(),Tie=nA(),MGe=ia(kie()),Oie=ia(Rie()),KGe=ia(rb()),UGe=ia(eu()),YT=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function HGe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jGe=(0,Oie.default)([]),xm=class extends YT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jGe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UGe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KGe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YT.default&&s instanceof YT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MGe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OGe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Tie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HGe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Tie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,TGe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(NGe.default)}snakeCase(){return this.transformKeys(Nie.default)}constantCase(){return this.transformKeys(e=>(0,Nie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LGe.default)(this.fields,t=>t.describe()),e}};km.default=xm;function Mie(r){return new xm(r)}Mie.prototype=xm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qT=Uh(Lh()),GGe=Uh(Ph()),YGe=Uh(am()),JT=nA(),qGe=Uh(rb()),JGe=Uh(eu()),WGe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function Ib(){return Ib=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,Ib({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JGe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;yc.validate(B,x,H)}(0,qGe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,GGe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YGe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XGe;Fm.default=void 0;var zGe=VGe(Ph());function VGe(r){return r&&r.__esModule?r:{default:r}}function XGe(r){return new yb(r)}var yb=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zGe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZGe=yb;Fm.default=ZGe});var Gie=I(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=eYe;var _Ge=$Ge(nA());function $Ge(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ge.default[e][t]=r[e][t]})})}});var VT=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zT=ou(Dre()),qie=ou(Nre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=jie(),iYe=Nm(eu()),nYe=Nm(TT()),Xie=Nm(Ph()),sYe=Nm(Gie()),oYe=Nm(oA());function Nm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Ngt,ZT)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var Bb=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!Bb(r))return e;if(!Bb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&Bb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);Bb(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var bb=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};bb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,bb(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};bb.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=bb});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),bYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=bYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var QYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=QYe.merge(r.options)}});var bne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",PYe=uo(),nL=Yi(),go=Bne.exports=wne,xr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${xr}G`,down:`${xr}J`,esc:xr,getPosition:`${xr}6n`,hide:`${xr}?25l`,line:`${xr}2K`,lineEnd:`${xr}K`,lineStart:`${xr}1K`,restorePosition:xr+(Ine?"8":"u"),savePosition:xr+(Ine?"7":"s"),screen:`${xr}2J`,show:`${xr}?25h`,up:`${xr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${xr}${r}C`,backward:(r=1)=>`${xr}${r}D`,nextLine:(r=1)=>`${xr}E`.repeat(r),prevLine:(r=1)=>`${xr}F`.repeat(r),up:(r=1)=>r?`${xr}${r}A`:"",down:(r=1)=>r?`${xr}${r}B`:"",right:(r=1)=>r?`${xr}${r}C`:"",left:(r=1)=>r?`${xr}${r}D`:"",to(r,e){return e?`${xr}${e+1};${r+1}H`:`${xr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return oL.line+au.to(0);let t=s=>[...PYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Gh=I((Ggt,Sne)=>{"use strict";var xYe=J("events"),Qne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Dn=Yi(),Au=bne(),Om=class extends xYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Dn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=Qne.unstyle(i);let n=Qne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Nh.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Nh.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Nh.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Nh.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Nh.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LN=ZHe.default,$He=LN;ym.default=$He;function bre(){return new LN}bre.prototype=LN.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eje=r=>r==null;CQ.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Tre=I(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Fre;bm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new Qm}var Qm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Qm;Fre.prototype=Qm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Nre(Lh()),Aje=Nre(oA());function Nre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||ithis.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(ON=>{"use strict";Object.defineProperty(ON,"__esModule",{value:!0});ON.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KN;xm.default=void 0;var gje=mQ(Mre()),Kre=nA(),Ure=mQ(Lh()),fje=mQ(iu()),hje=mQ(oA());function mQ(r){return r&&r.__esModule?r:{default:r}}var MN=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KN(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MN:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MN;KN.prototype=Oh.prototype;KN.INVALID_DATE=MN});var Yre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function Cje(r){return function(e){return r==null?void 0:r[e]}}Gre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qje="\\u0300-\\u036f",bje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=Qje+bje+Sje,xje="["+vje+"]",Pje=RegExp(xje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(Pje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Tje(r){return Fje.test(r)}_re.exports=Tje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Nje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Nje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Yje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Gje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Gje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Yje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eYe=die+pie+Zje,tYe="(?:"+[qje,fie,hie].join("|")+")"+eYe,rYe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tYe].join("|"),"g");function iYe(r){return r.match(rYe)||[]}Cie.exports=iYe});var Iie=I((Agt,Eie)=>{var nYe=Zre(),sYe=$re(),oYe=Vf(),aYe=mie();function AYe(r,e,t){return r=oYe(r),e=t?void 0:e,e===void 0?sYe(r)?aYe(r):nYe(r):r.match(e)||[]}Eie.exports=AYe});var UN=I((lgt,yie)=>{var lYe=Yre(),cYe=Vre(),uYe=Iie(),gYe="['\u2019]",fYe=RegExp(gYe,"g");function hYe(r){return function(e){return lYe(uYe(cYe(e).replace(fYe,"")),r,"")}}yie.exports=hYe});var Bie=I((cgt,wie)=>{var pYe=UN(),dYe=pYe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dYe});var bie=I((ugt,Qie)=>{var CYe=xB(),mYe=UN(),EYe=mYe(function(r,e,t){return e=e.toLowerCase(),r+(t?CYe(e):e)});Qie.exports=EYe});var vie=I((ggt,Sie)=>{var IYe=Qh(),yYe=uN(),wYe=vN();function BYe(r,e){var t={};return e=wYe(e,3),yYe(r,function(i,n,s){IYe(t,e(i,n,s),i)}),t}Sie.exports=BYe});var Pie=I((fgt,HN)=>{HN.exports=function(r){return xie(QYe(r),r)};HN.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bYe(e),a=SYe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function QYe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.default=RYe;var vYe=EQ(Am()),xYe=EQ(Pie()),PYe=dm(),kYe=EQ(iu()),DYe=EQ(xh());function EQ(r){return r&&r.__esModule?r:{default:r}}function RYe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,PYe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vYe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kYe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DYe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xYe.default.array(i,t).reverse()}});var Rie=I(YN=>{"use strict";Object.defineProperty(YN,"__esModule",{value:!0});YN.default=FYe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FYe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Tie=ia(Bie()),TYe=ia(bie()),NYe=ia(vie()),LYe=ia(xN()),OYe=dm(),Nie=nA(),MYe=ia(kie()),Oie=ia(Rie()),KYe=ia(rQ()),UYe=ia(eu()),GN=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function HYe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jYe=(0,Oie.default)([]),Pm=class extends GN.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jYe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UYe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KYe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof GN.default&&s instanceof GN.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MYe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OYe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Nie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HYe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Nie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,NYe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(TYe.default)}snakeCase(){return this.transformKeys(Tie.default)}constantCase(){return this.transformKeys(e=>(0,Tie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LYe.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qN=Uh(Lh()),YYe=Uh(xh()),GYe=Uh(am()),JN=nA(),qYe=Uh(rQ()),JYe=Uh(eu()),WYe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function IQ(){return IQ=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,IQ({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JYe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;yc.validate(B,P,H)}(0,qYe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,YYe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,GYe.default)(e));return t.innerType=e,t}length(e,t=JN.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qN.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JN.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qN.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JN.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XYe;Fm.default=void 0;var zYe=VYe(xh());function VYe(r){return r&&r.__esModule?r:{default:r}}function XYe(r){return new yQ(r)}var yQ=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zYe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZYe=yQ;Fm.default=ZYe});var Yie=I(WN=>{"use strict";Object.defineProperty(WN,"__esModule",{value:!0});WN.default=eGe;var _Ye=$Ye(nA());function $Ye(r){return r&&r.__esModule?r:{default:r}}function eGe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ye.default[e][t]=r[e][t]})})}});var VN=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aGe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Gie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Gie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zN.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tGe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rGe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iGe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nGe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sGe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oGe.default}});var Gie=ou(Sre()),zN=ou(Dre()),qie=ou(Tre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tGe=iu(),rGe=jie(),iGe=Tm(eu()),nGe=Tm(NN()),Xie=Tm(xh()),sGe=Tm(Yie()),oGe=Tm(oA());function Tm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aGe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cGe=process.env.TERM_PROGRAM==="Hyper",uGe=process.platform==="win32",$ie=process.platform==="linux",XN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uGe&&!cGe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XN});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Tgt,ZN)=>{"use strict";var gGe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fGe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fGe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gGe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZN.exports=ine();ZN.exports.create=ine});var Gi=I(Ft=>{"use strict";var hGe=Object.prototype.toString,Fs=uo(),nne=!1,_N=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hGe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` +`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_N.forEach(n=>n()),t===!0&&process.exit(128+i))};_N.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_N.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pGe=one(),dGe=/^(?:\x1b)([a-zA-Z0-9])$/,CGe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mGe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EGe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IGe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` +`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dGe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CGe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mGe[s],i.shift=EGe(s)||i.shift,i.ctrl=IGe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};QQ.action=(r,e,t)=>{let i={...pGe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yGe(r,t,i)}};function yGe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wGe,width:BGe}=Gi(),$N=class{constructor(e){let t=e.options;wGe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BGe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$N});var pne=I((Ugt,hne)=>{"use strict";var eL=Gi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QGe=Gi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=QGe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var bGe=pne(),SGe=Cne(),vGe=Gi();mne.exports=r=>{r.options=vGe.merge({},r.options.theme,r.options),r.symbols=SGe.merge(r.options),r.styles=bGe.merge(r.options)}});var Qne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xGe=uo(),nL=Gi(),go=Bne.exports=wne,Pr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${Pr}G`,down:`${Pr}J`,esc:Pr,getPosition:`${Pr}6n`,hide:`${Pr}?25l`,line:`${Pr}2K`,lineEnd:`${Pr}K`,lineStart:`${Pr}1K`,restorePosition:Pr+(Ine?"8":"u"),savePosition:Pr+(Ine?"7":"s"),screen:`${Pr}2J`,show:`${Pr}?25h`,up:`${Pr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${Pr}${r}C`,backward:(r=1)=>`${Pr}${r}D`,nextLine:(r=1)=>`${Pr}E`.repeat(r),prevLine:(r=1)=>`${Pr}F`.repeat(r),up:(r=1)=>r?`${Pr}${r}A`:"",down:(r=1)=>r?`${Pr}${r}B`:"",right:(r=1)=>r?`${Pr}${r}C`:"",left:(r=1)=>r?`${Pr}${r}D`:"",to(r,e){return e?`${Pr}${e+1};${r+1}H`:`${Pr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return oL.line+au.to(0);let t=s=>[...xGe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Yh=I((Ygt,Sne)=>{"use strict";var PGe=J("events"),bne=uo(),aL=lne(),kGe=une(),DGe=fne(),RGe=Ene(),Dn=Gi(),Au=Qne(),Om=class extends PGe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RGe(this),kGe(this),this.state=new DGe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=TGe(this.options.margin),this.setMaxListeners(0),FGe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Dn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=bne.unstyle(i);let n=bne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` `),c=l[0],u=l[l.length-1],h=(i+(t?" "+t:"")).length,p=he.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Dn.isObject(e)&&(e=e[i.status]||e.pending),Dn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Dn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Dn.isObject(s)&&(s=s[i.status]||s.pending),Dn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Dn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Dn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Dn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Dn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Dn.height(this.stdout,25)}get width(){return this.options.columns||Dn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function NYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var xne=I((Ygt,Pne)=>{"use strict";var TYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};Pne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=xne(),Qb=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=Qb,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,Qb.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=Qb.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Qb.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jYe=Mm(),cL=Yi(),uL=class extends jYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` +`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Dn.isObject(e)&&(e=e[i.status]||e.pending),Dn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Dn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Dn.isObject(s)&&(s=s[i.status]||s.pending),Dn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Dn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Dn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Dn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Dn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Dn.height(this.stdout,25)}get width(){return this.options.columns||Dn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FGe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function TGe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` +`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ggt,xne)=>{"use strict";var NGe=Gi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=NGe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LGe=uo(),OGe=Yh(),MGe=Pne(),bQ=Gi(),{reorder:AL,scrollUp:KGe,scrollDown:UGe,isObject:kne,swap:HGe}=bQ,lL=class extends OGe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MGe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,bQ.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LGe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KGe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UGe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HGe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=bQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(bQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jGe=Mm(),cL=Gi(),uL=class extends jGe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` `),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var Sb=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let x=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,x,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,x,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=Sb(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vb=I((_gt,Gne)=>{"use strict";var _Ye=Gh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vb(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=Sb(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` +`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Nne=I((Wgt,Tne)=>{"use strict";var YGe=dl(),GGe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends YGe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=GGe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Tne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Gi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qGe=uo(),JGe=dl(),WGe=hL(),pL=class extends JGe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qGe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WGe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zGe=SQ(),VGe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VGe)=>{class e extends zGe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XGe=dL();function ZGe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZGe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XGe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vQ=I((_gt,Yne)=>{"use strict";var _Ge=Yh(),{isPrimitive:$Ge,hasColor:eqe}=Gi(),CL=class extends _Ge{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ge(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Yne.exports=CL});var qne=I(($gt,Gne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Gne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Gh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Gh.dispatch.call(this,e,t)}append(e,t){return Gh.append.call(this,e,t)}delete(e,t){return Gh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Gh.next.call(this):super.next()}prev(){return this.focused.editable?Gh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Gh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Yh(),sqe=hL(),{isPrimitive:oqe}=Gi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` `,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):sqe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),Pb=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:Pb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:Pb([...s,t]),present:o};case"save":return{past:Pb([...i,t]),present:""};case"remove":return o=Pb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),bL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=bL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),QL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=QL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),PL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=PL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),xL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` +`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xQ=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xQ([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xQ([...s,t]),present:o};case"save":return{past:xQ([...i,t]),present:""};case"remove":return o=xQ(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),QL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=QL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),bL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=bL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Gi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(` `)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!cse.hasColor(s)&&(s=this.styles.muted(s));let o=d=>this.margin[3]+d.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=hqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let p=cse.wordWrap(c,{width:this.widths[0],newline:a}).split(` `).map(d=>o(d)+this.margin[1]);return i&&(u=this.styles.info(u),p=p.map(d=>this.styles.info(d))),p[0]+=u,this.linebreak&&p.push(""),[l+n,p.join(` `)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(" "))].join(` `)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),h=await this.footer(),p=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&p!=null&&(o+=this.styles.danger(p)),this.clear(t),this.write([a,o,c,g,h].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=xL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});uF.name===B.key);B.field=n.find(F=>F.name===B.key),x||(x=new DL(B),a.push(x)),x.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,x,F,H)=>{let q=await c(S,x,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let x=S.value,F=S.key;if(S.type!=="template"){x&&(g.output+=x);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,x].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=x;x=await l(x,g,H,p),q!==x?(g.values[F]=q,x=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,x=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(x=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(x=r.styles.danger(q)),p===g.index&&(W!==x?x=r.styles.underline(x):x=r.styles.heading(fse.unstyle(x))),p++}x&&(g.output+=x)}let m=g.output.split(` -`).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(x=>{m[x][0]===" "&&(m[x]=g.styles.danger(g.symbols.bullet)+m[x].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` -`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Gh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=PL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});uF.name===B.key);B.field=n.find(F=>F.name===B.key),P||(P=new DL(B),a.push(P)),P.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,P,F,H)=>{let q=await c(S,P,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let P=S.value,F=S.key;if(S.type!=="template"){P&&(g.output+=P);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,P].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=P;P=await l(P,g,H,p),q!==P?(g.values[F]=q,P=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,P=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(P=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(P=r.styles.danger(q)),p===g.index&&(W!==P?P=r.styles.underline(P):P=r.styles.heading(fse.unstyle(P))),p++}P&&(g.output+=P)}let m=g.output.split(` +`).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(P=>{m[P][0]===" "&&(m[P]=g.styles.danger(g.symbols.bullet)+m[P].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` +`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Yh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` `].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",h=await this.hint()||"",p=i?"":await this.interpolate(this.state),d=this.state.key=t[e]||"",m=await this.format(d),y=await this.footer();m&&(c+=" "+m),h&&!m&&this.state.completed===0&&(c+=" "+h),this.clear(n);let B=[u,c,p,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} `;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mqe.unstyle(i).split(` `).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use + to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),NL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=bqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=x=>(x?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((x,F)=>c(F===e.scaleIdx)).join(a),m=x=>x===e.scaleIdx?g(x):x,y=p+e.scale.map((x,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` +`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use + to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),TL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=Qqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` `);return i&&(d=this.styles.cyan(d),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` `)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function bqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{wse.exports=wL()});var Qse=I((dft,bse)=>{"use strict";var Qqe=vb(),TL=class extends Qqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};bse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var xse=I(OL=>{"use strict";var Pse=Yi(),ci=(r,e)=>{Pse.defineExport(OL,r,e),Pse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>Sb());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>Qse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vb(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Gh()}static get prompts(){return xse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var Rqe=j0(),Fqe=bh();function Nqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=vn(),Uqe=ob(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var rJe=Jh(),iJe=Ab();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kb=I((dht,aoe)=>{var sJe=cT(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kb(),lJe=Ab(),cJe=dT(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pT(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var Db=I((yht,doe)=>{var poe=fT();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var bJe=Db();function QJe(r,e){var t=e?bJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=QJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var Qoe=I((bht,boe)=>{var yoe=Nc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function PJe(r){return Boe?Object(Boe.call(r)):{}}boe.exports=PJe});var zL=I((Qht,Soe)=>{var xJe=Db();function kJe(r,e){var t=e?xJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var Poe=I((Sht,voe)=>{var DJe=Db(),RJe=moe(),FJe=Ioe(),NJe=Qoe(),TJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",GJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return TJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case GJe:return NJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=vn(),xoe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(xoe)return xoe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((Pht,Roe)=>{var n3e=Doe(),s3e=kb(),o3e=ob();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Noe=I((xht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Noe(),f3e=ib(),Toe=nb(),Loe=Toe&&Toe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,Goe)=>{var E3e=Uoe(),I3e=ib(),Hoe=nb(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Goe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Gse(),b3e=j0(),Q3e=Jse(),S3e=$se(),v3e=qL(),P3e=JL(),x3e=ooe(),k3e=coe(),D3e=CT(),R3e=goe(),F3e=pm(),N3e=hoe(),T3e=Poe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=vn(),H3e=Yoe(),j3e=Rh(),G3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[sWe]=lr[oWe]=lr[z3e]=lr[V3e]=lr[aWe]=lr[AWe]=lr[lWe]=lr[cWe]=lr[uWe]=lr[_3e]=lr[$3e]=lr[Woe]=lr[eWe]=lr[tWe]=lr[rWe]=lr[iWe]=lr[gWe]=lr[fWe]=lr[hWe]=lr[pWe]=!0;lr[X3e]=lr[Joe]=lr[nWe]=!1;function Rb(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=N3e(r),!a)return P3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):x3e(r,Q3e(o,r))}else{if(!lr[g])return n?r:{};o=T3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(Rb(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,Rb(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?G3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),b3e(o,B,Rb(y,e,t,B,r,s))}),o}zoe.exports=Rb});var XL=I((Nht,Xoe)=>{var dWe=Voe(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xoe.exports=EWe});var _oe=I((Tht,Zoe)=>{var IWe=HN();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zoe.exports=yWe});var iae=I((Hht,rae)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=wWe});var sae=I((jht,nae)=>{var BWe=im(),bWe=HR();function QWe(r,e){return e.length<2?r:BWe(r,bWe(e,0,-1))}nae.exports=QWe});var aae=I((Ght,oae)=>{var SWe=Bh(),vWe=iae(),PWe=sae(),xWe=$c();function kWe(r,e){return e=SWe(e,r),r=PWe(r,e),r==null||delete r[xWe(vWe(e))]}oae.exports=kWe});var lae=I((Yht,Aae)=>{var DWe=aae();function RWe(r,e){return r==null?!0:DWe(r,e)}Aae.exports=RWe});var hae=I((mpt,TWe)=>{TWe.exports={name:"@yarnpkg/cli",version:"3.8.1",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Gmt,Pae)=>{"use strict";Pae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,xae)=>{"use strict";var e4e=oO();function t4e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=e4e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}xae.exports=t4e});var Fae=I((qmt,Rae)=>{"use strict";var r4e=kae();function i4e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var n4e=i4e(r4e),s4e="text/plain",o4e="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),a4e=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===o4e)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==s4e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function A4e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return a4e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=A4e(r,e));let n=n4e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Tae)=>{"use strict";var l4e=oO();function Nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=l4e(r);if(r=r.substring(r.indexOf("://")+3),Nae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var c4e=Fae(),Oae=Lae();function u4e(r){var e=c4e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=u4e});var Hae=I((zmt,Uae)=>{"use strict";var g4e=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=g4e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?f4e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+h4e(r)+n;default:return r.href}};function f4e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function h4e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var T4e=bh(),L4e=Ih();function O4e(r,e,t){(t!==void 0&&!L4e(r[e],t)||t===void 0&&!(e in r))&&T4e(r,e,t)}AAe.exports=O4e});var cAe=I((Kyt,lAe)=>{var M4e=fm(),K4e=Jo();function U4e(r){return K4e(r)&&M4e(r)}lAe.exports=U4e});var fAe=I((Uyt,gAe)=>{var H4e=Tc(),j4e=kb(),G4e=Jo(),Y4e="[object Object]",q4e=Function.prototype,J4e=Object.prototype,uAe=q4e.toString,W4e=J4e.hasOwnProperty,z4e=uAe.call(Object);function V4e(r){if(!G4e(r)||H4e(r)!=Y4e)return!1;var e=j4e(r);if(e===null)return!0;var t=W4e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==z4e}gAe.exports=V4e});var DO=I((Hyt,hAe)=>{function X4e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=X4e});var dAe=I((jyt,pAe)=>{var Z4e=Jh(),_4e=Wh();function $4e(r){return Z4e(r,_4e(r))}pAe.exports=$4e});var wAe=I((Gyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=vn(),A8e=fAe(),l8e=sb(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var QAe=I((Yyt,bAe)=>{var g8e=hm(),f8e=kO(),h8e=aT(),p8e=wAe(),d8e=vn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}bAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=YN(),y8e=qN();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var xAe=I((Jyt,PAe)=>{var B8e=Ih(),b8e=fm(),Q8e=nm(),S8e=vn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?b8e(t)&&Q8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}PAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var P8e=vAe(),x8e=xAe();function k8e(r){return P8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&x8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var D8e=QAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Rn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Rn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Rn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Rn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Rn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Rn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Rn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Rn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Rn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Rn;fle.exports=uE});var Qle=I((XBt,ble)=>{var eM;ble.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((V0t,Tle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ns=J("path"),Fle=Rle(),Pze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,xze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Nle(r){let e={...xze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Nle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Nze(e,t),Tze(r,e,i,t)}function Nze(r,e){return e.fs_.mkdir(Ns.dirname(r),{recursive:!0})}function Tze(r,e,t,i){let n=Nle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Gze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(Pze);if(!n){let s=Ns.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ns.relative(Ns.dirname(e),r).split("/").join("\\"),s=Ns.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Qqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),NL=class extends bqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Qse.exports=NL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Gi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Nne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Gi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Yh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Yse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var Rqe=j0(),Fqe=Qh();function Tqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var Nqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Nqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=vn(),Uqe=oQ(),Hqe=zse(),jqe=Object.prototype,Yqe=jqe.hasOwnProperty;function Gqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Yqe.call(r,i))||t.push(i);return t}Vse.exports=Gqe});var Wh=I((ght,Zse)=>{var qqe=lN(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Gm,zh)=>{var _qe=Is(),ioe=typeof Gm=="object"&&Gm&&!Gm.nodeType&&Gm,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var rJe=Jh(),iJe=AQ();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kQ=I((dht,aoe)=>{var sJe=cN(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=G0(),AJe=kQ(),lJe=AQ(),cJe=dN(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pN(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var DQ=I((yht,doe)=>{var poe=fN();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var QJe=DQ();function bJe(r,e){var t=e?QJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=bJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var boe=I((Qht,Qoe)=>{var yoe=Tc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}Qoe.exports=xJe});var zL=I((bht,Soe)=>{var PJe=DQ();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=DQ(),RJe=moe(),FJe=Ioe(),TJe=boe(),NJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",YJe="[object Symbol]",GJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case GJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return NJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case YJe:return TJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=vn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kQ(),o3e=oQ();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Toe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Toe(),f3e=iQ(),Noe=nQ(),Loe=Noe&&Noe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Goe=I((Rht,Yoe)=>{var E3e=Uoe(),I3e=iQ(),Hoe=nQ(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Yoe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Yse(),Q3e=j0(),b3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CN(),R3e=goe(),F3e=pm(),T3e=hoe(),N3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=vn(),H3e=Goe(),j3e=Rh(),Y3e=Wh(),G3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",e4e="[object RegExp]",t4e="[object Set]",r4e="[object String]",i4e="[object Symbol]",n4e="[object WeakMap]",s4e="[object ArrayBuffer]",o4e="[object DataView]",a4e="[object Float32Array]",A4e="[object Float64Array]",l4e="[object Int8Array]",c4e="[object Int16Array]",u4e="[object Int32Array]",g4e="[object Uint8Array]",f4e="[object Uint8ClampedArray]",h4e="[object Uint16Array]",p4e="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[s4e]=lr[o4e]=lr[z3e]=lr[V3e]=lr[a4e]=lr[A4e]=lr[l4e]=lr[c4e]=lr[u4e]=lr[_3e]=lr[$3e]=lr[Woe]=lr[e4e]=lr[t4e]=lr[r4e]=lr[i4e]=lr[g4e]=lr[f4e]=lr[h4e]=lr[p4e]=!0;lr[X3e]=lr[Joe]=lr[n4e]=!1;function RQ(r,e,t,i,n,s){var o,a=e&G3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=T3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,b3e(o,r))}else{if(!lr[g])return n?r:{};o=N3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(RQ(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,RQ(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?Y3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),Q3e(o,B,RQ(y,e,t,B,r,s))}),o}zoe.exports=RQ});var XL=I((Tht,Xoe)=>{var d4e=Voe(),C4e=1,m4e=4;function E4e(r){return d4e(r,C4e|m4e)}Xoe.exports=E4e});var _oe=I((Nht,Zoe)=>{var I4e=HT();function y4e(r,e,t){return r==null?r:I4e(r,e,t)}Zoe.exports=y4e});var iae=I((Hht,rae)=>{function w4e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=w4e});var sae=I((jht,nae)=>{var B4e=im(),Q4e=HR();function b4e(r,e){return e.length<2?r:B4e(r,Q4e(e,0,-1))}nae.exports=b4e});var aae=I((Yht,oae)=>{var S4e=Bh(),v4e=iae(),x4e=sae(),P4e=$c();function k4e(r,e){return e=S4e(e,r),r=x4e(r,e),r==null||delete r[P4e(v4e(e))]}oae.exports=k4e});var lae=I((Ght,Aae)=>{var D4e=aae();function R4e(r,e){return r==null?!0:D4e(r,e)}Aae.exports=R4e});var hae=I((mpt,N4e)=>{N4e.exports={name:"@yarnpkg/cli",version:"3.8.2",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Ymt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Gmt,Pae)=>{"use strict";var eWe=oO();function tWe(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=eWe(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=tWe});var Fae=I((qmt,Rae)=>{"use strict";var rWe=kae();function iWe(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var nWe=iWe(rWe),sWe="text/plain",oWe="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),aWe=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===oWe)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==sWe)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function AWe(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return aWe(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=AWe(r,e));let n=nWe.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Nae)=>{"use strict";var lWe=oO();function Tae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=lWe(r);if(r=r.substring(r.indexOf("://")+3),Tae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var cWe=Fae(),Oae=Lae();function uWe(r){var e=cWe(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=uWe});var Hae=I((zmt,Uae)=>{"use strict";var gWe=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=gWe(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?fWe(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+hWe(r)+n;default:return r.href}};function fWe(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function hWe(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var NWe=Qh(),LWe=Ih();function OWe(r,e,t){(t!==void 0&&!LWe(r[e],t)||t===void 0&&!(e in r))&&NWe(r,e,t)}AAe.exports=OWe});var cAe=I((Kyt,lAe)=>{var MWe=fm(),KWe=Jo();function UWe(r){return KWe(r)&&MWe(r)}lAe.exports=UWe});var fAe=I((Uyt,gAe)=>{var HWe=Nc(),jWe=kQ(),YWe=Jo(),GWe="[object Object]",qWe=Function.prototype,JWe=Object.prototype,uAe=qWe.toString,WWe=JWe.hasOwnProperty,zWe=uAe.call(Object);function VWe(r){if(!YWe(r)||HWe(r)!=GWe)return!1;var e=jWe(r);if(e===null)return!0;var t=WWe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==zWe}gAe.exports=VWe});var DO=I((Hyt,hAe)=>{function XWe(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=XWe});var dAe=I((jyt,pAe)=>{var ZWe=Jh(),_We=Wh();function $We(r){return ZWe(r,_We(r))}pAe.exports=$We});var wAe=I((Yyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=vn(),A8e=fAe(),l8e=sQ(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var bAe=I((Gyt,QAe)=>{var g8e=hm(),f8e=kO(),h8e=aN(),p8e=wAe(),d8e=vn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}QAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=GT(),y8e=qT();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var PAe=I((Jyt,xAe)=>{var B8e=Ih(),Q8e=fm(),b8e=nm(),S8e=vn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?Q8e(t)&&b8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}xAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var x8e=vAe(),P8e=PAe();function k8e(r){return x8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var D8e=bAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Rn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Rn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Rn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Rn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Rn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Rn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Rn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Rn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Rn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Rn;fle.exports=uE});var ble=I((XBt,Qle)=>{var eM;Qle.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((V0t,Nle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ts=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Tle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Tle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Tze(e,t),Nze(r,e,i,t)}function Tze(r,e){return e.fs_.mkdir(Ts.dirname(r),{recursive:!0})}function Nze(r,e,t,i){let n=Tle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Yze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ts.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ts.relative(Ts.dirname(e),r).split("/").join("\\"),s=Ts.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r `:"";return o?g+=`@IF EXIST ${o} (\r ${o} ${l} ${n} ${u}%*\r ) ELSE (\r @@ -242,7 +242,7 @@ attempted value: ${s} ${a} ${l} ${n} ${u}%*\r )\r `:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function Hze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh +`,g}function Hze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in @@ -257,7 +257,7 @@ else fi `:u+=`${g}${n} ${a} ${i} ${c}"$@" exit $? -`,u}function jze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh +`,u}function jze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" @@ -299,33 +299,33 @@ if ($MyInvocation.ExpectingInput) { } ${t.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE -`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Tle.exports=AM});var yM=I((fQt,rce)=>{rce.exports=J("stream")});var oce=I((hQt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pQ.alloc(0);for(var i=pQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pQ.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var bM=I((pQt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(dQ,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(dQ,t),e(s)):process.nextTick(dQ,t)}),this)}function ace(r,e){BM(r,e),dQ(r)}function dQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var Ql=I((dQt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var QM=I((CQt,gce)=>{"use strict";var B5e=Ql().codes.ERR_INVALID_OPT_VALUE;function b5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function Q5e(r,e,t,i){var n=b5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:Q5e}});var fce=I((mQt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((EQt,PM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";PM.exports=vM.inherits}catch{PM.exports=fce()}var vM});var pce=I((IQt,hce)=>{hce.exports=J("util").deprecate});var DM=I((yQt,yce)=>{"use strict";yce.exports=Nr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Nr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mQ=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function P5e(r){return mQ.from(r)}function x5e(r){return mQ.isBuffer(r)||r instanceof v5e}var kM=bM(),k5e=QM(),D5e=k5e.getHighWaterMark,vl=Ql().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,N5e=vl.ERR_MULTIPLE_CALLBACK,T5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Nr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Nr,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Nr?!1:e&&e._writableState instanceof dE}})):CQ=function(e){return e instanceof this};function Nr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!CQ.call(Nr,this))return new Nr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Nr.prototype.pipe=function(){Ap(this,new T5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Nr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&x5e(r);return s&&!mQ.isBuffer(r)&&(r=P5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Nr.prototype.cork=function(){this._writableState.corked++};Nr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Nr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Nr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mQ.from(e,t)),e}Object.defineProperty(Nr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=G5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=NM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),EQ=0;EQ{var yQ=J("buffer"),hA=yQ.Buffer;function bce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?Qce.exports=yQ:(bce(yQ,TM),TM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}bce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yQ.SlowBuffer(r)}});var MM=I(Pce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}Pce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wQ=I((bQt,Dce)=>{"use strict";var xce=Ql().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var BQ;function Pl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wQ(),xl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),bQ=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[xl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[xl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[bQ]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((BQ={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[bQ])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},Pl(BQ,Symbol.asyncIterator,function(){return this}),Pl(BQ,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),BQ),w6e),b6e=function(e){var t,i=Object.create(B6e,(t={},Pl(t,Xu,{value:e,writable:!0}),Pl(t,xl,{value:null,writable:!0}),Pl(t,zu,{value:null,writable:!0}),Pl(t,mE,{value:null,writable:!0}),Pl(t,bQ,{value:e._readableState.endEmitted,writable:!0}),Pl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[xl]=null,i[zu]=null,s(kl(a,!1))):(i[xl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[xl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[xl];o!==null&&(i[Vu]=null,i[xl]=null,i[zu]=null,o(kl(void 0,!0))),i[bQ]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=b6e});var Oce=I((SQt,Lce)=>{"use strict";function Nce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function Q6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Nce(s,i,n,o,a,"next",l)}function a(l){Nce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Tce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var vQt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),QQ=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return QQ.from(r)}function R6e(r){return QQ.isBuffer(r)||r instanceof k6e}var UM=J("util"),xt;UM&&UM.debuglog?xt=UM.debuglog("stream"):xt=function(){};var F6e=oce(),WM=bM(),N6e=QM(),T6e=N6e.getHighWaterMark,SQ=Ql().codes,L6e=SQ.ERR_INVALID_ARG_TYPE,O6e=SQ.ERR_STREAM_PUSH_AFTER_EOF,M6e=SQ.ERR_METHOD_NOT_IMPLEMENTED,K6e=SQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,GM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=T6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=QQ.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){xt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,G6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==QQ.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){xt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return xt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vQ(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;xt("need readable",i),(e.length===0||e.length-r0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function G6e(r,e){if(xt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vQ(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Gce(r)))}}function vQ(r){var e=r._readableState;xt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(xt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Gce,r))}function Gce(r){var e=r._readableState;xt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Jce(i.pipes,r)!==-1)&&!c&&(xt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){xt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){xt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){xt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(xt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;xt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,xt("on readable",i.length,i.reading),i.length?vQ(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){xt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(xt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){xt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return xt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(xt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(xt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(xt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(xt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;xt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(xt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t{"use strict";Vce.exports=pA;var PQ=Ql().codes,X6e=PQ.ERR_METHOD_NOT_IMPLEMENTED,Z6e=PQ.ERR_MULTIPLE_CALLBACK,_6e=PQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=PQ.ERR_TRANSFORM_WITH_LENGTH_0,xQ=Wu();Sl()(pA,xQ);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((DQt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=Ql().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wQ()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wQ(),Os.pipeline=iue())});var oue=I((RQt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;gh)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r{"use strict";var ZM=gp().Duplex,c9e=Sl(),bE=oue();function Ji(r){if(!(this instanceof Ji))return new Ji(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}bE._init.call(this,r),ZM.call(this)}c9e(Ji,ZM);Object.assign(Ji.prototype,bE.prototype);Ji.prototype._new=function(e){return new Ji(e)};Ji.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Ji.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Ji.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Ji.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Ji.prototype._isBufferList=function(e){return e instanceof Ji||e instanceof bE||Ji.isBufferList(e)};Ji.isBufferList=bE.isBufferList;kQ.exports=Ji;kQ.exports.BufferListStream=Ji;kQ.exports.BufferList=bE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),QE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;te?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` +`,p}function Yze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ts.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Nle.exports=AM});var yM=I((fbt,rce)=>{rce.exports=J("stream")});var oce=I((hbt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((pbt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var bl=I((dbt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var bM=I((Cbt,gce)=>{"use strict";var B5e=bl().codes.ERR_INVALID_OPT_VALUE;function Q5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function b5e(r,e,t,i){var n=Q5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:b5e}});var fce=I((mbt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((Ebt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((Ibt,hce)=>{hce.exports=J("util").deprecate});var DM=I((ybt,yce)=>{"use strict";yce.exports=Tr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Tr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mb=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mb.from(r)}function P5e(r){return mb.isBuffer(r)||r instanceof v5e}var kM=QM(),k5e=bM(),D5e=k5e.getHighWaterMark,vl=bl().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,T5e=vl.ERR_MULTIPLE_CALLBACK,N5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Tr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Cb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Cb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Tr,Symbol.hasInstance,{value:function(e){return Cb.call(this,e)?!0:this!==Tr?!1:e&&e._writableState instanceof dE}})):Cb=function(e){return e instanceof this};function Tr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!Cb.call(Tr,this))return new Tr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Tr.prototype.pipe=function(){Ap(this,new N5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Tr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mb.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=G5e(this,i,s,r,e,t)),n};Tr.prototype.cork=function(){this._writableState.corked++};Tr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Tr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Tr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Y5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mb.from(e,t)),e}Object.defineProperty(Tr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function G5e(r,e,t,i,n,s){if(!t){var o=Y5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=TM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),Eb=0;Eb{var yb=J("buffer"),hA=yb.Buffer;function Qce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?bce.exports=yb:(Qce(yb,NM),NM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Qce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yb.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wb=I((Qbt,Dce)=>{"use strict";var Pce=bl().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var Bb;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wb(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),Qb=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[Qb]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((Bb={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[Qb])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(Bb,Symbol.asyncIterator,function(){return this}),xl(Bb,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),Bb),w6e),Q6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,Qb,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[Qb]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=Q6e});var Oce=I((Sbt,Lce)=>{"use strict";function Tce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function b6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Tce(s,i,n,o,a,"next",l)}function a(l){Tce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Nce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var vbt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),bb=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return bb.from(r)}function R6e(r){return bb.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=QM(),T6e=bM(),N6e=T6e.getHighWaterMark,Sb=bl().codes,L6e=Sb.ERR_INVALID_ARG_TYPE,O6e=Sb.ERR_STREAM_PUSH_AFTER_EOF,M6e=Sb.ERR_METHOD_NOT_IMPLEMENTED,K6e=Sb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,YM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=N6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=bb.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,Y6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==bb.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):GM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?GM(r,s,e,!1):JM(r,s)):GM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vb(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function Y6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Yce(r)))}}function vb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Yce,r))}function Yce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(G6e,r,e))}function G6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vb(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Gce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Gce,this),e};function Gce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t{"use strict";Vce.exports=pA;var xb=bl().codes,X6e=xb.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xb.ERR_MULTIPLE_CALLBACK,_6e=xb.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xb.ERR_TRANSFORM_WITH_LENGTH_0,Pb=Wu();Sl()(pA,Pb);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((Dbt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=bl().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wb()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=TM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wb(),Os.pipeline=iue())});var oue=I((Rbt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;gh)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r{"use strict";var ZM=gp().Duplex,c9e=Sl(),QE=oue();function Ji(r){if(!(this instanceof Ji))return new Ji(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}QE._init.call(this,r),ZM.call(this)}c9e(Ji,ZM);Object.assign(Ji.prototype,QE.prototype);Ji.prototype._new=function(e){return new Ji(e)};Ji.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Ji.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Ji.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Ji.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Ji.prototype._isBufferList=function(e){return e instanceof Ji||e instanceof QE||Ji.isBufferList(e)};Ji.isBufferList=QE.isBufferList;kb.exports=Ji;kb.exports.BufferListStream=Ji;kb.exports.BufferList=QE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),bE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;te?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` `)),r.linkname&&(e+=_M(" linkpath="+r.linkname+` `));var t=r.pax;if(t)for(var i in t)e+=_M(" "+i+"="+t[i]+` -`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,QE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,QE,QE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,QE,QE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((TQt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new DQ(r,e);return t.end(),t},b9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},DQ=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(DQ,pue);DQ.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=b9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new DQ(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((LQt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var Que=I((OQt,bue)=>{var pp=Iue(),yue=xD(),FQ=Sl(),Q9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,RQ=e1(),v9e=parseInt("755",8),P9e=parseInt("644",8),Bue=Q9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function x9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var NQ=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};FQ(NQ,dp);NQ.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};NQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var TQ=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};FQ(TQ,dp);TQ.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};TQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};FQ(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};FQ(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=x9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:P9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new TQ;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new NQ(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=RQ.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=RQ.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(RQ.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(RQ.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};bue.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=Que()});var Mue=I((sSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Tue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Tue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Nue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Nue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Nue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=G9e;function G9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Tue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((oSt,ca)=>{"use strict";var xE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,an=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=an(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=an(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=an(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=an(t);let i=typeof e=="string"?e:PE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=an(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=an(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=an(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(PE(t,e),e)}else return c1(PE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=PE;function PE(r,e){return e=an(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?PE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=an(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=an(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=xE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=an(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=an(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=xE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. +`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Nbt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((Lbt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var bue=I((Obt,Que)=>{var pp=Iue(),yue=PD(),Fb=Sl(),b9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,Rb=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=b9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var Tb=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};Fb(Tb,dp);Tb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};Tb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Nb=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};Fb(Nb,dp);Nb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Nb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};Fb(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Fb(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new Nb;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new Tb(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=Rb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=Rb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(Rb.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(Rb.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Que.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=bue()});var Mue=I((sSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Nue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):G9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Nue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Tue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Tue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Tue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=Y9e;function Y9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Nue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function G9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((oSt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,an=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=an(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=an(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=an(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=an(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=an(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=an(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=an(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=an(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=an(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=an(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=an(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=an(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. Wanted: ${t.size} - Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=an(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=an(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(xE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. + Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=an(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=an(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. Wanted: ${r.size} - Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=an(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(xE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(xE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>XP,PackageExtensionType:()=>VP,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>Pi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>Qh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Ur,YarnVersion:()=>Fr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>Qt,stringifyMessageName:()=>RA,structUtils:()=>P,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>Qo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>yr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>vr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>bS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var vr={};ct(vr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Te={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Or(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function bo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function un(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} + Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=an(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ye,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Nf,WorkspaceResolver:()=>Ur,YarnVersion:()=>Fr,execUtils:()=>pr,folderUtils:()=>Tw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>NI,scriptUtils:()=>Gt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Ne,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>yr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>vr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Gr,xfs:()=>M});var vr={};ct(vr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Gs,S_IFREG:()=>Vl});var Gs=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Yge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Yge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Ne={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Gge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Gge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Gr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Or(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function un(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} `)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} `)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},vA=class extends wa{constructor(){super(v)}};function $ge(r){let e=r.match(/\r?\n/g);if(e===null)return fK.EOL;let t=e.filter(n=>n===`\r `).length,i=e.length-t;return t>i?`\r `:` -`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var Qg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var bg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new bg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=bg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Te.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Te.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Or("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Or("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Or("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Te.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=Qg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&Qg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Or("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw bo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),x=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:x,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),x=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:x,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Te.root,i);if(o==="/")return Te.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw bo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Te.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&Qg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(Qg.constants.COPYFILE_EXCL|Qg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Or(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw bo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Te.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw bo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Te.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Te.root,t);return Gp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Qo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Te.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Te.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Te.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,yr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|zi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==zi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==zi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==zi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==zi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==zi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==zi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==zi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==zi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==zi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==zi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Te.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var xg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),PA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),Pg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[PA])return this[PA];if(this[Pg]--,this[Pg]===0){let e=this[Ba];this[Ba]=-1,this[PA]=this[Fi].closePromise(e).finally(()=>{this[PA]=void 0})}else this[PA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[PA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[PA]}[(Fi,Ba,ife=Pg,nfe=PA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[Pg]++}[Ws](){if(this[Pg]--,this[Pg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function bS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[xg.promisify.custom])<"u"&&(s[xg.promisify.custom]=o[xg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[xg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[xg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return bS(t,e),t}var QK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,QS=null;function bK(){if(QS)return QS;let r=K.toPortablePath(QK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),QS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(TS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>Qa,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` -`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],QI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null +`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Ne.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Qg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new Qg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=Qg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Yp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Gp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Yp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Ne.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Gp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Ne.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Or("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Or("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Or("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Ne.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=bg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&bg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Or("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Ne.root,i);if(o==="/")return Ne.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw Qo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Ne.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&bg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(bg.constants.COPYFILE_EXCL|bg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Or(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Ne.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Ne.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Ne.root,t);return Yp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var bo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Ne.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Ne.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Ne.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,yr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Gp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Gp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|zi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==zi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==zi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==zi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==zi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==zi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==zi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==zi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==zi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==zi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==zi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Yp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Ne.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function QS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return QS(t,e),t}var bK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,bS=null;function QK(){if(bS)return bS;let r=K.toPortablePath(bK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),bS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(NS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],bI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null `;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} `;if(typeof r=="string")return`${hH(r)} `;if(Array.isArray(r)){if(r.length===0)return`[] `;let i=" ".repeat(e);return` -${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof QI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g} +${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof bI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g} ${p}:`:`${g}:`,m=h.startsWith(` `)?h:` ${h}`;return`${p}${d}${m}`}).join(e===0?` `:"")||` `;return t?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function Qa(r){try{let e=$S(r,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Qa.PreserveOrdering=QI;function Ede(r){return r.endsWith(` +${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=bI;function Ede(r){return r.endsWith(` `)||(r+=` -`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>Qe,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} +`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ni});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} ${this.candidates.map(({usage:n})=>`$ ${n}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: @@ -336,16 +336,16 @@ ${sv(e)}`}else this.message=`Command not found; did you mean one of: ${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` `)} -${sv(e)}`}},PI=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: +${sv(e)}`}},xI=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: ${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` `)} -${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Vi(r){return{...r,[id]:!0}}function xo(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function xI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${xI(e[0],!0)}`):new we(`${r}: +${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Vi(r){return{...r,[id]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function PI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${PI(e[0],!0)}`):new we(`${r}: ${e.map(t=>` -- ${xI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var Qe=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};Qe.isOption=id;Qe.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` +- ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var be=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};be.isOption=id;be.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` `),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` +`)}function Ni(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` `),r=nCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 `),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` @@ -353,26 +353,26 @@ ${e.map(t=>` `)}).join(` `)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var fv=ve(J("tty"),1);function pn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[Zi(),Zi(),Zi()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:x,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(x))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new PI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function Zi(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=Zi();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function bi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=NH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,Zi()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,Zi());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h0||!this.arity.proxy){let h=Vs(e,Zi());bi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),bi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,Zi());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,Zi());this.arity.proxy||this.registerOptions(e,p),bi(e,c,s,p,"pushExtraNoLimits"),bi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;ho.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)bi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&bi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,Zi());for(let o of i.names)bi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&ecCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends Qe{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`:""}var fv=ve(J("tty"),1);function pn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function TH(){return{nodes:[Zi(),Zi(),Zi()]}}function sCe(r){let e=TH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=NH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=NH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function Zi(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=Zi();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Qi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=TH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,Zi()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,Zi());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h0||!this.arity.proxy){let h=Vs(e,Zi());Qi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,Zi());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,Zi());this.arity.proxy||this.registerOptions(e,p),Qi(e,c,s,p,"pushExtraNoLimits"),Qi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;ho.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Qi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Qi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,Zi());for(let o of i.names)Qi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&ecCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends be{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Qe.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Qe?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` +`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Gg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ni(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ni(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ni(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ni(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ni(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` `),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} `,a+=` `);let{usage:g,options:h}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} `,h.length>0){a+=` `,a+=`${lv.header("Options")} `;let p=h.reduce((d,m)=>Math.max(d,m.definition.length),0);a+=` -`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ti(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` +`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ni(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` `,a+=`${this.format(t).header("Details")} `,a+=` -`,a+=Ti(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` +`,a+=Ni(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` `,a+=`${this.format(t).header("Examples")} `;for(let[p,d]of u)a+=` -`,a+=Ti(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} +`,a+=Ni(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} `}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} -`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ti(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} +`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ni(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} `:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} `:a+=`${this.format(t).header(`${this.binaryVersion}`)} @@ -382,100 +382,100 @@ ${e.map(t=>` `,a+=`${this.format(t).header(`${d}`)} `;for(let{commandClass:m,usage:y}of p){let B=m.usage.description||"undocumented";a+=` `,a+=` ${this.format(t).bold(y)} -`,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`,a+=` ${Ni(B,{format:this.format(t),paragraphs:!1})}`}}a+=` +`,a+=Ni("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} `;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` `,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends Qe{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends Qe{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends Qe{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>xI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Vi,rerouteArguments:()=>xo});function HH(r,e,t){let[i,n]=xo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=xo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=xo(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Vi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Vi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function mCe(r,e,t){let[i,n]=xo(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Vi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function TI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var P={};ct(P,{areDescriptorsEqual:()=>x8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>jSe,bindLocator:()=>GSe,convertDescriptorToLocator:()=>Qw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>rn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>en,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nx,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>xw,prettyReference:()=>lC,prettyResolution:()=>ix,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>Pf,sortDescriptors:()=>xf,stringifyDescriptor:()=>Sn,stringifyIdent:()=>Tt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Gk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_P,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Qn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>Qc,jsonOrPretty:()=>w0e,mark:()=>rx,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tx,supportsColor:()=>Wy,supportsHyperlinks:()=>ex,tuple:()=>io});var Xd=ve(wP()),Vd=ve(cc());var mW=ve(Bn()),EW=ve(aW());var me={};ct(me,{AsyncActions:()=>jP,BufferStream:()=>HP,CachingStrategy:()=>dW,DefaultStream:()=>GP,allSettledSafe:()=>ro,assertNever:()=>qP,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>bc,isIndexableObject:()=>UP,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>CW,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>JP,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>WP,sortMap:()=>bn,tryParseOptionalBoolean:()=>zP,validateEnum:()=>h0e});var lW=ve(Bn()),cW=ve(Jg()),uW=ve(zr()),YP=J("stream");function u0e(r){return!!(uW.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qP(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==gW&&t.push(n)}return t}var gW=Symbol();Uo.skip=gW;function Wd(r,e){for(let t of r){let i=e(t);if(i!==fW)return i}}var fW=Symbol();Wd.skip=fW;function UP(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),UP(r))for(let e of Object.keys(r)){let t=r[e];UP(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function bc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function JP(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var HP=class extends YP.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jP=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,cW.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},GP=class extends YP.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function hW(r){return Jd(K.fromPortablePath(r))}function pW(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=hW(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var AW=new Map;function C0e(r){let e=AW.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=pW(r);return AW.set(r,{mtime:t.mtimeMs,instance:i}),i}var dW=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(dW||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return pW(r);case 1:return C0e(r);case 2:return hW(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${lW.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function WP(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function CW(r){return typeof r>"u"?r:zd(r)}function zP(r){try{return CW(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),VP=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(VP||{}),XP=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(XP||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_P=(e=>(e[e.BOLD=2]="BOLD",e))(_P||{}),$P=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$P.level!==0,ex=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,ZP=new Xd.default.Instance($P),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Qn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Tt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>Sn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>ix(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Sn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nx(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:Sn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Qn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,en(e.selector))} \u27A4 ${Qn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Tt(r.parentDescriptor)} > ${Tt(r.descriptor)}`;case"PeerDependency":return`${Tt(r.parentDescriptor)} >> ${Tt(r.descriptor)}`;case"PeerDependencyMeta":return`${Tt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Qn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Qn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Qn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Qn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$P.level>=3?i[0]:i[1],s=typeof n=="number"?ZP.ansi256(n):n.startsWith("#")?ZP.hex(n):ZP[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Qn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Qn(r,e,t)}function tx(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function Qc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?Qc(t,i):_e(e,t,i)}function rx(r){return{Check:Qn(r,"\u2713","green"),Cross:Qn(r,"\u2718","red"),Question:Qn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([mW.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,EW.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>bw,makeHash:()=>tn});var ww=J("crypto"),Kk=ve(Mk());function tn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function bw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,P8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(P8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:tn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:tn(r.identHash,e),range:e}}function rn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:tn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function Qw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,rn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return rn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function GSe(r,e){return r.reference.includes("::")?r:rn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function x8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!x8(t,i))return!1}return!0}function en(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return rn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function Q8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${Q8(e)}#`),n+=Q8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Tt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Sn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function Pf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function Pw(r){if(r.startsWith(tC)){let e=Pw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function xw(r,e){return`${_e(r,Pw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${xw(r,e.range)}`}function lC(r,e){return`${_e(r,Pw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Tt(r)}@${Pw(r.reference)}`}function xf(r){return bn(r,[e=>Tt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function ix(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rx(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nx(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${xw(r,t.range)})`}function qk(r){return`node_modules/${Tt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(P8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Tt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Tt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Ur=uC;Ur.protocol="workspace:";var Qt={};ct(Qt,{SemVer:()=>N8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),N8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=T8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=T8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=en(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=nn(e.main):this.main=null,typeof e.module=="string"?this.module=nn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=nn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(nn(s),typeof o=="string"?nn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,nn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=en(s);this.bin.set(a.name,nn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Ur.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=nn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=nn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=nn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(nn(s),typeof o=="string"?nn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,nn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,nn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(nn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Tt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Tt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Tt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Tt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...xf(i).map(o=>({[Tt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...xf(n).map(o=>({[Tt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...xf(this.devDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...xf(this.peerDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Sn(zt(en(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function T8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function nn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zP(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Gve(r){return typeof r.reportCode<"u"}var Pi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Gve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return rn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return Pf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=yr.makeVirtualPath(s,o,n),l=new Qo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Ur.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Te.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Ur.protocol.length))}};var Nw={};ct(Nw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Tw,Lw;function dC(){return Tw=Tw!=null?Tw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:ex,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=WP(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:x,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:x,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:x,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:x}of l)h.useWithSource(B,u(x),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,x=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await x(H,"")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await x(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:S,data:x,strict:F}of l)h.useWithSource(B,g(x),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,Qa(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Ur,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qP(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=en(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{ePe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function ePe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>PC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Bn()),xR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function PR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tx(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function PC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(PC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(PC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(PC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(PC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?xR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?xR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await PR(d):void 0,x=m?await PR(m):void 0,F=y?await PR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:x,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>NB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>TB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>NC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>xRe});var xC={};ct(xC,{getLibzipPromise:()=>on,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(N=>(N[N.ZIP_ER_OK=0]="ZIP_ER_OK",N[N.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",N[N.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",N[N.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",N[N.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",N[N.ZIP_ER_READ=5]="ZIP_ER_READ",N[N.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",N[N.ZIP_ER_CRC=7]="ZIP_ER_CRC",N[N.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",N[N.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",N[N.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",N[N.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",N[N.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",N[N.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",N[N.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",N[N.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",N[N.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",N[N.ZIP_ER_EOF=17]="ZIP_ER_EOF",N[N.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",N[N.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",N[N.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",N[N.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",N[N.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",N[N.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",N[N.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",N[N.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",N[N.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",N[N.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",N[N.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",N[N.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",N[N.ZIP_ER_TELL=30]="ZIP_ER_TELL",N[N.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",N))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function u9(){return NR===null&&(NR=l9((0,c9.default)())),NR}async function on(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var Q9=ve(wP()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>TR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Bn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function TR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(TS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends be{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends be{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends be{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>YH,Proxy:()=>GH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Vi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function YH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function GH(r={}){return Vi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Vi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Vi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function NI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>GSe,bindDescriptor:()=>jSe,bindLocator:()=>YSe,convertDescriptorToLocator:()=>bw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Go,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>rn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>en,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Gk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>Sn,stringifyIdent:()=>Nt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Yk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>bn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>bc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var m4=ve(Bn()),E4=ve(a4());var me={};ct(me,{AsyncActions:()=>jx,BufferStream:()=>Hx,CachingStrategy:()=>d4,DefaultStream:()=>Yx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>Qc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>C4,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>Qn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var l4=ve(Bn()),c4=ve(Jg()),u4=ve(zr()),Gx=J("stream");function u0e(r){return!!(u4.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==g4&&t.push(n)}return t}var g4=Symbol();Uo.skip=g4;function Wd(r,e){for(let t of r){let i=e(t);if(i!==f4)return i}}var f4=Symbol();Wd.skip=f4;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function Qc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Gx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,c4.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Yx=class extends Gx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function h4(r){return Jd(K.fromPortablePath(r))}function p4(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=h4(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var A4=new Map;function C0e(r){let e=A4.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=p4(r);return A4.set(r,{mtime:t.mtimeMs,instance:i}),i}var d4=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(d4||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return p4(r);case 1:return C0e(r);case 2:return h4(r);default:throw new Error("Unsupported caching strategy")}}function Qn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${l4.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function C4(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return C4(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>bn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Nt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>Sn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Sn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:Sn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,en(e.selector))} \u27A4 ${bn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Nt(r.parentDescriptor)} > ${Nt(r.descriptor)}`;case"PeerDependency":return`${Nt(r.parentDescriptor)} >> ${Nt(r.descriptor)}`;case"PeerDependencyMeta":return`${Nt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,bn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return bn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>bn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ni(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function bn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return bn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return bn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?bc(t,i):_e(e,t,i)}function rP(r){return{Check:bn(r,"\u2713","green"),Cross:bn(r,"\u2718","red"),Question:bn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([m4.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,E4.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>Qw,makeHash:()=>tn});var ww=J("crypto"),Kk=ve(Mk());function tn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(x8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:tn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:tn(r.identHash,e),range:e}}function rn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:tn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function bw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Yk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,rn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Go(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Go(r))throw new Error("Not a virtual descriptor");return rn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function YSe(r,e){return r.reference.includes("::")?r:rn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function GSe(r,e){if(!Go(r))throw new Error("Invalid package type");if(!Go(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P8(t,i))return!1}return!0}function en(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return rn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function b8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${b8(e)}#`),n+=b8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Nt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Sn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Gr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Gk(r){return`${Nt(r)}@${xw(r.reference)}`}function Pf(r){return Qn(r,[e=>Nt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Nt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Nt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Nt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Ur=uC;Ur.protocol="workspace:";var bt={};ct(bt,{SemVer:()=>T8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),T8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=N8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=N8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=en(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=nn(e.main):this.main=null,typeof e.module=="string"?this.module=nn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=nn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(nn(s),typeof o=="string"?nn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,nn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=en(s);this.bin.set(a.name,nn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Ur.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=nn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=nn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=nn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(nn(s),typeof o=="string"?nn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,nn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,nn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(nn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Nt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Nt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Nt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Nt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Nt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Nt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of Qn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of Qn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Sn(zt(en(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Qn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function N8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function nn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Yve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Yve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return rn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=yr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Tf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Tf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Tf.protocol)}supportsDescriptor(e,t){return Tf.isVirtualDescriptor(e)}supportsLocator(e,t){return Tf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Tf;hC.protocol="virtual:";var Nf=class{supports(e){return!!e.reference.startsWith(Ur.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Ne.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Ur.protocol.length))}};var Tw={};ct(Tw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Gve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Gve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Nw,Lw;function dC(){return Nw=Nw!=null?Nw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Ur,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Nf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=en(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Nt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(Qn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(Qn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Bn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Gt={};ct(Gt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>TB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>NB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>TC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>on,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(T=>(T[T.ZIP_ER_OK=0]="ZIP_ER_OK",T[T.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",T[T.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",T[T.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",T[T.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",T[T.ZIP_ER_READ=5]="ZIP_ER_READ",T[T.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",T[T.ZIP_ER_CRC=7]="ZIP_ER_CRC",T[T.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",T[T.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",T[T.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",T[T.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",T[T.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",T[T.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",T[T.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",T[T.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",T[T.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",T[T.ZIP_ER_EOF=17]="ZIP_ER_EOF",T[T.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",T[T.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",T[T.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",T[T.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",T[T.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",T[T.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",T[T.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",T[T.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",T[T.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",T[T.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",T[T.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",T[T.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",T[T.ZIP_ER_TELL=30]="ZIP_ER_TELL",T[T.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",T))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var TR=null;function u9(){return TR===null&&(TR=l9((0,c9.default)())),TR}async function on(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var b9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>NR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Bn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function NR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(NS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} `),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} `),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Qs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var bs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` `),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function I9(r,{prefix:e}){return{stdout:p9(t=>r.stdout.write(`${t} `),r.stdout.isTTY?e:null),stderr:p9(t=>r.stderr.write(`${t} -`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function QB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} +`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function bB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} `),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} -`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new Qs(t.stdin),stdout:new Qs(t.stdout),stderr:new Qs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;Se.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let x=new Vn.PassThrough;return process.nextTick(()=>{x.write(`${r[S]} -`),x.end()}),x});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let x=v.resolve(t.cwd,K.toPortablePath(r[S]));m(x==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(x,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new Qs(i),stdout:new Qs(n),stderr:new Qs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,QB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function bB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function P9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=bB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=bB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await P9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=bB(p);for(let m=0;m"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,QB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function b9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,QB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new Qs(o.stdin),stdout:new Qs(o.stdout),stderr:new Qs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return Q9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(b9(r,e,QB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new bs(t.stdin),stdout:new bs(t.stdout),stderr:new bs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;Se.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]} +`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=NR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function Q9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,bB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new bs(o.stdin),stdout:new bs(o.stdout),stderr:new bs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return b9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(Q9(r,e,bB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} `)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended -`)})),0}return await b9(r,e,t)}async function bDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} -`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await bDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function x9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>x9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return x9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(PB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} +`)})),0}return await Q9(r,e,t)}async function QDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} +`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await QDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function P9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} `,end:r=>`::endgroup:: `}:RB.default.TRAVIS?{start:r=>`travis_fold:start:${r} `,end:r=>`travis_fold:end:${r} `}:RB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${r} -`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,bRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,QRe=r=>r,FB=QRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=bRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends Pi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} +`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,QRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,bRe=r=>r,FB=bRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=QRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} `),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})} `);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>uV&&(this.progressFrame=(this.progressFrame+1)%cV.length,this.progressTime=t);let i=cV[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${_e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Fr="3.8.1";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Fr="3.8.2";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Fr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Fr!==null?`yarn/${Fr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,PRe=(0,dV.default)(vRe);async function xRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await PRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources +`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function TC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Fr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Nt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Fr!==null?`yarn/${Fr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Gr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Go(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources `);let p=await mV(r),d;p!==null?(c.write(`Using ${p.packageManager} for bootstrap. Reason: ${p.reason} `),d=p.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn -`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),x=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn +`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await TC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn `),c.write(` `),delete B.NODE_ENV;let W=await so("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` -`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof x>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await x();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await on()})}async function NB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await on()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await on(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await on(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=Te.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,vr.SAFE_TIME,vr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lTe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Qc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:Qc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} +`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let T=qo(null,"npm"),ce=zt(T,O),he=zt(T,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Ne.dot,{baseFs:g})).scripts.has(e)},{libzip:await on()})}async function TB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await TC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await TC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await NB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Ne.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await on()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await TB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function NB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await NB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Gr(t),process.execPath,[i]):$A(r,Gr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await NB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await TC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oNe,extractArchiveTo:()=>ANe,makeArchiveFromDirectory:()=>sNe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),N0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sNe(r,{baseFs:e=new Zt,prefixPath:t=Ne.root,compressionLevel:i,inMemory:n=!1}={}){let s=await on(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Ne.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oNe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new N0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await on(),level:e.compressionLevel})}async function*aNe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ANe(r,e,{stripComponents:t=0,prefixPath:i=Ne.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aNe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,vr.SAFE_TIME,vr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lNe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:bc(t.value[0],t.value[1]),children:n}};return e(r)}function lNe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} `);return}let s=(0,mZ.asTree)(EZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Pf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${Pf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DT=ve(J("fs"));var cNe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cNe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uNe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kT(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore *.flock *.tmp -`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:x}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,xe=ne;if(!te)if(this.check)he=await g(xe);else{let De=await u(xe);if(De.isValid)he=De.hash;else return p()}return[te,xe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,x=await on(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:x,readOnly:!0}),H=new Sg(()=>JP(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new Qo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends Pi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} +`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Ne.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Nt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kT(t)!==kT(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let T=`${a}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let T=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(T=>T())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,T=O?i:n;if(T&&T(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await on(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kT(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uNe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} `)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],x=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1=a&&x+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,bZ=/\S/,QZ=new iA;QZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!bZ.test(r)&&!bZ.test(e)};QZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var x=a[S],F=x.lines||x.value.replace(/\n$/,"").split(` -`);if(x.lines=F,x.added||x.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(x.added?"+":"-")+te}))),x.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,rn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Qw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Qw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends Pi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var Qh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Te.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${tn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=rn(e,t),this.anchoredDescriptor=zt(this.locator,`${Ur.protocol}${this.relativeCwd}`),this.anchoredLocator=rn(this.locator,`${Ur.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Ur.protocol&&v.normalize(n)===this.relativeCwd||i===Ur.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Ur.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var N$=6,XMe=1,ZMe=/ *, */g,T$=/\/$/,_Me=32,$Me=(0,zN.promisify)(VN.default.gzip),e1e=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>tn(`${XMe}`,r),Ge=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ge(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. +`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1=a&&P+1>=l)return o(gNe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fNe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(TT(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function TT(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=hNe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` +`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RT(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,rn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(bw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var bh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Ne.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${tn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=rn(e,t),this.anchoredDescriptor=zt(this.locator,`${Ur.protocol}${this.relativeCwd}`),this.anchoredLocator=rn(this.locator,`${Ur.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Ur.protocol&&v.normalize(n)===this.relativeCwd||i===Ur.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Ur.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var T$=6,XMe=1,ZMe=/ *, */g,N$=/\/$/,_Me=32,$Me=(0,zT.promisify)(VT.default.gzip),e1e=(0,zT.promisify)(VT.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JT={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>tn(`${XMe}`,r),Ye=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ye(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. ${[g,h,p].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,x=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:x,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new Qh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Tt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(T$,"")!==e.replace(T$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Pi.progressViaTitle(),async W=>{let Z=async O=>{let N=await df(async()=>await s.resolve(O,a),xe=>`${Ct(this.configuration,O)}: ${xe}`);if(!aC(O,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,N)})`);g.set(N.locatorHash,N);let ce=this.configuration.normalizePackage(N);for(let[xe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(xe,se)}let he=ro([...ce.dependencies.values()].map(xe=>te(xe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let N=h.get(O.locatorHash);if(typeof N<"u")return N;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,N)=>{let ce=await te(N);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let N=this.resolutionAliases.get(O.descriptorHash);if(typeof N<"u")return ne(O,this.storedDescriptors.get(N));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let N=p.get(O.descriptorHash);if(typeof N<"u")return N;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let N=O.anchoredDescriptor;y.push(te(N))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let x=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:x,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of x)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=Pi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let N=O.makeInstaller(c),ce=N.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&N.attachCustomData(he),[O,N]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(N,a)]}))),m=[];for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(typeof N>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(N.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],xe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(N);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(N,c)&&(await ge.installPackage(N,ce,{holdFetchResult:xe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(N.locatorHash,Ae),!Yo(N)&&Re.length>0&&p.set(N.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(N,c));if(!Re)throw new rt(12,`${Ct(this.configuration,N)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(N,ce,{holdFetchResult:xe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(N.locatorHash,Re),h.set(N.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(N.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(N)!==null,he=async(xe,De)=>{let Re=h.get(N.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,N)}) should have been registered`);let se=[];for(let Ae of N.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,N)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===xe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(N,se)};if(ce)for(let[xe,De]of u)xe.supportsPackage(N,c)&&await he(xe,De);else{let xe=g.get(N.locatorHash);if(!xe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(xe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(xe,De)}}for(let[O,N]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let xe=u.get(he);if(!xe)throw new Error("Assertion failed: The installer should have been registered");await xe.attachExternalDependents(ce,N)}let B=new Map;for(let O of u.values()){let N=await O.finalizeInstall();for(let ce of(te=N==null?void 0:N.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(N==null?void 0:N.customData)<"u"&&B.set(O.getCustomDataKey(),N.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),x=new Set(p.keys());for(let O of x)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let N=q.get(O.locatorHash);if(typeof N<"u")return N;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"");for(let xe of ce.dependencies.values()){let De=this.storedResolutions.get(xe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,xe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return N=he.digest("hex"),q.set(O.locatorHash,N),N},X=(O,N)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of N)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let N=new Set([O.locatorHash]);for(let ce of N){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let xe of he.dependencies.values()){let De=this.storedResolutions.get(xe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,xe)}) should have been registered`);if(De!==O.locatorHash&&x.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&x.has(se.anchoredLocator.locatorHash))return!1;N.add(se.anchoredLocator.locatorHash)}N.add(De)}}return!0};for(;x.size>0;){let O=x.size,N=[];for(let ce of x){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let xe=p.get(he.locatorHash);if(!xe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,xe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),x.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=xe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of xe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Go(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Nt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(N$,"")!==e.replace(N$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let T=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,T))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,T)})`);g.set(T.locatorHash,T);let ce=this.configuration.normalizePackage(T);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let T=h.get(O.locatorHash);if(typeof T<"u")return T;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,T)=>{let ce=await te(T);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let T=this.resolutionAliases.get(O.descriptorHash);if(typeof T<"u")return ne(O,this.storedDescriptors.get(T));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let T=p.get(O.descriptorHash);if(typeof T<"u")return T;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let T=O.anchoredDescriptor;y.push(te(T))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(Qn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Go(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let T=O.makeInstaller(c),ce=T.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&T.attachCustomData(he),[O,T]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(T,a)]}))),m=[];for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(typeof T>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(T.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(T);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(T,c)&&(await ge.installPackage(T,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(T.locatorHash,Ae),!Go(T)&&Re.length>0&&p.set(T.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(T,c));if(!Re)throw new rt(12,`${Ct(this.configuration,T)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(T,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(T.locatorHash,Re),h.set(T.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(T.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(T)!==null,he=async(Pe,De)=>{let Re=h.get(T.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,T)}) should have been registered`);let se=[];for(let Ae of T.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,T)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(T,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(T,c)&&await he(Pe,De);else{let Pe=g.get(T.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,T]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,T)}let B=new Map;for(let O of u.values()){let T=await O.finalizeInstall();for(let ce of(te=T==null?void 0:T.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(T==null?void 0:T.customData)<"u"&&B.set(O.getCustomDataKey(),T.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let T=q.get(O.locatorHash);if(typeof T<"u")return T;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return T=he.digest("hex"),q.set(O.locatorHash,T),T},X=(O,T)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of T)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let T=new Set([O.locatorHash]);for(let ce of T){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;T.add(se.anchoredLocator.locatorHash)}T.add(De)}}return!0};for(;P.size>0;){let O=P.size,T=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) `;switch(Ae){case 0:ge+=`# Script name: ${ye} `;break;case 1:ge+=`# Script code: ${ye} -`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{x.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===x.size){let ce=Array.from(x).map(he=>{let xe=this.storedPackages.get(he);if(!xe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,xe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(Qc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>bw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>bw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>Sn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let Y=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(Y,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await TB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,Y,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});T.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(T),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:T$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>Sn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} -`+Qa(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=tn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=tn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} -`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},x=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],xe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){x(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&bc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(bn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),x(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),xe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(bc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=tn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...xe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),x(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=en(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${tn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let xe=A.dependencies.get(ce.identHash);if(typeof xe<"u"){let De=S(xe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of N){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Ur.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Ur.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:N.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Tt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements ",Ke.CODE)} for details, where ${_e(r.configuration,"",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){bc(this.values,e).add(t)}reportEnumerator(e,t){bc(this.enumerators,e).add(tn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,x]of Object.entries(m.values))x.length>0&&y.set(S,x.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[x,F]of y)S.metrics[x]=F.shift(),F.length===0&&y.delete(x);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,x]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+x}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),M$=ve(cc());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,x;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Qt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(x=Ee.telemetry)==null||x.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZN.realpathSync)(process.cwd()),X=(0,ZN.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Tm={};ct(Tm,{BaseCommand:()=>Pe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wb,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var Pe=class extends Qe{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VT()),_ie=()=>new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",hn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ge.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VT());var CO={};ct(CO,{dedupeUtils:()=>Fb,default:()=>y4e,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>xb,Target:()=>Hm,WorkspaceModifier:()=>Nse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Tse,fetchDescriptorFrom:()=>GL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Nse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Nse||{}),xb=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(xb||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Pqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Tse(r,{project:e}){let t=r.match(Pqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=P.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),P.makeDescriptor(r,P.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return P.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await xqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await GL(P.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=P.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return P.makeDescriptor(p.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${P.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${P.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${P.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${P.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${P.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${P.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${P.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:P.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await GL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${P.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function GL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=P.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=P.parseRange(P.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let x=typeof s=="string"?s:o.range;S=Tse(x,{project:t})+S}return P.makeDescriptor(d,P.makeRange({protocol:m,source:y,params:B,selector:S}))}async function xqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let x=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):P.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,P.makeDescriptor(P.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!x)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,x,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(x,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:x,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:x,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${P.prettyDescriptor(t,x)} can't be resolved to a satisfying range`):S.reportError(27,`${P.prettyDescriptor(t,x)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:x}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>P.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[x].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[x].set(F.identHash,F),this.optional&&(x==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:x==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,x,F,c]):m.push([n,x,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=Qe.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${P.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends Pe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${P.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} -`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:P.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${P.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=Qe.Usage({description:"get the path to a binary script",details:` +`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JT))e.push(...o);let t=(0,X0.default)(this,e),i=WT.default.serialize(t),n=tn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WT.default.deserialize(o),this.installStateChecksum=tn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JT.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JT.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} +`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],T=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let Y=te.dependenciesMeta.get(Nt(Re));if(typeof Y<"u"){let fe=Y.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ge=new Set,ie;T.push(()=>{ge=jk(Re,Z.locatorHash),oe=Yk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var Y;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ge.add(re.identHash),ie.set(fe.identHash,(Y=A.get(fe.identHash))!=null?Y:oe.locatorHash)}oe.dependencies=new Map(Qn(oe.dependencies,([fe,re])=>Nt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let Y=c.get(ye.locatorHash);typeof Y=="number"&&Y>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let Y=te.dependencies.get(Re.identHash);if(typeof Y>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(Y.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Nt(re)).push(oe.locatorHash)}for(let re of Ge)oe.dependencies.delete(re)}})}for(let Re of[...T,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=tn(...[...Ae.dependencies.values()].map(Y=>{let fe=Y.range!=="missing:"?t.get(Y.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,Y)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ge=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ge];p.delete(se.descriptorHash);for(let Y of ie){let fe=i.get(Y);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,T]of ne){let ce=en(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${tn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:T});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of T){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Ur.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Ur.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:T.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Gk(W.subject),W=>Nt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements ",Ke.CODE)} for details, where ${_e(r.configuration,"",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of Qn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){Qc(this.values,e).add(t)}reportEnumerator(e,t){Qc(this.enumerators,e).add(tn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XT=J("child_process"),M$=ve(cc());var ZT=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XT.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XT.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!bt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZT.realpathSync)(process.cwd()),X=(0,ZT.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Nm={};ct(Nm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wQ,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends be{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AGe=ve(zr());As();var lGe=ve(VN()),_ie=()=>new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AGe],["typanion",hn],["yup",lGe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ye.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VN());var CO={};ct(CO,{dedupeUtils:()=>FQ,default:()=>yWe,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>PQ,Target:()=>Hm,WorkspaceModifier:()=>Tse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Nse,fetchDescriptorFrom:()=>YL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Ym,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Tse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Tse||{}),PQ=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(PQ||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Nse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await YL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function Ym(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await YL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function YL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Nse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Ym(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` +`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ye.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Gt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} +`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Gt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=be.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends Pe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=Qe.Usage({description:"remove the shared cache files",details:` + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends xe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=be.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cb()),YL=J("util"),fu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} -`),c.exitCode();YL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,YL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} -`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=Qe.Usage({description:"read a configuration settings",details:` + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cQ()),GL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} +`),c.exitCode();GL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,GL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} +`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=be.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var $oe=ve(XL()),eae=ve(cb()),tae=ve(_oe()),ZL=J("util"),hu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=Qe.Usage({description:"change a configuration settings",details:` + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var $oe=ve(XL()),eae=ve(cQ()),tae=ve(_oe()),ZL=J("util"),hu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=be.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends Pe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=Qe.Usage({description:"unset a configuration setting",details:` + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends xe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=be.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends Pe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=Qe.Usage({description:"display the current configuration",details:` + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=be.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});As();var Fb={};ct(Fb,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Bn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),NWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(P.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=NWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=Pi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:x,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${P.prettyDescriptor(s,x)} can be deduped from ${P.prettyLocator(s,F)} to ${P.prettyLocator(s,H)}`),n.reportJson({descriptor:P.stringifyDescriptor(x),currentResolution:P.stringifyLocator(F),updatedResolution:P.stringifyLocator(H)}),r.storedResolutions.set(x.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends Pe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Xi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=Qe.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends Pe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends Pe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends Pe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!P.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends Pe{async execute(){this.context.stdout.write(`${Fr||""} -`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends Pe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=Qe.Usage({description:"execute a shell script",details:` + `,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>F4e,dedupe:()=>$L});var fae=ve(Bn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),F4e=new Set(Object.values(qm)),T4e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=T4e[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Xi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} +`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Fr||""} +`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ye.find(t,this.context.cwd);return await i.restoreInstallState(),await Gt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends Pe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>P.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>P.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=P.prettyLocator(t,u),m=P.prettyIdent(t,c.requested),y=P.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,x=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${x}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=Qe.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await L4e(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.Usage({description:"explain a set of peer requirements",details:` A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. @@ -483,9 +483,9 @@ Try running the command again with the package name prefixed: ${$.pretty(t,"yarn When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(x=>{let F=e.storedPackages.get(x);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=P.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let x=h.every(({peerDependency:F})=>Qt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${P.prettyLocator(i,a)} provides ${P.prettyLocator(i,g)} with version ${P.prettyReference(i,(S=g.version)!=null?S:"")}, which ${x?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${P.prettyLocator(i,a)} doesn't provide ${P.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:x,peerDependency:F}of me.sortMap(h,H=>P.stringifyLocator(H.pkg))){let q=(g!==null?Qt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:P.stringifyLocator(x),prettyLocator:P.prettyLocator(i,x),prettyRange:P.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:x})=>x.length)),y=Math.max(...d.map(({prettyRange:x})=>x.length));for(let{stringifiedLocator:x,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-x.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${P.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends Pe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Fr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(Qt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Qt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Qt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=Qe.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function OWe(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>Qt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function L4e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Fr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await O4e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=be.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function O4e(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>bt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: ${e}`)});let n=(p=r.projectCwd)!=null?p:r.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(r.startingCwd,o),l=v.relative(n,o);i.reportInfo(0,`Saving the new release in ${$.pretty(r,a,"magenta")}`),await M.removePromise(v.dirname(o)),await M.mkdirPromise(v.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ee.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&me.isTaggedYarnVersion(e)?e:await Wm(r,"stable")}`;let u={};c.exportTo(u);let g=v.join(n,ot.fileName),h=`${JSON.stringify(u,null,c.indent)} -`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var MWe=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
    (?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Fr)?Fr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends Pe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[NI(r)]}var M4e=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
    (?:.(?!##))+)/gs;async function K4e(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Fr)?Fr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(M4e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await K4e(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} @@ -493,11 +493,11 @@ ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berr `):this.context.stdout.write(`${s} ${l} -`)}else{let i={children:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=Qe.Usage({description:"explain an error code",details:` +`)}else{let i={children:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=be.Usage({description:"explain an error code",details:` When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Bn()),wu=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),P.isVirtualLocator(Z)&&X.push(P.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=P.parseLocator(Z),ne=Cae.default.makeRe(P.stringifyIdent(A)),ue=P.isVirtualLocator(A),te=ue?P.devirtualizeLocator(A):A;return O=>{let N=P.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=P.isVirtualLocator(O),he=ce?P.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>P.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!P.isVirtualLocator(F))continue;let H=P.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},x=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=P.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[P.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of x)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,N;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(N=i.storedPackages.get(ue))!=null?N:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=Qe.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Nb=ve(cc());As();var Bu=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!Nb.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await GWe(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ge.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],Qe.Default],Bu.usage=Qe.Usage({description:"install the project dependencies",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Bn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let T=x.stringifyIdent(O);if(!ne.test(T))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,T]of Object.entries(ne))typeof T>"u"||(te[O]={label:O,value:T})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,T;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(T=i.storedPackages.get(ue))!=null?T:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=be.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var TQ=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!TQ.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await Y4e(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ye.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],be.Default],Bu.usage=be.Usage({description:"install the project dependencies",details:` This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). @@ -523,18 +523,18 @@ ${l} - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var UWe="|||||||",HWe=">>>>>>>",jWe="=======",mae="<<<<<<<";async function GWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,Qa(l),{automaticNewlines:!0}),!0}function YWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===jWe){i=!1;break}else if(i||s.startsWith(UWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var U4e="|||||||",H4e=">>>>>>>",j4e="=======",mae="<<<<<<<";async function Y4e(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=G4e(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function G4e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===j4e){i=!1;break}else if(i||s.startsWith(U4e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(H4e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` `),e[1].join(` -`)]}var bu=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=P.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};bu.paths=[["link"]],bu.usage=Qe.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Qu=class extends Pe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Qu.paths=[["node"]],Qu.usage=Qe.Usage({description:"run node with the hook already setup",details:` +`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ye.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var bae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=Qe.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],Pu=class extends Pe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};Pu.paths=[["set","version","from","sources"]],Pu.usage=Qe.Usage({description:"build Yarn from master",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Qae=J("os");var Eae=J("os");var q4e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(q4e,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=be.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var J4e=/^[0-9]+$/;function Iae(r){return J4e.test(r)?`pull/${r}/head`:r}var W4e=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],z4e=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],V4e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(V4e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await X4e(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function zm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await pr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${$.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var xu=class extends Pe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=P.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=P.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Fr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Fr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};xu.paths=[["plugin","import"]],xu.usage=Qe.Usage({category:"Plugin-related commands",description:"download a plugin",details:` +`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(z4e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(W4e(r,i),{configuration:e,context:r.context,target:i}))}async function X4e(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ye.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Fr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Fr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: @@ -544,23 +544,23 @@ ${l} - Local plugins can be referenced by their path on the disk. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends Pe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,bae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=P.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=P.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=Qe.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var Z4e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ye.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends Pe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=P.parseIdent(o);if(!t.plugins.has(o))throw new we(`${P.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=Qe.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(Z4e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=Qe.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=be.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends Pe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(P.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=Qe.Usage({description:"rebuild the project's native packages",details:` + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Bn());As();var Nu=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=P.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let x of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(x),c=!0,m=!0;for(let x of a){let F=B.manifest.getForScope(x),H=[...F.values()].map(q=>P.stringifyIdent(q));for(let q of(0,nO.default)(H,P.stringifyIdent(y))){let{identHash:_}=P.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[x].delete(_),u.push([B,x,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=Qe.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Bn());As();var Tu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Tu.paths=[["remove"]],Tu.usage=be.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -570,7 +570,7 @@ ${l} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Qae=J("util"),_h=class extends Pe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,Qae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends Pe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${P.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=Qe.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ye.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Nu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ye.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Gt.hasPackageScript(o,this.scriptName,{project:i}))return await Gt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Gt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Gt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Gt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Nu.paths=[["run"]],Nu.usage=be.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -580,48 +580,48 @@ ${l} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends Pe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=P.parseDescriptor(this.descriptor,!0),a=P.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=Qe.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Bn()),Ou=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(P.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(P.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=Qe.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Bn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ye.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Bn());As();var ml=class extends Pe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>P.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(P.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=P.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,x=P.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>P.stringifyIdent(X));for(let X of(0,sO.default)(_,P.stringifyIdent(x))){let W=P.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=P.makeDescriptor(W,x.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:x,rejections:F}]of g){let H=x.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${P.prettyDescriptor(t,S)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Bn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Ym(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range -${_}`):B.reportError(27,`${P.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) +${_}`):B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) -${_}`)}else H.length>1&&!o&&B.reportError(27,`${P.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:x}]of g){let F,H=x.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>P.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${P.prettyWorkspace(t,B)} \u276F ${S}?`,choices:x.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=Qe.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends Pe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=P.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=Qe.Usage({description:"display the reason why a package is needed",details:` +${_}`)}else H.length>1&&!o&&B.reportError(27,`${x.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:P}]of g){let F,H=P.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${x.prettyWorkspace(t,B)} \u276F ${S}?`,choices:P.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` +`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$4e(i,s,{configuration:t,peers:this.peers}):_4e(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>P.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=P.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=P.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>P.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=P.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let x of h.dependencies.values()){if(!i&&h.peerDependencies.has(x.identHash))continue;let F=r.storedResolutions.get(x.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,x)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E4e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>Tb,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C4e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>Lb,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(PB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function p4e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(p4e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Tb=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(Tb||{});function ep(r){return r?d4e.some(e=>!!r.match(e)):!1}function Vm(r){r=Lb(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Tb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(Tb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function Lb(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return P.makeLocator(r,Lb(r.reference))}function fO(r,{configuration:e}){let t=Lb(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=Qt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function C4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var Ob=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:P.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}))}};var Mb=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[P.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[Ob],resolvers:[Mb]};var E4e=m4e;var Ku=class extends Pe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>P.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?P.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=Qe.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends Pe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[P.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>EWe,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>NQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>CWe,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Yae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Yae.URL(r)}catch{return}}function pWe(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Gae(r){return jae(r)||jae(pWe(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var dWe=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],NQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(NQ||{});function ep(r){return r?dWe.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(NQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(NQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Gae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,LQ(r.reference))}function fO(r,{configuration:e}){let t=LQ(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=bt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function CWe({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var OQ=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Gt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var MQ=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var mWe={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[OQ],resolvers:[MQ]};var EWe=mWe;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=be.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${l.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=Qe.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=be.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var I4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,Pu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,bu,Ou,Qu,ku,xu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},y4e=I4e;var wO={};ct(wO,{default:()=>B4e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yO}var rAe=new Map([[P.makeIdent(null,"fsevents").identHash,$ae],[P.makeIdent(null,"resolve").identHash,eAe],[P.makeIdent(null,"typescript").identHash,tAe]]),w4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(P.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=P.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:P.makeDescriptor(r,P.makeRange({protocol:"patch:",source:P.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},B4e=w4e;var BO={};ct(BO,{default:()=>Q4e});var tp=class extends Pe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=P.parseDescriptor(this.command),n;i.scope?n=P.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=P.makeIdent(i.name.substring(1),"create"):n=P.makeIdent(null,`create-${i.name}`);let s=P.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends Pe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} -`),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let x=typeof S=="string"?S:S.path,F=K.isAbsolute(x)?x:K.resolve(K.fromPortablePath(s),x);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var IWe={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Tu,_h,Nu,ml,Mu,Uu]},yWe=IWe;var wO={};ct(wO,{default:()=>BWe});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("m409OwVy8xl9Wz0aWLh5C+Rku0TnEAOUUhQ/9+e/2xNhHl63hoddw+s91FRj6zag6vW4MQY+qFXdgWBlxR3KtnlgCulKXrSTz7DFgsKPlnjjvrPfnVFSm37PhHADc/LAJ3x7Bi78Y7UW3fQUbD8b50X9jaQ80AMJo2VFl85CtqGmExRKMEx10T7JmdsVtqcUvAbQY3MJqoxwFiK2e+IU6pjhoLkU+Wj7zdVlQvLAI14qgoc8xZsrIC254zYHUS6Vi6BN130uOk/gy3YQKR2VDrN/Nu29+3IS2iaK/ZDwNvLlklqd6nXEE5IdxqYMkkMmLJep2t+f144+WjhLKC5NukZ3udKtBSoAKSQUxNld2cfMhNA8j9CDl9Or+OaiAS5VQ3H+ARxHMmU3N7OG/yU/gn4dchhvSR2kVhnRuOEtYV6Si6ravaugcJJ5SJ0ywQkPQ/9rocqeC4VyqlBdoU9GvQsD+ZDuwH5WbLasANlkldI0DcwHOLn3gUynsmgMYa0YTj3B2P3/elN7txBGBDjnfOl/29IkgA6Ek8Yb/sWOCpRTTOhbdetyGt2AhgCIMwBBTohKDppxiHVTVaO7AQ0gUiFZVnIKebPyZhvyznm3fq8BzqfSxJ+CQ4qLxcZ+77IS351V/1KrnXocex0y6wVs4QJkxOY9qS8kfkb7Fp6ZAc1aZmgGZwGmqaR2qJLIqBvNOv+fqVapHrUg571FF3VCFUar+r0GrTkXNV9+Xo88G62LXBIs7nU3AUjrjeacqDOizrmIIonqsTrn0stcuBcJDJJosxxAdwNaTTcxu6zqfifWb+wTu4Az2plz4Wl5enhALQ4kE+kjRcq+VK3A/NJ7kOH8vuW3F5KU6g6pGrLxWNlvDys0Qj0UayRgrF5m55FS1aypW014PeT/bc0dBkRqmiL8sPQY+/q22+83A0RUMnLKYx496A+XK3RIM4zhDf1Th6mJG8t5bbvdTgSYpKcWbhcoZs1E88MdIqTJmmm5L1bewYtYLt1s5BCLsbTk2tyf/iogn0BgXaHgmAxd6s/VspNCKKOK/pUoqrkYFPaK2mI9m3sCz+cnf2eYr4mFLRsiUsl79HaOsZ9fW6X79j6JiICIJAeH2EJvy7jved/vnZJUWph0KwyE7NO+qjwbkjeHr+M0bgRC/UCgthk1wOqjYvpV/tZPlSXM56dSwN6lJj3fU/uzQb8vrWD98wLmd3bkfm/zt4/yJ757/VhP4FUj/THzz8Cw68HfxqgtrHbzDV8fsm++dRjDs8wKlj/JR30FvPPQX/Fv71C+QpAe9/sepC/7bD/+TH9tK9QKCvgOZl7PJSDNA2DTJ3ZCQMy89NBHjtLup5Bev1zDOLM82MrFLpZ2LTAoIiC/3WAOHfxC7DeKh1yHZtLtve8RQwBTMBXRQEPPUh6jx4q54V3/3yJfM66MNu99IO1hJG5vlrJx2WaepqX5CuN/G8ajiK3G3yTKd8tm/7UVFm2KMCOih/Q/Lki345v40l3GZfVuHXEZIGDm9GWgs+BZ3t8JY8haRJmRoBD3somexND8brTJTEUPSzhanMKy1COI8VNmjc7KLg255ur7ezqEbjooxDhxGX+SxWhkm3IFSfXbKwHR4OL1w1BydEG4Zgz4q4glxmBbtgybg0HAJDH++brRjJsIMhLPmjcRg4V9pDpvp8UF4GgpsLu43sV8GdWvN8SEAkUYF/wLOqQJyYc0jUEgAxHxJT9NVCTgocxY3p4jKUAYIWwI1VWRfWD6fikEeeH1MAIkGnx0TZDNMOayb/tgpJA8u6q+xUkWkEzpjr37TVUfu5t2jt6hnyln+12uyWzGICeTJAOWiwPzAGPXFyQOWRN74AvqEwO4GchaIhBRImHLJmr9NsU43/HvATunlCWglpCpmnclokgBJSdBcRYPsfIiAQvCLQFaNhPPLfSrsWi43gyF6x3CrH9Dj1arFqkM6v8XPCXrRy0XEzBXQTRk3iEZSW3dXJGW5hEon2Uqn9aU0v1CfloWmCsEZoQpvrAUJi5igQUftLYQX3/F8TOgnwW9XmQqLpxQMqpykVMgzknHJiBUj1KCg6qJNqK/tFTJ/R/7CJRYz3OrAQUqaHfP1svdr3huX+/0Oo6oixugurI1b0S6cKxI7vdto1ipRyECBiWLfSsP9XqdSIg68/ItIaB0RwxgMg/7G+wLIreZhpONPOTmoZfTZzYnJOryKStfOpbt8cHm/8Kyob1yMxv9cI7OpAbkv5LMOaMlVsH0JH/ZvCKeoMSFsO9CB58R1Y6IWwl92VzTSb0jqeeJBRUe+1s4Lht/VoLWaMyV3xBLfO04v/KLN3iF3MVKB8gtt1sI2MMi50/l2x5W4yotRONUbN+zqD5uuvS/ysYOp1GuuuNKcs+tc77DHSsVUmLdcZZiCmQpNvB2sX6jgw8jF34sZZ8+73hunrVEk1T05pVT6DcnrPkbil9YoVRLsYxCkHB7FPw5159rS0fQgu4lu3L1jHDhta9JjSBQdzjcgyZDSNlTJywfY471wMca3W8aXbbu9ry5BjI7hw9/3Bncp8NPAh2QoqerqZ2kQF8MPwRBQYikKPCs3p/lxUll3/4wu+/JpL882ntXPr0Oc+KI12EmKOu0xezCmowv/X6QrzWRo1VWrnKKWQDw3RY8duV0MSLbzWiSWIRIq30qMPTX7R79vJyO+YA80GmoNuf5DLV0m5wzxJBpdT2TU7o8FMZtH9Ll2j6FGDwuWh+9SEYj7rB/4HZMsrX0oadYzQ7bcB/LFJI7vrwAZbYWPyjyVuaunWizGCj+Y0hGm3tLEjautJTWduIqd2hEZ1QTQHjJoxDWondapkGpGmfBb4aGhYzsTq8klwYEsI8oRyIjFsR36aqFKePt+v7WygN2xle51UmGHlmwZlJeqXKAxmupXuJlyEglt7QOqMdQXN8jABR1aSFD/um9mEDkEf6lQbYUUBDkuAUBVj1NYUlR1VtdRvos90iCzJHjT2SyROiEMDB+yVBirUgIfZSVErukkFgQErNo6OJhW9jfNgPoE0BDg4Nc49IiejvDRaO3Ta829PYFjURZVS6kEt9BkUvQ+J1IEmUkD40lpufU5We8bZ+p3/1JOfV+xt/tvlPORPfwKbFi8vPuXj3oKx7aZ6QaDM90FyqKBu5hIT9jLwFO9AMtz1Zeer0NYisQizDQ9X2kPLIZHs+uXALdBOGaZ5TrxRTsyXlFBvRTvF7eA2SbLqL1SjXqg8PT/waNd1nNLF11rsCX9/ndZTYI9r5JtQgecsA2+CyC2zzd+l6t9LzXH6aAWKlj0swRYzfTzuhmelibjRm31e/1X61FmLF62tJGGbY3qmkPvFephv1hxTZhTiItw3dw3kCql8tmc/9BxK1qXkXLc435rVfyH9KVThWpw6VGVBbFNcBszwopnhMqnlxb3PNvjeEhCOwBcB+734K5O5p/QZwnpMK5dOEkUr15q9icqLh/KrEHYBVyM/VHRfAHE7SN1p9PFQFZV+yabDOdNxdu/ln2qIK5ZOdzcvUp7gVU546R0f29ddlgc/ORP47i8MLrUTSIVahkaveoqoSN55RffAWb0Lhi1UMwfJD5Zr+SCcsOtrPCvOxzlX5ExXvKMtfxZ3n8fkmjAqYW2rRvVWtmVAOjXQOuyG8M5He/MXX1pOXGkrCO/9NN42IpEGTjpim/CJoBCvFi0nu0EsDLis7tz8eqEga6HLZ/ruKfTj78BSsDyhDKZLN1vpelcDDxTKVsmLHg8saQIY3dK+BpP7KAbHxnUSUdtdC3eD2g78l/k/CCkdwdrJtp5x/0aI7xPQfR43RsnBzbR3+srALNBzMmtQa82YDz689/XgWCuNqN6rDJJ8sPtlS5tNHJaH9IrLI8kcjlU9cZ5DcPUfCTQw8viAgqgDhmfQaims+zpyVcAOCE17bkQwuPNEbVbuO1K3ilRgDAwoVNWkEzkFhmNp4I5lPl7Xs7tv6kG3hj+FGkvIlblqcRrVyb4ApxAQAcLFIVTsPqUds1sNpFjwCAFjCK0Eyjl2k60cynBihvvYCffOAHU9vfRWVY6Gaa5/MEKwBo5/c9eHrv153RozaY1alEOZ9qlocWMn5S7Qlcfzq5BOr0OahzLJkpwgUAZkBnFwvPNSxGaeehsRs/ZjUCACeHC+HYfZ+HZDdqj/9O1uEb5+zf3ZNNvG1uD01lAACkFwTy/85Nnz3N+O1a6Ma8ozE/OyNwVMdkR8ngUGpxPXSA2yO5+0oOtjP0vcAZnv4Tj8vbQ9O3AADZjyiLJ0I25kmdnki45zTJCuFTeyb7dB/4eGdZJgAwQcHNC8F5uAbhifxpvyOVQ0wBxUxKhbYAQAmrmxkOVjfRHqqxr5ZZlwBAi6skR+KegSD2fKrTD20IiUfH7aEptgAAncx8owrDsGYy7dWIqccaz2oEAErCCNHYDfgDGv9oEMy8C5v0cnhpmlcBQDeLDc34HP8KWzNtLf806M9sesuGlPbSzGuaZgsAOMcmvswwsDrJ9kNl5Vmd6Y0AgBwqJGM3HR2z+PlAd8DI2KW3n1tv35RwFG97aCoDACCR9IAa0ybxZ6dwA67IjNV2E9Y5x/4W7m16mOolgzuzl2Q/QPT03/Gp6e2h6VsAgMQsx9OY9hgHo4gbEwdorLRn0di2HzMzAYAT95JwAT73274ywc3jlsM9nMakpggXAKgBnR4kPCg0Jva3TPtKY9u+GZcAwMpGtOfVu6b7/OJC/2Hzy2H8kXIRLgBQRmM6/pYRPmlM5Mu0jzS25ZuxCQCMuC1h0xW/+16pNaHd/Gl4f1PBCgDWWaxsUHklNN2vzzXCPu++v8I+lsaNSgVD03EBAI/ZtSjDfVhVxn2wqlmNAMCgbw1yhYr2HGpdJbeSTSly9ea4JOBnUyMYT9L38dXwBR5NvRUYnb4p+e+Fw/ckmLEdHCRpdA0McCUduiI88YZdlmDqYKGpC/BEfGpzGU6FjrAkx9WAI7/+6elQaYP+TFR53lPalj/tesHeR2+60JzP4p9TcM99g8hQ9622vTpFX4Ba5q3iJm8BMWeSxgE409lKKfbQv+Lzaa83WyTbNxHvnZ6CU5m5MRUtEqiRviWj7ajkFtYS9Fu5+4xlFgTp+xhvznABysNNL50X9NI3g5zTu3KSMNpfeCtP3vWqfv5C0eP6H/v0hc8eXU9zJKcAGWGAd9f6Kn7CZjfCwYFChJTmWn/fGP6OMEQ1ktcZjzpB/e5kI5c9MdMxmQPpsfA+r1BXo+aYvBROGfs22z6h/nuzOq4BUtWgzu2R94qRphCDSzMi07QNXUslo9eiiEz8O9iLAYpMOo5fvy7fY5cXmBEZ0b87ccXHZZDxfhxYE2Y9BnJNpBvXnPDvq4NISJHDIwz66Lpjvfs9joM/YuW7KUHs4G3Mk4BXen9/PxKxg15+z733Nj6Ele+c+9Agk3QYcir3bprV9F1JokYoxJDLIDsPP0E7nfVRKonAmERl16T9+CfGCOD1OBmBjG3wS45lYdpgBYRM7Fj6etMybonUtiFSvLFwMMqT8JQP92iY3gkx4VddR+j43Vjf0832G2Ln4Z+2HmvPJyH8/Gln2uTj11lAdu9wPnm9ymniYAev85kDIgEQLWjbZk4CRAT7kaV/WYu8/ws57JRGlJNZyUtCrFE0H/iYKtLnZox8w3PmNwmDA4H/llN9yARPxyvamCr5npubvSoyNxekFVlicjxLSEF5PTln5f+IzI36dZm1yXrRod3iDSRnLnj77Hvvppzt97L/BQrYigo+rn6QHG5MyC9j4gK0fHUcTd0Pd0AAQIZ9QFVOS8er1kW/asbFv6613Hnde0uo1Ism4/y7hTT6x1ju+7hfblGptV+7p4B8Va7sbVcCTkiYpyd6v+XdA936kwXAo8lyT1VOblKH3uwIYIa32HJn8nwgwkBkT3Pm1nSC86ZhDsosWQ6xBniUsPFKYroCvg4az2wZnQ0ZXSkMCEklYNiiG0qXfyDj4K3e9FfMoVo+xFWoRltN0EU9fjuXk8EkaxdJdbGP8znNfa6Lf5zP/nuHaW0lNOelBzpC/NXZhuLHaWxiyaWdRPz0up+mN/qhHDlr/WMQivK2P3JoSVgsOZhYcHE9cAT9PhZQWDnvtPhWtlU6BpFr9sx5pzd1vAfvRUCUYLf30hAkvIU2WYhAVC3XvD/rChDSGwpBCEqct2OAAqkWFrVI3Kq0q47IPD+n1x3k5ZzVgB/ccA22TUtc71MOXtIuPabpKPu9NvX2IwlJ8cv2celjuIuGUfii3eil/YgCm4eElVvBsOwirEkQfumG0FzmoTj6NeEQOQfrPblbGL3240vDak+qTN6TeXv3OV24wwPVsLOiJTF5SJMxGW1APx4LAqkpVKvTkka8fM3IK+6PX4zmjjKKZBF3B3MKCvC4D32NznujIrwqnCv2PiC9jTHuypEzmy277bVq1CRzBfq6yj4Mdlg59wyMIS9xW5GA1Z6yAEcWHfDnc1MzdQ4XYp0tuMzzhDqt+WUzJYlYS5vf/LJtTTDa4G/HUr+isFOjtyzEwjV6f+zqvV7leM/Qh6R7sOzAEH3y3zbLCaOKe78oAC2NL6GMusCxcbVZjjYK2XJg54VQkxw9pqvaM3fwDt6ndFayZQ12pakDkhVoAHfl+MxUZgDAvUlDkxVe95hpj3udoQkARCsny+ewhnkCC94s7ZT0eYMt3ZU0pY3gRDZqD3XeJnznSja7wd5m6nWStQ6CK2YGACj2JEVS5vjItDuYfHst0AQAnLO1I8u3sNC5Ar2sT3L7xpDdvKcS4STqVnsmqpjfdCvZuk7FVAC+W01oiQjXnryFv7XTlWxNr313mnpZspYhM4XMAMAsdyW1XFLYayrtKvdYoAkAXGmZsjzE8uQDJIiKLctG1v6+Nz9vC9gHL5Dn+q7w/11GhcCPQ+S8Ob8KzQCAhVw11BPqanfm+FyrZEltl+BKZmG+DsI5W6OS/fRY/m/g+I6iR73XHhgTMKyQ99wM3ezATGXUWG4Ls/ekEHlcAg7oNtPd5Q/vjkpVFfWFdns5P0h7XIhihGY+TEZCjeeC6+4RK4a2jLOXmZYpKaDKiCq8+kWCYItWfo2dogfHeHQaEElWwIOXs480LESyaI2jaURf8rpjlwmE3HDZP/E4QQs6LpnzSxweCxyGCStIyNw5FYKE5v/uuYC03IEc7QCljJTp5VxZoQTB+ug4Na3j5rcwwCkx9+b60gzp0ah59eCbvbxkArHMCgypOUMt8mij7C9TB5GiqMHOLLO/h6Yz+2AnEUEizTqW3cVjRSMWFY5+6YDo8A/sEV41a9eH8s9DuMfcce8nqDw60uQ2SGhnHp3W6nw663BgYVqjAbeVQ62jl9aliwATiSIOfrbDv7yjedTLDYaXzittzO2asgvCqwG7NgGWzhRhTnQHZePXwDoh9kG+qEML7x8fB0Z1jrxU3BDxFThDILgSIuwaR9AgT+VjcDwcy21Sj2ReU+BIrqi78XJFqQ7skIGcOMlWfBLubUL/2rXgXbYUEEoMgtw7TKUH7HcPMvUvcgTx7YH7txHDv49V5adCwGYxAwAjP1eQ8FlBL758t2OyU4WyNluUVq+XCQBQhtnp0mZW8Qed/xd3l/YO39PrBCsasV7Qx+rzPs0nEOakHsObmPHcIkNnHX78Oq3APT0gGCyjCh4A7E/k1DMnO5HfE8SMHovb9xVueHFbDIf6pUlbhKP4Y2gTqvzHWkH93GC/f+W0HqnrVcZBaRK7FxaavUlcndmNLWBd73vnj2djr3t9DY4poQIBhf/vzn2Tr5iXznm4ewOJQ780vhzlFLOJjPD3hwFCAbitlDcx3PTWT3b72aOpEjuTtrakJmSRoyZ6u9Pa4fUenZWeasDRShwSSmS1o6yTbBTbn8v9rTPr4MKsZq7IhQfGt7WCBrEurgIbN3yWyVfO7Ois/FeI+byZhb6uf6KxqHuIXltLy5Y6gZ9xfr4hlYVEh1V3PlzMgHu1XMACLliKysua1a3w9ad58P7zY9UTACVFhGpjC5J1q9wIYhczAwA2VpwRTkMp7VBN1fYerLBIEwDIQM5l9y5BbuejBADuojmqkskdwMYoabpqRESXzx2AwhtbBg+2X1bSXVpE/06tcgDKiBAYSk33xH+1d+L+I6Sbz3iZEeE5fcoBKENCbNxw3aHzZMne/Y/32w4ilx8RshejDvx4NZ4RjNdzmQEAXmA6Z4SZKooea6K2t7CGBZoAQIun55x3v8s6UmwSAGgQFc1q9y7d69jygZeODz+fi/6/TZmLUQd+DKJDOQoms8wAgLFFxeuvmCLJuGPzU4surD8U9tAWrWlPab7r/DJRjf7iDy98Gctc+Ivry0fJaKi4gQipFbG1L9RgG9/dbwq6FLa77/5ASn+JkxpgOoICYHh5HcepTfgCOO2G07SASfD5jVvGyUtiyXTG5qAvgKjm11isa1aFDGH/yLiFSW4RMuQQlP2CblggAwDZIxBJDtRKcAde9JhyBs04V/5HOxpSmw5Mi59Q4Uq0u4+y7smX4OpNL+F8s+GJ1DxDaPaAYFynCr+hosMARd8tOYG6umhwrv8JBOaENxu49yVsDND1XdH15ftvcjSnHmcoj47Hi/rVnA/2Ey7suRmidKhmuR/Eboy8taFtqEj9o+cxso7i0YWks3NP6sIrQBRSvYjSYUnokwUyVEL50C0GiZNtMBmBTUswZpmAwY1niUPvL28q2rpernZTAICv1cFMHIv7oDRYB3FUnr+WLzwsz67ljpRqtdTKD6LhVt9j/jD1B56VjmBA8FivGV+n4Z9pWPMRDyzBkLjKYPBgHsT+SBuYhH7hsC2Gkbw4SvrPGJhyQwuEhHRgEqMPtNC8Fz1BYWIMPs/lgmt1iNNijwke3SpWp6GOKR51xZcp+0F6cJ+trEhc/zVO+e5eWXbWDgCOjo5xLQbWzIksVgqMpEuOqEx0jksx//TluAKHLW6AEHbvn47ZJ4qXEUMuDDho6vN8+TKNdmDV6ObcbQ95XQal0SDBL0jQueHL2Y3R98qq3SG6kCF3j4MbzAgQAbceWCnIHsJUYC78c+Oad1wAPP7RrtXLbbcTWlPu+x1csWuKA+yQreb1RvXul1yGCTbJRvrtQlm1gOiEWPAFC7JZMbZPkDglADHcz3RhhfTOrdB1NkIjrEjZwCOZ4fl61rXrEpASY6UtAm87w82hEgkyKGm5c58yoBU5Y2a/+9ELpzy5KrTPj0wN76VXBOz7J+HIyu9EqzDmHedU0314lcCQoJjPwkW+PfbCWmwrD2rDEhrQBAxJ8+6HRhd7yABtGewmMsglsWC4nMWXDRKNI353ZoMdOh75PsxFnE8k8MODVJIPVNF5IRQ3y/DGTLt5t6G/MlPztfnnwqvJI0wrmirOiFHKmkSJFBJSnUT8k6eAkjGgQnJGNsRAus9w6Xira93bJ42pGm179lPK0bVlM4IhooAX936enot2bZOIMK7UI6KlA9xHzvgdbzXw7sX8QeLzPDJDszwBIItlaokP6oOW0yGtjHixKCdXgCFzF/he8/HVKHVETPsLpmbsMgzPOx54dtWVjP4eZ9CKyssORvOWHXZX/trnIem4dih/lvHXDaMrSgtXKD78bA1cXlhVtmor27inlrDYL1IiBj9PYRT6ZUQbBxUH5J+TjnCEjS4Uo/t0v7zPWOLJaD7uLRPjN1U8eF5+LoMW9PBthjshmjQXGr4/AodvRqEM0rz7afDZZnLuv37VTQrb+m7NXAUfG8eSqsdbtxmwg+CvacwAwJGzC3/FFP+vcYmKU4ug7I9MuxpV82zBU5QJAIh3vrWfrqu36gH+Gna1U5vf+B4F1gjAtRm0Fm/3do5efQk3FCMS9wGiDgPiOYbqSXk9T/B1o9v4c09koLrcdY441HQFwFYdx/o3yw5TmrEJPxINd94JiPqACBesXHHAMERQkii6CAFKEll4fn3zn4s714/dzF+S0xvaA4Ddsqs2N5e4UYUPuoS7xtLzFqkEZ6AhigxDwtgfkKw4wLbnWqV2HnL7W4BEYx29icY37apfA+bDpB6YeC7tNKtDjKvmRjP+FcGHI4yeOK76GcH5eysw1kP9l69w73X3T8Llr6O8bku2q0AfdtbnSuL7mwl/eZ68PZQASedVbz9feOcDeONG98HJR8nMxWO3b4+LxzKY5A49Y0ASCf16rJPugSk++u/A5AGw/Cxa36OKOGjPKOjjrKZ2bfLervihU1+BYDJvwGE3jL7ce2s/Au/cRwocT8Z/viS9dZin6H8uEn13CPHvgk6nF6SbXQ3I10BTnI9nWhBY9zGiX7koQxqH6tqNSZ+PWxVqAO7GlYN1WxdWO6+Cs5cKrBuRsjaohnqm+ln+WH3H+j9U4BanBkN7RVHXbvBGs454J4kwGk44mxuvHpCPBvkw8lj0J5f1om7S0SOHib1c4azFlNOblHAuuPvqV+zmmnjor72YD5uCrhHjyLDJvfn8kCu5Eja7ytUY0DJFUNlovKzR0fCQwWQ26PWN8QtYJebwgAM+cCxfYatgCGLsRfMAdV5uGVJfdxKcwDUY2F8XtS/fokeZAXt136Vg5BpSiBaF8jhecxrx43v3pmKqHHQZVEyPkIqBMhFSGA6dEZuZdZ5AFHpSsh4813SlRkGC5kacHjdYXEbLOsnv5NfzJ/SNjVBwGkw0K0P2MvrymtOHa0cfzkib7r2eAzuWFf4rr+AfT3U0tT++SUxlcg8yYZmQCZdl2umMQkFtiyxygbP3baOzZOIyoKpx3z5lc1JPhGvQXe/CuMKaYoI58u33rb539oU0r5YBb0UpzMyAN0QDy8GnOZpd5aIniPljur4O7R1iU/YmJfHueCRWxHmhsWzRtV2zzU4EfeWuRq7ciH/50B4I9/S0hr6m8djvcRdP0xcHXvCb0KoNVNE2Jc5/rf94W/7Quo0SPNmEg/LNBFIiPY92PyWQOVuUEvAywHtS8Y2K1qZhE0RfAs99yBN2XOHlTNQLj2PGXgcPnhYjcnUlrAtq27yR+ZrEJcqjwBkngMEZl+8gu3ZFYQdHONJZckKaDKBejHNsRhiHoQF1C/LPFQteegi7WJW63tzF1JOcIJaIj4pbVensEJJgRehgh1HCTmLdWsC0625ew/SytV2WUZ7CcF8blprwU9eLpRFGWgYgxI7gxotmbx7LGJoKnhwtLhptHb0nd9F+pcRlt6aFMcMddCeViyJyDAEELCH2314Yx2+wxOGCfe+WyzSvYzEFiK2YU77zwVPFMNBt5En5U59gNn6c+iLhxx5/Nn9PeQr0Y7pG6MOfW7E48EFXEj62Xu18d/gd3hHnRCHPHgZvDHwdTdgPYxFCAPHSISK6IDCGpiuSC+FXOWHB8W9LuYWjbIExEDs6QcfmItUvizOJXMMHanPQKA1InIlY3nv23/O2YSodVKR7Ai/TzQXjjhVA4ktNdpFyy2t9MshZEzBPcyhIbLDcAO/UR0GSU9NP6bd68gNlw++ZucnfOQv4xP+6tQMegd+PUi/K0gKzLfhY8T3MAMCZ5C3melfrzYTHTaGJxV4fhHeeXexje5Xs5dBMAOCYz8gr2BPZ3A6Yq0Rv1wzbbvUDAEcDKQzlIXBf8MUNTEVxpoBl+ssCjOgJdquzuYLx2vfVdVfc1bKkmoOqCktK6gRkN8x2ALgKC+eAqjnbO0CY+E4TUM6KTNIGEQ3f5j7Nq4NpA1hnsIdgPw/9O9VAAii5fzi6x8QfCtPv7cFLZrPt0ivdfxOeUxckgCISxTZbqhut393FPQAtZWI7osch22ifVG13dRhgUn7NYgYAWs5M+ysbLFu8PnlUdnB65LjDy3WEjws0AQCCZvZUmwVknae3xXpXYT8AwIKolagspCX7FAhOGscQlfo3A+EqBmMsU3vngqhWOXanuSYfxPZcIP9gx1dmM3BZWvj3cUj/cgIO5F8zzQAAyzmUv7KfY4szHZ/C7rZFtM+Xm39j8AvKNHPwP+Oi0bbK8Vwn+kerKwJhQ+KHj7Y4hpW7CqJrPBUsNw52c4K1BdG917lud+PvbndP2CdU/5t0ePAToBNcCEVJKiim//Vj6rfScQhitZd1mLv7mHq21wv0pKBtjlt9wvgm80i5bPVJ8GhhG97qk28Zylhoqy9YLxDB8LzTF/H2pSakdNtZZwbzW2Hf6ff4/Z1d+/dyni9lTSeFdXhqBGwaMwCQqJac5/ZXRtjyVpUny85uu9hideuZnwkAmHf+HBncX7OGcu+9Hw4zcByM1nf2j4777A8qS7Ks+3UNYzscR9dSF3513rE67calE+br1depxQBAWx2PeBklO/Pu9svqTfxU8T78nanq9qbUa5VTEtRSQP6SDucaaINwFL/RPvydKdDeRAQcGCiMuKT30e3bzh3aSHsNLJZ0hoDNzUnyDMdN2zrudZ6UGaUCaE9VwREAemRkc1IAU1V5czaADCwq0nQhvoWO3eqd+fJZe5IXpKc/K7PluLiewI+tdFt4f0o7R5M9XqFzO+nfy4EZtGNV4VLxriJmAKBbftOlJ25UHb5khbx9yrj3Xhue63mc6xRNACAni0YqbXQ2jLzvB2g6lXPC4Op2QQAQNHenmnBQcGYWVUDZ9kgrAGXEtBXA9n6MFYRzBY4VJFm51yF1yWQgkK5EKQh7RrkMM1Bg3GFxDJgsZ58F5hTftwWmkxVdCToR7XTsrplG2fm16YX45MTKbB6mIEgA5fcPR2sduzXDm1/J9ui+XV58ujJbhykNEkBBiYKndQhXPCJPHx7g08pgmhghiH9yM08b+WPJqoVUz2IGAKqb4fqscjZY3uHdnpl25Ge5x9op0gQAsBCNaqOCJLlyaZ7GpdAgAOhAMEqUBamSfQSkLY3dEET9CyGQYpCG8KT3AlEtd7zRTvSde7wtReuYnRVsCusLObKAzfHCXDKzIE+yzDUSrnbx7VEIbMG0RHI0GEfFI575S+Jx/trmDC9Cq2PEV/wDxqKG4Fcu7m9yPT+zM9n4xzcl+/kTB5oX1a48OOBTxhEEtYuJAMsvTmbAVIe8andjJn7mqrUyvFcdnBU3T2aw68eawbk30gI8EuNXCe2WlLup+Y6UKVniTbQjSvCHYG7HwVJSiZjPR5WCKS3SsmPWptj6/kM1nDf1OvdpJT3BBTCmO8rIAhhmdMrVBSXdcx3/xsMgfIP0WdeXeB4bUXURFKGst0kf22/8dsVHM9K7OlTyHKhYFm5essPqhwmDKM/uAmWJEYhcBnScCqPKsQE0uX7GCVzPiioF/a63jF6vbLoptEERaHz4RK+ATU0uK7CalIoKTIbEdBhCcvmXWPUFIJDusC+CZFqC42E6nTuUgWGMgtw39Nofe3T5pTz5CuHk/AFn7Me1hCYGPElR97goH8knhZ/XUldd0giuiOuCDUrpJGrKZ+me7m0IVxheudyK2EaNgDeNUMzpOf0CUeKCXgJfY789NzVnZRB8pw2pUCTnwhb//au95hMAmdBJKIFzlL3mUCRZbn6haLsXDYxZJHfDljWMgZWeIK6e7IgiJxXzprJvP1knTcSJcmKuyFDUx//D4A1uIfHwcLZHKRaM54Kxf0dsp31Ps9Hrf0FwlzU4LLd99tzI+qfLY/kSYdFMwlYqQw8OmAorGCQWI4sRmmf3xC4C1dmR+im0RUA2NgsPKRaHTVs6R39W+9TnVJfsk7/ZsysGrg3UkcRwcZG/vDNw4Zf1rRgIrqopa1911gudHd/V8Yl1AICpOfjyxRTTjKPFeEiJV/vI4To1VglWew6J/kkTs2I4P+UadmjLu+qDDq2+GD6EFqW2PEeW1TC2xrPIfWWoY73FsTmTAHfCsSszgdXmDhxIS7T2pMtzC/JZwSazDslVCLTYl1rMcQgrTF8nLZcR4r4kHiYKE9edCWtiMWoyUZwvE9qmrGsDho14h5LNQxKGK0Le9Mm7BkxsJCxo3fCeYAj3VhfcKp4CNOEDoAbpt4XQIBo85H3cIOjTiB8b/G+rd3TR0+He3J+qowUhHfSt3uR9/bfpy6pa6jbYgIFdOuU9HagETUR1B/wdtGXKx7UxQB6gvt1hiiYOZ/LgAgJFIi93Q8tA4c0QnVxdEGxRxYZRfF+jAg7SAVzng8Dw7KeAWxOv0LX5XMsBJCXBEsm93+sBkw/RIECH+TQnlmgPeE8Ulypvda8MhugtNphidRJLiQRoUpJIpMrUD/9KYNVgArtbrf231diRtgS7N72iad0SGAcd6eNz8efBi3zU1flHAJFr7hLrs22JpQu7O/JkPft/EXszj0XIaUiGk8Qk/NFCXuneurd2R5Wl1mVyeJ/UHvW2br/ScJXZguESi+uTpSWA19UatocuXGCIcHorhXn3YBv1ubLdUP3cTCwBUsQEOH1n7gQ2jHTSk73/OWGpwbpHcgQMqQ8dqwUH68Kpvbs1JLCy3IHIQcJCQ+9RNqxrAFpZDN318CJE2R6Ke708Ihku7AFBckifIMq/E77IMzxnqLgIEb1T6GrM/XSSd0tpLSsIIJHWSI1KxZi8vMWESFLcVWAApTyXGbiW/39lkCidqAB5Wn65D1yDlKVvp8a03FEyU5i2m8FRsVzO/jAXaSMKiUTYpCnDUOLcSszPvPtFDr7RjyOpLhkCpf5E5Q09nkSmlbjN9dXvPwj1rnw+iRZNPLMWudkriuBmbWl3U/tRwvRQYrDVrIcWOxV+TZWX2y7vDNOlnTxBZDYJKCFt5cnvgyIX5hKhDcIQ3XhAY1CQVXG4rbSed0EESVyyqJxGAtyc9kl39pDdFB81i3xDKo6buXxFY2W30ycNyF3H+4I3t18l3uPc/NoZ9a3Bf706q+8F32iXT9d9i4WuPlrDw1EIY5/W7s3/HM0lNwawu7elx9IOTj+5h+VW+Dq9S+o+Zr5x2Wlzmr3e3Imm7HXGvOBvg7uLi8aJcgLWl721X0ovBZvpmJHEoPVeMo1Rg0z19WYVWn/kTEt5T8INo/Ohkrp50BoB6fF0tuX7oskymQ15H/weT64daUtGvjeXR/ViomLAFYegFPtP/o/VbnPyiFtM6Y9G4s492U3qkM93SHc1iA3cp9ARmJUEmh6vVjeh7+LeyCF6gABdFwVwvRApKwG4CILJGapmOt9yditYx9jp+fPFQCwIaOoDia6RWZSI7o7+XCX4m10F+4fs/7/sr8P6rt/g8P82t3jzx1yMm4f/96v8w/ttGJ39AW5/C4fzNwivPjkb+h2M2Ijew2PQR/vRkIHzDwhlaEVuuxCx/mRqtBoPNyZNaDKzwkp7SJBqffcb/3eW8AVrY5nraRL/nvIOXNkYyA7jTWdyQJCOWV8/YwNuTcwVpGhedT8Er8OJaxQufdM8FXMuXn02zyx3ZKeep6KK1x2tyrFO5jUn18CN27RmbuBOV38jN22Sbuj8pk22qnLwaHf2+GqMDZznJZt8256zifJo9B7fJQHmTXq/oBcsNAb0eHhvo0CMdZ1jQDOSoN0LOWuUlYggPahtxKhsugjY2bi8MKZ08FQNy5mhLKADLTzg0xWAI1EptpfWzJAC8WyOkJpEg8z0w1R407df+c2buyVRgaBFB0RN9jIdj03bzCZnQLiLgnrRVQ896La4QOiQBBcZmCM9IugVhZBiiDMvP2DkNie0HMOe9sIgMJmT1xgUvzK6d4gnTeNp+nqc3pP/BiJIU/o6tC0CawsZ8jRP1fr9Iggy7DCebcobhhGKKuaWVGQiRdeG0Dk5SqNxHiuvNyItdiGuO12eZk4rXW7iPmWeqgzj1XQOln2om5/1UEBjXZBL64/ZvTq6oml72nGnNQG/S5o6LluDaI9rOqa+i6q/4Y4TtA2mW1l83xJxm/F1meH9P1mYgA87VPhqVIGq8odRnvkiB91VZn+9jBgxk3Pn6iqHGXcFwMRDQWdv2UTDaR7hAFsXu716fPCK36PhkivusNf77NdIdSAV9szBqxNBx8ll9wStrW5IfeoeHB9vHO6YsTh65J6WFv95yFXCkWzPOaaIhinmmqIytfBWrs+rs+W9DcFLcr+dRXDAFQ8Auiz97hkkXghHQT3+NDTdIk5Rep+EXvDxcK30NB7cqT/Opj1zry5JCneHsh4Wx3+dibh3CP/9aXP8n9FjehJTlqmNvOZ1xed2g+PskqVZmMQ80q6uTi+3glX+GvPtZsLxbo/+5p5SGn02gwMxAclVASaJPJceIA2QHm/sx7yPgP+QfvGOwNNtwt6HHIDiuSPYheBjOn1guiuRhgvEcRGV5eMCYxlhs+92mwxBwIXHviOUNArAlgnuxIkxIEwmm7jnvcD7jaBQk2kpoz6CvAM47jUOAVy8hdBbiWaIeURBR01icp0G7D2lCHSursE+0k6tsTZxk4bn2rk0xCHDg+6A4Zly6JyEFv4sPDMadsQiZ5BrYaPobfTSCOSfQQrJ2u5SbJTyrgu+h3hcBUIvcKuAaZmFjWV1JxRLgrUNhM9FxPIUiXHDj9yWYq5VJNFtExiYNVjPutsAYMSrx7RL/up5vSFSEuDtI7CwJrHZ6OiIST9bQ1oZexItREzQBLtkYysQFT8eiQ5EyWkUbmMYeKo3J0wOG6g4kD4gzDvKVyPquy0bMITYPtrxDpE/7GD3pTvwZkyYAXG8d/0ew5BRNXq/cX+Q5Nbh8SOuZp5Y4xQnBpu8FNn8YnsOA/6O5blSfIcAr8uJWY7UZPUkPEVJ+pS6kHKrw7yc3dJhqIaYbxyBfQWxB+sJJeA665lmUMWDZF+T9pbMemEnMq27vKzNBgEoKwWIuCaM3xZLZBf/am9U8MIxsV510K3CKzKOi0F4YxXkh/yxuvhF/Q6Tf2k7T4OhljxQPAbrAvr39F9pXIGdfcd74S98OtneFED2n1bpLIEyXJkxBssQHEUbUSxsJKqWAo8Y+4k28WiZTavY3dVp7KPpsAVwYTArebSMcbmaD50rZcyOaQCBSZDdh7IMa+xnS9d/PXBfHpwvqdsXGLb+tY4jkCNkJ2ZkAxDT7//vXjRKjIcAV6H7z+g1kldYHN+jteubGAvGIAgQPpnPflvZbjhZ7jQkhc4EvjuXFGQ/Cg84pKgdggDf3kMRidUuWbQa4yrA1aSDKUDwnReGVfWcQyxtQZ/3ryfwnVGwgV98K/W1cq9Spjgla4l6Hz//yRqztz+7880W5SnmVZdYIDw1x+vVriF0s7pMUMXw18BD1j/IL8ZbcaNK2oUBoK1ZJMkixTZTEgbo36/8ZCHBhPbSlYemEhUaCDiRcUDmxn6R2hoT5kA/uv3ZUHYKXQFxzfckDT4s6C1+jnb6ZuK+k0wX0VUpXh76mmAVG20FwQD+oc25+rR+qFN6yBKxmPyShM1TCEnXf6VL+Rf6BlqN7PQ7Y9YBpG2mlVvpfwbhSLdq7rOLhBQPz7GMBqfV0YuOWMMRUQVwv04yHatHJhFJziU6qiB9QOZUi48AsNsBOqJqxDfPyKnP9dmg+bmZP3H4b78R63icxjduvmU5GvjYeAW/5PJsk3kmY71SudPh9Dxh3yeEdp6w74slQw/kSOPIwL63A0snRdkJSiLlQr4inyykVD8dPp8iuAvn+zS/p77eZ8Twtvb+PpkLJOs5KdmqhBbwj7oBgIJVeTEhzuiYdCI5OFe2aXbrzmEwrfCWXjOrmK2Y9Y5eu00ddbf8Jg0Ku10EM0TIbXQXqfIEU2nXsr/FDtO/2wJX/OE/AICiQE70s2wwuXC7LjC7Nnwcsbd2tHH6zv3JJ7mbroAtoqxGJ8COwILBe3NgaR67A7Lu/20HAFBVy4UL//ahmsuFm96pqfN2GsuhdvnyeEAPqIWmEwo5pVeZTiium2YeAMAeMEjE3RZQFDPTB7Tg7OEA13LDhEA7CdRIAM35RvUEU/F39MIqyfQPtNJxPab+/1joDsB+wV92Q2INXFVQNaYSKXV1qgvv5/Gb3/1zZSpivZu43c9TbQOoBpM7ufmepL+jF7YX5lM5BZ+sWD85Keo4tV/+qthTnO/qhL0yF8zvv2bcWuCva+L2SPV9H/G1gq3j1LcNYK/NgidzF9clROgdZHiH/ZrvdlcrPtNK6zekQbkKwluogM3qBgDcvga0obSul3ya8bk0teldloOayQpb7LH9yK0Y2mJP8eVJXBwkXXER7RExYaO74NkTuJLadX+LZNO/GYPc/vAfAOjFAe3RTxDgKNymDLyM4sECn+hvVMgcVIwCHBfA1lT9OB+iEt/V7fzTN96nTcVZe0tXuDmqXSpycHgTsFldAMDZySL20ch/V4qpdx9G6tfPOr0af9aFsxU8z96W9WyR8vmRFT6jzZlTQ8OZRsGZxpICAIAJ4C2ywm9DdL/ibTifcBlatKJ0ANm9XAcAUEK4sYVczCu9JBS56T5DWtPElz7YNhXWRZgra+hh9CYOLbTFwVjVyci8uF3Y0e628ivXCgKBnJtLWWznyatlSm2b7S9e3Pn/tWuVQx28bN+OVJMD0E7t+UhTJcj11vrd2pvbl/yefio+e17d6oU98dOeaa1i/dIKN1kNctNVVpTJ0atiwGZzAwAr12v6kTJMKTcxfCAnhrKknJZe1pWd3mAuxUtW2NIU4cfxFZM4r1xT8h0ncdJBeWYhAgARlrWYYNVTMNFIC8p50Z+2gK2Bl/0DAFoHsCH04yT/LMApVJcesVC5oIYD9Ze0eJLslTnS9J6jjzLnIl4tm8Ar4wLf9R0h8Kb0SaqJLBlssYNu5h2nypvQ2JG40jgcVw66H6hmDn01GkaDkRECvhZvfs3Nq8kSl81d1Rokg2shGMyh4TUWcdXGIhXcGoSCJx8ywa17egU13y19d5qdpi35/NYhEAzGQjXEgd1IA1dHGLgqssBF59VzIwnsQBAYpLf60sxv2JLML4wQMPRPg81UNxLAdRAA1n1COHiub6ZbYYGR/bY/5Ob7aT31VO8rJOSOoQTYdqXLqrFp1oW0gMUEklDFUD4DrGhAsBhmTQEA5ApwdrXHTngGuHChHXvML7jkvQn4hVUyTp0KuLaX5QEAxzH8JqjgtqpzvtXZ9uZJzPaq+dXtlN4lVGyfre2wgiaByrDWWaRmEdRikzoVHWHoMXwmFDDpMatmb3EvPH+W3tMe+IozXDUr3HI10hX4odmJu9Qopn5r5zUQ02WAq2vN370d7Rm/3GNPK9xSNUxIVXMZPOHo9c3rdQMAeihUwGsNQiw3M0Z27s3drauApxYKkMQCWQTqOQlc8rfKqFqIAMDI6LrABJuaDb/29wm7N/t312uNBl03/wEAl1FPb/fjtcVcQvM4YLFviG9al13B8oz+NlFcR62a4lFBeodb771JWdoJyhHjMNX53HrANLOHXVPIVex6QiEvNOY9rlGNVjsAkDKFhoJvaK7RRG43EtoFdSsNCVDXzAMAnAPnGBw6b1krma2QQbHDFVUyt5SNspUsRA2osZKtXoBiefnEurxl5eP6cFKcJi04n6IFR+pgqN6RI4tZeaGfIfuxBr8yRdIvcJwKjA2gKkd5cm/1SSPvs6AfyU9Lz+IHjNQJsWdh5yhbSfGzAXypxj5rofQLME5Fxwaw52HzKH1K3rWp19ZsZlLJExirHmJ+VWLovcNkR7yvGwCY6PxLg9zcKSQjs5tejZdMLZRCz1dUUke1kmLmJGqV6WshAgADoYsbJljV3OW5v0/IKv2bazCtH/4DAFoZuEk/cQFfh+YQIKAVT9JMFQ6D3rOMWtVL+QLfovdhb7w636CU3Rs9FLi2Q3cJ+RksvU8P6Q/Ze9xTXNG9sJcVb+DHIDokr4LJbBsAgMmn2hm3Ta+loGrvP26/lqJZIqpyulsz0GopzMSA9Cw8f1dwIbMoQ6zAhW3DWcTCJbQXxQQAwLStThV8KfOtBJXGx4lvsqUrOxmAWdnm5uwAALsFj1hIKZY0Lp2ZABpTEyeGxqJJIgLBFhydEgfe9Ovb5Rwwp0CN/GsplqmU+qikryrPYDBB1hNM4O1mBPV3dp6K17327TK8rD2W68HLeUWb7LosWWXYZYoMAYCbIEgcplCbeKHOTnzqVjNMs5ycJIl8YuL5ySV8/G2hqlxcgRLgqPYCCVQMRc8cRAAAAM6U+7yJiAIJU3v5f9PZNLE+XfwPAAyAOUj92UplVbIlN7chW9J4G7L1DbpNsqTUujFQ0ydYGLhgeV3Mhy2i/VdN9z7IO9n9y/uv9JekVbpBAHP53wuu8UcSVfZGndTMYtQk6ShdE0xwDOFgRHIt23u7DoJiaf/3rOfjUVcJxWNlOoZ5PlfeDoVjdaf19g3iZrd74L6AfoVdFjG6lgXVdqWmTsDZQWJmIWYhwzvva0k+gDLPVdJt/CAIA481NFemoQsF0yh26V1nrR4myxzYvcYYPMUzsCkM4WmmTwEASZsKjqL5vPIZOFa5ndfsmuvWTFEFBLfeynVjWh4AMEivOktkvdJwbp7BjapkzARwc41scwW4I6PB6gLS3kVRUQUnXTiP4oM7QxrrwVVO61bvj8HLsD3BF7q/4Cvacl+MLxgnM5I21a0X2EVRbQqY73Wzoi11fR2zrnWdHU2nAzbNEAAYa/DjkWpnTS84cDNxyGr8/O7UulFJn7wwePfuRoeCukwCPoRTLkKYc4U3uotpMtH2Aixn/3iDYMkw7OY/ADASut3rfxYJnHp62zaXnF6Y8ZLTi6PLSekJUjyB705UrkBpO0lfx4sqTHVdEoIKs4uBEoWmdre7wTSarurGghUl3flROwAQVqEBdssXsSgBs2wX8SgS+dZKUhW1klVaeQAAy8OragUFETc1gK2YcQqQ4GzPAnq5ISVAYw4qNS7c//y6E0sUPiLPaE4R31hvaKQPhkoNOVIVleUpuOFPM537NHGhcS6rNYAKDOVJ0FNOWVklvTX4M4LfkYEifULsT9coEzx6qfTV6MLuNwcU51JbA9jfrjctTTlgDWce1DSfWHsDBfuSPlWJW++cI1Z1GDgAkI4/vtQONzeERDC77Fq/bGKhzu0lFsVGqpRJlIV07CLQM/7/Rnfh2reKMnJ76dRs+je9IxvqMF3NfwBgQHSu6X+2UtT09JxtbnN6y4y3Ob11dHtSegbUXMAdACf6VUvoUolt+o00PqF+4tC8RfGF3vQHenfOftbk80UmHB8fHwO7jleBia6xH+/JtZBvHr7/i8eFCx97FXv8q0h7AOZE8ngxMkPWZgErZJpxBIjAwiHmBbCQvDGtmA6LAalv7LBfnJv89/XnlBgvkC0WR19DUkKpOHzS4uk67RwIj2toH2GamxqxzE1RmcDD6hZ9qPKUZoMLrlFZ79eUwlQGdkik1dN3S7AV/v4gTRf8nlQke+qhbYZJsMoGumGujD3Nb5Eb1UHqQ7sxrDktiY7UrkD2cYq26hYu5s2XSq69oSOd2nUYWrcBv360cr0H3H1qYq8TgVv3JylyM7+RmnT0dNoPyF80Macezt2H7mVGOHGtbFLOfkhuhgfFGbiRc7q3uzkSZfPiCQOvA93bQi3h38PdWgiA8iI7JyJP/diySOLEvp3MqMUIFEEmh2ypF2i6qAEk83VTTf0AdeWlKv65I0V6Pp1zX/4pgKGtssB8sE0xAH/S48KiTlMliV3a9P0rgM8/oLSy+teODNBfWbX6yDdbnPmMyOGYblDnsPSX5yPYZwNodD0X3/7TzExSxUcA8fPLM5e8CQQYn/nSozjJh361DW2hzmcIihKwrAq41KuUXR62TKz52K8xiAXe+TGLlM61awfAT47GPG+haHN7Tqc7TXzTFT+XkOINqAuV31xjgkuXhza357am1icXfkSo+oLcXXjfZ9Dp0zz19WCi6f/zotvB37Fq/dnWJowz+O9csr1717XaH4azHvxzhrsn4PX58gWSuUnyD+y8RLVxEOlrUdf9YwIa43HKiptRCk3CoGwJarXq4ZQJqgKjaxUuiqQoHCutrwDtUBh/gIlEqSWyqBzFdaW+BomnRHTjZUQ40NThF83SR0G66aLOquh/3M3F/ruYffjG1jTpo6gFykc25wugAgI3PcsBr4ndDhPR9gBjJ2OJNQhBgGeTfWDahCR9jQwdjwiILV+W4Z3c/Ln47edTcpFCbVfxgEYHaAMwshpVEhcTA3hvGTCj3nkwxjRB5qF4K1pJDqMfzj8sGXLz/gLbbaPrmlmpTZgR1u2r1I0WKrFBiKqUZZON3V3FRrjJ4gZKoZisgc6snxiAMRiYCMNthi0cCX19Ugb1GX3sacnfvQOTK33cep09AKDPxViCjQb6ylgMxeKtRjU2wTGxT5E5SuGgsKoyUWocFLs0MUq5mh9og6AV0rmTgzLbKEDNLsUCHJQ1ZgBqix1MjUbXoAObmmprgOHA7zwx2SJBVmGTrXZTC2BzZ4ylYuy99qV0ddbhyBotGfI0pBgbWa8aesarCs921ZHMdNX+ESmJ0Un2jp7wkImpNahHP60yuhCoAPJPFdJ1QUhs8BIESPVswF7Mz584Yn35TnmhpLLGuFdQ9q+GnmMVCZO8qYAUtuILKOwU/YlgTrYTtgVTZekAvsXCvemEQ3wDu2HJoIp+XpUolUsVn4FcOwoEx+77aotguQ2w5218z1jw1Xl7j+e9MuOkgpswsEh6JnMDsSpEDs7OFhBFp+Qs6X3iVvTqG+Ae5oNooTOnzVvnlp3GLKKroBBymlb0osba+R4s193nqLiPYBUP4Kzofutq4NSjka3wQbo741in6FSn8IfxPbazZE7O8WI1ffpOHDRWhyQPls3z9awUAvwbBJwbzdX0TXt1KLT+7Tvl+mpTbttHMYuPAGdap56KWu/V+31+t+5JDP6khl/lr18jda+u5jD2dNG2b+r7tR4STgFJX8MEAAiIDO09ZjpO0EGUojL/ScNVVrJ0xu7iKmuuL2Czucq67pHYMgKXi2Adbq49FwEAEAMw0eKAEbsOo/21McDBUQMgAMgN4BX9GAeUNcx0r4xcgUtvirPWX6rgNpUmBAO7gp3VS0CFUfmAPStE4K6tAnElhFtLWeViNxZltU1jyXBtddOACACyBKmzvu1x1L5sepK7XbCegWSVU1HSSZsQAOACmcU2booAoWxmd9xX1Y3B2XvFejMrQRwOZJCIHUwz4SSr6kYoxmHNayBD/bmzt4JG/V+noW4A1TIajkRX3XCqSL8lg0nfsJpzYt+84q/TWjeAffWKzRrXjZZwJfyLAT+nnX/H99Mr/tpwSaq6DgTF7mh4aN4AJMwbqFpzTAAA9ULNUj08Y7hqHCVFFf6DwA42ncoYj5g/K9OMagOEZlMlqWhk1VbTwm1a26YnLhq3wxyLlmsOohbpAK3vzwACAB2w6/oHwoZbzQor3AmxFrHsnu2qS71YlCrI6B7mNfTWP2uw45ySgaxPaed6kly/tTZ3+vU9vvS7z8GmpI5LR7CCBNjhlTIeFpNdDfTAEvJD4CqWZlAl4fwTDlLfqH9hwp55KM6lMyShrKACGlD26HLGUNlzPgAAl+DUlsFCT8Er9bdmTRBsGja540+oJnlg9UqWNZlktxKQw1PWTWdszoZCgFyKs9DIDCF1YQOtM5IyUx4znp1XzFXEr3SH2BaB9W4bmMjFBIYNstA53AIN0uu8RB99r0SPv/FlenfUKdz7oaXj4d9K11wm3Pd3e+n+oD3ctRuNtStPppPbPjplEOzGYHtp1skBOr2ohrJwF7F/Xt6r1at7NUCx7oy3RcLeQFOcYwIApAY6PTh9PFB1KYBy7bs4Oyg9I0rKHmRAAMpelEQIiyoSBQBUAIVBRDR1UFTehpIdL5YpNnnizysorpZqAwAod25hDGephQ4a1FPobAvpsxJd0GxUmS0baGo1ceuO3pV20fRpSLVrEF5yoYP2pHJFD1bcwAINREOu0xMto4GjSy/fhekL7hp6BGqFQUlzDcPkjRS8gCtE8x56YBCDKy4eOwD7ylr+EAAcVMJ1UvEdh9jXo08c52Q7YdenrFwtYwJ2d7Zp+d4WZlLbxLuwwlVvmzmcFLafxKRM4KRw5xXGtksnRdiDHjzRSbPPUyLmgZ0P5SF9MeGiqXR7hcgx+TI0G2YK4345+PQpjPP8qsMl/s/GK6Sr74d+FDxsxkh4tqBzM8cEANhq6HUr6ufedURTwn9R4KRTfkaVFqMaCFhcJUnEsopEAQAfwKAREQfjemtwHz6p1TRZYnSV4xo824gHAKYbCOtcnLvz+bjCldCMDlgw4uzy56SCTS81NW7kPwUxU+Z6He2tJytmbf7HAG7tiq3hrovBtjPCG4JwjHfRD41wEY/dkuGSBkQAcGtwM9F3tww3m9zdHXqaYpXLLotYdbcq4dvFek56+n5GQIPbGVvyK2hsMgMr6OiyR1ZwH0HMFHAzEZuEHy7KTVeyfcbgozsXnWSHc22G3v9Zy20AdRhK8uOOeaQfjM+62rk5+ktrsCNbfy631ncbwI5tzT/CSUj447b02El+Ui4Ceqe2axOftW1uKtCrmxssW3fGUyJhj6E+zDEBAHyBTgWnjwLlnfonDYCHN8W2pWfsg7KDDIiGsgclEcQii0QBAB5AdRARjdHb1UGRfq1ElKQo8zc5LNoDAFxLc8NYUgZQcWHGucW+06+CVMtNCcKRxissLW7TBRKnrj1UWgiWbKX+HP0sRKUI69cU9scU4flMvLWcs7/DdAf5Q/n2/qHRcW9TriHJ/xGHCJLOIJMMuDRZoCxtk9wg1UL34qWebu5ZnT/4ktIT1KiYiFo78jGYl4iDKtLLLsEdmpbIQFB+/oVvWwS8PnqUYAI5h51eEOJKOINkcXwfY/AIdzFZhnsao5nxC6k/TEbEVXVigiBnV4WvI7Akktd21ykKgM6aXzV6akViS7XVkuxW1rZppZW7XfjPvQm+/JoeusPSmeuG7goVHAt61Zr8dPAt3pIPAGBrF64Y5opG4FfnVXb+e5bTzPAZNCI/3fOln3NZAIDFfgntoqHU6QXaI53ZubIT03mdLl38eo5HHr/4Ovh7Q/mS3qC3lcJ2DdYrVOjFpSldVvVGJ90L3wcGjIP2vtZ745qPdCP42eiVVO21KEx2BQQiYSC5SkSB9SP6uae/Ej+RfPV1vWtepCbT05aIs2vMP7YOzj0vOuPx4LxaXcnLwEujZ6CwVShIC7lqB0WodWKxn4YAAAhaEBHpWFFGO+htvUYi+sAIvuxeY94eANC3FcRJHClgCtgHq7pCYBeYLXUmDu4C21ET47J30+wCixFL4UbxAkuSr+xNF1eowPKpAsQ+igubtdG1KwKb4+LBXfccsXBYJp/osqYXh2X5ST5r2HR2nJmut2WaMQeCXyncOWTXCuwLSRNN+B+CdTeWPYTX2kpdM88w/Ms/g+9PfBzlxNoYujQXcW/wIcsuQuSudKlTyax8gxhn6f2Hs5+zMoR1ERFfYPI+Y+RxpJteHyEP8ABnTtWzfEt0TRqvfZHkAQhxwjs39pdw6eWoADoPjadyyXdhj1+nNPrizJXvp0tAFBqXJxm56t8wFTEpKYMcFUzTxQvkSy2dyEFyEE0tXtwENv5zTBM/mEgLDDesPtxaVn8Tc/25eknSCj0BGCjQNF3fu66/0vk40lm498pD/I/pDX8u4cV5GuI6gLYwAGTl3MPcPa13xub/RAtqxNWb4caCTpeHSf1P9vyNLoAaBeRzWUW7+EyQzhNcPULir92AssrWvekdtVHwECgSNoxaQPN+NzAd7sCcv+uc8f+1Y5qcElcKOrppISR4T41uQIsSd4+edOQijahLWk4fUJISH3uiZiEv7xl1aGnuAGCLM44aNLENnT+siIqE+x8WQAjYERkzvrszeU+SKiLhIAE7tBlaFRHCkMpW2cCFtc7ZA9uLRmok1q8zcgfn7/qn8CAdsJTny6jk0XqpqYizOwA7gjuxSZw38esXO5O6iwyJaBJHnF7onF/bjGk/Sdu89jJKQm6nOWo84Lcpa2YC0+59I30XLseYOEyt+rN6r69BvnybAXSV6znAXEQdQOQaPsMftW2kX6e9ST3vb6sjEFrzYTo8fJHH4Dx44O2DpwZ5O10btRxZHbaJSnyT/se4RYLPlUahxYsdfnRJwOWATNAa97A4L9Zm8zkeLuns4Cry1ucQ/NStSo+/2aX55Mc9UHG5N7tUxgdeJrGWXCO3R1G0LLSd041uripHXRGWmDm4mjDFjFKwxYwWwxgzCg2Dan7fAQ6E7nXBjnLyiX5bcDtyKwwMDngYe+qQujpUM6M0dDOjkr98Rk1opy0K8kM/M5oEBX3yq+7c5sNFMxoDH82oAifNKOmMtBtumtF++GnGBIGjZlSDp2Y0DK4qNQRjAmrDWeUHCYVEth/uaqYNL7ih8RECu7nvUfcJBMetqEdqL9KZ1RuLrbUDRxlI4xprYR+HUzXBoCSgC/rcx7xI66YY9MQOd67URfDksvsHSTw4bscXo7Dh0xVc6A9Qm6lyWBHTAz1QaKYmBA5BAKR5cI2JVFVutAzUFk3XglXrj6zZO/ujrLgm7xTiS3227fvlCHe8tpXTu35PTONT/sk37fyLiDW4J3usM9IWHNZwgpqaa5fW2TrBWNnu2UaL+Z1qKSEAkOpZJt6clB1vl3ALnUDdT2SCzM5TYwbByEYuMMjmAwaAUbrO49ixFVZFE25zBDahybfnxZ2Lkg/1DBr/JNO7joYhHOqjMSu5Ops89QA5hjCUDkqYanY+CgCgBTQlyRC9T+OJICmr1T8qw0yD01hZu/jRRPkbVxdMArVFoLBVqEgTKbaVCLJTdDcNAQAQXD0qkTuP6h2gal8jEegebZQybw8AQM+eMRVLSvei/rB2dQOCk5tsCEsasyEsZYpNCDJw01d2UHvEymCmKGqK9kQX4XBRvE7Z3EWOeYQndtktqXebqCpcdtntqPWbMsoI3QODp+kFuldLTwKA5hR2o7DUbgBoQUBTpfnaSZw7h01tUFOPtxudbZvepqrM6qSa8swnBACYQMeVynWh8O1hKcuZnTdAQJyNPQDRIQhcA4xYJsZrQmre5LgS4436ma9G+y/xDF+uIXEzBHwadAgQO+qQNBiFXf4Fvyds0N+8yumUAILEz8z8adUhQEBBYvNhYsOmvDpHjg71Q0+v08EEiX82OidVO8dj+9sC3AYsIbwYUVJg/JiNAgDM1aykvFM9xHJdL46S1gX/NZcd7mp67eWeYWF7oxrosHqySLMuUXqsySxRAIB6SCND1JsdqI8UcxMbrKtn7QEAU3ntxZI2c531YQ3D4SO5NLP1kXJM3DcZCkA6alsEIVPXPT8uCZZoU/86Ei4Jq32LXRWJB/ptD3/75t6G591Yh9s5QCYkQyYadmkRu2CXxWQ3Db2d+SUAwF3B3Q3Z4E5QsYSDdBrq32iEvNtce5SP69QRS/TJ11lduem5kTFqBvqyVrKckI626AMAmKubOPg2YrIsOgJoL6qBFGzweikLAAAXAKKEXMjet4fDEYiJziRvyb7ljyyPJqbYtre49cj+ewN9SXgAXaO7GY6B86uPBv6mSU9sdHrbyFk2219xBD7XnDbWcDfiqhKOxmjT1ekbfuwKy9UQxoqxfNFNzUcBADaidqo6C2ugAE6gypSeaRqqLDLQEKoplKQJdE/Ztqtq1ydpC6EHE0WZlWJAK7mJzPoCbtPr5fAAAKcXJgX9KAXIotZUdoNeAXmsizV4Y/KiNg0BzY121an8ghEqaBv6RJeaCiayzEoxhzW4b+di7Q4t1nD8KlHas3dP62bhyzeEkPExOzNF4+/zvfSv6WAWJHLtPwuAwJIX23J+cIhw9D6xRJlJJAaIaWJgeTwABJB46UkAgHVjI8uldgMArgxgEc3HUp9h4g6xlOV2LLu75K4IhcHuPdcRYGYuIQCASZEjshu2pYajcNiNcuLq1jQxslqCuBRtA+JSIUwgfbVoLPLhHI75NrgjEG4d+/7BwXy61q0V+D67+6hVob0dHg0dWHxqSzQoyFXq0HF3k0WIhFnMtWHKsh/TUQAAOftophMk9FAK4GWTwuHa7KIzXQOu3TYLdCRcV42RdF6L2blrV41w9/0/pyEAALLYmCgxhJObyMXmzM3VBgB4vUMQDqlMMfrRHKDhVJnaLUCT08W63uUHmWaxlA6IF3TX8tXdWWETKrgqEsXdLmGLLDpsCriL7Y3ul7FZqsQ24yiQYCC41S4FAoTLYKMYgEgMHsoAiNmlJwEAFWETl6V2AwDdi03xZF+SGsNNSiV3zACqamNFIGXDKiYEAC7ukFp1XFowlFMaZaIEMRRtC2KoEDY74coyuJi62bc/AwPfTfoCKdGRn4pPR4kGSalKthdNbosFGrCEcBkrR1nyYyYKAHBvlL3KB1ErYcZRWtdZwKto5W5obf7ZFdaOanDA2lORTnDXHGpz84AiOklbiAVMlOjij9/isOM9zU9UsVbTtQGAolZuaCW6jMsuC199S7Bx5hl2e9vViomfAch0pq3TmNezvohdT0hCQrV1N/Kk3eVHjTJaJPLSNZa6DE53EFy62+Ubk4+oU30YbSQepUeE5ApQAgCb9Z2iuwGgjtVK+5w9Ep517jF38RbvYAYFy6DNcDzc4ZKPe7+ODv9TeMWsC/pHfApJTAkOAYIAEpvxEe704qX4yVH0mXx81gsASHzlR9MYrFwd1J8OgO1Fw1hMF73HkkopAICg0eqNqRhwYgt7xjNoOSjaoLHZKKkUdXBo4rYDVVlaW1AXCSCfSJDFeAAgB6kC8gIIZ4DluECUW4ORb9DOib8IlfYRw1jMIDXWV5NrRV9+44IDOex8dU/0WW3TkQVcNwaZuwru7vgxwwQAOCnUaQPKS9SEg3R5CHDH0MyVzkwPNFeycrix5oygdCq6fCzoTv0P7/r+/BD8PxITPUBXbD5WWOdnmpSWVxLUEGpJD+yqSmvuBDtmOQsAwHLBZqC47OVWVkiy1cjMy25X76E7p4lVVQaCwOPuv6mn6hgjNpDVx+laH+k81bhyfUKd9qIEGoiGXKUnWHzUx/Ir4Sw+QyTchE9nSWjQ8FvwveXhkXFE9z/h6u5U1T1r/B3h5lq/IWHcQHHnx7QUAMAaFfUe2PoygLX7eXnqpfyzVcRf1rZqsMFaqkh7UBcuuEZ52CEhM17YpLv6GBwyZ5Uo10/vcqCee41ECNdxhdlC75x4AEB0KqmCG0E/Rq4oHDNKa5reY73AUGli85oQ4Dsw/ND0VjlOhz10YPkqbzh9beBsa6QKhDBV4y4HMNVd8NQriSXe+L8wT0L2tg8ixmwTI+xTlesIvjcfPoy8yRDV68o9i0/vNDPuGChynUxN95yoX6Vvxb+dOxTD463mw2nRXuMFrHepMMpP3dPm2PsHIFXvKU38fAFhqXqdiWvGp8TaewMfZDr1FvrrsLY64SG5GvrdExrYFixP0Op8z4Ym20IGFNpkRcgx+jgC2qnCy0RSetK3bPM/4XlIqMhAjWFTD8kU3bVP/s2ygWSKY5Bmsm7znpd/C6U8YHMzIaIsuUpgAzRBBY1XNIMABQhThQWX7dzR3Xnsya012YcewrZuLAYPL3ppk9X76A/yJjDuO/m7V01P/OC9lyMgjFm/ZruC3G4e2RooNsV4M+bISbCzn/ZIHiWeWJBFxz3ecAUxGYfAhQd1hd35+ZASJZAMNkkjUx/4db6daT9Sg0NqFAxmBFFRQuhxR/QbT4i3JtcPfBMdnOF48XIVTxqkR9zMmyFNVNEhaKML8Unh+PMj6fjzQzr+HK89pH4+ko4/W+pnEBN2Hc5vGUdIAVAQzoNeMjzT5+5YbkBnKHMu/mJYEwoUcpSqc5J4EGY+JHkUHgHHnyeWEauR9j4lIZ6jno2RQ6n4tAlzg3zMh9vwSxzIHLI+RV1o+6eorKOAjZuDqLVHS5+rvk9tkgLQgKBLPK14nU0VOW9M08AnOWer5yCoKxxtFGZvhxL2FJ1rmpE2HqYXdf7WWJUFYgJyJkgHUaGOD5bCR2IaFU1Obq0VDn7hE7PtTZQEllVICADkFjcTragG/qbhKAs+XCUTFAGfxsgO0IBvaD4EGmC6FvGm4eqVetndc+zqTAj5KsC27IQoWQOZWqqo0quu97XJF46r+dqnVl4poqrvmrvUKzruZY/jH1F1TdmTJo+9+bC6s03+/lOXzblZjYle1zfo5Q14ypMJzTXcr6aYgtv7cs4kVDjV2aq1Pr+7eZTvo4eiE63c7pQ75jUerB6rFZSdIWH21Iuiwt4fowAA7GOsokIspTPLVZXJf6p7B4yrC3ebnrmUfwriajJwBXGRklzLKXR7FwDAULk9Jpq6mQ+2FofOJWpf/8CHUsND4gEASzVR/sfaC2bXVuERmtYCUW+MrVryaXvyJGKa91ZB7bV2svqAhY+Iakld6Kkbch4RBbiYiF4ix+4I1AByog2rC5OcMeqD8z8ujlFWLre0rU6D2/0xmQCgPqNqensqxhS1SATinLr3J+DKld2K+/BEWSHa+b1dp+8CicWZ1cnYOg0aMryhpNWUrTYlnSEIqQELVZccT7aG1Ij7dekkxDYHr47wvYYmxETxiS7QEKNXxcDa60kIX+5iyl5/TUcBAGRkq+k0XCV5EoA7HLc3GreXf+baq78sl2rgwnIpSS64UbeMFwAwosAS1ypJtEXhekiUmzhhvTh1DwA4QWbFk5LuzI8vqjEzz5Nm8sLe+AicEo8+wqhSO1iS9J67PMYe4kv9256knOnKgQ3XR5r5iSMIoBI0IVQqjLRtjaQSSWlkWK3cbYP1uaIyAWADQWSqwzqVIcgBMiIBbnMvWSbuwgbuHj/sYzToum+jlSekEPFOz/4AQgwRO1Pnv7d7f07ooGlz0xiFFxJ6dxLvlUxz67TdgtWwoSmlAAADtVY3hjXgLnY2fbYvCzQaJzbQoY6SdKhKvACAoamLdoGzicOhvsk9AKBTlsqTovSPaHuFkwBcfN9wxSNKPb1gJW7BfcDi34Sa1PN3g69p9t6ebOT/h2XyU/0CH1L//1X1Y37r/i2eT3d1pkxYqEITAACklpRhaxSapIOWpAJuYa1TR7wIwEk/a0lpVQrG9yrnueGc3/NWQ5KmuPZ31l/tZ0/0+VoKcgAAGEuXbCmtjAAHL65h9bmeLmgBAMZYN4rLdSlgEJZkkGbe6Dqe5pVSYuppXkslUtPsqtQbBWX8LXXbjIJ0Mz9wFLUfzK9/xj0Ev9FyYvWpPr86GeGdQku+rgUpAEAVtFVpQw9DlAx6kDgBeGi981iNY89cX8Z7LDhjMHqInO05DjUYVS+AMIso3gUAdmCLU4qOc2mJoHMTCdbhongAgAvpZF14bpDtVwLJTS4EI40FCFaVEiE6+R1BXIpAArR6UFd7zoCdu2zBLkxsb6CkDAIahlIx2Ggun6f/cVEYtVIOFm3TEYzXy8kEAPoWoLnVKSeLTSuIgDNtLJMEuJS1WEVWYyrawzRVSAgATFX59R5WuxqOaWyfnM6gGeR7J77QbDa8E9+e1yEBIWuonExV9Ob8PAkVuQACKnlYNpwlxIdiIOm9lmIcqGh8/1yfTghvP6MecpyOAgDosaiEenZyWioVUM2Oq+KxZ6786321yxiMvtopTcewRSmQubsAALaBKRATTbMMtNyRasxLdC9w/7ckxYJ4AMArmJbqYnXyMPt9MDFS07vbjYKV1cRON5OXvME0h6TCgmUnfd2uQqhY2RTS/20UhHYEFEvxQi9fqoDiPoWemCg9zXWdGYKVnk8Lq11zwkVRg9sk/OolGKW3XrCtnsFWlZaTCQBCN6B2V6fiNrbat2hQvIIeGq24s0VOARPNKQQAeJWmnAQr42yaacoZNc201WyRZnpVCBnCzinzEc70n3cn3DpOsUFsaKk8taNNjNufJEgKVw6ZvpqmpAAAeupw8qON/BhLabmygLejQd24G1NHlTerCXOtrrQy1zNlNLVYatMqxkSrp4AXABhgtZJFdUEbE88IL5W4qO47LacQDwCMjpXVz26gUI7FiOYUKpmO9UlxHWQ9PKpaCo2dFVecoeDD+kaOccCxCN6zaN21y+CH0+LSiTZHRxNAh4qHS4i2y6lUmtFvzY2T3Y72zimUCQClYwVBHT1UdnBtrh2FYs/I3djhgfgLEO8mFkjwovToQrh/LtBPan0A0YYEXrrnB5ak/qzexJQLqFCONIT1pwU9jRrOFN96aZxSCgCwGsQfjfdAltKoBtzFzmXQCJU6MATlNFCXeAGAQBUXVYY+x+ozn1gcYDEeAAikCggLIJwBluMCUVMNhr/PnYjH1sr/BqvxfAbqL3JE66kyeEPxvdGP+bL6gVd3Ofoc4rt2dV1mTxF6ctEEADAUdRuaRQ244Fneyx7v9JfSwA+/XXqbOUax7K010t00lE2S8sxa9rnwFcEy0Vp+63bta7qoPxmz+zK0p85aNnWvYmt7/uFBOTa2sOGdJxoTWvj60w9PSnCEEJB9g9uoqP4g8uLu9vl9BkxdYfvYnUOfpNS/Qe1V5Kt9ey0Ebb5+uwDOi1P71/NjdVW7uqu9NA1j1wCIxUknjO7prUVBDgCwDIKvC4hlfU3GFo/NBLk1twWzj83rzGcBAFQEtC7VRVntl8MRFERn6rx99DulTJ2rlDhAKXuuvhncmuLeuvGd1xwjwgSxsQGnw8YKwYq00sB6ZzcHUIOGXFlOvOoCWsCx1Hc9w+b0c39bj+zO72/BSiMMdCBfyWd9sb2f95nD4jxqYpOMbZaGcPglN8u+yFFCbYkYiG1GGC3EhF5UBtkx0PuLKD1BjVqF3JG8B59DsxQM+XLHenLGHGIsbdSJkwRkE25mJIezGsjuTsXQ0Trl2vVKnqCNTgNGvfuxcFRMDG5O8TnnZbVkJdHpZF+7dPUAqu86j2ywBEo9HwUAkAx1IBkGP4xrkwSSi7UqoHjEPfA9DPOlSjVuC8ZKOkW7CCYgb3xFvQvaag0JTORra5KvaQigr/NV9NEmg8VAtL8gZK4n+jDb+4jshARJQ0sWQ0u2NR5fjpBOl/9INu2wgDVWLVZwMa0NEw1dCcURTrfPIuMJl8y4lQ581vKGkjVavgsAyEYuP7LZU4q2lt96MBZlieYdb1RsEz0nHgCwfLJ8hQBWf8IDdCKE3dcj1uwwt0AoXo+4+IBEAKF5PbLtGn3TQZzR38icIRQhXigCGRzCKsOLmJoUUMTKTZzClnx4IC5saVoKJyX7TwTVlrbxYobY0k3ZdvZoujOnTAAYEJZQo+6RZqYVgqsNzTD5re1olZXdeYwP2uZ8QgDA5XI3Aiy2jvMUMNjVM+MAwwrOHi8wJBDEpIBVZpHZjigYZSPOLgGW28jzOLgBWvxa7tHqUHkLJ0Gyiv+GB1cpKw6oLkD1qsLUlmppUQUpAAAF0NtqenBWkvusqAoocsswQmZ92dxcQGUGAbHECwAsUEx0AT09dCrxPPHioSb3AIAmfTtTCkU/U0HfQ7HmDnjpGbDxGdF9BKDfCcLdSU8/As0nDhwxynn7LnYfcsliIhuD7AwRuDKH9qFdYnMt0B4xug7oOt12F6ePjTIBwC3g2kA1m8G12aAJNJUQSlgrnanJjx5AqRAAaFAcd37J9TAs00MrGkFW2eMIdPzgCCRPBk7o5ir84I1wD8dmF8QvPOYV6WT4+1l9d7eldV8OUJQaboilFACA0HBDRxcsCtLiVCAh5eYWTGYQUEq8AEBjdrdo7sDkE5cDXYwHAARaARmUcApQjhdS/a4DFvACowXA66fb7WJ3GXv2Ls7j5nxib3yTNqsIPKvqPCrFNnpUinF1msrcdp1OCxfKBADq2IGglh4qN9g6jadCwZ3NxM/I2cZ3Xy1Xf8hPEdj36YctspXgU7h/Sg8EiHQlbO4ADMn1gOZFp9Py21AfeVGuhP/GjLDO67jS8tRwQSilAACAotULWhUIiLm5AckMNuQSLwBQYKKipVnfQfKJA2oxHgAQQekf0eJYs6HR6wFcrAfq94Ukr2nrPwcW4f9O/XOwft7NgFob+MfrYX8MsNmuH/jZej/4xjSLfGCigYtv2U7KCihlPqxxgQkAMAud6rRhmsbZCQcpCxlAHtglPKzdOT97WKNSH6CgNN6uquPxYfjDh3X7igMNHPT7NXtA4m8qvh+qK+az/o938+yyK3szkyGphjttU6wxXREmqhXhOjzTRC3ZKuz+QV1cVKO+wVbz5lkAAIJ74o1DKuimsZJrAZdOarpLX8rd59pWFhvCc923tz+jd4gl5xlL7f2sKt/EecatRnkWY3mOD4jPVQH3pHhPP3oEZhs/Zh5NSdCtKZx6MWWtAiaVaYSENQfVZT4KAOAqaDhqeqabfsPFWAWUVjz+myYqrrlyOUYwaksFVQW1i6Y8KoOdTe0EAAKag20uJlqoqKAGW12a6HjCXa17i+IBgGmINvlz32fJQzxycxqSSo3nhGHybNIq7xPIQn7fQFaqwB3WNvLCDdaiPBG3WENMoAPWCLPphDXGjDpjzZRu68L6XEGZAFBFUyeJ2sPTOuUO9tLsngyKL0pZR9sszycEACxBD9Zw6WtYQXrorPTMlk8owzBbwNlbA8xiEcR2AXvhYrIDz+5M+6dTMeNS5fwUoGcYeYEHd7dSf6PzyJRI44sVGKv4es6/VjFrM00HqKEqTNX+ZRZVlAIAUNAwanqm66nAxQgBSrU/id8y+8JkfdncHDFztSDvsLqiLgAgMBHRDamdEahU4iEcyjk0NxEPAJxv3z0wctlH9n6ybY4zTxo/I6jZuGkI6aH1O4DZ9X4KVmhRfHKTBGvQeFEJhrvIO7+sKCEtJVJl1W33A6aCujMhbPrG0c7odCe4HBm/mFPdx4Vtc801o9EmEwDURzF9ceo9zN0zMxWB7wSTEoHbmVYrc4hvHwFNEwIAa7q/BzFc0wx9BMgz5RyPh46z9TARhB6QmnOfcr3csqdB8VCtC4huMpiv4bhtxb3sn4gaDmaXUgAAHQStHoyrQB7UuTlDnBnkYbSoCwD4AHQRAfOJAlOKBwCm2/bhYBRQg/Bmp6DuOD7lWKD0u0ELeACVwPIugdntIndbLe0IXplIHu+6lf8TmJyYJlsvC9+FFruU2mY1Y2FXs9sTDhWLZQJAgZLUovUqgm3T88fgWkShJMdOz8ptup/Pfw3zWJ2G3fkqCiyaldApKDCJBwJEtxI29wSGPVtfCq7TlEG005XIVsKnncDdpbTu67UCq2FDU0oBABbqSL3ZSeiQYsAdK8Chys0JIDO4EIu6AMCCjop673EOkE8kyGI8AJADUUAFecuZAyvGpPXpd4EScAOI/xAq3wT2OTwXHbo+eniVbNtjCbIj/XiFwIcpIwFgjRM48mBiJYqRs2GnxLQOITCYOBvftYFEeb2fSxv6hUybON11vO/iaJKImwBHfs7u4Gu5QZhqzHITMFVsPuJOzsKPj8Hqw66TpmF5iSO0jIiEuBJegfnFN/vHj1y0K1uUOjEYK+sJX/qw54T+KDBLImhbsdY0+/DPRWBf5ukSc3tYo7p051tjXMSWdHAt1tSLylseHkT2LuPQGE/p3gdRVTdGBCMTu9iFocr1UoNLxIDjx/e3vTIIVcwEsVm8AQAaGAlz/7Iii4tFo9ka1Ary54VaZZkFAIiekS7pw3bWBy/8RPungTUkc9MBYQRJiOGTh6R9qOD8LTDFXxE4asCEPbIWGzU34yAoJdk0tLLLeIoFNprAAQGxQ9fdepsmuKt1uBZv7bltTseKoMjLk8OgSH3j1ibqcfYp3MHdJmwFgAQ4uMVc25ucHxybbyeE5c+nP+IDp3Yx0aB938mmBf3XaWX1HWfrxswUdrOkCwB0sGpFlLtjVyNIucR0nVs8sLQHAPCmPBFTSqdKtCtThc2jBWPevAl2NcIMGzuCZtZhbmTg8SqYo5Hu8yNkjf9OMAUuL3MQrMfitFdtIQdHyzGjWHajVQVHNynVdnQzpRqPbjb57aPb8mKZAODi6AxFte0uNTto0KWxqxJOTzneD9uZKAQAevYsTsOIHI5cwY49i8zetKPxbFNln57l1RAQdjRPluZhmi7YnkoOgw2rvDmGWILvzZpN3KydiJ0AfidzBYDnTeZhOL/aP5CiwFde9XmfqTm/0pgY9LnOSV0AQKtSRPlAEwNjC0wllozXHjC5BwDcRhVmSmnjko52Vlgh1mwQynsID99afbgnEvssQAfMJ4XBlw8Wh5r/vW9PaJSXtreEnrDziaJ3J5qA9O5ZzUZ6965mJL1Rym6LPQMslgkAouOUqIYVZ/ODwVoaZZaA20cPOL132002hpcscX0yBPBIIjO3NupHAFG2TwIbQVS0bR6YKPOEysOhL5Lufoq+Bp24/4LOUZhO3AoACQVxi7m2u/7MvYyyZBVYUOfmApgZLEhFXQCgAHWRAfOJ5sAU4wEAgFE9BJFN0Prk2KCyDwFg7/2v24MYxcuLPcFVXtp6F3pCySeK3u3RBKR35zQb6d1zmpH07nN2m+wZrWKZACA6pkU1rJjLDwZrapTZhWfPhsPttfkYPZuopmve3lH3TOwKAIlPMU3OAUThE/geIdTgpfbi1iaC+y2jRxH4TOgKAAmacZN58Pr3aP/FqArkQZWbM4SZQR6Gi7oAgA9AFwkgnygOpBgPADSI6gEwbzb5hhysGIvWl30waH695eoTWJD/76L6hEojj330hnN4/Av+CY8+3U0xGzc4jCFcrI069BaPNnw/+TebNNwWkBgL5DLO/Kjv5sTP7jplgPD++/vbwswRz/gq6e7aNb8f1qxktD53AHp4rPXzcVtZWMPugAdmi5VR2yoqniSQinhzmtY3jxW3tI5en+PJ6zUqZLaw1yBr/diIMKADYehQEGjn+QUbAOLmtGeN+J3d60ZjtVesn6c17qJiCD6hsw9AY3mmwkjmMho5VdCW5AGB8yt4Itgsbkfxvv9PFWHnRk59hSFeYJ8lr7rd9XP+9EjocdcvUiLWg8AkeNgRB+J6gQgxCpKKRYjhprzIphg/0ppaD+LtaEkEH1Ea42wrTuQetfz7wmFlouKo8D99u8OiUDjqowHl7eegWCJvqHAO9Bo1QaNu0tFp7E3VnZGzHlKyDEcM7iWyGL5fq+1fpA/aEohn7CkLsMx+kd0zdlmskvcoYlN+3LgzclEm6S5CpyzKXYerDv2yTN1XffV1YaMTO3CW+ZV5jUCC59kuG2ezZWB10CAMYJ9jk9g7kdp2Q/LiR2StsCtmbX+4ofZkt18K7E0M3yBCIM1cDpjmyjTAH5SzT0m1lX/EC8CchtAqT7EAcUQ3N3X9Q5+m3jitfv4BoLOwDvqTgElPTyYcU1G2mrJzJgk0xzcWKGf1UKNEfgqjRZkjRKmOYQWIrfLY4Ozig6zeTvwkAhxJZCgtYEMTX4lJZnWYOD8kIA6Va2sH6rviPxcg5vZYz7YXGDROaFvqni00xT8gMxkxq3ys4EoGl+FPScY7TcNQGxnnK+uxKUA+bSEtCIAKOa7jo3KVu8DpuA1ERqNN9cmCxBuOroUoZsWW6ZM4zfQzSGlyIA3BtB6c/GMPcZzPA1ji6qvB5BUT5wjFaRiMCE+sfFJPE4Y6SacwZVN4U4yerAR9Q0QIsmr1mGIUqstfqO/Q22iwDgYCAdmIXoYRPhGzQ7n1CnbMpi3YBG219S+jybpBFo5HY0zlq9CU+ND4TcsPPQU/lU/JvSD5HscUvxQCZtddWgHyAtVHiNvPA+qkqg4aZtDnrVqYsAiG4goKgOREtZGNXG9QJncY55bVWXUGEOFEZlDx63HGksYcWnyFDiFnqSLv1AjSugbWNiisApJM5i8XQG6o4YUzEaewRP/GD3VPNJZkV/L1oa4300Ttw3076tKH1Xv5ITvcxIMRic5PEHZsZx0oLTYc/rCEtHhR4JB8Il+EE7CLKasQMy60GLqUftZ6VBtEZbNR6ENnuRahdOhVfS84yWryHIf3/AVdL+1QIQO74Bp+PUEf4/+xt8NR7XdiiX1NrNdF/yv2qeJqOrl0EyquOqj/ut5Q6F24rFGzZuFM6M6fw/qPSojui6mO8MPCSCEQ2+Kdj9CBD1M0OrbXL7Kfmga+zub8bn7ahLSImw3eq/SRFxkyAtG9b5/SCehumLD3fU7A7p5uQehNJJfE88Ny0hJ1SIZlW3CEYHQgHuj2qDxEn/M2NEtTZRBHCNxIs33XB2sEbvjUNrv6gRnhtThE/WXB2aOpye/maSHknorj1xkNA8uDcq3w3gJEty6Ri7EI3Ot4mwGFMiy61rNrFFqivJeNOWwFjIg+0ZvOZjuUYE+u9XKL2A9bgkYQbW0Eyljuh7Y7aV/FD+PertAc5KHUkwQgDH1S6hK7rHofzjdaEP1nCOjATLHebUi8EUMZHAOeyhbeb9zwEpBb0fHIv+NSgu5UjC2I76XADGgKSO4/XGx1VpIGJ6wAETqADxoAinb6ubz+c+aN9udf1V9/CX/87y+gCE9DnMzd0XBgH0LRROm13LcrCurN9vU1Ox8+z/v+z5bkBwTsattQyUFv7I2sm1srilhpPpp2qfuUVlZTJnY1Ta0eDxyKm/ssNY9bLpHnuvROZdhnZTLBQJdPQ2IZVKBDBa8ogdorfVXy5lwZn5jaW6R4sW8snpcr1g8+FdNEV1jlBE+49bzecgeVwCPJYy1ftgsdw5+rM8rrJrFi2vkFP2444y6bpcjk99bl53ZPxHlTNCsOPDfLe1wS1Zvx2HcCQfNcyycIci1Ht0llSsnYp1kraNiZvdcOihf1ke27Xh9OyxzMBaRVitRxLmbJK40DP5WiGXIARVl2JVxAjXlDZntbR/exBO4quh5lFk6oxrZqj7uQUlF1iTZa1HFAUac7nUil6JxRZ4vvaMe6eTq/Wtb1Vh2ceKXUXxfH0VbhXf/GHcycT0zySNiE4cPoglodYabg8yxJQ5rOjmWRV/hMinAj61vZoATqJhQUw8ojlLat3uLU8TZ4ES1dozBJemXPnEJD7nczKWhaxP8nOjf+Dw0NjK4YdQBQ3TAXpAO/CzTOihWWa7yIbNh12Aiins6YuoLg7zAc2RVFRkP3CsfMwvL+31AVb3Qfz+0th8lqnuHMHuAET2/k1U2T+KlVEVB9P2yq8YoMQuV4ZaxB3rPbsDOsP23Jt1olvVab9/SF6BT+UOT21+95u5OfFlM+1vzHt9zJwL+PePyunbS4DR///BU977FcYV51RzZ/ge8bmZYvadhg+8VKGTZL2dmDzwcfKUh6v0qpWxW5qIy5RzGcPdrt8/Ck5fG/hbCm73DScvTvI7CGOdxr7Y1B8+sZ30NPC2WUksbExyUrtTfQT35b4tBgX9ZNGBo8Vcz9UiigUquXlBaxZj5XrF7FVpo9/6s+n3/5oDzNEUrBD2XuenizrKICxCYIm7Wja4X0jkJS5s7NRCnYkWcrloAzDr+K1S940dcOqfL1SWHdv3MuBuvPeEE4+g+fAQBitg4nRax/V1Lc3AF8Dmj+i1eJjOvAue+OIPL39c49EYyx7QoXpzQc32KEffvP9o8t38fzo/E/X32mcZifos7Ona/zjubYtuhTLtaWnvws+LwC8bEwFMila/LsiOZNTf5Nca+p91omQjVoXpm/flOJvz8y+rk7zj7S9pUnazDb6Bh1s66/AsiovcsvgDb+LQy4tYcF0NG/ZQFXPNwP+kYRPh/PPi6AKRwHX23rwwKY3uPgq6U44NNA/htuz6OfmMDrPgFBb1GJAjc4hYPVWypV4AoLYXvL2x6M8S5me1nwHy7bAwDDHmZnF4L5pRDLH55BdRKXBoqnHsxmEg/31lXadXqPAGkzS2mRhziqCnWuiHq3CEQuTBHWLBjoAjd6caWofp0Rp/4sBHoLObL+9exmLZ4NFsKy8gPOIkOy2oQOOaoa+t/MfVEgwHvrYkxIU1N8I6tn0RKOLQt8i/iV0lna/fhLj227saA2YjxdCbdp5MWFKNGyLyTohMasUmP/8SpLg3t2WX3dnhJDeX22U2te9xYG0GL/B1RfeQNR5QUWik7hHwqGhPwYNINwc5BY6fi2LkHDNaoMYLuoUtcUTGHZBZVW1yzaRUcPepheqfStHZ91B/cgWv/iNSDBGNO43rDl4tOCtDMfj2GXeMUXjoGz/lxmxEe8ySp98hrmsSO4oIqYPHPOyW2o+EIzIOUt96BpUN6gnrmMYb2rN7xF1DW0Z1eRQOACrvqYoVS1VnD0LX7ZM/lskd/gx6E3uzDTzBCAgA7PQ3hUirfmylPkp8kJoo8dqpP8+X5Ea6lTB+2TN8K3dIwDhrVZtzDApDz963lz9PZrx3f2Gt0edI+x/OrAINZpqvofwwVQpryPQkhFEX+tbyrPou4XReC10sWHoqtjUTm4bbOzt9lknb1NVuvZy1mvZ5es2LP7rdk4uBXEfrYgjrOKzkJthw69Dlv/bDab/2zc9j87nwKYvfFTAbO7pwQIDIEEPP/8V1s6BUCYOlSCdCVMcdUWWZA3qmYSJRYHE82ucBspZkLp4+2cV8N9tKuo8CCVxIRajSfsdw7BwZda+7c07/zufgstIAhNQssWjnnsLIDqLhfhr+H0WlHUYlHaiG9u7YdOOB/jjMiyHfhgOIHyukY9fWHEW7mrLYmbvnTpFKNyoLRaVIppdmmu1ytL+ZRmVlOKV3zoURAorYYyKW7Z1ZypfcOstSCXcQi7QjK2L+got3ax4XI2kLhy6Af2iJjhPhgdg0mleNWg0tFOu0Z31lbG9lCT4tcQ5r6qTw3ok2MqOFZ3nlngmf3Y4+5ZaKfGkk0wdaBe8s5r/OZ5UMNX22suQaJYpVGyYmeTdmAsseZoF+DuiuFcOt8pBz+GScORROtTbi7FpguNznn2zsCTnpUzesyt7xwbvXYe/JLoZkvYhUyUMg/qlM7cl8H9o6CpctPthE3pDTM7RJUMXclEIXdKCvrlMnO0ryUqsWyJXsfTL3nJEcCWFCR6LTnYRhZMJgbxyZhUzBwZ89rlvAtAOvpc6AIQDOdmW5uUIyVfMpLVJyNZ3i6NKC6SlpkwLWEgsCbrDEvTTFJUGtgSonstmZrFpUgPqkknWS0hM6gYmWqJkz61RM8BGT3NkhGk+x/KmZeDK9dUFMwlFXsmzno42aZcUSHngoozKB7u25eTiffIC5rEjmxLjCdPzqZQhm8tzBdm9s17cdu+2KYaqEEGNWggBvAiIgpc4DQWKhtkV6yGBmcdNl+J4uJr4gL5ZePvod3apZYUX9O86SJ7bv0HeiVdU5HwFXuladlfgsbmziwuUS5TS+zwvWDJ63VFSf4jX2p9QfJt+yeJqol3ICT2amBqsTmFPKBpypmELCBBUejKDfGqOx6UFI8tIfpnKX9JZHbx1DFIeYwoGDLnF1Kt++WlBM4LntH758IcLJE8oZo+yWBgUw63FWUaYV5fukQ94ne+FB+o8Q89LD7PTv4kfNf0vKd88Bq8U2Ch4LUzlSsfgVAZ4PXA25cTggeny2KGpazveoD352WV9WZOf7uGF2dfAhVFgsZvcjaKAtyXIMs0jjsQHwIxty72ihakDnabmQml1culVpTzfh1HFMetkhC6djpxrLk23f4CmjU5LcXTIo8T9C4lqBAlsh+wxIlCK1OC4zxnLgJeZfW4Qd9Si9Ox2qVb11Ofcb8TKfV7mn6Av5PehEdUnuau7KurHf7dvfef4fYhviWF+37uem+E1L3lketLGrEWQt+VnIZ8M5dh1Sg6mko9OCMeGb+59FXHmeL4VMvwGYYEELwp8n1XQMg7RSUcshmHMPELcI6zJD9BUygUSL5zVLREv7JUClRDkziIUNNYNU599TVQRQjpcPXyoUhlVFSLhw7V1RQlvZ0Q4do7NLSW3I3SR1LKyhwP+6jD274dnfsLdx9eJUAD4dJUO+eouI1wrhNuT+BjalYkmmlM1HJSWxGGC0Si5b5ArdIPoy5q9WO/4rOzCMT6yE1RnYimDUfuhKv4sIG6eISCaIA6KijDTcd/l9ukyWQ6dKrlJJnmApnAdm0T5jQ/hGmiKE7DtViD+On8ODei0yDUMNU10VzReAElzt2NQnlLyK+5SnNqP7dS0ASEGqG+icRvvpg9UdrzXBMcHiKVoi4+3QRRlkObOXggVM4ExZtjkzBwSddAdTXKRPT2ID61gmiManR+HCdwUDAq/StyEzCaSWfUUIdgP32N53XdGfyRsLsPLJXBFHXxyREEM2nUpAnCnJb32LZmMlNTTQx4VGY/rRhsnKIXY82lAi/jJNvnMt58WiBRgqN2mkeaIz5YPhoxqYwfzMdT3k6KGBpteWadS93DYBd/m16EfhpA0P9C8lg0S8cQb2icL9pqTnCfEGOL81dUSD6VDpVVkoHOr2HKa5ZCHFB1fppyymm4+kojBKl0ZF7InZBE/dqkVG82/R+tCqhqq4lOV0ULtdfEpyOo+ZpoMjg0aLKJpCJdfXcr2VEtjqvxukNIrW6MMoTduYTfo37Ce8/AXy/Fbqb5lNzVSWczvVodGkv9Z/F8t/Hmm7Y6FCIelLFuYX+zbCgTeq01v1Wqo6b/fwdmctyzq97qFqZjtR2yKc2ixVC7FFfRfI/vRAcwnT395aT6IQcXL9QUfgXhiTF//fYKnFsdf0mp9SV+DVCKnxOeCG/Y4rfElr+kVELaagLirFwW0Fe3ANSO6RT1lpTqg0opw6UQF1SUX3l4at4Ird+ODeO6paX6cV4N41GSjui42hzwzHACaD8NPDcww32++C9IwY62Zb7mqs1KR0tT+ZNt1mVPfgOEI9iri2sUPuWhyaEdDhfuQ8oZWkM/DRAGzjjPDdzjF0A+aYMnQkvb74B5zQH09GXUsuCMp0/SZ0zwG9vl1T7x/b9LJXDAOObgbStIqAFOJG9fOB8b7osCg4XLk2zWNI1TTXm66txQSW1UE+fi56fjWsWPuHA6rvmc6vOr60S59kRtj+MquWnBZs1TXn3l6RpG135NpdOhmjhUmq756vOrz41rGy/kUl1xfs3WfPWgOtqvterT+ZFi6tP5+en8ms+vIp0f50e8CFcT4RT1oaoQKma+xvf8K8kvL/HnpJWG6muu8pwqKQ+J6mu48hBSVbbgWulXg+v2sn3j7NhlZF5udDTSlu9Sv7E2v3hQPUN+i+5rVnDf7NKaIYLiO1+Y3cLXnz0Gu22NIys63z3dkwuBzknhWukFjHp6TXEY6Ctizu5gfZsopzM2p8fb6DG7fud3wa+bDhvb903r6eLde5Qk2sDtNGdXZP+PEN0w/Tm57P0Fr1vMp5RRPZI+oB41hH2RUuj1sOUVfogDh85PqaRojNqvoYI/pKkgdhAFxAoiQDCI+iA6/oyGVmrlaaNFgfQaio5Ky1JYHdghZ75KfFGLxdKKWjpsxnb7Hf/rvgTGZAmOn3Oiu5NYhHf18wv4ioIDdJLdFW4Hu85+nOUCA6rnOn55lPmqceh9g08PyhVjdrc7T4XhzbC+c7hdzMmIFCPQJIBCKBm5ydgYaBrzKPc/rGBz8mBhb9QCy21yBEQAjYCRZhoeEZ151PkfWtA7KWN7bL/zEZlYIBVBHOg+f6WUNs+q/YeW2PZC4nPrBTjdFIlT1RdZXzKnuyN5EdXR5YLbJhnRiIgg5UBqgTQEPdz83smi9knVQVneRMl9lBEDkWJEzAAEDz0995jNY64MtIfdYLGsVcfiwKRS1941+D2PDp+N8mjndv07/c0B2KVd86rVngCyOKl6aLqQ85RlHV3gEQCwsJaI7woQ54RzJPxGOXQ/ceuDc14Gl/HT92TYxaiH++dlRw78mCd2aa2TPQajv2VeG1zv0n98509wpgQRg9N69WE3k0H2dkT9L/Zn8tq7YKY9NMX2XLGNdNieeUEyzgtOJJYcCnuvfwYAUKymRSnnBZa0SqHRHhbWOALuV/oxWc9rtE9/zevz99TBRrfB+KP9BbpiznVT9pjwIb14achALWsJJ1CPsMfUAoK5KmJnGB3f7W11X+6Aiaoo/kffc6XIdOSwvu18R5iinSPuaAnD1dmtBTQJDyJyWSEQT3L3JHzw1lRLBoCJ0CMfmhEL0QAA3YFuDW7d84GjyL8TzYRH8elntyVDF6zv5u2nvBKUuQ3Fm0XXIugUejiNCTSFJJjHMNY7remG9pTBRzBcQ8bM9YCvgh4HbaaN0DRZUwGpMahqtG/F51fDSmxY0B04Smj9WtEtv13UZJy6a8K9/PZREnOscoGAgIkzuCE1TziV0QddYyVLri2tkgi4zmIl6HNhrb0L4qOfdHJ6FPxjLzBNMjTpeh4tMK4pwdLJBWlnceD7zzfWfQebmwBfx8/k1AvTgMaydPUiBidBe7EOGGeyzTB2ITpll9J4yZPwtGFDQOXdl2z5uzB4ES/1cZiPXdPwjAeBl8Vmng3bkuIukxfCJ86aAje2e7m79mIWmhr7zhhLo7XoohNM3BmIeEuJycV9+m/Fy0UOipExu02edSA72eSEZMK4FKHsCaZE/6WLjmdfrpndGiXTaocojO+iDDUb2btqqRc5Dwz/+WBQzQHsBuYrMDoSvj5QIHxnDfiHEnl3IptjnNoFjkHbAqFx8mpfvXft5KQ2JYXEK9rQ+Vikbeb4etmhCA+2eLLQq2NYOitElNPyKCnqqA4+iALHwWVxroXzomQAyCbCZedEYI1kvyURtEnNDeDDQcoUlyhUQzgalxXz8LUeHfi8dRJD1KmisnIPr5crfp1ikb/n3mVaLfLip6G5tplxQYGYsG583YQVy0sSc+gDdheJlEfOU2/xDWw2d343D9HOtdw8W24kzPo5dXxgKX77sSSufX21FJeJPjAyt5sligJMQCkg9EMMnaW+XkrST+aZ6KtamZB+B5o2nI4Zbc43wxwrJsicfEUtnTlmqpg5N2eOd1XLnM2ZU3eVN+dw5tJTuc3NcOZCVKZzc8SHT+EmeB/F+fngbkeKfuStCCC66tXSpxod3RfG+MWY+CgdFae7NIZDOuJCdzXY0JujL52ka61vdErvWy1pGBWSDv9ySh5w6752vY46NpSLxvkqiSlQ42aNwylhxYvgd6oUNSjO40QqGmca6Cw1ertL0AAA1gonfGiS3NQbh6doVAhuZla94bvEwry9GbA7tYA9pcN3rxbtpKZBcme6ZLdCTwGhgkHEzQfVgZCpYiCZA+GuaoF0HIjdVR7k4kDuqdygKQ5kojKFBlRDvTXuFn/5Dave/I3iYWVxhFvYn+uzxRHT4Bi0nLDkUyjgLQO4n7OSLXGDJWDG5FtXDtxLdNDNHD77HwkgS3E/YTP5s8yf7AEPeLCnoa3MjeW7dFhbJK2LcfGl2MUiSpIWY9BAhZaudQx2p5I025OH8LSWf1VnMLuG/5oSdes/fwMAtumm/jVyvC+yUBoaUpUVAMHFTTCHDQrLEwIAeAtAJ/MQYwACNP6pHcA5VR2qbbZ9rS92ju3QGvlAEGsM3SwHdEXVX3MGNCZVffvIHRpff/na4A7G8EXx3vE15KohrQMrfio+hjT4hgeDaEtDjeDXXDpCEHdoK9sUMmK6Pm1wOOjOoI/TEHK9z8O/DNPls+0WxzGv21vtAEOXi7OPgO5wWRsA8G7MjWl9YvBnByOZeWGJHAh8+S4wT6ITZNN8uSz6/p/emhWpfTAWrPzlyq6+dM0gOmhYZFdVZX6lNEdd9RVCSOM1FJnTcOe1V4eEAW6jpQr7aRqnkiKMiF99zVSSrr4KGs3OKSoTRGxKIK5PVkERjVdZDYTUH+46N8/kK9W6YFQkhPhIeejrnJzLX38Ab/XXplXRX0F7NFmbNdFENonZHbLUty3dFq6lxFNxM5pLb9xE9U/4U/U7hOC6q/SNXQCezBF4BSC7qkFcANqpWpANgO6qPOSWjSlruyuxMShdezBgNeW/gwn4Me3Bek3EW2Ix+MvvAqzWf6Mn9bdb4erNz0iuqjRdg9RXjB2pzypqmgWsqV8N2LHGkj45SADU/QICiUE2EyaH2DYlQXJ+5t/XOKXAiwCsd3fbAMphdEc9+W00SLIhCIhfRrtGzxWSQG70ds+oh8YBWr3lTh0t7yXW4vKOAMCdPbD24r1eH1hnTkd9OsD6BP1evjtFEoKLmsUmDRCuQWRWs9ePrSJLmkndeuT9haaQS2DppmPmG0wNgz7SD2WnFQfSbN4LrJtl7JMZX2txLkUZora7dbpKrm3OV4meUiERWvSuqnzigF5hUYVQ4ZZSfqPkO7iij7zHZ+0uLq6mEkQAe4qTjSJ0h2hPLlmkT+VRefNV4cSKIMTxTg7czEPcxR0BwFSxTuG93uEhu6+IU26A51p5PgMcebjirLR2Qq6Gd3SPd/BcXwWXA7RQLs1zlHfbYzuoepegAQCopIUGZwSj2XIDgru3aA/rq8Mw/dzJTLI2AuriswJfXO3X/XW/He3aUkkF0X4tppPSbbm+AY7EdYaPpsLY0cACOjHDloe9+VZW5AP0h4diNUzTkXtzEH8o9kwxRXI2w1cpouaU0kDQxsZlFyb8Dk/oGM5U9CHLKTFwR2AJ5rmcCSw6jOSMN7/u8L+w7qP/ouu/SZvVLW21otj2l8TdlM2sOSVuizWdn7elybpjwnx/8MeZNUTNiMvdGWGTRiFXwRbQMjfQWOuJC6pqPbvJJ0HioeoPoGrwN5y+FQUkLSuyuMA/33RUm00yKT5WUra3TafOhPAEDA07a+pkpBczH7yWlymBV5bDJqcRowQQctekWGr1oFfLrEmmfCkZ+RUzBCXp5uO71+NbqTYK8Uz1S/tzHfgB0Z5p+bL+tYL8XJv3c+xJ6sKZmmvm/7r5I6s/ARkvKqaDnj0/AWWpPfRi5O5M7Zl853d52dcVQNn4iTqf7BFg9c8HA/PDIZxydmPldCtpcGscyvyG1WtZCI6KrWGN7LGWH/bQrdYKW5J8XdkiYfhmT3XLnPF6LS1NQVWFpnbCg2LU2tEgMc0hJKpDZIuC4wzEWWjznF0HWM5SMACAbazMREVWV6JmYoHiwhqefNjokCrcznpNfA8uz0sN2AtL2NPC95alO+mA6R3jZZh9ZdONQvaIzUDLnA/bkna5M7qdKs9V41kXFhgzdYympotGrEHrRb8G57+oS3chx9HboKnum18ooi5xChYRFzEx0yatzi6U5TUPuSLQok1C11q0mlsoMA+PfWfOw4weMH143I+23F3jomHAPBbHkFA78jZsa5TdVbJxgIyrP9wuwO5U9USJGwaHLgsG120jd68NikOtBmVpRz3T7GqJXNf+LaYnT7d186rJCHOuo7rfXcL46/oPPIbsCP/gd3XVwN1c/nGhDoBUIOG47xrl1U2FCZx7qOiZd5x1yGjvzENZB/Q/BYElwscdKrBRnXSoSLmP884A+nlPE9GONC7ZMtJQkTLOOBoYj00O3Z7Sv8uhay+idqkNVTd2vCjGFQIX+EhCN+aB3p80utsGCWsaPaGyYXPQG1Uu7CF6myqPvfYs+zbYfhN5Hbc9yV5ePLofH5GPnZ2dR/O9gagXQDXP5c3qx0fjH7O9OhHUk/wB3Tt2U3v30Xx2MtIcjVFKVBBxTiP1sRt3zpDUGv+umjneGcYmQkE3A66Qs8pBYR9uMY/72KftU+qUAXSz0AkDsOHOAiVMbELwvIYBkjX2cByAMc9CLCwn1eF/gCnxMrz7Eezq7AcxoFMGMMQRbacnDGDpsYuV8ru7OttaBoznrMPyehjTA2TPWUXrc1CNrwal+rGrKwq1Y4FmdpdWeJsby6FeOODizBOshLKBfv81BTgC2DafzCpC14jqxJLSZEPtIZHzSbVP0905T4x1VkFHADCHLBQ+N5I54QjCj6nPve+wvrR1gAvlTe9VGUeFXHVF/ihoMTquePi5Yp6fUeCsXgoGAJzDy9naws1cdYVbJtEX69Xgdnyhrj3phM0iWOH1Vfmxv7yOL5kIvsenVX79gfedEV4RvS99DWY1CGppvlqnO411TheuS8cl3KUp651oYelVBdPU1+q52Va5nqZRxxmsE5Ok24tYrwbaEoaDDCVToicZa1TG7h7qp5Id83BQLHuFQOTSQTHr0TDu9RmUqjSLLZ5Bqfnudsa/F7IfH88UxwgXz+jiN+a/l2G3Fpj96M+qevkku/wPFSkH3fIl2Qul+k12fu0NAFf26LGqJjYHP6/TDArtzEgzDF6eC3e3W51Rg7sL5Xu5rbQR85VlFgMAAI56qHkaoz5Bgq3CiFKZj6xF9nw2D/Kw7ikGAwDQ5aFqx1nzoh1PV/2M4o5Q3ynNa4KdgsvXUQIpuXQHCKYQu0QChmGCWBQw2zrGrpts4QpMjW6x6QrMlLlgu5c/s+2MqePxsu2lEevZ0sku70JXzgctYSqlP7u9i6TmDlzjFjcdRfa1djlCAHDcgGOVeXj2sp0S6t8sSI8f+1FgrDW9uapikQFbYHW87EYvMXQPDqBrqz8uGnCaVb2KxU30fS9vtKOQjqrDZPfk8KqG2G708Ohw5uAAAKOqxikVTKvjjV6TsIXFUFCrtzXOZWhPSci60AwA2GEtfBN7qr5CZIv1xsnCPxcWu1YZelehR5XHNMDa/aY0QVeu9FMUm+rDI6nTpFbaZDTpli7TbBrzzg4S2hvkfff0jG9RxLD22ngINodCR0fSHBcKPhtQqR8zggkcCRx0Vjfggwt8ZrmVbeyNycPqHvIhHVZteXVKZUlYld6ywXmvj/75O84eer9v6CGoZJ2WSjqfXyx+Rb+7YCn/L8KRIdJegbAZiPyQe6LRABI5IbhBAmE9hl1J5Gd4EnRjTCRsUrBHh/h+bvzHarDbvIF0D2eZ7iz0FAxMoHvyRVuBZJ0pGRY2LZ52VmIcP2CmtJEjmHn63jkgpBZVJFzcbld5dOvoYPE6pvzVPKB/p55HAPUNIBpFKAVRnVhSNK+R6Gl7QR85R1QDkL58LIl1brFJALADuVIffZDxydBF+O1CuEHP4OfTRyA53tPQ+94L1VrHPcPMm88K5FzMKjPpZm1mhQEAB9nKxAZ3B/zStrU9+DM+2/Ppffnr9lVg7wOsj6XOGJpx3lLmbO1KngPWnip4gk5GPd/u5zYetoViMABgY/CIXbBaiUjDOFMhKpwx2tndRHrNzxsIiFOOjTmGSJpJ3s7i8S56ZzRBUADQp6piUFdA36BqQSNA39pcQPOw0UdTB9RgA3XmMpjDnahI+c1HgX9O1kK8S9oQaH0le1bwacWPmQAAwEnp6B2hoMwhQZHQNBFzNlDOIHTFMDXmhAEAroVOl7xajgu/cbQ8XTDgAh4QnMrzxIORKGF3N5RG2Y5J4MpluhzYQFaHQaY4sgHvItdQy0xd3whkOWmXaQI5j7kwrdWejtHO0N3C2Z7exrHDoSMgkbGEzQLsjSpF9txAZ7s0XiEDpO0NqW2HmXPRX1J9TR5NLGlXtit5bfptlpp+MJRPOSe05400Zxu9XuFDTYRJGvfPof8FwoIWfc+tAfH/HT5aexD7swr8qd8m/5lM9LM//GX4Sl1bwWTwFCQOKcaY9DmajhDnRzJnPlU6H01BXFsPOle19koXc6hzXVgP0mWvYE+qP+8e4Nmu6lO3bMiD9NKGo8DOdxbou0fk0Kw7ks6BtmoODgDQaljR8gULK6AU4rA0arUNDAA1m90ZA5sDF5oBADTEzu3J0risMeZucNOdsuyPDWz3bQk6V4DRWxqjCpSDR5FTwAjQ+5MWXBVE4r45zI25UtUYEcxdVYtZBbhb5oLZPNkmgI5s9HuBpkkcbAvm4BHjFTdZB40gdhNgo88qbBGbrUU9PQXrzCm193C2CHqFEKw1lH1oJrUm+bgrWxReTwAA2PJ1iAVD+VR5Qn9u1HG2dPIKOU4YRUFny3Oe0+Fa9lox0Oo7xfS5xQZBt42BDU/lcdFWMOMzpRMD9vYZ1rtgiCrD0H8jEHbfpW4Mt70GtdFkYSPq+xnCllNasRnc2rHOZ+URQs+dn4pYXv9OPY8A6gxAOJkg6yOsE4uLpguZHsg6y/oqgkq4uVEhxDPvIwBIhabr1MdZyOlkmCP8Vhd0t20e87cfBfvs6hiPPeiFaH2d+uzMrHcz4KjloIJOM4M+62MDDxvtsQbjxCQbt8GLLXbCsmHRHQAvnDRv34wEHbx6bd9aoyBrSXUCnZ6SpUHBDpPqTKzsPexUD+L60KbtI7TF7O0uyLYue56J6cpnSXkGV05Osi6/G0GJ6IhCjaEgjDXwhe5f78p4Y09wS+/N5TosvxI64xWIYTQPqGfPHnc8+O92/0qjYbYLj0tMjckOW0HNRmiNMnHTlQg/lzhBb4K8AkwlJxvLEEkGE3ce3wHKVglBdSVChm4tAwSGtnYBix10IGJghyanlB3DJriIGRbu5G2We1N78MdX1fquYYv4ho1/RvJmf1hXhQAAwBGmhtyZwAQrgnvF4fhXPYeYR4DKUM+tjFPxkZ3ZYADA6qvvIvhrFnw1NH2hkKeXGC7EeCAK4UyOniFR57H7sMTcnTRwcKkvp3YvtKdSSgiU8g8wDWqZYQPTtnYZCpjOYIahXeeoOw7rPKXWC90JXmLtGahqU4ppyIQtN4pAU5r5AQFA1rAU8eGmga0ds3/phiWtWU4LU0ZbjA1ztz6eO5gspDsSkGpWfyGCHfTqetO4rRXewqujGLkX+Gf1Lp3FW3NcNwCJelY1EwcAMPWshiGX+ta7k66HOG0ZA9qoIWSdItZRzd6BETvPDAAQCxbsOzE+gffnYtxfJqQ03KHtkrNjO4KK7hg8c/+uYZjJ11IW4CaxvNZNbswaKvcjKTxYevX+1sDQRCQqwjDRNpqGsVa7uAZGFGJwH01j0dFgaFrCwaODLv2YSWmwu1k4iCJMyKklCiy3mZ4b30UZexnREVQ2VWVRB9OcvnkfAcBloTtWHru7WSHbutPlNtghGU8xaWCbd6UomUBnebZMLaF3V02FVdAtV0bbNdDVVffbbugcSiuubvgYdSunv1IHB7dAdAWh+gPinH4hAVR6gMiKkBeiPrGkaU5T7aEglxMrCtLOjVKxThV+BABLyFXisa8X+sg4VtB9EPIZep+jWUrP1cbaBaB465vYZx2756FIazlE0OGo5+MmZ/KwGRSDAQBz3karKVpvxWFpOEV3tT69Z2Ob5JutXP1cNl/tGvu3rpU6WqxVzs4aRv/Wbxevyj/dbY8f//BrL4ZWeY1LSXlsp6sNFSU1PJhuLpzJ563qgzyV3G4bDABoyUqwlxdwFvHSxWWX1C4yozxvl2AbCfvZyhLpzs0AUxSSOeAbixk9rhDCXGbj8N5jAZEQA+awsQbaYRU2NotjWUC8bsBXhHHrO0aIzT6CSg0RbT1Kf9LtDimhMnhiGJKScVoaK5WOJk1LY58pqAm4qdmO/I3BPLtqTkUrpaLnIGFRGAAwpH4sXVAFinMmTsNKKUSb8rywYYZywqYW56LxudRS6c7AZ5JRX9YwC0rIQDYpLTNz7ExUapdlw2IghhVhmzJ2ttywnRi0W0NscurU4RH7vgS93yTGFuWXtDCHf/sd/QZUXD11Sg2r6nIjtGkWan5AAAAvrCcKorjQtIS5DSpcmKjlmreMwb2WoPfvB3Regs7/HWP995ApkBXjiZTQw1yRxnMG12XiGjK7gKhSQK/8LD1ElsQBIsJ46D6kKc1PBhxdH+glVbAXb42pHaG9mncCAPQOh9rPtPBLi1XZD/kybsJEqh5cqB1ocrh6tFApONsqmLbnmQEAXsJmu6TtGtBO4TGWoHSX/rkI414ZusdQ1ZXG+Abq8FE0bmArrfcXXjdlEscg8e7KJq1tzoHNRbvcGbq15kKqBjvVMY2CNnaKMIIDDizEIycmLJhH4ao4/C61Y4a1Zczh377HQgwP6YFnFbQIANWYB8KK6+8OwZWn1dTCkFMRdKM8WfLOJnYLBQAAcyAnm7zQ0xDXlIFs1vCKsrCJ9ilG19jGsRTFU9DxnkVSXuKl/5t+i2xZ/uH+Tbd+0YPNWwFArgoDDKyP4tmAMdyrD+lcKqSt2wZCXC2JL0A2OQxXCF45Dm4Ywbe+lw7sJL9TbjUNiBdHhTZKtJQhooU6JHebuYXbOvMct1iVPDi4lfyaDQYAxBZaay+wejP3M3VYAofqHqcXJPGrjf5f0uXrvehTr0mEdZ/c8WEd8pvOsO6TOwGsCVVwjN1CJ9GX2RakVRQGALS5WaYsL5AOmkiJm3S8DLp2jt5lHT5o7ZVjs8gQ2bgmZmD5caJnyT3oABcaIWDXei4OWEgVw54ArLR2IXpwOgLWEDEQmKudbGL7vUjRvWJhx6S913XEt/MSH9KP/fxrqg6/8naqN/iIBJrBJm6MWMpDCP0twyUbBSXQnhP/BmV+a9wi1cdpz3SGOQ9lTi5wVriEkzgdmnihstSmOlMgjocFnRVcffXBu+DkvV/cmphZnZ1HwuXMBU2QQZ/xPtTDcjMjDAAYb0tVLVpXY5dOQ9kDMyizKpyrXKybsc/8vCkhvilhzww3kx5zbeaEqgH40QUP8yxEnQOCMKJ0pTDNo8CvMRj53d6jt2Sx4U/XxVaMJwkGQ+J1mnMGxbtgSvRTNy/l6QJ8Kj9JYT0V/ucKz6xgnsqFPci2jG4h25hFE91Kb1sWBro17BcWEWWx3QGtBkWu3bNd7OrEbuxD7zdD1Q6IqApxPS0ijqWsAuY6jHGnyJgkxfB0sGe+f64DZEy3B/g2TNMj3nR2DLhM/ZNDr8ffb6cgXqdyO2HRmH6HgS4GcrORm2FdIIueC42TAMzOWNuGzETx1PINGxO9tDXt4ih594efUwj3hkCN/QR+ga1nhgn/HveOfKcex3svfv3a/IaHHf6apJ+hgEwTIgnw4r5O/DboyQo/wZcvI/ulwEHntwFLtodY0ioBm0WiONBj+83XFs+V33cDAeXFvG6fqP6FgM3Km+f0H07cUmuhBmhbzL3r+WMXwqJJ05ksioWJN1GXF0jo8itXMqwgsG4wLy9Ogx0Xf5uhb1TirSupnQZrNwrcnB0AAIT1jHwxF9AXtBqzsNZJh4Wrtw7LpWinIFahGQAQ0Vwpp20MA6mOzcAE5f5NYApK0aOlvtDnmSIpFPBVGuaRtBBM4TsVYzh2Ae+fw/3IP5n1H5V7uSqEblV7kp6jdQfxjQjTqv2Q7lNJwikAiqTlTQgEPdol6tWGIQtgMETYU1OcdypMb3/iY9jemyCWcP/72CLoMvwXOzLN4MQbsVU2yiPmvADKMXSAHDZonFo8gIWFetYN3eZZlcWBbo2Z0UWQ4BoD3tgiSxYAgK4xyf3x3o3ewnRsuIGuzFmyKQAc6wyjYgHe9iKU1AEIts5W8VYkVu247rS7XdhLtC4KiL2MtX0y2Mfucoy0+e6l9umqown3mD8ou7t/8dYH8mfAauKZnE0dHq3p7Plmu6KHXaUYDAA46GGtzaxf4NqGRbfkI7+Hpz3yeXxJvvhcRfZ6Tf1bD2VOCE97SpzSSd9UylW6o6nD2kN5gwalOlOc1XNqFDTyMLKKwQAAnh4aXo7BIH1TG5d677DSGuPpPBva5oNTt79vYB2iUcwptt8GxtdQN88J38I8MgsQN1UVpeJj+RHyvfp2sZ0YGw6FN2HcCBL3OZ3KyR6DgwpCUfEibONrRUVaqx6zJ9e3UPxLs4O52v43Z+tCv6qGQzV/np76xqg/T2hBiwljyzMhNXRBgIjSMtJAxKpFroOIiEHGFC5ty3MGkIYM04Mtn3GsxuutLPFRUXUbWS/MG5f/401oD6HgDnFr/uxapz2NN2jieQMAQLLQK0mdy0y446HXgwVvG47Omc+AQOMy+Fzl3SvtSlVwPhgAoDo9Fju7rkbuG0ppzjhuiTKqeO6Uo3c9FWOQK3l1YGKi/MpQGg6TM0YsLzT7zIF2VYRS4TCDQk7OGHs4qrTMGcBxrF3OAY47iOE82Oc7A+jmSvvSNmhvG4CbhYlMZh0qOJYh5Y0B9kmnULW4ZLtntL082l4SbQ8wbR+mLd4IU2r6RptNNLUR5RUj2z2l7Tm0if+QeNLS9cO0JVOClZqm0wZkzjhkMDhXmhj9V6PMQnWuW/Hq1CZSwG1rCyKzAgawoMqYbAC8nOEm+BBB45bq0xA/bjYc7+7gc2DHQzV53zdORzqs1iP1kUfgzb+H8SOLE3bchEU14ft0Q2FHqwGvMjfkwx6rcj5o8g61v1imbkCo2v6dozCLX0m8310Ri7fRlg5sC/fqWr2dzxFogsfY3Le1aOtTsm4K6uapwR0m+P/xfafj1i+Lhk6ICZekpVdtP9Tqk3TucPYeYUvNMQMAjgHQwoI2YAi1VqLkps+Mw9z1j4gV1NS9dwNkbEU2la4m9+9uXdPGvKtLtoZQdqgeN4Y4NZybQ+x8oCwkpAubxMkDZnbjyhp961Y6bX3GOvVF2DaO7+NHRLoc/hL+pXf5FW157RNaY2mu0ofLXgV7OxtiVBihEcmklwBtMFpVNZM5YNynXWb6yHkIxmxzYYZ1smdEg2lOwJ7xGcFzEbDlgkUwNmDkYB16ASY+q3DXAE9EPep06HZQq8+oYgxAKaSB7Ah2k9w62dDcvAUAAIPR6iaxLyA0esTVyHTDMDhV4g7wVJ1hfBNgZroUZUvTSQYsmLPVmjnBKj7j7iQ4V6x6QnSVAs4VxSf1V5FxrrHrFfr1wcPW3yIYiHkUDEbp0TAEINUV/aEMnaPA9btt8e2jP0zf4NgnO588NKCUCQ4eXIZF2paC3r6XrDtojwVhAEBbDxWgrGu6GuXQ+NYN4nn0kL3WBwu/QPB5GNBqY3bTphI7i6vgM6QZ0WEvuXVWqooF9ZrdCH0Y4vUsOBEGADiCkDFoGquasyGm88YcXo9arGhKUdOawaMQL8+7YjEKOfSG9JpkK+NOydROKkdcbCe1atDSOeqFAp9qoDlWUe8wbzUDmEd551nfa7+PX9jDkzH3aXZ5AACYxsyWZxqL0oOiGcTQOqb0uQ7RkL4R72zKwHSSTUmto233zqi0kVwZVZ6ZfJ704CS8HjlFoWNHFYFNR6IKcfdzfseeRWY9DTtRu1wAOwkxXIh9sTDQrbLR3hvrU9nY2JOsVaI92NSpUof0SAWy6hLdyhLR4KXxbfeFHLi2LB1TGZUaw4Yr9QL7zksX2ceEWu7+VPYBzyVYpR3bZGNqvB7kVKYZhDg0LHW4f4cwbJ/anMVmt7WFirBOaWNpsdVVqhvvgLlyHMt2R/+hCvsqp9+5wR3IPaRyFArW3fni7o5DsF5EiGAla+owTD5WIbW5V4p7yN2oGPdEKesAAAdJYgRFGwZabT0YRNorHeF2tmgGAByOpWfbEgxqtg3U6b+++9/sOFISU5J2eyfo25v/2V/i70DjXokpKevoc/H6F5Yrz1UOHJ723EZ+/32ZbvkXktPTPfZywibs/M/XcfZ/stX2fC9KZClLhXCVzCgkGZhV+mZoyFi+jCA7GYZdIEp51u9UplvYts3gLRSsK48a9sJEYJ3IsEGfXk6NdafyAAd0Ej7r5rQqNMyZC3PIFJHDV8agd0nSHPhJbFh480fNXQAAFtvb/0ck6KuHr+ZB75KAXoGLOouR8OOyxgQAwLLep+xy2GFg3Xva/6v1gsnwh4mVLnSWSVfBrpKL0rs+lILl9BlrMy1L4dR7RZgYWTQcCwA8TNvSfnZ2H/YwodXfQRaqRjvdNgx+A2BwYYJPeW4tB+JGVxHLrB1thkeLpaJLkLgoDADYwerOQQhwg/7sdHu35/2zJa/JPfUh7mAd9VNCvXLyINiCX4xLF/sBOnRNPH/w6FAHZolJyAP08WEJ5Cq/XUieuyxS5bdnZfCOlt6C5rneDo7eepeDAQB6B1qaziwu0MBwpf2+1fQe/MPkF9mmxM2C61rleS6szE5BZ2gr1zExUa4bgLtvRNn7LdOe/02/6O5No4oHfdZr32MM4ljugHwwlo/6KniqTBCvBvCEVYyvDXhu5YtvsXQK3i7E4Mssx2inAAMoPXuyU1wcG9TigVK8boV3LvW92xFfPclcT0ixXv0UKeryqyT4g083leqZ3vbKR60REtvzznubznoG9+H7mzuPAHQeIPilAtYg2dheQD4/TJ9Kl3dgklxDz60bQ4duadDf073dexFk+BzKii0vYFF8CzbgAMRQoC5q9fRa91fiWPefWbAXy7dP4eVfe1LeuXtbDwrWp1WXB9frc+PfwTZPm+6zEV/glYgpiTsf1OuH3HHvG34h3fmQXRWHc2R3ARqdMOUo/Sia6l9LH4bhvtnqy0s+6CUKlP2dw0RY0j3SGo8/tUPZ6/rsFzaakg3ydCB5XLhXKX1qmdtBeI/whzTEOyd5+VIb+NGxCLaW2KdgdG6Ok6nJxTGRgFOM3qELTunQIN1wTrXxzJnAbZyC7ix9l3ZlRxaEAQCOLXmHr7GgrSp5pTLy6rnyRXmHtzCvuwE6M4vge15452bhRm8LwKKNAVYpYr8Oa2kThF2dLrQOa2+rGHYtDutI+cJezzEB6/QUO7ngFXZ7DCA2zRV2D01aNgfYpg2ipRrYHA2pvQqQYV/KaR40kf3qzt0oL8ftcfy9lHGt+FLu+KCRWUwAQEfvswaJnBSmhVzjfTA97L4/SKQJ6oLaLw62BLunrfHM5roBMpyqYgoLZDbfglMziFzp4+8Bf7dJN7jtZb3KQecXHoef+217+3Gz7cH27s7s1aERt5SZ4dwMYxrfFrIyLQ==","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),wWe={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},BWe=wWe;var BO={};ct(BO,{default:()=>bWe});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} +`),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let P=typeof S=="string"?S:S.path,F=K.isAbsolute(P)?P:K.resolve(K.fromPortablePath(s),P);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} enableTelemetry: false -`);let l=(m=this.packages)!=null?m:[this.command],c=P.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` -`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=Qe.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var b4e={commands:[tp,Hu]},Q4e=b4e;var vO={};ct(vO,{default:()=>P4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Hr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>Kb,makeBufferFromLocator:()=>SO,makeLocator:()=>QO,makeSpec:()=>iAe,parseSpec:()=>bO});function bO(r){let{params:e,selector:t}=P.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?P.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:P.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return P.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function QO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return P.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Kb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=P.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:P.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await Kb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var Ub=class{supports(e,t){return!!e.reference.startsWith(Hr)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Hr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Kb(e,{protocol:Hr,fetchOptions:t})}};var S4e=2,Hb=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(Hr)}supportsLocator(e,t){return!!e.reference.startsWith(Hr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${Hr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=bO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(P.makeLocator(e,P.makeRange({protocol:Hr,source:n,selector:n,params:{locator:P.stringifyLocator(s)}})),{protocol:Hr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S4e}`,o).slice(0,6);return[QO(e,{parentLocator:s,path:n,folderHash:a,protocol:Hr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jb=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:Hr}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var Gb=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(Hr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=P.makeDescriptor(e,`${Hr}${e.range}`)),P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(Hr)?e.range.slice(Hr.length):e.range;return[P.makeLocator(e,`${Hr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var v4e={fetchers:[jb,Ub],resolvers:[Gb,Hb]},P4e=v4e;var PO={};ct(PO,{default:()=>R4e});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(x4e(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function x4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var Yb=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var D4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new Yb;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},R4e=D4e;var xO={};ct(xO,{default:()=>N4e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qb=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var Jb=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[P.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var F4e={fetchers:[qb],resolvers:[Jb]},N4e=F4e;var FO={};ct(FO,{default:()=>T8e});var NAe=ve(FAe()),RO=J("util"),ju=class extends Pe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ge.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:P.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Fr&&me.isTaggedYarnVersion(Fr)?`yarn@${Fr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} +`);let l=(m=this.packages)!=null?m:[this.command],c=x.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` +`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ye.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Gt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Gt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var QWe={commands:[tp,Hu]},bWe=QWe;var vO={};ct(vO,{default:()=>xWe,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Hr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(Hr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Hr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:Hr,fetchOptions:t})}};var SWe=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(Hr)}supportsLocator(e,t){return!!e.reference.startsWith(Hr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Hr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:Hr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:Hr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${SWe}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:Hr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jQ=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Hr}),s=v.isAbsolute(n)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var YQ=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(Hr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Hr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(Hr)?e.range.slice(Hr.length):e.range;return[x.makeLocator(e,`${Hr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var vWe={fetchers:[jQ,UQ],resolvers:[YQ,HQ]},xWe=vWe;var xO={};ct(xO,{default:()=>RWe});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(PWe(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function PWe(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var GQ=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Gt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var DWe={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new GQ;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},RWe=DWe;var PO={};ct(PO,{default:()=>TWe});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qQ=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var JQ=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var FWe={fetchers:[qQ],resolvers:[JQ]},TWe=FWe;var FO={};ct(FO,{default:()=>N8e});var TAe=ve(FAe()),RO=J("util"),ju=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Gt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ye.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Fr&&me.isTaggedYarnVersion(Fr)?`yarn@${Fr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} `);let a=v.join(this.context.cwd,ot.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)} -`,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${P.stringifyIdent(n.name)} +`,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${x.stringifyIdent(n.name)} `),!i||i.cwd===this.context.cwd){let u=v.join(this.context.cwd,St.lockfile);M.existsSync(u)||await M.writeFilePromise(u,"");let h=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(F=>`${F} `).join(""),p=v.join(this.context.cwd,".gitignore");M.existsSync(p)||await M.writeFilePromise(p,h);let m=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(F=>`${F} -`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,NAe.default)(B,t.get("initEditorConfig"));let S=`root = true +`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,TAe.default)(B,t.get("initEditorConfig"));let S=`root = true `;for(let[F,H]of Object.entries(B)){S+=` [${F}] `;for(let[q,_]of Object.entries(H)){let X=q.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);S+=`${X} = ${_} -`}}let x=v.join(this.context.cwd,".editorconfig");M.existsSync(x)||await M.writeFilePromise(x,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=Qe.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var N8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},T8e=N8e;var NO={};ct(NO,{default:()=>O8e});var cA="portal:",uA="link:";var Wb=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[P.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Vb=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=P.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var Xb=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[P.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[Vb,Wb],resolvers:[Xb,zb]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,TAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=be.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var T8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},N8e=T8e;var TO={};ct(TO,{default:()=>O8e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[VQ,WQ],resolvers:[XQ,zQ]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,NAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=G8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${u}, next tree: ${eE(a)}`);let h=KAe(a);if(h)throw new Error(`${h}, after hoisting finished: -${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let x=t[S];for(let F of B){if(x.peerNames.has(F)&&x.originalDependencies.has(F))continue;let H=x.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(x.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},Zb=r=>`${r.name}@${r.locator}`,G8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,x,F,H)=>{if(u.has(F))return;let q=[...S,Zb(F)],_=[...x,Zb(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let N of O.dependsOn){let ce=X.get(N.name)||new Set;ce.add(te.name),X.set(N.name,ce)}}let Z=new Set,A=(te,O,N)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:N});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let N=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(xe=>Di(xe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(xe=>Di(xe.locator)).join("\u2192"))}if(!N)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)N.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: -${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(Zb(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>Zb(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},Y8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,x=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:x?x.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} +${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},NO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=Y8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,Y8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of NO(F)){let O=j8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let T of O.dependsOn){let ce=X.get(T.name)||new Set;ce.add(te.name),X.set(T.name,ce)}}let Z=new Set,A=(te,O,T)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:T});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let T=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!T)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)T.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: +${eE(r)}`)}let ue=NO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(NO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` +`)},G8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:NAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:NAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} `,l+=t(u,s,`${o}${cOAe?` Tree is too large, part of the tree has been dunped -`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=P.isVirtualLocator(r)?P.devirtualizeLocator(r):r,i=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e;return P.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,x,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>P.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(x)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let xe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,xe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=P.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(xe)){let fe=Z.get(Ye);if(fe){let re=P.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(xe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${P.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ye);if(re){let de=re.target,Ze=P.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,G)||t.push({messageName:71,text:`Cannot link ${P.prettyIdent(e.project.configuration,P.parseIdent(xe.name))} into ${P.prettyLocator(e.project.configuration,P.parseLocator(`${m.name}@${m.reference}`))} dependency ${P.prettyLocator(e.project.configuration,G)} conflicts with dependency ${P.prettyLocator(e.project.configuration,Ze)} from sibling portal ${P.prettyIdent(e.project.configuration,P.parseIdent(re.portal.name))}`})}else N.set(Ye,{target:G.reference,portal:xe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(x),ye=se?x:v.relative(l,K.toPortablePath(Re.packageLocation))||Te.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,xe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Te.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(Gu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:x}=s(d.name),F=x?[x,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Gu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=P.parseLocator(A.locator),O=P.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${P.stringifyLocator(te)} and ${h}/${P.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${P.stringifyLocator(te)} and ${h}/s${P.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,P.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),N=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([N])});else if(ce.dirList){if(ce.dirList.has(N))break;ce.dirList.add(N)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var xle=ve(zr()),kle=J("url");var GAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_b(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ +`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Yu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let T=0;X?T=2:d.linkType==="SOFT"&&m.name.endsWith(Yu)&&(T=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:T===1?new Set:d.packagePeers,dependencyKind:T},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let T=na({name:y.identName,reference:y.reference}),ce=n.get(T)||new Set;n.set(T,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let T=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(T){let ce=new Set([...Array.from(T.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(T.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Yu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let T of ne)Z.set(`${T.name}${Yu}`,T.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Yu)&&!X;if(!_&&!ue){let T=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Yu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ge,ie]of Re.packageDependencies)if(ie!==null){let Y=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ge}@${ie}`);if(na(Y)!==na(Pe)){let fe=Z.get(Ge);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ge}@${fe}`);HAe(re,Y)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,Y)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=T.get(Ge);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ge}@${de}`);HAe(Ze,Y)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,Y)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else T.set(Ge,{target:Y.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Ne.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Ne.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(Yu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Gr(g),name:Gr(h)}:{scope:null,name:Gr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Yu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),T=Gr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([T])});else if(ce.dirList){if(ce.dirList.has(T))break;ce.dirList.add(T)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var YAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ `;let o=0;for(let a=0,l=i.length;a"u"||(o!==0&&(s+=",",s+=` -`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_b(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` -`),s+=t,s+="}",s}function _b(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} +`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_Q(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` +`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=YAe[t],s=n[r]||n["*"];return GAe(e,s,i)}function GAe(r,e,t){let{collapsed:i}=YAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return GAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} `:"",`/* eslint-disable */ `,`"use strict"; `,` @@ -633,72 +633,72 @@ Tree is too large, part of the tree has been dunped `].join("")}function aze(r){return[`var path = require('path'); `,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); `,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function jO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var x;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(x=d.discardFromLookup)!=null?x:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eQ=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(GO(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||GO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var YO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Gu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),GO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}GO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(GO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(YO(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||YO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Gu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;sparseInt(r,10)),EBt=jr>16||jr===16&&Fn>=12,IBt=jr>17||jr===17&&Fn>=5||jr===16&&Fn>=15,yBt=jr>17||jr===17&&Fn>=1||jr===16&&Fn>14,mle=jr>19||jr===19&&Fn>=2||jr===18&&Fn>=13,wBt=jr===20&&Fn<6||jr===19&&Fn>=3,BBt=jr>19||jr===19&&Fn>=6,bBt=jr>18||jr===18&&Fn>=1||jr===16&&Fn>=17,QBt=jr>=21||jr===20&&Fn>=10||jr===18&&Fn>=19;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tQ=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let x=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=x,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe{let G=JSON.stringify(ie.name);if(ge.has(G))return;ge.add(G);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let G of[...ye.get(ie)].sort())Ye.push({name:ie,reference:G});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function N(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tQ(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let G=_(se,Ae);if(G===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),t}var Ele=J("module");var[jr,Fn]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=jr>16||jr===16&&Fn>=12,IBt=jr>17||jr===17&&Fn>=5||jr===16&&Fn>=15,yBt=jr>17||jr===17&&Fn>=1||jr===16&&Fn>14,mle=jr>19||jr===19&&Fn>=2||jr===18&&Fn>=13,wBt=jr===20&&Fn<6||jr===19&&Fn>=3,BBt=jr>19||jr===19&&Fn>=6,QBt=jr>18||jr===18&&Fn>=1||jr===16&&Fn>=17,bBt=jr>=21||jr===20&&Fn>=10||jr===18&&Fn>=19;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ge,ie,Y,fe,re,de;let Ae=(Y=(ie=(Ge=process.stderr)==null?void 0:Ge.hasColors)==null?void 0:ie.call(Ge))!=null?Y:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ge=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ge))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ge,"utf8"));if(ie.exports==null)return null;let Y=v.contains(oe,se);if(Y===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Y!=="."&&!a.test(Y)&&(Y=`./${Y}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ge)),packageSubpath:Y,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(Y),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ge;if(oe&&oe.main&&(Ge=v.resolve(se,oe.main)),Ge&&Ge!==se){let ie=H(Ge,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ge=ye.length;oe{let Y=JSON.stringify(ie.name);if(ge.has(Y))return;ge.add(Y);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ge=[];for(let ie of[...ye.keys()].sort())for(let Y of[...ye.get(ie)].sort())Ge.push({name:ie,reference:Y});return Ge}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function T(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tb(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let Y=_(se,Ae);if(Y===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(G)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,G,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). +`,{request:ge,issuer:oe});return K.toPortablePath(Y)}let Ge,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,Y,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). Require path: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(G),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;riS(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:Y});else{let gr=ue(Y,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tQ(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:Y}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:Y}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${Y}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Tr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:G,reference:Ze},ti=B(Tr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Nr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:Y,reference:Ze},ti=B(Nr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. -Required package: ${Tr.name}@${Tr.reference}${Tr.name!==ge?` (via "${ge}")`:""} +Required package: ${Nr.name}@${Nr.reference}${Nr.name!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Tr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=x,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). +`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Nr)});let ui=ti.packageLocation;fe?Ge=v.join(ui,fe):Ge=ui}else if(v.isAbsolute(se))Ge=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let Y=v.resolve(Ae);Ae.match(o)?Ge=v.normalize(v.join(Y,se)):Ge=v.normalize(v.join(v.dirname(Y),se))}return v.normalize(Ge)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ge;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),Y=te(se);if(Y){let{packageLocation:fe}=B(Y),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ge=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ge:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). -Missing package: ${G.name}@${G.reference} +Missing package: ${Y.name}@${Y.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let de=fe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`${de} -Missing package: ${G.name}@${G.reference} +Missing package: ${Y.name}@${Y.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. Source path: ${ie} ${ye.map(fe=>`Not found: ${ho(fe)} -`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function xe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:x,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return xe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tQ(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=yr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var jBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(Qle());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rQ,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return P.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${P.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rQ(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${P.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${P.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${P.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),P.slugifyLocator(r))}var wze=new Set([P.makeIdent(null,"open").identHash,P.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:P.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?P.makeLocator(P.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=P.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=P.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let x=a?P.devirtualizeLocator(e):e;g=this.customData.store.get(x.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(x.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(x,e.version)}let p=c?rQ(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let x of e.peerDependencies.values())B.set(P.stringifyIdent(x),null),S.add(P.stringifyIdent(x));if(!o){let x=P.devirtualizeLocator(e);this.virtualTemplates.set(x.locatorHash,{location:nM(this.opts.project.cwd,yr.resolveVirtual(m)),locator:x})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(P.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,P.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:P.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:P.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rQ(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Qo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Te.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=P.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${P.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${P.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var Ple=ve(Bn());var Ju=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=P.parseDescriptor(p),m=d.range!=="unknown"?d:P.makeDescriptor(d,"*");if(!Qt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${P.prettyDescriptor(t,m)})`);return y=>{let B=P.stringifyIdent(y);return!Ple.default.isMatch(B,P.stringifyIdent(m))||y.version&&!Qt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!P.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let x=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&x)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>P.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(P.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${P.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:P.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=Qe.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function bze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&xle.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function Qze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:Qze,setupScriptEnvironment:bze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,kr="node_modules",iQ=".bin",jle=".yarn-state.yml",Yze=1e3;var nQ=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(P.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,kr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sQ(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return P.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!P.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(P.stringifyIdent(e))||s.set(P.stringifyIdent(e),e.reference);let a=e;if(P.isVirtualLocator(e)){a=P.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(P.stringifyIdent(g),null),o.add(P.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=P.areIdentsEqual(n,s)?s.reference:[P.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(P.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=P.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:P.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:P.makeLocator(P.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:P.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=P.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=P.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ge}=ye,ie=T(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let Y=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!Y()?ce(se,ie,Ge,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=yr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=T(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var jBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rb(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,yr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new bo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Ne.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(Bn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!bt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!bt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=be.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function Qze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function bze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:bze,setupScriptEnvironment:Qze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,kr="node_modules",ib=".bin",jle=".yarn-state.yml",Gze=1e3;var nb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,kr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will `,s+=`# cause your node_modules installation to become invalidated. `,s+=` `,s+=`__metadata: `,s+=` version: ${Hle} `,s+=` nmMode: ${i.value} -`;let o=Array.from(e.keys()).sort(),a=P.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` +`;let o=Array.from(e.keys()).sort(),a=x.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` `,s+=`${JSON.stringify(u)}: `,s+=` locations: `;for(let h of g.locations){let p=v.contains(r.cwd,h);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` - ${JSON.stringify(p)} @@ -707,10 +707,10 @@ ${ye.map(fe=>`Not found: ${ho(fe)} `}if(u===a&&t.size>0){s+=` bin: `;for(let[h,p]of t){let d=v.contains(r.cwd,h);if(d===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` ${JSON.stringify(d)}: `;for(let[m,y]of p){let B=v.relative(v.join(h,kr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)} -`}}}}let l=r.cwd,c=v.join(l,kr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,kr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,kr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=P.parseLocator(c),y=P.makeLocator(P.makeIdent(d,m),p),B=P.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sQ=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sQ(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==kr){let B=await o(d);for(let[S,x]of B)h.set(S,x)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===kr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let x=e.get(c);if(x){let F=v.join(c,kr,iQ),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of x)q.has(X)&&_.set(X,W)}else s.set(c,x)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:x}=B,F={children:new Map,linkType:S,locator:x};if(h.children.set(u,F),x){let H=me.getSetWithDefault(o,x);H.add(m),o.set(x,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(P.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(kr)&&l(c,kr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=P.parseDescriptor(r);return P.isVirtualDescriptor(e)&&(e=P.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=P.parseLocator(r);P.isVirtualLocator(t)&&(t=P.devirtualizeLocator(t));let i=P.parseLocator(e);return P.isVirtualLocator(i)&&(i=P.devirtualizeLocator(i)),P.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,kr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Gle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let N=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of N){if(!O.innerLoop&&ce.name===iQ)continue;let he=v.join(ue,ce.name),xe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==kr||O&&O.innerLoop)&&(await M.mkdirPromise(xe,{recursive:!0}),await ne(he,xe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,xe):await M.copyFilePromise(he,xe,Ule.default.constants.COPYFILE_FICLONE)}}catch(N){throw O.innerLoop||(N.message=`While cloning ${ue} -> ${te} ${N.message}`),N}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!1});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!0});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,x=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),N=e.get(ue.locator),ce=N.target,he=te,xe=N.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=P.parseLocator(ue.locator);P.isVirtualLocator(De)&&(De=P.devirtualizeLocator(De)),x.push({srcDir:ce,dstDir:he,linkType:xe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,N=e.get(X),ce=P.parseLocator(X);P.isVirtualLocator(ce)&&(ce=P.devirtualizeLocator(ce));let he=ce.locatorHash,xe=N.target,De=Z;if(xe===De)continue;let Re=N.linkType;for(let se of ne)te=te.children.get(se);if(!ue)x.push({srcDir:xe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){x.push({srcDir:xe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=Pi.progressViaCounter(x.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of x)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of x){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,kr,iQ);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,kr,iQ),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var oQ=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=P.parseLocator(h.locator),d=P.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nQ,oQ]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>Pt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var Pt={};ct(Pt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>bl,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>aQ,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):aQ({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return aQ({configuration:e,type:t});let n=i.get(t);return n===null?aQ({configuration:e,type:t}):Co(n)}function aQ({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lQ(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function bl(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await AQ(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await AQ(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lQ(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function AQ(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`}}}}let l=r.cwd,c=v.join(l,kr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,kr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Gr(B),K.toPortablePath([m,kr,S].join(v.sep)))}if(a.set(c,{target:Ne.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Ne.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Yle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Gr(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Yle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Gle(r,e,t){let i=v.join(r,Gr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Ne.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==kr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Gle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===kr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,kr,ib),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(kr)&&l(c,kr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Gr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,kr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Yle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let T=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of T){if(!O.innerLoop&&ce.name===ib)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==kr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(T){throw O.innerLoop||(T.message=`While cloning ${ue} -> ${te} ${T.message}`),T}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!1});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!0});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),T=e.get(ue.locator),ce=T.target,he=te,Pe=T.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,T=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=T.target,De=Z;if(Pe===De)continue;let Re=T.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,kr,ib);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,kr,ib),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Gr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var ob=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nb,ob]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>ab,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):ab({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return ab({configuration:e,type:t});let n=i.get(t);return n===null?ab({configuration:e,type:t}):Co(n)}function ab({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lb(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await Ab(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lb(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),i}function lQ(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cQ=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=P.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=P.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}};var uQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!P.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=P.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=P.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=P.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:P.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=Qt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${bl(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gQ=P.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fQ=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!Qt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=P.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Qt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=P.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:P.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=P.parseRange(s,{requireProtocol:cr}),a=new Qt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>P.makeLocator(e,s))}async resolve(e,t){let{selector:i}=P.parseRange(e.reference),n=Qt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(bl(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gQ.identHash)&&!o.peerDependencies.has(gQ.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gQ.identHash,P.makeDescriptor(gQ,"latest")),t.report.reportWarningOnce(32,`${P.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=P.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=P.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ts.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[P.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>OQ,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Bn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await OQ(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(vr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,x)=>{d=S,m=x}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function OQ(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let x of D9e)i.reject.push(x);for(let x of k9e)i.accept.push(x);i.reject.push(t.get("rcFilename"));let n=x=>{if(x===null||!x.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,x),H=v.resolve(Te.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(x=>x.populateYarnPaths,e,x=>{n(x)});for(let x of e.workspaces){let F=v.relative(r.cwd,x.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Te.root,o)),a!=null&&s.accept.push(v.resolve(Te.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Te.root,l));for(let x of c.values())s.accept.push(v.resolve(Te.root,x));if(l instanceof Map)for(let[x,F]of l.entries())s.accept.push(v.resolve(Te.root,x)),typeof F=="string"&&s.accept.push(v.resolve(Te.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let x of r.manifest.files)Fue(s.accept,x,{cwd:Te.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Te.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!Pue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Te.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;Pue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Te.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function Pue(r,{globalList:e,ignoreLists:t}){let i=LQ(r,e.accept);if(i!==0)return i===2;let n=LQ(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=LQ(r,s.accept);if(o!==0)return o===2;let a=LQ(r,s.reject);if(a!==0)return a===1}return!1}function LQ(r,e){let t=e,i=[];for(let n=0;n{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await OQ(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=Qe.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function N9e(r,{workspace:e}){let t=r.replace("%s",T9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function T9e(r){return r.manifest.name!==null?P.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=P.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${P.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;P.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?P.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][P.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Gue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=P.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Gue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${P.stringifyIdent(t)} -`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cQ,Ts],resolvers:[uQ,fQ,hQ]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Bn());As();var MQ=(i=>(i.All="all",i.Production="production",i.Development="development",i))(MQ||{}),KQ=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(KQ||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[P.stringifyIdent(t)]=P.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>P.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[P.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(P.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends Pe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Xi(MQ)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Xi(KQ)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await Pt.post("/-/npm/v1/security/audits/quick",l,{authType:Pt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=Qe.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ns=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ns.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ns.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ns.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ns.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new bt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=bt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gb.identHash)&&!o.peerDependencies.has(gb.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gb.identHash,x.makeDescriptor(gb,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ns.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>Ob,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Bn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Gt.hasWorkspaceScript(r,"prepack")||Gt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Gt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Gt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await Ob(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(vr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Ob(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Ne.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Ne.root,o)),a!=null&&s.accept.push(v.resolve(Ne.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Ne.root,l));for(let P of c.values())s.accept.push(v.resolve(Ne.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Ne.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Ne.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Ne.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Ne.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Ne.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Ne.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=Lb(r,e.accept);if(i!==0)return i===2;let n=Lb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Lb(r,s.accept);if(o!==0)return o===2;let a=Lb(r,s.reject);if(a!==0)return a===1}return!1}function Lb(r,e){let t=e,i=[];for(let n=0;n{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await Ob(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=be.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function T9e(r,{workspace:e}){let t=r.replace("%s",N9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function N9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Yue=ve(Hue()),Gue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Yue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Gue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} +`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ns],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Bn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Xi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Xi(Kb)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=be.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -724,25 +724,25 @@ ${ye.map(fe=>`Not found: ${ho(fe)} If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends Pe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=P.makeDescriptor(F.manifest.name,"unknown")}else u=P.parseDescriptor(c);let g=Pt.getIdentUrl(u),h=d1(await Pt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:Pt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=Qt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${P.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},x;if(n!==null){x={};for(let F of n){let H=S[F];if(typeof H<"u")x[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${P.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),x=S;l.reportJson(x),this.json||s.push(x)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} -`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=Qe.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends Pe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=Qe.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function UQ({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:Pt.AuthType.NO_AUTH};try{return(await Pt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:Pt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await Pt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await Pt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends Pe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=P.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=Qe.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends Pe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await Pt.get(Pt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await Pt.put(Pt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=Qe.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s;if(typeof this.package<"u")s=P.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:P.makeDescriptor(s,c),locator:P.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=Qe.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=be.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Gt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=be.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=be.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${Pt.getIdentUrl(r)}/dist-tags`;return Pt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:Pt.customPackageError})}var og=class extends Pe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=P.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${Pt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Pt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=Qe.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends Pe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=P.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${Pt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await Pt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=Qe.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends Pe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await Pt.get("/-/whoami",{configuration:t,registry:i,authType:Pt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?P.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=Qe.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jQ,diffFolders:()=>b1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>Q1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),bVe=r=>({header:yVe(r),parts:[]}),QVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let x=n||d;if(!x)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(x),mode:HQ(l),hash:h})}break;case"file creation":{let x=s||m;if(!x)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(x),mode:HQ(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:HQ(o),newMode:HQ(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function HQ(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function PVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jQ(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!Qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>NVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>TE,parseLocator:()=>NE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Ne.root,v.resolve(Ne.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:Hb(o),newMode:Hb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Hb(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jb(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!bt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` `)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` `):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,vr.SAFE_TIME,vr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=P.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?P.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,P.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,P.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,P.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:P.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return P.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return P.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},P.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return P.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},P.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:P.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function b1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function TE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function NE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function Q1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function Q1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!Qt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var GQ=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${P.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:P.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=P.getIdentVendorPath(e),h=await on(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jQ(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let x=t.project.configuration.get("enableInlineHunks"),F=!x&&!m?" (set enableInlineHunks for details)":"",H=`${P.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!x||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var YQ=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:P.bindDescriptor(e,{locator:P.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=Q1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends Pe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await b1(o,s),c=await M.readJsonPromise(a),u=P.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${P.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(P.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=P.isVirtualDescriptor(m)?P.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:P.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:P.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=Qe.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends Pe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=P.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:P.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var Yb=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=NE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await on(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Ne.root,g),{baseFs:y});try{await jb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Gb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=TE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=TE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=TE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=NE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=be.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${a.map(l=>` -- ${P.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:P.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${P.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=Qe.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var NVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[GQ],resolvers:[YQ]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qQ=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=P1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${P.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=P1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return P1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,P.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=P.isVirtualLocator(e)?P.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=P.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${P.stringifyLocator(c)})`);let h=P.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await x1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await x1(dge(this.opts.project)),{customData:this.customData}}};function P1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=P.slugifyLocator(r),i=P.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!P.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=P.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>x1(v.join(r,s)))))}async function x1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qQ]},MVe=OVe;var wb=()=>({modules:new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",xC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",hn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",PO],["@yarnpkg/plugin-http",xO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",NO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Fr||"",pluginConfiguration:wb()});})(); +- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var TVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[Yb],resolvers:[Gb]},NVe=TVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qb]},MVe=OVe;var wQ=()=>({modules:new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",hn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",TO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Fr||"",pluginConfiguration:wQ()});})(); /*! * buildToken * Builds OAuth token prefix (helper function) diff --git a/.yarnrc.yml b/.yarnrc.yml index 20a162ba3..c1f9b38ea 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -11,7 +11,7 @@ plugins: - path: .yarn/plugins/@yarnpkg/plugin-exec.cjs spec: "@yarnpkg/plugin-exec" -yarnPath: .yarn/releases/yarn-3.8.1.cjs +yarnPath: .yarn/releases/yarn-3.8.2.cjs packageExtensions: "uniforms-bridge-json-schema@*": diff --git a/package.json b/package.json index 6cc34ca2a..ccd7f7486 100644 --- a/package.json +++ b/package.json @@ -22,5 +22,5 @@ "husky": "^9.0.0", "lint-staged": "^15.0.0" }, - "packageManager": "yarn@3.8.1" + "packageManager": "yarn@3.8.2" } From 3a73c81b9855b4ec26498988679f6d54330d6eef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 01:43:41 +0000 Subject: [PATCH 176/471] chore(deps): update dependency @storybook/addon-actions to v8.0.10 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index b44fdc02c..927279b82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3521,16 +3521,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.9 - resolution: "@storybook/addon-actions@npm:8.0.9" + version: 8.0.10 + resolution: "@storybook/addon-actions@npm:8.0.10" dependencies: - "@storybook/core-events": 8.0.9 + "@storybook/core-events": 8.0.10 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: 7cd7229935f271a4b9f578793ff269f455afdbe9dae1af8f047a4e339d95e825c4436ad2f140eaa246544e9775afae03ac2770b6527aad9fbe9f22ede4492311 + checksum: 013c1766f0bafbe4beb3413f2828a8c55dd8986182342200d8755c3e8b4acab7dd66973c1ee71a9ea5bcca016664d95f57f5360d964fc1580ae9eac607cf1e51 languageName: node linkType: hard @@ -3566,12 +3566,12 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.9": - version: 8.0.9 - resolution: "@storybook/core-events@npm:8.0.9" +"@storybook/core-events@npm:8.0.10": + version: 8.0.10 + resolution: "@storybook/core-events@npm:8.0.10" dependencies: ts-dedent: ^2.0.0 - checksum: 1a6dc9defdef590e26234db0bcae06bc102b0f13a324fbf617629bb9560348e94ee62ffc03981a9300c182b79e93db38ffb271c12b1504d92ade8b99a196635e + checksum: 4dff0bcad8dd4543b4c6e87447107589e63d6ad212cc4b6a989306951c053f70cca827382251b8cb8e6696ad0a308b14f2a918b5d5d18b91d3c196ab71edf7ec languageName: node linkType: hard From 9646cd4899df8506b64248a9bed75b752a17bb2e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 01:43:57 +0000 Subject: [PATCH 177/471] chore(deps): update dependency stylelint to v16.5.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 927279b82..405c90213 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12528,8 +12528,8 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.4.0 - resolution: "stylelint@npm:16.4.0" + version: 16.5.0 + resolution: "stylelint@npm:16.5.0" dependencies: "@csstools/css-parser-algorithms": ^2.6.1 "@csstools/css-tokenizer": ^2.2.4 @@ -12572,7 +12572,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: 0363d1eaa1663fa9f7b7b59a8a3cae527ed7cb9b61647da67770f989472595c9d368b8e72aef9dfc5e2ad856f1cbcf19118c4340c693a4fcddab3ab202677ae6 + checksum: 65271934af21e37117cc6586ebb46cb2629d5c247f05a0b39effca08bf6c85c1a4f489e5b04519e301e65d2f1996a395bc34d3b8ccbb4e7125d820381662ddc7 languageName: node linkType: hard From 5b849cb1f2adbecc6e2cc4e3defad170bdbc0459 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 02:12:17 +0000 Subject: [PATCH 178/471] chore(deps): update dependency @types/node to v20.12.11 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 405c90213..934d24dc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4119,11 +4119,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.10 - resolution: "@types/node@npm:20.12.10" + version: 20.12.11 + resolution: "@types/node@npm:20.12.11" dependencies: undici-types: ~5.26.4 - checksum: 8c35a349f494846c1f1db4e4f8b21e7fc7f6ee14d99a0998f38699f941652be0e2a236b11f13fe404a6fec9b9a82e0e39b80ca71dafc38c742b160cc498b56c3 + checksum: 0cc06bb69cd8150e96fcf65fa3d7f2eeebedf110a99e1834a7fa55bd6c04e7b6d73f74321a2acfc569ca300c0b88d8e1b702ce245b3802f6e5f6a8987fef451a languageName: node linkType: hard From e14ecce2f3829459e7414e2e7829faa2d3610177 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 03:36:10 +0000 Subject: [PATCH 179/471] chore(deps): update dependency rimraf to v5.0.7 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 934d24dc1..348a056c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11747,13 +11747,13 @@ __metadata: linkType: hard "rimraf@npm:^5.0.5": - version: 5.0.5 - resolution: "rimraf@npm:5.0.5" + version: 5.0.7 + resolution: "rimraf@npm:5.0.7" dependencies: glob: ^10.3.7 bin: rimraf: dist/esm/bin.mjs - checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 + checksum: 884852abf8aefd4667448d87bdab04120a8641266c828cf382ac811713547eda18f81799d2146ffec3178f357d83d44ec01c10095949c82e23551660732bf14f languageName: node linkType: hard From 0bd44d2019ebc3637a8e04ba5045e24e906f6301 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 11 May 2024 02:33:14 +0000 Subject: [PATCH 180/471] chore(deps): update dependency sass to v1.77.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 348a056c2..7ea840e79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11899,15 +11899,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.77.0 - resolution: "sass@npm:1.77.0" + version: 1.77.1 + resolution: "sass@npm:1.77.1" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 684b70e58ab2077b2ed90c5ae0e3bfed59fb6f362e4cbae2514c6bef57b013a0a1012d1c199b9d9d362fe52e37cddf12c6d843e78d3402ba5ed6fcf29b98e28c + checksum: 97976bcb781bf1784662a4a690352dc6d87529fea9de0c9c6ce21994765067da801ffd54fa5c3891735e8ef9c30065eb61a02ca2eb27ed878e9606542e827d9a languageName: node linkType: hard From f48dad1b9a84603d409ea1bd7ec3e33a65514a67 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 00:34:09 +0000 Subject: [PATCH 181/471] chore(deps): update dependency @types/react to v18.3.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7ea840e79..1c3953468 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4183,12 +4183,12 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.3.1 - resolution: "@types/react@npm:18.3.1" + version: 18.3.2 + resolution: "@types/react@npm:18.3.2" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: 9224ef319a0c2b7f66e7e7f06012aa5eb638a6c76c9742843eab1a5d243f2bed5ff829ddbb41efd60d33a266420528adfcb84cb93f238b00e905f98c3a355768 + checksum: d0b8b9d0ede6cd28dbbe34106d914b5e3652d9d7aa9d0f32fe6171506b6fc7c826d9d6571642976a5422bd29c5022fd893a710ed59a1177a0c1df8e02cf17ffe languageName: node linkType: hard From 34668088c3a2f599fff421e71b78e34d77638d03 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 04:46:23 +0000 Subject: [PATCH 182/471] chore(deps): update dependency @types/node to v20.12.12 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1c3953468..f141398a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4119,11 +4119,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.11 - resolution: "@types/node@npm:20.12.11" + version: 20.12.12 + resolution: "@types/node@npm:20.12.12" dependencies: undici-types: ~5.26.4 - checksum: 0cc06bb69cd8150e96fcf65fa3d7f2eeebedf110a99e1834a7fa55bd6c04e7b6d73f74321a2acfc569ca300c0b88d8e1b702ce245b3802f6e5f6a8987fef451a + checksum: 5373983874b9af7c216e7ca5d26b32a8d9829c703a69f1e66f2113598b5be8582c0e009ca97369f1ec9a6282b3f92812208d06eb1e9fc3bd9b939b022303d042 languageName: node linkType: hard From 99b4b7a350ff2e877efa846e728193856cb58e3e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 04:46:41 +0000 Subject: [PATCH 183/471] chore(deps): update dependency @lerna-lite/version to v3.4.0 --- yarn.lock | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 228 insertions(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index f141398a7..8d90af13a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2360,6 +2360,13 @@ __metadata: languageName: node linkType: hard +"@inquirer/figures@npm:^1.0.1": + version: 1.0.1 + resolution: "@inquirer/figures@npm:1.0.1" + checksum: e428dac4921c12fa65f1e2f2846f3fdb2c8ea98ef250e8758bc117d67625496bf1f844b67364e69815b6a8d9b2b0857c9864aec5aebb8a92fc3408d16ccdcc39 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2735,6 +2742,37 @@ __metadata: languageName: node linkType: hard +"@lerna-lite/cli@npm:3.4.0": + version: 3.4.0 + resolution: "@lerna-lite/cli@npm:3.4.0" + dependencies: + "@lerna-lite/core": 3.4.0 + "@lerna-lite/init": 3.4.0 + dedent: ^1.5.3 + dotenv: ^16.4.5 + import-local: ^3.1.0 + load-json-file: ^7.0.1 + npmlog: ^7.0.1 + yargs: ^17.7.2 + peerDependenciesMeta: + "@lerna-lite/exec": + optional: true + "@lerna-lite/list": + optional: true + "@lerna-lite/publish": + optional: true + "@lerna-lite/run": + optional: true + "@lerna-lite/version": + optional: true + "@lerna-lite/watch": + optional: true + bin: + lerna: dist/cli.js + checksum: 812fb8a0f0d70f48f3f893787e158df4aafa1af5ae8df926214b870f3bc42bb3830a624dabfae642eb6e67d2b58389919b581a29743b3f9522cd34fbb4fbe702 + languageName: node + linkType: hard + "@lerna-lite/core@npm:3.3.3": version: 3.3.3 resolution: "@lerna-lite/core@npm:3.3.3" @@ -2769,6 +2807,40 @@ __metadata: languageName: node linkType: hard +"@lerna-lite/core@npm:3.4.0": + version: 3.4.0 + resolution: "@lerna-lite/core@npm:3.4.0" + dependencies: + "@npmcli/run-script": ^8.1.0 + chalk: ^5.3.0 + clone-deep: ^4.0.1 + config-chain: ^1.1.13 + cosmiconfig: ^9.0.0 + dedent: ^1.5.3 + execa: ^8.0.1 + fs-extra: ^11.2.0 + glob-parent: ^6.0.2 + globby: ^14.0.1 + inquirer: ^9.2.21 + is-ci: ^3.0.1 + json5: ^2.2.3 + load-json-file: ^7.0.1 + minimatch: ^9.0.4 + npm-package-arg: ^11.0.2 + npmlog: ^7.0.1 + p-map: ^7.0.2 + p-queue: ^8.0.1 + resolve-from: ^5.0.0 + semver: ^7.6.2 + slash: ^5.1.0 + strong-log-transformer: ^2.1.0 + write-file-atomic: ^5.0.1 + write-json-file: ^5.0.0 + write-package: ^7.0.1 + checksum: fdf664d687b721ce9e223c42f333c4415160781ce41104982bfcc4ab5219f5245676bb756932ff9f1efb59d00f235d3f3bd4a5cf429bfa778fcacbf8765ef2d5 + languageName: node + linkType: hard + "@lerna-lite/init@npm:3.3.3": version: 3.3.3 resolution: "@lerna-lite/init@npm:3.3.3" @@ -2781,6 +2853,18 @@ __metadata: languageName: node linkType: hard +"@lerna-lite/init@npm:3.4.0": + version: 3.4.0 + resolution: "@lerna-lite/init@npm:3.4.0" + dependencies: + "@lerna-lite/core": 3.4.0 + fs-extra: ^11.2.0 + p-map: ^7.0.2 + write-json-file: ^5.0.0 + checksum: cdf72a31382c29fc5f796d5130a2e104264d79b03df10d3e1f245c3855a248b5335e1799cf4d288ab78dbc991023e3e5380ca68449bf214475dd89b1984d5877 + languageName: node + linkType: hard + "@lerna-lite/publish@npm:^3.0.0": version: 3.3.3 resolution: "@lerna-lite/publish@npm:3.3.3" @@ -2814,7 +2898,7 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/version@npm:3.3.3, @lerna-lite/version@npm:^3.0.0": +"@lerna-lite/version@npm:3.3.3": version: 3.3.3 resolution: "@lerna-lite/version@npm:3.3.3" dependencies: @@ -2854,6 +2938,46 @@ __metadata: languageName: node linkType: hard +"@lerna-lite/version@npm:^3.0.0": + version: 3.4.0 + resolution: "@lerna-lite/version@npm:3.4.0" + dependencies: + "@lerna-lite/cli": 3.4.0 + "@lerna-lite/core": 3.4.0 + "@octokit/plugin-enterprise-rest": ^6.0.1 + "@octokit/rest": ^20.1.1 + chalk: ^5.3.0 + conventional-changelog-angular: ^7.0.0 + conventional-changelog-core: ^7.0.0 + conventional-changelog-writer: ^7.0.1 + conventional-commits-parser: ^5.0.0 + conventional-recommended-bump: ^9.0.0 + dedent: ^1.5.3 + fs-extra: ^11.2.0 + get-stream: ^9.0.1 + git-url-parse: ^14.0.0 + graceful-fs: ^4.2.11 + is-stream: ^4.0.1 + load-json-file: ^7.0.1 + make-dir: ^5.0.0 + minimatch: ^9.0.4 + new-github-release-url: ^2.0.0 + node-fetch: ^3.3.2 + npm-package-arg: ^11.0.2 + npmlog: ^7.0.1 + p-map: ^7.0.2 + p-pipe: ^4.0.0 + p-reduce: ^3.0.0 + pify: ^6.1.0 + semver: ^7.6.2 + slash: ^5.1.0 + temp-dir: ^3.0.0 + uuid: ^9.0.1 + write-json-file: ^5.0.0 + checksum: 844b703309ea0d5f29a6bc3b4a4c039aff1ffad7eab4003d5103f91160e33b3cea7fd90df595dd673a666caf540d6f2a5f55145a01606c2452297ae47d2acf67 + languageName: node + linkType: hard + "@ljharb/through@npm:^2.3.13": version: 2.3.13 resolution: "@ljharb/through@npm:2.3.13" @@ -3015,6 +3139,20 @@ __metadata: languageName: node linkType: hard +"@npmcli/run-script@npm:^8.1.0": + version: 8.1.0 + resolution: "@npmcli/run-script@npm:8.1.0" + dependencies: + "@npmcli/node-gyp": ^3.0.0 + "@npmcli/package-json": ^5.0.0 + "@npmcli/promise-spawn": ^7.0.0 + node-gyp: ^10.0.0 + proc-log: ^4.0.0 + which: ^4.0.0 + checksum: 21adfb308b9064041d6d2f7f0d53924be0e1466d558de1c9802fab9eb84850bd8e04fdd5695924f331e1a36565461500d912e187909f91c03188cc763a106986 + languageName: node + linkType: hard + "@octokit/auth-token@npm:^4.0.0": version: 4.0.0 resolution: "@octokit/auth-token@npm:4.0.0" @@ -3072,6 +3210,13 @@ __metadata: languageName: node linkType: hard +"@octokit/openapi-types@npm:^22.2.0": + version: 22.2.0 + resolution: "@octokit/openapi-types@npm:22.2.0" + checksum: eca41feac2b83298e0d95e253ac1c5b6d65155ac57f65c5fd8d4a485d9728922d85ff4bee0e815a1f3a5421311db092bdb6da9d6104a1b1843d8b274bcad9630 + languageName: node + linkType: hard + "@octokit/plugin-enterprise-rest@npm:^6.0.1": version: 6.0.1 resolution: "@octokit/plugin-enterprise-rest@npm:6.0.1" @@ -3079,6 +3224,17 @@ __metadata: languageName: node linkType: hard +"@octokit/plugin-paginate-rest@npm:11.3.1": + version: 11.3.1 + resolution: "@octokit/plugin-paginate-rest@npm:11.3.1" + dependencies: + "@octokit/types": ^13.5.0 + peerDependencies: + "@octokit/core": 5 + checksum: 42c7c08e7287b4b85d2ae47852d2ffeb238c134ad6bcff18bddc154b15f6bec31778816c0763181401c370198390db7f6b0c3c44750fdfeec459594f7f4b5933 + languageName: node + linkType: hard + "@octokit/plugin-paginate-rest@npm:^9.1.5": version: 9.2.1 resolution: "@octokit/plugin-paginate-rest@npm:9.2.1" @@ -3099,6 +3255,17 @@ __metadata: languageName: node linkType: hard +"@octokit/plugin-rest-endpoint-methods@npm:13.2.2": + version: 13.2.2 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:13.2.2" + dependencies: + "@octokit/types": ^13.5.0 + peerDependencies: + "@octokit/core": ^5 + checksum: 347b3a891a561ed1dcc307a2dce42ca48c318c465ad91a26225d3d6493aef1b7ff868e6c56a0d7aa4170d028c7429ca1ec52aed6be34615a6ed701c3bcafdb17 + languageName: node + linkType: hard + "@octokit/plugin-rest-endpoint-methods@npm:^10.2.0": version: 10.4.1 resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.4.1" @@ -3145,6 +3312,18 @@ __metadata: languageName: node linkType: hard +"@octokit/rest@npm:^20.1.1": + version: 20.1.1 + resolution: "@octokit/rest@npm:20.1.1" + dependencies: + "@octokit/core": ^5.0.2 + "@octokit/plugin-paginate-rest": 11.3.1 + "@octokit/plugin-request-log": ^4.0.0 + "@octokit/plugin-rest-endpoint-methods": 13.2.2 + checksum: c15a801c62a2e2104a4b443b3b43f73366d1220b43995d4ffe1358c4162021708e6625a64ea56bf7d85b870924b862b0d680e191160ceca11e6531b8b92299ca + languageName: node + linkType: hard + "@octokit/types@npm:^12.6.0": version: 12.6.0 resolution: "@octokit/types@npm:12.6.0" @@ -3163,6 +3342,15 @@ __metadata: languageName: node linkType: hard +"@octokit/types@npm:^13.5.0": + version: 13.5.0 + resolution: "@octokit/types@npm:13.5.0" + dependencies: + "@octokit/openapi-types": ^22.2.0 + checksum: 8e92f2b145b3c28a35312f93714245824a7b6b7353caa88edfdc85fc2ed4108321ed0c3988001ea53449fbb212febe0e8e9582744e85c3574dabe9d0441af5a0 + languageName: node + linkType: hard + "@patternfly/react-code-editor@npm:^5.2.3": version: 5.3.3 resolution: "@patternfly/react-code-editor@npm:5.3.3" @@ -8271,6 +8459,29 @@ __metadata: languageName: node linkType: hard +"inquirer@npm:^9.2.21": + version: 9.2.21 + resolution: "inquirer@npm:9.2.21" + dependencies: + "@inquirer/figures": ^1.0.1 + "@ljharb/through": ^2.3.13 + ansi-escapes: ^4.3.2 + chalk: ^5.3.0 + cli-cursor: ^3.1.0 + cli-width: ^4.1.0 + external-editor: ^3.1.0 + lodash: ^4.17.21 + mute-stream: 1.0.0 + ora: ^5.4.1 + run-async: ^3.0.0 + rxjs: ^7.8.1 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wrap-ansi: ^6.2.0 + checksum: 5325a8bceda0a6d187fda5c166fa148bf432b1f8972f8a906764e2e72260eab1449a1adec08c3782e2d6395cce9cb86b2260c8e7ca308921fa766d224d4116f3 + languageName: node + linkType: hard + "internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" @@ -9718,6 +9929,13 @@ __metadata: languageName: node linkType: hard +"make-dir@npm:^5.0.0": + version: 5.0.0 + resolution: "make-dir@npm:5.0.0" + checksum: 9f40f4756af5138ca3b138f9e8af144b0420516e96b0e079d816a173d2f69b2ef3425abf20e25764d222c0939a9fd2bce91dd26c22002a559cd6beaea5c994d2 + languageName: node + linkType: hard + "make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" @@ -11949,6 +12167,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.6.2": + version: 7.6.2 + resolution: "semver@npm:7.6.2" + bin: + semver: bin/semver.js + checksum: 40f6a95101e8d854357a644da1b8dd9d93ce786d5c6a77227bc69dbb17bea83d0d1d1d7c4cd5920a6df909f48e8bd8a5909869535007f90278289f2451d0292d + languageName: node + linkType: hard + "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" From 3e088991a6a13d3e715aee9df771925733844f0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 03:13:57 +0000 Subject: [PATCH 184/471] chore(deps): update dependency sass to v1.77.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8d90af13a..8b36fa664 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12117,15 +12117,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.77.1 - resolution: "sass@npm:1.77.1" + version: 1.77.2 + resolution: "sass@npm:1.77.2" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 97976bcb781bf1784662a4a690352dc6d87529fea9de0c9c6ce21994765067da801ffd54fa5c3891735e8ef9c30065eb61a02ca2eb27ed878e9606542e827d9a + checksum: fd75b1f255a30ecd4ee79fa020830d7bf426dd15de2f47cf9610130707dc2a029da3677ca0a6c89e8d4626b0a2816456bb7fb706cb518cfbf2e7c0038ef7a4b8 languageName: node linkType: hard From 0798b59d3ded28d8198803bc7d6c5ad7c712d374 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 03:14:11 +0000 Subject: [PATCH 185/471] chore(deps): update dependency @storybook/addon-actions to v8.1.1 --- yarn.lock | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8b36fa664..dc5325273 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3709,16 +3709,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.0.10 - resolution: "@storybook/addon-actions@npm:8.0.10" + version: 8.1.1 + resolution: "@storybook/addon-actions@npm:8.1.1" dependencies: - "@storybook/core-events": 8.0.10 + "@storybook/core-events": 8.1.1 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: 013c1766f0bafbe4beb3413f2828a8c55dd8986182342200d8755c3e8b4acab7dd66973c1ee71a9ea5bcca016664d95f57f5360d964fc1580ae9eac607cf1e51 + checksum: 94694b75756a90dd34f8187eecb90a871a62f60a24fa64c52a7c35755ab6b81b7e91d5428e65c9851421cba0af49e246fba654b9731939669e4868c70105857f languageName: node linkType: hard @@ -3754,12 +3754,22 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.0.10": - version: 8.0.10 - resolution: "@storybook/core-events@npm:8.0.10" +"@storybook/core-events@npm:8.1.1": + version: 8.1.1 + resolution: "@storybook/core-events@npm:8.1.1" dependencies: + "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: 4dff0bcad8dd4543b4c6e87447107589e63d6ad212cc4b6a989306951c053f70cca827382251b8cb8e6696ad0a308b14f2a918b5d5d18b91d3c196ab71edf7ec + checksum: 6ee283eaafe10ec1253f72a5b33fe554acc32d8e3872b036c6f8a8ade8a300cd4f44bed29a55a02fa5ee45b3fdd93f84fcf77d67413bcf864435daeb5cb5007c + languageName: node + linkType: hard + +"@storybook/csf@npm:^0.1.7": + version: 0.1.7 + resolution: "@storybook/csf@npm:0.1.7" + dependencies: + type-fest: ^2.19.0 + checksum: 0f2b32a3d3920620d032436429fff9f3a08add8e52dc735a5dfd6ce46260a12c7ec87f4fff065bf0e8baae988d1655eea25d5aaba810e7687119ac5661eaeaa4 languageName: node linkType: hard @@ -13193,7 +13203,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.5.1": +"type-fest@npm:^2.19.0, type-fest@npm:^2.5.1": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 From d457fc8abf3e4e3c2e59766dfb5fc2c8d46c4c1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 May 2024 13:37:03 +0000 Subject: [PATCH 186/471] chore(deps): update dependency @storybook/addon-actions to v8.1.3 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index dc5325273..61b204e16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3709,16 +3709,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.1.1 - resolution: "@storybook/addon-actions@npm:8.1.1" + version: 8.1.3 + resolution: "@storybook/addon-actions@npm:8.1.3" dependencies: - "@storybook/core-events": 8.1.1 + "@storybook/core-events": 8.1.3 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: 94694b75756a90dd34f8187eecb90a871a62f60a24fa64c52a7c35755ab6b81b7e91d5428e65c9851421cba0af49e246fba654b9731939669e4868c70105857f + checksum: a2b29321da92dcbe4c40ed55626acb31de20ab94c792ac64e8fa02711047542ea9ac580a0512faec5fda806cabba61ef90d1c12914d272e317a47f691271c603 languageName: node linkType: hard @@ -3754,13 +3754,13 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.1.1": - version: 8.1.1 - resolution: "@storybook/core-events@npm:8.1.1" +"@storybook/core-events@npm:8.1.3": + version: 8.1.3 + resolution: "@storybook/core-events@npm:8.1.3" dependencies: "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: 6ee283eaafe10ec1253f72a5b33fe554acc32d8e3872b036c6f8a8ade8a300cd4f44bed29a55a02fa5ee45b3fdd93f84fcf77d67413bcf864435daeb5cb5007c + checksum: eb33961dab9b214eecfe3da131bea20dd75ca5ac614e5fee45ccf936d37a1713e04e672d18f6d5538369675ea07a0c39bab3435c30a5688a0a5388b6238f1a15 languageName: node linkType: hard From 2d8d99e25e08fc526fd340494e49cf8e0267e7b0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 May 2024 01:41:36 +0000 Subject: [PATCH 187/471] chore(deps): update dependency lint-staged to v15.2.4 --- yarn.lock | 91 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 64 insertions(+), 27 deletions(-) diff --git a/yarn.lock b/yarn.lock index 61b204e16..edd41af3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5238,6 +5238,15 @@ __metadata: languageName: node linkType: hard +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 + languageName: node + linkType: hard + "browserslist@npm:^4.22.2, browserslist@npm:^4.22.3, browserslist@npm:^4.23.0": version: 4.23.0 resolution: "browserslist@npm:4.23.0" @@ -5634,10 +5643,10 @@ __metadata: languageName: node linkType: hard -"commander@npm:11.1.0": - version: 11.1.0 - resolution: "commander@npm:11.1.0" - checksum: fd1a8557c6b5b622c89ecdfde703242ab7db3b628ea5d1755784c79b8e7cb0d74d65b4a262289b533359cd58e1bfc0bf50245dfbcd2954682a6f367c828b79ef +"commander@npm:12.1.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 languageName: node linkType: hard @@ -7551,6 +7560,15 @@ __metadata: languageName: node linkType: hard +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 + languageName: node + linkType: hard + "find-root@npm:^1.1.0": version: 1.1.0 resolution: "find-root@npm:1.1.0" @@ -9710,10 +9728,10 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:3.0.0": - version: 3.0.0 - resolution: "lilconfig@npm:3.0.0" - checksum: a155f1cd24d324ab20dd6974db9ebcf3fb6f2b60175f7c052d917ff8a746b590bc1ee550f6fc3cb1e8716c8b58304e22fe2193febebc0cf16fa86d85e6f896c5 +"lilconfig@npm:3.1.1": + version: 3.1.1 + resolution: "lilconfig@npm:3.1.1" + checksum: dc8a4f4afde3f0fac6bd36163cc4777a577a90759b8ef1d0d766b19ccf121f723aa79924f32af5b954f3965268215e046d0f237c41c76e5ef01d4e6d1208a15e languageName: node linkType: hard @@ -9732,36 +9750,36 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.2 - resolution: "lint-staged@npm:15.2.2" + version: 15.2.4 + resolution: "lint-staged@npm:15.2.4" dependencies: chalk: 5.3.0 - commander: 11.1.0 + commander: 12.1.0 debug: 4.3.4 execa: 8.0.1 - lilconfig: 3.0.0 - listr2: 8.0.1 - micromatch: 4.0.5 + lilconfig: 3.1.1 + listr2: 8.2.1 + micromatch: 4.0.6 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.4 + yaml: 2.4.2 bin: lint-staged: bin/lint-staged.js - checksum: 031718ad3f839475fb1d41bda34bab4330f25814175808169daa2686ff026e5a667a25c95fdf3cd46dac72f9af2c98852565bb62d920992f5e2d3f730c279760 + checksum: 521a5cd3c5e381f74bea87d38c2bb194dd89ebab85470e0c49a79d10333f858bb7141744b9ff9e01ebac2a02b22f39933bcc7739d965e9e8ba50fe900ca4d250 languageName: node linkType: hard -"listr2@npm:8.0.1": - version: 8.0.1 - resolution: "listr2@npm:8.0.1" +"listr2@npm:8.2.1": + version: 8.2.1 + resolution: "listr2@npm:8.2.1" dependencies: cli-truncate: ^4.0.0 colorette: ^2.0.20 eventemitter3: ^5.0.1 log-update: ^6.0.0 - rfdc: ^1.3.0 + rfdc: ^1.3.1 wrap-ansi: ^9.0.0 - checksum: 4dfeabfa037b3981d0edbf30789971ba727ba4cfcc13051ceaff7a1b3d26509ef2d946015c65c600b0775ec9d1ef58a81937d94c9c03de464b654f429cc7c3ed + checksum: a37c032850fc01f45cf6144f2b66d0c56a596b708de1acbd52e7c396a2eb188d027ad132c93a0ad946d7932a581dfcfc2e4318bb301926b01877cb4903d09fbd languageName: node linkType: hard @@ -10030,7 +10048,17 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:4.0.5, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:4.0.6": + version: 4.0.6 + resolution: "micromatch@npm:4.0.6" + dependencies: + braces: ^3.0.3 + picomatch: ^4.0.2 + checksum: cd44a850c638d82232608e2a03677c5828b9faf35bacfd4817ae232208e2a56bac97bceb67da6a5d4d5a603c1cc88f65ecae3af6be11b5a8c10c995515231e78 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -11077,6 +11105,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + "pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -11956,7 +11991,7 @@ __metadata: languageName: node linkType: hard -"rfdc@npm:^1.3.0": +"rfdc@npm:^1.3.1": version: 1.3.1 resolution: "rfdc@npm:1.3.1" checksum: d5d1e930aeac7e0e0a485f97db1356e388bdbeff34906d206fe524dd5ada76e95f186944d2e68307183fdc39a54928d4426bbb6734851692cfe9195efba58b79 @@ -13921,10 +13956,12 @@ __metadata: languageName: node linkType: hard -"yaml@npm:2.3.4": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 +"yaml@npm:2.4.2": + version: 2.4.2 + resolution: "yaml@npm:2.4.2" + bin: + yaml: bin.mjs + checksum: 90dda4485de04367251face9abb5c36927c94e44078f4e958e6468a07e74e7e92f89be20fc49860b6268c51ee5a5fc79ef89197d3f874bf24ef8921cc4ba9013 languageName: node linkType: hard From dbf95b87e6b8d516dc137a4f570b6fdfa0d2caf1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 May 2024 01:41:03 +0000 Subject: [PATCH 188/471] chore(deps): update dependency @vitejs/plugin-react to v4.3.0 --- yarn.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index edd41af3c..cb0646b18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -63,7 +63,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.5, @babel/core@npm:^7.23.9": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": version: 7.24.5 resolution: "@babel/core@npm:7.24.5" dependencies: @@ -1334,25 +1334,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" +"@babel/plugin-transform-react-jsx-self@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.5" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f + checksum: 074862b10c8cd25634bb072b0c242f4351dd6b9241cef98c5b291ebe75619518f4debf6374b7cb3c3c7b3f0f4395cd1d725e7616ff3c3bf9aa6c281a71ab2598 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" +"@babel/plugin-transform-react-jsx-source@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.1" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 + checksum: 396ce878dc588e74113d38c5a1773e0850bb878a073238a74f8cdf62d968d56a644f5485bf4032dc095fe8863fe2bd9fbbbab6abc3adf69542e038ac5c689d4c languageName: node linkType: hard @@ -4635,17 +4635,17 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^4.2.1": - version: 4.2.1 - resolution: "@vitejs/plugin-react@npm:4.2.1" + version: 4.3.0 + resolution: "@vitejs/plugin-react@npm:4.3.0" dependencies: - "@babel/core": ^7.23.5 - "@babel/plugin-transform-react-jsx-self": ^7.23.3 - "@babel/plugin-transform-react-jsx-source": ^7.23.3 + "@babel/core": ^7.24.5 + "@babel/plugin-transform-react-jsx-self": ^7.24.5 + "@babel/plugin-transform-react-jsx-source": ^7.24.1 "@types/babel__core": ^7.20.5 - react-refresh: ^0.14.0 + react-refresh: ^0.14.2 peerDependencies: vite: ^4.2.0 || ^5.0.0 - checksum: 08d227d27ff2304e395e746bd2d4b5fee40587f69d7e2fcd6beb7d91163c1f1dc26d843bc48e2ffb8f38c6b8a1b9445fb07840e3dcc841f97b56bbb8205346aa + checksum: e4642c081e74e701fc07f03f505b44eb428d7105461b8026e7364ecd30dcf7785126bf272767a3bc36899b6abe85479af444612ef6d09509d9bc7d6025cac925 languageName: node linkType: hard @@ -11606,10 +11606,10 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.14.0": - version: 0.14.0 - resolution: "react-refresh@npm:0.14.0" - checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 +"react-refresh@npm:^0.14.2": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: d80db4bd40a36dab79010dc8aa317a5b931f960c0d83c4f3b81f0552cbcf7f29e115b84bb7908ec6a1eb67720fff7023084eff73ece8a7ddc694882478464382 languageName: node linkType: hard From 490d5e8c94bc64f0766535dd63adc72d51c6da1f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 02:14:53 +0000 Subject: [PATCH 189/471] chore(deps): update dependency @types/react to v18.3.3 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index cb0646b18..e7d5f7e25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4381,12 +4381,12 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.3.2 - resolution: "@types/react@npm:18.3.2" + version: 18.3.3 + resolution: "@types/react@npm:18.3.3" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: d0b8b9d0ede6cd28dbbe34106d914b5e3652d9d7aa9d0f32fe6171506b6fc7c826d9d6571642976a5422bd29c5022fd893a710ed59a1177a0c1df8e02cf17ffe + checksum: c63d6a78163244e2022b01ef79b0baec4fe4da3475dc4a90bb8accefad35ef0c43560fd0312e5974f92a0f1108aa4d669ac72d73d66396aa060ea03b5d2e3873 languageName: node linkType: hard From f6cbbb2f5b020a31c8c8a8362d36915ef046e1e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 01:31:02 +0000 Subject: [PATCH 190/471] chore(deps): update babel monorepo to v7.24.6 --- yarn.lock | 1373 ++++++++++++++++++++++++++--------------------------- 1 file changed, 665 insertions(+), 708 deletions(-) diff --git a/yarn.lock b/yarn.lock index e7d5f7e25..e51d3f8d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.2": +"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -49,6 +49,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/code-frame@npm:7.24.6" + dependencies: + "@babel/highlight": ^7.24.6 + picocolors: ^1.0.0 + checksum: 0904514ea7079a9590c1c546cd20b9c1beab9649873f2a0703429860775c1713a8dfb2daacd781a0210bb3930c656c1c436013fb20eaa3644880fb3a2b34541d + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -56,45 +66,45 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/compat-data@npm:7.24.4" - checksum: 52ce371658dc7796c9447c9cb3b9c0659370d141b76997f21c5e0028cca4d026ca546b84bc8d157ce7ca30bd353d89f9238504eb8b7aefa9b1f178b4c100c2d4 +"@babel/compat-data@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/compat-data@npm:7.24.6" + checksum: 92233c708f7c349923c1f9a2b3c9354875a951ac3afaca0a2c159de1c808f6799ad4433652b90870015281aa466ec6e9aa8922e755cd7ac1413a3a5782cd685d languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/core@npm:7.24.5" + version: 7.24.6 + resolution: "@babel/core@npm:7.24.6" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.2 - "@babel/generator": ^7.24.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-module-transforms": ^7.24.5 - "@babel/helpers": ^7.24.5 - "@babel/parser": ^7.24.5 - "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.5 - "@babel/types": ^7.24.5 + "@babel/code-frame": ^7.24.6 + "@babel/generator": ^7.24.6 + "@babel/helper-compilation-targets": ^7.24.6 + "@babel/helper-module-transforms": ^7.24.6 + "@babel/helpers": ^7.24.6 + "@babel/parser": ^7.24.6 + "@babel/template": ^7.24.6 + "@babel/traverse": ^7.24.6 + "@babel/types": ^7.24.6 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: f4f0eafde12b145f2cb9cc893085e5f1436e1ef265bb3b7d8aa6282515c9b4e740bbd5e2cbc32114adb9afed2dd62c2336758b9fabb7e46e8ba542f76d4f3f80 + checksum: f8af23de19865818c27c2fbe0d87b0834b118386da5ee09b20ae0cf7a5540065054ef2b70f377d025d9feee765db18df39900e4c18e905988b94b54a104c738e languageName: node linkType: hard -"@babel/generator@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/generator@npm:7.24.5" +"@babel/generator@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/generator@npm:7.24.6" dependencies: - "@babel/types": ^7.24.5 + "@babel/types": ^7.24.6 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 jsesc: ^2.5.1 - checksum: a08c0ab900b36e1a17863e18e3216153322ea993246fd7a358ba38a31cfb15bab2af1dc178b2adafe4cb8a9f3ab0e0ceafd3fe6e8ca870dffb435b53b2b2a803 + checksum: a477e03129106908f464b195c4f138052d732cfca47506b127edbed6a496371bae821662a8a4e51e6d144ac236a5d05dc2da0e145e29bb8e19d3e7c480ac00fe languageName: node linkType: hard @@ -119,16 +129,25 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" +"@babel/helper-annotate-as-pure@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-annotate-as-pure@npm:7.24.6" dependencies: - "@babel/types": ^7.22.15 - checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a + "@babel/types": ^7.24.6 + checksum: 9ddcc2ddfa64213311d71bead56ecccdadca5455dc54528c545a2efc1d8010fb7327aef2d90ac7e71b0d0becfed0ffb00553b1e192ff00596efe4161511891cf + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.6" + dependencies: + "@babel/types": ^7.24.6 + checksum: aec1792a92331f0d915eaab562ecf7a160d84958e4606425e26795dd848ddab0421190d6e15dbb58cb105caa5b4f53af7179449bc53ca2381866b064e8f8fcc6 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-compilation-targets@npm:^7.22.6": version: 7.23.6 resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: @@ -141,73 +160,61 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.1" +"@babel/helper-compilation-targets@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-compilation-targets@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-member-expression-to-functions": ^7.23.0 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.24.1 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/compat-data": ^7.24.6 + "@babel/helper-validator-option": ^7.24.6 + browserslist: ^4.22.2 + lru-cache: ^5.1.1 semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 310d063eafbd2a777609770c1aa7b24e43f375122fd84031c45edc512686000197da1cf450b48eca266489131bc06dbaa35db2afed8b7213c9bcfa8c89b82c4d + checksum: c66bf86387fbeefc617db9510de553880ed33dc91308421ee36a7b489d0e8c8eb615e0f467a9ec886eada7c05b03e421e55b2a724ff302402fdd4e0c0b2b0443 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.4" +"@babel/helper-create-class-features-plugin@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-member-expression-to-functions": ^7.23.0 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.24.1 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-function-name": ^7.24.6 + "@babel/helper-member-expression-to-functions": ^7.24.6 + "@babel/helper-optimise-call-expression": ^7.24.6 + "@babel/helper-replace-supers": ^7.24.6 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 + "@babel/helper-split-export-declaration": ^7.24.6 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 75b0a51ae1f7232932559779b78711c271404d02d069156d1bd9a7982c165c5134058d2ec2d8b5f2e42026ee4f52ba2a30c86a7aa3bce6b5fd0991eb721abc8c + checksum: 82feb93690cd543fdd9da54d71b950ca4323a99a022e73753dd4c0cd93eed44b25301182a14c626ffbef40afb00c5a4e46f646c1d1f4b501d4badaff0cab3892 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.5" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-member-expression-to-functions": ^7.24.5 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.24.1 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.24.5 + regexpu-core: ^5.3.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: ea761c1155442620ee02920ec7c3190f869ff4d4fcab48a021a11fd8a46c046ed1facb070e5c76539c2b7efc2c8338f50f08a5e49d0ebf12e48743570e92247b + checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" +"@babel/helper-create-regexp-features-plugin@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-annotate-as-pure": ^7.24.6 regexpu-core: ^5.3.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 + checksum: 606c43600b5c02014f871dc313f06b250b98e0e63fb7d14f1bea56cd8af5737cb7a9c7c28a16dd7712539a19bdac0a877614c9f7427c1fc005181c6a04eda978 languageName: node linkType: hard @@ -226,51 +233,42 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-environment-visitor@npm:7.22.20" - checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" - dependencies: - "@babel/template": ^7.22.15 - "@babel/types": ^7.23.0 - checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 +"@babel/helper-environment-visitor@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-environment-visitor@npm:7.24.6" + checksum: 9c2b3f1ee7ba46b61b0482efab6d37f5c76f0ea4e9d9775df44a89644729c3a50101040a0233543ec6c3f416d8e548d337f310ff3e164f847945507428ee39e5 languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" +"@babel/helper-function-name@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-function-name@npm:7.24.6" dependencies: - "@babel/types": ^7.22.5 - checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + "@babel/template": ^7.24.6 + "@babel/types": ^7.24.6 + checksum: d7a2198b6bf2cae9767d5b0d6cb5d3cbd9a07640ad4b6798abb7d7242e8f32765a94fd98ab1a039d7607f0ddbeaf9ddc822dd536b856e499f7082899c6f455f0 languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" +"@babel/helper-hoist-variables@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-hoist-variables@npm:7.24.6" dependencies: - "@babel/types": ^7.23.0 - checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 + "@babel/types": ^7.24.6 + checksum: 4819b574393a5214aff6ae02a6e5250ace2564f8bcdb28d580ffec57bbb2092425e8f39563d75cfa268940a01fd425bad503c0b92717c12426f15cf6847855d3 languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.5" +"@babel/helper-member-expression-to-functions@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.6" dependencies: - "@babel/types": ^7.24.5 - checksum: d3ad681655128463aa5c2a239345687345f044542563506ee53c9636d147e97f93a470be320950a8ba5f497ade6b27a8136a3a681794867ff94b90060a6e427c + "@babel/types": ^7.24.6 + checksum: 9b027842d50fd4b80213903a97e1addcab7051de76090c3e908377fab31f73371beacefa9dfaf95416e57d3bda0fae83633ea4d206669262dde6267d802ece7b languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": +"@babel/helper-module-imports@npm:^7.16.7": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" dependencies: @@ -279,51 +277,36 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/helper-module-imports@npm:7.24.3" +"@babel/helper-module-imports@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-module-imports@npm:7.24.6" dependencies: - "@babel/types": ^7.24.0 - checksum: c23492189ba97a1ec7d37012336a5661174e8b88194836b6bbf90d13c3b72c1db4626263c654454986f924c6da8be7ba7f9447876d709cd00bd6ffde6ec00796 + "@babel/types": ^7.24.6 + checksum: 3484420c45529aac34cb14111a03c78edab84e5c4419634affe61176d832af82963395ea319f67c7235fd4106d9052a9f3ce012d2d57d56644572d3f7d495231 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/helper-module-transforms@npm:7.23.3" +"@babel/helper-module-transforms@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-module-transforms@npm:7.24.6" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.20 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-module-imports": ^7.24.6 + "@babel/helper-simple-access": ^7.24.6 + "@babel/helper-split-export-declaration": ^7.24.6 + "@babel/helper-validator-identifier": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0 - checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 + checksum: 904e2a0701eb1eeb84b0d0df5dacdc40291307025b7e3a9a3c6f3eee912c893524f9dc7f5624225a5783a258dec2eb2489a9638bf5f3de26ebfcbcac1b5cc2fc languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-module-transforms@npm:7.24.5" +"@babel/helper-optimise-call-expression@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-optimise-call-expression@npm:7.24.6" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-module-imports": ^7.24.3 - "@babel/helper-simple-access": ^7.24.5 - "@babel/helper-split-export-declaration": ^7.24.5 - "@babel/helper-validator-identifier": ^7.24.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 208c2e3877536c367ae3f39345bb5c5954ad481fdb2204d4d1906063e53ae564e5b7b846951b1aa96ee716ec24ec3b6db01b41d128884c27315b415f62db9fd2 - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + "@babel/types": ^7.24.6 + checksum: 2f1d37b2491843a60e8d1736d435aee793feb726292367df1dc25e938b93458aeeb384a329f7438b51e50fd420a71149992c1ef09249eba7041229f230c64db7 languageName: node linkType: hard @@ -348,74 +331,63 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-wrap-function": ^7.22.20 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 +"@babel/helper-plugin-utils@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-plugin-utils@npm:7.24.6" + checksum: d22bb82c75afed0d8c37784876fd6deb9db06ef21526db909ef7986a6050b50beb60a7823c08a1bb7c57c668af2e086d8086e88b6f9140b0d9ade07472f7c748 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helper-replace-supers@npm:7.24.1" +"@babel/helper-remap-async-to-generator@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-remap-async-to-generator@npm:7.24.6" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-member-expression-to-functions": ^7.23.0 - "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-wrap-function": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0 - checksum: c04182c34a3195c6396de2f2945f86cb60daa94ca7392db09bd8b0d4e7a15b02fbe1947c70f6062c87eadaea6d7135207129efa35cf458ea0987bab8c0f02d5a + checksum: d34142cdfecb94655730a3903039fd7459f36696a8eeca80be58ebe46d2ca517d46907c389020735d1c4325d44f7cc7581d3f9b995337d8c32c9b0552bc58759 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" +"@babel/helper-replace-supers@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-replace-supers@npm:7.24.6" dependencies: - "@babel/types": ^7.22.5 - checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-member-expression-to-functions": ^7.24.6 + "@babel/helper-optimise-call-expression": ^7.24.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f9e32592860733d63cf554e4ade277917af162efb30e75c45fbd35bb4c05f7f0f37042857eb66cec0b5e1aedf199e06e55af6c322bcb17533a20782ec2aaa3a1 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-simple-access@npm:7.24.5" +"@babel/helper-simple-access@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-simple-access@npm:7.24.6" dependencies: - "@babel/types": ^7.24.5 - checksum: 5616044603c98434342f09b056c869394acdeba7cd9ec29e6a9abb0dae1922f779d364aaba74dc2ae4facf85945c6156295adbe0511a8aaecaa8a1559d14757a + "@babel/types": ^7.24.6 + checksum: 929162e887efc1bcadd4e141ed7782b45fccc6873d5023a744fee9c94d16d3a13dbfb66eb259181613a36c2d35f7d2088ee37e76014223d3b9b6c9ef1094e4b6 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.6" dependencies: - "@babel/types": ^7.22.5 - checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + "@babel/types": ^7.24.6 + checksum: dd93d95a7ee815a3784de324d7fd6c495660576ec49ff5e9c608d6409441ebc7764fc0e7b198062784511301f4dc8fdc59263d5c3efcb65fe66b08b008b602f7 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helper-split-export-declaration@npm:7.22.6" +"@babel/helper-split-export-declaration@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-split-export-declaration@npm:7.24.6" dependencies: - "@babel/types": ^7.22.5 - checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-split-export-declaration@npm:7.24.5" - dependencies: - "@babel/types": ^7.24.5 - checksum: f23ab6942568084a57789462ce55dc9631aef1d2142ffa2ee28fc411ab55ed3ca65adf109e48655aa349bf8df7ca6dd81fd91c8c229fee1dc77e283189dc83c2 + "@babel/types": ^7.24.6 + checksum: b546fd7e186b4aa69f96e041b6c4c9154115a2579a297b86773719dbed53b938cfc3f6b4996ae410296bb8aa30ea031f9ff31f1255aa25c3af75026c5b7c4059 languageName: node linkType: hard @@ -426,10 +398,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helper-string-parser@npm:7.24.1" - checksum: 8404e865b06013979a12406aab4c0e8d2e377199deec09dfe9f57b833b0c9ce7b6e8c1c553f2da8d0bcd240c5005bd7a269f4fef0d628aeb7d5fe035c436fb67 +"@babel/helper-string-parser@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-string-parser@npm:7.24.6" + checksum: c8c614a663928b67c5c65cfea958ed20c858fa2af8c957d301bd852c0ab98adae0861f081fd8f5add16539d9393bd4b10b8c86a97a9d7304f70a6a67b2c2ff07 languageName: node linkType: hard @@ -440,10 +412,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-validator-identifier@npm:7.24.5" - checksum: 75d6f9f475c08f3be87bae4953e9b8d8c72983e16ed2860870b328d048cb20dccb4fcbf85eacbdd817ea1efbb38552a6db9046e2e37bfe13bdec44ac8939024c +"@babel/helper-validator-identifier@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-validator-identifier@npm:7.24.6" + checksum: a265a6fba570332dca63ad7e749b867d29b52da2573dc62bf19b5b8c5387d4f4296af33da9da7c71ffe3d3abecd743418278f56d38b057ad4b53f09b937fe113 languageName: node linkType: hard @@ -454,25 +426,31 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-wrap-function@npm:7.22.20" +"@babel/helper-validator-option@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-validator-option@npm:7.24.6" + checksum: 5defb2da74e1cac9497016f4e41698aeed75ec7a5e9dc07e777cdb67ef73cd2e27bd2bf8a3ab8d37e0b93a6a45524a9728f03e263afdef452436cf74794bde87 + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helper-wrap-function@npm:7.24.6" dependencies: - "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.15 - "@babel/types": ^7.22.19 - checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca + "@babel/helper-function-name": ^7.24.6 + "@babel/template": ^7.24.6 + "@babel/types": ^7.24.6 + checksum: 0cf28533392b994e25590e9060d05bebc882e2a8e22ab77672799d53859f71dc87debd6d5429eeed0eb0de0038708c50576e322e6042cd4e358940939fd9b721 languageName: node linkType: hard -"@babel/helpers@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helpers@npm:7.24.5" +"@babel/helpers@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/helpers@npm:7.24.6" dependencies: - "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.5 - "@babel/types": ^7.24.5 - checksum: 941937456ca50ef44dbc5cdcb9a74c6ce18ce38971663acd80b622e7ecf1cc4fa034597de3ccccc37939d324139f159709f493fd8e7c385adbc162cb0888cfee + "@babel/template": ^7.24.6 + "@babel/types": ^7.24.6 + checksum: c936058fd5caf7173e157f790fdbe9535237a7b8bc2c3d084bdf16467a034f73bd5d731deb514aa84e356c72de1cc93500a376f9d481f5c1e335f5a563426e58 languageName: node linkType: hard @@ -499,6 +477,18 @@ __metadata: languageName: node linkType: hard +"@babel/highlight@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/highlight@npm:7.24.6" + dependencies: + "@babel/helper-validator-identifier": ^7.24.6 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: 2f8f7f060eeccc3ddf03ba12c263995de0e6c0dd31ad224bed58d983b3bb08fe34dfc01440396266456a4cad83226c38ad6814805bc5d0c774a056cac9182eca + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9": version: 7.23.9 resolution: "@babel/parser@npm:7.23.9" @@ -517,69 +507,60 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/parser@npm:7.24.0" - bin: - parser: ./bin/babel-parser.js - checksum: 4a6afec49487a212e7a27345b0c090b56905efb62c0b3a1499b0a57a5b3bf43d9d1e99e31b137080eacc24dee659a29699740d0a6289999117c0d8c5a04bd68f - languageName: node - linkType: hard - -"@babel/parser@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/parser@npm:7.24.5" +"@babel/parser@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/parser@npm:7.24.6" bin: parser: ./bin/babel-parser.js - checksum: a251ea41bf8b5f61048beb320d43017aff68af5a3506bd2ef392180f5fa32c1061513171d582bb3d46ea48e3659dece8b3ba52511a2566066e58abee300ce2a0 + checksum: ca3773f5b2a4a065b827990ca0c867e670f01d7a7d7278838bd64d583e68ed52356b5a613303c5aa736d20f024728fec80fc5845fed1eb751ab5f1bfbdc1dd3c languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.5" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.6" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0 - checksum: d9921b3561762b8c7227cfbf1591436d2a12b99472993a7ce382123e88d98cb359952fbc64d66b1a492187d283d02f51e707f524b708c91b9ab82fb2659eae13 + checksum: fe18f25b8507fec9ccf32f5961cd2f17d09f5695f542271b15a49ae00b8f02bfcb43fe707cd4791217ebe16de4f96898e49a5edced0e54da481f502f9a745388 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0 - checksum: ec5fddc8db6de0e0082a883f21141d6f4f9f9f0bc190d662a732b5e9a506aae5d7d2337049a1bf055d7cb7add6f128036db6d4f47de5e9ac1be29e043c8b7ca8 + checksum: 7530579cd6794ae4d3a53bf388de87fc94a090829eeff15cf01e345bb71db4aff57c28dbe595cef8d185edb1baed6a0107d772a71e919d398346876da4fe1f2c languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 + "@babel/plugin-transform-optional-chaining": ^7.24.6 peerDependencies: "@babel/core": ^7.13.0 - checksum: e18235463e716ac2443938aaec3c18b40c417a1746fba0fa4c26cf4d71326b76ef26c002081ab1b445abfae98e063d561519aa55672dddc1ef80b3940211ffbb + checksum: 69d5a725ad755572c9f677d07cc0c48c74cbe538869fd14e91436c4313adf4eab9838bf9ca26caa30998d89a17e86a335c36050d3b93493824788667a6508f21 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.6" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0 - checksum: b5e5889ce5ef51e813e3063cd548f55eb3c88e925c3c08913f334e15d62496861e538ae52a3974e0c56a3044ed8fd5033faea67a64814324af56edc9865b7359 + checksum: 6bbd91b0038e54119ae4df594e4c1b2dc0299d2ff9533f20b8fc6870252ba7cfe480151c6dde59d0310ab23348e8556b8ae42267dbdb35b67857649161bca8d0 languageName: node linkType: hard @@ -658,25 +639,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1" +"@babel/plugin-syntax-import-assertions@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2a463928a63b62052e9fb8f8b0018aa11a926e94f32c168260ae012afe864875c6176c6eb361e13f300542c31316dad791b08a5b8ed92436a3095c7a0e4fce65 + checksum: abd640f9e2cd9b17d8f88a4431229429d57369d4fa5cbdab62b7a329812b3e7733e3f9f316dd393addb6db8d9b9b58dbd8ac39685a0c1e07bbb89b6c82445ae9 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1" +"@babel/plugin-syntax-import-attributes@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 87c8aa4a5ef931313f956871b27f2c051556f627b97ed21e9a5890ca4906b222d89062a956cde459816f5e0dec185ff128d7243d3fdc389504522acb88f0464e + checksum: 81d83ad26dddfe0da86a34722ced7f938741fa18afe5b02fbabfa99ae4e14d97be185dbedc746eab2f1c3e6dc5560054c3cb780cb946be4533f648dca593c92b languageName: node linkType: hard @@ -702,25 +683,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.23.3 - resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" +"@babel/plugin-syntax-jsx@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-syntax-jsx@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e + checksum: e288681cab57d059b0b2e132040eb5e21a158c40229c600e77cb0289ba5d32a2102af94e43390d270e0ddd968685e9de8d10dab0291c53b84e2219a7bc4cdb54 languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.1" +"@babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.23.3 + resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 712f7e7918cb679f106769f57cfab0bc99b311032665c428b98f4c3e2e6d567601d45386a4f246df6a80d741e1f94192b3f008800d66c4f1daae3ad825c243f0 + checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e languageName: node linkType: hard @@ -812,14 +793,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.1" +"@babel/plugin-syntax-typescript@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-syntax-typescript@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bf4bd70788d5456b5f75572e47a2e31435c7c4e43609bd4dffd2cc0c7a6cf90aabcf6cd389e351854de9a64412a07d30effef5373251fe8f6a4c9db0c0163bda + checksum: 2fb15b246f7a2334ae5ebbc4c263dc2a66464e65074cbe82204acb42c097601c5ae5933d4c4716cad0a64b41aa999080eeabddbabadd163232d9e2631749f596 languageName: node linkType: hard @@ -846,491 +827,478 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1" +"@babel/plugin-transform-arrow-functions@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 58f9aa9b0de8382f8cfa3f1f1d40b69d98cd2f52340e2391733d0af745fdddda650ba392e509bc056157c880a2f52834a38ab2c5aa5569af8c61bb6ecbf45f34 + checksum: be99f3208d1e828d923ad8d437644e3e62f6cb1b68acb7ec1b1e5cf169d3df8441aa8eaa1ea22fdf2e7d1a37a2d422ce04121829e625d5c56403bb3923226719 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3" +"@babel/plugin-transform-async-generator-functions@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.6" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-remap-async-to-generator": ^7.22.20 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-remap-async-to-generator": ^7.24.6 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 309af02610be65d937664435adb432a32d9b6eb42bb3d3232c377d27fbc57014774d931665a5bfdaff3d1841b72659e0ad7adcef84b709f251cb0b8444f19214 + checksum: 9c9a49c7350c330964420dfc1263ed2e7accf53ce9bf4bec556500b99b9a81701497618d755c78924270ee263aad61564dc6ec3d13c634b2be91f8cdbaeea874 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1" +"@babel/plugin-transform-async-to-generator@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.6" dependencies: - "@babel/helper-module-imports": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-remap-async-to-generator": ^7.22.20 + "@babel/helper-module-imports": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-remap-async-to-generator": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 429004a6596aa5c9e707b604156f49a146f8d029e31a3152b1649c0b56425264fda5fd38e5db1ddaeb33c3fe45c97dc8078d7abfafe3542a979b49f229801135 + checksum: 3ac6dc52328b81361cce2c77f81f9e3e6deb48086cbb1410282ba27d4eb9aae28386cd33480a607072ce1c17c4b61300520fa1671599a3a21facc7ba2b69cd32 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1" +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d8e18bd57b156da1cd4d3c1780ab9ea03afed56c6824ca8e6e74f67959d7989a0e953ec370fe9b417759314f2eef30c8c437395ce63ada2e26c2f469e4704f82 + checksum: 77b5dba0b46de2b2e5a62968418bdc76e4245603866e8d53c1f413cdfb2b4a0352893ce1e039a383d8e50617c73f4622dfab1d9d56081e8926672de655361683 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.5" +"@babel/plugin-transform-block-scoping@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 898c91efc0f8ac8e2a8d3ece36edf0001963bcf5bbeefe9bf798ac36318a33f366e88a24a90bf7c39a7aeb1593846b720ed9a9ba56709d27279f7ba61c5e43c4 + checksum: a8113f1bf2e8fb83de1b608daf3c924f08b54b98e0fb5076379f35ff1b8310e5f2eba510356a425f0c3f027a777777851066acb92d3e72624c37293465b93c5a languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-class-properties@npm:7.24.1" +"@babel/plugin-transform-class-properties@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.6" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-class-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 95779e9eef0c0638b9631c297d48aee53ffdbb2b1b5221bf40d7eccd566a8e34f859ff3571f8f20b9159b67f1bff7d7dc81da191c15d69fbae5a645197eae7e0 + checksum: 79228c7eade70fed3459426233f6e507ab0c238b91cd53a527005c4e175ad2a20c918f1de09ca869a7bcd920b5452e80a1cfe7c51e4f80602c412865f049153a languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4" +"@babel/plugin-transform-class-static-block@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.6" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.4 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-class-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: 3b1db3308b57ba21d47772a9f183804234c23fd64c9ca40915d2d65c5dc7a48b49a6de16b8b90b7a354eacbb51232a862f0fca3dbd23e27d34641f511decddab + checksum: a574d565b6416ae98ce3d918bbbdfdf215440dee5a028f1076a963c90b8d7c64e5f1aae54afe605d3e607b93732a6f87b5fb62177680f895de47e2b4c7d92b78 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-classes@npm:7.24.5" +"@babel/plugin-transform-classes@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-classes@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.24.5 - "@babel/helper-replace-supers": ^7.24.1 - "@babel/helper-split-export-declaration": ^7.24.5 + "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-compilation-targets": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-function-name": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-replace-supers": ^7.24.6 + "@babel/helper-split-export-declaration": ^7.24.6 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 797bf2bda770148d3ee43e305e1aea26fa16ca78eb81eaaeb95b441428f52e0d12dd98e93f00bda3b65bbfde3001006995725ce911587efdef0465c41bd0a3f3 + checksum: 2891dfcb1d905df55437f7a29a67b9373f6ca79bb14fadff132e56be1618e02cfd959780f3d49aa2aed9d6daa0b6ea879f5de25118c5c2210b5bb798be291eb8 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1" +"@babel/plugin-transform-computed-properties@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/template": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/template": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2832bcf100a70f348facbb395873318ef5b9ee4b0fb4104a420d9daaeb6003cc2ecc12fd8083dd2e4a7c2da873272ad73ff94de4497125a0cf473294ef9664e + checksum: be2d0d193b07a1c7efae2fd67d33f6b71d1a8f7cb1f3f07667717c072aaa4e7164d71b6cdd654a9352a7ddd104bdb7a5c69cb4c10d105128326cb08c792a0658 languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.5" +"@babel/plugin-transform-destructuring@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c5def67de09315cd38895c021ee7d02fd53fed596924512c33196ceed143b88f1ea76e4ac777a55bbb9db49be8b63aafb22b12e7d5c7f3051f14caa07e8d4023 + checksum: b81f74939a949bf366f18efabf560c5aa03aacd5cd561313918dbefbc779fb26a63fc903156deebf859ecf40df8ca23a6bcbfa0c003b64e9082d75dc5a11e79b languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1" +"@babel/plugin-transform-dotall-regex@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.6" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7f623d25b6f213b94ebc1754e9e31c1077c8e288626d8b7bfa76a97b067ce80ddcd0ede402a546706c65002c0ccf45cd5ec621511c2668eed31ebcabe8391d35 + checksum: bd5cae74e3c5642416bae04985cfe3478315ad48a0f934169253b1eecc1365c6880d350b4077fdee72172602f8dbec32766dfe8f17776d5b2d3b53dd01382713 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1" +"@babel/plugin-transform-duplicate-keys@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a3b07c07cee441e185858a9bb9739bb72643173c18bf5f9f949dd2d4784ca124e56b01d0a270790fb1ff0cf75d436075db0a2b643fb4285ff9a21df9e8dc6284 + checksum: 5a1f54aa7731816d722a0627176af0c810061275c22c981e09c0da2648372ca39cf331b6e7a8dad380db09100c1a655dc13307758df9a9bf88f605a99eba4e02 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1" +"@babel/plugin-transform-dynamic-import@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 59fc561ee40b1a69f969c12c6c5fac206226d6642213985a569dd0f99f8e41c0f4eaedebd36936c255444a8335079842274c42a975a433beadb436d4c5abb79b + checksum: 20360f1147af18c9669742c2ee1a832c4130dce3e73c453692edb16ea920cc4cb8e06e79cbc87ecc39c5db1ccc126bc28994cf6c4ffff59366301cc52cc2cef9 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1" +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.6" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f90841fe1a1e9f680b4209121d3e2992f923e85efcd322b26e5901c180ef44ff727fb89790803a23fac49af34c1ce2e480018027c22b4573b615512ac5b6fc50 + checksum: d377fe651677a6dfb2dbfb3ade2e80ece6704b225b463a42cc72330a688a6d85a6c28062d0f0cc2eb6d265e2d9294a14be8f0e144a782996d0acdd86a58e139e languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1" +"@babel/plugin-transform-export-namespace-from@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bc710ac231919df9555331885748385c11c5e695d7271824fe56fba51dd637d48d3e5cd52e1c69f2b1a384fbbb41552572bc1ca3a2285ee29571f002e9bb2421 + checksum: 3e42cac016ce10aaaa66a905e4a1112beafe90c9d1919ba91653758c9f576f2c8f3211e191885e227e2d1dd77c111bb4d31b832876883a115047f6dae9ce1dce languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-for-of@npm:7.24.1" +"@babel/plugin-transform-for-of@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-for-of@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 990adde96ea1766ed6008c006c7040127bef59066533bb2977b246ea4a596fe450a528d1881a0db5f894deaf1b81654dfb494b19ad405b369be942738aa9c364 + checksum: 7094f775acc7c7ccb7b5141ced7312f3cd7b1be3a1afda72548a21b8234d70693a6fc26b0c7ef02719f9b3ee7a0702057c3eed6d3caeee2c3631db7f414baaca languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-function-name@npm:7.24.1" +"@babel/plugin-transform-function-name@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-function-name@npm:7.24.6" dependencies: - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-compilation-targets": ^7.24.6 + "@babel/helper-function-name": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 31eb3c75297dda7265f78eba627c446f2324e30ec0124a645ccc3e9f341254aaa40d6787bd62b2280d77c0a5c9fbfce1da2c200ef7c7f8e0a1b16a8eb3644c6f + checksum: d9f51a89522f988d45c5b3ef09a1f9efde2122b94f5c1231bc381023738a46808b45645e0708d1ae86be86a9670f29c1b0a24be633c3a2729bcc2b0511521051 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.1" +"@babel/plugin-transform-json-strings@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f42302d42fc81ac00d14e9e5d80405eb80477d7f9039d7208e712d6bcd486a4e3b32fdfa07b5f027d6c773723d8168193ee880f93b0e430c828e45f104fb82a4 + checksum: fd67fab338687250cb49ac9cd67514a38884013bfc172b834c2862509c40e5b436e716e6cea0ebbfd9d1fad4cae0132da187548c6af6f67717876744c17f5ce4 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-literals@npm:7.24.1" +"@babel/plugin-transform-literals@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-literals@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2df94e9478571852483aca7588419e574d76bde97583e78551c286f498e01321e7dbb1d0ef67bee16e8f950688f79688809cfde370c5c4b84c14d841a3ef217a + checksum: 128da0047b66bce51b94bf50c2a73727e51c7ac661b641b0e0fc1e700dae11697412fa739cc01183919c427e7f970f384186f246fbab575195217d6a8df97381 languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 895f2290adf457cbf327428bdb4fb90882a38a22f729bcf0629e8ad66b9b616d2721fbef488ac00411b647489d1dda1d20171bb3772d0796bb7ef5ecf057808a + checksum: f2b97be1ff770be1467f172492f5c1fbc074ea60de1f8c515684b49c248bd87ae44626368fc577e5239522cb640f351531ef32a45b2e88a049279f2f28246777 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1" +"@babel/plugin-transform-member-expression-literals@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4ea641cc14a615f9084e45ad2319f95e2fee01c77ec9789685e7e11a6c286238a426a98f9c1ed91568a047d8ac834393e06e8c82d1ff01764b7aa61bee8e9023 + checksum: b30bd3df2932af85116a8ea38e040987ea5caf268c634902195e5b9eb0d4c76ee34b01309c2fb28e362f3c2636d4927c19783f3f8eea33ac451885ec29b61a56 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1" +"@babel/plugin-transform-modules-amd@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.6" dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-module-transforms": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3d777c262f257e93f0405b13e178f9c4a0f31855b409f0191a76bb562a28c541326a027bfe6467fcb74752f3488c0333b5ff2de64feec1b3c4c6ace1747afa03 + checksum: 47d85aefb44b85168792266220e184722f96031a40a0d09a2ac026b6997927ea553cfc83bd0a77363873467120140b899fefa8e4c49475d1d21e15c651553086 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1" +"@babel/plugin-transform-modules-commonjs@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.6" dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-module-transforms": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-simple-access": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 11402b34c49f76aa921b43c2d76f3f129a32544a1dc4f0d1e48b310f9036ab75269a6d8684ed0198b7a0b07bd7898b12f0cacceb26fbb167999fd2a819aa0802 + checksum: 8fc772df64d58a431351984f7f34896f61ba8911fde547cd041b6234117e8b84a37f62a4f12c1153df7002d356b8e81944923cc9b37e96face76436cf57ac800 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1" +"@babel/plugin-transform-modules-systemjs@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.6" dependencies: - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-identifier": ^7.22.20 + "@babel/helper-hoist-variables": ^7.24.6 + "@babel/helper-module-transforms": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-validator-identifier": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 903766f6808f04278e887e4adec9b1efa741726279652dad255eaad0f5701df8f8ff0af25eb8541a00eb3c9eae2dccf337b085cfa011426ca33ed1f95d70bf75 + checksum: cc65e757290924c7a37a9e606801b14f8bc3dc7c4281448ce27d8cf63e17ff5ac0c02a4d864bbe0aa950ae84cef9590347d1231a260a3cf0c3ec1cb6b89d939a languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1" +"@babel/plugin-transform-modules-umd@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.6" dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-module-transforms": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4922f5056d34de6fd59a1ab1c85bc3472afa706c776aceeb886289c9ac9117e6eb8e22d06c537eb5bc0ede6c30f6bd85210bdcc150dc0ae2d2373f8252df9364 + checksum: e12f64e4b197b833f2a2923002db810a3e3071be2fc62b201c0b048142a32bbc4709633d346aaa301534c9c447b9e68800f24dcbbd3e1c1f3de04c737379fc24 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.6" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0 - checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + checksum: a86048c47178af3d752a458b49c8483ceccbb0cff1775a6d0929415734280f42f14d48bf62d327f6fb0f8c0dff496258b59705debdd4ea68a3b247649f945f2f languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-new-target@npm:7.24.1" +"@babel/plugin-transform-new-target@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-new-target@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f56159ba56e8824840b8073f65073434e4bc4ef20e366bc03aa6cae9a4389365574fa72390e48aed76049edbc6eba1181eb810e58fae22c25946c62f9da13db4 + checksum: 9d5de07a334eb9d2521cf7d319b23f8cdf234e4fe003d034de448a506ae3f4756227ce34aafa037c6541ec4d993eb15075bcb3c064d3eaae64eba4f405d6f232 languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 74025e191ceb7cefc619c15d33753aab81300a03d81b96ae249d9b599bc65878f962d608f452462d3aad5d6e334b7ab2b09a6bdcfe8d101fe77ac7aacca4261e + checksum: 828b815276153ffa8b53e74a1ff9dd2cd51c2e76f6fbcd8c71c3c21953dcbd14e2fe2e317989c3a93f4896e21205d978773932e414a2ea4b89609a74130a2623 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1" +"@babel/plugin-transform-numeric-separator@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3247bd7d409574fc06c59e0eb573ae7470d6d61ecf780df40b550102bb4406747d8f39dcbec57eb59406df6c565a86edd3b429e396ad02e4ce201ad92050832e + checksum: e3d608693d9329704145fb6b8e001dd4e671ddfdbb6770ecebdffae350b16a83b4d01f69ba849d73e4a58cbe802d42be2f883b52b98f9d372020e5d1b1f4f8ed languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.5" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.6" dependencies: - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-compilation-targets": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.24.5 + "@babel/plugin-transform-parameters": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 427705fe1358ca4862e6cfbfc174dc0fbfdd640b786cfe759dd4881cfb2fd51723e8432ecd89f07a60444e555a9c19e0e7bf4c657b91844994b39a53a602eb16 + checksum: 5b5d6a3735d1b8fcc768c9acc1191b9dd1964e3454b0195d15346f889fb2134d3a8910a863359620775d5b7d56b3f4534429012eeef6a9c6d0518e6adfe5c552 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-super@npm:7.24.1" +"@babel/plugin-transform-object-super@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-object-super@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-replace-supers": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-replace-supers": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d34d437456a54e2a5dcb26e9cf09ed4c55528f2a327c5edca92c93e9483c37176e228d00d6e0cf767f3d6fdbef45ae3a5d034a7c59337a009e20ae541c8220fa + checksum: 291bb801050d9041a34da81fc68f6465d22a34bb2aef73b5cb0ecd756c0245c0af7e99e8c46d63e3e74e1cf598be1c6624da67f49d7b13e9a16e019634082466 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ff7c02449d32a6de41e003abb38537b4a1ad90b1eaa4c0b578cb1b55548201a677588a8c47f3e161c72738400ae811a6673ea7b8a734344755016ca0ac445dac + checksum: ab12b52d0007a835242505df0348743c84014e733b534583ddd786aa40dd5145d875606a666255ac823a6ccc65f649c3cebb5e5e76f8bf7b8bdf26450c7b6c8a languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.1" +"@babel/plugin-transform-optional-chaining@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0eb5f4abdeb1a101c0f67ef25eba4cce0978a74d8722f6222cdb179a28e60d21ab545eda231855f50169cd63d604ec8268cff44ae9370fd3a499a507c56c2bbd + checksum: 6a3a363775dc83d6a2812bbbe695fce89a23872ecc71d81484a8bdf8747b7ad53a2559d0a752f412b994b0c043e7379de09b17bff70ea38916e60c7260c91bac languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.5" - dependencies: - "@babel/helper-plugin-utils": ^7.24.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 233934463ef1f9a02a9fda96c722e9c162477fd94816a58413f0d4165cc536c7af0482b46fe066e754748a20bbabec255b4bbde194a7fd20b32280e526e1bfec - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-parameters@npm:7.24.5" +"@babel/plugin-transform-parameters@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-parameters@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b052e1cf43b1ea571fc0867baa01041ce32f46576b711c6331f03263ae479a582f81a6039287535cd90ee46d2977e2f3c66f5bdbf454a9f8cdc7c5c6c67b50be + checksum: e8c70d736cee3752444bd2c047542a82eec81583cb1bf69094608dc50645ca660a85833cc775644d8dac11128d3297e7dc5c2cb964da1c18a96d004ff645149d languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-private-methods@npm:7.24.1" +"@babel/plugin-transform-private-methods@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.6" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-class-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7208c30bb3f3fbc73fb3a88bdcb78cd5cddaf6d523eb9d67c0c04e78f6fc6319ece89f4a5abc41777ceab16df55b3a13a4120e0efc9275ca6d2d89beaba80aa0 + checksum: ee6aae3ec45fc33cc7f02c3092b3bba35bde02c8293e11c87e7549d6afb3dde024a968542fbb5d5204a74aa5b909e717c09d37f4e1be39a8ef3f26466c0391e0 languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.5" +"@babel/plugin-transform-private-property-in-object@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.24.5 - "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-create-class-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 59f9007671f50ef8f9eff33bb2dc3de22a2849612d4b64fc9e4ba502466ddbaf3f94774011695dde5128c4ca2009e241babe928ac63f71a29f27c1cc7ce01e5f + checksum: a6b0f578a1f9195956fb66686a6e03b03b1293abd5f9b244fc077669ae3365391d61a4107ac9f2f019accfb3f09c19ede4b5811082c116709c7aa6b08efc9ffb languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.1" +"@babel/plugin-transform-property-literals@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a73646d7ecd95b3931a3ead82c7d5efeb46e68ba362de63eb437d33531f294ec18bd31b6d24238cd3b6a3b919a6310c4a0ba4a2629927721d4d10b0518eb7715 + checksum: 003bbec02aaddde04de492ef63cd4aab131ac65bc8ae0f2b49394b93b1c6a3d104ef62b57184569332de0149aa9cb4b2528b40e0ca9c5884117b7c379cd1a017 languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-display-name@npm:7.24.1" +"@babel/plugin-transform-react-display-name@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-react-display-name@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d87ac36073f923a25de0ed3cffac067ec5abc4cde63f7f4366881388fbea6dcbced0e4fefd3b7e99edfe58a4ce32ea4d4c523a577d2b9f0515b872ed02b3d8c3 + checksum: 23e5992815b4f9bda6b90673d94ba74d001281fa2b02780d59f666234ed9b05782546364b13009fe0d72b3d5b829f2c6831948b0af120294f5f2e5f4da9c7eab languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" +"@babel/plugin-transform-react-jsx-development@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.6" dependencies: - "@babel/plugin-transform-react-jsx": ^7.22.5 + "@babel/plugin-transform-react-jsx": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 + checksum: 912993aa8546d3aa129d6a567018c29bc99f0a3c9a99062f756d48c8ad0444f42314a245a1434964e23685a59c4a1564abb8e9a251d8ca216ed726661ede50d9 languageName: node linkType: hard @@ -1356,193 +1324,193 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.22.5, @babel/plugin-transform-react-jsx@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" +"@babel/plugin-transform-react-jsx@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-react-jsx@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-jsx": ^7.23.3 - "@babel/types": ^7.23.4 + "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-module-imports": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/plugin-syntax-jsx": ^7.24.6 + "@babel/types": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a + checksum: 6e6ef2a9c364c81dc865cfac12fb45075470e918af648239b3ef9d4720577762950b9db6db2d1f8c2e4f3f0c2e4e169d4ebc7c5c2037fc0755ee606016a413f0 languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.1" +"@babel/plugin-transform-react-pure-annotations@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 06a6bfe80f1f36408d07dd80c48cf9f61177c8e5d814e80ddbe88cfad81a8b86b3110e1fe9d1ac943db77e74497daa7f874b5490c788707106ad26ecfbe44813 + checksum: e358ecabb328a952d8aa36acbbf7bf017b1905d97401eaafb6b99572d8d4b477a3e37cccc1cd582d980952936b7e6dd370ade488e167591c1c9fb7940141c301 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.1" +"@babel/plugin-transform-regenerator@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a04319388a0a7931c3f8e15715d01444c32519692178b70deccc86d53304e74c0f589a4268f6c68578d86f75e934dd1fe6e6ed9071f54ee8379f356f88ef6e42 + checksum: 78ee16d3ac5c53d6f4526cc45d66dfd163625c62efb8e75cebbc8fcc2f4f13967b2a7e3464f854b559dcd93c4a21fc139ddcb7c70ada7074b53872a1378632f8 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1" +"@babel/plugin-transform-reserved-words@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 132c6040c65aabae2d98a39289efb5c51a8632546dc50d2ad032c8660aec307fbed74ef499856ea4f881fc8505905f49b48e0270585da2ea3d50b75e962afd89 + checksum: 37097ad5333629d52092bf9e7573e9c5012b3ea6c9148540b9780e754a1bbafa9df6506a054743cd928bd83989bb8c507280e1ebec955de87745bbe11f7dd0be languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1" +"@babel/plugin-transform-shorthand-properties@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 006a2032d1c57dca76579ce6598c679c2f20525afef0a36e9d42affe3c8cf33c1427581ad696b519cc75dfee46c5e8ecdf0c6a29ffb14250caa3e16dd68cb424 + checksum: 6c7c8a2ef45b3e9d5ddf1e2dcb5fc40a581cf218f2122c5f2104b91d518d2d21d8d30f4c1db7f3c1c6c68283ec86e8a19d3b8478582306f6529388503d04b61f languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-spread@npm:7.24.1" +"@babel/plugin-transform-spread@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-spread@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 622ef507e2b5120a9010b25d3df5186c06102ecad8751724a38ec924df8d3527688198fa490c47064eabba14ef2f961b3069855bd22a8c0a1e51a23eed348d02 + checksum: aa86664134e03f0e2d70522e5634c67a31b8f93abd00755e98f0c5dbcb2411bd1f2745e0b3b4e6ed2d280b48b15136225c457df89b16f1fff1f98eac999f2064 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1" +"@babel/plugin-transform-sticky-regex@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e326e96a9eeb6bb01dbc4d3362f989411490671b97f62edf378b8fb102c463a018b777f28da65344d41b22aa6efcdfa01ed43d2b11fdcf202046d3174be137c5 + checksum: 960962195044c0a66c8a12ba59e72271cf2ab5774606018622012bfac7172d1edebb189c91ca2399f610166b9578c769f09f2802eeff1d0866f50642caa15c6d languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.1" +"@babel/plugin-transform-template-literals@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4c9009c72321caf20e3b6328bbe9d7057006c5ae57b794cf247a37ca34d87dfec5e27284169a16df5a6235a083bf0f3ab9e1bfcb005d1c8b75b04aed75652621 + checksum: 9518e4cdf399505645b13a80171199b0b9a8366df5dcc547359430b9a1b9f00260da20cdec7fe0ed8709e5224c67e08e793f85be674e23937650e592d453b8bf languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.5" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.5 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 35504219e4e8b361dbd285400c846f154754e591e931cd30dbe1426a619e41ed0c410b26dd173824ed3a2ff0371d64213ae2304b6f169b32e78b004114f5acd5 + checksum: 91af214cffe5b8ae33702beb1f9ad0fa14b7809662118b78bb1a2e8a50e016f4c3d2b1505a3140245161daf988498509ca35b741bab91024dffe128682ac24d6 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-typescript@npm:7.24.1" +"@babel/plugin-transform-typescript@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-typescript@npm:7.24.6" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-typescript": ^7.24.1 + "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-create-class-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/plugin-syntax-typescript": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1a37fa55ab176b11c3763da4295651b3db38f0a7f3d47b5cd5ab1e33cbcbbf2b471c4bdb7b24f39392d4660409209621c8d11c521de2deffddc3d876a1b60482 + checksum: 1af9c27612956b6d65195f484c545490dec01094fc07990c7266732cf104fde09f623df71d2ac7bea3509129735c12fb4d73085d257514fbe4b133963c8895b7 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1" +"@babel/plugin-transform-unicode-escapes@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d4d7cfea91af7be2768fb6bed902e00d6e3190bda738b5149c3a788d570e6cf48b974ec9548442850308ecd8fc9a67681f4ea8403129e7867bcb85adaf6ec238 + checksum: 905211493c9d97993476d1596c46a18e40aaa4c310b4464e05979f5a16f3d31fcf111d67c1c3912cfc2e3cdf6e6cb51c22fd69aea7a017759c790bfe897871e9 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.6" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 276099b4483e707f80b054e2d29bc519158bfe52461ef5ff76f70727d592df17e30b1597ef4d8a0f04d810f6cb5a8dd887bdc1d0540af3744751710ef280090f + checksum: 141df101ffd31f8c1f92c62548020240af71811b1d1bad63f7e41aaf6084ec758715a42eb9f80f00b6a04b6d260ad8e362083372b4106cf5aca304e214c66068 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-regex@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.6" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 400a0927bdb1425b4c0dc68a61b5b2d7d17c7d9f0e07317a1a6a373c080ef94be1dd65fdc4ac9a78fcdb58f89fd128450c7bc0d5b8ca0ae7eca3fbd98e50acba + checksum: 5f4ba063221f5f4034ee008b15a4f12b8939f47782c5e9aac198b72e4fe1aafa35dd60795eb979ced25ee0d6dbd7656ae424cfd00206cd59c956c5e3a7976e0d languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.6" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0 - checksum: 364342fb8e382dfaa23628b88e6484dc1097e53fb7199f4d338f1e2cd71d839bb0a35a9b1380074f6a10adb2e98b79d53ca3ec78c0b8c557ca895ffff42180df + checksum: a62af3b80f4f89fb30e1735fe4b2b16e00da552c3bd8af1cce2e54ae7c50398286f729b961fcd0caf675c69289620991be90c3628ea76e5a0d15c864e97351d2 languageName: node linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.24.5 - resolution: "@babel/preset-env@npm:7.24.5" - dependencies: - "@babel/compat-data": ^7.24.4 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.5 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.5 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.1 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.1 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.1 + version: 7.24.6 + resolution: "@babel/preset-env@npm:7.24.6" + dependencies: + "@babel/compat-data": ^7.24.6 + "@babel/helper-compilation-targets": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-validator-option": ^7.24.6 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.6 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.6 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.6 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.6 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.24.1 - "@babel/plugin-syntax-import-attributes": ^7.24.1 + "@babel/plugin-syntax-import-assertions": ^7.24.6 + "@babel/plugin-syntax-import-attributes": ^7.24.6 "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 @@ -1554,54 +1522,54 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.24.1 - "@babel/plugin-transform-async-generator-functions": ^7.24.3 - "@babel/plugin-transform-async-to-generator": ^7.24.1 - "@babel/plugin-transform-block-scoped-functions": ^7.24.1 - "@babel/plugin-transform-block-scoping": ^7.24.5 - "@babel/plugin-transform-class-properties": ^7.24.1 - "@babel/plugin-transform-class-static-block": ^7.24.4 - "@babel/plugin-transform-classes": ^7.24.5 - "@babel/plugin-transform-computed-properties": ^7.24.1 - "@babel/plugin-transform-destructuring": ^7.24.5 - "@babel/plugin-transform-dotall-regex": ^7.24.1 - "@babel/plugin-transform-duplicate-keys": ^7.24.1 - "@babel/plugin-transform-dynamic-import": ^7.24.1 - "@babel/plugin-transform-exponentiation-operator": ^7.24.1 - "@babel/plugin-transform-export-namespace-from": ^7.24.1 - "@babel/plugin-transform-for-of": ^7.24.1 - "@babel/plugin-transform-function-name": ^7.24.1 - "@babel/plugin-transform-json-strings": ^7.24.1 - "@babel/plugin-transform-literals": ^7.24.1 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.1 - "@babel/plugin-transform-member-expression-literals": ^7.24.1 - "@babel/plugin-transform-modules-amd": ^7.24.1 - "@babel/plugin-transform-modules-commonjs": ^7.24.1 - "@babel/plugin-transform-modules-systemjs": ^7.24.1 - "@babel/plugin-transform-modules-umd": ^7.24.1 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.24.1 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.1 - "@babel/plugin-transform-numeric-separator": ^7.24.1 - "@babel/plugin-transform-object-rest-spread": ^7.24.5 - "@babel/plugin-transform-object-super": ^7.24.1 - "@babel/plugin-transform-optional-catch-binding": ^7.24.1 - "@babel/plugin-transform-optional-chaining": ^7.24.5 - "@babel/plugin-transform-parameters": ^7.24.5 - "@babel/plugin-transform-private-methods": ^7.24.1 - "@babel/plugin-transform-private-property-in-object": ^7.24.5 - "@babel/plugin-transform-property-literals": ^7.24.1 - "@babel/plugin-transform-regenerator": ^7.24.1 - "@babel/plugin-transform-reserved-words": ^7.24.1 - "@babel/plugin-transform-shorthand-properties": ^7.24.1 - "@babel/plugin-transform-spread": ^7.24.1 - "@babel/plugin-transform-sticky-regex": ^7.24.1 - "@babel/plugin-transform-template-literals": ^7.24.1 - "@babel/plugin-transform-typeof-symbol": ^7.24.5 - "@babel/plugin-transform-unicode-escapes": ^7.24.1 - "@babel/plugin-transform-unicode-property-regex": ^7.24.1 - "@babel/plugin-transform-unicode-regex": ^7.24.1 - "@babel/plugin-transform-unicode-sets-regex": ^7.24.1 + "@babel/plugin-transform-arrow-functions": ^7.24.6 + "@babel/plugin-transform-async-generator-functions": ^7.24.6 + "@babel/plugin-transform-async-to-generator": ^7.24.6 + "@babel/plugin-transform-block-scoped-functions": ^7.24.6 + "@babel/plugin-transform-block-scoping": ^7.24.6 + "@babel/plugin-transform-class-properties": ^7.24.6 + "@babel/plugin-transform-class-static-block": ^7.24.6 + "@babel/plugin-transform-classes": ^7.24.6 + "@babel/plugin-transform-computed-properties": ^7.24.6 + "@babel/plugin-transform-destructuring": ^7.24.6 + "@babel/plugin-transform-dotall-regex": ^7.24.6 + "@babel/plugin-transform-duplicate-keys": ^7.24.6 + "@babel/plugin-transform-dynamic-import": ^7.24.6 + "@babel/plugin-transform-exponentiation-operator": ^7.24.6 + "@babel/plugin-transform-export-namespace-from": ^7.24.6 + "@babel/plugin-transform-for-of": ^7.24.6 + "@babel/plugin-transform-function-name": ^7.24.6 + "@babel/plugin-transform-json-strings": ^7.24.6 + "@babel/plugin-transform-literals": ^7.24.6 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.6 + "@babel/plugin-transform-member-expression-literals": ^7.24.6 + "@babel/plugin-transform-modules-amd": ^7.24.6 + "@babel/plugin-transform-modules-commonjs": ^7.24.6 + "@babel/plugin-transform-modules-systemjs": ^7.24.6 + "@babel/plugin-transform-modules-umd": ^7.24.6 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.6 + "@babel/plugin-transform-new-target": ^7.24.6 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.6 + "@babel/plugin-transform-numeric-separator": ^7.24.6 + "@babel/plugin-transform-object-rest-spread": ^7.24.6 + "@babel/plugin-transform-object-super": ^7.24.6 + "@babel/plugin-transform-optional-catch-binding": ^7.24.6 + "@babel/plugin-transform-optional-chaining": ^7.24.6 + "@babel/plugin-transform-parameters": ^7.24.6 + "@babel/plugin-transform-private-methods": ^7.24.6 + "@babel/plugin-transform-private-property-in-object": ^7.24.6 + "@babel/plugin-transform-property-literals": ^7.24.6 + "@babel/plugin-transform-regenerator": ^7.24.6 + "@babel/plugin-transform-reserved-words": ^7.24.6 + "@babel/plugin-transform-shorthand-properties": ^7.24.6 + "@babel/plugin-transform-spread": ^7.24.6 + "@babel/plugin-transform-sticky-regex": ^7.24.6 + "@babel/plugin-transform-template-literals": ^7.24.6 + "@babel/plugin-transform-typeof-symbol": ^7.24.6 + "@babel/plugin-transform-unicode-escapes": ^7.24.6 + "@babel/plugin-transform-unicode-property-regex": ^7.24.6 + "@babel/plugin-transform-unicode-regex": ^7.24.6 + "@babel/plugin-transform-unicode-sets-regex": ^7.24.6 "@babel/preset-modules": 0.1.6-no-external-plugins babel-plugin-polyfill-corejs2: ^0.4.10 babel-plugin-polyfill-corejs3: ^0.10.4 @@ -1610,7 +1578,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cced4e5331231158e02ba5903c4de12ef0aa2d2266ebb07fa80a85045b1fe2c63410d7558b702f1916d9d038531f3d79ab31007762188de5f712b16f7a66bb74 + checksum: 3467171641b0e38dcddef9b16f11676585bbfe32eab3674a881b6437eee330211c01cecd608d3d4e01607b1faf168184db041782ce90fe437f5a635e6bd7676c languageName: node linkType: hard @@ -1628,33 +1596,33 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.23.3": - version: 7.24.1 - resolution: "@babel/preset-react@npm:7.24.1" + version: 7.24.6 + resolution: "@babel/preset-react@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-transform-react-display-name": ^7.24.1 - "@babel/plugin-transform-react-jsx": ^7.23.4 - "@babel/plugin-transform-react-jsx-development": ^7.22.5 - "@babel/plugin-transform-react-pure-annotations": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-validator-option": ^7.24.6 + "@babel/plugin-transform-react-display-name": ^7.24.6 + "@babel/plugin-transform-react-jsx": ^7.24.6 + "@babel/plugin-transform-react-jsx-development": ^7.24.6 + "@babel/plugin-transform-react-pure-annotations": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 70e146a6de480cb4b6c5eb197003960a2d148d513e1f5b5d04ee954f255d68c935c2800da13e550267f47b894bd0214b2548181467b52a4bdc0a85020061b68c + checksum: 3bf120b3c29521f1e9f7d5cea864ea3cf411b385bc32f516b5956e209cca074f05c32a1c2baa8b24f3100c7868832f9a37d6f3ad6989aec3592bc09ab90e991a languageName: node linkType: hard "@babel/preset-typescript@npm:^7.23.3": - version: 7.24.1 - resolution: "@babel/preset-typescript@npm:7.24.1" + version: 7.24.6 + resolution: "@babel/preset-typescript@npm:7.24.6" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-syntax-jsx": ^7.24.1 - "@babel/plugin-transform-modules-commonjs": ^7.24.1 - "@babel/plugin-transform-typescript": ^7.24.1 + "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-validator-option": ^7.24.6 + "@babel/plugin-syntax-jsx": ^7.24.6 + "@babel/plugin-transform-modules-commonjs": ^7.24.6 + "@babel/plugin-transform-typescript": ^7.24.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f3e0ff8c20dd5abc82614df2d7953f1549a98282b60809478f7dfb41c29be63720f2d1d7a51ef1f0d939b65e8666cb7d36e32bc4f8ac2b74c20664efd41e8bdd + checksum: f78a424bc19339b287da40fb3016f8390f5cb1c956d46ea46fb898e25f7a5448c2c5267cd7734f7665c743e416dd11da447d450b6012d061dfb6ae5f824abbd6 languageName: node linkType: hard @@ -1674,7 +1642,18 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/template@npm:7.24.6" + dependencies: + "@babel/code-frame": ^7.24.6 + "@babel/parser": ^7.24.6 + "@babel/types": ^7.24.6 + checksum: 8e532ebdd5e1398c030af16881061bad43b9c3b758a193a6289dc5be5988cc543f7aa56a360e15b755258c0b3d387f3cd78b505835b040a2729d0261d0ff1711 + languageName: node + linkType: hard + +"@babel/template@npm:^7.3.3": version: 7.23.9 resolution: "@babel/template@npm:7.23.9" dependencies: @@ -1685,36 +1664,25 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/template@npm:7.24.0" +"@babel/traverse@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/traverse@npm:7.24.6" dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/parser": ^7.24.0 - "@babel/types": ^7.24.0 - checksum: f257b003c071a0cecdbfceca74185f18fe62c055469ab5c1d481aab12abeebed328e67e0a19fd978a2a8de97b28953fa4bc3da6d038a7345fdf37923b9fcdec8 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/traverse@npm:7.24.5" - dependencies: - "@babel/code-frame": ^7.24.2 - "@babel/generator": ^7.24.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.24.5 - "@babel/parser": ^7.24.5 - "@babel/types": ^7.24.5 + "@babel/code-frame": ^7.24.6 + "@babel/generator": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.6 + "@babel/helper-function-name": ^7.24.6 + "@babel/helper-hoist-variables": ^7.24.6 + "@babel/helper-split-export-declaration": ^7.24.6 + "@babel/parser": ^7.24.6 + "@babel/types": ^7.24.6 debug: ^4.3.1 globals: ^11.1.0 - checksum: a313fbf4a06946cc4b74b06e9846d7393a9ca1e8b6df6da60c669cff0a9426d6198c21a478041c60807b62b48f980473d4afbd3768764b0d9741ac80f5dfa04f + checksum: 654151b2ab5c9d5031c274cf197f707b8a27a1c70b38fcb8d1bf5ad2d8848f38675ab9c2a86aeb804657c5817124ac5be4cb6f5defa8ef7ac40596e1220697aa languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" dependencies: @@ -1725,25 +1693,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/types@npm:7.24.0" - dependencies: - "@babel/helper-string-parser": ^7.23.4 - "@babel/helper-validator-identifier": ^7.22.20 - to-fast-properties: ^2.0.0 - checksum: 4b574a37d490f621470ff36a5afaac6deca5546edcb9b5e316d39acbb20998e9c2be42f3fc0bf2b55906fc49ff2a5a6a097e8f5a726ee3f708a0b0ca93aed807 - languageName: node - linkType: hard - -"@babel/types@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/types@npm:7.24.5" +"@babel/types@npm:^7.24.6": + version: 7.24.6 + resolution: "@babel/types@npm:7.24.6" dependencies: - "@babel/helper-string-parser": ^7.24.1 - "@babel/helper-validator-identifier": ^7.24.5 + "@babel/helper-string-parser": ^7.24.6 + "@babel/helper-validator-identifier": ^7.24.6 to-fast-properties: ^2.0.0 - checksum: 8eeeacd996593b176e649ee49d8dc3f26f9bb6aa1e3b592030e61a0e58ea010fb018dccc51e5314c8139409ea6cbab02e29b33e674e1f6962d8e24c52da6375b + checksum: 58d798dd37e6b14f818730b4536795d68d28ccd5dc2a105fd977104789b20602be11d92cdd47cdbd48d8cce3cc0e14c7773813357ad9d5d6e94d70587eb45bf5 languageName: node linkType: hard From 9687405da5988e4cca133bf4b7c26426efdaa95a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 01:31:19 +0000 Subject: [PATCH 191/471] chore(deps): update dependency stylelint to v16.6.0 --- yarn.lock | 93 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/yarn.lock b/yarn.lock index e51d3f8d1..5023f2fb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1755,38 +1755,38 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.6.1": - version: 2.6.1 - resolution: "@csstools/css-parser-algorithms@npm:2.6.1" +"@csstools/css-parser-algorithms@npm:^2.6.3": + version: 2.6.3 + resolution: "@csstools/css-parser-algorithms@npm:2.6.3" peerDependencies: - "@csstools/css-tokenizer": ^2.2.4 - checksum: 365745c2d6b3eaf26c77d09306c66012552d2b2e4cf94fabc230e8a6a954dab57867b24ebedd8bd518c8ced844c7f988e89144b5d9c76cfbddff126cfb2f153d + "@csstools/css-tokenizer": ^2.3.1 + checksum: f1bfcb6680c801f4201c30b77827e000b838e5a45b42f146ec352cd008b51ebb31b8aae00364369765c24e938391e221e37f4063e3a6151316d6990c498da103 languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.2.4": - version: 2.2.4 - resolution: "@csstools/css-tokenizer@npm:2.2.4" - checksum: 306ce5603e1084d782e125caa86eadad2a3115e36ec824b855df7e48bb4821eec7ccf336990d37874d76cf18156586866975e46c6a75583f218c61735749af81 +"@csstools/css-tokenizer@npm:^2.3.1": + version: 2.3.1 + resolution: "@csstools/css-tokenizer@npm:2.3.1" + checksum: a5fe22faed5673b5d19e64aa7f4730b48711d0946470551376bc3125d831511070c94addfdfc6a62634e968955050ef2c99c92ff8cb294d9bf70ebc1f3ac22a8 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.9": - version: 2.1.9 - resolution: "@csstools/media-query-list-parser@npm:2.1.9" +"@csstools/media-query-list-parser@npm:^2.1.11": + version: 2.1.11 + resolution: "@csstools/media-query-list-parser@npm:2.1.11" peerDependencies: - "@csstools/css-parser-algorithms": ^2.6.1 - "@csstools/css-tokenizer": ^2.2.4 - checksum: c10c39ac23c38ccf6f21cc075ecced5cf9c98f237c559818d248b7b7ac08da5d2a92f80685a2958ef5862fb8cba4f12054f2fced5a18f8392d545934f52b42ff + "@csstools/css-parser-algorithms": ^2.6.3 + "@csstools/css-tokenizer": ^2.3.1 + checksum: e338eff90b43ab31b3d33c55c792f7760d556feaeaa042e12b8e3f873293b72f1140df1bbbfa1c9dcc16c58afb777f1e218e17afdcd0ab8228d2a8ea22bcbe61 languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.0.3": - version: 3.0.3 - resolution: "@csstools/selector-specificity@npm:3.0.3" +"@csstools/selector-specificity@npm:^3.1.1": + version: 3.1.1 + resolution: "@csstools/selector-specificity@npm:3.1.1" peerDependencies: postcss-selector-parser: ^6.0.13 - checksum: 287f17aefe2f22a39cb1c01d45d9e2c4c8c7cf11d9af67c44fe14fa2ed2e11178406661d1b6b023c8a447cdb08933ac134352a0c1452d409af4e7db2570684f3 + checksum: 3786a6afea97b08ad739ee8f4004f7e0a9e25049cee13af809dbda6462090744012a54bd9275a44712791e8f103f85d21641f14e81799f9dab946b0459a5e1ef languageName: node linkType: hard @@ -1925,10 +1925,10 @@ __metadata: languageName: node linkType: hard -"@dual-bundle/import-meta-resolve@npm:^4.0.0": - version: 4.0.0 - resolution: "@dual-bundle/import-meta-resolve@npm:4.0.0" - checksum: c98c467a17ccb19fc99ef174df22a789949cbb261a27220d856b5dcd4148045ca5d70121d18cae8c2fff53e818c278dda2130c467f87e54e34a744cacc7cedf0 +"@dual-bundle/import-meta-resolve@npm:^4.1.0": + version: 4.1.0 + resolution: "@dual-bundle/import-meta-resolve@npm:4.1.0" + checksum: 8a79576624d66f3ee578cb4cd7f7dac9282dc4c6f757c7c1f4c364fdbabc99584e1407e49e1ef00c0b42dab01d1f8490ec1d08a02c1238bad657a7335303d462 languageName: node linkType: hard @@ -9635,10 +9635,10 @@ __metadata: languageName: node linkType: hard -"known-css-properties@npm:^0.30.0": - version: 0.30.0 - resolution: "known-css-properties@npm:0.30.0" - checksum: 8d682c31f324b18bdad8688aafe16de7e038b63fb5e70579c247fa72cec27797312ab7be241b96485eedd1b8a2f1e5f7481768efb0ce944d7ec0c0441b2b6e5a +"known-css-properties@npm:^0.31.0": + version: 0.31.0 + resolution: "known-css-properties@npm:0.31.0" + checksum: 814979212974f229f33ece048a54c3da5b689cbf1275fcfda83b9317a3826605c5d85b28ed68d9b62300a8eb9db61708a662ef6ec2ec12029f3139d117ebb2a1 languageName: node linkType: hard @@ -11055,6 +11055,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -11173,13 +11180,13 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.16": - version: 6.0.16 - resolution: "postcss-selector-parser@npm:6.0.16" +"postcss-selector-parser@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-selector-parser@npm:6.1.0" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: e1cd68e33a39e3dc1e1e5bd8717be5bbe3cc23a4cecb466c3acb2f3a77daad7a47df4d6137a76f8db74cf160d2fb16b2cfdb4ccbebdfda844690f8d545fe281d + checksum: 449f614e6706421be307d8638183c61ba45bc3b460fe3815df8971dbb4d59c4087181940d879daee4a7a2daf3d86e915db1cce0c006dd68ca75b4087079273bd languageName: node linkType: hard @@ -12757,14 +12764,14 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.5.0 - resolution: "stylelint@npm:16.5.0" - dependencies: - "@csstools/css-parser-algorithms": ^2.6.1 - "@csstools/css-tokenizer": ^2.2.4 - "@csstools/media-query-list-parser": ^2.1.9 - "@csstools/selector-specificity": ^3.0.3 - "@dual-bundle/import-meta-resolve": ^4.0.0 + version: 16.6.0 + resolution: "stylelint@npm:16.6.0" + dependencies: + "@csstools/css-parser-algorithms": ^2.6.3 + "@csstools/css-tokenizer": ^2.3.1 + "@csstools/media-query-list-parser": ^2.1.11 + "@csstools/selector-specificity": ^3.1.1 + "@dual-bundle/import-meta-resolve": ^4.1.0 balanced-match: ^2.0.0 colord: ^2.9.3 cosmiconfig: ^9.0.0 @@ -12781,16 +12788,16 @@ __metadata: ignore: ^5.3.1 imurmurhash: ^0.1.4 is-plain-object: ^5.0.0 - known-css-properties: ^0.30.0 + known-css-properties: ^0.31.0 mathml-tag-names: ^2.1.3 meow: ^13.2.0 micromatch: ^4.0.5 normalize-path: ^3.0.0 - picocolors: ^1.0.0 + picocolors: ^1.0.1 postcss: ^8.4.38 postcss-resolve-nested-selector: ^0.1.1 postcss-safe-parser: ^7.0.0 - postcss-selector-parser: ^6.0.16 + postcss-selector-parser: ^6.1.0 postcss-value-parser: ^4.2.0 resolve-from: ^5.0.0 string-width: ^4.2.3 @@ -12801,7 +12808,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: 65271934af21e37117cc6586ebb46cb2629d5c247f05a0b39effca08bf6c85c1a4f489e5b04519e301e65d2f1996a395bc34d3b8ccbb4e7125d820381662ddc7 + checksum: 3a99a3e7497951f9f6c10d2dc39937c55ed2a54a95a4acece4d1274af49ac8ab5b4cf4f5dcdca02717b578b96f21b5d5a74e0f806ee22de2823535396501c41a languageName: node linkType: hard From 523e0db7f83fa36b3eb60575e48d0ef2a862288f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 03:52:18 +0000 Subject: [PATCH 192/471] fix(deps): update dependency monaco-editor to ^0.49.0 --- packages/ui/package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 356fa8e1e..dbded66fd 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -53,7 +53,7 @@ "d3-shape": "^3.2.0", "file-saver": "^2.0.5", "loglevel": "^1.9.1", - "monaco-editor": "^0.48.0", + "monaco-editor": "^0.49.0", "pako": "^2.1.0", "react": "^18.2.0", "react-dnd": "^16.0.1", diff --git a/yarn.lock b/yarn.lock index 5023f2fb0..9c1a53a5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1832,7 +1832,7 @@ __metadata: jest-environment-jsdom: ^29.7.0 loglevel: ^1.9.1 madge: ^7.0.0 - monaco-editor: ^0.48.0 + monaco-editor: ^0.49.0 pako: ^2.1.0 prettier: ^3.2.5 react: ^18.2.0 @@ -10282,10 +10282,10 @@ __metadata: languageName: node linkType: hard -"monaco-editor@npm:^0.48.0": - version: 0.48.0 - resolution: "monaco-editor@npm:0.48.0" - checksum: 611eaded772935a8b7491325672a165efcb5fde69da4fabd822eae799765655fb55b4ef0fac411103a49c65679c597da82177e06f6f466b001af6117e8107e28 +"monaco-editor@npm:^0.49.0": + version: 0.49.0 + resolution: "monaco-editor@npm:0.49.0" + checksum: 133b41b2b32d120ff6bc12d68a72501c90ff6de2e15e915a44c25f3f3ab29d164bd94ba501e13329e855b3000bd035319b01be122e76ab7f3fab6731cf0a323c languageName: node linkType: hard From 93997013b633ac016045736183a12222906f9821 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 May 2024 01:45:15 +0000 Subject: [PATCH 193/471] chore(deps): update dependency lint-staged to v15.2.5 --- yarn.lock | 143 ++++++++++++++++++++++++++---------------------------- 1 file changed, 68 insertions(+), 75 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9c1a53a5c..10c5dca1e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5321,13 +5321,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:5.3.0, chalk@npm:^5.3.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 - languageName: node - linkType: hard - "chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -5359,6 +5352,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^5.3.0, chalk@npm:~5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 + languageName: node + linkType: hard + "char-regex@npm:^1.0.2": version: 1.0.2 resolution: "char-regex@npm:1.0.2" @@ -5600,13 +5600,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:12.1.0": - version: 12.1.0 - resolution: "commander@npm:12.1.0" - checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 - languageName: node - linkType: hard - "commander@npm:7, commander@npm:^7.2.0": version: 7.2.0 resolution: "commander@npm:7.2.0" @@ -5621,6 +5614,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:~12.1.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 + languageName: node + linkType: hard + "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" @@ -6344,7 +6344,7 @@ __metadata: languageName: unknown linkType: soft -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:~4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -7304,23 +7304,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:8.0.1, execa@npm:^8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^8.0.1 - human-signals: ^5.0.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^4.1.0 - strip-final-newline: ^3.0.0 - checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f - languageName: node - linkType: hard - "execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -7338,6 +7321,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^8.0.1, execa@npm:~8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^8.0.1 + human-signals: ^5.0.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^4.1.0 + strip-final-newline: ^3.0.0 + checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -9685,7 +9685,7 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:3.1.1": +"lilconfig@npm:~3.1.1": version: 3.1.1 resolution: "lilconfig@npm:3.1.1" checksum: dc8a4f4afde3f0fac6bd36163cc4777a577a90759b8ef1d0d766b19ccf121f723aa79924f32af5b954f3965268215e046d0f237c41c76e5ef01d4e6d1208a15e @@ -9707,26 +9707,26 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.4 - resolution: "lint-staged@npm:15.2.4" - dependencies: - chalk: 5.3.0 - commander: 12.1.0 - debug: 4.3.4 - execa: 8.0.1 - lilconfig: 3.1.1 - listr2: 8.2.1 - micromatch: 4.0.6 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.4.2 + version: 15.2.5 + resolution: "lint-staged@npm:15.2.5" + dependencies: + chalk: ~5.3.0 + commander: ~12.1.0 + debug: ~4.3.4 + execa: ~8.0.1 + lilconfig: ~3.1.1 + listr2: ~8.2.1 + micromatch: ~4.0.7 + pidtree: ~0.6.0 + string-argv: ~0.3.2 + yaml: ~2.4.2 bin: lint-staged: bin/lint-staged.js - checksum: 521a5cd3c5e381f74bea87d38c2bb194dd89ebab85470e0c49a79d10333f858bb7141744b9ff9e01ebac2a02b22f39933bcc7739d965e9e8ba50fe900ca4d250 + checksum: 3025868d965eb401a5ebd903abd70cfebb8dbeb41eea1020c316f9c8c79083ea203f6cef95d32bfa8c9ec5486392b4ed08632ace6a5347b69cf238ba00e178f0 languageName: node linkType: hard -"listr2@npm:8.2.1": +"listr2@npm:~8.2.1": version: 8.2.1 resolution: "listr2@npm:8.2.1" dependencies: @@ -10005,16 +10005,6 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:4.0.6": - version: 4.0.6 - resolution: "micromatch@npm:4.0.6" - dependencies: - braces: ^3.0.3 - picomatch: ^4.0.2 - checksum: cd44a850c638d82232608e2a03677c5828b9faf35bacfd4817ae232208e2a56bac97bceb67da6a5d4d5a603c1cc88f65ecae3af6be11b5a8c10c995515231e78 - languageName: node - linkType: hard - "micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -10025,6 +10015,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:~4.0.7": + version: 4.0.7 + resolution: "micromatch@npm:4.0.7" + dependencies: + braces: ^3.0.3 + picomatch: ^2.3.1 + checksum: 3cde047d70ad80cf60c787b77198d680db3b8c25b23feb01de5e2652205d9c19f43bd81882f69a0fd1f0cde6a7a122d774998aad3271ddb1b8accf8a0f480cf7 + languageName: node + linkType: hard + "mime-db@npm:1.52.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -11069,14 +11069,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^4.0.2": - version: 4.0.2 - resolution: "picomatch@npm:4.0.2" - checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 - languageName: node - linkType: hard - -"pidtree@npm:0.6.0": +"pidtree@npm:~0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" bin: @@ -12498,7 +12491,7 @@ __metadata: languageName: node linkType: hard -"string-argv@npm:0.3.2": +"string-argv@npm:~0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f @@ -13920,7 +13913,14 @@ __metadata: languageName: node linkType: hard -"yaml@npm:2.4.2": +"yaml@npm:^1.10.0": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + languageName: node + linkType: hard + +"yaml@npm:~2.4.2": version: 2.4.2 resolution: "yaml@npm:2.4.2" bin: @@ -13929,13 +13929,6 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^1.10.0": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f - languageName: node - linkType: hard - "yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" From a2f182b8b879c5eafe528080c56346a57f1aba5b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 00:47:30 +0000 Subject: [PATCH 194/471] fix(deps): update dependency use-debounce to v10.0.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 10c5dca1e..3107a998c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13438,11 +13438,11 @@ __metadata: linkType: hard "use-debounce@npm:^10.0.0": - version: 10.0.0 - resolution: "use-debounce@npm:10.0.0" + version: 10.0.1 + resolution: "use-debounce@npm:10.0.1" peerDependencies: react: ">=16.8.0" - checksum: b296fedba916ca721eeb7117f29a13c252966d03411abccc5e5894ed4de0f32b9cb6f6b150555b8b4cb9b0acf53b84022ad4cd43b89253389e9cd13779eebca7 + checksum: 6b53d2b9b1856bacfa4dffd78234bba744792e1d75c194af0642faf1ac2914ebdcc770ac23b7e59ca999f997d969edf3c75d22362879818927d20d3408dd59db languageName: node linkType: hard From 7f04168623cb8ae5248ef1a0e99ad35302874698 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 00:47:51 +0000 Subject: [PATCH 195/471] chore(deps): update dependency @storybook/addon-knobs to v7.1.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3107a998c..9bc66cc88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3680,8 +3680,8 @@ __metadata: linkType: hard "@storybook/addon-knobs@npm:^7.0.2": - version: 7.0.2 - resolution: "@storybook/addon-knobs@npm:7.0.2" + version: 7.1.1 + resolution: "@storybook/addon-knobs@npm:7.1.1" dependencies: copy-to-clipboard: ^3.3.3 core-js: ^3.29.0 @@ -3707,7 +3707,7 @@ __metadata: optional: true react-dom: optional: true - checksum: a28a61bb18d4c07edd3b031abbc9c81b48cf1c2b7d0707177f383c70f01b1e91d6f364969e42cdb34a7b761bc68e7603b53136c01887e56e24b408eb843d36fe + checksum: 8dc51ecdd9bbeedfb4857a546c483956b81b6531e2aae5b9ffeb3eeb955940e870ec93293188cad3a1ad42bd5452e110687127407b68c4a98f815fbf2f8876de languageName: node linkType: hard From d0bd6d5218c97d340a9df614b587c40c79ec77b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 06:10:11 +0000 Subject: [PATCH 196/471] chore(deps): update dependency @storybook/addon-actions to v8.1.5 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9bc66cc88..d86371e1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3666,16 +3666,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.1.3 - resolution: "@storybook/addon-actions@npm:8.1.3" + version: 8.1.5 + resolution: "@storybook/addon-actions@npm:8.1.5" dependencies: - "@storybook/core-events": 8.1.3 + "@storybook/core-events": 8.1.5 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: a2b29321da92dcbe4c40ed55626acb31de20ab94c792ac64e8fa02711047542ea9ac580a0512faec5fda806cabba61ef90d1c12914d272e317a47f691271c603 + checksum: bbb38b2695909993ebbc4103a5b15bcba20d6824a10696f60ff8fb0fa3b1d7a0191b6b7fa3af3b1d6d35090c166a8bb8fe9c309b168ec2e02e30b1758b86b9a1 languageName: node linkType: hard @@ -3711,13 +3711,13 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/core-events@npm:8.1.3" +"@storybook/core-events@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/core-events@npm:8.1.5" dependencies: "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: eb33961dab9b214eecfe3da131bea20dd75ca5ac614e5fee45ccf936d37a1713e04e672d18f6d5538369675ea07a0c39bab3435c30a5688a0a5388b6238f1a15 + checksum: 27007b6b8c6816378a815e74211d17eb686bd1c34701a78f0a024218924de08774d07b47304e222577c557e4bf6c335a6aa4086cd1500f4e297c0e206fef947f languageName: node linkType: hard From b0fcded2b0b67c996bdc7c388bcc667fe70e23ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 May 2024 00:07:19 +0000 Subject: [PATCH 197/471] chore(deps): update dependency stylelint to v16.6.1 --- yarn.lock | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/yarn.lock b/yarn.lock index d86371e1b..a6c4d40f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7461,12 +7461,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^8.0.0": - version: 8.0.0 - resolution: "file-entry-cache@npm:8.0.0" +"file-entry-cache@npm:^9.0.0": + version: 9.0.0 + resolution: "file-entry-cache@npm:9.0.0" dependencies: - flat-cache: ^4.0.0 - checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f + flat-cache: ^5.0.0 + checksum: 850ab258497cfad2aff166319068101202d6969415227a425b9de9acdb152dc33506c7208906289a6dcb2a7f9390601f4b80ccf6353510c58710b75d5a02df6e languageName: node linkType: hard @@ -7574,14 +7574,13 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^4.0.0": - version: 4.0.0 - resolution: "flat-cache@npm:4.0.0" +"flat-cache@npm:^5.0.0": + version: 5.0.0 + resolution: "flat-cache@npm:5.0.0" dependencies: - flatted: ^3.2.9 + flatted: ^3.3.1 keyv: ^4.5.4 - rimraf: ^5.0.5 - checksum: 744d5f111aeecdfb963faab7089230c737a90c325137251b4fe144fd76932e19738a861e356c5ee828bb310592b42a1da667912d74d0403f1f4ef75be8bfdbac + checksum: a7d03de79b603f5621009f75d84d2c5cd8fb762911df93c0ed16cd1cd4f7b8d2357d4aaed8806b5943ce71ebcd4fc4998faf061f33879c56c5294b3f5c3698ef languageName: node linkType: hard @@ -7592,6 +7591,13 @@ __metadata: languageName: node linkType: hard +"flatted@npm:^3.3.1": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 + languageName: node + linkType: hard + "focus-trap@npm:7.5.2": version: 7.5.2 resolution: "focus-trap@npm:7.5.2" @@ -10005,7 +10011,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": +"micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -10015,7 +10021,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:~4.0.7": +"micromatch@npm:^4.0.7, micromatch@npm:~4.0.7": version: 4.0.7 resolution: "micromatch@npm:4.0.7" dependencies: @@ -12757,8 +12763,8 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.6.0 - resolution: "stylelint@npm:16.6.0" + version: 16.6.1 + resolution: "stylelint@npm:16.6.1" dependencies: "@csstools/css-parser-algorithms": ^2.6.3 "@csstools/css-tokenizer": ^2.3.1 @@ -12773,7 +12779,7 @@ __metadata: debug: ^4.3.4 fast-glob: ^3.3.2 fastest-levenshtein: ^1.0.16 - file-entry-cache: ^8.0.0 + file-entry-cache: ^9.0.0 global-modules: ^2.0.0 globby: ^11.1.0 globjoin: ^0.1.4 @@ -12784,7 +12790,7 @@ __metadata: known-css-properties: ^0.31.0 mathml-tag-names: ^2.1.3 meow: ^13.2.0 - micromatch: ^4.0.5 + micromatch: ^4.0.7 normalize-path: ^3.0.0 picocolors: ^1.0.1 postcss: ^8.4.38 @@ -12801,7 +12807,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: 3a99a3e7497951f9f6c10d2dc39937c55ed2a54a95a4acece4d1274af49ac8ab5b4cf4f5dcdca02717b578b96f21b5d5a74e0f806ee22de2823535396501c41a + checksum: eae2d11e1b7c1d0b8e242e2ce5f6098cdc303b0210b676dd2692c68c9c9458938e8a7e29af22f8f3f0907874456191c293e6677b55bdeb8eb8c6e5a9e6e34491 languageName: node linkType: hard From 1d92b3a257dde4bd4b283ea5b2f35d4a7bc3bb7e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 May 2024 04:30:23 +0000 Subject: [PATCH 198/471] chore(deps): update dependency vite to v5.2.12 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a6c4d40f7..732eed5ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13528,8 +13528,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.11 - resolution: "vite@npm:5.2.11" + version: 5.2.12 + resolution: "vite@npm:5.2.12" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 @@ -13563,7 +13563,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 3f9f976cc6ada93aca56abcc683a140e807725b351abc241a1ec0763ec561a4bf5760e1ad94de4e59505904ddaa88727de66af02f61ecf540c7720045de55d0a + checksum: 908b8a09460c031fe94c2038a46743a73a70fe76fd1991ae8b51a56eb88dec75128bc7da7ab37d8f84c0e1e3063ce268bdd81cc27d79229f8ea756e752bc83d9 languageName: node linkType: hard From 8dcd9080203657ec8e994f4b40949f75277639d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 21:51:19 +0000 Subject: [PATCH 199/471] chore(deps): update dependency @types/node to v20.14.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 732eed5ed..30ec35934 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4274,11 +4274,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.12.12 - resolution: "@types/node@npm:20.12.12" + version: 20.14.0 + resolution: "@types/node@npm:20.14.0" dependencies: undici-types: ~5.26.4 - checksum: 5373983874b9af7c216e7ca5d26b32a8d9829c703a69f1e66f2113598b5be8582c0e009ca97369f1ec9a6282b3f92812208d06eb1e9fc3bd9b939b022303d042 + checksum: b62383ea004deb1b40c0612f373eaf02247381b65a90f7957dc3034dda9b5622ab61b7afafa82f67909667a5cf9ea43a0643b2a78ea295dac8b77e75e11470d7 languageName: node linkType: hard From 0b9e0f63cc174e9b0310d92d520e4bb581996fe6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 31 May 2024 00:08:18 +0000 Subject: [PATCH 200/471] chore(deps): update dependency sass to v1.77.4 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 30ec35934..bece8b799 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12125,15 +12125,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.77.2 - resolution: "sass@npm:1.77.2" + version: 1.77.4 + resolution: "sass@npm:1.77.4" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: fd75b1f255a30ecd4ee79fa020830d7bf426dd15de2f47cf9610130707dc2a029da3677ca0a6c89e8d4626b0a2816456bb7fb706cb518cfbf2e7c0038ef7a4b8 + checksum: 415d76960e35d78310ffc33bc61fdb2b35a54bb2823dfc4eff50eee960096dacc210d7ef7ae6695120e1a4f005f269719c34d58c77c54ff7787516bda6a89e55 languageName: node linkType: hard From 864a9efb4e81d8430a8cc56747324f0211e378d6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 May 2024 04:30:36 +0000 Subject: [PATCH 201/471] chore(deps): update dependency @storybook/addon-knobs to v8 --- packages/ui/package.json | 2 +- yarn.lock | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index dbded66fd..e0a9c4914 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -71,7 +71,7 @@ "@babel/preset-react": "^7.23.3", "@babel/preset-typescript": "^7.23.3", "@storybook/addon-actions": "^8.0.0", - "@storybook/addon-knobs": "^7.0.2", + "@storybook/addon-knobs": "^8.0.0", "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^15.0.0", "@types/jest": "^29.5.12", diff --git a/yarn.lock b/yarn.lock index bece8b799..93bc11c40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1805,7 +1805,7 @@ __metadata: "@patternfly/react-table": ^5.1.2 "@patternfly/react-topology": ^5.1.0 "@storybook/addon-actions": ^8.0.0 - "@storybook/addon-knobs": ^7.0.2 + "@storybook/addon-knobs": ^8.0.0 "@testing-library/jest-dom": ^6.4.2 "@testing-library/react": ^15.0.0 "@types/jest": ^29.5.12 @@ -3679,9 +3679,9 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-knobs@npm:^7.0.2": - version: 7.1.1 - resolution: "@storybook/addon-knobs@npm:7.1.1" +"@storybook/addon-knobs@npm:^8.0.0": + version: 8.0.0 + resolution: "@storybook/addon-knobs@npm:8.0.0" dependencies: copy-to-clipboard: ^3.3.3 core-js: ^3.29.0 @@ -3695,11 +3695,10 @@ __metadata: react-lifecycles-compat: ^3.0.4 react-select: ^5.7.0 peerDependencies: - "@storybook/addons": ^7.0.0 - "@storybook/api": ^7.0.0 - "@storybook/components": ^7.0.0 - "@storybook/core-events": ^7.0.0 - "@storybook/theming": ^7.0.0 + "@storybook/api": ^8.0.0 + "@storybook/components": ^8.0.0 + "@storybook/core-events": ^8.0.0 + "@storybook/theming": ^8.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -3707,7 +3706,7 @@ __metadata: optional: true react-dom: optional: true - checksum: 8dc51ecdd9bbeedfb4857a546c483956b81b6531e2aae5b9ffeb3eeb955940e870ec93293188cad3a1ad42bd5452e110687127407b68c4a98f815fbf2f8876de + checksum: fdebdec1583a7c108030936ef8019a5c9390160d1f6451e9c78d9abdbc30d6f4ffdbfc45f5020229e648bf2bacc8fd9986d16c86433e665122970ddf74c97259 languageName: node linkType: hard From 37fc08cb10929579cd1b9f85a6927ab578de394a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 00:13:55 +0000 Subject: [PATCH 202/471] chore(deps): update dependency prettier to v3.3.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 93bc11c40..65e83d155 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11269,11 +11269,11 @@ __metadata: linkType: hard "prettier@npm:^3.2.5": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" + version: 3.3.0 + resolution: "prettier@npm:3.3.0" bin: prettier: bin/prettier.cjs - checksum: 2ee4e1417572372afb7a13bb446b34f20f1bf1747db77cf6ccaf57a9be005f2f15c40f903d41a6b79eec3f57fff14d32a20fb6dee1f126da48908926fe43c311 + checksum: 0d3a7fca9cab29828e189fefc10e8f6025d1208c84cd1e94def8a8f8a04eea341aa21d0af8c01253527632f8225b0b8482a62b64cafa26e9988cd6f9ff16a38b languageName: node linkType: hard From 731c891e892493d2459f36d90b0457074be93e88 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 12:28:46 +0000 Subject: [PATCH 203/471] chore(deps): update @lerna-lite to v3.4.0 --- yarn.lock | 437 +++++++++++++++++------------------------------------- 1 file changed, 132 insertions(+), 305 deletions(-) diff --git a/yarn.lock b/yarn.lock index 65e83d155..3ce74eea2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2310,13 +2310,6 @@ __metadata: languageName: node linkType: hard -"@inquirer/figures@npm:^1.0.0": - version: 1.0.0 - resolution: "@inquirer/figures@npm:1.0.0" - checksum: 91e3a5298d71c71eebdc7870e263bd5f1699de7e105b70db4d75984fe9670740fe933fff377cf6d4b432e3a0975368d540c2697f4d303007a5afbf0ef4d91ecc - languageName: node - linkType: hard - "@inquirer/figures@npm:^1.0.1": version: 1.0.1 resolution: "@inquirer/figures@npm:1.0.1" @@ -2668,38 +2661,7 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.3.3, @lerna-lite/cli@npm:^3.0.0": - version: 3.3.3 - resolution: "@lerna-lite/cli@npm:3.3.3" - dependencies: - "@lerna-lite/core": 3.3.3 - "@lerna-lite/init": 3.3.3 - dedent: ^1.5.3 - dotenv: ^16.4.5 - import-local: ^3.1.0 - load-json-file: ^7.0.1 - npmlog: ^7.0.1 - yargs: ^17.7.2 - peerDependenciesMeta: - "@lerna-lite/exec": - optional: true - "@lerna-lite/list": - optional: true - "@lerna-lite/publish": - optional: true - "@lerna-lite/run": - optional: true - "@lerna-lite/version": - optional: true - "@lerna-lite/watch": - optional: true - bin: - lerna: dist/cli.js - checksum: 135f96d87769cb3ebad5d2636eed027c28ea3d7855aadcdc494c4ef143a5f9a1d2bca7c59105ef3fef013162b2e3c8f3749ff723c491cb2ac4c7e4fa50c53b69 - languageName: node - linkType: hard - -"@lerna-lite/cli@npm:3.4.0": +"@lerna-lite/cli@npm:3.4.0, @lerna-lite/cli@npm:^3.0.0": version: 3.4.0 resolution: "@lerna-lite/cli@npm:3.4.0" dependencies: @@ -2730,40 +2692,6 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/core@npm:3.3.3": - version: 3.3.3 - resolution: "@lerna-lite/core@npm:3.3.3" - dependencies: - "@npmcli/run-script": ^7.0.4 - chalk: ^5.3.0 - clone-deep: ^4.0.1 - config-chain: ^1.1.13 - cosmiconfig: ^9.0.0 - dedent: ^1.5.3 - execa: ^8.0.1 - fs-extra: ^11.2.0 - glob-parent: ^6.0.2 - globby: ^14.0.1 - inquirer: ^9.2.18 - is-ci: ^3.0.1 - json5: ^2.2.3 - load-json-file: ^7.0.1 - minimatch: ^9.0.4 - npm-package-arg: ^11.0.2 - npmlog: ^7.0.1 - p-map: ^7.0.2 - p-queue: ^8.0.1 - resolve-from: ^5.0.0 - semver: ^7.6.0 - slash: ^5.1.0 - strong-log-transformer: ^2.1.0 - write-file-atomic: ^5.0.1 - write-json-file: ^5.0.0 - write-package: ^7.0.1 - checksum: bfb4b8bcadb7ede2ff01dffa5d885e33f68ae49154658f45e65f2038b9f195e3375481e16f1d0c6ae22e3d135ac017191ebbd7f85e97d59aa26397de26e6bd5f - languageName: node - linkType: hard - "@lerna-lite/core@npm:3.4.0": version: 3.4.0 resolution: "@lerna-lite/core@npm:3.4.0" @@ -2798,18 +2726,6 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/init@npm:3.3.3": - version: 3.3.3 - resolution: "@lerna-lite/init@npm:3.3.3" - dependencies: - "@lerna-lite/core": 3.3.3 - fs-extra: ^11.2.0 - p-map: ^7.0.2 - write-json-file: ^5.0.0 - checksum: 0ac9b60177745126a3df44fb016d994012971f95bd1a9680bf493488060ae450a905ad17e39817235836d209f8733cf7b54f6a18da4f68e0bd837d004e6651e9 - languageName: node - linkType: hard - "@lerna-lite/init@npm:3.4.0": version: 3.4.0 resolution: "@lerna-lite/init@npm:3.4.0" @@ -2823,79 +2739,39 @@ __metadata: linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.3.3 - resolution: "@lerna-lite/publish@npm:3.3.3" + version: 3.4.0 + resolution: "@lerna-lite/publish@npm:3.4.0" dependencies: - "@lerna-lite/cli": 3.3.3 - "@lerna-lite/core": 3.3.3 - "@lerna-lite/version": 3.3.3 + "@lerna-lite/cli": 3.4.0 + "@lerna-lite/core": 3.4.0 + "@lerna-lite/version": 3.4.0 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 fs-extra: ^11.2.0 - glob: ^10.3.12 + glob: ^10.3.15 has-unicode: ^2.0.1 - libnpmaccess: ^8.0.3 - libnpmpublish: ^9.0.5 + libnpmaccess: ^8.0.5 + libnpmpublish: ^9.0.7 normalize-path: ^3.0.0 npm-package-arg: ^11.0.2 npm-packlist: ^5.1.3 - npm-registry-fetch: ^16.2.1 + npm-registry-fetch: ^17.0.1 npmlog: ^7.0.1 p-map: ^7.0.2 p-pipe: ^4.0.0 - pacote: ^17.0.7 + pacote: ^18.0.6 pify: ^6.1.0 - read-package-json: ^7.0.0 - semver: ^7.6.0 - ssri: ^10.0.5 + read-package-json: ^7.0.1 + semver: ^7.6.2 + ssri: ^10.0.6 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: 0e387020ca488042bc620c1e860351675c34fe0616775ee54f70fbe1410b240af1059688c6d54d4a13d736eddc8f72654358c66662e4392aac1f41b0becea988 + checksum: 350f7d9aae3c7575d1794532d81b9c6abec1cc22780ccd4c6d043cfafc6dda3aeabdb450d848df3ffedc0b81cd7e3843ebc84e4a9f8207e617988cfb50e1475d languageName: node linkType: hard -"@lerna-lite/version@npm:3.3.3": - version: 3.3.3 - resolution: "@lerna-lite/version@npm:3.3.3" - dependencies: - "@lerna-lite/cli": 3.3.3 - "@lerna-lite/core": 3.3.3 - "@octokit/plugin-enterprise-rest": ^6.0.1 - "@octokit/rest": ^20.1.0 - chalk: ^5.3.0 - conventional-changelog-angular: ^7.0.0 - conventional-changelog-core: ^7.0.0 - conventional-changelog-writer: ^7.0.1 - conventional-commits-parser: ^5.0.0 - conventional-recommended-bump: ^9.0.0 - dedent: ^1.5.3 - fs-extra: ^11.2.0 - get-stream: ^9.0.1 - git-url-parse: ^14.0.0 - graceful-fs: ^4.2.11 - is-stream: ^4.0.1 - load-json-file: ^7.0.1 - make-dir: ^4.0.0 - minimatch: ^9.0.4 - new-github-release-url: ^2.0.0 - node-fetch: ^3.3.2 - npm-package-arg: ^11.0.2 - npmlog: ^7.0.1 - p-map: ^7.0.2 - p-pipe: ^4.0.0 - p-reduce: ^3.0.0 - pify: ^6.1.0 - semver: ^7.6.0 - slash: ^5.1.0 - temp-dir: ^3.0.0 - uuid: ^9.0.1 - write-json-file: ^5.0.0 - checksum: f2dae11d56d90e6a36fda900afc30b86a16c3226c235d8e8b5208dd9aa78eb971d2955320aea90bfda0173ed682aad1d1bc375514060f25d5f93bc4b52413304 - languageName: node - linkType: hard - -"@lerna-lite/version@npm:^3.0.0": +"@lerna-lite/version@npm:3.4.0, @lerna-lite/version@npm:^3.0.0": version: 3.4.0 resolution: "@lerna-lite/version@npm:3.4.0" dependencies: @@ -3067,6 +2943,21 @@ __metadata: languageName: node linkType: hard +"@npmcli/package-json@npm:^5.1.0": + version: 5.1.1 + resolution: "@npmcli/package-json@npm:5.1.1" + dependencies: + "@npmcli/git": ^5.0.0 + glob: ^10.2.2 + hosted-git-info: ^7.0.0 + json-parse-even-better-errors: ^3.0.0 + normalize-package-data: ^6.0.0 + proc-log: ^4.0.0 + semver: ^7.5.3 + checksum: 073e7344ae96e8c187fe605db4cc41827916648ec1225f9ac640eae8841d3bfd7e92d56c5863591fc6ebba46f9554cb9b113b93d5ebe6e7d900ae43907fd4492 + languageName: node + linkType: hard + "@npmcli/promise-spawn@npm:^7.0.0": version: 7.0.1 resolution: "@npmcli/promise-spawn@npm:7.0.1" @@ -3076,27 +2967,14 @@ __metadata: languageName: node linkType: hard -"@npmcli/redact@npm:^1.1.0": - version: 1.1.0 - resolution: "@npmcli/redact@npm:1.1.0" - checksum: f200d40c485aea6fdf0487ddfed258ec13a217701261d9115f9c82b65f341403b3dfc7aaa1f5bd0b51b09f7dee03d89b86d99314356faed370bada8d0f000836 - languageName: node - linkType: hard - -"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.4": - version: 7.0.4 - resolution: "@npmcli/run-script@npm:7.0.4" - dependencies: - "@npmcli/node-gyp": ^3.0.0 - "@npmcli/package-json": ^5.0.0 - "@npmcli/promise-spawn": ^7.0.0 - node-gyp: ^10.0.0 - which: ^4.0.0 - checksum: c44d6874cffb0a2f6d947e230083b605b6f253450e24aa185ef28391dc366b10807cd4ca113fe367057b8b5310add36391894f9d782af15424830658ee386dfb +"@npmcli/redact@npm:^2.0.0": + version: 2.0.0 + resolution: "@npmcli/redact@npm:2.0.0" + checksum: 7ed760ab0f30c7199d1176b35619e226f6810d3606f75870551486493f4ba388f64dcf2fbcfb0ab2059ea8ed36e6733ebb9c92f883116c45b2e3fd80da7d7106 languageName: node linkType: hard -"@npmcli/run-script@npm:^8.1.0": +"@npmcli/run-script@npm:^8.0.0, @npmcli/run-script@npm:^8.1.0": version: 8.1.0 resolution: "@npmcli/run-script@npm:8.1.0" dependencies: @@ -3153,13 +3031,6 @@ __metadata: languageName: node linkType: hard -"@octokit/openapi-types@npm:^20.0.0": - version: 20.0.0 - resolution: "@octokit/openapi-types@npm:20.0.0" - checksum: 23ff7613750f8b5790a0cbed5a2048728a7909e50d726932831044908357a932c7fc0613fb7b86430a49d31b3d03a180632ea5dd936535bfbc1176391a199e96 - languageName: node - linkType: hard - "@octokit/openapi-types@npm:^22.1.0": version: 22.1.0 resolution: "@octokit/openapi-types@npm:22.1.0" @@ -3192,17 +3063,6 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:^9.1.5": - version: 9.2.1 - resolution: "@octokit/plugin-paginate-rest@npm:9.2.1" - dependencies: - "@octokit/types": ^12.6.0 - peerDependencies: - "@octokit/core": 5 - checksum: 554ad17a7dcfd7028e321ffcae233f8ae7975569084f19d9b6217b47fb182e2604145108de7a9029777e6dc976b27b2dd7387e2e47a77532a72e6c195880576d - languageName: node - linkType: hard - "@octokit/plugin-request-log@npm:^4.0.0": version: 4.0.0 resolution: "@octokit/plugin-request-log@npm:4.0.0" @@ -3223,17 +3083,6 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:^10.2.0": - version: 10.4.1 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.4.1" - dependencies: - "@octokit/types": ^12.6.0 - peerDependencies: - "@octokit/core": 5 - checksum: 3e0e95515ccb7fdd5e5cff32a5e34a688fd275c6703caf786f7c49820e2bf2a66e7d845ba4eae4d03c307c1950ea417e34a17055b25b46e2019123b75b394c56 - languageName: node - linkType: hard - "@octokit/request-error@npm:^5.1.0": version: 5.1.0 resolution: "@octokit/request-error@npm:5.1.0" @@ -3257,18 +3106,6 @@ __metadata: languageName: node linkType: hard -"@octokit/rest@npm:^20.1.0": - version: 20.1.0 - resolution: "@octokit/rest@npm:20.1.0" - dependencies: - "@octokit/core": ^5.0.2 - "@octokit/plugin-paginate-rest": ^9.1.5 - "@octokit/plugin-request-log": ^4.0.0 - "@octokit/plugin-rest-endpoint-methods": ^10.2.0 - checksum: 2d705cbc30eb12a0b6d75e7c8feed8c10e85fea98b1a6199a347fe751176bc7b5ca346fe874110fe4f350cec9a140a43a01b03d65c79b1adf2c5528ce1524c94 - languageName: node - linkType: hard - "@octokit/rest@npm:^20.1.1": version: 20.1.1 resolution: "@octokit/rest@npm:20.1.1" @@ -3281,15 +3118,6 @@ __metadata: languageName: node linkType: hard -"@octokit/types@npm:^12.6.0": - version: 12.6.0 - resolution: "@octokit/types@npm:12.6.0" - dependencies: - "@octokit/openapi-types": ^20.0.0 - checksum: 850235f425584499a2266d5c585c1c2462ae11e25c650567142f3342cb9ce589c8c8fed87705811ca93271fd28c68e1fa77b88b67b97015d7b63d269fa46ed05 - languageName: node - linkType: hard - "@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0": version: 13.4.1 resolution: "@octokit/types@npm:13.4.1" @@ -7919,18 +7747,18 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.12": - version: 10.3.12 - resolution: "glob@npm:10.3.12" +"glob@npm:^10.3.15": + version: 10.4.1 + resolution: "glob@npm:10.4.1" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.3.6 - minimatch: ^9.0.1 - minipass: ^7.0.4 - path-scurry: ^1.10.2 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + path-scurry: ^1.11.1 bin: glob: dist/esm/bin.mjs - checksum: 2b0949d6363021aaa561b108ac317bf5a97271b8a5d7a5fac1a176e40e8068ecdcccc992f8a7e958593d501103ac06d673de92adc1efcbdab45edefe35f8d7c6 + checksum: 5d33c686c80bf6877f4284adf99a8c3cbb2a6eccbc92342943fe5d4b42c01d78c1881f2223d950c92a938d0f857e12e37b86a8e5483ab2141822e053b67d0dde languageName: node linkType: hard @@ -8426,29 +8254,6 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.2.18": - version: 9.2.18 - resolution: "inquirer@npm:9.2.18" - dependencies: - "@inquirer/figures": ^1.0.0 - "@ljharb/through": ^2.3.13 - ansi-escapes: ^4.3.2 - chalk: ^5.3.0 - cli-cursor: ^3.1.0 - cli-width: ^4.1.0 - external-editor: ^3.1.0 - lodash: ^4.17.21 - mute-stream: 1.0.0 - ora: ^5.4.1 - run-async: ^3.0.0 - rxjs: ^7.8.1 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wrap-ansi: ^6.2.0 - checksum: c9e33f5bb67d4281a76afa3d793a4eea84ce6cedbd3ea6b20eb7a393504e456dace31d59fec4b940a5390ad8a74048bbf056f88cf3c43fddd7945233a31cf5f4 - languageName: node - linkType: hard - "inquirer@npm:^9.2.21": version: 9.2.21 resolution: "inquirer@npm:9.2.21" @@ -8944,7 +8749,7 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.3.5, jackspeak@npm:^2.3.6": +"jackspeak@npm:^2.3.5": version: 2.3.6 resolution: "jackspeak@npm:2.3.6" dependencies: @@ -8957,6 +8762,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^3.1.2": + version: 3.1.2 + resolution: "jackspeak@npm:3.1.2" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 134276d5f785c518930701a0dcba1f3b0e9ce3e5b1c3e300898e2ae0bbd9b5195088b77252bf2110768de072c426e9e39f47e13912b0b002da4a3f4ff6e16eac + languageName: node + linkType: hard + "jest-canvas-mock@npm:^2.5.2": version: 2.5.2 resolution: "jest-canvas-mock@npm:2.5.2" @@ -9664,29 +9482,29 @@ __metadata: languageName: node linkType: hard -"libnpmaccess@npm:^8.0.3": - version: 8.0.3 - resolution: "libnpmaccess@npm:8.0.3" +"libnpmaccess@npm:^8.0.5": + version: 8.0.6 + resolution: "libnpmaccess@npm:8.0.6" dependencies: - npm-package-arg: ^11.0.1 - npm-registry-fetch: ^16.2.0 - checksum: 119afc9d7a7bafc971e9fdf4ef078c21ba2ea8de5b8ffb87298182e4f2c7915a06199f3f316abecb7c41ac97216dbf72e87e28fb5a4708af109a16ea5dedcdb0 + npm-package-arg: ^11.0.2 + npm-registry-fetch: ^17.0.1 + checksum: 62fa6a476321268ebd379f35782d9ead8993964bd9dfc8afbd201921d9037b7bc9d956f8b2717f1247e44ab33cb7de45b556ded66144f4b3038a828299cb260d languageName: node linkType: hard -"libnpmpublish@npm:^9.0.5": - version: 9.0.5 - resolution: "libnpmpublish@npm:9.0.5" +"libnpmpublish@npm:^9.0.7": + version: 9.0.9 + resolution: "libnpmpublish@npm:9.0.9" dependencies: ci-info: ^4.0.0 - normalize-package-data: ^6.0.0 - npm-package-arg: ^11.0.1 - npm-registry-fetch: ^16.2.0 - proc-log: ^3.0.0 + normalize-package-data: ^6.0.1 + npm-package-arg: ^11.0.2 + npm-registry-fetch: ^17.0.1 + proc-log: ^4.2.0 semver: ^7.3.7 sigstore: ^2.2.0 - ssri: ^10.0.5 - checksum: d004cae73ffc302469a72346989b3707b9f9825813192e735ef168a04767ad72c452830beee921e99a3f1f7f4321379281013bb07f046f7b2c97df3fe58cb448 + ssri: ^10.0.6 + checksum: bce18edcc02df5e08981f64093ed1772953b8efb27ed98018522f8c11cb91c882d420d790d3e3091dccd4f83a229f87b98562cbbed7ac4dc28af7eec9e5da9c1 languageName: node linkType: hard @@ -10196,13 +10014,20 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4": +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": version: 7.0.4 resolution: "minipass@npm:7.0.4" checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 languageName: node linkType: hard +"minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 + languageName: node + linkType: hard + "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -10447,6 +10272,18 @@ __metadata: languageName: node linkType: hard +"normalize-package-data@npm:^6.0.1": + version: 6.0.1 + resolution: "normalize-package-data@npm:6.0.1" + dependencies: + hosted-git-info: ^7.0.0 + is-core-module: ^2.8.1 + semver: ^7.3.5 + validate-npm-package-license: ^3.0.4 + checksum: 4f6bca00b5092b824e1d4a28fb47052b41afaaebabfd0700e47f130cac619d60668aa6ff34dfa9bccc1b06c7adcef44c34a565576b63b578e1e35b3fc67c22ca + languageName: node + linkType: hard + "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" @@ -10495,7 +10332,7 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:^11.0.0, npm-package-arg@npm:^11.0.1": +"npm-package-arg@npm:^11.0.0": version: 11.0.1 resolution: "npm-package-arg@npm:11.0.1" dependencies: @@ -10554,26 +10391,11 @@ __metadata: languageName: node linkType: hard -"npm-registry-fetch@npm:^16.0.0": - version: 16.1.0 - resolution: "npm-registry-fetch@npm:16.1.0" +"npm-registry-fetch@npm:^17.0.0, npm-registry-fetch@npm:^17.0.1": + version: 17.0.1 + resolution: "npm-registry-fetch@npm:17.0.1" dependencies: - make-fetch-happen: ^13.0.0 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-json-stream: ^1.0.1 - minizlib: ^2.1.2 - npm-package-arg: ^11.0.0 - proc-log: ^3.0.0 - checksum: 6aa8483973aaf8c8543753d415983eb6722ecba0703030f3b152074eaa1106df75ffd084e483f30a33c81203c7ec07555bcc9e45fc07f7c0904501506c0929a2 - languageName: node - linkType: hard - -"npm-registry-fetch@npm:^16.2.0, npm-registry-fetch@npm:^16.2.1": - version: 16.2.1 - resolution: "npm-registry-fetch@npm:16.2.1" - dependencies: - "@npmcli/redact": ^1.1.0 + "@npmcli/redact": ^2.0.0 make-fetch-happen: ^13.0.0 minipass: ^7.0.2 minipass-fetch: ^3.0.0 @@ -10581,7 +10403,7 @@ __metadata: minizlib: ^2.1.2 npm-package-arg: ^11.0.0 proc-log: ^4.0.0 - checksum: 0c606dffcddecbccdc9539571ffbacd35b2d70c265841c9a4094042010c68de72c44915154d0a01038ce469ead2fec2ffb5c5225c8bb419a4824b050844d2fdb + checksum: 4a53e96969991f62fa6b5b0a47a6a0288282003ab41e6e752bc0c8ba34a284f216ae290952a032bf143fd6827faef0f204cec32f33e2d0cb348db850dd95d09d languageName: node linkType: hard @@ -10863,31 +10685,30 @@ __metadata: languageName: node linkType: hard -"pacote@npm:^17.0.7": - version: 17.0.7 - resolution: "pacote@npm:17.0.7" +"pacote@npm:^18.0.6": + version: 18.0.6 + resolution: "pacote@npm:18.0.6" dependencies: "@npmcli/git": ^5.0.0 "@npmcli/installed-package-contents": ^2.0.1 + "@npmcli/package-json": ^5.1.0 "@npmcli/promise-spawn": ^7.0.0 - "@npmcli/run-script": ^7.0.0 + "@npmcli/run-script": ^8.0.0 cacache: ^18.0.0 fs-minipass: ^3.0.0 minipass: ^7.0.2 npm-package-arg: ^11.0.0 npm-packlist: ^8.0.0 npm-pick-manifest: ^9.0.0 - npm-registry-fetch: ^16.0.0 + npm-registry-fetch: ^17.0.0 proc-log: ^4.0.0 promise-retry: ^2.0.1 - read-package-json: ^7.0.0 - read-package-json-fast: ^3.0.0 sigstore: ^2.2.0 ssri: ^10.0.0 tar: ^6.1.11 bin: - pacote: lib/bin.js - checksum: eadc2894f93b89b2965544a4da6c81490778f3ea915b1c21383a81bd9704b7f5704ec8bd2dd5a511b700f13cf0e7367dea62f6ffc7680227bac649fb2a10a2ff + pacote: bin/index.js + checksum: a28a7aa0f4e1375d3f11917e5982e576611aa9057999e7b3a7fd18706e43d6ae4ab34b1002dc0a9821df95c3136dec6d2b6b72cfc7b02afcc1273cec006dea39 languageName: node linkType: hard @@ -11029,13 +10850,13 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.2": - version: 1.10.2 - resolution: "path-scurry@npm:1.10.2" +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" dependencies: lru-cache: ^10.2.0 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: 6739b4290f7d1a949c61c758b481c07ac7d1a841964c68cf5e1fa153d7e18cbde4872b37aadf9c5173c800d627f219c47945859159de36c977dd82419997b9b8 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 languageName: node linkType: hard @@ -11322,6 +11143,13 @@ __metadata: languageName: node linkType: hard +"proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc + languageName: node + linkType: hard + "process@npm:^0.11.10": version: 0.11.10 resolution: "process@npm:0.11.10" @@ -11635,25 +11463,15 @@ __metadata: languageName: node linkType: hard -"read-package-json-fast@npm:^3.0.0": - version: 3.0.2 - resolution: "read-package-json-fast@npm:3.0.2" - dependencies: - json-parse-even-better-errors: ^3.0.0 - npm-normalize-package-bin: ^3.0.0 - checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 - languageName: node - linkType: hard - -"read-package-json@npm:^7.0.0": - version: 7.0.0 - resolution: "read-package-json@npm:7.0.0" +"read-package-json@npm:^7.0.1": + version: 7.0.1 + resolution: "read-package-json@npm:7.0.1" dependencies: glob: ^10.2.2 json-parse-even-better-errors: ^3.0.0 normalize-package-data: ^6.0.0 npm-normalize-package-bin: ^3.0.0 - checksum: 9b6e3ebba0b44bb72ab42031f02e0a46c95873cd302f151e35841e075464f0f4d1404da2333cb491c5c83599bb917c32b23b86d4df8337237d4d1a37c6db1517 + checksum: b0f469dcd0ff91ec14ac177aed1e9ebd5f1b9d3760c06e42b52cff51018b25768685490b5e33a2643e5f27854fc965890c2c33e041852f58dd93dcf1bcb4f080 languageName: node linkType: hard @@ -12462,7 +12280,7 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^10.0.0, ssri@npm:^10.0.5": +"ssri@npm:^10.0.0": version: 10.0.5 resolution: "ssri@npm:10.0.5" dependencies: @@ -12471,6 +12289,15 @@ __metadata: languageName: node linkType: hard +"ssri@npm:^10.0.6": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: ^7.0.3 + checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 + languageName: node + linkType: hard + "stack-utils@npm:^2.0.3": version: 2.0.6 resolution: "stack-utils@npm:2.0.6" From e513e0298580dc474eeeeac8ed88b6288d5c1055 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 11:12:16 +0000 Subject: [PATCH 204/471] chore(deps): update dependency @types/node to v20.14.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3ce74eea2..908b35998 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4101,11 +4101,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.14.0 - resolution: "@types/node@npm:20.14.0" + version: 20.14.2 + resolution: "@types/node@npm:20.14.2" dependencies: undici-types: ~5.26.4 - checksum: b62383ea004deb1b40c0612f373eaf02247381b65a90f7957dc3034dda9b5622ab61b7afafa82f67909667a5cf9ea43a0643b2a78ea295dac8b77e75e11470d7 + checksum: 265362479b8f3b50fcd1e3f9e9af6121feb01a478dff0335ae67cccc3babfe45d0f12209d3d350595eebd7e67471762697b877c380513f8e5d27a238fa50c805 languageName: node linkType: hard From 75fc9e26d902be0fa45eab155795f722a1b9ba4c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:23:43 +0000 Subject: [PATCH 205/471] chore(deps): update @lerna-lite to v3.5.1 --- yarn.lock | 96 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 43 deletions(-) diff --git a/yarn.lock b/yarn.lock index 908b35998..c9d9f929a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2310,10 +2310,10 @@ __metadata: languageName: node linkType: hard -"@inquirer/figures@npm:^1.0.1": - version: 1.0.1 - resolution: "@inquirer/figures@npm:1.0.1" - checksum: e428dac4921c12fa65f1e2f2846f3fdb2c8ea98ef250e8758bc117d67625496bf1f844b67364e69815b6a8d9b2b0857c9864aec5aebb8a92fc3408d16ccdcc39 +"@inquirer/figures@npm:^1.0.3": + version: 1.0.3 + resolution: "@inquirer/figures@npm:1.0.3" + checksum: ca83d9e2a02ed5309b3df5642d2194fde24e6f89779339c63304f2570f36f3bc431236a93db7fa412765a06f01c765974b06b1ed8b9aed881be46f2cbb67f9c7 languageName: node linkType: hard @@ -2661,12 +2661,12 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.4.0, @lerna-lite/cli@npm:^3.0.0": - version: 3.4.0 - resolution: "@lerna-lite/cli@npm:3.4.0" +"@lerna-lite/cli@npm:3.5.1, @lerna-lite/cli@npm:^3.0.0": + version: 3.5.1 + resolution: "@lerna-lite/cli@npm:3.5.1" dependencies: - "@lerna-lite/core": 3.4.0 - "@lerna-lite/init": 3.4.0 + "@lerna-lite/core": 3.5.1 + "@lerna-lite/init": 3.5.1 dedent: ^1.5.3 dotenv: ^16.4.5 import-local: ^3.1.0 @@ -2688,13 +2688,13 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 812fb8a0f0d70f48f3f893787e158df4aafa1af5ae8df926214b870f3bc42bb3830a624dabfae642eb6e67d2b58389919b581a29743b3f9522cd34fbb4fbe702 + checksum: 4cd0b082f15fe024d97da49e471f93fb84af404672432b0bcb7f43f93b48c30520a84fee52134012ab13350e37d24960794ccb9af9bbfd95a69f30617ad4a116 languageName: node linkType: hard -"@lerna-lite/core@npm:3.4.0": - version: 3.4.0 - resolution: "@lerna-lite/core@npm:3.4.0" +"@lerna-lite/core@npm:3.5.1": + version: 3.5.1 + resolution: "@lerna-lite/core@npm:3.5.1" dependencies: "@npmcli/run-script": ^8.1.0 chalk: ^5.3.0 @@ -2706,7 +2706,7 @@ __metadata: fs-extra: ^11.2.0 glob-parent: ^6.0.2 globby: ^14.0.1 - inquirer: ^9.2.21 + inquirer: ^9.2.23 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 @@ -2722,37 +2722,37 @@ __metadata: write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 write-package: ^7.0.1 - checksum: fdf664d687b721ce9e223c42f333c4415160781ce41104982bfcc4ab5219f5245676bb756932ff9f1efb59d00f235d3f3bd4a5cf429bfa778fcacbf8765ef2d5 + checksum: e8f2528daf909eef9e88c6a65501675d869a3e968078ad43e75e25fcfa48b24a7b428a7474250c4b003a4ae790959e284590cf31dca9ee6e4f4b6032fdaab1be languageName: node linkType: hard -"@lerna-lite/init@npm:3.4.0": - version: 3.4.0 - resolution: "@lerna-lite/init@npm:3.4.0" +"@lerna-lite/init@npm:3.5.1": + version: 3.5.1 + resolution: "@lerna-lite/init@npm:3.5.1" dependencies: - "@lerna-lite/core": 3.4.0 + "@lerna-lite/core": 3.5.1 fs-extra: ^11.2.0 p-map: ^7.0.2 write-json-file: ^5.0.0 - checksum: cdf72a31382c29fc5f796d5130a2e104264d79b03df10d3e1f245c3855a248b5335e1799cf4d288ab78dbc991023e3e5380ca68449bf214475dd89b1984d5877 + checksum: 7e03e90468dc7b49e37abf79e26e9e3997985159ec5622b6e081d54c68463336fe7b07fe9a2d356bd0c7ea3356d12cc0c7678da173080685eee503d87b00ddd0 languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.4.0 - resolution: "@lerna-lite/publish@npm:3.4.0" + version: 3.5.1 + resolution: "@lerna-lite/publish@npm:3.5.1" dependencies: - "@lerna-lite/cli": 3.4.0 - "@lerna-lite/core": 3.4.0 - "@lerna-lite/version": 3.4.0 + "@lerna-lite/cli": 3.5.1 + "@lerna-lite/core": 3.5.1 + "@lerna-lite/version": 3.5.1 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 fs-extra: ^11.2.0 - glob: ^10.3.15 + glob: ^10.4.1 has-unicode: ^2.0.1 - libnpmaccess: ^8.0.5 - libnpmpublish: ^9.0.7 + libnpmaccess: ^8.0.6 + libnpmpublish: ^9.0.9 normalize-path: ^3.0.0 npm-package-arg: ^11.0.2 npm-packlist: ^5.1.3 @@ -2767,16 +2767,16 @@ __metadata: ssri: ^10.0.6 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: 350f7d9aae3c7575d1794532d81b9c6abec1cc22780ccd4c6d043cfafc6dda3aeabdb450d848df3ffedc0b81cd7e3843ebc84e4a9f8207e617988cfb50e1475d + checksum: cf386832dd30221766aea5a3fb3dfc220d0cb9032e3d1f1fce9e5637f7c834b7823f66f7f103921eddbd3000fc2d4f0808e2826afe96e9a0b67fbfc82c6c0095 languageName: node linkType: hard -"@lerna-lite/version@npm:3.4.0, @lerna-lite/version@npm:^3.0.0": - version: 3.4.0 - resolution: "@lerna-lite/version@npm:3.4.0" +"@lerna-lite/version@npm:3.5.1, @lerna-lite/version@npm:^3.0.0": + version: 3.5.1 + resolution: "@lerna-lite/version@npm:3.5.1" dependencies: - "@lerna-lite/cli": 3.4.0 - "@lerna-lite/core": 3.4.0 + "@lerna-lite/cli": 3.5.1 + "@lerna-lite/core": 3.5.1 "@octokit/plugin-enterprise-rest": ^6.0.1 "@octokit/rest": ^20.1.1 chalk: ^5.3.0 @@ -2798,6 +2798,7 @@ __metadata: node-fetch: ^3.3.2 npm-package-arg: ^11.0.2 npmlog: ^7.0.1 + p-limit: ^5.0.0 p-map: ^7.0.2 p-pipe: ^4.0.0 p-reduce: ^3.0.0 @@ -2807,7 +2808,7 @@ __metadata: temp-dir: ^3.0.0 uuid: ^9.0.1 write-json-file: ^5.0.0 - checksum: 844b703309ea0d5f29a6bc3b4a4c039aff1ffad7eab4003d5103f91160e33b3cea7fd90df595dd673a666caf540d6f2a5f55145a01606c2452297ae47d2acf67 + checksum: bc8f6fe260dde0d3aea0dd8d74c39555687466a7dd12e53e0f6e59e1117203202894fd9fa9d8b23da8a72163076c913c6a9603884512e8683a88daf93d38f591 languageName: node linkType: hard @@ -7747,7 +7748,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.15": +"glob@npm:^10.4.1": version: 10.4.1 resolution: "glob@npm:10.4.1" dependencies: @@ -8254,11 +8255,11 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.2.21": - version: 9.2.21 - resolution: "inquirer@npm:9.2.21" +"inquirer@npm:^9.2.23": + version: 9.2.23 + resolution: "inquirer@npm:9.2.23" dependencies: - "@inquirer/figures": ^1.0.1 + "@inquirer/figures": ^1.0.3 "@ljharb/through": ^2.3.13 ansi-escapes: ^4.3.2 chalk: ^5.3.0 @@ -8273,7 +8274,7 @@ __metadata: string-width: ^4.2.3 strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 - checksum: 5325a8bceda0a6d187fda5c166fa148bf432b1f8972f8a906764e2e72260eab1449a1adec08c3782e2d6395cce9cb86b2260c8e7ca308921fa766d224d4116f3 + checksum: d3d5c48b2c3e606b59bc0b825a0dc3805cd12b4068cf9bb17e5f05a43e512f28b280124f2b3e9e8f8845c1031fb92eca73be25e764c4522e02b48af08428117c languageName: node linkType: hard @@ -9482,7 +9483,7 @@ __metadata: languageName: node linkType: hard -"libnpmaccess@npm:^8.0.5": +"libnpmaccess@npm:^8.0.6": version: 8.0.6 resolution: "libnpmaccess@npm:8.0.6" dependencies: @@ -9492,7 +9493,7 @@ __metadata: languageName: node linkType: hard -"libnpmpublish@npm:^9.0.7": +"libnpmpublish@npm:^9.0.9": version: 9.0.9 resolution: "libnpmpublish@npm:9.0.9" dependencies: @@ -10604,6 +10605,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:^5.0.0": + version: 5.0.0 + resolution: "p-limit@npm:5.0.0" + dependencies: + yocto-queue: ^1.0.0 + checksum: 87bf5837dee6942f0dbeff318436179931d9a97848d1b07dbd86140a477a5d2e6b90d9701b210b4e21fe7beaea2979dfde366e4f576fa644a59bd4d6a6371da7 + languageName: node + linkType: hard + "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" From e24680cb0adc2097ebee76935b2da53f05ea77fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 00:06:29 +0000 Subject: [PATCH 206/471] chore(deps): update babel monorepo to v7.24.7 --- yarn.lock | 1254 +++++++++++++++++++++++++++-------------------------- 1 file changed, 631 insertions(+), 623 deletions(-) diff --git a/yarn.lock b/yarn.lock index c9d9f929a..bfc9791ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -49,13 +49,13 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/code-frame@npm:7.24.6" +"@babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" dependencies: - "@babel/highlight": ^7.24.6 + "@babel/highlight": ^7.24.7 picocolors: ^1.0.0 - checksum: 0904514ea7079a9590c1c546cd20b9c1beab9649873f2a0703429860775c1713a8dfb2daacd781a0210bb3930c656c1c436013fb20eaa3644880fb3a2b34541d + checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 languageName: node linkType: hard @@ -66,45 +66,45 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/compat-data@npm:7.24.6" - checksum: 92233c708f7c349923c1f9a2b3c9354875a951ac3afaca0a2c159de1c808f6799ad4433652b90870015281aa466ec6e9aa8922e755cd7ac1413a3a5782cd685d +"@babel/compat-data@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/compat-data@npm:7.24.7" + checksum: 1fc276825dd434fe044877367dfac84171328e75a8483a6976aa28bf833b32367e90ee6df25bdd97c287d1aa8019757adcccac9153de70b1932c0d243a978ae9 languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/core@npm:7.24.6" + version: 7.24.7 + resolution: "@babel/core@npm:7.24.7" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.6 - "@babel/generator": ^7.24.6 - "@babel/helper-compilation-targets": ^7.24.6 - "@babel/helper-module-transforms": ^7.24.6 - "@babel/helpers": ^7.24.6 - "@babel/parser": ^7.24.6 - "@babel/template": ^7.24.6 - "@babel/traverse": ^7.24.6 - "@babel/types": ^7.24.6 + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helpers": ^7.24.7 + "@babel/parser": ^7.24.7 + "@babel/template": ^7.24.7 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: f8af23de19865818c27c2fbe0d87b0834b118386da5ee09b20ae0cf7a5540065054ef2b70f377d025d9feee765db18df39900e4c18e905988b94b54a104c738e + checksum: 017497e2a1b4683a885219eef7d2aee83c1c0cf353506b2e180b73540ec28841d8ef1ea1837fa69f8c561574b24ddd72f04764b27b87afedfe0a07299ccef24d languageName: node linkType: hard -"@babel/generator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/generator@npm:7.24.6" +"@babel/generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/generator@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 + "@babel/types": ^7.24.7 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 jsesc: ^2.5.1 - checksum: a477e03129106908f464b195c4f138052d732cfca47506b127edbed6a496371bae821662a8a4e51e6d144ac236a5d05dc2da0e145e29bb8e19d3e7c480ac00fe + checksum: 0ff31a73b15429f1287e4d57b439bba4a266f8c673bb445fe313b82f6d110f586776997eb723a777cd7adad9d340edd162aea4973a90112c5d0cfcaf6686844b languageName: node linkType: hard @@ -129,21 +129,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.6" +"@babel/helper-annotate-as-pure@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: 9ddcc2ddfa64213311d71bead56ecccdadca5455dc54528c545a2efc1d8010fb7327aef2d90ac7e71b0d0becfed0ffb00553b1e192ff00596efe4161511891cf + "@babel/types": ^7.24.7 + checksum: 6178566099a6a0657db7a7fa601a54fb4731ca0b8614fbdccfd8e523c210c13963649bc8fdfd53ce7dd14d05e3dda2fb22dea5b30113c488b9eb1a906d60212e languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.6" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: aec1792a92331f0d915eaab562ecf7a160d84958e4606425e26795dd848ddab0421190d6e15dbb58cb105caa5b4f53af7179449bc53ca2381866b064e8f8fcc6 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 71a6158a9fdebffb82fdc400d5555ba8f2e370cea81a0d578155877bdc4db7d5252b75c43b2fdf3f72b3f68348891f99bd35ae315542daad1b7ace8322b1abcb languageName: node linkType: hard @@ -160,35 +161,35 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-compilation-targets@npm:7.24.6" +"@babel/helper-compilation-targets@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-compilation-targets@npm:7.24.7" dependencies: - "@babel/compat-data": ^7.24.6 - "@babel/helper-validator-option": ^7.24.6 + "@babel/compat-data": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 browserslist: ^4.22.2 lru-cache: ^5.1.1 semver: ^6.3.1 - checksum: c66bf86387fbeefc617db9510de553880ed33dc91308421ee36a7b489d0e8c8eb615e0f467a9ec886eada7c05b03e421e55b2a724ff302402fdd4e0c0b2b0443 + checksum: dfc88bc35e223ade796c7267901728217c665adc5bc2e158f7b0ae850de14f1b7941bec4fe5950ae46236023cfbdeddd9c747c276acf9b39ca31f8dd97dc6cc6 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.6" +"@babel/helper-create-class-features-plugin@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-function-name": ^7.24.6 - "@babel/helper-member-expression-to-functions": ^7.24.6 - "@babel/helper-optimise-call-expression": ^7.24.6 - "@babel/helper-replace-supers": ^7.24.6 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 - "@babel/helper-split-export-declaration": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-member-expression-to-functions": ^7.24.7 + "@babel/helper-optimise-call-expression": ^7.24.7 + "@babel/helper-replace-supers": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 82feb93690cd543fdd9da54d71b950ca4323a99a022e73753dd4c0cd93eed44b25301182a14c626ffbef40afb00c5a4e46f646c1d1f4b501d4badaff0cab3892 + checksum: 371a181a1717a9b0cebc97727c8ea9ca6afa34029476a684b6030f9d1ad94dcdafd7de175da10b63ae3ba79e4e82404db8ed968ebf264b768f097e5d64faab71 languageName: node linkType: hard @@ -205,16 +206,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.6" +"@babel/helper-create-regexp-features-plugin@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 regexpu-core: ^5.3.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 606c43600b5c02014f871dc313f06b250b98e0e63fb7d14f1bea56cd8af5737cb7a9c7c28a16dd7712539a19bdac0a877614c9f7427c1fc005181c6a04eda978 + checksum: 17c59fa222af50f643946eca940ce1d474ff2da1f4afed2312687ab9d708ebbb8c9372754ddbdf44b6e21ead88b8fc144644f3a7b63ccb886de002458cef3974 languageName: node linkType: hard @@ -233,38 +234,41 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-environment-visitor@npm:7.24.6" - checksum: 9c2b3f1ee7ba46b61b0482efab6d37f5c76f0ea4e9d9775df44a89644729c3a50101040a0233543ec6c3f416d8e548d337f310ff3e164f847945507428ee39e5 +"@babel/helper-environment-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-environment-visitor@npm:7.24.7" + dependencies: + "@babel/types": ^7.24.7 + checksum: 079d86e65701b29ebc10baf6ed548d17c19b808a07aa6885cc141b690a78581b180ee92b580d755361dc3b16adf975b2d2058b8ce6c86675fcaf43cf22f2f7c6 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-function-name@npm:7.24.6" +"@babel/helper-function-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-function-name@npm:7.24.7" dependencies: - "@babel/template": ^7.24.6 - "@babel/types": ^7.24.6 - checksum: d7a2198b6bf2cae9767d5b0d6cb5d3cbd9a07640ad4b6798abb7d7242e8f32765a94fd98ab1a039d7607f0ddbeaf9ddc822dd536b856e499f7082899c6f455f0 + "@babel/template": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 142ee08922074dfdc0ff358e09ef9f07adf3671ab6eef4fca74dcf7a551f1a43717e7efa358c9e28d7eea84c28d7f177b7a58c70452fc312ae3b1893c5dab2a4 languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-hoist-variables@npm:7.24.6" +"@babel/helper-hoist-variables@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-hoist-variables@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: 4819b574393a5214aff6ae02a6e5250ace2564f8bcdb28d580ffec57bbb2092425e8f39563d75cfa268940a01fd425bad503c0b92717c12426f15cf6847855d3 + "@babel/types": ^7.24.7 + checksum: 6cfdcf2289cd12185dcdbdf2435fa8d3447b797ac75851166de9fc8503e2fd0021db6baf8dfbecad3753e582c08e6a3f805c8d00cbed756060a877d705bd8d8d languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.6" +"@babel/helper-member-expression-to-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: 9b027842d50fd4b80213903a97e1addcab7051de76090c3e908377fab31f73371beacefa9dfaf95416e57d3bda0fae83633ea4d206669262dde6267d802ece7b + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 9fecf412f85fa23b7cf55d19eb69de39f8240426a028b141c9df2aed8cfedf20b3ec3318d40312eb7a3dec9eea792828ce0d590e0ff62da3da532482f537192c languageName: node linkType: hard @@ -277,36 +281,37 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-module-imports@npm:7.24.6" +"@babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: 3484420c45529aac34cb14111a03c78edab84e5c4419634affe61176d832af82963395ea319f67c7235fd4106d9052a9f3ce012d2d57d56644572d3f7d495231 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-module-transforms@npm:7.24.6" +"@babel/helper-module-transforms@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-transforms@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-module-imports": ^7.24.6 - "@babel/helper-simple-access": ^7.24.6 - "@babel/helper-split-export-declaration": ^7.24.6 - "@babel/helper-validator-identifier": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-simple-access": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: 904e2a0701eb1eeb84b0d0df5dacdc40291307025b7e3a9a3c6f3eee912c893524f9dc7f5624225a5783a258dec2eb2489a9638bf5f3de26ebfcbcac1b5cc2fc + checksum: ddff3b41c2667876b4e4e73d961168f48a5ec9560c95c8c2d109e6221f9ca36c6f90c6317eb7a47f2a3c99419c356e529a86b79174cad0d4f7a61960866b88ca languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.6" +"@babel/helper-optimise-call-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: 2f1d37b2491843a60e8d1736d435aee793feb726292367df1dc25e938b93458aeeb384a329f7438b51e50fd420a71149992c1ef09249eba7041229f230c64db7 + "@babel/types": ^7.24.7 + checksum: 280654eaf90e92bf383d7eed49019573fb35a98c9e992668f701ad099957246721044be2068cf6840cb2299e0ad393705a1981c88c23a1048096a8d59e5f79a3 languageName: node linkType: hard @@ -331,63 +336,65 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-plugin-utils@npm:7.24.6" - checksum: d22bb82c75afed0d8c37784876fd6deb9db06ef21526db909ef7986a6050b50beb60a7823c08a1bb7c57c668af2e086d8086e88b6f9140b0d9ade07472f7c748 +"@babel/helper-plugin-utils@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-plugin-utils@npm:7.24.7" + checksum: 81f2a15751d892e4a8fce25390f973363a5b27596167861d2d6eab0f61856eb2ba389b031a9f19f669c0bd4dd601185828d3cebafd25431be7a1696f2ce3ef68 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-remap-async-to-generator@npm:7.24.6" +"@babel/helper-remap-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-wrap-function": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-wrap-function": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: d34142cdfecb94655730a3903039fd7459f36696a8eeca80be58ebe46d2ca517d46907c389020735d1c4325d44f7cc7581d3f9b995337d8c32c9b0552bc58759 + checksum: bab7be178f875350f22a2cb9248f67fe3a8a8128db77a25607096ca7599fd972bc7049fb11ed9e95b45a3f1dd1fac3846a3279f9cbac16f337ecb0e6ca76e1fc languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-replace-supers@npm:7.24.6" +"@babel/helper-replace-supers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-replace-supers@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-member-expression-to-functions": ^7.24.6 - "@babel/helper-optimise-call-expression": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-member-expression-to-functions": ^7.24.7 + "@babel/helper-optimise-call-expression": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: f9e32592860733d63cf554e4ade277917af162efb30e75c45fbd35bb4c05f7f0f37042857eb66cec0b5e1aedf199e06e55af6c322bcb17533a20782ec2aaa3a1 + checksum: 2bf0d113355c60d86a04e930812d36f5691f26c82d4ec1739e5ec0a4c982c9113dad3167f7c74f888a96328bd5e696372232406d8200e5979e6e0dc2af5e7c76 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-simple-access@npm:7.24.6" +"@babel/helper-simple-access@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-simple-access@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: 929162e887efc1bcadd4e141ed7782b45fccc6873d5023a744fee9c94d16d3a13dbfb66eb259181613a36c2d35f7d2088ee37e76014223d3b9b6c9ef1094e4b6 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.6" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: dd93d95a7ee815a3784de324d7fd6c495660576ec49ff5e9c608d6409441ebc7764fc0e7b198062784511301f4dc8fdc59263d5c3efcb65fe66b08b008b602f7 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 11b28fe534ce2b1a67c4d8e51a7b5711a2a0a0cae802f74614eee54cca58c744d9a62f6f60103c41759e81c537d270bfd665bf368a6bea214c6052f2094f8407 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-split-export-declaration@npm:7.24.6" +"@babel/helper-split-export-declaration@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-split-export-declaration@npm:7.24.7" dependencies: - "@babel/types": ^7.24.6 - checksum: b546fd7e186b4aa69f96e041b6c4c9154115a2579a297b86773719dbed53b938cfc3f6b4996ae410296bb8aa30ea031f9ff31f1255aa25c3af75026c5b7c4059 + "@babel/types": ^7.24.7 + checksum: e3ddc91273e5da67c6953f4aa34154d005a00791dc7afa6f41894e768748540f6ebcac5d16e72541aea0c89bee4b89b4da6a3d65972a0ea8bfd2352eda5b7e22 languageName: node linkType: hard @@ -398,10 +405,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-string-parser@npm:7.24.6" - checksum: c8c614a663928b67c5c65cfea958ed20c858fa2af8c957d301bd852c0ab98adae0861f081fd8f5add16539d9393bd4b10b8c86a97a9d7304f70a6a67b2c2ff07 +"@babel/helper-string-parser@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-string-parser@npm:7.24.7" + checksum: 09568193044a578743dd44bf7397940c27ea693f9812d24acb700890636b376847a611cdd0393a928544e79d7ad5b8b916bd8e6e772bc8a10c48a647a96e7b1a languageName: node linkType: hard @@ -412,10 +419,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-validator-identifier@npm:7.24.6" - checksum: a265a6fba570332dca63ad7e749b867d29b52da2573dc62bf19b5b8c5387d4f4296af33da9da7c71ffe3d3abecd743418278f56d38b057ad4b53f09b937fe113 +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 languageName: node linkType: hard @@ -426,31 +433,32 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-validator-option@npm:7.24.6" - checksum: 5defb2da74e1cac9497016f4e41698aeed75ec7a5e9dc07e777cdb67ef73cd2e27bd2bf8a3ab8d37e0b93a6a45524a9728f03e263afdef452436cf74794bde87 +"@babel/helper-validator-option@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-option@npm:7.24.7" + checksum: 9689166bf3f777dd424c026841c8cd651e41b21242dbfd4569a53086179a3e744c8eddd56e9d10b54142270141c91581b53af0d7c00c82d552d2540e2a919f7e languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-wrap-function@npm:7.24.6" +"@babel/helper-wrap-function@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-wrap-function@npm:7.24.7" dependencies: - "@babel/helper-function-name": ^7.24.6 - "@babel/template": ^7.24.6 - "@babel/types": ^7.24.6 - checksum: 0cf28533392b994e25590e9060d05bebc882e2a8e22ab77672799d53859f71dc87debd6d5429eeed0eb0de0038708c50576e322e6042cd4e358940939fd9b721 + "@babel/helper-function-name": ^7.24.7 + "@babel/template": ^7.24.7 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 085bf130ed08670336e3976f5841ae44e3e10001131632e22ef234659341978d2fd37e65785f59b6cb1745481347fc3bce84b33a685cacb0a297afbe1d2b03af languageName: node linkType: hard -"@babel/helpers@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helpers@npm:7.24.6" +"@babel/helpers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helpers@npm:7.24.7" dependencies: - "@babel/template": ^7.24.6 - "@babel/types": ^7.24.6 - checksum: c936058fd5caf7173e157f790fdbe9535237a7b8bc2c3d084bdf16467a034f73bd5d731deb514aa84e356c72de1cc93500a376f9d481f5c1e335f5a563426e58 + "@babel/template": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 934da58098a3670ca7f9f42425b9c44d0ca4f8fad815c0f51d89fc7b64c5e0b4c7d5fec038599de691229ada737edeaf72fad3eba8e16dd5842e8ea447f76b66 languageName: node linkType: hard @@ -477,15 +485,15 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/highlight@npm:7.24.6" +"@babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" dependencies: - "@babel/helper-validator-identifier": ^7.24.6 + "@babel/helper-validator-identifier": ^7.24.7 chalk: ^2.4.2 js-tokens: ^4.0.0 picocolors: ^1.0.0 - checksum: 2f8f7f060eeccc3ddf03ba12c263995de0e6c0dd31ad224bed58d983b3bb08fe34dfc01440396266456a4cad83226c38ad6814805bc5d0c774a056cac9182eca + checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 languageName: node linkType: hard @@ -507,60 +515,60 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/parser@npm:7.24.6" +"@babel/parser@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/parser@npm:7.24.7" bin: parser: ./bin/babel-parser.js - checksum: ca3773f5b2a4a065b827990ca0c867e670f01d7a7d7278838bd64d583e68ed52356b5a613303c5aa736d20f024728fec80fc5845fed1eb751ab5f1bfbdc1dd3c + checksum: fc9d2c4c8712f89672edc55c0dc5cf640dcec715b56480f111f85c2bc1d507e251596e4110d65796690a96ac37a4b60432af90b3e97bb47e69d4ef83872dbbd6 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.6" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: fe18f25b8507fec9ccf32f5961cd2f17d09f5695f542271b15a49ae00b8f02bfcb43fe707cd4791217ebe16de4f96898e49a5edced0e54da481f502f9a745388 + checksum: 68d315642b53af143aa17a71eb976cf431b51339aee584e29514a462b81c998636dd54219c2713b5f13e1df89eaf130dfab59683f9116825608708c81696b96c languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.6" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: 7530579cd6794ae4d3a53bf388de87fc94a090829eeff15cf01e345bb71db4aff57c28dbe595cef8d185edb1baed6a0107d772a71e919d398346876da4fe1f2c + checksum: 7eb4e7ce5e3d6db4b0fdbdfaaa301c2e58f38a7ee39d5a4259a1fda61a612e83d3e4bc90fc36fb0345baf57e1e1a071e0caffeb80218623ad163f2fdc2e53a54 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.6" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 - "@babel/plugin-transform-optional-chaining": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.7 peerDependencies: "@babel/core": ^7.13.0 - checksum: 69d5a725ad755572c9f677d07cc0c48c74cbe538869fd14e91436c4313adf4eab9838bf9ca26caa30998d89a17e86a335c36050d3b93493824788667a6508f21 + checksum: 07b92878ac58a98ea1fdf6a8b4ec3413ba4fa66924e28b694d63ec5b84463123fbf4d7153b56cf3cedfef4a3482c082fe3243c04f8fb2c041b32b0e29b4a9e21 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.6" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: 6bbd91b0038e54119ae4df594e4c1b2dc0299d2ff9533f20b8fc6870252ba7cfe480151c6dde59d0310ab23348e8556b8ae42267dbdb35b67857649161bca8d0 + checksum: 8324d458db57060590942c7c2e9603880d07718ccb6450ec935105b8bd3c4393c4b8ada88e178c232258d91f33ffdcf2b1043d54e07a86989e50667ee100a32e languageName: node linkType: hard @@ -639,25 +647,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.6" +"@babel/plugin-syntax-import-assertions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: abd640f9e2cd9b17d8f88a4431229429d57369d4fa5cbdab62b7a329812b3e7733e3f9f316dd393addb6db8d9b9b58dbd8ac39685a0c1e07bbb89b6c82445ae9 + checksum: c4d67be4eb1d4637e361477dbe01f5b392b037d17c1f861cfa0faa120030e137aab90a9237931b8040fd31d1e5d159e11866fa1165f78beef7a3be876a391a17 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.6" +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 81d83ad26dddfe0da86a34722ced7f938741fa18afe5b02fbabfa99ae4e14d97be185dbedc746eab2f1c3e6dc5560054c3cb780cb946be4533f648dca593c92b + checksum: 590dbb5d1a15264f74670b427b8d18527672c3d6c91d7bae7e65f80fd810edbc83d90e68065088644cbad3f2457ed265a54a9956fb789fcb9a5b521822b3a275 languageName: node linkType: hard @@ -683,14 +691,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.6" +"@babel/plugin-syntax-jsx@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e288681cab57d059b0b2e132040eb5e21a158c40229c600e77cb0289ba5d32a2102af94e43390d270e0ddd968685e9de8d10dab0291c53b84e2219a7bc4cdb54 + checksum: 7a5ca629d8ca1e1ee78705a78e58c12920d07ed8006d7e7232b31296a384ff5e41d7b649bde5561196041037bbb9f9715be1d1c20975df87ca204f34ad15b965 languageName: node linkType: hard @@ -793,14 +801,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.6" +"@babel/plugin-syntax-typescript@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2fb15b246f7a2334ae5ebbc4c263dc2a66464e65074cbe82204acb42c097601c5ae5933d4c4716cad0a64b41aa999080eeabddbabadd163232d9e2631749f596 + checksum: 56fe84f3044ecbf038977281648db6b63bd1301f2fff6595820dc10ee276c1d1586919d48d52a8d497ecae32c958be38f42c1c8d174dc58aad856c516dc5b35a languageName: node linkType: hard @@ -827,478 +835,478 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.6" +"@babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: be99f3208d1e828d923ad8d437644e3e62f6cb1b68acb7ec1b1e5cf169d3df8441aa8eaa1ea22fdf2e7d1a37a2d422ce04121829e625d5c56403bb3923226719 + checksum: 707c209b5331c7dc79bd326128c6a6640dbd62a78da1653c844db20c4f36bf7b68454f1bc4d2d051b3fde9136fa291f276ec03a071bb00ee653069ff82f91010 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.6" +"@babel/plugin-transform-async-generator-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-remap-async-to-generator": ^7.24.6 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-remap-async-to-generator": ^7.24.7 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9c9a49c7350c330964420dfc1263ed2e7accf53ce9bf4bec556500b99b9a81701497618d755c78924270ee263aad61564dc6ec3d13c634b2be91f8cdbaeea874 + checksum: 112e3b18f9c496ebc01209fc27f0b41a3669c479c7bc44f7249383172b432ebaae1e523caa7c6ecbd2d0d7adcb7e5769fe2798f8cb01c08cd57232d1bb6d8ad4 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.6" +"@babel/plugin-transform-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-module-imports": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-remap-async-to-generator": ^7.24.6 + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-remap-async-to-generator": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3ac6dc52328b81361cce2c77f81f9e3e6deb48086cbb1410282ba27d4eb9aae28386cd33480a607072ce1c17c4b61300520fa1671599a3a21facc7ba2b69cd32 + checksum: 13704fb3b83effc868db2b71bfb2c77b895c56cb891954fc362e95e200afd523313b0e7cf04ce02f45b05e76017c5b5fa8070c92613727a35131bb542c253a36 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.6" +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 77b5dba0b46de2b2e5a62968418bdc76e4245603866e8d53c1f413cdfb2b4a0352893ce1e039a383d8e50617c73f4622dfab1d9d56081e8926672de655361683 + checksum: 249cdcbff4e778b177245f9652b014ea4f3cd245d83297f10a7bf6d97790074089aa62bcde8c08eb299c5e68f2faed346b587d3ebac44d625ba9a83a4ee27028 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.6" +"@babel/plugin-transform-block-scoping@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a8113f1bf2e8fb83de1b608daf3c924f08b54b98e0fb5076379f35ff1b8310e5f2eba510356a425f0c3f027a777777851066acb92d3e72624c37293465b93c5a + checksum: 039206155533600f079f3a455f85888dd7d4970ff7ffa85ef44760f4f5acb9f19c9d848cc1fec1b9bdbc0dfec9e8a080b90d0ab66ad2bdc7138b5ca4ba96e61c languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-class-properties@npm:7.24.6" +"@babel/plugin-transform-class-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 79228c7eade70fed3459426233f6e507ab0c238b91cd53a527005c4e175ad2a20c918f1de09ca869a7bcd920b5452e80a1cfe7c51e4f80602c412865f049153a + checksum: 1348d7ce74da38ba52ea85b3b4289a6a86913748569ef92ef0cff30702a9eb849e5eaf59f1c6f3517059aa68115fb3067e389735dccacca39add4e2b0c67e291 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.6" +"@babel/plugin-transform-class-static-block@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: a574d565b6416ae98ce3d918bbbdfdf215440dee5a028f1076a963c90b8d7c64e5f1aae54afe605d3e607b93732a6f87b5fb62177680f895de47e2b4c7d92b78 + checksum: 324049263504f18416f1c3e24033baebfafd05480fdd885c8ebe6f2b415b0fc8e0b98d719360f9e30743cc78ac387fabc0b3c6606d2b54135756ffb92963b382 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-classes@npm:7.24.6" +"@babel/plugin-transform-classes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-classes@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 - "@babel/helper-compilation-targets": ^7.24.6 - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-function-name": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-replace-supers": ^7.24.6 - "@babel/helper-split-export-declaration": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-replace-supers": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2891dfcb1d905df55437f7a29a67b9373f6ca79bb14fadff132e56be1618e02cfd959780f3d49aa2aed9d6daa0b6ea879f5de25118c5c2210b5bb798be291eb8 + checksum: f01cb31143730d425681e9816020cbb519c7ddb3b6ca308dfaf2821eda5699a746637fc6bf19811e2fb42cfdf8b00a21b31c754da83771a5c280077925677354 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.6" +"@babel/plugin-transform-computed-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/template": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/template": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: be2d0d193b07a1c7efae2fd67d33f6b71d1a8f7cb1f3f07667717c072aaa4e7164d71b6cdd654a9352a7ddd104bdb7a5c69cb4c10d105128326cb08c792a0658 + checksum: 0cf8c1b1e4ea57dec8d4612460d84fd4cdbf71a7499bb61ee34632cf89018a59eee818ffca88a8d99ee7057c20a4257044d7d463fda6daef9bf1db9fa81563cb languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.6" +"@babel/plugin-transform-destructuring@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b81f74939a949bf366f18efabf560c5aa03aacd5cd561313918dbefbc779fb26a63fc903156deebf859ecf40df8ca23a6bcbfa0c003b64e9082d75dc5a11e79b + checksum: b9637b27faf9d24a8119bc5a1f98a2f47c69e6441bd8fc71163500be316253a72173308a93122bcf27d8d314ace43344c976f7291cf6376767f408350c8149d4 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.6" +"@babel/plugin-transform-dotall-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bd5cae74e3c5642416bae04985cfe3478315ad48a0f934169253b1eecc1365c6880d350b4077fdee72172602f8dbec32766dfe8f17776d5b2d3b53dd01382713 + checksum: 67b10fc6abb1f61f0e765288eb4c6d63d1d0f9fc0660e69f6f2170c56fa16bc74e49857afc644beda112b41771cd90cf52df0940d11e97e52617c77c7dcff171 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.6" +"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5a1f54aa7731816d722a0627176af0c810061275c22c981e09c0da2648372ca39cf331b6e7a8dad380db09100c1a655dc13307758df9a9bf88f605a99eba4e02 + checksum: d1da2ff85ecb56a63f4ccfd9dc9ae69400d85f0dadf44ecddd9e71c6e5c7a9178e74e3a9637555f415a2bb14551e563f09f98534ab54f53d25e8439fdde6ba2d languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.6" +"@babel/plugin-transform-dynamic-import@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 20360f1147af18c9669742c2ee1a832c4130dce3e73c453692edb16ea920cc4cb8e06e79cbc87ecc39c5db1ccc126bc28994cf6c4ffff59366301cc52cc2cef9 + checksum: 776509ff62ab40c12be814a342fc56a5cc09b91fb63032b2633414b635875fd7da03734657be0f6db2891fe6e3033b75d5ddb6f2baabd1a02e4443754a785002 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.6" +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d377fe651677a6dfb2dbfb3ade2e80ece6704b225b463a42cc72330a688a6d85a6c28062d0f0cc2eb6d265e2d9294a14be8f0e144a782996d0acdd86a58e139e + checksum: 23c84a23eb56589fdd35a3540f9a1190615be069110a2270865223c03aee3ba4e0fc68fe14850800cf36f0712b26e4964d3026235261f58f0405a29fe8dac9b1 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.6" +"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3e42cac016ce10aaaa66a905e4a1112beafe90c9d1919ba91653758c9f576f2c8f3211e191885e227e2d1dd77c111bb4d31b832876883a115047f6dae9ce1dce + checksum: 3bd3a10038f10ae0dea1ee42137f3edcf7036b5e9e570a0d1cbd0865f03658990c6c2d84fa2475f87a754e7dc5b46766c16f7ce5c9b32c3040150b6a21233a80 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-for-of@npm:7.24.6" +"@babel/plugin-transform-for-of@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-for-of@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7094f775acc7c7ccb7b5141ced7312f3cd7b1be3a1afda72548a21b8234d70693a6fc26b0c7ef02719f9b3ee7a0702057c3eed6d3caeee2c3631db7f414baaca + checksum: a53b42dc93ab4b7d1ebd3c695b52be22b3d592f6a3dbdb3dc2fea2c8e0a7e1508fe919864c455cde552aec44ce7518625fccbb70c7063373ca228d884f4f49ea languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-function-name@npm:7.24.6" +"@babel/plugin-transform-function-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-function-name@npm:7.24.7" dependencies: - "@babel/helper-compilation-targets": ^7.24.6 - "@babel/helper-function-name": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d9f51a89522f988d45c5b3ef09a1f9efde2122b94f5c1231bc381023738a46808b45645e0708d1ae86be86a9670f29c1b0a24be633c3a2729bcc2b0511521051 + checksum: 8eb1a67894a124910b5a67630bed4307757504381f39f0fb5cf82afc7ae8647dbc03b256d13865b73a749b9071b68e9fb8a28cef2369917b4299ebb93fd66146 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.6" +"@babel/plugin-transform-json-strings@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fd67fab338687250cb49ac9cd67514a38884013bfc172b834c2862509c40e5b436e716e6cea0ebbfd9d1fad4cae0132da187548c6af6f67717876744c17f5ce4 + checksum: 88874d0b7a1ddea66c097fc0abb68801ffae194468aa44b828dde9a0e20ac5d8647943793de86092eabaa2911c96f67a6b373793d4bb9c932ef81b2711c06c2e languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-literals@npm:7.24.6" +"@babel/plugin-transform-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 128da0047b66bce51b94bf50c2a73727e51c7ac661b641b0e0fc1e700dae11697412fa739cc01183919c427e7f970f384186f246fbab575195217d6a8df97381 + checksum: 3c075cc093a3dd9e294b8b7d6656e65f889e7ca2179ca27978dcd65b4dc4885ebbfb327408d7d8f483c55547deed00ba840956196f3ac8a3c3d2308a330a8c23 languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.6" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2b97be1ff770be1467f172492f5c1fbc074ea60de1f8c515684b49c248bd87ae44626368fc577e5239522cb640f351531ef32a45b2e88a049279f2f28246777 + checksum: 3367ce0be243704dc6fce23e86a592c4380f01998ee5dd9f94c54b1ef7b971ac6f8a002901eb51599ac6cbdc0d067af8d1a720224fca1c40fde8bb8aab804aac languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.6" +"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b30bd3df2932af85116a8ea38e040987ea5caf268c634902195e5b9eb0d4c76ee34b01309c2fb28e362f3c2636d4927c19783f3f8eea33ac451885ec29b61a56 + checksum: 2720c57aa3bf70576146ba7d6ea03227f4611852122d76d237924f7b008dafc952e6ae61a19e5024f26c665f44384bbd378466f01b6bd1305b3564a3b7fb1a5d languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.6" +"@babel/plugin-transform-modules-amd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 47d85aefb44b85168792266220e184722f96031a40a0d09a2ac026b6997927ea553cfc83bd0a77363873467120140b899fefa8e4c49475d1d21e15c651553086 + checksum: f1dd0fb2f46c0f8f21076b8c7ccd5b33a85ce6dcb31518ea4c648d9a5bb2474cd4bd87c9b1b752e68591e24b022e334ba0d07631fef2b6b4d8a4b85cf3d581f5 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.6" +"@babel/plugin-transform-modules-commonjs@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-simple-access": ^7.24.6 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-simple-access": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8fc772df64d58a431351984f7f34896f61ba8911fde547cd041b6234117e8b84a37f62a4f12c1153df7002d356b8e81944923cc9b37e96face76436cf57ac800 + checksum: bfda2a0297197ed342e2a02e5f9847a489a3ae40a4a7d7f00f4aeb8544a85e9006e0c5271c8f61f39bc97975ef2717b5594cf9486694377a53433162909d64c1 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.6" +"@babel/plugin-transform-modules-systemjs@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" dependencies: - "@babel/helper-hoist-variables": ^7.24.6 - "@babel/helper-module-transforms": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-validator-identifier": ^7.24.6 + "@babel/helper-hoist-variables": ^7.24.7 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cc65e757290924c7a37a9e606801b14f8bc3dc7c4281448ce27d8cf63e17ff5ac0c02a4d864bbe0aa950ae84cef9590347d1231a260a3cf0c3ec1cb6b89d939a + checksum: 8af7a9db2929991d82cfdf41fb175dee344274d39b39122f8c35f24b5d682f98368e3d8f5130401298bd21412df21d416a7d8b33b59c334fae3d3c762118b1d8 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.6" +"@babel/plugin-transform-modules-umd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e12f64e4b197b833f2a2923002db810a3e3071be2fc62b201c0b048142a32bbc4709633d346aaa301534c9c447b9e68800f24dcbbd3e1c1f3de04c737379fc24 + checksum: 9ff1c464892efe042952ba778468bda6131b196a2729615bdcc3f24cdc94014f016a4616ee5643c5845bade6ba698f386833e61056d7201314b13a7fd69fac88 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.6" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: a86048c47178af3d752a458b49c8483ceccbb0cff1775a6d0929415734280f42f14d48bf62d327f6fb0f8c0dff496258b59705debdd4ea68a3b247649f945f2f + checksum: f1c6c7b5d60a86b6d7e4dd098798e1d393d55e993a0b57a73b53640c7a94985b601a96bdacee063f809a9a700bcea3a2ff18e98fa561554484ac56b761d774bd languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-new-target@npm:7.24.6" +"@babel/plugin-transform-new-target@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-new-target@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9d5de07a334eb9d2521cf7d319b23f8cdf234e4fe003d034de448a506ae3f4756227ce34aafa037c6541ec4d993eb15075bcb3c064d3eaae64eba4f405d6f232 + checksum: 3cb94cd1076b270f768f91fdcf9dd2f6d487f8dbfff3df7ca8d07b915900b86d02769a35ba1407d16fe49499012c8f055e1741299e2c880798b953d942a8fa1b languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.6" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 828b815276153ffa8b53e74a1ff9dd2cd51c2e76f6fbcd8c71c3c21953dcbd14e2fe2e317989c3a93f4896e21205d978773932e414a2ea4b89609a74130a2623 + checksum: 4a9221356401d87762afbc37a9e8e764afc2daf09c421117537820f8cfbed6876888372ad3a7bcfae2d45c95f026651f050ab4020b777be31d3ffb00908dbdd3 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.6" +"@babel/plugin-transform-numeric-separator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e3d608693d9329704145fb6b8e001dd4e671ddfdbb6770ecebdffae350b16a83b4d01f69ba849d73e4a58cbe802d42be2f883b52b98f9d372020e5d1b1f4f8ed + checksum: 561b5f1d08b2c3f92ce849f092751558b5e6cfeb7eb55c79e7375c34dd9c3066dce5e630bb439affef6adcf202b6cbcaaa23870070276fa5bb429c8f5b8c7514 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.6" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" dependencies: - "@babel/helper-compilation-targets": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.24.6 + "@babel/plugin-transform-parameters": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5b5d6a3735d1b8fcc768c9acc1191b9dd1964e3454b0195d15346f889fb2134d3a8910a863359620775d5b7d56b3f4534429012eeef6a9c6d0518e6adfe5c552 + checksum: 169d257b9800c13e1feb4c37fb05dae84f702e58b342bb76e19e82e6692b7b5337c9923ee89e3916a97c0dd04a3375bdeca14f5e126f110bbacbeb46d1886ca2 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-object-super@npm:7.24.6" +"@babel/plugin-transform-object-super@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-super@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-replace-supers": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-replace-supers": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 291bb801050d9041a34da81fc68f6465d22a34bb2aef73b5cb0ecd756c0245c0af7e99e8c46d63e3e74e1cf598be1c6624da67f49d7b13e9a16e019634082466 + checksum: f71e607a830ee50a22fa1a2686524d3339440cf9dea63032f6efbd865cfe4e35000e1e3f3492459e5c986f7c0c07dc36938bf3ce61fc9ba5f8ab732d0b64ab37 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.6" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ab12b52d0007a835242505df0348743c84014e733b534583ddd786aa40dd5145d875606a666255ac823a6ccc65f649c3cebb5e5e76f8bf7b8bdf26450c7b6c8a + checksum: 7229f3a5a4facaab40f4fdfc7faabc157dc38a67d66bed7936599f4bc509e0bff636f847ac2aa45294881fce9cf8a0a460b85d2a465b7b977de9739fce9b18f6 languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.6" +"@babel/plugin-transform-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6a3a363775dc83d6a2812bbbe695fce89a23872ecc71d81484a8bdf8747b7ad53a2559d0a752f412b994b0c043e7379de09b17bff70ea38916e60c7260c91bac + checksum: 877e7ce9097d475132c7f4d1244de50bb2fd37993dc4580c735f18f8cbc49282f6e77752821bcad5ca9d3528412d2c8a7ee0aa7ca71bb680ff82648e7a5fed25 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-parameters@npm:7.24.6" +"@babel/plugin-transform-parameters@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-parameters@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e8c70d736cee3752444bd2c047542a82eec81583cb1bf69094608dc50645ca660a85833cc775644d8dac11128d3297e7dc5c2cb964da1c18a96d004ff645149d + checksum: ab534b03ac2eff94bc79342b8f39a4584666f5305a6c63c1964afda0b1b004e6b861e49d1683548030defe248e3590d3ff6338ee0552cb90c064f7e1479968c3 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-private-methods@npm:7.24.6" +"@babel/plugin-transform-private-methods@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ee6aae3ec45fc33cc7f02c3092b3bba35bde02c8293e11c87e7549d6afb3dde024a968542fbb5d5204a74aa5b909e717c09d37f4e1be39a8ef3f26466c0391e0 + checksum: c151548e34909be2adcceb224d8fdd70bafa393bc1559a600906f3f647317575bf40db670470934a360e90ee8084ef36dffa34ec25d387d414afd841e74cf3fe languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.6" +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 - "@babel/helper-create-class-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a6b0f578a1f9195956fb66686a6e03b03b1293abd5f9b244fc077669ae3365391d61a4107ac9f2f019accfb3f09c19ede4b5811082c116709c7aa6b08efc9ffb + checksum: 8cee9473095305cc787bb653fd681719b49363281feabf677db8a552e8e41c94441408055d7e5fd5c7d41b315e634fa70b145ad0c7c54456216049df4ed57350 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.6" +"@babel/plugin-transform-property-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 003bbec02aaddde04de492ef63cd4aab131ac65bc8ae0f2b49394b93b1c6a3d104ef62b57184569332de0149aa9cb4b2528b40e0ca9c5884117b7c379cd1a017 + checksum: 9aeefc3aab6c6bf9d1fae1cf3a2d38c7d886fd3c6c81b7c608c477f5758aee2e7abf52f32724310fe861da61af934ee2508b78a5b5f234b9740c9134e1c14437 languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-react-display-name@npm:7.24.6" +"@babel/plugin-transform-react-display-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-display-name@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 23e5992815b4f9bda6b90673d94ba74d001281fa2b02780d59f666234ed9b05782546364b13009fe0d72b3d5b829f2c6831948b0af120294f5f2e5f4da9c7eab + checksum: a05bf83bf5e7b31f7a3b56da1bf8e2eeec76ef52ae44435ceff66363a1717fcda45b7b4b931a2c115982175f481fc3f2d0fab23f0a43c44e6d983afc396858f0 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.6" +"@babel/plugin-transform-react-jsx-development@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.7" dependencies: - "@babel/plugin-transform-react-jsx": ^7.24.6 + "@babel/plugin-transform-react-jsx": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 912993aa8546d3aa129d6a567018c29bc99f0a3c9a99062f756d48c8ad0444f42314a245a1434964e23685a59c4a1564abb8e9a251d8ca216ed726661ede50d9 + checksum: 653d32ea5accb12d016e324ec5a584b60a8f39e60c6a5101194b73553fdefbfa3c3f06ec2410216ec2033fddae181a2f146a1d6ed59f075c488fc4570cad2e7b languageName: node linkType: hard @@ -1324,193 +1332,193 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-react-jsx@npm:7.24.6" +"@babel/plugin-transform-react-jsx@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-jsx@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 - "@babel/helper-module-imports": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/plugin-syntax-jsx": ^7.24.6 - "@babel/types": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-jsx": ^7.24.7 + "@babel/types": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6e6ef2a9c364c81dc865cfac12fb45075470e918af648239b3ef9d4720577762950b9db6db2d1f8c2e4f3f0c2e4e169d4ebc7c5c2037fc0755ee606016a413f0 + checksum: ddfe494eb4b6ad567ebf0c029246df55d006512b1eb4beead73427b83af2e7e91b6d6e6954e275a92c81a5111d1e6e1fb4a62fdfc6f77c847cc7581650a7c452 languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.6" +"@babel/plugin-transform-react-pure-annotations@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e358ecabb328a952d8aa36acbbf7bf017b1905d97401eaafb6b99572d8d4b477a3e37cccc1cd582d980952936b7e6dd370ade488e167591c1c9fb7940141c301 + checksum: d859ada3cbeb829fa3d9978a29b2d36657fcc9dcc1e4c3c3af84ec5a044a8f8db26ada406baa309e5d4d512aca53d07c520d991b891ff943bec7d8f01aae0419 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.6" +"@babel/plugin-transform-regenerator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 78ee16d3ac5c53d6f4526cc45d66dfd163625c62efb8e75cebbc8fcc2f4f13967b2a7e3464f854b559dcd93c4a21fc139ddcb7c70ada7074b53872a1378632f8 + checksum: 20c6c3fb6fc9f407829087316653388d311e8c1816b007609bb09aeef254092a7157adace8b3aaa8f34be752503717cb85c88a5fe482180a9b11bcbd676063be languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.6" +"@babel/plugin-transform-reserved-words@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 37097ad5333629d52092bf9e7573e9c5012b3ea6c9148540b9780e754a1bbafa9df6506a054743cd928bd83989bb8c507280e1ebec955de87745bbe11f7dd0be + checksum: 3d5876954d5914d7270819479504f30c4bf5452a65c677f44e2dab2db50b3c9d4b47793c45dfad7abf4f377035dd79e4b3f554ae350df9f422201d370ce9f8dd languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.6" +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6c7c8a2ef45b3e9d5ddf1e2dcb5fc40a581cf218f2122c5f2104b91d518d2d21d8d30f4c1db7f3c1c6c68283ec86e8a19d3b8478582306f6529388503d04b61f + checksum: 7b524245814607188212b8eb86d8c850e5974203328455a30881b4a92c364b93353fae14bc2af5b614ef16300b75b8c1d3b8f3a08355985b4794a7feb240adc3 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-spread@npm:7.24.6" +"@babel/plugin-transform-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-spread@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: aa86664134e03f0e2d70522e5634c67a31b8f93abd00755e98f0c5dbcb2411bd1f2745e0b3b4e6ed2d280b48b15136225c457df89b16f1fff1f98eac999f2064 + checksum: 4c4254c8b9cceb1a8f975fa9b92257ddb08380a35c0a3721b8f4b9e13a3d82e403af2e0fba577b9f2452dd8f06bc3dea71cc53b1e2c6af595af5db52a13429d6 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.6" +"@babel/plugin-transform-sticky-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 960962195044c0a66c8a12ba59e72271cf2ab5774606018622012bfac7172d1edebb189c91ca2399f610166b9578c769f09f2802eeff1d0866f50642caa15c6d + checksum: 118fc7a7ebf7c20411b670c8a030535fdfe4a88bc5643bb625a584dbc4c8a468da46430a20e6bf78914246962b0f18f1b9d6a62561a7762c4f34a038a5a77179 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.6" +"@babel/plugin-transform-template-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9518e4cdf399505645b13a80171199b0b9a8366df5dcc547359430b9a1b9f00260da20cdec7fe0ed8709e5224c67e08e793f85be674e23937650e592d453b8bf + checksum: ad44e5826f5a98c1575832dbdbd033adfe683cdff195e178528ead62507564bf02f479b282976cfd3caebad8b06d5fd7349c1cdb880dec3c56daea4f1f179619 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.6" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 91af214cffe5b8ae33702beb1f9ad0fa14b7809662118b78bb1a2e8a50e016f4c3d2b1505a3140245161daf988498509ca35b741bab91024dffe128682ac24d6 + checksum: 6bd16b9347614d44187d8f8ee23ebd7be30dabf3632eed5ff0415f35a482e827de220527089eae9cdfb75e85aa72db0e141ebc2247c4b1187c1abcdacdc34895 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-typescript@npm:7.24.6" +"@babel/plugin-transform-typescript@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-typescript@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.24.6 - "@babel/helper-create-class-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/plugin-syntax-typescript": ^7.24.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-typescript": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1af9c27612956b6d65195f484c545490dec01094fc07990c7266732cf104fde09f623df71d2ac7bea3509129735c12fb4d73085d257514fbe4b133963c8895b7 + checksum: 6b367d1e3d6bdbe438878a76436fc6903e2b4fd7c31fa036d43865570d282679ec3f7c0306399851f2866a9b36686a0ea8c343df3750f70d427f1fe20ca54310 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.6" +"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 905211493c9d97993476d1596c46a18e40aaa4c310b4464e05979f5a16f3d31fcf111d67c1c3912cfc2e3cdf6e6cb51c22fd69aea7a017759c790bfe897871e9 + checksum: 4af0a193e1ddea6ff82b2b15cc2501b872728050bd625740b813c8062fec917d32d530ff6b41de56c15e7296becdf3336a58db81f5ca8e7c445c1306c52f3e01 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.6" +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 141df101ffd31f8c1f92c62548020240af71811b1d1bad63f7e41aaf6084ec758715a42eb9f80f00b6a04b6d260ad8e362083372b4106cf5aca304e214c66068 + checksum: aae13350c50973f5802ca7906d022a6a0cc0e3aebac9122d0450bbd51e78252d4c2032ad69385e2759fcbdd3aac5d571bd7e26258907f51f8e1a51b53be626c2 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.6" +"@babel/plugin-transform-unicode-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5f4ba063221f5f4034ee008b15a4f12b8939f47782c5e9aac198b72e4fe1aafa35dd60795eb979ced25ee0d6dbd7656ae424cfd00206cd59c956c5e3a7976e0d + checksum: 1cb4e70678906e431da0a05ac3f8350025fee290304ad7482d9cfaa1ca67b2e898654de537c9268efbdad5b80d3ebadf42b4a88ea84609bd8a4cce7b11b48afd languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.6" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: a62af3b80f4f89fb30e1735fe4b2b16e00da552c3bd8af1cce2e54ae7c50398286f729b961fcd0caf675c69289620991be90c3628ea76e5a0d15c864e97351d2 + checksum: 08a2844914f33dacd2ce1ab021ce8c1cc35dc6568521a746d8bf29c21571ee5be78787b454231c4bb3526cbbe280f1893223c82726cec5df2be5dae0a3b51837 languageName: node linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.24.6 - resolution: "@babel/preset-env@npm:7.24.6" - dependencies: - "@babel/compat-data": ^7.24.6 - "@babel/helper-compilation-targets": ^7.24.6 - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-validator-option": ^7.24.6 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.6 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.6 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.6 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.6 + version: 7.24.7 + resolution: "@babel/preset-env@npm:7.24.7" + dependencies: + "@babel/compat-data": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.7 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.7 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.7 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.7 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.24.6 - "@babel/plugin-syntax-import-attributes": ^7.24.6 + "@babel/plugin-syntax-import-assertions": ^7.24.7 + "@babel/plugin-syntax-import-attributes": ^7.24.7 "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 @@ -1522,54 +1530,54 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.24.6 - "@babel/plugin-transform-async-generator-functions": ^7.24.6 - "@babel/plugin-transform-async-to-generator": ^7.24.6 - "@babel/plugin-transform-block-scoped-functions": ^7.24.6 - "@babel/plugin-transform-block-scoping": ^7.24.6 - "@babel/plugin-transform-class-properties": ^7.24.6 - "@babel/plugin-transform-class-static-block": ^7.24.6 - "@babel/plugin-transform-classes": ^7.24.6 - "@babel/plugin-transform-computed-properties": ^7.24.6 - "@babel/plugin-transform-destructuring": ^7.24.6 - "@babel/plugin-transform-dotall-regex": ^7.24.6 - "@babel/plugin-transform-duplicate-keys": ^7.24.6 - "@babel/plugin-transform-dynamic-import": ^7.24.6 - "@babel/plugin-transform-exponentiation-operator": ^7.24.6 - "@babel/plugin-transform-export-namespace-from": ^7.24.6 - "@babel/plugin-transform-for-of": ^7.24.6 - "@babel/plugin-transform-function-name": ^7.24.6 - "@babel/plugin-transform-json-strings": ^7.24.6 - "@babel/plugin-transform-literals": ^7.24.6 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.6 - "@babel/plugin-transform-member-expression-literals": ^7.24.6 - "@babel/plugin-transform-modules-amd": ^7.24.6 - "@babel/plugin-transform-modules-commonjs": ^7.24.6 - "@babel/plugin-transform-modules-systemjs": ^7.24.6 - "@babel/plugin-transform-modules-umd": ^7.24.6 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.6 - "@babel/plugin-transform-new-target": ^7.24.6 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.6 - "@babel/plugin-transform-numeric-separator": ^7.24.6 - "@babel/plugin-transform-object-rest-spread": ^7.24.6 - "@babel/plugin-transform-object-super": ^7.24.6 - "@babel/plugin-transform-optional-catch-binding": ^7.24.6 - "@babel/plugin-transform-optional-chaining": ^7.24.6 - "@babel/plugin-transform-parameters": ^7.24.6 - "@babel/plugin-transform-private-methods": ^7.24.6 - "@babel/plugin-transform-private-property-in-object": ^7.24.6 - "@babel/plugin-transform-property-literals": ^7.24.6 - "@babel/plugin-transform-regenerator": ^7.24.6 - "@babel/plugin-transform-reserved-words": ^7.24.6 - "@babel/plugin-transform-shorthand-properties": ^7.24.6 - "@babel/plugin-transform-spread": ^7.24.6 - "@babel/plugin-transform-sticky-regex": ^7.24.6 - "@babel/plugin-transform-template-literals": ^7.24.6 - "@babel/plugin-transform-typeof-symbol": ^7.24.6 - "@babel/plugin-transform-unicode-escapes": ^7.24.6 - "@babel/plugin-transform-unicode-property-regex": ^7.24.6 - "@babel/plugin-transform-unicode-regex": ^7.24.6 - "@babel/plugin-transform-unicode-sets-regex": ^7.24.6 + "@babel/plugin-transform-arrow-functions": ^7.24.7 + "@babel/plugin-transform-async-generator-functions": ^7.24.7 + "@babel/plugin-transform-async-to-generator": ^7.24.7 + "@babel/plugin-transform-block-scoped-functions": ^7.24.7 + "@babel/plugin-transform-block-scoping": ^7.24.7 + "@babel/plugin-transform-class-properties": ^7.24.7 + "@babel/plugin-transform-class-static-block": ^7.24.7 + "@babel/plugin-transform-classes": ^7.24.7 + "@babel/plugin-transform-computed-properties": ^7.24.7 + "@babel/plugin-transform-destructuring": ^7.24.7 + "@babel/plugin-transform-dotall-regex": ^7.24.7 + "@babel/plugin-transform-duplicate-keys": ^7.24.7 + "@babel/plugin-transform-dynamic-import": ^7.24.7 + "@babel/plugin-transform-exponentiation-operator": ^7.24.7 + "@babel/plugin-transform-export-namespace-from": ^7.24.7 + "@babel/plugin-transform-for-of": ^7.24.7 + "@babel/plugin-transform-function-name": ^7.24.7 + "@babel/plugin-transform-json-strings": ^7.24.7 + "@babel/plugin-transform-literals": ^7.24.7 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 + "@babel/plugin-transform-member-expression-literals": ^7.24.7 + "@babel/plugin-transform-modules-amd": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.7 + "@babel/plugin-transform-modules-systemjs": ^7.24.7 + "@babel/plugin-transform-modules-umd": ^7.24.7 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 + "@babel/plugin-transform-new-target": ^7.24.7 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 + "@babel/plugin-transform-numeric-separator": ^7.24.7 + "@babel/plugin-transform-object-rest-spread": ^7.24.7 + "@babel/plugin-transform-object-super": ^7.24.7 + "@babel/plugin-transform-optional-catch-binding": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.7 + "@babel/plugin-transform-parameters": ^7.24.7 + "@babel/plugin-transform-private-methods": ^7.24.7 + "@babel/plugin-transform-private-property-in-object": ^7.24.7 + "@babel/plugin-transform-property-literals": ^7.24.7 + "@babel/plugin-transform-regenerator": ^7.24.7 + "@babel/plugin-transform-reserved-words": ^7.24.7 + "@babel/plugin-transform-shorthand-properties": ^7.24.7 + "@babel/plugin-transform-spread": ^7.24.7 + "@babel/plugin-transform-sticky-regex": ^7.24.7 + "@babel/plugin-transform-template-literals": ^7.24.7 + "@babel/plugin-transform-typeof-symbol": ^7.24.7 + "@babel/plugin-transform-unicode-escapes": ^7.24.7 + "@babel/plugin-transform-unicode-property-regex": ^7.24.7 + "@babel/plugin-transform-unicode-regex": ^7.24.7 + "@babel/plugin-transform-unicode-sets-regex": ^7.24.7 "@babel/preset-modules": 0.1.6-no-external-plugins babel-plugin-polyfill-corejs2: ^0.4.10 babel-plugin-polyfill-corejs3: ^0.10.4 @@ -1578,7 +1586,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3467171641b0e38dcddef9b16f11676585bbfe32eab3674a881b6437eee330211c01cecd608d3d4e01607b1faf168184db041782ce90fe437f5a635e6bd7676c + checksum: 1a82c883c7404359b19b7436d0aab05f8dd4e89e8b1f7de127cc65d0ff6a9b1c345211d9c038f5b6e8f93d26f091fa9c73812d82851026ab4ec93f5ed0f0d675 languageName: node linkType: hard @@ -1596,33 +1604,33 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.23.3": - version: 7.24.6 - resolution: "@babel/preset-react@npm:7.24.6" + version: 7.24.7 + resolution: "@babel/preset-react@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-validator-option": ^7.24.6 - "@babel/plugin-transform-react-display-name": ^7.24.6 - "@babel/plugin-transform-react-jsx": ^7.24.6 - "@babel/plugin-transform-react-jsx-development": ^7.24.6 - "@babel/plugin-transform-react-pure-annotations": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-transform-react-display-name": ^7.24.7 + "@babel/plugin-transform-react-jsx": ^7.24.7 + "@babel/plugin-transform-react-jsx-development": ^7.24.7 + "@babel/plugin-transform-react-pure-annotations": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3bf120b3c29521f1e9f7d5cea864ea3cf411b385bc32f516b5956e209cca074f05c32a1c2baa8b24f3100c7868832f9a37d6f3ad6989aec3592bc09ab90e991a + checksum: 76d0365b6bca808be65c4ccb3f3384c0792084add15eb537f16b3e44184216b82fa37f945339b732ceee6f06e09ba1f39f75c45e69b9811ddcc479f05555ea9c languageName: node linkType: hard "@babel/preset-typescript@npm:^7.23.3": - version: 7.24.6 - resolution: "@babel/preset-typescript@npm:7.24.6" + version: 7.24.7 + resolution: "@babel/preset-typescript@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.24.6 - "@babel/helper-validator-option": ^7.24.6 - "@babel/plugin-syntax-jsx": ^7.24.6 - "@babel/plugin-transform-modules-commonjs": ^7.24.6 - "@babel/plugin-transform-typescript": ^7.24.6 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-syntax-jsx": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.7 + "@babel/plugin-transform-typescript": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f78a424bc19339b287da40fb3016f8390f5cb1c956d46ea46fb898e25f7a5448c2c5267cd7734f7665c743e416dd11da447d450b6012d061dfb6ae5f824abbd6 + checksum: 12929b24757f3bd6548103475f86478eda4c872bc7cefd920b29591eee8f4a4f350561d888e133d632d0c9402b8615fdcec9138e5127a6567dcb22f804ff207f languageName: node linkType: hard @@ -1642,14 +1650,14 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/template@npm:7.24.6" +"@babel/template@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/template@npm:7.24.7" dependencies: - "@babel/code-frame": ^7.24.6 - "@babel/parser": ^7.24.6 - "@babel/types": ^7.24.6 - checksum: 8e532ebdd5e1398c030af16881061bad43b9c3b758a193a6289dc5be5988cc543f7aa56a360e15b755258c0b3d387f3cd78b505835b040a2729d0261d0ff1711 + "@babel/code-frame": ^7.24.7 + "@babel/parser": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: ea90792fae708ddf1632e54c25fe1a86643d8c0132311f81265d2bdbdd42f9f4fac65457056c1b6ca87f7aa0d6a795b549566774bba064bdcea2034ab3960ee9 languageName: node linkType: hard @@ -1664,21 +1672,21 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/traverse@npm:7.24.6" +"@babel/traverse@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/traverse@npm:7.24.7" dependencies: - "@babel/code-frame": ^7.24.6 - "@babel/generator": ^7.24.6 - "@babel/helper-environment-visitor": ^7.24.6 - "@babel/helper-function-name": ^7.24.6 - "@babel/helper-hoist-variables": ^7.24.6 - "@babel/helper-split-export-declaration": ^7.24.6 - "@babel/parser": ^7.24.6 - "@babel/types": ^7.24.6 + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.24.7 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-hoist-variables": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 + "@babel/parser": ^7.24.7 + "@babel/types": ^7.24.7 debug: ^4.3.1 globals: ^11.1.0 - checksum: 654151b2ab5c9d5031c274cf197f707b8a27a1c70b38fcb8d1bf5ad2d8848f38675ab9c2a86aeb804657c5817124ac5be4cb6f5defa8ef7ac40596e1220697aa + checksum: 7cd366afe9e7ee77e493779fdf24f67bf5595247289364f4689e29688572505eaeb886d7a8f20ebb9c29fc2de7d0895e4ff9e203e78e39ac67239724d45aa83b languageName: node linkType: hard @@ -1693,14 +1701,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/types@npm:7.24.6" +"@babel/types@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/types@npm:7.24.7" dependencies: - "@babel/helper-string-parser": ^7.24.6 - "@babel/helper-validator-identifier": ^7.24.6 + "@babel/helper-string-parser": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 to-fast-properties: ^2.0.0 - checksum: 58d798dd37e6b14f818730b4536795d68d28ccd5dc2a105fd977104789b20602be11d92cdd47cdbd48d8cce3cc0e14c7773813357ad9d5d6e94d70587eb45bf5 + checksum: 3e4437fced97e02982972ce5bebd318c47d42c9be2152c0fd28c6f786cc74086cc0a8fb83b602b846e41df37f22c36254338eada1a47ef9d8a1ec92332ca3ea8 languageName: node linkType: hard From c703a289e0cc7f86d47a2962f018f91f52a30094 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 00:06:59 +0000 Subject: [PATCH 207/471] chore(deps): update dependency @storybook/addon-actions to v8.1.6 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index bfc9791ac..12624e8d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3503,16 +3503,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.1.5 - resolution: "@storybook/addon-actions@npm:8.1.5" + version: 8.1.6 + resolution: "@storybook/addon-actions@npm:8.1.6" dependencies: - "@storybook/core-events": 8.1.5 + "@storybook/core-events": 8.1.6 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: bbb38b2695909993ebbc4103a5b15bcba20d6824a10696f60ff8fb0fa3b1d7a0191b6b7fa3af3b1d6d35090c166a8bb8fe9c309b168ec2e02e30b1758b86b9a1 + checksum: 0928e626e1e529cb7e1736ab7e1cfca80a2173ee9ddbe7fbffc0f0907df6264554e82e5c6e0b8128e1437e09aa349ee9ae96b8a1a1ebcefd78260b49092ee1fd languageName: node linkType: hard @@ -3547,13 +3547,13 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.1.5": - version: 8.1.5 - resolution: "@storybook/core-events@npm:8.1.5" +"@storybook/core-events@npm:8.1.6": + version: 8.1.6 + resolution: "@storybook/core-events@npm:8.1.6" dependencies: "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: 27007b6b8c6816378a815e74211d17eb686bd1c34701a78f0a024218924de08774d07b47304e222577c557e4bf6c335a6aa4086cd1500f4e297c0e206fef947f + checksum: a2655f0f19d9229cff946756332d90b86f84ecc0c7e3fa630b0aa0b0a33c6019a957667ad4a624341ed19a5f4d63281dd4c6b36cc58e579509b7de8d245430fa languageName: node linkType: hard From f73eae609bb6f43a8b5fd1037d366bb7d38adec2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 6 Jun 2024 04:19:18 +0000 Subject: [PATCH 208/471] chore(deps): update dependency prettier to v3.3.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 12624e8d3..79d35b2fb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11108,11 +11108,11 @@ __metadata: linkType: hard "prettier@npm:^3.2.5": - version: 3.3.0 - resolution: "prettier@npm:3.3.0" + version: 3.3.1 + resolution: "prettier@npm:3.3.1" bin: prettier: bin/prettier.cjs - checksum: 0d3a7fca9cab29828e189fefc10e8f6025d1208c84cd1e94def8a8f8a04eea341aa21d0af8c01253527632f8225b0b8482a62b64cafa26e9988cd6f9ff16a38b + checksum: 10987ff39e23d9359a76a441431dfe3ee26cc444540dc1577e8109e31394231fc1187d47a1e4ebc98bd605885c50ec681e9f2674e489c3313708c30b6ef5e119 languageName: node linkType: hard From db862982a657c6ece3b7ae6b838ede4ae0d33144 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Jun 2024 01:42:42 +0000 Subject: [PATCH 209/471] chore(deps): update dependency vite to v5.2.13 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 79d35b2fb..bf117468f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13372,8 +13372,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.2.12 - resolution: "vite@npm:5.2.12" + version: 5.2.13 + resolution: "vite@npm:5.2.13" dependencies: esbuild: ^0.20.1 fsevents: ~2.3.3 @@ -13407,7 +13407,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 908b8a09460c031fe94c2038a46743a73a70fe76fd1991ae8b51a56eb88dec75128bc7da7ab37d8f84c0e1e3063ce268bdd81cc27d79229f8ea756e752bc83d9 + checksum: 79620413e45804494bedb81f2b78b48ca1d26fb026894a114a2f40cb1a3ad9b6783e777bc8969a51f8711e168b4db93a9563a5af027c80eecf000ef9b675a3be languageName: node linkType: hard From f12524e9ece12fc411c671a4b26950fabea695a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 01:05:52 +0000 Subject: [PATCH 210/471] chore(deps): update dependency @vitejs/plugin-react to v4.3.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index bf117468f..ac859663b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4428,8 +4428,8 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^4.2.1": - version: 4.3.0 - resolution: "@vitejs/plugin-react@npm:4.3.0" + version: 4.3.1 + resolution: "@vitejs/plugin-react@npm:4.3.1" dependencies: "@babel/core": ^7.24.5 "@babel/plugin-transform-react-jsx-self": ^7.24.5 @@ -4438,7 +4438,7 @@ __metadata: react-refresh: ^0.14.2 peerDependencies: vite: ^4.2.0 || ^5.0.0 - checksum: e4642c081e74e701fc07f03f505b44eb428d7105461b8026e7364ecd30dcf7785126bf272767a3bc36899b6abe85479af444612ef6d09509d9bc7d6025cac925 + checksum: 57872e0193c7e545c5ef4852cbe1adf17a6b35406a2aba4b3acce06c173a9dabbf6ff4c72701abc11bb3cbe24a056f5054f39018f7034c9aa57133a3a7770237 languageName: node linkType: hard From ae6fa378fc47f0c85b5b200ad8ab4fb5564cd87c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Jun 2024 01:21:51 +0000 Subject: [PATCH 211/471] chore(deps): update dependency @testing-library/jest-dom to v6.4.6 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index ac859663b..85f19e644 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,10 +12,10 @@ __metadata: languageName: node linkType: hard -"@adobe/css-tools@npm:^4.3.2": - version: 4.3.3 - resolution: "@adobe/css-tools@npm:4.3.3" - checksum: d21f3786b84911fee59c995a146644a85c98692979097b26484ffa9e442fb1a92ccd68ce984e3e7cf8d5933c3560fbc0ad3e3cd1de50b9a723d1c012e793bbcb +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.0 + resolution: "@adobe/css-tools@npm:4.4.0" + checksum: 1f08fb49bf17fc7f2d1a86d3e739f29ca80063d28168307f1b0a962ef37501c5667271f6771966578897f2e94e43c4770fd802728a6e6495b812da54112d506a languageName: node linkType: hard @@ -3590,10 +3590,10 @@ __metadata: linkType: hard "@testing-library/jest-dom@npm:^6.4.2": - version: 6.4.5 - resolution: "@testing-library/jest-dom@npm:6.4.5" + version: 6.4.6 + resolution: "@testing-library/jest-dom@npm:6.4.6" dependencies: - "@adobe/css-tools": ^4.3.2 + "@adobe/css-tools": ^4.4.0 "@babel/runtime": ^7.9.2 aria-query: ^5.0.0 chalk: ^3.0.0 @@ -3618,7 +3618,7 @@ __metadata: optional: true vitest: optional: true - checksum: 95bd94f1f4ba2110eaaa15174207f74d46481f0f168a4d58c30f92a9285f797f9949c166aa8401bcb46e16edbf14a097013204d65801e9d1361892757e525bd6 + checksum: d70acbfc5d842065292dc1b4113ac2b4c2a2b83f9868e454d7f24d97ee92fddf7852e0e079b6eecaf21154bfe6e9ad03eb32e72f16854f64d7ce1ff42288828b languageName: node linkType: hard From 4ad4a41cb86e16b0606b7d35d57090bd7c001bf2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 18:11:49 +0000 Subject: [PATCH 212/471] chore(deps): update dependency lint-staged to v15.2.7 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85f19e644..750122a50 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9539,8 +9539,8 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.5 - resolution: "lint-staged@npm:15.2.5" + version: 15.2.7 + resolution: "lint-staged@npm:15.2.7" dependencies: chalk: ~5.3.0 commander: ~12.1.0 @@ -9554,7 +9554,7 @@ __metadata: yaml: ~2.4.2 bin: lint-staged: bin/lint-staged.js - checksum: 3025868d965eb401a5ebd903abd70cfebb8dbeb41eea1020c316f9c8c79083ea203f6cef95d32bfa8c9ec5486392b4ed08632ace6a5347b69cf238ba00e178f0 + checksum: 0f21d1b44c046fcfc0388dab66d45d244818afdb24bdf57e7593640c7ca82cc55be7d75e086708e453fac0c0d9ab8760b2cde053944f7b2121c2dd65f6367ffe languageName: node linkType: hard From 0853f37d405324205b79a7e881a156a73db98394 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:31:36 +0000 Subject: [PATCH 213/471] chore(deps): update dependency prettier to v3.3.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 750122a50..1fef8b9b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11108,11 +11108,11 @@ __metadata: linkType: hard "prettier@npm:^3.2.5": - version: 3.3.1 - resolution: "prettier@npm:3.3.1" + version: 3.3.2 + resolution: "prettier@npm:3.3.2" bin: prettier: bin/prettier.cjs - checksum: 10987ff39e23d9359a76a441431dfe3ee26cc444540dc1577e8109e31394231fc1187d47a1e4ebc98bd605885c50ec681e9f2674e489c3313708c30b6ef5e119 + checksum: 5557d8caed0b182f68123c2e1e370ef105251d1dd75800fadaece3d061daf96b1389141634febf776050f9d732c7ae8fd444ff0b4a61b20535e7610552f32c69 languageName: node linkType: hard From 47a0c515114c7f655cbc053529441d54b3dd44e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:41:41 +0000 Subject: [PATCH 214/471] chore(deps): update dependency sass to v1.77.5 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1fef8b9b3..6da3715d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11960,15 +11960,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.77.4 - resolution: "sass@npm:1.77.4" + version: 1.77.5 + resolution: "sass@npm:1.77.5" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 415d76960e35d78310ffc33bc61fdb2b35a54bb2823dfc4eff50eee960096dacc210d7ef7ae6695120e1a4f005f269719c34d58c77c54ff7787516bda6a89e55 + checksum: 32bea7558000933c69abdcc5377a213187f845ed730efb352bfb6189970376c81868d3a1beed05654d0b37ff56df2a9b763a3c135407f99619fc1f93db5a7a32 languageName: node linkType: hard From 7705352edd232ea523d1dfcdbea453a9410da1b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 01:05:34 +0000 Subject: [PATCH 215/471] chore(deps): update @lerna-lite to v3.5.2 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6da3715d3..9ec9dc311 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2747,12 +2747,12 @@ __metadata: linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.5.1 - resolution: "@lerna-lite/publish@npm:3.5.1" + version: 3.5.2 + resolution: "@lerna-lite/publish@npm:3.5.2" dependencies: "@lerna-lite/cli": 3.5.1 "@lerna-lite/core": 3.5.1 - "@lerna-lite/version": 3.5.1 + "@lerna-lite/version": 3.5.2 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 @@ -2775,13 +2775,13 @@ __metadata: ssri: ^10.0.6 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: cf386832dd30221766aea5a3fb3dfc220d0cb9032e3d1f1fce9e5637f7c834b7823f66f7f103921eddbd3000fc2d4f0808e2826afe96e9a0b67fbfc82c6c0095 + checksum: 78c014983ecde91fe8526c74f3d5823b7774d75bf730bdd964e8c4b980fed59dd6cf2abae7b6769311fcd8aec1c288452958fd3721afdddcdadc2deb33e2b71c languageName: node linkType: hard -"@lerna-lite/version@npm:3.5.1, @lerna-lite/version@npm:^3.0.0": - version: 3.5.1 - resolution: "@lerna-lite/version@npm:3.5.1" +"@lerna-lite/version@npm:3.5.2, @lerna-lite/version@npm:^3.0.0": + version: 3.5.2 + resolution: "@lerna-lite/version@npm:3.5.2" dependencies: "@lerna-lite/cli": 3.5.1 "@lerna-lite/core": 3.5.1 @@ -2816,7 +2816,7 @@ __metadata: temp-dir: ^3.0.0 uuid: ^9.0.1 write-json-file: ^5.0.0 - checksum: bc8f6fe260dde0d3aea0dd8d74c39555687466a7dd12e53e0f6e59e1117203202894fd9fa9d8b23da8a72163076c913c6a9603884512e8683a88daf93d38f591 + checksum: d4483bed67acf74f6cdf1e4fc080fc2b5a41194fe7dc851c3dbff3efa688d1563e9a687a82a03803e64c7734c79913c4fa3a99d85986d1552584c476c0e413ce languageName: node linkType: hard From c1aaf182100a0b5df47b04a718c16de46b9da98a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 05:19:13 +0000 Subject: [PATCH 216/471] chore(deps): update dependency @storybook/addon-actions to v8.1.8 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9ec9dc311..1e3788b70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3503,16 +3503,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.1.6 - resolution: "@storybook/addon-actions@npm:8.1.6" + version: 8.1.8 + resolution: "@storybook/addon-actions@npm:8.1.8" dependencies: - "@storybook/core-events": 8.1.6 + "@storybook/core-events": 8.1.8 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: 0928e626e1e529cb7e1736ab7e1cfca80a2173ee9ddbe7fbffc0f0907df6264554e82e5c6e0b8128e1437e09aa349ee9ae96b8a1a1ebcefd78260b49092ee1fd + checksum: 2a5967b816553f056c9c9ba90b92fa7b90e7c7ceffc3ebfe0d42e9a5f53f4f8063f07d49e34de6c6faebf6a5f8988e832f05479da843af7234d1d9efe87067eb languageName: node linkType: hard @@ -3547,13 +3547,13 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.1.6": - version: 8.1.6 - resolution: "@storybook/core-events@npm:8.1.6" +"@storybook/core-events@npm:8.1.8": + version: 8.1.8 + resolution: "@storybook/core-events@npm:8.1.8" dependencies: "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: a2655f0f19d9229cff946756332d90b86f84ecc0c7e3fa630b0aa0b0a33c6019a957667ad4a624341ed19a5f4d63281dd4c6b36cc58e579509b7de8d245430fa + checksum: afd25daecbe3c25a043f45dfeb2829f52693f0d7e2f6da05471820c4a0eab3c388c8d5482738c013650222fbb34405801b8b296b78ac909cc3dfd3058be4630c languageName: node linkType: hard From de8dd1f4679a238828ee8fa1f3c90f1687f3ba6c Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 19 Apr 2024 18:28:02 -0400 Subject: [PATCH 217/471] checkpoint: transformation: added function catalog, added "edit transformation" mode (#78) --- .../components/mapping/FunctionSelector.tsx | 216 ++++++++ .../mapping/MappingDetailsDrawerPanel.tsx | 207 +++++++ .../mapping/TransformationEditor.tsx | 22 + packages/ui/src/layout/MainLayout.tsx | 22 +- .../views/MappingDetailsDrawerPanel.tsx | 134 ----- .../ui/src/layout/views/SourceTargetView.tsx | 50 +- packages/ui/src/layout/views/index.ts | 2 +- packages/ui/src/models/document.ts | 11 +- packages/ui/src/models/mapping.ts | 35 +- packages/ui/src/models/types.ts | 29 + .../services/xml-schema-document.service.ts | 8 +- .../xpath/2.0/xpath-2.0-functions-boolean.ts | 24 + .../xpath/2.0/xpath-2.0-functions-context.ts | 64 +++ .../xpath/2.0/xpath-2.0-functions-datetime.ts | 248 +++++++++ .../xpath/2.0/xpath-2.0-functions-node.ts | 79 +++ .../xpath/2.0/xpath-2.0-functions-numeric.ts | 63 +++ .../xpath/2.0/xpath-2.0-functions-qname.ts | 117 ++++ .../xpath/2.0/xpath-2.0-functions-sequence.ts | 518 ++++++++++++++++++ .../xpath/2.0/xpath-2.0-functions-string.ts | 402 ++++++++++++++ .../services/xpath/2.0/xpath-2.0-functions.ts | 28 + .../xpath/{ => 2.0}/xpath-2.0-parser.ts | 2 +- .../services/xpath/xpath-parser.service.ts | 11 +- .../ui/src/services/xpath/xpath-parser.ts | 13 + packages/xml-schema-ts/src/constants.ts | 1 + 24 files changed, 2125 insertions(+), 181 deletions(-) create mode 100644 packages/ui/src/components/mapping/FunctionSelector.tsx create mode 100644 packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx create mode 100644 packages/ui/src/components/mapping/TransformationEditor.tsx delete mode 100644 packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx create mode 100644 packages/ui/src/models/types.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts create mode 100644 packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts rename packages/ui/src/services/xpath/{ => 2.0}/xpath-2.0-parser.ts (99%) diff --git a/packages/ui/src/components/mapping/FunctionSelector.tsx b/packages/ui/src/components/mapping/FunctionSelector.tsx new file mode 100644 index 000000000..b6bb58dfc --- /dev/null +++ b/packages/ui/src/components/mapping/FunctionSelector.tsx @@ -0,0 +1,216 @@ +import { + Button, + MenuToggle, + MenuToggleElement, + Select, + SelectList, + SelectOption, + SelectOptionProps, + TextInputGroup, + TextInputGroupMain, + TextInputGroupUtilities, +} from '@patternfly/react-core'; +import { TimesIcon } from '@patternfly/react-icons'; +import { useEffect, useRef, useState } from 'react'; + +const initialSelectOptions: SelectOptionProps[] = [ + { value: 'Alabama', children: 'Alabama' }, + { value: 'Florida', children: 'Florida' }, + { value: 'New Jersey', children: 'New Jersey' }, + { value: 'New Mexico', children: 'New Mexico' }, + { value: 'New York', children: 'New York' }, + { value: 'North Carolina', children: 'North Carolina' }, +]; + +export const FunctionSelector = () => { + const [isOpen, setIsOpen] = useState(false); + const [selected, setSelected] = useState(''); + const [inputValue, setInputValue] = useState(''); + const [filterValue, setFilterValue] = useState(''); + const [selectOptions, setSelectOptions] = useState(initialSelectOptions); + const [focusedItemIndex, setFocusedItemIndex] = useState(null); + const [activeItem, setActiveItem] = useState(null); + const textInputRef = useRef(); + + useEffect(() => { + let newSelectOptions: SelectOptionProps[] = initialSelectOptions; + + // Filter menu items based on the text input value when one exists + if (filterValue) { + newSelectOptions = initialSelectOptions.filter((menuItem) => + String(menuItem.children).toLowerCase().includes(filterValue.toLowerCase()), + ); + + // When no options are found after filtering, display 'No results found' + if (!newSelectOptions.length) { + newSelectOptions = [ + { isDisabled: false, children: `No results found for "${filterValue}"`, value: 'no results' }, + ]; + } + + // Open the menu when the input value changes and the new value is not empty + if (!isOpen) { + setIsOpen(true); + } + } + + setSelectOptions(newSelectOptions); + setActiveItem(null); + setFocusedItemIndex(null); + }, [filterValue, isOpen]); + + const onToggleClick = () => { + setIsOpen(!isOpen); + }; + + const onSelect = (_event: React.MouseEvent | undefined, value: string | number | undefined) => { + // eslint-disable-next-line no-console + console.log('selected', value); + + if (value && value !== 'no results') { + setInputValue(value as string); + setFilterValue(''); + setSelected(value as string); + } + setIsOpen(false); + setFocusedItemIndex(null); + setActiveItem(null); + }; + + const onTextInputChange = (_event: React.FormEvent, value: string) => { + setInputValue(value); + setFilterValue(value); + }; + + const handleMenuArrowKeys = (key: string) => { + let indexToFocus = -1; + + if (isOpen) { + if (key === 'ArrowUp') { + // When no index is set or at the first index, focus to the last, otherwise decrement focus index + if (focusedItemIndex === null || focusedItemIndex === 0) { + indexToFocus = selectOptions.length - 1; + } else { + indexToFocus = focusedItemIndex - 1; + } + } + + if (key === 'ArrowDown') { + // When no index is set or at the last index, focus to the first, otherwise increment focus index + if (focusedItemIndex === null || focusedItemIndex === selectOptions.length - 1) { + indexToFocus = 0; + } else { + indexToFocus = focusedItemIndex + 1; + } + } + + setFocusedItemIndex(indexToFocus); + const focusedItem = selectOptions.filter((option) => !option.isDisabled)[indexToFocus]; + setActiveItem(`select-typeahead-${focusedItem.value.replace(' ', '-')}`); + } + }; + + const onInputKeyDown = (event: React.KeyboardEvent) => { + const enabledMenuItems = selectOptions.filter((option) => !option.isDisabled); + const [firstMenuItem] = enabledMenuItems; + const focusedItem = focusedItemIndex ? enabledMenuItems[focusedItemIndex] : firstMenuItem; + + switch (event.key) { + // Select the first available option + case 'Enter': + if (isOpen && focusedItem.value !== 'no results') { + setInputValue(String(focusedItem.children)); + setFilterValue(''); + setSelected(String(focusedItem.children)); + } + + setIsOpen((prevIsOpen) => !prevIsOpen); + setFocusedItemIndex(null); + setActiveItem(null); + + break; + case 'Tab': + case 'Escape': + setIsOpen(false); + setActiveItem(null); + break; + case 'ArrowUp': + case 'ArrowDown': + event.preventDefault(); + handleMenuArrowKeys(event.key); + break; + } + }; + + const toggle = (toggleRef: React.Ref) => ( + + + + + + {!!inputValue && ( + + )} + + + + ); + + return ( + + ); +}; diff --git a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx new file mode 100644 index 000000000..b973bac81 --- /dev/null +++ b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx @@ -0,0 +1,207 @@ +import { FunctionComponent, useCallback, useMemo, useState } from 'react'; +import { useDataMapper } from '../../hooks'; +import { + ActionList, + ActionListItem, + Button, + Card, + CardBody, + CardHeader, + CardTitle, + DrawerActions, + DrawerCloseButton, + DrawerHead, + DrawerPanelContent, + Stack, + StackItem, + Text, + TextContent, + TextInput, + TextVariants, + Tooltip, +} from '@patternfly/react-core'; +import { IField } from '../../models'; +import { DeleteMappingButton } from './DeleteMappingButton'; +import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table'; +import { PenIcon, SaveIcon, TimesIcon } from '@patternfly/react-icons'; +import { TransformationEditor } from './TransformationEditor'; + +type FieldDetailsProps = { + field: IField; +}; + +const FieldDetails: FunctionComponent = ({ field }) => { + return ( + + + + + + + + + + + + + + + {field.defaultValue && ( + + + + + )} + + + + + + + + + +
    name{field.name}
    type{field.type}
    path{field.fieldIdentifier.toString()}
    defaultValue{field.defaultValue}
    minOccurs{field.minOccurs}
    maxOccurs{field.maxOccurs}
    + ); +}; + +type MappingDetailsDrawerPanelProps = { + onToggleEditMode: (isEditMode: boolean) => void; +}; + +export const MappingDetailsDrawerPanel: FunctionComponent = ({ onToggleEditMode }) => { + const { selectedMapping, setSelectedMapping } = useDataMapper(); + const [isEditMode, setEditMode] = useState(false); + + const handleToggleEditMode = useCallback( + (isEditMode: boolean) => { + setEditMode(isEditMode); + onToggleEditMode(isEditMode); + }, + [onToggleEditMode], + ); + + const handleSaveTransformation = useCallback(() => { + handleToggleEditMode(false); + }, [handleToggleEditMode]); + + const handleCancelEditTransformation = useCallback(() => { + handleToggleEditMode(false); + }, [handleToggleEditMode]); + + const headerActions = useMemo(() => { + return ( + + {isEditMode ? ( + <> + + Save Transformation
    }> + + + + + Cancel Edit Transformation
    }> + + + + + ) : ( + + Edit Transformation}> + + + + )} + + ); + }, [handleCancelEditTransformation, handleSaveTransformation, handleToggleEditMode, isEditMode]); + + return ( + selectedMapping && ( + + + + Mapping Details{isEditMode && ' / Edit Transformation'} + + + setSelectedMapping(null)} /> + setSelectedMapping(null)} /> + + + {isEditMode ? ( + + + Target Field : {selectedMapping.targetFields[0].fieldIdentifier.toString()} + + + + + + ) : ( + + + + + Source + + + + {selectedMapping.xpath ? ( + + XPath + + + ) : ( + selectedMapping.sourceFields.map((field) => ( + + + + )) + )} + + + + + + + + Target + + + + {selectedMapping.targetFields.map((field) => ( + + + + ))} + + + + + + )} + + ) + ); +}; diff --git a/packages/ui/src/components/mapping/TransformationEditor.tsx b/packages/ui/src/components/mapping/TransformationEditor.tsx new file mode 100644 index 000000000..bbdf1fce9 --- /dev/null +++ b/packages/ui/src/components/mapping/TransformationEditor.tsx @@ -0,0 +1,22 @@ +import { FunctionComponent } from 'react'; +import { FunctionSelector } from './FunctionSelector'; +import { Split, SplitItem, Stack, StackItem } from '@patternfly/react-core'; + +type TransformationEditorProps = { + name: string; +}; + +export const TransformationEditor: FunctionComponent = ({ name }) => { + return ( + + + + Wrap with a function call: + + + + + + + ); +}; diff --git a/packages/ui/src/layout/MainLayout.tsx b/packages/ui/src/layout/MainLayout.tsx index 67e9f1ae8..3ef7b93f9 100644 --- a/packages/ui/src/layout/MainLayout.tsx +++ b/packages/ui/src/layout/MainLayout.tsx @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, memo, useContext, useMemo } from 'react'; +import { FunctionComponent, memo, useCallback, useContext, useMemo, useState } from 'react'; import { Drawer, DrawerContent, @@ -30,6 +30,7 @@ import { CanvasView } from '../models'; import { ContextToolbar } from './ContextToolbar'; import { useDataMapper } from '../hooks'; import './MainLayout.scss'; +import { useCanvas } from '../hooks/useCanvas'; export interface IMainLayoutProps { showSidebar: boolean; @@ -37,16 +38,26 @@ export interface IMainLayoutProps { export const MainLayout: FunctionComponent = memo(function MainLayout() { const { selectedMapping } = useDataMapper(); + const [isEditMode, setEditMode] = useState(false); + const { reloadNodeReferences } = useCanvas(); const { activeView } = useContext(DataMapperContext)!; const currentView = useMemo(() => { switch (activeView) { case CanvasView.SOURCE_TARGET: - return ; + return ; default: return <>View {activeView} is not supported; } - }, [activeView]); + }, [activeView, isEditMode]); + + const handleToggleEditMode = useCallback( + (isEditMode: boolean) => { + setEditMode(isEditMode); + setTimeout(() => reloadNodeReferences(), 200); + }, + [reloadNodeReferences], + ); const header = ( @@ -60,7 +71,10 @@ export const MainLayout: FunctionComponent = memo(function Mai - } className="main-layout__drawer-content"> + } + className="main-layout__drawer-content" + > {currentView} diff --git a/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx b/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx deleted file mode 100644 index 4a9ce4d70..000000000 --- a/packages/ui/src/layout/views/MappingDetailsDrawerPanel.tsx +++ /dev/null @@ -1,134 +0,0 @@ -import { FunctionComponent, useMemo } from 'react'; -import { useDataMapper } from '../../hooks'; -import { - ActionList, - ActionListItem, - Card, - CardBody, - CardHeader, - CardTitle, - DrawerActions, - DrawerCloseButton, - DrawerHead, - DrawerPanelContent, - Stack, - StackItem, - Text, - TextContent, - TextInput, - TextVariants, -} from '@patternfly/react-core'; -import { IField } from '../../models'; -import { DeleteMappingButton } from '../../components/mapping/DeleteMappingButton'; -import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table'; -import { EditXPathButton } from '../../components/mapping/EditXPathButton'; - -type FieldDetailsProps = { - field: IField; -}; - -const FieldDetails: FunctionComponent = ({ field }) => { - return ( - - - - - - - - - - - - - - - {field.defaultValue && ( - - - - - )} - - - - - - - - - -
    name{field.name}
    type{field.type}
    path{field.fieldIdentifier.toString()}
    defaultValue{field.defaultValue}
    minOccurs{field.minOccurs}
    maxOccurs{field.maxOccurs}
    - ); -}; - -export const MappingDetailsDrawerPanel: FunctionComponent = () => { - const { selectedMapping, setSelectedMapping } = useDataMapper(); - - const headerActions = useMemo(() => { - return ( - - - - - - ); - }, [selectedMapping]); - - return ( - selectedMapping && ( - - - - Mapping Details - - - setSelectedMapping(null)} /> - setSelectedMapping(null)} /> - - - - - - - Source - - - - {selectedMapping.xpath ? ( - - XPath - - - ) : ( - selectedMapping.sourceFields.map((field) => ( - - - - )) - )} - - - - - - - - Target - - - - {selectedMapping.targetFields.map((field) => ( - - - - ))} - - - - - - - ) - ); -}; diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx index e9d431ee9..a3b69ba2b 100644 --- a/packages/ui/src/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -19,13 +19,17 @@ import { Parameters } from '../../components/document/Parameters'; import './SourceTargetView.scss'; import { useCanvas } from '../../hooks/useCanvas'; -export const SourceTargetView: FunctionComponent = () => { +type SourceTargetViewProps = { + isSourceOnly: boolean; +}; + +export const SourceTargetView: FunctionComponent = ({ isSourceOnly }) => { const { sourceBodyDocument, targetBodyDocument } = useDataMapper(); const { reloadNodeReferences } = useCanvas(); return ( - + {!isSourceOnly && } @@ -46,25 +50,29 @@ export const SourceTargetView: FunctionComponent = () => { - -   - - - - - - Target - - - - - - - - - - - + {!isSourceOnly && ( + <> + +   + + + + + + Target + + + + + + + + + + + + + )} ); }; diff --git a/packages/ui/src/layout/views/index.ts b/packages/ui/src/layout/views/index.ts index fa873e5f9..6f89e763b 100644 --- a/packages/ui/src/layout/views/index.ts +++ b/packages/ui/src/layout/views/index.ts @@ -1,2 +1,2 @@ -export * from './MappingDetailsDrawerPanel'; +export * from '../../components/mapping/MappingDetailsDrawerPanel'; export * from './SourceTargetView'; diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index f9514f73e..a49287bc1 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,3 +1,5 @@ +import { Types } from './types'; + export const DEFAULT_MIN_OCCURS = 0; export const DEFAULT_MAX_OCCURS = 1; @@ -16,7 +18,7 @@ export interface IField { fieldIdentifier: FieldIdentifier; name: string; expression: string; - type: string; + type: Types; fields: IField[]; isAttribute: boolean; defaultValue: string | null; @@ -30,7 +32,7 @@ export interface IDocument { documentId: string; fieldIdentifier: FieldIdentifier; name: string; - type: string; + schemaType: string; fields: IField[]; namespaces?: INamespace[]; } @@ -40,7 +42,7 @@ export abstract class BaseDocument implements IDocument { documentId: string = ''; fields: IField[] = []; name: string = ''; - type: string = ''; + schemaType = ''; get fieldIdentifier(): FieldIdentifier { return new FieldIdentifier(`${this.documentType}:${this.documentId}://`); } @@ -55,6 +57,7 @@ export class PrimitiveDocument extends BaseDocument implements IField { minOccurs: number = 0; namespaceURI: string | null = null; parent: IParentType = this; + type = Types.AnyType; constructor( public documentType: DocumentType, @@ -74,7 +77,7 @@ export abstract class BaseField implements IField { isAttribute: boolean = false; name: string = ''; expression: string = ''; - type: string = ''; + type = Types.AnyType; minOccurs: number = DEFAULT_MIN_OCCURS; maxOccurs: number = DEFAULT_MAX_OCCURS; defaultValue: string | null = null; diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 8faea26c6..b68d3a409 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -1,8 +1,29 @@ -import { generateRandomId } from '../util'; import { IField } from './document'; +import { Types } from './types'; -export interface ITransformation { +export interface IFunctionArgumentDefinition { name: string; + type: Types; + displayName: string; + description: string; + minOccurs: number; + maxOccurs: number; +} + +export interface IFunctionDefinition { + name: string; + displayName: string; + description: string; + returnType: Types; + returnCollection?: boolean; + arguments: IFunctionArgumentDefinition[]; +} + +export type ITransformationArgument = ITransformation | IField | string | number; + +export interface ITransformation { + ref: IFunctionDefinition; + arguments: ITransformationArgument[]; } export interface IMapping { @@ -10,14 +31,6 @@ export interface IMapping { name: string; sourceFields: IField[]; targetFields: IField[]; - transformations: ITransformation[]; + transformation?: ITransformation; xpath?: string; } - -export class Mapping implements IMapping { - id: string = generateRandomId('mapping'); - name: string = ''; - sourceFields: IField[] = []; - targetFields: IField[] = []; - transformations: ITransformation[] = []; -} diff --git a/packages/ui/src/models/types.ts b/packages/ui/src/models/types.ts new file mode 100644 index 000000000..cc47749f5 --- /dev/null +++ b/packages/ui/src/models/types.ts @@ -0,0 +1,29 @@ +/** + * The data types mapped from XML Schema +. + */ +export enum Types { + AnyAtomicType = 'anyAtomicType', + AnyType = 'anyType', + AnyURI = 'anyURI', + String = 'string', + Float = 'float', + Double = 'double', + Integer = 'integer', + Decimal = 'decimal', + Boolean = 'boolean', + Date = 'date', + DateTime = 'dateTime', + Time = 'time', + QName = 'QName', + Duration = 'duration', + DayTimeDuration = 'dayTimeDuration', + NCName = 'NCName', + // not XSD predefined but appear in XPath function signature + Numeric = 'numeric', + Item = 'item()', + Element = 'element()', + Node = 'node()', + DocumentNode = 'document-node()', + // custom types + Container = 'Container', +} diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 4d70c15eb..329498a19 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -25,6 +25,7 @@ import { XmlSchemaUse, } from '@datamapper-poc/xml-schema-ts'; import { BaseDocument, BaseField, DocumentType, FieldIdentifier } from '../models'; +import { Types } from '../models/types'; export class XmlSchemaDocument extends BaseDocument { rootElement: XmlSchemaElement; @@ -38,7 +39,7 @@ export class XmlSchemaDocument extends BaseDocument { // TODO let user choose the root element from top level elements if there're multiple this.rootElement = XmlSchemaDocumentService.getFirstElement(this.xmlSchema); XmlSchemaDocumentService.populateElement(this, this.fields, this.rootElement); - this.type = 'XML'; + this.schemaType = 'XML'; } } @@ -116,10 +117,11 @@ export class XmlSchemaDocumentService { const schemaType = element.getSchemaType(); if (schemaType == null) { - field.type = element.getSchemaTypeName()?.getLocalPart() || 'string'; + const typeName = element.getSchemaTypeName()?.getLocalPart(); + field.type = (typeName && Types[typeName as keyof typeof Types]) || Types.AnyType; return; } - field.type = 'container'; + field.type = Types.Container; if (schemaType instanceof XmlSchemaSimpleType) { XmlSchemaDocumentService.throwNotYetSupported(element); } else if (schemaType instanceof XmlSchemaComplexType) { diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts new file mode 100644 index 000000000..40e1700a8 --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts @@ -0,0 +1,24 @@ +import { Types } from '../../../models/types'; +import { IFunctionDefinition } from '../../../models'; + +/** + * 9.3 Boolean - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#boolean-value-functions + */ +export const booleanFunctions = [ + { + name: 'not', + displayName: 'Not', + description: 'Inverts the xs:boolean value of the argument.', + returnType: Types.Boolean, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, +] as IFunctionDefinition[]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts new file mode 100644 index 000000000..fcdff6a49 --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts @@ -0,0 +1,64 @@ +import { IFunctionDefinition } from '../../../models'; +import { Types } from '../../../models/types'; + +/** + * 16 Context - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#context + */ +export const contextFunctions = [ + { + name: 'position', + displayName: 'Position', + description: 'Returns the position of the context item within the sequence of items currently being processed.', + returnType: Types.Integer, + arguments: [], + }, + { + name: 'last', + displayName: 'Last', + description: 'Returns the number of items in the sequence of items currently being processed.', + returnType: Types.Integer, + arguments: [], + }, + { + name: 'current-dateTime', + displayName: 'Current DateTime', + description: 'Returns the current xs:dateTime.', + returnType: Types.DateTime, + arguments: [], + }, + { + name: 'current-date', + displayName: 'Current Date', + description: 'Returns the current xs:date.', + returnType: Types.Date, + arguments: [], + }, + { + name: 'current-time', + displayName: 'Current Time', + description: 'Returns the current xs:time.', + returnType: Types.Time, + arguments: [], + }, + { + name: 'implicit-timezone', + displayName: 'Implicit Timezone', + description: 'Returns the value of the implicit timezone property from the dynamic context.', + returnType: Types.DayTimeDuration, + arguments: [], + }, + { + name: 'default-collation', + displayName: 'Default Collation', + description: 'Returns the value of the default collation property from the static context.', + returnType: Types.String, + arguments: [], + }, + { + name: 'static-base-uri', + displayName: 'Static Base URI', + description: 'Returns the value of the Base URI property from the static context.', + returnType: Types.AnyURI, + arguments: [], + }, +] as IFunctionDefinition[]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts new file mode 100644 index 000000000..6398848da --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts @@ -0,0 +1,248 @@ +import { Types } from '../../../models/types'; +import { IFunctionDefinition } from '../../../models'; + +/** + * 10. Date and Time - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#durations-dates-times + */ +export const dateAndTimeFunctions = [ + { + name: 'years-from-duration', + displayName: 'Years From Duration', + description: 'Returns the year component of an xs:duration value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Duration, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'months-from-duration', + displayName: 'Months From Duration', + description: 'Returns the months component of an xs:duration value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Duration, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'days-from-duration', + displayName: 'Days From Duration', + description: 'Returns the days component of an xs:duration value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Duration, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'hours-from-duration', + displayName: 'Hours From Duration', + description: 'Returns the hours component of an xs:duration value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Duration, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'minutes-from-duration', + displayName: 'Minutes From Duration', + description: 'Returns the minutes component of an xs:duration value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Duration, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'seconds-from-duration', + displayName: 'Seconds From Duration', + description: 'Returns the seconds component of an xs:duration value.', + returnType: Types.Decimal, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Duration, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'year-from-dateTime', + displayName: 'Year From Date Time', + description: 'Returns the year from an xs:dateTime value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.DateTime, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'month-from-dateTime', + displayName: 'Month From Date Time', + description: 'Returns the month from an xs:dateTime value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.DateTime, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'day-from-dateTime', + displayName: 'Day From Date Time', + description: 'Returns the day from an xs:dateTime value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.DateTime, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'hours-from-dateTime', + displayName: 'Hours From Date Time', + description: 'Returns the hours from an xs:dateTime value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.DateTime, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'minutes-from-dateTime', + displayName: 'Minutes From Date Time', + description: 'Returns the minutes from an xs:dateTime value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.DateTime, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'seconds-from-dateTime', + displayName: 'Seconds From Date Time', + description: 'Returns the seconds from an xs:dateTime value.', + returnType: Types.Decimal, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Decimal, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'timezone-from-dateTime', + displayName: 'Timezone From Date Time', + description: 'Returns the timezone from an xs:dateTime value.', + returnType: Types.DayTimeDuration, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.DateTime, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'year-from-date', + displayName: 'Year From Date', + description: 'Returns the year from an xs:date value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Date, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'month-from-date', + displayName: 'Month From Date', + description: 'Returns the month from an xs:date value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Date, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'day-from-date', + displayName: 'Day From Date', + description: 'Returns the day from an xs:date value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Date, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'timezone-from-date', + displayName: 'Timezone From Date', + description: 'Returns the timezone from an xs:date value.', + returnType: Types.DayTimeDuration, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Date, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'hours-from-time', + displayName: 'Hours From Time', + description: 'Returns the hours from an xs:time value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Time, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'minutes-from-time', + displayName: 'Minutes From Time', + description: 'Returns the minutes from an xs:time value.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Time, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'seconds-from-time', + displayName: 'Seconds From Time', + description: 'Returns the seconds from an xs:time value.', + returnType: Types.Decimal, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Time, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'timezone-from-time', + displayName: 'Timezone From Time', + description: 'Returns the timezone from an xs:time value.', + returnType: Types.DayTimeDuration, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Time, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'adjust-dateTime-to-timezone', + displayName: 'Adjust DateTime to Timezone', + description: 'Adjusts an xs:dateTime value to a specific timezone, or to no timezone at all.', + returnType: Types.DateTime, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.DateTime, minOccurs: 1, maxOccurs: 1 }, + { + name: 'timezone', + displayName: '$timezone', + description: '$timezone', + type: Types.DayTimeDuration, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'adjust-date-to-timezone', + displayName: 'Adjust Date to Timezone', + description: 'Adjusts an xs:date value to a specific timezone, or to no timezone at all.', + returnType: Types.Date, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Date, minOccurs: 1, maxOccurs: 1 }, + { + name: 'timezone', + displayName: '$timezone', + description: '$timezone', + type: Types.DayTimeDuration, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'adjust-time-to-timezone', + displayName: 'Adjust Time to Timezone', + description: 'Adjusts an xs:time value to a specific timezone, or to no timezone at all.', + returnType: Types.Time, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Time, minOccurs: 1, maxOccurs: 1 }, + { + name: 'timezone', + displayName: '$timezone', + description: '$timezone', + type: Types.DayTimeDuration, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, +] as IFunctionDefinition[]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts new file mode 100644 index 000000000..9b5b19414 --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts @@ -0,0 +1,79 @@ +import { Types } from '../../../models/types'; +import { IFunctionDefinition } from '../../../models'; + +/** + * 14 Node - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#node-functions + */ +export const nodeFunctions = [ + { + name: 'name', + displayName: 'Name', + description: 'Returns the name of the context node or the specified node as an xs:string.', + returnType: Types.String, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Node, minOccurs: 0, maxOccurs: 1 }, + ], + }, + { + name: 'local-name', + displayName: 'Local Name', + description: 'Returns the local name of the context node or the specified node as an xs:NCName.', + }, + { + name: 'namespace-uri', + displayName: 'Namespace URI', + description: + 'Returns the namespace URI as an xs:anyURI for the xs:QName of the argument node or the context node if' + + ' the argument is omitted. This may be the URI corresponding to the zero-length string if the xs:QName' + + ' is in no namespace.', + returnType: Types.String, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Node, minOccurs: 0, maxOccurs: 1 }, + ], + }, + { + name: 'number', + displayName: 'Number', + description: + 'Returns the value of the context item after atomization or the specified argument converted to an xs:double.', + returnType: Types.Double, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.AnyAtomicType, minOccurs: 0, maxOccurs: 1 }, + ], + }, + { + name: 'lang', + displayName: 'Lang', + description: + 'Returns true or false, depending on whether the language of the given node or the context node, as defined' + + ' using the xml:lang attribute, is the same as, or a sublanguage of, the language specified by the argument.', + returnType: Types.Boolean, + arguments: [ + { + name: 'testlarg', + displayName: '$testlang', + description: '$testlang', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'node', + displayName: '$node', + description: '$node', + type: Types.Node, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'root', + displayName: 'Root', + description: 'Returns the root of the tree to which the node argument belongs.', + returnType: Types.Node, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.Node, minOccurs: 0, maxOccurs: 1 }, + ], + }, +] as IFunctionDefinition[]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts new file mode 100644 index 000000000..f2ec5fe3e --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts @@ -0,0 +1,63 @@ +import { Types } from '../../../models/types'; + +/** + * 6.4 Numeric - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#numeric-value-functions + */ +export const numericFunctions = [ + { + name: 'abs', + displayName: 'Absolute', + description: 'Returns the absolute value of the argument.', + returnType: Types.Numeric, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.Numeric, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'ceiling', + displayName: 'Ceiling', + description: 'Returns the smallest number with no fractional part that is greater than or equal to the argument.', + returnType: Types.Numeric, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.Numeric, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'floor', + displayName: 'Floor', + group: 'Numeric', + description: 'Returns the largest number with no fractional part that is less than or equal to the argument.', + returnType: Types.Numeric, + arguments: [ + { name: 'arg', displayName: 'arg', description: 'Argument', type: Types.Numeric, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'round', + displayName: 'Round', + description: 'Rounds to the nearest number with no fractional part.', + returnType: Types.Numeric, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.Numeric, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'round-half-to-even', + displayName: 'Round Half To Even', + description: + 'Takes a number and a precision and returns a number rounded to the given precision. If the fractional part' + + ' is exactly half, the result is the number whose least significant digit is even.', + returnType: Types.Numeric, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.Numeric, minOccurs: 1, maxOccurs: 1 }, + { + name: 'precision', + displayName: 'Precision', + description: 'Precision', + type: Types.Integer, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, +]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts new file mode 100644 index 000000000..b5413a605 --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts @@ -0,0 +1,117 @@ +import { Types } from '../../../models/types'; +import { IFunctionDefinition } from '../../../models'; + +/** + * 11 QName - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#QName-funcs + */ +export const qnameFunctions = [ + { + name: 'resolve-QName', + displayName: 'Resolve QName', + description: + 'Returns an xs:QName with the lexical form given in the first argument. The prefix is resolved using the' + + ' in-scope namespaces for a given element.', + returnType: Types.QName, + arguments: [ + { name: 'qname', displayName: '$qname', description: '$qname', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'QName', + displayName: 'QName', + description: + 'Returns an xs:QName with the namespace URI given in the first argument and the local name and prefix in' + + ' the second argument.', + returnType: Types.QName, + arguments: [ + { + name: 'paramURI', + displayName: '$paramURI', + description: '$paramURI', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'paramQName', + displayName: '$paramQName', + description: '$paramQName', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + ], + }, + { + name: 'prefix-from-QName', + displayName: 'Prefix From QName', + description: 'Returns an xs:NCName representing the prefix of the xs:QName argument.', + returnType: Types.NCName, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.QName, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'local-name-from-QName', + displayName: 'Local Name From QName', + description: 'Returns an xs:NCName representing the local name of the xs:QName argument.', + returnType: Types.NCName, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.QName, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'namespace-uri--from-QName', + displayName: 'Namespace URI From QName', + description: + 'Returns the namespace URI for the xs:QName argument. If the xs:QName is in no namespace, the zero-length' + + ' string is returned.', + returnType: Types.AnyURI, + arguments: [ + { name: 'arg', displayName: '$arg', description: '$arg', type: Types.QName, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'namespace-uri-for-prefix', + displayName: 'Namespace URI For Prefix', + description: + 'Returns the namespace URI of one of the in-scope namespaces for the given element,' + + ' identified by its namespace prefix.', + returnType: Types.AnyURI, + arguments: [ + { + name: 'prefix', + displayName: '$prefix', + description: '$prefix', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'element', + displayName: '$element', + description: '$element', + type: Types.Element, + minOccurs: 1, + maxOccurs: 1, + }, + ], + }, + { + name: 'in-scope-prefixes', + displayName: 'In Scope Prefixes', + description: 'Returns the prefixes of the in-scope namespaces for the given element.', + returnType: Types.String, + returnCollection: true, + arguments: [ + { + name: 'element', + displayName: '$element', + description: '$element', + type: Types.Element, + minOccurs: 1, + maxOccurs: 1, + }, + ], + }, +] as IFunctionDefinition[]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts new file mode 100644 index 000000000..1ce80983d --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts @@ -0,0 +1,518 @@ +import { Types } from '../../../models/types'; +import { IFunctionDefinition } from '../../../models'; + +/** + * 15 Sequence - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#sequence-functions + */ +export const sequenceFunctions = [ + { + name: 'boolean', + displayName: 'Boolean', + description: 'Computes the effective boolean value of the argument sequence.', + returnType: Types.Boolean, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'index-of', + displayName: 'Index Of', + description: + 'Returns a sequence of xs:integers, each of which is the index of a member of the sequence specified as' + + ' the first argument that is equal to the value of the second argument. If no members of the specified' + + ' sequence are equal to the value of the second argument, the empty sequence is returned.', + returnType: Types.Integer, + returnCollection: true, + arguments: [ + { + name: 'seqParam', + displayName: '$seqParam', + description: '$seqParam', + type: Types.AnyAtomicType, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'srchParam', + displayName: '$srchParam', + description: '$srchParam', + type: Types.AnyAtomicType, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'collation', + displayName: '$collation', + description: '$collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'empty', + displayName: 'Empty', + description: 'Indicates whether or not the provided sequence is empty.', + returnType: Types.Boolean, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'exists', + displayName: 'Exists', + description: 'Indicates whether or not the provided sequence is not empty.', + returnType: Types.Boolean, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'distinct-values', + displayName: 'Distinct Values', + description: + 'Returns a sequence in which all but one of a set of duplicate values, based on value equality, have been' + + ' deleted. The order in which the distinct values are returned is implementation dependent.', + returnType: Types.AnyAtomicType, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.AnyAtomicType, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'collation', + displayName: '$collation', + description: '$collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'insert-before', + displayName: 'Insert Before', + description: 'Inserts an item or sequence of items at a specified position in a sequence.', + returnType: Types.Item, + returnCollection: true, + arguments: [ + { + name: 'target', + displayName: '$target', + description: '$target', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'position', + displayName: '$position', + description: '$position', + type: Types.Integer, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'inserts', + displayName: '$inserts', + description: '$inserts', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'remove', + displayName: 'Remove', + description: 'Removes an item from a specified position in a sequence.', + returnType: Types.Item, + returnCollection: true, + arguments: [ + { + name: 'target', + displayName: '$target', + description: '$target', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'position', + displayName: '$position', + description: '$position', + type: Types.Integer, + minOccurs: 1, + maxOccurs: 1, + }, + ], + }, + { + name: 'reverse', + displayName: 'Reverse', + description: 'Reverses the order of items in a sequence.', + returnType: Types.Item, + returnCollection: true, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'subsequence', + displayName: 'Subsequence', + description: 'Returns the subsequence of a given sequence, identified by location.', + returnType: Types.Item, + returnCollection: true, + arguments: [ + { + name: 'sourceSeq', + displayName: '$sourceSeq', + description: '$sourceSeq', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'startingLoc', + displayName: '$startingLoc', + description: '$startingLoc', + type: Types.Double, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'length', + displayName: '$length', + description: '$length', + type: Types.Double, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'unordered', + displayName: 'Unordered', + description: 'Returns the items in the given sequence in a non-deterministic order.', + returnType: Types.Item, + returnCollection: true, + arguments: [ + { + name: 'sourceSeq', + displayName: '$sourceSeq', + description: '$sourceSeq', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'zero-or-one', + displayName: 'Zero Or One', + description: 'Returns the input sequence if it contains zero or one items. Raises an error otherwise.', + returnType: Types.Item, + returnCollection: true, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'one-or-more', + displayName: 'One Or More', + description: 'Returns the input sequence if it contains one or more items. Raises an error otherwise.', + returnType: Types.Item, + returnCollection: true, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'exactly-one', + displayName: 'Exactly One', + description: 'Returns the input sequence if it contains exactly one item. Raises an error otherwise.', + returnType: Types.Item, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'deep-equal', + displayName: 'Deep Equal', + description: 'Returns true if the two arguments have items that compare equal in corresponding positions.', + returnType: Types.Boolean, + arguments: [ + { + name: 'parameter1', + displayName: '$parameter1', + description: 'parameter1', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'parameter2', + displayName: '$parameter2', + description: 'parameter2', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'collation', + displayName: '$collation', + description: 'collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'count', + displayName: 'Count', + description: 'Returns the number of items in a sequence.', + returnType: Types.Integer, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.Item, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'avg', + displayName: 'Average', + description: 'Returns the average of a sequence of values.', + returnType: Types.AnyAtomicType, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.AnyAtomicType, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'max', + displayName: 'Maximum', + description: 'Returns the maximum value from a sequence of comparable values.', + returnType: Types.AnyAtomicType, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.AnyAtomicType, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'collation', + displayName: '$collation', + description: 'collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'min', + displayName: 'Minimum', + description: 'Returns the minimum value from a sequence of comparable values.', + returnType: Types.AnyAtomicType, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.AnyAtomicType, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'collation', + displayName: '$collation', + description: 'collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'sum', + displayName: 'Sum', + description: 'Returns the sum of a sequence of values.', + returnType: Types.AnyAtomicType, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.AnyAtomicType, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'zero', + displayName: '$zero', + description: 'zero', + type: Types.AnyAtomicType, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'id', + displayName: 'ID', + description: + 'Returns the sequence of element nodes having an ID value matching the one or more of the supplied IDREF values.', + returnType: Types.Element, + returnCollection: true, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.String, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'node', + displayName: '$node', + description: '$node', + type: Types.Node, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'idref', + displayName: 'IDREF', + description: + 'Returns the sequence of element or attribute nodes with an IDREF value matching one or more of the' + + ' supplied ID values.', + returnType: Types.Node, + returnCollection: true, + arguments: [ + { + name: 'arg', + displayName: '$arg', + description: '$arg', + type: Types.String, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'node', + displayName: '$node', + description: '$node', + type: Types.Node, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'doc', + displayName: 'DOC', + description: 'Returns a document node retrieved using the specified URI.', + returnType: Types.DocumentNode, + arguments: [{ name: 'uri', displayName: '$uri', type: Types.String, minOccurs: 1, maxOccurs: 1 }], + }, + { + name: 'doc-available', + displayName: 'DOC available', + description: 'Returns true if a document node can be retrieved using the specified URI.', + returnType: Types.Boolean, + arguments: [{ name: 'uri', displayName: '$uri', type: Types.String, minOccurs: 1, maxOccurs: 1 }], + }, + { + name: 'collection', + displayName: 'Collection', + description: + 'Returns a sequence of nodes retrieved using the specified URI or the nodes in the default collection.', + returnType: Types.Node, + returnCollection: true, + arguments: [{ name: 'arg', displayName: '$arg', type: Types.String, minOccurs: 0, maxOccurs: 1 }], + }, + { + name: 'element-with-id', + displayName: 'Element With ID', + description: + 'Returns the sequence of element nodes that have an ID value matching the value of one or more of the' + + ' IDREF values supplied in $arg.', + returnType: Types.Element, + returnCollection: true, + arguments: [ + { name: 'arg', displayName: '$arg', type: Types.String, minOccurs: 1, maxOccurs: Number.MAX_VALUE }, + { name: 'node', displayName: '$node', type: Types.Node, minOccurs: 0, maxOccurs: 1 }, + ], + }, +] as IFunctionDefinition[]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts new file mode 100644 index 000000000..1faecdbdf --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts @@ -0,0 +1,402 @@ +import { Types } from '../../../models/types'; +import { IFunctionDefinition } from '../../../models'; + +/** + * 7.4 String - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#string-value-functions + */ +export const stringFunctions = [ + { + name: 'concat', + displayName: 'Concatenate', + description: 'Concatenates two or more xs:anyAtomicType arguments cast to xs:string.', + returnType: Types.String, + arguments: [ + { + name: 'args', + displayName: '$args', + description: 'Arguments', + type: Types.AnyAtomicType, + minOccurs: 2, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + ], + }, + { + name: 'string-join', + displayName: 'Concatenate with Delimiter', + description: + 'Returns the xs:string produced by concatenating a sequence of xs:strings using an optional separator.', + returnType: Types.String, + arguments: [ + { + name: 'arg1', + displayName: '$arg1', + description: 'Arguments', + type: Types.String, + minOccurs: 1, + maxOccurs: Number.MAX_SAFE_INTEGER, + }, + { + name: 'arg2', + displayName: '$arg2', + description: 'Separator', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + ], + }, + { + name: 'substring', + displayName: 'Substring', + description: 'Returns the xs:string located at a specified place within an argument xs:string.', + returnType: Types.String, + arguments: [ + { + name: 'sourceString', + displayName: '$sourceString', + description: 'Source String', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'startingLoc', + displayName: '$startingLoc', + description: 'Starting Location', + type: Types.Double, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'length', + displayName: '$length', + description: 'Length', + type: Types.Double, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'string-length', + displayName: 'String Length', + description: 'Returns the length of the argument.', + returnType: Types.Integer, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.String, minOccurs: 0, maxOccurs: 1 }, + ], + }, + { + name: 'normalize-space', + displayName: 'Normalize Space', + description: 'Returns the whitespace-normalized value of the argument.', + returnType: Types.String, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.String, minOccurs: 0, maxOccurs: 1 }, + ], + }, + { + name: 'normalize-unicode', + displayName: 'Normalize Unicode', + description: + 'Returns the normalized value of the first argument in the normalization form specified by the second argument.', + returnType: Types.String, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'normalizationForm', + displayName: '$normalizationForm', + description: 'Normalization Form', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'upper-case', + displayName: 'Uppercase', + description: 'Returns the upper-cased value of the argument.', + returnType: Types.String, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'lower-case', + displayName: 'Lowercase', + description: 'Returns the lower-cased value of the argument.', + returnType: Types.String, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'translate', + displayName: 'Translate', + description: + 'Returns the first xs:string argument with occurrences of characters contained in the second argument' + + ' replaced by the character at the corresponding position in the third argument.', + returnType: Types.String, + arguments: [ + { name: 'arg', displayName: '$arg', description: 'Argument', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'mapString', + displayName: '$mapString', + description: 'Map String', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'transString', + displayName: '$transString', + description: 'Translate String', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + ], + }, + { + name: 'encode-for-uri', + displayName: 'Encode for URI', + description: + 'Returns the xs:string argument with certain characters escaped to enable the resulting string to be used' + + ' as a path segment in a URI.', + returnType: Types.String, + arguments: [ + { + name: 'uri-part', + displayName: '$uri-part', + description: 'An URI part', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + ], + }, + { + name: 'iri-to-uri', + displayName: 'IRI to URI', + description: + 'Returns the xs:string argument with certain characters escaped to enable the resulting string to be used' + + ' as (part of) a URI.', + returnType: Types.String, + arguments: [ + { name: 'iri', displayName: '$iri', description: 'IRI string', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + ], + }, + { + name: 'escape-html-uri', + displayName: 'Escape HTML URI', + description: + 'Returns the xs:string argument with certain characters escaped in the manner that html user agents handle' + + ' attribute values that expect URIs.', + returnType: Types.String, + arguments: [ + { name: 'uri', displayName: '$uri', description: 'URI string', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + ], + }, +] as IFunctionDefinition[]; + +/** + * 7.5 Substring Matching - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#substring.functions + */ +export const substringMatchingFunctions = [ + { + name: 'contains', + displayName: 'Contains', + description: 'Indicates whether one xs:string contains another xs:string. A collation may be specified.', + returnType: Types.Boolean, + arguments: [ + { name: 'arg1', displayName: '$arg1', description: '$arg1', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { name: 'arg2', displayName: '$arg2', description: '$arg2', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'collation', + displayName: '$collation', + description: '$collation', + type: 'xs:string', + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'starts-with', + displayName: 'Starts With', + description: + 'Indicates whether the value of one xs:string begins with the collation units of another xs:string.' + + ' A collation may be specified.', + returnType: Types.Boolean, + arguments: [ + { name: 'arg1', displayName: '$arg1', description: '$arg1', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { name: 'arg2', displayName: '$arg2', description: '$arg2', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'collation', + displayName: '$collation', + description: '$collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'ends-with', + displayName: 'Ends With', + description: + 'Indicates whether the value of one xs:string ends with the collation units of another xs:string.' + + ' A collation may be specified.', + returnType: Types.Boolean, + arguments: [ + { name: 'arg1', displayName: '$arg1', description: '$arg1', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { name: 'arg2', displayName: '$arg2', description: '$arg2', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'collation', + displayName: '$collation', + description: '$collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'substring-before', + displayName: 'Substring Before', + description: + 'Returns the collation units of one xs:string that precede in that xs:string the collation units of another' + + ' xs:string. A collation may be specified.', + returnType: Types.String, + arguments: [ + { name: 'arg1', displayName: '$arg1', description: '$arg1', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { name: 'arg2', displayName: '$arg2', description: '$arg2', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'collation', + displayName: '$collation', + description: '$collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'substring-after', + displayName: 'Substring After', + description: + 'Returns the collation units of xs:string that follow in that xs:string the collation units of another' + + ' xs:string. A collation may be specified.', + returnType: Types.String, + arguments: [ + { name: 'arg1', displayName: '$arg1', description: '$arg1', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { name: 'arg2', displayName: '$arg2', description: '$arg2', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'collation', + displayName: '$collation', + description: '$collation', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, +] as IFunctionDefinition[]; + +/** + * 7.6 Pattern Matching - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#string.match + */ +export const patternMatchingFunctions = [ + { + name: 'matches', + displayName: 'Matches', + description: + 'Returns an xs:boolean value that indicates whether the value of the first argument is matched by the' + + ' regular expression that is the value of the second argument.', + returnType: Types.Boolean, + arguments: [ + { name: 'input', displayName: '$input', description: '$input', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'pattern', + displayName: '$pattern', + description: '$pattern', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'flags', + displayName: '$flags', + description: '$flags', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'replace', + displayName: 'Replace', + description: + 'Returns the value of the first argument with every substring matched by the regular expression that is' + + ' the value of the second argument replaced by the replacement string that is the value of the third argument.', + returnType: Types.String, + arguments: [ + { name: 'input', displayName: '$input', description: '$input', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'pattern', + displayName: '$pattern', + description: '$pattern', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'replacement', + displayName: '$replacement', + description: '$replacement', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'flags', + displayName: '$flags', + description: '$flags', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, + { + name: 'tokenize', + displayName: 'Tokenize', + description: + 'Returns a sequence of one or more xs:strings whose values are substrings of the value of the first argument' + + ' separated by substrings that match the regular expression that is the value of the second argument.', + returnType: Types.String, + returnCollection: true, + arguments: [ + { name: 'input', displayName: '$input', description: '$input', type: Types.String, minOccurs: 1, maxOccurs: 1 }, + { + name: 'pattern', + displayName: '$pattern', + description: '$pattern', + type: Types.String, + minOccurs: 1, + maxOccurs: 1, + }, + { + name: 'flags', + displayName: '$flags', + description: '$flags', + type: Types.String, + minOccurs: 0, + maxOccurs: 1, + }, + ], + }, +] as IFunctionDefinition[]; diff --git a/packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts new file mode 100644 index 000000000..4a764bc74 --- /dev/null +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts @@ -0,0 +1,28 @@ +import { IFunctionDefinition } from '../../../models'; +import { FunctionGroup } from '../xpath-parser'; +import { numericFunctions } from './xpath-2.0-functions-numeric'; +import { patternMatchingFunctions, stringFunctions, substringMatchingFunctions } from './xpath-2.0-functions-string'; +import { dateAndTimeFunctions } from './xpath-2.0-functions-datetime'; +import { booleanFunctions } from './xpath-2.0-functions-boolean'; +import { qnameFunctions } from './xpath-2.0-functions-qname'; +import { nodeFunctions } from './xpath-2.0-functions-node'; +import { sequenceFunctions } from './xpath-2.0-functions-sequence'; +import { contextFunctions } from './xpath-2.0-functions-context'; + +/** + * The XPath 2.0 functions catalog. + * https://www.w3.org/TR/2010/REC-xpath-functions-20101214/ + */ + +export const XPATH_2_0_FUNCTIONS: Record = { + [FunctionGroup.String]: stringFunctions, + [FunctionGroup.SubstringMatching]: substringMatchingFunctions, + [FunctionGroup.PatternMatching]: patternMatchingFunctions, + [FunctionGroup.Numeric]: numericFunctions, + [FunctionGroup.DateAndTime]: dateAndTimeFunctions, + [FunctionGroup.Boolean]: booleanFunctions, + [FunctionGroup.QName]: qnameFunctions, + [FunctionGroup.Node]: nodeFunctions, + [FunctionGroup.Sequence]: sequenceFunctions, + [FunctionGroup.Context]: contextFunctions, +}; diff --git a/packages/ui/src/services/xpath/xpath-2.0-parser.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-parser.ts similarity index 99% rename from packages/ui/src/services/xpath/xpath-2.0-parser.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-parser.ts index 825a8419c..9f48037da 100644 --- a/packages/ui/src/services/xpath/xpath-2.0-parser.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-parser.ts @@ -1,6 +1,6 @@ import { defaultParserErrorProvider, IParserConfig, ITokenConfig, TokenType } from 'chevrotain'; import { createToken as orgCreateToken, CstParser, Lexer } from 'chevrotain'; -import { XPathParser, XPathParserResult } from './xpath-parser'; +import { XPathParser, XPathParserResult } from '../xpath-parser'; const fragments: Record = {}; const f = fragments; diff --git a/packages/ui/src/services/xpath/xpath-parser.service.ts b/packages/ui/src/services/xpath/xpath-parser.service.ts index a797dba2f..d96b0487e 100644 --- a/packages/ui/src/services/xpath/xpath-parser.service.ts +++ b/packages/ui/src/services/xpath/xpath-parser.service.ts @@ -1,10 +1,17 @@ -import { XPath2Parser } from './xpath-2.0-parser'; -import { XPathParserResult } from './xpath-parser'; +import { XPath2Parser } from './2.0/xpath-2.0-parser'; +import { FunctionGroup, XPathParserResult } from './xpath-parser'; +import { IFunctionDefinition } from '../../models'; +import { XPATH_2_0_FUNCTIONS } from './2.0/xpath-2.0-functions'; export class XPathParserService { static parser = new XPath2Parser(); + static functions = XPATH_2_0_FUNCTIONS; static parse(xpath: string): XPathParserResult { return XPathParserService.parser.parseXPath(xpath); } + + static getXPathFunctionDefinitions(): Record { + return XPathParserService.functions; + } } diff --git a/packages/ui/src/services/xpath/xpath-parser.ts b/packages/ui/src/services/xpath/xpath-parser.ts index 28bd70029..07db44e22 100644 --- a/packages/ui/src/services/xpath/xpath-parser.ts +++ b/packages/ui/src/services/xpath/xpath-parser.ts @@ -9,3 +9,16 @@ export interface XPathParserResult { export interface XPathParser { parseXPath(xpath: string): XPathParserResult; } + +export enum FunctionGroup { + String = 'String', + SubstringMatching = 'Substring Matching', + PatternMatching = 'Pattern Matching', + Numeric = 'Numeric', + DateAndTime = 'Date and Time', + Boolean = 'Boolean', + QName = 'QName', + Node = 'Node', + Sequence = 'Sequence', + Context = 'Context', +} diff --git a/packages/xml-schema-ts/src/constants.ts b/packages/xml-schema-ts/src/constants.ts index 93cc911a8..1e580f874 100644 --- a/packages/xml-schema-ts/src/constants.ts +++ b/packages/xml-schema-ts/src/constants.ts @@ -15,6 +15,7 @@ export const XMLNS_ATTRIBUTE_NS_URI = 'http://www.w3.org/2000/xmlns/'; export const XMLNS_PREFIX = 'xml'; export const XMLNS_URI = 'http://www.w3.org/XML/1998/namespace'; export const XSD_ANY = new QName(URI_2001_SCHEMA_XSD, 'any'); +export const XSD_ANYATOMICTYPE = new QName(URI_2001_SCHEMA_XSD, 'anyAtomicType'); export const XSD_ANYSIMPLETYPE = new QName(URI_2001_SCHEMA_XSD, 'anySimpleType'); export const XSD_ANYTYPE = new QName(URI_2001_SCHEMA_XSD, 'anyType'); export const XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, 'anyURI'); From df4f55be8fb7576dd6e8d9451a714b6992114d96 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 22 Apr 2024 12:21:48 -0400 Subject: [PATCH 218/471] checkpoint: feed function catalog to FunctionSelector (#78) --- .../components/mapping/FunctionSelector.tsx | 103 +++++++++++------- 1 file changed, 65 insertions(+), 38 deletions(-) diff --git a/packages/ui/src/components/mapping/FunctionSelector.tsx b/packages/ui/src/components/mapping/FunctionSelector.tsx index b6bb58dfc..e5f71a789 100644 --- a/packages/ui/src/components/mapping/FunctionSelector.tsx +++ b/packages/ui/src/components/mapping/FunctionSelector.tsx @@ -1,8 +1,10 @@ import { Button, + Divider, MenuToggle, MenuToggleElement, Select, + SelectGroup, SelectList, SelectOption, SelectOptionProps, @@ -11,50 +13,53 @@ import { TextInputGroupUtilities, } from '@patternfly/react-core'; import { TimesIcon } from '@patternfly/react-icons'; -import { useEffect, useRef, useState } from 'react'; +import { FunctionComponent, useEffect, useRef, useState } from 'react'; +import { XPathParserService } from '../../services/xpath/xpath-parser.service'; +import { FunctionGroup } from '../../services/xpath/xpath-parser'; +import { IFunctionDefinition } from '../../models'; -const initialSelectOptions: SelectOptionProps[] = [ - { value: 'Alabama', children: 'Alabama' }, - { value: 'Florida', children: 'Florida' }, - { value: 'New Jersey', children: 'New Jersey' }, - { value: 'New Mexico', children: 'New Mexico' }, - { value: 'New York', children: 'New York' }, - { value: 'North Carolina', children: 'North Carolina' }, -]; +const functionCatalog = XPathParserService.getXPathFunctionDefinitions(); export const FunctionSelector = () => { const [isOpen, setIsOpen] = useState(false); const [selected, setSelected] = useState(''); const [inputValue, setInputValue] = useState(''); const [filterValue, setFilterValue] = useState(''); - const [selectOptions, setSelectOptions] = useState(initialSelectOptions); + const [functionOptions, setFunctionOptions] = useState>(functionCatalog); const [focusedItemIndex, setFocusedItemIndex] = useState(null); const [activeItem, setActiveItem] = useState(null); const textInputRef = useRef(); useEffect(() => { - let newSelectOptions: SelectOptionProps[] = initialSelectOptions; - - // Filter menu items based on the text input value when one exists + let newFunctionOptions = functionCatalog; if (filterValue) { - newSelectOptions = initialSelectOptions.filter((menuItem) => - String(menuItem.children).toLowerCase().includes(filterValue.toLowerCase()), + newFunctionOptions = Object.keys(functionCatalog).reduce( + (acc, groupName) => { + const group = groupName as FunctionGroup; + acc[group] = groupName.includes(filterValue) + ? functionCatalog[group] + : functionCatalog[group].reduce((acc2, functionDef) => { + if ( + functionDef.name.includes(filterValue) || + functionDef.displayName.includes(filterValue) || + functionDef.description.includes(filterValue) + ) { + acc2.push(functionDef); + } + return acc2; + }, [] as IFunctionDefinition[]); + return acc; + }, + {} as Record, ); - // When no options are found after filtering, display 'No results found' - if (!newSelectOptions.length) { - newSelectOptions = [ - { isDisabled: false, children: `No results found for "${filterValue}"`, value: 'no results' }, - ]; - } - // Open the menu when the input value changes and the new value is not empty if (!isOpen) { setIsOpen(true); } } - setSelectOptions(newSelectOptions); + setFunctionOptions(newFunctionOptions); setActiveItem(null); setFocusedItemIndex(null); }, [filterValue, isOpen]); @@ -89,7 +94,7 @@ export const FunctionSelector = () => { if (key === 'ArrowUp') { // When no index is set or at the first index, focus to the last, otherwise decrement focus index if (focusedItemIndex === null || focusedItemIndex === 0) { - indexToFocus = selectOptions.length - 1; + indexToFocus = functionOptions.length - 1; } else { indexToFocus = focusedItemIndex - 1; } @@ -97,7 +102,7 @@ export const FunctionSelector = () => { if (key === 'ArrowDown') { // When no index is set or at the last index, focus to the first, otherwise increment focus index - if (focusedItemIndex === null || focusedItemIndex === selectOptions.length - 1) { + if (focusedItemIndex === null || focusedItemIndex === functionOptions.length - 1) { indexToFocus = 0; } else { indexToFocus = focusedItemIndex + 1; @@ -105,13 +110,13 @@ export const FunctionSelector = () => { } setFocusedItemIndex(indexToFocus); - const focusedItem = selectOptions.filter((option) => !option.isDisabled)[indexToFocus]; + const focusedItem = functionOptions.filter((option) => !option.isDisabled)[indexToFocus]; setActiveItem(`select-typeahead-${focusedItem.value.replace(' ', '-')}`); } }; const onInputKeyDown = (event: React.KeyboardEvent) => { - const enabledMenuItems = selectOptions.filter((option) => !option.isDisabled); + const enabledMenuItems = functionOptions.filter((option) => !option.isDisabled); const [firstMenuItem] = enabledMenuItems; const focusedItem = focusedItemIndex ? enabledMenuItems[focusedItemIndex] : firstMenuItem; @@ -187,6 +192,35 @@ export const FunctionSelector = () => { ); + type FunctionSelectGroupProps = { + group: FunctionGroup; + }; + + const FunctionSelectGroup: FunctionComponent = ({ group }) => { + const functions = functionOptions[group]; + return ( + <> + + + {functions.map((func) => ( + setSelected(func.name)} + id={`select-typeahead-${func.name}`} + value={func.name} + ref={null} + description={func.description} + > + {func.displayName} + + ))} + + + + + ); + }; + return ( ); From 6528dcaa6b10111e11642e4cdc57ddd32bc28287 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 30 Apr 2024 08:54:05 -0400 Subject: [PATCH 219/471] checkpoint --- .../mapping/MappingDetailsDrawerPanel.tsx | 4 +- .../mapping/TransformationEditor.tsx | 22 -- .../transformation/ConstantInput.tsx | 35 ++ .../EditXPathButton.tsx | 0 .../transformation/FieldSelector.tsx | 314 ++++++++++++++++++ .../FunctionSelector.tsx | 190 +++++++---- .../transformation/TransformationEditor.tsx | 190 +++++++++++ packages/ui/src/models/mapping.ts | 5 + 8 files changed, 673 insertions(+), 87 deletions(-) delete mode 100644 packages/ui/src/components/mapping/TransformationEditor.tsx create mode 100644 packages/ui/src/components/transformation/ConstantInput.tsx rename packages/ui/src/components/{mapping => transformation}/EditXPathButton.tsx (100%) create mode 100644 packages/ui/src/components/transformation/FieldSelector.tsx rename packages/ui/src/components/{mapping => transformation}/FunctionSelector.tsx (55%) create mode 100644 packages/ui/src/components/transformation/TransformationEditor.tsx diff --git a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx index b973bac81..d88868e4a 100644 --- a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx +++ b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx @@ -24,7 +24,7 @@ import { IField } from '../../models'; import { DeleteMappingButton } from './DeleteMappingButton'; import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table'; import { PenIcon, SaveIcon, TimesIcon } from '@patternfly/react-icons'; -import { TransformationEditor } from './TransformationEditor'; +import { TransformationEditor } from '../transformation/TransformationEditor'; type FieldDetailsProps = { field: IField; @@ -155,7 +155,7 @@ export const MappingDetailsDrawerPanel: FunctionComponentTarget Field : {selectedMapping.targetFields[0].fieldIdentifier.toString()} - + ) : ( diff --git a/packages/ui/src/components/mapping/TransformationEditor.tsx b/packages/ui/src/components/mapping/TransformationEditor.tsx deleted file mode 100644 index bbdf1fce9..000000000 --- a/packages/ui/src/components/mapping/TransformationEditor.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { FunctionComponent } from 'react'; -import { FunctionSelector } from './FunctionSelector'; -import { Split, SplitItem, Stack, StackItem } from '@patternfly/react-core'; - -type TransformationEditorProps = { - name: string; -}; - -export const TransformationEditor: FunctionComponent = ({ name }) => { - return ( - - - - Wrap with a function call: - - - - - - - ); -}; diff --git a/packages/ui/src/components/transformation/ConstantInput.tsx b/packages/ui/src/components/transformation/ConstantInput.tsx new file mode 100644 index 000000000..84859055d --- /dev/null +++ b/packages/ui/src/components/transformation/ConstantInput.tsx @@ -0,0 +1,35 @@ +import { FunctionComponent, useCallback, useState } from 'react'; +import { Button, InputGroup, InputGroupItem, TextInput, Tooltip } from '@patternfly/react-core'; + +type ConstantInputProps = { + onSubmit: (value: string) => void; +}; +export const ConstantInput: FunctionComponent = ({ onSubmit }) => { + const [text, setText] = useState(''); + + const handleSubmit = useCallback(() => { + onSubmit(text); + setText(''); + }, [onSubmit, text]); + + return ( + + + setText(value)} value={text} /> + + + + + + + + ); +}; diff --git a/packages/ui/src/components/mapping/EditXPathButton.tsx b/packages/ui/src/components/transformation/EditXPathButton.tsx similarity index 100% rename from packages/ui/src/components/mapping/EditXPathButton.tsx rename to packages/ui/src/components/transformation/EditXPathButton.tsx diff --git a/packages/ui/src/components/transformation/FieldSelector.tsx b/packages/ui/src/components/transformation/FieldSelector.tsx new file mode 100644 index 000000000..8f908da9d --- /dev/null +++ b/packages/ui/src/components/transformation/FieldSelector.tsx @@ -0,0 +1,314 @@ +import { IField } from '../../models'; +import { FunctionComponent, Ref, useEffect, useMemo, useRef, useState } from 'react'; +import { + Button, + Divider, + InputGroup, + InputGroupItem, + MenuToggle, + MenuToggleElement, + Select, + SelectGroup, + SelectList, + SelectOption, + SelectOptionProps, + TextInputGroup, + TextInputGroupMain, + TextInputGroupUtilities, + Tooltip, +} from '@patternfly/react-core'; +import { TimesIcon } from '@patternfly/react-icons'; +import { useDataMapper } from '../../hooks'; +import { DocumentService } from '../../services/document.service'; + +type FieldOptionProps = SelectOptionProps & { + functionGroup: string; + displayName: string; + descriptionString: string; + functionDefinition: IFunctionDefinition; +}; +const allFieldOptions = Object.keys(functionDefinitions).reduce((acc, value) => { + return functionDefinitions[value as FunctionGroup].reduce((acc2, func) => { + acc2.push({ + value: func.name, + children: func.displayName, + displayName: func.displayName, + description: func.description, + descriptionString: func.description, + functionGroup: value, + functionDefinition: func, + }); + return acc2; + }, acc); +}, [] as FieldOptionProps[]); + +type FieldSelectorProps = { + onSelect: (field: IField) => void; +}; + +export const FieldSelector: FunctionComponent = ({ onSelect }) => { + const [isOpen, setIsOpen] = useState(false); + const [selected, setSelected] = useState(''); + const [inputValue, setInputValue] = useState(''); + const [filterValue, setFilterValue] = useState(''); + const [allFieldOptions, setAllFieldOptions] = useState([]); + const [filteredFieldOptions, setFilteredFieldOptions] = useState([]); + const [focusedItemIndex, setFocusedItemIndex] = useState(null); + const [activeItem, setActiveItem] = useState(null); + const textInputRef = useRef(); + + const { sourceParameterMap, sourceBodyDocument } = useDataMapper(); + + useEffect(() => { + const sourceBodyFields = DocumentService.getAllFields(sourceBodyDocument); + }, [sourceParameterMap, sourceBodyDocument]); + + useEffect(() => { + let newFunctionOptions = allFieldOptions; + if (filterValue) { + newFunctionOptions = allFieldOptions.filter((option) => { + return ( + option.functionGroup.includes(filterValue) || + option.value.includes(filterValue) || + option.displayName.includes(filterValue) || + option.descriptionString.includes(filterValue) + ); + }); + + // Open the menu when the input value changes and the new value is not empty + if (!isOpen) { + setIsOpen(true); + } + } + + setFilteredFieldOptions(newFunctionOptions); + setActiveItem(null); + setFocusedItemIndex(null); + }, [filterValue, isOpen]); + + const onToggleClick = () => { + setIsOpen(!isOpen); + }; + + const handleOnSelect = ( + _event: React.MouseEvent | undefined, + value: string | number | undefined, + ) => { + if (value && value !== 'no results') { + setInputValue(value as string); + setFilterValue(''); + setSelected(value as string); + onSelect(filteredFieldOptions.find((op) => op.value === value)!.functionDefinition); + } + setIsOpen(false); + setFocusedItemIndex(null); + setActiveItem(null); + }; + + const onTextInputChange = (_event: React.FormEvent, value: string) => { + setInputValue(value); + setFilterValue(value); + }; + + const handleMenuArrowKeys = (key: string) => { + let indexToFocus = -1; + + if (isOpen) { + if (key === 'ArrowUp') { + // When no index is set or at the first index, focus to the last, otherwise decrement focus index + if (focusedItemIndex === null || focusedItemIndex === 0) { + indexToFocus = filteredFieldOptions.length - 1; + } else { + indexToFocus = focusedItemIndex - 1; + } + } + + if (key === 'ArrowDown') { + // When no index is set or at the last index, focus to the first, otherwise increment focus index + if (focusedItemIndex === null || focusedItemIndex === filteredFieldOptions.length - 1) { + indexToFocus = 0; + } else { + indexToFocus = focusedItemIndex + 1; + } + } + + setFocusedItemIndex(indexToFocus); + const focusedItem = filteredFieldOptions.filter((option) => !option.isDisabled)[indexToFocus]; + setActiveItem(`select-typeahead-${focusedItem.value.replace(' ', '-')}`); + } + }; + + const onInputKeyDown = (event: React.KeyboardEvent) => { + const enabledMenuItems = filteredFieldOptions.filter((option) => !option.isDisabled); + const [firstMenuItem] = enabledMenuItems; + const focusedItem = focusedItemIndex ? enabledMenuItems[focusedItemIndex] : firstMenuItem; + + switch (event.key) { + // Select the first available option + case 'Enter': + if (isOpen && focusedItem.value !== 'no results') { + setInputValue(String(focusedItem.children)); + setFilterValue(''); + setSelected(String(focusedItem.children)); + } + + setIsOpen((prevIsOpen) => !prevIsOpen); + setFocusedItemIndex(null); + setActiveItem(null); + + break; + case 'Tab': + case 'Escape': + setIsOpen(false); + setActiveItem(null); + break; + case 'ArrowUp': + case 'ArrowDown': + event.preventDefault(); + handleMenuArrowKeys(event.key); + break; + } + }; + + const toggle = (toggleRef: Ref) => ( + + + + + + {!!inputValue && ( + + )} + + + + ); + + type FieldOptionsGroupProps = { + group: string; + indexes: number[]; + }; + + const FieldOptionsGroup: FunctionComponent = ({ group, indexes }) => { + return ( + <> + + + {indexes.map((index) => { + const option = filteredFieldOptions[index]; + return ( + setSelected(option.value)} + id={`select-typeahead-${option.value}`} + value={option.value} + ref={null} + description={option.description} + > + {option.displayName} + + ); + })} + + + + + ); + }; + + const groupedOptionIndexes = useMemo( + () => + filteredFieldOptions.reduce( + (acc, option) => { + if (!acc[option.functionGroup]) { + acc[option.functionGroup] = []; + } + acc[option.functionGroup].push(filteredFieldOptions.indexOf(option)); + return acc; + }, + {} as Record, + ), + [filteredFieldOptions], + ); + + const GroupedFieldOptions: FunctionComponent = () => { + const first = true; + return Object.keys(groupedOptionIndexes).map((group) => { + if (groupedOptionIndexes[group].length == 0) return undefined; + return first ? ( + + ) : ( + <> + + + + ); + }); + }; + + return ( + + + + + + + + + + + ); +}; diff --git a/packages/ui/src/components/mapping/FunctionSelector.tsx b/packages/ui/src/components/transformation/FunctionSelector.tsx similarity index 55% rename from packages/ui/src/components/mapping/FunctionSelector.tsx rename to packages/ui/src/components/transformation/FunctionSelector.tsx index e5f71a789..d04ccaeac 100644 --- a/packages/ui/src/components/mapping/FunctionSelector.tsx +++ b/packages/ui/src/components/transformation/FunctionSelector.tsx @@ -1,6 +1,8 @@ import { Button, Divider, + InputGroup, + InputGroupItem, MenuToggle, MenuToggleElement, Select, @@ -11,47 +13,60 @@ import { TextInputGroup, TextInputGroupMain, TextInputGroupUtilities, + Tooltip, } from '@patternfly/react-core'; import { TimesIcon } from '@patternfly/react-icons'; -import { FunctionComponent, useEffect, useRef, useState } from 'react'; +import { FunctionComponent, useEffect, useMemo, useRef, useState } from 'react'; import { XPathParserService } from '../../services/xpath/xpath-parser.service'; import { FunctionGroup } from '../../services/xpath/xpath-parser'; import { IFunctionDefinition } from '../../models'; -const functionCatalog = XPathParserService.getXPathFunctionDefinitions(); +type FunctionOptionProps = SelectOptionProps & { + functionGroup: string; + displayName: string; + descriptionString: string; + functionDefinition: IFunctionDefinition; +}; +const functionDefinitions = XPathParserService.getXPathFunctionDefinitions(); +const allFunctionOptions = Object.keys(functionDefinitions).reduce((acc, value) => { + return functionDefinitions[value as FunctionGroup].reduce((acc2, func) => { + acc2.push({ + value: func.name, + children: func.displayName, + displayName: func.displayName, + description: func.description, + descriptionString: func.description, + functionGroup: value, + functionDefinition: func, + }); + return acc2; + }, acc); +}, [] as FunctionOptionProps[]); -export const FunctionSelector = () => { +type FunctionSelectorProps = { + onSelect: (selected: IFunctionDefinition) => void; +}; +export const FunctionSelector: FunctionComponent = ({ onSelect }) => { const [isOpen, setIsOpen] = useState(false); const [selected, setSelected] = useState(''); const [inputValue, setInputValue] = useState(''); const [filterValue, setFilterValue] = useState(''); - const [functionOptions, setFunctionOptions] = useState>(functionCatalog); + const [functionOptions, setFunctionOptions] = useState(allFunctionOptions); const [focusedItemIndex, setFocusedItemIndex] = useState(null); const [activeItem, setActiveItem] = useState(null); const textInputRef = useRef(); useEffect(() => { - let newFunctionOptions = functionCatalog; + let newFunctionOptions = allFunctionOptions; if (filterValue) { - newFunctionOptions = Object.keys(functionCatalog).reduce( - (acc, groupName) => { - const group = groupName as FunctionGroup; - acc[group] = groupName.includes(filterValue) - ? functionCatalog[group] - : functionCatalog[group].reduce((acc2, functionDef) => { - if ( - functionDef.name.includes(filterValue) || - functionDef.displayName.includes(filterValue) || - functionDef.description.includes(filterValue) - ) { - acc2.push(functionDef); - } - return acc2; - }, [] as IFunctionDefinition[]); - return acc; - }, - {} as Record, - ); + newFunctionOptions = allFunctionOptions.filter((option) => { + return ( + option.functionGroup.includes(filterValue) || + option.value.includes(filterValue) || + option.displayName.includes(filterValue) || + option.descriptionString.includes(filterValue) + ); + }); // Open the menu when the input value changes and the new value is not empty if (!isOpen) { @@ -68,14 +83,15 @@ export const FunctionSelector = () => { setIsOpen(!isOpen); }; - const onSelect = (_event: React.MouseEvent | undefined, value: string | number | undefined) => { - // eslint-disable-next-line no-console - console.log('selected', value); - + const handleOnSelect = ( + _event: React.MouseEvent | undefined, + value: string | number | undefined, + ) => { if (value && value !== 'no results') { setInputValue(value as string); setFilterValue(''); setSelected(value as string); + onSelect(functionOptions.find((op) => op.value === value)!.functionDefinition); } setIsOpen(false); setFocusedItemIndex(null); @@ -154,7 +170,6 @@ export const FunctionSelector = () => { aria-label="Typeahead menu toggle" onClick={onToggleClick} isExpanded={isOpen} - isFullWidth > { id="typeahead-select-input" autoComplete="off" innerRef={textInputRef} - placeholder="Select a state" + placeholder="Select function" {...(activeItem && { 'aria-activedescendant': activeItem })} role="combobox" isExpanded={isOpen} @@ -192,28 +207,33 @@ export const FunctionSelector = () => { ); - type FunctionSelectGroupProps = { - group: FunctionGroup; + type FunctionOptionsGroupProps = { + group: string; + indexes: number[]; }; - const FunctionSelectGroup: FunctionComponent = ({ group }) => { - const functions = functionOptions[group]; + const FunctionOptionsGroup: FunctionComponent = ({ group, indexes }) => { return ( <> - {functions.map((func) => ( - setSelected(func.name)} - id={`select-typeahead-${func.name}`} - value={func.name} - ref={null} - description={func.description} - > - {func.displayName} - - ))} + {indexes.map((index) => { + const option = functionOptions[index]; + return ( + setSelected(option.value)} + id={`select-typeahead-${option.value}`} + value={option.value} + ref={null} + description={option.description} + > + {option.displayName} + + ); + })} @@ -221,23 +241,67 @@ export const FunctionSelector = () => { ); }; + const groupedOptionIndexes = useMemo( + () => + functionOptions.reduce( + (acc, option) => { + if (!acc[option.functionGroup]) { + acc[option.functionGroup] = []; + } + acc[option.functionGroup].push(functionOptions.indexOf(option)); + return acc; + }, + {} as Record, + ), + [functionOptions], + ); + + const GroupedFunctionOptions: FunctionComponent = () => { + const first = true; + return Object.keys(groupedOptionIndexes).map((group) => { + if (groupedOptionIndexes[group].length == 0) return undefined; + return first ? ( + + ) : ( + <> + + + + ); + }); + }; + return ( - + + + + + + + + + + ); }; diff --git a/packages/ui/src/components/transformation/TransformationEditor.tsx b/packages/ui/src/components/transformation/TransformationEditor.tsx new file mode 100644 index 000000000..f3ed810ad --- /dev/null +++ b/packages/ui/src/components/transformation/TransformationEditor.tsx @@ -0,0 +1,190 @@ +import { FunctionComponent, MouseEvent, useCallback, useMemo, useState } from 'react'; +import { FunctionSelector } from './FunctionSelector'; +import { + ActionList, + ActionListItem, + Button, + Divider, + Dropdown, + DropdownItem, + DropdownList, + MenuToggle, + MenuToggleElement, + Stack, + StackItem, + Tooltip, + TreeView, + TreeViewDataItem, +} from '@patternfly/react-core'; +import { useDataMapper } from '../../hooks'; +import { IField, ITransformation } from '../../models'; +import { ListIcon, TrashIcon } from '@patternfly/react-icons'; +import { ConstantInput } from './ConstantInput'; +import { FieldSelector } from './FieldSelector'; + +type ButtonProps = { + onClick: () => void; +}; + +const ForEachButton: FunctionComponent = ({ onClick }) => { + return ( + Process for each collection item}> + + + ); +}; + +const DeleteFieldButton: FunctionComponent = ({ onClick }) => { + return ( + Delete field from mapping}> + + + ); +}; + +enum TopAction { + Function = 'Function', + Field = 'Field', + Constant = 'Constant', + None = '', +} + +export const TransformationEditor: FunctionComponent = () => { + const { selectedMapping } = useDataMapper(); + const [isTopActionDropdownOpen, setIsTopActionDropdownOpen] = useState(false); + const [topAction, setTopAction] = useState(TopAction.None); + + const onTopActionDropdownToggle = useCallback(() => { + setIsTopActionDropdownOpen(!isTopActionDropdownOpen); + }, [isTopActionDropdownOpen]); + + const onTopActionDropdownSelect = useCallback( + (_event: MouseEvent | undefined, value: string | number | undefined) => { + setTopAction(value ? (value as TopAction) : TopAction.None); + setIsTopActionDropdownOpen(false); + }, + [], + ); + + const txToTreeItem = useCallback((transformation: ITransformation): TreeViewDataItem => { + return { + name: transformation.ref?.name || 'Fields', + id: '', + children: transformation.arguments.map((arg) => { + const argAsTx = arg as ITransformation; + return argAsTx.ref || argAsTx.arguments ? txToTreeItem(argAsTx) : arg; + }), + } as TreeViewDataItem; + }, []); + + const fieldsToTreeItem = useCallback((fields?: IField[]) => { + if (!fields) return []; + return !fields + ? [] + : fields.map((f) => { + return { + name: ( + +
    {f.expression}
    +
    + ), + action: ( + + + + {}} /> + + {f.maxOccurs > 1 && ( + <> + + + {}} />{' '} + + + )} + + + {}} /> + + + ), + }; + }); + }, []); + + const transformationTree = useMemo(() => { + return selectedMapping?.transformation + ? [txToTreeItem(selectedMapping.transformation)] + : fieldsToTreeItem(selectedMapping?.sourceFields); + }, [fieldsToTreeItem, selectedMapping?.sourceFields, selectedMapping?.transformation, txToTreeItem]); + + return ( + selectedMapping && ( + + + + + setIsTopActionDropdownOpen(isOpen)} + toggle={(toggleRef: React.Ref) => ( + + {topAction ? topAction : 'Select the type of top level item to add'} + + )} + > + + + Field + + + Function + + + Constant + + + + + + {topAction === TopAction.Field && {}} />} + {topAction === TopAction.Function && {}} />} + {topAction === TopAction.Constant && {}} />} + + + + + + + + ) + ); +}; diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index b68d3a409..b305b2edd 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -21,6 +21,10 @@ export interface IFunctionDefinition { export type ITransformationArgument = ITransformation | IField | string | number; +export interface ForEachDefinition { + collection: IField; +} + export interface ITransformation { ref: IFunctionDefinition; arguments: ITransformationArgument[]; @@ -32,5 +36,6 @@ export interface IMapping { sourceFields: IField[]; targetFields: IField[]; transformation?: ITransformation; + forEach?: ForEachDefinition; xpath?: string; } From 2ba3f5ab1a7b16ecdde3e5ba8442965c530e2803 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Sun, 12 May 2024 19:45:54 -0400 Subject: [PATCH 220/471] checkpoint --- .../mapping/MappingDetailsDrawerPanel.tsx | 7 +- .../transformation/EditXPathButton.tsx | 88 ------------ .../transformation/TransformationEditor.tsx | 127 +++--------------- .../{ => action}/ConstantInput.tsx | 0 .../action/DeleteFieldButton.tsx | 21 +++ .../{ => action}/FieldSelector.tsx | 68 ++++------ .../transformation/action/ForEachButton.tsx | 23 ++++ .../{ => action}/FunctionSelector.tsx | 11 +- .../transformation/treeItem/FieldTreeItem.tsx | 52 +++++++ .../treeItem/ForEachTreeItem.tsx | 10 ++ .../treeItem/FunctionCallTreeItem.tsx | 14 ++ .../treeItem/LiteralTreeItem.tsx | 9 ++ .../treeItem/tree-item-helper.ts | 19 +++ packages/ui/src/models/mapping.ts | 17 ++- packages/ui/src/services/document.service.ts | 17 ++- 15 files changed, 233 insertions(+), 250 deletions(-) delete mode 100644 packages/ui/src/components/transformation/EditXPathButton.tsx rename packages/ui/src/components/transformation/{ => action}/ConstantInput.tsx (100%) create mode 100644 packages/ui/src/components/transformation/action/DeleteFieldButton.tsx rename packages/ui/src/components/transformation/{ => action}/FieldSelector.tsx (83%) create mode 100644 packages/ui/src/components/transformation/action/ForEachButton.tsx rename packages/ui/src/components/transformation/{ => action}/FunctionSelector.tsx (96%) create mode 100644 packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx create mode 100644 packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx create mode 100644 packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx create mode 100644 packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx create mode 100644 packages/ui/src/components/transformation/treeItem/tree-item-helper.ts diff --git a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx index d88868e4a..8e6933495 100644 --- a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx +++ b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx @@ -81,6 +81,11 @@ export const MappingDetailsDrawerPanel: FunctionComponent { + handleToggleEditMode(false); + setSelectedMapping(null); + }, [handleToggleEditMode, setSelectedMapping]); + const handleSaveTransformation = useCallback(() => { handleToggleEditMode(false); }, [handleToggleEditMode]); @@ -146,7 +151,7 @@ export const MappingDetailsDrawerPanel: FunctionComponent setSelectedMapping(null)} /> - setSelectedMapping(null)} /> + {isEditMode ? ( diff --git a/packages/ui/src/components/transformation/EditXPathButton.tsx b/packages/ui/src/components/transformation/EditXPathButton.tsx deleted file mode 100644 index 4c7b906b5..000000000 --- a/packages/ui/src/components/transformation/EditXPathButton.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { FunctionComponent, useCallback, useMemo, useState } from 'react'; -import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; -import { PenIcon } from '@patternfly/react-icons'; -import { useDataMapper, useToggle } from '../../hooks'; -import { CodeEditor, Language } from '@patternfly/react-code-editor'; -import { IMapping } from '../../models'; -import { MappingSerializerService } from '../../services/mapping-serializer.service'; -import { Monaco } from '@monaco-editor/react'; -import { editor } from 'monaco-editor/esm/vs/editor/editor.api'; -import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions; - -type EditXPathButtonProps = { - mapping: IMapping | null; -}; - -export const EditXPathButton: FunctionComponent = ({ mapping }) => { - const { refreshMappings } = useDataMapper(); - const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); - const [xpath, setXpath] = useState(mapping?.xpath); - const allowEditXPath = !!(mapping && (mapping.xpath || mapping.sourceFields[0])); - - const handleEditXPath = useCallback(() => { - if (!xpath) { - const emptyXslt = MappingSerializerService.createNew(); - const xpathFromSource = MappingSerializerService.getXPath(emptyXslt, mapping!.sourceFields[0]); - setXpath(xpathFromSource); - } - openModal(); - }, [mapping, openModal, xpath]); - - const handleSubmitXPath = useCallback(() => { - mapping!.xpath = xpath; - if (mapping!.sourceFields.length > 0) mapping!.sourceFields = []; - refreshMappings(); - closeModal(); - }, [closeModal, mapping, refreshMappings, xpath]); - - const onEditorDidMount = useCallback((editor: editor.IStandaloneCodeEditor, monaco: Monaco) => { - editor.layout(); - editor.focus(); - monaco.editor.getModels()[0].updateOptions({ tabSize: 2 }); - }, []); - - const editorOptions: IStandaloneEditorConstructionOptions = useMemo(() => { - return { wordWrap: 'on' }; - }, []); - - return ( - <> - Edit XPath expression}> - - - - Confirm - , - , - ]} - > - setXpath(value)} - language={Language.plaintext} - onEditorDidMount={onEditorDidMount} - height="sizeToFit" - width="sizeToFit" - options={editorOptions} - /> - - - ); -}; diff --git a/packages/ui/src/components/transformation/TransformationEditor.tsx b/packages/ui/src/components/transformation/TransformationEditor.tsx index f3ed810ad..19178f6fe 100644 --- a/packages/ui/src/components/transformation/TransformationEditor.tsx +++ b/packages/ui/src/components/transformation/TransformationEditor.tsx @@ -1,10 +1,8 @@ import { FunctionComponent, MouseEvent, useCallback, useMemo, useState } from 'react'; -import { FunctionSelector } from './FunctionSelector'; +import { FunctionSelector } from './action/FunctionSelector'; import { ActionList, ActionListItem, - Button, - Divider, Dropdown, DropdownItem, DropdownList, @@ -12,49 +10,14 @@ import { MenuToggleElement, Stack, StackItem, - Tooltip, TreeView, TreeViewDataItem, } from '@patternfly/react-core'; import { useDataMapper } from '../../hooks'; -import { IField, ITransformation } from '../../models'; -import { ListIcon, TrashIcon } from '@patternfly/react-icons'; -import { ConstantInput } from './ConstantInput'; -import { FieldSelector } from './FieldSelector'; - -type ButtonProps = { - onClick: () => void; -}; - -const ForEachButton: FunctionComponent = ({ onClick }) => { - return ( - Process for each collection item}> - - - ); -}; - -const DeleteFieldButton: FunctionComponent = ({ onClick }) => { - return ( - Delete field from mapping}> - - - ); -}; +import { IField, IFunctionDefinition } from '../../models'; +import { ConstantInput } from './action/ConstantInput'; +import { FieldSelector } from './action/FieldSelector'; +import { TreeItemHelper } from './treeItem/tree-item-helper'; enum TopAction { Function = 'Function', @@ -80,69 +43,19 @@ export const TransformationEditor: FunctionComponent = () => { [], ); - const txToTreeItem = useCallback((transformation: ITransformation): TreeViewDataItem => { - return { - name: transformation.ref?.name || 'Fields', - id: '', - children: transformation.arguments.map((arg) => { - const argAsTx = arg as ITransformation; - return argAsTx.ref || argAsTx.arguments ? txToTreeItem(argAsTx) : arg; - }), - } as TreeViewDataItem; - }, []); + const transformationTree = useMemo((): TreeViewDataItem[] => { + return ( + selectedMapping?.transformation?.elements.map((element) => + TreeItemHelper.createTransformationTreeItem(element), + ) || [] + ); + }, [selectedMapping?.transformation?.elements]); - const fieldsToTreeItem = useCallback((fields?: IField[]) => { - if (!fields) return []; - return !fields - ? [] - : fields.map((f) => { - return { - name: ( - -
    {f.expression}
    -
    - ), - action: ( - - - - {}} /> - - {f.maxOccurs > 1 && ( - <> - - - {}} />{' '} - - - )} - - - {}} /> - - - ), - }; - }); - }, []); + const handleAddField = useCallback((field: IField) => {}, []); + + const handleAddFunction = useCallback((func: IFunctionDefinition) => {}, []); - const transformationTree = useMemo(() => { - return selectedMapping?.transformation - ? [txToTreeItem(selectedMapping.transformation)] - : fieldsToTreeItem(selectedMapping?.sourceFields); - }, [fieldsToTreeItem, selectedMapping?.sourceFields, selectedMapping?.transformation, txToTreeItem]); + const handleAddConstant = useCallback((value: string) => {}, []); return ( selectedMapping && ( @@ -157,7 +70,7 @@ export const TransformationEditor: FunctionComponent = () => { onOpenChange={(isOpen: boolean) => setIsTopActionDropdownOpen(isOpen)} toggle={(toggleRef: React.Ref) => ( - {topAction ? topAction : 'Select the type of top level item to add'} + {topAction ? topAction : 'Select the top level item to add'} )} > @@ -175,9 +88,9 @@ export const TransformationEditor: FunctionComponent = () => { - {topAction === TopAction.Field && {}} />} - {topAction === TopAction.Function && {}} />} - {topAction === TopAction.Constant && {}} />} + {topAction === TopAction.Field && } + {topAction === TopAction.Function && } + {topAction === TopAction.Constant && } diff --git a/packages/ui/src/components/transformation/ConstantInput.tsx b/packages/ui/src/components/transformation/action/ConstantInput.tsx similarity index 100% rename from packages/ui/src/components/transformation/ConstantInput.tsx rename to packages/ui/src/components/transformation/action/ConstantInput.tsx diff --git a/packages/ui/src/components/transformation/action/DeleteFieldButton.tsx b/packages/ui/src/components/transformation/action/DeleteFieldButton.tsx new file mode 100644 index 000000000..4b103b539 --- /dev/null +++ b/packages/ui/src/components/transformation/action/DeleteFieldButton.tsx @@ -0,0 +1,21 @@ +import { FunctionComponent } from 'react'; +import { Button, Tooltip } from '@patternfly/react-core'; +import { TrashIcon } from '@patternfly/react-icons'; + +type DeleteFieldButtonProps = { + onClick: () => void; +}; + +export const DeleteFieldButton: FunctionComponent = ({ onClick }) => { + return ( + Delete field from mapping}> + + + ); +}; diff --git a/packages/ui/src/components/transformation/FieldSelector.tsx b/packages/ui/src/components/transformation/action/FieldSelector.tsx similarity index 83% rename from packages/ui/src/components/transformation/FieldSelector.tsx rename to packages/ui/src/components/transformation/action/FieldSelector.tsx index 8f908da9d..896c4865b 100644 --- a/packages/ui/src/components/transformation/FieldSelector.tsx +++ b/packages/ui/src/components/transformation/action/FieldSelector.tsx @@ -1,4 +1,4 @@ -import { IField } from '../../models'; +import { IField } from '../../../models'; import { FunctionComponent, Ref, useEffect, useMemo, useRef, useState } from 'react'; import { Button, @@ -18,29 +18,14 @@ import { Tooltip, } from '@patternfly/react-core'; import { TimesIcon } from '@patternfly/react-icons'; -import { useDataMapper } from '../../hooks'; -import { DocumentService } from '../../services/document.service'; +import { useDataMapper } from '../../../hooks'; +import { DocumentService } from '../../../services/document.service'; type FieldOptionProps = SelectOptionProps & { - functionGroup: string; - displayName: string; - descriptionString: string; - functionDefinition: IFunctionDefinition; + documentId: string; + documentType: string; + fieldDefinition: IField; }; -const allFieldOptions = Object.keys(functionDefinitions).reduce((acc, value) => { - return functionDefinitions[value as FunctionGroup].reduce((acc2, func) => { - acc2.push({ - value: func.name, - children: func.displayName, - displayName: func.displayName, - description: func.description, - descriptionString: func.description, - functionGroup: value, - functionDefinition: func, - }); - return acc2; - }, acc); -}, [] as FieldOptionProps[]); type FieldSelectorProps = { onSelect: (field: IField) => void; @@ -60,20 +45,23 @@ export const FieldSelector: FunctionComponent = ({ onSelect const { sourceParameterMap, sourceBodyDocument } = useDataMapper(); useEffect(() => { - const sourceBodyFields = DocumentService.getAllFields(sourceBodyDocument); + const allSourceFields = DocumentService.getAllFields(sourceBodyDocument, sourceParameterMap); + const updatedAllFieldOptions = allSourceFields.map((field) => { + return { + value: field.fieldIdentifier.toString(), + children: field.fieldIdentifier.toString(), + documentId: field.fieldIdentifier.documentId, + documentType: field.fieldIdentifier.documentType, + } as FieldOptionProps; + }); + setAllFieldOptions(updatedAllFieldOptions); }, [sourceParameterMap, sourceBodyDocument]); useEffect(() => { let newFunctionOptions = allFieldOptions; if (filterValue) { - newFunctionOptions = allFieldOptions.filter((option) => { - return ( - option.functionGroup.includes(filterValue) || - option.value.includes(filterValue) || - option.displayName.includes(filterValue) || - option.descriptionString.includes(filterValue) - ); - }); + const lowerFilterValue = filterValue.toLowerCase(); + newFunctionOptions = allFieldOptions.filter((option) => option.value.toLowerCase().includes(lowerFilterValue)); // Open the menu when the input value changes and the new value is not empty if (!isOpen) { @@ -84,7 +72,7 @@ export const FieldSelector: FunctionComponent = ({ onSelect setFilteredFieldOptions(newFunctionOptions); setActiveItem(null); setFocusedItemIndex(null); - }, [filterValue, isOpen]); + }, [allFieldOptions, filterValue, isOpen]); const onToggleClick = () => { setIsOpen(!isOpen); @@ -98,7 +86,7 @@ export const FieldSelector: FunctionComponent = ({ onSelect setInputValue(value as string); setFilterValue(''); setSelected(value as string); - onSelect(filteredFieldOptions.find((op) => op.value === value)!.functionDefinition); + onSelect(filteredFieldOptions.find((op) => op.value === value)!.fieldDefinition); } setIsOpen(false); setFocusedItemIndex(null); @@ -187,7 +175,7 @@ export const FieldSelector: FunctionComponent = ({ onSelect id="typeahead-select-input" autoComplete="off" innerRef={textInputRef} - placeholder="Select function" + placeholder="Select field" {...(activeItem && { 'aria-activedescendant': activeItem })} role="combobox" isExpanded={isOpen} @@ -235,9 +223,8 @@ export const FieldSelector: FunctionComponent = ({ onSelect id={`select-typeahead-${option.value}`} value={option.value} ref={null} - description={option.description} > - {option.displayName} + {option.children} ); })} @@ -252,10 +239,10 @@ export const FieldSelector: FunctionComponent = ({ onSelect () => filteredFieldOptions.reduce( (acc, option) => { - if (!acc[option.functionGroup]) { - acc[option.functionGroup] = []; + if (!acc[option.documentId]) { + acc[option.documentId] = []; } - acc[option.functionGroup].push(filteredFieldOptions.indexOf(option)); + acc[option.documentId].push(filteredFieldOptions.indexOf(option)); return acc; }, {} as Record, @@ -264,10 +251,9 @@ export const FieldSelector: FunctionComponent = ({ onSelect ); const GroupedFieldOptions: FunctionComponent = () => { - const first = true; - return Object.keys(groupedOptionIndexes).map((group) => { + return Object.keys(groupedOptionIndexes).map((group, index) => { if (groupedOptionIndexes[group].length == 0) return undefined; - return first ? ( + return index === 0 ? ( ) : ( <> diff --git a/packages/ui/src/components/transformation/action/ForEachButton.tsx b/packages/ui/src/components/transformation/action/ForEachButton.tsx new file mode 100644 index 000000000..00cb47a68 --- /dev/null +++ b/packages/ui/src/components/transformation/action/ForEachButton.tsx @@ -0,0 +1,23 @@ +import { FunctionComponent } from 'react'; +import { Button, Tooltip } from '@patternfly/react-core'; +import { ListIcon } from '@patternfly/react-icons'; + +type ForEachButtonProps = { + onClick: () => void; +}; + +export const ForEachButton: FunctionComponent = ({ onClick }) => { + return ( + Process for each collection item}> + + + ); +}; diff --git a/packages/ui/src/components/transformation/FunctionSelector.tsx b/packages/ui/src/components/transformation/action/FunctionSelector.tsx similarity index 96% rename from packages/ui/src/components/transformation/FunctionSelector.tsx rename to packages/ui/src/components/transformation/action/FunctionSelector.tsx index d04ccaeac..01088a951 100644 --- a/packages/ui/src/components/transformation/FunctionSelector.tsx +++ b/packages/ui/src/components/transformation/action/FunctionSelector.tsx @@ -17,9 +17,9 @@ import { } from '@patternfly/react-core'; import { TimesIcon } from '@patternfly/react-icons'; import { FunctionComponent, useEffect, useMemo, useRef, useState } from 'react'; -import { XPathParserService } from '../../services/xpath/xpath-parser.service'; -import { FunctionGroup } from '../../services/xpath/xpath-parser'; -import { IFunctionDefinition } from '../../models'; +import { XPathParserService } from '../../../services/xpath/xpath-parser.service'; +import { FunctionGroup } from '../../../services/xpath/xpath-parser'; +import { IFunctionDefinition } from '../../../models'; type FunctionOptionProps = SelectOptionProps & { functionGroup: string; @@ -257,10 +257,9 @@ export const FunctionSelector: FunctionComponent = ({ onS ); const GroupedFunctionOptions: FunctionComponent = () => { - const first = true; - return Object.keys(groupedOptionIndexes).map((group) => { + return Object.keys(groupedOptionIndexes).map((group, index) => { if (groupedOptionIndexes[group].length == 0) return undefined; - return first ? ( + return index === 0 ? ( ) : ( <> diff --git a/packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx new file mode 100644 index 000000000..15679c542 --- /dev/null +++ b/packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx @@ -0,0 +1,52 @@ +import { ActionList, ActionListItem, Divider, Tooltip, TreeViewDataItem } from '@patternfly/react-core'; +import { ReactNode } from 'react'; +import { IField } from '../../../models'; +import { FunctionSelector } from '../action/FunctionSelector'; +import { ForEachButton } from '../action/ForEachButton'; +import { DeleteFieldButton } from '../action/DeleteFieldButton'; + +export class FieldTreeItem implements TreeViewDataItem { + name: ReactNode; + action: ReactNode; + + constructor(field: IField) { + this.name = ( + +
    {field.expression}
    +
    + ); + + this.action = ( + + + + {}} /> + + {field.maxOccurs > 1 && ( + <> + + + {}} />{' '} + + + )} + + + {}} /> + + + ); + } +} diff --git a/packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx new file mode 100644 index 000000000..748fe7a6f --- /dev/null +++ b/packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx @@ -0,0 +1,10 @@ +import { TreeViewDataItem } from '@patternfly/react-core'; +import { IForEach } from '../../../models'; + +export class ForEachTreeItem implements TreeViewDataItem { + name: React.ReactNode; + + constructor(forEach: IForEach) { + this.name = 'For each ' + forEach.collection.fieldIdentifier.toString(); + } +} diff --git a/packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx new file mode 100644 index 000000000..5ccadd607 --- /dev/null +++ b/packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx @@ -0,0 +1,14 @@ +import { TreeViewDataItem } from '@patternfly/react-core'; +import { ReactNode } from 'react'; +import { IFunctionCall } from '../../../models'; +import { TreeItemHelper } from './tree-item-helper'; + +export class FunctionCallTreeItem implements TreeViewDataItem { + name: ReactNode; + children: TreeViewDataItem[]; + + constructor(functionCall: IFunctionCall) { + this.name = functionCall.ref.name; + this.children = functionCall.arguments.map((arg) => TreeItemHelper.createTransformationTreeItem(arg)); + } +} diff --git a/packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx new file mode 100644 index 000000000..248c973ec --- /dev/null +++ b/packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx @@ -0,0 +1,9 @@ +import { TreeViewDataItem } from '@patternfly/react-core'; + +export class LiteralTreeItem implements TreeViewDataItem { + name: React.ReactNode; + + constructor(value: string | number) { + this.name = value; + } +} diff --git a/packages/ui/src/components/transformation/treeItem/tree-item-helper.ts b/packages/ui/src/components/transformation/treeItem/tree-item-helper.ts new file mode 100644 index 000000000..ceaf8f9ae --- /dev/null +++ b/packages/ui/src/components/transformation/treeItem/tree-item-helper.ts @@ -0,0 +1,19 @@ +import { ForEachTreeItem } from './ForEachTreeItem'; +import { FunctionCallTreeItem } from './FunctionCallTreeItem'; +import { IField, IForEach, IFunctionCall, TransformationElement } from '../../../models'; +import { LiteralTreeItem } from './LiteralTreeItem'; +import { FieldTreeItem } from './FieldTreeItem'; + +export class TreeItemHelper { + static createTransformationTreeItem(element: TransformationElement) { + if (typeof element === 'object' && 'ref' in element) { + return new FunctionCallTreeItem(element as IFunctionCall); + } else if (typeof element === 'object' && 'collection' in element) { + return new ForEachTreeItem(element as IForEach); + } else if (typeof element === 'object' && 'parent' in element) { + return new FieldTreeItem(element as IField); + } else { + return new LiteralTreeItem(element); + } + } +} diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index b305b2edd..4cb2fb303 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -19,15 +19,22 @@ export interface IFunctionDefinition { arguments: IFunctionArgumentDefinition[]; } -export type ITransformationArgument = ITransformation | IField | string | number; +export type IFunctionCallArgument = IFunctionCall | IField | string | number; -export interface ForEachDefinition { +export interface IForEach { collection: IField; + transformation: ITransformation; } -export interface ITransformation { +export interface IFunctionCall { ref: IFunctionDefinition; - arguments: ITransformationArgument[]; + arguments: IFunctionCallArgument[]; +} + +export type TransformationElement = IFunctionCall | IForEach | IField | string | number; + +export interface ITransformation { + elements: TransformationElement[]; } export interface IMapping { @@ -36,6 +43,4 @@ export interface IMapping { sourceFields: IField[]; targetFields: IField[]; transformation?: ITransformation; - forEach?: ForEachDefinition; - xpath?: string; } diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index c99095b55..423eddc3c 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -1,4 +1,4 @@ -import { IDocument, IField } from '../models'; +import { IDocument, IField, PrimitiveDocument } from '../models'; export class DocumentService { static getFieldStack(field: IField, includeItself: boolean = false) { @@ -34,4 +34,19 @@ export class DocumentService { static getFieldFromPathExpression(document: IDocument, pathExpression: string) { return DocumentService.getFieldFromPathSegments(document, pathExpression.split('/')); } + + static getAllFields(bodyDocument: IDocument, parameterMap: Map) { + return [bodyDocument, ...parameterMap.values()].reduce((acc, doc) => { + doc instanceof PrimitiveDocument ? acc.push(doc) : DocumentService.populateChildren(acc, doc.fields); + return acc; + }, [] as IField[]); + } + + private static populateChildren(answer: IField[], fields: IField[]) { + return fields.reduce((acc, field) => { + acc.push(field); + DocumentService.populateChildren(acc, field.fields); + return acc; + }, answer); + } } From feea14917098f0ff9f97cc759c77c02cea020f2c Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 21 May 2024 11:09:33 -0400 Subject: [PATCH 221/471] checkpoint --- .../mapping/MappingDetailsDrawerPanel.tsx | 45 ++--- .../ui/src/components/mapping/MappingLink.tsx | 7 +- .../transformation/FunctionIcon.tsx | 12 ++ .../transformation/Transformation.scss | 4 + .../transformation/TransformationEditor.tsx | 171 ++++++++++++------ ...teFieldButton.tsx => DeleteItemButton.tsx} | 11 +- .../transformation/action/FieldSelector.tsx | 15 +- .../action/FunctionSelector.tsx | 21 ++- .../transformation/action/InlineEdit.tsx | 84 +++++++++ .../transformation/item/FieldItem.tsx | 75 ++++++++ .../transformation/item/ForEachItem.tsx | 68 +++++++ .../transformation/item/FunctionCallItem.tsx | 102 +++++++++++ .../transformation/item/LiteralItem.tsx | 62 +++++++ .../transformation/item/item-helper.tsx | 23 +++ .../transformation/treeItem/FieldTreeItem.tsx | 52 ------ .../treeItem/ForEachTreeItem.tsx | 10 - .../treeItem/FunctionCallTreeItem.tsx | 14 -- .../treeItem/LiteralTreeItem.tsx | 9 - .../treeItem/tree-item-helper.ts | 19 -- packages/ui/src/models/mapping.ts | 30 ++- packages/ui/src/providers/CanvasProvider.tsx | 12 +- .../ui/src/services/mapping.service.test.ts | 21 +-- packages/ui/src/services/mapping.service.ts | 70 +++++-- .../ui/src/services/transformation.service.ts | 40 ++++ 24 files changed, 718 insertions(+), 259 deletions(-) create mode 100644 packages/ui/src/components/transformation/FunctionIcon.tsx create mode 100644 packages/ui/src/components/transformation/Transformation.scss rename packages/ui/src/components/transformation/action/{DeleteFieldButton.tsx => DeleteItemButton.tsx} (51%) create mode 100644 packages/ui/src/components/transformation/action/InlineEdit.tsx create mode 100644 packages/ui/src/components/transformation/item/FieldItem.tsx create mode 100644 packages/ui/src/components/transformation/item/ForEachItem.tsx create mode 100644 packages/ui/src/components/transformation/item/FunctionCallItem.tsx create mode 100644 packages/ui/src/components/transformation/item/LiteralItem.tsx create mode 100644 packages/ui/src/components/transformation/item/item-helper.tsx delete mode 100644 packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx delete mode 100644 packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx delete mode 100644 packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx delete mode 100644 packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx delete mode 100644 packages/ui/src/components/transformation/treeItem/tree-item-helper.ts create mode 100644 packages/ui/src/services/transformation.service.ts diff --git a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx index 8e6933495..9189d30a8 100644 --- a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx +++ b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx @@ -16,15 +16,15 @@ import { StackItem, Text, TextContent, - TextInput, TextVariants, Tooltip, } from '@patternfly/react-core'; import { IField } from '../../models'; import { DeleteMappingButton } from './DeleteMappingButton'; import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table'; -import { PenIcon, SaveIcon, TimesIcon } from '@patternfly/react-icons'; +import { PenIcon, TimesIcon } from '@patternfly/react-icons'; import { TransformationEditor } from '../transformation/TransformationEditor'; +import { MappingService } from '../../services/mapping.service'; type FieldDetailsProps = { field: IField; @@ -86,11 +86,7 @@ export const MappingDetailsDrawerPanel: FunctionComponent { - handleToggleEditMode(false); - }, [handleToggleEditMode]); - - const handleCancelEditTransformation = useCallback(() => { + const handleCloseEditTransformation = useCallback(() => { handleToggleEditMode(false); }, [handleToggleEditMode]); @@ -99,25 +95,13 @@ export const MappingDetailsDrawerPanel: FunctionComponent {isEditMode ? ( <> - - Save Transformation}> - - - Cancel Edit Transformation}> @@ -140,7 +124,7 @@ export const MappingDetailsDrawerPanel: FunctionComponent ); - }, [handleCancelEditTransformation, handleSaveTransformation, handleToggleEditMode, isEditMode]); + }, [handleCloseEditTransformation, handleToggleEditMode, isEditMode]); return ( selectedMapping && ( @@ -172,18 +156,11 @@ export const MappingDetailsDrawerPanel: FunctionComponent - {selectedMapping.xpath ? ( - - XPath - + {MappingService.extractSourceFields(selectedMapping.source).map((field) => ( + + - ) : ( - selectedMapping.sourceFields.map((field) => ( - - - - )) - )} + ))} diff --git a/packages/ui/src/components/mapping/MappingLink.tsx b/packages/ui/src/components/mapping/MappingLink.tsx index a9b8c81f6..ffe74ab59 100644 --- a/packages/ui/src/components/mapping/MappingLink.tsx +++ b/packages/ui/src/components/mapping/MappingLink.tsx @@ -3,6 +3,7 @@ import { useCanvas } from '../../hooks/useCanvas'; import { IMapping } from '../../models'; import { useDataMapper } from '../../hooks'; import { NodeReference } from '../../providers/CanvasProvider'; +import { MappingService } from '../../services/mapping.service'; type LineCoord = { x1: number; @@ -40,8 +41,8 @@ const MappingLink: FunctionComponent = ({ x1, y1, x2, y2, mapping }) style={lineStyle} > - Source: {JSON.stringify(mapping.sourceFields.map((f) => f.fieldIdentifier))}, Target:{' '} - {JSON.stringify(mapping.targetFields.map((f) => f.fieldIdentifier))} + Source: {JSON.stringify(MappingService.extractSourceFields(mapping.source).map((f) => f.fieldIdentifier))}, + Target: {JSON.stringify(mapping.targetFields.map((f) => f.fieldIdentifier))} ); @@ -108,7 +109,7 @@ export const MappingLinksContainer: FunctionComponent = () => { const refreshLinks = useCallback(() => { const answer: LineProps[] = mappings.reduce((acc, mapping) => { - for (const sourceField of mapping.sourceFields) { + for (const sourceField of MappingService.extractSourceFields(mapping.source)) { for (const targetField of mapping.targetFields) { const sourceClosestPath = getClosestExpandedPath(sourceField.fieldIdentifier.toString()); const targetClosestPath = getClosestExpandedPath(targetField.fieldIdentifier.toString()); diff --git a/packages/ui/src/components/transformation/FunctionIcon.tsx b/packages/ui/src/components/transformation/FunctionIcon.tsx new file mode 100644 index 000000000..8009890b3 --- /dev/null +++ b/packages/ui/src/components/transformation/FunctionIcon.tsx @@ -0,0 +1,12 @@ +import { FunctionComponent } from 'react'; +import './Transformation.scss'; + +export const FunctionIcon: FunctionComponent = () => { + return ( + + + f(x) + + + ); +}; diff --git a/packages/ui/src/components/transformation/Transformation.scss b/packages/ui/src/components/transformation/Transformation.scss new file mode 100644 index 000000000..d4036c865 --- /dev/null +++ b/packages/ui/src/components/transformation/Transformation.scss @@ -0,0 +1,4 @@ +.function-icon { + position: relative; + bottom: -3; +} \ No newline at end of file diff --git a/packages/ui/src/components/transformation/TransformationEditor.tsx b/packages/ui/src/components/transformation/TransformationEditor.tsx index 19178f6fe..a03d126c2 100644 --- a/packages/ui/src/components/transformation/TransformationEditor.tsx +++ b/packages/ui/src/components/transformation/TransformationEditor.tsx @@ -1,23 +1,31 @@ -import { FunctionComponent, MouseEvent, useCallback, useMemo, useState } from 'react'; +import { FunctionComponent, MouseEvent, useCallback, useEffect, useMemo, useState } from 'react'; import { FunctionSelector } from './action/FunctionSelector'; import { + Accordion, ActionList, ActionListItem, + Card, + CardBody, + CardHeader, Dropdown, DropdownItem, DropdownList, MenuToggle, MenuToggleElement, - Stack, - StackItem, - TreeView, - TreeViewDataItem, } from '@patternfly/react-core'; import { useDataMapper } from '../../hooks'; -import { IField, IFunctionDefinition } from '../../models'; +import { + IField, + IFieldItem, + IFunctionCall, + IFunctionDefinition, + ILiteralItem, + ITransformation, + ITransformationItem, +} from '../../models'; import { ConstantInput } from './action/ConstantInput'; import { FieldSelector } from './action/FieldSelector'; -import { TreeItemHelper } from './treeItem/tree-item-helper'; +import { ItemHelper } from './item/item-helper'; enum TopAction { Function = 'Function', @@ -30,6 +38,11 @@ export const TransformationEditor: FunctionComponent = () => { const { selectedMapping } = useDataMapper(); const [isTopActionDropdownOpen, setIsTopActionDropdownOpen] = useState(false); const [topAction, setTopAction] = useState(TopAction.None); + const [transformation, setTransformation] = useState(selectedMapping?.source); + + useEffect(() => { + selectedMapping && setTransformation(selectedMapping.source); + }, [selectedMapping, selectedMapping?.source]); const onTopActionDropdownToggle = useCallback(() => { setIsTopActionDropdownOpen(!isTopActionDropdownOpen); @@ -43,61 +56,107 @@ export const TransformationEditor: FunctionComponent = () => { [], ); - const transformationTree = useMemo((): TreeViewDataItem[] => { - return ( - selectedMapping?.transformation?.elements.map((element) => - TreeItemHelper.createTransformationTreeItem(element), - ) || [] - ); - }, [selectedMapping?.transformation?.elements]); + const handleUpdate = useCallback(() => transformation && setTransformation({ ...transformation }), [transformation]); + + const createTreeItem = useCallback( + (element: ITransformationItem) => ItemHelper.createTransformationItem(element, handleUpdate), + [handleUpdate], + ); + + const handleAddField = useCallback( + (field: IField) => { + if (!transformation) return; + transformation.elements.push({ + parent: selectedMapping?.source, + field: field, + } as IFieldItem); + handleUpdate(); + }, + [handleUpdate, selectedMapping?.source, transformation], + ); + + const handleAddFunction = useCallback( + (func: IFunctionDefinition) => { + if (!transformation) return; + transformation.elements.push({ + parent: selectedMapping?.source, + definition: func, + arguments: [], + } as IFunctionCall); + handleUpdate(); + }, + [handleUpdate, selectedMapping?.source, transformation], + ); - const handleAddField = useCallback((field: IField) => {}, []); + const handleAddConstant = useCallback( + (value: string) => { + if (!transformation) return; + transformation.elements.push({ + parent: selectedMapping?.source, + value: value, + } as ILiteralItem); + handleUpdate(); + }, + [handleUpdate, selectedMapping?.source, transformation], + ); - const handleAddFunction = useCallback((func: IFunctionDefinition) => {}, []); + const handleOnToggle = useCallback(() => {}, []); - const handleAddConstant = useCallback((value: string) => {}, []); + const headerActions = useMemo(() => { + return ( + + + setIsTopActionDropdownOpen(isOpen)} + toggle={(toggleRef: React.Ref) => ( + + {topAction ? topAction : 'Select the top level item to add'} + + )} + > + + + Field + + + Function + + + Constant + + + + + + {topAction === TopAction.Field && } + {topAction === TopAction.Function && } + {topAction === TopAction.Constant && } + + + ); + }, [ + handleAddConstant, + handleAddField, + handleAddFunction, + isTopActionDropdownOpen, + onTopActionDropdownSelect, + onTopActionDropdownToggle, + topAction, + ]); return ( selectedMapping && ( - - - - - setIsTopActionDropdownOpen(isOpen)} - toggle={(toggleRef: React.Ref) => ( - - {topAction ? topAction : 'Select the top level item to add'} - - )} - > - - - Field - - - Function - - - Constant - - - - - - {topAction === TopAction.Field && } - {topAction === TopAction.Function && } - {topAction === TopAction.Constant && } - - - - - - - + + + + + {selectedMapping?.source?.elements.map((element) => createTreeItem(element))} + + + ) ); }; diff --git a/packages/ui/src/components/transformation/action/DeleteFieldButton.tsx b/packages/ui/src/components/transformation/action/DeleteItemButton.tsx similarity index 51% rename from packages/ui/src/components/transformation/action/DeleteFieldButton.tsx rename to packages/ui/src/components/transformation/action/DeleteItemButton.tsx index 4b103b539..24aaf3125 100644 --- a/packages/ui/src/components/transformation/action/DeleteFieldButton.tsx +++ b/packages/ui/src/components/transformation/action/DeleteItemButton.tsx @@ -2,17 +2,18 @@ import { FunctionComponent } from 'react'; import { Button, Tooltip } from '@patternfly/react-core'; import { TrashIcon } from '@patternfly/react-icons'; -type DeleteFieldButtonProps = { +type DeleteItemButtonProps = { + itemName: string; onClick: () => void; }; -export const DeleteFieldButton: FunctionComponent = ({ onClick }) => { +export const DeleteItemButton: FunctionComponent = ({ itemName, onClick }) => { return ( - Delete field from mapping}> + Delete {itemName} from mapping}> diff --git a/packages/ui/src/components/transformation/action/FieldSelector.tsx b/packages/ui/src/components/transformation/action/FieldSelector.tsx index 896c4865b..bc4830b78 100644 --- a/packages/ui/src/components/transformation/action/FieldSelector.tsx +++ b/packages/ui/src/components/transformation/action/FieldSelector.tsx @@ -1,5 +1,5 @@ import { IField } from '../../../models'; -import { FunctionComponent, Ref, useEffect, useMemo, useRef, useState } from 'react'; +import { FunctionComponent, Ref, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Button, Divider, @@ -28,10 +28,10 @@ type FieldOptionProps = SelectOptionProps & { }; type FieldSelectorProps = { - onSelect: (field: IField) => void; + onSubmit: (field: IField) => void; }; -export const FieldSelector: FunctionComponent = ({ onSelect }) => { +export const FieldSelector: FunctionComponent = ({ onSubmit }) => { const [isOpen, setIsOpen] = useState(false); const [selected, setSelected] = useState(''); const [inputValue, setInputValue] = useState(''); @@ -52,6 +52,7 @@ export const FieldSelector: FunctionComponent = ({ onSelect children: field.fieldIdentifier.toString(), documentId: field.fieldIdentifier.documentId, documentType: field.fieldIdentifier.documentType, + fieldDefinition: field, } as FieldOptionProps; }); setAllFieldOptions(updatedAllFieldOptions); @@ -86,7 +87,6 @@ export const FieldSelector: FunctionComponent = ({ onSelect setInputValue(value as string); setFilterValue(''); setSelected(value as string); - onSelect(filteredFieldOptions.find((op) => op.value === value)!.fieldDefinition); } setIsOpen(false); setFocusedItemIndex(null); @@ -264,6 +264,11 @@ export const FieldSelector: FunctionComponent = ({ onSelect }); }; + const handleAddField = useCallback(() => { + const fieldOption = allFieldOptions.find((f) => f.value === selected); + fieldOption && onSubmit(fieldOption.fieldDefinition); + }, [allFieldOptions, onSubmit, selected]); + return ( @@ -289,7 +294,7 @@ export const FieldSelector: FunctionComponent = ({ onSelect variant="control" aria-label="Add Field" data-testid={`add-field-button`} - onClick={() => {}} + onClick={handleAddField} > Add diff --git a/packages/ui/src/components/transformation/action/FunctionSelector.tsx b/packages/ui/src/components/transformation/action/FunctionSelector.tsx index 01088a951..b53e74687 100644 --- a/packages/ui/src/components/transformation/action/FunctionSelector.tsx +++ b/packages/ui/src/components/transformation/action/FunctionSelector.tsx @@ -16,7 +16,7 @@ import { Tooltip, } from '@patternfly/react-core'; import { TimesIcon } from '@patternfly/react-icons'; -import { FunctionComponent, useEffect, useMemo, useRef, useState } from 'react'; +import { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { XPathParserService } from '../../../services/xpath/xpath-parser.service'; import { FunctionGroup } from '../../../services/xpath/xpath-parser'; import { IFunctionDefinition } from '../../../models'; @@ -44,9 +44,9 @@ const allFunctionOptions = Object.keys(functionDefinitions).reduce((acc, value) }, [] as FunctionOptionProps[]); type FunctionSelectorProps = { - onSelect: (selected: IFunctionDefinition) => void; + onSubmit: (selected: IFunctionDefinition) => void; }; -export const FunctionSelector: FunctionComponent = ({ onSelect }) => { +export const FunctionSelector: FunctionComponent = ({ onSubmit }) => { const [isOpen, setIsOpen] = useState(false); const [selected, setSelected] = useState(''); const [inputValue, setInputValue] = useState(''); @@ -91,7 +91,6 @@ export const FunctionSelector: FunctionComponent = ({ onS setInputValue(value as string); setFilterValue(''); setSelected(value as string); - onSelect(functionOptions.find((op) => op.value === value)!.functionDefinition); } setIsOpen(false); setFocusedItemIndex(null); @@ -163,6 +162,10 @@ export const FunctionSelector: FunctionComponent = ({ onS } }; + const handleAddFunction = useCallback(() => { + onSubmit(functionOptions.find((op) => op.value === selected)!.functionDefinition); + }, [functionOptions, onSubmit, selected]); + const toggle = (toggleRef: React.Ref) => ( = ({ onS return Object.keys(groupedOptionIndexes).map((group, index) => { if (groupedOptionIndexes[group].length == 0) return undefined; return index === 0 ? ( - + ) : ( - <> +
    - +
    ); }); }; @@ -295,9 +298,9 @@ export const FunctionSelector: FunctionComponent = ({ onS variant="control" aria-label="Apply Function" data-testid={`apply-function-button`} - onClick={() => {}} + onClick={handleAddFunction} > - Apply + Add
    diff --git a/packages/ui/src/components/transformation/action/InlineEdit.tsx b/packages/ui/src/components/transformation/action/InlineEdit.tsx new file mode 100644 index 000000000..bdf9d904f --- /dev/null +++ b/packages/ui/src/components/transformation/action/InlineEdit.tsx @@ -0,0 +1,84 @@ +import { FormEvent, FunctionComponent, useCallback, useState } from 'react'; +import { Button, Form, TextInput } from '@patternfly/react-core'; +import { CheckIcon, PencilAltIcon, TimesIcon } from '@patternfly/react-icons'; + +type InlineEditProps = { + value: string | number; + onSave: (value: string | number) => void; +}; + +export const InlineEdit: FunctionComponent = ({ value, onSave }) => { + const [text, setText] = useState(value); + const [tempText, setTempText] = useState(value); + const [editing, setEditing] = useState(false); + + const handleTextChange = useCallback((_event: FormEvent, value: string) => { + setTempText(value); + }, []); + + const handleEditing = useCallback(() => { + setEditing(true); + }, []); + + const handleSave = useCallback(() => { + setText(tempText); + onSave(tempText); + setEditing(false); + }, [onSave, tempText]); + + const handleCancel = useCallback(() => { + setTempText(text); + setEditing(false); + }, [text]); + + return editing ? ( +
    +
    +
    + + + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    + ) : ( +
    +
    +
    + {text} +
    +
    + +
    +
    +
    + ); +}; diff --git a/packages/ui/src/components/transformation/item/FieldItem.tsx b/packages/ui/src/components/transformation/item/FieldItem.tsx new file mode 100644 index 000000000..846db1125 --- /dev/null +++ b/packages/ui/src/components/transformation/item/FieldItem.tsx @@ -0,0 +1,75 @@ +import { + AccordionContent, + AccordionItem, + ActionList, + ActionListItem, + Divider, + Label, + Split, + SplitItem, + Truncate, +} from '@patternfly/react-core'; +import { FunctionComponent, useCallback } from 'react'; +import { IFieldItem } from '../../../models'; +import { ForEachButton } from '../action/ForEachButton'; +import { DeleteItemButton } from '../action/DeleteItemButton'; +import { GripVerticalIcon } from '@patternfly/react-icons'; +import { TransformationService } from '../../../services/transformation.service'; + +type FieldTreeItemProps = { + field: IFieldItem; + onUpdate: () => void; +}; + +const FieldButtons: FunctionComponent = ({ field, onUpdate }) => { + const handleDelete = useCallback(() => { + TransformationService.removeFromParent(field); + onUpdate(); + }, [field, onUpdate]); + + return ( + + {field.field.maxOccurs > 1 && ( + <> + + + {}} /> + + + )} + + + + + + ); +}; + +export const FieldItem: FunctionComponent = ({ field, onUpdate }) => { + return ( + + + + + + + + + + + + + + + + + ); +}; diff --git a/packages/ui/src/components/transformation/item/ForEachItem.tsx b/packages/ui/src/components/transformation/item/ForEachItem.tsx new file mode 100644 index 000000000..cfdcd43fa --- /dev/null +++ b/packages/ui/src/components/transformation/item/ForEachItem.tsx @@ -0,0 +1,68 @@ +import { + AccordionContent, + AccordionItem, + AccordionToggle, + ActionList, + ActionListItem, + Divider, + Split, + SplitItem, +} from '@patternfly/react-core'; +import { IForEach } from '../../../models'; +import { FunctionComponent, useCallback } from 'react'; +import { GripVerticalIcon } from '@patternfly/react-icons'; +import { FunctionSelector } from '../action/FunctionSelector'; +import { DeleteItemButton } from '../action/DeleteItemButton'; +import { TransformationService } from '../../../services/transformation.service'; + +type ForEachTreeItemProps = { + forEach: IForEach; + onUpdate: () => void; +}; + +const ForEachButtons: FunctionComponent = ({ forEach, onUpdate }) => { + const handleDelete = useCallback(() => { + TransformationService.removeFromParent(forEach); + onUpdate(); + }, [forEach, onUpdate]); + + return ( + + + + {}} /> + + + + + + + ); +}; + +export const ForEachItem: FunctionComponent = ({ forEach, onUpdate }) => { + return ( + + + + + + + {'For each ' + forEach.collection.fieldIdentifier.toString()} + + + + + + {forEach.collection.fieldIdentifier.toString()} + + ); +}; diff --git a/packages/ui/src/components/transformation/item/FunctionCallItem.tsx b/packages/ui/src/components/transformation/item/FunctionCallItem.tsx new file mode 100644 index 000000000..b16e75e02 --- /dev/null +++ b/packages/ui/src/components/transformation/item/FunctionCallItem.tsx @@ -0,0 +1,102 @@ +import { + AccordionContent, + AccordionItem, + AccordionToggle, + ActionList, + ActionListItem, + Divider, + Label, + Split, + SplitItem, + Stack, + StackItem, +} from '@patternfly/react-core'; +import { FunctionComponent, useCallback, useState } from 'react'; +import { IFunctionCall, IFunctionCallArgument, IFunctionCallArgumentType } from '../../../models'; +import { ItemHelper } from './item-helper'; +import { GripVerticalIcon } from '@patternfly/react-icons'; +import { FunctionIcon } from '../FunctionIcon'; +import { DeleteItemButton } from '../action/DeleteItemButton'; +import { TransformationService } from '../../../services/transformation.service'; + +type FunctionCallTreeItemProps = { + functionCall: IFunctionCall; + onUpdate: () => void; +}; + +const FunctionCallButtons: FunctionComponent = ({ functionCall, onUpdate }) => { + const handleDelete = useCallback(() => { + TransformationService.removeFromParent(functionCall); + onUpdate(); + }, [functionCall, onUpdate]); + + return ( + + + + + + + ); +}; + +type FunctionCallArgumentProps = { + arg: IFunctionCallArgument; +}; + +const FunctionCallArgument: FunctionComponent = ({ arg }) => { + arg.definition.minOccurs; + return <>; +}; + +export const FunctionCallItem: FunctionComponent = ({ functionCall, onUpdate }) => { + const [isExpanded, setIsExpanded] = useState(true); + const [childrenArguments, setChildrenArguments] = useState(functionCall.arguments); + + const handleChildrenUpdate = useCallback(() => { + setChildrenArguments(functionCall.arguments); + functionCall.arguments = [...functionCall.arguments]; + }, [functionCall]); + + const createItem = useCallback( + (element: IFunctionCallArgumentType) => ItemHelper.createTransformationItem(element, handleChildrenUpdate), + [handleChildrenUpdate], + ); + + return ( + + setIsExpanded(!isExpanded)} + isExpanded={isExpanded} + component={({ children }) =>
    {children}
    } + id={`function-${functionCall.definition.name}`} + > + + + + + + {functionCall.definition.displayName} + + + + +
    + + + {childrenArguments.map((arg) => ( + + + + ))} + + +
    + ); +}; diff --git a/packages/ui/src/components/transformation/item/LiteralItem.tsx b/packages/ui/src/components/transformation/item/LiteralItem.tsx new file mode 100644 index 000000000..551c70504 --- /dev/null +++ b/packages/ui/src/components/transformation/item/LiteralItem.tsx @@ -0,0 +1,62 @@ +import { + AccordionContent, + AccordionItem, + ActionList, + ActionListItem, + Divider, + Label, + Split, + SplitItem, +} from '@patternfly/react-core'; +import { FunctionComponent, useCallback } from 'react'; +import { GripVerticalIcon } from '@patternfly/react-icons'; +import { ILiteralItem } from '../../../models'; +import { DeleteItemButton } from '../action/DeleteItemButton'; +import { InlineEdit } from '../action/InlineEdit'; +import { TransformationService } from '../../../services/transformation.service'; + +type LiteralItemProps = { + literal: ILiteralItem; + onUpdate: () => void; +}; + +const LiteralButtons: FunctionComponent = ({ literal, onUpdate }) => { + const handleDelete = useCallback(() => { + TransformationService.removeFromParent(literal); + onUpdate(); + }, [literal, onUpdate]); + + return ( + + + + + + + ); +}; + +export const LiteralItem: FunctionComponent = ({ literal, onUpdate }) => { + return ( + + + + + + + + + (literal.value = v)} /> + + + + + + + + ); +}; diff --git a/packages/ui/src/components/transformation/item/item-helper.tsx b/packages/ui/src/components/transformation/item/item-helper.tsx new file mode 100644 index 000000000..8ae90533e --- /dev/null +++ b/packages/ui/src/components/transformation/item/item-helper.tsx @@ -0,0 +1,23 @@ +import { ForEachItem } from './ForEachItem'; +import { FunctionCallItem } from './FunctionCallItem'; +import { IFieldItem, IForEach, IFunctionCall, ILiteralItem, ITransformationItem } from '../../../models'; +import { LiteralItem } from './LiteralItem'; +import { FieldItem } from './FieldItem'; + +export class ItemHelper { + static createTransformationItem(element: ITransformationItem, onUpdate: () => void) { + if (typeof element === 'object' && 'definition' in element) { + const func = element as IFunctionCall; + return ; + } else if (typeof element === 'object' && 'collection' in element) { + const forEach = element as IForEach; + return ; + } else if (typeof element === 'object' && 'field' in element) { + const field = element as IFieldItem; + return ; + } else { + const literal = element as ILiteralItem; + return ; + } + } +} diff --git a/packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx deleted file mode 100644 index 15679c542..000000000 --- a/packages/ui/src/components/transformation/treeItem/FieldTreeItem.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { ActionList, ActionListItem, Divider, Tooltip, TreeViewDataItem } from '@patternfly/react-core'; -import { ReactNode } from 'react'; -import { IField } from '../../../models'; -import { FunctionSelector } from '../action/FunctionSelector'; -import { ForEachButton } from '../action/ForEachButton'; -import { DeleteFieldButton } from '../action/DeleteFieldButton'; - -export class FieldTreeItem implements TreeViewDataItem { - name: ReactNode; - action: ReactNode; - - constructor(field: IField) { - this.name = ( - -
    {field.expression}
    -
    - ); - - this.action = ( - - - - {}} /> - - {field.maxOccurs > 1 && ( - <> - - - {}} />{' '} - - - )} - - - {}} /> - - - ); - } -} diff --git a/packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx deleted file mode 100644 index 748fe7a6f..000000000 --- a/packages/ui/src/components/transformation/treeItem/ForEachTreeItem.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { TreeViewDataItem } from '@patternfly/react-core'; -import { IForEach } from '../../../models'; - -export class ForEachTreeItem implements TreeViewDataItem { - name: React.ReactNode; - - constructor(forEach: IForEach) { - this.name = 'For each ' + forEach.collection.fieldIdentifier.toString(); - } -} diff --git a/packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx deleted file mode 100644 index 5ccadd607..000000000 --- a/packages/ui/src/components/transformation/treeItem/FunctionCallTreeItem.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { TreeViewDataItem } from '@patternfly/react-core'; -import { ReactNode } from 'react'; -import { IFunctionCall } from '../../../models'; -import { TreeItemHelper } from './tree-item-helper'; - -export class FunctionCallTreeItem implements TreeViewDataItem { - name: ReactNode; - children: TreeViewDataItem[]; - - constructor(functionCall: IFunctionCall) { - this.name = functionCall.ref.name; - this.children = functionCall.arguments.map((arg) => TreeItemHelper.createTransformationTreeItem(arg)); - } -} diff --git a/packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx b/packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx deleted file mode 100644 index 248c973ec..000000000 --- a/packages/ui/src/components/transformation/treeItem/LiteralTreeItem.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { TreeViewDataItem } from '@patternfly/react-core'; - -export class LiteralTreeItem implements TreeViewDataItem { - name: React.ReactNode; - - constructor(value: string | number) { - this.name = value; - } -} diff --git a/packages/ui/src/components/transformation/treeItem/tree-item-helper.ts b/packages/ui/src/components/transformation/treeItem/tree-item-helper.ts deleted file mode 100644 index ceaf8f9ae..000000000 --- a/packages/ui/src/components/transformation/treeItem/tree-item-helper.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { ForEachTreeItem } from './ForEachTreeItem'; -import { FunctionCallTreeItem } from './FunctionCallTreeItem'; -import { IField, IForEach, IFunctionCall, TransformationElement } from '../../../models'; -import { LiteralTreeItem } from './LiteralTreeItem'; -import { FieldTreeItem } from './FieldTreeItem'; - -export class TreeItemHelper { - static createTransformationTreeItem(element: TransformationElement) { - if (typeof element === 'object' && 'ref' in element) { - return new FunctionCallTreeItem(element as IFunctionCall); - } else if (typeof element === 'object' && 'collection' in element) { - return new ForEachTreeItem(element as IForEach); - } else if (typeof element === 'object' && 'parent' in element) { - return new FieldTreeItem(element as IField); - } else { - return new LiteralTreeItem(element); - } - } -} diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 4cb2fb303..8d81ae20d 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -19,28 +19,42 @@ export interface IFunctionDefinition { arguments: IFunctionArgumentDefinition[]; } -export type IFunctionCallArgument = IFunctionCall | IField | string | number; +export interface ITransformationItem { + parent: ITransformationItem | ITransformation; +} -export interface IForEach { +export interface IForEach extends ITransformationItem { collection: IField; transformation: ITransformation; } -export interface IFunctionCall { - ref: IFunctionDefinition; +export interface IFunctionCallArgumentType extends ITransformationItem {} + +export interface IFunctionCallArgument { + definition: IFunctionArgumentDefinition; + arguments: IFunctionCallArgumentType[]; +} + +export interface IFunctionCall extends IFunctionCallArgumentType { + definition: IFunctionDefinition; arguments: IFunctionCallArgument[]; } -export type TransformationElement = IFunctionCall | IForEach | IField | string | number; +export interface IFieldItem extends IFunctionCallArgumentType { + field: IField; +} + +export interface ILiteralItem extends IFunctionCallArgumentType { + value: string | number; +} export interface ITransformation { - elements: TransformationElement[]; + elements: ITransformationItem[]; } export interface IMapping { id: string; name: string; - sourceFields: IField[]; + source: ITransformation; targetFields: IField[]; - transformation?: ITransformation; } diff --git a/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/providers/CanvasProvider.tsx index f866b96f7..d2b039d91 100644 --- a/packages/ui/src/providers/CanvasProvider.tsx +++ b/packages/ui/src/providers/CanvasProvider.tsx @@ -23,6 +23,7 @@ import { Label } from '@patternfly/react-core'; import { useDataMapper } from '../hooks/useDataMapper'; import { IField } from '../models'; import { MappingService } from '../services/mapping.service'; +import { TransformationService } from '../services/transformation.service'; export interface NodeReference { headerRef: HTMLDivElement | null; @@ -68,8 +69,15 @@ export const CanvasProvider: FunctionComponent = (props) => { (event: DragEndEvent) => { const fromField = event.active.data.current as IField; const toField = event.over?.data.current as IField; - const { sourceField, targetField } = MappingService.validateFieldPairForNewMapping(mappings, fromField, toField); - if (sourceField && targetField) { + const { existing, sourceField, targetField } = MappingService.validateNewFieldPairForMapping( + mappings, + fromField, + toField, + ); + if (existing && sourceField) { + TransformationService.addSourceField(existing.source, sourceField); + refreshMappings(); + } else if (sourceField && targetField) { const mapping = MappingService.createNewMapping(sourceField, targetField); mappings.push(mapping); refreshMappings(); diff --git a/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts index 26a4bc654..0b8101d74 100644 --- a/packages/ui/src/services/mapping.service.test.ts +++ b/packages/ui/src/services/mapping.service.test.ts @@ -1,5 +1,5 @@ import { MappingService } from './mapping.service'; -import { DocumentType } from '../models'; +import { DocumentType, IFieldItem } from '../models'; import { XmlSchemaDocumentService } from './xml-schema-document.service'; import * as fs from 'node:fs'; @@ -17,17 +17,10 @@ describe('MappingService', () => { orderXsd, ); - describe('mappingExits()', () => { - it('', () => { - const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); - expect(MappingService.mappingExists([mapping], sourceDoc.fields[0], targetDoc.fields[0])).toBeTruthy(); - expect(MappingService.mappingExists([mapping], sourceDoc.fields[0], targetDoc.fields[0].fields[0])).toBeFalsy(); - }); - }); describe('validateFieldPairForNewMapping()', () => { it('validate mapping', () => { const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); - const validated = MappingService.validateFieldPairForNewMapping( + const validated = MappingService.validateNewFieldPairForMapping( [mapping], sourceDoc.fields[0].fields[0], targetDoc.fields[0].fields[0], @@ -41,14 +34,14 @@ describe('MappingService', () => { }); it('invalidate duplicate mapping', () => { const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); - let validated = MappingService.validateFieldPairForNewMapping( + let validated = MappingService.validateNewFieldPairForMapping( [mapping], sourceDoc.fields[0], targetDoc.fields[0], ); expect(validated.sourceField).toBeUndefined(); expect(validated.targetField).toBeUndefined(); - validated = MappingService.validateFieldPairForNewMapping([mapping], targetDoc.fields[0], sourceDoc.fields[0]); + validated = MappingService.validateNewFieldPairForMapping([mapping], targetDoc.fields[0], sourceDoc.fields[0]); expect(validated.sourceField).toBeUndefined(); expect(validated.targetField).toBeUndefined(); }); @@ -57,7 +50,7 @@ describe('MappingService', () => { describe('createNewMapping', () => { it('', () => { const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); - expect(mapping.sourceFields.length).toEqual(1); + expect(mapping.source.elements.length).toEqual(1); expect(mapping.targetFields.length).toEqual(1); }); }); @@ -68,7 +61,7 @@ describe('MappingService', () => { const mapping2 = MappingService.createNewMapping(sourceDoc.fields[0].fields[1], targetDoc.fields[0].fields[1]); const found = MappingService.getMappingsFor([mapping1, mapping2], sourceDoc.fields[0].fields[1]); expect(found.length).toEqual(1); - expect(found[0].sourceFields[0].fieldIdentifier.toString()).toEqual( + expect((found[0].source.elements[0] as IFieldItem).field.fieldIdentifier.toString()).toEqual( sourceDoc.fields[0].fields[1].fieldIdentifier.toString(), ); }); @@ -84,7 +77,7 @@ describe('MappingService', () => { sourceParam.documentId, ); expect(cleaned.length).toEqual(1); - expect(cleaned[0].sourceFields[0].fieldIdentifier.toString()).toEqual( + expect((cleaned[0].source.elements[0] as IFieldItem).field.fieldIdentifier.toString()).toEqual( sourceDoc.fields[0].fields[0].fieldIdentifier.toString(), ); }); diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 3b349301c..72ea99a9e 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -1,25 +1,25 @@ -import { DocumentType, IDocument, IField, IMapping } from '../models'; +import { + DocumentType, + IDocument, + IField, + IFieldItem, + IForEach, + IFunctionCall, + IFunctionCallArgumentType, + IMapping, + ITransformation, +} from '../models'; import { DocumentService } from './document.service'; +import { TransformationService } from './transformation.service'; type MappingFieldPairReturnType = { + existing?: IMapping; sourceField?: IField; targetField?: IField; }; export class MappingService { - static mappingExists(mappings: IMapping[], sourceField: IField, targetField: IField) { - return ( - !!mappings && - !!mappings.find((mapping) => { - return ( - mapping.sourceFields[0]?.fieldIdentifier.toString() === sourceField.fieldIdentifier.toString() && - mapping.targetFields[0]?.fieldIdentifier.toString() === targetField.fieldIdentifier.toString() - ); - }) - ); - } - - static validateFieldPairForNewMapping( + static validateNewFieldPairForMapping( mappings: IMapping[], fromField: IField, toField: IField, @@ -33,7 +33,11 @@ export class MappingService { ) { const sourceField = fromDocType !== DocumentType.TARGET_BODY ? fromField : toField; const targetField = fromDocType !== DocumentType.TARGET_BODY ? toField : fromField; - if (sourceField && targetField && !MappingService.mappingExists(mappings, sourceField, targetField)) { + const existingMappings = MappingService.getMappingsFor(mappings, targetField); + if (existingMappings.length > 0) { + answer.existing = existingMappings[0]; + } + if (sourceField && targetField) { answer.sourceField = sourceField; answer.targetField = targetField; } @@ -45,7 +49,7 @@ export class MappingService { return { id: 'mapping-' + Math.floor(Math.random() * 10000), name: '', - sourceFields: [sourceField], + source: TransformationService.createTransformationWithField(sourceField), targetFields: [targetField], } as IMapping; } @@ -54,10 +58,38 @@ export class MappingService { if (field.ownerDocument.documentType === DocumentType.TARGET_BODY) { return allMappings.filter((m) => m.targetFields.indexOf(field) !== -1); } else { - return allMappings.filter((m) => m.sourceFields.indexOf(field) !== -1); + return allMappings.filter((m) => MappingService.isFieldInTransformation(m.source, field)); } } + static extractSourceFields(transformation: ITransformation) { + return transformation.elements.reduce((acc, element) => { + if ('arguments' in element) { + acc.push(...MappingService.extractSourceFieldsFromArguments((element as IFunctionCall).arguments)); + } else if ('transformation' in element) { + acc.push(...MappingService.extractSourceFields((element as IForEach).transformation)); + } else if ('field' in element) { + acc.push((element as IFieldItem).field); + } + return acc; + }, [] as IField[]); + } + + static extractSourceFieldsFromArguments(args: IFunctionCallArgumentType[]) { + return args.reduce((acc, arg) => { + if ('arguments' in arg) { + acc.push(...MappingService.extractSourceFieldsFromArguments((arg as IFunctionCall).arguments)); + } else if ('field' in arg) { + acc.push((arg as IFieldItem).field); + } + return acc; + }, [] as IField[]); + } + + static isFieldInTransformation(transformation: ITransformation, field: IField) { + return MappingService.extractSourceFields(transformation).find((f) => f === field) !== undefined; + } + static removeAllMappingsForDocument(allMappings: IMapping[], documentType: DocumentType, documentId: string) { if (documentType === DocumentType.TARGET_BODY) { return allMappings.reduce((acc, mapping) => { @@ -71,7 +103,7 @@ export class MappingService { }, [] as IMapping[]); } else { return allMappings.reduce((acc, mapping) => { - const staleField = mapping.sourceFields.find( + const staleField = MappingService.extractSourceFields(mapping.source).find( (sourceField) => sourceField.fieldIdentifier.documentType === documentType && sourceField.fieldIdentifier.documentId === documentId, @@ -95,7 +127,7 @@ export class MappingService { }, [] as IMapping[]); } else { return allMappings.reduce((acc, mapping) => { - const staleField = mapping.sourceFields.find( + const staleField = MappingService.extractSourceFields(mapping.source).find( (sourceField) => sourceField.ownerDocument.documentType === document.documentType && sourceField.ownerDocument.documentId === document.documentId && diff --git a/packages/ui/src/services/transformation.service.ts b/packages/ui/src/services/transformation.service.ts new file mode 100644 index 000000000..a0b33351f --- /dev/null +++ b/packages/ui/src/services/transformation.service.ts @@ -0,0 +1,40 @@ +import { + IField, + IFieldItem, + IFunctionCall, + IFunctionCallArgument, + IFunctionCallArgumentType, + ITransformation, + ITransformationItem, +} from '../models'; + +export class TransformationService { + static removeFromParent(target: ITransformationItem) { + if ('elements' in target.parent) { + const parent = target.parent as ITransformation; + parent.elements = parent.elements.filter((item) => item !== target); + } else { + const parent = target.parent as IFunctionCall; + parent.arguments = parent.arguments.reduce((acc, item) => { + item.arguments = item.arguments.reduce((acc2, item2) => { + item2 !== target && acc2.push(item2); + return acc2; + }, [] as IFunctionCallArgumentType[]); + acc.push(item); + return acc; + }, [] as IFunctionCallArgument[]); + } + } + + static createTransformationWithField(field: IField) { + const transformation = { elements: [] } as ITransformation; + TransformationService.addSourceField(transformation, field); + return transformation; + } + + static addSourceField(source: ITransformation, field: IField) { + const fieldItem = { field: field } as IFieldItem; + fieldItem.parent = source; + source.elements.push(fieldItem); + } +} From 2a4a290fcaa3afdc6b3c6c4734fdb77e2b747e81 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 23 May 2024 17:47:51 -0400 Subject: [PATCH 222/471] checkpoint --- .../transformation/TransformationEditor.tsx | 145 ++---------------- .../transformation/action/ConstantInput.tsx | 2 +- .../action/DeleteItemButton.tsx | 1 + .../action/headerActionList.tsx | 117 ++++++++++++++ .../transformation/item/FunctionCallItem.tsx | 73 ++++++--- packages/ui/src/models/mapping.ts | 4 +- packages/ui/src/providers/CanvasProvider.tsx | 2 +- .../ui/src/providers/DataMapperProvider.tsx | 6 +- .../ui/src/services/transformation.service.ts | 37 ++++- 9 files changed, 218 insertions(+), 169 deletions(-) create mode 100644 packages/ui/src/components/transformation/action/headerActionList.tsx diff --git a/packages/ui/src/components/transformation/TransformationEditor.tsx b/packages/ui/src/components/transformation/TransformationEditor.tsx index a03d126c2..64722f6af 100644 --- a/packages/ui/src/components/transformation/TransformationEditor.tsx +++ b/packages/ui/src/components/transformation/TransformationEditor.tsx @@ -1,151 +1,26 @@ -import { FunctionComponent, MouseEvent, useCallback, useEffect, useMemo, useState } from 'react'; -import { FunctionSelector } from './action/FunctionSelector'; -import { - Accordion, - ActionList, - ActionListItem, - Card, - CardBody, - CardHeader, - Dropdown, - DropdownItem, - DropdownList, - MenuToggle, - MenuToggleElement, -} from '@patternfly/react-core'; +import { FunctionComponent, useCallback, useMemo } from 'react'; +import { Accordion, Card, CardBody, CardHeader } from '@patternfly/react-core'; import { useDataMapper } from '../../hooks'; -import { - IField, - IFieldItem, - IFunctionCall, - IFunctionDefinition, - ILiteralItem, - ITransformation, - ITransformationItem, -} from '../../models'; -import { ConstantInput } from './action/ConstantInput'; -import { FieldSelector } from './action/FieldSelector'; +import { ITransformationItem } from '../../models'; import { ItemHelper } from './item/item-helper'; - -enum TopAction { - Function = 'Function', - Field = 'Field', - Constant = 'Constant', - None = '', -} +import { HeaderActionList } from './action/headerActionList'; export const TransformationEditor: FunctionComponent = () => { - const { selectedMapping } = useDataMapper(); - const [isTopActionDropdownOpen, setIsTopActionDropdownOpen] = useState(false); - const [topAction, setTopAction] = useState(TopAction.None); - const [transformation, setTransformation] = useState(selectedMapping?.source); - - useEffect(() => { - selectedMapping && setTransformation(selectedMapping.source); - }, [selectedMapping, selectedMapping?.source]); - - const onTopActionDropdownToggle = useCallback(() => { - setIsTopActionDropdownOpen(!isTopActionDropdownOpen); - }, [isTopActionDropdownOpen]); + const { selectedMapping, setSelectedMapping } = useDataMapper(); + const transformation = selectedMapping?.source; - const onTopActionDropdownSelect = useCallback( - (_event: MouseEvent | undefined, value: string | number | undefined) => { - setTopAction(value ? (value as TopAction) : TopAction.None); - setIsTopActionDropdownOpen(false); - }, - [], - ); - - const handleUpdate = useCallback(() => transformation && setTransformation({ ...transformation }), [transformation]); + const handleUpdate = useCallback(() => setSelectedMapping(selectedMapping), [selectedMapping, setSelectedMapping]); const createTreeItem = useCallback( (element: ITransformationItem) => ItemHelper.createTransformationItem(element, handleUpdate), [handleUpdate], ); - const handleAddField = useCallback( - (field: IField) => { - if (!transformation) return; - transformation.elements.push({ - parent: selectedMapping?.source, - field: field, - } as IFieldItem); - handleUpdate(); - }, - [handleUpdate, selectedMapping?.source, transformation], - ); - - const handleAddFunction = useCallback( - (func: IFunctionDefinition) => { - if (!transformation) return; - transformation.elements.push({ - parent: selectedMapping?.source, - definition: func, - arguments: [], - } as IFunctionCall); - handleUpdate(); - }, - [handleUpdate, selectedMapping?.source, transformation], - ); - - const handleAddConstant = useCallback( - (value: string) => { - if (!transformation) return; - transformation.elements.push({ - parent: selectedMapping?.source, - value: value, - } as ILiteralItem); - handleUpdate(); - }, - [handleUpdate, selectedMapping?.source, transformation], - ); - const handleOnToggle = useCallback(() => {}, []); const headerActions = useMemo(() => { - return ( - - - setIsTopActionDropdownOpen(isOpen)} - toggle={(toggleRef: React.Ref) => ( - - {topAction ? topAction : 'Select the top level item to add'} - - )} - > - - - Field - - - Function - - - Constant - - - - - - {topAction === TopAction.Field && } - {topAction === TopAction.Function && } - {topAction === TopAction.Constant && } - - - ); - }, [ - handleAddConstant, - handleAddField, - handleAddFunction, - isTopActionDropdownOpen, - onTopActionDropdownSelect, - onTopActionDropdownToggle, - topAction, - ]); + return ; + }, [handleUpdate, transformation]); return ( selectedMapping && ( @@ -153,7 +28,7 @@ export const TransformationEditor: FunctionComponent = () => { - {selectedMapping?.source?.elements.map((element) => createTreeItem(element))} + {transformation?.elements.map((element) => createTreeItem(element))} diff --git a/packages/ui/src/components/transformation/action/ConstantInput.tsx b/packages/ui/src/components/transformation/action/ConstantInput.tsx index 84859055d..51ef8193f 100644 --- a/packages/ui/src/components/transformation/action/ConstantInput.tsx +++ b/packages/ui/src/components/transformation/action/ConstantInput.tsx @@ -15,7 +15,7 @@ export const ConstantInput: FunctionComponent = ({ onSubmit return ( - setText(value)} value={text} /> + setText(value)} value={text} /> diff --git a/packages/ui/src/components/transformation/action/DeleteItemButton.tsx b/packages/ui/src/components/transformation/action/DeleteItemButton.tsx index 24aaf3125..ff2e29508 100644 --- a/packages/ui/src/components/transformation/action/DeleteItemButton.tsx +++ b/packages/ui/src/components/transformation/action/DeleteItemButton.tsx @@ -11,6 +11,7 @@ export const DeleteItemButton: FunctionComponent = ({ ite return ( Delete {itemName} from mapping}> - -
    - )} - - ); -}; +import { TargetFieldActions } from '../mapping/TargetFieldActions'; type DocumentFieldProps = { documentType: DocumentType; @@ -100,10 +50,13 @@ export const DocumentField: FunctionComponent = ({ documentT )} - {field.name} - - - + {field.name} +   + {field.ownerDocument.documentType === DocumentType.TARGET_BODY && ( + + + + )} @@ -123,9 +76,11 @@ export const DocumentField: FunctionComponent = ({ documentT )} {field.name} - - - + {field.ownerDocument.documentType === DocumentType.TARGET_BODY && ( + + + + )} diff --git a/packages/ui/src/components/document/NodeContainer.tsx b/packages/ui/src/components/document/NodeContainer.tsx index ac5864b90..1a2be991f 100644 --- a/packages/ui/src/components/document/NodeContainer.tsx +++ b/packages/ui/src/components/document/NodeContainer.tsx @@ -1,5 +1,5 @@ import { CSSProperties, forwardRef, FunctionComponent, PropsWithChildren } from 'react'; -import { IField } from '../../models'; +import { IField } from '../../models/document'; import { useDraggable, useDroppable } from '@dnd-kit/core'; interface NodeContainerProps extends PropsWithChildren { diff --git a/packages/ui/src/components/mapping/TargetFieldActions.tsx b/packages/ui/src/components/mapping/TargetFieldActions.tsx new file mode 100644 index 000000000..715b1d82d --- /dev/null +++ b/packages/ui/src/components/mapping/TargetFieldActions.tsx @@ -0,0 +1,101 @@ +import { + ActionList, + ActionListGroup, + ActionListItem, + Button, + InputGroup, + InputGroupItem, + Modal, + ModalVariant, + TextInput, +} from '@patternfly/react-core'; +import { FormEvent, FunctionComponent, MouseEvent, useCallback, useMemo, useState } from 'react'; +import { PencilAltIcon } from '@patternfly/react-icons'; +import { TransformationEditor } from '../transformation/TransformationEditor'; +import { TransformationService } from '../../services/transformation.service'; +import { useDataMapper } from '../../hooks'; +import { MappingService } from '../../services/mapping.service'; +import { IField } from '../../models/document'; + +type TargetFieldActionsProps = { + field: IField; +}; + +export const TargetFieldActions: FunctionComponent = ({ field }) => { + const { mappings, refreshMappings } = useDataMapper(); + const correlatedMappings = MappingService.getMappingsFor(mappings, field); + const mapping = correlatedMappings.length === 1 ? correlatedMappings[0] : undefined; + const [isEditorOpen, setIsEditorOpen] = useState(false); + + const launchTransformationEditor = useCallback((event: MouseEvent) => { + setIsEditorOpen(true); + event.stopPropagation(); + }, []); + + const closeTransformationEditor = useCallback(() => setIsEditorOpen(false), []); + + const expression = useMemo(() => { + return mapping ? TransformationService.toExpression(mapping.source) : ''; + }, [mapping]); + + const handleExpressionChange = useCallback( + (_event: FormEvent, value: string) => { + if (mapping) { + mapping.source = TransformationService.fromExpression(value); + refreshMappings(); + } + }, + [mapping, refreshMappings], + ); + + return ( + mapping && ( + + + + + + + + + + + + + , + ]} + > + + + + + ) + ); +}; diff --git a/packages/ui/src/components/transformation/TransformationEditor.tsx b/packages/ui/src/components/transformation/TransformationEditor.tsx index 64722f6af..0239eab45 100644 --- a/packages/ui/src/components/transformation/TransformationEditor.tsx +++ b/packages/ui/src/components/transformation/TransformationEditor.tsx @@ -1,37 +1,93 @@ -import { FunctionComponent, useCallback, useMemo } from 'react'; -import { Accordion, Card, CardBody, CardHeader } from '@patternfly/react-core'; +import { FunctionComponent, MouseEvent, useCallback, useState } from 'react'; +import { + Bullseye, + Button, + Grid, + GridItem, + Menu, + MenuContent, + MenuGroup, + MenuItem, + Tab, + Tabs, + TabTitleText, +} from '@patternfly/react-core'; +import { ArrowRightIcon } from '@patternfly/react-icons'; import { useDataMapper } from '../../hooks'; -import { ITransformationItem } from '../../models'; -import { ItemHelper } from './item/item-helper'; -import { HeaderActionList } from './action/headerActionList'; +import { IMapping } from '../../models/mapping'; +import { TransformationService } from '../../services/transformation.service'; +import { XPathParserService } from '../../services/xpath/xpath-parser.service'; +import { FunctionGroup } from '../../services/xpath/xpath-parser'; +import { SourcePanel } from '../../layout/views/SourcePanel'; +import { NodeContainer } from '../document/NodeContainer'; +import { XPathEditor } from './action/XPathEditor'; -export const TransformationEditor: FunctionComponent = () => { - const { selectedMapping, setSelectedMapping } = useDataMapper(); - const transformation = selectedMapping?.source; - - const handleUpdate = useCallback(() => setSelectedMapping(selectedMapping), [selectedMapping, setSelectedMapping]); +type TransformationEditorProps = { + mapping: IMapping; +}; - const createTreeItem = useCallback( - (element: ITransformationItem) => ItemHelper.createTransformationItem(element, handleUpdate), - [handleUpdate], +export const TransformationEditor: FunctionComponent = ({ mapping }) => { + const { refreshMappings } = useDataMapper(); + const transformation = mapping?.source; + const transformationExpression = TransformationService.toExpression(transformation); + const handleUpdate = useCallback(() => refreshMappings(), [refreshMappings]); + const handleExpressionChange = useCallback( + (expression?: string) => { + if (expression) { + mapping.source = TransformationService.fromExpression(expression); + handleUpdate(); + } + }, + [handleUpdate, mapping], ); + const functionDefinitions = XPathParserService.getXPathFunctionDefinitions(); - const handleOnToggle = useCallback(() => {}, []); - - const headerActions = useMemo(() => { - return ; - }, [handleUpdate, transformation]); + const [activeTabKey, setActiveTabKey] = useState(0); + const handleTabClick = (_event: MouseEvent, tabIndex: string | number) => { + setActiveTabKey(tabIndex); + }; return ( - selectedMapping && ( - - - - - {transformation?.elements.map((element) => createTreeItem(element))} - - - - ) + + + + Function}> + + + {Object.keys(functionDefinitions).map((value) => ( + + {functionDefinitions[value as FunctionGroup].map((func, index) => ( + + + {func.displayName} + + + ))} + + ))} + + + + Field}> +
    + +
    +
    +
    +
    + + + , + ]} + > + + + + ); +}; + +type ConditionMenuProps = { + nodeData: NodeData; + mapping: MappingItem; + onUpdate: () => void; +}; + +const ConditionMenuAction: FunctionComponent = ({ nodeData }) => { + const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); + const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); + const onSelectAction = useCallback( + (_event: MouseEvent | undefined, value: string | number | undefined) => { + switch (value) { + case 'if': + MappingService.wrapWithIf(mapping); + break; + case 'choose': + MappingService.wrapWithChoose(mapping); + break; + case 'foreach': + MappingService.wrapWithForEach(mapping); + break; + case 'sort': + MappingService.wrapWithSort(mapping); + } + setIsActionMenuOpen(false); + }, + [mapping], + ); + + return ( + + ) => ( + + + + )} + isOpen={isActionMenuOpen} + onOpenChange={(isOpen: boolean) => setIsActionMenuOpen(isOpen)} + > + + + Add if + + + Add choose + + + Add for-each + + + Add sort + + + + + ); +}; + +type TargetFieldActionsProps = { + nodeData: NodeData; +}; + +export const TargetFieldActions: FunctionComponent = ({ nodeData }) => { + const { refreshMappingTree } = useDataMapper(); + const mapping = 'mapping' in nodeData ? (nodeData.mapping! as ExpressionItem) : undefined; + + return ( + + {mapping && ( + <> + + + + )} + + + ); +}; diff --git a/packages/ui/src/components/document/target/node-helper.ts b/packages/ui/src/components/document/target/node-helper.ts new file mode 100644 index 000000000..628759290 --- /dev/null +++ b/packages/ui/src/components/document/target/node-helper.ts @@ -0,0 +1,42 @@ +import { IField } from '../../../models/document'; +import { MappingItem } from '../../../models/mapping'; +import { ConditionNodeData, DocumentNodeData, FieldNodeData, NodeData } from '../../../models/visualization'; + +export class NodeHelper { + static generateNodeDataChildren(parent: NodeData): NodeData[] { + if (parent instanceof DocumentNodeData) { + } + if (parent instanceof ConditionNodeData) { + return parent.mapping?.children + ? parent.mapping.children.map((m) => NodeHelper.createNodeDataFromMappingItem(m)) + : []; + } + + return parent.children.reduce((acc, field) => { + const conditions = !mappingChildren + ? [] + : mappingChildren.reduce((conditionsAcc, item) => { + if (NodeHelper.getConditionedFields(item).includes(field) && !conditionsAcc.includes(item)) { + conditionsAcc.push(item); + } + return conditionsAcc; + }, [] as MappingItem[]); + conditions.length > 1 ? conditions.forEach((c) => !acc.includes(c) && acc.push(c)) : acc.push(field); + return acc; + }, [] as DocumentNodeData[]); + } + + static createNodeDataFromMappingItem(item: MappingItem): NodeData {} + + static getConditionedFields(item: MappingItem): IField[] { + return 'containedFields' in item ? (item.containedFields as IField[]) : []; + } + + static isCollectionField(nodeData: NodeData) { + return nodeData instanceof FieldNodeData && nodeData.field?.maxOccurs && nodeData.field.maxOccurs > 1; + } + + static isAttributeField(nodeData: NodeData) { + return nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; + } +} diff --git a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx b/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx deleted file mode 100644 index 9189d30a8..000000000 --- a/packages/ui/src/components/mapping/MappingDetailsDrawerPanel.tsx +++ /dev/null @@ -1,189 +0,0 @@ -import { FunctionComponent, useCallback, useMemo, useState } from 'react'; -import { useDataMapper } from '../../hooks'; -import { - ActionList, - ActionListItem, - Button, - Card, - CardBody, - CardHeader, - CardTitle, - DrawerActions, - DrawerCloseButton, - DrawerHead, - DrawerPanelContent, - Stack, - StackItem, - Text, - TextContent, - TextVariants, - Tooltip, -} from '@patternfly/react-core'; -import { IField } from '../../models'; -import { DeleteMappingButton } from './DeleteMappingButton'; -import { Table, TableVariant, Tbody, Td, Tr } from '@patternfly/react-table'; -import { PenIcon, TimesIcon } from '@patternfly/react-icons'; -import { TransformationEditor } from '../transformation/TransformationEditor'; -import { MappingService } from '../../services/mapping.service'; - -type FieldDetailsProps = { - field: IField; -}; - -const FieldDetails: FunctionComponent = ({ field }) => { - return ( - - - - - - - - - - - - - - - {field.defaultValue && ( - - - - - )} - - - - - - - - - -
    name{field.name}
    type{field.type}
    path{field.fieldIdentifier.toString()}
    defaultValue{field.defaultValue}
    minOccurs{field.minOccurs}
    maxOccurs{field.maxOccurs}
    - ); -}; - -type MappingDetailsDrawerPanelProps = { - onToggleEditMode: (isEditMode: boolean) => void; -}; - -export const MappingDetailsDrawerPanel: FunctionComponent = ({ onToggleEditMode }) => { - const { selectedMapping, setSelectedMapping } = useDataMapper(); - const [isEditMode, setEditMode] = useState(false); - - const handleToggleEditMode = useCallback( - (isEditMode: boolean) => { - setEditMode(isEditMode); - onToggleEditMode(isEditMode); - }, - [onToggleEditMode], - ); - - const handleCloseDetails = useCallback(() => { - handleToggleEditMode(false); - setSelectedMapping(null); - }, [handleToggleEditMode, setSelectedMapping]); - - const handleCloseEditTransformation = useCallback(() => { - handleToggleEditMode(false); - }, [handleToggleEditMode]); - - const headerActions = useMemo(() => { - return ( - - {isEditMode ? ( - <> - - Cancel Edit Transformation}> - - - - - ) : ( - - Edit Transformation}> - - - - )} - - ); - }, [handleCloseEditTransformation, handleToggleEditMode, isEditMode]); - - return ( - selectedMapping && ( - - - - Mapping Details{isEditMode && ' / Edit Transformation'} - - - setSelectedMapping(null)} /> - - - - {isEditMode ? ( - - - Target Field : {selectedMapping.targetFields[0].fieldIdentifier.toString()} - - - - - - ) : ( - - - - - Source - - - - {MappingService.extractSourceFields(selectedMapping.source).map((field) => ( - - - - ))} - - - - - - - - Target - - - - {selectedMapping.targetFields.map((field) => ( - - - - ))} - - - - - - )} - - ) - ); -}; diff --git a/packages/ui/src/components/mapping/TargetFieldActions.tsx b/packages/ui/src/components/mapping/TargetFieldActions.tsx deleted file mode 100644 index 53608bf4c..000000000 --- a/packages/ui/src/components/mapping/TargetFieldActions.tsx +++ /dev/null @@ -1,169 +0,0 @@ -import { - ActionList, - ActionListGroup, - ActionListItem, - Button, - Dropdown, - DropdownItem, - DropdownList, - InputGroup, - InputGroupItem, - MenuToggle, - MenuToggleElement, - Modal, - ModalVariant, - TextInput, -} from '@patternfly/react-core'; -import { FormEvent, FunctionComponent, MouseEvent, Ref, useCallback, useMemo, useRef, useState } from 'react'; -import { PencilAltIcon, EllipsisVIcon } from '@patternfly/react-icons'; -import { TransformationEditor } from '../transformation/TransformationEditor'; -import { TransformationService } from '../../services/transformation.service'; -import { useDataMapper } from '../../hooks'; -import { MappingService } from '../../services/mapping.service'; -import { IField } from '../../models/document'; -import { useCanvas } from '../../hooks/useCanvas'; -import { DnDHandler } from '../../providers/dnd/DnDHandler'; -import { TransformationEditorDnDHandler } from '../../providers/dnd/TransformationEditorDnDHandler'; - -type TargetFieldActionsProps = { - field: IField; -}; - -export const TargetFieldActions: FunctionComponent = ({ field }) => { - const { mappingTree, refreshMappingTree } = useDataMapper(); - const { getActiveHandler, setActiveHandler } = useCanvas(); - const correlatedMappings = MappingService.getMappingsFor(mappingTree, field); - const mapping = correlatedMappings.length === 1 ? correlatedMappings[0] : undefined; - const [isEditorOpen, setIsEditorOpen] = useState(false); - - const originalDnDHandlerRef = useRef(); - const dndHandler = useMemo(() => new TransformationEditorDnDHandler(), []); - const launchTransformationEditor = useCallback( - (event: MouseEvent) => { - originalDnDHandlerRef.current = getActiveHandler(); - setActiveHandler(dndHandler); - setIsEditorOpen(true); - event.stopPropagation(); - }, - [dndHandler, getActiveHandler, setActiveHandler], - ); - - const closeTransformationEditor = useCallback(() => { - setActiveHandler(originalDnDHandlerRef.current); - setIsEditorOpen(false); - }, [setActiveHandler]); - - const expression = useMemo(() => { - return mapping ? TransformationService.toExpression(mapping.source) : ''; - }, [mapping]); - - const handleExpressionChange = useCallback( - (_event: FormEvent, value: string) => { - if (mapping) { - mapping.source = TransformationService.fromExpression(value); - refreshMappingTree(); - } - }, - [mapping, refreshMappingTree], - ); - - const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); - const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); - const onSelectAction = useCallback( - (_event: MouseEvent | undefined, value: string | number | undefined) => { - switch (value) { - case 'editor': - setIsEditorOpen(true); - break; - case 'if': - MappingService.wrapWithIf(mapping); - break; - case 'choose': - MappingService.wrapWithChoose(mapping); - } - setIsActionMenuOpen(false); - }, - [mapping], - ); - - return ( - mapping && ( - - - - - - - - - - - - ) => ( - - - - )} - isOpen={isActionMenuOpen} - onOpenChange={(isOpen: boolean) => setIsActionMenuOpen(isOpen)} - > - - }> - Open Expression Editor - - - Add if Condition - - - Add choose Condition - - - - - Close - , - ]} - > - - - - - - - - - Confirm - , - , - ]} - > - Delete mapping? - - - ); -}; diff --git a/packages/ui/src/components/document/target/TargetDocument.tsx b/packages/ui/src/components/document/target/TargetDocument.tsx index 3e95f7411..b90b7cc1c 100644 --- a/packages/ui/src/components/document/target/TargetDocument.tsx +++ b/packages/ui/src/components/document/target/TargetDocument.tsx @@ -23,11 +23,9 @@ import { useDataMapper } from '../../../hooks'; import { DocumentNodeData } from '../../../models/visualization'; import { TargetDocumentNode } from './TargetDocumentNode'; -import { NodeHelper } from './node-helper'; -export type TargetDocumentProps = { - model: IDocument; -}; +import { VisualizationService } from '../../../services/visualization.service'; +import { TargetPrimitiveDocumentActions } from './TargetPrimitiveDocumentActions'; type TargetDocumentImplProps = { nodeData: DocumentNodeData; @@ -56,7 +54,7 @@ const TargetPrimitiveDocumentImpl = forwardRef { return ( @@ -82,6 +80,10 @@ const TargetPrimitiveDocumentImpl = forwardRef {nodeData.title} +   + + + @@ -89,8 +91,8 @@ const TargetPrimitiveDocumentImpl = forwardRef - {nodeDataChildren.map((nodeData) => ( - + {nodeDataChildren.map((child) => ( + ))} @@ -123,7 +125,7 @@ const TargetStructuredDocumentImpl = forwardRef { return ( @@ -155,8 +157,8 @@ const TargetStructuredDocumentImpl = forwardRef - {nodeDataChildren.map((nodeData) => ( - + {nodeDataChildren.map((child) => ( + ))} @@ -166,6 +168,10 @@ const TargetStructuredDocumentImpl = forwardRef = ({ model }) => { const { getNodeReference, setNodeReference } = useCanvas(); const { mappingTree } = useDataMapper(); diff --git a/packages/ui/src/components/document/target/TargetDocumentNode.tsx b/packages/ui/src/components/document/target/TargetDocumentNode.tsx index 6132d9cd9..2fbf9857c 100644 --- a/packages/ui/src/components/document/target/TargetDocumentNode.tsx +++ b/packages/ui/src/components/document/target/TargetDocumentNode.tsx @@ -8,7 +8,8 @@ import '../Document.scss'; import { TargetFieldActions } from './TargetFieldActions'; import { NodeData } from '../../../models/visualization'; -import { NodeHelper } from './node-helper'; + +import { VisualizationService } from '../../../services/visualization.service'; type TargetDocumentNodeProps = { nodeData: NodeData; @@ -33,9 +34,9 @@ export const TargetDocumentNode: FunctionComponent = ({ const nodeRefId = nodeData.path.toString(); getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); - const isCollection = NodeHelper.isCollectionField(nodeData); - const isAttribute = NodeHelper.isAttributeField(nodeData); - const nodeDataChildren = NodeHelper.generateNodeDataChildren(nodeData); + const isCollection = VisualizationService.isCollectionField(nodeData); + const isAttribute = VisualizationService.isAttributeField(nodeData); + const nodeDataChildren = VisualizationService.generateNodeDataChildren(nodeData); return nodeDataChildren.length === 0 ? ( diff --git a/packages/ui/src/components/document/target/TargetFieldActions.tsx b/packages/ui/src/components/document/target/TargetFieldActions.tsx index cad5edeb4..f06b56d49 100644 --- a/packages/ui/src/components/document/target/TargetFieldActions.tsx +++ b/packages/ui/src/components/document/target/TargetFieldActions.tsx @@ -1,189 +1,13 @@ -import { - ActionList, - ActionListGroup, - ActionListItem, - Button, - Dropdown, - DropdownItem, - DropdownList, - InputGroup, - InputGroupItem, - MenuToggle, - MenuToggleElement, - Modal, - ModalVariant, - TextInput, -} from '@patternfly/react-core'; -import { FormEvent, FunctionComponent, MouseEvent, Ref, useCallback, useMemo, useRef, useState } from 'react'; -import { PencilAltIcon, EllipsisVIcon } from '@patternfly/react-icons'; -import { TransformationEditor } from '../../transformation/TransformationEditor'; -import { MappingService } from '../../../services/mapping.service'; -import { useCanvas } from '../../../hooks/useCanvas'; -import { DnDHandler } from '../../../providers/dnd/DnDHandler'; -import { TransformationEditorDnDHandler } from '../../../providers/dnd/TransformationEditorDnDHandler'; +import { ActionList } from '@patternfly/react-core'; +import { FunctionComponent } from 'react'; import { NodeData } from '../../../models/visualization'; import { useDataMapper } from '../../../hooks'; -import { ExpressionItem, MappingItem } from '../../../models/mapping'; - -type ExpressionInputProps = { - mapping: ExpressionItem; - onUpdate: () => void; -}; - -const ExpressionInputAction: FunctionComponent = ({ mapping, onUpdate }) => { - const handleExpressionChange = useCallback( - (_event: FormEvent, value: string) => { - if (mapping) { - mapping.expression = value; - onUpdate(); - } - }, - [mapping, onUpdate], - ); - - return ( - - - - - - - - - - ); -}; - -type ExpressionEditorProps = { - nodeData: NodeData; - mapping: ExpressionItem; - onUpdate: () => void; -}; - -const ExpressionEditorAction: FunctionComponent = ({ nodeData, mapping, onUpdate }) => { - const { getActiveHandler, setActiveHandler } = useCanvas(); - const originalDnDHandlerRef = useRef(); - const dndHandler = useMemo(() => new TransformationEditorDnDHandler(), []); - const [isEditorOpen, setIsEditorOpen] = useState(false); - - const launchTransformationEditor = useCallback( - (event: MouseEvent) => { - originalDnDHandlerRef.current = getActiveHandler(); - setActiveHandler(dndHandler); - setIsEditorOpen(true); - event.stopPropagation(); - }, - [dndHandler, getActiveHandler, setActiveHandler], - ); - const closeTransformationEditor = useCallback(() => { - setActiveHandler(originalDnDHandlerRef.current); - setIsEditorOpen(false); - }, [setActiveHandler]); - - return ( - - - , - ]} - > - - - - ); -}; - -type ConditionMenuProps = { - nodeData: NodeData; - mapping: MappingItem; - onUpdate: () => void; -}; - -const ConditionMenuAction: FunctionComponent = ({ nodeData }) => { - const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); - const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); - const onSelectAction = useCallback( - (_event: MouseEvent | undefined, value: string | number | undefined) => { - switch (value) { - case 'if': - MappingService.wrapWithIf(mapping); - break; - case 'choose': - MappingService.wrapWithChoose(mapping); - break; - case 'foreach': - MappingService.wrapWithForEach(mapping); - break; - case 'sort': - MappingService.wrapWithSort(mapping); - } - setIsActionMenuOpen(false); - }, - [mapping], - ); - - return ( - - ) => ( - - - - )} - isOpen={isActionMenuOpen} - onOpenChange={(isOpen: boolean) => setIsActionMenuOpen(isOpen)} - > - - - Add if - - - Add choose - - - Add for-each - - - Add sort - - - - - ); -}; +import { ChooseItem, ExpressionItem } from '../../../models/mapping'; +import { DeleteItemAction } from './actions/DeleteItemAction'; +import { ExpressionEditorAction } from './actions/ExpressionEditorAction'; +import { ExpressionInputAction } from './actions/ExpressionInputAction'; +import { ConditionMenuAction } from './actions/ConditionMenuAction'; +import { ChooseMenuAction } from './actions/ChooseMenuAction'; type TargetFieldActionsProps = { nodeData: NodeData; @@ -192,6 +16,7 @@ type TargetFieldActionsProps = { export const TargetFieldActions: FunctionComponent = ({ nodeData }) => { const { refreshMappingTree } = useDataMapper(); const mapping = 'mapping' in nodeData ? (nodeData.mapping! as ExpressionItem) : undefined; + const isChooseNode = 'mapping' in nodeData && nodeData.mapping instanceof ChooseItem; return ( @@ -201,7 +26,12 @@ export const TargetFieldActions: FunctionComponent = ({ )} - + {isChooseNode ? ( + + ) : ( + + )} + {mapping && } ); }; diff --git a/packages/ui/src/components/document/target/TargetPrimitiveDocumentActions.tsx b/packages/ui/src/components/document/target/TargetPrimitiveDocumentActions.tsx new file mode 100644 index 000000000..ea842528c --- /dev/null +++ b/packages/ui/src/components/document/target/TargetPrimitiveDocumentActions.tsx @@ -0,0 +1,33 @@ +import { ActionList } from '@patternfly/react-core'; +import { FunctionComponent } from 'react'; +import { DocumentNodeData } from '../../../models/visualization'; +import { useDataMapper } from '../../../hooks'; +import { ValueSelector } from '../../../models/mapping'; +import { DeleteItemAction } from './actions/DeleteItemAction'; +import { ExpressionEditorAction } from './actions/ExpressionEditorAction'; +import { ExpressionInputAction } from './actions/ExpressionInputAction'; +import { ConditionMenuAction } from './actions/ConditionMenuAction'; + +type TargetPrimitiveDocumentActionsProps = { + nodeData: DocumentNodeData; +}; + +export const TargetPrimitiveDocumentActions: FunctionComponent = ({ + nodeData, +}) => { + const { refreshMappingTree } = useDataMapper(); + const mapping = nodeData.mappingTree?.children.find((m) => m instanceof ValueSelector) as ValueSelector; + + return ( + + {mapping && ( + <> + + + + )} + + {mapping && } + + ); +}; diff --git a/packages/ui/src/components/document/target/actions/ChooseMenuAction.tsx b/packages/ui/src/components/document/target/actions/ChooseMenuAction.tsx new file mode 100644 index 000000000..a4e7d9dbc --- /dev/null +++ b/packages/ui/src/components/document/target/actions/ChooseMenuAction.tsx @@ -0,0 +1,66 @@ +import { FunctionComponent, MouseEvent, Ref, useCallback, useState } from 'react'; +import { + ActionListGroup, + Dropdown, + DropdownItem, + DropdownList, + MenuToggle, + MenuToggleElement, +} from '@patternfly/react-core'; +import { EllipsisVIcon } from '@patternfly/react-icons'; +import { ChooseItem } from '../../../../models/mapping'; +import { MappingService } from '../../../../services/mapping.service'; + +type ChooseMenuProps = { + chooseItem: ChooseItem; + onUpdate: () => void; +}; +export const ChooseMenuAction: FunctionComponent = ({ chooseItem }) => { + const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); + const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); + const otherwiseItem = chooseItem?.otherwise; + const onSelectAction = useCallback( + (_event: MouseEvent | undefined, value: string | number | undefined) => { + switch (value) { + case 'when': + MappingService.addWhen(chooseItem); + break; + case 'otherwise': + !otherwiseItem && MappingService.addOtherwise(chooseItem); + break; + } + setIsActionMenuOpen(false); + }, + [chooseItem, otherwiseItem], + ); + + return ( + + ) => ( + + + + )} + isOpen={isActionMenuOpen} + onOpenChange={(isOpen: boolean) => setIsActionMenuOpen(isOpen)} + > + + + Add when + + + Add otherwise + + + + + ); +}; diff --git a/packages/ui/src/components/document/target/actions/ConditionMenuAction.tsx b/packages/ui/src/components/document/target/actions/ConditionMenuAction.tsx new file mode 100644 index 000000000..39fd0641e --- /dev/null +++ b/packages/ui/src/components/document/target/actions/ConditionMenuAction.tsx @@ -0,0 +1,81 @@ +import { FunctionComponent, Ref, MouseEvent, useCallback, useState } from 'react'; +import { FieldNodeData, NodeData } from '../../../../models/visualization'; +import { VisualizationService } from '../../../../services/visualization.service'; +import { + ActionListGroup, + Dropdown, + DropdownItem, + DropdownList, + MenuToggle, + MenuToggleElement, +} from '@patternfly/react-core'; +import { EllipsisVIcon } from '@patternfly/react-icons'; + +type ConditionMenuProps = { + nodeData: NodeData; + onUpdate: () => void; +}; + +export const ConditionMenuAction: FunctionComponent = ({ nodeData, onUpdate }) => { + const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); + const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); + const allowForEach = VisualizationService.allowForEach(nodeData); + const onSelectAction = useCallback( + (_event: MouseEvent | undefined, value: string | number | undefined) => { + switch (value) { + case 'if': + VisualizationService.applyIf(nodeData); + onUpdate(); + break; + case 'choose': + VisualizationService.applyChoose(nodeData); + onUpdate(); + break; + case 'foreach': + allowForEach && VisualizationService.applyForEach(nodeData as FieldNodeData); + onUpdate(); + break; + } + setIsActionMenuOpen(false); + }, + [allowForEach, nodeData, onUpdate], + ); + + return ( + + ) => ( + + + + )} + isOpen={isActionMenuOpen} + onOpenChange={(isOpen: boolean) => setIsActionMenuOpen(isOpen)} + > + + {allowForEach && ( + + Apply for-each + + )} + + Apply if + + + Apply choose + + + Apply sort + + + + + ); +}; diff --git a/packages/ui/src/components/document/target/actions/DeleteItemAction.tsx b/packages/ui/src/components/document/target/actions/DeleteItemAction.tsx new file mode 100644 index 000000000..8ec69318d --- /dev/null +++ b/packages/ui/src/components/document/target/actions/DeleteItemAction.tsx @@ -0,0 +1,49 @@ +import { FunctionComponent, useCallback } from 'react'; +import { ActionListGroup, ActionListItem, Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; +import { TrashIcon } from '@patternfly/react-icons'; +import { useToggle } from '../../../../hooks'; +import { NodeData } from '../../../../models/visualization'; +import { VisualizationService } from '../../../../services/visualization.service'; + +type DeleteItemProps = { + nodeData: NodeData; + onDelete: () => void; +}; + +export const DeleteItemAction: FunctionComponent = ({ nodeData, onDelete }) => { + const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); + + const onConfirmDelete = useCallback(() => { + VisualizationService.deleteMappingItem(nodeData); + onDelete(); + closeModal(); + }, [closeModal, nodeData, onDelete]); + const title = `Delete ${nodeData.title} mapping`; + + return ( + + + {title}}> + + + + Confirm + , + , + ]} + > + {title}? + + + + ); +}; diff --git a/packages/ui/src/components/document/target/actions/ExpressionEditorAction.tsx b/packages/ui/src/components/document/target/actions/ExpressionEditorAction.tsx new file mode 100644 index 000000000..4d4962c08 --- /dev/null +++ b/packages/ui/src/components/document/target/actions/ExpressionEditorAction.tsx @@ -0,0 +1,55 @@ +import { NodeData } from '../../../../models/visualization'; +import { ExpressionItem } from '../../../../models/mapping'; +import { FunctionComponent, MouseEvent, useCallback, useState } from 'react'; +import { ActionListGroup, ActionListItem, Button, Modal, ModalVariant } from '@patternfly/react-core'; +import { PencilAltIcon } from '@patternfly/react-icons'; +import { ExpressionEditor } from '../../../expression/ExpressionEditor'; + +type ExpressionEditorProps = { + nodeData: NodeData; + mapping: ExpressionItem; + onUpdate: () => void; +}; +export const ExpressionEditorAction: FunctionComponent = ({ nodeData, mapping, onUpdate }) => { + const [isEditorOpen, setIsEditorOpen] = useState(false); + + const launchExpressionEditor = useCallback((event: MouseEvent) => { + setIsEditorOpen(true); + event.stopPropagation(); + }, []); + const closeExpressionEditor = useCallback(() => { + setIsEditorOpen(false); + }, []); + + return ( + + + , + ]} + > + + + + ); +}; diff --git a/packages/ui/src/components/document/target/actions/ExpressionInputAction.tsx b/packages/ui/src/components/document/target/actions/ExpressionInputAction.tsx new file mode 100644 index 000000000..8a340cf29 --- /dev/null +++ b/packages/ui/src/components/document/target/actions/ExpressionInputAction.tsx @@ -0,0 +1,37 @@ +import { ExpressionItem } from '../../../../models/mapping'; +import { FormEvent, FunctionComponent, useCallback } from 'react'; +import { ActionListGroup, ActionListItem, InputGroup, InputGroupItem, TextInput } from '@patternfly/react-core'; + +type ExpressionInputProps = { + mapping: ExpressionItem; + onUpdate: () => void; +}; +export const ExpressionInputAction: FunctionComponent = ({ mapping, onUpdate }) => { + const handleExpressionChange = useCallback( + (_event: FormEvent, value: string) => { + if (mapping) { + mapping.expression = value; + onUpdate(); + } + }, + [mapping, onUpdate], + ); + + return ( + + + + + + + + + + ); +}; diff --git a/packages/ui/src/components/document/target/node-helper.ts b/packages/ui/src/components/document/target/node-helper.ts deleted file mode 100644 index 628759290..000000000 --- a/packages/ui/src/components/document/target/node-helper.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { IField } from '../../../models/document'; -import { MappingItem } from '../../../models/mapping'; -import { ConditionNodeData, DocumentNodeData, FieldNodeData, NodeData } from '../../../models/visualization'; - -export class NodeHelper { - static generateNodeDataChildren(parent: NodeData): NodeData[] { - if (parent instanceof DocumentNodeData) { - } - if (parent instanceof ConditionNodeData) { - return parent.mapping?.children - ? parent.mapping.children.map((m) => NodeHelper.createNodeDataFromMappingItem(m)) - : []; - } - - return parent.children.reduce((acc, field) => { - const conditions = !mappingChildren - ? [] - : mappingChildren.reduce((conditionsAcc, item) => { - if (NodeHelper.getConditionedFields(item).includes(field) && !conditionsAcc.includes(item)) { - conditionsAcc.push(item); - } - return conditionsAcc; - }, [] as MappingItem[]); - conditions.length > 1 ? conditions.forEach((c) => !acc.includes(c) && acc.push(c)) : acc.push(field); - return acc; - }, [] as DocumentNodeData[]); - } - - static createNodeDataFromMappingItem(item: MappingItem): NodeData {} - - static getConditionedFields(item: MappingItem): IField[] { - return 'containedFields' in item ? (item.containedFields as IField[]) : []; - } - - static isCollectionField(nodeData: NodeData) { - return nodeData instanceof FieldNodeData && nodeData.field?.maxOccurs && nodeData.field.maxOccurs > 1; - } - - static isAttributeField(nodeData: NodeData) { - return nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; - } -} diff --git a/packages/ui/src/components/transformation/TransformationEditor.tsx b/packages/ui/src/components/expression/ExpressionEditor.tsx similarity index 73% rename from packages/ui/src/components/transformation/TransformationEditor.tsx rename to packages/ui/src/components/expression/ExpressionEditor.tsx index 185f90790..0bc2f134e 100644 --- a/packages/ui/src/components/transformation/TransformationEditor.tsx +++ b/packages/ui/src/components/expression/ExpressionEditor.tsx @@ -1,4 +1,4 @@ -import { FunctionComponent, MouseEvent, useCallback, useState } from 'react'; +import { FunctionComponent, MouseEvent, useCallback, useEffect, useMemo, useState } from 'react'; import { Bullseye, Button, @@ -14,21 +14,30 @@ import { } from '@patternfly/react-core'; import { ArrowRightIcon } from '@patternfly/react-icons'; import { ExpressionItem } from '../../models/mapping'; -import { TransformationService } from '../../services/transformation.service'; -import { XPathParserService } from '../../services/xpath/xpath-parser.service'; +import { XPathService } from '../../services/xpath/xpath.service'; import { FunctionGroup } from '../../services/xpath/xpath-parser'; import { SourcePanel } from '../../layout/views/SourcePanel'; import { NodeContainer } from '../document/NodeContainer'; -import { XPathEditor } from './action/XPathEditor'; +import { XPathEditor } from './monaco/XPathEditor'; +import { TransformationEditorDnDHandler } from '../../providers/dnd/TransformationEditorDnDHandler'; +import { useCanvas } from '../../hooks/useCanvas'; type TransformationEditorProps = { mapping: ExpressionItem; onUpdate: () => void; }; -export const TransformationEditor: FunctionComponent = ({ mapping, onUpdate }) => { - const transformation = mapping?.expression; - const transformationExpression = TransformationService.toExpression(transformation); +export const ExpressionEditor: FunctionComponent = ({ mapping, onUpdate }) => { + const dndHandler = useMemo(() => new TransformationEditorDnDHandler(), []); + const { setActiveHandler } = useCanvas(); + useEffect(() => { + setActiveHandler(dndHandler); + return () => { + setActiveHandler(undefined); + }; + }, [dndHandler, setActiveHandler]); + + const transformationExpression = mapping?.expression; const handleExpressionChange = useCallback( (expression?: string) => { if (expression) { @@ -38,7 +47,7 @@ export const TransformationEditor: FunctionComponent }, [mapping, onUpdate], ); - const functionDefinitions = XPathParserService.getXPathFunctionDefinitions(); + const functionDefinitions = XPathService.getXPathFunctionDefinitions(); const [activeTabKey, setActiveTabKey] = useState(0); const handleTabClick = (_event: MouseEvent, tabIndex: string | number) => { diff --git a/packages/ui/src/components/transformation/FunctionIcon.tsx b/packages/ui/src/components/expression/FunctionIcon.tsx similarity index 100% rename from packages/ui/src/components/transformation/FunctionIcon.tsx rename to packages/ui/src/components/expression/FunctionIcon.tsx diff --git a/packages/ui/src/components/transformation/Transformation.scss b/packages/ui/src/components/expression/Transformation.scss similarity index 100% rename from packages/ui/src/components/transformation/Transformation.scss rename to packages/ui/src/components/expression/Transformation.scss diff --git a/packages/ui/src/components/transformation/action/XPathEditor.scss b/packages/ui/src/components/expression/monaco/XPathEditor.scss similarity index 100% rename from packages/ui/src/components/transformation/action/XPathEditor.scss rename to packages/ui/src/components/expression/monaco/XPathEditor.scss diff --git a/packages/ui/src/components/transformation/action/XPathEditor.tsx b/packages/ui/src/components/expression/monaco/XPathEditor.tsx similarity index 84% rename from packages/ui/src/components/transformation/action/XPathEditor.tsx rename to packages/ui/src/components/expression/monaco/XPathEditor.tsx index 518c17976..2b798e2bf 100644 --- a/packages/ui/src/components/transformation/action/XPathEditor.tsx +++ b/packages/ui/src/components/expression/monaco/XPathEditor.tsx @@ -2,7 +2,7 @@ import { FunctionComponent, KeyboardEvent, MouseEvent, useCallback, useEffect, u import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; import './XPathEditor.scss'; import { xpathEditorConstrufctionOption, xpathEditorTheme } from './monaco-options'; -import { XPathParserService } from '../../../services/xpath/xpath-parser.service'; +import { XPathService } from '../../../services/xpath/xpath.service'; type XPathEditorProps = { expression: string; @@ -12,7 +12,7 @@ type XPathEditorProps = { export const XPathEditor: FunctionComponent = ({ expression, onChange }) => { const [editor, setEditor] = useState(null); const monacoEl = useRef(null); - const xpathLanguage = XPathParserService.getMonacoXPathLanguageMetadata(); + const xpathLanguage = XPathService.getMonacoXPathLanguageMetadata(); useEffect(() => { if (monacoEl) { @@ -26,11 +26,13 @@ export const XPathEditor: FunctionComponent = ({ expression, o const themeName = 'datamapperTheme'; monaco.editor.defineTheme(themeName, xpathEditorTheme); - return monaco.editor.create(monacoEl.current!, { + const newEditor = monaco.editor.create(monacoEl.current!, { ...xpathEditorConstrufctionOption, theme: themeName, value: expression, }); + newEditor.onDidChangeModelContent((_e) => onChange(newEditor.getModel()?.getValue())); + return newEditor; }); } @@ -38,6 +40,7 @@ export const XPathEditor: FunctionComponent = ({ expression, o }, [ editor, expression, + onChange, xpathLanguage.completionItemProvider, xpathLanguage.id, xpathLanguage.languageConfiguration, diff --git a/packages/ui/src/components/transformation/action/monaco-options.ts b/packages/ui/src/components/expression/monaco/monaco-options.ts similarity index 100% rename from packages/ui/src/components/transformation/action/monaco-options.ts rename to packages/ui/src/components/expression/monaco/monaco-options.ts diff --git a/packages/ui/src/components/transformation/action/FieldSelector.tsx b/packages/ui/src/components/expression/old/FieldSelector.tsx similarity index 99% rename from packages/ui/src/components/transformation/action/FieldSelector.tsx rename to packages/ui/src/components/expression/old/FieldSelector.tsx index bc4830b78..d6ae98ed9 100644 --- a/packages/ui/src/components/transformation/action/FieldSelector.tsx +++ b/packages/ui/src/components/expression/old/FieldSelector.tsx @@ -1,4 +1,4 @@ -import { IField } from '../../../models'; +import { IField } from '../../../models/document'; import { FunctionComponent, Ref, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Button, diff --git a/packages/ui/src/components/transformation/action/FunctionSelector.tsx b/packages/ui/src/components/expression/old/FunctionSelector.tsx similarity index 98% rename from packages/ui/src/components/transformation/action/FunctionSelector.tsx rename to packages/ui/src/components/expression/old/FunctionSelector.tsx index e3d77802a..df81c5964 100644 --- a/packages/ui/src/components/transformation/action/FunctionSelector.tsx +++ b/packages/ui/src/components/expression/old/FunctionSelector.tsx @@ -17,7 +17,7 @@ import { } from '@patternfly/react-core'; import { TimesIcon } from '@patternfly/react-icons'; import { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { XPathParserService } from '../../../services/xpath/xpath-parser.service'; +import { XPathService } from '../../../services/xpath/xpath.service'; import { FunctionGroup } from '../../../services/xpath/xpath-parser'; import { IFunctionDefinition } from '../../../models/mapping'; @@ -27,7 +27,7 @@ type FunctionOptionProps = SelectOptionProps & { descriptionString: string; functionDefinition: IFunctionDefinition; }; -const functionDefinitions = XPathParserService.getXPathFunctionDefinitions(); +const functionDefinitions = XPathService.getXPathFunctionDefinitions(); const allFunctionOptions = Object.keys(functionDefinitions).reduce((acc, value) => { return functionDefinitions[value as FunctionGroup].reduce((acc2, func) => { acc2.push({ diff --git a/packages/ui/src/components/transformation/action/InlineEdit.tsx b/packages/ui/src/components/expression/old/InlineEdit.tsx similarity index 100% rename from packages/ui/src/components/transformation/action/InlineEdit.tsx rename to packages/ui/src/components/expression/old/InlineEdit.tsx diff --git a/packages/ui/src/components/transformation/action/ConstantInput.tsx b/packages/ui/src/components/transformation/action/ConstantInput.tsx deleted file mode 100644 index 51ef8193f..000000000 --- a/packages/ui/src/components/transformation/action/ConstantInput.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { FunctionComponent, useCallback, useState } from 'react'; -import { Button, InputGroup, InputGroupItem, TextInput, Tooltip } from '@patternfly/react-core'; - -type ConstantInputProps = { - onSubmit: (value: string) => void; -}; -export const ConstantInput: FunctionComponent = ({ onSubmit }) => { - const [text, setText] = useState(''); - - const handleSubmit = useCallback(() => { - onSubmit(text); - setText(''); - }, [onSubmit, text]); - - return ( - - - setText(value)} value={text} /> - - - - - - - - ); -}; diff --git a/packages/ui/src/components/transformation/action/DeleteItemButton.tsx b/packages/ui/src/components/transformation/action/DeleteItemButton.tsx deleted file mode 100644 index ff2e29508..000000000 --- a/packages/ui/src/components/transformation/action/DeleteItemButton.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FunctionComponent } from 'react'; -import { Button, Tooltip } from '@patternfly/react-core'; -import { TrashIcon } from '@patternfly/react-icons'; - -type DeleteItemButtonProps = { - itemName: string; - onClick: () => void; -}; - -export const DeleteItemButton: FunctionComponent = ({ itemName, onClick }) => { - return ( - Delete {itemName} from mapping}> - - - ); -}; diff --git a/packages/ui/src/components/transformation/action/ForEachButton.tsx b/packages/ui/src/components/transformation/action/ForEachButton.tsx deleted file mode 100644 index 00cb47a68..000000000 --- a/packages/ui/src/components/transformation/action/ForEachButton.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { FunctionComponent } from 'react'; -import { Button, Tooltip } from '@patternfly/react-core'; -import { ListIcon } from '@patternfly/react-icons'; - -type ForEachButtonProps = { - onClick: () => void; -}; - -export const ForEachButton: FunctionComponent = ({ onClick }) => { - return ( - Process for each collection item}> - - - ); -}; diff --git a/packages/ui/src/components/transformation/action/headerActionList.tsx b/packages/ui/src/components/transformation/action/headerActionList.tsx deleted file mode 100644 index 21f17fe67..000000000 --- a/packages/ui/src/components/transformation/action/headerActionList.tsx +++ /dev/null @@ -1,118 +0,0 @@ -import { FunctionComponent, MouseEvent, useCallback, useState } from 'react'; -import { - ActionList, - ActionListItem, - Dropdown, - DropdownItem, - DropdownList, - MenuToggle, - MenuToggleElement, -} from '@patternfly/react-core'; -import { FieldSelector } from './FieldSelector'; -import { FunctionSelector } from './FunctionSelector'; -import { ConstantInput } from './ConstantInput'; -import { IFunctionCallArgument, IFunctionDefinition, ITransformation } from '../../../models/mapping'; -import { IField } from '../../../models/document'; -import { TransformationService } from '../../../services/transformation.service'; - -enum TopAction { - Function = 'Function', - Field = 'Field', - Constant = 'Constant', - None = '', -} - -type HeaderActionListProps = { - transformation: ITransformation | IFunctionCallArgument | undefined; - onUpdate: () => void; -}; - -export const HeaderActionList: FunctionComponent = ({ transformation, onUpdate }) => { - const [isTopActionDropdownOpen, setIsTopActionDropdownOpen] = useState(false); - const [topAction, setTopAction] = useState(TopAction.None); - - const onTopActionDropdownToggle = useCallback(() => { - setIsTopActionDropdownOpen(!isTopActionDropdownOpen); - }, [isTopActionDropdownOpen]); - - const onTopActionDropdownSelect = useCallback( - (_event: MouseEvent | undefined, value: string | number | undefined) => { - setTopAction(value ? (value as TopAction) : TopAction.None); - setIsTopActionDropdownOpen(false); - }, - [], - ); - - const handleAddField = useCallback( - (field: IField) => { - if (transformation && field) { - TransformationService.addField(transformation, field); - onUpdate(); - } - }, - [onUpdate, transformation], - ); - - const handleAddFunction = useCallback( - (func: IFunctionDefinition) => { - if (transformation && func) { - TransformationService.addFunctionCall(transformation, func); - onUpdate(); - } - }, - [onUpdate, transformation], - ); - - const handleAddConstant = useCallback( - (value: string) => { - if (transformation && value) { - TransformationService.addConstant(transformation, value); - onUpdate(); - } - }, - [onUpdate, transformation], - ); - - return ( - - - setIsTopActionDropdownOpen(isOpen)} - toggle={(toggleRef: React.Ref) => ( - - {topAction ? topAction : 'Select the item to add'} - - )} - > - - - Field - - - Function - - - Constant - - - - - - {topAction === TopAction.Field && } - {topAction === TopAction.Function && } - {topAction === TopAction.Constant && } - - - ); -}; diff --git a/packages/ui/src/components/transformation/item/FieldItem.tsx b/packages/ui/src/components/transformation/item/FieldItem.tsx deleted file mode 100644 index 846db1125..000000000 --- a/packages/ui/src/components/transformation/item/FieldItem.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { - AccordionContent, - AccordionItem, - ActionList, - ActionListItem, - Divider, - Label, - Split, - SplitItem, - Truncate, -} from '@patternfly/react-core'; -import { FunctionComponent, useCallback } from 'react'; -import { IFieldItem } from '../../../models'; -import { ForEachButton } from '../action/ForEachButton'; -import { DeleteItemButton } from '../action/DeleteItemButton'; -import { GripVerticalIcon } from '@patternfly/react-icons'; -import { TransformationService } from '../../../services/transformation.service'; - -type FieldTreeItemProps = { - field: IFieldItem; - onUpdate: () => void; -}; - -const FieldButtons: FunctionComponent = ({ field, onUpdate }) => { - const handleDelete = useCallback(() => { - TransformationService.removeFromParent(field); - onUpdate(); - }, [field, onUpdate]); - - return ( - - {field.field.maxOccurs > 1 && ( - <> - - - {}} /> - - - )} - - - - - - ); -}; - -export const FieldItem: FunctionComponent = ({ field, onUpdate }) => { - return ( - - - - - - - - - - - - - - - - - ); -}; diff --git a/packages/ui/src/components/transformation/item/ForEachItem.tsx b/packages/ui/src/components/transformation/item/ForEachItem.tsx deleted file mode 100644 index cfdcd43fa..000000000 --- a/packages/ui/src/components/transformation/item/ForEachItem.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { - AccordionContent, - AccordionItem, - AccordionToggle, - ActionList, - ActionListItem, - Divider, - Split, - SplitItem, -} from '@patternfly/react-core'; -import { IForEach } from '../../../models'; -import { FunctionComponent, useCallback } from 'react'; -import { GripVerticalIcon } from '@patternfly/react-icons'; -import { FunctionSelector } from '../action/FunctionSelector'; -import { DeleteItemButton } from '../action/DeleteItemButton'; -import { TransformationService } from '../../../services/transformation.service'; - -type ForEachTreeItemProps = { - forEach: IForEach; - onUpdate: () => void; -}; - -const ForEachButtons: FunctionComponent = ({ forEach, onUpdate }) => { - const handleDelete = useCallback(() => { - TransformationService.removeFromParent(forEach); - onUpdate(); - }, [forEach, onUpdate]); - - return ( - - - - {}} /> - - - - - - - ); -}; - -export const ForEachItem: FunctionComponent = ({ forEach, onUpdate }) => { - return ( - - - - - - - {'For each ' + forEach.collection.fieldIdentifier.toString()} - - - - - - {forEach.collection.fieldIdentifier.toString()} - - ); -}; diff --git a/packages/ui/src/components/transformation/item/FunctionCallItem.tsx b/packages/ui/src/components/transformation/item/FunctionCallItem.tsx deleted file mode 100644 index 0bbe7f301..000000000 --- a/packages/ui/src/components/transformation/item/FunctionCallItem.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import { - AccordionContent, - AccordionItem, - AccordionToggle, - ActionList, - ActionListItem, - Button, - Card, - CardHeader, - Divider, - Label, - Popover, - Split, - SplitItem, - StackItem, -} from '@patternfly/react-core'; -import { FunctionComponent, useCallback, useMemo, useState } from 'react'; -import { IFunctionCall, IFunctionCallArgument, IFunctionCallArgumentType } from '../../../models'; -import { ItemHelper } from './item-helper'; -import { GripVerticalIcon, InfoCircleIcon } from '@patternfly/react-icons'; -import { FunctionIcon } from '../FunctionIcon'; -import { DeleteItemButton } from '../action/DeleteItemButton'; -import { TransformationService } from '../../../services/transformation.service'; -import { HeaderActionList } from '../action/headerActionList'; - -type FunctionCallTreeItemProps = { - functionCall: IFunctionCall; - onUpdate: () => void; -}; - -const FunctionCallButtons: FunctionComponent = ({ functionCall, onUpdate }) => { - const handleDelete = useCallback(() => { - TransformationService.removeFromParent(functionCall); - onUpdate(); - }, [functionCall, onUpdate]); - - return ( - - - - - - - ); -}; - -type FunctionCallArgumentProps = { - arg: IFunctionCallArgument; -}; - -const FunctionCallArgument: FunctionComponent = ({ arg }) => { - const [argInstances, setArgInstances] = useState(arg.values); - const handleChildrenUpdate = useCallback(() => setArgInstances([...arg.values]), [arg]); - - const headerActions = useMemo( - () => , - [arg, handleChildrenUpdate], - ); - - return ( - - - - - {arg.definition.displayName} - - + + + Confirm + , + , + ]} + > + {title}? + + + ); +}; diff --git a/packages/ui/src/components/document/DeleteParameterButton.tsx b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx similarity index 90% rename from packages/ui/src/components/document/DeleteParameterButton.tsx rename to packages/ui/src/components/document/actions/DeleteParameterButton.tsx index a113fae04..8420658db 100644 --- a/packages/ui/src/components/document/DeleteParameterButton.tsx +++ b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx @@ -1,10 +1,10 @@ import { FunctionComponent, useCallback } from 'react'; import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { TrashIcon } from '@patternfly/react-icons'; -import { useDataMapper, useToggle } from '../../hooks'; -import { MappingService } from '../../services/mapping.service'; +import { useDataMapper, useToggle } from '../../../hooks'; +import { MappingService } from '../../../services/mapping.service'; -import { DocumentType } from '../../models/path'; +import { DocumentType } from '../../../models/path'; type DeleteParameterProps = { parameterName: string; diff --git a/packages/ui/src/components/document/DetachSchemaButton.tsx b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx similarity index 92% rename from packages/ui/src/components/document/DetachSchemaButton.tsx rename to packages/ui/src/components/document/actions/DetachSchemaButton.tsx index 6f1c42e35..f94494260 100644 --- a/packages/ui/src/components/document/DetachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx @@ -17,10 +17,10 @@ import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { FunctionComponent, useCallback } from 'react'; import { ExportIcon } from '@patternfly/react-icons'; -import { useDataMapper, useToggle } from '../../hooks'; -import { PrimitiveDocument } from '../../models/document'; -import { MappingService } from '../../services/mapping.service'; -import { DocumentType } from '../../models/path'; +import { useDataMapper, useToggle } from '../../../hooks'; +import { PrimitiveDocument } from '../../../models/document'; +import { MappingService } from '../../../services/mapping.service'; +import { DocumentType } from '../../../models/path'; type DeleteSchemaProps = { documentType: DocumentType; diff --git a/packages/ui/src/components/document/actions/DocumentActions.tsx b/packages/ui/src/components/document/actions/DocumentActions.tsx new file mode 100644 index 000000000..71cadf8ab --- /dev/null +++ b/packages/ui/src/components/document/actions/DocumentActions.tsx @@ -0,0 +1,35 @@ +import { ActionListGroup, ActionListItem } from '@patternfly/react-core'; +import { AttachSchemaButton } from './AttachSchemaButton'; +import { DetachSchemaButton } from './DetachSchemaButton'; +import { DocumentType } from '../../../models/path'; +import { DocumentNodeData } from '../../../models/visualization'; +import { DeleteParameterButton } from './DeleteParameterButton'; +import { FunctionComponent, MouseEvent, useCallback } from 'react'; + +type DocumentActionsProps = { + nodeData: DocumentNodeData; +}; + +export const DocumentActions: FunctionComponent = ({ nodeData }) => { + const documentType = nodeData.document.documentType; + const documentId = nodeData.document.documentId; + const handleStopPropagation = useCallback((event: MouseEvent) => { + event.stopPropagation(); + }, []); + + return ( + + + + + + + + {documentType === DocumentType.PARAM && ( + + + + )} + + ); +}; diff --git a/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx b/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx new file mode 100644 index 000000000..578949739 --- /dev/null +++ b/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx @@ -0,0 +1,48 @@ +import { NodeData } from '../../../models/visualization'; +import { ExpressionItem } from '../../../models/mapping'; +import { FunctionComponent, useCallback, useState } from 'react'; +import { ActionListItem, Button, Modal, ModalVariant } from '@patternfly/react-core'; +import { PencilAltIcon } from '@patternfly/react-icons'; +import { ExpressionEditor } from '../../expression/ExpressionEditor'; + +type ExpressionEditorProps = { + nodeData: NodeData; + mapping: ExpressionItem; + onUpdate: () => void; +}; +export const ExpressionEditorAction: FunctionComponent = ({ nodeData, mapping, onUpdate }) => { + const [isEditorOpen, setIsEditorOpen] = useState(false); + + const launchExpressionEditor = useCallback(() => setIsEditorOpen(true), []); + const closeExpressionEditor = useCallback(() => setIsEditorOpen(false), []); + + return ( + + , + ]} + > + + + + ); +}; diff --git a/packages/ui/src/components/document/actions/ExpressionInputAction.tsx b/packages/ui/src/components/document/actions/ExpressionInputAction.tsx new file mode 100644 index 000000000..36ad3fbd9 --- /dev/null +++ b/packages/ui/src/components/document/actions/ExpressionInputAction.tsx @@ -0,0 +1,36 @@ +import { ExpressionItem } from '../../../models/mapping'; +import { FormEvent, FunctionComponent, useCallback } from 'react'; +import { ActionListItem, InputGroup, InputGroupItem, TextInput } from '@patternfly/react-core'; + +type ExpressionInputProps = { + mapping: ExpressionItem; + onUpdate: () => void; +}; +export const ExpressionInputAction: FunctionComponent = ({ mapping, onUpdate }) => { + const handleExpressionChange = useCallback( + (event: FormEvent, value: string) => { + if (mapping) { + mapping.expression = value; + onUpdate(); + } + event.stopPropagation(); + }, + [mapping, onUpdate], + ); + + return ( + + + + + + + + ); +}; diff --git a/packages/ui/src/components/document/actions/TargetNodeActions.tsx b/packages/ui/src/components/document/actions/TargetNodeActions.tsx new file mode 100644 index 000000000..c3101242f --- /dev/null +++ b/packages/ui/src/components/document/actions/TargetNodeActions.tsx @@ -0,0 +1,41 @@ +import { ActionListGroup } from '@patternfly/react-core'; +import { FunctionComponent, MouseEvent, KeyboardEvent, useCallback } from 'react'; +import { ExpressionInputAction } from './ExpressionInputAction'; +import { DeleteItemAction } from './DeleteItemAction'; +import { ConditionMenuAction } from './ConditionMenuAction'; +import { ExpressionEditorAction } from './ExpressionEditorAction'; +import { ExpressionItem } from '../../../models/mapping'; +import { MappingNodeData, NodeData } from '../../../models/visualization'; + +type TargetNodeActionsProps = { + nodeData: NodeData; + onUpdate: () => void; +}; + +export const TargetNodeActions: FunctionComponent = ({ nodeData, onUpdate }) => { + const expressionItem = + 'mapping' in nodeData && nodeData.mapping && 'expression' in nodeData.mapping + ? (nodeData.mapping as ExpressionItem) + : undefined; + const isDeletable = nodeData instanceof MappingNodeData; + const handleStopPropagation = useCallback((event: MouseEvent | KeyboardEvent) => { + event.stopPropagation(); + }, []); + + return ( + + {expressionItem && ( + <> + + + + )} + + {isDeletable && } + + ); +}; diff --git a/packages/ui/src/components/document/index.ts b/packages/ui/src/components/document/index.ts deleted file mode 100644 index 8fa209d59..000000000 --- a/packages/ui/src/components/document/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './source/SourceDocument'; -export * from './source/SourceDocumentField'; -export * from './AttachSchemaButton'; diff --git a/packages/ui/src/components/document/source/SourceDocument.tsx b/packages/ui/src/components/document/source/SourceDocument.tsx deleted file mode 100644 index 65bb77361..000000000 --- a/packages/ui/src/components/document/source/SourceDocument.tsx +++ /dev/null @@ -1,171 +0,0 @@ -import { forwardRef, FunctionComponent, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react'; -import { - Accordion, - ActionList, - ActionListItem, - Card, - CardBody, - CardExpandableContent, - CardHeader, - CardTitle, - Split, - SplitItem, -} from '@patternfly/react-core'; -import { GripVerticalIcon } from '@patternfly/react-icons'; -import { IDocument, PrimitiveDocument } from '../../../models/document'; -import { SourceDocumentField } from './SourceDocumentField'; -import { useCanvas } from '../../../hooks/useCanvas'; -import { AttachSchemaButton } from '../AttachSchemaButton'; -import { DetachSchemaButton } from '../DetachSchemaButton'; -import { DeleteParameterButton } from '../DeleteParameterButton'; -import { NodeContainer } from '../NodeContainer'; -import { NodeReference } from '../../../providers/CanvasProvider'; -import '../Document.scss'; -import { DocumentNodeData, FieldNodeData } from '../../../models/visualization'; -import { DocumentType } from '../../../models/path'; - -type DocumentImplProps = { - nodeData: DocumentNodeData; -}; - -const SourcePrimitiveDocumentImpl = forwardRef(({ nodeData }, forwardedRef) => { - const ref = useRef(null); - useImperativeHandle(forwardedRef, () => ({ - get headerRef() { - return ref.current; - }, - get containerRef() { - return ref.current; - }, - })); - - const headerActiopns = useMemo(() => { - return ( - - - - - {nodeData.document.documentType === DocumentType.PARAM && ( - - - - )} - - ); - }, [nodeData.document.documentId, nodeData.document.documentType]); - - return ( - - - - - - - - - {nodeData.title} - - - - - - ); -}); - -const SourceStructuredDocumentImpl = forwardRef(({ nodeData }, forwardedRef) => { - const { reloadNodeReferences } = useCanvas(); - const [isExpanded, setExpanded] = useState(true); - - const handleOnToggle = useCallback(() => { - reloadNodeReferences(); - }, [reloadNodeReferences]); - const handleOnExpand = useCallback(() => { - setExpanded(!isExpanded); - reloadNodeReferences(); - }, [isExpanded, reloadNodeReferences]); - - const headerRef = useRef(null); - useImperativeHandle(forwardedRef, () => ({ - get headerRef() { - return headerRef.current; - }, - get containerRef() { - return headerRef.current; - }, - })); - - const hasChildren = nodeData.document.fields.length > 0; - - const headerActions = useMemo(() => { - return ( - - - - - - - - {nodeData.document.documentType === DocumentType.PARAM && ( - - - - )} - - ); - }, [nodeData.document.documentId, nodeData.document.documentType]); - - return ( - - - - {nodeData.title} - - - {hasChildren && ( - - - - {nodeData.document.fields.map((field) => { - const fieldNodeData = new FieldNodeData(nodeData, field); - return ( - - ); - })} - - - - )} - - ); -}); - -export type DocumentProps = { - model: IDocument; -}; - -export const SourceDocument: FunctionComponent = ({ model }) => { - const { getNodeReference, setNodeReference } = useCanvas(); - const nodeReference = useRef({ headerRef: null, containerRef: null }); - const nodeData = new DocumentNodeData(model); - const nodeRefId = nodeData.path.toString(); - getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); - - return model instanceof PrimitiveDocument ? ( - - ) : ( - - ); -}; diff --git a/packages/ui/src/components/document/source/SourceDocumentField.tsx b/packages/ui/src/components/document/source/SourceDocumentField.tsx deleted file mode 100644 index 091738731..000000000 --- a/packages/ui/src/components/document/source/SourceDocumentField.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { AccordionContent, AccordionItem, AccordionToggle, Split, SplitItem } from '@patternfly/react-core'; -import { FunctionComponent, useImperativeHandle, useRef, useState } from 'react'; -import { IField } from '../../../models/document'; -import { useCanvas } from '../../../hooks/useCanvas'; -import { NodeContainer } from '../NodeContainer'; -import { AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; -import { NodeReference } from '../../../providers/CanvasProvider'; -import '../Document.scss'; -import { FieldNodeData } from '../../../models/visualization'; - -type DocumentFieldProps = { - nodeData: FieldNodeData; - onToggle: () => void; -}; - -export const SourceDocumentField: FunctionComponent = ({ nodeData, onToggle }) => { - const [isExpanded, setIsExpanded] = useState(true); - const dndId = nodeData.id; - const { getNodeReference, setNodeReference } = useCanvas(); - const containerRef = useRef(null); - const headerRef = useRef(null); - const nodeReference = useRef({ headerRef: null, containerRef: null }); - useImperativeHandle(nodeReference, () => ({ - get headerRef() { - return headerRef.current ?? containerRef.current; - }, - get containerRef() { - return containerRef.current; - }, - })); - const nodeRefId = nodeData.path.toString(); - getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); - - return !nodeData.field.fields || nodeData.field.fields.length === 0 ? ( - - - - - - - - {nodeData.field.maxOccurs > 1 && ( - - - - )} - {nodeData.field.isAttribute && ( - - - - )} - {nodeData.title} -   - - - - - ) : ( - - -
    - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={nodeData.id}> - - - - - {nodeData.field.maxOccurs > 1 && ( - - - - )} - {nodeData.title} - - -
    - - {nodeData.field.fields.map((f: IField) => { - const childNodeData = new FieldNodeData(nodeData, f); - return ; - })} - -
    -
    - ); -}; diff --git a/packages/ui/src/components/document/target/TargetDocument.tsx b/packages/ui/src/components/document/target/TargetDocument.tsx deleted file mode 100644 index 495e9410d..000000000 --- a/packages/ui/src/components/document/target/TargetDocument.tsx +++ /dev/null @@ -1,202 +0,0 @@ -import { forwardRef, FunctionComponent, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react'; -import { - Accordion, - ActionList, - ActionListItem, - Card, - CardBody, - CardExpandableContent, - CardHeader, - CardTitle, - Split, - SplitItem, -} from '@patternfly/react-core'; -import { GripVerticalIcon } from '@patternfly/react-icons'; -import { IDocument, PrimitiveDocument } from '../../../models/document'; -import { useCanvas } from '../../../hooks/useCanvas'; -import { AttachSchemaButton } from '../AttachSchemaButton'; -import { DetachSchemaButton } from '../DetachSchemaButton'; -import { NodeContainer } from '../NodeContainer'; -import { NodeReference } from '../../../providers/CanvasProvider'; -import '../Document.scss'; -import { useDataMapper } from '../../../hooks'; - -import { DocumentNodeData } from '../../../models/visualization'; -import { TargetDocumentNode } from './TargetDocumentNode'; - -import { VisualizationService } from '../../../services/visualization.service'; -import { TargetPrimitiveDocumentActions } from './TargetPrimitiveDocumentActions'; -import { DocumentType } from '../../../models/path'; - -type TargetDocumentImplProps = { - nodeData: DocumentNodeData; -}; - -const TargetPrimitiveDocumentImpl = forwardRef(({ nodeData }, forwardedRef) => { - const { reloadNodeReferences } = useCanvas(); - const [isExpanded, setExpanded] = useState(true); - - const handleOnToggle = useCallback(() => { - reloadNodeReferences(); - }, [reloadNodeReferences]); - const handleOnExpand = useCallback(() => { - setExpanded(!isExpanded); - reloadNodeReferences(); - }, [isExpanded, reloadNodeReferences]); - - const headerRef = useRef(null); - const containerRef = useRef(null); - useImperativeHandle(forwardedRef, () => ({ - get headerRef() { - return headerRef.current; - }, - get containerRef() { - return containerRef.current; - }, - })); - - const nodeDataChildren = VisualizationService.generatePrimitiveDocumentChildren(nodeData); - const hasChildren = nodeDataChildren.length > 0; - - const headerActiopns = useMemo(() => { - return ( - - - - - - ); - }, [nodeData.document.documentId]); - - return ( - -
    - - - - - - - - {nodeData.title} -   - - - - - - - - {hasChildren && ( - - - - {nodeDataChildren.map((child) => ( - - ))} - - - - )} -
    -
    - ); -}); - -const TargetStructuredDocumentImpl = forwardRef( - ({ nodeData }, forwardedRef) => { - const { reloadNodeReferences } = useCanvas(); - const [isExpanded, setExpanded] = useState(true); - - const handleOnToggle = useCallback(() => { - reloadNodeReferences(); - }, [reloadNodeReferences]); - const handleOnExpand = useCallback(() => { - setExpanded(!isExpanded); - reloadNodeReferences(); - }, [isExpanded, reloadNodeReferences]); - - const headerRef = useRef(null); - useImperativeHandle(forwardedRef, () => ({ - get headerRef() { - return headerRef.current; - }, - get containerRef() { - return headerRef.current; - }, - })); - - const nodeDataChildren = VisualizationService.generateStructuredDocumentChildren(nodeData); - const hasChildren = nodeDataChildren.length > 0; - - const headerActions = useMemo(() => { - return ( - - - - - - - - - ); - }, [nodeData.document.documentId]); - - return ( - - - - {nodeData.title} - - - {hasChildren && ( - - - - {nodeDataChildren.map((child) => ( - - ))} - - - - )} - - ); - }, -); - -export type TargetDocumentProps = { - model: IDocument; -}; - -export const TargetDocument: FunctionComponent = ({ model }) => { - const { getNodeReference, setNodeReference, clearNodeReferencesForDocument } = useCanvas(); - const { mappingTree } = useDataMapper(); - const nodeReference = useRef({ headerRef: null, containerRef: null }); - const nodeData = new DocumentNodeData(model, mappingTree); - const nodeRefId = nodeData.path.toString(); - clearNodeReferencesForDocument(model.documentType, model.documentId); - getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); - - return model instanceof PrimitiveDocument ? ( - - ) : ( - - ); -}; diff --git a/packages/ui/src/components/document/target/TargetDocumentNode.tsx b/packages/ui/src/components/document/target/TargetDocumentNode.tsx deleted file mode 100644 index 2fbf9857c..000000000 --- a/packages/ui/src/components/document/target/TargetDocumentNode.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import { AccordionContent, AccordionItem, AccordionToggle, Split, SplitItem } from '@patternfly/react-core'; -import { FunctionComponent, useImperativeHandle, useMemo, useRef, useState } from 'react'; -import { useCanvas } from '../../../hooks/useCanvas'; -import { NodeContainer } from '../NodeContainer'; -import { AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; -import { NodeReference } from '../../../providers/CanvasProvider'; -import '../Document.scss'; -import { TargetFieldActions } from './TargetFieldActions'; - -import { NodeData } from '../../../models/visualization'; - -import { VisualizationService } from '../../../services/visualization.service'; - -type TargetDocumentNodeProps = { - nodeData: NodeData; - onToggle: () => void; -}; - -export const TargetDocumentNode: FunctionComponent = ({ nodeData, onToggle }) => { - const [isExpanded, setIsExpanded] = useState(true); - const dndId = useMemo(() => nodeData.id, [nodeData.id]); - const { getNodeReference, setNodeReference } = useCanvas(); - const containerRef = useRef(null); - const headerRef = useRef(null); - const nodeReference = useRef({ headerRef: null, containerRef: null }); - useImperativeHandle(nodeReference, () => ({ - get headerRef() { - return headerRef.current ?? containerRef.current; - }, - get containerRef() { - return containerRef.current; - }, - })); - const nodeRefId = nodeData.path.toString(); - getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); - - const isCollection = VisualizationService.isCollectionField(nodeData); - const isAttribute = VisualizationService.isAttributeField(nodeData); - const nodeDataChildren = VisualizationService.generateNodeDataChildren(nodeData); - - return nodeDataChildren.length === 0 ? ( - - - - - - - - {isCollection && ( - - - - )} - {isAttribute && ( - - - - )} - {nodeData.title} -   - - - - - - - - ) : ( - - -
    - setIsExpanded(!isExpanded)} isExpanded={isExpanded} id={nodeData.id}> - - - - - {isCollection && ( - - - - )} - {nodeData.title} - - - - - -
    - - {nodeDataChildren.map((nodeData) => ( - - ))} - -
    -
    - ); -}; diff --git a/packages/ui/src/components/document/target/TargetFieldActions.tsx b/packages/ui/src/components/document/target/TargetFieldActions.tsx deleted file mode 100644 index 484259284..000000000 --- a/packages/ui/src/components/document/target/TargetFieldActions.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { ActionList } from '@patternfly/react-core'; -import { FunctionComponent, useCallback } from 'react'; -import { NodeData } from '../../../models/visualization'; -import { useDataMapper } from '../../../hooks'; -import { ChooseItem, ExpressionItem } from '../../../models/mapping'; -import { DeleteItemAction } from './actions/DeleteItemAction'; -import { ExpressionEditorAction } from './actions/ExpressionEditorAction'; -import { ExpressionInputAction } from './actions/ExpressionInputAction'; -import { ConditionMenuAction } from './actions/ConditionMenuAction'; -import { ChooseMenuAction } from './actions/ChooseMenuAction'; - -type TargetFieldActionsProps = { - nodeData: NodeData; -}; - -export const TargetFieldActions: FunctionComponent = ({ nodeData }) => { - const { refreshMappingTree } = useDataMapper(); - const mapping = 'mapping' in nodeData ? (nodeData.mapping! as ExpressionItem) : undefined; - const isChooseNode = 'mapping' in nodeData && nodeData.mapping instanceof ChooseItem; - - const handleUpdate = useCallback(() => { - refreshMappingTree(); - }, [refreshMappingTree]); - - return ( - - {mapping && ( - <> - - - - )} - {isChooseNode ? ( - - ) : ( - - )} - {mapping && } - - ); -}; diff --git a/packages/ui/src/components/document/target/TargetPrimitiveDocumentActions.tsx b/packages/ui/src/components/document/target/TargetPrimitiveDocumentActions.tsx deleted file mode 100644 index ea842528c..000000000 --- a/packages/ui/src/components/document/target/TargetPrimitiveDocumentActions.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { ActionList } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; -import { DocumentNodeData } from '../../../models/visualization'; -import { useDataMapper } from '../../../hooks'; -import { ValueSelector } from '../../../models/mapping'; -import { DeleteItemAction } from './actions/DeleteItemAction'; -import { ExpressionEditorAction } from './actions/ExpressionEditorAction'; -import { ExpressionInputAction } from './actions/ExpressionInputAction'; -import { ConditionMenuAction } from './actions/ConditionMenuAction'; - -type TargetPrimitiveDocumentActionsProps = { - nodeData: DocumentNodeData; -}; - -export const TargetPrimitiveDocumentActions: FunctionComponent = ({ - nodeData, -}) => { - const { refreshMappingTree } = useDataMapper(); - const mapping = nodeData.mappingTree?.children.find((m) => m instanceof ValueSelector) as ValueSelector; - - return ( - - {mapping && ( - <> - - - - )} - - {mapping && } - - ); -}; diff --git a/packages/ui/src/components/document/target/actions/ChooseMenuAction.tsx b/packages/ui/src/components/document/target/actions/ChooseMenuAction.tsx deleted file mode 100644 index a4e7d9dbc..000000000 --- a/packages/ui/src/components/document/target/actions/ChooseMenuAction.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { FunctionComponent, MouseEvent, Ref, useCallback, useState } from 'react'; -import { - ActionListGroup, - Dropdown, - DropdownItem, - DropdownList, - MenuToggle, - MenuToggleElement, -} from '@patternfly/react-core'; -import { EllipsisVIcon } from '@patternfly/react-icons'; -import { ChooseItem } from '../../../../models/mapping'; -import { MappingService } from '../../../../services/mapping.service'; - -type ChooseMenuProps = { - chooseItem: ChooseItem; - onUpdate: () => void; -}; -export const ChooseMenuAction: FunctionComponent = ({ chooseItem }) => { - const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); - const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); - const otherwiseItem = chooseItem?.otherwise; - const onSelectAction = useCallback( - (_event: MouseEvent | undefined, value: string | number | undefined) => { - switch (value) { - case 'when': - MappingService.addWhen(chooseItem); - break; - case 'otherwise': - !otherwiseItem && MappingService.addOtherwise(chooseItem); - break; - } - setIsActionMenuOpen(false); - }, - [chooseItem, otherwiseItem], - ); - - return ( - - ) => ( - - - - )} - isOpen={isActionMenuOpen} - onOpenChange={(isOpen: boolean) => setIsActionMenuOpen(isOpen)} - > - - - Add when - - - Add otherwise - - - - - ); -}; diff --git a/packages/ui/src/components/document/target/actions/ConditionMenuAction.tsx b/packages/ui/src/components/document/target/actions/ConditionMenuAction.tsx deleted file mode 100644 index ae1a10345..000000000 --- a/packages/ui/src/components/document/target/actions/ConditionMenuAction.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import { FunctionComponent, Ref, MouseEvent, useCallback, useState } from 'react'; -import { FieldNodeData, NodeData } from '../../../../models/visualization'; -import { VisualizationService } from '../../../../services/visualization.service'; -import { - ActionListGroup, - Dropdown, - DropdownItem, - DropdownList, - MenuToggle, - MenuToggleElement, -} from '@patternfly/react-core'; -import { EllipsisVIcon } from '@patternfly/react-icons'; -import './TargetFieldActions.scss'; - -type ConditionMenuProps = { - nodeData: NodeData; - onUpdate: () => void; -}; - -export const ConditionMenuAction: FunctionComponent = ({ nodeData, onUpdate }) => { - const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); - const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); - const allowForEach = VisualizationService.allowForEach(nodeData); - const onSelectAction = useCallback( - (_event: MouseEvent | undefined, value: string | number | undefined) => { - switch (value) { - case 'if': - VisualizationService.applyIf(nodeData); - onUpdate(); - break; - case 'choose': - VisualizationService.applyChoose(nodeData); - onUpdate(); - break; - case 'foreach': - allowForEach && VisualizationService.applyForEach(nodeData as FieldNodeData); - onUpdate(); - break; - } - setIsActionMenuOpen(false); - }, - [allowForEach, nodeData, onUpdate], - ); - - return ( - - ) => ( - - - - )} - isOpen={isActionMenuOpen} - onOpenChange={(isOpen: boolean) => setIsActionMenuOpen(isOpen)} - zIndex={100} - > - - {allowForEach && ( - - Apply for-each - - )} - - Apply if - - - Apply choose - - - - - ); -}; diff --git a/packages/ui/src/components/document/target/actions/DeleteItemAction.tsx b/packages/ui/src/components/document/target/actions/DeleteItemAction.tsx deleted file mode 100644 index 8ec69318d..000000000 --- a/packages/ui/src/components/document/target/actions/DeleteItemAction.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { FunctionComponent, useCallback } from 'react'; -import { ActionListGroup, ActionListItem, Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; -import { TrashIcon } from '@patternfly/react-icons'; -import { useToggle } from '../../../../hooks'; -import { NodeData } from '../../../../models/visualization'; -import { VisualizationService } from '../../../../services/visualization.service'; - -type DeleteItemProps = { - nodeData: NodeData; - onDelete: () => void; -}; - -export const DeleteItemAction: FunctionComponent = ({ nodeData, onDelete }) => { - const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); - - const onConfirmDelete = useCallback(() => { - VisualizationService.deleteMappingItem(nodeData); - onDelete(); - closeModal(); - }, [closeModal, nodeData, onDelete]); - const title = `Delete ${nodeData.title} mapping`; - - return ( - - - {title}}> - - - - Confirm - , - , - ]} - > - {title}? - - - - ); -}; diff --git a/packages/ui/src/components/document/target/actions/ExpressionEditorAction.tsx b/packages/ui/src/components/document/target/actions/ExpressionEditorAction.tsx deleted file mode 100644 index 4d4962c08..000000000 --- a/packages/ui/src/components/document/target/actions/ExpressionEditorAction.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { NodeData } from '../../../../models/visualization'; -import { ExpressionItem } from '../../../../models/mapping'; -import { FunctionComponent, MouseEvent, useCallback, useState } from 'react'; -import { ActionListGroup, ActionListItem, Button, Modal, ModalVariant } from '@patternfly/react-core'; -import { PencilAltIcon } from '@patternfly/react-icons'; -import { ExpressionEditor } from '../../../expression/ExpressionEditor'; - -type ExpressionEditorProps = { - nodeData: NodeData; - mapping: ExpressionItem; - onUpdate: () => void; -}; -export const ExpressionEditorAction: FunctionComponent = ({ nodeData, mapping, onUpdate }) => { - const [isEditorOpen, setIsEditorOpen] = useState(false); - - const launchExpressionEditor = useCallback((event: MouseEvent) => { - setIsEditorOpen(true); - event.stopPropagation(); - }, []); - const closeExpressionEditor = useCallback(() => { - setIsEditorOpen(false); - }, []); - - return ( - - - , - ]} - > - - - - ); -}; diff --git a/packages/ui/src/components/document/target/actions/ExpressionInputAction.tsx b/packages/ui/src/components/document/target/actions/ExpressionInputAction.tsx deleted file mode 100644 index 52c6efd69..000000000 --- a/packages/ui/src/components/document/target/actions/ExpressionInputAction.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { ExpressionItem } from '../../../../models/mapping'; -import { FormEvent, FunctionComponent, KeyboardEvent, useCallback } from 'react'; -import { ActionListGroup, ActionListItem, InputGroup, InputGroupItem, TextInput } from '@patternfly/react-core'; - -type ExpressionInputProps = { - mapping: ExpressionItem; - onUpdate: () => void; -}; -export const ExpressionInputAction: FunctionComponent = ({ mapping, onUpdate }) => { - const handleExpressionChange = useCallback( - (event: FormEvent, value: string) => { - if (mapping) { - mapping.expression = value; - onUpdate(); - } - event.stopPropagation(); - }, - [mapping, onUpdate], - ); - - const handleStopPropagation = useCallback((event: KeyboardEvent | FormEvent) => { - event.stopPropagation(); - }, []); - - return ( - - - - - - - - - - ); -}; diff --git a/packages/ui/src/components/document/target/actions/TargetFieldActions.scss b/packages/ui/src/components/document/target/actions/TargetFieldActions.scss deleted file mode 100644 index 39d80b383..000000000 --- a/packages/ui/src/components/document/target/actions/TargetFieldActions.scss +++ /dev/null @@ -1,4 +0,0 @@ -.target-field-actions { - &__condition-menu-dropdown { - } -} \ No newline at end of file diff --git a/packages/ui/src/components/expression/old/FieldSelector.tsx b/packages/ui/src/components/expression/old/FieldSelector.tsx deleted file mode 100644 index 6098777db..000000000 --- a/packages/ui/src/components/expression/old/FieldSelector.tsx +++ /dev/null @@ -1,305 +0,0 @@ -import { IField } from '../../../models/document'; -import { FunctionComponent, Ref, useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { - Button, - Divider, - InputGroup, - InputGroupItem, - MenuToggle, - MenuToggleElement, - Select, - SelectGroup, - SelectList, - SelectOption, - SelectOptionProps, - TextInputGroup, - TextInputGroupMain, - TextInputGroupUtilities, - Tooltip, -} from '@patternfly/react-core'; -import { TimesIcon } from '@patternfly/react-icons'; -import { useDataMapper } from '../../../hooks'; -import { DocumentService } from '../../../services/document.service'; - -type FieldOptionProps = SelectOptionProps & { - documentId: string; - documentType: string; - fieldDefinition: IField; -}; - -type FieldSelectorProps = { - onSubmit: (field: IField) => void; -}; - -export const FieldSelector: FunctionComponent = ({ onSubmit }) => { - const [isOpen, setIsOpen] = useState(false); - const [selected, setSelected] = useState(''); - const [inputValue, setInputValue] = useState(''); - const [filterValue, setFilterValue] = useState(''); - const [allFieldOptions, setAllFieldOptions] = useState([]); - const [filteredFieldOptions, setFilteredFieldOptions] = useState([]); - const [focusedItemIndex, setFocusedItemIndex] = useState(null); - const [activeItem, setActiveItem] = useState(null); - const textInputRef = useRef(); - - const { sourceParameterMap, sourceBodyDocument } = useDataMapper(); - - useEffect(() => { - const allSourceFields = DocumentService.getAllFields(sourceBodyDocument, sourceParameterMap); - const updatedAllFieldOptions = allSourceFields.map((field) => { - return { - value: field.expression, - children: field.expression, - documentId: field.ownerDocument.documentId, - documentType: field.ownerDocument.documentType, - fieldDefinition: field, - } as FieldOptionProps; - }); - setAllFieldOptions(updatedAllFieldOptions); - }, [sourceParameterMap, sourceBodyDocument]); - - useEffect(() => { - let newFunctionOptions = allFieldOptions; - if (filterValue) { - const lowerFilterValue = filterValue.toLowerCase(); - newFunctionOptions = allFieldOptions.filter((option) => option.value.toLowerCase().includes(lowerFilterValue)); - - // Open the menu when the input value changes and the new value is not empty - if (!isOpen) { - setIsOpen(true); - } - } - - setFilteredFieldOptions(newFunctionOptions); - setActiveItem(null); - setFocusedItemIndex(null); - }, [allFieldOptions, filterValue, isOpen]); - - const onToggleClick = () => { - setIsOpen(!isOpen); - }; - - const handleOnSelect = ( - _event: React.MouseEvent | undefined, - value: string | number | undefined, - ) => { - if (value && value !== 'no results') { - setInputValue(value as string); - setFilterValue(''); - setSelected(value as string); - } - setIsOpen(false); - setFocusedItemIndex(null); - setActiveItem(null); - }; - - const onTextInputChange = (_event: React.FormEvent, value: string) => { - setInputValue(value); - setFilterValue(value); - }; - - const handleMenuArrowKeys = (key: string) => { - let indexToFocus = -1; - - if (isOpen) { - if (key === 'ArrowUp') { - // When no index is set or at the first index, focus to the last, otherwise decrement focus index - if (focusedItemIndex === null || focusedItemIndex === 0) { - indexToFocus = filteredFieldOptions.length - 1; - } else { - indexToFocus = focusedItemIndex - 1; - } - } - - if (key === 'ArrowDown') { - // When no index is set or at the last index, focus to the first, otherwise increment focus index - if (focusedItemIndex === null || focusedItemIndex === filteredFieldOptions.length - 1) { - indexToFocus = 0; - } else { - indexToFocus = focusedItemIndex + 1; - } - } - - setFocusedItemIndex(indexToFocus); - const focusedItem = filteredFieldOptions.filter((option) => !option.isDisabled)[indexToFocus]; - setActiveItem(`select-typeahead-${focusedItem.value.replace(' ', '-')}`); - } - }; - - const onInputKeyDown = (event: React.KeyboardEvent) => { - const enabledMenuItems = filteredFieldOptions.filter((option) => !option.isDisabled); - const [firstMenuItem] = enabledMenuItems; - const focusedItem = focusedItemIndex ? enabledMenuItems[focusedItemIndex] : firstMenuItem; - - switch (event.key) { - // Select the first available option - case 'Enter': - if (isOpen && focusedItem.value !== 'no results') { - setInputValue(String(focusedItem.children)); - setFilterValue(''); - setSelected(String(focusedItem.children)); - } - - setIsOpen((prevIsOpen) => !prevIsOpen); - setFocusedItemIndex(null); - setActiveItem(null); - - break; - case 'Tab': - case 'Escape': - setIsOpen(false); - setActiveItem(null); - break; - case 'ArrowUp': - case 'ArrowDown': - event.preventDefault(); - handleMenuArrowKeys(event.key); - break; - } - }; - - const toggle = (toggleRef: Ref) => ( - - - - - - {!!inputValue && ( - - )} - - - - ); - - type FieldOptionsGroupProps = { - group: string; - indexes: number[]; - }; - - const FieldOptionsGroup: FunctionComponent = ({ group, indexes }) => { - return ( - <> - - - {indexes.map((index) => { - const option = filteredFieldOptions[index]; - return ( - setSelected(option.value)} - id={`select-typeahead-${option.value}`} - value={option.value} - ref={null} - > - {option.children} - - ); - })} - - - - - ); - }; - - const groupedOptionIndexes = useMemo( - () => - filteredFieldOptions.reduce( - (acc, option) => { - if (!acc[option.documentId]) { - acc[option.documentId] = []; - } - acc[option.documentId].push(filteredFieldOptions.indexOf(option)); - return acc; - }, - {} as Record, - ), - [filteredFieldOptions], - ); - - const GroupedFieldOptions: FunctionComponent = () => { - return Object.keys(groupedOptionIndexes).map((group, index) => { - if (groupedOptionIndexes[group].length == 0) return undefined; - return index === 0 ? ( - - ) : ( - <> - - - - ); - }); - }; - - const handleAddField = useCallback(() => { - const fieldOption = allFieldOptions.find((f) => f.value === selected); - fieldOption && onSubmit(fieldOption.fieldDefinition); - }, [allFieldOptions, onSubmit, selected]); - - return ( - - - - - - - - - - - ); -}; diff --git a/packages/ui/src/components/expression/old/FunctionSelector.tsx b/packages/ui/src/components/expression/old/FunctionSelector.tsx deleted file mode 100644 index df81c5964..000000000 --- a/packages/ui/src/components/expression/old/FunctionSelector.tsx +++ /dev/null @@ -1,309 +0,0 @@ -import { - Button, - Divider, - InputGroup, - InputGroupItem, - MenuToggle, - MenuToggleElement, - Select, - SelectGroup, - SelectList, - SelectOption, - SelectOptionProps, - TextInputGroup, - TextInputGroupMain, - TextInputGroupUtilities, - Tooltip, -} from '@patternfly/react-core'; -import { TimesIcon } from '@patternfly/react-icons'; -import { FunctionComponent, useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { XPathService } from '../../../services/xpath/xpath.service'; -import { FunctionGroup } from '../../../services/xpath/xpath-parser'; -import { IFunctionDefinition } from '../../../models/mapping'; - -type FunctionOptionProps = SelectOptionProps & { - functionGroup: string; - displayName: string; - descriptionString: string; - functionDefinition: IFunctionDefinition; -}; -const functionDefinitions = XPathService.getXPathFunctionDefinitions(); -const allFunctionOptions = Object.keys(functionDefinitions).reduce((acc, value) => { - return functionDefinitions[value as FunctionGroup].reduce((acc2, func) => { - acc2.push({ - value: func.name, - children: func.displayName, - displayName: func.displayName, - description: func.description, - descriptionString: func.description, - functionGroup: value, - functionDefinition: func, - }); - return acc2; - }, acc); -}, [] as FunctionOptionProps[]); - -type FunctionSelectorProps = { - onSubmit: (selected: IFunctionDefinition) => void; -}; -export const FunctionSelector: FunctionComponent = ({ onSubmit }) => { - const [isOpen, setIsOpen] = useState(false); - const [selected, setSelected] = useState(''); - const [inputValue, setInputValue] = useState(''); - const [filterValue, setFilterValue] = useState(''); - const [functionOptions, setFunctionOptions] = useState(allFunctionOptions); - const [focusedItemIndex, setFocusedItemIndex] = useState(null); - const [activeItem, setActiveItem] = useState(null); - const textInputRef = useRef(); - - useEffect(() => { - let newFunctionOptions = allFunctionOptions; - if (filterValue) { - newFunctionOptions = allFunctionOptions.filter((option) => { - return ( - option.functionGroup.includes(filterValue) || - option.value.includes(filterValue) || - option.displayName.includes(filterValue) || - option.descriptionString.includes(filterValue) - ); - }); - - // Open the menu when the input value changes and the new value is not empty - if (!isOpen) { - setIsOpen(true); - } - } - - setFunctionOptions(newFunctionOptions); - setActiveItem(null); - setFocusedItemIndex(null); - }, [filterValue, isOpen]); - - const onToggleClick = () => { - setIsOpen(!isOpen); - }; - - const handleOnSelect = ( - _event: React.MouseEvent | undefined, - value: string | number | undefined, - ) => { - if (value && value !== 'no results') { - setInputValue(value as string); - setFilterValue(''); - setSelected(value as string); - } - setIsOpen(false); - setFocusedItemIndex(null); - setActiveItem(null); - }; - - const onTextInputChange = (_event: React.FormEvent, value: string) => { - setInputValue(value); - setFilterValue(value); - }; - - const handleMenuArrowKeys = (key: string) => { - let indexToFocus = -1; - - if (isOpen) { - if (key === 'ArrowUp') { - // When no index is set or at the first index, focus to the last, otherwise decrement focus index - if (focusedItemIndex === null || focusedItemIndex === 0) { - indexToFocus = functionOptions.length - 1; - } else { - indexToFocus = focusedItemIndex - 1; - } - } - - if (key === 'ArrowDown') { - // When no index is set or at the last index, focus to the first, otherwise increment focus index - if (focusedItemIndex === null || focusedItemIndex === functionOptions.length - 1) { - indexToFocus = 0; - } else { - indexToFocus = focusedItemIndex + 1; - } - } - - setFocusedItemIndex(indexToFocus); - const focusedItem = functionOptions.filter((option) => !option.isDisabled)[indexToFocus]; - setActiveItem(`select-typeahead-${focusedItem.value.replace(' ', '-')}`); - } - }; - - const onInputKeyDown = (event: React.KeyboardEvent) => { - const enabledMenuItems = functionOptions.filter((option) => !option.isDisabled); - const [firstMenuItem] = enabledMenuItems; - const focusedItem = focusedItemIndex ? enabledMenuItems[focusedItemIndex] : firstMenuItem; - - switch (event.key) { - // Select the first available option - case 'Enter': - if (isOpen && focusedItem.value !== 'no results') { - setInputValue(String(focusedItem.children)); - setFilterValue(''); - setSelected(String(focusedItem.children)); - } - - setIsOpen((prevIsOpen) => !prevIsOpen); - setFocusedItemIndex(null); - setActiveItem(null); - - break; - case 'Tab': - case 'Escape': - setIsOpen(false); - setActiveItem(null); - break; - case 'ArrowUp': - case 'ArrowDown': - event.preventDefault(); - handleMenuArrowKeys(event.key); - break; - } - }; - - const handleAddFunction = useCallback(() => { - onSubmit(functionOptions.find((op) => op.value === selected)!.functionDefinition); - }, [functionOptions, onSubmit, selected]); - - const toggle = (toggleRef: React.Ref) => ( - - - - - - {!!inputValue && ( - - )} - - - - ); - - type FunctionOptionsGroupProps = { - group: string; - indexes: number[]; - }; - - const FunctionOptionsGroup: FunctionComponent = ({ group, indexes }) => { - return ( - <> - - - {indexes.map((index) => { - const option = functionOptions[index]; - return ( - setSelected(option.value)} - id={`select-typeahead-${option.value}`} - value={option.value} - ref={null} - description={option.description} - > - {option.displayName} - - ); - })} - - - - - ); - }; - - const groupedOptionIndexes = useMemo( - () => - functionOptions.reduce( - (acc, option) => { - if (!acc[option.functionGroup]) { - acc[option.functionGroup] = []; - } - acc[option.functionGroup].push(functionOptions.indexOf(option)); - return acc; - }, - {} as Record, - ), - [functionOptions], - ); - - const GroupedFunctionOptions: FunctionComponent = () => { - return Object.keys(groupedOptionIndexes).map((group, index) => { - if (groupedOptionIndexes[group].length == 0) return undefined; - return index === 0 ? ( - - ) : ( -
    - - -
    - ); - }); - }; - - return ( - - - - - - - - - - - ); -}; diff --git a/packages/ui/src/components/expression/old/InlineEdit.tsx b/packages/ui/src/components/expression/old/InlineEdit.tsx deleted file mode 100644 index bdf9d904f..000000000 --- a/packages/ui/src/components/expression/old/InlineEdit.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { FormEvent, FunctionComponent, useCallback, useState } from 'react'; -import { Button, Form, TextInput } from '@patternfly/react-core'; -import { CheckIcon, PencilAltIcon, TimesIcon } from '@patternfly/react-icons'; - -type InlineEditProps = { - value: string | number; - onSave: (value: string | number) => void; -}; - -export const InlineEdit: FunctionComponent = ({ value, onSave }) => { - const [text, setText] = useState(value); - const [tempText, setTempText] = useState(value); - const [editing, setEditing] = useState(false); - - const handleTextChange = useCallback((_event: FormEvent, value: string) => { - setTempText(value); - }, []); - - const handleEditing = useCallback(() => { - setEditing(true); - }, []); - - const handleSave = useCallback(() => { - setText(tempText); - onSave(tempText); - setEditing(false); - }, [onSave, tempText]); - - const handleCancel = useCallback(() => { - setTempText(text); - setEditing(false); - }, [text]); - - return editing ? ( -
    -
    -
    - - - -
    -
    -
    - -
    -
    - -
    -
    -
    -
    - ) : ( -
    -
    -
    - {text} -
    -
    - -
    -
    -
    - ); -}; diff --git a/packages/ui/src/layout/views/SourcePanel.tsx b/packages/ui/src/layout/views/SourcePanel.tsx index 17db9a10c..73d026300 100644 --- a/packages/ui/src/layout/views/SourcePanel.tsx +++ b/packages/ui/src/layout/views/SourcePanel.tsx @@ -9,10 +9,10 @@ import { TextContent, TextVariants, } from '@patternfly/react-core'; -import { SourceDocument } from '../../components/document'; import { Parameters } from '../../components/document/Parameters'; import { useDataMapper } from '../../hooks'; import { useCanvas } from '../../hooks/useCanvas'; +import { SourceDocument } from '../../components/document/SourceDocument'; export const SourcePanel: FunctionComponent = () => { const { sourceBodyDocument } = useDataMapper(); @@ -32,7 +32,7 @@ export const SourcePanel: FunctionComponent = () => {   - + diff --git a/packages/ui/src/layout/views/SourceTargetView.scss b/packages/ui/src/layout/views/SourceTargetView.scss index 9f98e24eb..e6749f88e 100644 --- a/packages/ui/src/layout/views/SourceTargetView.scss +++ b/packages/ui/src/layout/views/SourceTargetView.scss @@ -26,5 +26,6 @@ &__target-panel-main { height: 100%; + max-height: 100%; } } diff --git a/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/layout/views/SourceTargetView.tsx index bc2a6a348..e2ad470df 100644 --- a/packages/ui/src/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/layout/views/SourceTargetView.tsx @@ -17,7 +17,7 @@ import './SourceTargetView.scss'; import { useCanvas } from '../../hooks/useCanvas'; import { SourcePanel } from './SourcePanel'; import { SourceTargetDnDHandler } from '../../providers/dnd/SourceTargetDnDHandler'; -import { TargetDocument } from '../../components/document/target/TargetDocument'; +import { TargetDocument } from '../../components/document/TargetDocument'; export const SourceTargetView: FunctionComponent = () => { const { targetBodyDocument } = useDataMapper(); @@ -44,7 +44,7 @@ export const SourceTargetView: FunctionComponent = () => { - + diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 22df20816..b2d164ea2 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -31,7 +31,7 @@ export class FieldItem extends MappingItem { public parent: MappingParentType, public field: IField, ) { - super(parent, 'field'); + super(parent, 'field-' + field.name); } } diff --git a/packages/ui/src/models/visualization.ts b/packages/ui/src/models/visualization.ts index 3750f92d1..ee5852a06 100644 --- a/packages/ui/src/models/visualization.ts +++ b/packages/ui/src/models/visualization.ts @@ -1,5 +1,5 @@ import { IDocument, IField } from './document'; -import { FieldItem, MappingItem, MappingTree } from './mapping'; +import { FieldItem, MappingItem, MappingParentType, MappingTree } from './mapping'; import { generateRandomId } from '../util'; import { DocumentType, NodePath } from './path'; @@ -8,6 +8,7 @@ export interface NodeData { id: string; path: NodePath; isSource: boolean; + mapping?: MappingParentType; } export type SourceNodeDataType = DocumentNodeData | FieldNodeData; @@ -18,12 +19,12 @@ export class DocumentNodeData implements NodeData { this.id = `doc-${document.documentType}-${document.documentId}`; this.path = NodePath.fromDocument(document.documentType, document.documentId); this.document = document; - this.mappingTree = mappingTree; + this.mapping = mappingTree; this.isSource = document.documentType !== DocumentType.TARGET_BODY; } document: IDocument; - mappingTree?: MappingTree; + mapping?: MappingTree; title: string; id: string; path: NodePath; @@ -37,7 +38,7 @@ export class FieldNodeData implements NodeData { public mapping?: FieldItem, ) { this.title = field.expression; - this.id = generateRandomId('field', 4); + this.id = mapping ? mapping.id : generateRandomId('field-' + field.name, 4); this.path = NodePath.childOf(parent.path, this.id); this.isSource = field.ownerDocument.documentType !== DocumentType.TARGET_BODY; } @@ -48,7 +49,7 @@ export class FieldNodeData implements NodeData { isSource: boolean; } -export class ConditionNodeData implements NodeData { +export class MappingNodeData implements NodeData { constructor( public parent: NodeData, public mapping: MappingItem, diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index e8bd8ce25..e232856e4 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -187,17 +187,12 @@ export class MappingService { } static deleteMappingItem(item: MappingParentType) { - if ((item instanceof FieldItem || item instanceof MappingTree) && item.children) { - item.children = item.children.filter((child) => !(child instanceof ValueSelector)) as ValueSelector[]; - item instanceof MappingItem && item.children.length === 0 && MappingService.deleteFromParent(item); - } else { - item instanceof MappingItem && MappingService.deleteFromParent(item); - } + item instanceof MappingItem && MappingService.deleteFromParent(item); } private static deleteFromParent(item: MappingItem) { item.parent.children = item.parent.children.filter((child) => child !== item); - item.parent instanceof MappingItem && + item.parent instanceof FieldItem && item.parent.children.length === 0 && MappingService.deleteFromParent(item.parent); } diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index 805b83f15..cf4a729bf 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -1,5 +1,5 @@ import { - ConditionNodeData, + MappingNodeData, DocumentNodeData, FieldNodeData, NodeData, @@ -13,7 +13,9 @@ import { MappingItem, MappingParentType, MappingTree, + OtherwiseItem, ValueSelector, + WhenItem, } from '../models/mapping'; import { IField, PrimitiveDocument } from '../models/document'; import { MappingService } from './mapping.service'; @@ -24,18 +26,25 @@ type MappingNodePairType = { }; export class VisualizationService { + static generateNodeDataChildren(nodeData: NodeData) { + const isDocument = nodeData instanceof DocumentNodeData; + const isPrimitive = isDocument && nodeData.document instanceof PrimitiveDocument; + return isPrimitive + ? VisualizationService.generatePrimitiveDocumentChildren(nodeData) + : isDocument + ? VisualizationService.generateStructuredDocumentChildren(nodeData) + : VisualizationService.generateNonDocumentNodeDataChildren(nodeData); + } static generatePrimitiveDocumentChildren(document: DocumentNodeData): NodeData[] { - if (!document.mappingTree?.children) return []; - return document.mappingTree.children - .filter((child) => !(child instanceof ValueSelector)) - .map((child) => new ConditionNodeData(document, child)); + if (!document.mapping?.children) return []; + return document.mapping.children.map((child) => new MappingNodeData(document, child)); } static generateStructuredDocumentChildren(document: DocumentNodeData): NodeData[] { return VisualizationService.doGenerateNodeDataFromFields( document, document.document.fields, - document.mappingTree?.children, + document.mapping?.children, ); } @@ -49,14 +58,13 @@ export class VisualizationService { } mappingsForField .filter((mapping) => !VisualizationService.isExistingMapping(acc, mapping)) + .sort((left, right) => VisualizationService.sortMappingItem(left, right)) .forEach((mapping) => { if (mapping instanceof FieldItem) { const fieldNodeData = new FieldNodeData(parent, field, mapping); acc.push(fieldNodeData); - } else if (mapping instanceof ChooseItem) { - acc.push(new ConditionNodeData(parent, mapping)); } else { - acc.push(new ConditionNodeData(parent, mapping)); + acc.push(new MappingNodeData(parent, mapping)); } }); return acc; @@ -67,10 +75,18 @@ export class VisualizationService { return nodes.find((node) => 'mapping' in node && node.mapping === mapping); } - static generateNodeDataChildren(parent: NodeData): NodeData[] { - if (parent instanceof ConditionNodeData) { + private static sortMappingItem(left: MappingItem, right: MappingItem) { + if (left instanceof WhenItem) return right instanceof OtherwiseItem ? -1 : 0; + if (right instanceof WhenItem) return left instanceof OtherwiseItem ? 1 : 0; + return 0; + } + + static generateNonDocumentNodeDataChildren(parent: NodeData): NodeData[] { + if (parent instanceof MappingNodeData) { return parent.mapping?.children - ? parent.mapping.children.map((m) => VisualizationService.createNodeDataFromMappingItem(parent, m)) + ? parent.mapping.children + .sort((left, right) => VisualizationService.sortMappingItem(left, right)) + .map((m) => VisualizationService.createNodeDataFromMappingItem(parent, m)) : []; } else if (parent instanceof FieldNodeData) { return VisualizationService.doGenerateNodeDataFromFields(parent, parent.field.fields, parent.mapping?.children); @@ -80,9 +96,7 @@ export class VisualizationService { } private static createNodeDataFromMappingItem(parent: NodeData, item: MappingItem): NodeData { - return item instanceof FieldItem - ? new FieldNodeData(parent, item.field, item) - : new ConditionNodeData(parent, item); + return item instanceof FieldItem ? new FieldNodeData(parent, item.field, item) : new MappingNodeData(parent, item); } static testNodePair(fromNode: NodeData, toNode: NodeData): MappingNodePairType { @@ -102,13 +116,38 @@ export class VisualizationService { return nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; } + static allowIfChoose(nodeData: NodeData) { + if (nodeData instanceof MappingNodeData) { + const mapping = nodeData.mapping; + if (mapping instanceof ValueSelector || mapping instanceof WhenItem || mapping instanceof OtherwiseItem) + return false; + } + return true; + } + static allowForEach(nodeData: NodeData) { return nodeData instanceof FieldNodeData && VisualizationService.isCollectionField(nodeData); } + static isValueSelectorNode(nodeData: NodeData) { + return nodeData instanceof MappingNodeData && nodeData.mapping instanceof ValueSelector; + } + + static allowValueSelector(nodeData: NodeData) { + const isChooseNode = nodeData instanceof MappingNodeData && nodeData.mapping instanceof ChooseItem; + const isValueSelector = nodeData instanceof MappingNodeData && nodeData.mapping instanceof ValueSelector; + return !isChooseNode && !isValueSelector; + } + + static hasValueSelector(nodeData: NodeData) { + return !!( + (nodeData instanceof MappingNodeData && nodeData.mapping.children.find((c) => c instanceof ValueSelector)) || + (nodeData instanceof DocumentNodeData && nodeData.mapping?.children.find((c) => c instanceof ValueSelector)) + ); + } + static deleteMappingItem(nodeData: NodeData) { - if ('mapping' in nodeData) MappingService.deleteMappingItem(nodeData.mapping as MappingItem); - else if ('mappingTree' in nodeData) MappingService.deleteMappingItem(nodeData.mappingTree as MappingTree); + if ('mapping' in nodeData && nodeData.mapping) MappingService.deleteMappingItem(nodeData.mapping); } static applyIf(nodeData: NodeData) { @@ -120,35 +159,43 @@ export class VisualizationService { } private static doApplyCondition(nodeData: NodeData, createItem: (parent: MappingParentType) => MappingItem) { - if (nodeData instanceof DocumentNodeData && nodeData.mappingTree) { - nodeData.mappingTree.children.push(createItem(nodeData.mappingTree)); - } else if ((nodeData instanceof ConditionNodeData || nodeData instanceof FieldNodeData) && nodeData.mapping) { + if (nodeData instanceof DocumentNodeData && nodeData.mapping) { nodeData.mapping.children.push(createItem(nodeData.mapping)); + } else if ((nodeData instanceof MappingNodeData || nodeData instanceof FieldNodeData) && nodeData.mapping) { + const item = createItem(nodeData.mapping.parent); + item.children.push(nodeData.mapping); + nodeData.mapping.parent.children = nodeData.mapping.parent.children.filter((m) => m !== nodeData.mapping); + nodeData.mapping.parent.children.push(item); + nodeData.mapping.parent = item; } else { throw Error(`Unsupported: ${nodeData.title}`); } } static isForEachNode(nodeData: NodeData) { - return nodeData instanceof ConditionNodeData && nodeData.mapping instanceof ForEachItem; + return nodeData instanceof MappingNodeData && nodeData.mapping instanceof ForEachItem; } static applyForEach(nodeData: FieldNodeData) { const target = VisualizationService.isForEachNode(nodeData.parent) - ? (nodeData.parent as ConditionNodeData).parent + ? (nodeData.parent as MappingNodeData).parent : nodeData.parent; - if (target instanceof DocumentNodeData && target.mappingTree) { - target.mappingTree.children.push(new ForEachItem(target.mappingTree, nodeData.field)); - } else if ((target instanceof ConditionNodeData || target instanceof FieldNodeData) && target.mapping) { + if (target.mapping) { target.mapping.children.push(new ForEachItem(target.mapping, nodeData.field)); } else { throw Error(`Unsupported: ${nodeData.title}`); } } + static applyValueSelector(nodeData: NodeData) { + if (!nodeData.mapping) return; + const existing = nodeData.mapping.children.find((c) => c instanceof ValueSelector); + if (!existing) nodeData.mapping.children.push(new ValueSelector(nodeData.mapping)); + } + static engageMapping(mappingTree: MappingTree, sourceNode: SourceNodeDataType, targetNode: NodeData) { const sourceItem = 'document' in sourceNode ? (sourceNode.document as PrimitiveDocument) : sourceNode.field; - if (targetNode instanceof ConditionNodeData) { + if (targetNode instanceof MappingNodeData) { MappingService.mapToCondition(targetNode.mapping, sourceItem); } else if (targetNode instanceof DocumentNodeData) { MappingService.mapToDocument(mappingTree, sourceItem); From c7e28652c722273c523d1b31f0263627a49b158f Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 17 Jun 2024 18:43:12 -0400 Subject: [PATCH 238/471] fix: Splitted source/target document again to avoid circular dependency through SourcePanel usage in the XPathEditor --- .../ui/src/components/document/Document.tsx | 99 ---------------- .../components/document/SourceDocument.tsx | 96 +++++++++++++++- .../components/document/TargetDocument.tsx | 107 ++++++++++++++++-- 3 files changed, 192 insertions(+), 110 deletions(-) delete mode 100644 packages/ui/src/components/document/Document.tsx diff --git a/packages/ui/src/components/document/Document.tsx b/packages/ui/src/components/document/Document.tsx deleted file mode 100644 index ca23ca096..000000000 --- a/packages/ui/src/components/document/Document.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { FunctionComponent, useRef, useState } from 'react'; -import { AngleDownIcon, AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; -import './Document.scss'; -import { DocumentNodeData, FieldNodeData, MappingNodeData, NodeData } from '../../models/visualization'; -import { VisualizationService } from '../../services/visualization.service'; -import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; -import { NodeContainer } from './NodeContainer'; -import { PrimitiveDocument } from '../../models/document'; -import { NodeReference } from '../../providers/CanvasProvider'; -import { useCanvas } from '../../hooks/useCanvas'; -import { DocumentActions } from './actions/DocumentActions'; - -type DocumentNodeProps = { - nodeData: NodeData; - nodeActions?: React.ReactNode; -}; - -export const DocumentNode: FunctionComponent = ({ nodeData, nodeActions }) => { - const [collapsed, setCollapsed] = useState(false); - const onClick = () => { - setCollapsed(!collapsed); - }; - - const isDocument = nodeData instanceof DocumentNodeData; - const isPrimitive = isDocument && nodeData.document instanceof PrimitiveDocument; - const children = VisualizationService.generateNodeDataChildren(nodeData); - const hasChildren = children.length > 0; - const isCollectionField = nodeData instanceof FieldNodeData && nodeData.field.maxOccurs > 1; - const isAttributeField = nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; - - const headerRef = useRef(null); - const containerRef = useRef(null); - const { getNodeReference, setNodeReference } = useCanvas(); - const nodeReference = useRef({ - get headerRef() { - return headerRef.current; - }, - get containerRef() { - return containerRef.current; - }, - }); - const nodeRefId = nodeData.path.toString(); - getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); - - const showNodeActions = nodeActions && ((isDocument && isPrimitive) || !isDocument); - - const nodeTitle = - nodeData instanceof MappingNodeData ? ( - - ) : isDocument ? ( - {nodeData.title} - ) : ( - nodeData.title - ); - - return ( -
    - -
    - - - {hasChildren && ( - - - - )} - - - - {isCollectionField && ( - - - - )} - {isAttributeField && ( - - - - )} - {nodeTitle} - {showNodeActions && nodeActions} - {isDocument && } - - -
    - {hasChildren && !collapsed && ( -
    - {children.map((child) => ( - - ))} -
    - )} -
    -
    - ); -}; diff --git a/packages/ui/src/components/document/SourceDocument.tsx b/packages/ui/src/components/document/SourceDocument.tsx index 2cad555ad..9f451feac 100644 --- a/packages/ui/src/components/document/SourceDocument.tsx +++ b/packages/ui/src/components/document/SourceDocument.tsx @@ -1,7 +1,14 @@ -import { DocumentNode } from './Document'; -import { DocumentNodeData } from '../../models/visualization'; -import { FunctionComponent } from 'react'; +import { DocumentNodeData, FieldNodeData, MappingNodeData, NodeData } from '../../models/visualization'; +import { FunctionComponent, useRef, useState } from 'react'; import { IDocument } from '../../models/document'; +import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; +import { DocumentActions } from './actions/DocumentActions'; +import { AngleDownIcon, AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; +import { NodeContainer } from './NodeContainer'; +import { NodeReference } from '../../providers/CanvasProvider'; +import { useCanvas } from '../../hooks/useCanvas'; +import { VisualizationService } from '../../services/visualization.service'; +import './Document.scss'; type DocumentProps = { document: IDocument; @@ -9,5 +16,86 @@ type DocumentProps = { export const SourceDocument: FunctionComponent = ({ document }) => { const nodeData = new DocumentNodeData(document); - return ; + return ; +}; + +type DocumentNodeProps = { + nodeData: NodeData; +}; + +export const SourceDocumentNode: FunctionComponent = ({ nodeData }) => { + const [collapsed, setCollapsed] = useState(false); + const onClick = () => { + setCollapsed(!collapsed); + }; + + const isDocument = nodeData instanceof DocumentNodeData; + const children = VisualizationService.generateNodeDataChildren(nodeData); + const hasChildren = children.length > 0; + const isCollectionField = nodeData instanceof FieldNodeData && nodeData.field.maxOccurs > 1; + const isAttributeField = nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; + + const headerRef = useRef(null); + const containerRef = useRef(null); + const { getNodeReference, setNodeReference } = useCanvas(); + const nodeReference = useRef({ + get headerRef() { + return headerRef.current; + }, + get containerRef() { + return containerRef.current; + }, + }); + const nodeRefId = nodeData.path.toString(); + getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); + + const nodeTitle = + nodeData instanceof MappingNodeData ? ( + + ) : isDocument ? ( + {nodeData.title} + ) : ( + nodeData.title + ); + + return ( +
    + +
    + + + + {hasChildren && } + + + + + {isCollectionField && ( + + + + )} + {isAttributeField && ( + + + + )} + {nodeTitle} + {isDocument && } + + +
    + {hasChildren && !collapsed && ( +
    + {children.map((child) => ( + + ))} +
    + )} +
    +
    + ); }; diff --git a/packages/ui/src/components/document/TargetDocument.tsx b/packages/ui/src/components/document/TargetDocument.tsx index 77b203a30..0d258b584 100644 --- a/packages/ui/src/components/document/TargetDocument.tsx +++ b/packages/ui/src/components/document/TargetDocument.tsx @@ -1,22 +1,115 @@ -import { IDocument } from '../../models/document'; -import { DocumentNode } from './Document'; -import { FunctionComponent, useCallback } from 'react'; +import { IDocument, PrimitiveDocument } from '../../models/document'; +import { FunctionComponent, useCallback, useRef, useState } from 'react'; import { useDataMapper } from '../../hooks'; -import { DocumentNodeData } from '../../models/visualization'; +import { DocumentNodeData, FieldNodeData, MappingNodeData, NodeData } from '../../models/visualization'; import { TargetNodeActions } from './actions/TargetNodeActions'; +import { NodeContainer } from './NodeContainer'; +import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; +import { NodeReference } from '../../providers/CanvasProvider'; +import { useCanvas } from '../../hooks/useCanvas'; +import { VisualizationService } from '../../services/visualization.service'; +import { AngleDownIcon, AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; +import { DocumentActions } from './actions/DocumentActions'; +import './Document.scss'; type DocumentProps = { document: IDocument; }; export const TargetDocument: FunctionComponent = ({ document }) => { - const { mappingTree, refreshMappingTree } = useDataMapper(); + const { mappingTree } = useDataMapper(); const nodeData = new DocumentNodeData(document, mappingTree); + + return ; +}; + +type DocumentNodeProps = { + nodeData: NodeData; +}; + +const TargetDocumentNode: FunctionComponent = ({ nodeData }) => { + const [collapsed, setCollapsed] = useState(false); + const onClick = () => { + setCollapsed(!collapsed); + }; + + const isDocument = nodeData instanceof DocumentNodeData; + const isPrimitive = isDocument && nodeData.document instanceof PrimitiveDocument; + const children = VisualizationService.generateNodeDataChildren(nodeData); + const hasChildren = children.length > 0; + const isCollectionField = nodeData instanceof FieldNodeData && nodeData.field.maxOccurs > 1; + const isAttributeField = nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; + + const headerRef = useRef(null); + const containerRef = useRef(null); + const { getNodeReference, setNodeReference } = useCanvas(); + const nodeReference = useRef({ + get headerRef() { + return headerRef.current; + }, + get containerRef() { + return containerRef.current; + }, + }); + const nodeRefId = nodeData.path.toString(); + getNodeReference(nodeRefId) !== nodeReference && setNodeReference(nodeRefId, nodeReference); + + const showNodeActions = (isDocument && isPrimitive) || !isDocument; + const { refreshMappingTree } = useDataMapper(); const handleUpdate = useCallback(() => { refreshMappingTree(); }, [refreshMappingTree]); - const nodeActions = ; + const nodeTitle = + nodeData instanceof MappingNodeData ? ( + + ) : isDocument ? ( + {nodeData.title} + ) : ( + nodeData.title + ); - return ; + return ( +
    + +
    + + + + {hasChildren && } + + + + + {isCollectionField && ( + + + + )} + {isAttributeField && ( + + + + )} + {nodeTitle} + + {showNodeActions && } + + {isDocument && } + + +
    + {hasChildren && !collapsed && ( +
    + {children.map((child) => ( + + ))} +
    + )} +
    +
    + ); }; From 964ebe8e00aefbadcfb5ca0faccf2891f1ac9070 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 17 Jun 2024 18:47:24 -0400 Subject: [PATCH 239/471] fix duplicate at mark for attribute --- packages/ui/src/models/visualization.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/models/visualization.ts b/packages/ui/src/models/visualization.ts index ee5852a06..f429c2ec7 100644 --- a/packages/ui/src/models/visualization.ts +++ b/packages/ui/src/models/visualization.ts @@ -37,7 +37,7 @@ export class FieldNodeData implements NodeData { public field: IField, public mapping?: FieldItem, ) { - this.title = field.expression; + this.title = field.name; this.id = mapping ? mapping.id : generateRandomId('field-' + field.name, 4); this.path = NodePath.childOf(parent.path, this.id); this.isSource = field.ownerDocument.documentType !== DocumentType.TARGET_BODY; From 4ef7cf6e09e8d5a49539df180f9d5cfcb4dbf26a Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 17 Jun 2024 22:05:47 -0400 Subject: [PATCH 240/471] fix --- packages/ui/src/services/document.service.ts | 15 --------------- packages/ui/src/services/mapping.service.ts | 2 +- packages/ui/src/services/visualization.service.ts | 4 +++- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index ce1e71dfe..706234f02 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -41,19 +41,4 @@ export class DocumentService { static getFieldFromPathExpression(document: IDocument, pathExpression: string) { return DocumentService.getFieldFromPathSegments(document, pathExpression.split('/')); } - - static getAllFields(bodyDocument: IDocument, parameterMap: Map) { - return [bodyDocument, ...parameterMap.values()].reduce((acc, doc) => { - doc instanceof PrimitiveDocument ? acc.push(doc) : DocumentService.populateChildren(acc, doc.fields); - return acc; - }, [] as IField[]); - } - - private static populateChildren(answer: IField[], fields: IField[]) { - return fields.reduce((acc, field) => { - acc.push(field); - DocumentService.populateChildren(acc, field.fields); - return acc; - }, answer); - } } diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index e232856e4..a401201a1 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -179,7 +179,7 @@ export class MappingService { static createFieldItem(mappingTree: MappingTree, targetField: IField): FieldItem | MappingTree { const fieldStack = DocumentService.getFieldStack(targetField, true); - return fieldStack.reduce((mapping: MappingTree | MappingItem, field) => { + return fieldStack.reduceRight((mapping: MappingTree | MappingItem, field) => { const fieldItem = new FieldItem(mapping, field); mapping.children.push(fieldItem); return fieldItem; diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index cf4a729bf..9108dd497 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -49,6 +49,8 @@ export class VisualizationService { } private static doGenerateNodeDataFromFields(parent: NodeData, fields: IField[], mappings?: MappingItem[]) { + const answer: NodeData[] = + mappings?.filter((m) => m instanceof ValueSelector).map((m) => new MappingNodeData(parent, m)) ?? []; return fields.reduce((acc, field) => { const mappingsForField = mappings ? MappingService.filterMappingsForField(mappings, field) : []; if (mappingsForField.length === 0) { @@ -68,7 +70,7 @@ export class VisualizationService { } }); return acc; - }, [] as NodeData[]); + }, answer); } private static isExistingMapping(nodes: NodeData[], mapping: MappingItem) { From c48012b6222137e8c84844a94bd4a9686d599d93 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 17 Jun 2024 22:18:01 -0400 Subject: [PATCH 241/471] fix source xpath --- packages/ui/src/services/xpath/xpath.service.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index b3b484d44..3e84b9741 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -131,7 +131,10 @@ export class XPathService { static toXPath(source: PrimitiveDocument | IField): string { const doc = source.ownerDocument; const prefix = doc.documentType === DocumentType.PARAM ? `$${doc.documentId}` : ''; - const xpath = DocumentService.getFieldStack(source).reduce((acc, field) => acc + `/${field.name}`, prefix); + const xpath = DocumentService.getFieldStack(source, true).reduceRight( + (acc, field) => acc + `/${field.name}`, + prefix, + ); return xpath ? xpath : '.'; } } From c79a35486c5858c12c4e5be625ba85d057e8dcb8 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 19 Jun 2024 14:09:32 -0400 Subject: [PATCH 242/471] bug fixes --- .../components/document/TargetDocument.tsx | 20 +-- .../document/actions/ConditionMenuAction.tsx | 13 +- ...Action.tsx => DeleteMappingItemAction.tsx} | 6 +- .../actions/ExpressionEditorAction.tsx | 4 +- .../document/actions/TargetNodeActions.tsx | 17 +- packages/ui/src/models/document.ts | 30 ++-- packages/ui/src/models/visualization.ts | 52 ++++-- packages/ui/src/services/document.service.ts | 1 + packages/ui/src/services/mapping.service.ts | 52 ++++-- .../ui/src/services/visualization.service.ts | 168 +++++++++++------- .../services/xml-schema-document.service.ts | 18 +- 11 files changed, 234 insertions(+), 147 deletions(-) rename packages/ui/src/components/document/actions/{DeleteItemAction.tsx => DeleteMappingItemAction.tsx} (87%) diff --git a/packages/ui/src/components/document/TargetDocument.tsx b/packages/ui/src/components/document/TargetDocument.tsx index 0d258b584..ff1532afa 100644 --- a/packages/ui/src/components/document/TargetDocument.tsx +++ b/packages/ui/src/components/document/TargetDocument.tsx @@ -1,7 +1,7 @@ -import { IDocument, PrimitiveDocument } from '../../models/document'; +import { IDocument } from '../../models/document'; import { FunctionComponent, useCallback, useRef, useState } from 'react'; import { useDataMapper } from '../../hooks'; -import { DocumentNodeData, FieldNodeData, MappingNodeData, NodeData } from '../../models/visualization'; +import { MappingNodeData, TargetDocumentNodeData, TargetNodeData } from '../../models/visualization'; import { TargetNodeActions } from './actions/TargetNodeActions'; import { NodeContainer } from './NodeContainer'; import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; @@ -18,13 +18,13 @@ type DocumentProps = { export const TargetDocument: FunctionComponent = ({ document }) => { const { mappingTree } = useDataMapper(); - const nodeData = new DocumentNodeData(document, mappingTree); + const nodeData = new TargetDocumentNodeData(document, mappingTree); return ; }; type DocumentNodeProps = { - nodeData: NodeData; + nodeData: TargetNodeData; }; const TargetDocumentNode: FunctionComponent = ({ nodeData }) => { @@ -33,12 +33,12 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData }) setCollapsed(!collapsed); }; - const isDocument = nodeData instanceof DocumentNodeData; - const isPrimitive = isDocument && nodeData.document instanceof PrimitiveDocument; - const children = VisualizationService.generateNodeDataChildren(nodeData); + const isDocument = VisualizationService.isDocumentNode(nodeData); + const isPrimitive = VisualizationService.isPrimitiveDocumentNode(nodeData); + const children = VisualizationService.generateNodeDataChildren(nodeData) as TargetNodeData[]; const hasChildren = children.length > 0; - const isCollectionField = nodeData instanceof FieldNodeData && nodeData.field.maxOccurs > 1; - const isAttributeField = nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; + const isCollectionField = VisualizationService.isCollectionField(nodeData); + const isAttributeField = VisualizationService.isAttributeField(nodeData); const headerRef = useRef(null); const containerRef = useRef(null); @@ -98,7 +98,7 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData }) {showNodeActions && } - {isDocument && } + {isDocument && } diff --git a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx index 6642a4e83..104105764 100644 --- a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx +++ b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx @@ -1,5 +1,5 @@ import { FunctionComponent, Ref, MouseEvent, useCallback, useState } from 'react'; -import { FieldNodeData, MappingNodeData, NodeData } from '../../../models/visualization'; +import { MappingNodeData, TargetFieldNodeData, TargetNodeData } from '../../../models/visualization'; import { VisualizationService } from '../../../services/visualization.service'; import { ActionListItem, @@ -12,16 +12,17 @@ import { import { EllipsisVIcon } from '@patternfly/react-icons'; import { ChooseItem } from '../../../models/mapping'; import { MappingService } from '../../../services/mapping.service'; +import { useDataMapper } from '../../../hooks'; type ConditionMenuProps = { - nodeData: NodeData; + nodeData: TargetNodeData; onUpdate: () => void; }; export const ConditionMenuAction: FunctionComponent = ({ nodeData, onUpdate }) => { const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); - + const { mappingTree } = useDataMapper(); const allowIfChoose = VisualizationService.allowIfChoose(nodeData); const allowForEach = VisualizationService.allowForEach(nodeData); const isChooseNode = nodeData instanceof MappingNodeData && nodeData.mapping instanceof ChooseItem; @@ -43,7 +44,7 @@ export const ConditionMenuAction: FunctionComponent = ({ nod VisualizationService.applyChoose(nodeData); break; case 'foreach': - VisualizationService.applyForEach(nodeData as FieldNodeData); + MappingService.wrapWithForEach(mappingTree, (nodeData as TargetFieldNodeData).field); break; case 'when': MappingService.addWhen(nodeData.mapping as ChooseItem); @@ -55,7 +56,7 @@ export const ConditionMenuAction: FunctionComponent = ({ nod onUpdate(); setIsActionMenuOpen(false); }, - [nodeData, onUpdate], + [mappingTree, nodeData, onUpdate], ); return ( @@ -81,7 +82,7 @@ export const ConditionMenuAction: FunctionComponent = ({ nod {allowValueSelector && ( - Add value selector + Add selector expression )} {isChooseNode ? ( diff --git a/packages/ui/src/components/document/actions/DeleteItemAction.tsx b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx similarity index 87% rename from packages/ui/src/components/document/actions/DeleteItemAction.tsx rename to packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx index 5e941c3a4..6f236bd69 100644 --- a/packages/ui/src/components/document/actions/DeleteItemAction.tsx +++ b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx @@ -2,15 +2,15 @@ import { FunctionComponent, useCallback } from 'react'; import { ActionListItem, Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { TrashIcon } from '@patternfly/react-icons'; import { useToggle } from '../../../hooks'; -import { NodeData } from '../../../models/visualization'; +import { TargetNodeData } from '../../../models/visualization'; import { VisualizationService } from '../../../services/visualization.service'; type DeleteItemProps = { - nodeData: NodeData; + nodeData: TargetNodeData; onDelete: () => void; }; -export const DeleteItemAction: FunctionComponent = ({ nodeData, onDelete }) => { +export const DeleteMappingItemAction: FunctionComponent = ({ nodeData, onDelete }) => { const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const onConfirmDelete = useCallback(() => { diff --git a/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx b/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx index 578949739..08182784a 100644 --- a/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx +++ b/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx @@ -1,4 +1,4 @@ -import { NodeData } from '../../../models/visualization'; +import { TargetNodeData } from '../../../models/visualization'; import { ExpressionItem } from '../../../models/mapping'; import { FunctionComponent, useCallback, useState } from 'react'; import { ActionListItem, Button, Modal, ModalVariant } from '@patternfly/react-core'; @@ -6,7 +6,7 @@ import { PencilAltIcon } from '@patternfly/react-icons'; import { ExpressionEditor } from '../../expression/ExpressionEditor'; type ExpressionEditorProps = { - nodeData: NodeData; + nodeData: TargetNodeData; mapping: ExpressionItem; onUpdate: () => void; }; diff --git a/packages/ui/src/components/document/actions/TargetNodeActions.tsx b/packages/ui/src/components/document/actions/TargetNodeActions.tsx index c3101242f..be72c23b5 100644 --- a/packages/ui/src/components/document/actions/TargetNodeActions.tsx +++ b/packages/ui/src/components/document/actions/TargetNodeActions.tsx @@ -1,23 +1,20 @@ import { ActionListGroup } from '@patternfly/react-core'; import { FunctionComponent, MouseEvent, KeyboardEvent, useCallback } from 'react'; import { ExpressionInputAction } from './ExpressionInputAction'; -import { DeleteItemAction } from './DeleteItemAction'; +import { DeleteMappingItemAction } from './DeleteMappingItemAction'; import { ConditionMenuAction } from './ConditionMenuAction'; import { ExpressionEditorAction } from './ExpressionEditorAction'; -import { ExpressionItem } from '../../../models/mapping'; -import { MappingNodeData, NodeData } from '../../../models/visualization'; +import { TargetNodeData } from '../../../models/visualization'; +import { VisualizationService } from '../../../services/visualization.service'; type TargetNodeActionsProps = { - nodeData: NodeData; + nodeData: TargetNodeData; onUpdate: () => void; }; export const TargetNodeActions: FunctionComponent = ({ nodeData, onUpdate }) => { - const expressionItem = - 'mapping' in nodeData && nodeData.mapping && 'expression' in nodeData.mapping - ? (nodeData.mapping as ExpressionItem) - : undefined; - const isDeletable = nodeData instanceof MappingNodeData; + const expressionItem = VisualizationService.getExpressionItemForNode(nodeData); + const isDeletable = VisualizationService.isDeletableNode(nodeData); const handleStopPropagation = useCallback((event: MouseEvent | KeyboardEvent) => { event.stopPropagation(); }, []); @@ -35,7 +32,7 @@ export const TargetNodeActions: FunctionComponent = ({ n )} - {isDeletable && } + {isDeletable && }
    ); }; diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index 8d3e9d456..5fe7cc0c6 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,5 +1,6 @@ import { Types } from './types'; import { DocumentType, NodePath } from './path'; +import { generateRandomId } from '../util'; export const DEFAULT_MIN_OCCURS = 0; export const DEFAULT_MAX_OCCURS = 1; @@ -18,6 +19,7 @@ export const BODY_DOCUMENT_ID = 'Body'; export interface IField { parent: IParentType; ownerDocument: IDocument; + id: string; name: string; expression: string; type: Types; @@ -53,6 +55,14 @@ export abstract class BaseDocument implements IDocument { } export class PrimitiveDocument extends BaseDocument implements IField { + constructor(documentType: DocumentType, documentId: string) { + super(documentType, documentId); + this.name = this.documentId; + this.id = this.documentId; + this.expression = this.documentId; + this.path = NodePath.fromDocument(documentType, documentId); + } + ownerDocument = this; defaultValue: string | null = null; expression: string = ''; @@ -63,21 +73,21 @@ export class PrimitiveDocument extends BaseDocument implements IField { parent: IParentType = this; type = Types.AnyType; path: NodePath; - - constructor(documentType: DocumentType, documentId: string) { - super(documentType, documentId); - this.name = this.documentId; - this.expression = this.documentId; - this.path = NodePath.fromDocument(documentType, documentId); - } + id: string; } export abstract class BaseField implements IField { - abstract parent: IParentType; - abstract ownerDocument: IDocument; + constructor( + public parent: IParentType, + public ownerDocument: IDocument, + public name: string, + ) { + this.id = generateRandomId(`field-${this.name}-`, 4); + } + + id: string; fields: IField[] = []; isAttribute: boolean = false; - name: string = ''; expression: string = ''; type = Types.AnyType; minOccurs: number = DEFAULT_MIN_OCCURS; diff --git a/packages/ui/src/models/visualization.ts b/packages/ui/src/models/visualization.ts index f429c2ec7..32db4c5f8 100644 --- a/packages/ui/src/models/visualization.ts +++ b/packages/ui/src/models/visualization.ts @@ -1,6 +1,5 @@ -import { IDocument, IField } from './document'; +import { IDocument, IField, PrimitiveDocument } from './document'; import { FieldItem, MappingItem, MappingParentType, MappingTree } from './mapping'; -import { generateRandomId } from '../util'; import { DocumentType, NodePath } from './path'; export interface NodeData { @@ -8,61 +7,94 @@ export interface NodeData { id: string; path: NodePath; isSource: boolean; + isPrimitive: boolean; +} + +export interface TargetNodeData extends NodeData { + mappingTree: MappingTree; mapping?: MappingParentType; } export type SourceNodeDataType = DocumentNodeData | FieldNodeData; +export type TargetNodeDataType = TargetDocumentNodeData | TargetFieldNodeData; export class DocumentNodeData implements NodeData { - constructor(document: IDocument, mappingTree?: MappingTree) { + constructor(document: IDocument) { this.title = document.documentId; this.id = `doc-${document.documentType}-${document.documentId}`; this.path = NodePath.fromDocument(document.documentType, document.documentId); this.document = document; - this.mapping = mappingTree; this.isSource = document.documentType !== DocumentType.TARGET_BODY; + this.isPrimitive = document instanceof PrimitiveDocument; } document: IDocument; - mapping?: MappingTree; title: string; id: string; path: NodePath; isSource: boolean; + isPrimitive: boolean; +} + +export class TargetDocumentNodeData extends DocumentNodeData implements TargetNodeData { + constructor(document: IDocument, mappingTree: MappingTree) { + super(document); + this.mappingTree = mappingTree; + this.mapping = mappingTree; + } + mappingTree: MappingTree; + mapping: MappingTree; } export class FieldNodeData implements NodeData { constructor( public parent: NodeData, public field: IField, - public mapping?: FieldItem, ) { this.title = field.name; - this.id = mapping ? mapping.id : generateRandomId('field-' + field.name, 4); + this.id = field.id; this.path = NodePath.childOf(parent.path, this.id); - this.isSource = field.ownerDocument.documentType !== DocumentType.TARGET_BODY; + this.isSource = parent.isSource; + this.isPrimitive = parent.isPrimitive; } title: string; id: string; path: NodePath; isSource: boolean; + isPrimitive: boolean; } -export class MappingNodeData implements NodeData { +export class TargetFieldNodeData extends FieldNodeData implements TargetNodeData { constructor( - public parent: NodeData, + public parent: TargetNodeData, + public field: IField, + public mapping?: FieldItem, + ) { + super(parent, field); + this.mappingTree = parent.mappingTree; + } + mappingTree: MappingTree; +} + +export class MappingNodeData implements TargetNodeData { + constructor( + public parent: TargetNodeData, public mapping: MappingItem, ) { this.title = mapping.name; this.id = mapping.id; this.path = NodePath.childOf(parent.path, this.id); + this.isPrimitive = parent.isPrimitive; + this.mappingTree = parent.mappingTree; } title: string; id: string; path: NodePath; isSource = false; + isPrimitive: boolean; + mappingTree: MappingTree; } export interface IMappingLink { diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index 706234f02..deaa8e53c 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -2,6 +2,7 @@ import { IDocument, IField, PrimitiveDocument } from '../models/document'; export class DocumentService { static getFieldStack(field: IField, includeItself: boolean = false) { + if (field instanceof PrimitiveDocument) return []; const fieldStack: IField[] = []; if (includeItself) fieldStack.push(field); for (let next = field.parent; 'parent' in next && next !== next.parent; next = (next as IField).parent) { diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index a401201a1..7dcd37c6e 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -9,6 +9,7 @@ import { IfItem, ValueSelector, MappingParentType, + ForEachItem, } from '../models/mapping'; import { BODY_DOCUMENT_ID, IDocument, IField, PrimitiveDocument } from '../models/document'; import { DocumentService } from './document.service'; @@ -34,7 +35,12 @@ export class MappingService { branch && acc.push(...MappingService.getConditionalFields(branch)); return acc; }, [] as IField[]); - } else if (mapping instanceof IfItem || mapping instanceof WhenItem || mapping instanceof OtherwiseItem) { + } else if ( + mapping instanceof IfItem || + mapping instanceof WhenItem || + mapping instanceof OtherwiseItem || + mapping instanceof ForEachItem + ) { return mapping.children.reduce((acc, child) => { child instanceof FieldItem && acc.push(child.field); return acc; @@ -46,23 +52,15 @@ export class MappingService { static removeAllMappingsForDocument(mappingTree: MappingTree, documentType: DocumentType, documentId: string) { if (documentType === DocumentType.TARGET_BODY) { - MappingService.doRemoveAllMappingsForTargetDocument(mappingTree, documentId); + MappingService.doRemoveAllMappingsForTargetDocument(mappingTree); } else { MappingService.doRemoveAllMappingsForSourceDocument(mappingTree, documentType, documentId); } return mappingTree; } - private static doRemoveAllMappingsForTargetDocument(item: MappingTree | MappingItem, documentId: string) { - item.children = item.children?.reduce((acc, child) => { - MappingService.doRemoveAllMappingsForTargetDocument(child, documentId); - if (child instanceof FieldItem && documentId !== child.field.ownerDocument.documentId) { - acc.push(child); - } else if (!('isCondition' in child) || child.children.length > 0) { - acc.push(child); - } - return acc; - }, [] as MappingItem[]); + private static doRemoveAllMappingsForTargetDocument(mappingTree: MappingTree) { + mappingTree.children = []; } private static doRemoveAllMappingsForSourceDocument( @@ -137,6 +135,15 @@ export class MappingService { return !!stalePath; } + static wrapWithForEach(mappingTree: MappingTree, field: IField) { + const fieldItem = MappingService.getOrCreateFieldItem(mappingTree, field) as FieldItem; + const parent = fieldItem.parent; + const forEach = new ForEachItem(parent, field); + parent.children = parent.children.filter((c) => c !== fieldItem); + parent.children.push(forEach); + fieldItem.parent = forEach; + } + static addWhen(item: ChooseItem) { item.children.push(new WhenItem(item)); } @@ -168,7 +175,7 @@ export class MappingService { item: MappingItem | undefined, source: PrimitiveDocument | IField, ) { - const targetFieldItem = item ? item : MappingService.createFieldItem(mappingTree, targetField); + const targetFieldItem = item ? item : MappingService.getOrCreateFieldItem(mappingTree, targetField); let valueSelector = targetFieldItem?.children.find((child) => child instanceof ValueSelector) as ValueSelector; if (!valueSelector) { valueSelector = new ValueSelector(targetFieldItem); @@ -177,12 +184,17 @@ export class MappingService { valueSelector.expression = XPathService.addSource(valueSelector.expression, source); } - static createFieldItem(mappingTree: MappingTree, targetField: IField): FieldItem | MappingTree { + static getOrCreateFieldItem(mappingTree: MappingTree, targetField: IField): FieldItem | MappingTree { const fieldStack = DocumentService.getFieldStack(targetField, true); return fieldStack.reduceRight((mapping: MappingTree | MappingItem, field) => { - const fieldItem = new FieldItem(mapping, field); - mapping.children.push(fieldItem); - return fieldItem; + const existing = mapping.children.find((c) => c instanceof FieldItem && c.field === field) as FieldItem; + if (existing) { + return existing; + } else { + const fieldItem = new FieldItem(mapping, field); + mapping.children.push(fieldItem); + return fieldItem; + } }, mappingTree); } @@ -197,6 +209,12 @@ export class MappingService { MappingService.deleteFromParent(item.parent); } + static sortMappingItem(left: MappingItem, right: MappingItem) { + if (left instanceof WhenItem) return right instanceof OtherwiseItem ? -1 : 0; + if (right instanceof WhenItem) return left instanceof OtherwiseItem ? 1 : 0; + return 0; + } + static extractMappingLinks(item: MappingTree | MappingItem): IMappingLink[] { const answer = [] as IMappingLink[]; if ('expression' in item) { diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index 9108dd497..31352f080 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -4,9 +4,14 @@ import { FieldNodeData, NodeData, SourceNodeDataType, + TargetDocumentNodeData, + TargetNodeData, + TargetFieldNodeData, + TargetNodeDataType, } from '../models/visualization'; import { ChooseItem, + ExpressionItem, FieldItem, ForEachItem, IfItem, @@ -22,21 +27,21 @@ import { MappingService } from './mapping.service'; type MappingNodePairType = { sourceNode?: SourceNodeDataType; - targetNode?: NodeData; + targetNode?: TargetNodeDataType; }; export class VisualizationService { static generateNodeDataChildren(nodeData: NodeData) { const isDocument = nodeData instanceof DocumentNodeData; - const isPrimitive = isDocument && nodeData.document instanceof PrimitiveDocument; - return isPrimitive - ? VisualizationService.generatePrimitiveDocumentChildren(nodeData) - : isDocument - ? VisualizationService.generateStructuredDocumentChildren(nodeData) - : VisualizationService.generateNonDocumentNodeDataChildren(nodeData); + const isPrimitive = nodeData.isPrimitive; + return isDocument + ? isPrimitive + ? VisualizationService.generatePrimitiveDocumentChildren(nodeData) + : VisualizationService.generateStructuredDocumentChildren(nodeData) + : VisualizationService.generateNonDocumentNodeDataChildren(nodeData); } static generatePrimitiveDocumentChildren(document: DocumentNodeData): NodeData[] { - if (!document.mapping?.children) return []; + if (!(document instanceof TargetDocumentNodeData) || !document.mapping?.children) return []; return document.mapping.children.map((child) => new MappingNodeData(document, child)); } @@ -44,61 +49,67 @@ export class VisualizationService { return VisualizationService.doGenerateNodeDataFromFields( document, document.document.fields, - document.mapping?.children, + document instanceof TargetDocumentNodeData ? document.mapping?.children : undefined, ); } private static doGenerateNodeDataFromFields(parent: NodeData, fields: IField[], mappings?: MappingItem[]) { - const answer: NodeData[] = - mappings?.filter((m) => m instanceof ValueSelector).map((m) => new MappingNodeData(parent, m)) ?? []; + const answer: NodeData[] = []; + if (parent.isPrimitive) { + mappings + ?.filter((m) => m instanceof ValueSelector) + .forEach((m) => answer.push(new MappingNodeData(parent as TargetNodeData, m))); + } return fields.reduce((acc, field) => { const mappingsForField = mappings ? MappingService.filterMappingsForField(mappings, field) : []; if (mappingsForField.length === 0) { - const fieldNodeData = new FieldNodeData(parent, field); + const fieldNodeData = parent.isSource + ? new FieldNodeData(parent, field) + : new TargetFieldNodeData(parent as TargetNodeData, field); acc.push(fieldNodeData); return acc; } mappingsForField - .filter((mapping) => !VisualizationService.isExistingMapping(acc, mapping)) - .sort((left, right) => VisualizationService.sortMappingItem(left, right)) + .filter((mapping) => !VisualizationService.isExistingMapping(acc as TargetNodeData[], mapping)) + .sort((left, right) => MappingService.sortMappingItem(left, right)) .forEach((mapping) => { if (mapping instanceof FieldItem) { - const fieldNodeData = new FieldNodeData(parent, field, mapping); + const fieldNodeData = new TargetFieldNodeData(parent as TargetNodeData, field, mapping); acc.push(fieldNodeData); } else { - acc.push(new MappingNodeData(parent, mapping)); + acc.push(new MappingNodeData(parent as TargetNodeData, mapping)); } }); return acc; }, answer); } - private static isExistingMapping(nodes: NodeData[], mapping: MappingItem) { + private static isExistingMapping(nodes: TargetNodeData[], mapping: MappingItem) { return nodes.find((node) => 'mapping' in node && node.mapping === mapping); } - private static sortMappingItem(left: MappingItem, right: MappingItem) { - if (left instanceof WhenItem) return right instanceof OtherwiseItem ? -1 : 0; - if (right instanceof WhenItem) return left instanceof OtherwiseItem ? 1 : 0; - return 0; - } - static generateNonDocumentNodeDataChildren(parent: NodeData): NodeData[] { if (parent instanceof MappingNodeData) { return parent.mapping?.children ? parent.mapping.children - .sort((left, right) => VisualizationService.sortMappingItem(left, right)) + .sort((left, right) => MappingService.sortMappingItem(left, right)) .map((m) => VisualizationService.createNodeDataFromMappingItem(parent, m)) : []; } else if (parent instanceof FieldNodeData) { - return VisualizationService.doGenerateNodeDataFromFields(parent, parent.field.fields, parent.mapping?.children); + return VisualizationService.doGenerateNodeDataFromFields( + parent, + parent.field.fields, + parent instanceof TargetFieldNodeData ? parent.mapping?.children : undefined, + ); } else { throw Error(`Unknown NodeData: ${parent.id}`); } } - private static createNodeDataFromMappingItem(parent: NodeData, item: MappingItem): NodeData { - return item instanceof FieldItem ? new FieldNodeData(parent, item.field, item) : new MappingNodeData(parent, item); + private static createNodeDataFromMappingItem(parent: TargetNodeData, item: MappingItem): NodeData { + return item instanceof FieldItem + ? new TargetFieldNodeData(parent, item.field, item) + : new MappingNodeData(parent, item); } static testNodePair(fromNode: NodeData, toNode: NodeData): MappingNodePairType { @@ -106,10 +117,18 @@ export class VisualizationService { if ((fromNode.isSource && toNode.isSource) || (!fromNode.isSource && !toNode.isSource)) return answer; const sourceNode = (fromNode.isSource ? fromNode : toNode) as SourceNodeDataType; - const targetNode = fromNode.isSource ? toNode : fromNode; + const targetNode = (fromNode.isSource ? toNode : fromNode) as TargetNodeDataType; return { sourceNode, targetNode }; } + static isDocumentNode(nodeData: NodeData) { + return nodeData instanceof DocumentNodeData; + } + + static isPrimitiveDocumentNode(nodeData: NodeData) { + return nodeData instanceof DocumentNodeData && nodeData.document instanceof PrimitiveDocument; + } + static isCollectionField(nodeData: NodeData) { return nodeData instanceof FieldNodeData && nodeData.field?.maxOccurs && nodeData.field.maxOccurs > 1; } @@ -118,7 +137,7 @@ export class VisualizationService { return nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; } - static allowIfChoose(nodeData: NodeData) { + static allowIfChoose(nodeData: TargetNodeData) { if (nodeData instanceof MappingNodeData) { const mapping = nodeData.mapping; if (mapping instanceof ValueSelector || mapping instanceof WhenItem || mapping instanceof OtherwiseItem) @@ -127,43 +146,67 @@ export class VisualizationService { return true; } - static allowForEach(nodeData: NodeData) { - return nodeData instanceof FieldNodeData && VisualizationService.isCollectionField(nodeData); + static allowForEach(nodeData: TargetNodeData) { + return nodeData instanceof TargetFieldNodeData && VisualizationService.isCollectionField(nodeData); } - static isValueSelectorNode(nodeData: NodeData) { + static isForEachNode(nodeData: TargetNodeData) { + return nodeData instanceof MappingNodeData && nodeData.mapping instanceof ForEachItem; + } + + static isValueSelectorNode(nodeData: TargetNodeData) { return nodeData instanceof MappingNodeData && nodeData.mapping instanceof ValueSelector; } - static allowValueSelector(nodeData: NodeData) { - const isChooseNode = nodeData instanceof MappingNodeData && nodeData.mapping instanceof ChooseItem; - const isValueSelector = nodeData instanceof MappingNodeData && nodeData.mapping instanceof ValueSelector; - return !isChooseNode && !isValueSelector; + static isChooseNode(nodeData: TargetNodeData) { + return nodeData instanceof MappingNodeData && nodeData.mapping instanceof ChooseItem; + } + + static isDeletableNode(nodeData: TargetNodeData) { + if (nodeData instanceof MappingNodeData) return true; + return VisualizationService.getFieldValueSelector(nodeData) !== undefined; + } + + static getExpressionItemForNode(nodeData: TargetNodeData) { + if (!nodeData.mapping) return; + if ('expression' in nodeData.mapping) return nodeData.mapping as ExpressionItem; + return VisualizationService.getFieldValueSelector(nodeData); } - static hasValueSelector(nodeData: NodeData) { - return !!( - (nodeData instanceof MappingNodeData && nodeData.mapping.children.find((c) => c instanceof ValueSelector)) || - (nodeData instanceof DocumentNodeData && nodeData.mapping?.children.find((c) => c instanceof ValueSelector)) + private static getFieldValueSelector(nodeData: TargetNodeData) { + if (nodeData.mapping instanceof FieldItem) { + return nodeData.mapping.children.find((c) => c instanceof ValueSelector) as ValueSelector; + } + } + + static allowValueSelector(nodeData: TargetNodeData) { + return ( + !VisualizationService.isChooseNode(nodeData) && + !VisualizationService.isValueSelectorNode(nodeData) && + !VisualizationService.isForEachNode(nodeData) ); } - static deleteMappingItem(nodeData: NodeData) { + static hasValueSelector(nodeData: TargetNodeData) { + return !!nodeData.mapping?.children.find((c) => c instanceof ValueSelector); + } + + static deleteMappingItem(nodeData: TargetNodeData) { if ('mapping' in nodeData && nodeData.mapping) MappingService.deleteMappingItem(nodeData.mapping); } - static applyIf(nodeData: NodeData) { + static applyIf(nodeData: TargetNodeData) { VisualizationService.doApplyCondition(nodeData, (parent) => new IfItem(parent)); } - static applyChoose(nodeData: NodeData) { + static applyChoose(nodeData: TargetNodeData) { VisualizationService.doApplyCondition(nodeData, (parent) => new ChooseItem(parent)); } - private static doApplyCondition(nodeData: NodeData, createItem: (parent: MappingParentType) => MappingItem) { - if (nodeData instanceof DocumentNodeData && nodeData.mapping) { + private static doApplyCondition(nodeData: TargetNodeData, createItem: (parent: MappingParentType) => MappingItem) { + if (nodeData instanceof TargetDocumentNodeData && nodeData.mapping) { nodeData.mapping.children.push(createItem(nodeData.mapping)); - } else if ((nodeData instanceof MappingNodeData || nodeData instanceof FieldNodeData) && nodeData.mapping) { + } else if ((nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) && nodeData.mapping) { const item = createItem(nodeData.mapping.parent); item.children.push(nodeData.mapping); nodeData.mapping.parent.children = nodeData.mapping.parent.children.filter((m) => m !== nodeData.mapping); @@ -174,34 +217,23 @@ export class VisualizationService { } } - static isForEachNode(nodeData: NodeData) { - return nodeData instanceof MappingNodeData && nodeData.mapping instanceof ForEachItem; - } - - static applyForEach(nodeData: FieldNodeData) { - const target = VisualizationService.isForEachNode(nodeData.parent) - ? (nodeData.parent as MappingNodeData).parent - : nodeData.parent; - if (target.mapping) { - target.mapping.children.push(new ForEachItem(target.mapping, nodeData.field)); - } else { - throw Error(`Unsupported: ${nodeData.title}`); - } - } - - static applyValueSelector(nodeData: NodeData) { - if (!nodeData.mapping) return; - const existing = nodeData.mapping.children.find((c) => c instanceof ValueSelector); - if (!existing) nodeData.mapping.children.push(new ValueSelector(nodeData.mapping)); + static applyValueSelector(nodeData: TargetNodeData) { + const mapping = + nodeData instanceof TargetFieldNodeData && !nodeData.mapping + ? MappingService.getOrCreateFieldItem(nodeData.mappingTree, nodeData.field) + : nodeData.mapping; + if (!mapping) return; + const existing = mapping.children.find((c) => c instanceof ValueSelector); + if (!existing) mapping.children.push(new ValueSelector(mapping)); } - static engageMapping(mappingTree: MappingTree, sourceNode: SourceNodeDataType, targetNode: NodeData) { + static engageMapping(mappingTree: MappingTree, sourceNode: SourceNodeDataType, targetNode: TargetNodeData) { const sourceItem = 'document' in sourceNode ? (sourceNode.document as PrimitiveDocument) : sourceNode.field; if (targetNode instanceof MappingNodeData) { MappingService.mapToCondition(targetNode.mapping, sourceItem); - } else if (targetNode instanceof DocumentNodeData) { + } else if (targetNode instanceof TargetDocumentNodeData) { MappingService.mapToDocument(mappingTree, sourceItem); - } else if (targetNode instanceof FieldNodeData) { + } else if (targetNode instanceof TargetFieldNodeData) { MappingService.mapToField(targetNode.field, mappingTree, targetNode.mapping, sourceItem); } else { throw Error(`Unsupported: ${targetNode.title}`); diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 0ed011c54..98ae23764 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -52,7 +52,6 @@ export class XmlSchemaDocument extends BaseDocument { type XmlSchemaParentType = XmlSchemaDocument | XmlSchemaField; export class XmlSchemaField extends BaseField { - ownerDocument: XmlSchemaDocument; fields: XmlSchemaField[] = []; namespaceURI: string | null = null; namespacePrefix: string | null = null; @@ -60,11 +59,11 @@ export class XmlSchemaField extends BaseField { constructor( public parent: XmlSchemaParentType, - public expression: string, + public name: string, + public isAttribute: boolean, ) { - super(); - this.ownerDocument = - this.parent instanceof XmlSchemaDocument ? this.parent : (this.parent as XmlSchemaField).ownerDocument; + super(parent, parent instanceof XmlSchemaDocument ? parent : (parent as XmlSchemaField).ownerDocument, name); + this.expression = isAttribute ? '@' + name : name; this.path = NodePath.childOf(parent.path, this.expression); } } @@ -108,9 +107,8 @@ export class XmlSchemaDocumentService { * @param element */ static populateElement(parent: XmlSchemaParentType, fields: XmlSchemaField[], element: XmlSchemaElement) { - const expression = element.getWireName()!.getLocalPart()!; - const field: XmlSchemaField = new XmlSchemaField(parent, expression); - field.name = element.getWireName()!.getLocalPart()!; + const name = element.getWireName()!.getLocalPart()!; + const field: XmlSchemaField = new XmlSchemaField(parent, name, false); field.namespaceURI = element.getWireName()!.getNamespaceURI(); field.namespacePrefix = element.getWireName()!.getPrefix(); field.defaultValue = element.defaultValue || element.fixedValue; @@ -162,9 +160,7 @@ export class XmlSchemaDocumentService { static populateAttribute(parent: XmlSchemaParentType, fields: XmlSchemaField[], attr: XmlSchemaAttribute) { const name = attr.getWireName()!.getLocalPart()!; const expression = '@' + name; - const field = new XmlSchemaField(parent, expression); - field.isAttribute = true; - field.name = name; + const field = new XmlSchemaField(parent, expression, true); field.namespaceURI = attr.getWireName()!.getNamespaceURI(); field.namespacePrefix = attr.getWireName()!.getPrefix(); field.defaultValue = attr.getDefaultValue() || attr.getFixedValue(); From e7f5849b902067b17de8f3ab797280a7c071429e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 19 Jun 2024 16:23:31 -0400 Subject: [PATCH 243/471] fix --- packages/ui/src/services/mapping.service.ts | 18 +++++++--- .../ui/src/services/visualization.service.ts | 35 ++++++++++--------- .../services/xml-schema-document.service.ts | 3 +- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 7dcd37c6e..21a65864d 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -23,6 +23,8 @@ export class MappingService { return mappings.filter((mapping) => { if (mapping instanceof FieldItem) { return mapping.field === field; + } else if (mapping instanceof ValueSelector) { + return false; } else { return MappingService.getConditionalFields(mapping as ConditionItem & MappingItem).includes(field); } @@ -135,13 +137,17 @@ export class MappingService { return !!stalePath; } + static wrapWithItem(wrapped: MappingItem, wrapper: MappingItem) { + wrapper.children.push(wrapped); + wrapped.parent.children = wrapped.parent.children.filter((m) => m !== wrapped); + wrapped.parent.children.push(wrapper); + wrapped.parent = wrapper; + } + static wrapWithForEach(mappingTree: MappingTree, field: IField) { const fieldItem = MappingService.getOrCreateFieldItem(mappingTree, field) as FieldItem; - const parent = fieldItem.parent; - const forEach = new ForEachItem(parent, field); - parent.children = parent.children.filter((c) => c !== fieldItem); - parent.children.push(forEach); - fieldItem.parent = forEach; + const forEach = new ForEachItem(fieldItem.parent, field); + MappingService.wrapWithItem(fieldItem, forEach); } static addWhen(item: ChooseItem) { @@ -210,6 +216,8 @@ export class MappingService { } static sortMappingItem(left: MappingItem, right: MappingItem) { + if (left instanceof ValueSelector) return -1; + if (right instanceof ValueSelector) return 1; if (left instanceof WhenItem) return right instanceof OtherwiseItem ? -1 : 0; if (right instanceof WhenItem) return left instanceof OtherwiseItem ? 1 : 0; return 0; diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index 31352f080..a0459af2a 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -49,7 +49,7 @@ export class VisualizationService { return VisualizationService.doGenerateNodeDataFromFields( document, document.document.fields, - document instanceof TargetDocumentNodeData ? document.mapping?.children : undefined, + document instanceof TargetDocumentNodeData ? document.mappingTree.children : undefined, ); } @@ -101,9 +101,8 @@ export class VisualizationService { parent.field.fields, parent instanceof TargetFieldNodeData ? parent.mapping?.children : undefined, ); - } else { - throw Error(`Unknown NodeData: ${parent.id}`); } + return []; } private static createNodeDataFromMappingItem(parent: TargetNodeData, item: MappingItem): NodeData { @@ -140,7 +139,13 @@ export class VisualizationService { static allowIfChoose(nodeData: TargetNodeData) { if (nodeData instanceof MappingNodeData) { const mapping = nodeData.mapping; - if (mapping instanceof ValueSelector || mapping instanceof WhenItem || mapping instanceof OtherwiseItem) + if ( + mapping instanceof ValueSelector || + mapping instanceof WhenItem || + mapping instanceof OtherwiseItem || + mapping instanceof IfItem || + mapping instanceof ChooseItem + ) return false; } return true; @@ -204,16 +209,16 @@ export class VisualizationService { } private static doApplyCondition(nodeData: TargetNodeData, createItem: (parent: MappingParentType) => MappingItem) { - if (nodeData instanceof TargetDocumentNodeData && nodeData.mapping) { - nodeData.mapping.children.push(createItem(nodeData.mapping)); - } else if ((nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) && nodeData.mapping) { - const item = createItem(nodeData.mapping.parent); - item.children.push(nodeData.mapping); - nodeData.mapping.parent.children = nodeData.mapping.parent.children.filter((m) => m !== nodeData.mapping); - nodeData.mapping.parent.children.push(item); - nodeData.mapping.parent = item; - } else { - throw Error(`Unsupported: ${nodeData.title}`); + if (nodeData instanceof TargetDocumentNodeData) { + nodeData.mappingTree.children.push(createItem(nodeData.mappingTree)); + } else if (nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) { + const mapping = nodeData.mapping + ? nodeData.mapping + : nodeData instanceof TargetFieldNodeData + ? (MappingService.getOrCreateFieldItem(nodeData.mappingTree, nodeData.field) as FieldItem) + : undefined; + if (!mapping) return; + MappingService.wrapWithItem(mapping, createItem(mapping.parent)); } } @@ -235,8 +240,6 @@ export class VisualizationService { MappingService.mapToDocument(mappingTree, sourceItem); } else if (targetNode instanceof TargetFieldNodeData) { MappingService.mapToField(targetNode.field, mappingTree, targetNode.mapping, sourceItem); - } else { - throw Error(`Unsupported: ${targetNode.title}`); } } } diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 98ae23764..0b85bd3b7 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -159,8 +159,7 @@ export class XmlSchemaDocumentService { */ static populateAttribute(parent: XmlSchemaParentType, fields: XmlSchemaField[], attr: XmlSchemaAttribute) { const name = attr.getWireName()!.getLocalPart()!; - const expression = '@' + name; - const field = new XmlSchemaField(parent, expression, true); + const field = new XmlSchemaField(parent, name, true); field.namespaceURI = attr.getWireName()!.getNamespaceURI(); field.namespacePrefix = attr.getWireName()!.getPrefix(); field.defaultValue = attr.getDefaultValue() || attr.getFixedValue(); From b86cc99833b044bec78180bade9e9779e679d095 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 19 Jun 2024 17:05:43 -0400 Subject: [PATCH 244/471] fix: clear stale mappings and refresh node references on schema attach/detach --- .../ui/src/components/debug/CanvasMonitor.tsx | 2 +- .../document/actions/AttachSchemaButton.tsx | 6 ++++++ .../document/actions/DeleteParameterButton.tsx | 15 ++++++++++++++- .../document/actions/DetachSchemaButton.tsx | 14 ++++++++++---- .../document/actions/DocumentActions.tsx | 6 +++++- packages/ui/src/providers/CanvasProvider.tsx | 2 +- 6 files changed, 37 insertions(+), 8 deletions(-) diff --git a/packages/ui/src/components/debug/CanvasMonitor.tsx b/packages/ui/src/components/debug/CanvasMonitor.tsx index 6e916ce10..ec1df8985 100644 --- a/packages/ui/src/components/debug/CanvasMonitor.tsx +++ b/packages/ui/src/components/debug/CanvasMonitor.tsx @@ -31,7 +31,7 @@ export const CanvasMonitor: FunctionComponent = () => { const { getAllNodePaths, reloadNodeReferences } = useCanvas(); useEffect(() => { console.log( - 'Field References: [' + + 'Node References: [' + getAllNodePaths() .map((p) => p + '\n') .toString() + diff --git a/packages/ui/src/components/document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/document/actions/AttachSchemaButton.tsx index 58ab6da2f..07b13c373 100644 --- a/packages/ui/src/components/document/actions/AttachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/AttachSchemaButton.tsx @@ -23,6 +23,7 @@ import { XmlSchemaDocumentService } from '../../../services'; import { useDataMapper } from '../../../hooks'; import { MappingService } from '../../../services/mapping.service'; import { DocumentType } from '../../../models/path'; +import { useCanvas } from '../../../hooks/useCanvas'; type AttachSchemaProps = { documentType: DocumentType; @@ -43,6 +44,7 @@ export const AttachSchemaButton: FunctionComponent = ({ setSourceBodyDocument, setTargetBodyDocument, } = useDataMapper(); + const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const { files, onClick, HiddenFileInput } = useFilePicker({ maxFileSize: 1, }); @@ -71,14 +73,18 @@ export const AttachSchemaButton: FunctionComponent = ({ refreshSourceParameters(); break; } + clearNodeReferencesForDocument(documentType, documentId); + reloadNodeReferences(); }); }, [ + clearNodeReferencesForDocument, documentId, documentType, hasSchema, mappingTree, refreshSourceParameters, + reloadNodeReferences, setMappingTree, setSourceBodyDocument, setTargetBodyDocument, diff --git a/packages/ui/src/components/document/actions/DeleteParameterButton.tsx b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx index 8420658db..3d95b4fc4 100644 --- a/packages/ui/src/components/document/actions/DeleteParameterButton.tsx +++ b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx @@ -5,6 +5,7 @@ import { useDataMapper, useToggle } from '../../../hooks'; import { MappingService } from '../../../services/mapping.service'; import { DocumentType } from '../../../models/path'; +import { useCanvas } from '../../../hooks/useCanvas'; type DeleteParameterProps = { parameterName: string; @@ -12,6 +13,7 @@ type DeleteParameterProps = { export const DeleteParameterButton: FunctionComponent = ({ parameterName }) => { const { mappingTree, setMappingTree, sourceParameterMap, refreshSourceParameters } = useDataMapper(); + const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const onConfirmDelete = useCallback(() => { @@ -19,8 +21,19 @@ export const DeleteParameterButton: FunctionComponent = ({ setMappingTree(cleaned); sourceParameterMap.delete(parameterName); refreshSourceParameters(); + clearNodeReferencesForDocument(DocumentType.PARAM, parameterName); + reloadNodeReferences(); closeModal(); - }, [closeModal, mappingTree, parameterName, refreshSourceParameters, setMappingTree, sourceParameterMap]); + }, [ + clearNodeReferencesForDocument, + closeModal, + mappingTree, + parameterName, + refreshSourceParameters, + reloadNodeReferences, + setMappingTree, + sourceParameterMap, + ]); return ( <> diff --git a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx index f94494260..222ea05b7 100644 --- a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx @@ -21,6 +21,7 @@ import { useDataMapper, useToggle } from '../../../hooks'; import { PrimitiveDocument } from '../../../models/document'; import { MappingService } from '../../../services/mapping.service'; import { DocumentType } from '../../../models/path'; +import { useCanvas } from '../../../hooks/useCanvas'; type DeleteSchemaProps = { documentType: DocumentType; @@ -36,6 +37,7 @@ export const DetachSchemaButton: FunctionComponent = ({ docum setSourceBodyDocument, setTargetBodyDocument, } = useDataMapper(); + const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const onConfirmDelete = useCallback(() => { @@ -54,17 +56,21 @@ export const DetachSchemaButton: FunctionComponent = ({ docum refreshSourceParameters(); break; } + clearNodeReferencesForDocument(documentType, documentId); + reloadNodeReferences(); closeModal(); }, [ - closeModal, - documentId, - documentType, mappingTree, + documentType, + documentId, setMappingTree, - refreshSourceParameters, + clearNodeReferencesForDocument, + reloadNodeReferences, + closeModal, setSourceBodyDocument, setTargetBodyDocument, sourceParameterMap, + refreshSourceParameters, ]); return ( diff --git a/packages/ui/src/components/document/actions/DocumentActions.tsx b/packages/ui/src/components/document/actions/DocumentActions.tsx index 71cadf8ab..ac7bbe671 100644 --- a/packages/ui/src/components/document/actions/DocumentActions.tsx +++ b/packages/ui/src/components/document/actions/DocumentActions.tsx @@ -20,7 +20,11 @@ export const DocumentActions: FunctionComponent = ({ nodeD return ( - + diff --git a/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/providers/CanvasProvider.tsx index 98b65eb56..9e9936499 100644 --- a/packages/ui/src/providers/CanvasProvider.tsx +++ b/packages/ui/src/providers/CanvasProvider.tsx @@ -112,7 +112,7 @@ export const CanvasProvider: FunctionComponent = (props) => { const clearNodeReferencesForDocument = useCallback( (documentType: DocumentType, documentId: string) => { const pathPrefix = NodePath.fromDocument(documentType, documentId).toString(); - Object.keys(nodeReferenceMap) + Array.from(nodeReferenceMap.keys()) .filter((key) => key.startsWith(pathPrefix)) .forEach((key) => nodeReferenceMap.delete(key)); }, From 14aaf829bc959c1704d440bdc74c0b4c06bfdb01 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 20 Jun 2024 02:00:56 -0400 Subject: [PATCH 245/471] fix: line rendering --- .../components/debug/DataMapperMonitor.tsx | 6 +- .../components/document/SourceDocument.tsx | 22 ++++---- .../expression/ExpressionEditor.tsx | 4 +- packages/ui/src/layout/views/MappingLink.tsx | 42 ++++++++------ packages/ui/src/models/document.ts | 5 +- packages/ui/src/models/mapping.ts | 54 +++++++++--------- ...ndler.ts => ExpressionEditorDnDHandler.ts} | 2 +- .../ui/src/services/document.service.test.ts | 4 +- packages/ui/src/services/mapping.service.ts | 56 ++++++++++++------- .../services/xml-schema-document.service.ts | 4 +- 10 files changed, 114 insertions(+), 85 deletions(-) rename packages/ui/src/providers/dnd/{TransformationEditorDnDHandler.ts => ExpressionEditorDnDHandler.ts} (79%) diff --git a/packages/ui/src/components/debug/DataMapperMonitor.tsx b/packages/ui/src/components/debug/DataMapperMonitor.tsx index 4a5e85d3e..95000a119 100644 --- a/packages/ui/src/components/debug/DataMapperMonitor.tsx +++ b/packages/ui/src/components/debug/DataMapperMonitor.tsx @@ -3,13 +3,13 @@ import { useEffect } from 'react'; import { MappingService } from '../../services/mapping.service'; export const DataMapperMonitor = () => { - const { mappingTree } = useDataMapper(); + const { mappingTree, sourceParameterMap, sourceBodyDocument } = useDataMapper(); useEffect(() => { - MappingService.extractMappingLinks(mappingTree).forEach((mapping) => { + MappingService.extractMappingLinks(mappingTree, sourceParameterMap, sourceBodyDocument).forEach((mapping) => { console.log(`Mapping: [source={${mapping.sourceNodePath}}, target={${mapping.targetNodePath}}]`); }); - }, [mappingTree]); + }, [mappingTree, sourceBodyDocument, sourceParameterMap]); return <>; }; diff --git a/packages/ui/src/components/document/SourceDocument.tsx b/packages/ui/src/components/document/SourceDocument.tsx index 9f451feac..71d63381c 100644 --- a/packages/ui/src/components/document/SourceDocument.tsx +++ b/packages/ui/src/components/document/SourceDocument.tsx @@ -59,13 +59,13 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD ); return ( -
    - -
    - + +
    + +
    {hasChildren && } @@ -86,8 +86,8 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD {nodeTitle} {isDocument && } - -
    +
    +
    {hasChildren && !collapsed && (
    {children.map((child) => ( @@ -95,7 +95,7 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD ))}
    )} -
    -
    +
    + ); }; diff --git a/packages/ui/src/components/expression/ExpressionEditor.tsx b/packages/ui/src/components/expression/ExpressionEditor.tsx index 0bc2f134e..687ff6cf8 100644 --- a/packages/ui/src/components/expression/ExpressionEditor.tsx +++ b/packages/ui/src/components/expression/ExpressionEditor.tsx @@ -19,7 +19,7 @@ import { FunctionGroup } from '../../services/xpath/xpath-parser'; import { SourcePanel } from '../../layout/views/SourcePanel'; import { NodeContainer } from '../document/NodeContainer'; import { XPathEditor } from './monaco/XPathEditor'; -import { TransformationEditorDnDHandler } from '../../providers/dnd/TransformationEditorDnDHandler'; +import { ExpressionEditorDnDHandler } from '../../providers/dnd/ExpressionEditorDnDHandler'; import { useCanvas } from '../../hooks/useCanvas'; type TransformationEditorProps = { @@ -28,7 +28,7 @@ type TransformationEditorProps = { }; export const ExpressionEditor: FunctionComponent = ({ mapping, onUpdate }) => { - const dndHandler = useMemo(() => new TransformationEditorDnDHandler(), []); + const dndHandler = useMemo(() => new ExpressionEditorDnDHandler(), []); const { setActiveHandler } = useCanvas(); useEffect(() => { setActiveHandler(dndHandler); diff --git a/packages/ui/src/layout/views/MappingLink.tsx b/packages/ui/src/layout/views/MappingLink.tsx index d1558924e..2c315e94c 100644 --- a/packages/ui/src/layout/views/MappingLink.tsx +++ b/packages/ui/src/layout/views/MappingLink.tsx @@ -47,7 +47,7 @@ const MappingLink: FunctionComponent = ({ x1, y1, x2, y2, sourceNodeP }; export const MappingLinksContainer: FunctionComponent = () => { - const { mappingTree } = useDataMapper(); + const { mappingTree, sourceBodyDocument, sourceParameterMap } = useDataMapper(); const [lineCoordList, setLineCoordList] = useState([]); const { getNodeReference } = useCanvas(); @@ -99,24 +99,32 @@ export const MappingLinksContainer: FunctionComponent = () => { ); const refreshLinks = useCallback(() => { - const answer: LineProps[] = MappingService.extractMappingLinks(mappingTree).reduce( - (acc, { sourceNodePath, targetNodePath }) => { - const sourceClosestPath = getClosestExpandedPath(sourceNodePath); - const targetClosestPath = getClosestExpandedPath(targetNodePath); - if (sourceClosestPath && targetClosestPath) { - const sourceFieldRef = getNodeReference(sourceClosestPath); - const targetFieldRef = getNodeReference(targetClosestPath); - if (sourceFieldRef && !!targetFieldRef) { - const coord = getCoordFromFieldRef(sourceFieldRef, targetFieldRef); - if (coord) acc.push({ ...coord, sourceNodePath: sourceNodePath, targetNodePath: targetNodePath }); - } + const answer: LineProps[] = MappingService.extractMappingLinks( + mappingTree, + sourceParameterMap, + sourceBodyDocument, + ).reduce((acc, { sourceNodePath, targetNodePath }) => { + const sourceClosestPath = getClosestExpandedPath(sourceNodePath); + const targetClosestPath = getClosestExpandedPath(targetNodePath); + if (sourceClosestPath && targetClosestPath) { + const sourceFieldRef = getNodeReference(sourceClosestPath); + const targetFieldRef = getNodeReference(targetClosestPath); + if (sourceFieldRef && !!targetFieldRef) { + const coord = getCoordFromFieldRef(sourceFieldRef, targetFieldRef); + if (coord) acc.push({ ...coord, sourceNodePath: sourceNodePath, targetNodePath: targetNodePath }); } - return acc; - }, - [] as LineProps[], - ); + } + return acc; + }, [] as LineProps[]); setLineCoordList(answer); - }, [getClosestExpandedPath, getNodeReference, mappingTree, getCoordFromFieldRef]); + }, [ + mappingTree, + sourceParameterMap, + sourceBodyDocument, + getClosestExpandedPath, + getNodeReference, + getCoordFromFieldRef, + ]); useEffect(() => { refreshLinks(); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index 5fe7cc0c6..9de70445a 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -21,6 +21,7 @@ export interface IField { ownerDocument: IDocument; id: string; name: string; + path: NodePath; expression: string; type: Types; fields: IField[]; @@ -82,10 +83,12 @@ export abstract class BaseField implements IField { public ownerDocument: IDocument, public name: string, ) { - this.id = generateRandomId(`field-${this.name}-`, 4); + this.id = generateRandomId(`field-${this.name}`, 4); + this.path = NodePath.childOf(parent.path, this.id); } id: string; + path: NodePath; fields: IField[] = []; isAttribute: boolean = false; expression: string = ''; diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index b2d164ea2..918db06a7 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -17,13 +17,12 @@ export abstract class MappingItem { constructor( public parent: MappingParentType, public name: string, - ) { - this.id = generateRandomId(this.name); - this.path = NodePath.childOf(parent.path, this.id); - } - id: string; + public id: string, + ) {} children: MappingItem[] = []; - path: NodePath; + get path(): NodePath { + return NodePath.childOf(this.parent.path, this.id); + } } export class FieldItem extends MappingItem { @@ -31,31 +30,40 @@ export class FieldItem extends MappingItem { public parent: MappingParentType, public field: IField, ) { - super(parent, 'field-' + field.name); + super(parent, 'field-' + field.name, field.id); } } -export interface ExpressionItem { - expression: string; +export abstract class ConditionItem extends MappingItem { + constructor( + public parent: MappingParentType, + public name: string, + ) { + super(parent, name, generateRandomId(name, 4)); + } + readonly isCondition = true; } -export interface ConditionItem { - isCondition: true; +export abstract class ExpressionItem extends ConditionItem { + constructor( + public parent: MappingParentType, + public name: string, + ) { + super(parent, name); + } + expression = ''; } -export class IfItem extends MappingItem implements ExpressionItem, ConditionItem { +export class IfItem extends ExpressionItem { constructor(public parent: MappingParentType) { super(parent, 'if'); } - isCondition = true as const; - expression = ''; } -export class ChooseItem extends MappingItem implements ConditionItem { +export class ChooseItem extends ConditionItem { constructor(public parent: MappingParentType) { super(parent, 'choose'); } - isCondition = true as const; get when() { return this.children.filter((c) => c instanceof WhenItem) as WhenItem[]; } @@ -64,22 +72,19 @@ export class ChooseItem extends MappingItem implements ConditionItem { } } -export class WhenItem extends MappingItem implements ExpressionItem, ConditionItem { +export class WhenItem extends ExpressionItem { constructor(public parent: MappingParentType) { super(parent, 'when'); } - isCondition = true as const; - expression = ''; } -export class OtherwiseItem extends MappingItem implements ConditionItem { +export class OtherwiseItem extends ConditionItem { constructor(public parent: MappingParentType) { super(parent, 'otherwise'); } - isCondition = true as const; } -export class ForEachItem extends MappingItem implements ExpressionItem, ConditionItem { +export class ForEachItem extends ExpressionItem { constructor( public parent: MappingParentType, field: IField, @@ -87,8 +92,6 @@ export class ForEachItem extends MappingItem implements ExpressionItem, Conditio super(parent, 'for-each'); this.children.push(new FieldItem(this, field)); } - isCondition = true as const; - expression = ''; sortItems: SortItem[] = []; } @@ -97,11 +100,10 @@ export class SortItem { order: 'ascending' | 'descending' = 'ascending'; } -export class ValueSelector extends MappingItem implements ExpressionItem { +export class ValueSelector extends ExpressionItem { constructor(public parent: MappingParentType) { super(parent, 'value'); } - expression = ''; } export interface IFunctionDefinition { diff --git a/packages/ui/src/providers/dnd/TransformationEditorDnDHandler.ts b/packages/ui/src/providers/dnd/ExpressionEditorDnDHandler.ts similarity index 79% rename from packages/ui/src/providers/dnd/TransformationEditorDnDHandler.ts rename to packages/ui/src/providers/dnd/ExpressionEditorDnDHandler.ts index cca69d22f..7aa57fcc1 100644 --- a/packages/ui/src/providers/dnd/TransformationEditorDnDHandler.ts +++ b/packages/ui/src/providers/dnd/ExpressionEditorDnDHandler.ts @@ -1,7 +1,7 @@ import { DnDHandler } from './DnDHandler'; import { DragEndEvent, DragOverEvent, DragStartEvent } from '@dnd-kit/core'; -export class TransformationEditorDnDHandler implements DnDHandler { +export class ExpressionEditorDnDHandler implements DnDHandler { handleDragEnd(_event: DragEndEvent): void {} handleDragOver(_event: DragOverEvent): void {} handleDragStart(_event: DragStartEvent): void {} diff --git a/packages/ui/src/services/document.service.test.ts b/packages/ui/src/services/document.service.test.ts index 5faf7450c..0e334f57c 100644 --- a/packages/ui/src/services/document.service.test.ts +++ b/packages/ui/src/services/document.service.test.ts @@ -36,7 +36,7 @@ describe('DocumentService', () => { describe('getFieldFromPathExpression()', () => { it('', () => { - const pathExpression = '/' + sourceDoc.fields[0].fields[2].path.pathSegments.join('/'); + const pathExpression = '/ShipOrder/ShipTo'; const field = DocumentService.getFieldFromPathExpression(sourceDoc, pathExpression); expect(field?.name).toEqual('ShipTo'); }); @@ -44,7 +44,7 @@ describe('DocumentService', () => { describe('getFieldFromPathSegments()', () => { it('', () => { - const pathSegments = sourceDoc.fields[0].fields[2].path.pathSegments; + const pathSegments = ['ShipOrder', 'ShipTo']; const field = DocumentService.getFieldFromPathSegments(sourceDoc, pathSegments); expect(field?.name).toEqual('ShipTo'); }); diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 21a65864d..02c3eac67 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -10,12 +10,13 @@ import { ValueSelector, MappingParentType, ForEachItem, + ExpressionItem, } from '../models/mapping'; -import { BODY_DOCUMENT_ID, IDocument, IField, PrimitiveDocument } from '../models/document'; +import { IDocument, IField, PrimitiveDocument } from '../models/document'; import { DocumentService } from './document.service'; import { XPathService } from './xpath/xpath.service'; import { IMappingLink } from '../models/visualization'; -import { DocumentType, NodePath } from '../models/path'; +import { DocumentType } from '../models/path'; export class MappingService { static filterMappingsForField(mappings: MappingItem[], field: IField): MappingItem[] { @@ -201,7 +202,7 @@ export class MappingService { mapping.children.push(fieldItem); return fieldItem; } - }, mappingTree); + }, mappingTree) as MappingTree | FieldItem; } static deleteMappingItem(item: MappingParentType) { @@ -223,31 +224,48 @@ export class MappingService { return 0; } - static extractMappingLinks(item: MappingTree | MappingItem): IMappingLink[] { + static extractMappingLinks( + item: MappingTree | MappingItem, + sourceParameterMap: Map, + sourceBody: IDocument, + ): IMappingLink[] { const answer = [] as IMappingLink[]; - if ('expression' in item) { - const targetPath = item.path.toString(); - XPathService.extractFieldPaths(item.expression as string).map((sourcePath) => - answer.push({ sourceNodePath: sourcePath, targetNodePath: targetPath }), + const targetNodePath = item.path.toString(); + if (item instanceof ExpressionItem) { + answer.push( + ...MappingService.doExtractMappingLinks(item.expression, targetNodePath, sourceParameterMap, sourceBody), ); } if ('children' in item) { item.children.map((child) => { - if (child instanceof ValueSelector) { - const targetPath = item.path.toString(); - XPathService.extractFieldPaths(child.expression as string).forEach((sourcePath) => { - const { paramName, segments } = XPathService.parsePath(sourcePath); - const documentType = paramName ? DocumentType.PARAM : DocumentType.SOURCE_BODY; - const documentId = paramName ? paramName : BODY_DOCUMENT_ID; - const nodePath = NodePath.fromDocument(documentType, documentId); - nodePath.pathSegments = segments; - answer.push({ sourceNodePath: nodePath.toString(), targetNodePath: targetPath }); - }); + if ( + item instanceof FieldItem && + !(item.field.ownerDocument instanceof PrimitiveDocument) && + child instanceof ValueSelector + ) { + answer.push( + ...MappingService.doExtractMappingLinks(child.expression, targetNodePath, sourceParameterMap, sourceBody), + ); } else { - answer.push(...MappingService.extractMappingLinks(child)); + answer.push(...MappingService.extractMappingLinks(child, sourceParameterMap, sourceBody)); } }); } return answer; } + + private static doExtractMappingLinks( + sourceXPath: string, + targetNodePath: string, + sourceParameterMap: Map, + sourceBody: IDocument, + ) { + return XPathService.extractFieldPaths(sourceXPath).reduce((acc, xpath) => { + const { paramName, segments } = XPathService.parsePath(xpath); + const document = paramName ? sourceParameterMap.get(paramName) : sourceBody; + const sourcePath = document && DocumentService.getFieldFromPathSegments(document, segments)?.path; + sourcePath && acc.push({ sourceNodePath: sourcePath.toString(), targetNodePath: targetNodePath }); + return acc; + }, [] as IMappingLink[]); + } } diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 0b85bd3b7..9bf6b4d7f 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -26,7 +26,7 @@ import { } from '@datamapper-poc/xml-schema-ts'; import { BaseDocument, BaseField } from '../models/document'; import { Types } from '../models/types'; -import { DocumentType, NodePath } from '../models/path'; +import { DocumentType } from '../models/path'; export class XmlSchemaDocument extends BaseDocument { rootElement: XmlSchemaElement; @@ -55,7 +55,6 @@ export class XmlSchemaField extends BaseField { fields: XmlSchemaField[] = []; namespaceURI: string | null = null; namespacePrefix: string | null = null; - path: NodePath; constructor( public parent: XmlSchemaParentType, @@ -64,7 +63,6 @@ export class XmlSchemaField extends BaseField { ) { super(parent, parent instanceof XmlSchemaDocument ? parent : (parent as XmlSchemaField).ownerDocument, name); this.expression = isAttribute ? '@' + name : name; - this.path = NodePath.childOf(parent.path, this.expression); } } From 375fc17325e5cd3518e271f664f7361d05f8dd95 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 20 Jun 2024 11:57:56 -0400 Subject: [PATCH 246/471] prefill when and otherwise when adding choose node --- .../document/actions/ConditionMenuAction.tsx | 4 +-- packages/ui/src/models/mapping.ts | 5 ++- packages/ui/src/services/mapping.service.ts | 31 +++++++++++++++++-- .../ui/src/services/visualization.service.ts | 28 +++++++++++------ 4 files changed, 54 insertions(+), 14 deletions(-) diff --git a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx index 104105764..e05acfb1d 100644 --- a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx +++ b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx @@ -41,7 +41,7 @@ export const ConditionMenuAction: FunctionComponent = ({ nod VisualizationService.applyIf(nodeData); break; case 'choose': - VisualizationService.applyChoose(nodeData); + VisualizationService.applyChooseWhenOtherwise(nodeData); break; case 'foreach': MappingService.wrapWithForEach(mappingTree, (nodeData as TargetFieldNodeData).field); @@ -107,7 +107,7 @@ export const ConditionMenuAction: FunctionComponent = ({ nod Wrap with if - Wrap with choose + Wrap with choose-when-otherwise )} diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 918db06a7..a12a9ea66 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -61,7 +61,10 @@ export class IfItem extends ExpressionItem { } export class ChooseItem extends ConditionItem { - constructor(public parent: MappingParentType) { + constructor( + public parent: MappingParentType, + public field?: IField, + ) { super(parent, 'choose'); } get when() { diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 02c3eac67..3b37e3ad6 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -151,14 +151,41 @@ export class MappingService { MappingService.wrapWithItem(fieldItem, forEach); } + static wrapWithIf(wrapped: MappingItem) { + MappingService.wrapWithItem(wrapped, new IfItem(wrapped.parent)); + } + + static wrapWithChooseWhenOtherwise(wrapped: MappingItem) { + const parent = wrapped.parent; + MappingService.addChooseWhenOtherwise(parent, wrapped); + parent.children = parent.children.filter((c) => c !== wrapped); + } + + static addChooseWhenOtherwise(parent: MappingParentType, mapping?: MappingItem) { + const chooseItem = new ChooseItem(parent, mapping && mapping instanceof FieldItem ? mapping.field : undefined); + parent.children.push(chooseItem); + const whenItem = MappingService.addWhen(chooseItem); + if (mapping) { + whenItem.children = [mapping]; + mapping.parent = whenItem; + } + MappingService.addOtherwise(chooseItem); + } + static addWhen(item: ChooseItem) { - item.children.push(new WhenItem(item)); + const whenItem = new WhenItem(item); + item.field && whenItem.children.push(new FieldItem(whenItem, item.field)); + item.children.push(whenItem); + return whenItem; } static addOtherwise(item: ChooseItem) { const newChildren = item.children.filter((c) => !(c instanceof OtherwiseItem)); - newChildren.push(new OtherwiseItem(item)); + const otherwiseItem = new OtherwiseItem(item); + item.field && otherwiseItem.children.push(new FieldItem(otherwiseItem, item.field)); + newChildren.push(otherwiseItem); item.children = newChildren; + return otherwiseItem; } static mapToCondition(condition: MappingItem, source: PrimitiveDocument | IField) { diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index a0459af2a..504c13720 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -16,7 +16,6 @@ import { ForEachItem, IfItem, MappingItem, - MappingParentType, MappingTree, OtherwiseItem, ValueSelector, @@ -201,24 +200,35 @@ export class VisualizationService { } static applyIf(nodeData: TargetNodeData) { - VisualizationService.doApplyCondition(nodeData, (parent) => new IfItem(parent)); - } - - static applyChoose(nodeData: TargetNodeData) { - VisualizationService.doApplyCondition(nodeData, (parent) => new ChooseItem(parent)); + if (nodeData instanceof TargetDocumentNodeData) { + nodeData.mappingTree.children.push(new IfItem(nodeData.mappingTree)); + } else if (nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) { + const mapping = nodeData.mapping + ? nodeData.mapping + : nodeData instanceof TargetFieldNodeData + ? (MappingService.getOrCreateFieldItem(nodeData.mappingTree, nodeData.field) as FieldItem) + : undefined; + if (!mapping) return; + MappingService.wrapWithIf(mapping); + } } - private static doApplyCondition(nodeData: TargetNodeData, createItem: (parent: MappingParentType) => MappingItem) { + static applyChooseWhenOtherwise(nodeData: TargetNodeData) { if (nodeData instanceof TargetDocumentNodeData) { - nodeData.mappingTree.children.push(createItem(nodeData.mappingTree)); + if (nodeData.mappingTree.children.find((c) => c instanceof ChooseItem)) return; + + const existingValueSelector = nodeData.mappingTree.children.find((c) => c instanceof ValueSelector); + MappingService.addChooseWhenOtherwise(nodeData.mappingTree, existingValueSelector); } else if (nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) { + if (nodeData.mapping?.children.find((c) => c instanceof ChooseItem)) return; + const mapping = nodeData.mapping ? nodeData.mapping : nodeData instanceof TargetFieldNodeData ? (MappingService.getOrCreateFieldItem(nodeData.mappingTree, nodeData.field) as FieldItem) : undefined; if (!mapping) return; - MappingService.wrapWithItem(mapping, createItem(mapping.parent)); + MappingService.wrapWithChooseWhenOtherwise(mapping); } } From b17f6e309124980bd80555f35b3fb940b257058b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 00:27:47 +0000 Subject: [PATCH 247/471] chore(deps): update dependency @storybook/addon-actions to v8.1.10 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 29178d538..0d6ab7bf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3503,16 +3503,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.1.9 - resolution: "@storybook/addon-actions@npm:8.1.9" + version: 8.1.10 + resolution: "@storybook/addon-actions@npm:8.1.10" dependencies: - "@storybook/core-events": 8.1.9 + "@storybook/core-events": 8.1.10 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: 02c252bb5da647f2e0069b45cb91e98cd26bcec284e0f9793e865e398cc3d65fa6da3f0b45353cd178d9d83675786967f3f66f0fac570f35a2b3d99cabae71ec + checksum: 71a56b55befeeff0e8cb98393d3eb16447cd705b4fae27fe53d3d1e18084c6f29ad6d2a24f724453e65e7875499b3aef3b04d622f2be80c8621c15e67b132cc9 languageName: node linkType: hard @@ -3547,13 +3547,13 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.1.9": - version: 8.1.9 - resolution: "@storybook/core-events@npm:8.1.9" +"@storybook/core-events@npm:8.1.10": + version: 8.1.10 + resolution: "@storybook/core-events@npm:8.1.10" dependencies: "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: 050342f96f950b381e12bcecd5c78cd40435cc1425cef6c22fecfcde12f5525f6f751a3fb0d615844321899be73b3d9c033963d4cc5a3d50016ada26042a9318 + checksum: 2e4cdb3aac8deb8ea243379ad4f30b59668090d20c1b7541554be89fffed764d9c9406b08effd392cc138a6a1bda3373c60202f892cbc686db9bc9b0630a45ab languageName: node linkType: hard From 347e096ca99b9e7c46796f7fe49fa80844441cdc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Jun 2024 22:26:46 +0000 Subject: [PATCH 248/471] chore(deps): update dependency @types/node to v20.14.7 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0d6ab7bf5..15e75b51d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4110,11 +4110,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.14.2 - resolution: "@types/node@npm:20.14.2" + version: 20.14.7 + resolution: "@types/node@npm:20.14.7" dependencies: undici-types: ~5.26.4 - checksum: 265362479b8f3b50fcd1e3f9e9af6121feb01a478dff0335ae67cccc3babfe45d0f12209d3d350595eebd7e67471762697b877c380513f8e5d27a238fa50c805 + checksum: 967d100f3853fefa347847ece95226a73cba970ff896efa12cce68ecdd48a9b39b10c8eefd9f11016799a29bdfe19d144ea094f8db3d5987cebe8f06226fccc9 languageName: node linkType: hard From 70f045e4edad7aaff51a85d34d70cb842ea911c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 03:25:07 +0000 Subject: [PATCH 249/471] chore(deps): update dependency sass to v1.77.6 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 15e75b51d..0b9400923 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11960,15 +11960,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.77.5 - resolution: "sass@npm:1.77.5" + version: 1.77.6 + resolution: "sass@npm:1.77.6" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 32bea7558000933c69abdcc5377a213187f845ed730efb352bfb6189970376c81868d3a1beed05654d0b37ff56df2a9b763a3c135407f99619fc1f93db5a7a32 + checksum: 9bd1cb9ec1f10b7df83ed6a4b3d8764fe9174ee422f1ea21c51bcd953f710deee57c649269f9cb1ad1e9dcc3b87efee62cd2b36aca9cc646d44fd9179300d5f3 languageName: node linkType: hard From 809ab2c7cfae6ca1c322570fce6fb9be2cb36951 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 01:06:44 +0000 Subject: [PATCH 250/471] chore(deps): update dependency @storybook/addon-knobs to v8.0.1 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0b9400923..d15c2bd9b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3517,8 +3517,8 @@ __metadata: linkType: hard "@storybook/addon-knobs@npm:^8.0.0": - version: 8.0.0 - resolution: "@storybook/addon-knobs@npm:8.0.0" + version: 8.0.1 + resolution: "@storybook/addon-knobs@npm:8.0.1" dependencies: copy-to-clipboard: ^3.3.3 core-js: ^3.29.0 @@ -3532,9 +3532,9 @@ __metadata: react-lifecycles-compat: ^3.0.4 react-select: ^5.7.0 peerDependencies: - "@storybook/api": ^8.0.0 "@storybook/components": ^8.0.0 "@storybook/core-events": ^8.0.0 + "@storybook/manager-api": ^8.0.0 "@storybook/theming": ^8.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3543,7 +3543,7 @@ __metadata: optional: true react-dom: optional: true - checksum: fdebdec1583a7c108030936ef8019a5c9390160d1f6451e9c78d9abdbc30d6f4ffdbfc45f5020229e648bf2bacc8fd9986d16c86433e665122970ddf74c97259 + checksum: 6540d0339aee2c4e5a16db467a04c8757822c676709af608cb086b3a04617113f4fd7cf218f2d10b6933e069927c8501eb8255e1fa54e8789f0b2e350f9cdec0 languageName: node linkType: hard From e97abe2f418dc70c7f6aab2968a1f0272c4bd5c8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 01:13:04 +0000 Subject: [PATCH 251/471] chore(deps): update dependency typescript to v5.5.2 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index d15c2bd9b..e8a4fb395 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13130,22 +13130,22 @@ __metadata: linkType: hard "typescript@npm:^5.0.4, typescript@npm:^5.3.3, typescript@npm:^5.4.4": - version: 5.4.5 - resolution: "typescript@npm:5.4.5" + version: 5.5.2 + resolution: "typescript@npm:5.5.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 53c879c6fa1e3bcb194b274d4501ba1985894b2c2692fa079db03c5a5a7140587a1e04e1ba03184605d35f439b40192d9e138eb3279ca8eee313c081c8bcd9b0 + checksum: 9c5a7982dadcb2d38d129c575dd38645ae11588ae0d4a12852fb04482bbc5a1660b2371e48fd5b33b6b605cc57cefe777670054546856945a05e77bd22c8c2cd languageName: node linkType: hard "typescript@patch:typescript@^5.0.4#~builtin, typescript@patch:typescript@^5.3.3#~builtin, typescript@patch:typescript@^5.4.4#~builtin": - version: 5.4.5 - resolution: "typescript@patch:typescript@npm%3A5.4.5#~builtin::version=5.4.5&hash=5adc0c" + version: 5.5.2 + resolution: "typescript@patch:typescript@npm%3A5.5.2#~builtin::version=5.5.2&hash=b45daf" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d59e26e74f6b444517d0ba16e0ee16e75c652c2b49a59f2ebdbeb16647a855fd50c7fc786a58987e45f03bce0677092e2dd3333649fd53b11d0b0d271455837c + checksum: 9d89bac0de650e15d6846485f238d1e65f1013f2c260d9e53e86a1da6ecf8109d9fad9402575c5c36a6592dc5d4370db090e12971c8630ae84453654baabb6b4 languageName: node linkType: hard From dcb818d51160c1d137bafddd922cc3540a97bcbc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 01:13:56 +0000 Subject: [PATCH 252/471] fix(deps): update dependency monaco-editor to ^0.50.0 --- packages/ui/package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index e0a9c4914..e263cc98d 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -53,7 +53,7 @@ "d3-shape": "^3.2.0", "file-saver": "^2.0.5", "loglevel": "^1.9.1", - "monaco-editor": "^0.49.0", + "monaco-editor": "^0.50.0", "pako": "^2.1.0", "react": "^18.2.0", "react-dnd": "^16.0.1", diff --git a/yarn.lock b/yarn.lock index e8a4fb395..9af853a73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1840,7 +1840,7 @@ __metadata: jest-environment-jsdom: ^29.7.0 loglevel: ^1.9.1 madge: ^7.0.0 - monaco-editor: ^0.49.0 + monaco-editor: ^0.50.0 pako: ^2.1.0 prettier: ^3.2.5 react: ^18.2.0 @@ -10121,10 +10121,10 @@ __metadata: languageName: node linkType: hard -"monaco-editor@npm:^0.49.0": - version: 0.49.0 - resolution: "monaco-editor@npm:0.49.0" - checksum: 133b41b2b32d120ff6bc12d68a72501c90ff6de2e15e915a44c25f3f3ab29d164bd94ba501e13329e855b3000bd035319b01be122e76ab7f3fab6731cf0a323c +"monaco-editor@npm:^0.50.0": + version: 0.50.0 + resolution: "monaco-editor@npm:0.50.0" + checksum: 841b047c89060bcd5e8864c671389f7cda322bd8372663ea71f42eb3d780edbbabc41b151791629fec04bbf3c53b407eb9e5b0829ef95292103d685df0994147 languageName: node linkType: hard From a5fc0ead6be02e92254da025f1579cb079274846 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 22 Jun 2024 00:35:01 +0000 Subject: [PATCH 253/471] chore(deps): update yarn to v3.8.3 --- .../{yarn-3.8.2.cjs => yarn-3.8.3.cjs} | 362 +++++++++--------- .yarnrc.yml | 2 +- package.json | 2 +- yarn.lock | 4 +- 4 files changed, 185 insertions(+), 185 deletions(-) rename .yarn/releases/{yarn-3.8.2.cjs => yarn-3.8.3.cjs} (86%) diff --git a/.yarn/releases/yarn-3.8.2.cjs b/.yarn/releases/yarn-3.8.3.cjs similarity index 86% rename from .yarn/releases/yarn-3.8.2.cjs rename to .yarn/releases/yarn-3.8.3.cjs index 96fe2a11c..eaa7ce067 100755 --- a/.yarn/releases/yarn-3.8.2.cjs +++ b/.yarn/releases/yarn-3.8.3.cjs @@ -1,48 +1,48 @@ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore -(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{TK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=NK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var GK=I((AZe,YK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=GK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var NS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),TS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return TS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||TS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=TS});var hU=I((mZe,fU)=>{"use strict";function Tfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Tfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Nr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},Ir=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Tl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},br=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Tn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Nl=`\\ -`,Nn=Ue(`\\ -`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),An=function(C){return C},b="\\a",Tt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},Wi="\\n",Ol=Ue("\\n",!1),ze=function(){return` -`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),ln=function(C){return String.fromCharCode(parseInt(C,16))},Te="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Yl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Tp=function(C){return{type:"variable",...C}},Gl=function(C){return{type:"variable",name:C}},Lr=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},G=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Ys="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",T1=Ue(":-}",!1),N1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},Y1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,YE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],N=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function cn(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};Rk&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=Sr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Sr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=G1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=G1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Sr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function G1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,N===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,N===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,N===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,N===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,N===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,N===0&&Be(X))),C}function GE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,Yr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,N===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,N===0&&Be(T)),ft!==t){for(It=[],Yr=Me();Yr!==t;)It.push(Yr),Yr=Me();if(It!==t){for(Yr=[],fi=Np();fi!==t;)Yr.push(fi),fi=Np();if(Yr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,Yr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,N===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=Sr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,N===0&&Be(Re)),ft!==t){for(It=[],Yr=Me();Yr!==t;)It.push(Yr),Yr=Me();if(It!==t){for(Yr=[],fi=Np();fi!==t;)Yr.push(fi),fi=Np();if(Yr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,Yr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=GE();U!==t;)R.push(U),U=GE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=GE(),U!==t)for(;U!==t;)R.push(U),U=GE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Np(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Np(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ge.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=Y(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,N===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,N===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,N===0&&Be(mt)),C===t&&(r.substr(f,3)===Nr?(C=Nr,f+=3):(C=t,N===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,N===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,N===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,N===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,N===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,N===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,N===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,N===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=Ir(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Tl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Tge(),Q!==t&&(E=C,Q=br(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Nl?(Q=Nl,f+=2):(Q=t,N===0&&Be(Nn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(At)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,N===0&&Be(Tt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,N===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(Q=j,f+=2):(Q=t,N===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===Wi?(Q=Wi,f+=2):(Q=t,N===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,N===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,N===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,N===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ha)),R!==t?(E=C,Q=An(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,Yr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Te?(Q=Te,f+=2):(Q=t,N===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,N===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,N===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Yr=Mn(),Yr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,Yr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,N===0&&Be(KE)),U!==t){if(le=[],Ge.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ge.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie));else le=t;le!==t?(E=C,Q=Yl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ge.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Tp(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Gl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,N===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,N===0&&Be(T)),Qe!==t?(E=C,Q=Lr(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=G(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=G(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,N===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,N===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,N===0&&Be(Ea)),Q!==t?(R=Sr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,N===0&&Be(T)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,N===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,N===0&&Be(T1)),U!==t?(E=C,Q=N1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,N===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,N===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ys?(Q=Ys,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,N===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,N===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Tge(){var C,Q,R;return C=f,Q=Nge(),Q!==t?(E=f,R=j1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=Y1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Nge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=An(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(jE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(jE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(YE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;gH&&(H=S,q=[]),q.push(ie))}function Re(ie,Y){return new tc(ie,null,null,Y)}function se(ie,Y,fe){return new tc(tc.buildMessage(ie,Y),ie,Y,fe)}function Ae(){var ie,Y,fe,re;return ie=S,Y=ye(),Y!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,Y=a(Y,re),ie=Y):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,Y=ye(),Y!==t&&(P=ie,Y=l(Y)),ie=Y),ie}function ye(){var ie,Y,fe,re;return ie=S,Y=ge(),Y!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ge(),re!==t?(P=ie,Y=g(Y,re),ie=Y):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,Y=ge(),Y!==t&&(P=ie,Y=h(Y)),ie=Y),ie}function ge(){var ie,Y,fe,re,de;return ie=S,r.charCodeAt(S)===64?(Y=c,S++):(Y=t,_===0&&De(u)),Y!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,Y=p(),ie=Y):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,Y=oe(),Y!==t&&(P=ie,Y=p()),ie=Y),ie}function oe(){var ie,Y,fe;if(ie=S,Y=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)Y.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else Y=t;return Y!==t&&(P=ie,Y=p()),ie=Y,ie}function Ge(){var ie,Y,fe;if(ie=S,Y=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)Y.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else Y=t;return Y!==t&&(P=ie,Y=p()),ie=Y,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Lr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},yr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},Sr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ +`,Tn=Ue(`\\ +`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},b="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=Ue("\\n",!1),ze=function(){return` +`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Or=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function un(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};Rk&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=vr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function vr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=vr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Tp(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=G(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Lr?(C=Lr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,T===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,T===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,T===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,T===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=yr(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Nl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Nge(),Q!==t&&(E=C,Q=Sr(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Tl?(Q=Tl,f+=2):(Q=t,T===0&&Be(Tn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,T===0&&Be(Nt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,T===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(Q=j,f+=2):(Q=t,T===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===zi?(Q=zi,f+=2):(Q=t,T===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,T===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,T===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,T===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(Q=Ne,f+=2):(Q=t,T===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,T===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,T===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie));else le=t;le!==t?(E=C,Q=Gl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Np(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Yl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,T===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,T===0&&Be(N)),Qe!==t?(E=C,Q=Or(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,T===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,T===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,T===0&&Be(Ea)),Q!==t?(R=vr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,Q=T1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,T===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,Q,R;return C=f,Q=Tge(),Q!==t?(E=f,R=j1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=G1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;gH&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(P=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(P=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(P=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BU.repeat(" ",e)+i+a+s+` `+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};QU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Tg(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Tg(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var NU=I((HZe,TU)=>{"use strict";var $fe=ni();TU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),NU()]})});var MU=I((YZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((GZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,GU)=>{"use strict";var YU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(YU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||YU.isNegativeZero(r))}GU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var YS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var GS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[YS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function The(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function Nhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:The,predicate:Lhe,represent:Nhe})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var jhe=ni(),Yhe=Object.prototype.toString;function Ghe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[GS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Tg(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Qa.repeat(` -`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),fn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function bpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Ng(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function hn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Qa.repeat(` +`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),hn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),hn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function bpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),hn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndente)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=T2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),N2(r,e,Qa.extend({schema:S2},t))}function Tpe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=N2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Tpe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Tg(),Npe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Ype=38,Gpe=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ti={};Ti[0]="\\0";Ti[7]="\\a";Ti[8]="\\b";Ti[9]="\\t";Ti[10]="\\n";Ti[11]="\\v";Ti[12]="\\f";Ti[13]="\\r";Ti[27]="\\e";Ti[34]='\\"';Ti[92]="\\\\";Ti[133]="\\N";Ti[160]="\\_";Ti[8232]="\\L";Ti[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;ne)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),T2(r,e,Qa.extend({schema:S2},t))}function Npe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` +`+ed.repeat(" ",r.indent*e)}function rde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` `,n=i&&(r[r.length-2]===` `||r===` `),s=n?"+":i?"":"-";return t+s+` `}function j2(r){return r[r.length-1]===` `?r.slice(0,-1):r}function ade(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,Y2(r.slice(0,c),e)}(),n=r[0]===` +`);return c=c!==-1?c:r.length,t.lastIndex=c,G2(r.slice(0,c),e)}(),n=r[0]===` `||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+Y2(l,e),n=s}return i}function Y2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`:"")+G2(l,e),n=s}return i}function G2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` `+r.slice(n,s),n=s+1),o=a;return l+=` `,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ti[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function G2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,G2(r,t,!1)||G2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Dr.exports.Type=ni();Dr.exports.Schema=nc();Dr.exports.FAILSAFE_SCHEMA=dI();Dr.exports.JSON_SCHEMA=YS();Dr.exports.CORE_SCHEMA=GS();Dr.exports.DEFAULT_SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_FULL_SCHEMA=Zp();Dr.exports.load=BI.load;Dr.exports.loadAll=BI.loadAll;Dr.exports.safeLoad=BI.safeLoad;Dr.exports.safeLoadAll=BI.safeLoadAll;Dr.exports.dump=aH.dump;Dr.exports.safeDump=aH.safeDump;Dr.exports.YAMLException=Tg();Dr.exports.MINIMAL_SCHEMA=dI();Dr.exports.SAFE_SCHEMA=Lg();Dr.exports.DEFAULT_SCHEMA=Zp();Dr.exports.scan=QI("scan");Dr.exports.parse=QI("parse");Dr.exports.compose=QI("compose");Dr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),T=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Rr.exports.Type=ni();Rr.exports.Schema=nc();Rr.exports.FAILSAFE_SCHEMA=dI();Rr.exports.JSON_SCHEMA=GS();Rr.exports.CORE_SCHEMA=YS();Rr.exports.DEFAULT_SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_FULL_SCHEMA=Zp();Rr.exports.load=BI.load;Rr.exports.loadAll=BI.loadAll;Rr.exports.safeLoad=BI.safeLoad;Rr.exports.safeLoadAll=BI.safeLoadAll;Rr.exports.dump=aH.dump;Rr.exports.safeDump=aH.safeDump;Rr.exports.YAMLException=Ng();Rr.exports.MINIMAL_SCHEMA=dI();Rr.exports.SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_SCHEMA=Zp();Rr.exports.scan=QI("scan");Rr.exports.parse=QI("parse");Rr.exports.compose=QI("compose");Rr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,h=1;g({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",` -`," "," ",":",","],!0,!1),Ge="null",ie=sr("null",!1),Y=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Nr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),Ir=function(){return"\b"},Tl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` -`},br="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Tn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Nl="\\u",Nn=sr("\\u",!1),ns=function(D,G,pe,Le){return String.fromCharCode(parseInt(`0x${D}${G}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,An=Ln([" "," "],!1,!1),b=Ks("white space"),Tt=/^[ \t\n\r]/,pg=Ln([" "," ",` +`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Lr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),yr=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` +`},Sr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,ln=Ln([" "," "],!1,!1),b=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` `,"\r"],!1,!1),Ll=`\r `,bp=sr(`\r `,!1),Sp=` `,vp=sr(` -`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],Wi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return ln(Et,j)}function kp(D,G){throw G=G!==void 0?G:ln(Et,j),Kl([Ks(D)],r.substring(Et,j),G)}function ME(D,G){throw G=G!==void 0?G:ln(Et,j),Cg(D,G)}function sr(D,G){return{type:"literal",text:D,ignoreCase:G}}function Ln(D,G,pe){return{type:"class",parts:D,inverted:G,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var G=yA[D],pe;if(G)return G;for(pe=D-1;!yA[pe];)pe--;for(G=yA[pe],G={line:G.line,column:G.column};peWi&&(Wi=j,Ol=[]),Ol.push(D))}function Cg(D,G){return new lc(D,null,null,G)}function Kl(D,G,pe){return new lc(lc.buildMessage(D,G),D,G,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,G,pe;for(D=j,G=[],pe=wA();pe!==t;)G.push(pe),pe=wA();return G!==t&&(Et=D,G=s(G)),D=G,D}function wA(){var D,G,pe,Le,ke;return D=j,G=da(),G!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Te(a)),pe!==t?(Le=Lr(),Le!==t?(ke=pa(),ke!==t?(Et=D,G=l(ke),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,G,pe;for(D=j,G=[],pe=Eg();pe!==t;)G.push(pe),pe=Eg();return G!==t&&(Et=D,G=c(G)),D=G,D}function Eg(){var D,G,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,G=Lr(),G===t&&(G=null),G!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Te(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,G=p(),D=G):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,G=da(),G!==t?(pe=Rp(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,G=y(pe,pt),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,G=da(),G!==t?(pe=Ca(),pe!==t?(Le=Lr(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Lr(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,G=y(pe,pt),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,G=da(),G!==t)if(pe=Ca(),pe!==t)if(Le=Lr(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,G=y(pe,ke),D=G):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,G=da(),G!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Lr(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Lr(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Lr(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Te(m)),Je!==t?(pt=Lr(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,G=F(pe,Le,Xt),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,G,pe,Le,ke,Je,pt;if(D=j,G=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Te(a)),Je!==t?(pt=Lr(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=G,G=void 0):G=t,G!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,G=H(ke),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,G=js(),G!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,G=H(Le),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,G=Hl(),G!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,G=q(G),D=G):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,G,pe;for(ze++,D=j,G=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));pe!==t;)G.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));return G!==t?(Et=j,pe=Z(G),pe?pe=void 0:pe=t,pe!==t?(G=[G,pe],D=G):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(G=t,ze===0&&Te(_)),D}function tt(){var D,G,pe;for(D=j,G=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));pe!==t;)G.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Te(W));return G!==t?(Et=j,pe=A(G),pe?pe=void 0:pe=t,pe!==t?(G=[G,pe],D=G):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Yl(),D===t&&(D=QA()),D}function Ca(){var D,G,pe;if(D=Yl(),D===t){if(D=j,G=[],pe=ma(),pe!==t)for(;pe!==t;)G.push(pe),pe=ma();else G=t;G!==t&&(Et=D,G=te()),D=G}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Yl(),D===t&&(D=QA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Yl(),D===t&&(D=ma())),D}function QA(){var D,G,pe,Le,ke,Je;if(ze++,D=j,T.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(ce)),G!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,G=De(),D=G):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(G=t,ze===0&&Te(O)),D}function ma(){var D,G,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(G=Re,j+=2):(G=t,ze===0&&Te(se)),G===t&&(G=null),G!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Te(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Te(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Te(oe));Le!==t?(Et=D,G=De(),D=G):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,G;return D=j,r.substr(j,4)===Ge?(G=Ge,j+=4):(G=t,ze===0&&Te(ie)),G!==t&&(Et=D,G=Y()),D=G,D}function KE(){var D,G;return D=j,r.substr(j,4)===fe?(G=fe,j+=4):(G=t,ze===0&&Te(re)),G!==t&&(Et=D,G=de()),D=G,D===t&&(D=j,r.substr(j,5)===Ze?(G=Ze,j+=5):(G=t,ze===0&&Te(vt)),G!==t&&(Et=D,G=mt()),D=G),D}function Yl(){var D,G,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(G=ti,j++):(G=t,ze===0&&Te(ui)),G!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Te(ui)),pe!==t?(Et=D,G=gr(),D=G):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(G=ti,j++):(G=t,ze===0&&Te(ui)),G!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Te(ui)),Le!==t?(Et=D,G=gi(pe),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(G=t,ze===0&&Te(Nr)),D}function UE(){var D,G,pe;if(D=j,G=[],pe=Tp(),pe!==t)for(;pe!==t;)G.push(pe),pe=Tp();else G=t;return G!==t&&(Et=D,G=ri(G)),D=G,D}function Tp(){var D,G,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Te(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(G=Ei,j+=2):(G=t,ze===0&&Te(rs)),G!==t&&(Et=D,G=ua()),D=G,D===t&&(D=j,r.substr(j,2)===CA?(G=CA,j+=2):(G=t,ze===0&&Te(gg)),G!==t&&(Et=D,G=is()),D=G,D===t&&(D=j,r.substr(j,2)===mA?(G=mA,j+=2):(G=t,ze===0&&Te(ga)),G!==t&&(Et=D,G=wp()),D=G,D===t&&(D=j,r.substr(j,2)===EA?(G=EA,j+=2):(G=t,ze===0&&Te(IA)),G!==t&&(Et=D,G=Ir()),D=G,D===t&&(D=j,r.substr(j,2)===Tl?(G=Tl,j+=2):(G=t,ze===0&&Te(fg)),G!==t&&(Et=D,G=Io()),D=G,D===t&&(D=j,r.substr(j,2)===hg?(G=hg,j+=2):(G=t,ze===0&&Te(Bp)),G!==t&&(Et=D,G=Qp()),D=G,D===t&&(D=j,r.substr(j,2)===br?(G=br,j+=2):(G=t,ze===0&&Te(Ri)),G!==t&&(Et=D,G=yo()),D=G,D===t&&(D=j,r.substr(j,2)===Tn?(G=Tn,j+=2):(G=t,ze===0&&Te(ae)),G!==t&&(Et=D,G=yt()),D=G,D===t&&(D=j,r.substr(j,2)===Nl?(G=Nl,j+=2):(G=t,ze===0&&Te(Nn)),G!==t?(pe=Gl(),pe!==t?(Le=Gl(),Le!==t?(ke=Gl(),ke!==t?(Je=Gl(),Je!==t?(Et=D,G=ns(pe,Le,ke,Je),D=G):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Gl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Te(ut)),D}function Lr(){var D,G;if(ze++,D=[],At.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(An)),G!==t)for(;G!==t;)D.push(G),At.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(An));else D=t;return ze--,D===t&&(G=t,ze===0&&Te(wo)),D}function HE(){var D,G;if(ze++,D=[],Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(pg)),G!==t)for(;G!==t;)D.push(G),Tt.test(r.charAt(j))?(G=r.charAt(j),j++):(G=t,ze===0&&Te(pg));else D=t;return ze--,D===t&&(G=t,ze===0&&Te(b)),D}function Hs(){var D,G,pe,Le,ke,Je;if(D=j,G=js(),G!==t){for(pe=[],Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Lr(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(G=[G,pe],D=G):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Te(bp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Te(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Te(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var hn={};ct(hn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Yde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Xi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Gde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Tde,isOptional:()=>Nde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Xi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Tde,ad,Nde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Yde,Gde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aBt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Tde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Nde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sBt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Yde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Gde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&tBt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rtj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((b$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Yn=class{constructor(e,t){if(t=DCe(t),e instanceof Yn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Yn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),TCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=TCe});var gj=I((v$e,uj)=>{var NCe=hc(),LCe=(r,e)=>{let t=NCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),YCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=YCe});var wj=I((R$e,yj)=>{var Ij=hc(),GCe=KI(),qCe=(r,e)=>{if(GCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var Qj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((T$e,bj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bj.exports=VCe});var xj=I((N$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Tj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Nj=Li(),nme=(r,e,t)=>{let i=new Nj(r,t),n=new Nj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((Y$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((G$e,Yj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Yj.exports=hme});var jI=I((q$e,Gj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Gj.exports=dme});var YI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),Qme=YI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=bme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:GI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(GI[qI.COERCE]);else{let i;for(;(i=GI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),GI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;GI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eY=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eY]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eY]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tY.exports=yv});var cs=I((_$e,oY)=>{var mc=class{constructor(e,t){if(t=Tme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nY(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iY.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Mr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Mr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nY(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iY.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sY(i,t)&&e.set.some(n=>sY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Nme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Kme=r=>r.value==="",sY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Mr("comp",r,e),r=Yme(r,e),Mr("caret",r),r=Hme(r,e),Mr("tildes",r),r=qme(r,e),Mr("xrange",r),r=Wme(r,e),Mr("stars",r),r),_i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Mr("tilde",r,i,n,s,o,a);let l;return _i(n)?l="":_i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:_i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Mr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Mr("tilde return",l),l})},Yme=(r,e)=>r.trim().split(/\s+/).map(t=>Gme(t,e)).join(" "),Gme=(r,e)=>{Mr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Mr("caret",r,n,s,o,a,l);let c;return _i(s)?c="":_i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:_i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Mr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Mr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Mr("caret return",c),c})},qme=(r,e)=>(Mr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Mr("xRange",r,i,n,s,o,a,l);let c=_i(s),u=c||_i(o),g=u||_i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Mr("xRange return",i),i})},Wme=(r,e)=>(Mr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Mr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>(_i(i)?t="":_i(n)?t=`>=${i}.0.0${r?"-0":""}`:_i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,_i(c)?l="":_i(u)?l=`<${+c+1}.0.0-0`:_i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uY)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aY[AY.COMPARATORLOOSE]:aY[AY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lY(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lY(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uY.exports=Vg;var Zme=pd(),{re:aY,t:AY}=fc(),Qv=mv(),bv=hd(),lY=Li(),cY=cs()});var wd=I((eet,gY)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gY.exports=$me});var hY=I((tet,fY)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fY.exports=tEe});var dY=I((ret,pY)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pY.exports=nEe});var mY=I((iet,CY)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CY.exports=aEe});var yY=I((net,IY)=>{var Sv=Li(),AEe=cs(),EY=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EY(t,s))&&(t=s)}return t&&r.test(t)?t:null};IY.exports=lEe});var BY=I((set,wY)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wY.exports=uEe});var zI=I((oet,vY)=>{var gEe=Li(),SY=Id(),{ANY:fEe}=SY,hEe=cs(),pEe=wd(),QY=Cd(),bY=HI(),dEe=YI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=QY,s=dEe,o=bY,a=">",l=">=";break;case"<":n=bY,s=CEe,o=QY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c{p.semver===fEe&&(p=new SY(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vY.exports=mEe});var PY=I((aet,xY)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xY.exports=IEe});var DY=I((Aet,kY)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kY.exports=wEe});var TY=I((cet,FY)=>{var RY=cs(),BEe=(r,e,t)=>(r=new RY(r,t),e=new RY(e,t),r.intersects(e));FY.exports=BEe});var LY=I((uet,NY)=>{var QEe=wd(),bEe=ls();NY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var OY=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OY(r,t),e=new OY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MY(n,p,t):p.operator==="<"||p.operator==="<="?s=KY(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MY(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KY(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UY.exports=SEe});var zr=I((fet,jY)=>{var Pv=fc();jY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:Qj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Tj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:YI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hY(),maxSatisfying:dY(),minSatisfying:mY(),minVersion:yY(),validRange:BY(),outside:zI(),gtr:PY(),ltr:DY(),intersects:TY(),simplifyRange:LY(),subset:HY()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:YY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],zi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return cn(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};pezi&&(zi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Or(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Or(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Or(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Or(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Or(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Or(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=QA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=QA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function QA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Lr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=yr()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=Qp()),D=Y,D===t&&(D=j,r.substr(j,2)===Sr?(Y=Sr,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Or(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(b)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(bp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Ne(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var pn={};ct(pn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Zi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aBt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sBt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&tBt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rtj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((b$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var Qj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,bj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bj.exports=VCe});var xj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),Qme=GI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=bme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Kr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Kr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Kr("comp",r,e),r=Gme(r,e),Kr("caret",r),r=Hme(r,e),Kr("tildes",r),r=qme(r,e),Kr("xrange",r),r=Wme(r,e),Kr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Kr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Kr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Kr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Kr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Kr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Kr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Kr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Kr("caret return",c),c})},qme=(r,e)=>(Kr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Kr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Kr("xRange return",i),i})},Wme=(r,e)=>(Kr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Kr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),Qv=mv(),bv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),QG=Cd(),bG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=QG,s=dEe,o=bG,a=">",l=">=";break;case"<":n=bG,s=CEe,o=QG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var PG=I((aet,xG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var QEe=wd(),bEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var Pv=fc();jG.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:Qj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:PG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` `),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(` `);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),P=S.type==="Character";if(P){if(S.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var h=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zY=I(Cn=>{"use strict";var REe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var qY=_I(),us=Kt(),JY=ey(),Pa=Rv(),WY="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JY.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WY)e&&(0,us.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(mn=>{"use strict";var REe=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.canMatchCharCode=mn.firstCharOptimizedIndices=mn.getOptimizedStartCodesIndices=mn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),Pa=Rv(),WG="Complement Sets are not supported for first char optimization";mn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+mn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > `)+` Complement Sets cannot be automatically optimized. This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+` + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(mn.failedOptimizationPrefixMsg+` `+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+qY.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}Cn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&TEe(r,e)}function TEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function GY(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var NEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?GY(t,this.targetCharCodes)===void 0&&(this.found=!0):GY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qY.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JY.getRegExpAst)(e),i=new NEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VY=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XY=_I(),tr=Qd(),Se=Kt(),Zg=zY(),ZY=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Nv(P):Tv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Nv(q):Tv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uG(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lG(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AG),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. +`)+(" Using the regexp-to-ast library version: "+qG.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}mn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}mn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}mn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=Qd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(P):Nv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. `)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. This will disable the lexer's first char optimizations. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.name+`> is using a custom token pattern without providing parameter. `)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_Y(r);t=t.concat(i.errors);var n=$Y(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sG(s)),t=t.concat(oG(s,e)),t=t.concat(aG(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eG(t)),e=e.concat(rG(t)),e=e.concat(iG(t)),e=e.concat(nG(t)),e=e.concat(tG(t)),e}function _Y(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_Y;function $Y(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$Y;var jEe=/[^\\][\$]/;function eG(r){var e=function(n){VY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XY.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eG;function tG(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tG;var YEe=/[^\\[][\^]|^\^/;function rG(r){var e=function(n){VY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XY.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return YEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var GEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findStartOfInputAnchor=rG;function iG(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iG;function nG(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nG;function sG(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sG;function oG(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oG;function aG(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iY;function nY(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nY;function sY(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sY;function oY(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oY;function aY(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aG;function GEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Tv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Tv;function Nv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Nv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Tv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,We.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.MODES+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,We.MODES)&&(0,Se.has)(r,We.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+We.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,We.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:tr.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}We.performRuntimeChecks=JEe;function WEe(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[ko]===tr.Lexer.NA}),a=uG(t);return e&&(0,Se.forEach)(o,function(l){var c=lG(l,a);if(c!==!1){var u=cG(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. +`),type:tr.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}We.performRuntimeChecks=JEe;function WEe(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[ko]===tr.Lexer.NA}),a=uY(t);return e&&(0,Se.forEach)(o,function(l){var c=lY(l,a);if(c!==!1){var u=cY(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. This Lexer has been defined to track line and column information, But none of the Token Types can be identified as matching a line terminator. See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:tr.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}We.performWarningRuntimeChecks=WEe;function zEe(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}We.cloneEmptyGroups=zEe;function Ov(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}We.isCustomPattern=Ov;function AG(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}We.isShortPattern=AG;We.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type `)+(" Root cause: "+e.errMsg+`. `)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. `+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cG;function uG(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gG(r);fG(e),pG(e),hG(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gG(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gG;function fG(r){(0,Vr.forEach)(r,function(e){dG(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CG(e)||(e.categoryMatches=[]),mG(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fG;function hG(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hG;function pG(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pG;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dG(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dG;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CG(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CG;function mG(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mG;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Qd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Qd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` `,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,rr.isArray)(e)?(s={modes:{}},s.modes[Zs.DEFAULT_MODE]=(0,rr.cloneArr)(e),s[Zs.DEFAULT_MODE]=Zs.DEFAULT_MODE):(o=!1,s=(0,rr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,rr.forEach)(s.modes,function(u,g){s.modes[g]=(0,rr.reject)(u,function(h){return(0,rr.isUndefined)(h)})});var a=(0,rr.keys)(s.modes);if((0,rr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.validatePatterns)(u,a))}),(0,rr.isEmpty)(i.lexerDefinitionErrors)){(0,eIe.augmentTokenTypes)(u);var h;i.TRACE_INIT("analyzeTokenTypes",function(){h=(0,Zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=h.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=h.charCodeToPatternIdxToConfig,i.emptyGroups=(0,rr.merge)(i.emptyGroups,h.emptyGroups),i.hasCustom=h.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=h.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,rr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,rr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- @@ -93,14 +93,14 @@ a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);v Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,T=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],T=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],T=ce.length,T=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;qc.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Nr=void 0,ti=void 0;O.lastIndex=0;do Nr=O.test(c),Nr===!0&&(ti=O.lastIndex-1,mt++);while(Nr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var TA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vG(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vG(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vG;var AIe="parent",EG="categories",IG="label",yG="group",wG="push_mode",BG="pop_mode",QG="longer_alt",bG="line_breaks",SG="start_chars_hint";function xG(r){return lIe(r)}Si.createToken=xG;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EG)&&(t.CATEGORIES=r[EG]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IG)&&(t.LABEL=r[IG]),(0,_s.has)(r,yG)&&(t.GROUP=r[yG]),(0,_s.has)(r,BG)&&(t.POP_MODE=r[BG]),(0,_s.has)(r,wG)&&(t.PUSH_MODE=r[wG]),(0,_s.has)(r,QG)&&(t.LONGER_ALT=r[QG]),(0,_s.has)(r,bG)&&(t.LINE_BREAKS=r[bG]),(0,_s.has)(r,SG)&&(t.START_CHARS_HINT=r[SG]),t}Si.EOF=xG({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var mn=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=TA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PG=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PG;var kG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kG;var DG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DG;var RG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RG;var FG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FG;var TG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=TG;var NG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=NG;var LG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LG;var OG=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OG;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PG){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DG)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RG)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FG)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof TG)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LG)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof NG)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OG)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kG)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),En=mn(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MG(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MG(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MG(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=mn(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),wr=mn(),CIe=$g();function mIe(r){return r instanceof wr.Alternative||r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionMandatory||r instanceof wr.RepetitionMandatoryWithSeparator||r instanceof wr.RepetitionWithSeparator||r instanceof wr.Terminal||r instanceof wr.Rule}Mi.isSequenceProd=mIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof wr.Option||r instanceof wr.Repetition||r instanceof wr.RepetitionWithSeparator;return t?!0:r instanceof wr.Alternation?(0,vd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof wr.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof wr.AbstractProduction?(r instanceof wr.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Yv(i,e)})):!1}Mi.isOptionalProd=Yv;function EIe(r){return r instanceof wr.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof wr.NonTerminal)return"SUBRULE";if(r instanceof wr.Option)return"OPTION";if(r instanceof wr.Alternation)return"OR";if(r instanceof wr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof wr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof wr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof wr.Repetition)return"MANY";if(r instanceof wr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KG=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KG;var ly=new KG;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UG=mn(),Gv=xd();function uy(r){if(r instanceof UG.NonTerminal)return uy(r.referencedRule);if(r instanceof UG.Terminal)return YG(r);if((0,Gv.isSequenceProd)(r))return HG(r);if((0,Gv.isBranchingProd)(r))return jG(r);throw Error("non exhaustive match")}Fo.first=uy;function HG(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Gv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HG;function jG(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jG;function YG(r){return[r.terminalType]}Fo.firstForTerminal=YG});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zG=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),GG=Kt(),qG=Jv(),bIe=mn(),JG=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WG(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JG;function SIe(r){var e={};return(0,GG.forEach)(r,function(t){var i=new JG(t).startWalking();(0,GG.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WG(r,e){return r.name+e+qG.IN}gs.buildBetweenProdsFollowPrefix=WG;function vIe(r){var e=r.terminalType.name;return e+r.idx+qG.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=TA(),xIe=Kt(),$s=Kt(),Wv=mn(),VG=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;qc.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Lr=void 0,ti=void 0;O.lastIndex=0;do Lr=O.test(c),Lr===!0&&(ti=O.lastIndex-1,mt++);while(Lr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",QY="longer_alt",bY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,QY)&&(t.LONGER_ALT=r[QY]),(0,_s.has)(r,bY)&&(t.LINE_BREAKS=r[bY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var En=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),In=En(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof In.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof In.Terminal)i.walkTerminal(n,o,t);else if(n instanceof In.Alternative)i.walkFlat(n,o,t);else if(n instanceof In.Option)i.walkOption(n,o,t);else if(n instanceof In.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof In.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof In.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof In.Repetition)i.walkMany(n,o,t);else if(n instanceof In.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new In.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new In.Option({definition:[new In.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=En(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),Br=En(),CIe=$g();function mIe(r){return r instanceof Br.Alternative||r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionMandatory||r instanceof Br.RepetitionMandatoryWithSeparator||r instanceof Br.RepetitionWithSeparator||r instanceof Br.Terminal||r instanceof Br.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionWithSeparator;return t?!0:r instanceof Br.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof Br.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof Br.AbstractProduction?(r instanceof Br.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof Br.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof Br.NonTerminal)return"SUBRULE";if(r instanceof Br.Option)return"OPTION";if(r instanceof Br.Alternation)return"OR";if(r instanceof Br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Br.Repetition)return"MANY";if(r instanceof Br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=En(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),YY=Kt(),qY=Jv(),bIe=En(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),xIe=Kt(),$s=Kt(),Wv=En(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` but found: '`+a+"'";if(n)return o+n+l;var c=(0,$s.reduce)(e,function(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences: `+g.join(` `);return o+h+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,$s.first)(t).image,a=` but found: '`+o+"'";if(i)return s+i+a;var l=(0,$s.map)(e,function(u){return"["+(0,$s.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,$s.first)(e),s=n.idx,o=(0,VG.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` +inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,$s.first)(e),s=n.idx,o=(0,VY.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` @@ -115,7 +115,7 @@ and Non-Terminal names start with a lower case letter.`;return e},buildAlternati For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,$s.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, `)+("<"+e+`> may appears as a prefix path in all these alternatives. `);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,VG.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,VY.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. `)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: `+(" inside <"+r.topLevelRule.name+`> Rule. @@ -124,33 +124,33 @@ This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){ `)+(`without consuming any Tokens. The grammar path that causes this is: `+i+` `)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _G=I(NA=>{"use strict";var PIe=NA&&NA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(NA,"__esModule",{value:!0});NA.GastRefResolverVisitor=NA.resolveGrammar=void 0;var kIe=Gn(),XG=Kt(),DIe=$g();function RIe(r,e){var t=new ZG(r,e);return t.resolveRefs(),t.errors}NA.resolveGrammar=RIe;var ZG=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XG.forEach)((0,XG.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);NA.GastRefResolverVisitor=ZG});var Dd=I(Rr=>{"use strict";var Ic=Rr&&Rr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Rr,"__esModule",{value:!0});Rr.nextPossibleTokensAfter=Rr.possiblePathsFrom=Rr.NextTerminalAfterAtLeastOneSepWalker=Rr.NextTerminalAfterAtLeastOneWalker=Rr.NextTerminalAfterManySepWalker=Rr.NextTerminalAfterManyWalker=Rr.AbstractNextTerminalAfterProductionWalker=Rr.NextAfterTokenWalker=Rr.AbstractNextPossibleTokensWalker=void 0;var $G=ay(),Lt=Kt(),FIe=qv(),kt=mn(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($G.RestWalker);Rr.AbstractNextPossibleTokensWalker=eq;var TIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Rr.NextAfterTokenWalker=TIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($G.RestWalker);Rr.AbstractNextTerminalAfterProductionWalker=kd;var NIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManyWalker=NIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Rr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Rr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=mn(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function YIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=YIe;function GIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=GIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Br=Kt(),To=Gn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=mn(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Br.every)(o,Br.isEmpty)&&(a=(0,Br.map)(r,function(p){return fq(p,i)}),l=(0,Br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Br.map)(r,function(p){return dq(p,i)}),h=(0,Br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:To.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:To.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:To.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:To.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:To.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:To.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Br.isEmpty)((0,Br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:To.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Br.forEach)(l,function(u){var g=[c];(0,Br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:To.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Br.reduce)(r,function(o,a,l){var c=(0,Br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_G(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(In=>{"use strict";var Td=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}In.isRecognitionException=Aye;var hy=function(r){Td(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);In.MismatchedTokenException=lye;var cye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);In.NoViableAltException=cye;var uye=function(r){Td(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);In.NotAllInputParsedException=uye;var gye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);In.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=TA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Gn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Yt=>{"use strict";Object.defineProperty(Yt,"__esModule",{value:!0});Yt.getKeyForAutomaticLookahead=Yt.AT_LEAST_ONE_SEP_IDX=Yt.MANY_SEP_IDX=Yt.AT_LEAST_ONE_IDX=Yt.MANY_IDX=Yt.OPTION_IDX=Yt.OR_IDX=Yt.BITS_FOR_ALT_IDX=Yt.BITS_FOR_RULE_IDX=Yt.BITS_FOR_OCCURRENCE_IDX=Yt.BITS_FOR_METHOD_TYPE=void 0;Yt.BITS_FOR_METHOD_TYPE=4;Yt.BITS_FOR_OCCURRENCE_IDX=8;Yt.BITS_FOR_RULE_IDX=12;Yt.BITS_FOR_ALT_IDX=8;Yt.OR_IDX=1<{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Gn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.addNoneTerminalToCst=No.addTerminalToCst=No.setNodeLocationFull=No.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Nd=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n: +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var PIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Fr=>{"use strict";var Ic=Fr&&Fr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Fr,"__esModule",{value:!0});Fr.nextPossibleTokensAfter=Fr.possiblePathsFrom=Fr.NextTerminalAfterAtLeastOneSepWalker=Fr.NextTerminalAfterAtLeastOneWalker=Fr.NextTerminalAfterManySepWalker=Fr.NextTerminalAfterManyWalker=Fr.AbstractNextTerminalAfterProductionWalker=Fr.NextAfterTokenWalker=Fr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=En(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Fr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Fr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Fr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Fr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=En(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Qr=Kt(),No=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=En(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(p){return fq(p,i)}),l=(0,Qr.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Qr.map)(r,function(p){return dq(p,i)}),h=(0,Qr.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(yn=>{"use strict";var Nd=yn&&yn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(yn,"__esModule",{value:!0});yn.EarlyExitException=yn.NotAllInputParsedException=yn.NoViableAltException=yn.MismatchedTokenException=yn.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}yn.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);yn.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);yn.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);yn.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);yn.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n: `+(""+s.join(` `).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Tq(r,e),i=Nq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Tq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Tq;var xye=["constructor","visit","validateVisitor"];function Nq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var xye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor There is no Grammar Rule corresponding to this method's name. -`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Nq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Gn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Gn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Gn(),Fye=Pd(),Tye=rx(),Nye=mn(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Tye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Nye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var xr=Kt(),qn=dy(),yy=nf(),Yq=Rd(),of=Dd(),Gq=Gn(),Oye=sx(),qq=TA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,xr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Nye=rx(),Tye=En(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=NA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,xr.isArray)(e)){if((0,xr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. Note that the first argument for the parser constructor is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,xr.isArray)(e))this.tokensMap=(0,xr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,xr.has)(e,"modes")&&(0,xr.every)((0,xr.flatten)((0,xr.values)(e.modes)),Ld.isTokenType)){var i=(0,xr.flatten)((0,xr.values)(e.modes)),n=(0,xr.uniq)(i);this.tokensMap=(0,xr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,xr.isObject)(e))this.tokensMap=(0,xr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,xr.every)((0,xr.values)(e),function(o){return(0,xr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,xr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,xr.has)(i,"resyncEnabled")?i.resyncEnabled:Gq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,xr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Gq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,xr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,xr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Gn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var yn=Kt(),Lo=mn(),Yye=Qd(),tJ=_g(),rJ=TA(),Gye=Gn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Yye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var wn=Kt(),Lo=En(),Gye=Qd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Gye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Yye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Gn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Gn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var $i=Kt(),_ye=zG(),lJ=TA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,$i.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,wn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,wn.peek)(this.recordingProdStack),s=(0,wn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,wn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,wn.peek)(this.recordingProdStack),n=(0,wn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,wn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,wn.some)(s,function(l){return(0,wn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,wn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,wn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,wn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var en=Kt(),_ye=zY(),lJ=NA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. Please use the flag on the relevant DSL method instead. See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,$i.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,$i.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,$i.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,$i.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,$i.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,$i.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,$i.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,$i.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,$i.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,$i.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,$i.isEmpty)(e.definitionErrors))throw t=(0,$i.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: `+t.join(` ------------------------------- -`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();hr.Parser=ky;(0,lwe.applyMixins)(ky,[$ye.Recoverable,ewe.LooksAhead,twe.TreeBuilder,rwe.LexerAdapter,nwe.RecognizerEngine,iwe.RecognizerApi,swe.ErrorHandler,owe.ContentAssist,awe.GastRecorder,Awe.PerformanceTracer]);var gwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,$i.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);hr.CstParser=gwe;var fwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,$i.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);hr.EmbeddedActionsParser=fwe});var hJ=I(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.createSyntaxDiagramsCode=void 0;var fJ=kv();function hwe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/diagrams.css":s,a=` +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();hr.Parser=ky;(0,lwe.applyMixins)(ky,[$ye.Recoverable,ewe.LooksAhead,twe.TreeBuilder,rwe.LexerAdapter,nwe.RecognizerEngine,iwe.RecognizerApi,swe.ErrorHandler,owe.ContentAssist,awe.GastRecorder,Awe.PerformanceTracer]);var gwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);hr.CstParser=gwe;var fwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);hr.EmbeddedActionsParser=fwe});var hJ=I(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.createSyntaxDiagramsCode=void 0;var fJ=kv();function hwe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/diagrams.css":s,a=` @@ -178,44 +178,44 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis var diagramsDiv = document.getElementById("diagrams"); main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv); <\/script> -`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Gn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=TA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=mn();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=mn();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. +`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=En();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=En();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. It performs no action other than printing this message. Please avoid using it as it will be completely removed in the future`)}qe.clearCache=Ewe;var Iwe=hJ();Object.defineProperty(qe,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Iwe.createSyntaxDiagramsCode}});var ywe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Ta=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Ta({name:"LogicalOperator",pattern:ux.NA}),t=Ta({name:"Or",pattern:/\|/,categories:e}),i=Ta({name:"Xor",pattern:/\^/,categories:e}),n=Ta({name:"And",pattern:/&/,categories:e}),s=Ta({name:"Not",pattern:/!/}),o=Ta({name:"LParen",pattern:/\(/}),a=Ta({name:"RParen",pattern:/\)/}),l=Ta({name:"Query",pattern:r}),u=[Ta({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ty=>{var Bwe=IJ();Ty.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ty.parse=Ty.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,bJ)=>{var Kd=BJ(),QJ={};for(let r of Object.keys(Kd))QJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};bJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function Qwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=QJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=Qwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ny=gx();function bwe(){let r={},e=Object.keys(Ny);for(let t=e.length,i=0;i{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var NJ=I((Att,TJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(TJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Twe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Twe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Nwe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Nwe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:ux.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,bJ)=>{var Kd=BJ(),QJ={};for(let r of Object.keys(Kd))QJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};bJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function Qwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=QJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=Qwe(r,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ty=gx();function bwe(){let r={},e=Object.keys(Ty);for(let t=e.length,i=0;i{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var TJ=I((Att,NJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(NJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Nwe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Nwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Twe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Twe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r `:` `)+t,n=i+1,i=r.indexOf(` -`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,YJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Ywe(r){YJ.lastIndex=0;let e=[],t;for(;(t=YJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function GJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:GJ(r,t)(g)),t.push({inverse:a,styles:Ywe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(GJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=NJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Gwe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Gwe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` `);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),Qx=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),bx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,a)=>oa?1:0),r.positives.sort((o,a)=>oa?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=bx(a)||bx(l)||bx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&Qx(r))return[r];if(!Qx(r)||!Qx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var Q3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";b3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var T3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Yd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",N3=`[^${Mo}]`,Na="\\.",RBe="\\+",FBe="\\?",jy="\\/",TBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Na}{1,2}${xx}`,NBe=`(?!${Na})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Na}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Na,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:TBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:NBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:N3,STAR:`${N3}*?`,DOTS_SLASH:`${Na}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Na})`,NO_DOTS:`(?!(?:^|[${Mo}])${Na}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Na}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Na}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Gd=I(wn=>{"use strict";var YBe=J("path"),GBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Yd();wn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);wn.hasRegexChars=r=>WBe.test(r);wn.isRegexChar=r=>r.length===1&&wn.hasRegexChars(r);wn.escapeRegex=r=>r.replace(zBe,"\\$1");wn.toPosixSlashes=r=>r.replace(qBe,"/");wn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);wn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};wn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:GBe===!0||YBe.sep==="\\";wn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?wn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};wn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};wn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Gd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Tx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Yd(),Y3=r=>r===q3||r===qd,G3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&Y3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let T={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(T.maxDepth=0,Y3(X)||o.push(W),T.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he{"use strict";var Yy=Yd(),Wn=Gd(),{MAX_LENGTH:Gy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Yy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Nx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Gy,t.maxLength):Gy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Yy.globChars(l),u=Yy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=Y=>`(${a}(?:(?!${q}${Y.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,T,ce=()=>A.index===n-1,he=A.peek=(Y=1)=>r[A.index+Y],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(Y="",fe=0)=>{A.consumed+=Y,A.index+=fe},se=Y=>{A.output+=Y.output!=null?Y.output:Y.value,Re(Y.value)},Ae=()=>{let Y=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,Y++;return Y%2===0?!1:(A.negated=!0,A.start++,!0)},ye=Y=>{A[Y]++,te.push(Y)},ge=Y=>{A[Y]--,te.pop()},oe=Y=>{if(O.type==="globstar"){let fe=A.braces>0&&(Y.type==="comma"||Y.type==="brace"),re=Y.extglob===!0||ne.length&&(Y.type==="pipe"||Y.type==="paren");Y.type!=="slash"&&Y.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&Y.type!=="paren"&&(ne[ne.length-1].inner+=Y.value),(Y.value||Y.output)&&se(Y),O&&O.type==="text"&&Y.type==="text"){O.value+=Y.value,O.output=(O.output||"")+Y.value;return}Y.prev=O,o.push(Y),O=Y},Ge=(Y,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:Y,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=Y=>{let fe=Y.close+(t.capture?")":""),re;if(Y.type==="negate"){let de=Z;if(Y.inner&&Y.inner.length>1&&Y.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=Y.close=`)$))${de}`),Y.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Nx(re,{...e,fastpaths:!1}).output;fe=Y.close=`)${Ze})${de})`}Y.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:T,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let Y=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Nr)=>vt==="\\"?(Y=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Nr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return Y===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(T=Pe(),T==="\0")continue;if(T==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){T+="\\",oe({type:"text",value:T});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(T+="\\")),t.unescape===!0?T=Pe():T+=Pe(),A.brackets===0){oe({type:"text",value:T});continue}}if(A.brackets>0&&(T!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&T===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(T==="["&&he()!==":"||T==="-"&&he()==="]")&&(T=`\\${T}`),T==="]"&&(O.value==="["||O.value==="[^")&&(T=`\\${T}`),t.posix===!0&&T==="!"&&O.value==="["&&(T="^"),O.value+=T,se({value:T});continue}if(A.quotes===1&&T!=='"'){T=Wn.escapeRegex(T),O.value+=T,se({value:T});continue}if(T==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:T});continue}if(T==="("){ye("parens"),oe({type:"paren",value:T});continue}if(T===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:T,output:A.parens?")":"\\)"}),ge("parens");continue}if(T==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));T=`\\${T}`}else ye("brackets");oe({type:"bracket",value:T});continue}if(T==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:T,output:`\\${T}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:T,output:`\\${T}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(T=`/${T}`),O.value+=T,se({value:T}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(T==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:T,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(T==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:T,output:T});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",T=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:T,output:de}),ge("braces"),ue.pop();continue}if(T==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:T});continue}if(T===","){let re=T,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:T,output:re});continue}if(T==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:T,output:p});continue}if(T==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=T,O.value+=T,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:T,output:g});continue}oe({type:"dot",value:T,output:g});continue}if(T==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ge("qmark",T);continue}if(O&&O.type==="paren"){let de=he(),Ze=T;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${T}`),oe({type:"text",value:T,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:T,output:F});continue}oe({type:"qmark",value:T,output:P});continue}if(T==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ge("negate",T);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(T==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ge("plus",T);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:T,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:T});continue}oe({type:"plus",value:h});continue}if(T==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:T,output:""});continue}oe({type:"text",value:T});continue}if(T!=="*"){(T==="$"||T==="^")&&(T=`\\${T}`);let re=i0e.exec(De());re&&(T+=re[0],A.index+=re[0].length),oe({type:"text",value:T});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=T,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(T);continue}let Y=De();if(t.noextglob!==!0&&/^\([^?]/.test(Y)){Ge("star",T);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(T);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||Y[0]&&Y[0]!=="/")){oe({type:"star",value:T,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Nr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Nr){oe({type:"star",value:T,output:""});continue}for(;Y.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;Y=Y.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=T,O.output=_(t),A.output=O.output,A.globstar=!0,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=T,A.globstar=!0,A.output+=re.output+O.output,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&Y[0]==="/"){let ti=Y[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=T,A.output+=re.output+O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&Y[0]==="/"){O.type="globstar",O.value+=T,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=T,A.output+=O.output,A.globstar=!0,Re(T);continue}let fe={type:"star",value:T,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=T,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let Y of A.tokens)A.output+=Y.output!=null?Y.output:Y.value,Y.suffix&&(A.output+=Y.suffix)}return A};Nx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Gy,t.maxLength):Gy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Yy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Nx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Gd(),A0e=Yd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Kr=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Kr(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Kr.compileRe(r,e):Kr.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Kr(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Kr.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Kr.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Kr.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Kr.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Kr.makeRe(e,t)).test(o0e.basename(r));Kr.isMatch=(r,e,t)=>Kr(e,t)(r);Kr.parse=(r,e)=>Array.isArray(r)?r.map(t=>Kr.parse(t,e)):Lx(r,{...e,fastpaths:!1});Kr.scan=(r,e)=>a0e(r,e);Kr.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Kr.toRegex(a,e);return i===!0&&(l.state=r),l};Kr.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Kr.compileRe(n,e,t,i)};Kr.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Kr.constants=A0e;Z3.exports=Kr});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var Bn=I((ktt,i4)=>{"use strict";var t4=J("util"),r4=T3(),Ko=Mx(),Kx=Gd(),e4=r=>r===""||r==="./",Qr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Qr.match=Qr;Qr.matcher=(r,e)=>Ko(r,e);Qr.isMatch=(r,e,t)=>Ko(e,t)(r);Qr.any=Qr.isMatch;Qr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Qr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Qr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Qr.contains(r,i,t));if(typeof e=="string"){if(e4(r)||e4(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Qr.isMatch(r,e,{...t,contains:!0})};Qr.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Qr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Qr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Qr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Qr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};Qr.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Qr.makeRe=(...r)=>Ko.makeRe(...r);Qr.scan=(...r)=>Ko.scan(...r);Qr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of r4(String(i),e))t.push(Ko.parse(n,e));return t};Qr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:r4(r,e)};Qr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Qr.braces(r,{...e,expand:!0})};i4.exports=Qr});var s4=I((Dtt,n4)=>{"use strict";n4.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var a4=I((Rtt,o4)=>{"use strict";var c0e=s4();o4.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var y4=I((Ytt,I4)=>{"use strict";I4.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Gtt,Q4)=>{"use strict";var B0e=J("stream"),w4=B0e.PassThrough,Q0e=Array.prototype.slice;Q4.exports=b0e;function b0e(){let r=[],e=!1,t=Q0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=w4(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var S4=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var v4=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var x4=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function T0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=T0e;function N0e(r){return r.replace(R0e,"\\$2")}yf.escape=N0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var k4=I((Vtt,P4)=>{P4.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var F4=I((Xtt,R4)=>{var O0e=k4(),D4={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=D4[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var U0e=F4(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lP="/",Y0e=/\\/g,G0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;T4.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lP)<0&&(e=e.replace(Y0e,lP)),G0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var G4=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=N4(),L4=Bn(),V0e=Mx(),O4="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,eQe=/[!*+?@]\(.*\)/,tQe=/{.*(?:,|\.\.).*}/;function M4(r,e={}){return!K4(r,e)}Zr.isStaticPattern=M4;function K4(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&eQe.test(r)||e.braceExpansion!==!1&&tQe.test(r))}Zr.isDynamicPattern=K4;function rQe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rQe;function iQe(r){return"!"+r}Zr.convertToNegativePattern=iQe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function U4(r){return!Zy(r)}Zr.isPositivePattern=U4;function nQe(r){return r.filter(Zy)}Zr.getNegativePatterns=nQe;function sQe(r){return r.filter(U4)}Zr.getPositivePatterns=sQe;function oQe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=oQe;function aQe(r){return r.includes(O4)}Zr.hasGlobStar=aQe;function H4(r){return r.endsWith("/"+O4)}Zr.endsWithSlashGlobStar=H4;function AQe(r){let e=W0e.basename(r);return H4(r)||M4(e)}Zr.isAffectDepthOfReadingPattern=AQe;function lQe(r){return r.reduce((e,t)=>e.concat(j4(t)),[])}Zr.expandPatternsWithBraceExpansion=lQe;function j4(r){return L4.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=j4;function cQe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cQe;function Y4(r,e){return L4.makeRe(r,e)}Zr.makeRe=Y4;function uQe(r,e){return r.map(t=>Y4(t,e))}Zr.convertPatternsToRe=uQe;function gQe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gQe});var J4=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fQe=sP();function hQe(r){let e=fQe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>q4(r)),e.once("end",()=>q4(r)),e}cP.merge=hQe;function q4(r){r.forEach(e=>e.emit("close"))}});var W4=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pQe(r){return typeof r=="string"}_y.isString=pQe;function dQe(r){return r===""}_y.isEmpty=dQe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var CQe=b4();Oa.array=CQe;var mQe=S4();Oa.errno=mQe;var EQe=v4();Oa.fs=EQe;var IQe=x4();Oa.path=IQe;var yQe=G4();Oa.pattern=yQe;var wQe=J4();Oa.stream=wQe;var BQe=W4();Oa.string=BQe});var _4=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function QQe(r,e){let t=z4(r),i=V4(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=QQe;function uP(r,e,t){let i=X4(r);return"."in i?[gP(".",r,e,t)]:Z4(i,e,t)}Ka.convertPatternsToTasks=uP;function z4(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=z4;function V4(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=V4;function X4(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=X4;function Z4(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=Z4;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var eW=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function bQe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$4(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$4(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=bQe;function $4(r,e){r(e)}function fP(r,e){r(null,e)}});var tW=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function SQe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=SQe});var rW=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vQe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vQe});var iW=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xQe=rW(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xQe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var nW=eW(),PQe=tW(),dP=iW();UA.Settings=dP.default;function kQe(r,e,t){if(typeof e=="function"){nW.read(r,CP(),e);return}nW.read(r,CP(e),t)}UA.stat=kQe;function DQe(r,e){let t=CP(e);return PQe.read(r,t)}UA.statSync=DQe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var oW=I((Art,sW)=>{sW.exports=RQe;function RQe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var aW=Number.parseInt(rw[0],10),FQe=Number.parseInt(rw[1],10),AW=10,TQe=10,NQe=aW>AW,LQe=aW===AW&&FQe>=TQe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=NQe||LQe});var lW=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function OQe(r,e){return new EP(r,e)}nw.createDirentFromStats=OQe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var MQe=lW();sw.fs=MQe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function KQe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=KQe});var pW=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var UQe=vc(),cW=oW(),HQe=mP(),uW=IP(),gW=yP();function jQe(r,e,t){if(!e.stats&&HQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){fW(r,e,t);return}hW(r,e,t)}HA.read=jQe;function fW(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:gW.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>YQe(a,e));cW(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=fW;function YQe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=uW.fs.createDirentFromStats(r.name,n),t(null,r)})}}function hW(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=gW.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{UQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:uW.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});cW(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=hW;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var IW=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var GQe=vc(),qQe=mP(),dW=IP(),CW=yP();function JQe(r,e){return!e.stats&&qQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?mW(r,e):EW(r,e)}jA.read=JQe;function mW(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:CW.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=dW.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=mW;function EW(r,e){return e.fs.readdirSync(r).map(i=>{let n=CW.joinPathSegments(r,i,e.pathSegmentSeparator),s=GQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:dW.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=EW});var yW=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.createFileSystemAdapter=YA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");YA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function WQe(r){return r===void 0?YA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},YA.FILE_SYSTEM_ADAPTER),r)}YA.createFileSystemAdapter=WQe});var wW=I(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var zQe=J("path"),VQe=vc(),XQe=yW(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=XQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new VQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};QP.default=BP});var Aw=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.Settings=GA.scandirSync=GA.scandir=void 0;var BW=pW(),ZQe=IW(),bP=wW();GA.Settings=bP.default;function _Qe(r,e,t){if(typeof e=="function"){BW.read(r,SP(),e);return}BW.read(r,SP(e),t)}GA.scandir=_Qe;function $Qe(r,e){let t=SP(e);return ZQe.read(r,t)}GA.scandirSync=$Qe;function SP(r={}){return r instanceof bP.default?r:new bP.default(r)}});var bW=I((mrt,QW)=>{"use strict";function ebe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}QW.exports=ebe});var vW=I((Ert,vP)=>{"use strict";var tbe=bW();function SW(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tbe(rbe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nbe;function sbe(r,e){return r===null||r(e)}jo.isAppliedFilter=sbe;function obe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=obe;function abe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=abe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Abe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=Abe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lbe=J("events"),cbe=Aw(),ube=vW(),cw=lw(),gbe=kP(),DP=class extends gbe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cbe.scandir,this._emitter=new lbe.EventEmitter,this._queue=ube(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var xW=I(NP=>{"use strict";Object.defineProperty(NP,"__esModule",{value:!0});var fbe=FP(),TP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pbe(e,[...this._storage])}),this._reader.read()}};NP.default=TP;function hbe(r,e){r(e)}function pbe(r,e){r(null,e)}});var PW=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dbe=J("stream"),Cbe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Cbe.default(this._root,this._settings),this._stream=new dbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var kW=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mbe=Aw(),uw=lw(),Ebe=kP(),MP=class extends Ebe.default{constructor(){super(...arguments),this._scandir=mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var DW=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var Ibe=kW(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Ibe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var RW=I(YP=>{"use strict";Object.defineProperty(YP,"__esModule",{value:!0});var ybe=J("path"),wbe=Aw(),jP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ybe.sep),this.fsScandirSettings=new wbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};YP.default=jP});var qP=I(Yo=>{"use strict";Object.defineProperty(Yo,"__esModule",{value:!0});Yo.Settings=Yo.walkStream=Yo.walkSync=Yo.walk=void 0;var FW=xW(),Bbe=PW(),Qbe=DW(),GP=RW();Yo.Settings=GP.default;function bbe(r,e,t){if(typeof e=="function"){new FW.default(r,gw()).read(e);return}new FW.default(r,gw(e)).read(t)}Yo.walk=bbe;function Sbe(r,e){let t=gw(e);return new Qbe.default(r,t).read()}Yo.walkSync=Sbe;function vbe(r,e){let t=gw(e);return new Bbe.default(r,t).read()}Yo.walkStream=vbe;function gw(r={}){return r instanceof GP.default?r:new GP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xbe=J("path"),Pbe=vc(),TW=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new Pbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:TW.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!TW.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kbe=J("stream"),Dbe=vc(),Rbe=qP(),Fbe=zP(),VP=class extends Fbe.default{constructor(){super(...arguments),this._walkStream=Rbe.walkStream,this._stat=Dbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var NW=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var LW=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var Tbe=NW(),ek=class extends Tbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var OW=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),Nbe=LW(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Nbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var MW=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var KW=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var Lbe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return Lbe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var HW=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var UW=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=UW.path.makeAbsolute(this._settings.cwd,t),t=UW.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var Obe=J("path"),Mbe=OW(),Kbe=MW(),Ube=KW(),Hbe=HW(),ck=class{constructor(e){this._settings=e,this.errorFilter=new Ube.default(this._settings),this.entryFilter=new Kbe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Mbe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Hbe.default(this._settings)}_getRootDirectory(e){return Obe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var jW=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jbe=ZP(),Ybe=hw(),gk=class extends Ybe.default{constructor(){super(...arguments),this._reader=new jbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var YW=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Gbe=J("stream"),qbe=ZP(),Jbe=hw(),hk=class extends Jbe.default{constructor(){super(...arguments),this._reader=new qbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new Gbe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var GW=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var Wbe=vc(),zbe=qP(),Vbe=zP(),dk=class extends Vbe.default{constructor(){super(...arguments),this._walkSync=zbe.walkSync,this._statSync=Wbe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var qW=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var Xbe=GW(),Zbe=hw(),mk=class extends Zbe.default{constructor(){super(...arguments),this._reader=new Xbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var JW=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var Qf=J("fs"),_be=J("os"),$be=_be.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Qf.lstat,lstatSync:Qf.lstatSync,stat:Qf.stat,statSync:Qf.statSync,readdir:Qf.readdir,readdirSync:Qf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$be),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Yrt,zW)=>{"use strict";var WW=_4(),eSe=jW(),tSe=YW(),rSe=qW(),yk=JW(),xc=Ma();async function wk(r,e){bf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){bf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){bf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){bf(o);let l=[].concat(o),c=new yk.default(a);return WW.generate(l,c)}r.generateTasks=i;function n(o,a){bf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return bf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=WW.generate(i,n),o=new e(n);return s.map(o.read,o)}function bf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}zW.exports=wk});var XW=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),VW=J("fs");async function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(VW[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return VW[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=Qk.bind(null,"stat","isFile");Pc.isDirectory=Qk.bind(null,"stat","isDirectory");Pc.isSymlink=Qk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=bk.bind(null,"statSync","isFile");Pc.isDirectorySync=bk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=bk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),ZW=XW(),_W=r=>r.length>1?`{${r.join(",")}}`:r[0],$W=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_W(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_W(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await ZW.isDirectory($W(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>ZW.isDirectorySync($W(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],QSe=wSe(g8.readFile),bSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(bSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await QSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Tk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Tk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=y4(),DSe=sP(),Ew=pw(),Iw=t8(),Nk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",TSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},NSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),TSe(r),NSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],Q8=r=>r&&r.gitignore?Nk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Nk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=Q8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=Q8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Nk});var vn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var Y8=I((dit,j8)=>{var tve=Is(),rve=function(){return tve.Date.now()};j8.exports=rve});var q8=I((Cit,G8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}G8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Tc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Tc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Nc=I((wit,iz)=>{var tz=Tc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((Qit,sz)=>{var wve=Nc(),Bve=Jo(),Qve="[object Symbol]";function bve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==Qve}sz.exports=bve});var lz=I((bit,Az)=>{var Sve=W8(),oz=vn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=vn(),zk=Y8(),cz=lz(),Tve="Expected a function",Nve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Tve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Nve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=vn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ga=I((Ya,Yw)=>{"use strict";Object.defineProperty(Ya,"__esModule",{value:!0});var Qz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return Qz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Qz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:bz}=Object.prototype,mC=r=>{let e=bz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(bz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ya.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ya.assert,{class:{value:Ya.assert.class_},function:{value:Ya.assert.function_},null:{value:Ya.assert.null_}});Ya.default=V;Yw.exports=V;Yw.exports.default=V;Yw.exports.assert=Ya.assert});var xz=I((hnt,dD)=>{"use strict";var Gw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Gw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Gw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,bD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),QD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Tz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Nz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Tz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Nz),this._resolve6(e,Nz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[QD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[QD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Tz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};bD.exports=qw;bD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,Qxe="text/plain",bxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===bxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Qxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Yz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Gz=Yz();vD.exports=Gz(Jw);vD.exports.strict=Gz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Txe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Nxe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Txe(r))return r.close(EC);if(Nxe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((Qnt,e5)=>{"use strict";var jxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Yxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Gxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Gxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Yxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((bnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},TD=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=TD});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),ND=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=ND.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new ND(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=ND.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Nnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,Q5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),sn=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].lengthe[ws].includes(i))&&t[sn]+e[sn]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].lengtht[ws].includes(i))&&e[sn]+t[sn]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]{r[Uf]=!0,r[sn]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[sn]=0,h[Uf]=!1;let p=()=>h[sn]{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[sn]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[sn],h[sn]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[sn],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[sn]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[sn]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=sn;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var YD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};b5.exports=jD});var GD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Gnt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:QPe}=J("stream"),{Agent:F5,globalAgent:bPe}=HD(),SPe=YD(),vPe=GD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:T5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:N5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:TPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),NPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends QPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=bPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===TPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[N5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[N5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new T5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new T5("set");if(typeof e!="string"||!NPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var Y5=I((Wnt,j5)=>{"use strict";var MPe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var G5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),jPe=Y5(),YPe=GD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},GPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=YPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:G5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await GPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):G5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=YD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ga();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ga(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ga();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ga(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ga(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Yf=Symbol("downloadedSize"),Gf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),QC=Symbol("jobs"),Q6=Symbol("originalResponse"),b6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Qke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function bke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Ta}{1,2}${xx}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Ta}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(Bn=>{"use strict";var GBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Gd();Bn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Bn.hasRegexChars=r=>WBe.test(r);Bn.isRegexChar=r=>r.length===1&&Bn.hasRegexChars(r);Bn.escapeRegex=r=>r.replace(zBe,"\\$1");Bn.toPosixSlashes=r=>r.replace(qBe,"/");Bn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);Bn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Bn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||GBe.sep==="\\";Bn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Bn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Bn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Bn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Nx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Gd(),G3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&G3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let N={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(N.maxDepth=0,G3(X)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he{"use strict";var Gy=Gd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Gy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Tx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Gy.globChars(l),u=Gy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=G=>`(${a}(?:(?!${q}${G.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,N,ce=()=>A.index===n-1,he=A.peek=(G=1)=>r[A.index+G],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(G="",fe=0)=>{A.consumed+=G,A.index+=fe},se=G=>{A.output+=G.output!=null?G.output:G.value,Re(G.value)},Ae=()=>{let G=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,G++;return G%2===0?!1:(A.negated=!0,A.start++,!0)},ye=G=>{A[G]++,te.push(G)},ge=G=>{A[G]--,te.pop()},oe=G=>{if(O.type==="globstar"){let fe=A.braces>0&&(G.type==="comma"||G.type==="brace"),re=G.extglob===!0||ne.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&G.type!=="paren"&&(ne[ne.length-1].inner+=G.value),(G.value||G.output)&&se(G),O&&O.type==="text"&&G.type==="text"){O.value+=G.value,O.output=(O.output||"")+G.value;return}G.prev=O,o.push(G),O=G},Ye=(G,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:G,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=G=>{let fe=G.close+(t.capture?")":""),re;if(G.type==="negate"){let de=Z;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=G.close=`)$))${de}`),G.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Tx(re,{...e,fastpaths:!1}).output;fe=G.close=`)${Ze})${de})`}G.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:N,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let G=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Lr)=>vt==="\\"?(G=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Lr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return G===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(N=Pe(),N==="\0")continue;if(N==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){N+="\\",oe({type:"text",value:N});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(N+="\\")),t.unescape===!0?N=Pe():N+=Pe(),A.brackets===0){oe({type:"text",value:N});continue}}if(A.brackets>0&&(N!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&N===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(N==="["&&he()!==":"||N==="-"&&he()==="]")&&(N=`\\${N}`),N==="]"&&(O.value==="["||O.value==="[^")&&(N=`\\${N}`),t.posix===!0&&N==="!"&&O.value==="["&&(N="^"),O.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='"'){N=Wn.escapeRegex(N),O.value+=N,se({value:N});continue}if(N==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:N});continue}if(N==="("){ye("parens"),oe({type:"paren",value:N});continue}if(N===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:N,output:A.parens?")":"\\)"}),ge("parens");continue}if(N==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));N=`\\${N}`}else ye("brackets");oe({type:"bracket",value:N});continue}if(N==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:N,output:`\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:N,output:`\\${N}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(N=`/${N}`),O.value+=N,se({value:N}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(N==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:N,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(N==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:N,output:N});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",N=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:N,output:de}),ge("braces"),ue.pop();continue}if(N==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:N});continue}if(N===","){let re=N,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:N,output:re});continue}if(N==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:N,output:p});continue}if(N==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=N,O.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:N,output:g});continue}oe({type:"dot",value:N,output:g});continue}if(N==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",N);continue}if(O&&O.type==="paren"){let de=he(),Ze=N;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${N}`),oe({type:"text",value:N,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:N,output:F});continue}oe({type:"qmark",value:N,output:P});continue}if(N==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",N);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:N,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:N});continue}oe({type:"plus",value:h});continue}if(N==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:N,output:""});continue}oe({type:"text",value:N});continue}if(N!=="*"){(N==="$"||N==="^")&&(N=`\\${N}`);let re=i0e.exec(De());re&&(N+=re[0],A.index+=re[0].length),oe({type:"text",value:N});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=N,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(N);continue}let G=De();if(t.noextglob!==!0&&/^\([^?]/.test(G)){Ye("star",N);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(N);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||G[0]&&G[0]!=="/")){oe({type:"star",value:N,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Lr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Lr){oe({type:"star",value:N,output:""});continue}for(;G.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;G=G.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=N,O.output=_(t),A.output=O.output,A.globstar=!0,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=N,A.globstar=!0,A.output+=re.output+O.output,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&G[0]==="/"){let ti=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=N,A.output+=re.output+O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&G[0]==="/"){O.type="globstar",O.value+=N,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=N,A.output+=O.output,A.globstar=!0,Re(N);continue}let fe={type:"star",value:N,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=N,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};Tx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Gy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Tx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Yd(),A0e=Gd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Ur=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Ur(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Ur.compileRe(r,e):Ur.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Ur(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Ur.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Ur.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Ur.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Ur.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Ur.makeRe(e,t)).test(o0e.basename(r));Ur.isMatch=(r,e,t)=>Ur(e,t)(r);Ur.parse=(r,e)=>Array.isArray(r)?r.map(t=>Ur.parse(t,e)):Lx(r,{...e,fastpaths:!1});Ur.scan=(r,e)=>a0e(r,e);Ur.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Ur.toRegex(a,e);return i===!0&&(l.state=r),l};Ur.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Ur.compileRe(n,e,t,i)};Ur.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Ur.constants=A0e;Z3.exports=Ur});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var Qn=I((ktt,iW)=>{"use strict";var tW=J("util"),rW=N3(),Ko=Mx(),Kx=Yd(),eW=r=>r===""||r==="./",br=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};br.match=br;br.matcher=(r,e)=>Ko(r,e);br.isMatch=(r,e,t)=>Ko(e,t)(r);br.any=br.isMatch;br.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=br(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};br.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>br.contains(r,i,t));if(typeof e=="string"){if(eW(r)||eW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return br.isMatch(r,e,{...t,contains:!0})};br.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=br(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};br.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};br.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};br.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};br.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};br.makeRe=(...r)=>Ko.makeRe(...r);br.scan=(...r)=>Ko.scan(...r);br.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of rW(String(i),e))t.push(Ko.parse(n,e));return t};br.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:rW(r,e)};br.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return br.braces(r,{...e,expand:!0})};iW.exports=br});var sW=I((Dtt,nW)=>{"use strict";nW.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var aW=I((Rtt,oW)=>{"use strict";var c0e=sW();oW.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var yW=I((Gtt,IW)=>{"use strict";IW.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Ytt,QW)=>{"use strict";var B0e=J("stream"),wW=B0e.PassThrough,Q0e=Array.prototype.slice;QW.exports=b0e;function b0e(){let r=[],e=!1,t=Q0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=wW(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var SW=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var vW=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var xW=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function N0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=N0e;function T0e(r){return r.replace(R0e,"\\$2")}yf.escape=T0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var kW=I((Vtt,PW)=>{PW.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var FW=I((Xtt,RW)=>{var O0e=kW(),DW={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;ee&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(tt&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=DW[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e{"use strict";var U0e=FW(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lP="/",G0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;NW.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lP)<0&&(e=e.replace(G0e,lP)),Y0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var YW=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=TW(),LW=Qn(),V0e=Mx(),OW="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,eQe=/[!*+?@]\(.*\)/,tQe=/{.*(?:,|\.\.).*}/;function MW(r,e={}){return!KW(r,e)}Zr.isStaticPattern=MW;function KW(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&eQe.test(r)||e.braceExpansion!==!1&&tQe.test(r))}Zr.isDynamicPattern=KW;function rQe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rQe;function iQe(r){return"!"+r}Zr.convertToNegativePattern=iQe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function UW(r){return!Zy(r)}Zr.isPositivePattern=UW;function nQe(r){return r.filter(Zy)}Zr.getNegativePatterns=nQe;function sQe(r){return r.filter(UW)}Zr.getPositivePatterns=sQe;function oQe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=oQe;function aQe(r){return r.includes(OW)}Zr.hasGlobStar=aQe;function HW(r){return r.endsWith("/"+OW)}Zr.endsWithSlashGlobStar=HW;function AQe(r){let e=W0e.basename(r);return HW(r)||MW(e)}Zr.isAffectDepthOfReadingPattern=AQe;function lQe(r){return r.reduce((e,t)=>e.concat(jW(t)),[])}Zr.expandPatternsWithBraceExpansion=lQe;function jW(r){return LW.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=jW;function cQe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cQe;function GW(r,e){return LW.makeRe(r,e)}Zr.makeRe=GW;function uQe(r,e){return r.map(t=>GW(t,e))}Zr.convertPatternsToRe=uQe;function gQe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gQe});var JW=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fQe=sP();function hQe(r){let e=fQe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>qW(r)),e.once("end",()=>qW(r)),e}cP.merge=hQe;function qW(r){r.forEach(e=>e.emit("close"))}});var WW=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pQe(r){return typeof r=="string"}_y.isString=pQe;function dQe(r){return r===""}_y.isEmpty=dQe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var CQe=bW();Oa.array=CQe;var mQe=SW();Oa.errno=mQe;var EQe=vW();Oa.fs=EQe;var IQe=xW();Oa.path=IQe;var yQe=YW();Oa.pattern=yQe;var wQe=JW();Oa.stream=wQe;var BQe=WW();Oa.string=BQe});var _W=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function QQe(r,e){let t=zW(r),i=VW(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=QQe;function uP(r,e,t){let i=XW(r);return"."in i?[gP(".",r,e,t)]:ZW(i,e,t)}Ka.convertPatternsToTasks=uP;function zW(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=zW;function VW(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=VW;function XW(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=XW;function ZW(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=ZW;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var e8=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function bQe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$W(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$W(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=bQe;function $W(r,e){r(e)}function fP(r,e){r(null,e)}});var t8=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function SQe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=SQe});var r8=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vQe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vQe});var i8=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xQe=r8(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xQe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var n8=e8(),PQe=t8(),dP=i8();UA.Settings=dP.default;function kQe(r,e,t){if(typeof e=="function"){n8.read(r,CP(),e);return}n8.read(r,CP(e),t)}UA.stat=kQe;function DQe(r,e){let t=CP(e);return PQe.read(r,t)}UA.statSync=DQe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var o8=I((Art,s8)=>{s8.exports=RQe;function RQe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var a8=Number.parseInt(rw[0],10),FQe=Number.parseInt(rw[1],10),A8=10,NQe=10,TQe=a8>A8,LQe=a8===A8&&FQe>=NQe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=TQe||LQe});var l8=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function OQe(r,e){return new EP(r,e)}nw.createDirentFromStats=OQe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var MQe=l8();sw.fs=MQe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function KQe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=KQe});var p8=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var UQe=vc(),c8=o8(),HQe=mP(),u8=IP(),g8=yP();function jQe(r,e,t){if(!e.stats&&HQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){f8(r,e,t);return}h8(r,e,t)}HA.read=jQe;function f8(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:g8.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>GQe(a,e));c8(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=f8;function GQe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=u8.fs.createDirentFromStats(r.name,n),t(null,r)})}}function h8(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=g8.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{UQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:u8.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});c8(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=h8;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var I8=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var YQe=vc(),qQe=mP(),d8=IP(),C8=yP();function JQe(r,e){return!e.stats&&qQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?m8(r,e):E8(r,e)}jA.read=JQe;function m8(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:C8.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=d8.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=m8;function E8(r,e){return e.fs.readdirSync(r).map(i=>{let n=C8.joinPathSegments(r,i,e.pathSegmentSeparator),s=YQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:d8.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=E8});var y8=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.createFileSystemAdapter=GA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");GA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function WQe(r){return r===void 0?GA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},GA.FILE_SYSTEM_ADAPTER),r)}GA.createFileSystemAdapter=WQe});var w8=I(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var zQe=J("path"),VQe=vc(),XQe=y8(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=XQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new VQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};QP.default=BP});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var B8=p8(),ZQe=I8(),bP=w8();YA.Settings=bP.default;function _Qe(r,e,t){if(typeof e=="function"){B8.read(r,SP(),e);return}B8.read(r,SP(e),t)}YA.scandir=_Qe;function $Qe(r,e){let t=SP(e);return ZQe.read(r,t)}YA.scandirSync=$Qe;function SP(r={}){return r instanceof bP.default?r:new bP.default(r)}});var b8=I((mrt,Q8)=>{"use strict";function ebe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}Q8.exports=ebe});var v8=I((Ert,vP)=>{"use strict";var tbe=b8();function S8(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tbe(rbe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nbe;function sbe(r,e){return r===null||r(e)}jo.isAppliedFilter=sbe;function obe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=obe;function abe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=abe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Abe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=Abe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lbe=J("events"),cbe=Aw(),ube=v8(),cw=lw(),gbe=kP(),DP=class extends gbe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cbe.scandir,this._emitter=new lbe.EventEmitter,this._queue=ube(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var x8=I(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});var fbe=FP(),NP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pbe(e,[...this._storage])}),this._reader.read()}};TP.default=NP;function hbe(r,e){r(e)}function pbe(r,e){r(null,e)}});var P8=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dbe=J("stream"),Cbe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Cbe.default(this._root,this._settings),this._stream=new dbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var k8=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mbe=Aw(),uw=lw(),Ebe=kP(),MP=class extends Ebe.default{constructor(){super(...arguments),this._scandir=mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var D8=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var Ibe=k8(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Ibe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var R8=I(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});var ybe=J("path"),wbe=Aw(),jP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ybe.sep),this.fsScandirSettings=new wbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};GP.default=jP});var qP=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Settings=Go.walkStream=Go.walkSync=Go.walk=void 0;var F8=x8(),Bbe=P8(),Qbe=D8(),YP=R8();Go.Settings=YP.default;function bbe(r,e,t){if(typeof e=="function"){new F8.default(r,gw()).read(e);return}new F8.default(r,gw(e)).read(t)}Go.walk=bbe;function Sbe(r,e){let t=gw(e);return new Qbe.default(r,t).read()}Go.walkSync=Sbe;function vbe(r,e){let t=gw(e);return new Bbe.default(r,t).read()}Go.walkStream=vbe;function gw(r={}){return r instanceof YP.default?r:new YP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xbe=J("path"),Pbe=vc(),N8=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new Pbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:N8.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!N8.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kbe=J("stream"),Dbe=vc(),Rbe=qP(),Fbe=zP(),VP=class extends Fbe.default{constructor(){super(...arguments),this._walkStream=Rbe.walkStream,this._stat=Dbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var T8=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var L8=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var Nbe=T8(),ek=class extends Nbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var O8=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),Tbe=L8(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Tbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var M8=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var K8=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var Lbe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return Lbe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var H8=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var U8=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=U8.path.makeAbsolute(this._settings.cwd,t),t=U8.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var Obe=J("path"),Mbe=O8(),Kbe=M8(),Ube=K8(),Hbe=H8(),ck=class{constructor(e){this._settings=e,this.errorFilter=new Ube.default(this._settings),this.entryFilter=new Kbe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Mbe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Hbe.default(this._settings)}_getRootDirectory(e){return Obe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var j8=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jbe=ZP(),Gbe=hw(),gk=class extends Gbe.default{constructor(){super(...arguments),this._reader=new jbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var G8=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Ybe=J("stream"),qbe=ZP(),Jbe=hw(),hk=class extends Jbe.default{constructor(){super(...arguments),this._reader=new qbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new Ybe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var Y8=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var Wbe=vc(),zbe=qP(),Vbe=zP(),dk=class extends Vbe.default{constructor(){super(...arguments),this._walkSync=zbe.walkSync,this._statSync=Wbe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var q8=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var Xbe=Y8(),Zbe=hw(),mk=class extends Zbe.default{constructor(){super(...arguments),this._reader=new Xbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var J8=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var Qf=J("fs"),_be=J("os"),$be=_be.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Qf.lstat,lstatSync:Qf.lstatSync,stat:Qf.stat,statSync:Qf.statSync,readdir:Qf.readdir,readdirSync:Qf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$be),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Grt,z8)=>{"use strict";var W8=_W(),eSe=j8(),tSe=G8(),rSe=q8(),yk=J8(),xc=Ma();async function wk(r,e){bf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){bf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){bf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){bf(o);let l=[].concat(o),c=new yk.default(a);return W8.generate(l,c)}r.generateTasks=i;function n(o,a){bf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return bf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=W8.generate(i,n),o=new e(n);return s.map(o.read,o)}function bf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}z8.exports=wk});var X8=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),V8=J("fs");async function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(V8[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return V8[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=Qk.bind(null,"stat","isFile");Pc.isDirectory=Qk.bind(null,"stat","isDirectory");Pc.isSymlink=Qk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=bk.bind(null,"statSync","isFile");Pc.isDirectorySync=bk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=bk.bind(null,"lstatSync","isSymbolicLink")});var t4=I((qrt,Sk)=>{"use strict";var kc=J("path"),Z8=X8(),_8=r=>r.length>1?`{${r.join(",")}}`:r[0],$8=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_8(e)}`,e4=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_8(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await Z8.isDirectory($8(i,e.cwd))?e4(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>Z8.isDirectorySync($8(i,e.cwd))?e4(i,e):i);return[].concat.apply([],t)}});var l4=I((Jrt,A4)=>{function r4(r){return Array.isArray(r)?r:[r]}var o4="",i4=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n4=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o4),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i4:o4],[/\\\s/g,()=>i4],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s4=Object.create(null),pSe=(r,e)=>{let t=s4[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s4[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a4=r=>lSe.test(r);Ua.isNotRelative=a4;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n4,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n4]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r4(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r4(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A4.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a4(t)}});var u4=I((Wrt,c4)=>{"use strict";c4.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m4=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g4=J("fs"),Ha=J("path"),f4=pw(),BSe=l4(),eC=u4(),h4=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],QSe=wSe(g4.readFile),bSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(bSe(t))},p4=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d4=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await QSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g4.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C4=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C4(r);let e=await f4("**/.gitignore",{ignore:h4.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p4(t);return d4(i,r.cwd)};Rk.exports.sync=r=>{r=C4(r);let t=f4.sync("**/.gitignore",{ignore:h4.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p4(t);return d4(i,r.cwd)}});var I4=I((Vrt,E4)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Nk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E4.exports={FilterStream:Fk,UniqueStream:Nk}});var Mk=I((Xrt,Dc)=>{"use strict";var w4=J("fs"),mw=yW(),DSe=sP(),Ew=pw(),Iw=t4(),Tk=m4(),{FilterStream:RSe,UniqueStream:FSe}=I4(),B4=()=>!1,y4=r=>r[0]==="!",NSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},TSe=(r={})=>{if(!r.cwd)return;let e;try{e=w4.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w4.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),NSe(r),TSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y4(n))continue;let s=r.slice(i).filter(a=>y4(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],Q4=r=>r&&r.gitignore?Tk.sync({cwd:r.cwd,ignore:r.ignore}):B4,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Tk({cwd:e.cwd,ignore:e.ignore}):B4,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=Q4(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=Q4(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Tk});var xn=I((fit,K4)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K4.exports=XSe});var Wk=I((hit,U4)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U4.exports=ZSe});var Is=I((pit,H4)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H4.exports=eve});var G4=I((dit,j4)=>{var tve=Is(),rve=function(){return tve.Date.now()};j4.exports=rve});var q4=I((Cit,Y4)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y4.exports=nve});var W4=I((mit,J4)=>{var sve=q4(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J4.exports=ave});var Nc=I((Eit,z4)=>{var Ave=Is(),lve=Ave.Symbol;z4.exports=lve});var _4=I((Iit,Z4)=>{var V4=Nc(),X4=Object.prototype,cve=X4.hasOwnProperty,uve=X4.toString,gC=V4?V4.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z4.exports=gve});var ez=I((yit,$4)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$4.exports=pve});var Tc=I((wit,iz)=>{var tz=Nc(),dve=_4(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((Qit,sz)=>{var wve=Tc(),Bve=Jo(),Qve="[object Symbol]";function bve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==Qve}sz.exports=bve});var lz=I((bit,Az)=>{var Sve=W4(),oz=xn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=xn(),zk=G4(),cz=lz(),Nve="Expected a function",Tve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Nve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Tve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=xn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((Ga,Gw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var Qz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return Qz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Qz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:bz}=Object.prototype,mC=r=>{let e=bz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(bz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=V;Gw.exports=V;Gw.exports.default=V;Gw.exports.assert=Ga.assert});var xz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,bD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),QD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Nz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Tz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Nz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Tz),this._resolve6(e,Tz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[QD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[QD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Nz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};bD.exports=qw;bD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,Qxe="text/plain",bxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===bxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Qxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Gz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n{var Yz=Gz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Nxe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Txe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Nxe(r))return r.close(EC);if(Txe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((Qnt,e5)=>{"use strict";var jxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Gxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Yxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Yxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Gxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((bnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},ND=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=ND});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),TD=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=TD.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new TD(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=TD.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Tnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,Q5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),on=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].lengthe[ws].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].lengtht[ws].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]{r[Uf]=!0,r[on]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[on]=0,h[Uf]=!1;let p=()=>h[on]{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[on],h[on]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[on],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[on]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=on;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};b5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:QPe}=J("stream"),{Agent:F5,globalAgent:bPe}=HD(),SPe=GD(),vPe=YD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:N5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:T5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:NPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),TPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends QPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=bPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===NPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[T5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[T5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new N5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new N5("set");if(typeof e!="string"||!TPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var G5=I((Wnt,j5)=>{"use strict";var MPe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),jPe=G5(),GPe=YD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},YPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=GPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await YPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=GD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Gf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),QC=Symbol("jobs"),Q6=Symbol("originalResponse"),b6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Qke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function bke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` `).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` `).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` `)}${a.reverse().join(` -`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Yf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{Qke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Gf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Q6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Yf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),bke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[b6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Yf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[QC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Gf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[QC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[b6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[Q6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Yf]/this[jf]:this[jf]===this[Yf]?e=1:e=0,{percent:e,transferred:this[Yf],total:this[jf]}}get uploadProgress(){let e;return this[Gf]?e=this[qf]/this[Gf]:this[Gf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Gf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Tke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Nke=J("events"),Lke=Ga(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Nke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Tke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var T6=Ga();function N6(r){for(let e of Object.values(r))(T6.default.plainObject(e)||T6.default.array(e))&&N6(e);return Object.freeze(r)}BR.default=N6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var QR=I(Qs=>{"use strict";var Yke=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Gke=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Yke(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var K6=Ga(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};Qs.default=j6;Gke(M6(),Qs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Y6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),G6=QR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[G6.defaultHandler],mutableDefaults:!1},bR=G6.default(eDe);qa.default=bR;pB.exports=bR;pB.exports.default=bR;pB.exports.__esModule=!0;Y6(QR(),qa);Y6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&Ir("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:Ir("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||Ir("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function T(f,E,w,k,L){var N={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=YE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=YE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var N="";E>10,56320|it&1023)}}return N}function De(f,E){return f?Pe(Y,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,N=w+k-1,ee=0;ee=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=N)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=N)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=N)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=N)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,Y,E,w)}function Ae(f){for(var E=0,w=0;w=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ge,ie,Y,fe,re,de,Ze,vt,mt;function Nr(f){Ge=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=Y=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!b.init.initialized&&b.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function Ir(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Tl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Tl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAgAEUEQCAEQQA2AhwMAQsgBCgCDEEANgIAIAQoAgwgBCgCEDYCBCAEKAIMIAQvARo7AQggBCgCDCAELwEYOwEKAkAgBC8BGARAIAQoAhQhASAELwEYIQIjAEEgayIAJAAgACABNgIYIAAgAjYCFCAAQQA2AhACQCAAKAIURQRAIABBADYCHAwBCyAAIAAoAhQQGDYCDCAAKAIMRQRAIAAoAhBBDkEAEBQgAEEANgIcDAELIAAoAgwgACgCGCAAKAIUEBkaIAAgACgCDDYCHAsgACgCHCEBIABBIGokACABIQAgBCgCDCAANgIMIABFBEAgBCgCDBAVIARBADYCHAwDCwwBCyAEKAIMQQA2AgwLIAQgBCgCDDYCHAsgBCgCHCEAIARBIGokACAAC5EBAQV/IAAoAkxBAE4hAyAAKAIAQQFxIgRFBEAgACgCNCIBBEAgASAAKAI4NgI4CyAAKAI4IgIEQCACIAE2AjQLIABBrKABKAIARgRAQaygASACNgIACwsgABClASEBIAAgACgCDBEAACECIAAoAmAiBQRAIAUQFQsCQCAERQRAIAAQFQwBCyADRQ0ACyABIAJyC/kBAQF/IwBBIGsiAiQAIAIgADYCHCACIAE5AxACQCACKAIcRQ0AIAICfAJ8IAIrAxBEAAAAAAAAAABkBEAgAisDEAwBC0QAAAAAAAAAAAtEAAAAAAAA8D9jBEACfCACKwMQRAAAAAAAAAAAZARAIAIrAxAMAQtEAAAAAAAAAAALDAELRAAAAAAAAPA/CyACKAIcKwMoIAIoAhwrAyChoiACKAIcKwMgoDkDCCACKAIcKwMQIAIrAwggAigCHCsDGKFjRQ0AIAIoAhwoAgAgAisDCCACKAIcKAIMIAIoAhwoAgQRFgAgAigCHCACKwMIOQMYCyACQSBqJAAL4QUCAn8BfiMAQTBrIgQkACAEIAA2AiQgBCABNgIgIAQgAjYCHCAEIAM2AhgCQCAEKAIkRQRAIARCfzcDKAwBCyAEKAIgRQRAIAQoAhhBEkEAEBQgBEJ/NwMoDAELIAQoAhxBgyBxBEAgBEEVQRYgBCgCHEEBcRs2AhQgBEIANwMAA0AgBCkDACAEKAIkKQMwVARAIAQgBCgCJCAEKQMAIAQoAhwgBCgCGBBNNgIQIAQoAhAEQCAEKAIcQQJxBEAgBAJ/IAQoAhAiARAuQQFqIQADQEEAIABFDQEaIAEgAEEBayIAaiICLQAAQS9HDQALIAILNgIMIAQoAgwEQCAEIAQoAgxBAWo2AhALCyAEKAIgIAQoAhAgBCgCFBEDAEUEQCMAQRBrIgAgBCgCGDYCDCAAKAIMBEAgACgCDEEANgIAIAAoAgxBADYCBAsgBCAEKQMANwMoDAULCyAEIAQpAwBCAXw3AwAMAQsLIAQoAhhBCUEAEBQgBEJ/NwMoDAELIAQoAiQoAlAhASAEKAIgIQIgBCgCHCEDIAQoAhghBSMAQTBrIgAkACAAIAE2AiQgACACNgIgIAAgAzYCHCAAIAU2AhgCQAJAIAAoAiQEQCAAKAIgDQELIAAoAhhBEkEAEBQgAEJ/NwMoDAELIAAoAiQpAwhCAFIEQCAAIAAoAiAQczYCFCAAIAAoAhQgACgCJCgCAHA2AhAgACAAKAIkKAIQIAAoAhBBAnRqKAIANgIMA0ACQCAAKAIMRQ0AIAAoAiAgACgCDCgCABBbBEAgACAAKAIMKAIYNgIMDAIFIAAoAhxBCHEEQCAAKAIMKQMIQn9SBEAgACAAKAIMKQMINwMoDAYLDAILIAAoAgwpAxBCf1IEQCAAIAAoAgwpAxA3AygMBQsLCwsLIAAoAhhBCUEAEBQgAEJ/NwMoCyAAKQMoIQYgAEEwaiQAIAQgBjcDKAsgBCkDKCEGIARBMGokACAGC9QDAQF/IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQAkACQCADKAIYBEAgAygCFA0BCyADKAIQQRJBABAUIANBADoAHwwBCyADKAIYKQMIQgBSBEAgAyADKAIUEHM2AgwgAyADKAIMIAMoAhgoAgBwNgIIIANBADYCACADIAMoAhgoAhAgAygCCEECdGooAgA2AgQDQCADKAIEBEACQCADKAIEKAIcIAMoAgxHDQAgAygCFCADKAIEKAIAEFsNAAJAIAMoAgQpAwhCf1EEQAJAIAMoAgAEQCADKAIAIAMoAgQoAhg2AhgMAQsgAygCGCgCECADKAIIQQJ0aiADKAIEKAIYNgIACyADKAIEEBUgAygCGCIAIAApAwhCAX03AwgCQCADKAIYIgApAwi6IAAoAgC4RHsUrkfheoQ/omNFDQAgAygCGCgCAEGAAk0NACADKAIYIAMoAhgoAgBBAXYgAygCEBBaQQFxRQRAIANBADoAHwwICwsMAQsgAygCBEJ/NwMQCyADQQE6AB8MBAsgAyADKAIENgIAIAMgAygCBCgCGDYCBAwBCwsLIAMoAhBBCUEAEBQgA0EAOgAfCyADLQAfQQFxIQAgA0EgaiQAIAAL3wIBAX8jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiACQCADKAIkIAMoAigoAgBGBEAgA0EBOgAvDAELIAMgAygCJEEEEH8iADYCHCAARQRAIAMoAiBBDkEAEBQgA0EAOgAvDAELIAMoAigpAwhCAFIEQCADQQA2AhgDQCADKAIYIAMoAigoAgBPRQRAIAMgAygCKCgCECADKAIYQQJ0aigCADYCFANAIAMoAhQEQCADIAMoAhQoAhg2AhAgAyADKAIUKAIcIAMoAiRwNgIMIAMoAhQgAygCHCADKAIMQQJ0aigCADYCGCADKAIcIAMoAgxBAnRqIAMoAhQ2AgAgAyADKAIQNgIUDAELCyADIAMoAhhBAWo2AhgMAQsLCyADKAIoKAIQEBUgAygCKCADKAIcNgIQIAMoAiggAygCJDYCACADQQE6AC8LIAMtAC9BAXEhACADQTBqJAAgAAtNAQJ/IAEtAAAhAgJAIAAtAAAiA0UNACACIANHDQADQCABLQABIQIgAC0AASIDRQ0BIAFBAWohASAAQQFqIQAgAiADRg0ACwsgAyACawvRCQECfyMAQSBrIgEkACABIAA2AhwgASABKAIcKAIsNgIQA0AgASABKAIcKAI8IAEoAhwoAnRrIAEoAhwoAmxrNgIUIAEoAhwoAmwgASgCECABKAIcKAIsQYYCa2pPBEAgASgCHCgCOCABKAIcKAI4IAEoAhBqIAEoAhAgASgCFGsQGRogASgCHCIAIAAoAnAgASgCEGs2AnAgASgCHCIAIAAoAmwgASgCEGs2AmwgASgCHCIAIAAoAlwgASgCEGs2AlwjAEEgayIAIAEoAhw2AhwgACAAKAIcKAIsNgIMIAAgACgCHCgCTDYCGCAAIAAoAhwoAkQgACgCGEEBdGo2AhADQCAAIAAoAhBBAmsiAjYCECAAIAIvAQA2AhQgACgCEAJ/IAAoAhQgACgCDE8EQCAAKAIUIAAoAgxrDAELQQALOwEAIAAgACgCGEEBayICNgIYIAINAAsgACAAKAIMNgIYIAAgACgCHCgCQCAAKAIYQQF0ajYCEANAIAAgACgCEEECayICNgIQIAAgAi8BADYCFCAAKAIQAn8gACgCFCAAKAIMTwRAIAAoAhQgACgCDGsMAQtBAAs7AQAgACAAKAIYQQFrIgI2AhggAg0ACyABIAEoAhAgASgCFGo2AhQLIAEoAhwoAgAoAgQEQCABIAEoAhwoAgAgASgCHCgCdCABKAIcKAI4IAEoAhwoAmxqaiABKAIUEHY2AhggASgCHCIAIAEoAhggACgCdGo2AnQgASgCHCgCdCABKAIcKAK0LWpBA08EQCABIAEoAhwoAmwgASgCHCgCtC1rNgIMIAEoAhwgASgCHCgCOCABKAIMai0AADYCSCABKAIcIAEoAhwoAlQgASgCHCgCOCABKAIMQQFqai0AACABKAIcKAJIIAEoAhwoAlh0c3E2AkgDQCABKAIcKAK0LQRAIAEoAhwgASgCHCgCVCABKAIcKAI4IAEoAgxBAmpqLQAAIAEoAhwoAkggASgCHCgCWHRzcTYCSCABKAIcKAJAIAEoAgwgASgCHCgCNHFBAXRqIAEoAhwoAkQgASgCHCgCSEEBdGovAQA7AQAgASgCHCgCRCABKAIcKAJIQQF0aiABKAIMOwEAIAEgASgCDEEBajYCDCABKAIcIgAgACgCtC1BAWs2ArQtIAEoAhwoAnQgASgCHCgCtC1qQQNPDQELCwsgASgCHCgCdEGGAkkEfyABKAIcKAIAKAIEQQBHBUEAC0EBcQ0BCwsgASgCHCgCwC0gASgCHCgCPEkEQCABIAEoAhwoAmwgASgCHCgCdGo2AggCQCABKAIcKALALSABKAIISQRAIAEgASgCHCgCPCABKAIIazYCBCABKAIEQYICSwRAIAFBggI2AgQLIAEoAhwoAjggASgCCGpBACABKAIEEDMgASgCHCABKAIIIAEoAgRqNgLALQwBCyABKAIcKALALSABKAIIQYICakkEQCABIAEoAghBggJqIAEoAhwoAsAtazYCBCABKAIEIAEoAhwoAjwgASgCHCgCwC1rSwRAIAEgASgCHCgCPCABKAIcKALALWs2AgQLIAEoAhwoAjggASgCHCgCwC1qQQAgASgCBBAzIAEoAhwiACABKAIEIAAoAsAtajYCwC0LCwsgAUEgaiQAC4YFAQF/IwBBIGsiBCQAIAQgADYCHCAEIAE2AhggBCACNgIUIAQgAzYCECAEQQM2AgwCQCAEKAIcKAK8LUEQIAQoAgxrSgRAIAQgBCgCEDYCCCAEKAIcIgAgAC8BuC0gBCgCCEH//wNxIAQoAhwoArwtdHI7AbgtIAQoAhwvAbgtQf8BcSEBIAQoAhwoAgghAiAEKAIcIgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAhwvAbgtQQh2IQEgBCgCHCgCCCECIAQoAhwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCHCAEKAIIQf//A3FBECAEKAIcKAK8LWt1OwG4LSAEKAIcIgAgACgCvC0gBCgCDEEQa2o2ArwtDAELIAQoAhwiACAALwG4LSAEKAIQQf//A3EgBCgCHCgCvC10cjsBuC0gBCgCHCIAIAQoAgwgACgCvC1qNgK8LQsgBCgCHBC9ASAEKAIUQf8BcSEBIAQoAhwoAgghAiAEKAIcIgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAhRB//8DcUEIdiEBIAQoAhwoAgghAiAEKAIcIgMoAhQhACADIABBAWo2AhQgACACaiABOgAAIAQoAhRBf3NB/wFxIQEgBCgCHCgCCCECIAQoAhwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCFEF/c0H//wNxQQh2IQEgBCgCHCgCCCECIAQoAhwiAygCFCEAIAMgAEEBajYCFCAAIAJqIAE6AAAgBCgCHCgCCCAEKAIcKAIUaiAEKAIYIAQoAhQQGRogBCgCHCIAIAQoAhQgACgCFGo2AhQgBEEgaiQAC6sBAQF/IwBBEGsiASQAIAEgADYCDCABKAIMKAIIBEAgASgCDCgCCBAbIAEoAgxBADYCCAsCQCABKAIMKAIERQ0AIAEoAgwoAgQoAgBBAXFFDQAgASgCDCgCBCgCEEF+Rw0AIAEoAgwoAgQiACAAKAIAQX5xNgIAIAEoAgwoAgQoAgBFBEAgASgCDCgCBBA3IAEoAgxBADYCBAsLIAEoAgxBADoADCABQRBqJAAL8QMBAX8jAEHQAGsiCCQAIAggADYCSCAIIAE3A0AgCCACNwM4IAggAzYCNCAIIAQ6ADMgCCAFNgIsIAggBjcDICAIIAc2AhwCQAJAAkAgCCgCSEUNACAIKQNAIAgpA0AgCCkDOHxWDQAgCCgCLA0BIAgpAyBQDQELIAgoAhxBEkEAEBQgCEEANgJMDAELIAhBgAEQGCIANgIYIABFBEAgCCgCHEEOQQAQFCAIQQA2AkwMAQsgCCgCGCAIKQNANwMAIAgoAhggCCkDQCAIKQM4fDcDCCAIKAIYQShqEDsgCCgCGCAILQAzOgBgIAgoAhggCCgCLDYCECAIKAIYIAgpAyA3AxgjAEEQayIAIAgoAhhB5ABqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIwBBEGsiACAIKAJINgIMIAAoAgwpAxhC/4EBgyEBIAhBfzYCCCAIQQc2AgQgCEEONgIAQRAgCBA0IAGEIQEgCCgCGCABNwNwIAgoAhggCCgCGCkDcELAAINCAFI6AHggCCgCNARAIAgoAhhBKGogCCgCNCAIKAIcEIQBQQBIBEAgCCgCGBAVIAhBADYCTAwCCwsgCCAIKAJIQQEgCCgCGCAIKAIcEIEBNgJMCyAIKAJMIQAgCEHQAGokACAAC9MEAQJ/IwBBMGsiAyQAIAMgADYCJCADIAE3AxggAyACNgIUAkAgAygCJCgCQCADKQMYp0EEdGooAgBFBEAgAygCFEEUQQAQFCADQgA3AygMAQsgAyADKAIkKAJAIAMpAxinQQR0aigCACkDSDcDCCADKAIkKAIAIAMpAwhBABAnQQBIBEAgAygCFCADKAIkKAIAEBcgA0IANwMoDAELIAMoAiQoAgAhAiADKAIUIQQjAEEwayIAJAAgACACNgIoIABBgAI7ASYgACAENgIgIAAgAC8BJkGAAnFBAEc6ABsgAEEeQS4gAC0AG0EBcRs2AhwCQCAAKAIoQRpBHCAALQAbQQFxG6xBARAnQQBIBEAgACgCICAAKAIoEBcgAEF/NgIsDAELIAAgACgCKEEEQQYgAC0AG0EBcRusIABBDmogACgCIBBCIgI2AgggAkUEQCAAQX82AiwMAQsgAEEANgIUA0AgACgCFEECQQMgAC0AG0EBcRtIBEAgACAAKAIIEB1B//8DcSAAKAIcajYCHCAAIAAoAhRBAWo2AhQMAQsLIAAoAggQR0EBcUUEQCAAKAIgQRRBABAUIAAoAggQFiAAQX82AiwMAQsgACgCCBAWIAAgACgCHDYCLAsgACgCLCECIABBMGokACADIAIiADYCBCAAQQBIBEAgA0IANwMoDAELIAMpAwggAygCBK18Qv///////////wBWBEAgAygCFEEEQRYQFCADQgA3AygMAQsgAyADKQMIIAMoAgStfDcDKAsgAykDKCEBIANBMGokACABC20BAX8jAEEgayIEJAAgBCAANgIYIAQgATYCFCAEIAI2AhAgBCADNgIMAkAgBCgCGEUEQCAEQQA2AhwMAQsgBCAEKAIUIAQoAhAgBCgCDCAEKAIYQQhqEIEBNgIcCyAEKAIcIQAgBEEgaiQAIAALVQEBfyMAQRBrIgEkACABIAA2AgwCQAJAIAEoAgwoAiRBAUYNACABKAIMKAIkQQJGDQAMAQsgASgCDEEAQgBBChAgGiABKAIMQQA2AiQLIAFBEGokAAv/AgEBfyMAQTBrIgUkACAFIAA2AiggBSABNgIkIAUgAjYCICAFIAM6AB8gBSAENgIYAkACQCAFKAIgDQAgBS0AH0EBcQ0AIAVBADYCLAwBCyAFIAUoAiAgBS0AH0EBcWoQGDYCFCAFKAIURQRAIAUoAhhBDkEAEBQgBUEANgIsDAELAkAgBSgCKARAIAUgBSgCKCAFKAIgrRAeNgIQIAUoAhBFBEAgBSgCGEEOQQAQFCAFKAIUEBUgBUEANgIsDAMLIAUoAhQgBSgCECAFKAIgEBkaDAELIAUoAiQgBSgCFCAFKAIgrSAFKAIYEGRBAEgEQCAFKAIUEBUgBUEANgIsDAILCyAFLQAfQQFxBEAgBSgCFCAFKAIgakEAOgAAIAUgBSgCFDYCDANAIAUoAgwgBSgCFCAFKAIgakkEQCAFKAIMLQAARQRAIAUoAgxBIDoAAAsgBSAFKAIMQQFqNgIMDAELCwsgBSAFKAIUNgIsCyAFKAIsIQAgBUEwaiQAIAALwgEBAX8jAEEwayIEJAAgBCAANgIoIAQgATYCJCAEIAI3AxggBCADNgIUAkAgBCkDGEL///////////8AVgRAIAQoAhRBFEEAEBQgBEF/NgIsDAELIAQgBCgCKCAEKAIkIAQpAxgQKyICNwMIIAJCAFMEQCAEKAIUIAQoAigQFyAEQX82AiwMAQsgBCkDCCAEKQMYUwRAIAQoAhRBEUEAEBQgBEF/NgIsDAELIARBADYCLAsgBCgCLCEAIARBMGokACAAC3cBAX8jAEEQayICIAA2AgggAiABNgIEAkACQAJAIAIoAggpAyhC/////w9aDQAgAigCCCkDIEL/////D1oNACACKAIEQYAEcUUNASACKAIIKQNIQv////8PVA0BCyACQQE6AA8MAQsgAkEAOgAPCyACLQAPQQFxC/4BAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE2AhQgBSACOwESIAVBADsBECAFIAM2AgwgBSAENgIIIAVBADYCBAJAA0AgBSgCGARAAkAgBSgCGC8BCCAFLwESRw0AIAUoAhgoAgQgBSgCDHFBgAZxRQ0AIAUoAgQgBS8BEEgEQCAFIAUoAgRBAWo2AgQMAQsgBSgCFARAIAUoAhQgBSgCGC8BCjsBAAsgBSgCGC8BCgRAIAUgBSgCGCgCDDYCHAwECyAFQZAVNgIcDAMLIAUgBSgCGCgCADYCGAwBCwsgBSgCCEEJQQAQFCAFQQA2AhwLIAUoAhwhACAFQSBqJAAgAAumAQEBfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkAgAigCCC0AKEEBcQRAIAJBfzYCDAwBCyACKAIIKAIABEAgAigCCCgCACACKAIEEGdBAEgEQCACKAIIQQxqIAIoAggoAgAQFyACQX82AgwMAgsLIAIoAgggAkEEakIEQRMQIEIAUwRAIAJBfzYCDAwBCyACQQA2AgwLIAIoAgwhACACQRBqJAAgAAuNCAIBfwF+IwBBkAFrIgMkACADIAA2AoQBIAMgATYCgAEgAyACNgJ8IAMQUwJAIAMoAoABKQMIQgBSBEAgAyADKAKAASgCACgCACkDSDcDYCADIAMoAoABKAIAKAIAKQNINwNoDAELIANCADcDYCADQgA3A2gLIANCADcDcAJAA0AgAykDcCADKAKAASkDCFQEQCADKAKAASgCACADKQNwp0EEdGooAgApA0ggAykDaFQEQCADIAMoAoABKAIAIAMpA3CnQQR0aigCACkDSDcDaAsgAykDaCADKAKAASkDIFYEQCADKAJ8QRNBABAUIANCfzcDiAEMAwsgAyADKAKAASgCACADKQNwp0EEdGooAgApA0ggAygCgAEoAgAgAykDcKdBBHRqKAIAKQMgfCADKAKAASgCACADKQNwp0EEdGooAgAoAjAQUUH//wNxrXxCHnw3A1ggAykDWCADKQNgVgRAIAMgAykDWDcDYAsgAykDYCADKAKAASkDIFYEQCADKAJ8QRNBABAUIANCfzcDiAEMAwsgAygChAEoAgAgAygCgAEoAgAgAykDcKdBBHRqKAIAKQNIQQAQJ0EASARAIAMoAnwgAygChAEoAgAQFyADQn83A4gBDAMLIAMgAygChAEoAgBBAEEBIAMoAnwQjAFCf1EEQCADEFIgA0J/NwOIAQwDCwJ/IAMoAoABKAIAIAMpA3CnQQR0aigCACEBIwBBEGsiACQAIAAgATYCCCAAIAM2AgQCQAJAAkAgACgCCC8BCiAAKAIELwEKSA0AIAAoAggoAhAgACgCBCgCEEcNACAAKAIIKAIUIAAoAgQoAhRHDQAgACgCCCgCMCAAKAIEKAIwEIYBDQELIABBfzYCDAwBCwJAAkAgACgCCCgCGCAAKAIEKAIYRw0AIAAoAggpAyAgACgCBCkDIFINACAAKAIIKQMoIAAoAgQpAyhRDQELAkACQCAAKAIELwEMQQhxRQ0AIAAoAgQoAhgNACAAKAIEKQMgQgBSDQAgACgCBCkDKFANAQsgAEF/NgIMDAILCyAAQQA2AgwLIAAoAgwhASAAQRBqJAAgAQsEQCADKAJ8QRVBABAUIAMQUiADQn83A4gBDAMFIAMoAoABKAIAIAMpA3CnQQR0aigCACgCNCADKAI0EJUBIQAgAygCgAEoAgAgAykDcKdBBHRqKAIAIAA2AjQgAygCgAEoAgAgAykDcKdBBHRqKAIAQQE6AAQgA0EANgI0IAMQUiADIAMpA3BCAXw3A3AMAgsACwsgAwJ+IAMpA2AgAykDaH1C////////////AFQEQCADKQNgIAMpA2h9DAELQv///////////wALNwOIAQsgAykDiAEhBCADQZABaiQAIAQL1AQBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAygCECEBIwBBEGsiACQAIAAgATYCCCAAQdgAEBg2AgQCQCAAKAIERQRAIAAoAghBDkEAEBQgAEEANgIMDAELIAAoAgghAiMAQRBrIgEkACABIAI2AgggAUEYEBgiAjYCBAJAIAJFBEAgASgCCEEOQQAQFCABQQA2AgwMAQsgASgCBEEANgIAIAEoAgRCADcDCCABKAIEQQA2AhAgASABKAIENgIMCyABKAIMIQIgAUEQaiQAIAAoAgQgAjYCUCACRQRAIAAoAgQQFSAAQQA2AgwMAQsgACgCBEEANgIAIAAoAgRBADYCBCMAQRBrIgEgACgCBEEIajYCDCABKAIMQQA2AgAgASgCDEEANgIEIAEoAgxBADYCCCAAKAIEQQA2AhggACgCBEEANgIUIAAoAgRBADYCHCAAKAIEQQA2AiQgACgCBEEANgIgIAAoAgRBADoAKCAAKAIEQgA3AzggACgCBEIANwMwIAAoAgRBADYCQCAAKAIEQQA2AkggACgCBEEANgJEIAAoAgRBADYCTCAAKAIEQQA2AlQgACAAKAIENgIMCyAAKAIMIQEgAEEQaiQAIAMgASIANgIMAkAgAEUEQCADQQA2AhwMAQsgAygCDCADKAIYNgIAIAMoAgwgAygCFDYCBCADKAIUQRBxBEAgAygCDCIAIAAoAhRBAnI2AhQgAygCDCIAIAAoAhhBAnI2AhgLIAMgAygCDDYCHAsgAygCHCEAIANBIGokACAAC9UBAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCAJAAkAgBCkDEEL///////////8AVwRAIAQpAxBCgICAgICAgICAf1kNAQsgBCgCCEEEQT0QFCAEQX82AhwMAQsCfyAEKQMQIQEgBCgCDCEAIAQoAhgiAigCTEF/TARAIAIgASAAEKABDAELIAIgASAAEKABC0EASARAIAQoAghBBEG0mwEoAgAQFCAEQX82AhwMAQsgBEEANgIcCyAEKAIcIQAgBEEgaiQAIAALJABBACAAEAUiACAAQRtGGyIABH9BtJsBIAA2AgBBAAVBAAsaC3ABAX8jAEEQayIDJAAgAwJ/IAFBwABxRQRAQQAgAUGAgIQCcUGAgIQCRw0BGgsgAyACQQRqNgIMIAIoAgALNgIAIAAgAUGAgAJyIAMQECIAQYFgTwRAQbSbAUEAIABrNgIAQX8hAAsgA0EQaiQAIAALMwEBfwJ/IAAQByIBQWFGBEAgABARIQELIAFBgWBPCwR/QbSbAUEAIAFrNgIAQX8FIAELC2kBAn8CQCAAKAIUIAAoAhxNDQAgAEEAQQAgACgCJBEBABogACgCFA0AQX8PCyAAKAIEIgEgACgCCCICSQRAIAAgASACa6xBASAAKAIoEQ8AGgsgAEEANgIcIABCADcDECAAQgA3AgRBAAvaAwEGfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiBCQAIARBCGpBkIcBQZABEBkaIAQgADYCNCAEIAA2AhwgBEF+IABrIgNB/////wcgA0H/////B0kbIgY2AjggBCAAIAZqIgA2AiQgBCAANgIYIARBCGohACMAQdABayIDJAAgAyACNgLMASADQaABakEAQSgQMyADIAMoAswBNgLIAQJAQQAgASADQcgBaiADQdAAaiADQaABahBwQQBIDQAgACgCTEEATiEHIAAoAgAhAiAALABKQQBMBEAgACACQV9xNgIACyACQSBxIQgCfyAAKAIwBEAgACABIANByAFqIANB0ABqIANBoAFqEHAMAQsgAEHQADYCMCAAIANB0ABqNgIQIAAgAzYCHCAAIAM2AhQgACgCLCECIAAgAzYCLCAAIAEgA0HIAWogA0HQAGogA0GgAWoQcCACRQ0AGiAAQQBBACAAKAIkEQEAGiAAQQA2AjAgACACNgIsIABBADYCHCAAQQA2AhAgACgCFBogAEEANgIUQQALGiAAIAAoAgAgCHI2AgAgB0UNAAsgA0HQAWokACAGBEAgBCgCHCIAIAAgBCgCGEZrQQA6AAALIARBoAFqJAAgBUEQaiQAC4wSAg9/AX4jAEHQAGsiBSQAIAUgATYCTCAFQTdqIRMgBUE4aiEQQQAhAQNAAkAgDUEASA0AQf////8HIA1rIAFIBEBBtJsBQT02AgBBfyENDAELIAEgDWohDQsgBSgCTCIHIQECQAJAAkACQAJAAkACQAJAIAUCfwJAIActAAAiBgRAA0ACQAJAIAZB/wFxIgZFBEAgASEGDAELIAZBJUcNASABIQYDQCABLQABQSVHDQEgBSABQQJqIgg2AkwgBkEBaiEGIAEtAAIhDiAIIQEgDkElRg0ACwsgBiAHayEBIAAEQCAAIAcgARAiCyABDQ0gBSgCTCEBIAUoAkwsAAFBMGtBCk8NAyABLQACQSRHDQMgASwAAUEwayEPQQEhESABQQNqDAQLIAUgAUEBaiIINgJMIAEtAAEhBiAIIQEMAAsACyANIQsgAA0IIBFFDQJBASEBA0AgBCABQQJ0aigCACIABEAgAyABQQN0aiAAIAIQqAFBASELIAFBAWoiAUEKRw0BDAoLC0EBIQsgAUEKTw0IA0AgBCABQQJ0aigCAA0IIAFBAWoiAUEKRw0ACwwIC0F/IQ8gAUEBagsiATYCTEEAIQgCQCABLAAAIgxBIGsiBkEfSw0AQQEgBnQiBkGJ0QRxRQ0AA0ACQCAFIAFBAWoiCDYCTCABLAABIgxBIGsiAUEgTw0AQQEgAXQiAUGJ0QRxRQ0AIAEgBnIhBiAIIQEMAQsLIAghASAGIQgLAkAgDEEqRgRAIAUCfwJAIAEsAAFBMGtBCk8NACAFKAJMIgEtAAJBJEcNACABLAABQQJ0IARqQcABa0EKNgIAIAEsAAFBA3QgA2pBgANrKAIAIQpBASERIAFBA2oMAQsgEQ0IQQAhEUEAIQogAARAIAIgAigCACIBQQRqNgIAIAEoAgAhCgsgBSgCTEEBagsiATYCTCAKQX9KDQFBACAKayEKIAhBgMAAciEIDAELIAVBzABqEKcBIgpBAEgNBiAFKAJMIQELQX8hCQJAIAEtAABBLkcNACABLQABQSpGBEACQCABLAACQTBrQQpPDQAgBSgCTCIBLQADQSRHDQAgASwAAkECdCAEakHAAWtBCjYCACABLAACQQN0IANqQYADaygCACEJIAUgAUEEaiIBNgJMDAILIBENByAABH8gAiACKAIAIgFBBGo2AgAgASgCAAVBAAshCSAFIAUoAkxBAmoiATYCTAwBCyAFIAFBAWo2AkwgBUHMAGoQpwEhCSAFKAJMIQELQQAhBgNAIAYhEkF/IQsgASwAAEHBAGtBOUsNByAFIAFBAWoiDDYCTCABLAAAIQYgDCEBIAYgEkE6bGpB74IBai0AACIGQQFrQQhJDQALIAZBE0YNAiAGRQ0GIA9BAE4EQCAEIA9BAnRqIAY2AgAgBSADIA9BA3RqKQMANwNADAQLIAANAQtBACELDAULIAVBQGsgBiACEKgBIAUoAkwhDAwCCyAPQX9KDQMLQQAhASAARQ0ECyAIQf//e3EiDiAIIAhBgMAAcRshBkEAIQtBpAghDyAQIQgCQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQCAMQQFrLAAAIgFBX3EgASABQQ9xQQNGGyABIBIbIgFB2ABrDiEEEhISEhISEhIOEg8GDg4OEgYSEhISAgUDEhIJEgESEgQACwJAIAFBwQBrDgcOEgsSDg4OAAsgAUHTAEYNCQwRCyAFKQNAIRRBpAgMBQtBACEBAkACQAJAAkACQAJAAkAgEkH/AXEOCAABAgMEFwUGFwsgBSgCQCANNgIADBYLIAUoAkAgDTYCAAwVCyAFKAJAIA2sNwMADBQLIAUoAkAgDTsBAAwTCyAFKAJAIA06AAAMEgsgBSgCQCANNgIADBELIAUoAkAgDaw3AwAMEAsgCUEIIAlBCEsbIQkgBkEIciEGQfgAIQELIBAhByABQSBxIQ4gBSkDQCIUUEUEQANAIAdBAWsiByAUp0EPcUGAhwFqLQAAIA5yOgAAIBRCD1YhDCAUQgSIIRQgDA0ACwsgBSkDQFANAyAGQQhxRQ0DIAFBBHZBpAhqIQ9BAiELDAMLIBAhASAFKQNAIhRQRQRAA0AgAUEBayIBIBSnQQdxQTByOgAAIBRCB1YhByAUQgOIIRQgBw0ACwsgASEHIAZBCHFFDQIgCSAQIAdrIgFBAWogASAJSBshCQwCCyAFKQNAIhRCf1cEQCAFQgAgFH0iFDcDQEEBIQtBpAgMAQsgBkGAEHEEQEEBIQtBpQgMAQtBpghBpAggBkEBcSILGwshDyAUIBAQRCEHCyAGQf//e3EgBiAJQX9KGyEGAkAgBSkDQCIUQgBSDQAgCQ0AQQAhCSAQIQcMCgsgCSAUUCAQIAdraiIBIAEgCUgbIQkMCQsgBSgCQCIBQdgSIAEbIgdBACAJEKsBIgEgByAJaiABGyEIIA4hBiABIAdrIAkgARshCQwICyAJBEAgBSgCQAwCC0EAIQEgAEEgIApBACAGECYMAgsgBUEANgIMIAUgBSkDQD4CCCAFIAVBCGo2AkBBfyEJIAVBCGoLIQhBACEBAkADQCAIKAIAIgdFDQECQCAFQQRqIAcQqgEiB0EASCIODQAgByAJIAFrSw0AIAhBBGohCCAJIAEgB2oiAUsNAQwCCwtBfyELIA4NBQsgAEEgIAogASAGECYgAUUEQEEAIQEMAQtBACEIIAUoAkAhDANAIAwoAgAiB0UNASAFQQRqIAcQqgEiByAIaiIIIAFKDQEgACAFQQRqIAcQIiAMQQRqIQwgASAISw0ACwsgAEEgIAogASAGQYDAAHMQJiAKIAEgASAKSBshAQwFCyAAIAUrA0AgCiAJIAYgAUEXERkAIQEMBAsgBSAFKQNAPAA3QQEhCSATIQcgDiEGDAILQX8hCwsgBUHQAGokACALDwsgAEEgIAsgCCAHayIOIAkgCSAOSBsiDGoiCCAKIAggCkobIgEgCCAGECYgACAPIAsQIiAAQTAgASAIIAZBgIAEcxAmIABBMCAMIA5BABAmIAAgByAOECIgAEEgIAEgCCAGQYDAAHMQJgwACwALkAIBA38CQCABIAIoAhAiBAR/IAQFQQAhBAJ/IAIgAi0ASiIDQQFrIANyOgBKIAIoAgAiA0EIcQRAIAIgA0EgcjYCAEF/DAELIAJCADcCBCACIAIoAiwiAzYCHCACIAM2AhQgAiADIAIoAjBqNgIQQQALDQEgAigCEAsgAigCFCIFa0sEQCACIAAgASACKAIkEQEADwsCfyACLABLQX9KBEAgASEEA0AgASAEIgNFDQIaIAAgA0EBayIEai0AAEEKRw0ACyACIAAgAyACKAIkEQEAIgQgA0kNAiAAIANqIQAgAigCFCEFIAEgA2sMAQsgAQshBCAFIAAgBBAZGiACIAIoAhQgBGo2AhQgASEECyAEC0gCAX8BfiMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBCADKAIMQQhqEFghBCADQRBqJAAgBAt3AQF/IwBBEGsiASAANgIIIAFChSo3AwACQCABKAIIRQRAIAFBADYCDAwBCwNAIAEoAggtAAAEQCABIAEoAggtAACtIAEpAwBCIX58Qv////8PgzcDACABIAEoAghBAWo2AggMAQsLIAEgASkDAD4CDAsgASgCDAuHBQEBfyMAQTBrIgUkACAFIAA2AiggBSABNgIkIAUgAjcDGCAFIAM2AhQgBSAENgIQAkACQAJAIAUoAihFDQAgBSgCJEUNACAFKQMYQv///////////wBYDQELIAUoAhBBEkEAEBQgBUEAOgAvDAELIAUoAigoAgBFBEAgBSgCKEGAAiAFKAIQEFpBAXFFBEAgBUEAOgAvDAILCyAFIAUoAiQQczYCDCAFIAUoAgwgBSgCKCgCAHA2AgggBSAFKAIoKAIQIAUoAghBAnRqKAIANgIEA0ACQCAFKAIERQ0AAkAgBSgCBCgCHCAFKAIMRw0AIAUoAiQgBSgCBCgCABBbDQACQAJAIAUoAhRBCHEEQCAFKAIEKQMIQn9SDQELIAUoAgQpAxBCf1ENAQsgBSgCEEEKQQAQFCAFQQA6AC8MBAsMAQsgBSAFKAIEKAIYNgIEDAELCyAFKAIERQRAIAVBIBAYIgA2AgQgAEUEQCAFKAIQQQ5BABAUIAVBADoALwwCCyAFKAIEIAUoAiQ2AgAgBSgCBCAFKAIoKAIQIAUoAghBAnRqKAIANgIYIAUoAigoAhAgBSgCCEECdGogBSgCBDYCACAFKAIEIAUoAgw2AhwgBSgCBEJ/NwMIIAUoAigiACAAKQMIQgF8NwMIAkAgBSgCKCIAKQMIuiAAKAIAuEQAAAAAAADoP6JkRQ0AIAUoAigoAgBBgICAgHhPDQAgBSgCKCAFKAIoKAIAQQF0IAUoAhAQWkEBcUUEQCAFQQA6AC8MAwsLCyAFKAIUQQhxBEAgBSgCBCAFKQMYNwMICyAFKAIEIAUpAxg3AxAgBUEBOgAvCyAFLQAvQQFxIQAgBUEwaiQAIAAL1BEBAX8jAEGwAWsiBiQAIAYgADYCqAEgBiABNgKkASAGIAI2AqABIAYgAzYCnAEgBiAENgKYASAGIAU2ApQBIAZBADYCkAEDQCAGKAKQAUEPS0UEQCAGQSBqIAYoApABQQF0akEAOwEAIAYgBigCkAFBAWo2ApABDAELCyAGQQA2AowBA0AgBigCjAEgBigCoAFPRQRAIAZBIGogBigCpAEgBigCjAFBAXRqLwEAQQF0aiIAIAAvAQBBAWo7AQAgBiAGKAKMAUEBajYCjAEMAQsLIAYgBigCmAEoAgA2AoABIAZBDzYChAEDQAJAIAYoAoQBQQFJDQAgBkEgaiAGKAKEAUEBdGovAQANACAGIAYoAoQBQQFrNgKEAQwBCwsgBigCgAEgBigChAFLBEAgBiAGKAKEATYCgAELAkAgBigChAFFBEAgBkHAADoAWCAGQQE6AFkgBkEAOwFaIAYoApwBIgEoAgAhACABIABBBGo2AgAgACAGQdgAaigBADYBACAGKAKcASIBKAIAIQAgASAAQQRqNgIAIAAgBkHYAGooAQA2AQAgBigCmAFBATYCACAGQQA2AqwBDAELIAZBATYCiAEDQAJAIAYoAogBIAYoAoQBTw0AIAZBIGogBigCiAFBAXRqLwEADQAgBiAGKAKIAUEBajYCiAEMAQsLIAYoAoABIAYoAogBSQRAIAYgBigCiAE2AoABCyAGQQE2AnQgBkEBNgKQAQNAIAYoApABQQ9NBEAgBiAGKAJ0QQF0NgJ0IAYgBigCdCAGQSBqIAYoApABQQF0ai8BAGs2AnQgBigCdEEASARAIAZBfzYCrAEMAwUgBiAGKAKQAUEBajYCkAEMAgsACwsCQCAGKAJ0QQBMDQAgBigCqAEEQCAGKAKEAUEBRg0BCyAGQX82AqwBDAELIAZBADsBAiAGQQE2ApABA0AgBigCkAFBD09FBEAgBigCkAFBAWpBAXQgBmogBigCkAFBAXQgBmovAQAgBkEgaiAGKAKQAUEBdGovAQBqOwEAIAYgBigCkAFBAWo2ApABDAELCyAGQQA2AowBA0AgBigCjAEgBigCoAFJBEAgBigCpAEgBigCjAFBAXRqLwEABEAgBigClAEhASAGKAKkASAGKAKMASICQQF0ai8BAEEBdCAGaiIDLwEAIQAgAyAAQQFqOwEAIABB//8DcUEBdCABaiACOwEACyAGIAYoAowBQQFqNgKMAQwBCwsCQAJAAkACQCAGKAKoAQ4CAAECCyAGIAYoApQBIgA2AkwgBiAANgJQIAZBFDYCSAwCCyAGQYDwADYCUCAGQcDwADYCTCAGQYECNgJIDAELIAZBgPEANgJQIAZBwPEANgJMIAZBADYCSAsgBkEANgJsIAZBADYCjAEgBiAGKAKIATYCkAEgBiAGKAKcASgCADYCVCAGIAYoAoABNgJ8IAZBADYCeCAGQX82AmAgBkEBIAYoAoABdDYCcCAGIAYoAnBBAWs2AlwCQAJAIAYoAqgBQQFGBEAgBigCcEHUBksNAQsgBigCqAFBAkcNASAGKAJwQdAETQ0BCyAGQQE2AqwBDAELA0AgBiAGKAKQASAGKAJ4azoAWQJAIAYoAkggBigClAEgBigCjAFBAXRqLwEAQQFqSwRAIAZBADoAWCAGIAYoApQBIAYoAowBQQF0ai8BADsBWgwBCwJAIAYoApQBIAYoAowBQQF0ai8BACAGKAJITwRAIAYgBigCTCAGKAKUASAGKAKMAUEBdGovAQAgBigCSGtBAXRqLwEAOgBYIAYgBigCUCAGKAKUASAGKAKMAUEBdGovAQAgBigCSGtBAXRqLwEAOwFaDAELIAZB4AA6AFggBkEAOwFaCwsgBkEBIAYoApABIAYoAnhrdDYCaCAGQQEgBigCfHQ2AmQgBiAGKAJkNgKIAQNAIAYgBigCZCAGKAJoazYCZCAGKAJUIAYoAmQgBigCbCAGKAJ4dmpBAnRqIAZB2ABqKAEANgEAIAYoAmQNAAsgBkEBIAYoApABQQFrdDYCaANAIAYoAmwgBigCaHEEQCAGIAYoAmhBAXY2AmgMAQsLAkAgBigCaARAIAYgBigCbCAGKAJoQQFrcTYCbCAGIAYoAmggBigCbGo2AmwMAQsgBkEANgJsCyAGIAYoAowBQQFqNgKMASAGQSBqIAYoApABQQF0aiIBLwEAQQFrIQAgASAAOwEAAkAgAEH//wNxRQRAIAYoApABIAYoAoQBRg0BIAYgBigCpAEgBigClAEgBigCjAFBAXRqLwEAQQF0ai8BADYCkAELAkAgBigCkAEgBigCgAFNDQAgBigCYCAGKAJsIAYoAlxxRg0AIAYoAnhFBEAgBiAGKAKAATYCeAsgBiAGKAJUIAYoAogBQQJ0ajYCVCAGIAYoApABIAYoAnhrNgJ8IAZBASAGKAJ8dDYCdANAAkAgBigChAEgBigCfCAGKAJ4ak0NACAGIAYoAnQgBkEgaiAGKAJ8IAYoAnhqQQF0ai8BAGs2AnQgBigCdEEATA0AIAYgBigCfEEBajYCfCAGIAYoAnRBAXQ2AnQMAQsLIAYgBigCcEEBIAYoAnx0ajYCcAJAAkAgBigCqAFBAUYEQCAGKAJwQdQGSw0BCyAGKAKoAUECRw0BIAYoAnBB0ARNDQELIAZBATYCrAEMBAsgBiAGKAJsIAYoAlxxNgJgIAYoApwBKAIAIAYoAmBBAnRqIAYoAnw6AAAgBigCnAEoAgAgBigCYEECdGogBigCgAE6AAEgBigCnAEoAgAgBigCYEECdGogBigCVCAGKAKcASgCAGtBAnU7AQILDAELCyAGKAJsBEAgBkHAADoAWCAGIAYoApABIAYoAnhrOgBZIAZBADsBWiAGKAJUIAYoAmxBAnRqIAZB2ABqKAEANgEACyAGKAKcASIAIAAoAgAgBigCcEECdGo2AgAgBigCmAEgBigCgAE2AgAgBkEANgKsAQsgBigCrAEhACAGQbABaiQAIAALsQIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYKAIENgIMIAMoAgwgAygCEEsEQCADIAMoAhA2AgwLAkAgAygCDEUEQCADQQA2AhwMAQsgAygCGCIAIAAoAgQgAygCDGs2AgQgAygCFCADKAIYKAIAIAMoAgwQGRoCQCADKAIYKAIcKAIYQQFGBEAgAygCGCgCMCADKAIUIAMoAgwQPSEAIAMoAhggADYCMAwBCyADKAIYKAIcKAIYQQJGBEAgAygCGCgCMCADKAIUIAMoAgwQGiEAIAMoAhggADYCMAsLIAMoAhgiACADKAIMIAAoAgBqNgIAIAMoAhgiACADKAIMIAAoAghqNgIIIAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzYBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQXiABKAIMKAIAEDcgASgCDCgCBBA3IAFBEGokAAvtAQEBfyMAQRBrIgEgADYCCAJAAkACQCABKAIIRQ0AIAEoAggoAiBFDQAgASgCCCgCJA0BCyABQQE2AgwMAQsgASABKAIIKAIcNgIEAkACQCABKAIERQ0AIAEoAgQoAgAgASgCCEcNACABKAIEKAIEQSpGDQEgASgCBCgCBEE5Rg0BIAEoAgQoAgRBxQBGDQEgASgCBCgCBEHJAEYNASABKAIEKAIEQdsARg0BIAEoAgQoAgRB5wBGDQEgASgCBCgCBEHxAEYNASABKAIEKAIEQZoFRg0BCyABQQE2AgwMAQsgAUEANgIMCyABKAIMC9IEAQF/IwBBIGsiAyAANgIcIAMgATYCGCADIAI2AhQgAyADKAIcQdwWaiADKAIUQQJ0aigCADYCECADIAMoAhRBAXQ2AgwDQAJAIAMoAgwgAygCHCgC0ChKDQACQCADKAIMIAMoAhwoAtAoTg0AIAMoAhggAygCHCADKAIMQQJ0akHgFmooAgBBAnRqLwEAIAMoAhggAygCHEHcFmogAygCDEECdGooAgBBAnRqLwEATgRAIAMoAhggAygCHCADKAIMQQJ0akHgFmooAgBBAnRqLwEAIAMoAhggAygCHEHcFmogAygCDEECdGooAgBBAnRqLwEARw0BIAMoAhwgAygCDEECdGpB4BZqKAIAIAMoAhxB2Chqai0AACADKAIcQdwWaiADKAIMQQJ0aigCACADKAIcQdgoamotAABKDQELIAMgAygCDEEBajYCDAsgAygCGCADKAIQQQJ0ai8BACADKAIYIAMoAhxB3BZqIAMoAgxBAnRqKAIAQQJ0ai8BAEgNAAJAIAMoAhggAygCEEECdGovAQAgAygCGCADKAIcQdwWaiADKAIMQQJ0aigCAEECdGovAQBHDQAgAygCECADKAIcQdgoamotAAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCGCABKAIUSQtBAXENAAsgASgCKEGCAiABKAIUIAEoAhhrazYCYCABKAIoKAJgIAEoAigoAnRLBEAgASgCKCABKAIoKAJ0NgJgCwsLAkAgASgCKCgCYEEDTwRAIAEgASgCKCgCYEEDazoAEyABQQE7ARAgASgCKCICKAKkLSACKAKgLUEBdGogAS8BEDsBACABLQATIQMgASgCKCICKAKYLSEEIAIgAigCoC0iAkEBajYCoC0gAiAEaiADOgAAIAEgAS8BEEEBazsBECABKAIoIAEtABNB0N0Aai0AAEECdGpBmAlqIgIgAi8BAEEBajsBACABKAIoQYgTagJ/IAEvARBBgAJJBEAgAS8BEC0A0FkMAQsgAS8BEEEHdkGAAmotANBZC0ECdGoiAiACLwEAQQFqOwEAIAEgASgCKCgCoC0gASgCKCgCnC1BAWtGNgIgIAEoAigiAiACKAJ0IAEoAigoAmBrNgJ0IAEoAigiAiABKAIoKAJgIAIoAmxqNgJsIAEoAihBADYCYAwBCyABIAEoAigiAigCOCACKAJsai0AADoADyABKAIoIgIoAqQtIAIoAqAtQQF0akEAOwEAIAEtAA8hAyABKAIoIgIoApgtIQQgAiACKAKgLSICQQFqNgKgLSACIARqIAM6AAAgASgCKCABLQAPQQJ0aiICIAIvAZQBQQFqOwGUASABIAEoAigoAqAtIAEoAigoApwtQQFrRjYCICABKAIoIgIgAigCdEEBazYCdCABKAIoIgIgAigCbEEBajYCbAsgASgCIARAIAEoAigCfyABKAIoKAJcQQBOBEAgASgCKCgCOCABKAIoKAJcagwBC0EACyABKAIoKAJsIAEoAigoAlxrQQAQKCABKAIoIAEoAigoAmw2AlwgASgCKCgCABAcIAEoAigoAgAoAhBFBEAgAUEANgIsDAQLCwwBCwsgASgCKEEANgK0LSABKAIkQQRGBEAgASgCKAJ/IAEoAigoAlxBAE4EQCABKAIoKAI4IAEoAigoAlxqDAELQQALIAEoAigoAmwgASgCKCgCXGtBARAoIAEoAiggASgCKCgCbDYCXCABKAIoKAIAEBwgASgCKCgCACgCEEUEQCABQQI2AiwMAgsgAUEDNgIsDAELIAEoAigoAqAtBEAgASgCKAJ/IAEoAigoAlxBAE4EQCABKAIoKAI4IAEoAigoAlxqDAELQQALIAEoAigoAmwgASgCKCgCXGtBABAoIAEoAiggASgCKCgCbDYCXCABKAIoKAIAEBwgASgCKCgCACgCEEUEQCABQQA2AiwMAgsLIAFBATYCLAsgASgCLCECIAFBMGokACACDAELIAAoAiwgACgCNCAAKAIsKAKEAUEMbEGA7wBqKAIIEQMACwsLNgIEAkAgACgCBEECRwRAIAAoAgRBA0cNAQsgACgCLEGaBTYCBAsCQCAAKAIEBEAgACgCBEECRw0BCyAAKAI4KAIQRQRAIAAoAixBfzYCKAsgAEEANgI8DAILIAAoAgRBAUYEQAJAIAAoAjRBAUYEQCAAKAIsIQIjAEEgayIBJAAgASACNgIcIAFBAzYCGAJAIAEoAhwoArwtQRAgASgCGGtKBEAgAUECNgIUIAEoAhwiAiACLwG4LSABKAIUQf//A3EgASgCHCgCvC10cjsBuC0gASgCHC8BuC1B/wFxIQMgASgCHCgCCCEEIAEoAhwiBigCFCECIAYgAkEBajYCFCACIARqIAM6AAAgASgCHC8BuC1BCHYhAyABKAIcKAIIIQQgASgCHCIGKAIUIQIgBiACQQFqNgIUIAIgBGogAzoAACABKAIcIAEoAhRB//8DcUEQIAEoAhwoArwta3U7AbgtIAEoAhwiAiACKAK8LSABKAIYQRBrajYCvC0MAQsgASgCHCICIAIvAbgtQQIgASgCHCgCvC10cjsBuC0gASgCHCICIAEoAhggAigCvC1qNgK8LQsgAUGS6AAvAQA2AhACQCABKAIcKAK8LUEQIAEoAhBrSgRAIAFBkOgALwEANgIMIAEoAhwiAiACLwG4LSABKAIMQf//A3EgASgCHCgCvC10cjsBuC0gASgCHC8BuC1B/wFxIQMgASgCHCgCCCEEIAEoAhwiBigCFCECIAYgAkEBajYCFCACIARqIAM6AAAgASgCHC8BuC1BCHYhAyABKAIcKAIIIQQgASgCHCIGKAIUIQIgBiACQQFqNgIUIAIgBGogAzoAACABKAIcIAEoAgxB//8DcUEQIAEoAhwoArwta3U7AbgtIAEoAhwiAiACKAK8LSABKAIQQRBrajYCvC0MAQsgASgCHCICIAIvAbgtQZDoAC8BACABKAIcKAK8LXRyOwG4LSABKAIcIgIgASgCECACKAK8LWo2ArwtCyABKAIcELwBIAFBIGokAAwBCyAAKAI0QQVHBEAgACgCLEEAQQBBABBdIAAoAjRBA0YEQCAAKAIsKAJEIAAoAiwoAkxBAWtBAXRqQQA7AQAgACgCLCgCREEAIAAoAiwoAkxBAWtBAXQQMyAAKAIsKAJ0RQRAIAAoAixBADYCbCAAKAIsQQA2AlwgACgCLEEANgK0LQsLCwsgACgCOBAcIAAoAjgoAhBFBEAgACgCLEF/NgIoIABBADYCPAwDCwsLIAAoAjRBBEcEQCAAQQA2AjwMAQsgACgCLCgCGEEATARAIABBATYCPAwBCwJAIAAoAiwoAhhBAkYEQCAAKAI4KAIwQf8BcSECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAjgoAjBBCHZB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCMEEQdkH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAI4KAIwQRh2IQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCCEH/AXEhAiAAKAIsKAIIIQMgACgCLCIEKAIUIQEgBCABQQFqNgIUIAEgA2ogAjoAACAAKAI4KAIIQQh2Qf8BcSECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAAIAAoAjgoAghBEHZB/wFxIQIgACgCLCgCCCEDIAAoAiwiBCgCFCEBIAQgAUEBajYCFCABIANqIAI6AAAgACgCOCgCCEEYdiECIAAoAiwoAgghAyAAKAIsIgQoAhQhASAEIAFBAWo2AhQgASADaiACOgAADAELIAAoAiwgACgCOCgCMEEQdhBLIAAoAiwgACgCOCgCMEH//wNxEEsLIAAoAjgQHCAAKAIsKAIYQQBKBEAgACgCLEEAIAAoAiwoAhhrNgIYCyAAIAAoAiwoAhRFNgI8CyAAKAI8IQEgAEFAayQAIAUgATYCCAwBCyAFKAIMQRBqIQEjAEHgAGsiACQAIAAgATYCWCAAQQI2AlQCQAJAAkAgACgCWBBKDQAgACgCWCgCDEUNACAAKAJYKAIADQEgACgCWCgCBEUNAQsgAEF+NgJcDAELIAAgACgCWCgCHDYCUCAAKAJQKAIEQb/+AEYEQCAAKAJQQcD+ADYCBAsgACAAKAJYKAIMNgJIIAAgACgCWCgCEDYCQCAAIAAoAlgoAgA2AkwgACAAKAJYKAIENgJEIAAgACgCUCgCPDYCPCAAIAAoAlAoAkA2AjggACAAKAJENgI0IAAgACgCQDYCMCAAQQA2AhADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAJQKAIEQbT+AGsOHwABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fCyAAKAJQKAIMRQRAIAAoAlBBwP4ANgIEDCELA0AgACgCOEEQSQRAIAAoAkRFDSEgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgACgCUCgCDEECcUUNACAAKAI8QZ+WAkcNACAAKAJQKAIoRQRAIAAoAlBBDzYCKAtBAEEAQQAQGiEBIAAoAlAgATYCHCAAIAAoAjw6AAwgACAAKAI8QQh2OgANIAAoAlAoAhwgAEEMakECEBohASAAKAJQIAE2AhwgAEEANgI8IABBADYCOCAAKAJQQbX+ADYCBAwhCyAAKAJQQQA2AhQgACgCUCgCJARAIAAoAlAoAiRBfzYCMAsCQCAAKAJQKAIMQQFxBEAgACgCPEH/AXFBCHQgACgCPEEIdmpBH3BFDQELIAAoAlhBmgw2AhggACgCUEHR/gA2AgQMIQsgACgCPEEPcUEIRwRAIAAoAlhBmw82AhggACgCUEHR/gA2AgQMIQsgACAAKAI8QQR2NgI8IAAgACgCOEEEazYCOCAAIAAoAjxBD3FBCGo2AhQgACgCUCgCKEUEQCAAKAJQIAAoAhQ2AigLAkAgACgCFEEPTQRAIAAoAhQgACgCUCgCKE0NAQsgACgCWEGTDTYCGCAAKAJQQdH+ADYCBAwhCyAAKAJQQQEgACgCFHQ2AhhBAEEAQQAQPSEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG9/gBBv/4AIAAoAjxBgARxGzYCBCAAQQA2AjwgAEEANgI4DCALA0AgACgCOEEQSQRAIAAoAkRFDSAgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPDYCFCAAKAJQKAIUQf8BcUEIRwRAIAAoAlhBmw82AhggACgCUEHR/gA2AgQMIAsgACgCUCgCFEGAwANxBEAgACgCWEGgCTYCGCAAKAJQQdH+ADYCBAwgCyAAKAJQKAIkBEAgACgCUCgCJCAAKAI8QQh2QQFxNgIACwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAKAJQKAIcIABBDGpBAhAaIQEgACgCUCABNgIcCyAAQQA2AjwgAEEANgI4IAAoAlBBtv4ANgIECwNAIAAoAjhBIEkEQCAAKAJERQ0fIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQKAIkBEAgACgCUCgCJCAAKAI8NgIECwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAIAAoAjxBEHY6AA4gACAAKAI8QRh2OgAPIAAoAlAoAhwgAEEMakEEEBohASAAKAJQIAE2AhwLIABBADYCPCAAQQA2AjggACgCUEG3/gA2AgQLA0AgACgCOEEQSQRAIAAoAkRFDR4gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAoAiQEQCAAKAJQKAIkIAAoAjxB/wFxNgIIIAAoAlAoAiQgACgCPEEIdjYCDAsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAgACgCPDoADCAAIAAoAjxBCHY6AA0gACgCUCgCHCAAQQxqQQIQGiEBIAAoAlAgATYCHAsgAEEANgI8IABBADYCOCAAKAJQQbj+ADYCBAsCQCAAKAJQKAIUQYAIcQRAA0AgACgCOEEQSQRAIAAoAkRFDR8gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPDYCRCAAKAJQKAIkBEAgACgCUCgCJCAAKAI8NgIUCwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACAAKAI8OgAMIAAgACgCPEEIdjoADSAAKAJQKAIcIABBDGpBAhAaIQEgACgCUCABNgIcCyAAQQA2AjwgAEEANgI4DAELIAAoAlAoAiQEQCAAKAJQKAIkQQA2AhALCyAAKAJQQbn+ADYCBAsgACgCUCgCFEGACHEEQCAAIAAoAlAoAkQ2AiwgACgCLCAAKAJESwRAIAAgACgCRDYCLAsgACgCLARAAkAgACgCUCgCJEUNACAAKAJQKAIkKAIQRQ0AIAAgACgCUCgCJCgCFCAAKAJQKAJEazYCFCAAKAJQKAIkKAIQIAAoAhRqIAAoAkwCfyAAKAJQKAIkKAIYIAAoAhQgACgCLGpJBEAgACgCUCgCJCgCGCAAKAIUawwBCyAAKAIsCxAZGgsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAoAlAoAhwgACgCTCAAKAIsEBohASAAKAJQIAE2AhwLIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACgCUCIBIAEoAkQgACgCLGs2AkQLIAAoAlAoAkQNGwsgACgCUEEANgJEIAAoAlBBuv4ANgIECwJAIAAoAlAoAhRBgBBxBEAgACgCREUNGyAAQQA2AiwDQCAAKAJMIQEgACAAKAIsIgJBAWo2AiwgACABIAJqLQAANgIUAkAgACgCUCgCJEUNACAAKAJQKAIkKAIcRQ0AIAAoAlAoAkQgACgCUCgCJCgCIE8NACAAKAIUIQIgACgCUCgCJCgCHCEDIAAoAlAiBCgCRCEBIAQgAUEBajYCRCABIANqIAI6AAALIAAoAhQEfyAAKAIsIAAoAkRJBUEAC0EBcQ0ACwJAIAAoAlAoAhRBgARxRQ0AIAAoAlAoAgxBBHFFDQAgACgCUCgCHCAAKAJMIAAoAiwQGiEBIAAoAlAgATYCHAsgACAAKAJEIAAoAixrNgJEIAAgACgCLCAAKAJMajYCTCAAKAIUDRsMAQsgACgCUCgCJARAIAAoAlAoAiRBADYCHAsLIAAoAlBBADYCRCAAKAJQQbv+ADYCBAsCQCAAKAJQKAIUQYAgcQRAIAAoAkRFDRogAEEANgIsA0AgACgCTCEBIAAgACgCLCICQQFqNgIsIAAgASACai0AADYCFAJAIAAoAlAoAiRFDQAgACgCUCgCJCgCJEUNACAAKAJQKAJEIAAoAlAoAiQoAihPDQAgACgCFCECIAAoAlAoAiQoAiQhAyAAKAJQIgQoAkQhASAEIAFBAWo2AkQgASADaiACOgAACyAAKAIUBH8gACgCLCAAKAJESQVBAAtBAXENAAsCQCAAKAJQKAIUQYAEcUUNACAAKAJQKAIMQQRxRQ0AIAAoAlAoAhwgACgCTCAAKAIsEBohASAAKAJQIAE2AhwLIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACgCFA0aDAELIAAoAlAoAiQEQCAAKAJQKAIkQQA2AiQLCyAAKAJQQbz+ADYCBAsgACgCUCgCFEGABHEEQANAIAAoAjhBEEkEQCAAKAJERQ0aIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCwJAIAAoAlAoAgxBBHFFDQAgACgCPCAAKAJQKAIcQf//A3FGDQAgACgCWEH7DDYCGCAAKAJQQdH+ADYCBAwaCyAAQQA2AjwgAEEANgI4CyAAKAJQKAIkBEAgACgCUCgCJCAAKAJQKAIUQQl1QQFxNgIsIAAoAlAoAiRBATYCMAtBAEEAQQAQGiEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG//gA2AgQMGAsDQCAAKAI4QSBJBEAgACgCREUNGCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoiATYCHCAAKAJYIAE2AjAgAEEANgI8IABBADYCOCAAKAJQQb7+ADYCBAsgACgCUCgCEEUEQCAAKAJYIAAoAkg2AgwgACgCWCAAKAJANgIQIAAoAlggACgCTDYCACAAKAJYIAAoAkQ2AgQgACgCUCAAKAI8NgI8IAAoAlAgACgCODYCQCAAQQI2AlwMGAtBAEEAQQAQPSEBIAAoAlAgATYCHCAAKAJYIAE2AjAgACgCUEG//gA2AgQLIAAoAlRBBUYNFCAAKAJUQQZGDRQLIAAoAlAoAggEQCAAIAAoAjwgACgCOEEHcXY2AjwgACAAKAI4IAAoAjhBB3FrNgI4IAAoAlBBzv4ANgIEDBULA0AgACgCOEEDSQRAIAAoAkRFDRUgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAlAgACgCPEEBcTYCCCAAIAAoAjxBAXY2AjwgACAAKAI4QQFrNgI4AkACQAJAAkACQCAAKAI8QQNxDgQAAQIDBAsgACgCUEHB/gA2AgQMAwsjAEEQayIBIAAoAlA2AgwgASgCDEGw8gA2AlAgASgCDEEJNgJYIAEoAgxBsIIBNgJUIAEoAgxBBTYCXCAAKAJQQcf+ADYCBCAAKAJUQQZGBEAgACAAKAI8QQJ2NgI8IAAgACgCOEECazYCOAwXCwwCCyAAKAJQQcT+ADYCBAwBCyAAKAJYQfANNgIYIAAoAlBB0f4ANgIECyAAIAAoAjxBAnY2AjwgACAAKAI4QQJrNgI4DBQLIAAgACgCPCAAKAI4QQdxdjYCPCAAIAAoAjggACgCOEEHcWs2AjgDQCAAKAI4QSBJBEAgACgCREUNFCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPEH//wNxIAAoAjxBEHZB//8Dc0cEQCAAKAJYQaEKNgIYIAAoAlBB0f4ANgIEDBQLIAAoAlAgACgCPEH//wNxNgJEIABBADYCPCAAQQA2AjggACgCUEHC/gA2AgQgACgCVEEGRg0SCyAAKAJQQcP+ADYCBAsgACAAKAJQKAJENgIsIAAoAiwEQCAAKAIsIAAoAkRLBEAgACAAKAJENgIsCyAAKAIsIAAoAkBLBEAgACAAKAJANgIsCyAAKAIsRQ0RIAAoAkggACgCTCAAKAIsEBkaIAAgACgCRCAAKAIsazYCRCAAIAAoAiwgACgCTGo2AkwgACAAKAJAIAAoAixrNgJAIAAgACgCLCAAKAJIajYCSCAAKAJQIgEgASgCRCAAKAIsazYCRAwSCyAAKAJQQb/+ADYCBAwRCwNAIAAoAjhBDkkEQCAAKAJERQ0RIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIAAoAjxBH3FBgQJqNgJkIAAgACgCPEEFdjYCPCAAIAAoAjhBBWs2AjggACgCUCAAKAI8QR9xQQFqNgJoIAAgACgCPEEFdjYCPCAAIAAoAjhBBWs2AjggACgCUCAAKAI8QQ9xQQRqNgJgIAAgACgCPEEEdjYCPCAAIAAoAjhBBGs2AjgCQCAAKAJQKAJkQZ4CTQRAIAAoAlAoAmhBHk0NAQsgACgCWEH9CTYCGCAAKAJQQdH+ADYCBAwRCyAAKAJQQQA2AmwgACgCUEHF/gA2AgQLA0AgACgCUCgCbCAAKAJQKAJgSQRAA0AgACgCOEEDSQRAIAAoAkRFDRIgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLIAAoAjxBB3EhAiAAKAJQQfQAaiEDIAAoAlAiBCgCbCEBIAQgAUEBajYCbCABQQF0QYDyAGovAQBBAXQgA2ogAjsBACAAIAAoAjxBA3Y2AjwgACAAKAI4QQNrNgI4DAELCwNAIAAoAlAoAmxBE0kEQCAAKAJQQfQAaiECIAAoAlAiAygCbCEBIAMgAUEBajYCbCABQQF0QYDyAGovAQBBAXQgAmpBADsBAAwBCwsgACgCUCAAKAJQQbQKajYCcCAAKAJQIAAoAlAoAnA2AlAgACgCUEEHNgJYIABBACAAKAJQQfQAakETIAAoAlBB8ABqIAAoAlBB2ABqIAAoAlBB9AVqEHU2AhAgACgCEARAIAAoAlhBhwk2AhggACgCUEHR/gA2AgQMEAsgACgCUEEANgJsIAAoAlBBxv4ANgIECwNAAkAgACgCUCgCbCAAKAJQKAJkIAAoAlAoAmhqTw0AA0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDREgACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC8BIkEQSQRAIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggAC8BIiECIAAoAlBB9ABqIQMgACgCUCIEKAJsIQEgBCABQQFqNgJsIAFBAXQgA2ogAjsBAAwBCwJAIAAvASJBEEYEQANAIAAoAjggAC0AIUECakkEQCAAKAJERQ0UIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAoAmxFBEAgACgCWEHPCTYCGCAAKAJQQdH+ADYCBAwECyAAIAAoAlAgACgCUCgCbEEBdGovAXI2AhQgACAAKAI8QQNxQQNqNgIsIAAgACgCPEECdjYCPCAAIAAoAjhBAms2AjgMAQsCQCAALwEiQRFGBEADQCAAKAI4IAAtACFBA2pJBEAgACgCREUNFSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtACF2NgI8IAAgACgCOCAALQAhazYCOCAAQQA2AhQgACAAKAI8QQdxQQNqNgIsIAAgACgCPEEDdjYCPCAAIAAoAjhBA2s2AjgMAQsDQCAAKAI4IAAtACFBB2pJBEAgACgCREUNFCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtACF2NgI8IAAgACgCOCAALQAhazYCOCAAQQA2AhQgACAAKAI8Qf8AcUELajYCLCAAIAAoAjxBB3Y2AjwgACAAKAI4QQdrNgI4CwsgACgCUCgCbCAAKAIsaiAAKAJQKAJkIAAoAlAoAmhqSwRAIAAoAlhBzwk2AhggACgCUEHR/gA2AgQMAgsDQCAAIAAoAiwiAUEBazYCLCABBEAgACgCFCECIAAoAlBB9ABqIQMgACgCUCIEKAJsIQEgBCABQQFqNgJsIAFBAXQgA2ogAjsBAAwBCwsLDAELCyAAKAJQKAIEQdH+AEYNDiAAKAJQLwH0BEUEQCAAKAJYQfULNgIYIAAoAlBB0f4ANgIEDA8LIAAoAlAgACgCUEG0Cmo2AnAgACgCUCAAKAJQKAJwNgJQIAAoAlBBCTYCWCAAQQEgACgCUEH0AGogACgCUCgCZCAAKAJQQfAAaiAAKAJQQdgAaiAAKAJQQfQFahB1NgIQIAAoAhAEQCAAKAJYQesINgIYIAAoAlBB0f4ANgIEDA8LIAAoAlAgACgCUCgCcDYCVCAAKAJQQQY2AlwgAEECIAAoAlBB9ABqIAAoAlAoAmRBAXRqIAAoAlAoAmggACgCUEHwAGogACgCUEHcAGogACgCUEH0BWoQdTYCECAAKAIQBEAgACgCWEG5CTYCGCAAKAJQQdH+ADYCBAwPCyAAKAJQQcf+ADYCBCAAKAJUQQZGDQ0LIAAoAlBByP4ANgIECwJAIAAoAkRBBkkNACAAKAJAQYICSQ0AIAAoAlggACgCSDYCDCAAKAJYIAAoAkA2AhAgACgCWCAAKAJMNgIAIAAoAlggACgCRDYCBCAAKAJQIAAoAjw2AjwgACgCUCAAKAI4NgJAIAAoAjAhAiMAQeAAayIBIAAoAlg2AlwgASACNgJYIAEgASgCXCgCHDYCVCABIAEoAlwoAgA2AlAgASABKAJQIAEoAlwoAgRBBWtqNgJMIAEgASgCXCgCDDYCSCABIAEoAkggASgCWCABKAJcKAIQa2s2AkQgASABKAJIIAEoAlwoAhBBgQJrajYCQCABIAEoAlQoAiw2AjwgASABKAJUKAIwNgI4IAEgASgCVCgCNDYCNCABIAEoAlQoAjg2AjAgASABKAJUKAI8NgIsIAEgASgCVCgCQDYCKCABIAEoAlQoAlA2AiQgASABKAJUKAJUNgIgIAFBASABKAJUKAJYdEEBazYCHCABQQEgASgCVCgCXHRBAWs2AhgDQCABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiQgASgCLCABKAIccUECdGooAQA2ARACQAJAA0AgASABLQARNgIMIAEgASgCLCABKAIMdjYCLCABIAEoAiggASgCDGs2AiggASABLQAQNgIMIAEoAgxFBEAgAS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){Ir(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var N=ee.toString();throw P("failed to compile wasm module: "+N),(N.includes("imported Memory")||N.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function Qp(){var f={a:da};function E(L,N){var ee=L.exports;t.asm=ee,A=t.asm.u,Nr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var br,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Tn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Tn.GMTString||(Tn.GMTString=ye("GMT")),de[E+40>>2]=Tn.GMTString,E}function ae(f,E){return Tn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Nl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){Ir("randomDevice")}}var Nn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:b.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Nn.resolve(f).substr(1),E=Nn.resolve(E).substr(1);function w(it){for(var at=0;at=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),N=Math.min(k.length,L.length),ee=N,Ie=0;Ie0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{Qke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Q6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Gf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),bke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[b6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Gf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[QC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[QC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[b6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[Q6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Gf]/this[jf]:this[jf]===this[Gf]?e=1:e=0,{percent:e,transferred:this[Gf],total:this[jf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Nke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Tke=J("events"),Lke=Ya(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Tke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Nke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var N6=Ya();function T6(r){for(let e of Object.values(r))(N6.default.plainObject(e)||N6.default.array(e))&&T6(e);return Object.freeze(r)}BR.default=T6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var QR=I(Qs=>{"use strict";var Gke=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Gke(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};Qs.default=j6;Yke(M6(),Qs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),G6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=QR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},bR=Y6.default(eDe);qa.default=bR;pB.exports=bR;pB.exports.default=bR;pB.exports.__esModule=!0;G6(QR(),qa);G6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&yr("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:yr("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||yr("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E>10,56320|it&1023)}}return T}function De(f,E){return f?Pe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,G,fe,re,de,Ze,vt,mt;function Lr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=G=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!b.init.initialized&&b.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function yr(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Nl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Nl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){yr(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var T=ee.toString();throw P("failed to compile wasm module: "+T),(T.includes("imported Memory")||T.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function Qp(){var f={a:da};function E(L,T){var ee=L.exports;t.asm=ee,A=t.asm.u,Lr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Sr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Nn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Nn.GMTString||(Nn.GMTString=ye("GMT")),de[E+40>>2]=Nn.GMTString,E}function ae(f,E){return Nn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Tl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){yr("randomDevice")}}var Tn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:b.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Tn.resolve(f).substr(1),E=Tn.resolve(E).substr(1);function w(it){for(var at=0;at=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),T=Math.min(k.length,L.length),ee=T,Ie=0;Ie0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` `)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f=E)){var k=1024*1024;E=Math.max(E,w*(w>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var N=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&N.subarray)E.set(N.subarray(L,L+ee),w);else for(var Ie=0;Ie0||k+w>2)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new b.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Te.lstatSync(E)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Te.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Te.utimesSync(w,k,k)}E.size!==void 0&&Te.truncateSync(w,E.size)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),N=At.realPath(L);try{b.isDir(L.mode)?Te.mkdirSync(N,L.mode):Te.writeFileSync(N,"",{mode:L.mode})}catch(ee){throw ee.code?new b.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Te.renameSync(k,L)}catch(N){throw N.code?new b.ErrnoError(At.convertNodeCode(N)):N}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.unlinkSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.rmdirSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Te.readdirSync(E)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Te.symlinkSync(w,k)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Te.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{b.isFile(f.node.mode)&&(f.nfd=Te.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{b.isFile(f.node.mode)&&f.nfd&&Te.closeSync(f.nfd)}catch(E){throw E.code?new b.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},write:function(f,E,w,k,L){try{return Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&b.isFile(f.node.mode))try{var L=Te.fstatSync(f.nfd);k+=L.size}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}if(k<0)throw new b.ErrnoError(28);return k},mmap:function(f,E,w,k,L,N){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var N=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},An={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){b.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)b.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){b.isDir(f)?Te.mkdirSync(f,E):Te.writeFileSync(f,"",{mode:E})},mkdir:function(){Te.mkdirSync.apply(void 0,arguments)},symlink:function(){Te.symlinkSync.apply(void 0,arguments)},rename:function(){Te.renameSync.apply(void 0,arguments)},rmdir:function(){Te.rmdirSync.apply(void 0,arguments)},readdir:function(){Te.readdirSync.apply(void 0,arguments)},unlink:function(){Te.unlinkSync.apply(void 0,arguments)},readlink:function(){return Te.readlinkSync.apply(void 0,arguments)},stat:function(){return Te.statSync.apply(void 0,arguments)},lstat:function(){return Te.lstatSync.apply(void 0,arguments)},chmod:function(){Te.chmodSync.apply(void 0,arguments)},fchmod:function(){Te.fchmodSync.apply(void 0,arguments)},chown:function(){Te.chownSync.apply(void 0,arguments)},fchown:function(){Te.fchownSync.apply(void 0,arguments)},truncate:function(){Te.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new b.ErrnoError(28);Te.ftruncateSync.apply(void 0,arguments)},utime:function(){Te.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Te.openSync(f,At.flagsForNode(E),w),N=k!=null?k:b.nextfd(L),ee={fd:N,nfd:L,position:0,path:f,flags:E,seekable:!0};return b.streams[N]=ee,ee},close:function(f){f.stream_ops||Te.closeSync(f.nfd),b.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Te.fstatSync(f.nfd).size;else if(w!==0)throw new b.ErrnoError(wo.EINVAL);if(k<0)throw new b.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&b.llseek(f,0,+"2");var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},allocate:function(){throw new b.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,N){if(f.stream_ops)return Us.mmap(f,E,w,k,L,N);if(E!==0)throw new b.ErrnoError(28);var ee=ss(w);return b.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||b.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new b.ErrnoError(wo.ENOTTY)}},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Nn.resolve(b.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new b.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),N=b.root,ee="/",Ie=0;Ie40)throw new b.ErrnoError(32)}}return{path:ee,node:N}},getPath:function(f){for(var E;;){if(b.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k>>0)%b.nameTable.length},hashAddNode:function(f){var E=b.hashName(f.parent.id,f.name);f.name_next=b.nameTable[E],b.nameTable[E]=f},hashRemoveNode:function(f){var E=b.hashName(f.parent.id,f.name);if(b.nameTable[E]===f)b.nameTable[E]=f.name_next;else for(var w=b.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=b.mayLookup(f);if(w)throw new b.ErrnoError(w,f);for(var k=b.hashName(f.id,E),L=b.nameTable[k];L;L=L.name_next){var N=L.name;if(L.parent.id===f.id&&N===E)return L}return b.lookup(f,E)},createNode:function(f,E,w,k){var L=new b.FSNode(f,E,w,k);return b.hashAddNode(L),L},destroyNode:function(f){b.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=b.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return b.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=b.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=b.lookupNode(f,E);return 20}catch{}return b.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=b.lookupNode(f,E)}catch(N){return N.errno}var L=b.nodePermissions(f,"wx");if(L)return L;if(w){if(!b.isDir(k.mode))return 54;if(b.isRoot(k)||b.getPath(k)===b.cwd())return 10}else if(b.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?b.isLink(f.mode)?32:b.isDir(f.mode)&&(b.flagsToPermissionString(E)!=="r"||E&512)?31:b.nodePermissions(f,b.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||b.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!b.streams[w])return w;throw new b.ErrnoError(33)},getStream:function(f){return b.streams[f]},createStream:function(f,E,w){b.FSStream||(b.FSStream=function(){},b.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new b.FSStream;for(var L in f)k[L]=f[L];f=k;var N=b.nextfd(E,w);return f.fd=N,b.streams[N]=f,f},closeStream:function(f){b.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=b.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new b.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){b.devices[f]={stream_ops:E}},getDevice:function(f){return b.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),b.syncFSRequests++,b.syncFSRequests>1&&P("warning: "+b.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=b.getMounts(b.root.mount),k=0;function L(ee){return b.syncFSRequests--,E(ee)}function N(ee){if(ee)return N.errored?void 0:(N.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return N(null);ee.type.syncfs(ee,f,N)})},mount:function(f,E,w){var k=w==="/",L=!w,N;if(k&&b.root)throw new b.ErrnoError(10);if(!k&&!L){var ee=b.lookupPath(w,{follow_mount:!1});if(w=ee.path,N=ee.node,b.isMountpoint(N))throw new b.ErrnoError(10);if(!b.isDir(N.mode))throw new b.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?b.root=Oe:N&&(N.mounted=Ie,N.mount&&N.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=b.lookupPath(f,{follow_mount:!1});if(!b.isMountpoint(E.node))throw new b.ErrnoError(28);var w=E.node,k=w.mounted,L=b.getMounts(k);Object.keys(b.nameTable).forEach(function(ee){for(var Ie=b.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&b.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var N=w.mount.mounts.indexOf(k);w.mount.mounts.splice(N,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=b.lookupPath(f,{parent:!0}),L=k.node,N=yt.basename(f);if(!N||N==="."||N==="..")throw new b.ErrnoError(28);var ee=b.mayCreate(L,N);if(ee)throw new b.ErrnoError(ee);if(!L.node_ops.mknod)throw new b.ErrnoError(63);return L.node_ops.mknod(L,N,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,b.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,b.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L"u"&&(w=E,E=438),E|=8192,b.mknod(f,E,w)},symlink:function(f,E){if(!Nn.resolve(f))throw new b.ErrnoError(44);var w=b.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new b.ErrnoError(44);var L=yt.basename(E),N=b.mayCreate(k,L);if(N)throw new b.ErrnoError(N);if(!k.node_ops.symlink)throw new b.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),N=yt.basename(E),ee,Ie,Oe;if(ee=b.lookupPath(f,{parent:!0}),Ie=ee.node,ee=b.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new b.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new b.ErrnoError(75);var it=b.lookupNode(Ie,L),at=Nn.relative(f,k);if(at.charAt(0)!==".")throw new b.ErrnoError(28);if(at=Nn.relative(E,w),at.charAt(0)!==".")throw new b.ErrnoError(55);var Ue;try{Ue=b.lookupNode(Oe,N)}catch{}if(it!==Ue){var Ve=b.isDir(it.mode),nt=b.mayDelete(Ie,L,Ve);if(nt)throw new b.ErrnoError(nt);if(nt=Ue?b.mayDelete(Oe,N,Ve):b.mayCreate(Oe,N),nt)throw new b.ErrnoError(nt);if(!Ie.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(it)||Ue&&b.isMountpoint(Ue))throw new b.ErrnoError(10);if(Oe!==Ie&&(nt=b.nodePermissions(Ie,"w"),nt))throw new b.ErrnoError(nt);try{b.trackingDelegate.willMovePath&&b.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}b.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,N)}catch(wt){throw wt}finally{b.hashAddNode(it)}try{b.trackingDelegate.onMovePath&&b.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!0);if(N)throw new b.ErrnoError(N);if(!w.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=b.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new b.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!1);if(N)throw new b.ErrnoError(N);if(!w.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=b.lookupPath(f),w=E.node;if(!w)throw new b.ErrnoError(44);if(!w.node_ops.readlink)throw new b.ErrnoError(28);return Nn.resolve(b.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=b.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new b.ErrnoError(44);if(!k.node_ops.getattr)throw new b.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return b.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=b.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new b.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){b.chmod(f,E,!0)},fchmod:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);b.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var N=b.lookupPath(f,{follow:!k});L=N.node}else L=f;if(!L.node_ops.setattr)throw new b.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){b.chown(f,E,w,!0)},fchown:function(f,E,w){var k=b.getStream(f);if(!k)throw new b.ErrnoError(8);b.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new b.ErrnoError(28);var w;if(typeof f=="string"){var k=b.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(w.mode))throw new b.ErrnoError(31);if(!b.isFile(w.mode))throw new b.ErrnoError(28);var L=b.nodePermissions(w,"w");if(L)throw new b.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);if((w.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(w.node,E)},utime:function(f,E,w){var k=b.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new b.ErrnoError(44);E=typeof E=="string"?b.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var N;if(typeof f=="object")N=f;else{f=yt.normalize(f);try{var ee=b.lookupPath(f,{follow:!(E&131072)});N=ee.node}catch{}}var Ie=!1;if(E&64)if(N){if(E&128)throw new b.ErrnoError(20)}else N=b.mknod(f,w,0),Ie=!0;if(!N)throw new b.ErrnoError(44);if(b.isChrdev(N.mode)&&(E&=-513),E&65536&&!b.isDir(N.mode))throw new b.ErrnoError(54);if(!Ie){var Oe=b.mayOpen(N,E);if(Oe)throw new b.ErrnoError(Oe)}E&512&&b.truncate(N,0),E&=-131713;var it=b.createStream({node:N,path:b.getPath(N),flags:E,seekable:!0,position:0,stream_ops:N.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(b.readFiles||(b.readFiles={}),f in b.readFiles||(b.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(b.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=b.tracking.openFlags.READ),(E&2097155)!==0&&(at|=b.tracking.openFlags.WRITE),b.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(b.isClosed(f))throw new b.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{b.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new b.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new b.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.read)throw new b.ErrnoError(28);var N=typeof L<"u";if(!N)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L,N){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.write)throw new b.ErrnoError(28);f.seekable&&f.flags&1024&&b.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,N);ee||(f.position+=Ie);try{f.path&&b.trackingDelegate.onWriteToFile&&b.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(E<0||w<=0)throw new b.ErrnoError(28);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(f.node.mode)&&!b.isDir(f.node.mode))throw new b.ErrnoError(43);if(!f.stream_ops.allocate)throw new b.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,N){if((L&2)!==0&&(N&2)===0&&(f.flags&2097155)!==2)throw new b.ErrnoError(2);if((f.flags&2097155)===1)throw new b.ErrnoError(2);if(!f.stream_ops.mmap)throw new b.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,N)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new b.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=b.open(f,E.flags),L=b.stat(f),N=L.size,ee=new Uint8Array(N);return b.read(k,ee,0,N,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),b.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=b.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),N=Re(E,L,0,L.length);b.write(k,L,0,N,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))b.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");b.close(k)},cwd:function(){return b.currentPath},chdir:function(f){var E=b.lookupPath(f,{follow:!0});if(E.node===null)throw new b.ErrnoError(44);if(!b.isDir(E.node.mode))throw new b.ErrnoError(54);var w=b.nodePermissions(E.node,"x");if(w)throw new b.ErrnoError(w);b.currentPath=E.path},createDefaultDirectories:function(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:function(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,N){return L}}),b.mkdev("/dev/null",b.makedev(1,3)),ns.register(b.makedev(5,0),ns.default_tty_ops),ns.register(b.makedev(6,0),ns.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var f=Nl();b.createDevice("/dev","random",f),b.createDevice("/dev","urandom",f),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){b.mkdir("/proc");var f=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:function(){var E=b.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,N=b.getStream(L);if(!N)throw new b.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return N.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?b.createDevice("/dev","stdin",t.stdin):b.symlink("/dev/tty","/dev/stdin"),t.stdout?b.createDevice("/dev","stdout",null,t.stdout):b.symlink("/dev/tty","/dev/stdout"),t.stderr?b.createDevice("/dev","stderr",null,t.stderr):b.symlink("/dev/tty1","/dev/stderr");var f=b.open("/dev/stdin",0),E=b.open("/dev/stdout",1),w=b.open("/dev/stderr",1)},ensureErrnoError:function(){b.ErrnoError||(b.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(function(f){b.genericErrors[f]=new b.ErrnoError(f),b.genericErrors[f].stack=""}))},staticInit:function(){b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(ut,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){b.init.initialized=!0,b.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,b.createStandardStreams()},quit:function(){b.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;Ethis.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},N.prototype.setDataGetter=function(Ve){this.getter=Ve},N.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",cn=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var Sr=new XMLHttpRequest;if(Sr.open("GET",w,!1),nt!==ii&&Sr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(Sr.responseType="arraybuffer"),Sr.overrideMimeType&&Sr.overrideMimeType("text/plain; charset=x-user-defined"),Sr.send(null),!(Sr.status>=200&&Sr.status<300||Sr.status===304))throw new Error("Couldn't load "+w+". Status: "+Sr.status);return Sr.response!==void 0?new Uint8Array(Sr.response||[]):wA(Sr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,Sr=(On+1)*ii-1;if(Sr=Math.min(Sr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,Sr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(cn||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new N;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=b.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return b.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,cn){b.forceLoadFile(Oe);var ii=Ve.node.contents;if(cn>=ii.length)return 0;var Be=Math.min(ii.length-cn,Ii);if(ii.slice)for(var yi=0;yi>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(br=k.size,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(br=k.ino,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var N=Y.slice(f,f+w);b.msync(E,N,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),b.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return b.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=b.readlink(f),L=Math.min(w,Ae(k)),N=ie[E+L];return se(k,E,w+1),ie[E+L]=N,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=b.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&b.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=b.getStream(w);return k&&b.close(k),b.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,N=0;N>2],Ie=de[E+(N*8+4)>>2],Oe=b.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe>2],Ie=de[E+(N*8+4)>>2],Oe=b.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Tt.varargs+=4;var f=de[Tt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=b.getStream(f);if(!E)throw new b.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Tt.getStr(f),b.chmod(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function bp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 0:{var L=Tt.get();if(L<0)return-28;var N;return N=b.open(k.path,k.flags,0,L),N.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Tt.get();return k.flags|=L,0}case 12:{var L=Tt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof b>"u"||!(Ie instanceof b.ErrnoError))&&Ir(Ie),-Ie.errno}}function Sp(f,E){try{var w=Tt.getStreamFromFD(f);return Tt.doStat(b.stat,w.path,E)}catch(k){return(typeof b>"u"||!(k instanceof b.ErrnoError))&&Ir(k),-k.errno}}function vp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Tt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Tt.get();return b.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:Ir("bad ioctl syscall "+E)}}catch(N){return(typeof b>"u"||!(N instanceof b.ErrnoError))&&Ir(N),-N.errno}}function xp(f,E,w){Tt.varargs=w;try{var k=Tt.getStr(f),L=w?Tt.get():0,N=b.open(k,E,L);return N.fd}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),-ee.errno}}function Pp(f,E){try{return f=Tt.getStr(f),E=Tt.getStr(E),b.rename(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function j(f){try{return f=Tt.getStr(f),b.rmdir(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&Ir(E),-E.errno}}function Et(f,E){try{return f=Tt.getStr(f),Tt.doStat(b.stat,f,E)}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),-w.errno}}function yA(f){try{return f=Tt.getStr(f),b.unlink(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&Ir(E),-E.errno}}function Wi(f,E,w){Y.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ge.byteLength+65535>>>16),Nr(A.buffer),1}catch{}}function ze(f){var E=Y.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var N=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(N);if(ee)return!0}return!1}function fa(f){try{var E=Tt.getStreamFromFD(f);return b.close(E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&Ir(w),w.errno}}function dg(f,E){try{var w=Tt.getStreamFromFD(f),k=w.tty?2:b.isDir(w.mode)?3:b.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof b>"u"||!(L instanceof b.ErrnoError))&&Ir(L),L.errno}}function OE(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doReadv(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),ee.errno}}function kp(f,E,w,k,L){try{var N=Tt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(b.llseek(N,Ie,k),Ri=[N.position>>>0,(br=N.position,+Math.abs(br)>=1?br>0?(Math.min(+Math.floor(br/4294967296),4294967295)|0)>>>0:~~+Math.ceil((br-+(~~br>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],N.getdents&&Ie===0&&k===0&&(N.getdents=null),0)}catch(it){return(typeof b>"u"||!(it instanceof b.ErrnoError))&&Ir(it),it.errno}}function ME(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doWritev(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&Ir(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),N=Math.max(k,L);de[eS()>>2]=N*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=b.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,ln=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&ln)===ln},set:function(f){f?this.mode|=ln:this.mode&=~ln}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ks,b.staticInit(),g){var Te=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new b.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},b);for(var Ul in An)b[Ul]=Kl(An[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),N=Re(f,L,0,L.length);return E&&(L.length=N),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,N,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,N=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(N));while(at0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function bDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Tc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,T9=F9?F9.prototype:void 0,N9=T9?T9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return N9?N9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var TDe=HR();function NDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:TDe(r,e,t)}H9.exports=NDe});var jR=I((Aot,Y9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",YDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function GDe(r){return YDe.test(r)}Y9.exports=GDe});var q9=I((lot,G9)=>{function qDe(r){return r.split("")}G9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",YR="["+VDe+"]",GR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+YR+"|"+GR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+YR+"?",YR,z9,V9,ZDe].join("|")+")",iRe=RegExp(GR+"(?="+GR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],T=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&T==e)return S;if(O==t||O==r||O==e)return T==d&&ne.every(function(De){return De==i})?F:P;if(T==t||T==r||T==e)return P;if(O==o&&(T==o||T==a||T==c||T==u))return S;if((O==c||O==a)&&(T==a||T==l))return S;if((O==u||O==l)&&T==l)return S;if(T==i||T==m)return S;if(T==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&T==d||O==m&&[y,B].indexOf(T)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&T==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,bV)=>{"use strict";var QV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);bV.exports=r=>r?Object.keys(r).map(e=>[QV.has(e)?QV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,TV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},TRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),NC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),xn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",NRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};TV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[xn]=null:this[xn]=e&&e.encoding||null,this[xn]==="buffer"&&(this[xn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[xn]?new xV(this[xn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[NC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[xn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[xn]&&e!==this[xn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[xn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[xn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[xn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[xn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[NC]&&(this[Za]?OC(()=>t.call(this,this[NC])):t.call(this,this[NC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[NC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[xn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[NRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof TRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,NV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};NV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Yc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Yc](rl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Yc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Yc](e)):super[Yc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},YB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends YB{constructor(e){super(e,"BrotliCompress")}},hF=class extends YB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var YRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=YRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var GB=I((Got,HV)=>{"use strict";var GRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends GRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,GV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=YV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=YV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,YV=r=>(255^r)+1&255;GV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),QF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Gc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Gc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Gc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Gc(e,t+265,32),this.gname=Gc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Gc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Gc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Gc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=QF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f=E)){var k=1024*1024;E=Math.max(E,w*(w>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie0||k+w>2)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new b.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Ne.lstatSync(E)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Ne.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Ne.utimesSync(w,k,k)}E.size!==void 0&&Ne.truncateSync(w,E.size)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),T=At.realPath(L);try{b.isDir(L.mode)?Ne.mkdirSync(T,L.mode):Ne.writeFileSync(T,"",{mode:L.mode})}catch(ee){throw ee.code?new b.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Ne.renameSync(k,L)}catch(T){throw T.code?new b.ErrnoError(At.convertNodeCode(T)):T}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.unlinkSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.rmdirSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Ne.readdirSync(E)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Ne.symlinkSync(w,k)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Ne.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{b.isFile(f.node.mode)&&(f.nfd=Ne.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{b.isFile(f.node.mode)&&f.nfd&&Ne.closeSync(f.nfd)}catch(E){throw E.code?new b.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}},write:function(f,E,w,k,L){try{return Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&b.isFile(f.node.mode))try{var L=Ne.fstatSync(f.nfd);k+=L.size}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}if(k<0)throw new b.ErrnoError(28);return k},mmap:function(f,E,w,k,L,T){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var T=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},ln={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){b.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)b.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){b.isDir(f)?Ne.mkdirSync(f,E):Ne.writeFileSync(f,"",{mode:E})},mkdir:function(){Ne.mkdirSync.apply(void 0,arguments)},symlink:function(){Ne.symlinkSync.apply(void 0,arguments)},rename:function(){Ne.renameSync.apply(void 0,arguments)},rmdir:function(){Ne.rmdirSync.apply(void 0,arguments)},readdir:function(){Ne.readdirSync.apply(void 0,arguments)},unlink:function(){Ne.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ne.readlinkSync.apply(void 0,arguments)},stat:function(){return Ne.statSync.apply(void 0,arguments)},lstat:function(){return Ne.lstatSync.apply(void 0,arguments)},chmod:function(){Ne.chmodSync.apply(void 0,arguments)},fchmod:function(){Ne.fchmodSync.apply(void 0,arguments)},chown:function(){Ne.chownSync.apply(void 0,arguments)},fchown:function(){Ne.fchownSync.apply(void 0,arguments)},truncate:function(){Ne.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new b.ErrnoError(28);Ne.ftruncateSync.apply(void 0,arguments)},utime:function(){Ne.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Ne.openSync(f,At.flagsForNode(E),w),T=k!=null?k:b.nextfd(L),ee={fd:T,nfd:L,position:0,path:f,flags:E,seekable:!0};return b.streams[T]=ee,ee},close:function(f){f.stream_ops||Ne.closeSync(f.nfd),b.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Ne.fstatSync(f.nfd).size;else if(w!==0)throw new b.ErrnoError(wo.EINVAL);if(k<0)throw new b.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&b.llseek(f,0,+"2");var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},allocate:function(){throw new b.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,T){if(f.stream_ops)return Us.mmap(f,E,w,k,L,T);if(E!==0)throw new b.ErrnoError(28);var ee=ss(w);return b.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||b.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new b.ErrnoError(wo.ENOTTY)}},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Tn.resolve(b.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new b.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),T=b.root,ee="/",Ie=0;Ie40)throw new b.ErrnoError(32)}}return{path:ee,node:T}},getPath:function(f){for(var E;;){if(b.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k>>0)%b.nameTable.length},hashAddNode:function(f){var E=b.hashName(f.parent.id,f.name);f.name_next=b.nameTable[E],b.nameTable[E]=f},hashRemoveNode:function(f){var E=b.hashName(f.parent.id,f.name);if(b.nameTable[E]===f)b.nameTable[E]=f.name_next;else for(var w=b.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=b.mayLookup(f);if(w)throw new b.ErrnoError(w,f);for(var k=b.hashName(f.id,E),L=b.nameTable[k];L;L=L.name_next){var T=L.name;if(L.parent.id===f.id&&T===E)return L}return b.lookup(f,E)},createNode:function(f,E,w,k){var L=new b.FSNode(f,E,w,k);return b.hashAddNode(L),L},destroyNode:function(f){b.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=b.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return b.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=b.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=b.lookupNode(f,E);return 20}catch{}return b.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=b.lookupNode(f,E)}catch(T){return T.errno}var L=b.nodePermissions(f,"wx");if(L)return L;if(w){if(!b.isDir(k.mode))return 54;if(b.isRoot(k)||b.getPath(k)===b.cwd())return 10}else if(b.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?b.isLink(f.mode)?32:b.isDir(f.mode)&&(b.flagsToPermissionString(E)!=="r"||E&512)?31:b.nodePermissions(f,b.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||b.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!b.streams[w])return w;throw new b.ErrnoError(33)},getStream:function(f){return b.streams[f]},createStream:function(f,E,w){b.FSStream||(b.FSStream=function(){},b.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new b.FSStream;for(var L in f)k[L]=f[L];f=k;var T=b.nextfd(E,w);return f.fd=T,b.streams[T]=f,f},closeStream:function(f){b.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=b.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new b.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){b.devices[f]={stream_ops:E}},getDevice:function(f){return b.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),b.syncFSRequests++,b.syncFSRequests>1&&P("warning: "+b.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=b.getMounts(b.root.mount),k=0;function L(ee){return b.syncFSRequests--,E(ee)}function T(ee){if(ee)return T.errored?void 0:(T.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return T(null);ee.type.syncfs(ee,f,T)})},mount:function(f,E,w){var k=w==="/",L=!w,T;if(k&&b.root)throw new b.ErrnoError(10);if(!k&&!L){var ee=b.lookupPath(w,{follow_mount:!1});if(w=ee.path,T=ee.node,b.isMountpoint(T))throw new b.ErrnoError(10);if(!b.isDir(T.mode))throw new b.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?b.root=Oe:T&&(T.mounted=Ie,T.mount&&T.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=b.lookupPath(f,{follow_mount:!1});if(!b.isMountpoint(E.node))throw new b.ErrnoError(28);var w=E.node,k=w.mounted,L=b.getMounts(k);Object.keys(b.nameTable).forEach(function(ee){for(var Ie=b.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&b.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var T=w.mount.mounts.indexOf(k);w.mount.mounts.splice(T,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=b.lookupPath(f,{parent:!0}),L=k.node,T=yt.basename(f);if(!T||T==="."||T==="..")throw new b.ErrnoError(28);var ee=b.mayCreate(L,T);if(ee)throw new b.ErrnoError(ee);if(!L.node_ops.mknod)throw new b.ErrnoError(63);return L.node_ops.mknod(L,T,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,b.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,b.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L"u"&&(w=E,E=438),E|=8192,b.mknod(f,E,w)},symlink:function(f,E){if(!Tn.resolve(f))throw new b.ErrnoError(44);var w=b.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new b.ErrnoError(44);var L=yt.basename(E),T=b.mayCreate(k,L);if(T)throw new b.ErrnoError(T);if(!k.node_ops.symlink)throw new b.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),T=yt.basename(E),ee,Ie,Oe;if(ee=b.lookupPath(f,{parent:!0}),Ie=ee.node,ee=b.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new b.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new b.ErrnoError(75);var it=b.lookupNode(Ie,L),at=Tn.relative(f,k);if(at.charAt(0)!==".")throw new b.ErrnoError(28);if(at=Tn.relative(E,w),at.charAt(0)!==".")throw new b.ErrnoError(55);var Ue;try{Ue=b.lookupNode(Oe,T)}catch{}if(it!==Ue){var Ve=b.isDir(it.mode),nt=b.mayDelete(Ie,L,Ve);if(nt)throw new b.ErrnoError(nt);if(nt=Ue?b.mayDelete(Oe,T,Ve):b.mayCreate(Oe,T),nt)throw new b.ErrnoError(nt);if(!Ie.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(it)||Ue&&b.isMountpoint(Ue))throw new b.ErrnoError(10);if(Oe!==Ie&&(nt=b.nodePermissions(Ie,"w"),nt))throw new b.ErrnoError(nt);try{b.trackingDelegate.willMovePath&&b.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}b.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,T)}catch(wt){throw wt}finally{b.hashAddNode(it)}try{b.trackingDelegate.onMovePath&&b.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),T=b.mayDelete(w,k,!0);if(T)throw new b.ErrnoError(T);if(!w.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=b.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new b.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),T=b.mayDelete(w,k,!1);if(T)throw new b.ErrnoError(T);if(!w.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=b.lookupPath(f),w=E.node;if(!w)throw new b.ErrnoError(44);if(!w.node_ops.readlink)throw new b.ErrnoError(28);return Tn.resolve(b.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=b.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new b.ErrnoError(44);if(!k.node_ops.getattr)throw new b.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return b.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=b.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new b.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){b.chmod(f,E,!0)},fchmod:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);b.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var T=b.lookupPath(f,{follow:!k});L=T.node}else L=f;if(!L.node_ops.setattr)throw new b.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){b.chown(f,E,w,!0)},fchown:function(f,E,w){var k=b.getStream(f);if(!k)throw new b.ErrnoError(8);b.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new b.ErrnoError(28);var w;if(typeof f=="string"){var k=b.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(w.mode))throw new b.ErrnoError(31);if(!b.isFile(w.mode))throw new b.ErrnoError(28);var L=b.nodePermissions(w,"w");if(L)throw new b.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);if((w.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(w.node,E)},utime:function(f,E,w){var k=b.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new b.ErrnoError(44);E=typeof E=="string"?b.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var T;if(typeof f=="object")T=f;else{f=yt.normalize(f);try{var ee=b.lookupPath(f,{follow:!(E&131072)});T=ee.node}catch{}}var Ie=!1;if(E&64)if(T){if(E&128)throw new b.ErrnoError(20)}else T=b.mknod(f,w,0),Ie=!0;if(!T)throw new b.ErrnoError(44);if(b.isChrdev(T.mode)&&(E&=-513),E&65536&&!b.isDir(T.mode))throw new b.ErrnoError(54);if(!Ie){var Oe=b.mayOpen(T,E);if(Oe)throw new b.ErrnoError(Oe)}E&512&&b.truncate(T,0),E&=-131713;var it=b.createStream({node:T,path:b.getPath(T),flags:E,seekable:!0,position:0,stream_ops:T.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(b.readFiles||(b.readFiles={}),f in b.readFiles||(b.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(b.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=b.tracking.openFlags.READ),(E&2097155)!==0&&(at|=b.tracking.openFlags.WRITE),b.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(b.isClosed(f))throw new b.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{b.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new b.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new b.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.read)throw new b.ErrnoError(28);var T=typeof L<"u";if(!T)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L,T){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.write)throw new b.ErrnoError(28);f.seekable&&f.flags&1024&&b.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,T);ee||(f.position+=Ie);try{f.path&&b.trackingDelegate.onWriteToFile&&b.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(E<0||w<=0)throw new b.ErrnoError(28);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(f.node.mode)&&!b.isDir(f.node.mode))throw new b.ErrnoError(43);if(!f.stream_ops.allocate)throw new b.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,T){if((L&2)!==0&&(T&2)===0&&(f.flags&2097155)!==2)throw new b.ErrnoError(2);if((f.flags&2097155)===1)throw new b.ErrnoError(2);if(!f.stream_ops.mmap)throw new b.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,T)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new b.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=b.open(f,E.flags),L=b.stat(f),T=L.size,ee=new Uint8Array(T);return b.read(k,ee,0,T,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),b.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=b.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),T=Re(E,L,0,L.length);b.write(k,L,0,T,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))b.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");b.close(k)},cwd:function(){return b.currentPath},chdir:function(f){var E=b.lookupPath(f,{follow:!0});if(E.node===null)throw new b.ErrnoError(44);if(!b.isDir(E.node.mode))throw new b.ErrnoError(54);var w=b.nodePermissions(E.node,"x");if(w)throw new b.ErrnoError(w);b.currentPath=E.path},createDefaultDirectories:function(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:function(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,T){return L}}),b.mkdev("/dev/null",b.makedev(1,3)),ns.register(b.makedev(5,0),ns.default_tty_ops),ns.register(b.makedev(6,0),ns.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var f=Tl();b.createDevice("/dev","random",f),b.createDevice("/dev","urandom",f),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){b.mkdir("/proc");var f=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:function(){var E=b.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,T=b.getStream(L);if(!T)throw new b.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return T.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?b.createDevice("/dev","stdin",t.stdin):b.symlink("/dev/tty","/dev/stdin"),t.stdout?b.createDevice("/dev","stdout",null,t.stdout):b.symlink("/dev/tty","/dev/stdout"),t.stderr?b.createDevice("/dev","stderr",null,t.stderr):b.symlink("/dev/tty1","/dev/stderr");var f=b.open("/dev/stdin",0),E=b.open("/dev/stdout",1),w=b.open("/dev/stderr",1)},ensureErrnoError:function(){b.ErrnoError||(b.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(function(f){b.genericErrors[f]=new b.ErrnoError(f),b.genericErrors[f].stack=""}))},staticInit:function(){b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(ut,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){b.init.initialized=!0,b.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,b.createStandardStreams()},quit:function(){b.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;Ethis.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},T.prototype.setDataGetter=function(Ve){this.getter=Ve},T.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",un=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var vr=new XMLHttpRequest;if(vr.open("GET",w,!1),nt!==ii&&vr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(vr.responseType="arraybuffer"),vr.overrideMimeType&&vr.overrideMimeType("text/plain; charset=x-user-defined"),vr.send(null),!(vr.status>=200&&vr.status<300||vr.status===304))throw new Error("Couldn't load "+w+". Status: "+vr.status);return vr.response!==void 0?new Uint8Array(vr.response||[]):wA(vr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,vr=(On+1)*ii-1;if(vr=Math.min(vr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,vr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(un||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new T;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=b.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return b.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,un){b.forceLoadFile(Oe);var ii=Ve.node.contents;if(un>=ii.length)return 0;var Be=Math.min(ii.length-un,Ii);if(ii.slice)for(var yi=0;yi>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Sr=k.size,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Sr=k.ino,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var T=G.slice(f,f+w);b.msync(E,T,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),b.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return b.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=b.readlink(f),L=Math.min(w,Ae(k)),T=ie[E+L];return se(k,E,w+1),ie[E+L]=T,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=b.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&b.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=b.getStream(w);return k&&b.close(k),b.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,T=0;T>2],Ie=de[E+(T*8+4)>>2],Oe=b.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe>2],Ie=de[E+(T*8+4)>>2],Oe=b.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Nt.varargs+=4;var f=de[Nt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=b.getStream(f);if(!E)throw new b.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Nt.getStr(f),b.chmod(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function bp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 0:{var L=Nt.get();if(L<0)return-28;var T;return T=b.open(k.path,k.flags,0,L),T.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Nt.get();return k.flags|=L,0}case 12:{var L=Nt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof b>"u"||!(Ie instanceof b.ErrnoError))&&yr(Ie),-Ie.errno}}function Sp(f,E){try{var w=Nt.getStreamFromFD(f);return Nt.doStat(b.stat,w.path,E)}catch(k){return(typeof b>"u"||!(k instanceof b.ErrnoError))&&yr(k),-k.errno}}function vp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Nt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Nt.get();return b.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:yr("bad ioctl syscall "+E)}}catch(T){return(typeof b>"u"||!(T instanceof b.ErrnoError))&&yr(T),-T.errno}}function xp(f,E,w){Nt.varargs=w;try{var k=Nt.getStr(f),L=w?Nt.get():0,T=b.open(k,E,L);return T.fd}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),-ee.errno}}function Pp(f,E){try{return f=Nt.getStr(f),E=Nt.getStr(E),b.rename(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function j(f){try{return f=Nt.getStr(f),b.rmdir(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function Et(f,E){try{return f=Nt.getStr(f),Nt.doStat(b.stat,f,E)}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function yA(f){try{return f=Nt.getStr(f),b.unlink(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function zi(f,E,w){G.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Lr(A.buffer),1}catch{}}function ze(f){var E=G.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var T=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(T);if(ee)return!0}return!1}function fa(f){try{var E=Nt.getStreamFromFD(f);return b.close(E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),w.errno}}function dg(f,E){try{var w=Nt.getStreamFromFD(f),k=w.tty?2:b.isDir(w.mode)?3:b.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof b>"u"||!(L instanceof b.ErrnoError))&&yr(L),L.errno}}function OE(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doReadv(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function kp(f,E,w,k,L){try{var T=Nt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(b.llseek(T,Ie,k),Ri=[T.position>>>0,(Sr=T.position,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],T.getdents&&Ie===0&&k===0&&(T.getdents=null),0)}catch(it){return(typeof b>"u"||!(it instanceof b.ErrnoError))&&yr(it),it.errno}}function ME(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doWritev(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),T=Math.max(k,L);de[eS()>>2]=T*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=b.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,cn=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&cn)===cn},set:function(f){f?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ks,b.staticInit(),g){var Ne=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new b.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},b);for(var Ul in ln)b[Ul]=Kl(ln[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),T=Re(f,L,0,L.length);return E&&(L.length=T),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,T,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,T=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(T));while(at0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function bDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Nc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,N9=F9?F9.prototype:void 0,T9=N9?N9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return T9?T9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i{var NDe=HR();function TDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:NDe(r,e,t)}H9.exports=TDe});var jR=I((Aot,G9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",GDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function YDe(r){return GDe.test(r)}G9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",GR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+GR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+GR+"?",GR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],N=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&N==e)return S;if(O==t||O==r||O==e)return N==d&&ne.every(function(De){return De==i})?F:P;if(N==t||N==r||N==e)return P;if(O==o&&(N==o||N==a||N==c||N==u))return S;if((O==c||O==a)&&(N==a||N==l))return S;if((O==u||O==l)&&N==l)return S;if(N==i||N==m)return S;if(N==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&N==d||O==m&&[y,B].indexOf(N)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&N==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,bV)=>{"use strict";var QV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);bV.exports=r=>r?Object.keys(r).map(e=>[QV.has(e)?QV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,NV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},NRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),TC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",TRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};NV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new xV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[TC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[TC]&&(this[Za]?OC(()=>t.call(this,this[TC])):t.call(this,this[TC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[TC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[TRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof NRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,TV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};TV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Gc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Gc](rl.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Gc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Gc](e)):super[Gc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},GB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends GB{constructor(e){super(e,"BrotliCompress")}},hF=class extends GB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var GRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=GRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=GV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=GV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,GV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),QF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=QF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};KC.parse=(r,e,t)=>new KC(AFe(lFe(r),e),t);var AFe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,lFe=r=>r.replace(/\n$/,"").split(` -`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),TF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),NF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[TF](t)})}[TF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[xF]())}[NF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[TF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[NF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=GB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,QFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),YF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),GF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),bFe=WB(),HF=th(),WF=bFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[GF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new QFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[YF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[GF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[GF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[YF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,Pn=J("fs"),XF=Pn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),Q7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),b7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[Q7]=t.readSize||16*1024*1024,this[ol]=!1,this[b7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[b7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){Pn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[Q7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));Pn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){Pn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eT=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=Pn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=Pn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,Pn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,Pn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eT});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=GB(),S7=JB(),TFe=dF(),tT=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rT=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),YC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),kn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iT=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nT=Symbol("bufferConcat"),sT=Symbol("maybeEnd"),GC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),NFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:NFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[YC]=null,this[Vc]=!1,this[kn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[YC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[YC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rT]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rT]()),t=!1)):(this[eA]=null,t=!1),t}[rT](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[GC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iT](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iT](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[YC]=S7.parse(this[ll],this[YC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[kn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.lengththis[p0](s)),this[kn].on("error",s=>this.abort(s)),this[kn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[GC]=!0;let n=this[kn][i?"end":"write"](e);return this[GC]=!1,n}}this[GC]=!0,this[kn]?this[kn].write(e):this[p0](e),this[GC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nT](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sT](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nT](e);else if(!e&&!this[Cr])this[sT]();else{if(this[C0]=!0,this[Cr]){this[nT](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sT]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iT](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t{"use strict";var LFe=Xf(),T7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oT=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):N7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oT(s)):s=>n(oT(s))},UFe=r=>{let e=N7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new T7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},N7=r=>new T7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?YFe(i,e):i.file?GFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var YFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},GFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aT(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aT=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aT(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aT(t,e),t}});var AT=I((uat,V7)=>{"use strict";var WFe=Xf(),Y7=a0(),_n=J("fs"),G7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new Y7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new G7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new Y7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new G7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AT();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eTe(i),$Fe(i,e,t)};var eTe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tTe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tTe});var rX=I((hat,tX)=>{var rTe=process.platform,{resolve:iTe,parse:nTe}=J("path"),sTe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iTe(r),rTe==="win32"){let e=/[*|"<>?:]/,{root:t}=nTe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sTe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uT=I((dat,lX)=>{var{dirname:AX}=J("path"),lT=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lT(i,e).then(s=>lT(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cT=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cT(r,e,cT(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lT,mkdirpManualSync:cT}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oTe,findMadeSync:aTe}=aX(),{mkdirpManual:ATe,mkdirpManualSync:lTe}=uT(),cTe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oTe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ATe(r,e);throw n}))),uTe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aTe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lTe(r,e);throw n}};uX.exports={mkdirpNative:cTe,mkdirpNativeSync:uTe}});var dX=I((mat,pX)=>{var fX=J("fs"),gTe=process.version,gT=gTe.replace(/^v/,"").split("."),hX=+gT[0]>10||+gT[0]==10&&+gT[1]>=12,fTe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hTe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fTe,useNativeSync:hTe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uT(),{useNative:pTe,useNativeSync:dTe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pTe(e)?CX(r,e):EX(r,e)),CTe=(r,e)=>(r=dh(r),e=ph(e),dTe(e)?mX(r,e):IX(r,e));Ch.sync=CTe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mTe=Ps.lchown?"lchown":"chown",ETe=Ps.lchownSync?"lchownSync":"chownSync",QX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ETe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},ITe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yTe=QX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fT=QX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;ITe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wTe=process.version,bX=(r,e,t)=>Ps.readdir(r,e,t),BTe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wTe)&&(bX=(r,e,t)=>Ps.readdir(r,t));var Q0=(r,e,t,i)=>{Ps[mTe](r,e,t,yTe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hT(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);Q0(o,t,i,n)});else{let s=_c.resolve(r,e.name);Q0(s,t,i,n)}},hT=(r,e,t,i)=>{bX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},QTe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fT(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BTe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fT(r,e,t);throw n}return i&&i.length&&i.forEach(n=>QTe(r,n,e,t)),fT(r,e,t)};xX.exports=hT;hT.sync=vX});var FX=I((yat,pT)=>{"use strict";var kX=wX(),ks=J("fs"),b0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),bTe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pT.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return bTe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(b0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(b0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},STe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pT.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return STe(g),h();if(l)return h(kX.sync(r,i));let d=lo(b0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(b0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CT=I((wat,TX)=>{var dT=Object.create(null),{hasOwnProperty:vTe}=Object.prototype;TX.exports=r=>(vTe.call(dT,r)||(dT[r]=r.normalize("NFKD")),dT[r])});var MX=I((Bat,OX)=>{var NX=J("assert"),xTe=CT(),PTe=nh(),{join:LX}=J("path"),kTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DTe=kTe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);NX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);NX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DTe?["win32 parallelization disabled"]:c.map(h=>xTe(PTe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((Qat,UX)=>{var RTe=process.platform,FTe=RTe==="win32",TTe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:NTe,O_TRUNC:LTe,O_WRONLY:OTe,UV_FS_O_FILEMAP:KX=0}=TTe.constants,MTe=FTe&&!!KX,KTe=512*1024,UTe=KX|LTe|NTe|OTe;UX.exports=MTe?r=>r"w"});var ST=I((bat,tZ)=>{"use strict";var HTe=J("assert"),jTe=y0(),Ht=J("fs"),YTe=fh(),rA=J("path"),_X=FX(),jX=SF(),GTe=MX(),qTe=vF(),$n=th(),JTe=nh(),WTe=CT(),YX=Symbol("onEntry"),IT=Symbol("checkFs"),GX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yT=Symbol("isReusable"),Ds=Symbol("makeFs"),wT=Symbol("file"),BT=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Yi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mT=Symbol("ended"),ET=Symbol("maybeClose"),QT=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zTe==="win32",VTe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XTe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WTe(JTe($n(r))).toLowerCase(),ZTe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Te=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jTe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mT]=!0,this[ET]()},super(e),this[VC]=!1,this.reservations=GTe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mT]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[YX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[ET](){this[mT]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qTe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[YX](e){if(!this[zX](e))return e.resume();switch(HTe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IT](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Yi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wT](e,t){let i=e.mode&4095||this.fmode,n=new YTe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Yi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Yi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Yi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Yi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BT](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Yi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[ET]()}[QT](e){this[mh](),e.resume()}[yT](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IT](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[GX](e,i))}[R0](e){e.type==="SymbolicLink"?_Te(this.dirCache):e.type!=="Directory"&&ZTe(this.dirCache,e.absolute)}[GX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Yi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Yi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[QT](e),i();return}if(a||this[yT](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VTe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Yi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wT](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BT](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Yi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},bT=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IT](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Yi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Yi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[QT](e);if(t||this[yT](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XTe(e.absolute));this[Ds](n,e)}[wT](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Yi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Yi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BT](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Yi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Yi](s,e)}}};ZC.Sync=bT;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Te=Xf(),T0=ST(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vT=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Te(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eNe(i,e),i.file&&i.sync?tNe(i):i.file?rNe(i,t):i.sync?iNe(i):nNe(i)};var eNe=(r,e)=>{let t=new Map(e.map(s=>[vT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vT(s)):s=>n(vT(s))},tNe=r=>{let e=new T0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rNe=(r,e)=>{let t=new T0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iNe=r=>new T0.Sync(r),nNe=r=>new T0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AT();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=ST();li.Parse=y0();li.ReadEntry=GB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xT;cZ.exports.getContent=()=>(typeof xT>"u"&&(xT=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xT)});var CZ=I((PT,dZ)=>{(function(r,e){typeof PT=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PT,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var M0=I((_at,vZ)=>{var wNe=Ss(),BNe=fC(),QNe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bNe=/^\w*$/;function SNe(r,e){if(wNe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BNe(r)?!0:bNe.test(r)||!QNe.test(r)||e!=null&&r in Object(e)}vZ.exports=SNe});var K0=I(($at,xZ)=>{var vNe=Nc(),xNe=vn(),PNe="[object AsyncFunction]",kNe="[object Function]",DNe="[object GeneratorFunction]",RNe="[object Proxy]";function FNe(r){if(!xNe(r))return!1;var e=vNe(r);return e==kNe||e==DNe||e==PNe||e==RNe}xZ.exports=FNe});var kZ=I((eAt,PZ)=>{var TNe=Is(),NNe=TNe["__core-js_shared__"];PZ.exports=NNe});var FZ=I((tAt,RZ)=>{var OT=kZ(),DZ=function(){var r=/[^.]+$/.exec(OT&&OT.keys&&OT.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LNe(r){return!!DZ&&DZ in r}RZ.exports=LNe});var MT=I((rAt,TZ)=>{var ONe=Function.prototype,MNe=ONe.toString;function KNe(r){if(r!=null){try{return MNe.call(r)}catch{}try{return r+""}catch{}}return""}TZ.exports=KNe});var LZ=I((iAt,NZ)=>{var UNe=K0(),HNe=FZ(),jNe=vn(),YNe=MT(),GNe=/[\\^$.*+?()[\]{}|]/g,qNe=/^\[object .+?Constructor\]$/,JNe=Function.prototype,WNe=Object.prototype,zNe=JNe.toString,VNe=WNe.hasOwnProperty,XNe=RegExp("^"+zNe.call(VNe).replace(GNe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZNe(r){if(!jNe(r)||HNe(r))return!1;var e=UNe(r)?XNe:qNe;return e.test(YNe(r))}NZ.exports=ZNe});var MZ=I((nAt,OZ)=>{function _Ne(r,e){return r==null?void 0:r[e]}OZ.exports=_Ne});var hl=I((sAt,KZ)=>{var $Ne=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Ne(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var YZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,GZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}GZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=YZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function TLe(r){return FLe(this.__data__,r)>-1}A_.exports=TLe});var u_=I((EAt,c_)=>{var NLe=em();function LLe(r,e){var t=this.__data__,i=NLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var jLe=hl(),YLe=Is(),GLe=jLe(YLe,"Map");f_.exports=GLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=b_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var P_=H0(),cOe="Expected a function";function KT(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KT.Cache||P_),t}KT.Cache=P_;k_.exports=KT});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var N_=I((RAt,T_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});T_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=N_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((TAt,O_)=>{var BOe=fC(),QOe=1/0;function bOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-QOe?"-0":e}O_.exports=bOe});var im=I((NAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var Qh=I((OAt,H_)=>{var U_=UT();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=Qh(),FOe=Ih(),TOe=Object.prototype,NOe=TOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(NOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,Y_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r{var UOe=j0(),HOe=Bh(),jOe=nm(),G_=vn(),YOe=$c();function GOe(r,e,t,i){if(!G_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var qOe=im(),JOe=HT(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((YAt,X_)=>{var XOe=Nc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((GAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var Y0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jT=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=Y0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var fMe=V_(),hMe=jT();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=YT();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var G0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var a$=Tc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=G0(),QMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QMe),n||(n=[]);++s0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var bMe=f$();function SMe(r){var e=r==null?0:r.length;return e?bMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var GT=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var b$=I((ilt,Q$)=>{var RMe=y$(),B$=UT(),FMe=q0(),TMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;Q$.exports=TMe});var v$=I((nlt,S$)=>{var NMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=NMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qT=I((slt,x$)=>{var KMe=b$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var jMe=p$(),YMe=GT(),GMe=qT();function qMe(r){return GMe(YMe(r,void 0,jMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var Y$=I((kct,j$)=>{"use strict";var _T;try{_T=Map}catch{}var $T;try{$T=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_T&&r instanceof _T)return new Map(Array.from(r.entries()));if($T&&r instanceof $T)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eN=>{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function G$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=G$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=G$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Tct,tee)=>{var p1e=eee(),d1e=jT();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tN=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tN;eQ.default=y1e});var iN=I(rN=>{"use strict";Object.defineProperty(rN,"__esModule",{value:!0});rN.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.default=void 0;var B1e=nee(am()),Q1e=nee(iN());function nee(r){return r&&r.__esModule?r:{default:r}}function nN(){return nN=Object.assign||function(r){for(var e=1;e(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tQ.default=Ph});var rQ=I(oN=>{"use strict";Object.defineProperty(oN,"__esModule",{value:!0});oN.default=x1e;var sN=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sN.default(o,s,l)):c(null,s);for(let h=0;h{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aN=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var T1e=Is(),N1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?T1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||N1e;kh.exports=M1e});var dee=I((Gct,pee)=>{var K1e=Nc(),U1e=Y0(),H1e=Jo(),j1e="[object Arguments]",Y1e="[object Array]",G1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[Y1e]=mr[tKe]=mr[G1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var iQ=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nQ=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AN=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AN&&AN.binding&&AN.binding("util")}catch{}}();Dh.exports=dKe});var sQ=I((Jct,yee)=>{var CKe=dee(),mKe=iQ(),Eee=nQ(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lN=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),QKe=nm(),bKe=sQ(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&bKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||QKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var oQ=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cN=I((Vct,Qee)=>{function DKe(r,e){return function(t){return r(e(t))}}Qee.exports=DKe});var See=I((Xct,bee)=>{var RKe=cN(),FKe=RKe(Object.keys,Object);bee.exports=FKe});var xee=I((Zct,vee)=>{var TKe=oQ(),NKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!TKe(r))return NKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=Y0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lN(),YKe=xee(),GKe=fm();function qKe(r){return GKe(r)?jKe(r):YKe(r)}kee.exports=qKe});var uN=I((eut,Dee)=>{var JKe=aN(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Nee=I((rut,Tee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Tee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length{var sUe=tm(),oUe=Fee(),aUe=Nee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Gee=I((aut,Yee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Yee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Gee(),dUe=Jee();function aQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gN=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function QUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g{var bUe=Is(),SUe=bUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Tc(),ote=fN(),PUe=Ih(),kUe=gN(),DUe=rte(),RUe=nte(),FUe=1,TUe=2,NUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",YUe="[object Symbol]",GUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hN=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case GUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case NUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=TUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case YUe:if(hN)return hN.call(r)==hN.call(e)}return!1}Ate.exports=JUe});var pN=I((Cut,cte)=>{var WUe=G0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function ZUe(){return[]}fte.exports=ZUe});var AQ=I((Iut,pte)=>{var _Ue=gte(),$Ue=dN(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CN=I((yut,dte)=>{var i2e=pN(),n2e=AQ(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CN(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((Qut,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var bte=I((but,Qte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");Qte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Tte)=>{var mN=yte(),EN=U0(),IN=Bte(),yN=bte(),wN=vte(),Fte=Nc(),Th=MT(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",Q2e=Th(mN),b2e=Th(EN),S2e=Th(IN),v2e=Th(yN),x2e=Th(wN),tu=Fte;(mN&&tu(new mN(new ArrayBuffer(1)))!=Rte||EN&&tu(new EN)!=xte||IN&&tu(IN.resolve())!=Pte||yN&&tu(new yN)!=kte||wN&&tu(new wN)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Th(t):"";if(i)switch(i){case Q2e:return Rte;case b2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Tte.exports=tu});var jte=I((xut,Hte)=>{var BN=hm(),P2e=gN(),k2e=lte(),D2e=Ete(),Nte=pm(),Lte=Ss(),Ote=cm(),R2e=sQ(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lQ="[object Object]",T2e=Object.prototype,Ute=T2e.hasOwnProperty;function N2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Nte(r),c=a?Kte:Nte(e);l=l==Mte?lQ:l,c=c==Mte?lQ:c;var u=l==lQ,g=c==lQ,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BN),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BN),n(m,y,t,i,s)}}return h?(s||(s=new BN),D2e(r,e,t,i,n,s)):!1}Hte.exports=N2e});var QN=I((Put,qte)=>{var L2e=jte(),Yte=Jo();function Gte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Yte(r)&&!Yte(e)?r!==r&&e!==e:L2e(r,e,t,i,Gte,n)}qte.exports=Gte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=QN(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var j2e=vn();function Y2e(r){return r===r&&!j2e(r)}zte.exports=Y2e});var Xte=I((Rut,Vte)=>{var G2e=bN(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,G2e(n)]}return e}Vte.exports=J2e});var SN=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Tut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=SN();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cQ=I((Nut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=QN(),tHe=cQ(),rHe=YT(),iHe=M0(),nHe=bN(),sHe=SN(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vN=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xN=I((Hut,cre)=>{var QHe=Qh(),bHe=uN(),SHe=vN();function vHe(r,e){var t={};return e=SHe(e,3),bHe(r,function(i,n,s){QHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DN=512,ure=new ru(DN),gre=new ru(DN),fre=new ru(DN);pre.exports={Cache:ru,split:kN,normalizePath:PN,setter:function(r){var e=PN(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),uQ={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===uQ.context,this.isValue=this.key[0]===uQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?uQ.context:this.isValue?uQ.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(TN=>{"use strict";Object.defineProperty(TN,"__esModule",{value:!0});TN.default=HHe;var MHe=FN(xN()),gQ=FN(eu()),KHe=FN(iu());function FN(r){return r&&r.__esModule?r:{default:r}}function fQ(){return fQ=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fQ({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gQ.default(gQ.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fQ({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gQ.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gQ.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var NN=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),YHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?YHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var GHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=GHe;Em.default=qHe});var Ere=I(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});hQ.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hQ.default=Im});var oA=I(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.default=void 0;var Ire=sA(Y$()),Nh=nA(),WHe=sA(iee()),yre=sA(rQ()),pQ=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=NN(),XHe=sA(iN()),Bre=sA(eu()),Qre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e{this.typeError(Nh.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". +`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;nthis[xF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[NF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[TF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,QFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),GF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),bFe=WB(),HF=th(),WF=bFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new QFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[GF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,kn=J("fs"),XF=kn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),Q7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),b7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[Q7]=t.readSize||16*1024*1024,this[ol]=!1,this[b7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[b7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){kn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[Q7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));kn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(ethis[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){kn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=kn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=kn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,kn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eN});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),NFe=dF(),tN=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rN=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),Dn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),TFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:TFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[GC]=null,this[Vc]=!1,this[Dn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[GC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rN]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[eA]=null,t=!1),t}[rN](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iN](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[GC]=S7.parse(this[ll],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[Dn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.lengththis[p0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sN](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nN](e);else if(!e&&!this[Cr])this[sN]();else{if(this[C0]=!0,this[Cr]){this[nN](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sN]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t{"use strict";var LFe=Xf(),N7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oN=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):T7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},UFe=r=>{let e=T7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size{let t=new N7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},T7=r=>new N7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?GFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var GFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aN(t,e),t}});var AN=I((uat,V7)=>{"use strict";var WFe=Xf(),G7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new G7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new G7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AN();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eNe(i),$Fe(i,e,t)};var eNe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tNe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tNe});var rX=I((hat,tX)=>{var rNe=process.platform,{resolve:iNe,parse:nNe}=J("path"),sNe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iNe(r),rNe==="win32"){let e=/[*|"<>?:]/,{root:t}=nNe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sNe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uN=I((dat,lX)=>{var{dirname:AX}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oNe,findMadeSync:aNe}=aX(),{mkdirpManual:ANe,mkdirpManualSync:lNe}=uN(),cNe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oNe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ANe(r,e);throw n}))),uNe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aNe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lNe(r,e);throw n}};uX.exports={mkdirpNative:cNe,mkdirpNativeSync:uNe}});var dX=I((mat,pX)=>{var fX=J("fs"),gNe=process.version,gN=gNe.replace(/^v/,"").split("."),hX=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,fNe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hNe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fNe,useNativeSync:hNe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uN(),{useNative:pNe,useNativeSync:dNe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pNe(e)?CX(r,e):EX(r,e)),CNe=(r,e)=>(r=dh(r),e=ph(e),dNe(e)?mX(r,e):IX(r,e));Ch.sync=CNe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mNe=Ps.lchown?"lchown":"chown",ENe=Ps.lchownSync?"lchownSync":"chownSync",QX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ENe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},INe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yNe=QX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=QX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;INe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wNe=process.version,bX=(r,e,t)=>Ps.readdir(r,e,t),BNe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wNe)&&(bX=(r,e,t)=>Ps.readdir(r,t));var Q0=(r,e,t,i)=>{Ps[mNe](r,e,t,yNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hN(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);Q0(o,t,i,n)});else{let s=_c.resolve(r,e.name);Q0(s,t,i,n)}},hN=(r,e,t,i)=>{bX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},QNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fN(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>QNe(r,n,e,t)),fN(r,e,t)};xX.exports=hN;hN.sync=vX});var FX=I((yat,pN)=>{"use strict";var kX=wX(),ks=J("fs"),b0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),bNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return bNe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(b0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(b0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},SNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return SNe(g),h();if(l)return h(kX.sync(r,i));let d=lo(b0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(b0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CN=I((wat,NX)=>{var dN=Object.create(null),{hasOwnProperty:vNe}=Object.prototype;NX.exports=r=>(vNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var MX=I((Bat,OX)=>{var TX=J("assert"),xNe=CN(),PNe=nh(),{join:LX}=J("path"),kNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DNe=kNe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);TX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);TX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DNe?["win32 parallelization disabled"]:c.map(h=>xNe(PNe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((Qat,UX)=>{var RNe=process.platform,FNe=RNe==="win32",NNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:TNe,O_TRUNC:LNe,O_WRONLY:ONe,UV_FS_O_FILEMAP:KX=0}=NNe.constants,MNe=FNe&&!!KX,KNe=512*1024,UNe=KX|LNe|TNe|ONe;UX.exports=MNe?r=>r"w"});var SN=I((bat,tZ)=>{"use strict";var HNe=J("assert"),jNe=y0(),Ht=J("fs"),GNe=fh(),rA=J("path"),_X=FX(),jX=SF(),YNe=MX(),qNe=vF(),$n=th(),JNe=nh(),WNe=CN(),GX=Symbol("onEntry"),IN=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yN=Symbol("isReusable"),Ds=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Gi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),QN=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zNe==="win32",VNe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XNe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WNe(JNe($n(r))).toLowerCase(),ZNe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Ne=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[VC]=!1,this.reservations=YNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[GX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[GX](e){if(!this[zX](e))return e.resume();switch(HNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Gi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new GNe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Gi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Gi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Gi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Gi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Gi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[EN]()}[QN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IN](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Ne(this.dirCache):e.type!=="Directory"&&ZNe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Gi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Gi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[QN](e),i();return}if(a||this[yN](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VNe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Gi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Gi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},bN=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IN](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Gi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Gi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[QN](e);if(t||this[yN](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XNe(e.absolute));this[Ds](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Gi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Gi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Gi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Gi](s,e)}}};ZC.Sync=bN;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Ne=Xf(),N0=SN(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vN=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)};var eTe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},tTe=r=>{let e=new N0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rTe=(r,e)=>{let t=new N0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new N0.Sync(r),nTe=r=>new N0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AN();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=SN();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xN;cZ.exports.getContent=()=>(typeof xN>"u"&&(xN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xN)});var CZ=I((PN,dZ)=>{(function(r,e){typeof PN=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),QTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:bTe.test(r)||!QTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,xZ)=>{var vTe=Tc(),xTe=xn(),PTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!xTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==PTe||e==RTe}xZ.exports=FTe});var kZ=I((eAt,PZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];PZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=xn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=b_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e{var P_=H0(),cOe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||P_),t}KN.Cache=P_;k_.exports=KN});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var T_=I((RAt,N_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});N_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=T_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((NAt,O_)=>{var BOe=fC(),QOe=1/0;function bOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-QOe?"-0":e}O_.exports=bOe});var im=I((TAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var Qh=I((OAt,H_)=>{var U_=UN();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=Qh(),FOe=Ih(),NOe=Object.prototype,TOe=NOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(TOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,G_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r{var UOe=j0(),HOe=Bh(),jOe=nm(),Y_=xn(),GOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n{var qOe=im(),JOe=HN(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((GAt,X_)=>{var XOe=Tc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var G0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jN=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=G0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i{var fMe=V_(),hMe=jN();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=GN();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t{var a$=Nc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),QMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QMe),n||(n=[]);++s0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var bMe=f$();function SMe(r){var e=r==null?0:r.length;return e?bMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YN=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var b$=I((ilt,Q$)=>{var RMe=y$(),B$=UN(),FMe=q0(),NMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;Q$.exports=NMe});var v$=I((nlt,S$)=>{var TMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=TMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qN=I((slt,x$)=>{var KMe=b$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var jMe=p$(),GMe=YN(),YMe=qN();function qMe(r){return YMe(GMe(r,void 0,jMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var G$=I((kct,j$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Nct,tee)=>{var p1e=eee(),d1e=jN();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tT;eQ.default=y1e});var iT=I(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.default=void 0;var B1e=nee(am()),Q1e=nee(iT());function nee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tQ.default=Ph});var rQ=I(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=x1e;var sT=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let h=0;h{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aT=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var N1e=Is(),T1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?N1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||T1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Tc(),U1e=G0(),H1e=Jo(),j1e="[object Arguments]",G1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[G1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var iQ=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nQ=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AT=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();Dh.exports=dKe});var sQ=I((Jct,yee)=>{var CKe=dee(),mKe=iQ(),Eee=nQ(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lT=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),QKe=nm(),bKe=sQ(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&bKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||QKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var oQ=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cT=I((Vct,Qee)=>{function DKe(r,e){return function(t){return r(e(t))}}Qee.exports=DKe});var See=I((Xct,bee)=>{var RKe=cT(),FKe=RKe(Object.keys,Object);bee.exports=FKe});var xee=I((Zct,vee)=>{var NKe=oQ(),TKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!NKe(r))return TKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=G0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lT(),GKe=xee(),YKe=fm();function qKe(r){return YKe(r)?jKe(r):GKe(r)}kee.exports=qKe});var uT=I((eut,Dee)=>{var JKe=aT(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Tee=I((rut,Nee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Nee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length{var sUe=tm(),oUe=Fee(),aUe=Tee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Yee=I((aut,Gee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Gee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function aQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gT=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function QUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g{var bUe=Is(),SUe=bUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Nc(),ote=fT(),PUe=Ih(),kUe=gT(),DUe=rte(),RUe=nte(),FUe=1,NUe=2,TUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hT=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case TUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(hT)return hT.call(r)==hT.call(e)}return!1}Ate.exports=JUe});var pT=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t{function ZUe(){return[]}fte.exports=ZUe});var AQ=I((Iut,pte)=>{var _Ue=gte(),$Ue=dT(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CT=I((yut,dte)=>{var i2e=pT(),n2e=AQ(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CT(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((Qut,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var bte=I((but,Qte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");Qte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Nte)=>{var mT=yte(),ET=U0(),IT=Bte(),yT=bte(),wT=vte(),Fte=Tc(),Nh=MN(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",Q2e=Nh(mT),b2e=Nh(ET),S2e=Nh(IT),v2e=Nh(yT),x2e=Nh(wT),tu=Fte;(mT&&tu(new mT(new ArrayBuffer(1)))!=Rte||ET&&tu(new ET)!=xte||IT&&tu(IT.resolve())!=Pte||yT&&tu(new yT)!=kte||wT&&tu(new wT)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case Q2e:return Rte;case b2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Nte.exports=tu});var jte=I((xut,Hte)=>{var BT=hm(),P2e=gT(),k2e=lte(),D2e=Ete(),Tte=pm(),Lte=Ss(),Ote=cm(),R2e=sQ(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lQ="[object Object]",N2e=Object.prototype,Ute=N2e.hasOwnProperty;function T2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Tte(r),c=a?Kte:Tte(e);l=l==Mte?lQ:l,c=c==Mte?lQ:c;var u=l==lQ,g=c==lQ,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BT),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BT),n(m,y,t,i,s)}}return h?(s||(s=new BT),D2e(r,e,t,i,n,s)):!1}Hte.exports=T2e});var QT=I((Put,qte)=>{var L2e=jte(),Gte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Gte(r)&&!Gte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=QT(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n{var j2e=xn();function G2e(r){return r===r&&!j2e(r)}zte.exports=G2e});var Xte=I((Rut,Vte)=>{var Y2e=bT(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var ST=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Nut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=ST();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cQ=I((Tut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=QT(),tHe=cQ(),rHe=GN(),iHe=M0(),nHe=bT(),sHe=ST(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vT=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xT=I((Hut,cre)=>{var QHe=Qh(),bHe=uT(),SHe=vT();function vHe(r,e){var t={};return e=SHe(e,3),bHe(r,function(i,n,s){QHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DT=512,ure=new ru(DT),gre=new ru(DT),fre=new ru(DT);pre.exports={Cache:ru,split:kT,normalizePath:PT,setter:function(r){var e=PT(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),uQ={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===uQ.context,this.isValue=this.key[0]===uQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?uQ.context:this.isValue?uQ.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=HHe;var MHe=FT(xT()),gQ=FT(eu()),KHe=FT(iu());function FT(r){return r&&r.__esModule?r:{default:r}}function fQ(){return fQ=Object.assign||function(r){for(var e=1;e=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fQ({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gQ.default(gQ.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fQ({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gQ.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gQ.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var TT=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),GHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?GHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});hQ.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hQ.default=Im});var oA=I(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.default=void 0;var Ire=sA(G$()),Th=nA(),WHe=sA(iee()),yre=sA(rQ()),pQ=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=TT(),XHe=sA(iT()),Bre=sA(eu()),Qre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Nh.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Nh.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Nh.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Nh.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Nh.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LN=ZHe.default,$He=LN;ym.default=$He;function bre(){return new LN}bre.prototype=LN.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eje=r=>r==null;CQ.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Tre=I(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Fre;bm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new Qm}var Qm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Qm;Fre.prototype=Qm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Nre(Lh()),Aje=Nre(oA());function Nre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||ithis.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(ON=>{"use strict";Object.defineProperty(ON,"__esModule",{value:!0});ON.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KN;xm.default=void 0;var gje=mQ(Mre()),Kre=nA(),Ure=mQ(Lh()),fje=mQ(iu()),hje=mQ(oA());function mQ(r){return r&&r.__esModule?r:{default:r}}var MN=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KN(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MN:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MN;KN.prototype=Oh.prototype;KN.INVALID_DATE=MN});var Yre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function Cje(r){return function(e){return r==null?void 0:r[e]}}Gre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qje="\\u0300-\\u036f",bje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=Qje+bje+Sje,xje="["+vje+"]",Pje=RegExp(xje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(Pje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Tje(r){return Fje.test(r)}_re.exports=Tje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Nje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Nje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Yje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Gje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Gje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Yje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eYe=die+pie+Zje,tYe="(?:"+[qje,fie,hie].join("|")+")"+eYe,rYe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tYe].join("|"),"g");function iYe(r){return r.match(rYe)||[]}Cie.exports=iYe});var Iie=I((Agt,Eie)=>{var nYe=Zre(),sYe=$re(),oYe=Vf(),aYe=mie();function AYe(r,e,t){return r=oYe(r),e=t?void 0:e,e===void 0?sYe(r)?aYe(r):nYe(r):r.match(e)||[]}Eie.exports=AYe});var UN=I((lgt,yie)=>{var lYe=Yre(),cYe=Vre(),uYe=Iie(),gYe="['\u2019]",fYe=RegExp(gYe,"g");function hYe(r){return function(e){return lYe(uYe(cYe(e).replace(fYe,"")),r,"")}}yie.exports=hYe});var Bie=I((cgt,wie)=>{var pYe=UN(),dYe=pYe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dYe});var bie=I((ugt,Qie)=>{var CYe=xB(),mYe=UN(),EYe=mYe(function(r,e,t){return e=e.toLowerCase(),r+(t?CYe(e):e)});Qie.exports=EYe});var vie=I((ggt,Sie)=>{var IYe=Qh(),yYe=uN(),wYe=vN();function BYe(r,e){var t={};return e=wYe(e,3),yYe(r,function(i,n,s){IYe(t,e(i,n,s),i)}),t}Sie.exports=BYe});var Pie=I((fgt,HN)=>{HN.exports=function(r){return xie(QYe(r),r)};HN.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bYe(e),a=SYe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function QYe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.default=RYe;var vYe=EQ(Am()),xYe=EQ(Pie()),PYe=dm(),kYe=EQ(iu()),DYe=EQ(xh());function EQ(r){return r&&r.__esModule?r:{default:r}}function RYe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,PYe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vYe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kYe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DYe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xYe.default.array(i,t).reverse()}});var Rie=I(YN=>{"use strict";Object.defineProperty(YN,"__esModule",{value:!0});YN.default=FYe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FYe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Tie=ia(Bie()),TYe=ia(bie()),NYe=ia(vie()),LYe=ia(xN()),OYe=dm(),Nie=nA(),MYe=ia(kie()),Oie=ia(Rie()),KYe=ia(rQ()),UYe=ia(eu()),GN=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function HYe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jYe=(0,Oie.default)([]),Pm=class extends GN.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jYe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UYe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KYe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof GN.default&&s instanceof GN.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MYe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OYe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Nie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HYe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Nie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,NYe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(TYe.default)}snakeCase(){return this.transformKeys(Tie.default)}constantCase(){return this.transformKeys(e=>(0,Tie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LYe.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qN=Uh(Lh()),YYe=Uh(xh()),GYe=Uh(am()),JN=nA(),qYe=Uh(rQ()),JYe=Uh(eu()),WYe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function IQ(){return IQ=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,IQ({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JYe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;yc.validate(B,P,H)}(0,qYe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,YYe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,GYe.default)(e));return t.innerType=e,t}length(e,t=JN.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qN.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JN.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qN.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JN.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XYe;Fm.default=void 0;var zYe=VYe(xh());function VYe(r){return r&&r.__esModule?r:{default:r}}function XYe(r){return new yQ(r)}var yQ=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zYe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZYe=yQ;Fm.default=ZYe});var Yie=I(WN=>{"use strict";Object.defineProperty(WN,"__esModule",{value:!0});WN.default=eGe;var _Ye=$Ye(nA());function $Ye(r){return r&&r.__esModule?r:{default:r}}function eGe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ye.default[e][t]=r[e][t]})})}});var VN=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aGe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Gie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Gie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zN.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tGe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rGe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iGe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nGe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sGe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oGe.default}});var Gie=ou(Sre()),zN=ou(Dre()),qie=ou(Tre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tGe=iu(),rGe=jie(),iGe=Tm(eu()),nGe=Tm(NN()),Xie=Tm(xh()),sGe=Tm(Yie()),oGe=Tm(oA());function Tm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aGe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cGe=process.env.TERM_PROGRAM==="Hyper",uGe=process.platform==="win32",$ie=process.platform==="linux",XN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uGe&&!cGe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XN});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Tgt,ZN)=>{"use strict";var gGe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fGe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fGe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gGe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZN.exports=ine();ZN.exports.create=ine});var Gi=I(Ft=>{"use strict";var hGe=Object.prototype.toString,Fs=uo(),nne=!1,_N=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hGe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_N.forEach(n=>n()),t===!0&&process.exit(128+i))};_N.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_N.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pGe=one(),dGe=/^(?:\x1b)([a-zA-Z0-9])$/,CGe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mGe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EGe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IGe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dGe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CGe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mGe[s],i.shift=EGe(s)||i.shift,i.ctrl=IGe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};QQ.action=(r,e,t)=>{let i={...pGe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yGe(r,t,i)}};function yGe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wGe,width:BGe}=Gi(),$N=class{constructor(e){let t=e.options;wGe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BGe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$N});var pne=I((Ugt,hne)=>{"use strict";var eL=Gi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QGe=Gi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=QGe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var bGe=pne(),SGe=Cne(),vGe=Gi();mne.exports=r=>{r.options=vGe.merge({},r.options.theme,r.options),r.symbols=SGe.merge(r.options),r.styles=bGe.merge(r.options)}});var Qne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xGe=uo(),nL=Gi(),go=Bne.exports=wne,Pr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${Pr}G`,down:`${Pr}J`,esc:Pr,getPosition:`${Pr}6n`,hide:`${Pr}?25l`,line:`${Pr}2K`,lineEnd:`${Pr}K`,lineStart:`${Pr}1K`,restorePosition:Pr+(Ine?"8":"u"),savePosition:Pr+(Ine?"7":"s"),screen:`${Pr}2J`,show:`${Pr}?25h`,up:`${Pr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${Pr}${r}C`,backward:(r=1)=>`${Pr}${r}D`,nextLine:(r=1)=>`${Pr}E`.repeat(r),prevLine:(r=1)=>`${Pr}F`.repeat(r),up:(r=1)=>r?`${Pr}${r}A`:"",down:(r=1)=>r?`${Pr}${r}B`:"",right:(r=1)=>r?`${Pr}${r}C`:"",left:(r=1)=>r?`${Pr}${r}D`:"",to(r,e){return e?`${Pr}${e+1};${r+1}H`:`${Pr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return oL.line+au.to(0);let t=s=>[...xGe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Yh=I((Ygt,Sne)=>{"use strict";var PGe=J("events"),bne=uo(),aL=lne(),kGe=une(),DGe=fne(),RGe=Ene(),Dn=Gi(),Au=Qne(),Om=class extends PGe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RGe(this),kGe(this),this.state=new DGe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=TGe(this.options.margin),this.setMaxListeners(0),FGe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Dn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=bne.unstyle(i);let n=bne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function bre(){return new LT}bre.prototype=LT.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eje=r=>r==null;CQ.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Nre=I(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Fre;bm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new Qm}var Qm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Qm;Fre.prototype=Qm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Tre(Lh()),Aje=Tre(oA());function Tre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||ithis.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KT;xm.default=void 0;var gje=mQ(Mre()),Kre=nA(),Ure=mQ(Lh()),fje=mQ(iu()),hje=mQ(oA());function mQ(r){return r&&r.__esModule?r:{default:r}}var MT=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MT:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MT;KT.prototype=Oh.prototype;KT.INVALID_DATE=MT});var Gre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n{function Cje(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qje="\\u0300-\\u036f",bje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=Qje+bje+Sje,xje="["+vje+"]",Pje=RegExp(xje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(Pje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Nje(r){return Fje.test(r)}_re.exports=Nje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Tje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Tje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Gje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Yje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Yje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Gje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eGe=die+pie+Zje,tGe="(?:"+[qje,fie,hie].join("|")+")"+eGe,rGe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tGe].join("|"),"g");function iGe(r){return r.match(rGe)||[]}Cie.exports=iGe});var Iie=I((Agt,Eie)=>{var nGe=Zre(),sGe=$re(),oGe=Vf(),aGe=mie();function AGe(r,e,t){return r=oGe(r),e=t?void 0:e,e===void 0?sGe(r)?aGe(r):nGe(r):r.match(e)||[]}Eie.exports=AGe});var UT=I((lgt,yie)=>{var lGe=Gre(),cGe=Vre(),uGe=Iie(),gGe="['\u2019]",fGe=RegExp(gGe,"g");function hGe(r){return function(e){return lGe(uGe(cGe(e).replace(fGe,"")),r,"")}}yie.exports=hGe});var Bie=I((cgt,wie)=>{var pGe=UT(),dGe=pGe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dGe});var bie=I((ugt,Qie)=>{var CGe=xB(),mGe=UT(),EGe=mGe(function(r,e,t){return e=e.toLowerCase(),r+(t?CGe(e):e)});Qie.exports=EGe});var vie=I((ggt,Sie)=>{var IGe=Qh(),yGe=uT(),wGe=vT();function BGe(r,e){var t={};return e=wGe(e,3),yGe(r,function(i,n,s){IGe(t,e(i,n,s),i)}),t}Sie.exports=BGe});var Pie=I((fgt,HT)=>{HT.exports=function(r){return xie(QGe(r),r)};HT.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bGe(e),a=SGe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function QGe(r){for(var e=new Set,t=0,i=r.length;t{"use strict";Object.defineProperty(jT,"__esModule",{value:!0});jT.default=RGe;var vGe=EQ(Am()),xGe=EQ(Pie()),PGe=dm(),kGe=EQ(iu()),DGe=EQ(xh());function EQ(r){return r&&r.__esModule?r:{default:r}}function RGe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,PGe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vGe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kGe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DGe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xGe.default.array(i,t).reverse()}});var Rie=I(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=FGe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FGe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Nie=ia(Bie()),NGe=ia(bie()),TGe=ia(vie()),LGe=ia(xT()),OGe=dm(),Tie=nA(),MGe=ia(kie()),Oie=ia(Rie()),KGe=ia(rQ()),UGe=ia(eu()),YT=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;eObject.prototype.toString.call(r)==="[object Object]";function HGe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jGe=(0,Oie.default)([]),Pm=class extends YT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jGe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UGe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KGe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YT.default&&s instanceof YT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MGe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OGe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Tie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HGe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Tie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,TGe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(NGe.default)}snakeCase(){return this.transformKeys(Nie.default)}constantCase(){return this.transformKeys(e=>(0,Nie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LGe.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qT=Uh(Lh()),GGe=Uh(xh()),YGe=Uh(am()),JT=nA(),qGe=Uh(rQ()),JGe=Uh(eu()),WGe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function IQ(){return IQ=Object.assign||function(r){for(var e=1;e{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,IQ({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JGe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;yc.validate(B,P,H)}(0,qGe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,GGe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YGe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XGe;Fm.default=void 0;var zGe=VGe(xh());function VGe(r){return r&&r.__esModule?r:{default:r}}function XGe(r){return new yQ(r)}var yQ=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zGe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZGe=yQ;Fm.default=ZGe});var Gie=I(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=eYe;var _Ge=$Ge(nA());function $Ge(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ge.default[e][t]=r[e][t]})})}});var VT=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zT=ou(Dre()),qie=ou(Nre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=jie(),iYe=Nm(eu()),nYe=Nm(TT()),Xie=Nm(xh()),sYe=Nm(Gie()),oYe=Nm(oA());function Nm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Ngt,ZT)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` +`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` +`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};QQ.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=QYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var bYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=bYe.merge(r.options)}});var Qne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xYe=uo(),nL=Yi(),go=Bne.exports=wne,kr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${kr}G`,down:`${kr}J`,esc:kr,getPosition:`${kr}6n`,hide:`${kr}?25l`,line:`${kr}2K`,lineEnd:`${kr}K`,lineStart:`${kr}1K`,restorePosition:kr+(Ine?"8":"u"),savePosition:kr+(Ine?"7":"s"),screen:`${kr}2J`,show:`${kr}?25h`,up:`${kr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${kr}${r}C`,backward:(r=1)=>`${kr}${r}D`,nextLine:(r=1)=>`${kr}E`.repeat(r),prevLine:(r=1)=>`${kr}F`.repeat(r),up:(r=1)=>r?`${kr}${r}A`:"",down:(r=1)=>r?`${kr}${r}B`:"",right:(r=1)=>r?`${kr}${r}C`:"",left:(r=1)=>r?`${kr}${r}D`:"",to(r,e){return e?`${kr}${e+1};${r+1}H`:`${kr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t{if(!e)return oL.line+au.to(0);let t=s=>[...xYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Gh=I((Ggt,Sne)=>{"use strict";var PYe=J("events"),bne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Rn=Yi(),Au=Qne(),Om=class extends PYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Rn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=bne.unstyle(i);let n=bne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` `),c=l[0],u=l[l.length-1],h=(i+(t?" "+t:"")).length,p=he.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Dn.isObject(e)&&(e=e[i.status]||e.pending),Dn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Dn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Dn.isObject(s)&&(s=s[i.status]||s.pending),Dn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Dn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Dn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Dn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Dn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Dn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Dn.height(this.stdout,25)}get width(){return this.options.columns||Dn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FGe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function TGe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ggt,xne)=>{"use strict";var NGe=Gi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=NGe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LGe=uo(),OGe=Yh(),MGe=Pne(),bQ=Gi(),{reorder:AL,scrollUp:KGe,scrollDown:UGe,isObject:kne,swap:HGe}=bQ,lL=class extends OGe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MGe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,bQ.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LGe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KGe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UGe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HGe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=bQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(bQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jGe=Mm(),cL=Gi(),uL=class extends jGe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` +`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Rn.isObject(e)&&(e=e[i.status]||e.pending),Rn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Rn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Rn.isObject(s)&&(s=s[i.status]||s.pending),Rn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Rn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Rn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Rn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Rn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Rn.height(this.stdout,25)}get width(){return this.options.columns||Rn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function NYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` +`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var TYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=Pne(),bQ=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=bQ,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,bQ.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedt.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=bQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(bQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jYe=Mm(),cL=Yi(),uL=class extends jYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` `),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Nne=I((Wgt,Tne)=>{"use strict";var YGe=dl(),GGe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends YGe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=GGe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Tne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Gi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qGe=uo(),JGe=dl(),WGe=hL(),pL=class extends JGe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qGe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WGe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zGe=SQ(),VGe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VGe)=>{class e extends zGe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XGe=dL();function ZGe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZGe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XGe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vQ=I((_gt,Yne)=>{"use strict";var _Ge=Yh(),{isPrimitive:$Ge,hasColor:eqe}=Gi(),CL=class extends _Ge{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ge(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Yne.exports=CL});var qne=I(($gt,Gne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Gne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Gh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Gh.dispatch.call(this,e,t)}append(e,t){return Gh.append.call(this,e,t)}delete(e,t){return Gh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Gh.next.call(this):super.next()}prev(){return this.focused.editable?Gh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Gh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Yh(),sqe=hL(),{isPrimitive:oqe}=Gi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` +`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=SQ(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vQ=I((_gt,Gne)=>{"use strict";var _Ye=Gh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` `,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):sqe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xQ=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xQ([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xQ([...s,t]),present:o};case"save":return{past:xQ([...i,t]),present:""};case"remove":return o=xQ(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),QL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=QL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),bL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=bL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Gi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` +`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xQ=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xQ([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xQ([...s,t]),present:o};case"save":return{past:xQ([...i,t]),present:""};case"remove":return o=xQ(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),QL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=QL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),bL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=bL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(` `)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!cse.hasColor(s)&&(s=this.styles.muted(s));let o=d=>this.margin[3]+d.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=hqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let p=cse.wordWrap(c,{width:this.widths[0],newline:a}).split(` `).map(d=>o(d)+this.margin[1]);return i&&(u=this.styles.info(u),p=p.map(d=>this.styles.info(d))),p[0]+=u,this.linebreak&&p.push(""),[l+n,p.join(` @@ -224,16 +224,16 @@ attempted value: ${s} `)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=PL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});uF.name===B.key);B.field=n.find(F=>F.name===B.key),P||(P=new DL(B),a.push(P)),P.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,P,F,H)=>{let q=await c(S,P,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let P=S.value,F=S.key;if(S.type!=="template"){P&&(g.output+=P);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,P].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=P;P=await l(P,g,H,p),q!==P?(g.values[F]=q,P=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,P=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(P=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(P=r.styles.danger(q)),p===g.index&&(W!==P?P=r.styles.underline(P):P=r.styles.heading(fse.unstyle(P))),p++}P&&(g.output+=P)}let m=g.output.split(` `).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(P=>{m[P][0]===" "&&(m[P]=g.styles.danger(g.symbols.bullet)+m[P].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` -`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Yh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` +`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Gh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` `].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",h=await this.hint()||"",p=i?"":await this.interpolate(this.state),d=this.state.key=t[e]||"",m=await this.format(d),y=await this.footer();m&&(c+=" "+m),h&&!m&&this.state.completed===0&&(c+=" "+h),this.clear(n);let B=[u,c,p,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} `;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mqe.unstyle(i).split(` `).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use + to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),TL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` +`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use + to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),NL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=Qqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` `);return i&&(d=this.styles.cyan(d),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` `)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Qqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),NL=class extends bqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Qse.exports=NL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Gi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Nne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Gi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Yh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Yse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var Rqe=j0(),Fqe=Qh();function Tqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var Nqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Nqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=vn(),Uqe=oQ(),Hqe=zse(),jqe=Object.prototype,Yqe=jqe.hasOwnProperty;function Gqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Yqe.call(r,i))||t.push(i);return t}Vse.exports=Gqe});var Wh=I((ght,Zse)=>{var qqe=lN(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Gm,zh)=>{var _qe=Is(),ioe=typeof Gm=="object"&&Gm&&!Gm.nodeType&&Gm,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var rJe=Jh(),iJe=AQ();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kQ=I((dht,aoe)=>{var sJe=cN(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=G0(),AJe=kQ(),lJe=AQ(),cJe=dN(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pN(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var DQ=I((yht,doe)=>{var poe=fN();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var QJe=DQ();function bJe(r,e){var t=e?QJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=bJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var boe=I((Qht,Qoe)=>{var yoe=Tc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}Qoe.exports=xJe});var zL=I((bht,Soe)=>{var PJe=DQ();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=DQ(),RJe=moe(),FJe=Ioe(),TJe=boe(),NJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",YJe="[object Symbol]",GJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case GJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return NJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case YJe:return TJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=vn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kQ(),o3e=oQ();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Toe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Toe(),f3e=iQ(),Noe=nQ(),Loe=Noe&&Noe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Goe=I((Rht,Yoe)=>{var E3e=Uoe(),I3e=iQ(),Hoe=nQ(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Yoe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Yse(),Q3e=j0(),b3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CN(),R3e=goe(),F3e=pm(),T3e=hoe(),N3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=vn(),H3e=Goe(),j3e=Rh(),Y3e=Wh(),G3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",e4e="[object RegExp]",t4e="[object Set]",r4e="[object String]",i4e="[object Symbol]",n4e="[object WeakMap]",s4e="[object ArrayBuffer]",o4e="[object DataView]",a4e="[object Float32Array]",A4e="[object Float64Array]",l4e="[object Int8Array]",c4e="[object Int16Array]",u4e="[object Int32Array]",g4e="[object Uint8Array]",f4e="[object Uint8ClampedArray]",h4e="[object Uint16Array]",p4e="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[s4e]=lr[o4e]=lr[z3e]=lr[V3e]=lr[a4e]=lr[A4e]=lr[l4e]=lr[c4e]=lr[u4e]=lr[_3e]=lr[$3e]=lr[Woe]=lr[e4e]=lr[t4e]=lr[r4e]=lr[i4e]=lr[g4e]=lr[f4e]=lr[h4e]=lr[p4e]=!0;lr[X3e]=lr[Joe]=lr[n4e]=!1;function RQ(r,e,t,i,n,s){var o,a=e&G3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=T3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,b3e(o,r))}else{if(!lr[g])return n?r:{};o=N3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(RQ(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,RQ(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?Y3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),Q3e(o,B,RQ(y,e,t,B,r,s))}),o}zoe.exports=RQ});var XL=I((Tht,Xoe)=>{var d4e=Voe(),C4e=1,m4e=4;function E4e(r){return d4e(r,C4e|m4e)}Xoe.exports=E4e});var _oe=I((Nht,Zoe)=>{var I4e=HT();function y4e(r,e,t){return r==null?r:I4e(r,e,t)}Zoe.exports=y4e});var iae=I((Hht,rae)=>{function w4e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=w4e});var sae=I((jht,nae)=>{var B4e=im(),Q4e=HR();function b4e(r,e){return e.length<2?r:B4e(r,Q4e(e,0,-1))}nae.exports=b4e});var aae=I((Yht,oae)=>{var S4e=Bh(),v4e=iae(),x4e=sae(),P4e=$c();function k4e(r,e){return e=S4e(e,r),r=x4e(r,e),r==null||delete r[P4e(v4e(e))]}oae.exports=k4e});var lae=I((Ght,Aae)=>{var D4e=aae();function R4e(r,e){return r==null?!0:D4e(r,e)}Aae.exports=R4e});var hae=I((mpt,N4e)=>{N4e.exports={name:"@yarnpkg/cli",version:"3.8.2",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Ymt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Gmt,Pae)=>{"use strict";var eWe=oO();function tWe(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=eWe(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=tWe});var Fae=I((qmt,Rae)=>{"use strict";var rWe=kae();function iWe(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var nWe=iWe(rWe),sWe="text/plain",oWe="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),aWe=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===oWe)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==sWe)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function AWe(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return aWe(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=AWe(r,e));let n=nWe.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Nae)=>{"use strict";var lWe=oO();function Tae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=lWe(r);if(r=r.substring(r.indexOf("://")+3),Tae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var cWe=Fae(),Oae=Lae();function uWe(r){var e=cWe(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=uWe});var Hae=I((zmt,Uae)=>{"use strict";var gWe=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=gWe(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?fWe(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+hWe(r)+n;default:return r.href}};function fWe(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function hWe(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var NWe=Qh(),LWe=Ih();function OWe(r,e,t){(t!==void 0&&!LWe(r[e],t)||t===void 0&&!(e in r))&&NWe(r,e,t)}AAe.exports=OWe});var cAe=I((Kyt,lAe)=>{var MWe=fm(),KWe=Jo();function UWe(r){return KWe(r)&&MWe(r)}lAe.exports=UWe});var fAe=I((Uyt,gAe)=>{var HWe=Nc(),jWe=kQ(),YWe=Jo(),GWe="[object Object]",qWe=Function.prototype,JWe=Object.prototype,uAe=qWe.toString,WWe=JWe.hasOwnProperty,zWe=uAe.call(Object);function VWe(r){if(!YWe(r)||HWe(r)!=GWe)return!1;var e=jWe(r);if(e===null)return!0;var t=WWe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==zWe}gAe.exports=VWe});var DO=I((Hyt,hAe)=>{function XWe(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=XWe});var dAe=I((jyt,pAe)=>{var ZWe=Jh(),_We=Wh();function $We(r){return ZWe(r,_We(r))}pAe.exports=$We});var wAe=I((Yyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=vn(),A8e=fAe(),l8e=sQ(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var bAe=I((Gyt,QAe)=>{var g8e=hm(),f8e=kO(),h8e=aN(),p8e=wAe(),d8e=vn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}QAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=GT(),y8e=qT();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var PAe=I((Jyt,xAe)=>{var B8e=Ih(),Q8e=fm(),b8e=nm(),S8e=vn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?Q8e(t)&&b8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}xAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var x8e=vAe(),P8e=PAe();function k8e(r){return x8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var D8e=bAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Rn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Rn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Rn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Rn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Rn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Rn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Rn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Rn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Rn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Rn;fle.exports=uE});var ble=I((XBt,Qle)=>{var eM;Qle.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("W00SIYoaRVoFeCTCpK2uEWBZYB7OX/AAQ08mi9yGwsJNo8QY69QrfcaPM7BtNs+Rl/qfqdqdl9Oz0oDNN7d0Mr3I7aTlLCHiU0IEARh8yLYygYma27NMRzCp5QaJrDHvvzFVpeJ5XrkUtfMXWn1Nm4u4a6ruXjaRhlxB7rik9DWXDZ31oFb8d0LTXwLPp1tVNVnT+obHP1HDPGsVxEqb9mqqszlAZSbVwwkMqxcFaL+obNtUmlZXwX8uRjXSaRYCbbr+ML1f75t+ZrvEuiTcUqwgX8dPmVSZFGWc7tPdwjzMjIDBACUQIL4D1/Nbd7v7voeZwSwFgNhagOR3PpPxLottpFRhAlI2V5AoSGX/7feojY2RkSonTmZ33t4iS0Jb++fOhQKTMhXWbYBcZWXhmWs/m78kZhN4dLi0P5b+s+3c6f6lECCcAtYksr8NX/sm3TTeNr+7jQ0CJAFCyMR2+8xkWqOc+UL7jnZlmYspcuAbkLiFBsF+zZX3B9cvwjm9a61e+Q4l07cv45sFa2LKGE8d7LJ/0DdQJpFcNyP5YL9yp38Wd0RLfi6kK/Q2xQoebornGxq8x8Cn62DknVNkwoyeDpsR10n6q33KOeQPwMojV53fHahhGznzbwZQA+QYSwfE2gawrz/NICG9f5utqhfKepW8g0D47cugDUPt7NL0Y9oUxd3CDOn3bqcbC3CN0wOtaP2ygi6ejriYgFnlxz6lqCGNOy1ztmkEBrmXopAu0Ey+5RARGx8bTgzazC0lkA3dRH9bJEcD9X93cwOptN6rJfWtld8CToF5LQd8DxbNj7sqzgvRvzF2Ma48ZxdwgyNh8KD7zmozwz9Jia72XNQZW4C1VsDLtFAYUWf9kxcizoFEdFcAfVg4aY+AhH8encCVfoxL3GQHnEl1iPUexRUMOxDq1eGaEnTDIbiNtEb8H85W58eVeLGZ/lZSZchJwLymCxvltqAP+LS974sjOEEOKnOfhFGv8Jfl5O+DxWnU5vT/+en3X9cmCuLlHb1goLd/tIpKDFmFVuKkm76d/a0Nqtbnla8wBXfmMpYvZeWYFrsKdX7VjK4C3T/WWgr8uPC7brZkdvqg5wINjfdG9y2HMC2XKPfFXihmiBSTpkv4+jYJhEbnVWjAkwzfhZ09gbr6YFZBX+PgwJIAfwKP0AX+2TEoYFOn14KuFrMQafa6qJu/oSI3ZHZjApsR6nu+jRekzAX5aV2WKjQUuSk4i5wXn81D8m28n39fAwkOoHwCXXb3oeffbUKi8N/8/OFgue+9y1h+nlK39m2I9JQRMZn/QuSZWtYLEIFoJe4CJXLLZTzq9QMkOzo470hx0QHZTEoEkbFo12/IYe8uJJMXjCHP79w37dMyPZN0/DXaKwW45Te9nKVJG71JZJ86LWFCLKw+m7YdQUcB+cC2/itd3UxnmNCrjYhIDgkOSiDbOrOO6o3Qw7LbRymfWw3ME1X0278+BOOU0HErBGD0DsXhqMO6+nLzAWJLMXv/FvXrXoopGHdptNjDU4C2p+131uXktQqlPY6K6P5GJd5m2EmvI3T6Tg/4QxYEdWEfUdgEQa14SBIPZuAhsNGdj3j0QbKo8a4oZAfe2p0NQcy1j7zfJ69oPE1knaYUHUO42rNpzt8hXQiJW3PmJ+jZTpwdXpXXnZB34gMueS+agVCnZ7NoooRCIszVtEqZJn/V+G0peka7N0lxTyZUW9ESwRvXLReCfN4p1rovB2hf9hl/ZyQ65y0HQPbQRLNUgMsJBAus9uh/UlxbGFHogaypASE6CKM2z1kZcV6zfBkfrVulzU6roCDvD4OOitq0M1363G2d7Ij02O+dDeD8KgCIh0F2aN7oCvaTvCG5MnqXURXaD3LcBvXfrGFYpE8b7dR3kix2f0+7YczlNTdVjHSSuF4eVdncQ57KyUkyZJ9Qmht5gg/w5C6cXNTRVAtNldmnh3cdO1RVdbaSBTqowqPi5VfSFnAVnYFioimLr0Ga4eYsKwsEQsuB2vU3o7N2wznyivJJKGb3xQIJ/Ifg/BLNRc8vYjTPFxSHShBqloL2M4rWvoiixN2xlnRqlAiOUyWfnHDnQCn1JPSxHiPOUkKGy+vjHlXjq9M2Gd9RWnL41YmyKk4cJPWaqzGuWCP8Ly0k1ge7ehJ5EC6DaqHBeEhX850MWSs14ijczaXvSUB0/5z1Y/oNvLiCARxMBJdotmKNsy6dAKlTwgMNKfmh580+ldAHIM8ZhiOF0hwMuGHlSFCrqv16mxyAFNVf4Mgxz0kBaTxn8zUCi44xuw/M03HaRs4TiMCziUwuNOSbrX3zmJkdanncgwGTJ1+sL17zFKQe6TBKhCWq6rfkZXeq86deqrkYl3LcSSHiM5MPYhOpUTqWEhgdNg4keAGbV2uU1BB1acbQMu1rU6Gu1UrNI570iNMBOt8mXrHMfBlWLf4p/TyNQ82rJ2tz5RtrWh5Eu0Lc8kMyAKLjcsE9FHvAETd7lPwZRkgMTmPez+AUy82Qn18Wq5URrs9M5aWPgVfPZ6Pd52GR8DSZ8FfzfBJjQcc3xEItfZ72VbDUqEbFRztipsddExYrKgEqROrAAV7LFBVrRlKC3W91BjncB1ei0YXBJWmfJRAkyCNy4OBnRm8ZEpNK/vst+e8sXFw6ExSmNSkI8x55jP7zgMEKkt4cUJnFOg6P41h0n2ZAKDm3Ll77MoK1r4OAOG0X1RLxGslky+/WpGUjh9jEeSFtGE4Ryn24sfpoESTws9JQZuiw+vo0j0MsX2UudsYLv1pLm1DRPiaoKuxqmDkPGWgUoVvp2mGt6zvDFClhuizVGfnPE4mrJar9R5uGksvFd2vz3euhvpNePr73Sr8oqYLyeUUzmtMRlG0jr5l6fHSmNDu2Top5zqaK6KOQoAx1J4IUvw5ex+XwSRQM73/uIDNqk3R3pIZ5zF0d/FQiT5IOrqrlzu1rUu6ctU+cVe9qZdT/MkB5tGUTM29Srggl9O66FmuE6ZxdHBw9JRLegZU9AtEKmj56wnax3HJSphoX6UY/TSvd4Fpwjd+uPW79a1ytA4o2kelOiIOcMNg7XqHBbV1gZYRUqjh1D4D/cItb9zmudmoaY9flUxm/uQBmNoy7MSsMKg+xuaItcUY52mQGDR8/vuFwmU33QWMjOkfAIUJTdRM0aT90QpWaaKT0cdMO0HqbgW/wGxXPi0uLKPFs07YGIPg4oxnTuuawNPeQrEy/5RpHCxy1QHF70gP26gF/x5Q02W8KNNwX/e0T/4MEIw9x6FFbcIIErci+yIXt5LiSW3ePr2VEBQpAHlR6+ZkdHXsL3SA3XgkKmutICNvq1TizOLYwv96a23PG8bw1w4w9X5oSkmsM8JKWlPZi+ihOdpoXT5fvQMckttM5HgyVDCvBhfFCrmXUyZCyz6zXQsERqjZ8KgHf0yziNzUTtKedTd9gODBeJy/8h24BcXGwH9P7es89HCY7aejN4rTI/uJ7bCopnlP909Y3+la+5qo6t1TbZrz/cX7K6e74g79PF9ipdTAscZz9NFkDjl6mT2kyLIu+QRzG3bvr8rhHv2dUj8vNQ6gV7WrZVjLsO7g4hulvl7mzzJeAe4992CVTtvqbJFI9WXVaoLWbDFVyvaEuSa2jqTlNymAYyfgT65oGZAATkXWYKGcxLFVgPaBpyuxrLP1KI+kFnL4qfV4vZwe40k4EbSwcoDCXGMkbnbDUipWl3YVgaQBsW6Xjssz9Ehl2Noe18Sycw3b3m0IMug6tjI2YFbMbrFHA+BagN0CXYL5/xPx3X2wtRkfIEMMiZcVSB0XY/HkVU6JsQseLD9ibPQT9gXDEXKjgFtB4Y3fRaUyWRKIWmNlAVhECTmOovIh61dvLE8pWgHmGfmsO5UIMceea7GIcdMNybC1U7XL3c9EZXqeSczrWJHfBEYoLCuP/cfIoSgl4+3fqoywcDF2dP1xOA7DzUyBYUWA1f9tHHrfzn/1NXvA2z7mOb0DWIpLQTaKCsuZc3P63+VSstVOgfJSLF0e8lYqPHoL3kUTUXGTt6aLlohNFY2IWHxwcU6B7NNSpO3YK8F5Ixc6gQCeUIAjClydecdVSnPWlyyIJilmk6kMGRbb4OhHX33OxOAamEbLJMMxz2vaEa2Tqe7+NNp4ooGvcNALqzPoybAAMTqhwqC3gwt49OKsT+HN826Rr8XtEk3WSq4E3RXnMngqyVYK9ZeZdlnCMf+HPnAurTqYH5pt7BOwzIPCxbjdvFXdowUn/3OjYcU5qa820Kn5uvelBm3zCjttXY4960JM3Ahb2jcWnXAwfpJUywMDyD5eonvPUhgGAL7exNrHrFRkiV0jPghVJSkvZ7fZvcW6dvBgoH+CKWClUBAIvVUH5hmobaHQKhFYXn9K2EYGpWaqm0PXaJ0g9vxHd20xKsO7CnIcqNyC5tW5xXsW1/HJdCfwiz7LEdmvBjWbDIuDyfnWyU76oR/aIxgC+8oVv3r22HQq/J2BY+zUk8FXmfzb24pWchi8LzCTahyBu6fQa2FCPgwTbQ/XSKk91yIQI+SEWE8aDo0lkxEFJvnVuRTidjygge8jAd82ezGYIb+dcqevheGbUiIznQROP+/KiRtHlPwtqKpD3TMFIXRtzxdJXiYtLBBA6uTAbO2zCa7ky+5nPUd/PfljcxHkyLsmvFZIfLz8577ZWiB8IMvktjhfCiPnofujmgYsFLW/2Jp4jOOPzRZx2OvQOmt069otvzMEP1MlnIPh9q/K1gpmxPacja/U5yPhNtMBGJ85jwqNpTBeN8Y0h3ig1+CSyTw93W577XpnQmEKvb6+d7U0nl1fRA4bams5q9glNI75rJpdBy8gfxixVj9hYA4DyKOmq+iS2q2egs0QE7S0yOokPCtGI5N624MhsV4DIY0bKHJZuHRNj6GeVwM/teO9URYd2GEIGkX3TNI1rm+49T8xqVWCajJnfPoFP/9pHvY4JJhusXL+/PaCWmfw1yfh5847fFW8vPCg4elVEf8qUO9Amr+z69OG1M+g6BrUJZ6G2N4xdME65NGnl+ZolkTtjnKzrbj4qnVEo+h5EopHXlOnx6rKCWYaqyvndR+ZHTz6KAMnZrNPyIi98w8KnQS9eTdJh0yLHDVDKB1lMwLaps5BjZWzOP2myBMBdQNexknlPqG3ps5RxLZU/cintXpMaUIpZ1F/7dNKSUE9b3zyi3DJibYLDm65wPeBajQKbhQo05o9MHOw0JKTQHUFKVgmXz6PxmnjtTY3MA4Z3s2nir/OjWydC3M2z1oTgC7rh4arwjJB93+CBWmY1Z5ag6b7fYKbvMYj0hIuffPqAujxXoR3Eyx+5AUmO6nOHZDKyeIRL9x2xHn77s1/BQMw66cyjOgKOmHhinMc6i08NnQdGxLBeyBbODvUfEnN5HezX+ZMLxU0BTt71YwIHMgDRKxb6/lSff75ZA8gcq9RV5mN6LsHC9P5pfvYzgI5fj7QrvPNCwXrnhafr+t58MvUw//4CB2PMoBZ2vQik76hvBBaPcXS0Gu1v8/asjkupLUwqXMhrZ5lbLtLRpAwns4TVEOqMNtQ9dVtbSoZEzqlKz7LJHVLHZELgab/lbA7xIswy7kO5Pc4/eZ6wcW/SJXSo5CJ9RjoezFYvVmoQ6mRD6/beuVAYOJT3zTmdb5hKJNHDDzFJnEepP7NyCkdT5E9zEdUbrkmwhnSOMVGfBqBqJd0J2aZz13jzdCBzxqqLSjYanQ94hTzzGigqAIZBaQFiqSEzCO31ifCxMl8dxCzDmzPhhCJxv3DmWZgBVvFsjF5Ep/bJIDtCrRX6+xJoh8EJNUkMxm/kicuICddHAD70balJwxYBq3xzbEE4DEVvhmQnpMhiMoYyi2LFvJvD8JH0DTui+m7lOwXIdFM8IqsVpyGwG6y8IxXnF01xI8c17hqrf8ZOA2xD7CEAv9ZhwP+PYNaVJ2SVLA4afhH2gBoRfxCxx8JyzsYCtmy3GtIMCZHAM24vY6XuSSCqrexy20TmfKRTEi3H6mB5N2qq52HsUcAhMAhBaN1Q+SbTOuOrHvXlWn1gPkbqyzluFdYxQREa9SUcKMv59YB0zHV7yVXLIMi2AmFmA+ocqrccJsAczB4moGVMEUFnI77j/ioD9cWAsoK0qSVq7An9b0HB/p3d510UoPfsm3eScEl1II4PVpPc4c2y7adtagfAh2vcT4vq6mKbJgOmHOQLWkPBXd+WfXwsLQ5FuWOEeA7fjFyOMKfiMeZogIbHheK6AZcrwIfcNropRCe9eQ5l67famwFFcOrakYF39UriF0LGO55fcIBvp/0VQnI9NQzdfa8kP/dV1wO8u1egnSBLCwDhUUWxNILqqveOSO+JbL8STFrj6y9uxu4r2HvmDkaWDgyhCzGvrovr1ireXW8h392svnvvfHdz+e498d1qLWbD/6Q1sqvHwGHg9RUWcKYEjGRWpeFVU5ztmwoTUqwkunxxkt4ZJkspa4zB1okL4k24f3CHM/kmXgIPE9T7BFhzCBrrsWstzw+cbjpMSLHS6fTNSXrnmCwlrfL95cT5vXj1dklouUmWD7BEhsl6cUeWmNbU+/EkYs/PmH6c6HRZ6/k38EJVdy27u5fnDUYd6CYOP2hjE8yIfpnm3a27eu8fZmCqyDbng0H68+KVDf2RdoZbjjQWCo6ePBTJPY4PK52cD3ijPhqXPZiS3zg7ydUbFLXlrGvrrJ6zbwCBrQWyfHbzNH+QH9gw/aY2+3rw3p4OSrpiWHeRqf17o9yxN/xLvec89/eAq+4ROLnbQVyAB8f6+gvAuUNrWLRO3NAxvozDJp4BVVSYu95PHLWls8JGmUaJYZ7zRGiNpLb3r6XzkSC4xw8AMg0dMIcg0fXahBcZu2TtDFg6buN0PA/hArtj0Mv0txoY5UI98MbFNjjNyb+WlO3rfJf2tD18b9uvKo/btKPXiabJh24DqptpF8PDTpsM7QfW/FI9eWkVbbiwJH1Uy/PP2fX+0jkQOVk3F553lIlfUUjnIe+pCl6XYd9rPz9aHRvxfrv6VhfHs8f2mlqnzZ6vvZftxW949kGkTbxN3A2u2Bdw0zVkHx8GaV/XiJ4CYWh9KdBLVcQzzjkhzd1y45WPaD6zbi7ssrLX5J3NV/vZZn59kXmNb9gXm+VKlz+ZEcmeKsMtqxp55baxbUg4YFh13jhlqEKCdfHpgwS0FTTZX0uZHbXTnTzEc3rlYD5+NllzgdOf2hyr1xRjqvYw79T2Ui1Ef8Xccf8W8OHpkgxOgm09AoS4eHXr8NMfhMmU5+//SMPB34sjKJO0/gn3wDfxjWdrSCNjkXvib6nTl308ZSwLvt4nb5g7oMUHrWOI8+YzBmp/riG2w7JHxoKPY6F7zA/uXCdmnM81WVZbvpf5g4fw8W3HQm8x0omzGOIlyGQz/v1uajzo1qV8BSiOi49VYlbxANWtb5BW67ARZH/y1rFt5uc3lvoahQv7Userr2kVt2XUwKDEeWJvEmmz46oHEvDSXQs+eBk/TKiPJGqrVcbAui2tsgiUFF2z36iByltOgcjEnVtbTPmXHMFTG9MzkDACwHMLYnjTt9DB9j3aBCIn/fysNnZ7G1uQUaWg/W1PzIidpb8JhHZdhp23MPsQ840i9m8HYkZ3CoB2FU3oLh1vumG69aJt8NW4wYT3dIB95NI2GZrZ9OqHfGMLXUWJFd2F8Q14O9TGoaw2ZG2fpbBNA2Hz0mLIh977kBFD880cGNVESkvzBk2y3pJf8s0FeIRGvFb2w+nz0Fg8Pudj3DWF1tER4nk4KPjzu+jd+a757t3y3bvpu3wEMg9aqTRaGID9wqAzRX3LLGZACbh6a43kZaKgYnnULYD7RYPPFPW3z2bGlJEovzdHxPLEah7dihv1fmWiFkerGqlJem6PTtW2uDhEbbDKJo7O7I4chUkspXN/pChPAmAu8cVZPq+KDFkZBKmpWTs/9wUZ+tv8HbmGfnWPuafXEWqaDEsntxIx5sR6Vxqjx5iGdf0vDpaK8KqlUzlqjq5hLlNJb/vMsUKsl1If+cIjqeRY5lhhu/We9AaEMFNw7TegXN1jq3wZNdQq5/rgDHuFt3MpsV3ygy8G6F6/xe5SbuF/TE0HRjyDmMkw7mltOcx885wW652XyTdZX2ImdvVCu4yIInNI3AvSrL+/LL2I8RxZ+mhNWQB11mNklvCTH5JyyRc3rLkCnuEuPfdF9vgHpZPbZoalQ2dqyOJbY30RLz5bVSUDlZKJ+vxkkQJ9BxQBkxcsXi/Q1lIfi0AUrpL/BSB18QI+gbK/L06AiUJqpef0AdoqhsTi57//XL6xmUjG/nP4Jiw+GZ+75ycTPufDwXq41U5xuudt69M4LjufnLEby8O/4gO6t8TXjMTntR/eiOLxv2iKFvvHGEp87FcXGQ9VKK04PPjef0HDjb/u/JhMPl2uW0RRweUU7Z44Tysjc3rNs0K/zJ8u0OWB5Vc52VNkBP9Ryo74RyuLLgZkHQ40EKXtfv2kmR5kg88W74VIBVkZvXZzr9+7Jh1s2HjIvOOF03uP3WSXgeig058UjugAcR12keoIgcFyLUzTih5vskTpiYze/a1Z217Rh10M+HUYUlSMEW3HlOwnIhlx2kJBPlybtDTvJDIW6YEeJDkiyY2+iZbBLZ58qAuf6gYkfGs22JuogkUU43fhQ2RNqsEsSDGCQ8az868bAjoBoORtvHVbGTFtB5yGtPRvvIElx9rY0tHNfvNoVu5Whoy7yUwxeH/jZImMEN7YYHQRK4Mk7+3NHme1p9MH77lK0QCJMWYxvKMfQGEzSH2gXpALwUfsDMsYfYbvCjCv3ITHoNBw7AXX223Bq63VsjGI++3XrQu4nPAmq8pWP7qADHzxnLu6AmTwnjQfEQ57UCZi83UVjguIvdRG2vgI23fr4Zg76rFFJCYzx6yL/by2jPr+3d8/nRRhnMKzwEZIK/zmPhLNWEWbUxb+kOCbqLTvtlhdWEvlxlF5D/N+8l1tCy8IyfluzZsK4bUCurhrKBfVGsbhGwS+HlGgXfT97z/K2tkJ7BvuWoZwnpG4wF4KE/Frrg2gS1rXK4CQhPax00d1UdC3rCUshs6816J/kvi3t7Fo6Dd0+RYhPMx4na2nyCQmxS+0lSHdduVscSj2RdTmi4VWlj3KJk5n3FIaoEm8aJqTX2AKK+64CKOMmV8eJBKOggFPPD8oHCIEgPw7d1VH+hiPRWDwN+CQ4RZeQyGClvV+Y59VOGtGoa01iOp42U06h8sKh8qEh3ix/Mr8DtbmfYWzKRixFD9O19eL5hpGKdDkjoy+VHmVtAcLCJkcNlGO+Ik+xYrcUMLJ3qUXq6+siwUXWV8xv3Xqvr840ioaSrr5+qmrMRsIID8swJ3b2JhvBDsz9zPrLpAKrTsADz+FRa2d06ohwOguSteeUMKhDP7nARDvfmik8HUmlRdw9gBOQzUHTfm3I9C4D6F53P3oE9jhWrs1AsERmUZ1H8KUPl9ibib1WmmTtej/O8ZYLjiZbErMHF9sQnXB7yU6m+8KJ6JxZzcaacuGjTtFlTBLWs4juFNQ6XQZKRsR5DJbKdQbTcy7ENyEfsXe+P8nhJFHZOQceRo+iP75GVBYmLKLCWCXtmB94T64rXoyYE0xHfQhbZAOwgZee8eX++K6fxHhdNbxOENJ6KyDa3DQ0BJ+k/0E/zPd+UGcnh0CUo6lx6GRKJL2HeIU3k00EdSYnu5rTlaTajDsnGE4hUxEytTeNh/PdY7vdv3wF/+NBshJJFeLrjASWv25yfKzjdVT7oI5dKo/9ZjmXc4BzBUfiXd6W0omAqBi4RSIySUvVDvbVpItOfFMuAATYw4fFkVmmTdvuLxe9lTm/GesnzbP60+lRKiETAhYNyG1kijYcXi7p0aPnsmTaXRksvYA//HT/eenbzL2sWzlP2YPxnjj9Nz3BQhR74WzZe/HyP4lrbSwuDsYeVwj2xvfEI2C8rIFspjRdadNqmk+QBuLmIRJA1pleQG/nIsYxE9RtjN9djnZbEnm2+w2IL/xPmvl/16Cc0nqL7YRBK6RGSRBPJKaXkzcWu6pRtOqR24QoLn+zCyKRxSRzrFTody5ECmLBut6exmWLv38Us5na4pqsRkxefNuV3Qf0IVfFLQO36p02ceHdtmDVM2AWCbRKHXxAcOkXSXIJ3WaTJGCp2I7tkB7S1rCA4Z1DiLFMtLz6T7SVh7N7syydChwB7Htq2VzHwENypcL2Q4VdjkgKG3hJQblfH3CBu2tyV8enRgrWLVZdOZPll/TI0XfOymisZhb7oTYn/QEA94luDM7tLBgYSsCY7lvhIzWYRwQipIaFHdvLUDpYAdzs9/cJpVT0QZQ/atG4IoaWlPAAkJcryVtBi6ov9oJc95JoycHkPaFtxm952xPkpP5gMN9ZOevw+7Xruq6+8e15tHljBvA9oFSdE3WWYOyiTWMGKWTNLcyec5cOMQc0fT+MIfrdpd6nBXcnzvqpBgVQ9Ai/QaK3ywcLD6EewZiH2oOrDS0OUhZ3hZEBVB+5L+FMs2w8Pe+lsAiPpyFhyoVbRbXEwRY/q4WXQ3CKYF23ekByq3u4PMwiUE4nKHkxodNyxxdmGuTHvk9E4BnNihEdh54agpLneAzzOXp+L38dR2sWm/di9YJUMRCMFxzs0J/nl/9RE0DpapXv96EU7oxS1bG98MBGwUBBGPg9PQ7I6qpFuL5cf2NYI7pVYGawFdmt5rwzGvFoiZBlCCftAt1aPDhKF6gtJyWWQ2uLTULTjcrvKWqEWtzFpNj/rKy0qZPNdQMcnKEXn5T0+AThRukVoEM+pFSsqh3DpEFJuBX9aTceH3hA3fvZCr55m3/7ipoOvnVnRk30ME3P247qed2Mr0mF97Nr5V4N1utXRcGmJ5KU57rzvzZJODkEg0uqxwGtSlTPU2PONgUC+WOAWWPMtQ4h6kaf7Jf9JbQPhKmjqfg9clz5rO8EQhFhwhvlKkMCIDTrJP+6rdR1QDIjzDTef1OhaY1cma8Q1OQ5Ut5sAzDFc2L9xArx9r6fPDyLkbAqJGZMhkp3uF3MqkEQ2aAipuQLPvB/26iFiMMApU3bEWvPKUUVLGwAn/4rsN/OgSAMhg5CwWztSYOnCyIgVMseqondd0a4e9+dYeVkEZN4OIiS4NOG1LP8C+EZdIh2KAZYdXa8CVVhkrZJfA0AblshrDx3oUZolFZJBMwvccovYSTgJjUrUBEN042T8d4Zan+yjXxF+3AIyhcr/lIms8/WMr7faIOK8eCb39rvNH2HGwCzR/Kz0RWK3RaAXVlR5PFvMTIGvbPAEt3np0dH7ujlN3HUOSdUg4Z9Ipb5ncDJXBnYhMLBvbUF2vEHht6GuB3kIYBcyHnn+2lCmJ9MO8iBGwExycpH2TrSEcilk3tnppLrc3Sktx1G13HBQGF8Y3oFnff0Tit3wRjUMErCgSwzIX/v+96zcc6wIaPPm2jDsYvzBfsNclkyadlSZVJQ4YaeitxgXYSGeBf4SLG0McMk6ha43SXjeI0/UXBd8exHGfI8d4zwAH1N2FLBXbEkg/t5XKEMkoPC46RGLJ94QoXFDPHWlZ3alUOkbm+cO8sXRBmYF/Lq9BoYK6D16QkcJueYt9GfYeCPujfxq64FFnOKj83FUi+CMnXSDiw/FCDhGsJOvImoNh4iZrFbKPKegYrO0zDprWU9PogZiA9heyCiOOAXQIDVGH85TEDt+7+RmB9mFq2sA+rbYEYwWuSX8g3XXEfMULXUykonMjLtzpMRkE6SfIUKj/q9psc6TAxUj8r88hFvr9HtF2xedRz6Jh5a9RyGw8J5VjBa20TnDVw1CZJkux6DA9VUhGUvpBuUjLwEUwRJjVs0LfbFrzdVLcUhyBhd24fNphuyBcb8jcc1/L2ME5pSomWK/c03MECknhrfwFP/01QdSLYH1g0wFAfqCHguwC7/IHRlo2f0Xj0p+EjRA05IdnjsCtHtRUmiW5CnmyLKdGxqQQ5W8Ey7vANMXqLfmys/GZ0pxPuVRN0QW7dXLayDVpFZMDQTCMxDrc84tsjnW1mqYPpG/8LQcbMUz0IVQ6Jgyb6djLzI53D9lzXvgVV1oqRJtBxjG9aNbq0Wb9pv2Apv5xdENqGkHl7jkjizIUwSAlpYA53rSOEFflgTdXNXAXvjGBdQgJLWh7paa5duKbwce4GGFGqEjjBvg2/ss6n2hHO+aMswQe2kR4YcENlOh27aacwclMLxgiHxlqPDl8i9c7euU8iP4VtcjVVPuMjoenOG01Ca3UWez30m9Jk3Pkcz/Gcz/FcH+OdFbuM/C9pJKUKeHY5Maaw6bx1W1svnYVUw3Zilku/22OGcmXfTzUNpAPz0lSQcOb18ToqEyPwEHfm97kIN4CXSLB2RwW2NReyTxsiPHcIUSIUzOR5pkTZs1cF+ypDCUGKj+/YakAoPKRCH8pjdSQEh5CFeHstJSfJILYbEI7ygzthEtSwikeO/t6wA0UWoaUANbgfvSC6T+75A35+yQ0Ie8/utrMlVJJZJvc6QRebTqwvq/o/Aak0MB9ycLJlnR8IIjZRXiQBX3fFBZkiHxxfJtJfMlYOIQsu9o6R9mXZzEyD3spjSA3ijQ0Yh01nDs4jtiLNEU1rj41zHTgq5TUf/0l1UHwbSxkYMz3qt80d6pfcWTnA13DblIHtv3eXjf+tXIrLCCJj8L+45B9srADs/VyjRS/nhwwaoJ37wQ+cIl8kEXftvWWg/v8JBxjl9g4BNge4cY+6+g0/D4wVvroiZOC68QNzSDa1QbPSnF/qj8cXOTyR6wu+xPhGzuPRxogR/EMvPFJnxoZi2FN+jBDJ3Mt5+GE7JAfpMGJ80+9droO4U4Zn0ZoxgDdl5AU1d6CKS/jBiPf+Q8po3e5LUbA08GoeF+CKAcJp+epj85PwSsiAIA+dys6XWI6AlNev+pLa2cVZG6CNnhdVcAE2rb+O6zcVRFGdJRUY6uuskTDWVZU8tyYRqouVizVn1lX/7zh5ujPnLqG2/gOMUAegC1VV8dgFeFvjx/3EDFlrqhAPQRoQh6Bk+1O1xiEaOHnX60ioRgzx9dpi3CRiuCEZ/JqTCLR3iEXIAzKsgOHSNK1tcWqCvlerWmPFNKnxxuebjwPpMXV7q45jal/4zDP6L/BalEwJRnPdMm7dcqgnAMLGyTDTBTnUQh1kkPUBuTv17wks4qWoFhWKPOQyp0f/+/6VErv29Tg/5iywfNWl98K7lCzZBVtKl/yCX4iWHVhql56FHm8XhqVc8uUmsnTP3sCWe2hpPjRZx+hdL4HkTnspO0RpaXiDJrlRTKkE7pkNBNe/hlysJFRRSA0pLMeIRTVbsKMARAuTWXDg+S7Ycc5Kt//wDLL9rC9q+4rKbIJodnIb5HPbroMLTFtHuCs4TkZrGPTSiYcyPDQxx6nsfSjk7YrN/tNsAkBuM4nhP93Gvmjb3QQj7KmIQ6BZsQFUlHSLi23CjOJBIw42Z9BWrZxALdzAZH64hYA+BtEg+ueKL0xBkplyoIDKygeUMGknu5G2CUqZorA9T3EP12Ur26gVcDJ/aDvaLGuBxu1FcVxdNhuAtlnNxcF3Mf/P0pjyRdGn8QaBGp1Fe0ZIecA4Oq5NgTwIMz731Nh7aLpux8Z1bmEH0XcueiHQDrleonewXv9CVDtd5XlDKBvEhQly+uM4PHFYgAkkJTEfY+sbashFrK2XqPmysvryxBJS0gFRWDauRiTSl29oGOYpoLHTTprqrH+UjZWWVaSWxymvS+cq5Me1qjgSqnVZncaSndf8WvLq63l26kSmWJoaIaLpEksfTkiEuUJSMMsS5IRGujvrQCmsfGXrBQJOqnU4ZasGDOsoFaxPs2M3Agdph6MLwt9tgiviRX/ADOt9RHCCZBzvtbyGDpydAPCM+chRjK8ySm6Jp1st7WJKxdTyFHOhl4xo39lGQTrhwdPhI4C038ysYl2yBVmbACxdu2Wbc+vmoB7USzaeCEnnpQffHgYzXm2CjTGr4RsX+6exs4TvT2X8b0VtCdni5kMInmWtES20zLlPLUcrhe9QgLmuE1Q7swOonzDFlYP57q4XtaNOjDxXTT0wCrIj1Cu7c6/H2HPPTdA4QWoPevAHjHDOsMQLyUd1j54pKFn+xtrUHnkG1hxuGt8UADXNbsJ5OSflXhz4PaH4a1vGVBZf9SVAvmH3ABvmVSGHy43p6rDVkvQiI8yZdJDTKFewhEotRfPORz7+12dmo9EJs6y7S2eytnyNifVYGbG4bLncAM/vxe0v1wh/4vAcBP/yMutIYH4Ih5GrW08gYS29uAT7Zfa+LNPQYjRygHrpdO7M9Ze9+Mrndk5TVvFx6WsfA8ULTfKyKq6F64sbnOz1zJJflM3kSDXKf7ppA7IjIYc7eTjskj8EIyFbv+qYdQq5yvYnw++hVEfj79aRbn+ceiZWV89hamrLHmb1YVp5ThJbUHSiY+YPMylOFZjODifKrXWdvTUWD7kpmtLXgwl63aOgw1WwIu/WxewG4iktZAIfsqzoSsdMC76tIaB6g1WS6ePS1VGU4J8en8+qTSLVXz1mhoVHFmoOKamux6wTXk6s7duvGizfm4q8umq380hgyWseS9mJ5TtgKi+Xqgf3rsRJQaRcO5WY2klNzvSldYXT+0Rxd2j2H41V2FIwrCybACPngyp1I2JwVEh8nRRiLJ0nj4++0TvlDAKYhzWZT2tR/FotwEgtzfTri9goMpxPExHC2AY2vVzSA5/56l+eNPDhEhJiZRYsCy1S6sS4tgpl5jWlo335+CQuHD7nzVAkyyJ/EVEWr/t2AqJZqtKcoSKmlVjmA/lkn8rH+skJoNUUqHFhi/JS0xeT+TOfbOpoaj956uRbU51bDli+yYwGvJn6etmqbTE08ObjzN60P28VqoyLatPhE9iFnP8Iw+sljEvMI26t7oo1fDaYcbPy/YuSSorzVEYh3kjlAC/tnfOGwxPAl2cPTYctslWKa67RuEjmpWq8oujS7mKNKv+R7/CsEVAOl4IcrgNnvcHHiWBeHj5A5FhELuykqZJ5S/O5IgxrZc3rZCuEDZ2Es22yUdt0wIFiOTxEct5MRx7Cgwl+Fms9GAjrcR6QKRwhhJ4HYl6n+c9WEK/ZcUjz64Z9O+GsDaEsx3kT1uyTOvyETlBeFcdz49uphAfloKqBecKs6Qd+yQmZc4eDoZt9PLqgXA6scnyof5UGmQt2GdLz5GCcjt2B9aaVDo9ty2B6SUz8OGTu2U2kbdA7dXtrwH/tUCIur4TFxdG2ZKarGo/xKH+mW9SGrcagxpdnDtnneDcASXje7/TP4FIzGMl0paRF3rVZeWfbmbISliFNyo9DwLMNGBLg0twscjNciGGCbnY9Bo8RL2EdC3UIFEw0fHJIJjkwzlLJnVrshIMtMe1nxLF9226LKxsjgP1mTsC0U16AIJT9LMdL7NjhmWumhogKjAZLhhEual/NQyiEcNBCBXKyG8cx+EDpcNwXRWFI+9d02wGn2BUNZ3EL5uB1agMvyDygjq0Tm1VdcDVo5+5dxqtwgLC3HNvG1gDwbDWPH454ZrSEpb+FW7eJ+H7QQ/MbNWnl4SD6ccwqN7Mej5RSpNvWB5Lct3gvulkHoQh8JuLI/BCZtTwJvzVVfFy1HwJ+dK9Zglyhsa6HWLcSp1z1zzUwhaA+lLF4Nf1xmGcGchc0WWyeyj9ROyuQwzGDQsfVwwStnCAQ4GKpAKmkZWawwtunB7SekcqPHeO8NOC2Np6L31B7haVp9WP+5LjCrIKQGfN6ZztbIxd+6VNmZTKe2aiUvgg3wPNvhhWDHGaOcG01Ug/Ho3ZQYSfDyri+9BGO9HvkWpCq5bhm2g3g30T7p1+V+R9qyzIv8ivKQ1CCf/U3d+WmaXVq7oBVRIN0uOxY2+IgbbyTYK4k0Z/UrTRDvDJu1ZsYe92UfTp5Xcs7i0OMMgyIgh3hYsgAlgnQnjYL//YZToN5M/zVf/Od6Vz/2/i8mHjuylGw0lyjgAVHf5ILg2ALC5tIdRRBrqaK1m/83stbwi9suFao4xR5Jil3VcYjKrPoxw7CjkWF0iIDU4zf0AsRyKz7P2YKv48CfbF6vpWqxwF2Uk8+LaIpf5k5y7R2twJoH9davqZFvHW82ZXfOzW93vbg7OUSNovkoH/Ga78T9/3rcr/PWOWFD4XISCZdIzfnfJvyPGB82eJRaDiK4+5hLTFVS9iInicBY9m7ytB8eCAYurH9yf7YiYdirPaPoRrLtYtXGiHjEJooTVFUGvJkZnGEDw==","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((V0t,Nle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ts=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Tle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Tle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Tze(e,t),Nze(r,e,i,t)}function Tze(r,e){return e.fs_.mkdir(Ts.dirname(r),{recursive:!0})}function Nze(r,e,t,i){let n=Tle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Yze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ts.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ts.relative(Ts.dirname(e),r).split("/").join("\\"),s=Ts.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Qqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),TL=class extends bqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Qse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Gh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t{var Rqe=j0(),Fqe=Qh();function Nqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=xn(),Uqe=oQ(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t{var rJe=Jh(),iJe=AQ();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kQ=I((dht,aoe)=>{var sJe=cT(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kQ(),lJe=AQ(),cJe=dT(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pT(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var DQ=I((yht,doe)=>{var poe=fT();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var QJe=DQ();function bJe(r,e){var t=e?QJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=bJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var boe=I((Qht,Qoe)=>{var yoe=Nc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}Qoe.exports=xJe});var zL=I((bht,Soe)=>{var PJe=DQ();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=DQ(),RJe=moe(),FJe=Ioe(),NJe=boe(),TJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",GJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return TJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case GJe:return NJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=xn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kQ(),o3e=oQ();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Noe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Noe(),f3e=iQ(),Toe=nQ(),Loe=Toe&&Toe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,Goe)=>{var E3e=Uoe(),I3e=iQ(),Hoe=nQ(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Goe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Gse(),Q3e=j0(),b3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CT(),R3e=goe(),F3e=pm(),N3e=hoe(),T3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=xn(),H3e=Yoe(),j3e=Rh(),G3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[sWe]=lr[oWe]=lr[z3e]=lr[V3e]=lr[aWe]=lr[AWe]=lr[lWe]=lr[cWe]=lr[uWe]=lr[_3e]=lr[$3e]=lr[Woe]=lr[eWe]=lr[tWe]=lr[rWe]=lr[iWe]=lr[gWe]=lr[fWe]=lr[hWe]=lr[pWe]=!0;lr[X3e]=lr[Joe]=lr[nWe]=!1;function RQ(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=N3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,b3e(o,r))}else{if(!lr[g])return n?r:{};o=T3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(RQ(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,RQ(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?G3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),Q3e(o,B,RQ(y,e,t,B,r,s))}),o}zoe.exports=RQ});var XL=I((Nht,Xoe)=>{var dWe=Voe(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xoe.exports=EWe});var _oe=I((Tht,Zoe)=>{var IWe=HN();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zoe.exports=yWe});var iae=I((Hht,rae)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=wWe});var sae=I((jht,nae)=>{var BWe=im(),QWe=HR();function bWe(r,e){return e.length<2?r:BWe(r,QWe(e,0,-1))}nae.exports=bWe});var aae=I((Ght,oae)=>{var SWe=Bh(),vWe=iae(),xWe=sae(),PWe=$c();function kWe(r,e){return e=SWe(e,r),r=xWe(r,e),r==null||delete r[PWe(vWe(e))]}oae.exports=kWe});var lae=I((Yht,Aae)=>{var DWe=aae();function RWe(r,e){return r==null?!0:DWe(r,e)}Aae.exports=RWe});var hae=I((mpt,TWe)=>{TWe.exports={name:"@yarnpkg/cli",version:"3.8.3",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Gmt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,Pae)=>{"use strict";var e8e=oO();function t8e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=e8e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=t8e});var Fae=I((qmt,Rae)=>{"use strict";var r8e=kae();function i8e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var n8e=i8e(r8e),s8e="text/plain",o8e="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),a8e=(r,{stripHash:e})=>{let t=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===o8e)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==s8e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function A8e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return a8e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=A8e(r,e));let n=n8e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Tae)=>{"use strict";var l8e=oO();function Nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=l8e(r);if(r=r.substring(r.indexOf("://")+3),Nae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@"){"use strict";var c8e=Fae(),Oae=Lae();function u8e(r){var e=c8e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=u8e});var Hae=I((zmt,Uae)=>{"use strict";var g8e=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=g8e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?f8e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+h8e(r)+n;default:return r.href}};function f8e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function h8e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var T8e=Qh(),L8e=Ih();function O8e(r,e,t){(t!==void 0&&!L8e(r[e],t)||t===void 0&&!(e in r))&&T8e(r,e,t)}AAe.exports=O8e});var cAe=I((Kyt,lAe)=>{var M8e=fm(),K8e=Jo();function U8e(r){return K8e(r)&&M8e(r)}lAe.exports=U8e});var fAe=I((Uyt,gAe)=>{var H8e=Tc(),j8e=kQ(),G8e=Jo(),Y8e="[object Object]",q8e=Function.prototype,J8e=Object.prototype,uAe=q8e.toString,W8e=J8e.hasOwnProperty,z8e=uAe.call(Object);function V8e(r){if(!G8e(r)||H8e(r)!=Y8e)return!1;var e=j8e(r);if(e===null)return!0;var t=W8e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==z8e}gAe.exports=V8e});var DO=I((Hyt,hAe)=>{function X8e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=X8e});var dAe=I((jyt,pAe)=>{var Z8e=Jh(),_8e=Wh();function $8e(r){return Z8e(r,_8e(r))}pAe.exports=$8e});var wAe=I((Gyt,yAe)=>{var CAe=kO(),e4e=qL(),t4e=zL(),r4e=JL(),i4e=VL(),mAe=sm(),EAe=Ss(),n4e=cAe(),s4e=cm(),o4e=K0(),a4e=xn(),A4e=fAe(),l4e=sQ(),IAe=DO(),c4e=dAe();function u4e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s4e(l),d=!h&&!p&&l4e(l);u=l,h||p||d?EAe(a)?u=a:n4e(a)?u=r4e(a):p?(g=!1,u=e4e(l,!0)):d?(g=!1,u=t4e(l,!0)):u=[]:A4e(l)||mAe(l)?(u=a,mAe(a)?u=c4e(a):(!a4e(a)||o4e(a))&&(u=i4e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u4e});var bAe=I((Yyt,QAe)=>{var g4e=hm(),f4e=kO(),h4e=aT(),p4e=wAe(),d4e=xn(),C4e=Wh(),m4e=DO();function BAe(r,e,t,i,n){r!==e&&h4e(e,function(s,o){if(n||(n=new g4e),d4e(s))p4e(r,e,o,t,BAe,i,n);else{var a=i?i(m4e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f4e(r,o,a)}},C4e)}QAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E4e=q0(),I4e=YN(),y4e=qN();function w4e(r,e){return y4e(I4e(r,e,E4e),r+"")}SAe.exports=w4e});var PAe=I((Jyt,xAe)=>{var B4e=Ih(),Q4e=fm(),b4e=nm(),S4e=xn();function v4e(r,e,t){if(!S4e(t))return!1;var i=typeof e;return(i=="number"?Q4e(t)&&b4e(e,t.length):i=="string"&&e in t)?B4e(t[e],r):!1}xAe.exports=v4e});var DAe=I((Wyt,kAe)=>{var x4e=vAe(),P4e=PAe();function k4e(r){return x4e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P4e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var D4e=bAe(),R4e=DAe(),F4e=R4e(function(r,e,t){D4e(r,e,t)});RAe.exports=F4e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Fn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Fn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Fn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Fn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Fn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Fn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Fn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Fn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Fn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Fn;fle.exports=uE});var ble=I((_Bt,Qle)=>{var eM;Qle.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((Z0t,Tle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ns=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Nle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Nle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Nze(e,t),Tze(r,e,i,t)}function Nze(r,e){return e.fs_.mkdir(Ns.dirname(r),{recursive:!0})}function Tze(r,e,t,i){let n=Nle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Gze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ns.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ns.relative(Ns.dirname(e),r).split("/").join("\\"),s=Ns.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r `:"";return o?g+=`@IF EXIST ${o} (\r ${o} ${l} ${n} ${u}%*\r ) ELSE (\r @@ -242,7 +242,7 @@ attempted value: ${s} ${a} ${l} ${n} ${u}%*\r )\r `:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function Hze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh +`,g}function Hze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in @@ -257,7 +257,7 @@ else fi `:u+=`${g}${n} ${a} ${i} ${c}"$@" exit $? -`,u}function jze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh +`,u}function jze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" @@ -299,19 +299,19 @@ if ($MyInvocation.ExpectingInput) { } ${t.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE -`,p}function Yze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ts.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Nle.exports=AM});var yM=I((fbt,rce)=>{rce.exports=J("stream")});var oce=I((hbt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((pbt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var bl=I((dbt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var bM=I((Cbt,gce)=>{"use strict";var B5e=bl().codes.ERR_INVALID_OPT_VALUE;function Q5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function b5e(r,e,t,i){var n=Q5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:b5e}});var fce=I((mbt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((Ebt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((Ibt,hce)=>{hce.exports=J("util").deprecate});var DM=I((ybt,yce)=>{"use strict";yce.exports=Tr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Tr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mb=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mb.from(r)}function P5e(r){return mb.isBuffer(r)||r instanceof v5e}var kM=QM(),k5e=bM(),D5e=k5e.getHighWaterMark,vl=bl().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,T5e=vl.ERR_MULTIPLE_CALLBACK,N5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Tr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Cb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Cb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Tr,Symbol.hasInstance,{value:function(e){return Cb.call(this,e)?!0:this!==Tr?!1:e&&e._writableState instanceof dE}})):Cb=function(e){return e instanceof this};function Tr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!Cb.call(Tr,this))return new Tr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Tr.prototype.pipe=function(){Ap(this,new N5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Tr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mb.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=G5e(this,i,s,r,e,t)),n};Tr.prototype.cork=function(){this._writableState.corked++};Tr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Tr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Tr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function Y5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mb.from(e,t)),e}Object.defineProperty(Tr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function G5e(r,e,t,i,n,s){if(!t){var o=Y5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=TM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),Eb=0;Eb{var yb=J("buffer"),hA=yb.Buffer;function Qce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?bce.exports=yb:(Qce(yb,NM),NM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Qce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yb.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wb=I((Qbt,Dce)=>{"use strict";var Pce=bl().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var Bb;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wb(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),Qb=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[Qb]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((Bb={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[Qb])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(Bb,Symbol.asyncIterator,function(){return this}),xl(Bb,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),Bb),w6e),Q6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,Qb,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[Qb]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=Q6e});var Oce=I((Sbt,Lce)=>{"use strict";function Tce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function b6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Tce(s,i,n,o,a,"next",l)}function a(l){Tce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Nce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var vbt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),bb=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return bb.from(r)}function R6e(r){return bb.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=QM(),T6e=bM(),N6e=T6e.getHighWaterMark,Sb=bl().codes,L6e=Sb.ERR_INVALID_ARG_TYPE,O6e=Sb.ERR_STREAM_PUSH_AFTER_EOF,M6e=Sb.ERR_METHOD_NOT_IMPLEMENTED,K6e=Sb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,YM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=N6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=bb.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,Y6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==bb.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):GM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?GM(r,s,e,!1):JM(r,s)):GM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vb(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function Y6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Yce(r)))}}function vb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Yce,r))}function Yce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(G6e,r,e))}function G6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vb(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Gce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Gce,this),e};function Gce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t{"use strict";Vce.exports=pA;var xb=bl().codes,X6e=xb.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xb.ERR_MULTIPLE_CALLBACK,_6e=xb.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xb.ERR_TRANSFORM_WITH_LENGTH_0,Pb=Wu();Sl()(pA,Pb);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((Dbt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=bl().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wb()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=TM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wb(),Os.pipeline=iue())});var oue=I((Rbt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;gh)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r{"use strict";var ZM=gp().Duplex,c9e=Sl(),QE=oue();function Ji(r){if(!(this instanceof Ji))return new Ji(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}QE._init.call(this,r),ZM.call(this)}c9e(Ji,ZM);Object.assign(Ji.prototype,QE.prototype);Ji.prototype._new=function(e){return new Ji(e)};Ji.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Ji.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Ji.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Ji.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Ji.prototype._isBufferList=function(e){return e instanceof Ji||e instanceof QE||Ji.isBufferList(e)};Ji.isBufferList=QE.isBufferList;kb.exports=Ji;kb.exports.BufferListStream=Ji;kb.exports.BufferList=QE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),bE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;te?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` +`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Tle.exports=AM});var yM=I((pbt,rce)=>{rce.exports=J("stream")});var oce=I((dbt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return to.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((Cbt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var bl=I((mbt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var bM=I((Ebt,gce)=>{"use strict";var B5e=bl().codes.ERR_INVALID_OPT_VALUE;function Q5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function b5e(r,e,t,i){var n=Q5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:b5e}});var fce=I((Ibt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((ybt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((wbt,hce)=>{hce.exports=J("util").deprecate});var DM=I((Bbt,yce)=>{"use strict";yce.exports=Tr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Tr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mb=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mb.from(r)}function P5e(r){return mb.isBuffer(r)||r instanceof v5e}var kM=QM(),k5e=bM(),D5e=k5e.getHighWaterMark,vl=bl().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,N5e=vl.ERR_MULTIPLE_CALLBACK,T5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Tr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Cb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Cb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Tr,Symbol.hasInstance,{value:function(e){return Cb.call(this,e)?!0:this!==Tr?!1:e&&e._writableState instanceof dE}})):Cb=function(e){return e instanceof this};function Tr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!Cb.call(Tr,this))return new Tr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Tr.prototype.pipe=function(){Ap(this,new T5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Tr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mb.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Tr.prototype.cork=function(){this._writableState.corked++};Tr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Tr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Tr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mb.from(e,t)),e}Object.defineProperty(Tr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=G5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=NM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),Eb=0;Eb{var yb=J("buffer"),hA=yb.Buffer;function Qce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?bce.exports=yb:(Qce(yb,TM),TM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Qce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yb.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i=0?(n>0&&(r.lastNeed=n-1),n):--i=0?(n>0&&(r.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wb=I((Sbt,Dce)=>{"use strict";var Pce=bl().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n{"use strict";var Bb;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wb(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),Qb=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[Qb]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((Bb={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[Qb])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(Bb,Symbol.asyncIterator,function(){return this}),xl(Bb,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),Bb),w6e),Q6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,Qb,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[Qb]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=Q6e});var Oce=I((xbt,Lce)=>{"use strict";function Nce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function b6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Nce(s,i,n,o,a,"next",l)}function a(l){Nce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Tce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var Pbt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),bb=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return bb.from(r)}function R6e(r){return bb.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=QM(),N6e=bM(),T6e=N6e.getHighWaterMark,Sb=bl().codes,L6e=Sb.ERR_INVALID_ARG_TYPE,O6e=Sb.ERR_STREAM_PUSH_AFTER_EOF,M6e=Sb.ERR_METHOD_NOT_IMPLEMENTED,K6e=Sb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,GM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=T6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=bb.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,G6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==bb.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vb(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function G6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Gce(r)))}}function vb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Gce,r))}function Gce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vb(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t{"use strict";Vce.exports=pA;var xb=bl().codes,X6e=xb.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xb.ERR_MULTIPLE_CALLBACK,_6e=xb.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xb.ERR_TRANSFORM_WITH_LENGTH_0,Pb=Wu();Sl()(pA,Pb);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((Fbt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=bl().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wb()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wb(),Os.pipeline=iue())});var oue=I((Nbt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;ithis.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;gh)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;tthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r{"use strict";var ZM=gp().Duplex,c9e=Sl(),QE=oue();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}QE._init.call(this,r),ZM.call(this)}c9e(Wi,ZM);Object.assign(Wi.prototype,QE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof QE||Wi.isBufferList(e)};Wi.isBufferList=QE.isBufferList;kb.exports=Wi;kb.exports.BufferListStream=Wi;kb.exports.BufferList=QE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),bE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;te?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` `)),r.linkname&&(e+=_M(" linkpath="+r.linkname+` `));var t=r.pax;if(t)for(var i in t)e+=_M(" "+i+"="+t[i]+` -`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Nbt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((Lbt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var bue=I((Obt,Que)=>{var pp=Iue(),yue=PD(),Fb=Sl(),b9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,Rb=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=b9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var Tb=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};Fb(Tb,dp);Tb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};Tb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Nb=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};Fb(Nb,dp);Nb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Nb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};Fb(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Fb(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new Nb;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new Tb(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=Rb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=Rb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(Rb.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(Rb.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Que.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=bue()});var Mue=I((sSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Nue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):G9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Nue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Tue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Tue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Tue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=Y9e;function Y9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Nue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function G9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((oSt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,an=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=an(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=an(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=an(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=an(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=an(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=an(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=an(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=an(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=an(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=an(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=an(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=an(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. +`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Obt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.lengths&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((Mbt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var bue=I((Kbt,Que)=>{var pp=Iue(),yue=PD(),Fb=Sl(),b9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,Rb=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=b9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var Nb=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};Fb(Nb,dp);Nb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};Nb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Tb=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};Fb(Tb,dp);Tb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Tb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};Fb(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Fb(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new Tb;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new Nb(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=Rb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=Rb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(Rb.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(Rb.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Que.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=bue()});var Mue=I((aSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Tue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Tue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Nue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Nue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Nue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=G9e;function G9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Tue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((ASt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,An=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=An(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=An(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=An(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. Wanted: ${t.size} - Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=an(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=an(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. + Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=An(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. Wanted: ${r.size} - Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=an(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ye,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Nf,WorkspaceResolver:()=>Ur,YarnVersion:()=>Fr,execUtils:()=>pr,folderUtils:()=>Tw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>NI,scriptUtils:()=>Gt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Ne,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>yr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>vr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Gr,xfs:()=>M});var vr={};ct(vr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Gs,S_IFREG:()=>Vl});var Gs=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Yge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Yge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Ne={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Gge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Gge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Gr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Or(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function un(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} + Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Hr,YarnVersion:()=>Nr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>wr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var xr={};ct(xr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Te={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Mr(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function gn(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;ssetTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} `)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} `)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},vA=class extends wa{constructor(){super(v)}};function $ge(r){let e=r.match(/\r?\n/g);if(e===null)return fK.EOL;let t=e.filter(n=>n===`\r `).length,i=e.length-t;return t>i?`\r `:` -`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Ne.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Qg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new Qg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=Qg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Yp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Gp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Yp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Ne.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Gp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Ne.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Or("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Or("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Or("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw un(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Ne.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=bg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&bg.constants.W_OK)throw un(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Or("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Ne.root,i);if(o==="/")return Ne.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw Qo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Ne.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw un(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw un(`copyfile '${t} -> '${i}'`);if((n&bg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(bg.constants.COPYFILE_EXCL|bg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw un(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Or(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw un(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw un(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw un(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw un(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw un(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw un(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Ne.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw un(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Ne.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Ne.root,t);return Yp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var bo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Ne.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Ne.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Ne.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,yr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Gp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Gp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|zi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&gn)!==zi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&gn)!==zi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&gn)!==zi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Or("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&gn)!==zi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&gn)!==zi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Or("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&gn)!==zi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&gn)!==zi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&gn)!==zi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&gn)!==zi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&gn)!==zi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Or("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&gn)!==zi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&gn)!==zi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Or("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Yp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Ne.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function QS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return QS(t,e),t}var bK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,bS=null;function QK(){if(bS)return bS;let r=K.toPortablePath(bK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),bS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(NS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` +`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Qg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new Qg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=Qg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Te.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;at)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Te.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Mr("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Mr("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Mr("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw gn(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Te.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=bg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&bg.constants.W_OK)throw gn(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Mr("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Te.root,i);if(o==="/")return Te.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw Qo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Te.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(ga)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw gn(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw gn(`copyfile '${t} -> '${i}'`);if((n&bg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(bg.constants.COPYFILE_EXCL|bg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Mr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw gn(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw gn(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw gn(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw gn(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw gn(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw gn(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Te.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw gn(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Te.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Te.root,t);return Gp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var bo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Te.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Te.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Te.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,wr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&fn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&fn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&fn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&fn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&fn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Te.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function QS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return QS(t,e),t}var bK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,bS=null;function QK(){if(bS)return bS;let r=K.toPortablePath(bK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),bS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(TS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` `,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],bI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null `;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} `;if(typeof r=="string")return`${hH(r)} @@ -325,7 +325,7 @@ ${p}:`:`${g}:`,m=h.startsWith(` ${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==` `?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=bI;function Ede(r){return r.endsWith(` `)||(r+=` -`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ni});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} +`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} ${this.candidates.map(({usage:n})=>`$ ${n}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: @@ -341,11 +341,11 @@ ${sv(e)}`}},xI=class extends Error{constructor(e,t){super(),this.input=e,this.us ${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` `)} -${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Vi(r){return{...r,[id]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function PI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${PI(e[0],!0)}`):new we(`${r}: +${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Xi(r){return{...r,[id]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function PI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${PI(e[0],!0)}`):new we(`${r}: ${e.map(t=>` -- ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var be=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),hn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};be.isOption=id;be.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` +- ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var be=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),pn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};be.isOption=id;be.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` `),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Ni(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` +`)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` `),r=nCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 `),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` @@ -353,26 +353,26 @@ ${e.map(t=>` `)}).join(` `)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var fv=ve(J("tty"),1);function pn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function TH(){return{nodes:[Zi(),Zi(),Zi()]}}function sCe(r){let e=TH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){pn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){pn(" Results:");for(let s of i)pn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else pn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=NH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=NH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function Zi(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=Zi();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Qi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=TH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,Zi()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,Zi());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h0||!this.arity.proxy){let h=Vs(e,Zi());Qi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,Zi());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,Zi());this.arity.proxy||this.registerOptions(e,p),Qi(e,c,s,p,"pushExtraNoLimits"),Qi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;ho.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Qi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Qi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,Zi());for(let o of i.names)Qi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&ecCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends be{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`:""}var fv=ve(J("tty"),1);function dn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[_i(),_i(),_i()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){dn(`${e}Nodes are:`);for(let t=0;tl!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){dn(" Results:");for(let s of i)dn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else dn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Qi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=NH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,_i()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,_i());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h0||!this.arity.proxy){let h=Vs(e,_i());Qi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,_i());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),Qi(e,c,s,p,"pushExtraNoLimits"),Qi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;ho.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Qi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Qi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,_i());for(let o of i.names)Qi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&ecCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends be{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Gg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ni(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ni(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ni(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ni(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ni(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` +`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` `),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} `,a+=` `);let{usage:g,options:h}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} `,h.length>0){a+=` `,a+=`${lv.header("Options")} `;let p=h.reduce((d,m)=>Math.max(d,m.definition.length),0);a+=` -`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ni(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` +`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ti(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` `,a+=`${this.format(t).header("Details")} `,a+=` -`,a+=Ni(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` +`,a+=Ti(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` `,a+=`${this.format(t).header("Examples")} `;for(let[p,d]of u)a+=` -`,a+=Ni(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} +`,a+=Ti(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} `}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} -`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ni(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} +`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ti(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} `:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} `:a+=`${this.format(t).header(`${this.binaryVersion}`)} @@ -382,15 +382,15 @@ ${e.map(t=>` `,a+=`${this.format(t).header(`${d}`)} `;for(let{commandClass:m,usage:y}of p){let B=m.usage.description||"undocumented";a+=` `,a+=` ${this.format(t).bold(y)} -`,a+=` ${Ni(B,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=Ni("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=` +`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} `;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` `,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} `),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends be{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} `)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends be{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends be{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>YH,Proxy:()=>GH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Vi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function YH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Vi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function GH(r={}){return Vi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Vi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Vi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Vi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function NI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>GSe,bindDescriptor:()=>jSe,bindLocator:()=>YSe,convertDescriptorToLocator:()=>bw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Go,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>rn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>en,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Gk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>Sn,stringifyIdent:()=>Nt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Yk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>bn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>bc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var m4=ve(Bn()),E4=ve(a4());var me={};ct(me,{AsyncActions:()=>jx,BufferStream:()=>Hx,CachingStrategy:()=>d4,DefaultStream:()=>Yx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>Qc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>C4,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>Qn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var l4=ve(Bn()),c4=ve(Jg()),u4=ve(zr()),Gx=J("stream");function u0e(r){return!!(u4.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==g4&&t.push(n)}return t}var g4=Symbol();Uo.skip=g4;function Wd(r,e){for(let t of r){let i=e(t);if(i!==f4)return i}}var f4=Symbol();Wd.skip=f4;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function Qc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Gx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,c4.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Yx=class extends Gx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function h4(r){return Jd(K.fromPortablePath(r))}function p4(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=h4(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var A4=new Map;function C0e(r){let e=A4.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=p4(r);return A4.set(r,{mtime:t.mtimeMs,instance:i}),i}var d4=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(d4||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return p4(r);case 1:return C0e(r);case 2:return h4(r);default:throw new Error("Unsupported caching strategy")}}function Qn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${l4.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function C4(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return C4(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>bn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Nt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>Sn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:Sn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:Sn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${bn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,en(e.selector))} \u27A4 ${bn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Nt(r.parentDescriptor)} > ${Nt(r.descriptor)}`;case"PeerDependency":return`${Nt(r.parentDescriptor)} >> ${Nt(r.descriptor)}`;case"PeerDependencyMeta":return`${Nt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,bn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return bn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>bn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ni(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function bn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return bn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return bn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?bc(t,i):_e(e,t,i)}function rP(r){return{Check:bn(r,"\u2713","green"),Cross:bn(r,"\u2718","red"),Question:bn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([m4.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,E4.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>Qw,makeHash:()=>tn});var ww=J("crypto"),Kk=ve(Mk());function tn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(x8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:tn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:tn(r.identHash,e),range:e}}function rn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:tn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function bw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Yk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,rn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Go(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Go(r))throw new Error("Not a virtual descriptor");return rn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function YSe(r,e){return r.reference.includes("::")?r:rn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function GSe(r,e){if(!Go(r))throw new Error("Invalid package type");if(!Go(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P8(t,i))return!1}return!0}function en(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return rn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function b8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${b8(e)}#`),n+=b8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Nt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function Sn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Gr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Gk(r){return`${Nt(r)}@${xw(r.reference)}`}function Pf(r){return Qn(r,[e=>Nt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Nt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Nt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Nt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Ur=uC;Ur.protocol="workspace:";var bt={};ct(bt,{SemVer:()=>T8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),T8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=N8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=N8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=en(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=nn(e.main):this.main=null,typeof e.module=="string"?this.module=nn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=nn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(nn(s),typeof o=="string"?nn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,nn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=en(s);this.bin.set(a.name,nn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Ur.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=nn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=nn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=nn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(nn(s),typeof o=="string"?nn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,nn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,nn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(nn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=en(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Nt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Sn(e)}'`);let t=Nt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Nt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Nt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Nt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Nt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of Qn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of Qn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?Sn(zt(en(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Qn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function N8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function nn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Yve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Yve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return rn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=rn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=yr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Tf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Tf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Tf.protocol)}supportsDescriptor(e,t){return Tf.isVirtualDescriptor(e)}supportsLocator(e,t){return Tf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Tf;hC.protocol="virtual:";var Nf=class{supports(e){return!!e.reference.startsWith(Ur.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Ne.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Ur.protocol.length))}};var Tw={};ct(Tw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Gve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Gve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Nw,Lw;function dC(){return Nw=Nw!=null?Nw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Ur,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Nf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=en(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Nt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(Qn(t.dependencies,([,s])=>Sn(s))),t.peerDependencies=new Map(Qn(t.peerDependencies,([,s])=>Sn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Bn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Gt={};ct(Gt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>TB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>NB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>TC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>on,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(T=>(T[T.ZIP_ER_OK=0]="ZIP_ER_OK",T[T.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",T[T.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",T[T.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",T[T.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",T[T.ZIP_ER_READ=5]="ZIP_ER_READ",T[T.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",T[T.ZIP_ER_CRC=7]="ZIP_ER_CRC",T[T.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",T[T.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",T[T.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",T[T.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",T[T.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",T[T.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",T[T.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",T[T.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",T[T.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",T[T.ZIP_ER_EOF=17]="ZIP_ER_EOF",T[T.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",T[T.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",T[T.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",T[T.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",T[T.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",T[T.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",T[T.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",T[T.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",T[T.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",T[T.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",T[T.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",T[T.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",T[T.ZIP_ER_TELL=30]="ZIP_ER_TELL",T[T.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",T))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var TR=null;function u9(){return TR===null&&(TR=l9((0,c9.default)())),TR}async function on(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var b9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>NR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Bn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function NR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(NS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} +`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&oo)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function TI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P4,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>jSe,bindLocator:()=>GSe,convertDescriptorToLocator:()=>bw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>nn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>tn,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>vn,stringifyIdent:()=>Tt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k4,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Gk});var Sf=ve(J("querystring")),S4=ve(zr()),v4=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Sn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>bc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var mW=ve(Qn()),EW=ve(aW());var me={};ct(me,{AsyncActions:()=>jx,BufferStream:()=>Hx,CachingStrategy:()=>dW,DefaultStream:()=>Gx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>Qc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>CW,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>bn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var lW=ve(Qn()),cW=ve(Jg()),uW=ve(zr()),Yx=J("stream");function u0e(r){return!!(uW.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==gW&&t.push(n)}return t}var gW=Symbol();Uo.skip=gW;function Wd(r,e){for(let t of r){let i=e(t);if(i!==fW)return i}}var fW=Symbol();Wd.skip=fW;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function Qc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Yx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,cW.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Gx=class extends Yx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function hW(r){return Jd(K.fromPortablePath(r))}function pW(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=hW(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var AW=new Map;function C0e(r){let e=AW.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=pW(r);return AW.set(r,{mtime:t.mtimeMs,instance:i}),i}var dW=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(dW||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return pW(r);case 1:return C0e(r);case 2:return hW(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${lW.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function CW(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return CW(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Sn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Tt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>vn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:vn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:vn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,tn(e.selector))} \u27A4 ${Sn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Tt(r.parentDescriptor)} > ${Tt(r.descriptor)}`;case"PeerDependency":return`${Tt(r.parentDescriptor)} >> ${Tt(r.descriptor)}`;case"PeerDependencyMeta":return`${Tt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Sn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Sn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Sn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Sn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Sn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Sn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?bc(t,i):_e(e,t,i)}function rP(r){return{Check:Sn(r,"\u2713","green"),Cross:Sn(r,"\u2718","red"),Question:Sn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([mW.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,EW.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>Qw,makeHash:()=>rn});var ww=J("crypto"),Kk=ve(Mk());function rn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x4=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v4.makeParser)(x4);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function bw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,nn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function GSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P4(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P4(t,i))return!1}return!0}function tn(r){let e=k4(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k4(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function b4(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${b4(e)}#`),n+=b4(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Tt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function vn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S4.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Tt(r)}@${xw(r.reference)}`}function Pf(r){return bn(r,[e=>Tt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Tt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x4),s=e[i];return s?s.includes(n):!0}):!0}var D4={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Tt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Tt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M4=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Hr=uC;Hr.protocol="workspace:";var bt={};ct(bt,{SemVer:()=>N4.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),N4=ve(zr()),R4=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R4.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R4.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F4=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F4.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F4.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L4(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=T4(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L4(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=T4(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Hr.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M4.default.valid(e.range))throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Tt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Tt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Tt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Tt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?vn(zt(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function T4(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L4(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O4(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O4(r,e[0]):`(${e.map(t=>O4(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Gve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Gve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=wr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Hr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Te.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Hr.protocol.length))}};var Nw={};ct(Nw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Tw,Lw;function dC(){return Tw=Tw!=null?Tw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D4]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e===""&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Hr,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>vn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>vn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Qn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>NB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>TB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>NC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>an,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(N=>(N[N.ZIP_ER_OK=0]="ZIP_ER_OK",N[N.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",N[N.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",N[N.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",N[N.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",N[N.ZIP_ER_READ=5]="ZIP_ER_READ",N[N.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",N[N.ZIP_ER_CRC=7]="ZIP_ER_CRC",N[N.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",N[N.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",N[N.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",N[N.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",N[N.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",N[N.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",N[N.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",N[N.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",N[N.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",N[N.ZIP_ER_EOF=17]="ZIP_ER_EOF",N[N.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",N[N.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",N[N.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",N[N.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",N[N.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",N[N.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",N[N.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",N[N.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",N[N.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",N[N.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",N[N.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",N[N.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",N[N.ZIP_ER_TELL=30]="ZIP_ER_TELL",N[N.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",N))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function u9(){return NR===null&&(NR=l9((0,c9.default)())),NR}async function an(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var b9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>TR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Qn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function TR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(TS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} `),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} `),c(128);break;default:n[2].write(`uncaught error: ${u.message} `),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var bs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` @@ -399,7 +399,7 @@ ${e.map(t=>` `),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function bB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} `),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} `),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new bs(t.stdin),stdout:new bs(t.stdout),stderr:new bs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;Se.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]} -`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=NR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function Q9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,bB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new bs(o.stdin),stdout:new bs(o.stdout),stderr:new bs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return b9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(Q9(r,e,bB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a=0&&s"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;ur+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function Q9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,bB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new bs(o.stdin),stdout:new bs(o.stdout),stderr:new bs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return b9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(Q9(r,e,bB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} `)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended `)})),0}return await Q9(r,e,t)}async function QDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} `),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await QDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function P9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} @@ -410,51 +410,51 @@ ${e.map(t=>` `,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,QRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,bRe=r=>r,FB=bRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=QRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} `),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})} `);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>uV&&(this.progressFrame=(this.progressFrame+1)%cV.length,this.progressTime=t);let i=cV[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${_e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Fr="3.8.2";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Nr="3.8.3";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function TC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Fr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Nt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Fr!==null?`yarn/${Fr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Gr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Go(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources +`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Nr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Nr!==null?`yarn/${Nr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources `);let p=await mV(r),d;p!==null?(c.write(`Using ${p.packageManager} for bootstrap. Reason: ${p.reason} `),d=p.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn -`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await TC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn +`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn `),c.write(` `),delete B.NODE_ENV;let W=await so("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` -`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let T=qo(null,"npm"),ce=zt(T,O),he=zt(T,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Ne.dot,{baseFs:g})).scripts.has(e)},{libzip:await on()})}async function TB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await TC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await TC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await NB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Ne.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await on()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await TB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function NB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await NB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Gr(t),process.execPath,[i]):$A(r,Gr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await NB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await TC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oNe,extractArchiveTo:()=>ANe,makeArchiveFromDirectory:()=>sNe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),N0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sNe(r,{baseFs:e=new Zt,prefixPath:t=Ne.root,compressionLevel:i,inMemory:n=!1}={}){let s=await on(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Ne.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oNe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new N0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await on(),level:e.compressionLevel})}async function*aNe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ANe(r,e,{stripComponents:t=0,prefixPath:i=Ne.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aNe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,vr.SAFE_TIME,vr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,vr.SAFE_TIME,vr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lNe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:bc(t.value[0],t.value[1]),children:n}};return e(r)}function lNe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} +`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function NB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await an()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await an(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=Te.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lTe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:bc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} `);return}let s=(0,mZ.asTree)(EZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DT=ve(J("fs"));var cNe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cNe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uNe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kT(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore *.flock *.tmp -`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Ne.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Nt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kT(t)!==kT(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let T=`${a}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let T=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(T=>T())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,T=O?i:n;if(T&&T(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await on(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kT(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uNe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} +`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await an(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} `)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1=a&&P+1>=l)return o(gNe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fNe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(TT(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function TT(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=hNe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` -`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RT(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,rn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(bw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var bh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Ne.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${tn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=rn(e,t),this.anchoredDescriptor=zt(this.locator,`${Ur.protocol}${this.relativeCwd}`),this.anchoredLocator=rn(this.locator,`${Ur.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Ur.protocol&&v.normalize(n)===this.relativeCwd||i===Ur.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Ur.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var T$=6,XMe=1,ZMe=/ *, */g,N$=/\/$/,_Me=32,$Me=(0,zT.promisify)(VT.default.gzip),e1e=(0,zT.promisify)(VT.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JT={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>tn(`${XMe}`,r),Ye=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ye(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. +`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1=a&&P+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;tr.length)&&(e=r.length);for(var t=0,i=new Array(e);t"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` +`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,nn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(bw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var bh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Te.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=zt(this.locator,`${Hr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${Hr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Hr.protocol&&v.normalize(n)===this.relativeCwd||i===Hr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Hr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var N$=6,XMe=1,ZMe=/ *, */g,T$=/\/$/,_Me=32,$Me=(0,zN.promisify)(VN.default.gzip),e1e=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>rn(`${XMe}`,r),Ge=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ge(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. ${[g,h,p].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Go(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Nt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(N$,"")!==e.replace(N$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let T=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,T))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,T)})`);g.set(T.locatorHash,T);let ce=this.configuration.normalizePackage(T);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let T=h.get(O.locatorHash);if(typeof T<"u")return T;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,T)=>{let ce=await te(T);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let T=this.resolutionAliases.get(O.descriptorHash);if(typeof T<"u")return ne(O,this.storedDescriptors.get(T));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let T=p.get(O.descriptorHash);if(typeof T<"u")return T;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let T=O.anchoredDescriptor;y.push(te(T))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(Qn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Go(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let T=O.makeInstaller(c),ce=T.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&T.attachCustomData(he),[O,T]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(T,a)]}))),m=[];for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(typeof T>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(T.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(T);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(T,c)&&(await ge.installPackage(T,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(T.locatorHash,Ae),!Go(T)&&Re.length>0&&p.set(T.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(T,c));if(!Re)throw new rt(12,`${Ct(this.configuration,T)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(T,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(T.locatorHash,Re),h.set(T.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(T.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(T)!==null,he=async(Pe,De)=>{let Re=h.get(T.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,T)}) should have been registered`);let se=[];for(let Ae of T.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,T)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(T,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(T,c)&&await he(Pe,De);else{let Pe=g.get(T.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,T]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,T)}let B=new Map;for(let O of u.values()){let T=await O.finalizeInstall();for(let ce of(te=T==null?void 0:T.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(T==null?void 0:T.customData)<"u"&&B.set(O.getCustomDataKey(),T.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let T=q.get(O.locatorHash);if(typeof T<"u")return T;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return T=he.digest("hex"),q.set(O.locatorHash,T),T},X=(O,T)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of T)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let T=new Set([O.locatorHash]);for(let ce of T){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;T.add(se.anchoredLocator.locatorHash)}T.add(De)}}return!0};for(;P.size>0;){let O=P.size,T=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Tt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(T$,"")!==e.replace(T$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let N=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,N)})`);g.set(N.locatorHash,N);let ce=this.configuration.normalizePackage(N);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let N=h.get(O.locatorHash);if(typeof N<"u")return N;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,N)=>{let ce=await te(N);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let N=this.resolutionAliases.get(O.descriptorHash);if(typeof N<"u")return ne(O,this.storedDescriptors.get(N));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let N=p.get(O.descriptorHash);if(typeof N<"u")return N;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let N=O.anchoredDescriptor;y.push(te(N))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let N=O.makeInstaller(c),ce=N.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&N.attachCustomData(he),[O,N]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(N,a)]}))),m=[];for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(typeof N>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(N.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(N);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(N,c)&&(await ge.installPackage(N,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(N.locatorHash,Ae),!Yo(N)&&Re.length>0&&p.set(N.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(N,c));if(!Re)throw new rt(12,`${Ct(this.configuration,N)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(N,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(N.locatorHash,Re),h.set(N.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(N.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(N)!==null,he=async(Pe,De)=>{let Re=h.get(N.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,N)}) should have been registered`);let se=[];for(let Ae of N.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,N)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(N,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(N,c)&&await he(Pe,De);else{let Pe=g.get(N.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,N]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,N)}let B=new Map;for(let O of u.values()){let N=await O.finalizeInstall();for(let ce of(te=N==null?void 0:N.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(N==null?void 0:N.customData)<"u"&&B.set(O.getCustomDataKey(),N.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let N=q.get(O.locatorHash);if(typeof N<"u")return N;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return N=he.digest("hex"),q.set(O.locatorHash,N),N},X=(O,N)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of N)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let N=new Set([O.locatorHash]);for(let ce of N){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;N.add(se.anchoredLocator.locatorHash)}N.add(De)}}return!0};for(;P.size>0;){let O=P.size,N=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) `;switch(Ae){case 0:ge+=`# Script name: ${ye} `;break;case 1:ge+=`# Script code: ${ye} -`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let Y=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(Y,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await TB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,Y,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});T.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(T),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:T$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>Sn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>vn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} -`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JT))e.push(...o);let t=(0,X0.default)(this,e),i=WT.default.serialize(t),n=tn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WT.default.deserialize(o),this.installStateChecksum=tn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JT.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JT.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} -`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],T=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let Y=te.dependenciesMeta.get(Nt(Re));if(typeof Y<"u"){let fe=Y.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ge=new Set,ie;T.push(()=>{ge=jk(Re,Z.locatorHash),oe=Yk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var Y;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ge.add(re.identHash),ie.set(fe.identHash,(Y=A.get(fe.identHash))!=null?Y:oe.locatorHash)}oe.dependencies=new Map(Qn(oe.dependencies,([fe,re])=>Nt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let Y=c.get(ye.locatorHash);typeof Y=="number"&&Y>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let Y=te.dependencies.get(Re.identHash);if(typeof Y>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(Y.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Nt(re)).push(oe.locatorHash)}for(let re of Ge)oe.dependencies.delete(re)}})}for(let Re of[...T,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=tn(...[...Ae.dependencies.values()].map(Y=>{let fe=Y.range!=="missing:"?t.get(Y.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,Y)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ge=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ge];p.delete(se.descriptorHash);for(let Y of ie){let fe=i.get(Y);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,T]of ne){let ce=en(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${tn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:T});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of T){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Ur.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Ur.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:T.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Gk(W.subject),W=>Nt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements ",Ke.CODE)} for details, where ${_e(r.configuration,"",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of Qn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){Qc(this.values,e).add(t)}reportEnumerator(e,t){Qc(this.enumerators,e).add(tn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XT=J("child_process"),M$=ve(cc());var ZT=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XT.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XT.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!bt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZT.realpathSync)(process.cwd()),X=(0,ZT.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Nm={};ct(Nm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wQ,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends be{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AGe=ve(zr());As();var lGe=ve(VN()),_ie=()=>new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AGe],["typanion",hn],["yup",lGe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ye.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VN());var CO={};ct(CO,{dedupeUtils:()=>FQ,default:()=>yWe,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>PQ,Target:()=>Hm,WorkspaceModifier:()=>Tse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Nse,fetchDescriptorFrom:()=>YL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Ym,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Tse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Tse||{}),PQ=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(PQ||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Nse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await YL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function Ym(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await YL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function YL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Nse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Ym(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ye.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Gt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} -`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Gt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=be.Usage({description:"get the path to a binary script",details:` +`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} +`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(bn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=rn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=tn(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${rn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of N){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Hr.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Hr.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:N.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Tt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements ",Ke.CODE)} for details, where ${_e(r.configuration,"",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){Qc(this.values,e).add(t)}reportEnumerator(e,t){Qc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),M$=ve(cc());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!bt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZN.realpathSync)(process.cwd()),X=(0,ZN.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Tm={};ct(Tm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wQ,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends be{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VT()),_ie=()=>new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",pn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ge.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VT());var CO={};ct(CO,{dedupeUtils:()=>FQ,default:()=>y8e,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>PQ,Target:()=>Hm,WorkspaceModifier:()=>Nse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Tse,fetchDescriptorFrom:()=>GL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Nse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Nse||{}),PQ=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(PQ||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Tse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await GL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await GL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function GL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Tse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` +`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} +`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=be.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends xe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=be.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cQ()),GL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} -`),c.exitCode();GL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,GL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cQ()),YL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} +`),c.exitCode();YL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,YL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} `)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=be.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. @@ -469,13 +469,13 @@ Try running the command again with the package name prefixed: ${$.pretty(t,"yarn This command will unset a configuration setting. `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=be.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>F4e,dedupe:()=>$L});var fae=ve(Bn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),F4e=new Set(Object.values(qm)),T4e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=T4e[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Xi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Fr||""} -`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ye.find(t,this.context.cwd);return await i.restoreInstallState(),await Gt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.Usage({description:"execute a shell script",details:` + `,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Qn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),NWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=NWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} +`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Nr||""} +`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await L4e(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.Usage({description:"explain a set of peer requirements",details:` A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. @@ -483,9 +483,9 @@ Try running the command again with the package name prefixed: ${$.pretty(t,"yarn When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function L4e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Fr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await O4e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=be.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function O4e(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>bt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Nr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=be.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function OWe(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>bt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: ${e}`)});let n=(p=r.projectCwd)!=null?p:r.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(r.startingCwd,o),l=v.relative(n,o);i.reportInfo(0,`Saving the new release in ${$.pretty(r,a,"magenta")}`),await M.removePromise(v.dirname(o)),await M.mkdirPromise(v.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ee.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&me.isTaggedYarnVersion(e)?e:await Wm(r,"stable")}`;let u={};c.exportTo(u);let g=v.join(n,ot.fileName),h=`${JSON.stringify(u,null,c.indent)} -`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[NI(r)]}var M4e=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
    (?:.(?!##))+)/gs;async function K4e(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Fr)?Fr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(M4e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await K4e(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var MWe=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
    (?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Nr)?Nr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} @@ -497,7 +497,7 @@ ${l} When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Bn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let T=x.stringifyIdent(O);if(!ne.test(T))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,T]of Object.entries(ne))typeof T>"u"||(te[O]={label:O,value:T})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,T;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(T=i.storedPackages.get(ue))!=null?T:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=be.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var TQ=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!TQ.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await Y4e(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ye.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],be.Default],Bu.usage=be.Usage({description:"install the project dependencies",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Qn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let N=x.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,N;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(N=i.storedPackages.get(ue))!=null?N:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=be.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var NQ=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!NQ.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!NQ.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!NQ.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await GWe(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ge.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],be.Default],Bu.usage=be.Usage({description:"install the project dependencies",details:` This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). @@ -523,18 +523,18 @@ ${l} - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var U4e="|||||||",H4e=">>>>>>>",j4e="=======",mae="<<<<<<<";async function Y4e(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=G4e(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function G4e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===j4e){i=!1;break}else if(i||s.startsWith(U4e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(H4e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var UWe="|||||||",HWe=">>>>>>>",jWe="=======",mae="<<<<<<<";async function GWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function YWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===jWe){i=!1;break}else if(i||s.startsWith(UWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` `),e[1].join(` -`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ye.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.Usage({description:"run node with the hook already setup",details:` +`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Qae=J("os");var Eae=J("os");var q4e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(q4e,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=be.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var J4e=/^[0-9]+$/;function Iae(r){return J4e.test(r)?`pull/${r}/head`:r}var W4e=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],z4e=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],V4e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(V4e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await X4e(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.Usage({description:"build Yarn from master",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Qae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=be.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function zm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await pr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${$.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(z4e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(W4e(r,i),{configuration:e,context:r.context,target:i}))}async function X4e(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ye.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Fr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Fr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.Usage({category:"Plugin-related commands",description:"download a plugin",details:` +`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Nr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Nr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: @@ -544,23 +544,23 @@ ${l} - Local plugins can be referenced by their path on the disk. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var Z4e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ye.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(Z4e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=be.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.Usage({description:"rebuild the project's native packages",details:` + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Bn());As();var Tu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Tu.paths=[["remove"]],Tu.usage=be.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Qn());As();var Nu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=be.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -570,7 +570,7 @@ ${l} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ye.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Nu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ye.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Gt.hasPackageScript(o,this.scriptName,{project:i}))return await Gt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Gt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Gt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Gt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Nu.paths=[["run"]],Nu.usage=be.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=be.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -580,48 +580,48 @@ ${l} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Bn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ye.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Qn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Bn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Xi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Ym(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Qn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range ${_}`):B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) ${_}`)}else H.length>1&&!o&&B.reportError(27,`${x.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:P}]of g){let F,H=P.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${x.prettyWorkspace(t,B)} \u276F ${S}?`,choices:P.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$4e(i,s,{configuration:t,peers:this.peers}):_4e(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.Usage({description:"display the reason why a package is needed",details:` +`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>EWe,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>NQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>CWe,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Yae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Yae.URL(r)}catch{return}}function pWe(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Gae(r){return jae(r)||jae(pWe(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var dWe=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],NQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(NQ||{});function ep(r){return r?dWe.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(NQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(NQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Gae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,LQ(r.reference))}function fO(r,{configuration:e}){let t=LQ(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=bt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function CWe({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var OQ=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Gt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var MQ=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var mWe={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[OQ],resolvers:[MQ]};var EWe=mWe;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=be.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E8e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>TQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C8e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function p8e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(p8e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d8e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],TQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(TQ||{});function ep(r){return r?d8e.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(TQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(TQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,LQ(r.reference))}function fO(r,{configuration:e}){let t=LQ(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=bt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function C8e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var OQ=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var MQ=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m8e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[OQ],resolvers:[MQ]};var E8e=m8e;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=be.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${l.join(` - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=be.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var IWe={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Tu,_h,Nu,ml,Mu,Uu]},yWe=IWe;var wO={};ct(wO,{default:()=>BWe});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),wWe={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},BWe=wWe;var BO={};ct(BO,{default:()=>bWe});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var I8e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},y8e=I8e;var wO={};ct(wO,{default:()=>B8e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("m5v/O4Ntw09vVueBnz46birYLcw6RbRg2xCS5pum/6hOiHNYCP5T1XV0avWLAv62AfVY3BgDB7W2CgQrP1QopMyNJaQredPO8BcL2tFPP0ZKmE8wMEQpDM09gRPyXuIDPZd6ostS3+y3BhMYjZcwdaK8clPVc/NlH0mSXgPouNU7ASFRGaNhNE2TLNIbcWh8efGHV8Nayl6hV3SIhcTIVdNJofinqk7S5e8a8KCHz/dVtT3LhFyVc7KdY9K32uVMXRZIWXkSyIcP18uW1j+fV6NcAmw3gpzMaIj3PL2nkxEtJGfwXSAvVUvaF99p//35emOpU5UBxkceYUbo9Bqt9YCcgxHP286/0JstjtclXs5YWMqeML+TAAnBybbfmjX8L/kS9OqQw3hL6iC1yojGDf8IM/Q/F6nsuqNwrCpU1+hTb2GgH9IM5BMRCN1CZasxDb0bUPVKLuEz45Y7bnM2WaU0TQPzAU7ufYsy9Xq7r2VZ4gHRR7Itj9OO6P/vl1ZtlTLIDZzZRXL3THp45V7snDwAuMRtteK+e991hSKkLEuyTkmGAoR36b1QREhZUtoJ1IS8Wc1mC7wb3q1/yHaPsysHcIW4Ivp71cyWWo14ezNaKpAc8/T/JcAp0EWvULmNoWjSjomHQIUcVuc4PcIPK51E51zlsK5rN427+gP/g6tAipIMaiUdcJFYJwWnzueiaPx/01KcMv+7zZebNu02rSEdYAePpyDk8kdnd+6ge0aNhZB4lhkmhAVALSAojG+8M1LK/zMpGgntoSQEZb+1XvtfCuomH7YIwmSNmZGmKWxJGUJd9WkTVyfrbk5oexy1xYGWr9SsCv9GRRxQvIvOxIlKnCBOmZjwX2jDul/v3nGWEYV+Dl8oxV7JWfeFtYroV9ZrzyINx3rPbxJA834fGK6oBCKGlYWIIQp9QkNVyzK4LLM7SFmo7wkXAcIi+C0UYo8I8oDIb7fcdM3pHNsFzNCyvMj7vWWdntdODCiiIsFcj/4tRYsx5vLTHoRwobTA81LiU00ZIHhsbyuM+yV+9YReKu1LIB0XKqS1qrkgYjmxZJnOAC/EP2KqzZOjVdLWvU9nQ1LABwjlWMayqjfb2bf7VoXwB4SIWDBzJmNa7c+lTBMhyLDS/nmMtcI9226f3xCJgNR0xGkUGO0Ya1Vtqft2TyEiIAI5I4PoRgIhvo73DjoW3eOrfoZYsaRA/KtjMugtTiQ4CcE2JrxfGBUDiG2AOTOpOvWVf/Gnwg2m09cy0HBb4yx0R78b9mO5gfWPCdzP7cn9ucvfn+b7bUb9dE2qaqRvoPtriqEHfwmjveHD9/0dn/fF9/nWn04xfC4NaYrlx/meYJrDOw/9Sf/1IuUTgvx4Y2iXfdvHjV/fJbTWmBUU0B3MvD6vBG0aAJsvkxMCUuHlxyFRlIefQn59qYzxzPxgK4erWNo1YHBCgH/70RTe+QVcb5QMuQGgJr24DH3GEMAUzEQ0so/Psk/Ro8FXtBv2L6RrQZXJpr0C2hJGpvZWUI3LtrxUtfmq4n8BxZHF1uIqivr9Co9fW5XJ5gSLSAwo/o8J7W56l16+L6hs3m8QzQMROF7+NiJJ8Lm8vYEkyDpznZGhMPWKCz+roeX9ZM5mrnpExvHsHFbkHkPEL500Nin7IuT65+7hdf1CPK2gkNIkefwJFjPxNpcK5uoXtkjik4s3jEPpyQXmOm6E/6liwRRcxEmnzcHBYBobf8BxPrdTJJ2Iz9WnJguWxkj1nl7HGWBvKWh1cYPb6TqqrzVSECgQ4ox/XKckk8qkEz0gQyTwtTxMVIrAg7HO7y+RHCCdIWwI1TeJfdvs/RkivfF6OAMkFnxyTZCtmN28L3jfWCD53E37L82yhGTO9tpLX037Pty0t/Ui+8m0GHe5jt6EURVN5gyYD0/MA5y7vsRxRBpcA18SnwTArUiPJQJHSo3Yikva8C3HJN3p+oRdxlRkoJWRuZkPZaIaA85OhhKsHrDxYgZLzK0BWuGLLC38T2fVcNRxBtV7oKL/cZlo1ixyHTT8r3hqto9WKWZgoYpojLunaGSxdesDstocgcpJrvpp3RjZL5WnlQRzVcBM4OqLamGmIlVY8Mm9BXz7suPMsjAJ1npRiLhwQMkkyiGlgJ2zjM1AuB3lDAdRk2xEv7jW4vDKIQFl0svS6kBBAtprZ+v5/sue25d7u43j2OECqL7W5k3IZsaG5I2htYGVOjIREChb7HtpaLfrHAWUmVf2IwJCN2IAk3kYb7DPwLeFhFOcecitU8PhM7szkmT5XJQvr6j2+GDzf+FPklG5hY1+OkZnFgPKfzLPBZOlNsH8rH/bqiBEKFMhjV3o5ReRmo2EeyP6c2aZT+Y9c73MLGjwxHVpv2ziRQm00VQqfwmW+NIjX/7Fa7xB6RK1A5SWu1wKOMiqnJ8otJ42Zf34hDpWSdc9S+Lj1mf2X2FjR5Ao18KqkzwIfc4XhVUdhZzY+FQkpRwocmzkYrN+k5kOE2N+qmWfOg6qNC94jpNW9ZaNU1pvTur5O6pf6FCatVgRQ+BwfxLiJTdeamsn0IPuaVtS9R6RzOvvSU3AUHd7NIKmQMjF045YeY45Nkz3NXqYlC7bxenUNVDYJXy4cmf0kHc/CWRATp4tpvYOpfhh+DEECkJkQUEW9aGrL25X9u0fsvuezPLLI4NF/XSEysgxrdNEENZ5idmFCsbX4WGQT2eUuMsqRU61CAC+O0P7rpw3I3IxzecsViFyt88ERv66PRBfV/KDP6EM9DqJzWU5Iyndx+cCMRRaW86UMV1RgfGiL7Jd2ycRPePi/uglMRpxp/GBF6OkpaUPztzNTstwHy0NRXd6pgUIs63owYn3Enf9FZ3FSHErkEzuPXiysHO1pdbbwS53UqKLWDNAeC2TkHrROwdEg1oVJ8G/HIqFItq90YgvHQhgjKhEoiNW2He50jAVtN04PlJ5wi7oqmuddOhIgnUWfuXGAZTXWrsk65CJam6tD2inUO3vMQBOujaTo/wMvAlEmeAvDj1DAAVGxiUI0PV0hWVB1da6TAxF7uGELpHTO2Q6R9gREWDinGGk2uAQ/qzLJX5OYbZgJG7WsNnDN3NcNwPoM0CHwkFvcXkWW89wiZl002uNtX2BkqhoypXaU91ByBIsvoOQqIA8PJRJz+k3X+Wuf1XV3PNz5v0qN/1+cMqMe+QYLJi8/+7Vgz5p375BbEF45ncBk6TndZDAb95eAirRT1henLwMsgtiq/BFGHD9kJBHMcFj6Vo58CEIe14g10tig8X5iAzxE+6XlyHMZRNttKZRnyo8/e/QBKd1T3HVOcS6vM8vCrNBsPfNqkXwkQO2wWcJHPN89D1TydzrB0EEj/sodasixn5fO6Pf0sPa2ttnW8Os+0YtYCbKactPyrCDUU175K1INe6Lim3RFDwtowdU3sCqlyvucv9BuWpVyyJamSqmt9HiP6QrLxWrw+VGVJbgGWBxZ4Xszwlnz1VbvO6/KunaCewRVB+7X8ncncy/wM8TVuFc3jKJXG4W3hE3JxQ3kNgDZAOOy9Qfs4FPGBF00Tqh2kBYx2xPhhnnoXCTZ48qgpKdubm6wr0CxblZbDDS/6t12WRz846/yOMVpN+jaJSKUNnU7hFtwMVzTg9/wSYyrlhjOMMHiW91W0xYdsibFZZ5n2vtDxXvOclSx1+k8b3m9hpI3nCQe6taZy0Gol0DnchvDqT3RqeM1ItWGkvCOf5bVTFOAScbt1zxLGQGqPiLyQ+0EqBtxWv7AbINGPj76rZ/qeKfFx+eycqAE4Q8xWS9YgWZg4lnzmWTdcaVJ0OGPHSvkNO+IyI8hW55lXS9Bd/SfqC6J/9TIkhOuDuKh2lPoNfniO85TD6nsXFyah/90Wgi5oMJs1oDHTZQ+fU/eG4iIG52UF1r8mT9w5YLlz6cTPaHTJX1kQyXTx8yMG4eouAzQy9aUBGcATNmewJGzZfRaQ4XADjJpSs5ooUnWKNot+VSCg65RgDAgRQuaSXNQKbMYjgD5tNF9r2VYc+/iTemH0NOm9myPo6xcmPEVXEBAJw4MhdOi+vJ2zXi2rVHAEArcOyhmYWXeTxj5tMDlLddwmce+MFUxLs4Dw9u5mn+hmAFAHZ+xbvNm683o8dtMJtjGTmfbp6HFl4+v/bKtiE6PQd+2VPwS7XSzFS4AMCMVLybFfa1jDB97Twp38YgvRoBgAtkLhzXr+qou9HoxO94A75ZGMNqyUbUNs2+SRkAgOA4gfzvuep4M/LbtuvGqKPJf3ZGglCdPDtKFgSlpq+HDlLvmdx99U3sYOh7QRAe+ojWZbNv8i0AIPiBMjXhsjHa1KUTG945TbwiINdent3dJ8je+XOZAICDknpaSM7DNRFE5M9aDipzjKJbxEylWVsAoCSwajgCG7W7auxgkrsEADo0St9w3tMJYs+natRDu4L41up41DdgCwDg5No3pTAsdka1VyOmzI5zjQBABaUaLhpTwB/Q+Ecx+PAubOJlvWh5FQC4WdY14w16wdZMW8s3QX8m6K2rFHdjZmLUkC0AUMTGscmnhgFM3B4qKwZMWidvBABENEnG9Xh0zOLnvd0Jo+P3GlrYhi4WIxTPvG9SBgBAUhpQ40qT2c9OsQuuKTPubzcZOV/D/pb6QnqY6qUTd1Ys6X5gix76C+SaNu+bfAsAkGKJp3Glx9lgFNnleAKN+9qzlK9tkJ6ZAMCpvphwAT6/a//qJDdvu2W+4TQu1UyFCwDUUHFPRtgoyo4N6Wpfla9toMclALB65eaPlFzj7/jNhfHD3n6Zx1mpPBUuAFCm7I4hXcKnsiMDXe2j8rUM9NgEAEZlqT3Y54bf2GtITUp3f6p3ZoIVANs6y6ql+nrQdO++MsI+o/eRdiyNm0p1zMYFAFrMPpZsuI/jGrgPx/W5RgBg6D0UKniuWV0lB/YSX7CWmS4JsF19O0owmaWvcNaeOTyaetuUnL4p++9FwPckhLEd7CQpugYGuJIO/yE8ScWuyDDzZKGZM8hMfHLrjz8UOsaSHVcD9vz6rcVQMkl/ZKo+7UnNyB92vWDvY6suLOez+LcU3Ju+IWQk+zZbXp2Tr0Ct895wkbeC+GfT2AHnW2frGYrd9a/r55fSmy1ubF9EXF5OwM/IzA1ZJLCSfkbOtqNRWoQm6JspRomegeL3s7w5wwUID7c+dL5AD31zknMGlZOE8XjhbS/selUfWIh6pRbU5S98DeTvNEdzCpAJDLxftlf4BYvdGIcECgky1LXxdWPEV4ShipGyzXjEKuZ3J5tHGImZ98kcoo6V93lDshqrY8paOBfsO93FV8x/b9baLUBuGsypg9x7xVhSwODaBCSataBrORB6vQHL4PVgLwYoCu44cX3Ev3uXZ5iAhBgWB674mAqd7sdABcR6FJVUpJu7mvGvuDekkCqFJ/TQo+uODQ5HHCd/xCqHKUHq4H3K1YBXe3X1MJGwg1z+ukNHJh/CKgfnPjh0lo7LKFV6N81a9v5IoiYYxFTKoDiPL0N7Q6yjVGOBKSWWfc776V8Jo4C30+QEMjXj1xzLwrXACiJyaKcytjYt55JIaxkip5sqByc/Kc/l6R5NlxcjBSVtHaHjO7F9OlPLk2LnEb9s39YeT0L6/e853SYfXyMiLCb+ePIGrdPEwQCv8/0eiAZAtaCdNXMSiESyH1n+l7XIKz+kNiiNY85mJeLPi2SNEuQDH4WYvoSRb9Sc+U0bgx2BdznVR2eCh+MV27j0yffcDPd2ReYmIq3I2kyezxIQXrU+K/8V6Rv16zJr85eLpN3iDTgHBW+/8d67i5vsY+J/7Q2kReWvgI+rH5QuNyaU25i4gIP+OY7m1Q/3kgCADvuANlyWV39aF8NWjUvXrh905XUvD2jNiyZx+muT2OsfY6Xv4/5ji9bUfu11iPBt6OxdbAEnJCzzk7zf8rUDf+9HEQCPJis9VTm7SR15syOAGb/EVjqT59sSDTRaxblwazrFedOoBBWWLNewBnicsfhHYrpKvg6KR7ZMzoZMrhQGEck1YFqim2qXvy5T4K1e9ydVUC0f4ipUk7mZ4E09dsvJYDqmF+nUZh/hpTMP3dr8I7zUf7B0JTzl6YcyAv4zqEOJ43SqWEpuZxY/c/0v8pv8UI6dtf5RRHV9OywdWhJmyw4mllxcDxxBf0gVFDXOOxXf6rxJpyB6y1447/SWDXvwHgLiDLurltdBwnvSyUICULRcD/5uC0AU31QJQlCmvB8DVEitsJhV4nZrI+KITvNzdt9DWS5JDfjBDddg2bRG9aGU4GXr0mOWjLI/aFPv35OQnL5ijMuQwl1ijMyHdqOXFwIBtgwJnVvFsOwSKggit24I6rJIjNGvCcfoKdTu6auFsVs/OTd0e3Jj8rLM2/tP7MLdHmiGgw0ts8mDsqRkMoN+LBlFXFOpVec5nXhlzyjK7o9dzHTPBUWziLubnoMCPOlDX5P92qgYrwnnqoOPFN/OGHeVyIXNlt/22jRq0qkC67oqPh12WCX1HIRhL3Fb1YDNNWUBjiI54M/nLjV1CRdSXcy4otOUNq37dTNnidpKu9/jvO3NMF7g78fSvqHwx8bWLGDlit4fu3aoVzm+bp291CNYdlCIofhvm+eAUdXRLwZAj/Il1VEXXmNytVmJFplshbHLSqhLjh7TZTy7Az7J+5QMOFi6oTQjILECi2BPjc+YzABAdhcNzVB4syuD9mR3PqMJACQul8rnuGFJYOGStPOPPm9clO7+0ZQ24UI24qHO25XvB/adbm8zo7rEWgdxdWYAgLKrKJIGx2fQ7sbk252KJgDgPLmdVL7FoYsCvTYnxb4x3C09legU6hbP5JzEbzpwuJiYCsA7q1ErRDietxR/a2fgMHn4zmlG5cRahjNVZgBg1p6illsVzsNk7arsSkUTALiKM1N5yHnKAAmptmVpk/VXZH7BAv7BS2SYQl4d8tQCVABbhQTx5oya0gwAWASphumEuvqdWZ1nROpvlyDtZtp8HWTHqmrFw2N5NrCzWhF61IN3w5h4GDJW6CU3E5kdmGm0GsudEfk9eYlSLUkOIJsZJvkjyVGZqKK90m63xwfpVwtDTKK5q8nIUtOx4IYpYuHSnnb2csMypxWpCqAqR7/YIviUVfbYKX4PtEenQyItF/Do9ugjHSuxXfSq0dWiL2XYsUsRocy4HJ+kmiAFndYs9UttHgtqhgmvkOC4SygUG1qOey5gW+6GTOYGSpnI0euusoEPQuHRCWpeJ8xfbUBC4qbm+vSsNWqeOei2l/lMYC0LD0NLzjC9PN4o+yVaQyq8GiJmWTyfks78jZ3EAKkw27LsLm0rGtWrCNClA6DTAHtEXbN2Yx3DQ7gQTXbH1juh3Mrxm6gzJITTjQ4JtTu9hxzkMOWRgBvKptYJ9q1ZewGUXCCqcsijHf7SlrvGtjcYXt4s2ZjbZ78LljcX7KsBLF8jwhLoXpZPv0Yqg9iHctUAFj48rwdGcx15urgx8A10hoWQSIhSNI5FAzdVtsHxePK3GT3S9ZoXRnBV3E36K0Zw4BcZwMFJz8WnyX1RiGf7gy5b2qQNgsTUE8ayA/a7JzL1L98wIj8w/VRew1gr1QlFBfhXL2YAYCYUVzLCsRq9eEFuJ89OFWhtapRWd8sEACjDt0OztMUfnsU9S3tH7+lXhBWNQNxA7GP1ZZ/mUwhzco/hzZXx3BZDZx1+7F2WAg/sgGCwQhC8Dcl/Sn3smZO97ZcZWHss7jA0uOGl+ePVUL902BbhqL4N7ZAq/7GO2D431O9fJa1H7nqVOChNUvfCIrN3iWtXdmMb8tj73uX2bOp1ryp14XAJFUAU/u/OfZ1PqkrnPNxDQOLQ50c3lVPMxqoI/6phgFCA2lb6BzFe09v0arefVVMldqK2taQissiRiN7ukHB4veqs9JQARyshCSWywlHWyd8odn0Vtb91ujq4sKdlrpou3Kz4dlBBA6strsxq3HgXib5yZuqs/JcZ87mPhZ7Ro8ai7iHBrbW0WqkT0Fec3xuQ+rcOaytlOHYN7nVNAhZwXRBVypr1PVThG6J5cPz88uqVAFuKUE1zhcR6td0ItOvMAIDNxQPhdJTSY6qZvL2HC2uaAEAGnv917xK8/T9KAOAup0b1j8kdODnGP5qumkTr8tEAFN7YGh9cv7y0e2sR/WNWOQDbiBBsSk06PX4VOzl+hHTzGd9mhF7sKQdgGxKy7YZLw+Z5k/fGnx/ZTiRvP0I5O6vu7OVqe0YIIK9HmQEAXqDOHWGWiqIRT3h7Szwc0AQAWj425777XXvIsEkAoEEk1ZrVtILudeS58drx4Rez41NeemfVIcBWINEpR5D3MgMAJhoVr7EVRZFxK/OLRhfWmD72MBqt6YbHzXdddhDV6S/G+AtfwbIW/vB/+CgZDQU3CCG1EFv7Ugm26SW8UNAXsN392ito2S84qgOmEygAppcjisZ24QvgtBvO8zmMgs/7WsHJy8mS+UJMIV8AUd2vmK3rVkUM4f8ouEVIbggZcgTKfkk3LJAJgOwJiCRHdkroAF70qGaZZpqq/6MdjdmZDkxLn1DgSrV7SLLu7Q/B1bMfwvmVw4dS9Qyl2gOBcZ0p/KaCDiMCfbf0COrGos65/lcQTEFVG3j9Q9jooOv7o+cf77/O4I497qG+ftxf1M/kdPKfaWEvzVClQzPJ/QAe+8jb6tqGhtS//txH1igeXUg6OfeELrwCRCHWQ5QOy0KfLpCREk6Hbis0TrbBaAI2LcWYlRwY3GSSOLX+8uzH2N6vdA9TAICv1clM6ov7pDRZB2FUmb7Wdx5WJtdKR2qlWlqlB8lwr+8pfZjbAy9yR2hGyFCvG19nkJ+5W/MJDyzBEFxlMHoyDUJ/og2MIr9I2BajQF7tJf3P5rBsaIGRkA5MEvSBGpqvx1YxmBiDz3NHwLU6wmmxRxmTW9XiNNwwxSN2mJuyn7QH92ltReb6Tznld3ll+Vk7ATg6OSa0GHgTJ7pYqTCSLTmSMtU5IcXyM5biShy2JIAQdq/stLWKFK8g+lQYcNDc+PzqdpJ2YFV0c+m2B90Ns9JpkOIXIujzhs9nl0y+V1HsjtCFjLh7GtpgRoIIuA1TpSB7KGOBuejPzV09cAHI8Me6Vi8v9ucRrSn3rcwVu6Y4wQ7Z2lG7Ub03wuNKYJNsIm8XyqsFRCfCgi9YkN2KqX6CxikJiOHe5daaxIFboelsgkZYlbKJRwrDy/Ws67sBkBKx0BaDt53j5lBJBBnVtNy5QBnQSpxxfH/X0bOkPLsq1c9Hpob32isC9n3KfBT5d6pVFPJOc6npDXSCKSQolpNokZ8de2EttpcHrW4JTWgCRqR56VGypyNkgLUM9gUZ5LJYMB4X8WVTBOOE351FZ4dOJ75PUwnnExn88CCWlB1VdB6C4mYF3phZN+828ldhark2/1x0NTnCtKKr4IwapKxrlMhzQiuTSH/KGFAzBlRozii6GMj2GS0dv8y17u0TxlSJtj3rcjn6mjejGKIKeHj084zs2rVPIqKw0g6IlhdxH7ngd7rVwIcX8weIz8vAjMyKzABdLDNzfEgf1JxOcSXixaIeXQGGzF3QQ82nV6fUgZj2l0wt2GUcXXY88OzaZ8PoL/t0WEHllQCjeSsBuyu/+s6kbrcB5c8K/vq40VWlhSsSH94joTdb1l1st9a2SU8tU7YfUgJnv4xhDPoVRJsmU5yQf04bYICNLlSj+3xe32ci8hQ0n3afiembKR58vsL647WQh+90dBCiyVMb6/ujc7iPqXTSPO3EO8OXMjnjryqDbf2waq7CQ3OswET1eOs2w+wA/pqMGQAYELswXFH8v8bFKs4aQdkoXe2qVI2yhQamygQAxLsPmdVb9eAG+GvclU7tfuV7ElgRgGsLaC2+2NFHr76MG4qIxH2AqMOAeI6peFJZzhN83ek6/tITBagu93tHXNM0BSBWHWP5mxVgSjNV4Sei0cE7gVAfkOCCVSpOGIYISjJFl0AAJUksvLi++S/FnevHruavyekdbQHAb9kNm5tL3MTEB13GXWPteRta4Aw0BJGpSxiHA5IVJ9j2XG/NTrVJbnsLEGlsQm+isbar7gLzKao7Jt4r7YjVIEZsrjfjLwo6KYyWOGI/PTg/VoGxHurfX+He626fxCt/qbxmS3ZhAn3YPW2uOHxfJZzmydtCCZAUq94mwjsfwBsl9ydOPlgmLj5/Pv5mj7lgkttsGQOiSGjXYxMcHzyK1X8DJh+GzdcYrUUV3057tgV9e5KoTZscnBU/GCxDMJk34LCRUeq9tR8m75wkBfYn4/SS9NYJU/S0SPTdyQx/dZ1O35ZudjUg30SugeYwny60ILDuo1y7Y8xDmkbK2k2JNh+3a8wAOowrJ+u2t6wPXgVntyyxLiJlbVIN5Uzti/yx9hfL/3CGG45Nhg6KrK7dZDeadcI7SYLRcMbZXLx6QD4c+mHiKutPz+sl3axjkDtMbeWKJi1RPb7JEecpd1992W6uiUf+2gv3sAVsjZhEhk3pzc8faTddCZt942qa0TpFSNlk2tdoNDwlMIUNdnlj+gJWwRQecMCrztUdbBVMs5ha0TzAnFZaRtS3nQRncA3N7F+A2udf3aPOgIO27VIwcj0TEC0K+XGy5DThx/fuuWCqPusKqJiegIKBOhHyPBw7IbYw67yAKPSsZMOYa/qpREGG5kYajxssrqNlQ6R3yuv5E9rGJig4TSa6lRF7OX1509nTzWNP98i67qOeAztWDP4rr9IfT3Zk0f7YLJjK5R5iwjpzJu3LdNAZlWa1L7AoBc7BD5XOsokrQFXjoX8qpuSWCNfpeL0L0wprDgmeR779A9X3zr+QlsUy4K0qhYUZ8EZoYDl6MsWyq17wBCE/xusbONwRNmVvCUgPxyNYEOcLGsMbubbP2+wk0FfuW+TKRfzLh/pAdKSndbQ1TcNQhl0yTl8qtOM3qVYbqOJtSpz/VH+8oAx6t1FCZ59wUL+aQI6kF9HuJwUyZUtSAu0DfCQW38RkbRpVQYxF8NKHMmKnFV7BSL1yP2bsdfQQqTGiF1eisqC+zRu5r0lcpjwJnDgCDC64fIfYtat83sEAA18kJ6LJCOmlMMdnhLMbGki3Iv9cNWjvIfxiVW56cxdOT3aCmiM+qdmqSk9hToIVqYEdQQk/iW1rAdOu+76E6RXXb8syyVM039fXgyb6tPVSboSTlgkIsRHceMnsrRUVQ1PBk5PhoslcRu+J3cZ5TFx3a1oUMtxN99JKUUQPIYCANcT+uxqF8ZuawnDFvpdiO+l1KqmAsBVzLvQ2nizFjG4jT4hve4LJ9HH6g4SfB/y1/V3lLtDPapzQhr+0YqnQg60kfWw/2unu9Du8E86JQpo9dd4Y+BpN2I8xCyGBeOmYJLoQMIbmK5KL4Fc5Y8Hxt2Svb1ipSoxB2NEJOrae5P5lybLINd6pLUGjNCFxJmF579mf952jWDqpyPcMXqZbT0oHVgCNLy3ZRUstrx+SQc4ygWmWQ0Fig+UGeKc9CpKcvr4Ce1O2Ar5rviB/pyvwSfx1ezV4BH5XrFJ3ZUnH2wIheQ9mAOCi4es1dmfC86ZQzGKvD/OBd5xdHGN7BuxlMBMAONYzcgH3JGxuB86VR2/Xkm2P9QMAR0MpEspD6D7HFzc05YozBS2LvyzgiJxg93A2Czhe+331/Ch4V/OSag5SFeaU1AnMrjPbAeTKWTgHVS2zvQOFcd9pQsq+IpMKJTq+jfaltcHnEVZfrQ9hPw/9YxpIAFvun47hMfFeun0vBi+ZTXbp1R6/04u5IAFsIlG221Jp835vTeoImsvVdoseK6dJnxKrmh7qMIRTRV3HDAB0NJ4udjdY2ef6ZCDl7ODpkeM1l+sWPq5oAgCEU9nLbRZwXdLbstlV7QcAWFCdRWVhK/UpEJeMY6jK/2YgNzMYc+Yf71xI9coxHR6afBB5Lhv/YMehfeCcWmS/8axCxpcTpiHj7mkGADiIpozd/TnR6OkY+tjd0UD7DNfMv8lOZSbO5uCci0bryjHKRE+trAisEpcPL45hwsUgUuOJ4f7GQZsR5gXR2Mlc+278BrN7Pn1CrXq8OTwsJsCd4MJnryQc3phVqa2+S8fmSqzwTjrM8S6mvAbJPCnw5ljrEsbQJI+U1iWhgVTYhg53yTWjbyyU1hVsg2QIhqeTXRHrV39CSvV23j2S+CHYd3uL33t2pdeCXb4O605SWJ1TA9hkzADAQLVEnNvwLmELpaoa6GZn2i5qRLcNPHEmAGDebDMZ3N98DeXuvR8fZvBxEK49+8tjn/0wtcTL0q9LRB+O5bXVhUdmHStpN2onzPk6l5MWAwBeHYe8jZJDs+76ZW1Y9qniPvz1rupuWKLXaqcEZlKM/LkznEvQRonT5zfqw1/vAt2wDAEHAoWVXIn3UWbdOUkb8WtgeklnWMGwzb1Gkmc6bjKjT69zq2xQKh9De7qCI4AeWTYnBaaqvTkbyMCqSNOlQL6HjqlEZ758zvNoQXv6Ax0cO+vp7KVVqKX3p7QzmTzjFTp/nvTPuQ2zcwOUavCl0rinYgYAuoNuutKJGx0OX7wiKH3qcs+9NixkJgqZRBMAqMmimUQbgQ0j7/sBNe2VcyJx9XhBABC0z3c1waDgyiwyEGW7R8ZAoCwxHQPB5n5MDBSOFTgxUJIt9yZJnWcyEEyXRymIx4NyxZmBguN2FsfAycrss+Cc3Pdtwen4iq6kXRL9dEznrWq682MSE59eCe0PBoIEsP3+6eitYyovo/nVx2P7Dn3xKXQ4GA0SwIYShU/rECQf1ac7RXxSnUTTRgjynz/apW3548SqhdWfYwYAapjh3uHKw2DlNXd7GbSjPstvczs1TQAACzW5jQomRbm007hUDQKADsRkURasSn0EbCdjN0TyvxBCmUEa8pL3glTPHbftxN4dEywTNzA7AC8cLdLIwsk5Rpw7l65ZIDnXSFD1i+9KDlFCcFoiUYPtqKh4zl8SXyC01hxeRFAbI170u4pFnYae2b18EXX+acdy8o8rySYTB5oX3CYvOkAHhoKgdhEJbPmFVgBTBunY3ZiJ73LVQWV4YwdXxU2tgF3vsoBzr+UzLYRHq/hV5nZL6t3NfEfGnCLxBu2Igf4wm9txsJZUoubzMaUQoCEtO2Ftqqn3n6v1Lt2reZgrMoIugDHdXc4qgFFGpxIuKOle6vh9wyF8h/TZ1he8jo2YughAGOp26ePsG78feDQju6tDZc+Bi2VR8FIcVj/MGM3k2V0ElhqBKGUgx2lUVBlPgKbUT5wh9awqKOR3PXf0cnXTp0IbgCDjozf+BbypyRWZwmQ0VGA2JKHDgMmVT4nmCyBGusO/CpFpSY5H6HTpUEaGMQpy3xVrP/bo8steuEE4Zf2Ai+rHzQhNDHjTou64qhzJJ5X3m0lClzVCAnFLtCkEnUQLfJHuGQ5DJGA0SbkNsZ0aAb91ApgzF/QLVIkreglSxXF77jqdlUnwnQNMhSM5F7b4/T/sNZ8YkAmbhBI4R91rTkWS9dMvhLZ7CSO6iOZuxLqOMbAyguLayY4kcoZYnip7XRB+sk5BIkbKhbnCxUV9/A+DZ7zAievrqz0KMzTeK5jnu2K77HsSG33wNxCcyhrI8rnPRiNrsDyWbxZbNOPwViqnXTxgKruBQaxiZFaE5huz8KtAc3Y4/RSaREDP2Cx8msXi7FNbivj3ar/8PrUle/Sf9myOyDUBdSRfvJjJN29n4LKfDh5DQnBxdVk7dlb07h2v7UZvHQBghODLdYppCFOLUVLs1VYOcWrkYqw2QqJnmpgVBJtPUSU7NMmzBic6dOARwYsIslIbIcvBMLaG3cjVjP6xXiFsLk+AO4Gwq3wCq0194sDzhz46z/U5hXyGsJg5G0pWIXCKXUsxl0JYeHqdtFxCVPsSNUwURtVdCWuUGDUZGa+XSSXNpC7NMGyoHUo2F0gcrghR0pfcJczERsyC1g3KCTnh3Oq2gQ4iN+EDTA3SryLag9oYeR+3CO7TyHts8L8qWxmHNpotfaWWM0I6tm9V877cSr+pqqVuY5/AwOVizoF+tOAmopYP/HfQDlcc17YRcpPVt5MpmjjeSh7sJBKcyMtxHBSCvRlqXlxdbGaLyjoxiof2GvggHeDrfGzG8Oz91O9xBejG6VTLgUlKgjUc9z7GRFJhNDaDDnOVS0q0B7ynWvZW99BkIXqrGkxKncRSLIE1KYklUmWiqb8StmqyBHaftfaP2CXBITC7N07RNLsERtCRPo6n9+BVVqHNP4BFrvGItekQeOlCe0ee1Z79T8TezGMRchJkOEmMwx8t5HO7t+6h7qi6qXVrH94ntcN+rtuf23BVvgXDJRZHWaUlDK8Ha9geunBgiPj0NhHmPSCM2ly2G/1+7kosYaSYJcDplbkDNqzU6Zzs41PEZgvW3ZQTxJD6YFktfLDmnppfnBcTWE0eQOQg80JDL/Ns1N6D0coS3F2PLEJU7KF4MMwjUvCFPSBIydInqPLvxCdlhueCKy4ijt4pdTXmoVzk3XJayyoxkEjrokWlMCavh5gQScJdBSamlOcKTVv5/8tDOWMTFSBPy5f6oi20LEOdi2m5k9JCad5u3FGxXMnyZSnWRhKSiLBpc8aRxKWVWJx591kOvtGPI0OXDYFTfxC8sSuz2LRybXNj7fsPQr3Ed+OoaOKFtSjN3gBCmrXnvJv6jxJmQBKDrRY9tDgI+E3V3O68uTfMN37yBFjZJKCEtH0kvA+KUpjLOXFCGNCNJ24MCrIqjveN1vMSSnASZYsqaSTAPWifbGcP2U1pqxnWG9Jw3MLlGxqru52haEDpOl4RvL5/hXiPc49rJ+pbh79FddbeC77TLp9ph54Xuvpws81RxMY+rY/M/4zmUhoD2N07s1NZB2df3MNKK3yL3SW4j7n7ys+7M/xRdy+a87c494rfApitMYW8nID3595yv5RejoJpzEji0PoomUbUIFd7vXmFtrecWSnvWbhxcj1UMoMH6yQgPZatt/J9aLJCZkfeh7jHU2pHDsnY95bymF4MAgOuOKFS4gf7P167Lckjbktj/zaRdu4p7lqHfL5btm+Z2MB9hhyBGyTQdJy8bsLexb2zhuiJBei6lEDqIk5ZCZiLIJhdcNVM5w+a3QrUiJ2ev1wNxAJE0x5IdJ2VRUHu7uhnquFHWUVL6v//2//3PX/Pz/jy+fxZWvyIszF7+D9V5ce3i5iJfR93+RFfRp8x/vmPszG+jYmcJW/xIOqj/2jIwPknDmVoVYddxLH+FDB6jUcakyU0m1ll0B6UNKwvvVD/lhK+YG08Sz1F+b+dvCOnagwUh/FmV3JAkU5Y33jFBsKaWAJkaF5zP4Sm8VJrFCl91zwVdy5ee7HIInenoJ7nooq3rLzgeGfLlpPrYOA2r5sB3JnaB3LzDtOALm7abKsao0e74x5fTbGB87xkk9/Qcz5RHklc8XdJwPMmvTJRkFloTNzj4euTQMrrOiOiiSRo9wJXjbIaEaQH9BAxqpsuAnYW11fGlA6ZquG5MpQl7kCLDvh0FexIVI7tZZU5UiA+tx4vp0SDzfTtVHjd9y//5vXds6hA0KIHpiZ7hUHFpn1mU1ZAuE+CRrmrHt7otuQgdEqCwwrMsR4x6xVFLMWQrLz8iJPbndByjAbWCwNksiSvMZr8SnTvEE+apzPsUZovkv8GIkhz9hbyrQKqhQx5lqfqfb0Iggw72LPNecMoQtHE3DJELlJ0s4Cds6N0Guex5qhTabErcd355gx3RhNyE28w7mMaHK+lc/DsQ939ycYCOuuCQlp/zO/VyhXN+zNWO70JxF3S3GrFG8TsuKZj2ruo9gE3zrACzDBYct8SGGb8AmZ4/18WJuDDDhW+FlWgpvXDqF/5ogDdVWF/oxUxunHuWl11ihn3vwZg4qGgM697Q8NlHsGwddfdfiWv+GUaLrniHvson39CqgO5sGfJvDox6zi50r/B2VZ3pD71o+PjxeGOmYqjY+1pefX3EyfYGXaXnDKJRinmFlAFLPIs15fN2fLyPZ4leaNOAhpwxRMDXZa/DBwnXghHQT09D023xKcovUIjFnw6UpWdxkM79afFrE/Sq8uSwiMA1kMS1Od7AvcOEX88ZUH9M3rMb2rKMp8jr0Vd8fN2g+Pskue0MKl5pENdnV4/C1blL8y3Wwgnuz36czpC6vTVDA7EBE6uCniSyHOPLyYNkLc3DmPeR+D/kD7nEa/zfcK+gdRI8HNHsAvBR/XnmOmuTBouEcclriyfVpiKhS1e7TYFBwGXtn0jK2mUGFsmeHBNjIHDZPKJez7IeL8xK9TkWsupjyDvCI17jWOIL94i1luJF8A8oqCjLjGlTgPvPWUIdK69Z/aRdlqN9YmbNbzUzuUhDpk2ugMPz1Syzklk4c8i5jRs5EXOINfCZt3Z6OWSyT+DFJL1RQEsSnn/Fvxuabs25l7g1ojSMisby9oismJJoNpE+FzlWJ6QGDf8V9pSyrVKJLp9AkNlDTZax/sIeMSrRx2m+ux5e1ikJOC3j8DCusQWo6MjJf1sD1nKOEjRQuIJmmCXbEIBCPx0IjoQJedRuE3wwFODjjA5BFA4kD4Qm3dUKgP13ZcNGDC2Dw+qQ+SPW9x96Q66OxNmQJzow34gDonQ2P3G/QGSW0fGjyTMMrEmKA6iTVGKbHGxI4cBf/d8CUrsEOBtOSnLkZmsnoXnKMkwT13IudVhWVnd0nEEA+YbJ8a+gqsHG8ESSM12phmCeFTsa9bemlkv/ESmbZdXnLNBYJSVEou4pozfFstiF/9M32sI0ipNq3TQrcoKmYZXA3xjDfqvclsdPmk/YPYX1y6JsJYSKZ5CdgH913VfYlTAztzxXviL3k52wAhy/LJK50HKSDFTuHWYHUWbUKzsJKqWkUc592/TJm4uszkrdp5OYy+nwxbA3MEM+eYyxm1hIs6VErFjGgCYRGn3gqzVTOT3LR19zrnXufPquL3wsHWjjgMqB2bHZmQDYNPv/72rysR4CLAQlj6jVygnvDi+SWvXVUwE5kEQgD+ZT9qzbCdmlTsZzdiZUu/OZcOyH6UNDjlqR0yA7+C6iMTaX7FoLcZVgBtJB1OA5DufGlbV5znE0haMef92At89GgTwS8Nor5XXG+NKU7KWhffxgau71Eq/u//FFhUp5tWWWCC8dcfrtaaE3axNhVUx/Cq4bnUv8YvpXt2osnYRArQ9CZIscmwzJ2GA/n35fz/BetheniQ2lanQAOLExgGZG4dFaismzIF+9PPFSHbGroC45sukNsYFo8XPyU7fRtxvleliuirVy0PfFKxip60gGMA/t17rv9aPdMrGLIkXk1/WbPMUsaTrX+6g3pFvYLXIzrB/zDqAtM2suNX8X4BHhqF5g0YhwQ/PiYwGZ+zQi0Zew5G4CuDhLsl0qm2ZJE5yLtNRBekTZ061FAKG3Q64I6pGU/HiGaH39bVF82u7edSfPPkcHgGhee5mNHDwd+cEfsmVcWO2zGRsNyp3Ppyex819TmjncXNfr5l6IEceRwb2XbxU6aRqdYKySKWQH5G7KqQ0vxw+n2aiCeV8xfJdVXKfY8fb2seNrAWSrYkkuyqhAN7VDQAErIMXA+IsHVNOJPV5YJvWbj04DJoV2beaKaK3Yjafs9pt1VF3y6/REGA3i2CmCLmt7sFUcYKpsmu52MEdev9uC15x5z8AgKJgTuJn2XByzu264Oza4eOMvbXUhrpjf/IF7iYoYIuI1QgE2BFc0PHeHFxajt0BrPu7tgMAqKq1uPBbfajmWtz0ckbtt9MkPdTOXx4P6ICaaTqhwCmhynQidd2M5gEA7IGDuLjbgorczPRBLWT2cKBrZcOEUDseqJGEIq43qi/Ch3bzHCTTH7XSeb3M/P8sdCdgv3h/7gSFNRArODQmFiV1Ve/K+0X+ZuK/4qlMlT/FyTOp2gZwGEzUxc33JfKh3Tx7Ya6np/i8mfq+ZKjj1H69vxTyEudrvpqwV2bB+v6jWhCvK2Qerb6vEF+AcDTfNoC9NgufzF3IPcjQGzN80n9Nd7urla+00hEo166CdAq1ZNd1AwDuXwNoqK3rJZ9mfR5IbXuX5aBmsyL75NhF9FYMs09OKfRJXAJdYRHtGTFhq3uQZ07gKmrXix1M1vs3Y5jbnf8AQC8Oak/8BIGOnNuUoZeueLDQJ/E3KjCHoADHRdiaqR/nQyRV+K7U+acy3oep6FVsCdCPjp2MVuRoeLNk13UBAJfDKmK/GPXvCph67jDiX690eTe+0k2zFTnP3p713IfyFdEVvlSbJ00NA2caRTONHQUAABPQKXLCT0MevcXbZn6uZWhuRekg2b1bBwBQQnqwJVyGt/WStUQP3bfI0TTnWvB+U6lbRJCyhi3H7sVhyfYQGKtZOA0PbxcO9Hdb/ZqCQJCNhsukeEwnryPDRHsszN6Lh/59rZnKoYZk+7ZURQ5Ah3o8V5r9BLmltX6sxxv7lXxPv7Onntd6icKe+BmdKakh+9IQF7PK5HZWGVAm3aoisLLe3ADABllNIzoMs5UbBd+QE0JuKUezsh7YWYNzKV68IppdhBGXrpjCeUV2yXApiUulUQ29EAGAZAItayXBqk/BRBc6pJzn/rQFqQbe9Q8AaB1kQ+LHSf1ZkFOYLj3iRuWWMzhRf26Lp8he0ZGj95xTbHOu4h1lE3llWeC7sSNE3pQ7SbXKUsEWK3Sz7jg/jsY6nIhn3l7PlYPePlIzx54JhtFow4gQX6s3y+y6ORMtca6pq0JDZDAvAoO92PCEJVxVWKKCQ0NQcPQRExy6p1dQuFt6A82OaEs+P3QEBIOxwI1wYGqigbkTDMyVWGCm0+pREwlMQSAwSC/3pZkv2JLMZ0wQMPSPwGYqNRHAfAgADoaEoOCZv5lOigvsIxLOf5up7tJTnWpPyNbflKYQtj3psmqqLmQfWMxSElwMlc8DKwYQLMZ1UwAAfQ44e9pjJz4PXDhrxx77myl5bwJFSZWMS6eCru1deQDAcUzfBBPcVnXNt2bb3nwrZnvVXttO6Y8Ex/Zlfzus5SIBZ1hHYSxSs4JabEqn4jIMPeYzoTDp8arZW8VU8fwxu4cHPq8vqlnA4Grc1dlqudfuUrNY+q33fgWWdBXgStbivRHgGb+OcREwqJohtMaqDpfBE5nVN9+tGwCwUDgALyBWNjMGO9fe3boKuGkRAOKxQBZA3SeBK/5WaNUYIgDQMloXJMGmzoZfF/uCu9f7dzdqjRJdj/4DAC4jT2/w47WDc3Gax4GLbYnvtC5bwOVZ+ttCca20oRRPFKR3uvV+3Ckr9gSVCpNkqv1z64HT9D3sWkqu3K4nUvIixrznU1RjrB0ASFlKQ45vaJ+iCb/dSKgLClYaEqRuNA8AcA6eY+HQdctqwGw5GRQHXJEBcyuyUY4BC4kG1MSArZ6BYnkh6tUtK+1hDz/K43mWnM/gAn1qheHwjiSqmJUq+hn0H/Pgpwdr+gX0JwNjAziUo+mpvdU2jsjHoB+W33Kf8gMMqVWIPQtLzrKVJH8+gC/l8fcoSr8HDCejYwPY87DwLH1KomtTr+TZMQaWiIBhJVdvYpwqMXTusGTXdQMA0zr/0KBs7hTIyNpNr8ZLmhaBQvdXVEpH1YBi+iRqA903hggANIQWN5JgVecuz4t9way8f3MNp7XzHwDQytBN8RMX9LXTHAIGtMWTMlNFh47esyptyEvxAt+i9+Fxe3VpUSrVI0SCazt0IuRnWumYBOkP+XveUwR9iMk57U0KtgKJDnkFeW8bAIDFp2rN26bNElR1vqf5qyRnhaiK6O5JjoFWT2E2BgJnyfm7ooXMXIZYoYXtwFnE0hLaxDABADCd/e4qFFrmWwkqXR4Xvcl6V3YyAbPi5kZ2AIDdoi2WULIVsMtlOgA2HbFjYAuckEkC2ILD2uLAfV8vhQs4p0CF/ldJyRyUeljKVxV5MFkCr08wgQ1ftkfIn2/vfCEfqiu7BC/ncV8PXsEgzyM1ki2rDC8zZAgA3DSCxNvZqE29cMxOuuvWMXRzOzlNkuiOKec7V/Dxr4qqynwFSqBR7RkJVAzQM4IIAACQdbnPLEEUKDS11/83XU0Te9PD/wDAAM1B/GerlFXVlt3cpras8bbg0tYVui1estW6CDjSJ7wwsgXLG2I+1UVS/1Wz74O8nt0/v/VKf45blRsEZi7/vuAaKI8kK3ujjmtWMapFLqtvQg2OoXwwIrk+UnWQFMv879nAj0ecYMNjZf4Y5vlc83gUgcOdtuUbzS673SOHA/QrsCxiPFck1fYxsRKoOAh2FmKRMrzzmcviQSzzXAu1yQ+CMOhjDc1VDl3eGIBiV+46O0yWBexeG4OndHYCm6oQnvb4FABQtKk4SvJ5lRM41u/tvHY9XHc8RRU4v/VWvjIeywMAJunVWCJ7Wgnn5hNuVMuYCdxcyzZXcEfWYHUh7V1FRRXhLtypr3xwT7ixp2qV0ylBJfrj8HLkSb4w/IUABZ8d+7psNaNoU6ncaz2YxZQw33YHCjqj9ZJ1ret83e50xyxDAGCuwV+OHHaW+gEH2UwcWA2f3z21bhjQJy4M3r27yhFAnU8CPsApFiGcc4W3ugenKYm2F2LZ+8ebBEuSYY/+AwAjoe1e/rMo4FS1bTeX1MIaL6nFg2Wj9IJSOIHvTlQWUGl7kn6uLiFhKuiSECTMzgZKFErtTrvBNEpXBWPBSpru7GoHAMIqFGAnvoglDZh5u4gnlcjOSkoV1YBVxvIAAJanV1UDFbi4qYFsuRmnIAmZ7VlIr2xICdLog0rNC/eIehfKWfiIPsNzgvjmRoN8zgrDQQ1JlCoqZVFwwx/P1IjThwvyN2a1BnAAQ9NToKd0yOoa6c2Dv2P8Dg8o5KxC7E9XMBThsWuhL48t7H5zgsKNqa0B7G9XtixNacI6zjzI03Ti7Q0o8MiLJKsqyaxzihoCBwDS7Y8PtSObGwIRrF12rV/WsAj17Xksig2q5JMoC3TMItBn/P+t7kHXdooyc3vR1Kz3b3pnNtRkukb/AYAB0VyT/2yVqKmas5vb1JY13qa2Hmw3Sp8QalnAHQjH9atWPhGrwjZ9iUIRanSo32L4Qm+fB+Hi2dmTRGRieDzcA2wGY2CxM7P7OJD7h3xTvuPF40LFzz/B538VmykA8ybJ41mBGSKVC1AhnRFHgAgsKOr5NmSslBa0mg6zeqQ+50jamNvV5/NrIT+zSDVrdfR1moxQKuSTFk83CZERHg8C+wjD3CiZu6IyhgfVTX6o8rSSTbbgGoLeUBhTGZgk0urpfgl2wu8AaZrhV1SR7CkNbTNEwSwbBFtmztDT6B2yUGcosAw3hDVKRxIM1I7B4uNkuaoXcTFvbkquvaMjKY1LhuZtgN48QjnfA9SXVGTPEwG16UcpcDN6KxV19HS6qshf1GFOPay/CtNzWWGHa2XjLNkPjp9BA+IM/Eike3s2R6JstHDCoNWh+Y+sryX8KXdzIQDas9g5EW7sx7IFEud7aTt2lMQKMAEmZ7OlXkA2UwvYtF+VmnqnuvLCFf6cUqTnU+S+DAAMrXD1zAfXZPXAj3pYWM2zFqiIdU5FT18BJAdCCNL2NWUA/orUqJXvYnFGZ0XkmG5QEZZO8xGk2QCELlB8O8jMJMI6QCe+u7rLJxeBAONdbelWfX5t6HEb2kLFGeJxwLJawaUupLZ52DJK80BrDZTAGzpmM0rnStoBoJOTYp53pWhzok+np5T4pgU6lzKKN6AuVHRznSW49PrQ5kTf1hTpyYXvElXMlbu58mNNdPqq/0+kBxIN/cd8t+F3pVpsakVhnPBXId29+2Q77RXw1uGPZ3D3BLg+O35yMDdJvsMibiUZOYhQTeqaHhJQhIcpSzWDFGqHQdkSFav7PZx1girD4FrxBZEkw6HS2gm0R5H7A0wgSprIYuAorsVGHHBKfP14f0A4IEt+wSx9DA4/3ddkA8H/UMuzLt/GafmG1hT1QdQC7dtszhcABQR+umsJeHXY7TAW2B5g7GSskBKhF+DSfG0ybUIcc7UYOh5Wh9jq7TS8HT8fxW8TSi5QqF2YKG2rA7QBaLEaVRwuJgbw3jJgRL3NQ2dNnS5zc/VWtGaSjX7Y/HfFbG7en8l221jey1nT2bCR28vUDRYqtsFZiKoVlvNs7G7KaNtkqqFSKNprbM6M5gjAqjCyRBieM2zxkUivTxqgPuHfelr8d3Vg8tw+bt1lDwDoc/EowcKx+UoltonFwxPVBY4JLX2KrFGKDIXVlIlSy1DscsQo1Wr+UhsKzUjnLhnK7KAANbsUC8hQ1oQBqC0rTE2CrkEHTs20NcB4y3c8sd2iQFZpk512Uwu0uQvGUrF0r82OWrq62+F0G90QvAwpIqPqVblXvCrzalcNZaWr0rckhtXsHY6g2jkTUysU4cdVht0FyoD8U5mcO+gTC/+hh5TjAtyQn9eu4mffa48LljWinvpXudNYRcyEbipwCjvgCyhxf4peG1h7uwJvC3mVpSOwbzHt3nQiCAawE4WCKmiaIlO0VLERR9pRAKbue7ltYHIbwGXirnXBl2Xuar547oyTAdyEEdVI6UzmVsSqOHKy2dkSOIoeI2cpnJZb1qlvgBZKKReFPqfNQ3PL7sSsYB0EBc5kWuFgjdUag2Vpv58p1gRT8QD6iu6HVgN3PFpw8NKpKY61IAo/GPvxK3FYChad64tVp/3Od6WxeppJuTqWS5NSCKA/gMMp1VfTlb2SwoK//XZofVUUu61iEh8BlGSdWt+s3tYpnwnda7TkTww5wi/2z6xbuK5d9cPYU+PPfHO8X0I4BZC+ERMAICAYmnvMDJygOiqgsvyThmYlc2fsLpo1Fxaw2TTrOkRiywAuFsF6uLl2JQIAEBxAEi0OGrHXYWt/bQ1I4mgEIADIDeSV+DEOKmsx06MysoAutcVZ6y8Z6LYoTQgHZgU7q5cAA0fFA/ZiYATZtVUwLg/h1kpXObcbS7raFmPJ+NTqZgQiAMgSps72bc+j9ummx3O3C6sZKFLlVNJ0Mk4IAHABZjHFTREwlJ3ZnfdVaWPI7L2y2sxGQBwOZuARO1ihTrGqtqEYhzWvKFPiuR57gEb9ny3UDeCwjKaj0FVbfSbatzhO+sLam5775pV/tlo3gH31ylaNa9se3DD/XuS9l/OvfD+98s/NlLTIqk49EBR7bPPQvQFCmDdArRETAEC9wCzu4ZnDVeuoAKrkHwQrbLqUMfrPyuIRN0DEG5akEsudtjot3G7XTtzTLJq3wwyFbq85iVpsD4jyjQEEADpQa/4DUaHVrEhw1xJrEcteUF281EuhOgWZ3cMKMW39syntcU5JTjZmpPtgHoZ+tj6/uOcf/9MR/7Q4wrUjWEECrHilioeVZFcDDvSQH0KrWI5BlYLzbzgEfMP/woI9MwBn7wxJwIoooAHY48oZA9kjHwCASzS1FbDQU+KhSP3kjAnA2jesfccXjibXAotTsqzxpMIOBKQ4sG6sdXM2LgQZl+IkNDI5kC4s2PUqySRTXmc861XMDYirdFlsCygdu5ElcpGAYUEFK7sFCvVZCq26CtHj8x7In7VOodu31D3828Q1Rwn3dPbFZtrDNS3NyG5yMk3c9vJEQbB9bif7S1/1EdHpRXX4gLvIfp1bV6sXutV1JfMExbpqb0cIewNSHDEBAFIDpkemjweoiwHKR9+l2YH3jKgAe4QBAcBekURITA2JAgAqRGEEEc1kKCqfRcmuF7cptn3iq8+huNqpDQCg3LWFsZlbLczQoB6guy10yoPoomZjymzZqKl1xK179K50gqYvgVS7RulbLszQnkyu6MGKG7jELEWjrtsTLaOBq8so36Xpi+waegZqpUHJcQ1j+0YJXtAV4ngPPTGI0RVXjh0gvbJ2PwQAB1XoOpn4jkPp9eg3j2u7XWjXx1auljEBJzvbjH9vC2dS28Z7aIWb3jZzMhe2vxXjMiFz4c6UxLYrmYuwIR48SeZmn+ER8yCHf5en9CWEi6bK7ZUiJ+TL0B5aN1ver88+vYVxnt/hcJX/1aIK7Wq914+CgTMWwrMF5mbEBADYanDdTP08uo4gJfkXhSYd/xlViRluIIi5LEkUW0OiAIAPMWhBxMG83rq8D5/cLV9idAfHlXh2JB4AmG4oLHNx7s7naYOuOM3ooAVLnF3+nBhok0tNzRv5awjOlHW9bu2tcoOztv7HBtx6FNwa2XUx3LaP8IYwHMu7GIdGeJEcu6XkkhGIAODW8GZc391KbtZzd3foNCVVLrssYqXdKg/fLtZz0s33Jwxo4XbmlnwDNbYygxioI8sexUD3CYiZgm56xCYBVKpNV+L7jMFHYy48eZ3ORzPU/ytbbgM4hqEpeX/HPGIfzI/dxNyU/aV12JGtfC232ncbwI5thd+Hk5Dgj9tfZEz6a76X0Du11S181nPLN2pwq8s3Wbau2lMRwh4DH0ZMAABfwFRk+iiAd/xPmgAPj2U73jP2AXaEAdGAPSKJoJgcEgUAeIjqCCIas7drhiL9nRJRklqZP+FwaA8AcC3NDWvJIEDmwsxzi6cuvwpVbTclimONV2KtbNOFilvXniotSo7aav05+1mUVSKs/6tQPG44na9xpQPF2T99NYv+gb/XPyzWDn9abiGp+KpDQpIuIJMMWprMKEvbrI3mR6F7aVtmGHvW5g++ZHyCOjWDoLWRj8G8LBxUkUGrCiVoWpCBoPz5r0PrKuD1kV8TTCDnlOgFYa6EMyiGt/cJBo9wn9AyPLAQzUxfK/12KKGvesMEQcmuCt8gYkkkry+KTRQAvXV+zQ5/PbXSYktlLFboVte210qrnnbJv+k9/JoG7NA7c93ArkTBsYCrduSnQ2/xdnwAAFu7aMUIVzQCr82q7Pr39NPM8LFciPydni+LHGUBABb7JbWLgVKnF2qPXGbn0k7MrDpdrrh6yiOPF6uDvzfYl3Sn3lYL2zlYb6lSL65N6bSqtzqZV3wXDDjPmnxM3rgeI92U/FjkyqrmWhQmJwKBQhhIrBIBsEVUP1/XX4nfSn72dX3DukhtpoctkWbXhH9sHZp7njvj8dC8WlfJy8BLF8+lwu6BIS3Uqh0RoVbFYn8VAgAgaUFBpGNGGZ2ht/UdEtEHzuAr7TXG9gCAvs0gTupICVOQPljlFQInwGzpMnHwBNiOjhiXvZvmBFiMUgo3li+xJPvK3nRxS5VYPi5A7KO4tFkHXbsitDnOD+6614hFSJ1l8pYua3rRWZZv5bOGjbXjzNjqMM2YoeaLhcMsuxa4l1K6pOH/zth0lWwWXmtJqmmf8fDP3wffn3gIM7I2hMO5CLQh+wrdR0DuSpc5lMyqMPuAcZaXy7PbalzDhoiILzF5nynwONpdr09dHtACXHhVn8vBHj+32ldBD0AKE965kqtI5fWgAAazxlOl4rvQ/OuURV+cpfbjdAlIteL0JJGr/g1DEbOWii5HA9J09RXypYUnclAc6uYGLy0SG/8ZceIHA2mB5YbZh1tv7b6Yuf7cfE3SChcCMFCgebi+l+zOZbMZmyz8i6rD/I/pTd5U8FKXRFwH0BTRAbK6ucDCF9pgA83/8WaC62s3wo0HnK7sJ/W/2M2bmKFgDZRjWaFb/OzQNgNcPUz5X88Dqao7966fqU3EMlEkbLppgez7ayFt9AyW/F3ngv+vjTg5Za4UNPppqU/wnvZMAxqUuXv0bCKXRCJ80nrmQIrUeN8TNizi5T2TCS1PPQBqcMFRg2a2ofPb1Uk90f8NEyAE6IiCGd/da70nogskHCRghzZDoxAgDOtsTQ5cWOuSPbC91FiPzPp1Ju7g/P2fKh+UA5byfB2dPNJusxU4ugOwI7gzm8R5i+Z37EzqPjEkork+5vRCl/zaZsL9JMd57XW0RNxOczJ4gG9T184kpt37ZvYqrjQhcZhrxr+8Xb03tqDcv80I+crtPGC5RpuIyE28iX+0dpFxnY429Xxc1kAitIVhBhA+/H8MzqOLaB+8dwjtDF3UcnQ4fJlKYln/sW6RgLnyJjR8OoCjaytcCXSD1oTD4nJYmy1LPFy23uIsRuvLGPzcrUl3nfNzl+aT7y1g4NxoNquOD7xa1iXpNXIt2itaFmT3vm503VBRTBzjEsV4ximKsYpbFAtxHKMYozCI56+FiIKgO99oBzvxfHFb8DvcThj+Bwc8bD2lEJp7rKYY69hNMU54eTGesZ2wAEQf+ykmUizo8g9KueLHi4oJEz8qxiWeVIylNxLueFOx8MefikVIPKoYt/hUMcHiVaxCMM8KvONZ7IMERmuGP94lpgtneKHx8Uns9mKPwZiA6bkxRaRaEWVyX8ySljxy5IrSUG21IN+Gw7XBoPwiXWBybS/auslKevJ8uHMVuAset+j0QZI3Oe6U1U3Y8KBKLqRPUCvinFbk0YPgRKEiERKHIAGSOLi2G6mK3WYZmEg0PShZlf/GmtaxOfoDJzJTiO9nsmHnyxEWXtjG6V16JEb4ln/STUSswd3aY51x01nDAUPdzl679LkTs60TgpXtnm20WN+pdhICAK6e08Rb5rJjDgu3MDPU/S0ZI7Pr1BghBNnIBYQcPmAAkNIv8nzi2EqrYgi3OUKbMOTb85IfRsmH+s4a/5roPV2mIbzW26JXdrU3eOoJcgJhKD0pYdDsOAoAoAWQkmWIntN4I0hgNf+jIsx0eRor7179aKP8rtWFkEBtsVTYPXCkiYBtFkF2iu6uQgAAJFcPJ3LHUX0GVO13SAS6xxSljO0BAOjZM6ZqSWEv/Ie1qxsonN1ko1jWmI1isSk2axDBbV/ZQe0pV4TZoqgp2lNdpMOFeZ2iuUsd+whPnLBb0u02kVW4nLDb0ek3ZZWRugcBT9MLda92ngQAzSnSRmGn3QDQgqCmyvG1Ezh3GZva5Yz6ZLsx27ZpXlxl1szVlDFOCAAwAcbVynWi8G1gynZm504IKLOxByE6AYFriBF9YrymUKl5k0O65Rvtcx+j/5d8hg7XkNwKAbegQ4C5o05Jg1GYxBfinvTYpV/jdMoEguRXZr5VHQJMKEg2HiZaQXntWDw5lA+JXlWTCZJ/NJkTYVUz5bH9qwJul6whfDKiBGCKuB4FAJijWQm84x5iuq5XRwl1kX/NZcVdLa+93jMsuDfcQEfcc6JGmvMSJbOTnCgAQBk1FFFvdqAOFScTG1Tq3B4AMJnXXpB0kWvtwxyGw6GcZLYOlQNx32SoBXXKtggixXXrxyXPklb8qyRcSsgs9y2umxztwL6jw9/YF9twyo11aMYAGZMImSiPa4NOZFzgZSXZTQO3M14CANwVerphG6YDVKzhIEyD/41GyHuVtUf7uA4dsUafep11lZteGxkXzaW+4pUtJ4TRDn0AAHN5E4feRkKWRUcC7bkaSCEFr3eyAABwASJKwoXsfXt4PRIxcZnknbJvdZFlOGKKbXuLF4rsvzfEl4Qb0TWum+EYOK8VDfxN057Y6nR/mF7ZZLzeOXjbVBlruJvyshKORWvb1e4bfpyI5RoIY8W5fMGmxlEAgI24e1ydRTxggBNAGe+ZpgFlhYGGgKZEkibAnrptl9Wub9OWQo8kirIqxYhWehOZ8wt4Sq93wwMAnF5QivhRCpJFp6nsBr1C8tgVa3BHeUWbhpDmxrnqlH7BlCppG+5El5wKprKsSrGMNbhv52LtDvus4RTlUdqzDuWybq5++oaoMj4mrhSNz88z7NdwMINO+D8LHE8IbHmxLeeHjAjH7RNLlVlEYoSYIQaWx1cBISTeeRIAYN2kyHKn3QCAK0NYxPGx1GeYeEwspd+OZU+W3FWgMNi95w4lmBklBAAwSXJETsy2dHAUit2ozK5uR2MjqiWUi2kbKBeHMKH01dxY5CM7HPNtcEcgvHDs+wdH8unavNRr8sne81az+TvgsakDlx/aEgsKdpUqOu6OWYRCmMVYGwaWi7gaBQBQs49hOkECh2KAl00KR2uzc2e6Blq7HRboSLSuWiLpfC5m11O7PGK67/95FQIAIMaWRIlRnN5ELilnblQbAOD1DkG4oaJi8aM5SMOZMrVbkCbninW9yw+iZqWUDpQv6a7tq7uzwlaq5KpYFHe7hK2ymLEpyC62N7pfZNOrxDaX0USCieBOuxQIEa6AjWIgIgl4KAMiZneeBABUREpcdtoNAHQvKcWzfUloDCeUPHfMQKrqYEUgxWENEwIAF1ekVheXFohyS6NIlFAG07ZQBoewWYUrfXAxzVNsfw4GvkTzAq2yZ35afjhKLEhaVbK9aPKqLNAlawinsXLAUhHXogAAdwf2sg8iV8Kso4yvu4CX0cr9mdb2n10R73CDA/EeRzqhp+ZE2zQLFNFt2lIsSKJEB3/8BQ57vqf9iSpuD9awNgCQ1MptrKRTLnta+HpmCRsya9jtI6EC8aMFTau2DmNeVi2Ca4Uk5NWl7mY8aXf5UbcZLbnjpWus+iQ43UE42e30jckhtejD7UbyFD0ilJtBCQBsqp25uwGgDijpc/RIsIqbuIuPeQcVCk6DNptxa2ZoPhH9Wh9+Gbze0pv0j/8QkhgIDgEmAeQ34iOaI4qX8ifrGD35xJhMAMh/5kdzqbHjaiP/dNjD9u4MY7Fc9EC5FABAwGj1xlQMuLCFHeMJtBwQbdBQNkpKRR0YTNxWUJX1a4vURQKRTiSY2XgAIAeoAPKCEM6AluMCo9waHPkG1Zz4C19hH9HMbS9JjatXa+iqvaI9kMMbXz0XfWZWRhZ20NRNQDZdhZ7uFHGNCQBwAtRtA9JL1IaDsDwBuGMgc96Z6QFyZSuHG2vOBRSm4srHAnbqB7zr+5ui5P9JrOwBumrzscIOf6ZtaXElAYZES3rAq/LW3Ak8ZjcLAMBygTNgLnuxlbUmcTU287Lb1Ruwc45YVWkgCBV3v6ZK1bFGbCCrX6bn+sisVOPJtYSq9qJKdCkaddWe4OSjfim/Es7lR4hEHvHpMTl11vCr+E59eGScsvufcJG7VXXPGn8lbo71mxDGDYC7Iq5KAQC8S6beA66vA1i7n5cRlfrPVjP+ire5wYZ4yZH2gCl8ZGrYwzYNmfHCtt3lx+CUOXOiXD+9K4N67jskQrieV1gq9I7EAwCiQ0mV3Ij4MXJE4dAop2l6j/UiQ+WIzWtCgK9g+OborfIyHfYwg+WbvOH0sYFLrREXCEFVyy4HoOpCz/XUxcSiNj4I8zhkb/tAMlabWIn9mMp1QMpvNx8mQUOUcy5dk0+35EQdA0XOWqjpxnG/x2/FX84BRnF+q5nMiNzWC7PedYSx/tR9rFlyVWJS9abShJe9FBEkVq/Xnc+ZtfcGbZB501vo1+AH9U3X6GoYjmzQwPZAeYJGlykbmiKGDKgUZUXoIfq4DpSowivqZHzSz1j0PxEpMygy0GOK6iGFpvv6HI+WDTRbjL00s3Nb9Dz/ZyjlAdHNhAqy5AaBCGiCVzReaAehK0AZKiz5bOfOiu3Yk9sVLPseQlw3hr2Hl1iOsnofeYVSBoV9p3yL6unxiatWjgQwZmNX3Qpxu3l0Z2C4FOfdmKOjYGc/y5w8Cm5YkCXPHe+4AkTjEPjwoK+UnJ9PmCgBNNhkg8yXwNd4sWF5JQacsFEwKgFEJQXhgtMRij7yhHhxcv3AGh0s4tDC5WKOGqTPOru7Ic1XRxIU6UJcFkEdP5tBHT9pUEfrVEn9+GwGdSQpvgYpyNPs8S2tG6Sgo8DcDnrpgTO9/oDpBhjM5V38IahAoEBJCH1GSQtCMUlqUfgsBHWMLCvGA/c+LLt4VE9k5MAqPG0+Y4O0fbgPv3yvZCTrw9cUwv7hqy0VELk5+BqtWvrYEHrTJil0NNidLtZmxWvXUJFY06eBy5wT6zn46MvMbRS6XqWEPUVHNcxIGLPpRUaykVVkCciJIB1YoToersJDEY2KxicP2goHg2VPzC6ciJJgxJqSEADIJW4mNKsGhpvCUS6wDzeQCYoC+zS57AAtsG+Yfwg0Ak/X1oari/WIszuZnQmf5SqAbNoJlmICMrVUbZ3GrtPa5PpxNQ+dWrlYhODvm1Pp19dzZ5uPf7R1J0pKmty6mGU1sU1++NTlcqpqRHrB36Kzt+DOMpkgruXupJwDt/flKINQod7ZqrU+Ey2sfIUemp0o53an3Cyr1bJaYVuInRHC7MkXRYG9u1EAAPZxrqJArEhnFq0y5Z/qnoCxsbhb79mU4k8BploYTAWYokiaWmL0+C4AgKFwe5Jo6lY+2Eoc2peoff0DX5AaDsQDAJZkoviPtRfMrqzCzWlaC4pqjS1ZsrIbT2JM672VUHutnKw8YOEJUS1FF3ryhpwTogBnE9FL4NgBgRoATrTD6sQkp4r6B+d/XBijLFxubludBm93N5kAoD5Dano6FWNStSgIxKm69xvgwpXZirt4ojQw2v69XZvvIhIbZ2YnY6s0qJPhDWlaLbLVJk1nBITUIAvGk8nWNTXifnM6DbnNs1ed+V6HM8XE8gNdYCHGrYoB22s0hA93MbC32FejAAAi2TydRqskowG4w3GbWdxe/9nUXv0VT3GDKeIpljSFHtTt4gUABtHEEu86rJhoi8JlFE0mTqiKg3sAQAWZFSalbvXjg2pcm8ckkwf2xiFYiEeHmFJqByuN3nOHx5iRT/zbW1JZdaVgw3WoOZ04goCSoAlRIoywbd1KJaloZICa3Dao5ubKBIANhIypDhWlCFJARkTgLvaimbgLGzRr/LDLqOu2b6eVZ0oh/h3O/gCmGOJ3pc5/3qM/ldI1S24ao+mFrLw7iWc6tC7bLbQaNjC5FABggNbqxrAE3IVm+8/2ZQGrYbGBDDpKkkHleAEAA1MW7YJOJg6H+gb3AIBOWWqYFEv/iKpXOAkiFF83XHGAUk9fsAJHcB9o8W98Ler5nzSTdzx28v9xT35qX+Ceov9V5el/4/qWj9e6WpUJi5o1AQBATIRhcxSa2EErlYBb2LU44kUAjv00EVqlgvG3Mue5zVzf87Yxkqa4/XfWDzurhT5vMpMDAMBYXdySWhnt4eD/rmH1WaVnWgCAMfamcLlOBQxWJQ0k80bXYYsrCTFli2uVRGoWXSXeSCjjH6vbKgXZJH7gKGvvvutHjCH4jZYT1Jf6PIwS3iW05Nx0JgUAqOJyq6ShhyGKg24UR4BF6x2zjeSZ88t4ZmFlMDKSdc/xnQajujWBMEvM7wIAO9SLK4qOa2mJ0JOJBBU8Fw8AcKGOdmHdIPusEjRuciHMaCxA2FJKhHTjdwS5CoEEPGr1iK721ICdJ2zBzia2NwCpgICGASoBG83lD+h/XBijVuBgbpuOQF7vJhMA6FuI5k6nnCwprQgCzrSxTBrgAmuliqzGVLSBmhokBACmsvx6A2vXwTFN6pPbGTSDfB/bF9rNho/t2/MXoQEhNuQnUxUIt9b8PIWFXACBRR6Wfd2U+FB2kuplhvFERcP9o5qOhLefUUbHYRQAQGapSD06Oa2qBFTzaKpi8syZf71jThmMjjlaWdNx2qIAZHQXAMA2NAVKommmgZYrqca+RPcJ7v8FSXEgHgDwSqbFXaxOHuZpbyjGanp3u1Gyso7Y6WbykhnUnJAKC8xO+7pdhdByxSm0/9soCD2UUCzmhT59qRKK+wC9NVE4zS/q0yFY4XxOWO2cE66KurxNwt+7BqNw65lt9QypqrSbTAAQuiG1ezoVt0nVvrlB8Qo4tFhxZ4ucIiYaKQQAeBWmnApr42ySNO2MmiRtni2SpJdDyPACYk+U+VjN8p9vDjg7fupdbGip7jNmmxjaHxTEwplDpmM0kAIAyM7B8Ucb+TFIaV0a8HY0qOO7URyV3qxG5touqczxTPl5alll02qOibZnhhcAGGBbcVFe0FaL5/QlnlT3WcXJxAMAIyNZ/ewGCsUII5qTqGQy8klxFbIeDlQphYZmxRU1FLxfX8sxDiiL4B1C6649DX6wCtefqD0yTQAZVBhOIdq2U6E0o+/2hiW3I92xTJkAUDISBHV0sJKDq71mCsVuyNXY4Yb6CxBvFws0eNGL2YWE/rVAP6j1Acw2xPOpe77hj8wf6y4+vgf1hGcaEvSXBT2MGs4S33p1WC4FAFgN4o/Ge2CQ0qgE3IXmEmgESh0YgHIaoHO8AECAiosyQ5+H6jOdWBxgNh4ACKACCAtCOANajguMmmpwwnfdifjQWsO/3nI8n4bGiwLR1alp8Ibiey1Pf115cHGXrR1C3BtXl2XjJUIPzpoAAAaiboNdlIAL7vtZ9jiuPdsN3PmSVC7zEIWytxDhUPZGUp5Zi1LxI4LLRGt5W3fNX9NH/dUx6X9nN5213Kv3btxj90jdATl2aEHDO6I2JLT25hPhSQnOEACyv8svVFRvkRc3XfLKFRPVprgd90ZK/YtCfwFfDbdaVIq+fqkDZzK9P52tuFv3+D2+6c4ykgWoC5OuGt3TD8bGQA4AYAptFwSLfUzGFoOUu+ituUkw+6S83nEWAEBFQRoXd9Gu7ZfXU5AW6zJ1jj76s9KmEhWqQ7wCl3YKdTW4KVr7vv3BlfVe7oQJ4pMDvQ47qwXvTCuNVBu7OWBv0JCrK+nXvIMW6Frqd5yQvL7vD80HP4rPXs1qVxjUg3xVUn2xg9+2mcPSMGrqKYXcAodw9KGfVnxwTwmzJpag1okwWlgKP5kSiiLt7y9inAk+aaZm7kjfgs9htRSM+WbDenIhHUIs7bSJ0qMEZJPNZiSv1iDp7qCOVi/XboMlJ+hCnlYY9fW3g6NqYuJ2RXtvPaxAVmJNTvazrrN6AlN9S3l1B6vAlPqJUQAAyaLiIGEYsHFt4kAFEmv7AcUc98CLGObLINW4BYwVd8J2kU/Fi+p7R1ttRCYm8pAm2dUQQF+bMfePNgGO1o5o/xfs5npiu9nBu91OSGjX0JKl0LKvTYaXI+Hp8l/IvfMZrLFmoYJDXBvmfehKOIxwPW+LywwnXDMD8Nl+M5Sj0e5dAMAxnDWWH3H2WNHW6beejIUv0bzyRiU10SPxAIDlyvKVApj/hAV0IoXdvxi1Zoe5hULxF6MuLpAIKDR/MbrtGn0zQ5xx38jUEIoUL5hAhoywKvAiphYFlLJ6E6dIJZ8ciItUmrbCScr+U0FNpW25mCGpdOPbzh6JOyNlAsCAYEKHukeSTDOCqw3NsPlt6mjZyu46xidtc5wQAHA53Y0gi+3iPAUNdt3MONCwIrPHCw0JATEpaJWZM9sRJaMcxNklyHIHeR6HPECLX397vjpF38LJJFnL/0ZvXLWsKFBdiOrlwtSWahlTAykAAAXR2zw9qJXkfk+UA4q8MDCmzHpqai5gJQYBMMcLACyomOgAejrYfYn1xIuDNbgHADTp2wOlqOhnKeg7WEFzB7x0DIJxjejeAqHfCSZ0Bz19C+xwImSFEc4bdrH7gEtmE9kYYGcEgStraB+1K9hcC2pPMLoO1LV3212o40iZAOAW6FqHajaJa32DJqBUIlDCOtOZ8qbbN0SuEABosEJc/ZLr4ASZHlpRC7DKHltgxw+2wKTJwIoursI3ZIR7OLtdkL/nOa+ZTvq/ntV3blta9+UAxVLDDTCXAgAQmNDQ0QWLgiScCiSg1NyCkxgEkBwvANCY3S2aO3DSicuBzsYDAAJbARks4RRIOV5A5bsOtIAXOFoAXD7dbhe709izPZyH13Ri7/wmKasIvKrqHCjFNjpQinFltjK1XSer4EyZAEAZDQS1dLBSgy2zngIFV5uJb0ht47uvLNQfijUC/4p92Ge24n0J9w/pgQAzXfEbOwBNDD1gedF6un8J9RGZ5Yr/b8wI67yOKxVPDReAXAoAACBavYBVgQCYmhswicEGnOMFAAqcqOjUrM8w6cQBazYeABDB0j+iwgXNhkavgwjFOkj9voDkNW39Z89iwn+n/tlbP++mQa0N/OOrw/NxwGbrPHhuuR58YzqIvJlo4PHYCVmBosyHHc+YAACzXJ5qaZimcXbk4GUWFCALdglWt3viZw87OtEHKC7T+EJVO5HD8Kf3un3hQAMHff5WDwj+pvB5qK66z4YvrubZFUf2ZqfcW6txO21TrbFcEbaqJeE62tMULd5K7P5JXZyrUd+QqnljFgCA4J5444ZKummp5FrIpbOa7tSX8qRc29piQyrXfXt7Gb1DLGVlLJ13WVm+SVbGrUMpi0t5jQ+UH6sC+dUcPf3YOZhwftw9mlJJl6ZwomLLWglMKmokhDUH6DKOAgC4CgiHp2e66TdajDmgdMbjPx6i5jXnl2MEUusVVBVgF6R8UQY7u7ITAJjQHG1zJdFCSQU12WpvouMFd7XnHYoHAKZR2ubPdZ8lQ3ns5jQq1RpPhWHy50nL3ieohf2+Qa24wB3xtvDCDfHCn4hb4qEk0IF4JNl0Ih5LRp2JZ7zburA3N1AmAFSR6GRRe/iYTr2DvSTd00HxQSk7NDXL44QAgCXgYAeXvoYVpAGzcjNbrlCGabYgs7cGmsUKiO2C9sJ5sgPPRyvtH6YSxqXK8SkAZwR5gYd8tVB/s/vcFGvjizUx1vLzOf+7VbM203SIGnJhKvcvi6mhFACAAsLw9EzXU0GLkQCUan8Sf2HYN03WU1NzxMzJgryDdFldAEDgREQXpHZaYPUlFuFQ7NDcQDwAUN++O8jIZR/Ze2arXMisNH5aQAfjpiGkg63fATq4Xk/B8i1WOLlIggVVXSSCkV3k1S8rREhziVRZctvhgKlA7owTNn3haKdyupy73B++mJPcx5ltc82njMY4mQCgPlLT5069B+e+bWYKAl8FkxKBW5tWK1PEt7dADRMCAOd0fwcV4Jpm6C2QYSad43Gw42wdnAhCB9E35z7heoVn18HwUNk9mN2kNy/hOLbiXvZPjBoOZudSAAAdAK0ejItAHtCpOQOcGORhNKsLAPhA6CKCTCcKnFw8ADDdtg+Go4AaTNjsFNQ9jE85Flj63WALeEAqgWWPwOx2kbutltYET0wkjz238m8CkzOnycobhK9Ci22lVlnNWNBqcnvCoWK2TAAosCS1qLyKYNv0/DG4hCiUxNjpplym+/n01zGP1zpsPKk3wWez4jsEBQbxQIDZrfiNPYFmTdhLwbVOL5F2ujKzFf9hJ3BuKa37eq2g1bCByaUAAAt0pN7sJGSgGHDHCmBQqTmBSAwuwKwuALBgR0W99ziGSCcSzGw8AJADo4AK8MiZA1eMSeXT7wJLwA1C/Adf8Sawz+G5rJSrR4XX8Lbd0XWsTxWBD0NGAkDECRzPAKNjxT0Th7FT4lqGEARMnM2nTiQqOvq5xugXcrE43e35vsOrSd65CXDiPXkHbzcMYaopGxYwFZ4+4ZCy8HEdrD4u3jUNK7pzhJZzRkJCiFcQ4+K7x8dHJWaLLEqDczBWdyR87c1PCf2oMQ8StL1zrekew7/Ugf8+T9ek+6c1aht3yY1xUWuywbV4sRdV1jw+CuxdoaAznNKD60FVdwYEo9C72oSxYFFqcCPg+eO7FPrEIFQxEcRm9gYAaGAkzP22IosXi0aTNagM8ueJWmWeBQCIjpEu6bKd9eYvvtL4NCBDMnc5ILQACTG8W0Dah5Kf37flEn9F4KkBDntird7V3YSDYORk08jKrtMplthYAgcCxMRJV5XepgmquO54a89ta6iy0kGR8mR9Uqa+eTYR7Tj7VNvB3SaxFQAC4OBeZsYOcwLH5suE7OWnBG9O7VJEg/Z5ommh+6/DysqjPshk3ZiJwm7mdAGADqRWRLk6dtUClEpM17nFQeb2AABelCcKlMKpEu3KVH7jaME4bF4Eu2phJhjbAmbSYW5k4PYqmIOR7vMDZI1/TjAFtpc1CLbE4rRXbSEHx8sxoVjWo1UFRz0p1XbUM6Uaj3o26e2j3vJsmQDg4vgMRbWtLzU5aFCnsasSTk853g11BgoBgJ49C7OMyKHkCmZ0Fpm9aEfjUFNlnw7xSggIGk2TpbkVpgvUU8hhoLDIm6PZSvCdrOnijhkPsTOB38FcAeBxirk1nV/tH0BR4Cuv+qDPvjm/0dgz6AOdg7oAgKRSRHnTxEDrIPsSU8ZrBzG4BwBcRhUOlMLGJR3tLL+igmaDUN7BhOFLqw9HYmKfE9BB4BMSwE8fLAw6/HvDJaFRXtreEpaEnU4US3eiCcjSPavZyNK9qxnJ0iglt8XbBpgtEwBEzSlRDQvOpgcDWRplTgG3t2/o/r3LbrIxvGCJ68oQwAGJzFzaqG+BiLK9a7gRREbb5iB7ylxRejj0WbLdz+BT0InH9+g8C9OBWwEgoCBOMy/trj9zL6MsWAUW0Km5gEwMFqCsLgBQIHWRQaYTzYHJxgMAAEf1EIxsgsonxwYr+RAQwXv/63ZQAcXtxSXBVV7aeheWhJJOFEu3RxOQpTun2cjSPacZydJ9Tm6Tt41WtkwAEDXTohoWzKUHA5kaZXbh2c2wGVGbj9PTRRu65h09656BXQEg8CmGyTmAWfh4vkYI1ZBnbdzqIky/ZfRoBj4DugJAgGacYm6+/j3afzEqAnlApeYMYGKQh+GsLgDgA6GLBCKdKA4kGw8ANBjVA9Bhs8k3xHDFWFS+5IPBDq+XXH08iwz/V1F9fIWRxz6U4RyeK49zupuif4jFuMFpDOFqbdSh535am76f/Qu9ovqToEkZQx+MZ37UD3PSV3+iZIDw/qur29LEEZ/tW7G5tWt+PypWOlmfO4B6eKqJywlu1MU1HJ7xwEK9WrZtkuLJAmlIN6drffNY5VdaR4/mRPJRGhMzW9prkLVxbkAYyIMwdSgJtHd/8BlE6Fcns0Z8e2fH+azWDevnaYuHqASBT+TtA9hYPnuNEaYymsg1tKUBIEh+FSCCrfpiFO8rv7I67txE7iua4wX1WQbV7btL+fRI6DHdj5aIDcbMJOS8Iw4klyFCREFytggx3VRm2RTxM6+p9SDeXq1J4CNJI062EiTu0Uq/LxJXJimOif8ztjssioRjbg0o79qDYqm8kcIFyGu0BE26ySanccD1veFFDxlJhgNn94Isxi/XavsvpCscAhJP7CkPssxhndwzdlmvkvckYld63Lg3vCqT/BBhUBb1rsPVxn5Zpxmy+trrwkYvduDZzK8CNIIKPM/21ThbWIFWhwzChPYZ78HewdK2GxqIHxdrhV3ltf3h42pv7/Zzhb2J4ZtCCKyZ6yHTXHUG+ANS8ilptvKPRBGY8xDa5CkWII3onjd1/Qefpl47r37+CaGzsg76s4BZTx9ONKaSbHVl50wSaI77BMlZO9IoiZ/KZFGWBFGaY1gFY6s+Njg7+xCrFwqeRUAjiYKkBbrTxVdmUlgdDp1fEhDXlGtrB+m76r8XIJ63x/rc9gKDJohty9yzhWbAAwqTkZLKxyqtZHAF/ZRsvLMbhtsoOF+dCE0B8emb04KCqFDSOj5JVrkLcsdtAhlFm+oThcYbja6VIGZhy/zFnBb6GaQ0e5Cm2bQeLNW2hxin8wCWtPpqCHmlyDkicToGI6YTq3TqWcIwnXQGU+HCm+MEslL0DRdCkDXrRxXzUXXlifuOwEaTdTAVEJBF8jKc+ImEHSqsV6hjPm0hHLTN1r+MLusGXTgRjTG3WE2mxGvGr9v+4Cn4qWJKHkXJ9xiu9FQJmV3/xgpQZqg+Uth+3mYX6d6bhhnltFULDotkKK5mAmA5MW1kEyfuqJM6jEvL6oI2A4hyZjOo+vUExprGHFl8lQ4RZ7lmcGpCad2CahsSVgVJZvNXCqA01KiSTFQXlgpv/GBXoLE0u1KsD229mR21D/XFqEsf0q9SftgOd+jhiCTvJ5h3bO8/0lhsJP5hjWjxqsghpSNfxROwC04qxIILK4QutZ+1HrVGUdltEvrIW26GSDqMqn4UnWQzecbhvTyR76UfK2Ril3zDj+bQx/R/6u10NPudWVJfM+sN1P9V+9TwNT28dBMprjmof01bDJ3RZ43v6xbNhOH0OWz/qoToP5jqhD8sjRRSYVu880E58GEORsdF96P7qWvo63ze7+6nTUhLeQvRy429yixDRip07zsU5QR0N5ntfZ8YsL/nX4rQ62g+ieevgtOSdEhBZVvyhBDlQDzI79HYRJ/LNixLU2MUR4TcyLJ9t0drBH743La4xpEZ0bU6Rv0VRmdPpqZ8mGcGMfc0HL8e1zG0PCTXBu8zQOjWZZRCLAKPOt7poIQyLPnWiysKLZe8l8UUtgJGxDAvbzpb7FCCvX2t518q9sPWKCOItj4ClrEShrbP2teAYdzbtTIHeST1LAGEQ5+VusYuq96HcksLKnyGQg7MHO/DhswbM9TRMdC5bub9JowvgbhVPY/iOy4l+EFFbEH9qIVmwFJA9v+RYmuzkjQEcQWo2AFi2ABItPMvBPovmXcazr8pXH8NOP5X1ljH5zHszN2x4cA/hJKJMrhdUVDPuenrm3Y+Y8D78a8ZSQ8I1NVZIyWHwNg72XS3MRSx0XQ0s6Xuc2aynnNo1/PM+rEAeCju7rPUPGm5JJ7blncqoz6rkwgG+soNSXlQgR4qXkkCrTf+bgTm3JiemNavSPFS33iAlxs2DzwVs0RXWeUUINx2oLfSQyXxyPLYCsr2VEV3DH+Gziivm8VKceeXYNxowl0xSZEL9jYEc7sn7rKVLykOPDfLe0xI8t15HLIDwQKulQ6CUsvxbVqeUhL7tGiFDDs3eO2oO5lbtu92fTiv8DBXiFap0uBUzBooTYA+laoJcoBEWXclXCCN+XGZi9s6ho81aFex9aiwcEI9tVV7PESUiqlLrNGiTQOK6e4MEpVic8adrb6jHeu26XylrOutOgTpSmm/Lo6TrSK6/o0HmAWfmOSxsJnCh8l1aXWE47WcZkkb0mx2Iom8wldWhI9n/Vob1CDdhGfFsNoIZdZWb3Hu+CyAiNZuSJgsvTowp3KnhN3MCpoX8f/Jzk380yIDo5+POgCpbpoKMkDfBRln1TLLNVFCNvw6bAJRzxdCXUHwdxuN7KoSo2GDwgmzsD78G6nix7tP5PaWw2QzYDg3AJwC9MagbpbEz+WGgNrDsJnGKzFIdeBNsAZ5L26jzoj+9EXfqgwu8bUq3tMXojr+wszt79+/7OSX5xTEGv1xwZkM/FvxwK5pFrfhc/oVPe+RXWZe9ZRi+gK6H5sp+5yGjd0+s1yGzYriQkPPh3ek4Kf3ueS6VW0uOFPuwYxmj3BDHmqWx7cgrOk7aJajOxFYwxzGrL0xaH7M+B7aLYRblJQ0Zj4ue+zAQP/O50QODfVl24ihoXPD1C9FAqq1eklZAWuWU8XaNbbS7elf7en868/K0x2gFPo0pq6Hd88qKsBskrBFO7ZWyB8kJGPq3EKUih15YdUicCYAq9i8ospeO6TqNyI1Yd1t52KwcMa6cHT3MwBAzNZBE7FulxQ3dwDIgSD44g2kwzqw/hsKRP7eG8IXg2y2y52PkzMcv8gI+zbfP7agj/FoPL36TOOAp6ilc7nXeUcId2hbbJeLt6Unvjbg8yryLwtHhly6Jc+BYN605N8V9pp2b3UCVEPmlfv7Gyr//W28+tIfJx+Z9ZUnS8z44kXHqKquMyCjBpfXQRu3YMCtPeigo1ss4IqHR0DfKEKCZx91MIVhsNPWBx1M7zDYKcXBfhrIP3K7Gf3EBJ5/BmxIQNBbnKPATV7hYPXWchW4ykLY3g5e0Rjv4mwvC/5DxdkAMOxhcQkRmF+LsPzxBVYndWmgRJrRYiLx9Ghdo12n94SQtrCUVtnEUTVoSkW0u8UocsFF2DJjoAvc2NmVovZNUTj151Sgt5Ai6z+K3a3FsyHmsGz8grMoiKx2kUNOqkbwmyUUBSG89y7GhOyaki+yelbN4diKmW8xv1o8S4e3v/TUdpgKaifF041omyZeQoQSrfCJBZ3JmDUa6j9ZF3FwL6q1xwRKTPn12Z63vO4tCqDV/k+kvso7VJVXWBg6RX4aFBLKY9IMys1JYrXjC6QlDdepPIDtUtW6ZlAKKypSWluzWJVNHvQ4BqWyX+34bDu4J9HGF68BC8YZx/WOVy4+PUQ7y/EYdUnWcuEYBJvPYEZ8xLOt0t+5hnkcmF1QQ0qeJefsN1R9oRmw8tbbaBrUN6iPS1Adw3pXvfAW0dbQXsgkAkEKuOk2Q6lpY9DoW73aM+lsUd4Qp6G3qIRp5piBgI3PQ9kqxXtT5Snx0+UI0acOtYn+/Dihtdypg5aTd6a3dIorCmuLbtEMk8r4r5f3E9ivn97Zm9QfbMBYeQ1QEBs0VePbcAGSqehWCKkq4a/tTeUF3P2qBLw2qmIkugYWlUPYNrvQLJusC82S1XqhetbrhTQr9kJxazYNbhWpn61I46yhs0jbkUdvwNa/MJ/Nf2HS9r+QdAEs1HlXwEJhlwCjIdCQ559fh6VTQYRpYyXIV6YU12xRzPLG1EyqxNJgYtkV7mSGmVD7eBeV9Xje2lU02EglCaE244n6XWJwiMXW/i9t3vnljRZaSBC6RJYtHMvQWUCpu1zCv0butaqkxZK0Md/S2g+dCG7jjNiynfgQNIHKpkUzX2XCW6WvLYubv23pVINyYLRaVYp5cmmp1xtL+Zxu1nOq13LoMQgobUYyKb2yq3m89g2T1oKexyHsT0jGxdFGya1dunNlciAJpdAP6hE1wX2IcgwmjcJVQ0rHO+0aw0lbmdojTUrfY6T/qu0asJ1jJjrWcJpZkIn9OOLvWWmnxpJPMG2wXsrOW/yWaVAj1vgbKUGqWLVRsmFn03ZgLIn7yS4g/RXTpXa6U04whlnDsUTbLreQYnPFo3OZvDPobCfljIH06zsnR9DOg7t3udkSUbGJUmejThlMfRkSHoVMlVtvJ72U3nDcY0zO0JVNFPan5Fm/XOGhsq8lZmHZErvB8xc9o1QAtqRiodeSg7lRLJhMncWnYNIwcWQsapeLLoDK0edCF6DAcG7xapMyluRLpmL1yVQsb5dHFJdwUCZCSzgKWJP1Xs+9haSYZWBLuNxryVwiLEX2rJrsIqslbAZVK6ZaEiyfWmKngIyBJslI0v3P5cy7QyjVVFRMJRV75i72fLJdqaJCTwUV96B+qC/GlEy8R18VmcSBZEtM50jKpjCGb2ueL8LsW/TiLvpim+qgBhllgwZCAK8SoiAFzmOhurPswnpsdLFx89XILr5mLohfMf4eK61dZk7xNU+brrKX1n8or6TryhK+Uq90LflL8Ng8mMQl6iVqiR38UTHn9brKkvxD564PJvBDnCPBe6IDIbM3Z6aG9/OcByxNeXxKEpDgIHSVhnjTHQ9KBmBLCv5ZTl8ShV08dwxiHgMFw+b8qVTrvrSUwGnBi/L+uTAFCxZPqOYvNhiEy+HOxolGWDaXtzUe8QdP1Qdq+sOeF19kJ38SfVh6PpI/eE3gFJQpeO1N4ypHIJwHeD3wYkwJwaNf1dIJT17f9YCv8rLCynobp39jw8PJl0BFqUDjN3sboQD3iWKZxrgD8SEV5talXrFmqUPdFmZCbfUKqRWnvN/AkcRxh2kEXQe9ONb7E29/icyasizF05JOw+VdSkghaiQ/YI0To6xMCY3zgqkIeE3uxg32K7U4vdY6d+t6+n3vD0dKfVe7/drkH85u5kdUv8xd2Sernf7dz8c7XYzbiD32c//l3ljdZzxwfVkjtiLou5HXUGziMqo7VY6m0p6dkQyM3/PSVz0yx+mplukrDQkgeFfg+64C4BI0IhGfaYBLXEIzwZL8FF1hMBC9cVS1RL+6TAbSQpcEqEjXeHVOe+11UEOE2Gh5/VCkOhpqJcJG2uqKml4IILVce6eO1nJolN6RMR4PlPZJou3b0S8vvFacYNRBuFzV/RyFEIHrlPYE3ufOqkgUzTQlaOX2YEUYniISPW2BVqUfoj5oNY79ho9gEYjtsVujOhlNO97cQ67iww7qg4cpQAe00UAdYTZ5LLfDJpPpmlMrt5NpniIT+PY2aab7IUyHiuos0gzrkDhbnBTGbBZCOqa5Lnpe0fgClDjNjUp5SySuu2oLmn1htZBDEOmE9g4lcYvF7MnSXmRPcO0QqYT64O81AeoKmGUBEYTUc4iS3bHDMHDJ1kFtdcqh6IUB/u4K0BnN2OIkSRFgEEz2N3KHYDSTzamjroG9dY3ndTUG/yjs7gNrZTChPvg7I4Bw2GjJkqSZGR+xbctkpq46NFBsdj/PGCwO0Uuh5jI7XqaZxM9lUn6eIFHujtrJBx4jPjk+vmHSuH2wvJ3yLmbUwzdb3rOdk2M5usq/fkBubwYQjP9ndTyGZUOId0iXk7Z6nuA+KcYe76/q9KlsDKSumhxscR1TX7dUEkCai7PUU0/HtVcbY8RkY4tC7qQk2nuTWqPZjD9nKqBqVh3qbE3MoNl16LMx0n1ddDi4ZtBlh5KGbO29VskmlSfUdD0gpNU1xhZhd/27rKP9uxw9g7iXYrfRfFLuGqSzmw/pavV0VvvXEvncxrtf2uqpBG/UqW7R7mbFvkzYK63lU+VV1Pz334HjOeHZVV/adaxZv/0Qn9o8ZhiZLdU1tNjjO9kBXJtnvJzUOBIQEkW6Iq4iWhmL12+vwvnUiZeU2l4W1wG1xAXRSvjULf4abMVLSmVsVh2CJK+QU+irOwXUjmuNRktKjSG11BFSSQipKq4+WpsfD23cTo6pbWmpcVJUx0TUZGM2qbUA2hhOAu2ngOcOZmrz4V+QggN9y/LFTbuVgZ6m8ZNt1hVPjgARCPbqg5sUxNRHDg+z4drCG5ByAlvopwCC48RhbuAWvwTyyXKeBC1tP1B6Swd65g1aWeiNZ3fSF1Lok+qVx3359+++MMAR7plD1VbtQg1wMnn7Bedjw30xYLBIeZLNuqZzmqnP1lwYqWkWtSSFxMXZpJkSx0Ikm9R9Qe3FtXWyXHuytiewS+5asFn31NdefbaOsc2+rrLZSEsSqc3Wfe3FtRcmzZooEtJcdXHd1n3tkDZm38xqzxbHqmnPFhdni+u+uIZscVIci2JSS0wytEeaIqSaxRrf57+SHLwknpNWG2mvu+oLaqQ+omqv4+ojxNTYKddKXwmu22u7OhstI8u2MaDS1mdpr9aWV48aDGWI/oYL3qBbeV4jKKX81OwWftHsMWTbiv9Z0fm1XKJEgd5SmapFYNJdnHAd6Kv5nZjBm0zaOJ1TT09h7Dcxfef3iq9ZfNt57bT1fPXuQcmvQGiDLueVeETx9xGij5v+xFz2/sbecJjPWESNRPpAOy2CfagWezVs/YQfCQjk/IylFJ1J+3U08Ee6ivgRA/EiCiaw9ogtPqXhY3PpaadDgfw2VP1XWpbK6cCe0mKV+IVaLC6smAuH3bi8uMti+yXwnyzB+HFO9BcRi/RefWAOnxEKoDvFs8LTwVXvepqbQxqjBv2WXx7B3/Y/9L6ppweLFVMen+68MB7eBuu3hdvVmoykmqRLQCXGlNxVbEy6ZhHl/ucVbA4eKKg3WmNWuOQIVMCSOHWz8Ehsi6jzP7egd1Cn9jj7zUdyaCENkQC7528spC2yav+5Jba7kPS67Tk4uxRJQ7MX2T4yZ7cj5TxqYJsL4ZoksiAVqYe0QjrCHt/i3cmq9UmzQVm/RCl7lMgBVYPcAJPjnj3zWFikXJnMjt1AxbLVNwcm5UjuGvwxJofPRnkUt+s/btlvDkCXdqeuOu8JwMX3qodTLhSesmyiKx4BAAu3/IvvCqDznXNE35RDesetrzb1EC/jV2wvsJtR172Ov8CRwVY8sUvTKnuE9AvMa8H1Lv2xi/gPnCnQEE7r1Qr8JIN0OqL+hf3Nj5P2wUy7YOaH4/PDUIftGRWk3HnBicSSTmHv7mcAAMVqNEq5BslKWiWm0R5mZo5A/SP9vKLvMUdPf9+j+MewsNEtZKt6A102s9lm0mOChvT0S0OGiuVUwgkVj7IeUwvspQJ2ZoaC43tx3jyWO8JBFaX/2HuuFIWOHNe1Xe4IU/RzJD0tYbg6O2+JTMKDQC8rBOZJ755GD966askALBLokQ9JxEE0AEB3gK2RrXs+aBTJ9Y+LZsSjnJ2XglywYT9tP6eVoMJvCG9WfYugUwRwihE0RUUwj2Gsd8bmN1bGDD6h4RoTZa4HfBv2OGgzvwhNU9yrEDUGdYv2vfT8WlSJjavuwFEj69dLbvldkiXj3F0X7eV3TZqYsS4FAgJmzuCGfH+mqYw/+Yq1Lrm+uEpi5DpLztjn0lp7l8THv+nk7CD4Yy8ITTJ20vUyWGBSU4KlUwrSz+LAtz/f1Ax5sLkV8C38+zn1wjTgsSxfo4TBadhevAPGPZkXFLtwOWWX2nTJs/CsYUMh5T0Wbfm7MHgxL+1pmMeuWXTGg8DrUjMvhm1NcVfoxPTEeWPgxvcod99XbqGZoe/EUBqt18EJZu4chXhLmcml1+zfileKHBSjYHanquhAcfbJCcuEcylC+SNMif/LlU1nX6mZwxql0GrXUBTfoQx1m9i7ZrEXuQgM/+1gUM0B7AbuKzC6Lnx9W4HwnTXgn0vk3ZltjujaBY5B20JB4+S1rv3oe+ek5ZKiwiva0HnM0jZLer38WIRHD3Sy8FtgWDrrTJXT+iQp2qQOPoCOxsEVd2lF86JmAOgmwhWXROANZL8nErRZzR3ow0HKDJ8oUkM4OpcV8/hKj46ct85iQJ2qKqsEeL1S9+mUCPy9BJeZaZFXP4+db5ubFhQICevmdyhYsbysKYc+YFEUkfIoeRrMfoDN1ig+nYZoZyU3n1tpxGxYlo4PrMXvMJXE9e+KlnCZ6AMjd7tFpCiAA8pAoZ9C6Kz19fIk/mQ+O1nbKROV34FmxOyY+TzqK32sOEifHFHL6GOmY/rcRB/vuqXPJvrU3Xl9DtGXnnbrmyH6QrRp3xxLyjefIo/wLsH5xdndysH2EWkRoGxF1danGhjdH45Btj7KCHfiJHYx3CjiQqLDhvwUod0kce8b+NrDO0vq4g6S/HZKGrWbP6+zbsoF5OJ8k0QXyOJmg8MuocWL5e9UKe6COY8dqVicGaCz1MDt7kADAFgrNOETk+S63rg5gqgE3My0eqN3idm8vRlod2qG3aVD714JrnZc05DcuUt2y/QUhEoFEdcf1ICQ6RhIJiDcdQukIyB2dx7kIiD3tBs0RUAm2hQa4GrSL4u7xZ+/btWbv5Y9rKLfwmFXz5ZejMExSE5xPoU73nI093P24GOP3GANmTFD6+oz91I9dAuPz+FNARQx7qe8TP6s86cD4AEP/ji01bnx/NSe1xZL61JcPVWrPKJkaXHOGqjS0rXG2e40kmZ/9BCesZWv6gxm1/j/YqJu49UXAbBPNw23l969L7CUhiZVWQEE100wh0DheEIAAG8BOvkhxgAB2j+1A86pO1TbZF/nxc6RQyfygYg1ppvloCvqv+YMGpOubx9d3EzLb0i+3t1pOXxRvvf4uuIYSB3Y+FScILXsJrhiEC1rNiHQE1ewpiabl7QNaoVMZX2pweGo7Ezm4zRwnu5z/sciHW9KO46Tv05v+QBTWW42+wgqO/xzbQBA3Zhd3VoxuLcxQte88A8Evv+XwBxFBzBM4uNPCb+PC3azwvEHQ7fy50/vatM1AuygYV/kuOKMHivi4Is/RpqahCeoJqThYu2VJFxwm6BUYXpBhMMJE4Sa6PEnJpaC8ceB0MhRsrAJIiZKIObPHwdMCI8zHpqa+F93nepMHlfrghuTEGKlfPV1tLn85Z281V9Eq6Kfg/AQWZiJKJJFMXKShb9d6iixlPhypmnNJa3dRPw38G/qic87xnXX+sYugCcfgVcA2V2DuADa6RZkA9Bd5yG3CFNOuyshDCprDwZW86MJWIhD+oPtuoi/NBaDP38HYLX+a93No1vR8u5nJDdVm61D2qvGj7XnhbrmFNbUVwJ2rIj4yaEdgLq/AO/qKyMmh+V2BSE54/7237nZ1Je7AOxXn1T7R9tmeNgfdf+H/F9fj9oQ1G7Qc4UgyA1u95Z6aMweoFav36kjv5ewxd0dAcB0Fmyv3Os12JmbUZ+g9ekrvjsFyR8QsprF92GA4zXAJ2v5rh/TKk4zmX975P2PTCEdWLr1mMUG02KBHv//UHZOHEj34r3y1N1a2OfF+FZ2LuFH6GN167JKLn+VtlMaidCy3VXnEwe2K6wqhArHN7mU36j5dlf1EXlirHdxfxokiAD6FKdNIXQHaf++ZKG+kkfF21eFv60IRKSdbLgZg9zzHQHAlOpO7e71Dgza/V0cNQGeK+H5dDj9cL2ubu2kzlnl2Ul7Zgfk6xvA+QC0Cpf58wpv2GPrFfX+GTQAoCKhVYLLBVeyqgcEd28xOqyvDcP0+PZMclYz0PyywGYnv0JXaIvclRFVoiDiV9iUuHQZcV0BR/gkHw2HtKOBPu01bO6PPfEoK6L7hv7wyeSEadqqve5v4g/MTpqWnBXZoQg8s5QG5tqqLDDhJzmhbTibx9GHxI7HwB2WXoM5L2eWXnVIyRlj/+foq7A+RfnPVo/TZpHlrFaktt2S+JHLZvEci9sinu7P2yJh3RPCPD7460xtUEHiendG4KRFyFXABZzMDVis9S0XVNXy55t8EiweSn8PVYO/pnwGBaQtC27FBv5lp6NWbpJpT6UNe9tcehOOT8DxyN4/v0r8/2Lmo9tjmRKGKkbY5HyjSQJIo2tS/VOrB888O01yjUtJfLnqgKDk2nxi9yh+rWrxTbynR7BPb5sDPzBu72nzc3qTID83Z+8zvpP8Gu6pu2lcbv7on39uZLzq23RQTAV+WWoPExFf3D3198SXW3n5cwVQX/jBms+rI2Clfzk3aPMfp5xPVz+rG/M+xwjpO28thzK/2ZZFZavYGFyMxvaMmh82gK12Clui+dqyRcPwKu3qtjnj9lr27YKmCrs2w4NqVK1sxKY5gUS1iWxVMJ2BNAsdnrPrIJazEwwAYBstM4HkdCU1GQtUF2pz/GGDITncTntNeg/257kG2gs97G6h95beHXeg6Z3gZZg9w+kWIXsEZ+BkzgduybncGdjOlOeq4c9daGAs1DGaJC4GsQbNkfVrdP4zX7ozOQ5uI6a6L3+hlNrjFCxKnGNiptm2mrtQsTc85IqQFh0SutZUq7yFIvPwzHfmeCfDQ5o+POtHW7xRl0WhAfNMHEOstVTeQtsatrtyNo6Q8fSH24WwO1M9USIPg0PXE85ujI3cvTooXqsWlK0dNYPsOolc681LOWX7dIlv3jUZkvLM6yh70YXH1PUHHgt2zP8Y3dUNBu7m/I/jmgBSIGHVF6M8zMhkTGDeQ1VPv+PiQ0d7cx4qPoj/LrD0GuHpDrX0LmqmQ1XKfpxXDWj1niOibWlcsyWloSqlnXEQWI5NDtge79/lgLXnqKfUbFRZ7HguZiqEpsCnErpBD9z+pIHdDkhY08AJkw2bA9xocmEPgdtMeew1Ni6xr4Pt55DX19sOrmy78Dg+UIyfn19E930qUV8AqrmVd2scH50/Z3ttIqgP8xO6d6yuju6j+/x0rDs6oxZUEa/3PRqpj9208xKSVsO/q2U/3j0zJipBN4MrZFYOCh1uK4/76LS9U6cM6GbphAEI7iyUMLEHgsdrGEjW9nAcYMwZYmGFq8M1fAN0ideHdz+B/eTsRxGhUwEwxFFtR08YwdIzFyv1391Pzn5miTCe2w7L650YryR7bitan7fK5fWKlOpnrq5ora9qgVdot7fC2/KtAuqFAzn2PMnKWnagf/pcARwB7DZfzTKha0r1gSUlYYP3kNT5g2qfxN09T4w91kBHADBHLRifm8p8wBGsv5v68nFF9tLWM1xN3ySv6eOoNSfcbCX5UVSKSeOKB50r+fMzCj6r/ywYAHAOm7NVq5u5wVXdsif6lF7M9oVqfm41mwWs8Pq5vMU/56glE8GLfFb0t+/92Bnh9dJ56SuUDNxFST3Nd7fbnRaf24Ub0nEN90DKbidamF4umBat+bnZV7lGYtSTDDZbkwLbK1ivBrQk4SADMh49yeKRj909opNnxzwZimVTAkSuZChmDQfj3nwepSrHYsvnUWo+184Uz294//HMN50jXE4zu/j9K//e/rn9H/w/71a9eZdt/Z8qUv6tfV+92S93ua3+Jv/qr3sHwGv+Db27tfaDXxKU2JmRJIxcnot8tXudUWd3FeV7hW9po+ZLbA4DAACOKHQ8jRFNhGCrIFGc+ShedM9n50EGds8wGACAjgFq11njRbueTnQWcUeIdrx5TVBRLvj36yjBJf92B4ihsLpEgmE4iEXBbGeMXUW2cICpyRabDjBTvmC7N38mO+M6Hi/ZS4v1bLnsu7zXXXnisoSpXvpTe7dIzR2uceumo0jX2uMIAcBxg2OVH5695JRK/2aRHv/3o8CN9mq7ua5YZLAF9vGy23aJ6R4c0LX9x0WD0+x6FQvH5ZG+Inmjn4fnqDpM9p68vtxFbTf08GA4IzgAwKiyOGWCSXV82BsSprAQBV69bXGuQLtLotaDZgDAjnhRnFt7Eq0E2WJ9eDL7N4WF1/KhdxU4yh/TgHj3fWkCVp70U5SU6pMjqZNQa20yErqty7SUxny5g6xtf99Ht6Pb5X2rIrdNbQ/BZChxdKRkXCL4bKRSP2MEEx0JGXTWMOCjC3xruZWz2JuQh9U95UNmrNoydUNlKbQqfXqDM+9f+/kpzh6OPt3Qw3IqO+yppA/1H9WR/HZmqf/X8cwQma5A2gzK/Dv3VqMJJHJLcIcE0npMu1KZ/8HToJtjImmToj16jX/NXf5tNfioewNhD7eZ7iw4RQITGJ581TZEsm6VDEtKizedlVzGr9CUM3IEzXP3zqGQmqtIuPLuV3ls6/xg8Coz/o484PS58jwCON4ApWFCKUr1gSUluUajp+8FC+pcUbOE6uvHkuxxh00CgB3qij/6qPEHQ5f19wvhQ3IOv5g9B4/yfQW977215lLToWeaeXNsMM7FgCrdcHJhAMChLRUbyPlK+LVty8Hg73wy8jl6+evPP5c4+gCjsdUZg4z7ljJP8a7lOYj3uOAJTIafb49zGwO3MAwGAGyyfMQuuFeNyKzjCYRwOGO2sztGetOfNwghjh8bczYokEnfzuIz5dfonYmDoAD0qToGdYW+QbegEfStfQHNI/TRdUANAXW+DObQkh9oSPnN54F/NaYi3lvaKDHRyvas6G6liGsBAIAL0HE7QgHmhKBIkKZgzgZwRqArhmqMhAEArgXTZa+W88JvHR3tLgRwBg8ZJ3+eeJCEh93dgIZvxyS6coUuBzbK6iTIFGc24BPkGnEyUzc2AjEn5zJNlPOEC9PapNOx2Bl6WDin09sydjgOQ0gULGGziL3hUuTIDcy2S2NKGCCdqM6U2kZyzkU/o91z/OjEkvbc7UruTL/NUtcPcvk355j2eSNN30Zvo7KHmgRP0tn+OYy/QLyg37Q14PvD5KO3B+3xrAJ/6rdxf0gm+tLn/zTfUpdsw2TwFCQOPVpt0kfRdYT2+ZFsuDTTvNFRENfXg9lVrU25Yg6TXRfWELrsDdmT6c+7hzzbU33q1kOjGr204Tzw5DsK+u4ReW2JHEvngFSN4AAAqYZB2xcsDMAKcWINr7ZRA+DZ7MEYmDQ8aAYA0JTd25O1uGwwNt1wPJ2K748N6fStB50rNOj1xqgCOHgaOYVGgNufdMhVESTuO4e5oStTjRFBd00tZhVyt8IFs3lJTUAc2Rj3AolJGWwLOnjKeOWYdUgQxG4iNvq2whalbK3o6SnYmRtq78m2CJoSCNZmLfvQbGqd5OM+t0XhuwkAAFu+bmLBtfxbeUP/3KiTbelkSjhO2IqC2ZbnjJvhWjnqxcC47wbT5x4bJN22BDZ8Ko+rtiEzvlU6MbK3b7HehQ06GIbTdwLhoz9Sfzbc/hp0RpOFI7r7GcLleCs2Iy/99GLsnSOcufNTLZZ3+lx5HgEcM4DidIKcgmJ9YHFJXOj0INhZ7KsKGsXtjQopz9hHAJCKxHX8cZY6fTDMWX+vC+bL93WLd5wHf++sXJ570FtjonXrs2dmvWODEycHFZhmB33WxwYGjvaJBpOtSVncRi6mOAjLNiX5BHjhtMXBzeKkg9dR37feZUm5m1YnYHo8S4OCh2l1pq3sDTzVV+PmHRuvv4rXmr3fBXHruuc5MV0VYqnP4CrbkxLJzyEoI/5JnS8FEe818EV//xucenvjyItbBhf267By+qUz0Z+QXkbzNnV8/LHyVfyy+9M/anpnF1zQmHqb7HV3G2E86sTNUCL8/SRb9E6QV4Sp9GRjbVDUYOvOZ4+BssNCUEOJENHtZIBAtJ0LWFboIIKBHQmn2I6RBFzBDEt+8Dbpvelg8BdrZn3v42eId7b+mcmbi4mvBgEAgCNUw+5MoGAmuLc5nOKOcoJ5BCCDn1sVp1JQO9eDAQCbQrQr4K+54auNGQuF2r2UcCbmA1EyZ3r0jCh1H7tPLPbupNHBxV9O/V6YTqVYCFTyDzQNOplho2nbuQyFpjOSYejscfiOY4/Har1gJ3KJtU9EVYdSTCMorN8ogkSa8YAAIGuYojzcNNraCfuXbpi0YzktVMZZjA3d7Y7nDsoSuiOhVHP6CxFp0OvqTctbK7yFV+cxfS+Ij/UuncvPXdd1E5CocU/X4gAAFmUdDLmireeSrndwvHYM8AqGhHWK4iPP3oHEjpkBAGLBYL+M8ZV4fy4u+9uWlI47TKfk7tjOoKKrAS+9f9cQM/1aygLcpJZPfNMbswZyP5XCg+l1+1sD0RQkKkJMnI2mIWudi2sgUYLBfRJjxdFgJJZk8OjA0s+YlEbazZJBFKGQG0sUmNtOz83vosheJLqCBqfKF3WwZPrGPgKAy4Ids8fuYVaIW3ez3IYVyeQGk4bUvPOiZAJmebtMLcHdTVNhFdjyZLRdA1Y33W+7wRy8FVc3fYwe1xROf7WqdbdAdQXh8Af8ZfhCAjjoAZILIS9S/21JW0yz7KHQ5W8rCrUno1QqavYjAFiiq+hxrBc6NEapFZLvCPkcyud8ltBzM7B2AVh+ok3ts47dMwBpJ4cIDIefj7ucycAZDIMBAHN5tVLNiPVUsikdp5ifK6L3BR6QftnL1f+Y3Vd7n6dPpLU6WvGqZ2fNwXD/k4tXlf/e7W8//vHbPw2v8hqZh/LYna4+VATXyEF3W5wpz1M1BnkMuN1xMAAgpRiAPX8BZ4GXLC67pHaBGfnzdgm34WE/O7CEd+dmoCkRkjnoGxsz+szAENZlth3eCZEEA+akWEPssEqKzcpYFpSfPODrpXHro8OEs09JWw0pO1HU/mTYHQIhHzwxNmTLOPu2lUnHTtu37QsF7cCxvd3yNwFz76o7FeMUR89R4VAYADAUHb0LqgCcO3GaVkrJ2vjzwoaGesKmFuei9XnAkndn4CeV4S9raIGFDIKTcjIzZzVRxbksG8YQDCvCTQU7W264k4B2ayglp24cHnnTn8HRJxJjq/JLWpi3//v34neg4r3jU2pY1X4jtCWFGg8IAOCFPWGI4kLTkuY2onBhQbKVe7zECPdaAue7AwYvgfVDI2z8HlYVJBXjEylhQ9WVxHgucF0mCiDULpBKAL3ys2Qkj8QBH8142OxkKc1POo5TH2jTQ7D3H0Oxoy2DXo2dAAC9423tZ7r02z5RuQj7Mu7CRFCPLNQOSE5WjxZIkdlWQW2PmQEAXsLZ9rRdA3RKjrEE6Pb+uQi550P3GKjOG+Mb4PBpNG60lXb7C6+bMpUTkHh3g5N2NufAuTiXO4OtDRdSNdJUJzQK2tIUEQQHHBjiqRMTBvM0XJW3v0vtmmFtGfP2f39fCm14CAfeVtAiAqolD4QV199jgqvcVFMLkeMIulmerHmXBLuDAgCAOZGTbV8YaYj31YFs9/H/ypIS7RuMrqXG0YviKTDe20jKy1n+ofmTyJaVf9+/9dZf6MHmdwFAPxQGiL1v8ImOS3hUH8JcJqSt2w5CvFcWX6A2PQxXSl45Dj40gm+Vl57ZTn413Y80oF6cFdqAaCtDtBbqhtxt5v26rQvP6xarkoesbqWirgcDAJL9Sq1NSPVm7mfqpjQcan4FveARvw4w/ssL/cZR61PfVxmJfHbHJz70N51h99mdADbBBcfSFLqJvsy2UKmhMAAg7ThMxV8gHUjE4iYDLwPW7tG7rMMH4z0/Nos2KItrKq8MLH92r2fJPRjAhRYCdq3n4mAhHcOegJVOF6InpyNYw8JA4FztJGL7E1J0cmezsBEZ59da8mP9jAmz+rePU3W485LMb3hIGprhfuImF0t5cBhvGfNzsllQAgdzHN+kzO8+f4YUjdueGQxzBjBnFzgrXMJtnNmY9kLF1LY6s0EcA4PuCm4K0eBn4eTXv7i1MbM6O6+Ey5kLSNBBn/k+1MDcXBMGAExeVVUdsa7GLp02cgRmALMczrVdrGPbl/68qZB942H3jGOnJ702c6Gqwf8seBWiblYGBQThnKUrQ2oZBH5LwsRv9YGoUoSGP38t9WoqaTAYsqrzSkqo3gQX0k/DqtRH8Kn+ltF6qpz4zI2FzNPtQgfZlsHYQjpm0cRWulsWBraGvrCIaLFtQKvBJtc+WItdnVy1fehlN1SdoxBVoV1PJeJGSymroLkMYzwoMhpJbXia2NPfPzcAMprbE3wbTpMj3gx2DHRZ9E8OXY9vb6egvU7hdpxFY8YdBnbRITcb3IzUBbLouaA4cYDZmWvbMDOueGo1EOPeX9qa7LZR8sYPv5oN7g0TNZbfwS/wXJ9pJ/0+7RVyox7Hy4s/0iM87Ohhkn6ODDJNCiTAF+45+YehJ6vE4MtXUHwwcNDb2ECg7QFzWiXQZpH3ONAT283XlvaNx7uBwMVLtG6f9/oXAjmrFw75D7lzS61nb4C2pbP3n3ykMC2a3J0pgliYVVMTSOh643jWQgJry6K8OMWdF3+boC2VPDXSIqW102TtBsCN7AAAIBJl7Iu5gL6AaMLCWBcYlqzeOrGLaacoa9AMAIgkK/W0jSFIPjYDBfX+TaACL3q0ooU7z5SmUIOvQpin0kJQofPfohjdeI0EfE+39bRXT4WfV4OmW7U+zz+idwfxnWimVRJK93GS8BQApdL2JkRBj3OJerVhiAEChgh7ScQh/i0Kk/cnfggn/xZcl4h+H1sq3bp/e0uR6cGJt8VWxyi/mPMC5ZgOkCPQ2C0eGGGVnnXbtjmrLI5tazyji3CPaw54G4scWQAAusbu78/3btst3LHhRldmJpsCONbEqFjwtlcoqQOCrbmKt1piVXHd3t0uWqKzKCAt47RPho7dK/kx0valI/7ZOc8n3OPxoO7u/stPNLA/A/dSz9Rs6uYknu6eb7UrGniVYTAA4BADW9tZv4Zr25Tk+Qn5fTQHo+/yJf3iP1bLXt/X6ROFNiek3R6PkzvlmwpctTs6dVgbwBsxKNUT4MzPqVnQyECyhsEAAF4MCK/HYFC+qYtLfWVYaYexWcdT23xEOHX7vg3rIEdtTmH+HoiuqW4eEb5p88gsTNwMqiiV1c0/kFv1ZLGdqAynwhsefxLE7ms6FZE9OQ4qaIqKR5HXoE1Fkh56TEt2rubmX8LVmKvh/+0UvulXA5tD1f1j0hxvTOCHE1o0FxPGVDshNXVBkIhyMtJQ4tQi11GiYJBxCpdO5bkASEM200Mqn2WsxuutrPJbRTVvZL3w3crFi/dBR6kb7ig5i+22PdsnZCIDEo8NAADJgitZncuZcMeA65GCt02jc+EzIFhcRp6rvHulE1WFjIMBAKqLEbO76+rkvo0M5CzjlthGlfadevSuT8UY6speHWxNjL4yWMPh5IxRy0cczT4faFe1UCqHmRJycsXYc1SlzBk4jtPlHBx3CsN56HxnQDdX0aVttLcNuFmVyGTVoeJYJuWNwT5lClWLS7bgluH17PB6Rng9h/G6Aq9qo5lSO294vZ9opkaUV4xsLcXrOLyy/ztxu6XnFXiNpzRWaicdrwDInB0yGHGlifVfjSoLNa5bOa3dJjLgttOCyFkBAxbUxmQDvJy5CT5GEN275fA04HWzI7+7QxJEfqimXPaNc06H1ZtTH3kYLjzZ+JElg4GbCFQTufQ5tKN1gFeJG/JpjzU5HzR0h3o6EW2Z+lCDqu1fnYdRfjXyfndFXH4WabnAtOS1RzuDzzlohMfZ3Ld12YmmbN0UcPPG4I4t/v/7ocO43cuiwYSScEn7VrWL4NWnwNzJ7D3CpUbMAIBjEFqYaQOGwFqLkjt9ZkQguesfktWoqe67ARJZLZtaWc01/+7WNW3V2U1LtgaXHaqrxiZO5fOng3J+oCzEZAibqOQJM7t85RR961Y6bZRtnfoo8hrF9/FDkm7kN/4353bQLY+aoJvSQucq/a9x2WvY29kmRmWELiSTXgK0MVp1zWQO4750melHzkOM2b4ww7poRjSmOYFmfBY8F2HLxSK4MQxyqg69YOJZ4a7BE0uPOgO6HbV6UsUYUKpoIDuD3dzfugia+9MCAIDBbHVzbz8gdHnE1cx0MzDYlbiDp2pifBPMTP8WZUunkwwWzFytmQureHJ3EnHFKvJbRFcp0K8o3qq/iky/xm6jMr8+hPT4LeC1sAHCRIQvQOq4XPaHXtqcB47fa4vS6F+nHLnj2qc6nwwIaGWCBw8umxJIi6Gn7yXrqtKTgTAAIB0DBLB1zVCj3Jjk8hF6yF8HBwu/QPE5atDqGzIT3EKpnp3FVfAGxYzocJTcsoWqYsE4djdCn4Z4HQIHwgCAtAAkDJq1ijkbsD9vzuF1oMWK6VOMac3gWYg3zGfBYhTy0BvSscko4y7J1FoqJi5OLbVq0NI56okCX0qgOYuod5i3WgPmMd55rp6k3+X37NbFTOiL2fkBAGCamZFnGqH0oNhBDB1mSp/rIRrSt/LO6TNIf1JsSa2jb/c2NLCR3DaqHDPpPMVB98LHAfdRhNGoILDVJIoQ9zjnZ3QWmQ0QT3QuF8CTBMOF0oslgW5VjfZm9qa6sclR1JoT7cGp41KH8kglsiq4Rre6iRh4aXxr/ySBa8vSiKqoVAXbXKlz2TdTaZF92tTy/lt2wI8Cq7SVTTWmqvVGTn1iaKYgDm2krvbv0MD2bnOW2O20UNHoVBpLS+qqr914D5grb+KM3ck/VNFVLt+5cWYzkXtIZT0KNsL54u6O/edcUQSrWFOb6frxelzdvSm4h9yfVAH3AsnrAAAHJDEC0YYBq62HQaS90hGuerNmAMBhRE+2JQxKtg3o/r+x+293mJQkfZKp907QdzT/B/8AfwMat1qN2SnruBdvK8uNoPqJw7OCTfxevyIeSiU5v+8xmKBhl19HlJhS6LHanl+fkq0s1YSraoaRZKBV7mZoamxfRtROh2EXiFLG3h1nuoXbDoO3ULArTxv2QhFSJzIc9M3l1OI7zgM8oJMoxDc3VaGhMx+ZQ6eI3v7BGBzdmjQP/CQeWnjzR40uAACLHe3/G9roq+Ud5sHRrQG9AhfNFiPJx2XNCQCEZf2csstrbgbWo8tbP2IrXeab30yssNBtJl0Fr9KL0rs+lKLl9C1rMx1M4cZ7RSjm2LFoOBcAsFrbo/3s2X2Y1UKXv4MqVN3u0rRh8BsA3YUOPuNvj3IgNAYQZNaONpsTyyrRJRTPhQEAO2z3BEKgCfbz0+24OvLypahJSs5Lkq3n1uCR7uBs1KuEuni6x8IW6GLULvY5dNKaPHn3hujxWWIc8nH6uCjtuYpuFwnPXTGpottz3+AdzVowf27t0K31NmpqMADgEM3uzPQFNgwp7bespjf4fcsvupvSfBZI13r8vCks0E6xzkitpk7bxCDdAE/3hZT7/5l26uPh0e2cTRWD/tPL96EGsZJ7XD6o5Bt/9XM8VQ7i1cATdoyvDc/tlxffmukUb1dh8OVkx6gUYEDp2YtS3Bob1BqCss/yoQLvVvO9JyE/uwZxPeGD45D5dNs5+NyzzmNeX25lTEdn95IMLR8SaRD6pQUudXDLh5VxfUC3lAAPMWAFJLKNSe/LImFdjhBKeGbdKLwOlDf0X6pl8yaQxBEhzJYxOsNvwM4BuA4F8eLYsl2jB8ix6sMM5jC/naPtbwUennM1gom1Bm2q55t3lu5G6D1u2EDJFgz4SGQnX+5snXXnZnzf9ll2Z2dT682BJN2dRn+fqSKmqbiV9khUiexr6bD1dG2RE3gmk599SbqkNZ8QTYKx1/VJucIW/mzI+xNInqBaSp9R9yQQ3sf8IbNRcp/njmtDw+/yCJdNk30C7rQwl5JJ4ovzJQGimHSHLojSZQbphjjVjel7ngSNcX3ok2Xx0pjjKFOEAQCTaM4O77DgVlVQpMrlxXMbHUUZ3gvLvOwGmZkVfM7rfeZmuZHbAhZtA6xSa/4Ga2kHYVeXEm2w9rZj2LWCdeSXF/ZajwnW6SX7/kIO7PYYEJt2YPfQadkcbNNGtFRjczSpvQoybMxaTnOuSffX8cluAWbV3sa/tYxraGq547lGvZgAgCPnPw1iOeVNi3ONt8D00P7rIJYWrC7094sTMcHYaWvyjM11A2c4g4opLJzZPPmmZjAl5SwzXI970oVqZ3VGAevBkMPjn9Tnp4w5gq23MW4bKrknsgLN0G+GyRvfFpY57QZLy8nOcjyN8vF8/gdjfml4ynsWCovK3CQrA9jrqXIamHG7sxlvlQGzywWXKwrDgEz4+VADp3sYDACY0YDq+Au6BhAp88wQDTx6WgKTtle6Uo92e6KL2WYNutqPtqZ/ngmxh4VcHWXLF7x9WplpYC3nkuraPZS8SciQAlQjBgR+2FyFvaturC3fPOU+/HDn+Y9X4G/Xas2j55YQcdrlEPV0M4pcdVrJxvO/Cv3lYVrr80mIXDbQRd5QZ/7Env8leBxUva7nkLBY5Ca5CHFpWAEAKAHI2R2yYlDSxCIYJLXGJoNOAQT4ubqmSjaQnj4D2a1JLhL4FmZ2gYfo9A3TC4cM1dFuj14CxXA/fAYdy70UGQjXFxKwC88S4TCBGqRe8RiH1hIzVeStQyhp6UI/2SGiZICpVDFQnA07lRPJCn1oOqeRRG2CRkmpIYHtm3Waotd7SJrl2qOpSg33alQAQMpd5OHAeXXayYltRb+8e4x8di4cndmV7Fkf4HU7C1SDl3LPcIHn5cbwug8B","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),w8e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin`,params:null}))}},B8e=w8e;var BO={};ct(BO,{default:()=>b8e});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} `),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let P=typeof S=="string"?S:S.path,F=K.isAbsolute(P)?P:K.resolve(K.fromPortablePath(s),P);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} enableTelemetry: false `);let l=(m=this.packages)!=null?m:[this.command],c=x.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` -`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ye.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Gt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Gt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var QWe={commands:[tp,Hu]},bWe=QWe;var vO={};ct(vO,{default:()=>xWe,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Hr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(Hr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Hr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:Hr,fetchOptions:t})}};var SWe=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(Hr)}supportsLocator(e,t){return!!e.reference.startsWith(Hr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Hr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:Hr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:Hr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${SWe}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:Hr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jQ=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Hr}),s=v.isAbsolute(n)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var YQ=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(Hr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Hr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Hr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(Hr)?e.range.slice(Hr.length):e.range;return[x.makeLocator(e,`${Hr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var vWe={fetchers:[jQ,UQ],resolvers:[YQ,HQ]},xWe=vWe;var xO={};ct(xO,{default:()=>RWe});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(PWe(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function PWe(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var GQ=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Gt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var DWe={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new GQ;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},RWe=DWe;var PO={};ct(PO,{default:()=>TWe});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qQ=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var JQ=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var FWe={fetchers:[qQ],resolvers:[JQ]},TWe=FWe;var FO={};ct(FO,{default:()=>N8e});var TAe=ve(FAe()),RO=J("util"),ju=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Gt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ye.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Fr&&me.isTaggedYarnVersion(Fr)?`yarn@${Fr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} +`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var Q8e={commands:[tp,Hu]},b8e=Q8e;var vO={};ct(vO,{default:()=>x8e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,jr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(jr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:jr,fetchOptions:t})}};var S8e=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(jr)}supportsLocator(e,t){return!!e.reference.startsWith(jr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:jr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:jr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S8e}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:jr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jQ=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var GQ=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(jr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(jr)?e.range.slice(jr.length):e.range;return[x.makeLocator(e,`${jr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var v8e={fetchers:[jQ,UQ],resolvers:[GQ,HQ]},x8e=v8e;var xO={};ct(xO,{default:()=>R8e});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(P8e(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function P8e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var YQ=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var D8e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new YQ;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},R8e=D8e;var PO={};ct(PO,{default:()=>N8e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qQ=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var JQ=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var F8e={fetchers:[qQ],resolvers:[JQ]},N8e=F8e;var FO={};ct(FO,{default:()=>T4e});var NAe=ve(FAe()),RO=J("util"),ju=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ge.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Nr&&me.isTaggedYarnVersion(Nr)?`yarn@${Nr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} `);let a=v.join(this.context.cwd,ot.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)} `,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${x.stringifyIdent(n.name)} `),!i||i.cwd===this.context.cwd){let u=v.join(this.context.cwd,St.lockfile);M.existsSync(u)||await M.writeFilePromise(u,"");let h=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(F=>`${F} `).join(""),p=v.join(this.context.cwd,".gitignore");M.existsSync(p)||await M.writeFilePromise(p,h);let m=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(F=>`${F} -`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,TAe.default)(B,t.get("initEditorConfig"));let S=`root = true +`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,NAe.default)(B,t.get("initEditorConfig"));let S=`root = true `;for(let[F,H]of Object.entries(B)){S+=` [${F}] `;for(let[q,_]of Object.entries(H)){let X=q.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);S+=`${X} = ${_} -`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=be.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var T8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},N8e=T8e;var TO={};ct(TO,{default:()=>O8e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[VQ,WQ],resolvers:[XQ,zQ]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,NAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=G8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=be.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var N4e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},T4e=N4e;var NO={};ct(NO,{default:()=>O4e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L4e={fetchers:[VQ,WQ],resolvers:[XQ,zQ]},O4e=L4e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,TAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y4e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${u}, next tree: ${eE(a)}`);let h=KAe(a);if(h)throw new Error(`${h}, after hoisting finished: -${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},NO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=Y8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,Y8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of NO(F)){let O=j8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let T of O.dependsOn){let ce=X.get(T.name)||new Set;ce.add(te.name),X.set(T.name,ce)}}let Z=new Set,A=(te,O,T)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:T});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let T=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!T)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)T.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: -${eE(r)}`)}let ue=NO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(NO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},G8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:NAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:NAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} +${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q4e(a)},M4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U4e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J4e(o),l=U4e(o,a),c=r==o?new Map:n.fastLookupPossible?M4e(e):K4e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G4e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H4e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j4e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H4e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,G4e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j4e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let N of O.dependsOn){let ce=X.get(N.name)||new Set;ce.add(te.name),X.set(N.name,ce)}}let Z=new Set,A=(te,O,N)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:N});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let N=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!N)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)N.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: +${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` +`)},Y4e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q4e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J4e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} `,l+=t(u,s,`${o}${cOAe?` Tree is too large, part of the tree has been dunped -`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Yu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let T=0;X?T=2:d.linkType==="SOFT"&&m.name.endsWith(Yu)&&(T=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:T===1?new Set:d.packagePeers,dependencyKind:T},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let T=na({name:y.identName,reference:y.reference}),ce=n.get(T)||new Set;n.set(T,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let T=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(T){let ce=new Set([...Array.from(T.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(T.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Yu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let T of ne)Z.set(`${T.name}${Yu}`,T.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Yu)&&!X;if(!_&&!ue){let T=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Yu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ge,ie]of Re.packageDependencies)if(ie!==null){let Y=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ge}@${ie}`);if(na(Y)!==na(Pe)){let fe=Z.get(Ge);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ge}@${fe}`);HAe(re,Y)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,Y)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=T.get(Ge);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ge}@${de}`);HAe(Ze,Y)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,Y)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else T.set(Ge,{target:Y.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Ne.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Ne.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(Yu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Gr(g),name:Gr(h)}:{scope:null,name:Gr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Yu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),T=Gr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([T])});else if(ce.dirList){if(ce.dirList.has(T))break;ce.dirList.add(T)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var YAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z4e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X4e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W4e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z4e=(r,e)=>{let t=[],i=!1,n=new Map,s=W4e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ye);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else N.set(Ye,{target:G.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Te.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Te.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V4e(r,e,t){let i=e.getLocator(r.name.replace(Gu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X4e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V4e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Gu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),N=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([N])});else if(ce.dirList){if(ce.dirList.has(N))break;ce.dirList.add(N)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var GAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z4e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ +`;return n+=t,n+="]",n}function $4e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ `;let o=0;for(let a=0,l=i.length;a"u"||(o!==0&&(s+=",",s+=` `),s+=n,s+=JSON.stringify(c),s+=": ",s+=_Q(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` -`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=YAe[t],s=n[r]||n["*"];return GAe(e,s,i)}function GAe(r,e,t){let{collapsed:i}=YAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return GAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} +`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z4e(r,e,t):_4e(r,e,t):typeof r=="object"&&r!==null?i?$4e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} `:"",`/* eslint-disable */ `,`"use strict"; `,` @@ -633,66 +633,66 @@ Tree is too large, part of the tree has been dunped `].join("")}function aze(r){return[`var path = require('path'); `,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); `,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function jO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var YO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Gu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),GO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}GO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(GO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(YO(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||YO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Gu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;ie):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(GO(e)){if(e.length===0)return null;let l;for(let c=0;cs?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||GO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;sparseInt(r,10)),EBt=jr>16||jr===16&&Fn>=12,IBt=jr>17||jr===17&&Fn>=5||jr===16&&Fn>=15,yBt=jr>17||jr===17&&Fn>=1||jr===16&&Fn>14,mle=jr>19||jr===19&&Fn>=2||jr===18&&Fn>=13,wBt=jr===20&&Fn<6||jr===19&&Fn>=3,BBt=jr>19||jr===19&&Fn>=6,QBt=jr>18||jr===18&&Fn>=1||jr===16&&Fn>=17,bBt=jr>=21||jr===20&&Fn>=10||jr===18&&Fn>=19;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ge,ie,Y,fe,re,de;let Ae=(Y=(ie=(Ge=process.stderr)==null?void 0:Ge.hasColors)==null?void 0:ie.call(Ge))!=null?Y:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ge=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ge))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ge,"utf8"));if(ie.exports==null)return null;let Y=v.contains(oe,se);if(Y===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Y!=="."&&!a.test(Y)&&(Y=`./${Y}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ge)),packageSubpath:Y,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(Y),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ge;if(oe&&oe.main&&(Ge=v.resolve(se,oe.main)),Ge&&Ge!==se){let ie=H(Ge,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ge=ye.length;oe{let Y=JSON.stringify(ie.name);if(ge.has(Y))return;ge.add(Y);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ge=[];for(let ie of[...ye.keys()].sort())for(let Y of[...ye.get(ie)].sort())Ge.push({name:ie,reference:Y});return Ge}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function T(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tb(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let Y=_(se,Ae);if(Y===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),t}var Ele=J("module");var[Ir,Ji]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=Ir>16||Ir===16&&Ji>=12,IBt=Ir>17||Ir===17&&Ji>=5||Ir===16&&Ji>=15,yBt=Ir>17||Ir===17&&Ji>=1||Ir===16&&Ji>14,mle=Ir>19||Ir===19&&Ji>=2||Ir===18&&Ji>=13,wBt=Ir===20&&Ji<6||Ir===19&&Ji>=3,BBt=Ir>19||Ir===19&&Ji>=6,QBt=Ir>18||Ir===18&&Ji>=1||Ir===16&&Ji>=17,bBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=19,SBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=20,vBt=Ir>=22;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe{let G=JSON.stringify(ie.name);if(ge.has(G))return;ge.add(G);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let G of[...ye.get(ie)].sort())Ye.push({name:ie,reference:G});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function N(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tb(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let G=_(se,Ae);if(G===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(Y)}let Ge,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,Y,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). +`,{request:ge,issuer:oe});return K.toPortablePath(G)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,G,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). Require path: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(Y),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;riS(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:G});else{let gr=ue(G,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. -Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${Y} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. -Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. -Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:Y}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${Y}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${Y} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. -Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${Y}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. -Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:Y}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${Y}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. -Required package: ${Y}${Y!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:Y}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Nr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:Y,reference:Ze},ti=B(Nr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Lr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:G,reference:Ze},ti=B(Lr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. -Required package: ${Nr.name}@${Nr.reference}${Nr.name!==ge?` (via "${ge}")`:""} +Required package: ${Lr.name}@${Lr.reference}${Lr.name!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Nr)});let ui=ti.packageLocation;fe?Ge=v.join(ui,fe):Ge=ui}else if(v.isAbsolute(se))Ge=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let Y=v.resolve(Ae);Ae.match(o)?Ge=v.normalize(v.join(Y,se)):Ge=v.normalize(v.join(v.dirname(Y),se))}return v.normalize(Ge)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ge;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),Y=te(se);if(Y){let{packageLocation:fe}=B(Y),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ge=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ge:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). +`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Lr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). -Missing package: ${Y.name}@${Y.reference} +Missing package: ${G.name}@${G.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let de=fe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`${de} -Missing package: ${Y.name}@${Y.reference} +Missing package: ${G.name}@${G.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. Source path: ${ie} ${ye.map(fe=>`Not found: ${ho(fe)} -`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ge}=ye,ie=T(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let Y=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!Y()?ce(se,ie,Ge,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=yr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=T(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var jBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rb(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,yr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new bo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Ne.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(Bn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!bt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!bt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=be.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function Qze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function bze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:bze,setupScriptEnvironment:Qze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,kr="node_modules",ib=".bin",jle=".yarn-state.yml",Gze=1e3;var nb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,kr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(yr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=wr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var YBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rb(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,wr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new bo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Te.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(Qn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!bt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!bt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=be.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function Qze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function bze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:bze,setupScriptEnvironment:Qze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,Dr="node_modules",ib=".bin",jle=".yarn-state.yml",Yze=1e3;var nb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,Dr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will `,s+=`# cause your node_modules installation to become invalidated. `,s+=` `,s+=`__metadata: @@ -706,11 +706,11 @@ ${ye.map(fe=>`Not found: ${ho(fe)} `;for(let h of g.aliases)s+=` - ${JSON.stringify(h)} `}if(u===a&&t.size>0){s+=` bin: `;for(let[h,p]of t){let d=v.contains(r.cwd,h);if(d===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` ${JSON.stringify(d)}: -`;for(let[m,y]of p){let B=v.relative(v.join(h,kr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)} -`}}}}let l=r.cwd,c=v.join(l,kr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,kr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Gr(B),K.toPortablePath([m,kr,S].join(v.sep)))}if(a.set(c,{target:Ne.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Ne.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Yle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(kr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Gr(i.name));i.isDirectory()?(i.name!==kr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(kr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Yle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Gle(r,e,t){let i=v.join(r,Gr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Ne.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==kr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Gle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===kr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,kr,ib),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(kr)&&l(c,kr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Gr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,kr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Yle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let T=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of T){if(!O.innerLoop&&ce.name===ib)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==kr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(T){throw O.innerLoop||(T.message=`While cloning ${ue} -> ${te} ${T.message}`),T}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!1});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(kr)&&await sp(v.join(X,kr),{contentsOnly:!0});let A=v.basename(X)===kr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),T=e.get(ue.locator),ce=T.target,he=te,Pe=T.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,T=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=T.target,De=Z;if(Pe===De)continue;let Re=T.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,kr,ib);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,kr,ib),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Gr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var ob=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new yr({baseFs:new Kn({libzip:await on(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nb,ob]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>ab,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):ab({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return ab({configuration:e,type:t});let n=i.get(t);return n===null?ab({configuration:e,type:t}):Co(n)}function ab({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lb(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await Ab(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lb(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`;for(let[m,y]of p){let B=v.relative(v.join(h,Dr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)} +`}}}}let l=r.cwd,c=v.join(l,Dr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,Dr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,Dr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(Dr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==Dr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(Dr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==Dr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===Dr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,Dr,ib),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(Dr)&&l(c,Dr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,Dr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Gle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let N=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of N){if(!O.innerLoop&&ce.name===ib)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==Dr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(N){throw O.innerLoop||(N.message=`While cloning ${ue} -> ${te} ${N.message}`),N}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!1});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!0});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),N=e.get(ue.locator),ce=N.target,he=te,Pe=N.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,N=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=N.target,De=Z;if(Pe===De)continue;let Re=N.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,Dr,ib);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,Dr,ib),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var ob=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nb,ob]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>ab,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):ab({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return ab({configuration:e,type:t});let n=i.get(t);return n===null?ab({configuration:e,type:t}):Co(n)}function ab({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lb(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await Ab(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lb(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ns=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ns.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ns.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ns.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ns.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new bt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=bt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gb.identHash)&&!o.peerDependencies.has(gb.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gb.identHash,x.makeDescriptor(gb,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ns.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>Ob,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Bn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Gt.hasWorkspaceScript(r,"prepack")||Gt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Gt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Gt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await Ob(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(vr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Ob(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Ne.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Ne.root,o)),a!=null&&s.accept.push(v.resolve(Ne.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Ne.root,l));for(let P of c.values())s.accept.push(v.resolve(Ne.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Ne.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Ne.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Ne.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Ne.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Ne.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Ne.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=Lb(r,e.accept);if(i!==0)return i===2;let n=Lb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Lb(r,s.accept);if(o!==0)return o===2;let a=Lb(r,s.reject);if(a!==0)return a===1}return!1}function Lb(r,e){let t=e,i=[];for(let n=0;n{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await Ob(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=be.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function T9e(r,{workspace:e}){let t=r.replace("%s",N9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function N9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Yue=ve(Hue()),Gue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Yue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Gue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} -`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ns],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Bn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Xi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Xi(Kb)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=be.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new bt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=bt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gb.identHash)&&!o.peerDependencies.has(gb.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gb.identHash,x.makeDescriptor(gb,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ts.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>Ob,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Qn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await Ob(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Ob(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Te.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Te.root,o)),a!=null&&s.accept.push(v.resolve(Te.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Te.root,l));for(let P of c.values())s.accept.push(v.resolve(Te.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Te.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Te.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Te.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Te.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Te.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Te.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=Lb(r,e.accept);if(i!==0)return i===2;let n=Lb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Lb(r,s.accept);if(o!==0)return o===2;let a=Lb(r,s.reject);if(a!==0)return a===1}return!1}function Lb(r,e){let t=e,i=[];for(let n=0;n{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await Ob(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=be.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function N9e(r,{workspace:e}){let t=r.replace("%s",T9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function T9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Gue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Gue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} +`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ts],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Qn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(Kb)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=be.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -724,25 +724,25 @@ ${ye.map(fe=>`Not found: ${ho(fe)} If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ye.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} -`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=be.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Gt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=be.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=be.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=be.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=be.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=be.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>NVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>TE,parseLocator:()=>NE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Ne.root,v.resolve(Ne.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:Hb(o),newMode:Hb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Hb(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jb(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!bt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:Hb(o),newMode:Hb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Hb(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jb(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!bt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` `)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[vr.SAFE_TIME,vr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,vr.SAFE_TIME,vr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function TE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function NE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Ne.root),prefixPath:v.relative(Ne.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(` +`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` `));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function Q1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var Yb=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=NE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await on(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Ne.root,g),{baseFs:y});try{await jb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Gb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=TE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=TE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=TE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=NE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=be.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ye.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var Gb=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await an(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Yb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=be.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${a.map(l=>` -- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var TVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[Yb],resolvers:[Gb]},NVe=TVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qb]},MVe=OVe;var wQ=()=>({modules:new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",hn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",TO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Fr||"",pluginConfiguration:wQ()});})(); +- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s ` (with `` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var NVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[Gb],resolvers:[Yb]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qb]},MVe=OVe;var wQ=()=>({modules:new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",pn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",NO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Nr||"",pluginConfiguration:wQ()});})(); /*! * buildToken * Builds OAuth token prefix (helper function) diff --git a/.yarnrc.yml b/.yarnrc.yml index c1f9b38ea..5cda7f39d 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -11,7 +11,7 @@ plugins: - path: .yarn/plugins/@yarnpkg/plugin-exec.cjs spec: "@yarnpkg/plugin-exec" -yarnPath: .yarn/releases/yarn-3.8.2.cjs +yarnPath: .yarn/releases/yarn-3.8.3.cjs packageExtensions: "uniforms-bridge-json-schema@*": diff --git a/package.json b/package.json index ccd7f7486..03761fc30 100644 --- a/package.json +++ b/package.json @@ -22,5 +22,5 @@ "husky": "^9.0.0", "lint-staged": "^15.0.0" }, - "packageManager": "yarn@3.8.2" + "packageManager": "yarn@3.8.3" } diff --git a/yarn.lock b/yarn.lock index 9af853a73..db020bb06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13141,11 +13141,11 @@ __metadata: "typescript@patch:typescript@^5.0.4#~builtin, typescript@patch:typescript@^5.3.3#~builtin, typescript@patch:typescript@^5.4.4#~builtin": version: 5.5.2 - resolution: "typescript@patch:typescript@npm%3A5.5.2#~builtin::version=5.5.2&hash=b45daf" + resolution: "typescript@patch:typescript@npm%3A5.5.2#~builtin::version=5.5.2&hash=379a07" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 9d89bac0de650e15d6846485f238d1e65f1013f2c260d9e53e86a1da6ecf8109d9fad9402575c5c36a6592dc5d4370db090e12971c8630ae84453654baabb6b4 + checksum: d8c8af1adb92ef36998cc9293ad8607dda68564ecc2f315a7298d6d40edae1906e0ed88e0b2b02da686adc61d638cbecb82b4c694d5bccc621b8baf6e6274f7c languageName: node linkType: hard From 41013bb26405e248efc78c2876e3d447f21bb577 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 23 Jun 2024 00:37:07 +0000 Subject: [PATCH 254/471] chore(deps): update dependency @types/node to v20.14.8 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index db020bb06..83721edbd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4110,11 +4110,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.14.7 - resolution: "@types/node@npm:20.14.7" + version: 20.14.8 + resolution: "@types/node@npm:20.14.8" dependencies: undici-types: ~5.26.4 - checksum: 967d100f3853fefa347847ece95226a73cba970ff896efa12cce68ecdd48a9b39b10c8eefd9f11016799a29bdfe19d144ea094f8db3d5987cebe8f06226fccc9 + checksum: a9128840005d4a0aba68826e22ac0fdd86bb9073f1d274217d3509b52f969d1aab83415c85a8461259f33cf34f9eee02fb13dca059865bed2ba2e728bc936a76 languageName: node linkType: hard From ce4b72677982faf217360135ca127bf4374cf4e2 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 20 Jun 2024 23:23:05 -0400 Subject: [PATCH 255/471] checkpoint --- packages/ui/src/models/mapping.ts | 15 ++++--- packages/ui/src/models/path.ts | 42 +++++++++++++++++++ packages/ui/src/services/mapping.service.ts | 34 +++++++-------- .../ui/src/services/xpath/xpath.service.ts | 10 ----- 4 files changed, 68 insertions(+), 33 deletions(-) diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index a12a9ea66..242841ba7 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -1,6 +1,6 @@ import { IField } from './document'; import { generateRandomId } from '../util'; -import { DocumentType, NodePath } from './path'; +import { DocumentType, NodePath, Path } from './path'; import { Types } from './types'; export type MappingParentType = MappingTree | MappingItem; @@ -11,6 +11,7 @@ export class MappingTree { } children: MappingItem[] = []; path: NodePath; + contextPath?: Path; } export abstract class MappingItem { @@ -23,6 +24,9 @@ export abstract class MappingItem { get path(): NodePath { return NodePath.childOf(this.parent.path, this.id); } + get contextPath(): Path | undefined { + return this.parent.contextPath; + } } export class FieldItem extends MappingItem { @@ -88,12 +92,11 @@ export class OtherwiseItem extends ConditionItem { } export class ForEachItem extends ExpressionItem { - constructor( - public parent: MappingParentType, - field: IField, - ) { + constructor(public parent: MappingParentType) { super(parent, 'for-each'); - this.children.push(new FieldItem(this, field)); + } + get contextPath() { + return new Path(this.expression, this.parent.contextPath); } sortItems: SortItem[] = []; } diff --git a/packages/ui/src/models/path.ts b/packages/ui/src/models/path.ts index 1f009cc68..f21d2b38c 100644 --- a/packages/ui/src/models/path.ts +++ b/packages/ui/src/models/path.ts @@ -36,3 +36,45 @@ export class NodePath { return answer; } } + +export class Path { + constructor( + public expression: string, + public parent?: Path, + ) { + this.isRelative = true; + let remainingExpression = this.expression; + if (remainingExpression.startsWith('/')) { + this.isRelative = false; + remainingExpression = remainingExpression.substring(1); + } + if (remainingExpression.endsWith('/')) + remainingExpression = remainingExpression.substring(0, remainingExpression.length - 1); + if (remainingExpression.startsWith('$')) { + this.isRelative = false; + const pos = remainingExpression.indexOf('/'); + this.parameterName = pos !== -1 ? remainingExpression.substring(1, pos) : remainingExpression.substring(1); + remainingExpression = pos !== -1 ? remainingExpression.substring(pos + 1) : ''; + } + this.pathSegments = remainingExpression.split('/'); + } + + toString() { + const prefix = this.parameterName ? `$${this.parameterName}/` : this.isRelative ? '' : '/'; + return this.pathSegments.length > 0 ? `${prefix}${this.pathSegments.join('/')}` : prefix; + } + + toAbsolutePathString(): string { + return this.isRelative ? this.parent?.toAbsolutePathString() + '/' + this.toString() : this.toString(); + } + + child(segment: string) { + if (segment.startsWith('/')) segment = segment.substring(1); + if (segment.endsWith('/')) segment = segment.substring(0, segment.length - 1); + return new NodePath(this.toString() + '/' + segment); + } + + isRelative: boolean; + parameterName?: string; + pathSegments: string[]; +} diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 3b37e3ad6..6ae9fc78c 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -16,7 +16,7 @@ import { IDocument, IField, PrimitiveDocument } from '../models/document'; import { DocumentService } from './document.service'; import { XPathService } from './xpath/xpath.service'; import { IMappingLink } from '../models/visualization'; -import { DocumentType } from '../models/path'; +import { DocumentType, Path } from '../models/path'; export class MappingService { static filterMappingsForField(mappings: MappingItem[], field: IField): MappingItem[] { @@ -71,10 +71,10 @@ export class MappingService { documentType: DocumentType, documentId: string, ) { - item.children = item.children?.reduce((acc, child) => { + item.children = item.children.reduce((acc, child) => { MappingService.doRemoveAllMappingsForSourceDocument(child, documentType, documentId); if ( - 'expression' in child && + !(child instanceof ExpressionItem) || !MappingService.hasStaleSourceDocument(child.expression as string, documentType, documentId) ) { acc.push(child); @@ -85,10 +85,10 @@ export class MappingService { private static hasStaleSourceDocument(expression: string, documentType: DocumentType, documentId: string) { const stalePath = XPathService.extractFieldPaths(expression).find((xpath) => { - const parsedPath = XPathService.parsePath(xpath); + const parsedPath = new Path(xpath); return ( - (documentType === DocumentType.SOURCE_BODY && !parsedPath.paramName) || - (documentType === DocumentType.PARAM && parsedPath.paramName === documentId) + (documentType === DocumentType.SOURCE_BODY && !parsedPath.parameterName) || + (documentType === DocumentType.PARAM && parsedPath.parameterName === documentId) ); }); return !!stalePath; @@ -104,7 +104,7 @@ export class MappingService { } private static doRemoveStaleMappingsForTargetDocument(item: MappingTree | MappingItem, document: IDocument) { - item.children = item.children?.reduce((acc, child) => { + item.children = item.children.reduce((acc, child) => { MappingService.doRemoveStaleMappingsForTargetDocument(child, document); if (child instanceof FieldItem && DocumentService.hasField(document, child.field)) { acc.push(child); @@ -116,7 +116,7 @@ export class MappingService { } private static doRemoveStaleMappingsForSourceDocument(item: MappingTree | MappingItem, document: IDocument) { - item.children = item.children?.reduce((acc, child) => { + item.children = item.children.reduce((acc, child) => { MappingService.doRemoveStaleMappingsForSourceDocument(child, document); if ('expression' in child && !MappingService.hasStaleSourceField(child.expression as string, document)) { acc.push(child); @@ -127,12 +127,12 @@ export class MappingService { private static hasStaleSourceField(expression: string, document: IDocument) { const stalePath = XPathService.extractFieldPaths(expression).find((xpath) => { - const parsedPath = XPathService.parsePath(xpath); + const parsedPath = new Path(xpath); if ( - (document.documentType === DocumentType.SOURCE_BODY && !parsedPath.paramName) || - (document.documentType === DocumentType.PARAM && parsedPath.paramName === document.documentId) + (document.documentType === DocumentType.SOURCE_BODY && !parsedPath.parameterName) || + (document.documentType === DocumentType.PARAM && parsedPath.parameterName === document.documentId) ) { - return !DocumentService.getFieldFromPathSegments(document, parsedPath.segments); + return !DocumentService.getFieldFromPathSegments(document, parsedPath.pathSegments); } }); return !!stalePath; @@ -147,7 +147,7 @@ export class MappingService { static wrapWithForEach(mappingTree: MappingTree, field: IField) { const fieldItem = MappingService.getOrCreateFieldItem(mappingTree, field) as FieldItem; - const forEach = new ForEachItem(fieldItem.parent, field); + const forEach = new ForEachItem(fieldItem.parent); MappingService.wrapWithItem(fieldItem, forEach); } @@ -288,10 +288,10 @@ export class MappingService { sourceBody: IDocument, ) { return XPathService.extractFieldPaths(sourceXPath).reduce((acc, xpath) => { - const { paramName, segments } = XPathService.parsePath(xpath); - const document = paramName ? sourceParameterMap.get(paramName) : sourceBody; - const sourcePath = document && DocumentService.getFieldFromPathSegments(document, segments)?.path; - sourcePath && acc.push({ sourceNodePath: sourcePath.toString(), targetNodePath: targetNodePath }); + const path = new Path(xpath); + const document = path.parameterName ? sourceParameterMap.get(path.parameterName) : sourceBody; + const sourceNodePath = document && DocumentService.getFieldFromPathSegments(document, path.pathSegments)?.path; + sourceNodePath && acc.push({ sourceNodePath: sourceNodePath.toString(), targetNodePath: targetNodePath }); return acc; }, [] as IMappingLink[]); } diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index 3e84b9741..1b0eb5266 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -113,16 +113,6 @@ export class XPathService { return [pathExprNode]; } - static parsePath(path: string) { - if (path === '.') return { segments: [] }; - if (!path.startsWith('$')) return { segments: path.split('/') }; - const pos = path.indexOf('/'); - return { - paramName: pos !== -1 ? path.substring(1, pos) : path.substring(1), - segments: pos !== -1 ? path.substring(pos + 1).split('/') : [], - }; - } - static addSource(expression: string, source: PrimitiveDocument | IField): string { const sourceXPath = XPathService.toXPath(source); return expression ? `${expression}, ${sourceXPath}` : sourceXPath; From 86172c245a77891b371aa7059185b09b2bb9d2f7 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 25 Jun 2024 14:37:21 +0900 Subject: [PATCH 256/471] checkpoint --- .../document/actions/DeleteMappingItemAction.tsx | 9 ++++++++- packages/ui/src/providers/CanvasProvider.tsx | 16 ++++++++++++++-- .../ui/src/services/visualization.service.ts | 7 ++++++- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx index 6f236bd69..36c289f5c 100644 --- a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx +++ b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx @@ -4,6 +4,8 @@ import { TrashIcon } from '@patternfly/react-icons'; import { useToggle } from '../../../hooks'; import { TargetNodeData } from '../../../models/visualization'; import { VisualizationService } from '../../../services/visualization.service'; +import { useCanvas } from '../../../hooks/useCanvas'; +import { ConditionItem } from '../../../models/mapping'; type DeleteItemProps = { nodeData: TargetNodeData; @@ -12,12 +14,17 @@ type DeleteItemProps = { export const DeleteMappingItemAction: FunctionComponent = ({ nodeData, onDelete }) => { const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); + const { clearNodeReferencesForPath, reloadNodeReferences } = useCanvas(); const onConfirmDelete = useCallback(() => { + if (nodeData.mapping && nodeData.mapping instanceof ConditionItem) { + clearNodeReferencesForPath(nodeData.mapping.path.toString()); + reloadNodeReferences(); + } VisualizationService.deleteMappingItem(nodeData); onDelete(); closeModal(); - }, [closeModal, nodeData, onDelete]); + }, [clearNodeReferencesForPath, closeModal, nodeData, onDelete, reloadNodeReferences]); const title = `Delete ${nodeData.title} mapping`; return ( diff --git a/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/providers/CanvasProvider.tsx index 9e9936499..bc6ac5350 100644 --- a/packages/ui/src/providers/CanvasProvider.tsx +++ b/packages/ui/src/providers/CanvasProvider.tsx @@ -35,6 +35,7 @@ export interface ICanvasContext { setNodeReference: (path: string, ref: MutableRefObject) => void; getNodeReference: (path: string) => MutableRefObject | null; reloadNodeReferences: () => void; + clearNodeReferencesForPath: (path: string) => void; clearNodeReferencesForDocument: (documentType: DocumentType, documentId: string) => void; getAllNodePaths: () => string[]; setDefaultHandler: (handler: DnDHandler | undefined) => void; @@ -46,8 +47,8 @@ export const CanvasContext = createContext(undefined export const CanvasProvider: FunctionComponent = (props) => { const { mappingTree, refreshMappingTree } = useDataMapper(); - const [defaultHandler, setDefaultHandler] = useState(undefined); - const [activeHandler, setActiveHandler] = useState(undefined); + const [defaultHandler, setDefaultHandler] = useState(); + const [activeHandler, setActiveHandler] = useState(); const mouseSensor = useSensor(MouseSensor, { activationConstraint: { @@ -109,6 +110,15 @@ export const CanvasProvider: FunctionComponent = (props) => { setNodeReferenceMap(new Map(nodeReferenceMap)); }, [nodeReferenceMap]); + const clearNodeReferencesForPath = useCallback( + (path: string) => { + Array.from(nodeReferenceMap.keys()) + .filter((key) => key.startsWith(path)) + .forEach((key) => nodeReferenceMap.delete(key)); + }, + [nodeReferenceMap], + ); + const clearNodeReferencesForDocument = useCallback( (documentType: DocumentType, documentId: string) => { const pathPrefix = NodePath.fromDocument(documentType, documentId).toString(); @@ -143,6 +153,7 @@ export const CanvasProvider: FunctionComponent = (props) => { setNodeReference, getNodeReference, reloadNodeReferences, + clearNodeReferencesForPath, clearNodeReferencesForDocument, getAllNodePaths, setDefaultHandler: handleSetDefaultHandler, @@ -153,6 +164,7 @@ export const CanvasProvider: FunctionComponent = (props) => { setNodeReference, getNodeReference, reloadNodeReferences, + clearNodeReferencesForPath, clearNodeReferencesForDocument, getAllNodePaths, handleSetDefaultHandler, diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index 504c13720..e6ef21cf1 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -11,6 +11,7 @@ import { } from '../models/visualization'; import { ChooseItem, + ConditionItem, ExpressionItem, FieldItem, ForEachItem, @@ -196,7 +197,11 @@ export class VisualizationService { } static deleteMappingItem(nodeData: TargetNodeData) { - if ('mapping' in nodeData && nodeData.mapping) MappingService.deleteMappingItem(nodeData.mapping); + if ('mapping' in nodeData && nodeData.mapping) { + if (nodeData.mapping instanceof ConditionItem) { + } + MappingService.deleteMappingItem(nodeData.mapping); + } } static applyIf(nodeData: TargetNodeData) { From de9dc93986f95d4611bb68c0468925efcad2991a Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 27 Jun 2024 12:47:24 +0900 Subject: [PATCH 257/471] feat: Support xsl:for-each Fixes: #128 --- .../document/actions/ConditionMenuAction.tsx | 6 +- .../actions/DeleteMappingItemAction.tsx | 2 +- packages/ui/src/models/document.ts | 2 +- packages/ui/src/models/mapping.ts | 8 +-- .../services/mapping-serializer.service.ts | 2 +- packages/ui/src/services/mapping.service.ts | 71 +++++++++---------- .../ui/src/services/visualization.service.ts | 50 ++++++++----- .../ui/src/services/xpath/xpath.service.ts | 5 +- 8 files changed, 75 insertions(+), 71 deletions(-) diff --git a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx index e05acfb1d..1ff3fd2a6 100644 --- a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx +++ b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx @@ -12,7 +12,6 @@ import { import { EllipsisVIcon } from '@patternfly/react-icons'; import { ChooseItem } from '../../../models/mapping'; import { MappingService } from '../../../services/mapping.service'; -import { useDataMapper } from '../../../hooks'; type ConditionMenuProps = { nodeData: TargetNodeData; @@ -22,7 +21,6 @@ type ConditionMenuProps = { export const ConditionMenuAction: FunctionComponent = ({ nodeData, onUpdate }) => { const [isActionMenuOpen, setIsActionMenuOpen] = useState(false); const onToggleActionMenu = useCallback(() => setIsActionMenuOpen(!isActionMenuOpen), [isActionMenuOpen]); - const { mappingTree } = useDataMapper(); const allowIfChoose = VisualizationService.allowIfChoose(nodeData); const allowForEach = VisualizationService.allowForEach(nodeData); const isChooseNode = nodeData instanceof MappingNodeData && nodeData.mapping instanceof ChooseItem; @@ -44,7 +42,7 @@ export const ConditionMenuAction: FunctionComponent = ({ nod VisualizationService.applyChooseWhenOtherwise(nodeData); break; case 'foreach': - MappingService.wrapWithForEach(mappingTree, (nodeData as TargetFieldNodeData).field); + VisualizationService.applyForEach(nodeData as TargetFieldNodeData); break; case 'when': MappingService.addWhen(nodeData.mapping as ChooseItem); @@ -56,7 +54,7 @@ export const ConditionMenuAction: FunctionComponent = ({ nod onUpdate(); setIsActionMenuOpen(false); }, - [mappingTree, nodeData, onUpdate], + [nodeData, onUpdate], ); return ( diff --git a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx index 36c289f5c..0eea65104 100644 --- a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx +++ b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx @@ -18,7 +18,7 @@ export const DeleteMappingItemAction: FunctionComponent = ({ no const onConfirmDelete = useCallback(() => { if (nodeData.mapping && nodeData.mapping instanceof ConditionItem) { - clearNodeReferencesForPath(nodeData.mapping.path.toString()); + clearNodeReferencesForPath(nodeData.mapping.nodePath.toString()); reloadNodeReferences(); } VisualizationService.deleteMappingItem(nodeData); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index 9de70445a..e5a66368c 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -64,7 +64,7 @@ export class PrimitiveDocument extends BaseDocument implements IField { this.path = NodePath.fromDocument(documentType, documentId); } - ownerDocument = this; + ownerDocument: IDocument = this; defaultValue: string | null = null; expression: string = ''; isAttribute: boolean = false; diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 242841ba7..3ceb186a6 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -7,10 +7,10 @@ export type MappingParentType = MappingTree | MappingItem; export class MappingTree { constructor(documentType: DocumentType, documentId: string) { - this.path = NodePath.fromDocument(documentType, documentId); + this.nodePath = NodePath.fromDocument(documentType, documentId); } children: MappingItem[] = []; - path: NodePath; + nodePath: NodePath; contextPath?: Path; } @@ -21,8 +21,8 @@ export abstract class MappingItem { public id: string, ) {} children: MappingItem[] = []; - get path(): NodePath { - return NodePath.childOf(this.parent.path, this.id); + get nodePath(): NodePath { + return NodePath.childOf(this.parent.nodePath, this.id); } get contextPath(): Path | undefined { return this.parent.contextPath; diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index f3a389d56..95c878f6a 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -181,6 +181,6 @@ export class MappingSerializerService { const xsltDoc = new DOMParser().parseFromString(xslt, 'application/xml'); const template = xsltDoc.getElementsByTagNameNS(NS_XSL, 'template')[0]; template.localName; - return { path: NodePath.fromDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), children: [] }; + return { nodePath: NodePath.fromDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), children: [] }; } } diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 6ae9fc78c..7448d36eb 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -27,17 +27,17 @@ export class MappingService { } else if (mapping instanceof ValueSelector) { return false; } else { - return MappingService.getConditionalFields(mapping as ConditionItem & MappingItem).includes(field); + return MappingService.getConditionalFields(mapping as ConditionItem).includes(field); } }); } - private static getConditionalFields(mapping: ConditionItem & MappingItem): IField[] { + private static getConditionalFieldItems(mapping: ConditionItem): FieldItem[] { if (mapping instanceof ChooseItem) { return [...mapping.when, mapping.otherwise].reduce((acc, branch) => { - branch && acc.push(...MappingService.getConditionalFields(branch)); + branch && acc.push(...MappingService.getConditionalFieldItems(branch)); return acc; - }, [] as IField[]); + }, [] as FieldItem[]); } else if ( mapping instanceof IfItem || mapping instanceof WhenItem || @@ -45,12 +45,15 @@ export class MappingService { mapping instanceof ForEachItem ) { return mapping.children.reduce((acc, child) => { - child instanceof FieldItem && acc.push(child.field); + child instanceof FieldItem && acc.push(child); return acc; - }, [] as IField[]); - } else { - throw Error(`Unknown mapping item ${mapping.name}`); + }, [] as FieldItem[]); } + return []; + } + + private static getConditionalFields(mapping: ConditionItem): IField[] { + return MappingService.getConditionalFieldItems(mapping).map((item) => item.field); } static removeAllMappingsForDocument(mappingTree: MappingTree, documentType: DocumentType, documentId: string) { @@ -145,10 +148,8 @@ export class MappingService { wrapped.parent = wrapper; } - static wrapWithForEach(mappingTree: MappingTree, field: IField) { - const fieldItem = MappingService.getOrCreateFieldItem(mappingTree, field) as FieldItem; - const forEach = new ForEachItem(fieldItem.parent); - MappingService.wrapWithItem(fieldItem, forEach); + static wrapWithForEach(wrapped: MappingItem) { + MappingService.wrapWithItem(wrapped, new ForEachItem(wrapped.parent)); } static wrapWithIf(wrapped: MappingItem) { @@ -189,47 +190,41 @@ export class MappingService { } static mapToCondition(condition: MappingItem, source: PrimitiveDocument | IField) { - if ('expression' in condition) { - condition.expression = XPathService.addSource(condition.expression as string, source); + const absPath = XPathService.toXPath(source); + const relativePath = MappingService.getRelativePath(condition, absPath); + if (condition instanceof ForEachItem) { + condition.expression = relativePath; + } else if (condition instanceof ExpressionItem) { + condition.expression = XPathService.addSource(condition.expression as string, relativePath); } } + private static getRelativePath(condition: MappingItem, absPath: string): string { + const parentPath = condition.parent.contextPath?.toAbsolutePathString(); + if (!parentPath) return absPath; + const index = absPath.indexOf(parentPath); + return index == -1 ? absPath : absPath.substring(index + parentPath.length + 1); + } + static mapToDocument(mappingTree: MappingTree, source: PrimitiveDocument | IField) { let valueSelector = mappingTree.children.find((mapping) => mapping instanceof ValueSelector) as ValueSelector; if (!valueSelector) { valueSelector = new ValueSelector(mappingTree); mappingTree.children.push(valueSelector); } - valueSelector.expression = XPathService.addSource(valueSelector.expression, source); + const path = XPathService.toXPath(source); + valueSelector.expression = XPathService.addSource(valueSelector.expression, path); } - static mapToField( - targetField: IField, - mappingTree: MappingTree, - item: MappingItem | undefined, - source: PrimitiveDocument | IField, - ) { - const targetFieldItem = item ? item : MappingService.getOrCreateFieldItem(mappingTree, targetField); + static mapToField(source: PrimitiveDocument | IField, targetFieldItem: MappingItem) { let valueSelector = targetFieldItem?.children.find((child) => child instanceof ValueSelector) as ValueSelector; if (!valueSelector) { valueSelector = new ValueSelector(targetFieldItem); targetFieldItem.children.push(valueSelector); } - valueSelector.expression = XPathService.addSource(valueSelector.expression, source); - } - - static getOrCreateFieldItem(mappingTree: MappingTree, targetField: IField): FieldItem | MappingTree { - const fieldStack = DocumentService.getFieldStack(targetField, true); - return fieldStack.reduceRight((mapping: MappingTree | MappingItem, field) => { - const existing = mapping.children.find((c) => c instanceof FieldItem && c.field === field) as FieldItem; - if (existing) { - return existing; - } else { - const fieldItem = new FieldItem(mapping, field); - mapping.children.push(fieldItem); - return fieldItem; - } - }, mappingTree) as MappingTree | FieldItem; + const absPath = XPathService.toXPath(source); + const relativePath = MappingService.getRelativePath(valueSelector, absPath); + valueSelector.expression = XPathService.addSource(valueSelector.expression, relativePath); } static deleteMappingItem(item: MappingParentType) { @@ -257,7 +252,7 @@ export class MappingService { sourceBody: IDocument, ): IMappingLink[] { const answer = [] as IMappingLink[]; - const targetNodePath = item.path.toString(); + const targetNodePath = item.nodePath.toString(); if (item instanceof ExpressionItem) { answer.push( ...MappingService.doExtractMappingLinks(item.expression, targetNodePath, sourceParameterMap, sourceBody), diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index e6ef21cf1..f3b00c893 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -11,7 +11,6 @@ import { } from '../models/visualization'; import { ChooseItem, - ConditionItem, ExpressionItem, FieldItem, ForEachItem, @@ -36,8 +35,8 @@ export class VisualizationService { const isPrimitive = nodeData.isPrimitive; return isDocument ? isPrimitive - ? VisualizationService.generatePrimitiveDocumentChildren(nodeData) - : VisualizationService.generateStructuredDocumentChildren(nodeData) + ? VisualizationService.generatePrimitiveDocumentChildren(nodeData as DocumentNodeData) + : VisualizationService.generateStructuredDocumentChildren(nodeData as DocumentNodeData) : VisualizationService.generateNonDocumentNodeDataChildren(nodeData); } static generatePrimitiveDocumentChildren(document: DocumentNodeData): NodeData[] { @@ -55,9 +54,9 @@ export class VisualizationService { private static doGenerateNodeDataFromFields(parent: NodeData, fields: IField[], mappings?: MappingItem[]) { const answer: NodeData[] = []; - if (parent.isPrimitive) { + if (parent.isPrimitive && mappings) { mappings - ?.filter((m) => m instanceof ValueSelector) + .filter((m) => m instanceof ValueSelector) .forEach((m) => answer.push(new MappingNodeData(parent as TargetNodeData, m))); } return fields.reduce((acc, field) => { @@ -174,7 +173,7 @@ export class VisualizationService { static getExpressionItemForNode(nodeData: TargetNodeData) { if (!nodeData.mapping) return; - if ('expression' in nodeData.mapping) return nodeData.mapping as ExpressionItem; + if (nodeData.mapping instanceof ExpressionItem) return nodeData.mapping as ExpressionItem; return VisualizationService.getFieldValueSelector(nodeData); } @@ -193,13 +192,11 @@ export class VisualizationService { } static hasValueSelector(nodeData: TargetNodeData) { - return !!nodeData.mapping?.children.find((c) => c instanceof ValueSelector); + return !!(nodeData.mapping && nodeData.mapping.children.find((c) => c instanceof ValueSelector)); } static deleteMappingItem(nodeData: TargetNodeData) { - if ('mapping' in nodeData && nodeData.mapping) { - if (nodeData.mapping instanceof ConditionItem) { - } + if (nodeData.mapping) { MappingService.deleteMappingItem(nodeData.mapping); } } @@ -211,7 +208,7 @@ export class VisualizationService { const mapping = nodeData.mapping ? nodeData.mapping : nodeData instanceof TargetFieldNodeData - ? (MappingService.getOrCreateFieldItem(nodeData.mappingTree, nodeData.field) as FieldItem) + ? (VisualizationService.getOrCreateFieldItem(nodeData) as FieldItem) : undefined; if (!mapping) return; MappingService.wrapWithIf(mapping); @@ -225,36 +222,51 @@ export class VisualizationService { const existingValueSelector = nodeData.mappingTree.children.find((c) => c instanceof ValueSelector); MappingService.addChooseWhenOtherwise(nodeData.mappingTree, existingValueSelector); } else if (nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) { - if (nodeData.mapping?.children.find((c) => c instanceof ChooseItem)) return; + if (nodeData.mapping && nodeData.mapping.children.find((c) => c instanceof ChooseItem)) return; const mapping = nodeData.mapping ? nodeData.mapping : nodeData instanceof TargetFieldNodeData - ? (MappingService.getOrCreateFieldItem(nodeData.mappingTree, nodeData.field) as FieldItem) + ? (VisualizationService.getOrCreateFieldItem(nodeData) as FieldItem) : undefined; if (!mapping) return; MappingService.wrapWithChooseWhenOtherwise(mapping); } } + static applyForEach(nodeData: TargetFieldNodeData) { + const fieldItem = VisualizationService.getOrCreateFieldItem(nodeData); + MappingService.wrapWithForEach(fieldItem as MappingItem); + } + static applyValueSelector(nodeData: TargetNodeData) { const mapping = nodeData instanceof TargetFieldNodeData && !nodeData.mapping - ? MappingService.getOrCreateFieldItem(nodeData.mappingTree, nodeData.field) + ? VisualizationService.getOrCreateFieldItem(nodeData) : nodeData.mapping; if (!mapping) return; - const existing = mapping.children.find((c) => c instanceof ValueSelector); + const existing = mapping.children.find((c: MappingItem) => c instanceof ValueSelector); if (!existing) mapping.children.push(new ValueSelector(mapping)); } static engageMapping(mappingTree: MappingTree, sourceNode: SourceNodeDataType, targetNode: TargetNodeData) { - const sourceItem = 'document' in sourceNode ? (sourceNode.document as PrimitiveDocument) : sourceNode.field; + const sourceField = 'document' in sourceNode ? (sourceNode.document as PrimitiveDocument) : sourceNode.field; if (targetNode instanceof MappingNodeData) { - MappingService.mapToCondition(targetNode.mapping, sourceItem); + MappingService.mapToCondition(targetNode.mapping, sourceField); } else if (targetNode instanceof TargetDocumentNodeData) { - MappingService.mapToDocument(mappingTree, sourceItem); + MappingService.mapToDocument(mappingTree, sourceField); } else if (targetNode instanceof TargetFieldNodeData) { - MappingService.mapToField(targetNode.field, mappingTree, targetNode.mapping, sourceItem); + const item = VisualizationService.getOrCreateFieldItem(targetNode); + MappingService.mapToField(sourceField, item as MappingItem); } } + + private static getOrCreateFieldItem(nodeData: TargetNodeData): MappingItem { + if (nodeData.mapping) return nodeData.mapping as MappingItem; + const fieldNodeData = nodeData as TargetFieldNodeData; + const parentItem = VisualizationService.getOrCreateFieldItem(fieldNodeData.parent); + const item = new FieldItem(parentItem, fieldNodeData.field); + parentItem.children.push(item); + return item; + } } diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index 1b0eb5266..8eb11d214 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -113,9 +113,8 @@ export class XPathService { return [pathExprNode]; } - static addSource(expression: string, source: PrimitiveDocument | IField): string { - const sourceXPath = XPathService.toXPath(source); - return expression ? `${expression}, ${sourceXPath}` : sourceXPath; + static addSource(expression: string, source: string): string { + return expression ? `${expression}, ${source}` : source; } static toXPath(source: PrimitiveDocument | IField): string { From b0d14b9ab19ceed8fc50f6272c24f11312c39d78 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 00:18:19 +0000 Subject: [PATCH 258/471] chore(deps): update dependency @types/node to v20.14.9 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 83721edbd..48a32acd6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4110,11 +4110,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.14.8 - resolution: "@types/node@npm:20.14.8" + version: 20.14.9 + resolution: "@types/node@npm:20.14.9" dependencies: undici-types: ~5.26.4 - checksum: a9128840005d4a0aba68826e22ac0fdd86bb9073f1d274217d3509b52f969d1aab83415c85a8461259f33cf34f9eee02fb13dca059865bed2ba2e728bc936a76 + checksum: 5e9eda1ac8c6cc6bcd1063903ae195eaede9aad1bdad00408a919409cfbcdd2d6535aa3d50346f0d385528f9e03dafc7d1b3bad25aedb1dcd79a6ad39d06c35d languageName: node linkType: hard From e7284ea96a533402724f0589b13728fbd121f734 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 03:55:23 +0000 Subject: [PATCH 259/471] chore(deps): update dependency @storybook/addon-actions to v8.1.11 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 48a32acd6..2a0386722 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3503,16 +3503,16 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.1.10 - resolution: "@storybook/addon-actions@npm:8.1.10" + version: 8.1.11 + resolution: "@storybook/addon-actions@npm:8.1.11" dependencies: - "@storybook/core-events": 8.1.10 + "@storybook/core-events": 8.1.11 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: 71a56b55befeeff0e8cb98393d3eb16447cd705b4fae27fe53d3d1e18084c6f29ad6d2a24f724453e65e7875499b3aef3b04d622f2be80c8621c15e67b132cc9 + checksum: e4711bc4acdcad5402176e9715410a34e634ab3ce183eaf2589a18024e745292f78c276c015ae7074115766bf82b5d125833e518fc82a718188bb5f80ed345f7 languageName: node linkType: hard @@ -3547,13 +3547,13 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.1.10": - version: 8.1.10 - resolution: "@storybook/core-events@npm:8.1.10" +"@storybook/core-events@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/core-events@npm:8.1.11" dependencies: "@storybook/csf": ^0.1.7 ts-dedent: ^2.0.0 - checksum: 2e4cdb3aac8deb8ea243379ad4f30b59668090d20c1b7541554be89fffed764d9c9406b08effd392cc138a6a1bda3373c60202f892cbc686db9bc9b0630a45ab + checksum: 3b3231b299367def8d6d9ee8dc939ad145473bbd561d495f0dac3e5cd3adb93b7e87f1d0a6787917275f8dfae8193959c872336530930ad90207b6df5de37910 languageName: node linkType: hard From 75578e467673f492028820f834213857991adbbf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 01:54:59 +0000 Subject: [PATCH 260/471] chore(deps): update dependency vite to v5.3.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2a0386722..42829331e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13372,8 +13372,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.3.1 - resolution: "vite@npm:5.3.1" + version: 5.3.2 + resolution: "vite@npm:5.3.2" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 @@ -13407,7 +13407,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: a06d35566338794a877538ddacccccfdac30df7e260546dc0513e77191b86a13398b86a8082bb6c842013b0d3062f951f624a3f800867cbf06aef89e49767d6c + checksum: d6872cb72701ec4b8d8dbccc5deacb5af03c3f247df02750787d6dcf4e49e207effed7a06e4f103008a918188cdf0789ff7348db451ebd0d59ef1a22ae4a267d languageName: node linkType: hard From 843cd9b9bfa08eac5a430c1867c25f76a7d6cbc2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 01:55:15 +0000 Subject: [PATCH 261/471] chore(deps): update @lerna-lite to v3.6.0 --- yarn.lock | 369 +++++++++++++++++++++++++++--------------------------- 1 file changed, 187 insertions(+), 182 deletions(-) diff --git a/yarn.lock b/yarn.lock index 42829331e..1877236ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2669,17 +2669,17 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.5.1, @lerna-lite/cli@npm:^3.0.0": - version: 3.5.1 - resolution: "@lerna-lite/cli@npm:3.5.1" +"@lerna-lite/cli@npm:3.6.0, @lerna-lite/cli@npm:^3.0.0": + version: 3.6.0 + resolution: "@lerna-lite/cli@npm:3.6.0" dependencies: - "@lerna-lite/core": 3.5.1 - "@lerna-lite/init": 3.5.1 + "@lerna-lite/core": 3.6.0 + "@lerna-lite/init": 3.6.0 + "@lerna-lite/npmlog": 3.6.0 dedent: ^1.5.3 dotenv: ^16.4.5 import-local: ^3.1.0 load-json-file: ^7.0.1 - npmlog: ^7.0.1 yargs: ^17.7.2 peerDependenciesMeta: "@lerna-lite/exec": @@ -2696,14 +2696,15 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 4cd0b082f15fe024d97da49e471f93fb84af404672432b0bcb7f43f93b48c30520a84fee52134012ab13350e37d24960794ccb9af9bbfd95a69f30617ad4a116 + checksum: 2c56e74a81f843011af12dd1c9dc1920cf059e73cc123ee6f574b2f29af9141e59a4f1555569bb74169c540efa75970a47333ef2bf09c0d241a7c04b79a179ef languageName: node linkType: hard -"@lerna-lite/core@npm:3.5.1": - version: 3.5.1 - resolution: "@lerna-lite/core@npm:3.5.1" +"@lerna-lite/core@npm:3.6.0": + version: 3.6.0 + resolution: "@lerna-lite/core@npm:3.6.0" dependencies: + "@lerna-lite/npmlog": ^3.6.0 "@npmcli/run-script": ^8.1.0 chalk: ^5.3.0 clone-deep: ^4.0.1 @@ -2714,13 +2715,12 @@ __metadata: fs-extra: ^11.2.0 glob-parent: ^6.0.2 globby: ^14.0.1 - inquirer: ^9.2.23 + inquirer: ^9.3.0 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 - minimatch: ^9.0.4 + minimatch: ^9.0.5 npm-package-arg: ^11.0.2 - npmlog: ^7.0.1 p-map: ^7.0.2 p-queue: ^8.0.1 resolve-from: ^5.0.0 @@ -2730,63 +2730,80 @@ __metadata: write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 write-package: ^7.0.1 - checksum: e8f2528daf909eef9e88c6a65501675d869a3e968078ad43e75e25fcfa48b24a7b428a7474250c4b003a4ae790959e284590cf31dca9ee6e4f4b6032fdaab1be + checksum: 66e98c92bc424d1681433ee241f28f2cf5dd90bbf43eb2d086d0bacfb80f81f7e8de07379819732281c379a2921ce41bdb9436d541f8a411c7ae14548c2a8ab2 languageName: node linkType: hard -"@lerna-lite/init@npm:3.5.1": - version: 3.5.1 - resolution: "@lerna-lite/init@npm:3.5.1" +"@lerna-lite/init@npm:3.6.0": + version: 3.6.0 + resolution: "@lerna-lite/init@npm:3.6.0" dependencies: - "@lerna-lite/core": 3.5.1 + "@lerna-lite/core": 3.6.0 fs-extra: ^11.2.0 p-map: ^7.0.2 write-json-file: ^5.0.0 - checksum: 7e03e90468dc7b49e37abf79e26e9e3997985159ec5622b6e081d54c68463336fe7b07fe9a2d356bd0c7ea3356d12cc0c7678da173080685eee503d87b00ddd0 + checksum: ba22955f05d2a5877dd072e75a3cbffe417d30d804d6ab9a1afbdaf5497566768c0506082e9454df8329c0cd4568d4a4fea52d6cc63f3dcbf8b4a584e9b2fdab + languageName: node + linkType: hard + +"@lerna-lite/npmlog@npm:3.6.0, @lerna-lite/npmlog@npm:^3.6.0": + version: 3.6.0 + resolution: "@lerna-lite/npmlog@npm:3.6.0" + dependencies: + aproba: ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + set-blocking: ^2.0.0 + signal-exit: ^4.1.0 + string-width: ^7.1.0 + strip-ansi: ^7.1.0 + wide-align: ^1.1.5 + checksum: 2ee6c428060f59ffb5e828b1b445ba3190746bb0ccd078d4061d9232e3d22e7d00a46bbfcf94ea28337df319f48d989097aadc8d091368f79019273187ef710b languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.5.2 - resolution: "@lerna-lite/publish@npm:3.5.2" + version: 3.6.0 + resolution: "@lerna-lite/publish@npm:3.6.0" dependencies: - "@lerna-lite/cli": 3.5.1 - "@lerna-lite/core": 3.5.1 - "@lerna-lite/version": 3.5.2 + "@lerna-lite/cli": 3.6.0 + "@lerna-lite/core": 3.6.0 + "@lerna-lite/npmlog": ^3.6.0 + "@lerna-lite/version": 3.6.0 + "@npmcli/package-json": ^5.2.0 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 fs-extra: ^11.2.0 - glob: ^10.4.1 + glob: ^10.4.2 has-unicode: ^2.0.1 libnpmaccess: ^8.0.6 libnpmpublish: ^9.0.9 normalize-path: ^3.0.0 npm-package-arg: ^11.0.2 npm-packlist: ^5.1.3 - npm-registry-fetch: ^17.0.1 - npmlog: ^7.0.1 + npm-registry-fetch: ^17.1.0 p-map: ^7.0.2 p-pipe: ^4.0.0 pacote: ^18.0.6 - pify: ^6.1.0 - read-package-json: ^7.0.1 semver: ^7.6.2 ssri: ^10.0.6 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: 78c014983ecde91fe8526c74f3d5823b7774d75bf730bdd964e8c4b980fed59dd6cf2abae7b6769311fcd8aec1c288452958fd3721afdddcdadc2deb33e2b71c + checksum: fba825b58d9b0629a4b6254e9e58cb7895bdadbf5753acfc6148d4f75ed1a5b6802d5d001775615ca05e10fe882467c092f69e7aca4bf73bb068431bdc33537f languageName: node linkType: hard -"@lerna-lite/version@npm:3.5.2, @lerna-lite/version@npm:^3.0.0": - version: 3.5.2 - resolution: "@lerna-lite/version@npm:3.5.2" +"@lerna-lite/version@npm:3.6.0, @lerna-lite/version@npm:^3.0.0": + version: 3.6.0 + resolution: "@lerna-lite/version@npm:3.6.0" dependencies: - "@lerna-lite/cli": 3.5.1 - "@lerna-lite/core": 3.5.1 + "@lerna-lite/cli": 3.6.0 + "@lerna-lite/core": 3.6.0 + "@lerna-lite/npmlog": ^3.6.0 "@octokit/plugin-enterprise-rest": ^6.0.1 - "@octokit/rest": ^20.1.1 + "@octokit/rest": ^21.0.0 chalk: ^5.3.0 conventional-changelog-angular: ^7.0.0 conventional-changelog-core: ^7.0.0 @@ -2801,11 +2818,10 @@ __metadata: is-stream: ^4.0.1 load-json-file: ^7.0.1 make-dir: ^5.0.0 - minimatch: ^9.0.4 + minimatch: ^9.0.5 new-github-release-url: ^2.0.0 node-fetch: ^3.3.2 npm-package-arg: ^11.0.2 - npmlog: ^7.0.1 p-limit: ^5.0.0 p-map: ^7.0.2 p-pipe: ^4.0.0 @@ -2814,18 +2830,9 @@ __metadata: semver: ^7.6.2 slash: ^5.1.0 temp-dir: ^3.0.0 - uuid: ^9.0.1 + uuid: ^10.0.0 write-json-file: ^5.0.0 - checksum: d4483bed67acf74f6cdf1e4fc080fc2b5a41194fe7dc851c3dbff3efa688d1563e9a687a82a03803e64c7734c79913c4fa3a99d85986d1552584c476c0e413ce - languageName: node - linkType: hard - -"@ljharb/through@npm:^2.3.13": - version: 2.3.13 - resolution: "@ljharb/through@npm:2.3.13" - dependencies: - call-bind: ^1.0.7 - checksum: 0255464a0ec7901b08cff3e99370b87e66663f46249505959c0cb4f6121095d533bbb7c7cda338063d3e134cbdd721e2705bc18eac7611b4f9ead6e7935d13ba + checksum: bce2bf223cfe59670d143b10800265ed9f8c1d4ce4cbb227872486adbbf911b6542b468d2b6a2231c847049d4e39b7c2c7273b5e1ebb4c7749da8a9bea513955 languageName: node linkType: hard @@ -2967,6 +2974,21 @@ __metadata: languageName: node linkType: hard +"@npmcli/package-json@npm:^5.2.0": + version: 5.2.0 + resolution: "@npmcli/package-json@npm:5.2.0" + dependencies: + "@npmcli/git": ^5.0.0 + glob: ^10.2.2 + hosted-git-info: ^7.0.0 + json-parse-even-better-errors: ^3.0.0 + normalize-package-data: ^6.0.0 + proc-log: ^4.0.0 + semver: ^7.5.3 + checksum: 8df289c45b52cca88826cc737195cabf21757008e11d90b1f62d5400ff65834c0e9bcb552f235ba560c3af436a1ca3fc553b23b5cb5da8330ae56929065a6988 + languageName: node + linkType: hard + "@npmcli/promise-spawn@npm:^7.0.0": version: 7.0.1 resolution: "@npmcli/promise-spawn@npm:7.0.1" @@ -2997,46 +3019,46 @@ __metadata: languageName: node linkType: hard -"@octokit/auth-token@npm:^4.0.0": - version: 4.0.0 - resolution: "@octokit/auth-token@npm:4.0.0" - checksum: d78f4dc48b214d374aeb39caec4fdbf5c1e4fd8b9fcb18f630b1fe2cbd5a880fca05445f32b4561f41262cb551746aeb0b49e89c95c6dd99299706684d0cae2f +"@octokit/auth-token@npm:^5.0.0": + version: 5.1.1 + resolution: "@octokit/auth-token@npm:5.1.1" + checksum: b39516dda44aeced0326227c53aade621effe1d59c4b0f48ebe2b9fd32b5156e02705bcb2fb1bf48b11f26cc6aff1a0683c32c3d5424e0118dae6596e431d489 languageName: node linkType: hard -"@octokit/core@npm:^5.0.2": - version: 5.2.0 - resolution: "@octokit/core@npm:5.2.0" +"@octokit/core@npm:^6.1.2": + version: 6.1.2 + resolution: "@octokit/core@npm:6.1.2" dependencies: - "@octokit/auth-token": ^4.0.0 - "@octokit/graphql": ^7.1.0 - "@octokit/request": ^8.3.1 - "@octokit/request-error": ^5.1.0 + "@octokit/auth-token": ^5.0.0 + "@octokit/graphql": ^8.0.0 + "@octokit/request": ^9.0.0 + "@octokit/request-error": ^6.0.1 "@octokit/types": ^13.0.0 - before-after-hook: ^2.2.0 - universal-user-agent: ^6.0.0 - checksum: 57d5f02b759b569323dcb76cc72bf94ea7d0de58638c118ee14ec3e37d303c505893137dd72918328794844f35c74b3cd16999319c4b40d410a310d44a9b7566 + before-after-hook: ^3.0.2 + universal-user-agent: ^7.0.0 + checksum: e794fb11b3942f55033f4cf6c0914953fd974587309498e8709c428660fa5c098334d83af5e41457dbe67d92d70a8b559c6cc00457d6c95290fa6c9e1d4bfc42 languageName: node linkType: hard -"@octokit/endpoint@npm:^9.0.1": - version: 9.0.5 - resolution: "@octokit/endpoint@npm:9.0.5" +"@octokit/endpoint@npm:^10.0.0": + version: 10.1.1 + resolution: "@octokit/endpoint@npm:10.1.1" dependencies: - "@octokit/types": ^13.1.0 - universal-user-agent: ^6.0.0 - checksum: d5cc2df9bd4603844c163eea05eec89c677cfe699c6f065fe86b83123e34554ec16d429e8142dec1e2b4cf56591ef0ce5b1763f250c87bc8e7bf6c74ba59ae82 + "@octokit/types": ^13.0.0 + universal-user-agent: ^7.0.2 + checksum: fde158f40dc9a88e92a8ac1d347a54599aa5715ec24045be9cb8ff8decb3c17b63c91eca1bab12dfe0e0cd37433127dd05cd05db14a719dca749bc56093aa915 languageName: node linkType: hard -"@octokit/graphql@npm:^7.1.0": - version: 7.1.0 - resolution: "@octokit/graphql@npm:7.1.0" +"@octokit/graphql@npm:^8.0.0": + version: 8.1.1 + resolution: "@octokit/graphql@npm:8.1.1" dependencies: - "@octokit/request": ^8.3.0 + "@octokit/request": ^9.0.0 "@octokit/types": ^13.0.0 - universal-user-agent: ^6.0.0 - checksum: 7b2706796e0269fc033ed149ea211117bcacf53115fd142c1eeafc06ebc5b6290e4e48c03d6276c210d72e3695e8598f83caac556cd00714fc1f8e4707d77448 + universal-user-agent: ^7.0.0 + checksum: 07239666b0ca38a7d8c581570b544ee9fd1a2616c8dd436af31879662b3345c44ed52e3d7b311840a1c5772a23f02caf7585aca56f36e50f38f0207a87577a9c languageName: node linkType: hard @@ -3061,7 +3083,7 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-paginate-rest@npm:11.3.1": +"@octokit/plugin-paginate-rest@npm:^11.0.0": version: 11.3.1 resolution: "@octokit/plugin-paginate-rest@npm:11.3.1" dependencies: @@ -3072,16 +3094,16 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-request-log@npm:^4.0.0": - version: 4.0.0 - resolution: "@octokit/plugin-request-log@npm:4.0.0" +"@octokit/plugin-request-log@npm:^5.1.0": + version: 5.3.0 + resolution: "@octokit/plugin-request-log@npm:5.3.0" peerDependencies: - "@octokit/core": ">=5" - checksum: 2a8a6619640942092009a9248ceeb163ce01c978e2d7b2a7eb8686bd09a04b783c4cd9071eebb16652d233587abcde449a02ce4feabc652f0a171615fb3e9946 + "@octokit/core": ">=6" + checksum: 8c918b14f0687e8a3d9c7c81ef1092a49de07681940cc1aee0aeb7e3dd8ac64f69af5d65932eec32f6db4af3dca80541ad3bb13ac0fa44af3e2340ed91909272 languageName: node linkType: hard -"@octokit/plugin-rest-endpoint-methods@npm:13.2.2": +"@octokit/plugin-rest-endpoint-methods@npm:^13.0.0": version: 13.2.2 resolution: "@octokit/plugin-rest-endpoint-methods@npm:13.2.2" dependencies: @@ -3092,38 +3114,36 @@ __metadata: languageName: node linkType: hard -"@octokit/request-error@npm:^5.1.0": - version: 5.1.0 - resolution: "@octokit/request-error@npm:5.1.0" +"@octokit/request-error@npm:^6.0.1": + version: 6.1.1 + resolution: "@octokit/request-error@npm:6.1.1" dependencies: - "@octokit/types": ^13.1.0 - deprecation: ^2.0.0 - once: ^1.4.0 - checksum: 2cdbb8e44072323b5e1c8c385727af6700e3e492d55bc1e8d0549c4a3d9026914f915866323d371b1f1772326d6e902341c872679cc05c417ffc15cadf5f4a4e + "@octokit/types": ^13.0.0 + checksum: cae7bc4078629a02edcf35977f496a4b943e730165f6d7828795073f99a1d884ac67343b02eff69e553a5057765e466d70ddd9d266787f505aa29018858ab06d languageName: node linkType: hard -"@octokit/request@npm:^8.3.0, @octokit/request@npm:^8.3.1": - version: 8.4.0 - resolution: "@octokit/request@npm:8.4.0" +"@octokit/request@npm:^9.0.0": + version: 9.1.1 + resolution: "@octokit/request@npm:9.1.1" dependencies: - "@octokit/endpoint": ^9.0.1 - "@octokit/request-error": ^5.1.0 + "@octokit/endpoint": ^10.0.0 + "@octokit/request-error": ^6.0.1 "@octokit/types": ^13.1.0 - universal-user-agent: ^6.0.0 - checksum: 3d937e817a85c0adf447ab46b428ccd702c31b2091e47adec90583ec2242bd64666306fe8188628fb139aa4752e19400eb7652b0f5ca33cd9e77bbb2c60b202a + universal-user-agent: ^7.0.2 + checksum: 0c41654911c217eb2892ce6c9c273cc2139e5510b025c71e72e1528f0d8bad2a9e578e5b305595599f2e1cb630c1812cd7d9e4f6d16a63007a7d1745f1c682ce languageName: node linkType: hard -"@octokit/rest@npm:^20.1.1": - version: 20.1.1 - resolution: "@octokit/rest@npm:20.1.1" +"@octokit/rest@npm:^21.0.0": + version: 21.0.0 + resolution: "@octokit/rest@npm:21.0.0" dependencies: - "@octokit/core": ^5.0.2 - "@octokit/plugin-paginate-rest": 11.3.1 - "@octokit/plugin-request-log": ^4.0.0 - "@octokit/plugin-rest-endpoint-methods": 13.2.2 - checksum: c15a801c62a2e2104a4b443b3b43f73366d1220b43995d4ffe1358c4162021708e6625a64ea56bf7d85b870924b862b0d680e191160ceca11e6531b8b92299ca + "@octokit/core": ^6.1.2 + "@octokit/plugin-paginate-rest": ^11.0.0 + "@octokit/plugin-request-log": ^5.1.0 + "@octokit/plugin-rest-endpoint-methods": ^13.0.0 + checksum: 1d2c28dfce0c11de252d105e2c256690e66bb6c1ccf73fbc142dd4e5570aa7d9d77a8e443956bcc461709c83dc018c5a3999fd784ac2fb3f4514a3db29a3a1bf languageName: node linkType: hard @@ -4650,20 +4670,13 @@ __metadata: languageName: node linkType: hard -"aproba@npm:^1.0.3 || ^2.0.0": +"aproba@npm:^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 languageName: node linkType: hard -"are-we-there-yet@npm:^4.0.0": - version: 4.0.2 - resolution: "are-we-there-yet@npm:4.0.2" - checksum: 29d562d3aad6428aa4d732f78b058f1025fda00305bb307b4cd6ee26a43e5b4c90c113e97e01fa43bfe04556a800ba7e5c947907891ae99bfb8a5ae2488078d0 - languageName: node - linkType: hard - "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -4978,10 +4991,10 @@ __metadata: languageName: node linkType: hard -"before-after-hook@npm:^2.2.0": - version: 2.2.3 - resolution: "before-after-hook@npm:2.2.3" - checksum: a1a2430976d9bdab4cd89cb50d27fa86b19e2b41812bf1315923b0cba03371ebca99449809226425dd3bcef20e010db61abdaff549278e111d6480034bebae87 +"before-after-hook@npm:^3.0.2": + version: 3.0.2 + resolution: "before-after-hook@npm:3.0.2" + checksum: 5f76a9d31909f7f1f7125b7e017ff018799308f5c1fc5a5bfeba9986149da77e6a5cdde0d151671cf374a7fa6452533237bb1de62dfd6c235c20e7c61cc9569d languageName: node linkType: hard @@ -6321,13 +6334,6 @@ __metadata: languageName: node linkType: hard -"deprecation@npm:^2.0.0": - version: 2.3.1 - resolution: "deprecation@npm:2.3.1" - checksum: f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 - languageName: node - linkType: hard - "dequal@npm:^2.0.2, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" @@ -7563,22 +7569,6 @@ __metadata: languageName: node linkType: hard -"gauge@npm:^5.0.0": - version: 5.0.1 - resolution: "gauge@npm:5.0.1" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^4.0.1 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 09b1eb8d8c850df7e4e2822feef27427afc845d4839fa13a08ddad74f882caf668dd1e77ac5e059d3e9a7b0cef59b706d28be40e1dc5fd326da32965e1f206a6 - languageName: node - linkType: hard - "gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" @@ -7756,18 +7746,19 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.4.1": - version: 10.4.1 - resolution: "glob@npm:10.4.1" +"glob@npm:^10.4.2": + version: 10.4.2 + resolution: "glob@npm:10.4.2" dependencies: foreground-child: ^3.1.0 jackspeak: ^3.1.2 minimatch: ^9.0.4 minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 path-scurry: ^1.11.1 bin: glob: dist/esm/bin.mjs - checksum: 5d33c686c80bf6877f4284adf99a8c3cbb2a6eccbc92342943fe5d4b42c01d78c1881f2223d950c92a938d0f857e12e37b86a8e5483ab2141822e053b67d0dde + checksum: bd7c0e30701136e936f414e5f6f82c7f04503f01df77408f177aa584927412f0bde0338e6ec541618cd21eacc57dde33e7b3c6c0a779cc1c6e6a0e14f3d15d9b languageName: node linkType: hard @@ -8263,26 +8254,23 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.2.23": - version: 9.2.23 - resolution: "inquirer@npm:9.2.23" +"inquirer@npm:^9.3.0": + version: 9.3.1 + resolution: "inquirer@npm:9.3.1" dependencies: "@inquirer/figures": ^1.0.3 - "@ljharb/through": ^2.3.13 ansi-escapes: ^4.3.2 - chalk: ^5.3.0 - cli-cursor: ^3.1.0 cli-width: ^4.1.0 external-editor: ^3.1.0 - lodash: ^4.17.21 mute-stream: 1.0.0 ora: ^5.4.1 + picocolors: ^1.0.1 run-async: ^3.0.0 rxjs: ^7.8.1 string-width: ^4.2.3 strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 - checksum: d3d5c48b2c3e606b59bc0b825a0dc3805cd12b4068cf9bb17e5f05a43e512f28b280124f2b3e9e8f8845c1031fb92eca73be25e764c4522e02b48af08428117c + checksum: c225e98080fe443ff973928ea98267f14ddc59fedf37a19a2e3635f1710045fc134dc7e5fd34a2f948f2e6aaec9138dee027c1ef2cbd68e6d2c281088e0fbb80 languageName: node linkType: hard @@ -9939,6 +9927,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.5": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: ^2.0.1 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 + languageName: node + linkType: hard + "minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -10416,6 +10413,22 @@ __metadata: languageName: node linkType: hard +"npm-registry-fetch@npm:^17.1.0": + version: 17.1.0 + resolution: "npm-registry-fetch@npm:17.1.0" + dependencies: + "@npmcli/redact": ^2.0.0 + jsonparse: ^1.3.1 + make-fetch-happen: ^13.0.0 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 + minizlib: ^2.1.2 + npm-package-arg: ^11.0.0 + proc-log: ^4.0.0 + checksum: 12452e690aa98a4504fe70a40e97877656799a66d31b8e6d5786b85d1d27aee168162cd5d78acc05a7eac5fa56f2b5ba0bdf80e83daaf5ef67e66c3d8c979c39 + languageName: node + linkType: hard + "npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" @@ -10434,18 +10447,6 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^7.0.1": - version: 7.0.1 - resolution: "npmlog@npm:7.0.1" - dependencies: - are-we-there-yet: ^4.0.0 - console-control-strings: ^1.1.0 - gauge: ^5.0.0 - set-blocking: ^2.0.0 - checksum: caabeb1f557c1094ad7ed3275b968b83ccbaefc133f17366ebb9fe8eb44e1aace28c31419d6244bfc0422aede1202875d555fe6661978bf04386f6cf617f43a4 - languageName: node - linkType: hard - "nwsapi@npm:^2.2.2": version: 2.2.7 resolution: "nwsapi@npm:2.2.7" @@ -10521,7 +10522,7 @@ __metadata: languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.4.0": +"once@npm:^1.3.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: @@ -10703,6 +10704,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea + languageName: node + linkType: hard + "pacote@npm:^18.0.6": version: 18.0.6 resolution: "pacote@npm:18.0.6" @@ -11481,18 +11489,6 @@ __metadata: languageName: node linkType: hard -"read-package-json@npm:^7.0.1": - version: 7.0.1 - resolution: "read-package-json@npm:7.0.1" - dependencies: - glob: ^10.2.2 - json-parse-even-better-errors: ^3.0.0 - normalize-package-data: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - checksum: b0f469dcd0ff91ec14ac177aed1e9ebd5f1b9d3760c06e42b52cff51018b25768685490b5e33a2643e5f27854fc965890c2c33e041852f58dd93dcf1bcb4f080 - languageName: node - linkType: hard - "read-pkg-up@npm:^10.0.0": version: 10.1.0 resolution: "read-pkg-up@npm:10.1.0" @@ -12380,7 +12376,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^7.0.0": +"string-width@npm:^7.0.0, string-width@npm:^7.1.0": version: 7.1.0 resolution: "string-width@npm:7.1.0" dependencies: @@ -13233,10 +13229,10 @@ __metadata: languageName: node linkType: hard -"universal-user-agent@npm:^6.0.0": - version: 6.0.1 - resolution: "universal-user-agent@npm:6.0.1" - checksum: fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c +"universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "universal-user-agent@npm:7.0.2" + checksum: 3f02cb6de0bb9fbaf379566bd0320d8e46af6e4358a2e88fce7e70687ed7b48b37f479d728bb22f4204a518e363f3038ac4841c033af1ee2253f6428a6c67e53 languageName: node linkType: hard @@ -13315,7 +13311,16 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^9.0.0, uuid@npm:^9.0.1": +"uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "uuid@npm:10.0.0" + bin: + uuid: dist/bin/uuid + checksum: 4b81611ade2885d2313ddd8dc865d93d8dccc13ddf901745edca8f86d99bc46d7a330d678e7532e7ebf93ce616679fb19b2e3568873ac0c14c999032acb25869 + languageName: node + linkType: hard + +"uuid@npm:^9.0.0": version: 9.0.1 resolution: "uuid@npm:9.0.1" bin: From 2d749322c3daaddc8c468dd76646d2917d82175d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 01:13:42 +0000 Subject: [PATCH 262/471] chore(deps): update dependency @types/node to v20.14.10 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1877236ad..23b6c5588 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4130,11 +4130,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6": - version: 20.14.9 - resolution: "@types/node@npm:20.14.9" + version: 20.14.10 + resolution: "@types/node@npm:20.14.10" dependencies: undici-types: ~5.26.4 - checksum: 5e9eda1ac8c6cc6bcd1063903ae195eaede9aad1bdad00408a919409cfbcdd2d6535aa3d50346f0d385528f9e03dafc7d1b3bad25aedb1dcd79a6ad39d06c35d + checksum: 2f397d393de8cddb126e0b7999402ea450215ac69d49666ddef4f730a73325054499ce7345f86095e7b935c55b2e02139f3b8b9afc72fb978ed29edf6bb956b0 languageName: node linkType: hard From 95a69e540ba226c155b830c3fd3034ec0fbe6625 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 01:14:03 +0000 Subject: [PATCH 263/471] chore(deps): update dependency rimraf to v5.0.9 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 23b6c5588..70d9e133c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11804,13 +11804,13 @@ __metadata: linkType: hard "rimraf@npm:^5.0.5": - version: 5.0.7 - resolution: "rimraf@npm:5.0.7" + version: 5.0.9 + resolution: "rimraf@npm:5.0.9" dependencies: glob: ^10.3.7 bin: rimraf: dist/esm/bin.mjs - checksum: 884852abf8aefd4667448d87bdab04120a8641266c828cf382ac811713547eda18f81799d2146ffec3178f357d83d44ec01c10095949c82e23551660732bf14f + checksum: e6dd5007e34181e1fa732437499d798035b2f3313887435cb855c5c9055bf9646795fc1c63ef843de830df8577cd9862df2dabf913fe08dcc1758c96de4a4fdb languageName: node linkType: hard From 7de92e165a3a771d14808671681a59680442f5eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 03:40:34 +0000 Subject: [PATCH 264/471] chore(deps): update dependency typescript to v5.5.3 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 70d9e133c..da20c68f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13126,22 +13126,22 @@ __metadata: linkType: hard "typescript@npm:^5.0.4, typescript@npm:^5.3.3, typescript@npm:^5.4.4": - version: 5.5.2 - resolution: "typescript@npm:5.5.2" + version: 5.5.3 + resolution: "typescript@npm:5.5.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 9c5a7982dadcb2d38d129c575dd38645ae11588ae0d4a12852fb04482bbc5a1660b2371e48fd5b33b6b605cc57cefe777670054546856945a05e77bd22c8c2cd + checksum: 4b4f14313484d5c86064d04ba892544801fa551f5cf72719b540b498056fec7fc192d0bbdb2ba1448e759b1548769956da9e43e7c16781e8d8856787b0575004 languageName: node linkType: hard "typescript@patch:typescript@^5.0.4#~builtin, typescript@patch:typescript@^5.3.3#~builtin, typescript@patch:typescript@^5.4.4#~builtin": - version: 5.5.2 - resolution: "typescript@patch:typescript@npm%3A5.5.2#~builtin::version=5.5.2&hash=379a07" + version: 5.5.3 + resolution: "typescript@patch:typescript@npm%3A5.5.3#~builtin::version=5.5.3&hash=379a07" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d8c8af1adb92ef36998cc9293ad8607dda68564ecc2f315a7298d6d40edae1906e0ed88e0b2b02da686adc61d638cbecb82b4c694d5bccc621b8baf6e6274f7c + checksum: 3c0f7fe66e0e3a5f6b531b3e20bfe4a846718d20c299a49f39d4594e0bedcf5820cb98b49a9c883f2dde7dc6942affa2c95a775ee0221ca1ef143147761b0e80 languageName: node linkType: hard From 872aca18762e023572bfae97686da4d8791962f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 01:20:28 +0000 Subject: [PATCH 265/471] chore(deps): update dependency vite to v5.3.3 --- yarn.lock | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index da20c68f1..6ca83d96e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11077,6 +11077,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.39": + version: 8.4.39 + resolution: "postcss@npm:8.4.39" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.1 + source-map-js: ^1.2.0 + checksum: 14b130c90f165961772bdaf99c67f907f3d16494adf0868e57ef68baa67e0d1f6762db9d41ab0f4d09bab6fb7888588dba3596afd1a235fd5c2d43fba7006ac6 + languageName: node + linkType: hard + "precinct@npm:^11.0.5": version: 11.0.5 resolution: "precinct@npm:11.0.5" @@ -13377,12 +13388,12 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.3.2 - resolution: "vite@npm:5.3.2" + version: 5.3.3 + resolution: "vite@npm:5.3.3" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 - postcss: ^8.4.38 + postcss: ^8.4.39 rollup: ^4.13.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -13412,7 +13423,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: d6872cb72701ec4b8d8dbccc5deacb5af03c3f247df02750787d6dcf4e49e207effed7a06e4f103008a918188cdf0789ff7348db451ebd0d59ef1a22ae4a267d + checksum: 1a54b678c03b52be934b0db95295aa573819063fad9e13f148936cfc4006d081a6790fdd2dbe111b09b75b9a8d49f15e0788c58b86156d238ab3a0c1cc1a941f languageName: node linkType: hard From 08a612fca6fc6d56b266ce9d6e8cec897e25e0fb Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 28 Jun 2024 23:28:24 +0900 Subject: [PATCH 266/471] checkpoint: Add import mappings menu (#121) --- .../toolbar/ExportMappingFileDropdownItem.tsx | 2 +- .../toolbar/ImportMappingFileDropdownItem.tsx | 45 +++++++++++++++++++ .../toolbar/MainMenuToolbarItem.tsx | 2 + .../services/mapping-serializer.service.ts | 3 +- 4 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx diff --git a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx index ea74c9059..14c7bc70f 100644 --- a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx @@ -48,7 +48,7 @@ export const ExportMappingFileDropdownItem: FunctionComponent<{ return ( <> } onClick={handleMenuClick} data-testid="export-mappings-button"> - Export the current mappings (.xsl) + Export current mappings (.xsl) { + const { mappingTree, refreshMappingTree } = useDataMapper(); + + const { files, onClick, HiddenFileInput } = useFilePicker({ + maxFileSize: 1, + }); + const previouslyUploadedFiles = useRef(null); + + const onImport = useCallback( + (file: File) => { + readFileAsString(file).then((content) => { + MappingSerializerService.deserialize(mappingTree, content); + refreshMappingTree(); + alert('TODO'); + }); + }, + [mappingTree, refreshMappingTree], + ); + + useEffect(() => { + if (previouslyUploadedFiles.current !== files) { + previouslyUploadedFiles.current = files; + if (files?.length === 1) { + onImport(files[0]); + } + } + }, [files, onImport]); + + return ( + <> + } onClick={onClick} data-testid="import-mappings-button"> + Import mappings (.xsl) + + + + ); +}; diff --git a/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx b/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx index f793c5d5e..f82da8673 100644 --- a/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx +++ b/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx @@ -2,6 +2,7 @@ import { FunctionComponent } from 'react'; import { useToggle } from '../../hooks'; import { Dropdown, DropdownList, MenuToggle, ToolbarItem } from '@patternfly/react-core'; import { ExportMappingFileDropdownItem } from './ExportMappingFileDropdownItem'; +import { ImportMappingFileDropdownItem } from './ImportMappingFileDropdownItem'; export const MainMenuToolbarItem: FunctionComponent = () => { const { state: isOpen, toggle: onToggle, toggleOff } = useToggle(false); @@ -18,6 +19,7 @@ export const MainMenuToolbarItem: FunctionComponent = () => { isPlain={true} > + diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 95c878f6a..49689ce8b 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -177,7 +177,8 @@ export class MappingSerializerService { } } - static deserialize(xslt: string): MappingTree { + static deserialize(mappingTree: MappingTree, xslt: string): MappingTree { + mappingTree.children = []; const xsltDoc = new DOMParser().parseFromString(xslt, 'application/xml'); const template = xsltDoc.getElementsByTagNameNS(NS_XSL, 'template')[0]; template.localName; From c13bb60b4684a08dd156467725d5bda315f51d79 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 03:41:19 +0000 Subject: [PATCH 267/471] fix(deps): update @patternfly to v5.3.4 --- yarn.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6ca83d96e..0b2589ab9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3166,11 +3166,11 @@ __metadata: linkType: hard "@patternfly/react-code-editor@npm:^5.2.3": - version: 5.3.3 - resolution: "@patternfly/react-code-editor@npm:5.3.3" + version: 5.3.4 + resolution: "@patternfly/react-code-editor@npm:5.3.4" dependencies: "@monaco-editor/react": ^4.6.0 - "@patternfly/react-core": ^5.3.3 + "@patternfly/react-core": ^5.3.4 "@patternfly/react-icons": ^5.3.2 "@patternfly/react-styles": ^5.3.1 react-dropzone: 14.2.3 @@ -3178,13 +3178,13 @@ __metadata: peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: aab024e365402f74b7efa4a65849b728464093825c4dc631d94c73525db7c1b2067c3eb076cec1229d91181f2c18d7d01c03555cb927faf40a54cb3921480e0f + checksum: 7f01e63a70441ada29756640aeeee04e47458fe625d6cf01b69bdfb48a8cef2df4385bfc25f6e6c5ee076efe192030a7ce6d6bb83a6d13dddf8d8f4ee7dd52b8 languageName: node linkType: hard -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.3.3": - version: 5.3.3 - resolution: "@patternfly/react-core@npm:5.3.3" +"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.3.4": + version: 5.3.4 + resolution: "@patternfly/react-core@npm:5.3.4" dependencies: "@patternfly/react-icons": ^5.3.2 "@patternfly/react-styles": ^5.3.1 @@ -3195,7 +3195,7 @@ __metadata: peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 5af2b78ec3b5f7e56d28e150a5596b02cbc87cc1da7c6cb08517768ea165a2489847c4511cf1bc06411d7609da74c0144e0e0897171ac7d355624a576d471cc7 + checksum: 72c37cb99befd927a2015531018e594ea0d2e1bbb26651cdfd7da7a68eac7c9e3bfe928d85dddc0093d4ab64cde48653373dbe24fff27916f2b2527d4be2b8ee languageName: node linkType: hard @@ -3234,10 +3234,10 @@ __metadata: linkType: hard "@patternfly/react-table@npm:^5.1.2": - version: 5.3.3 - resolution: "@patternfly/react-table@npm:5.3.3" + version: 5.3.4 + resolution: "@patternfly/react-table@npm:5.3.4" dependencies: - "@patternfly/react-core": ^5.3.3 + "@patternfly/react-core": ^5.3.4 "@patternfly/react-icons": ^5.3.2 "@patternfly/react-styles": ^5.3.1 "@patternfly/react-tokens": ^5.3.1 @@ -3246,7 +3246,7 @@ __metadata: peerDependencies: react: ^17 || ^18 react-dom: ^17 || ^18 - checksum: 6e0bb878bab665e9b611ffa8dbf36a2fce27eb4c16ba7a2abe714ad5b4e96f68861b002a30ee582387779b39b1a7585fc935e6f9eaf1c85dc97c6bc65fdc2884 + checksum: 40a72e827533d97b8f4ed789535c1329356a13512e7141393ea518002cca7c801d781dfbd474b3820f457d59385552dc10dea58060d8335e8308a9911a720438 languageName: node linkType: hard From d25cba08100322947f77127218cb1b767e97b42c Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 9 Jul 2024 13:52:06 +0900 Subject: [PATCH 268/471] fix --- .../toolbar/ImportMappingFileDropdownItem.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx index ce7bc9586..015a98bad 100644 --- a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx @@ -6,7 +6,13 @@ import { useDataMapper } from '../../hooks'; import { useFilePicker } from 'react-sage'; import { readFileAsString } from '../../util'; -export const ImportMappingFileDropdownItem: FunctionComponent = () => { +type ImportMappingFileDropdownItemProps = { + onComplete: () => void; +}; + +export const ImportMappingFileDropdownItem: FunctionComponent = ({ + onComplete, +}) => { const { mappingTree, refreshMappingTree } = useDataMapper(); const { files, onClick, HiddenFileInput } = useFilePicker({ @@ -20,9 +26,10 @@ export const ImportMappingFileDropdownItem: FunctionComponent = () => { MappingSerializerService.deserialize(mappingTree, content); refreshMappingTree(); alert('TODO'); + onComplete(); }); }, - [mappingTree, refreshMappingTree], + [mappingTree, onComplete, refreshMappingTree], ); useEffect(() => { From 946592291c1d3efe41c5d6f7fdddc90231b035d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 04:56:33 +0000 Subject: [PATCH 269/471] fix(deps): update dependency xml-formatter to v3.6.3 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0b2589ab9..9350fd7f1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13712,11 +13712,11 @@ __metadata: linkType: hard "xml-formatter@npm:^3.6.2": - version: 3.6.2 - resolution: "xml-formatter@npm:3.6.2" + version: 3.6.3 + resolution: "xml-formatter@npm:3.6.3" dependencies: - xml-parser-xo: ^4.1.0 - checksum: 6ca632b136d47f68b12be88e5543f859cdc754c9e1c1386c68b8c7803f9b894c8ec19f51bdcbfa957d782358aa19778b2ef46702f4120a78920661b683033290 + xml-parser-xo: ^4.1.2 + checksum: e4c6927d30de9e82f69ea1752d93b9e31e5eb308c2261e039272a04cdf1120a03cf01aea5cbb01c4197a1dee9dc67b04bf91a24acd6a1abe52b4fcb7ac843086 languageName: node linkType: hard @@ -13727,10 +13727,10 @@ __metadata: languageName: node linkType: hard -"xml-parser-xo@npm:^4.1.0": - version: 4.1.1 - resolution: "xml-parser-xo@npm:4.1.1" - checksum: f726f4416d501eb9b197a7a34178aeaee9ba9a53babf61e78265240f8a6f44bd099a15c76d2610a9519c9d1dcc812bb773ae8a00df39019f911f24e1ecff0cdf +"xml-parser-xo@npm:^4.1.2": + version: 4.1.2 + resolution: "xml-parser-xo@npm:4.1.2" + checksum: 732aaeb54e01bf21036a7f711147dceb693a2042b657ffd98166abb4c124946b3e41f2d3e5f3571398cedde7fbd99b346821c4d44d5fed5f86bac506c8a06a2a languageName: node linkType: hard From 016219a9f3ceffcf8edd0861d31be9a0d54c769c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 01:20:55 +0000 Subject: [PATCH 270/471] chore(deps): update @lerna-lite to v3.7.0 --- yarn.lock | 515 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 385 insertions(+), 130 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9350fd7f1..7412bc08c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2339,6 +2339,13 @@ __metadata: languageName: node linkType: hard +"@isaacs/string-locale-compare@npm:^1.1.0": + version: 1.1.0 + resolution: "@isaacs/string-locale-compare@npm:1.1.0" + checksum: 7287da5d11497b82c542d3c2abe534808015be4f4883e71c26853277b5456f6bbe4108535db847a29f385ad6dc9318ffb0f55ee79bb5f39993233d7dccf8751d + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -2669,13 +2676,13 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.6.0, @lerna-lite/cli@npm:^3.0.0": - version: 3.6.0 - resolution: "@lerna-lite/cli@npm:3.6.0" +"@lerna-lite/cli@npm:3.7.0, @lerna-lite/cli@npm:^3.0.0": + version: 3.7.0 + resolution: "@lerna-lite/cli@npm:3.7.0" dependencies: - "@lerna-lite/core": 3.6.0 - "@lerna-lite/init": 3.6.0 - "@lerna-lite/npmlog": 3.6.0 + "@lerna-lite/core": 3.7.0 + "@lerna-lite/init": 3.7.0 + "@lerna-lite/npmlog": 3.7.0 dedent: ^1.5.3 dotenv: ^16.4.5 import-local: ^3.1.0 @@ -2696,15 +2703,15 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 2c56e74a81f843011af12dd1c9dc1920cf059e73cc123ee6f574b2f29af9141e59a4f1555569bb74169c540efa75970a47333ef2bf09c0d241a7c04b79a179ef + checksum: 071be57f7c25d9c7f6c606ca1be321806c3440d084ce235a22425e68a60210ed903b790e5eeec44641efbd6632c389038a62a8931d5fc29aa24f25fc85abe961 languageName: node linkType: hard -"@lerna-lite/core@npm:3.6.0": - version: 3.6.0 - resolution: "@lerna-lite/core@npm:3.6.0" +"@lerna-lite/core@npm:3.7.0": + version: 3.7.0 + resolution: "@lerna-lite/core@npm:3.7.0" dependencies: - "@lerna-lite/npmlog": ^3.6.0 + "@lerna-lite/npmlog": ^3.7.0 "@npmcli/run-script": ^8.1.0 chalk: ^5.3.0 clone-deep: ^4.0.1 @@ -2714,8 +2721,8 @@ __metadata: execa: ^8.0.1 fs-extra: ^11.2.0 glob-parent: ^6.0.2 - globby: ^14.0.1 - inquirer: ^9.3.0 + globby: ^14.0.2 + inquirer: ^9.3.4 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 @@ -2730,25 +2737,25 @@ __metadata: write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 write-package: ^7.0.1 - checksum: 66e98c92bc424d1681433ee241f28f2cf5dd90bbf43eb2d086d0bacfb80f81f7e8de07379819732281c379a2921ce41bdb9436d541f8a411c7ae14548c2a8ab2 + checksum: 328a251334a08cc49ebc529d035397843f90611702c52b9e306678ef59498878b2a418495fc66dbd437753482d9a26899258053a1762c037b4895ec99eae3bb9 languageName: node linkType: hard -"@lerna-lite/init@npm:3.6.0": - version: 3.6.0 - resolution: "@lerna-lite/init@npm:3.6.0" +"@lerna-lite/init@npm:3.7.0": + version: 3.7.0 + resolution: "@lerna-lite/init@npm:3.7.0" dependencies: - "@lerna-lite/core": 3.6.0 + "@lerna-lite/core": 3.7.0 fs-extra: ^11.2.0 p-map: ^7.0.2 write-json-file: ^5.0.0 - checksum: ba22955f05d2a5877dd072e75a3cbffe417d30d804d6ab9a1afbdaf5497566768c0506082e9454df8329c0cd4568d4a4fea52d6cc63f3dcbf8b4a584e9b2fdab + checksum: 6661f877074dea63ba2b1feb6ea2633b59770a8d962b2e4351004742e6974b4d81d3f11fae2f07f54820b0fbb78bc98b7cacfa3e54b460479d6aee8a41cb143c languageName: node linkType: hard -"@lerna-lite/npmlog@npm:3.6.0, @lerna-lite/npmlog@npm:^3.6.0": - version: 3.6.0 - resolution: "@lerna-lite/npmlog@npm:3.6.0" +"@lerna-lite/npmlog@npm:3.7.0, @lerna-lite/npmlog@npm:^3.7.0": + version: 3.7.0 + resolution: "@lerna-lite/npmlog@npm:3.7.0" dependencies: aproba: ^2.0.0 color-support: ^1.1.3 @@ -2756,21 +2763,22 @@ __metadata: has-unicode: ^2.0.1 set-blocking: ^2.0.0 signal-exit: ^4.1.0 - string-width: ^7.1.0 + string-width: ^7.2.0 strip-ansi: ^7.1.0 wide-align: ^1.1.5 - checksum: 2ee6c428060f59ffb5e828b1b445ba3190746bb0ccd078d4061d9232e3d22e7d00a46bbfcf94ea28337df319f48d989097aadc8d091368f79019273187ef710b + checksum: aa652f71189455ade5a9d744a39f53982dd14f0233974754deb4e6b714d91d02d9365152239495dd8af3790843e64711d2b117d691270dfc6119cf1803f6ccd8 languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.6.0 - resolution: "@lerna-lite/publish@npm:3.6.0" - dependencies: - "@lerna-lite/cli": 3.6.0 - "@lerna-lite/core": 3.6.0 - "@lerna-lite/npmlog": ^3.6.0 - "@lerna-lite/version": 3.6.0 + version: 3.7.0 + resolution: "@lerna-lite/publish@npm:3.7.0" + dependencies: + "@lerna-lite/cli": 3.7.0 + "@lerna-lite/core": 3.7.0 + "@lerna-lite/npmlog": ^3.7.0 + "@lerna-lite/version": 3.7.0 + "@npmcli/arborist": ^7.5.3 "@npmcli/package-json": ^5.2.0 byte-size: ^8.1.1 chalk: ^5.3.0 @@ -2782,7 +2790,7 @@ __metadata: libnpmpublish: ^9.0.9 normalize-path: ^3.0.0 npm-package-arg: ^11.0.2 - npm-packlist: ^5.1.3 + npm-packlist: ^8.0.2 npm-registry-fetch: ^17.1.0 p-map: ^7.0.2 p-pipe: ^4.0.0 @@ -2791,17 +2799,17 @@ __metadata: ssri: ^10.0.6 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: fba825b58d9b0629a4b6254e9e58cb7895bdadbf5753acfc6148d4f75ed1a5b6802d5d001775615ca05e10fe882467c092f69e7aca4bf73bb068431bdc33537f + checksum: 53a6dfe1d58656cfbde28b2969c76cd87c312fb00747adf4947d01fd4dc1788d97d82fefa933f9e92954e0cf8c447106e8299095ffcd372f739be9f915548aa1 languageName: node linkType: hard -"@lerna-lite/version@npm:3.6.0, @lerna-lite/version@npm:^3.0.0": - version: 3.6.0 - resolution: "@lerna-lite/version@npm:3.6.0" +"@lerna-lite/version@npm:3.7.0, @lerna-lite/version@npm:^3.0.0": + version: 3.7.0 + resolution: "@lerna-lite/version@npm:3.7.0" dependencies: - "@lerna-lite/cli": 3.6.0 - "@lerna-lite/core": 3.6.0 - "@lerna-lite/npmlog": ^3.6.0 + "@lerna-lite/cli": 3.7.0 + "@lerna-lite/core": 3.7.0 + "@lerna-lite/npmlog": ^3.7.0 "@octokit/plugin-enterprise-rest": ^6.0.1 "@octokit/rest": ^21.0.0 chalk: ^5.3.0 @@ -2822,7 +2830,7 @@ __metadata: new-github-release-url: ^2.0.0 node-fetch: ^3.3.2 npm-package-arg: ^11.0.2 - p-limit: ^5.0.0 + p-limit: ^6.0.0 p-map: ^7.0.2 p-pipe: ^4.0.0 p-reduce: ^3.0.0 @@ -2832,7 +2840,7 @@ __metadata: temp-dir: ^3.0.0 uuid: ^10.0.0 write-json-file: ^5.0.0 - checksum: bce2bf223cfe59670d143b10800265ed9f8c1d4ce4cbb227872486adbbf911b6542b468d2b6a2231c847049d4e39b7c2c7273b5e1ebb4c7749da8a9bea513955 + checksum: dbcfd67d151fbfa7133b6ac93278d5ea4fc458d015629c20ee940fe27699488dbf801247ea8b973a8b46d59bba4ced88d7f5fb95d946aca173776e94c8b11d79 languageName: node linkType: hard @@ -2900,6 +2908,51 @@ __metadata: languageName: node linkType: hard +"@npmcli/arborist@npm:^7.5.3": + version: 7.5.3 + resolution: "@npmcli/arborist@npm:7.5.3" + dependencies: + "@isaacs/string-locale-compare": ^1.1.0 + "@npmcli/fs": ^3.1.1 + "@npmcli/installed-package-contents": ^2.1.0 + "@npmcli/map-workspaces": ^3.0.2 + "@npmcli/metavuln-calculator": ^7.1.1 + "@npmcli/name-from-folder": ^2.0.0 + "@npmcli/node-gyp": ^3.0.0 + "@npmcli/package-json": ^5.1.0 + "@npmcli/query": ^3.1.0 + "@npmcli/redact": ^2.0.0 + "@npmcli/run-script": ^8.1.0 + bin-links: ^4.0.4 + cacache: ^18.0.3 + common-ancestor-path: ^1.0.1 + hosted-git-info: ^7.0.2 + json-parse-even-better-errors: ^3.0.2 + json-stringify-nice: ^1.1.4 + lru-cache: ^10.2.2 + minimatch: ^9.0.4 + nopt: ^7.2.1 + npm-install-checks: ^6.2.0 + npm-package-arg: ^11.0.2 + npm-pick-manifest: ^9.0.1 + npm-registry-fetch: ^17.0.1 + pacote: ^18.0.6 + parse-conflict-json: ^3.0.0 + proc-log: ^4.2.0 + proggy: ^2.0.0 + promise-all-reject-late: ^1.0.0 + promise-call-limit: ^3.0.1 + read-package-json-fast: ^3.0.2 + semver: ^7.3.7 + ssri: ^10.0.6 + treeverse: ^3.0.0 + walk-up-path: ^3.0.1 + bin: + arborist: bin/index.js + checksum: 5fa70eb628427e52f6f074ee4e9ccd5794eeac0b416076d101b299250faf38aabac2b6230e214fe5a6b9f119b8e15312f62e001c15ba2cca3c72c50fe0f03c80 + languageName: node + linkType: hard + "@npmcli/fs@npm:^3.1.0": version: 3.1.0 resolution: "@npmcli/fs@npm:3.1.0" @@ -2909,6 +2962,15 @@ __metadata: languageName: node linkType: hard +"@npmcli/fs@npm:^3.1.1": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: ^7.3.5 + checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 + languageName: node + linkType: hard + "@npmcli/git@npm:^5.0.0": version: 5.0.4 resolution: "@npmcli/git@npm:5.0.4" @@ -2937,6 +2999,50 @@ __metadata: languageName: node linkType: hard +"@npmcli/installed-package-contents@npm:^2.1.0": + version: 2.1.0 + resolution: "@npmcli/installed-package-contents@npm:2.1.0" + dependencies: + npm-bundled: ^3.0.0 + npm-normalize-package-bin: ^3.0.0 + bin: + installed-package-contents: bin/index.js + checksum: d0f307e0c971a4ffaea44d4f38d53b57e19222413f338bab26d4321c4a7b9098318d74719dd1f8747a6de0575ac0ba29aeb388edf6599ac8299506947f53ffb6 + languageName: node + linkType: hard + +"@npmcli/map-workspaces@npm:^3.0.2": + version: 3.0.6 + resolution: "@npmcli/map-workspaces@npm:3.0.6" + dependencies: + "@npmcli/name-from-folder": ^2.0.0 + glob: ^10.2.2 + minimatch: ^9.0.0 + read-package-json-fast: ^3.0.0 + checksum: bdb09ee1d044bb9b2857d9e2d7ca82f40783a8549b5a7e150e25f874ee354cdbc8109ad7c3df42ec412f7057d95baa05920c4d361c868a93a42146b8e4390d3d + languageName: node + linkType: hard + +"@npmcli/metavuln-calculator@npm:^7.1.1": + version: 7.1.1 + resolution: "@npmcli/metavuln-calculator@npm:7.1.1" + dependencies: + cacache: ^18.0.0 + json-parse-even-better-errors: ^3.0.0 + pacote: ^18.0.0 + proc-log: ^4.1.0 + semver: ^7.3.5 + checksum: c6297e40f914100c4effb574c55ef95cbf15d0c28e73e39f29de317b12a3d3d82571f8aca3f7635cc4c8e97bff35942c71c59a79e1a8abc93475744e61abc399 + languageName: node + linkType: hard + +"@npmcli/name-from-folder@npm:^2.0.0": + version: 2.0.0 + resolution: "@npmcli/name-from-folder@npm:2.0.0" + checksum: fb3ef891aa57315fb6171866847f298577c8bda98a028e93e458048477133e142b4eb45ce9f3b80454f7c257612cb01754ee782d608507698dd712164436f5bd + languageName: node + linkType: hard + "@npmcli/node-gyp@npm:^3.0.0": version: 3.0.0 resolution: "@npmcli/node-gyp@npm:3.0.0" @@ -2998,6 +3104,15 @@ __metadata: languageName: node linkType: hard +"@npmcli/query@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/query@npm:3.1.0" + dependencies: + postcss-selector-parser: ^6.0.10 + checksum: 33c018bfcc6d64593e7969847d0442beab4e8a42b6c9f932237c9fd135c95ab55de5c4b5d5d66302dd9fc3c748bc4ead780d3595e5d586fedf9859ed6b5f2744 + languageName: node + linkType: hard + "@npmcli/redact@npm:^2.0.0": version: 2.0.0 resolution: "@npmcli/redact@npm:2.0.0" @@ -4998,6 +5113,18 @@ __metadata: languageName: node linkType: hard +"bin-links@npm:^4.0.4": + version: 4.0.4 + resolution: "bin-links@npm:4.0.4" + dependencies: + cmd-shim: ^6.0.0 + npm-normalize-package-bin: ^3.0.0 + read-cmd-shim: ^4.0.0 + write-file-atomic: ^5.0.0 + checksum: 9fca1fddaa3c1c9f7efd6fd7a6d991e3d8f6aaa9de5d0b9355469c2c594d8d06c9b2e0519bb0304202c14ddbe832d27b6d419d55cea4340e2c26116f9190e5c9 + languageName: node + linkType: hard + "binary-extensions@npm:^2.0.0": version: 2.2.0 resolution: "binary-extensions@npm:2.2.0" @@ -5129,6 +5256,26 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^18.0.3": + version: 18.0.3 + resolution: "cacache@npm:18.0.3" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b717fd9b36e9c3279bfde4545c3a8f6d5a539b084ee26a9504d48f83694beb724057d26e090b97540f9cc62bea18b9f6cf671c50e18fb7dac60eda9db691714f + languageName: node + linkType: hard + "call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" @@ -5361,6 +5508,13 @@ __metadata: languageName: node linkType: hard +"cmd-shim@npm:^6.0.0": + version: 6.0.3 + resolution: "cmd-shim@npm:6.0.3" + checksum: bd79ac1505fea77cba0caf271c16210ebfbe50f348a1907f4700740876ab2157e00882b9baa685a9fcf9bc92e08a87e21bd757f45a6938f00290422f80f7d27a + languageName: node + linkType: hard + "co@npm:^4.6.0": version: 4.6.0 resolution: "co@npm:4.6.0" @@ -5470,6 +5624,13 @@ __metadata: languageName: node linkType: hard +"common-ancestor-path@npm:^1.0.1": + version: 1.0.1 + resolution: "common-ancestor-path@npm:1.0.1" + checksum: 1d2e4186067083d8cc413f00fc2908225f04ae4e19417ded67faa6494fb313c4fcd5b28a52326d1a62b466e2b3a4325e92c31133c5fee628cdf8856b3a57c3d7 + languageName: node + linkType: hard + "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" @@ -7776,19 +7937,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.1": - version: 8.1.0 - resolution: "glob@npm:8.1.0" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 - languageName: node - linkType: hard - "global-modules@npm:^2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -7858,9 +8006,9 @@ __metadata: languageName: node linkType: hard -"globby@npm:^14.0.1": - version: 14.0.1 - resolution: "globby@npm:14.0.1" +"globby@npm:^14.0.2": + version: 14.0.2 + resolution: "globby@npm:14.0.2" dependencies: "@sindresorhus/merge-streams": ^2.1.0 fast-glob: ^3.3.2 @@ -7868,7 +8016,7 @@ __metadata: path-type: ^5.0.0 slash: ^5.1.0 unicorn-magic: ^0.1.0 - checksum: 33568444289afb1135ad62d52d5e8412900cec620e3b6ece533afa46d004066f14b97052b643833d7cf4ee03e7fac571430130cde44c333df91a45d313105170 + checksum: 2cee79efefca4383a825fc2fcbdb37e5706728f2d39d4b63851927c128fff62e6334ef7d4d467949d411409ad62767dc2d214e0f837a0f6d4b7290b6711d485c languageName: node linkType: hard @@ -8036,6 +8184,15 @@ __metadata: languageName: node linkType: hard +"hosted-git-info@npm:^7.0.2": + version: 7.0.2 + resolution: "hosted-git-info@npm:7.0.2" + dependencies: + lru-cache: ^10.0.1 + checksum: 467cf908a56556417b18e86ae3b8dee03c2360ef1d51e61c4028fe87f6f309b6ff038589c94b5666af207da9d972d5107698906aabeb78aca134641962a5c6f8 + languageName: node + linkType: hard + "html-encoding-sniffer@npm:^3.0.0": version: 3.0.0 resolution: "html-encoding-sniffer@npm:3.0.0" @@ -8155,15 +8312,6 @@ __metadata: languageName: node linkType: hard -"ignore-walk@npm:^5.0.1": - version: 5.0.1 - resolution: "ignore-walk@npm:5.0.1" - dependencies: - minimatch: ^5.0.1 - checksum: 1a4ef35174653a1aa6faab3d9f8781269166536aee36a04946f6e2b319b2475c1903a75ed42f04219274128242f49d0a10e20c4354ee60d9548e97031451150b - languageName: node - linkType: hard - "ignore-walk@npm:^6.0.4": version: 6.0.4 resolution: "ignore-walk@npm:6.0.4" @@ -8254,9 +8402,9 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.3.0": - version: 9.3.1 - resolution: "inquirer@npm:9.3.1" +"inquirer@npm:^9.3.4": + version: 9.3.5 + resolution: "inquirer@npm:9.3.5" dependencies: "@inquirer/figures": ^1.0.3 ansi-escapes: ^4.3.2 @@ -8264,13 +8412,13 @@ __metadata: external-editor: ^3.1.0 mute-stream: 1.0.0 ora: ^5.4.1 - picocolors: ^1.0.1 run-async: ^3.0.0 rxjs: ^7.8.1 string-width: ^4.2.3 strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 - checksum: c225e98080fe443ff973928ea98267f14ddc59fedf37a19a2e3635f1710045fc134dc7e5fd34a2f948f2e6aaec9138dee027c1ef2cbd68e6d2c281088e0fbb80 + yoctocolors-cjs: ^2.1.2 + checksum: 83480ebbf52b2e42fce50cf701eaf10ba682ce3063c8acec8da3710e707dc646d609743247c7061a06169aa1a1e64d02babeab1707022d820ad46799afed75ec languageName: node linkType: hard @@ -9357,6 +9505,13 @@ __metadata: languageName: node linkType: hard +"json-parse-even-better-errors@npm:^3.0.2": + version: 3.0.2 + resolution: "json-parse-even-better-errors@npm:3.0.2" + checksum: 6f04ea6c9ccb783630a59297959247e921cc90b917b8351197ca7fd058fccc7079268fd9362be21ba876fc26aa5039369dd0a2280aae49aae425784794a94927 + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -9378,6 +9533,13 @@ __metadata: languageName: node linkType: hard +"json-stringify-nice@npm:^1.1.4": + version: 1.1.4 + resolution: "json-stringify-nice@npm:1.1.4" + checksum: 6ddf781148b46857ab04e97f47be05f14c4304b86eb5478369edbeacd070c21c697269964b982fc977e8989d4c59091103b1d9dc291aba40096d6cbb9a392b72 + languageName: node + linkType: hard + "json-stringify-safe@npm:^5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" @@ -9425,6 +9587,20 @@ __metadata: languageName: node linkType: hard +"just-diff-apply@npm:^5.2.0": + version: 5.5.0 + resolution: "just-diff-apply@npm:5.5.0" + checksum: ed6bbd59781542ccb786bd843038e4591e8390aa788075beb69d358051f68fbeb122bda050b7f42515d51fb64b907d5c7bea694a0543b87b24ce406cfb5f5bfa + languageName: node + linkType: hard + +"just-diff@npm:^6.0.0": + version: 6.0.2 + resolution: "just-diff@npm:6.0.2" + checksum: 1a0c7524f640cb88ab013862733e710f840927834208fd3b85cbc5da2ced97acc75e7dcfe493268ac6a6514c51dd8624d2fd9d057050efba3c02b81a6dcb7ff9 + languageName: node + linkType: hard + "keyv@npm:^4.5.3, keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -9670,6 +9846,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.2.2": + version: 10.4.1 + resolution: "lru-cache@npm:10.4.1" + checksum: 8acb35d9c2195ec98ec5002850750d7af45ae0cf19376e11a3a1655b3e5bccc0cc6b7192274bcabc9d42c6e2a9769033ffea0310e546c4e2cc55efe3a4b5da75 + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -9900,15 +10083,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" - dependencies: - brace-expansion: ^2.0.1 - checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 - languageName: node - linkType: hard - "minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" @@ -10266,6 +10440,17 @@ __metadata: languageName: node linkType: hard +"nopt@npm:^7.2.1": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: ^2.0.0 + bin: + nopt: bin/nopt.js + checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 + languageName: node + linkType: hard + "normalize-package-data@npm:^6.0.0": version: 6.0.0 resolution: "normalize-package-data@npm:6.0.0" @@ -10297,15 +10482,6 @@ __metadata: languageName: node linkType: hard -"npm-bundled@npm:^2.0.0": - version: 2.0.1 - resolution: "npm-bundled@npm:2.0.1" - dependencies: - npm-normalize-package-bin: ^2.0.0 - checksum: 7747293985c48c5268871efe691545b03731cb80029692000cbdb0b3344b9617be5187aa36281cabbe6b938e3651b4e87236d1c31f9e645eef391a1a779413e6 - languageName: node - linkType: hard - "npm-bundled@npm:^3.0.0": version: 3.0.0 resolution: "npm-bundled@npm:3.0.0" @@ -10315,7 +10491,7 @@ __metadata: languageName: node linkType: hard -"npm-install-checks@npm:^6.0.0": +"npm-install-checks@npm:^6.0.0, npm-install-checks@npm:^6.2.0": version: 6.3.0 resolution: "npm-install-checks@npm:6.3.0" dependencies: @@ -10324,13 +10500,6 @@ __metadata: languageName: node linkType: hard -"npm-normalize-package-bin@npm:^2.0.0": - version: 2.0.0 - resolution: "npm-normalize-package-bin@npm:2.0.0" - checksum: 7c5379f9b188b564c4332c97bdd9a5d6b7b15f02b5823b00989d6a0e6fb31eb0280f02b0a924f930e1fcaf00e60fae333aec8923d2a4c7747613c7d629d8aa25 - languageName: node - linkType: hard - "npm-normalize-package-bin@npm:^3.0.0": version: 3.0.1 resolution: "npm-normalize-package-bin@npm:3.0.1" @@ -10362,21 +10531,7 @@ __metadata: languageName: node linkType: hard -"npm-packlist@npm:^5.1.3": - version: 5.1.3 - resolution: "npm-packlist@npm:5.1.3" - dependencies: - glob: ^8.0.1 - ignore-walk: ^5.0.1 - npm-bundled: ^2.0.0 - npm-normalize-package-bin: ^2.0.0 - bin: - npm-packlist: bin/index.js - checksum: 94cc9c66740e8f80243301de85eb0a2cec5bbd570c3f26b6ad7af1a3eca155f7e810580dc7ea4448f12a8fd82f6db307e7132a5fe69e157eb45b325acadeb22a - languageName: node - linkType: hard - -"npm-packlist@npm:^8.0.0": +"npm-packlist@npm:^8.0.0, npm-packlist@npm:^8.0.2": version: 8.0.2 resolution: "npm-packlist@npm:8.0.2" dependencies: @@ -10397,6 +10552,18 @@ __metadata: languageName: node linkType: hard +"npm-pick-manifest@npm:^9.0.1": + version: 9.0.1 + resolution: "npm-pick-manifest@npm:9.0.1" + dependencies: + npm-install-checks: ^6.0.0 + npm-normalize-package-bin: ^3.0.0 + npm-package-arg: ^11.0.0 + semver: ^7.3.5 + checksum: acd53d99cb72b39dd2e6aefe32c08a0ba969622911865ff86555dba0cd6e67ca43ae72fd1962084e4344d88596f4faf75128b70347beb29613720445d4063c87 + languageName: node + linkType: hard + "npm-registry-fetch@npm:^17.0.0, npm-registry-fetch@npm:^17.0.1": version: 17.0.1 resolution: "npm-registry-fetch@npm:17.0.1" @@ -10614,12 +10781,12 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^5.0.0": - version: 5.0.0 - resolution: "p-limit@npm:5.0.0" +"p-limit@npm:^6.0.0": + version: 6.1.0 + resolution: "p-limit@npm:6.1.0" dependencies: - yocto-queue: ^1.0.0 - checksum: 87bf5837dee6942f0dbeff318436179931d9a97848d1b07dbd86140a477a5d2e6b90d9701b210b4e21fe7beaea2979dfde366e4f576fa644a59bd4d6a6371da7 + yocto-queue: ^1.1.1 + checksum: 0c98d8fc1006b70fc7423232a47e8d026dc69279b06fe7ff8b4c0cc8023de2b6bb8991b609d93c3dec691a7a362ab0f0157df521d931a01fec192a5e404b9ee5 languageName: node linkType: hard @@ -10711,7 +10878,7 @@ __metadata: languageName: node linkType: hard -"pacote@npm:^18.0.6": +"pacote@npm:^18.0.0, pacote@npm:^18.0.6": version: 18.0.6 resolution: "pacote@npm:18.0.6" dependencies: @@ -10754,6 +10921,17 @@ __metadata: languageName: node linkType: hard +"parse-conflict-json@npm:^3.0.0": + version: 3.0.1 + resolution: "parse-conflict-json@npm:3.0.1" + dependencies: + json-parse-even-better-errors: ^3.0.0 + just-diff: ^6.0.0 + just-diff-apply: ^5.2.0 + checksum: d8d2656bc02d4df36846366baec36b419da2fe944e31298719a4d28d28f772aa7cad2a69d01f6f329918e7c298ac481d1e6a9138d62d5662d5620a74f794af8f + languageName: node + linkType: hard + "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -11015,23 +11193,23 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.15": - version: 6.0.15 - resolution: "postcss-selector-parser@npm:6.0.15" +"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-selector-parser@npm:6.1.0" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 + checksum: 449f614e6706421be307d8638183c61ba45bc3b460fe3815df8971dbb4d59c4087181940d879daee4a7a2daf3d86e915db1cce0c006dd68ca75b4087079273bd languageName: node linkType: hard -"postcss-selector-parser@npm:^6.1.0": - version: 6.1.0 - resolution: "postcss-selector-parser@npm:6.1.0" +"postcss-selector-parser@npm:^6.0.15": + version: 6.0.15 + resolution: "postcss-selector-parser@npm:6.0.15" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 449f614e6706421be307d8638183c61ba45bc3b460fe3815df8971dbb4d59c4087181940d879daee4a7a2daf3d86e915db1cce0c006dd68ca75b4087079273bd + checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 languageName: node linkType: hard @@ -11180,7 +11358,7 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^4.2.0": +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": version: 4.2.0 resolution: "proc-log@npm:4.2.0" checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc @@ -11194,6 +11372,27 @@ __metadata: languageName: node linkType: hard +"proggy@npm:^2.0.0": + version: 2.0.0 + resolution: "proggy@npm:2.0.0" + checksum: 398f38c5e53d8f3dd8e1f67140dd1044dfde0a8e43edb2df55f7f38b958912841c78a970e61f2ee7222be4f3f1ee0da134e21d0eb537805cb1b10516555c7ac1 + languageName: node + linkType: hard + +"promise-all-reject-late@npm:^1.0.0": + version: 1.0.1 + resolution: "promise-all-reject-late@npm:1.0.1" + checksum: d7d61ac412352e2c8c3463caa5b1c3ca0f0cc3db15a09f180a3da1446e33d544c4261fc716f772b95e4c27d559cfd2388540f44104feb356584f9c73cfb9ffcb + languageName: node + linkType: hard + +"promise-call-limit@npm:^3.0.1": + version: 3.0.1 + resolution: "promise-call-limit@npm:3.0.1" + checksum: f1b3c4d3a9c5482ce27ec5f40311e1389adb9bb10c16166e61c96d29ab22c701691d5225bf6745a162858f45dfb46cc82275fd09e7aa57846fc446c7855c2f06 + languageName: node + linkType: hard + "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -11500,6 +11699,23 @@ __metadata: languageName: node linkType: hard +"read-cmd-shim@npm:^4.0.0": + version: 4.0.0 + resolution: "read-cmd-shim@npm:4.0.0" + checksum: 2fb5a8a38984088476f559b17c6a73324a5db4e77e210ae0aab6270480fd85c355fc990d1c79102e25e555a8201606ed12844d6e3cd9f35d6a1518791184e05b + languageName: node + linkType: hard + +"read-package-json-fast@npm:^3.0.0, read-package-json-fast@npm:^3.0.2": + version: 3.0.2 + resolution: "read-package-json-fast@npm:3.0.2" + dependencies: + json-parse-even-better-errors: ^3.0.0 + npm-normalize-package-bin: ^3.0.0 + checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 + languageName: node + linkType: hard + "read-pkg-up@npm:^10.0.0": version: 10.1.0 resolution: "read-pkg-up@npm:10.1.0" @@ -12387,7 +12603,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^7.0.0, string-width@npm:^7.1.0": +"string-width@npm:^7.0.0": version: 7.1.0 resolution: "string-width@npm:7.1.0" dependencies: @@ -12398,6 +12614,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.2.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" + dependencies: + emoji-regex: ^10.3.0 + get-east-asian-width: ^1.0.0 + strip-ansi: ^7.1.0 + checksum: 42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 + languageName: node + linkType: hard + "string.prototype.trim@npm:^1.2.8": version: 1.2.8 resolution: "string.prototype.trim@npm:1.2.8" @@ -12902,6 +13129,13 @@ __metadata: languageName: node linkType: hard +"treeverse@npm:^3.0.0": + version: 3.0.0 + resolution: "treeverse@npm:3.0.0" + checksum: 73168d9887fa57b0719218f176c5a3cfbaaf310922879acb4adf76665bc17dcdb6ed3e4163f0c27eee17e346886186a1515ea6f87e96cdc10df1dce13bf622a0 + languageName: node + linkType: hard + "ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -13436,6 +13670,13 @@ __metadata: languageName: node linkType: hard +"walk-up-path@npm:^3.0.1": + version: 3.0.1 + resolution: "walk-up-path@npm:3.0.1" + checksum: 9ffca02fe30fb65f6db531260582988c5e766f4c739cf86a6109380a7f791236b5d0b92b1dce37a6f73e22dca6bc9d93bf3700413e16251b2bd6bbd1ca2be316 + languageName: node + linkType: hard + "walkdir@npm:^0.4.1": version: 0.4.1 resolution: "walkdir@npm:0.4.1" @@ -13661,7 +13902,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^5.0.1": +"write-file-atomic@npm:^5.0.0, write-file-atomic@npm:^5.0.1": version: 5.0.1 resolution: "write-file-atomic@npm:5.0.1" dependencies: @@ -13837,3 +14078,17 @@ __metadata: checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 languageName: node linkType: hard + +"yocto-queue@npm:^1.1.1": + version: 1.1.1 + resolution: "yocto-queue@npm:1.1.1" + checksum: f2e05b767ed3141e6372a80af9caa4715d60969227f38b1a4370d60bffe153c9c5b33a862905609afc9b375ec57cd40999810d20e5e10229a204e8bde7ef255c + languageName: node + linkType: hard + +"yoctocolors-cjs@npm:^2.1.2": + version: 2.1.2 + resolution: "yoctocolors-cjs@npm:2.1.2" + checksum: 1c474d4b30a8c130e679279c5c2c33a0d48eba9684ffa0252cc64846c121fb56c3f25457fef902edbe1e2d7a7872130073a9fc8e795299d75e13fa3f5f548f1b + languageName: node + linkType: hard From 2df7ff3db092e234fb0cb94e5d9f72826e045b61 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 00:29:13 +0000 Subject: [PATCH 271/471] chore(deps): update dependency sass to v1.77.7 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7412bc08c..cde7826f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12183,15 +12183,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.77.6 - resolution: "sass@npm:1.77.6" + version: 1.77.7 + resolution: "sass@npm:1.77.7" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 9bd1cb9ec1f10b7df83ed6a4b3d8764fe9174ee422f1ea21c51bcd953f710deee57c649269f9cb1ad1e9dcc3b87efee62cd2b36aca9cc646d44fd9179300d5f3 + checksum: 64c98cbeb24fb42fb5f29137740a812747e0cfebc2f02b0b03108456930f2058b17b2cf78ddf3df3c958c4a6b6fef765e34a202e6e93670752970bf5a0dbe222 languageName: node linkType: hard From a733b12a89a47e56c785f91d6009db55ed144248 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 00:29:26 +0000 Subject: [PATCH 272/471] chore(deps): update dependency rimraf to v6 --- packages/xml-schema-ts/package.json | 2 +- yarn.lock | 69 ++++++++++++++++++++++++++--- 2 files changed, 63 insertions(+), 8 deletions(-) diff --git a/packages/xml-schema-ts/package.json b/packages/xml-schema-ts/package.json index f14cfdf8e..fe357815e 100644 --- a/packages/xml-schema-ts/package.json +++ b/packages/xml-schema-ts/package.json @@ -38,7 +38,7 @@ "eslint-plugin-jest": "^27.9.0", "eslint-plugin-prettier": "^5.1.3", "jest": "^29.7.0", - "rimraf": "^5.0.5", + "rimraf": "^6.0.0", "stylelint": "^16.2.1", "stylelint-prettier": "^5.0.0", "typescript": "^5.3.3", diff --git a/yarn.lock b/yarn.lock index cde7826f7..aea4b82f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1879,7 +1879,7 @@ __metadata: eslint-plugin-jest: ^27.9.0 eslint-plugin-prettier: ^5.1.3 jest: ^29.7.0 - rimraf: ^5.0.5 + rimraf: ^6.0.0 stylelint: ^16.2.1 stylelint-prettier: ^5.0.0 typescript: ^5.3.3 @@ -7892,7 +7892,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": +"glob@npm:^10.2.2, glob@npm:^10.3.10": version: 10.3.10 resolution: "glob@npm:10.3.10" dependencies: @@ -7923,6 +7923,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^11.0.0": + version: 11.0.0 + resolution: "glob@npm:11.0.0" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^4.0.1 + minimatch: ^10.0.0 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^2.0.0 + bin: + glob: dist/esm/bin.mjs + checksum: 8a2dd914d5776987be5244624d9491bbcaf19f2387e06783737003ff696ebfd2264190c47014f8709c1c02d8bc892f17660cf986c587b107e194c0a3151ab333 + languageName: node + linkType: hard + "glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -8920,6 +8936,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^4.0.1": + version: 4.0.1 + resolution: "jackspeak@npm:4.0.1" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 7989d19eddeff0631ef653df413e26290db77dc3791438bd12b56bed1c0b24d5d535fdfec13cf35775cd5b47f8ee57d36fd0bceaf2df672b1f523533fd4184cc + languageName: node + linkType: hard + "jest-canvas-mock@npm:^2.5.2": version: 2.5.2 resolution: "jest-canvas-mock@npm:2.5.2" @@ -9853,6 +9882,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^11.0.0": + version: 11.0.0 + resolution: "lru-cache@npm:11.0.0" + checksum: c29385f9369b1a566e1db9eda9a4b12f6507de906e5720ca12844dd775b7139c42b8e5837e7d5162bcc292ce4d3eecfa74ec2856c6afcc0caa2e3c9ea3a17f27 + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -10074,6 +10110,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.0.0": + version: 10.0.1 + resolution: "minimatch@npm:10.0.1" + dependencies: + brace-expansion: ^2.0.1 + checksum: f5b63c2f30606091a057c5f679b067f84a2cd0ffbd2dbc9143bda850afd353c7be81949ff11ae0c86988f07390eeca64efd7143ee05a0dab37f6c6b38a2ebb6c + languageName: node + linkType: hard + "minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -11064,6 +11109,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^2.0.0": + version: 2.0.0 + resolution: "path-scurry@npm:2.0.0" + dependencies: + lru-cache: ^11.0.0 + minipass: ^7.1.2 + checksum: 9953ce3857f7e0796b187a7066eede63864b7e1dfc14bf0484249801a5ab9afb90d9a58fc533ebb1b552d23767df8aa6a2c6c62caf3f8a65f6ce336a97bbb484 + languageName: node + linkType: hard + "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -12030,14 +12085,14 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^5.0.5": - version: 5.0.9 - resolution: "rimraf@npm:5.0.9" +"rimraf@npm:^6.0.0": + version: 6.0.0 + resolution: "rimraf@npm:6.0.0" dependencies: - glob: ^10.3.7 + glob: ^11.0.0 bin: rimraf: dist/esm/bin.mjs - checksum: e6dd5007e34181e1fa732437499d798035b2f3313887435cb855c5c9055bf9646795fc1c63ef843de830df8577cd9862df2dabf913fe08dcc1758c96de4a4fdb + checksum: a5502f3ff6c01e75cf4546b5915a5077bef46fde6f2e922a1ffdef0eec9056273ef952d03575255a5a85d2bb732acb58beefb2bc78ca90030dbc1a7dc1f08ec5 languageName: node linkType: hard From 302224f1fbdf6d99f6c68ee65ae1f144a3bfaa23 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2024 01:05:19 +0000 Subject: [PATCH 273/471] chore(deps): update dependency rimraf to v6.0.1 --- yarn.lock | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index aea4b82f9..d836632b1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12086,13 +12086,14 @@ __metadata: linkType: hard "rimraf@npm:^6.0.0": - version: 6.0.0 - resolution: "rimraf@npm:6.0.0" + version: 6.0.1 + resolution: "rimraf@npm:6.0.1" dependencies: glob: ^11.0.0 + package-json-from-dist: ^1.0.0 bin: rimraf: dist/esm/bin.mjs - checksum: a5502f3ff6c01e75cf4546b5915a5077bef46fde6f2e922a1ffdef0eec9056273ef952d03575255a5a85d2bb732acb58beefb2bc78ca90030dbc1a7dc1f08ec5 + checksum: 8ba5b84131c1344e9417cb7e8c05d8368bb73cbe5dd4c1d5eb49fc0b558209781658d18c450460e30607d0b7865bb067482839a2f343b186b07ae87715837e66 languageName: node linkType: hard From 322ffa1814f1df4ccf420b6fbfbc8e8417f7b65e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 00:25:31 +0000 Subject: [PATCH 274/471] chore(deps): update dependency @storybook/addon-actions to v8.2.2 --- yarn.lock | 37 ++++++------------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/yarn.lock b/yarn.lock index d836632b1..e239b7414 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3638,16 +3638,17 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.1.11 - resolution: "@storybook/addon-actions@npm:8.1.11" + version: 8.2.2 + resolution: "@storybook/addon-actions@npm:8.2.2" dependencies: - "@storybook/core-events": 8.1.11 "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 dequal: ^2.0.2 polished: ^4.2.2 uuid: ^9.0.0 - checksum: e4711bc4acdcad5402176e9715410a34e634ab3ce183eaf2589a18024e745292f78c276c015ae7074115766bf82b5d125833e518fc82a718188bb5f80ed345f7 + peerDependencies: + storybook: ^8.2.2 + checksum: a1a3395fa00654477d258df0328e148778d27bf4ce3a7364eb03a25574bdeaa428cef8b1fe99ebf148c67f34c8997ab25e77de65f7d1b2c717e7394628b53bae languageName: node linkType: hard @@ -3682,25 +3683,6 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:8.1.11": - version: 8.1.11 - resolution: "@storybook/core-events@npm:8.1.11" - dependencies: - "@storybook/csf": ^0.1.7 - ts-dedent: ^2.0.0 - checksum: 3b3231b299367def8d6d9ee8dc939ad145473bbd561d495f0dac3e5cd3adb93b7e87f1d0a6787917275f8dfae8193959c872336530930ad90207b6df5de37910 - languageName: node - linkType: hard - -"@storybook/csf@npm:^0.1.7": - version: 0.1.7 - resolution: "@storybook/csf@npm:0.1.7" - dependencies: - type-fest: ^2.19.0 - checksum: 0f2b32a3d3920620d032436429fff9f3a08add8e52dc735a5dfd6ce46260a12c7ec87f4fff065bf0e8baae988d1655eea25d5aaba810e7687119ac5661eaeaa4 - languageName: node - linkType: hard - "@storybook/global@npm:^5.0.0": version: 5.0.0 resolution: "@storybook/global@npm:5.0.0" @@ -13201,13 +13183,6 @@ __metadata: languageName: node linkType: hard -"ts-dedent@npm:^2.0.0": - version: 2.2.0 - resolution: "ts-dedent@npm:2.2.0" - checksum: 93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af - languageName: node - linkType: hard - "ts-graphviz@npm:^1.8.1": version: 1.8.2 resolution: "ts-graphviz@npm:1.8.2" @@ -13342,7 +13317,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.19.0, type-fest@npm:^2.5.1": +"type-fest@npm:^2.5.1": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 From cf7c8f1bbed00d79e3b785eda15c188182ce87cb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 00:24:51 +0000 Subject: [PATCH 275/471] chore(deps): update babel monorepo to v7.24.8 --- yarn.lock | 284 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 229 insertions(+), 55 deletions(-) diff --git a/yarn.lock b/yarn.lock index e239b7414..3dd1a1db1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -73,26 +73,33 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/compat-data@npm:7.24.8" + checksum: 75b2cf8220ad17ec50486a461c3fecb60cae6498b1beec3946dabf894129d03d34d9b545bbd3e81c8f9d36570a8b4d1965c694b16c02868926510c3374822c39 + languageName: node + linkType: hard + "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": - version: 7.24.7 - resolution: "@babel/core@npm:7.24.7" + version: 7.24.8 + resolution: "@babel/core@npm:7.24.8" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.24.7 - "@babel/helper-compilation-targets": ^7.24.7 - "@babel/helper-module-transforms": ^7.24.7 - "@babel/helpers": ^7.24.7 - "@babel/parser": ^7.24.7 + "@babel/generator": ^7.24.8 + "@babel/helper-compilation-targets": ^7.24.8 + "@babel/helper-module-transforms": ^7.24.8 + "@babel/helpers": ^7.24.8 + "@babel/parser": ^7.24.8 "@babel/template": ^7.24.7 - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 + "@babel/traverse": ^7.24.8 + "@babel/types": ^7.24.8 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 017497e2a1b4683a885219eef7d2aee83c1c0cf353506b2e180b73540ec28841d8ef1ea1837fa69f8c561574b24ddd72f04764b27b87afedfe0a07299ccef24d + checksum: 1ccb168b7c170f9816b66a2e80f89684c6b56058b4abe21ae43e0aa0645a1bb2553790199f5a29d0d3dd778f7d5e9b33f5048edf97a39e218d305d99e35a9350 languageName: node linkType: hard @@ -108,6 +115,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/generator@npm:7.24.8" + dependencies: + "@babel/types": ^7.24.8 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: 167ecc888ac4ba72eec18209d05e867ad730685ca5e5af2ad0682cfcf33f3b4819a2c087a414100e4f03c2d4e806054442f7b368753ab7d8462ad820190f09d1 + languageName: node + linkType: hard + "@babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -174,6 +193,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-compilation-targets@npm:7.24.8" + dependencies: + "@babel/compat-data": ^7.24.8 + "@babel/helper-validator-option": ^7.24.8 + browserslist: ^4.23.1 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: 40c9e87212fffccca387504b259a629615d7df10fc9080c113da6c51095d3e8b622a1409d9ed09faf2191628449ea28d582179c5148e2e993a3140234076b8da + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" @@ -306,6 +338,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-module-transforms@npm:7.24.8" + dependencies: + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-simple-access": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a7a515f4786e2c2e354721c5806c07a3ccb7ee73da7cd8c305d2d4c573d9170eadd9393e9eb993b9cd9b0ad28249d8290a525cd38e1fdfaf9f0fa04c1932c204 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -343,6 +390,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-plugin-utils@npm:7.24.8" + checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" @@ -412,6 +466,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -440,6 +501,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-validator-option@npm:7.24.8" + checksum: a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c + languageName: node + linkType: hard + "@babel/helper-wrap-function@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-wrap-function@npm:7.24.7" @@ -452,13 +520,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helpers@npm:7.24.7" +"@babel/helpers@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helpers@npm:7.24.8" dependencies: "@babel/template": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 934da58098a3670ca7f9f42425b9c44d0ca4f8fad815c0f51d89fc7b64c5e0b4c7d5fec038599de691229ada737edeaf72fad3eba8e16dd5842e8ea447f76b66 + "@babel/types": ^7.24.8 + checksum: 2d7301b1b9c91e518c4766bae171230e243d98461c15eabbd44f8f9c83c297fad5c4a64ad80cfec9ca8e90412fc2b41ee86d7eb35dc8a7611c268bcf1317fe46 languageName: node linkType: hard @@ -524,6 +592,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/parser@npm:7.24.8" + bin: + parser: ./bin/babel-parser.js + checksum: 76f866333bfbd53800ac027419ae523bb0137fc63daa968232eb780e4390136bb6e497cb4a2cf6051a2c318aa335c2e6d2adc17079d60691ae7bde89b28c5688 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" @@ -920,21 +997,21 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-classes@npm:7.24.7" +"@babel/plugin-transform-classes@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-classes@npm:7.24.8" dependencies: "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.8 "@babel/helper-environment-visitor": ^7.24.7 "@babel/helper-function-name": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-replace-supers": ^7.24.7 "@babel/helper-split-export-declaration": ^7.24.7 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f01cb31143730d425681e9816020cbb519c7ddb3b6ca308dfaf2821eda5699a746637fc6bf19811e2fb42cfdf8b00a21b31c754da83771a5c280077925677354 + checksum: 9c0f547d67e255b37055461df9c1a578c29bf59c7055bd5b40b07b92e5448af3ca8d853d50056125b7dae9bfe3a4cf1559d61b9ccbc3d2578dd43f15386f12fe languageName: node linkType: hard @@ -950,14 +1027,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" +"@babel/plugin-transform-destructuring@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b9637b27faf9d24a8119bc5a1f98a2f47c69e6441bd8fc71163500be316253a72173308a93122bcf27d8d314ace43344c976f7291cf6376767f408350c8149d4 + checksum: 0b4bd3d608979a1e5bd97d9d42acd5ad405c7fffa61efac4c7afd8e86ea6c2d91ab2d94b6a98d63919571363fe76e0b03c4ff161f0f60241b895842596e4a999 languageName: node linkType: hard @@ -1116,6 +1193,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" + dependencies: + "@babel/helper-module-transforms": ^7.24.8 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-simple-access": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a4cf95b1639c33382064b44558f73ee5fac023f2a94d16e549d2bb55ceebd5cbc10fcddd505d08cd5bc97f5a64af9fd155512358b7dcf7b1a0082e8945cf21c5 + languageName: node + linkType: hard + "@babel/plugin-transform-modules-systemjs@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" @@ -1240,6 +1330,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-optional-chaining@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 45e55e3a2fffb89002d3f89aef59c141610f23b60eee41e047380bffc40290b59f64fc649aa7ec5281f73d41b2065410d788acc6afaad2a9f44cad6e8af04442 + languageName: node + linkType: hard + "@babel/plugin-transform-parameters@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-parameters@npm:7.24.7" @@ -1427,14 +1530,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6bd16b9347614d44187d8f8ee23ebd7be30dabf3632eed5ff0415f35a482e827de220527089eae9cdfb75e85aa72db0e141ebc2247c4b1187c1abcdacdc34895 + checksum: 8663a8e7347cedf181001d99c88cf794b6598c3d82f324098510fe8fb8bd22113995526a77aa35a3cc5d70ffd0617a59dd0d10311a9bf0e1a3a7d3e59b900c00 languageName: node linkType: hard @@ -1500,13 +1603,13 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.24.7 - resolution: "@babel/preset-env@npm:7.24.7" + version: 7.24.8 + resolution: "@babel/preset-env@npm:7.24.8" dependencies: - "@babel/compat-data": ^7.24.7 - "@babel/helper-compilation-targets": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-validator-option": ^7.24.7 + "@babel/compat-data": ^7.24.8 + "@babel/helper-compilation-targets": ^7.24.8 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-validator-option": ^7.24.8 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.7 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.7 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.7 @@ -1537,9 +1640,9 @@ __metadata: "@babel/plugin-transform-block-scoping": ^7.24.7 "@babel/plugin-transform-class-properties": ^7.24.7 "@babel/plugin-transform-class-static-block": ^7.24.7 - "@babel/plugin-transform-classes": ^7.24.7 + "@babel/plugin-transform-classes": ^7.24.8 "@babel/plugin-transform-computed-properties": ^7.24.7 - "@babel/plugin-transform-destructuring": ^7.24.7 + "@babel/plugin-transform-destructuring": ^7.24.8 "@babel/plugin-transform-dotall-regex": ^7.24.7 "@babel/plugin-transform-duplicate-keys": ^7.24.7 "@babel/plugin-transform-dynamic-import": ^7.24.7 @@ -1552,7 +1655,7 @@ __metadata: "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 "@babel/plugin-transform-member-expression-literals": ^7.24.7 "@babel/plugin-transform-modules-amd": ^7.24.7 - "@babel/plugin-transform-modules-commonjs": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.8 "@babel/plugin-transform-modules-systemjs": ^7.24.7 "@babel/plugin-transform-modules-umd": ^7.24.7 "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 @@ -1562,7 +1665,7 @@ __metadata: "@babel/plugin-transform-object-rest-spread": ^7.24.7 "@babel/plugin-transform-object-super": ^7.24.7 "@babel/plugin-transform-optional-catch-binding": ^7.24.7 - "@babel/plugin-transform-optional-chaining": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.8 "@babel/plugin-transform-parameters": ^7.24.7 "@babel/plugin-transform-private-methods": ^7.24.7 "@babel/plugin-transform-private-property-in-object": ^7.24.7 @@ -1573,7 +1676,7 @@ __metadata: "@babel/plugin-transform-spread": ^7.24.7 "@babel/plugin-transform-sticky-regex": ^7.24.7 "@babel/plugin-transform-template-literals": ^7.24.7 - "@babel/plugin-transform-typeof-symbol": ^7.24.7 + "@babel/plugin-transform-typeof-symbol": ^7.24.8 "@babel/plugin-transform-unicode-escapes": ^7.24.7 "@babel/plugin-transform-unicode-property-regex": ^7.24.7 "@babel/plugin-transform-unicode-regex": ^7.24.7 @@ -1582,11 +1685,11 @@ __metadata: babel-plugin-polyfill-corejs2: ^0.4.10 babel-plugin-polyfill-corejs3: ^0.10.4 babel-plugin-polyfill-regenerator: ^0.6.1 - core-js-compat: ^3.31.0 + core-js-compat: ^3.37.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1a82c883c7404359b19b7436d0aab05f8dd4e89e8b1f7de127cc65d0ff6a9b1c345211d9c038f5b6e8f93d26f091fa9c73812d82851026ab4ec93f5ed0f0d675 + checksum: efea0039dbb089c9cc0b792b9ac0eef949699584b4c622e2abea062b44b1a0fbcda6ad25e2263ae36a69586889b4a22439a1096aa8152b366e3fedd921ae66ac languageName: node linkType: hard @@ -1690,6 +1793,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/traverse@npm:7.24.8" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.24.8 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-hoist-variables": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 + "@babel/parser": ^7.24.8 + "@babel/types": ^7.24.8 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: ee7955476ce031613249f2b0ce9e74a3b7787c9d52e84534fcf39ad61aeb0b811a4cd83edc157608be4886f04c6ecf210861e211ba2a3db4fda729cc2048b5ed + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" @@ -1712,6 +1833,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/types@npm:7.24.8" + dependencies: + "@babel/helper-string-parser": ^7.24.8 + "@babel/helper-validator-identifier": ^7.24.7 + to-fast-properties: ^2.0.0 + checksum: e3f58ce9272c6ad519ce2ccf66efb1bfc84a62a344c0e252580d258638e0f0754eb060ec3aea3296c961973c188959f8fd3dc12f8ab6ed4ead1fb7723d693a33 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -5162,7 +5294,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.22.2, browserslist@npm:^4.22.3, browserslist@npm:^4.23.0": +"browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": version: 4.23.0 resolution: "browserslist@npm:4.23.0" dependencies: @@ -5176,6 +5308,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.1": + version: 4.23.2 + resolution: "browserslist@npm:4.23.2" + dependencies: + caniuse-lite: ^1.0.30001640 + electron-to-chromium: ^1.4.820 + node-releases: ^2.0.14 + update-browserslist-db: ^1.1.0 + bin: + browserslist: cli.js + checksum: 8212af37f6ca6355da191cf2d4ad49bd0b82854888b9a7e103638fada70d38cbe36d28feeeaa98344cb15d9128f9f74bcc8ce1bfc9011b5fd14381c1c6fb542c + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -5299,6 +5445,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001640": + version: 1.0.30001641 + resolution: "caniuse-lite@npm:1.0.30001641" + checksum: f131829f7746374ae4a19a8fb5aef9bbc5649682afb0ffd6a74f567389cb6efadbab600cc83384a3e694e1646772ff14ac3c791593aedb41fb2ce1942a1aa208 + languageName: node + linkType: hard + "chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -5764,15 +5917,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0": - version: 3.36.0 - resolution: "core-js-compat@npm:3.36.0" - dependencies: - browserslist: ^4.22.3 - checksum: 89d9bdc91cc4085e81c7774427a02b42b494d569f62972658bf8b6ace1931ee60620691fbcd646fcb6a7ead3d874a46990491f345fc29e0d084ed2fcce335aa5 - languageName: node - linkType: hard - "core-js-compat@npm:^3.36.1": version: 3.36.1 resolution: "core-js-compat@npm:3.36.1" @@ -5782,6 +5926,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.37.1": + version: 3.37.1 + resolution: "core-js-compat@npm:3.37.1" + dependencies: + browserslist: ^4.23.0 + checksum: 5e7430329358bced08c30950512d2081aea0a5652b4c5892cbb3c4a6db05b0d3893a191a955162a07fdb5f4fe74e61b6429fdb503f54e062336d76e43c9555d9 + languageName: node + linkType: hard + "core-js@npm:^3.29.0": version: 3.36.0 resolution: "core-js@npm:3.36.0" @@ -6710,6 +6863,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.820": + version: 1.4.826 + resolution: "electron-to-chromium@npm:1.4.826" + checksum: 2ed56a72f5035bfaac379e7e8ad0dd19870e2a5927c5d6bd844ddfbb86516cdd5a3106e063d157c6045573cf6446a222ab475e935ed41d0985c794052dcafdeb + languageName: node + linkType: hard + "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -6970,7 +7130,7 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1": +"escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 @@ -13540,6 +13700,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" + dependencies: + escalade: ^3.1.2 + picocolors: ^1.0.1 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" From b8a122b9219a29101319746217b1896823fff5fe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 00:25:13 +0000 Subject: [PATCH 276/471] chore(deps): update dependency sass to v1.77.8 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3dd1a1db1..5fbcb1ad2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12381,15 +12381,15 @@ __metadata: linkType: hard "sass@npm:^1.70.0": - version: 1.77.7 - resolution: "sass@npm:1.77.7" + version: 1.77.8 + resolution: "sass@npm:1.77.8" dependencies: chokidar: ">=3.0.0 <4.0.0" immutable: ^4.0.0 source-map-js: ">=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 64c98cbeb24fb42fb5f29137740a812747e0cfebc2f02b0b03108456930f2058b17b2cf78ddf3df3c958c4a6b6fef765e34a202e6e93670752970bf5a0dbe222 + checksum: 6b5dce17faa1bd1e349b4825bf7f76559a32f3f95d789cd2847623c88ee9635e1485d3458532a05fa5b9134cfbce79a4bad3f13dc63c2433632347674db0abae languageName: node linkType: hard From 09b6dd826c76505e15ba2c7c5b7a8f44345690e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 01:42:08 +0000 Subject: [PATCH 277/471] chore(deps): update dependency stylelint to v16.7.0 --- yarn.lock | 79 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5fbcb1ad2..be3e726d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,29 +1895,29 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.6.3": - version: 2.6.3 - resolution: "@csstools/css-parser-algorithms@npm:2.6.3" +"@csstools/css-parser-algorithms@npm:^2.7.1": + version: 2.7.1 + resolution: "@csstools/css-parser-algorithms@npm:2.7.1" peerDependencies: - "@csstools/css-tokenizer": ^2.3.1 - checksum: f1bfcb6680c801f4201c30b77827e000b838e5a45b42f146ec352cd008b51ebb31b8aae00364369765c24e938391e221e37f4063e3a6151316d6990c498da103 + "@csstools/css-tokenizer": ^2.4.1 + checksum: 304e6f92e583042c310e368a82b694af563a395e5c55911caefe52765c5acb000b9daa17356ea8a4dd37d4d50132b76de48ced75159b169b53e134ff78b362ba languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.3.1": - version: 2.3.1 - resolution: "@csstools/css-tokenizer@npm:2.3.1" - checksum: a5fe22faed5673b5d19e64aa7f4730b48711d0946470551376bc3125d831511070c94addfdfc6a62634e968955050ef2c99c92ff8cb294d9bf70ebc1f3ac22a8 +"@csstools/css-tokenizer@npm:^2.4.1": + version: 2.4.1 + resolution: "@csstools/css-tokenizer@npm:2.4.1" + checksum: 395c51f8724ddc4851d836f484346bb3ea6a67af936dde12cbf9a57ae321372e79dee717cbe4823599eb0e6fd2d5405cf8873450e986c2fca6e6ed82e7b10219 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.11": - version: 2.1.11 - resolution: "@csstools/media-query-list-parser@npm:2.1.11" +"@csstools/media-query-list-parser@npm:^2.1.13": + version: 2.1.13 + resolution: "@csstools/media-query-list-parser@npm:2.1.13" peerDependencies: - "@csstools/css-parser-algorithms": ^2.6.3 - "@csstools/css-tokenizer": ^2.3.1 - checksum: e338eff90b43ab31b3d33c55c792f7760d556feaeaa042e12b8e3f873293b72f1140df1bbbfa1c9dcc16c58afb777f1e218e17afdcd0ab8228d2a8ea22bcbe61 + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 + checksum: 7754b4b9fcc749a51a2bcd34a167ad16e7227ff087f6c4e15b3593d3342413446b72dad37f1adb99c62538730c77e3e47842987ce453fbb3849d329a39ba9ad7 languageName: node linkType: hard @@ -6510,6 +6510,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.3.5": + version: 4.3.5 + resolution: "debug@npm:4.3.5" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 7c002b51e256257f936dda09eb37167df952758c57badf6bf44bdc40b89a4bcb8e5a0a2e4c7b53f97c69e2970dd5272d33a757378a12c8f8e64ea7bf99e8e86e + languageName: node + linkType: hard + "decimal.js@npm:^10.4.2": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" @@ -9802,10 +9814,10 @@ __metadata: languageName: node linkType: hard -"known-css-properties@npm:^0.31.0": - version: 0.31.0 - resolution: "known-css-properties@npm:0.31.0" - checksum: 814979212974f229f33ece048a54c3da5b689cbf1275fcfda83b9317a3826605c5d85b28ed68d9b62300a8eb9db61708a662ef6ec2ec12029f3139d117ebb2a1 +"known-css-properties@npm:^0.34.0": + version: 0.34.0 + resolution: "known-css-properties@npm:0.34.0" + checksum: 2f1c562767164672442949c44310cf8bbd0cc8a1fbf76b2437a0a2ed364876f40b03d18ffee3de2490e789e916be6c635823e4137fcb3c2f690a96e79bd66a8c languageName: node linkType: hard @@ -11441,17 +11453,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.38": - version: 8.4.38 - resolution: "postcss@npm:8.4.38" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.0 - source-map-js: ^1.2.0 - checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451 - languageName: node - linkType: hard - "postcss@npm:^8.4.39": version: 8.4.39 resolution: "postcss@npm:8.4.39" @@ -13039,12 +13040,12 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.6.1 - resolution: "stylelint@npm:16.6.1" + version: 16.7.0 + resolution: "stylelint@npm:16.7.0" dependencies: - "@csstools/css-parser-algorithms": ^2.6.3 - "@csstools/css-tokenizer": ^2.3.1 - "@csstools/media-query-list-parser": ^2.1.11 + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 + "@csstools/media-query-list-parser": ^2.1.13 "@csstools/selector-specificity": ^3.1.1 "@dual-bundle/import-meta-resolve": ^4.1.0 balanced-match: ^2.0.0 @@ -13052,7 +13053,7 @@ __metadata: cosmiconfig: ^9.0.0 css-functions-list: ^3.2.2 css-tree: ^2.3.1 - debug: ^4.3.4 + debug: ^4.3.5 fast-glob: ^3.3.2 fastest-levenshtein: ^1.0.16 file-entry-cache: ^9.0.0 @@ -13063,13 +13064,13 @@ __metadata: ignore: ^5.3.1 imurmurhash: ^0.1.4 is-plain-object: ^5.0.0 - known-css-properties: ^0.31.0 + known-css-properties: ^0.34.0 mathml-tag-names: ^2.1.3 meow: ^13.2.0 micromatch: ^4.0.7 normalize-path: ^3.0.0 picocolors: ^1.0.1 - postcss: ^8.4.38 + postcss: ^8.4.39 postcss-resolve-nested-selector: ^0.1.1 postcss-safe-parser: ^7.0.0 postcss-selector-parser: ^6.1.0 @@ -13083,7 +13084,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: eae2d11e1b7c1d0b8e242e2ce5f6098cdc303b0210b676dd2692c68c9c9458938e8a7e29af22f8f3f0907874456191c293e6677b55bdeb8eb8c6e5a9e6e34491 + checksum: b6b3b2772abbdbff02ed9357eb355c6b3056c806301fba0aa62a45eebb93d3e87ea969f03cc8f802de3a50b3b3b008de70536cff91edc09287e640960dd8b5d9 languageName: node linkType: hard From a580941897bb3529a2c47b2f6346411683044226 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 13 Jul 2024 05:14:31 +0000 Subject: [PATCH 278/471] chore(deps): update @lerna-lite to v3.7.1 --- yarn.lock | 270 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 214 insertions(+), 56 deletions(-) diff --git a/yarn.lock b/yarn.lock index be3e726d7..3b5765560 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2450,6 +2450,72 @@ __metadata: languageName: node linkType: hard +"@inquirer/checkbox@npm:^2.3.10": + version: 2.3.10 + resolution: "@inquirer/checkbox@npm:2.3.10" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/figures": ^1.0.3 + "@inquirer/type": ^1.4.0 + ansi-escapes: ^4.3.2 + yoctocolors-cjs: ^2.1.2 + checksum: e38fcf8c297628bd04a9c47f129d035fbbf39fbcf9dd4716cf5ef3c5f8ce4a872d3b0f39b7f90652a795b5383a94382c79c175c17dbcc73ac93634c32852b893 + languageName: node + linkType: hard + +"@inquirer/confirm@npm:^3.1.14": + version: 3.1.14 + resolution: "@inquirer/confirm@npm:3.1.14" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/type": ^1.4.0 + checksum: 2f0bff69ac9ea6a60ed9edeb1369849a2882d19bc2000905717bdb22fe09feab7201924ee761382ab550761aa8cd7a7e9e022e96d89a736522715481f1199fb0 + languageName: node + linkType: hard + +"@inquirer/core@npm:^9.0.2": + version: 9.0.2 + resolution: "@inquirer/core@npm:9.0.2" + dependencies: + "@inquirer/figures": ^1.0.3 + "@inquirer/type": ^1.4.0 + "@types/mute-stream": ^0.0.4 + "@types/node": ^20.14.9 + "@types/wrap-ansi": ^3.0.0 + ansi-escapes: ^4.3.2 + cli-spinners: ^2.9.2 + cli-width: ^4.1.0 + mute-stream: ^1.0.0 + signal-exit: ^4.1.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^6.2.0 + yoctocolors-cjs: ^2.1.2 + checksum: 1d972f8e750ee9ddb56e678a1c480513c53fca35138a2b3b62b4f3bc5a228beab3f349a1efbb2c5054c7bd544a09ed6c9ebd830f6d9aaa8e9c4d45d0bd781199 + languageName: node + linkType: hard + +"@inquirer/editor@npm:^2.1.14": + version: 2.1.14 + resolution: "@inquirer/editor@npm:2.1.14" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/type": ^1.4.0 + external-editor: ^3.1.0 + checksum: a89b33804561d7cb2c89288e4829f7474afd272945bbec6ef73608414f5304a761ede5aa0a6da22f40ec3c6a66734bafd895423c9baea251ccb4e8103f9727df + languageName: node + linkType: hard + +"@inquirer/expand@npm:^2.1.14": + version: 2.1.14 + resolution: "@inquirer/expand@npm:2.1.14" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/type": ^1.4.0 + yoctocolors-cjs: ^2.1.2 + checksum: 6d197956f0d391ce55acf075317a69603c8d37f361cb8d7a88d7ab8b7ca2a74dbaffc28e95c149f2b18add4cb2de6d1b511bdbea89f825e48c22f883376b0055 + languageName: node + linkType: hard + "@inquirer/figures@npm:^1.0.3": version: 1.0.3 resolution: "@inquirer/figures@npm:1.0.3" @@ -2457,6 +2523,87 @@ __metadata: languageName: node linkType: hard +"@inquirer/input@npm:^2.2.1": + version: 2.2.1 + resolution: "@inquirer/input@npm:2.2.1" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/type": ^1.4.0 + checksum: 8e8dd15f5aeffafda2f2b95a6d8fe273d420f112920494fcbf804fc3790ce91eec30bd0d41723cc61f1a289bf462393c196ecd2160bfb1d8174537f5052f283e + languageName: node + linkType: hard + +"@inquirer/number@npm:^1.0.2": + version: 1.0.2 + resolution: "@inquirer/number@npm:1.0.2" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/type": ^1.4.0 + checksum: c3bab104be1552facd95d25a19d01786edfe179564f3605501eca7ae4c5589736ff7c0e09981855ab1153632831282f6a0fadaacde2e9a3b2d9da6244f028fdf + languageName: node + linkType: hard + +"@inquirer/password@npm:^2.1.14": + version: 2.1.14 + resolution: "@inquirer/password@npm:2.1.14" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/type": ^1.4.0 + ansi-escapes: ^4.3.2 + checksum: 965a8c68a2aa80d1f3a3c9192ff18d04fe61444630abab77abca0b0570fdf296333e2195e09ca8f6f8836e963b2f3db319c768f57a6a9daa8ce28d3f564ce467 + languageName: node + linkType: hard + +"@inquirer/prompts@npm:^5.1.2": + version: 5.1.2 + resolution: "@inquirer/prompts@npm:5.1.2" + dependencies: + "@inquirer/checkbox": ^2.3.10 + "@inquirer/confirm": ^3.1.14 + "@inquirer/editor": ^2.1.14 + "@inquirer/expand": ^2.1.14 + "@inquirer/input": ^2.2.1 + "@inquirer/number": ^1.0.2 + "@inquirer/password": ^2.1.14 + "@inquirer/rawlist": ^2.1.14 + "@inquirer/select": ^2.3.10 + checksum: 6e2ad217b83608310392929c05a59c3f15b469b6baa63031096d10d35bd2038d8cee2ef25c26a35e27c4a0c7daa73ea21db1006ea56cd1ff5cdd5f712ecbe5b8 + languageName: node + linkType: hard + +"@inquirer/rawlist@npm:^2.1.14": + version: 2.1.14 + resolution: "@inquirer/rawlist@npm:2.1.14" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/type": ^1.4.0 + yoctocolors-cjs: ^2.1.2 + checksum: 1600a404934f2adbf265e7c4d50b1923d96696001c31b4cc1bfd967d9454c9ec617b7566cc57d40ffdc72241deb02aa4c56bdb9d1f5bcb560036270459ba676f + languageName: node + linkType: hard + +"@inquirer/select@npm:^2.3.10": + version: 2.3.10 + resolution: "@inquirer/select@npm:2.3.10" + dependencies: + "@inquirer/core": ^9.0.2 + "@inquirer/figures": ^1.0.3 + "@inquirer/type": ^1.4.0 + ansi-escapes: ^4.3.2 + yoctocolors-cjs: ^2.1.2 + checksum: fb8ad2f6d4f479ab406dc585aecab82139f1351f3c8b5b890d4204d2ef8dc0ce8cb33157787c84b47c2de76c3bc8a13b462469dcae0939e4a2b7ffb43c2ddb19 + languageName: node + linkType: hard + +"@inquirer/type@npm:^1.3.3, @inquirer/type@npm:^1.4.0": + version: 1.4.0 + resolution: "@inquirer/type@npm:1.4.0" + dependencies: + mute-stream: ^1.0.0 + checksum: 3b1be73ca418ad721d7527aea0bd83f21825484d6829fd4dbc830372b4aad68cf030486f8100d0f3883db8924fadcfaac1aa041ef6c51124f808f25825b22d85 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2808,12 +2955,12 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.7.0, @lerna-lite/cli@npm:^3.0.0": - version: 3.7.0 - resolution: "@lerna-lite/cli@npm:3.7.0" +"@lerna-lite/cli@npm:3.7.1, @lerna-lite/cli@npm:^3.0.0": + version: 3.7.1 + resolution: "@lerna-lite/cli@npm:3.7.1" dependencies: - "@lerna-lite/core": 3.7.0 - "@lerna-lite/init": 3.7.0 + "@lerna-lite/core": 3.7.1 + "@lerna-lite/init": 3.7.1 "@lerna-lite/npmlog": 3.7.0 dedent: ^1.5.3 dotenv: ^16.4.5 @@ -2835,13 +2982,13 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 071be57f7c25d9c7f6c606ca1be321806c3440d084ce235a22425e68a60210ed903b790e5eeec44641efbd6632c389038a62a8931d5fc29aa24f25fc85abe961 + checksum: 544f838b53dc19056a6b129b3132a21f5ecc3ce8e868fb5c5785f2844cb8868e53fbc49f9a1f820f05f6e86d93ef96e25f4314c84c5e18aa2c0801d844610b94 languageName: node linkType: hard -"@lerna-lite/core@npm:3.7.0": - version: 3.7.0 - resolution: "@lerna-lite/core@npm:3.7.0" +"@lerna-lite/core@npm:3.7.1": + version: 3.7.1 + resolution: "@lerna-lite/core@npm:3.7.1" dependencies: "@lerna-lite/npmlog": ^3.7.0 "@npmcli/run-script": ^8.1.0 @@ -2854,7 +3001,7 @@ __metadata: fs-extra: ^11.2.0 glob-parent: ^6.0.2 globby: ^14.0.2 - inquirer: ^9.3.4 + inquirer: ^10.0.1 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 @@ -2869,19 +3016,19 @@ __metadata: write-file-atomic: ^5.0.1 write-json-file: ^5.0.0 write-package: ^7.0.1 - checksum: 328a251334a08cc49ebc529d035397843f90611702c52b9e306678ef59498878b2a418495fc66dbd437753482d9a26899258053a1762c037b4895ec99eae3bb9 + checksum: 12a7c08eb191d935990efb87e64d091a3e2c9d45ab3fabee9c2f346db62f9fed6ec1de088a605c946fc9a69d140db7feeb96e6e0d5f3d6ceb79d2bb2f89bf678 languageName: node linkType: hard -"@lerna-lite/init@npm:3.7.0": - version: 3.7.0 - resolution: "@lerna-lite/init@npm:3.7.0" +"@lerna-lite/init@npm:3.7.1": + version: 3.7.1 + resolution: "@lerna-lite/init@npm:3.7.1" dependencies: - "@lerna-lite/core": 3.7.0 + "@lerna-lite/core": 3.7.1 fs-extra: ^11.2.0 p-map: ^7.0.2 write-json-file: ^5.0.0 - checksum: 6661f877074dea63ba2b1feb6ea2633b59770a8d962b2e4351004742e6974b4d81d3f11fae2f07f54820b0fbb78bc98b7cacfa3e54b460479d6aee8a41cb143c + checksum: e671f4abe004c3996d3379b05e92b129b46a20f0ed3c4c61de65d7f5c14bc30d53842e463031f2fd9baa86e267b599bc8e48990d01e628582beaef52dc2258d0 languageName: node linkType: hard @@ -2903,20 +3050,20 @@ __metadata: linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.7.0 - resolution: "@lerna-lite/publish@npm:3.7.0" + version: 3.7.1 + resolution: "@lerna-lite/publish@npm:3.7.1" dependencies: - "@lerna-lite/cli": 3.7.0 - "@lerna-lite/core": 3.7.0 + "@lerna-lite/cli": 3.7.1 + "@lerna-lite/core": 3.7.1 "@lerna-lite/npmlog": ^3.7.0 - "@lerna-lite/version": 3.7.0 - "@npmcli/arborist": ^7.5.3 + "@lerna-lite/version": 3.7.1 + "@npmcli/arborist": ^7.5.4 "@npmcli/package-json": ^5.2.0 byte-size: ^8.1.1 chalk: ^5.3.0 columnify: ^1.6.0 fs-extra: ^11.2.0 - glob: ^10.4.2 + glob: ^10.4.5 has-unicode: ^2.0.1 libnpmaccess: ^8.0.6 libnpmpublish: ^9.0.9 @@ -2931,16 +3078,16 @@ __metadata: ssri: ^10.0.6 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: 53a6dfe1d58656cfbde28b2969c76cd87c312fb00747adf4947d01fd4dc1788d97d82fefa933f9e92954e0cf8c447106e8299095ffcd372f739be9f915548aa1 + checksum: 419b2113da80b149bc12ac15615e8eb62b5fca6a372cd6283ee05a1e0f47be85fec47e2c4f1e7764399371f5d0c9377857fdfa4d6b0fbc5f9743e51bbf27ef9a languageName: node linkType: hard -"@lerna-lite/version@npm:3.7.0, @lerna-lite/version@npm:^3.0.0": - version: 3.7.0 - resolution: "@lerna-lite/version@npm:3.7.0" +"@lerna-lite/version@npm:3.7.1, @lerna-lite/version@npm:^3.0.0": + version: 3.7.1 + resolution: "@lerna-lite/version@npm:3.7.1" dependencies: - "@lerna-lite/cli": 3.7.0 - "@lerna-lite/core": 3.7.0 + "@lerna-lite/cli": 3.7.1 + "@lerna-lite/core": 3.7.1 "@lerna-lite/npmlog": ^3.7.0 "@octokit/plugin-enterprise-rest": ^6.0.1 "@octokit/rest": ^21.0.0 @@ -2962,7 +3109,7 @@ __metadata: new-github-release-url: ^2.0.0 node-fetch: ^3.3.2 npm-package-arg: ^11.0.2 - p-limit: ^6.0.0 + p-limit: ^6.1.0 p-map: ^7.0.2 p-pipe: ^4.0.0 p-reduce: ^3.0.0 @@ -2972,7 +3119,7 @@ __metadata: temp-dir: ^3.0.0 uuid: ^10.0.0 write-json-file: ^5.0.0 - checksum: dbcfd67d151fbfa7133b6ac93278d5ea4fc458d015629c20ee940fe27699488dbf801247ea8b973a8b46d59bba4ced88d7f5fb95d946aca173776e94c8b11d79 + checksum: 49f22b852accf1aa061665d0bb5c80bfe953cdade3c02c0fa1d63b485e6fba821c7fb2b17ea8e938e2e194575c256049bfc5dc35ca990da3119a78a51b043994 languageName: node linkType: hard @@ -3040,9 +3187,9 @@ __metadata: languageName: node linkType: hard -"@npmcli/arborist@npm:^7.5.3": - version: 7.5.3 - resolution: "@npmcli/arborist@npm:7.5.3" +"@npmcli/arborist@npm:^7.5.4": + version: 7.5.4 + resolution: "@npmcli/arborist@npm:7.5.4" dependencies: "@isaacs/string-locale-compare": ^1.1.0 "@npmcli/fs": ^3.1.1 @@ -3081,7 +3228,7 @@ __metadata: walk-up-path: ^3.0.1 bin: arborist: bin/index.js - checksum: 5fa70eb628427e52f6f074ee4e9ccd5794eeac0b416076d101b299250faf38aabac2b6230e214fe5a6b9f119b8e15312f62e001c15ba2cca3c72c50fe0f03c80 + checksum: 1b205a6f4744ecf342a96a804a3a22b07dcf96f32ca61a877cf388a8a23b1f3bc97fa4054927a7606376d802ff9374de321b49ee9a4c95cf606420bfd8a534d9 languageName: node linkType: hard @@ -4358,7 +4505,16 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.11.6": +"@types/mute-stream@npm:^0.0.4": + version: 0.0.4 + resolution: "@types/mute-stream@npm:0.0.4" + dependencies: + "@types/node": "*" + checksum: af8d83ad7b68ea05d9357985daf81b6c9b73af4feacb2f5c2693c7fd3e13e5135ef1bd083ce8d5bdc8e97acd28563b61bb32dec4e4508a8067fcd31b8a098632 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:^20.11.6, @types/node@npm:^20.14.9": version: 20.14.10 resolution: "@types/node@npm:20.14.10" dependencies: @@ -4467,6 +4623,13 @@ __metadata: languageName: node linkType: hard +"@types/wrap-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/wrap-ansi@npm:3.0.0" + checksum: 492f0610093b5802f45ca292777679bb9b381f1f32ae939956dd9e00bf81dba7cc99979687620a2817d9a7d8b59928207698166c47a0861c6a2e5c30d4aaf1e9 + languageName: node + linkType: hard + "@types/yargs-parser@npm:*": version: 21.0.3 resolution: "@types/yargs-parser@npm:21.0.3" @@ -5590,7 +5753,7 @@ __metadata: languageName: node linkType: hard -"cli-spinners@npm:^2.5.0": +"cli-spinners@npm:^2.5.0, cli-spinners@npm:^2.9.2": version: 2.9.2 resolution: "cli-spinners@npm:2.9.2" checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c @@ -8061,9 +8224,9 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.4.2": - version: 10.4.2 - resolution: "glob@npm:10.4.2" +"glob@npm:^10.4.5": + version: 10.4.5 + resolution: "glob@npm:10.4.5" dependencies: foreground-child: ^3.1.0 jackspeak: ^3.1.2 @@ -8073,7 +8236,7 @@ __metadata: path-scurry: ^1.11.1 bin: glob: dist/esm/bin.mjs - checksum: bd7c0e30701136e936f414e5f6f82c7f04503f01df77408f177aa584927412f0bde0338e6ec541618cd21eacc57dde33e7b3c6c0a779cc1c6e6a0e14f3d15d9b + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a languageName: node linkType: hard @@ -8572,23 +8735,18 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^9.3.4": - version: 9.3.5 - resolution: "inquirer@npm:9.3.5" +"inquirer@npm:^10.0.1": + version: 10.0.1 + resolution: "inquirer@npm:10.0.1" dependencies: - "@inquirer/figures": ^1.0.3 + "@inquirer/prompts": ^5.1.2 + "@inquirer/type": ^1.3.3 + "@types/mute-stream": ^0.0.4 ansi-escapes: ^4.3.2 - cli-width: ^4.1.0 - external-editor: ^3.1.0 - mute-stream: 1.0.0 - ora: ^5.4.1 + mute-stream: ^1.0.0 run-async: ^3.0.0 rxjs: ^7.8.1 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wrap-ansi: ^6.2.0 - yoctocolors-cjs: ^2.1.2 - checksum: 83480ebbf52b2e42fce50cf701eaf10ba682ce3063c8acec8da3710e707dc646d609743247c7061a06169aa1a1e64d02babeab1707022d820ad46799afed75ec + checksum: f9b5f73bfc0324dc7a6bc0bbae939432e733dec075dbdd3c388f74a3222883333580102e0d66ce06c2a72dbecc509b452d65569b3cffb70a8ba377cc2719af6a languageName: node linkType: hard @@ -10521,7 +10679,7 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:1.0.0": +"mute-stream@npm:^1.0.0": version: 1.0.0 resolution: "mute-stream@npm:1.0.0" checksum: 36fc968b0e9c9c63029d4f9dc63911950a3bdf55c9a87f58d3a266289b67180201cade911e7699f8b2fa596b34c9db43dad37649e3f7fdd13c3bb9edb0017ee7 @@ -10980,7 +11138,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^6.0.0": +"p-limit@npm:^6.1.0": version: 6.1.0 resolution: "p-limit@npm:6.1.0" dependencies: From 58e9ee97144998f4fb390a566e9d5575df712c39 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Jul 2024 01:06:59 +0000 Subject: [PATCH 279/471] chore(deps): update dependency prettier to v3.3.3 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3b5765560..8552640c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11661,11 +11661,11 @@ __metadata: linkType: hard "prettier@npm:^3.2.5": - version: 3.3.2 - resolution: "prettier@npm:3.3.2" + version: 3.3.3 + resolution: "prettier@npm:3.3.3" bin: prettier: bin/prettier.cjs - checksum: 5557d8caed0b182f68123c2e1e370ef105251d1dd75800fadaece3d061daf96b1389141634febf776050f9d732c7ae8fd444ff0b4a61b20535e7610552f32c69 + checksum: bc8604354805acfdde6106852d14b045bb20827ad76a5ffc2455b71a8257f94de93f17f14e463fe844808d2ccc87248364a5691488a3304f1031326e62d9276e languageName: node linkType: hard From 941a96a11e99cc4bc7c21be63983551dcaabc7e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 14 Jul 2024 01:07:20 +0000 Subject: [PATCH 280/471] chore(deps): update dependency stylelint-prettier to v5.0.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8552640c5..8300c5958 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13171,14 +13171,14 @@ __metadata: linkType: hard "stylelint-prettier@npm:^5.0.0": - version: 5.0.0 - resolution: "stylelint-prettier@npm:5.0.0" + version: 5.0.1 + resolution: "stylelint-prettier@npm:5.0.1" dependencies: prettier-linter-helpers: ^1.0.0 peerDependencies: prettier: ">=3.0.0" stylelint: ">=16.0.0" - checksum: 757b677f0e4345de1eab62b0e1a8d6ff50d968e2c541bae7ac7b5595157a49ee033c8911f92056d2bdfb0a2945faa5509814cb13170e48336bfc2c4c3b3ee9c2 + checksum: 20e3f1ef4f5b746d4227aa742f015322ea5efd042381cd6d8382f442dcbfecdd060216e92e5406fea620c2a1204c49712c04c413a6d724c2120a6b019de8e28a languageName: node linkType: hard From 4666bf7b992f91ee5a51c2cbf95004bddfc7fe86 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 22:49:23 +0000 Subject: [PATCH 281/471] chore(deps): update eslint --- yarn.lock | 116 ++++++++++++++++++++++++------------------------------ 1 file changed, 52 insertions(+), 64 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8300c5958..97a6f6bcc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4491,7 +4491,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -4595,13 +4595,6 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.5.8": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 - languageName: node - linkType: hard - "@types/stack-utils@npm:^2.0.0": version: 2.0.3 resolution: "@types/stack-utils@npm:2.0.3" @@ -4647,19 +4640,17 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.7.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.7.1" + version: 7.16.1 + resolution: "@typescript-eslint/eslint-plugin@npm:7.16.1" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.7.1 - "@typescript-eslint/type-utils": 7.7.1 - "@typescript-eslint/utils": 7.7.1 - "@typescript-eslint/visitor-keys": 7.7.1 - debug: ^4.3.4 + "@typescript-eslint/scope-manager": 7.16.1 + "@typescript-eslint/type-utils": 7.16.1 + "@typescript-eslint/utils": 7.16.1 + "@typescript-eslint/visitor-keys": 7.16.1 graphemer: ^1.4.0 ignore: ^5.3.1 natural-compare: ^1.4.0 - semver: ^7.6.0 ts-api-utils: ^1.3.0 peerDependencies: "@typescript-eslint/parser": ^7.0.0 @@ -4667,25 +4658,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 17de1806e083cb575ed5b8b7126cbe4341a369a0eb271dcffb5820962a3c9e46e2392628146125d39985b46cfa80b12cebe02e6c2e4043f88cc4884cc308cc21 + checksum: 131f20cf13e4b6ae788fcfd160116148e047fdd5137097165787d819f9a7628ae4c5929ebf8a4728f72fb9af273d68b5e4876ce1fdd407ce6b1e4d985c3fd5ce languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.7.1 - resolution: "@typescript-eslint/parser@npm:7.7.1" + version: 7.16.1 + resolution: "@typescript-eslint/parser@npm:7.16.1" dependencies: - "@typescript-eslint/scope-manager": 7.7.1 - "@typescript-eslint/types": 7.7.1 - "@typescript-eslint/typescript-estree": 7.7.1 - "@typescript-eslint/visitor-keys": 7.7.1 + "@typescript-eslint/scope-manager": 7.16.1 + "@typescript-eslint/types": 7.16.1 + "@typescript-eslint/typescript-estree": 7.16.1 + "@typescript-eslint/visitor-keys": 7.16.1 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 737035f259120533ffede288a7a9b4f6261e41558ccf333f0422cadc8fe2bf7dee91e64369003b623cc972c0f7149822250c1b2afdd05b94383252a68d8dca97 + checksum: cd0b4bf9f56df4fee34b0a46756e3de9ac151238e6c69918a43363b2a414eb5e05fac86b770f23ac62f04d5c84820ac8ff5c576277ff2b27ca227e3ed6d9c23c languageName: node linkType: hard @@ -4699,22 +4690,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.7.1": - version: 7.7.1 - resolution: "@typescript-eslint/scope-manager@npm:7.7.1" +"@typescript-eslint/scope-manager@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/scope-manager@npm:7.16.1" dependencies: - "@typescript-eslint/types": 7.7.1 - "@typescript-eslint/visitor-keys": 7.7.1 - checksum: 9f9c78bcbf32e65ad0cbd1c5c08e9cf7442d330e4e466ea6e13074241a44b80e8f9f99a9f4b6dbf97db415dbb1e538a9818e9553129c0e4fff005743ae89b6e7 + "@typescript-eslint/types": 7.16.1 + "@typescript-eslint/visitor-keys": 7.16.1 + checksum: 5575e24fecc88e5bd85fc0f44c3952f804dffcc99eca4b6aeaa44a31018d0d86286f608acc793d3e873508a571304f006b37fd23d768598e43afc44d35c55220 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.7.1": - version: 7.7.1 - resolution: "@typescript-eslint/type-utils@npm:7.7.1" +"@typescript-eslint/type-utils@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/type-utils@npm:7.16.1" dependencies: - "@typescript-eslint/typescript-estree": 7.7.1 - "@typescript-eslint/utils": 7.7.1 + "@typescript-eslint/typescript-estree": 7.16.1 + "@typescript-eslint/utils": 7.16.1 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependencies: @@ -4722,7 +4713,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: ac8a4f1ad22dd5b414374673e612f40185ba5ac0ade796ddd959c228bb44d270f9004a09fb4ad83d940257ab37c358112e5b535fe45a5a159f68a156051db2d2 + checksum: 6128d887189fdabff648931c2d385bd0ad2e8ba11b47a7e35ed962a432bff12611e011ea6137a59452d8ae9715a54c644557b1c00c7b1cf1e4a4f4e126954e9e languageName: node linkType: hard @@ -4733,10 +4724,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.7.1": - version: 7.7.1 - resolution: "@typescript-eslint/types@npm:7.7.1" - checksum: b30a861b641ea8f9e882647344674893ec4b751ddc9f5431998b1a96ef01b80fd7267d9da719ee8e1b2249de4cfc32d7ef7877589502b412d30f19854987cd80 +"@typescript-eslint/types@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/types@npm:7.16.1" + checksum: 5fbcf214deda21fc3e0eaab8052d5f7bf30830bbb2c7fff93d39111091bf74fafc9afad2974937ae96b67e92e508c400c9108b4fa98761411db1c1e5aff19642 languageName: node linkType: hard @@ -4758,12 +4749,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.7.1": - version: 7.7.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.7.1" +"@typescript-eslint/typescript-estree@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/typescript-estree@npm:7.16.1" dependencies: - "@typescript-eslint/types": 7.7.1 - "@typescript-eslint/visitor-keys": 7.7.1 + "@typescript-eslint/types": 7.16.1 + "@typescript-eslint/visitor-keys": 7.16.1 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4773,24 +4764,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 3b33075eb82b98922644a11500ee9c4b6474e8879882c953408b3f33d36d591d4e74a52606106a911801f60dd7d054d6bc6b6e0a547570470ffa7a84aded08a1 + checksum: 2557c21f0645f9150020821db500b6be367f83e7e80be87fb04fcc7e2e0d5e5b8f413107873cf05485a4c5516f0cadc9b7754fa5b459a451effc98ccf27f4ce6 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.7.1": - version: 7.7.1 - resolution: "@typescript-eslint/utils@npm:7.7.1" +"@typescript-eslint/utils@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/utils@npm:7.16.1" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@types/json-schema": ^7.0.15 - "@types/semver": ^7.5.8 - "@typescript-eslint/scope-manager": 7.7.1 - "@typescript-eslint/types": 7.7.1 - "@typescript-eslint/typescript-estree": 7.7.1 - semver: ^7.6.0 + "@typescript-eslint/scope-manager": 7.16.1 + "@typescript-eslint/types": 7.16.1 + "@typescript-eslint/typescript-estree": 7.16.1 peerDependencies: eslint: ^8.56.0 - checksum: 9ef631a29177826105fa8f05bb2f59c2c3ac2f65c155b58dc80df27146499da3590eef26b9e1319ed1d50c58314a889645f7e7ded656507c57b5c4ee0a4bd473 + checksum: 129435ab63363c7bdfa0abbabc1e3b59b66b39ea54a018f7706bc703d233c3c98791bb32f69ddec4715f6ffd6c66554f55eb76b3b91fcea9e919734cf23f6ead languageName: node linkType: hard @@ -4822,13 +4810,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.7.1": - version: 7.7.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.7.1" +"@typescript-eslint/visitor-keys@npm:7.16.1": + version: 7.16.1 + resolution: "@typescript-eslint/visitor-keys@npm:7.16.1" dependencies: - "@typescript-eslint/types": 7.7.1 + "@typescript-eslint/types": 7.16.1 eslint-visitor-keys: ^3.4.3 - checksum: cd2897cfc45589cb6d81e7ae92b2765711aa71d2a4e06a3cb766098855a922e1475513288e86cc87a352bfa90e5cf106db043d5f2f76f534fe723f6cf5f14618 + checksum: 3d181d42dc9c29f6518343ae6d57b046743888e1d2dd0f3a547a1388564cdea7474c689ac17761a62effc57b3e7b90d5c51ae25e8bd411559a9ee8975094bd54 languageName: node linkType: hard @@ -7467,11 +7455,11 @@ __metadata: linkType: hard "eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.6 - resolution: "eslint-plugin-react-refresh@npm:0.4.6" + version: 0.4.8 + resolution: "eslint-plugin-react-refresh@npm:0.4.8" peerDependencies: eslint: ">=7" - checksum: f897bfc1c52d21b9941f1f0b7c3e89a7eb8404c10d73739fc91812a3347d0da8e37e0698fafb059222e629f9d56b5c991a88133105f12b82ad3178b91f7e1041 + checksum: 32b494ae4c4e42217fb49c37d54eaa6bf6e98548041fc9bd8b54b331affb4f9bbae1ac6eb8d2e3493f1a15efc767c12c8c58946c8d5b6045ab9b0a36dd649632 languageName: node linkType: hard From 4292aa313689e399247646351f4e9e918c4eca02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jul 2024 02:12:23 +0000 Subject: [PATCH 282/471] chore(deps): update dependency @babel/core to v7.24.9 --- yarn.lock | 50 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 97a6f6bcc..682f90eec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -81,25 +81,25 @@ __metadata: linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": - version: 7.24.8 - resolution: "@babel/core@npm:7.24.8" + version: 7.24.9 + resolution: "@babel/core@npm:7.24.9" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.24.8 + "@babel/generator": ^7.24.9 "@babel/helper-compilation-targets": ^7.24.8 - "@babel/helper-module-transforms": ^7.24.8 + "@babel/helper-module-transforms": ^7.24.9 "@babel/helpers": ^7.24.8 "@babel/parser": ^7.24.8 "@babel/template": ^7.24.7 "@babel/traverse": ^7.24.8 - "@babel/types": ^7.24.8 + "@babel/types": ^7.24.9 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 1ccb168b7c170f9816b66a2e80f89684c6b56058b4abe21ae43e0aa0645a1bb2553790199f5a29d0d3dd778f7d5e9b33f5048edf97a39e218d305d99e35a9350 + checksum: eae273bee154d6a059e742a2bb7a58b03438a1f70d7909887a28258b29556dc99bcd5cbd41f13cd4755a20b0baf5e82731acb1d3690e02b7a9300fb6d1950e2c languageName: node linkType: hard @@ -127,6 +127,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.24.9": + version: 7.24.9 + resolution: "@babel/generator@npm:7.24.9" + dependencies: + "@babel/types": ^7.24.9 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: 3748f6528c7c5f9382b733611a6921d6eee4d518cfeb3598024158226579f0dbde449e6f6b6b4039210b09dfedda1bad3d1ecb35fe266fe72aa64afa49a00a6d + languageName: node + linkType: hard + "@babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -353,6 +365,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.24.9": + version: 7.24.9 + resolution: "@babel/helper-module-transforms@npm:7.24.9" + dependencies: + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-simple-access": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ffcf11b678a8d3e6a243285cb5262c37f4d47d507653420c1f7f0bd27076e88177f2b7158850d1a470fcfe923426a2e6571c554c455a90c9755ff488ac36ac40 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -1844,6 +1871,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.9": + version: 7.24.9 + resolution: "@babel/types@npm:7.24.9" + dependencies: + "@babel/helper-string-parser": ^7.24.8 + "@babel/helper-validator-identifier": ^7.24.7 + to-fast-properties: ^2.0.0 + checksum: 15cb05c45be5d4c49a749575d3742bd005d0e2e850c13fb462754983a5bc1063fbc8f6566246fc064e3e8b21a5a75a37a948f1b3f27189cc90b236fee93f5e51 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" From 06fce213e2e1f2cd9515d4a09f1a6c317311a672 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jul 2024 05:25:56 +0000 Subject: [PATCH 283/471] chore(deps): update dependency @storybook/addon-actions to v8.2.4 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 682f90eec..3c1233ebc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3955,8 +3955,8 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.2.2 - resolution: "@storybook/addon-actions@npm:8.2.2" + version: 8.2.4 + resolution: "@storybook/addon-actions@npm:8.2.4" dependencies: "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 @@ -3964,8 +3964,8 @@ __metadata: polished: ^4.2.2 uuid: ^9.0.0 peerDependencies: - storybook: ^8.2.2 - checksum: a1a3395fa00654477d258df0328e148778d27bf4ce3a7364eb03a25574bdeaa428cef8b1fe99ebf148c67f34c8997ab25e77de65f7d1b2c717e7394628b53bae + storybook: ^8.2.4 + checksum: 9f6d23779bed1545d4deda41603a3e32a43c1639842b64d8b69dc2e10d1c7c44fb945ed23539afe069e3c8828d89bd3b717e13936655285fb0df4645251a0260 languageName: node linkType: hard From 89f3b140c0e20aee5f641560b780929a89fda310 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 01:39:33 +0000 Subject: [PATCH 284/471] chore(deps): update dependency @types/node to v20.14.11 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3c1233ebc..a70a79059 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4553,11 +4553,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6, @types/node@npm:^20.14.9": - version: 20.14.10 - resolution: "@types/node@npm:20.14.10" + version: 20.14.11 + resolution: "@types/node@npm:20.14.11" dependencies: undici-types: ~5.26.4 - checksum: 2f397d393de8cddb126e0b7999402ea450215ac69d49666ddef4f730a73325054499ce7345f86095e7b935c55b2e02139f3b8b9afc72fb978ed29edf6bb956b0 + checksum: 24396dea2bc803c2d2ebfdd31a3e6e93818ba1a5933d63cd0f64fad1e2955a8280ba09338a48ffe68cd84748eec8bee27135045f15661aa389656f67fe0b0924 languageName: node linkType: hard From 091a95ce3c5006dd6575bc4ebf024a151d665206 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 01:39:57 +0000 Subject: [PATCH 285/471] chore(deps): update dependency vite to v5.3.4 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a70a79059..0b89a4a01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14012,8 +14012,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.3.3 - resolution: "vite@npm:5.3.3" + version: 5.3.4 + resolution: "vite@npm:5.3.4" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 @@ -14047,7 +14047,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 1a54b678c03b52be934b0db95295aa573819063fad9e13f148936cfc4006d081a6790fdd2dbe111b09b75b9a8d49f15e0788c58b86156d238ab3a0c1cc1a941f + checksum: 2dfbab98daf91b86b3d3e535add1d6a982f7087df62f8f4bc219f3ae91a97f38c04683a32ba2457618e804fa93380090ddda5b0c9823a94bdcb53d6044b04732 languageName: node linkType: hard From f65ff8a6495fba54ea0db69ff331c3d3c6f03b77 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 09:21:14 +0000 Subject: [PATCH 286/471] chore(deps): update dependency stylelint-prettier to v5.0.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0b89a4a01..c2fff88da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13197,14 +13197,14 @@ __metadata: linkType: hard "stylelint-prettier@npm:^5.0.0": - version: 5.0.1 - resolution: "stylelint-prettier@npm:5.0.1" + version: 5.0.2 + resolution: "stylelint-prettier@npm:5.0.2" dependencies: prettier-linter-helpers: ^1.0.0 peerDependencies: prettier: ">=3.0.0" stylelint: ">=16.0.0" - checksum: 20e3f1ef4f5b746d4227aa742f015322ea5efd042381cd6d8382f442dcbfecdd060216e92e5406fea620c2a1204c49712c04c413a6d724c2120a6b019de8e28a + checksum: 1c8de4d5ee093766690fe4a2548ec40df7a143bb60fba6585efa42adbfe5cfac78a8350e9742fdbf543b1769b75c8ef9b477b6c8d13ed08a0e68565a4120a59d languageName: node linkType: hard From 915e1b410648d9a00a994b1427e2381006b3cc62 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 09:21:31 +0000 Subject: [PATCH 287/471] chore(deps): update dependency eslint-plugin-prettier to v5.2.1 --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index c2fff88da..77ecb836e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7464,11 +7464,11 @@ __metadata: linkType: hard "eslint-plugin-prettier@npm:^5.1.3": - version: 5.1.3 - resolution: "eslint-plugin-prettier@npm:5.1.3" + version: 5.2.1 + resolution: "eslint-plugin-prettier@npm:5.2.1" dependencies: prettier-linter-helpers: ^1.0.0 - synckit: ^0.8.6 + synckit: ^0.9.1 peerDependencies: "@types/eslint": ">=8.0.0" eslint: ">=8.0.0" @@ -7479,7 +7479,7 @@ __metadata: optional: true eslint-config-prettier: optional: true - checksum: eb2a7d46a1887e1b93788ee8f8eb81e0b6b2a6f5a66a62bc6f375b033fc4e7ca16448da99380be800042786e76cf5c0df9c87a51a2c9b960ed47acbd7c0b9381 + checksum: 812f4d1596dcd3a55963212dfbd818a4b38f880741aac75f6869aa740dc5d934060674d3b85d10ff9fec424defa61967dbdef26b8a893a92c9b51880264ed0d9 languageName: node linkType: hard @@ -13348,13 +13348,13 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.8.6": - version: 0.8.8 - resolution: "synckit@npm:0.8.8" +"synckit@npm:^0.9.1": + version: 0.9.1 + resolution: "synckit@npm:0.9.1" dependencies: "@pkgr/core": ^0.1.0 tslib: ^2.6.2 - checksum: 9ed5d33abb785f5f24e2531efd53b2782ca77abf7912f734d170134552b99001915531be5a50297aa45c5701b5c9041e8762e6cd7a38e41e2461c1e7fccdedf8 + checksum: 4042941a4d939675f1d7b01124b8405b6ac616f3e3f396d00e46c67f38d0d5b7f9a1de05bc7ceea4ce80d967b450cfa2460e5f6aca81f7cea8f1a28be9392985 languageName: node linkType: hard From fd5ced315db5337202a4e96f655218fa23618231 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 16 Jul 2024 10:06:56 +0900 Subject: [PATCH 288/471] feat: Export/Import mappings Fixes: #121 Fixes: #290 --- .../toolbar/ImportMappingFileDropdownItem.tsx | 7 +- packages/ui/src/models/document.ts | 2 +- packages/ui/src/models/mapping.ts | 11 +- .../mapping-serializer.service.test.ts | 503 +++++++++--------- .../services/mapping-serializer.service.ts | 369 ++++++++----- packages/ui/src/services/mapping.service.ts | 25 +- .../ui/src/services/visualization.service.ts | 5 +- .../ui/src/services/xpath/xpath.service.ts | 2 +- packages/ui/tsconfig.json | 1 - test-resources/ShipOrderToShipOrder.xsl | 44 ++ 10 files changed, 601 insertions(+), 368 deletions(-) create mode 100644 test-resources/ShipOrderToShipOrder.xsl diff --git a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx index 015a98bad..228840c2c 100644 --- a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx @@ -13,7 +13,7 @@ type ImportMappingFileDropdownItemProps = { export const ImportMappingFileDropdownItem: FunctionComponent = ({ onComplete, }) => { - const { mappingTree, refreshMappingTree } = useDataMapper(); + const { mappingTree, sourceParameterMap, targetBodyDocument, refreshMappingTree } = useDataMapper(); const { files, onClick, HiddenFileInput } = useFilePicker({ maxFileSize: 1, @@ -23,13 +23,12 @@ export const ImportMappingFileDropdownItem: FunctionComponent { readFileAsString(file).then((content) => { - MappingSerializerService.deserialize(mappingTree, content); + MappingSerializerService.deserialize(content, targetBodyDocument, mappingTree, sourceParameterMap); refreshMappingTree(); - alert('TODO'); onComplete(); }); }, - [mappingTree, onComplete, refreshMappingTree], + [mappingTree, onComplete, refreshMappingTree, sourceParameterMap, targetBodyDocument], ); useEffect(() => { diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index e5a66368c..e0643e829 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -77,7 +77,7 @@ export class PrimitiveDocument extends BaseDocument implements IField { id: string; } -export abstract class BaseField implements IField { +export class BaseField implements IField { constructor( public parent: IParentType, public ownerDocument: IDocument, diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 3ceb186a6..a6730f09f 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -106,8 +106,17 @@ export class SortItem { order: 'ascending' | 'descending' = 'ascending'; } +export enum ValueType { + VALUE = 'value', + CONTAINER = 'container', + ATTRIBUTE = 'attribute', +} + export class ValueSelector extends ExpressionItem { - constructor(public parent: MappingParentType) { + constructor( + public parent: MappingParentType, + public valueType: ValueType = ValueType.VALUE, + ) { super(parent, 'value'); } } diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index 32e4fbd71..dcfb7afba 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -1,52 +1,64 @@ -import { MappingSerializerService, NS_XSL } from './mapping-serializer.service'; +import { EMPTY_XSL, MappingSerializerService, NS_XSL } from './mapping-serializer.service'; import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../models/document'; import * as fs from 'fs'; import { XmlSchemaDocumentService } from './xml-schema-document.service'; -import { MappingTree } from '../models/mapping'; +import { + ChooseItem, + FieldItem, + ForEachItem, + IfItem, + MappingTree, + OtherwiseItem, + ValueSelector, + WhenItem, +} from '../models/mapping'; import { DocumentType } from '../models/path'; +import { Types } from '../models/types'; -const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); -/*const sourceDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.SOURCE_BODY, - BODY_DOCUMENT_ID, - orderXsd, -); - */ -const sourceParamDoc = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, 'sourceParam1', orderXsd); -sourceParamDoc.name = 'sourceParam1'; -const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); -const sourceParameterMap = new Map([ - ['sourceParam1', sourceParamDoc], - ['primitive', sourcePrimitiveParamDoc], -]); -/* -const targetDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.TARGET_BODY, - BODY_DOCUMENT_ID, - orderXsd, -); +describe('MappingSerializerService', () => { + const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); + /*const sourceDoc = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.SOURCE_BODY, + BODY_DOCUMENT_ID, + orderXsd, + ); + */ + const sourceParamDoc = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, 'sourceParam1', orderXsd); + sourceParamDoc.name = 'sourceParam1'; + const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); + const sourceParameterMap = new Map([ + ['sourceParam1', sourceParamDoc], + ['primitive', sourcePrimitiveParamDoc], + ]); + const targetDoc = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.TARGET_BODY, + BODY_DOCUMENT_ID, + orderXsd, + ); - */ -//const targetPrimitiveDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, 'primitiveTargetBody'); -const domParser = new DOMParser(); -//const xsltProcessor = new XSLTProcessor(); + //const targetPrimitiveDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, 'primitiveTargetBody'); + const domParser = new DOMParser(); + //const xsltProcessor = new XSLTProcessor(); -/* -function getField(doc: IDocument, path: string) { - let answer: IField | IDocument = doc; - const pathSegments = path.split('/'); - for (let i = 1; i < pathSegments.length; i++) { - const f: IField | undefined = answer.fields.find((f) => f.expression === pathSegments[i]); - if (!f) { - throw new Error(`Field ${answer.name} doesn't have a child ${pathSegments[i]}`); + /* + function getField(doc: IDocument, path: string) { + let answer: IField | IDocument = doc; + const pathSegments = path.split('/'); + for (let i = 1; i < pathSegments.length; i++) { + const f: IField | undefined = answer.fields.find((f) => f.expression === pathSegments[i]); + if (!f) { + throw new Error(`Field ${answer.name} doesn't have a child ${pathSegments[i]}`); + } + answer = f; } - answer = f; + return answer; } - return answer; -} -*/ + */ + + const shipOrderToShipOrderXslt = fs + .readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl') + .toString(); -describe('MappingSerializerService', () => { it('createNew() should create am empty XSLT document', () => { const xslt = MappingSerializerService.createNew(); const stylesheet = xslt.getElementsByTagNameNS(NS_XSL, 'stylesheet'); @@ -59,6 +71,138 @@ describe('MappingSerializerService', () => { expect(template[0].localName).toBe('template'); }); + describe('deserialize()', () => { + it('should return an empty MappingTree', () => { + let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + mappingTree = MappingSerializerService.deserialize(EMPTY_XSL, targetDoc, mappingTree, sourceParameterMap); + expect(mappingTree.children.length).toEqual(0); + mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + mappingTree = MappingSerializerService.deserialize('', targetDoc, mappingTree, sourceParameterMap); + expect(mappingTree.children.length).toEqual(0); + }); + + it('should deserialize XSLT', () => { + let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + mappingTree = MappingSerializerService.deserialize( + shipOrderToShipOrderXslt, + targetDoc, + mappingTree, + sourceParameterMap, + ); + expect(mappingTree.children.length).toEqual(1); + const shipOrderFieldItem = mappingTree.children[0] as FieldItem; + expect(shipOrderFieldItem.field.name).toEqual('ShipOrder'); + expect(shipOrderFieldItem.field.type).toEqual(Types.Container); + expect(shipOrderFieldItem.field.isAttribute).toBeFalsy(); + expect(shipOrderFieldItem.field.namespaceURI).toEqual('io.kaoto.datamapper.poc.test'); + expect(shipOrderFieldItem.field.maxOccurs).toEqual(1); + expect(shipOrderFieldItem.children.length).toEqual(4); + + const orderIdFieldItem = shipOrderFieldItem.children[0] as FieldItem; + expect(orderIdFieldItem.field.name).toEqual('OrderId'); + expect(orderIdFieldItem.field.type).not.toEqual(Types.Container); + expect(orderIdFieldItem.field.isAttribute).toBeTruthy(); + expect(orderIdFieldItem.field.namespaceURI).toEqual(''); + expect(orderIdFieldItem.field.maxOccurs).toEqual(1); + expect(orderIdFieldItem.field.expression).toEqual('@OrderId'); + expect(orderIdFieldItem.children.length).toEqual(1); + let selector = orderIdFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('/ShipOrder/@OrderId'); + + const ifItem = shipOrderFieldItem.children[1] as IfItem; + expect(ifItem.expression).toEqual("/ShipOrder/OrderPerson != ''"); + expect(ifItem.children.length).toEqual(1); + const orderPersonFieldItem = ifItem.children[0] as FieldItem; + expect(orderPersonFieldItem.field.name).toEqual('OrderPerson'); + expect(shipOrderFieldItem.field.type).toEqual(Types.Container); + expect(orderPersonFieldItem.field.isAttribute).toBeFalsy(); + expect(orderPersonFieldItem.field.namespaceURI).toEqual('io.kaoto.datamapper.poc.test'); + expect(orderPersonFieldItem.field.maxOccurs).toEqual(1); + expect(orderPersonFieldItem.children.length).toEqual(1); + selector = orderPersonFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('/ShipOrder/OrderPerson'); + + const shipToFieldItem = shipOrderFieldItem.children[2] as FieldItem; + expect(shipToFieldItem.field.name).toEqual('ShipTo'); + expect(shipToFieldItem.field.isAttribute).toBeFalsy(); + expect(shipToFieldItem.field.type).toEqual(Types.Container); + expect(shipToFieldItem.field.namespaceURI).toEqual(''); + expect(shipToFieldItem.field.maxOccurs).toEqual(1); + expect(shipToFieldItem.children.length).toEqual(1); + selector = shipToFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('/ShipOrder/ShipTo'); + + const forEachItem = shipOrderFieldItem.children[3] as ForEachItem; + expect(forEachItem.expression).toEqual('/ShipOrder/Item'); + expect(forEachItem.children.length).toEqual(1); + const itemFieldItem = forEachItem.children[0] as FieldItem; + expect(itemFieldItem.field.name).toEqual('Item'); + expect(itemFieldItem.field.type).toEqual(Types.Container); + expect(itemFieldItem.field.isAttribute).toBeFalsy(); + expect(itemFieldItem.field.namespaceURI).toEqual(''); + expect(itemFieldItem.field.maxOccurs).toBeGreaterThan(1); + expect(itemFieldItem.children.length).toEqual(4); + + const titleFieldItem = itemFieldItem.children[0] as FieldItem; + expect(titleFieldItem.field.name).toEqual('Title'); + expect(titleFieldItem.field.isAttribute).toBeFalsy(); + expect(titleFieldItem.field.type).not.toEqual(Types.Container); + expect(titleFieldItem.field.namespaceURI).toEqual(''); + expect(titleFieldItem.field.maxOccurs).toEqual(1); + expect(titleFieldItem.children.length).toEqual(1); + selector = titleFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('Title'); + + const quantityFieldItem = itemFieldItem.children[1] as FieldItem; + expect(quantityFieldItem.field.name).toEqual('Quantity'); + expect(quantityFieldItem.field.type).not.toEqual(Types.Container); + expect(quantityFieldItem.field.isAttribute).toBeFalsy(); + expect(quantityFieldItem.field.namespaceURI).toEqual(''); + expect(quantityFieldItem.field.maxOccurs).toEqual(1); + expect(quantityFieldItem.children.length).toEqual(1); + selector = quantityFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('Quantity'); + + const priceFieldItem = itemFieldItem.children[2] as FieldItem; + expect(priceFieldItem.field.name).toEqual('Price'); + expect(priceFieldItem.field.type).not.toEqual(Types.Container); + expect(priceFieldItem.field.isAttribute).toBeFalsy(); + expect(priceFieldItem.field.namespaceURI).toEqual(''); + expect(priceFieldItem.field.maxOccurs).toEqual(1); + expect(priceFieldItem.children.length).toEqual(1); + selector = priceFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('Price'); + + const chooseItem = itemFieldItem.children[3] as ChooseItem; + expect(chooseItem.children.length).toEqual(2); + + const whenItem = chooseItem.children[0] as WhenItem; + expect(whenItem.expression).toEqual("Note != ''"); + expect(whenItem.children.length).toEqual(1); + let noteFieldItem = whenItem.children[0] as FieldItem; + expect(noteFieldItem.field.name).toEqual('Note'); + expect(noteFieldItem.field.type).not.toEqual(Types.Container); + expect(noteFieldItem.field.isAttribute).toBeFalsy(); + expect(noteFieldItem.field.namespaceURI).toEqual(''); + expect(noteFieldItem.field.maxOccurs).toEqual(1); + expect(noteFieldItem.children.length).toEqual(1); + selector = noteFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('Note'); + + const otherwiseItem = chooseItem.children[1] as OtherwiseItem; + expect(otherwiseItem.children.length).toEqual(1); + noteFieldItem = otherwiseItem.children[0] as FieldItem; + expect(noteFieldItem.field.name).toEqual('Note'); + expect(noteFieldItem.field.type).not.toEqual(Types.Container); + expect(noteFieldItem.field.isAttribute).toBeFalsy(); + expect(noteFieldItem.field.namespaceURI).toEqual(''); + expect(noteFieldItem.field.maxOccurs).toEqual(1); + expect(noteFieldItem.children.length).toEqual(1); + selector = noteFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('Title'); + }); + }); + describe('serialize()', () => { it('should return an empty XSLT document with empty mappings', () => { const empty = MappingSerializerService.serialize( @@ -74,212 +218,97 @@ describe('MappingSerializerService', () => { expect(template!.childNodes[0].nodeType).toEqual(Node.TEXT_NODE); }); - it('should serialize an attribute mapping', () => { - /* - const serialized = MappingSerializerService.serialize( - [ - { - sourceFields: [getField(sourceDoc, '/ShipOrder/@OrderId')], - targetFields: [getField(targetDoc, '/ShipOrder/@OrderId')], - }, - ] as IMapping[], + it('should serialize mappings', () => { + let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + mappingTree = MappingSerializerService.deserialize( + shipOrderToShipOrderXslt, + targetDoc, + mappingTree, sourceParameterMap, ); - const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); - const xslAttribute = xsltDomDocument + const xslt = MappingSerializerService.serialize(mappingTree, sourceParameterMap); + const xsltDocument = domParser.parseFromString(xslt, 'text/xml'); + const orderIdSelect = xsltDocument .evaluate( - '/xsl:stylesheet/xsl:template/ShipOrder/xsl:attribute', - xsltDomDocument, + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:attribute[@name="OrderId"]/xsl:value-of/@select', + xsltDocument, null, - XPathResult.UNORDERED_NODE_ITERATOR_TYPE, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, ) - .iterateNext() as Element; - expect(xslAttribute.getAttribute('name')).toEqual('OrderId'); - const xslValueOf = xslAttribute.getElementsByTagNameNS(NS_XSL, 'value-of').item(0)!; - expect(xslValueOf.getAttribute('select')).toEqual('/ns0:ShipOrder/@OrderId'); - - const inputString = ` - - foo - `; - xsltProcessor.importStylesheet(xsltDomDocument); - const transformed = xsltProcessor.transformToDocument(domParser.parseFromString(inputString, 'application/xml')); - // jsdom namespace handling is buggy - const shipOrder = transformed.getElementsByTagName('ShipOrder')[0] as Element; - const orderId = shipOrder.getAttribute('OrderId'); - expect(orderId).toEqual('3'); - expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); - - */ - }); - - it('should serialize an element mapping', () => { - /* - const serialized = MappingSerializerService.serialize( - [ - { - sourceFields: [getField(sourceDoc, '/ShipOrder/ShipTo/Name')], - targetFields: [getField(targetDoc, '/ShipOrder/ShipTo/Name')], - }, - ] as IMapping[], - sourceParameterMap, - ); - const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); - const xslValueOf = xsltDomDocument + .iterateNext(); + expect(orderIdSelect?.nodeValue).toEqual('/ShipOrder/@OrderId'); + const ifTest = xsltDocument .evaluate( - '/xsl:stylesheet/xsl:template/ShipOrder/ShipTo/Name/xsl:value-of', - xsltDomDocument, + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:if/@test', + xsltDocument, null, - XPathResult.ANY_TYPE, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, ) - .iterateNext() as Element; - expect(xslValueOf.getAttribute('select')).toEqual('/ns0:ShipOrder/ShipTo/Name'); - - const inputString = ` - - foo - - bar -
    somewhere
    -
    -
    `; - xsltProcessor.importStylesheet(xsltDomDocument); - const transformed = xsltProcessor.transformToDocument(domParser.parseFromString(inputString, 'application/xml')); - // jsdom namespace handling is buggy - const shipOrder = transformed.getElementsByTagName('ShipOrder')[0]; - expect(shipOrder.getAttribute('OrderId')).toBeNull(); - expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); - const shipTo = shipOrder.getElementsByTagName('ShipTo')[0]; - const name = shipTo.getElementsByTagName('Name')[0]; - expect(name.textContent).toEqual('bar'); - expect(shipTo.getElementsByTagName('Address').length).toEqual(0); - - */ - }); - - it('should serialize a container field mapping', () => { - /* - const serialized = MappingSerializerService.serialize( - [ - { - sourceFields: [getField(sourceDoc, '/ShipOrder/Item')], - targetFields: [getField(targetDoc, '/ShipOrder/Item')], - }, - ] as IMapping[], - sourceParameterMap, - ); - const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); - const xslCopyOf = xsltDomDocument - .evaluate('/xsl:stylesheet/xsl:template/ShipOrder/xsl:copy-of', xsltDomDocument, null, XPathResult.ANY_TYPE) - .iterateNext() as Element; - expect(xslCopyOf.getAttribute('select')).toEqual('/ns0:ShipOrder/Item'); - - const inputString = ` - - foo - - bar - - - some title - this element is not defined in the schema - - `; - xsltProcessor.importStylesheet(xsltDomDocument); - const transformed = xsltProcessor.transformToDocument(domParser.parseFromString(inputString, 'application/xml')); - // jsdom namespace handling is buggy - const shipOrder = transformed.getElementsByTagName('ShipOrder')[0]; - expect(shipOrder.getAttribute('OrderId')).toBeNull(); - expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); - expect(shipOrder.getElementsByTagName('ShipTo').length).toEqual(0); - const item = shipOrder.getElementsByTagName('Item')[0]; - const title = item.getElementsByTagName('Title')[0]; - expect(title).toBeTruthy(); - const notInSchema = item.getElementsByTagName('NotInSchema')[0]; - expect(notInSchema).toBeTruthy(); - /* This doesn't work with xslt-ts ATM, although it works fine in XSLT Fiddle, i.e. copy nested values. - expect(title.textContent).toEqual('some title'); - expect(notInSchema.textContent).toEqual('this element is not defined in the schema'); - */ - }); - - it('should serialize structured parameter field mapping', () => { - /* - const serialized = MappingSerializerService.serialize( - [ - { - sourceFields: [getField(sourceParamDoc, '/ShipOrder/Item')], - targetFields: [getField(targetDoc, '/ShipOrder/Item')], - }, - ] as IMapping[], - sourceParameterMap, - ); - const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); - const xslParam = xsltDomDocument - .evaluate('/xsl:stylesheet/xsl:param', xsltDomDocument, null, XPathResult.ANY_TYPE) - .iterateNext() as Element; - expect(xslParam.getAttribute('name')).toEqual('sourceParam1'); - const xslCopyOf = xsltDomDocument - .evaluate('/xsl:stylesheet/xsl:template/ShipOrder/xsl:copy-of', xsltDomDocument, null, XPathResult.ANY_TYPE) - .iterateNext() as Element; - expect(xslCopyOf.getAttribute('select')).toEqual('$sourceParam1/ns0:ShipOrder/Item'); - - const inputString = ` - - foo - - bar - - - some title - this element is not defined in the schema - - `; - const inputDom = domParser.parseFromString(inputString, 'application/xml'); - xsltProcessor.setParameter(null, 'sourceParam1', inputDom); - xsltProcessor.importStylesheet(xsltDomDocument); - const transformed = xsltProcessor.transformToDocument(domParser.parseFromString('', 'application/xml')); - // jsdom namespace handling is buggy - const shipOrder = transformed.getElementsByTagName('ShipOrder')[0]; - expect(shipOrder.getAttribute('OrderId')).toBeNull(); - expect(shipOrder.getElementsByTagName('OrderPerson').length).toEqual(0); - expect(shipOrder.getElementsByTagName('ShipTo').length).toEqual(0); - const item = shipOrder.getElementsByTagName('Item')[0]; - const title = item.getElementsByTagName('Title')[0]; - expect(title).toBeTruthy(); - const notInSchema = item.getElementsByTagName('NotInSchema')[0]; - expect(notInSchema).toBeTruthy(); - - */ - }); - - it('should serialize primitive parameter to primitive target body mapping', () => { - /* - const serialized = MappingSerializerService.serialize( - [ - { - sourceFields: [sourcePrimitiveParamDoc as IField], - targetFields: [targetPrimitiveDoc as IField], - }, - ] as IMapping[], - sourceParameterMap, - ); - const xsltDomDocument = domParser.parseFromString(serialized, 'application/xml'); - const xpathResult = xsltDomDocument.evaluate( - '/xsl:stylesheet/xsl:param', - xsltDomDocument, - null, - XPathResult.ANY_TYPE, - ); - xpathResult.iterateNext(); - const xslParam = xpathResult.iterateNext() as Element; - expect(xslParam.getAttribute('name')).toEqual('primitive'); - const xslValueOf = xsltDomDocument - .evaluate('/xsl:stylesheet/xsl:template/xsl:value-of', xsltDomDocument, null, XPathResult.ANY_TYPE) - .iterateNext() as Element; - expect(xslValueOf.getAttribute('select')).toEqual('$primitive'); - - */ + .iterateNext(); + expect(ifTest?.nodeValue).toEqual("/ShipOrder/OrderPerson != ''"); + const orderPersonSelect = xsltDocument + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:if/OrderPerson/xsl:value-of/@select', + xsltDocument, + null, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext(); + expect(orderPersonSelect?.nodeValue).toEqual('/ShipOrder/OrderPerson'); + const shipToSelect = xsltDocument + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/ShipTo/xsl:copy-of/@select', + xsltDocument, + null, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext(); + expect(shipToSelect?.nodeValue).toEqual('/ShipOrder/ShipTo'); + const forEachSelect = xsltDocument + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:for-each/@select', + xsltDocument, + null, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext(); + expect(forEachSelect?.nodeValue).toEqual('/ShipOrder/Item'); + const titleSelect = xsltDocument + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:for-each/Item/Title/xsl:value-of/@select', + xsltDocument, + null, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext(); + expect(titleSelect?.nodeValue).toEqual('Title'); + const chooseWhenTest = xsltDocument + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:for-each/Item/xsl:choose/xsl:when/@test', + xsltDocument, + null, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext(); + expect(chooseWhenTest?.nodeValue).toEqual("Note != ''"); + const chooseWhenSelect = xsltDocument + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:for-each/Item/xsl:choose/xsl:when/Note/xsl:value-of/@select', + xsltDocument, + null, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext(); + expect(chooseWhenSelect?.nodeValue).toEqual('Note'); + const chooseOtherwiseSelect = xsltDocument + .evaluate( + '/xsl:stylesheet/xsl:template/ShipOrder/xsl:for-each/Item/xsl:choose/xsl:otherwise/Note/xsl:value-of/@select', + xsltDocument, + null, + XPathResult.ORDERED_NODE_ITERATOR_TYPE, + ) + .iterateNext(); + expect(chooseOtherwiseSelect?.nodeValue).toEqual('Title'); }); }); }); diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 49689ce8b..4601567b4 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -1,8 +1,19 @@ -import { BODY_DOCUMENT_ID, IDocument, IField, PrimitiveDocument } from '../models/document'; -import { MappingItem, MappingTree } from '../models/mapping'; +import { BaseField, IDocument, IField, IParentType, PrimitiveDocument } from '../models/document'; +import { + ChooseItem, + FieldItem, + ForEachItem, + IfItem, + MappingItem, + MappingParentType, + MappingTree, + OtherwiseItem, + ValueSelector, + ValueType, + WhenItem, +} from '../models/mapping'; import xmlFormat from 'xml-formatter'; -import { DocumentService } from './document.service'; -import { DocumentType, NodePath } from '../models/path'; +import { DocumentType } from '../models/path'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; export const EMPTY_XSL = ` @@ -12,21 +23,37 @@ export const EMPTY_XSL = ` `; + export class MappingSerializerService { static createNew() { return new DOMParser().parseFromString(EMPTY_XSL, 'application/xml'); } + /** + * Serialize the {@link MappingTree} model object into an XSLT mappings document string. + * @param mappings {@link MappingTree} object to write + * @param sourceParameterMap source paramter map + */ static serialize(mappings: MappingTree, sourceParameterMap: Map): string { const xslt = MappingSerializerService.createNew(); MappingSerializerService.populateParam(xslt, sourceParameterMap); + const template = MappingSerializerService.getRootTemplate(xslt); mappings.children.forEach((mapping) => { - MappingSerializerService.populateMapping(xslt, mapping); + MappingSerializerService.populateMapping(template, mapping); }); return xmlFormat(new XMLSerializer().serializeToString(xslt)); } - static populateParam(xsltDocument: Document, sourceParameterMap: Map) { + private static getRootTemplate(xsltDocument: Document) { + const prefix = xsltDocument.lookupPrefix(NS_XSL); + const nsResolver = xsltDocument.createNSResolver(xsltDocument); + return xsltDocument + .evaluate(`/${prefix}:stylesheet/${prefix}:template[@match='/']`, xsltDocument, nsResolver, XPathResult.ANY_TYPE) + .iterateNext()! as Element; + } + + private static populateParam(xsltDocument: Document, sourceParameterMap: Map) { + const template = MappingSerializerService.getRootTemplate(xsltDocument); sourceParameterMap.forEach((_doc, paramName) => { const prefix = xsltDocument.lookupPrefix(NS_XSL); const nsResolver = xsltDocument.createNSResolver(xsltDocument); @@ -41,147 +68,249 @@ export class MappingSerializerService { if (!existing) { const xsltParam = xsltDocument.createElementNS(NS_XSL, 'param'); xsltParam.setAttribute('name', paramName); - const template = xsltDocument - .evaluate( - `/${prefix}:stylesheet/${prefix}:template[@match='/']`, - xsltDocument, - nsResolver, - XPathResult.ANY_TYPE, - ) - .iterateNext()!; (template.parentNode as Element).insertBefore(xsltParam, template); } }); } - static populateMapping(_xsltDocument: Document, _mapping: MappingItem) { - /* - const source = mapping.source; - const target = mapping.targetFields[0]; - - const prefix = xsltDocument.lookupPrefix(NS_XSL); - const nsResolver = xsltDocument.createNSResolver(xsltDocument); - // jsdom requires `type` to be specified anyway, but if `type` is specified, - // Chrome requires NS Resolver to be explicitly specified. - // Note that `createNSResolver()` returns null with jsdom. - const template = xsltDocument - .evaluate(`/${prefix}:stylesheet/${prefix}:template[@match='/']`, xsltDocument, nsResolver, XPathResult.ANY_TYPE) - .iterateNext() as Element; - if (!template || template.nodeType !== Node.ELEMENT_NODE) { - throw Error('No root template in the XSLT document'); + private static populateMapping(parent: Element, mapping: MappingItem) { + let child: Element | null = null; + if (mapping instanceof ValueSelector) { + child = MappingSerializerService.populateValueSelector(parent, mapping); + } else if (mapping instanceof FieldItem) { + child = MappingSerializerService.populateFieldItem(parent, mapping); + } else if (mapping instanceof IfItem) { + child = MappingSerializerService.populateIfItem(parent, mapping); + } else if (mapping instanceof ChooseItem) { + child = MappingSerializerService.populateChooseItem(parent, mapping); + } else if (mapping instanceof ForEachItem) { + child = MappingSerializerService.populateForEachItem(parent, mapping); + } else if (mapping instanceof WhenItem) { + child = MappingSerializerService.populateWhenItem(parent, mapping); + } else if (mapping instanceof OtherwiseItem) { + child = MappingSerializerService.populateOtherwiseItem(parent, mapping); } - const parent = - target instanceof PrimitiveDocument - ? template - : MappingSerializerService.getOrCreateParent(template as Element, target); - const sourceXPath = mapping.xpath ? mapping.xpath : MappingSerializerService.getXPath(xsltDocument, source); - MappingSerializerService.populateSource(parent, sourceXPath, target); - - */ + if (child) mapping.children.forEach((childItem) => MappingSerializerService.populateMapping(child!, childItem)); } - static getOrCreateParent(template: Element, target: IField) { - if (!('parent' in target)) { - return template; - } - - const xsltDocument = template.ownerDocument; - const fieldStack: IField[] = DocumentService.getFieldStack(target); - let parentNode = template; - while (fieldStack.length) { - const currentField = fieldStack.pop()!; - let element: Element | undefined = undefined; - parentNode.childNodes.forEach((n) => { - if ( - n.nodeType === Node.ELEMENT_NODE && - MappingSerializerService.isInSameNamespace(n as Element, currentField) && - (n as Element).localName === currentField.name - ) { - element = n as Element; - } - }); - if (!element) { - element = xsltDocument.createElementNS(currentField.namespaceURI, currentField.name); - parentNode.appendChild(element); + private static populateValueSelector(parent: Element, selector: ValueSelector) { + const xsltDocument = parent.ownerDocument; + switch (selector.valueType) { + case ValueType.CONTAINER: { + const copyOf = xsltDocument.createElementNS(NS_XSL, 'copy-of'); + copyOf.setAttribute('select', selector.expression); + parent.appendChild(copyOf); + return copyOf; + } + default: { + const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); + valueOf.setAttribute('select', selector.expression); + parent.appendChild(valueOf); + return valueOf; } - parentNode = element; - } - return parentNode; - } - - static isInSameNamespace(element: Element, field: IField) { - if (element.namespaceURI === null || element.namespaceURI === '') { - return field.namespaceURI === null || field.namespaceURI === ''; } - return element.namespaceURI === field.namespaceURI; } - static populateSource(parent: Element, sourceXPath: string, target: IField) { + private static populateFieldItem(parent: Element, mapping: FieldItem) { const xsltDocument = parent.ownerDocument; - if (target.isAttribute) { + if (mapping.field.isAttribute) { const xslAttribute = xsltDocument.createElementNS(NS_XSL, 'attribute'); - xslAttribute.setAttribute('name', target.name); + xslAttribute.setAttribute('name', mapping.field.name); + mapping.field.namespaceURI && xslAttribute.setAttribute('namespace', mapping.field.namespaceURI); parent.appendChild(xslAttribute); - const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); - valueOf.setAttribute('select', sourceXPath); - xslAttribute.appendChild(valueOf); - } else if (target instanceof PrimitiveDocument) { - const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); - valueOf.setAttribute('select', sourceXPath); - parent.appendChild(valueOf); - } else if (target.fields.length > 0) { - const copyOf = xsltDocument.createElementNS(NS_XSL, 'copy-of'); - copyOf.setAttribute('select', sourceXPath); - parent.appendChild(copyOf); + return xslAttribute; } else { - const element = xsltDocument.createElementNS(target.namespaceURI, target.name); + const element = mapping.field.namespaceURI + ? xsltDocument.createElementNS(mapping.field.namespaceURI, mapping.field.name) + : xsltDocument.createElement(mapping.field.name); parent.appendChild(element); - const valueOf = xsltDocument.createElementNS(NS_XSL, 'value-of'); - valueOf.setAttribute('select', sourceXPath); - element.appendChild(valueOf); + return element; } } - static getXPath(_xsltDocument: Document, _source: MappingTree) { - /* - const fieldStack = DocumentService.getFieldStack(source, true); - const pathStack: string[] = []; - while (fieldStack.length) { - const currentField = fieldStack.pop()!; - const prefix = MappingSerializerService.getOrCreateNSPrefix(xsltDocument, currentField.namespaceURI); - pathStack.push(prefix ? prefix + ':' + currentField.expression : currentField.expression); - } - const paramPrefix = - source.ownerDocument.documentType === DocumentType.PARAM ? '$' + source.ownerDocument.documentId : ''; - return source.ownerDocument instanceof PrimitiveDocument ? paramPrefix : paramPrefix + '/' + pathStack.join('/'); + private static populateIfItem(parent: Element, mapping: IfItem) { + const xsltDocument = parent.ownerDocument; + const xslIf = xsltDocument.createElementNS(NS_XSL, 'if'); + xslIf.setAttribute('test', mapping.expression); + parent.appendChild(xslIf); + return xslIf; + } - */ + private static populateChooseItem(parent: Element, _mapping: ChooseItem) { + const xsltDocument = parent.ownerDocument; + const xslChoose = xsltDocument.createElementNS(NS_XSL, 'choose'); + parent.appendChild(xslChoose); + return xslChoose; } - static getOrCreateNSPrefix(xsltDocument: Document, namespace: string | null) { - const rootElement = xsltDocument.documentElement; - if (namespace == null || namespace === '') { - return null; - } - const prefix = rootElement.lookupPrefix(namespace); - if (prefix != null && prefix !== '') { - return prefix; - } - for (let counter = 0; ; counter++) { - const prefix = 'ns' + counter; - const existing = rootElement.lookupNamespaceURI(prefix); - if (!existing) { - rootElement.setAttribute('xmlns:' + prefix, namespace); - return prefix; - } - } + private static populateForEachItem(parent: Element, mapping: ForEachItem) { + const xsltDocument = parent.ownerDocument; + const xslForEach = xsltDocument.createElementNS(NS_XSL, 'for-each'); + xslForEach.setAttribute('select', mapping.expression); + parent.appendChild(xslForEach); + return xslForEach; } - static deserialize(mappingTree: MappingTree, xslt: string): MappingTree { + private static populateWhenItem(parent: Element, mapping: WhenItem) { + const xsltDocument = parent.ownerDocument; + const xslWhen = xsltDocument.createElementNS(NS_XSL, 'when'); + xslWhen.setAttribute('test', mapping.expression); + parent.appendChild(xslWhen); + return xslWhen; + } + + private static populateOtherwiseItem(parent: Element, _mapping: OtherwiseItem) { + const xsltDocument = parent.ownerDocument; + const xslOtherwise = xsltDocument.createElementNS(NS_XSL, 'otherwise'); + parent.appendChild(xslOtherwise); + return xslOtherwise; + } + + /** + * Deserialize the XSLT mappings document into a {@link MappingTree} model object. + * @param xslt XSLT mappings document in string format + * @param targetDocument Target Document + * @param mappingTree {@link MappingTree} object to write + * @param sourceParameterMap source parameter map + */ + static deserialize( + xslt: string, + targetDocument: IDocument, + mappingTree: MappingTree, + sourceParameterMap: Map, + ): MappingTree { mappingTree.children = []; const xsltDoc = new DOMParser().parseFromString(xslt, 'application/xml'); const template = xsltDoc.getElementsByTagNameNS(NS_XSL, 'template')[0]; - template.localName; - return { nodePath: NodePath.fromDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), children: [] }; + if (!template?.children) return mappingTree; + MappingSerializerService.restoreParam(xsltDoc, sourceParameterMap); + Array.from(template.children).forEach((item) => + MappingSerializerService.restoreMapping(item, targetDocument, mappingTree), + ); + return mappingTree; + } + + private static restoreParam(xsltDocument: Document, sourceParameterMap: Map) { + const prefix = xsltDocument.lookupPrefix(NS_XSL); + const nsResolver = xsltDocument.createNSResolver(xsltDocument); + const params = xsltDocument.evaluate( + `/${prefix}:stylesheet/${prefix}:param`, + xsltDocument, + nsResolver, + XPathResult.ANY_TYPE, + ); + let param: Node | null; + while ((param = params.iterateNext())) { + const paramEl = param as Element; + const name = paramEl.getAttribute('name'); + if (!name || sourceParameterMap.has(name)) continue; + sourceParameterMap.set(name, new PrimitiveDocument(DocumentType.PARAM, name)); + } + } + + private static restoreMapping(item: Element, parentField: IParentType, parentMapping: MappingParentType) { + let mappingItem: MappingItem | null = null; + let fieldItem: IParentType | null = null; + if (item.namespaceURI === NS_XSL) { + switch (item.localName) { + case 'copy-of': { + const selector = new ValueSelector(parentMapping, ValueType.CONTAINER); + selector.expression = item.getAttribute('select') || ''; + mappingItem = selector; + break; + } + case 'value-of': { + const valueType = + 'isAttribute' in parentField && parentField.isAttribute ? ValueType.ATTRIBUTE : ValueType.VALUE; + const selector = new ValueSelector(parentMapping, valueType); + selector.expression = item.getAttribute('select') || ''; + mappingItem = selector; + break; + } + case 'if': { + const ifItem = new IfItem(parentMapping); + ifItem.expression = item.getAttribute('test') || ''; + mappingItem = ifItem; + break; + } + case 'choose': { + mappingItem = new ChooseItem(parentMapping); + break; + } + case 'when': { + const whenItem = new WhenItem(parentMapping); + whenItem.expression = item.getAttribute('test') || ''; + mappingItem = whenItem; + break; + } + case 'otherwise': { + mappingItem = new OtherwiseItem(parentMapping); + break; + } + case 'for-each': { + const forEachItem = new ForEachItem(parentMapping); + forEachItem.expression = item.getAttribute('select') || ''; + mappingItem = forEachItem; + break; + } + case 'attribute': { + if (parentField instanceof PrimitiveDocument) return; + const field = MappingSerializerService.getOrCreateAttributeField(item, parentField); + if (!field) return; + fieldItem = field; + mappingItem = new FieldItem(parentMapping, field); + break; + } + } + } else { + if (parentField instanceof PrimitiveDocument) return; + const field = MappingSerializerService.getOrCreateElementField(item, parentField); + if (!field) return; + fieldItem = field; + mappingItem = new FieldItem(parentMapping, field); + } + if (mappingItem) { + parentMapping.children.push(mappingItem); + Array.from(item.children).forEach((childItem) => + MappingSerializerService.restoreMapping(childItem, fieldItem ? fieldItem : parentField, mappingItem!), + ); + } + } + + private static getOrCreateAttributeField(item: Element, parentField: IParentType): IField | null { + const namespace = item.getAttribute('namespace'); + const name = item.getAttribute('name'); + if (!name) return null; + const existing = parentField.fields.find( + (child) => child.name === name && ((!namespace && !child.namespaceURI) || child.namespaceURI === namespace), + ); + if (existing) return existing; + const field = new BaseField( + parentField, + 'ownerDocument' in parentField ? parentField.ownerDocument : parentField, + name, + ); + field.isAttribute = true; + field.expression = '@' + name; + field.namespaceURI = namespace; + parentField.fields.push(field); + return field; + } + + private static getOrCreateElementField(item: Element, parentField: IParentType): IField { + const namespace = item.namespaceURI; + const name = item.localName; + const existing = parentField.fields.find( + (child) => child.name === name && ((!namespace && !child.namespaceURI) || child.namespaceURI === namespace), + ); + if (existing) return existing; + const field = new BaseField( + parentField, + 'ownerDocument' in parentField ? parentField.ownerDocument : parentField, + name, + ); + field.namespaceURI = namespace; + parentField.fields.push(field); + return field; } } diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 7448d36eb..4a7ef03ec 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -11,6 +11,7 @@ import { MappingParentType, ForEachItem, ExpressionItem, + ValueType, } from '../models/mapping'; import { IDocument, IField, PrimitiveDocument } from '../models/document'; import { DocumentService } from './document.service'; @@ -209,7 +210,7 @@ export class MappingService { static mapToDocument(mappingTree: MappingTree, source: PrimitiveDocument | IField) { let valueSelector = mappingTree.children.find((mapping) => mapping instanceof ValueSelector) as ValueSelector; if (!valueSelector) { - valueSelector = new ValueSelector(mappingTree); + valueSelector = MappingService.createValueSelector(mappingTree); mappingTree.children.push(valueSelector); } const path = XPathService.toXPath(source); @@ -219,7 +220,7 @@ export class MappingService { static mapToField(source: PrimitiveDocument | IField, targetFieldItem: MappingItem) { let valueSelector = targetFieldItem?.children.find((child) => child instanceof ValueSelector) as ValueSelector; if (!valueSelector) { - valueSelector = new ValueSelector(targetFieldItem); + valueSelector = MappingService.createValueSelector(targetFieldItem); targetFieldItem.children.push(valueSelector); } const absPath = XPathService.toXPath(source); @@ -227,6 +228,26 @@ export class MappingService { valueSelector.expression = XPathService.addSource(valueSelector.expression, relativePath); } + static createValueSelector(parent: MappingParentType) { + const valueType = parent instanceof MappingTree ? ValueType.VALUE : MappingService.getValueTypeFor(parent); + return new ValueSelector(parent, valueType); + } + + private static getValueTypeFor(mapping: MappingItem): ValueType { + const field = MappingService.getTargetField(mapping); + return field?.isAttribute + ? ValueType.ATTRIBUTE + : field?.fields?.length && field.fields.length > 0 + ? ValueType.CONTAINER + : ValueType.VALUE; + } + + private static getTargetField(mapping: MappingItem) { + let item = mapping; + while (!(item instanceof FieldItem) && !(item.parent instanceof MappingTree)) item = item.parent; + if (item instanceof FieldItem) return item.field; + } + static deleteMappingItem(item: MappingParentType) { item instanceof MappingItem && MappingService.deleteFromParent(item); } diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index f3b00c893..29bb0d788 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -246,7 +246,10 @@ export class VisualizationService { : nodeData.mapping; if (!mapping) return; const existing = mapping.children.find((c: MappingItem) => c instanceof ValueSelector); - if (!existing) mapping.children.push(new ValueSelector(mapping)); + if (!existing) { + const valueSelector = MappingService.createValueSelector(mapping); + mapping.children.push(valueSelector); + } } static engageMapping(mappingTree: MappingTree, sourceNode: SourceNodeDataType, targetNode: TargetNodeData) { diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index 8eb11d214..fec3048d4 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -121,7 +121,7 @@ export class XPathService { const doc = source.ownerDocument; const prefix = doc.documentType === DocumentType.PARAM ? `$${doc.documentId}` : ''; const xpath = DocumentService.getFieldStack(source, true).reduceRight( - (acc, field) => acc + `/${field.name}`, + (acc, field) => acc + `/${field.expression}`, prefix, ); return xpath ? xpath : '.'; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index 129f35107..064f67c75 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -27,6 +27,5 @@ ] }, "include": ["src/**/*"], - "exclude": ["**/_bk_atlasmap/**/*"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/test-resources/ShipOrderToShipOrder.xsl b/test-resources/ShipOrderToShipOrder.xsl new file mode 100644 index 000000000..5ded47cca --- /dev/null +++ b/test-resources/ShipOrderToShipOrder.xsl @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + <xsl:value-of select="Title"/> + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From f8b23a48400212447ede2b7d8aeb0fac217975e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 18:59:58 +0000 Subject: [PATCH 289/471] chore(deps): update dependency husky to v9.1.1 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 77ecb836e..9d7b8c4e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8638,11 +8638,11 @@ __metadata: linkType: hard "husky@npm:^9.0.0": - version: 9.0.11 - resolution: "husky@npm:9.0.11" + version: 9.1.1 + resolution: "husky@npm:9.1.1" bin: - husky: bin.mjs - checksum: 1aebc3334dc7ac6288ff5e1fb72cfb447cfa474e72cf7ba692e8c5698c573ab725c28c6a5088c9f8e6aca5f47d40fa7261beffbc07a4d307ca21656dc4571f07 + husky: bin.js + checksum: d907eee996353b0b6da8e40b6cf6c1274d57470cd984f028a8baf3e17b7bbab57d796345d552971c6629521685297a1ee093128e4bd45c8fc1867c0dbf38086b languageName: node linkType: hard From 09e72b77bb8ef7cb6529790c5535dd10c69254e6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 20 Jul 2024 00:52:16 +0000 Subject: [PATCH 290/471] chore(deps): update dependency @storybook/addon-actions to v8.2.5 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9d7b8c4e8..ac424b1af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3955,8 +3955,8 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.2.4 - resolution: "@storybook/addon-actions@npm:8.2.4" + version: 8.2.5 + resolution: "@storybook/addon-actions@npm:8.2.5" dependencies: "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 @@ -3964,8 +3964,8 @@ __metadata: polished: ^4.2.2 uuid: ^9.0.0 peerDependencies: - storybook: ^8.2.4 - checksum: 9f6d23779bed1545d4deda41603a3e32a43c1639842b64d8b69dc2e10d1c7c44fb945ed23539afe069e3c8828d89bd3b717e13936655285fb0df4645251a0260 + storybook: ^8.2.5 + checksum: 9978463095ebb6623f9f7e05478a73dd2064a34d14002b419d8bfb06d0334cef05f4d685bd1afae718b6e480003c466cd44db55e5cc6a750a8b44157c2ef82a3 languageName: node linkType: hard From 874fc9cc20ed5537dab3938e879832a0d387a8c6 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Sat, 20 Jul 2024 15:52:34 +0900 Subject: [PATCH 291/471] fix: Preserve field order Fixes: #335 --- .../mapping-serializer.service.test.ts | 42 +++++++++---------- packages/ui/src/services/mapping.service.ts | 9 ++-- test-resources/ShipOrderToShipOrder.xsl | 12 +++--- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index dcfb7afba..de4ab339e 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -153,27 +153,7 @@ describe('MappingSerializerService', () => { selector = titleFieldItem.children[0] as ValueSelector; expect(selector.expression).toEqual('Title'); - const quantityFieldItem = itemFieldItem.children[1] as FieldItem; - expect(quantityFieldItem.field.name).toEqual('Quantity'); - expect(quantityFieldItem.field.type).not.toEqual(Types.Container); - expect(quantityFieldItem.field.isAttribute).toBeFalsy(); - expect(quantityFieldItem.field.namespaceURI).toEqual(''); - expect(quantityFieldItem.field.maxOccurs).toEqual(1); - expect(quantityFieldItem.children.length).toEqual(1); - selector = quantityFieldItem.children[0] as ValueSelector; - expect(selector.expression).toEqual('Quantity'); - - const priceFieldItem = itemFieldItem.children[2] as FieldItem; - expect(priceFieldItem.field.name).toEqual('Price'); - expect(priceFieldItem.field.type).not.toEqual(Types.Container); - expect(priceFieldItem.field.isAttribute).toBeFalsy(); - expect(priceFieldItem.field.namespaceURI).toEqual(''); - expect(priceFieldItem.field.maxOccurs).toEqual(1); - expect(priceFieldItem.children.length).toEqual(1); - selector = priceFieldItem.children[0] as ValueSelector; - expect(selector.expression).toEqual('Price'); - - const chooseItem = itemFieldItem.children[3] as ChooseItem; + const chooseItem = itemFieldItem.children[1] as ChooseItem; expect(chooseItem.children.length).toEqual(2); const whenItem = chooseItem.children[0] as WhenItem; @@ -200,6 +180,26 @@ describe('MappingSerializerService', () => { expect(noteFieldItem.children.length).toEqual(1); selector = noteFieldItem.children[0] as ValueSelector; expect(selector.expression).toEqual('Title'); + + const quantityFieldItem = itemFieldItem.children[2] as FieldItem; + expect(quantityFieldItem.field.name).toEqual('Quantity'); + expect(quantityFieldItem.field.type).not.toEqual(Types.Container); + expect(quantityFieldItem.field.isAttribute).toBeFalsy(); + expect(quantityFieldItem.field.namespaceURI).toEqual(''); + expect(quantityFieldItem.field.maxOccurs).toEqual(1); + expect(quantityFieldItem.children.length).toEqual(1); + selector = quantityFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('Quantity'); + + const priceFieldItem = itemFieldItem.children[3] as FieldItem; + expect(priceFieldItem.field.name).toEqual('Price'); + expect(priceFieldItem.field.type).not.toEqual(Types.Container); + expect(priceFieldItem.field.isAttribute).toBeFalsy(); + expect(priceFieldItem.field.namespaceURI).toEqual(''); + expect(priceFieldItem.field.maxOccurs).toEqual(1); + expect(priceFieldItem.children.length).toEqual(1); + selector = priceFieldItem.children[0] as ValueSelector; + expect(selector.expression).toEqual('Price'); }); }); diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 4a7ef03ec..6b2e1c569 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -144,8 +144,7 @@ export class MappingService { static wrapWithItem(wrapped: MappingItem, wrapper: MappingItem) { wrapper.children.push(wrapped); - wrapped.parent.children = wrapped.parent.children.filter((m) => m !== wrapped); - wrapped.parent.children.push(wrapper); + wrapped.parent.children = wrapped.parent.children.map((m) => (m !== wrapped ? m : wrapper)); wrapped.parent = wrapper; } @@ -159,8 +158,10 @@ export class MappingService { static wrapWithChooseWhenOtherwise(wrapped: MappingItem) { const parent = wrapped.parent; - MappingService.addChooseWhenOtherwise(parent, wrapped); - parent.children = parent.children.filter((c) => c !== wrapped); + const chooseItem = new ChooseItem(parent, wrapped && wrapped instanceof FieldItem ? wrapped.field : undefined); + chooseItem.children.push(wrapped); + parent.children = parent.children.map((m) => (m !== wrapped ? m : chooseItem)); + wrapped.parent = chooseItem; } static addChooseWhenOtherwise(parent: MappingParentType, mapping?: MappingItem) { diff --git a/test-resources/ShipOrderToShipOrder.xsl b/test-resources/ShipOrderToShipOrder.xsl index 5ded47cca..77a295a33 100644 --- a/test-resources/ShipOrderToShipOrder.xsl +++ b/test-resources/ShipOrderToShipOrder.xsl @@ -19,12 +19,6 @@ <xsl:value-of select="Title"/> - - - - - - @@ -37,6 +31,12 @@ + + + + + + From dd2fbe3fdfe69e2cd32feeb271172fae89497ff7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 02:28:20 +0000 Subject: [PATCH 292/471] chore(deps): update dependency eslint-plugin-react-refresh to v0.4.9 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ac424b1af..b61511874 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7493,11 +7493,11 @@ __metadata: linkType: hard "eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.8 - resolution: "eslint-plugin-react-refresh@npm:0.4.8" + version: 0.4.9 + resolution: "eslint-plugin-react-refresh@npm:0.4.9" peerDependencies: eslint: ">=7" - checksum: 32b494ae4c4e42217fb49c37d54eaa6bf6e98548041fc9bd8b54b331affb4f9bbae1ac6eb8d2e3493f1a15efc767c12c8c58946c8d5b6045ab9b0a36dd649632 + checksum: 3fa27a9db264c59cddfd74307f59067762b0a9905ccc59aa6fd1fcfe4caa8c0ac52d1f3af394634382c4c8019e1ca6b30cc0fee1c921a3c2fdea8f7889925803 languageName: node linkType: hard From 81f35c305fb77e02d1c0543df061e52686b573c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 03:17:50 +0000 Subject: [PATCH 293/471] chore(deps): update dependency typescript to v5.5.4 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index b61511874..d956415cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13747,22 +13747,22 @@ __metadata: linkType: hard "typescript@npm:^5.0.4, typescript@npm:^5.3.3, typescript@npm:^5.4.4": - version: 5.5.3 - resolution: "typescript@npm:5.5.3" + version: 5.5.4 + resolution: "typescript@npm:5.5.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 4b4f14313484d5c86064d04ba892544801fa551f5cf72719b540b498056fec7fc192d0bbdb2ba1448e759b1548769956da9e43e7c16781e8d8856787b0575004 + checksum: b309040f3a1cd91c68a5a58af6b9fdd4e849b8c42d837b2c2e73f9a4f96a98c4f1ed398a9aab576ee0a4748f5690cf594e6b99dbe61de7839da748c41e6d6ca8 languageName: node linkType: hard "typescript@patch:typescript@^5.0.4#~builtin, typescript@patch:typescript@^5.3.3#~builtin, typescript@patch:typescript@^5.4.4#~builtin": - version: 5.5.3 - resolution: "typescript@patch:typescript@npm%3A5.5.3#~builtin::version=5.5.3&hash=379a07" + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#~builtin::version=5.5.4&hash=379a07" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 3c0f7fe66e0e3a5f6b531b3e20bfe4a846718d20c299a49f39d4594e0bedcf5820cb98b49a9c883f2dde7dc6942affa2c95a775ee0221ca1ef143147761b0e80 + checksum: e14c87e8bd51f9ac741051a2c3bde75b2a3ab17dee2c50239f7e1a0868673f3b7d4d87684df41a59a8f57c6ddc5d06d65d120764d992441af5de07b98cf9c67b languageName: node linkType: hard From bc296a78936874c4c534c04d532336be3994f60c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:40:08 +0000 Subject: [PATCH 294/471] chore(deps): update dependency @types/node to v20.14.12 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d956415cd..2728f1845 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4553,11 +4553,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.11.6, @types/node@npm:^20.14.9": - version: 20.14.11 - resolution: "@types/node@npm:20.14.11" + version: 20.14.12 + resolution: "@types/node@npm:20.14.12" dependencies: undici-types: ~5.26.4 - checksum: 24396dea2bc803c2d2ebfdd31a3e6e93818ba1a5933d63cd0f64fad1e2955a8280ba09338a48ffe68cd84748eec8bee27135045f15661aa389656f67fe0b0924 + checksum: 1dd493d9e27da43fc374b17cf4b956dbd1dfe20ecf4749408a1db046c79b5a39261a2aa7a3f59b79fd1b5632b861ba72837779d812e0d3b6cf5b22f1650fe722 languageName: node linkType: hard From 742454f717e36225e6b19d3d8d252315a9f65caf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 00:40:29 +0000 Subject: [PATCH 295/471] chore(deps): update eslint to v7.17.0 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2728f1845..c14d0e2e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4678,14 +4678,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.16.1 - resolution: "@typescript-eslint/eslint-plugin@npm:7.16.1" + version: 7.17.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.17.0" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.16.1 - "@typescript-eslint/type-utils": 7.16.1 - "@typescript-eslint/utils": 7.16.1 - "@typescript-eslint/visitor-keys": 7.16.1 + "@typescript-eslint/scope-manager": 7.17.0 + "@typescript-eslint/type-utils": 7.17.0 + "@typescript-eslint/utils": 7.17.0 + "@typescript-eslint/visitor-keys": 7.17.0 graphemer: ^1.4.0 ignore: ^5.3.1 natural-compare: ^1.4.0 @@ -4696,25 +4696,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 131f20cf13e4b6ae788fcfd160116148e047fdd5137097165787d819f9a7628ae4c5929ebf8a4728f72fb9af273d68b5e4876ce1fdd407ce6b1e4d985c3fd5ce + checksum: edb0abd0113020e47f6fb0833c1b0fe3dcd45420b6ecbdd141331ead05f69cfa09e790ed469e4ecfb70c05e0fb882c61d409b639edc82cf9046a7fe3c986f544 languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.16.1 - resolution: "@typescript-eslint/parser@npm:7.16.1" + version: 7.17.0 + resolution: "@typescript-eslint/parser@npm:7.17.0" dependencies: - "@typescript-eslint/scope-manager": 7.16.1 - "@typescript-eslint/types": 7.16.1 - "@typescript-eslint/typescript-estree": 7.16.1 - "@typescript-eslint/visitor-keys": 7.16.1 + "@typescript-eslint/scope-manager": 7.17.0 + "@typescript-eslint/types": 7.17.0 + "@typescript-eslint/typescript-estree": 7.17.0 + "@typescript-eslint/visitor-keys": 7.17.0 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: cd0b4bf9f56df4fee34b0a46756e3de9ac151238e6c69918a43363b2a414eb5e05fac86b770f23ac62f04d5c84820ac8ff5c576277ff2b27ca227e3ed6d9c23c + checksum: f0525317af174b5547d0a7ed8eadbbb7bbc1da9e9ab86882ed616b0ffb053170818a48cab2aaa627001ee991ee559630fbe5ad632b3df7cdf4a2b1b07a571907 languageName: node linkType: hard @@ -4728,22 +4728,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/scope-manager@npm:7.16.1" +"@typescript-eslint/scope-manager@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/scope-manager@npm:7.17.0" dependencies: - "@typescript-eslint/types": 7.16.1 - "@typescript-eslint/visitor-keys": 7.16.1 - checksum: 5575e24fecc88e5bd85fc0f44c3952f804dffcc99eca4b6aeaa44a31018d0d86286f608acc793d3e873508a571304f006b37fd23d768598e43afc44d35c55220 + "@typescript-eslint/types": 7.17.0 + "@typescript-eslint/visitor-keys": 7.17.0 + checksum: 0cb77db6243455b47947df693d9b16f8e2b07e14994d755918dcc98693dba97036806d8f80a12bbd5c82f61883d134dd42d25880f20448c1e2376a9d873f9ef8 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/type-utils@npm:7.16.1" +"@typescript-eslint/type-utils@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/type-utils@npm:7.17.0" dependencies: - "@typescript-eslint/typescript-estree": 7.16.1 - "@typescript-eslint/utils": 7.16.1 + "@typescript-eslint/typescript-estree": 7.17.0 + "@typescript-eslint/utils": 7.17.0 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependencies: @@ -4751,7 +4751,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 6128d887189fdabff648931c2d385bd0ad2e8ba11b47a7e35ed962a432bff12611e011ea6137a59452d8ae9715a54c644557b1c00c7b1cf1e4a4f4e126954e9e + checksum: 357a32d75f449cb9112ee9a23644b79c3eada8b023bd2508489cdc97e0a834ab2937712fb95a2aedd3cfb801d9b973280899ab696938908c480af240a22a36ba languageName: node linkType: hard @@ -4762,10 +4762,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/types@npm:7.16.1" - checksum: 5fbcf214deda21fc3e0eaab8052d5f7bf30830bbb2c7fff93d39111091bf74fafc9afad2974937ae96b67e92e508c400c9108b4fa98761411db1c1e5aff19642 +"@typescript-eslint/types@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/types@npm:7.17.0" + checksum: efd4fadf8f3f2496d813338f873564b903fbaaff53f3ce496159c76d49e01f6e2dbbf037f5e7318d0292cca7b6191c8f8462fa31cba1b5c50a11676bbb5df9ba languageName: node linkType: hard @@ -4787,12 +4787,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/typescript-estree@npm:7.16.1" +"@typescript-eslint/typescript-estree@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.17.0" dependencies: - "@typescript-eslint/types": 7.16.1 - "@typescript-eslint/visitor-keys": 7.16.1 + "@typescript-eslint/types": 7.17.0 + "@typescript-eslint/visitor-keys": 7.17.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4802,21 +4802,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 2557c21f0645f9150020821db500b6be367f83e7e80be87fb04fcc7e2e0d5e5b8f413107873cf05485a4c5516f0cadc9b7754fa5b459a451effc98ccf27f4ce6 + checksum: 0f7a7618431c94603c742d1bcb1cb3a5aa646a6ebb3adff89b35db1fe014f9a060d550e6ca5f0ab152615ae129e8a0f84020dda56cd2d2c73386f657dccf7e34 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/utils@npm:7.16.1" +"@typescript-eslint/utils@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/utils@npm:7.17.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.16.1 - "@typescript-eslint/types": 7.16.1 - "@typescript-eslint/typescript-estree": 7.16.1 + "@typescript-eslint/scope-manager": 7.17.0 + "@typescript-eslint/types": 7.17.0 + "@typescript-eslint/typescript-estree": 7.17.0 peerDependencies: eslint: ^8.56.0 - checksum: 129435ab63363c7bdfa0abbabc1e3b59b66b39ea54a018f7706bc703d233c3c98791bb32f69ddec4715f6ffd6c66554f55eb76b3b91fcea9e919734cf23f6ead + checksum: 8371f9d2c81f0364e5f61bd538d89027add9584b1fa965f812a2d878ce1e8e6bc4a9e2d9584f5d07d066062dde6c55b09da4e80f9e6ddfd83d93af57d772f946 languageName: node linkType: hard @@ -4848,13 +4848,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.16.1": - version: 7.16.1 - resolution: "@typescript-eslint/visitor-keys@npm:7.16.1" +"@typescript-eslint/visitor-keys@npm:7.17.0": + version: 7.17.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.17.0" dependencies: - "@typescript-eslint/types": 7.16.1 + "@typescript-eslint/types": 7.17.0 eslint-visitor-keys: ^3.4.3 - checksum: 3d181d42dc9c29f6518343ae6d57b046743888e1d2dd0f3a547a1388564cdea7474c689ac17761a62effc57b3e7b90d5c51ae25e8bd411559a9ee8975094bd54 + checksum: fae45049d06c15473784fc442271a9ebab1d1139246d47f185645a64407669c85c7519ef083886d74c921e34fcc68889f35caa858b345469d8bb26eb9f26728e languageName: node linkType: hard From fb7946a2d62497e98f77404aba5fd56e90abf84d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 08:17:58 +0000 Subject: [PATCH 296/471] chore(deps): update dependency @testing-library/jest-dom to v6.4.8 --- yarn.lock | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index c14d0e2e9..32bacf2c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4024,8 +4024,8 @@ __metadata: linkType: hard "@testing-library/jest-dom@npm:^6.4.2": - version: 6.4.6 - resolution: "@testing-library/jest-dom@npm:6.4.6" + version: 6.4.8 + resolution: "@testing-library/jest-dom@npm:6.4.8" dependencies: "@adobe/css-tools": ^4.4.0 "@babel/runtime": ^7.9.2 @@ -4035,24 +4035,7 @@ __metadata: dom-accessibility-api: ^0.6.3 lodash: ^4.17.21 redent: ^3.0.0 - peerDependencies: - "@jest/globals": ">= 28" - "@types/bun": "*" - "@types/jest": ">= 28" - jest: ">= 28" - vitest: ">= 0.32" - peerDependenciesMeta: - "@jest/globals": - optional: true - "@types/bun": - optional: true - "@types/jest": - optional: true - jest: - optional: true - vitest: - optional: true - checksum: d70acbfc5d842065292dc1b4113ac2b4c2a2b83f9868e454d7f24d97ee92fddf7852e0e079b6eecaf21154bfe6e9ad03eb32e72f16854f64d7ce1ff42288828b + checksum: b601688950e522557c2c6bbc0f026ae31a10583577c8a557814b0eb33648fe82afc06299f3cdb79ff0c5076fd1a6106f3d76e2ca0dde6f7ee0555e63008fbd72 languageName: node linkType: hard From 22f577b15d666e5b000ced7c2f39326317d6193b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 02:40:13 +0000 Subject: [PATCH 297/471] chore(deps): update dependency @storybook/addon-actions to v8.2.6 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 32bacf2c2..b6a4d510f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3955,8 +3955,8 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.2.5 - resolution: "@storybook/addon-actions@npm:8.2.5" + version: 8.2.6 + resolution: "@storybook/addon-actions@npm:8.2.6" dependencies: "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 @@ -3964,8 +3964,8 @@ __metadata: polished: ^4.2.2 uuid: ^9.0.0 peerDependencies: - storybook: ^8.2.5 - checksum: 9978463095ebb6623f9f7e05478a73dd2064a34d14002b419d8bfb06d0334cef05f4d685bd1afae718b6e480003c466cd44db55e5cc6a750a8b44157c2ef82a3 + storybook: ^8.2.6 + checksum: 0295966756be3bd3d8b6e9ff46a0b69698671b0992c5df9ba0d805c1aaae4f671cdd2afa238298beab65f6f00dbdfbddae5f8b383074cda6a673ccc005c4de4c languageName: node linkType: hard From 52d50ce0b993e9c63bbee7645305dcf433dd7605 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 19:38:23 +0000 Subject: [PATCH 298/471] chore(deps): update dependency husky to v9.1.3 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b6a4d510f..4417e16b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8621,11 +8621,11 @@ __metadata: linkType: hard "husky@npm:^9.0.0": - version: 9.1.1 - resolution: "husky@npm:9.1.1" + version: 9.1.3 + resolution: "husky@npm:9.1.3" bin: husky: bin.js - checksum: d907eee996353b0b6da8e40b6cf6c1274d57470cd984f028a8baf3e17b7bbab57d796345d552971c6629521685297a1ee093128e4bd45c8fc1867c0dbf38086b + checksum: 81103f34c8a796f5510c73c4d88af09671d9b559b0dd75975cc0891f24697d7076b6b57c8de03348f03c08da08246d254e6565f841f1c894cab91c23695c3ac6 languageName: node linkType: hard From 26711a6770bca6fde819359124da51c061085be3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:50:08 +0000 Subject: [PATCH 299/471] chore(deps): update dependency vite to v5.3.5 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4417e16b0..b93fdcc72 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13995,8 +13995,8 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.3.4 - resolution: "vite@npm:5.3.4" + version: 5.3.5 + resolution: "vite@npm:5.3.5" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 @@ -14030,7 +14030,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 2dfbab98daf91b86b3d3e535add1d6a982f7087df62f8f4bc219f3ae91a97f38c04683a32ba2457618e804fa93380090ddda5b0c9823a94bdcb53d6044b04732 + checksum: 5412700159e8906fc5ec5ac2cbcbee8a11180803b4a7c85494ae024a4f38d77eb5ab19b556a58745d6981361f8d2e181486f115f8abd4dc6ec3761fcd895e1b2 languageName: node linkType: hard From 13ff9859c84300a4bc02f03c5b3a594b2739a8a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Jul 2024 00:55:40 +0000 Subject: [PATCH 300/471] chore(deps): update dependency @babel/preset-env to v7.25.0 --- yarn.lock | 288 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 225 insertions(+), 63 deletions(-) diff --git a/yarn.lock b/yarn.lock index b93fdcc72..372b299e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,6 +80,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/compat-data@npm:7.25.0" + checksum: 2ddcf8517f15eb03a712707b5d4fb146e4db44f8ebd821c29ca19f2808ee2f013c7b2c1d5d686b255ffbfa417368d61ee563ccd5d3639ed4293ce308a5d5d481 + languageName: node + linkType: hard + "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": version: 7.24.9 resolution: "@babel/core@npm:7.24.9" @@ -139,6 +146,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": ^7.25.0 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: bf25649dde4068bff8e387319bf820f2cb3b1af7b8c0cfba0bd90880656427c8bad96cd5cb6db7058d20cffe93149ee59da16567018ceaa21ecaefbf780a785c + languageName: node + linkType: hard + "@babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -263,6 +282,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + regexpu-core: ^5.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: eff1edbcffa53f361275bfb4449580fe307fafc76d6e7d30d53638198c92462d797f817ccd5624506d42704051a37b29cb6c2a8441c4ea1ee75a5898975f151e + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.6.1": version: 0.6.1 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1" @@ -316,6 +348,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" + dependencies: + "@babel/traverse": ^7.24.8 + "@babel/types": ^7.24.8 + checksum: bf923d05d81b06857f4ca4fe9c528c9c447a58db5ea39595bb559eae2fce01a8266173db0fd6a2ec129d7bbbb9bb22f4e90008252f7c66b422c76630a878a4bc + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.16.7": version: 7.22.15 resolution: "@babel/helper-module-imports@npm:7.22.15" @@ -380,6 +422,20 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-module-transforms@npm:7.25.0" + dependencies: + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-simple-access": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 12270fe101a03e46e68d8166aca423c829472f735cd40b674a50c3061954475c840b0baee57ba546d5a51796715e0db8f781f556fb93e71529e5343bd3b6bd57 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -437,6 +493,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-remap-async-to-generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-wrap-function": ^7.25.0 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 47f3065e43fe9d6128ddb4291ffb9cf031935379265fd13de972b5f241943121f7583efb69cd2e1ecf39e3d0f76f047547d56c3fcc2c853b326fad5465da0bd7 + languageName: node + linkType: hard + "@babel/helper-replace-supers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-replace-supers@npm:7.24.7" @@ -450,6 +519,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-replace-supers@npm:7.25.0" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.24.8 + "@babel/helper-optimise-call-expression": ^7.24.7 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f669fc2487c22d40b808f94b9c3ee41129484d5ef0ba689bdd70f216ff91e10b6b021d2f8cd37e7bdd700235a2a6ae6622526344f064528190383bf661ac65f8 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -547,6 +629,17 @@ __metadata: languageName: node linkType: hard +"@babel/helper-wrap-function@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-wrap-function@npm:7.25.0" + dependencies: + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.0 + "@babel/types": ^7.25.0 + checksum: 0095b4741704066d1687f9bbd5370bb88c733919e4275e49615f70c180208148ff5f24ab58d186ce92f8f5d28eab034ec6617e9264590cc4744c75302857629c + languageName: node + linkType: hard + "@babel/helpers@npm:^7.24.8": version: 7.24.8 resolution: "@babel/helpers@npm:7.24.8" @@ -628,26 +721,46 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" +"@babel/parser@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/parser@npm:7.25.0" + bin: + parser: ./bin/babel-parser.js + checksum: e0f0f5a0d323c8ebaa7caa5a982ce82a87d1f7176939642020beed021024af523e69e30b8918be82d02666742dfe0aad562c65edfd1a696785d76a2882e7904c + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/traverse": ^7.25.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 68d315642b53af143aa17a71eb976cf431b51339aee584e29514a462b81c998636dd54219c2713b5f13e1df89eaf130dfab59683f9116825608708c81696b96c + checksum: d33738813ac3ed45322da80e8111b18303f6ea39e703c271eeb8cc23163f5fc7c16ed7dfdc9489b2e31bd6a620c806db2edfc719b7a91f340b64921a3d304024 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: fd56d1e6435f2c008ca9050ea906ff7eedcbec43f532f2bf2e7e905d8bf75bf5e4295ea9593f060394e2c8e45737266ccbf718050bad2dd7be4e7613c60d1b5b + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0 - checksum: 7eb4e7ce5e3d6db4b0fdbdfaaa301c2e58f38a7ee39d5a4259a1fda61a612e83d3e4bc90fc36fb0345baf57e1e1a071e0caffeb80218623ad163f2fdc2e53a54 + checksum: 13ed301b108d85867d64226bbc4032b07dd1a23aab68e9e32452c4fe3930f2198bb65bdae9c262c4104bd5e45647bc1830d25d43d356ee9a137edd8d5fab8350 languageName: node linkType: hard @@ -664,15 +777,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/traverse": ^7.25.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 8324d458db57060590942c7c2e9603880d07718ccb6450ec935105b8bd3c4393c4b8ada88e178c232258d91f33ffdcf2b1043d54e07a86989e50667ee100a32e + checksum: c8d08b8d6cc71451ad2a50cf7db72ab5b41c1e5e2e4d56cf6837a25a61270abd682c6b8881ab025f11a552d2024b3780519bb051459ebb71c27aed13d9917663 languageName: node linkType: hard @@ -950,17 +1063,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-remap-async-to-generator": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-remap-async-to-generator": ^7.25.0 "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/traverse": ^7.25.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 112e3b18f9c496ebc01209fc27f0b41a3669c479c7bc44f7249383172b432ebaae1e523caa7c6ecbd2d0d7adcb7e5769fe2798f8cb01c08cd57232d1bb6d8ad4 + checksum: cce2bab70ad871ac11751bede006bd4861888f4c63bc9954be38620b14cc6890a4cbc633c1062b89c5fe288ce74b9d1974cc0d43c04baeeb2b13231a236fba85 languageName: node linkType: hard @@ -988,14 +1101,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7" +"@babel/plugin-transform-block-scoping@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 039206155533600f079f3a455f85888dd7d4970ff7ffa85ef44760f4f5acb9f19c9d848cc1fec1b9bdbc0dfec9e8a080b90d0ab66ad2bdc7138b5ca4ba96e61c + checksum: b1a8f932f69ad2a47ae3e02b4cedd2a876bfc2ac9cf72a503fd706cdc87272646fe9eed81e068c0fc639647033de29f7fa0c21cddd1da0026f83dbaac97316a8 languageName: node linkType: hard @@ -1024,21 +1137,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-classes@npm:7.24.8" +"@babel/plugin-transform-classes@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-classes@npm:7.25.0" dependencies: "@babel/helper-annotate-as-pure": ^7.24.7 "@babel/helper-compilation-targets": ^7.24.8 - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-function-name": ^7.24.7 "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-replace-supers": ^7.24.7 - "@babel/helper-split-export-declaration": ^7.24.7 + "@babel/helper-replace-supers": ^7.25.0 + "@babel/traverse": ^7.25.0 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9c0f547d67e255b37055461df9c1a578c29bf59c7055bd5b40b07b92e5448af3ca8d853d50056125b7dae9bfe3a4cf1559d61b9ccbc3d2578dd43f15386f12fe + checksum: ff97f168e6a18fa4e7bb439f1a170dc83c470973091c22c74674769350ab572be5af017cdb64fbd261fe99d068a4ee88f1b7fa7f5ab524d84c2f2833b116e577 languageName: node linkType: hard @@ -1088,6 +1199,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.25.0 + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 608d6b0e77341189508880fd1a9f605a38d0803dd6f678ea3920ab181b17b377f6d5221ae8cf0104c7a044d30d4ddb0366bd064447695671d78457a656bb264f + languageName: node + linkType: hard + "@babel/plugin-transform-dynamic-import@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" @@ -1136,16 +1259,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-function-name@npm:7.24.7" +"@babel/plugin-transform-function-name@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-function-name@npm:7.25.0" dependencies: - "@babel/helper-compilation-targets": ^7.24.7 - "@babel/helper-function-name": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.8 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/traverse": ^7.25.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8eb1a67894a124910b5a67630bed4307757504381f39f0fb5cf82afc7ae8647dbc03b256d13865b73a749b9071b68e9fb8a28cef2369917b4299ebb93fd66146 + checksum: 878700d90ba232b78ffc29d43971e4bd561cdc6a0c287ea45c94b398e0862b5eeff738e71b71e3576cd966e4fa02b3003f7861125f3e862fdda79a73a745910d languageName: node linkType: hard @@ -1233,17 +1356,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" dependencies: - "@babel/helper-hoist-variables": ^7.24.7 - "@babel/helper-module-transforms": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-module-transforms": ^7.25.0 + "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-validator-identifier": ^7.24.7 + "@babel/traverse": ^7.25.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8af7a9db2929991d82cfdf41fb175dee344274d39b39122f8c35f24b5d682f98368e3d8f5130401298bd21412df21d416a7d8b33b59c334fae3d3c762118b1d8 + checksum: fe673bec08564e491847324bb80a1e6edfb229f5c37e58a094d51e95306e7b098e1d130fc43e992d22debd93b9beac74441ffc3f6ea5d78f6b2535896efa0728 languageName: node linkType: hard @@ -1630,17 +1753,18 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.24.8 - resolution: "@babel/preset-env@npm:7.24.8" + version: 7.25.0 + resolution: "@babel/preset-env@npm:7.25.0" dependencies: - "@babel/compat-data": ^7.24.8 + "@babel/compat-data": ^7.25.0 "@babel/helper-compilation-targets": ^7.24.8 "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-validator-option": ^7.24.8 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.7 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.7 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.0 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.25.0 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.25.0 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.7 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.7 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.25.0 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 @@ -1661,29 +1785,30 @@ __metadata: "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 "@babel/plugin-transform-arrow-functions": ^7.24.7 - "@babel/plugin-transform-async-generator-functions": ^7.24.7 + "@babel/plugin-transform-async-generator-functions": ^7.25.0 "@babel/plugin-transform-async-to-generator": ^7.24.7 "@babel/plugin-transform-block-scoped-functions": ^7.24.7 - "@babel/plugin-transform-block-scoping": ^7.24.7 + "@babel/plugin-transform-block-scoping": ^7.25.0 "@babel/plugin-transform-class-properties": ^7.24.7 "@babel/plugin-transform-class-static-block": ^7.24.7 - "@babel/plugin-transform-classes": ^7.24.8 + "@babel/plugin-transform-classes": ^7.25.0 "@babel/plugin-transform-computed-properties": ^7.24.7 "@babel/plugin-transform-destructuring": ^7.24.8 "@babel/plugin-transform-dotall-regex": ^7.24.7 "@babel/plugin-transform-duplicate-keys": ^7.24.7 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.25.0 "@babel/plugin-transform-dynamic-import": ^7.24.7 "@babel/plugin-transform-exponentiation-operator": ^7.24.7 "@babel/plugin-transform-export-namespace-from": ^7.24.7 "@babel/plugin-transform-for-of": ^7.24.7 - "@babel/plugin-transform-function-name": ^7.24.7 + "@babel/plugin-transform-function-name": ^7.25.0 "@babel/plugin-transform-json-strings": ^7.24.7 "@babel/plugin-transform-literals": ^7.24.7 "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 "@babel/plugin-transform-member-expression-literals": ^7.24.7 "@babel/plugin-transform-modules-amd": ^7.24.7 "@babel/plugin-transform-modules-commonjs": ^7.24.8 - "@babel/plugin-transform-modules-systemjs": ^7.24.7 + "@babel/plugin-transform-modules-systemjs": ^7.25.0 "@babel/plugin-transform-modules-umd": ^7.24.7 "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 "@babel/plugin-transform-new-target": ^7.24.7 @@ -1716,7 +1841,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: efea0039dbb089c9cc0b792b9ac0eef949699584b4c622e2abea062b44b1a0fbcda6ad25e2263ae36a69586889b4a22439a1096aa8152b366e3fedd921ae66ac + checksum: 10161771c6dd408e440ea634338eeb0bc9f3619c45513b04ccafb9d6a5ad12a6e01fc16506cbb3ea9e8be2123690be65524f6112662cf38c3fbdcda988f47585 languageName: node linkType: hard @@ -1791,6 +1916,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/parser": ^7.25.0 + "@babel/types": ^7.25.0 + checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b + languageName: node + linkType: hard + "@babel/template@npm:^7.3.3": version: 7.23.9 resolution: "@babel/template@npm:7.23.9" @@ -1838,6 +1974,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/traverse@npm:7.25.0" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.0 + "@babel/template": ^7.25.0 + "@babel/types": ^7.25.0 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 042180f3187ba9bbf14756fdabbe4cae5c72f3c11e03fd993da9c9c0352832aadffbd257468298d7ce40de7052624de1b379c0fa965cea6856880335a0c771ed + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" @@ -1882,6 +2033,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/types@npm:7.25.0" + dependencies: + "@babel/helper-string-parser": ^7.24.8 + "@babel/helper-validator-identifier": ^7.24.7 + to-fast-properties: ^2.0.0 + checksum: 58645192c73ea1adf72b3311c46e6f656bb3f52adb285c3ae0566e62a3d9ea1998449e88c6590501cb7aa9fe3411bb66288c961b9ebb5c4e9c433bad8619efaa + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" From 44b65868fd2b702da5f1864293d0963712d86be3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:05:55 +0000 Subject: [PATCH 301/471] chore(deps): update dependency @types/node to v20.14.13 --- yarn.lock | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 372b299e1..629f71fb4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4697,12 +4697,21 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.11.6, @types/node@npm:^20.14.9": - version: 20.14.12 - resolution: "@types/node@npm:20.14.12" +"@types/node@npm:*": + version: 22.0.0 + resolution: "@types/node@npm:22.0.0" + dependencies: + undici-types: ~6.11.1 + checksum: ef58d59bbffd9a79449ef632ea9a4f3b006496926cac2717368f80fdd152b1937e44093c17c9fac74650309c9d5387bb5c5bf4fd304adafebcbda1e6e4435fe4 + languageName: node + linkType: hard + +"@types/node@npm:^20.11.6, @types/node@npm:^20.14.9": + version: 20.14.13 + resolution: "@types/node@npm:20.14.13" dependencies: undici-types: ~5.26.4 - checksum: 1dd493d9e27da43fc374b17cf4b956dbd1dfe20ecf4749408a1db046c79b5a39261a2aa7a3f59b79fd1b5632b861ba72837779d812e0d3b6cf5b22f1650fe722 + checksum: 928e877aadfea75f3a14c38223674b3a9fb206340ab7b2af3ffe7040c384a55678f235860f6652d18026fd59e44c237d060e3f5ce7b62b1b9e6fb593c9ef39b9 languageName: node linkType: hard @@ -13939,6 +13948,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.11.1": + version: 6.11.1 + resolution: "undici-types@npm:6.11.1" + checksum: d7fc11bded93bc55ef3b88464e856ab061a747cf50ef2eff5df5ba3be18b9fcafe60e1b36a8c99e28aac2eade12891d32a504f2a32422452c44662e598e3b188 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" From b9f6b2b8293980e0446286ffabe1db4939ae0d4f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 00:06:09 +0000 Subject: [PATCH 302/471] fix(deps): update dependency use-debounce to v10.0.2 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 629f71fb4..de9a36545 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14080,11 +14080,11 @@ __metadata: linkType: hard "use-debounce@npm:^10.0.0": - version: 10.0.1 - resolution: "use-debounce@npm:10.0.1" + version: 10.0.2 + resolution: "use-debounce@npm:10.0.2" peerDependencies: react: ">=16.8.0" - checksum: 6b53d2b9b1856bacfa4dffd78234bba744792e1d75c194af0642faf1ac2914ebdcc770ac23b7e59ca999f997d969edf3c75d22362879818927d20d3408dd59db + checksum: 0b036292686c13b38e1b0f10d8d207e755a16d20d21acc41776696f88f83cea77f58d32923546f03ff252d3ebb12078d1d205b67506685608f77ea45e55a2928 languageName: node linkType: hard From b0c2656e7d1e956e8d84b48e93807bfbbfd8a2a0 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 30 Jul 2024 15:37:31 +0900 Subject: [PATCH 303/471] fix: Wrap with "choose-when-otherwise" is broken Fixes: #345 --- packages/ui/src/models/mapping.ts | 39 +++++++++ .../ui/src/services/document.service.test.ts | 17 +--- .../mapping-serializer.service.test.ts | 42 +--------- packages/ui/src/services/mapping.service.ts | 13 ++- .../services/visualization.service.test.ts | 79 +++++++++++++++++++ packages/ui/src/test/test-util.ts | 39 +++++++++ 6 files changed, 173 insertions(+), 56 deletions(-) create mode 100644 packages/ui/src/services/visualization.service.test.ts create mode 100644 packages/ui/src/test/test-util.ts diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index a6730f09f..3d062331d 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -27,6 +27,12 @@ export abstract class MappingItem { get contextPath(): Path | undefined { return this.parent.contextPath; } + protected abstract doClone(): MappingItem; + clone(): MappingItem { + const cloned = this.doClone(); + cloned.children = this.children.map((c) => c.clone()); + return cloned; + } } export class FieldItem extends MappingItem { @@ -36,6 +42,9 @@ export class FieldItem extends MappingItem { ) { super(parent, 'field-' + field.name, field.id); } + doClone() { + return new FieldItem(this.parent, this.field); + } } export abstract class ConditionItem extends MappingItem { @@ -56,12 +65,20 @@ export abstract class ExpressionItem extends ConditionItem { super(parent, name); } expression = ''; + clone() { + const cloned = super.clone() as ExpressionItem; + cloned.expression = this.expression; + return cloned; + } } export class IfItem extends ExpressionItem { constructor(public parent: MappingParentType) { super(parent, 'if'); } + doClone() { + return new IfItem(this.parent); + } } export class ChooseItem extends ConditionItem { @@ -77,18 +94,27 @@ export class ChooseItem extends ConditionItem { get otherwise() { return this.children.find((c) => c instanceof OtherwiseItem) as OtherwiseItem; } + doClone() { + return new ChooseItem(this.parent, this.field); + } } export class WhenItem extends ExpressionItem { constructor(public parent: MappingParentType) { super(parent, 'when'); } + doClone() { + return new WhenItem(this.parent); + } } export class OtherwiseItem extends ConditionItem { constructor(public parent: MappingParentType) { super(parent, 'otherwise'); } + doClone() { + return new OtherwiseItem(this.parent); + } } export class ForEachItem extends ExpressionItem { @@ -99,6 +125,16 @@ export class ForEachItem extends ExpressionItem { return new Path(this.expression, this.parent.contextPath); } sortItems: SortItem[] = []; + doClone() { + const cloned = new ForEachItem(this.parent); + cloned.sortItems = this.sortItems.map((sort) => { + return { + expression: sort.expression, + order: sort.order, + } as SortItem; + }); + return cloned; + } } export class SortItem { @@ -119,6 +155,9 @@ export class ValueSelector extends ExpressionItem { ) { super(parent, 'value'); } + doClone() { + return new ValueSelector(this.parent, this.valueType); + } } export interface IFunctionDefinition { diff --git a/packages/ui/src/services/document.service.test.ts b/packages/ui/src/services/document.service.test.ts index 0e334f57c..3e73563e7 100644 --- a/packages/ui/src/services/document.service.test.ts +++ b/packages/ui/src/services/document.service.test.ts @@ -1,20 +1,9 @@ import { DocumentService } from './document.service'; -import { XmlSchemaDocumentService } from './xml-schema-document.service'; -import * as fs from 'fs'; -import { DocumentType } from '../models/path'; +import { TestUtil } from '../test/test-util'; describe('DocumentService', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); - const sourceDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.SOURCE_BODY, - 'ShipOrder.xsd', - orderXsd, - ); - const targetDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.TARGET_BODY, - 'ShipOrder.xsd', - orderXsd, - ); + const sourceDoc = TestUtil.createSourceOrderDoc(); + const targetDoc = TestUtil.createTargetOrderDoc(); describe('getFieldStack()', () => { it('', () => { diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index de4ab339e..2fb6ceea8 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -1,7 +1,6 @@ import { EMPTY_XSL, MappingSerializerService, NS_XSL } from './mapping-serializer.service'; -import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../models/document'; +import { BODY_DOCUMENT_ID } from '../models/document'; import * as fs from 'fs'; -import { XmlSchemaDocumentService } from './xml-schema-document.service'; import { ChooseItem, FieldItem, @@ -14,46 +13,13 @@ import { } from '../models/mapping'; import { DocumentType } from '../models/path'; import { Types } from '../models/types'; +import { TestUtil } from '../test/test-util'; describe('MappingSerializerService', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); - /*const sourceDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.SOURCE_BODY, - BODY_DOCUMENT_ID, - orderXsd, - ); - */ - const sourceParamDoc = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, 'sourceParam1', orderXsd); - sourceParamDoc.name = 'sourceParam1'; - const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); - const sourceParameterMap = new Map([ - ['sourceParam1', sourceParamDoc], - ['primitive', sourcePrimitiveParamDoc], - ]); - const targetDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.TARGET_BODY, - BODY_DOCUMENT_ID, - orderXsd, - ); + const sourceParameterMap = TestUtil.createParameterMap(); + const targetDoc = TestUtil.createTargetOrderDoc(); - //const targetPrimitiveDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, 'primitiveTargetBody'); const domParser = new DOMParser(); - //const xsltProcessor = new XSLTProcessor(); - - /* - function getField(doc: IDocument, path: string) { - let answer: IField | IDocument = doc; - const pathSegments = path.split('/'); - for (let i = 1; i < pathSegments.length; i++) { - const f: IField | undefined = answer.fields.find((f) => f.expression === pathSegments[i]); - if (!f) { - throw new Error(`Field ${answer.name} doesn't have a child ${pathSegments[i]}`); - } - answer = f; - } - return answer; - } - */ const shipOrderToShipOrderXslt = fs .readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl') diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 6b2e1c569..df4d1758e 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -159,20 +159,25 @@ export class MappingService { static wrapWithChooseWhenOtherwise(wrapped: MappingItem) { const parent = wrapped.parent; const chooseItem = new ChooseItem(parent, wrapped && wrapped instanceof FieldItem ? wrapped.field : undefined); - chooseItem.children.push(wrapped); + const whenItem = MappingService.addWhen(chooseItem); + const otherwiseItem = MappingService.addOtherwise(chooseItem); + whenItem.children = [wrapped]; + wrapped.parent = whenItem; + otherwiseItem.children = [wrapped.clone()]; parent.children = parent.children.map((m) => (m !== wrapped ? m : chooseItem)); - wrapped.parent = chooseItem; } static addChooseWhenOtherwise(parent: MappingParentType, mapping?: MappingItem) { const chooseItem = new ChooseItem(parent, mapping && mapping instanceof FieldItem ? mapping.field : undefined); - parent.children.push(chooseItem); const whenItem = MappingService.addWhen(chooseItem); + const otherwiseItem = MappingService.addOtherwise(chooseItem); if (mapping) { whenItem.children = [mapping]; mapping.parent = whenItem; + otherwiseItem.children = [mapping.clone()]; + parent.children = parent.children.map((m) => (m !== mapping ? m : chooseItem)); } - MappingService.addOtherwise(chooseItem); + if (!parent.children.includes(chooseItem)) parent.children.push(chooseItem); } static addWhen(item: ChooseItem) { diff --git a/packages/ui/src/services/visualization.service.test.ts b/packages/ui/src/services/visualization.service.test.ts new file mode 100644 index 000000000..62ee8efe8 --- /dev/null +++ b/packages/ui/src/services/visualization.service.test.ts @@ -0,0 +1,79 @@ +import { VisualizationService } from './visualization.service'; +import { TargetDocumentNodeData, TargetFieldNodeData, TargetNodeData } from '../models/visualization'; +import { MappingTree } from '../models/mapping'; +import { TestUtil } from '../test/test-util'; + +describe('VisualizationService', () => { + const targetDoc = TestUtil.createTargetOrderDoc(); + + describe('applyIf()', () => { + it('should add If', () => { + const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); + let docNode = new TargetDocumentNodeData(targetDoc, tree); + let docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); + expect(docChildren.length).toEqual(1); + let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren.length).toEqual(4); + expect(shipOrderChildren[0].title).toEqual('OrderId'); + VisualizationService.applyIf(shipOrderChildren[0] as TargetNodeData); + expect(tree.children[0].name).toEqual('field-ShipOrder'); + expect(tree.children[0].children[0].name).toEqual('if'); + docNode = new TargetDocumentNodeData(targetDoc, tree); + docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren[0].title).toEqual('if'); + const ifChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[0]); + expect(ifChildren.length).toEqual(1); + expect(ifChildren[0].title).toEqual('OrderId'); + }); + }); + + describe('applyChooseWhenOtherwise()', () => { + it('should add Choose-When-Otherwise', () => { + const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); + let docNode = new TargetDocumentNodeData(targetDoc, tree); + let docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); + expect(docChildren.length).toEqual(1); + let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren.length).toEqual(4); + expect(shipOrderChildren[1].title).toEqual('OrderPerson'); + VisualizationService.applyChooseWhenOtherwise(shipOrderChildren[1] as TargetNodeData); + expect(tree.children[0].name).toEqual('field-ShipOrder'); + expect(tree.children[0].children[0].name).toEqual('choose'); + docNode = new TargetDocumentNodeData(targetDoc, tree); + docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren[1].title).toEqual('choose'); + const chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[1]); + expect(chooseChildren.length).toEqual(2); + expect(chooseChildren[0].title).toEqual('when'); + const whenChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[0]); + expect(whenChildren.length).toEqual(1); + expect(whenChildren[0].title).toEqual('OrderPerson'); + expect(chooseChildren[1].title).toEqual('otherwise'); + const otherwiseChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[1]); + expect(otherwiseChildren.length).toEqual(1); + expect(otherwiseChildren[0].title).toEqual('OrderPerson'); + }); + }); + + describe('applyForEach()', () => { + it('should add for-each', () => { + const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); + let docNode = new TargetDocumentNodeData(targetDoc, tree); + let docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); + expect(docChildren.length).toEqual(1); + let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren.length).toEqual(4); + expect(shipOrderChildren[3].title).toEqual('Item'); + VisualizationService.applyForEach(shipOrderChildren[3] as TargetFieldNodeData); + docNode = new TargetDocumentNodeData(targetDoc, tree); + docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren[3].title).toEqual('for-each'); + const forEachChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[3]); + expect(forEachChildren.length).toEqual(1); + expect(forEachChildren[0].title).toEqual('Item'); + }); + }); +}); diff --git a/packages/ui/src/test/test-util.ts b/packages/ui/src/test/test-util.ts new file mode 100644 index 000000000..ad9a8f696 --- /dev/null +++ b/packages/ui/src/test/test-util.ts @@ -0,0 +1,39 @@ +import * as fs from 'fs'; +import { XmlSchemaDocumentService } from '../services'; +import { DocumentType } from '../models/path'; +import { IDocument, PrimitiveDocument } from '../models/document'; + +export class TestUtil { + static orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); + + static createSourceOrderDoc() { + return XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.SOURCE_BODY, + 'ShipOrder.xsd', + TestUtil.orderXsd, + ); + } + + static createTargetOrderDoc() { + return XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.TARGET_BODY, + 'ShipOrder.xsd', + TestUtil.orderXsd, + ); + } + + static createParamOrderDoc(name: string) { + const answer = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, name, TestUtil.orderXsd); + answer.name = name; + return answer; + } + + static createParameterMap() { + const sourceParamDoc = TestUtil.createParamOrderDoc('sourceParam1'); + const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); + return new Map([ + ['sourceParam1', sourceParamDoc], + ['primitive', sourcePrimitiveParamDoc], + ]); + } +} From d8dbac04ae73a49c507cc05b911192a80d768de8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:01:32 +0000 Subject: [PATCH 304/471] chore(deps): update dependency husky to v9.1.4 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index de9a36545..99c247b7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8792,11 +8792,11 @@ __metadata: linkType: hard "husky@npm:^9.0.0": - version: 9.1.3 - resolution: "husky@npm:9.1.3" + version: 9.1.4 + resolution: "husky@npm:9.1.4" bin: husky: bin.js - checksum: 81103f34c8a796f5510c73c4d88af09671d9b559b0dd75975cc0891f24697d7076b6b57c8de03348f03c08da08246d254e6565f841f1c894cab91c23695c3ac6 + checksum: 7608a6dfac264876a2ff37f2db8520e0f9f0ea2b810a9ca151548327e9eca0b7ed58a63e0a208d20d3f43b191d8f111edcab46c3c8132c95e10ef7bd7115ee9b languageName: node linkType: hard From 630423b178e82774767209f4e11f4cb059d4b96b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 02:01:53 +0000 Subject: [PATCH 305/471] chore(deps): update dependency stylelint to v16.8.0 --- yarn.lock | 52 ++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index 99c247b7c..292252575 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6853,15 +6853,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.5": - version: 4.3.5 - resolution: "debug@npm:4.3.5" +"debug@npm:^4.3.6": + version: 4.3.6 + resolution: "debug@npm:4.3.6" dependencies: ms: 2.1.2 peerDependenciesMeta: supports-color: optional: true - checksum: 7c002b51e256257f936dda09eb37167df952758c57badf6bf44bdc40b89a4bcb8e5a0a2e4c7b53f97c69e2970dd5272d33a757378a12c8f8e64ea7bf99e8e86e + checksum: 1630b748dea3c581295e02137a9f5cbe2c1d85fea35c1e6597a65ca2b16a6fce68cec61b299d480787ef310ba927dc8c92d3061faba0ad06c6a724672f66be7f languageName: node linkType: hard @@ -11722,6 +11722,13 @@ __metadata: languageName: node linkType: hard +"postcss-resolve-nested-selector@npm:^0.1.4": + version: 0.1.4 + resolution: "postcss-resolve-nested-selector@npm:0.1.4" + checksum: 8de7abd1ae129233480ac123be243e2a722a4bb73fa54fb09cbbe6f10074fac960b9caadad8bc658982b96934080bd7b7f01b622ca7d5d78a25dc9c0532b17cb + languageName: node + linkType: hard + "postcss-safe-parser@npm:^7.0.0": version: 7.0.0 resolution: "postcss-safe-parser@npm:7.0.0" @@ -11740,7 +11747,7 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.1.0": +"postcss-selector-parser@npm:^6.0.10": version: 6.1.0 resolution: "postcss-selector-parser@npm:6.1.0" dependencies: @@ -11760,6 +11767,16 @@ __metadata: languageName: node linkType: hard +"postcss-selector-parser@npm:^6.1.1": + version: 6.1.1 + resolution: "postcss-selector-parser@npm:6.1.1" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: 1c6a5adfc3c19c6e1e7d94f8addb89a5166fcca72c41f11713043d381ecbe82ce66360c5524e904e17b54f7fc9e6a077994ff31238a456bc7320c3e02e88d92e + languageName: node + linkType: hard + "postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" @@ -11802,6 +11819,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.40": + version: 8.4.40 + resolution: "postcss@npm:8.4.40" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.1 + source-map-js: ^1.2.0 + checksum: afd0cc49d2169dcd96c0f17e155c5d75de048956306a3017f1cfa6a7d66b941592245bed20f7796ceeccb2d8967749b623be2c7b010a74f67ea10fb5bdb8ba28 + languageName: node + linkType: hard + "precinct@npm:^11.0.5": version: 11.0.5 resolution: "precinct@npm:11.0.5" @@ -13378,8 +13406,8 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.7.0 - resolution: "stylelint@npm:16.7.0" + version: 16.8.0 + resolution: "stylelint@npm:16.8.0" dependencies: "@csstools/css-parser-algorithms": ^2.7.1 "@csstools/css-tokenizer": ^2.4.1 @@ -13391,7 +13419,7 @@ __metadata: cosmiconfig: ^9.0.0 css-functions-list: ^3.2.2 css-tree: ^2.3.1 - debug: ^4.3.5 + debug: ^4.3.6 fast-glob: ^3.3.2 fastest-levenshtein: ^1.0.16 file-entry-cache: ^9.0.0 @@ -13408,10 +13436,10 @@ __metadata: micromatch: ^4.0.7 normalize-path: ^3.0.0 picocolors: ^1.0.1 - postcss: ^8.4.39 - postcss-resolve-nested-selector: ^0.1.1 + postcss: ^8.4.40 + postcss-resolve-nested-selector: ^0.1.4 postcss-safe-parser: ^7.0.0 - postcss-selector-parser: ^6.1.0 + postcss-selector-parser: ^6.1.1 postcss-value-parser: ^4.2.0 resolve-from: ^5.0.0 string-width: ^4.2.3 @@ -13422,7 +13450,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: b6b3b2772abbdbff02ed9357eb355c6b3056c806301fba0aa62a45eebb93d3e87ea969f03cc8f802de3a50b3b3b008de70536cff91edc09287e640960dd8b5d9 + checksum: fdcd5a44bdbe5666278dc9583dc06facaf19cca14f60e0d3705e496168edafd6a73acf0713d3ff8a5996bdd6d6f40f37423eabf445a2e22ab0942ef74ae6adfe languageName: node linkType: hard From 6e8e4990a5e016643c366db88a6d63d73e27d268 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 03:27:55 +0000 Subject: [PATCH 306/471] chore(deps): update babel monorepo to v7.25.2 --- yarn.lock | 153 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 84 insertions(+), 69 deletions(-) diff --git a/yarn.lock b/yarn.lock index 292252575..0e5f94d02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,33 +80,33 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/compat-data@npm:7.25.0" - checksum: 2ddcf8517f15eb03a712707b5d4fb146e4db44f8ebd821c29ca19f2808ee2f013c7b2c1d5d686b255ffbfa417368d61ee563ccd5d3639ed4293ce308a5d5d481 +"@babel/compat-data@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/compat-data@npm:7.25.2" + checksum: b61bc9da7cfe249f19d08da00f4f0c20550cd9ad5bffcde787c2bf61a8a6fa5b66d92bbd89031f3a6e5495a799a2a2499f2947b6cc7964be41979377473ab132 languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": - version: 7.24.9 - resolution: "@babel/core@npm:7.24.9" + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.24.9 - "@babel/helper-compilation-targets": ^7.24.8 - "@babel/helper-module-transforms": ^7.24.9 - "@babel/helpers": ^7.24.8 - "@babel/parser": ^7.24.8 - "@babel/template": ^7.24.7 - "@babel/traverse": ^7.24.8 - "@babel/types": ^7.24.9 + "@babel/generator": ^7.25.0 + "@babel/helper-compilation-targets": ^7.25.2 + "@babel/helper-module-transforms": ^7.25.2 + "@babel/helpers": ^7.25.0 + "@babel/parser": ^7.25.0 + "@babel/template": ^7.25.0 + "@babel/traverse": ^7.25.2 + "@babel/types": ^7.25.2 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: eae273bee154d6a059e742a2bb7a58b03438a1f70d7909887a28258b29556dc99bcd5cbd41f13cd4755a20b0baf5e82731acb1d3690e02b7a9300fb6d1950e2c + checksum: 9a1ef604a7eb62195f70f9370cec45472a08114e3934e3eaaedee8fd754edf0730e62347c7b4b5e67d743ce57b5bb8cf3b92459482ca94d06e06246ef021390a languageName: node linkType: hard @@ -134,18 +134,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.24.9": - version: 7.24.9 - resolution: "@babel/generator@npm:7.24.9" - dependencies: - "@babel/types": ^7.24.9 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: 3748f6528c7c5f9382b733611a6921d6eee4d518cfeb3598024158226579f0dbde449e6f6b6b4039210b09dfedda1bad3d1ecb35fe266fe72aa64afa49a00a6d - languageName: node - linkType: hard - "@babel/generator@npm:^7.25.0": version: 7.25.0 resolution: "@babel/generator@npm:7.25.0" @@ -237,6 +225,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-compilation-targets@npm:7.25.2" + dependencies: + "@babel/compat-data": ^7.25.2 + "@babel/helper-validator-option": ^7.24.8 + browserslist: ^4.23.1 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: aed33c5496cb9db4b5e2d44e26bf8bc474074cc7f7bb5ebe1d4a20fdeb362cb3ba9e1596ca18c7484bcd6e5c3a155ab975e420d520c0ae60df81f9de04d0fd16 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" @@ -407,32 +408,31 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.9": - version: 7.24.9 - resolution: "@babel/helper-module-transforms@npm:7.24.9" +"@babel/helper-module-transforms@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-module-transforms@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": ^7.24.7 "@babel/helper-module-imports": ^7.24.7 "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-split-export-declaration": ^7.24.7 "@babel/helper-validator-identifier": ^7.24.7 + "@babel/traverse": ^7.25.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: ffcf11b678a8d3e6a243285cb5262c37f4d47d507653420c1f7f0bd27076e88177f2b7158850d1a470fcfe923426a2e6571c554c455a90c9755ff488ac36ac40 + checksum: 12270fe101a03e46e68d8166aca423c829472f735cd40b674a50c3061954475c840b0baee57ba546d5a51796715e0db8f781f556fb93e71529e5343bd3b6bd57 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-module-transforms@npm:7.25.0" +"@babel/helper-module-transforms@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-module-transforms@npm:7.25.2" dependencies: "@babel/helper-module-imports": ^7.24.7 "@babel/helper-simple-access": ^7.24.7 "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.0 + "@babel/traverse": ^7.25.2 peerDependencies: "@babel/core": ^7.0.0 - checksum: 12270fe101a03e46e68d8166aca423c829472f735cd40b674a50c3061954475c840b0baee57ba546d5a51796715e0db8f781f556fb93e71529e5343bd3b6bd57 + checksum: 282d4e3308df6746289e46e9c39a0870819630af5f84d632559171e4fae6045684d771a65f62df3d569e88ccf81dc2def78b8338a449ae3a94bb421aa14fc367 languageName: node linkType: hard @@ -640,13 +640,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helpers@npm:7.24.8" +"@babel/helpers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helpers@npm:7.25.0" dependencies: - "@babel/template": ^7.24.7 - "@babel/types": ^7.24.8 - checksum: 2d7301b1b9c91e518c4766bae171230e243d98461c15eabbd44f8f9c83c297fad5c4a64ad80cfec9ca8e90412fc2b41ee86d7eb35dc8a7611c268bcf1317fe46 + "@babel/template": ^7.25.0 + "@babel/types": ^7.25.0 + checksum: 739e3704ff41a30f5eaac469b553f4d3ab02be6ced083f5925851532dfbd9efc5c347728e77b754ed0b262a4e5e384e60932a62c192d338db7e4b7f3adf9f4a7 languageName: node linkType: hard @@ -1259,16 +1259,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-function-name@npm:7.25.0" +"@babel/plugin-transform-function-name@npm:^7.25.1": + version: 7.25.1 + resolution: "@babel/plugin-transform-function-name@npm:7.25.1" dependencies: "@babel/helper-compilation-targets": ^7.24.8 "@babel/helper-plugin-utils": ^7.24.8 - "@babel/traverse": ^7.25.0 + "@babel/traverse": ^7.25.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 878700d90ba232b78ffc29d43971e4bd561cdc6a0c287ea45c94b398e0862b5eeff738e71b71e3576cd966e4fa02b3003f7861125f3e862fdda79a73a745910d + checksum: 743f3ea03bbc5a90944849d5a880b6bd9243dddbde581a46952da76e53a0b74c1e2424133fe8129d7a152c1f8c872bcd27e0b6728d7caadabd1afa7bb892e1e0 languageName: node linkType: hard @@ -1284,14 +1284,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-literals@npm:7.24.7" +"@babel/plugin-transform-literals@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/plugin-transform-literals@npm:7.25.2" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3c075cc093a3dd9e294b8b7d6656e65f889e7ca2179ca27978dcd65b4dc4885ebbfb327408d7d8f483c55547deed00ba840956196f3ac8a3c3d2308a330a8c23 + checksum: 70c9bb40e377a306bd8f500899fb72127e527517914466e95dc6bb53fa7a0f51479db244a54a771b5780fc1eab488fedd706669bf11097b81a23c81ab7423eb1 languageName: node linkType: hard @@ -1753,11 +1753,11 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.25.0 - resolution: "@babel/preset-env@npm:7.25.0" + version: 7.25.2 + resolution: "@babel/preset-env@npm:7.25.2" dependencies: - "@babel/compat-data": ^7.25.0 - "@babel/helper-compilation-targets": ^7.24.8 + "@babel/compat-data": ^7.25.2 + "@babel/helper-compilation-targets": ^7.25.2 "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-validator-option": ^7.24.8 "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.0 @@ -1801,9 +1801,9 @@ __metadata: "@babel/plugin-transform-exponentiation-operator": ^7.24.7 "@babel/plugin-transform-export-namespace-from": ^7.24.7 "@babel/plugin-transform-for-of": ^7.24.7 - "@babel/plugin-transform-function-name": ^7.25.0 + "@babel/plugin-transform-function-name": ^7.25.1 "@babel/plugin-transform-json-strings": ^7.24.7 - "@babel/plugin-transform-literals": ^7.24.7 + "@babel/plugin-transform-literals": ^7.25.2 "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 "@babel/plugin-transform-member-expression-literals": ^7.24.7 "@babel/plugin-transform-modules-amd": ^7.24.7 @@ -1841,7 +1841,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10161771c6dd408e440ea634338eeb0bc9f3619c45513b04ccafb9d6a5ad12a6e01fc16506cbb3ea9e8be2123690be65524f6112662cf38c3fbdcda988f47585 + checksum: ef056a50bbf984e9e9cb1a841df705b742629c20aa4df3757a3e855bd64430b5f414f7e0e9f124ba5ce7118976215648973c886c96c30b281d8d2c3c05f44878 languageName: node linkType: hard @@ -1989,6 +1989,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/traverse@npm:7.25.2" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.0 + "@babel/template": ^7.25.0 + "@babel/types": ^7.25.2 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 281bb367d78735d3a84b342b6021d57ef21827fb5049dc298c509bd3880470e9979bc2a87ec8d6da27856c08a0fc94d7feb29e8e03f8f0efa5d3f2904ac65779 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" @@ -2022,25 +2037,25 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.24.9": - version: 7.24.9 - resolution: "@babel/types@npm:7.24.9" +"@babel/types@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/types@npm:7.25.0" dependencies: "@babel/helper-string-parser": ^7.24.8 "@babel/helper-validator-identifier": ^7.24.7 to-fast-properties: ^2.0.0 - checksum: 15cb05c45be5d4c49a749575d3742bd005d0e2e850c13fb462754983a5bc1063fbc8f6566246fc064e3e8b21a5a75a37a948f1b3f27189cc90b236fee93f5e51 + checksum: 58645192c73ea1adf72b3311c46e6f656bb3f52adb285c3ae0566e62a3d9ea1998449e88c6590501cb7aa9fe3411bb66288c961b9ebb5c4e9c433bad8619efaa languageName: node linkType: hard -"@babel/types@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/types@npm:7.25.0" +"@babel/types@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" dependencies: "@babel/helper-string-parser": ^7.24.8 "@babel/helper-validator-identifier": ^7.24.7 to-fast-properties: ^2.0.0 - checksum: 58645192c73ea1adf72b3311c46e6f656bb3f52adb285c3ae0566e62a3d9ea1998449e88c6590501cb7aa9fe3411bb66288c961b9ebb5c4e9c433bad8619efaa + checksum: f73f66ba903c6f7e38f519a33d53a67d49c07e208e59ea65250362691dc546c6da7ab90ec66ee79651ef697329872f6f97eb19a6dfcacc026fd05e76a563c5d2 languageName: node linkType: hard From 0ccfc73417aeae238299846ea52f0f644646b909 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 03:28:15 +0000 Subject: [PATCH 307/471] chore(deps): update eslint to v7.18.0 --- yarn.lock | 96 +++++++++++++++++++++++++++---------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0e5f94d02..7e66390f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4847,14 +4847,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.17.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.17.0" + version: 7.18.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.17.0 - "@typescript-eslint/type-utils": 7.17.0 - "@typescript-eslint/utils": 7.17.0 - "@typescript-eslint/visitor-keys": 7.17.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/type-utils": 7.18.0 + "@typescript-eslint/utils": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 graphemer: ^1.4.0 ignore: ^5.3.1 natural-compare: ^1.4.0 @@ -4865,25 +4865,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: edb0abd0113020e47f6fb0833c1b0fe3dcd45420b6ecbdd141331ead05f69cfa09e790ed469e4ecfb70c05e0fb882c61d409b639edc82cf9046a7fe3c986f544 + checksum: dfcf150628ca2d4ccdfc20b46b0eae075c2f16ef5e70d9d2f0d746acf4c69a09f962b93befee01a529f14bbeb3e817b5aba287d7dd0edc23396bc5ed1f448c3d languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.0.0": - version: 7.17.0 - resolution: "@typescript-eslint/parser@npm:7.17.0" + version: 7.18.0 + resolution: "@typescript-eslint/parser@npm:7.18.0" dependencies: - "@typescript-eslint/scope-manager": 7.17.0 - "@typescript-eslint/types": 7.17.0 - "@typescript-eslint/typescript-estree": 7.17.0 - "@typescript-eslint/visitor-keys": 7.17.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 debug: ^4.3.4 peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: f0525317af174b5547d0a7ed8eadbbb7bbc1da9e9ab86882ed616b0ffb053170818a48cab2aaa627001ee991ee559630fbe5ad632b3df7cdf4a2b1b07a571907 + checksum: 132b56ac3b2d90b588d61d005a70f6af322860974225b60201cbf45abf7304d67b7d8a6f0ade1c188ac4e339884e78d6dcd450417f1481998f9ddd155bab0801 languageName: node linkType: hard @@ -4897,22 +4897,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/scope-manager@npm:7.17.0" +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" dependencies: - "@typescript-eslint/types": 7.17.0 - "@typescript-eslint/visitor-keys": 7.17.0 - checksum: 0cb77db6243455b47947df693d9b16f8e2b07e14994d755918dcc98693dba97036806d8f80a12bbd5c82f61883d134dd42d25880f20448c1e2376a9d873f9ef8 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 + checksum: b982c6ac13d8c86bb3b949c6b4e465f3f60557c2ccf4cc229799827d462df56b9e4d3eaed7711d79b875422fc3d71ec1ebcb5195db72134d07c619e3c5506b57 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/type-utils@npm:7.17.0" +"@typescript-eslint/type-utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/type-utils@npm:7.18.0" dependencies: - "@typescript-eslint/typescript-estree": 7.17.0 - "@typescript-eslint/utils": 7.17.0 + "@typescript-eslint/typescript-estree": 7.18.0 + "@typescript-eslint/utils": 7.18.0 debug: ^4.3.4 ts-api-utils: ^1.3.0 peerDependencies: @@ -4920,7 +4920,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 357a32d75f449cb9112ee9a23644b79c3eada8b023bd2508489cdc97e0a834ab2937712fb95a2aedd3cfb801d9b973280899ab696938908c480af240a22a36ba + checksum: 68fd5df5146c1a08cde20d59b4b919acab06a1b06194fe4f7ba1b928674880249890785fbbc97394142f2ef5cff5a7fba9b8a940449e7d5605306505348e38bc languageName: node linkType: hard @@ -4931,10 +4931,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/types@npm:7.17.0" - checksum: efd4fadf8f3f2496d813338f873564b903fbaaff53f3ce496159c76d49e01f6e2dbbf037f5e7318d0292cca7b6191c8f8462fa31cba1b5c50a11676bbb5df9ba +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 7df2750cd146a0acd2d843208d69f153b458e024bbe12aab9e441ad2c56f47de3ddfeb329c4d1ea0079e2577fea4b8c1c1ce15315a8d49044586b04fedfe7a4d languageName: node linkType: hard @@ -4956,12 +4956,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.17.0" +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" dependencies: - "@typescript-eslint/types": 7.17.0 - "@typescript-eslint/visitor-keys": 7.17.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/visitor-keys": 7.18.0 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -4971,21 +4971,21 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 0f7a7618431c94603c742d1bcb1cb3a5aa646a6ebb3adff89b35db1fe014f9a060d550e6ca5f0ab152615ae129e8a0f84020dda56cd2d2c73386f657dccf7e34 + checksum: c82d22ec9654973944f779eb4eb94c52f4a6eafaccce2f0231ff7757313f3a0d0256c3252f6dfe6d43f57171d09656478acb49a629a9d0c193fb959bc3f36116 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/utils@npm:7.17.0" +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.17.0 - "@typescript-eslint/types": 7.17.0 - "@typescript-eslint/typescript-estree": 7.17.0 + "@typescript-eslint/scope-manager": 7.18.0 + "@typescript-eslint/types": 7.18.0 + "@typescript-eslint/typescript-estree": 7.18.0 peerDependencies: eslint: ^8.56.0 - checksum: 8371f9d2c81f0364e5f61bd538d89027add9584b1fa965f812a2d878ce1e8e6bc4a9e2d9584f5d07d066062dde6c55b09da4e80f9e6ddfd83d93af57d772f946 + checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 languageName: node linkType: hard @@ -5017,13 +5017,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.17.0": - version: 7.17.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.17.0" +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" dependencies: - "@typescript-eslint/types": 7.17.0 + "@typescript-eslint/types": 7.18.0 eslint-visitor-keys: ^3.4.3 - checksum: fae45049d06c15473784fc442271a9ebab1d1139246d47f185645a64407669c85c7519ef083886d74c921e34fcc68889f35caa858b345469d8bb26eb9f26728e + checksum: 6e806a7cdb424c5498ea187a5a11d0fef7e4602a631be413e7d521e5aec1ab46ba00c76cfb18020adaa0a8c9802354a163bfa0deb74baa7d555526c7517bb158 languageName: node linkType: hard From d2f95fca49191a960121f00e4a80aaf40d2c2ac1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jul 2024 00:32:27 +0000 Subject: [PATCH 308/471] chore(deps): update dependency stylelint to v16.8.1 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7e66390f3..c8b4c2b23 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13421,8 +13421,8 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.8.0 - resolution: "stylelint@npm:16.8.0" + version: 16.8.1 + resolution: "stylelint@npm:16.8.1" dependencies: "@csstools/css-parser-algorithms": ^2.7.1 "@csstools/css-tokenizer": ^2.4.1 @@ -13465,7 +13465,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: fdcd5a44bdbe5666278dc9583dc06facaf19cca14f60e0d3705e496168edafd6a73acf0713d3ff8a5996bdd6d6f40f37423eabf445a2e22ab0942ef74ae6adfe + checksum: 4fe1695901b15b04b25b038835901803e2b0af5cd79c516f99c69c7bb2904807c1a6d4824a677c2a89b75a7a318e82348aa29bd2ddd855696f5ea35acb77c3c1 languageName: node linkType: hard From 174e3f7267536e0278a8dfbdfeb22d81dafc0ec8 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 22 Jul 2024 16:44:23 +0900 Subject: [PATCH 309/471] fix: Collect namespaces Fixes: #275 --- packages/ui/src/models/document.ts | 8 +++--- packages/ui/src/models/mapping.ts | 6 ++++- .../ui/src/providers/DataMapperProvider.tsx | 1 + packages/ui/src/services/document.service.ts | 15 ++++++++++- .../mapping-serializer.service.test.ts | 25 ++++++++++-------- .../services/mapping-serializer.service.ts | 20 +++++++++++++- .../ui/src/services/mapping.service.test.ts | 2 +- packages/ui/src/services/mapping.service.ts | 26 ++++++++++++++++--- .../ui/src/services/visualization.service.ts | 4 +-- .../services/xml-schema-document.service.ts | 1 - .../ui/src/services/xpath/xpath.service.ts | 4 +-- test-resources/ShipOrderToShipOrder.xsl | 12 ++++----- 12 files changed, 89 insertions(+), 35 deletions(-) diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index e0643e829..f1601bbb3 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -22,13 +22,13 @@ export interface IField { id: string; name: string; path: NodePath; - expression: string; type: Types; fields: IField[]; isAttribute: boolean; defaultValue: string | null; minOccurs: number; maxOccurs: number; + namespacePrefix: string | null; namespaceURI: string | null; } @@ -38,7 +38,6 @@ export interface IDocument { name: string; schemaType: string; fields: IField[]; - namespaces?: INamespace[]; path: NodePath; } @@ -60,16 +59,15 @@ export class PrimitiveDocument extends BaseDocument implements IField { super(documentType, documentId); this.name = this.documentId; this.id = this.documentId; - this.expression = this.documentId; this.path = NodePath.fromDocument(documentType, documentId); } ownerDocument: IDocument = this; defaultValue: string | null = null; - expression: string = ''; isAttribute: boolean = false; maxOccurs: number = 1; minOccurs: number = 0; + namespacePrefix: string | null = null; namespaceURI: string | null = null; parent: IParentType = this; type = Types.AnyType; @@ -91,10 +89,10 @@ export class BaseField implements IField { path: NodePath; fields: IField[] = []; isAttribute: boolean = false; - expression: string = ''; type = Types.AnyType; minOccurs: number = DEFAULT_MIN_OCCURS; maxOccurs: number = DEFAULT_MAX_OCCURS; defaultValue: string | null = null; + namespacePrefix: string | null = null; namespaceURI: string | null = null; } diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 3d062331d..99fc47bdd 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -12,6 +12,7 @@ export class MappingTree { children: MappingItem[] = []; nodePath: NodePath; contextPath?: Path; + namespaceMap: { [prefix: string]: string } = {}; } export abstract class MappingItem { @@ -19,7 +20,10 @@ export abstract class MappingItem { public parent: MappingParentType, public name: string, public id: string, - ) {} + ) { + this.mappingTree = parent instanceof MappingTree ? parent : parent.mappingTree; + } + mappingTree: MappingTree; children: MappingItem[] = []; get nodePath(): NodePath { return NodePath.childOf(this.parent.nodePath, this.id); diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index 38dfcd9ce..5d0e114d7 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -68,6 +68,7 @@ export const DataMapperProvider: FunctionComponent = (props) child.parent = newMapping; return child; }); + newMapping.namespaceMap = mappingTree.namespaceMap; setMappingTree(newMapping); }, [mappingTree]); diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index deaa8e53c..48e0f8715 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -30,7 +30,7 @@ export class DocumentService { let parent: IDocument | IField = document; for (const segment of pathSegments) { if (!segment) continue; - const child: IField | undefined = parent.fields.find((f) => f.expression === segment); + const child: IField | undefined = parent.fields.find((f) => DocumentService.getFieldExpression(f) === segment); if (!child) { return undefined; } @@ -42,4 +42,17 @@ export class DocumentService { static getFieldFromPathExpression(document: IDocument, pathExpression: string) { return DocumentService.getFieldFromPathSegments(document, pathExpression.split('/')); } + + static getFieldExpression(field: IField) { + return field.isAttribute ? `@${field.name}` : field.name; + } + + static getFieldExpressionNS(field: IField, namespaceMap: { [prefix: string]: string }) { + let answer = field.isAttribute ? '@' : ''; + const nsPair = + field.namespaceURI && + Object.entries(namespaceMap).find(([prefix, uri]) => prefix && uri && field.namespaceURI === uri); + if (nsPair) answer += nsPair[0] + ':'; + return answer + field.name; + } } diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index 2fb6ceea8..9ae700f34 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -49,12 +49,15 @@ describe('MappingSerializerService', () => { it('should deserialize XSLT', () => { let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + expect(Object.keys(mappingTree.namespaceMap).length).toEqual(0); mappingTree = MappingSerializerService.deserialize( shipOrderToShipOrderXslt, targetDoc, mappingTree, sourceParameterMap, ); + expect(Object.keys(mappingTree.namespaceMap).length).toEqual(1); + expect(mappingTree.namespaceMap['ns0']).toEqual('io.kaoto.datamapper.poc.test'); expect(mappingTree.children.length).toEqual(1); const shipOrderFieldItem = mappingTree.children[0] as FieldItem; expect(shipOrderFieldItem.field.name).toEqual('ShipOrder'); @@ -70,13 +73,12 @@ describe('MappingSerializerService', () => { expect(orderIdFieldItem.field.isAttribute).toBeTruthy(); expect(orderIdFieldItem.field.namespaceURI).toEqual(''); expect(orderIdFieldItem.field.maxOccurs).toEqual(1); - expect(orderIdFieldItem.field.expression).toEqual('@OrderId'); expect(orderIdFieldItem.children.length).toEqual(1); let selector = orderIdFieldItem.children[0] as ValueSelector; - expect(selector.expression).toEqual('/ShipOrder/@OrderId'); + expect(selector.expression).toEqual('/ns0:ShipOrder/@OrderId'); const ifItem = shipOrderFieldItem.children[1] as IfItem; - expect(ifItem.expression).toEqual("/ShipOrder/OrderPerson != ''"); + expect(ifItem.expression).toEqual("/ns0:ShipOrder/ns0:OrderPerson != ''"); expect(ifItem.children.length).toEqual(1); const orderPersonFieldItem = ifItem.children[0] as FieldItem; expect(orderPersonFieldItem.field.name).toEqual('OrderPerson'); @@ -86,7 +88,7 @@ describe('MappingSerializerService', () => { expect(orderPersonFieldItem.field.maxOccurs).toEqual(1); expect(orderPersonFieldItem.children.length).toEqual(1); selector = orderPersonFieldItem.children[0] as ValueSelector; - expect(selector.expression).toEqual('/ShipOrder/OrderPerson'); + expect(selector.expression).toEqual('/ns0:ShipOrder/ns0:OrderPerson'); const shipToFieldItem = shipOrderFieldItem.children[2] as FieldItem; expect(shipToFieldItem.field.name).toEqual('ShipTo'); @@ -96,10 +98,10 @@ describe('MappingSerializerService', () => { expect(shipToFieldItem.field.maxOccurs).toEqual(1); expect(shipToFieldItem.children.length).toEqual(1); selector = shipToFieldItem.children[0] as ValueSelector; - expect(selector.expression).toEqual('/ShipOrder/ShipTo'); + expect(selector.expression).toEqual('/ns0:ShipOrder/ShipTo'); const forEachItem = shipOrderFieldItem.children[3] as ForEachItem; - expect(forEachItem.expression).toEqual('/ShipOrder/Item'); + expect(forEachItem.expression).toEqual('/ns0:ShipOrder/Item'); expect(forEachItem.children.length).toEqual(1); const itemFieldItem = forEachItem.children[0] as FieldItem; expect(itemFieldItem.field.name).toEqual('Item'); @@ -194,6 +196,7 @@ describe('MappingSerializerService', () => { ); const xslt = MappingSerializerService.serialize(mappingTree, sourceParameterMap); const xsltDocument = domParser.parseFromString(xslt, 'text/xml'); + expect(xsltDocument.documentElement.getAttribute('xmlns:ns0')).toEqual('io.kaoto.datamapper.poc.test'); const orderIdSelect = xsltDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/xsl:attribute[@name="OrderId"]/xsl:value-of/@select', @@ -202,7 +205,7 @@ describe('MappingSerializerService', () => { XPathResult.ORDERED_NODE_ITERATOR_TYPE, ) .iterateNext(); - expect(orderIdSelect?.nodeValue).toEqual('/ShipOrder/@OrderId'); + expect(orderIdSelect?.nodeValue).toEqual('/ns0:ShipOrder/@OrderId'); const ifTest = xsltDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/xsl:if/@test', @@ -211,7 +214,7 @@ describe('MappingSerializerService', () => { XPathResult.ORDERED_NODE_ITERATOR_TYPE, ) .iterateNext(); - expect(ifTest?.nodeValue).toEqual("/ShipOrder/OrderPerson != ''"); + expect(ifTest?.nodeValue).toEqual("/ns0:ShipOrder/ns0:OrderPerson != ''"); const orderPersonSelect = xsltDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/xsl:if/OrderPerson/xsl:value-of/@select', @@ -220,7 +223,7 @@ describe('MappingSerializerService', () => { XPathResult.ORDERED_NODE_ITERATOR_TYPE, ) .iterateNext(); - expect(orderPersonSelect?.nodeValue).toEqual('/ShipOrder/OrderPerson'); + expect(orderPersonSelect?.nodeValue).toEqual('/ns0:ShipOrder/ns0:OrderPerson'); const shipToSelect = xsltDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/ShipTo/xsl:copy-of/@select', @@ -229,7 +232,7 @@ describe('MappingSerializerService', () => { XPathResult.ORDERED_NODE_ITERATOR_TYPE, ) .iterateNext(); - expect(shipToSelect?.nodeValue).toEqual('/ShipOrder/ShipTo'); + expect(shipToSelect?.nodeValue).toEqual('/ns0:ShipOrder/ShipTo'); const forEachSelect = xsltDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/xsl:for-each/@select', @@ -238,7 +241,7 @@ describe('MappingSerializerService', () => { XPathResult.ORDERED_NODE_ITERATOR_TYPE, ) .iterateNext(); - expect(forEachSelect?.nodeValue).toEqual('/ShipOrder/Item'); + expect(forEachSelect?.nodeValue).toEqual('/ns0:ShipOrder/Item'); const titleSelect = xsltDocument .evaluate( '/xsl:stylesheet/xsl:template/ShipOrder/xsl:for-each/Item/Title/xsl:value-of/@select', diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 4601567b4..d690adb0a 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -36,6 +36,7 @@ export class MappingSerializerService { */ static serialize(mappings: MappingTree, sourceParameterMap: Map): string { const xslt = MappingSerializerService.createNew(); + MappingSerializerService.populateNamespaces(xslt, mappings.namespaceMap); MappingSerializerService.populateParam(xslt, sourceParameterMap); const template = MappingSerializerService.getRootTemplate(xslt); mappings.children.forEach((mapping) => { @@ -44,6 +45,13 @@ export class MappingSerializerService { return xmlFormat(new XMLSerializer().serializeToString(xslt)); } + private static populateNamespaces(xslt: Document, namespaceMap: { [prefix: string]: string }) { + const rootElement = xslt.documentElement; + Object.entries(namespaceMap).forEach( + ([prefix, uri]) => prefix && uri && rootElement.setAttribute(`xmlns:${prefix}`, uri), + ); + } + private static getRootTemplate(xsltDocument: Document) { const prefix = xsltDocument.lookupPrefix(NS_XSL); const nsResolver = xsltDocument.createNSResolver(xsltDocument); @@ -183,6 +191,7 @@ export class MappingSerializerService { const xsltDoc = new DOMParser().parseFromString(xslt, 'application/xml'); const template = xsltDoc.getElementsByTagNameNS(NS_XSL, 'template')[0]; if (!template?.children) return mappingTree; + MappingSerializerService.restoreNamespaces(xsltDoc, mappingTree); MappingSerializerService.restoreParam(xsltDoc, sourceParameterMap); Array.from(template.children).forEach((item) => MappingSerializerService.restoreMapping(item, targetDocument, mappingTree), @@ -190,6 +199,16 @@ export class MappingSerializerService { return mappingTree; } + private static restoreNamespaces(xsltDocument: Document, mappingTree: MappingTree) { + mappingTree.namespaceMap = {}; + const rootElement = xsltDocument.documentElement; + Array.from(rootElement.attributes).forEach((attr) => { + if (!attr.nodeName.includes(':') || !attr.nodeValue || attr.nodeValue === NS_XSL) return; + const splitted = attr.nodeName.split(':'); + if (splitted[0] === 'xmlns') mappingTree.namespaceMap[splitted[1]] = attr.nodeValue; + }); + } + private static restoreParam(xsltDocument: Document, sourceParameterMap: Map) { const prefix = xsltDocument.lookupPrefix(NS_XSL); const nsResolver = xsltDocument.createNSResolver(xsltDocument); @@ -291,7 +310,6 @@ export class MappingSerializerService { name, ); field.isAttribute = true; - field.expression = '@' + name; field.namespaceURI = namespace; parentField.fields.push(field); return field; diff --git a/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts index a12b25f20..a11135072 100644 --- a/packages/ui/src/services/mapping.service.test.ts +++ b/packages/ui/src/services/mapping.service.test.ts @@ -1,5 +1,5 @@ //import { MappingService } from './mapping.service'; -//import { DocumentType } from '../models/document'; +//import { BODY_DOCUMENT_ID, DocumentType } from '../models/document'; //import { FieldItem } from '../models/mapping'; //import { XmlSchemaDocumentService } from './xml-schema-document.service'; //import * as fs from 'node:fs'; diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index df4d1758e..ef4f0aa23 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -197,7 +197,7 @@ export class MappingService { } static mapToCondition(condition: MappingItem, source: PrimitiveDocument | IField) { - const absPath = XPathService.toXPath(source); + const absPath = XPathService.toXPath(source, condition.mappingTree.namespaceMap); const relativePath = MappingService.getRelativePath(condition, absPath); if (condition instanceof ForEachItem) { condition.expression = relativePath; @@ -219,7 +219,7 @@ export class MappingService { valueSelector = MappingService.createValueSelector(mappingTree); mappingTree.children.push(valueSelector); } - const path = XPathService.toXPath(source); + const path = XPathService.toXPath(source, mappingTree.namespaceMap); valueSelector.expression = XPathService.addSource(valueSelector.expression, path); } @@ -229,11 +229,31 @@ export class MappingService { valueSelector = MappingService.createValueSelector(targetFieldItem); targetFieldItem.children.push(valueSelector); } - const absPath = XPathService.toXPath(source); + const absPath = XPathService.toXPath(source, targetFieldItem.mappingTree.namespaceMap); const relativePath = MappingService.getRelativePath(valueSelector, absPath); valueSelector.expression = XPathService.addSource(valueSelector.expression, relativePath); } + static createFieldItem(parentItem: MappingItem, field: IField) { + const fieldItem = new FieldItem(parentItem, field); + const existingns = Object.entries(fieldItem.mappingTree.namespaceMap).find( + ([_prefix, uri]) => field.namespaceURI && uri === field.namespaceURI, + ); + if (!existingns && fieldItem.field.namespaceURI) { + const prefix = fieldItem.field.namespacePrefix ?? MappingService.createNSPrefix(fieldItem.mappingTree); + fieldItem.mappingTree.namespaceMap[prefix] = fieldItem.field.namespaceURI; + } + parentItem.children.push(fieldItem); + return fieldItem; + } + + private static createNSPrefix(mappingTree: MappingTree) { + for (let index = 0; ; index++) { + const prefix = `ns${index}`; + if (!mappingTree.namespaceMap[prefix]) return prefix; + } + } + static createValueSelector(parent: MappingParentType) { const valueType = parent instanceof MappingTree ? ValueType.VALUE : MappingService.getValueTypeFor(parent); return new ValueSelector(parent, valueType); diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index 29bb0d788..42fdc3c13 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -268,8 +268,6 @@ export class VisualizationService { if (nodeData.mapping) return nodeData.mapping as MappingItem; const fieldNodeData = nodeData as TargetFieldNodeData; const parentItem = VisualizationService.getOrCreateFieldItem(fieldNodeData.parent); - const item = new FieldItem(parentItem, fieldNodeData.field); - parentItem.children.push(item); - return item; + return MappingService.createFieldItem(parentItem, fieldNodeData.field); } } diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 9bf6b4d7f..bea0bfaf1 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -62,7 +62,6 @@ export class XmlSchemaField extends BaseField { public isAttribute: boolean, ) { super(parent, parent instanceof XmlSchemaDocument ? parent : (parent as XmlSchemaField).ownerDocument, name); - this.expression = isAttribute ? '@' + name : name; } } diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index fec3048d4..c9f6b4863 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -117,11 +117,11 @@ export class XPathService { return expression ? `${expression}, ${source}` : source; } - static toXPath(source: PrimitiveDocument | IField): string { + static toXPath(source: PrimitiveDocument | IField, namespaceMap: { [prefix: string]: string }): string { const doc = source.ownerDocument; const prefix = doc.documentType === DocumentType.PARAM ? `$${doc.documentId}` : ''; const xpath = DocumentService.getFieldStack(source, true).reduceRight( - (acc, field) => acc + `/${field.expression}`, + (acc, field) => acc + `/${DocumentService.getFieldExpressionNS(field, namespaceMap)}`, prefix, ); return xpath ? xpath : '.'; diff --git a/test-resources/ShipOrderToShipOrder.xsl b/test-resources/ShipOrderToShipOrder.xsl index 77a295a33..9d451eeaa 100644 --- a/test-resources/ShipOrderToShipOrder.xsl +++ b/test-resources/ShipOrderToShipOrder.xsl @@ -1,20 +1,20 @@ - + - + - + - + - + - + <xsl:value-of select="Title"/> From 666948535fd9dbb20c8aa62c648e14719adc02a4 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Wed, 31 Jul 2024 17:08:51 +0900 Subject: [PATCH 310/471] feat: Create an embedding I/O interface component Fixes: #357 --- packages/ui/src/DataMapper.test.tsx | 11 ++++++++ packages/ui/src/DataMapper.tsx | 27 ++++++++++++++----- .../components/document/TargetDocument.tsx | 5 +++- packages/ui/src/main.tsx | 10 +------ .../ui/src/providers/DataMapperProvider.tsx | 16 +++++++---- 5 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 packages/ui/src/DataMapper.test.tsx diff --git a/packages/ui/src/DataMapper.test.tsx b/packages/ui/src/DataMapper.test.tsx new file mode 100644 index 000000000..981ab5288 --- /dev/null +++ b/packages/ui/src/DataMapper.test.tsx @@ -0,0 +1,11 @@ +import { DataMapper } from './DataMapper'; +import { render } from '@testing-library/react'; +import * as fs from 'fs'; + +describe('DataMapper', () => { + it('should render initial XSLT mappings', () => { + const xsltFile = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrderToShipOrder.xsl').toString(); + render(<DataMapper xsltFile={xsltFile} onUpdate={jest.fn()} />); + // TODO assert mappings are restored even without loading schema + }); +}); diff --git a/packages/ui/src/DataMapper.tsx b/packages/ui/src/DataMapper.tsx index ee3434ad1..7a90d5aba 100644 --- a/packages/ui/src/DataMapper.tsx +++ b/packages/ui/src/DataMapper.tsx @@ -19,14 +19,11 @@ import { FunctionComponent } from 'react'; import { useDataMapper } from './hooks/useDataMapper'; import { DataMapperMonitor } from './components/debug/DataMapperMonitor'; import { CanvasMonitor } from './components/debug/CanvasMonitor'; +import { DataMapperProvider } from './providers'; +import { CanvasProvider } from './providers/CanvasProvider'; -export interface IDataMapperProps { - modalsContainerId?: string; -} - -export const DataMapper: FunctionComponent<IDataMapperProps> = () => { +const DataMapperApp: FunctionComponent = () => { const { debug } = useDataMapper()!; - return ( <> {debug && ( @@ -39,3 +36,21 @@ export const DataMapper: FunctionComponent<IDataMapperProps> = () => { </> ); }; + +export interface IDataMapperProps { + modalsContainerId?: string; + xsltFile?: string; + onUpdate?: (xsltFile: string) => void; +} + +export const DataMapper: FunctionComponent<IDataMapperProps> = ({ xsltFile, onUpdate }) => { + return ( + <> + <DataMapperProvider xsltFile={xsltFile} onUpdate={onUpdate}> + <CanvasProvider> + <DataMapperApp /> + </CanvasProvider> + </DataMapperProvider> + </> + ); +}; diff --git a/packages/ui/src/components/document/TargetDocument.tsx b/packages/ui/src/components/document/TargetDocument.tsx index ff1532afa..1a2004409 100644 --- a/packages/ui/src/components/document/TargetDocument.tsx +++ b/packages/ui/src/components/document/TargetDocument.tsx @@ -70,7 +70,10 @@ const TargetDocumentNode: FunctionComponent<DocumentNodeProps> = ({ nodeData }) ); return ( - <div className={isDocument ? 'node-container__document' : 'node-container'}> + <div + data-testid={`target-node-${nodeRefId}`} + className={isDocument ? 'node-container__document' : 'node-container'} + > <NodeContainer ref={containerRef} nodeData={nodeData}> <div className={isDocument ? 'node-header__document' : 'node-header'} diff --git a/packages/ui/src/main.tsx b/packages/ui/src/main.tsx index 9cd5e125d..073a98190 100644 --- a/packages/ui/src/main.tsx +++ b/packages/ui/src/main.tsx @@ -1,15 +1,7 @@ import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first import { DataMapper } from './components'; import { createRoot } from 'react-dom/client'; -import { DataMapperProvider } from './providers'; -import { CanvasProvider } from './providers/CanvasProvider'; const container = document.getElementById('root'); const root = createRoot(container!); -root.render( - <DataMapperProvider> - <CanvasProvider> - <DataMapper /> - </CanvasProvider> - </DataMapperProvider>, -); +root.render(<DataMapper />); diff --git a/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/providers/DataMapperProvider.tsx index 5d0e114d7..cc7540ab6 100644 --- a/packages/ui/src/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/DataMapperProvider.tsx @@ -20,6 +20,7 @@ import { MappingTree } from '../models/mapping'; import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../models/document'; import { CanvasView } from '../models/view'; import { DocumentType } from '../models/path'; +import { MappingSerializerService } from '../services/mapping-serializer.service'; export interface IDataMapperContext { loading: boolean; @@ -43,7 +44,12 @@ export interface IDataMapperContext { export const DataMapperContext = createContext<IDataMapperContext | null>(null); -export const DataMapperProvider: FunctionComponent<PropsWithChildren> = (props) => { +type DataMapperProviderProps = PropsWithChildren & { + xsltFile?: string; + onUpdate?: (xsltFile: string) => void; +}; + +export const DataMapperProvider: FunctionComponent<DataMapperProviderProps> = ({ xsltFile, onUpdate, children }) => { const [loading, _setLoading] = useState<boolean>(false); const [activeView, setActiveView] = useState<CanvasView>(CanvasView.SOURCE_TARGET); const [sourceParameterMap, setSourceParameterMap] = useState<Map<string, IDocument>>(new Map<string, IDocument>()); @@ -56,6 +62,7 @@ export const DataMapperProvider: FunctionComponent<PropsWithChildren> = (props) const [mappingTree, setMappingTree] = useState<MappingTree>( new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), ); + xsltFile && MappingSerializerService.deserialize(xsltFile, targetBodyDocument, mappingTree, sourceParameterMap); const [debug, setDebug] = useState<boolean>(false); const refreshSourceParameters = useCallback(() => { @@ -70,7 +77,8 @@ export const DataMapperProvider: FunctionComponent<PropsWithChildren> = (props) }); newMapping.namespaceMap = mappingTree.namespaceMap; setMappingTree(newMapping); - }, [mappingTree]); + onUpdate && onUpdate(MappingSerializerService.serialize(mappingTree, sourceParameterMap)); + }, [mappingTree, onUpdate, sourceParameterMap]); const value = useMemo(() => { return { @@ -105,8 +113,6 @@ export const DataMapperProvider: FunctionComponent<PropsWithChildren> = (props) ]); return ( - <DataMapperContext.Provider value={value}> - {value.loading ? <Loading /> : props.children} - </DataMapperContext.Provider> + <DataMapperContext.Provider value={value}>{value.loading ? <Loading /> : children}</DataMapperContext.Provider> ); }; From 60c6c6ff8b1a9248b06e9bac94af68ba5a750a76 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Aug 2024 01:10:58 +0000 Subject: [PATCH 311/471] chore(deps): update dependency @babel/preset-env to v7.25.3 --- yarn.lock | 44 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index c8b4c2b23..6d3acb74a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -730,15 +730,26 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.0" +"@babel/parser@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": ^7.25.2 + bin: + parser: ./bin/babel-parser.js + checksum: b55aba64214fa1d66ccd0d29f476d2e55a48586920d280f88c546f81cbbececc0e01c9d05a78d6bf206e8438b9c426caa344942c1a581eecc4d365beaab8a20e + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" dependencies: "@babel/helper-plugin-utils": ^7.24.8 - "@babel/traverse": ^7.25.0 + "@babel/traverse": ^7.25.3 peerDependencies: "@babel/core": ^7.0.0 - checksum: d33738813ac3ed45322da80e8111b18303f6ea39e703c271eeb8cc23163f5fc7c16ed7dfdc9489b2e31bd6a620c806db2edfc719b7a91f340b64921a3d304024 + checksum: d3dba60f360defe70eb43e35a1b17ea9dd4a99e734249e15be3d5c288019644f96f88d7ff51990118fda0845b4ad50f6d869e0382232b1d8b054d113d4eea7e2 languageName: node linkType: hard @@ -1753,14 +1764,14 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.25.2 - resolution: "@babel/preset-env@npm:7.25.2" + version: 7.25.3 + resolution: "@babel/preset-env@npm:7.25.3" dependencies: "@babel/compat-data": ^7.25.2 "@babel/helper-compilation-targets": ^7.25.2 "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-validator-option": ^7.24.8 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.0 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.3 "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.25.0 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.25.0 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.7 @@ -1841,7 +1852,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ef056a50bbf984e9e9cb1a841df705b742629c20aa4df3757a3e855bd64430b5f414f7e0e9f124ba5ce7118976215648973c886c96c30b281d8d2c3c05f44878 + checksum: 9735a44e557f7ef4ade87f59c0d69e4af3383432a23ae7a3cba33e3741bd7812f2d6403a0d94ebfda5f4bd9fdc6250a52c4a156407029f590fde511a792e64e2 languageName: node linkType: hard @@ -2004,6 +2015,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/traverse@npm:7.25.3" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.25.0 + "@babel/parser": ^7.25.3 + "@babel/template": ^7.25.0 + "@babel/types": ^7.25.2 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 5661308b1357816f1d4e2813a5dd82c6053617acc08c5c95db051b8b6577d07c4446bc861c9a5e8bf294953ac8266ae13d7d9d856b6b889fc0d34c1f51abbd8c + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" From b1afd2475c0870c455f5c5c72f45fc7ed8064705 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Thu, 1 Aug 2024 15:51:52 +0900 Subject: [PATCH 312/471] fix: Mapping line is not drawn Fixes: #360 Fixes: #363 --- packages/ui/src/models/path.ts | 27 ++++- .../ui/src/services/mapping.service.test.ts | 98 +++++-------------- packages/ui/src/services/mapping.service.ts | 12 ++- .../ui/src/services/xpath/xpath.service.ts | 30 ++++-- 4 files changed, 83 insertions(+), 84 deletions(-) diff --git a/packages/ui/src/models/path.ts b/packages/ui/src/models/path.ts index f21d2b38c..9ca600bd9 100644 --- a/packages/ui/src/models/path.ts +++ b/packages/ui/src/models/path.ts @@ -39,8 +39,8 @@ export class NodePath { export class Path { constructor( - public expression: string, - public parent?: Path, + public readonly expression: string, + public readonly parent?: Path, ) { this.isRelative = true; let remainingExpression = this.expression; @@ -56,7 +56,7 @@ export class Path { this.parameterName = pos !== -1 ? remainingExpression.substring(1, pos) : remainingExpression.substring(1); remainingExpression = pos !== -1 ? remainingExpression.substring(pos + 1) : ''; } - this.pathSegments = remainingExpression.split('/'); + this.pathSegments = remainingExpression.split('/').map((segmentString) => new PathSegment(segmentString)); } toString() { @@ -76,5 +76,24 @@ export class Path { isRelative: boolean; parameterName?: string; - pathSegments: string[]; + pathSegments: PathSegment[]; +} + +export class PathSegment { + constructor(public readonly expression: string) { + const splitted = expression.split(':'); + if (splitted.length > 1) { + this.prefix = splitted[0]; + this.name = splitted[1]; + } else { + this.name = splitted[0]; + } + } + + toString() { + return this.prefix ? `${this.prefix}:${this.name}` : this.name; + } + + prefix?: string; + name: string; } diff --git a/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts index a11135072..1f300c499 100644 --- a/packages/ui/src/services/mapping.service.test.ts +++ b/packages/ui/src/services/mapping.service.test.ts @@ -4,79 +4,35 @@ //import { XmlSchemaDocumentService } from './xml-schema-document.service'; //import * as fs from 'node:fs'; -describe('MappingService', () => { - it('TODO', () => {}); - /* - const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); - const sourceDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.SOURCE_BODY, - 'ShipOrder.xsd', - orderXsd, - ); - const sourceParam = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, 'ShipOrder.xsd', orderXsd); - const targetDoc = XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.TARGET_BODY, - 'ShipOrder.xsd', - orderXsd, - ); - - describe('validateFieldPairForNewMapping()', () => { - it('validate mapping', () => { - const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); - const validated = MappingService.validateNodePairForMapping( - [mapping], - sourceDoc.fields[0].fields[0], - targetDoc.fields[0].fields[0], - ); - expect(validated.sourceField?.fieldIdentifier.toString()).toEqual(sourceDoc.fields[0].fields[0].path.toString()); - expect(validated.targetField?.fieldIdentifier.toString()).toEqual(targetDoc.fields[0].fields[0].path.toString()); - }); - it('invalidate duplicate mapping', () => { - const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); - let validated = MappingService.validateNodePairForMapping([mapping], sourceDoc.fields[0], targetDoc.fields[0]); - expect(validated.sourceField).toBeUndefined(); - expect(validated.targetField).toBeUndefined(); - validated = MappingService.validateNodePairForMapping([mapping], targetDoc.fields[0], sourceDoc.fields[0]); - expect(validated.sourceField).toBeUndefined(); - expect(validated.targetField).toBeUndefined(); - }); - }); - - describe('createNewMapping', () => { - it('', () => { - const mapping = MappingService.createNewMapping(sourceDoc.fields[0], targetDoc.fields[0]); - expect(mapping.source.elements.length).toEqual(1); - expect(mapping.targetFields.length).toEqual(1); - }); - }); +import { MappingService } from './mapping.service'; +import * as fs from 'fs'; +import { TestUtil } from '../test/test-util'; +import { MappingTree } from '../models/mapping'; +import { MappingSerializerService } from './mapping-serializer.service'; - describe('getMappingsFor', () => { - it('', () => { - const mapping1 = MappingService.createNewMapping(sourceDoc.fields[0].fields[0], targetDoc.fields[0].fields[0]); - const mapping2 = MappingService.createNewMapping(sourceDoc.fields[0].fields[1], targetDoc.fields[0].fields[1]); - const found = MappingService.getAllMappingsFor([mapping1, mapping2], sourceDoc.fields[0].fields[1]); - expect(found.length).toEqual(1); - expect((found[0].source.elements[0] as IFieldItem).field.fieldIdentifier.toString()).toEqual( - sourceDoc.fields[0].fields[1].fieldIdentifier.toString(), - ); - }); - }); +describe('MappingService', () => { + const sourceDoc = TestUtil.createSourceOrderDoc(); + const targetDoc = TestUtil.createTargetOrderDoc(); + const paramsMap = TestUtil.createParameterMap(); + const xsltFile = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl').toString(); - describe('removeMappingsForDocument', () => { - it('', () => { - const mapping1 = MappingService.createNewMapping(sourceDoc.fields[0].fields[0], targetDoc.fields[0].fields[0]); - const mapping2 = MappingService.createNewMapping(sourceParam.fields[0].fields[1], targetDoc.fields[0].fields[1]); - const cleaned = MappingService.removeAllMappingsForDocument( - [mapping1, mapping2], - sourceParam.documentType, - sourceParam.documentId, - ); - expect(cleaned.length).toEqual(1); - expect((cleaned[0].source.elements[0] as IFieldItem).field.fieldIdentifier.toString()).toEqual( - sourceDoc.fields[0].fields[0].path.toString(), - ); + describe('extractMappingLinks()', () => { + it('should return IMappingLink[]', () => { + const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); + MappingSerializerService.deserialize(xsltFile, targetDoc, tree, paramsMap); + const links = MappingService.extractMappingLinks(tree, paramsMap, sourceDoc); + expect(links.length).toEqual(5); + expect(links[0].sourceNodePath).toMatch('OrderId'); + expect(links[0].targetNodePath).toMatch('OrderId'); + expect(links[1].sourceNodePath).toMatch('OrderPerson'); + expect(links[1].targetNodePath).toMatch('/if-'); + expect(links[2].sourceNodePath).toMatch('OrderPerson'); + expect(links[2].targetNodePath).toMatch('/if-'); + expect(links[2].targetNodePath).toMatch('OrderPerson'); + expect(links[3].targetNodePath).toMatch('ShipTo'); + expect(links[3].targetNodePath).toMatch('ShipTo'); + expect(links[4].sourceNodePath).toMatch('Item'); + expect(links[4].targetNodePath).toMatch('/for-each'); }); }); - - */ }); diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index ef4f0aa23..860251b5c 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -136,7 +136,10 @@ export class MappingService { (document.documentType === DocumentType.SOURCE_BODY && !parsedPath.parameterName) || (document.documentType === DocumentType.PARAM && parsedPath.parameterName === document.documentId) ) { - return !DocumentService.getFieldFromPathSegments(document, parsedPath.pathSegments); + return !DocumentService.getFieldFromPathSegments( + document, + parsedPath.pathSegments.map((seg) => seg.name), + ); } }); return !!stalePath; @@ -332,7 +335,12 @@ export class MappingService { return XPathService.extractFieldPaths(sourceXPath).reduce((acc, xpath) => { const path = new Path(xpath); const document = path.parameterName ? sourceParameterMap.get(path.parameterName) : sourceBody; - const sourceNodePath = document && DocumentService.getFieldFromPathSegments(document, path.pathSegments)?.path; + const sourceNodePath = + document && + DocumentService.getFieldFromPathSegments( + document, + path.pathSegments.map((seg) => seg.name), + )?.path; sourceNodePath && acc.push({ sourceNodePath: sourceNodePath.toString(), targetNodePath: targetNodePath }); return acc; }, [] as IMappingLink[]); diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index c9f6b4863..13181092d 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -46,15 +46,17 @@ export class XPathService { if (!('children' in node.children.RelativePathExpr[0])) return answer; const relativePathExpr = XPathService.getNode(node, ['RelativePathExpr']); if (!relativePathExpr) return answer; - const varName = XPathService.getNode(relativePathExpr, ['StepExpr', 'FilterExpr', 'VarRef', 'QName', 'NCName']); - const contextItem = XPathService.getNode(relativePathExpr, ['StepExpr', 'FilterExpr', 'ContextItemExpr']); - const ncName = XPathService.getNode(relativePathExpr, ['StepExpr', 'NodeTest', 'NameTest', 'NCName']); + const stepExpr = XPathService.getNode(relativePathExpr, ['StepExpr']); + if (!stepExpr) return answer; + const varName = XPathService.getNode(stepExpr, ['FilterExpr', 'VarRef', 'QName', 'NCName']); + const contextItem = XPathService.getNode(stepExpr, ['FilterExpr', 'ContextItemExpr']); + const name = XPathService.extractNameFromStepExpr(stepExpr); if (varName && 'image' in varName) { answer += '$' + varName.image; } else if (contextItem && 'image' in contextItem) { answer += contextItem.image; - } else if (ncName && 'image' in ncName) { - answer += ncName.image; + } else if (name) { + answer += name; } else { throw Error('Unknown RelativePathExpr: ' + relativePathExpr); } @@ -63,13 +65,27 @@ export class XPathService { return following ? following.reduce((acc, value) => { acc += '/'; - const ncName = XPathService.getNode(value, ['StepExpr', 'NodeTest', 'NameTest', 'NCName']); - if (ncName && 'image' in ncName) acc += ncName.image; + const stepExpr = XPathService.getNode(value, ['StepExpr']); + const name = stepExpr && XPathService.extractNameFromStepExpr(stepExpr); + if (name) acc += name; return acc; }, answer) : answer; } + private static extractNameFromStepExpr(stepExpr: CstElement) { + const isAttribute = !!('children' in stepExpr && stepExpr.children['At']); + const nameTest = XPathService.getNode(stepExpr, ['NodeTest', 'NameTest']); + if (!nameTest || !('children' in nameTest)) return; + const ncNames = nameTest.children['NCName']; + const colon = nameTest.children['Colon']; + let answer = isAttribute ? '@' : ''; + if (ncNames.length === 1 && (!colon || colon.length === 0) && 'image' in ncNames[0]) answer += ncNames[0].image; + else if (ncNames.length === 2 && colon?.length === 1 && 'image' in ncNames[0] && 'image' in ncNames[1]) + answer += `${ncNames[0].image}:${ncNames[1].image}`; + return answer; + } + static extractFieldPaths(expression: string) { const parsed = XPathService.parse(expression); if (!parsed.cst) return []; From 8a08a75720115d6a026ef59841995e139ce8a770 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Thu, 1 Aug 2024 18:01:05 +0900 Subject: [PATCH 313/471] fix: Mapping lines missing inside for-each wrapping Fixes: #362 --- .../ui/src/services/mapping.service.test.ts | 17 ++++++++++++++--- packages/ui/src/services/mapping.service.ts | 17 +++++++++-------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts index 1f300c499..141b4ae8e 100644 --- a/packages/ui/src/services/mapping.service.test.ts +++ b/packages/ui/src/services/mapping.service.test.ts @@ -21,18 +21,29 @@ describe('MappingService', () => { const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); MappingSerializerService.deserialize(xsltFile, targetDoc, tree, paramsMap); const links = MappingService.extractMappingLinks(tree, paramsMap, sourceDoc); - expect(links.length).toEqual(5); + expect(links.length).toEqual(11); expect(links[0].sourceNodePath).toMatch('OrderId'); expect(links[0].targetNodePath).toMatch('OrderId'); expect(links[1].sourceNodePath).toMatch('OrderPerson'); expect(links[1].targetNodePath).toMatch('/if-'); expect(links[2].sourceNodePath).toMatch('OrderPerson'); - expect(links[2].targetNodePath).toMatch('/if-'); - expect(links[2].targetNodePath).toMatch('OrderPerson'); + expect(links[2].targetNodePath).toMatch(/if-.*field-OrderPerson/); expect(links[3].targetNodePath).toMatch('ShipTo'); expect(links[3].targetNodePath).toMatch('ShipTo'); expect(links[4].sourceNodePath).toMatch('Item'); expect(links[4].targetNodePath).toMatch('/for-each'); + expect(links[5].sourceNodePath).toMatch('Title'); + expect(links[5].targetNodePath).toMatch(/for-each-.*field-Item-.*field-Title-.*/); + expect(links[6].sourceNodePath).toMatch('Note'); + expect(links[6].targetNodePath).toMatch(/for-each-.*field-Item-.*choose-.*when-.*/); + expect(links[7].sourceNodePath).toMatch('Note'); + expect(links[7].targetNodePath).toMatch(/for-each-.*field-Item-.*field-Note-.*/); + expect(links[8].sourceNodePath).toMatch('Title'); + expect(links[8].targetNodePath).toMatch(/for-each-.*field-Item-.*choose-.*otherwise-.*field-Note-.*/); + expect(links[9].sourceNodePath).toMatch('Quantity'); + expect(links[9].targetNodePath).toMatch(/for-each-.*field-Item-.*field-Quantity-.*/); + expect(links[10].sourceNodePath).toMatch('Price'); + expect(links[10].targetNodePath).toMatch(/for-each-.*field-Item-.*field-Price-.*/); }); }); }); diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 860251b5c..dce0d2d62 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -304,9 +304,7 @@ export class MappingService { const answer = [] as IMappingLink[]; const targetNodePath = item.nodePath.toString(); if (item instanceof ExpressionItem) { - answer.push( - ...MappingService.doExtractMappingLinks(item.expression, targetNodePath, sourceParameterMap, sourceBody), - ); + answer.push(...MappingService.doExtractMappingLinks(item, targetNodePath, sourceParameterMap, sourceBody)); } if ('children' in item) { item.children.map((child) => { @@ -315,9 +313,7 @@ export class MappingService { !(item.field.ownerDocument instanceof PrimitiveDocument) && child instanceof ValueSelector ) { - answer.push( - ...MappingService.doExtractMappingLinks(child.expression, targetNodePath, sourceParameterMap, sourceBody), - ); + answer.push(...MappingService.doExtractMappingLinks(child, targetNodePath, sourceParameterMap, sourceBody)); } else { answer.push(...MappingService.extractMappingLinks(child, sourceParameterMap, sourceBody)); } @@ -327,13 +323,18 @@ export class MappingService { } private static doExtractMappingLinks( - sourceXPath: string, + sourceExpressionItem: ExpressionItem, targetNodePath: string, sourceParameterMap: Map<string, IDocument>, sourceBody: IDocument, ) { + const sourceXPath = sourceExpressionItem.expression; return XPathService.extractFieldPaths(sourceXPath).reduce((acc, xpath) => { - const path = new Path(xpath); + const absolutePath = + sourceExpressionItem.contextPath && !xpath.startsWith('$') && !xpath.startsWith('/') + ? sourceExpressionItem.contextPath + '/' + xpath + : xpath; + const path = new Path(absolutePath); const document = path.parameterName ? sourceParameterMap.get(path.parameterName) : sourceBody; const sourceNodePath = document && From 11dda7de9929e2ed97431a42d928c834c5276cc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 00:38:10 +0000 Subject: [PATCH 314/471] chore(deps): update dependency @storybook/addon-actions to v8.2.7 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6d3acb74a..de9a1e2f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4158,8 +4158,8 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.2.6 - resolution: "@storybook/addon-actions@npm:8.2.6" + version: 8.2.7 + resolution: "@storybook/addon-actions@npm:8.2.7" dependencies: "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 @@ -4167,8 +4167,8 @@ __metadata: polished: ^4.2.2 uuid: ^9.0.0 peerDependencies: - storybook: ^8.2.6 - checksum: 0295966756be3bd3d8b6e9ff46a0b69698671b0992c5df9ba0d805c1aaae4f671cdd2afa238298beab65f6f00dbdfbddae5f8b383074cda6a673ccc005c4de4c + storybook: ^8.2.7 + checksum: 36653b650f2d051caf54cb29675e01d591698ae2e189f6e8c86f377d50d2cc543ae0dd56115de8b02f0078ba4851a13690b6dbcadf6301ced516d86a767195ce languageName: node linkType: hard From 17b065ed1e967f5fe33d6864a1837dcfe405bae4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 3 Aug 2024 00:17:56 +0000 Subject: [PATCH 315/471] chore(deps): update dependency @types/node to v20.14.14 --- yarn.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index de9a1e2f3..d0c97bdee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4739,20 +4739,20 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 22.0.0 - resolution: "@types/node@npm:22.0.0" + version: 22.1.0 + resolution: "@types/node@npm:22.1.0" dependencies: - undici-types: ~6.11.1 - checksum: ef58d59bbffd9a79449ef632ea9a4f3b006496926cac2717368f80fdd152b1937e44093c17c9fac74650309c9d5387bb5c5bf4fd304adafebcbda1e6e4435fe4 + undici-types: ~6.13.0 + checksum: 3544c35da06009790a2e07742a7dfa0ac0f0d64ec47d9e6d3edf0ff6dcfc1a7cc2efdc5e524e80f8ed80aa37154513b2c1c724f95146ff89fc5aefb8e33575f2 languageName: node linkType: hard "@types/node@npm:^20.11.6, @types/node@npm:^20.14.9": - version: 20.14.13 - resolution: "@types/node@npm:20.14.13" + version: 20.14.14 + resolution: "@types/node@npm:20.14.14" dependencies: undici-types: ~5.26.4 - checksum: 928e877aadfea75f3a14c38223674b3a9fb206340ab7b2af3ffe7040c384a55678f235860f6652d18026fd59e44c237d060e3f5ce7b62b1b9e6fb593c9ef39b9 + checksum: cb2199123efca94908ee7191cc7b7abc11b26bf1fbb93c2948d5537a6594eedc35d4748d9fa998078fdc2eb5cc3a11d6d87b2fea20a05bda9d304e37d3c3282a languageName: node linkType: hard @@ -14017,10 +14017,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.11.1": - version: 6.11.1 - resolution: "undici-types@npm:6.11.1" - checksum: d7fc11bded93bc55ef3b88464e856ab061a747cf50ef2eff5df5ba3be18b9fcafe60e1b36a8c99e28aac2eade12891d32a504f2a32422452c44662e598e3b188 +"undici-types@npm:~6.13.0": + version: 6.13.0 + resolution: "undici-types@npm:6.13.0" + checksum: 9d0ef6bf58994bebbea6a4ab75f381c69a89a7ed151bfbae0d4ef95450d56502c9eccb323abf17b7d099c1d9c1cbae62e909e4dfeb8d204612d2f1fdada24707 languageName: node linkType: hard From 3880def716e51ac6c751aa96131f2e25b499552a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 4 Aug 2024 00:53:51 +0000 Subject: [PATCH 316/471] chore(deps): update dependency lint-staged to v15.2.8 --- yarn.lock | 127 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 52 deletions(-) diff --git a/yarn.lock b/yarn.lock index d0c97bdee..5f376b112 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5204,12 +5204,12 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^6.2.0": - version: 6.2.0 - resolution: "ansi-escapes@npm:6.2.0" +"ansi-escapes@npm:^7.0.0": + version: 7.0.0 + resolution: "ansi-escapes@npm:7.0.0" dependencies: - type-fest: ^3.0.0 - checksum: f0bc667d5f1ededc3ea89b73c34f0cba95473525b07e1290ddfd3fc868c94614e95f3549f5c4fd0c05424af7d3fd298101fb3d9a52a597d3782508b340783bd7 + environment: ^1.0.0 + checksum: 19baa61e68d1998c03b3b8bd023653a6c2667f0ed6caa9a00780ffd6f0a14f4a6563c57a38b3c0aba71bd704cd49c4c8df41be60bd81c957409f91e9dd49051f languageName: node linkType: hard @@ -5965,12 +5965,12 @@ __metadata: languageName: node linkType: hard -"cli-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-cursor@npm:4.0.0" +"cli-cursor@npm:^5.0.0": + version: 5.0.0 + resolution: "cli-cursor@npm:5.0.0" dependencies: - restore-cursor: ^4.0.0 - checksum: ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc + restore-cursor: ^5.0.0 + checksum: 1eb9a3f878b31addfe8d82c6d915ec2330cec8447ab1f117f4aa34f0137fbb3137ec3466e1c9a65bcb7557f6e486d343f2da57f253a2f668d691372dfa15c090 languageName: node linkType: hard @@ -6873,7 +6873,7 @@ __metadata: languageName: unknown linkType: soft -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:~4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -6894,7 +6894,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.6": +"debug@npm:^4.3.6, debug@npm:~4.3.6": version: 4.3.6 resolution: "debug@npm:4.3.6" dependencies: @@ -7327,6 +7327,13 @@ __metadata: languageName: node linkType: hard +"environment@npm:^1.0.0": + version: 1.1.0 + resolution: "environment@npm:1.1.0" + checksum: dd3c1b9825e7f71f1e72b03c2344799ac73f2e9ef81b78ea8b373e55db021786c6b9f3858ea43a436a2c4611052670ec0afe85bc029c384cc71165feee2f4ba6 + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -10243,10 +10250,10 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:~3.1.1": - version: 3.1.1 - resolution: "lilconfig@npm:3.1.1" - checksum: dc8a4f4afde3f0fac6bd36163cc4777a577a90759b8ef1d0d766b19ccf121f723aa79924f32af5b954f3965268215e046d0f237c41c76e5ef01d4e6d1208a15e +"lilconfig@npm:~3.1.2": + version: 3.1.2 + resolution: "lilconfig@npm:3.1.2" + checksum: 4e8b83ddd1d0ad722600994e6ba5d858ddca14f0587aa6b9c8185e17548149b5e13d4d583d811e9e9323157fa8c6a527e827739794c7502b59243c58e210b8c3 languageName: node linkType: hard @@ -10265,36 +10272,36 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.7 - resolution: "lint-staged@npm:15.2.7" + version: 15.2.8 + resolution: "lint-staged@npm:15.2.8" dependencies: chalk: ~5.3.0 commander: ~12.1.0 - debug: ~4.3.4 + debug: ~4.3.6 execa: ~8.0.1 - lilconfig: ~3.1.1 - listr2: ~8.2.1 + lilconfig: ~3.1.2 + listr2: ~8.2.4 micromatch: ~4.0.7 pidtree: ~0.6.0 string-argv: ~0.3.2 - yaml: ~2.4.2 + yaml: ~2.5.0 bin: lint-staged: bin/lint-staged.js - checksum: 0f21d1b44c046fcfc0388dab66d45d244818afdb24bdf57e7593640c7ca82cc55be7d75e086708e453fac0c0d9ab8760b2cde053944f7b2121c2dd65f6367ffe + checksum: 7077c1ec963022d51913abfad8231799c3c9536633e65d5916e4c432bd9108a2dbc4614891c529638807f08b0de73b8ffb9e357eb98b0721363526124daea75b languageName: node linkType: hard -"listr2@npm:~8.2.1": - version: 8.2.1 - resolution: "listr2@npm:8.2.1" +"listr2@npm:~8.2.4": + version: 8.2.4 + resolution: "listr2@npm:8.2.4" dependencies: cli-truncate: ^4.0.0 colorette: ^2.0.20 eventemitter3: ^5.0.1 - log-update: ^6.0.0 - rfdc: ^1.3.1 + log-update: ^6.1.0 + rfdc: ^1.4.1 wrap-ansi: ^9.0.0 - checksum: a37c032850fc01f45cf6144f2b66d0c56a596b708de1acbd52e7c396a2eb188d027ad132c93a0ad946d7932a581dfcfc2e4318bb301926b01877cb4903d09fbd + checksum: b1cdcae653ff967a9b28637e346df2d6614165b4ad1e9e36b1403bc972550c51f57ec0e6d307dc3921ceea0601e244e848ab79457c6d570ab1f088b577a63d90 languageName: node linkType: hard @@ -10370,16 +10377,16 @@ __metadata: languageName: node linkType: hard -"log-update@npm:^6.0.0": - version: 6.0.0 - resolution: "log-update@npm:6.0.0" +"log-update@npm:^6.1.0": + version: 6.1.0 + resolution: "log-update@npm:6.1.0" dependencies: - ansi-escapes: ^6.2.0 - cli-cursor: ^4.0.0 - slice-ansi: ^7.0.0 + ansi-escapes: ^7.0.0 + cli-cursor: ^5.0.0 + slice-ansi: ^7.1.0 strip-ansi: ^7.1.0 wrap-ansi: ^9.0.0 - checksum: 8803ceba2fb28626951b85de598c8d5a4f5e39f1f767cc54fd925412cc7780ba89ce1dbec24dc96fa46f89d226e1ae984534aa729dc9c9b734e36bb805428ffa + checksum: 817a9ba6c5cbc19e94d6359418df8cfe8b3244a2903f6d53354e175e243a85b782dc6a98db8b5e457ee2f09542ca8916c39641b9cd3b0e6ef45e9481d50c918a languageName: node linkType: hard @@ -10627,6 +10634,13 @@ __metadata: languageName: node linkType: hard +"mimic-function@npm:^5.0.0": + version: 5.0.1 + resolution: "mimic-function@npm:5.0.1" + checksum: eb5893c99e902ccebbc267c6c6b83092966af84682957f79313311edb95e8bb5f39fb048d77132b700474d1c86d90ccc211e99bae0935447a4834eb4c882982c + languageName: node + linkType: hard + "min-document@npm:^2.19.0": version: 2.19.0 resolution: "min-document@npm:2.19.0" @@ -11294,6 +11308,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^7.0.0": + version: 7.0.0 + resolution: "onetime@npm:7.0.0" + dependencies: + mimic-function: ^5.0.0 + checksum: eb08d2da9339819e2f9d52cab9caf2557d80e9af8c7d1ae86e1a0fef027d00a88e9f5bd67494d350df360f7c559fbb44e800b32f310fb989c860214eacbb561c + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -12593,13 +12616,13 @@ __metadata: languageName: node linkType: hard -"restore-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "restore-cursor@npm:4.0.0" +"restore-cursor@npm:^5.0.0": + version: 5.1.0 + resolution: "restore-cursor@npm:5.1.0" dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: 5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af + onetime: ^7.0.0 + signal-exit: ^4.1.0 + checksum: 838dd54e458d89cfbc1a923b343c1b0f170a04100b4ce1733e97531842d7b440463967e521216e8ab6c6f8e89df877acc7b7f4c18ec76e99fb9bf5a60d358d2c languageName: node linkType: hard @@ -12617,10 +12640,10 @@ __metadata: languageName: node linkType: hard -"rfdc@npm:^1.3.1": - version: 1.3.1 - resolution: "rfdc@npm:1.3.1" - checksum: d5d1e930aeac7e0e0a485f97db1356e388bdbeff34906d206fe524dd5ada76e95f186944d2e68307183fdc39a54928d4426bbb6734851692cfe9195efba58b79 +"rfdc@npm:^1.4.1": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 3b05bd55062c1d78aaabfcea43840cdf7e12099968f368e9a4c3936beb744adb41cbdb315eac6d4d8c6623005d6f87fdf16d8a10e1ff3722e84afea7281c8d13 languageName: node linkType: hard @@ -12987,7 +13010,7 @@ __metadata: languageName: node linkType: hard -"slice-ansi@npm:^7.0.0": +"slice-ansi@npm:^7.1.0": version: 7.1.0 resolution: "slice-ansi@npm:7.1.0" dependencies: @@ -13892,7 +13915,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^3.0.0, type-fest@npm:^3.8.0": +"type-fest@npm:^3.8.0": version: 3.13.1 resolution: "type-fest@npm:3.13.1" checksum: c06b0901d54391dc46de3802375f5579868949d71f93b425ce564e19a428a0d411ae8d8cb0e300d330071d86152c3ea86e744c3f2860a42a79585b6ec2fdae8e @@ -14647,12 +14670,12 @@ __metadata: languageName: node linkType: hard -"yaml@npm:~2.4.2": - version: 2.4.2 - resolution: "yaml@npm:2.4.2" +"yaml@npm:~2.5.0": + version: 2.5.0 + resolution: "yaml@npm:2.5.0" bin: yaml: bin.mjs - checksum: 90dda4485de04367251face9abb5c36927c94e44078f4e958e6468a07e74e7e92f89be20fc49860b6268c51ee5a5fc79ef89197d3f874bf24ef8921cc4ba9013 + checksum: a116dca5c61641d9bf1f1016c6e71daeb1ed4915f5930ed237d45ab7a605aa5d92c332ff64879a6cd088cabede008c778774e3060ffeb4cd617d28088e4b2d83 languageName: node linkType: hard From ce102548ab7d5b17977bbabbb30684f8c93113f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 02:05:10 +0000 Subject: [PATCH 317/471] chore(deps): update yarn to v3.8.4 --- .../{yarn-3.8.3.cjs => yarn-3.8.4.cjs} | 314 +++++++++--------- .yarnrc.yml | 2 +- package.json | 2 +- 3 files changed, 159 insertions(+), 159 deletions(-) rename .yarn/releases/{yarn-3.8.3.cjs => yarn-3.8.4.cjs} (89%) diff --git a/.yarn/releases/yarn-3.8.3.cjs b/.yarn/releases/yarn-3.8.4.cjs similarity index 89% rename from .yarn/releases/yarn-3.8.3.cjs rename to .yarn/releases/yarn-3.8.4.cjs index eaa7ce067..1d8348a9d 100755 --- a/.yarn/releases/yarn-3.8.3.cjs +++ b/.yarn/releases/yarn-3.8.4.cjs @@ -1,15 +1,15 @@ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore -(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function vK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Afe(e,t)}function xK(r,e,t){SK.stat(r,function(i,n){t(i,i?!1:vK(n,r,e))})}function lfe(r,e){return vK(SK.statSync(r),r,e)}});var TK=I((sZe,NK)=>{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=MK.join(l,r),u=!l&&/^\.[\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let h=u+i[g];try{if(KK.sync(h,{pathExt:n}))if(e.all)s.push(h);else return h}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw UK(r)};GK.exports=jK;jK.sync=hfe});var JK=I((lZe,vS)=>{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Tfe(r,e){e=e!==void 0?e:{};var t={},i={Start:Ia},n=Ia,s=function(C){return C||[]},o=function(C,Q,R){return[{command:C,type:Q}].concat(R||[])},a=function(C,Q){return[{command:C,type:Q||";"}]},l=function(C){return C},c=";",u=Ue(";",!1),g="&",h=Ue("&",!1),p=function(C,Q){return Q?{chain:C,then:Q}:{chain:C}},d=function(C,Q){return{type:C,line:Q}},m="&&",y=Ue("&&",!1),B="||",S=Ue("||",!1),P=function(C,Q){return Q?{...C,then:Q}:C},F=function(C,Q){return{type:C,chain:Q}},H="|&",q=Ue("|&",!1),_="|",X=Ue("|",!1),W="=",Z=Ue("=",!1),A=function(C,Q){return{name:C,args:[Q]}},ne=function(C){return{name:C,args:[]}},ue="(",te=Ue("(",!1),O=")",N=Ue(")",!1),ce=function(C,Q){return{type:"subshell",subshell:C,args:Q}},he="{",Pe=Ue("{",!1),De="}",Re=Ue("}",!1),se=function(C,Q){return{type:"group",group:C,args:Q}},Ae=function(C,Q){return{type:"command",args:Q,envs:C}},ye=function(C){return{type:"envs",envs:C}},ge=function(C){return C},oe=function(C){return C},Ye=/^[0-9]/,ie=Ve([["0","9"]],!1,!1),G=function(C,Q,R){return{type:"redirection",subtype:Q,fd:C!==null?parseInt(C):null,args:[R]}},fe=">>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Lr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},yr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},Sr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ -`,Tn=Ue(`\\ -`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},b="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=Ue("\\n",!1),ze=function(){return` -`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Or=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function un(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};R<C;)r.charCodeAt(R)===10?(Q.line++,Q.column=1):Q.column++,R++;return w[C]=Q,Q}function ii(C,Q){var R=un(C),U=un(Q);return{start:{offset:C,line:R.line,column:R.column},end:{offset:Q,line:U.line,column:U.column}}}function Be(C){f<k||(f>k&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=vr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function vr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=vr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,Gr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Tp(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=G(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Lr?(C=Lr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,T===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,T===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,T===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,T===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=yr(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Nl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Nge(),Q!==t&&(E=C,Q=Sr(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Tl?(Q=Tl,f+=2):(Q=t,T===0&&Be(Tn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,T===0&&Be(Nt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,T===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(Q=j,f+=2):(Q=t,T===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===zi?(Q=zi,f+=2):(Q=t,T===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,T===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,T===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,T===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,T===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(Q=Ne,f+=2):(Q=t,T===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,T===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,T===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,T===0&&Be(ie));else le=t;le!==t?(E=C,Q=Gl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,T===0&&Be(jl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,T===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Np(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Yl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,T===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,T===0&&Be(N)),Qe!==t?(E=C,Q=Or(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,T===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=js,f++):(Qe=t,T===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,T===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,T===0&&Be(jl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,T===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,T===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,T===0&&Be(Ea)),Q!==t?(R=vr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,Q=T1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,T===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(Q=Gs,f+=2):(Q=t,T===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,T===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,Q,R;return C=f,Q=Tge(),Q!==t?(E=f,R=j1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=G1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Nn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f<r.length&&Be(wt()),On(L,k<r.length?r.charAt(k):null,k<r.length?ii(k,k+1):ii(k,k))}fU.exports={SyntaxError:$l,parse:Tfe}});var EU=I((RZe,mU)=>{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Kfe(r,e){e=e!==void 0?e:{};var t={},i={resolution:Ae},n=Ae,s="/",o=ue("/",!1),a=function(ie,G){return{from:ie,descriptor:G}},l=function(ie){return{descriptor:ie}},c="@",u=ue("@",!1),g=function(ie,G){return{fullName:ie,description:G}},h=function(ie){return{fullName:ie}},p=function(){return W()},d=/^[^\/@]/,m=te(["/","@"],!0,!1),y=/^[^\/]/,B=te(["/"],!0,!1),S=0,P=0,F=[{line:1,column:1}],H=0,q=[],_=0,X;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function W(){return r.substring(P,S)}function Z(){return Pe(P,S)}function A(ie,G){throw G=G!==void 0?G:Pe(P,S),se([ce(ie)],r.substring(P,S),G)}function ne(ie,G){throw G=G!==void 0?G:Pe(P,S),Re(ie,G)}function ue(ie,G){return{type:"literal",text:ie,ignoreCase:G}}function te(ie,G,fe){return{type:"class",parts:ie,inverted:G,ignoreCase:fe}}function O(){return{type:"any"}}function N(){return{type:"end"}}function ce(ie){return{type:"other",description:ie}}function he(ie){var G=F[ie],fe;if(G)return G;for(fe=ie-1;!F[fe];)fe--;for(G=F[fe],G={line:G.line,column:G.column};fe<ie;)r.charCodeAt(fe)===10?(G.line++,G.column=1):G.column++,fe++;return F[ie]=G,G}function Pe(ie,G){var fe=he(ie),re=he(G);return{start:{offset:ie,line:fe.line,column:fe.column},end:{offset:G,line:re.line,column:re.column}}}function De(ie){S<H||(S>H&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(P=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(P=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(P=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S<r.length&&De(N()),se(q,H<r.length?r.charAt(H):null,H<r.length?Pe(H,H+1):Pe(H,H))}mU.exports={SyntaxError:tc,parse:Kfe}});var ic=I((NZe,rc)=>{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t<i;t+=1)n=s[t],r[n]=e[n];return r}function Gfe(r,e){var t="",i;for(i=0;i<e;i+=1)t+=r;return t}function Yfe(r){return r===0&&Number.NEGATIVE_INFINITY===1/r}rc.exports.isNothing=yU;rc.exports.isObject=Ufe;rc.exports.toArray=Hfe;rc.exports.repeat=Gfe;rc.exports.isNegativeZero=Yfe;rc.exports.extend=jfe});var Ng=I((TZe,wU)=>{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Gge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},Gge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function vK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Afe(e,t)}function xK(r,e,t){SK.stat(r,function(i,n){t(i,i?!1:vK(n,r,e))})}function lfe(r,e){return vK(SK.statSync(r),r,e)}});var NK=I((sZe,TK)=>{TK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=NK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,jK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},GK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=MK.join(l,r),u=!l&&/^\.[\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let h=u+i[g];try{if(KK.sync(h,{pathExt:n}))if(e.all)s.push(h);else return h}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw UK(r)};jK.exports=GK;GK.sync=hfe});var JK=I((lZe,vS)=>{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var NS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),TS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return TS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||TS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=TS});var hU=I((mZe,fU)=>{"use strict";function Tfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Tfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Nfe(r,e){e=e!==void 0?e:{};var t={},i={Start:Ia},n=Ia,s=function(C){return C||[]},o=function(C,Q,R){return[{command:C,type:Q}].concat(R||[])},a=function(C,Q){return[{command:C,type:Q||";"}]},l=function(C){return C},c=";",u=Ue(";",!1),g="&",h=Ue("&",!1),p=function(C,Q){return Q?{chain:C,then:Q}:{chain:C}},d=function(C,Q){return{type:C,line:Q}},m="&&",y=Ue("&&",!1),B="||",S=Ue("||",!1),P=function(C,Q){return Q?{...C,then:Q}:C},F=function(C,Q){return{type:C,chain:Q}},H="|&",q=Ue("|&",!1),_="|",X=Ue("|",!1),W="=",Z=Ue("=",!1),A=function(C,Q){return{name:C,args:[Q]}},ne=function(C){return{name:C,args:[]}},ue="(",te=Ue("(",!1),O=")",T=Ue(")",!1),ce=function(C,Q){return{type:"subshell",subshell:C,args:Q}},he="{",Pe=Ue("{",!1),De="}",Re=Ue("}",!1),se=function(C,Q){return{type:"group",group:C,args:Q}},Ae=function(C,Q){return{type:"command",args:Q,envs:C}},ye=function(C){return{type:"envs",envs:C}},ge=function(C){return C},oe=function(C){return C},Ye=/^[0-9]/,ie=Ve([["0","9"]],!1,!1),j=function(C,Q,R){return{type:"redirection",subtype:Q,fd:C!==null?parseInt(C):null,args:[R]}},fe=">>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Lr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},yr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Tl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},Sr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Tn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Nl=`\\ +`,Nn=Ue(`\\ +`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},b="\\a",Tt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=Ue("\\n",!1),ze=function(){return` +`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},Te="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",Gl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),jl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Tp=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Or=function(C){return C},HE="*",Hs=Ue("*",!1),Gs="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},js="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",T1=Ue(":-}",!1),N1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),G1=function(C){return e.isGlobPattern(C)},j1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,GE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,jE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],N=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function un(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};R<C;)r.charCodeAt(R)===10?(Q.line++,Q.column=1):Q.column++,R++;return w[C]=Q,Q}function ii(C,Q){var R=un(C),U=un(Q);return{start:{offset:C,line:R.line,column:R.column},end:{offset:Q,line:U.line,column:U.column}}}function Be(C){f<k||(f>k&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=vr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function vr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=vr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,N===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,N===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,N===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,N===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,N===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,N===0&&Be(X))),C}function YE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,jr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,N===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,N===0&&Be(T)),ft!==t){for(It=[],jr=Me();jr!==t;)It.push(jr),jr=Me();if(It!==t){for(jr=[],fi=Np();fi!==t;)jr.push(fi),fi=Np();if(jr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,jr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,N===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,N===0&&Be(Re)),ft!==t){for(It=[],jr=Me();jr!==t;)It.push(jr),jr=Me();if(It!==t){for(jr=[],fi=Np();fi!==t;)jr.push(fi),fi=Np();if(jr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,jr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Np(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Np(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=j(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,N===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,N===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,N===0&&Be(mt)),C===t&&(r.substr(f,3)===Lr?(C=Lr,f+=3):(C=t,N===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,N===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,N===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,N===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,N===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,N===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,N===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,N===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=yr(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Tl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Tge(),Q!==t&&(E=C,Q=Sr(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Nl?(Q=Nl,f+=2):(Q=t,N===0&&Be(Nn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(At)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,N===0&&Be(Tt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,N===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===G?(Q=G,f+=2):(Q=t,N===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===zi?(Q=zi,f+=2):(Q=t,N===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,N===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,N===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,N===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ha)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,jr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Te?(Q=Te,f+=2):(Q=t,N===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,N===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,N===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(jr=Mn(),jr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,jr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(Gl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,N===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie));else le=t;le!==t?(E=C,Q=jl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(Gl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Tp(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Yl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,N===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,N===0&&Be(T)),Qe!==t?(E=C,Q=Or(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=Gs,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=Gs,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(Gl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(Gl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,N===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,N===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,N===0&&Be(Ea)),Q!==t?(R=vr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,N===0&&Be(T)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,N===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,N===0&&Be(T1)),U!==t?(E=C,Q=N1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,N===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,N===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,N===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,N===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Tge(){var C,Q,R;return C=f,Q=Nge(),Q!==t?(E=f,R=G1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=j1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Nge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(GE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(GE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(jE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f<r.length&&Be(wt()),On(L,k<r.length?r.charAt(k):null,k<r.length?ii(k,k+1):ii(k,k))}fU.exports={SyntaxError:$l,parse:Nfe}});var EU=I((RZe,mU)=>{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Kfe(r,e){e=e!==void 0?e:{};var t={},i={resolution:Ae},n=Ae,s="/",o=ue("/",!1),a=function(ie,j){return{from:ie,descriptor:j}},l=function(ie){return{descriptor:ie}},c="@",u=ue("@",!1),g=function(ie,j){return{fullName:ie,description:j}},h=function(ie){return{fullName:ie}},p=function(){return W()},d=/^[^\/@]/,m=te(["/","@"],!0,!1),y=/^[^\/]/,B=te(["/"],!0,!1),S=0,P=0,F=[{line:1,column:1}],H=0,q=[],_=0,X;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function W(){return r.substring(P,S)}function Z(){return Pe(P,S)}function A(ie,j){throw j=j!==void 0?j:Pe(P,S),se([ce(ie)],r.substring(P,S),j)}function ne(ie,j){throw j=j!==void 0?j:Pe(P,S),Re(ie,j)}function ue(ie,j){return{type:"literal",text:ie,ignoreCase:j}}function te(ie,j,fe){return{type:"class",parts:ie,inverted:j,ignoreCase:fe}}function O(){return{type:"any"}}function T(){return{type:"end"}}function ce(ie){return{type:"other",description:ie}}function he(ie){var j=F[ie],fe;if(j)return j;for(fe=ie-1;!F[fe];)fe--;for(j=F[fe],j={line:j.line,column:j.column};fe<ie;)r.charCodeAt(fe)===10?(j.line++,j.column=1):j.column++,fe++;return F[ie]=j,j}function Pe(ie,j){var fe=he(ie),re=he(j);return{start:{offset:ie,line:fe.line,column:fe.column},end:{offset:j,line:re.line,column:re.column}}}function De(ie){S<H||(S>H&&(H=S,q=[]),q.push(ie))}function Re(ie,j){return new tc(ie,null,null,j)}function se(ie,j,fe){return new tc(tc.buildMessage(ie,j),ie,j,fe)}function Ae(){var ie,j,fe,re;return ie=S,j=ye(),j!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,j=a(j,re),ie=j):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,j=ye(),j!==t&&(P=ie,j=l(j)),ie=j),ie}function ye(){var ie,j,fe,re;return ie=S,j=ge(),j!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,j=g(j,re),ie=j):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,j=ge(),j!==t&&(P=ie,j=h(j)),ie=j),ie}function ge(){var ie,j,fe,re,de;return ie=S,r.charCodeAt(S)===64?(j=c,S++):(j=t,_===0&&De(u)),j!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,j=p(),ie=j):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,j=oe(),j!==t&&(P=ie,j=p()),ie=j),ie}function oe(){var ie,j,fe;if(ie=S,j=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)j.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else j=t;return j!==t&&(P=ie,j=p()),ie=j,ie}function Ye(){var ie,j,fe;if(ie=S,j=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)j.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else j=t;return j!==t&&(P=ie,j=p()),ie=j,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S<r.length&&De(T()),se(q,H<r.length?r.charAt(H):null,H<r.length?Pe(H,H+1):Pe(H,H))}mU.exports={SyntaxError:tc,parse:Kfe}});var ic=I((TZe,rc)=>{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function Gfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t<i;t+=1)n=s[t],r[n]=e[n];return r}function jfe(r,e){var t="",i;for(i=0;i<e;i+=1)t+=r;return t}function Yfe(r){return r===0&&Number.NEGATIVE_INFINITY===1/r}rc.exports.isNothing=yU;rc.exports.isObject=Ufe;rc.exports.toArray=Hfe;rc.exports.repeat=jfe;rc.exports.isNegativeZero=Yfe;rc.exports.extend=Gfe});var Tg=I((NZe,wU)=>{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;o<this.buffer.length&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(o))===-1;)if(o+=1,o-this.position>t/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BU.repeat(" ",e)+i+a+s+` `+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};QU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return r}function Tg(r){this.include=r.include||[],this.implicit=r.implicit||[],this.explicit=r.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new pI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=jS(this,"implicit",[]),this.compiledExplicit=jS(this,"explicit",[]),this.compiledTypeMap=Xfe(this.compiledImplicit,this.compiledExplicit)}Tg.DEFAULT=null;Tg.create=function(){var e,t;switch(arguments.length){case 1:e=Tg.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new pI("Wrong number of arguments for Schema.create function")}if(e=xU.toArray(e),t=xU.toArray(t),!e.every(function(i){return i instanceof Tg}))throw new pI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof Vfe}))throw new pI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Tg({include:e,explicit:t})};PU.exports=Tg});var DU=I((KZe,kU)=>{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(!uhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!ghe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}if(n==="_")return!1;for(;t<e;t++)if(n=r[t],n!=="_"){if(n===":")break;if(!fhe(r.charCodeAt(t)))return!1;i=!0}return!i||n==="_"?!1:n!==":"?!0:/^(:[0-5]?[0-9])+$/.test(r.slice(t))}function phe(r){var e=r,t=1,i,n,s=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),i=e[0],(i==="-"||i==="+")&&(i==="-"&&(t=-1),e=e.slice(1),i=e[0]),e==="0"?0:i==="0"?e[1]==="b"?t*parseInt(e.slice(2),2):e[1]==="x"?t*parseInt(e,16):t*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(o){s.unshift(parseInt(o,10))}),e=0,n=1,s.forEach(function(o){e+=o*n,n*=60}),t*e):t*parseInt(e,10)}function dhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&r%1===0&&!lhe.isNegativeZero(r)}HU.exports=new che("tag:yaml.org,2002:int",{kind:"scalar",resolve:hhe,construct:phe,predicate:dhe,represent:{binary:function(r){return r>=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t<n;t++)if(e=s.indexOf(r.charAt(t)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,Khe.call(n)!=="[object Object]")return!1;for(s in n)if(Mhe.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function Hhe(r){return r!==null?r:[]}i2.exports=new Ohe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uhe,construct:Hhe})});var o2=I((e_e,s2)=>{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1){if(i=o[e],Ghe.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function qhe(r){if(r===null)return[];var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}s2.exports=new jhe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Yhe,construct:qhe})});var A2=I((t_e,a2)=>{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Ng(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function hn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`+t)),i};QU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Tg(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Tg(),Vfe=ni();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return r}function Ng(r){this.include=r.include||[],this.implicit=r.implicit||[],this.explicit=r.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new pI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=GS(this,"implicit",[]),this.compiledExplicit=GS(this,"explicit",[]),this.compiledTypeMap=Xfe(this.compiledImplicit,this.compiledExplicit)}Ng.DEFAULT=null;Ng.create=function(){var e,t;switch(arguments.length){case 1:e=Ng.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new pI("Wrong number of arguments for Schema.create function")}if(e=xU.toArray(e),t=xU.toArray(t),!e.every(function(i){return i instanceof Ng}))throw new pI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof Vfe}))throw new pI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Ng({include:e,explicit:t})};PU.exports=Ng});var DU=I((KZe,kU)=>{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var NU=I((HZe,TU)=>{"use strict";var $fe=ni();TU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((GZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),NU()]})});var MU=I((jZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var GU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(!uhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!ghe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}if(n==="_")return!1;for(;t<e;t++)if(n=r[t],n!=="_"){if(n===":")break;if(!fhe(r.charCodeAt(t)))return!1;i=!0}return!i||n==="_"?!1:n!==":"?!0:/^(:[0-5]?[0-9])+$/.test(r.slice(t))}function phe(r){var e=r,t=1,i,n,s=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),i=e[0],(i==="-"||i==="+")&&(i==="-"&&(t=-1),e=e.slice(1),i=e[0]),e==="0"?0:i==="0"?e[1]==="b"?t*parseInt(e.slice(2),2):e[1]==="x"?t*parseInt(e,16):t*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(o){s.unshift(parseInt(o,10))}),e=0,n=1,s.forEach(function(o){e+=o*n,n*=60}),t*e):t*parseInt(e,10)}function dhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&r%1===0&&!lhe.isNegativeZero(r)}HU.exports=new che("tag:yaml.org,2002:int",{kind:"scalar",resolve:hhe,construct:phe,predicate:dhe,represent:{binary:function(r){return r>=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var jU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||jU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var jS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),GU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[jS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t<n;t++)if(e=s.indexOf(r.charAt(t)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function The(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function Nhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:The,predicate:Lhe,represent:Nhe})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,Khe.call(n)!=="[object Object]")return!1;for(s in n)if(Mhe.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function Hhe(r){return r!==null?r:[]}i2.exports=new Ohe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uhe,construct:Hhe})});var o2=I((e_e,s2)=>{"use strict";var Ghe=ni(),jhe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1){if(i=o[e],jhe.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function qhe(r){if(r===null)return[];var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}s2.exports=new Ghe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Yhe,construct:qhe})});var A2=I((t_e,a2)=>{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Tg(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function hn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` `:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e<t){if(a=r.input.slice(e,t),i)for(n=0,s=a.length;n<s;n+=1)o=a.charCodeAt(n),o===9||32<=o&&o<=1114111||gt(r,"expected valid JSON character");else ppe.test(a)&>(r,"the stream contains non-printable characters");r.result+=a}}function B2(r,e,t,i){var n,s,o,a;for(Qa.isObject(t)||gt(r,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(t),o=0,a=n.length;o<a;o+=1)s=n[o],kA.call(e,s)||(e[s]=t[s],i[s]=!0)}function Mg(r,e,t,i,n,s,o,a){var l,c;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,c=n.length;l<c;l+=1)Array.isArray(n[l])&>(r,"nested arrays are not supported inside keys"),typeof n=="object"&&I2(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&I2(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(l=0,c=s.length;l<c;l+=1)B2(r,e,s[l],t);else B2(r,e,s,t);else!r.json&&!kA.call(t,n)&&kA.call(e,n)&&(r.line=o||r.line,r.position=a||r.position,gt(r,"duplicated mapping key")),e[n]=s,delete t[n];return e}function WS(r){var e;e=r.input.charCodeAt(r.position),e===10?r.position++:e===13?(r.position++,r.input.charCodeAt(r.position)===10&&r.position++):gt(r,"a line break is expected"),r.line+=1,r.lineStart=r.position}function Jr(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;ac(n);)n=r.input.charCodeAt(++r.position);if(e&&n===35)do n=r.input.charCodeAt(++r.position);while(n!==10&&n!==13&&n!==0);if(vo(n))for(WS(r),n=r.input.charCodeAt(r.position),i++,r.lineIndent=0;n===32;)r.lineIndent++,n=r.input.charCodeAt(++r.position);else break}return t!==-1&&i!==0&&r.lineIndent<t&&II(r,"deficient indentation"),i}function yI(r){var e=r.position,t;return t=r.input.charCodeAt(e),!!((t===45||t===46)&&t===r.input.charCodeAt(e+1)&&t===r.input.charCodeAt(e+2)&&(e+=3,t=r.input.charCodeAt(e),t===0||hn(t)))}function zS(r,e){e===1?r.result+=" ":e>1&&(r.result+=Qa.repeat(` `,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),hn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),hn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function bpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),hn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent<a){n===E2?r.result+=Qa.repeat(` `,s?1+l:l):n===JS&&s&&(r.result+=` @@ -17,32 +17,32 @@ `,s?1+l:l)):c?(c=!1,r.result+=Qa.repeat(` `,l+1)):l===0?s&&(r.result+=" "):r.result+=Qa.repeat(` `,l):r.result+=Qa.repeat(` -`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!vo(g)&&g!==0;)g=r.input.charCodeAt(++r.position);PA(r,t,r.position,!1)}return!0}function Q2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!hn(o)));){if(a=!0,r.position++,Jr(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,Kg(r,e,x2,!1,!0),s.push(r.result),Jr(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndent<e)break}return a?(r.tag=i,r.anchor=n,r.kind="sequence",r.result=s,!0):!1}function xpe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,h=null,p=null,d=!1,m=!1,y;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),y=r.input.charCodeAt(r.position);y!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(y===63||y===58)&&hn(i))y===63?(d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!0,n=!0):d?(d=!1,n=!0):gt(r,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),r.position+=1,y=i;else if(Kg(r,t,v2,!1,!0))if(r.line===s){for(y=r.input.charCodeAt(r.position);ac(y);)y=r.input.charCodeAt(++r.position);if(y===58)y=r.input.charCodeAt(++r.position),hn(y)||gt(r,"a whitespace character is expected after the key-value separator within a block mapping"),d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!1,n=!1,g=r.tag,h=r.result;else if(m)gt(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(m)gt(r,"can not read a block mapping entry; a multiline key may not be an implicit key");else return r.tag=a,r.anchor=l,!0;else break;if((r.line===s||r.lineIndent>e)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return d&&Mg(r,c,u,g,h,null),m&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),m}function Ppe(r){var e,t=!1,i=!1,n,s,o;if(o=r.input.charCodeAt(r.position),o!==33)return!1;if(r.tag!==null&>(r,"duplication of a tag property"),o=r.input.charCodeAt(++r.position),o===60?(t=!0,o=r.input.charCodeAt(++r.position)):o===33?(i=!0,n="!!",o=r.input.charCodeAt(++r.position)):n="!",e=r.position,t){do o=r.input.charCodeAt(++r.position);while(o!==0&&o!==62);r.position<r.length?(s=r.input.slice(e,r.position),o=r.input.charCodeAt(++r.position)):gt(r,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!hn(o);)o===33&&(i?gt(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),P2.test(n)||gt(r,"named tag handle cannot contain such characters"),i=!0,e=r.position+1)),o=r.input.charCodeAt(++r.position);s=r.input.slice(e,r.position),Cpe.test(s)&>(r,"tag suffix cannot contain flow indicator characters")}return s&&!k2.test(s)&>(r,"tag name cannot contain such characters: "+s),t?r.tag=s:kA.call(r.tagMap,n)?r.tag=r.tagMap[n]+s:n==="!"?r.tag="!"+s:n==="!!"?r.tag="tag:yaml.org,2002:"+s:gt(r,'undeclared tag handle "'+n+'"'),!0}function kpe(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&>(r,"duplication of an anchor property"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!hn(t)&&!Og(t);)t=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an anchor node must contain at least one character"),r.anchor=r.input.slice(e,r.position),!0}function Dpe(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!hn(i)&&!Og(i);)i=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an alias node must contain at least one character"),t=r.input.slice(e,r.position),kA.call(r.anchorMap,t)||gt(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],Jr(r,!0,-1),!0}function Kg(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,h,p,d,m;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=EI===t||x2===t,i&&Jr(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;Ppe(r)||kpe(r);)Jr(r,!0,-1)?(c=!0,a=s,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)):a=!1;if(a&&(a=c||n),(l===1||EI===t)&&(mI===t||v2===t?d=e:d=e+1,m=r.position-r.lineStart,l===1?a&&(Q2(r,m)||xpe(r,m,d))||Spe(r,d)?u=!0:(o&&vpe(r,d)||Qpe(r,d)||bpe(r,d)?u=!0:Dpe(r)?(u=!0,(r.tag!==null||r.anchor!==null)&>(r,"alias node should not have any properties")):Bpe(r,d,mI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&Q2(r,m))),r.tag!==null&&r.tag!=="!")if(r.tag==="?"){for(r.result!==null&&r.kind!=="scalar"&>(r,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g<h;g+=1)if(p=r.implicitTypes[g],p.resolve(r.result)){r.result=p.construct(r.result),r.tag=p.tag,r.anchor!==null&&(r.anchorMap[r.anchor]=r.result);break}}else kA.call(r.typeMap[r.kind||"fallback"],r.tag)?(p=r.typeMap[r.kind||"fallback"][r.tag],r.result!==null&&p.kind!==r.kind&>(r,"unacceptable node kind for !<"+r.tag+'> tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position<r.length-1)gt(r,"end of the stream or a document separator is expected");else return}function N2(r,e){r=String(r),e=e||{},r.length!==0&&(r.charCodeAt(r.length-1)!==10&&r.charCodeAt(r.length-1)!==13&&(r+=` -`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new wpe(r,e),i=r.indexOf("\0");for(i!==-1&&(t.position=i,gt(t,"null byte is not allowed in input")),t.input+="\0";t.input.charCodeAt(t.position)===32;)t.lineIndent+=1,t.position+=1;for(;t.position<t.length-1;)Rpe(t);return t.documents}function T2(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function L2(r,e){var t=N2(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new b2("expected a single document in the stream, but found more")}}function Fpe(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),T2(r,e,Qa.extend({schema:S2},t))}function Npe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),l=r.compiledTypeMap.fallback[o],l&&J2.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function M2(r){var e,t,i;if(e=r.toString(16).toUpperCase(),r<=255)t="x",i=2;else if(r<=65535)t="u",i=4;else if(r<=4294967295)t="U",i=8;else throw new td("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+ed.repeat("0",i-e.length)+e}function tde(r){this.schema=r.schema||Tpe,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=ed.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=ede(this.schema,r.styles||null),this.sortKeys=r.sortKeys||!1,this.lineWidth=r.lineWidth||80,this.noRefs=r.noRefs||!1,this.noCompatMode=r.noCompatMode||!1,this.condenseFlow=r.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function K2(r,e){for(var t=ed.repeat(" ",e),i=0,n=-1,s="",o,a=r.length;i<a;)n=r.indexOf(` +`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!vo(g)&&g!==0;)g=r.input.charCodeAt(++r.position);PA(r,t,r.position,!1)}return!0}function Q2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!hn(o)));){if(a=!0,r.position++,Jr(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,Kg(r,e,x2,!1,!0),s.push(r.result),Jr(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndent<e)break}return a?(r.tag=i,r.anchor=n,r.kind="sequence",r.result=s,!0):!1}function xpe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,h=null,p=null,d=!1,m=!1,y;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),y=r.input.charCodeAt(r.position);y!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(y===63||y===58)&&hn(i))y===63?(d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!0,n=!0):d?(d=!1,n=!0):gt(r,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),r.position+=1,y=i;else if(Kg(r,t,v2,!1,!0))if(r.line===s){for(y=r.input.charCodeAt(r.position);ac(y);)y=r.input.charCodeAt(++r.position);if(y===58)y=r.input.charCodeAt(++r.position),hn(y)||gt(r,"a whitespace character is expected after the key-value separator within a block mapping"),d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!1,n=!1,g=r.tag,h=r.result;else if(m)gt(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(m)gt(r,"can not read a block mapping entry; a multiline key may not be an implicit key");else return r.tag=a,r.anchor=l,!0;else break;if((r.line===s||r.lineIndent>e)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return d&&Mg(r,c,u,g,h,null),m&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),m}function Ppe(r){var e,t=!1,i=!1,n,s,o;if(o=r.input.charCodeAt(r.position),o!==33)return!1;if(r.tag!==null&>(r,"duplication of a tag property"),o=r.input.charCodeAt(++r.position),o===60?(t=!0,o=r.input.charCodeAt(++r.position)):o===33?(i=!0,n="!!",o=r.input.charCodeAt(++r.position)):n="!",e=r.position,t){do o=r.input.charCodeAt(++r.position);while(o!==0&&o!==62);r.position<r.length?(s=r.input.slice(e,r.position),o=r.input.charCodeAt(++r.position)):gt(r,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!hn(o);)o===33&&(i?gt(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),P2.test(n)||gt(r,"named tag handle cannot contain such characters"),i=!0,e=r.position+1)),o=r.input.charCodeAt(++r.position);s=r.input.slice(e,r.position),Cpe.test(s)&>(r,"tag suffix cannot contain flow indicator characters")}return s&&!k2.test(s)&>(r,"tag name cannot contain such characters: "+s),t?r.tag=s:kA.call(r.tagMap,n)?r.tag=r.tagMap[n]+s:n==="!"?r.tag="!"+s:n==="!!"?r.tag="tag:yaml.org,2002:"+s:gt(r,'undeclared tag handle "'+n+'"'),!0}function kpe(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&>(r,"duplication of an anchor property"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!hn(t)&&!Og(t);)t=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an anchor node must contain at least one character"),r.anchor=r.input.slice(e,r.position),!0}function Dpe(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!hn(i)&&!Og(i);)i=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an alias node must contain at least one character"),t=r.input.slice(e,r.position),kA.call(r.anchorMap,t)||gt(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],Jr(r,!0,-1),!0}function Kg(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,h,p,d,m;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=EI===t||x2===t,i&&Jr(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;Ppe(r)||kpe(r);)Jr(r,!0,-1)?(c=!0,a=s,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)):a=!1;if(a&&(a=c||n),(l===1||EI===t)&&(mI===t||v2===t?d=e:d=e+1,m=r.position-r.lineStart,l===1?a&&(Q2(r,m)||xpe(r,m,d))||Spe(r,d)?u=!0:(o&&vpe(r,d)||Qpe(r,d)||bpe(r,d)?u=!0:Dpe(r)?(u=!0,(r.tag!==null||r.anchor!==null)&>(r,"alias node should not have any properties")):Bpe(r,d,mI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&Q2(r,m))),r.tag!==null&&r.tag!=="!")if(r.tag==="?"){for(r.result!==null&&r.kind!=="scalar"&>(r,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g<h;g+=1)if(p=r.implicitTypes[g],p.resolve(r.result)){r.result=p.construct(r.result),r.tag=p.tag,r.anchor!==null&&(r.anchorMap[r.anchor]=r.result);break}}else kA.call(r.typeMap[r.kind||"fallback"],r.tag)?(p=r.typeMap[r.kind||"fallback"][r.tag],r.result!==null&&p.kind!==r.kind&>(r,"unacceptable node kind for !<"+r.tag+'> tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position<r.length-1)gt(r,"end of the stream or a document separator is expected");else return}function T2(r,e){r=String(r),e=e||{},r.length!==0&&(r.charCodeAt(r.length-1)!==10&&r.charCodeAt(r.length-1)!==13&&(r+=` +`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new wpe(r,e),i=r.indexOf("\0");for(i!==-1&&(t.position=i,gt(t,"null byte is not allowed in input")),t.input+="\0";t.input.charCodeAt(t.position)===32;)t.lineIndent+=1,t.position+=1;for(;t.position<t.length-1;)Rpe(t);return t.documents}function N2(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=T2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function L2(r,e){var t=T2(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new b2("expected a single document in the stream, but found more")}}function Fpe(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),N2(r,e,Qa.extend({schema:S2},t))}function Tpe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=N2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Tpe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Tg(),Npe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,Gpe=37,jpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ti={};Ti[0]="\\0";Ti[7]="\\a";Ti[8]="\\b";Ti[9]="\\t";Ti[10]="\\n";Ti[11]="\\v";Ti[12]="\\f";Ti[13]="\\r";Ti[27]="\\e";Ti[34]='\\"';Ti[92]="\\\\";Ti[133]="\\N";Ti[160]="\\_";Ti[8232]="\\L";Ti[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),l=r.compiledTypeMap.fallback[o],l&&J2.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function M2(r){var e,t,i;if(e=r.toString(16).toUpperCase(),r<=255)t="x",i=2;else if(r<=65535)t="u",i=4;else if(r<=4294967295)t="U",i=8;else throw new td("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+ed.repeat("0",i-e.length)+e}function tde(r){this.schema=r.schema||Npe,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=ed.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=ede(this.schema,r.styles||null),this.sortKeys=r.sortKeys||!1,this.lineWidth=r.lineWidth||80,this.noRefs=r.noRefs||!1,this.noCompatMode=r.noCompatMode||!1,this.condenseFlow=r.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function K2(r,e){for(var t=ed.repeat(" ",e),i=0,n=-1,s="",o,a=r.length;i<a;)n=r.indexOf(` `,i),n===-1?(o=r.slice(i),i=a):(o=r.slice(i,n+1),i=n+1),o.length&&o!==` `&&(s+=t),s+=o;return s}function VS(r,e){return` -`+ed.repeat(" ",r.indent*e)}function rde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t<i;t+=1)if(n=r.implicitTypes[t],n.resolve(e))return!0;return!1}function ZS(r){return r===Kpe||r===Ope}function Ug(r){return 32<=r&&r<=126||161<=r&&r<=55295&&r!==8232&&r!==8233||57344<=r&&r<=65533&&r!==65279||65536<=r&&r<=1114111}function ide(r){return Ug(r)&&!ZS(r)&&r!==65279&&r!==Mpe&&r!==$p}function U2(r,e){return Ug(r)&&r!==65279&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==V2&&(r!==W2||e&&ide(e))}function nde(r){return Ug(r)&&r!==65279&&!ZS(r)&&r!==Jpe&&r!==Vpe&&r!==V2&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==W2&&r!==Gpe&&r!==qpe&&r!==Upe&&r!==_pe&&r!==Wpe&&r!==zpe&&r!==Ype&&r!==Hpe&&r!==jpe&&r!==Xpe&&r!==Zpe}function eH(r){var e=/^\n* /;return e.test(r)}var tH=1,rH=2,iH=3,nH=4,wI=5;function sde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,h=nde(r.charCodeAt(0))&&!ZS(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===$p)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` +`+ed.repeat(" ",r.indent*e)}function rde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t<i;t+=1)if(n=r.implicitTypes[t],n.resolve(e))return!0;return!1}function ZS(r){return r===Kpe||r===Ope}function Ug(r){return 32<=r&&r<=126||161<=r&&r<=55295&&r!==8232&&r!==8233||57344<=r&&r<=65533&&r!==65279||65536<=r&&r<=1114111}function ide(r){return Ug(r)&&!ZS(r)&&r!==65279&&r!==Mpe&&r!==$p}function U2(r,e){return Ug(r)&&r!==65279&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==V2&&(r!==W2||e&&ide(e))}function nde(r){return Ug(r)&&r!==65279&&!ZS(r)&&r!==Jpe&&r!==Vpe&&r!==V2&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==W2&&r!==jpe&&r!==qpe&&r!==Upe&&r!==_pe&&r!==Wpe&&r!==zpe&&r!==Ype&&r!==Hpe&&r!==Gpe&&r!==Xpe&&r!==Zpe}function eH(r){var e=/^\n* /;return e.test(r)}var tH=1,rH=2,iH=3,nH=4,wI=5;function sde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,h=nde(r.charCodeAt(0))&&!ZS(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===$p)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+G2(K2(e,n));case nH:return">"+H2(e,r.indent)+G2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` `,n=i&&(r[r.length-2]===` `||r===` `),s=n?"+":i?"":"-";return t+s+` -`}function j2(r){return r[r.length-1]===` +`}function G2(r){return r[r.length-1]===` `?r.slice(0,-1):r}function ade(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,G2(r.slice(0,c),e)}(),n=r[0]===` +`);return c=c!==-1?c:r.length,t.lastIndex=c,j2(r.slice(0,c),e)}(),n=r[0]===` `||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+G2(l,e),n=s}return i}function G2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`:"")+j2(l,e),n=s}return i}function j2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` `+r.slice(n,s),n=s+1),o=a;return l+=` `,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s<r.length;s++){if(t=r.charCodeAt(s),t>=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ac(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function cde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ac(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=VS(r,e)),r.dump&&$p===r.dump.charCodeAt(0)?n+="-":n+="- ",n+=r.dump);r.tag=s,r.dump=n||"[]"}function ude(r,e,t){var i="",n=r.tag,s=Object.keys(t),o,a,l,c,u;for(o=0,a=s.length;o<a;o+=1)u="",o!==0&&(u+=", "),r.condenseFlow&&(u+='"'),l=s[o],c=t[l],Ac(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)h="",(!i||a!==0)&&(h+=VS(r,e)),c=o[a],u=t[c],Ac(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!=="?"||r.dump&&r.dump.length>1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e=="object"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r.tag=t?a.tag:"?",a.represent){if(l=r.styleMap[a.tag]||a.defaultStyle,q2.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(J2.call(a.represent,l))i=a.represent[l](e,l);else throw new td("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function XS(r,e,t){var i,n,s;if(r!==null&&typeof r=="object")if(n=e.indexOf(r),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(e.push(r),Array.isArray(r))for(n=0,s=r.length;n<s;n+=1)XS(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)XS(r[i[n]],e,t)}function sH(r,e){e=e||{};var t=new tde(e);return t.noRefs||fde(r,t),Ac(t,0,r,!0,!0)?t.dump+` -`:""}function hde(r,e){return sH(r,ed.extend({schema:Lpe},e))}_S.exports.dump=sH;_S.exports.safeDump=hde});var AH=I((c_e,Rr)=>{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Rr.exports.Type=ni();Rr.exports.Schema=nc();Rr.exports.FAILSAFE_SCHEMA=dI();Rr.exports.JSON_SCHEMA=GS();Rr.exports.CORE_SCHEMA=YS();Rr.exports.DEFAULT_SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_FULL_SCHEMA=Zp();Rr.exports.load=BI.load;Rr.exports.loadAll=BI.loadAll;Rr.exports.safeLoad=BI.safeLoad;Rr.exports.safeLoadAll=BI.safeLoadAll;Rr.exports.dump=aH.dump;Rr.exports.safeDump=aH.safeDump;Rr.exports.YAMLException=Ng();Rr.exports.MINIMAL_SCHEMA=dI();Rr.exports.SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_SCHEMA=Zp();Rr.exports.scan=QI("scan");Rr.exports.parse=QI("parse");Rr.exports.compose=QI("compose");Rr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Cde(r,e){e=e!==void 0?e:{};var t={},i={Start:Us},n=Us,s=function(D){return[].concat(...D)},o="-",a=sr("-",!1),l=function(D){return D},c=function(D){return Object.assign({},...D)},u="#",g=sr("#",!1),h=Ml(),p=function(){return{}},d=":",m=sr(":",!1),y=function(D,Y){return{[D]:Y}},B=",",S=sr(",",!1),P=function(D,Y){return Y},F=function(D,Y,pe){return Object.assign({},...[D].concat(Y).map(Le=>({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s<r.length;s++){if(t=r.charCodeAt(s),t>=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ti[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ac(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function cde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ac(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=VS(r,e)),r.dump&&$p===r.dump.charCodeAt(0)?n+="-":n+="- ",n+=r.dump);r.tag=s,r.dump=n||"[]"}function ude(r,e,t){var i="",n=r.tag,s=Object.keys(t),o,a,l,c,u;for(o=0,a=s.length;o<a;o+=1)u="",o!==0&&(u+=", "),r.condenseFlow&&(u+='"'),l=s[o],c=t[l],Ac(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)h="",(!i||a!==0)&&(h+=VS(r,e)),c=o[a],u=t[c],Ac(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!=="?"||r.dump&&r.dump.length>1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e=="object"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r.tag=t?a.tag:"?",a.represent){if(l=r.styleMap[a.tag]||a.defaultStyle,q2.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(J2.call(a.represent,l))i=a.represent[l](e,l);else throw new td("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function XS(r,e,t){var i,n,s;if(r!==null&&typeof r=="object")if(n=e.indexOf(r),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(e.push(r),Array.isArray(r))for(n=0,s=r.length;n<s;n+=1)XS(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)XS(r[i[n]],e,t)}function sH(r,e){e=e||{};var t=new tde(e);return t.noRefs||fde(r,t),Ac(t,0,r,!0,!0)?t.dump+` +`:""}function hde(r,e){return sH(r,ed.extend({schema:Lpe},e))}_S.exports.dump=sH;_S.exports.safeDump=hde});var AH=I((c_e,Rr)=>{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Rr.exports.Type=ni();Rr.exports.Schema=nc();Rr.exports.FAILSAFE_SCHEMA=dI();Rr.exports.JSON_SCHEMA=jS();Rr.exports.CORE_SCHEMA=YS();Rr.exports.DEFAULT_SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_FULL_SCHEMA=Zp();Rr.exports.load=BI.load;Rr.exports.loadAll=BI.loadAll;Rr.exports.safeLoad=BI.safeLoad;Rr.exports.safeLoadAll=BI.safeLoadAll;Rr.exports.dump=aH.dump;Rr.exports.safeDump=aH.safeDump;Rr.exports.YAMLException=Tg();Rr.exports.MINIMAL_SCHEMA=dI();Rr.exports.SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_SCHEMA=Zp();Rr.exports.scan=QI("scan");Rr.exports.parse=QI("parse");Rr.exports.compose=QI("compose");Rr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Cde(r,e){e=e!==void 0?e:{};var t={},i={Start:Us},n=Us,s=function(D){return[].concat(...D)},o="-",a=sr("-",!1),l=function(D){return D},c=function(D){return Object.assign({},...D)},u="#",g=sr("#",!1),h=Ml(),p=function(){return{}},d=":",m=sr(":",!1),y=function(D,Y){return{[D]:Y}},B=",",S=sr(",",!1),P=function(D,Y){return Y},F=function(D,Y,pe){return Object.assign({},...[D].concat(Y).map(Le=>({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),T=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",` -`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Lr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),yr=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` -`},Sr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,ln=Ln([" "," "],!1,!1),b=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` +`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),j=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Lr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),yr=function(){return"\b"},Tl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` +`},Sr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Tn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Nl="\\u",Nn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,ln=Ln([" "," "],!1,!1),b=Ks("white space"),Tt=/^[ \t\n\r]/,pg=Ln([" "," ",` `,"\r"],!1,!1),Ll=`\r `,bp=sr(`\r `,!1),Sp=` `,vp=sr(` -`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],zi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return cn(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};pe<D;)r.charCodeAt(pe)===10?(Y.line++,Y.column=1):Y.column++,pe++;return yA[D]=Y,Y}function cn(D,Y){var pe=ha(D),Le=ha(Y);return{start:{offset:D,line:pe.line,column:pe.column},end:{offset:Y,line:Le.line,column:Le.column}}}function Ne(D){j<zi||(j>zi&&(zi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Or(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Or(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Or(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Or(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Or(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Or(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=QA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=QA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function QA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Lr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=yr()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=Qp()),D=Y,D===t&&(D=j,r.substr(j,2)===Sr?(Y=Sr,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Or(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(b)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(bp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Ne(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j<r.length&&Ne(Dp()),Kl(Ol,zi<r.length?r.charAt(zi):null,zi<r.length?cn(zi,zi+1):cn(zi,zi))}uH.exports={SyntaxError:lc,parse:Cde}});var mH=I((C_e,ev)=>{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n<r.length;n++){let s=r[n];e&&/[a-zA-Z]/.test(s)&&s.toUpperCase()===s?(r=r.slice(0,n)+"-"+r.slice(n),e=!1,i=t,t=!0,n++):t&&i&&/[a-zA-Z]/.test(s)&&s.toLowerCase()===s?(r=r.slice(0,n-1)+"-"+r.slice(n-1),i=t,t=!1,e=!0):(e=s.toLowerCase()===s&&s.toUpperCase()!==s,i=t,t=s.toUpperCase()===s&&s.toLowerCase()!==s)}return r},CH=(r,e)=>{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var pn={};ct(pn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Zi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o<a&&(s=r(t[o],Object.assign(Object.assign({},i),{p:DA(i,o),coercion:gc(t,o)}))&&s,!(!s&&(i==null?void 0:i.errors)==null));++o);return s}}),kde=(r,{delimiter:e}={})=>{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;a<l&&a<r.length&&(o=r[a](i[a],Object.assign(Object.assign({},n),{p:DA(n,a),coercion:gc(i,a)}))&&o,!(!o&&(n==null?void 0:n.errors)==null));++a);return o}})},Dde=(r,{keys:e=null}={})=>Bt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o<a&&(s||(i==null?void 0:i.errors)!=null);++o){let l=n[o],c=t[l];if(l==="__proto__"||l==="constructor"){s=ht(Object.assign(Object.assign({},i),{p:DA(i,l)}),"Unsafe property name");continue}if(e!==null&&!e(l,i)){s=!1;continue}if(!r(c,Object.assign(Object.assign({},i),{p:DA(i,l),coercion:gc(t,l)}))){s=!1;continue}}return s}}),Rde=(r,{extra:e=null}={})=>{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c<u;++c){let g=typeof(i==null?void 0:i.errors)<"u"?[]:void 0,h=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(r[c](t,Object.assign(Object.assign({},i),{errors:g,coercions:h,p:`${(n=i==null?void 0:i.p)!==null&&n!==void 0?n:"."}#${c+1}`}))){if(a.push([`#${c+1}`,h]),!e)break}else l==null||l.push(g[0])}if(a.length===1){let[,c]=a[0];return typeof c<"u"&&((s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...c)),!0}return a.length>1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;s<o;++s){let a=e[s],l=typeof r<"u"?r(a):a;if(i.has(l)){if(n.has(l))continue;ht(t,`Expected to contain unique elements; got a duplicate with ${Wr(e)}`),n.add(l)}else i.add(l)}return n.size===0}}),Ude=()=>Bt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<e?!0:ht(i,`Expected to be in the [${r}; ${e}[ range (got ${t})`)}),Jde=({unsafe:r=!1}={})=>Bt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{t<r?n(a,l,...c):e.push(n.bind(null,a,l,...c))},o=(a,...l)=>new Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r<e?-1:1},kCe=(r,e)=>tj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((b$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<MI)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(OI("SemVer.compare",this.version,this.options,e),!(e instanceof Gn)){if(typeof e=="string"&&e===this.version)return 0;e=new Gn(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof Gn||(e=new Gn(e,this.options)),dd(this.major,e.major)||dd(this.minor,e.minor)||dd(this.patch,e.patch)}comparePre(e){if(e instanceof Gn||(e=new Gn(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=e.prerelease[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}compareBuild(e){e instanceof Gn||(e=new Gn(e,this.options));let t=0;do{let i=this.build[t],n=e.build[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t),this.inc("pre",t);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var Qj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,bj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bj.exports=VCe});var xj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),Qme=GI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=bme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t<i;t++)e.push(arguments[t]);return e}Mt.prototype.removeNode=function(r){if(r.list!==this)throw new Error("removing node which does not belong to this list");var e=r.next,t=r.prev;return e&&(e.prev=t),t&&(t.next=e),r===this.head&&(this.head=e),r===this.tail&&(this.tail=t),r.list.length--,r.next=null,r.prev=null,r.list=null,e};Mt.prototype.unshiftNode=function(r){if(r!==this.head){r.list&&r.list.removeNode(r);var e=this.head;r.list=this,r.next=e,e&&(e.prev=r),this.head=r,this.tail||(this.tail=r),this.length++}};Mt.prototype.pushNode=function(r){if(r!==this.tail){r.list&&r.list.removeNode(r);var e=this.tail;r.list=this,r.prev=e,e&&(e.next=r),this.tail=r,this.head||(this.head=r),this.length++}};Mt.prototype.push=function(){for(var r=0,e=arguments.length;r<e;r++)kme(this,arguments[r]);return this.length};Mt.prototype.unshift=function(){for(var r=0,e=arguments.length;r<e;r++)Dme(this,arguments[r]);return this.length};Mt.prototype.pop=function(){if(!!this.tail){var r=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,r}};Mt.prototype.shift=function(){if(!!this.head){var r=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,r}};Mt.prototype.forEach=function(r,e){e=e||this;for(var t=this.head,i=0;t!==null;i++)r.call(e,t.value,i,this),t=t.next};Mt.prototype.forEachReverse=function(r,e){e=e||this;for(var t=this.tail,i=this.length-1;t!==null;i--)r.call(e,t.value,i,this),t=t.prev};Mt.prototype.get=function(r){for(var e=0,t=this.head;t!==null&&e<r;e++)t=t.next;if(e===r&&t!==null)return t.value};Mt.prototype.getReverse=function(r){for(var e=0,t=this.tail;t!==null&&e<r;e++)t=t.prev;if(e===r&&t!==null)return t.value};Mt.prototype.map=function(r,e){e=e||this;for(var t=new Mt,i=this.head;i!==null;)t.push(r.call(e,i.value,this)),i=i.next;return t};Mt.prototype.mapReverse=function(r,e){e=e||this;for(var t=new Mt,i=this.tail;i!==null;)t.push(r.call(e,i.value,this)),i=i.prev;return t};Mt.prototype.reduce=function(r,e){var t,i=this.head;if(arguments.length>1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(;n!==null&&i<e;i++,n=n.next)t.push(n.value);return t};Mt.prototype.sliceReverse=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(var s=[],i=0;n&&i<e;i++)s.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var i=0;i<t.length;i++)n=Pme(this,n,t[i]);return s};Mt.prototype.reverse=function(){for(var r=this.head,e=this.tail,t=r;t!==null;t=t.prev){var i=t.prev;t.prev=t.next,t.next=i}return this.head=e,this.tail=r,this};function Pme(r,e,t){var i=e===r.head?new pc(t,null,e,r):new pc(t,e,e.next,r);return i.next===null&&(r.tail=i),i.prev===null&&(r.head=i),r.length++,i}function kme(r,e){r.tail=new pc(e,r.tail,null,r),r.head||(r.head=r.tail),r.length++}function Dme(r,e){r.head=new pc(e,null,r.head,r),r.tail||(r.tail=r.head),r.length++}function pc(r,e,t,i){if(!(this instanceof pc))return new pc(r,e,t,i);this.list=i,this.value=r,e?(e.next=this,this.prev=e):this.prev=null,t?(t.prev=this,this.next=t):this.next=null}try{Xj()(Mt)}catch{}});var rG=I((Z$e,tG)=>{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Kr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Kr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(Xme(this.set[t],e,this.options))return!0;return!1}};oG.exports=mc;var Fme=rG(),iG=new Fme({max:1e3}),Nme=pd(),Bv=Id(),Kr=hd(),Tme=Li(),{re:Oi,t:bi,comparatorTrimReplace:Lme,tildeTrimReplace:Ome,caretTrimReplace:Mme}=fc(),nG=r=>r.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Kr("comp",r,e),r=Gme(r,e),Kr("caret",r),r=Hme(r,e),Kr("tildes",r),r=qme(r,e),Kr("xrange",r),r=Wme(r,e),Kr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Kr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Kr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Kr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Kr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Kr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Kr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Kr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Kr("caret return",c),c})},qme=(r,e)=>(Kr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Kr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Kr("xRange return",i),i})},Wme=(r,e)=>(Kr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Kr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i<r.length;i++)if(!r[i].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let i=0;i<r.length;i++)if(Kr(r[i].semver),r[i].semver!==Bv.ANY&&r[i].semver.prerelease.length>0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),Qv=mv(),bv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i<r.set.length;++i){let n=r.set[i],s=null;n.forEach(o=>{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),QG=Cd(),bG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=QG,s=dEe,o=bG,a=">",l=">=";break;case"<":n=bG,s=CEe,o=QG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],g=null,h=null;if(u.forEach(p=>{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var PG=I((aet,xG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var QEe=wd(),bEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e}});var HG=I((get,UG)=>{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var Pv=fc();jG.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:Qj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:PG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i<n;i++)(s||!(i in e))&&(s||(s=Array.prototype.slice.call(e,0,i)),s[i]=e[i]);return r.concat(s||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0});exports.toFastProperties=exports.timer=exports.peek=exports.isES2015MapSupported=exports.PRINT_WARNING=exports.PRINT_ERROR=exports.packArray=exports.IDENTITY=exports.NOOP=exports.merge=exports.groupBy=exports.defaults=exports.assignNoOverwrite=exports.assign=exports.zipObject=exports.sortBy=exports.indexOf=exports.some=exports.difference=exports.every=exports.isObject=exports.isRegExp=exports.isArray=exports.partial=exports.uniq=exports.compact=exports.reduce=exports.findAll=exports.find=exports.cloneObj=exports.cloneArr=exports.contains=exports.has=exports.pick=exports.reject=exports.filter=exports.dropRight=exports.drop=exports.isFunction=exports.isUndefined=exports.isString=exports.forEach=exports.last=exports.first=exports.flatten=exports.map=exports.mapValues=exports.values=exports.keys=exports.isEmpty=void 0;exports.upperFirst=void 0;function isEmpty(r){return r&&r.length===0}exports.isEmpty=isEmpty;function keys(r){return r==null?[]:Object.keys(r)}exports.keys=keys;function values(r){for(var e=[],t=Object.keys(r),i=0;i<t.length;i++)e.push(r[t[i]]);return e}exports.values=values;function mapValues(r,e){for(var t=[],i=keys(r),n=0;n<i.length;n++){var s=i[n];t.push(e.call(null,r[s],s))}return t}exports.mapValues=mapValues;function map(r,e){for(var t=[],i=0;i<r.length;i++)t.push(e.call(null,r[i],i));return t}exports.map=map;function flatten(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];Array.isArray(i)?e=e.concat(flatten(i)):e.push(i)}return e}exports.flatten=flatten;function first(r){return isEmpty(r)?void 0:r[0]}exports.first=first;function last(r){var e=r&&r.length;return e?r[e-1]:void 0}exports.last=last;function forEach(r,e){if(Array.isArray(r))for(var t=0;t<r.length;t++)e.call(null,r[t],t);else if(isObject(r))for(var i=keys(r),t=0;t<i.length;t++){var n=i[t],s=r[n];e.call(null,s,n)}else throw Error("non exhaustive match")}exports.forEach=forEach;function isString(r){return typeof r=="string"}exports.isString=isString;function isUndefined(r){return r===void 0}exports.isUndefined=isUndefined;function isFunction(r){return r instanceof Function}exports.isFunction=isFunction;function drop(r,e){return e===void 0&&(e=1),r.slice(e,r.length)}exports.drop=drop;function dropRight(r,e){return e===void 0&&(e=1),r.slice(0,r.length-e)}exports.dropRight=dropRight;function filter(r,e){var t=[];if(Array.isArray(r))for(var i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.filter=filter;function reject(r,e){return filter(r,function(t){return!e(t)})}exports.reject=reject;function pick(r,e){for(var t=Object.keys(r),i={},n=0;n<t.length;n++){var s=t[n],o=r[s];e(o)&&(i[s]=o)}return i}exports.pick=pick;function has(r,e){return isObject(r)?r.hasOwnProperty(e):!1}exports.has=has;function contains(r,e){return find(r,function(t){return t===e})!==void 0}exports.contains=contains;function cloneArr(r){for(var e=[],t=0;t<r.length;t++)e.push(r[t]);return e}exports.cloneArr=cloneArr;function cloneObj(r){var e={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e}exports.cloneObj=cloneObj;function find(r,e){for(var t=0;t<r.length;t++){var i=r[t];if(e.call(null,i))return i}}exports.find=find;function findAll(r,e){for(var t=[],i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.findAll=findAll;function reduce(r,e,t){for(var i=Array.isArray(r),n=i?r:values(r),s=i?[]:keys(r),o=t,a=0;a<n.length;a++)o=e.call(null,o,n[a],i?a:s[a]);return o}exports.reduce=reduce;function compact(r){return reject(r,function(e){return e==null})}exports.compact=compact;function uniq(r,e){e===void 0&&(e=function(i){return i});var t=[];return reduce(r,function(i,n){var s=e(n);return contains(t,s)?i:(t.push(s),i.concat(n))},[])}exports.uniq=uniq;function partial(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var i=[null],n=i.concat(e);return Function.bind.apply(r,n)}exports.partial=partial;function isArray(r){return Array.isArray(r)}exports.isArray=isArray;function isRegExp(r){return r instanceof RegExp}exports.isRegExp=isRegExp;function isObject(r){return r instanceof Object}exports.isObject=isObject;function every(r,e){for(var t=0;t<r.length;t++)if(!e(r[t],t))return!1;return!0}exports.every=every;function difference(r,e){return reject(r,function(t){return contains(e,t)})}exports.difference=difference;function some(r,e){for(var t=0;t<r.length;t++)if(e(r[t]))return!0;return!1}exports.some=some;function indexOf(r,e){for(var t=0;t<r.length;t++)if(r[t]===e)return t;return-1}exports.indexOf=indexOf;function sortBy(r,e){var t=cloneArr(r);return t.sort(function(i,n){return e(i)-e(n)}),t}exports.sortBy=sortBy;function zipObject(r,e){if(r.length!==e.length)throw Error("can't zipObject with different number of keys and values!");for(var t={},i=0;i<r.length;i++)t[r[i]]=e[i];return t}exports.zipObject=zipObject;function assign(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];r[a]=n[a]}return r}exports.assign=assign;function assignNoOverwrite(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];has(r,a)||(r[a]=n[a])}return r}exports.assignNoOverwrite=assignNoOverwrite;function defaults(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return assignNoOverwrite.apply(void 0,__spreadArray([{}],r,!1))}exports.defaults=defaults;function groupBy(r,e){var t={};return forEach(r,function(i){var n=e(i),s=t[n];s?s.push(i):t[n]=[i]}),t}exports.groupBy=groupBy;function merge(r,e){for(var t=cloneObj(r),i=keys(e),n=0;n<i.length;n++){var s=i[n],o=e[s];t[s]=o}return t}exports.merge=merge;function NOOP(){}exports.NOOP=NOOP;function IDENTITY(r){return r}exports.IDENTITY=IDENTITY;function packArray(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];e.push(i!==void 0?i:void 0)}return e}exports.packArray=packArray;function PRINT_ERROR(r){console&&console.error&&console.error("Error: "+r)}exports.PRINT_ERROR=PRINT_ERROR;function PRINT_WARNING(r){console&&console.warn&&console.warn("Warning: "+r)}exports.PRINT_WARNING=PRINT_WARNING;function isES2015MapSupported(){return typeof Map=="function"}exports.isES2015MapSupported=isES2015MapSupported;function peek(r){return r[r.length-1]}exports.peek=peek;function timer(r){var e=new Date().getTime(),t=r(),i=new Date().getTime(),n=i-e;return{time:n,value:t}}exports.timer=timer;function toFastProperties(toBecomeFast){function FakeConstructor(){}FakeConstructor.prototype=toBecomeFast;var fakeInstance=new FakeConstructor;function fakeAccess(){return typeof fakeInstance.bar}return fakeAccess(),fakeAccess(),toBecomeFast;eval(toBecomeFast)}exports.toFastProperties=toFastProperties;function upperFirst(r){if(!r)return r;var e=getCharacterFromCodePointAt(r,0);return e.toUpperCase()+r.substring(e.length)}exports.upperFirst=upperFirst;var surrogatePairPattern=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;function getCharacterFromCodePointAt(r,e){var t=r.substring(e,e+1);return surrogatePairPattern.test(t)?t:r[e]}});var _I=I((GG,ZI)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`,!1),xp="\r",Pp=sr("\r",!1),G=0,Et=0,yA=[{line:1,column:1}],zi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,G)}function OE(){return cn(Et,G)}function kp(D,Y){throw Y=Y!==void 0?Y:cn(Et,G),Kl([Ks(D)],r.substring(Et,G),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:cn(Et,G),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};pe<D;)r.charCodeAt(pe)===10?(Y.line++,Y.column=1):Y.column++,pe++;return yA[D]=Y,Y}function cn(D,Y){var pe=ha(D),Le=ha(Y);return{start:{offset:D,line:pe.line,column:pe.column},end:{offset:Y,line:Le.line,column:Le.column}}}function Te(D){G<zi||(G>zi&&(zi=G,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=G,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=G,Y=da(),Y!==t?(r.charCodeAt(G)===45?(pe=o,G++):(pe=t,ze===0&&Te(a)),pe!==t?(Le=Or(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D}function mg(){var D,Y,pe;for(D=G,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=G,Y=Or(),Y===t&&(Y=null),Y!==t){if(pe=G,r.charCodeAt(G)===35?(Le=u,G++):(Le=t,ze===0&&Te(g)),Le!==t){if(ke=[],Je=G,pt=G,ze++,Xt=Gs(),ze--,Xt===t?pt=void 0:(G=pt,pt=t),pt!==t?(r.length>G?(Xt=r.charAt(G),G++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(G=Je,Je=t)):(G=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=G,pt=G,ze++,Xt=Gs(),ze--,Xt===t?pt=void 0:(G=pt,pt=t),pt!==t?(r.length>G?(Xt=r.charAt(G),G++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(G=Je,Je=t)):(G=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(G=pe,pe=t)}else G=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(G=D,D=t)}else G=D,D=t}else G=D,D=t;if(D===t&&(D=G,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(G)===58?(ke=d,G++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t&&(D=G,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(G)===58?(ke=d,G++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t))){if(D=G,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Or(),Le!==t)if(ke=Gl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(G=D,D=t)}else G=D,D=t;else G=D,D=t;else G=D,D=t;else G=D,D=t;if(D===t)if(D=G,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=G,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(G)===44?(pt=B,G++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=G,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(G)===44?(pt=B,G++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t);else Le=t;Le!==t?(ke=Or(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(G)===58?(Je=d,G++):(Je=t,ze===0&&Te(m)),Je!==t?(pt=Or(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)}else G=D,D=t;else G=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=G,Y=G,ze++,pe=G,Le=Gs(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(G)===45?(Je=o,G++):(Je=t,ze===0&&Te(a)),Je!==t?(pt=Or(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t),ze--,pe!==t?(G=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t&&(D=G,Y=Gs(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t))if(D=G,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(G=D,D=t)}else G=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=G,Y=[],r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));pe!==t;)Y.push(pe),r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));return Y!==t?(Et=G,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(G=D,D=t)):(G=D,D=t),ze--,D===t&&(Y=t,ze===0&&Te(_)),D}function tt(){var D,Y,pe;for(D=G,Y=[],r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));pe!==t;)Y.push(pe),r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));return Y!==t?(Et=G,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(G=D,D=t)):(G=D,D=t),D}function Bo(){var D;return Et=G,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=G,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=jl(),D===t&&(D=QA()),D}function Ca(){var D,Y,pe;if(D=jl(),D===t){if(D=G,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=jl(),D===t&&(D=QA()))),D}function Gl(){var D;return D=Fp(),D===t&&(D=jl(),D===t&&(D=ma())),D}function QA(){var D,Y,pe,Le,ke,Je;if(ze++,D=G,T.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(ce)),Y!==t){for(pe=[],Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(G))?(Je=r.charAt(G),G++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);Le!==t;)pe.push(Le),Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(G))?(Je=r.charAt(G),G++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(G=D,D=t)}else G=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Te(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=G,r.substr(G,2)===Re?(Y=Re,G+=2):(Y=t,ze===0&&Te(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(G))?(pe=r.charAt(G),G++):(pe=t,ze===0&&Te(ye)),pe!==t){for(Le=[],ge.test(r.charAt(G))?(ke=r.charAt(G),G++):(ke=t,ze===0&&Te(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(G))?(ke=r.charAt(G),G++):(ke=t,ze===0&&Te(oe));Le!==t?(Et=D,Y=De(),D=Y):(G=D,D=t)}else G=D,D=t;else G=D,D=t;return D}function Fp(){var D,Y;return D=G,r.substr(G,4)===Ye?(Y=Ye,G+=4):(Y=t,ze===0&&Te(ie)),Y!==t&&(Et=D,Y=j()),D=Y,D}function KE(){var D,Y;return D=G,r.substr(G,4)===fe?(Y=fe,G+=4):(Y=t,ze===0&&Te(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=G,r.substr(G,5)===Ze?(Y=Ze,G+=5):(Y=t,ze===0&&Te(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function jl(){var D,Y,pe,Le;return ze++,D=G,r.charCodeAt(G)===34?(Y=ti,G++):(Y=t,ze===0&&Te(ui)),Y!==t?(r.charCodeAt(G)===34?(pe=ti,G++):(pe=t,ze===0&&Te(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(G=D,D=t)):(G=D,D=t),D===t&&(D=G,r.charCodeAt(G)===34?(Y=ti,G++):(Y=t,ze===0&&Te(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(G)===34?(Le=ti,G++):(Le=t,ze===0&&Te(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Te(Lr)),D}function UE(){var D,Y,pe;if(D=G,Y=[],pe=Tp(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Tp();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Tp(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(G))?(D=r.charAt(G),G++):(D=t,ze===0&&Te(fr)),D===t&&(D=G,r.substr(G,2)===Ei?(Y=Ei,G+=2):(Y=t,ze===0&&Te(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=G,r.substr(G,2)===CA?(Y=CA,G+=2):(Y=t,ze===0&&Te(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=G,r.substr(G,2)===mA?(Y=mA,G+=2):(Y=t,ze===0&&Te(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=G,r.substr(G,2)===EA?(Y=EA,G+=2):(Y=t,ze===0&&Te(IA)),Y!==t&&(Et=D,Y=yr()),D=Y,D===t&&(D=G,r.substr(G,2)===Tl?(Y=Tl,G+=2):(Y=t,ze===0&&Te(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=G,r.substr(G,2)===hg?(Y=hg,G+=2):(Y=t,ze===0&&Te(Bp)),Y!==t&&(Et=D,Y=Qp()),D=Y,D===t&&(D=G,r.substr(G,2)===Sr?(Y=Sr,G+=2):(Y=t,ze===0&&Te(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=G,r.substr(G,2)===Tn?(Y=Tn,G+=2):(Y=t,ze===0&&Te(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=G,r.substr(G,2)===Nl?(Y=Nl,G+=2):(Y=t,ze===0&&Te(Nn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(G))?(D=r.charAt(G),G++):(D=t,ze===0&&Te(ut)),D}function Or(){var D,Y;if(ze++,D=[],At.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(ln)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(ln));else D=t;return ze--,D===t&&(Y=t,ze===0&&Te(wo)),D}function HE(){var D,Y;if(ze++,D=[],Tt.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(pg)),Y!==t)for(;Y!==t;)D.push(Y),Tt.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Te(b)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=G,Y=Gs(),Y!==t){for(pe=[],Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=Gs(),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);Le!==t;)pe.push(Le),Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=Gs(),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(G=D,D=t)}else G=D,D=t;return D}function Gs(){var D;return r.substr(G,2)===Ll?(D=Ll,G+=2):(D=t,ze===0&&Te(bp)),D===t&&(r.charCodeAt(G)===10?(D=Sp,G++):(D=t,ze===0&&Te(vp)),D===t&&(r.charCodeAt(G)===13?(D=xp,G++):(D=t,ze===0&&Te(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&G===r.length)return fa;throw fa!==t&&G<r.length&&Te(Dp()),Kl(Ol,zi<r.length?r.charAt(zi):null,zi<r.length?cn(zi,zi+1):cn(zi,zi))}uH.exports={SyntaxError:lc,parse:Cde}});var mH=I((C_e,ev)=>{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n<r.length;n++){let s=r[n];e&&/[a-zA-Z]/.test(s)&&s.toUpperCase()===s?(r=r.slice(0,n)+"-"+r.slice(n),e=!1,i=t,t=!0,n++):t&&i&&/[a-zA-Z]/.test(s)&&s.toLowerCase()===s?(r=r.slice(0,n-1)+"-"+r.slice(n-1),i=t,t=!1,e=!0):(e=s.toLowerCase()===s&&s.toUpperCase()!==s,i=t,t=s.toUpperCase()===s&&s.toLowerCase()!==s)}return r},CH=(r,e)=>{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var pn={};ct(pn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>Gde,isAtMost:()=>jde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Zi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Tde,isOptional:()=>Nde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Tde,ad,Nde,Lde,Ode,Mde,DH,Kde,Ude,Hde,Gde,jde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o<a&&(s=r(t[o],Object.assign(Object.assign({},i),{p:DA(i,o),coercion:gc(t,o)}))&&s,!(!s&&(i==null?void 0:i.errors)==null));++o);return s}}),kde=(r,{delimiter:e}={})=>{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;a<l&&a<r.length&&(o=r[a](i[a],Object.assign(Object.assign({},n),{p:DA(n,a),coercion:gc(i,a)}))&&o,!(!o&&(n==null?void 0:n.errors)==null));++a);return o}})},Dde=(r,{keys:e=null}={})=>Bt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o<a&&(s||(i==null?void 0:i.errors)!=null);++o){let l=n[o],c=t[l];if(l==="__proto__"||l==="constructor"){s=ht(Object.assign(Object.assign({},i),{p:DA(i,l)}),"Unsafe property name");continue}if(e!==null&&!e(l,i)){s=!1;continue}if(!r(c,Object.assign(Object.assign({},i),{p:DA(i,l),coercion:gc(t,l)}))){s=!1;continue}}return s}}),Rde=(r,{extra:e=null}={})=>{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Tde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c<u;++c){let g=typeof(i==null?void 0:i.errors)<"u"?[]:void 0,h=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(r[c](t,Object.assign(Object.assign({},i),{errors:g,coercions:h,p:`${(n=i==null?void 0:i.p)!==null&&n!==void 0?n:"."}#${c+1}`}))){if(a.push([`#${c+1}`,h]),!e)break}else l==null||l.push(g[0])}if(a.length===1){let[,c]=a[0];return typeof c<"u"&&((s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...c)),!0}return a.length>1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Nde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;s<o;++s){let a=e[s],l=typeof r<"u"?r(a):a;if(i.has(l)){if(n.has(l))continue;ht(t,`Expected to contain unique elements; got a duplicate with ${Wr(e)}`),n.add(l)}else i.add(l)}return n.size===0}}),Ude=()=>Bt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),Gde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),jde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<e?!0:ht(i,`Expected to be in the [${r}; ${e}[ range (got ${t})`)}),Jde=({unsafe:r=!1}={})=>Bt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{t<r?n(a,l,...c):e.push(n.bind(null,a,l,...c))},o=(a,...l)=>new Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rG)=>{var eG=/^[0-9]+$/,tG=(r,e)=>{let t=eG.test(r),i=eG.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r<e?-1:1},kCe=(r,e)=>tG(e,r);rG.exports={compareIdentifiers:tG,rcompareIdentifiers:kCe}});var Li=I((b$e,oG)=>{var OI=hd(),{MAX_LENGTH:iG,MAX_SAFE_INTEGER:MI}=fd(),{re:nG,t:sG}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),jn=class{constructor(e,t){if(t=DCe(t),e instanceof jn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>iG)throw new TypeError(`version is longer than ${iG} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nG[sG.LOOSE]:nG[sG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<MI)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(OI("SemVer.compare",this.version,this.options,e),!(e instanceof jn)){if(typeof e=="string"&&e===this.version)return 0;e=new jn(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof jn||(e=new jn(e,this.options)),dd(this.major,e.major)||dd(this.minor,e.minor)||dd(this.patch,e.patch)}comparePre(e){if(e instanceof jn||(e=new jn(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=e.prerelease[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}compareBuild(e){e instanceof jn||(e=new jn(e,this.options));let t=0;do{let i=this.build[t],n=e.build[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t),this.inc("pre",t);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oG.exports=jn});var hc=I((S$e,cG)=>{var{MAX_LENGTH:RCe}=fd(),{re:aG,t:AG}=fc(),lG=Li(),FCe=pd(),TCe=(r,e)=>{if(e=FCe(e),r instanceof lG)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aG[AG.LOOSE]:aG[AG.FULL]).test(r))return null;try{return new lG(r,e)}catch{return null}};cG.exports=TCe});var gG=I((v$e,uG)=>{var NCe=hc(),LCe=(r,e)=>{let t=NCe(r,e);return t?t.version:null};uG.exports=LCe});var hG=I((x$e,fG)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fG.exports=MCe});var dG=I((P$e,pG)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pG.exports=UCe});var ls=I((k$e,mG)=>{var CG=Li(),HCe=(r,e,t)=>new CG(r,t).compare(new CG(e,t));mG.exports=HCe});var KI=I((D$e,EG)=>{var GCe=ls(),jCe=(r,e,t)=>GCe(r,e,t)===0;EG.exports=jCe});var wG=I((R$e,yG)=>{var IG=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=IG(r),i=IG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yG.exports=qCe});var QG=I((F$e,BG)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;BG.exports=WCe});var SG=I((T$e,bG)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bG.exports=VCe});var xG=I((N$e,vG)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vG.exports=ZCe});var kG=I((L$e,PG)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};PG.exports=$Ce});var RG=I((O$e,DG)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);DG.exports=tme});var TG=I((M$e,FG)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);FG.exports=ime});var UI=I((K$e,LG)=>{var NG=Li(),nme=(r,e,t)=>{let i=new NG(r,t),n=new NG(e,t);return i.compare(n)||i.compareBuild(n)};LG.exports=nme});var MG=I((U$e,OG)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));OG.exports=ome});var UG=I((H$e,KG)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));KG.exports=Ame});var Cd=I((G$e,HG)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;HG.exports=cme});var HI=I((j$e,GG)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;GG.exports=gme});var Cv=I((Y$e,jG)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;jG.exports=hme});var GI=I((q$e,YG)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;YG.exports=dme});var jI=I((J$e,qG)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qG.exports=mme});var mv=I((W$e,JG)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=GI(),Bme=HI(),Qme=jI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};JG.exports=bme});var zG=I((z$e,WG)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};WG.exports=xme});var XG=I((V$e,VG)=>{"use strict";VG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,ZG)=>{"use strict";ZG.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t<i;t++)e.push(arguments[t]);return e}Mt.prototype.removeNode=function(r){if(r.list!==this)throw new Error("removing node which does not belong to this list");var e=r.next,t=r.prev;return e&&(e.prev=t),t&&(t.next=e),r===this.head&&(this.head=e),r===this.tail&&(this.tail=t),r.list.length--,r.next=null,r.prev=null,r.list=null,e};Mt.prototype.unshiftNode=function(r){if(r!==this.head){r.list&&r.list.removeNode(r);var e=this.head;r.list=this,r.next=e,e&&(e.prev=r),this.head=r,this.tail||(this.tail=r),this.length++}};Mt.prototype.pushNode=function(r){if(r!==this.tail){r.list&&r.list.removeNode(r);var e=this.tail;r.list=this,r.prev=e,e&&(e.next=r),this.tail=r,this.head||(this.head=r),this.length++}};Mt.prototype.push=function(){for(var r=0,e=arguments.length;r<e;r++)kme(this,arguments[r]);return this.length};Mt.prototype.unshift=function(){for(var r=0,e=arguments.length;r<e;r++)Dme(this,arguments[r]);return this.length};Mt.prototype.pop=function(){if(!!this.tail){var r=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,r}};Mt.prototype.shift=function(){if(!!this.head){var r=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,r}};Mt.prototype.forEach=function(r,e){e=e||this;for(var t=this.head,i=0;t!==null;i++)r.call(e,t.value,i,this),t=t.next};Mt.prototype.forEachReverse=function(r,e){e=e||this;for(var t=this.tail,i=this.length-1;t!==null;i--)r.call(e,t.value,i,this),t=t.prev};Mt.prototype.get=function(r){for(var e=0,t=this.head;t!==null&&e<r;e++)t=t.next;if(e===r&&t!==null)return t.value};Mt.prototype.getReverse=function(r){for(var e=0,t=this.tail;t!==null&&e<r;e++)t=t.prev;if(e===r&&t!==null)return t.value};Mt.prototype.map=function(r,e){e=e||this;for(var t=new Mt,i=this.head;i!==null;)t.push(r.call(e,i.value,this)),i=i.next;return t};Mt.prototype.mapReverse=function(r,e){e=e||this;for(var t=new Mt,i=this.tail;i!==null;)t.push(r.call(e,i.value,this)),i=i.prev;return t};Mt.prototype.reduce=function(r,e){var t,i=this.head;if(arguments.length>1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(;n!==null&&i<e;i++,n=n.next)t.push(n.value);return t};Mt.prototype.sliceReverse=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(var s=[],i=0;n&&i<e;i++)s.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var i=0;i<t.length;i++)n=Pme(this,n,t[i]);return s};Mt.prototype.reverse=function(){for(var r=this.head,e=this.tail,t=r;t!==null;t=t.prev){var i=t.prev;t.prev=t.next,t.next=i}return this.head=e,this.tail=r,this};function Pme(r,e,t){var i=e===r.head?new pc(t,null,e,r):new pc(t,e,e.next,r);return i.next===null&&(r.tail=i),i.prev===null&&(r.head=i),r.length++,i}function kme(r,e){r.tail=new pc(e,r.tail,null,r),r.head||(r.head=r.tail),r.length++}function Dme(r,e){r.head=new pc(e,null,r.head,r),r.tail||(r.tail=r.head),r.length++}function pc(r,e,t,i){if(!(this instanceof pc))return new pc(r,e,t,i);this.list=i,this.value=r,e?(e.next=this,this.prev=e):this.prev=null,t?(t.prev=this,this.next=t):this.next=null}try{XG()(Mt)}catch{}});var rj=I((Z$e,tj)=>{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_G=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),ej=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_G]=e.noDisposeOnSet||!1,this[ej]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$G(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$G(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_G]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[ej]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$G=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tj.exports=yv});var cs=I((_$e,oj)=>{var mc=class{constructor(e,t){if(t=Tme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nj(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=ij.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Kr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Kr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nj(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return ij.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sj(i,t)&&e.set.some(n=>sj(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Nme(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(Xme(this.set[t],e,this.options))return!0;return!1}};oj.exports=mc;var Fme=rj(),ij=new Fme({max:1e3}),Tme=pd(),Bv=Id(),Kr=hd(),Nme=Li(),{re:Oi,t:bi,comparatorTrimReplace:Lme,tildeTrimReplace:Ome,caretTrimReplace:Mme}=fc(),nj=r=>r.value==="<0.0.0-0",Kme=r=>r.value==="",sj=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Kr("comp",r,e),r=jme(r,e),Kr("caret",r),r=Hme(r,e),Kr("tildes",r),r=qme(r,e),Kr("xrange",r),r=Wme(r,e),Kr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>Gme(t,e)).join(" "),Gme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Kr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Kr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Kr("tilde return",l),l})},jme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Kr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Kr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Kr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Kr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Kr("caret return",c),c})},qme=(r,e)=>(Kr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Kr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Kr("xRange return",i),i})},Wme=(r,e)=>(Kr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Kr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i<r.length;i++)if(!r[i].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let i=0;i<r.length;i++)if(Kr(r[i].semver),r[i].semver!==Bv.ANY&&r[i].semver.prerelease.length>0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uj)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aj[Aj.COMPARATORLOOSE]:aj[Aj.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lj(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lj(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cj(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cj(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uj.exports=Vg;var Zme=pd(),{re:aj,t:Aj}=fc(),Qv=mv(),bv=hd(),lj=Li(),cj=cs()});var wd=I((eet,gj)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gj.exports=$me});var hj=I((tet,fj)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fj.exports=tEe});var dj=I((ret,pj)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pj.exports=nEe});var mj=I((iet,Cj)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};Cj.exports=aEe});var yj=I((net,Ij)=>{var Sv=Li(),AEe=cs(),Ej=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i<r.set.length;++i){let n=r.set[i],s=null;n.forEach(o=>{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Ej(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||Ej(t,s))&&(t=s)}return t&&r.test(t)?t:null};Ij.exports=lEe});var Bj=I((set,wj)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wj.exports=uEe});var zI=I((oet,vj)=>{var gEe=Li(),Sj=Id(),{ANY:fEe}=Sj,hEe=cs(),pEe=wd(),Qj=Cd(),bj=HI(),dEe=jI(),CEe=GI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=Qj,s=dEe,o=bj,a=">",l=">=";break;case"<":n=bj,s=CEe,o=Qj,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],g=null,h=null;if(u.forEach(p=>{p.semver===fEe&&(p=new Sj(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vj.exports=mEe});var Pj=I((aet,xj)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xj.exports=IEe});var Dj=I((Aet,kj)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kj.exports=wEe});var Tj=I((cet,Fj)=>{var Rj=cs(),BEe=(r,e,t)=>(r=new Rj(r,t),e=new Rj(e,t),r.intersects(e));Fj.exports=BEe});var Lj=I((uet,Nj)=>{var QEe=wd(),bEe=ls();Nj.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e}});var Hj=I((get,Uj)=>{var Oj=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new Oj(r,t),e=new Oj(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=Mj(n,p,t):p.operator==="<"||p.operator==="<="?s=Kj(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=Mj(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=Kj(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},Mj=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},Kj=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};Uj.exports=SEe});var zr=I((fet,Gj)=>{var Pv=fc();Gj.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gG(),clean:hG(),inc:dG(),diff:wG(),major:QG(),minor:SG(),patch:xG(),prerelease:kG(),compare:ls(),rcompare:RG(),compareLoose:TG(),compareBuild:UI(),sort:MG(),rsort:UG(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:GI(),lte:jI(),cmp:mv(),coerce:zG(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hj(),maxSatisfying:dj(),minSatisfying:mj(),minVersion:yj(),validRange:Bj(),outside:zI(),gtr:Pj(),ltr:Dj(),intersects:Tj(),simplifyRange:Lj(),subset:Hj()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i<n;i++)(s||!(i in e))&&(s||(s=Array.prototype.slice.call(e,0,i)),s[i]=e[i]);return r.concat(s||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0});exports.toFastProperties=exports.timer=exports.peek=exports.isES2015MapSupported=exports.PRINT_WARNING=exports.PRINT_ERROR=exports.packArray=exports.IDENTITY=exports.NOOP=exports.merge=exports.groupBy=exports.defaults=exports.assignNoOverwrite=exports.assign=exports.zipObject=exports.sortBy=exports.indexOf=exports.some=exports.difference=exports.every=exports.isObject=exports.isRegExp=exports.isArray=exports.partial=exports.uniq=exports.compact=exports.reduce=exports.findAll=exports.find=exports.cloneObj=exports.cloneArr=exports.contains=exports.has=exports.pick=exports.reject=exports.filter=exports.dropRight=exports.drop=exports.isFunction=exports.isUndefined=exports.isString=exports.forEach=exports.last=exports.first=exports.flatten=exports.map=exports.mapValues=exports.values=exports.keys=exports.isEmpty=void 0;exports.upperFirst=void 0;function isEmpty(r){return r&&r.length===0}exports.isEmpty=isEmpty;function keys(r){return r==null?[]:Object.keys(r)}exports.keys=keys;function values(r){for(var e=[],t=Object.keys(r),i=0;i<t.length;i++)e.push(r[t[i]]);return e}exports.values=values;function mapValues(r,e){for(var t=[],i=keys(r),n=0;n<i.length;n++){var s=i[n];t.push(e.call(null,r[s],s))}return t}exports.mapValues=mapValues;function map(r,e){for(var t=[],i=0;i<r.length;i++)t.push(e.call(null,r[i],i));return t}exports.map=map;function flatten(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];Array.isArray(i)?e=e.concat(flatten(i)):e.push(i)}return e}exports.flatten=flatten;function first(r){return isEmpty(r)?void 0:r[0]}exports.first=first;function last(r){var e=r&&r.length;return e?r[e-1]:void 0}exports.last=last;function forEach(r,e){if(Array.isArray(r))for(var t=0;t<r.length;t++)e.call(null,r[t],t);else if(isObject(r))for(var i=keys(r),t=0;t<i.length;t++){var n=i[t],s=r[n];e.call(null,s,n)}else throw Error("non exhaustive match")}exports.forEach=forEach;function isString(r){return typeof r=="string"}exports.isString=isString;function isUndefined(r){return r===void 0}exports.isUndefined=isUndefined;function isFunction(r){return r instanceof Function}exports.isFunction=isFunction;function drop(r,e){return e===void 0&&(e=1),r.slice(e,r.length)}exports.drop=drop;function dropRight(r,e){return e===void 0&&(e=1),r.slice(0,r.length-e)}exports.dropRight=dropRight;function filter(r,e){var t=[];if(Array.isArray(r))for(var i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.filter=filter;function reject(r,e){return filter(r,function(t){return!e(t)})}exports.reject=reject;function pick(r,e){for(var t=Object.keys(r),i={},n=0;n<t.length;n++){var s=t[n],o=r[s];e(o)&&(i[s]=o)}return i}exports.pick=pick;function has(r,e){return isObject(r)?r.hasOwnProperty(e):!1}exports.has=has;function contains(r,e){return find(r,function(t){return t===e})!==void 0}exports.contains=contains;function cloneArr(r){for(var e=[],t=0;t<r.length;t++)e.push(r[t]);return e}exports.cloneArr=cloneArr;function cloneObj(r){var e={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e}exports.cloneObj=cloneObj;function find(r,e){for(var t=0;t<r.length;t++){var i=r[t];if(e.call(null,i))return i}}exports.find=find;function findAll(r,e){for(var t=[],i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.findAll=findAll;function reduce(r,e,t){for(var i=Array.isArray(r),n=i?r:values(r),s=i?[]:keys(r),o=t,a=0;a<n.length;a++)o=e.call(null,o,n[a],i?a:s[a]);return o}exports.reduce=reduce;function compact(r){return reject(r,function(e){return e==null})}exports.compact=compact;function uniq(r,e){e===void 0&&(e=function(i){return i});var t=[];return reduce(r,function(i,n){var s=e(n);return contains(t,s)?i:(t.push(s),i.concat(n))},[])}exports.uniq=uniq;function partial(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var i=[null],n=i.concat(e);return Function.bind.apply(r,n)}exports.partial=partial;function isArray(r){return Array.isArray(r)}exports.isArray=isArray;function isRegExp(r){return r instanceof RegExp}exports.isRegExp=isRegExp;function isObject(r){return r instanceof Object}exports.isObject=isObject;function every(r,e){for(var t=0;t<r.length;t++)if(!e(r[t],t))return!1;return!0}exports.every=every;function difference(r,e){return reject(r,function(t){return contains(e,t)})}exports.difference=difference;function some(r,e){for(var t=0;t<r.length;t++)if(e(r[t]))return!0;return!1}exports.some=some;function indexOf(r,e){for(var t=0;t<r.length;t++)if(r[t]===e)return t;return-1}exports.indexOf=indexOf;function sortBy(r,e){var t=cloneArr(r);return t.sort(function(i,n){return e(i)-e(n)}),t}exports.sortBy=sortBy;function zipObject(r,e){if(r.length!==e.length)throw Error("can't zipObject with different number of keys and values!");for(var t={},i=0;i<r.length;i++)t[r[i]]=e[i];return t}exports.zipObject=zipObject;function assign(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];r[a]=n[a]}return r}exports.assign=assign;function assignNoOverwrite(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];has(r,a)||(r[a]=n[a])}return r}exports.assignNoOverwrite=assignNoOverwrite;function defaults(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return assignNoOverwrite.apply(void 0,__spreadArray([{}],r,!1))}exports.defaults=defaults;function groupBy(r,e){var t={};return forEach(r,function(i){var n=e(i),s=t[n];s?s.push(i):t[n]=[i]}),t}exports.groupBy=groupBy;function merge(r,e){for(var t=cloneObj(r),i=keys(e),n=0;n<i.length;n++){var s=i[n],o=e[s];t[s]=o}return t}exports.merge=merge;function NOOP(){}exports.NOOP=NOOP;function IDENTITY(r){return r}exports.IDENTITY=IDENTITY;function packArray(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];e.push(i!==void 0?i:void 0)}return e}exports.packArray=packArray;function PRINT_ERROR(r){console&&console.error&&console.error("Error: "+r)}exports.PRINT_ERROR=PRINT_ERROR;function PRINT_WARNING(r){console&&console.warn&&console.warn("Warning: "+r)}exports.PRINT_WARNING=PRINT_WARNING;function isES2015MapSupported(){return typeof Map=="function"}exports.isES2015MapSupported=isES2015MapSupported;function peek(r){return r[r.length-1]}exports.peek=peek;function timer(r){var e=new Date().getTime(),t=r(),i=new Date().getTime(),n=i-e;return{time:n,value:t}}exports.timer=timer;function toFastProperties(toBecomeFast){function FakeConstructor(){}FakeConstructor.prototype=toBecomeFast;var fakeInstance=new FakeConstructor;function fakeAccess(){return typeof fakeInstance.bar}return fakeAccess(),fakeAccess(),toBecomeFast;eval(toBecomeFast)}exports.toFastProperties=toFastProperties;function upperFirst(r){if(!r)return r;var e=getCharacterFromCodePointAt(r,0);return e.toUpperCase()+r.substring(e.length)}exports.upperFirst=upperFirst;var surrogatePairPattern=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;function getCharacterFromCodePointAt(r,e){var t=r.substring(e,e+1);return surrogatePairPattern.test(t)?t:r[e]}});var _I=I((jj,ZI)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:jj,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` `),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(` `);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),P=S.type==="Character";if(P){if(S.value<y.value)throw Error("Range out of order in character class");d.push({from:y.value,to:S.value})}else s(y.value,d),d.push(n("-")),s(S.value,d)}else s(y.value,d)}return this.consumeChar("]"),{type:"Set",complement:m,value:d}},r.prototype.classAtom=function(){switch(this.peekChar()){case"]":case` @@ -50,28 +50,28 @@ `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:n(d)}}},r.prototype.isRegExpFlag=function(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}},r.prototype.isRangeDash=function(){return this.peekChar()==="-"&&this.isClassAtom(1)},r.prototype.isDigit=function(){return t.test(this.peekChar(0))},r.prototype.isClassAtom=function(d){switch(d===void 0&&(d=0),this.peekChar(d)){case"]":case` `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.isTerm=function(){return this.isAtom()||this.isAssertion()},r.prototype.isAtom=function(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}},r.prototype.isAssertion=function(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}},r.prototype.isQuantifier=function(){var d=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(d)}},r.prototype.isPatternCharacter=function(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case` `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.parseHexDigits=function(d){for(var m="",y=0;y<d;y++){var B=this.popChar();if(e.test(B)===!1)throw Error("Expecting a HexDecimal digits");m+=B}var S=parseInt(m,16);return{type:"Character",value:S}},r.prototype.peekChar=function(d){return d===void 0&&(d=0),this.input[this.idx+d]},r.prototype.popChar=function(){var d=this.peekChar(0);return this.consumeChar(),d},r.prototype.consumeChar=function(d){if(d!==void 0&&this.input[this.idx]!==d)throw Error("Expected: '"+d+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var h=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(mn=>{"use strict";var REe=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.canMatchCharCode=mn.firstCharOptimizedIndices=mn.getOptimizedStartCodesIndices=mn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),Pa=Rv(),WG="Complement Sets are not supported for first char optimization";mn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+mn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zj=I(mn=>{"use strict";var REe=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.canMatchCharCode=mn.firstCharOptimizedIndices=mn.getOptimizedStartCodesIndices=mn.failedOptimizationPrefixMsg=void 0;var qj=_I(),us=Kt(),Jj=ey(),Pa=Rv(),Wj="Complement Sets are not supported for first char optimization";mn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,Jj.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===Wj)e&&(0,us.PRINT_WARNING)(""+mn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > `)+` Complement Sets cannot be automatically optimized. This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(mn.failedOptimizationPrefixMsg+` `+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+qG.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}mn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)ry(r.value[i],e,t);break;case"Alternative":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}var o=s;switch(o.type){case"Character":ty(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(WG);(0,us.forEach)(o.value,function(c){if(typeof c=="number")ty(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)ty(g,e,t);else{for(var g=u.from;g<=u.to&&g<Pa.minOptimizationVal;g++)ty(g,e,t);if(u.to>=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}mn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}mn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=Qd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(P):Nv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. +`)+(" Using the regexp-to-ast library version: "+qj.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}mn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)ry(r.value[i],e,t);break;case"Alternative":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}var o=s;switch(o.type){case"Character":ty(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(Wj);(0,us.forEach)(o.value,function(c){if(typeof c=="number")ty(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)ty(g,e,t);else{for(var g=u.from;g<=u.to&&g<Pa.minOptimizationVal;g++)ty(g,e,t);if(u.to>=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}mn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&TEe(r,e)}function TEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function Yj(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var NEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?Yj(t,this.targetCharCodes)===void 0&&(this.found=!0):Yj(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qj.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,Jj.getRegExpAst)(e),i=new NEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}mn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var Vj=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var Xj=_I(),tr=Qd(),Se=Kt(),Zg=zj(),Zj=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Nv(P):Tv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Nv(q):Tv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. `)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. This will disable the lexer's first char optimizations. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.name+`> is using a custom token pattern without providing <start_chars_hint> parameter. `)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_j(r);t=t.concat(i.errors);var n=$j(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _j(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_j;function $j(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$j;var GEe=/[^\\][\$]/;function eY(r){var e=function(n){Vj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(Xj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,Zj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var GEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var jEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){Vj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(Xj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,Zj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findStartOfInputAnchor=rY;function iY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iY;function nY(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nY;function sY(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sY;function oY(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oY;function aY(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n<a&&YEe(o,i.PATTERN)){var c="Token: ->"+l.name+`<- can never be matched. `+("Because it appears AFTER the Token Type ->"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Tv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Tv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Tv;function Nv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Nv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,We.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.MODES+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,We.MODES)&&(0,Se.has)(r,We.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+We.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,We.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> @@ -93,8 +93,8 @@ a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);v Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;q<H;){c=null;var Ye=F.charCodeAt(q),ie=Re(Ye),G=ie.length;for(n=0;n<G;n++){oe=ie[n];var fe=oe.pattern;u=null;var re=oe.short;if(re!==!1?Ye===re&&(c=fe):oe.isCustom===!0?(P=fe.exec(F,q,W,ue),P!==null?(c=P[0],P.payload!==void 0&&(u=P.payload)):c=null):(this.updateLastIndex(fe,q),c=this.match(fe,e,q)),c!==null){if(l=oe.longerAlt,l!==void 0){var de=l.length;for(o=0;o<de;o++){var Ze=ce[l[o]],vt=Ze.pattern;if(g=null,Ze.isCustom===!0?(P=vt.exec(F,q,W,ue),P!==null?(a=P[0],P.payload!==void 0&&(g=P.payload)):a=null):(this.updateLastIndex(vt,q),a=this.match(vt,e,q)),a&&a.length>c.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Lr=void 0,ti=void 0;O.lastIndex=0;do Lr=O.test(c),Lr===!0&&(ti=O.lastIndex-1,mt++);while(Lr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q<H;)for(B=F.charCodeAt(q),e=this.chopInput(e,1),q++,s=0;s<N;s++){var Ms=ce[s],fe=Ms.pattern,re=Ms.short;if(re!==!1?F.charCodeAt(q)===re&&(ri=!0):Ms.isCustom===!0?ri=fe.exec(F,q,W,ue)!==null:(this.updateLastIndex(fe,q),ri=fe.exec(e)!==null),ri===!0)break}y=q-ui,S=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(F,ui,y,gr,gi),Z.push({offset:ui,line:gr,column:gi,length:y,message:S})}}return this.hasCustom||(W.length=_),{tokens:W,groups:ue,errors:Z}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",QY="longer_alt",bY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,QY)&&(t.LONGER_ALT=r[QY]),(0,_s.has)(r,bY)&&(t.LINE_BREAKS=r[bY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var En=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),In=En(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof In.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof In.Terminal)i.walkTerminal(n,o,t);else if(n instanceof In.Alternative)i.walkFlat(n,o,t);else if(n instanceof In.Option)i.walkOption(n,o,t);else if(n instanceof In.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof In.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof In.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof In.Repetition)i.walkMany(n,o,t);else if(n instanceof In.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new In.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new In.Option({definition:[new In.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=En(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),Br=En(),CIe=$g();function mIe(r){return r instanceof Br.Alternative||r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionMandatory||r instanceof Br.RepetitionMandatoryWithSeparator||r instanceof Br.RepetitionWithSeparator||r instanceof Br.Terminal||r instanceof Br.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionWithSeparator;return t?!0:r instanceof Br.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof Br.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof Br.AbstractProduction?(r instanceof Br.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof Br.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof Br.NonTerminal)return"SUBRULE";if(r instanceof Br.Option)return"OPTION";if(r instanceof Br.Alternation)return"OR";if(r instanceof Br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Br.Repetition)return"MANY";if(r instanceof Br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=En(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),YY=Kt(),qY=Jv(),bIe=En(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),xIe=Kt(),$s=Kt(),Wv=En(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,T=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],T=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],T=ce.length,T=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;q<H;){c=null;var Ye=F.charCodeAt(q),ie=Re(Ye),j=ie.length;for(n=0;n<j;n++){oe=ie[n];var fe=oe.pattern;u=null;var re=oe.short;if(re!==!1?Ye===re&&(c=fe):oe.isCustom===!0?(P=fe.exec(F,q,W,ue),P!==null?(c=P[0],P.payload!==void 0&&(u=P.payload)):c=null):(this.updateLastIndex(fe,q),c=this.match(fe,e,q)),c!==null){if(l=oe.longerAlt,l!==void 0){var de=l.length;for(o=0;o<de;o++){var Ze=ce[l[o]],vt=Ze.pattern;if(g=null,Ze.isCustom===!0?(P=vt.exec(F,q,W,ue),P!==null?(a=P[0],P.payload!==void 0&&(g=P.payload)):a=null):(this.updateLastIndex(vt,q),a=this.match(vt,e,q)),a&&a.length>c.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Lr=void 0,ti=void 0;O.lastIndex=0;do Lr=O.test(c),Lr===!0&&(ti=O.lastIndex-1,mt++);while(Lr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q<H;)for(B=F.charCodeAt(q),e=this.chopInput(e,1),q++,s=0;s<T;s++){var Ms=ce[s],fe=Ms.pattern,re=Ms.short;if(re!==!1?F.charCodeAt(q)===re&&(ri=!0):Ms.isCustom===!0?ri=fe.exec(F,q,W,ue)!==null:(this.updateLastIndex(fe,q),ri=fe.exec(e)!==null),ri===!0)break}y=q-ui,S=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(F,ui,y,gr,gi),Z.push({offset:ui,line:gr,column:gi,length:y,message:S})}}return this.hasCustom||(W.length=_),{tokens:W,groups:ue,errors:Z}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var TA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",QY="longer_alt",bY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,QY)&&(t.LONGER_ALT=r[QY]),(0,_s.has)(r,bY)&&(t.LINE_BREAKS=r[bY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var En=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=TA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=TY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=NY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof TY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof NY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var Gv=Kt(),In=En(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof In.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof In.Terminal)i.walkTerminal(n,o,t);else if(n instanceof In.Alternative)i.walkFlat(n,o,t);else if(n instanceof In.Option)i.walkOption(n,o,t);else if(n instanceof In.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof In.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof In.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof In.Repetition)i.walkMany(n,o,t);else if(n instanceof In.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new In.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new In.Option({definition:[new In.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=En(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),Br=En(),CIe=$g();function mIe(r){return r instanceof Br.Alternative||r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionMandatory||r instanceof Br.RepetitionMandatoryWithSeparator||r instanceof Br.RepetitionWithSeparator||r instanceof Br.Terminal||r instanceof Br.Rule}Mi.isSequenceProd=mIe;function jv(r,e){e===void 0&&(e=[]);var t=r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionWithSeparator;return t?!0:r instanceof Br.Alternation?(0,vd.some)(r.definition,function(i){return jv(i,e)}):r instanceof Br.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof Br.AbstractProduction?(r instanceof Br.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return jv(i,e)})):!1}Mi.isOptionalProd=jv;function EIe(r){return r instanceof Br.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof Br.NonTerminal)return"SUBRULE";if(r instanceof Br.Option)return"OPTION";if(r instanceof Br.Alternation)return"OR";if(r instanceof Br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Br.Repetition)return"MANY";if(r instanceof Br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=En(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return jY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return GY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function GY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=GY;function jY(r){return[r.terminalType]}Fo.firstForTerminal=jY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),YY=Kt(),qY=Jv(),bIe=En(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=TA(),xIe=Kt(),$s=Kt(),Wv=En(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` but found: '`+a+"'";if(n)return o+n+l;var c=(0,$s.reduce)(e,function(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences: `+g.join(` `);return o+h+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,$s.first)(t).image,a=` @@ -124,27 +124,27 @@ This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){ `)+(`without consuming any Tokens. The grammar path that causes this is: `+i+` `)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var PIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Fr=>{"use strict";var Ic=Fr&&Fr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Fr,"__esModule",{value:!0});Fr.nextPossibleTokensAfter=Fr.possiblePathsFrom=Fr.NextTerminalAfterAtLeastOneSepWalker=Fr.NextTerminalAfterAtLeastOneWalker=Fr.NextTerminalAfterManySepWalker=Fr.NextTerminalAfterManyWalker=Fr.AbstractNextTerminalAfterProductionWalker=Fr.NextAfterTokenWalker=Fr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=En(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Fr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Fr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Fr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length<e&&n<r.length;){var a=r[n];if(a instanceof kt.Alternative)return o(a.definition);if(a instanceof kt.NonTerminal)return o(a.definition);if(a instanceof kt.Option)i=o(a.definition);else if(a instanceof kt.RepetitionMandatory){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);return o(l)}else if(a instanceof kt.RepetitionMandatoryWithSeparator){var l=[new kt.Alternative({definition:a.definition}),new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})];return o(l)}else if(a instanceof kt.RepetitionWithSeparator){var l=a.definition.concat([new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})]);i=o(l)}else if(a instanceof kt.Repetition){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);i=o(l)}else{if(a instanceof kt.Alternation)return(0,Lt.forEach)(a.definition,function(c){(0,Lt.isEmpty)(c.definition)===!1&&(i=o(c.definition))}),i;if(a instanceof kt.Terminal)t.push(a.terminalType);else throw Error("non exhaustive match")}n++}return i.push({partialPath:t,suffixDef:(0,Lt.drop)(r,n)}),i}Fr.possiblePathsFrom=tq;function KIe(r,e,t,i){var n="EXIT_NONE_TERMINAL",s=[n],o="EXIT_ALTERNATIVE",a=!1,l=e.length,c=l-i-1,u=[],g=[];for(g.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!(0,Lt.isEmpty)(g);){var h=g.pop();if(h===o){a&&(0,Lt.last)(g).idx<=c&&g.pop();continue}var p=h.def,d=h.idx,m=h.ruleStack,y=h.occurrenceStack;if(!(0,Lt.isEmpty)(p)){var B=p[0];if(B===n){var S={idx:d,def:(0,Lt.drop)(p),ruleStack:(0,Lt.dropRight)(m),occurrenceStack:(0,Lt.dropRight)(y)};g.push(S)}else if(B instanceof kt.Terminal)if(d<l-1){var P=d+1,F=e[P];if(t(F,B.terminalType)){var S={idx:P,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(S)}}else if(d===l-1)u.push({nextTokenType:B.terminalType,nextTokenOccurrence:B.idx,ruleStack:m,occurrenceStack:y}),a=!0;else throw Error("non exhaustive match");else if(B instanceof kt.NonTerminal){var H=(0,Lt.cloneArr)(m);H.push(B.nonTerminalName);var q=(0,Lt.cloneArr)(y);q.push(B.idx);var S={idx:d,def:B.definition.concat(s,(0,Lt.drop)(p)),ruleStack:H,occurrenceStack:q};g.push(S)}else if(B instanceof kt.Option){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var X={idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.RepetitionMandatory){var W=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionMandatoryWithSeparator){var A=new kt.Terminal({terminalType:B.separator}),W=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionWithSeparator){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var A=new kt.Terminal({terminalType:B.separator}),ne=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Repetition){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var ne=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Alternation)for(var ue=B.definition.length-1;ue>=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Fr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=En(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u<n;u++){var g=r[u],h=g.length,p=c[u];if(p!==void 0&&p.call(this)===!1)continue;e:for(var d=0;d<h;d++){for(var m=g[d],y=m.length,B=0;B<y;B++){var S=this.LA(B+1);if(t(S,m[B])===!1)continue e}return u}}};if(s&&!i){var o=(0,ir.map)(r,function(l){return(0,ir.flatten)(l)}),a=(0,ir.reduce)(o,function(l,c,u){return(0,ir.forEach)(c,function(g){(0,ir.has)(l,g.tokenTypeIdx)||(l[g.tokenTypeIdx]=u),(0,ir.forEach)(g.categoryMatches,function(h){(0,ir.has)(l,h)||(l[h]=u)})}),l},[]);return function(){var l=this.LA(1);return a[l.tokenTypeIdx]}}else return function(){for(var l=0;l<n;l++){var c=r[l],u=c.length;e:for(var g=0;g<u;g++){for(var h=c[g],p=h.length,d=0;d<p;d++){var m=this.LA(d+1);if(t(m,h[d])===!1)continue e}return l}}}}Wt.buildAlternativesLookAheadFunc=JIe;function WIe(r,e,t){var i=(0,ir.every)(r,function(c){return c.length===1}),n=r.length;if(i&&!t){var s=(0,ir.flatten)(r);if(s.length===1&&(0,ir.isEmpty)(s[0].categoryMatches)){var o=s[0],a=o.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{var l=(0,ir.reduce)(s,function(c,u,g){return c[u.tokenTypeIdx]=!0,(0,ir.forEach)(u.categoryMatches,function(h){c[h]=!0}),c},[]);return function(){var c=this.LA(1);return l[c.tokenTypeIdx]===!0}}}else return function(){e:for(var c=0;c<n;c++){for(var u=r[c],g=u.length,h=0;h<g;h++){var p=this.LA(h+1);if(e(p,u[h])===!1)continue e}return!0}return!1}}Wt.buildSingleAlternativeLookaheadFunction=WIe;var zIe=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.topProd=t,s.targetOccurrence=i,s.targetProdType=n,s}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.restDef},e.prototype.checkIsTarget=function(t,i,n,s){return t.idx===this.targetOccurrence&&this.targetProdType===i?(this.restDef=n.concat(s),!0):!1},e.prototype.walkOption=function(t,i,n){this.checkIsTarget(t,si.OPTION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOne=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOneSep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkMany=function(t,i,n){this.checkIsTarget(t,si.REPETITION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkManySep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e}(HIe.RestWalker),sq=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.targetOccurrence=t,s.targetProdType=i,s.targetRef=n,s.result=[],s}return e.prototype.checkIsTarget=function(t,i){t.idx===this.targetOccurrence&&this.targetProdType===i&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)},e.prototype.visitOption=function(t){this.checkIsTarget(t,si.OPTION)},e.prototype.visitRepetition=function(t){this.checkIsTarget(t,si.REPETITION)},e.prototype.visitRepetitionMandatory=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR)},e.prototype.visitRepetitionWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR)},e.prototype.visitAlternation=function(t){this.checkIsTarget(t,si.ALTERNATION)},e}(jIe.GAstVisitor);function iq(r){for(var e=new Array(r),t=0;t<r;t++)e[t]=[];return e}function zv(r){for(var e=[""],t=0;t<r.length;t++){for(var i=r[t],n=[],s=0;s<e.length;s++){var o=e[s];n.push(o+"_"+i.tokenTypeIdx);for(var a=0;a<i.categoryMatches.length;a++){var l="_"+i.categoryMatches[a];n.push(o+l)}}e=n}return e}function VIe(r,e,t){for(var i=0;i<r.length;i++)if(i!==t)for(var n=r[i],s=0;s<e.length;s++){var o=e[s];if(n[o]===!0)return!1}return!0}function Vv(r,e){for(var t=(0,ir.map)(r,function(u){return(0,rq.possiblePathsFrom)([u],1)}),i=iq(t.length),n=(0,ir.map)(t,function(u){var g={};return(0,ir.forEach)(u,function(h){var p=zv(h.partialPath);(0,ir.forEach)(p,function(d){g[d]=!0})}),g}),s=t,o=1;o<=e;o++){var a=s;s=iq(a.length);for(var l=function(u){for(var g=a[u],h=0;h<g.length;h++){var p=g[h].partialPath,d=g[h].suffixDef,m=zv(p),y=VIe(n,m,u);if(y||(0,ir.isEmpty)(d)||p.length===e){var B=i[u];if(Aq(B,p)===!1){B.push(p);for(var S=0;S<m.length;S++){var P=m[S];n[u][P]=!0}}}else{var F=(0,rq.possiblePathsFrom)(d,o+1,p);s[u]=s[u].concat(F),(0,ir.forEach)(F,function(H){var q=zv(H.partialPath);(0,ir.forEach)(q,function(_){n[u][_]=!0})})}}},c=0;c<a.length;c++)l(c)}return i}Wt.lookAheadSequenceFromAlternatives=Vv;function oq(r,e,t,i){var n=new sq(r,si.ALTERNATION,i);return e.accept(n),Vv(n.result,t)}Wt.getLookaheadPathsForOr=oq;function aq(r,e,t,i){var n=new sq(r,t);e.accept(n);var s=n.result,o=new zIe(e,r,t),a=o.startWalking(),l=new LA.Alternative({definition:s}),c=new LA.Alternative({definition:a});return Vv([l,c],i)}Wt.getLookaheadPathsForOptionalProd=aq;function Aq(r,e){e:for(var t=0;t<r.length;t++){var i=r[t];if(i.length===e.length){for(var n=0;n<i.length;n++){var s=e[n],o=i[n],a=s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0;if(a===!1)continue e}return!0}}return!1}Wt.containsPath=Aq;function XIe(r,e){return r.length<e.length&&(0,ir.every)(r,function(t,i){var n=e[i];return t===n||n.categoryMatchesMap[t.tokenTypeIdx]})}Wt.isStrictPrefixOfPath=XIe;function Xv(r){return(0,ir.every)(r,function(e){return(0,ir.every)(e,function(t){return(0,ir.every)(t,function(i){return(0,ir.isEmpty)(i.categoryMatches)})})})}Wt.areTokenCategoriesNotUsed=Xv});var rx=I(Jt=>{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Qr=Kt(),No=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=En(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(p){return fq(p,i)}),l=(0,Qr.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Qr.map)(r,function(p){return dq(p,i)}),h=(0,Qr.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&(0,tf.isStrictPrefixOfPath)(h.path,c)}),g=(0,Qr.map)(u,function(h){var p=[h.idx+1,l+1],d=e.idx===0?"":e.idx,m=i.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:p,prefixPath:h.path});return{message:m,type:No.ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:d,alternatives:p}});n=n.concat(g)}}),n}Jt.checkPrefixAlternativesAmbiguities=mq;function rye(r,e,t){var i=[],n=(0,Qr.map)(e,function(s){return s.name});return(0,Qr.forEach)(r,function(s){var o=s.name;if((0,Qr.contains)(n,o)){var a=t.buildNamespaceConflictError(s);i.push({message:a,type:No.ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),i}});var Iq=I(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(yn=>{"use strict";var Nd=yn&&yn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(yn,"__esModule",{value:!0});yn.EarlyExitException=yn.NotAllInputParsedException=yn.NoViableAltException=yn.MismatchedTokenException=yn.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}yn.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);yn.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);yn.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);yn.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);yn.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.OPTION_IDX=2<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.MANY_IDX=3<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.AT_LEAST_ONE_IDX=4<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.MANY_SEP_IDX=5<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.AT_LEAST_ONE_SEP_IDX=6<<Gt.BITS_FOR_OCCURRENCE_IDX;function Cye(r,e,t){return t|e|r}Gt.getKeyForAutomaticLookahead=Cye;var Met=32-Gt.BITS_FOR_ALT_IDX});var xq=I(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}To.setNodeLocationOnlyOffset=Eye;function Iye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}To.setNodeLocationFull=Iye;function yye(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}To.addTerminalToCst=yye;function wye(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}To.addNoneTerminalToCst=wye});var ox=I(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n<i;n++)for(var s=t[n],o=r[s],a=o.length,l=0;l<a;l++){var c=o[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}vi.defaultVisit=Rq;function Sye(r,e){var t=function(){};(0,Td.defineNameProp)(t,r+"BaseSemantics");var i={visit:function(n,s){if((0,hs.isArray)(n)&&(n=n[0]),!(0,hs.isUndefined)(n))return this[n.name](n.children,s)},validateVisitor:function(){var n=Fq(this,e);if(!(0,hs.isEmpty)(n)){var s=(0,hs.map)(n,function(o){return o.msg});throw Error("Errors Detected in CST Visitor <"+(0,Td.functionName)(this.constructor)+`>: +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(NA=>{"use strict";var PIe=NA&&NA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(NA,"__esModule",{value:!0});NA.GastRefResolverVisitor=NA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}NA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);NA.GastRefResolverVisitor=ZY});var Dd=I(Fr=>{"use strict";var Ic=Fr&&Fr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Fr,"__esModule",{value:!0});Fr.nextPossibleTokensAfter=Fr.possiblePathsFrom=Fr.NextTerminalAfterAtLeastOneSepWalker=Fr.NextTerminalAfterAtLeastOneWalker=Fr.NextTerminalAfterManySepWalker=Fr.NextTerminalAfterManyWalker=Fr.AbstractNextTerminalAfterProductionWalker=Fr.NextAfterTokenWalker=Fr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=En(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Fr.AbstractNextPossibleTokensWalker=eq;var TIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Fr.NextAfterTokenWalker=TIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Fr.AbstractNextTerminalAfterProductionWalker=kd;var NIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManyWalker=NIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length<e&&n<r.length;){var a=r[n];if(a instanceof kt.Alternative)return o(a.definition);if(a instanceof kt.NonTerminal)return o(a.definition);if(a instanceof kt.Option)i=o(a.definition);else if(a instanceof kt.RepetitionMandatory){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);return o(l)}else if(a instanceof kt.RepetitionMandatoryWithSeparator){var l=[new kt.Alternative({definition:a.definition}),new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})];return o(l)}else if(a instanceof kt.RepetitionWithSeparator){var l=a.definition.concat([new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})]);i=o(l)}else if(a instanceof kt.Repetition){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);i=o(l)}else{if(a instanceof kt.Alternation)return(0,Lt.forEach)(a.definition,function(c){(0,Lt.isEmpty)(c.definition)===!1&&(i=o(c.definition))}),i;if(a instanceof kt.Terminal)t.push(a.terminalType);else throw Error("non exhaustive match")}n++}return i.push({partialPath:t,suffixDef:(0,Lt.drop)(r,n)}),i}Fr.possiblePathsFrom=tq;function KIe(r,e,t,i){var n="EXIT_NONE_TERMINAL",s=[n],o="EXIT_ALTERNATIVE",a=!1,l=e.length,c=l-i-1,u=[],g=[];for(g.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!(0,Lt.isEmpty)(g);){var h=g.pop();if(h===o){a&&(0,Lt.last)(g).idx<=c&&g.pop();continue}var p=h.def,d=h.idx,m=h.ruleStack,y=h.occurrenceStack;if(!(0,Lt.isEmpty)(p)){var B=p[0];if(B===n){var S={idx:d,def:(0,Lt.drop)(p),ruleStack:(0,Lt.dropRight)(m),occurrenceStack:(0,Lt.dropRight)(y)};g.push(S)}else if(B instanceof kt.Terminal)if(d<l-1){var P=d+1,F=e[P];if(t(F,B.terminalType)){var S={idx:P,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(S)}}else if(d===l-1)u.push({nextTokenType:B.terminalType,nextTokenOccurrence:B.idx,ruleStack:m,occurrenceStack:y}),a=!0;else throw Error("non exhaustive match");else if(B instanceof kt.NonTerminal){var H=(0,Lt.cloneArr)(m);H.push(B.nonTerminalName);var q=(0,Lt.cloneArr)(y);q.push(B.idx);var S={idx:d,def:B.definition.concat(s,(0,Lt.drop)(p)),ruleStack:H,occurrenceStack:q};g.push(S)}else if(B instanceof kt.Option){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var X={idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.RepetitionMandatory){var W=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionMandatoryWithSeparator){var A=new kt.Terminal({terminalType:B.separator}),W=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionWithSeparator){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var A=new kt.Terminal({terminalType:B.separator}),ne=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Repetition){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var ne=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Alternation)for(var ue=B.definition.length-1;ue>=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Fr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=En(),GIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function jIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=jIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u<n;u++){var g=r[u],h=g.length,p=c[u];if(p!==void 0&&p.call(this)===!1)continue;e:for(var d=0;d<h;d++){for(var m=g[d],y=m.length,B=0;B<y;B++){var S=this.LA(B+1);if(t(S,m[B])===!1)continue e}return u}}};if(s&&!i){var o=(0,ir.map)(r,function(l){return(0,ir.flatten)(l)}),a=(0,ir.reduce)(o,function(l,c,u){return(0,ir.forEach)(c,function(g){(0,ir.has)(l,g.tokenTypeIdx)||(l[g.tokenTypeIdx]=u),(0,ir.forEach)(g.categoryMatches,function(h){(0,ir.has)(l,h)||(l[h]=u)})}),l},[]);return function(){var l=this.LA(1);return a[l.tokenTypeIdx]}}else return function(){for(var l=0;l<n;l++){var c=r[l],u=c.length;e:for(var g=0;g<u;g++){for(var h=c[g],p=h.length,d=0;d<p;d++){var m=this.LA(d+1);if(t(m,h[d])===!1)continue e}return l}}}}Wt.buildAlternativesLookAheadFunc=JIe;function WIe(r,e,t){var i=(0,ir.every)(r,function(c){return c.length===1}),n=r.length;if(i&&!t){var s=(0,ir.flatten)(r);if(s.length===1&&(0,ir.isEmpty)(s[0].categoryMatches)){var o=s[0],a=o.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{var l=(0,ir.reduce)(s,function(c,u,g){return c[u.tokenTypeIdx]=!0,(0,ir.forEach)(u.categoryMatches,function(h){c[h]=!0}),c},[]);return function(){var c=this.LA(1);return l[c.tokenTypeIdx]===!0}}}else return function(){e:for(var c=0;c<n;c++){for(var u=r[c],g=u.length,h=0;h<g;h++){var p=this.LA(h+1);if(e(p,u[h])===!1)continue e}return!0}return!1}}Wt.buildSingleAlternativeLookaheadFunction=WIe;var zIe=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.topProd=t,s.targetOccurrence=i,s.targetProdType=n,s}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.restDef},e.prototype.checkIsTarget=function(t,i,n,s){return t.idx===this.targetOccurrence&&this.targetProdType===i?(this.restDef=n.concat(s),!0):!1},e.prototype.walkOption=function(t,i,n){this.checkIsTarget(t,si.OPTION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOne=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOneSep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkMany=function(t,i,n){this.checkIsTarget(t,si.REPETITION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkManySep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e}(HIe.RestWalker),sq=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.targetOccurrence=t,s.targetProdType=i,s.targetRef=n,s.result=[],s}return e.prototype.checkIsTarget=function(t,i){t.idx===this.targetOccurrence&&this.targetProdType===i&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)},e.prototype.visitOption=function(t){this.checkIsTarget(t,si.OPTION)},e.prototype.visitRepetition=function(t){this.checkIsTarget(t,si.REPETITION)},e.prototype.visitRepetitionMandatory=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR)},e.prototype.visitRepetitionWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR)},e.prototype.visitAlternation=function(t){this.checkIsTarget(t,si.ALTERNATION)},e}(GIe.GAstVisitor);function iq(r){for(var e=new Array(r),t=0;t<r;t++)e[t]=[];return e}function zv(r){for(var e=[""],t=0;t<r.length;t++){for(var i=r[t],n=[],s=0;s<e.length;s++){var o=e[s];n.push(o+"_"+i.tokenTypeIdx);for(var a=0;a<i.categoryMatches.length;a++){var l="_"+i.categoryMatches[a];n.push(o+l)}}e=n}return e}function VIe(r,e,t){for(var i=0;i<r.length;i++)if(i!==t)for(var n=r[i],s=0;s<e.length;s++){var o=e[s];if(n[o]===!0)return!1}return!0}function Vv(r,e){for(var t=(0,ir.map)(r,function(u){return(0,rq.possiblePathsFrom)([u],1)}),i=iq(t.length),n=(0,ir.map)(t,function(u){var g={};return(0,ir.forEach)(u,function(h){var p=zv(h.partialPath);(0,ir.forEach)(p,function(d){g[d]=!0})}),g}),s=t,o=1;o<=e;o++){var a=s;s=iq(a.length);for(var l=function(u){for(var g=a[u],h=0;h<g.length;h++){var p=g[h].partialPath,d=g[h].suffixDef,m=zv(p),y=VIe(n,m,u);if(y||(0,ir.isEmpty)(d)||p.length===e){var B=i[u];if(Aq(B,p)===!1){B.push(p);for(var S=0;S<m.length;S++){var P=m[S];n[u][P]=!0}}}else{var F=(0,rq.possiblePathsFrom)(d,o+1,p);s[u]=s[u].concat(F),(0,ir.forEach)(F,function(H){var q=zv(H.partialPath);(0,ir.forEach)(q,function(_){n[u][_]=!0})})}}},c=0;c<a.length;c++)l(c)}return i}Wt.lookAheadSequenceFromAlternatives=Vv;function oq(r,e,t,i){var n=new sq(r,si.ALTERNATION,i);return e.accept(n),Vv(n.result,t)}Wt.getLookaheadPathsForOr=oq;function aq(r,e,t,i){var n=new sq(r,t);e.accept(n);var s=n.result,o=new zIe(e,r,t),a=o.startWalking(),l=new LA.Alternative({definition:s}),c=new LA.Alternative({definition:a});return Vv([l,c],i)}Wt.getLookaheadPathsForOptionalProd=aq;function Aq(r,e){e:for(var t=0;t<r.length;t++){var i=r[t];if(i.length===e.length){for(var n=0;n<i.length;n++){var s=e[n],o=i[n],a=s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0;if(a===!1)continue e}return!0}}return!1}Wt.containsPath=Aq;function XIe(r,e){return r.length<e.length&&(0,ir.every)(r,function(t,i){var n=e[i];return t===n||n.categoryMatchesMap[t.tokenTypeIdx]})}Wt.isStrictPrefixOfPath=XIe;function Xv(r){return(0,ir.every)(r,function(e){return(0,ir.every)(e,function(t){return(0,ir.every)(t,function(i){return(0,ir.isEmpty)(i.categoryMatches)})})})}Wt.areTokenCategoriesNotUsed=Xv});var rx=I(Jt=>{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Qr=Kt(),To=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=En(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(p){return fq(p,i)}),l=(0,Qr.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Qr.map)(r,function(p){return dq(p,i)}),h=(0,Qr.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:To.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:To.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:To.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:To.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:To.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:To.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:To.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:To.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&(0,tf.isStrictPrefixOfPath)(h.path,c)}),g=(0,Qr.map)(u,function(h){var p=[h.idx+1,l+1],d=e.idx===0?"":e.idx,m=i.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:p,prefixPath:h.path});return{message:m,type:To.ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:d,alternatives:p}});n=n.concat(g)}}),n}Jt.checkPrefixAlternativesAmbiguities=mq;function rye(r,e,t){var i=[],n=(0,Qr.map)(e,function(s){return s.name});return(0,Qr.forEach)(r,function(s){var o=s.name;if((0,Qr.contains)(n,o)){var a=t.buildNamespaceConflictError(s);i.push({message:a,type:To.ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),i}});var Iq=I(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(yn=>{"use strict";var Td=yn&&yn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(yn,"__esModule",{value:!0});yn.EarlyExitException=yn.NotAllInputParsedException=yn.NoViableAltException=yn.MismatchedTokenException=yn.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}yn.isRecognitionException=Aye;var hy=function(r){Td(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);yn.MismatchedTokenException=lye;var cye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);yn.NoViableAltException=cye;var uye=function(r){Td(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);yn.NotAllInputParsedException=uye;var gye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);yn.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=TA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.getKeyForAutomaticLookahead=jt.AT_LEAST_ONE_SEP_IDX=jt.MANY_SEP_IDX=jt.AT_LEAST_ONE_IDX=jt.MANY_IDX=jt.OPTION_IDX=jt.OR_IDX=jt.BITS_FOR_ALT_IDX=jt.BITS_FOR_RULE_IDX=jt.BITS_FOR_OCCURRENCE_IDX=jt.BITS_FOR_METHOD_TYPE=void 0;jt.BITS_FOR_METHOD_TYPE=4;jt.BITS_FOR_OCCURRENCE_IDX=8;jt.BITS_FOR_RULE_IDX=12;jt.BITS_FOR_ALT_IDX=8;jt.OR_IDX=1<<jt.BITS_FOR_OCCURRENCE_IDX;jt.OPTION_IDX=2<<jt.BITS_FOR_OCCURRENCE_IDX;jt.MANY_IDX=3<<jt.BITS_FOR_OCCURRENCE_IDX;jt.AT_LEAST_ONE_IDX=4<<jt.BITS_FOR_OCCURRENCE_IDX;jt.MANY_SEP_IDX=5<<jt.BITS_FOR_OCCURRENCE_IDX;jt.AT_LEAST_ONE_SEP_IDX=6<<jt.BITS_FOR_OCCURRENCE_IDX;function Cye(r,e,t){return t|e|r}jt.getKeyForAutomaticLookahead=Cye;var Met=32-jt.BITS_FOR_ALT_IDX});var xq=I(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.addNoneTerminalToCst=No.addTerminalToCst=No.setNodeLocationFull=No.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}No.setNodeLocationOnlyOffset=Eye;function Iye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}No.setNodeLocationFull=Iye;function yye(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}No.addTerminalToCst=yye;function wye(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}No.addNoneTerminalToCst=wye});var ox=I(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Nd=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n<i;n++)for(var s=t[n],o=r[s],a=o.length,l=0;l<a;l++){var c=o[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}vi.defaultVisit=Rq;function Sye(r,e){var t=function(){};(0,Nd.defineNameProp)(t,r+"BaseSemantics");var i={visit:function(n,s){if((0,hs.isArray)(n)&&(n=n[0]),!(0,hs.isUndefined)(n))return this[n.name](n.children,s)},validateVisitor:function(){var n=Fq(this,e);if(!(0,hs.isEmpty)(n)){var s=(0,hs.map)(n,function(o){return o.msg});throw Error("Errors Detected in CST Visitor <"+(0,Nd.functionName)(this.constructor)+`>: `+(""+s.join(` `).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var xye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Tq(r,e),i=Nq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Tq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Tq;var xye=["constructor","visit","validateVisitor"];function Nq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor There is no Grammar Rule corresponding to this method's name. -`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid <nodeLocationTracking> config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Nye=rx(),Tye=En(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=NA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Nq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid <nodeLocationTracking> config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var Gq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Tye=rx(),Nye=En(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Tye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Nye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),jq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=TA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. Note that the first argument for the parser constructor is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<qn.BITS_FOR_METHOD_TYPE+qn.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){t.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return t.apply(this,u)}catch(h){return this.invokeRuleCatch(h,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,yy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},r.prototype.optionInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OPTION_IDX,t);return this.optionInternalLogic(e,t,i)},r.prototype.optionInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},r.prototype.atLeastOneInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,t,i)},r.prototype.atLeastOneInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,Gq.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,qn.AT_LEAST_ONE_IDX,e,of.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,t,i)},r.prototype.atLeastOneSepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterAtLeastOneSepWalker],l,qn.AT_LEAST_ONE_SEP_IDX,e,of.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Gq.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_IDX,e);return this.manyInternalLogic(e,t,i)},r.prototype.manyInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],s,qn.MANY_IDX,e,of.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,t,i)},r.prototype.manySepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterManySepWalker],l,qn.MANY_SEP_IDX,e,of.NextTerminalAfterManySepWalker)}},r.prototype.repetitionSepSecondInternal=function(e,t,i,n,s){for(;i();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,i,n,s],i,qn.AT_LEAST_ONE_SEP_IDX,e,s)},r.prototype.doSingleRepetition=function(e){var t=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var wn=Kt(),Lo=En(),Gye=Qd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<qn.BITS_FOR_METHOD_TYPE+qn.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){t.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return t.apply(this,u)}catch(h){return this.invokeRuleCatch(h,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,yy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},r.prototype.optionInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OPTION_IDX,t);return this.optionInternalLogic(e,t,i)},r.prototype.optionInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},r.prototype.atLeastOneInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,t,i)},r.prototype.atLeastOneInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,jq.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,qn.AT_LEAST_ONE_IDX,e,of.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,t,i)},r.prototype.atLeastOneSepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterAtLeastOneSepWalker],l,qn.AT_LEAST_ONE_SEP_IDX,e,of.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,jq.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_IDX,e);return this.manyInternalLogic(e,t,i)},r.prototype.manyInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],s,qn.MANY_IDX,e,of.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,t,i)},r.prototype.manySepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterManySepWalker],l,qn.MANY_SEP_IDX,e,of.NextTerminalAfterManySepWalker)}},r.prototype.repetitionSepSecondInternal=function(e,t,i,n,s){for(;i();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,i,n,s],i,qn.AT_LEAST_ONE_SEP_IDX,e,s)},r.prototype.doSingleRepetition=function(e){var t=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),Gye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=Gye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var wn=Kt(),Lo=En(),jye=Qd(),tJ=_g(),rJ=TA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:jye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Yye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` This error was thrown during the "grammar recording phase" For more info see: https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,wn.has)(e,"ruleName")===!1){var n=new Error("<SUBRULE"+eJ(t)+"> argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error("<CONSUME"+eJ(t)+"> argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,wn.peek)(this.recordingProdStack),s=(0,wn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,wn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,wn.peek)(this.recordingProdStack),n=(0,wn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,wn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,wn.some)(s,function(l){return(0,wn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,wn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,wn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,wn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var en=Kt(),_ye=zY(),lJ=NA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated. + `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var en=Kt(),_ye=zY(),lJ=TA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=Gq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated. Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead. See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: @@ -178,42 +178,42 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis var diagramsDiv = document.getElementById("diagrams"); main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv); <\/script> -`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=En();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=En();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. +`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=TA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=En();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=En();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. It performs no action other than printing this message. Please avoid using it as it will be completely removed in the future`)}qe.clearCache=Ewe;var Iwe=hJ();Object.defineProperty(qe,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Iwe.createSyntaxDiagramsCode}});var ywe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:ux.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,bJ)=>{var Kd=BJ(),QJ={};for(let r of Object.keys(Kd))QJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};bJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function Qwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=QJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=Qwe(r,s);o<t&&(t=o,i=n)}return i};st.keyword.rgb=function(r){return Kd[r]};st.rgb.xyz=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ty=gx();function bwe(){let r={},e=Object.keys(Ty);for(let t=e.length,i=0;i<t;i++)r[e[i]]={distance:-1,parent:null};return r}function Swe(r){let e=bwe(),t=[r];for(e[r].distance=0;t.length;){let i=t.pop(),n=Object.keys(Ty[i]);for(let s=n.length,o=0;o<s;o++){let a=n[o],l=e[a];l.distance===-1&&(l.distance=e[i].distance+1,l.parent=i,t.unshift(a))}}return e}function vwe(r,e){return function(t){return e(r(t))}}function xwe(r,e){let t=[e[r].parent,r],i=Ty[e[r].parent][r],n=e[r].parent;for(;e[n].parent;)t.unshift(e[n].parent),i=vwe(Ty[e[n].parent][n],i),n=e[n].parent;return i.conversion=t,i}SJ.exports=function(r){let e=Swe(r),t={},i=Object.keys(e);for(let n=i.length,s=0;s<n;s++){let o=i[s];e[o].parent!==null&&(t[o]=xwe(o,e))}return t}});var PJ=I((att,xJ)=>{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return"conversion"in r&&(e.conversion=r.conversion),e}kwe.forEach(r=>{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var TJ=I((Att,NJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(NJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i<n)}});var UJ=I((ctt,KJ)=>{"use strict";var Nwe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Nwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Twe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Twe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Ta=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Ta({name:"LogicalOperator",pattern:ux.NA}),t=Ta({name:"Or",pattern:/\|/,categories:e}),i=Ta({name:"Xor",pattern:/\^/,categories:e}),n=Ta({name:"And",pattern:/&/,categories:e}),s=Ta({name:"Not",pattern:/!/}),o=Ta({name:"LParen",pattern:/\(/}),a=Ta({name:"RParen",pattern:/\)/}),l=Ta({name:"Query",pattern:r}),u=[Ta({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ty=>{var Bwe=IJ();Ty.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ty.parse=Ty.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,bJ)=>{var Kd=BJ(),QJ={};for(let r of Object.keys(Kd))QJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};bJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function Qwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=QJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=Qwe(r,s);o<t&&(t=o,i=n)}return i};st.keyword.rgb=function(r){return Kd[r]};st.rgb.xyz=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ny=gx();function bwe(){let r={},e=Object.keys(Ny);for(let t=e.length,i=0;i<t;i++)r[e[i]]={distance:-1,parent:null};return r}function Swe(r){let e=bwe(),t=[r];for(e[r].distance=0;t.length;){let i=t.pop(),n=Object.keys(Ny[i]);for(let s=n.length,o=0;o<s;o++){let a=n[o],l=e[a];l.distance===-1&&(l.distance=e[i].distance+1,l.parent=i,t.unshift(a))}}return e}function vwe(r,e){return function(t){return e(r(t))}}function xwe(r,e){let t=[e[r].parent,r],i=Ny[e[r].parent][r],n=e[r].parent;for(;e[n].parent;)t.unshift(e[n].parent),i=vwe(Ny[e[n].parent][n],i),n=e[n].parent;return i.conversion=t,i}SJ.exports=function(r){let e=Swe(r),t={},i=Object.keys(e);for(let n=i.length,s=0;s<n;s++){let o=i[s];e[o].parent!==null&&(t[o]=xwe(o,e))}return t}});var PJ=I((att,xJ)=>{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return"conversion"in r&&(e.conversion=r.conversion),e}kwe.forEach(r=>{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var NJ=I((Att,TJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(TJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i<n)}});var UJ=I((ctt,KJ)=>{"use strict";var Twe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Twe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Nwe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Nwe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var GJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r `:` `)+t,n=i+1,i=r.indexOf(` -`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[s]));return Cx===void 0&&(Cx=WJ()),Cx(r,n.join(""))};Object.defineProperties(Oy.prototype,uf);var Hd=Oy();Hd.supportsColor=mx;Hd.stderr=Oy({level:Ex?Ex.level:0});Hd.stderr.supportsColor=Ex;Hd.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};ZJ.exports=Hd});var Ky=I(ds=>{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<i.length;n++){let s=i[n];Array.isArray(s)?t(s,e):s!==void 0&&e.push(s)}return e};return t(r),e}});var Uy=I((ptt,$J)=>{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=o3(e+1,i)-1;return s=[...s],s.sort(eBe),s}function _we(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=$we(r,e),n=i.length,s="",o=0;for(let a=0;a<n;a++){let[l,c]=i[a];l===c?s+=l:l!=="0"||c!=="9"?s+=tBe(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function i3(r,e,t,i){let n=Zwe(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=_we(String(o),String(c),i),g="";if(!t.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function eBe(r,e){return r>e?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),Qx=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),bx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length<e;)r="0"+r;return t?"-"+r:r},aBe=(r,e)=>{r.negatives.sort((o,a)=>o<a?-1:o>a?1:0),r.positives.sort((o,a)=>o<a?-1:o>a?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=bx(a)||bx(l)||bx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&Qx(r))return[r];if(!Qx(r)||!Qx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var Q3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g<n.nodes.length;g++){let h=n.nodes[g];if(h.type==="comma"&&n.type==="brace"){g===1&&c.push(""),c.push("");continue}if(h.type==="close"){a.push(Bc(a.pop(),c,l));continue}if(h.value&&h.type!=="open"){c.push(Bc(c.pop(),h.value));continue}h.nodes&&i(h,n)}return c};return gf.flatten(i(r))};B3.exports=hBe});var S3=I((ytt,b3)=>{"use strict";b3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u<c;)if(o=s[s.length-1],h=d(),!(h===SBe||h===bBe)){if(h===vx){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===P3){m({type:"text",value:"\\"+h});continue}if(h===x3){l++;let y=!0,B;for(;u<c&&(B=d());){if(h+=B,B===x3){l++;continue}if(B===vx){h+=d();continue}if(B===P3&&(l--,l===0))break}m({type:"text",value:h});continue}if(h===EBe){o=m({type:"paren",nodes:[]}),s.push(o),m({type:"text",value:h});continue}if(h===IBe){if(o.type!=="paren"){m({type:"text",value:h});continue}o=s.pop(),m({type:"text",value:h}),o=s[s.length-1];continue}if(h===BBe||h===QBe||h===dBe){let y=h,B;for(e.keepQuotes!==!0&&(h="");u<c&&(B=d());){if(B===vx){h+=B+d();continue}if(B===y){e.keepQuotes===!0&&(h+=B);break}h+=B}m({type:"text",value:h});continue}if(h===yBe){g++;let B={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:g,commas:0,ranges:0,nodes:[]};o=m(B),s.push(o),m({type:"open",value:h});continue}if(h===wBe){if(o.type!=="brace"){m({type:"text",value:h});continue}let y="close";o=s.pop(),o.close=!0,m({type:y,value:h}),g--,o=s[s.length-1];continue}if(h===CBe&&g>0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Ta}{1,2}${xx}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Ta}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(Bn=>{"use strict";var GBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Gd();Bn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Bn.hasRegexChars=r=>WBe.test(r);Bn.isRegexChar=r=>r.length===1&&Bn.hasRegexChars(r);Bn.escapeRegex=r=>r.replace(zBe,"\\$1");Bn.toPosixSlashes=r=>r.replace(qBe,"/");Bn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);Bn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Bn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||GBe.sep==="\\";Bn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Bn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Bn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Bn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Nx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Gd(),G3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c<i;){X=ne();let ce;if(X===qd){S=W.backslashes=!0,X=ne(),X===Fx&&(B=!0);continue}if(B===!0||X===Fx){for(q++;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,ne();continue}if(X===Fx){q++;continue}if(B!==!0&&X===Dx&&(X=ne())===Dx){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(B!==!0&&X===XBe){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===$Be&&(q--,q===0)){B=!1,h=W.isBrace=!0,H=!0;break}}if(n===!0)continue;break}if(X===q3){if(s.push(c),o.push(W),W={value:"",depth:0,isGlob:!1},H===!0)continue;if(_===Dx&&c===u+1){u+=2;continue}g=c+1;continue}if(t.noext!==!0&&(X===_Be||X===VBe||X===kx||X===H3||X===Rx)===!0&&A()===Nx){if(d=W.isGlob=!0,m=W.isExtglob=!0,H=!0,X===Rx&&c===u&&(F=!0),n===!0){for(;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,X=ne();continue}if(X===j3){d=W.isGlob=!0,H=!0;break}}continue}break}if(X===kx){if(_===kx&&(y=W.isGlobstar=!0),d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===H3){if(d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===ZBe){for(;Z()!==!0&&(ce=ne());){if(ce===qd){S=W.backslashes=!0,ne();continue}if(ce===e0e){p=W.isBracket=!0,d=W.isGlob=!0,H=!0;break}}if(n===!0)continue;break}if(t.nonegate!==!0&&X===Rx&&c===u){P=W.negated=!0,u++;continue}if(t.noparen!==!0&&X===Nx){if(d=W.isGlob=!0,n===!0){for(;Z()!==!0&&(X=ne());){if(X===Nx){S=W.backslashes=!0,X=ne();continue}if(X===j3){H=!0;break}}continue}break}if(d===!0){if(H=!0,n===!0)continue;break}}t.noext===!0&&(m=!1,d=!1);let ue=l,te="",O="";u>0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&G3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let N={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(N.maxDepth=0,G3(X)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he<s.length;he++){let Pe=ce?ce+1:u,De=s[he],Re=r.slice(Pe,De);t.tokens&&(he===0&&u!==0?(o[he].isPrefix=!0,o[he].value=te):o[he].value=Re,Y3(o[he]),N.maxDepth+=o[he].depth),(he!==0||Re!=="")&&a.push(Re),ce=De}if(ce&&ce+1<r.length){let he=r.slice(ce+1);a.push(he),t.tokens&&(o[o.length-1].value=he,Y3(o[o.length-1]),N.maxDepth+=o[o.length-1].depth)}N.slashes=s,N.parts=a}return N};J3.exports=t0e});var X3=I((vtt,V3)=>{"use strict";var Gy=Gd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Gy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Tx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Gy.globChars(l),u=Gy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=G=>`(${a}(?:(?!${q}${G.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,N,ce=()=>A.index===n-1,he=A.peek=(G=1)=>r[A.index+G],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(G="",fe=0)=>{A.consumed+=G,A.index+=fe},se=G=>{A.output+=G.output!=null?G.output:G.value,Re(G.value)},Ae=()=>{let G=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,G++;return G%2===0?!1:(A.negated=!0,A.start++,!0)},ye=G=>{A[G]++,te.push(G)},ge=G=>{A[G]--,te.pop()},oe=G=>{if(O.type==="globstar"){let fe=A.braces>0&&(G.type==="comma"||G.type==="brace"),re=G.extglob===!0||ne.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&G.type!=="paren"&&(ne[ne.length-1].inner+=G.value),(G.value||G.output)&&se(G),O&&O.type==="text"&&G.type==="text"){O.value+=G.value,O.output=(O.output||"")+G.value;return}G.prev=O,o.push(G),O=G},Ye=(G,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:G,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=G=>{let fe=G.close+(t.capture?")":""),re;if(G.type==="negate"){let de=Z;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=G.close=`)$))${de}`),G.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Tx(re,{...e,fastpaths:!1}).output;fe=G.close=`)${Ze})${de})`}G.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:N,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let G=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Lr)=>vt==="\\"?(G=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Lr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return G===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(N=Pe(),N==="\0")continue;if(N==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){N+="\\",oe({type:"text",value:N});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(N+="\\")),t.unescape===!0?N=Pe():N+=Pe(),A.brackets===0){oe({type:"text",value:N});continue}}if(A.brackets>0&&(N!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&N===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(N==="["&&he()!==":"||N==="-"&&he()==="]")&&(N=`\\${N}`),N==="]"&&(O.value==="["||O.value==="[^")&&(N=`\\${N}`),t.posix===!0&&N==="!"&&O.value==="["&&(N="^"),O.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='"'){N=Wn.escapeRegex(N),O.value+=N,se({value:N});continue}if(N==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:N});continue}if(N==="("){ye("parens"),oe({type:"paren",value:N});continue}if(N===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:N,output:A.parens?")":"\\)"}),ge("parens");continue}if(N==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));N=`\\${N}`}else ye("brackets");oe({type:"bracket",value:N});continue}if(N==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:N,output:`\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:N,output:`\\${N}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(N=`/${N}`),O.value+=N,se({value:N}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(N==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:N,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(N==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:N,output:N});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",N=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:N,output:de}),ge("braces"),ue.pop();continue}if(N==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:N});continue}if(N===","){let re=N,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:N,output:re});continue}if(N==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:N,output:p});continue}if(N==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=N,O.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:N,output:g});continue}oe({type:"dot",value:N,output:g});continue}if(N==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",N);continue}if(O&&O.type==="paren"){let de=he(),Ze=N;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${N}`),oe({type:"text",value:N,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:N,output:F});continue}oe({type:"qmark",value:N,output:P});continue}if(N==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",N);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:N,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:N});continue}oe({type:"plus",value:h});continue}if(N==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:N,output:""});continue}oe({type:"text",value:N});continue}if(N!=="*"){(N==="$"||N==="^")&&(N=`\\${N}`);let re=i0e.exec(De());re&&(N+=re[0],A.index+=re[0].length),oe({type:"text",value:N});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=N,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(N);continue}let G=De();if(t.noextglob!==!0&&/^\([^?]/.test(G)){Ye("star",N);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(N);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||G[0]&&G[0]!=="/")){oe({type:"star",value:N,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Lr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Lr){oe({type:"star",value:N,output:""});continue}for(;G.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;G=G.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=N,O.output=_(t),A.output=O.output,A.globstar=!0,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=N,A.globstar=!0,A.output+=re.output+O.output,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&G[0]==="/"){let ti=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=N,A.output+=re.output+O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&G[0]==="/"){O.type="globstar",O.value+=N,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=N,A.output+=O.output,A.globstar=!0,Re(N);continue}let fe={type:"star",value:N,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=N,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};Tx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Gy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Tx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Yd(),A0e=Gd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Ur=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Ur(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Ur.compileRe(r,e):Ur.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Ur(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Ur.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Ur.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Ur.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Ur.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Ur.makeRe(e,t)).test(o0e.basename(r));Ur.isMatch=(r,e,t)=>Ur(e,t)(r);Ur.parse=(r,e)=>Array.isArray(r)?r.map(t=>Ur.parse(t,e)):Lx(r,{...e,fastpaths:!1});Ur.scan=(r,e)=>a0e(r,e);Ur.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Ur.toRegex(a,e);return i===!0&&(l.state=r),l};Ur.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Ur.compileRe(n,e,t,i)};Ur.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Ur.constants=A0e;Z3.exports=Ur});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var Qn=I((ktt,iW)=>{"use strict";var tW=J("util"),rW=N3(),Ko=Mx(),Kx=Yd(),eW=r=>r===""||r==="./",br=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u<e.length;u++){let g=Ko(String(e[u]),{...t,onResult:a},!0),h=g.state.negated||g.state.negatedExtglob;h&&o++;for(let p of r){let d=g(p,!0);!(h?!d.isMatch:d.isMatch)||(h?i.add(d.output):(i.delete(d.output),n.add(d.output)))}}let c=(o===e.length?[...s]:[...n]).filter(u=>!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};br.match=br;br.matcher=(r,e)=>Ko(r,e);br.isMatch=(r,e,t)=>Ko(e,t)(r);br.any=br.isMatch;br.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=br(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};br.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>br.contains(r,i,t));if(typeof e=="string"){if(eW(r)||eW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return br.isMatch(r,e,{...t,contains:!0})};br.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=br(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};br.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};br.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};br.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};br.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};br.makeRe=(...r)=>Ko.makeRe(...r);br.scan=(...r)=>Ko.scan(...r);br.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of rW(String(i),e))t.push(Ko.parse(n,e));return t};br.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:rW(r,e)};br.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return br.braces(r,{...e,expand:!0})};iW.exports=br});var sW=I((Dtt,nW)=>{"use strict";nW.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var aW=I((Rtt,oW)=>{"use strict";var c0e=sW();oW.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var yW=I((Gtt,IW)=>{"use strict";IW.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Ytt,QW)=>{"use strict";var B0e=J("stream"),wW=B0e.PassThrough,Q0e=Array.prototype.slice;QW.exports=b0e;function b0e(){let r=[],e=!1,t=Q0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=wW(i);function o(){for(let c=0,u=arguments.length;c<u;c++)r.push(BW(arguments[c],i));return a(),this}function a(){if(e)return;e=!0;let c=r.shift();if(!c){process.nextTick(l);return}Array.isArray(c)||(c=[c]);let u=c.length+1;function g(){--u>0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p<c.length;p++)h(c[p]);g()}function l(){return e=!1,s.emit("queueDrain"),n&&s.end()}return s.setMaxListeners(0),s.add=o,s.on("unpipe",function(c){c.emit("merge2UnpipeEnd")}),t.length&&o.apply(null,t),s}function BW(r,e){if(Array.isArray(r))for(let t=0,i=r.length;t<i;t++)r[t]=BW(r[t],e);else{if(!r._readableState&&r.pipe&&(r=r.pipe(wW(e))),!r._readableState||!r.pause||!r.pipe)throw new Error("Only readable stream can be merged.");r.pause()}return r}});var bW=I(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var SW=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var vW=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var xW=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function N0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=N0e;function T0e(r){return r.replace(R0e,"\\$2")}yf.escape=T0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var kW=I((Vtt,PW)=>{PW.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var FW=I((Xtt,RW)=>{var O0e=kW(),DW={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;e<r.length;){if(r[e]==="*"||r[e+1]==="?"&&/[\].+)]/.test(r[e])||i!==-1&&r[e]==="["&&r[e+1]!=="]"&&(i<e&&(i=r.indexOf("]",e)),i>e&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(t<e&&(t=r.indexOf("|",e)),t!==-1&&r[t+1]!==")"&&(s=r.indexOf(")",t),s>t&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=DW[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e<r.length;){if(/[*?{}()[\]]/.test(r[e]))return!0;if(r[e]==="\\"){var t=r[e+1];e+=2;var i=DW[t];if(i){var n=r.indexOf(i,e);n!==-1&&(e=n+1)}if(r[e]==="!")return!0}else e++}return!1};RW.exports=function(e,t){if(typeof e!="string"||e==="")return!1;if(O0e(e))return!0;var i=M0e;return t&&t.strict===!1&&(i=K0e),i(e)}});var TW=I((Ztt,NW)=>{"use strict";var U0e=FW(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lP="/",G0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;NW.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lP)<0&&(e=e.replace(G0e,lP)),Y0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var YW=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=TW(),LW=Qn(),V0e=Mx(),OW="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,eQe=/[!*+?@]\(.*\)/,tQe=/{.*(?:,|\.\.).*}/;function MW(r,e={}){return!KW(r,e)}Zr.isStaticPattern=MW;function KW(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&eQe.test(r)||e.braceExpansion!==!1&&tQe.test(r))}Zr.isDynamicPattern=KW;function rQe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rQe;function iQe(r){return"!"+r}Zr.convertToNegativePattern=iQe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function UW(r){return!Zy(r)}Zr.isPositivePattern=UW;function nQe(r){return r.filter(Zy)}Zr.getNegativePatterns=nQe;function sQe(r){return r.filter(UW)}Zr.getPositivePatterns=sQe;function oQe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=oQe;function aQe(r){return r.includes(OW)}Zr.hasGlobStar=aQe;function HW(r){return r.endsWith("/"+OW)}Zr.endsWithSlashGlobStar=HW;function AQe(r){let e=W0e.basename(r);return HW(r)||MW(e)}Zr.isAffectDepthOfReadingPattern=AQe;function lQe(r){return r.reduce((e,t)=>e.concat(jW(t)),[])}Zr.expandPatternsWithBraceExpansion=lQe;function jW(r){return LW.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=jW;function cQe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cQe;function GW(r,e){return LW.makeRe(r,e)}Zr.makeRe=GW;function uQe(r,e){return r.map(t=>GW(t,e))}Zr.convertPatternsToRe=uQe;function gQe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gQe});var JW=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fQe=sP();function hQe(r){let e=fQe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>qW(r)),e.once("end",()=>qW(r)),e}cP.merge=hQe;function qW(r){r.forEach(e=>e.emit("close"))}});var WW=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pQe(r){return typeof r=="string"}_y.isString=pQe;function dQe(r){return r===""}_y.isEmpty=dQe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var CQe=bW();Oa.array=CQe;var mQe=SW();Oa.errno=mQe;var EQe=vW();Oa.fs=EQe;var IQe=xW();Oa.path=IQe;var yQe=YW();Oa.pattern=yQe;var wQe=JW();Oa.stream=wQe;var BQe=WW();Oa.string=BQe});var _W=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function QQe(r,e){let t=zW(r),i=VW(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=QQe;function uP(r,e,t){let i=XW(r);return"."in i?[gP(".",r,e,t)]:ZW(i,e,t)}Ka.convertPatternsToTasks=uP;function zW(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=zW;function VW(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=VW;function XW(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=XW;function ZW(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=ZW;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var e8=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function bQe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$W(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$W(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=bQe;function $W(r,e){r(e)}function fP(r,e){r(null,e)}});var t8=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function SQe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=SQe});var r8=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vQe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vQe});var i8=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xQe=r8(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xQe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var n8=e8(),PQe=t8(),dP=i8();UA.Settings=dP.default;function kQe(r,e,t){if(typeof e=="function"){n8.read(r,CP(),e);return}n8.read(r,CP(e),t)}UA.stat=kQe;function DQe(r,e){let t=CP(e);return PQe.read(r,t)}UA.statSync=DQe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var o8=I((Art,s8)=>{s8.exports=RQe;function RQe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var a8=Number.parseInt(rw[0],10),FQe=Number.parseInt(rw[1],10),A8=10,NQe=10,TQe=a8>A8,LQe=a8===A8&&FQe>=NQe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=TQe||LQe});var l8=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function OQe(r,e){return new EP(r,e)}nw.createDirentFromStats=OQe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var MQe=l8();sw.fs=MQe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function KQe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=KQe});var p8=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var UQe=vc(),c8=o8(),HQe=mP(),u8=IP(),g8=yP();function jQe(r,e,t){if(!e.stats&&HQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){f8(r,e,t);return}h8(r,e,t)}HA.read=jQe;function f8(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:g8.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>GQe(a,e));c8(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=f8;function GQe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=u8.fs.createDirentFromStats(r.name,n),t(null,r)})}}function h8(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=g8.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{UQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:u8.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});c8(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=h8;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var I8=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var YQe=vc(),qQe=mP(),d8=IP(),C8=yP();function JQe(r,e){return!e.stats&&qQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?m8(r,e):E8(r,e)}jA.read=JQe;function m8(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:C8.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=d8.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=m8;function E8(r,e){return e.fs.readdirSync(r).map(i=>{let n=C8.joinPathSegments(r,i,e.pathSegmentSeparator),s=YQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:d8.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=E8});var y8=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.createFileSystemAdapter=GA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");GA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function WQe(r){return r===void 0?GA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},GA.FILE_SYSTEM_ADAPTER),r)}GA.createFileSystemAdapter=WQe});var w8=I(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var zQe=J("path"),VQe=vc(),XQe=y8(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=XQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new VQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};QP.default=BP});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var B8=p8(),ZQe=I8(),bP=w8();YA.Settings=bP.default;function _Qe(r,e,t){if(typeof e=="function"){B8.read(r,SP(),e);return}B8.read(r,SP(e),t)}YA.scandir=_Qe;function $Qe(r,e){let t=SP(e);return ZQe.read(r,t)}YA.scandirSync=$Qe;function SP(r={}){return r instanceof bP.default?r:new bP.default(r)}});var b8=I((mrt,Q8)=>{"use strict";function ebe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}Q8.exports=ebe});var v8=I((Ert,vP)=>{"use strict";var tbe=b8();function S8(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tbe(rbe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H<l.concurrency;H++)o++,B()}}function d(){return o===0&&l.length()===0}function m(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,_.errorHandler=a,o===l.concurrency||l.paused?s?(s.next=_,s=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function y(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,o===l.concurrency||l.paused?n?(_.next=n,n=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function B(H){H&&i.release(H);var q=n;q?l.paused?o--:(s===n&&(s=null),n=q.next,q.next=null,e.call(r,q.value,q.worked),s===null&&l.empty()):--o===0&&l.drain()}function S(){n=null,s=null,l.drain=Es}function P(){n=null,s=null,l.drain(),l.drain=Es}function F(H){a=H}}function Es(){}function rbe(){this.value=null,this.callback=Es,this.next=null,this.release=Es,this.context=null,this.errorHandler=null;var r=this;this.worked=function(t,i){var n=r.callback,s=r.errorHandler,o=r.value;r.value=null,r.callback=Es,r.errorHandler&&s(t,o),n.call(r.context,t,i),r.release(r)}}function ibe(r,e,t){typeof r=="function"&&(t=e,e=r,r=null);function i(u,g){e.call(this,u).then(function(h){g(null,h)},g)}var n=S8(r,i,t),s=n.push,o=n.unshift;return n.push=a,n.unshift=l,n.drained=c,n;function a(u){var g=new Promise(function(h,p){s(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function l(u){var g=new Promise(function(h,p){o(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function c(){var u=n.drain,g=new Promise(function(h){n.drain=function(){u(),h()}});return g}}vP.exports=S8;vP.exports.promise=ibe});var lw=I(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nbe;function sbe(r,e){return r===null||r(e)}jo.isAppliedFilter=sbe;function obe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=obe;function abe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=abe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Abe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=Abe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lbe=J("events"),cbe=Aw(),ube=v8(),cw=lw(),gbe=kP(),DP=class extends gbe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cbe.scandir,this._emitter=new lbe.EventEmitter,this._queue=ube(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var x8=I(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});var fbe=FP(),NP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pbe(e,[...this._storage])}),this._reader.read()}};TP.default=NP;function hbe(r,e){r(e)}function pbe(r,e){r(null,e)}});var P8=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dbe=J("stream"),Cbe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Cbe.default(this._root,this._settings),this._stream=new dbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var k8=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mbe=Aw(),uw=lw(),Ebe=kP(),MP=class extends Ebe.default{constructor(){super(...arguments),this._scandir=mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var D8=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var Ibe=k8(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Ibe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var R8=I(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});var ybe=J("path"),wbe=Aw(),jP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ybe.sep),this.fsScandirSettings=new wbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};GP.default=jP});var qP=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Settings=Go.walkStream=Go.walkSync=Go.walk=void 0;var F8=x8(),Bbe=P8(),Qbe=D8(),YP=R8();Go.Settings=YP.default;function bbe(r,e,t){if(typeof e=="function"){new F8.default(r,gw()).read(e);return}new F8.default(r,gw(e)).read(t)}Go.walk=bbe;function Sbe(r,e){let t=gw(e);return new Qbe.default(r,t).read()}Go.walkSync=Sbe;function vbe(r,e){let t=gw(e);return new Bbe.default(r,t).read()}Go.walkStream=vbe;function gw(r={}){return r instanceof YP.default?r:new YP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xbe=J("path"),Pbe=vc(),N8=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new Pbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:N8.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!N8.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kbe=J("stream"),Dbe=vc(),Rbe=qP(),Fbe=zP(),VP=class extends Fbe.default{constructor(){super(...arguments),this._walkStream=Rbe.walkStream,this._stat=Dbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;s<i.length;s++)n.write(s);return n}_getEntry(e,t,i){return this._getStat(e).then(n=>this._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var T8=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var L8=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var Nbe=T8(),ek=class extends Nbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var O8=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),Tbe=L8(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Tbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var M8=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var K8=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var Lbe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return Lbe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var H8=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var U8=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=U8.path.makeAbsolute(this._settings.cwd,t),t=U8.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var Obe=J("path"),Mbe=O8(),Kbe=M8(),Ube=K8(),Hbe=H8(),ck=class{constructor(e){this._settings=e,this.errorFilter=new Ube.default(this._settings),this.entryFilter=new Kbe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Mbe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Hbe.default(this._settings)}_getRootDirectory(e){return Obe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var j8=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jbe=ZP(),Gbe=hw(),gk=class extends Gbe.default{constructor(){super(...arguments),this._reader=new jbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var G8=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Ybe=J("stream"),qbe=ZP(),Jbe=hw(),hk=class extends Jbe.default{constructor(){super(...arguments),this._reader=new qbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new Ybe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var Y8=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var Wbe=vc(),zbe=qP(),Vbe=zP(),dk=class extends Vbe.default{constructor(){super(...arguments),this._walkSync=zbe.walkSync,this._statSync=Wbe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var q8=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var Xbe=Y8(),Zbe=hw(),mk=class extends Zbe.default{constructor(){super(...arguments),this._reader=new Xbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var J8=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var Qf=J("fs"),_be=J("os"),$be=_be.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Qf.lstat,lstatSync:Qf.lstatSync,stat:Qf.stat,statSync:Qf.statSync,readdir:Qf.readdir,readdirSync:Qf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$be),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Grt,z8)=>{"use strict";var W8=_W(),eSe=j8(),tSe=G8(),rSe=q8(),yk=J8(),xc=Ma();async function wk(r,e){bf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){bf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){bf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){bf(o);let l=[].concat(o),c=new yk.default(a);return W8.generate(l,c)}r.generateTasks=i;function n(o,a){bf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return bf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=W8.generate(i,n),o=new e(n);return s.map(o.read,o)}function bf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}z8.exports=wk});var X8=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),V8=J("fs");async function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(V8[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return V8[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=Qk.bind(null,"stat","isFile");Pc.isDirectory=Qk.bind(null,"stat","isDirectory");Pc.isSymlink=Qk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=bk.bind(null,"statSync","isFile");Pc.isDirectorySync=bk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=bk.bind(null,"lstatSync","isSymbolicLink")});var t4=I((qrt,Sk)=>{"use strict";var kc=J("path"),Z8=X8(),_8=r=>r.length>1?`{${r.join(",")}}`:r[0],$8=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_8(e)}`,e4=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_8(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await Z8.isDirectory($8(i,e.cwd))?e4(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>Z8.isDirectorySync($8(i,e.cwd))?e4(i,e):i);return[].concat.apply([],t)}});var l4=I((Jrt,A4)=>{function r4(r){return Array.isArray(r)?r:[r]}var o4="",i4=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n4=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o4),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i4:o4],[/\\\s/g,()=>i4],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6<t.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(r,e)=>`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s4=Object.create(null),pSe=(r,e)=>{let t=s4[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s4[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a4=r=>lSe.test(r);Ua.isNotRelative=a4;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n4,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n4]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r4(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r4(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A4.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a4(t)}});var u4=I((Wrt,c4)=>{"use strict";c4.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m4=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g4=J("fs"),Ha=J("path"),f4=pw(),BSe=l4(),eC=u4(),h4=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],QSe=wSe(g4.readFile),bSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(bSe(t))},p4=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d4=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await QSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g4.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C4=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C4(r);let e=await f4("**/.gitignore",{ignore:h4.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p4(t);return d4(i,r.cwd)};Rk.exports.sync=r=>{r=C4(r);let t=f4.sync("**/.gitignore",{ignore:h4.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p4(t);return d4(i,r.cwd)}});var I4=I((Vrt,E4)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Nk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E4.exports={FilterStream:Fk,UniqueStream:Nk}});var Mk=I((Xrt,Dc)=>{"use strict";var w4=J("fs"),mw=yW(),DSe=sP(),Ew=pw(),Iw=t4(),Tk=m4(),{FilterStream:RSe,UniqueStream:FSe}=I4(),B4=()=>!1,y4=r=>r[0]==="!",NSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},TSe=(r={})=>{if(!r.cwd)return;let e;try{e=w4.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w4.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),NSe(r),TSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y4(n))continue;let s=r.slice(i).filter(a=>y4(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],Q4=r=>r&&r.gitignore?Tk.sync({cwd:r.cwd,ignore:r.ignore}):B4,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Tk({cwd:e.cwd,ignore:e.ignore}):B4,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=Q4(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=Q4(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Tk});var xn=I((fit,K4)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K4.exports=XSe});var Wk=I((hit,U4)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U4.exports=ZSe});var Is=I((pit,H4)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H4.exports=eve});var G4=I((dit,j4)=>{var tve=Is(),rve=function(){return tve.Date.now()};j4.exports=rve});var q4=I((Cit,Y4)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y4.exports=nve});var W4=I((mit,J4)=>{var sve=q4(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J4.exports=ave});var Nc=I((Eit,z4)=>{var Ave=Is(),lve=Ave.Symbol;z4.exports=lve});var _4=I((Iit,Z4)=>{var V4=Nc(),X4=Object.prototype,cve=X4.hasOwnProperty,uve=X4.toString,gC=V4?V4.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z4.exports=gve});var ez=I((yit,$4)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$4.exports=pve});var Tc=I((wit,iz)=>{var tz=Nc(),dve=_4(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((Qit,sz)=>{var wve=Tc(),Bve=Jo(),Qve="[object Symbol]";function bve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==Qve}sz.exports=bve});var lz=I((bit,Az)=>{var Sve=W4(),oz=xn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=xn(),zk=G4(),cz=lz(),Nve="Expected a function",Tve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Nve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Tve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=xn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((Ga,Gw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var Qz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return Qz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Qz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:bz}=Object.prototype,mC=r=>{let e=bz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(bz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=V;Gw.exports=V;Gw.exports.default=V;Gw.exports.assert=Ga.assert});var xz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,bD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),QD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Nz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Tz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Nz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Tz),this._resolve6(e,Tz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a<i&&(i=a)}i!==1/0&&this._tick(i-n)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Fz(e),Mf in e)throw new Error("CacheableLookup has been already installed");e[Mf]=e.createConnection,e[QD]=this,e.createConnection=(t,i)=>("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[QD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[QD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Nz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};bD.exports=qw;bD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,Qxe="text/plain",bxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===bxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Qxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Gz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n<i.length;n++)i[n]=arguments[n];var s=r.apply(this,i),o=i[i.length-1];return typeof s=="function"&&s!==o&&Object.keys(o).forEach(function(a){s[a]=o[a]}),s}}});var xD=I((mnt,vD)=>{var Yz=Gz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Nxe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Txe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Nxe(r))return r.close(EC);if(Txe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s<r.length-1,a=s>0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((Qnt,e5)=>{"use strict";var jxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Gxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Yxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Yxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Gxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||i<t?0:Math.max(e,(i-t)/1e3)}if(this._resHeaders["last-modified"]){let i=Date.parse(this._resHeaders["last-modified"]);if(isFinite(i)&&t>i)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((bnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},ND=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=ND});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),TD=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=TD.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new TD(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=TD.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Tnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,Q5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),on=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i<n;){let s=i+n>>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].length<e[ws].length&&t[ws].every(i=>e[ws].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].length<t[ws].length&&e[ws].every(i=>t[ws].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]<o.remoteSettings.maxConcurrentStreams;return e?a:!a});s.length!==0&&(t[i]=s)}return t},B5=r=>{r[Uf]=!0,r[on]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount<this.maxSessions&&!i.completed&&(i.completed=!0,i())}getSession(e,t,i){return new Promise((n,s)=>{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m<g)break;if(d[ws].includes(a)){let y=d[on];if(y>=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[on]=0,h[Uf]=!1;let p=()=>h[on]<h.remoteSettings.maxConcurrentStreams,d=!0;h.socket.once("session",y=>{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[on],h[on]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[on],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[on]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=on;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};b5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:QPe}=J("stream"),{Agent:F5,globalAgent:bPe}=HD(),SPe=GD(),vPe=YD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:N5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:T5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:NPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),TPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends QPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=bPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===NPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[T5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[T5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new N5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new N5("set");if(typeof e!="string"||!TPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var G5=I((Wnt,j5)=>{"use strict";var MPe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),jPe=G5(),GPe=YD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},YPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=GPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await YPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=GD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Gf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),QC=Symbol("jobs"),Q6=Symbol("originalResponse"),b6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Qke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function bke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,jJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function Gwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function jwe(r){jJ.lastIndex=0;let e=[],t;for(;(t=jJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=Gwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:jwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=NJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=GJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[s]));return Cx===void 0&&(Cx=WJ()),Cx(r,n.join(""))};Object.defineProperties(Oy.prototype,uf);var Hd=Oy();Hd.supportsColor=mx;Hd.stderr=Oy({level:Ex?Ex.level:0});Hd.stderr.supportsColor=Ex;Hd.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};ZJ.exports=Hd});var Ky=I(ds=>{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<i.length;n++){let s=i[n];Array.isArray(s)?t(s,e):s!==void 0&&e.push(s)}return e};return t(r),e}});var Uy=I((ptt,$J)=>{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=o3(e+1,i)-1;return s=[...s],s.sort(eBe),s}function _we(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=$we(r,e),n=i.length,s="",o=0;for(let a=0;a<n;a++){let[l,c]=i[a];l===c?s+=l:l!=="0"||c!=="9"?s+=tBe(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function i3(r,e,t,i){let n=Zwe(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=_we(String(o),String(c),i),g="";if(!t.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function eBe(r,e){return r>e?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),Qx=r=>typeof r=="number"||typeof r=="string"&&r!=="",Gd=r=>Number.isInteger(+r),bx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length<e;)r="0"+r;return t?"-"+r:r},aBe=(r,e)=>{r.negatives.sort((o,a)=>o<a?-1:o>a?1:0),r.positives.sort((o,a)=>o<a?-1:o>a?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=bx(a)||bx(l)||bx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!Gd(r)&&r.length>1||!Gd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&Qx(r))return[r];if(!Qx(r)||!Qx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Gd(t)?Gd(r)&&Gd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var Q3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g<n.nodes.length;g++){let h=n.nodes[g];if(h.type==="comma"&&n.type==="brace"){g===1&&c.push(""),c.push("");continue}if(h.type==="close"){a.push(Bc(a.pop(),c,l));continue}if(h.value&&h.type!=="open"){c.push(Bc(c.pop(),h.value));continue}h.nodes&&i(h,n)}return c};return gf.flatten(i(r))};B3.exports=hBe});var S3=I((ytt,b3)=>{"use strict";b3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u<c;)if(o=s[s.length-1],h=d(),!(h===SBe||h===bBe)){if(h===vx){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===P3){m({type:"text",value:"\\"+h});continue}if(h===x3){l++;let y=!0,B;for(;u<c&&(B=d());){if(h+=B,B===x3){l++;continue}if(B===vx){h+=d();continue}if(B===P3&&(l--,l===0))break}m({type:"text",value:h});continue}if(h===EBe){o=m({type:"paren",nodes:[]}),s.push(o),m({type:"text",value:h});continue}if(h===IBe){if(o.type!=="paren"){m({type:"text",value:h});continue}o=s.pop(),m({type:"text",value:h}),o=s[s.length-1];continue}if(h===BBe||h===QBe||h===dBe){let y=h,B;for(e.keepQuotes!==!0&&(h="");u<c&&(B=d());){if(B===vx){h+=B+d();continue}if(B===y){e.keepQuotes===!0&&(h+=B);break}h+=B}m({type:"text",value:h});continue}if(h===yBe){g++;let B={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:g,commas:0,ranges:0,nodes:[]};o=m(B),s.push(o),m({type:"open",value:h});continue}if(h===wBe){if(o.type!=="brace"){m({type:"text",value:h});continue}let y="close";o=s.pop(),o.close=!0,m({type:y,value:h}),g--,o=s[s.length-1];continue}if(h===CBe&&g>0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var T3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var jd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",N3=`[^${Mo}]`,Na="\\.",RBe="\\+",FBe="\\?",Gy="\\/",TBe="(?=.)",L3="[^/]",xx=`(?:${Gy}|$)`,O3=`(?:^|${Gy})`,Px=`${Na}{1,2}${xx}`,NBe=`(?!${Na})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Na}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${Gy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Na,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:Gy,ONE_CHAR:TBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:NBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:N3,STAR:`${N3}*?`,DOTS_SLASH:`${Na}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Na})`,NO_DOTS:`(?!(?:^|[${Mo}])${Na}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Na}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Na}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},GBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:GBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(Bn=>{"use strict";var jBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=jd();Bn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Bn.hasRegexChars=r=>WBe.test(r);Bn.isRegexChar=r=>r.length===1&&Bn.hasRegexChars(r);Bn.escapeRegex=r=>r.replace(zBe,"\\$1");Bn.toPosixSlashes=r=>r.replace(qBe,"/");Bn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);Bn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Bn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||jBe.sep==="\\";Bn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Bn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Bn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Bn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Tx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:G3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=jd(),j3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c<i;){X=ne();let ce;if(X===qd){S=W.backslashes=!0,X=ne(),X===Fx&&(B=!0);continue}if(B===!0||X===Fx){for(q++;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,ne();continue}if(X===Fx){q++;continue}if(B!==!0&&X===Dx&&(X=ne())===Dx){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(B!==!0&&X===XBe){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===$Be&&(q--,q===0)){B=!1,h=W.isBrace=!0,H=!0;break}}if(n===!0)continue;break}if(X===q3){if(s.push(c),o.push(W),W={value:"",depth:0,isGlob:!1},H===!0)continue;if(_===Dx&&c===u+1){u+=2;continue}g=c+1;continue}if(t.noext!==!0&&(X===_Be||X===VBe||X===kx||X===H3||X===Rx)===!0&&A()===Tx){if(d=W.isGlob=!0,m=W.isExtglob=!0,H=!0,X===Rx&&c===u&&(F=!0),n===!0){for(;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,X=ne();continue}if(X===G3){d=W.isGlob=!0,H=!0;break}}continue}break}if(X===kx){if(_===kx&&(y=W.isGlobstar=!0),d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===H3){if(d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===ZBe){for(;Z()!==!0&&(ce=ne());){if(ce===qd){S=W.backslashes=!0,ne();continue}if(ce===e0e){p=W.isBracket=!0,d=W.isGlob=!0,H=!0;break}}if(n===!0)continue;break}if(t.nonegate!==!0&&X===Rx&&c===u){P=W.negated=!0,u++;continue}if(t.noparen!==!0&&X===Tx){if(d=W.isGlob=!0,n===!0){for(;Z()!==!0&&(X=ne());){if(X===Tx){S=W.backslashes=!0,X=ne();continue}if(X===G3){H=!0;break}}continue}break}if(d===!0){if(H=!0,n===!0)continue;break}}t.noext===!0&&(m=!1,d=!1);let ue=l,te="",O="";u>0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&j3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let T={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(T.maxDepth=0,j3(X)||o.push(W),T.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he<s.length;he++){let Pe=ce?ce+1:u,De=s[he],Re=r.slice(Pe,De);t.tokens&&(he===0&&u!==0?(o[he].isPrefix=!0,o[he].value=te):o[he].value=Re,Y3(o[he]),T.maxDepth+=o[he].depth),(he!==0||Re!=="")&&a.push(Re),ce=De}if(ce&&ce+1<r.length){let he=r.slice(ce+1);a.push(he),t.tokens&&(o[o.length-1].value=he,Y3(o[o.length-1]),T.maxDepth+=o[o.length-1].depth)}T.slashes=s,T.parts=a}return T};J3.exports=t0e});var X3=I((vtt,V3)=>{"use strict";var jy=jd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=jy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Nx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=jy.globChars(l),u=jy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=j=>`(${a}(?:(?!${q}${j.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,T,ce=()=>A.index===n-1,he=A.peek=(j=1)=>r[A.index+j],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(j="",fe=0)=>{A.consumed+=j,A.index+=fe},se=j=>{A.output+=j.output!=null?j.output:j.value,Re(j.value)},Ae=()=>{let j=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,j++;return j%2===0?!1:(A.negated=!0,A.start++,!0)},ye=j=>{A[j]++,te.push(j)},ge=j=>{A[j]--,te.pop()},oe=j=>{if(O.type==="globstar"){let fe=A.braces>0&&(j.type==="comma"||j.type==="brace"),re=j.extglob===!0||ne.length&&(j.type==="pipe"||j.type==="paren");j.type!=="slash"&&j.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&j.type!=="paren"&&(ne[ne.length-1].inner+=j.value),(j.value||j.output)&&se(j),O&&O.type==="text"&&j.type==="text"){O.value+=j.value,O.output=(O.output||"")+j.value;return}j.prev=O,o.push(j),O=j},Ye=(j,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:j,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=j=>{let fe=j.close+(t.capture?")":""),re;if(j.type==="negate"){let de=Z;if(j.inner&&j.inner.length>1&&j.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=j.close=`)$))${de}`),j.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Nx(re,{...e,fastpaths:!1}).output;fe=j.close=`)${Ze})${de})`}j.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:T,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let j=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Lr)=>vt==="\\"?(j=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Lr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return j===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(T=Pe(),T==="\0")continue;if(T==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){T+="\\",oe({type:"text",value:T});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(T+="\\")),t.unescape===!0?T=Pe():T+=Pe(),A.brackets===0){oe({type:"text",value:T});continue}}if(A.brackets>0&&(T!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&T===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(T==="["&&he()!==":"||T==="-"&&he()==="]")&&(T=`\\${T}`),T==="]"&&(O.value==="["||O.value==="[^")&&(T=`\\${T}`),t.posix===!0&&T==="!"&&O.value==="["&&(T="^"),O.value+=T,se({value:T});continue}if(A.quotes===1&&T!=='"'){T=Wn.escapeRegex(T),O.value+=T,se({value:T});continue}if(T==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:T});continue}if(T==="("){ye("parens"),oe({type:"paren",value:T});continue}if(T===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:T,output:A.parens?")":"\\)"}),ge("parens");continue}if(T==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));T=`\\${T}`}else ye("brackets");oe({type:"bracket",value:T});continue}if(T==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:T,output:`\\${T}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:T,output:`\\${T}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(T=`/${T}`),O.value+=T,se({value:T}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(T==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:T,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(T==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:T,output:T});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",T=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:T,output:de}),ge("braces"),ue.pop();continue}if(T==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:T});continue}if(T===","){let re=T,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:T,output:re});continue}if(T==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:T,output:p});continue}if(T==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=T,O.value+=T,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:T,output:g});continue}oe({type:"dot",value:T,output:g});continue}if(T==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",T);continue}if(O&&O.type==="paren"){let de=he(),Ze=T;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${T}`),oe({type:"text",value:T,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:T,output:F});continue}oe({type:"qmark",value:T,output:P});continue}if(T==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",T);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(T==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",T);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:T,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:T});continue}oe({type:"plus",value:h});continue}if(T==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:T,output:""});continue}oe({type:"text",value:T});continue}if(T!=="*"){(T==="$"||T==="^")&&(T=`\\${T}`);let re=i0e.exec(De());re&&(T+=re[0],A.index+=re[0].length),oe({type:"text",value:T});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=T,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(T);continue}let j=De();if(t.noextglob!==!0&&/^\([^?]/.test(j)){Ye("star",T);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(T);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||j[0]&&j[0]!=="/")){oe({type:"star",value:T,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Lr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Lr){oe({type:"star",value:T,output:""});continue}for(;j.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;j=j.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=T,O.output=_(t),A.output=O.output,A.globstar=!0,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=T,A.globstar=!0,A.output+=re.output+O.output,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&j[0]==="/"){let ti=j[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=T,A.output+=re.output+O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&j[0]==="/"){O.type="globstar",O.value+=T,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=T,A.output+=O.output,A.globstar=!0,Re(T);continue}let fe={type:"star",value:T,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=T,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let j of A.tokens)A.output+=j.output!=null?j.output:j.value,j.suffix&&(A.output+=j.suffix)}return A};Nx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=jy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Nx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Yd(),A0e=jd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Ur=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Ur(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Ur.compileRe(r,e):Ur.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Ur(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Ur.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Ur.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Ur.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Ur.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Ur.makeRe(e,t)).test(o0e.basename(r));Ur.isMatch=(r,e,t)=>Ur(e,t)(r);Ur.parse=(r,e)=>Array.isArray(r)?r.map(t=>Ur.parse(t,e)):Lx(r,{...e,fastpaths:!1});Ur.scan=(r,e)=>a0e(r,e);Ur.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Ur.toRegex(a,e);return i===!0&&(l.state=r),l};Ur.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Ur.compileRe(n,e,t,i)};Ur.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Ur.constants=A0e;Z3.exports=Ur});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var Qn=I((ktt,iW)=>{"use strict";var tW=J("util"),rW=T3(),Ko=Mx(),Kx=Yd(),eW=r=>r===""||r==="./",br=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u<e.length;u++){let g=Ko(String(e[u]),{...t,onResult:a},!0),h=g.state.negated||g.state.negatedExtglob;h&&o++;for(let p of r){let d=g(p,!0);!(h?!d.isMatch:d.isMatch)||(h?i.add(d.output):(i.delete(d.output),n.add(d.output)))}}let c=(o===e.length?[...s]:[...n]).filter(u=>!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};br.match=br;br.matcher=(r,e)=>Ko(r,e);br.isMatch=(r,e,t)=>Ko(e,t)(r);br.any=br.isMatch;br.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=br(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};br.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>br.contains(r,i,t));if(typeof e=="string"){if(eW(r)||eW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return br.isMatch(r,e,{...t,contains:!0})};br.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=br(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};br.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};br.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};br.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};br.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};br.makeRe=(...r)=>Ko.makeRe(...r);br.scan=(...r)=>Ko.scan(...r);br.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of rW(String(i),e))t.push(Ko.parse(n,e));return t};br.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:rW(r,e)};br.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return br.braces(r,{...e,expand:!0})};iW.exports=br});var sW=I((Dtt,nW)=>{"use strict";nW.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var aW=I((Rtt,oW)=>{"use strict";var c0e=sW();oW.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var yW=I((jtt,IW)=>{"use strict";IW.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Ytt,QW)=>{"use strict";var B0e=J("stream"),wW=B0e.PassThrough,Q0e=Array.prototype.slice;QW.exports=b0e;function b0e(){let r=[],e=!1,t=Q0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=wW(i);function o(){for(let c=0,u=arguments.length;c<u;c++)r.push(BW(arguments[c],i));return a(),this}function a(){if(e)return;e=!0;let c=r.shift();if(!c){process.nextTick(l);return}Array.isArray(c)||(c=[c]);let u=c.length+1;function g(){--u>0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p<c.length;p++)h(c[p]);g()}function l(){return e=!1,s.emit("queueDrain"),n&&s.end()}return s.setMaxListeners(0),s.add=o,s.on("unpipe",function(c){c.emit("merge2UnpipeEnd")}),t.length&&o.apply(null,t),s}function BW(r,e){if(Array.isArray(r))for(let t=0,i=r.length;t<i;t++)r[t]=BW(r[t],e);else{if(!r._readableState&&r.pipe&&(r=r.pipe(wW(e))),!r._readableState||!r.pause||!r.pipe)throw new Error("Only readable stream can be merged.");r.pause()}return r}});var bW=I(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var SW=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var vW=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var xW=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function T0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=T0e;function N0e(r){return r.replace(R0e,"\\$2")}yf.escape=N0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var kW=I((Vtt,PW)=>{PW.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var FW=I((Xtt,RW)=>{var O0e=kW(),DW={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;e<r.length;){if(r[e]==="*"||r[e+1]==="?"&&/[\].+)]/.test(r[e])||i!==-1&&r[e]==="["&&r[e+1]!=="]"&&(i<e&&(i=r.indexOf("]",e)),i>e&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(t<e&&(t=r.indexOf("|",e)),t!==-1&&r[t+1]!==")"&&(s=r.indexOf(")",t),s>t&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=DW[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e<r.length;){if(/[*?{}()[\]]/.test(r[e]))return!0;if(r[e]==="\\"){var t=r[e+1];e+=2;var i=DW[t];if(i){var n=r.indexOf(i,e);n!==-1&&(e=n+1)}if(r[e]==="!")return!0}else e++}return!1};RW.exports=function(e,t){if(typeof e!="string"||e==="")return!1;if(O0e(e))return!0;var i=M0e;return t&&t.strict===!1&&(i=K0e),i(e)}});var NW=I((Ztt,TW)=>{"use strict";var U0e=FW(),H0e=J("path").posix.dirname,G0e=J("os").platform()==="win32",lP="/",j0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;TW.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&G0e&&e.indexOf(lP)<0&&(e=e.replace(j0e,lP)),Y0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var YW=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=NW(),LW=Qn(),V0e=Mx(),OW="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,eQe=/[!*+?@]\(.*\)/,tQe=/{.*(?:,|\.\.).*}/;function MW(r,e={}){return!KW(r,e)}Zr.isStaticPattern=MW;function KW(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&eQe.test(r)||e.braceExpansion!==!1&&tQe.test(r))}Zr.isDynamicPattern=KW;function rQe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rQe;function iQe(r){return"!"+r}Zr.convertToNegativePattern=iQe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function UW(r){return!Zy(r)}Zr.isPositivePattern=UW;function nQe(r){return r.filter(Zy)}Zr.getNegativePatterns=nQe;function sQe(r){return r.filter(UW)}Zr.getPositivePatterns=sQe;function oQe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=oQe;function aQe(r){return r.includes(OW)}Zr.hasGlobStar=aQe;function HW(r){return r.endsWith("/"+OW)}Zr.endsWithSlashGlobStar=HW;function AQe(r){let e=W0e.basename(r);return HW(r)||MW(e)}Zr.isAffectDepthOfReadingPattern=AQe;function lQe(r){return r.reduce((e,t)=>e.concat(GW(t)),[])}Zr.expandPatternsWithBraceExpansion=lQe;function GW(r){return LW.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=GW;function cQe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cQe;function jW(r,e){return LW.makeRe(r,e)}Zr.makeRe=jW;function uQe(r,e){return r.map(t=>jW(t,e))}Zr.convertPatternsToRe=uQe;function gQe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gQe});var JW=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fQe=sP();function hQe(r){let e=fQe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>qW(r)),e.once("end",()=>qW(r)),e}cP.merge=hQe;function qW(r){r.forEach(e=>e.emit("close"))}});var WW=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pQe(r){return typeof r=="string"}_y.isString=pQe;function dQe(r){return r===""}_y.isEmpty=dQe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var CQe=bW();Oa.array=CQe;var mQe=SW();Oa.errno=mQe;var EQe=vW();Oa.fs=EQe;var IQe=xW();Oa.path=IQe;var yQe=YW();Oa.pattern=yQe;var wQe=JW();Oa.stream=wQe;var BQe=WW();Oa.string=BQe});var _W=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function QQe(r,e){let t=zW(r),i=VW(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=QQe;function uP(r,e,t){let i=XW(r);return"."in i?[gP(".",r,e,t)]:ZW(i,e,t)}Ka.convertPatternsToTasks=uP;function zW(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=zW;function VW(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=VW;function XW(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=XW;function ZW(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=ZW;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var e4=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function bQe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$W(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$W(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=bQe;function $W(r,e){r(e)}function fP(r,e){r(null,e)}});var t4=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function SQe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=SQe});var r4=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vQe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vQe});var i4=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xQe=r4(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xQe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var n4=e4(),PQe=t4(),dP=i4();UA.Settings=dP.default;function kQe(r,e,t){if(typeof e=="function"){n4.read(r,CP(),e);return}n4.read(r,CP(e),t)}UA.stat=kQe;function DQe(r,e){let t=CP(e);return PQe.read(r,t)}UA.statSync=DQe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var o4=I((Art,s4)=>{s4.exports=RQe;function RQe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var a4=Number.parseInt(rw[0],10),FQe=Number.parseInt(rw[1],10),A4=10,TQe=10,NQe=a4>A4,LQe=a4===A4&&FQe>=TQe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=NQe||LQe});var l4=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function OQe(r,e){return new EP(r,e)}nw.createDirentFromStats=OQe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var MQe=l4();sw.fs=MQe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function KQe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=KQe});var p4=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var UQe=vc(),c4=o4(),HQe=mP(),u4=IP(),g4=yP();function GQe(r,e,t){if(!e.stats&&HQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){f4(r,e,t);return}h4(r,e,t)}HA.read=GQe;function f4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:g4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>jQe(a,e));c4(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=f4;function jQe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=u4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function h4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=g4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{UQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:u4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});c4(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=h4;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var I4=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.readdir=GA.readdirWithFileTypes=GA.read=void 0;var YQe=vc(),qQe=mP(),d4=IP(),C4=yP();function JQe(r,e){return!e.stats&&qQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?m4(r,e):E4(r,e)}GA.read=JQe;function m4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:C4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=d4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}GA.readdirWithFileTypes=m4;function E4(r,e){return e.fs.readdirSync(r).map(i=>{let n=C4.joinPathSegments(r,i,e.pathSegmentSeparator),s=YQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:d4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}GA.readdir=E4});var y4=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.createFileSystemAdapter=jA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");jA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function WQe(r){return r===void 0?jA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},jA.FILE_SYSTEM_ADAPTER),r)}jA.createFileSystemAdapter=WQe});var w4=I(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var zQe=J("path"),VQe=vc(),XQe=y4(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=XQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new VQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};QP.default=BP});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var B4=p4(),ZQe=I4(),bP=w4();YA.Settings=bP.default;function _Qe(r,e,t){if(typeof e=="function"){B4.read(r,SP(),e);return}B4.read(r,SP(e),t)}YA.scandir=_Qe;function $Qe(r,e){let t=SP(e);return ZQe.read(r,t)}YA.scandirSync=$Qe;function SP(r={}){return r instanceof bP.default?r:new bP.default(r)}});var b4=I((mrt,Q4)=>{"use strict";function ebe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}Q4.exports=ebe});var v4=I((Ert,vP)=>{"use strict";var tbe=b4();function S4(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tbe(rbe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H<l.concurrency;H++)o++,B()}}function d(){return o===0&&l.length()===0}function m(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,_.errorHandler=a,o===l.concurrency||l.paused?s?(s.next=_,s=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function y(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,o===l.concurrency||l.paused?n?(_.next=n,n=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function B(H){H&&i.release(H);var q=n;q?l.paused?o--:(s===n&&(s=null),n=q.next,q.next=null,e.call(r,q.value,q.worked),s===null&&l.empty()):--o===0&&l.drain()}function S(){n=null,s=null,l.drain=Es}function P(){n=null,s=null,l.drain(),l.drain=Es}function F(H){a=H}}function Es(){}function rbe(){this.value=null,this.callback=Es,this.next=null,this.release=Es,this.context=null,this.errorHandler=null;var r=this;this.worked=function(t,i){var n=r.callback,s=r.errorHandler,o=r.value;r.value=null,r.callback=Es,r.errorHandler&&s(t,o),n.call(r.context,t,i),r.release(r)}}function ibe(r,e,t){typeof r=="function"&&(t=e,e=r,r=null);function i(u,g){e.call(this,u).then(function(h){g(null,h)},g)}var n=S4(r,i,t),s=n.push,o=n.unshift;return n.push=a,n.unshift=l,n.drained=c,n;function a(u){var g=new Promise(function(h,p){s(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function l(u){var g=new Promise(function(h,p){o(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function c(){var u=n.drain,g=new Promise(function(h){n.drain=function(){u(),h()}});return g}}vP.exports=S4;vP.exports.promise=ibe});var lw=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.joinPathSegments=Go.replacePathSegmentSeparator=Go.isAppliedFilter=Go.isFatalError=void 0;function nbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}Go.isFatalError=nbe;function sbe(r,e){return r===null||r(e)}Go.isAppliedFilter=sbe;function obe(r,e){return r.split(/[/\\]/).join(e)}Go.replacePathSegmentSeparator=obe;function abe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}Go.joinPathSegments=abe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Abe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=Abe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lbe=J("events"),cbe=Aw(),ube=v4(),cw=lw(),gbe=kP(),DP=class extends gbe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cbe.scandir,this._emitter=new lbe.EventEmitter,this._queue=ube(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var x4=I(NP=>{"use strict";Object.defineProperty(NP,"__esModule",{value:!0});var fbe=FP(),TP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pbe(e,[...this._storage])}),this._reader.read()}};NP.default=TP;function hbe(r,e){r(e)}function pbe(r,e){r(null,e)}});var P4=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dbe=J("stream"),Cbe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Cbe.default(this._root,this._settings),this._stream=new dbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var k4=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mbe=Aw(),uw=lw(),Ebe=kP(),MP=class extends Ebe.default{constructor(){super(...arguments),this._scandir=mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var D4=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var Ibe=k4(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Ibe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var R4=I(jP=>{"use strict";Object.defineProperty(jP,"__esModule",{value:!0});var ybe=J("path"),wbe=Aw(),GP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ybe.sep),this.fsScandirSettings=new wbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};jP.default=GP});var qP=I(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.Settings=jo.walkStream=jo.walkSync=jo.walk=void 0;var F4=x4(),Bbe=P4(),Qbe=D4(),YP=R4();jo.Settings=YP.default;function bbe(r,e,t){if(typeof e=="function"){new F4.default(r,gw()).read(e);return}new F4.default(r,gw(e)).read(t)}jo.walk=bbe;function Sbe(r,e){let t=gw(e);return new Qbe.default(r,t).read()}jo.walkSync=Sbe;function vbe(r,e){let t=gw(e);return new Bbe.default(r,t).read()}jo.walkStream=vbe;function gw(r={}){return r instanceof YP.default?r:new YP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xbe=J("path"),Pbe=vc(),T4=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new Pbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:T4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!T4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kbe=J("stream"),Dbe=vc(),Rbe=qP(),Fbe=zP(),VP=class extends Fbe.default{constructor(){super(...arguments),this._walkStream=Rbe.walkStream,this._stat=Dbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;s<i.length;s++)n.write(s);return n}_getEntry(e,t,i){return this._getStat(e).then(n=>this._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var N4=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var L4=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var Tbe=N4(),ek=class extends Tbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var O4=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),Nbe=L4(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Nbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var M4=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var K4=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var Lbe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return Lbe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var H4=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var U4=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=U4.path.makeAbsolute(this._settings.cwd,t),t=U4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var Obe=J("path"),Mbe=O4(),Kbe=M4(),Ube=K4(),Hbe=H4(),ck=class{constructor(e){this._settings=e,this.errorFilter=new Ube.default(this._settings),this.entryFilter=new Kbe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Mbe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Hbe.default(this._settings)}_getRootDirectory(e){return Obe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var G4=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var Gbe=ZP(),jbe=hw(),gk=class extends jbe.default{constructor(){super(...arguments),this._reader=new Gbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var j4=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Ybe=J("stream"),qbe=ZP(),Jbe=hw(),hk=class extends Jbe.default{constructor(){super(...arguments),this._reader=new qbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new Ybe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var Y4=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var Wbe=vc(),zbe=qP(),Vbe=zP(),dk=class extends Vbe.default{constructor(){super(...arguments),this._walkSync=zbe.walkSync,this._statSync=Wbe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var q4=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var Xbe=Y4(),Zbe=hw(),mk=class extends Zbe.default{constructor(){super(...arguments),this._reader=new Xbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var J4=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var Qf=J("fs"),_be=J("os"),$be=_be.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Qf.lstat,lstatSync:Qf.lstatSync,stat:Qf.stat,statSync:Qf.statSync,readdir:Qf.readdir,readdirSync:Qf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$be),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((jrt,z4)=>{"use strict";var W4=_W(),eSe=G4(),tSe=j4(),rSe=q4(),yk=J4(),xc=Ma();async function wk(r,e){bf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){bf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){bf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){bf(o);let l=[].concat(o),c=new yk.default(a);return W4.generate(l,c)}r.generateTasks=i;function n(o,a){bf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return bf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=W4.generate(i,n),o=new e(n);return s.map(o.read,o)}function bf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}z4.exports=wk});var X4=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),V4=J("fs");async function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(V4[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return V4[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=Qk.bind(null,"stat","isFile");Pc.isDirectory=Qk.bind(null,"stat","isDirectory");Pc.isSymlink=Qk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=bk.bind(null,"statSync","isFile");Pc.isDirectorySync=bk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=bk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),Z4=X4(),_4=r=>r.length>1?`{${r.join(",")}}`:r[0],$4=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_4(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_4(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await Z4.isDirectory($4(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>Z4.isDirectorySync($4(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6<t.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(r,e)=>`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],QSe=wSe(g8.readFile),bSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(bSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await QSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Tk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Tk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=yW(),DSe=sP(),Ew=pw(),Iw=t8(),Nk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",TSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},NSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),TSe(r),NSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],Q8=r=>r&&r.gitignore?Nk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Nk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=Q8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=Q8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Nk});var xn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var j8=I((dit,G8)=>{var tve=Is(),rve=function(){return tve.Date.now()};G8.exports=rve});var q8=I((Cit,Y8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Tc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Tc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Nc=I((wit,iz)=>{var tz=Tc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((Qit,sz)=>{var wve=Nc(),Bve=Jo(),Qve="[object Symbol]";function bve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==Qve}sz.exports=bve});var lz=I((bit,Az)=>{var Sve=W8(),oz=xn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=xn(),zk=j8(),cz=lz(),Tve="Expected a function",Nve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Tve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Nve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=xn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((ja,jw)=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});var Qz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return Qz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Qz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:bz}=Object.prototype,mC=r=>{let e=bz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(bz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var Ge=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};ja.assert={undefined:r=>Ge(V.undefined(r),"undefined",r),string:r=>Ge(V.string(r),"string",r),number:r=>Ge(V.number(r),"number",r),bigint:r=>Ge(V.bigint(r),"bigint",r),function_:r=>Ge(V.function_(r),"Function",r),null_:r=>Ge(V.null_(r),"null",r),class_:r=>Ge(V.class_(r),"Class",r),boolean:r=>Ge(V.boolean(r),"boolean",r),symbol:r=>Ge(V.symbol(r),"symbol",r),numericString:r=>Ge(V.numericString(r),"string with a number",r),array:(r,e)=>{Ge(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>Ge(V.buffer(r),"Buffer",r),nullOrUndefined:r=>Ge(V.nullOrUndefined(r),"null or undefined",r),object:r=>Ge(V.object(r),"Object",r),iterable:r=>Ge(V.iterable(r),"Iterable",r),asyncIterable:r=>Ge(V.asyncIterable(r),"AsyncIterable",r),generator:r=>Ge(V.generator(r),"Generator",r),asyncGenerator:r=>Ge(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>Ge(V.nativePromise(r),"native Promise",r),promise:r=>Ge(V.promise(r),"Promise",r),generatorFunction:r=>Ge(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>Ge(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>Ge(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>Ge(V.boundFunction(r),"Function",r),regExp:r=>Ge(V.regExp(r),"RegExp",r),date:r=>Ge(V.date(r),"Date",r),error:r=>Ge(V.error(r),"Error",r),map:r=>Ge(V.map(r),"Map",r),set:r=>Ge(V.set(r),"Set",r),weakMap:r=>Ge(V.weakMap(r),"WeakMap",r),weakSet:r=>Ge(V.weakSet(r),"WeakSet",r),int8Array:r=>Ge(V.int8Array(r),"Int8Array",r),uint8Array:r=>Ge(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>Ge(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>Ge(V.int16Array(r),"Int16Array",r),uint16Array:r=>Ge(V.uint16Array(r),"Uint16Array",r),int32Array:r=>Ge(V.int32Array(r),"Int32Array",r),uint32Array:r=>Ge(V.uint32Array(r),"Uint32Array",r),float32Array:r=>Ge(V.float32Array(r),"Float32Array",r),float64Array:r=>Ge(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>Ge(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>Ge(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>Ge(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>Ge(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>Ge(V.dataView(r),"DataView",r),urlInstance:r=>Ge(V.urlInstance(r),"URL",r),urlString:r=>Ge(V.urlString(r),"string with a URL",r),truthy:r=>Ge(V.truthy(r),"truthy",r),falsy:r=>Ge(V.falsy(r),"falsy",r),nan:r=>Ge(V.nan(r),"NaN",r),primitive:r=>Ge(V.primitive(r),"primitive",r),integer:r=>Ge(V.integer(r),"integer",r),safeInteger:r=>Ge(V.safeInteger(r),"integer",r),plainObject:r=>Ge(V.plainObject(r),"plain object",r),typedArray:r=>Ge(V.typedArray(r),"TypedArray",r),arrayLike:r=>Ge(V.arrayLike(r),"array-like",r),domElement:r=>Ge(V.domElement(r),"HTMLElement",r),observable:r=>Ge(V.observable(r),"Observable",r),nodeStream:r=>Ge(V.nodeStream(r),"Node.js Stream",r),infinite:r=>Ge(V.infinite(r),"infinite number",r),emptyArray:r=>Ge(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>Ge(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>Ge(V.emptyString(r),"empty string",r),nonEmptyString:r=>Ge(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>Ge(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>Ge(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>Ge(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>Ge(V.emptySet(r),"empty set",r),nonEmptySet:r=>Ge(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>Ge(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>Ge(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>Ge(V.propertyKey(r),"PropertyKey",r),formData:r=>Ge(V.formData(r),"FormData",r),urlSearchParams:r=>Ge(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>Ge(V.evenInteger(r),"even integer",r),oddInteger:r=>Ge(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>Ge(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>Ge(V.inRange(r,e),"in range",r),any:(r,...e)=>Ge(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>Ge(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(ja.assert,{class:{value:ja.assert.class_},function:{value:ja.assert.function_},null:{value:ja.assert.null_}});ja.default=V;jw.exports=V;jw.exports.default=V;jw.exports.assert=ja.assert});var xz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,bD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),QD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Tz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Nz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Tz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Nz),this._resolve6(e,Nz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a<i&&(i=a)}i!==1/0&&this._tick(i-n)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Fz(e),Mf in e)throw new Error("CacheableLookup has been already installed");e[Mf]=e.createConnection,e[QD]=this,e.createConnection=(t,i)=>("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[QD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[QD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Tz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};bD.exports=qw;bD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,Qxe="text/plain",bxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===bxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Qxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var jz=I((Cnt,Gz)=>{Gz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n<i.length;n++)i[n]=arguments[n];var s=r.apply(this,i),o=i[i.length-1];return typeof s=="function"&&s!==o&&Object.keys(o).forEach(function(a){s[a]=o[a]}),s}}});var xD=I((mnt,vD)=>{var Yz=jz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Txe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Nxe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Txe(r))return r.close(EC);if(Nxe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s<r.length-1,a=s>0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((Qnt,e5)=>{"use strict";var Gxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),jxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Yxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Yxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&jxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||Gxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||i<t?0:Math.max(e,(i-t)/1e3)}if(this._resHeaders["last-modified"]){let i=Date.parse(this._resHeaders["last-modified"]);if(isFinite(i)&&t>i)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((bnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},TD=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=TD});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),ND=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=ND.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new ND(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=ND.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Nnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,Q5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),on=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i<n;){let s=i+n>>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].length<e[ws].length&&t[ws].every(i=>e[ws].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].length<t[ws].length&&e[ws].every(i=>t[ws].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]<o.remoteSettings.maxConcurrentStreams;return e?a:!a});s.length!==0&&(t[i]=s)}return t},B5=r=>{r[Uf]=!0,r[on]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount<this.maxSessions&&!i.completed&&(i.completed=!0,i())}getSession(e,t,i){return new Promise((n,s)=>{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m<g)break;if(d[ws].includes(a)){let y=d[on];if(y>=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[on]=0,h[Uf]=!1;let p=()=>h[on]<h.remoteSettings.maxConcurrentStreams,d=!0;h.socket.once("session",y=>{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[on],h[on]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[on],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[on]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=on;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var jD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),GD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};b5.exports=GD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((Gnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:QPe}=J("stream"),{Agent:F5,globalAgent:bPe}=HD(),SPe=jD(),vPe=YD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:T5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:N5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:TPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),NPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends QPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=bPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===TPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[N5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[N5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new T5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new T5("set");if(typeof e!="string"||!NPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var j5=I((Wnt,G5)=>{"use strict";var MPe=J("net");G5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),GPe=j5(),jPe=YD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},YPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=jPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||GPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await YPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=jD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),Gf=Symbol("responseSize"),jf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),QC=Symbol("jobs"),Q6=Symbol("originalResponse"),b6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Qke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function bke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` `).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` `).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` `)}${a.reverse().join(` -`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{Qke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Q6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Gf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?<socketPath>.+?):(?<path>.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),bke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[b6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Gf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[QC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[QC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[b6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[Q6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Gf]/this[jf]:this[jf]===this[Gf]?e=1:e=0,{percent:e,transferred:this[Gf],total:this[jf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Nke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Tke=J("events"),Lke=Ya(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Tke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Nke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var N6=Ya();function T6(r){for(let e of Object.values(r))(N6.default.plainObject(e)||N6.default.array(e))&&T6(e);return Object.freeze(r)}BR.default=T6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var QR=I(Qs=>{"use strict";var Gke=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Gke(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c<o.requestLimit;){c!==0&&await zke(o.backoff);let u=await e(void 0,void 0,s),g=await o.transform(u),h=[];for(let d of g)if(o.filter(d,a,h)&&(!o.shouldContinue(d,a,h)||(yield d,o.stackAllItems&&a.push(d),h.push(d),--l<=0)))return;let p=o.paginate(u,a,h);if(p===!1)return;p===u.request.options?s=u.request.options:p!==void 0&&(s=fB(void 0,p,s)),c++}};e.paginate=t,e.paginate.all=async(i,n)=>{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};Qs.default=j6;Yke(M6(),Qs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),G6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=QR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},bR=Y6.default(eDe);qa.default=bR;pB.exports=bR;pB.exports.default=bR;pB.exports.__esModule=!0;G6(QR(),qa);G6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l<c;++l){var u=e.requests[l];if(u.host===a.host&&u.port===a.port){e.requests.splice(l,1),u.request.onSocket(i);return}}i.destroy(),e.removeSocket(i)})}iDe.inherits(Ja,rDe.EventEmitter);Ja.prototype.addRequest=function(e,t,i,n){var s=this,o=vR({request:e},s.options,W6(t,i,n));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e<t;++e){var i=arguments[e];if(typeof i=="object")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(r[a]=i[a])}}return r}var _A;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?_A=function(){var r=Array.prototype.slice.call(arguments);typeof r[0]=="string"?r[0]="TUNNEL: "+r[0]:r.unshift("TUNNEL:"),console.error.apply(console,r)}:_A=function(){};Wf.debug=_A});var X6=I((yst,V6)=>{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&yr("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:yr("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||yr("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at<k.length;at++){var Ue=T[w[at]];Ue?(it===0&&(it=tS()),Oe[at]=Ue(k[at])):Oe[at]=k[at]}var Ve=Ie.apply(null,Oe);return Ve=ee(Ve),it!==0&&rS(it),Ve}function ce(f,E,w,k){w=w||[];var L=w.every(function(ee){return ee==="number"}),T=E!=="string";return T&&L&&!k?O(f):function(){return N(f,E,w,arguments,k)}}var he=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(f,E,w){for(var k=E+w,L=E;f[L]&&!(L>=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E<L;){var ee=f[E++];if(!(ee&128)){T+=String.fromCharCode(ee);continue}var Ie=f[E++]&63;if((ee&224)==192){T+=String.fromCharCode((ee&31)<<6|Ie);continue}var Oe=f[E++]&63;if((ee&240)==224?ee=(ee&15)<<12|Ie<<6|Oe:ee=(ee&7)<<18|Ie<<12|Oe<<6|f[E++]&63,ee<65536)T+=String.fromCharCode(ee);else{var it=ee-65536;T+=String.fromCharCode(55296|it>>10,56320|it&1023)}}return T}function De(f,E){return f?Pe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee<f.length;++ee){var Ie=f.charCodeAt(ee);if(Ie>=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w<f.length;++w){var k=f.charCodeAt(w);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,G,fe,re,de,Ze,vt,mt;function Lr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=G=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!b.init.initialized&&b.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function yr(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Nl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Nl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){yr(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var T=ee.toString();throw P("failed to compile wasm module: "+T),(T.includes("imported Memory")||T.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function Qp(){var f={a:da};function E(L,T){var ee=L.exports;t.asm=ee,A=t.asm.u,Lr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Sr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Nn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Nn.GMTString||(Nn.GMTString=ye("GMT")),de[E+40>>2]=Nn.GMTString,E}function ae(f,E){return Nn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Tl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){yr("randomDevice")}}var Tn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:b.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Tn.resolve(f).substr(1),E=Tn.resolve(E).substr(1);function w(it){for(var at=0;at<it.length&&it[at]==="";at++);for(var Ue=it.length-1;Ue>=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),T=Math.min(k.length,L.length),ee=T,Ie=0;Ie<T;Ie++)if(k[Ie]!==L[Ie]){ee=Ie;break}for(var Oe=[],Ie=ee;Ie<k.length;Ie++)Oe.push("..");return Oe=Oe.concat(L.slice(ee)),Oe.join("/")}},ns={ttys:[],init:function(){},shutdown:function(){},register:function(f,E){ns.ttys[f]={input:[],output:[],ops:E},b.registerDevice(f,ns.stream_ops)},stream_ops:{open:function(f){var E=ns.ttys[f.node.rdev];if(!E)throw new b.ErrnoError(43);f.tty=E,f.seekable=!1},close:function(f){f.tty.ops.flush(f.tty)},flush:function(f){f.tty.ops.flush(f.tty)},read:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.get_char)throw new b.ErrnoError(60);for(var T=0,ee=0;ee<k;ee++){var Ie;try{Ie=f.tty.ops.get_char(f.tty)}catch{throw new b.ErrnoError(29)}if(Ie===void 0&&T===0)throw new b.ErrnoError(6);if(Ie==null)break;T++,E[w+ee]=Ie}return T&&(f.node.timestamp=Date.now()),T},write:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.put_char)throw new b.ErrnoError(60);try{for(var T=0;T<k;T++)f.tty.ops.put_char(f.tty,E[w+T])}catch{throw new b.ErrnoError(29)}return k&&(f.node.timestamp=Date.now()),T}},default_tty_ops:{get_char:function(f){if(!f.input.length){var E=null;if(g){var w=256,k=Buffer.alloc?Buffer.alloc(w):new Buffer(w),L=0;try{L=y.readSync(process.stdin.fd,k,0,w,null)}catch(T){if(T.toString().includes("EOF"))L=0;else throw T}L>0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[jf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{Qke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Q6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[Gf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[Gf]=this[jf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?<socketPath>.+?):(?<path>.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),bke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[b6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[jf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[QC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[QC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[b6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[Q6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[Gf]?e=this[jf]/this[Gf]:this[Gf]===this[jf]?e=1:e=0,{percent:e,transferred:this[jf],total:this[Gf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Tke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Nke=J("events"),Lke=Ya(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Nke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Tke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function Gke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=Gke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var T6=Ya();function N6(r){for(let e of Object.values(r))(T6.default.plainObject(e)||T6.default.array(e))&&N6(e);return Object.freeze(r)}BR.default=N6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var QR=I(Qs=>{"use strict";var jke=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&jke(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},G6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),G6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c<o.requestLimit;){c!==0&&await zke(o.backoff);let u=await e(void 0,void 0,s),g=await o.transform(u),h=[];for(let d of g)if(o.filter(d,a,h)&&(!o.shouldContinue(d,a,h)||(yield d,o.stackAllItems&&a.push(d),h.push(d),--l<=0)))return;let p=o.paginate(u,a,h);if(p===!1)return;p===u.request.options?s=u.request.options:p!==void 0&&(s=fB(void 0,p,s)),c++}};e.paginate=t,e.paginate.all=async(i,n)=>{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};Qs.default=G6;Yke(M6(),Qs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),j6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=QR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},bR=Y6.default(eDe);qa.default=bR;pB.exports=bR;pB.exports.default=bR;pB.exports.__esModule=!0;j6(QR(),qa);j6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l<c;++l){var u=e.requests[l];if(u.host===a.host&&u.port===a.port){e.requests.splice(l,1),u.request.onSocket(i);return}}i.destroy(),e.removeSocket(i)})}iDe.inherits(Ja,rDe.EventEmitter);Ja.prototype.addRequest=function(e,t,i,n){var s=this,o=vR({request:e},s.options,W6(t,i,n));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e<t;++e){var i=arguments[e];if(typeof i=="object")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(r[a]=i[a])}}return r}var _A;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?_A=function(){var r=Array.prototype.slice.call(arguments);typeof r[0]=="string"?r[0]="TUNNEL: "+r[0]:r.unshift("TUNNEL:"),console.error.apply(console,r)}:_A=function(){};Wf.debug=_A});var X6=I((yst,V6)=>{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&yr("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:yr("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||yr("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function T(f,E,w,k,L){var N={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=jE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=jE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at<k.length;at++){var Ue=N[w[at]];Ue?(it===0&&(it=tS()),Oe[at]=Ue(k[at])):Oe[at]=k[at]}var Ve=Ie.apply(null,Oe);return Ve=ee(Ve),it!==0&&rS(it),Ve}function ce(f,E,w,k){w=w||[];var L=w.every(function(ee){return ee==="number"}),N=E!=="string";return N&&L&&!k?O(f):function(){return T(f,E,w,arguments,k)}}var he=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(f,E,w){for(var k=E+w,L=E;f[L]&&!(L>=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var N="";E<L;){var ee=f[E++];if(!(ee&128)){N+=String.fromCharCode(ee);continue}var Ie=f[E++]&63;if((ee&224)==192){N+=String.fromCharCode((ee&31)<<6|Ie);continue}var Oe=f[E++]&63;if((ee&240)==224?ee=(ee&15)<<12|Ie<<6|Oe:ee=(ee&7)<<18|Ie<<12|Oe<<6|f[E++]&63,ee<65536)N+=String.fromCharCode(ee);else{var it=ee-65536;N+=String.fromCharCode(55296|it>>10,56320|it&1023)}}return N}function De(f,E){return f?Pe(j,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,N=w+k-1,ee=0;ee<f.length;++ee){var Ie=f.charCodeAt(ee);if(Ie>=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=N)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=N)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=N)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=N)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,j,E,w)}function Ae(f){for(var E=0,w=0;w<f.length;++w){var k=f.charCodeAt(w);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,j,fe,re,de,Ze,vt,mt;function Lr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=j=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!b.init.initialized&&b.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function yr(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Tl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Tl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){yr(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var N=ee.toString();throw P("failed to compile wasm module: "+N),(N.includes("imported Memory")||N.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function Qp(){var f={a:da};function E(L,N){var ee=L.exports;t.asm=ee,A=t.asm.u,Lr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Sr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Tn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Tn.GMTString||(Tn.GMTString=ye("GMT")),de[E+40>>2]=Tn.GMTString,E}function ae(f,E){return Tn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Nl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){yr("randomDevice")}}var Nn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:b.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Nn.resolve(f).substr(1),E=Nn.resolve(E).substr(1);function w(it){for(var at=0;at<it.length&&it[at]==="";at++);for(var Ue=it.length-1;Ue>=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),N=Math.min(k.length,L.length),ee=N,Ie=0;Ie<N;Ie++)if(k[Ie]!==L[Ie]){ee=Ie;break}for(var Oe=[],Ie=ee;Ie<k.length;Ie++)Oe.push("..");return Oe=Oe.concat(L.slice(ee)),Oe.join("/")}},ns={ttys:[],init:function(){},shutdown:function(){},register:function(f,E){ns.ttys[f]={input:[],output:[],ops:E},b.registerDevice(f,ns.stream_ops)},stream_ops:{open:function(f){var E=ns.ttys[f.node.rdev];if(!E)throw new b.ErrnoError(43);f.tty=E,f.seekable=!1},close:function(f){f.tty.ops.flush(f.tty)},flush:function(f){f.tty.ops.flush(f.tty)},read:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.get_char)throw new b.ErrnoError(60);for(var N=0,ee=0;ee<k;ee++){var Ie;try{Ie=f.tty.ops.get_char(f.tty)}catch{throw new b.ErrnoError(29)}if(Ie===void 0&&N===0)throw new b.ErrnoError(6);if(Ie==null)break;N++,E[w+ee]=Ie}return N&&(f.node.timestamp=Date.now()),N},write:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.put_char)throw new b.ErrnoError(60);try{for(var N=0;N<k;N++)f.tty.ops.put_char(f.tty,E[w+N])}catch{throw new b.ErrnoError(29)}return k&&(f.node.timestamp=Date.now()),N}},default_tty_ops:{get_char:function(f){if(!f.input.length){var E=null;if(g){var w=256,k=Buffer.alloc?Buffer.alloc(w):new Buffer(w),L=0;try{L=y.readSync(process.stdin.fd,k,0,w,null)}catch(N){if(N.toString().includes("EOF"))L=0;else throw N}L>0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` `)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f<E;)ie[w+f++]=0;return w}var ut={ops_table:null,mount:function(f){return ut.createNode(null,"/",16895,0)},createNode:function(f,E,w,k){if(b.isBlkdev(w)||b.isFIFO(w))throw new b.ErrnoError(63);ut.ops_table||(ut.ops_table={dir:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,lookup:ut.node_ops.lookup,mknod:ut.node_ops.mknod,rename:ut.node_ops.rename,unlink:ut.node_ops.unlink,rmdir:ut.node_ops.rmdir,readdir:ut.node_ops.readdir,symlink:ut.node_ops.symlink},stream:{llseek:ut.stream_ops.llseek}},file:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:{llseek:ut.stream_ops.llseek,read:ut.stream_ops.read,write:ut.stream_ops.write,allocate:ut.stream_ops.allocate,mmap:ut.stream_ops.mmap,msync:ut.stream_ops.msync}},link:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,readlink:ut.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:b.chrdev_stream_ops}});var L=b.createNode(f,E,w,k);return b.isDir(L.mode)?(L.node_ops=ut.ops_table.dir.node,L.stream_ops=ut.ops_table.dir.stream,L.contents={}):b.isFile(L.mode)?(L.node_ops=ut.ops_table.file.node,L.stream_ops=ut.ops_table.file.stream,L.usedBytes=0,L.contents=null):b.isLink(L.mode)?(L.node_ops=ut.ops_table.link.node,L.stream_ops=ut.ops_table.link.stream):b.isChrdev(L.mode)&&(L.node_ops=ut.ops_table.chrdev.node,L.stream_ops=ut.ops_table.chrdev.stream),L.timestamp=Date.now(),f&&(f.contents[E]=L,f.timestamp=L.timestamp),L},getFileDataAsTypedArray:function(f){return f.contents?f.contents.subarray?f.contents.subarray(0,f.usedBytes):new Uint8Array(f.contents):new Uint8Array(0)},expandFileStorage:function(f,E){var w=f.contents?f.contents.length:0;if(!(w>=E)){var k=1024*1024;E=Math.max(E,w*(w<k?2:1.125)>>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie<ee;Ie++)E[w+Ie]=T[L+Ie];return ee},write:function(f,E,w,k,L,T){if(E.buffer===ie.buffer&&(T=!1),!k)return 0;var ee=f.node;if(ee.timestamp=Date.now(),E.subarray&&(!ee.contents||ee.contents.subarray)){if(T)return ee.contents=E.subarray(w,w+k),ee.usedBytes=k,k;if(ee.usedBytes===0&&L===0)return ee.contents=E.slice(w,w+k),ee.usedBytes=k,k;if(L+k<=ee.usedBytes)return ee.contents.set(E.subarray(w,w+k),L),k}if(ut.expandFileStorage(ee,L+k),ee.contents.subarray&&E.subarray)ee.contents.set(E.subarray(w,w+k),L);else for(var Ie=0;Ie<k;Ie++)ee.contents[L+Ie]=E[w+Ie];return ee.usedBytes=Math.max(ee.usedBytes,L+k),k},llseek:function(f,E,w){var k=E;if(w===1?k+=f.position:w===2&&b.isFile(f.node.mode)&&(k+=f.node.usedBytes),k<0)throw new b.ErrnoError(28);return k},allocate:function(f,E,w){ut.expandFileStorage(f.node,E+w),f.node.usedBytes=Math.max(f.node.usedBytes,E+w)},mmap:function(f,E,w,k,L,T){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee,Ie,Oe=f.node.contents;if(!(T&2)&&Oe.buffer===Ye)Ie=!1,ee=Oe.byteOffset;else{if((k>0||k+w<Oe.length)&&(Oe.subarray?Oe=Oe.subarray(k,k+w):Oe=Array.prototype.slice.call(Oe,k,k+w)),Ie=!0,ee=ss(w),!ee)throw new b.ErrnoError(48);ie.set(Oe,ee)}return{ptr:ee,allocated:Ie}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var T=ut.stream_ops.write(f,E,0,k,w,!1);return 0}}},wo={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},At={isWindows:!1,staticInit:function(){At.isWindows=!!process.platform.match(/^win/);var f={fs:Ne.constants};f.fs&&(f=f.fs),At.flagsForNodeMap={1024:f.O_APPEND,64:f.O_CREAT,128:f.O_EXCL,256:f.O_NOCTTY,0:f.O_RDONLY,2:f.O_RDWR,4096:f.O_SYNC,512:f.O_TRUNC,1:f.O_WRONLY}},bufferFrom:function(f){return Buffer.alloc?Buffer.from(f):new Buffer(f)},convertNodeCode:function(f){var E=f.code;return wo[E]},mount:function(f){return At.createNode(null,"/",At.getMode(f.opts.root),0)},createNode:function(f,E,w,k){if(!b.isDir(w)&&!b.isFile(w)&&!b.isLink(w))throw new b.ErrnoError(28);var L=b.createNode(f,E,w);return L.node_ops=At.node_ops,L.stream_ops=At.stream_ops,L},getMode:function(f){var E;try{E=Ne.lstatSync(f),At.isWindows&&(E.mode=E.mode|(E.mode&292)>>2)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new b.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Ne.lstatSync(E)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Ne.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Ne.utimesSync(w,k,k)}E.size!==void 0&&Ne.truncateSync(w,E.size)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),T=At.realPath(L);try{b.isDir(L.mode)?Ne.mkdirSync(T,L.mode):Ne.writeFileSync(T,"",{mode:L.mode})}catch(ee){throw ee.code?new b.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Ne.renameSync(k,L)}catch(T){throw T.code?new b.ErrnoError(At.convertNodeCode(T)):T}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.unlinkSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.rmdirSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Ne.readdirSync(E)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Ne.symlinkSync(w,k)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Ne.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{b.isFile(f.node.mode)&&(f.nfd=Ne.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{b.isFile(f.node.mode)&&f.nfd&&Ne.closeSync(f.nfd)}catch(E){throw E.code?new b.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}},write:function(f,E,w,k,L){try{return Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&b.isFile(f.node.mode))try{var L=Ne.fstatSync(f.nfd);k+=L.size}catch(T){throw new b.ErrnoError(At.convertNodeCode(T))}if(k<0)throw new b.ErrnoError(28);return k},mmap:function(f,E,w,k,L,T){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var T=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},ln={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){b.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)b.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){b.isDir(f)?Ne.mkdirSync(f,E):Ne.writeFileSync(f,"",{mode:E})},mkdir:function(){Ne.mkdirSync.apply(void 0,arguments)},symlink:function(){Ne.symlinkSync.apply(void 0,arguments)},rename:function(){Ne.renameSync.apply(void 0,arguments)},rmdir:function(){Ne.rmdirSync.apply(void 0,arguments)},readdir:function(){Ne.readdirSync.apply(void 0,arguments)},unlink:function(){Ne.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ne.readlinkSync.apply(void 0,arguments)},stat:function(){return Ne.statSync.apply(void 0,arguments)},lstat:function(){return Ne.lstatSync.apply(void 0,arguments)},chmod:function(){Ne.chmodSync.apply(void 0,arguments)},fchmod:function(){Ne.fchmodSync.apply(void 0,arguments)},chown:function(){Ne.chownSync.apply(void 0,arguments)},fchown:function(){Ne.fchownSync.apply(void 0,arguments)},truncate:function(){Ne.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new b.ErrnoError(28);Ne.ftruncateSync.apply(void 0,arguments)},utime:function(){Ne.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Ne.openSync(f,At.flagsForNode(E),w),T=k!=null?k:b.nextfd(L),ee={fd:T,nfd:L,position:0,path:f,flags:E,seekable:!0};return b.streams[T]=ee,ee},close:function(f){f.stream_ops||Ne.closeSync(f.nfd),b.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Ne.fstatSync(f.nfd).size;else if(w!==0)throw new b.ErrnoError(wo.EINVAL);if(k<0)throw new b.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&b.llseek(f,0,+"2");var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},allocate:function(){throw new b.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,T){if(f.stream_ops)return Us.mmap(f,E,w,k,L,T);if(E!==0)throw new b.ErrnoError(28);var ee=ss(w);return b.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||b.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new b.ErrnoError(wo.ENOTTY)}},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Tn.resolve(b.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new b.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),T=b.root,ee="/",Ie=0;Ie<L.length;Ie++){var Oe=Ie===L.length-1;if(Oe&&E.parent)break;if(T=b.lookupNode(T,L[Ie]),ee=yt.join2(ee,L[Ie]),b.isMountpoint(T)&&(!Oe||Oe&&E.follow_mount)&&(T=T.mounted.root),!Oe||E.follow)for(var it=0;b.isLink(T.mode);){var at=b.readlink(ee);ee=Tn.resolve(yt.dirname(ee),at);var Ue=b.lookupPath(ee,{recurse_count:E.recurse_count});if(T=Ue.node,it++>40)throw new b.ErrnoError(32)}}return{path:ee,node:T}},getPath:function(f){for(var E;;){if(b.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k<E.length;k++)w=(w<<5)-w+E.charCodeAt(k)|0;return(f+w>>>0)%b.nameTable.length},hashAddNode:function(f){var E=b.hashName(f.parent.id,f.name);f.name_next=b.nameTable[E],b.nameTable[E]=f},hashRemoveNode:function(f){var E=b.hashName(f.parent.id,f.name);if(b.nameTable[E]===f)b.nameTable[E]=f.name_next;else for(var w=b.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=b.mayLookup(f);if(w)throw new b.ErrnoError(w,f);for(var k=b.hashName(f.id,E),L=b.nameTable[k];L;L=L.name_next){var T=L.name;if(L.parent.id===f.id&&T===E)return L}return b.lookup(f,E)},createNode:function(f,E,w,k){var L=new b.FSNode(f,E,w,k);return b.hashAddNode(L),L},destroyNode:function(f){b.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=b.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return b.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=b.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=b.lookupNode(f,E);return 20}catch{}return b.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=b.lookupNode(f,E)}catch(T){return T.errno}var L=b.nodePermissions(f,"wx");if(L)return L;if(w){if(!b.isDir(k.mode))return 54;if(b.isRoot(k)||b.getPath(k)===b.cwd())return 10}else if(b.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?b.isLink(f.mode)?32:b.isDir(f.mode)&&(b.flagsToPermissionString(E)!=="r"||E&512)?31:b.nodePermissions(f,b.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||b.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!b.streams[w])return w;throw new b.ErrnoError(33)},getStream:function(f){return b.streams[f]},createStream:function(f,E,w){b.FSStream||(b.FSStream=function(){},b.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new b.FSStream;for(var L in f)k[L]=f[L];f=k;var T=b.nextfd(E,w);return f.fd=T,b.streams[T]=f,f},closeStream:function(f){b.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=b.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new b.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){b.devices[f]={stream_ops:E}},getDevice:function(f){return b.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),b.syncFSRequests++,b.syncFSRequests>1&&P("warning: "+b.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=b.getMounts(b.root.mount),k=0;function L(ee){return b.syncFSRequests--,E(ee)}function T(ee){if(ee)return T.errored?void 0:(T.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return T(null);ee.type.syncfs(ee,f,T)})},mount:function(f,E,w){var k=w==="/",L=!w,T;if(k&&b.root)throw new b.ErrnoError(10);if(!k&&!L){var ee=b.lookupPath(w,{follow_mount:!1});if(w=ee.path,T=ee.node,b.isMountpoint(T))throw new b.ErrnoError(10);if(!b.isDir(T.mode))throw new b.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?b.root=Oe:T&&(T.mounted=Ie,T.mount&&T.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=b.lookupPath(f,{follow_mount:!1});if(!b.isMountpoint(E.node))throw new b.ErrnoError(28);var w=E.node,k=w.mounted,L=b.getMounts(k);Object.keys(b.nameTable).forEach(function(ee){for(var Ie=b.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&b.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var T=w.mount.mounts.indexOf(k);w.mount.mounts.splice(T,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=b.lookupPath(f,{parent:!0}),L=k.node,T=yt.basename(f);if(!T||T==="."||T==="..")throw new b.ErrnoError(28);var ee=b.mayCreate(L,T);if(ee)throw new b.ErrnoError(ee);if(!L.node_ops.mknod)throw new b.ErrnoError(63);return L.node_ops.mknod(L,T,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,b.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,b.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L<w.length;++L)if(!!w[L]){k+="/"+w[L];try{b.mkdir(k,E)}catch(T){if(T.errno!=20)throw T}}},mkdev:function(f,E,w){return typeof w>"u"&&(w=E,E=438),E|=8192,b.mknod(f,E,w)},symlink:function(f,E){if(!Tn.resolve(f))throw new b.ErrnoError(44);var w=b.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new b.ErrnoError(44);var L=yt.basename(E),T=b.mayCreate(k,L);if(T)throw new b.ErrnoError(T);if(!k.node_ops.symlink)throw new b.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),T=yt.basename(E),ee,Ie,Oe;if(ee=b.lookupPath(f,{parent:!0}),Ie=ee.node,ee=b.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new b.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new b.ErrnoError(75);var it=b.lookupNode(Ie,L),at=Tn.relative(f,k);if(at.charAt(0)!==".")throw new b.ErrnoError(28);if(at=Tn.relative(E,w),at.charAt(0)!==".")throw new b.ErrnoError(55);var Ue;try{Ue=b.lookupNode(Oe,T)}catch{}if(it!==Ue){var Ve=b.isDir(it.mode),nt=b.mayDelete(Ie,L,Ve);if(nt)throw new b.ErrnoError(nt);if(nt=Ue?b.mayDelete(Oe,T,Ve):b.mayCreate(Oe,T),nt)throw new b.ErrnoError(nt);if(!Ie.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(it)||Ue&&b.isMountpoint(Ue))throw new b.ErrnoError(10);if(Oe!==Ie&&(nt=b.nodePermissions(Ie,"w"),nt))throw new b.ErrnoError(nt);try{b.trackingDelegate.willMovePath&&b.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}b.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,T)}catch(wt){throw wt}finally{b.hashAddNode(it)}try{b.trackingDelegate.onMovePath&&b.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),T=b.mayDelete(w,k,!0);if(T)throw new b.ErrnoError(T);if(!w.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=b.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new b.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),T=b.mayDelete(w,k,!1);if(T)throw new b.ErrnoError(T);if(!w.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=b.lookupPath(f),w=E.node;if(!w)throw new b.ErrnoError(44);if(!w.node_ops.readlink)throw new b.ErrnoError(28);return Tn.resolve(b.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=b.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new b.ErrnoError(44);if(!k.node_ops.getattr)throw new b.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return b.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=b.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new b.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){b.chmod(f,E,!0)},fchmod:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);b.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var T=b.lookupPath(f,{follow:!k});L=T.node}else L=f;if(!L.node_ops.setattr)throw new b.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){b.chown(f,E,w,!0)},fchown:function(f,E,w){var k=b.getStream(f);if(!k)throw new b.ErrnoError(8);b.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new b.ErrnoError(28);var w;if(typeof f=="string"){var k=b.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(w.mode))throw new b.ErrnoError(31);if(!b.isFile(w.mode))throw new b.ErrnoError(28);var L=b.nodePermissions(w,"w");if(L)throw new b.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);if((w.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(w.node,E)},utime:function(f,E,w){var k=b.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new b.ErrnoError(44);E=typeof E=="string"?b.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var T;if(typeof f=="object")T=f;else{f=yt.normalize(f);try{var ee=b.lookupPath(f,{follow:!(E&131072)});T=ee.node}catch{}}var Ie=!1;if(E&64)if(T){if(E&128)throw new b.ErrnoError(20)}else T=b.mknod(f,w,0),Ie=!0;if(!T)throw new b.ErrnoError(44);if(b.isChrdev(T.mode)&&(E&=-513),E&65536&&!b.isDir(T.mode))throw new b.ErrnoError(54);if(!Ie){var Oe=b.mayOpen(T,E);if(Oe)throw new b.ErrnoError(Oe)}E&512&&b.truncate(T,0),E&=-131713;var it=b.createStream({node:T,path:b.getPath(T),flags:E,seekable:!0,position:0,stream_ops:T.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(b.readFiles||(b.readFiles={}),f in b.readFiles||(b.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(b.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=b.tracking.openFlags.READ),(E&2097155)!==0&&(at|=b.tracking.openFlags.WRITE),b.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(b.isClosed(f))throw new b.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{b.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new b.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new b.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.read)throw new b.ErrnoError(28);var T=typeof L<"u";if(!T)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L,T){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.write)throw new b.ErrnoError(28);f.seekable&&f.flags&1024&&b.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,T);ee||(f.position+=Ie);try{f.path&&b.trackingDelegate.onWriteToFile&&b.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(E<0||w<=0)throw new b.ErrnoError(28);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(f.node.mode)&&!b.isDir(f.node.mode))throw new b.ErrnoError(43);if(!f.stream_ops.allocate)throw new b.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,T){if((L&2)!==0&&(T&2)===0&&(f.flags&2097155)!==2)throw new b.ErrnoError(2);if((f.flags&2097155)===1)throw new b.ErrnoError(2);if(!f.stream_ops.mmap)throw new b.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,T)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new b.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=b.open(f,E.flags),L=b.stat(f),T=L.size,ee=new Uint8Array(T);return b.read(k,ee,0,T,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),b.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=b.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),T=Re(E,L,0,L.length);b.write(k,L,0,T,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))b.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");b.close(k)},cwd:function(){return b.currentPath},chdir:function(f){var E=b.lookupPath(f,{follow:!0});if(E.node===null)throw new b.ErrnoError(44);if(!b.isDir(E.node.mode))throw new b.ErrnoError(54);var w=b.nodePermissions(E.node,"x");if(w)throw new b.ErrnoError(w);b.currentPath=E.path},createDefaultDirectories:function(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:function(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,T){return L}}),b.mkdev("/dev/null",b.makedev(1,3)),ns.register(b.makedev(5,0),ns.default_tty_ops),ns.register(b.makedev(6,0),ns.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var f=Tl();b.createDevice("/dev","random",f),b.createDevice("/dev","urandom",f),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){b.mkdir("/proc");var f=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:function(){var E=b.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,T=b.getStream(L);if(!T)throw new b.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return T.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?b.createDevice("/dev","stdin",t.stdin):b.symlink("/dev/tty","/dev/stdin"),t.stdout?b.createDevice("/dev","stdout",null,t.stdout):b.symlink("/dev/tty","/dev/stdout"),t.stderr?b.createDevice("/dev","stderr",null,t.stderr):b.symlink("/dev/tty1","/dev/stderr");var f=b.open("/dev/stdin",0),E=b.open("/dev/stdout",1),w=b.open("/dev/stderr",1)},ensureErrnoError:function(){b.ErrnoError||(b.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(function(f){b.genericErrors[f]=new b.ErrnoError(f),b.genericErrors[f].stack="<generic error, no stack>"}))},staticInit:function(){b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(ut,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){b.init.initialized=!0,b.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,b.createStandardStreams()},quit:function(){b.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;E<b.streams.length;E++){var w=b.streams[E];!w||b.close(w)}},getMode:function(f,E){var w=0;return f&&(w|=365),E&&(w|=146),w},findObject:function(f,E){var w=b.analyzePath(f,E);return w.exists?w.object:null},analyzePath:function(f,E){try{var w=b.lookupPath(f,{follow:!E});f=w.path}catch{}var k={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var w=b.lookupPath(f,{parent:!0});k.parentExists=!0,k.parentPath=w.path,k.parentObject=w.node,k.name=yt.basename(f),w=b.lookupPath(f,{follow:!E}),k.exists=!0,k.path=w.path,k.object=w.node,k.name=w.node.name,k.isRoot=w.path==="/"}catch(L){k.error=L.errno}return k},createPath:function(f,E,w,k){f=typeof f=="string"?f:b.getPath(f);for(var L=E.split("/").reverse();L.length;){var T=L.pop();if(!!T){var ee=yt.join2(f,T);try{b.mkdir(ee)}catch{}f=ee}}return ee},createFile:function(f,E,w,k,L){var T=yt.join2(typeof f=="string"?f:b.getPath(f),E),ee=b.getMode(k,L);return b.create(T,ee)},createDataFile:function(f,E,w,k,L,T){var ee=E?yt.join2(typeof f=="string"?f:b.getPath(f),E):f,Ie=b.getMode(k,L),Oe=b.create(ee,Ie);if(w){if(typeof w=="string"){for(var it=new Array(w.length),at=0,Ue=w.length;at<Ue;++at)it[at]=w.charCodeAt(at);w=it}b.chmod(Oe,Ie|146);var Ve=b.open(Oe,577);b.write(Ve,w,0,w.length,0,T),b.close(Ve),b.chmod(Oe,Ie)}return Oe},createDevice:function(f,E,w,k){var L=yt.join2(typeof f=="string"?f:b.getPath(f),E),T=b.getMode(!!w,!!k);b.createDevice.major||(b.createDevice.major=64);var ee=b.makedev(b.createDevice.major++,0);return b.registerDevice(ee,{open:function(Ie){Ie.seekable=!1},close:function(Ie){k&&k.buffer&&k.buffer.length&&k(10)},read:function(Ie,Oe,it,at,Ue){for(var Ve=0,nt=0;nt<at;nt++){var wt;try{wt=w()}catch{throw new b.ErrnoError(29)}if(wt===void 0&&Ve===0)throw new b.ErrnoError(6);if(wt==null)break;Ve++,Oe[it+nt]=wt}return Ve&&(Ie.node.timestamp=Date.now()),Ve},write:function(Ie,Oe,it,at,Ue){for(var Ve=0;Ve<at;Ve++)try{k(Oe[it+Ve])}catch{throw new b.ErrnoError(29)}return at&&(Ie.node.timestamp=Date.now()),Ve}}),b.mkdev(L,T,ee)},forceLoadFile:function(f){if(f.isDevice||f.isFolder||f.link||f.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(d)try{f.contents=wA(d(f.url),!0),f.usedBytes=f.contents.length}catch{throw new b.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(f,E,w,k,L){function T(){this.lengthKnown=!1,this.chunks=[]}if(T.prototype.get=function(Ve){if(!(Ve>this.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},T.prototype.setDataGetter=function(Ve){this.getter=Ve},T.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",un=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var vr=new XMLHttpRequest;if(vr.open("GET",w,!1),nt!==ii&&vr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(vr.responseType="arraybuffer"),vr.overrideMimeType&&vr.overrideMimeType("text/plain; charset=x-user-defined"),vr.send(null),!(vr.status>=200&&vr.status<300||vr.status===304))throw new Error("Couldn't load "+w+". Status: "+vr.status);return vr.response!==void 0?new Uint8Array(vr.response||[]):wA(vr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,vr=(On+1)*ii-1;if(vr=Math.min(vr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,vr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(un||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new T;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=b.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return b.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,un){b.forceLoadFile(Oe);var ii=Ve.node.contents;if(un>=ii.length)return 0;var Be=Math.min(ii.length-un,Ii);if(ii.slice)for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii[un+yi];else for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii.get(un+yi);return Be},Oe.stream_ops=it,Oe},createPreloadedFile:function(f,E,w,k,L,T,ee,Ie,Oe,it){Browser.init();var at=E?Tn.resolve(yt.join2(f,E)):f,Ue="cp "+at;function Ve(nt){function wt(un){it&&it(),Ie||b.createDataFile(f,E,un,k,L,Oe),T&&T(),IA(Ue)}var Ii=!1;t.preloadPlugins.forEach(function(un){Ii||un.canHandle(at)&&(un.handle(nt,at,wt,function(){ee&&ee(),IA(Ue)}),Ii=!0)}),Ii||wt(nt)}EA(Ue),typeof w=="string"?Browser.asyncLoad(w,function(nt){Ve(nt)},ee):Ve(w)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=b.indexedDB();try{var L=k.open(b.DB_NAME(),b.DB_VERSION)}catch(T){return w(T)}L.onupgradeneeded=function(){S("creating db");var ee=L.result;ee.createObjectStore(b.DB_STORE_NAME)},L.onsuccess=function(){var ee=L.result,Ie=ee.transaction([b.DB_STORE_NAME],"readwrite"),Oe=Ie.objectStore(b.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.put(b.analyzePath(nt).object.contents,nt);wt.onsuccess=function(){it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w},loadFilesFromDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=b.indexedDB();try{var L=k.open(b.DB_NAME(),b.DB_VERSION)}catch(T){return w(T)}L.onupgradeneeded=w,L.onsuccess=function(){var ee=L.result;try{var Ie=ee.transaction([b.DB_STORE_NAME],"readonly")}catch(nt){w(nt);return}var Oe=Ie.objectStore(b.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.get(nt);wt.onsuccess=function(){b.analyzePath(nt).exists&&b.unlink(nt),b.createDataFile(yt.dirname(nt),yt.basename(nt),wt.result,!0,!0,!0),it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w}},Nt={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(f,E,w){if(E[0]==="/")return E;var k;if(f===-100)k=b.cwd();else{var L=b.getStream(f);if(!L)throw new b.ErrnoError(8);k=L.path}if(E.length==0){if(!w)throw new b.ErrnoError(44);return k}return yt.join2(k,E)},doStat:function(f,E,w){try{var k=f(E)}catch(L){if(L&&L.node&&yt.normalize(E)!==yt.normalize(b.getPath(L.node)))return-54;throw L}return de[w>>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Sr=k.size,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Sr=k.ino,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var T=G.slice(f,f+w);b.msync(E,T,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),b.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return b.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=b.readlink(f),L=Math.min(w,Ae(k)),T=ie[E+L];return se(k,E,w+1),ie[E+L]=T,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=b.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&b.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=b.getStream(w);return k&&b.close(k),b.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,T=0;T<w;T++){var ee=de[E+T*8>>2],Ie=de[E+(T*8+4)>>2],Oe=b.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe<Ie)break}return L},doWritev:function(f,E,w,k){for(var L=0,T=0;T<w;T++){var ee=de[E+T*8>>2],Ie=de[E+(T*8+4)>>2],Oe=b.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Nt.varargs+=4;var f=de[Nt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=b.getStream(f);if(!E)throw new b.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Nt.getStr(f),b.chmod(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function bp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 0:{var L=Nt.get();if(L<0)return-28;var T;return T=b.open(k.path,k.flags,0,L),T.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Nt.get();return k.flags|=L,0}case 12:{var L=Nt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof b>"u"||!(Ie instanceof b.ErrnoError))&&yr(Ie),-Ie.errno}}function Sp(f,E){try{var w=Nt.getStreamFromFD(f);return Nt.doStat(b.stat,w.path,E)}catch(k){return(typeof b>"u"||!(k instanceof b.ErrnoError))&&yr(k),-k.errno}}function vp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Nt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Nt.get();return b.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:yr("bad ioctl syscall "+E)}}catch(T){return(typeof b>"u"||!(T instanceof b.ErrnoError))&&yr(T),-T.errno}}function xp(f,E,w){Nt.varargs=w;try{var k=Nt.getStr(f),L=w?Nt.get():0,T=b.open(k,E,L);return T.fd}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),-ee.errno}}function Pp(f,E){try{return f=Nt.getStr(f),E=Nt.getStr(E),b.rename(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function j(f){try{return f=Nt.getStr(f),b.rmdir(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function Et(f,E){try{return f=Nt.getStr(f),Nt.doStat(b.stat,f,E)}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function yA(f){try{return f=Nt.getStr(f),b.unlink(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function zi(f,E,w){G.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Lr(A.buffer),1}catch{}}function ze(f){var E=G.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var T=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(T);if(ee)return!0}return!1}function fa(f){try{var E=Nt.getStreamFromFD(f);return b.close(E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),w.errno}}function dg(f,E){try{var w=Nt.getStreamFromFD(f),k=w.tty?2:b.isDir(w.mode)?3:b.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof b>"u"||!(L instanceof b.ErrnoError))&&yr(L),L.errno}}function OE(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doReadv(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function kp(f,E,w,k,L){try{var T=Nt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(b.llseek(T,Ie,k),Ri=[T.position>>>0,(Sr=T.position,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],T.getdents&&Ie===0&&k===0&&(T.getdents=null),0)}catch(it){return(typeof b>"u"||!(it instanceof b.ErrnoError))&&yr(it),it.errno}}function ME(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doWritev(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),T=Math.max(k,L);de[eS()>>2]=T*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L<k?(de[ql()>>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=b.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,cn=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&cn)===cn},set:function(f){f?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ks,b.staticInit(),g){var Ne=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new b.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},b);for(var Ul in ln)b[Ul]=Kl(ln[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),T=Re(f,L,0,L.length);return E&&(L.length=T),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,T,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,T=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(T));while(at<f.length);return w};function Eg(f){if(typeof g=="boolean"&&g){var E;try{E=Buffer.from(f,"base64")}catch{E=new Buffer(f,"base64")}return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}try{for(var w=mg(f),k=new Uint8Array(w.length),L=0;L<w.length;++L)k[L]=w.charCodeAt(L);return k}catch{throw new Error("Converting base64 string to bytes failed.")}}function pa(f){if(!!fg(f))return Eg(f.slice(Nl.length))}var da={s:ae,p:pg,e:bp,k:Sp,o:vp,q:xp,i:Pp,r:j,c:Et,h:yA,l:zi,m:ze,f:fa,j:dg,g:OE,n:kp,d:ME,a:sr,b:Ln,t:Dp},tt=Qp(),Bo=t.___wasm_call_ctors=tt.v,BA=t._zip_ext_count_symlinks=tt.w,Rp=t._zip_file_get_external_attributes=tt.x,Ca=t._zipstruct_stat=tt.y,Hl=t._zipstruct_statS=tt.z,jl=t._zipstruct_stat_name=tt.A,QA=t._zipstruct_stat_index=tt.B,ma=t._zipstruct_stat_size=tt.C,Fp=t._zipstruct_stat_mtime=tt.D,KE=t._zipstruct_stat_crc=tt.E,Gl=t._zipstruct_error=tt.F,UE=t._zipstruct_errorS=tt.G,Np=t._zipstruct_error_code_zip=tt.H,Yl=t._zipstruct_stat_comp_size=tt.I,Or=t._zipstruct_stat_comp_method=tt.J,HE=t._zip_close=tt.K,Hs=t._zip_delete=tt.L,js=t._zip_dir_add=tt.M,Ig=t._zip_discard=tt.N,bA=t._zip_error_init_with_code=tt.O,D=t._zip_get_error=tt.P,Y=t._zip_file_get_error=tt.Q,pe=t._zip_error_strerror=tt.R,Le=t._zip_fclose=tt.S,ke=t._zip_file_add=tt.T,Je=t._free=tt.U,pt=t._malloc=tt.V,Xt=t.___errno_location=tt.W,Ea=t._zip_source_error=tt.X,D1=t._zip_source_seek=tt.Y,Gs=t._zip_file_set_external_attributes=tt.Z,yg=t._zip_file_set_mtime=tt._,Jb=t._zip_fopen=tt.$,R1=t._zip_fopen_index=tt.aa,F1=t._zip_fread=tt.ba,Wb=t._zip_get_name=tt.ca,N1=t._zip_get_num_entries=tt.da,T1=t._zip_source_read=tt.ea,zb=t._zip_name_locate=tt.fa,L1=t._zip_open=tt.ga,O1=t._zip_open_from_source=tt.ha,Vb=t._zip_set_file_compression=tt.ia,M1=t._zip_source_buffer=tt.ja,K1=t._zip_source_buffer_create=tt.ka,Xb=t._zip_source_close=tt.la,U1=t._zip_source_free=tt.ma,H1=t._zip_source_keep=tt.na,j1=t._zip_source_open=tt.oa,G1=t._zip_source_set_mtime=tt.qa,Zb=t._zip_source_tell=tt.ra,_b=t._zip_stat=tt.sa,$b=t._zip_stat_index=tt.ta,ql=t.__get_tzname=tt.ua,jE=t.__get_daylight=tt.va,eS=t.__get_timezone=tt.wa,tS=t.stackSave=tt.xa,rS=t.stackRestore=tt.ya,GE=t.stackAlloc=tt.za;t.cwrap=ce,t.getValue=Z;var Jl;ga=function f(){Jl||wg(),Jl||(ga=f)};function wg(f){if(f=f||a,is>0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function bDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t<i;)n[t]=e(r[t],t,r);return n}k9.exports=bDe});var Ss=I((iot,R9)=>{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Nc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,N9=F9?F9.prototype:void 0,T9=N9?N9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return T9?T9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i<n;)s[i]=r[i+e];return s}U9.exports=FDe});var j9=I((aot,H9)=>{var NDe=HR();function TDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:NDe(r,e,t)}H9.exports=TDe});var jR=I((Aot,G9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",GDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function YDe(r){return GDe.test(r)}G9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",GR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+GR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+GR+"?",GR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne<A.length-1){var te=ue,O=A.charCodeAt(ne+1);return 56320<=O&&O<=57343?(te-55296)*1024+(O-56320)+65536:te}if(56320<=ue&&ue<=57343&&ne>=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],N=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&N==e)return S;if(O==t||O==r||O==e)return N==d&&ne.every(function(De){return De==i})?F:P;if(N==t||N==r||N==e)return P;if(O==o&&(N==o||N==a||N==c||N==u))return S;if((O==c||O==a)&&(N==a||N==l))return S;if((O==u||O==l)&&N==l)return S;if(N==i||N==m)return S;if(N==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&N==d||O==m&&[y,B].indexOf(N)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&N==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O<A.length;O++)if(!_(A,O-1)){var N=Z(X(A,O));if(W(ue,te,N))return O;te.push(N)}return A.length},this.splitGraphemes=function(A){for(var ne=[],ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ne.push(A.slice(ue,te)),ue=te;return ue<A.length&&ne.push(A.slice(ue)),ne},this.iterateGraphemes=function(A){var ne=0,ue={next:function(){var te,O;return(O=this.nextBreak(A,ne))<A.length?(te=A.slice(ne,O),ne=O,{value:te,done:!1}):ne<A.length?(te=A.slice(ne),ne=A.length,{value:te,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(ue[Symbol.iterator]=function(){return ue}),ue},this.countGraphemes=function(A){for(var ne=0,ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ue=te,ne++;return ue<A.length&&ne++,ne};function Z(A){return 1536<=A&&A<=1541||A==1757||A==1807||A==2274||A==3406||A==69821||70082<=A&&A<=70083||A==72250||72326<=A&&A<=72329||A==73030?h:A==13?r:A==10?e:0<=A&&A<=9||11<=A&&A<=12||14<=A&&A<=31||127<=A&&A<=159||A==173||A==1564||A==6158||A==8203||8206<=A&&A<=8207||A==8232||A==8233||8234<=A&&A<=8238||8288<=A&&A<=8292||A==8293||8294<=A&&A<=8303||55296<=A&&A<=57343||A==65279||65520<=A&&A<=65528||65529<=A&&A<=65531||113824<=A&&A<=113827||119155<=A&&A<=119162||A==917504||A==917505||917506<=A&&A<=917535||917632<=A&&A<=917759||918e3<=A&&A<=921599?t:768<=A&&A<=879||1155<=A&&A<=1159||1160<=A&&A<=1161||1425<=A&&A<=1469||A==1471||1473<=A&&A<=1474||1476<=A&&A<=1477||A==1479||1552<=A&&A<=1562||1611<=A&&A<=1631||A==1648||1750<=A&&A<=1756||1759<=A&&A<=1764||1767<=A&&A<=1768||1770<=A&&A<=1773||A==1809||1840<=A&&A<=1866||1958<=A&&A<=1968||2027<=A&&A<=2035||2070<=A&&A<=2073||2075<=A&&A<=2083||2085<=A&&A<=2087||2089<=A&&A<=2093||2137<=A&&A<=2139||2260<=A&&A<=2273||2275<=A&&A<=2306||A==2362||A==2364||2369<=A&&A<=2376||A==2381||2385<=A&&A<=2391||2402<=A&&A<=2403||A==2433||A==2492||A==2494||2497<=A&&A<=2500||A==2509||A==2519||2530<=A&&A<=2531||2561<=A&&A<=2562||A==2620||2625<=A&&A<=2626||2631<=A&&A<=2632||2635<=A&&A<=2637||A==2641||2672<=A&&A<=2673||A==2677||2689<=A&&A<=2690||A==2748||2753<=A&&A<=2757||2759<=A&&A<=2760||A==2765||2786<=A&&A<=2787||2810<=A&&A<=2815||A==2817||A==2876||A==2878||A==2879||2881<=A&&A<=2884||A==2893||A==2902||A==2903||2914<=A&&A<=2915||A==2946||A==3006||A==3008||A==3021||A==3031||A==3072||3134<=A&&A<=3136||3142<=A&&A<=3144||3146<=A&&A<=3149||3157<=A&&A<=3158||3170<=A&&A<=3171||A==3201||A==3260||A==3263||A==3266||A==3270||3276<=A&&A<=3277||3285<=A&&A<=3286||3298<=A&&A<=3299||3328<=A&&A<=3329||3387<=A&&A<=3388||A==3390||3393<=A&&A<=3396||A==3405||A==3415||3426<=A&&A<=3427||A==3530||A==3535||3538<=A&&A<=3540||A==3542||A==3551||A==3633||3636<=A&&A<=3642||3655<=A&&A<=3662||A==3761||3764<=A&&A<=3769||3771<=A&&A<=3772||3784<=A&&A<=3789||3864<=A&&A<=3865||A==3893||A==3895||A==3897||3953<=A&&A<=3966||3968<=A&&A<=3972||3974<=A&&A<=3975||3981<=A&&A<=3991||3993<=A&&A<=4028||A==4038||4141<=A&&A<=4144||4146<=A&&A<=4151||4153<=A&&A<=4154||4157<=A&&A<=4158||4184<=A&&A<=4185||4190<=A&&A<=4192||4209<=A&&A<=4212||A==4226||4229<=A&&A<=4230||A==4237||A==4253||4957<=A&&A<=4959||5906<=A&&A<=5908||5938<=A&&A<=5940||5970<=A&&A<=5971||6002<=A&&A<=6003||6068<=A&&A<=6069||6071<=A&&A<=6077||A==6086||6089<=A&&A<=6099||A==6109||6155<=A&&A<=6157||6277<=A&&A<=6278||A==6313||6432<=A&&A<=6434||6439<=A&&A<=6440||A==6450||6457<=A&&A<=6459||6679<=A&&A<=6680||A==6683||A==6742||6744<=A&&A<=6750||A==6752||A==6754||6757<=A&&A<=6764||6771<=A&&A<=6780||A==6783||6832<=A&&A<=6845||A==6846||6912<=A&&A<=6915||A==6964||6966<=A&&A<=6970||A==6972||A==6978||7019<=A&&A<=7027||7040<=A&&A<=7041||7074<=A&&A<=7077||7080<=A&&A<=7081||7083<=A&&A<=7085||A==7142||7144<=A&&A<=7145||A==7149||7151<=A&&A<=7153||7212<=A&&A<=7219||7222<=A&&A<=7223||7376<=A&&A<=7378||7380<=A&&A<=7392||7394<=A&&A<=7400||A==7405||A==7412||7416<=A&&A<=7417||7616<=A&&A<=7673||7675<=A&&A<=7679||A==8204||8400<=A&&A<=8412||8413<=A&&A<=8416||A==8417||8418<=A&&A<=8420||8421<=A&&A<=8432||11503<=A&&A<=11505||A==11647||11744<=A&&A<=11775||12330<=A&&A<=12333||12334<=A&&A<=12335||12441<=A&&A<=12442||A==42607||42608<=A&&A<=42610||42612<=A&&A<=42621||42654<=A&&A<=42655||42736<=A&&A<=42737||A==43010||A==43014||A==43019||43045<=A&&A<=43046||43204<=A&&A<=43205||43232<=A&&A<=43249||43302<=A&&A<=43309||43335<=A&&A<=43345||43392<=A&&A<=43394||A==43443||43446<=A&&A<=43449||A==43452||A==43493||43561<=A&&A<=43566||43569<=A&&A<=43570||43573<=A&&A<=43574||A==43587||A==43596||A==43644||A==43696||43698<=A&&A<=43700||43703<=A&&A<=43704||43710<=A&&A<=43711||A==43713||43756<=A&&A<=43757||A==43766||A==44005||A==44008||A==44013||A==64286||65024<=A&&A<=65039||65056<=A&&A<=65071||65438<=A&&A<=65439||A==66045||A==66272||66422<=A&&A<=66426||68097<=A&&A<=68099||68101<=A&&A<=68102||68108<=A&&A<=68111||68152<=A&&A<=68154||A==68159||68325<=A&&A<=68326||A==69633||69688<=A&&A<=69702||69759<=A&&A<=69761||69811<=A&&A<=69814||69817<=A&&A<=69818||69888<=A&&A<=69890||69927<=A&&A<=69931||69933<=A&&A<=69940||A==70003||70016<=A&&A<=70017||70070<=A&&A<=70078||70090<=A&&A<=70092||70191<=A&&A<=70193||A==70196||70198<=A&&A<=70199||A==70206||A==70367||70371<=A&&A<=70378||70400<=A&&A<=70401||A==70460||A==70462||A==70464||A==70487||70502<=A&&A<=70508||70512<=A&&A<=70516||70712<=A&&A<=70719||70722<=A&&A<=70724||A==70726||A==70832||70835<=A&&A<=70840||A==70842||A==70845||70847<=A&&A<=70848||70850<=A&&A<=70851||A==71087||71090<=A&&A<=71093||71100<=A&&A<=71101||71103<=A&&A<=71104||71132<=A&&A<=71133||71219<=A&&A<=71226||A==71229||71231<=A&&A<=71232||A==71339||A==71341||71344<=A&&A<=71349||A==71351||71453<=A&&A<=71455||71458<=A&&A<=71461||71463<=A&&A<=71467||72193<=A&&A<=72198||72201<=A&&A<=72202||72243<=A&&A<=72248||72251<=A&&A<=72254||A==72263||72273<=A&&A<=72278||72281<=A&&A<=72283||72330<=A&&A<=72342||72344<=A&&A<=72345||72752<=A&&A<=72758||72760<=A&&A<=72765||A==72767||72850<=A&&A<=72871||72874<=A&&A<=72880||72882<=A&&A<=72883||72885<=A&&A<=72886||73009<=A&&A<=73014||A==73018||73020<=A&&A<=73021||73023<=A&&A<=73029||A==73031||92912<=A&&A<=92916||92976<=A&&A<=92982||94095<=A&&A<=94098||113821<=A&&A<=113822||A==119141||119143<=A&&A<=119145||119150<=A&&A<=119154||119163<=A&&A<=119170||119173<=A&&A<=119179||119210<=A&&A<=119213||119362<=A&&A<=119364||121344<=A&&A<=121398||121403<=A&&A<=121452||A==121461||A==121476||121499<=A&&A<=121503||121505<=A&&A<=121519||122880<=A&&A<=122886||122888<=A&&A<=122904||122907<=A&&A<=122913||122915<=A&&A<=122916||122918<=A&&A<=122922||125136<=A&&A<=125142||125252<=A&&A<=125258||917536<=A&&A<=917631||917760<=A&&A<=917999?i:127462<=A&&A<=127487?n:A==2307||A==2363||2366<=A&&A<=2368||2377<=A&&A<=2380||2382<=A&&A<=2383||2434<=A&&A<=2435||2495<=A&&A<=2496||2503<=A&&A<=2504||2507<=A&&A<=2508||A==2563||2622<=A&&A<=2624||A==2691||2750<=A&&A<=2752||A==2761||2763<=A&&A<=2764||2818<=A&&A<=2819||A==2880||2887<=A&&A<=2888||2891<=A&&A<=2892||A==3007||3009<=A&&A<=3010||3014<=A&&A<=3016||3018<=A&&A<=3020||3073<=A&&A<=3075||3137<=A&&A<=3140||3202<=A&&A<=3203||A==3262||3264<=A&&A<=3265||3267<=A&&A<=3268||3271<=A&&A<=3272||3274<=A&&A<=3275||3330<=A&&A<=3331||3391<=A&&A<=3392||3398<=A&&A<=3400||3402<=A&&A<=3404||3458<=A&&A<=3459||3536<=A&&A<=3537||3544<=A&&A<=3550||3570<=A&&A<=3571||A==3635||A==3763||3902<=A&&A<=3903||A==3967||A==4145||4155<=A&&A<=4156||4182<=A&&A<=4183||A==4228||A==6070||6078<=A&&A<=6085||6087<=A&&A<=6088||6435<=A&&A<=6438||6441<=A&&A<=6443||6448<=A&&A<=6449||6451<=A&&A<=6456||6681<=A&&A<=6682||A==6741||A==6743||6765<=A&&A<=6770||A==6916||A==6965||A==6971||6973<=A&&A<=6977||6979<=A&&A<=6980||A==7042||A==7073||7078<=A&&A<=7079||A==7082||A==7143||7146<=A&&A<=7148||A==7150||7154<=A&&A<=7155||7204<=A&&A<=7211||7220<=A&&A<=7221||A==7393||7410<=A&&A<=7411||A==7415||43043<=A&&A<=43044||A==43047||43136<=A&&A<=43137||43188<=A&&A<=43203||43346<=A&&A<=43347||A==43395||43444<=A&&A<=43445||43450<=A&&A<=43451||43453<=A&&A<=43456||43567<=A&&A<=43568||43571<=A&&A<=43572||A==43597||A==43755||43758<=A&&A<=43759||A==43765||44003<=A&&A<=44004||44006<=A&&A<=44007||44009<=A&&A<=44010||A==44012||A==69632||A==69634||A==69762||69808<=A&&A<=69810||69815<=A&&A<=69816||A==69932||A==70018||70067<=A&&A<=70069||70079<=A&&A<=70080||70188<=A&&A<=70190||70194<=A&&A<=70195||A==70197||70368<=A&&A<=70370||70402<=A&&A<=70403||A==70463||70465<=A&&A<=70468||70471<=A&&A<=70472||70475<=A&&A<=70477||70498<=A&&A<=70499||70709<=A&&A<=70711||70720<=A&&A<=70721||A==70725||70833<=A&&A<=70834||A==70841||70843<=A&&A<=70844||A==70846||A==70849||71088<=A&&A<=71089||71096<=A&&A<=71099||A==71102||71216<=A&&A<=71218||71227<=A&&A<=71228||A==71230||A==71340||71342<=A&&A<=71343||A==71350||71456<=A&&A<=71457||A==71462||72199<=A&&A<=72200||A==72249||72279<=A&&A<=72280||A==72343||A==72751||A==72766||A==72873||A==72881||A==72884||94033<=A&&A<=94078||A==119142||A==119149?s:4352<=A&&A<=4447||43360<=A&&A<=43388?o:4448<=A&&A<=4519||55216<=A&&A<=55238?a:4520<=A&&A<=4607||55243<=A&&A<=55291?l:A==44032||A==44060||A==44088||A==44116||A==44144||A==44172||A==44200||A==44228||A==44256||A==44284||A==44312||A==44340||A==44368||A==44396||A==44424||A==44452||A==44480||A==44508||A==44536||A==44564||A==44592||A==44620||A==44648||A==44676||A==44704||A==44732||A==44760||A==44788||A==44816||A==44844||A==44872||A==44900||A==44928||A==44956||A==44984||A==45012||A==45040||A==45068||A==45096||A==45124||A==45152||A==45180||A==45208||A==45236||A==45264||A==45292||A==45320||A==45348||A==45376||A==45404||A==45432||A==45460||A==45488||A==45516||A==45544||A==45572||A==45600||A==45628||A==45656||A==45684||A==45712||A==45740||A==45768||A==45796||A==45824||A==45852||A==45880||A==45908||A==45936||A==45964||A==45992||A==46020||A==46048||A==46076||A==46104||A==46132||A==46160||A==46188||A==46216||A==46244||A==46272||A==46300||A==46328||A==46356||A==46384||A==46412||A==46440||A==46468||A==46496||A==46524||A==46552||A==46580||A==46608||A==46636||A==46664||A==46692||A==46720||A==46748||A==46776||A==46804||A==46832||A==46860||A==46888||A==46916||A==46944||A==46972||A==47e3||A==47028||A==47056||A==47084||A==47112||A==47140||A==47168||A==47196||A==47224||A==47252||A==47280||A==47308||A==47336||A==47364||A==47392||A==47420||A==47448||A==47476||A==47504||A==47532||A==47560||A==47588||A==47616||A==47644||A==47672||A==47700||A==47728||A==47756||A==47784||A==47812||A==47840||A==47868||A==47896||A==47924||A==47952||A==47980||A==48008||A==48036||A==48064||A==48092||A==48120||A==48148||A==48176||A==48204||A==48232||A==48260||A==48288||A==48316||A==48344||A==48372||A==48400||A==48428||A==48456||A==48484||A==48512||A==48540||A==48568||A==48596||A==48624||A==48652||A==48680||A==48708||A==48736||A==48764||A==48792||A==48820||A==48848||A==48876||A==48904||A==48932||A==48960||A==48988||A==49016||A==49044||A==49072||A==49100||A==49128||A==49156||A==49184||A==49212||A==49240||A==49268||A==49296||A==49324||A==49352||A==49380||A==49408||A==49436||A==49464||A==49492||A==49520||A==49548||A==49576||A==49604||A==49632||A==49660||A==49688||A==49716||A==49744||A==49772||A==49800||A==49828||A==49856||A==49884||A==49912||A==49940||A==49968||A==49996||A==50024||A==50052||A==50080||A==50108||A==50136||A==50164||A==50192||A==50220||A==50248||A==50276||A==50304||A==50332||A==50360||A==50388||A==50416||A==50444||A==50472||A==50500||A==50528||A==50556||A==50584||A==50612||A==50640||A==50668||A==50696||A==50724||A==50752||A==50780||A==50808||A==50836||A==50864||A==50892||A==50920||A==50948||A==50976||A==51004||A==51032||A==51060||A==51088||A==51116||A==51144||A==51172||A==51200||A==51228||A==51256||A==51284||A==51312||A==51340||A==51368||A==51396||A==51424||A==51452||A==51480||A==51508||A==51536||A==51564||A==51592||A==51620||A==51648||A==51676||A==51704||A==51732||A==51760||A==51788||A==51816||A==51844||A==51872||A==51900||A==51928||A==51956||A==51984||A==52012||A==52040||A==52068||A==52096||A==52124||A==52152||A==52180||A==52208||A==52236||A==52264||A==52292||A==52320||A==52348||A==52376||A==52404||A==52432||A==52460||A==52488||A==52516||A==52544||A==52572||A==52600||A==52628||A==52656||A==52684||A==52712||A==52740||A==52768||A==52796||A==52824||A==52852||A==52880||A==52908||A==52936||A==52964||A==52992||A==53020||A==53048||A==53076||A==53104||A==53132||A==53160||A==53188||A==53216||A==53244||A==53272||A==53300||A==53328||A==53356||A==53384||A==53412||A==53440||A==53468||A==53496||A==53524||A==53552||A==53580||A==53608||A==53636||A==53664||A==53692||A==53720||A==53748||A==53776||A==53804||A==53832||A==53860||A==53888||A==53916||A==53944||A==53972||A==54e3||A==54028||A==54056||A==54084||A==54112||A==54140||A==54168||A==54196||A==54224||A==54252||A==54280||A==54308||A==54336||A==54364||A==54392||A==54420||A==54448||A==54476||A==54504||A==54532||A==54560||A==54588||A==54616||A==54644||A==54672||A==54700||A==54728||A==54756||A==54784||A==54812||A==54840||A==54868||A==54896||A==54924||A==54952||A==54980||A==55008||A==55036||A==55064||A==55092||A==55120||A==55148||A==55176?c:44033<=A&&A<=44059||44061<=A&&A<=44087||44089<=A&&A<=44115||44117<=A&&A<=44143||44145<=A&&A<=44171||44173<=A&&A<=44199||44201<=A&&A<=44227||44229<=A&&A<=44255||44257<=A&&A<=44283||44285<=A&&A<=44311||44313<=A&&A<=44339||44341<=A&&A<=44367||44369<=A&&A<=44395||44397<=A&&A<=44423||44425<=A&&A<=44451||44453<=A&&A<=44479||44481<=A&&A<=44507||44509<=A&&A<=44535||44537<=A&&A<=44563||44565<=A&&A<=44591||44593<=A&&A<=44619||44621<=A&&A<=44647||44649<=A&&A<=44675||44677<=A&&A<=44703||44705<=A&&A<=44731||44733<=A&&A<=44759||44761<=A&&A<=44787||44789<=A&&A<=44815||44817<=A&&A<=44843||44845<=A&&A<=44871||44873<=A&&A<=44899||44901<=A&&A<=44927||44929<=A&&A<=44955||44957<=A&&A<=44983||44985<=A&&A<=45011||45013<=A&&A<=45039||45041<=A&&A<=45067||45069<=A&&A<=45095||45097<=A&&A<=45123||45125<=A&&A<=45151||45153<=A&&A<=45179||45181<=A&&A<=45207||45209<=A&&A<=45235||45237<=A&&A<=45263||45265<=A&&A<=45291||45293<=A&&A<=45319||45321<=A&&A<=45347||45349<=A&&A<=45375||45377<=A&&A<=45403||45405<=A&&A<=45431||45433<=A&&A<=45459||45461<=A&&A<=45487||45489<=A&&A<=45515||45517<=A&&A<=45543||45545<=A&&A<=45571||45573<=A&&A<=45599||45601<=A&&A<=45627||45629<=A&&A<=45655||45657<=A&&A<=45683||45685<=A&&A<=45711||45713<=A&&A<=45739||45741<=A&&A<=45767||45769<=A&&A<=45795||45797<=A&&A<=45823||45825<=A&&A<=45851||45853<=A&&A<=45879||45881<=A&&A<=45907||45909<=A&&A<=45935||45937<=A&&A<=45963||45965<=A&&A<=45991||45993<=A&&A<=46019||46021<=A&&A<=46047||46049<=A&&A<=46075||46077<=A&&A<=46103||46105<=A&&A<=46131||46133<=A&&A<=46159||46161<=A&&A<=46187||46189<=A&&A<=46215||46217<=A&&A<=46243||46245<=A&&A<=46271||46273<=A&&A<=46299||46301<=A&&A<=46327||46329<=A&&A<=46355||46357<=A&&A<=46383||46385<=A&&A<=46411||46413<=A&&A<=46439||46441<=A&&A<=46467||46469<=A&&A<=46495||46497<=A&&A<=46523||46525<=A&&A<=46551||46553<=A&&A<=46579||46581<=A&&A<=46607||46609<=A&&A<=46635||46637<=A&&A<=46663||46665<=A&&A<=46691||46693<=A&&A<=46719||46721<=A&&A<=46747||46749<=A&&A<=46775||46777<=A&&A<=46803||46805<=A&&A<=46831||46833<=A&&A<=46859||46861<=A&&A<=46887||46889<=A&&A<=46915||46917<=A&&A<=46943||46945<=A&&A<=46971||46973<=A&&A<=46999||47001<=A&&A<=47027||47029<=A&&A<=47055||47057<=A&&A<=47083||47085<=A&&A<=47111||47113<=A&&A<=47139||47141<=A&&A<=47167||47169<=A&&A<=47195||47197<=A&&A<=47223||47225<=A&&A<=47251||47253<=A&&A<=47279||47281<=A&&A<=47307||47309<=A&&A<=47335||47337<=A&&A<=47363||47365<=A&&A<=47391||47393<=A&&A<=47419||47421<=A&&A<=47447||47449<=A&&A<=47475||47477<=A&&A<=47503||47505<=A&&A<=47531||47533<=A&&A<=47559||47561<=A&&A<=47587||47589<=A&&A<=47615||47617<=A&&A<=47643||47645<=A&&A<=47671||47673<=A&&A<=47699||47701<=A&&A<=47727||47729<=A&&A<=47755||47757<=A&&A<=47783||47785<=A&&A<=47811||47813<=A&&A<=47839||47841<=A&&A<=47867||47869<=A&&A<=47895||47897<=A&&A<=47923||47925<=A&&A<=47951||47953<=A&&A<=47979||47981<=A&&A<=48007||48009<=A&&A<=48035||48037<=A&&A<=48063||48065<=A&&A<=48091||48093<=A&&A<=48119||48121<=A&&A<=48147||48149<=A&&A<=48175||48177<=A&&A<=48203||48205<=A&&A<=48231||48233<=A&&A<=48259||48261<=A&&A<=48287||48289<=A&&A<=48315||48317<=A&&A<=48343||48345<=A&&A<=48371||48373<=A&&A<=48399||48401<=A&&A<=48427||48429<=A&&A<=48455||48457<=A&&A<=48483||48485<=A&&A<=48511||48513<=A&&A<=48539||48541<=A&&A<=48567||48569<=A&&A<=48595||48597<=A&&A<=48623||48625<=A&&A<=48651||48653<=A&&A<=48679||48681<=A&&A<=48707||48709<=A&&A<=48735||48737<=A&&A<=48763||48765<=A&&A<=48791||48793<=A&&A<=48819||48821<=A&&A<=48847||48849<=A&&A<=48875||48877<=A&&A<=48903||48905<=A&&A<=48931||48933<=A&&A<=48959||48961<=A&&A<=48987||48989<=A&&A<=49015||49017<=A&&A<=49043||49045<=A&&A<=49071||49073<=A&&A<=49099||49101<=A&&A<=49127||49129<=A&&A<=49155||49157<=A&&A<=49183||49185<=A&&A<=49211||49213<=A&&A<=49239||49241<=A&&A<=49267||49269<=A&&A<=49295||49297<=A&&A<=49323||49325<=A&&A<=49351||49353<=A&&A<=49379||49381<=A&&A<=49407||49409<=A&&A<=49435||49437<=A&&A<=49463||49465<=A&&A<=49491||49493<=A&&A<=49519||49521<=A&&A<=49547||49549<=A&&A<=49575||49577<=A&&A<=49603||49605<=A&&A<=49631||49633<=A&&A<=49659||49661<=A&&A<=49687||49689<=A&&A<=49715||49717<=A&&A<=49743||49745<=A&&A<=49771||49773<=A&&A<=49799||49801<=A&&A<=49827||49829<=A&&A<=49855||49857<=A&&A<=49883||49885<=A&&A<=49911||49913<=A&&A<=49939||49941<=A&&A<=49967||49969<=A&&A<=49995||49997<=A&&A<=50023||50025<=A&&A<=50051||50053<=A&&A<=50079||50081<=A&&A<=50107||50109<=A&&A<=50135||50137<=A&&A<=50163||50165<=A&&A<=50191||50193<=A&&A<=50219||50221<=A&&A<=50247||50249<=A&&A<=50275||50277<=A&&A<=50303||50305<=A&&A<=50331||50333<=A&&A<=50359||50361<=A&&A<=50387||50389<=A&&A<=50415||50417<=A&&A<=50443||50445<=A&&A<=50471||50473<=A&&A<=50499||50501<=A&&A<=50527||50529<=A&&A<=50555||50557<=A&&A<=50583||50585<=A&&A<=50611||50613<=A&&A<=50639||50641<=A&&A<=50667||50669<=A&&A<=50695||50697<=A&&A<=50723||50725<=A&&A<=50751||50753<=A&&A<=50779||50781<=A&&A<=50807||50809<=A&&A<=50835||50837<=A&&A<=50863||50865<=A&&A<=50891||50893<=A&&A<=50919||50921<=A&&A<=50947||50949<=A&&A<=50975||50977<=A&&A<=51003||51005<=A&&A<=51031||51033<=A&&A<=51059||51061<=A&&A<=51087||51089<=A&&A<=51115||51117<=A&&A<=51143||51145<=A&&A<=51171||51173<=A&&A<=51199||51201<=A&&A<=51227||51229<=A&&A<=51255||51257<=A&&A<=51283||51285<=A&&A<=51311||51313<=A&&A<=51339||51341<=A&&A<=51367||51369<=A&&A<=51395||51397<=A&&A<=51423||51425<=A&&A<=51451||51453<=A&&A<=51479||51481<=A&&A<=51507||51509<=A&&A<=51535||51537<=A&&A<=51563||51565<=A&&A<=51591||51593<=A&&A<=51619||51621<=A&&A<=51647||51649<=A&&A<=51675||51677<=A&&A<=51703||51705<=A&&A<=51731||51733<=A&&A<=51759||51761<=A&&A<=51787||51789<=A&&A<=51815||51817<=A&&A<=51843||51845<=A&&A<=51871||51873<=A&&A<=51899||51901<=A&&A<=51927||51929<=A&&A<=51955||51957<=A&&A<=51983||51985<=A&&A<=52011||52013<=A&&A<=52039||52041<=A&&A<=52067||52069<=A&&A<=52095||52097<=A&&A<=52123||52125<=A&&A<=52151||52153<=A&&A<=52179||52181<=A&&A<=52207||52209<=A&&A<=52235||52237<=A&&A<=52263||52265<=A&&A<=52291||52293<=A&&A<=52319||52321<=A&&A<=52347||52349<=A&&A<=52375||52377<=A&&A<=52403||52405<=A&&A<=52431||52433<=A&&A<=52459||52461<=A&&A<=52487||52489<=A&&A<=52515||52517<=A&&A<=52543||52545<=A&&A<=52571||52573<=A&&A<=52599||52601<=A&&A<=52627||52629<=A&&A<=52655||52657<=A&&A<=52683||52685<=A&&A<=52711||52713<=A&&A<=52739||52741<=A&&A<=52767||52769<=A&&A<=52795||52797<=A&&A<=52823||52825<=A&&A<=52851||52853<=A&&A<=52879||52881<=A&&A<=52907||52909<=A&&A<=52935||52937<=A&&A<=52963||52965<=A&&A<=52991||52993<=A&&A<=53019||53021<=A&&A<=53047||53049<=A&&A<=53075||53077<=A&&A<=53103||53105<=A&&A<=53131||53133<=A&&A<=53159||53161<=A&&A<=53187||53189<=A&&A<=53215||53217<=A&&A<=53243||53245<=A&&A<=53271||53273<=A&&A<=53299||53301<=A&&A<=53327||53329<=A&&A<=53355||53357<=A&&A<=53383||53385<=A&&A<=53411||53413<=A&&A<=53439||53441<=A&&A<=53467||53469<=A&&A<=53495||53497<=A&&A<=53523||53525<=A&&A<=53551||53553<=A&&A<=53579||53581<=A&&A<=53607||53609<=A&&A<=53635||53637<=A&&A<=53663||53665<=A&&A<=53691||53693<=A&&A<=53719||53721<=A&&A<=53747||53749<=A&&A<=53775||53777<=A&&A<=53803||53805<=A&&A<=53831||53833<=A&&A<=53859||53861<=A&&A<=53887||53889<=A&&A<=53915||53917<=A&&A<=53943||53945<=A&&A<=53971||53973<=A&&A<=53999||54001<=A&&A<=54027||54029<=A&&A<=54055||54057<=A&&A<=54083||54085<=A&&A<=54111||54113<=A&&A<=54139||54141<=A&&A<=54167||54169<=A&&A<=54195||54197<=A&&A<=54223||54225<=A&&A<=54251||54253<=A&&A<=54279||54281<=A&&A<=54307||54309<=A&&A<=54335||54337<=A&&A<=54363||54365<=A&&A<=54391||54393<=A&&A<=54419||54421<=A&&A<=54447||54449<=A&&A<=54475||54477<=A&&A<=54503||54505<=A&&A<=54531||54533<=A&&A<=54559||54561<=A&&A<=54587||54589<=A&&A<=54615||54617<=A&&A<=54643||54645<=A&&A<=54671||54673<=A&&A<=54699||54701<=A&&A<=54727||54729<=A&&A<=54755||54757<=A&&A<=54783||54785<=A&&A<=54811||54813<=A&&A<=54839||54841<=A&&A<=54867||54869<=A&&A<=54895||54897<=A&&A<=54923||54925<=A&&A<=54951||54953<=A&&A<=54979||54981<=A&&A<=55007||55009<=A&&A<=55035||55037<=A&&A<=55063||55065<=A&&A<=55091||55093<=A&&A<=55119||55121<=A&&A<=55147||55149<=A&&A<=55175||55177<=A&&A<=55203?u:A==9757||A==9977||9994<=A&&A<=9997||A==127877||127938<=A&&A<=127940||A==127943||127946<=A&&A<=127948||128066<=A&&A<=128067||128070<=A&&A<=128080||A==128110||128112<=A&&A<=128120||A==128124||128129<=A&&A<=128131||128133<=A&&A<=128135||A==128170||128372<=A&&A<=128373||A==128378||A==128400||128405<=A&&A<=128406||128581<=A&&A<=128583||128587<=A&&A<=128591||A==128675||128692<=A&&A<=128694||A==128704||A==128716||129304<=A&&A<=129308||129310<=A&&A<=129311||A==129318||129328<=A&&A<=129337||129341<=A&&A<=129342||129489<=A&&A<=129501?p:127995<=A&&A<=127999?d:A==8205?m:A==9792||A==9794||9877<=A&&A<=9878||A==9992||A==10084||A==127752||A==127806||A==127859||A==127891||A==127908||A==127912||A==127979||A==127981||A==128139||128187<=A&&A<=128188||A==128295||A==128300||A==128488||A==128640||A==128658?y:128102<=A&&A<=128105?B:g}return this}typeof PB<"u"&&PB.exports&&(PB.exports=ERe)});var lV=I((dot,AV)=>{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,bV)=>{"use strict";var QV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);bV.exports=r=>r?Object.keys(r).map(e=>[QV.has(e)?QV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,NV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},NRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),TC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",TRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};NV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new xV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[TC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[TC]&&(this[Za]?OC(()=>t.call(this,this[TC])):t.call(this,this[TC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[TC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[TRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof NRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,TV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};TV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Gc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Gc](rl.from(a[0]));for(let c=1;c<a.length;c++)l=this[Gc](a[c])}else l=this[Gc](rl.from(a));return i&&i(),l}[Gc](e){return super.write(e)}},_a=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.Z_NO_FLUSH,e.finishFlush=e.finishFlush||jc.Z_FINISH,super(e,t),this[pF]=jc.Z_FULL_FLUSH,this[tF]=e.level,this[rF]=e.strategy}params(e,t){if(!this[$f]){if(!this[Ar])throw new Error("cannot switch params when binding is closed");if(!this[Ar].params)throw new Error("not supported in this implementation");if(this[tF]!==e||this[rF]!==t){this.flush(jc.Z_SYNC_FLUSH),sF(this[Ar],"zlib binding closed");let i=this[Ar].flush;this[Ar].flush=(n,s)=>{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Gc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Gc](e)):super[Gc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},GB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends GB{constructor(e){super(e,"BrotliCompress")}},hF=class extends GB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var GRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=GRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=GV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=GV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,GV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),QF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o<t+148;o++)s+=e[o];for(let o=t+156;o<t+512;o++)s+=e[o];this.cksumValid=s===this.cksum,this.cksum===null&&s===8*32&&(this.nullBlock=!0)}[yF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=e[i])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l<t+148;l++)a+=e[l];for(let l=t+156;l<t+512;l++)a+=e[l];return this.cksum=a,nl(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return IF.name.get(this[Zn])||this[Zn]}get typeKey(){return this[Zn]}set type(e){IF.code.has(e)?this[Zn]=IF.code.get(e):this[Zn]=e}},ZRe=(r,e)=>{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=QF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s<n.length;s++)n[s]=0;return n}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],i=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+t+` +`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f<E;)ie[w+f++]=0;return w}var ut={ops_table:null,mount:function(f){return ut.createNode(null,"/",16895,0)},createNode:function(f,E,w,k){if(b.isBlkdev(w)||b.isFIFO(w))throw new b.ErrnoError(63);ut.ops_table||(ut.ops_table={dir:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,lookup:ut.node_ops.lookup,mknod:ut.node_ops.mknod,rename:ut.node_ops.rename,unlink:ut.node_ops.unlink,rmdir:ut.node_ops.rmdir,readdir:ut.node_ops.readdir,symlink:ut.node_ops.symlink},stream:{llseek:ut.stream_ops.llseek}},file:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:{llseek:ut.stream_ops.llseek,read:ut.stream_ops.read,write:ut.stream_ops.write,allocate:ut.stream_ops.allocate,mmap:ut.stream_ops.mmap,msync:ut.stream_ops.msync}},link:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,readlink:ut.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:b.chrdev_stream_ops}});var L=b.createNode(f,E,w,k);return b.isDir(L.mode)?(L.node_ops=ut.ops_table.dir.node,L.stream_ops=ut.ops_table.dir.stream,L.contents={}):b.isFile(L.mode)?(L.node_ops=ut.ops_table.file.node,L.stream_ops=ut.ops_table.file.stream,L.usedBytes=0,L.contents=null):b.isLink(L.mode)?(L.node_ops=ut.ops_table.link.node,L.stream_ops=ut.ops_table.link.stream):b.isChrdev(L.mode)&&(L.node_ops=ut.ops_table.chrdev.node,L.stream_ops=ut.ops_table.chrdev.stream),L.timestamp=Date.now(),f&&(f.contents[E]=L,f.timestamp=L.timestamp),L},getFileDataAsTypedArray:function(f){return f.contents?f.contents.subarray?f.contents.subarray(0,f.usedBytes):new Uint8Array(f.contents):new Uint8Array(0)},expandFileStorage:function(f,E){var w=f.contents?f.contents.length:0;if(!(w>=E)){var k=1024*1024;E=Math.max(E,w*(w<k?2:1.125)>>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var N=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&N.subarray)E.set(N.subarray(L,L+ee),w);else for(var Ie=0;Ie<ee;Ie++)E[w+Ie]=N[L+Ie];return ee},write:function(f,E,w,k,L,N){if(E.buffer===ie.buffer&&(N=!1),!k)return 0;var ee=f.node;if(ee.timestamp=Date.now(),E.subarray&&(!ee.contents||ee.contents.subarray)){if(N)return ee.contents=E.subarray(w,w+k),ee.usedBytes=k,k;if(ee.usedBytes===0&&L===0)return ee.contents=E.slice(w,w+k),ee.usedBytes=k,k;if(L+k<=ee.usedBytes)return ee.contents.set(E.subarray(w,w+k),L),k}if(ut.expandFileStorage(ee,L+k),ee.contents.subarray&&E.subarray)ee.contents.set(E.subarray(w,w+k),L);else for(var Ie=0;Ie<k;Ie++)ee.contents[L+Ie]=E[w+Ie];return ee.usedBytes=Math.max(ee.usedBytes,L+k),k},llseek:function(f,E,w){var k=E;if(w===1?k+=f.position:w===2&&b.isFile(f.node.mode)&&(k+=f.node.usedBytes),k<0)throw new b.ErrnoError(28);return k},allocate:function(f,E,w){ut.expandFileStorage(f.node,E+w),f.node.usedBytes=Math.max(f.node.usedBytes,E+w)},mmap:function(f,E,w,k,L,N){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee,Ie,Oe=f.node.contents;if(!(N&2)&&Oe.buffer===Ye)Ie=!1,ee=Oe.byteOffset;else{if((k>0||k+w<Oe.length)&&(Oe.subarray?Oe=Oe.subarray(k,k+w):Oe=Array.prototype.slice.call(Oe,k,k+w)),Ie=!0,ee=ss(w),!ee)throw new b.ErrnoError(48);ie.set(Oe,ee)}return{ptr:ee,allocated:Ie}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var N=ut.stream_ops.write(f,E,0,k,w,!1);return 0}}},wo={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},At={isWindows:!1,staticInit:function(){At.isWindows=!!process.platform.match(/^win/);var f={fs:Te.constants};f.fs&&(f=f.fs),At.flagsForNodeMap={1024:f.O_APPEND,64:f.O_CREAT,128:f.O_EXCL,256:f.O_NOCTTY,0:f.O_RDONLY,2:f.O_RDWR,4096:f.O_SYNC,512:f.O_TRUNC,1:f.O_WRONLY}},bufferFrom:function(f){return Buffer.alloc?Buffer.from(f):new Buffer(f)},convertNodeCode:function(f){var E=f.code;return wo[E]},mount:function(f){return At.createNode(null,"/",At.getMode(f.opts.root),0)},createNode:function(f,E,w,k){if(!b.isDir(w)&&!b.isFile(w)&&!b.isLink(w))throw new b.ErrnoError(28);var L=b.createNode(f,E,w);return L.node_ops=At.node_ops,L.stream_ops=At.stream_ops,L},getMode:function(f){var E;try{E=Te.lstatSync(f),At.isWindows&&(E.mode=E.mode|(E.mode&292)>>2)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new b.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Te.lstatSync(E)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Te.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Te.utimesSync(w,k,k)}E.size!==void 0&&Te.truncateSync(w,E.size)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),N=At.realPath(L);try{b.isDir(L.mode)?Te.mkdirSync(N,L.mode):Te.writeFileSync(N,"",{mode:L.mode})}catch(ee){throw ee.code?new b.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Te.renameSync(k,L)}catch(N){throw N.code?new b.ErrnoError(At.convertNodeCode(N)):N}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.unlinkSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.rmdirSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Te.readdirSync(E)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Te.symlinkSync(w,k)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Te.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{b.isFile(f.node.mode)&&(f.nfd=Te.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{b.isFile(f.node.mode)&&f.nfd&&Te.closeSync(f.nfd)}catch(E){throw E.code?new b.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},write:function(f,E,w,k,L){try{return Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&b.isFile(f.node.mode))try{var L=Te.fstatSync(f.nfd);k+=L.size}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}if(k<0)throw new b.ErrnoError(28);return k},mmap:function(f,E,w,k,L,N){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var N=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},ln={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){b.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)b.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){b.isDir(f)?Te.mkdirSync(f,E):Te.writeFileSync(f,"",{mode:E})},mkdir:function(){Te.mkdirSync.apply(void 0,arguments)},symlink:function(){Te.symlinkSync.apply(void 0,arguments)},rename:function(){Te.renameSync.apply(void 0,arguments)},rmdir:function(){Te.rmdirSync.apply(void 0,arguments)},readdir:function(){Te.readdirSync.apply(void 0,arguments)},unlink:function(){Te.unlinkSync.apply(void 0,arguments)},readlink:function(){return Te.readlinkSync.apply(void 0,arguments)},stat:function(){return Te.statSync.apply(void 0,arguments)},lstat:function(){return Te.lstatSync.apply(void 0,arguments)},chmod:function(){Te.chmodSync.apply(void 0,arguments)},fchmod:function(){Te.fchmodSync.apply(void 0,arguments)},chown:function(){Te.chownSync.apply(void 0,arguments)},fchown:function(){Te.fchownSync.apply(void 0,arguments)},truncate:function(){Te.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new b.ErrnoError(28);Te.ftruncateSync.apply(void 0,arguments)},utime:function(){Te.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Te.openSync(f,At.flagsForNode(E),w),N=k!=null?k:b.nextfd(L),ee={fd:N,nfd:L,position:0,path:f,flags:E,seekable:!0};return b.streams[N]=ee,ee},close:function(f){f.stream_ops||Te.closeSync(f.nfd),b.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Te.fstatSync(f.nfd).size;else if(w!==0)throw new b.ErrnoError(wo.EINVAL);if(k<0)throw new b.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&b.llseek(f,0,+"2");var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},allocate:function(){throw new b.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,N){if(f.stream_ops)return Us.mmap(f,E,w,k,L,N);if(E!==0)throw new b.ErrnoError(28);var ee=ss(w);return b.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||b.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new b.ErrnoError(wo.ENOTTY)}},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Nn.resolve(b.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new b.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),N=b.root,ee="/",Ie=0;Ie<L.length;Ie++){var Oe=Ie===L.length-1;if(Oe&&E.parent)break;if(N=b.lookupNode(N,L[Ie]),ee=yt.join2(ee,L[Ie]),b.isMountpoint(N)&&(!Oe||Oe&&E.follow_mount)&&(N=N.mounted.root),!Oe||E.follow)for(var it=0;b.isLink(N.mode);){var at=b.readlink(ee);ee=Nn.resolve(yt.dirname(ee),at);var Ue=b.lookupPath(ee,{recurse_count:E.recurse_count});if(N=Ue.node,it++>40)throw new b.ErrnoError(32)}}return{path:ee,node:N}},getPath:function(f){for(var E;;){if(b.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k<E.length;k++)w=(w<<5)-w+E.charCodeAt(k)|0;return(f+w>>>0)%b.nameTable.length},hashAddNode:function(f){var E=b.hashName(f.parent.id,f.name);f.name_next=b.nameTable[E],b.nameTable[E]=f},hashRemoveNode:function(f){var E=b.hashName(f.parent.id,f.name);if(b.nameTable[E]===f)b.nameTable[E]=f.name_next;else for(var w=b.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=b.mayLookup(f);if(w)throw new b.ErrnoError(w,f);for(var k=b.hashName(f.id,E),L=b.nameTable[k];L;L=L.name_next){var N=L.name;if(L.parent.id===f.id&&N===E)return L}return b.lookup(f,E)},createNode:function(f,E,w,k){var L=new b.FSNode(f,E,w,k);return b.hashAddNode(L),L},destroyNode:function(f){b.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=b.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return b.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=b.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=b.lookupNode(f,E);return 20}catch{}return b.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=b.lookupNode(f,E)}catch(N){return N.errno}var L=b.nodePermissions(f,"wx");if(L)return L;if(w){if(!b.isDir(k.mode))return 54;if(b.isRoot(k)||b.getPath(k)===b.cwd())return 10}else if(b.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?b.isLink(f.mode)?32:b.isDir(f.mode)&&(b.flagsToPermissionString(E)!=="r"||E&512)?31:b.nodePermissions(f,b.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||b.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!b.streams[w])return w;throw new b.ErrnoError(33)},getStream:function(f){return b.streams[f]},createStream:function(f,E,w){b.FSStream||(b.FSStream=function(){},b.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new b.FSStream;for(var L in f)k[L]=f[L];f=k;var N=b.nextfd(E,w);return f.fd=N,b.streams[N]=f,f},closeStream:function(f){b.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=b.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new b.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){b.devices[f]={stream_ops:E}},getDevice:function(f){return b.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),b.syncFSRequests++,b.syncFSRequests>1&&P("warning: "+b.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=b.getMounts(b.root.mount),k=0;function L(ee){return b.syncFSRequests--,E(ee)}function N(ee){if(ee)return N.errored?void 0:(N.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return N(null);ee.type.syncfs(ee,f,N)})},mount:function(f,E,w){var k=w==="/",L=!w,N;if(k&&b.root)throw new b.ErrnoError(10);if(!k&&!L){var ee=b.lookupPath(w,{follow_mount:!1});if(w=ee.path,N=ee.node,b.isMountpoint(N))throw new b.ErrnoError(10);if(!b.isDir(N.mode))throw new b.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?b.root=Oe:N&&(N.mounted=Ie,N.mount&&N.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=b.lookupPath(f,{follow_mount:!1});if(!b.isMountpoint(E.node))throw new b.ErrnoError(28);var w=E.node,k=w.mounted,L=b.getMounts(k);Object.keys(b.nameTable).forEach(function(ee){for(var Ie=b.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&b.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var N=w.mount.mounts.indexOf(k);w.mount.mounts.splice(N,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=b.lookupPath(f,{parent:!0}),L=k.node,N=yt.basename(f);if(!N||N==="."||N==="..")throw new b.ErrnoError(28);var ee=b.mayCreate(L,N);if(ee)throw new b.ErrnoError(ee);if(!L.node_ops.mknod)throw new b.ErrnoError(63);return L.node_ops.mknod(L,N,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,b.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,b.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L<w.length;++L)if(!!w[L]){k+="/"+w[L];try{b.mkdir(k,E)}catch(N){if(N.errno!=20)throw N}}},mkdev:function(f,E,w){return typeof w>"u"&&(w=E,E=438),E|=8192,b.mknod(f,E,w)},symlink:function(f,E){if(!Nn.resolve(f))throw new b.ErrnoError(44);var w=b.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new b.ErrnoError(44);var L=yt.basename(E),N=b.mayCreate(k,L);if(N)throw new b.ErrnoError(N);if(!k.node_ops.symlink)throw new b.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),N=yt.basename(E),ee,Ie,Oe;if(ee=b.lookupPath(f,{parent:!0}),Ie=ee.node,ee=b.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new b.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new b.ErrnoError(75);var it=b.lookupNode(Ie,L),at=Nn.relative(f,k);if(at.charAt(0)!==".")throw new b.ErrnoError(28);if(at=Nn.relative(E,w),at.charAt(0)!==".")throw new b.ErrnoError(55);var Ue;try{Ue=b.lookupNode(Oe,N)}catch{}if(it!==Ue){var Ve=b.isDir(it.mode),nt=b.mayDelete(Ie,L,Ve);if(nt)throw new b.ErrnoError(nt);if(nt=Ue?b.mayDelete(Oe,N,Ve):b.mayCreate(Oe,N),nt)throw new b.ErrnoError(nt);if(!Ie.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(it)||Ue&&b.isMountpoint(Ue))throw new b.ErrnoError(10);if(Oe!==Ie&&(nt=b.nodePermissions(Ie,"w"),nt))throw new b.ErrnoError(nt);try{b.trackingDelegate.willMovePath&&b.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}b.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,N)}catch(wt){throw wt}finally{b.hashAddNode(it)}try{b.trackingDelegate.onMovePath&&b.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!0);if(N)throw new b.ErrnoError(N);if(!w.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=b.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new b.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!1);if(N)throw new b.ErrnoError(N);if(!w.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=b.lookupPath(f),w=E.node;if(!w)throw new b.ErrnoError(44);if(!w.node_ops.readlink)throw new b.ErrnoError(28);return Nn.resolve(b.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=b.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new b.ErrnoError(44);if(!k.node_ops.getattr)throw new b.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return b.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=b.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new b.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){b.chmod(f,E,!0)},fchmod:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);b.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var N=b.lookupPath(f,{follow:!k});L=N.node}else L=f;if(!L.node_ops.setattr)throw new b.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){b.chown(f,E,w,!0)},fchown:function(f,E,w){var k=b.getStream(f);if(!k)throw new b.ErrnoError(8);b.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new b.ErrnoError(28);var w;if(typeof f=="string"){var k=b.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(w.mode))throw new b.ErrnoError(31);if(!b.isFile(w.mode))throw new b.ErrnoError(28);var L=b.nodePermissions(w,"w");if(L)throw new b.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);if((w.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(w.node,E)},utime:function(f,E,w){var k=b.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new b.ErrnoError(44);E=typeof E=="string"?b.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var N;if(typeof f=="object")N=f;else{f=yt.normalize(f);try{var ee=b.lookupPath(f,{follow:!(E&131072)});N=ee.node}catch{}}var Ie=!1;if(E&64)if(N){if(E&128)throw new b.ErrnoError(20)}else N=b.mknod(f,w,0),Ie=!0;if(!N)throw new b.ErrnoError(44);if(b.isChrdev(N.mode)&&(E&=-513),E&65536&&!b.isDir(N.mode))throw new b.ErrnoError(54);if(!Ie){var Oe=b.mayOpen(N,E);if(Oe)throw new b.ErrnoError(Oe)}E&512&&b.truncate(N,0),E&=-131713;var it=b.createStream({node:N,path:b.getPath(N),flags:E,seekable:!0,position:0,stream_ops:N.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(b.readFiles||(b.readFiles={}),f in b.readFiles||(b.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(b.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=b.tracking.openFlags.READ),(E&2097155)!==0&&(at|=b.tracking.openFlags.WRITE),b.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(b.isClosed(f))throw new b.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{b.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new b.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new b.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.read)throw new b.ErrnoError(28);var N=typeof L<"u";if(!N)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L,N){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.write)throw new b.ErrnoError(28);f.seekable&&f.flags&1024&&b.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,N);ee||(f.position+=Ie);try{f.path&&b.trackingDelegate.onWriteToFile&&b.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(E<0||w<=0)throw new b.ErrnoError(28);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(f.node.mode)&&!b.isDir(f.node.mode))throw new b.ErrnoError(43);if(!f.stream_ops.allocate)throw new b.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,N){if((L&2)!==0&&(N&2)===0&&(f.flags&2097155)!==2)throw new b.ErrnoError(2);if((f.flags&2097155)===1)throw new b.ErrnoError(2);if(!f.stream_ops.mmap)throw new b.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,N)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new b.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=b.open(f,E.flags),L=b.stat(f),N=L.size,ee=new Uint8Array(N);return b.read(k,ee,0,N,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),b.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=b.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),N=Re(E,L,0,L.length);b.write(k,L,0,N,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))b.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");b.close(k)},cwd:function(){return b.currentPath},chdir:function(f){var E=b.lookupPath(f,{follow:!0});if(E.node===null)throw new b.ErrnoError(44);if(!b.isDir(E.node.mode))throw new b.ErrnoError(54);var w=b.nodePermissions(E.node,"x");if(w)throw new b.ErrnoError(w);b.currentPath=E.path},createDefaultDirectories:function(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:function(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,N){return L}}),b.mkdev("/dev/null",b.makedev(1,3)),ns.register(b.makedev(5,0),ns.default_tty_ops),ns.register(b.makedev(6,0),ns.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var f=Nl();b.createDevice("/dev","random",f),b.createDevice("/dev","urandom",f),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){b.mkdir("/proc");var f=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:function(){var E=b.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,N=b.getStream(L);if(!N)throw new b.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return N.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?b.createDevice("/dev","stdin",t.stdin):b.symlink("/dev/tty","/dev/stdin"),t.stdout?b.createDevice("/dev","stdout",null,t.stdout):b.symlink("/dev/tty","/dev/stdout"),t.stderr?b.createDevice("/dev","stderr",null,t.stderr):b.symlink("/dev/tty1","/dev/stderr");var f=b.open("/dev/stdin",0),E=b.open("/dev/stdout",1),w=b.open("/dev/stderr",1)},ensureErrnoError:function(){b.ErrnoError||(b.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(function(f){b.genericErrors[f]=new b.ErrnoError(f),b.genericErrors[f].stack="<generic error, no stack>"}))},staticInit:function(){b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(ut,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){b.init.initialized=!0,b.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,b.createStandardStreams()},quit:function(){b.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;E<b.streams.length;E++){var w=b.streams[E];!w||b.close(w)}},getMode:function(f,E){var w=0;return f&&(w|=365),E&&(w|=146),w},findObject:function(f,E){var w=b.analyzePath(f,E);return w.exists?w.object:null},analyzePath:function(f,E){try{var w=b.lookupPath(f,{follow:!E});f=w.path}catch{}var k={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var w=b.lookupPath(f,{parent:!0});k.parentExists=!0,k.parentPath=w.path,k.parentObject=w.node,k.name=yt.basename(f),w=b.lookupPath(f,{follow:!E}),k.exists=!0,k.path=w.path,k.object=w.node,k.name=w.node.name,k.isRoot=w.path==="/"}catch(L){k.error=L.errno}return k},createPath:function(f,E,w,k){f=typeof f=="string"?f:b.getPath(f);for(var L=E.split("/").reverse();L.length;){var N=L.pop();if(!!N){var ee=yt.join2(f,N);try{b.mkdir(ee)}catch{}f=ee}}return ee},createFile:function(f,E,w,k,L){var N=yt.join2(typeof f=="string"?f:b.getPath(f),E),ee=b.getMode(k,L);return b.create(N,ee)},createDataFile:function(f,E,w,k,L,N){var ee=E?yt.join2(typeof f=="string"?f:b.getPath(f),E):f,Ie=b.getMode(k,L),Oe=b.create(ee,Ie);if(w){if(typeof w=="string"){for(var it=new Array(w.length),at=0,Ue=w.length;at<Ue;++at)it[at]=w.charCodeAt(at);w=it}b.chmod(Oe,Ie|146);var Ve=b.open(Oe,577);b.write(Ve,w,0,w.length,0,N),b.close(Ve),b.chmod(Oe,Ie)}return Oe},createDevice:function(f,E,w,k){var L=yt.join2(typeof f=="string"?f:b.getPath(f),E),N=b.getMode(!!w,!!k);b.createDevice.major||(b.createDevice.major=64);var ee=b.makedev(b.createDevice.major++,0);return b.registerDevice(ee,{open:function(Ie){Ie.seekable=!1},close:function(Ie){k&&k.buffer&&k.buffer.length&&k(10)},read:function(Ie,Oe,it,at,Ue){for(var Ve=0,nt=0;nt<at;nt++){var wt;try{wt=w()}catch{throw new b.ErrnoError(29)}if(wt===void 0&&Ve===0)throw new b.ErrnoError(6);if(wt==null)break;Ve++,Oe[it+nt]=wt}return Ve&&(Ie.node.timestamp=Date.now()),Ve},write:function(Ie,Oe,it,at,Ue){for(var Ve=0;Ve<at;Ve++)try{k(Oe[it+Ve])}catch{throw new b.ErrnoError(29)}return at&&(Ie.node.timestamp=Date.now()),Ve}}),b.mkdev(L,N,ee)},forceLoadFile:function(f){if(f.isDevice||f.isFolder||f.link||f.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(d)try{f.contents=wA(d(f.url),!0),f.usedBytes=f.contents.length}catch{throw new b.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(f,E,w,k,L){function N(){this.lengthKnown=!1,this.chunks=[]}if(N.prototype.get=function(Ve){if(!(Ve>this.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},N.prototype.setDataGetter=function(Ve){this.getter=Ve},N.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",un=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var vr=new XMLHttpRequest;if(vr.open("GET",w,!1),nt!==ii&&vr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(vr.responseType="arraybuffer"),vr.overrideMimeType&&vr.overrideMimeType("text/plain; charset=x-user-defined"),vr.send(null),!(vr.status>=200&&vr.status<300||vr.status===304))throw new Error("Couldn't load "+w+". Status: "+vr.status);return vr.response!==void 0?new Uint8Array(vr.response||[]):wA(vr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,vr=(On+1)*ii-1;if(vr=Math.min(vr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,vr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(un||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new N;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=b.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return b.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,un){b.forceLoadFile(Oe);var ii=Ve.node.contents;if(un>=ii.length)return 0;var Be=Math.min(ii.length-un,Ii);if(ii.slice)for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii[un+yi];else for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii.get(un+yi);return Be},Oe.stream_ops=it,Oe},createPreloadedFile:function(f,E,w,k,L,N,ee,Ie,Oe,it){Browser.init();var at=E?Nn.resolve(yt.join2(f,E)):f,Ue="cp "+at;function Ve(nt){function wt(un){it&&it(),Ie||b.createDataFile(f,E,un,k,L,Oe),N&&N(),IA(Ue)}var Ii=!1;t.preloadPlugins.forEach(function(un){Ii||un.canHandle(at)&&(un.handle(nt,at,wt,function(){ee&&ee(),IA(Ue)}),Ii=!0)}),Ii||wt(nt)}EA(Ue),typeof w=="string"?Browser.asyncLoad(w,function(nt){Ve(nt)},ee):Ve(w)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=b.indexedDB();try{var L=k.open(b.DB_NAME(),b.DB_VERSION)}catch(N){return w(N)}L.onupgradeneeded=function(){S("creating db");var ee=L.result;ee.createObjectStore(b.DB_STORE_NAME)},L.onsuccess=function(){var ee=L.result,Ie=ee.transaction([b.DB_STORE_NAME],"readwrite"),Oe=Ie.objectStore(b.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.put(b.analyzePath(nt).object.contents,nt);wt.onsuccess=function(){it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w},loadFilesFromDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=b.indexedDB();try{var L=k.open(b.DB_NAME(),b.DB_VERSION)}catch(N){return w(N)}L.onupgradeneeded=w,L.onsuccess=function(){var ee=L.result;try{var Ie=ee.transaction([b.DB_STORE_NAME],"readonly")}catch(nt){w(nt);return}var Oe=Ie.objectStore(b.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.get(nt);wt.onsuccess=function(){b.analyzePath(nt).exists&&b.unlink(nt),b.createDataFile(yt.dirname(nt),yt.basename(nt),wt.result,!0,!0,!0),it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w}},Tt={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(f,E,w){if(E[0]==="/")return E;var k;if(f===-100)k=b.cwd();else{var L=b.getStream(f);if(!L)throw new b.ErrnoError(8);k=L.path}if(E.length==0){if(!w)throw new b.ErrnoError(44);return k}return yt.join2(k,E)},doStat:function(f,E,w){try{var k=f(E)}catch(L){if(L&&L.node&&yt.normalize(E)!==yt.normalize(b.getPath(L.node)))return-54;throw L}return de[w>>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Sr=k.size,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Sr=k.ino,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var N=j.slice(f,f+w);b.msync(E,N,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),b.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return b.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=b.readlink(f),L=Math.min(w,Ae(k)),N=ie[E+L];return se(k,E,w+1),ie[E+L]=N,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=b.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&b.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=b.getStream(w);return k&&b.close(k),b.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,N=0;N<w;N++){var ee=de[E+N*8>>2],Ie=de[E+(N*8+4)>>2],Oe=b.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe<Ie)break}return L},doWritev:function(f,E,w,k){for(var L=0,N=0;N<w;N++){var ee=de[E+N*8>>2],Ie=de[E+(N*8+4)>>2],Oe=b.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Tt.varargs+=4;var f=de[Tt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=b.getStream(f);if(!E)throw new b.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Tt.getStr(f),b.chmod(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function bp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 0:{var L=Tt.get();if(L<0)return-28;var N;return N=b.open(k.path,k.flags,0,L),N.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Tt.get();return k.flags|=L,0}case 12:{var L=Tt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof b>"u"||!(Ie instanceof b.ErrnoError))&&yr(Ie),-Ie.errno}}function Sp(f,E){try{var w=Tt.getStreamFromFD(f);return Tt.doStat(b.stat,w.path,E)}catch(k){return(typeof b>"u"||!(k instanceof b.ErrnoError))&&yr(k),-k.errno}}function vp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Tt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Tt.get();return b.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:yr("bad ioctl syscall "+E)}}catch(N){return(typeof b>"u"||!(N instanceof b.ErrnoError))&&yr(N),-N.errno}}function xp(f,E,w){Tt.varargs=w;try{var k=Tt.getStr(f),L=w?Tt.get():0,N=b.open(k,E,L);return N.fd}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),-ee.errno}}function Pp(f,E){try{return f=Tt.getStr(f),E=Tt.getStr(E),b.rename(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function G(f){try{return f=Tt.getStr(f),b.rmdir(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function Et(f,E){try{return f=Tt.getStr(f),Tt.doStat(b.stat,f,E)}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function yA(f){try{return f=Tt.getStr(f),b.unlink(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function zi(f,E,w){j.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Lr(A.buffer),1}catch{}}function ze(f){var E=j.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var N=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(N);if(ee)return!0}return!1}function fa(f){try{var E=Tt.getStreamFromFD(f);return b.close(E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),w.errno}}function dg(f,E){try{var w=Tt.getStreamFromFD(f),k=w.tty?2:b.isDir(w.mode)?3:b.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof b>"u"||!(L instanceof b.ErrnoError))&&yr(L),L.errno}}function OE(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doReadv(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function kp(f,E,w,k,L){try{var N=Tt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(b.llseek(N,Ie,k),Ri=[N.position>>>0,(Sr=N.position,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],N.getdents&&Ie===0&&k===0&&(N.getdents=null),0)}catch(it){return(typeof b>"u"||!(it instanceof b.ErrnoError))&&yr(it),it.errno}}function ME(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doWritev(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),N=Math.max(k,L);de[eS()>>2]=N*60,de[GE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L<k?(de[ql()>>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=b.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,cn=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&cn)===cn},set:function(f){f?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ks,b.staticInit(),g){var Te=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new b.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},b);for(var Ul in ln)b[Ul]=Kl(ln[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),N=Re(f,L,0,L.length);return E&&(L.length=N),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,N,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,N=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(N));while(at<f.length);return w};function Eg(f){if(typeof g=="boolean"&&g){var E;try{E=Buffer.from(f,"base64")}catch{E=new Buffer(f,"base64")}return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}try{for(var w=mg(f),k=new Uint8Array(w.length),L=0;L<w.length;++L)k[L]=w.charCodeAt(L);return k}catch{throw new Error("Converting base64 string to bytes failed.")}}function pa(f){if(!!fg(f))return Eg(f.slice(Tl.length))}var da={s:ae,p:pg,e:bp,k:Sp,o:vp,q:xp,i:Pp,r:G,c:Et,h:yA,l:zi,m:ze,f:fa,j:dg,g:OE,n:kp,d:ME,a:sr,b:Ln,t:Dp},tt=Qp(),Bo=t.___wasm_call_ctors=tt.v,BA=t._zip_ext_count_symlinks=tt.w,Rp=t._zip_file_get_external_attributes=tt.x,Ca=t._zipstruct_stat=tt.y,Hl=t._zipstruct_statS=tt.z,Gl=t._zipstruct_stat_name=tt.A,QA=t._zipstruct_stat_index=tt.B,ma=t._zipstruct_stat_size=tt.C,Fp=t._zipstruct_stat_mtime=tt.D,KE=t._zipstruct_stat_crc=tt.E,jl=t._zipstruct_error=tt.F,UE=t._zipstruct_errorS=tt.G,Tp=t._zipstruct_error_code_zip=tt.H,Yl=t._zipstruct_stat_comp_size=tt.I,Or=t._zipstruct_stat_comp_method=tt.J,HE=t._zip_close=tt.K,Hs=t._zip_delete=tt.L,Gs=t._zip_dir_add=tt.M,Ig=t._zip_discard=tt.N,bA=t._zip_error_init_with_code=tt.O,D=t._zip_get_error=tt.P,Y=t._zip_file_get_error=tt.Q,pe=t._zip_error_strerror=tt.R,Le=t._zip_fclose=tt.S,ke=t._zip_file_add=tt.T,Je=t._free=tt.U,pt=t._malloc=tt.V,Xt=t.___errno_location=tt.W,Ea=t._zip_source_error=tt.X,D1=t._zip_source_seek=tt.Y,js=t._zip_file_set_external_attributes=tt.Z,yg=t._zip_file_set_mtime=tt._,Jb=t._zip_fopen=tt.$,R1=t._zip_fopen_index=tt.aa,F1=t._zip_fread=tt.ba,Wb=t._zip_get_name=tt.ca,T1=t._zip_get_num_entries=tt.da,N1=t._zip_source_read=tt.ea,zb=t._zip_name_locate=tt.fa,L1=t._zip_open=tt.ga,O1=t._zip_open_from_source=tt.ha,Vb=t._zip_set_file_compression=tt.ia,M1=t._zip_source_buffer=tt.ja,K1=t._zip_source_buffer_create=tt.ka,Xb=t._zip_source_close=tt.la,U1=t._zip_source_free=tt.ma,H1=t._zip_source_keep=tt.na,G1=t._zip_source_open=tt.oa,j1=t._zip_source_set_mtime=tt.qa,Zb=t._zip_source_tell=tt.ra,_b=t._zip_stat=tt.sa,$b=t._zip_stat_index=tt.ta,ql=t.__get_tzname=tt.ua,GE=t.__get_daylight=tt.va,eS=t.__get_timezone=tt.wa,tS=t.stackSave=tt.xa,rS=t.stackRestore=tt.ya,jE=t.stackAlloc=tt.za;t.cwrap=ce,t.getValue=Z;var Jl;ga=function f(){Jl||wg(),Jl||(ga=f)};function wg(f){if(f=f||a,is>0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function bDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t<i;)n[t]=e(r[t],t,r);return n}k9.exports=bDe});var Ss=I((iot,R9)=>{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Tc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,T9=F9?F9.prototype:void 0,N9=T9?T9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return N9?N9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i<n;)s[i]=r[i+e];return s}U9.exports=FDe});var G9=I((aot,H9)=>{var TDe=HR();function NDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:TDe(r,e,t)}H9.exports=NDe});var GR=I((Aot,j9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",GDe="\\u200d",jDe=RegExp("["+GDe+LDe+UDe+HDe+"]");function YDe(r){return jDe.test(r)}j9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",jR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+jR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+jR+"?",jR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=GR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=G9(),cRe=GR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne<A.length-1){var te=ue,O=A.charCodeAt(ne+1);return 56320<=O&&O<=57343?(te-55296)*1024+(O-56320)+65536:te}if(56320<=ue&&ue<=57343&&ne>=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],T=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&T==e)return S;if(O==t||O==r||O==e)return T==d&&ne.every(function(De){return De==i})?F:P;if(T==t||T==r||T==e)return P;if(O==o&&(T==o||T==a||T==c||T==u))return S;if((O==c||O==a)&&(T==a||T==l))return S;if((O==u||O==l)&&T==l)return S;if(T==i||T==m)return S;if(T==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&T==d||O==m&&[y,B].indexOf(T)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&T==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O<A.length;O++)if(!_(A,O-1)){var T=Z(X(A,O));if(W(ue,te,T))return O;te.push(T)}return A.length},this.splitGraphemes=function(A){for(var ne=[],ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ne.push(A.slice(ue,te)),ue=te;return ue<A.length&&ne.push(A.slice(ue)),ne},this.iterateGraphemes=function(A){var ne=0,ue={next:function(){var te,O;return(O=this.nextBreak(A,ne))<A.length?(te=A.slice(ne,O),ne=O,{value:te,done:!1}):ne<A.length?(te=A.slice(ne),ne=A.length,{value:te,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(ue[Symbol.iterator]=function(){return ue}),ue},this.countGraphemes=function(A){for(var ne=0,ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ue=te,ne++;return ue<A.length&&ne++,ne};function Z(A){return 1536<=A&&A<=1541||A==1757||A==1807||A==2274||A==3406||A==69821||70082<=A&&A<=70083||A==72250||72326<=A&&A<=72329||A==73030?h:A==13?r:A==10?e:0<=A&&A<=9||11<=A&&A<=12||14<=A&&A<=31||127<=A&&A<=159||A==173||A==1564||A==6158||A==8203||8206<=A&&A<=8207||A==8232||A==8233||8234<=A&&A<=8238||8288<=A&&A<=8292||A==8293||8294<=A&&A<=8303||55296<=A&&A<=57343||A==65279||65520<=A&&A<=65528||65529<=A&&A<=65531||113824<=A&&A<=113827||119155<=A&&A<=119162||A==917504||A==917505||917506<=A&&A<=917535||917632<=A&&A<=917759||918e3<=A&&A<=921599?t:768<=A&&A<=879||1155<=A&&A<=1159||1160<=A&&A<=1161||1425<=A&&A<=1469||A==1471||1473<=A&&A<=1474||1476<=A&&A<=1477||A==1479||1552<=A&&A<=1562||1611<=A&&A<=1631||A==1648||1750<=A&&A<=1756||1759<=A&&A<=1764||1767<=A&&A<=1768||1770<=A&&A<=1773||A==1809||1840<=A&&A<=1866||1958<=A&&A<=1968||2027<=A&&A<=2035||2070<=A&&A<=2073||2075<=A&&A<=2083||2085<=A&&A<=2087||2089<=A&&A<=2093||2137<=A&&A<=2139||2260<=A&&A<=2273||2275<=A&&A<=2306||A==2362||A==2364||2369<=A&&A<=2376||A==2381||2385<=A&&A<=2391||2402<=A&&A<=2403||A==2433||A==2492||A==2494||2497<=A&&A<=2500||A==2509||A==2519||2530<=A&&A<=2531||2561<=A&&A<=2562||A==2620||2625<=A&&A<=2626||2631<=A&&A<=2632||2635<=A&&A<=2637||A==2641||2672<=A&&A<=2673||A==2677||2689<=A&&A<=2690||A==2748||2753<=A&&A<=2757||2759<=A&&A<=2760||A==2765||2786<=A&&A<=2787||2810<=A&&A<=2815||A==2817||A==2876||A==2878||A==2879||2881<=A&&A<=2884||A==2893||A==2902||A==2903||2914<=A&&A<=2915||A==2946||A==3006||A==3008||A==3021||A==3031||A==3072||3134<=A&&A<=3136||3142<=A&&A<=3144||3146<=A&&A<=3149||3157<=A&&A<=3158||3170<=A&&A<=3171||A==3201||A==3260||A==3263||A==3266||A==3270||3276<=A&&A<=3277||3285<=A&&A<=3286||3298<=A&&A<=3299||3328<=A&&A<=3329||3387<=A&&A<=3388||A==3390||3393<=A&&A<=3396||A==3405||A==3415||3426<=A&&A<=3427||A==3530||A==3535||3538<=A&&A<=3540||A==3542||A==3551||A==3633||3636<=A&&A<=3642||3655<=A&&A<=3662||A==3761||3764<=A&&A<=3769||3771<=A&&A<=3772||3784<=A&&A<=3789||3864<=A&&A<=3865||A==3893||A==3895||A==3897||3953<=A&&A<=3966||3968<=A&&A<=3972||3974<=A&&A<=3975||3981<=A&&A<=3991||3993<=A&&A<=4028||A==4038||4141<=A&&A<=4144||4146<=A&&A<=4151||4153<=A&&A<=4154||4157<=A&&A<=4158||4184<=A&&A<=4185||4190<=A&&A<=4192||4209<=A&&A<=4212||A==4226||4229<=A&&A<=4230||A==4237||A==4253||4957<=A&&A<=4959||5906<=A&&A<=5908||5938<=A&&A<=5940||5970<=A&&A<=5971||6002<=A&&A<=6003||6068<=A&&A<=6069||6071<=A&&A<=6077||A==6086||6089<=A&&A<=6099||A==6109||6155<=A&&A<=6157||6277<=A&&A<=6278||A==6313||6432<=A&&A<=6434||6439<=A&&A<=6440||A==6450||6457<=A&&A<=6459||6679<=A&&A<=6680||A==6683||A==6742||6744<=A&&A<=6750||A==6752||A==6754||6757<=A&&A<=6764||6771<=A&&A<=6780||A==6783||6832<=A&&A<=6845||A==6846||6912<=A&&A<=6915||A==6964||6966<=A&&A<=6970||A==6972||A==6978||7019<=A&&A<=7027||7040<=A&&A<=7041||7074<=A&&A<=7077||7080<=A&&A<=7081||7083<=A&&A<=7085||A==7142||7144<=A&&A<=7145||A==7149||7151<=A&&A<=7153||7212<=A&&A<=7219||7222<=A&&A<=7223||7376<=A&&A<=7378||7380<=A&&A<=7392||7394<=A&&A<=7400||A==7405||A==7412||7416<=A&&A<=7417||7616<=A&&A<=7673||7675<=A&&A<=7679||A==8204||8400<=A&&A<=8412||8413<=A&&A<=8416||A==8417||8418<=A&&A<=8420||8421<=A&&A<=8432||11503<=A&&A<=11505||A==11647||11744<=A&&A<=11775||12330<=A&&A<=12333||12334<=A&&A<=12335||12441<=A&&A<=12442||A==42607||42608<=A&&A<=42610||42612<=A&&A<=42621||42654<=A&&A<=42655||42736<=A&&A<=42737||A==43010||A==43014||A==43019||43045<=A&&A<=43046||43204<=A&&A<=43205||43232<=A&&A<=43249||43302<=A&&A<=43309||43335<=A&&A<=43345||43392<=A&&A<=43394||A==43443||43446<=A&&A<=43449||A==43452||A==43493||43561<=A&&A<=43566||43569<=A&&A<=43570||43573<=A&&A<=43574||A==43587||A==43596||A==43644||A==43696||43698<=A&&A<=43700||43703<=A&&A<=43704||43710<=A&&A<=43711||A==43713||43756<=A&&A<=43757||A==43766||A==44005||A==44008||A==44013||A==64286||65024<=A&&A<=65039||65056<=A&&A<=65071||65438<=A&&A<=65439||A==66045||A==66272||66422<=A&&A<=66426||68097<=A&&A<=68099||68101<=A&&A<=68102||68108<=A&&A<=68111||68152<=A&&A<=68154||A==68159||68325<=A&&A<=68326||A==69633||69688<=A&&A<=69702||69759<=A&&A<=69761||69811<=A&&A<=69814||69817<=A&&A<=69818||69888<=A&&A<=69890||69927<=A&&A<=69931||69933<=A&&A<=69940||A==70003||70016<=A&&A<=70017||70070<=A&&A<=70078||70090<=A&&A<=70092||70191<=A&&A<=70193||A==70196||70198<=A&&A<=70199||A==70206||A==70367||70371<=A&&A<=70378||70400<=A&&A<=70401||A==70460||A==70462||A==70464||A==70487||70502<=A&&A<=70508||70512<=A&&A<=70516||70712<=A&&A<=70719||70722<=A&&A<=70724||A==70726||A==70832||70835<=A&&A<=70840||A==70842||A==70845||70847<=A&&A<=70848||70850<=A&&A<=70851||A==71087||71090<=A&&A<=71093||71100<=A&&A<=71101||71103<=A&&A<=71104||71132<=A&&A<=71133||71219<=A&&A<=71226||A==71229||71231<=A&&A<=71232||A==71339||A==71341||71344<=A&&A<=71349||A==71351||71453<=A&&A<=71455||71458<=A&&A<=71461||71463<=A&&A<=71467||72193<=A&&A<=72198||72201<=A&&A<=72202||72243<=A&&A<=72248||72251<=A&&A<=72254||A==72263||72273<=A&&A<=72278||72281<=A&&A<=72283||72330<=A&&A<=72342||72344<=A&&A<=72345||72752<=A&&A<=72758||72760<=A&&A<=72765||A==72767||72850<=A&&A<=72871||72874<=A&&A<=72880||72882<=A&&A<=72883||72885<=A&&A<=72886||73009<=A&&A<=73014||A==73018||73020<=A&&A<=73021||73023<=A&&A<=73029||A==73031||92912<=A&&A<=92916||92976<=A&&A<=92982||94095<=A&&A<=94098||113821<=A&&A<=113822||A==119141||119143<=A&&A<=119145||119150<=A&&A<=119154||119163<=A&&A<=119170||119173<=A&&A<=119179||119210<=A&&A<=119213||119362<=A&&A<=119364||121344<=A&&A<=121398||121403<=A&&A<=121452||A==121461||A==121476||121499<=A&&A<=121503||121505<=A&&A<=121519||122880<=A&&A<=122886||122888<=A&&A<=122904||122907<=A&&A<=122913||122915<=A&&A<=122916||122918<=A&&A<=122922||125136<=A&&A<=125142||125252<=A&&A<=125258||917536<=A&&A<=917631||917760<=A&&A<=917999?i:127462<=A&&A<=127487?n:A==2307||A==2363||2366<=A&&A<=2368||2377<=A&&A<=2380||2382<=A&&A<=2383||2434<=A&&A<=2435||2495<=A&&A<=2496||2503<=A&&A<=2504||2507<=A&&A<=2508||A==2563||2622<=A&&A<=2624||A==2691||2750<=A&&A<=2752||A==2761||2763<=A&&A<=2764||2818<=A&&A<=2819||A==2880||2887<=A&&A<=2888||2891<=A&&A<=2892||A==3007||3009<=A&&A<=3010||3014<=A&&A<=3016||3018<=A&&A<=3020||3073<=A&&A<=3075||3137<=A&&A<=3140||3202<=A&&A<=3203||A==3262||3264<=A&&A<=3265||3267<=A&&A<=3268||3271<=A&&A<=3272||3274<=A&&A<=3275||3330<=A&&A<=3331||3391<=A&&A<=3392||3398<=A&&A<=3400||3402<=A&&A<=3404||3458<=A&&A<=3459||3536<=A&&A<=3537||3544<=A&&A<=3550||3570<=A&&A<=3571||A==3635||A==3763||3902<=A&&A<=3903||A==3967||A==4145||4155<=A&&A<=4156||4182<=A&&A<=4183||A==4228||A==6070||6078<=A&&A<=6085||6087<=A&&A<=6088||6435<=A&&A<=6438||6441<=A&&A<=6443||6448<=A&&A<=6449||6451<=A&&A<=6456||6681<=A&&A<=6682||A==6741||A==6743||6765<=A&&A<=6770||A==6916||A==6965||A==6971||6973<=A&&A<=6977||6979<=A&&A<=6980||A==7042||A==7073||7078<=A&&A<=7079||A==7082||A==7143||7146<=A&&A<=7148||A==7150||7154<=A&&A<=7155||7204<=A&&A<=7211||7220<=A&&A<=7221||A==7393||7410<=A&&A<=7411||A==7415||43043<=A&&A<=43044||A==43047||43136<=A&&A<=43137||43188<=A&&A<=43203||43346<=A&&A<=43347||A==43395||43444<=A&&A<=43445||43450<=A&&A<=43451||43453<=A&&A<=43456||43567<=A&&A<=43568||43571<=A&&A<=43572||A==43597||A==43755||43758<=A&&A<=43759||A==43765||44003<=A&&A<=44004||44006<=A&&A<=44007||44009<=A&&A<=44010||A==44012||A==69632||A==69634||A==69762||69808<=A&&A<=69810||69815<=A&&A<=69816||A==69932||A==70018||70067<=A&&A<=70069||70079<=A&&A<=70080||70188<=A&&A<=70190||70194<=A&&A<=70195||A==70197||70368<=A&&A<=70370||70402<=A&&A<=70403||A==70463||70465<=A&&A<=70468||70471<=A&&A<=70472||70475<=A&&A<=70477||70498<=A&&A<=70499||70709<=A&&A<=70711||70720<=A&&A<=70721||A==70725||70833<=A&&A<=70834||A==70841||70843<=A&&A<=70844||A==70846||A==70849||71088<=A&&A<=71089||71096<=A&&A<=71099||A==71102||71216<=A&&A<=71218||71227<=A&&A<=71228||A==71230||A==71340||71342<=A&&A<=71343||A==71350||71456<=A&&A<=71457||A==71462||72199<=A&&A<=72200||A==72249||72279<=A&&A<=72280||A==72343||A==72751||A==72766||A==72873||A==72881||A==72884||94033<=A&&A<=94078||A==119142||A==119149?s:4352<=A&&A<=4447||43360<=A&&A<=43388?o:4448<=A&&A<=4519||55216<=A&&A<=55238?a:4520<=A&&A<=4607||55243<=A&&A<=55291?l:A==44032||A==44060||A==44088||A==44116||A==44144||A==44172||A==44200||A==44228||A==44256||A==44284||A==44312||A==44340||A==44368||A==44396||A==44424||A==44452||A==44480||A==44508||A==44536||A==44564||A==44592||A==44620||A==44648||A==44676||A==44704||A==44732||A==44760||A==44788||A==44816||A==44844||A==44872||A==44900||A==44928||A==44956||A==44984||A==45012||A==45040||A==45068||A==45096||A==45124||A==45152||A==45180||A==45208||A==45236||A==45264||A==45292||A==45320||A==45348||A==45376||A==45404||A==45432||A==45460||A==45488||A==45516||A==45544||A==45572||A==45600||A==45628||A==45656||A==45684||A==45712||A==45740||A==45768||A==45796||A==45824||A==45852||A==45880||A==45908||A==45936||A==45964||A==45992||A==46020||A==46048||A==46076||A==46104||A==46132||A==46160||A==46188||A==46216||A==46244||A==46272||A==46300||A==46328||A==46356||A==46384||A==46412||A==46440||A==46468||A==46496||A==46524||A==46552||A==46580||A==46608||A==46636||A==46664||A==46692||A==46720||A==46748||A==46776||A==46804||A==46832||A==46860||A==46888||A==46916||A==46944||A==46972||A==47e3||A==47028||A==47056||A==47084||A==47112||A==47140||A==47168||A==47196||A==47224||A==47252||A==47280||A==47308||A==47336||A==47364||A==47392||A==47420||A==47448||A==47476||A==47504||A==47532||A==47560||A==47588||A==47616||A==47644||A==47672||A==47700||A==47728||A==47756||A==47784||A==47812||A==47840||A==47868||A==47896||A==47924||A==47952||A==47980||A==48008||A==48036||A==48064||A==48092||A==48120||A==48148||A==48176||A==48204||A==48232||A==48260||A==48288||A==48316||A==48344||A==48372||A==48400||A==48428||A==48456||A==48484||A==48512||A==48540||A==48568||A==48596||A==48624||A==48652||A==48680||A==48708||A==48736||A==48764||A==48792||A==48820||A==48848||A==48876||A==48904||A==48932||A==48960||A==48988||A==49016||A==49044||A==49072||A==49100||A==49128||A==49156||A==49184||A==49212||A==49240||A==49268||A==49296||A==49324||A==49352||A==49380||A==49408||A==49436||A==49464||A==49492||A==49520||A==49548||A==49576||A==49604||A==49632||A==49660||A==49688||A==49716||A==49744||A==49772||A==49800||A==49828||A==49856||A==49884||A==49912||A==49940||A==49968||A==49996||A==50024||A==50052||A==50080||A==50108||A==50136||A==50164||A==50192||A==50220||A==50248||A==50276||A==50304||A==50332||A==50360||A==50388||A==50416||A==50444||A==50472||A==50500||A==50528||A==50556||A==50584||A==50612||A==50640||A==50668||A==50696||A==50724||A==50752||A==50780||A==50808||A==50836||A==50864||A==50892||A==50920||A==50948||A==50976||A==51004||A==51032||A==51060||A==51088||A==51116||A==51144||A==51172||A==51200||A==51228||A==51256||A==51284||A==51312||A==51340||A==51368||A==51396||A==51424||A==51452||A==51480||A==51508||A==51536||A==51564||A==51592||A==51620||A==51648||A==51676||A==51704||A==51732||A==51760||A==51788||A==51816||A==51844||A==51872||A==51900||A==51928||A==51956||A==51984||A==52012||A==52040||A==52068||A==52096||A==52124||A==52152||A==52180||A==52208||A==52236||A==52264||A==52292||A==52320||A==52348||A==52376||A==52404||A==52432||A==52460||A==52488||A==52516||A==52544||A==52572||A==52600||A==52628||A==52656||A==52684||A==52712||A==52740||A==52768||A==52796||A==52824||A==52852||A==52880||A==52908||A==52936||A==52964||A==52992||A==53020||A==53048||A==53076||A==53104||A==53132||A==53160||A==53188||A==53216||A==53244||A==53272||A==53300||A==53328||A==53356||A==53384||A==53412||A==53440||A==53468||A==53496||A==53524||A==53552||A==53580||A==53608||A==53636||A==53664||A==53692||A==53720||A==53748||A==53776||A==53804||A==53832||A==53860||A==53888||A==53916||A==53944||A==53972||A==54e3||A==54028||A==54056||A==54084||A==54112||A==54140||A==54168||A==54196||A==54224||A==54252||A==54280||A==54308||A==54336||A==54364||A==54392||A==54420||A==54448||A==54476||A==54504||A==54532||A==54560||A==54588||A==54616||A==54644||A==54672||A==54700||A==54728||A==54756||A==54784||A==54812||A==54840||A==54868||A==54896||A==54924||A==54952||A==54980||A==55008||A==55036||A==55064||A==55092||A==55120||A==55148||A==55176?c:44033<=A&&A<=44059||44061<=A&&A<=44087||44089<=A&&A<=44115||44117<=A&&A<=44143||44145<=A&&A<=44171||44173<=A&&A<=44199||44201<=A&&A<=44227||44229<=A&&A<=44255||44257<=A&&A<=44283||44285<=A&&A<=44311||44313<=A&&A<=44339||44341<=A&&A<=44367||44369<=A&&A<=44395||44397<=A&&A<=44423||44425<=A&&A<=44451||44453<=A&&A<=44479||44481<=A&&A<=44507||44509<=A&&A<=44535||44537<=A&&A<=44563||44565<=A&&A<=44591||44593<=A&&A<=44619||44621<=A&&A<=44647||44649<=A&&A<=44675||44677<=A&&A<=44703||44705<=A&&A<=44731||44733<=A&&A<=44759||44761<=A&&A<=44787||44789<=A&&A<=44815||44817<=A&&A<=44843||44845<=A&&A<=44871||44873<=A&&A<=44899||44901<=A&&A<=44927||44929<=A&&A<=44955||44957<=A&&A<=44983||44985<=A&&A<=45011||45013<=A&&A<=45039||45041<=A&&A<=45067||45069<=A&&A<=45095||45097<=A&&A<=45123||45125<=A&&A<=45151||45153<=A&&A<=45179||45181<=A&&A<=45207||45209<=A&&A<=45235||45237<=A&&A<=45263||45265<=A&&A<=45291||45293<=A&&A<=45319||45321<=A&&A<=45347||45349<=A&&A<=45375||45377<=A&&A<=45403||45405<=A&&A<=45431||45433<=A&&A<=45459||45461<=A&&A<=45487||45489<=A&&A<=45515||45517<=A&&A<=45543||45545<=A&&A<=45571||45573<=A&&A<=45599||45601<=A&&A<=45627||45629<=A&&A<=45655||45657<=A&&A<=45683||45685<=A&&A<=45711||45713<=A&&A<=45739||45741<=A&&A<=45767||45769<=A&&A<=45795||45797<=A&&A<=45823||45825<=A&&A<=45851||45853<=A&&A<=45879||45881<=A&&A<=45907||45909<=A&&A<=45935||45937<=A&&A<=45963||45965<=A&&A<=45991||45993<=A&&A<=46019||46021<=A&&A<=46047||46049<=A&&A<=46075||46077<=A&&A<=46103||46105<=A&&A<=46131||46133<=A&&A<=46159||46161<=A&&A<=46187||46189<=A&&A<=46215||46217<=A&&A<=46243||46245<=A&&A<=46271||46273<=A&&A<=46299||46301<=A&&A<=46327||46329<=A&&A<=46355||46357<=A&&A<=46383||46385<=A&&A<=46411||46413<=A&&A<=46439||46441<=A&&A<=46467||46469<=A&&A<=46495||46497<=A&&A<=46523||46525<=A&&A<=46551||46553<=A&&A<=46579||46581<=A&&A<=46607||46609<=A&&A<=46635||46637<=A&&A<=46663||46665<=A&&A<=46691||46693<=A&&A<=46719||46721<=A&&A<=46747||46749<=A&&A<=46775||46777<=A&&A<=46803||46805<=A&&A<=46831||46833<=A&&A<=46859||46861<=A&&A<=46887||46889<=A&&A<=46915||46917<=A&&A<=46943||46945<=A&&A<=46971||46973<=A&&A<=46999||47001<=A&&A<=47027||47029<=A&&A<=47055||47057<=A&&A<=47083||47085<=A&&A<=47111||47113<=A&&A<=47139||47141<=A&&A<=47167||47169<=A&&A<=47195||47197<=A&&A<=47223||47225<=A&&A<=47251||47253<=A&&A<=47279||47281<=A&&A<=47307||47309<=A&&A<=47335||47337<=A&&A<=47363||47365<=A&&A<=47391||47393<=A&&A<=47419||47421<=A&&A<=47447||47449<=A&&A<=47475||47477<=A&&A<=47503||47505<=A&&A<=47531||47533<=A&&A<=47559||47561<=A&&A<=47587||47589<=A&&A<=47615||47617<=A&&A<=47643||47645<=A&&A<=47671||47673<=A&&A<=47699||47701<=A&&A<=47727||47729<=A&&A<=47755||47757<=A&&A<=47783||47785<=A&&A<=47811||47813<=A&&A<=47839||47841<=A&&A<=47867||47869<=A&&A<=47895||47897<=A&&A<=47923||47925<=A&&A<=47951||47953<=A&&A<=47979||47981<=A&&A<=48007||48009<=A&&A<=48035||48037<=A&&A<=48063||48065<=A&&A<=48091||48093<=A&&A<=48119||48121<=A&&A<=48147||48149<=A&&A<=48175||48177<=A&&A<=48203||48205<=A&&A<=48231||48233<=A&&A<=48259||48261<=A&&A<=48287||48289<=A&&A<=48315||48317<=A&&A<=48343||48345<=A&&A<=48371||48373<=A&&A<=48399||48401<=A&&A<=48427||48429<=A&&A<=48455||48457<=A&&A<=48483||48485<=A&&A<=48511||48513<=A&&A<=48539||48541<=A&&A<=48567||48569<=A&&A<=48595||48597<=A&&A<=48623||48625<=A&&A<=48651||48653<=A&&A<=48679||48681<=A&&A<=48707||48709<=A&&A<=48735||48737<=A&&A<=48763||48765<=A&&A<=48791||48793<=A&&A<=48819||48821<=A&&A<=48847||48849<=A&&A<=48875||48877<=A&&A<=48903||48905<=A&&A<=48931||48933<=A&&A<=48959||48961<=A&&A<=48987||48989<=A&&A<=49015||49017<=A&&A<=49043||49045<=A&&A<=49071||49073<=A&&A<=49099||49101<=A&&A<=49127||49129<=A&&A<=49155||49157<=A&&A<=49183||49185<=A&&A<=49211||49213<=A&&A<=49239||49241<=A&&A<=49267||49269<=A&&A<=49295||49297<=A&&A<=49323||49325<=A&&A<=49351||49353<=A&&A<=49379||49381<=A&&A<=49407||49409<=A&&A<=49435||49437<=A&&A<=49463||49465<=A&&A<=49491||49493<=A&&A<=49519||49521<=A&&A<=49547||49549<=A&&A<=49575||49577<=A&&A<=49603||49605<=A&&A<=49631||49633<=A&&A<=49659||49661<=A&&A<=49687||49689<=A&&A<=49715||49717<=A&&A<=49743||49745<=A&&A<=49771||49773<=A&&A<=49799||49801<=A&&A<=49827||49829<=A&&A<=49855||49857<=A&&A<=49883||49885<=A&&A<=49911||49913<=A&&A<=49939||49941<=A&&A<=49967||49969<=A&&A<=49995||49997<=A&&A<=50023||50025<=A&&A<=50051||50053<=A&&A<=50079||50081<=A&&A<=50107||50109<=A&&A<=50135||50137<=A&&A<=50163||50165<=A&&A<=50191||50193<=A&&A<=50219||50221<=A&&A<=50247||50249<=A&&A<=50275||50277<=A&&A<=50303||50305<=A&&A<=50331||50333<=A&&A<=50359||50361<=A&&A<=50387||50389<=A&&A<=50415||50417<=A&&A<=50443||50445<=A&&A<=50471||50473<=A&&A<=50499||50501<=A&&A<=50527||50529<=A&&A<=50555||50557<=A&&A<=50583||50585<=A&&A<=50611||50613<=A&&A<=50639||50641<=A&&A<=50667||50669<=A&&A<=50695||50697<=A&&A<=50723||50725<=A&&A<=50751||50753<=A&&A<=50779||50781<=A&&A<=50807||50809<=A&&A<=50835||50837<=A&&A<=50863||50865<=A&&A<=50891||50893<=A&&A<=50919||50921<=A&&A<=50947||50949<=A&&A<=50975||50977<=A&&A<=51003||51005<=A&&A<=51031||51033<=A&&A<=51059||51061<=A&&A<=51087||51089<=A&&A<=51115||51117<=A&&A<=51143||51145<=A&&A<=51171||51173<=A&&A<=51199||51201<=A&&A<=51227||51229<=A&&A<=51255||51257<=A&&A<=51283||51285<=A&&A<=51311||51313<=A&&A<=51339||51341<=A&&A<=51367||51369<=A&&A<=51395||51397<=A&&A<=51423||51425<=A&&A<=51451||51453<=A&&A<=51479||51481<=A&&A<=51507||51509<=A&&A<=51535||51537<=A&&A<=51563||51565<=A&&A<=51591||51593<=A&&A<=51619||51621<=A&&A<=51647||51649<=A&&A<=51675||51677<=A&&A<=51703||51705<=A&&A<=51731||51733<=A&&A<=51759||51761<=A&&A<=51787||51789<=A&&A<=51815||51817<=A&&A<=51843||51845<=A&&A<=51871||51873<=A&&A<=51899||51901<=A&&A<=51927||51929<=A&&A<=51955||51957<=A&&A<=51983||51985<=A&&A<=52011||52013<=A&&A<=52039||52041<=A&&A<=52067||52069<=A&&A<=52095||52097<=A&&A<=52123||52125<=A&&A<=52151||52153<=A&&A<=52179||52181<=A&&A<=52207||52209<=A&&A<=52235||52237<=A&&A<=52263||52265<=A&&A<=52291||52293<=A&&A<=52319||52321<=A&&A<=52347||52349<=A&&A<=52375||52377<=A&&A<=52403||52405<=A&&A<=52431||52433<=A&&A<=52459||52461<=A&&A<=52487||52489<=A&&A<=52515||52517<=A&&A<=52543||52545<=A&&A<=52571||52573<=A&&A<=52599||52601<=A&&A<=52627||52629<=A&&A<=52655||52657<=A&&A<=52683||52685<=A&&A<=52711||52713<=A&&A<=52739||52741<=A&&A<=52767||52769<=A&&A<=52795||52797<=A&&A<=52823||52825<=A&&A<=52851||52853<=A&&A<=52879||52881<=A&&A<=52907||52909<=A&&A<=52935||52937<=A&&A<=52963||52965<=A&&A<=52991||52993<=A&&A<=53019||53021<=A&&A<=53047||53049<=A&&A<=53075||53077<=A&&A<=53103||53105<=A&&A<=53131||53133<=A&&A<=53159||53161<=A&&A<=53187||53189<=A&&A<=53215||53217<=A&&A<=53243||53245<=A&&A<=53271||53273<=A&&A<=53299||53301<=A&&A<=53327||53329<=A&&A<=53355||53357<=A&&A<=53383||53385<=A&&A<=53411||53413<=A&&A<=53439||53441<=A&&A<=53467||53469<=A&&A<=53495||53497<=A&&A<=53523||53525<=A&&A<=53551||53553<=A&&A<=53579||53581<=A&&A<=53607||53609<=A&&A<=53635||53637<=A&&A<=53663||53665<=A&&A<=53691||53693<=A&&A<=53719||53721<=A&&A<=53747||53749<=A&&A<=53775||53777<=A&&A<=53803||53805<=A&&A<=53831||53833<=A&&A<=53859||53861<=A&&A<=53887||53889<=A&&A<=53915||53917<=A&&A<=53943||53945<=A&&A<=53971||53973<=A&&A<=53999||54001<=A&&A<=54027||54029<=A&&A<=54055||54057<=A&&A<=54083||54085<=A&&A<=54111||54113<=A&&A<=54139||54141<=A&&A<=54167||54169<=A&&A<=54195||54197<=A&&A<=54223||54225<=A&&A<=54251||54253<=A&&A<=54279||54281<=A&&A<=54307||54309<=A&&A<=54335||54337<=A&&A<=54363||54365<=A&&A<=54391||54393<=A&&A<=54419||54421<=A&&A<=54447||54449<=A&&A<=54475||54477<=A&&A<=54503||54505<=A&&A<=54531||54533<=A&&A<=54559||54561<=A&&A<=54587||54589<=A&&A<=54615||54617<=A&&A<=54643||54645<=A&&A<=54671||54673<=A&&A<=54699||54701<=A&&A<=54727||54729<=A&&A<=54755||54757<=A&&A<=54783||54785<=A&&A<=54811||54813<=A&&A<=54839||54841<=A&&A<=54867||54869<=A&&A<=54895||54897<=A&&A<=54923||54925<=A&&A<=54951||54953<=A&&A<=54979||54981<=A&&A<=55007||55009<=A&&A<=55035||55037<=A&&A<=55063||55065<=A&&A<=55091||55093<=A&&A<=55119||55121<=A&&A<=55147||55149<=A&&A<=55175||55177<=A&&A<=55203?u:A==9757||A==9977||9994<=A&&A<=9997||A==127877||127938<=A&&A<=127940||A==127943||127946<=A&&A<=127948||128066<=A&&A<=128067||128070<=A&&A<=128080||A==128110||128112<=A&&A<=128120||A==128124||128129<=A&&A<=128131||128133<=A&&A<=128135||A==128170||128372<=A&&A<=128373||A==128378||A==128400||128405<=A&&A<=128406||128581<=A&&A<=128583||128587<=A&&A<=128591||A==128675||128692<=A&&A<=128694||A==128704||A==128716||129304<=A&&A<=129308||129310<=A&&A<=129311||A==129318||129328<=A&&A<=129337||129341<=A&&A<=129342||129489<=A&&A<=129501?p:127995<=A&&A<=127999?d:A==8205?m:A==9792||A==9794||9877<=A&&A<=9878||A==9992||A==10084||A==127752||A==127806||A==127859||A==127891||A==127908||A==127912||A==127979||A==127981||A==128139||128187<=A&&A<=128188||A==128295||A==128300||A==128488||A==128640||A==128658?y:128102<=A&&A<=128105?B:g}return this}typeof PB<"u"&&PB.exports&&(PB.exports=ERe)});var lV=I((dot,AV)=>{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,bV)=>{"use strict";var QV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);bV.exports=r=>r?Object.keys(r).map(e=>[QV.has(e)?QV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,TV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},TRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),NC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),Gi=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",NRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};TV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new xV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[NC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[Gi]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[Gi])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[Gi])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[Gi]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[Gi]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[Gi])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[NC]&&(this[Za]?OC(()=>t.call(this,this[NC])):t.call(this,this[NC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[Gi]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==Gi&&this[Gi])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[Gi])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[NC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Gi,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[NRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Gi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Gi]?(e?this.emit("error",e):this.emit(Gi),this):(this[Gi]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(Gi),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof TRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,NV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};NV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),Gc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,jc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},GRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),GB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[GRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[jc](rl.from(a[0]));for(let c=1;c<a.length;c++)l=this[jc](a[c])}else l=this[jc](rl.from(a));return i&&i(),l}[jc](e){return super.write(e)}},_a=class extends GB{constructor(e,t){e=e||{},e.flush=e.flush||Gc.Z_NO_FLUSH,e.finishFlush=e.finishFlush||Gc.Z_FINISH,super(e,t),this[pF]=Gc.Z_FULL_FLUSH,this[tF]=e.level,this[rF]=e.strategy}params(e,t){if(!this[$f]){if(!this[Ar])throw new Error("cannot switch params when binding is closed");if(!this[Ar].params)throw new Error("not supported in this implementation");if(this[tF]!==e||this[rF]!==t){this.flush(Gc.Z_SYNC_FLUSH),sF(this[Ar],"zlib binding closed");let i=this[Ar].flush;this[Ar].flush=(n,s)=>{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[jc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[jc](e)):super[jc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},jB=class extends GB{constructor(e,t){e=e||{},e.flush=e.flush||Gc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Gc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=Gc.BROTLI_OPERATION_FLUSH}},fF=class extends jB{constructor(e){super(e,"BrotliCompress")}},hF=class extends jB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((Got,UV)=>{var jRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=jRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=GV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=jV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=GV(s):s===0?o=s:(i=!0,o=jV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},GV=r=>(255^r)&255,jV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),QF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o<t+148;o++)s+=e[o];for(let o=t+156;o<t+512;o++)s+=e[o];this.cksumValid=s===this.cksum,this.cksum===null&&s===8*32&&(this.nullBlock=!0)}[yF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=e[i])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l<t+148;l++)a+=e[l];for(let l=t+156;l<t+512;l++)a+=e[l];return this.cksum=a,nl(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return IF.name.get(this[Zn])||this[Zn]}get typeKey(){return this[Zn]}set type(e){IF.code.has(e)?this[Zn]=IF.code.get(e):this[Zn]=e}},ZRe=(r,e)=>{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=QF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s<n.length;s++)n[s]=0;return n}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],i=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+t+` `,n=Buffer.byteLength(i),s=Math.floor(Math.log(n)/Math.log(10))+1;return n+s>=Math.pow(10,s)&&(s+=1),s+n+i}};KC.parse=(r,e,t)=>new KC(AFe(lFe(r),e),t);var AFe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,lFe=r=>r.replace(/\n$/,"").split(` -`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;n<this.length&&e<this.blockRemain;n++)this.buf[n+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(t)?this[xF]():this[TF](()=>this[xF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let t=new Error("writing more data than expected");return t.path=this.absolute,this.emit("error",t)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[xF](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[sl](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[NF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[TF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,QFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),GF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),bFe=WB(),HF=th(),WF=bFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new QFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]<this.jobs;e=e.next)if(this[C7](e.value),e.value.ignore){let t=e.next;this[_o].removeNode(e),e.next=t}this[e0]=!1,this[$B]&&!this[_o].length&&this[$o]===0&&(this.zip?this.zip.end(d7):(super.write(d7),super.end()))}}get[sh](){return this[_o]&&this[_o].head&&this[_o].head.value}[MF](e){this[_o].shift(),this[$o]-=1,this[Jc]()}[C7](e){if(!e.pending){if(e.entry){e===this[sh]&&!e.piped&&this[n0](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[t0](e,this.statCache.get(e.absolute)):this[jF](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[i0](e,this.readdirCache.get(e.absolute)):this[GF](e),!e.readdir))){if(e.entry=this[E7](e),!e.entry){e.ignore=!0;return}e===this[sh]&&!e.piped&&this[n0](e)}}}[KF](e){return{onwarn:(t,i,n)=>this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[GF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,kn=J("fs"),XF=kn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),Q7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),b7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[Q7]=t.readSize||16*1024*1024,this[ol]=!1,this[b7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[b7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){kn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[Q7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));kn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[l0]<=0)&&(i=!1,this[Ao](),super.end()),i}emit(e,t){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[er]=="number"&&this[Ah]();break;case"error":return this[ch]?void 0:(this[ch]=!0,super.emit(e,t));default:return super.emit(e,t)}}},$F=class extends f0{[Al](){let e=!0;try{this[gh](null,kn.openSync(this[$a],"r")),e=!1}finally{e&&this[Ao]()}}[Ah](){let e=!0;try{if(!this[ol]){this[ol]=!0;do{let t=this[_F](),i=t.length===0?0:kn.readSync(this[er],t,0,t.length,null);if(!this[ZF](i,t))break}while(!0);this[ol]=!1}e=!1}finally{e&&this[Ao]()}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}},h0=class extends vFe{constructor(e,t){t=t||{},super(t),this.readable=!1,this.writable=!0,this[ch]=!1,this[oh]=!1,this[HC]=!1,this[A0]=!1,this[ea]=[],this[$a]=e,this[er]=typeof t.fd=="number"?t.fd:null,this[g0]=t.mode===void 0?438:t.mode,this[Wc]=typeof t.start=="number"?t.start:null,this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0;let i=this[Wc]!==null?"r+":"w";this[u0]=t.flags===void 0,this[al]=this[u0]?i:t.flags,this[er]===null&&this[Al]()}emit(e,t){if(e==="error"){if(this[ch])return;this[ch]=!0}return super.emit(e,t)}get fd(){return this[er]}get path(){return this[$a]}[lh](e){this[Ao](),this[oh]=!0,this.emit("error",e)}[Al](){kn.open(this[$a],this[al],this[g0],(e,t)=>this[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){kn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=kn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=kn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,kn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eN});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),NFe=dF(),tN=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rN=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),Dn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),TFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:TFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[GC]=null,this[Vc]=!1,this[Dn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[GC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rN]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[eA]=null,t=!1),t}[rN](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iN](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[GC]=S7.parse(this[ll],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[Dn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.length<tN.length)return this[Cr]=e,!0;for(let i=0;this[Dn]===null&&i<tN.length;i++)e[i]!==tN[i]&&(this[Dn]=!1);if(this[Dn]===null){let i=this[Vc];this[Vc]=!1,this[Dn]=new NFe.Unzip,this[Dn].on("data",s=>this[p0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sN](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nN](e);else if(!e&&!this[Cr])this[sN]();else{if(this[C0]=!0,this[Cr]){this[nN](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sN]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t<i&&(this[Cr]?this[Cr]=Buffer.concat([e.slice(t),this[Cr]]):this[Cr]=e.slice(t))}end(e){this[cl]||(this[Dn]?this[Dn].end(e):(this[Vc]=!0,this.write(e)))}})});var w0=I((lat,L7)=>{"use strict";var LFe=Xf(),N7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oN=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):T7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},UFe=r=>{let e=T7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size<o)e.end(hh.readFileSync(t));else{let a=0,l=Buffer.allocUnsafe(o);for(n=hh.openSync(t,"r");a<s.size;){let c=hh.readSync(n,l,0,o,a);a+=c,e.write(l.slice(0,c))}e.end()}i=!1}finally{if(i&&n)try{hh.closeSync(n)}catch{}}},HFe=(r,e)=>{let t=new N7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},T7=r=>new N7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?GFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var GFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aN(t,e),t}});var AN=I((uat,V7)=>{"use strict";var WFe=Xf(),G7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new G7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;s<o.size;s+=512){for(let u=0,g=0;u<512;u+=g){if(g=_n.readSync(n,a,u,a.length-u,s+u),s===0&&a[0]===31&&a[1]===139)throw new Error("cannot append to compressed archives");if(!g)break e}let l=new W7(a);if(!l.cksumValid)break;let c=512*Math.ceil(l.size/512);if(s+c+512>o.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new G7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AN();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eNe(i),$Fe(i,e,t)};var eNe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tNe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tNe});var rX=I((hat,tX)=>{var rNe=process.platform,{resolve:iNe,parse:nNe}=J("path"),sNe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iNe(r),rNe==="win32"){let e=/[*|"<>?:]/,{root:t}=nNe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sNe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uN=I((dat,lX)=>{var{dirname:AX}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oNe,findMadeSync:aNe}=aX(),{mkdirpManual:ANe,mkdirpManualSync:lNe}=uN(),cNe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oNe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ANe(r,e);throw n}))),uNe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aNe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lNe(r,e);throw n}};uX.exports={mkdirpNative:cNe,mkdirpNativeSync:uNe}});var dX=I((mat,pX)=>{var fX=J("fs"),gNe=process.version,gN=gNe.replace(/^v/,"").split("."),hX=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,fNe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hNe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fNe,useNativeSync:hNe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uN(),{useNative:pNe,useNativeSync:dNe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pNe(e)?CX(r,e):EX(r,e)),CNe=(r,e)=>(r=dh(r),e=ph(e),dNe(e)?mX(r,e):IX(r,e));Ch.sync=CNe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mNe=Ps.lchown?"lchown":"chown",ENe=Ps.lchownSync?"lchownSync":"chownSync",QX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ENe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},INe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yNe=QX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=QX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;INe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wNe=process.version,bX=(r,e,t)=>Ps.readdir(r,e,t),BNe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wNe)&&(bX=(r,e,t)=>Ps.readdir(r,t));var Q0=(r,e,t,i)=>{Ps[mNe](r,e,t,yNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hN(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);Q0(o,t,i,n)});else{let s=_c.resolve(r,e.name);Q0(s,t,i,n)}},hN=(r,e,t,i)=>{bX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},QNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fN(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>QNe(r,n,e,t)),fN(r,e,t)};xX.exports=hN;hN.sync=vX});var FX=I((yat,pN)=>{"use strict";var kX=wX(),ks=J("fs"),b0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),bNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return bNe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(b0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(b0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},SNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return SNe(g),h();if(l)return h(kX.sync(r,i));let d=lo(b0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(b0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CN=I((wat,NX)=>{var dN=Object.create(null),{hasOwnProperty:vNe}=Object.prototype;NX.exports=r=>(vNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var MX=I((Bat,OX)=>{var TX=J("assert"),xNe=CN(),PNe=nh(),{join:LX}=J("path"),kNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DNe=kNe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);TX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);TX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DNe?["win32 parallelization disabled"]:c.map(h=>xNe(PNe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((Qat,UX)=>{var RNe=process.platform,FNe=RNe==="win32",NNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:TNe,O_TRUNC:LNe,O_WRONLY:ONe,UV_FS_O_FILEMAP:KX=0}=NNe.constants,MNe=FNe&&!!KX,KNe=512*1024,UNe=KX|LNe|TNe|ONe;UX.exports=MNe?r=>r<KNe?UNe:"w":()=>"w"});var SN=I((bat,tZ)=>{"use strict";var HNe=J("assert"),jNe=y0(),Ht=J("fs"),GNe=fh(),rA=J("path"),_X=FX(),jX=SF(),YNe=MX(),qNe=vF(),$n=th(),JNe=nh(),WNe=CN(),GX=Symbol("onEntry"),IN=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yN=Symbol("isReusable"),Ds=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Gi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),QN=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zNe==="win32",VNe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XNe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WNe(JNe($n(r))).toLowerCase(),ZNe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Ne=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[VC]=!1,this.reservations=YNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[GX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join("/"),e.type==="Link"){let i=$n(e.linkpath).split("/");if(i.length>=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[GX](e){if(!this[zX](e))return e.resume();switch(HNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Gi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new GNe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Gi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Gi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Gi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Gi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Gi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[EN]()}[QN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IN](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Ne(this.dirCache):e.type!=="Directory"&&ZNe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Gi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Gi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[QN](e),i();return}if(a||this[yN](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VNe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Gi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Gi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},bN=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IN](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Gi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Gi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[QN](e);if(t||this[yN](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XNe(e.absolute));this[Ds](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Gi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Gi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Gi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Gi](s,e)}}};ZC.Sync=bN;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Ne=Xf(),N0=SN(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vN=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)};var eTe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},tTe=r=>{let e=new N0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rTe=(r,e)=>{let t=new N0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new N0.Sync(r),nTe=r=>new N0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AN();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=SN();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xN;cZ.exports.getContent=()=>(typeof xN>"u"&&(xN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xN)});var CZ=I((PN,dZ)=>{(function(r,e){typeof PN=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),QTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:bTe.test(r)||!QTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,xZ)=>{var vTe=Tc(),xTe=xn(),PTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!xTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==PTe||e==RTe}xZ.exports=FTe});var kZ=I((eAt,PZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];PZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=xn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Eh.prototype.clear=mLe;Eh.prototype.delete=ELe;Eh.prototype.get=ILe;Eh.prototype.has=yLe;Eh.prototype.set=wLe;_Z.exports=Eh});var t_=I((fAt,e_)=>{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}yh.prototype.clear=OLe;yh.prototype.delete=MLe;yh.prototype.get=KLe;yh.prototype.has=ULe;yh.prototype.set=HLe;g_.exports=yh});var U0=I((yAt,f_)=>{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=b_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}wh.prototype.clear=sOe;wh.prototype.delete=oOe;wh.prototype.get=aOe;wh.prototype.has=AOe;wh.prototype.set=lOe;x_.exports=wh});var D_=I((kAt,k_)=>{var P_=H0(),cOe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||P_),t}KN.Cache=P_;k_.exports=KN});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var T_=I((RAt,N_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});N_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=T_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((NAt,O_)=>{var BOe=fC(),QOe=1/0;function bOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-QOe?"-0":e}O_.exports=bOe});var im=I((TAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t<i;)r=r[vOe(e[t++])];return t&&t==i?r:void 0}M_.exports=xOe});var UN=I((LAt,K_)=>{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var Qh=I((OAt,H_)=>{var U_=UN();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=Qh(),FOe=Ih(),NOe=Object.prototype,TOe=NOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(TOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,G_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r<e}G_.exports=KOe});var HN=I((UAt,q_)=>{var UOe=j0(),HOe=Bh(),jOe=nm(),Y_=xn(),GOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n<s;){var l=GOe(e[n]),c=t;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(n!=o){var u=a[l];c=i?i(u,l,a):void 0,c===void 0&&(c=Y_(u)?u:jOe(e[n+1])?[]:{})}UOe(a,l,c),a=a[l]}return r}q_.exports=YOe});var W_=I((HAt,J_)=>{var qOe=im(),JOe=HN(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i<n;){var o=e[i],a=qOe(r,o);t(a,o)&&JOe(s,WOe(o,r),a)}return s}J_.exports=zOe});var V_=I((jAt,z_)=>{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((GAt,X_)=>{var XOe=Tc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var G0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jN=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=G0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i<n;){var o=uMe(e[i]);if(!(s=r!=null&&t(r,o)))break;r=r[o]}return s||++i!=n?s:(n=r==null?0:r.length,!!n&&cMe(n)&&lMe(o,n)&&(AMe(r)||aMe(r)))}r$.exports=gMe});var GN=I((WAt,i$)=>{var fMe=V_(),hMe=jN();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=GN();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}o$.exports=EMe});var c$=I((XAt,l$)=>{var a$=Nc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),QMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QMe),n||(n=[]);++s<o;){var a=r[s];e>0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var bMe=f$();function SMe(r){var e=r==null?0:r.length;return e?bMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YN=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n<s;)o[n]=i[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=i[n];return a[e]=t(o),xMe(r,this,a)}}E$.exports=PMe});var y$=I((tlt,I$)=>{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var b$=I((ilt,Q$)=>{var RMe=y$(),B$=UN(),FMe=q0(),NMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;Q$.exports=NMe});var v$=I((nlt,S$)=>{var TMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=TMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qN=I((slt,x$)=>{var KMe=b$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var jMe=p$(),GMe=YN(),YMe=qN();function qMe(r){return YMe(GMe(r,void 0,jMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var G$=I((kct,j$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Nct,tee)=>{var p1e=eee(),d1e=jN();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tT;eQ.default=y1e});var iT=I(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.default=void 0;var B1e=nee(am()),Q1e=nee(iT());function nee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},nT.apply(this,arguments)}var b1e=/\$\{\s*(\w+)\s*\}/g,Ph=class extends Error{static formatError(e,t){let i=t.label||t.path||"this";return i!==t.path&&(t=nT({},t,{path:i})),typeof e=="string"?e.replace(b1e,(n,s)=>(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tQ.default=Ph});var rQ=I(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=x1e;var sT=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let h=0;h<i.length;h++){let p=i[h];p(n,function(m){if(m){if(!sT.default.isError(m))return c(m,s);if(t)return m.value=s,c(m,s);g.push(m)}if(--u<=0){if(g.length&&(a&&g.sort(a),o.length&&g.push(...o),o=g),o.length){c(new sT.default(o,s,l),s);return}c(null,s)}})}}});var oee=I((Uct,see)=>{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aT=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}Aee.exports=R1e});var uee=I((Gct,cee)=>{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var N1e=Is(),T1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?N1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||T1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Tc(),U1e=G0(),H1e=Jo(),j1e="[object Arguments]",G1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[G1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var iQ=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nQ=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AT=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();Dh.exports=dKe});var sQ=I((Jct,yee)=>{var CKe=dee(),mKe=iQ(),Eee=nQ(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lT=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),QKe=nm(),bKe=sQ(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&bKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||QKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var oQ=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cT=I((Vct,Qee)=>{function DKe(r,e){return function(t){return r(e(t))}}Qee.exports=DKe});var See=I((Xct,bee)=>{var RKe=cT(),FKe=RKe(Object.keys,Object);bee.exports=FKe});var xee=I((Zct,vee)=>{var NKe=oQ(),TKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!NKe(r))return TKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=G0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lT(),GKe=xee(),YKe=fm();function qKe(r){return YKe(r)?jKe(r):GKe(r)}kee.exports=qKe});var uT=I((eut,Dee)=>{var JKe=aT(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Tee=I((rut,Nee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Nee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length<iUe-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new rUe(i)}return t.set(r,e),this.size=t.size,this}Uee.exports=nUe});var hm=I((out,jee)=>{var sUe=tm(),oUe=Fee(),aUe=Tee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Yee=I((aut,Gee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Gee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function aQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e<t;)this.add(r[e])}aQ.prototype.add=aQ.prototype.push=pUe;aQ.prototype.has=dUe;Wee.exports=aQ});var Xee=I((cut,Vee)=>{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}Vee.exports=CUe});var _ee=I((uut,Zee)=>{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gT=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function QUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g<a;){var d=r[g],m=e[g];if(i)var y=o?i(m,d,g,e,r,s):i(d,m,g,r,e,s);if(y!==void 0){if(y)continue;h=!1;break}if(p){if(!IUe(e,function(B,S){if(!yUe(p,S)&&(d===B||n(d,B,t,i,s)))return p.push(S)})){h=!1;break}}else if(!(d===m||n(d,m,t,i,s))){h=!1;break}}return s.delete(r),s.delete(e),h}$ee.exports=QUe});var fT=I((fut,ete)=>{var bUe=Is(),SUe=bUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Nc(),ote=fT(),PUe=Ih(),kUe=gT(),DUe=rte(),RUe=nte(),FUe=1,NUe=2,TUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hT=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case TUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(hT)return hT.call(r)==hT.call(e)}return!1}Ate.exports=JUe});var pT=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t<i;){var o=r[t];e(o,t,r)&&(s[n++]=o)}return s}ute.exports=XUe});var dT=I((Eut,fte)=>{function ZUe(){return[]}fte.exports=ZUe});var AQ=I((Iut,pte)=>{var _Ue=gte(),$Ue=dT(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CT=I((yut,dte)=>{var i2e=pT(),n2e=AQ(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CT(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g<l;){h=a[g];var B=r[h],S=e[h];if(i)var P=o?i(S,B,h,e,r,s):i(B,S,h,r,e,s);if(!(P===void 0?B===S||n(B,S,t,i,s):P)){m=!1;break}y||(y=h=="constructor")}if(m&&!y){var F=r.constructor,H=e.constructor;F!=H&&"constructor"in r&&"constructor"in e&&!(typeof F=="function"&&F instanceof F&&typeof H=="function"&&H instanceof H)&&(m=!1)}return s.delete(r),s.delete(e),m}mte.exports=c2e});var yte=I((But,Ite)=>{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((Qut,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var bte=I((but,Qte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");Qte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Nte)=>{var mT=yte(),ET=U0(),IT=Bte(),yT=bte(),wT=vte(),Fte=Tc(),Nh=MN(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",Q2e=Nh(mT),b2e=Nh(ET),S2e=Nh(IT),v2e=Nh(yT),x2e=Nh(wT),tu=Fte;(mT&&tu(new mT(new ArrayBuffer(1)))!=Rte||ET&&tu(new ET)!=xte||IT&&tu(IT.resolve())!=Pte||yT&&tu(new yT)!=kte||wT&&tu(new wT)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case Q2e:return Rte;case b2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Nte.exports=tu});var jte=I((xut,Hte)=>{var BT=hm(),P2e=gT(),k2e=lte(),D2e=Ete(),Tte=pm(),Lte=Ss(),Ote=cm(),R2e=sQ(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lQ="[object Object]",N2e=Object.prototype,Ute=N2e.hasOwnProperty;function T2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Tte(r),c=a?Kte:Tte(e);l=l==Mte?lQ:l,c=c==Mte?lQ:c;var u=l==lQ,g=c==lQ,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BT),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BT),n(m,y,t,i,s)}}return h?(s||(s=new BT),D2e(r,e,t,i,n,s)):!1}Hte.exports=T2e});var QT=I((Put,qte)=>{var L2e=jte(),Gte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Gte(r)&&!Gte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=QT(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n<s;){a=t[n];var l=a[0],c=r[l],u=a[1];if(o&&a[2]){if(c===void 0&&!(l in r))return!1}else{var g=new O2e;if(i)var h=i(c,u,l,r,e,g);if(!(h===void 0?M2e(u,c,K2e|U2e,i,g):h))return!1}}return!0}Jte.exports=H2e});var bT=I((Dut,zte)=>{var j2e=xn();function G2e(r){return r===r&&!j2e(r)}zte.exports=G2e});var Xte=I((Rut,Vte)=>{var Y2e=bT(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var ST=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Nut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=ST();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cQ=I((Tut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=QT(),tHe=cQ(),rHe=GN(),iHe=M0(),nHe=bT(),sHe=ST(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vT=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xT=I((Hut,cre)=>{var QHe=Qh(),bHe=uT(),SHe=vT();function vHe(r,e){var t={};return e=SHe(e,3),bHe(r,function(i,n,s){QHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DT=512,ure=new ru(DT),gre=new ru(DT),fre=new ru(DT);pre.exports={Cache:ru,split:kT,normalizePath:PT,setter:function(r){var e=PT(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s<o-1;){var l=e[s];if(l==="__proto__"||l==="constructor"||l==="prototype")return i;a=a[e[s++]]}a[e[s]]=n})},getter:function(r,e){var t=PT(r);return fre.get(r)||fre.set(r,function(n){for(var s=0,o=t.length;s<o;)if(n!=null||!e)n=n[t[s++]];else return;return n})},join:function(r){return r.reduce(function(e,t){return e+(RT(t)||hre.test(t)?"["+t+"]":(e?".":"")+t)},"")},forEach:function(r,e,t){RHe(Array.isArray(r)?r:kT(r),e,t)}};function PT(r){return ure.get(r)||ure.set(r,kT(r).map(function(e){return e.replace(DHe,"$2")}))}function kT(r){return r.match(xHe)}function RHe(r,e,t){var i=r.length,n,s,o,a;for(s=0;s<i;s++)n=r[s],n&&(THe(n)&&(n='"'+n+'"'),a=RT(n),o=!a&&/^\d+$/.test(n),e.call(t,n,a,o,s,r))}function RT(r){return typeof r=="string"&&r&&["'",'"'].indexOf(r.charAt(0))!==-1}function FHe(r){return r.match(PHe)&&!r.match(hre)}function NHe(r){return kHe.test(r)}function THe(r){return!RT(r)&&(FHe(r)||NHe(r))}});var iu=I(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),uQ={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===uQ.context,this.isValue=this.key[0]===uQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?uQ.context:this.isValue?uQ.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=HHe;var MHe=FT(xT()),gQ=FT(eu()),KHe=FT(iu());function FT(r){return r&&r.__esModule?r:{default:r}}function fQ(){return fQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},fQ.apply(this,arguments)}function UHe(r,e){if(r==null)return{};var t={},i=Object.keys(r),n,s;for(s=0;s<i.length;s++)n=i[s],!(e.indexOf(n)>=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fQ({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gQ.default(gQ.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fQ({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gQ.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gQ.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var TT=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),GHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?GHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});hQ.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hQ.default=Im});var oA=I(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.default=void 0;var Ire=sA(G$()),Th=nA(),WHe=sA(iee()),yre=sA(rQ()),pQ=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=TT(),XHe=sA(iT()),Bre=sA(eu()),Qre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Rs.apply(this,arguments)}var co=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Qre.default,this._blacklist=new Qre.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". +`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),TF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),NF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[TF](t)})}[TF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;n<this.length&&e<this.blockRemain;n++)this.buf[n+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(t)?this[xF]():this[NF](()=>this[xF]())}[NF](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let t=new Error("writing more data than expected");return t.path=this.absolute,this.emit("error",t)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[xF](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[sl](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[TF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[NF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,QFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),GF=Symbol("stat"),jF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),bFe=WB(),HF=th(),WF=bFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new QFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]<this.jobs;e=e.next)if(this[C7](e.value),e.value.ignore){let t=e.next;this[_o].removeNode(e),e.next=t}this[e0]=!1,this[$B]&&!this[_o].length&&this[$o]===0&&(this.zip?this.zip.end(d7):(super.write(d7),super.end()))}}get[sh](){return this[_o]&&this[_o].head&&this[_o].head.value}[MF](e){this[_o].shift(),this[$o]-=1,this[Jc]()}[C7](e){if(!e.pending){if(e.entry){e===this[sh]&&!e.piped&&this[n0](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[t0](e,this.statCache.get(e.absolute)):this[GF](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[i0](e,this.readdirCache.get(e.absolute)):this[jF](e),!e.readdir))){if(e.entry=this[E7](e),!e.entry){e.ignore=!0;return}e===this[sh]&&!e.piped&&this[n0](e)}}}[KF](e){return{onwarn:(t,i,n)=>this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[GF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[jF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(GC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,kn=J("fs"),XF=kn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),Q7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),b7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[Q7]=t.readSize||16*1024*1024,this[ol]=!1,this[b7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[b7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){kn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[Q7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));kn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[l0]<=0)&&(i=!1,this[Ao](),super.end()),i}emit(e,t){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[er]=="number"&&this[Ah]();break;case"error":return this[ch]?void 0:(this[ch]=!0,super.emit(e,t));default:return super.emit(e,t)}}},$F=class extends f0{[Al](){let e=!0;try{this[gh](null,kn.openSync(this[$a],"r")),e=!1}finally{e&&this[Ao]()}}[Ah](){let e=!0;try{if(!this[ol]){this[ol]=!0;do{let t=this[_F](),i=t.length===0?0:kn.readSync(this[er],t,0,t.length,null);if(!this[ZF](i,t))break}while(!0);this[ol]=!1}e=!1}finally{e&&this[Ao]()}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}},h0=class extends vFe{constructor(e,t){t=t||{},super(t),this.readable=!1,this.writable=!0,this[ch]=!1,this[oh]=!1,this[HC]=!1,this[A0]=!1,this[ea]=[],this[$a]=e,this[er]=typeof t.fd=="number"?t.fd:null,this[g0]=t.mode===void 0?438:t.mode,this[Wc]=typeof t.start=="number"?t.start:null,this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0;let i=this[Wc]!==null?"r+":"w";this[u0]=t.flags===void 0,this[al]=this[u0]?i:t.flags,this[er]===null&&this[Al]()}emit(e,t){if(e==="error"){if(this[ch])return;this[ch]=!0}return super.emit(e,t)}get fd(){return this[er]}get path(){return this[$a]}[lh](e){this[Ao](),this[oh]=!0,this.emit("error",e)}[Al](){kn.open(this[$a],this[al],this[g0],(e,t)=>this[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){kn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eT=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=kn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=kn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,kn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};GC.ReadStream=f0;GC.ReadStreamSync=$F;GC.WriteStream=h0;GC.WriteStreamSync=eT});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),TFe=dF(),tT=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rT=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),jC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),Dn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iT=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nT=Symbol("bufferConcat"),sT=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),NFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:NFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[jC]=null,this[Vc]=!1,this[Dn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[jC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[jC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rT]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rT]()),t=!1)):(this[eA]=null,t=!1),t}[rT](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iT](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iT](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[jC]=S7.parse(this[ll],this[jC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[Dn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.length<tT.length)return this[Cr]=e,!0;for(let i=0;this[Dn]===null&&i<tT.length;i++)e[i]!==tT[i]&&(this[Dn]=!1);if(this[Dn]===null){let i=this[Vc];this[Vc]=!1,this[Dn]=new TFe.Unzip,this[Dn].on("data",s=>this[p0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nT](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sT](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nT](e);else if(!e&&!this[Cr])this[sT]();else{if(this[C0]=!0,this[Cr]){this[nT](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sT]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iT](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t<i&&(this[Cr]?this[Cr]=Buffer.concat([e.slice(t),this[Cr]]):this[Cr]=e.slice(t))}end(e){this[cl]||(this[Dn]?this[Dn].end(e):(this[Vc]=!0,this.write(e)))}})});var w0=I((lat,L7)=>{"use strict";var LFe=Xf(),T7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oT=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):N7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oT(s)):s=>n(oT(s))},UFe=r=>{let e=N7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size<o)e.end(hh.readFileSync(t));else{let a=0,l=Buffer.allocUnsafe(o);for(n=hh.openSync(t,"r");a<s.size;){let c=hh.readSync(n,l,0,o,a);a+=c,e.write(l.slice(0,c))}e.end()}i=!1}finally{if(i&&n)try{hh.closeSync(n)}catch{}}},HFe=(r,e)=>{let t=new T7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},N7=r=>new T7(r)});var G7=I((cat,H7)=>{"use strict";var GFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=GFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?jFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var jFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aT(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aT=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aT(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aT(t,e),t}});var AT=I((uat,V7)=>{"use strict";var WFe=Xf(),j7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new j7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;s<o.size;s+=512){for(let u=0,g=0;u<512;u+=g){if(g=_n.readSync(n,a,u,a.length-u,s+u),s===0&&a[0]===31&&a[1]===139)throw new Error("cannot append to compressed archives");if(!g)break e}let l=new W7(a);if(!l.cksumValid)break;let c=512*Math.ceil(l.size/512);if(s+c+512>o.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new j7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AT();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eTe(i),$Fe(i,e,t)};var eTe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tTe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tTe});var rX=I((hat,tX)=>{var rTe=process.platform,{resolve:iTe,parse:nTe}=J("path"),sTe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iTe(r),rTe==="win32"){let e=/[*|"<>?:]/,{root:t}=nTe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sTe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uT=I((dat,lX)=>{var{dirname:AX}=J("path"),lT=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lT(i,e).then(s=>lT(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cT=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cT(r,e,cT(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lT,mkdirpManualSync:cT}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oTe,findMadeSync:aTe}=aX(),{mkdirpManual:ATe,mkdirpManualSync:lTe}=uT(),cTe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oTe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ATe(r,e);throw n}))),uTe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aTe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lTe(r,e);throw n}};uX.exports={mkdirpNative:cTe,mkdirpNativeSync:uTe}});var dX=I((mat,pX)=>{var fX=J("fs"),gTe=process.version,gT=gTe.replace(/^v/,"").split("."),hX=+gT[0]>10||+gT[0]==10&&+gT[1]>=12,fTe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hTe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fTe,useNativeSync:hTe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uT(),{useNative:pTe,useNativeSync:dTe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pTe(e)?CX(r,e):EX(r,e)),CTe=(r,e)=>(r=dh(r),e=ph(e),dTe(e)?mX(r,e):IX(r,e));Ch.sync=CTe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mTe=Ps.lchown?"lchown":"chown",ETe=Ps.lchownSync?"lchownSync":"chownSync",QX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ETe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},ITe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yTe=QX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fT=QX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;ITe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wTe=process.version,bX=(r,e,t)=>Ps.readdir(r,e,t),BTe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wTe)&&(bX=(r,e,t)=>Ps.readdir(r,t));var Q0=(r,e,t,i)=>{Ps[mTe](r,e,t,yTe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hT(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);Q0(o,t,i,n)});else{let s=_c.resolve(r,e.name);Q0(s,t,i,n)}},hT=(r,e,t,i)=>{bX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},QTe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fT(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BTe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fT(r,e,t);throw n}return i&&i.length&&i.forEach(n=>QTe(r,n,e,t)),fT(r,e,t)};xX.exports=hT;hT.sync=vX});var FX=I((yat,pT)=>{"use strict";var kX=wX(),ks=J("fs"),b0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),bTe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pT.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return bTe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(b0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(b0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},STe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pT.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return STe(g),h();if(l)return h(kX.sync(r,i));let d=lo(b0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(b0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CT=I((wat,TX)=>{var dT=Object.create(null),{hasOwnProperty:vTe}=Object.prototype;TX.exports=r=>(vTe.call(dT,r)||(dT[r]=r.normalize("NFKD")),dT[r])});var MX=I((Bat,OX)=>{var NX=J("assert"),xTe=CT(),PTe=nh(),{join:LX}=J("path"),kTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DTe=kTe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);NX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);NX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DTe?["win32 parallelization disabled"]:c.map(h=>xTe(PTe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((Qat,UX)=>{var RTe=process.platform,FTe=RTe==="win32",TTe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:NTe,O_TRUNC:LTe,O_WRONLY:OTe,UV_FS_O_FILEMAP:KX=0}=TTe.constants,MTe=FTe&&!!KX,KTe=512*1024,UTe=KX|LTe|NTe|OTe;UX.exports=MTe?r=>r<KTe?UTe:"w":()=>"w"});var ST=I((bat,tZ)=>{"use strict";var HTe=J("assert"),GTe=y0(),Ht=J("fs"),jTe=fh(),rA=J("path"),_X=FX(),GX=SF(),YTe=MX(),qTe=vF(),$n=th(),JTe=nh(),WTe=CT(),jX=Symbol("onEntry"),IT=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yT=Symbol("isReusable"),Ds=Symbol("makeFs"),wT=Symbol("file"),BT=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),ji=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mT=Symbol("ended"),ET=Symbol("maybeClose"),QT=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zTe==="win32",VTe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XTe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WTe(JTe($n(r))).toLowerCase(),ZTe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Te=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends GTe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mT]=!0,this[ET]()},super(e),this[VC]=!1,this.reservations=YTe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mT]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[jX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[ET](){this[mT]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join("/"),e.type==="Link"){let i=$n(e.linkpath).split("/");if(i.length>=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qTe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+GX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+GX.encode(e.path.substr(i.length))}return!0}[jX](e){if(!this[zX](e))return e.resume();switch(HTe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IT](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[ji](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wT](e,t){let i=e.mode&4095||this.fmode,n=new jTe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[ji](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[ji](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[ji](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[ji](l,e),t()}),e.pipe(a)),a.pipe(n)}[BT](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[ji](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[ET]()}[QT](e){this[mh](),e.resume()}[yT](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IT](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Te(this.dirCache):e.type!=="Directory"&&ZTe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[ji](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[ji](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[QT](e),i();return}if(a||this[yT](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VTe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[ji](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wT](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BT](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[ji](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},bT=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IT](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[ji](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[ji](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[QT](e);if(t||this[yT](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XTe(e.absolute));this[Ds](n,e)}[wT](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[ji](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[ji](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BT](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[ji](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[ji](s,e)}}};ZC.Sync=bT;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Te=Xf(),T0=ST(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vT=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Te(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eNe(i,e),i.file&&i.sync?tNe(i):i.file?rNe(i,t):i.sync?iNe(i):nNe(i)};var eNe=(r,e)=>{let t=new Map(e.map(s=>[vT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vT(s)):s=>n(vT(s))},tNe=r=>{let e=new T0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rNe=(r,e)=>{let t=new T0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iNe=r=>new T0.Sync(r),nNe=r=>new T0(r)});var aZ=I(li=>{"use strict";li.c=li.create=G7();li.r=li.replace=AT();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=ST();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xT;cZ.exports.getContent=()=>(typeof xT>"u"&&(xT=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xT)});var CZ=I((PT,dZ)=>{(function(r,e){typeof PT=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PT,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var M0=I((_at,vZ)=>{var wNe=Ss(),BNe=fC(),QNe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bNe=/^\w*$/;function SNe(r,e){if(wNe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BNe(r)?!0:bNe.test(r)||!QNe.test(r)||e!=null&&r in Object(e)}vZ.exports=SNe});var K0=I(($at,xZ)=>{var vNe=Nc(),xNe=xn(),PNe="[object AsyncFunction]",kNe="[object Function]",DNe="[object GeneratorFunction]",RNe="[object Proxy]";function FNe(r){if(!xNe(r))return!1;var e=vNe(r);return e==kNe||e==DNe||e==PNe||e==RNe}xZ.exports=FNe});var kZ=I((eAt,PZ)=>{var TNe=Is(),NNe=TNe["__core-js_shared__"];PZ.exports=NNe});var FZ=I((tAt,RZ)=>{var OT=kZ(),DZ=function(){var r=/[^.]+$/.exec(OT&&OT.keys&&OT.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LNe(r){return!!DZ&&DZ in r}RZ.exports=LNe});var MT=I((rAt,TZ)=>{var ONe=Function.prototype,MNe=ONe.toString;function KNe(r){if(r!=null){try{return MNe.call(r)}catch{}try{return r+""}catch{}}return""}TZ.exports=KNe});var LZ=I((iAt,NZ)=>{var UNe=K0(),HNe=FZ(),GNe=xn(),jNe=MT(),YNe=/[\\^$.*+?()[\]{}|]/g,qNe=/^\[object .+?Constructor\]$/,JNe=Function.prototype,WNe=Object.prototype,zNe=JNe.toString,VNe=WNe.hasOwnProperty,XNe=RegExp("^"+zNe.call(VNe).replace(YNe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZNe(r){if(!GNe(r)||HNe(r))return!1;var e=UNe(r)?XNe:qNe;return e.test(jNe(r))}NZ.exports=ZNe});var MZ=I((nAt,OZ)=>{function _Ne(r,e){return r==null?void 0:r[e]}OZ.exports=_Ne});var hl=I((sAt,KZ)=>{var $Ne=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Ne(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var jZ=I((aAt,GZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}GZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=jZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Eh.prototype.clear=mLe;Eh.prototype.delete=ELe;Eh.prototype.get=ILe;Eh.prototype.has=yLe;Eh.prototype.set=wLe;_Z.exports=Eh});var t_=I((fAt,e_)=>{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function TLe(r){return FLe(this.__data__,r)>-1}A_.exports=TLe});var u_=I((EAt,c_)=>{var NLe=em();function LLe(r,e){var t=this.__data__,i=NLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}yh.prototype.clear=OLe;yh.prototype.delete=MLe;yh.prototype.get=KLe;yh.prototype.has=ULe;yh.prototype.set=HLe;g_.exports=yh});var U0=I((yAt,f_)=>{var GLe=hl(),jLe=Is(),YLe=GLe(jLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=b_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}wh.prototype.clear=sOe;wh.prototype.delete=oOe;wh.prototype.get=aOe;wh.prototype.has=AOe;wh.prototype.set=lOe;x_.exports=wh});var D_=I((kAt,k_)=>{var P_=H0(),cOe="Expected a function";function KT(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KT.Cache||P_),t}KT.Cache=P_;k_.exports=KT});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var N_=I((RAt,T_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});T_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=N_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((TAt,O_)=>{var BOe=fC(),QOe=1/0;function bOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-QOe?"-0":e}O_.exports=bOe});var im=I((NAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t<i;)r=r[vOe(e[t++])];return t&&t==i?r:void 0}M_.exports=xOe});var UT=I((LAt,K_)=>{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var Qh=I((OAt,H_)=>{var U_=UT();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var G0=I((MAt,G_)=>{var ROe=Qh(),FOe=Ih(),TOe=Object.prototype,NOe=TOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(NOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}G_.exports=LOe});var nm=I((KAt,j_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r<e}j_.exports=KOe});var HT=I((UAt,q_)=>{var UOe=G0(),HOe=Bh(),GOe=nm(),Y_=xn(),jOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n<s;){var l=jOe(e[n]),c=t;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(n!=o){var u=a[l];c=i?i(u,l,a):void 0,c===void 0&&(c=Y_(u)?u:GOe(e[n+1])?[]:{})}UOe(a,l,c),a=a[l]}return r}q_.exports=YOe});var W_=I((HAt,J_)=>{var qOe=im(),JOe=HT(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i<n;){var o=e[i],a=qOe(r,o);t(a,o)&&JOe(s,WOe(o,r),a)}return s}J_.exports=zOe});var V_=I((GAt,z_)=>{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((jAt,X_)=>{var XOe=Nc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var j0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var GT=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=j0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i<n;){var o=uMe(e[i]);if(!(s=r!=null&&t(r,o)))break;r=r[o]}return s||++i!=n?s:(n=r==null?0:r.length,!!n&&cMe(n)&&lMe(o,n)&&(AMe(r)||aMe(r)))}r$.exports=gMe});var jT=I((WAt,i$)=>{var fMe=V_(),hMe=GT();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=jT();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}o$.exports=EMe});var c$=I((XAt,l$)=>{var a$=Tc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),QMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QMe),n||(n=[]);++s<o;){var a=r[s];e>0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var bMe=f$();function SMe(r){var e=r==null?0:r.length;return e?bMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YT=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n<s;)o[n]=i[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=i[n];return a[e]=t(o),xMe(r,this,a)}}E$.exports=PMe});var y$=I((tlt,I$)=>{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var b$=I((ilt,Q$)=>{var RMe=y$(),B$=UT(),FMe=q0(),TMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;Q$.exports=TMe});var v$=I((nlt,S$)=>{var NMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=NMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qT=I((slt,x$)=>{var KMe=b$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var GMe=p$(),jMe=YT(),YMe=qT();function qMe(r){return YMe(jMe(r,void 0,GMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var j$=I((kct,G$)=>{"use strict";var _T;try{_T=Map}catch{}var $T;try{$T=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_T&&r instanceof _T)return new Map(Array.from(r.entries()));if($T&&r instanceof $T)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}G$.exports=H$});var am=I(eN=>{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Tct,tee)=>{var p1e=eee(),d1e=GT();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tN=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tN;eQ.default=y1e});var iN=I(rN=>{"use strict";Object.defineProperty(rN,"__esModule",{value:!0});rN.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.default=void 0;var B1e=nee(am()),Q1e=nee(iN());function nee(r){return r&&r.__esModule?r:{default:r}}function nN(){return nN=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},nN.apply(this,arguments)}var b1e=/\$\{\s*(\w+)\s*\}/g,Ph=class extends Error{static formatError(e,t){let i=t.label||t.path||"this";return i!==t.path&&(t=nN({},t,{path:i})),typeof e=="string"?e.replace(b1e,(n,s)=>(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tQ.default=Ph});var rQ=I(oN=>{"use strict";Object.defineProperty(oN,"__esModule",{value:!0});oN.default=x1e;var sN=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sN.default(o,s,l)):c(null,s);for(let h=0;h<i.length;h++){let p=i[h];p(n,function(m){if(m){if(!sN.default.isError(m))return c(m,s);if(t)return m.value=s,c(m,s);g.push(m)}if(--u<=0){if(g.length&&(a&&g.sort(a),o.length&&g.push(...o),o=g),o.length){c(new sN.default(o,s,l),s);return}c(null,s)}})}}});var oee=I((Uct,see)=>{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aN=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((Gct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}Aee.exports=R1e});var uee=I((jct,cee)=>{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var T1e=Is(),N1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?T1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||N1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Nc(),U1e=j0(),H1e=Jo(),G1e="[object Arguments]",j1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[G1e]=mr[j1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var iQ=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nQ=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AN=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AN&&AN.binding&&AN.binding("util")}catch{}}();Dh.exports=dKe});var sQ=I((Jct,yee)=>{var CKe=dee(),mKe=iQ(),Eee=nQ(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lN=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),QKe=nm(),bKe=sQ(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&bKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||QKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var oQ=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cN=I((Vct,Qee)=>{function DKe(r,e){return function(t){return r(e(t))}}Qee.exports=DKe});var See=I((Xct,bee)=>{var RKe=cN(),FKe=RKe(Object.keys,Object);bee.exports=FKe});var xee=I((Zct,vee)=>{var TKe=oQ(),NKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!TKe(r))return NKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=j0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var GKe=lN(),jKe=xee(),YKe=fm();function qKe(r){return YKe(r)?GKe(r):jKe(r)}kee.exports=qKe});var uN=I((eut,Dee)=>{var JKe=aN(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Nee=I((rut,Tee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Tee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length<iUe-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new rUe(i)}return t.set(r,e),this.size=t.size,this}Uee.exports=nUe});var hm=I((out,Gee)=>{var sUe=tm(),oUe=Fee(),aUe=Nee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;Gee.exports=Fh});var Yee=I((aut,jee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}jee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function aQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e<t;)this.add(r[e])}aQ.prototype.add=aQ.prototype.push=pUe;aQ.prototype.has=dUe;Wee.exports=aQ});var Xee=I((cut,Vee)=>{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}Vee.exports=CUe});var _ee=I((uut,Zee)=>{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gN=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function QUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g<a;){var d=r[g],m=e[g];if(i)var y=o?i(m,d,g,e,r,s):i(d,m,g,r,e,s);if(y!==void 0){if(y)continue;h=!1;break}if(p){if(!IUe(e,function(B,S){if(!yUe(p,S)&&(d===B||n(d,B,t,i,s)))return p.push(S)})){h=!1;break}}else if(!(d===m||n(d,m,t,i,s))){h=!1;break}}return s.delete(r),s.delete(e),h}$ee.exports=QUe});var fN=I((fut,ete)=>{var bUe=Is(),SUe=bUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Tc(),ote=fN(),PUe=Ih(),kUe=gN(),DUe=rte(),RUe=nte(),FUe=1,TUe=2,NUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",GUe="[object String]",jUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hN=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case NUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case GUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=TUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case jUe:if(hN)return hN.call(r)==hN.call(e)}return!1}Ate.exports=JUe});var pN=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t<i;){var o=r[t];e(o,t,r)&&(s[n++]=o)}return s}ute.exports=XUe});var dN=I((Eut,fte)=>{function ZUe(){return[]}fte.exports=ZUe});var AQ=I((Iut,pte)=>{var _Ue=gte(),$Ue=dN(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CN=I((yut,dte)=>{var i2e=pN(),n2e=AQ(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CN(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g<l;){h=a[g];var B=r[h],S=e[h];if(i)var P=o?i(S,B,h,e,r,s):i(B,S,h,r,e,s);if(!(P===void 0?B===S||n(B,S,t,i,s):P)){m=!1;break}y||(y=h=="constructor")}if(m&&!y){var F=r.constructor,H=e.constructor;F!=H&&"constructor"in r&&"constructor"in e&&!(typeof F=="function"&&F instanceof F&&typeof H=="function"&&H instanceof H)&&(m=!1)}return s.delete(r),s.delete(e),m}mte.exports=c2e});var yte=I((But,Ite)=>{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((Qut,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var bte=I((but,Qte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");Qte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Tte)=>{var mN=yte(),EN=U0(),IN=Bte(),yN=bte(),wN=vte(),Fte=Nc(),Th=MT(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",Q2e=Th(mN),b2e=Th(EN),S2e=Th(IN),v2e=Th(yN),x2e=Th(wN),tu=Fte;(mN&&tu(new mN(new ArrayBuffer(1)))!=Rte||EN&&tu(new EN)!=xte||IN&&tu(IN.resolve())!=Pte||yN&&tu(new yN)!=kte||wN&&tu(new wN)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Th(t):"";if(i)switch(i){case Q2e:return Rte;case b2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Tte.exports=tu});var Gte=I((xut,Hte)=>{var BN=hm(),P2e=gN(),k2e=lte(),D2e=Ete(),Nte=pm(),Lte=Ss(),Ote=cm(),R2e=sQ(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lQ="[object Object]",T2e=Object.prototype,Ute=T2e.hasOwnProperty;function N2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Nte(r),c=a?Kte:Nte(e);l=l==Mte?lQ:l,c=c==Mte?lQ:c;var u=l==lQ,g=c==lQ,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BN),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BN),n(m,y,t,i,s)}}return h?(s||(s=new BN),D2e(r,e,t,i,n,s)):!1}Hte.exports=N2e});var QN=I((Put,qte)=>{var L2e=Gte(),jte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!jte(r)&&!jte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=QN(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n<s;){a=t[n];var l=a[0],c=r[l],u=a[1];if(o&&a[2]){if(c===void 0&&!(l in r))return!1}else{var g=new O2e;if(i)var h=i(c,u,l,r,e,g);if(!(h===void 0?M2e(u,c,K2e|U2e,i,g):h))return!1}}return!0}Jte.exports=H2e});var bN=I((Dut,zte)=>{var G2e=xn();function j2e(r){return r===r&&!G2e(r)}zte.exports=j2e});var Xte=I((Rut,Vte)=>{var Y2e=bN(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var SN=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Tut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=SN();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cQ=I((Nut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=QN(),tHe=cQ(),rHe=jT(),iHe=M0(),nHe=bN(),sHe=SN(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vN=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xN=I((Hut,cre)=>{var QHe=Qh(),bHe=uN(),SHe=vN();function vHe(r,e){var t={};return e=SHe(e,3),bHe(r,function(i,n,s){QHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((Gut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DN=512,ure=new ru(DN),gre=new ru(DN),fre=new ru(DN);pre.exports={Cache:ru,split:kN,normalizePath:PN,setter:function(r){var e=PN(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s<o-1;){var l=e[s];if(l==="__proto__"||l==="constructor"||l==="prototype")return i;a=a[e[s++]]}a[e[s]]=n})},getter:function(r,e){var t=PN(r);return fre.get(r)||fre.set(r,function(n){for(var s=0,o=t.length;s<o;)if(n!=null||!e)n=n[t[s++]];else return;return n})},join:function(r){return r.reduce(function(e,t){return e+(RN(t)||hre.test(t)?"["+t+"]":(e?".":"")+t)},"")},forEach:function(r,e,t){RHe(Array.isArray(r)?r:kN(r),e,t)}};function PN(r){return ure.get(r)||ure.set(r,kN(r).map(function(e){return e.replace(DHe,"$2")}))}function kN(r){return r.match(xHe)}function RHe(r,e,t){var i=r.length,n,s,o,a;for(s=0;s<i;s++)n=r[s],n&&(NHe(n)&&(n='"'+n+'"'),a=RN(n),o=!a&&/^\d+$/.test(n),e.call(t,n,a,o,s,r))}function RN(r){return typeof r=="string"&&r&&["'",'"'].indexOf(r.charAt(0))!==-1}function FHe(r){return r.match(PHe)&&!r.match(hre)}function THe(r){return kHe.test(r)}function NHe(r){return!RN(r)&&(FHe(r)||THe(r))}});var iu=I(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),uQ={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===uQ.context,this.isValue=this.key[0]===uQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?uQ.context:this.isValue?uQ.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(TN=>{"use strict";Object.defineProperty(TN,"__esModule",{value:!0});TN.default=HHe;var MHe=FN(xN()),gQ=FN(eu()),KHe=FN(iu());function FN(r){return r&&r.__esModule?r:{default:r}}function fQ(){return fQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},fQ.apply(this,arguments)}function UHe(r,e){if(r==null)return{};var t={},i=Object.keys(r),n,s;for(s=0;s<i.length;s++)n=i[s],!(e.indexOf(n)>=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fQ({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gQ.default(gQ.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fQ({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gQ.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gQ.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var NN=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var GHe=dm(),jHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,GHe.forEach)(e,(a,l,c)=>{let u=l?jHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});hQ.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hQ.default=Im});var oA=I(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.default=void 0;var Ire=sA(j$()),Nh=nA(),WHe=sA(iee()),yre=sA(rQ()),pQ=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=NN(),XHe=sA(iN()),Bre=sA(eu()),Qre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Rs.apply(this,arguments)}var co=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Qre.default,this._blacklist=new Qre.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Nh.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function bre(){return new LT}bre.prototype=LT.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eje=r=>r==null;CQ.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Nre=I(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Fre;bm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new Qm}var Qm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Qm;Fre.prototype=Qm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Tre(Lh()),Aje=Tre(oA());function Tre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||i<this.resolve(e)}})}moreThan(e,t=nu.number.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},test(i){return(0,su.default)(i)||i>this.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KT;xm.default=void 0;var gje=mQ(Mre()),Kre=nA(),Ure=mQ(Lh()),fje=mQ(iu()),hje=mQ(oA());function mQ(r){return r&&r.__esModule?r:{default:r}}var MT=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MT:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MT;KT.prototype=Oh.prototype;KT.INVALID_DATE=MT});var Gre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n<s;)t=e(t,r[n],n,r);return t}jre.exports=dje});var qre=I((rgt,Yre)=>{function Cje(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Qje="\\u0300-\\u036f",bje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=Qje+bje+Sje,xje="["+vje+"]",Pje=RegExp(xje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(Pje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Nje(r){return Fje.test(r)}_re.exports=Nje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Tje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Tje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Gje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Yje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Yje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Gje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eGe=die+pie+Zje,tGe="(?:"+[qje,fie,hie].join("|")+")"+eGe,rGe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tGe].join("|"),"g");function iGe(r){return r.match(rGe)||[]}Cie.exports=iGe});var Iie=I((Agt,Eie)=>{var nGe=Zre(),sGe=$re(),oGe=Vf(),aGe=mie();function AGe(r,e,t){return r=oGe(r),e=t?void 0:e,e===void 0?sGe(r)?aGe(r):nGe(r):r.match(e)||[]}Eie.exports=AGe});var UT=I((lgt,yie)=>{var lGe=Gre(),cGe=Vre(),uGe=Iie(),gGe="['\u2019]",fGe=RegExp(gGe,"g");function hGe(r){return function(e){return lGe(uGe(cGe(e).replace(fGe,"")),r,"")}}yie.exports=hGe});var Bie=I((cgt,wie)=>{var pGe=UT(),dGe=pGe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dGe});var bie=I((ugt,Qie)=>{var CGe=xB(),mGe=UT(),EGe=mGe(function(r,e,t){return e=e.toLowerCase(),r+(t?CGe(e):e)});Qie.exports=EGe});var vie=I((ggt,Sie)=>{var IGe=Qh(),yGe=uT(),wGe=vT();function BGe(r,e){var t={};return e=wGe(e,3),yGe(r,function(i,n,s){IGe(t,e(i,n,s),i)}),t}Sie.exports=BGe});var Pie=I((fgt,HT)=>{HT.exports=function(r){return xie(QGe(r),r)};HT.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bGe(e),a=SGe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function QGe(r){for(var e=new Set,t=0,i=r.length;t<i;t++){var n=r[t];e.add(n[0]),e.add(n[1])}return Array.from(e)}function bGe(r){for(var e=new Map,t=0,i=r.length;t<i;t++){var n=r[t];e.has(n[0])||e.set(n[0],new Set),e.has(n[1])||e.set(n[1],new Set),e.get(n[0]).add(n[1])}return e}function SGe(r){for(var e=new Map,t=0,i=r.length;t<i;t++)e.set(r[t],t);return e}});var kie=I(jT=>{"use strict";Object.defineProperty(jT,"__esModule",{value:!0});jT.default=RGe;var vGe=EQ(Am()),xGe=EQ(Pie()),PGe=dm(),kGe=EQ(iu()),DGe=EQ(xh());function EQ(r){return r&&r.__esModule?r:{default:r}}function RGe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,PGe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vGe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kGe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DGe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xGe.default.array(i,t).reverse()}});var Rie=I(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=FGe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FGe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Nie=ia(Bie()),NGe=ia(bie()),TGe=ia(vie()),LGe=ia(xT()),OGe=dm(),Tie=nA(),MGe=ia(kie()),Oie=ia(Rie()),KGe=ia(rQ()),UGe=ia(eu()),YT=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Kh.apply(this,arguments)}var Lie=r=>Object.prototype.toString.call(r)==="[object Object]";function HGe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jGe=(0,Oie.default)([]),Pm=class extends YT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jGe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UGe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KGe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YT.default&&s instanceof YT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MGe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OGe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Tie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HGe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Tie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,TGe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(NGe.default)}snakeCase(){return this.transformKeys(Nie.default)}constantCase(){return this.transformKeys(e=>(0,Nie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LGe.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qT=Uh(Lh()),GGe=Uh(xh()),YGe=Uh(am()),JT=nA(),qGe=Uh(rQ()),JGe=Uh(eu()),WGe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function IQ(){return IQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},IQ.apply(this,arguments)}function Uie(r){return new Dm(r)}var Dm=class extends WGe.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,IQ({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JGe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;y<d.length;y++){let B=d[y],S=`${t.path||""}[${y}]`,P=IQ({},t,{path:S,strict:!0,parent:d,index:y,originalValue:h[y]});m[y]=(F,H)=>c.validate(B,P,H)}(0,qGe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,GGe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YGe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XGe;Fm.default=void 0;var zGe=VGe(xh());function VGe(r){return r&&r.__esModule?r:{default:r}}function XGe(r){return new yQ(r)}var yQ=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zGe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZGe=yQ;Fm.default=ZGe});var Gie=I(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=eYe;var _Ge=$Ge(nA());function $Ge(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ge.default[e][t]=r[e][t]})})}});var VT=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zT=ou(Dre()),qie=ou(Nre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=jie(),iYe=Nm(eu()),nYe=Nm(TT()),Xie=Nm(xh()),sYe=Nm(Gie()),oYe=Nm(oA());function Nm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Ngt,ZT)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Ft.swap=(r,e,t)=>{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Ft.get=(r={},e="",t)=>{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};QQ.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=QYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var bYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=bYe.merge(r.options)}});var Qne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xYe=uo(),nL=Yi(),go=Bne.exports=wne,kr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${kr}G`,down:`${kr}J`,esc:kr,getPosition:`${kr}6n`,hide:`${kr}?25l`,line:`${kr}2K`,lineEnd:`${kr}K`,lineStart:`${kr}1K`,restorePosition:kr+(Ine?"8":"u"),savePosition:kr+(Ine?"7":"s"),screen:`${kr}2J`,show:`${kr}?25h`,up:`${kr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${kr}${r}C`,backward:(r=1)=>`${kr}${r}D`,nextLine:(r=1)=>`${kr}E`.repeat(r),prevLine:(r=1)=>`${kr}F`.repeat(r),up:(r=1)=>r?`${kr}${r}A`:"",down:(r=1)=>r?`${kr}${r}B`:"",right:(r=1)=>r?`${kr}${r}C`:"",left:(r=1)=>r?`${kr}${r}D`:"",to(r,e){return e?`${kr}${e+1};${r+1}H`:`${kr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t<r;t++)e+=go.erase.line+(t<r-1?go.cursor.up(1):"");return r&&(e+=go.code.beginning),e}};go.clear=(r="",e=process.stdout.columns)=>{if(!e)return oL.line+au.to(0);let t=s=>[...xYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Gh=I((Ggt,Sne)=>{"use strict";var PYe=J("events"),bne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Rn=Yi(),Au=Qne(),Om=class extends PYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Rn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=bne.unstyle(i);let n=bne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Nh.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Nh.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Nh.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Nh.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Nh.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LN=ZHe.default,$He=LN;ym.default=$He;function bre(){return new LN}bre.prototype=LN.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eGe=r=>r==null;CQ.default=eGe});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tGe=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tGe.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Tre=I(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Fre;bm.default=void 0;var ra=nA(),aA=Rre(Lh()),rGe=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var iGe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nGe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sGe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oGe=r=>(0,aA.default)(r)||r===r.trim(),aGe={}.toString();function Fre(){return new Qm}var Qm=class extends rGe.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aGe?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(iGe,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nGe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sGe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oGe})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Qm;Fre.prototype=Qm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Nre(Lh()),AGe=Nre(oA());function Nre(r){return r&&r.__esModule?r:{default:r}}var lGe=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends AGe.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lGe(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||i<this.resolve(e)}})}moreThan(e,t=nu.number.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},test(i){return(0,su.default)(i)||i>this.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(ON=>{"use strict";Object.defineProperty(ON,"__esModule",{value:!0});ON.default=uGe;var cGe=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uGe(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cGe.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KN;xm.default=void 0;var gGe=mQ(Mre()),Kre=nA(),Ure=mQ(Lh()),fGe=mQ(iu()),hGe=mQ(oA());function mQ(r){return r&&r.__esModule?r:{default:r}}var MN=new Date(""),pGe=r=>Object.prototype.toString.call(r)==="[object Date]";function KN(){return new Oh}var Oh=class extends hGe.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gGe.default)(e),isNaN(e)?MN:new Date(e))})})}_typeCheck(e){return pGe(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fGe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MN;KN.prototype=Oh.prototype;KN.INVALID_DATE=MN});var jre=I((tgt,Gre)=>{function dGe(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n<s;)t=e(t,r[n],n,r);return t}Gre.exports=dGe});var qre=I((rgt,Yre)=>{function CGe(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=CGe});var Wre=I((igt,Jre)=>{var mGe=qre(),EGe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},IGe=mGe(EGe);Jre.exports=IGe});var Vre=I((ngt,zre)=>{var yGe=Wre(),wGe=Vf(),BGe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,QGe="\\u0300-\\u036f",bGe="\\ufe20-\\ufe2f",SGe="\\u20d0-\\u20ff",vGe=QGe+bGe+SGe,xGe="["+vGe+"]",PGe=RegExp(xGe,"g");function kGe(r){return r=wGe(r),r&&r.replace(BGe,yGe).replace(PGe,"")}zre.exports=kGe});var Zre=I((sgt,Xre)=>{var DGe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function RGe(r){return r.match(DGe)||[]}Xre.exports=RGe});var $re=I((ogt,_re)=>{var FGe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function TGe(r){return FGe.test(r)}_re.exports=TGe});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",NGe="\\u0300-\\u036f",LGe="\\ufe20-\\ufe2f",OGe="\\u20d0-\\u20ff",MGe=NGe+LGe+OGe,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",KGe="\\xac\\xb1\\xd7\\xf7",UGe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",HGe="\\u2000-\\u206f",GGe=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",jGe="\\ufe0e\\ufe0f",Aie=KGe+UGe+HGe+GGe,lie="['\u2019]",eie="["+Aie+"]",YGe="["+MGe+"]",cie="\\d+",qGe="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",JGe="\\ud83c[\\udffb-\\udfff]",WGe="(?:"+YGe+"|"+JGe+")",zGe="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",VGe="\\u200d",tie="(?:"+uie+"|"+gie+")",XGe="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=WGe+"?",die="["+jGe+"]?",ZGe="(?:"+VGe+"(?:"+[zGe,fie,hie].join("|")+")"+die+pie+")*",_Ge="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$Ge="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eje=die+pie+ZGe,tje="(?:"+[qGe,fie,hie].join("|")+")"+eje,rje=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",XGe+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$Ge,_Ge,cie,tje].join("|"),"g");function ije(r){return r.match(rje)||[]}Cie.exports=ije});var Iie=I((Agt,Eie)=>{var nje=Zre(),sje=$re(),oje=Vf(),aje=mie();function Aje(r,e,t){return r=oje(r),e=t?void 0:e,e===void 0?sje(r)?aje(r):nje(r):r.match(e)||[]}Eie.exports=Aje});var UN=I((lgt,yie)=>{var lje=jre(),cje=Vre(),uje=Iie(),gje="['\u2019]",fje=RegExp(gje,"g");function hje(r){return function(e){return lje(uje(cje(e).replace(fje,"")),r,"")}}yie.exports=hje});var Bie=I((cgt,wie)=>{var pje=UN(),dje=pje(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dje});var bie=I((ugt,Qie)=>{var Cje=xB(),mje=UN(),Eje=mje(function(r,e,t){return e=e.toLowerCase(),r+(t?Cje(e):e)});Qie.exports=Eje});var vie=I((ggt,Sie)=>{var Ije=Qh(),yje=uN(),wje=vN();function Bje(r,e){var t={};return e=wje(e,3),yje(r,function(i,n,s){Ije(t,e(i,n,s),i)}),t}Sie.exports=Bje});var Pie=I((fgt,HN)=>{HN.exports=function(r){return xie(Qje(r),r)};HN.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bje(e),a=Sje(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function Qje(r){for(var e=new Set,t=0,i=r.length;t<i;t++){var n=r[t];e.add(n[0]),e.add(n[1])}return Array.from(e)}function bje(r){for(var e=new Map,t=0,i=r.length;t<i;t++){var n=r[t];e.has(n[0])||e.set(n[0],new Set),e.has(n[1])||e.set(n[1],new Set),e.get(n[0]).add(n[1])}return e}function Sje(r){for(var e=new Map,t=0,i=r.length;t<i;t++)e.set(r[t],t);return e}});var kie=I(GN=>{"use strict";Object.defineProperty(GN,"__esModule",{value:!0});GN.default=Rje;var vje=EQ(Am()),xje=EQ(Pie()),Pje=dm(),kje=EQ(iu()),Dje=EQ(xh());function EQ(r){return r&&r.__esModule?r:{default:r}}function Rje(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,Pje.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vje.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kje.default.isRef(o)&&o.isSibling?n(o.path,s):(0,Dje.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xje.default.array(i,t).reverse()}});var Rie=I(jN=>{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.default=Fje;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function Fje(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Tie=ia(Bie()),Tje=ia(bie()),Nje=ia(vie()),Lje=ia(xN()),Oje=dm(),Nie=nA(),Mje=ia(kie()),Oie=ia(Rie()),Kje=ia(rQ()),Uje=ia(eu()),YN=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Kh.apply(this,arguments)}var Lie=r=>Object.prototype.toString.call(r)==="[object Object]";function Hje(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var Gje=(0,Oie.default)([]),Pm=class extends YN.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Gje,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!Uje.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,Kje.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YN.default&&s instanceof YN.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,Mje.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,Oje.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Nie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=Hje(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Nie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,Nje.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(Tje.default)}snakeCase(){return this.transformKeys(Tie.default)}constantCase(){return this.transformKeys(e=>(0,Tie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Lje.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qN=Uh(Lh()),jje=Uh(xh()),Yje=Uh(am()),JN=nA(),qje=Uh(rQ()),Jje=Uh(eu()),Wje=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function IQ(){return IQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},IQ.apply(this,arguments)}function Uie(r){return new Dm(r)}var Dm=class extends Wje.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,IQ({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!Jje.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;y<d.length;y++){let B=d[y],S=`${t.path||""}[${y}]`,P=IQ({},t,{path:S,strict:!0,parent:d,index:y,originalValue:h[y]});m[y]=(F,H)=>c.validate(B,P,H)}(0,qje.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,jje.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Yje.default)(e));return t.innerType=e,t}length(e,t=JN.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qN.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JN.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qN.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JN.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var Gie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=Xje;Fm.default=void 0;var zje=Vje(xh());function Vje(r){return r&&r.__esModule?r:{default:r}}function Xje(r){return new yQ(r)}var yQ=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zje.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},Zje=yQ;Fm.default=Zje});var jie=I(WN=>{"use strict";Object.defineProperty(WN,"__esModule",{value:!0});WN.default=eYe;var _je=$je(nA());function $je(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_je.default[e][t]=r[e][t]})})}});var VN=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zN.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zN=ou(Dre()),qie=ou(Tre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=Gie(),iYe=Tm(eu()),nYe=Tm(NN()),Xie=Tm(xh()),sYe=Tm(jie()),oYe=Tm(oA());function Tm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XN});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Tgt,ZN)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZN.exports=ine();ZN.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_N=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Ft.swap=(r,e,t)=>{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` +`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Ft.get=(r={},e="",t)=>{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_N.forEach(n=>n()),t===!0&&process.exit(128+i))};_N.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_N.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(Gh=>{"use strict";Gh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Gh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Gh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Gh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Gh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` +`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};QQ.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$N=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$N});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=QYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((Ggt,mne)=>{"use strict";var bYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=bYe.merge(r.options)}});var Qne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xYe=uo(),nL=Yi(),go=Bne.exports=wne,kr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${kr}G`,down:`${kr}J`,esc:kr,getPosition:`${kr}6n`,hide:`${kr}?25l`,line:`${kr}2K`,lineEnd:`${kr}K`,lineStart:`${kr}1K`,restorePosition:kr+(Ine?"8":"u"),savePosition:kr+(Ine?"7":"s"),screen:`${kr}2J`,show:`${kr}?25h`,up:`${kr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${kr}${r}C`,backward:(r=1)=>`${kr}${r}D`,nextLine:(r=1)=>`${kr}E`.repeat(r),prevLine:(r=1)=>`${kr}F`.repeat(r),up:(r=1)=>r?`${kr}${r}A`:"",down:(r=1)=>r?`${kr}${r}B`:"",right:(r=1)=>r?`${kr}${r}C`:"",left:(r=1)=>r?`${kr}${r}D`:"",to(r,e){return e?`${kr}${e+1};${r+1}H`:`${kr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t<r;t++)e+=go.erase.line+(t<r-1?go.cursor.up(1):"");return r&&(e+=go.code.beginning),e}};go.clear=(r="",e=process.stdout.columns)=>{if(!e)return oL.line+au.to(0);let t=s=>[...xYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var jh=I((jgt,Sne)=>{"use strict";var PYe=J("events"),bne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Rn=Yi(),Au=Qne(),Om=class extends PYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=TYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Rn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=bne.unstyle(i);let n=bne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` `),c=l[0],u=l[l.length-1],h=(i+(t?" "+t:"")).length,p=h<c.length?c.slice(h+1):"";return{header:o,prompt:c,after:p,rest:l.slice(1),last:u}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let t=` `+this.symbols.pointer+" ";typeof e=="string"?t+=e.trim():t+="Invalid input",this.state.error=` `+this.styles.danger(t),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),t=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Au.cursor.down(e.rest.length)),this.write(` -`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Rn.isObject(e)&&(e=e[i.status]||e.pending),Rn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Rn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Rn.isObject(s)&&(s=s[i.status]||s.pending),Rn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Rn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Rn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Rn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Rn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Rn.height(this.stdout,25)}get width(){return this.options.columns||Rn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function NYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var TYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=Pne(),bQ=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=bQ,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l<o.length;l++){let c=o[l]=await this.toChoice(o[l],n++,a);i.push(c),c.choices&&await s(c.choices,c)}return i};return s(e,t).then(o=>(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,bQ.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(t=>t.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=bQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(bQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jYe=Mm(),cL=Yi(),uL=class extends jYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` +`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Rn.isObject(e)&&(e=e[i.status]||e.pending),Rn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Rn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Rn.isObject(s)&&(s=s[i.status]||s.pending),Rn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Rn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Rn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Rn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Rn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Rn.height(this.stdout,25)}get width(){return this.options.columns||Rn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function TYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` +`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var NYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=NYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=jh(),MYe=Pne(),bQ=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=bQ,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l<o.length;l++){let c=o[l]=await this.toChoice(o[l],n++,a);i.push(c),c.choices&&await s(c.choices,c)}return i};return s(e,t).then(o=>(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,bQ.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(t=>t.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=bQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(bQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var GYe=Mm(),cL=Yi(),uL=class extends GYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` `),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=SQ(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vQ=I((_gt,Gne)=>{"use strict";var _Ye=Gh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` +`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Nne=I((Wgt,Tne)=>{"use strict";var jYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends jYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Tne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=SQ(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var Gne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vQ=I((_gt,jne)=>{"use strict";var _Ye=jh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};jne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=jh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` `,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):sqe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` `)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xQ=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xQ([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xQ([...s,t]),present:o};case"save":return{past:xQ([...i,t]),present:""};case"remove":return o=xQ(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),QL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=QL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),bL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=bL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return i<this.min-t?this.alert():(this.input=`${i-t}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(t=>this.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i<this.scale.length;i++)t.scale.push({index:i})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}heading(e,t,i){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(` @@ -224,16 +224,16 @@ attempted value: ${s} `)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=PL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});u<s.length-1;){let d=g();if(/^[^\S\n ]$/.test(d)){p({type:"text",value:d});continue}if(d===` `){p({type:"newline",value:d}),c++;continue}if(d==="\\"){d+=g(),p({type:"text",value:d});continue}if((d==="$"||d==="#"||d==="{")&&h()==="{"){let y=g();d+=y;let B={type:"template",open:d,inner:"",close:"",value:d},S;for(;S=g();){if(S==="}"){h()==="}"&&(S+=g()),B.value+=S,B.close=S;break}S===":"?(B.initial="",B.key=B.inner):B.initial!==void 0&&(B.initial+=S),B.value+=S,B.inner+=S}B.template=B.open+(B.initial||B.inner)+B.close,B.key=B.key||B.inner,e.hasOwnProperty(B.key)&&(B.initial=e[B.key]),B=t(B),p(B),l.push(B.key),i.add(B.key);let P=a.find(F=>F.name===B.key);B.field=n.find(F=>F.name===B.key),P||(P=new DL(B),a.push(P)),P.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,P,F,H)=>{let q=await c(S,P,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let P=S.value,F=S.key;if(S.type!=="template"){P&&(g.output+=P);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,P].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=P;P=await l(P,g,H,p),q!==P?(g.values[F]=q,P=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,P=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(P=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(P=r.styles.danger(q)),p===g.index&&(W!==P?P=r.styles.underline(P):P=r.styles.heading(fse.unstyle(P))),p++}P&&(g.output+=P)}let m=g.output.split(` `).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(P=>{m[P][0]===" "&&(m[P]=g.styles.danger(g.symbols.bullet)+m[P].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` -`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Gh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` +`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=jh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` `].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",h=await this.hint()||"",p=i?"":await this.interpolate(this.state),d=this.state.key=t[e]||"",m=await this.format(d),y=await this.footer();m&&(c+=" "+m),h&&!m&&this.state.completed===0&&(c+=" "+h),this.clear(n);let B=[u,c,p,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} `;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mqe.unstyle(i).split(` `).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use <shift>+<up/down> to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),NL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` +`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use <shift>+<up/down> to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),TL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=Qqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` `);return i&&(d=this.styles.cyan(d),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` `)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Qqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i<r+1;i++)t.push({i,selected:!1});return t}Ise.exports=NL});var Bse=I((pft,wse)=>{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),TL=class extends bqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Qse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Gh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}jse.exports=Dqe});var Jh=I((Aht,Yse)=>{var Rqe=j0(),Fqe=Qh();function Nqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=i?i(t[a],r[a],a,t,r):void 0;l===void 0&&(l=r[a]),n?Fqe(t,a,l):Rqe(t,a,l)}return t}Yse.exports=Nqe});var Jse=I((lht,qse)=>{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=xn(),Uqe=oQ(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t<i;)e[t]=r[t];return e}noe.exports=tJe});var ooe=I((pht,soe)=>{var rJe=Jh(),iJe=AQ();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kQ=I((dht,aoe)=>{var sJe=cT(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kQ(),lJe=AQ(),cJe=dT(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pT(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var DQ=I((yht,doe)=>{var poe=fT();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var QJe=DQ();function bJe(r,e){var t=e?QJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=bJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var boe=I((Qht,Qoe)=>{var yoe=Nc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}Qoe.exports=xJe});var zL=I((bht,Soe)=>{var PJe=DQ();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=DQ(),RJe=moe(),FJe=Ioe(),NJe=boe(),TJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",GJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return TJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case GJe:return NJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=xn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kQ(),o3e=oQ();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Noe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Noe(),f3e=iQ(),Toe=nQ(),Loe=Toe&&Toe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,Goe)=>{var E3e=Uoe(),I3e=iQ(),Hoe=nQ(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Goe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Gse(),Q3e=j0(),b3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CT(),R3e=goe(),F3e=pm(),N3e=hoe(),T3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=xn(),H3e=Yoe(),j3e=Rh(),G3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[sWe]=lr[oWe]=lr[z3e]=lr[V3e]=lr[aWe]=lr[AWe]=lr[lWe]=lr[cWe]=lr[uWe]=lr[_3e]=lr[$3e]=lr[Woe]=lr[eWe]=lr[tWe]=lr[rWe]=lr[iWe]=lr[gWe]=lr[fWe]=lr[hWe]=lr[pWe]=!0;lr[X3e]=lr[Joe]=lr[nWe]=!1;function RQ(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=N3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,b3e(o,r))}else{if(!lr[g])return n?r:{};o=T3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(RQ(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,RQ(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?G3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),Q3e(o,B,RQ(y,e,t,B,r,s))}),o}zoe.exports=RQ});var XL=I((Nht,Xoe)=>{var dWe=Voe(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xoe.exports=EWe});var _oe=I((Tht,Zoe)=>{var IWe=HN();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zoe.exports=yWe});var iae=I((Hht,rae)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=wWe});var sae=I((jht,nae)=>{var BWe=im(),QWe=HR();function bWe(r,e){return e.length<2?r:BWe(r,QWe(e,0,-1))}nae.exports=bWe});var aae=I((Ght,oae)=>{var SWe=Bh(),vWe=iae(),xWe=sae(),PWe=$c();function kWe(r,e){return e=SWe(e,r),r=xWe(r,e),r==null||delete r[PWe(vWe(e))]}oae.exports=kWe});var lae=I((Yht,Aae)=>{var DWe=aae();function RWe(r,e){return r==null?!0:DWe(r,e)}Aae.exports=RWe});var hae=I((mpt,TWe)=>{TWe.exports={name:"@yarnpkg/cli",version:"3.8.3",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Gmt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,Pae)=>{"use strict";var e8e=oO();function t8e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=e8e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=t8e});var Fae=I((qmt,Rae)=>{"use strict";var r8e=kae();function i8e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var n8e=i8e(r8e),s8e="text/plain",o8e="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),a8e=(r,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===o8e)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==s8e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function A8e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return a8e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=A8e(r,e));let n=n8e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Tae)=>{"use strict";var l8e=oO();function Nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=l8e(r);if(r=r.substring(r.indexOf("://")+3),Nae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@")<r.indexOf(":")}Tae.exports=Nae});var Kae=I((Wmt,Mae)=>{"use strict";var c8e=Fae(),Oae=Lae();function u8e(r){var e=c8e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=u8e});var Hae=I((zmt,Uae)=>{"use strict";var g8e=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=g8e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?f8e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+h8e(r)+n;default:return r.href}};function f8e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function h8e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var T8e=Qh(),L8e=Ih();function O8e(r,e,t){(t!==void 0&&!L8e(r[e],t)||t===void 0&&!(e in r))&&T8e(r,e,t)}AAe.exports=O8e});var cAe=I((Kyt,lAe)=>{var M8e=fm(),K8e=Jo();function U8e(r){return K8e(r)&&M8e(r)}lAe.exports=U8e});var fAe=I((Uyt,gAe)=>{var H8e=Tc(),j8e=kQ(),G8e=Jo(),Y8e="[object Object]",q8e=Function.prototype,J8e=Object.prototype,uAe=q8e.toString,W8e=J8e.hasOwnProperty,z8e=uAe.call(Object);function V8e(r){if(!G8e(r)||H8e(r)!=Y8e)return!1;var e=j8e(r);if(e===null)return!0;var t=W8e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==z8e}gAe.exports=V8e});var DO=I((Hyt,hAe)=>{function X8e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=X8e});var dAe=I((jyt,pAe)=>{var Z8e=Jh(),_8e=Wh();function $8e(r){return Z8e(r,_8e(r))}pAe.exports=$8e});var wAe=I((Gyt,yAe)=>{var CAe=kO(),e4e=qL(),t4e=zL(),r4e=JL(),i4e=VL(),mAe=sm(),EAe=Ss(),n4e=cAe(),s4e=cm(),o4e=K0(),a4e=xn(),A4e=fAe(),l4e=sQ(),IAe=DO(),c4e=dAe();function u4e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s4e(l),d=!h&&!p&&l4e(l);u=l,h||p||d?EAe(a)?u=a:n4e(a)?u=r4e(a):p?(g=!1,u=e4e(l,!0)):d?(g=!1,u=t4e(l,!0)):u=[]:A4e(l)||mAe(l)?(u=a,mAe(a)?u=c4e(a):(!a4e(a)||o4e(a))&&(u=i4e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u4e});var bAe=I((Yyt,QAe)=>{var g4e=hm(),f4e=kO(),h4e=aT(),p4e=wAe(),d4e=xn(),C4e=Wh(),m4e=DO();function BAe(r,e,t,i,n){r!==e&&h4e(e,function(s,o){if(n||(n=new g4e),d4e(s))p4e(r,e,o,t,BAe,i,n);else{var a=i?i(m4e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f4e(r,o,a)}},C4e)}QAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E4e=q0(),I4e=YN(),y4e=qN();function w4e(r,e){return y4e(I4e(r,e,E4e),r+"")}SAe.exports=w4e});var PAe=I((Jyt,xAe)=>{var B4e=Ih(),Q4e=fm(),b4e=nm(),S4e=xn();function v4e(r,e,t){if(!S4e(t))return!1;var i=typeof e;return(i=="number"?Q4e(t)&&b4e(e,t.length):i=="string"&&e in t)?B4e(t[e],r):!1}xAe.exports=v4e});var DAe=I((Wyt,kAe)=>{var x4e=vAe(),P4e=PAe();function k4e(r){return x4e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P4e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var a=t[i];a&&r(e,a,i,s)}return e})}kAe.exports=k4e});var FAe=I((zyt,RAe)=>{var D4e=bAe(),R4e=DAe(),F4e=R4e(function(r,e,t){D4e(r,e,t)});RAe.exports=F4e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Fn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Fn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Fn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Fn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Fn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Fn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Fn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Fn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a<l;a++){let c=e[a];if(i&&n._.length>0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g<u.length;g++){let h=u[g],[p,d]=h[1]==="-"?h.split(/=(.*)/,2):[h,void 0],m=p;for(;m in s;)m=s[m];if(!(m in o))if(t){n._.push(h);continue}else throw new Fn(`unknown or unexpected option: ${p}`,"ARG_UNKNOWN_OPTION");let[y,B]=o[m];if(!B&&g+1<u.length)throw new Fn(`option requires argument (but was followed by another short argument): ${p}`,"ARG_MISSING_REQUIRED_SHORTARG");if(B)n[m]=y(!0,m,n[m]);else if(d===void 0){if(e.length<a+2||e[a+1].length>1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Fn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Fn;fle.exports=uE});var ble=I((_Bt,Qle)=>{var eM;Qle.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((Z0t,Tle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ns=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Nle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Nle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Nze(e,t),Tze(r,e,i,t)}function Nze(r,e){return e.fs_.mkdir(Ns.dirname(r),{recursive:!0})}function Tze(r,e,t,i){let n=Nle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Gze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ns.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ns.relative(Ns.dirname(e),r).split("/").join("\\"),s=Ns.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Qqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i<r+1;i++)t.push({i,selected:!1});return t}Ise.exports=TL});var Bse=I((pft,wse)=>{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),NL=class extends bqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};Qse.exports=NL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Nne());ci("BasicAuth",()=>Gne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||jh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var jse=I((aht,Gse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}Gse.exports=Dqe});var Jh=I((Aht,Yse)=>{var Rqe=G0(),Fqe=Qh();function Tqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=i?i(t[a],r[a],a,t,r):void 0;l===void 0&&(l=r[a]),n?Fqe(t,a,l):Rqe(t,a,l)}return t}Yse.exports=Tqe});var Jse=I((lht,qse)=>{var Nqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Nqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=xn(),Uqe=oQ(),Hqe=zse(),Gqe=Object.prototype,jqe=Gqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!jqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lN(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t<i;)e[t]=r[t];return e}noe.exports=tJe});var ooe=I((pht,soe)=>{var rJe=Jh(),iJe=AQ();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kQ=I((dht,aoe)=>{var sJe=cN(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kQ(),lJe=AQ(),cJe=dN(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pN(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var DQ=I((yht,doe)=>{var poe=fN();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var QJe=DQ();function bJe(r,e){var t=e?QJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=bJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var boe=I((Qht,Qoe)=>{var yoe=Tc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}Qoe.exports=xJe});var zL=I((bht,Soe)=>{var PJe=DQ();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=DQ(),RJe=moe(),FJe=Ioe(),TJe=boe(),NJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",GJe="[object String]",jJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return NJe(r,t);case MJe:return new i;case KJe:case GJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case jJe:return TJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=xn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kQ(),o3e=oQ();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Toe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Toe(),f3e=iQ(),Noe=nQ(),Loe=Noe&&Noe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,joe)=>{var E3e=Uoe(),I3e=iQ(),Hoe=nQ(),Goe=Hoe&&Hoe.isSet,y3e=Goe?I3e(Goe):E3e;joe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=jse(),Q3e=G0(),b3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CN(),R3e=goe(),F3e=pm(),T3e=hoe(),N3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=xn(),H3e=Yoe(),G3e=Rh(),j3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[sWe]=lr[oWe]=lr[z3e]=lr[V3e]=lr[aWe]=lr[AWe]=lr[lWe]=lr[cWe]=lr[uWe]=lr[_3e]=lr[$3e]=lr[Woe]=lr[eWe]=lr[tWe]=lr[rWe]=lr[iWe]=lr[gWe]=lr[fWe]=lr[hWe]=lr[pWe]=!0;lr[X3e]=lr[Joe]=lr[nWe]=!1;function RQ(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=T3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,b3e(o,r))}else{if(!lr[g])return n?r:{};o=N3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(RQ(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,RQ(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?j3e:G3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),Q3e(o,B,RQ(y,e,t,B,r,s))}),o}zoe.exports=RQ});var XL=I((Tht,Xoe)=>{var dWe=Voe(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xoe.exports=EWe});var _oe=I((Nht,Zoe)=>{var IWe=HT();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zoe.exports=yWe});var iae=I((Hht,rae)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=wWe});var sae=I((Ght,nae)=>{var BWe=im(),QWe=HR();function bWe(r,e){return e.length<2?r:BWe(r,QWe(e,0,-1))}nae.exports=bWe});var aae=I((jht,oae)=>{var SWe=Bh(),vWe=iae(),xWe=sae(),PWe=$c();function kWe(r,e){return e=SWe(e,r),r=xWe(r,e),r==null||delete r[PWe(vWe(e))]}oae.exports=kWe});var lae=I((Yht,Aae)=>{var DWe=aae();function RWe(r,e){return r==null?!0:DWe(r,e)}Aae.exports=RWe});var hae=I((mpt,NWe)=>{NWe.exports={name:"@yarnpkg/cli",version:"3.8.4",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((jmt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,Pae)=>{"use strict";var e4e=oO();function t4e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=e4e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=t4e});var Fae=I((qmt,Rae)=>{"use strict";var r4e=kae();function i4e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var n4e=i4e(r4e),s4e="text/plain",o4e="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),a4e=(r,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===o4e)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==s4e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function A4e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return a4e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=A4e(r,e));let n=n4e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Nae)=>{"use strict";var l4e=oO();function Tae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=l4e(r);if(r=r.substring(r.indexOf("://")+3),Tae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@")<r.indexOf(":")}Nae.exports=Tae});var Kae=I((Wmt,Mae)=>{"use strict";var c4e=Fae(),Oae=Lae();function u4e(r){var e=c4e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=u4e});var Hae=I((zmt,Uae)=>{"use strict";var g4e=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=g4e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?f4e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+h4e(r)+n;default:return r.href}};function f4e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function h4e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var N4e=Qh(),L4e=Ih();function O4e(r,e,t){(t!==void 0&&!L4e(r[e],t)||t===void 0&&!(e in r))&&N4e(r,e,t)}AAe.exports=O4e});var cAe=I((Kyt,lAe)=>{var M4e=fm(),K4e=Jo();function U4e(r){return K4e(r)&&M4e(r)}lAe.exports=U4e});var fAe=I((Uyt,gAe)=>{var H4e=Nc(),G4e=kQ(),j4e=Jo(),Y4e="[object Object]",q4e=Function.prototype,J4e=Object.prototype,uAe=q4e.toString,W4e=J4e.hasOwnProperty,z4e=uAe.call(Object);function V4e(r){if(!j4e(r)||H4e(r)!=Y4e)return!1;var e=G4e(r);if(e===null)return!0;var t=W4e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==z4e}gAe.exports=V4e});var DO=I((Hyt,hAe)=>{function X4e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=X4e});var dAe=I((Gyt,pAe)=>{var Z4e=Jh(),_4e=Wh();function $4e(r){return Z4e(r,_4e(r))}pAe.exports=$4e});var wAe=I((jyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=xn(),A8e=fAe(),l8e=sQ(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var bAe=I((Yyt,QAe)=>{var g8e=hm(),f8e=kO(),h8e=aN(),p8e=wAe(),d8e=xn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}QAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=YT(),y8e=qT();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var PAe=I((Jyt,xAe)=>{var B8e=Ih(),Q8e=fm(),b8e=nm(),S8e=xn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?Q8e(t)&&b8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}xAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var x8e=vAe(),P8e=PAe();function k8e(r){return x8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var a=t[i];a&&r(e,a,i,s)}return e})}kAe.exports=k8e});var FAe=I((zyt,RAe)=>{var D8e=bAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Fn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Fn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Fn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Fn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Fn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Fn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Fn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Fn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a<l;a++){let c=e[a];if(i&&n._.length>0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g<u.length;g++){let h=u[g],[p,d]=h[1]==="-"?h.split(/=(.*)/,2):[h,void 0],m=p;for(;m in s;)m=s[m];if(!(m in o))if(t){n._.push(h);continue}else throw new Fn(`unknown or unexpected option: ${p}`,"ARG_UNKNOWN_OPTION");let[y,B]=o[m];if(!B&&g+1<u.length)throw new Fn(`option requires argument (but was followed by another short argument): ${p}`,"ARG_MISSING_REQUIRED_SHORTARG");if(B)n[m]=y(!0,m,n[m]);else if(d===void 0){if(e.length<a+2||e[a+1].length>1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Fn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Fn;fle.exports=uE});var ble=I((_Bt,Qle)=>{var eM;Qle.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((Z0t,Nle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ts=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Tle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Tle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Tze(e,t),Nze(r,e,i,t)}function Tze(r,e){return e.fs_.mkdir(Ts.dirname(r),{recursive:!0})}function Nze(r,e,t,i){let n=Tle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:Gze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return jze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ts.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ts.relative(Ts.dirname(e),r).split("/").join("\\"),s=Ts.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r `:"";return o?g+=`@IF EXIST ${o} (\r ${o} ${l} ${n} ${u}%*\r ) ELSE (\r @@ -242,7 +242,7 @@ attempted value: ${s} ${a} ${l} ${n} ${u}%*\r )\r `:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function Hze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh +`,g}function Hze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in @@ -257,7 +257,7 @@ else fi `:u+=`${g}${n} ${a} ${i} ${c}"$@" exit $? -`,u}function jze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh +`,u}function Gze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" @@ -299,19 +299,19 @@ if ($MyInvocation.ExpectingInput) { } ${t.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE -`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=Fle()?e[i].split("\\").join("/").replace(/^([^:\\/]*):/,(o,a)=>`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Tle.exports=AM});var yM=I((pbt,rce)=>{rce.exports=J("stream")});var oce=I((dbt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ice(Object(t),!0).forEach(function(i){c5e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ice(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function c5e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function u5e(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function nce(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function g5e(r,e,t){return e&&nce(r.prototype,e),t&&nce(r,t),r}var f5e=J("buffer"),pb=f5e.Buffer,h5e=J("util"),wM=h5e.inspect,p5e=wM&&wM.custom||"inspect";function d5e(r,e,t){pb.prototype.copy.call(r,e,t)}sce.exports=function(){function r(){u5e(this,r),this.head=null,this.tail=null,this.length=0}return g5e(r,[{key:"push",value:function(t){var i={data:t,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return t<this.head.data.length?(n=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):t===this.head.data.length?n=this.shift():n=i?this._getString(t):this._getBuffer(t),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var i=this.head,n=1,s=i.data;for(t-=s.length;i=i.next;){var o=i.data,a=t>o.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((Cbt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var bl=I((mbt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var bM=I((Ebt,gce)=>{"use strict";var B5e=bl().codes.ERR_INVALID_OPT_VALUE;function Q5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function b5e(r,e,t,i){var n=Q5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:b5e}});var fce=I((Ibt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((ybt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((wbt,hce)=>{hce.exports=J("util").deprecate});var DM=I((Bbt,yce)=>{"use strict";yce.exports=Tr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Tr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mb=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mb.from(r)}function P5e(r){return mb.isBuffer(r)||r instanceof v5e}var kM=QM(),k5e=bM(),D5e=k5e.getHighWaterMark,vl=bl().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,N5e=vl.ERR_MULTIPLE_CALLBACK,T5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Tr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Cb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Cb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Tr,Symbol.hasInstance,{value:function(e){return Cb.call(this,e)?!0:this!==Tr?!1:e&&e._writableState instanceof dE}})):Cb=function(e){return e instanceof this};function Tr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!Cb.call(Tr,this))return new Tr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Tr.prototype.pipe=function(){Ap(this,new T5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Tr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mb.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Tr.prototype.cork=function(){this._writableState.corked++};Tr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Tr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Tr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mb.from(e,t)),e}Object.defineProperty(Tr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=G5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length<e.highWaterMark;if(l||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:i,encoding:n,isBuf:t,callback:s,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else PM(r,e,!1,a,i,n,s);return l}function PM(r,e,t,i,n,s,o){e.writelen=i,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new L5e("write")):t?r._writev(n,e.onwrite):r._write(n,s,e.onwrite),e.sync=!1}function q5e(r,e,t,i,n){--e.pendingcb,t?(process.nextTick(n,i),process.nextTick(pE,r,e),r._writableState.errorEmitted=!0,Ap(r,i)):(n(i),r._writableState.errorEmitted=!0,Ap(r,i),pE(r,e))}function J5e(r){r.writing=!1,r.writecb=null,r.length-=r.writelen,r.writelen=0}function W5e(r,e){var t=r._writableState,i=t.sync,n=t.writecb;if(typeof n!="function")throw new N5e;if(J5e(t),e)q5e(r,t,i,e,n);else{var s=Ice(t)||r.destroyed;!s&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Ece(r,t),i?process.nextTick(dce,r,t,s,n):dce(r,t,s,n)}}function dce(r,e,t,i){t||z5e(r,e),e.pendingcb--,i(),pE(r,e)}function z5e(r,e){e.length===0&&e.needDrain&&(e.needDrain=!1,r.emit("drain"))}function Ece(r,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(r._writev&&t&&t.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=t;for(var o=0,a=!0;t;)n[o]=t,t.isBuf||(a=!1),t=t.next,o+=1;n.allBuffers=a,PM(r,e,!0,e.length,n,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new Cce(e),e.bufferedRequestCount=0}else{for(;t;){var l=t.chunk,c=t.encoding,u=t.callback,g=e.objectMode?1:l.length;if(PM(r,e,!1,g,l,c,u),t=t.next,e.bufferedRequestCount--,e.writing)break}t===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}Tr.prototype._write=function(r,e,t){t(new F5e("_write()"))};Tr.prototype._writev=null;Tr.prototype.end=function(r,e,t){var i=this._writableState;return typeof r=="function"?(t=r,r=null,e=null):typeof e=="function"&&(t=e,e=null),r!=null&&this.write(r,e),i.corked&&(i.corked=1,this.uncork()),i.ending||Z5e(this,i,t),this};Object.defineProperty(Tr.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ice(r){return r.ending&&r.length===0&&r.bufferedRequest===null&&!r.finished&&!r.writing}function V5e(r,e){r._final(function(t){e.pendingcb--,t&&Ap(r,t),e.prefinished=!0,r.emit("prefinish"),pE(r,e)})}function X5e(r,e){!e.prefinished&&!e.finalCalled&&(typeof r._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(V5e,r,e)):(e.prefinished=!0,r.emit("prefinish")))}function pE(r,e){var t=Ice(e);if(t&&(X5e(r,e),e.pendingcb===0&&(e.finished=!0,r.emit("finish"),e.autoDestroy))){var i=r._readableState;(!i||i.autoDestroy&&i.endEmitted)&&r.destroy()}return t}function Z5e(r,e,t){e.ending=!0,pE(r,e),t&&(e.finished?process.nextTick(t):r.once("finish",t)),e.ended=!0,r.writable=!1}function _5e(r,e,t){var i=r.entry;for(r.entry=null;i;){var n=i.callback;e.pendingcb--,n(t),i=i.next}e.corkedRequestsFree.next=r}Object.defineProperty(Tr.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Tr.prototype.destroy=kM.destroy;Tr.prototype._undestroy=kM.undestroy;Tr.prototype._destroy=function(r,e){e(r)}});var Wu=I((Qbt,Bce)=>{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=NM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),Eb=0;Eb<RM.length;Eb++)Ib=RM[Eb],oa.prototype[Ib]||(oa.prototype[Ib]=FM.prototype[Ib]);var RM,Ib,Eb;function oa(r){if(!(this instanceof oa))return new oa(r);wce.call(this,r),FM.call(this,r),this.allowHalfOpen=!0,r&&(r.readable===!1&&(this.readable=!1),r.writable===!1&&(this.writable=!1),r.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",e6e)))}Object.defineProperty(oa.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(oa.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(oa.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function e6e(){this._writableState.ended||process.nextTick(t6e,this)}function t6e(r){r.end()}Object.defineProperty(oa.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var Sce=I((TM,bce)=>{var yb=J("buffer"),hA=yb.Buffer;function Qce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?bce.exports=yb:(Qce(yb,TM),TM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Qce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yb.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t<r.length?e?e+this.text(r,t):this.text(r,t):e||""};CE.prototype.end=A6e;CE.prototype.text=a6e;CE.prototype.fillLast=function(r){if(this.lastNeed<=r.length)return r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,r.length),this.lastNeed-=r.length};function LM(r){return r<=127?0:r>>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i<t)return 0;var n=LM(e[i]);return n>=0?(n>0&&(r.lastNeed=n-1),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(r.lastNeed=n-2),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wb=I((Sbt,Dce)=>{"use strict";var Pce=bl().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];r.apply(this,i)}}}function d6e(){}function C6e(r){return r.setHeader&&typeof r.abort=="function"}function kce(r,e,t){if(typeof e=="function")return kce(r,null,e);e||(e={}),t=p6e(t||d6e);var i=e.readable||e.readable!==!1&&r.readable,n=e.writable||e.writable!==!1&&r.writable,s=function(){r.writable||a()},o=r._writableState&&r._writableState.finished,a=function(){n=!1,o=!0,i||t.call(r)},l=r._readableState&&r._readableState.endEmitted,c=function(){i=!1,l=!0,n||t.call(r)},u=function(d){t.call(r,d)},g=function(){var d;if(i&&!l)return(!r._readableState||!r._readableState.ended)&&(d=new Pce),t.call(r,d);if(n&&!o)return(!r._writableState||!r._writableState.ended)&&(d=new Pce),t.call(r,d)},h=function(){r.req.on("finish",a)};return C6e(r)?(r.on("complete",a),r.on("abort",g),r.req?h():r.on("request",h)):n&&!r._writableState&&(r.on("end",s),r.on("close",s)),r.on("end",c),r.on("finish",a),e.error!==!1&&r.on("error",u),r.on("close",g),function(){r.removeListener("complete",a),r.removeListener("abort",g),r.removeListener("request",h),r.req&&r.req.removeListener("finish",a),r.removeListener("end",s),r.removeListener("close",s),r.removeListener("finish",a),r.removeListener("end",c),r.removeListener("error",u),r.removeListener("close",g)}}Dce.exports=kce});var Fce=I((vbt,Rce)=>{"use strict";var Bb;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wb(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),Qb=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[Qb]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((Bb={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[Qb])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(Bb,Symbol.asyncIterator,function(){return this}),xl(Bb,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),Bb),w6e),Q6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,Qb,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[Qb]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=Q6e});var Oce=I((xbt,Lce)=>{"use strict";function Nce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function b6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Nce(s,i,n,o,a,"next",l)}function a(l){Nce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Tce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Tce(Object(t),!0).forEach(function(i){v6e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Tce(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function v6e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var x6e=bl().codes.ERR_INVALID_ARG_TYPE;function P6e(r,e,t){var i;if(e&&typeof e.next=="function")i=e;else if(e&&e[Symbol.asyncIterator])i=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])i=e[Symbol.iterator]();else throw new x6e("iterable",["Iterable"],e);var n=new r(S6e({objectMode:!0},t)),s=!1;n._read=function(){s||(s=!0,o())};function o(){return a.apply(this,arguments)}function a(){return a=b6e(function*(){try{var l=yield i.next(),c=l.value,u=l.done;u?n.push(null):n.push(yield c)?o():s=!1}catch(g){n.destroy(g)}}),a.apply(this,arguments)}return n}Lce.exports=P6e});var NM=I((kbt,Wce)=>{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var Pbt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),bb=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return bb.from(r)}function R6e(r){return bb.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=QM(),N6e=bM(),T6e=N6e.getHighWaterMark,Sb=bl().codes,L6e=Sb.ERR_INVALID_ARG_TYPE,O6e=Sb.ERR_STREAM_PUSH_AFTER_EOF,M6e=Sb.ERR_METHOD_NOT_IMPLEMENTED,K6e=Sb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,GM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=T6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=bb.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,G6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==bb.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length<s.highWaterMark||s.length===0)}function YM(r,e,t,i){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,r.emit("data",t)):(e.length+=e.objectMode?1:t.length,i?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&vb(r)),JM(r,e)}function H6e(r,e){var t;return!R6e(e)&&typeof e!="string"&&e!==void 0&&!r.objectMode&&(t=new L6e("chunk",["string","Buffer","Uint8Array"],e)),t}Ot.prototype.isPaused=function(){return this._readableState.flowing===!1};Ot.prototype.setEncoding=function(r){up||(up=MM().StringDecoder);var e=new up(r);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var t=this._readableState.buffer.head,i="";t!==null;)i+=e.write(t.data),t=t.next;return this._readableState.buffer.clear(),i!==""&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var Mce=1073741824;function j6e(r){return r>=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vb(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r<e.highWaterMark)&&(i=!0,Pt("length less than watermark",i)),e.ended||e.reading?(i=!1,Pt("reading or ended",i)):i&&(Pt("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(r=Kce(t,e)));var n;return r>0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function G6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Gce(r)))}}function vb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Gce,r))}function Gce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var t=e.length;if(Pt("maybeReadMore read 0"),r.read(0),t===e.length)break}e.readingMore=!1}Ot.prototype._read=function(r){EE(this,new M6e("_read()"))};Ot.prototype.pipe=function(r,e){var t=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=r;break;case 1:i.pipes=[i.pipes,r];break;default:i.pipes.push(r);break}i.pipesCount+=1,Pt("pipe count=%d opts=%j",i.pipesCount,e);var n=(!e||e.end!==!1)&&r!==process.stdout&&r!==process.stderr,s=n?a:m;i.endEmitted?process.nextTick(s):t.once("end",s),r.on("unpipe",o);function o(y,B){Pt("onunpipe"),y===t&&B&&B.hasUnpiped===!1&&(B.hasUnpiped=!0,u())}function a(){Pt("onend"),r.end()}var l=q6e(t);r.on("drain",l);var c=!1;function u(){Pt("cleanup"),r.removeListener("close",p),r.removeListener("finish",d),r.removeListener("drain",l),r.removeListener("error",h),r.removeListener("unpipe",o),t.removeListener("end",a),t.removeListener("end",m),t.removeListener("data",g),c=!0,i.awaitDrain&&(!r._writableState||r._writableState.needDrain)&&l()}t.on("data",g);function g(y){Pt("ondata");var B=r.write(y);Pt("dest.write",B),B===!1&&((i.pipesCount===1&&i.pipes===r||i.pipesCount>1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s<n;s++)i[s].emit("unpipe",this,{hasUnpiped:!1});return this}var o=Jce(e.pipes,r);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),r.emit("unpipe",this,t),this)};Ot.prototype.on=function(r,e){var t=IE.prototype.on.call(this,r,e),i=this._readableState;return r==="data"?(i.readableListening=this.listenerCount("readable")>0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vb(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s<GM.length;s++)r.on(GM[s],this.emit.bind(this,GM[s]));return this._read=function(o){Pt("wrapped _read",o),i&&(i=!1,r.resume())},this};typeof Symbol=="function"&&(Ot.prototype[Symbol.asyncIterator]=function(){return HM===void 0&&(HM=Fce()),HM(this)});Object.defineProperty(Ot.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Ot.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Ot.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Ot._fromList=qce;Object.defineProperty(Ot.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function qce(r,e){if(e.length===0)return null;var t;return e.objectMode?t=e.buffer.shift():!r||r>=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t<i;t++)if(r[t]===e)return t;return-1}});var VM=I((Dbt,Vce)=>{"use strict";Vce.exports=pA;var xb=bl().codes,X6e=xb.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xb.ERR_MULTIPLE_CALLBACK,_6e=xb.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xb.ERR_TRANSFORM_WITH_LENGTH_0,Pb=Wu();Sl()(pA,Pb);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function pA(r){if(!(this instanceof pA))return new pA(r);Pb.call(this,r),this._transformState={afterTransform:e9e.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,r&&(typeof r.transform=="function"&&(this._transform=r.transform),typeof r.flush=="function"&&(this._flush=r.flush)),this.on("prefinish",t9e)}function t9e(){var r=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,t){zce(r,e,t)}):zce(this,null,null)}pA.prototype.push=function(r,e){return this._transformState.needTransform=!1,Pb.prototype.push.call(this,r,e)};pA.prototype._transform=function(r,e,t){t(new X6e("_transform()"))};pA.prototype._write=function(r,e,t){var i=this._transformState;if(i.writecb=t,i.writechunk=r,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}};pA.prototype._read=function(r){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};pA.prototype._destroy=function(r,e){Pb.prototype._destroy.call(this,r,function(t){e(t)})};function zce(r,e,t){if(e)return r.emit("error",e);if(t!=null&&r.push(t),r._writableState.length)throw new $6e;if(r._transformState.transforming)throw new _6e;return r.push(null)}});var _ce=I((Rbt,Zce)=>{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((Fbt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=bl().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wb()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var i=A9e(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new i9e("streams");var n,s=e.map(function(o,a){var l=a<e.length-1,c=a>0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wb(),Os.pipeline=iue())});var oue=I((Nbt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;i<this._bufs.length;i++){let n=t+this._bufs[i].length;if(e<n||i===this._bufs.length-1)return[i,e-t];t=n}};ur.prototype._reverseOffset=function(r){let e=r[0],t=r[1];for(let i=0;i<e;i++)t+=this._bufs[i].length;return t};ur.prototype.get=function(e){if(e>this.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;g<this._bufs.length;g++)this._bufs[g].copy(e,c),c+=this._bufs[g].length;return e}if(l<=this._bufs[o[0]].length-u)return s?this._bufs[o[0]].copy(e,t,u,u+l):this._bufs[o[0]].slice(u,u+l);s||(e=Eo.allocUnsafe(a));for(let g=o[0];g<this._bufs.length;g++){let h=this._bufs[g].length-u;if(l>h)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e};ur.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(Eo.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(Eo.from(e));return this};ur.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};ur.prototype.indexOf=function(r,e,t){if(t===void 0&&typeof e=="string"&&(t=e,e=void 0),typeof r=="function"||Array.isArray(r))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof r=="number"?r=Eo.from([r]):typeof r=="string"?r=Eo.from(r,t):this._isBufferList(r)?r=r.slice():Array.isArray(r.buffer)?r=Eo.from(r.buffer,r.byteOffset,r.byteLength):Eo.isBuffer(r)||(r=Eo.from(r)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),r.length===0)return e>this.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n<this._bufs.length;n++){let o=this._bufs[n];for(;s<o.length;)if(o.length-s>=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r<e.length)return!1;for(let t=0;t<e.length;t++)if(this.get(r+t)!==e[t])return!1;return!0};(function(){let r={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in r)(function(t){r[t]===null?ur.prototype[t]=function(i,n){return this.slice(i,i+n)[t](0,n)}:ur.prototype[t]=function(i=0){return this.slice(i,i+r[t])[t](0)}})(e)})();ur.prototype._isBufferList=function(e){return e instanceof ur||ur.isBufferList(e)};ur.isBufferList=function(e){return e!=null&&e[nue]};sue.exports=ur});var aue=I((Tbt,kb)=>{"use strict";var ZM=gp().Duplex,c9e=Sl(),QE=oue();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}QE._init.call(this,r),ZM.call(this)}c9e(Wi,ZM);Object.assign(Wi.prototype,QE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof QE||Wi.isBufferList(e)};Wi.isBufferList=QE.isBufferList;kb.exports=Wi;kb.exports.BufferListStream=Wi;kb.exports.BufferList=QE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),bE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;t<i;t++)if(r[t]===e)return t;return i},uue=function(r){for(var e=256,t=0;t<148;t++)e+=r[t];for(var i=156;i<512;i++)e+=r[i];return e},Dl=function(r,e){return r=r.toString(8),r.length>e?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i<o;i++)s+=t[i]*Math.pow(256,i);return e?s:-1*s}var Rl=function(r,e,t){if(r=r.slice(e,e+t),e=0,r[e]&128)return y9e(r);for(;e<r.length&&r[e]===32;)e++;for(var i=m9e(cue(r,32,e,r.length),r.length,r.length);e<i&&r[e]===0;)e++;return i===e?0:parseInt(r.slice(e,i).toString(),8)},fp=function(r,e,t,i){return r.slice(e,cue(r,0,e,e+t)).toString(i)},_M=function(r){var e=Buffer.byteLength(r),t=Math.floor(Math.log(e)/Math.log(10))+1;return e+t>=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` +`,p}function jze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ts.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=Fle()?e[i].split("\\").join("/").replace(/^([^:\\/]*):/,(o,a)=>`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Nle.exports=AM});var yM=I((pbt,rce)=>{rce.exports=J("stream")});var oce=I((dbt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ice(Object(t),!0).forEach(function(i){c5e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ice(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function c5e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function u5e(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function nce(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function g5e(r,e,t){return e&&nce(r.prototype,e),t&&nce(r,t),r}var f5e=J("buffer"),pb=f5e.Buffer,h5e=J("util"),wM=h5e.inspect,p5e=wM&&wM.custom||"inspect";function d5e(r,e,t){pb.prototype.copy.call(r,e,t)}sce.exports=function(){function r(){u5e(this,r),this.head=null,this.tail=null,this.length=0}return g5e(r,[{key:"push",value:function(t){var i={data:t,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return t<this.head.data.length?(n=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):t===this.head.data.length?n=this.shift():n=i?this._getString(t):this._getBuffer(t),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var i=this.head,n=1,s=i.data;for(t-=s.length;i=i.next;){var o=i.data,a=t>o.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((Cbt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var bl=I((mbt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var bM=I((Ebt,gce)=>{"use strict";var B5e=bl().codes.ERR_INVALID_OPT_VALUE;function Q5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function b5e(r,e,t,i){var n=Q5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:b5e}});var fce=I((Ibt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((ybt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((wbt,hce)=>{hce.exports=J("util").deprecate});var DM=I((Bbt,yce)=>{"use strict";yce.exports=Nr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Nr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mb=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mb.from(r)}function P5e(r){return mb.isBuffer(r)||r instanceof v5e}var kM=QM(),k5e=bM(),D5e=k5e.getHighWaterMark,vl=bl().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,T5e=vl.ERR_MULTIPLE_CALLBACK,N5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Nr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Cb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Cb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Nr,Symbol.hasInstance,{value:function(e){return Cb.call(this,e)?!0:this!==Nr?!1:e&&e._writableState instanceof dE}})):Cb=function(e){return e instanceof this};function Nr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!Cb.call(Nr,this))return new Nr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Nr.prototype.pipe=function(){Ap(this,new N5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function G5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Nr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mb.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||G5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Nr.prototype.cork=function(){this._writableState.corked++};Nr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Nr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Nr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function j5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mb.from(e,t)),e}Object.defineProperty(Nr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=j5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length<e.highWaterMark;if(l||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:i,encoding:n,isBuf:t,callback:s,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else PM(r,e,!1,a,i,n,s);return l}function PM(r,e,t,i,n,s,o){e.writelen=i,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new L5e("write")):t?r._writev(n,e.onwrite):r._write(n,s,e.onwrite),e.sync=!1}function q5e(r,e,t,i,n){--e.pendingcb,t?(process.nextTick(n,i),process.nextTick(pE,r,e),r._writableState.errorEmitted=!0,Ap(r,i)):(n(i),r._writableState.errorEmitted=!0,Ap(r,i),pE(r,e))}function J5e(r){r.writing=!1,r.writecb=null,r.length-=r.writelen,r.writelen=0}function W5e(r,e){var t=r._writableState,i=t.sync,n=t.writecb;if(typeof n!="function")throw new T5e;if(J5e(t),e)q5e(r,t,i,e,n);else{var s=Ice(t)||r.destroyed;!s&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Ece(r,t),i?process.nextTick(dce,r,t,s,n):dce(r,t,s,n)}}function dce(r,e,t,i){t||z5e(r,e),e.pendingcb--,i(),pE(r,e)}function z5e(r,e){e.length===0&&e.needDrain&&(e.needDrain=!1,r.emit("drain"))}function Ece(r,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(r._writev&&t&&t.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=t;for(var o=0,a=!0;t;)n[o]=t,t.isBuf||(a=!1),t=t.next,o+=1;n.allBuffers=a,PM(r,e,!0,e.length,n,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new Cce(e),e.bufferedRequestCount=0}else{for(;t;){var l=t.chunk,c=t.encoding,u=t.callback,g=e.objectMode?1:l.length;if(PM(r,e,!1,g,l,c,u),t=t.next,e.bufferedRequestCount--,e.writing)break}t===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}Nr.prototype._write=function(r,e,t){t(new F5e("_write()"))};Nr.prototype._writev=null;Nr.prototype.end=function(r,e,t){var i=this._writableState;return typeof r=="function"?(t=r,r=null,e=null):typeof e=="function"&&(t=e,e=null),r!=null&&this.write(r,e),i.corked&&(i.corked=1,this.uncork()),i.ending||Z5e(this,i,t),this};Object.defineProperty(Nr.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ice(r){return r.ending&&r.length===0&&r.bufferedRequest===null&&!r.finished&&!r.writing}function V5e(r,e){r._final(function(t){e.pendingcb--,t&&Ap(r,t),e.prefinished=!0,r.emit("prefinish"),pE(r,e)})}function X5e(r,e){!e.prefinished&&!e.finalCalled&&(typeof r._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(V5e,r,e)):(e.prefinished=!0,r.emit("prefinish")))}function pE(r,e){var t=Ice(e);if(t&&(X5e(r,e),e.pendingcb===0&&(e.finished=!0,r.emit("finish"),e.autoDestroy))){var i=r._readableState;(!i||i.autoDestroy&&i.endEmitted)&&r.destroy()}return t}function Z5e(r,e,t){e.ending=!0,pE(r,e),t&&(e.finished?process.nextTick(t):r.once("finish",t)),e.ended=!0,r.writable=!1}function _5e(r,e,t){var i=r.entry;for(r.entry=null;i;){var n=i.callback;e.pendingcb--,n(t),i=i.next}e.corkedRequestsFree.next=r}Object.defineProperty(Nr.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Nr.prototype.destroy=kM.destroy;Nr.prototype._undestroy=kM.undestroy;Nr.prototype._destroy=function(r,e){e(r)}});var Wu=I((Qbt,Bce)=>{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=TM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),Eb=0;Eb<RM.length;Eb++)Ib=RM[Eb],oa.prototype[Ib]||(oa.prototype[Ib]=FM.prototype[Ib]);var RM,Ib,Eb;function oa(r){if(!(this instanceof oa))return new oa(r);wce.call(this,r),FM.call(this,r),this.allowHalfOpen=!0,r&&(r.readable===!1&&(this.readable=!1),r.writable===!1&&(this.writable=!1),r.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",e6e)))}Object.defineProperty(oa.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(oa.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(oa.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function e6e(){this._writableState.ended||process.nextTick(t6e,this)}function t6e(r){r.end()}Object.defineProperty(oa.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var Sce=I((NM,bce)=>{var yb=J("buffer"),hA=yb.Buffer;function Qce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?bce.exports=yb:(Qce(yb,NM),NM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Qce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yb.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t<r.length?e?e+this.text(r,t):this.text(r,t):e||""};CE.prototype.end=A6e;CE.prototype.text=a6e;CE.prototype.fillLast=function(r){if(this.lastNeed<=r.length)return r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,r.length),this.lastNeed-=r.length};function LM(r){return r<=127?0:r>>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i<t)return 0;var n=LM(e[i]);return n>=0?(n>0&&(r.lastNeed=n-1),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(r.lastNeed=n-2),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wb=I((Sbt,Dce)=>{"use strict";var Pce=bl().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];r.apply(this,i)}}}function d6e(){}function C6e(r){return r.setHeader&&typeof r.abort=="function"}function kce(r,e,t){if(typeof e=="function")return kce(r,null,e);e||(e={}),t=p6e(t||d6e);var i=e.readable||e.readable!==!1&&r.readable,n=e.writable||e.writable!==!1&&r.writable,s=function(){r.writable||a()},o=r._writableState&&r._writableState.finished,a=function(){n=!1,o=!0,i||t.call(r)},l=r._readableState&&r._readableState.endEmitted,c=function(){i=!1,l=!0,n||t.call(r)},u=function(d){t.call(r,d)},g=function(){var d;if(i&&!l)return(!r._readableState||!r._readableState.ended)&&(d=new Pce),t.call(r,d);if(n&&!o)return(!r._writableState||!r._writableState.ended)&&(d=new Pce),t.call(r,d)},h=function(){r.req.on("finish",a)};return C6e(r)?(r.on("complete",a),r.on("abort",g),r.req?h():r.on("request",h)):n&&!r._writableState&&(r.on("end",s),r.on("close",s)),r.on("end",c),r.on("finish",a),e.error!==!1&&r.on("error",u),r.on("close",g),function(){r.removeListener("complete",a),r.removeListener("abort",g),r.removeListener("request",h),r.req&&r.req.removeListener("finish",a),r.removeListener("end",s),r.removeListener("close",s),r.removeListener("finish",a),r.removeListener("end",c),r.removeListener("error",u),r.removeListener("close",g)}}Dce.exports=kce});var Fce=I((vbt,Rce)=>{"use strict";var Bb;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wb(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),Qb=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[Qb]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((Bb={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[Qb])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(Bb,Symbol.asyncIterator,function(){return this}),xl(Bb,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),Bb),w6e),Q6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,Qb,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[Qb]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=Q6e});var Oce=I((xbt,Lce)=>{"use strict";function Tce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function b6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Tce(s,i,n,o,a,"next",l)}function a(l){Tce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Nce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Nce(Object(t),!0).forEach(function(i){v6e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Nce(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function v6e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var x6e=bl().codes.ERR_INVALID_ARG_TYPE;function P6e(r,e,t){var i;if(e&&typeof e.next=="function")i=e;else if(e&&e[Symbol.asyncIterator])i=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])i=e[Symbol.iterator]();else throw new x6e("iterable",["Iterable"],e);var n=new r(S6e({objectMode:!0},t)),s=!1;n._read=function(){s||(s=!0,o())};function o(){return a.apply(this,arguments)}function a(){return a=b6e(function*(){try{var l=yield i.next(),c=l.value,u=l.done;u?n.push(null):n.push(yield c)?o():s=!1}catch(g){n.destroy(g)}}),a.apply(this,arguments)}return n}Lce.exports=P6e});var TM=I((kbt,Wce)=>{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var Pbt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),bb=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return bb.from(r)}function R6e(r){return bb.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=QM(),T6e=bM(),N6e=T6e.getHighWaterMark,Sb=bl().codes,L6e=Sb.ERR_INVALID_ARG_TYPE,O6e=Sb.ERR_STREAM_PUSH_AFTER_EOF,M6e=Sb.ERR_METHOD_NOT_IMPLEMENTED,K6e=Sb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,GM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,jM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=N6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=bb.from(r,e),e=""),i=!0),Gce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return Gce(this,r,null,!0,!1)};function Gce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,j6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==bb.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length<s.highWaterMark||s.length===0)}function YM(r,e,t,i){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,r.emit("data",t)):(e.length+=e.objectMode?1:t.length,i?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&vb(r)),JM(r,e)}function H6e(r,e){var t;return!R6e(e)&&typeof e!="string"&&e!==void 0&&!r.objectMode&&(t=new L6e("chunk",["string","Buffer","Uint8Array"],e)),t}Ot.prototype.isPaused=function(){return this._readableState.flowing===!1};Ot.prototype.setEncoding=function(r){up||(up=MM().StringDecoder);var e=new up(r);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var t=this._readableState.buffer.head,i="";t!==null;)i+=e.write(t.data),t=t.next;return this._readableState.buffer.clear(),i!==""&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var Mce=1073741824;function G6e(r){return r>=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=G6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vb(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r<e.highWaterMark)&&(i=!0,Pt("length less than watermark",i)),e.ended||e.reading?(i=!1,Pt("reading or ended",i)):i&&(Pt("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(r=Kce(t,e)));var n;return r>0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function j6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,jce(r)))}}function vb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(jce,r))}function jce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var t=e.length;if(Pt("maybeReadMore read 0"),r.read(0),t===e.length)break}e.readingMore=!1}Ot.prototype._read=function(r){EE(this,new M6e("_read()"))};Ot.prototype.pipe=function(r,e){var t=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=r;break;case 1:i.pipes=[i.pipes,r];break;default:i.pipes.push(r);break}i.pipesCount+=1,Pt("pipe count=%d opts=%j",i.pipesCount,e);var n=(!e||e.end!==!1)&&r!==process.stdout&&r!==process.stderr,s=n?a:m;i.endEmitted?process.nextTick(s):t.once("end",s),r.on("unpipe",o);function o(y,B){Pt("onunpipe"),y===t&&B&&B.hasUnpiped===!1&&(B.hasUnpiped=!0,u())}function a(){Pt("onend"),r.end()}var l=q6e(t);r.on("drain",l);var c=!1;function u(){Pt("cleanup"),r.removeListener("close",p),r.removeListener("finish",d),r.removeListener("drain",l),r.removeListener("error",h),r.removeListener("unpipe",o),t.removeListener("end",a),t.removeListener("end",m),t.removeListener("data",g),c=!0,i.awaitDrain&&(!r._writableState||r._writableState.needDrain)&&l()}t.on("data",g);function g(y){Pt("ondata");var B=r.write(y);Pt("dest.write",B),B===!1&&((i.pipesCount===1&&i.pipes===r||i.pipesCount>1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s<n;s++)i[s].emit("unpipe",this,{hasUnpiped:!1});return this}var o=Jce(e.pipes,r);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),r.emit("unpipe",this,t),this)};Ot.prototype.on=function(r,e){var t=IE.prototype.on.call(this,r,e),i=this._readableState;return r==="data"?(i.readableListening=this.listenerCount("readable")>0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vb(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s<jM.length;s++)r.on(jM[s],this.emit.bind(this,jM[s]));return this._read=function(o){Pt("wrapped _read",o),i&&(i=!1,r.resume())},this};typeof Symbol=="function"&&(Ot.prototype[Symbol.asyncIterator]=function(){return HM===void 0&&(HM=Fce()),HM(this)});Object.defineProperty(Ot.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Ot.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Ot.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Ot._fromList=qce;Object.defineProperty(Ot.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function qce(r,e){if(e.length===0)return null;var t;return e.objectMode?t=e.buffer.shift():!r||r>=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return GM===void 0&&(GM=Oce()),GM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t<i;t++)if(r[t]===e)return t;return-1}});var VM=I((Dbt,Vce)=>{"use strict";Vce.exports=pA;var xb=bl().codes,X6e=xb.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xb.ERR_MULTIPLE_CALLBACK,_6e=xb.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xb.ERR_TRANSFORM_WITH_LENGTH_0,Pb=Wu();Sl()(pA,Pb);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function pA(r){if(!(this instanceof pA))return new pA(r);Pb.call(this,r),this._transformState={afterTransform:e9e.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,r&&(typeof r.transform=="function"&&(this._transform=r.transform),typeof r.flush=="function"&&(this._flush=r.flush)),this.on("prefinish",t9e)}function t9e(){var r=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,t){zce(r,e,t)}):zce(this,null,null)}pA.prototype.push=function(r,e){return this._transformState.needTransform=!1,Pb.prototype.push.call(this,r,e)};pA.prototype._transform=function(r,e,t){t(new X6e("_transform()"))};pA.prototype._write=function(r,e,t){var i=this._transformState;if(i.writecb=t,i.writechunk=r,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}};pA.prototype._read=function(r){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};pA.prototype._destroy=function(r,e){Pb.prototype._destroy.call(this,r,function(t){e(t)})};function zce(r,e,t){if(e)return r.emit("error",e);if(t!=null&&r.push(t),r._writableState.length)throw new $6e;if(r._transformState.transforming)throw new _6e;return r.push(null)}});var _ce=I((Rbt,Zce)=>{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((Fbt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=bl().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wb()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var i=A9e(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new i9e("streams");var n,s=e.map(function(o,a){var l=a<e.length-1,c=a>0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=TM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wb(),Os.pipeline=iue())});var oue=I((Tbt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;i<this._bufs.length;i++){let n=t+this._bufs[i].length;if(e<n||i===this._bufs.length-1)return[i,e-t];t=n}};ur.prototype._reverseOffset=function(r){let e=r[0],t=r[1];for(let i=0;i<e;i++)t+=this._bufs[i].length;return t};ur.prototype.get=function(e){if(e>this.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;g<this._bufs.length;g++)this._bufs[g].copy(e,c),c+=this._bufs[g].length;return e}if(l<=this._bufs[o[0]].length-u)return s?this._bufs[o[0]].copy(e,t,u,u+l):this._bufs[o[0]].slice(u,u+l);s||(e=Eo.allocUnsafe(a));for(let g=o[0];g<this._bufs.length;g++){let h=this._bufs[g].length-u;if(l>h)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e};ur.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(Eo.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(Eo.from(e));return this};ur.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};ur.prototype.indexOf=function(r,e,t){if(t===void 0&&typeof e=="string"&&(t=e,e=void 0),typeof r=="function"||Array.isArray(r))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof r=="number"?r=Eo.from([r]):typeof r=="string"?r=Eo.from(r,t):this._isBufferList(r)?r=r.slice():Array.isArray(r.buffer)?r=Eo.from(r.buffer,r.byteOffset,r.byteLength):Eo.isBuffer(r)||(r=Eo.from(r)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),r.length===0)return e>this.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n<this._bufs.length;n++){let o=this._bufs[n];for(;s<o.length;)if(o.length-s>=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r<e.length)return!1;for(let t=0;t<e.length;t++)if(this.get(r+t)!==e[t])return!1;return!0};(function(){let r={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in r)(function(t){r[t]===null?ur.prototype[t]=function(i,n){return this.slice(i,i+n)[t](0,n)}:ur.prototype[t]=function(i=0){return this.slice(i,i+r[t])[t](0)}})(e)})();ur.prototype._isBufferList=function(e){return e instanceof ur||ur.isBufferList(e)};ur.isBufferList=function(e){return e!=null&&e[nue]};sue.exports=ur});var aue=I((Nbt,kb)=>{"use strict";var ZM=gp().Duplex,c9e=Sl(),QE=oue();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}QE._init.call(this,r),ZM.call(this)}c9e(Wi,ZM);Object.assign(Wi.prototype,QE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof QE||Wi.isBufferList(e)};Wi.isBufferList=QE.isBufferList;kb.exports=Wi;kb.exports.BufferListStream=Wi;kb.exports.BufferList=QE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),bE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;t<i;t++)if(r[t]===e)return t;return i},uue=function(r){for(var e=256,t=0;t<148;t++)e+=r[t];for(var i=156;i<512;i++)e+=r[i];return e},Dl=function(r,e){return r=r.toString(8),r.length>e?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i<o;i++)s+=t[i]*Math.pow(256,i);return e?s:-1*s}var Rl=function(r,e,t){if(r=r.slice(e,e+t),e=0,r[e]&128)return y9e(r);for(;e<r.length&&r[e]===32;)e++;for(var i=m9e(cue(r,32,e,r.length),r.length,r.length);e<i&&r[e]===0;)e++;return i===e?0:parseInt(r.slice(e,i).toString(),8)},fp=function(r,e,t,i){return r.slice(e,cue(r,0,e,e+t)).toString(i)},_M=function(r){var e=Buffer.byteLength(r),t=Math.floor(Math.log(e)/Math.log(10))+1;return e+t>=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` `)),r.linkname&&(e+=_M(" linkpath="+r.linkname+` `));var t=r.pax;if(t)for(var i in t)e+=_M(" "+i+"="+t[i]+` -`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t<r.length&&r[t]!==32;)t++;var i=parseInt(r.slice(0,t).toString(),10);if(!i)return e;var n=r.slice(t+1,i-1).toString(),s=n.indexOf("=");if(s===-1)return e;e[n.slice(0,s)]=n.slice(s+1),r=r.slice(i)}return e};hp.encode=function(r){var e=u9e(512),t=r.name,i="";if(r.typeflag===5&&t[t.length-1]!=="/"&&(t+="/"),Buffer.byteLength(t)!==t.length)return null;for(;Buffer.byteLength(t)>100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Obt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t());this._cb=t,this._missing=0;var o=null;r.length>s&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((Mbt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var bue=I((Kbt,Que)=>{var pp=Iue(),yue=PD(),Fb=Sl(),b9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,Rb=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=b9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var Nb=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};Fb(Nb,dp);Nb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};Nb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Tb=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};Fb(Tb,dp);Tb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Tb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};Fb(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Fb(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new Tb;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new Nb(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=Rb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=Rb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(Rb.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(Rb.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Que.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=bue()});var Mue=I((aSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Tue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Tue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Nue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Nue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Nue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=G9e;function G9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Tue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((ASt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,An=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=An(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=An(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=An(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. +`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t<r.length&&r[t]!==32;)t++;var i=parseInt(r.slice(0,t).toString(),10);if(!i)return e;var n=r.slice(t+1,i-1).toString(),s=n.indexOf("=");if(s===-1)return e;e[n.slice(0,s)]=n.slice(s+1),r=r.slice(i)}return e};hp.encode=function(r){var e=u9e(512),t=r.name,i="";if(r.typeflag===5&&t[t.length-1]!=="/"&&(t+="/"),Buffer.byteLength(t)!==t.length)return null;for(;Buffer.byteLength(t)>100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Obt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t());this._cb=t,this._missing=0;var o=null;r.length>s&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((Mbt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var bue=I((Kbt,Que)=>{var pp=Iue(),yue=PD(),Fb=Sl(),b9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,Rb=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=b9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var Tb=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};Fb(Tb,dp);Tb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};Tb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Nb=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};Fb(Nb,dp);Nb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Nb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};Fb(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Fb(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new Nb;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new Tb(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=Rb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=Rb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(Rb.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(Rb.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Que.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=bue()});var Mue=I((aSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Nue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Nue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function G9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))G9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Tue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Tue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Tue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=j9e;function j9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Nue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((ASt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,An=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=An(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=An(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=An(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. Wanted: ${t.size} Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=An(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. Wanted: ${r.size} - Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Hr,YarnVersion:()=>Nr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>wr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var xr={};ct(xr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Te={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Mr(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function gn(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;s<i&&await new Promise(a=>setTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} + Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>je,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Nf,WorkspaceResolver:()=>Hr,YarnVersion:()=>Tr,execUtils:()=>pr,folderUtils:()=>Tw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>NI,scriptUtils:()=>Yt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>Gw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>Gp,CwdFS:()=>Gt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Ne,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>wr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var xr={};ct(xr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>jge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function jge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Ne={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Mr(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function gn(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var Gp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new Gp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;s<i&&await new Promise(a=>setTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} `)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} `)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},vA=class extends wa{constructor(){super(v)}};function $ge(r){let e=r.match(/\r?\n/g);if(e===null)return fK.EOL;let t=e.filter(n=>n===`\r `).length,i=e.length-t;return t>i?`\r `:` -`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Qg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new Qg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=Qg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Te.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;a<o;++a){let l=this.libzip.getName(this.zip,a,0);if(v.isAbsolute(l))continue;let c=v.resolve(Te.root,l);this.registerEntry(c,a),l.endsWith("/")&&this.registerListing(c)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(t){let i=this.libzip.struct.errorCodeZip(t),n=this.libzip.error.strerror(t),s=new ZE(n,this.libzip.errors[i]);if(i===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${s.message}`);return s}getExtractHint(t){for(let i of this.entries.keys()){let n=this.pathUtils.extname(i);if(t.relevantExtensions.has(n))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}getBufferAndClose(){if(this.prepareClose(),!this.lzSource)throw new Error("ZipFS was not created from a Buffer");if(this.entries.size===0)return this.discardAndClose(),ES();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let t=this.libzip.source.tell(this.lzSource);if(t===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let i=this.libzip.malloc(t);if(!i)throw new Error("Couldn't allocate enough memory");try{let n=this.libzip.source.read(this.lzSource,i,t);if(n===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(n<t)throw new Error("Incomplete read");if(n>t)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Te.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Mr("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Mr("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Mr("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw gn(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Te.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=bg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&bg.constants.W_OK)throw gn(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Mr("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Te.root,i);if(o==="/")return Te.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw Qo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Te.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(g<a)throw new Error("Incomplete read");if(g>a)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw gn(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw gn(`copyfile '${t} -> '${i}'`);if((n&bg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(bg.constants.COPYFILE_EXCL|bg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Mr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw gn(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw gn(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw gn(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw gn(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw gn(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw gn(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Te.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw gn(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Te.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Te.root,t);return Gp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var bo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Te.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Te.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Te.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,wr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a<o.length&&o[a]==="..";)a+=1;let l=o.slice(a);return v.join(t,i,String(a),...l)}static resolveVirtual(t){let i=t.match(BS);if(!i||!i[3]&&i[5])return t;let n=v.dirname(i[1]);if(!i[3]||!i[4])return n;if(!tfe.test(i[4]))return t;let o=Number(i[4]),a="../".repeat(o),l=i[5]||".";return wr.resolveVirtual(v.join(n,a,l))}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(t){let i=t.match(BS);if(!i)return this.baseFs.realpathSync(t);if(!i[5])return t;let n=this.baseFs.realpathSync(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}async realpathPromise(t){let i=t.match(BS);if(!i)return await this.baseFs.realpathPromise(t);if(!i[5])return t;let n=await this.baseFs.realpathPromise(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}mapToBase(t){if(t==="")return t;if(this.pathUtils.isAbsolute(t))return wr.resolveVirtual(t);let i=wr.resolveVirtual(this.baseFs.resolve(Te.dot)),n=wr.resolveVirtual(this.baseFs.resolve(t));return v.relative(i,n)||Te.dot}mapFromBase(t){return t}};var Jp=J("fs");var fn=4278190080,Vi=704643072,EK=(r,e)=>{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&fn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&fn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&fn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&fn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&fn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Te.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function QS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return QS(t,e),t}var bK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,bS=null;function QK(){if(bS)return bS;let r=K.toPortablePath(bK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),bS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(TS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` +`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Ne.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Qg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new Qg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=Qg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function jp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())jp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Ne.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;a<o;++a){let l=this.libzip.getName(this.zip,a,0);if(v.isAbsolute(l))continue;let c=v.resolve(Ne.root,l);this.registerEntry(c,a),l.endsWith("/")&&this.registerListing(c)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(t){let i=this.libzip.struct.errorCodeZip(t),n=this.libzip.error.strerror(t),s=new ZE(n,this.libzip.errors[i]);if(i===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${s.message}`);return s}getExtractHint(t){for(let i of this.entries.keys()){let n=this.pathUtils.extname(i);if(t.relevantExtensions.has(n))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}getBufferAndClose(){if(this.prepareClose(),!this.lzSource)throw new Error("ZipFS was not created from a Buffer");if(this.entries.size===0)return this.discardAndClose(),ES();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let t=this.libzip.source.tell(this.lzSource);if(t===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let i=this.libzip.malloc(t);if(!i)throw new Error("Couldn't allocate enough memory");try{let n=this.libzip.source.read(this.lzSource,i,t);if(n===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(n<t)throw new Error("Incomplete read");if(n>t)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Ne.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Mr("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Mr("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Mr("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw gn(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Ne.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=bg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&bg.constants.W_OK)throw gn(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Mr("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Ne.root,i);if(o==="/")return Ne.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw Qo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Ne.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(g<a)throw new Error("Incomplete read");if(g>a)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw gn(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw gn(`copyfile '${t} -> '${i}'`);if((n&bg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(bg.constants.COPYFILE_EXCL|bg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Mr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw gn(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw gn(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw gn(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw gn(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw gn(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw gn(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Ne.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw gn(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Ne.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Ne.root,t);return jp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var bo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var Gt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Ne.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Ne.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Ne.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,wr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a<o.length&&o[a]==="..";)a+=1;let l=o.slice(a);return v.join(t,i,String(a),...l)}static resolveVirtual(t){let i=t.match(BS);if(!i||!i[3]&&i[5])return t;let n=v.dirname(i[1]);if(!i[3]||!i[4])return n;if(!tfe.test(i[4]))return t;let o=Number(i[4]),a="../".repeat(o),l=i[5]||".";return wr.resolveVirtual(v.join(n,a,l))}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(t){let i=t.match(BS);if(!i)return this.baseFs.realpathSync(t);if(!i[5])return t;let n=this.baseFs.realpathSync(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}async realpathPromise(t){let i=t.match(BS);if(!i)return await this.baseFs.realpathPromise(t);if(!i[5])return t;let n=await this.baseFs.realpathPromise(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}mapToBase(t){if(t==="")return t;if(this.pathUtils.isAbsolute(t))return wr.resolveVirtual(t);let i=wr.resolveVirtual(this.baseFs.resolve(Ne.dot)),n=wr.resolveVirtual(this.baseFs.resolve(t));return v.relative(i,n)||Ne.dot}mapFromBase(t){return t}};var Jp=J("fs");var fn=4278190080,Vi=704643072,EK=(r,e)=>{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&fn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&fn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&fn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&fn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&fn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>jp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Ne.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function QS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return QS(t,e),t}var bK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,bS=null;function QK(){if(bS)return bS;let r=K.toPortablePath(bK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),bS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(NS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` `,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],bI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null `;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} `;if(typeof r=="string")return`${hH(r)} @@ -325,7 +325,7 @@ ${p}:`:`${g}:`,m=h.startsWith(` ${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==` `?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=bI;function Ede(r){return r.endsWith(` `)||(r+=` -`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} +`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>Gn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ni});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} ${this.candidates.map(({usage:n})=>`$ ${n}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: @@ -345,7 +345,7 @@ ${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.string ${e.map(t=>` - ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var be=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),pn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};be.isOption=id;be.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` `),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` +`)}function Ni(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` `),r=nCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 `),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` @@ -353,26 +353,26 @@ ${e.map(t=>` `)}).join(` `)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var fv=ve(J("tty"),1);function dn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[_i(),_i(),_i()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)OH(s)||e.nodes.push(hCe(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)jg(e,0,n);return e}function Vs(r,e){return r.nodes.push(e),r.nodes.length-1}function oCe(r){let e=new Set,t=i=>{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){dn(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)dn(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function TH(r,e,t=!1){dn(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];aCe(r,{prefix:" "});let n=[tv,...e];for(let s=0;s<n.length;++s){let o=n[s];dn(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){dn(` Current node is ${l}`);let u=r.nodes[l];if(l===2){a.push({node:l,state:c});continue}console.assert(u.shortcuts.length===0,"Shortcuts should have been eliminated by now");let g=Object.prototype.hasOwnProperty.call(u.statics,o);if(!t||s<n.length-1||g)if(g){let h=u.statics[o];for(let{to:p,reducer:d}of h)a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Static transition to ${p} found`)}else dn(" No static transition found");else{let h=!1;for(let p of Object.keys(u.statics))if(!!p.startsWith(o)){if(o===p)for(let{to:d,reducer:m}of u.statics[p])a.push({node:d,state:typeof m<"u"?DI(uv,m,c,o):c}),dn(` Static transition to ${d} found`);else for(let{to:d}of u.statics[p])a.push({node:d,state:{...c,remainder:p.slice(o.length)}}),dn(` Static transition to ${d} found (partial match)`);h=!0}h||dn(" No partial static transition found")}if(o!==Bi)for(let[h,{to:p,reducer:d}]of u.dynamics)DI(FI,h,c,o)&&(a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Dynamic transition to ${p} found (via ${h})`))}if(a.length===0&&o===Bi&&e.length===1)return[{node:0,state:FH}];if(a.length===0)throw new Hg(e,i.filter(({node:l})=>l!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){dn(" Results:");for(let s of i)dn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else dn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Qi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i<t;++i)this.addPositional({name:e});this.arity.extra=Hn}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:t,arity:i=0,hidden:n=!1,required:s=!1,allowBinding:o=!0}){if(!o&&i>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p<a;++p)g.push(` #${p}`);let h=`${o.join(",")}${g.join("")}`;!t&&c?n.push({definition:h,description:c,required:u}):i.push(u?`<${h}>`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=NH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,_i()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,_i());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h<a.length;++h){let p=Vs(e,_i());Sa(e,l,a[h],p,"pushPath"),l=p}if(this.arity.leading.length>0||!this.arity.proxy){let h=Vs(e,_i());Qi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h<this.arity.leading.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),(this.arity.trailing.length>0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,_i());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),Qi(e,c,s,p,"pushExtraNoLimits"),Qi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p<this.arity.extra.length;++p){let d=Vs(e,_i());this.arity.proxy||this.registerOptions(e,d),Qi(e,u,s,d,"pushExtra"),jg(e,d,h),u=d}u=h}this.arity.trailing.length>0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;h<this.arity.trailing.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),h+1<this.arity.trailing.length&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,g,"isNotOptionLike",p,"pushPositional"),g=p}Qi(e,g,s,2,["setError","Extraneous positional argument"]),Sa(e,g,Bi,1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){Qi(e,t,["isOption","--"],t,"inhibateOptions"),Qi(e,t,["isBatchOption",this.allOptionNames],t,"pushBatch"),Qi(e,t,["isBoundOption",this.allOptionNames,this.options],t,"pushBound"),Qi(e,t,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),Qi(e,t,["isInvalidOption"],2,["setError","Invalid option name"]);for(let i of this.options){let n=i.names.reduce((s,o)=>o.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Qi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Qi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,_i());for(let o of i.names)Qi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o<i.arity;++o){let a=Vs(e,_i());Sa(e,s,Bi,2,"setOptionArityError"),Qi(e,s,"isOptionLike",2,"setOptionArityError");let l=i.arity===1?"setStringValue":"pushStringValue";Qi(e,s,"isNotOptionLike",a,l),s=a}jg(e,s,t)}}}},Yg=class{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new Yg(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let t of e)t(this.command());return this}command(){let e=new gv(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],t=[];for(let n of this.builders){let{machine:s,context:o}=n.compile();e.push(s),t.push(o)}let i=sCe(e);return oCe(i),{machine:i,contexts:t,process:n=>cCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends be{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: +`:""}var fv=ve(J("tty"),1);function dn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function TH(){return{nodes:[_i(),_i(),_i()]}}function sCe(r){let e=TH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)OH(s)||e.nodes.push(hCe(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)Gg(e,0,n);return e}function Vs(r,e){return r.nodes.push(e),r.nodes.length-1}function oCe(r){let e=new Set,t=i=>{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){dn(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)dn(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function NH(r,e,t=!1){dn(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];aCe(r,{prefix:" "});let n=[tv,...e];for(let s=0;s<n.length;++s){let o=n[s];dn(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){dn(` Current node is ${l}`);let u=r.nodes[l];if(l===2){a.push({node:l,state:c});continue}console.assert(u.shortcuts.length===0,"Shortcuts should have been eliminated by now");let g=Object.prototype.hasOwnProperty.call(u.statics,o);if(!t||s<n.length-1||g)if(g){let h=u.statics[o];for(let{to:p,reducer:d}of h)a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Static transition to ${p} found`)}else dn(" No static transition found");else{let h=!1;for(let p of Object.keys(u.statics))if(!!p.startsWith(o)){if(o===p)for(let{to:d,reducer:m}of u.statics[p])a.push({node:d,state:typeof m<"u"?DI(uv,m,c,o):c}),dn(` Static transition to ${d} found`);else for(let{to:d}of u.statics[p])a.push({node:d,state:{...c,remainder:p.slice(o.length)}}),dn(` Static transition to ${d} found (partial match)`);h=!0}h||dn(" No partial static transition found")}if(o!==Bi)for(let[h,{to:p,reducer:d}]of u.dynamics)DI(FI,h,c,o)&&(a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Dynamic transition to ${p} found (via ${h})`))}if(a.length===0&&o===Bi&&e.length===1)return[{node:0,state:FH}];if(a.length===0)throw new Hg(e,i.filter(({node:l})=>l!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){dn(" Results:");for(let s of i)dn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else dn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=NH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=NH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Qi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Gg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i<t;++i)this.addPositional({name:e});this.arity.extra=Hn}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:t,arity:i=0,hidden:n=!1,required:s=!1,allowBinding:o=!0}){if(!o&&i>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p<a;++p)g.push(` #${p}`);let h=`${o.join(",")}${g.join("")}`;!t&&c?n.push({definition:h,description:c,required:u}):i.push(u?`<${h}>`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=TH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,_i()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,_i());Gg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h<a.length;++h){let p=Vs(e,_i());Sa(e,l,a[h],p,"pushPath"),l=p}if(this.arity.leading.length>0||!this.arity.proxy){let h=Vs(e,_i());Qi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h<this.arity.leading.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),(this.arity.trailing.length>0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,_i());if(Gg(e,c,h),this.arity.extra===Hn){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),Qi(e,c,s,p,"pushExtraNoLimits"),Qi(e,p,s,p,"pushExtraNoLimits"),Gg(e,p,h)}else for(let p=0;p<this.arity.extra.length;++p){let d=Vs(e,_i());this.arity.proxy||this.registerOptions(e,d),Qi(e,u,s,d,"pushExtra"),Gg(e,d,h),u=d}u=h}this.arity.trailing.length>0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;h<this.arity.trailing.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),h+1<this.arity.trailing.length&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,g,"isNotOptionLike",p,"pushPositional"),g=p}Qi(e,g,s,2,["setError","Extraneous positional argument"]),Sa(e,g,Bi,1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){Qi(e,t,["isOption","--"],t,"inhibateOptions"),Qi(e,t,["isBatchOption",this.allOptionNames],t,"pushBatch"),Qi(e,t,["isBoundOption",this.allOptionNames,this.options],t,"pushBound"),Qi(e,t,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),Qi(e,t,["isInvalidOption"],2,["setError","Invalid option name"]);for(let i of this.options){let n=i.names.reduce((s,o)=>o.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Qi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Qi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,_i());for(let o of i.names)Qi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o<i.arity;++o){let a=Vs(e,_i());Sa(e,s,Bi,2,"setOptionArityError"),Qi(e,s,"isOptionLike",2,"setOptionArityError");let l=i.arity===1?"setStringValue":"pushStringValue";Qi(e,s,"isNotOptionLike",a,l),s=a}Gg(e,s,t)}}}},Yg=class{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new Yg(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let t of e)t(this.command());return this}command(){let e=new gv(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],t=[];for(let n of this.builders){let{machine:s,context:o}=n.compile();e.push(s),t.push(o)}let i=sCe(e);return oCe(i),{machine:i,contexts:t,process:n=>cCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends be{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands. -`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` +`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var Gn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new Gn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...Gn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ni(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ni(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ni(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ni(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ni(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` `),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} `,a+=` `);let{usage:g,options:h}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} `,h.length>0){a+=` `,a+=`${lv.header("Options")} `;let p=h.reduce((d,m)=>Math.max(d,m.definition.length),0);a+=` -`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ti(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` +`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ni(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` `,a+=`${this.format(t).header("Details")} `,a+=` -`,a+=Ti(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` +`,a+=Ni(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` `,a+=`${this.format(t).header("Examples")} `;for(let[p,d]of u)a+=` -`,a+=Ti(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} +`,a+=Ni(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} `}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} -`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ti(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} +`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ni(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} `:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} `:a+=`${this.format(t).header(`${this.binaryVersion}`)} @@ -382,15 +382,15 @@ ${e.map(t=>` `,a+=`${this.format(t).header(`${d}`)} `;for(let{commandClass:m,usage:y}of p){let B=m.usage.description||"undocumented";a+=` `,a+=` ${this.format(t).bold(y)} -`,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`,a+=` ${Ni(B,{format:this.format(t),paragraphs:!1})}`}}a+=` +`,a+=Ni("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} `;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` `,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends be{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:Gn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};Gn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends be{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} `)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends be{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends be{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"} -`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&o<e.arity.leading.length},s=0;for(;s<i.positionals.length&&n(s);)s+=1;return i.positionals.splice(0,s).map(({value:o})=>o)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<n.positionals.length;++o){if(n.positionals[o].extra===Hn||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return sd((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function JH(r,...e){return typeof r=="string"?mCe(r,...e):ECe(r)}var wz=ve(Jg()),nD=J("stream");var dt=(ae=>(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function TI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P4,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>jSe,bindLocator:()=>GSe,convertDescriptorToLocator:()=>bw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>nn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>tn,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>vn,stringifyIdent:()=>Tt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k4,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Gk});var Sf=ve(J("querystring")),S4=ve(zr()),v4=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Sn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>bc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var mW=ve(Qn()),EW=ve(aW());var me={};ct(me,{AsyncActions:()=>jx,BufferStream:()=>Hx,CachingStrategy:()=>dW,DefaultStream:()=>Gx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>Qc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>CW,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>bn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var lW=ve(Qn()),cW=ve(Jg()),uW=ve(zr()),Yx=J("stream");function u0e(r){return!!(uW.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==gW&&t.push(n)}return t}var gW=Symbol();Uo.skip=gW;function Wd(r,e){for(let t of r){let i=e(t);if(i!==fW)return i}}var fW=Symbol();Wd.skip=fW;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function Qc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Yx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,cW.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Gx=class extends Yx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function hW(r){return Jd(K.fromPortablePath(r))}function pW(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=hW(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var AW=new Map;function C0e(r){let e=AW.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=pW(r);return AW.set(r,{mtime:t.mtimeMs,instance:i}),i}var dW=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(dW||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return pW(r);case 1:return C0e(r);case 2:return hW(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${lW.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function CW(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return CW(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Sn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Tt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>vn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:vn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:vn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,tn(e.selector))} \u27A4 ${Sn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Tt(r.parentDescriptor)} > ${Tt(r.descriptor)}`;case"PeerDependency":return`${Tt(r.parentDescriptor)} >> ${Tt(r.descriptor)}`;case"PeerDependencyMeta":return`${Tt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Sn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Sn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Sn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Sn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Sn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Sn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?bc(t,i):_e(e,t,i)}function rP(r){return{Check:Sn(r,"\u2713","green"),Cross:Sn(r,"\u2718","red"),Question:Sn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([mW.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,EW.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>Qw,makeHash:()=>rn});var ww=J("crypto"),Kk=ve(Mk());function rn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x4=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v4.makeParser)(x4);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function bw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,nn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function GSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P4(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P4(t,i))return!1}return!0}function tn(r){let e=k4(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k4(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function b4(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${b4(e)}#`),n+=b4(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Tt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function vn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S4.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Tt(r)}@${xw(r.reference)}`}function Pf(r){return bn(r,[e=>Tt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Tt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x4),s=e[i];return s?s.includes(n):!0}):!0}var D4={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Tt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Tt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M4=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Hr=uC;Hr.protocol="workspace:";var bt={};ct(bt,{SemVer:()=>N4.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),N4=ve(zr()),R4=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R4.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R4.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F4=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F4.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F4.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L4(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=T4(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L4(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=T4(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Hr.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M4.default.valid(e.range))throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Tt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Tt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Tt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Tt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?vn(zt(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function T4(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L4(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O4(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O4(r,e[0]):`(${e.map(t=>O4(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Gve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t<e;)await n,yield{progress:t/e}}();return{[Symbol.asyncIterator](){return a},hasProgress:!0,hasTitle:!1,set:s,tick:o}}static progressViaTitle(){let e,t,i=new Promise(o=>{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Gve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=wr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Hr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Te.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Hr.protocol.length))}};var Nw={};ct(Nw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Tw,Lw;function dC(){return Tw=Tw!=null?Tw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("<environment>",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D4]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"<environment>")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("<environment>",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","<internal>")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e==="<environment>"&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!=="<environment>"){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Hr,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>vn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>vn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Qn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>NB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>TB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>NC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>an,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(N=>(N[N.ZIP_ER_OK=0]="ZIP_ER_OK",N[N.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",N[N.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",N[N.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",N[N.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",N[N.ZIP_ER_READ=5]="ZIP_ER_READ",N[N.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",N[N.ZIP_ER_CRC=7]="ZIP_ER_CRC",N[N.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",N[N.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",N[N.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",N[N.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",N[N.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",N[N.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",N[N.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",N[N.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",N[N.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",N[N.ZIP_ER_EOF=17]="ZIP_ER_EOF",N[N.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",N[N.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",N[N.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",N[N.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",N[N.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",N[N.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",N[N.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",N[N.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",N[N.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",N[N.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",N[N.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",N[N.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",N[N.ZIP_ER_TELL=30]="ZIP_ER_TELL",N[N.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",N))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function u9(){return NR===null&&(NR=l9((0,c9.default)())),NR}async function an(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var b9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>TR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Qn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function TR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(TS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} +`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>GH,Counter:()=>jH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&o<e.arity.leading.length},s=0;for(;s<i.positionals.length&&n(s);)s+=1;return i.positionals.splice(0,s).map(({value:o})=>o)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<n.positionals.length;++o){if(n.positionals[o].extra===Hn||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return sd((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function JH(r,...e){return typeof r=="string"?mCe(r,...e):ECe(r)}var wz=ve(Jg()),nD=J("stream");var dt=(ae=>(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function NI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>GSe,bindLocator:()=>jSe,convertDescriptorToLocator:()=>bw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>nn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>tn,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>vn,stringifyIdent:()=>Nt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>Gk,virtualizePackage:()=>jk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Sn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>bc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var mW=ve(Qn()),EW=ve(aW());var me={};ct(me,{AsyncActions:()=>Gx,BufferStream:()=>Hx,CachingStrategy:()=>dW,DefaultStream:()=>jx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>Qc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>CW,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>bn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var lW=ve(Qn()),cW=ve(Jg()),uW=ve(zr()),Yx=J("stream");function u0e(r){return!!(uW.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==gW&&t.push(n)}return t}var gW=Symbol();Uo.skip=gW;function Wd(r,e){for(let t of r){let i=e(t);if(i!==fW)return i}}var fW=Symbol();Wd.skip=fW;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function Qc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Yx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var Gx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,cW.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},jx=class extends Yx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function hW(r){return Jd(K.fromPortablePath(r))}function pW(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=hW(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var AW=new Map;function C0e(r){let e=AW.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=pW(r);return AW.set(r,{mtime:t.mtimeMs,instance:i}),i}var dW=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(dW||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return pW(r);case 1:return C0e(r);case 2:return hW(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${lW.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function CW(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return CW(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Sn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Nt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>vn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:vn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:vn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,tn(e.selector))} \u27A4 ${Sn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Nt(r.parentDescriptor)} > ${Nt(r.descriptor)}`;case"PeerDependency":return`${Nt(r.parentDescriptor)} >> ${Nt(r.descriptor)}`;case"PeerDependencyMeta":return`${Nt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Sn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Sn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Sn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ni(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Sn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Sn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Sn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?bc(t,i):_e(e,t,i)}function rP(r){return{Check:Sn(r,"\u2713","green"),Cross:Sn(r,"\u2718","red"),Question:Sn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([mW.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,EW.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>Qw,makeHash:()=>rn});var ww=J("crypto"),Kk=ve(Mk());function rn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(x8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function bw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,nn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function GSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function jSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P8(t,i))return!1}return!0}function tn(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function b8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${b8(e)}#`),n+=b8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Nt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function vn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Nt(r)}@${xw(r.reference)}`}function Pf(r){return bn(r,[e=>Nt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Nt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Nt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Nt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Hr=uC;Hr.protocol="workspace:";var bt={};ct(bt,{SemVer:()=>T8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),T8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=N8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=N8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Hr.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Nt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Nt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Nt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Nt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Nt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Nt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?vn(zt(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function N8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var Gve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function jve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t<e;)await n,yield{progress:t/e}}();return{[Symbol.asyncIterator](){return a},hasProgress:!0,hasTitle:!1,set:s,tick:o}}static progressViaTitle(){let e,t,i=new Promise(o=>{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/Gve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){jve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=wr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Tf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Tf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Tf.protocol)}supportsDescriptor(e,t){return Tf.isVirtualDescriptor(e)}supportsLocator(e,t){return Tf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Tf;hC.protocol="virtual:";var Nf=class{supports(e){return!!e.reference.startsWith(Hr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new Gt(i),prefixPath:Ne.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Hr.protocol.length))}};var Tw={};ct(Tw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Nw,Lw;function dC(){return Nw=Nw!=null?Nw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),Ga=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new Ga(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await Ga.findRcFiles(e),c=await Ga.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new Ga(e);h.importSettings(u(rD)),h.useWithSource("<environment>",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await Ga.findProjectCwd(e,p);break;case 1:d=await Ga.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"<environment>")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("<environment>",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","<internal>")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await Ga.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e==="<environment>"&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!=="<environment>"){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Hr,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Nf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Nt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>vn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>vn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=Ga;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},Gw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new Gw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Qn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>TB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>NB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>TC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>an,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(T=>(T[T.ZIP_ER_OK=0]="ZIP_ER_OK",T[T.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",T[T.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",T[T.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",T[T.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",T[T.ZIP_ER_READ=5]="ZIP_ER_READ",T[T.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",T[T.ZIP_ER_CRC=7]="ZIP_ER_CRC",T[T.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",T[T.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",T[T.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",T[T.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",T[T.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",T[T.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",T[T.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",T[T.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",T[T.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",T[T.ZIP_ER_EOF=17]="ZIP_ER_EOF",T[T.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",T[T.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",T[T.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",T[T.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",T[T.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",T[T.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",T[T.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",T[T.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",T[T.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",T[T.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",T[T.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",T[T.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",T[T.ZIP_ER_TELL=30]="ZIP_ER_TELL",T[T.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",T))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var TR=null;function u9(){return TR===null&&(TR=l9((0,c9.default)())),TR}async function an(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var b9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>NR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Qn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function NR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(NS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} `),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} `),c(128);break;default:n[2].write(`uncaught error: ${u.message} `),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var bs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` @@ -399,7 +399,7 @@ ${e.map(t=>` `),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function bB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} `),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} `),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new bs(t.stdin),stdout:new bs(t.stdout),stderr:new bs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;S<B;++c,++S)switch(h){case"<":d(()=>e.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]} -`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a<o.length-1;++a)n(o[a]);i(o[o.length-1])}break;case"*":{let s=e.args.join(" ");if(r.quoted)i(s);else for(let o of QB(s))n(o)}break;case"PPID":i(String(process.ppid));break;case"RANDOM":i(String(Math.floor(Math.random()*32768)));break;default:{let s=parseInt(r.name,10),o,a=Number.isFinite(s);if(a?s>=0&&s<e.args.length&&(o=e.args[s]):Object.prototype.hasOwnProperty.call(t.variables,r.name)?o=t.variables[r.name]:Object.prototype.hasOwnProperty.call(t.environment,r.name)&&(o=t.environment[r.name]),typeof o<"u"&&r.alternativeValue?o=(await Hc(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var IDe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m<d.length-1;++m)l(d[m]);o(d[d.length-1])}}break;case"variable":await x9(h,e,t,o,l);break;case"arithmetic":o(String(await kC(h.arithmetic,e,t)));break}break}if(a(),g){let h=n.pop();if(typeof h>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function Q9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,bB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new bs(o.stdin),stdout:new bs(o.stdout),stderr:new bs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return b9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(Q9(r,e,bB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a<o.length-1;++a)n(o[a]);i(o[o.length-1])}break;case"*":{let s=e.args.join(" ");if(r.quoted)i(s);else for(let o of QB(s))n(o)}break;case"PPID":i(String(process.ppid));break;case"RANDOM":i(String(Math.floor(Math.random()*32768)));break;default:{let s=parseInt(r.name,10),o,a=Number.isFinite(s);if(a?s>=0&&s<e.args.length&&(o=e.args[s]):Object.prototype.hasOwnProperty.call(t.variables,r.name)?o=t.variables[r.name]:Object.prototype.hasOwnProperty.call(t.environment,r.name)&&(o=t.environment[r.name]),typeof o<"u"&&r.alternativeValue?o=(await Hc(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var IDe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m<d.length-1;++m)l(d[m]);o(d[d.length-1])}}break;case"variable":await x9(h,e,t,o,l);break;case"arithmetic":o(String(await kC(h.arithmetic,e,t)));break}break}if(a(),g){let h=n.pop();if(typeof h>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=NR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function Q9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,bB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new bs(o.stdin),stdout:new bs(o.stdout),stderr:new bs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return b9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(Q9(r,e,bB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} `)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended `)})),0}return await Q9(r,e,t)}async function QDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} `),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await QDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function P9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} @@ -410,43 +410,43 @@ ${e.map(t=>` `,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,QRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,bRe=r=>r,FB=bRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=QRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} `),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})} `);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>uV&&(this.progressFrame=(this.progressFrame+1)%cV.length,this.progressTime=t);let i=cV[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${_e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Nr="3.8.3";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Tr="3.8.4";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Nr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Nr!==null?`yarn/${Nr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources +`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function TC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Tr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Nt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Tr!==null?`yarn/${Tr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources `);let p=await mV(r),d;p!==null?(c.write(`Using ${p.packageManager} for bootstrap. Reason: ${p.reason} `),d=p.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn -`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn +`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await TC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn `),c.write(` `),delete B.NODE_ENV;let W=await so("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` -`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function NB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await an()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await an(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=Te.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lTe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:bc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} +`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let T=qo(null,"npm"),ce=zt(T,O),he=zt(T,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new Gt(u,{baseFs:s});return(await ot.find(Ne.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function TB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await TC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await TC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await NB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new Gt(p,{baseFs:a}),m=await ot.find(Ne.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await an()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await TB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function NB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await NB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await NB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await TC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oNe,extractArchiveTo:()=>ANe,makeArchiveFromDirectory:()=>sNe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),N0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sNe(r,{baseFs:e=new Zt,prefixPath:t=Ne.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Ne.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oNe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new N0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await an(),level:e.compressionLevel})}async function*aNe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ANe(r,e,{stripComponents:t=0,prefixPath:i=Ne.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aNe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lNe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:bc(t.value[0],t.value[1]),children:n}};return e(r)}function lNe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} `);return}let s=(0,mZ.asTree)(EZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DT=ve(J("fs"));var cNe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cNe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uNe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kT(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore *.flock *.tmp -`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await an(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} +`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Ne.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Nt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kT(t)!==kT(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let T=`${a}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let T=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(T=>T())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,T=O?i:n;if(T&&T(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await an(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kT(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uNe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} `)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1<a,H=S&&0<=P&&P<l;if(!F&&!H){g[m]=void 0;continue}if(!F||H&&B.newPos<S.newPos?(y=fTe(S),s.pushComponent(y.components,void 0,!0)):(y=B,y.newPos++,s.pushComponent(y.components,!0,void 0)),P=s.extractCommon(y,t,e,m),y.newPos+1>=a&&P+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1<s&&l+1<o&&this.equals(t[a+1],i[l+1]);)a++,l++,c++;return c&&e.components.push({count:c}),e.newPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};function gTe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(p,d){var m=i[l+d];return m.length>p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&BZ.test(e[t])&&BZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var LN=new iA;LN.tokenize=function(r){var e=[],t=r.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var i=0;i<t.length;i++){var n=t[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=n:(this.options.ignoreWhitespace&&(n=n.trim()),e.push(n))}return e};function hTe(r,e,t){return LN.diff(r,e,t)}var pTe=new iA;pTe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var dTe=new iA;dTe.tokenize=function(r){return r.split(/([{}:;,]|\s+)/)};function O0(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O0=function(e){return typeof e}:O0=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O0(r)}function RN(r){return CTe(r)||mTe(r)||ETe(r)||ITe()}function CTe(r){if(Array.isArray(r))return FN(r)}function mTe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function ETe(r,e){if(!!r){if(typeof r=="string")return FN(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return FN(r,e)}}function FN(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function ITe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var yTe=Object.prototype.toString,_C=new iA;_C.useLongestToken=!0;_C.tokenize=LN.tokenize;_C.castInput=function(r){var e=this.options,t=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o>"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(yTe.call(r)==="[object Array]"){for(e.push(r),o=new Array(r.length),t.push(o),s=0;s<r.length;s+=1)o[s]=NN(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),O0(r)==="object"&&r!==null){e.push(r),o={},t.push(o);var a=[],l;for(l in r)r.hasOwnProperty(l)&&a.push(l);for(a.sort(),s=0;s<a.length;s+=1)l=a[s],o[l]=NN(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var TN=new iA;TN.tokenize=function(r){return r.slice()};TN.join=TN.removeEmpty=function(r){return r};function SZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` -`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S<a.length-2){var _;(_=h).push.apply(_,RN(l(F)))}else{var X,W=Math.min(F.length,o.context);(X=h).push.apply(X,RN(l(F.slice(0,W))));var Z={oldStart:u,oldLines:p-u+W,newStart:g,newLines:d-g+W,lines:h};if(S>=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y<a.length;y++)m(y);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var X0=ve(R$()),Z0=ve(Jg()),O$=ve(zr()),zN=J("util"),WN=ve(J("v8")),VN=ve(J("zlib"));var VMe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(r,e,t,i)=>`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,nn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(bw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var bh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Te.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=zt(this.locator,`${Hr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${Hr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Hr.protocol&&v.normalize(n)===this.relativeCwd||i===Hr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Hr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var N$=6,XMe=1,ZMe=/ *, */g,T$=/\/$/,_Me=32,$Me=(0,zN.promisify)(VN.default.gzip),e1e=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>rn(`${XMe}`,r),Ge=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ge(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. +`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1<a,H=S&&0<=P&&P<l;if(!F&&!H){g[m]=void 0;continue}if(!F||H&&B.newPos<S.newPos?(y=fNe(S),s.pushComponent(y.components,void 0,!0)):(y=B,y.newPos++,s.pushComponent(y.components,!0,void 0)),P=s.extractCommon(y,t,e,m),y.newPos+1>=a&&P+1>=l)return o(gNe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1<s&&l+1<o&&this.equals(t[a+1],i[l+1]);)a++,l++,c++;return c&&e.components.push({count:c}),e.newPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};function gNe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(p,d){var m=i[l+d];return m.length>p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fNe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&BZ.test(e[t])&&BZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var LT=new iA;LT.tokenize=function(r){var e=[],t=r.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var i=0;i<t.length;i++){var n=t[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=n:(this.options.ignoreWhitespace&&(n=n.trim()),e.push(n))}return e};function hNe(r,e,t){return LT.diff(r,e,t)}var pNe=new iA;pNe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var dNe=new iA;dNe.tokenize=function(r){return r.split(/([{}:;,]|\s+)/)};function O0(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O0=function(e){return typeof e}:O0=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O0(r)}function RT(r){return CNe(r)||mNe(r)||ENe(r)||INe()}function CNe(r){if(Array.isArray(r))return FT(r)}function mNe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function ENe(r,e){if(!!r){if(typeof r=="string")return FT(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return FT(r,e)}}function FT(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function INe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var yNe=Object.prototype.toString,_C=new iA;_C.useLongestToken=!0;_C.tokenize=LT.tokenize;_C.castInput=function(r){var e=this.options,t=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o>"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(TT(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function TT(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(yNe.call(r)==="[object Array]"){for(e.push(r),o=new Array(r.length),t.push(o),s=0;s<r.length;s+=1)o[s]=TT(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),O0(r)==="object"&&r!==null){e.push(r),o={},t.push(o);var a=[],l;for(l in r)r.hasOwnProperty(l)&&a.push(l);for(a.sort(),s=0;s<a.length;s+=1)l=a[s],o[l]=TT(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var NT=new iA;NT.tokenize=function(r){return r.slice()};NT.join=NT.removeEmpty=function(r){return r};function SZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=hNe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` +`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RT(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S<a.length-2){var _;(_=h).push.apply(_,RT(l(F)))}else{var X,W=Math.min(F.length,o.context);(X=h).push.apply(X,RT(l(F.slice(0,W))));var Z={oldStart:u,oldLines:p-u+W,newStart:g,newLines:d-g+W,lines:h};if(S>=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y<a.length;y++)m(y);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var X0=ve(R$()),Z0=ve(Jg()),O$=ve(zr()),zT=J("util"),WT=ve(J("v8")),VT=ve(J("zlib"));var VMe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(r,e,t,i)=>`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,nn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(bw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var bh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Ne.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=zt(this.locator,`${Hr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${Hr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Hr.protocol&&v.normalize(n)===this.relativeCwd||i===Hr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Hr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var T$=6,XMe=1,ZMe=/ *, */g,N$=/\/$/,_Me=32,$Me=(0,zT.promisify)(VT.default.gzip),e1e=(0,zT.promisify)(VT.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JT={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>rn(`${XMe}`,r),je=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new je(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. ${[g,h,p].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<N$;for(let l of Object.keys(s)){if(l==="__metadata")continue;let c=s[l];if(typeof c.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Tt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(T$,"")!==e.replace(T$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let N=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,N)})`);g.set(N.locatorHash,N);let ce=this.configuration.normalizePackage(N);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let N=h.get(O.locatorHash);if(typeof N<"u")return N;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,N)=>{let ce=await te(N);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let N=this.resolutionAliases.get(O.descriptorHash);if(typeof N<"u")return ne(O,this.storedDescriptors.get(N));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let N=p.get(O.descriptorHash);if(typeof N<"u")return N;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let N=O.anchoredDescriptor;y.push(te(N))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let N=O.makeInstaller(c),ce=N.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&N.attachCustomData(he),[O,N]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(N,a)]}))),m=[];for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(typeof N>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(N.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(N);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(N,c)&&(await ge.installPackage(N,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(N.locatorHash,Ae),!Yo(N)&&Re.length>0&&p.set(N.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(N,c));if(!Re)throw new rt(12,`${Ct(this.configuration,N)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(N,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(N.locatorHash,Re),h.set(N.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(N.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(N)!==null,he=async(Pe,De)=>{let Re=h.get(N.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,N)}) should have been registered`);let se=[];for(let Ae of N.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,N)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(N,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(N,c)&&await he(Pe,De);else{let Pe=g.get(N.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,N]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,N)}let B=new Map;for(let O of u.values()){let N=await O.finalizeInstall();for(let ce of(te=N==null?void 0:N.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(N==null?void 0:N.customData)<"u"&&B.set(O.getCustomDataKey(),N.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let N=q.get(O.locatorHash);if(typeof N<"u")return N;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"<recursive>");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return N=he.digest("hex"),q.set(O.locatorHash,N),N},X=(O,N)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of N)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let N=new Set([O.locatorHash]);for(let ce of N){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;N.add(se.anchoredLocator.locatorHash)}N.add(De)}}return!0};for(;P.size>0;){let O=P.size,N=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<T$;for(let l of Object.keys(s)){if(l==="__metadata")continue;let c=s[l];if(typeof c.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Nt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(N$,"")!==e.replace(N$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let T=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,T))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,T)})`);g.set(T.locatorHash,T);let ce=this.configuration.normalizePackage(T);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let T=h.get(O.locatorHash);if(typeof T<"u")return T;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,T)=>{let ce=await te(T);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let T=this.resolutionAliases.get(O.descriptorHash);if(typeof T<"u")return ne(O,this.storedDescriptors.get(T));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let T=p.get(O.descriptorHash);if(typeof T<"u")return T;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let T=O.anchoredDescriptor;y.push(te(T))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let T=O.makeInstaller(c),ce=T.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&T.attachCustomData(he),[O,T]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(T,a)]}))),m=[];for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(typeof T>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(T.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(T);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(T,c)&&(await ge.installPackage(T,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(T.locatorHash,Ae),!Yo(T)&&Re.length>0&&p.set(T.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(T,c));if(!Re)throw new rt(12,`${Ct(this.configuration,T)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(T,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(T.locatorHash,Re),h.set(T.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(T.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(T)!==null,he=async(Pe,De)=>{let Re=h.get(T.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,T)}) should have been registered`);let se=[];for(let Ae of T.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,T)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(T,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(T,c)&&await he(Pe,De);else{let Pe=g.get(T.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,T]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,T)}let B=new Map;for(let O of u.values()){let T=await O.finalizeInstall();for(let ce of(te=T==null?void 0:T.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(T==null?void 0:T.customData)<"u"&&B.set(O.getCustomDataKey(),T.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let T=q.get(O.locatorHash);if(typeof T<"u")return T;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"<recursive>");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return T=he.digest("hex"),q.set(O.locatorHash,T),T},X=(O,T)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of T)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let T=new Set([O.locatorHash]);for(let ce of T){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;T.add(se.anchoredLocator.locatorHash)}T.add(De)}}return!0};for(;P.size>0;){let O=P.size,T=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) `;switch(Ae){case 0:ge+=`# Script name: ${ye} `;break;case 1:ge+=`# Script code: ${ye} -`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;u<s.length;++u)o[u]!==c[u]&&e.report.reportError(64,`The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile(),await this.configuration.triggerHook(c=>c.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>vn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let j=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(j,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await TB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,j,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});T.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(T),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;u<s.length;++u)o[u]!==c[u]&&e.report.reportError(64,`The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile(),await this.configuration.triggerHook(c=>c.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:T$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>vn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} -`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} -`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(bn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=rn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=tn(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${rn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of N){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Hr.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Hr.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:N.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Tt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements <hash>",Ke.CODE)} for details, where ${_e(r.configuration,"<hash>",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){Qc(this.values,e).add(t)}reportEnumerator(e,t){Qc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),M$=ve(cc());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!bt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZN.realpathSync)(process.cwd()),X=(0,ZN.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Tm={};ct(Tm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wQ,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends be{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VT()),_ie=()=>new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",pn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ge.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VT());var CO={};ct(CO,{dedupeUtils:()=>FQ,default:()=>y8e,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>PQ,Target:()=>Hm,WorkspaceModifier:()=>Nse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Tse,fetchDescriptorFrom:()=>GL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Nse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Nse||{}),PQ=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(PQ||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Tse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await GL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await GL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function GL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Tse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} +`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JT))e.push(...o);let t=(0,X0.default)(this,e),i=WT.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WT.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JT.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JT.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} +`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],T=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let j=te.dependenciesMeta.get(Nt(Re));if(typeof j<"u"){let fe=j.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;T.push(()=>{ge=Gk(Re,Z.locatorHash),oe=jk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var j;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(j=A.get(fe.identHash))!=null?j:oe.locatorHash)}oe.dependencies=new Map(bn(oe.dependencies,([fe,re])=>Nt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let j=c.get(ye.locatorHash);typeof j=="number"&&j>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let j=te.dependencies.get(Re.identHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(j.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Nt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...T,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=rn(...[...Ae.dependencies.values()].map(j=>{let fe=j.range!=="missing:"?t.get(j.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,j)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let j of ie){let fe=i.get(j);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,T]of ne){let ce=tn(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${rn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:T});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of T){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Hr.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Hr.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:T.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Nt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements <hash>",Ke.CODE)} for details, where ${_e(r.configuration,"<hash>",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){Qc(this.values,e).add(t)}reportEnumerator(e,t){Qc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XT=J("child_process"),M$=ve(cc());var ZT=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XT.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XT.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new Gn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!bt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZT.realpathSync)(process.cwd()),X=(0,ZT.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Nm={};ct(Nm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wQ,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends be{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VN()),_ie=()=>new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",pn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await je.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VN());var CO={};ct(CO,{dedupeUtils:()=>FQ,default:()=>y4e,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>PQ,Target:()=>Hm,WorkspaceModifier:()=>Tse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>GL,extractRangeModifier:()=>Nse,fetchDescriptorFrom:()=>jL,findProjectDescriptors:()=>Kse,getModifier:()=>Gm,getSuggestedDescriptors:()=>jm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Tse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Tse||{}),PQ=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(PQ||{});function Gm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Nse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function GL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await jL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function jm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await jL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function jL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Nse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=Gm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await GL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await jm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` +`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} `),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=be.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. @@ -469,13 +469,13 @@ Try running the command again with the package name prefixed: ${$.pretty(t,"yarn This command will unset a configuration setting. `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"<default>":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=be.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Qn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),NWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=NWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Nr||"<unknown>"} -`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.Usage({description:"execute a shell script",details:` + `,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Qn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),TWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=TWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=Gn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} +`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Tr||"<unknown>"} +`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.Usage({description:"explain a set of peer requirements",details:` A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. @@ -483,9 +483,9 @@ Try running the command again with the package name prefixed: ${$.pretty(t,"yarn When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"<missing>")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Nr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=be.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function OWe(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>bt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"<missing>")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Tr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=be.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function OWe(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>bt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: ${e}`)});let n=(p=r.projectCwd)!=null?p:r.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(r.startingCwd,o),l=v.relative(n,o);i.reportInfo(0,`Saving the new release in ${$.pretty(r,a,"magenta")}`),await M.removePromise(v.dirname(o)),await M.mkdirPromise(v.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ee.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&me.isTaggedYarnVersion(e)?e:await Wm(r,"stable")}`;let u={};c.exportTo(u);let g=v.join(n,ot.fileName),h=`${JSON.stringify(u,null,c.indent)} -`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var MWe=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Nr)?Nr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[NI(r)]}var MWe=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Tr)?Tr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} @@ -497,7 +497,7 @@ ${l} When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Qn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let N=x.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,N;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(N=i.storedPackages.get(ue))!=null?N:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=be.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var NQ=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!NQ.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!NQ.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!NQ.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await GWe(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("<compat>",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ge.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],be.Default],Bu.usage=be.Usage({description:"install the project dependencies",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Qn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let T=x.stringifyIdent(O);if(!ne.test(T))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,T]of Object.entries(ne))typeof T>"u"||(te[O]={label:O,value:T})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,T;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(T=i.storedPackages.get(ue))!=null?T:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=be.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var TQ=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!TQ.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await jWe(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("<compat>",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await je.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],be.Default],Bu.usage=be.Usage({description:"install the project dependencies",details:` This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). @@ -523,18 +523,18 @@ ${l} - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var UWe="|||||||",HWe=">>>>>>>",jWe="=======",mae="<<<<<<<";async function GWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function YWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===jWe){i=!1;break}else if(i||s.startsWith(UWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var UWe="|||||||",HWe=">>>>>>>",GWe="=======",mae="<<<<<<<";async function jWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function YWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===GWe){i=!1;break}else if(i||s.startsWith(UWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` `),e[1].join(` -`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.Usage({description:"run node with the hook already setup",details:` +`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await je.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Qae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=be.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.Usage({description:"build Yarn from master",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Qae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=be.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function zm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await pr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${$.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Nr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Nr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.Usage({category:"Plugin-related commands",description:"download a plugin",details:` +`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await je.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Tr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Tr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: @@ -544,23 +544,23 @@ ${l} - Local plugins can be referenced by their path on the disk. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await je.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=be.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.Usage({description:"rebuild the project's native packages",details:` + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Qn());As();var Nu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=be.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Qn());As();var Tu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Tu.paths=[["remove"]],Tu.usage=be.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -570,7 +570,7 @@ ${l} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=be.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await je.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Nu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await je.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Nu.paths=[["run"]],Nu.usage=be.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -580,48 +580,48 @@ ${l} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Qn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Qn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await je.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Qn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Qn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=Gm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await jm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range ${_}`):B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) ${_}`)}else H.length>1&&!o&&B.reportError(27,`${x.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:P}]of g){let F,H=P.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${x.prettyWorkspace(t,B)} \u276F ${S}?`,choices:P.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.Usage({description:"display the reason why a package is needed",details:` +`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E8e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>TQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C8e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function p8e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(p8e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d8e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],TQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(TQ||{});function ep(r){return r?d8e.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(TQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(TQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,LQ(r.reference))}function fO(r,{configuration:e}){let t=LQ(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=bt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function C8e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var OQ=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var MQ=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m8e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[OQ],resolvers:[MQ]};var E8e=m8e;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=be.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E4e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>NQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C4e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var jae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function Gae(r){try{return new jae.URL(r)}catch{return}}function p4e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return Gae(r)||Gae(p4e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],NQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(NQ||{});function ep(r){return r?d4e.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(NQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(NQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,LQ(r.reference))}function fO(r,{configuration:e}){let t=LQ(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=bt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function C4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var OQ=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var MQ=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[OQ],resolvers:[MQ]};var E4e=m4e;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=be.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${l.join(` - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=be.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var I8e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},y8e=I8e;var wO={};ct(wO,{default:()=>B8e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),w8e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin<compat/${x.stringifyIdent(r)}>`,params:null}))}},B8e=w8e;var BO={};ct(BO,{default:()=>b8e});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var I4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Tu,_h,Nu,ml,Mu,Uu]},y4e=I4e;var wO={};ct(wO,{default:()=>B4e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),w4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin<compat/${x.stringifyIdent(r)}>`,params:null}))}},B4e=w4e;var BO={};ct(BO,{default:()=>b4e});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} `),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let P=typeof S=="string"?S:S.path,F=K.isAbsolute(P)?P:K.resolve(K.fromPortablePath(s),P);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} enableTelemetry: false `);let l=(m=this.packages)!=null?m:[this.command],c=x.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` -`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var Q8e={commands:[tp,Hu]},b8e=Q8e;var vO={};ct(vO,{default:()=>x8e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,jr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(jr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:jr,fetchOptions:t})}};var S8e=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(jr)}supportsLocator(e,t){return!!e.reference.startsWith(jr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:jr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:jr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S8e}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:jr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jQ=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var GQ=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(jr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(jr)?e.range.slice(jr.length):e.range;return[x.makeLocator(e,`${jr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var v8e={fetchers:[jQ,UQ],resolvers:[GQ,HQ]},x8e=v8e;var xO={};ct(xO,{default:()=>R8e});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(P8e(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function P8e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var YQ=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var D8e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new YQ;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},R8e=D8e;var PO={};ct(PO,{default:()=>N8e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qQ=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var JQ=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var F8e={fetchers:[qQ],resolvers:[JQ]},N8e=F8e;var FO={};ct(FO,{default:()=>T4e});var NAe=ve(FAe()),RO=J("util"),ju=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ge.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Nr&&me.isTaggedYarnVersion(Nr)?`yarn@${Nr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} +`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await je.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var Q4e={commands:[tp,Hu]},b4e=Q4e;var vO={};ct(vO,{default:()=>x4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Gr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(Gr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Gr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:Gr,fetchOptions:t})}};var S4e=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(Gr)}supportsLocator(e,t){return!!e.reference.startsWith(Gr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Gr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:Gr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:Gr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S4e}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:Gr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var GQ=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Gr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Gr}),s=v.isAbsolute(n)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var jQ=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(Gr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Gr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Gr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(Gr)?e.range.slice(Gr.length):e.range;return[x.makeLocator(e,`${Gr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var v4e={fetchers:[GQ,UQ],resolvers:[jQ,HQ]},x4e=v4e;var xO={};ct(xO,{default:()=>R4e});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(P4e(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function P4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var YQ=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new Gt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var D4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new YQ;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},R4e=D4e;var PO={};ct(PO,{default:()=>T4e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qQ=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var JQ=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var F4e={fetchers:[qQ],resolvers:[JQ]},T4e=F4e;var FO={};ct(FO,{default:()=>N8e});var TAe=ve(FAe()),RO=J("util"),Gu=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await je.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Tr&&me.isTaggedYarnVersion(Tr)?`yarn@${Tr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} `);let a=v.join(this.context.cwd,ot.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)} `,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${x.stringifyIdent(n.name)} `),!i||i.cwd===this.context.cwd){let u=v.join(this.context.cwd,St.lockfile);M.existsSync(u)||await M.writeFilePromise(u,"");let h=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(F=>`${F} `).join(""),p=v.join(this.context.cwd,".gitignore");M.existsSync(p)||await M.writeFilePromise(p,h);let m=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(F=>`${F} -`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,NAe.default)(B,t.get("initEditorConfig"));let S=`root = true +`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,TAe.default)(B,t.get("initEditorConfig"));let S=`root = true `;for(let[F,H]of Object.entries(B)){S+=` [${F}] `;for(let[q,_]of Object.entries(H)){let X=q.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);S+=`${X} = ${_} -`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=be.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var N4e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},T4e=N4e;var NO={};ct(NO,{default:()=>O4e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L4e={fetchers:[VQ,WQ],resolvers:[XQ,zQ]},O4e=L4e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,TAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y4e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};Gu.paths=[["init"]],Gu.usage=be.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var T8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[Gu]},N8e=T8e;var TO={};ct(TO,{default:()=>O8e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Gt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Gt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[VQ,WQ],resolvers:[XQ,zQ]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,NAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${u}, next tree: ${eE(a)}`);let h=KAe(a);if(h)throw new Error(`${h}, after hoisting finished: -${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q4e(a)},M4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K4e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U4e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J4e(o),l=U4e(o,a),c=r==o?new Map:n.fastLookupPossible?M4e(e):K4e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G4e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H4e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j4e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H4e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,G4e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j4e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let N of O.dependsOn){let ce=X.get(N.name)||new Set;ce.add(te.name),X.set(N.name,ce)}}let Z=new Set,A=(te,O,N)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:N});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let N=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!N)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)N.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: -${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},Y4e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q4e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J4e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),h=MO(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} +${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},NO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=j8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},G8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,j8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of NO(F)){let O=G8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let T of O.dependsOn){let ce=X.get(T.name)||new Set;ce.add(te.name),X.set(T.name,ce)}}let Z=new Set,A=(te,O,T)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:T});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let T=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!T)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)T.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: +${eE(r)}`)}let ue=NO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(NO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` +`)},Y8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:NAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:NAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),h=MO(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} `,l+=t(u,s,`${o}${c<a.length-1?"\u2502 ":" "}`)}}return s.delete(n),l};return t(r,new Set)+(e>OAe?` Tree is too large, part of the tree has been dunped -`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z4e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X4e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W4e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z4e=(r,e)=>{let t=[],i=!1,n=new Map,s=W4e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ye);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else N.set(Ye,{target:G.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Te.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Te.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V4e(r,e,t){let i=e.getLocator(r.name.replace(Gu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X4e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V4e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Gu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),N=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([N])});else if(ce.dirList){if(ce.dirList.has(N))break;ce.dirList.add(N)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var GAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z4e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n<s;++n)i+=_Q(String(n),r[n],e,t).replace(/^ +/g,""),n+1<s&&(i+=", ");return i+="]",i}function _4e(r,e,t){let i=`${t} `,n="";n+=t,n+=`[ +`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",ju="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=GAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let T=0;X?T=2:d.linkType==="SOFT"&&m.name.endsWith(ju)&&(T=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:T===1?new Set:d.packagePeers,dependencyKind:T},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let T=na({name:y.identName,reference:y.reference}),ce=n.get(T)||new Set;n.set(T,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let T=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(T){let ce=new Set([...Array.from(T.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(T.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(ju,""),reference:m.reference}),ne=s.get(A);if(ne)for(let T of ne)Z.set(`${T.name}${ju}`,T.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(ju)&&!X;if(!_&&!ue){let T=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(ju,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let j=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(j)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,j)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,j)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=T.get(Ye);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,j)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,j)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else T.set(Ye,{target:j.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Ne.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Ne.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function GAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(ju,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:GAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(ju)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),T=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([T])});else if(ce.dirList){if(ce.dirList.has(T))break;ce.dirList.add(T)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var jAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n<s;++n)i+=_Q(String(n),r[n],e,t).replace(/^ +/g,""),n+1<s&&(i+=", ");return i+="]",i}function _8e(r,e,t){let i=`${t} `,n="";n+=t,n+=`[ `;for(let s=0,o=r.length;s<o;++s)n+=i+_Q(String(s),r[s],e,i).replace(/^ +/,""),s+1<o&&(n+=","),n+=` -`;return n+=t,n+="]",n}function $4e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ +`;return n+=t,n+="]",n}function $8e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ `;let o=0;for(let a=0,l=i.length;a<l;++a){let c=i[a],u=r[c];typeof u>"u"||(o!==0&&(s+=",",s+=` `),s+=n,s+=JSON.stringify(c),s+=": ",s+=_Q(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` -`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z4e(r,e,t):_4e(r,e,t):typeof r=="object"&&r!==null?i?$4e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} +`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=jAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=jAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} `:"",`/* eslint-disable */ `,`"use strict"; `,` @@ -633,66 +633,66 @@ Tree is too large, part of the tree has been dunped `].join("")}function aze(r){return[`var path = require('path'); `,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); `,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function jO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Yu(r,n)&&(t[n]=r[n])}return t}var $Q=new $Ae;function Aze(r,e,t,i){let n=$Q.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let p={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(r,p),p}let o;try{o=ele(s)}catch(p){throw new lE(r,(t?`"${e}" from `:"")+(0,eb.fileURLToPath)(t||e),p.message)}let{imports:a,main:l,name:c,type:u}=sle(o,["imports","main","name","type"]),g=Yu(o,"exports")?o.exports:void 0;(typeof a!="object"||a===null)&&(a=void 0),typeof l!="string"&&(l=void 0),typeof c!="string"&&(c=void 0),u!=="module"&&u!=="commonjs"&&(u="none");let h={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return $Q.set(r,h),h}function ole(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(El(s,"node_modules/package.json"))break;let o=Aze((0,eb.fileURLToPath)(t),r,void 0,e);if(o.exists)return o;let a=t;if(t=new URL("../package.json",t),t.pathname===a.pathname)break}let i=(0,eb.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(i,n),n}function lze(r,e,t){throw new rle(r,e&&(0,qi.fileURLToPath)(new URL(".",e)),(0,qi.fileURLToPath)(t))}function cze(r,e,t,i){let n=`request is not a valid subpath for the "${t?"imports":"exports"}" resolution of ${(0,qi.fileURLToPath)(e)}`;throw new zO(r,n,i&&(0,qi.fileURLToPath)(i))}function cE(r,e,t,i,n){throw typeof e=="object"&&e!==null?e=sE(e,null,""):e=`${e}`,new ile((0,qi.fileURLToPath)(new URL(".",t)),r,e,i,n&&(0,qi.fileURLToPath)(n))}var ale=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,Ale=/\*/g;function uze(r,e,t,i,n,s,o,a){if(e!==""&&!s&&r[r.length-1]!=="/"&&cE(t,r,i,o,n),!sa(r,"./")){if(o&&!sa(r,"../")&&!sa(r,"/")){let g=!1;try{new URL(r),g=!0}catch{}if(!g)return s?qO(Ale,r,()=>e):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(GO(e)){if(e.length===0)return null;let l;for(let c=0;c<e.length;c++){let u=e[c],g;try{g=ip(r,u,t,i,n,s,o,a)}catch(h){if(l=h,h.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw h}if(g!==void 0){if(g===null){l=null;continue}return g}}if(l==null)return l;throw l}else if(typeof e=="object"&&e!==null){let l=oE(e);for(let c=0;c<l.length;c++){let u=l[c];if(gze(u))throw new lE((0,qi.fileURLToPath)(r),n,'"exports" cannot contain numeric property keys.')}for(let c=0;c<l.length;c++){let u=l[c];if(u==="default"||a.has(u)){let g=e[u],h=ip(r,g,t,i,n,s,o,a);if(h===void 0)continue;return h}}return}else if(e===null)return null;cE(i,e,r,o,n)}function cle(r,e){let t=aE(r,"*"),i=aE(e,"*"),n=t===-1?r.length:t+1,s=i===-1?e.length:i+1;return n>s?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||GO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a===""||a[0]!==".";if(s++===0)n=l;else if(n!==l)throw new lE((0,qi.fileURLToPath)(e),t,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return n}function VO(r,e,t){throw new nle((0,qi.fileURLToPath)(new URL(".",e)),r,t&&(0,qi.fileURLToPath)(t))}var lle=new Set;function hze(r,e,t){let i=(0,qi.fileURLToPath)(e);lle.has(i+"|"+r)||(lle.add(i+"|"+r),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${r}" in the "exports" field module resolution of the package at ${i}${t?` imported from ${(0,qi.fileURLToPath)(t)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function ule({packageJSONUrl:r,packageSubpath:e,exports:t,base:i,conditions:n}){if(fze(t,r,i)&&(t={".":t}),Yu(t,e)&&!JO(e,"*")&&!El(e,"/")){let l=t[e],c=ip(r,l,"",e,i,!1,!1,n);return c==null&&VO(e,r,i),c}let s="",o,a=oE(t);for(let l=0;l<a.length;l++){let c=a[l],u=aE(c,"*");if(u!==-1&&sa(e,Il(c,0,u))){El(e,"/")&&hze(e,r,i);let g=Il(c,u+1);e.length>=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u<c.length;u++){let g=c[u],h=aE(g,"*");if(h!==-1&&sa(r,Il(g,0,h))){let p=Il(g,h+1);r.length>=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s<r.length;++s){let o=r[s];if(o==="\\"&&i){if(s+1===r.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) +`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function GO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var jO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Yu(r,n)&&(t[n]=r[n])}return t}var $Q=new $Ae;function Aze(r,e,t,i){let n=$Q.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let p={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(r,p),p}let o;try{o=ele(s)}catch(p){throw new lE(r,(t?`"${e}" from `:"")+(0,eb.fileURLToPath)(t||e),p.message)}let{imports:a,main:l,name:c,type:u}=sle(o,["imports","main","name","type"]),g=Yu(o,"exports")?o.exports:void 0;(typeof a!="object"||a===null)&&(a=void 0),typeof l!="string"&&(l=void 0),typeof c!="string"&&(c=void 0),u!=="module"&&u!=="commonjs"&&(u="none");let h={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return $Q.set(r,h),h}function ole(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(El(s,"node_modules/package.json"))break;let o=Aze((0,eb.fileURLToPath)(t),r,void 0,e);if(o.exists)return o;let a=t;if(t=new URL("../package.json",t),t.pathname===a.pathname)break}let i=(0,eb.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(i,n),n}function lze(r,e,t){throw new rle(r,e&&(0,qi.fileURLToPath)(new URL(".",e)),(0,qi.fileURLToPath)(t))}function cze(r,e,t,i){let n=`request is not a valid subpath for the "${t?"imports":"exports"}" resolution of ${(0,qi.fileURLToPath)(e)}`;throw new zO(r,n,i&&(0,qi.fileURLToPath)(i))}function cE(r,e,t,i,n){throw typeof e=="object"&&e!==null?e=sE(e,null,""):e=`${e}`,new ile((0,qi.fileURLToPath)(new URL(".",t)),r,e,i,n&&(0,qi.fileURLToPath)(n))}var ale=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,Ale=/\*/g;function uze(r,e,t,i,n,s,o,a){if(e!==""&&!s&&r[r.length-1]!=="/"&&cE(t,r,i,o,n),!sa(r,"./")){if(o&&!sa(r,"../")&&!sa(r,"/")){let g=!1;try{new URL(r),g=!0}catch{}if(!g)return s?qO(Ale,r,()=>e):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(jO(e)){if(e.length===0)return null;let l;for(let c=0;c<e.length;c++){let u=e[c],g;try{g=ip(r,u,t,i,n,s,o,a)}catch(h){if(l=h,h.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw h}if(g!==void 0){if(g===null){l=null;continue}return g}}if(l==null)return l;throw l}else if(typeof e=="object"&&e!==null){let l=oE(e);for(let c=0;c<l.length;c++){let u=l[c];if(gze(u))throw new lE((0,qi.fileURLToPath)(r),n,'"exports" cannot contain numeric property keys.')}for(let c=0;c<l.length;c++){let u=l[c];if(u==="default"||a.has(u)){let g=e[u],h=ip(r,g,t,i,n,s,o,a);if(h===void 0)continue;return h}}return}else if(e===null)return null;cE(i,e,r,o,n)}function cle(r,e){let t=aE(r,"*"),i=aE(e,"*"),n=t===-1?r.length:t+1,s=i===-1?e.length:i+1;return n>s?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||jO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a===""||a[0]!==".";if(s++===0)n=l;else if(n!==l)throw new lE((0,qi.fileURLToPath)(e),t,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return n}function VO(r,e,t){throw new nle((0,qi.fileURLToPath)(new URL(".",e)),r,t&&(0,qi.fileURLToPath)(t))}var lle=new Set;function hze(r,e,t){let i=(0,qi.fileURLToPath)(e);lle.has(i+"|"+r)||(lle.add(i+"|"+r),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${r}" in the "exports" field module resolution of the package at ${i}${t?` imported from ${(0,qi.fileURLToPath)(t)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function ule({packageJSONUrl:r,packageSubpath:e,exports:t,base:i,conditions:n}){if(fze(t,r,i)&&(t={".":t}),Yu(t,e)&&!JO(e,"*")&&!El(e,"/")){let l=t[e],c=ip(r,l,"",e,i,!1,!1,n);return c==null&&VO(e,r,i),c}let s="",o,a=oE(t);for(let l=0;l<a.length;l++){let c=a[l],u=aE(c,"*");if(u!==-1&&sa(e,Il(c,0,u))){El(e,"/")&&hze(e,r,i);let g=Il(c,u+1);e.length>=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u<c.length;u++){let g=c[u],h=aE(g,"*");if(h!==-1&&sa(r,Il(g,0,h))){let p=Il(g,h+1);r.length>=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s<r.length;++s){let o=r[s];if(o==="\\"&&i){if(s+1===r.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) `),t;o=r[++s]}else if(o===" "&&!i){n=!0;continue}else if(o==='"'){i=!i;continue}n?(t.push(o),n=!1):t[t.length-1]+=o}return i&&e.push(`invalid value for NODE_OPTIONS (unterminated string) -`),t}var Ele=J("module");var[Ir,Ji]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=Ir>16||Ir===16&&Ji>=12,IBt=Ir>17||Ir===17&&Ji>=5||Ir===16&&Ji>=15,yBt=Ir>17||Ir===17&&Ji>=1||Ir===16&&Ji>14,mle=Ir>19||Ir===19&&Ji>=2||Ir===18&&Ji>=13,wBt=Ir===20&&Ji<6||Ir===19&&Ji>=3,BBt=Ir>19||Ir===19&&Ji>=6,QBt=Ir>18||Ir===18&&Ji>=1||Ir===16&&Ji>=17,bBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=19,SBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=20,vBt=Ir>=22;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=`${se}${ye[oe]}`;if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}if(ge&&ge.isDirectory())for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=v.format({dir:se,name:"index",ext:ye[oe]});if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}return null}function q(se){let Ae=new gE.Module(se,null);return Ae.filename=se,Ae.paths=gE.Module._nodeModulePaths(se),Ae}function _(se,Ae){return Ae.endsWith("/")&&(Ae=v.join(Ae,"internal.js")),gE.Module._resolveFilename(K.fromPortablePath(se),q(K.fromPortablePath(Ae)),!1,{plugnplay:!1})}function X(se){if(g===null)return!1;let Ae=v.contains(r.basePath,se);return Ae===null?!1:!!g.test(Ae.replace(/\/$/,""))}let W={std:3,resolveVirtual:1,getAllLocators:1},Z=l;function A({name:se,reference:Ae}){let ye=h.get(se);if(!ye)return null;let ge=ye.get(Ae);return ge||null}function ne({name:se,reference:Ae}){let ye=[];for(let[ge,oe]of h)if(ge!==null)for(let[Ye,ie]of oe)Ye===null||ie.packageDependencies.get(se)!==Ae||ge===se&&Ye===Ae||ye.push({name:ge,reference:Ye});return ye}function ue(se,Ae){let ye=new Map,ge=new Set,oe=ie=>{let G=JSON.stringify(ie.name);if(ge.has(G))return;ge.add(G);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let G of[...ye.get(ie)].sort())Ye.push({name:ie,reference:G});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function N(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tb(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let G=_(se,Ae);if(G===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),t}var Ele=J("module");var[Ir,Ji]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=Ir>16||Ir===16&&Ji>=12,IBt=Ir>17||Ir===17&&Ji>=5||Ir===16&&Ji>=15,yBt=Ir>17||Ir===17&&Ji>=1||Ir===16&&Ji>14,mle=Ir>19||Ir===19&&Ji>=2||Ir===18&&Ji>=13,wBt=Ir===20&&Ji<6||Ir===19&&Ji>=3,BBt=Ir>19||Ir===19&&Ji>=6,QBt=Ir>18||Ir===18&&Ji>=1||Ir===16&&Ji>=17,bBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=19,SBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=20,vBt=Ir>=22;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,j,fe,re,de;let Ae=(j=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?j:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let j=v.contains(oe,se);if(j===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");j!=="."&&!a.test(j)&&(j=`./${j}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:j,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(j),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=`${se}${ye[oe]}`;if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}if(ge&&ge.isDirectory())for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=v.format({dir:se,name:"index",ext:ye[oe]});if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}return null}function q(se){let Ae=new gE.Module(se,null);return Ae.filename=se,Ae.paths=gE.Module._nodeModulePaths(se),Ae}function _(se,Ae){return Ae.endsWith("/")&&(Ae=v.join(Ae,"internal.js")),gE.Module._resolveFilename(K.fromPortablePath(se),q(K.fromPortablePath(Ae)),!1,{plugnplay:!1})}function X(se){if(g===null)return!1;let Ae=v.contains(r.basePath,se);return Ae===null?!1:!!g.test(Ae.replace(/\/$/,""))}let W={std:3,resolveVirtual:1,getAllLocators:1},Z=l;function A({name:se,reference:Ae}){let ye=h.get(se);if(!ye)return null;let ge=ye.get(Ae);return ge||null}function ne({name:se,reference:Ae}){let ye=[];for(let[ge,oe]of h)if(ge!==null)for(let[Ye,ie]of oe)Ye===null||ie.packageDependencies.get(se)!==Ae||ge===se&&Ye===Ae||ye.push({name:ge,reference:Ye});return ye}function ue(se,Ae){let ye=new Map,ge=new Set,oe=ie=>{let j=JSON.stringify(ie.name);if(ge.has(j))return;ge.add(j);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let j of[...ye.get(ie)].sort())Ye.push({name:ie,reference:j});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function T(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tb(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let j=_(se,Ae);if(j===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(G)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,G,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). +`,{request:ge,issuer:oe});return K.toPortablePath(j)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,j,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). Require path: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(G),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;ri<Ms;++ri){let Ei=B(c[ri]).packageDependencies.get(G);if(Ei!=null){t?vt=Ei:Ze=Ei;break}}if(r.enableTopLevelFallback&&Ze==null&&vt===null){let ri=r.fallbackPool.get(G);ri!=null&&(vt=ri)}}}let mt=null;if(Ze===null)if(S(re))mt=ei("MISSING_PEER_DEPENDENCY",`Your application tried to access ${G} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. +`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(j),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;ri<Ms;++ri){let Ei=B(c[ri]).packageDependencies.get(j);if(Ei!=null){t?vt=Ei:Ze=Ei;break}}if(r.enableTopLevelFallback&&Ze==null&&vt===null){let ri=r.fallbackPool.get(j);ri!=null&&(vt=ri)}}}let mt=null;if(Ze===null)if(S(re))mt=ei("MISSING_PEER_DEPENDENCY",`Your application tried to access ${j} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${j}${j!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G});else{let gr=ue(G,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:j});else{let gr=ue(j,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${j} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${j}${j!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${j} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${j}${j!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${j}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${j} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${j}${j!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:j}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${j}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${j} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${j}${j!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${j}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${j}${j!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:j}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${j}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. -Required package: ${G}${G!==ge?` (via "${ge}")`:""} +Required package: ${j}${j!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Lr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:G,reference:Ze},ti=B(Lr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Lr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:j,reference:Ze},ti=B(Lr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. Required package: ${Lr.name}@${Lr.reference}${Lr.name!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Lr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). +`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Lr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let j=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(j,se)):Ye=v.normalize(v.join(v.dirname(j),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),j=te(se);if(j){let{packageLocation:fe}=B(j),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). -Missing package: ${G.name}@${G.reference} +Missing package: ${j.name}@${j.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let de=fe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`${de} -Missing package: ${G.name}@${G.reference} +Missing package: ${j.name}@${j.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. Source path: ${ie} ${ye.map(fe=>`Not found: ${ho(fe)} -`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=wr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var YBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rb(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,wr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new bo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Te.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(Qn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!bt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!bt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=be.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function Qze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function bze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:bze,setupScriptEnvironment:Qze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,Dr="node_modules",ib=".bin",jle=".yarn-state.yml",Yze=1e3;var nb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,Dr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=T(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let j=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!j()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=wr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=T(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var YBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=GO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rb(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,wr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new bo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Ne.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new Gt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(Qn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!bt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!bt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=be.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function Qze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function bze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:bze,setupScriptEnvironment:Qze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,Dr="node_modules",ib=".bin",Gle=".yarn-state.yml",Yze=1e3;var nb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,Dr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will `,s+=`# cause your node_modules installation to become invalidated. `,s+=` `,s+=`__metadata: @@ -707,10 +707,10 @@ ${ye.map(fe=>`Not found: ${ho(fe)} `}if(u===a&&t.size>0){s+=` bin: `;for(let[h,p]of t){let d=v.contains(r.cwd,h);if(d===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` ${JSON.stringify(d)}: `;for(let[m,y]of p){let B=v.relative(v.join(h,Dr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)} -`}}}}let l=r.cwd,c=v.join(l,Dr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,Dr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,Dr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(Dr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==Dr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(Dr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let h=me.getFactoryWithDefault(c.children,g,i);c.children.set(g,h),c=h}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},fM=async(r,e)=>{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-Yze))if(await Ai.checksumFile(a,{baseFs:M,algorithm:"sha1"})!==t.digest){let g=v.join(i,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));await M.renamePromise(a,g);let h=await n.readFilePromise(r);await M.writeFilePromise(g,h);try{await M.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await M.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await M.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await Yle(i,a,c),t.mtimeMs=new Date().getTime();try{await M.linkPromise(a,e)}catch(u){u&&u.code&&u.code=="EXDEV"&&(s.value="hardlinks-local",await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let o=t.mode&511;o!==420&&await M.chmodPromise(e,o)}}var qle=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==Dr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===Dr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,Dr,ib),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(Dr)&&l(c,Dr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,Dr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Gle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let N=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of N){if(!O.innerLoop&&ce.name===ib)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==Dr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(N){throw O.innerLoop||(N.message=`While cloning ${ue} -> ${te} ${N.message}`),N}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!1});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!0});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),N=e.get(ue.locator),ce=N.target,he=te,Pe=N.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,N=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=N.target,De=Z;if(Pe===De)continue;let Re=N.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,Dr,ib);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,Dr,ib),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var ob=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nb,ob]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>ab,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):ab({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return ab({configuration:e,type:t});let n=i.get(t);return n===null?ab({configuration:e,type:t}):Co(n)}function ab({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lb(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await Ab(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lb(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`}}}}let l=r.cwd,c=v.join(l,Dr,Gle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,Dr,Gle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,Dr,S].join(v.sep)))}if(a.set(c,{target:Ne.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Ne.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:jle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(Dr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==Dr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(Dr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},jle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let h=me.getFactoryWithDefault(c.children,g,i);c.children.set(g,h),c=h}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},fM=async(r,e)=>{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-Yze))if(await Ai.checksumFile(a,{baseFs:M,algorithm:"sha1"})!==t.digest){let g=v.join(i,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));await M.renamePromise(a,g);let h=await n.readFilePromise(r);await M.writeFilePromise(g,h);try{await M.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await M.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await M.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await Yle(i,a,c),t.mtimeMs=new Date().getTime();try{await M.linkPromise(a,e)}catch(u){u&&u.code&&u.code=="EXDEV"&&(s.value="hardlinks-local",await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let o=t.mode&511;o!==420&&await M.chmodPromise(e,o)}}var qle=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Ne.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==Dr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===Dr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,Dr,ib),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(Dr)&&l(c,Dr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,Dr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=jle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let T=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of T){if(!O.innerLoop&&ce.name===ib)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==Dr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(T){throw O.innerLoop||(T.message=`While cloning ${ue} -> ${te} ${T.message}`),T}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!1});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!0});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),T=e.get(ue.locator),ce=T.target,he=te,Pe=T.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,T=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=T.target,De=Z;if(Pe===De)continue;let Re=T.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,Dr,ib);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,Dr,ib),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var ob=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nb,ob]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>ab,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):ab({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return ab({configuration:e,type:t});let n=i.get(t);return n===null?ab({configuration:e,type:t}):Co(n)}function ab({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lb(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await Ab(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lb(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new bt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=bt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gb.identHash)&&!o.peerDependencies.has(gb.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gb.identHash,x.makeDescriptor(gb,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ts.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>Ob,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Qn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await Ob(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Ob(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Te.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Te.root,o)),a!=null&&s.accept.push(v.resolve(Te.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Te.root,l));for(let P of c.values())s.accept.push(v.resolve(Te.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Te.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Te.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Te.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Te.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Te.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Te.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=Lb(r,e.accept);if(i!==0)return i===2;let n=Lb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Lb(r,s.accept);if(o!==0)return o===2;let a=Lb(r,s.reject);if(a!==0)return a===1}return!1}function Lb(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n][0]!=="!"?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n].slice(1)));return Pue(r,i)?2:Pue(r,t)?1:0}function Pue(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n].includes("/")?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n]));return!!(n1.default.isMatch(r,t,{dot:!0,nocase:!0})||n1.default.isMatch(r,i,{dot:!0,basename:!0,nocase:!0}))}var Zu=class extends xe{constructor(){super(...arguments);this.installIfNeeded=z.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=z.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=z.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=z.String("--filename",{hidden:!0})}async execute(){var l;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await s1(n)&&(this.installIfNeeded?await i.install({cache:await Dt.find(t),report:new $r}):await i.restoreInstallState());let s=(l=this.out)!=null?l:this.filename,o=typeof s<"u"?v.resolve(this.context.cwd,N9e(s,{workspace:n})):v.resolve(n.cwd,"package.tgz");return(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async c=>{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await Ob(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=be.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function N9e(r,{workspace:e}){let t=r.replace("%s",T9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function T9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Gue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Gue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} -`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ts],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Qn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(Kb)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=be.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ns=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ns.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ns.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ns.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ns.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new bt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=bt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gb.identHash)&&!o.peerDependencies.has(gb.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gb.identHash,x.makeDescriptor(gb,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ns.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>Ob,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Qn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await Ob(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Ob(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Ne.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Ne.root,o)),a!=null&&s.accept.push(v.resolve(Ne.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Ne.root,l));for(let P of c.values())s.accept.push(v.resolve(Ne.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Ne.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Ne.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Ne.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Ne.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Ne.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Ne.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=Lb(r,e.accept);if(i!==0)return i===2;let n=Lb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Lb(r,s.accept);if(o!==0)return o===2;let a=Lb(r,s.reject);if(a!==0)return a===1}return!1}function Lb(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n][0]!=="!"?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n].slice(1)));return Pue(r,i)?2:Pue(r,t)?1:0}function Pue(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n].includes("/")?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n]));return!!(n1.default.isMatch(r,t,{dot:!0,nocase:!0})||n1.default.isMatch(r,i,{dot:!0,basename:!0,nocase:!0}))}var Zu=class extends xe{constructor(){super(...arguments);this.installIfNeeded=z.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=z.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=z.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=z.String("--filename",{hidden:!0})}async execute(){var l;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await s1(n)&&(this.installIfNeeded?await i.install({cache:await Dt.find(t),report:new $r}):await i.restoreInstallState());let s=(l=this.out)!=null?l:this.filename,o=typeof s<"u"?v.resolve(this.context.cwd,T9e(s,{workspace:n})):v.resolve(n.cwd,"package.tgz");return(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async c=>{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await Ob(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=be.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function T9e(r,{workspace:e}){let t=r.replace("%s",N9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function N9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var Gue=J("crypto"),jue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,Gue.createHash)("sha1").update(e).digest("hex"),u=jue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} +`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ns],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Qn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(Kb)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=be.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -724,25 +724,25 @@ ${ye.map(fe=>`Not found: ${ho(fe)} If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why <package>\` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} -`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=be.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=be.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=be.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=be.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=be.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=be.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l<r.length;l++){let c=r[l];if(i==="parsing header")if(c.startsWith("@@"))i="parsing hunks",t.hunks=[],l-=1;else if(c.startsWith("diff --git ")){t&&t.diffLineFromPath&&a();let u=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!u)throw new Error(`Bad diff line: ${c}`);t.diffLineFromPath=u[1],t.diffLineToPath=u[2]}else if(c.startsWith("old mode "))t.oldMode=c.slice(9).trim();else if(c.startsWith("new mode "))t.newMode=c.slice(9).trim();else if(c.startsWith("deleted file mode "))t.deletedFileMode=c.slice(18).trim();else if(c.startsWith("new file mode "))t.newFileMode=c.slice(14).trim();else if(c.startsWith("rename from "))t.renameFrom=c.slice(12).trim();else if(c.startsWith("rename to "))t.renameTo=c.slice(10).trim();else if(c.startsWith("index ")){let u=c.match(/(\w+)\.\.(\w+)/);if(!u)continue;t.beforeHash=u[1],t.afterHash=u[2]}else c.startsWith("semver exclusivity ")?t.semverExclusivity=c.slice(19).trim():c.startsWith("--- ")?t.fromPath=c.slice(6).trim():c.startsWith("+++ ")&&(t.toPath=c.slice(6).trim());else{let u=bVe[c[0]]||null;switch(u){case"header":o(),n=QVe(c);break;case null:i="parsing header",a(),l-=1;break;case"pragma":{if(!c.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${c}`);if(!s)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");s.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!n)throw new Error("Bad parser state: Hunk lines encountered before hunk header");s&&s.type!==u&&(n.parts.push(s),s=null),s||(s={type:u,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1))}break;default:me.assertNever(u);break}}}a();for(let{hunks:l}of e)if(l)for(let c of l)xVe(c);return e}function vVe(r){let e=[];for(let t of r){let{semverExclusivity:i,diffLineFromPath:n,diffLineToPath:s,oldMode:o,newMode:a,deletedFileMode:l,newFileMode:c,renameFrom:u,renameTo:g,beforeHash:h,afterHash:p,fromPath:d,toPath:m,hunks:y}=t,B=u?"rename":l?"file deletion":c?"file creation":y&&y.length>0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:Hb(o),newMode:Hb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Hb(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jb(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!bt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>NVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>Gb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>TE,parseLocator:()=>NE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Ne.root,v.resolve(Ne.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l<r.length;l++){let c=r[l];if(i==="parsing header")if(c.startsWith("@@"))i="parsing hunks",t.hunks=[],l-=1;else if(c.startsWith("diff --git ")){t&&t.diffLineFromPath&&a();let u=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!u)throw new Error(`Bad diff line: ${c}`);t.diffLineFromPath=u[1],t.diffLineToPath=u[2]}else if(c.startsWith("old mode "))t.oldMode=c.slice(9).trim();else if(c.startsWith("new mode "))t.newMode=c.slice(9).trim();else if(c.startsWith("deleted file mode "))t.deletedFileMode=c.slice(18).trim();else if(c.startsWith("new file mode "))t.newFileMode=c.slice(14).trim();else if(c.startsWith("rename from "))t.renameFrom=c.slice(12).trim();else if(c.startsWith("rename to "))t.renameTo=c.slice(10).trim();else if(c.startsWith("index ")){let u=c.match(/(\w+)\.\.(\w+)/);if(!u)continue;t.beforeHash=u[1],t.afterHash=u[2]}else c.startsWith("semver exclusivity ")?t.semverExclusivity=c.slice(19).trim():c.startsWith("--- ")?t.fromPath=c.slice(6).trim():c.startsWith("+++ ")&&(t.toPath=c.slice(6).trim());else{let u=bVe[c[0]]||null;switch(u){case"header":o(),n=QVe(c);break;case null:i="parsing header",a(),l-=1;break;case"pragma":{if(!c.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${c}`);if(!s)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");s.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!n)throw new Error("Bad parser state: Hunk lines encountered before hunk header");s&&s.type!==u&&(n.parts.push(s),s=null),s||(s={type:u,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1))}break;default:me.assertNever(u);break}}}a();for(let{hunks:l}of e)if(l)for(let c of l)xVe(c);return e}function vVe(r){let e=[];for(let t of r){let{semverExclusivity:i,diffLineFromPath:n,diffLineToPath:s,oldMode:o,newMode:a,deletedFileMode:l,newFileMode:c,renameFrom:u,renameTo:g,beforeHash:h,afterHash:p,fromPath:d,toPath:m,hunks:y}=t,B=u?"rename":l?"file deletion":c?"file creation":y&&y.length>0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:Hb(o),newMode:Hb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Hb(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function Gb(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!bt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` `)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` `):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function TE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function NE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` `));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function Q1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var Gb=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await an(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Yb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=be.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): +${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var jb=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=NE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await an(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new Gt(v.resolve(Ne.root,g),{baseFs:y});try{await Gb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Yb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=TE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=TE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=TE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=NE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=be.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): ${a.map(l=>` -- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var NVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[Gb],resolvers:[Yb]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qb]},MVe=OVe;var wQ=()=>({modules:new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",pn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",NO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Nr||"<unknown>",pluginConfiguration:wQ()});})(); +- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var TVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[jb],resolvers:[Yb]},NVe=TVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qb]},MVe=OVe;var wQ=()=>({modules:new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",pn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",TO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Tr||"<unknown>",pluginConfiguration:wQ()});})(); /*! * buildToken * Builds OAuth token prefix (helper function) diff --git a/.yarnrc.yml b/.yarnrc.yml index 5cda7f39d..6c9a9f8f5 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -11,7 +11,7 @@ plugins: - path: .yarn/plugins/@yarnpkg/plugin-exec.cjs spec: "@yarnpkg/plugin-exec" -yarnPath: .yarn/releases/yarn-3.8.3.cjs +yarnPath: .yarn/releases/yarn-3.8.4.cjs packageExtensions: "uniforms-bridge-json-schema@*": diff --git a/package.json b/package.json index 03761fc30..09304cc8d 100644 --- a/package.json +++ b/package.json @@ -22,5 +22,5 @@ "husky": "^9.0.0", "lint-staged": "^15.0.0" }, - "packageManager": "yarn@3.8.3" + "packageManager": "yarn@3.8.4" } From ce0dc839d9d3728f32bf692eb908df659ac6feb7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:49:05 +0000 Subject: [PATCH 318/471] chore(deps): update @lerna-lite to v3.8.0 --- yarn.lock | 482 +++++++++++++++++++----------------------------------- 1 file changed, 165 insertions(+), 317 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5f376b112..34a5a0f53 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2691,37 +2691,14 @@ __metadata: languageName: node linkType: hard -"@inquirer/checkbox@npm:^2.3.10": - version: 2.3.10 - resolution: "@inquirer/checkbox@npm:2.3.10" +"@inquirer/core@npm:^9.0.10": + version: 9.0.10 + resolution: "@inquirer/core@npm:9.0.10" dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/figures": ^1.0.3 - "@inquirer/type": ^1.4.0 - ansi-escapes: ^4.3.2 - yoctocolors-cjs: ^2.1.2 - checksum: e38fcf8c297628bd04a9c47f129d035fbbf39fbcf9dd4716cf5ef3c5f8ce4a872d3b0f39b7f90652a795b5383a94382c79c175c17dbcc73ac93634c32852b893 - languageName: node - linkType: hard - -"@inquirer/confirm@npm:^3.1.14": - version: 3.1.14 - resolution: "@inquirer/confirm@npm:3.1.14" - dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/type": ^1.4.0 - checksum: 2f0bff69ac9ea6a60ed9edeb1369849a2882d19bc2000905717bdb22fe09feab7201924ee761382ab550761aa8cd7a7e9e022e96d89a736522715481f1199fb0 - languageName: node - linkType: hard - -"@inquirer/core@npm:^9.0.2": - version: 9.0.2 - resolution: "@inquirer/core@npm:9.0.2" - dependencies: - "@inquirer/figures": ^1.0.3 - "@inquirer/type": ^1.4.0 + "@inquirer/figures": ^1.0.5 + "@inquirer/type": ^1.5.2 "@types/mute-stream": ^0.0.4 - "@types/node": ^20.14.9 + "@types/node": ^22.1.0 "@types/wrap-ansi": ^3.0.0 ansi-escapes: ^4.3.2 cli-spinners: ^2.9.2 @@ -2731,117 +2708,57 @@ __metadata: strip-ansi: ^6.0.1 wrap-ansi: ^6.2.0 yoctocolors-cjs: ^2.1.2 - checksum: 1d972f8e750ee9ddb56e678a1c480513c53fca35138a2b3b62b4f3bc5a228beab3f349a1efbb2c5054c7bd544a09ed6c9ebd830f6d9aaa8e9c4d45d0bd781199 - languageName: node - linkType: hard - -"@inquirer/editor@npm:^2.1.14": - version: 2.1.14 - resolution: "@inquirer/editor@npm:2.1.14" - dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/type": ^1.4.0 - external-editor: ^3.1.0 - checksum: a89b33804561d7cb2c89288e4829f7474afd272945bbec6ef73608414f5304a761ede5aa0a6da22f40ec3c6a66734bafd895423c9baea251ccb4e8103f9727df + checksum: 2d86e78c1a4d0cfc8a68a3f48bcce090092af5b486ac6da9b7e7b0f4016caa1447d07c4241a6ee63566a3be2ae2d5784105a9b1a47aefd1315f9ff0764752ea8 languageName: node linkType: hard -"@inquirer/expand@npm:^2.1.14": - version: 2.1.14 - resolution: "@inquirer/expand@npm:2.1.14" +"@inquirer/expand@npm:^2.1.22": + version: 2.1.22 + resolution: "@inquirer/expand@npm:2.1.22" dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/type": ^1.4.0 + "@inquirer/core": ^9.0.10 + "@inquirer/type": ^1.5.2 yoctocolors-cjs: ^2.1.2 - checksum: 6d197956f0d391ce55acf075317a69603c8d37f361cb8d7a88d7ab8b7ca2a74dbaffc28e95c149f2b18add4cb2de6d1b511bdbea89f825e48c22f883376b0055 - languageName: node - linkType: hard - -"@inquirer/figures@npm:^1.0.3": - version: 1.0.3 - resolution: "@inquirer/figures@npm:1.0.3" - checksum: ca83d9e2a02ed5309b3df5642d2194fde24e6f89779339c63304f2570f36f3bc431236a93db7fa412765a06f01c765974b06b1ed8b9aed881be46f2cbb67f9c7 - languageName: node - linkType: hard - -"@inquirer/input@npm:^2.2.1": - version: 2.2.1 - resolution: "@inquirer/input@npm:2.2.1" - dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/type": ^1.4.0 - checksum: 8e8dd15f5aeffafda2f2b95a6d8fe273d420f112920494fcbf804fc3790ce91eec30bd0d41723cc61f1a289bf462393c196ecd2160bfb1d8174537f5052f283e - languageName: node - linkType: hard - -"@inquirer/number@npm:^1.0.2": - version: 1.0.2 - resolution: "@inquirer/number@npm:1.0.2" - dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/type": ^1.4.0 - checksum: c3bab104be1552facd95d25a19d01786edfe179564f3605501eca7ae4c5589736ff7c0e09981855ab1153632831282f6a0fadaacde2e9a3b2d9da6244f028fdf - languageName: node - linkType: hard - -"@inquirer/password@npm:^2.1.14": - version: 2.1.14 - resolution: "@inquirer/password@npm:2.1.14" - dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/type": ^1.4.0 - ansi-escapes: ^4.3.2 - checksum: 965a8c68a2aa80d1f3a3c9192ff18d04fe61444630abab77abca0b0570fdf296333e2195e09ca8f6f8836e963b2f3db319c768f57a6a9daa8ce28d3f564ce467 + checksum: f997ba916d3ddcc6e2563158805e2ae7a7a6f98e24cf0a08e23d4101b7d78f78e7dce28e648b85ca7f41759eeefdf1c6f6abf2bce0f041fbda54aacf68522454 languageName: node linkType: hard -"@inquirer/prompts@npm:^5.1.2": - version: 5.1.2 - resolution: "@inquirer/prompts@npm:5.1.2" - dependencies: - "@inquirer/checkbox": ^2.3.10 - "@inquirer/confirm": ^3.1.14 - "@inquirer/editor": ^2.1.14 - "@inquirer/expand": ^2.1.14 - "@inquirer/input": ^2.2.1 - "@inquirer/number": ^1.0.2 - "@inquirer/password": ^2.1.14 - "@inquirer/rawlist": ^2.1.14 - "@inquirer/select": ^2.3.10 - checksum: 6e2ad217b83608310392929c05a59c3f15b469b6baa63031096d10d35bd2038d8cee2ef25c26a35e27c4a0c7daa73ea21db1006ea56cd1ff5cdd5f712ecbe5b8 +"@inquirer/figures@npm:^1.0.5": + version: 1.0.5 + resolution: "@inquirer/figures@npm:1.0.5" + checksum: 01dc7b95fe7b030b0577d59f45c4fa5c002dccb43ac75ff106d7142825e09dee63a6f9c42b044da2bc964bf38c40229a112a26505a68f3912b15dc8304106bbc languageName: node linkType: hard -"@inquirer/rawlist@npm:^2.1.14": - version: 2.1.14 - resolution: "@inquirer/rawlist@npm:2.1.14" +"@inquirer/input@npm:^2.2.9": + version: 2.2.9 + resolution: "@inquirer/input@npm:2.2.9" dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/type": ^1.4.0 - yoctocolors-cjs: ^2.1.2 - checksum: 1600a404934f2adbf265e7c4d50b1923d96696001c31b4cc1bfd967d9454c9ec617b7566cc57d40ffdc72241deb02aa4c56bdb9d1f5bcb560036270459ba676f + "@inquirer/core": ^9.0.10 + "@inquirer/type": ^1.5.2 + checksum: 1b44b36465205196821e902e5ba3a9613fb1b465e3728ee583b99936572733de206eb3b0f71082d72ae06ba71f7ea7c8cbabc814c4b3aacfbdb1a699a9ddcb92 languageName: node linkType: hard -"@inquirer/select@npm:^2.3.10": - version: 2.3.10 - resolution: "@inquirer/select@npm:2.3.10" +"@inquirer/select@npm:^2.4.7": + version: 2.4.7 + resolution: "@inquirer/select@npm:2.4.7" dependencies: - "@inquirer/core": ^9.0.2 - "@inquirer/figures": ^1.0.3 - "@inquirer/type": ^1.4.0 + "@inquirer/core": ^9.0.10 + "@inquirer/figures": ^1.0.5 + "@inquirer/type": ^1.5.2 ansi-escapes: ^4.3.2 yoctocolors-cjs: ^2.1.2 - checksum: fb8ad2f6d4f479ab406dc585aecab82139f1351f3c8b5b890d4204d2ef8dc0ce8cb33157787c84b47c2de76c3bc8a13b462469dcae0939e4a2b7ffb43c2ddb19 + checksum: 77d0d708983d4b432cd6bb9e4bc3c53308f3a3c97fa8c688fb2a05a14d3a7211d7cc3f3b72f17f0e1a2879658724184ac25b2da0e2cf5629151b86441567ec64 languageName: node linkType: hard -"@inquirer/type@npm:^1.3.3, @inquirer/type@npm:^1.4.0": - version: 1.4.0 - resolution: "@inquirer/type@npm:1.4.0" +"@inquirer/type@npm:^1.5.2": + version: 1.5.2 + resolution: "@inquirer/type@npm:1.5.2" dependencies: mute-stream: ^1.0.0 - checksum: 3b1be73ca418ad721d7527aea0bd83f21825484d6829fd4dbc830372b4aad68cf030486f8100d0f3883db8924fadcfaac1aa041ef6c51124f808f25825b22d85 + checksum: 6f5ee8143c982aaab0d14871f346b5770c9630e0f14303119c03fb9cb7904f6e0af0b76dcef9528da16563877f65e80a6056aa6d90e77511ab42177cdf06c4d7 languageName: node linkType: hard @@ -3196,16 +3113,16 @@ __metadata: languageName: node linkType: hard -"@lerna-lite/cli@npm:3.7.1, @lerna-lite/cli@npm:^3.0.0": - version: 3.7.1 - resolution: "@lerna-lite/cli@npm:3.7.1" +"@lerna-lite/cli@npm:3.8.0, @lerna-lite/cli@npm:^3.0.0": + version: 3.8.0 + resolution: "@lerna-lite/cli@npm:3.8.0" dependencies: - "@lerna-lite/core": 3.7.1 - "@lerna-lite/init": 3.7.1 - "@lerna-lite/npmlog": 3.7.0 + "@lerna-lite/core": 3.8.0 + "@lerna-lite/init": 3.8.0 + "@lerna-lite/npmlog": 3.8.0 dedent: ^1.5.3 dotenv: ^16.4.5 - import-local: ^3.1.0 + import-local: ^3.2.0 load-json-file: ^7.0.1 yargs: ^17.7.2 peerDependenciesMeta: @@ -3223,15 +3140,18 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 544f838b53dc19056a6b129b3132a21f5ecc3ce8e868fb5c5785f2844cb8868e53fbc49f9a1f820f05f6e86d93ef96e25f4314c84c5e18aa2c0801d844610b94 + checksum: 7f7dd5c5282849194439c934bdf526a47b58b2b82c34edd1c4f6b1da5b1cdad66c4d46892d241c6a35b9cf176a51e6ad888455b05e564e66cef22853214a113a languageName: node linkType: hard -"@lerna-lite/core@npm:3.7.1": - version: 3.7.1 - resolution: "@lerna-lite/core@npm:3.7.1" +"@lerna-lite/core@npm:3.8.0": + version: 3.8.0 + resolution: "@lerna-lite/core@npm:3.8.0" dependencies: - "@lerna-lite/npmlog": ^3.7.0 + "@inquirer/expand": ^2.1.22 + "@inquirer/input": ^2.2.9 + "@inquirer/select": ^2.4.7 + "@lerna-lite/npmlog": ^3.8.0 "@npmcli/run-script": ^8.1.0 chalk: ^5.3.0 clone-deep: ^4.0.1 @@ -3242,40 +3162,39 @@ __metadata: fs-extra: ^11.2.0 glob-parent: ^6.0.2 globby: ^14.0.2 - inquirer: ^10.0.1 is-ci: ^3.0.1 json5: ^2.2.3 load-json-file: ^7.0.1 minimatch: ^9.0.5 - npm-package-arg: ^11.0.2 + npm-package-arg: ^11.0.3 p-map: ^7.0.2 p-queue: ^8.0.1 resolve-from: ^5.0.0 - semver: ^7.6.2 + semver: ^7.6.3 slash: ^5.1.0 strong-log-transformer: ^2.1.0 write-file-atomic: ^5.0.1 - write-json-file: ^5.0.0 - write-package: ^7.0.1 - checksum: 12a7c08eb191d935990efb87e64d091a3e2c9d45ab3fabee9c2f346db62f9fed6ec1de088a605c946fc9a69d140db7feeb96e6e0d5f3d6ceb79d2bb2f89bf678 + write-json-file: ^6.0.0 + write-package: ^7.1.0 + checksum: 758d01ff8b9a71face14dfce74aa66537b980e9df5cf32f9da46aa361010576c1de537cb47d0e1008a46ef94249ce11133388ca91d15637952e78b0fba9281a2 languageName: node linkType: hard -"@lerna-lite/init@npm:3.7.1": - version: 3.7.1 - resolution: "@lerna-lite/init@npm:3.7.1" +"@lerna-lite/init@npm:3.8.0": + version: 3.8.0 + resolution: "@lerna-lite/init@npm:3.8.0" dependencies: - "@lerna-lite/core": 3.7.1 + "@lerna-lite/core": 3.8.0 fs-extra: ^11.2.0 p-map: ^7.0.2 - write-json-file: ^5.0.0 - checksum: e671f4abe004c3996d3379b05e92b129b46a20f0ed3c4c61de65d7f5c14bc30d53842e463031f2fd9baa86e267b599bc8e48990d01e628582beaef52dc2258d0 + write-json-file: ^6.0.0 + checksum: cff73b71583ec23aec0b94bf775fbe25b84f9f80ecba41dce6ff595df0c6e1271f852dde7c97a3b32a8b4d33cfc5ed0a48f0c9938c3c810cf7988ea61ba6a9df languageName: node linkType: hard -"@lerna-lite/npmlog@npm:3.7.0, @lerna-lite/npmlog@npm:^3.7.0": - version: 3.7.0 - resolution: "@lerna-lite/npmlog@npm:3.7.0" +"@lerna-lite/npmlog@npm:3.8.0, @lerna-lite/npmlog@npm:^3.8.0": + version: 3.8.0 + resolution: "@lerna-lite/npmlog@npm:3.8.0" dependencies: aproba: ^2.0.0 color-support: ^1.1.3 @@ -3286,21 +3205,21 @@ __metadata: string-width: ^7.2.0 strip-ansi: ^7.1.0 wide-align: ^1.1.5 - checksum: aa652f71189455ade5a9d744a39f53982dd14f0233974754deb4e6b714d91d02d9365152239495dd8af3790843e64711d2b117d691270dfc6119cf1803f6ccd8 + checksum: 6376ad12a9a2e524c0d1ba96656192dc03341cba0359df17f310f0dacc713e34b759b5cb80e2473ca8db2cddf18c9af2713be9d543385838900eb259a302ef23 languageName: node linkType: hard "@lerna-lite/publish@npm:^3.0.0": - version: 3.7.1 - resolution: "@lerna-lite/publish@npm:3.7.1" + version: 3.8.0 + resolution: "@lerna-lite/publish@npm:3.8.0" dependencies: - "@lerna-lite/cli": 3.7.1 - "@lerna-lite/core": 3.7.1 - "@lerna-lite/npmlog": ^3.7.0 - "@lerna-lite/version": 3.7.1 + "@lerna-lite/cli": 3.8.0 + "@lerna-lite/core": 3.8.0 + "@lerna-lite/npmlog": ^3.8.0 + "@lerna-lite/version": 3.8.0 "@npmcli/arborist": ^7.5.4 "@npmcli/package-json": ^5.2.0 - byte-size: ^8.1.1 + byte-size: ^9.0.0 chalk: ^5.3.0 columnify: ^1.6.0 fs-extra: ^11.2.0 @@ -3309,29 +3228,29 @@ __metadata: libnpmaccess: ^8.0.6 libnpmpublish: ^9.0.9 normalize-path: ^3.0.0 - npm-package-arg: ^11.0.2 + npm-package-arg: ^11.0.3 npm-packlist: ^8.0.2 npm-registry-fetch: ^17.1.0 p-map: ^7.0.2 p-pipe: ^4.0.0 pacote: ^18.0.6 - semver: ^7.6.2 + semver: ^7.6.3 ssri: ^10.0.6 tar: ^6.2.1 temp-dir: ^3.0.0 - checksum: 419b2113da80b149bc12ac15615e8eb62b5fca6a372cd6283ee05a1e0f47be85fec47e2c4f1e7764399371f5d0c9377857fdfa4d6b0fbc5f9743e51bbf27ef9a + checksum: feb09703853f2f3821046687008201b2eff87bf753079eeb5472c0473e1cf26ccfb9e9dd5393bb7d2cc6cf07275f844cb99d067915a80b89a2a4e0b1f121b830 languageName: node linkType: hard -"@lerna-lite/version@npm:3.7.1, @lerna-lite/version@npm:^3.0.0": - version: 3.7.1 - resolution: "@lerna-lite/version@npm:3.7.1" +"@lerna-lite/version@npm:3.8.0, @lerna-lite/version@npm:^3.0.0": + version: 3.8.0 + resolution: "@lerna-lite/version@npm:3.8.0" dependencies: - "@lerna-lite/cli": 3.7.1 - "@lerna-lite/core": 3.7.1 - "@lerna-lite/npmlog": ^3.7.0 + "@lerna-lite/cli": 3.8.0 + "@lerna-lite/core": 3.8.0 + "@lerna-lite/npmlog": ^3.8.0 "@octokit/plugin-enterprise-rest": ^6.0.1 - "@octokit/rest": ^21.0.0 + "@octokit/rest": ^21.0.1 chalk: ^5.3.0 conventional-changelog-angular: ^7.0.0 conventional-changelog-core: ^7.0.0 @@ -3341,7 +3260,7 @@ __metadata: dedent: ^1.5.3 fs-extra: ^11.2.0 get-stream: ^9.0.1 - git-url-parse: ^14.0.0 + git-url-parse: ^14.1.0 graceful-fs: ^4.2.11 is-stream: ^4.0.1 load-json-file: ^7.0.1 @@ -3349,18 +3268,18 @@ __metadata: minimatch: ^9.0.5 new-github-release-url: ^2.0.0 node-fetch: ^3.3.2 - npm-package-arg: ^11.0.2 + npm-package-arg: ^11.0.3 p-limit: ^6.1.0 p-map: ^7.0.2 p-pipe: ^4.0.0 p-reduce: ^3.0.0 pify: ^6.1.0 - semver: ^7.6.2 + semver: ^7.6.3 slash: ^5.1.0 temp-dir: ^3.0.0 uuid: ^10.0.0 - write-json-file: ^5.0.0 - checksum: 49f22b852accf1aa061665d0bb5c80bfe953cdade3c02c0fa1d63b485e6fba821c7fb2b17ea8e938e2e194575c256049bfc5dc35ca990da3119a78a51b043994 + write-json-file: ^6.0.0 + checksum: 8af4fc477cf277433e6c520406ad7bccb72a99f7b09cae17a7e188bda86a27a91b60ea2c063f64bf44ed56aedaf79b78929206f4bbe123f85f36b36bb77bb030 languageName: node linkType: hard @@ -3729,12 +3648,12 @@ __metadata: languageName: node linkType: hard -"@octokit/plugin-request-log@npm:^5.1.0": - version: 5.3.0 - resolution: "@octokit/plugin-request-log@npm:5.3.0" +"@octokit/plugin-request-log@npm:^5.3.1": + version: 5.3.1 + resolution: "@octokit/plugin-request-log@npm:5.3.1" peerDependencies: "@octokit/core": ">=6" - checksum: 8c918b14f0687e8a3d9c7c81ef1092a49de07681940cc1aee0aeb7e3dd8ac64f69af5d65932eec32f6db4af3dca80541ad3bb13ac0fa44af3e2340ed91909272 + checksum: a27e163282c8d0ba8feee4d3cbbd1b62e1aa89a892877f7a9876fc17ddde3e1e1af922e6664221a0cabae99b8a7a2a5215b9ec2ee5222edb50e06298e99022b0 languageName: node linkType: hard @@ -3770,15 +3689,15 @@ __metadata: languageName: node linkType: hard -"@octokit/rest@npm:^21.0.0": - version: 21.0.0 - resolution: "@octokit/rest@npm:21.0.0" +"@octokit/rest@npm:^21.0.1": + version: 21.0.1 + resolution: "@octokit/rest@npm:21.0.1" dependencies: "@octokit/core": ^6.1.2 "@octokit/plugin-paginate-rest": ^11.0.0 - "@octokit/plugin-request-log": ^5.1.0 + "@octokit/plugin-request-log": ^5.3.1 "@octokit/plugin-rest-endpoint-methods": ^13.0.0 - checksum: 1d2c28dfce0c11de252d105e2c256690e66bb6c1ccf73fbc142dd4e5570aa7d9d77a8e443956bcc461709c83dc018c5a3999fd784ac2fb3f4514a3db29a3a1bf + checksum: 99a099a7fbb2c460955e941e0ab8d8aa7480988b9bcae80af752d8d6112aaf301f43916eac7be04e813ca97a3dd5ad5f27cc88812aa600f5bbf387dfbba2381c languageName: node linkType: hard @@ -4738,7 +4657,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": +"@types/node@npm:*, @types/node@npm:^22.1.0": version: 22.1.0 resolution: "@types/node@npm:22.1.0" dependencies: @@ -4747,7 +4666,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.11.6, @types/node@npm:^20.14.9": +"@types/node@npm:^20.11.6": version: 20.14.14 resolution: "@types/node@npm:20.14.14" dependencies: @@ -5741,10 +5660,10 @@ __metadata: languageName: node linkType: hard -"byte-size@npm:^8.1.1": - version: 8.1.1 - resolution: "byte-size@npm:8.1.1" - checksum: 65f00881ffd3c2b282fe848ed954fa4ff8363eaa3f652102510668b90b3fad04d81889486ee1b641ee0d8c8b75cf32201f3b309e6b5fbb6cc869b48a91b62d3e +"byte-size@npm:^9.0.0": + version: 9.0.0 + resolution: "byte-size@npm:9.0.0" + checksum: 3c0c988dcb8eaee6364f42837b395fbff949b611d6b23a078a60b5b03d9e1a04841a1a2f471177a91971712f407e753d6ca9d46bb60f80c482b84e37b5a05193 languageName: node linkType: hard @@ -5881,13 +5800,6 @@ __metadata: languageName: node linkType: hard -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d - languageName: node - linkType: hard - "chevrotain@npm:10.5.0": version: 10.5.0 resolution: "chevrotain@npm:10.5.0" @@ -6951,10 +6863,10 @@ __metadata: languageName: node linkType: hard -"deepmerge-ts@npm:^5.1.0": - version: 5.1.0 - resolution: "deepmerge-ts@npm:5.1.0" - checksum: 6b57db93c2985e4a35f24b2451db31715050d143988b7d6346f4049c9aec21a6c289514b88d3ee3d6e0697e72ef5d96ff0bbb7cb75422d56fee55ee85c7168e7 +"deepmerge-ts@npm:^7.1.0": + version: 7.1.0 + resolution: "deepmerge-ts@npm:7.1.0" + checksum: 8c36d7e88b12248e138ba0f959c03e5b6d008842acbc7bb3c43a0513b4b942f936352b8910ac75bcbe1fc61d3975b4e0ab5b13b2492f0ede06f95553c637479e languageName: node linkType: hard @@ -7033,7 +6945,7 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^7.0.0": +"detect-indent@npm:^7.0.1": version: 7.0.1 resolution: "detect-indent@npm:7.0.1" checksum: cbf3f0b1c3c881934ca94428e1179b26ab2a587e0d719031d37a67fb506d49d067de54ff057cb1e772e75975fed5155c01cd4518306fee60988b1486e3fc7768 @@ -7913,17 +7825,6 @@ __metadata: languageName: node linkType: hard -"external-editor@npm:^3.1.0": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: ^0.7.0 - iconv-lite: ^0.4.24 - tmp: ^0.0.33 - checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 - languageName: node - linkType: hard - "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -8410,12 +8311,12 @@ __metadata: languageName: node linkType: hard -"git-url-parse@npm:^14.0.0": - version: 14.0.0 - resolution: "git-url-parse@npm:14.0.0" +"git-url-parse@npm:^14.1.0": + version: 14.1.0 + resolution: "git-url-parse@npm:14.1.0" dependencies: git-up: ^7.0.0 - checksum: b011c5de652e60e5f19de9815d1b78b2f725deb07e73d1b9ff8ca6657406d0a6c691fbe4460017822676a80635f93099345cadbd06361b76f53c4556265d3e48 + checksum: 16bbf5ca423352ab1b0d704dc40b46123e0bfcc0ae2959ef6a93d43c509146151cd6a1d99690f3555324d2261b36443b7978abc379dc1a7bf8f564e52d676dee languageName: node linkType: hard @@ -8857,15 +8758,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - "ieee754@npm:^1.1.13": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -8906,7 +8798,7 @@ __metadata: languageName: node linkType: hard -"import-local@npm:^3.0.2, import-local@npm:^3.1.0": +"import-local@npm:^3.0.2": version: 3.1.0 resolution: "import-local@npm:3.1.0" dependencies: @@ -8918,6 +8810,18 @@ __metadata: languageName: node linkType: hard +"import-local@npm:^3.2.0": + version: 3.2.0 + resolution: "import-local@npm:3.2.0" + dependencies: + pkg-dir: ^4.2.0 + resolve-cwd: ^3.0.0 + bin: + import-local-fixture: fixtures/cli.js + checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 + languageName: node + linkType: hard + "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -8963,21 +8867,6 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^10.0.1": - version: 10.0.1 - resolution: "inquirer@npm:10.0.1" - dependencies: - "@inquirer/prompts": ^5.1.2 - "@inquirer/type": ^1.3.3 - "@types/mute-stream": ^0.0.4 - ansi-escapes: ^4.3.2 - mute-stream: ^1.0.0 - run-async: ^3.0.0 - rxjs: ^7.8.1 - checksum: f9b5f73bfc0324dc7a6bc0bbae939432e733dec075dbdd3c388f74a3222883333580102e0d66ce06c2a72dbecc509b452d65569b3cffb70a8ba377cc2719af6a - languageName: node - linkType: hard - "internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" @@ -9191,7 +9080,7 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^4.0.0": +"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce @@ -9320,13 +9209,6 @@ __metadata: languageName: node linkType: hard -"is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 - languageName: node - linkType: hard - "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" @@ -11123,6 +11005,18 @@ __metadata: languageName: node linkType: hard +"npm-package-arg@npm:^11.0.3": + version: 11.0.3 + resolution: "npm-package-arg@npm:11.0.3" + dependencies: + hosted-git-info: ^7.0.0 + proc-log: ^4.0.0 + semver: ^7.3.5 + validate-npm-package-name: ^5.0.0 + checksum: cc6f22c39201aa14dcceeddb81bfbf7fa0484f94bcd2b3ad038e18afec5167c843cdde90c897f6034dc368faa0100c1eeee6e3f436a89e0af32ba932af4a8c28 + languageName: node + linkType: hard + "npm-packlist@npm:^8.0.0, npm-packlist@npm:^8.0.2": version: 8.0.2 resolution: "npm-packlist@npm:8.0.2" @@ -11348,13 +11242,6 @@ __metadata: languageName: node linkType: hard -"os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d - languageName: node - linkType: hard - "p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -12367,7 +12254,7 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^9.0.0": +"read-pkg@npm:^9.0.1": version: 9.0.1 resolution: "read-pkg@npm:9.0.1" dependencies: @@ -12731,13 +12618,6 @@ __metadata: languageName: node linkType: hard -"run-async@npm:^3.0.0": - version: 3.0.0 - resolution: "run-async@npm:3.0.0" - checksum: 280c03d5a88603f48103fc6fd69f07fb0c392a1e0d319c34ec96a2516030e07ba06f79231a563c78698b882649c2fc1fda601bc84705f57d50efcd1fa506cfc0 - languageName: node - linkType: hard - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -12754,15 +12634,6 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.8.1": - version: 7.8.1 - resolution: "rxjs@npm:7.8.1" - dependencies: - tslib: ^2.1.0 - checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 - languageName: node - linkType: hard - "safe-array-concat@npm:^1.1.0": version: 1.1.0 resolution: "safe-array-concat@npm:1.1.0" @@ -12793,7 +12664,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 @@ -12862,12 +12733,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.6.2": - version: 7.6.2 - resolution: "semver@npm:7.6.2" +"semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 40f6a95101e8d854357a644da1b8dd9d93ce786d5c6a77227bc69dbb17bea83d0d1d1d7c4cd5920a6df909f48e8bd8a5909869535007f90278289f2451d0292d + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 languageName: node linkType: hard @@ -13698,15 +13569,6 @@ __metadata: languageName: node linkType: hard -"tmp@npm:^0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" - dependencies: - os-tmpdir: ~1.0.2 - checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 - languageName: node - linkType: hard - "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -13849,7 +13711,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2": +"tslib@npm:^2.0.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad @@ -13929,6 +13791,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^4.23.0": + version: 4.24.0 + resolution: "type-fest@npm:4.24.0" + checksum: f02e28bb12ce290f9880937b3c65d3cc4f0fdd89776b4b78d392aece0eb031c7ea9c1d6c536011c63bb8d0a6c72359336287f23f940204508a42a442c98c4d25 + languageName: node + linkType: hard + "type-fest@npm:^4.7.1": version: 4.14.0 resolution: "type-fest@npm:4.14.0" @@ -13983,15 +13852,6 @@ __metadata: languageName: node linkType: hard -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - "typescript@npm:^5.0.4, typescript@npm:^5.3.3, typescript@npm:^5.4.4": version: 5.5.4 resolution: "typescript@npm:5.5.4" @@ -14523,18 +14383,6 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^3.0.3": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - "write-file-atomic@npm:^4.0.2": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" @@ -14555,28 +14403,28 @@ __metadata: languageName: node linkType: hard -"write-json-file@npm:^5.0.0": - version: 5.0.0 - resolution: "write-json-file@npm:5.0.0" +"write-json-file@npm:^6.0.0": + version: 6.0.0 + resolution: "write-json-file@npm:6.0.0" dependencies: - detect-indent: ^7.0.0 - is-plain-obj: ^4.0.0 + detect-indent: ^7.0.1 + is-plain-obj: ^4.1.0 sort-keys: ^5.0.0 - write-file-atomic: ^3.0.3 - checksum: 6df0e8857c6ebe091cf8d23fa3405f004e7febf10307ad3d4da7b1ddfe1fa80e7cdd9832d3a554e253b6d3a6255d67b66f419cea0f8724abb25949be392eb23b + write-file-atomic: ^5.0.1 + checksum: a53a5c9a20bf91fdf953074ecce633f8d0b2aaa5df1570ee1d31ddb88f48a0b1893563dc3ca9c8446298e640bf5591ed8530bab85a969e416e56cba03997ec06 languageName: node linkType: hard -"write-package@npm:^7.0.1": - version: 7.0.1 - resolution: "write-package@npm:7.0.1" +"write-package@npm:^7.1.0": + version: 7.1.0 + resolution: "write-package@npm:7.1.0" dependencies: - deepmerge-ts: ^5.1.0 - read-pkg: ^9.0.0 + deepmerge-ts: ^7.1.0 + read-pkg: ^9.0.1 sort-keys: ^5.0.0 - type-fest: ^4.6.0 - write-json-file: ^5.0.0 - checksum: fd38402f1088f0f8c9b59795988abaf8229962e5cfa7da0664ec06acadca0ec330028ae33c40a925256f812c9e1b89c7522c6f49f5701af56b36afb763eda6fd + type-fest: ^4.23.0 + write-json-file: ^6.0.0 + checksum: c307c617b9966c872f46a1f0b261243f6d752e43082ec8912cdf151f7ecb6f4a2d2af8bb51d726af5cac9ac98e7fa95ae3ba9809ed9ac8ad4fb5c50340429bec languageName: node linkType: hard From aa2bf3e5aae04a9346ef4f846e99d1477d2eae2a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 02:15:57 +0000 Subject: [PATCH 319/471] chore(deps): update dependency @storybook/addon-actions to v8.2.8 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 34a5a0f53..7ce9bf21e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4077,8 +4077,8 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.2.7 - resolution: "@storybook/addon-actions@npm:8.2.7" + version: 8.2.8 + resolution: "@storybook/addon-actions@npm:8.2.8" dependencies: "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 @@ -4086,8 +4086,8 @@ __metadata: polished: ^4.2.2 uuid: ^9.0.0 peerDependencies: - storybook: ^8.2.7 - checksum: 36653b650f2d051caf54cb29675e01d591698ae2e189f6e8c86f377d50d2cc543ae0dd56115de8b02f0078ba4851a13690b6dbcadf6301ced516d86a767195ce + storybook: ^8.2.8 + checksum: 0d348d651be4c35d4581309c64f7ef15d7db137f7ce678ba6149cef6d26bb38c2781acd6c61a89aea2073a73470724db382bb7f281d6e32cac85634c0b9542f7 languageName: node linkType: hard From 8f0d475bc967ba1eab1b638486788a7c19e10200 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 02:16:20 +0000 Subject: [PATCH 320/471] chore(deps): update dependency vite to v5.4.0 --- yarn.lock | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7ce9bf21e..0cde900fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11759,17 +11759,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.39": - version: 8.4.39 - resolution: "postcss@npm:8.4.39" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.1 - source-map-js: ^1.2.0 - checksum: 14b130c90f165961772bdaf99c67f907f3d16494adf0868e57ef68baa67e0d1f6762db9d41ab0f4d09bab6fb7888588dba3596afd1a235fd5c2d43fba7006ac6 - languageName: node - linkType: hard - "postcss@npm:^8.4.40": version: 8.4.40 resolution: "postcss@npm:8.4.40" @@ -14125,18 +14114,19 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.3.5 - resolution: "vite@npm:5.3.5" + version: 5.4.0 + resolution: "vite@npm:5.4.0" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 - postcss: ^8.4.39 + postcss: ^8.4.40 rollup: ^4.13.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 less: "*" lightningcss: ^1.21.0 sass: "*" + sass-embedded: "*" stylus: "*" sugarss: "*" terser: ^5.4.0 @@ -14152,6 +14142,8 @@ __metadata: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -14160,7 +14152,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 5412700159e8906fc5ec5ac2cbcbee8a11180803b4a7c85494ae024a4f38d77eb5ab19b556a58745d6981361f8d2e181486f115f8abd4dc6ec3761fcd895e1b2 + checksum: e2a7d37b9cc92b14d0070f5c229c46365c82af45860db2424d0ec547c3f00d66f4d1d969fea60f22b143994bf60d04d4a364c87b3ff79bd7c94568e788b1d932 languageName: node linkType: hard From b9f46e351379eacff8eba8d68d5c56370962dba6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 14:57:33 +0000 Subject: [PATCH 321/471] chore(deps): update dependency madge to v8 --- packages/ui/package.json | 2 +- yarn.lock | 509 +++++++++++++++++++++++---------------- 2 files changed, 308 insertions(+), 203 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index e263cc98d..d9440218a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -91,7 +91,7 @@ "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", - "madge": "^7.0.0", + "madge": "^8.0.0", "prettier": "^3.2.5", "sass": "^1.70.0", "stylelint": "^16.2.1", diff --git a/yarn.lock b/yarn.lock index 0cde900fe..44183e85a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -694,12 +694,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.21.8": - version: 7.24.4 - resolution: "@babel/parser@npm:7.24.4" +"@babel/parser@npm:^7.24.4, @babel/parser@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": ^7.25.2 bin: parser: ./bin/babel-parser.js - checksum: 94c9e3e592894cd6fc57c519f4e06b65463df9be5f01739bb0d0bfce7ffcf99b3c2fdadd44dc59cc858ba2739ce6e469813a941c2f2dfacf333a3b2c9c5c8465 + checksum: b55aba64214fa1d66ccd0d29f476d2e55a48586920d280f88c546f81cbbececc0e01c9d05a78d6bf206e8438b9c426caa344942c1a581eecc4d365beaab8a20e languageName: node linkType: hard @@ -730,17 +732,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/parser@npm:7.25.3" - dependencies: - "@babel/types": ^7.25.2 - bin: - parser: ./bin/babel-parser.js - checksum: b55aba64214fa1d66ccd0d29f476d2e55a48586920d280f88c546f81cbbececc0e01c9d05a78d6bf206e8438b9c426caa344942c1a581eecc4d365beaab8a20e - languageName: node - linkType: hard - "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": version: 7.25.3 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" @@ -2212,7 +2203,7 @@ __metadata: jest-canvas-mock: ^2.5.2 jest-environment-jsdom: ^29.7.0 loglevel: ^1.9.1 - madge: ^7.0.0 + madge: ^8.0.0 monaco-editor: ^0.50.0 pako: ^2.1.0 prettier: ^3.2.5 @@ -2260,13 +2251,13 @@ __metadata: languageName: unknown linkType: soft -"@dependents/detective-less@npm:^4.1.0": - version: 4.1.0 - resolution: "@dependents/detective-less@npm:4.1.0" +"@dependents/detective-less@npm:^5.0.0": + version: 5.0.0 + resolution: "@dependents/detective-less@npm:5.0.0" dependencies: gonzales-pe: ^4.3.0 - node-source-walk: ^6.0.1 - checksum: 5188bc4f0314ea2c7d6390c938904e91ba8aea15c7eb62f633e916db4d90af9e0cf27b6ab30e4b5bf60af9401433825d8d256076ef7ad258c9edb860f37fdb43 + node-source-walk: ^7.0.0 + checksum: 85dfc3142d8f34753ddd411dc434784361f318adc7c4abc529c27cf9e2abad28cfe1cc099f2fd3615b9d7787d1f0bd012ac3ef20881d539bb85b61eb9ad7c78e languageName: node linkType: hard @@ -3083,6 +3074,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -4186,6 +4184,41 @@ __metadata: languageName: node linkType: hard +"@ts-graphviz/adapter@npm:^2.0.3": + version: 2.0.3 + resolution: "@ts-graphviz/adapter@npm:2.0.3" + dependencies: + "@ts-graphviz/common": ^2.1.2 + checksum: 36af79c9ac12a8aebe4374237e6842a931b6df5508f7005599dca699d221cbeb96a7369beedc2ac6cee7c8ec428f9fdcd2a7000d9d363eb4fd45c99750091146 + languageName: node + linkType: hard + +"@ts-graphviz/ast@npm:^2.0.3": + version: 2.0.3 + resolution: "@ts-graphviz/ast@npm:2.0.3" + dependencies: + "@ts-graphviz/common": ^2.1.2 + checksum: 761632345204830864a0252ae0d138e064c367ae804beee0de11fccad4065d95e939522ddd127b1545576e7d3898cf3936e1e6eec6267e367ca878087807d7a0 + languageName: node + linkType: hard + +"@ts-graphviz/common@npm:^2.1.2": + version: 2.1.2 + resolution: "@ts-graphviz/common@npm:2.1.2" + checksum: 4a30c1f5ddfad5e3e134f600915f0c0a5e6fb96201fe27d0ff5d0f645663b32e8eb27cf861263ee13534750596135d161ce871fb65ab1cb632e52916c3b7917d + languageName: node + linkType: hard + +"@ts-graphviz/core@npm:^2.0.3": + version: 2.0.3 + resolution: "@ts-graphviz/core@npm:2.0.3" + dependencies: + "@ts-graphviz/ast": ^2.0.3 + "@ts-graphviz/common": ^2.1.2 + checksum: b7f9a634f794391783e3a1575b92ca8d845e4a1c3230f517521f520252a286e4636a182d726bad6c6a6bf52d164e2572988bcb5316a10c229a7de264d1b05ef6 + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -4883,7 +4916,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.62.0, @typescript-eslint/typescript-estree@npm:^5.62.0": +"@typescript-eslint/typescript-estree@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" dependencies: @@ -4901,7 +4934,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.18.0": +"@typescript-eslint/typescript-estree@npm:7.18.0, @typescript-eslint/typescript-estree@npm:^7.6.0": version: 7.18.0 resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" dependencies: @@ -4994,6 +5027,63 @@ __metadata: languageName: node linkType: hard +"@vue/compiler-core@npm:3.4.37": + version: 3.4.37 + resolution: "@vue/compiler-core@npm:3.4.37" + dependencies: + "@babel/parser": ^7.24.7 + "@vue/shared": 3.4.37 + entities: ^5.0.0 + estree-walker: ^2.0.2 + source-map-js: ^1.2.0 + checksum: 2b7ad0f3a101f804269cd3c8876c15e33a49a62e966b15dab340342acb9a7303718d3b4ffc980aee724b70e69bc1987739412b17444bd1c104711f49472aa340 + languageName: node + linkType: hard + +"@vue/compiler-dom@npm:3.4.37": + version: 3.4.37 + resolution: "@vue/compiler-dom@npm:3.4.37" + dependencies: + "@vue/compiler-core": 3.4.37 + "@vue/shared": 3.4.37 + checksum: 097f65608962848f054f11fc7c126234ac15db3f43dad46bba676781a15bac3679642f11a8b0c0b6505feb275107d37b30461f000f500c231ab5649f77caf522 + languageName: node + linkType: hard + +"@vue/compiler-sfc@npm:^3.4.27": + version: 3.4.37 + resolution: "@vue/compiler-sfc@npm:3.4.37" + dependencies: + "@babel/parser": ^7.24.7 + "@vue/compiler-core": 3.4.37 + "@vue/compiler-dom": 3.4.37 + "@vue/compiler-ssr": 3.4.37 + "@vue/shared": 3.4.37 + estree-walker: ^2.0.2 + magic-string: ^0.30.10 + postcss: ^8.4.40 + source-map-js: ^1.2.0 + checksum: ac69d7d7b81c3a5a29df1bdf9f3dbc423fd2e72ed05e9d09218ce9ab9036f53b24b8a4bf731e68914e832609f83915ffa65651dc8f9ce70a55ce804d544a31f6 + languageName: node + linkType: hard + +"@vue/compiler-ssr@npm:3.4.37": + version: 3.4.37 + resolution: "@vue/compiler-ssr@npm:3.4.37" + dependencies: + "@vue/compiler-dom": 3.4.37 + "@vue/shared": 3.4.37 + checksum: f4537ecd2c47192ef78c9c65fc5c692ff183b0a7bf4aa417471af94bc1f5c3cbb1b6e8b098dbcc60279d1c71a8c8d9f0b62e486a54336bb0adca5e57638ffe80 + languageName: node + linkType: hard + +"@vue/shared@npm:3.4.37": + version: 3.4.37 + resolution: "@vue/shared@npm:3.4.37" + checksum: 8ea0000b726c54603f63598e5aa634449bd1b92d9eb158e77e1d58a767b83f4343fe3da5de5de74d9b125ad422c143ad0e5289de1b057b1e77a7e75a440ea1f3 + languageName: node + linkType: hard + "JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -5344,10 +5434,10 @@ __metadata: languageName: node linkType: hard -"ast-module-types@npm:^5.0.0": - version: 5.0.0 - resolution: "ast-module-types@npm:5.0.0" - checksum: a234d666a16dfdb74f36d288694c4de48dff894009ba6a770cb3d33a6010e515ec6203b51be3e55ab58d056298631ae4a4fc5406abbc0509f6d7e3ac415ca400 +"ast-module-types@npm:^6.0.0": + version: 6.0.0 + resolution: "ast-module-types@npm:6.0.0" + checksum: 9636e7fb49d91daf47d62664d1909f75119b9e16b0a728fe7fc2db0e7a1af9399a1f9e05ad5158b73a9f320a40759728cdb149e04c2c0d3769d5b791d20567e6 languageName: node linkType: hard @@ -6041,14 +6131,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^10.0.1": - version: 10.0.1 - resolution: "commander@npm:10.0.1" - checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 - languageName: node - linkType: hard - -"commander@npm:~12.1.0": +"commander@npm:^12.0.0, commander@npm:^12.1.0, commander@npm:~12.1.0": version: 12.1.0 resolution: "commander@npm:12.1.0" checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 @@ -6924,17 +7007,17 @@ __metadata: languageName: node linkType: hard -"dependency-tree@npm:^10.0.9": - version: 10.0.9 - resolution: "dependency-tree@npm:10.0.9" +"dependency-tree@npm:^11.0.0": + version: 11.0.1 + resolution: "dependency-tree@npm:11.0.1" dependencies: - commander: ^10.0.1 - filing-cabinet: ^4.1.6 - precinct: ^11.0.5 - typescript: ^5.0.4 + commander: ^12.0.0 + filing-cabinet: ^5.0.1 + precinct: ^12.0.2 + typescript: ^5.4.5 bin: dependency-tree: bin/cli.js - checksum: 9330e1e904f456c289ebd8fd072183c73fa5c6a4558f512830965ab14a89da4b58fd93b8491e5221b8d648ca7b0eed119ed360e7fb2a71a0230af686747ea3fc + checksum: f0f330c9e275fbb253639f9ebc8e33fc7064b18064b98a8ba13f24909c95dbcc6ae84ca7988edb0d83d15110c4d5e47d6e0c1dc76d3eb169f81fd8ac43d83a8b languageName: node linkType: hard @@ -6959,86 +7042,104 @@ __metadata: languageName: node linkType: hard -"detective-amd@npm:^5.0.2": - version: 5.0.2 - resolution: "detective-amd@npm:5.0.2" +"detective-amd@npm:^6.0.0": + version: 6.0.0 + resolution: "detective-amd@npm:6.0.0" dependencies: - ast-module-types: ^5.0.0 - escodegen: ^2.0.0 - get-amd-module-type: ^5.0.1 - node-source-walk: ^6.0.1 + ast-module-types: ^6.0.0 + escodegen: ^2.1.0 + get-amd-module-type: ^6.0.0 + node-source-walk: ^7.0.0 bin: detective-amd: bin/cli.js - checksum: 6117eec09b4908abe74a3c3bc1f037334092e2a9388231c5f1b672a22c48f6e17ade9ecaf8c0cbbef6fcde52da178b0693e9810ef3c824c11c5c64c6c5865ca1 + checksum: 2b48d48f8e93a84326975bc8da16cb16df0e06a5e39776c98c17e1d32722d4bf58c3a826265c781ee970b9bf71513f42b8d541f5b56ec111ea922f62da2da406 languageName: node linkType: hard -"detective-cjs@npm:^5.0.1": - version: 5.0.1 - resolution: "detective-cjs@npm:5.0.1" +"detective-cjs@npm:^6.0.0": + version: 6.0.0 + resolution: "detective-cjs@npm:6.0.0" dependencies: - ast-module-types: ^5.0.0 - node-source-walk: ^6.0.0 - checksum: c51c27ab10e4c441b26d13e44569c4cd1015268b10537fdfca698996c569ce98e9d69ce635a9680789c9e4fbc6d60c77a752ae64d7532e92678c19fb19ff313b + ast-module-types: ^6.0.0 + node-source-walk: ^7.0.0 + checksum: 9fa6c39122a9b378f4afd76494c23d6913150dfe5ea73d703229a8d0ba7ef5057c4946510a210048b6d78d0171ae6f724c9bba91ea8ec23badec61d232c1b8ba languageName: node linkType: hard -"detective-es6@npm:^4.0.1": - version: 4.0.1 - resolution: "detective-es6@npm:4.0.1" +"detective-es6@npm:^5.0.0": + version: 5.0.0 + resolution: "detective-es6@npm:5.0.0" dependencies: - node-source-walk: ^6.0.1 - checksum: f9fbcae9399fad5d1c4120d22db97fdab6fc8d9ec8011cec2214b23970b3524d5a8ec30943009543cda99cb6dec2e8b78549b6dd918d7c2bff8f13c0565345c8 + node-source-walk: ^7.0.0 + checksum: cf7d6423e83fb48e3687ddecc6b5437d01a864e80495bd10a02e985f2757957b8c132d1d2b576aef1250d69ee9fc28ce33ac5805f8ef2e42c9772164011af557 languageName: node linkType: hard -"detective-postcss@npm:^6.1.3": - version: 6.1.3 - resolution: "detective-postcss@npm:6.1.3" +"detective-postcss@npm:^7.0.0": + version: 7.0.0 + resolution: "detective-postcss@npm:7.0.0" dependencies: is-url: ^1.2.4 - postcss: ^8.4.23 postcss-values-parser: ^6.0.2 - checksum: 54c58227d5a1ec27e1b2b23bd992d823d0161d80e3d8ff6b202094e9841d53e88ac96a4d4cc9762ba4f09a9e038832b5d7c7a45b5e373c1c995c424a8289857b + peerDependencies: + postcss: ^8.4.38 + checksum: 3996bb8af8a379c0f418f26bc73d9b154ded75957196ff0932b424036e4b8dd04773890fa532d9bd32c7bc9bba74d15164f5cbad8ab4d59f558e33484e5e66e8 languageName: node linkType: hard -"detective-sass@npm:^5.0.3": - version: 5.0.3 - resolution: "detective-sass@npm:5.0.3" +"detective-sass@npm:^6.0.0": + version: 6.0.0 + resolution: "detective-sass@npm:6.0.0" dependencies: gonzales-pe: ^4.3.0 - node-source-walk: ^6.0.1 - checksum: 5b09526931c6d87b8159fd9f10518b546ac2cbbc3cec91db194e67553a64c312bcf53de6950f34236ba7747a4f7855885b662c0e2df42aff7deb9d8aed0ce5e3 + node-source-walk: ^7.0.0 + checksum: 2a4db6fb383949b9203fea982810ebcf6071f8b0eaf1a173a4c13c6652a7cecf873be386b864fee7a953718fa11a49caa2fa05b137961267e4e771ef39ff1280 languageName: node linkType: hard -"detective-scss@npm:^4.0.3": - version: 4.0.3 - resolution: "detective-scss@npm:4.0.3" +"detective-scss@npm:^5.0.0": + version: 5.0.0 + resolution: "detective-scss@npm:5.0.0" dependencies: gonzales-pe: ^4.3.0 - node-source-walk: ^6.0.1 - checksum: afeda1e45468d23499349bedaece546b63f9269b51faf05b00f8d9a8a092f6961a6f2f366cc7664b8a1e4291454085b57cfa94fc7e1a1eaf16ef63c06782cfa9 + node-source-walk: ^7.0.0 + checksum: 2fad1dcaf4a496cf50fff8777100b014394b90f45df7291c5a47b2e8e9c17a884ccb657b8670c1135b3cb1cddab2960a90cd4513b61c365123ba7518e7b83369 languageName: node linkType: hard -"detective-stylus@npm:^4.0.0": - version: 4.0.0 - resolution: "detective-stylus@npm:4.0.0" - checksum: 50a765f95e95c8204a86122f015dc9b3d32eb1c38d25cba9a71bbcb0441d398185679baa0d15d8cf43ff1c37e071c98b18599adc7ffe6147cc3c7f7f874cf6a3 +"detective-stylus@npm:^5.0.0": + version: 5.0.0 + resolution: "detective-stylus@npm:5.0.0" + checksum: e39a48e5d23605a459923896a5c511fff5d94bb1dc993a9b8cd866ee9b337589a314ef653342e3f0440e3233a8a40320e29ee557b6ef2f58e020ad9934c83682 languageName: node linkType: hard -"detective-typescript@npm:^11.1.0": - version: 11.2.0 - resolution: "detective-typescript@npm:11.2.0" +"detective-typescript@npm:^13.0.0": + version: 13.0.0 + resolution: "detective-typescript@npm:13.0.0" dependencies: - "@typescript-eslint/typescript-estree": ^5.62.0 - ast-module-types: ^5.0.0 - node-source-walk: ^6.0.2 + "@typescript-eslint/typescript-estree": ^7.6.0 + ast-module-types: ^6.0.0 + node-source-walk: ^7.0.0 + peerDependencies: typescript: ^5.4.4 - checksum: e990cf13e0dc1c992ee80f4dfe961ac1ae1a48d42360d150302453547fa28fc012db7c0e73d20c6eea66bb7b2232e7c1304fc6861820f22e3005f86bcf56f67d + checksum: 09f27c3e379e1300a1a4faafa62d119dddac1aae6b06a17e610a4c0e8d80e0cda34ad7fd2eef770cdd28e13e57a1fb2ded36b94d1e0861e0806e2112417c65b7 + languageName: node + linkType: hard + +"detective-vue2@npm:^2.0.3": + version: 2.0.3 + resolution: "detective-vue2@npm:2.0.3" + dependencies: + "@vue/compiler-sfc": ^3.4.27 + detective-es6: ^5.0.0 + detective-sass: ^6.0.0 + detective-scss: ^5.0.0 + detective-stylus: ^5.0.0 + detective-typescript: ^13.0.0 + peerDependencies: + typescript: ^5.4.4 + checksum: 590f2d33de5760a20e3b18e61c88800e626ed3ca854632def91c71b3d16c379569bc86d7cbda20010e14a992d01a0f676854f29e6b46b19e9bd8531b27b861c0 languageName: node linkType: hard @@ -7215,13 +7316,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.14.1": - version: 5.16.0 - resolution: "enhanced-resolve@npm:5.16.0" +"enhanced-resolve@npm:^5.16.0": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: ccfd01850ecf2aa51e8554d539973319ff7d8a539ef1e0ba3460a0ccad6223c4ef6e19165ee64161b459cd8a48df10f52af4434c60023c65fde6afa32d475f7e + checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59 languageName: node linkType: hard @@ -7232,6 +7333,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^5.0.0": + version: 5.0.0 + resolution: "entities@npm:5.0.0" + checksum: d641555e641ef648ebf92f02d763156ffa35a0136ecd45f26050bd6af299ed7e2a53e5063654b662f72a91a8432f03326f245d4b373824e282afafbe0b4ac320 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -7480,7 +7588,7 @@ __metadata: languageName: node linkType: hard -"escodegen@npm:^2.0.0": +"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": version: 2.1.0 resolution: "escodegen@npm:2.1.0" dependencies: @@ -7935,25 +8043,24 @@ __metadata: languageName: node linkType: hard -"filing-cabinet@npm:^4.1.6": - version: 4.2.0 - resolution: "filing-cabinet@npm:4.2.0" +"filing-cabinet@npm:^5.0.1": + version: 5.0.2 + resolution: "filing-cabinet@npm:5.0.2" dependencies: app-module-path: ^2.2.0 - commander: ^10.0.1 - enhanced-resolve: ^5.14.1 - is-relative-path: ^1.0.2 - module-definition: ^5.0.1 - module-lookup-amd: ^8.0.5 - resolve: ^1.22.3 - resolve-dependency-path: ^3.0.2 - sass-lookup: ^5.0.1 - stylus-lookup: ^5.0.1 + commander: ^12.0.0 + enhanced-resolve: ^5.16.0 + module-definition: ^6.0.0 + module-lookup-amd: ^9.0.1 + resolve: ^1.22.8 + resolve-dependency-path: ^4.0.0 + sass-lookup: ^6.0.1 + stylus-lookup: ^6.0.0 tsconfig-paths: ^4.2.0 - typescript: ^5.0.4 + typescript: ^5.4.4 bin: filing-cabinet: bin/cli.js - checksum: 963206b779ebb9aac09982500ca4a4483f6b6a43c0841d29663601dcb3a0030f693bd78d7f849cf51d240e1b3b900c2e01ffb3b4cf1d0d8f5a18c63065588d06 + checksum: f588ce81dcf7c26611f24ef3be1e4cc58fb0e60760cb2a5ef3b613ce7237a32072ce7bfe70fe6386a1d0ba41ff764e818b397e7a1ba9ffcc7a0f6656211c4812 languageName: node linkType: hard @@ -8183,13 +8290,13 @@ __metadata: languageName: node linkType: hard -"get-amd-module-type@npm:^5.0.1": - version: 5.0.1 - resolution: "get-amd-module-type@npm:5.0.1" +"get-amd-module-type@npm:^6.0.0": + version: 6.0.0 + resolution: "get-amd-module-type@npm:6.0.0" dependencies: - ast-module-types: ^5.0.0 - node-source-walk: ^6.0.1 - checksum: 77b6a59b90c54fd2d8adb1555e3939462d7b97c617e74271bbcb8f9741ca6681e831216e9e45f4ab1ab1b249394b89d5c8d9e4afa1497c68d02698775cd2225e + ast-module-types: ^6.0.0 + node-source-walk: ^7.0.0 + checksum: ebac9fae785fbab313309702278d1574204d5d9ea065f06be91a45512fa268ccd235bdfe62e840d868ff9038afb917b32b535fb609f844a05d4ec680f3f91ee7 languageName: node linkType: hard @@ -9127,13 +9234,6 @@ __metadata: languageName: node linkType: hard -"is-relative-path@npm:^1.0.2": - version: 1.0.2 - resolution: "is-relative-path@npm:1.0.2" - checksum: 6c2ccffd3c0a3e3990535d0571370883d558b825b51940085f3446ec338857f4552f44521dfec3e83b7e067de08c0b0369de290208a91200bcae2c569533e340 - languageName: node - linkType: hard - "is-shared-array-buffer@npm:^1.0.2": version: 1.0.2 resolution: "is-shared-array-buffer@npm:1.0.2" @@ -10338,31 +10438,39 @@ __metadata: languageName: node linkType: hard -"madge@npm:^7.0.0": - version: 7.0.0 - resolution: "madge@npm:7.0.0" +"madge@npm:^8.0.0": + version: 8.0.0 + resolution: "madge@npm:8.0.0" dependencies: chalk: ^4.1.2 commander: ^7.2.0 commondir: ^1.0.1 debug: ^4.3.4 - dependency-tree: ^10.0.9 + dependency-tree: ^11.0.0 ora: ^5.4.1 pluralize: ^8.0.0 - precinct: ^11.0.5 pretty-ms: ^7.0.1 rc: ^1.2.8 stream-to-array: ^2.3.0 - ts-graphviz: ^1.8.1 + ts-graphviz: ^2.1.2 walkdir: ^0.4.1 peerDependencies: - typescript: ^3.9.5 || ^4.9.5 || ^5 + typescript: ^5.4.4 peerDependenciesMeta: typescript: optional: true bin: madge: bin/cli.js - checksum: 58bc4cd2efdec7f13d911955cdad57395d0acbd9d7758bd65300317fd07fbfec166988d02dfd02687e2dd9ec9475d382cf76115654d53cfe75bd31f83e0fc8c9 + checksum: a5b06f23e474b60cd6a45d72b02ac11d6a3fe5840b3b87c5c01c9f0159a58bd6f86e47b2ed0212316601fabca9de525577944b0f5d547e2b69270858d4049ba4 + languageName: node + linkType: hard + +"magic-string@npm:^0.30.10": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": ^1.5.0 + checksum: e041649453c9a3f31d2e731fc10e38604d50e20d3585cd48bc7713a6e2e1a3ad3012105929ca15750d59d0a3f1904405e4b95a23b7e69dc256db3c277a73a3ca languageName: node linkType: hard @@ -10740,29 +10848,29 @@ __metadata: languageName: node linkType: hard -"module-definition@npm:^5.0.1": - version: 5.0.1 - resolution: "module-definition@npm:5.0.1" +"module-definition@npm:^6.0.0": + version: 6.0.0 + resolution: "module-definition@npm:6.0.0" dependencies: - ast-module-types: ^5.0.0 - node-source-walk: ^6.0.1 + ast-module-types: ^6.0.0 + node-source-walk: ^7.0.0 bin: module-definition: bin/cli.js - checksum: cc0f9ab8c940607de3b60e4c979f4897e9d544d03eee8435f61824b08ffc2d70f7f38043a6b8e728258d65b9925446cd82ddee65acf1fc2ae7351fce57896dc9 + checksum: 88c997eb6018e47140980892261ec875f207cc274a85f9f39c3b76cf93cf3738f3bca4fc40fa4ebcf27f321c7231773e9cf3865a31f85805937883fff9a9d8c5 languageName: node linkType: hard -"module-lookup-amd@npm:^8.0.5": - version: 8.0.5 - resolution: "module-lookup-amd@npm:8.0.5" +"module-lookup-amd@npm:^9.0.1": + version: 9.0.2 + resolution: "module-lookup-amd@npm:9.0.2" dependencies: - commander: ^10.0.1 + commander: ^12.1.0 glob: ^7.2.3 - requirejs: ^2.3.6 + requirejs: ^2.3.7 requirejs-config-file: ^4.0.0 bin: lookup-amd: bin/cli.js - checksum: 29b91623b2620a531bd60ef4cc3fbb4e4e3ffef40a2fb98f748ef2a621e0fc83e57fe8a4345e81a51c07e343bbae73a4ff11ce2e8d397f18385f6546f6631d2d + checksum: 70a8b734397e2afa5c4078ac9d0d43bdef414c1de38e7ad5d1bb5cda9391008c85b1570e0dc9022d267a4e928d79686ff694e9f79da4bf1dfe14fc1dd0606e07 languageName: node linkType: hard @@ -10894,12 +11002,12 @@ __metadata: languageName: node linkType: hard -"node-source-walk@npm:^6.0.0, node-source-walk@npm:^6.0.1, node-source-walk@npm:^6.0.2": - version: 6.0.2 - resolution: "node-source-walk@npm:6.0.2" +"node-source-walk@npm:^7.0.0": + version: 7.0.0 + resolution: "node-source-walk@npm:7.0.0" dependencies: - "@babel/parser": ^7.21.8 - checksum: eacaaa11fa71fd48da16d75a108d5e1e945b581550112b37c5e909c7f112c1b48acf8648d7fa167e6f482e41f047bceca1ffc5aa3c91fee74406acc003f98190 + "@babel/parser": ^7.24.4 + checksum: 61789f4bf382a3a225db16e1d30af48550bddbfebcf7b4784756247d2f5acb4318440c32f31efb1ef9fbf6c6d71571a355fd9e532c13a90f5703814b60f8a671 languageName: node linkType: hard @@ -11748,17 +11856,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.23": - version: 8.4.35 - resolution: "postcss@npm:8.4.35" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: cf3c3124d3912a507603f6d9a49b3783f741075e9aa73eb592a6dd9194f9edab9d20a8875d16d137d4f779fe7b6fbd1f5727e39bfd1c3003724980ee4995e1da - languageName: node - linkType: hard - "postcss@npm:^8.4.40": version: 8.4.40 resolution: "postcss@npm:8.4.40" @@ -11770,25 +11867,28 @@ __metadata: languageName: node linkType: hard -"precinct@npm:^11.0.5": - version: 11.0.5 - resolution: "precinct@npm:11.0.5" - dependencies: - "@dependents/detective-less": ^4.1.0 - commander: ^10.0.1 - detective-amd: ^5.0.2 - detective-cjs: ^5.0.1 - detective-es6: ^4.0.1 - detective-postcss: ^6.1.3 - detective-sass: ^5.0.3 - detective-scss: ^4.0.3 - detective-stylus: ^4.0.0 - detective-typescript: ^11.1.0 - module-definition: ^5.0.1 - node-source-walk: ^6.0.2 +"precinct@npm:^12.0.2": + version: 12.1.2 + resolution: "precinct@npm:12.1.2" + dependencies: + "@dependents/detective-less": ^5.0.0 + commander: ^12.1.0 + detective-amd: ^6.0.0 + detective-cjs: ^6.0.0 + detective-es6: ^5.0.0 + detective-postcss: ^7.0.0 + detective-sass: ^6.0.0 + detective-scss: ^5.0.0 + detective-stylus: ^5.0.0 + detective-typescript: ^13.0.0 + detective-vue2: ^2.0.3 + module-definition: ^6.0.0 + node-source-walk: ^7.0.0 + postcss: ^8.4.40 + typescript: ^5.5.4 bin: precinct: bin/cli.js - checksum: f4c373012f9ec6eeef9c492a0422db9b9ea86f64e0e990ce7464cc0df8655ba2f6516aacf9b05db157e2faf8b9487a5299d359712664ab04c07ddd4496a17654 + checksum: 0827820f365cda38e51b830ea1d5be3edfe6d3aa1e73edc71bcaddce8839e4fc33bb3c0282aa063b94f237d785a96ac1cc5e175b0559102e35509fe01b9cea28 languageName: node linkType: hard @@ -12395,13 +12495,13 @@ __metadata: languageName: node linkType: hard -"requirejs@npm:^2.3.6": - version: 2.3.6 - resolution: "requirejs@npm:2.3.6" +"requirejs@npm:^2.3.7": + version: 2.3.7 + resolution: "requirejs@npm:2.3.7" bin: - r.js: ./bin/r.js - r_js: ./bin/r.js - checksum: 7c3c006bf5e1887d93ac7adb7f600328918d23cf3d28282a505a2873d4ddde499c7ec560e55cee3440d17fe1205cb4dcb72b07f35b39e8940372eca850e49b62 + r.js: bin/r.js + r_js: bin/r.js + checksum: c23ead11f43321d85e3d2415705c94b6cbc1b5d30e831473d002294a2af5b6a08c308bcb25938ee51e8915cc5894e47130b9ebc3c538d4cd2a7cc01de3cbcc36 languageName: node linkType: hard @@ -12428,10 +12528,10 @@ __metadata: languageName: node linkType: hard -"resolve-dependency-path@npm:^3.0.2": - version: 3.0.2 - resolution: "resolve-dependency-path@npm:3.0.2" - checksum: d042bef325ce8dbdbe57f37f93851b2c5651e06378b9f352ceef2c28aa99dc6ae793be7795e8bf4ad18b40769ee06d8e049ce8206f183c9afe9812fd48ef6d8c +"resolve-dependency-path@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-dependency-path@npm:4.0.0" + checksum: b582be091605f767e2abbf1965efb782aa8ccec8a329b065351c39890ca0f278fa1bde2bd959641b6bb06dfc6bfe76515f01e7e9996dd5d9ac491ad14861b1c7 languageName: node linkType: hard @@ -12456,7 +12556,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.3, resolve@npm:^1.22.4": +"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4, resolve@npm:^1.22.8": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -12469,7 +12569,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.3#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.4#~builtin<compat/resolve>": +"resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.4#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.8#~builtin<compat/resolve>": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin<compat/resolve>::version=1.22.8&hash=c3c19d" dependencies: @@ -12660,14 +12760,14 @@ __metadata: languageName: node linkType: hard -"sass-lookup@npm:^5.0.1": - version: 5.0.1 - resolution: "sass-lookup@npm:5.0.1" +"sass-lookup@npm:^6.0.1": + version: 6.0.1 + resolution: "sass-lookup@npm:6.0.1" dependencies: - commander: ^10.0.1 + commander: ^12.0.0 bin: sass-lookup: bin/cli.js - checksum: b965abafac84de186be905c6fa22138b7458f4a01cb1057611d45b9c3e365e8aaa7c8395a1710b8bc38149b6c9bcff0755a209f1263af48352234c02b68c8530 + checksum: e377b52321802df772e15e33f1ce8282b8a9f1c1ebec5bdfe943366f8fcaaafc5d9439ad750691349f86d3d0dc0e86350142b610a2a9be67bd667b36b954a5d9 languageName: node linkType: hard @@ -12917,7 +13017,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c @@ -13385,14 +13485,14 @@ __metadata: languageName: node linkType: hard -"stylus-lookup@npm:^5.0.1": - version: 5.0.1 - resolution: "stylus-lookup@npm:5.0.1" +"stylus-lookup@npm:^6.0.0": + version: 6.0.0 + resolution: "stylus-lookup@npm:6.0.0" dependencies: - commander: ^10.0.1 + commander: ^12.0.0 bin: stylus-lookup: bin/cli.js - checksum: b4a5ac4330fec121a8e38ae3ea0c544a6fc7771cf5bfe3eb04525bfe04a607a6d5b6051c2e79386a77e235ed59863134423a34e465abf186bdc1e2014b5e46af + checksum: 27b3380c54f3c2a1186366d44f909d12daaaf412eaf92ad1f0aa1f456fb933da2bf9cf2d84e3195bc6eafeeba667af528e63e543a195ebf7a38bdb9056ca6e01 languageName: node linkType: hard @@ -13625,10 +13725,15 @@ __metadata: languageName: node linkType: hard -"ts-graphviz@npm:^1.8.1": - version: 1.8.2 - resolution: "ts-graphviz@npm:1.8.2" - checksum: 73723d6d9b9b29073ff659b38e8a8443a024d515a30fd77dfb00a9df0e835739f2522c303a353e63bbd39115e23b34c9d92dd66f72590cf5f92d3a447255f9b9 +"ts-graphviz@npm:^2.1.2": + version: 2.1.2 + resolution: "ts-graphviz@npm:2.1.2" + dependencies: + "@ts-graphviz/adapter": ^2.0.3 + "@ts-graphviz/ast": ^2.0.3 + "@ts-graphviz/common": ^2.1.2 + "@ts-graphviz/core": ^2.0.3 + checksum: 0b06a00cbd1518d98c158d01541b47343ccfe46cadc63ed34bda19689e92f79126a42628cc6c2eb55014cce7672ec4260538d40baf8f90448b8d3c638191e7a9 languageName: node linkType: hard @@ -13841,7 +13946,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.0.4, typescript@npm:^5.3.3, typescript@npm:^5.4.4": +"typescript@npm:^5.3.3, typescript@npm:^5.4.4, typescript@npm:^5.4.5, typescript@npm:^5.5.4": version: 5.5.4 resolution: "typescript@npm:5.5.4" bin: @@ -13851,7 +13956,7 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@^5.0.4#~builtin<compat/typescript>, typescript@patch:typescript@^5.3.3#~builtin<compat/typescript>, typescript@patch:typescript@^5.4.4#~builtin<compat/typescript>": +"typescript@patch:typescript@^5.3.3#~builtin<compat/typescript>, typescript@patch:typescript@^5.4.4#~builtin<compat/typescript>, typescript@patch:typescript@^5.4.5#~builtin<compat/typescript>, typescript@patch:typescript@^5.5.4#~builtin<compat/typescript>": version: 5.5.4 resolution: "typescript@patch:typescript@npm%3A5.5.4#~builtin<compat/typescript>::version=5.5.4&hash=379a07" bin: From d514f5978d76bfd349b0c5541f84bbcb79240c69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 10 Aug 2024 00:52:14 +0000 Subject: [PATCH 322/471] chore(deps): update dependency @types/node to v20.14.15 --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 44183e85a..0bbd612fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4691,20 +4691,20 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^22.1.0": - version: 22.1.0 - resolution: "@types/node@npm:22.1.0" + version: 22.2.0 + resolution: "@types/node@npm:22.2.0" dependencies: undici-types: ~6.13.0 - checksum: 3544c35da06009790a2e07742a7dfa0ac0f0d64ec47d9e6d3edf0ff6dcfc1a7cc2efdc5e524e80f8ed80aa37154513b2c1c724f95146ff89fc5aefb8e33575f2 + checksum: 63724799337bfb57719a1992690e738341d824e1744a2ac52c5278a008fbfadf99765519c19858feb80418cc7da0d5c8bdf7ea4d82973869b3882bd602c48ade languageName: node linkType: hard "@types/node@npm:^20.11.6": - version: 20.14.14 - resolution: "@types/node@npm:20.14.14" + version: 20.14.15 + resolution: "@types/node@npm:20.14.15" dependencies: undici-types: ~5.26.4 - checksum: cb2199123efca94908ee7191cc7b7abc11b26bf1fbb93c2948d5537a6594eedc35d4748d9fa998078fdc2eb5cc3a11d6d87b2fea20a05bda9d304e37d3c3282a + checksum: 0407600c1a426efd3e97c94ef1c13edce453142a06ea4be7102bf7be3e907ea578872c7795988a72e981b8ffe942f8cfaafd98552ba82915cd6f963dd1fa9adc languageName: node linkType: hard From 477b8ba09c6a308058e8b6c6f99a9d66a6286ef7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 01:15:54 +0000 Subject: [PATCH 323/471] chore(deps): update dependency @storybook/addon-actions to v8.2.9 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0bbd612fe..fe246f557 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4075,8 +4075,8 @@ __metadata: linkType: hard "@storybook/addon-actions@npm:^8.0.0": - version: 8.2.8 - resolution: "@storybook/addon-actions@npm:8.2.8" + version: 8.2.9 + resolution: "@storybook/addon-actions@npm:8.2.9" dependencies: "@storybook/global": ^5.0.0 "@types/uuid": ^9.0.1 @@ -4084,8 +4084,8 @@ __metadata: polished: ^4.2.2 uuid: ^9.0.0 peerDependencies: - storybook: ^8.2.8 - checksum: 0d348d651be4c35d4581309c64f7ef15d7db137f7ce678ba6149cef6d26bb38c2781acd6c61a89aea2073a73470724db382bb7f281d6e32cac85634c0b9542f7 + storybook: ^8.2.9 + checksum: 3d9cdc9bcfb4fe2cfc9baece1e29ec77fefbcb92c0c77edd9fcc54db506e55dba419e5b8cb2fe49073108a00e0e808e0d55eceb6772071ed9add864cc9b34fbf languageName: node linkType: hard From f381c32399c47c3eb356e2d2518f96881fb210fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 01:16:15 +0000 Subject: [PATCH 324/471] chore(deps): update dependency lint-staged to v15.2.9 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index fe246f557..43cd07f45 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10254,8 +10254,8 @@ __metadata: linkType: hard "lint-staged@npm:^15.0.0": - version: 15.2.8 - resolution: "lint-staged@npm:15.2.8" + version: 15.2.9 + resolution: "lint-staged@npm:15.2.9" dependencies: chalk: ~5.3.0 commander: ~12.1.0 @@ -10269,7 +10269,7 @@ __metadata: yaml: ~2.5.0 bin: lint-staged: bin/lint-staged.js - checksum: 7077c1ec963022d51913abfad8231799c3c9536633e65d5916e4c432bd9108a2dbc4614891c529638807f08b0de73b8ffb9e357eb98b0721363526124daea75b + checksum: 7f804c24d0374b48d26f11a051342141b84c9954f77225bab5ae221b1e4d47a72f722f39b13169267592c28b2614ad39f9722fd86bc4cdfdf93e8601ff66b0e1 languageName: node linkType: hard From 3ea5b725d6bb3e56c81301bc0c8e84c6d8f8462a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 00:10:22 +0000 Subject: [PATCH 325/471] chore(deps): update dependency vite to v5.4.1 --- yarn.lock | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 43cd07f45..83daecf43 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11867,6 +11867,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.41": + version: 8.4.41 + resolution: "postcss@npm:8.4.41" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.0.1 + source-map-js: ^1.2.0 + checksum: f865894929eb0f7fc2263811cc853c13b1c75103028b3f4f26df777e27b201f1abe21cb4aa4c2e901c80a04f6fb325ee22979688fe55a70e2ea82b0a517d3b6f + languageName: node + linkType: hard + "precinct@npm:^12.0.2": version: 12.1.2 resolution: "precinct@npm:12.1.2" @@ -14219,12 +14230,12 @@ __metadata: linkType: hard "vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.4.0 - resolution: "vite@npm:5.4.0" + version: 5.4.1 + resolution: "vite@npm:5.4.1" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 - postcss: ^8.4.40 + postcss: ^8.4.41 rollup: ^4.13.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -14257,7 +14268,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: e2a7d37b9cc92b14d0070f5c229c46365c82af45860db2424d0ec547c3f00d66f4d1d969fea60f22b143994bf60d04d4a364c87b3ff79bd7c94568e788b1d932 + checksum: 5bbb9e855fdbcb170f0d02b78e5c1e8f68e2d2010df6dd74b105bbcef96e91d89871063cb9afafb263e8e0bd69d7b6c4eeadd1abec63bd0938ab7b2b56e7e4dd languageName: node linkType: hard From dbe3ce7b78903016327fb04b8d0a65933143524c Mon Sep 17 00:00:00 2001 From: tplevko <tplevko@redhat.com> Date: Fri, 16 Aug 2024 15:31:18 +0200 Subject: [PATCH 326/471] fix close modal using the close (x) button --- .../src/components/document/actions/DeleteMappingItemAction.tsx | 1 + .../ui/src/components/document/actions/DeleteParameterButton.tsx | 1 + .../ui/src/components/document/actions/DetachSchemaButton.tsx | 1 + 3 files changed, 3 insertions(+) diff --git a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx index 0eea65104..423a7f3c3 100644 --- a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx +++ b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx @@ -38,6 +38,7 @@ export const DeleteMappingItemAction: FunctionComponent<DeleteItemProps> = ({ no variant={ModalVariant.small} isOpen={isModalOpen} title={title} + onClose={closeModal} actions={[ <Button key="confirm" variant="primary" onClick={onConfirmDelete}> Confirm diff --git a/packages/ui/src/components/document/actions/DeleteParameterButton.tsx b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx index 3d95b4fc4..4ee4e10f9 100644 --- a/packages/ui/src/components/document/actions/DeleteParameterButton.tsx +++ b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx @@ -51,6 +51,7 @@ export const DeleteParameterButton: FunctionComponent<DeleteParameterProps> = ({ variant={ModalVariant.small} isOpen={isModalOpen} title="Delete parameter" + onClose={closeModal} actions={[ <Button key="confirm" variant="primary" onClick={onConfirmDelete}> Confirm diff --git a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx index 222ea05b7..5418faf38 100644 --- a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx @@ -89,6 +89,7 @@ export const DetachSchemaButton: FunctionComponent<DeleteSchemaProps> = ({ docum variant={ModalVariant.small} isOpen={isModalOpen} title="Detach schema" + onClose={closeModal} actions={[ <Button key="confirm" variant="primary" onClick={onConfirmDelete}> Confirm From 86a7fb28089f4a6550055c476b4e537ba1b3fa84 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 04:08:56 +0000 Subject: [PATCH 327/471] chore(deps): update dependency @types/node to v20.16.1 --- yarn.lock | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index 83daecf43..9d6ea2fd3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4691,20 +4691,20 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^22.1.0": - version: 22.2.0 - resolution: "@types/node@npm:22.2.0" + version: 22.4.1 + resolution: "@types/node@npm:22.4.1" dependencies: - undici-types: ~6.13.0 - checksum: 63724799337bfb57719a1992690e738341d824e1744a2ac52c5278a008fbfadf99765519c19858feb80418cc7da0d5c8bdf7ea4d82973869b3882bd602c48ade + undici-types: ~6.19.2 + checksum: 341eb54867a3ec8eee7853ff9a9fc92d9f66305b70c9bc5db78492d51f4da3cd81e50c077f5d98eef1835fcbca00c58bb2a229ef56b0e377e48a3284401bf3f6 languageName: node linkType: hard "@types/node@npm:^20.11.6": - version: 20.14.15 - resolution: "@types/node@npm:20.14.15" + version: 20.16.1 + resolution: "@types/node@npm:20.16.1" dependencies: - undici-types: ~5.26.4 - checksum: 0407600c1a426efd3e97c94ef1c13edce453142a06ea4be7102bf7be3e907ea578872c7795988a72e981b8ffe942f8cfaafd98552ba82915cd6f963dd1fa9adc + undici-types: ~6.19.2 + checksum: 2b8f30f416f5c1851ffa8a13ef6c464a5e355edfd763713c22813a7839f6419a64e27925f9e89c972513d78432263179332f0bffb273d16498233bfdf495d096 languageName: node linkType: hard @@ -13998,17 +13998,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 - languageName: node - linkType: hard - -"undici-types@npm:~6.13.0": - version: 6.13.0 - resolution: "undici-types@npm:6.13.0" - checksum: 9d0ef6bf58994bebbea6a4ab75f381c69a89a7ed151bfbae0d4ef95450d56502c9eccb323abf17b7d099c1d9c1cbae62e909e4dfeb8d204612d2f1fdada24707 +"undici-types@npm:~6.19.2": + version: 6.19.6 + resolution: "undici-types@npm:6.19.6" + checksum: e66df2447b6d93a48b0605a54269d8c3f228edcd1e9563229f6de37e48ed53b3e49b4bc965733643ed9717e0e0fa1ee664c929db91d787c9f488fb3f9e17c533 languageName: node linkType: hard From d8691837cd5875bd1e011a031a72ba7127a22314 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 18 Aug 2024 02:09:09 +0000 Subject: [PATCH 328/471] fix(deps): update dependency use-debounce to v10.0.3 --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9d6ea2fd3..541977951 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14130,11 +14130,11 @@ __metadata: linkType: hard "use-debounce@npm:^10.0.0": - version: 10.0.2 - resolution: "use-debounce@npm:10.0.2" + version: 10.0.3 + resolution: "use-debounce@npm:10.0.3" peerDependencies: - react: ">=16.8.0" - checksum: 0b036292686c13b38e1b0f10d8d207e755a16d20d21acc41776696f88f83cea77f58d32923546f03ff252d3ebb12078d1d205b67506685608f77ea45e55a2928 + react: "*" + checksum: 19146eeb9adb893fe18a601ee8d3ba095b3c8b01e200f552462e7bb7370fcdbe5e7ffa8d5072dbf5eee58cae64f95903c26a5446039c1338c721808be808b546 languageName: node linkType: hard From 62acd3b2c98e2bb0a5688ebcc9fd8769608d9d11 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:52:32 +0000 Subject: [PATCH 329/471] chore(deps): update dependency stylelint to v16.8.2 --- yarn.lock | 85 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 39 deletions(-) diff --git a/yarn.lock b/yarn.lock index 541977951..f8a33a80e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2127,38 +2127,38 @@ __metadata: languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.7.1": - version: 2.7.1 - resolution: "@csstools/css-parser-algorithms@npm:2.7.1" +"@csstools/css-parser-algorithms@npm:^3.0.0": + version: 3.0.1 + resolution: "@csstools/css-parser-algorithms@npm:3.0.1" peerDependencies: - "@csstools/css-tokenizer": ^2.4.1 - checksum: 304e6f92e583042c310e368a82b694af563a395e5c55911caefe52765c5acb000b9daa17356ea8a4dd37d4d50132b76de48ced75159b169b53e134ff78b362ba + "@csstools/css-tokenizer": ^3.0.1 + checksum: 6d8ae77d0a4a14269ab489cbb55d952a226fbdf7999943db1ebd51167ebafa12e24342c56e1af0f9fe6a460f1cf1579442b56f700e3e614faf1c8ba96e0761f4 languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.4.1": - version: 2.4.1 - resolution: "@csstools/css-tokenizer@npm:2.4.1" - checksum: 395c51f8724ddc4851d836f484346bb3ea6a67af936dde12cbf9a57ae321372e79dee717cbe4823599eb0e6fd2d5405cf8873450e986c2fca6e6ed82e7b10219 +"@csstools/css-tokenizer@npm:^3.0.0": + version: 3.0.1 + resolution: "@csstools/css-tokenizer@npm:3.0.1" + checksum: 53e5e147290972b37c00e2debcd84662e41d1a72055bc231d75c6c6ceb2f654bc3f0ba064ca4ae97c6b39a7c51e1023c4a5e857af2c5c8e16d8665c490ee8948 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.1.13": - version: 2.1.13 - resolution: "@csstools/media-query-list-parser@npm:2.1.13" +"@csstools/media-query-list-parser@npm:^3.0.0": + version: 3.0.1 + resolution: "@csstools/media-query-list-parser@npm:3.0.1" peerDependencies: - "@csstools/css-parser-algorithms": ^2.7.1 - "@csstools/css-tokenizer": ^2.4.1 - checksum: 7754b4b9fcc749a51a2bcd34a167ad16e7227ff087f6c4e15b3593d3342413446b72dad37f1adb99c62538730c77e3e47842987ce453fbb3849d329a39ba9ad7 + "@csstools/css-parser-algorithms": ^3.0.1 + "@csstools/css-tokenizer": ^3.0.1 + checksum: 65d1fdb83def44de4e97898d630aba13a9c09dac18f80d4a68bd135c903973bbf81f338a41471016c3d93768bc005f3e7978977135c8e0944baba710b4d33dca languageName: node linkType: hard -"@csstools/selector-specificity@npm:^3.1.1": - version: 3.1.1 - resolution: "@csstools/selector-specificity@npm:3.1.1" +"@csstools/selector-specificity@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/selector-specificity@npm:4.0.0" peerDependencies: - postcss-selector-parser: ^6.0.13 - checksum: 3786a6afea97b08ad739ee8f4004f7e0a9e25049cee13af809dbda6462090744012a54bd9275a44712791e8f103f85d21641f14e81799f9dab946b0459a5e1ef + postcss-selector-parser: ^6.1.0 + checksum: 7076c1d8af0fba94f06718f87fba5bfea583f39089efa906ae38b5ecd6912d3d5865f7047a871ac524b1057e4c970622b2ade456b90d69fb9393902250057994 languageName: node linkType: hard @@ -8888,6 +8888,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^5.3.2": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be + languageName: node + linkType: hard + "immutable@npm:^4.0.0": version: 4.3.5 resolution: "immutable@npm:4.3.5" @@ -11781,10 +11788,10 @@ __metadata: languageName: node linkType: hard -"postcss-resolve-nested-selector@npm:^0.1.4": - version: 0.1.4 - resolution: "postcss-resolve-nested-selector@npm:0.1.4" - checksum: 8de7abd1ae129233480ac123be243e2a722a4bb73fa54fb09cbbe6f10074fac960b9caadad8bc658982b96934080bd7b7f01b622ca7d5d78a25dc9c0532b17cb +"postcss-resolve-nested-selector@npm:^0.1.6": + version: 0.1.6 + resolution: "postcss-resolve-nested-selector@npm:0.1.6" + checksum: 85453901afe2a4db497b4e0d2c9cf2a097a08fa5d45bc646547025176217050334e423475519a1e6c74a1f31ade819d16bb37a39914e5321e250695ee3feea14 languageName: node linkType: hard @@ -11826,13 +11833,13 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.1.1": - version: 6.1.1 - resolution: "postcss-selector-parser@npm:6.1.1" +"postcss-selector-parser@npm:^6.1.2": + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 1c6a5adfc3c19c6e1e7d94f8addb89a5166fcca72c41f11713043d381ecbe82ce66360c5524e904e17b54f7fc9e6a077994ff31238a456bc7320c3e02e88d92e + checksum: ce9440fc42a5419d103f4c7c1847cb75488f3ac9cbe81093b408ee9701193a509f664b4d10a2b4d82c694ee7495e022f8f482d254f92b7ffd9ed9dea696c6f84 languageName: node linkType: hard @@ -13441,13 +13448,13 @@ __metadata: linkType: hard "stylelint@npm:^16.2.1": - version: 16.8.1 - resolution: "stylelint@npm:16.8.1" + version: 16.8.2 + resolution: "stylelint@npm:16.8.2" dependencies: - "@csstools/css-parser-algorithms": ^2.7.1 - "@csstools/css-tokenizer": ^2.4.1 - "@csstools/media-query-list-parser": ^2.1.13 - "@csstools/selector-specificity": ^3.1.1 + "@csstools/css-parser-algorithms": ^3.0.0 + "@csstools/css-tokenizer": ^3.0.0 + "@csstools/media-query-list-parser": ^3.0.0 + "@csstools/selector-specificity": ^4.0.0 "@dual-bundle/import-meta-resolve": ^4.1.0 balanced-match: ^2.0.0 colord: ^2.9.3 @@ -13462,7 +13469,7 @@ __metadata: globby: ^11.1.0 globjoin: ^0.1.4 html-tags: ^3.3.1 - ignore: ^5.3.1 + ignore: ^5.3.2 imurmurhash: ^0.1.4 is-plain-object: ^5.0.0 known-css-properties: ^0.34.0 @@ -13471,10 +13478,10 @@ __metadata: micromatch: ^4.0.7 normalize-path: ^3.0.0 picocolors: ^1.0.1 - postcss: ^8.4.40 - postcss-resolve-nested-selector: ^0.1.4 + postcss: ^8.4.41 + postcss-resolve-nested-selector: ^0.1.6 postcss-safe-parser: ^7.0.0 - postcss-selector-parser: ^6.1.1 + postcss-selector-parser: ^6.1.2 postcss-value-parser: ^4.2.0 resolve-from: ^5.0.0 string-width: ^4.2.3 @@ -13485,7 +13492,7 @@ __metadata: write-file-atomic: ^5.0.1 bin: stylelint: bin/stylelint.mjs - checksum: 4fe1695901b15b04b25b038835901803e2b0af5cd79c516f99c69c7bb2904807c1a6d4824a677c2a89b75a7a318e82348aa29bd2ddd855696f5ea35acb77c3c1 + checksum: fb90da1de44c47d0f53840881db54072ab996ac3b3dc8cabcacfee55680eac88a0b4fbb02c4746428e246b22e00a4e07ebc2054e1af072db6de7e2860473773c languageName: node linkType: hard From ab5b16c3dcbefbff917aaade9a4395e66a2d2b33 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Wed, 14 Aug 2024 16:15:19 -0400 Subject: [PATCH 330/471] fix: Add unit tests for MappingService (#348) --- .../ui/src/services/mapping.service.test.ts | 160 ++++++++++++++++-- packages/ui/src/services/mapping.service.ts | 18 +- 2 files changed, 159 insertions(+), 19 deletions(-) diff --git a/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts index 141b4ae8e..0fa1dec48 100644 --- a/packages/ui/src/services/mapping.service.test.ts +++ b/packages/ui/src/services/mapping.service.test.ts @@ -1,25 +1,161 @@ -//import { MappingService } from './mapping.service'; -//import { BODY_DOCUMENT_ID, DocumentType } from '../models/document'; -//import { FieldItem } from '../models/mapping'; -//import { XmlSchemaDocumentService } from './xml-schema-document.service'; -//import * as fs from 'node:fs'; - import { MappingService } from './mapping.service'; import * as fs from 'fs'; import { TestUtil } from '../test/test-util'; -import { MappingTree } from '../models/mapping'; +import { + ChooseItem, + FieldItem, + IfItem, + MappingTree, + OtherwiseItem, + ValueSelector, + ValueType, + WhenItem, +} from '../models/mapping'; import { MappingSerializerService } from './mapping-serializer.service'; +import { DocumentType } from '../models/path'; +import { XmlSchemaDocument } from './xml-schema-document.service'; +import { IDocument } from '../models/document'; describe('MappingService', () => { - const sourceDoc = TestUtil.createSourceOrderDoc(); - const targetDoc = TestUtil.createTargetOrderDoc(); - const paramsMap = TestUtil.createParameterMap(); const xsltFile = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl').toString(); + let sourceDoc: XmlSchemaDocument; + let targetDoc: XmlSchemaDocument; + let paramsMap: Map<string, IDocument>; + let tree: MappingTree; + + beforeEach(() => { + sourceDoc = TestUtil.createSourceOrderDoc(); + targetDoc = TestUtil.createTargetOrderDoc(); + paramsMap = TestUtil.createParameterMap(); + tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); + MappingSerializerService.deserialize(xsltFile, targetDoc, tree, paramsMap); + }); + + describe('filterMappingsForField()', () => { + it('should filter mappings', () => { + let filtered = MappingService.filterMappingsForField(tree.children, targetDoc.fields[0]); + expect(filtered.length).toEqual(1); + expect((filtered[0] as FieldItem).field).toEqual(targetDoc.fields[0]); + filtered = MappingService.filterMappingsForField(tree.children, targetDoc.fields[0].fields[0]); + expect(filtered.length).toEqual(0); + }); + }); + + describe('removeAllMappingsForDocument()', () => { + it('should remove mappings for target document', () => { + expect(tree.children.length).toEqual(1); + MappingService.removeAllMappingsForDocument(tree, DocumentType.TARGET_BODY, targetDoc.documentId); + expect(tree.children.length).toEqual(0); + }); + + it('should remove mappings for source document', () => { + expect(tree.children.length).toEqual(1); + MappingService.removeAllMappingsForDocument(tree, DocumentType.SOURCE_BODY, sourceDoc.documentId); + expect(tree.children.length).toEqual(0); + }); + + it('should not remove mappings unrelated to the removed param', () => { + expect(tree.children.length).toEqual(1); + MappingService.removeAllMappingsForDocument(tree, DocumentType.PARAM, 'sourceParam1'); + expect(tree.children.length).toEqual(1); + }); + }); + + describe('removeStaleMappingsForDocument()', () => { + it('should remove mappings for removed source field', () => { + expect(tree.children[0].children.length).toEqual(4); + const orderPersonField = sourceDoc.fields[0].fields[1]; + expect(orderPersonField.name).toEqual('OrderPerson'); + sourceDoc.fields[0].fields.splice(1, 1); + MappingService.removeStaleMappingsForDocument(tree, sourceDoc); + expect(tree.children[0].children.length).toEqual(3); + }); + + it('should remove mappings for removed target field', () => { + expect(tree.children[0].children.length).toEqual(4); + const orderIdField = targetDoc.fields[0].fields[0]; + expect(orderIdField.name).toEqual('OrderId'); + targetDoc.fields[0].fields.splice(0, 1); + MappingService.removeStaleMappingsForDocument(tree, targetDoc); + expect(tree.children[0].children.length).toEqual(3); + }); + + it('should not remove mappings when unrelated field is removed', () => { + expect(tree.children[0].children.length).toEqual(4); + const shipToCountryField = targetDoc.fields[0].fields[2].fields[3]; + expect(shipToCountryField.name).toEqual('Country'); + targetDoc.fields[0].fields[2].fields.splice(3, 1); + MappingService.removeStaleMappingsForDocument(tree, targetDoc); + expect(tree.children[0].children.length).toEqual(4); + }); + }); + + describe('addChooseWhenOtherwise()', () => { + it('should add conditions', () => { + const orderIdFieldItem = tree.children[0].children[0]; + expect(orderIdFieldItem.children.length).toEqual(1); + MappingService.addChooseWhenOtherwise(orderIdFieldItem, orderIdFieldItem.children[0]); + expect(orderIdFieldItem.children.length).toEqual(1); + const chooseItem = orderIdFieldItem.children[0]; + expect(chooseItem instanceof ChooseItem).toBeTruthy(); + expect(chooseItem.children[0] instanceof WhenItem).toBeTruthy(); + expect(chooseItem.children[1] instanceof OtherwiseItem).toBeTruthy(); + }); + }); + + describe('mapToCondition()', () => { + it('should add to xpath', () => { + expect(tree.children[0].children[1] instanceof IfItem).toBeTruthy(); + const ifItem = tree.children[0].children[1] as IfItem; + expect(ifItem.expression).toEqual("/ns0:ShipOrder/ns0:OrderPerson != ''"); + MappingService.mapToCondition(ifItem, sourceDoc.fields[0].fields[1]); + expect(ifItem.expression).toEqual("/ns0:ShipOrder/ns0:OrderPerson != '', /ns0:ShipOrder/ns0:OrderPerson"); + }); + }); + + describe('mapToDocument()', () => { + it('should add ValueSelector', () => { + expect(tree.children.length).toEqual(1); + MappingService.mapToDocument(tree, sourceDoc.fields[0]); + expect(tree.children.length).toEqual(2); + expect(tree.children[1] instanceof ValueSelector).toBeTruthy(); + const selector = tree.children[1] as ValueSelector; + expect(selector.expression).toEqual('/ns0:ShipOrder'); + }); + }); + + describe('mapToField()', () => { + it('should add to xpath', () => { + const orderIdFieldItem = tree.children[0].children[0]; + orderIdFieldItem.children = []; + MappingService.mapToField(sourceDoc.fields[0].fields[0], orderIdFieldItem); + expect(orderIdFieldItem.children[0] instanceof ValueSelector); + const orderIdValueSelector = orderIdFieldItem.children[0] as ValueSelector; + expect(orderIdValueSelector.expression).toEqual('/ns0:ShipOrder/@OrderId'); + }); + }); + + describe('createValueSelector()', () => { + it('should create ValueSelector', () => { + const orderIdFieldItem = tree.children[0].children[0] as FieldItem; + expect(orderIdFieldItem.children[0] instanceof ValueSelector).toBeTruthy(); + orderIdFieldItem.children = []; + const valueSelector = MappingService.createValueSelector(orderIdFieldItem); + expect(valueSelector.valueType).toEqual(ValueType.ATTRIBUTE); + }); + }); + + describe('deleteMappingItem()', () => { + it('should delete', () => { + expect(tree.children[0].children.length).toEqual(4); + const orderIdValueSelector = tree.children[0].children[0].children[0] as ValueSelector; + MappingService.deleteMappingItem(orderIdValueSelector); + expect(tree.children[0].children.length).toEqual(3); + }); + }); describe('extractMappingLinks()', () => { it('should return IMappingLink[]', () => { - const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); - MappingSerializerService.deserialize(xsltFile, targetDoc, tree, paramsMap); const links = MappingService.extractMappingLinks(tree, paramsMap, sourceDoc); expect(links.length).toEqual(11); expect(links[0].sourceNodePath).toMatch('OrderId'); diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index dce0d2d62..0caacefe2 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -78,11 +78,13 @@ export class MappingService { item.children = item.children.reduce((acc, child) => { MappingService.doRemoveAllMappingsForSourceDocument(child, documentType, documentId); if ( - !(child instanceof ExpressionItem) || - !MappingService.hasStaleSourceDocument(child.expression as string, documentType, documentId) + child instanceof ExpressionItem && + MappingService.hasStaleSourceDocument(child.expression as string, documentType, documentId) ) { - acc.push(child); + return acc; } + if (child instanceof FieldItem && child.children.length === 0) return acc; + acc.push(child); return acc; }, [] as MappingItem[]); } @@ -110,9 +112,9 @@ export class MappingService { private static doRemoveStaleMappingsForTargetDocument(item: MappingTree | MappingItem, document: IDocument) { item.children = item.children.reduce((acc, child) => { MappingService.doRemoveStaleMappingsForTargetDocument(child, document); - if (child instanceof FieldItem && DocumentService.hasField(document, child.field)) { + if (child instanceof FieldItem && DocumentService.hasField(document, child.field) && child.children.length > 0) { acc.push(child); - } else if (!('isCondition' in child) || child.children.length > 0) { + } else if (child instanceof ConditionItem) { acc.push(child); } return acc; @@ -122,9 +124,11 @@ export class MappingService { private static doRemoveStaleMappingsForSourceDocument(item: MappingTree | MappingItem, document: IDocument) { item.children = item.children.reduce((acc, child) => { MappingService.doRemoveStaleMappingsForSourceDocument(child, document); - if ('expression' in child && !MappingService.hasStaleSourceField(child.expression as string, document)) { - acc.push(child); + if ('expression' in child && MappingService.hasStaleSourceField(child.expression as string, document)) { + return acc; } + if (child instanceof FieldItem && child.children.length === 0) return acc; + acc.push(child); return acc; }, [] as MappingItem[]); } From 3d609beccf9629a7651175f49ad5ddecc15d78e7 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Thu, 15 Aug 2024 15:25:53 -0400 Subject: [PATCH 331/471] fix: Add unit tests for VisualizationService (#348) --- packages/ui/src/services/mapping.service.ts | 19 +- .../services/visualization.service.test.ts | 261 +++++++++++++----- 2 files changed, 208 insertions(+), 72 deletions(-) diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 0caacefe2..7728ed0d6 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -204,6 +204,7 @@ export class MappingService { } static mapToCondition(condition: MappingItem, source: PrimitiveDocument | IField) { + MappingService.registerNamespaceFromField(condition.mappingTree, source); const absPath = XPathService.toXPath(source, condition.mappingTree.namespaceMap); const relativePath = MappingService.getRelativePath(condition, absPath); if (condition instanceof ForEachItem) { @@ -226,6 +227,7 @@ export class MappingService { valueSelector = MappingService.createValueSelector(mappingTree); mappingTree.children.push(valueSelector); } + MappingService.registerNamespaceFromField(mappingTree, source); const path = XPathService.toXPath(source, mappingTree.namespaceMap); valueSelector.expression = XPathService.addSource(valueSelector.expression, path); } @@ -236,6 +238,7 @@ export class MappingService { valueSelector = MappingService.createValueSelector(targetFieldItem); targetFieldItem.children.push(valueSelector); } + MappingService.registerNamespaceFromField(targetFieldItem.mappingTree, source); const absPath = XPathService.toXPath(source, targetFieldItem.mappingTree.namespaceMap); const relativePath = MappingService.getRelativePath(valueSelector, absPath); valueSelector.expression = XPathService.addSource(valueSelector.expression, relativePath); @@ -243,15 +246,19 @@ export class MappingService { static createFieldItem(parentItem: MappingItem, field: IField) { const fieldItem = new FieldItem(parentItem, field); - const existingns = Object.entries(fieldItem.mappingTree.namespaceMap).find( + parentItem.children.push(fieldItem); + return fieldItem; + } + + private static registerNamespaceFromField(mappingTree: MappingTree, field: IField) { + if (!field.namespaceURI) return; + const existingns = Object.entries(mappingTree.namespaceMap).find( ([_prefix, uri]) => field.namespaceURI && uri === field.namespaceURI, ); - if (!existingns && fieldItem.field.namespaceURI) { - const prefix = fieldItem.field.namespacePrefix ?? MappingService.createNSPrefix(fieldItem.mappingTree); - fieldItem.mappingTree.namespaceMap[prefix] = fieldItem.field.namespaceURI; + if (!existingns && field.namespaceURI) { + const prefix = field.namespacePrefix ?? MappingService.createNSPrefix(mappingTree); + mappingTree.namespaceMap[prefix] = field.namespaceURI; } - parentItem.children.push(fieldItem); - return fieldItem; } private static createNSPrefix(mappingTree: MappingTree) { diff --git a/packages/ui/src/services/visualization.service.test.ts b/packages/ui/src/services/visualization.service.test.ts index 62ee8efe8..bc2b53423 100644 --- a/packages/ui/src/services/visualization.service.test.ts +++ b/packages/ui/src/services/visualization.service.test.ts @@ -1,79 +1,208 @@ import { VisualizationService } from './visualization.service'; -import { TargetDocumentNodeData, TargetFieldNodeData, TargetNodeData } from '../models/visualization'; -import { MappingTree } from '../models/mapping'; +import { + DocumentNodeData, + FieldNodeData, + MappingNodeData, + TargetDocumentNodeData, + TargetFieldNodeData, + TargetNodeData, +} from '../models/visualization'; +import { ChooseItem, FieldItem, IfItem, MappingTree, ValueSelector } from '../models/mapping'; import { TestUtil } from '../test/test-util'; +import { XmlSchemaDocument } from './xml-schema-document.service'; +import { MappingSerializerService } from './mapping-serializer.service'; +import { IDocument } from '../models/document'; +import * as fs from 'fs'; describe('VisualizationService', () => { - const targetDoc = TestUtil.createTargetOrderDoc(); + const xsltFile = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl').toString(); + let sourceDoc: XmlSchemaDocument; + let sourceDocNode: DocumentNodeData; + let targetDoc: XmlSchemaDocument; + let paramsMap: Map<string, IDocument>; + let tree: MappingTree; + let targetDocNode: TargetDocumentNodeData; - describe('applyIf()', () => { - it('should add If', () => { - const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); - let docNode = new TargetDocumentNodeData(targetDoc, tree); - let docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); - expect(docChildren.length).toEqual(1); - let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); - expect(shipOrderChildren.length).toEqual(4); - expect(shipOrderChildren[0].title).toEqual('OrderId'); - VisualizationService.applyIf(shipOrderChildren[0] as TargetNodeData); - expect(tree.children[0].name).toEqual('field-ShipOrder'); - expect(tree.children[0].children[0].name).toEqual('if'); - docNode = new TargetDocumentNodeData(targetDoc, tree); - docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); - shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); - expect(shipOrderChildren[0].title).toEqual('if'); - const ifChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[0]); - expect(ifChildren.length).toEqual(1); - expect(ifChildren[0].title).toEqual('OrderId'); - }); + beforeEach(() => { + sourceDoc = TestUtil.createSourceOrderDoc(); + sourceDocNode = new DocumentNodeData(sourceDoc); + targetDoc = TestUtil.createTargetOrderDoc(); + paramsMap = TestUtil.createParameterMap(); + tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); }); - describe('applyChooseWhenOtherwise()', () => { - it('should add Choose-When-Otherwise', () => { - const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); - let docNode = new TargetDocumentNodeData(targetDoc, tree); - let docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); - expect(docChildren.length).toEqual(1); - let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); - expect(shipOrderChildren.length).toEqual(4); - expect(shipOrderChildren[1].title).toEqual('OrderPerson'); - VisualizationService.applyChooseWhenOtherwise(shipOrderChildren[1] as TargetNodeData); - expect(tree.children[0].name).toEqual('field-ShipOrder'); - expect(tree.children[0].children[0].name).toEqual('choose'); - docNode = new TargetDocumentNodeData(targetDoc, tree); - docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); - shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); - expect(shipOrderChildren[1].title).toEqual('choose'); - const chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[1]); - expect(chooseChildren.length).toEqual(2); - expect(chooseChildren[0].title).toEqual('when'); - const whenChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[0]); - expect(whenChildren.length).toEqual(1); - expect(whenChildren[0].title).toEqual('OrderPerson'); - expect(chooseChildren[1].title).toEqual('otherwise'); - const otherwiseChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[1]); - expect(otherwiseChildren.length).toEqual(1); - expect(otherwiseChildren[0].title).toEqual('OrderPerson'); + describe('without pre-populated mappings', () => { + beforeEach(() => { + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); + }); + + describe('testNodePair()', () => { + it('should sort source, target', () => { + const sourceDocChildren = VisualizationService.generateStructuredDocumentChildren(sourceDocNode); + const targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + const { sourceNode, targetNode } = VisualizationService.testNodePair( + targetDocChildren[0], + sourceDocChildren[0], + ); + expect(sourceNode).toEqual(sourceDocChildren[0]); + expect(targetNode).toEqual(targetDocChildren[0]); + }); + }); + + describe('applyIf()', () => { + it('should add If', () => { + let docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + expect(docChildren.length).toEqual(1); + let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren.length).toEqual(4); + expect(shipOrderChildren[0].title).toEqual('OrderId'); + VisualizationService.applyIf(shipOrderChildren[0] as TargetNodeData); + expect(tree.children[0].name).toEqual('field-ShipOrder'); + expect(tree.children[0].children[0].name).toEqual('if'); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); + docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren[0].title).toEqual('if'); + const ifChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[0]); + expect(ifChildren.length).toEqual(1); + expect(ifChildren[0].title).toEqual('OrderId'); + }); + }); + + describe('applyChooseWhenOtherwise()', () => { + it('should add Choose-When-Otherwise', () => { + let docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + expect(docChildren.length).toEqual(1); + let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren.length).toEqual(4); + expect(shipOrderChildren[1].title).toEqual('OrderPerson'); + VisualizationService.applyChooseWhenOtherwise(shipOrderChildren[1] as TargetNodeData); + expect(tree.children[0].name).toEqual('field-ShipOrder'); + expect(tree.children[0].children[0].name).toEqual('choose'); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); + docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren[1].title).toEqual('choose'); + const chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[1]); + expect(chooseChildren.length).toEqual(2); + expect(chooseChildren[0].title).toEqual('when'); + const whenChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[0]); + expect(whenChildren.length).toEqual(1); + expect(whenChildren[0].title).toEqual('OrderPerson'); + expect(chooseChildren[1].title).toEqual('otherwise'); + const otherwiseChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[1]); + expect(otherwiseChildren.length).toEqual(1); + expect(otherwiseChildren[0].title).toEqual('OrderPerson'); + }); + + it('should add Choose-When-Otherwise on Document', () => { + expect(tree.children.length).toEqual(0); + VisualizationService.applyChooseWhenOtherwise(targetDocNode); + expect(tree.children[0] instanceof ChooseItem).toBeTruthy(); + }); + }); + + describe('applyForEach()', () => { + it('should add for-each', () => { + let docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + expect(docChildren.length).toEqual(1); + let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren.length).toEqual(4); + expect(shipOrderChildren[3].title).toEqual('Item'); + VisualizationService.applyForEach(shipOrderChildren[3] as TargetFieldNodeData); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); + docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren[3].title).toEqual('for-each'); + const forEachChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[3]); + expect(forEachChildren.length).toEqual(1); + expect(forEachChildren[0].title).toEqual('Item'); + }); + }); + + describe('applyValueSelector()', () => { + it('should apply value selector', () => { + expect(tree.children.length).toEqual(0); + const docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + VisualizationService.applyValueSelector(docChildren[0] as TargetNodeData); + expect(tree.children.length).toEqual(1); + expect(tree.children[0].children[0] instanceof ValueSelector).toBeTruthy(); + }); + }); + + describe('engageMapping()', () => { + it('should engage mapping to a MappingItem', () => { + const sourceDocChildren = VisualizationService.generateStructuredDocumentChildren(sourceDocNode); + const sourceShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(sourceDocChildren[0]); + let targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + let targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + VisualizationService.applyIf(targetShipOrderChildren[1] as TargetNodeData); + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + const ifItem = tree.children[0].children[0] as IfItem; + expect(ifItem.expression).toEqual(''); + VisualizationService.engageMapping( + tree, + sourceShipOrderChildren[1] as FieldNodeData, + targetShipOrderChildren[1] as TargetNodeData, + ); + expect(ifItem.expression).toEqual('/ns0:ShipOrder/ns0:OrderPerson'); + }); + + it('should engage mapping to a Document', () => { + const sourceDocChildren = VisualizationService.generateStructuredDocumentChildren(sourceDocNode); + expect(tree.children.length).toEqual(0); + VisualizationService.engageMapping(tree, sourceDocChildren[0] as FieldNodeData, targetDocNode); + expect(tree.children[0] instanceof ValueSelector).toBeTruthy(); + const selector = tree.children[0] as ValueSelector; + expect(selector.expression).toEqual('/ns0:ShipOrder'); + }); + + it('should engage mapping to a field', () => { + const sourceDocChildren = VisualizationService.generateStructuredDocumentChildren(sourceDocNode); + const sourceShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(sourceDocChildren[0]); + const targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + const targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(tree.children.length).toEqual(0); + VisualizationService.engageMapping( + tree, + sourceShipOrderChildren[1] as FieldNodeData, + targetShipOrderChildren[1] as TargetNodeData, + ); + expect(tree.children[0] instanceof FieldItem).toBeTruthy(); + expect(tree.children[0].children[0] instanceof FieldItem).toBeTruthy(); + expect(tree.children[0].children[0].children[0] instanceof ValueSelector).toBeTruthy(); + const selector = tree.children[0].children[0].children[0] as ValueSelector; + expect(selector.expression).toEqual('/ns0:ShipOrder/ns0:OrderPerson'); + }); }); }); - describe('applyForEach()', () => { - it('should add for-each', () => { - const tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); - let docNode = new TargetDocumentNodeData(targetDoc, tree); - let docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); - expect(docChildren.length).toEqual(1); - let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); - expect(shipOrderChildren.length).toEqual(4); - expect(shipOrderChildren[3].title).toEqual('Item'); - VisualizationService.applyForEach(shipOrderChildren[3] as TargetFieldNodeData); - docNode = new TargetDocumentNodeData(targetDoc, tree); - docChildren = VisualizationService.generateStructuredDocumentChildren(docNode); - shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); - expect(shipOrderChildren[3].title).toEqual('for-each'); - const forEachChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[3]); - expect(forEachChildren.length).toEqual(1); - expect(forEachChildren[0].title).toEqual('Item'); + describe('with pre-populated mappings', () => { + beforeEach(() => { + MappingSerializerService.deserialize(xsltFile, targetDoc, tree, paramsMap); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); + }); + + describe('allowIfChoose()', () => { + it('should test if or choose is allowed', () => { + const targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + const shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(VisualizationService.allowIfChoose(targetDocNode)).toBeTruthy(); + expect(VisualizationService.allowIfChoose(targetDocChildren[0] as TargetNodeData)).toBeTruthy(); + expect(VisualizationService.allowIfChoose(shipOrderChildren[1] as TargetNodeData)).toBeFalsy(); + }); + }); + + describe('deleteMappingItem()', () => { + it('should delete', () => { + const targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(shipOrderChildren[1] instanceof MappingNodeData).toBeTruthy(); + VisualizationService.deleteMappingItem(shipOrderChildren[1] as TargetNodeData); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(shipOrderChildren[1] instanceof TargetFieldNodeData).toBeTruthy(); + }); }); }); }); From 2abdb207edc834f2fa822427e1385961460bfa54 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Mon, 19 Aug 2024 14:23:49 -0400 Subject: [PATCH 332/471] fix: Add unit tests for XmlSchemaDocumentService (#348) --- .../xml-schema-document.service.test.ts | 22 ++++- .../services/xml-schema-document.service.ts | 95 +++++++------------ .../src/XmlSchemaCollection.test.ts | 23 ++++- .../xml-schema-ts/src/XmlSchemaCollection.ts | 13 +-- .../xml-schema-ts/src/utils/ObjectMap.test.ts | 33 +++++++ packages/xml-schema-ts/src/utils/ObjectMap.ts | 47 +++++---- test-resources/TestDocument.xsd | 46 +++++++++ 7 files changed, 190 insertions(+), 89 deletions(-) create mode 100644 packages/xml-schema-ts/src/utils/ObjectMap.test.ts create mode 100644 test-resources/TestDocument.xsd diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index 3d0d6e7e0..039dabba9 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -2,11 +2,13 @@ import { XmlSchemaDocumentService, XmlSchemaField } from './xml-schema-document. import * as fs from 'fs'; import { BODY_DOCUMENT_ID } from '../models/document'; import { DocumentType } from '../models/path'; +import { Types } from '../models/types'; describe('XmlSchemaDocumentService', () => { const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); + const testXsd = fs.readFileSync(__dirname + '/../../../../test-resources/TestDocument.xsd').toString(); - it('should parse the xml schema', () => { + it('should parse ShipOrder XML schema', () => { const document = XmlSchemaDocumentService.createXmlSchemaDocument( DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID, @@ -17,6 +19,24 @@ describe('XmlSchemaDocumentService', () => { const fields: XmlSchemaField[] = []; XmlSchemaDocumentService.populateElement(document, fields, shipOrder); expect(fields.length > 0).toBeTruthy(); + expect(fields[0].name).toEqual('ShipOrder'); + expect(fields[0].fields[3].name).toEqual('Item'); + const itemTitleField = fields[0].fields[3].fields[0]; + expect(itemTitleField.name).toEqual('Title'); + expect(itemTitleField.type).not.toEqual(Types.Container); + }); + + it('should parse TestDocument XML schema', () => { + const document = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.TARGET_BODY, + BODY_DOCUMENT_ID, + testXsd, + ); + expect(document).toBeDefined(); + const testDoc = XmlSchemaDocumentService.getFirstElement(document.xmlSchema); + const fields: XmlSchemaField[] = []; + XmlSchemaDocumentService.populateElement(document, fields, testDoc); + expect(fields.length > 0).toBeTruthy(); }); it('should create XML Schema Document', () => { diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index bea0bfaf1..c56eac102 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -16,7 +16,6 @@ import { XmlSchemaGroup, XmlSchemaGroupParticle, XmlSchemaGroupRef, - XmlSchemaObjectBase, XmlSchemaParticle, XmlSchemaRef, XmlSchemaSequence, @@ -80,23 +79,6 @@ export class XmlSchemaDocumentService { return xmlSchema.getElements().values().next().value; } - /** - * @deprecated - */ - static throwNotYetSupported(object: XmlSchemaObjectBase) { - /* eslint-disable @typescript-eslint/no-explicit-any */ - const cache: any[] = []; - throw Error( - `Not yet supported: ${JSON.stringify(object, (_key, value) => { - if (typeof value === 'object' && value !== null) { - if (cache.includes(value)) return; - cache.push(value); - } - if (typeof value === 'bigint') return value.toString(); - })}`, - ); - } - /** * Populate XML Element as a field into {@link fields} array passed in as an argument. * @param parent @@ -114,27 +96,23 @@ export class XmlSchemaDocumentService { fields.push(field); const schemaType = element.getSchemaType(); - if (schemaType == null) { - const typeName = element.getSchemaTypeName()?.getLocalPart(); - field.type = (typeName && Types[typeName as keyof typeof Types]) || Types.AnyType; + if (schemaType instanceof XmlSchemaSimpleType) { + const simple = schemaType as XmlSchemaSimpleType; + field.type = Types[simple.getName() as keyof typeof Types] || Types.AnyType; return; } field.type = Types.Container; - if (schemaType instanceof XmlSchemaSimpleType) { - XmlSchemaDocumentService.throwNotYetSupported(element); - } else if (schemaType instanceof XmlSchemaComplexType) { + if (schemaType instanceof XmlSchemaComplexType) { const complex = schemaType as XmlSchemaComplexType; const attributes: XmlSchemaAttributeOrGroupRef[] = complex.getAttributes(); attributes.forEach((attr) => { XmlSchemaDocumentService.populateAttributeOrGroupRef(field, field.fields, attr); }); XmlSchemaDocumentService.populateParticle(field, field.fields, complex.getParticle()); - } else { - XmlSchemaDocumentService.throwNotYetSupported(element); } } - static populateAttributeOrGroupRef( + private static populateAttributeOrGroupRef( parent: XmlSchemaParentType, fields: XmlSchemaField[], attr: XmlSchemaAttributeOrGroupRef, @@ -143,8 +121,6 @@ export class XmlSchemaDocumentService { XmlSchemaDocumentService.populateAttribute(parent, fields, attr); } else if (attr instanceof XmlSchemaAttributeGroupRef) { XmlSchemaDocumentService.populateAttributeGroupRef(parent, fields, attr); - } else { - XmlSchemaDocumentService.throwNotYetSupported(attr); } } @@ -179,7 +155,7 @@ export class XmlSchemaDocumentService { } } - static populateAttributeGroupRef( + private static populateAttributeGroupRef( parent: XmlSchemaParentType, fields: XmlSchemaField[], groupRef: XmlSchemaAttributeGroupRef, @@ -188,7 +164,7 @@ export class XmlSchemaDocumentService { XmlSchemaDocumentService.populateAttributeGroup(parent, fields, ref.getTarget()); } - static populateAttributeGroupMember( + private static populateAttributeGroupMember( parent: XmlSchemaParentType, fields: XmlSchemaField[], member: XmlSchemaAttributeGroupMember, @@ -199,12 +175,10 @@ export class XmlSchemaDocumentService { XmlSchemaDocumentService.populateAttributeGroup(parent, fields, member); } else if (member instanceof XmlSchemaAttributeGroupRef) { XmlSchemaDocumentService.populateAttributeGroupRef(parent, fields, member); - } else { - XmlSchemaDocumentService.throwNotYetSupported(member); } } - static populateAttributeGroup( + private static populateAttributeGroup( parent: XmlSchemaParentType, fields: XmlSchemaField[], group: XmlSchemaAttributeGroup | null, @@ -219,7 +193,11 @@ export class XmlSchemaDocumentService { ); } - static populateParticle(parent: XmlSchemaParentType, fields: XmlSchemaField[], particle: XmlSchemaParticle | null) { + private static populateParticle( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + particle: XmlSchemaParticle | null, + ) { if (particle == null) { return; } @@ -230,18 +208,15 @@ export class XmlSchemaDocumentService { } else if (particle instanceof XmlSchemaGroupParticle) { XmlSchemaDocumentService.populateGroupParticle(parent, fields, particle); } else if (particle instanceof XmlSchemaGroupRef) { - XmlSchemaDocumentService.populateGroupRef(fields, particle); - } else { - XmlSchemaDocumentService.throwNotYetSupported(particle); + XmlSchemaDocumentService.populateGroupRef(parent, fields, particle); } } - static populateAny(_fields: XmlSchemaField[], schemaAny: XmlSchemaAny) { + private static populateAny(_fields: XmlSchemaField[], _schemaAny: XmlSchemaAny) { /* TODO - xs:any allows arbitrary elements */ - XmlSchemaDocumentService.throwNotYetSupported(schemaAny); } - static populateGroupParticle( + private static populateGroupParticle( parent: XmlSchemaParentType, fields: XmlSchemaField[], groupParticle: XmlSchemaGroupParticle | null, @@ -268,50 +243,48 @@ export class XmlSchemaDocumentService { all .getItems() .forEach((member: XmlSchemaAllMember) => XmlSchemaDocumentService.populateAllMember(parent, fields, member)); - } else { - XmlSchemaDocumentService.throwNotYetSupported(groupParticle); } } - static populateGroupRef(_fields: XmlSchemaField[], groupRef: XmlSchemaGroupRef) { - XmlSchemaDocumentService.throwNotYetSupported(groupRef); + private static populateGroupRef(parent: XmlSchemaParentType, fields: XmlSchemaField[], groupRef: XmlSchemaGroupRef) { + XmlSchemaDocumentService.populateGroupParticle(parent, fields, groupRef.getParticle()); } - static populateChoiceMember(parent: XmlSchemaParentType, fields: XmlSchemaField[], member: XmlSchemaChoiceMember) { - if (member instanceof XmlSchemaParticle) { - XmlSchemaDocumentService.populateParticle(parent, fields, member); + private static populateChoiceMember( + parent: XmlSchemaParentType, + fields: XmlSchemaField[], + member: XmlSchemaChoiceMember, + ) { + if (member instanceof XmlSchemaGroupRef) { + XmlSchemaDocumentService.populateGroupRef(parent, fields, member); } else if (member instanceof XmlSchemaGroup) { XmlSchemaDocumentService.populateGroup(parent, fields, member); - } else { - XmlSchemaDocumentService.throwNotYetSupported(member); + } else if (member instanceof XmlSchemaParticle) { + XmlSchemaDocumentService.populateParticle(parent, fields, member); } } - static populateSequenceMember( + private static populateSequenceMember( parent: XmlSchemaParentType, fields: XmlSchemaField[], member: XmlSchemaSequenceMember, ) { - if (member instanceof XmlSchemaParticle) { - XmlSchemaDocumentService.populateParticle(parent, fields, member); + if (member instanceof XmlSchemaGroupRef) { + XmlSchemaDocumentService.populateGroupRef(parent, fields, member); } else if (member instanceof XmlSchemaGroup) { XmlSchemaDocumentService.populateGroup(parent, fields, member); - } else { - XmlSchemaDocumentService.throwNotYetSupported(member); + } else if (member instanceof XmlSchemaParticle) { + XmlSchemaDocumentService.populateParticle(parent, fields, member); } } - static populateAllMember(parent: XmlSchemaParentType, fields: XmlSchemaField[], member: XmlSchemaAllMember) { + private static populateAllMember(parent: XmlSchemaParentType, fields: XmlSchemaField[], member: XmlSchemaAllMember) { if (member instanceof XmlSchemaParticle) { XmlSchemaDocumentService.populateParticle(parent, fields, member); - } else if (member instanceof XmlSchemaGroup) { - XmlSchemaDocumentService.populateGroup(parent, fields, member); - } else { - XmlSchemaDocumentService.throwNotYetSupported(member); } } - static populateGroup(parent: XmlSchemaParentType, fields: XmlSchemaField[], group: XmlSchemaGroup) { + private static populateGroup(parent: XmlSchemaParentType, fields: XmlSchemaField[], group: XmlSchemaGroup) { XmlSchemaDocumentService.populateParticle(parent, fields, group.getParticle()); } } diff --git a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts index 40b09d1b7..1ec660759 100644 --- a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts +++ b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts @@ -6,10 +6,14 @@ import { XmlSchemaAttribute } from './attribute/XmlSchemaAttribute'; import { XmlSchemaUse } from './XmlSchemaUse'; import { XmlSchemaSequence } from './particle/XmlSchemaSequence'; import { XmlSchemaElement } from './particle/XmlSchemaElement'; +import { XmlSchemaAttributeGroupRef } from './attribute/XmlSchemaAttributeGroupRef'; +import { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; describe('XmlSchemaCollection', () => { const orderXsd = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrder.xsd').toString(); - it('should parse XML schema', () => { + const testXsd = fs.readFileSync(__dirname + '/../../../test-resources/TestDocument.xsd').toString(); + + it('should parse ShipOrder XML schema', () => { const collection = new XmlSchemaCollection(); const xmlSchema = collection.read(orderXsd, () => {}); const attributes = xmlSchema.getAttributes(); @@ -40,7 +44,7 @@ describe('XmlSchemaCollection', () => { expect(shipOrderSequenceMembers.length).toBe(3); const orderPerson = shipOrderSequenceMembers[0] as XmlSchemaElement; - expect(orderPerson.getSchemaType()).toBeNull(); + expect(orderPerson.getSchemaType() instanceof XmlSchemaSimpleType).toBeTruthy(); expect(orderPerson.getSchemaTypeName()?.getLocalPart()).toEqual('string'); expect(orderPerson.getName()).toEqual('OrderPerson'); expect(orderPerson.getWireName()?.getNamespaceURI()).toEqual('io.kaoto.datamapper.poc.test'); @@ -73,4 +77,19 @@ describe('XmlSchemaCollection', () => { const itemPrice = itemSequenceMembers[3] as XmlSchemaElement; expect(itemPrice.getSchemaTypeName()?.getLocalPart()).toEqual('decimal'); }); + + it('should parse TestDocument XML schema', () => { + const collection = new XmlSchemaCollection(); + const xmlSchema = collection.read(testXsd, () => {}); + const attributes = xmlSchema.getAttributes(); + expect(attributes.size).toEqual(0); + const elements = xmlSchema.getElements(); + expect(elements.size).toEqual(1); + const testDocumentElement = elements.get(new QName('io.kaoto.datamapper.poc.test', 'TestDocument')); + const testDocumentComplexType = testDocumentElement!.getSchemaType() as XmlSchemaComplexType; + const testDocumentAttributes = testDocumentComplexType.getAttributes(); + expect(testDocumentAttributes.length).toBe(1); + const attrGroupRef = (testDocumentAttributes[0] as XmlSchemaAttributeGroupRef).getRef(); + expect(attrGroupRef.getTarget()).toBeTruthy(); + }); }); diff --git a/packages/xml-schema-ts/src/XmlSchemaCollection.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.ts index 907832d53..0cbcfbcce 100644 --- a/packages/xml-schema-ts/src/XmlSchemaCollection.ts +++ b/packages/xml-schema-ts/src/XmlSchemaCollection.ts @@ -393,7 +393,7 @@ export class XmlSchemaCollection { * @return the schema. */ schemaForNamespace(uri: string) { - for (const entry of this.schemas.entries()) { + for (const entry of Array.from(this.schemas.entries())) { if (entry[0].getNamespace() === uri) { return entry[1]; } @@ -513,7 +513,7 @@ export class XmlSchemaCollection { return null; } const uri = schemaAttributeName.getNamespaceURI(); - for (const entry of this.schemas.entries()) { + for (const entry of Array.from(this.schemas.entries())) { if (entry[0].getNamespace() === uri) { const attribute = entry[1].getAttributeByQName(schemaAttributeName); if (attribute != null) { @@ -535,7 +535,7 @@ export class XmlSchemaCollection { return null; } const uri = qname.getNamespaceURI(); - for (const entry of this.schemas.entries()) { + for (const entry of Array.from(this.schemas.entries())) { if (entry[0].getNamespace() === uri) { const element = entry[1].getElementByQName(qname); if (element != null) { @@ -551,7 +551,8 @@ export class XmlSchemaCollection { return null; } const uri = name.getNamespaceURI(); - for (const entry of this.schemas.entries()) { + const entries = this.schemas.entries(); + for (const entry of Array.from(this.schemas.entries())) { if (entry[0].getNamespace() === uri) { const group = entry[1].getAttributeGroupByQName(name); if (group != null) { @@ -567,7 +568,7 @@ export class XmlSchemaCollection { return null; } const uri = name.getNamespaceURI(); - for (const entry of this.schemas.entries()) { + for (const entry of Array.from(this.schemas.entries())) { if (entry[0].getNamespace() === uri) { const group = entry[1].getGroupByQName(name); if (group != null) { @@ -583,7 +584,7 @@ export class XmlSchemaCollection { return null; } const uri = name.getNamespaceURI(); - for (const entry of this.schemas.entries()) { + for (const entry of Array.from(this.schemas.entries())) { if (entry[0].getNamespace() === uri) { const notation = entry[1].getNotationByQName(name); if (notation != null) { diff --git a/packages/xml-schema-ts/src/utils/ObjectMap.test.ts b/packages/xml-schema-ts/src/utils/ObjectMap.test.ts new file mode 100644 index 000000000..ed776a44f --- /dev/null +++ b/packages/xml-schema-ts/src/utils/ObjectMap.test.ts @@ -0,0 +1,33 @@ +import { QNameMap, SchemaKeyMap } from './ObjectMap'; +import { XmlSchema } from '../XmlSchema'; +import { SchemaKey } from '../SchemaKey'; +import { QName } from '../QName'; + +describe('ObjectMap', () => { + describe('SchemaKeyMap', () => { + it('keys(), values() and entries() should work', () => { + const map = new SchemaKeyMap<XmlSchema>(); + map.set(new SchemaKey('a', 'b'), new XmlSchema()); + map.set(new SchemaKey('c', 'd'), new XmlSchema()); + let keys = map.keys(); + expect(keys.next().value.getNamespace()).toEqual('a'); + expect(keys.next().value.getNamespace()).toEqual('c'); + keys = map.keys(); + const keysArray = Array.from(keys); + expect(keysArray.length).toEqual(2); + const values = map.values(); + expect(Array.from(values).length).toEqual(2); + const entries = map.entries(); + expect(Array.from(entries).length).toEqual(2); + }); + }); + + describe('QNameMap', () => { + it('should ignore QName prefix', () => { + const map = new QNameMap<XmlSchema>(); + map.set(new QName('a', 'b'), new XmlSchema()); + map.set(new QName('c', 'd'), new XmlSchema()); + expect(map.get(new QName('a', 'b', 'c'))).toBeTruthy(); + }); + }); +}); diff --git a/packages/xml-schema-ts/src/utils/ObjectMap.ts b/packages/xml-schema-ts/src/utils/ObjectMap.ts index 3c4d4d2b1..587a6b524 100644 --- a/packages/xml-schema-ts/src/utils/ObjectMap.ts +++ b/packages/xml-schema-ts/src/utils/ObjectMap.ts @@ -8,19 +8,19 @@ abstract class ObjectMap<K, V> { private delegate = new Map<string, V>(); get(key: K) { - return this.delegate.get(JSON.stringify(key)); + return this.delegate.get(this.keyToString(key)); } set(key: K, value: V) { - this.delegate.set(JSON.stringify(key), value); + this.delegate.set(this.keyToString(key), value); } has(key: K) { - return this.delegate.has(JSON.stringify(key)); + return this.delegate.has(this.keyToString(key)); } delete(key: K) { - this.delegate.delete(JSON.stringify(key)); + this.delegate.delete(this.keyToString(key)); } get size() { @@ -31,19 +31,20 @@ abstract class ObjectMap<K, V> { this.delegate.clear(); } - abstract newKeyInstance(stringified: string): K; + abstract stringToKey(stringified: string): K; + abstract keyToString(key: K): string; - keys() { + keys(): IterableIterator<K> { const delegateKeys = this.delegate.keys(); - return new KeysBridge<K>(delegateKeys, this.newKeyInstance); + return new KeysBridge<K>(delegateKeys, this.stringToKey); } entries(): IterableIterator<[K, V]> { const delegateEntries = this.delegate.entries(); - return new EntriesBridge<K, V>(delegateEntries, this.newKeyInstance); + return new EntriesBridge<K, V>(delegateEntries, this.stringToKey); } - values() { + values(): IterableIterator<V> { return this.delegate.values(); } } @@ -51,7 +52,7 @@ abstract class ObjectMap<K, V> { class KeysBridge<K> implements IterableIterator<K> { constructor( private delegateKeys: IterableIterator<string>, - private newKeyInstance: (stringifiedKey: string) => K, + private stringToKey: (stringifiedKey: string) => K, ) {} [Symbol.iterator](): IterableIterator<K> { @@ -59,20 +60,20 @@ class KeysBridge<K> implements IterableIterator<K> { } /* eslint-disable @typescript-eslint/no-explicit-any */ - next(): IteratorResult<K, any> { + next(): IteratorResult<K, K> { const next = this.delegateKeys.next(); if (!next.value) { return next as any; } - const key: K = this.newKeyInstance(next.value); - return { value: key, done: true }; + const key: K = this.stringToKey(next.value); + return { value: key }; } } class EntriesBridge<K, V> implements IterableIterator<[K, V]> { constructor( private delegateEntries: IterableIterator<[string, V]>, - private newKeyInstance: (stringifiedKey: string) => K, + private stringToKey: (stringifiedKey: string) => K, ) {} [Symbol.iterator](): IterableIterator<[K, V]> { @@ -85,19 +86,27 @@ class EntriesBridge<K, V> implements IterableIterator<[K, V]> { if (!next.value) { return next as any; } - const key: K = this.newKeyInstance(next.value[0]); - return { value: [key, next.value[1]], done: true }; + const key: K = this.stringToKey(next.value[0]); + return { value: [key, next.value[1]] }; } } export class QNameMap<V> extends ObjectMap<QName, V> { - newKeyInstance(stringified: string): QName { - return Object.assign(new QName(null, null), JSON.parse(stringified)); + stringToKey(stringified: string): QName { + const obj = Object.assign(new QName(null, null), JSON.parse(stringified)); + obj.prefix = undefined; + return obj; + } + keyToString(key: QName): string { + return JSON.stringify(new QName(key.getNamespaceURI(), key.getLocalPart())); } } export class SchemaKeyMap<V> extends ObjectMap<SchemaKey, V> { - newKeyInstance(stringified: string): SchemaKey { + stringToKey(stringified: string): SchemaKey { return Object.assign(new SchemaKey(), JSON.parse(stringified)); } + keyToString(key: SchemaKey): string { + return JSON.stringify(key); + } } diff --git a/test-resources/TestDocument.xsd b/test-resources/TestDocument.xsd new file mode 100644 index 000000000..ce46edb95 --- /dev/null +++ b/test-resources/TestDocument.xsd @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="io.kaoto.datamapper.poc.test" xmlns:ns0="io.kaoto.datamapper.poc.test"> + <xs:group name="Group1"> + <xs:sequence> + <xs:element name="Group1Element1" type="xs:string"/> + <xs:element name="Group1Element2" type="xs:string"/> + </xs:sequence> + </xs:group> + <xs:attributeGroup name="AttrGroup1"> + <xs:attribute name="AttrGroup1Attr1" type="xs:string"/> + <xs:attribute name="AttrGroup1Attr2" type="xs:string"/> + </xs:attributeGroup> + <xs:element name="TestDocument"> + <xs:complexType> + <xs:sequence> + <xs:element name="ChoiceElement"> + <xs:complexType> + <xs:choice> + <xs:element name="Choice1" type="xs:string" /> + <xs:element name="Choice2" type="xs:string" /> + <xs:group ref="ns0:Group1"/> + </xs:choice> + </xs:complexType> + </xs:element> + <xs:element name="AllElement"> + <xs:complexType> + <xs:all> + <xs:element name="All1" type="xs:string" /> + <xs:element name="All2" type="xs:string" /> + </xs:all> + </xs:complexType> + </xs:element> + <xs:element name="AnyElement"> + <xs:complexType> + <xs:sequence> + <xs:group ref="ns0:Group1"/> + <xs:any minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:group ref="ns0:Group1"/> + </xs:sequence> + <xs:attributeGroup ref="ns0:AttrGroup1"/> + </xs:complexType> + </xs:element> +</xs:schema> \ No newline at end of file From b5283ea67f96e561a3afe413732dfb4e2a6f745d Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Mon, 19 Aug 2024 16:09:02 -0400 Subject: [PATCH 333/471] fix: Add unit tests for context providers (#348) --- .../ui/src/providers/CanvasProvider.test.tsx | 111 ++++++++++++++++++ .../src/providers/DataMapperProvider.test.tsx | 41 +++++++ 2 files changed, 152 insertions(+) create mode 100644 packages/ui/src/providers/CanvasProvider.test.tsx create mode 100644 packages/ui/src/providers/DataMapperProvider.test.tsx diff --git a/packages/ui/src/providers/CanvasProvider.test.tsx b/packages/ui/src/providers/CanvasProvider.test.tsx new file mode 100644 index 000000000..d14cc9077 --- /dev/null +++ b/packages/ui/src/providers/CanvasProvider.test.tsx @@ -0,0 +1,111 @@ +import { CanvasProvider } from './CanvasProvider'; +import { render } from '@testing-library/react'; +import { DataMapperProvider } from './DataMapperProvider'; +import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; +import { SourceTargetView } from '../layout/views'; +import { useDataMapper } from '../hooks'; +import { DocumentType } from '../models/path'; +import { TestUtil } from '../test/test-util'; +import { useCanvas } from '../hooks/useCanvas'; +import { BODY_DOCUMENT_ID } from '../models/document'; + +describe('CanvasProvider', () => { + it('should render', () => { + render( + <DataMapperProvider> + <CanvasProvider></CanvasProvider> + </DataMapperProvider>, + ); + }); + + it('clearNodeReferencesForPath() should clear for the path', () => { + let first = false; + let second = false; + let beforeNodePaths: string[] = []; + let afterNodePaths: string[] = []; + const LoadDocument: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); + const { clearNodeReferencesForPath, getAllNodePaths, reloadNodeReferences } = useCanvas(); + useEffect(() => { + const sourceDoc = TestUtil.createSourceOrderDoc(); + setSourceBodyDocument(sourceDoc); + const targetDoc = TestUtil.createTargetOrderDoc(); + setTargetBodyDocument(targetDoc); + reloadNodeReferences(); + }, []); + useEffect(() => { + if (!first) { + first = true; + return; + } + if (!second) { + second = true; + beforeNodePaths = getAllNodePaths(); + clearNodeReferencesForPath('sourceBody:ShipOrder.xsd://'); + afterNodePaths = getAllNodePaths(); + } + }, [clearNodeReferencesForPath, getAllNodePaths, reloadNodeReferences]); + return <>{children}</>; + }; + render( + <DataMapperProvider> + <CanvasProvider> + <LoadDocument> + <SourceTargetView></SourceTargetView> + </LoadDocument> + </CanvasProvider> + </DataMapperProvider>, + ); + expect(afterNodePaths.length).toBeGreaterThan(10); + expect(beforeNodePaths.length).toBeGreaterThan(afterNodePaths.length); + }); + + it('clearNodeReferencesForDocument() should clear for the Document', () => { + let first = false; + let second = false; + let beforeNodePaths: string[] = []; + let afterNodePaths: string[] = []; + const LoadDocument: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); + const { clearNodeReferencesForDocument, getAllNodePaths, reloadNodeReferences } = useCanvas(); + useEffect(() => { + const sourceDoc = TestUtil.createSourceOrderDoc(); + setSourceBodyDocument(sourceDoc); + const targetDoc = TestUtil.createTargetOrderDoc(); + setTargetBodyDocument(targetDoc); + reloadNodeReferences(); + }, []); + useEffect(() => { + if (!first) { + first = true; + return; + } + if (!second) { + second = true; + beforeNodePaths = getAllNodePaths(); + clearNodeReferencesForDocument(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID); + afterNodePaths = getAllNodePaths(); + } + }, [clearNodeReferencesForDocument, getAllNodePaths, reloadNodeReferences]); + return <>{children}</>; + }; + render( + <DataMapperProvider> + <CanvasProvider> + <LoadDocument> + <SourceTargetView></SourceTargetView> + </LoadDocument> + </CanvasProvider> + </DataMapperProvider>, + ); + expect(afterNodePaths.length).toBeGreaterThan(10); + expect(beforeNodePaths.length).toBeGreaterThan(afterNodePaths.length); + }); + + it('should fail if not within DataMapperProvider', () => { + const thrower = () => { + render(<CanvasProvider></CanvasProvider>); + }; + expect(thrower).toThrow(); + }); +}); diff --git a/packages/ui/src/providers/DataMapperProvider.test.tsx b/packages/ui/src/providers/DataMapperProvider.test.tsx new file mode 100644 index 000000000..42b0883a2 --- /dev/null +++ b/packages/ui/src/providers/DataMapperProvider.test.tsx @@ -0,0 +1,41 @@ +import { DataMapperProvider } from './DataMapperProvider'; +import { render } from '@testing-library/react'; +import { useDataMapper } from '../hooks'; +import { FieldItem, MappingTree } from '../models/mapping'; +import { useEffect } from 'react'; +import { IField } from '../models/document'; + +describe('DataMapperProvider', () => { + it('should render', () => { + render(<DataMapperProvider></DataMapperProvider>); + }); + + it('refreshMappingTree should re-create the MappingTree instance', () => { + let prevTree: MappingTree; + let nextTree: MappingTree; + let done = false; + const TestRefreshMappingTree = () => { + const { mappingTree, refreshMappingTree } = useDataMapper(); + useEffect(() => { + if (done) { + nextTree = mappingTree; + } else { + prevTree = mappingTree; + prevTree.children.push(new FieldItem(prevTree, {} as IField)); + refreshMappingTree(); + done = true; + } + }, [mappingTree, refreshMappingTree]); + return <div></div>; + }; + render( + <DataMapperProvider> + <TestRefreshMappingTree></TestRefreshMappingTree> + </DataMapperProvider>, + ); + expect(prevTree!).toBeDefined(); + expect(nextTree!).toBeDefined(); + expect(prevTree! !== nextTree!).toBeTruthy(); + expect(prevTree!.children[0] === nextTree!.children[0]).toBeTruthy(); + }); +}); From 15543a3d00af14d147f009cf2311206c34940403 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Mon, 19 Aug 2024 17:33:05 -0400 Subject: [PATCH 334/471] chore: chore (#348) --- packages/ui/src/layout/views/MappingLink.tsx | 2 + packages/ui/src/main.test.tsx | 16 ----- .../ui/src/providers/CanvasProvider.test.tsx | 70 ++++++++++++++++--- .../mapping-serializer.service.test.ts | 9 +-- .../ui/src/services/mapping.service.test.ts | 4 +- .../services/visualization.service.test.ts | 4 +- .../xml-schema-document.service.test.ts | 15 ++-- .../src/services/xpath/xpath.service.test.ts | 22 ++++++ packages/ui/src/test/test-util.ts | 4 ++ 9 files changed, 100 insertions(+), 46 deletions(-) delete mode 100644 packages/ui/src/main.test.tsx diff --git a/packages/ui/src/layout/views/MappingLink.tsx b/packages/ui/src/layout/views/MappingLink.tsx index 2c315e94c..bffe2f850 100644 --- a/packages/ui/src/layout/views/MappingLink.tsx +++ b/packages/ui/src/layout/views/MappingLink.tsx @@ -36,6 +36,7 @@ const MappingLink: FunctionComponent<LineProps> = ({ x1, y1, x2, y2, sourceNodeP onClick={() => {}} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} + data-testid={`mapping-link-${x1}-${y1}-${x2}-${y2}`} d={`M${x1},${y1},${x2},${y2}`} style={lineStyle} > @@ -138,6 +139,7 @@ export const MappingLinksContainer: FunctionComponent = () => { return ( <svg + data-testid="mapping-links" style={{ position: 'absolute', top: 0, diff --git a/packages/ui/src/main.test.tsx b/packages/ui/src/main.test.tsx deleted file mode 100644 index ebf13a06f..000000000 --- a/packages/ui/src/main.test.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { render } from '@testing-library/react'; -import { DataMapperProvider } from './providers'; -import { CanvasProvider } from './providers/CanvasProvider'; -import { DataMapper } from './DataMapper'; - -describe('main.tsx', () => { - it('should render the initial screen', () => { - render( - <DataMapperProvider> - <CanvasProvider> - <DataMapper /> - </CanvasProvider> - </DataMapperProvider>, - ); - }); -}); diff --git a/packages/ui/src/providers/CanvasProvider.test.tsx b/packages/ui/src/providers/CanvasProvider.test.tsx index d14cc9077..bfc50d05f 100644 --- a/packages/ui/src/providers/CanvasProvider.test.tsx +++ b/packages/ui/src/providers/CanvasProvider.test.tsx @@ -8,6 +8,11 @@ import { DocumentType } from '../models/path'; import { TestUtil } from '../test/test-util'; import { useCanvas } from '../hooks/useCanvas'; import { BODY_DOCUMENT_ID } from '../models/document'; +import { MappingSerializerService } from '../services/mapping-serializer.service'; +import { screen } from '@testing-library/react'; +import { MainLayout } from '../layout'; +import { MappingService } from '../services/mapping.service'; +import { IMappingLink } from '../models/visualization'; describe('CanvasProvider', () => { it('should render', () => { @@ -18,12 +23,19 @@ describe('CanvasProvider', () => { ); }); + it('should fail if not within DataMapperProvider', () => { + const thrower = () => { + render(<CanvasProvider></CanvasProvider>); + }; + expect(thrower).toThrow(); + }); + it('clearNodeReferencesForPath() should clear for the path', () => { let first = false; let second = false; let beforeNodePaths: string[] = []; let afterNodePaths: string[] = []; - const LoadDocument: FunctionComponent<PropsWithChildren> = ({ children }) => { + const LoadDocuments: FunctionComponent<PropsWithChildren> = ({ children }) => { const { setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); const { clearNodeReferencesForPath, getAllNodePaths, reloadNodeReferences } = useCanvas(); useEffect(() => { @@ -50,9 +62,9 @@ describe('CanvasProvider', () => { render( <DataMapperProvider> <CanvasProvider> - <LoadDocument> + <LoadDocuments> <SourceTargetView></SourceTargetView> - </LoadDocument> + </LoadDocuments> </CanvasProvider> </DataMapperProvider>, ); @@ -65,7 +77,7 @@ describe('CanvasProvider', () => { let second = false; let beforeNodePaths: string[] = []; let afterNodePaths: string[] = []; - const LoadDocument: FunctionComponent<PropsWithChildren> = ({ children }) => { + const LoadDocuments: FunctionComponent<PropsWithChildren> = ({ children }) => { const { setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); const { clearNodeReferencesForDocument, getAllNodePaths, reloadNodeReferences } = useCanvas(); useEffect(() => { @@ -92,9 +104,9 @@ describe('CanvasProvider', () => { render( <DataMapperProvider> <CanvasProvider> - <LoadDocument> + <LoadDocuments> <SourceTargetView></SourceTargetView> - </LoadDocument> + </LoadDocuments> </CanvasProvider> </DataMapperProvider>, ); @@ -102,10 +114,48 @@ describe('CanvasProvider', () => { expect(beforeNodePaths.length).toBeGreaterThan(afterNodePaths.length); }); - it('should fail if not within DataMapperProvider', () => { - const thrower = () => { - render(<CanvasProvider></CanvasProvider>); + it('should render Documents and mappings', () => { + let mappingLinks: IMappingLink[] = []; + const LoadMappings: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { + mappingTree, + setMappingTree, + sourceParameterMap, + setSourceBodyDocument, + setTargetBodyDocument, + sourceBodyDocument, + } = useDataMapper(); + const { getAllNodePaths, reloadNodeReferences } = useCanvas(); + useEffect(() => { + const sourceDoc = TestUtil.createSourceOrderDoc(); + setSourceBodyDocument(sourceDoc); + const targetDoc = TestUtil.createTargetOrderDoc(); + setTargetBodyDocument(targetDoc); + MappingSerializerService.deserialize( + TestUtil.shipOrderToShipOrderXslt, + targetDoc, + mappingTree, + sourceParameterMap, + ); + setMappingTree(mappingTree); + reloadNodeReferences(); + }, []); + useEffect(() => { + mappingLinks = MappingService.extractMappingLinks(mappingTree, sourceParameterMap, sourceBodyDocument); + }, [getAllNodePaths, mappingTree, sourceBodyDocument, sourceParameterMap]); + return <>{children}</>; }; - expect(thrower).toThrow(); + render( + <DataMapperProvider> + <CanvasProvider> + <LoadMappings> + <MainLayout></MainLayout> + </LoadMappings> + </CanvasProvider> + </DataMapperProvider>, + ); + const targetNodes = screen.getAllByTestId(/target-node-.*/); + expect(targetNodes.length).toBeGreaterThan(10); + expect(mappingLinks.length).toBeGreaterThan(10); }); }); diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index 9ae700f34..0db8313c5 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -1,6 +1,5 @@ import { EMPTY_XSL, MappingSerializerService, NS_XSL } from './mapping-serializer.service'; import { BODY_DOCUMENT_ID } from '../models/document'; -import * as fs from 'fs'; import { ChooseItem, FieldItem, @@ -21,10 +20,6 @@ describe('MappingSerializerService', () => { const domParser = new DOMParser(); - const shipOrderToShipOrderXslt = fs - .readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl') - .toString(); - it('createNew() should create am empty XSLT document', () => { const xslt = MappingSerializerService.createNew(); const stylesheet = xslt.getElementsByTagNameNS(NS_XSL, 'stylesheet'); @@ -51,7 +46,7 @@ describe('MappingSerializerService', () => { let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); expect(Object.keys(mappingTree.namespaceMap).length).toEqual(0); mappingTree = MappingSerializerService.deserialize( - shipOrderToShipOrderXslt, + TestUtil.shipOrderToShipOrderXslt, targetDoc, mappingTree, sourceParameterMap, @@ -189,7 +184,7 @@ describe('MappingSerializerService', () => { it('should serialize mappings', () => { let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); mappingTree = MappingSerializerService.deserialize( - shipOrderToShipOrderXslt, + TestUtil.shipOrderToShipOrderXslt, targetDoc, mappingTree, sourceParameterMap, diff --git a/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts index 0fa1dec48..b6723740c 100644 --- a/packages/ui/src/services/mapping.service.test.ts +++ b/packages/ui/src/services/mapping.service.test.ts @@ -1,5 +1,4 @@ import { MappingService } from './mapping.service'; -import * as fs from 'fs'; import { TestUtil } from '../test/test-util'; import { ChooseItem, @@ -17,7 +16,6 @@ import { XmlSchemaDocument } from './xml-schema-document.service'; import { IDocument } from '../models/document'; describe('MappingService', () => { - const xsltFile = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl').toString(); let sourceDoc: XmlSchemaDocument; let targetDoc: XmlSchemaDocument; let paramsMap: Map<string, IDocument>; @@ -28,7 +26,7 @@ describe('MappingService', () => { targetDoc = TestUtil.createTargetOrderDoc(); paramsMap = TestUtil.createParameterMap(); tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); - MappingSerializerService.deserialize(xsltFile, targetDoc, tree, paramsMap); + MappingSerializerService.deserialize(TestUtil.shipOrderToShipOrderXslt, targetDoc, tree, paramsMap); }); describe('filterMappingsForField()', () => { diff --git a/packages/ui/src/services/visualization.service.test.ts b/packages/ui/src/services/visualization.service.test.ts index bc2b53423..66817edfb 100644 --- a/packages/ui/src/services/visualization.service.test.ts +++ b/packages/ui/src/services/visualization.service.test.ts @@ -12,10 +12,8 @@ import { TestUtil } from '../test/test-util'; import { XmlSchemaDocument } from './xml-schema-document.service'; import { MappingSerializerService } from './mapping-serializer.service'; import { IDocument } from '../models/document'; -import * as fs from 'fs'; describe('VisualizationService', () => { - const xsltFile = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl').toString(); let sourceDoc: XmlSchemaDocument; let sourceDocNode: DocumentNodeData; let targetDoc: XmlSchemaDocument; @@ -180,7 +178,7 @@ describe('VisualizationService', () => { describe('with pre-populated mappings', () => { beforeEach(() => { - MappingSerializerService.deserialize(xsltFile, targetDoc, tree, paramsMap); + MappingSerializerService.deserialize(TestUtil.shipOrderToShipOrderXslt, targetDoc, tree, paramsMap); targetDocNode = new TargetDocumentNodeData(targetDoc, tree); }); diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index 039dabba9..d8b7c5245 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -1,18 +1,15 @@ import { XmlSchemaDocumentService, XmlSchemaField } from './xml-schema-document.service'; -import * as fs from 'fs'; import { BODY_DOCUMENT_ID } from '../models/document'; import { DocumentType } from '../models/path'; import { Types } from '../models/types'; +import { TestUtil } from '../test/test-util'; describe('XmlSchemaDocumentService', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); - const testXsd = fs.readFileSync(__dirname + '/../../../../test-resources/TestDocument.xsd').toString(); - it('should parse ShipOrder XML schema', () => { const document = XmlSchemaDocumentService.createXmlSchemaDocument( DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID, - orderXsd, + TestUtil.orderXsd, ); expect(document).toBeDefined(); const shipOrder = XmlSchemaDocumentService.getFirstElement(document.xmlSchema); @@ -30,7 +27,7 @@ describe('XmlSchemaDocumentService', () => { const document = XmlSchemaDocumentService.createXmlSchemaDocument( DocumentType.TARGET_BODY, BODY_DOCUMENT_ID, - testXsd, + TestUtil.testXsd, ); expect(document).toBeDefined(); const testDoc = XmlSchemaDocumentService.getFirstElement(document.xmlSchema); @@ -40,7 +37,11 @@ describe('XmlSchemaDocumentService', () => { }); it('should create XML Schema Document', () => { - const doc = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.SOURCE_BODY, 'ShipOrder.xsd', orderXsd); + const doc = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.SOURCE_BODY, + 'ShipOrder.xsd', + TestUtil.orderXsd, + ); expect(doc.documentType).toEqual(DocumentType.SOURCE_BODY); expect(doc.documentId).toEqual('ShipOrder.xsd'); expect(doc.name).toEqual('ShipOrder.xsd'); diff --git a/packages/ui/src/services/xpath/xpath.service.test.ts b/packages/ui/src/services/xpath/xpath.service.test.ts index 0aaf437b3..e068b64c2 100644 --- a/packages/ui/src/services/xpath/xpath.service.test.ts +++ b/packages/ui/src/services/xpath/xpath.service.test.ts @@ -1,6 +1,8 @@ import { XPathService } from './xpath.service'; import { createSyntaxDiagramsCode } from 'chevrotain'; import * as fs from 'fs'; +import { IFunctionDefinition } from '../../models/mapping'; +import { FunctionGroup } from './xpath-parser'; describe('XPathService', () => { it('Generate Syntax Diagram', () => { @@ -39,4 +41,24 @@ describe('XPathService', () => { expect(paths[2]).toEqual('$param1/eee/fff'); }); }); + + it('getXPathFunctionDefinitions()', () => { + const functionDefs = XPathService.getXPathFunctionDefinitions(); + expect(Object.keys(functionDefs).length).toBeGreaterThan(9); + }); + + it('getXPathFunctionNames()', () => { + const functionDefs = XPathService.getXPathFunctionDefinitions(); + const flattened = Object.keys(functionDefs).reduce((acc, value) => { + acc.push(...functionDefs[value as FunctionGroup]); + return acc; + }, [] as IFunctionDefinition[]); + const functionNames = XPathService.getXPathFunctionNames(); + expect(functionNames.length).toEqual(flattened.length); + }); + + it('getMonacoXPathLanguageMetadata()', () => { + const metadata = XPathService.getMonacoXPathLanguageMetadata(); + expect(metadata.id).toEqual('xpath'); + }); }); diff --git a/packages/ui/src/test/test-util.ts b/packages/ui/src/test/test-util.ts index ad9a8f696..2992f31f8 100644 --- a/packages/ui/src/test/test-util.ts +++ b/packages/ui/src/test/test-util.ts @@ -5,6 +5,10 @@ import { IDocument, PrimitiveDocument } from '../models/document'; export class TestUtil { static orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); + static testXsd = fs.readFileSync(__dirname + '/../../../../test-resources/TestDocument.xsd').toString(); + static shipOrderToShipOrderXslt = fs + .readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl') + .toString(); static createSourceOrderDoc() { return XmlSchemaDocumentService.createXmlSchemaDocument( From f27f4ef0ca1e1ac4d5493f3ee85b7d5f5c372261 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Tue, 20 Aug 2024 11:32:39 -0400 Subject: [PATCH 335/471] chore: remove warnings --- packages/ui/src/providers/CanvasProvider.test.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/ui/src/providers/CanvasProvider.test.tsx b/packages/ui/src/providers/CanvasProvider.test.tsx index bfc50d05f..29924d009 100644 --- a/packages/ui/src/providers/CanvasProvider.test.tsx +++ b/packages/ui/src/providers/CanvasProvider.test.tsx @@ -44,6 +44,7 @@ describe('CanvasProvider', () => { const targetDoc = TestUtil.createTargetOrderDoc(); setTargetBodyDocument(targetDoc); reloadNodeReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { if (!first) { @@ -86,6 +87,7 @@ describe('CanvasProvider', () => { const targetDoc = TestUtil.createTargetOrderDoc(); setTargetBodyDocument(targetDoc); reloadNodeReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { if (!first) { @@ -139,6 +141,7 @@ describe('CanvasProvider', () => { ); setMappingTree(mappingTree); reloadNodeReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { mappingLinks = MappingService.extractMappingLinks(mappingTree, sourceParameterMap, sourceBodyDocument); From 87f9b71af7026f984c402dd93e8bf25369181108 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Aug 2024 05:10:18 +0000 Subject: [PATCH 336/471] chore(deps): update dependency @types/react to v18.3.4 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f8a33a80e..81cf1164b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4764,12 +4764,12 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.3.3 - resolution: "@types/react@npm:18.3.3" + version: 18.3.4 + resolution: "@types/react@npm:18.3.4" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: c63d6a78163244e2022b01ef79b0baec4fe4da3475dc4a90bb8accefad35ef0c43560fd0312e5974f92a0f1108aa4d669ac72d73d66396aa060ea03b5d2e3873 + checksum: 555ccd1af86a23c781dea0360de64b2f7a0708cdcbf9e6496744b77630065868526fd55147c727dc5ef11b7fd712b04f7898757a84c67e2eb9dfd4c4ead10d95 languageName: node linkType: hard From 030c9f1e9748f6ee0478c13dc38ea6bf89b5604a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 21 Aug 2024 05:10:40 +0000 Subject: [PATCH 337/471] chore(deps): update dependency eslint-plugin-react-refresh to v0.4.10 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81cf1164b..8d6c39532 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7715,11 +7715,11 @@ __metadata: linkType: hard "eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.9 - resolution: "eslint-plugin-react-refresh@npm:0.4.9" + version: 0.4.10 + resolution: "eslint-plugin-react-refresh@npm:0.4.10" peerDependencies: eslint: ">=7" - checksum: 3fa27a9db264c59cddfd74307f59067762b0a9905ccc59aa6fd1fcfe4caa8c0ac52d1f3af394634382c4c8019e1ca6b30cc0fee1c921a3c2fdea8f7889925803 + checksum: 43dd9aa62a560ac019813e047f904e9d85fcfbd696afd9fe815171acd95cb0e892547b8da54a20425182499a0e352255e64feef225048dfebdc8187e51bc267d languageName: node linkType: hard From ab5be974a09fe065f4ca73822fcdc4cd05f48c94 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Tue, 20 Aug 2024 22:50:33 -0400 Subject: [PATCH 338/471] fix: Remove react-sage Fixes: #381 Also little bit more of #348 --- packages/ui/package.json | 1 - .../components/document/Parameters.test.tsx | 82 +++++++++++++++++++ .../ui/src/components/document/Parameters.tsx | 3 + .../components/document/SourceDocument.tsx | 2 +- .../document/actions/AttachSchemaButton.tsx | 34 ++++---- .../actions/DeleteParameterButton.tsx | 10 ++- .../document/actions/DetachSchemaButton.tsx | 5 +- .../toolbar/ImportMappingFileDropdownItem.tsx | 33 ++++---- packages/ui/src/util/common.test.ts | 19 +++++ packages/ui/src/util/common.ts | 7 +- yarn.lock | 8 -- 11 files changed, 152 insertions(+), 52 deletions(-) create mode 100644 packages/ui/src/components/document/Parameters.test.tsx create mode 100644 packages/ui/src/util/common.test.ts diff --git a/packages/ui/package.json b/packages/ui/package.json index d9440218a..047105404 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -60,7 +60,6 @@ "react-dnd-html5-backend": "^16.0.1", "react-dnd-touch-backend": "^16.0.1", "react-dom": "^18.2.0", - "react-sage": "^0.3.16", "react-use-gesture": "^9.1.3", "use-debounce": "^10.0.0", "xml-formatter": "^3.6.2" diff --git a/packages/ui/src/components/document/Parameters.test.tsx b/packages/ui/src/components/document/Parameters.test.tsx new file mode 100644 index 000000000..9f259e501 --- /dev/null +++ b/packages/ui/src/components/document/Parameters.test.tsx @@ -0,0 +1,82 @@ +import { Parameters } from './Parameters'; +import { DataMapperProvider } from '../../providers'; +import { CanvasProvider } from '../../providers/CanvasProvider'; +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { TestUtil } from '../../test/test-util'; + +describe('Parameters', () => { + it('should add and remove a parameter', () => { + render( + <DataMapperProvider> + <CanvasProvider> + <Parameters /> + </CanvasProvider> + </DataMapperProvider>, + ); + const addButton = screen.getByTestId('add-parameter-button'); + act(() => { + fireEvent.click(addButton); + }); + const paramNameInput = screen.getByTestId('add-new-parameter-name-input'); + act(() => { + fireEvent.change(paramNameInput, { target: { value: 'testparam1' } }); + }); + const submitButton = screen.getByTestId('add-new-parameter-submit-btn'); + act(() => { + fireEvent.click(submitButton); + }); + const deleteButton = screen.getByTestId('delete-parameter-testparam1-button'); + act(() => { + fireEvent.click(deleteButton); + }); + const confirmButton = screen.getByTestId('delete-parameter-modal-confirm-btn'); + act(() => { + fireEvent.click(confirmButton); + }); + const notexist = screen.queryByTestId('delete-parameter-testparam1-button'); + expect(notexist).toBeFalsy(); + }); + + it('should attach and detach a schema', async () => { + render( + <DataMapperProvider> + <CanvasProvider> + <Parameters /> + </CanvasProvider> + </DataMapperProvider>, + ); + const addButton = screen.getByTestId('add-parameter-button'); + act(() => { + fireEvent.click(addButton); + }); + const paramNameInput = screen.getByTestId('add-new-parameter-name-input'); + act(() => { + fireEvent.change(paramNameInput, { target: { value: 'testparam1' } }); + }); + const submitButton = screen.getByTestId('add-new-parameter-submit-btn'); + act(() => { + fireEvent.click(submitButton); + }); + const attachButton = screen.getByTestId('attach-schema-param-testparam1-button'); + const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + act(() => { + fireEvent.click(attachButton); + }); + const fileInput = screen.getByTestId('attach-schema-param-testparam1-file-input'); + act(() => { + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + }); + const shipTo = await screen.findByText('ShipTo'); + expect(shipTo).toBeTruthy(); + + const detachButton = screen.getByTestId('detach-schema-param-testparam1-button'); + act(() => { + fireEvent.click(detachButton); + }); + const detachConfirmButton = screen.getByTestId('detach-schema-modal-confirm'); + act(() => { + fireEvent.click(detachConfirmButton); + }); + expect(screen.queryByTestId('ShipTo')).toBeFalsy(); + }); +}); diff --git a/packages/ui/src/components/document/Parameters.tsx b/packages/ui/src/components/document/Parameters.tsx index 9d8a7fab9..cc7cb06fd 100644 --- a/packages/ui/src/components/document/Parameters.tsx +++ b/packages/ui/src/components/document/Parameters.tsx @@ -61,6 +61,7 @@ const AddNewParameterPlaceholder: FunctionComponent<AddNewParameterPlaceholderPr <TextInput ref={inputRef} id="new-parameter-name" + data-testid="add-new-parameter-name-input" onChange={(_event, text) => setNewParameterName(text)} placeholder="parameter name" /> @@ -71,6 +72,7 @@ const AddNewParameterPlaceholder: FunctionComponent<AddNewParameterPlaceholderPr variant="link" isDisabled={!isNewParameterNameValid} id="add-new-parameter-submit-btn" + data-testid="add-new-parameter-submit-btn" aria-label="Submit new parameter" > <CheckIcon /> @@ -81,6 +83,7 @@ const AddNewParameterPlaceholder: FunctionComponent<AddNewParameterPlaceholderPr onClick={() => cancelNewParameter()} variant="plain" id="add-new-parameter-cancel-btn" + data-testid="add-new-parameter-cancel-btn" aria-label={'Cancel new parameter'} > <TimesIcon /> diff --git a/packages/ui/src/components/document/SourceDocument.tsx b/packages/ui/src/components/document/SourceDocument.tsx index 71d63381c..64a95d24c 100644 --- a/packages/ui/src/components/document/SourceDocument.tsx +++ b/packages/ui/src/components/document/SourceDocument.tsx @@ -60,7 +60,7 @@ export const SourceDocumentNode: FunctionComponent<DocumentNodeProps> = ({ nodeD return ( <NodeContainer ref={containerRef} nodeData={nodeData}> - <div className={isDocument ? 'node-container__document' : 'node-container'}> + <div className={isDocument ? 'node-container__document' : 'node-container'} data-testid={`node-${nodeData.id}`}> <NodeContainer ref={headerRef} nodeData={nodeData}> <div className={isDocument ? 'node-header__document' : 'node-header'} diff --git a/packages/ui/src/components/document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/document/actions/AttachSchemaButton.tsx index 07b13c373..0c173824c 100644 --- a/packages/ui/src/components/document/actions/AttachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/AttachSchemaButton.tsx @@ -14,10 +14,9 @@ limitations under the License. */ import { Button, Tooltip } from '@patternfly/react-core'; -import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; +import { ChangeEvent, createRef, FunctionComponent, useCallback } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; -import { useFilePicker } from 'react-sage'; import { readFileAsString } from '../../../util'; import { XmlSchemaDocumentService } from '../../../services'; import { useDataMapper } from '../../../hooks'; @@ -45,13 +44,16 @@ export const AttachSchemaButton: FunctionComponent<AttachSchemaProps> = ({ setTargetBodyDocument, } = useDataMapper(); const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); - const { files, onClick, HiddenFileInput } = useFilePicker({ - maxFileSize: 1, - }); - const previouslyUploadedFiles = useRef<File[] | null>(null); + const fileInputRef = createRef<HTMLInputElement>(); + + const onClick = useCallback(() => { + fileInputRef.current?.click(); + }, [fileInputRef]); const onImport = useCallback( - (file: File) => { + (event: ChangeEvent<HTMLInputElement>) => { + const file = event.target.files?.item(0); + if (!file) return; readFileAsString(file).then((content) => { const document = XmlSchemaDocumentService.createXmlSchemaDocument(documentType, documentId, content); if (hasSchema) { @@ -92,15 +94,6 @@ export const AttachSchemaButton: FunctionComponent<AttachSchemaProps> = ({ ], ); - useEffect(() => { - if (previouslyUploadedFiles.current !== files) { - previouslyUploadedFiles.current = files; - if (files?.length === 1) { - onImport(files[0]); - } - } - }, [files, onImport]); - return ( <Tooltip position={'auto'} enableFlip={true} content={<div>{hasSchema ? 'Update schema' : 'Attach a schema'}</div>}> <Button @@ -110,7 +103,14 @@ export const AttachSchemaButton: FunctionComponent<AttachSchemaProps> = ({ onClick={onClick} > <ImportIcon /> - <HiddenFileInput accept={'.xml, .xsd'} /> + <input + type="file" + style={{ display: 'none' }} + data-testid={`attach-schema-${documentType}-${documentId}-file-input`} + onChange={onImport} + accept=".xml, .xsd" + ref={fileInputRef} + /> </Button> </Tooltip> ); diff --git a/packages/ui/src/components/document/actions/DeleteParameterButton.tsx b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx index 4ee4e10f9..9eab9b303 100644 --- a/packages/ui/src/components/document/actions/DeleteParameterButton.tsx +++ b/packages/ui/src/components/document/actions/DeleteParameterButton.tsx @@ -51,12 +51,18 @@ export const DeleteParameterButton: FunctionComponent<DeleteParameterProps> = ({ variant={ModalVariant.small} isOpen={isModalOpen} title="Delete parameter" + data-testid="delete-parameter-modal" onClose={closeModal} actions={[ - <Button key="confirm" variant="primary" onClick={onConfirmDelete}> + <Button + key="confirm" + variant="primary" + data-testid="delete-parameter-modal-confirm-btn" + onClick={onConfirmDelete} + > Confirm </Button>, - <Button key="cancel" variant="link" onClick={closeModal}> + <Button key="cancel" variant="link" data-testid="delete-parameter-modal-cancel-btn" onClick={closeModal}> Cancel </Button>, ]} diff --git a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx index 5418faf38..f7b92a66e 100644 --- a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx @@ -89,12 +89,13 @@ export const DetachSchemaButton: FunctionComponent<DeleteSchemaProps> = ({ docum variant={ModalVariant.small} isOpen={isModalOpen} title="Detach schema" + data-testid="detach-schema-modal" onClose={closeModal} actions={[ - <Button key="confirm" variant="primary" onClick={onConfirmDelete}> + <Button key="confirm" variant="primary" data-testid="detach-schema-modal-confirm" onClick={onConfirmDelete}> Confirm </Button>, - <Button key="cancel" variant="link" onClick={closeModal}> + <Button key="cancel" variant="link" data-testid="detach-schema-modal-cancel" onClick={closeModal}> Cancel </Button>, ]} diff --git a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx index 228840c2c..265ec0d47 100644 --- a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx @@ -1,9 +1,8 @@ import { DropdownItem } from '@patternfly/react-core'; -import { FunctionComponent, useCallback, useEffect, useRef } from 'react'; +import { ChangeEvent, createRef, FunctionComponent, useCallback } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; import { MappingSerializerService } from '../../services/mapping-serializer.service'; import { useDataMapper } from '../../hooks'; -import { useFilePicker } from 'react-sage'; import { readFileAsString } from '../../util'; type ImportMappingFileDropdownItemProps = { @@ -14,14 +13,16 @@ export const ImportMappingFileDropdownItem: FunctionComponent<ImportMappingFileD onComplete, }) => { const { mappingTree, sourceParameterMap, targetBodyDocument, refreshMappingTree } = useDataMapper(); + const fileInputRef = createRef<HTMLInputElement>(); - const { files, onClick, HiddenFileInput } = useFilePicker({ - maxFileSize: 1, - }); - const previouslyUploadedFiles = useRef<File[] | null>(null); + const onClick = useCallback(() => { + fileInputRef.current?.click(); + }, [fileInputRef]); const onImport = useCallback( - (file: File) => { + (event: ChangeEvent<HTMLInputElement>) => { + const file = event.target.files?.item(0); + if (!file) return; readFileAsString(file).then((content) => { MappingSerializerService.deserialize(content, targetBodyDocument, mappingTree, sourceParameterMap); refreshMappingTree(); @@ -31,21 +32,19 @@ export const ImportMappingFileDropdownItem: FunctionComponent<ImportMappingFileD [mappingTree, onComplete, refreshMappingTree, sourceParameterMap, targetBodyDocument], ); - useEffect(() => { - if (previouslyUploadedFiles.current !== files) { - previouslyUploadedFiles.current = files; - if (files?.length === 1) { - onImport(files[0]); - } - } - }, [files, onImport]); - return ( <> <DropdownItem icon={<ImportIcon />} onClick={onClick} data-testid="import-mappings-button"> Import mappings (.xsl) </DropdownItem> - <HiddenFileInput accept=".xsl, .xslt, .xml" /> + <input + type="file" + style={{ display: 'none' }} + data-testid="import-mappings-file-input" + onChange={onImport} + accept=".xsl, .xslt, .xml" + ref={fileInputRef} + /> </> ); }; diff --git a/packages/ui/src/util/common.test.ts b/packages/ui/src/util/common.test.ts new file mode 100644 index 000000000..a5dddd116 --- /dev/null +++ b/packages/ui/src/util/common.test.ts @@ -0,0 +1,19 @@ +import { generateRandomId, readFileAsString } from './common'; + +describe('generateRandomId()', () => { + it('should generate', () => { + const generated = generateRandomId('dummy', 4); + expect(generated).toMatch(/dummy-\d{4}/); + expect(generateRandomId('dummy', 4)).not.toEqual(generateRandomId('dummy', 4)); + }); +}); + +describe('readFileAsString()', () => { + it('should read', async () => { + const file = new File(['foo'], 'foo.txt', { + type: 'text/plain', + }); + const answer = await readFileAsString(file); + expect(answer).toEqual('foo'); + }); +}); diff --git a/packages/ui/src/util/common.ts b/packages/ui/src/util/common.ts index 75ece6a4d..f9aa0c1b6 100644 --- a/packages/ui/src/util/common.ts +++ b/packages/ui/src/util/common.ts @@ -1,8 +1,7 @@ export const generateRandomId = (kind: string, length = 4): string => { - const cryptoObj = window.crypto || (window as Window & { msCrypto?: Crypto }).msCrypto; - const randomNumber = Math.floor(cryptoObj?.getRandomValues(new Uint32Array(1))[0] ?? Date.now()); - - return `${kind}-${randomNumber.toString(10).slice(0, length)}`; + const randomNumber = Math.floor(Math.random() * 10 ** length); + const randomNumberString = randomNumber.toString(10).padStart(4, '0'); + return `${kind}-${randomNumberString}`; }; export const readFileAsString = (file: File): Promise<string> => { diff --git a/yarn.lock b/yarn.lock index 8d6c39532..71c4da24f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2212,7 +2212,6 @@ __metadata: react-dnd-html5-backend: ^16.0.1 react-dnd-touch-backend: ^16.0.1 react-dom: ^18.2.0 - react-sage: ^0.3.16 react-use-gesture: ^9.1.3 sass: ^1.70.0 stylelint: ^16.2.1 @@ -12261,13 +12260,6 @@ __metadata: languageName: node linkType: hard -"react-sage@npm:^0.3.16": - version: 0.3.16 - resolution: "react-sage@npm:0.3.16" - checksum: 575f1a2b3e29aaeaa665907099909909730173d4cfc601e2929eb12e40e21f2edf42a4429bc25186f82f176a15edc0b2348b20b2850c0520708d2167f18cd276 - languageName: node - linkType: hard - "react-select@npm:^5.7.0": version: 5.8.0 resolution: "react-select@npm:5.8.0" From 71db15fb645eae9c6556406036398a5e669d6a1e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Wed, 21 Aug 2024 16:15:19 -0400 Subject: [PATCH 339/471] fix: Add unit tests for components (#348) Fixes: #348 --- packages/ui/jest-setup.ts | 14 ++ .../components/document/Parameters.test.tsx | 2 +- .../document/SourceDocument.test.tsx | 33 +++++ .../actions/AttachSchemaButton.test.tsx | 40 ++++++ .../document/actions/AttachSchemaButton.tsx | 4 +- .../actions/ConditionMenuAction.test.tsx | 133 ++++++++++++++++++ .../document/actions/ConditionMenuAction.tsx | 23 ++- .../actions/DeleteMappingItemAction.test.tsx | 43 ++++++ .../actions/DeleteMappingItemAction.tsx | 7 +- .../actions/DeleteParameterButton.test.tsx | 44 ++++++ .../actions/DetachSchemaButton.test.tsx | 46 ++++++ .../document/actions/DetachSchemaButton.tsx | 9 +- .../document/actions/DocumentActions.test.tsx | 21 +++ .../actions/ExpressionEditorAction.test.tsx | 30 ++++ .../actions/ExpressionEditorAction.tsx | 7 +- .../actions/ExpressionInputAction.test.tsx | 21 +++ .../actions/TargetNodeActions.test.tsx | 35 +++++ .../expression/FunctionIcon.test.tsx | 9 ++ .../toolbar/ExportMappingFileDropdownItem.tsx | 4 +- .../toolbar/ImportMappingFileDropdownItem.tsx | 4 +- .../toolbar/ToggleDebugToolbarItem.tsx | 5 +- packages/ui/src/layout/MainLayout.test.tsx | 121 ++++++++++++++++ .../layout/views/SourceTargetView.test.tsx | 76 ++++++++++ packages/ui/src/models/document.ts | 4 +- packages/ui/src/models/mapping.ts | 4 +- packages/ui/src/util/common.test.ts | 8 +- packages/ui/src/util/common.ts | 30 ++-- 27 files changed, 735 insertions(+), 42 deletions(-) create mode 100644 packages/ui/src/components/document/SourceDocument.test.tsx create mode 100644 packages/ui/src/components/document/actions/AttachSchemaButton.test.tsx create mode 100644 packages/ui/src/components/document/actions/ConditionMenuAction.test.tsx create mode 100644 packages/ui/src/components/document/actions/DeleteMappingItemAction.test.tsx create mode 100644 packages/ui/src/components/document/actions/DeleteParameterButton.test.tsx create mode 100644 packages/ui/src/components/document/actions/DetachSchemaButton.test.tsx create mode 100644 packages/ui/src/components/document/actions/DocumentActions.test.tsx create mode 100644 packages/ui/src/components/document/actions/ExpressionEditorAction.test.tsx create mode 100644 packages/ui/src/components/document/actions/ExpressionInputAction.test.tsx create mode 100644 packages/ui/src/components/document/actions/TargetNodeActions.test.tsx create mode 100644 packages/ui/src/components/expression/FunctionIcon.test.tsx create mode 100644 packages/ui/src/layout/MainLayout.test.tsx create mode 100644 packages/ui/src/layout/views/SourceTargetView.test.tsx diff --git a/packages/ui/jest-setup.ts b/packages/ui/jest-setup.ts index 72590f380..3910a443a 100644 --- a/packages/ui/jest-setup.ts +++ b/packages/ui/jest-setup.ts @@ -7,6 +7,20 @@ Object.defineProperty(window, 'fetch', { value: jest.fn(), }); +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: jest.fn().mockImplementation((query) => ({ + matches: false, + media: query, + onchange: null, + addListener: jest.fn(), // Deprecated + removeListener: jest.fn(), // Deprecated + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + })), +}); + jest .spyOn(global, 'crypto', 'get') .mockImplementation(() => ({ getRandomValues: () => [12345678] }) as unknown as Crypto); diff --git a/packages/ui/src/components/document/Parameters.test.tsx b/packages/ui/src/components/document/Parameters.test.tsx index 9f259e501..1ad5ab93d 100644 --- a/packages/ui/src/components/document/Parameters.test.tsx +++ b/packages/ui/src/components/document/Parameters.test.tsx @@ -73,7 +73,7 @@ describe('Parameters', () => { act(() => { fireEvent.click(detachButton); }); - const detachConfirmButton = screen.getByTestId('detach-schema-modal-confirm'); + const detachConfirmButton = screen.getByTestId('detach-schema-modal-confirm-btn'); act(() => { fireEvent.click(detachConfirmButton); }); diff --git a/packages/ui/src/components/document/SourceDocument.test.tsx b/packages/ui/src/components/document/SourceDocument.test.tsx new file mode 100644 index 000000000..9b2a333f2 --- /dev/null +++ b/packages/ui/src/components/document/SourceDocument.test.tsx @@ -0,0 +1,33 @@ +import { SourceDocument } from './SourceDocument'; +import { render, screen } from '@testing-library/react'; +import { TestUtil } from '../../test/test-util'; +import { DataMapperProvider } from '../../providers'; +import { CanvasProvider } from '../../providers/CanvasProvider'; +import { BODY_DOCUMENT_ID, PrimitiveDocument } from '../../models/document'; +import { DocumentType } from '../../models/path'; + +describe('SourceDocument', () => { + it('should render primitive document', () => { + const document = new PrimitiveDocument(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID); + render( + <DataMapperProvider> + <CanvasProvider> + <SourceDocument document={document} /> + </CanvasProvider> + </DataMapperProvider>, + ); + expect(screen.getByText('Body')).toBeTruthy(); + }); + + it('should render ShipOrder doc', () => { + const document = TestUtil.createSourceOrderDoc(); + render( + <DataMapperProvider> + <CanvasProvider> + <SourceDocument document={document} /> + </CanvasProvider> + </DataMapperProvider>, + ); + expect(screen.getByText('OrderPerson')).toBeTruthy(); + }); +}); diff --git a/packages/ui/src/components/document/actions/AttachSchemaButton.test.tsx b/packages/ui/src/components/document/actions/AttachSchemaButton.test.tsx new file mode 100644 index 000000000..7f4c40d57 --- /dev/null +++ b/packages/ui/src/components/document/actions/AttachSchemaButton.test.tsx @@ -0,0 +1,40 @@ +import { AttachSchemaButton } from './AttachSchemaButton'; +import { fireEvent, render, screen } from '@testing-library/react'; +import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { DocumentType } from '../../../models/path'; +import { BODY_DOCUMENT_ID } from '../../../models/document'; +import { DataMapperProvider } from '../../../providers'; +import { CommonUtil } from '../../../util'; +import { TestUtil } from '../../../test/test-util'; + +describe('AttachSchemaButton', () => { + it('should invoke onClick()', () => { + const spyOnClick = jest.spyOn(HTMLInputElement.prototype, 'click'); + render( + <DataMapperProvider> + <CanvasProvider> + <AttachSchemaButton documentType={DocumentType.SOURCE_BODY} documentId={BODY_DOCUMENT_ID} /> + </CanvasProvider> + </DataMapperProvider>, + ); + const attachButton = screen.getByTestId('attach-schema-sourceBody-Body-button'); + expect(spyOnClick.mock.calls.length).toEqual(0); + fireEvent.click(attachButton); + expect(spyOnClick.mock.calls.length).toBeGreaterThan(0); + }); + + it('should invoke onImport()', async () => { + const mockOnImport = jest.spyOn(CommonUtil, 'readFileAsString'); + render( + <DataMapperProvider> + <CanvasProvider> + <AttachSchemaButton documentType={DocumentType.SOURCE_BODY} documentId={BODY_DOCUMENT_ID} /> + </CanvasProvider> + </DataMapperProvider>, + ); + const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + const fileInput = screen.getByTestId('attach-schema-sourceBody-Body-file-input'); + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + expect(mockOnImport.mock.calls.length).toEqual(1); + }); +}); diff --git a/packages/ui/src/components/document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/document/actions/AttachSchemaButton.tsx index 0c173824c..291d6cc8e 100644 --- a/packages/ui/src/components/document/actions/AttachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/AttachSchemaButton.tsx @@ -17,7 +17,7 @@ import { Button, Tooltip } from '@patternfly/react-core'; import { ChangeEvent, createRef, FunctionComponent, useCallback } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; -import { readFileAsString } from '../../../util'; +import { CommonUtil } from '../../../util'; import { XmlSchemaDocumentService } from '../../../services'; import { useDataMapper } from '../../../hooks'; import { MappingService } from '../../../services/mapping.service'; @@ -54,7 +54,7 @@ export const AttachSchemaButton: FunctionComponent<AttachSchemaProps> = ({ (event: ChangeEvent<HTMLInputElement>) => { const file = event.target.files?.item(0); if (!file) return; - readFileAsString(file).then((content) => { + CommonUtil.readFileAsString(file).then((content) => { const document = XmlSchemaDocumentService.createXmlSchemaDocument(documentType, documentId, content); if (hasSchema) { const cleaned = MappingService.removeStaleMappingsForDocument(mappingTree, document); diff --git a/packages/ui/src/components/document/actions/ConditionMenuAction.test.tsx b/packages/ui/src/components/document/actions/ConditionMenuAction.test.tsx new file mode 100644 index 000000000..baa5fcfa0 --- /dev/null +++ b/packages/ui/src/components/document/actions/ConditionMenuAction.test.tsx @@ -0,0 +1,133 @@ +import { ConditionMenuAction } from './ConditionMenuAction'; +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { MappingNodeData, TargetDocumentNodeData, TargetFieldNodeData } from '../../../models/visualization'; +import { TestUtil } from '../../../test/test-util'; +import { ChooseItem, FieldItem, MappingTree } from '../../../models/mapping'; +import { DocumentType } from '../../../models/path'; +import { BODY_DOCUMENT_ID } from '../../../models/document'; +import { VisualizationService } from '../../../services/visualization.service'; +import { MappingService } from '../../../services/mapping.service'; + +describe('ConditionMenuAction', () => { + const targetDoc = TestUtil.createTargetOrderDoc(); + const mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + const documentNodeData = new TargetDocumentNodeData(targetDoc, mappingTree); + + it('should apply ValueSelector', () => { + const nodeData = new TargetFieldNodeData( + documentNodeData, + targetDoc.fields[0], + new FieldItem(mappingTree, targetDoc.fields[0]), + ); + const onUpdateMock = jest.fn(); + const spyOnApply = jest.spyOn(VisualizationService, 'applyValueSelector'); + render(<ConditionMenuAction nodeData={nodeData} onUpdate={onUpdateMock} />); + const actionToggle = screen.getByTestId('transformation-actions-menu-toggle'); + act(() => { + fireEvent.click(actionToggle); + }); + const selectorItem = screen.getByTestId('transformation-actions-selector'); + act(() => { + fireEvent.click(selectorItem.getElementsByTagName('button')[0]); + }); + expect(onUpdateMock.mock.calls.length).toEqual(1); + expect(spyOnApply.mock.calls.length).toEqual(1); + }); + + it('should apply If', () => { + const nodeData = new TargetFieldNodeData( + documentNodeData, + targetDoc.fields[0], + new FieldItem(mappingTree, targetDoc.fields[0]), + ); + const onUpdateMock = jest.fn(); + const spyOnApply = jest.spyOn(VisualizationService, 'applyIf'); + render(<ConditionMenuAction nodeData={nodeData} onUpdate={onUpdateMock} />); + const actionToggle = screen.getByTestId('transformation-actions-menu-toggle'); + act(() => { + fireEvent.click(actionToggle); + }); + const ifItem = screen.getByTestId('transformation-actions-if'); + act(() => { + fireEvent.click(ifItem.getElementsByTagName('button')[0]); + }); + expect(onUpdateMock.mock.calls.length).toEqual(1); + expect(spyOnApply.mock.calls.length).toEqual(1); + }); + + it('should apply choose', () => { + const nodeData = new TargetFieldNodeData( + documentNodeData, + targetDoc.fields[0], + new FieldItem(mappingTree, targetDoc.fields[0]), + ); + const onUpdateMock = jest.fn(); + const spyOnApply = jest.spyOn(VisualizationService, 'applyChooseWhenOtherwise'); + render(<ConditionMenuAction nodeData={nodeData} onUpdate={onUpdateMock} />); + const actionToggle = screen.getByTestId('transformation-actions-menu-toggle'); + act(() => { + fireEvent.click(actionToggle); + }); + const chooseItem = screen.getByTestId('transformation-actions-choose'); + act(() => { + fireEvent.click(chooseItem.getElementsByTagName('button')[0]); + }); + expect(onUpdateMock.mock.calls.length).toEqual(1); + expect(spyOnApply.mock.calls.length).toEqual(1); + }); + + it('should apply when', () => { + const nodeData = new MappingNodeData(documentNodeData, new ChooseItem(mappingTree, targetDoc.fields[0])); + const onUpdateMock = jest.fn(); + const spyOnApply = jest.spyOn(MappingService, 'addWhen'); + render(<ConditionMenuAction nodeData={nodeData} onUpdate={onUpdateMock} />); + const actionToggle = screen.getByTestId('transformation-actions-menu-toggle'); + act(() => { + fireEvent.click(actionToggle); + }); + const whenItem = screen.getByTestId('transformation-actions-when'); + act(() => { + fireEvent.click(whenItem.getElementsByTagName('button')[0]); + }); + expect(onUpdateMock.mock.calls.length).toEqual(1); + expect(spyOnApply.mock.calls.length).toEqual(1); + }); + + it('should apply otherwise', () => { + const nodeData = new MappingNodeData(documentNodeData, new ChooseItem(mappingTree, targetDoc.fields[0])); + const onUpdateMock = jest.fn(); + const spyOnApply = jest.spyOn(MappingService, 'addOtherwise'); + render(<ConditionMenuAction nodeData={nodeData} onUpdate={onUpdateMock} />); + const actionToggle = screen.getByTestId('transformation-actions-menu-toggle'); + act(() => { + fireEvent.click(actionToggle); + }); + const otherwiseItem = screen.getByTestId('transformation-actions-otherwise'); + act(() => { + fireEvent.click(otherwiseItem.getElementsByTagName('button')[0]); + }); + expect(onUpdateMock.mock.calls.length).toEqual(1); + expect(spyOnApply.mock.calls.length).toEqual(1); + }); + + it('should apply for-each', () => { + const nodeData = new TargetFieldNodeData( + documentNodeData, + targetDoc.fields[0].fields[3], + new FieldItem(mappingTree, targetDoc.fields[0].fields[3]), + ); + const onUpdateMock = jest.fn(); + const spyOnApply = jest.spyOn(VisualizationService, 'applyForEach'); + render(<ConditionMenuAction nodeData={nodeData} onUpdate={onUpdateMock} />); + const actionToggle = screen.getByTestId('transformation-actions-menu-toggle'); + act(() => { + fireEvent.click(actionToggle); + }); + const foreachItem = screen.getByTestId('transformation-actions-foreach'); + act(() => { + fireEvent.click(foreachItem.getElementsByTagName('button')[0]); + }); + expect(onUpdateMock.mock.calls.length).toEqual(1); + expect(spyOnApply.mock.calls.length).toEqual(1); + }); +}); diff --git a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx index 1ff3fd2a6..dad98812c 100644 --- a/packages/ui/src/components/document/actions/ConditionMenuAction.tsx +++ b/packages/ui/src/components/document/actions/ConditionMenuAction.tsx @@ -69,6 +69,7 @@ export const ConditionMenuAction: FunctionComponent<ConditionMenuProps> = ({ nod variant="plain" isExpanded={isActionMenuOpen} aria-label="Transformation Action list" + data-testid="transformation-actions-menu-toggle" > <EllipsisVIcon /> </MenuToggle> @@ -79,32 +80,42 @@ export const ConditionMenuAction: FunctionComponent<ConditionMenuProps> = ({ nod > <DropdownList> {allowValueSelector && ( - <DropdownItem key="selector" value="selector" isDisabled={hasValueSelector}> + <DropdownItem + key="selector" + value="selector" + isDisabled={hasValueSelector} + data-testid="transformation-actions-selector" + > Add selector expression </DropdownItem> )} {isChooseNode ? ( <> - <DropdownItem key="when" value="when"> + <DropdownItem key="when" value="when" data-testid="transformation-actions-when"> Add <q>when</q> </DropdownItem> - <DropdownItem key="otherwise" value="otherwise" isDisabled={!!otherwiseItem}> + <DropdownItem + key="otherwise" + value="otherwise" + isDisabled={!!otherwiseItem} + data-testid="transformation-actions-otherwise" + > Add <q>otherwise</q> </DropdownItem> </> ) : ( <> {allowForEach && ( - <DropdownItem key="foreach" value="foreach"> + <DropdownItem key="foreach" value="foreach" data-testid="transformation-actions-foreach"> Wrap with <q>for-each</q> </DropdownItem> )} {allowIfChoose && ( <> - <DropdownItem key="if" value="if"> + <DropdownItem key="if" value="if" data-testid="transformation-actions-if"> Wrap with <q>if</q> </DropdownItem> - <DropdownItem key="choose" value="choose"> + <DropdownItem key="choose" value="choose" data-testid="transformation-actions-choose"> Wrap with <q>choose-when-otherwise</q> </DropdownItem> </> diff --git a/packages/ui/src/components/document/actions/DeleteMappingItemAction.test.tsx b/packages/ui/src/components/document/actions/DeleteMappingItemAction.test.tsx new file mode 100644 index 000000000..208ef4f57 --- /dev/null +++ b/packages/ui/src/components/document/actions/DeleteMappingItemAction.test.tsx @@ -0,0 +1,43 @@ +import { DeleteMappingItemAction } from './DeleteMappingItemAction'; +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { MappingNodeData, TargetDocumentNodeData } from '../../../models/visualization'; +import { MappingTree, ValueSelector } from '../../../models/mapping'; +import { DocumentType } from '../../../models/path'; +import { BODY_DOCUMENT_ID } from '../../../models/document'; +import { TestUtil } from '../../../test/test-util'; +import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { DataMapperProvider } from '../../../providers'; + +describe('DeleteMappingItemAction', () => { + it('should invoke onDelete()', () => { + const targetDoc = TestUtil.createTargetOrderDoc(); + const mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + const docData = new TargetDocumentNodeData(targetDoc, mappingTree); + const nodeData = new MappingNodeData(docData, new ValueSelector(mappingTree)); + const onDeleteMock = jest.fn(); + render( + <DataMapperProvider> + <CanvasProvider> + <DeleteMappingItemAction nodeData={nodeData} onDelete={onDeleteMock} /> + </CanvasProvider> + </DataMapperProvider>, + ); + const deleteBtn = screen.getByTestId('delete-mapping-btn'); + act(() => { + fireEvent.click(deleteBtn); + }); + const cancelBtn = screen.getByTestId('delete-mapping-cancel-btn'); + act(() => { + fireEvent.click(cancelBtn); + }); + expect(onDeleteMock.mock.calls.length).toBe(0); + act(() => { + fireEvent.click(deleteBtn); + }); + const confirmBtn = screen.getByTestId('delete-mapping-confirm-btn'); + act(() => { + fireEvent.click(confirmBtn); + }); + expect(onDeleteMock.mock.calls.length).toBe(1); + }); +}); diff --git a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx index 423a7f3c3..d05341099 100644 --- a/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx +++ b/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx @@ -30,7 +30,7 @@ export const DeleteMappingItemAction: FunctionComponent<DeleteItemProps> = ({ no return ( <ActionListItem key="delete-item"> <Tooltip position={'auto'} enableFlip={true} content={<div>{title}</div>}> - <Button variant="plain" aria-label={title} data-testid={`delete-mapping-button`} onClick={openModal}> + <Button variant="plain" aria-label={title} data-testid="delete-mapping-btn" onClick={openModal}> <TrashIcon /> </Button> </Tooltip> @@ -39,11 +39,12 @@ export const DeleteMappingItemAction: FunctionComponent<DeleteItemProps> = ({ no isOpen={isModalOpen} title={title} onClose={closeModal} + data-testid="delete-mapping-modal" actions={[ - <Button key="confirm" variant="primary" onClick={onConfirmDelete}> + <Button key="confirm" variant="primary" onClick={onConfirmDelete} data-testid="delete-mapping-confirm-btn"> Confirm </Button>, - <Button key="cancel" variant="link" onClick={closeModal}> + <Button key="cancel" variant="link" onClick={closeModal} data-testid="delete-mapping-cancel-btn"> Cancel </Button>, ]} diff --git a/packages/ui/src/components/document/actions/DeleteParameterButton.test.tsx b/packages/ui/src/components/document/actions/DeleteParameterButton.test.tsx new file mode 100644 index 000000000..68bb7b9db --- /dev/null +++ b/packages/ui/src/components/document/actions/DeleteParameterButton.test.tsx @@ -0,0 +1,44 @@ +import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; +import { DataMapperProvider } from '../../../providers'; +import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { DeleteParameterButton } from './DeleteParameterButton'; +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { useDataMapper } from '../../../hooks'; +import { IDocument, PrimitiveDocument } from '../../../models/document'; +import { DocumentType } from '../../../models/path'; + +describe('DeleteParameterButton', () => { + it('should delete a parameter', () => { + let parameterMap: Map<string, IDocument>; + const ParamTest: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { sourceParameterMap } = useDataMapper(); + useEffect(() => { + sourceParameterMap.set('testparam1', new PrimitiveDocument(DocumentType.PARAM, 'testparam1')); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + useEffect(() => { + parameterMap = sourceParameterMap; + }, [sourceParameterMap]); + return <>{children}</>; + }; + render( + <DataMapperProvider> + <CanvasProvider> + <ParamTest> + <DeleteParameterButton parameterName="testparam1" /> + </ParamTest> + </CanvasProvider> + </DataMapperProvider>, + ); + expect(parameterMap!.size).toEqual(1); + const deleteBtn = screen.getByTestId('delete-parameter-testparam1-button'); + act(() => { + fireEvent.click(deleteBtn); + }); + const confirmBtn = screen.getByTestId('delete-parameter-modal-confirm-btn'); + act(() => { + fireEvent.click(confirmBtn); + }); + expect(parameterMap!.size).toEqual(0); + }); +}); diff --git a/packages/ui/src/components/document/actions/DetachSchemaButton.test.tsx b/packages/ui/src/components/document/actions/DetachSchemaButton.test.tsx new file mode 100644 index 000000000..d3c0236e9 --- /dev/null +++ b/packages/ui/src/components/document/actions/DetachSchemaButton.test.tsx @@ -0,0 +1,46 @@ +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { DataMapperProvider } from '../../../providers'; +import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { DetachSchemaButton } from './DetachSchemaButton'; +import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../../../models/document'; +import { DocumentType } from '../../../models/path'; +import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; +import { useDataMapper } from '../../../hooks'; +import { TestUtil } from '../../../test/test-util'; + +describe('DetachSchemaButton', () => { + it('should detach the schema', () => { + let sourceDoc: IDocument; + const DetachTest: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { sourceBodyDocument, setSourceBodyDocument } = useDataMapper(); + useEffect(() => { + setSourceBodyDocument(TestUtil.createSourceOrderDoc()); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + useEffect(() => { + sourceDoc = sourceBodyDocument; + }, [sourceBodyDocument]); + return <>{children}</>; + }; + render( + <DataMapperProvider> + <CanvasProvider> + <DetachTest> + <DetachSchemaButton documentId={BODY_DOCUMENT_ID} documentType={DocumentType.SOURCE_BODY} /> + </DetachTest> + </CanvasProvider> + </DataMapperProvider>, + ); + expect(sourceDoc!.fields.length).toBe(1); + const detachBtn = screen.getByTestId('detach-schema-sourceBody-Body-button'); + act(() => { + fireEvent.click(detachBtn); + }); + const confirmBtn = screen.getByTestId('detach-schema-modal-confirm-btn'); + act(() => { + fireEvent.click(confirmBtn); + }); + expect(sourceDoc!.fields.length).toBe(0); + expect(sourceDoc! instanceof PrimitiveDocument); + }); +}); diff --git a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx index f7b92a66e..56163440e 100644 --- a/packages/ui/src/components/document/actions/DetachSchemaButton.tsx +++ b/packages/ui/src/components/document/actions/DetachSchemaButton.tsx @@ -92,10 +92,15 @@ export const DetachSchemaButton: FunctionComponent<DeleteSchemaProps> = ({ docum data-testid="detach-schema-modal" onClose={closeModal} actions={[ - <Button key="confirm" variant="primary" data-testid="detach-schema-modal-confirm" onClick={onConfirmDelete}> + <Button + key="confirm" + variant="primary" + data-testid="detach-schema-modal-confirm-btn" + onClick={onConfirmDelete} + > Confirm </Button>, - <Button key="cancel" variant="link" data-testid="detach-schema-modal-cancel" onClick={closeModal}> + <Button key="cancel" variant="link" data-testid="detach-schema-modal-cancel-btn" onClick={closeModal}> Cancel </Button>, ]} diff --git a/packages/ui/src/components/document/actions/DocumentActions.test.tsx b/packages/ui/src/components/document/actions/DocumentActions.test.tsx new file mode 100644 index 000000000..728a9f3a1 --- /dev/null +++ b/packages/ui/src/components/document/actions/DocumentActions.test.tsx @@ -0,0 +1,21 @@ +import { DocumentActions } from './DocumentActions'; +import { render, screen } from '@testing-library/react'; +import { DocumentNodeData } from '../../../models/visualization'; +import { TestUtil } from '../../../test/test-util'; +import { DataMapperProvider } from '../../../providers'; +import { CanvasProvider } from '../../../providers/CanvasProvider'; + +describe('DocumentActions', () => { + it('should render', () => { + const docData = new DocumentNodeData(TestUtil.createSourceOrderDoc()); + render( + <DataMapperProvider> + <CanvasProvider> + <DocumentActions nodeData={docData} /> + </CanvasProvider> + </DataMapperProvider>, + ); + screen.debug(); + expect(screen.getByTestId('attach-schema-sourceBody-ShipOrder.xsd-button')); + }); +}); diff --git a/packages/ui/src/components/document/actions/ExpressionEditorAction.test.tsx b/packages/ui/src/components/document/actions/ExpressionEditorAction.test.tsx new file mode 100644 index 000000000..fa0efe770 --- /dev/null +++ b/packages/ui/src/components/document/actions/ExpressionEditorAction.test.tsx @@ -0,0 +1,30 @@ +import { ExpressionEditorAction } from './ExpressionEditorAction'; +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { MappingTree, ValueSelector } from '../../../models/mapping'; +import { TestUtil } from '../../../test/test-util'; +import { DocumentType } from '../../../models/path'; +import { BODY_DOCUMENT_ID } from '../../../models/document'; +import { TargetDocumentNodeData } from '../../../models/visualization'; +import { DataMapperProvider } from '../../../providers'; +import { CanvasProvider } from '../../../providers/CanvasProvider'; + +describe('ExpressionEditorAction', () => { + it('should open expression editor modal', async () => { + const doc = TestUtil.createTargetOrderDoc(); + const tree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + const docData = new TargetDocumentNodeData(doc, tree); + render( + <DataMapperProvider> + <CanvasProvider> + <ExpressionEditorAction mapping={new ValueSelector(tree)} nodeData={docData} onUpdate={jest.fn()} /> + </CanvasProvider> + </DataMapperProvider>, + ); + const editBtn = screen.getByTestId(`edit-expression-button-${docData.id}`); + act(() => { + fireEvent.click(editBtn); + }); + const modal = await screen.findByTestId('expression-editor-modal'); + expect(modal).toBeInTheDocument(); + }); +}); diff --git a/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx b/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx index 08182784a..71692b3a6 100644 --- a/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx +++ b/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx @@ -35,8 +35,13 @@ export const ExpressionEditorAction: FunctionComponent<ExpressionEditorProps> = variant={ModalVariant.large} isOpen={isEditorOpen} onClose={closeExpressionEditor} + data-testid="expression-editor-modal" actions={[ - <Button key="close-expression-editor" onClick={closeExpressionEditor}> + <Button + key="close-expression-editor" + onClick={closeExpressionEditor} + data-testid="close-expression-editor-btn" + > Close </Button>, ]} diff --git a/packages/ui/src/components/document/actions/ExpressionInputAction.test.tsx b/packages/ui/src/components/document/actions/ExpressionInputAction.test.tsx new file mode 100644 index 000000000..a8b73266c --- /dev/null +++ b/packages/ui/src/components/document/actions/ExpressionInputAction.test.tsx @@ -0,0 +1,21 @@ +import { ExpressionInputAction } from './ExpressionInputAction'; +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { MappingTree, ValueSelector } from '../../../models/mapping'; +import { BODY_DOCUMENT_ID } from '../../../models/document'; +import { DocumentType } from '../../../models/path'; + +describe('ExpressionInputAction', () => { + it('should update expression', () => { + const tree = new MappingTree(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID); + const mapping = new ValueSelector(tree); + const onUpdateMock = jest.fn(); + render(<ExpressionInputAction mapping={mapping} onUpdate={onUpdateMock} />); + expect(mapping.expression).toBeFalsy(); + const input = screen.getByTestId('transformation-expression-input'); + act(() => { + fireEvent.change(input, { target: { value: '/ShipOrder' } }); + }); + expect(mapping.expression).toEqual('/ShipOrder'); + expect(onUpdateMock.mock.calls.length).toEqual(1); + }); +}); diff --git a/packages/ui/src/components/document/actions/TargetNodeActions.test.tsx b/packages/ui/src/components/document/actions/TargetNodeActions.test.tsx new file mode 100644 index 000000000..d69a3e33d --- /dev/null +++ b/packages/ui/src/components/document/actions/TargetNodeActions.test.tsx @@ -0,0 +1,35 @@ +import { TargetNodeActions } from './TargetNodeActions'; +import { render, screen } from '@testing-library/react'; +import { MappingNodeData, TargetDocumentNodeData } from '../../../models/visualization'; +import { TestUtil } from '../../../test/test-util'; +import { MappingTree, ValueSelector } from '../../../models/mapping'; +import { DocumentType } from '../../../models/path'; +import { BODY_DOCUMENT_ID } from '../../../models/document'; +import { DataMapperProvider } from '../../../providers'; +import { CanvasProvider } from '../../../providers/CanvasProvider'; + +describe('TargetNodeActions', () => { + it('should render', () => { + const targetDoc = TestUtil.createTargetOrderDoc(); + const tree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + const nodeData = new TargetDocumentNodeData(targetDoc, tree); + render(<TargetNodeActions nodeData={nodeData} onUpdate={jest.fn()} />); + expect(screen.getByTestId('transformation-actions-menu-toggle')).toBeTruthy(); + }); + + it('should render expression action', () => { + const targetDoc = TestUtil.createTargetOrderDoc(); + const tree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + const docData = new TargetDocumentNodeData(targetDoc, tree); + const mappingData = new MappingNodeData(docData, new ValueSelector(tree)); + render( + <DataMapperProvider> + <CanvasProvider> + <TargetNodeActions nodeData={mappingData} onUpdate={jest.fn()} /> + </CanvasProvider> + </DataMapperProvider>, + ); + expect(screen.getByTestId('transformation-expression-input')).toBeTruthy(); + expect(screen.getByTestId(`edit-expression-button-${mappingData.id}`)).toBeTruthy(); + }); +}); diff --git a/packages/ui/src/components/expression/FunctionIcon.test.tsx b/packages/ui/src/components/expression/FunctionIcon.test.tsx new file mode 100644 index 000000000..761fe9f32 --- /dev/null +++ b/packages/ui/src/components/expression/FunctionIcon.test.tsx @@ -0,0 +1,9 @@ +import { FunctionIcon } from './FunctionIcon'; +import { render, screen } from '@testing-library/react'; + +describe('FunctionIcon', () => { + it('should render', () => { + render(<FunctionIcon />); + expect(screen.getByText('(x)')).toBeTruthy(); + }); +}); diff --git a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx index 14c7bc70f..73f815b70 100644 --- a/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx @@ -35,7 +35,7 @@ export const ExportMappingFileDropdownItem: FunctionComponent<{ const modalActions = useMemo(() => { return [ - <Button key="Close" variant="primary" onClick={handleModalClose}> + <Button key="Close" variant="primary" onClick={handleModalClose} data-testid="export-mappings-modal-close-btn"> Close </Button>, ]; @@ -56,6 +56,7 @@ export const ExportMappingFileDropdownItem: FunctionComponent<{ isOpen={isModalOpen} onClose={() => handleModalClose()} actions={modalActions} + data-testid="export-mappings-modal" > <CodeEditor isReadOnly={false} @@ -66,6 +67,7 @@ export const ExportMappingFileDropdownItem: FunctionComponent<{ height="sizeToFit" width="sizeToFit" options={editorOptions} + data-testid="export-mappings-code-editor" /> </Modal> </> diff --git a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx index 265ec0d47..e5ab575ef 100644 --- a/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx @@ -3,7 +3,7 @@ import { ChangeEvent, createRef, FunctionComponent, useCallback } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; import { MappingSerializerService } from '../../services/mapping-serializer.service'; import { useDataMapper } from '../../hooks'; -import { readFileAsString } from '../../util'; +import { CommonUtil } from '../../util'; type ImportMappingFileDropdownItemProps = { onComplete: () => void; @@ -23,7 +23,7 @@ export const ImportMappingFileDropdownItem: FunctionComponent<ImportMappingFileD (event: ChangeEvent<HTMLInputElement>) => { const file = event.target.files?.item(0); if (!file) return; - readFileAsString(file).then((content) => { + CommonUtil.readFileAsString(file).then((content) => { MappingSerializerService.deserialize(content, targetBodyDocument, mappingTree, sourceParameterMap); refreshMappingTree(); onComplete(); diff --git a/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx b/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx index 55a92ade4..239771923 100644 --- a/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx +++ b/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx @@ -11,8 +11,9 @@ export const ToggleDebugToolbarItem: FunctionComponent = () => { <ToggleGroup> <ToggleGroupItem icon={<BugIcon />} - aria-label={'Enable debug mode'} - buttonId={'enable-debug-mode'} + aria-label="Enable debug mode" + buttonId="enable-debug-mode" + data-testid="enable-debug-mode-btn" isSelected={debug} onChange={() => setDebug(!debug)} ></ToggleGroupItem> diff --git a/packages/ui/src/layout/MainLayout.test.tsx b/packages/ui/src/layout/MainLayout.test.tsx new file mode 100644 index 000000000..d3d73aaac --- /dev/null +++ b/packages/ui/src/layout/MainLayout.test.tsx @@ -0,0 +1,121 @@ +import { DataMapperProvider } from '../providers'; +import { CanvasProvider } from '../providers/CanvasProvider'; +import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { MainLayout } from './MainLayout'; +import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; +import { useDataMapper } from '../hooks'; +import { useCanvas } from '../hooks/useCanvas'; +import { TestUtil } from '../test/test-util'; +import { MappingSerializerService } from '../services/mapping-serializer.service'; +import { CanvasMonitor } from '../components/debug/CanvasMonitor'; +import { DataMapperMonitor } from '../components/debug/DataMapperMonitor'; +import { MappingTree } from '../models/mapping'; + +describe('MainLayout', () => { + describe('Main Menu', () => { + it('should import and export mappings', async () => { + let spyOnMappingTree: MappingTree; + const TestLoader: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { mappingTree, setSourceBodyDocument, setTargetBodyDocument } = useDataMapper(); + const { reloadNodeReferences } = useCanvas(); + useEffect(() => { + const sourceDoc = TestUtil.createSourceOrderDoc(); + setSourceBodyDocument(sourceDoc); + const targetDoc = TestUtil.createTargetOrderDoc(); + setTargetBodyDocument(targetDoc); + reloadNodeReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + useEffect(() => { + spyOnMappingTree = mappingTree; + }, [mappingTree]); + return <>{children}</>; + }; + render( + <DataMapperProvider> + <CanvasProvider> + <TestLoader> + <MainLayout /> + </TestLoader> + </CanvasProvider> + </DataMapperProvider>, + ); + let mainMenuButton = screen.getByTestId('main-menu-button'); + act(() => { + fireEvent.click(mainMenuButton); + }); + const importButton = screen.getByTestId('import-mappings-button'); + act(() => { + fireEvent.click(importButton); + }); + const fileContent = new File([new Blob([TestUtil.shipOrderToShipOrderXslt])], 'ShipOrderToShipOrder.xsl', { + type: 'text/plain', + }); + const fileInput = screen.getByTestId('import-mappings-file-input'); + expect(spyOnMappingTree!.children.length).toBe(0); + act(() => { + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + }); + await waitFor(() => expect(spyOnMappingTree!.children.length).toBe(1)); + + mainMenuButton = screen.getByTestId('main-menu-button'); + act(() => { + fireEvent.click(mainMenuButton); + }); + const exportButton = screen.getByTestId('export-mappings-button'); + act(() => { + fireEvent.click(exportButton.getElementsByTagName('button')[0]); + }); + const modal = await screen.findAllByTestId('export-mappings-modal'); + expect(modal).toBeTruthy(); + const closeModalButton = screen.getByTestId('export-mappings-modal-close-btn'); + act(() => { + fireEvent.click(closeModalButton); + }); + expect(screen.queryByTestId('export-mappings-modal')).toBeFalsy(); + }); + }); + + describe('debug', () => { + it('should output debug info to console', () => { + const TestLoader: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { mappingTree, setMappingTree, sourceParameterMap, setSourceBodyDocument, setTargetBodyDocument } = + useDataMapper(); + const { reloadNodeReferences } = useCanvas(); + useEffect(() => { + const sourceDoc = TestUtil.createSourceOrderDoc(); + setSourceBodyDocument(sourceDoc); + const targetDoc = TestUtil.createTargetOrderDoc(); + setTargetBodyDocument(targetDoc); + MappingSerializerService.deserialize( + TestUtil.shipOrderToShipOrderXslt, + targetDoc, + mappingTree, + sourceParameterMap, + ); + setMappingTree(mappingTree); + reloadNodeReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + return <>{children}</>; + }; + const mockLog = jest.fn(); + console.log = mockLog; + render( + <DataMapperProvider> + <CanvasProvider> + <TestLoader> + <DataMapperMonitor /> + <CanvasMonitor /> + <MainLayout /> + </TestLoader> + </CanvasProvider> + </DataMapperProvider>, + ); + const nodeRefsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Node References: [')); + expect(nodeRefsLog.length).toBeGreaterThan(0); + const mappingsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Mapping: [')); + expect(mappingsLog.length).toBeGreaterThan(0); + }); + }); +}); diff --git a/packages/ui/src/layout/views/SourceTargetView.test.tsx b/packages/ui/src/layout/views/SourceTargetView.test.tsx new file mode 100644 index 000000000..1c82cf0c0 --- /dev/null +++ b/packages/ui/src/layout/views/SourceTargetView.test.tsx @@ -0,0 +1,76 @@ +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { DataMapperProvider } from '../../providers'; +import { CanvasProvider } from '../../providers/CanvasProvider'; +import { SourceTargetView } from './SourceTargetView'; +import { TestUtil } from '../../test/test-util'; + +describe('SourceTargetView', () => { + describe('Source Body Document', () => { + it('should attach and detach schema', async () => { + render( + <DataMapperProvider> + <CanvasProvider> + <SourceTargetView /> + </CanvasProvider> + </DataMapperProvider>, + ); + const attachButton = screen.getByTestId('attach-schema-sourceBody-Body-button'); + act(() => { + fireEvent.click(attachButton); + }); + const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + act(() => { + fireEvent.click(attachButton); + }); + const fileInput = screen.getByTestId('attach-schema-sourceBody-Body-file-input'); + act(() => { + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + }); + const shipTo = await screen.findByText('ShipTo'); + expect(shipTo).toBeTruthy(); + const detachButton = screen.getByTestId('detach-schema-sourceBody-Body-button'); + act(() => { + fireEvent.click(detachButton); + }); + const detachConfirmButton = screen.getByTestId('detach-schema-modal-confirm-btn'); + act(() => { + fireEvent.click(detachConfirmButton); + }); + expect(screen.queryByTestId('ShipTo')).toBeFalsy(); + }); + }); + describe('Target Body Document', () => { + it('should attach and detach schema', async () => { + render( + <DataMapperProvider> + <CanvasProvider> + <SourceTargetView /> + </CanvasProvider> + </DataMapperProvider>, + ); + const attachButton = screen.getByTestId('attach-schema-targetBody-Body-button'); + act(() => { + fireEvent.click(attachButton); + }); + const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + act(() => { + fireEvent.click(attachButton); + }); + const fileInput = screen.getByTestId('attach-schema-targetBody-Body-file-input'); + act(() => { + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + }); + const shipTo = await screen.findByText('ShipTo'); + expect(shipTo).toBeTruthy(); + const detachButton = screen.getByTestId('detach-schema-targetBody-Body-button'); + act(() => { + fireEvent.click(detachButton); + }); + const detachConfirmButton = screen.getByTestId('detach-schema-modal-confirm-btn'); + act(() => { + fireEvent.click(detachConfirmButton); + }); + expect(screen.queryByTestId('ShipTo')).toBeFalsy(); + }); + }); +}); diff --git a/packages/ui/src/models/document.ts b/packages/ui/src/models/document.ts index f1601bbb3..6bfbaf4cc 100644 --- a/packages/ui/src/models/document.ts +++ b/packages/ui/src/models/document.ts @@ -1,6 +1,6 @@ import { Types } from './types'; import { DocumentType, NodePath } from './path'; -import { generateRandomId } from '../util'; +import { CommonUtil } from '../util'; export const DEFAULT_MIN_OCCURS = 0; export const DEFAULT_MAX_OCCURS = 1; @@ -81,7 +81,7 @@ export class BaseField implements IField { public ownerDocument: IDocument, public name: string, ) { - this.id = generateRandomId(`field-${this.name}`, 4); + this.id = CommonUtil.generateRandomId(`field-${this.name}`, 4); this.path = NodePath.childOf(parent.path, this.id); } diff --git a/packages/ui/src/models/mapping.ts b/packages/ui/src/models/mapping.ts index 99fc47bdd..2bef29f9f 100644 --- a/packages/ui/src/models/mapping.ts +++ b/packages/ui/src/models/mapping.ts @@ -1,5 +1,5 @@ import { IField } from './document'; -import { generateRandomId } from '../util'; +import { CommonUtil } from '../util'; import { DocumentType, NodePath, Path } from './path'; import { Types } from './types'; @@ -56,7 +56,7 @@ export abstract class ConditionItem extends MappingItem { public parent: MappingParentType, public name: string, ) { - super(parent, name, generateRandomId(name, 4)); + super(parent, name, CommonUtil.generateRandomId(name, 4)); } readonly isCondition = true; } diff --git a/packages/ui/src/util/common.test.ts b/packages/ui/src/util/common.test.ts index a5dddd116..c34fd4d35 100644 --- a/packages/ui/src/util/common.test.ts +++ b/packages/ui/src/util/common.test.ts @@ -1,10 +1,10 @@ -import { generateRandomId, readFileAsString } from './common'; +import { CommonUtil } from './common'; describe('generateRandomId()', () => { it('should generate', () => { - const generated = generateRandomId('dummy', 4); + const generated = CommonUtil.generateRandomId('dummy', 4); expect(generated).toMatch(/dummy-\d{4}/); - expect(generateRandomId('dummy', 4)).not.toEqual(generateRandomId('dummy', 4)); + expect(CommonUtil.generateRandomId('dummy', 4)).not.toEqual(CommonUtil.generateRandomId('dummy', 4)); }); }); @@ -13,7 +13,7 @@ describe('readFileAsString()', () => { const file = new File(['foo'], 'foo.txt', { type: 'text/plain', }); - const answer = await readFileAsString(file); + const answer = await CommonUtil.readFileAsString(file); expect(answer).toEqual('foo'); }); }); diff --git a/packages/ui/src/util/common.ts b/packages/ui/src/util/common.ts index f9aa0c1b6..707ba988f 100644 --- a/packages/ui/src/util/common.ts +++ b/packages/ui/src/util/common.ts @@ -1,15 +1,17 @@ -export const generateRandomId = (kind: string, length = 4): string => { - const randomNumber = Math.floor(Math.random() * 10 ** length); - const randomNumberString = randomNumber.toString(10).padStart(4, '0'); - return `${kind}-${randomNumberString}`; -}; +export class CommonUtil { + static generateRandomId = (kind: string, length = 4): string => { + const randomNumber = Math.floor(Math.random() * 10 ** length); + const randomNumberString = randomNumber.toString(10).padStart(4, '0'); + return `${kind}-${randomNumberString}`; + }; -export const readFileAsString = (file: File): Promise<string> => { - const reader = new FileReader(); - return new Promise<string>((resolve, reject) => { - reader.onload = (e) => { - e.target ? resolve(e.target.result as string) : reject(); - }; - reader.readAsText(file); - }); -}; + static readFileAsString = (file: File): Promise<string> => { + const reader = new FileReader(); + return new Promise<string>((resolve, reject) => { + reader.onload = (e) => { + e.target ? resolve(e.target.result as string) : reject(); + }; + reader.readAsText(file); + }); + }; +} From 24948ebbc5e116c1a08b37779c56a9f0d2f539dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 00:34:33 +0000 Subject: [PATCH 340/471] chore(deps): update dependency husky to v9.1.5 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 71c4da24f..6a1d65f49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8847,11 +8847,11 @@ __metadata: linkType: hard "husky@npm:^9.0.0": - version: 9.1.4 - resolution: "husky@npm:9.1.4" + version: 9.1.5 + resolution: "husky@npm:9.1.5" bin: husky: bin.js - checksum: 7608a6dfac264876a2ff37f2db8520e0f9f0ea2b810a9ca151548327e9eca0b7ed58a63e0a208d20d3f43b191d8f111edcab46c3c8132c95e10ef7bd7115ee9b + checksum: c240018e852666dc12a93ca84751f1440bdf436468ba872c7b7b3cee54f5f1d7b4222a117988b27ca437093efdeb128778897ab0e409361336676a2c3012c8a7 languageName: node linkType: hard From 24ab1d786571a3607a58ba250f134f2b41a33c3d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 01:05:40 +0000 Subject: [PATCH 341/471] chore(deps): update dependency @babel/preset-env to v7.25.4 --- yarn.lock | 244 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 190 insertions(+), 54 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6a1d65f49..11bc18c72 100644 --- a/yarn.lock +++ b/yarn.lock @@ -87,6 +87,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/compat-data@npm:7.25.4" + checksum: b12a91d27c3731a4b0bdc9312a50b1911f41f7f728aaf0d4b32486e2257fd2cb2d3ea1a295e98449600c48f2c7883a3196ca77cda1cef7d97a10c2e83d037974 + languageName: node + linkType: hard + "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": version: 7.25.2 resolution: "@babel/core@npm:7.25.2" @@ -146,6 +153,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/generator@npm:7.25.4" + dependencies: + "@babel/types": ^7.25.4 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: 0096986585ccb2dbb8feb78aeaddb1b089ed7f6aafb16ec0f7bd931f04e1fc7d3d12e96999b6746f72d851b09453141522ddcf924bcac8cfe07c5d631bb09c8d + languageName: node + linkType: hard + "@babel/generator@npm:^7.7.2": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -257,6 +276,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-member-expression-to-functions": ^7.24.8 + "@babel/helper-optimise-call-expression": ^7.24.7 + "@babel/helper-replace-supers": ^7.25.0 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/traverse": ^7.25.4 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 4544ebda4516eb25efdebd47ca024bd7bdb1eb6e7cc3ad89688c8ef8e889734c2f4411ed78981899c641394f013f246f2af63d92a0e9270f6c453309b4cb89ba + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6": version: 7.22.15 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" @@ -296,6 +332,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-regexp-features-plugin@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + regexpu-core: ^5.3.1 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: df55fdc6a1f3090dd37d91347df52d9322d52affa239543808dc142f8fe35e6787e67d8612337668198fac85826fafa9e6772e6c28b7d249ec94e6fafae5da6e + languageName: node + linkType: hard + "@babel/helper-define-polyfill-provider@npm:^0.6.1": version: 0.6.1 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1" @@ -311,6 +360,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-define-polyfill-provider@npm:^0.6.2": + version: 0.6.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-environment-visitor@npm:7.24.7" @@ -732,6 +796,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/parser@npm:7.25.4" + dependencies: + "@babel/types": ^7.25.4 + bin: + parser: ./bin/babel-parser.js + checksum: fe4f083d4ad34f019dd7fad672cd007003004fb0a3df9b7315a5da9a5e8e56c1fed95acab6862e7d76cfccb2e8e364bcc307e9117718e6bb6dfb2e87ad065abf + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": version: 7.25.3 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" @@ -1065,17 +1140,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.4" dependencies: "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-remap-async-to-generator": ^7.25.0 "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/traverse": ^7.25.0 + "@babel/traverse": ^7.25.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cce2bab70ad871ac11751bede006bd4861888f4c63bc9954be38620b14cc6890a4cbc633c1062b89c5fe288ce74b9d1974cc0d43c04baeeb2b13231a236fba85 + checksum: 4235444735a1946f8766fe56564a8134c2c36c73e6cf83b3f2ed5624ebc84ff5979506a6a5b39acdb23aa09d442a6af471710ed408ccce533a2c4d2990b9df6a languageName: node linkType: hard @@ -1114,15 +1189,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" +"@babel/plugin-transform-class-properties@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.4" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.25.4 + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1348d7ce74da38ba52ea85b3b4289a6a86913748569ef92ef0cff30702a9eb849e5eaf59f1c6f3517059aa68115fb3067e389735dccacca39add4e2b0c67e291 + checksum: b73f7d968639c6c2dfc13f4c5a8fe45cefd260f0faa7890ae12e65d41211072544ff5e128c8b61a86887b29ffd3df8422dbdfbf61648488e71d4bb599c41f4a5 languageName: node linkType: hard @@ -1139,19 +1214,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-classes@npm:7.25.0" +"@babel/plugin-transform-classes@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/plugin-transform-classes@npm:7.25.4" dependencies: "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-compilation-targets": ^7.24.8 + "@babel/helper-compilation-targets": ^7.25.2 "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-replace-supers": ^7.25.0 - "@babel/traverse": ^7.25.0 + "@babel/traverse": ^7.25.4 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ff97f168e6a18fa4e7bb439f1a170dc83c470973091c22c74674769350ab572be5af017cdb64fbd261fe99d068a4ee88f1b7fa7f5ab524d84c2f2833b116e577 + checksum: 0bf20e46eeb691bd60cee5d1b01950fc37accec88018ecace25099f7c8d8509c1ac54d11b8caf9f2157c6945969520642a3bc421159c1a14e80224dc9a7611de languageName: node linkType: hard @@ -1506,15 +1581,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" +"@babel/plugin-transform-private-methods@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.4" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.25.4 + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c151548e34909be2adcceb224d8fdd70bafa393bc1559a600906f3f647317575bf40db670470934a360e90ee8084ef36dffa34ec25d387d414afd841e74cf3fe + checksum: cb1dabfc03e2977990263d65bc8f43a9037dffbb5d9a5f825c00d05447ff68015099408c1531d9dd88f18a41a90f5062dc48f3a1d52b415d2d2ee4827dedff09 languageName: node linkType: hard @@ -1742,23 +1817,23 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.4" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-create-regexp-features-plugin": ^7.25.2 + "@babel/helper-plugin-utils": ^7.24.8 peerDependencies: "@babel/core": ^7.0.0 - checksum: 08a2844914f33dacd2ce1ab021ce8c1cc35dc6568521a746d8bf29c21571ee5be78787b454231c4bb3526cbbe280f1893223c82726cec5df2be5dae0a3b51837 + checksum: 6d1a7e9fdde4ffc9a81c0e3f261b96a9a0dfe65da282ec96fe63b36c597a7389feac638f1df2a8a4f8c9128337bba8e984f934e9f19077930f33abf1926759ea languageName: node linkType: hard "@babel/preset-env@npm:^7.24.0": - version: 7.25.3 - resolution: "@babel/preset-env@npm:7.25.3" + version: 7.25.4 + resolution: "@babel/preset-env@npm:7.25.4" dependencies: - "@babel/compat-data": ^7.25.2 + "@babel/compat-data": ^7.25.4 "@babel/helper-compilation-targets": ^7.25.2 "@babel/helper-plugin-utils": ^7.24.8 "@babel/helper-validator-option": ^7.24.8 @@ -1787,13 +1862,13 @@ __metadata: "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 "@babel/plugin-transform-arrow-functions": ^7.24.7 - "@babel/plugin-transform-async-generator-functions": ^7.25.0 + "@babel/plugin-transform-async-generator-functions": ^7.25.4 "@babel/plugin-transform-async-to-generator": ^7.24.7 "@babel/plugin-transform-block-scoped-functions": ^7.24.7 "@babel/plugin-transform-block-scoping": ^7.25.0 - "@babel/plugin-transform-class-properties": ^7.24.7 + "@babel/plugin-transform-class-properties": ^7.25.4 "@babel/plugin-transform-class-static-block": ^7.24.7 - "@babel/plugin-transform-classes": ^7.25.0 + "@babel/plugin-transform-classes": ^7.25.4 "@babel/plugin-transform-computed-properties": ^7.24.7 "@babel/plugin-transform-destructuring": ^7.24.8 "@babel/plugin-transform-dotall-regex": ^7.24.7 @@ -1821,7 +1896,7 @@ __metadata: "@babel/plugin-transform-optional-catch-binding": ^7.24.7 "@babel/plugin-transform-optional-chaining": ^7.24.8 "@babel/plugin-transform-parameters": ^7.24.7 - "@babel/plugin-transform-private-methods": ^7.24.7 + "@babel/plugin-transform-private-methods": ^7.25.4 "@babel/plugin-transform-private-property-in-object": ^7.24.7 "@babel/plugin-transform-property-literals": ^7.24.7 "@babel/plugin-transform-regenerator": ^7.24.7 @@ -1834,16 +1909,16 @@ __metadata: "@babel/plugin-transform-unicode-escapes": ^7.24.7 "@babel/plugin-transform-unicode-property-regex": ^7.24.7 "@babel/plugin-transform-unicode-regex": ^7.24.7 - "@babel/plugin-transform-unicode-sets-regex": ^7.24.7 + "@babel/plugin-transform-unicode-sets-regex": ^7.25.4 "@babel/preset-modules": 0.1.6-no-external-plugins babel-plugin-polyfill-corejs2: ^0.4.10 - babel-plugin-polyfill-corejs3: ^0.10.4 + babel-plugin-polyfill-corejs3: ^0.10.6 babel-plugin-polyfill-regenerator: ^0.6.1 core-js-compat: ^3.37.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9735a44e557f7ef4ade87f59c0d69e4af3383432a23ae7a3cba33e3741bd7812f2d6403a0d94ebfda5f4bd9fdc6250a52c4a156407029f590fde511a792e64e2 + checksum: 752be43f0b78a2eefe5007076aed3d21b505e1c09d134b61e7de8838f1bbb1e7af81023d39adb14b6eae23727fb5a9fd23f8115a44df043319be22319be17913 languageName: node linkType: hard @@ -2021,6 +2096,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/traverse@npm:7.25.4" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.25.4 + "@babel/parser": ^7.25.4 + "@babel/template": ^7.25.0 + "@babel/types": ^7.25.4 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 3b6d879b9d843b119501585269b3599f047011ae21eb7820d00aef62fc3a2bcdaf6f4cdf2679795a2d7c0b6b5d218974916e422f08dea08613dc42188ef21e4b + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" @@ -2076,6 +2166,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.25.4": + version: 7.25.4 + resolution: "@babel/types@npm:7.25.4" + dependencies: + "@babel/helper-string-parser": ^7.24.8 + "@babel/helper-validator-identifier": ^7.24.7 + to-fast-properties: ^2.0.0 + checksum: 497f8b583c54a92a59c3ec542144695064cd5c384fcca46ba1aa301d5e5dd6c1d011f312ca024cb0f9c956da07ae82fb4c348c31a30afa31a074c027720d2aa8 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -5534,15 +5635,15 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.10.4": - version: 0.10.4 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4" +"babel-plugin-polyfill-corejs3@npm:^0.10.6": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.1 - core-js-compat: ^3.36.1 + "@babel/helper-define-polyfill-provider": ^0.6.2 + core-js-compat: ^3.38.0 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: b96a54495f7cc8b3797251c8c15f5ed015edddc3110fc122f6b32c94bec33af1e8bc56fa99091808f500bde0cccaaa266889cdc5935d9e6e9cf09898214f02dd + checksum: f762f29f7acca576897c63149c850f0a72babd3fb9ea436a2e36f0c339161c4b912a77828541d8188ce8a91e50965c6687120cf36071eabb1b7aa92f279e2164 languageName: node linkType: hard @@ -5714,6 +5815,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.3": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" + dependencies: + caniuse-lite: ^1.0.30001646 + electron-to-chromium: ^1.5.4 + node-releases: ^2.0.18 + update-browserslist-db: ^1.1.0 + bin: + browserslist: cli.js + checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -5844,6 +5959,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001651 + resolution: "caniuse-lite@npm:1.0.30001651" + checksum: c31a5a01288e70cdbbfb5cd94af3df02f295791673173b8ce6d6a16db4394a6999197d44190be5a6ff06b8c2c7d2047e94dfd5e5eb4c103ab000fca2d370afc7 + languageName: node + linkType: hard + "chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -6295,15 +6417,6 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.36.1": - version: 3.36.1 - resolution: "core-js-compat@npm:3.36.1" - dependencies: - browserslist: ^4.23.0 - checksum: c9109bd599a97b5d20f25fc8b8339b8c7f3fca5f9a1bebd397805383ff7699e117786c7ffe0f7a95058a6fa5e0e1435d4c10e5cda6ad86ce1957986bb6580562 - languageName: node - linkType: hard - "core-js-compat@npm:^3.37.1": version: 3.37.1 resolution: "core-js-compat@npm:3.37.1" @@ -6313,6 +6426,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.38.0": + version: 3.38.1 + resolution: "core-js-compat@npm:3.38.1" + dependencies: + browserslist: ^4.23.3 + checksum: a0a5673bcd59f588f0cd0b59cdacd4712b82909738a87406d334dd412eb3d273ae72b275bdd8e8fef63fca9ef12b42ed651be139c7c44c8a1acb423c8906992e + languageName: node + linkType: hard + "core-js@npm:^3.29.0": version: 3.36.0 resolution: "core-js@npm:3.36.0" @@ -7278,6 +7400,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.4": + version: 1.5.13 + resolution: "electron-to-chromium@npm:1.5.13" + checksum: f18ac84dd3bf9a200654a6a9292b9ec4bced0cf9bd26cec9941b775f4470c581c9d043e70b37a124d9752dcc0f47fc96613d52b2defd8e59632852730cb418b9 + languageName: node + linkType: hard + "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -11008,6 +11137,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 + languageName: node + linkType: hard + "node-source-walk@npm:^7.0.0": version: 7.0.0 resolution: "node-source-walk@npm:7.0.0" From 57128dfb955cc31a275907a6791c2d64b0fa21fe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 01:06:02 +0000 Subject: [PATCH 342/471] chore(deps): update dependency eslint-plugin-react-refresh to v0.4.11 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 11bc18c72..e4b00a08a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7843,11 +7843,11 @@ __metadata: linkType: hard "eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.10 - resolution: "eslint-plugin-react-refresh@npm:0.4.10" + version: 0.4.11 + resolution: "eslint-plugin-react-refresh@npm:0.4.11" peerDependencies: eslint: ">=7" - checksum: 43dd9aa62a560ac019813e047f904e9d85fcfbd696afd9fe815171acd95cb0e892547b8da54a20425182499a0e352255e64feef225048dfebdc8187e51bc267d + checksum: 55c9efb14c3dadf6422bb96af8a561d3f1385f1dc68e7ca9d388cc4adc69907644e1bb509ecfbb033a8ec19ea326beb99577c82d4a2530000809d897b08bf3d4 languageName: node linkType: hard From 4997bd0cdcb41be3d2c5dcc4d754983eea067283 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Aug 2024 01:43:26 +0000 Subject: [PATCH 343/471] chore(deps): update dependency @testing-library/jest-dom to v6.5.0 --- yarn.lock | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index e4b00a08a..bf23e84c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4244,18 +4244,17 @@ __metadata: linkType: hard "@testing-library/jest-dom@npm:^6.4.2": - version: 6.4.8 - resolution: "@testing-library/jest-dom@npm:6.4.8" + version: 6.5.0 + resolution: "@testing-library/jest-dom@npm:6.5.0" dependencies: "@adobe/css-tools": ^4.4.0 - "@babel/runtime": ^7.9.2 aria-query: ^5.0.0 chalk: ^3.0.0 css.escape: ^1.5.1 dom-accessibility-api: ^0.6.3 lodash: ^4.17.21 redent: ^3.0.0 - checksum: b601688950e522557c2c6bbc0f026ae31a10583577c8a557814b0eb33648fe82afc06299f3cdb79ff0c5076fd1a6106f3d76e2ca0dde6f7ee0555e63008fbd72 + checksum: c2d14103ebe3358852ec527ff7512f64207a39932b2f7b6dff7e73ba91296b01a71bad9a9584b6ee010681380a906c1740af50470adc6db660e1c7585d012ebf languageName: node linkType: hard From 06d6e8d05aea514a50a21a1a71a6b70c80962484 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Aug 2024 01:44:24 +0000 Subject: [PATCH 344/471] fix(deps): update dependency monaco-editor to ^0.51.0 --- packages/ui/package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index 047105404..2269ef34a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -53,7 +53,7 @@ "d3-shape": "^3.2.0", "file-saver": "^2.0.5", "loglevel": "^1.9.1", - "monaco-editor": "^0.50.0", + "monaco-editor": "^0.51.0", "pako": "^2.1.0", "react": "^18.2.0", "react-dnd": "^16.0.1", diff --git a/yarn.lock b/yarn.lock index bf23e84c0..e7e591dd1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2305,7 +2305,7 @@ __metadata: jest-environment-jsdom: ^29.7.0 loglevel: ^1.9.1 madge: ^8.0.0 - monaco-editor: ^0.50.0 + monaco-editor: ^0.51.0 pako: ^2.1.0 prettier: ^3.2.5 react: ^18.2.0 @@ -11008,10 +11008,10 @@ __metadata: languageName: node linkType: hard -"monaco-editor@npm:^0.50.0": - version: 0.50.0 - resolution: "monaco-editor@npm:0.50.0" - checksum: 841b047c89060bcd5e8864c671389f7cda322bd8372663ea71f42eb3d780edbbabc41b151791629fec04bbf3c53b407eb9e5b0829ef95292103d685df0994147 +"monaco-editor@npm:^0.51.0": + version: 0.51.0 + resolution: "monaco-editor@npm:0.51.0" + checksum: 86cd6e5a756407bc9564ae4c408cdaecbf3410b5bf88e22783e22e79e1e1d048c1cba7c26249e6b234731ffc1aad3660c27213ce1f3f441b3e04cf01a75b1f8c languageName: node linkType: hard From bd8e32dfcbcc7f53d6771bba49ddd231ecf7ac9c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 25 Aug 2024 02:25:42 +0000 Subject: [PATCH 345/471] chore(deps): update yarn to v3.8.5 --- .../{yarn-3.8.4.cjs => yarn-3.8.5.cjs} | 394 +++++++++--------- .yarnrc.yml | 2 +- package.json | 2 +- 3 files changed, 199 insertions(+), 199 deletions(-) rename .yarn/releases/{yarn-3.8.4.cjs => yarn-3.8.5.cjs} (85%) diff --git a/.yarn/releases/yarn-3.8.4.cjs b/.yarn/releases/yarn-3.8.5.cjs similarity index 85% rename from .yarn/releases/yarn-3.8.4.cjs rename to .yarn/releases/yarn-3.8.5.cjs index 1d8348a9d..5f3e555cb 100755 --- a/.yarn/releases/yarn-3.8.4.cjs +++ b/.yarn/releases/yarn-3.8.5.cjs @@ -1,48 +1,48 @@ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore -(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Gge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},Gge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function vK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Afe(e,t)}function xK(r,e,t){SK.stat(r,function(i,n){t(i,i?!1:vK(n,r,e))})}function lfe(r,e){return vK(SK.statSync(r),r,e)}});var NK=I((sZe,TK)=>{TK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=NK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,jK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},GK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=MK.join(l,r),u=!l&&/^\.[\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let h=u+i[g];try{if(KK.sync(h,{pathExt:n}))if(e.all)s.push(h);else return h}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw UK(r)};jK.exports=GK;GK.sync=hfe});var JK=I((lZe,vS)=>{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),Qfe=iU(),bfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&Qfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!bfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var NS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),TS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return TS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||TS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=TS});var hU=I((mZe,fU)=>{"use strict";function Tfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Tfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Nfe(r,e){e=e!==void 0?e:{};var t={},i={Start:Ia},n=Ia,s=function(C){return C||[]},o=function(C,Q,R){return[{command:C,type:Q}].concat(R||[])},a=function(C,Q){return[{command:C,type:Q||";"}]},l=function(C){return C},c=";",u=Ue(";",!1),g="&",h=Ue("&",!1),p=function(C,Q){return Q?{chain:C,then:Q}:{chain:C}},d=function(C,Q){return{type:C,line:Q}},m="&&",y=Ue("&&",!1),B="||",S=Ue("||",!1),P=function(C,Q){return Q?{...C,then:Q}:C},F=function(C,Q){return{type:C,chain:Q}},H="|&",q=Ue("|&",!1),_="|",X=Ue("|",!1),W="=",Z=Ue("=",!1),A=function(C,Q){return{name:C,args:[Q]}},ne=function(C){return{name:C,args:[]}},ue="(",te=Ue("(",!1),O=")",T=Ue(")",!1),ce=function(C,Q){return{type:"subshell",subshell:C,args:Q}},he="{",Pe=Ue("{",!1),De="}",Re=Ue("}",!1),se=function(C,Q){return{type:"group",group:C,args:Q}},Ae=function(C,Q){return{type:"command",args:Q,envs:C}},ye=function(C){return{type:"envs",envs:C}},ge=function(C){return C},oe=function(C){return C},Ye=/^[0-9]/,ie=Ve([["0","9"]],!1,!1),j=function(C,Q,R){return{type:"redirection",subtype:Q,fd:C!==null?parseInt(C):null,args:[R]}},fe=">>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Lr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},yr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Tl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},Qp=function(C){return{type:"variable",...C,quoted:!1}},Sr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Tn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Nl=`\\ -`,Nn=Ue(`\\ -`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},b="\\a",Tt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",bp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=Ue("\\n",!1),ze=function(){return` -`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},Te="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",Gl=Ue("-",!1),QA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),jl=function(C,Q,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+R.join(""))}},UE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},Tp=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Or=function(C){return C},HE="*",Hs=Ue("*",!1),Gs="/",Ig=Ue("/",!1),bA=function(C,Q,R){return{type:Q==="*"?"multiplication":"division",right:R}},D=function(C,Q){return Q.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,Q,R){return{type:Q==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},js="${",yg=Ue("${",!1),Jb=":-",R1=Ue(":-",!1),F1=function(C,Q){return{name:C,defaultValue:Q}},Wb=":-}",T1=Ue(":-}",!1),N1=function(C){return{name:C,defaultValue:[]}},zb=":+",L1=Ue(":+",!1),O1=function(C,Q){return{name:C,alternativeValue:Q}},Vb=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},Xb=function(C){return{name:C}},U1="$",H1=Ue("$",!1),G1=function(C){return e.isGlobPattern(C)},j1=function(C){return C},Zb=/^[a-zA-Z0-9_]/,_b=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$b=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,GE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,jE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],N=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,Q){throw Q=Q!==void 0?Q:ii(E,f),On([Ii(C)],r.substring(E,f),Q)}function at(C,Q){throw Q=Q!==void 0?Q:ii(E,f),yi(C,Q)}function Ue(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Ve(C,Q,R){return{type:"class",parts:C,inverted:Q,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function un(C){var Q=w[C],R;if(Q)return Q;for(R=C-1;!w[R];)R--;for(Q=w[R],Q={line:Q.line,column:Q.column};R<C;)r.charCodeAt(R)===10?(Q.line++,Q.column=1):Q.column++,R++;return w[C]=Q,Q}function ii(C,Q){var R=un(C),U=un(Q);return{start:{offset:C,line:R.line,column:R.column},end:{offset:Q,line:U.line,column:U.column}}}function Be(C){f<k||(f>k&&(k=f,L=[]),L.push(C))}function yi(C,Q){return new $l(C,null,null,Q)}function On(C,Q,R){return new $l($l.buildMessage(C,Q),C,Q,R)}function Ia(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=vr(),R===t&&(R=null),R!==t?(E=C,Q=s(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function vr(){var C,Q,R,U,le;if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,Q=o(Q,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,Q=iS(),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,Q=a(Q,U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=vr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=l(R),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,N===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,N===0&&Be(h))),C}function iS(){var C,Q,R;return C=f,Q=q1(),Q!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,Q=p(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=d(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,N===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,N===0&&Be(S))),C}function q1(){var C,Q,R;return C=f,Q=Bge(),Q!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,Q=P(Q,R),C=Q):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,Q,R,U,le,Qe,ft;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=F(R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,N===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,N===0&&Be(X))),C}function YE(){var C,Q,R,U,le,Qe;if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(E=C,Q=A(Q,U),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,Q=iK(),Q!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,N===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ne(Q),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,Q,R,U,le,Qe,ft,It,jr,fi,os;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,N===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,N===0&&Be(T)),ft!==t){for(It=[],jr=Me();jr!==t;)It.push(jr),jr=Me();if(It!==t){for(jr=[],fi=Np();fi!==t;)jr.push(fi),fi=Np();if(jr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=ce(le,jr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,N===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();if(Qe!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,N===0&&Be(Re)),ft!==t){for(It=[],jr=Me();jr!==t;)It.push(jr),jr=Me();if(It!==t){for(jr=[],fi=Np();fi!==t;)jr.push(fi),fi=Np();if(jr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,Q=se(le,jr),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],Qe=W1(),Qe!==t)for(;Qe!==t;)le.push(Qe),Qe=W1();else le=t;if(le!==t){for(Qe=[],ft=Me();ft!==t;)Qe.push(ft),ft=Me();Qe!==t?(E=C,Q=Ae(R,le),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ye(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,Q=ge(R),C=Q):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();if(Q!==t?(R=Np(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();Q!==t?(R=qE(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t)}return C}function Np(){var C,Q,R,U,le;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ie)),R===t&&(R=null),R!==t?(U=Qge(),U!==t?(le=qE(),le!==t?(E=C,Q=j(R,U,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Qge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,N===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,N===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,N===0&&Be(mt)),C===t&&(r.substr(f,3)===Lr?(C=Lr,f+=3):(C=t,N===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,N===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,N===0&&Be(ri))))))),C}function qE(){var C,Q,R;for(C=f,Q=[],R=Me();R!==t;)Q.push(R),R=Me();return Q!==t?(R=z1(),R!==t?(E=C,Q=oe(R),C=Q):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,Q,R;if(C=f,Q=[],R=V1(),R!==t)for(;R!==t;)Q.push(R),R=V1();else Q=t;return Q!==t&&(E=C,Q=Ms(Q)),C=Q,C}function V1(){var C,Q;return C=f,Q=bge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=Sge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=vge(),Q!==t&&(E=C,Q=fr(Q)),C=Q,C===t&&(C=f,Q=xge(),Q!==t&&(E=C,Q=fr(Q)),C=Q))),C}function bge(){var C,Q,R,U;return C=f,r.substr(f,2)===Ei?(Q=Ei,f+=2):(Q=t,N===0&&Be(rs)),Q!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,Q,R,U;return C=f,r.charCodeAt(f)===39?(Q=ua,f++):(Q=t,N===0&&Be(CA)),Q!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,N===0&&Be(CA)),U!==t?(E=C,Q=gg(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,Q,R,U;if(C=f,r.substr(f,2)===is?(Q=is,f+=2):(Q=t,N===0&&Be(mA)),Q!==t&&(E=C,Q=ga()),C=Q,C===t)if(C=f,r.charCodeAt(f)===34?(Q=wp,f++):(Q=t,N===0&&Be(EA)),Q!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,N===0&&Be(EA)),U!==t?(E=C,Q=IA(R),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,Q,R;if(C=f,Q=[],R=Z1(),R!==t)for(;R!==t;)Q.push(R),R=Z1();else Q=t;return Q!==t&&(E=C,Q=IA(Q)),C=Q,C}function X1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=yr(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Tl(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=fg(Q)),C=Q,C===t&&(C=f,Q=kge(),Q!==t&&(E=C,Q=Io(Q)),C=Q))),C}function Z1(){var C,Q;return C=f,Q=tK(),Q!==t&&(E=C,Q=hg(Q)),C=Q,C===t&&(C=f,Q=rK(),Q!==t&&(E=C,Q=Bp(Q)),C=Q,C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Qp(Q)),C=Q,C===t&&(C=f,Q=Tge(),Q!==t&&(E=C,Q=Sr(Q)),C=Q,C===t&&(C=f,Q=Fge(),Q!==t&&(E=C,Q=Io(Q)),C=Q)))),C}function Pge(){var C,Q,R;for(C=f,Q=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));R!==t;)Q.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function kge(){var C,Q,R;if(C=f,Q=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt))),R!==t)for(;R!==t;)Q.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yt)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function _1(){var C,Q,R;return C=f,r.substr(f,2)===Nl?(Q=Nl,f+=2):(Q=t,N===0&&Be(Nn)),Q!==t&&(E=C,Q=ns()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(At)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,Q,R;for(C=f,Q=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));R!==t;)Q.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(yo)));return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function $1(){var C,Q,R;return C=f,r.substr(f,2)===b?(Q=b,f+=2):(Q=t,N===0&&Be(Tt)),Q!==t&&(E=C,Q=pg()),C=Q,C===t&&(C=f,r.substr(f,2)===Ll?(Q=Ll,f+=2):(Q=t,N===0&&Be(bp)),Q!==t&&(E=C,Q=Sp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(xp)),R!==t?(E=C,Q=Pp(),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===G?(Q=G,f+=2):(Q=t,N===0&&Be(Et)),Q!==t&&(E=C,Q=yA()),C=Q,C===t&&(C=f,r.substr(f,2)===zi?(Q=zi,f+=2):(Q=t,N===0&&Be(Ol)),Q!==t&&(E=C,Q=ze()),C=Q,C===t&&(C=f,r.substr(f,2)===fa?(Q=fa,f+=2):(Q=t,N===0&&Be(dg)),Q!==t&&(E=C,Q=OE()),C=Q,C===t&&(C=f,r.substr(f,2)===kp?(Q=kp,f+=2):(Q=t,N===0&&Be(ME)),Q!==t&&(E=C,Q=sr()),C=Q,C===t&&(C=f,r.substr(f,2)===Ln?(Q=Ln,f+=2):(Q=t,N===0&&Be(Ml)),Q!==t&&(E=C,Q=Dp()),C=Q,C===t&&(C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(ha)),R!==t?(E=C,Q=ln(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,Q,R,U,le,Qe,ft,It,jr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(Q=ss,f++):(Q=t,N===0&&Be(ut)),Q!==t?(R=nS(),R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Te?(Q=Te,f+=2):(Q=t,N===0&&Be(Cg)),Q!==t?(R=f,U=f,le=nS(),le!==t?(Qe=Mn(),Qe!==t?(le=[le,Qe],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(Q=Kl,f+=2):(Q=t,N===0&&Be(Us)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,Qe,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=cn(R),C=Q):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(Q=Ul,f+=2):(Q=t,N===0&&Be(wA)),Q!==t?(R=f,U=f,le=Mn(),le!==t?(Qe=Mn(),Qe!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(jr=Mn(),jr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,Qe,ft,It,jr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,Q=mg(R),C=Q):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tt)),C}function Fge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)Q.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,N===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,N===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,N++,le=nK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t)));else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function sS(){var C,Q,R,U,le,Qe;if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(Gl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,N===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie)),Qe!==t)for(;Qe!==t;)le.push(Qe),Ye.test(r.charAt(f))?(Qe=r.charAt(f),f++):(Qe=t,N===0&&Be(ie));else le=t;le!==t?(E=C,Q=jl(Q,R,le),C=Q):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(Q=Hl,f++):(Q=t,N===0&&Be(Gl)),Q===t&&(r.charCodeAt(f)===43?(Q=QA,f++):(Q=t,N===0&&Be(ma))),Q===t&&(Q=null),Q!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,N===0&&Be(ie));else R=t;R!==t?(E=C,Q=UE(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,Q=aS(),Q!==t&&(E=C,Q=Tp(Q)),C=Q,C===t&&(C=f,Q=Wl(),Q!==t&&(E=C,Q=Yl(Q)),C=Q,C===t)))if(C=f,r.charCodeAt(f)===40?(Q=ue,f++):(Q=t,N===0&&Be(te)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.charCodeAt(f)===41?(Qe=O,f++):(Qe=t,N===0&&Be(T)),Qe!==t?(E=C,Q=Or(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=sS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=Gs,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===42?(Qe=HE,f++):(Qe=t,N===0&&Be(Hs)),Qe===t&&(r.charCodeAt(f)===47?(Qe=Gs,f++):(Qe=t,N===0&&Be(Ig))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=bA(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,Q,R,U,le,Qe,ft,It;if(C=f,Q=oS(),Q!==t){for(R=[],U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(Gl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();if(le!==t)if(r.charCodeAt(f)===43?(Qe=QA,f++):(Qe=t,N===0&&Be(ma)),Qe===t&&(r.charCodeAt(f)===45?(Qe=Hl,f++):(Qe=t,N===0&&Be(Gl))),Qe!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(Q,Qe,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,Q=D(Q,R),C=Q):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,Q,R,U,le,Qe;if(C=f,r.substr(f,3)===pe?(Q=pe,f+=3):(Q=t,N===0&&Be(Le)),Q!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],Qe=Me();Qe!==t;)le.push(Qe),Qe=Me();le!==t?(r.substr(f,2)===ke?(Qe=ke,f+=2):(Qe=t,N===0&&Be(Je)),Qe!==t?(E=C,Q=pt(U),C=Q):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,Q,R,U;return C=f,r.substr(f,2)===Xt?(Q=Xt,f+=2):(Q=t,N===0&&Be(Ea)),Q!==t?(R=vr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,N===0&&Be(T)),U!==t?(E=C,Q=D1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,Q,R,U,le,Qe;return C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===Jb?(U=Jb,f+=2):(U=t,N===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=F1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Wb?(U=Wb,f+=3):(U=t,N===0&&Be(T1)),U!==t?(E=C,Q=N1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,2)===zb?(U=zb,f+=2):(U=t,N===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(Qe=De,f++):(Qe=t,N===0&&Be(Re)),Qe!==t?(E=C,Q=O1(R,le),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.substr(f,3)===Vb?(U=Vb,f+=3):(U=t,N===0&&Be(M1)),U!==t?(E=C,Q=K1(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===js?(Q=js,f+=2):(Q=t,N===0&&Be(yg)),Q!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,N===0&&Be(Re)),U!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(Q=U1,f++):(Q=t,N===0&&Be(H1)),Q!==t?(R=Wl(),R!==t?(E=C,Q=Xb(R),C=Q):(f=C,C=t)):(f=C,C=t)))))),C}function Tge(){var C,Q,R;return C=f,Q=Nge(),Q!==t?(E=f,R=G1(Q),R?R=void 0:R=t,R!==t?(E=C,Q=j1(Q),C=Q):(f=C,C=t)):(f=C,C=t),C}function Nge(){var C,Q,R,U,le;if(C=f,Q=[],R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)Q.push(R),R=f,U=f,N++,le=sK(),N--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,N===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t);else Q=t;return Q!==t&&(E=C,Q=Tn(Q)),C=Q,C}function iK(){var C,Q,R;if(C=f,Q=[],Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b)),R!==t)for(;R!==t;)Q.push(R),Zb.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(_b));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function Wl(){var C,Q,R;if(C=f,Q=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(GE)),R!==t)for(;R!==t;)Q.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,N===0&&Be(GE));else Q=t;return Q!==t&&(E=C,Q=$b()),C=Q,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,N===0&&Be(jE)),C}function Me(){var C,Q;if(C=[],Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg)),Q!==t)for(;Q!==t;)C.push(Q),Jl.test(r.charAt(f))?(Q=r.charAt(f),f++):(Q=t,N===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f<r.length&&Be(wt()),On(L,k<r.length?r.charAt(k):null,k<r.length?ii(k,k+1):ii(k,k))}fU.exports={SyntaxError:$l,parse:Nfe}});var EU=I((RZe,mU)=>{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Kfe(r,e){e=e!==void 0?e:{};var t={},i={resolution:Ae},n=Ae,s="/",o=ue("/",!1),a=function(ie,j){return{from:ie,descriptor:j}},l=function(ie){return{descriptor:ie}},c="@",u=ue("@",!1),g=function(ie,j){return{fullName:ie,description:j}},h=function(ie){return{fullName:ie}},p=function(){return W()},d=/^[^\/@]/,m=te(["/","@"],!0,!1),y=/^[^\/]/,B=te(["/"],!0,!1),S=0,P=0,F=[{line:1,column:1}],H=0,q=[],_=0,X;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function W(){return r.substring(P,S)}function Z(){return Pe(P,S)}function A(ie,j){throw j=j!==void 0?j:Pe(P,S),se([ce(ie)],r.substring(P,S),j)}function ne(ie,j){throw j=j!==void 0?j:Pe(P,S),Re(ie,j)}function ue(ie,j){return{type:"literal",text:ie,ignoreCase:j}}function te(ie,j,fe){return{type:"class",parts:ie,inverted:j,ignoreCase:fe}}function O(){return{type:"any"}}function T(){return{type:"end"}}function ce(ie){return{type:"other",description:ie}}function he(ie){var j=F[ie],fe;if(j)return j;for(fe=ie-1;!F[fe];)fe--;for(j=F[fe],j={line:j.line,column:j.column};fe<ie;)r.charCodeAt(fe)===10?(j.line++,j.column=1):j.column++,fe++;return F[ie]=j,j}function Pe(ie,j){var fe=he(ie),re=he(j);return{start:{offset:ie,line:fe.line,column:fe.column},end:{offset:j,line:re.line,column:re.column}}}function De(ie){S<H||(S>H&&(H=S,q=[]),q.push(ie))}function Re(ie,j){return new tc(ie,null,null,j)}function se(ie,j,fe){return new tc(tc.buildMessage(ie,j),ie,j,fe)}function Ae(){var ie,j,fe,re;return ie=S,j=ye(),j!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,j=a(j,re),ie=j):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,j=ye(),j!==t&&(P=ie,j=l(j)),ie=j),ie}function ye(){var ie,j,fe,re;return ie=S,j=ge(),j!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,j=g(j,re),ie=j):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,j=ge(),j!==t&&(P=ie,j=h(j)),ie=j),ie}function ge(){var ie,j,fe,re,de;return ie=S,r.charCodeAt(S)===64?(j=c,S++):(j=t,_===0&&De(u)),j!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,j=p(),ie=j):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,j=oe(),j!==t&&(P=ie,j=p()),ie=j),ie}function oe(){var ie,j,fe;if(ie=S,j=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)j.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else j=t;return j!==t&&(P=ie,j=p()),ie=j,ie}function Ye(){var ie,j,fe;if(ie=S,j=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)j.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else j=t;return j!==t&&(P=ie,j=p()),ie=j,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S<r.length&&De(T()),se(q,H<r.length?r.charAt(H):null,H<r.length?Pe(H,H+1):Pe(H,H))}mU.exports={SyntaxError:tc,parse:Kfe}});var ic=I((TZe,rc)=>{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function Gfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t<i;t+=1)n=s[t],r[n]=e[n];return r}function jfe(r,e){var t="",i;for(i=0;i<e;i+=1)t+=r;return t}function Yfe(r){return r===0&&Number.NEGATIVE_INFINITY===1/r}rc.exports.isNothing=yU;rc.exports.isObject=Ufe;rc.exports.toArray=Hfe;rc.exports.repeat=jfe;rc.exports.isNegativeZero=Yfe;rc.exports.extend=Gfe});var Tg=I((NZe,wU)=>{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var bU=I((LZe,QU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function vK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Afe(e,t)}function xK(r,e,t){SK.stat(r,function(i,n){t(i,i?!1:vK(n,r,e))})}function lfe(r,e){return vK(SK.statSync(r),r,e)}});var TK=I((sZe,NK)=>{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=MK.join(l,r),u=!l&&/^\.[\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let h=u+i[g];try{if(KK.sync(h,{pathExt:n}))if(e.all)s.push(h);else return h}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw UK(r)};GK.exports=jK;jK.sync=hfe});var JK=I((lZe,vS)=>{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),bfe=iU(),Qfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&bfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!Qfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Tfe(r,e){e=e!==void 0?e:{};var t={},i={Start:Ia},n=Ia,s=function(C){return C||[]},o=function(C,b,R){return[{command:C,type:b}].concat(R||[])},a=function(C,b){return[{command:C,type:b||";"}]},l=function(C){return C},c=";",u=Ue(";",!1),g="&",h=Ue("&",!1),p=function(C,b){return b?{chain:C,then:b}:{chain:C}},d=function(C,b){return{type:C,line:b}},m="&&",y=Ue("&&",!1),B="||",S=Ue("||",!1),P=function(C,b){return b?{...C,then:b}:C},F=function(C,b){return{type:C,chain:b}},H="|&",q=Ue("|&",!1),_="|",X=Ue("|",!1),W="=",Z=Ue("=",!1),A=function(C,b){return{name:C,args:[b]}},ne=function(C){return{name:C,args:[]}},ue="(",te=Ue("(",!1),O=")",N=Ue(")",!1),ce=function(C,b){return{type:"subshell",subshell:C,args:b}},he="{",Pe=Ue("{",!1),De="}",Re=Ue("}",!1),se=function(C,b){return{type:"group",group:C,args:b}},Ae=function(C,b){return{type:"command",args:b,envs:C}},ye=function(C){return{type:"envs",envs:C}},ge=function(C){return C},oe=function(C){return C},Ye=/^[0-9]/,ie=Ve([["0","9"]],!1,!1),G=function(C,b,R){return{type:"redirection",subtype:b,fd:C!==null?parseInt(C):null,args:[R]}},fe=">>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Lr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},yr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},bp=function(C){return{type:"variable",...C,quoted:!1}},Sr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ +`,Tn=Ue(`\\ +`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},Q="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",Qp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=Ue("\\n",!1),ze=function(){return` +`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),bA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,b,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(b.join("")+"."+R.join(""))}},UE=function(C,b){return{type:"number",value:(C==="-"?-1:1)*parseInt(b.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Or=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),QA=function(C,b,R){return{type:b==="*"?"multiplication":"division",right:R}},D=function(C,b){return b.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,b,R){return{type:b==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),JQ=":-",R1=Ue(":-",!1),F1=function(C,b){return{name:C,defaultValue:b}},WQ=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zQ=":+",L1=Ue(":+",!1),O1=function(C,b){return{name:C,alternativeValue:b}},VQ=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},XQ=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},ZQ=/^[a-zA-Z0-9_]/,_Q=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,b){throw b=b!==void 0?b:ii(E,f),On([Ii(C)],r.substring(E,f),b)}function at(C,b){throw b=b!==void 0?b:ii(E,f),yi(C,b)}function Ue(C,b){return{type:"literal",text:C,ignoreCase:b}}function Ve(C,b,R){return{type:"class",parts:C,inverted:b,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function un(C){var b=w[C],R;if(b)return b;for(R=C-1;!w[R];)R--;for(b=w[R],b={line:b.line,column:b.column};R<C;)r.charCodeAt(R)===10?(b.line++,b.column=1):b.column++,R++;return w[C]=b,b}function ii(C,b){var R=un(C),U=un(b);return{start:{offset:C,line:R.line,column:R.column},end:{offset:b,line:U.line,column:U.column}}}function Be(C){f<k||(f>k&&(k=f,L=[]),L.push(C))}function yi(C,b){return new $l(C,null,null,b)}function On(C,b,R){return new $l($l.buildMessage(C,b),C,b,R)}function Ia(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=vr(),R===t&&(R=null),R!==t?(E=C,b=s(R),C=b):(f=C,C=t)):(f=C,C=t),C}function vr(){var C,b,R,U,le;if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,b=o(b,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,b=a(b,U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=vr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=l(R),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,b,R;return C=f,b=q1(),b!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,b=p(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=d(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,b,R;return C=f,b=Bge(),b!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,b=P(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=F(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,b,R,U,le,be;if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(E=C,b=A(b,U),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ne(b),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,b,R,U,le,be,ft,It,Gr,fi,os;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=ce(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=se(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],be=W1(),be!==t)for(;be!==t;)le.push(be),be=W1();else le=t;if(le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=Ae(R,le),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ye(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ge(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t?(R=Tp(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();b!==t?(R=qE(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=bge(),U!==t?(le=qE(),le!==t?(E=C,b=G(R,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function bge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Lr?(C=Lr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=z1(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,b,R;if(C=f,b=[],R=V1(),R!==t)for(;R!==t;)b.push(R),R=V1();else b=t;return b!==t&&(E=C,b=Ms(b)),C=b,C}function V1(){var C,b;return C=f,b=Qge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=Sge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=vge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=xge(),b!==t&&(E=C,b=fr(b)),C=b))),C}function Qge(){var C,b,R,U;return C=f,r.substr(f,2)===Ei?(b=Ei,f+=2):(b=t,T===0&&Be(rs)),b!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,b,R,U;return C=f,r.charCodeAt(f)===39?(b=ua,f++):(b=t,T===0&&Be(CA)),b!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,b,R,U;if(C=f,r.substr(f,2)===is?(b=is,f+=2):(b=t,T===0&&Be(mA)),b!==t&&(E=C,b=ga()),C=b,C===t)if(C=f,r.charCodeAt(f)===34?(b=wp,f++):(b=t,T===0&&Be(EA)),b!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,b=IA(R),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,b,R;if(C=f,b=[],R=Z1(),R!==t)for(;R!==t;)b.push(R),R=Z1();else b=t;return b!==t&&(E=C,b=IA(b)),C=b,C}function X1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=yr(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Nl(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=fg(b)),C=b,C===t&&(C=f,b=kge(),b!==t&&(E=C,b=Io(b)),C=b))),C}function Z1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=hg(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Bp(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=bp(b)),C=b,C===t&&(C=f,b=Nge(),b!==t&&(E=C,b=Sr(b)),C=b,C===t&&(C=f,b=Fge(),b!==t&&(E=C,b=Io(b)),C=b)))),C}function Pge(){var C,b,R;for(C=f,b=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)b.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return b!==t&&(E=C,b=Nn(b)),C=b,C}function kge(){var C,b,R;if(C=f,b=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)b.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function _1(){var C,b,R;return C=f,r.substr(f,2)===Tl?(b=Tl,f+=2):(b=t,T===0&&Be(Tn)),b!==t&&(E=C,b=ns()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,b,R;for(C=f,b=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)b.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return b!==t&&(E=C,b=Nn(b)),C=b,C}function $1(){var C,b,R;return C=f,r.substr(f,2)===Q?(b=Q,f+=2):(b=t,T===0&&Be(Nt)),b!==t&&(E=C,b=pg()),C=b,C===t&&(C=f,r.substr(f,2)===Ll?(b=Ll,f+=2):(b=t,T===0&&Be(Qp)),b!==t&&(E=C,b=Sp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(xp)),R!==t?(E=C,b=Pp(),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(b=j,f+=2):(b=t,T===0&&Be(Et)),b!==t&&(E=C,b=yA()),C=b,C===t&&(C=f,r.substr(f,2)===zi?(b=zi,f+=2):(b=t,T===0&&Be(Ol)),b!==t&&(E=C,b=ze()),C=b,C===t&&(C=f,r.substr(f,2)===fa?(b=fa,f+=2):(b=t,T===0&&Be(dg)),b!==t&&(E=C,b=OE()),C=b,C===t&&(C=f,r.substr(f,2)===kp?(b=kp,f+=2):(b=t,T===0&&Be(ME)),b!==t&&(E=C,b=sr()),C=b,C===t&&(C=f,r.substr(f,2)===Ln?(b=Ln,f+=2):(b=t,T===0&&Be(Ml)),b!==t&&(E=C,b=Dp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,b,R,U,le,be,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(R=nS(),R!==t?(E=C,b=cn(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(b=Ne,f+=2):(b=t,T===0&&Be(Cg)),b!==t?(R=f,U=f,le=nS(),le!==t?(be=Mn(),be!==t?(le=[le,be],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=cn(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(b=Kl,f+=2):(b=t,T===0&&Be(Us)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,be,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=cn(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(b=Ul,f+=2):(b=t,T===0&&Be(wA)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,be,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=mg(R),C=b):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,b,R,U,le;if(C=f,b=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)b.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function sS(){var C,b,R,U,le,be;if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie)),be!==t)for(;be!==t;)le.push(be),Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie));else le=t;le!==t?(E=C,b=Gl(b,R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,b=UE(b,R),C=b):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,b=aS(),b!==t&&(E=C,b=Np(b)),C=b,C===t&&(C=f,b=Wl(),b!==t&&(E=C,b=Yl(b)),C=b,C===t)))if(C=f,r.charCodeAt(f)===40?(b=ue,f++):(b=t,T===0&&Be(te)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.charCodeAt(f)===41?(be=O,f++):(be=t,T===0&&Be(N)),be!==t?(E=C,b=Or(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,b,R,U,le,be,ft,It;if(C=f,b=sS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,b,R,U,le,be,ft,It;if(C=f,b=oS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,b,R,U,le,be;if(C=f,r.substr(f,3)===pe?(b=pe,f+=3):(b=t,T===0&&Be(Le)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.substr(f,2)===ke?(be=ke,f+=2):(be=t,T===0&&Be(Je)),be!==t?(E=C,b=pt(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,b,R,U;return C=f,r.substr(f,2)===Xt?(b=Xt,f+=2):(b=t,T===0&&Be(Ea)),b!==t?(R=vr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,b=D1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,b,R,U,le,be;return C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===JQ?(U=JQ,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=F1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===WQ?(U=WQ,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,b=T1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===zQ?(U=zQ,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=O1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===VQ?(U=VQ,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,b=K1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(b=U1,f++):(b=t,T===0&&Be(H1)),b!==t?(R=Wl(),R!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,b,R;return C=f,b=Tge(),b!==t?(E=f,R=j1(b),R?R=void 0:R=t,R!==t?(E=C,b=G1(b),C=b):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,b,R,U,le;if(C=f,b=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)b.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t);else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function iK(){var C,b,R;if(C=f,b=[],ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q)),R!==t)for(;R!==t;)b.push(R),ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function Wl(){var C,b,R;if(C=f,b=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)b.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,b;if(C=[],Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg)),b!==t)for(;b!==t;)C.push(b),Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f<r.length&&Be(wt()),On(L,k<r.length?r.charAt(k):null,k<r.length?ii(k,k+1):ii(k,k))}fU.exports={SyntaxError:$l,parse:Tfe}});var EU=I((RZe,mU)=>{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Kfe(r,e){e=e!==void 0?e:{};var t={},i={resolution:Ae},n=Ae,s="/",o=ue("/",!1),a=function(ie,G){return{from:ie,descriptor:G}},l=function(ie){return{descriptor:ie}},c="@",u=ue("@",!1),g=function(ie,G){return{fullName:ie,description:G}},h=function(ie){return{fullName:ie}},p=function(){return W()},d=/^[^\/@]/,m=te(["/","@"],!0,!1),y=/^[^\/]/,B=te(["/"],!0,!1),S=0,P=0,F=[{line:1,column:1}],H=0,q=[],_=0,X;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function W(){return r.substring(P,S)}function Z(){return Pe(P,S)}function A(ie,G){throw G=G!==void 0?G:Pe(P,S),se([ce(ie)],r.substring(P,S),G)}function ne(ie,G){throw G=G!==void 0?G:Pe(P,S),Re(ie,G)}function ue(ie,G){return{type:"literal",text:ie,ignoreCase:G}}function te(ie,G,fe){return{type:"class",parts:ie,inverted:G,ignoreCase:fe}}function O(){return{type:"any"}}function N(){return{type:"end"}}function ce(ie){return{type:"other",description:ie}}function he(ie){var G=F[ie],fe;if(G)return G;for(fe=ie-1;!F[fe];)fe--;for(G=F[fe],G={line:G.line,column:G.column};fe<ie;)r.charCodeAt(fe)===10?(G.line++,G.column=1):G.column++,fe++;return F[ie]=G,G}function Pe(ie,G){var fe=he(ie),re=he(G);return{start:{offset:ie,line:fe.line,column:fe.column},end:{offset:G,line:re.line,column:re.column}}}function De(ie){S<H||(S>H&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(P=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(P=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(P=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S<r.length&&De(N()),se(q,H<r.length?r.charAt(H):null,H<r.length?Pe(H,H+1):Pe(H,H))}mU.exports={SyntaxError:tc,parse:Kfe}});var ic=I((NZe,rc)=>{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t<i;t+=1)n=s[t],r[n]=e[n];return r}function Gfe(r,e){var t="",i;for(i=0;i<e;i+=1)t+=r;return t}function Yfe(r){return r===0&&Number.NEGATIVE_INFINITY===1/r}rc.exports.isNothing=yU;rc.exports.isObject=Ufe;rc.exports.toArray=Hfe;rc.exports.repeat=Gfe;rc.exports.isNegativeZero=Yfe;rc.exports.extend=jfe});var Ng=I((TZe,wU)=>{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var QU=I((LZe,bU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;o<this.buffer.length&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(o))===-1;)if(o+=1,o-this.position>t/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BU.repeat(" ",e)+i+a+s+` `+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};QU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Tg(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Tg(),Vfe=ni();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return r}function Ng(r){this.include=r.include||[],this.implicit=r.implicit||[],this.explicit=r.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new pI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=GS(this,"implicit",[]),this.compiledExplicit=GS(this,"explicit",[]),this.compiledTypeMap=Xfe(this.compiledImplicit,this.compiledExplicit)}Ng.DEFAULT=null;Ng.create=function(){var e,t;switch(arguments.length){case 1:e=Ng.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new pI("Wrong number of arguments for Schema.create function")}if(e=xU.toArray(e),t=xU.toArray(t),!e.every(function(i){return i instanceof Ng}))throw new pI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof Vfe}))throw new pI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Ng({include:e,explicit:t})};PU.exports=Ng});var DU=I((KZe,kU)=>{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var NU=I((HZe,TU)=>{"use strict";var $fe=ni();TU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((GZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),NU()]})});var MU=I((jZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var GU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(!uhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!ghe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}if(n==="_")return!1;for(;t<e;t++)if(n=r[t],n!=="_"){if(n===":")break;if(!fhe(r.charCodeAt(t)))return!1;i=!0}return!i||n==="_"?!1:n!==":"?!0:/^(:[0-5]?[0-9])+$/.test(r.slice(t))}function phe(r){var e=r,t=1,i,n,s=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),i=e[0],(i==="-"||i==="+")&&(i==="-"&&(t=-1),e=e.slice(1),i=e[0]),e==="0"?0:i==="0"?e[1]==="b"?t*parseInt(e.slice(2),2):e[1]==="x"?t*parseInt(e,16):t*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(o){s.unshift(parseInt(o,10))}),e=0,n=1,s.forEach(function(o){e+=o*n,n*=60}),t*e):t*parseInt(e,10)}function dhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&r%1===0&&!lhe.isNegativeZero(r)}HU.exports=new che("tag:yaml.org,2002:int",{kind:"scalar",resolve:hhe,construct:phe,predicate:dhe,represent:{binary:function(r){return r>=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var jU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(jU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||jU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var jS=I((WZe,JU)=>{"use strict";var Qhe=nc();JU.exports=new Qhe({include:[dI()],implicit:[MU(),UU(),GU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var bhe=nc();WU.exports=new bhe({include:[jS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t<n;t++)if(e=s.indexOf(r.charAt(t)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function The(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function Nhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:The,predicate:Lhe,represent:Nhe})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,Khe.call(n)!=="[object Object]")return!1;for(s in n)if(Mhe.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function Hhe(r){return r!==null?r:[]}i2.exports=new Ohe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uhe,construct:Hhe})});var o2=I((e_e,s2)=>{"use strict";var Ghe=ni(),jhe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1){if(i=o[e],jhe.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function qhe(r){if(r===null)return[];var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}s2.exports=new Ghe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Yhe,construct:qhe})});var A2=I((t_e,a2)=>{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var Qa=ic(),b2=Tg(),gpe=bU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function hn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new b2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e<t){if(a=r.input.slice(e,t),i)for(n=0,s=a.length;n<s;n+=1)o=a.charCodeAt(n),o===9||32<=o&&o<=1114111||gt(r,"expected valid JSON character");else ppe.test(a)&>(r,"the stream contains non-printable characters");r.result+=a}}function B2(r,e,t,i){var n,s,o,a;for(Qa.isObject(t)||gt(r,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(t),o=0,a=n.length;o<a;o+=1)s=n[o],kA.call(e,s)||(e[s]=t[s],i[s]=!0)}function Mg(r,e,t,i,n,s,o,a){var l,c;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,c=n.length;l<c;l+=1)Array.isArray(n[l])&>(r,"nested arrays are not supported inside keys"),typeof n=="object"&&I2(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&I2(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(l=0,c=s.length;l<c;l+=1)B2(r,e,s[l],t);else B2(r,e,s,t);else!r.json&&!kA.call(t,n)&&kA.call(e,n)&&(r.line=o||r.line,r.position=a||r.position,gt(r,"duplicated mapping key")),e[n]=s,delete t[n];return e}function WS(r){var e;e=r.input.charCodeAt(r.position),e===10?r.position++:e===13?(r.position++,r.input.charCodeAt(r.position)===10&&r.position++):gt(r,"a line break is expected"),r.line+=1,r.lineStart=r.position}function Jr(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;ac(n);)n=r.input.charCodeAt(++r.position);if(e&&n===35)do n=r.input.charCodeAt(++r.position);while(n!==10&&n!==13&&n!==0);if(vo(n))for(WS(r),n=r.input.charCodeAt(r.position),i++,r.lineIndent=0;n===32;)r.lineIndent++,n=r.input.charCodeAt(++r.position);else break}return t!==-1&&i!==0&&r.lineIndent<t&&II(r,"deficient indentation"),i}function yI(r){var e=r.position,t;return t=r.input.charCodeAt(e),!!((t===45||t===46)&&t===r.input.charCodeAt(e+1)&&t===r.input.charCodeAt(e+2)&&(e+=3,t=r.input.charCodeAt(e),t===0||hn(t)))}function zS(r,e){e===1?r.result+=" ":e>1&&(r.result+=Qa.repeat(` -`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),hn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),hn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function Qpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function bpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),hn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent<a){n===E2?r.result+=Qa.repeat(` +`+t)),i};bU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return r}function Tg(r){this.include=r.include||[],this.implicit=r.implicit||[],this.explicit=r.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new pI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=jS(this,"implicit",[]),this.compiledExplicit=jS(this,"explicit",[]),this.compiledTypeMap=Xfe(this.compiledImplicit,this.compiledExplicit)}Tg.DEFAULT=null;Tg.create=function(){var e,t;switch(arguments.length){case 1:e=Tg.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new pI("Wrong number of arguments for Schema.create function")}if(e=xU.toArray(e),t=xU.toArray(t),!e.every(function(i){return i instanceof Tg}))throw new pI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof Vfe}))throw new pI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Tg({include:e,explicit:t})};PU.exports=Tg});var DU=I((KZe,kU)=>{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(!uhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!ghe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}if(n==="_")return!1;for(;t<e;t++)if(n=r[t],n!=="_"){if(n===":")break;if(!fhe(r.charCodeAt(t)))return!1;i=!0}return!i||n==="_"?!1:n!==":"?!0:/^(:[0-5]?[0-9])+$/.test(r.slice(t))}function phe(r){var e=r,t=1,i,n,s=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),i=e[0],(i==="-"||i==="+")&&(i==="-"&&(t=-1),e=e.slice(1),i=e[0]),e==="0"?0:i==="0"?e[1]==="b"?t*parseInt(e.slice(2),2):e[1]==="x"?t*parseInt(e,16):t*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(o){s.unshift(parseInt(o,10))}),e=0,n=1,s.forEach(function(o){e+=o*n,n*=60}),t*e):t*parseInt(e,10)}function dhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&r%1===0&&!lhe.isNegativeZero(r)}HU.exports=new che("tag:yaml.org,2002:int",{kind:"scalar",resolve:hhe,construct:phe,predicate:dhe,represent:{binary:function(r){return r>=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var bhe=nc();JU.exports=new bhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var Qhe=nc();WU.exports=new Qhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t<n;t++)if(e=s.indexOf(r.charAt(t)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,Khe.call(n)!=="[object Object]")return!1;for(s in n)if(Mhe.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function Hhe(r){return r!==null?r:[]}i2.exports=new Ohe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uhe,construct:Hhe})});var o2=I((e_e,s2)=>{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1){if(i=o[e],Ghe.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function qhe(r){if(r===null)return[];var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}s2.exports=new jhe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Yhe,construct:qhe})});var A2=I((t_e,a2)=>{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var ba=ic(),Q2=Ng(),gpe=QU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function hn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new Q2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e<t){if(a=r.input.slice(e,t),i)for(n=0,s=a.length;n<s;n+=1)o=a.charCodeAt(n),o===9||32<=o&&o<=1114111||gt(r,"expected valid JSON character");else ppe.test(a)&>(r,"the stream contains non-printable characters");r.result+=a}}function B2(r,e,t,i){var n,s,o,a;for(ba.isObject(t)||gt(r,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(t),o=0,a=n.length;o<a;o+=1)s=n[o],kA.call(e,s)||(e[s]=t[s],i[s]=!0)}function Mg(r,e,t,i,n,s,o,a){var l,c;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,c=n.length;l<c;l+=1)Array.isArray(n[l])&>(r,"nested arrays are not supported inside keys"),typeof n=="object"&&I2(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&I2(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(l=0,c=s.length;l<c;l+=1)B2(r,e,s[l],t);else B2(r,e,s,t);else!r.json&&!kA.call(t,n)&&kA.call(e,n)&&(r.line=o||r.line,r.position=a||r.position,gt(r,"duplicated mapping key")),e[n]=s,delete t[n];return e}function WS(r){var e;e=r.input.charCodeAt(r.position),e===10?r.position++:e===13?(r.position++,r.input.charCodeAt(r.position)===10&&r.position++):gt(r,"a line break is expected"),r.line+=1,r.lineStart=r.position}function Jr(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;ac(n);)n=r.input.charCodeAt(++r.position);if(e&&n===35)do n=r.input.charCodeAt(++r.position);while(n!==10&&n!==13&&n!==0);if(vo(n))for(WS(r),n=r.input.charCodeAt(r.position),i++,r.lineIndent=0;n===32;)r.lineIndent++,n=r.input.charCodeAt(++r.position);else break}return t!==-1&&i!==0&&r.lineIndent<t&&II(r,"deficient indentation"),i}function yI(r){var e=r.position,t;return t=r.input.charCodeAt(e),!!((t===45||t===46)&&t===r.input.charCodeAt(e+1)&&t===r.input.charCodeAt(e+2)&&(e+=3,t=r.input.charCodeAt(e),t===0||hn(t)))}function zS(r,e){e===1?r.result+=" ":e>1&&(r.result+=ba.repeat(` +`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),hn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),hn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function bpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function Qpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),hn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent<a){n===E2?r.result+=ba.repeat(` `,s?1+l:l):n===JS&&s&&(r.result+=` -`);break}for(i?ac(g)?(c=!0,r.result+=Qa.repeat(` -`,s?1+l:l)):c?(c=!1,r.result+=Qa.repeat(` -`,l+1)):l===0?s&&(r.result+=" "):r.result+=Qa.repeat(` -`,l):r.result+=Qa.repeat(` -`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!vo(g)&&g!==0;)g=r.input.charCodeAt(++r.position);PA(r,t,r.position,!1)}return!0}function Q2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!hn(o)));){if(a=!0,r.position++,Jr(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,Kg(r,e,x2,!1,!0),s.push(r.result),Jr(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndent<e)break}return a?(r.tag=i,r.anchor=n,r.kind="sequence",r.result=s,!0):!1}function xpe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,h=null,p=null,d=!1,m=!1,y;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),y=r.input.charCodeAt(r.position);y!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(y===63||y===58)&&hn(i))y===63?(d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!0,n=!0):d?(d=!1,n=!0):gt(r,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),r.position+=1,y=i;else if(Kg(r,t,v2,!1,!0))if(r.line===s){for(y=r.input.charCodeAt(r.position);ac(y);)y=r.input.charCodeAt(++r.position);if(y===58)y=r.input.charCodeAt(++r.position),hn(y)||gt(r,"a whitespace character is expected after the key-value separator within a block mapping"),d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!1,n=!1,g=r.tag,h=r.result;else if(m)gt(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(m)gt(r,"can not read a block mapping entry; a multiline key may not be an implicit key");else return r.tag=a,r.anchor=l,!0;else break;if((r.line===s||r.lineIndent>e)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return d&&Mg(r,c,u,g,h,null),m&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),m}function Ppe(r){var e,t=!1,i=!1,n,s,o;if(o=r.input.charCodeAt(r.position),o!==33)return!1;if(r.tag!==null&>(r,"duplication of a tag property"),o=r.input.charCodeAt(++r.position),o===60?(t=!0,o=r.input.charCodeAt(++r.position)):o===33?(i=!0,n="!!",o=r.input.charCodeAt(++r.position)):n="!",e=r.position,t){do o=r.input.charCodeAt(++r.position);while(o!==0&&o!==62);r.position<r.length?(s=r.input.slice(e,r.position),o=r.input.charCodeAt(++r.position)):gt(r,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!hn(o);)o===33&&(i?gt(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),P2.test(n)||gt(r,"named tag handle cannot contain such characters"),i=!0,e=r.position+1)),o=r.input.charCodeAt(++r.position);s=r.input.slice(e,r.position),Cpe.test(s)&>(r,"tag suffix cannot contain flow indicator characters")}return s&&!k2.test(s)&>(r,"tag name cannot contain such characters: "+s),t?r.tag=s:kA.call(r.tagMap,n)?r.tag=r.tagMap[n]+s:n==="!"?r.tag="!"+s:n==="!!"?r.tag="tag:yaml.org,2002:"+s:gt(r,'undeclared tag handle "'+n+'"'),!0}function kpe(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&>(r,"duplication of an anchor property"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!hn(t)&&!Og(t);)t=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an anchor node must contain at least one character"),r.anchor=r.input.slice(e,r.position),!0}function Dpe(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!hn(i)&&!Og(i);)i=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an alias node must contain at least one character"),t=r.input.slice(e,r.position),kA.call(r.anchorMap,t)||gt(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],Jr(r,!0,-1),!0}function Kg(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,h,p,d,m;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=EI===t||x2===t,i&&Jr(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;Ppe(r)||kpe(r);)Jr(r,!0,-1)?(c=!0,a=s,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)):a=!1;if(a&&(a=c||n),(l===1||EI===t)&&(mI===t||v2===t?d=e:d=e+1,m=r.position-r.lineStart,l===1?a&&(Q2(r,m)||xpe(r,m,d))||Spe(r,d)?u=!0:(o&&vpe(r,d)||Qpe(r,d)||bpe(r,d)?u=!0:Dpe(r)?(u=!0,(r.tag!==null||r.anchor!==null)&>(r,"alias node should not have any properties")):Bpe(r,d,mI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&Q2(r,m))),r.tag!==null&&r.tag!=="!")if(r.tag==="?"){for(r.result!==null&&r.kind!=="scalar"&>(r,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g<h;g+=1)if(p=r.implicitTypes[g],p.resolve(r.result)){r.result=p.construct(r.result),r.tag=p.tag,r.anchor!==null&&(r.anchorMap[r.anchor]=r.result);break}}else kA.call(r.typeMap[r.kind||"fallback"],r.tag)?(p=r.typeMap[r.kind||"fallback"][r.tag],r.result!==null&&p.kind!==r.kind&>(r,"unacceptable node kind for !<"+r.tag+'> tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position<r.length-1)gt(r,"end of the stream or a document separator is expected");else return}function T2(r,e){r=String(r),e=e||{},r.length!==0&&(r.charCodeAt(r.length-1)!==10&&r.charCodeAt(r.length-1)!==13&&(r+=` -`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new wpe(r,e),i=r.indexOf("\0");for(i!==-1&&(t.position=i,gt(t,"null byte is not allowed in input")),t.input+="\0";t.input.charCodeAt(t.position)===32;)t.lineIndent+=1,t.position+=1;for(;t.position<t.length-1;)Rpe(t);return t.documents}function N2(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=T2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function L2(r,e){var t=T2(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new b2("expected a single document in the stream, but found more")}}function Fpe(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),N2(r,e,Qa.extend({schema:S2},t))}function Tpe(r,e){return L2(r,Qa.extend({schema:S2},e))}_p.exports.loadAll=N2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Tpe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Tg(),Npe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,Gpe=37,jpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ti={};Ti[0]="\\0";Ti[7]="\\a";Ti[8]="\\b";Ti[9]="\\t";Ti[10]="\\n";Ti[11]="\\v";Ti[12]="\\f";Ti[13]="\\r";Ti[27]="\\e";Ti[34]='\\"';Ti[92]="\\\\";Ti[133]="\\N";Ti[160]="\\_";Ti[8232]="\\L";Ti[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),l=r.compiledTypeMap.fallback[o],l&&J2.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function M2(r){var e,t,i;if(e=r.toString(16).toUpperCase(),r<=255)t="x",i=2;else if(r<=65535)t="u",i=4;else if(r<=4294967295)t="U",i=8;else throw new td("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+ed.repeat("0",i-e.length)+e}function tde(r){this.schema=r.schema||Npe,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=ed.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=ede(this.schema,r.styles||null),this.sortKeys=r.sortKeys||!1,this.lineWidth=r.lineWidth||80,this.noRefs=r.noRefs||!1,this.noCompatMode=r.noCompatMode||!1,this.condenseFlow=r.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function K2(r,e){for(var t=ed.repeat(" ",e),i=0,n=-1,s="",o,a=r.length;i<a;)n=r.indexOf(` +`);break}for(i?ac(g)?(c=!0,r.result+=ba.repeat(` +`,s?1+l:l)):c?(c=!1,r.result+=ba.repeat(` +`,l+1)):l===0?s&&(r.result+=" "):r.result+=ba.repeat(` +`,l):r.result+=ba.repeat(` +`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!vo(g)&&g!==0;)g=r.input.charCodeAt(++r.position);PA(r,t,r.position,!1)}return!0}function b2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!hn(o)));){if(a=!0,r.position++,Jr(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,Kg(r,e,x2,!1,!0),s.push(r.result),Jr(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndent<e)break}return a?(r.tag=i,r.anchor=n,r.kind="sequence",r.result=s,!0):!1}function xpe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,h=null,p=null,d=!1,m=!1,y;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),y=r.input.charCodeAt(r.position);y!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(y===63||y===58)&&hn(i))y===63?(d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!0,n=!0):d?(d=!1,n=!0):gt(r,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),r.position+=1,y=i;else if(Kg(r,t,v2,!1,!0))if(r.line===s){for(y=r.input.charCodeAt(r.position);ac(y);)y=r.input.charCodeAt(++r.position);if(y===58)y=r.input.charCodeAt(++r.position),hn(y)||gt(r,"a whitespace character is expected after the key-value separator within a block mapping"),d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!1,n=!1,g=r.tag,h=r.result;else if(m)gt(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(m)gt(r,"can not read a block mapping entry; a multiline key may not be an implicit key");else return r.tag=a,r.anchor=l,!0;else break;if((r.line===s||r.lineIndent>e)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return d&&Mg(r,c,u,g,h,null),m&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),m}function Ppe(r){var e,t=!1,i=!1,n,s,o;if(o=r.input.charCodeAt(r.position),o!==33)return!1;if(r.tag!==null&>(r,"duplication of a tag property"),o=r.input.charCodeAt(++r.position),o===60?(t=!0,o=r.input.charCodeAt(++r.position)):o===33?(i=!0,n="!!",o=r.input.charCodeAt(++r.position)):n="!",e=r.position,t){do o=r.input.charCodeAt(++r.position);while(o!==0&&o!==62);r.position<r.length?(s=r.input.slice(e,r.position),o=r.input.charCodeAt(++r.position)):gt(r,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!hn(o);)o===33&&(i?gt(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),P2.test(n)||gt(r,"named tag handle cannot contain such characters"),i=!0,e=r.position+1)),o=r.input.charCodeAt(++r.position);s=r.input.slice(e,r.position),Cpe.test(s)&>(r,"tag suffix cannot contain flow indicator characters")}return s&&!k2.test(s)&>(r,"tag name cannot contain such characters: "+s),t?r.tag=s:kA.call(r.tagMap,n)?r.tag=r.tagMap[n]+s:n==="!"?r.tag="!"+s:n==="!!"?r.tag="tag:yaml.org,2002:"+s:gt(r,'undeclared tag handle "'+n+'"'),!0}function kpe(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&>(r,"duplication of an anchor property"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!hn(t)&&!Og(t);)t=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an anchor node must contain at least one character"),r.anchor=r.input.slice(e,r.position),!0}function Dpe(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!hn(i)&&!Og(i);)i=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an alias node must contain at least one character"),t=r.input.slice(e,r.position),kA.call(r.anchorMap,t)||gt(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],Jr(r,!0,-1),!0}function Kg(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,h,p,d,m;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=EI===t||x2===t,i&&Jr(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;Ppe(r)||kpe(r);)Jr(r,!0,-1)?(c=!0,a=s,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)):a=!1;if(a&&(a=c||n),(l===1||EI===t)&&(mI===t||v2===t?d=e:d=e+1,m=r.position-r.lineStart,l===1?a&&(b2(r,m)||xpe(r,m,d))||Spe(r,d)?u=!0:(o&&vpe(r,d)||bpe(r,d)||Qpe(r,d)?u=!0:Dpe(r)?(u=!0,(r.tag!==null||r.anchor!==null)&>(r,"alias node should not have any properties")):Bpe(r,d,mI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&b2(r,m))),r.tag!==null&&r.tag!=="!")if(r.tag==="?"){for(r.result!==null&&r.kind!=="scalar"&>(r,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g<h;g+=1)if(p=r.implicitTypes[g],p.resolve(r.result)){r.result=p.construct(r.result),r.tag=p.tag,r.anchor!==null&&(r.anchorMap[r.anchor]=r.result);break}}else kA.call(r.typeMap[r.kind||"fallback"],r.tag)?(p=r.typeMap[r.kind||"fallback"][r.tag],r.result!==null&&p.kind!==r.kind&>(r,"unacceptable node kind for !<"+r.tag+'> tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position<r.length-1)gt(r,"end of the stream or a document separator is expected");else return}function N2(r,e){r=String(r),e=e||{},r.length!==0&&(r.charCodeAt(r.length-1)!==10&&r.charCodeAt(r.length-1)!==13&&(r+=` +`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new wpe(r,e),i=r.indexOf("\0");for(i!==-1&&(t.position=i,gt(t,"null byte is not allowed in input")),t.input+="\0";t.input.charCodeAt(t.position)===32;)t.lineIndent+=1,t.position+=1;for(;t.position<t.length-1;)Rpe(t);return t.documents}function T2(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function L2(r,e){var t=N2(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new Q2("expected a single document in the stream, but found more")}}function Fpe(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),T2(r,e,ba.extend({schema:S2},t))}function Npe(r,e){return L2(r,ba.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),l=r.compiledTypeMap.fallback[o],l&&J2.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function M2(r){var e,t,i;if(e=r.toString(16).toUpperCase(),r<=255)t="x",i=2;else if(r<=65535)t="u",i=4;else if(r<=4294967295)t="U",i=8;else throw new td("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+ed.repeat("0",i-e.length)+e}function tde(r){this.schema=r.schema||Tpe,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=ed.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=ede(this.schema,r.styles||null),this.sortKeys=r.sortKeys||!1,this.lineWidth=r.lineWidth||80,this.noRefs=r.noRefs||!1,this.noCompatMode=r.noCompatMode||!1,this.condenseFlow=r.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function K2(r,e){for(var t=ed.repeat(" ",e),i=0,n=-1,s="",o,a=r.length;i<a;)n=r.indexOf(` `,i),n===-1?(o=r.slice(i),i=a):(o=r.slice(i,n+1),i=n+1),o.length&&o!==` `&&(s+=t),s+=o;return s}function VS(r,e){return` -`+ed.repeat(" ",r.indent*e)}function rde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t<i;t+=1)if(n=r.implicitTypes[t],n.resolve(e))return!0;return!1}function ZS(r){return r===Kpe||r===Ope}function Ug(r){return 32<=r&&r<=126||161<=r&&r<=55295&&r!==8232&&r!==8233||57344<=r&&r<=65533&&r!==65279||65536<=r&&r<=1114111}function ide(r){return Ug(r)&&!ZS(r)&&r!==65279&&r!==Mpe&&r!==$p}function U2(r,e){return Ug(r)&&r!==65279&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==V2&&(r!==W2||e&&ide(e))}function nde(r){return Ug(r)&&r!==65279&&!ZS(r)&&r!==Jpe&&r!==Vpe&&r!==V2&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==W2&&r!==jpe&&r!==qpe&&r!==Upe&&r!==_pe&&r!==Wpe&&r!==zpe&&r!==Ype&&r!==Hpe&&r!==Gpe&&r!==Xpe&&r!==Zpe}function eH(r){var e=/^\n* /;return e.test(r)}var tH=1,rH=2,iH=3,nH=4,wI=5;function sde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,h=nde(r.charCodeAt(0))&&!ZS(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===$p)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+G2(K2(e,n));case nH:return">"+H2(e,r.indent)+G2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` +`+ed.repeat(" ",r.indent*e)}function rde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t<i;t+=1)if(n=r.implicitTypes[t],n.resolve(e))return!0;return!1}function ZS(r){return r===Kpe||r===Ope}function Ug(r){return 32<=r&&r<=126||161<=r&&r<=55295&&r!==8232&&r!==8233||57344<=r&&r<=65533&&r!==65279||65536<=r&&r<=1114111}function ide(r){return Ug(r)&&!ZS(r)&&r!==65279&&r!==Mpe&&r!==$p}function U2(r,e){return Ug(r)&&r!==65279&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==V2&&(r!==W2||e&&ide(e))}function nde(r){return Ug(r)&&r!==65279&&!ZS(r)&&r!==Jpe&&r!==Vpe&&r!==V2&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==W2&&r!==Gpe&&r!==qpe&&r!==Upe&&r!==_pe&&r!==Wpe&&r!==zpe&&r!==Ype&&r!==Hpe&&r!==jpe&&r!==Xpe&&r!==Zpe}function eH(r){var e=/^\n* /;return e.test(r)}var tH=1,rH=2,iH=3,nH=4,wI=5;function sde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,h=nde(r.charCodeAt(0))&&!ZS(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===$p)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` `,n=i&&(r[r.length-2]===` `||r===` `),s=n?"+":i?"":"-";return t+s+` -`}function G2(r){return r[r.length-1]===` +`}function j2(r){return r[r.length-1]===` `?r.slice(0,-1):r}function ade(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,j2(r.slice(0,c),e)}(),n=r[0]===` +`);return c=c!==-1?c:r.length,t.lastIndex=c,G2(r.slice(0,c),e)}(),n=r[0]===` `||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+j2(l,e),n=s}return i}function j2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`:"")+G2(l,e),n=s}return i}function G2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` `+r.slice(n,s),n=s+1),o=a;return l+=` `,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s<r.length;s++){if(t=r.charCodeAt(s),t>=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ti[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ac(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function cde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ac(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=VS(r,e)),r.dump&&$p===r.dump.charCodeAt(0)?n+="-":n+="- ",n+=r.dump);r.tag=s,r.dump=n||"[]"}function ude(r,e,t){var i="",n=r.tag,s=Object.keys(t),o,a,l,c,u;for(o=0,a=s.length;o<a;o+=1)u="",o!==0&&(u+=", "),r.condenseFlow&&(u+='"'),l=s[o],c=t[l],Ac(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)h="",(!i||a!==0)&&(h+=VS(r,e)),c=o[a],u=t[c],Ac(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!=="?"||r.dump&&r.dump.length>1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e=="object"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r.tag=t?a.tag:"?",a.represent){if(l=r.styleMap[a.tag]||a.defaultStyle,q2.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(J2.call(a.represent,l))i=a.represent[l](e,l);else throw new td("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function XS(r,e,t){var i,n,s;if(r!==null&&typeof r=="object")if(n=e.indexOf(r),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(e.push(r),Array.isArray(r))for(n=0,s=r.length;n<s;n+=1)XS(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)XS(r[i[n]],e,t)}function sH(r,e){e=e||{};var t=new tde(e);return t.noRefs||fde(r,t),Ac(t,0,r,!0,!0)?t.dump+` -`:""}function hde(r,e){return sH(r,ed.extend({schema:Lpe},e))}_S.exports.dump=sH;_S.exports.safeDump=hde});var AH=I((c_e,Rr)=>{"use strict";var BI=O2(),aH=oH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Rr.exports.Type=ni();Rr.exports.Schema=nc();Rr.exports.FAILSAFE_SCHEMA=dI();Rr.exports.JSON_SCHEMA=jS();Rr.exports.CORE_SCHEMA=YS();Rr.exports.DEFAULT_SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_FULL_SCHEMA=Zp();Rr.exports.load=BI.load;Rr.exports.loadAll=BI.loadAll;Rr.exports.safeLoad=BI.safeLoad;Rr.exports.safeLoadAll=BI.safeLoadAll;Rr.exports.dump=aH.dump;Rr.exports.safeDump=aH.safeDump;Rr.exports.YAMLException=Tg();Rr.exports.MINIMAL_SCHEMA=dI();Rr.exports.SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_SCHEMA=Zp();Rr.exports.scan=QI("scan");Rr.exports.parse=QI("parse");Rr.exports.compose=QI("compose");Rr.exports.addConstructor=QI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Cde(r,e){e=e!==void 0?e:{};var t={},i={Start:Us},n=Us,s=function(D){return[].concat(...D)},o="-",a=sr("-",!1),l=function(D){return D},c=function(D){return Object.assign({},...D)},u="#",g=sr("#",!1),h=Ml(),p=function(){return{}},d=":",m=sr(":",!1),y=function(D,Y){return{[D]:Y}},B=",",S=sr(",",!1),P=function(D,Y){return Y},F=function(D,Y,pe){return Object.assign({},...[D].concat(Y).map(Le=>({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===bA*Ig},A=function(D){return D.length===(bA+1)*Ig},ne=function(){return bA++,!0},ue=function(){return bA--,!0},te=function(){return dg()},O=Ks("pseudostring"),T=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s<r.length;s++){if(t=r.charCodeAt(s),t>=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ac(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function cde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ac(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=VS(r,e)),r.dump&&$p===r.dump.charCodeAt(0)?n+="-":n+="- ",n+=r.dump);r.tag=s,r.dump=n||"[]"}function ude(r,e,t){var i="",n=r.tag,s=Object.keys(t),o,a,l,c,u;for(o=0,a=s.length;o<a;o+=1)u="",o!==0&&(u+=", "),r.condenseFlow&&(u+='"'),l=s[o],c=t[l],Ac(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)h="",(!i||a!==0)&&(h+=VS(r,e)),c=o[a],u=t[c],Ac(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!=="?"||r.dump&&r.dump.length>1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e=="object"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r.tag=t?a.tag:"?",a.represent){if(l=r.styleMap[a.tag]||a.defaultStyle,q2.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(J2.call(a.represent,l))i=a.represent[l](e,l);else throw new td("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function XS(r,e,t){var i,n,s;if(r!==null&&typeof r=="object")if(n=e.indexOf(r),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(e.push(r),Array.isArray(r))for(n=0,s=r.length;n<s;n+=1)XS(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)XS(r[i[n]],e,t)}function sH(r,e){e=e||{};var t=new tde(e);return t.noRefs||fde(r,t),Ac(t,0,r,!0,!0)?t.dump+` +`:""}function hde(r,e){return sH(r,ed.extend({schema:Lpe},e))}_S.exports.dump=sH;_S.exports.safeDump=hde});var AH=I((c_e,Rr)=>{"use strict";var BI=O2(),aH=oH();function bI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Rr.exports.Type=ni();Rr.exports.Schema=nc();Rr.exports.FAILSAFE_SCHEMA=dI();Rr.exports.JSON_SCHEMA=GS();Rr.exports.CORE_SCHEMA=YS();Rr.exports.DEFAULT_SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_FULL_SCHEMA=Zp();Rr.exports.load=BI.load;Rr.exports.loadAll=BI.loadAll;Rr.exports.safeLoad=BI.safeLoad;Rr.exports.safeLoadAll=BI.safeLoadAll;Rr.exports.dump=aH.dump;Rr.exports.safeDump=aH.safeDump;Rr.exports.YAMLException=Ng();Rr.exports.MINIMAL_SCHEMA=dI();Rr.exports.SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_SCHEMA=Zp();Rr.exports.scan=bI("scan");Rr.exports.parse=bI("parse");Rr.exports.compose=bI("compose");Rr.exports.addConstructor=bI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Cde(r,e){e=e!==void 0?e:{};var t={},i={Start:Us},n=Us,s=function(D){return[].concat(...D)},o="-",a=sr("-",!1),l=function(D){return D},c=function(D){return Object.assign({},...D)},u="#",g=sr("#",!1),h=Ml(),p=function(){return{}},d=":",m=sr(":",!1),y=function(D,Y){return{[D]:Y}},B=",",S=sr(",",!1),P=function(D,Y){return Y},F=function(D,Y,pe){return Object.assign({},...[D].concat(Y).map(Le=>({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===QA*Ig},A=function(D){return D.length===(QA+1)*Ig},ne=function(){return QA++,!0},ue=function(){return QA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",` -`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),j=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Lr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),yr=function(){return"\b"},Tl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),Qp=function(){return` -`},Sr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Tn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Nl="\\u",Nn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,ln=Ln([" "," "],!1,!1),b=Ks("white space"),Tt=/^[ \t\n\r]/,pg=Ln([" "," ",` +`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Lr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),yr=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),bp=function(){return` +`},Sr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,ln=Ln([" "," "],!1,!1),Q=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` `,"\r"],!1,!1),Ll=`\r -`,bp=sr(`\r +`,Qp=sr(`\r `,!1),Sp=` `,vp=sr(` -`,!1),xp="\r",Pp=sr("\r",!1),G=0,Et=0,yA=[{line:1,column:1}],zi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,G)}function OE(){return cn(Et,G)}function kp(D,Y){throw Y=Y!==void 0?Y:cn(Et,G),Kl([Ks(D)],r.substring(Et,G),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:cn(Et,G),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};pe<D;)r.charCodeAt(pe)===10?(Y.line++,Y.column=1):Y.column++,pe++;return yA[D]=Y,Y}function cn(D,Y){var pe=ha(D),Le=ha(Y);return{start:{offset:D,line:pe.line,column:pe.column},end:{offset:Y,line:Le.line,column:Le.column}}}function Te(D){G<zi||(G>zi&&(zi=G,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=G,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=G,Y=da(),Y!==t?(r.charCodeAt(G)===45?(pe=o,G++):(pe=t,ze===0&&Te(a)),pe!==t?(Le=Or(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D}function mg(){var D,Y,pe;for(D=G,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=G,Y=Or(),Y===t&&(Y=null),Y!==t){if(pe=G,r.charCodeAt(G)===35?(Le=u,G++):(Le=t,ze===0&&Te(g)),Le!==t){if(ke=[],Je=G,pt=G,ze++,Xt=Gs(),ze--,Xt===t?pt=void 0:(G=pt,pt=t),pt!==t?(r.length>G?(Xt=r.charAt(G),G++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(G=Je,Je=t)):(G=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=G,pt=G,ze++,Xt=Gs(),ze--,Xt===t?pt=void 0:(G=pt,pt=t),pt!==t?(r.length>G?(Xt=r.charAt(G),G++):(Xt=t,ze===0&&Te(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(G=Je,Je=t)):(G=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(G=pe,pe=t)}else G=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(G=D,D=t)}else G=D,D=t}else G=D,D=t;if(D===t&&(D=G,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(G)===58?(ke=d,G++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t&&(D=G,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(G)===58?(ke=d,G++):(ke=t,ze===0&&Te(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t))){if(D=G,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Or(),Le!==t)if(ke=Gl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(G=D,D=t)}else G=D,D=t;else G=D,D=t;else G=D,D=t;else G=D,D=t;if(D===t)if(D=G,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=G,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(G)===44?(pt=B,G++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=G,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(G)===44?(pt=B,G++):(pt=t,ze===0&&Te(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t)):(G=ke,ke=t);else Le=t;Le!==t?(ke=Or(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(G)===58?(Je=d,G++):(Je=t,ze===0&&Te(m)),Je!==t?(pt=Or(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)}else G=D,D=t;else G=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=G,Y=G,ze++,pe=G,Le=Gs(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(G)===45?(Je=o,G++):(Je=t,ze===0&&Te(a)),Je!==t?(pt=Or(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t)):(G=pe,pe=t),ze--,pe!==t?(G=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t&&(D=G,Y=Gs(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t),D===t))if(D=G,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(G=D,D=t)}else G=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=G,Y=[],r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));pe!==t;)Y.push(pe),r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));return Y!==t?(Et=G,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(G=D,D=t)):(G=D,D=t),ze--,D===t&&(Y=t,ze===0&&Te(_)),D}function tt(){var D,Y,pe;for(D=G,Y=[],r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));pe!==t;)Y.push(pe),r.charCodeAt(G)===32?(pe=X,G++):(pe=t,ze===0&&Te(W));return Y!==t?(Et=G,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(G=D,D=t)):(G=D,D=t),D}function Bo(){var D;return Et=G,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=G,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=jl(),D===t&&(D=QA()),D}function Ca(){var D,Y,pe;if(D=jl(),D===t){if(D=G,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=jl(),D===t&&(D=QA()))),D}function Gl(){var D;return D=Fp(),D===t&&(D=jl(),D===t&&(D=ma())),D}function QA(){var D,Y,pe,Le,ke,Je;if(ze++,D=G,T.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(ce)),Y!==t){for(pe=[],Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(G))?(Je=r.charAt(G),G++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);Le!==t;)pe.push(Le),Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(G))?(Je=r.charAt(G),G++):(Je=t,ze===0&&Te(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(G=D,D=t)}else G=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Te(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=G,r.substr(G,2)===Re?(Y=Re,G+=2):(Y=t,ze===0&&Te(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(G))?(pe=r.charAt(G),G++):(pe=t,ze===0&&Te(ye)),pe!==t){for(Le=[],ge.test(r.charAt(G))?(ke=r.charAt(G),G++):(ke=t,ze===0&&Te(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(G))?(ke=r.charAt(G),G++):(ke=t,ze===0&&Te(oe));Le!==t?(Et=D,Y=De(),D=Y):(G=D,D=t)}else G=D,D=t;else G=D,D=t;return D}function Fp(){var D,Y;return D=G,r.substr(G,4)===Ye?(Y=Ye,G+=4):(Y=t,ze===0&&Te(ie)),Y!==t&&(Et=D,Y=j()),D=Y,D}function KE(){var D,Y;return D=G,r.substr(G,4)===fe?(Y=fe,G+=4):(Y=t,ze===0&&Te(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=G,r.substr(G,5)===Ze?(Y=Ze,G+=5):(Y=t,ze===0&&Te(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function jl(){var D,Y,pe,Le;return ze++,D=G,r.charCodeAt(G)===34?(Y=ti,G++):(Y=t,ze===0&&Te(ui)),Y!==t?(r.charCodeAt(G)===34?(pe=ti,G++):(pe=t,ze===0&&Te(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(G=D,D=t)):(G=D,D=t),D===t&&(D=G,r.charCodeAt(G)===34?(Y=ti,G++):(Y=t,ze===0&&Te(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(G)===34?(Le=ti,G++):(Le=t,ze===0&&Te(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Te(Lr)),D}function UE(){var D,Y,pe;if(D=G,Y=[],pe=Tp(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Tp();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Tp(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(G))?(D=r.charAt(G),G++):(D=t,ze===0&&Te(fr)),D===t&&(D=G,r.substr(G,2)===Ei?(Y=Ei,G+=2):(Y=t,ze===0&&Te(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=G,r.substr(G,2)===CA?(Y=CA,G+=2):(Y=t,ze===0&&Te(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=G,r.substr(G,2)===mA?(Y=mA,G+=2):(Y=t,ze===0&&Te(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=G,r.substr(G,2)===EA?(Y=EA,G+=2):(Y=t,ze===0&&Te(IA)),Y!==t&&(Et=D,Y=yr()),D=Y,D===t&&(D=G,r.substr(G,2)===Tl?(Y=Tl,G+=2):(Y=t,ze===0&&Te(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=G,r.substr(G,2)===hg?(Y=hg,G+=2):(Y=t,ze===0&&Te(Bp)),Y!==t&&(Et=D,Y=Qp()),D=Y,D===t&&(D=G,r.substr(G,2)===Sr?(Y=Sr,G+=2):(Y=t,ze===0&&Te(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=G,r.substr(G,2)===Tn?(Y=Tn,G+=2):(Y=t,ze===0&&Te(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=G,r.substr(G,2)===Nl?(Y=Nl,G+=2):(Y=t,ze===0&&Te(Nn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)):(G=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(G))?(D=r.charAt(G),G++):(D=t,ze===0&&Te(ut)),D}function Or(){var D,Y;if(ze++,D=[],At.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(ln)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(ln));else D=t;return ze--,D===t&&(Y=t,ze===0&&Te(wo)),D}function HE(){var D,Y;if(ze++,D=[],Tt.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(pg)),Y!==t)for(;Y!==t;)D.push(Y),Tt.test(r.charAt(G))?(Y=r.charAt(G),G++):(Y=t,ze===0&&Te(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Te(b)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=G,Y=Gs(),Y!==t){for(pe=[],Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=Gs(),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);Le!==t;)pe.push(Le),Le=G,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=Gs(),Je!==t?(ke=[ke,Je],Le=ke):(G=Le,Le=t)):(G=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(G=D,D=t)}else G=D,D=t;return D}function Gs(){var D;return r.substr(G,2)===Ll?(D=Ll,G+=2):(D=t,ze===0&&Te(bp)),D===t&&(r.charCodeAt(G)===10?(D=Sp,G++):(D=t,ze===0&&Te(vp)),D===t&&(r.charCodeAt(G)===13?(D=xp,G++):(D=t,ze===0&&Te(Pp)))),D}let Ig=2,bA=0;if(fa=n(),fa!==t&&G===r.length)return fa;throw fa!==t&&G<r.length&&Te(Dp()),Kl(Ol,zi<r.length?r.charAt(zi):null,zi<r.length?cn(zi,zi+1):cn(zi,zi))}uH.exports={SyntaxError:lc,parse:Cde}});var mH=I((C_e,ev)=>{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n<r.length;n++){let s=r[n];e&&/[a-zA-Z]/.test(s)&&s.toUpperCase()===s?(r=r.slice(0,n)+"-"+r.slice(n),e=!1,i=t,t=!0,n++):t&&i&&/[a-zA-Z]/.test(s)&&s.toLowerCase()===s?(r=r.slice(0,n-1)+"-"+r.slice(n-1),i=t,t=!1,e=!0):(e=s.toLowerCase()===s&&s.toUpperCase()!==s,i=t,t=s.toUpperCase()===s&&s.toLowerCase()!==s)}return r},CH=(r,e)=>{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var pn={};ct(pn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>bH,colorStringRegExp:()=>QH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>Gde,isAtMost:()=>jde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Zi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>Qde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Tde,isOptional:()=>Nde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,QH,bH,SH,vH,ov,xH,kH,od,bde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Tde,ad,Nde,Lde,Ode,Mde,DH,Kde,Ude,Hde,Gde,jde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,QH=/^#[0-9a-f]{6}$/i,bH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});bde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=bde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o<a&&(s=r(t[o],Object.assign(Object.assign({},i),{p:DA(i,o),coercion:gc(t,o)}))&&s,!(!s&&(i==null?void 0:i.errors)==null));++o);return s}}),kde=(r,{delimiter:e}={})=>{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;a<l&&a<r.length&&(o=r[a](i[a],Object.assign(Object.assign({},n),{p:DA(n,a),coercion:gc(i,a)}))&&o,!(!o&&(n==null?void 0:n.errors)==null));++a);return o}})},Dde=(r,{keys:e=null}={})=>Bt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o<a&&(s||(i==null?void 0:i.errors)!=null);++o){let l=n[o],c=t[l];if(l==="__proto__"||l==="constructor"){s=ht(Object.assign(Object.assign({},i),{p:DA(i,l)}),"Unsafe property name");continue}if(e!==null&&!e(l,i)){s=!1;continue}if(!r(c,Object.assign(Object.assign({},i),{p:DA(i,l),coercion:gc(t,l)}))){s=!1;continue}}return s}}),Rde=(r,{extra:e=null}={})=>{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Tde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c<u;++c){let g=typeof(i==null?void 0:i.errors)<"u"?[]:void 0,h=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(r[c](t,Object.assign(Object.assign({},i),{errors:g,coercions:h,p:`${(n=i==null?void 0:i.p)!==null&&n!==void 0?n:"."}#${c+1}`}))){if(a.push([`#${c+1}`,h]),!e)break}else l==null||l.push(g[0])}if(a.length===1){let[,c]=a[0];return typeof c<"u"&&((s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...c)),!0}return a.length>1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Nde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;s<o;++s){let a=e[s],l=typeof r<"u"?r(a):a;if(i.has(l)){if(n.has(l))continue;ht(t,`Expected to contain unique elements; got a duplicate with ${Wr(e)}`),n.add(l)}else i.add(l)}return n.size===0}}),Ude=()=>Bt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),Gde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),jde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<e?!0:ht(i,`Expected to be in the [${r}; ${e}[ range (got ${t})`)}),Jde=({unsafe:r=!1}={})=>Bt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?QH.test(e):bH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{t<r?n(a,l,...c):e.push(n.bind(null,a,l,...c))},o=(a,...l)=>new Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var QCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=QCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),bCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,Qt=(r,e,t)=>{let i=vCe++;bCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};Qt("NUMERICIDENTIFIER","0|[1-9]\\d*");Qt("NUMERICIDENTIFIERLOOSE","[0-9]+");Qt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");Qt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);Qt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);Qt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);Qt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);Qt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);Qt("BUILDIDENTIFIER","[0-9A-Za-z-]+");Qt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);Qt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);Qt("FULL",`^${$e[et.FULLPLAIN]}$`);Qt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);Qt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);Qt("GTLT","((?:<|>)?=?)");Qt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Qt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);Qt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);Qt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);Qt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);Qt("COERCERTL",$e[et.COERCE],!0);Qt("LONETILDE","(?:~>?)");Qt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";Qt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);Qt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("LONECARET","(?:\\^)");Qt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";Qt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);Qt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);Qt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);Qt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);Qt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";Qt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);Qt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);Qt("STAR","(<|>)?=?\\s*\\*");Qt("GTE0","^\\s*>=\\s*0.0.0\\s*$");Qt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((Q$e,rG)=>{var eG=/^[0-9]+$/,tG=(r,e)=>{let t=eG.test(r),i=eG.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r<e?-1:1},kCe=(r,e)=>tG(e,r);rG.exports={compareIdentifiers:tG,rcompareIdentifiers:kCe}});var Li=I((b$e,oG)=>{var OI=hd(),{MAX_LENGTH:iG,MAX_SAFE_INTEGER:MI}=fd(),{re:nG,t:sG}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),jn=class{constructor(e,t){if(t=DCe(t),e instanceof jn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>iG)throw new TypeError(`version is longer than ${iG} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nG[sG.LOOSE]:nG[sG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<MI)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(OI("SemVer.compare",this.version,this.options,e),!(e instanceof jn)){if(typeof e=="string"&&e===this.version)return 0;e=new jn(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof jn||(e=new jn(e,this.options)),dd(this.major,e.major)||dd(this.minor,e.minor)||dd(this.patch,e.patch)}comparePre(e){if(e instanceof jn||(e=new jn(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=e.prerelease[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}compareBuild(e){e instanceof jn||(e=new jn(e,this.options));let t=0;do{let i=this.build[t],n=e.build[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t),this.inc("pre",t);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oG.exports=jn});var hc=I((S$e,cG)=>{var{MAX_LENGTH:RCe}=fd(),{re:aG,t:AG}=fc(),lG=Li(),FCe=pd(),TCe=(r,e)=>{if(e=FCe(e),r instanceof lG)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aG[AG.LOOSE]:aG[AG.FULL]).test(r))return null;try{return new lG(r,e)}catch{return null}};cG.exports=TCe});var gG=I((v$e,uG)=>{var NCe=hc(),LCe=(r,e)=>{let t=NCe(r,e);return t?t.version:null};uG.exports=LCe});var hG=I((x$e,fG)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fG.exports=MCe});var dG=I((P$e,pG)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pG.exports=UCe});var ls=I((k$e,mG)=>{var CG=Li(),HCe=(r,e,t)=>new CG(r,t).compare(new CG(e,t));mG.exports=HCe});var KI=I((D$e,EG)=>{var GCe=ls(),jCe=(r,e,t)=>GCe(r,e,t)===0;EG.exports=jCe});var wG=I((R$e,yG)=>{var IG=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=IG(r),i=IG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yG.exports=qCe});var QG=I((F$e,BG)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;BG.exports=WCe});var SG=I((T$e,bG)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;bG.exports=VCe});var xG=I((N$e,vG)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vG.exports=ZCe});var kG=I((L$e,PG)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};PG.exports=$Ce});var RG=I((O$e,DG)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);DG.exports=tme});var TG=I((M$e,FG)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);FG.exports=ime});var UI=I((K$e,LG)=>{var NG=Li(),nme=(r,e,t)=>{let i=new NG(r,t),n=new NG(e,t);return i.compare(n)||i.compareBuild(n)};LG.exports=nme});var MG=I((U$e,OG)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));OG.exports=ome});var UG=I((H$e,KG)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));KG.exports=Ame});var Cd=I((G$e,HG)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;HG.exports=cme});var HI=I((j$e,GG)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;GG.exports=gme});var Cv=I((Y$e,jG)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;jG.exports=hme});var GI=I((q$e,YG)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;YG.exports=dme});var jI=I((J$e,qG)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qG.exports=mme});var mv=I((W$e,JG)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=GI(),Bme=HI(),Qme=jI(),bme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return Qme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};JG.exports=bme});var zG=I((z$e,WG)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};WG.exports=xme});var XG=I((V$e,VG)=>{"use strict";VG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,ZG)=>{"use strict";ZG.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t<i;t++)e.push(arguments[t]);return e}Mt.prototype.removeNode=function(r){if(r.list!==this)throw new Error("removing node which does not belong to this list");var e=r.next,t=r.prev;return e&&(e.prev=t),t&&(t.next=e),r===this.head&&(this.head=e),r===this.tail&&(this.tail=t),r.list.length--,r.next=null,r.prev=null,r.list=null,e};Mt.prototype.unshiftNode=function(r){if(r!==this.head){r.list&&r.list.removeNode(r);var e=this.head;r.list=this,r.next=e,e&&(e.prev=r),this.head=r,this.tail||(this.tail=r),this.length++}};Mt.prototype.pushNode=function(r){if(r!==this.tail){r.list&&r.list.removeNode(r);var e=this.tail;r.list=this,r.prev=e,e&&(e.next=r),this.tail=r,this.head||(this.head=r),this.length++}};Mt.prototype.push=function(){for(var r=0,e=arguments.length;r<e;r++)kme(this,arguments[r]);return this.length};Mt.prototype.unshift=function(){for(var r=0,e=arguments.length;r<e;r++)Dme(this,arguments[r]);return this.length};Mt.prototype.pop=function(){if(!!this.tail){var r=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,r}};Mt.prototype.shift=function(){if(!!this.head){var r=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,r}};Mt.prototype.forEach=function(r,e){e=e||this;for(var t=this.head,i=0;t!==null;i++)r.call(e,t.value,i,this),t=t.next};Mt.prototype.forEachReverse=function(r,e){e=e||this;for(var t=this.tail,i=this.length-1;t!==null;i--)r.call(e,t.value,i,this),t=t.prev};Mt.prototype.get=function(r){for(var e=0,t=this.head;t!==null&&e<r;e++)t=t.next;if(e===r&&t!==null)return t.value};Mt.prototype.getReverse=function(r){for(var e=0,t=this.tail;t!==null&&e<r;e++)t=t.prev;if(e===r&&t!==null)return t.value};Mt.prototype.map=function(r,e){e=e||this;for(var t=new Mt,i=this.head;i!==null;)t.push(r.call(e,i.value,this)),i=i.next;return t};Mt.prototype.mapReverse=function(r,e){e=e||this;for(var t=new Mt,i=this.tail;i!==null;)t.push(r.call(e,i.value,this)),i=i.prev;return t};Mt.prototype.reduce=function(r,e){var t,i=this.head;if(arguments.length>1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(;n!==null&&i<e;i++,n=n.next)t.push(n.value);return t};Mt.prototype.sliceReverse=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(var s=[],i=0;n&&i<e;i++)s.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var i=0;i<t.length;i++)n=Pme(this,n,t[i]);return s};Mt.prototype.reverse=function(){for(var r=this.head,e=this.tail,t=r;t!==null;t=t.prev){var i=t.prev;t.prev=t.next,t.next=i}return this.head=e,this.tail=r,this};function Pme(r,e,t){var i=e===r.head?new pc(t,null,e,r):new pc(t,e,e.next,r);return i.next===null&&(r.tail=i),i.prev===null&&(r.head=i),r.length++,i}function kme(r,e){r.tail=new pc(e,r.tail,null,r),r.head||(r.head=r.tail),r.length++}function Dme(r,e){r.head=new pc(e,null,r.head,r),r.tail||(r.tail=r.head),r.length++}function pc(r,e,t,i){if(!(this instanceof pc))return new pc(r,e,t,i);this.list=i,this.value=r,e?(e.next=this,this.prev=e):this.prev=null,t?(t.prev=this,this.next=t):this.next=null}try{XG()(Mt)}catch{}});var rj=I((Z$e,tj)=>{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_G=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),ej=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_G]=e.noDisposeOnSet||!1,this[ej]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$G(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$G(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_G]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[ej]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$G=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tj.exports=yv});var cs=I((_$e,oj)=>{var mc=class{constructor(e,t){if(t=Tme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nj(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=ij.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Kr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],Lme),Kr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Ome),e=e.replace(Oi[bi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nj(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return ij.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sj(i,t)&&e.set.some(n=>sj(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Nme(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(Xme(this.set[t],e,this.options))return!0;return!1}};oj.exports=mc;var Fme=rj(),ij=new Fme({max:1e3}),Tme=pd(),Bv=Id(),Kr=hd(),Nme=Li(),{re:Oi,t:bi,comparatorTrimReplace:Lme,tildeTrimReplace:Ome,caretTrimReplace:Mme}=fc(),nj=r=>r.value==="<0.0.0-0",Kme=r=>r.value==="",sj=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Kr("comp",r,e),r=jme(r,e),Kr("caret",r),r=Hme(r,e),Kr("tildes",r),r=qme(r,e),Kr("xrange",r),r=Wme(r,e),Kr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>Gme(t,e)).join(" "),Gme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Kr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Kr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Kr("tilde return",l),l})},jme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Kr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Kr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Kr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Kr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Kr("caret return",c),c})},qme=(r,e)=>(Kr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Kr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Kr("xRange return",i),i})},Wme=(r,e)=>(Kr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),zme=(r,e)=>(Kr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i<r.length;i++)if(!r[i].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let i=0;i<r.length;i++)if(Kr(r[i].semver),r[i].semver!==Bv.ANY&&r[i].semver.prerelease.length>0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uj)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}bv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,bv("comp",this)}parse(e){let t=this.options.loose?aj[Aj.COMPARATORLOOSE]:aj[Aj.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lj(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(bv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lj(e,this.options)}catch{return!1}return Qv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cj(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cj(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Qv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Qv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uj.exports=Vg;var Zme=pd(),{re:aj,t:Aj}=fc(),Qv=mv(),bv=hd(),lj=Li(),cj=cs()});var wd=I((eet,gj)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gj.exports=$me});var hj=I((tet,fj)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fj.exports=tEe});var dj=I((ret,pj)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pj.exports=nEe});var mj=I((iet,Cj)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};Cj.exports=aEe});var yj=I((net,Ij)=>{var Sv=Li(),AEe=cs(),Ej=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i<r.set.length;++i){let n=r.set[i],s=null;n.forEach(o=>{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||Ej(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||Ej(t,s))&&(t=s)}return t&&r.test(t)?t:null};Ij.exports=lEe});var Bj=I((set,wj)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wj.exports=uEe});var zI=I((oet,vj)=>{var gEe=Li(),Sj=Id(),{ANY:fEe}=Sj,hEe=cs(),pEe=wd(),Qj=Cd(),bj=HI(),dEe=jI(),CEe=GI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=Qj,s=dEe,o=bj,a=">",l=">=";break;case"<":n=bj,s=CEe,o=Qj,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],g=null,h=null;if(u.forEach(p=>{p.semver===fEe&&(p=new Sj(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vj.exports=mEe});var Pj=I((aet,xj)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xj.exports=IEe});var Dj=I((Aet,kj)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kj.exports=wEe});var Tj=I((cet,Fj)=>{var Rj=cs(),BEe=(r,e,t)=>(r=new Rj(r,t),e=new Rj(e,t),r.intersects(e));Fj.exports=BEe});var Lj=I((uet,Nj)=>{var QEe=wd(),bEe=ls();Nj.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bEe(u,g,t));for(let u of o)QEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e}});var Hj=I((get,Uj)=>{var Oj=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new Oj(r,t),e=new Oj(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=Mj(n,p,t):p.operator==="<"||p.operator==="<="?s=Kj(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=Mj(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=Kj(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},Mj=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},Kj=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};Uj.exports=SEe});var zr=I((fet,Gj)=>{var Pv=fc();Gj.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gG(),clean:hG(),inc:dG(),diff:wG(),major:QG(),minor:SG(),patch:xG(),prerelease:kG(),compare:ls(),rcompare:RG(),compareLoose:TG(),compareBuild:UI(),sort:MG(),rsort:UG(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:GI(),lte:jI(),cmp:mv(),coerce:zG(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hj(),maxSatisfying:dj(),minSatisfying:mj(),minVersion:yj(),validRange:Bj(),outside:zI(),gtr:Pj(),ltr:Dj(),intersects:Tj(),simplifyRange:Lj(),subset:Hj()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i<n;i++)(s||!(i in e))&&(s||(s=Array.prototype.slice.call(e,0,i)),s[i]=e[i]);return r.concat(s||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0});exports.toFastProperties=exports.timer=exports.peek=exports.isES2015MapSupported=exports.PRINT_WARNING=exports.PRINT_ERROR=exports.packArray=exports.IDENTITY=exports.NOOP=exports.merge=exports.groupBy=exports.defaults=exports.assignNoOverwrite=exports.assign=exports.zipObject=exports.sortBy=exports.indexOf=exports.some=exports.difference=exports.every=exports.isObject=exports.isRegExp=exports.isArray=exports.partial=exports.uniq=exports.compact=exports.reduce=exports.findAll=exports.find=exports.cloneObj=exports.cloneArr=exports.contains=exports.has=exports.pick=exports.reject=exports.filter=exports.dropRight=exports.drop=exports.isFunction=exports.isUndefined=exports.isString=exports.forEach=exports.last=exports.first=exports.flatten=exports.map=exports.mapValues=exports.values=exports.keys=exports.isEmpty=void 0;exports.upperFirst=void 0;function isEmpty(r){return r&&r.length===0}exports.isEmpty=isEmpty;function keys(r){return r==null?[]:Object.keys(r)}exports.keys=keys;function values(r){for(var e=[],t=Object.keys(r),i=0;i<t.length;i++)e.push(r[t[i]]);return e}exports.values=values;function mapValues(r,e){for(var t=[],i=keys(r),n=0;n<i.length;n++){var s=i[n];t.push(e.call(null,r[s],s))}return t}exports.mapValues=mapValues;function map(r,e){for(var t=[],i=0;i<r.length;i++)t.push(e.call(null,r[i],i));return t}exports.map=map;function flatten(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];Array.isArray(i)?e=e.concat(flatten(i)):e.push(i)}return e}exports.flatten=flatten;function first(r){return isEmpty(r)?void 0:r[0]}exports.first=first;function last(r){var e=r&&r.length;return e?r[e-1]:void 0}exports.last=last;function forEach(r,e){if(Array.isArray(r))for(var t=0;t<r.length;t++)e.call(null,r[t],t);else if(isObject(r))for(var i=keys(r),t=0;t<i.length;t++){var n=i[t],s=r[n];e.call(null,s,n)}else throw Error("non exhaustive match")}exports.forEach=forEach;function isString(r){return typeof r=="string"}exports.isString=isString;function isUndefined(r){return r===void 0}exports.isUndefined=isUndefined;function isFunction(r){return r instanceof Function}exports.isFunction=isFunction;function drop(r,e){return e===void 0&&(e=1),r.slice(e,r.length)}exports.drop=drop;function dropRight(r,e){return e===void 0&&(e=1),r.slice(0,r.length-e)}exports.dropRight=dropRight;function filter(r,e){var t=[];if(Array.isArray(r))for(var i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.filter=filter;function reject(r,e){return filter(r,function(t){return!e(t)})}exports.reject=reject;function pick(r,e){for(var t=Object.keys(r),i={},n=0;n<t.length;n++){var s=t[n],o=r[s];e(o)&&(i[s]=o)}return i}exports.pick=pick;function has(r,e){return isObject(r)?r.hasOwnProperty(e):!1}exports.has=has;function contains(r,e){return find(r,function(t){return t===e})!==void 0}exports.contains=contains;function cloneArr(r){for(var e=[],t=0;t<r.length;t++)e.push(r[t]);return e}exports.cloneArr=cloneArr;function cloneObj(r){var e={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e}exports.cloneObj=cloneObj;function find(r,e){for(var t=0;t<r.length;t++){var i=r[t];if(e.call(null,i))return i}}exports.find=find;function findAll(r,e){for(var t=[],i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.findAll=findAll;function reduce(r,e,t){for(var i=Array.isArray(r),n=i?r:values(r),s=i?[]:keys(r),o=t,a=0;a<n.length;a++)o=e.call(null,o,n[a],i?a:s[a]);return o}exports.reduce=reduce;function compact(r){return reject(r,function(e){return e==null})}exports.compact=compact;function uniq(r,e){e===void 0&&(e=function(i){return i});var t=[];return reduce(r,function(i,n){var s=e(n);return contains(t,s)?i:(t.push(s),i.concat(n))},[])}exports.uniq=uniq;function partial(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var i=[null],n=i.concat(e);return Function.bind.apply(r,n)}exports.partial=partial;function isArray(r){return Array.isArray(r)}exports.isArray=isArray;function isRegExp(r){return r instanceof RegExp}exports.isRegExp=isRegExp;function isObject(r){return r instanceof Object}exports.isObject=isObject;function every(r,e){for(var t=0;t<r.length;t++)if(!e(r[t],t))return!1;return!0}exports.every=every;function difference(r,e){return reject(r,function(t){return contains(e,t)})}exports.difference=difference;function some(r,e){for(var t=0;t<r.length;t++)if(e(r[t]))return!0;return!1}exports.some=some;function indexOf(r,e){for(var t=0;t<r.length;t++)if(r[t]===e)return t;return-1}exports.indexOf=indexOf;function sortBy(r,e){var t=cloneArr(r);return t.sort(function(i,n){return e(i)-e(n)}),t}exports.sortBy=sortBy;function zipObject(r,e){if(r.length!==e.length)throw Error("can't zipObject with different number of keys and values!");for(var t={},i=0;i<r.length;i++)t[r[i]]=e[i];return t}exports.zipObject=zipObject;function assign(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];r[a]=n[a]}return r}exports.assign=assign;function assignNoOverwrite(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];has(r,a)||(r[a]=n[a])}return r}exports.assignNoOverwrite=assignNoOverwrite;function defaults(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return assignNoOverwrite.apply(void 0,__spreadArray([{}],r,!1))}exports.defaults=defaults;function groupBy(r,e){var t={};return forEach(r,function(i){var n=e(i),s=t[n];s?s.push(i):t[n]=[i]}),t}exports.groupBy=groupBy;function merge(r,e){for(var t=cloneObj(r),i=keys(e),n=0;n<i.length;n++){var s=i[n],o=e[s];t[s]=o}return t}exports.merge=merge;function NOOP(){}exports.NOOP=NOOP;function IDENTITY(r){return r}exports.IDENTITY=IDENTITY;function packArray(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];e.push(i!==void 0?i:void 0)}return e}exports.packArray=packArray;function PRINT_ERROR(r){console&&console.error&&console.error("Error: "+r)}exports.PRINT_ERROR=PRINT_ERROR;function PRINT_WARNING(r){console&&console.warn&&console.warn("Warning: "+r)}exports.PRINT_WARNING=PRINT_WARNING;function isES2015MapSupported(){return typeof Map=="function"}exports.isES2015MapSupported=isES2015MapSupported;function peek(r){return r[r.length-1]}exports.peek=peek;function timer(r){var e=new Date().getTime(),t=r(),i=new Date().getTime(),n=i-e;return{time:n,value:t}}exports.timer=timer;function toFastProperties(toBecomeFast){function FakeConstructor(){}FakeConstructor.prototype=toBecomeFast;var fakeInstance=new FakeConstructor;function fakeAccess(){return typeof fakeInstance.bar}return fakeAccess(),fakeAccess(),toBecomeFast;eval(toBecomeFast)}exports.toFastProperties=toFastProperties;function upperFirst(r){if(!r)return r;var e=getCharacterFromCodePointAt(r,0);return e.toUpperCase()+r.substring(e.length)}exports.upperFirst=upperFirst;var surrogatePairPattern=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;function getCharacterFromCodePointAt(r,e){var t=r.substring(e,e+1);return surrogatePairPattern.test(t)?t:r[e]}});var _I=I((jj,ZI)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:jj,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],zi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return cn(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};pe<D;)r.charCodeAt(pe)===10?(Y.line++,Y.column=1):Y.column++,pe++;return yA[D]=Y,Y}function cn(D,Y){var pe=ha(D),Le=ha(Y);return{start:{offset:D,line:pe.line,column:pe.column},end:{offset:Y,line:Le.line,column:Le.column}}}function Ne(D){j<zi||(j>zi&&(zi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Or(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Or(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Or(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Or(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Or(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Or(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=bA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=bA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function bA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Lr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=yr()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=bp()),D=Y,D===t&&(D=j,r.substr(j,2)===Sr?(Y=Sr,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Or(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(Q)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(Qp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Ne(Pp)))),D}let Ig=2,QA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j<r.length&&Ne(Dp()),Kl(Ol,zi<r.length?r.charAt(zi):null,zi<r.length?cn(zi,zi+1):cn(zi,zi))}uH.exports={SyntaxError:lc,parse:Cde}});var mH=I((C_e,ev)=>{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n<r.length;n++){let s=r[n];e&&/[a-zA-Z]/.test(s)&&s.toUpperCase()===s?(r=r.slice(0,n)+"-"+r.slice(n),e=!1,i=t,t=!0,n++):t&&i&&/[a-zA-Z]/.test(s)&&s.toLowerCase()===s?(r=r.slice(0,n-1)+"-"+r.slice(n-1),i=t,t=!1,e=!0):(e=s.toLowerCase()===s&&s.toUpperCase()!==s,i=t,t=s.toUpperCase()===s&&s.toLowerCase()!==s)}return r},CH=(r,e)=>{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var pn={};ct(pn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>QH,colorStringRegExp:()=>bH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Zi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>bde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function bde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,bH,QH,SH,vH,ov,xH,kH,od,Qde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,bH=/^#[0-9a-f]{6}$/i,QH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});Qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=Qde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o<a&&(s=r(t[o],Object.assign(Object.assign({},i),{p:DA(i,o),coercion:gc(t,o)}))&&s,!(!s&&(i==null?void 0:i.errors)==null));++o);return s}}),kde=(r,{delimiter:e}={})=>{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;a<l&&a<r.length&&(o=r[a](i[a],Object.assign(Object.assign({},n),{p:DA(n,a),coercion:gc(i,a)}))&&o,!(!o&&(n==null?void 0:n.errors)==null));++a);return o}})},Dde=(r,{keys:e=null}={})=>Bt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o<a&&(s||(i==null?void 0:i.errors)!=null);++o){let l=n[o],c=t[l];if(l==="__proto__"||l==="constructor"){s=ht(Object.assign(Object.assign({},i),{p:DA(i,l)}),"Unsafe property name");continue}if(e!==null&&!e(l,i)){s=!1;continue}if(!r(c,Object.assign(Object.assign({},i),{p:DA(i,l),coercion:gc(t,l)}))){s=!1;continue}}return s}}),Rde=(r,{extra:e=null}={})=>{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c<u;++c){let g=typeof(i==null?void 0:i.errors)<"u"?[]:void 0,h=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(r[c](t,Object.assign(Object.assign({},i),{errors:g,coercions:h,p:`${(n=i==null?void 0:i.p)!==null&&n!==void 0?n:"."}#${c+1}`}))){if(a.push([`#${c+1}`,h]),!e)break}else l==null||l.push(g[0])}if(a.length===1){let[,c]=a[0];return typeof c<"u"&&((s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...c)),!0}return a.length>1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;s<o;++s){let a=e[s],l=typeof r<"u"?r(a):a;if(i.has(l)){if(n.has(l))continue;ht(t,`Expected to contain unique elements; got a duplicate with ${Wr(e)}`),n.add(l)}else i.add(l)}return n.size===0}}),Ude=()=>Bt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<e?!0:ht(i,`Expected to be in the [${r}; ${e}[ range (got ${t})`)}),Jde=({unsafe:r=!1}={})=>Bt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?bH.test(e):QH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{t<r?n(a,l,...c):e.push(n.bind(null,a,l,...c))},o=(a,...l)=>new Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var bCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=bCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),QCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,bt=(r,e,t)=>{let i=vCe++;QCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};bt("NUMERICIDENTIFIER","0|[1-9]\\d*");bt("NUMERICIDENTIFIERLOOSE","[0-9]+");bt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");bt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);bt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);bt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);bt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);bt("BUILDIDENTIFIER","[0-9A-Za-z-]+");bt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);bt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);bt("FULL",`^${$e[et.FULLPLAIN]}$`);bt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);bt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);bt("GTLT","((?:<|>)?=?)");bt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);bt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);bt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);bt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);bt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);bt("COERCERTL",$e[et.COERCE],!0);bt("LONETILDE","(?:~>?)");bt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";bt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);bt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("LONECARET","(?:\\^)");bt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";bt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);bt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);bt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);bt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";bt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);bt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);bt("STAR","(<|>)?=?\\s*\\*");bt("GTE0","^\\s*>=\\s*0.0.0\\s*$");bt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((b$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r<e?-1:1},kCe=(r,e)=>tj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((Q$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<MI)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(OI("SemVer.compare",this.version,this.options,e),!(e instanceof Gn)){if(typeof e=="string"&&e===this.version)return 0;e=new Gn(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof Gn||(e=new Gn(e,this.options)),dd(this.major,e.major)||dd(this.minor,e.minor)||dd(this.patch,e.patch)}comparePre(e){if(e instanceof Gn||(e=new Gn(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=e.prerelease[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}compareBuild(e){e instanceof Gn||(e=new Gn(e,this.options));let t=0;do{let i=this.build[t],n=e.build[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t),this.inc("pre",t);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var bj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,Qj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;Qj.exports=VCe});var xj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),bme=GI(),Qme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return bme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=Qme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t<i;t++)e.push(arguments[t]);return e}Mt.prototype.removeNode=function(r){if(r.list!==this)throw new Error("removing node which does not belong to this list");var e=r.next,t=r.prev;return e&&(e.prev=t),t&&(t.next=e),r===this.head&&(this.head=e),r===this.tail&&(this.tail=t),r.list.length--,r.next=null,r.prev=null,r.list=null,e};Mt.prototype.unshiftNode=function(r){if(r!==this.head){r.list&&r.list.removeNode(r);var e=this.head;r.list=this,r.next=e,e&&(e.prev=r),this.head=r,this.tail||(this.tail=r),this.length++}};Mt.prototype.pushNode=function(r){if(r!==this.tail){r.list&&r.list.removeNode(r);var e=this.tail;r.list=this,r.prev=e,e&&(e.next=r),this.tail=r,this.head||(this.head=r),this.length++}};Mt.prototype.push=function(){for(var r=0,e=arguments.length;r<e;r++)kme(this,arguments[r]);return this.length};Mt.prototype.unshift=function(){for(var r=0,e=arguments.length;r<e;r++)Dme(this,arguments[r]);return this.length};Mt.prototype.pop=function(){if(!!this.tail){var r=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,r}};Mt.prototype.shift=function(){if(!!this.head){var r=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,r}};Mt.prototype.forEach=function(r,e){e=e||this;for(var t=this.head,i=0;t!==null;i++)r.call(e,t.value,i,this),t=t.next};Mt.prototype.forEachReverse=function(r,e){e=e||this;for(var t=this.tail,i=this.length-1;t!==null;i--)r.call(e,t.value,i,this),t=t.prev};Mt.prototype.get=function(r){for(var e=0,t=this.head;t!==null&&e<r;e++)t=t.next;if(e===r&&t!==null)return t.value};Mt.prototype.getReverse=function(r){for(var e=0,t=this.tail;t!==null&&e<r;e++)t=t.prev;if(e===r&&t!==null)return t.value};Mt.prototype.map=function(r,e){e=e||this;for(var t=new Mt,i=this.head;i!==null;)t.push(r.call(e,i.value,this)),i=i.next;return t};Mt.prototype.mapReverse=function(r,e){e=e||this;for(var t=new Mt,i=this.tail;i!==null;)t.push(r.call(e,i.value,this)),i=i.prev;return t};Mt.prototype.reduce=function(r,e){var t,i=this.head;if(arguments.length>1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(;n!==null&&i<e;i++,n=n.next)t.push(n.value);return t};Mt.prototype.sliceReverse=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(var s=[],i=0;n&&i<e;i++)s.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var i=0;i<t.length;i++)n=Pme(this,n,t[i]);return s};Mt.prototype.reverse=function(){for(var r=this.head,e=this.tail,t=r;t!==null;t=t.prev){var i=t.prev;t.prev=t.next,t.next=i}return this.head=e,this.tail=r,this};function Pme(r,e,t){var i=e===r.head?new pc(t,null,e,r):new pc(t,e,e.next,r);return i.next===null&&(r.tail=i),i.prev===null&&(r.head=i),r.length++,i}function kme(r,e){r.tail=new pc(e,r.tail,null,r),r.head||(r.head=r.tail),r.length++}function Dme(r,e){r.head=new pc(e,null,r.head,r),r.tail||(r.tail=r.head),r.length++}function pc(r,e,t,i){if(!(this instanceof pc))return new pc(r,e,t,i);this.list=i,this.value=r,e?(e.next=this,this.prev=e):this.prev=null,t?(t.prev=this,this.next=t):this.next=null}try{Xj()(Mt)}catch{}});var rG=I((Z$e,tG)=>{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[Qi.HYPHENRANGELOOSE]:Oi[Qi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Kr("hyphen replace",e),e=e.replace(Oi[Qi.COMPARATORTRIM],Lme),Kr("comparator trim",e,Oi[Qi.COMPARATORTRIM]),e=e.replace(Oi[Qi.TILDETRIM],Ome),e=e.replace(Oi[Qi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[Qi.COMPARATORLOOSE]:Oi[Qi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(Xme(this.set[t],e,this.options))return!0;return!1}};oG.exports=mc;var Fme=rG(),iG=new Fme({max:1e3}),Nme=pd(),Bv=Id(),Kr=hd(),Tme=Li(),{re:Oi,t:Qi,comparatorTrimReplace:Lme,tildeTrimReplace:Ome,caretTrimReplace:Mme}=fc(),nG=r=>r.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Kr("comp",r,e),r=Gme(r,e),Kr("caret",r),r=Hme(r,e),Kr("tildes",r),r=qme(r,e),Kr("xrange",r),r=Wme(r,e),Kr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[Qi.TILDELOOSE]:Oi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Kr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Kr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Kr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Kr("caret",r,e);let t=e.loose?Oi[Qi.CARETLOOSE]:Oi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Kr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Kr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Kr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Kr("caret return",c),c})},qme=(r,e)=>(Kr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[Qi.XRANGELOOSE]:Oi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Kr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Kr("xRange return",i),i})},Wme=(r,e)=>(Kr("replaceStars",r,e),r.trim().replace(Oi[Qi.STAR],"")),zme=(r,e)=>(Kr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i<r.length;i++)if(!r[i].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let i=0;i<r.length;i++)if(Kr(r[i].semver),r[i].semver!==Bv.ANY&&r[i].semver.prerelease.length>0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),bv=mv(),Qv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i<r.set.length;++i){let n=r.set[i],s=null;n.forEach(o=>{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),bG=Cd(),QG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=bG,s=dEe,o=QG,a=">",l=">=";break;case"<":n=QG,s=CEe,o=bG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],g=null,h=null;if(u.forEach(p=>{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var PG=I((aet,xG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var bEe=wd(),QEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>QEe(u,g,t));for(let u of o)bEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e}});var HG=I((get,UG)=>{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var Pv=fc();jG.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:bj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:PG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i<n;i++)(s||!(i in e))&&(s||(s=Array.prototype.slice.call(e,0,i)),s[i]=e[i]);return r.concat(s||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0});exports.toFastProperties=exports.timer=exports.peek=exports.isES2015MapSupported=exports.PRINT_WARNING=exports.PRINT_ERROR=exports.packArray=exports.IDENTITY=exports.NOOP=exports.merge=exports.groupBy=exports.defaults=exports.assignNoOverwrite=exports.assign=exports.zipObject=exports.sortBy=exports.indexOf=exports.some=exports.difference=exports.every=exports.isObject=exports.isRegExp=exports.isArray=exports.partial=exports.uniq=exports.compact=exports.reduce=exports.findAll=exports.find=exports.cloneObj=exports.cloneArr=exports.contains=exports.has=exports.pick=exports.reject=exports.filter=exports.dropRight=exports.drop=exports.isFunction=exports.isUndefined=exports.isString=exports.forEach=exports.last=exports.first=exports.flatten=exports.map=exports.mapValues=exports.values=exports.keys=exports.isEmpty=void 0;exports.upperFirst=void 0;function isEmpty(r){return r&&r.length===0}exports.isEmpty=isEmpty;function keys(r){return r==null?[]:Object.keys(r)}exports.keys=keys;function values(r){for(var e=[],t=Object.keys(r),i=0;i<t.length;i++)e.push(r[t[i]]);return e}exports.values=values;function mapValues(r,e){for(var t=[],i=keys(r),n=0;n<i.length;n++){var s=i[n];t.push(e.call(null,r[s],s))}return t}exports.mapValues=mapValues;function map(r,e){for(var t=[],i=0;i<r.length;i++)t.push(e.call(null,r[i],i));return t}exports.map=map;function flatten(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];Array.isArray(i)?e=e.concat(flatten(i)):e.push(i)}return e}exports.flatten=flatten;function first(r){return isEmpty(r)?void 0:r[0]}exports.first=first;function last(r){var e=r&&r.length;return e?r[e-1]:void 0}exports.last=last;function forEach(r,e){if(Array.isArray(r))for(var t=0;t<r.length;t++)e.call(null,r[t],t);else if(isObject(r))for(var i=keys(r),t=0;t<i.length;t++){var n=i[t],s=r[n];e.call(null,s,n)}else throw Error("non exhaustive match")}exports.forEach=forEach;function isString(r){return typeof r=="string"}exports.isString=isString;function isUndefined(r){return r===void 0}exports.isUndefined=isUndefined;function isFunction(r){return r instanceof Function}exports.isFunction=isFunction;function drop(r,e){return e===void 0&&(e=1),r.slice(e,r.length)}exports.drop=drop;function dropRight(r,e){return e===void 0&&(e=1),r.slice(0,r.length-e)}exports.dropRight=dropRight;function filter(r,e){var t=[];if(Array.isArray(r))for(var i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.filter=filter;function reject(r,e){return filter(r,function(t){return!e(t)})}exports.reject=reject;function pick(r,e){for(var t=Object.keys(r),i={},n=0;n<t.length;n++){var s=t[n],o=r[s];e(o)&&(i[s]=o)}return i}exports.pick=pick;function has(r,e){return isObject(r)?r.hasOwnProperty(e):!1}exports.has=has;function contains(r,e){return find(r,function(t){return t===e})!==void 0}exports.contains=contains;function cloneArr(r){for(var e=[],t=0;t<r.length;t++)e.push(r[t]);return e}exports.cloneArr=cloneArr;function cloneObj(r){var e={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e}exports.cloneObj=cloneObj;function find(r,e){for(var t=0;t<r.length;t++){var i=r[t];if(e.call(null,i))return i}}exports.find=find;function findAll(r,e){for(var t=[],i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.findAll=findAll;function reduce(r,e,t){for(var i=Array.isArray(r),n=i?r:values(r),s=i?[]:keys(r),o=t,a=0;a<n.length;a++)o=e.call(null,o,n[a],i?a:s[a]);return o}exports.reduce=reduce;function compact(r){return reject(r,function(e){return e==null})}exports.compact=compact;function uniq(r,e){e===void 0&&(e=function(i){return i});var t=[];return reduce(r,function(i,n){var s=e(n);return contains(t,s)?i:(t.push(s),i.concat(n))},[])}exports.uniq=uniq;function partial(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var i=[null],n=i.concat(e);return Function.bind.apply(r,n)}exports.partial=partial;function isArray(r){return Array.isArray(r)}exports.isArray=isArray;function isRegExp(r){return r instanceof RegExp}exports.isRegExp=isRegExp;function isObject(r){return r instanceof Object}exports.isObject=isObject;function every(r,e){for(var t=0;t<r.length;t++)if(!e(r[t],t))return!1;return!0}exports.every=every;function difference(r,e){return reject(r,function(t){return contains(e,t)})}exports.difference=difference;function some(r,e){for(var t=0;t<r.length;t++)if(e(r[t]))return!0;return!1}exports.some=some;function indexOf(r,e){for(var t=0;t<r.length;t++)if(r[t]===e)return t;return-1}exports.indexOf=indexOf;function sortBy(r,e){var t=cloneArr(r);return t.sort(function(i,n){return e(i)-e(n)}),t}exports.sortBy=sortBy;function zipObject(r,e){if(r.length!==e.length)throw Error("can't zipObject with different number of keys and values!");for(var t={},i=0;i<r.length;i++)t[r[i]]=e[i];return t}exports.zipObject=zipObject;function assign(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];r[a]=n[a]}return r}exports.assign=assign;function assignNoOverwrite(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];has(r,a)||(r[a]=n[a])}return r}exports.assignNoOverwrite=assignNoOverwrite;function defaults(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return assignNoOverwrite.apply(void 0,__spreadArray([{}],r,!1))}exports.defaults=defaults;function groupBy(r,e){var t={};return forEach(r,function(i){var n=e(i),s=t[n];s?s.push(i):t[n]=[i]}),t}exports.groupBy=groupBy;function merge(r,e){for(var t=cloneObj(r),i=keys(e),n=0;n<i.length;n++){var s=i[n],o=e[s];t[s]=o}return t}exports.merge=merge;function NOOP(){}exports.NOOP=NOOP;function IDENTITY(r){return r}exports.IDENTITY=IDENTITY;function packArray(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];e.push(i!==void 0?i:void 0)}return e}exports.packArray=packArray;function PRINT_ERROR(r){console&&console.error&&console.error("Error: "+r)}exports.PRINT_ERROR=PRINT_ERROR;function PRINT_WARNING(r){console&&console.warn&&console.warn("Warning: "+r)}exports.PRINT_WARNING=PRINT_WARNING;function isES2015MapSupported(){return typeof Map=="function"}exports.isES2015MapSupported=isES2015MapSupported;function peek(r){return r[r.length-1]}exports.peek=peek;function timer(r){var e=new Date().getTime(),t=r(),i=new Date().getTime(),n=i-e;return{time:n,value:t}}exports.timer=timer;function toFastProperties(toBecomeFast){function FakeConstructor(){}FakeConstructor.prototype=toBecomeFast;var fakeInstance=new FakeConstructor;function fakeAccess(){return typeof fakeInstance.bar}return fakeAccess(),fakeAccess(),toBecomeFast;eval(toBecomeFast)}exports.toFastProperties=toFastProperties;function upperFirst(r){if(!r)return r;var e=getCharacterFromCodePointAt(r,0);return e.toUpperCase()+r.substring(e.length)}exports.upperFirst=upperFirst;var surrogatePairPattern=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;function getCharacterFromCodePointAt(r,e){var t=r.substring(e,e+1);return surrogatePairPattern.test(t)?t:r[e]}});var _I=I((GG,ZI)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` `),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(` `);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` `:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),P=S.type==="Character";if(P){if(S.value<y.value)throw Error("Range out of order in character class");d.push({from:y.value,to:S.value})}else s(y.value,d),d.push(n("-")),s(S.value,d)}else s(y.value,d)}return this.consumeChar("]"),{type:"Set",complement:m,value:d}},r.prototype.classAtom=function(){switch(this.peekChar()){case"]":case` @@ -50,28 +50,28 @@ `:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:n(d)}}},r.prototype.isRegExpFlag=function(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}},r.prototype.isRangeDash=function(){return this.peekChar()==="-"&&this.isClassAtom(1)},r.prototype.isDigit=function(){return t.test(this.peekChar(0))},r.prototype.isClassAtom=function(d){switch(d===void 0&&(d=0),this.peekChar(d)){case"]":case` `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.isTerm=function(){return this.isAtom()||this.isAssertion()},r.prototype.isAtom=function(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}},r.prototype.isAssertion=function(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}},r.prototype.isQuantifier=function(){var d=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(d)}},r.prototype.isPatternCharacter=function(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case` `:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.parseHexDigits=function(d){for(var m="",y=0;y<d;y++){var B=this.popChar();if(e.test(B)===!1)throw Error("Expecting a HexDecimal digits");m+=B}var S=parseInt(m,16);return{type:"Character",value:S}},r.prototype.peekChar=function(d){return d===void 0&&(d=0),this.input[this.idx+d]},r.prototype.popChar=function(){var d=this.peekChar(0);return this.consumeChar(),d},r.prototype.consumeChar=function(d){if(d!==void 0&&this.input[this.idx]!==d)throw Error("Expected: '"+d+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var h=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zj=I(mn=>{"use strict";var REe=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.canMatchCharCode=mn.firstCharOptimizedIndices=mn.getOptimizedStartCodesIndices=mn.failedOptimizationPrefixMsg=void 0;var qj=_I(),us=Kt(),Jj=ey(),Pa=Rv(),Wj="Complement Sets are not supported for first char optimization";mn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,Jj.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===Wj)e&&(0,us.PRINT_WARNING)(""+mn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(mn=>{"use strict";var REe=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.canMatchCharCode=mn.firstCharOptimizedIndices=mn.getOptimizedStartCodesIndices=mn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),Pa=Rv(),WG="Complement Sets are not supported for first char optimization";mn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+mn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > `)+` Complement Sets cannot be automatically optimized. This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` This will disable the lexer's first char optimizations. See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(mn.failedOptimizationPrefixMsg+` `+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+qj.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}mn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)ry(r.value[i],e,t);break;case"Alternative":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}var o=s;switch(o.type){case"Character":ty(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(Wj);(0,us.forEach)(o.value,function(c){if(typeof c=="number")ty(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)ty(g,e,t);else{for(var g=u.from;g<=u.to&&g<Pa.minOptimizationVal;g++)ty(g,e,t);if(u.to>=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}mn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&TEe(r,e)}function TEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function Yj(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var NEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?Yj(t,this.targetCharCodes)===void 0&&(this.found=!0):Yj(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qj.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,Jj.getRegExpAst)(e),i=new NEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}mn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var Vj=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var Xj=_I(),tr=Qd(),Se=Kt(),Zg=zj(),Zj=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Nv(P):Tv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Nv(q):Tv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. +`)+(" Using the regexp-to-ast library version: "+qG.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}mn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)ry(r.value[i],e,t);break;case"Alternative":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}var o=s;switch(o.type){case"Character":ty(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(WG);(0,us.forEach)(o.value,function(c){if(typeof c=="number")ty(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)ty(g,e,t);else{for(var g=u.from;g<=u.to&&g<Pa.minOptimizationVal;g++)ty(g,e,t);if(u.to>=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}mn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}mn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=bd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(P):Nv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. `)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. This will disable the lexer's first char optimizations. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.name+`> is using a custom token pattern without providing <start_chars_hint> parameter. `)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_j(r);t=t.concat(i.errors);var n=$j(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _j(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_j;function $j(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$j;var GEe=/[^\\][\$]/;function eY(r){var e=function(n){Vj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(Xj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,Zj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var jEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){Vj(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(Xj.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,Zj.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var GEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findStartOfInputAnchor=rY;function iY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iY;function nY(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nY;function sY(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sY;function oY(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oY;function aY(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n<a&&YEe(o,i.PATTERN)){var c="Token: ->"+l.name+`<- can never be matched. `+("Because it appears AFTER the Token Type ->"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Tv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Tv;function Nv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Nv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Tv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,We.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.MODES+`> property in its definition `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,We.MODES)&&(0,Se.has)(r,We.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+We.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist `,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,We.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> @@ -84,17 +84,17 @@ See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e. `)+(" Root cause: "+e.errMsg+`. `)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option. `+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r<We.minOptimizationVal?r:iy[r]}We.charCodeToOptimizedIndex=Lv;function VEe(){if((0,Se.isEmpty)(iy)){iy=new Array(65536);for(var r=0;r<65536;r++)iy[r]=r>255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Qd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r<We.minOptimizationVal?r:iy[r]}We.charCodeToOptimizedIndex=Lv;function VEe(){if((0,Se.isEmpty)(iy)){iy=new Array(65536);for(var r=0;r<65536;r++)iy[r]=r>255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var bd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var Qd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Qd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=Qd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(Qd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Qd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Qd.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config. For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,rr.isArray)(e)?(s={modes:{}},s.modes[Zs.DEFAULT_MODE]=(0,rr.cloneArr)(e),s[Zs.DEFAULT_MODE]=Zs.DEFAULT_MODE):(o=!1,s=(0,rr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,rr.forEach)(s.modes,function(u,g){s.modes[g]=(0,rr.reject)(u,function(h){return(0,rr.isUndefined)(h)})});var a=(0,rr.keys)(s.modes);if((0,rr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.validatePatterns)(u,a))}),(0,rr.isEmpty)(i.lexerDefinitionErrors)){(0,eIe.augmentTokenTypes)(u);var h;i.TRACE_INIT("analyzeTokenTypes",function(){h=(0,Zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=h.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=h.charCodeToPatternIdxToConfig,i.emptyGroups=(0,rr.merge)(i.emptyGroups,h.emptyGroups),i.hasCustom=h.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=h.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,rr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,rr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- `);throw new Error(`Errors detected in definition of Lexer: `+c)}(0,rr.forEach)(i.lexerDefinitionWarning,function(u){(0,rr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Zs.SUPPORT_STICKY?(i.chopInput=rr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=rr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=rr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=rr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=rr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid <positionTracking> config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,rr.reduce)(i.canModeBeOptimized,function(g,h,p){return h===!1&&g.push(p),g},[]);if(t.ensureOptimizations&&!(0,rr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- `);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,T=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],T=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],T=ce.length,T=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;q<H;){c=null;var Ye=F.charCodeAt(q),ie=Re(Ye),j=ie.length;for(n=0;n<j;n++){oe=ie[n];var fe=oe.pattern;u=null;var re=oe.short;if(re!==!1?Ye===re&&(c=fe):oe.isCustom===!0?(P=fe.exec(F,q,W,ue),P!==null?(c=P[0],P.payload!==void 0&&(u=P.payload)):c=null):(this.updateLastIndex(fe,q),c=this.match(fe,e,q)),c!==null){if(l=oe.longerAlt,l!==void 0){var de=l.length;for(o=0;o<de;o++){var Ze=ce[l[o]],vt=Ze.pattern;if(g=null,Ze.isCustom===!0?(P=vt.exec(F,q,W,ue),P!==null?(a=P[0],P.payload!==void 0&&(g=P.payload)):a=null):(this.updateLastIndex(vt,q),a=this.match(vt,e,q)),a&&a.length>c.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Lr=void 0,ti=void 0;O.lastIndex=0;do Lr=O.test(c),Lr===!0&&(ti=O.lastIndex-1,mt++);while(Lr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q<H;)for(B=F.charCodeAt(q),e=this.chopInput(e,1),q++,s=0;s<T;s++){var Ms=ce[s],fe=Ms.pattern,re=Ms.short;if(re!==!1?F.charCodeAt(q)===re&&(ri=!0):Ms.isCustom===!0?ri=fe.exec(F,q,W,ue)!==null:(this.updateLastIndex(fe,q),ri=fe.exec(e)!==null),ri===!0)break}y=q-ui,S=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(F,ui,y,gr,gi),Z.push({offset:ui,line:gr,column:gi,length:y,message:S})}}return this.hasCustom||(W.length=_),{tokens:W,groups:ue,errors:Z}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var TA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=Qd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",QY="longer_alt",bY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,QY)&&(t.LONGER_ALT=r[QY]),(0,_s.has)(r,bY)&&(t.LINE_BREAKS=r[bY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var En=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=TA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=TY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=NY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof TY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof NY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var Gv=Kt(),In=En(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof In.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof In.Terminal)i.walkTerminal(n,o,t);else if(n instanceof In.Alternative)i.walkFlat(n,o,t);else if(n instanceof In.Option)i.walkOption(n,o,t);else if(n instanceof In.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof In.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof In.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof In.Repetition)i.walkMany(n,o,t);else if(n instanceof In.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new In.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new In.Option({definition:[new In.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=En(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),Br=En(),CIe=$g();function mIe(r){return r instanceof Br.Alternative||r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionMandatory||r instanceof Br.RepetitionMandatoryWithSeparator||r instanceof Br.RepetitionWithSeparator||r instanceof Br.Terminal||r instanceof Br.Rule}Mi.isSequenceProd=mIe;function jv(r,e){e===void 0&&(e=[]);var t=r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionWithSeparator;return t?!0:r instanceof Br.Alternation?(0,vd.some)(r.definition,function(i){return jv(i,e)}):r instanceof Br.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof Br.AbstractProduction?(r instanceof Br.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return jv(i,e)})):!1}Mi.isOptionalProd=jv;function EIe(r){return r instanceof Br.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof Br.NonTerminal)return"SUBRULE";if(r instanceof Br.Option)return"OPTION";if(r instanceof Br.Alternation)return"OR";if(r instanceof Br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Br.Repetition)return"MANY";if(r instanceof Br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=En(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return jY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return GY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function GY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=GY;function jY(r){return[r.terminalType]}Fo.firstForTerminal=jY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),QIe=qv(),YY=Kt(),qY=Jv(),bIe=En(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bIe.Alternative({definition:o}),l=(0,QIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=TA(),xIe=Kt(),$s=Kt(),Wv=En(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;q<H;){c=null;var Ye=F.charCodeAt(q),ie=Re(Ye),G=ie.length;for(n=0;n<G;n++){oe=ie[n];var fe=oe.pattern;u=null;var re=oe.short;if(re!==!1?Ye===re&&(c=fe):oe.isCustom===!0?(P=fe.exec(F,q,W,ue),P!==null?(c=P[0],P.payload!==void 0&&(u=P.payload)):c=null):(this.updateLastIndex(fe,q),c=this.match(fe,e,q)),c!==null){if(l=oe.longerAlt,l!==void 0){var de=l.length;for(o=0;o<de;o++){var Ze=ce[l[o]],vt=Ze.pattern;if(g=null,Ze.isCustom===!0?(P=vt.exec(F,q,W,ue),P!==null?(a=P[0],P.payload!==void 0&&(g=P.payload)):a=null):(this.updateLastIndex(vt,q),a=this.match(vt,e,q)),a&&a.length>c.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Lr=void 0,ti=void 0;O.lastIndex=0;do Lr=O.test(c),Lr===!0&&(ti=O.lastIndex-1,mt++);while(Lr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q<H;)for(B=F.charCodeAt(q),e=this.chopInput(e,1),q++,s=0;s<N;s++){var Ms=ce[s],fe=Ms.pattern,re=Ms.short;if(re!==!1?F.charCodeAt(q)===re&&(ri=!0):Ms.isCustom===!0?ri=fe.exec(F,q,W,ue)!==null:(this.updateLastIndex(fe,q),ri=fe.exec(e)!==null),ri===!0)break}y=q-ui,S=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(F,ui,y,gr,gi),Z.push({offset:ui,line:gr,column:gi,length:y,message:S})}}return this.hasCustom||(W.length=_),{tokens:W,groups:ue,errors:Z}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=bd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",bY="longer_alt",QY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,bY)&&(t.LONGER_ALT=r[bY]),(0,_s.has)(r,QY)&&(t.LINE_BREAKS=r[QY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var En=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),In=En(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof In.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof In.Terminal)i.walkTerminal(n,o,t);else if(n instanceof In.Alternative)i.walkFlat(n,o,t);else if(n instanceof In.Option)i.walkOption(n,o,t);else if(n instanceof In.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof In.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof In.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof In.Repetition)i.walkMany(n,o,t);else if(n instanceof In.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new In.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new In.Option({definition:[new In.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=En(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),Br=En(),CIe=$g();function mIe(r){return r instanceof Br.Alternative||r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionMandatory||r instanceof Br.RepetitionMandatoryWithSeparator||r instanceof Br.RepetitionWithSeparator||r instanceof Br.Terminal||r instanceof Br.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionWithSeparator;return t?!0:r instanceof Br.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof Br.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof Br.AbstractProduction?(r instanceof Br.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof Br.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof Br.NonTerminal)return"SUBRULE";if(r instanceof Br.Option)return"OPTION";if(r instanceof Br.Alternation)return"OR";if(r instanceof Br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Br.Repetition)return"MANY";if(r instanceof Br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=En(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),bIe=qv(),YY=Kt(),qY=Jv(),QIe=En(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new QIe.Alternative({definition:o}),l=(0,bIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),xIe=Kt(),$s=Kt(),Wv=En(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` but found: '`+a+"'";if(n)return o+n+l;var c=(0,$s.reduce)(e,function(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences: `+g.join(` `);return o+h+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,$s.first)(t).image,a=` @@ -124,27 +124,27 @@ This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){ `)+(`without consuming any Tokens. The grammar path that causes this is: `+i+` `)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(NA=>{"use strict";var PIe=NA&&NA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(NA,"__esModule",{value:!0});NA.GastRefResolverVisitor=NA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}NA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);NA.GastRefResolverVisitor=ZY});var Dd=I(Fr=>{"use strict";var Ic=Fr&&Fr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Fr,"__esModule",{value:!0});Fr.nextPossibleTokensAfter=Fr.possiblePathsFrom=Fr.NextTerminalAfterAtLeastOneSepWalker=Fr.NextTerminalAfterAtLeastOneWalker=Fr.NextTerminalAfterManySepWalker=Fr.NextTerminalAfterManyWalker=Fr.AbstractNextTerminalAfterProductionWalker=Fr.NextAfterTokenWalker=Fr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=En(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Fr.AbstractNextPossibleTokensWalker=eq;var TIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Fr.NextAfterTokenWalker=TIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Fr.AbstractNextTerminalAfterProductionWalker=kd;var NIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManyWalker=NIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length<e&&n<r.length;){var a=r[n];if(a instanceof kt.Alternative)return o(a.definition);if(a instanceof kt.NonTerminal)return o(a.definition);if(a instanceof kt.Option)i=o(a.definition);else if(a instanceof kt.RepetitionMandatory){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);return o(l)}else if(a instanceof kt.RepetitionMandatoryWithSeparator){var l=[new kt.Alternative({definition:a.definition}),new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})];return o(l)}else if(a instanceof kt.RepetitionWithSeparator){var l=a.definition.concat([new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})]);i=o(l)}else if(a instanceof kt.Repetition){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);i=o(l)}else{if(a instanceof kt.Alternation)return(0,Lt.forEach)(a.definition,function(c){(0,Lt.isEmpty)(c.definition)===!1&&(i=o(c.definition))}),i;if(a instanceof kt.Terminal)t.push(a.terminalType);else throw Error("non exhaustive match")}n++}return i.push({partialPath:t,suffixDef:(0,Lt.drop)(r,n)}),i}Fr.possiblePathsFrom=tq;function KIe(r,e,t,i){var n="EXIT_NONE_TERMINAL",s=[n],o="EXIT_ALTERNATIVE",a=!1,l=e.length,c=l-i-1,u=[],g=[];for(g.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!(0,Lt.isEmpty)(g);){var h=g.pop();if(h===o){a&&(0,Lt.last)(g).idx<=c&&g.pop();continue}var p=h.def,d=h.idx,m=h.ruleStack,y=h.occurrenceStack;if(!(0,Lt.isEmpty)(p)){var B=p[0];if(B===n){var S={idx:d,def:(0,Lt.drop)(p),ruleStack:(0,Lt.dropRight)(m),occurrenceStack:(0,Lt.dropRight)(y)};g.push(S)}else if(B instanceof kt.Terminal)if(d<l-1){var P=d+1,F=e[P];if(t(F,B.terminalType)){var S={idx:P,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(S)}}else if(d===l-1)u.push({nextTokenType:B.terminalType,nextTokenOccurrence:B.idx,ruleStack:m,occurrenceStack:y}),a=!0;else throw Error("non exhaustive match");else if(B instanceof kt.NonTerminal){var H=(0,Lt.cloneArr)(m);H.push(B.nonTerminalName);var q=(0,Lt.cloneArr)(y);q.push(B.idx);var S={idx:d,def:B.definition.concat(s,(0,Lt.drop)(p)),ruleStack:H,occurrenceStack:q};g.push(S)}else if(B instanceof kt.Option){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var X={idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.RepetitionMandatory){var W=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionMandatoryWithSeparator){var A=new kt.Terminal({terminalType:B.separator}),W=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionWithSeparator){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var A=new kt.Terminal({terminalType:B.separator}),ne=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Repetition){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var ne=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Alternation)for(var ue=B.definition.length-1;ue>=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Fr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=En(),GIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function jIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=jIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u<n;u++){var g=r[u],h=g.length,p=c[u];if(p!==void 0&&p.call(this)===!1)continue;e:for(var d=0;d<h;d++){for(var m=g[d],y=m.length,B=0;B<y;B++){var S=this.LA(B+1);if(t(S,m[B])===!1)continue e}return u}}};if(s&&!i){var o=(0,ir.map)(r,function(l){return(0,ir.flatten)(l)}),a=(0,ir.reduce)(o,function(l,c,u){return(0,ir.forEach)(c,function(g){(0,ir.has)(l,g.tokenTypeIdx)||(l[g.tokenTypeIdx]=u),(0,ir.forEach)(g.categoryMatches,function(h){(0,ir.has)(l,h)||(l[h]=u)})}),l},[]);return function(){var l=this.LA(1);return a[l.tokenTypeIdx]}}else return function(){for(var l=0;l<n;l++){var c=r[l],u=c.length;e:for(var g=0;g<u;g++){for(var h=c[g],p=h.length,d=0;d<p;d++){var m=this.LA(d+1);if(t(m,h[d])===!1)continue e}return l}}}}Wt.buildAlternativesLookAheadFunc=JIe;function WIe(r,e,t){var i=(0,ir.every)(r,function(c){return c.length===1}),n=r.length;if(i&&!t){var s=(0,ir.flatten)(r);if(s.length===1&&(0,ir.isEmpty)(s[0].categoryMatches)){var o=s[0],a=o.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{var l=(0,ir.reduce)(s,function(c,u,g){return c[u.tokenTypeIdx]=!0,(0,ir.forEach)(u.categoryMatches,function(h){c[h]=!0}),c},[]);return function(){var c=this.LA(1);return l[c.tokenTypeIdx]===!0}}}else return function(){e:for(var c=0;c<n;c++){for(var u=r[c],g=u.length,h=0;h<g;h++){var p=this.LA(h+1);if(e(p,u[h])===!1)continue e}return!0}return!1}}Wt.buildSingleAlternativeLookaheadFunction=WIe;var zIe=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.topProd=t,s.targetOccurrence=i,s.targetProdType=n,s}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.restDef},e.prototype.checkIsTarget=function(t,i,n,s){return t.idx===this.targetOccurrence&&this.targetProdType===i?(this.restDef=n.concat(s),!0):!1},e.prototype.walkOption=function(t,i,n){this.checkIsTarget(t,si.OPTION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOne=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOneSep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkMany=function(t,i,n){this.checkIsTarget(t,si.REPETITION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkManySep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e}(HIe.RestWalker),sq=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.targetOccurrence=t,s.targetProdType=i,s.targetRef=n,s.result=[],s}return e.prototype.checkIsTarget=function(t,i){t.idx===this.targetOccurrence&&this.targetProdType===i&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)},e.prototype.visitOption=function(t){this.checkIsTarget(t,si.OPTION)},e.prototype.visitRepetition=function(t){this.checkIsTarget(t,si.REPETITION)},e.prototype.visitRepetitionMandatory=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR)},e.prototype.visitRepetitionWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR)},e.prototype.visitAlternation=function(t){this.checkIsTarget(t,si.ALTERNATION)},e}(GIe.GAstVisitor);function iq(r){for(var e=new Array(r),t=0;t<r;t++)e[t]=[];return e}function zv(r){for(var e=[""],t=0;t<r.length;t++){for(var i=r[t],n=[],s=0;s<e.length;s++){var o=e[s];n.push(o+"_"+i.tokenTypeIdx);for(var a=0;a<i.categoryMatches.length;a++){var l="_"+i.categoryMatches[a];n.push(o+l)}}e=n}return e}function VIe(r,e,t){for(var i=0;i<r.length;i++)if(i!==t)for(var n=r[i],s=0;s<e.length;s++){var o=e[s];if(n[o]===!0)return!1}return!0}function Vv(r,e){for(var t=(0,ir.map)(r,function(u){return(0,rq.possiblePathsFrom)([u],1)}),i=iq(t.length),n=(0,ir.map)(t,function(u){var g={};return(0,ir.forEach)(u,function(h){var p=zv(h.partialPath);(0,ir.forEach)(p,function(d){g[d]=!0})}),g}),s=t,o=1;o<=e;o++){var a=s;s=iq(a.length);for(var l=function(u){for(var g=a[u],h=0;h<g.length;h++){var p=g[h].partialPath,d=g[h].suffixDef,m=zv(p),y=VIe(n,m,u);if(y||(0,ir.isEmpty)(d)||p.length===e){var B=i[u];if(Aq(B,p)===!1){B.push(p);for(var S=0;S<m.length;S++){var P=m[S];n[u][P]=!0}}}else{var F=(0,rq.possiblePathsFrom)(d,o+1,p);s[u]=s[u].concat(F),(0,ir.forEach)(F,function(H){var q=zv(H.partialPath);(0,ir.forEach)(q,function(_){n[u][_]=!0})})}}},c=0;c<a.length;c++)l(c)}return i}Wt.lookAheadSequenceFromAlternatives=Vv;function oq(r,e,t,i){var n=new sq(r,si.ALTERNATION,i);return e.accept(n),Vv(n.result,t)}Wt.getLookaheadPathsForOr=oq;function aq(r,e,t,i){var n=new sq(r,t);e.accept(n);var s=n.result,o=new zIe(e,r,t),a=o.startWalking(),l=new LA.Alternative({definition:s}),c=new LA.Alternative({definition:a});return Vv([l,c],i)}Wt.getLookaheadPathsForOptionalProd=aq;function Aq(r,e){e:for(var t=0;t<r.length;t++){var i=r[t];if(i.length===e.length){for(var n=0;n<i.length;n++){var s=e[n],o=i[n],a=s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0;if(a===!1)continue e}return!0}}return!1}Wt.containsPath=Aq;function XIe(r,e){return r.length<e.length&&(0,ir.every)(r,function(t,i){var n=e[i];return t===n||n.categoryMatchesMap[t.tokenTypeIdx]})}Wt.isStrictPrefixOfPath=XIe;function Xv(r){return(0,ir.every)(r,function(e){return(0,ir.every)(e,function(t){return(0,ir.every)(t,function(i){return(0,ir.isEmpty)(i.categoryMatches)})})})}Wt.areTokenCategoriesNotUsed=Xv});var rx=I(Jt=>{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),Qr=Kt(),To=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=En(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(p){return fq(p,i)}),l=(0,Qr.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,Qr.map)(r,function(p){return dq(p,i)}),h=(0,Qr.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:To.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:To.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:To.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:To.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:To.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:To.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:To.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:To.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&(0,tf.isStrictPrefixOfPath)(h.path,c)}),g=(0,Qr.map)(u,function(h){var p=[h.idx+1,l+1],d=e.idx===0?"":e.idx,m=i.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:p,prefixPath:h.path});return{message:m,type:To.ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:d,alternatives:p}});n=n.concat(g)}}),n}Jt.checkPrefixAlternativesAmbiguities=mq;function rye(r,e,t){var i=[],n=(0,Qr.map)(e,function(s){return s.name});return(0,Qr.forEach)(r,function(s){var o=s.name;if((0,Qr.contains)(n,o)){var a=t.buildNamespaceConflictError(s);i.push({message:a,type:To.ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),i}});var Iq=I(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(yn=>{"use strict";var Td=yn&&yn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(yn,"__esModule",{value:!0});yn.EarlyExitException=yn.NotAllInputParsedException=yn.NoViableAltException=yn.MismatchedTokenException=yn.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",Qq="NotAllInputParsedException",bq=[yq,wq,Bq,Qq];Object.freeze(bq);function Aye(r){return(0,aye.contains)(bq,r.name)}yn.isRecognitionException=Aye;var hy=function(r){Td(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);yn.MismatchedTokenException=lye;var cye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);yn.NoViableAltException=cye;var uye=function(r){Td(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Qq,n}return e}(hy);yn.NotAllInputParsedException=uye;var gye=function(r){Td(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);yn.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=TA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(jt=>{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.getKeyForAutomaticLookahead=jt.AT_LEAST_ONE_SEP_IDX=jt.MANY_SEP_IDX=jt.AT_LEAST_ONE_IDX=jt.MANY_IDX=jt.OPTION_IDX=jt.OR_IDX=jt.BITS_FOR_ALT_IDX=jt.BITS_FOR_RULE_IDX=jt.BITS_FOR_OCCURRENCE_IDX=jt.BITS_FOR_METHOD_TYPE=void 0;jt.BITS_FOR_METHOD_TYPE=4;jt.BITS_FOR_OCCURRENCE_IDX=8;jt.BITS_FOR_RULE_IDX=12;jt.BITS_FOR_ALT_IDX=8;jt.OR_IDX=1<<jt.BITS_FOR_OCCURRENCE_IDX;jt.OPTION_IDX=2<<jt.BITS_FOR_OCCURRENCE_IDX;jt.MANY_IDX=3<<jt.BITS_FOR_OCCURRENCE_IDX;jt.AT_LEAST_ONE_IDX=4<<jt.BITS_FOR_OCCURRENCE_IDX;jt.MANY_SEP_IDX=5<<jt.BITS_FOR_OCCURRENCE_IDX;jt.AT_LEAST_ONE_SEP_IDX=6<<jt.BITS_FOR_OCCURRENCE_IDX;function Cye(r,e,t){return t|e|r}jt.getKeyForAutomaticLookahead=Cye;var Met=32-jt.BITS_FOR_ALT_IDX});var xq=I(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.addNoneTerminalToCst=No.addTerminalToCst=No.setNodeLocationFull=No.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}No.setNodeLocationOnlyOffset=Eye;function Iye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}No.setNodeLocationFull=Iye;function yye(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}No.addTerminalToCst=yye;function wye(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}No.addNoneTerminalToCst=wye});var ox=I(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function Qye(r){return Dq(r.constructor)}OA.classNameFromInstance=Qye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function bye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=bye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Nd=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n<i;n++)for(var s=t[n],o=r[s],a=o.length,l=0;l<a;l++){var c=o[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}vi.defaultVisit=Rq;function Sye(r,e){var t=function(){};(0,Nd.defineNameProp)(t,r+"BaseSemantics");var i={visit:function(n,s){if((0,hs.isArray)(n)&&(n=n[0]),!(0,hs.isUndefined)(n))return this[n.name](n.children,s)},validateVisitor:function(){var n=Fq(this,e);if(!(0,hs.isEmpty)(n)){var s=(0,hs.map)(n,function(o){return o.msg});throw Error("Errors Detected in CST Visitor <"+(0,Nd.functionName)(this.constructor)+`>: +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var PIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Fr=>{"use strict";var Ic=Fr&&Fr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Fr,"__esModule",{value:!0});Fr.nextPossibleTokensAfter=Fr.possiblePathsFrom=Fr.NextTerminalAfterAtLeastOneSepWalker=Fr.NextTerminalAfterAtLeastOneWalker=Fr.NextTerminalAfterManySepWalker=Fr.NextTerminalAfterManyWalker=Fr.AbstractNextTerminalAfterProductionWalker=Fr.NextAfterTokenWalker=Fr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=En(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Fr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Fr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Fr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length<e&&n<r.length;){var a=r[n];if(a instanceof kt.Alternative)return o(a.definition);if(a instanceof kt.NonTerminal)return o(a.definition);if(a instanceof kt.Option)i=o(a.definition);else if(a instanceof kt.RepetitionMandatory){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);return o(l)}else if(a instanceof kt.RepetitionMandatoryWithSeparator){var l=[new kt.Alternative({definition:a.definition}),new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})];return o(l)}else if(a instanceof kt.RepetitionWithSeparator){var l=a.definition.concat([new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})]);i=o(l)}else if(a instanceof kt.Repetition){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);i=o(l)}else{if(a instanceof kt.Alternation)return(0,Lt.forEach)(a.definition,function(c){(0,Lt.isEmpty)(c.definition)===!1&&(i=o(c.definition))}),i;if(a instanceof kt.Terminal)t.push(a.terminalType);else throw Error("non exhaustive match")}n++}return i.push({partialPath:t,suffixDef:(0,Lt.drop)(r,n)}),i}Fr.possiblePathsFrom=tq;function KIe(r,e,t,i){var n="EXIT_NONE_TERMINAL",s=[n],o="EXIT_ALTERNATIVE",a=!1,l=e.length,c=l-i-1,u=[],g=[];for(g.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!(0,Lt.isEmpty)(g);){var h=g.pop();if(h===o){a&&(0,Lt.last)(g).idx<=c&&g.pop();continue}var p=h.def,d=h.idx,m=h.ruleStack,y=h.occurrenceStack;if(!(0,Lt.isEmpty)(p)){var B=p[0];if(B===n){var S={idx:d,def:(0,Lt.drop)(p),ruleStack:(0,Lt.dropRight)(m),occurrenceStack:(0,Lt.dropRight)(y)};g.push(S)}else if(B instanceof kt.Terminal)if(d<l-1){var P=d+1,F=e[P];if(t(F,B.terminalType)){var S={idx:P,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(S)}}else if(d===l-1)u.push({nextTokenType:B.terminalType,nextTokenOccurrence:B.idx,ruleStack:m,occurrenceStack:y}),a=!0;else throw Error("non exhaustive match");else if(B instanceof kt.NonTerminal){var H=(0,Lt.cloneArr)(m);H.push(B.nonTerminalName);var q=(0,Lt.cloneArr)(y);q.push(B.idx);var S={idx:d,def:B.definition.concat(s,(0,Lt.drop)(p)),ruleStack:H,occurrenceStack:q};g.push(S)}else if(B instanceof kt.Option){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var X={idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.RepetitionMandatory){var W=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionMandatoryWithSeparator){var A=new kt.Terminal({terminalType:B.separator}),W=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionWithSeparator){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var A=new kt.Terminal({terminalType:B.separator}),ne=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Repetition){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var ne=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Alternation)for(var ue=B.definition.length-1;ue>=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Fr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=En(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u<n;u++){var g=r[u],h=g.length,p=c[u];if(p!==void 0&&p.call(this)===!1)continue;e:for(var d=0;d<h;d++){for(var m=g[d],y=m.length,B=0;B<y;B++){var S=this.LA(B+1);if(t(S,m[B])===!1)continue e}return u}}};if(s&&!i){var o=(0,ir.map)(r,function(l){return(0,ir.flatten)(l)}),a=(0,ir.reduce)(o,function(l,c,u){return(0,ir.forEach)(c,function(g){(0,ir.has)(l,g.tokenTypeIdx)||(l[g.tokenTypeIdx]=u),(0,ir.forEach)(g.categoryMatches,function(h){(0,ir.has)(l,h)||(l[h]=u)})}),l},[]);return function(){var l=this.LA(1);return a[l.tokenTypeIdx]}}else return function(){for(var l=0;l<n;l++){var c=r[l],u=c.length;e:for(var g=0;g<u;g++){for(var h=c[g],p=h.length,d=0;d<p;d++){var m=this.LA(d+1);if(t(m,h[d])===!1)continue e}return l}}}}Wt.buildAlternativesLookAheadFunc=JIe;function WIe(r,e,t){var i=(0,ir.every)(r,function(c){return c.length===1}),n=r.length;if(i&&!t){var s=(0,ir.flatten)(r);if(s.length===1&&(0,ir.isEmpty)(s[0].categoryMatches)){var o=s[0],a=o.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{var l=(0,ir.reduce)(s,function(c,u,g){return c[u.tokenTypeIdx]=!0,(0,ir.forEach)(u.categoryMatches,function(h){c[h]=!0}),c},[]);return function(){var c=this.LA(1);return l[c.tokenTypeIdx]===!0}}}else return function(){e:for(var c=0;c<n;c++){for(var u=r[c],g=u.length,h=0;h<g;h++){var p=this.LA(h+1);if(e(p,u[h])===!1)continue e}return!0}return!1}}Wt.buildSingleAlternativeLookaheadFunction=WIe;var zIe=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.topProd=t,s.targetOccurrence=i,s.targetProdType=n,s}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.restDef},e.prototype.checkIsTarget=function(t,i,n,s){return t.idx===this.targetOccurrence&&this.targetProdType===i?(this.restDef=n.concat(s),!0):!1},e.prototype.walkOption=function(t,i,n){this.checkIsTarget(t,si.OPTION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOne=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOneSep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkMany=function(t,i,n){this.checkIsTarget(t,si.REPETITION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkManySep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e}(HIe.RestWalker),sq=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.targetOccurrence=t,s.targetProdType=i,s.targetRef=n,s.result=[],s}return e.prototype.checkIsTarget=function(t,i){t.idx===this.targetOccurrence&&this.targetProdType===i&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)},e.prototype.visitOption=function(t){this.checkIsTarget(t,si.OPTION)},e.prototype.visitRepetition=function(t){this.checkIsTarget(t,si.REPETITION)},e.prototype.visitRepetitionMandatory=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR)},e.prototype.visitRepetitionWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR)},e.prototype.visitAlternation=function(t){this.checkIsTarget(t,si.ALTERNATION)},e}(jIe.GAstVisitor);function iq(r){for(var e=new Array(r),t=0;t<r;t++)e[t]=[];return e}function zv(r){for(var e=[""],t=0;t<r.length;t++){for(var i=r[t],n=[],s=0;s<e.length;s++){var o=e[s];n.push(o+"_"+i.tokenTypeIdx);for(var a=0;a<i.categoryMatches.length;a++){var l="_"+i.categoryMatches[a];n.push(o+l)}}e=n}return e}function VIe(r,e,t){for(var i=0;i<r.length;i++)if(i!==t)for(var n=r[i],s=0;s<e.length;s++){var o=e[s];if(n[o]===!0)return!1}return!0}function Vv(r,e){for(var t=(0,ir.map)(r,function(u){return(0,rq.possiblePathsFrom)([u],1)}),i=iq(t.length),n=(0,ir.map)(t,function(u){var g={};return(0,ir.forEach)(u,function(h){var p=zv(h.partialPath);(0,ir.forEach)(p,function(d){g[d]=!0})}),g}),s=t,o=1;o<=e;o++){var a=s;s=iq(a.length);for(var l=function(u){for(var g=a[u],h=0;h<g.length;h++){var p=g[h].partialPath,d=g[h].suffixDef,m=zv(p),y=VIe(n,m,u);if(y||(0,ir.isEmpty)(d)||p.length===e){var B=i[u];if(Aq(B,p)===!1){B.push(p);for(var S=0;S<m.length;S++){var P=m[S];n[u][P]=!0}}}else{var F=(0,rq.possiblePathsFrom)(d,o+1,p);s[u]=s[u].concat(F),(0,ir.forEach)(F,function(H){var q=zv(H.partialPath);(0,ir.forEach)(q,function(_){n[u][_]=!0})})}}},c=0;c<a.length;c++)l(c)}return i}Wt.lookAheadSequenceFromAlternatives=Vv;function oq(r,e,t,i){var n=new sq(r,si.ALTERNATION,i);return e.accept(n),Vv(n.result,t)}Wt.getLookaheadPathsForOr=oq;function aq(r,e,t,i){var n=new sq(r,t);e.accept(n);var s=n.result,o=new zIe(e,r,t),a=o.startWalking(),l=new LA.Alternative({definition:s}),c=new LA.Alternative({definition:a});return Vv([l,c],i)}Wt.getLookaheadPathsForOptionalProd=aq;function Aq(r,e){e:for(var t=0;t<r.length;t++){var i=r[t];if(i.length===e.length){for(var n=0;n<i.length;n++){var s=e[n],o=i[n],a=s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0;if(a===!1)continue e}return!0}}return!1}Wt.containsPath=Aq;function XIe(r,e){return r.length<e.length&&(0,ir.every)(r,function(t,i){var n=e[i];return t===n||n.categoryMatchesMap[t.tokenTypeIdx]})}Wt.isStrictPrefixOfPath=XIe;function Xv(r){return(0,ir.every)(r,function(e){return(0,ir.every)(e,function(t){return(0,ir.every)(t,function(i){return(0,ir.isEmpty)(i.categoryMatches)})})})}Wt.areTokenCategoriesNotUsed=Xv});var rx=I(Jt=>{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),br=Kt(),No=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=En(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,br.every)(o,br.isEmpty)&&(a=(0,br.map)(r,function(p){return fq(p,i)}),l=(0,br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,br.map)(r,function(p){return dq(p,i)}),h=(0,br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,br.isEmpty)((0,br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,br.forEach)(l,function(u){var g=[c];(0,br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(o,a,l){var c=(0,br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&(0,tf.isStrictPrefixOfPath)(h.path,c)}),g=(0,br.map)(u,function(h){var p=[h.idx+1,l+1],d=e.idx===0?"":e.idx,m=i.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:p,prefixPath:h.path});return{message:m,type:No.ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:d,alternatives:p}});n=n.concat(g)}}),n}Jt.checkPrefixAlternativesAmbiguities=mq;function rye(r,e,t){var i=[],n=(0,br.map)(e,function(s){return s.name});return(0,br.forEach)(r,function(s){var o=s.name;if((0,br.contains)(n,o)){var a=t.buildNamespaceConflictError(s);i.push({message:a,type:No.ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),i}});var Iq=I(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(yn=>{"use strict";var Nd=yn&&yn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(yn,"__esModule",{value:!0});yn.EarlyExitException=yn.NotAllInputParsedException=yn.NoViableAltException=yn.MismatchedTokenException=yn.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",bq="NotAllInputParsedException",Qq=[yq,wq,Bq,bq];Object.freeze(Qq);function Aye(r){return(0,aye.contains)(Qq,r.name)}yn.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);yn.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);yn.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=bq,n}return e}(hy);yn.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);yn.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.OPTION_IDX=2<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.MANY_IDX=3<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.AT_LEAST_ONE_IDX=4<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.MANY_SEP_IDX=5<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.AT_LEAST_ONE_SEP_IDX=6<<Gt.BITS_FOR_OCCURRENCE_IDX;function Cye(r,e,t){return t|e|r}Gt.getKeyForAutomaticLookahead=Cye;var Met=32-Gt.BITS_FOR_ALT_IDX});var xq=I(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}To.setNodeLocationOnlyOffset=Eye;function Iye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}To.setNodeLocationFull=Iye;function yye(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}To.addTerminalToCst=yye;function wye(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}To.addNoneTerminalToCst=wye});var ox=I(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function bye(r){return Dq(r.constructor)}OA.classNameFromInstance=bye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function Qye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=Qye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n<i;n++)for(var s=t[n],o=r[s],a=o.length,l=0;l<a;l++){var c=o[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}vi.defaultVisit=Rq;function Sye(r,e){var t=function(){};(0,Td.defineNameProp)(t,r+"BaseSemantics");var i={visit:function(n,s){if((0,hs.isArray)(n)&&(n=n[0]),!(0,hs.isUndefined)(n))return this[n.name](n.children,s)},validateVisitor:function(){var n=Fq(this,e);if(!(0,hs.isEmpty)(n)){var s=(0,hs.map)(n,function(o){return o.msg});throw Error("Errors Detected in CST Visitor <"+(0,Td.functionName)(this.constructor)+`>: `+(""+s.join(` `).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Tq(r,e),i=Nq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Tq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Tq;var xye=["constructor","visit","validateVisitor"];function Nq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var xye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor There is no Grammar Rule corresponding to this method's name. -`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Nq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid <nodeLocationTracking> config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var Gq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Tye=rx(),Nye=En(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Tye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Nye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),jq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=TA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid <nodeLocationTracking> config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Nye=rx(),Tye=En(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=NA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. Note that the first argument for the parser constructor is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<qn.BITS_FOR_METHOD_TYPE+qn.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){t.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return t.apply(this,u)}catch(h){return this.invokeRuleCatch(h,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,yy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},r.prototype.optionInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OPTION_IDX,t);return this.optionInternalLogic(e,t,i)},r.prototype.optionInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},r.prototype.atLeastOneInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,t,i)},r.prototype.atLeastOneInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,jq.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,qn.AT_LEAST_ONE_IDX,e,of.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,t,i)},r.prototype.atLeastOneSepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterAtLeastOneSepWalker],l,qn.AT_LEAST_ONE_SEP_IDX,e,of.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,jq.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_IDX,e);return this.manyInternalLogic(e,t,i)},r.prototype.manyInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],s,qn.MANY_IDX,e,of.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,t,i)},r.prototype.manySepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterManySepWalker],l,qn.MANY_SEP_IDX,e,of.NextTerminalAfterManySepWalker)}},r.prototype.repetitionSepSecondInternal=function(e,t,i,n,s){for(;i();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,i,n,s],i,qn.AT_LEAST_ONE_SEP_IDX,e,s)},r.prototype.doSingleRepetition=function(e){var t=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),Gye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=Gye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var wn=Kt(),Lo=En(),jye=Qd(),tJ=_g(),rJ=TA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:jye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<qn.BITS_FOR_METHOD_TYPE+qn.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){t.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return t.apply(this,u)}catch(h){return this.invokeRuleCatch(h,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,yy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},r.prototype.optionInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OPTION_IDX,t);return this.optionInternalLogic(e,t,i)},r.prototype.optionInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},r.prototype.atLeastOneInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,t,i)},r.prototype.atLeastOneInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,Gq.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,qn.AT_LEAST_ONE_IDX,e,of.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,t,i)},r.prototype.atLeastOneSepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterAtLeastOneSepWalker],l,qn.AT_LEAST_ONE_SEP_IDX,e,of.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Gq.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_IDX,e);return this.manyInternalLogic(e,t,i)},r.prototype.manyInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],s,qn.MANY_IDX,e,of.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,t,i)},r.prototype.manySepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterManySepWalker],l,qn.MANY_SEP_IDX,e,of.NextTerminalAfterManySepWalker)}},r.prototype.repetitionSepSecondInternal=function(e,t,i,n,s){for(;i();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,i,n,s],i,qn.AT_LEAST_ONE_SEP_IDX,e,s)},r.prototype.doSingleRepetition=function(e){var t=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();by.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var wn=Kt(),Lo=En(),Gye=bd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Yye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(by(t),!e||(0,wn.has)(e,"ruleName")===!1){var n=new Error("<SUBRULE"+eJ(t)+"> argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(by(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error("<CONSUME"+eJ(t)+"> argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),by(t);var n=(0,wn.peek)(this.recordingProdStack),s=(0,wn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,wn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;by(e);var i=(0,wn.peek)(this.recordingProdStack),n=(0,wn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,wn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,wn.some)(s,function(l){return(0,wn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,wn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,wn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,wn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function by(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var en=Kt(),_ye=zY(),lJ=TA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=Gq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated. + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Qy(t),!e||(0,wn.has)(e,"ruleName")===!1){var n=new Error("<SUBRULE"+eJ(t)+"> argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(Qy(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error("<CONSUME"+eJ(t)+"> argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),Qy(t);var n=(0,wn.peek)(this.recordingProdStack),s=(0,wn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,wn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;Qy(e);var i=(0,wn.peek)(this.recordingProdStack),n=(0,wn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,wn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,wn.some)(s,function(l){return(0,wn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,wn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,wn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,wn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function Qy(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var en=Kt(),_ye=zY(),lJ=NA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated. Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead. See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: @@ -178,44 +178,44 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis var diagramsDiv = document.getElementById("diagrams"); main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv); <\/script> -`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=Qd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=TA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=En();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=En();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. +`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=bd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=En();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=En();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. It performs no action other than printing this message. Please avoid using it as it will be completely removed in the future`)}qe.clearCache=Ewe;var Iwe=hJ();Object.defineProperty(qe,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Iwe.createSyntaxDiagramsCode}});var ywe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Ta=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Ta({name:"LogicalOperator",pattern:ux.NA}),t=Ta({name:"Or",pattern:/\|/,categories:e}),i=Ta({name:"Xor",pattern:/\^/,categories:e}),n=Ta({name:"And",pattern:/&/,categories:e}),s=Ta({name:"Not",pattern:/!/}),o=Ta({name:"LParen",pattern:/\(/}),a=Ta({name:"RParen",pattern:/\)/}),l=Ta({name:"Query",pattern:r}),u=[Ta({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ty=>{var Bwe=IJ();Ty.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ty.parse=Ty.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,bJ)=>{var Kd=BJ(),QJ={};for(let r of Object.keys(Kd))QJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};bJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function Qwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=QJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=Qwe(r,s);o<t&&(t=o,i=n)}return i};st.keyword.rgb=function(r){return Kd[r]};st.rgb.xyz=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ny=gx();function bwe(){let r={},e=Object.keys(Ny);for(let t=e.length,i=0;i<t;i++)r[e[i]]={distance:-1,parent:null};return r}function Swe(r){let e=bwe(),t=[r];for(e[r].distance=0;t.length;){let i=t.pop(),n=Object.keys(Ny[i]);for(let s=n.length,o=0;o<s;o++){let a=n[o],l=e[a];l.distance===-1&&(l.distance=e[i].distance+1,l.parent=i,t.unshift(a))}}return e}function vwe(r,e){return function(t){return e(r(t))}}function xwe(r,e){let t=[e[r].parent,r],i=Ny[e[r].parent][r],n=e[r].parent;for(;e[n].parent;)t.unshift(e[n].parent),i=vwe(Ny[e[n].parent][n],i),n=e[n].parent;return i.conversion=t,i}SJ.exports=function(r){let e=Swe(r),t={},i=Object.keys(e);for(let n=i.length,s=0;s<n;s++){let o=i[s];e[o].parent!==null&&(t[o]=xwe(o,e))}return t}});var PJ=I((att,xJ)=>{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return"conversion"in r&&(e.conversion=r.conversion),e}kwe.forEach(r=>{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var NJ=I((Att,TJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(TJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i<n)}});var UJ=I((ctt,KJ)=>{"use strict";var Twe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Twe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Nwe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Nwe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var GJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r +See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:ux.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,QJ)=>{var Kd=BJ(),bJ={};for(let r of Object.keys(Kd))bJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};QJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function bwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=bJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=bwe(r,s);o<t&&(t=o,i=n)}return i};st.keyword.rgb=function(r){return Kd[r]};st.rgb.xyz=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ty=gx();function Qwe(){let r={},e=Object.keys(Ty);for(let t=e.length,i=0;i<t;i++)r[e[i]]={distance:-1,parent:null};return r}function Swe(r){let e=Qwe(),t=[r];for(e[r].distance=0;t.length;){let i=t.pop(),n=Object.keys(Ty[i]);for(let s=n.length,o=0;o<s;o++){let a=n[o],l=e[a];l.distance===-1&&(l.distance=e[i].distance+1,l.parent=i,t.unshift(a))}}return e}function vwe(r,e){return function(t){return e(r(t))}}function xwe(r,e){let t=[e[r].parent,r],i=Ty[e[r].parent][r],n=e[r].parent;for(;e[n].parent;)t.unshift(e[n].parent),i=vwe(Ty[e[n].parent][n],i),n=e[n].parent;return i.conversion=t,i}SJ.exports=function(r){let e=Swe(r),t={},i=Object.keys(e);for(let n=i.length,s=0;s<n;s++){let o=i[s];e[o].parent!==null&&(t[o]=xwe(o,e))}return t}});var PJ=I((att,xJ)=>{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return"conversion"in r&&(e.conversion=r.conversion),e}kwe.forEach(r=>{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var TJ=I((Att,NJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(NJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i<n)}});var UJ=I((ctt,KJ)=>{"use strict";var Nwe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Nwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Twe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Twe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r `:` `)+t,n=i+1,i=r.indexOf(` -`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,jJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function Gwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function jwe(r){jJ.lastIndex=0;let e=[],t;for(;(t=jJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=Gwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:jwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=NJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=GJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[s]));return Cx===void 0&&(Cx=WJ()),Cx(r,n.join(""))};Object.defineProperties(Oy.prototype,uf);var Hd=Oy();Hd.supportsColor=mx;Hd.stderr=Oy({level:Ex?Ex.level:0});Hd.stderr.supportsColor=Ex;Hd.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};ZJ.exports=Hd});var Ky=I(ds=>{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<i.length;n++){let s=i[n];Array.isArray(s)?t(s,e):s!==void 0&&e.push(s)}return e};return t(r),e}});var Uy=I((ptt,$J)=>{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=o3(e+1,i)-1;return s=[...s],s.sort(eBe),s}function _we(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=$we(r,e),n=i.length,s="",o=0;for(let a=0;a<n;a++){let[l,c]=i[a];l===c?s+=l:l!=="0"||c!=="9"?s+=tBe(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function i3(r,e,t,i){let n=Zwe(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=_we(String(o),String(c),i),g="";if(!t.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function eBe(r,e){return r>e?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),Qx=r=>typeof r=="number"||typeof r=="string"&&r!=="",Gd=r=>Number.isInteger(+r),bx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length<e;)r="0"+r;return t?"-"+r:r},aBe=(r,e)=>{r.negatives.sort((o,a)=>o<a?-1:o>a?1:0),r.positives.sort((o,a)=>o<a?-1:o>a?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=bx(a)||bx(l)||bx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!Gd(r)&&r.length>1||!Gd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&Qx(r))return[r];if(!Qx(r)||!Qx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Gd(t)?Gd(r)&&Gd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var Q3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g<n.nodes.length;g++){let h=n.nodes[g];if(h.type==="comma"&&n.type==="brace"){g===1&&c.push(""),c.push("");continue}if(h.type==="close"){a.push(Bc(a.pop(),c,l));continue}if(h.value&&h.type!=="open"){c.push(Bc(c.pop(),h.value));continue}h.nodes&&i(h,n)}return c};return gf.flatten(i(r))};B3.exports=hBe});var S3=I((ytt,b3)=>{"use strict";b3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:QBe,CHAR_NO_BREAK_SPACE:bBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u<c;)if(o=s[s.length-1],h=d(),!(h===SBe||h===bBe)){if(h===vx){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===P3){m({type:"text",value:"\\"+h});continue}if(h===x3){l++;let y=!0,B;for(;u<c&&(B=d());){if(h+=B,B===x3){l++;continue}if(B===vx){h+=d();continue}if(B===P3&&(l--,l===0))break}m({type:"text",value:h});continue}if(h===EBe){o=m({type:"paren",nodes:[]}),s.push(o),m({type:"text",value:h});continue}if(h===IBe){if(o.type!=="paren"){m({type:"text",value:h});continue}o=s.pop(),m({type:"text",value:h}),o=s[s.length-1];continue}if(h===BBe||h===QBe||h===dBe){let y=h,B;for(e.keepQuotes!==!0&&(h="");u<c&&(B=d());){if(B===vx){h+=B+d();continue}if(B===y){e.keepQuotes===!0&&(h+=B);break}h+=B}m({type:"text",value:h});continue}if(h===yBe){g++;let B={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:g,commas:0,ranges:0,nodes:[]};o=m(B),s.push(o),m({type:"open",value:h});continue}if(h===wBe){if(o.type!=="brace"){m({type:"text",value:h});continue}let y="close";o=s.pop(),o.close=!0,m({type:y,value:h}),g--,o=s[s.length-1];continue}if(h===CBe&&g>0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var T3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=Q3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var jd=I((Qtt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",N3=`[^${Mo}]`,Na="\\.",RBe="\\+",FBe="\\?",Gy="\\/",TBe="(?=.)",L3="[^/]",xx=`(?:${Gy}|$)`,O3=`(?:^|${Gy})`,Px=`${Na}{1,2}${xx}`,NBe=`(?!${Na})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Na}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${Gy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Na,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:Gy,ONE_CHAR:TBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:NBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:N3,STAR:`${N3}*?`,DOTS_SLASH:`${Na}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Na})`,NO_DOTS:`(?!(?:^|[${Mo}])${Na}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Na}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Na}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},GBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:GBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(Bn=>{"use strict";var jBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=jd();Bn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Bn.hasRegexChars=r=>WBe.test(r);Bn.isRegexChar=r=>r.length===1&&Bn.hasRegexChars(r);Bn.escapeRegex=r=>r.replace(zBe,"\\$1");Bn.toPosixSlashes=r=>r.replace(qBe,"/");Bn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);Bn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Bn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||jBe.sep==="\\";Bn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Bn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Bn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Bn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Tx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:G3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=jd(),j3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c<i;){X=ne();let ce;if(X===qd){S=W.backslashes=!0,X=ne(),X===Fx&&(B=!0);continue}if(B===!0||X===Fx){for(q++;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,ne();continue}if(X===Fx){q++;continue}if(B!==!0&&X===Dx&&(X=ne())===Dx){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(B!==!0&&X===XBe){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===$Be&&(q--,q===0)){B=!1,h=W.isBrace=!0,H=!0;break}}if(n===!0)continue;break}if(X===q3){if(s.push(c),o.push(W),W={value:"",depth:0,isGlob:!1},H===!0)continue;if(_===Dx&&c===u+1){u+=2;continue}g=c+1;continue}if(t.noext!==!0&&(X===_Be||X===VBe||X===kx||X===H3||X===Rx)===!0&&A()===Tx){if(d=W.isGlob=!0,m=W.isExtglob=!0,H=!0,X===Rx&&c===u&&(F=!0),n===!0){for(;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,X=ne();continue}if(X===G3){d=W.isGlob=!0,H=!0;break}}continue}break}if(X===kx){if(_===kx&&(y=W.isGlobstar=!0),d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===H3){if(d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===ZBe){for(;Z()!==!0&&(ce=ne());){if(ce===qd){S=W.backslashes=!0,ne();continue}if(ce===e0e){p=W.isBracket=!0,d=W.isGlob=!0,H=!0;break}}if(n===!0)continue;break}if(t.nonegate!==!0&&X===Rx&&c===u){P=W.negated=!0,u++;continue}if(t.noparen!==!0&&X===Tx){if(d=W.isGlob=!0,n===!0){for(;Z()!==!0&&(X=ne());){if(X===Tx){S=W.backslashes=!0,X=ne();continue}if(X===G3){H=!0;break}}continue}break}if(d===!0){if(H=!0,n===!0)continue;break}}t.noext===!0&&(m=!1,d=!1);let ue=l,te="",O="";u>0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&j3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let T={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(T.maxDepth=0,j3(X)||o.push(W),T.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he<s.length;he++){let Pe=ce?ce+1:u,De=s[he],Re=r.slice(Pe,De);t.tokens&&(he===0&&u!==0?(o[he].isPrefix=!0,o[he].value=te):o[he].value=Re,Y3(o[he]),T.maxDepth+=o[he].depth),(he!==0||Re!=="")&&a.push(Re),ce=De}if(ce&&ce+1<r.length){let he=r.slice(ce+1);a.push(he),t.tokens&&(o[o.length-1].value=he,Y3(o[o.length-1]),T.maxDepth+=o[o.length-1].depth)}T.slashes=s,T.parts=a}return T};J3.exports=t0e});var X3=I((vtt,V3)=>{"use strict";var jy=jd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=jy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Nx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=jy.globChars(l),u=jy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=j=>`(${a}(?:(?!${q}${j.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,T,ce=()=>A.index===n-1,he=A.peek=(j=1)=>r[A.index+j],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(j="",fe=0)=>{A.consumed+=j,A.index+=fe},se=j=>{A.output+=j.output!=null?j.output:j.value,Re(j.value)},Ae=()=>{let j=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,j++;return j%2===0?!1:(A.negated=!0,A.start++,!0)},ye=j=>{A[j]++,te.push(j)},ge=j=>{A[j]--,te.pop()},oe=j=>{if(O.type==="globstar"){let fe=A.braces>0&&(j.type==="comma"||j.type==="brace"),re=j.extglob===!0||ne.length&&(j.type==="pipe"||j.type==="paren");j.type!=="slash"&&j.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&j.type!=="paren"&&(ne[ne.length-1].inner+=j.value),(j.value||j.output)&&se(j),O&&O.type==="text"&&j.type==="text"){O.value+=j.value,O.output=(O.output||"")+j.value;return}j.prev=O,o.push(j),O=j},Ye=(j,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:j,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=j=>{let fe=j.close+(t.capture?")":""),re;if(j.type==="negate"){let de=Z;if(j.inner&&j.inner.length>1&&j.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=j.close=`)$))${de}`),j.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Nx(re,{...e,fastpaths:!1}).output;fe=j.close=`)${Ze})${de})`}j.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:T,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let j=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Lr)=>vt==="\\"?(j=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Lr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return j===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(T=Pe(),T==="\0")continue;if(T==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){T+="\\",oe({type:"text",value:T});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(T+="\\")),t.unescape===!0?T=Pe():T+=Pe(),A.brackets===0){oe({type:"text",value:T});continue}}if(A.brackets>0&&(T!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&T===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(T==="["&&he()!==":"||T==="-"&&he()==="]")&&(T=`\\${T}`),T==="]"&&(O.value==="["||O.value==="[^")&&(T=`\\${T}`),t.posix===!0&&T==="!"&&O.value==="["&&(T="^"),O.value+=T,se({value:T});continue}if(A.quotes===1&&T!=='"'){T=Wn.escapeRegex(T),O.value+=T,se({value:T});continue}if(T==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:T});continue}if(T==="("){ye("parens"),oe({type:"paren",value:T});continue}if(T===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:T,output:A.parens?")":"\\)"}),ge("parens");continue}if(T==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));T=`\\${T}`}else ye("brackets");oe({type:"bracket",value:T});continue}if(T==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:T,output:`\\${T}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:T,output:`\\${T}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(T=`/${T}`),O.value+=T,se({value:T}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(T==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:T,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(T==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:T,output:T});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",T=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:T,output:de}),ge("braces"),ue.pop();continue}if(T==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:T});continue}if(T===","){let re=T,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:T,output:re});continue}if(T==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:T,output:p});continue}if(T==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=T,O.value+=T,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:T,output:g});continue}oe({type:"dot",value:T,output:g});continue}if(T==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",T);continue}if(O&&O.type==="paren"){let de=he(),Ze=T;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${T}`),oe({type:"text",value:T,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:T,output:F});continue}oe({type:"qmark",value:T,output:P});continue}if(T==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",T);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(T==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",T);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:T,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:T});continue}oe({type:"plus",value:h});continue}if(T==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:T,output:""});continue}oe({type:"text",value:T});continue}if(T!=="*"){(T==="$"||T==="^")&&(T=`\\${T}`);let re=i0e.exec(De());re&&(T+=re[0],A.index+=re[0].length),oe({type:"text",value:T});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=T,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(T);continue}let j=De();if(t.noextglob!==!0&&/^\([^?]/.test(j)){Ye("star",T);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(T);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||j[0]&&j[0]!=="/")){oe({type:"star",value:T,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Lr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Lr){oe({type:"star",value:T,output:""});continue}for(;j.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;j=j.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=T,O.output=_(t),A.output=O.output,A.globstar=!0,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=T,A.globstar=!0,A.output+=re.output+O.output,Re(T);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&j[0]==="/"){let ti=j[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=T,A.output+=re.output+O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&j[0]==="/"){O.type="globstar",O.value+=T,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(T+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=T,A.output+=O.output,A.globstar=!0,Re(T);continue}let fe={type:"star",value:T,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=T,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let j of A.tokens)A.output+=j.output!=null?j.output:j.value,j.suffix&&(A.output+=j.suffix)}return A};Nx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=jy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Nx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Yd(),A0e=jd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Ur=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Ur(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Ur.compileRe(r,e):Ur.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Ur(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Ur.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Ur.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Ur.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Ur.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Ur.makeRe(e,t)).test(o0e.basename(r));Ur.isMatch=(r,e,t)=>Ur(e,t)(r);Ur.parse=(r,e)=>Array.isArray(r)?r.map(t=>Ur.parse(t,e)):Lx(r,{...e,fastpaths:!1});Ur.scan=(r,e)=>a0e(r,e);Ur.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Ur.toRegex(a,e);return i===!0&&(l.state=r),l};Ur.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Ur.compileRe(n,e,t,i)};Ur.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Ur.constants=A0e;Z3.exports=Ur});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var Qn=I((ktt,iW)=>{"use strict";var tW=J("util"),rW=T3(),Ko=Mx(),Kx=Yd(),eW=r=>r===""||r==="./",br=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u<e.length;u++){let g=Ko(String(e[u]),{...t,onResult:a},!0),h=g.state.negated||g.state.negatedExtglob;h&&o++;for(let p of r){let d=g(p,!0);!(h?!d.isMatch:d.isMatch)||(h?i.add(d.output):(i.delete(d.output),n.add(d.output)))}}let c=(o===e.length?[...s]:[...n]).filter(u=>!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};br.match=br;br.matcher=(r,e)=>Ko(r,e);br.isMatch=(r,e,t)=>Ko(e,t)(r);br.any=br.isMatch;br.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=br(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};br.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>br.contains(r,i,t));if(typeof e=="string"){if(eW(r)||eW(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return br.isMatch(r,e,{...t,contains:!0})};br.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=br(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};br.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};br.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};br.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${tW.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};br.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};br.makeRe=(...r)=>Ko.makeRe(...r);br.scan=(...r)=>Ko.scan(...r);br.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of rW(String(i),e))t.push(Ko.parse(n,e));return t};br.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:rW(r,e)};br.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return br.braces(r,{...e,expand:!0})};iW.exports=br});var sW=I((Dtt,nW)=>{"use strict";nW.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var aW=I((Rtt,oW)=>{"use strict";var c0e=sW();oW.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var yW=I((jtt,IW)=>{"use strict";IW.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Ytt,QW)=>{"use strict";var B0e=J("stream"),wW=B0e.PassThrough,Q0e=Array.prototype.slice;QW.exports=b0e;function b0e(){let r=[],e=!1,t=Q0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=wW(i);function o(){for(let c=0,u=arguments.length;c<u;c++)r.push(BW(arguments[c],i));return a(),this}function a(){if(e)return;e=!0;let c=r.shift();if(!c){process.nextTick(l);return}Array.isArray(c)||(c=[c]);let u=c.length+1;function g(){--u>0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p<c.length;p++)h(c[p]);g()}function l(){return e=!1,s.emit("queueDrain"),n&&s.end()}return s.setMaxListeners(0),s.add=o,s.on("unpipe",function(c){c.emit("merge2UnpipeEnd")}),t.length&&o.apply(null,t),s}function BW(r,e){if(Array.isArray(r))for(let t=0,i=r.length;t<i;t++)r[t]=BW(r[t],e);else{if(!r._readableState&&r.pipe&&(r=r.pipe(wW(e))),!r._readableState||!r.pause||!r.pipe)throw new Error("Only readable stream can be merged.");r.pause()}return r}});var bW=I(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var SW=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var vW=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var xW=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function T0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=T0e;function N0e(r){return r.replace(R0e,"\\$2")}yf.escape=N0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var kW=I((Vtt,PW)=>{PW.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var FW=I((Xtt,RW)=>{var O0e=kW(),DW={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;e<r.length;){if(r[e]==="*"||r[e+1]==="?"&&/[\].+)]/.test(r[e])||i!==-1&&r[e]==="["&&r[e+1]!=="]"&&(i<e&&(i=r.indexOf("]",e)),i>e&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(t<e&&(t=r.indexOf("|",e)),t!==-1&&r[t+1]!==")"&&(s=r.indexOf(")",t),s>t&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=DW[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e<r.length;){if(/[*?{}()[\]]/.test(r[e]))return!0;if(r[e]==="\\"){var t=r[e+1];e+=2;var i=DW[t];if(i){var n=r.indexOf(i,e);n!==-1&&(e=n+1)}if(r[e]==="!")return!0}else e++}return!1};RW.exports=function(e,t){if(typeof e!="string"||e==="")return!1;if(O0e(e))return!0;var i=M0e;return t&&t.strict===!1&&(i=K0e),i(e)}});var NW=I((Ztt,TW)=>{"use strict";var U0e=FW(),H0e=J("path").posix.dirname,G0e=J("os").platform()==="win32",lP="/",j0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;TW.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&G0e&&e.indexOf(lP)<0&&(e=e.replace(j0e,lP)),Y0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var YW=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=NW(),LW=Qn(),V0e=Mx(),OW="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,eQe=/[!*+?@]\(.*\)/,tQe=/{.*(?:,|\.\.).*}/;function MW(r,e={}){return!KW(r,e)}Zr.isStaticPattern=MW;function KW(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&eQe.test(r)||e.braceExpansion!==!1&&tQe.test(r))}Zr.isDynamicPattern=KW;function rQe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rQe;function iQe(r){return"!"+r}Zr.convertToNegativePattern=iQe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function UW(r){return!Zy(r)}Zr.isPositivePattern=UW;function nQe(r){return r.filter(Zy)}Zr.getNegativePatterns=nQe;function sQe(r){return r.filter(UW)}Zr.getPositivePatterns=sQe;function oQe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=oQe;function aQe(r){return r.includes(OW)}Zr.hasGlobStar=aQe;function HW(r){return r.endsWith("/"+OW)}Zr.endsWithSlashGlobStar=HW;function AQe(r){let e=W0e.basename(r);return HW(r)||MW(e)}Zr.isAffectDepthOfReadingPattern=AQe;function lQe(r){return r.reduce((e,t)=>e.concat(GW(t)),[])}Zr.expandPatternsWithBraceExpansion=lQe;function GW(r){return LW.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=GW;function cQe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cQe;function jW(r,e){return LW.makeRe(r,e)}Zr.makeRe=jW;function uQe(r,e){return r.map(t=>jW(t,e))}Zr.convertPatternsToRe=uQe;function gQe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gQe});var JW=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fQe=sP();function hQe(r){let e=fQe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>qW(r)),e.once("end",()=>qW(r)),e}cP.merge=hQe;function qW(r){r.forEach(e=>e.emit("close"))}});var WW=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pQe(r){return typeof r=="string"}_y.isString=pQe;function dQe(r){return r===""}_y.isEmpty=dQe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var CQe=bW();Oa.array=CQe;var mQe=SW();Oa.errno=mQe;var EQe=vW();Oa.fs=EQe;var IQe=xW();Oa.path=IQe;var yQe=YW();Oa.pattern=yQe;var wQe=JW();Oa.stream=wQe;var BQe=WW();Oa.string=BQe});var _W=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function QQe(r,e){let t=zW(r),i=VW(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=QQe;function uP(r,e,t){let i=XW(r);return"."in i?[gP(".",r,e,t)]:ZW(i,e,t)}Ka.convertPatternsToTasks=uP;function zW(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=zW;function VW(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=VW;function XW(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=XW;function ZW(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=ZW;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var e4=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function bQe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$W(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$W(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=bQe;function $W(r,e){r(e)}function fP(r,e){r(null,e)}});var t4=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function SQe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=SQe});var r4=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vQe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vQe});var i4=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xQe=r4(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xQe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var n4=e4(),PQe=t4(),dP=i4();UA.Settings=dP.default;function kQe(r,e,t){if(typeof e=="function"){n4.read(r,CP(),e);return}n4.read(r,CP(e),t)}UA.stat=kQe;function DQe(r,e){let t=CP(e);return PQe.read(r,t)}UA.statSync=DQe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var o4=I((Art,s4)=>{s4.exports=RQe;function RQe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var a4=Number.parseInt(rw[0],10),FQe=Number.parseInt(rw[1],10),A4=10,TQe=10,NQe=a4>A4,LQe=a4===A4&&FQe>=TQe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=NQe||LQe});var l4=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function OQe(r,e){return new EP(r,e)}nw.createDirentFromStats=OQe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var MQe=l4();sw.fs=MQe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function KQe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=KQe});var p4=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var UQe=vc(),c4=o4(),HQe=mP(),u4=IP(),g4=yP();function GQe(r,e,t){if(!e.stats&&HQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){f4(r,e,t);return}h4(r,e,t)}HA.read=GQe;function f4(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:g4.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>jQe(a,e));c4(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=f4;function jQe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=u4.fs.createDirentFromStats(r.name,n),t(null,r)})}}function h4(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=g4.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{UQe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:u4.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});c4(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=h4;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var I4=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.readdir=GA.readdirWithFileTypes=GA.read=void 0;var YQe=vc(),qQe=mP(),d4=IP(),C4=yP();function JQe(r,e){return!e.stats&&qQe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?m4(r,e):E4(r,e)}GA.read=JQe;function m4(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:C4.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=d4.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}GA.readdirWithFileTypes=m4;function E4(r,e){return e.fs.readdirSync(r).map(i=>{let n=C4.joinPathSegments(r,i,e.pathSegmentSeparator),s=YQe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:d4.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}GA.readdir=E4});var y4=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.createFileSystemAdapter=jA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");jA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function WQe(r){return r===void 0?jA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},jA.FILE_SYSTEM_ADAPTER),r)}jA.createFileSystemAdapter=WQe});var w4=I(QP=>{"use strict";Object.defineProperty(QP,"__esModule",{value:!0});var zQe=J("path"),VQe=vc(),XQe=y4(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=XQe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zQe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new VQe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};QP.default=BP});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var B4=p4(),ZQe=I4(),bP=w4();YA.Settings=bP.default;function _Qe(r,e,t){if(typeof e=="function"){B4.read(r,SP(),e);return}B4.read(r,SP(e),t)}YA.scandir=_Qe;function $Qe(r,e){let t=SP(e);return ZQe.read(r,t)}YA.scandirSync=$Qe;function SP(r={}){return r instanceof bP.default?r:new bP.default(r)}});var b4=I((mrt,Q4)=>{"use strict";function ebe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}Q4.exports=ebe});var v4=I((Ert,vP)=>{"use strict";var tbe=b4();function S4(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tbe(rbe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H<l.concurrency;H++)o++,B()}}function d(){return o===0&&l.length()===0}function m(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,_.errorHandler=a,o===l.concurrency||l.paused?s?(s.next=_,s=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function y(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,o===l.concurrency||l.paused?n?(_.next=n,n=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function B(H){H&&i.release(H);var q=n;q?l.paused?o--:(s===n&&(s=null),n=q.next,q.next=null,e.call(r,q.value,q.worked),s===null&&l.empty()):--o===0&&l.drain()}function S(){n=null,s=null,l.drain=Es}function P(){n=null,s=null,l.drain(),l.drain=Es}function F(H){a=H}}function Es(){}function rbe(){this.value=null,this.callback=Es,this.next=null,this.release=Es,this.context=null,this.errorHandler=null;var r=this;this.worked=function(t,i){var n=r.callback,s=r.errorHandler,o=r.value;r.value=null,r.callback=Es,r.errorHandler&&s(t,o),n.call(r.context,t,i),r.release(r)}}function ibe(r,e,t){typeof r=="function"&&(t=e,e=r,r=null);function i(u,g){e.call(this,u).then(function(h){g(null,h)},g)}var n=S4(r,i,t),s=n.push,o=n.unshift;return n.push=a,n.unshift=l,n.drained=c,n;function a(u){var g=new Promise(function(h,p){s(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function l(u){var g=new Promise(function(h,p){o(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function c(){var u=n.drain,g=new Promise(function(h){n.drain=function(){u(),h()}});return g}}vP.exports=S4;vP.exports.promise=ibe});var lw=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.joinPathSegments=Go.replacePathSegmentSeparator=Go.isAppliedFilter=Go.isFatalError=void 0;function nbe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}Go.isFatalError=nbe;function sbe(r,e){return r===null||r(e)}Go.isAppliedFilter=sbe;function obe(r,e){return r.split(/[/\\]/).join(e)}Go.replacePathSegmentSeparator=obe;function abe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}Go.joinPathSegments=abe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var Abe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=Abe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lbe=J("events"),cbe=Aw(),ube=v4(),cw=lw(),gbe=kP(),DP=class extends gbe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cbe.scandir,this._emitter=new lbe.EventEmitter,this._queue=ube(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var x4=I(NP=>{"use strict";Object.defineProperty(NP,"__esModule",{value:!0});var fbe=FP(),TP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fbe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hbe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pbe(e,[...this._storage])}),this._reader.read()}};NP.default=TP;function hbe(r,e){r(e)}function pbe(r,e){r(null,e)}});var P4=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dbe=J("stream"),Cbe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Cbe.default(this._root,this._settings),this._stream=new dbe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var k4=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mbe=Aw(),uw=lw(),Ebe=kP(),MP=class extends Ebe.default{constructor(){super(...arguments),this._scandir=mbe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var D4=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var Ibe=k4(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new Ibe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var R4=I(jP=>{"use strict";Object.defineProperty(jP,"__esModule",{value:!0});var ybe=J("path"),wbe=Aw(),GP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,ybe.sep),this.fsScandirSettings=new wbe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};jP.default=GP});var qP=I(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.Settings=jo.walkStream=jo.walkSync=jo.walk=void 0;var F4=x4(),Bbe=P4(),Qbe=D4(),YP=R4();jo.Settings=YP.default;function bbe(r,e,t){if(typeof e=="function"){new F4.default(r,gw()).read(e);return}new F4.default(r,gw(e)).read(t)}jo.walk=bbe;function Sbe(r,e){let t=gw(e);return new Qbe.default(r,t).read()}jo.walkSync=Sbe;function vbe(r,e){let t=gw(e);return new Bbe.default(r,t).read()}jo.walkStream=vbe;function gw(r={}){return r instanceof YP.default?r:new YP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xbe=J("path"),Pbe=vc(),T4=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new Pbe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xbe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:T4.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!T4.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kbe=J("stream"),Dbe=vc(),Rbe=qP(),Fbe=zP(),VP=class extends Fbe.default{constructor(){super(...arguments),this._walkStream=Rbe.walkStream,this._stat=Dbe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kbe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;s<i.length;s++)n.write(s);return n}_getEntry(e,t,i){return this._getStat(e).then(n=>this._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var N4=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var L4=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var Tbe=N4(),ek=class extends Tbe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var O4=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),Nbe=L4(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new Nbe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var M4=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var K4=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var Lbe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return Lbe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var H4=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var U4=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=U4.path.makeAbsolute(this._settings.cwd,t),t=U4.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var Obe=J("path"),Mbe=O4(),Kbe=M4(),Ube=K4(),Hbe=H4(),ck=class{constructor(e){this._settings=e,this.errorFilter=new Ube.default(this._settings),this.entryFilter=new Kbe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Mbe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new Hbe.default(this._settings)}_getRootDirectory(e){return Obe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var G4=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var Gbe=ZP(),jbe=hw(),gk=class extends jbe.default{constructor(){super(...arguments),this._reader=new Gbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var j4=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var Ybe=J("stream"),qbe=ZP(),Jbe=hw(),hk=class extends Jbe.default{constructor(){super(...arguments),this._reader=new qbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new Ybe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var Y4=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var Wbe=vc(),zbe=qP(),Vbe=zP(),dk=class extends Vbe.default{constructor(){super(...arguments),this._walkSync=zbe.walkSync,this._statSync=Wbe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var q4=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var Xbe=Y4(),Zbe=hw(),mk=class extends Zbe.default{constructor(){super(...arguments),this._reader=new Xbe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var J4=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var Qf=J("fs"),_be=J("os"),$be=_be.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Qf.lstat,lstatSync:Qf.lstatSync,stat:Qf.stat,statSync:Qf.statSync,readdir:Qf.readdir,readdirSync:Qf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$be),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((jrt,z4)=>{"use strict";var W4=_W(),eSe=G4(),tSe=j4(),rSe=q4(),yk=J4(),xc=Ma();async function wk(r,e){bf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){bf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){bf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){bf(o);let l=[].concat(o),c=new yk.default(a);return W4.generate(l,c)}r.generateTasks=i;function n(o,a){bf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return bf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=W4.generate(i,n),o=new e(n);return s.map(o.read,o)}function bf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}z4.exports=wk});var X4=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),V4=J("fs");async function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(V4[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return V4[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=Qk.bind(null,"stat","isFile");Pc.isDirectory=Qk.bind(null,"stat","isDirectory");Pc.isSymlink=Qk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=bk.bind(null,"statSync","isFile");Pc.isDirectorySync=bk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=bk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),Z4=X4(),_4=r=>r.length>1?`{${r.join(",")}}`:r[0],$4=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_4(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_4(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await Z4.isDirectory($4(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>Z4.isDirectorySync($4(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6<t.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(r,e)=>`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],QSe=wSe(g8.readFile),bSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(bSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await QSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Tk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Tk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=yW(),DSe=sP(),Ew=pw(),Iw=t8(),Nk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",TSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},NSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),TSe(r),NSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],Q8=r=>r&&r.gitignore?Nk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Nk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=Q8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=Q8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Nk});var xn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var j8=I((dit,G8)=>{var tve=Is(),rve=function(){return tve.Date.now()};G8.exports=rve});var q8=I((Cit,Y8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Tc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Tc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Nc=I((wit,iz)=>{var tz=Tc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((Qit,sz)=>{var wve=Nc(),Bve=Jo(),Qve="[object Symbol]";function bve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==Qve}sz.exports=bve});var lz=I((bit,Az)=>{var Sve=W8(),oz=xn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=xn(),zk=j8(),cz=lz(),Tve="Expected a function",Nve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Tve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Nve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=xn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((ja,jw)=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});var Qz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return Qz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Qz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:bz}=Object.prototype,mC=r=>{let e=bz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(bz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var Ge=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};ja.assert={undefined:r=>Ge(V.undefined(r),"undefined",r),string:r=>Ge(V.string(r),"string",r),number:r=>Ge(V.number(r),"number",r),bigint:r=>Ge(V.bigint(r),"bigint",r),function_:r=>Ge(V.function_(r),"Function",r),null_:r=>Ge(V.null_(r),"null",r),class_:r=>Ge(V.class_(r),"Class",r),boolean:r=>Ge(V.boolean(r),"boolean",r),symbol:r=>Ge(V.symbol(r),"symbol",r),numericString:r=>Ge(V.numericString(r),"string with a number",r),array:(r,e)=>{Ge(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>Ge(V.buffer(r),"Buffer",r),nullOrUndefined:r=>Ge(V.nullOrUndefined(r),"null or undefined",r),object:r=>Ge(V.object(r),"Object",r),iterable:r=>Ge(V.iterable(r),"Iterable",r),asyncIterable:r=>Ge(V.asyncIterable(r),"AsyncIterable",r),generator:r=>Ge(V.generator(r),"Generator",r),asyncGenerator:r=>Ge(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>Ge(V.nativePromise(r),"native Promise",r),promise:r=>Ge(V.promise(r),"Promise",r),generatorFunction:r=>Ge(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>Ge(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>Ge(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>Ge(V.boundFunction(r),"Function",r),regExp:r=>Ge(V.regExp(r),"RegExp",r),date:r=>Ge(V.date(r),"Date",r),error:r=>Ge(V.error(r),"Error",r),map:r=>Ge(V.map(r),"Map",r),set:r=>Ge(V.set(r),"Set",r),weakMap:r=>Ge(V.weakMap(r),"WeakMap",r),weakSet:r=>Ge(V.weakSet(r),"WeakSet",r),int8Array:r=>Ge(V.int8Array(r),"Int8Array",r),uint8Array:r=>Ge(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>Ge(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>Ge(V.int16Array(r),"Int16Array",r),uint16Array:r=>Ge(V.uint16Array(r),"Uint16Array",r),int32Array:r=>Ge(V.int32Array(r),"Int32Array",r),uint32Array:r=>Ge(V.uint32Array(r),"Uint32Array",r),float32Array:r=>Ge(V.float32Array(r),"Float32Array",r),float64Array:r=>Ge(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>Ge(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>Ge(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>Ge(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>Ge(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>Ge(V.dataView(r),"DataView",r),urlInstance:r=>Ge(V.urlInstance(r),"URL",r),urlString:r=>Ge(V.urlString(r),"string with a URL",r),truthy:r=>Ge(V.truthy(r),"truthy",r),falsy:r=>Ge(V.falsy(r),"falsy",r),nan:r=>Ge(V.nan(r),"NaN",r),primitive:r=>Ge(V.primitive(r),"primitive",r),integer:r=>Ge(V.integer(r),"integer",r),safeInteger:r=>Ge(V.safeInteger(r),"integer",r),plainObject:r=>Ge(V.plainObject(r),"plain object",r),typedArray:r=>Ge(V.typedArray(r),"TypedArray",r),arrayLike:r=>Ge(V.arrayLike(r),"array-like",r),domElement:r=>Ge(V.domElement(r),"HTMLElement",r),observable:r=>Ge(V.observable(r),"Observable",r),nodeStream:r=>Ge(V.nodeStream(r),"Node.js Stream",r),infinite:r=>Ge(V.infinite(r),"infinite number",r),emptyArray:r=>Ge(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>Ge(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>Ge(V.emptyString(r),"empty string",r),nonEmptyString:r=>Ge(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>Ge(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>Ge(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>Ge(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>Ge(V.emptySet(r),"empty set",r),nonEmptySet:r=>Ge(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>Ge(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>Ge(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>Ge(V.propertyKey(r),"PropertyKey",r),formData:r=>Ge(V.formData(r),"FormData",r),urlSearchParams:r=>Ge(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>Ge(V.evenInteger(r),"even integer",r),oddInteger:r=>Ge(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>Ge(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>Ge(V.inRange(r,e),"in range",r),any:(r,...e)=>Ge(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>Ge(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(ja.assert,{class:{value:ja.assert.class_},function:{value:ja.assert.function_},null:{value:ja.assert.null_}});ja.default=V;jw.exports=V;jw.exports.default=V;jw.exports.assert=ja.assert});var xz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,bD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),QD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Tz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Nz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Tz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Nz),this._resolve6(e,Nz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a<i&&(i=a)}i!==1/0&&this._tick(i-n)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Fz(e),Mf in e)throw new Error("CacheableLookup has been already installed");e[Mf]=e.createConnection,e[QD]=this,e.createConnection=(t,i)=>("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[QD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[QD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Tz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};bD.exports=qw;bD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,Qxe="text/plain",bxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===bxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==Qxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var jz=I((Cnt,Gz)=>{Gz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n<i.length;n++)i[n]=arguments[n];var s=r.apply(this,i),o=i[i.length-1];return typeof s=="function"&&s!==o&&Object.keys(o).forEach(function(a){s[a]=o[a]}),s}}});var xD=I((mnt,vD)=>{var Yz=jz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Txe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Nxe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Txe(r))return r.close(EC);if(Nxe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s<r.length-1,a=s>0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((Qnt,e5)=>{"use strict";var Gxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),jxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Yxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Yxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&jxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||Gxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||i<t?0:Math.max(e,(i-t)/1e3)}if(this._resHeaders["last-modified"]){let i=Date.parse(this._resHeaders["last-modified"]);if(isFinite(i)&&t>i)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((bnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},TD=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=TD});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),ND=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=ND.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new ND(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=ND.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Nnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,Q5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),on=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i<n;){let s=i+n>>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].length<e[ws].length&&t[ws].every(i=>e[ws].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].length<t[ws].length&&e[ws].every(i=>t[ws].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]<o.remoteSettings.maxConcurrentStreams;return e?a:!a});s.length!==0&&(t[i]=s)}return t},B5=r=>{r[Uf]=!0,r[on]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount<this.maxSessions&&!i.completed&&(i.completed=!0,i())}getSession(e,t,i){return new Promise((n,s)=>{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m<g)break;if(d[ws].includes(a)){let y=d[on];if(y>=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[on]=0,h[Uf]=!1;let p=()=>h[on]<h.remoteSettings.maxConcurrentStreams,d=!0;h.socket.once("session",y=>{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[on],h[on]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[on],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[on]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=on;Wo.kGracefullyClosing=Uf;Q5.exports={Agent:Wo,globalAgent:new Wo}});var jD=I((Knt,b5)=>{"use strict";var{Readable:wPe}=J("stream"),GD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};b5.exports=GD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((Gnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:QPe}=J("stream"),{Agent:F5,globalAgent:bPe}=HD(),SPe=jD(),vPe=YD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:T5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:N5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:TPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),NPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends QPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=bPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===TPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[N5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[N5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new T5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new T5("set");if(typeof e!="string"||!NPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var j5=I((Wnt,G5)=>{"use strict";var MPe=J("net");G5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),GPe=j5(),jPe=YD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},YPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=jPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||GPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await YPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=jD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),Gf=Symbol("responseSize"),jf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),QC=Symbol("jobs"),Q6=Symbol("originalResponse"),b6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function Qke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function bke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` +`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` +`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[s]));return Cx===void 0&&(Cx=WJ()),Cx(r,n.join(""))};Object.defineProperties(Oy.prototype,uf);var Hd=Oy();Hd.supportsColor=mx;Hd.stderr=Oy({level:Ex?Ex.level:0});Hd.stderr.supportsColor=Ex;Hd.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};ZJ.exports=Hd});var Ky=I(ds=>{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<i.length;n++){let s=i[n];Array.isArray(s)?t(s,e):s!==void 0&&e.push(s)}return e};return t(r),e}});var Uy=I((ptt,$J)=>{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=o3(e+1,i)-1;return s=[...s],s.sort(eBe),s}function _we(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=$we(r,e),n=i.length,s="",o=0;for(let a=0;a<n;a++){let[l,c]=i[a];l===c?s+=l:l!=="0"||c!=="9"?s+=tBe(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function i3(r,e,t,i){let n=Zwe(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=_we(String(o),String(c),i),g="";if(!t.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function eBe(r,e){return r>e?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),bx=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),Qx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length<e;)r="0"+r;return t?"-"+r:r},aBe=(r,e)=>{r.negatives.sort((o,a)=>o<a?-1:o>a?1:0),r.positives.sort((o,a)=>o<a?-1:o>a?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=Qx(a)||Qx(l)||Qx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&bx(r))return[r];if(!bx(r)||!bx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var b3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g<n.nodes.length;g++){let h=n.nodes[g];if(h.type==="comma"&&n.type==="brace"){g===1&&c.push(""),c.push("");continue}if(h.type==="close"){a.push(Bc(a.pop(),c,l));continue}if(h.value&&h.type!=="open"){c.push(Bc(c.pop(),h.value));continue}h.nodes&&i(h,n)}return c};return gf.flatten(i(r))};B3.exports=hBe});var S3=I((ytt,Q3)=>{"use strict";Q3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:bBe,CHAR_NO_BREAK_SPACE:QBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u<c;)if(o=s[s.length-1],h=d(),!(h===SBe||h===QBe)){if(h===vx){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===P3){m({type:"text",value:"\\"+h});continue}if(h===x3){l++;let y=!0,B;for(;u<c&&(B=d());){if(h+=B,B===x3){l++;continue}if(B===vx){h+=d();continue}if(B===P3&&(l--,l===0))break}m({type:"text",value:h});continue}if(h===EBe){o=m({type:"paren",nodes:[]}),s.push(o),m({type:"text",value:h});continue}if(h===IBe){if(o.type!=="paren"){m({type:"text",value:h});continue}o=s.pop(),m({type:"text",value:h}),o=s[s.length-1];continue}if(h===BBe||h===bBe||h===dBe){let y=h,B;for(e.keepQuotes!==!0&&(h="");u<c&&(B=d());){if(B===vx){h+=B+d();continue}if(B===y){e.keepQuotes===!0&&(h+=B);break}h+=B}m({type:"text",value:h});continue}if(h===yBe){g++;let B={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:g,commas:0,ranges:0,nodes:[]};o=m(B),s.push(o),m({type:"open",value:h});continue}if(h===wBe){if(o.type!=="brace"){m({type:"text",value:h});continue}let y="close";o=s.pop(),o.close=!0,m({type:y,value:h}),g--,o=s[s.length-1];continue}if(h===CBe&&g>0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=b3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((btt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Ta}{1,2}${xx}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Ta}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(Bn=>{"use strict";var GBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Gd();Bn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Bn.hasRegexChars=r=>WBe.test(r);Bn.isRegexChar=r=>r.length===1&&Bn.hasRegexChars(r);Bn.escapeRegex=r=>r.replace(zBe,"\\$1");Bn.toPosixSlashes=r=>r.replace(qBe,"/");Bn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);Bn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Bn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||GBe.sep==="\\";Bn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Bn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Bn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Bn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Nx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Gd(),G3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c<i;){X=ne();let ce;if(X===qd){S=W.backslashes=!0,X=ne(),X===Fx&&(B=!0);continue}if(B===!0||X===Fx){for(q++;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,ne();continue}if(X===Fx){q++;continue}if(B!==!0&&X===Dx&&(X=ne())===Dx){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(B!==!0&&X===XBe){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===$Be&&(q--,q===0)){B=!1,h=W.isBrace=!0,H=!0;break}}if(n===!0)continue;break}if(X===q3){if(s.push(c),o.push(W),W={value:"",depth:0,isGlob:!1},H===!0)continue;if(_===Dx&&c===u+1){u+=2;continue}g=c+1;continue}if(t.noext!==!0&&(X===_Be||X===VBe||X===kx||X===H3||X===Rx)===!0&&A()===Nx){if(d=W.isGlob=!0,m=W.isExtglob=!0,H=!0,X===Rx&&c===u&&(F=!0),n===!0){for(;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,X=ne();continue}if(X===j3){d=W.isGlob=!0,H=!0;break}}continue}break}if(X===kx){if(_===kx&&(y=W.isGlobstar=!0),d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===H3){if(d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===ZBe){for(;Z()!==!0&&(ce=ne());){if(ce===qd){S=W.backslashes=!0,ne();continue}if(ce===e0e){p=W.isBracket=!0,d=W.isGlob=!0,H=!0;break}}if(n===!0)continue;break}if(t.nonegate!==!0&&X===Rx&&c===u){P=W.negated=!0,u++;continue}if(t.noparen!==!0&&X===Nx){if(d=W.isGlob=!0,n===!0){for(;Z()!==!0&&(X=ne());){if(X===Nx){S=W.backslashes=!0,X=ne();continue}if(X===j3){H=!0;break}}continue}break}if(d===!0){if(H=!0,n===!0)continue;break}}t.noext===!0&&(m=!1,d=!1);let ue=l,te="",O="";u>0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&G3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let N={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(N.maxDepth=0,G3(X)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he<s.length;he++){let Pe=ce?ce+1:u,De=s[he],Re=r.slice(Pe,De);t.tokens&&(he===0&&u!==0?(o[he].isPrefix=!0,o[he].value=te):o[he].value=Re,Y3(o[he]),N.maxDepth+=o[he].depth),(he!==0||Re!=="")&&a.push(Re),ce=De}if(ce&&ce+1<r.length){let he=r.slice(ce+1);a.push(he),t.tokens&&(o[o.length-1].value=he,Y3(o[o.length-1]),N.maxDepth+=o[o.length-1].depth)}N.slashes=s,N.parts=a}return N};J3.exports=t0e});var X3=I((vtt,V3)=>{"use strict";var Gy=Gd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Gy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Tx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Gy.globChars(l),u=Gy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=G=>`(${a}(?:(?!${q}${G.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,N,ce=()=>A.index===n-1,he=A.peek=(G=1)=>r[A.index+G],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(G="",fe=0)=>{A.consumed+=G,A.index+=fe},se=G=>{A.output+=G.output!=null?G.output:G.value,Re(G.value)},Ae=()=>{let G=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,G++;return G%2===0?!1:(A.negated=!0,A.start++,!0)},ye=G=>{A[G]++,te.push(G)},ge=G=>{A[G]--,te.pop()},oe=G=>{if(O.type==="globstar"){let fe=A.braces>0&&(G.type==="comma"||G.type==="brace"),re=G.extglob===!0||ne.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&G.type!=="paren"&&(ne[ne.length-1].inner+=G.value),(G.value||G.output)&&se(G),O&&O.type==="text"&&G.type==="text"){O.value+=G.value,O.output=(O.output||"")+G.value;return}G.prev=O,o.push(G),O=G},Ye=(G,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:G,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=G=>{let fe=G.close+(t.capture?")":""),re;if(G.type==="negate"){let de=Z;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=G.close=`)$))${de}`),G.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Tx(re,{...e,fastpaths:!1}).output;fe=G.close=`)${Ze})${de})`}G.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:N,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let G=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Lr)=>vt==="\\"?(G=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Lr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return G===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(N=Pe(),N==="\0")continue;if(N==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){N+="\\",oe({type:"text",value:N});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(N+="\\")),t.unescape===!0?N=Pe():N+=Pe(),A.brackets===0){oe({type:"text",value:N});continue}}if(A.brackets>0&&(N!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&N===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(N==="["&&he()!==":"||N==="-"&&he()==="]")&&(N=`\\${N}`),N==="]"&&(O.value==="["||O.value==="[^")&&(N=`\\${N}`),t.posix===!0&&N==="!"&&O.value==="["&&(N="^"),O.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='"'){N=Wn.escapeRegex(N),O.value+=N,se({value:N});continue}if(N==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:N});continue}if(N==="("){ye("parens"),oe({type:"paren",value:N});continue}if(N===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:N,output:A.parens?")":"\\)"}),ge("parens");continue}if(N==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));N=`\\${N}`}else ye("brackets");oe({type:"bracket",value:N});continue}if(N==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:N,output:`\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:N,output:`\\${N}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(N=`/${N}`),O.value+=N,se({value:N}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(N==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:N,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(N==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:N,output:N});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",N=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:N,output:de}),ge("braces"),ue.pop();continue}if(N==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:N});continue}if(N===","){let re=N,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:N,output:re});continue}if(N==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:N,output:p});continue}if(N==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=N,O.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:N,output:g});continue}oe({type:"dot",value:N,output:g});continue}if(N==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",N);continue}if(O&&O.type==="paren"){let de=he(),Ze=N;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${N}`),oe({type:"text",value:N,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:N,output:F});continue}oe({type:"qmark",value:N,output:P});continue}if(N==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",N);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:N,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:N});continue}oe({type:"plus",value:h});continue}if(N==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:N,output:""});continue}oe({type:"text",value:N});continue}if(N!=="*"){(N==="$"||N==="^")&&(N=`\\${N}`);let re=i0e.exec(De());re&&(N+=re[0],A.index+=re[0].length),oe({type:"text",value:N});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=N,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(N);continue}let G=De();if(t.noextglob!==!0&&/^\([^?]/.test(G)){Ye("star",N);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(N);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||G[0]&&G[0]!=="/")){oe({type:"star",value:N,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Lr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Lr){oe({type:"star",value:N,output:""});continue}for(;G.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;G=G.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=N,O.output=_(t),A.output=O.output,A.globstar=!0,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=N,A.globstar=!0,A.output+=re.output+O.output,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&G[0]==="/"){let ti=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=N,A.output+=re.output+O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&G[0]==="/"){O.type="globstar",O.value+=N,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=N,A.output+=O.output,A.globstar=!0,Re(N);continue}let fe={type:"star",value:N,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=N,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};Tx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Gy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Tx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Yd(),A0e=Gd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Ur=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Ur(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Ur.compileRe(r,e):Ur.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Ur(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Ur.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Ur.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Ur.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Ur.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Ur.makeRe(e,t)).test(o0e.basename(r));Ur.isMatch=(r,e,t)=>Ur(e,t)(r);Ur.parse=(r,e)=>Array.isArray(r)?r.map(t=>Ur.parse(t,e)):Lx(r,{...e,fastpaths:!1});Ur.scan=(r,e)=>a0e(r,e);Ur.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Ur.toRegex(a,e);return i===!0&&(l.state=r),l};Ur.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Ur.compileRe(n,e,t,i)};Ur.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Ur.constants=A0e;Z3.exports=Ur});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var bn=I((ktt,i4)=>{"use strict";var t4=J("util"),r4=N3(),Ko=Mx(),Kx=Yd(),e4=r=>r===""||r==="./",Qr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u<e.length;u++){let g=Ko(String(e[u]),{...t,onResult:a},!0),h=g.state.negated||g.state.negatedExtglob;h&&o++;for(let p of r){let d=g(p,!0);!(h?!d.isMatch:d.isMatch)||(h?i.add(d.output):(i.delete(d.output),n.add(d.output)))}}let c=(o===e.length?[...s]:[...n]).filter(u=>!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Qr.match=Qr;Qr.matcher=(r,e)=>Ko(r,e);Qr.isMatch=(r,e,t)=>Ko(e,t)(r);Qr.any=Qr.isMatch;Qr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Qr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Qr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Qr.contains(r,i,t));if(typeof e=="string"){if(e4(r)||e4(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Qr.isMatch(r,e,{...t,contains:!0})};Qr.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Qr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Qr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Qr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Qr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};Qr.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Qr.makeRe=(...r)=>Ko.makeRe(...r);Qr.scan=(...r)=>Ko.scan(...r);Qr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of r4(String(i),e))t.push(Ko.parse(n,e));return t};Qr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:r4(r,e)};Qr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Qr.braces(r,{...e,expand:!0})};i4.exports=Qr});var s4=I((Dtt,n4)=>{"use strict";n4.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var a4=I((Rtt,o4)=>{"use strict";var c0e=s4();o4.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var y4=I((Gtt,I4)=>{"use strict";I4.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Ytt,b4)=>{"use strict";var B0e=J("stream"),w4=B0e.PassThrough,b0e=Array.prototype.slice;b4.exports=Q0e;function Q0e(){let r=[],e=!1,t=b0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=w4(i);function o(){for(let c=0,u=arguments.length;c<u;c++)r.push(B4(arguments[c],i));return a(),this}function a(){if(e)return;e=!0;let c=r.shift();if(!c){process.nextTick(l);return}Array.isArray(c)||(c=[c]);let u=c.length+1;function g(){--u>0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p<c.length;p++)h(c[p]);g()}function l(){return e=!1,s.emit("queueDrain"),n&&s.end()}return s.setMaxListeners(0),s.add=o,s.on("unpipe",function(c){c.emit("merge2UnpipeEnd")}),t.length&&o.apply(null,t),s}function B4(r,e){if(Array.isArray(r))for(let t=0,i=r.length;t<i;t++)r[t]=B4(r[t],e);else{if(!r._readableState&&r.pipe&&(r=r.pipe(w4(e))),!r._readableState||!r.pause||!r.pipe)throw new Error("Only readable stream can be merged.");r.pause()}return r}});var Q4=I(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var S4=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var v4=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var x4=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function N0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=N0e;function T0e(r){return r.replace(R0e,"\\$2")}yf.escape=T0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var k4=I((Vtt,P4)=>{P4.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var F4=I((Xtt,R4)=>{var O0e=k4(),D4={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;e<r.length;){if(r[e]==="*"||r[e+1]==="?"&&/[\].+)]/.test(r[e])||i!==-1&&r[e]==="["&&r[e+1]!=="]"&&(i<e&&(i=r.indexOf("]",e)),i>e&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(t<e&&(t=r.indexOf("|",e)),t!==-1&&r[t+1]!==")"&&(s=r.indexOf(")",t),s>t&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=D4[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e<r.length;){if(/[*?{}()[\]]/.test(r[e]))return!0;if(r[e]==="\\"){var t=r[e+1];e+=2;var i=D4[t];if(i){var n=r.indexOf(i,e);n!==-1&&(e=n+1)}if(r[e]==="!")return!0}else e++}return!1};R4.exports=function(e,t){if(typeof e!="string"||e==="")return!1;if(O0e(e))return!0;var i=M0e;return t&&t.strict===!1&&(i=K0e),i(e)}});var T4=I((Ztt,N4)=>{"use strict";var U0e=F4(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lP="/",G0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;N4.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lP)<0&&(e=e.replace(G0e,lP)),Y0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var Y4=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=T4(),L4=bn(),V0e=Mx(),O4="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,ebe=/[!*+?@]\(.*\)/,tbe=/{.*(?:,|\.\.).*}/;function M4(r,e={}){return!K4(r,e)}Zr.isStaticPattern=M4;function K4(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&ebe.test(r)||e.braceExpansion!==!1&&tbe.test(r))}Zr.isDynamicPattern=K4;function rbe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rbe;function ibe(r){return"!"+r}Zr.convertToNegativePattern=ibe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function U4(r){return!Zy(r)}Zr.isPositivePattern=U4;function nbe(r){return r.filter(Zy)}Zr.getNegativePatterns=nbe;function sbe(r){return r.filter(U4)}Zr.getPositivePatterns=sbe;function obe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=obe;function abe(r){return r.includes(O4)}Zr.hasGlobStar=abe;function H4(r){return r.endsWith("/"+O4)}Zr.endsWithSlashGlobStar=H4;function Abe(r){let e=W0e.basename(r);return H4(r)||M4(e)}Zr.isAffectDepthOfReadingPattern=Abe;function lbe(r){return r.reduce((e,t)=>e.concat(j4(t)),[])}Zr.expandPatternsWithBraceExpansion=lbe;function j4(r){return L4.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=j4;function cbe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cbe;function G4(r,e){return L4.makeRe(r,e)}Zr.makeRe=G4;function ube(r,e){return r.map(t=>G4(t,e))}Zr.convertPatternsToRe=ube;function gbe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gbe});var J4=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fbe=sP();function hbe(r){let e=fbe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>q4(r)),e.once("end",()=>q4(r)),e}cP.merge=hbe;function q4(r){r.forEach(e=>e.emit("close"))}});var W4=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pbe(r){return typeof r=="string"}_y.isString=pbe;function dbe(r){return r===""}_y.isEmpty=dbe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var Cbe=Q4();Oa.array=Cbe;var mbe=S4();Oa.errno=mbe;var Ebe=v4();Oa.fs=Ebe;var Ibe=x4();Oa.path=Ibe;var ybe=Y4();Oa.pattern=ybe;var wbe=J4();Oa.stream=wbe;var Bbe=W4();Oa.string=Bbe});var _4=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function bbe(r,e){let t=z4(r),i=V4(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=bbe;function uP(r,e,t){let i=X4(r);return"."in i?[gP(".",r,e,t)]:Z4(i,e,t)}Ka.convertPatternsToTasks=uP;function z4(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=z4;function V4(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=V4;function X4(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=X4;function Z4(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=Z4;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var eW=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function Qbe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$4(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$4(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=Qbe;function $4(r,e){r(e)}function fP(r,e){r(null,e)}});var tW=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function Sbe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=Sbe});var rW=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vbe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vbe});var iW=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xbe=rW(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var nW=eW(),Pbe=tW(),dP=iW();UA.Settings=dP.default;function kbe(r,e,t){if(typeof e=="function"){nW.read(r,CP(),e);return}nW.read(r,CP(e),t)}UA.stat=kbe;function Dbe(r,e){let t=CP(e);return Pbe.read(r,t)}UA.statSync=Dbe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var oW=I((Art,sW)=>{sW.exports=Rbe;function Rbe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var aW=Number.parseInt(rw[0],10),Fbe=Number.parseInt(rw[1],10),AW=10,Nbe=10,Tbe=aW>AW,Lbe=aW===AW&&Fbe>=Nbe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Tbe||Lbe});var lW=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function Obe(r,e){return new EP(r,e)}nw.createDirentFromStats=Obe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var Mbe=lW();sw.fs=Mbe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function Kbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=Kbe});var pW=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var Ube=vc(),cW=oW(),Hbe=mP(),uW=IP(),gW=yP();function jbe(r,e,t){if(!e.stats&&Hbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){fW(r,e,t);return}hW(r,e,t)}HA.read=jbe;function fW(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:gW.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>Gbe(a,e));cW(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=fW;function Gbe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=uW.fs.createDirentFromStats(r.name,n),t(null,r)})}}function hW(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=gW.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{Ube.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:uW.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});cW(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=hW;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var IW=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var Ybe=vc(),qbe=mP(),dW=IP(),CW=yP();function Jbe(r,e){return!e.stats&&qbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?mW(r,e):EW(r,e)}jA.read=Jbe;function mW(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:CW.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=dW.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=mW;function EW(r,e){return e.fs.readdirSync(r).map(i=>{let n=CW.joinPathSegments(r,i,e.pathSegmentSeparator),s=Ybe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:dW.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=EW});var yW=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.createFileSystemAdapter=GA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");GA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function Wbe(r){return r===void 0?GA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},GA.FILE_SYSTEM_ADAPTER),r)}GA.createFileSystemAdapter=Wbe});var wW=I(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});var zbe=J("path"),Vbe=vc(),Xbe=yW(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=Xbe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zbe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new Vbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};bP.default=BP});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var BW=pW(),Zbe=IW(),QP=wW();YA.Settings=QP.default;function _be(r,e,t){if(typeof e=="function"){BW.read(r,SP(),e);return}BW.read(r,SP(e),t)}YA.scandir=_be;function $be(r,e){let t=SP(e);return Zbe.read(r,t)}YA.scandirSync=$be;function SP(r={}){return r instanceof QP.default?r:new QP.default(r)}});var QW=I((mrt,bW)=>{"use strict";function eQe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}bW.exports=eQe});var vW=I((Ert,vP)=>{"use strict";var tQe=QW();function SW(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tQe(rQe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H<l.concurrency;H++)o++,B()}}function d(){return o===0&&l.length()===0}function m(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,_.errorHandler=a,o===l.concurrency||l.paused?s?(s.next=_,s=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function y(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,o===l.concurrency||l.paused?n?(_.next=n,n=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function B(H){H&&i.release(H);var q=n;q?l.paused?o--:(s===n&&(s=null),n=q.next,q.next=null,e.call(r,q.value,q.worked),s===null&&l.empty()):--o===0&&l.drain()}function S(){n=null,s=null,l.drain=Es}function P(){n=null,s=null,l.drain(),l.drain=Es}function F(H){a=H}}function Es(){}function rQe(){this.value=null,this.callback=Es,this.next=null,this.release=Es,this.context=null,this.errorHandler=null;var r=this;this.worked=function(t,i){var n=r.callback,s=r.errorHandler,o=r.value;r.value=null,r.callback=Es,r.errorHandler&&s(t,o),n.call(r.context,t,i),r.release(r)}}function iQe(r,e,t){typeof r=="function"&&(t=e,e=r,r=null);function i(u,g){e.call(this,u).then(function(h){g(null,h)},g)}var n=SW(r,i,t),s=n.push,o=n.unshift;return n.push=a,n.unshift=l,n.drained=c,n;function a(u){var g=new Promise(function(h,p){s(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function l(u){var g=new Promise(function(h,p){o(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function c(){var u=n.drain,g=new Promise(function(h){n.drain=function(){u(),h()}});return g}}vP.exports=SW;vP.exports.promise=iQe});var lw=I(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nQe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nQe;function sQe(r,e){return r===null||r(e)}jo.isAppliedFilter=sQe;function oQe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=oQe;function aQe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=aQe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var AQe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=AQe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lQe=J("events"),cQe=Aw(),uQe=vW(),cw=lw(),gQe=kP(),DP=class extends gQe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cQe.scandir,this._emitter=new lQe.EventEmitter,this._queue=uQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var xW=I(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});var fQe=FP(),NP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hQe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pQe(e,[...this._storage])}),this._reader.read()}};TP.default=NP;function hQe(r,e){r(e)}function pQe(r,e){r(null,e)}});var PW=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dQe=J("stream"),CQe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new CQe.default(this._root,this._settings),this._stream=new dQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var kW=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mQe=Aw(),uw=lw(),EQe=kP(),MP=class extends EQe.default{constructor(){super(...arguments),this._scandir=mQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var DW=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var IQe=kW(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new IQe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var RW=I(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});var yQe=J("path"),wQe=Aw(),jP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,yQe.sep),this.fsScandirSettings=new wQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};GP.default=jP});var qP=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Settings=Go.walkStream=Go.walkSync=Go.walk=void 0;var FW=xW(),BQe=PW(),bQe=DW(),YP=RW();Go.Settings=YP.default;function QQe(r,e,t){if(typeof e=="function"){new FW.default(r,gw()).read(e);return}new FW.default(r,gw(e)).read(t)}Go.walk=QQe;function SQe(r,e){let t=gw(e);return new bQe.default(r,t).read()}Go.walkSync=SQe;function vQe(r,e){let t=gw(e);return new BQe.default(r,t).read()}Go.walkStream=vQe;function gw(r={}){return r instanceof YP.default?r:new YP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xQe=J("path"),PQe=vc(),NW=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new PQe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xQe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:NW.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!NW.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kQe=J("stream"),DQe=vc(),RQe=qP(),FQe=zP(),VP=class extends FQe.default{constructor(){super(...arguments),this._walkStream=RQe.walkStream,this._stat=DQe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;s<i.length;s++)n.write(s);return n}_getEntry(e,t,i){return this._getStat(e).then(n=>this._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var TW=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var LW=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var NQe=TW(),ek=class extends NQe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var OW=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),TQe=LW(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new TQe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var MW=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var KW=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var LQe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return LQe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var HW=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var UW=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=UW.path.makeAbsolute(this._settings.cwd,t),t=UW.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var OQe=J("path"),MQe=OW(),KQe=MW(),UQe=KW(),HQe=HW(),ck=class{constructor(e){this._settings=e,this.errorFilter=new UQe.default(this._settings),this.entryFilter=new KQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new MQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new HQe.default(this._settings)}_getRootDirectory(e){return OQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var jW=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jQe=ZP(),GQe=hw(),gk=class extends GQe.default{constructor(){super(...arguments),this._reader=new jQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var GW=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var YQe=J("stream"),qQe=ZP(),JQe=hw(),hk=class extends JQe.default{constructor(){super(...arguments),this._reader=new qQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new YQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var YW=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var WQe=vc(),zQe=qP(),VQe=zP(),dk=class extends VQe.default{constructor(){super(...arguments),this._walkSync=zQe.walkSync,this._statSync=WQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var qW=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var XQe=YW(),ZQe=hw(),mk=class extends ZQe.default{constructor(){super(...arguments),this._reader=new XQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var JW=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var bf=J("fs"),_Qe=J("os"),$Qe=_Qe.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:bf.lstat,lstatSync:bf.lstatSync,stat:bf.stat,statSync:bf.statSync,readdir:bf.readdir,readdirSync:bf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$Qe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Grt,zW)=>{"use strict";var WW=_4(),eSe=jW(),tSe=GW(),rSe=qW(),yk=JW(),xc=Ma();async function wk(r,e){Qf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){Qf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){Qf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){Qf(o);let l=[].concat(o),c=new yk.default(a);return WW.generate(l,c)}r.generateTasks=i;function n(o,a){Qf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Qf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=WW.generate(i,n),o=new e(n);return s.map(o.read,o)}function Qf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}zW.exports=wk});var XW=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),VW=J("fs");async function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(VW[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return VW[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=bk.bind(null,"stat","isFile");Pc.isDirectory=bk.bind(null,"stat","isDirectory");Pc.isSymlink=bk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=Qk.bind(null,"statSync","isFile");Pc.isDirectorySync=Qk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=Qk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),ZW=XW(),_W=r=>r.length>1?`{${r.join(",")}}`:r[0],$W=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_W(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_W(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await ZW.isDirectory($W(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>ZW.isDirectorySync($W(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6<t.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(r,e)=>`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],bSe=wSe(g8.readFile),QSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(QSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await bSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Nk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Nk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=y4(),DSe=sP(),Ew=pw(),Iw=t8(),Tk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",NSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},TSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),NSe(r),TSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],b8=r=>r&&r.gitignore?Tk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Tk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=b8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=b8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Tk});var xn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var G8=I((dit,j8)=>{var tve=Is(),rve=function(){return tve.Date.now()};j8.exports=rve});var q8=I((Cit,Y8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Nc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Nc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Tc=I((wit,iz)=>{var tz=Nc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((bit,sz)=>{var wve=Tc(),Bve=Jo(),bve="[object Symbol]";function Qve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==bve}sz.exports=Qve});var lz=I((Qit,Az)=>{var Sve=W8(),oz=xn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=xn(),zk=G8(),cz=lz(),Nve="Expected a function",Tve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Nve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Tve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=xn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((Ga,Gw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var bz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return bz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...bz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:Qz}=Object.prototype,mC=r=>{let e=Qz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(Qz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=V;Gw.exports=V;Gw.exports.default=V;Gw.exports.assert=Ga.assert});var xz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,QD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),bD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Nz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Tz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Nz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Tz),this._resolve6(e,Tz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a<i&&(i=a)}i!==1/0&&this._tick(i-n)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Fz(e),Mf in e)throw new Error("CacheableLookup has been already installed");e[Mf]=e.createConnection,e[bD]=this,e.createConnection=(t,i)=>("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[bD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[bD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Nz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};QD.exports=qw;QD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,bxe="text/plain",Qxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===Qxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==bxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Gz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n<i.length;n++)i[n]=arguments[n];var s=r.apply(this,i),o=i[i.length-1];return typeof s=="function"&&s!==o&&Object.keys(o).forEach(function(a){s[a]=o[a]}),s}}});var xD=I((mnt,vD)=>{var Yz=Gz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Nxe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Txe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Nxe(r))return r.close(EC);if(Txe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s<r.length-1,a=s>0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((bnt,e5)=>{"use strict";var jxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Gxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Yxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Yxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Gxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||i<t?0:Math.max(e,(i-t)/1e3)}if(this._resHeaders["last-modified"]){let i=Date.parse(this._resHeaders["last-modified"]);if(isFinite(i)&&t>i)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((Qnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},ND=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=ND});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),TD=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=TD.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new TD(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=TD.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Tnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,b5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),on=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i<n;){let s=i+n>>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].length<e[ws].length&&t[ws].every(i=>e[ws].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].length<t[ws].length&&e[ws].every(i=>t[ws].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]<o.remoteSettings.maxConcurrentStreams;return e?a:!a});s.length!==0&&(t[i]=s)}return t},B5=r=>{r[Uf]=!0,r[on]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount<this.maxSessions&&!i.completed&&(i.completed=!0,i())}getSession(e,t,i){return new Promise((n,s)=>{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m<g)break;if(d[ws].includes(a)){let y=d[on];if(y>=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[on]=0,h[Uf]=!1;let p=()=>h[on]<h.remoteSettings.maxConcurrentStreams,d=!0;h.socket.once("session",y=>{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[on],h[on]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[on],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[on]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=on;Wo.kGracefullyClosing=Uf;b5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,Q5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Q5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:bPe}=J("stream"),{Agent:F5,globalAgent:QPe}=HD(),SPe=GD(),vPe=YD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:N5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:T5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:NPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),TPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends bPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=QPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===NPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[T5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[T5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new N5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new N5("set");if(typeof e!="string"||!TPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var G5=I((Wnt,j5)=>{"use strict";var MPe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),jPe=G5(),GPe=YD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},YPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=GPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await YPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=GD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Gf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),bC=Symbol("jobs"),b6=Symbol("originalResponse"),Q6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function bke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function Qke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` `).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` `).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` `)}${a.reverse().join(` -`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var bC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=bC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[jf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[QC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[QC])g();this[QC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{Qke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[Q6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[Gf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[Gf]=this[jf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new bC(a,this))}),e.once("aborted",()=>{this._beforeError(new bC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?<socketPath>.+?):(?<path>.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),bke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[b6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[jf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[QC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[QC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[b6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[Q6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[Gf]?e=this[jf]/this[Gf]:this[Gf]===this[jf]?e=1:e=0,{percent:e,transferred:this[jf],total:this[Gf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Tke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Nke=J("events"),Lke=Ya(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Nke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Tke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function Gke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=Gke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var T6=Ya();function N6(r){for(let e of Object.values(r))(T6.default.plainObject(e)||T6.default.array(e))&&N6(e);return Object.freeze(r)}BR.default=N6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var QR=I(Qs=>{"use strict";var jke=Qs&&Qs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=Qs&&Qs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&jke(e,r,t)};Object.defineProperty(Qs,"__esModule",{value:!0});Qs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];Qs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},G6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==Qs.defaultHandler),s.length===0&&s.push(Qs.defaultHandler),G6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c<o.requestLimit;){c!==0&&await zke(o.backoff);let u=await e(void 0,void 0,s),g=await o.transform(u),h=[];for(let d of g)if(o.filter(d,a,h)&&(!o.shouldContinue(d,a,h)||(yield d,o.stackAllItems&&a.push(d),h.push(d),--l<=0)))return;let p=o.paginate(u,a,h);if(p===!1)return;p===u.request.options?s=u.request.options:p!==void 0&&(s=fB(void 0,p,s)),c++}};e.paginate=t,e.paginate.all=async(i,n)=>{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};Qs.default=G6;Yke(M6(),Qs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),j6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=QR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},bR=Y6.default(eDe);qa.default=bR;pB.exports=bR;pB.exports.default=bR;pB.exports.__esModule=!0;j6(QR(),qa);j6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l<c;++l){var u=e.requests[l];if(u.host===a.host&&u.port===a.port){e.requests.splice(l,1),u.request.onSocket(i);return}}i.destroy(),e.removeSocket(i)})}iDe.inherits(Ja,rDe.EventEmitter);Ja.prototype.addRequest=function(e,t,i,n){var s=this,o=vR({request:e},s.options,W6(t,i,n));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e<t;++e){var i=arguments[e];if(typeof i=="object")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(r[a]=i[a])}}return r}var _A;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?_A=function(){var r=Array.prototype.slice.call(arguments);typeof r[0]=="string"?r[0]="TUNNEL: "+r[0]:r.unshift("TUNNEL:"),console.error.apply(console,r)}:_A=function(){};Wf.debug=_A});var X6=I((yst,V6)=>{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&yr("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:yr("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||yr("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function T(f,E,w,k,L){var N={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=jE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=jE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at<k.length;at++){var Ue=N[w[at]];Ue?(it===0&&(it=tS()),Oe[at]=Ue(k[at])):Oe[at]=k[at]}var Ve=Ie.apply(null,Oe);return Ve=ee(Ve),it!==0&&rS(it),Ve}function ce(f,E,w,k){w=w||[];var L=w.every(function(ee){return ee==="number"}),N=E!=="string";return N&&L&&!k?O(f):function(){return T(f,E,w,arguments,k)}}var he=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(f,E,w){for(var k=E+w,L=E;f[L]&&!(L>=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var N="";E<L;){var ee=f[E++];if(!(ee&128)){N+=String.fromCharCode(ee);continue}var Ie=f[E++]&63;if((ee&224)==192){N+=String.fromCharCode((ee&31)<<6|Ie);continue}var Oe=f[E++]&63;if((ee&240)==224?ee=(ee&15)<<12|Ie<<6|Oe:ee=(ee&7)<<18|Ie<<12|Oe<<6|f[E++]&63,ee<65536)N+=String.fromCharCode(ee);else{var it=ee-65536;N+=String.fromCharCode(55296|it>>10,56320|it&1023)}}return N}function De(f,E){return f?Pe(j,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,N=w+k-1,ee=0;ee<f.length;++ee){var Ie=f.charCodeAt(ee);if(Ie>=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=N)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=N)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=N)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=N)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,j,E,w)}function Ae(f){for(var E=0,w=0;w<f.length;++w){var k=f.charCodeAt(w);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,j,fe,re,de,Ze,vt,mt;function Lr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=j=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!b.init.initialized&&b.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function yr(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Tl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Tl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAAQQJ0IANqIAE2AgAgAigCJCACKAIMQQJ0aiACKAIkIAIoAhhBAnRqLwEAIAIoAiQgAigCFEECdGovAQBqOwEAIAIoAgwgAigCLEHYKGpqAn8gAigCGCACKAIsQdgoamotAAAgAigCFCACKAIsQdgoamotAABOBEAgAigCGCACKAIsQdgoamotAAAMAQsgAigCFCACKAIsQdgoamotAAALQQFqOgAAIAIoAiQgAigCFEECdGogAigCDCIAOwECIAIoAiQgAigCGEECdGogADsBAiACIAIoAgwiAEEBajYCDCACKAIsIAA2AuAWIAIoAiwgAigCJEEBEHkgAigCLCgC0ChBAk4NAAsgAigCLCgC4BYhASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIoIQEjAEFAaiIAIAIoAiw2AjwgACABNgI4IAAgACgCOCgCADYCNCAAIAAoAjgoAgQ2AjAgACAAKAI4KAIIKAIANgIsIAAgACgCOCgCCCgCBDYCKCAAIAAoAjgoAggoAgg2AiQgACAAKAI4KAIIKAIQNgIgIABBADYCBCAAQQA2AhADQCAAKAIQQQ9MBEAgACgCPEG8FmogACgCEEEBdGpBADsBACAAIAAoAhBBAWo2AhAMAQsLIAAoAjQgACgCPEHcFmogACgCPCgC1ChBAnRqKAIAQQJ0akEAOwECIAAgACgCPCgC1ChBAWo2AhwDQCAAKAIcQb0ESARAIAAgACgCPEHcFmogACgCHEECdGooAgA2AhggACAAKAI0IAAoAjQgACgCGEECdGovAQJBAnRqLwECQQFqNgIQIAAoAhAgACgCIEoEQCAAIAAoAiA2AhAgACAAKAIEQQFqNgIECyAAKAI0IAAoAhhBAnRqIAAoAhA7AQIgACgCGCAAKAIwTARAIAAoAjwgACgCEEEBdGpBvBZqIgEgAS8BAEEBajsBACAAQQA2AgwgACgCGCAAKAIkTgRAIAAgACgCKCAAKAIYIAAoAiRrQQJ0aigCADYCDAsgACAAKAI0IAAoAhhBAnRqLwEAOwEKIAAoAjwiASABKAKoLSAALwEKIAAoAhAgACgCDGpsajYCqC0gACgCLARAIAAoAjwiASABKAKsLSAALwEKIAAoAiwgACgCGEECdGovAQIgACgCDGpsajYCrC0LCyAAIAAoAhxBAWo2AhwMAQsLAkAgACgCBEUNAANAIAAgACgCIEEBazYCEANAIAAoAjxBvBZqIAAoAhBBAXRqLwEARQRAIAAgACgCEEEBazYCEAwBCwsgACgCPCAAKAIQQQF0akG8FmoiASABLwEAQQFrOwEAIAAoAjwgACgCEEEBdGpBvhZqIgEgAS8BAEECajsBACAAKAI8IAAoAiBBAXRqQbwWaiIBIAEvAQBBAWs7AQAgACAAKAIEQQJrNgIEIAAoAgRBAEoNAAsgACAAKAIgNgIQA0AgACgCEEUNASAAIAAoAjxBvBZqIAAoAhBBAXRqLwEANgIYA0AgACgCGARAIAAoAjxB3BZqIQEgACAAKAIcQQFrIgM2AhwgACADQQJ0IAFqKAIANgIUIAAoAhQgACgCMEoNASAAKAI0IAAoAhRBAnRqLwECIAAoAhBHBEAgACgCPCIBIAEoAqgtIAAoAjQgACgCFEECdGovAQAgACgCECAAKAI0IAAoAhRBAnRqLwECa2xqNgKoLSAAKAI0IAAoAhRBAnRqIAAoAhA7AQILIAAgACgCGEEBazYCGAwBCwsgACAAKAIQQQFrNgIQDAALAAsgAigCJCEBIAIoAhAhAyACKAIsQbwWaiEEIwBBQGoiACQAIAAgATYCPCAAIAM2AjggACAENgI0IABBADYCDCAAQQE2AggDQCAAKAIIQQ9MBEAgACAAKAIMIAAoAjQgACgCCEEBa0EBdGovAQBqQQF0NgIMIABBEGogACgCCEEBdGogACgCDDsBACAAIAAoAghBAWo2AggMAQsLIABBADYCBANAIAAoAgQgACgCOEwEQCAAIAAoAjwgACgCBEECdGovAQI2AgAgACgCAARAIABBEGogACgCAEEBdGoiAS8BACEDIAEgA0EBajsBACAAKAIAIQQjAEEQayIBIAM2AgwgASAENgIIIAFBADYCBANAIAEgASgCBCABKAIMQQFxcjYCBCABIAEoAgxBAXY2AgwgASABKAIEQQF0NgIEIAEgASgCCEEBayIDNgIIIANBAEoNAAsgASgCBEEBdiEBIAAoAjwgACgCBEECdGogATsBAAsgACAAKAIEQQFqNgIEDAELCyAAQUBrJAAgAkEwaiQAC04BAX8jAEEQayICIAA7AQogAiABNgIEAkAgAi8BCkEBRgRAIAIoAgRBAUYEQCACQQA2AgwMAgsgAkEENgIMDAELIAJBADYCDAsgAigCDAvOAgEBfyMAQTBrIgUkACAFIAA2AiwgBSABNgIoIAUgAjYCJCAFIAM3AxggBSAENgIUIAVCADcDCANAIAUpAwggBSkDGFQEQCAFIAUoAiQgBSkDCKdqLQAAOgAHIAUoAhRFBEAgBSAFKAIsKAIUQQJyOwESIAUgBS8BEiAFLwESQQFzbEEIdjsBEiAFIAUtAAcgBS8BEkH/AXFzOgAHCyAFKAIoBEAgBSgCKCAFKQMIp2ogBS0ABzoAAAsgBSgCLCgCDEF/cyAFQQdqQQEQGkF/cyEAIAUoAiwgADYCDCAFKAIsIAUoAiwoAhAgBSgCLCgCDEH/AXFqQYWIosAAbEEBajYCECAFIAUoAiwoAhBBGHY6AAcgBSgCLCgCFEF/cyAFQQdqQQEQGkF/cyEAIAUoAiwgADYCFCAFIAUpAwhCAXw3AwgMAQsLIAVBMGokAAttAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE2AhQgBCACNwMIIAQgAzYCBAJAIAQoAhhFBEAgBEEANgIcDAELIAQgBCgCFCAEKQMIIAQoAgQgBCgCGEEIahDEATYCHAsgBCgCHCEAIARBIGokACAAC6cDAQF/IwBBIGsiBCQAIAQgADYCGCAEIAE3AxAgBCACNgIMIAQgAzYCCCAEIAQoAhggBCkDECAEKAIMQQAQPyIANgIAAkAgAEUEQCAEQX82AhwMAQsgBCAEKAIYIAQpAxAgBCgCDBDFASIANgIEIABFBEAgBEF/NgIcDAELAkACQCAEKAIMQQhxDQAgBCgCGCgCQCAEKQMQp0EEdGooAghFDQAgBCgCGCgCQCAEKQMQp0EEdGooAgggBCgCCBA5QQBIBEAgBCgCGEEIakEPQQAQFCAEQX82AhwMAwsMAQsgBCgCCBA7IAQoAgggBCgCACgCGDYCLCAEKAIIIAQoAgApAyg3AxggBCgCCCAEKAIAKAIUNgIoIAQoAgggBCgCACkDIDcDICAEKAIIIAQoAgAoAhA7ATAgBCgCCCAEKAIALwFSOwEyIAQoAghBIEEAIAQoAgAtAAZBAXEbQdwBcq03AwALIAQoAgggBCkDEDcDECAEKAIIIAQoAgQ2AgggBCgCCCIAIAApAwBCA4Q3AwAgBEEANgIcCyAEKAIcIQAgBEEgaiQAIAALWQIBfwF+AkACf0EAIABFDQAaIACtIAGtfiIDpyICIAAgAXJBgIAESQ0AGkF/IAIgA0IgiKcbCyICEBgiAEUNACAAQQRrLQAAQQNxRQ0AIABBACACEDMLIAALAwABC+oBAgF/AX4jAEEgayIEJAAgBCAANgIYIAQgATYCFCAEIAI2AhAgBCADNgIMIAQgBCgCDBCCASIANgIIAkAgAEUEQCAEQQA2AhwMAQsjAEEQayIAIAQoAhg2AgwgACgCDCIAIAAoAjBBAWo2AjAgBCgCCCAEKAIYNgIAIAQoAgggBCgCFDYCBCAEKAIIIAQoAhA2AgggBCgCGCAEKAIQQQBCAEEOIAQoAhQRCgAhBSAEKAIIIAU3AxggBCgCCCkDGEIAUwRAIAQoAghCPzcDGAsgBCAEKAIINgIcCyAEKAIcIQAgBEEgaiQAIAAL6gEBAX8jAEEQayIBJAAgASAANgIIIAFBOBAYIgA2AgQCQCAARQRAIAEoAghBDkEAEBQgAUEANgIMDAELIAEoAgRBADYCACABKAIEQQA2AgQgASgCBEEANgIIIAEoAgRBADYCICABKAIEQQA2AiQgASgCBEEAOgAoIAEoAgRBADYCLCABKAIEQQE2AjAjAEEQayIAIAEoAgRBDGo2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggASgCBEEAOgA0IAEoAgRBADoANSABIAEoAgQ2AgwLIAEoAgwhACABQRBqJAAgAAuwAQIBfwF+IwBBIGsiAyQAIAMgADYCGCADIAE2AhQgAyACNgIQIAMgAygCEBCCASIANgIMAkAgAEUEQCADQQA2AhwMAQsgAygCDCADKAIYNgIEIAMoAgwgAygCFDYCCCADKAIUQQBCAEEOIAMoAhgRDgAhBCADKAIMIAQ3AxggAygCDCkDGEIAUwRAIAMoAgxCPzcDGAsgAyADKAIMNgIcCyADKAIcIQAgA0EgaiQAIAALwwIBAX8jAEEQayIDIAA2AgwgAyABNgIIIAMgAjYCBCADKAIIKQMAQgKDQgBSBEAgAygCDCADKAIIKQMQNwMQCyADKAIIKQMAQgSDQgBSBEAgAygCDCADKAIIKQMYNwMYCyADKAIIKQMAQgiDQgBSBEAgAygCDCADKAIIKQMgNwMgCyADKAIIKQMAQhCDQgBSBEAgAygCDCADKAIIKAIoNgIoCyADKAIIKQMAQiCDQgBSBEAgAygCDCADKAIIKAIsNgIsCyADKAIIKQMAQsAAg0IAUgRAIAMoAgwgAygCCC8BMDsBMAsgAygCCCkDAEKAAYNCAFIEQCADKAIMIAMoAggvATI7ATILIAMoAggpAwBCgAKDQgBSBEAgAygCDCADKAIIKAI0NgI0CyADKAIMIgAgAygCCCkDACAAKQMAhDcDAEEAC10BAX8jAEEQayICJAAgAiAANgIIIAIgATYCBAJAIAIoAgRFBEAgAkEANgIMDAELIAIgAigCCCACKAIEKAIAIAIoAgQvAQStEDY2AgwLIAIoAgwhACACQRBqJAAgAAuPAQEBfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkACQCACKAIIBEAgAigCBA0BCyACIAIoAgggAigCBEY2AgwMAQsgAigCCC8BBCACKAIELwEERwRAIAJBADYCDAwBCyACIAIoAggoAgAgAigCBCgCACACKAIILwEEEE9FNgIMCyACKAIMIQAgAkEQaiQAIAALVQEBfyMAQRBrIgEkACABIAA2AgwgAUEAQQBBABAaNgIIIAEoAgwEQCABIAEoAgggASgCDCgCACABKAIMLwEEEBo2AggLIAEoAgghACABQRBqJAAgAAufAgEBfyMAQUBqIgUkACAFIAA3AzAgBSABNwMoIAUgAjYCJCAFIAM3AxggBSAENgIUIAUCfyAFKQMYQhBUBEAgBSgCFEESQQAQFEEADAELIAUoAiQLNgIEAkAgBSgCBEUEQCAFQn83AzgMAQsCQAJAAkACQAJAIAUoAgQoAggOAwIAAQMLIAUgBSkDMCAFKAIEKQMAfDcDCAwDCyAFIAUpAyggBSgCBCkDAHw3AwgMAgsgBSAFKAIEKQMANwMIDAELIAUoAhRBEkEAEBQgBUJ/NwM4DAELAkAgBSkDCEIAWQRAIAUpAwggBSkDKFgNAQsgBSgCFEESQQAQFCAFQn83AzgMAQsgBSAFKQMINwM4CyAFKQM4IQAgBUFAayQAIAALoAEBAX8jAEEgayIFJAAgBSAANgIYIAUgATYCFCAFIAI7ARIgBSADOgARIAUgBDYCDCAFIAUoAhggBSgCFCAFLwESIAUtABFBAXEgBSgCDBBjIgA2AggCQCAARQRAIAVBADYCHAwBCyAFIAUoAgggBS8BEkEAIAUoAgwQUDYCBCAFKAIIEBUgBSAFKAIENgIcCyAFKAIcIQAgBUEgaiQAIAALpgEBAX8jAEEgayIFJAAgBSAANgIYIAUgATcDECAFIAI2AgwgBSADNgIIIAUgBDYCBCAFIAUoAhggBSkDECAFKAIMQQAQPyIANgIAAkAgAEUEQCAFQX82AhwMAQsgBSgCCARAIAUoAgggBSgCAC8BCEEIdjoAAAsgBSgCBARAIAUoAgQgBSgCACgCRDYCAAsgBUEANgIcCyAFKAIcIQAgBUEgaiQAIAALjQIBAX8jAEEwayIDJAAgAyAANgIoIAMgATsBJiADIAI2AiAgAyADKAIoKAI0IANBHmogAy8BJkGABkEAEGY2AhACQCADKAIQRQ0AIAMvAR5BBUkNAAJAIAMoAhAtAABBAUYNAAwBCyADIAMoAhAgAy8BHq0QKSIANgIUIABFBEAMAQsgAygCFBCXARogAyADKAIUECo2AhggAygCIBCHASADKAIYRgRAIAMgAygCFBAwPQEOIAMgAygCFCADLwEOrRAeIAMvAQ5BgBBBABBQNgIIIAMoAggEQCADKAIgECQgAyADKAIINgIgCwsgAygCFBAWCyADIAMoAiA2AiwgAygCLCEAIANBMGokACAAC9oXAgF/AX4jAEGAAWsiBSQAIAUgADYCdCAFIAE2AnAgBSACNgJsIAUgAzoAayAFIAQ2AmQgBSAFKAJsQQBHOgAdIAVBHkEuIAUtAGtBAXEbNgIoAkACQCAFKAJsBEAgBSgCbBAwIAUoAiitVARAIAUoAmRBE0EAEBQgBUJ/NwN4DAMLDAELIAUgBSgCcCAFKAIorSAFQTBqIAUoAmQQQiIANgJsIABFBEAgBUJ/NwN4DAILCyAFKAJsQgQQHiEAQfESQfYSIAUtAGtBAXEbKAAAIAAoAABHBEAgBSgCZEETQQAQFCAFLQAdQQFxRQRAIAUoAmwQFgsgBUJ/NwN4DAELIAUoAnQQUwJAIAUtAGtBAXFFBEAgBSgCbBAdIQAgBSgCdCAAOwEIDAELIAUoAnRBADsBCAsgBSgCbBAdIQAgBSgCdCAAOwEKIAUoAmwQHSEAIAUoAnQgADsBDCAFKAJsEB1B//8DcSEAIAUoAnQgADYCECAFIAUoAmwQHTsBLiAFIAUoAmwQHTsBLCAFLwEuIQEgBS8BLCECIwBBMGsiACQAIAAgATsBLiAAIAI7ASwgAEIANwIAIABBADYCKCAAQgA3AiAgAEIANwIYIABCADcCECAAQgA3AgggAEEANgIgIAAgAC8BLEEJdkHQAGo2AhQgACAALwEsQQV2QQ9xQQFrNgIQIAAgAC8BLEEfcTYCDCAAIAAvAS5BC3Y2AgggACAALwEuQQV2QT9xNgIEIAAgAC8BLkEBdEE+cTYCACAAEBMhASAAQTBqJAAgASEAIAUoAnQgADYCFCAFKAJsECohACAFKAJ0IAA2AhggBSgCbBAqrSEGIAUoAnQgBjcDICAFKAJsECqtIQYgBSgCdCAGNwMoIAUgBSgCbBAdOwEiIAUgBSgCbBAdOwEeAkAgBS0Aa0EBcQRAIAVBADsBICAFKAJ0QQA2AjwgBSgCdEEAOwFAIAUoAnRBADYCRCAFKAJ0QgA3A0gMAQsgBSAFKAJsEB07ASAgBSgCbBAdQf//A3EhACAFKAJ0IAA2AjwgBSgCbBAdIQAgBSgCdCAAOwFAIAUoAmwQKiEAIAUoAnQgADYCRCAFKAJsECqtIQYgBSgCdCAGNwNICwJ/IwBBEGsiACAFKAJsNgIMIAAoAgwtAABBAXFFCwRAIAUoAmRBFEEAEBQgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwBCwJAIAUoAnQvAQxBAXEEQCAFKAJ0LwEMQcAAcQRAIAUoAnRB//8DOwFSDAILIAUoAnRBATsBUgwBCyAFKAJ0QQA7AVILIAUoAnRBADYCMCAFKAJ0QQA2AjQgBSgCdEEANgI4IAUgBS8BICAFLwEiIAUvAR5qajYCJAJAIAUtAB1BAXEEQCAFKAJsEDAgBSgCJK1UBEAgBSgCZEEVQQAQFCAFQn83A3gMAwsMAQsgBSgCbBAWIAUgBSgCcCAFKAIkrUEAIAUoAmQQQiIANgJsIABFBEAgBUJ/NwN4DAILCyAFLwEiBEAgBSgCbCAFKAJwIAUvASJBASAFKAJkEIkBIQAgBSgCdCAANgIwIAUoAnQoAjBFBEACfyMAQRBrIgAgBSgCZDYCDCAAKAIMKAIAQRFGCwRAIAUoAmRBFUEAEBQLIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAgsgBSgCdC8BDEGAEHEEQCAFKAJ0KAIwQQIQOkEFRgRAIAUoAmRBFUEAEBQgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwDCwsLIAUvAR4EQCAFIAUoAmwgBSgCcCAFLwEeQQAgBSgCZBBjNgIYIAUoAhhFBEAgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwCCyAFKAIYIAUvAR5BgAJBgAQgBS0Aa0EBcRsgBSgCdEE0aiAFKAJkEJQBQQFxRQRAIAUoAhgQFSAFLQAdQQFxRQRAIAUoAmwQFgsgBUJ/NwN4DAILIAUoAhgQFSAFLQBrQQFxBEAgBSgCdEEBOgAECwsgBS8BIARAIAUoAmwgBSgCcCAFLwEgQQAgBSgCZBCJASEAIAUoAnQgADYCOCAFKAJ0KAI4RQRAIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAgsgBSgCdC8BDEGAEHEEQCAFKAJ0KAI4QQIQOkEFRgRAIAUoAmRBFUEAEBQgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwDCwsLIAUoAnRB9eABIAUoAnQoAjAQiwEhACAFKAJ0IAA2AjAgBSgCdEH1xgEgBSgCdCgCOBCLASEAIAUoAnQgADYCOAJAAkAgBSgCdCkDKEL/////D1ENACAFKAJ0KQMgQv////8PUQ0AIAUoAnQpA0hC/////w9SDQELIAUgBSgCdCgCNCAFQRZqQQFBgAJBgAQgBS0Aa0EBcRsgBSgCZBBmNgIMIAUoAgxFBEAgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwCCyAFIAUoAgwgBS8BFq0QKSIANgIQIABFBEAgBSgCZEEOQQAQFCAFLQAdQQFxRQRAIAUoAmwQFgsgBUJ/NwN4DAILAkAgBSgCdCkDKEL/////D1EEQCAFKAIQEDEhBiAFKAJ0IAY3AygMAQsgBS0Aa0EBcQRAIAUoAhAhASMAQSBrIgAkACAAIAE2AhggAEIINwMQIAAgACgCGCkDECAAKQMQfDcDCAJAIAApAwggACgCGCkDEFQEQCAAKAIYQQA6AAAgAEF/NgIcDAELIAAgACgCGCAAKQMIECw2AhwLIAAoAhwaIABBIGokAAsLIAUoAnQpAyBC/////w9RBEAgBSgCEBAxIQYgBSgCdCAGNwMgCyAFLQBrQQFxRQRAIAUoAnQpA0hC/////w9RBEAgBSgCEBAxIQYgBSgCdCAGNwNICyAFKAJ0KAI8Qf//A0YEQCAFKAIQECohACAFKAJ0IAA2AjwLCyAFKAIQEEdBAXFFBEAgBSgCZEEVQQAQFCAFKAIQEBYgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwCCyAFKAIQEBYLAn8jAEEQayIAIAUoAmw2AgwgACgCDC0AAEEBcUULBEAgBSgCZEEUQQAQFCAFLQAdQQFxRQRAIAUoAmwQFgsgBUJ/NwN4DAELIAUtAB1BAXFFBEAgBSgCbBAWCyAFKAJ0KQNIQv///////////wBWBEAgBSgCZEEEQRYQFCAFQn83A3gMAQsCfyAFKAJ0IQEgBSgCZCECIwBBIGsiACQAIAAgATYCGCAAIAI2AhQCQCAAKAIYKAIQQeMARwRAIABBAToAHwwBCyAAIAAoAhgoAjQgAEESakGBsgJBgAZBABBmNgIIAkAgACgCCARAIAAvARJBB08NAQsgACgCFEEVQQAQFCAAQQA6AB8MAQsgACAAKAIIIAAvARKtECkiATYCDCABRQRAIAAoAhRBFEEAEBQgAEEAOgAfDAELIABBAToABwJAAkACQCAAKAIMEB1BAWsOAgIAAQsgACgCGCkDKEIUVARAIABBADoABwsMAQsgACgCFEEYQQAQFCAAKAIMEBYgAEEAOgAfDAELIAAoAgxCAhAeLwAAQcGKAUcEQCAAKAIUQRhBABAUIAAoAgwQFiAAQQA6AB8MAQsCQAJAAkACQAJAIAAoAgwQlwFBAWsOAwABAgMLIABBgQI7AQQMAwsgAEGCAjsBBAwCCyAAQYMCOwEEDAELIAAoAhRBGEEAEBQgACgCDBAWIABBADoAHwwBCyAALwESQQdHBEAgACgCFEEVQQAQFCAAKAIMEBYgAEEAOgAfDAELIAAoAhggAC0AB0EBcToABiAAKAIYIAAvAQQ7AVIgACgCDBAdQf//A3EhASAAKAIYIAE2AhAgACgCDBAWIABBAToAHwsgAC0AH0EBcSEBIABBIGokACABQQFxRQsEQCAFQn83A3gMAQsgBSgCdCgCNBCTASEAIAUoAnQgADYCNCAFIAUoAiggBSgCJGqtNwN4CyAFKQN4IQYgBUGAAWokACAGC80BAQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMgA0EMakG4mwEQEjYCAAJAIAMoAgBFBEAgAygCBEEhOwEAIAMoAghBADsBAAwBCyADKAIAKAIUQdAASARAIAMoAgBB0AA2AhQLIAMoAgQgAygCACgCDCADKAIAKAIUQQl0IAMoAgAoAhBBBXRqQeC/AmtqOwEAIAMoAgggAygCACgCCEELdCADKAIAKAIEQQV0aiADKAIAKAIAQQF1ajsBAAsgA0EQaiQAC4MDAQF/IwBBIGsiAyQAIAMgADsBGiADIAE2AhQgAyACNgIQIAMgAygCFCADQQhqQcAAQQAQRiIANgIMAkAgAEUEQCADQQA2AhwMAQsgAygCCEEFakH//wNLBEAgAygCEEESQQAQFCADQQA2AhwMAQsgA0EAIAMoAghBBWqtECkiADYCBCAARQRAIAMoAhBBDkEAEBQgA0EANgIcDAELIAMoAgRBARCWASADKAIEIAMoAhQQhwEQISADKAIEIAMoAgwgAygCCBBBAn8jAEEQayIAIAMoAgQ2AgwgACgCDC0AAEEBcUULBEAgAygCEEEUQQAQFCADKAIEEBYgA0EANgIcDAELIAMgAy8BGgJ/IwBBEGsiACADKAIENgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELAn8jAEEQayIAIAMoAgQ2AgwgACgCDCgCBAtBgAYQVTYCACADKAIEEBYgAyADKAIANgIcCyADKAIcIQAgA0EgaiQAIAALtAIBAX8jAEEwayIDJAAgAyAANgIoIAMgATcDICADIAI2AhwCQCADKQMgUARAIANBAToALwwBCyADIAMoAigpAxAgAykDIHw3AwgCQCADKQMIIAMpAyBaBEAgAykDCEL/////AFgNAQsgAygCHEEOQQAQFCADQQA6AC8MAQsgAyADKAIoKAIAIAMpAwinQQR0EE4iADYCBCAARQRAIAMoAhxBDkEAEBQgA0EAOgAvDAELIAMoAiggAygCBDYCACADIAMoAigpAwg3AxADQCADKQMQIAMpAwhaRQRAIAMoAigoAgAgAykDEKdBBHRqELUBIAMgAykDEEIBfDcDEAwBCwsgAygCKCADKQMIIgE3AxAgAygCKCABNwMIIANBAToALwsgAy0AL0EBcSEAIANBMGokACAAC8wBAQF/IwBBIGsiAiQAIAIgADcDECACIAE2AgwgAkEwEBgiATYCCAJAIAFFBEAgAigCDEEOQQAQFCACQQA2AhwMAQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){yr(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var N=ee.toString();throw P("failed to compile wasm module: "+N),(N.includes("imported Memory")||N.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function Qp(){var f={a:da};function E(L,N){var ee=L.exports;t.asm=ee,A=t.asm.u,Lr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Sr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Tn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Tn.GMTString||(Tn.GMTString=ye("GMT")),de[E+40>>2]=Tn.GMTString,E}function ae(f,E){return Tn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Nl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){yr("randomDevice")}}var Nn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:b.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Nn.resolve(f).substr(1),E=Nn.resolve(E).substr(1);function w(it){for(var at=0;at<it.length&&it[at]==="";at++);for(var Ue=it.length-1;Ue>=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),N=Math.min(k.length,L.length),ee=N,Ie=0;Ie<N;Ie++)if(k[Ie]!==L[Ie]){ee=Ie;break}for(var Oe=[],Ie=ee;Ie<k.length;Ie++)Oe.push("..");return Oe=Oe.concat(L.slice(ee)),Oe.join("/")}},ns={ttys:[],init:function(){},shutdown:function(){},register:function(f,E){ns.ttys[f]={input:[],output:[],ops:E},b.registerDevice(f,ns.stream_ops)},stream_ops:{open:function(f){var E=ns.ttys[f.node.rdev];if(!E)throw new b.ErrnoError(43);f.tty=E,f.seekable=!1},close:function(f){f.tty.ops.flush(f.tty)},flush:function(f){f.tty.ops.flush(f.tty)},read:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.get_char)throw new b.ErrnoError(60);for(var N=0,ee=0;ee<k;ee++){var Ie;try{Ie=f.tty.ops.get_char(f.tty)}catch{throw new b.ErrnoError(29)}if(Ie===void 0&&N===0)throw new b.ErrnoError(6);if(Ie==null)break;N++,E[w+ee]=Ie}return N&&(f.node.timestamp=Date.now()),N},write:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.put_char)throw new b.ErrnoError(60);try{for(var N=0;N<k;N++)f.tty.ops.put_char(f.tty,E[w+N])}catch{throw new b.ErrnoError(29)}return k&&(f.node.timestamp=Date.now()),N}},default_tty_ops:{get_char:function(f){if(!f.input.length){var E=null;if(g){var w=256,k=Buffer.alloc?Buffer.alloc(w):new Buffer(w),L=0;try{L=y.readSync(process.stdin.fd,k,0,w,null)}catch(N){if(N.toString().includes("EOF"))L=0;else throw N}L>0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` +`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var QC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=QC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[bC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[bC])g();this[bC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{bke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[b6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Gf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new QC(a,this))}),e.once("aborted",()=>{this._beforeError(new QC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?<socketPath>.+?):(?<path>.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),Qke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[Q6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Gf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[bC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[bC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[Q6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[b6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Gf]/this[jf]:this[jf]===this[Gf]?e=1:e=0,{percent:e,transferred:this[Gf],total:this[jf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Nke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Tke=J("events"),Lke=Ya(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Tke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Nke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var N6=Ya();function T6(r){for(let e of Object.values(r))(N6.default.plainObject(e)||N6.default.array(e))&&T6(e);return Object.freeze(r)}BR.default=T6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var bR=I(bs=>{"use strict";var Gke=bs&&bs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=bs&&bs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Gke(e,r,t)};Object.defineProperty(bs,"__esModule",{value:!0});bs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];bs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==bs.defaultHandler),s.length===0&&s.push(bs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c<o.requestLimit;){c!==0&&await zke(o.backoff);let u=await e(void 0,void 0,s),g=await o.transform(u),h=[];for(let d of g)if(o.filter(d,a,h)&&(!o.shouldContinue(d,a,h)||(yield d,o.stackAllItems&&a.push(d),h.push(d),--l<=0)))return;let p=o.paginate(u,a,h);if(p===!1)return;p===u.request.options?s=u.request.options:p!==void 0&&(s=fB(void 0,p,s)),c++}};e.paginate=t,e.paginate.all=async(i,n)=>{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};bs.default=j6;Yke(M6(),bs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),G6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=bR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},QR=Y6.default(eDe);qa.default=QR;pB.exports=QR;pB.exports.default=QR;pB.exports.__esModule=!0;G6(bR(),qa);G6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l<c;++l){var u=e.requests[l];if(u.host===a.host&&u.port===a.port){e.requests.splice(l,1),u.request.onSocket(i);return}}i.destroy(),e.removeSocket(i)})}iDe.inherits(Ja,rDe.EventEmitter);Ja.prototype.addRequest=function(e,t,i,n){var s=this,o=vR({request:e},s.options,W6(t,i,n));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s +`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e<t;++e){var i=arguments[e];if(typeof i=="object")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(r[a]=i[a])}}return r}var _A;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?_A=function(){var r=Array.prototype.slice.call(arguments);typeof r[0]=="string"?r[0]="TUNNEL: "+r[0]:r.unshift("TUNNEL:"),console.error.apply(console,r)}:_A=function(){};Wf.debug=_A});var X6=I((yst,V6)=>{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&yr("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:yr("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||yr("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at<k.length;at++){var Ue=T[w[at]];Ue?(it===0&&(it=tS()),Oe[at]=Ue(k[at])):Oe[at]=k[at]}var Ve=Ie.apply(null,Oe);return Ve=ee(Ve),it!==0&&rS(it),Ve}function ce(f,E,w,k){w=w||[];var L=w.every(function(ee){return ee==="number"}),T=E!=="string";return T&&L&&!k?O(f):function(){return N(f,E,w,arguments,k)}}var he=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(f,E,w){for(var k=E+w,L=E;f[L]&&!(L>=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E<L;){var ee=f[E++];if(!(ee&128)){T+=String.fromCharCode(ee);continue}var Ie=f[E++]&63;if((ee&224)==192){T+=String.fromCharCode((ee&31)<<6|Ie);continue}var Oe=f[E++]&63;if((ee&240)==224?ee=(ee&15)<<12|Ie<<6|Oe:ee=(ee&7)<<18|Ie<<12|Oe<<6|f[E++]&63,ee<65536)T+=String.fromCharCode(ee);else{var it=ee-65536;T+=String.fromCharCode(55296|it>>10,56320|it&1023)}}return T}function De(f,E){return f?Pe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee<f.length;++ee){var Ie=f.charCodeAt(ee);if(Ie>=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w<f.length;++w){var k=f.charCodeAt(w);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,G,fe,re,de,Ze,vt,mt;function Lr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=G=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!Q.init.initialized&&Q.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function yr(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Nl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Nl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJI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ECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIc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DQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyABKAJcQYUPNgIYIAEoAlRB0f4ANgIEDAQLDAILIAEoAgxBwABxRQRAIAEgASgCJCABLwESIAEoAixBASABKAIMdEEBa3FqQQJ0aigBADYBEAwBCwsgASgCDEEgcQRAIAEoAlRBv/4ANgIEDAILIAEoAlxB6Q42AhggASgCVEHR/gA2AgQMAQsgASgCUCABKAJMSQR/IAEoAkggASgCQEkFQQALQQFxDQELCyABIAEoAihBA3Y2AgggASABKAJQIAEoAghrNgJQIAEgASgCKCABKAIIQQN0azYCKCABIAEoAixBASABKAIodEEBa3E2AiwgASgCXCABKAJQNgIAIAEoAlwgASgCSDYCDCABKAJcAn8gASgCUCABKAJMSQRAIAEoAkwgASgCUGtBBWoMAQtBBSABKAJQIAEoAkxraws2AgQgASgCXAJ/IAEoAkggASgCQEkEQCABKAJAIAEoAkhrQYECagwBC0GBAiABKAJIIAEoAkBraws2AhAgASgCVCABKAIsNgI8IAEoAlQgASgCKDYCQCAAIAAoAlgoAgw2AkggACAAKAJYKAIQNgJAIAAgACgCWCgCADYCTCAAIAAoAlgoAgQ2AkQgACAAKAJQKAI8NgI8IAAgACgCUCgCQDYCOCAAKAJQKAIEQb/+AEYEQCAAKAJQQX82Asg3CwwNCyAAKAJQQQA2Asg3A0ACQCAAIAAoAlAoAlAgACgCPEEBIAAoAlAoAlh0QQFrcUECdGooAQA2ASAgAC0AISAAKAI4TQ0AIAAoAkRFDQ0gACAAKAJEQQFrNgJEIAAgACgCTCIBQQFqNgJMIAAgACgCPCABLQAAIAAoAjh0ajYCPCAAIAAoAjhBCGo2AjgMAQsLAkAgAC0AIEUNACAALQAgQfABcQ0AIAAgACgBIDYBGANAAkAgACAAKAJQKAJQIAAvARogACgCPEEBIAAtABkgAC0AGGp0QQFrcSAALQAZdmpBAnRqKAEANgEgIAAoAjggAC0AGSAALQAhak8NACAAKAJERQ0OIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjwgAC0AGXY2AjwgACAAKAI4IAAtABlrNgI4IAAoAlAiASAALQAZIAEoAsg3ajYCyDcLIAAgACgCPCAALQAhdjYCPCAAIAAoAjggAC0AIWs2AjggACgCUCIBIAAtACEgASgCyDdqNgLINyAAKAJQIAAvASI2AkQgAC0AIEUEQCAAKAJQQc3+ADYCBAwNCyAALQAgQSBxBEAgACgCUEF/NgLINyAAKAJQQb/+ADYCBAwNCyAALQAgQcAAcQRAIAAoAlhB6Q42AhggACgCUEHR/gA2AgQMDQsgACgCUCAALQAgQQ9xNgJMIAAoAlBByf4ANgIECyAAKAJQKAJMBEADQCAAKAI4IAAoAlAoAkxJBEAgACgCREUNDSAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCUCIBIAEoAkQgACgCPEEBIAAoAlAoAkx0QQFrcWo2AkQgACAAKAI8IAAoAlAoAkx2NgI8IAAgACgCOCAAKAJQKAJMazYCOCAAKAJQIgEgACgCUCgCTCABKALIN2o2Asg3CyAAKAJQIAAoAlAoAkQ2Asw3IAAoAlBByv4ANgIECwNAAkAgACAAKAJQKAJUIAAoAjxBASAAKAJQKAJcdEEBa3FBAnRqKAEANgEgIAAtACEgACgCOE0NACAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAALQAgQfABcUUEQCAAIAAoASA2ARgDQAJAIAAgACgCUCgCVCAALwEaIAAoAjxBASAALQAZIAAtABhqdEEBa3EgAC0AGXZqQQJ0aigBADYBICAAKAI4IAAtABkgAC0AIWpPDQAgACgCREUNDCAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACAAKAI8IAAtABl2NgI8IAAgACgCOCAALQAZazYCOCAAKAJQIgEgAC0AGSABKALIN2o2Asg3CyAAIAAoAjwgAC0AIXY2AjwgACAAKAI4IAAtACFrNgI4IAAoAlAiASAALQAhIAEoAsg3ajYCyDcgAC0AIEHAAHEEQCAAKAJYQYUPNgIYIAAoAlBB0f4ANgIEDAsLIAAoAlAgAC8BIjYCSCAAKAJQIAAtACBBD3E2AkwgACgCUEHL/gA2AgQLIAAoAlAoAkwEQANAIAAoAjggACgCUCgCTEkEQCAAKAJERQ0LIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAKAJQIgEgASgCSCAAKAI8QQEgACgCUCgCTHRBAWtxajYCSCAAIAAoAjwgACgCUCgCTHY2AjwgACAAKAI4IAAoAlAoAkxrNgI4IAAoAlAiASAAKAJQKAJMIAEoAsg3ajYCyDcLIAAoAlBBzP4ANgIECyAAKAJARQ0HIAAgACgCMCAAKAJAazYCLAJAIAAoAlAoAkggACgCLEsEQCAAIAAoAlAoAkggACgCLGs2AiwgACgCLCAAKAJQKAIwSwRAIAAoAlAoAsQ3BEAgACgCWEHdDDYCGCAAKAJQQdH+ADYCBAwMCwsCQCAAKAIsIAAoAlAoAjRLBEAgACAAKAIsIAAoAlAoAjRrNgIsIAAgACgCUCgCOCAAKAJQKAIsIAAoAixrajYCKAwBCyAAIAAoAlAoAjggACgCUCgCNCAAKAIsa2o2AigLIAAoAiwgACgCUCgCREsEQCAAIAAoAlAoAkQ2AiwLDAELIAAgACgCSCAAKAJQKAJIazYCKCAAIAAoAlAoAkQ2AiwLIAAoAiwgACgCQEsEQCAAIAAoAkA2AiwLIAAgACgCQCAAKAIsazYCQCAAKAJQIgEgASgCRCAAKAIsazYCRANAIAAgACgCKCIBQQFqNgIoIAEtAAAhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAIsQQFrIgE2AiwgAQ0ACyAAKAJQKAJERQRAIAAoAlBByP4ANgIECwwICyAAKAJARQ0GIAAoAlAoAkQhASAAIAAoAkgiAkEBajYCSCACIAE6AAAgACAAKAJAQQFrNgJAIAAoAlBByP4ANgIEDAcLIAAoAlAoAgwEQANAIAAoAjhBIEkEQCAAKAJERQ0IIAAgACgCREEBazYCRCAAIAAoAkwiAUEBajYCTCAAIAAoAjwgAS0AACAAKAI4dGo2AjwgACAAKAI4QQhqNgI4DAELCyAAIAAoAjAgACgCQGs2AjAgACgCWCIBIAAoAjAgASgCFGo2AhQgACgCUCIBIAAoAjAgASgCIGo2AiACQCAAKAJQKAIMQQRxRQ0AIAAoAjBFDQACfyAAKAJQKAIUBEAgACgCUCgCHCAAKAJIIAAoAjBrIAAoAjAQGgwBCyAAKAJQKAIcIAAoAkggACgCMGsgACgCMBA9CyEBIAAoAlAgATYCHCAAKAJYIAE2AjALIAAgACgCQDYCMAJAIAAoAlAoAgxBBHFFDQACfyAAKAJQKAIUBEAgACgCPAwBCyAAKAI8QQh2QYD+A3EgACgCPEEYdmogACgCPEGA/gNxQQh0aiAAKAI8Qf8BcUEYdGoLIAAoAlAoAhxGDQAgACgCWEHIDDYCGCAAKAJQQdH+ADYCBAwICyAAQQA2AjwgAEEANgI4CyAAKAJQQc/+ADYCBAsCQCAAKAJQKAIMRQ0AIAAoAlAoAhRFDQADQCAAKAI4QSBJBEAgACgCREUNByAAIAAoAkRBAWs2AkQgACAAKAJMIgFBAWo2AkwgACAAKAI8IAEtAAAgACgCOHRqNgI8IAAgACgCOEEIajYCOAwBCwsgACgCPCAAKAJQKAIgRwRAIAAoAlhBsQw2AhggACgCUEHR/gA2AgQMBwsgAEEANgI8IABBADYCOAsgACgCUEHQ/gA2AgQLIABBATYCEAwDCyAAQX02AhAMAgsgAEF8NgJcDAMLIABBfjYCXAwCCwsgACgCWCAAKAJINgIMIAAoAlggACgCQDYCECAAKAJYIAAoAkw2AgAgACgCWCAAKAJENgIEIAAoAlAgACgCPDYCPCAAKAJQIAAoAjg2AkACQAJAIAAoAlAoAiwNACAAKAIwIAAoAlgoAhBGDQEgACgCUCgCBEHR/gBPDQEgACgCUCgCBEHO/gBJDQAgACgCVEEERg0BCwJ/IAAoAlghAiAAKAJYKAIMIQMgACgCMCAAKAJYKAIQayEEIwBBIGsiASQAIAEgAjYCGCABIAM2AhQgASAENgIQIAEgASgCGCgCHDYCDAJAIAEoAgwoAjhFBEAgASgCGCgCKEEBIAEoAgwoAih0QQEgASgCGCgCIBEBACECIAEoAgwgAjYCOCABKAIMKAI4RQRAIAFBATYCHAwCCwsgASgCDCgCLEUEQCABKAIMQQEgASgCDCgCKHQ2AiwgASgCDEEANgI0IAEoAgxBADYCMAsCQCABKAIQIAEoAgwoAixPBEAgASgCDCgCOCABKAIUIAEoAgwoAixrIAEoAgwoAiwQGRogASgCDEEANgI0IAEoAgwgASgCDCgCLDYCMAwBCyABIAEoAgwoAiwgASgCDCgCNGs2AgggASgCCCABKAIQSwRAIAEgASgCEDYCCAsgASgCDCgCOCABKAIMKAI0aiABKAIUIAEoAhBrIAEoAggQGRogASABKAIQIAEoAghrNgIQAkAgASgCEARAIAEoAgwoAjggASgCFCABKAIQayABKAIQEBkaIAEoAgwgASgCEDYCNCABKAIMIAEoAgwoAiw2AjAMAQsgASgCDCICIAEoAgggAigCNGo2AjQgASgCDCgCNCABKAIMKAIsRgRAIAEoAgxBADYCNAsgASgCDCgCMCABKAIMKAIsSQRAIAEoAgwiAiABKAIIIAIoAjBqNgIwCwsLIAFBADYCHAsgASgCHCECIAFBIGokACACCwRAIAAoAlBB0v4ANgIEIABBfDYCXAwCCwsgACAAKAI0IAAoAlgoAgRrNgI0IAAgACgCMCAAKAJYKAIQazYCMCAAKAJYIgEgACgCNCABKAIIajYCCCAAKAJYIgEgACgCMCABKAIUajYCFCAAKAJQIgEgACgCMCABKAIgajYCIAJAIAAoAlAoAgxBBHFFDQAgACgCMEUNAAJ/IAAoAlAoAhQEQCAAKAJQKAIcIAAoAlgoAgwgACgCMGsgACgCMBAaDAELIAAoAlAoAhwgACgCWCgCDCAAKAIwayAAKAIwED0LIQEgACgCUCABNgIcIAAoAlggATYCMAsgACgCWCAAKAJQKAJAQcAAQQAgACgCUCgCCBtqQYABQQAgACgCUCgCBEG//gBGG2pBgAJBACAAKAJQKAIEQcf+AEcEfyAAKAJQKAIEQcL+AEYFQQELQQFxG2o2AiwCQAJAIAAoAjRFBEAgACgCMEUNAQsgACgCVEEERw0BCyAAKAIQDQAgAEF7NgIQCyAAIAAoAhA2AlwLIAAoAlwhASAAQeAAaiQAIAUgATYCCAsgBSgCECIAIAApAwAgBSgCDDUCIH03AwACQAJAAkACQAJAIAUoAghBBWoOBwIDAwMDAAEDCyAFQQA2AhwMAwsgBUEBNgIcDAILIAUoAgwoAhRFBEAgBUEDNgIcDAILCyAFKAIMKAIAQQ0gBSgCCBAUIAVBAjYCHAsgBSgCHCEAIAVBIGokACAACyQBAX8jAEEQayIBIAA2AgwgASABKAIMNgIIIAEoAghBAToADAuXAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjcDCCADIAMoAhg2AgQCQAJAIAMpAwhC/////w9YBEAgAygCBCgCFEUNAQsgAygCBCgCAEESQQAQFCADQQA6AB8MAQsgAygCBCADKQMIPgIUIAMoAgQgAygCFDYCECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAukAgECfyMAQRBrIgEkACABIAA2AgggASABKAIINgIEAkAgASgCBC0ABEEBcQRAIAEgASgCBEEQahC4ATYCAAwBCyABKAIEQRBqIQIjAEEQayIAJAAgACACNgIIAkAgACgCCBBKBEAgAEF+NgIMDAELIAAgACgCCCgCHDYCBCAAKAIEKAI4BEAgACgCCCgCKCAAKAIEKAI4IAAoAggoAiQRBAALIAAoAggoAiggACgCCCgCHCAAKAIIKAIkEQQAIAAoAghBADYCHCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgASACNgIACwJAIAEoAgAEQCABKAIEKAIAQQ0gASgCABAUIAFBADoADwwBCyABQQE6AA8LIAEtAA9BAXEhACABQRBqJAAgAAuyGAEFfyMAQRBrIgQkACAEIAA2AgggBCAEKAIINgIEIAQoAgRBADYCFCAEKAIEQQA2AhAgBCgCBEEANgIgIAQoAgRBADYCHAJAIAQoAgQtAARBAXEEQCAEKAIEQRBqIQEgBCgCBCgCCCECIwBBMGsiACQAIAAgATYCKCAAIAI2AiQgAEEINgIgIABBcTYCHCAAQQk2AhggAEEANgIUIABBwBI2AhAgAEE4NgIMIABBATYCBAJAAkACQCAAKAIQRQ0AIAAoAhAsAABB+O4ALAAARw0AIAAoAgxBOEYNAQsgAEF6NgIsDAELIAAoAihFBEAgAEF+NgIsDAELIAAoAihBADYCGCAAKAIoKAIgRQRAIAAoAihBBTYCICAAKAIoQQA2AigLIAAoAigoAiRFBEAgACgCKEEGNgIkCyAAKAIkQX9GBEAgAEEGNgIkCwJAIAAoAhxBAEgEQCAAQQA2AgQgAEEAIAAoAhxrNgIcDAELIAAoAhxBD0oEQCAAQQI2AgQgACAAKAIcQRBrNgIcCwsCQAJAIAAoAhhBAUgNACAAKAIYQQlKDQAgACgCIEEIRw0AIAAoAhxBCEgNACAAKAIcQQ9KDQAgACgCJEEASA0AIAAoAiRBCUoNACAAKAIUQQBIDQAgACgCFEEESg0AIAAoAhxBCEcNASAAKAIEQQFGDQELIABBfjYCLAwBCyAAKAIcQQhGBEAgAEEJNgIcCyAAIAAoAigoAihBAUHELSAAKAIoKAIgEQEANgIIIAAoAghFBEAgAEF8NgIsDAELIAAoAiggACgCCDYCHCAAKAIIIAAoAig2AgAgACgCCEEqNgIEIAAoAgggACgCBDYCGCAAKAIIQQA2AhwgACgCCCAAKAIcNgIwIAAoAghBASAAKAIIKAIwdDYCLCAAKAIIIAAoAggoAixBAWs2AjQgACgCCCAAKAIYQQdqNgJQIAAoAghBASAAKAIIKAJQdDYCTCAAKAIIIAAoAggoAkxBAWs2AlQgACgCCCAAKAIIKAJQQQJqQQNuNgJYIAAoAigoAiggACgCCCgCLEECIAAoAigoAiARAQAhASAAKAIIIAE2AjggACgCKCgCKCAAKAIIKAIsQQIgACgCKCgCIBEBACEBIAAoAgggATYCQCAAKAIoKAIoIAAoAggoAkxBAiAAKAIoKAIgEQEAIQEgACgCCCABNgJEIAAoAghBADYCwC0gACgCCEEBIAAoAhhBBmp0NgKcLSAAIAAoAigoAiggACgCCCgCnC1BBCAAKAIoKAIgEQEANgIAIAAoAgggACgCADYCCCAAKAIIIAAoAggoApwtQQJ0NgIMAkACQCAAKAIIKAI4RQ0AIAAoAggoAkBFDQAgACgCCCgCREUNACAAKAIIKAIIDQELIAAoAghBmgU2AgQgACgCKEG42QAoAgA2AhggACgCKBC4ARogAEF8NgIsDAELIAAoAgggACgCACAAKAIIKAKcLUEBdkEBdGo2AqQtIAAoAgggACgCCCgCCCAAKAIIKAKcLUEDbGo2ApgtIAAoAgggACgCJDYChAEgACgCCCAAKAIUNgKIASAAKAIIIAAoAiA6ACQgACgCKCEBIwBBEGsiAyQAIAMgATYCDCADKAIMIQIjAEEQayIBJAAgASACNgIIAkAgASgCCBB4BEAgAUF+NgIMDAELIAEoAghBADYCFCABKAIIQQA2AgggASgCCEEANgIYIAEoAghBAjYCLCABIAEoAggoAhw2AgQgASgCBEEANgIUIAEoAgQgASgCBCgCCDYCECABKAIEKAIYQQBIBEAgASgCBEEAIAEoAgQoAhhrNgIYCyABKAIEIAEoAgQoAhhBAkYEf0E5BUEqQfEAIAEoAgQoAhgbCzYCBAJ/IAEoAgQoAhhBAkYEQEEAQQBBABAaDAELQQBBAEEAED0LIQIgASgCCCACNgIwIAEoAgRBADYCKCABKAIEIQUjAEEQayICJAAgAiAFNgIMIAIoAgwgAigCDEGUAWo2ApgWIAIoAgxB0N8ANgKgFiACKAIMIAIoAgxBiBNqNgKkFiACKAIMQeTfADYCrBYgAigCDCACKAIMQfwUajYCsBYgAigCDEH43wA2ArgWIAIoAgxBADsBuC0gAigCDEEANgK8LSACKAIMEL4BIAJBEGokACABQQA2AgwLIAEoAgwhAiABQRBqJAAgAyACNgIIIAMoAghFBEAgAygCDCgCHCECIwBBEGsiASQAIAEgAjYCDCABKAIMIAEoAgwoAixBAXQ2AjwgASgCDCgCRCABKAIMKAJMQQFrQQF0akEAOwEAIAEoAgwoAkRBACABKAIMKAJMQQFrQQF0EDMgASgCDCABKAIMKAKEAUEMbEGA7wBqLwECNgKAASABKAIMIAEoAgwoAoQBQQxsQYDvAGovAQA2AowBIAEoAgwgASgCDCgChAFBDGxBgO8Aai8BBDYCkAEgASgCDCABKAIMKAKEAUEMbEGA7wBqLwEGNgJ8IAEoAgxBADYCbCABKAIMQQA2AlwgASgCDEEANgJ0IAEoAgxBADYCtC0gASgCDEECNgJ4IAEoAgxBAjYCYCABKAIMQQA2AmggASgCDEEANgJIIAFBEGokAAsgAygCCCEBIANBEGokACAAIAE2AiwLIAAoAiwhASAAQTBqJAAgBCABNgIADAELIAQoAgRBEGohASMAQSBrIgAkACAAIAE2AhggAEFxNgIUIABBwBI2AhAgAEE4NgIMAkACQAJAIAAoAhBFDQAgACgCECwAAEHAEiwAAEcNACAAKAIMQThGDQELIABBejYCHAwBCyAAKAIYRQRAIABBfjYCHAwBCyAAKAIYQQA2AhggACgCGCgCIEUEQCAAKAIYQQU2AiAgACgCGEEANgIoCyAAKAIYKAIkRQRAIAAoAhhBBjYCJAsgACAAKAIYKAIoQQFB0DcgACgCGCgCIBEBADYCBCAAKAIERQRAIABBfDYCHAwBCyAAKAIYIAAoAgQ2AhwgACgCBCAAKAIYNgIAIAAoAgRBADYCOCAAKAIEQbT+ADYCBCAAKAIYIQIgACgCFCEDIwBBIGsiASQAIAEgAjYCGCABIAM2AhQCQCABKAIYEEoEQCABQX42AhwMAQsgASABKAIYKAIcNgIMAkAgASgCFEEASARAIAFBADYCECABQQAgASgCFGs2AhQMAQsgASABKAIUQQR1QQVqNgIQIAEoAhRBMEgEQCABIAEoAhRBD3E2AhQLCwJAIAEoAhRFDQAgASgCFEEITgRAIAEoAhRBD0wNAQsgAUF+NgIcDAELAkAgASgCDCgCOEUNACABKAIMKAIoIAEoAhRGDQAgASgCGCgCKCABKAIMKAI4IAEoAhgoAiQRBAAgASgCDEEANgI4CyABKAIMIAEoAhA2AgwgASgCDCABKAIUNgIoIAEoAhghAiMAQRBrIgMkACADIAI2AggCQCADKAIIEEoEQCADQX42AgwMAQsgAyADKAIIKAIcNgIEIAMoAgRBADYCLCADKAIEQQA2AjAgAygCBEEANgI0IAMoAgghBSMAQRBrIgIkACACIAU2AggCQCACKAIIEEoEQCACQX42AgwMAQsgAiACKAIIKAIcNgIEIAIoAgRBADYCICACKAIIQQA2AhQgAigCCEEANgIIIAIoAghBADYCGCACKAIEKAIMBEAgAigCCCACKAIEKAIMQQFxNgIwCyACKAIEQbT+ADYCBCACKAIEQQA2AgggAigCBEEANgIQIAIoAgRBgIACNgIYIAIoAgRBADYCJCACKAIEQQA2AjwgAigCBEEANgJAIAIoAgQgAigCBEG0CmoiBTYCcCACKAIEIAU2AlQgAigCBCAFNgJQIAIoAgRBATYCxDcgAigCBEF/NgLINyACQQA2AgwLIAIoAgwhBSACQRBqJAAgAyAFNgIMCyADKAIMIQIgA0EQaiQAIAEgAjYCHAsgASgCHCECIAFBIGokACAAIAI2AgggACgCCARAIAAoAhgoAiggACgCBCAAKAIYKAIkEQQAIAAoAhhBADYCHAsgACAAKAIINgIcCyAAKAIcIQEgAEEgaiQAIAQgATYCAAsCQCAEKAIABEAgBCgCBCgCAEENIAQoAgAQFCAEQQA6AA8MAQsgBEEBOgAPCyAELQAPQQFxIQAgBEEQaiQAIAALbwEBfyMAQRBrIgEgADYCCCABIAEoAgg2AgQCQCABKAIELQAEQQFxRQRAIAFBADYCDAwBCyABKAIEKAIIQQNIBEAgAUECNgIMDAELIAEoAgQoAghBB0oEQCABQQE2AgwMAQsgAUEANgIMCyABKAIMCywBAX8jAEEQayIBJAAgASAANgIMIAEgASgCDDYCCCABKAIIEBUgAUEQaiQACzwBAX8jAEEQayIDJAAgAyAAOwEOIAMgATYCCCADIAI2AgRBASADKAIIIAMoAgQQtAEhACADQRBqJAAgAAvBEAECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCACKAIYKAJgNgJ4IAIoAhggAigCGCgCcDYCZCACKAIYQQI2AmACQCACKAIQRQ0AIAIoAhgoAnggAigCGCgCgAFPDQAgAigCGCgCLEGGAmsgAigCGCgCbCACKAIQa0kNACACKAIYIAIoAhAQtgEhACACKAIYIAA2AmACQCACKAIYKAJgQQVLDQAgAigCGCgCiAFBAUcEQCACKAIYKAJgQQNHDQEgAigCGCgCbCACKAIYKAJwa0GAIE0NAQsgAigCGEECNgJgCwsCQAJAIAIoAhgoAnhBA0kNACACKAIYKAJgIAIoAhgoAnhLDQAgAiACKAIYIgAoAmwgACgCdGpBA2s2AgggAiACKAIYKAJ4QQNrOgAHIAIgAigCGCIAKAJsIAAoAmRBf3NqOwEEIAIoAhgiACgCpC0gACgCoC1BAXRqIAIvAQQ7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACIAIvAQRBAWs7AQQgAigCGCACLQAHQdDdAGotAABBAnRqQZgJaiIAIAAvAQBBAWo7AQAgAigCGEGIE2oCfyACLwEEQYACSQRAIAIvAQQtANBZDAELIAIvAQRBB3ZBgAJqLQDQWQtBAnRqIgAgAC8BAEEBajsBACACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYIgAgACgCdCACKAIYKAJ4QQFrazYCdCACKAIYIgAgACgCeEECazYCeANAIAIoAhgiASgCbEEBaiEAIAEgADYCbCAAIAIoAghNBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsgAigCGCIBKAJ4QQFrIQAgASAANgJ4IAANAAsgAigCGEEANgJoIAIoAhhBAjYCYCACKAIYIgAgACgCbEEBajYCbCACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBgsLDAELAkAgAigCGCgCaARAIAIgAigCGCIAKAI4IAAoAmxqQQFrLQAAOgADIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AAyEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAANBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAgwEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHAsgAigCGCIAIAAoAmxBAWo2AmwgAigCGCIAIAAoAnRBAWs2AnQgAigCGCgCACgCEEUEQCACQQA2AhwMBgsMAQsgAigCGEEBNgJoIAIoAhgiACAAKAJsQQFqNgJsIAIoAhgiACAAKAJ0QQFrNgJ0CwsMAQsLIAIoAhgoAmgEQCACIAIoAhgiACgCOCAAKAJsakEBay0AADoAAiACKAIYIgAoAqQtIAAoAqAtQQF0akEAOwEAIAItAAIhASACKAIYIgAoApgtIQMgACAAKAKgLSIAQQFqNgKgLSAAIANqIAE6AAAgAigCGCACLQACQQJ0aiIAIAAvAZQBQQFqOwGUASACIAIoAhgoAqAtIAIoAhgoApwtQQFrRjYCDCACKAIYQQA2AmgLIAIoAhgCfyACKAIYKAJsQQJJBEAgAigCGCgCbAwBC0ECCzYCtC0gAigCFEEERgRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQEQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkECNgIcDAILIAJBAzYCHAwBCyACKAIYKAKgLQRAIAIoAhgCfyACKAIYKAJcQQBOBEAgAigCGCgCOCACKAIYKAJcagwBC0EACyACKAIYKAJsIAIoAhgoAlxrQQAQKCACKAIYIAIoAhgoAmw2AlwgAigCGCgCABAcIAIoAhgoAgAoAhBFBEAgAkEANgIcDAILCyACQQE2AhwLIAIoAhwhACACQSBqJAAgAAuVDQECfyMAQSBrIgIkACACIAA2AhggAiABNgIUAkADQAJAIAIoAhgoAnRBhgJJBEAgAigCGBBcAkAgAigCGCgCdEGGAk8NACACKAIUDQAgAkEANgIcDAQLIAIoAhgoAnRFDQELIAJBADYCECACKAIYKAJ0QQNPBEAgAigCGCACKAIYKAJUIAIoAhgoAjggAigCGCgCbEECamotAAAgAigCGCgCSCACKAIYKAJYdHNxNgJIIAIoAhgoAkAgAigCGCgCbCACKAIYKAI0cUEBdGogAigCGCgCRCACKAIYKAJIQQF0ai8BACIAOwEAIAIgAEH//wNxNgIQIAIoAhgoAkQgAigCGCgCSEEBdGogAigCGCgCbDsBAAsCQCACKAIQRQ0AIAIoAhgoAixBhgJrIAIoAhgoAmwgAigCEGtJDQAgAigCGCACKAIQELYBIQAgAigCGCAANgJgCwJAIAIoAhgoAmBBA08EQCACIAIoAhgoAmBBA2s6AAsgAiACKAIYIgAoAmwgACgCcGs7AQggAigCGCIAKAKkLSAAKAKgLUEBdGogAi8BCDsBACACLQALIQEgAigCGCIAKAKYLSEDIAAgACgCoC0iAEEBajYCoC0gACADaiABOgAAIAIgAi8BCEEBazsBCCACKAIYIAItAAtB0N0Aai0AAEECdGpBmAlqIgAgAC8BAEEBajsBACACKAIYQYgTagJ/IAIvAQhBgAJJBEAgAi8BCC0A0FkMAQsgAi8BCEEHdkGAAmotANBZC0ECdGoiACAALwEAQQFqOwEAIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0IAIoAhgoAmBrNgJ0AkACQCACKAIYKAJgIAIoAhgoAoABSw0AIAIoAhgoAnRBA0kNACACKAIYIgAgACgCYEEBazYCYANAIAIoAhgiACAAKAJsQQFqNgJsIAIoAhggAigCGCgCVCACKAIYKAI4IAIoAhgoAmxBAmpqLQAAIAIoAhgoAkggAigCGCgCWHRzcTYCSCACKAIYKAJAIAIoAhgoAmwgAigCGCgCNHFBAXRqIAIoAhgoAkQgAigCGCgCSEEBdGovAQAiADsBACACIABB//8DcTYCECACKAIYKAJEIAIoAhgoAkhBAXRqIAIoAhgoAmw7AQAgAigCGCIBKAJgQQFrIQAgASAANgJgIAANAAsgAigCGCIAIAAoAmxBAWo2AmwMAQsgAigCGCIAIAIoAhgoAmAgACgCbGo2AmwgAigCGEEANgJgIAIoAhggAigCGCgCOCACKAIYKAJsai0AADYCSCACKAIYIAIoAhgoAlQgAigCGCgCOCACKAIYKAJsQQFqai0AACACKAIYKAJIIAIoAhgoAlh0c3E2AkgLDAELIAIgAigCGCIAKAI4IAAoAmxqLQAAOgAHIAIoAhgiACgCpC0gACgCoC1BAXRqQQA7AQAgAi0AByEBIAIoAhgiACgCmC0hAyAAIAAoAqAtIgBBAWo2AqAtIAAgA2ogAToAACACKAIYIAItAAdBAnRqIgAgAC8BlAFBAWo7AZQBIAIgAigCGCgCoC0gAigCGCgCnC1BAWtGNgIMIAIoAhgiACAAKAJ0QQFrNgJ0IAIoAhgiACAAKAJsQQFqNgJsCyACKAIMBEAgAigCGAJ/IAIoAhgoAlxBAE4EQCACKAIYKAI4IAIoAhgoAlxqDAELQQALIAIoAhgoAmwgAigCGCgCXGtBABAoIAIoAhggAigCGCgCbDYCXCACKAIYKAIAEBwgAigCGCgCACgCEEUEQCACQQA2AhwMBAsLDAELCyACKAIYAn8gAigCGCgCbEECSQRAIAIoAhgoAmwMAQtBAgs2ArQtIAIoAhRBBEYEQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EBECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBAjYCHAwCCyACQQM2AhwMAQsgAigCGCgCoC0EQCACKAIYAn8gAigCGCgCXEEATgRAIAIoAhgoAjggAigCGCgCXGoMAQtBAAsgAigCGCgCbCACKAIYKAJca0EAECggAigCGCACKAIYKAJsNgJcIAIoAhgoAgAQHCACKAIYKAIAKAIQRQRAIAJBADYCHAwCCwsgAkEBNgIcCyACKAIcIQAgAkEgaiQAIAALBwAgAC8BMAspAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCCBAVIAJBEGokAAs6AQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgggAygCBGwQGCEAIANBEGokACAAC84FAQF/IwBB0ABrIgUkACAFIAA2AkQgBSABNgJAIAUgAjYCPCAFIAM3AzAgBSAENgIsIAUgBSgCQDYCKAJAAkACQAJAAkACQAJAAkACQCAFKAIsDg8AAQIDBQYHBwcHBwcHBwQHCwJ/IAUoAkQhASAFKAIoIQIjAEHgAGsiACQAIAAgATYCWCAAIAI2AlQgACAAKAJYIABByABqQgwQKyIDNwMIAkAgA0IAUwRAIAAoAlQgACgCWBAXIABBfzYCXAwBCyAAKQMIQgxSBEAgACgCVEERQQAQFCAAQX82AlwMAQsgACgCVCAAQcgAaiAAQcgAakIMQQAQfCAAKAJYIABBEGoQOUEASARAIABBADYCXAwBCyAAKAI4IABBBmogAEEEahCNAQJAIAAtAFMgACgCPEEYdkYNACAALQBTIAAvAQZBCHZGDQAgACgCVEEbQQAQFCAAQX82AlwMAQsgAEEANgJcCyAAKAJcIQEgAEHgAGokACABQQBICwRAIAVCfzcDSAwICyAFQgA3A0gMBwsgBSAFKAJEIAUoAjwgBSkDMBArIgM3AyAgA0IAUwRAIAUoAiggBSgCRBAXIAVCfzcDSAwHCyAFKAJAIAUoAjwgBSgCPCAFKQMgQQAQfCAFIAUpAyA3A0gMBgsgBUIANwNIDAULIAUgBSgCPDYCHCAFKAIcQQA7ATIgBSgCHCIAIAApAwBCgAGENwMAIAUoAhwpAwBCCINCAFIEQCAFKAIcIgAgACkDIEIMfTcDIAsgBUIANwNIDAQLIAVBfzYCFCAFQQU2AhAgBUEENgIMIAVBAzYCCCAFQQI2AgQgBUEBNgIAIAVBACAFEDQ3A0gMAwsgBSAFKAIoIAUoAjwgBSkDMBBDNwNIDAILIAUoAigQvwEgBUIANwNIDAELIAUoAihBEkEAEBQgBUJ/NwNICyAFKQNIIQMgBUHQAGokACADC+4CAQF/IwBBIGsiBSQAIAUgADYCGCAFIAE2AhQgBSACOwESIAUgAzYCDCAFIAQ2AggCQAJAAkAgBSgCCEUNACAFKAIURQ0AIAUvARJBAUYNAQsgBSgCGEEIakESQQAQFCAFQQA2AhwMAQsgBSgCDEEBcQRAIAUoAhhBCGpBGEEAEBQgBUEANgIcDAELIAVBGBAYIgA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBADYCHAwBCyMAQRBrIgAgBSgCBDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAFKAIEQfis0ZEBNgIMIAUoAgRBic+VmgI2AhAgBSgCBEGQ8dmiAzYCFCAFKAIEQQAgBSgCCCAFKAIIEC6tQQEQfCAFIAUoAhggBSgCFEEDIAUoAgQQYSIANgIAIABFBEAgBSgCBBC/ASAFQQA2AhwMAQsgBSAFKAIANgIcCyAFKAIcIQAgBUEgaiQAIAALBwAgACgCIAu9GAECfyMAQfAAayIEJAAgBCAANgJkIAQgATYCYCAEIAI3A1ggBCADNgJUIAQgBCgCZDYCUAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCVA4UBgcCDAQFCg8AAwkRCxAOCBIBEg0SC0EAQgBBACAEKAJQEEwhACAEKAJQIAA2AhQgAEUEQCAEQn83A2gMEwsgBCgCUCgCFEIANwM4IAQoAlAoAhRCADcDQCAEQgA3A2gMEgsgBCgCUCgCECEBIAQpA1ghAiAEKAJQIQMjAEFAaiIAJAAgACABNgI4IAAgAjcDMCAAIAM2AiwCQCAAKQMwUARAIABBAEIAQQEgACgCLBBMNgI8DAELIAApAzAgACgCOCkDMFYEQCAAKAIsQRJBABAUIABBADYCPAwBCyAAKAI4KAIoBEAgACgCLEEdQQAQFCAAQQA2AjwMAQsgACAAKAI4IAApAzAQwAE3AyAgACAAKQMwIAAoAjgoAgQgACkDIKdBA3RqKQMAfTcDGCAAKQMYUARAIAAgACkDIEIBfTcDICAAIAAoAjgoAgAgACkDIKdBBHRqKQMINwMYCyAAIAAoAjgoAgAgACkDIKdBBHRqKQMIIAApAxh9NwMQIAApAxAgACkDMFYEQCAAKAIsQRxBABAUIABBADYCPAwBCyAAIAAoAjgoAgAgACkDIEIBfEEAIAAoAiwQTCIBNgIMIAFFBEAgAEEANgI8DAELIAAoAgwoAgAgACgCDCkDCEIBfadBBHRqIAApAxg3AwggACgCDCgCBCAAKAIMKQMIp0EDdGogACkDMDcDACAAKAIMIAApAzA3AzAgACgCDAJ+IAAoAjgpAxggACgCDCkDCEIBfVQEQCAAKAI4KQMYDAELIAAoAgwpAwhCAX0LNwMYIAAoAjggACgCDDYCKCAAKAIMIAAoAjg2AiggACgCOCAAKAIMKQMINwMgIAAoAgwgACkDIEIBfDcDICAAIAAoAgw2AjwLIAAoAjwhASAAQUBrJAAgASEAIAQoAlAgADYCFCAARQRAIARCfzcDaAwSCyAEKAJQKAIUIAQpA1g3AzggBCgCUCgCFCAEKAJQKAIUKQMINwNAIARCADcDaAwRCyAEQgA3A2gMEAsgBCgCUCgCEBAyIAQoAlAgBCgCUCgCFDYCECAEKAJQQQA2AhQgBEIANwNoDA8LIAQgBCgCUCAEKAJgIAQpA1gQQzcDaAwOCyAEKAJQKAIQEDIgBCgCUCgCFBAyIAQoAlAQFSAEQgA3A2gMDQsgBCgCUCgCEEIANwM4IAQoAlAoAhBCADcDQCAEQgA3A2gMDAsgBCkDWEL///////////8AVgRAIAQoAlBBEkEAEBQgBEJ/NwNoDAwLIAQoAlAoAhAhASAEKAJgIQMgBCkDWCECIwBBQGoiACQAIAAgATYCNCAAIAM2AjAgACACNwMoIAACfiAAKQMoIAAoAjQpAzAgACgCNCkDOH1UBEAgACkDKAwBCyAAKAI0KQMwIAAoAjQpAzh9CzcDKAJAIAApAyhQBEAgAEIANwM4DAELIAApAyhC////////////AFYEQCAAQn83AzgMAQsgACAAKAI0KQNANwMYIAAgACgCNCkDOCAAKAI0KAIEIAApAxinQQN0aikDAH03AxAgAEIANwMgA0AgACkDICAAKQMoVARAIAACfiAAKQMoIAApAyB9IAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9VARAIAApAyggACkDIH0MAQsgACgCNCgCACAAKQMYp0EEdGopAwggACkDEH0LNwMIIAAoAjAgACkDIKdqIAAoAjQoAgAgACkDGKdBBHRqKAIAIAApAxCnaiAAKQMIpxAZGiAAKQMIIAAoAjQoAgAgACkDGKdBBHRqKQMIIAApAxB9UQRAIAAgACkDGEIBfDcDGAsgACAAKQMIIAApAyB8NwMgIABCADcDEAwBCwsgACgCNCIBIAApAyAgASkDOHw3AzggACgCNCAAKQMYNwNAIAAgACkDIDcDOAsgACkDOCECIABBQGskACAEIAI3A2gMCwsgBEEAQgBBACAEKAJQEEw2AkwgBCgCTEUEQCAEQn83A2gMCwsgBCgCUCgCEBAyIAQoAlAgBCgCTDYCECAEQgA3A2gMCgsgBCgCUCgCFBAyIAQoAlBBADYCFCAEQgA3A2gMCQsgBCAEKAJQKAIQIAQoAmAgBCkDWCAEKAJQEMEBrDcDaAwICyAEIAQoAlAoAhQgBCgCYCAEKQNYIAQoAlAQwQGsNwNoDAcLIAQpA1hCOFQEQCAEKAJQQRJBABAUIARCfzcDaAwHCyAEIAQoAmA2AkggBCgCSBA7IAQoAkggBCgCUCgCDDYCKCAEKAJIIAQoAlAoAhApAzA3AxggBCgCSCAEKAJIKQMYNwMgIAQoAkhBADsBMCAEKAJIQQA7ATIgBCgCSELcATcDACAEQjg3A2gMBgsgBCgCUCAEKAJgKAIANgIMIARCADcDaAwFCyAEQX82AkAgBEETNgI8IARBCzYCOCAEQQ02AjQgBEEMNgIwIARBCjYCLCAEQQ82AiggBEEJNgIkIARBETYCICAEQQg2AhwgBEEHNgIYIARBBjYCFCAEQQU2AhAgBEEENgIMIARBAzYCCCAEQQI2AgQgBEEBNgIAIARBACAEEDQ3A2gMBAsgBCgCUCgCECkDOEL///////////8AVgRAIAQoAlBBHkE9EBQgBEJ/NwNoDAQLIAQgBCgCUCgCECkDODcDaAwDCyAEKAJQKAIUKQM4Qv///////////wBWBEAgBCgCUEEeQT0QFCAEQn83A2gMAwsgBCAEKAJQKAIUKQM4NwNoDAILIAQpA1hC////////////AFYEQCAEKAJQQRJBABAUIARCfzcDaAwCCyAEKAJQKAIUIQEgBCgCYCEDIAQpA1ghAiAEKAJQIQUjAEHgAGsiACQAIAAgATYCVCAAIAM2AlAgACACNwNIIAAgBTYCRAJAIAApA0ggACgCVCkDOCAAKQNIfEL//wN8VgRAIAAoAkRBEkEAEBQgAEJ/NwNYDAELIAAgACgCVCgCBCAAKAJUKQMIp0EDdGopAwA3AyAgACkDICAAKAJUKQM4IAApA0h8VARAIAAgACgCVCkDCCAAKQNIIAApAyAgACgCVCkDOH19Qv//A3xCEIh8NwMYIAApAxggACgCVCkDEFYEQCAAIAAoAlQpAxA3AxAgACkDEFAEQCAAQhA3AxALA0AgACkDECAAKQMYVARAIAAgACkDEEIBhjcDEAwBCwsgACgCVCAAKQMQIAAoAkQQwgFBAXFFBEAgACgCREEOQQAQFCAAQn83A1gMAwsLA0AgACgCVCkDCCAAKQMYVARAQYCABBAYIQEgACgCVCgCACAAKAJUKQMIp0EEdGogATYCACABBEAgACgCVCgCACAAKAJUKQMIp0EEdGpCgIAENwMIIAAoAlQiASABKQMIQgF8NwMIIAAgACkDIEKAgAR8NwMgIAAoAlQoAgQgACgCVCkDCKdBA3RqIAApAyA3AwAMAgUgACgCREEOQQAQFCAAQn83A1gMBAsACwsLIAAgACgCVCkDQDcDMCAAIAAoAlQpAzggACgCVCgCBCAAKQMwp0EDdGopAwB9NwMoIABCADcDOANAIAApAzggACkDSFQEQCAAAn4gACkDSCAAKQM4fSAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVQEQCAAKQNIIAApAzh9DAELIAAoAlQoAgAgACkDMKdBBHRqKQMIIAApAyh9CzcDCCAAKAJUKAIAIAApAzCnQQR0aigCACAAKQMop2ogACgCUCAAKQM4p2ogACkDCKcQGRogACkDCCAAKAJUKAIAIAApAzCnQQR0aikDCCAAKQMofVEEQCAAIAApAzBCAXw3AzALIAAgACkDCCAAKQM4fDcDOCAAQgA3AygMAQsLIAAoAlQiASAAKQM4IAEpAzh8NwM4IAAoAlQgACkDMDcDQCAAKAJUKQM4IAAoAlQpAzBWBEAgACgCVCAAKAJUKQM4NwMwCyAAIAApAzg3A1gLIAApA1ghAiAAQeAAaiQAIAQgAjcDaAwBCyAEKAJQQRxBABAUIARCfzcDaAsgBCkDaCECIARB8ABqJAAgAgsHACAAKAIACxgAQaibAUIANwIAQbCbAUEANgIAQaibAQuGAQIEfwF+IwBBEGsiASQAAkAgACkDMFAEQAwBCwNAAkAgACAFQQAgAUEPaiABQQhqEIoBIgRBf0YNACABLQAPQQNHDQAgAiABKAIIQYCAgIB/cUGAgICAekZqIQILQX8hAyAEQX9GDQEgAiEDIAVCAXwiBSAAKQMwVA0ACwsgAUEQaiQAIAMLC4GNASMAQYAIC4EMaW5zdWZmaWNpZW50IG1lbW9yeQBuZWVkIGRpY3Rpb25hcnkALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABaaXAgYXJjaGl2ZSBpbmNvbnNpc3RlbnQASW52YWxpZCBhcmd1bWVudABpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQAaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0AHVua25vd24gaGVhZGVyIGZsYWdzIHNldABpbnZhbGlkIGRpc3RhbmNlcyBzZXQAaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdABGaWxlIGFscmVhZHkgZXhpc3RzAHRvbyBtYW55IGxlbmd0aCBvciBkaXN0YW5jZSBzeW1ib2xzAGludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMAJXMlcyVzAGJ1ZmZlciBlcnJvcgBObyBlcnJvcgBzdHJlYW0gZXJyb3IAVGVsbCBlcnJvcgBJbnRlcm5hbCBlcnJvcgBTZWVrIGVycm9yAFdyaXRlIGVycm9yAGZpbGUgZXJyb3IAUmVhZCBlcnJvcgBabGliIGVycm9yAGRhdGEgZXJyb3IAQ1JDIGVycm9yAGluY29tcGF0aWJsZSB2ZXJzaW9uAG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){yr(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var T=ee.toString();throw P("failed to compile wasm module: "+T),(T.includes("imported Memory")||T.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function bp(){var f={a:da};function E(L,T){var ee=L.exports;t.asm=ee,A=t.asm.u,Lr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Sr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Nn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Nn.GMTString||(Nn.GMTString=ye("GMT")),de[E+40>>2]=Nn.GMTString,E}function ae(f,E){return Nn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Tl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){yr("randomDevice")}}var Tn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:Q.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Tn.resolve(f).substr(1),E=Tn.resolve(E).substr(1);function w(it){for(var at=0;at<it.length&&it[at]==="";at++);for(var Ue=it.length-1;Ue>=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),T=Math.min(k.length,L.length),ee=T,Ie=0;Ie<T;Ie++)if(k[Ie]!==L[Ie]){ee=Ie;break}for(var Oe=[],Ie=ee;Ie<k.length;Ie++)Oe.push("..");return Oe=Oe.concat(L.slice(ee)),Oe.join("/")}},ns={ttys:[],init:function(){},shutdown:function(){},register:function(f,E){ns.ttys[f]={input:[],output:[],ops:E},Q.registerDevice(f,ns.stream_ops)},stream_ops:{open:function(f){var E=ns.ttys[f.node.rdev];if(!E)throw new Q.ErrnoError(43);f.tty=E,f.seekable=!1},close:function(f){f.tty.ops.flush(f.tty)},flush:function(f){f.tty.ops.flush(f.tty)},read:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.get_char)throw new Q.ErrnoError(60);for(var T=0,ee=0;ee<k;ee++){var Ie;try{Ie=f.tty.ops.get_char(f.tty)}catch{throw new Q.ErrnoError(29)}if(Ie===void 0&&T===0)throw new Q.ErrnoError(6);if(Ie==null)break;T++,E[w+ee]=Ie}return T&&(f.node.timestamp=Date.now()),T},write:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.put_char)throw new Q.ErrnoError(60);try{for(var T=0;T<k;T++)f.tty.ops.put_char(f.tty,E[w+T])}catch{throw new Q.ErrnoError(29)}return k&&(f.node.timestamp=Date.now()),T}},default_tty_ops:{get_char:function(f){if(!f.input.length){var E=null;if(g){var w=256,k=Buffer.alloc?Buffer.alloc(w):new Buffer(w),L=0;try{L=y.readSync(process.stdin.fd,k,0,w,null)}catch(T){if(T.toString().includes("EOF"))L=0;else throw T}L>0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` `)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f<E;)ie[w+f++]=0;return w}var ut={ops_table:null,mount:function(f){return ut.createNode(null,"/",16895,0)},createNode:function(f,E,w,k){if(b.isBlkdev(w)||b.isFIFO(w))throw new b.ErrnoError(63);ut.ops_table||(ut.ops_table={dir:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,lookup:ut.node_ops.lookup,mknod:ut.node_ops.mknod,rename:ut.node_ops.rename,unlink:ut.node_ops.unlink,rmdir:ut.node_ops.rmdir,readdir:ut.node_ops.readdir,symlink:ut.node_ops.symlink},stream:{llseek:ut.stream_ops.llseek}},file:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:{llseek:ut.stream_ops.llseek,read:ut.stream_ops.read,write:ut.stream_ops.write,allocate:ut.stream_ops.allocate,mmap:ut.stream_ops.mmap,msync:ut.stream_ops.msync}},link:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,readlink:ut.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:b.chrdev_stream_ops}});var L=b.createNode(f,E,w,k);return b.isDir(L.mode)?(L.node_ops=ut.ops_table.dir.node,L.stream_ops=ut.ops_table.dir.stream,L.contents={}):b.isFile(L.mode)?(L.node_ops=ut.ops_table.file.node,L.stream_ops=ut.ops_table.file.stream,L.usedBytes=0,L.contents=null):b.isLink(L.mode)?(L.node_ops=ut.ops_table.link.node,L.stream_ops=ut.ops_table.link.stream):b.isChrdev(L.mode)&&(L.node_ops=ut.ops_table.chrdev.node,L.stream_ops=ut.ops_table.chrdev.stream),L.timestamp=Date.now(),f&&(f.contents[E]=L,f.timestamp=L.timestamp),L},getFileDataAsTypedArray:function(f){return f.contents?f.contents.subarray?f.contents.subarray(0,f.usedBytes):new Uint8Array(f.contents):new Uint8Array(0)},expandFileStorage:function(f,E){var w=f.contents?f.contents.length:0;if(!(w>=E)){var k=1024*1024;E=Math.max(E,w*(w<k?2:1.125)>>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=b.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,b.isDir(f.mode)?E.size=4096:b.isFile(f.mode)?E.size=f.usedBytes:b.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw b.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(b.isDir(f.mode)){var k;try{k=b.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new b.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=b.lookupNode(f,E);for(var k in w.contents)throw new b.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!b.isLink(f.mode))throw new b.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var N=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&N.subarray)E.set(N.subarray(L,L+ee),w);else for(var Ie=0;Ie<ee;Ie++)E[w+Ie]=N[L+Ie];return ee},write:function(f,E,w,k,L,N){if(E.buffer===ie.buffer&&(N=!1),!k)return 0;var ee=f.node;if(ee.timestamp=Date.now(),E.subarray&&(!ee.contents||ee.contents.subarray)){if(N)return ee.contents=E.subarray(w,w+k),ee.usedBytes=k,k;if(ee.usedBytes===0&&L===0)return ee.contents=E.slice(w,w+k),ee.usedBytes=k,k;if(L+k<=ee.usedBytes)return ee.contents.set(E.subarray(w,w+k),L),k}if(ut.expandFileStorage(ee,L+k),ee.contents.subarray&&E.subarray)ee.contents.set(E.subarray(w,w+k),L);else for(var Ie=0;Ie<k;Ie++)ee.contents[L+Ie]=E[w+Ie];return ee.usedBytes=Math.max(ee.usedBytes,L+k),k},llseek:function(f,E,w){var k=E;if(w===1?k+=f.position:w===2&&b.isFile(f.node.mode)&&(k+=f.node.usedBytes),k<0)throw new b.ErrnoError(28);return k},allocate:function(f,E,w){ut.expandFileStorage(f.node,E+w),f.node.usedBytes=Math.max(f.node.usedBytes,E+w)},mmap:function(f,E,w,k,L,N){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee,Ie,Oe=f.node.contents;if(!(N&2)&&Oe.buffer===Ye)Ie=!1,ee=Oe.byteOffset;else{if((k>0||k+w<Oe.length)&&(Oe.subarray?Oe=Oe.subarray(k,k+w):Oe=Array.prototype.slice.call(Oe,k,k+w)),Ie=!0,ee=ss(w),!ee)throw new b.ErrnoError(48);ie.set(Oe,ee)}return{ptr:ee,allocated:Ie}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var N=ut.stream_ops.write(f,E,0,k,w,!1);return 0}}},wo={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},At={isWindows:!1,staticInit:function(){At.isWindows=!!process.platform.match(/^win/);var f={fs:Te.constants};f.fs&&(f=f.fs),At.flagsForNodeMap={1024:f.O_APPEND,64:f.O_CREAT,128:f.O_EXCL,256:f.O_NOCTTY,0:f.O_RDONLY,2:f.O_RDWR,4096:f.O_SYNC,512:f.O_TRUNC,1:f.O_WRONLY}},bufferFrom:function(f){return Buffer.alloc?Buffer.from(f):new Buffer(f)},convertNodeCode:function(f){var E=f.code;return wo[E]},mount:function(f){return At.createNode(null,"/",At.getMode(f.opts.root),0)},createNode:function(f,E,w,k){if(!b.isDir(w)&&!b.isFile(w)&&!b.isLink(w))throw new b.ErrnoError(28);var L=b.createNode(f,E,w);return L.node_ops=At.node_ops,L.stream_ops=At.stream_ops,L},getMode:function(f){var E;try{E=Te.lstatSync(f),At.isWindows&&(E.mode=E.mode|(E.mode&292)>>2)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new b.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Te.lstatSync(E)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Te.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Te.utimesSync(w,k,k)}E.size!==void 0&&Te.truncateSync(w,E.size)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),N=At.realPath(L);try{b.isDir(L.mode)?Te.mkdirSync(N,L.mode):Te.writeFileSync(N,"",{mode:L.mode})}catch(ee){throw ee.code?new b.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Te.renameSync(k,L)}catch(N){throw N.code?new b.ErrnoError(At.convertNodeCode(N)):N}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.unlinkSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Te.rmdirSync(w)}catch(k){throw k.code?new b.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Te.readdirSync(E)}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Te.symlinkSync(w,k)}catch(L){throw L.code?new b.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Te.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{b.isFile(f.node.mode)&&(f.nfd=Te.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new b.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{b.isFile(f.node.mode)&&f.nfd&&Te.closeSync(f.nfd)}catch(E){throw E.code?new b.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},write:function(f,E,w,k,L){try{return Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&b.isFile(f.node.mode))try{var L=Te.fstatSync(f.nfd);k+=L.size}catch(N){throw new b.ErrnoError(At.convertNodeCode(N))}if(k<0)throw new b.ErrnoError(28);return k},mmap:function(f,E,w,k,L,N){if(E!==0)throw new b.ErrnoError(28);if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!b.isFile(f.node.mode))throw new b.ErrnoError(43);if(L&2)return 0;var N=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},ln={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){b.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)b.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){b.isDir(f)?Te.mkdirSync(f,E):Te.writeFileSync(f,"",{mode:E})},mkdir:function(){Te.mkdirSync.apply(void 0,arguments)},symlink:function(){Te.symlinkSync.apply(void 0,arguments)},rename:function(){Te.renameSync.apply(void 0,arguments)},rmdir:function(){Te.rmdirSync.apply(void 0,arguments)},readdir:function(){Te.readdirSync.apply(void 0,arguments)},unlink:function(){Te.unlinkSync.apply(void 0,arguments)},readlink:function(){return Te.readlinkSync.apply(void 0,arguments)},stat:function(){return Te.statSync.apply(void 0,arguments)},lstat:function(){return Te.lstatSync.apply(void 0,arguments)},chmod:function(){Te.chmodSync.apply(void 0,arguments)},fchmod:function(){Te.fchmodSync.apply(void 0,arguments)},chown:function(){Te.chownSync.apply(void 0,arguments)},fchown:function(){Te.fchownSync.apply(void 0,arguments)},truncate:function(){Te.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new b.ErrnoError(28);Te.ftruncateSync.apply(void 0,arguments)},utime:function(){Te.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Te.openSync(f,At.flagsForNode(E),w),N=k!=null?k:b.nextfd(L),ee={fd:N,nfd:L,position:0,path:f,flags:E,seekable:!0};return b.streams[N]=ee,ee},close:function(f){f.stream_ops||Te.closeSync(f.nfd),b.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Te.fstatSync(f.nfd).size;else if(w!==0)throw new b.ErrnoError(wo.EINVAL);if(k<0)throw new b.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&b.llseek(f,0,+"2");var N=typeof L<"u";!N&&f.seekable&&(L=f.position);var ee=Te.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return N||(f.position+=ee),ee},allocate:function(){throw new b.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,N){if(f.stream_ops)return Us.mmap(f,E,w,k,L,N);if(E!==0)throw new b.ErrnoError(28);var ee=ss(w);return b.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||b.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new b.ErrnoError(wo.ENOTTY)}},b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Nn.resolve(b.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new b.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),N=b.root,ee="/",Ie=0;Ie<L.length;Ie++){var Oe=Ie===L.length-1;if(Oe&&E.parent)break;if(N=b.lookupNode(N,L[Ie]),ee=yt.join2(ee,L[Ie]),b.isMountpoint(N)&&(!Oe||Oe&&E.follow_mount)&&(N=N.mounted.root),!Oe||E.follow)for(var it=0;b.isLink(N.mode);){var at=b.readlink(ee);ee=Nn.resolve(yt.dirname(ee),at);var Ue=b.lookupPath(ee,{recurse_count:E.recurse_count});if(N=Ue.node,it++>40)throw new b.ErrnoError(32)}}return{path:ee,node:N}},getPath:function(f){for(var E;;){if(b.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k<E.length;k++)w=(w<<5)-w+E.charCodeAt(k)|0;return(f+w>>>0)%b.nameTable.length},hashAddNode:function(f){var E=b.hashName(f.parent.id,f.name);f.name_next=b.nameTable[E],b.nameTable[E]=f},hashRemoveNode:function(f){var E=b.hashName(f.parent.id,f.name);if(b.nameTable[E]===f)b.nameTable[E]=f.name_next;else for(var w=b.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=b.mayLookup(f);if(w)throw new b.ErrnoError(w,f);for(var k=b.hashName(f.id,E),L=b.nameTable[k];L;L=L.name_next){var N=L.name;if(L.parent.id===f.id&&N===E)return L}return b.lookup(f,E)},createNode:function(f,E,w,k){var L=new b.FSNode(f,E,w,k);return b.hashAddNode(L),L},destroyNode:function(f){b.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=b.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return b.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=b.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=b.lookupNode(f,E);return 20}catch{}return b.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=b.lookupNode(f,E)}catch(N){return N.errno}var L=b.nodePermissions(f,"wx");if(L)return L;if(w){if(!b.isDir(k.mode))return 54;if(b.isRoot(k)||b.getPath(k)===b.cwd())return 10}else if(b.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?b.isLink(f.mode)?32:b.isDir(f.mode)&&(b.flagsToPermissionString(E)!=="r"||E&512)?31:b.nodePermissions(f,b.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||b.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!b.streams[w])return w;throw new b.ErrnoError(33)},getStream:function(f){return b.streams[f]},createStream:function(f,E,w){b.FSStream||(b.FSStream=function(){},b.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new b.FSStream;for(var L in f)k[L]=f[L];f=k;var N=b.nextfd(E,w);return f.fd=N,b.streams[N]=f,f},closeStream:function(f){b.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=b.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new b.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){b.devices[f]={stream_ops:E}},getDevice:function(f){return b.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),b.syncFSRequests++,b.syncFSRequests>1&&P("warning: "+b.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=b.getMounts(b.root.mount),k=0;function L(ee){return b.syncFSRequests--,E(ee)}function N(ee){if(ee)return N.errored?void 0:(N.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return N(null);ee.type.syncfs(ee,f,N)})},mount:function(f,E,w){var k=w==="/",L=!w,N;if(k&&b.root)throw new b.ErrnoError(10);if(!k&&!L){var ee=b.lookupPath(w,{follow_mount:!1});if(w=ee.path,N=ee.node,b.isMountpoint(N))throw new b.ErrnoError(10);if(!b.isDir(N.mode))throw new b.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?b.root=Oe:N&&(N.mounted=Ie,N.mount&&N.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=b.lookupPath(f,{follow_mount:!1});if(!b.isMountpoint(E.node))throw new b.ErrnoError(28);var w=E.node,k=w.mounted,L=b.getMounts(k);Object.keys(b.nameTable).forEach(function(ee){for(var Ie=b.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&b.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var N=w.mount.mounts.indexOf(k);w.mount.mounts.splice(N,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=b.lookupPath(f,{parent:!0}),L=k.node,N=yt.basename(f);if(!N||N==="."||N==="..")throw new b.ErrnoError(28);var ee=b.mayCreate(L,N);if(ee)throw new b.ErrnoError(ee);if(!L.node_ops.mknod)throw new b.ErrnoError(63);return L.node_ops.mknod(L,N,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,b.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,b.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L<w.length;++L)if(!!w[L]){k+="/"+w[L];try{b.mkdir(k,E)}catch(N){if(N.errno!=20)throw N}}},mkdev:function(f,E,w){return typeof w>"u"&&(w=E,E=438),E|=8192,b.mknod(f,E,w)},symlink:function(f,E){if(!Nn.resolve(f))throw new b.ErrnoError(44);var w=b.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new b.ErrnoError(44);var L=yt.basename(E),N=b.mayCreate(k,L);if(N)throw new b.ErrnoError(N);if(!k.node_ops.symlink)throw new b.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),N=yt.basename(E),ee,Ie,Oe;if(ee=b.lookupPath(f,{parent:!0}),Ie=ee.node,ee=b.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new b.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new b.ErrnoError(75);var it=b.lookupNode(Ie,L),at=Nn.relative(f,k);if(at.charAt(0)!==".")throw new b.ErrnoError(28);if(at=Nn.relative(E,w),at.charAt(0)!==".")throw new b.ErrnoError(55);var Ue;try{Ue=b.lookupNode(Oe,N)}catch{}if(it!==Ue){var Ve=b.isDir(it.mode),nt=b.mayDelete(Ie,L,Ve);if(nt)throw new b.ErrnoError(nt);if(nt=Ue?b.mayDelete(Oe,N,Ve):b.mayCreate(Oe,N),nt)throw new b.ErrnoError(nt);if(!Ie.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(it)||Ue&&b.isMountpoint(Ue))throw new b.ErrnoError(10);if(Oe!==Ie&&(nt=b.nodePermissions(Ie,"w"),nt))throw new b.ErrnoError(nt);try{b.trackingDelegate.willMovePath&&b.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}b.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,N)}catch(wt){throw wt}finally{b.hashAddNode(it)}try{b.trackingDelegate.onMovePath&&b.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!0);if(N)throw new b.ErrnoError(N);if(!w.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=b.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new b.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=b.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=b.lookupNode(w,k),N=b.mayDelete(w,k,!1);if(N)throw new b.ErrnoError(N);if(!w.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(L))throw new b.ErrnoError(10);try{b.trackingDelegate.willDeletePath&&b.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),b.destroyNode(L);try{b.trackingDelegate.onDeletePath&&b.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=b.lookupPath(f),w=E.node;if(!w)throw new b.ErrnoError(44);if(!w.node_ops.readlink)throw new b.ErrnoError(28);return Nn.resolve(b.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=b.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new b.ErrnoError(44);if(!k.node_ops.getattr)throw new b.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return b.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=b.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new b.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){b.chmod(f,E,!0)},fchmod:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);b.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var N=b.lookupPath(f,{follow:!k});L=N.node}else L=f;if(!L.node_ops.setattr)throw new b.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){b.chown(f,E,w,!0)},fchown:function(f,E,w){var k=b.getStream(f);if(!k)throw new b.ErrnoError(8);b.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new b.ErrnoError(28);var w;if(typeof f=="string"){var k=b.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(w.mode))throw new b.ErrnoError(31);if(!b.isFile(w.mode))throw new b.ErrnoError(28);var L=b.nodePermissions(w,"w");if(L)throw new b.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=b.getStream(f);if(!w)throw new b.ErrnoError(8);if((w.flags&2097155)===0)throw new b.ErrnoError(28);b.truncate(w.node,E)},utime:function(f,E,w){var k=b.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new b.ErrnoError(44);E=typeof E=="string"?b.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var N;if(typeof f=="object")N=f;else{f=yt.normalize(f);try{var ee=b.lookupPath(f,{follow:!(E&131072)});N=ee.node}catch{}}var Ie=!1;if(E&64)if(N){if(E&128)throw new b.ErrnoError(20)}else N=b.mknod(f,w,0),Ie=!0;if(!N)throw new b.ErrnoError(44);if(b.isChrdev(N.mode)&&(E&=-513),E&65536&&!b.isDir(N.mode))throw new b.ErrnoError(54);if(!Ie){var Oe=b.mayOpen(N,E);if(Oe)throw new b.ErrnoError(Oe)}E&512&&b.truncate(N,0),E&=-131713;var it=b.createStream({node:N,path:b.getPath(N),flags:E,seekable:!0,position:0,stream_ops:N.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(b.readFiles||(b.readFiles={}),f in b.readFiles||(b.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(b.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=b.tracking.openFlags.READ),(E&2097155)!==0&&(at|=b.tracking.openFlags.WRITE),b.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(b.isClosed(f))throw new b.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{b.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new b.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new b.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===1)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.read)throw new b.ErrnoError(28);var N=typeof L<"u";if(!N)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return N||(f.position+=ee),ee},write:function(f,E,w,k,L,N){if(k<0||L<0)throw new b.ErrnoError(28);if(b.isClosed(f))throw new b.ErrnoError(8);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(b.isDir(f.node.mode))throw new b.ErrnoError(31);if(!f.stream_ops.write)throw new b.ErrnoError(28);f.seekable&&f.flags&1024&&b.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new b.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,N);ee||(f.position+=Ie);try{f.path&&b.trackingDelegate.onWriteToFile&&b.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(b.isClosed(f))throw new b.ErrnoError(8);if(E<0||w<=0)throw new b.ErrnoError(28);if((f.flags&2097155)===0)throw new b.ErrnoError(8);if(!b.isFile(f.node.mode)&&!b.isDir(f.node.mode))throw new b.ErrnoError(43);if(!f.stream_ops.allocate)throw new b.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,N){if((L&2)!==0&&(N&2)===0&&(f.flags&2097155)!==2)throw new b.ErrnoError(2);if((f.flags&2097155)===1)throw new b.ErrnoError(2);if(!f.stream_ops.mmap)throw new b.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,N)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new b.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=b.open(f,E.flags),L=b.stat(f),N=L.size,ee=new Uint8Array(N);return b.read(k,ee,0,N,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),b.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=b.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),N=Re(E,L,0,L.length);b.write(k,L,0,N,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))b.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");b.close(k)},cwd:function(){return b.currentPath},chdir:function(f){var E=b.lookupPath(f,{follow:!0});if(E.node===null)throw new b.ErrnoError(44);if(!b.isDir(E.node.mode))throw new b.ErrnoError(54);var w=b.nodePermissions(E.node,"x");if(w)throw new b.ErrnoError(w);b.currentPath=E.path},createDefaultDirectories:function(){b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:function(){b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,N){return L}}),b.mkdev("/dev/null",b.makedev(1,3)),ns.register(b.makedev(5,0),ns.default_tty_ops),ns.register(b.makedev(6,0),ns.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var f=Nl();b.createDevice("/dev","random",f),b.createDevice("/dev","urandom",f),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){b.mkdir("/proc");var f=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:function(){var E=b.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,N=b.getStream(L);if(!N)throw new b.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return N.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?b.createDevice("/dev","stdin",t.stdin):b.symlink("/dev/tty","/dev/stdin"),t.stdout?b.createDevice("/dev","stdout",null,t.stdout):b.symlink("/dev/tty","/dev/stdout"),t.stderr?b.createDevice("/dev","stderr",null,t.stderr):b.symlink("/dev/tty1","/dev/stderr");var f=b.open("/dev/stdin",0),E=b.open("/dev/stdout",1),w=b.open("/dev/stderr",1)},ensureErrnoError:function(){b.ErrnoError||(b.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(function(f){b.genericErrors[f]=new b.ErrnoError(f),b.genericErrors[f].stack="<generic error, no stack>"}))},staticInit:function(){b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(ut,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){b.init.initialized=!0,b.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,b.createStandardStreams()},quit:function(){b.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;E<b.streams.length;E++){var w=b.streams[E];!w||b.close(w)}},getMode:function(f,E){var w=0;return f&&(w|=365),E&&(w|=146),w},findObject:function(f,E){var w=b.analyzePath(f,E);return w.exists?w.object:null},analyzePath:function(f,E){try{var w=b.lookupPath(f,{follow:!E});f=w.path}catch{}var k={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var w=b.lookupPath(f,{parent:!0});k.parentExists=!0,k.parentPath=w.path,k.parentObject=w.node,k.name=yt.basename(f),w=b.lookupPath(f,{follow:!E}),k.exists=!0,k.path=w.path,k.object=w.node,k.name=w.node.name,k.isRoot=w.path==="/"}catch(L){k.error=L.errno}return k},createPath:function(f,E,w,k){f=typeof f=="string"?f:b.getPath(f);for(var L=E.split("/").reverse();L.length;){var N=L.pop();if(!!N){var ee=yt.join2(f,N);try{b.mkdir(ee)}catch{}f=ee}}return ee},createFile:function(f,E,w,k,L){var N=yt.join2(typeof f=="string"?f:b.getPath(f),E),ee=b.getMode(k,L);return b.create(N,ee)},createDataFile:function(f,E,w,k,L,N){var ee=E?yt.join2(typeof f=="string"?f:b.getPath(f),E):f,Ie=b.getMode(k,L),Oe=b.create(ee,Ie);if(w){if(typeof w=="string"){for(var it=new Array(w.length),at=0,Ue=w.length;at<Ue;++at)it[at]=w.charCodeAt(at);w=it}b.chmod(Oe,Ie|146);var Ve=b.open(Oe,577);b.write(Ve,w,0,w.length,0,N),b.close(Ve),b.chmod(Oe,Ie)}return Oe},createDevice:function(f,E,w,k){var L=yt.join2(typeof f=="string"?f:b.getPath(f),E),N=b.getMode(!!w,!!k);b.createDevice.major||(b.createDevice.major=64);var ee=b.makedev(b.createDevice.major++,0);return b.registerDevice(ee,{open:function(Ie){Ie.seekable=!1},close:function(Ie){k&&k.buffer&&k.buffer.length&&k(10)},read:function(Ie,Oe,it,at,Ue){for(var Ve=0,nt=0;nt<at;nt++){var wt;try{wt=w()}catch{throw new b.ErrnoError(29)}if(wt===void 0&&Ve===0)throw new b.ErrnoError(6);if(wt==null)break;Ve++,Oe[it+nt]=wt}return Ve&&(Ie.node.timestamp=Date.now()),Ve},write:function(Ie,Oe,it,at,Ue){for(var Ve=0;Ve<at;Ve++)try{k(Oe[it+Ve])}catch{throw new b.ErrnoError(29)}return at&&(Ie.node.timestamp=Date.now()),Ve}}),b.mkdev(L,N,ee)},forceLoadFile:function(f){if(f.isDevice||f.isFolder||f.link||f.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(d)try{f.contents=wA(d(f.url),!0),f.usedBytes=f.contents.length}catch{throw new b.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(f,E,w,k,L){function N(){this.lengthKnown=!1,this.chunks=[]}if(N.prototype.get=function(Ve){if(!(Ve>this.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},N.prototype.setDataGetter=function(Ve){this.getter=Ve},N.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",un=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var vr=new XMLHttpRequest;if(vr.open("GET",w,!1),nt!==ii&&vr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(vr.responseType="arraybuffer"),vr.overrideMimeType&&vr.overrideMimeType("text/plain; charset=x-user-defined"),vr.send(null),!(vr.status>=200&&vr.status<300||vr.status===304))throw new Error("Couldn't load "+w+". Status: "+vr.status);return vr.response!==void 0?new Uint8Array(vr.response||[]):wA(vr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,vr=(On+1)*ii-1;if(vr=Math.min(vr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,vr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(un||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new N;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=b.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return b.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,un){b.forceLoadFile(Oe);var ii=Ve.node.contents;if(un>=ii.length)return 0;var Be=Math.min(ii.length-un,Ii);if(ii.slice)for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii[un+yi];else for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii.get(un+yi);return Be},Oe.stream_ops=it,Oe},createPreloadedFile:function(f,E,w,k,L,N,ee,Ie,Oe,it){Browser.init();var at=E?Nn.resolve(yt.join2(f,E)):f,Ue="cp "+at;function Ve(nt){function wt(un){it&&it(),Ie||b.createDataFile(f,E,un,k,L,Oe),N&&N(),IA(Ue)}var Ii=!1;t.preloadPlugins.forEach(function(un){Ii||un.canHandle(at)&&(un.handle(nt,at,wt,function(){ee&&ee(),IA(Ue)}),Ii=!0)}),Ii||wt(nt)}EA(Ue),typeof w=="string"?Browser.asyncLoad(w,function(nt){Ve(nt)},ee):Ve(w)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=b.indexedDB();try{var L=k.open(b.DB_NAME(),b.DB_VERSION)}catch(N){return w(N)}L.onupgradeneeded=function(){S("creating db");var ee=L.result;ee.createObjectStore(b.DB_STORE_NAME)},L.onsuccess=function(){var ee=L.result,Ie=ee.transaction([b.DB_STORE_NAME],"readwrite"),Oe=Ie.objectStore(b.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.put(b.analyzePath(nt).object.contents,nt);wt.onsuccess=function(){it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w},loadFilesFromDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=b.indexedDB();try{var L=k.open(b.DB_NAME(),b.DB_VERSION)}catch(N){return w(N)}L.onupgradeneeded=w,L.onsuccess=function(){var ee=L.result;try{var Ie=ee.transaction([b.DB_STORE_NAME],"readonly")}catch(nt){w(nt);return}var Oe=Ie.objectStore(b.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.get(nt);wt.onsuccess=function(){b.analyzePath(nt).exists&&b.unlink(nt),b.createDataFile(yt.dirname(nt),yt.basename(nt),wt.result,!0,!0,!0),it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w}},Tt={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(f,E,w){if(E[0]==="/")return E;var k;if(f===-100)k=b.cwd();else{var L=b.getStream(f);if(!L)throw new b.ErrnoError(8);k=L.path}if(E.length==0){if(!w)throw new b.ErrnoError(44);return k}return yt.join2(k,E)},doStat:function(f,E,w){try{var k=f(E)}catch(L){if(L&&L.node&&yt.normalize(E)!==yt.normalize(b.getPath(L.node)))return-54;throw L}return de[w>>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Sr=k.size,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Sr=k.ino,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var N=j.slice(f,f+w);b.msync(E,N,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),b.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return b.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=b.readlink(f),L=Math.min(w,Ae(k)),N=ie[E+L];return se(k,E,w+1),ie[E+L]=N,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=b.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&b.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=b.getStream(w);return k&&b.close(k),b.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,N=0;N<w;N++){var ee=de[E+N*8>>2],Ie=de[E+(N*8+4)>>2],Oe=b.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe<Ie)break}return L},doWritev:function(f,E,w,k){for(var L=0,N=0;N<w;N++){var ee=de[E+N*8>>2],Ie=de[E+(N*8+4)>>2],Oe=b.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Tt.varargs+=4;var f=de[Tt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=b.getStream(f);if(!E)throw new b.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Tt.getStr(f),b.chmod(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function bp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 0:{var L=Tt.get();if(L<0)return-28;var N;return N=b.open(k.path,k.flags,0,L),N.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Tt.get();return k.flags|=L,0}case 12:{var L=Tt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof b>"u"||!(Ie instanceof b.ErrnoError))&&yr(Ie),-Ie.errno}}function Sp(f,E){try{var w=Tt.getStreamFromFD(f);return Tt.doStat(b.stat,w.path,E)}catch(k){return(typeof b>"u"||!(k instanceof b.ErrnoError))&&yr(k),-k.errno}}function vp(f,E,w){Tt.varargs=w;try{var k=Tt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Tt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Tt.get();return b.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:yr("bad ioctl syscall "+E)}}catch(N){return(typeof b>"u"||!(N instanceof b.ErrnoError))&&yr(N),-N.errno}}function xp(f,E,w){Tt.varargs=w;try{var k=Tt.getStr(f),L=w?Tt.get():0,N=b.open(k,E,L);return N.fd}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),-ee.errno}}function Pp(f,E){try{return f=Tt.getStr(f),E=Tt.getStr(E),b.rename(f,E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function G(f){try{return f=Tt.getStr(f),b.rmdir(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function Et(f,E){try{return f=Tt.getStr(f),Tt.doStat(b.stat,f,E)}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),-w.errno}}function yA(f){try{return f=Tt.getStr(f),b.unlink(f),0}catch(E){return(typeof b>"u"||!(E instanceof b.ErrnoError))&&yr(E),-E.errno}}function zi(f,E,w){j.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Lr(A.buffer),1}catch{}}function ze(f){var E=j.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var N=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(N);if(ee)return!0}return!1}function fa(f){try{var E=Tt.getStreamFromFD(f);return b.close(E),0}catch(w){return(typeof b>"u"||!(w instanceof b.ErrnoError))&&yr(w),w.errno}}function dg(f,E){try{var w=Tt.getStreamFromFD(f),k=w.tty?2:b.isDir(w.mode)?3:b.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof b>"u"||!(L instanceof b.ErrnoError))&&yr(L),L.errno}}function OE(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doReadv(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function kp(f,E,w,k,L){try{var N=Tt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(b.llseek(N,Ie,k),Ri=[N.position>>>0,(Sr=N.position,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],N.getdents&&Ie===0&&k===0&&(N.getdents=null),0)}catch(it){return(typeof b>"u"||!(it instanceof b.ErrnoError))&&yr(it),it.errno}}function ME(f,E,w,k){try{var L=Tt.getStreamFromFD(f),N=Tt.doWritev(L,E,w);return de[k>>2]=N,0}catch(ee){return(typeof b>"u"||!(ee instanceof b.ErrnoError))&&yr(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),N=Math.max(k,L);de[eS()>>2]=N*60,de[GE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L<k?(de[ql()>>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=b.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,cn=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&cn)===cn},set:function(f){f?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ks,b.staticInit(),g){var Te=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new b.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},b);for(var Ul in ln)b[Ul]=Kl(ln[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),N=Re(f,L,0,L.length);return E&&(L.length=N),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,N,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,N=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(N));while(at<f.length);return w};function Eg(f){if(typeof g=="boolean"&&g){var E;try{E=Buffer.from(f,"base64")}catch{E=new Buffer(f,"base64")}return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}try{for(var w=mg(f),k=new Uint8Array(w.length),L=0;L<w.length;++L)k[L]=w.charCodeAt(L);return k}catch{throw new Error("Converting base64 string to bytes failed.")}}function pa(f){if(!!fg(f))return Eg(f.slice(Tl.length))}var da={s:ae,p:pg,e:bp,k:Sp,o:vp,q:xp,i:Pp,r:G,c:Et,h:yA,l:zi,m:ze,f:fa,j:dg,g:OE,n:kp,d:ME,a:sr,b:Ln,t:Dp},tt=Qp(),Bo=t.___wasm_call_ctors=tt.v,BA=t._zip_ext_count_symlinks=tt.w,Rp=t._zip_file_get_external_attributes=tt.x,Ca=t._zipstruct_stat=tt.y,Hl=t._zipstruct_statS=tt.z,Gl=t._zipstruct_stat_name=tt.A,QA=t._zipstruct_stat_index=tt.B,ma=t._zipstruct_stat_size=tt.C,Fp=t._zipstruct_stat_mtime=tt.D,KE=t._zipstruct_stat_crc=tt.E,jl=t._zipstruct_error=tt.F,UE=t._zipstruct_errorS=tt.G,Tp=t._zipstruct_error_code_zip=tt.H,Yl=t._zipstruct_stat_comp_size=tt.I,Or=t._zipstruct_stat_comp_method=tt.J,HE=t._zip_close=tt.K,Hs=t._zip_delete=tt.L,Gs=t._zip_dir_add=tt.M,Ig=t._zip_discard=tt.N,bA=t._zip_error_init_with_code=tt.O,D=t._zip_get_error=tt.P,Y=t._zip_file_get_error=tt.Q,pe=t._zip_error_strerror=tt.R,Le=t._zip_fclose=tt.S,ke=t._zip_file_add=tt.T,Je=t._free=tt.U,pt=t._malloc=tt.V,Xt=t.___errno_location=tt.W,Ea=t._zip_source_error=tt.X,D1=t._zip_source_seek=tt.Y,js=t._zip_file_set_external_attributes=tt.Z,yg=t._zip_file_set_mtime=tt._,Jb=t._zip_fopen=tt.$,R1=t._zip_fopen_index=tt.aa,F1=t._zip_fread=tt.ba,Wb=t._zip_get_name=tt.ca,T1=t._zip_get_num_entries=tt.da,N1=t._zip_source_read=tt.ea,zb=t._zip_name_locate=tt.fa,L1=t._zip_open=tt.ga,O1=t._zip_open_from_source=tt.ha,Vb=t._zip_set_file_compression=tt.ia,M1=t._zip_source_buffer=tt.ja,K1=t._zip_source_buffer_create=tt.ka,Xb=t._zip_source_close=tt.la,U1=t._zip_source_free=tt.ma,H1=t._zip_source_keep=tt.na,G1=t._zip_source_open=tt.oa,j1=t._zip_source_set_mtime=tt.qa,Zb=t._zip_source_tell=tt.ra,_b=t._zip_stat=tt.sa,$b=t._zip_stat_index=tt.ta,ql=t.__get_tzname=tt.ua,GE=t.__get_daylight=tt.va,eS=t.__get_timezone=tt.wa,tS=t.stackSave=tt.xa,rS=t.stackRestore=tt.ya,jE=t.stackAlloc=tt.za;t.cwrap=ce,t.getValue=Z;var Jl;ga=function f(){Jl||wg(),Jl||(ga=f)};function wg(f){if(f=f||a,is>0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function bDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t<i;)n[t]=e(r[t],t,r);return n}k9.exports=bDe});var Ss=I((iot,R9)=>{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Tc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,T9=F9?F9.prototype:void 0,N9=T9?T9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return N9?N9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i<n;)s[i]=r[i+e];return s}U9.exports=FDe});var G9=I((aot,H9)=>{var TDe=HR();function NDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:TDe(r,e,t)}H9.exports=NDe});var GR=I((Aot,j9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",GDe="\\u200d",jDe=RegExp("["+GDe+LDe+UDe+HDe+"]");function YDe(r){return jDe.test(r)}j9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",jR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+jR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+jR+"?",jR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=GR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=G9(),cRe=GR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne<A.length-1){var te=ue,O=A.charCodeAt(ne+1);return 56320<=O&&O<=57343?(te-55296)*1024+(O-56320)+65536:te}if(56320<=ue&&ue<=57343&&ne>=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],T=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&T==e)return S;if(O==t||O==r||O==e)return T==d&&ne.every(function(De){return De==i})?F:P;if(T==t||T==r||T==e)return P;if(O==o&&(T==o||T==a||T==c||T==u))return S;if((O==c||O==a)&&(T==a||T==l))return S;if((O==u||O==l)&&T==l)return S;if(T==i||T==m)return S;if(T==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&T==d||O==m&&[y,B].indexOf(T)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&T==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O<A.length;O++)if(!_(A,O-1)){var T=Z(X(A,O));if(W(ue,te,T))return O;te.push(T)}return A.length},this.splitGraphemes=function(A){for(var ne=[],ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ne.push(A.slice(ue,te)),ue=te;return ue<A.length&&ne.push(A.slice(ue)),ne},this.iterateGraphemes=function(A){var ne=0,ue={next:function(){var te,O;return(O=this.nextBreak(A,ne))<A.length?(te=A.slice(ne,O),ne=O,{value:te,done:!1}):ne<A.length?(te=A.slice(ne),ne=A.length,{value:te,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(ue[Symbol.iterator]=function(){return ue}),ue},this.countGraphemes=function(A){for(var ne=0,ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ue=te,ne++;return ue<A.length&&ne++,ne};function Z(A){return 1536<=A&&A<=1541||A==1757||A==1807||A==2274||A==3406||A==69821||70082<=A&&A<=70083||A==72250||72326<=A&&A<=72329||A==73030?h:A==13?r:A==10?e:0<=A&&A<=9||11<=A&&A<=12||14<=A&&A<=31||127<=A&&A<=159||A==173||A==1564||A==6158||A==8203||8206<=A&&A<=8207||A==8232||A==8233||8234<=A&&A<=8238||8288<=A&&A<=8292||A==8293||8294<=A&&A<=8303||55296<=A&&A<=57343||A==65279||65520<=A&&A<=65528||65529<=A&&A<=65531||113824<=A&&A<=113827||119155<=A&&A<=119162||A==917504||A==917505||917506<=A&&A<=917535||917632<=A&&A<=917759||918e3<=A&&A<=921599?t:768<=A&&A<=879||1155<=A&&A<=1159||1160<=A&&A<=1161||1425<=A&&A<=1469||A==1471||1473<=A&&A<=1474||1476<=A&&A<=1477||A==1479||1552<=A&&A<=1562||1611<=A&&A<=1631||A==1648||1750<=A&&A<=1756||1759<=A&&A<=1764||1767<=A&&A<=1768||1770<=A&&A<=1773||A==1809||1840<=A&&A<=1866||1958<=A&&A<=1968||2027<=A&&A<=2035||2070<=A&&A<=2073||2075<=A&&A<=2083||2085<=A&&A<=2087||2089<=A&&A<=2093||2137<=A&&A<=2139||2260<=A&&A<=2273||2275<=A&&A<=2306||A==2362||A==2364||2369<=A&&A<=2376||A==2381||2385<=A&&A<=2391||2402<=A&&A<=2403||A==2433||A==2492||A==2494||2497<=A&&A<=2500||A==2509||A==2519||2530<=A&&A<=2531||2561<=A&&A<=2562||A==2620||2625<=A&&A<=2626||2631<=A&&A<=2632||2635<=A&&A<=2637||A==2641||2672<=A&&A<=2673||A==2677||2689<=A&&A<=2690||A==2748||2753<=A&&A<=2757||2759<=A&&A<=2760||A==2765||2786<=A&&A<=2787||2810<=A&&A<=2815||A==2817||A==2876||A==2878||A==2879||2881<=A&&A<=2884||A==2893||A==2902||A==2903||2914<=A&&A<=2915||A==2946||A==3006||A==3008||A==3021||A==3031||A==3072||3134<=A&&A<=3136||3142<=A&&A<=3144||3146<=A&&A<=3149||3157<=A&&A<=3158||3170<=A&&A<=3171||A==3201||A==3260||A==3263||A==3266||A==3270||3276<=A&&A<=3277||3285<=A&&A<=3286||3298<=A&&A<=3299||3328<=A&&A<=3329||3387<=A&&A<=3388||A==3390||3393<=A&&A<=3396||A==3405||A==3415||3426<=A&&A<=3427||A==3530||A==3535||3538<=A&&A<=3540||A==3542||A==3551||A==3633||3636<=A&&A<=3642||3655<=A&&A<=3662||A==3761||3764<=A&&A<=3769||3771<=A&&A<=3772||3784<=A&&A<=3789||3864<=A&&A<=3865||A==3893||A==3895||A==3897||3953<=A&&A<=3966||3968<=A&&A<=3972||3974<=A&&A<=3975||3981<=A&&A<=3991||3993<=A&&A<=4028||A==4038||4141<=A&&A<=4144||4146<=A&&A<=4151||4153<=A&&A<=4154||4157<=A&&A<=4158||4184<=A&&A<=4185||4190<=A&&A<=4192||4209<=A&&A<=4212||A==4226||4229<=A&&A<=4230||A==4237||A==4253||4957<=A&&A<=4959||5906<=A&&A<=5908||5938<=A&&A<=5940||5970<=A&&A<=5971||6002<=A&&A<=6003||6068<=A&&A<=6069||6071<=A&&A<=6077||A==6086||6089<=A&&A<=6099||A==6109||6155<=A&&A<=6157||6277<=A&&A<=6278||A==6313||6432<=A&&A<=6434||6439<=A&&A<=6440||A==6450||6457<=A&&A<=6459||6679<=A&&A<=6680||A==6683||A==6742||6744<=A&&A<=6750||A==6752||A==6754||6757<=A&&A<=6764||6771<=A&&A<=6780||A==6783||6832<=A&&A<=6845||A==6846||6912<=A&&A<=6915||A==6964||6966<=A&&A<=6970||A==6972||A==6978||7019<=A&&A<=7027||7040<=A&&A<=7041||7074<=A&&A<=7077||7080<=A&&A<=7081||7083<=A&&A<=7085||A==7142||7144<=A&&A<=7145||A==7149||7151<=A&&A<=7153||7212<=A&&A<=7219||7222<=A&&A<=7223||7376<=A&&A<=7378||7380<=A&&A<=7392||7394<=A&&A<=7400||A==7405||A==7412||7416<=A&&A<=7417||7616<=A&&A<=7673||7675<=A&&A<=7679||A==8204||8400<=A&&A<=8412||8413<=A&&A<=8416||A==8417||8418<=A&&A<=8420||8421<=A&&A<=8432||11503<=A&&A<=11505||A==11647||11744<=A&&A<=11775||12330<=A&&A<=12333||12334<=A&&A<=12335||12441<=A&&A<=12442||A==42607||42608<=A&&A<=42610||42612<=A&&A<=42621||42654<=A&&A<=42655||42736<=A&&A<=42737||A==43010||A==43014||A==43019||43045<=A&&A<=43046||43204<=A&&A<=43205||43232<=A&&A<=43249||43302<=A&&A<=43309||43335<=A&&A<=43345||43392<=A&&A<=43394||A==43443||43446<=A&&A<=43449||A==43452||A==43493||43561<=A&&A<=43566||43569<=A&&A<=43570||43573<=A&&A<=43574||A==43587||A==43596||A==43644||A==43696||43698<=A&&A<=43700||43703<=A&&A<=43704||43710<=A&&A<=43711||A==43713||43756<=A&&A<=43757||A==43766||A==44005||A==44008||A==44013||A==64286||65024<=A&&A<=65039||65056<=A&&A<=65071||65438<=A&&A<=65439||A==66045||A==66272||66422<=A&&A<=66426||68097<=A&&A<=68099||68101<=A&&A<=68102||68108<=A&&A<=68111||68152<=A&&A<=68154||A==68159||68325<=A&&A<=68326||A==69633||69688<=A&&A<=69702||69759<=A&&A<=69761||69811<=A&&A<=69814||69817<=A&&A<=69818||69888<=A&&A<=69890||69927<=A&&A<=69931||69933<=A&&A<=69940||A==70003||70016<=A&&A<=70017||70070<=A&&A<=70078||70090<=A&&A<=70092||70191<=A&&A<=70193||A==70196||70198<=A&&A<=70199||A==70206||A==70367||70371<=A&&A<=70378||70400<=A&&A<=70401||A==70460||A==70462||A==70464||A==70487||70502<=A&&A<=70508||70512<=A&&A<=70516||70712<=A&&A<=70719||70722<=A&&A<=70724||A==70726||A==70832||70835<=A&&A<=70840||A==70842||A==70845||70847<=A&&A<=70848||70850<=A&&A<=70851||A==71087||71090<=A&&A<=71093||71100<=A&&A<=71101||71103<=A&&A<=71104||71132<=A&&A<=71133||71219<=A&&A<=71226||A==71229||71231<=A&&A<=71232||A==71339||A==71341||71344<=A&&A<=71349||A==71351||71453<=A&&A<=71455||71458<=A&&A<=71461||71463<=A&&A<=71467||72193<=A&&A<=72198||72201<=A&&A<=72202||72243<=A&&A<=72248||72251<=A&&A<=72254||A==72263||72273<=A&&A<=72278||72281<=A&&A<=72283||72330<=A&&A<=72342||72344<=A&&A<=72345||72752<=A&&A<=72758||72760<=A&&A<=72765||A==72767||72850<=A&&A<=72871||72874<=A&&A<=72880||72882<=A&&A<=72883||72885<=A&&A<=72886||73009<=A&&A<=73014||A==73018||73020<=A&&A<=73021||73023<=A&&A<=73029||A==73031||92912<=A&&A<=92916||92976<=A&&A<=92982||94095<=A&&A<=94098||113821<=A&&A<=113822||A==119141||119143<=A&&A<=119145||119150<=A&&A<=119154||119163<=A&&A<=119170||119173<=A&&A<=119179||119210<=A&&A<=119213||119362<=A&&A<=119364||121344<=A&&A<=121398||121403<=A&&A<=121452||A==121461||A==121476||121499<=A&&A<=121503||121505<=A&&A<=121519||122880<=A&&A<=122886||122888<=A&&A<=122904||122907<=A&&A<=122913||122915<=A&&A<=122916||122918<=A&&A<=122922||125136<=A&&A<=125142||125252<=A&&A<=125258||917536<=A&&A<=917631||917760<=A&&A<=917999?i:127462<=A&&A<=127487?n:A==2307||A==2363||2366<=A&&A<=2368||2377<=A&&A<=2380||2382<=A&&A<=2383||2434<=A&&A<=2435||2495<=A&&A<=2496||2503<=A&&A<=2504||2507<=A&&A<=2508||A==2563||2622<=A&&A<=2624||A==2691||2750<=A&&A<=2752||A==2761||2763<=A&&A<=2764||2818<=A&&A<=2819||A==2880||2887<=A&&A<=2888||2891<=A&&A<=2892||A==3007||3009<=A&&A<=3010||3014<=A&&A<=3016||3018<=A&&A<=3020||3073<=A&&A<=3075||3137<=A&&A<=3140||3202<=A&&A<=3203||A==3262||3264<=A&&A<=3265||3267<=A&&A<=3268||3271<=A&&A<=3272||3274<=A&&A<=3275||3330<=A&&A<=3331||3391<=A&&A<=3392||3398<=A&&A<=3400||3402<=A&&A<=3404||3458<=A&&A<=3459||3536<=A&&A<=3537||3544<=A&&A<=3550||3570<=A&&A<=3571||A==3635||A==3763||3902<=A&&A<=3903||A==3967||A==4145||4155<=A&&A<=4156||4182<=A&&A<=4183||A==4228||A==6070||6078<=A&&A<=6085||6087<=A&&A<=6088||6435<=A&&A<=6438||6441<=A&&A<=6443||6448<=A&&A<=6449||6451<=A&&A<=6456||6681<=A&&A<=6682||A==6741||A==6743||6765<=A&&A<=6770||A==6916||A==6965||A==6971||6973<=A&&A<=6977||6979<=A&&A<=6980||A==7042||A==7073||7078<=A&&A<=7079||A==7082||A==7143||7146<=A&&A<=7148||A==7150||7154<=A&&A<=7155||7204<=A&&A<=7211||7220<=A&&A<=7221||A==7393||7410<=A&&A<=7411||A==7415||43043<=A&&A<=43044||A==43047||43136<=A&&A<=43137||43188<=A&&A<=43203||43346<=A&&A<=43347||A==43395||43444<=A&&A<=43445||43450<=A&&A<=43451||43453<=A&&A<=43456||43567<=A&&A<=43568||43571<=A&&A<=43572||A==43597||A==43755||43758<=A&&A<=43759||A==43765||44003<=A&&A<=44004||44006<=A&&A<=44007||44009<=A&&A<=44010||A==44012||A==69632||A==69634||A==69762||69808<=A&&A<=69810||69815<=A&&A<=69816||A==69932||A==70018||70067<=A&&A<=70069||70079<=A&&A<=70080||70188<=A&&A<=70190||70194<=A&&A<=70195||A==70197||70368<=A&&A<=70370||70402<=A&&A<=70403||A==70463||70465<=A&&A<=70468||70471<=A&&A<=70472||70475<=A&&A<=70477||70498<=A&&A<=70499||70709<=A&&A<=70711||70720<=A&&A<=70721||A==70725||70833<=A&&A<=70834||A==70841||70843<=A&&A<=70844||A==70846||A==70849||71088<=A&&A<=71089||71096<=A&&A<=71099||A==71102||71216<=A&&A<=71218||71227<=A&&A<=71228||A==71230||A==71340||71342<=A&&A<=71343||A==71350||71456<=A&&A<=71457||A==71462||72199<=A&&A<=72200||A==72249||72279<=A&&A<=72280||A==72343||A==72751||A==72766||A==72873||A==72881||A==72884||94033<=A&&A<=94078||A==119142||A==119149?s:4352<=A&&A<=4447||43360<=A&&A<=43388?o:4448<=A&&A<=4519||55216<=A&&A<=55238?a:4520<=A&&A<=4607||55243<=A&&A<=55291?l:A==44032||A==44060||A==44088||A==44116||A==44144||A==44172||A==44200||A==44228||A==44256||A==44284||A==44312||A==44340||A==44368||A==44396||A==44424||A==44452||A==44480||A==44508||A==44536||A==44564||A==44592||A==44620||A==44648||A==44676||A==44704||A==44732||A==44760||A==44788||A==44816||A==44844||A==44872||A==44900||A==44928||A==44956||A==44984||A==45012||A==45040||A==45068||A==45096||A==45124||A==45152||A==45180||A==45208||A==45236||A==45264||A==45292||A==45320||A==45348||A==45376||A==45404||A==45432||A==45460||A==45488||A==45516||A==45544||A==45572||A==45600||A==45628||A==45656||A==45684||A==45712||A==45740||A==45768||A==45796||A==45824||A==45852||A==45880||A==45908||A==45936||A==45964||A==45992||A==46020||A==46048||A==46076||A==46104||A==46132||A==46160||A==46188||A==46216||A==46244||A==46272||A==46300||A==46328||A==46356||A==46384||A==46412||A==46440||A==46468||A==46496||A==46524||A==46552||A==46580||A==46608||A==46636||A==46664||A==46692||A==46720||A==46748||A==46776||A==46804||A==46832||A==46860||A==46888||A==46916||A==46944||A==46972||A==47e3||A==47028||A==47056||A==47084||A==47112||A==47140||A==47168||A==47196||A==47224||A==47252||A==47280||A==47308||A==47336||A==47364||A==47392||A==47420||A==47448||A==47476||A==47504||A==47532||A==47560||A==47588||A==47616||A==47644||A==47672||A==47700||A==47728||A==47756||A==47784||A==47812||A==47840||A==47868||A==47896||A==47924||A==47952||A==47980||A==48008||A==48036||A==48064||A==48092||A==48120||A==48148||A==48176||A==48204||A==48232||A==48260||A==48288||A==48316||A==48344||A==48372||A==48400||A==48428||A==48456||A==48484||A==48512||A==48540||A==48568||A==48596||A==48624||A==48652||A==48680||A==48708||A==48736||A==48764||A==48792||A==48820||A==48848||A==48876||A==48904||A==48932||A==48960||A==48988||A==49016||A==49044||A==49072||A==49100||A==49128||A==49156||A==49184||A==49212||A==49240||A==49268||A==49296||A==49324||A==49352||A==49380||A==49408||A==49436||A==49464||A==49492||A==49520||A==49548||A==49576||A==49604||A==49632||A==49660||A==49688||A==49716||A==49744||A==49772||A==49800||A==49828||A==49856||A==49884||A==49912||A==49940||A==49968||A==49996||A==50024||A==50052||A==50080||A==50108||A==50136||A==50164||A==50192||A==50220||A==50248||A==50276||A==50304||A==50332||A==50360||A==50388||A==50416||A==50444||A==50472||A==50500||A==50528||A==50556||A==50584||A==50612||A==50640||A==50668||A==50696||A==50724||A==50752||A==50780||A==50808||A==50836||A==50864||A==50892||A==50920||A==50948||A==50976||A==51004||A==51032||A==51060||A==51088||A==51116||A==51144||A==51172||A==51200||A==51228||A==51256||A==51284||A==51312||A==51340||A==51368||A==51396||A==51424||A==51452||A==51480||A==51508||A==51536||A==51564||A==51592||A==51620||A==51648||A==51676||A==51704||A==51732||A==51760||A==51788||A==51816||A==51844||A==51872||A==51900||A==51928||A==51956||A==51984||A==52012||A==52040||A==52068||A==52096||A==52124||A==52152||A==52180||A==52208||A==52236||A==52264||A==52292||A==52320||A==52348||A==52376||A==52404||A==52432||A==52460||A==52488||A==52516||A==52544||A==52572||A==52600||A==52628||A==52656||A==52684||A==52712||A==52740||A==52768||A==52796||A==52824||A==52852||A==52880||A==52908||A==52936||A==52964||A==52992||A==53020||A==53048||A==53076||A==53104||A==53132||A==53160||A==53188||A==53216||A==53244||A==53272||A==53300||A==53328||A==53356||A==53384||A==53412||A==53440||A==53468||A==53496||A==53524||A==53552||A==53580||A==53608||A==53636||A==53664||A==53692||A==53720||A==53748||A==53776||A==53804||A==53832||A==53860||A==53888||A==53916||A==53944||A==53972||A==54e3||A==54028||A==54056||A==54084||A==54112||A==54140||A==54168||A==54196||A==54224||A==54252||A==54280||A==54308||A==54336||A==54364||A==54392||A==54420||A==54448||A==54476||A==54504||A==54532||A==54560||A==54588||A==54616||A==54644||A==54672||A==54700||A==54728||A==54756||A==54784||A==54812||A==54840||A==54868||A==54896||A==54924||A==54952||A==54980||A==55008||A==55036||A==55064||A==55092||A==55120||A==55148||A==55176?c:44033<=A&&A<=44059||44061<=A&&A<=44087||44089<=A&&A<=44115||44117<=A&&A<=44143||44145<=A&&A<=44171||44173<=A&&A<=44199||44201<=A&&A<=44227||44229<=A&&A<=44255||44257<=A&&A<=44283||44285<=A&&A<=44311||44313<=A&&A<=44339||44341<=A&&A<=44367||44369<=A&&A<=44395||44397<=A&&A<=44423||44425<=A&&A<=44451||44453<=A&&A<=44479||44481<=A&&A<=44507||44509<=A&&A<=44535||44537<=A&&A<=44563||44565<=A&&A<=44591||44593<=A&&A<=44619||44621<=A&&A<=44647||44649<=A&&A<=44675||44677<=A&&A<=44703||44705<=A&&A<=44731||44733<=A&&A<=44759||44761<=A&&A<=44787||44789<=A&&A<=44815||44817<=A&&A<=44843||44845<=A&&A<=44871||44873<=A&&A<=44899||44901<=A&&A<=44927||44929<=A&&A<=44955||44957<=A&&A<=44983||44985<=A&&A<=45011||45013<=A&&A<=45039||45041<=A&&A<=45067||45069<=A&&A<=45095||45097<=A&&A<=45123||45125<=A&&A<=45151||45153<=A&&A<=45179||45181<=A&&A<=45207||45209<=A&&A<=45235||45237<=A&&A<=45263||45265<=A&&A<=45291||45293<=A&&A<=45319||45321<=A&&A<=45347||45349<=A&&A<=45375||45377<=A&&A<=45403||45405<=A&&A<=45431||45433<=A&&A<=45459||45461<=A&&A<=45487||45489<=A&&A<=45515||45517<=A&&A<=45543||45545<=A&&A<=45571||45573<=A&&A<=45599||45601<=A&&A<=45627||45629<=A&&A<=45655||45657<=A&&A<=45683||45685<=A&&A<=45711||45713<=A&&A<=45739||45741<=A&&A<=45767||45769<=A&&A<=45795||45797<=A&&A<=45823||45825<=A&&A<=45851||45853<=A&&A<=45879||45881<=A&&A<=45907||45909<=A&&A<=45935||45937<=A&&A<=45963||45965<=A&&A<=45991||45993<=A&&A<=46019||46021<=A&&A<=46047||46049<=A&&A<=46075||46077<=A&&A<=46103||46105<=A&&A<=46131||46133<=A&&A<=46159||46161<=A&&A<=46187||46189<=A&&A<=46215||46217<=A&&A<=46243||46245<=A&&A<=46271||46273<=A&&A<=46299||46301<=A&&A<=46327||46329<=A&&A<=46355||46357<=A&&A<=46383||46385<=A&&A<=46411||46413<=A&&A<=46439||46441<=A&&A<=46467||46469<=A&&A<=46495||46497<=A&&A<=46523||46525<=A&&A<=46551||46553<=A&&A<=46579||46581<=A&&A<=46607||46609<=A&&A<=46635||46637<=A&&A<=46663||46665<=A&&A<=46691||46693<=A&&A<=46719||46721<=A&&A<=46747||46749<=A&&A<=46775||46777<=A&&A<=46803||46805<=A&&A<=46831||46833<=A&&A<=46859||46861<=A&&A<=46887||46889<=A&&A<=46915||46917<=A&&A<=46943||46945<=A&&A<=46971||46973<=A&&A<=46999||47001<=A&&A<=47027||47029<=A&&A<=47055||47057<=A&&A<=47083||47085<=A&&A<=47111||47113<=A&&A<=47139||47141<=A&&A<=47167||47169<=A&&A<=47195||47197<=A&&A<=47223||47225<=A&&A<=47251||47253<=A&&A<=47279||47281<=A&&A<=47307||47309<=A&&A<=47335||47337<=A&&A<=47363||47365<=A&&A<=47391||47393<=A&&A<=47419||47421<=A&&A<=47447||47449<=A&&A<=47475||47477<=A&&A<=47503||47505<=A&&A<=47531||47533<=A&&A<=47559||47561<=A&&A<=47587||47589<=A&&A<=47615||47617<=A&&A<=47643||47645<=A&&A<=47671||47673<=A&&A<=47699||47701<=A&&A<=47727||47729<=A&&A<=47755||47757<=A&&A<=47783||47785<=A&&A<=47811||47813<=A&&A<=47839||47841<=A&&A<=47867||47869<=A&&A<=47895||47897<=A&&A<=47923||47925<=A&&A<=47951||47953<=A&&A<=47979||47981<=A&&A<=48007||48009<=A&&A<=48035||48037<=A&&A<=48063||48065<=A&&A<=48091||48093<=A&&A<=48119||48121<=A&&A<=48147||48149<=A&&A<=48175||48177<=A&&A<=48203||48205<=A&&A<=48231||48233<=A&&A<=48259||48261<=A&&A<=48287||48289<=A&&A<=48315||48317<=A&&A<=48343||48345<=A&&A<=48371||48373<=A&&A<=48399||48401<=A&&A<=48427||48429<=A&&A<=48455||48457<=A&&A<=48483||48485<=A&&A<=48511||48513<=A&&A<=48539||48541<=A&&A<=48567||48569<=A&&A<=48595||48597<=A&&A<=48623||48625<=A&&A<=48651||48653<=A&&A<=48679||48681<=A&&A<=48707||48709<=A&&A<=48735||48737<=A&&A<=48763||48765<=A&&A<=48791||48793<=A&&A<=48819||48821<=A&&A<=48847||48849<=A&&A<=48875||48877<=A&&A<=48903||48905<=A&&A<=48931||48933<=A&&A<=48959||48961<=A&&A<=48987||48989<=A&&A<=49015||49017<=A&&A<=49043||49045<=A&&A<=49071||49073<=A&&A<=49099||49101<=A&&A<=49127||49129<=A&&A<=49155||49157<=A&&A<=49183||49185<=A&&A<=49211||49213<=A&&A<=49239||49241<=A&&A<=49267||49269<=A&&A<=49295||49297<=A&&A<=49323||49325<=A&&A<=49351||49353<=A&&A<=49379||49381<=A&&A<=49407||49409<=A&&A<=49435||49437<=A&&A<=49463||49465<=A&&A<=49491||49493<=A&&A<=49519||49521<=A&&A<=49547||49549<=A&&A<=49575||49577<=A&&A<=49603||49605<=A&&A<=49631||49633<=A&&A<=49659||49661<=A&&A<=49687||49689<=A&&A<=49715||49717<=A&&A<=49743||49745<=A&&A<=49771||49773<=A&&A<=49799||49801<=A&&A<=49827||49829<=A&&A<=49855||49857<=A&&A<=49883||49885<=A&&A<=49911||49913<=A&&A<=49939||49941<=A&&A<=49967||49969<=A&&A<=49995||49997<=A&&A<=50023||50025<=A&&A<=50051||50053<=A&&A<=50079||50081<=A&&A<=50107||50109<=A&&A<=50135||50137<=A&&A<=50163||50165<=A&&A<=50191||50193<=A&&A<=50219||50221<=A&&A<=50247||50249<=A&&A<=50275||50277<=A&&A<=50303||50305<=A&&A<=50331||50333<=A&&A<=50359||50361<=A&&A<=50387||50389<=A&&A<=50415||50417<=A&&A<=50443||50445<=A&&A<=50471||50473<=A&&A<=50499||50501<=A&&A<=50527||50529<=A&&A<=50555||50557<=A&&A<=50583||50585<=A&&A<=50611||50613<=A&&A<=50639||50641<=A&&A<=50667||50669<=A&&A<=50695||50697<=A&&A<=50723||50725<=A&&A<=50751||50753<=A&&A<=50779||50781<=A&&A<=50807||50809<=A&&A<=50835||50837<=A&&A<=50863||50865<=A&&A<=50891||50893<=A&&A<=50919||50921<=A&&A<=50947||50949<=A&&A<=50975||50977<=A&&A<=51003||51005<=A&&A<=51031||51033<=A&&A<=51059||51061<=A&&A<=51087||51089<=A&&A<=51115||51117<=A&&A<=51143||51145<=A&&A<=51171||51173<=A&&A<=51199||51201<=A&&A<=51227||51229<=A&&A<=51255||51257<=A&&A<=51283||51285<=A&&A<=51311||51313<=A&&A<=51339||51341<=A&&A<=51367||51369<=A&&A<=51395||51397<=A&&A<=51423||51425<=A&&A<=51451||51453<=A&&A<=51479||51481<=A&&A<=51507||51509<=A&&A<=51535||51537<=A&&A<=51563||51565<=A&&A<=51591||51593<=A&&A<=51619||51621<=A&&A<=51647||51649<=A&&A<=51675||51677<=A&&A<=51703||51705<=A&&A<=51731||51733<=A&&A<=51759||51761<=A&&A<=51787||51789<=A&&A<=51815||51817<=A&&A<=51843||51845<=A&&A<=51871||51873<=A&&A<=51899||51901<=A&&A<=51927||51929<=A&&A<=51955||51957<=A&&A<=51983||51985<=A&&A<=52011||52013<=A&&A<=52039||52041<=A&&A<=52067||52069<=A&&A<=52095||52097<=A&&A<=52123||52125<=A&&A<=52151||52153<=A&&A<=52179||52181<=A&&A<=52207||52209<=A&&A<=52235||52237<=A&&A<=52263||52265<=A&&A<=52291||52293<=A&&A<=52319||52321<=A&&A<=52347||52349<=A&&A<=52375||52377<=A&&A<=52403||52405<=A&&A<=52431||52433<=A&&A<=52459||52461<=A&&A<=52487||52489<=A&&A<=52515||52517<=A&&A<=52543||52545<=A&&A<=52571||52573<=A&&A<=52599||52601<=A&&A<=52627||52629<=A&&A<=52655||52657<=A&&A<=52683||52685<=A&&A<=52711||52713<=A&&A<=52739||52741<=A&&A<=52767||52769<=A&&A<=52795||52797<=A&&A<=52823||52825<=A&&A<=52851||52853<=A&&A<=52879||52881<=A&&A<=52907||52909<=A&&A<=52935||52937<=A&&A<=52963||52965<=A&&A<=52991||52993<=A&&A<=53019||53021<=A&&A<=53047||53049<=A&&A<=53075||53077<=A&&A<=53103||53105<=A&&A<=53131||53133<=A&&A<=53159||53161<=A&&A<=53187||53189<=A&&A<=53215||53217<=A&&A<=53243||53245<=A&&A<=53271||53273<=A&&A<=53299||53301<=A&&A<=53327||53329<=A&&A<=53355||53357<=A&&A<=53383||53385<=A&&A<=53411||53413<=A&&A<=53439||53441<=A&&A<=53467||53469<=A&&A<=53495||53497<=A&&A<=53523||53525<=A&&A<=53551||53553<=A&&A<=53579||53581<=A&&A<=53607||53609<=A&&A<=53635||53637<=A&&A<=53663||53665<=A&&A<=53691||53693<=A&&A<=53719||53721<=A&&A<=53747||53749<=A&&A<=53775||53777<=A&&A<=53803||53805<=A&&A<=53831||53833<=A&&A<=53859||53861<=A&&A<=53887||53889<=A&&A<=53915||53917<=A&&A<=53943||53945<=A&&A<=53971||53973<=A&&A<=53999||54001<=A&&A<=54027||54029<=A&&A<=54055||54057<=A&&A<=54083||54085<=A&&A<=54111||54113<=A&&A<=54139||54141<=A&&A<=54167||54169<=A&&A<=54195||54197<=A&&A<=54223||54225<=A&&A<=54251||54253<=A&&A<=54279||54281<=A&&A<=54307||54309<=A&&A<=54335||54337<=A&&A<=54363||54365<=A&&A<=54391||54393<=A&&A<=54419||54421<=A&&A<=54447||54449<=A&&A<=54475||54477<=A&&A<=54503||54505<=A&&A<=54531||54533<=A&&A<=54559||54561<=A&&A<=54587||54589<=A&&A<=54615||54617<=A&&A<=54643||54645<=A&&A<=54671||54673<=A&&A<=54699||54701<=A&&A<=54727||54729<=A&&A<=54755||54757<=A&&A<=54783||54785<=A&&A<=54811||54813<=A&&A<=54839||54841<=A&&A<=54867||54869<=A&&A<=54895||54897<=A&&A<=54923||54925<=A&&A<=54951||54953<=A&&A<=54979||54981<=A&&A<=55007||55009<=A&&A<=55035||55037<=A&&A<=55063||55065<=A&&A<=55091||55093<=A&&A<=55119||55121<=A&&A<=55147||55149<=A&&A<=55175||55177<=A&&A<=55203?u:A==9757||A==9977||9994<=A&&A<=9997||A==127877||127938<=A&&A<=127940||A==127943||127946<=A&&A<=127948||128066<=A&&A<=128067||128070<=A&&A<=128080||A==128110||128112<=A&&A<=128120||A==128124||128129<=A&&A<=128131||128133<=A&&A<=128135||A==128170||128372<=A&&A<=128373||A==128378||A==128400||128405<=A&&A<=128406||128581<=A&&A<=128583||128587<=A&&A<=128591||A==128675||128692<=A&&A<=128694||A==128704||A==128716||129304<=A&&A<=129308||129310<=A&&A<=129311||A==129318||129328<=A&&A<=129337||129341<=A&&A<=129342||129489<=A&&A<=129501?p:127995<=A&&A<=127999?d:A==8205?m:A==9792||A==9794||9877<=A&&A<=9878||A==9992||A==10084||A==127752||A==127806||A==127859||A==127891||A==127908||A==127912||A==127979||A==127981||A==128139||128187<=A&&A<=128188||A==128295||A==128300||A==128488||A==128640||A==128658?y:128102<=A&&A<=128105?B:g}return this}typeof PB<"u"&&PB.exports&&(PB.exports=ERe)});var lV=I((dot,AV)=>{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,bV)=>{"use strict";var QV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);bV.exports=r=>r?Object.keys(r).map(e=>[QV.has(e)?QV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,TV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},TRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),NC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),Gi=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",NRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};TV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new xV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[NC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[Gi]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[Gi])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[Gi])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[Gi]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[Gi]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[Gi])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[NC]&&(this[Za]?OC(()=>t.call(this,this[NC])):t.call(this,this[NC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[Gi]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==Gi&&this[Gi])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[Gi])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[NC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Gi,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[NRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Gi,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Gi]?(e?this.emit("error",e):this.emit(Gi),this):(this[Gi]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(Gi),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof TRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,NV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};NV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),Gc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,jc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},GRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),GB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[GRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[jc](rl.from(a[0]));for(let c=1;c<a.length;c++)l=this[jc](a[c])}else l=this[jc](rl.from(a));return i&&i(),l}[jc](e){return super.write(e)}},_a=class extends GB{constructor(e,t){e=e||{},e.flush=e.flush||Gc.Z_NO_FLUSH,e.finishFlush=e.finishFlush||Gc.Z_FINISH,super(e,t),this[pF]=Gc.Z_FULL_FLUSH,this[tF]=e.level,this[rF]=e.strategy}params(e,t){if(!this[$f]){if(!this[Ar])throw new Error("cannot switch params when binding is closed");if(!this[Ar].params)throw new Error("not supported in this implementation");if(this[tF]!==e||this[rF]!==t){this.flush(Gc.Z_SYNC_FLUSH),sF(this[Ar],"zlib binding closed");let i=this[Ar].flush;this[Ar].flush=(n,s)=>{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[jc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[jc](e)):super[jc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},jB=class extends GB{constructor(e,t){e=e||{},e.flush=e.flush||Gc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Gc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=Gc.BROTLI_OPERATION_FLUSH}},fF=class extends jB{constructor(e){super(e,"BrotliCompress")}},hF=class extends jB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((Got,UV)=>{var jRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=jRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=GV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=jV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=GV(s):s===0?o=s:(i=!0,o=jV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},GV=r=>(255^r)&255,jV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),QF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o<t+148;o++)s+=e[o];for(let o=t+156;o<t+512;o++)s+=e[o];this.cksumValid=s===this.cksum,this.cksum===null&&s===8*32&&(this.nullBlock=!0)}[yF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=e[i])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l<t+148;l++)a+=e[l];for(let l=t+156;l<t+512;l++)a+=e[l];return this.cksum=a,nl(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return IF.name.get(this[Zn])||this[Zn]}get typeKey(){return this[Zn]}set type(e){IF.code.has(e)?this[Zn]=IF.code.get(e):this[Zn]=e}},ZRe=(r,e)=>{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=QF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s<n.length;s++)n[s]=0;return n}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],i=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+t+` +`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f<E;)ie[w+f++]=0;return w}var ut={ops_table:null,mount:function(f){return ut.createNode(null,"/",16895,0)},createNode:function(f,E,w,k){if(Q.isBlkdev(w)||Q.isFIFO(w))throw new Q.ErrnoError(63);ut.ops_table||(ut.ops_table={dir:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,lookup:ut.node_ops.lookup,mknod:ut.node_ops.mknod,rename:ut.node_ops.rename,unlink:ut.node_ops.unlink,rmdir:ut.node_ops.rmdir,readdir:ut.node_ops.readdir,symlink:ut.node_ops.symlink},stream:{llseek:ut.stream_ops.llseek}},file:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:{llseek:ut.stream_ops.llseek,read:ut.stream_ops.read,write:ut.stream_ops.write,allocate:ut.stream_ops.allocate,mmap:ut.stream_ops.mmap,msync:ut.stream_ops.msync}},link:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,readlink:ut.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:Q.chrdev_stream_ops}});var L=Q.createNode(f,E,w,k);return Q.isDir(L.mode)?(L.node_ops=ut.ops_table.dir.node,L.stream_ops=ut.ops_table.dir.stream,L.contents={}):Q.isFile(L.mode)?(L.node_ops=ut.ops_table.file.node,L.stream_ops=ut.ops_table.file.stream,L.usedBytes=0,L.contents=null):Q.isLink(L.mode)?(L.node_ops=ut.ops_table.link.node,L.stream_ops=ut.ops_table.link.stream):Q.isChrdev(L.mode)&&(L.node_ops=ut.ops_table.chrdev.node,L.stream_ops=ut.ops_table.chrdev.stream),L.timestamp=Date.now(),f&&(f.contents[E]=L,f.timestamp=L.timestamp),L},getFileDataAsTypedArray:function(f){return f.contents?f.contents.subarray?f.contents.subarray(0,f.usedBytes):new Uint8Array(f.contents):new Uint8Array(0)},expandFileStorage:function(f,E){var w=f.contents?f.contents.length:0;if(!(w>=E)){var k=1024*1024;E=Math.max(E,w*(w<k?2:1.125)>>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=Q.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,Q.isDir(f.mode)?E.size=4096:Q.isFile(f.mode)?E.size=f.usedBytes:Q.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw Q.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(Q.isDir(f.mode)){var k;try{k=Q.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new Q.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=Q.lookupNode(f,E);for(var k in w.contents)throw new Q.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!Q.isLink(f.mode))throw new Q.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie<ee;Ie++)E[w+Ie]=T[L+Ie];return ee},write:function(f,E,w,k,L,T){if(E.buffer===ie.buffer&&(T=!1),!k)return 0;var ee=f.node;if(ee.timestamp=Date.now(),E.subarray&&(!ee.contents||ee.contents.subarray)){if(T)return ee.contents=E.subarray(w,w+k),ee.usedBytes=k,k;if(ee.usedBytes===0&&L===0)return ee.contents=E.slice(w,w+k),ee.usedBytes=k,k;if(L+k<=ee.usedBytes)return ee.contents.set(E.subarray(w,w+k),L),k}if(ut.expandFileStorage(ee,L+k),ee.contents.subarray&&E.subarray)ee.contents.set(E.subarray(w,w+k),L);else for(var Ie=0;Ie<k;Ie++)ee.contents[L+Ie]=E[w+Ie];return ee.usedBytes=Math.max(ee.usedBytes,L+k),k},llseek:function(f,E,w){var k=E;if(w===1?k+=f.position:w===2&&Q.isFile(f.node.mode)&&(k+=f.node.usedBytes),k<0)throw new Q.ErrnoError(28);return k},allocate:function(f,E,w){ut.expandFileStorage(f.node,E+w),f.node.usedBytes=Math.max(f.node.usedBytes,E+w)},mmap:function(f,E,w,k,L,T){if(E!==0)throw new Q.ErrnoError(28);if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);var ee,Ie,Oe=f.node.contents;if(!(T&2)&&Oe.buffer===Ye)Ie=!1,ee=Oe.byteOffset;else{if((k>0||k+w<Oe.length)&&(Oe.subarray?Oe=Oe.subarray(k,k+w):Oe=Array.prototype.slice.call(Oe,k,k+w)),Ie=!0,ee=ss(w),!ee)throw new Q.ErrnoError(48);ie.set(Oe,ee)}return{ptr:ee,allocated:Ie}},msync:function(f,E,w,k,L){if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);if(L&2)return 0;var T=ut.stream_ops.write(f,E,0,k,w,!1);return 0}}},wo={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},At={isWindows:!1,staticInit:function(){At.isWindows=!!process.platform.match(/^win/);var f={fs:Ne.constants};f.fs&&(f=f.fs),At.flagsForNodeMap={1024:f.O_APPEND,64:f.O_CREAT,128:f.O_EXCL,256:f.O_NOCTTY,0:f.O_RDONLY,2:f.O_RDWR,4096:f.O_SYNC,512:f.O_TRUNC,1:f.O_WRONLY}},bufferFrom:function(f){return Buffer.alloc?Buffer.from(f):new Buffer(f)},convertNodeCode:function(f){var E=f.code;return wo[E]},mount:function(f){return At.createNode(null,"/",At.getMode(f.opts.root),0)},createNode:function(f,E,w,k){if(!Q.isDir(w)&&!Q.isFile(w)&&!Q.isLink(w))throw new Q.ErrnoError(28);var L=Q.createNode(f,E,w);return L.node_ops=At.node_ops,L.stream_ops=At.stream_ops,L},getMode:function(f){var E;try{E=Ne.lstatSync(f),At.isWindows&&(E.mode=E.mode|(E.mode&292)>>2)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new Q.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Ne.lstatSync(E)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Ne.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Ne.utimesSync(w,k,k)}E.size!==void 0&&Ne.truncateSync(w,E.size)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),T=At.realPath(L);try{Q.isDir(L.mode)?Ne.mkdirSync(T,L.mode):Ne.writeFileSync(T,"",{mode:L.mode})}catch(ee){throw ee.code?new Q.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Ne.renameSync(k,L)}catch(T){throw T.code?new Q.ErrnoError(At.convertNodeCode(T)):T}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.unlinkSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.rmdirSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Ne.readdirSync(E)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Ne.symlinkSync(w,k)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Ne.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{Q.isFile(f.node.mode)&&(f.nfd=Ne.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{Q.isFile(f.node.mode)&&f.nfd&&Ne.closeSync(f.nfd)}catch(E){throw E.code?new Q.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},write:function(f,E,w,k,L){try{return Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&Q.isFile(f.node.mode))try{var L=Ne.fstatSync(f.nfd);k+=L.size}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}if(k<0)throw new Q.ErrnoError(28);return k},mmap:function(f,E,w,k,L,T){if(E!==0)throw new Q.ErrnoError(28);if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);if(L&2)return 0;var T=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},ln={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){Q.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)Q.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){Q.isDir(f)?Ne.mkdirSync(f,E):Ne.writeFileSync(f,"",{mode:E})},mkdir:function(){Ne.mkdirSync.apply(void 0,arguments)},symlink:function(){Ne.symlinkSync.apply(void 0,arguments)},rename:function(){Ne.renameSync.apply(void 0,arguments)},rmdir:function(){Ne.rmdirSync.apply(void 0,arguments)},readdir:function(){Ne.readdirSync.apply(void 0,arguments)},unlink:function(){Ne.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ne.readlinkSync.apply(void 0,arguments)},stat:function(){return Ne.statSync.apply(void 0,arguments)},lstat:function(){return Ne.lstatSync.apply(void 0,arguments)},chmod:function(){Ne.chmodSync.apply(void 0,arguments)},fchmod:function(){Ne.fchmodSync.apply(void 0,arguments)},chown:function(){Ne.chownSync.apply(void 0,arguments)},fchown:function(){Ne.fchownSync.apply(void 0,arguments)},truncate:function(){Ne.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);Ne.ftruncateSync.apply(void 0,arguments)},utime:function(){Ne.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Ne.openSync(f,At.flagsForNode(E),w),T=k!=null?k:Q.nextfd(L),ee={fd:T,nfd:L,position:0,path:f,flags:E,seekable:!0};return Q.streams[T]=ee,ee},close:function(f){f.stream_ops||Ne.closeSync(f.nfd),Q.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Ne.fstatSync(f.nfd).size;else if(w!==0)throw new Q.ErrnoError(wo.EINVAL);if(k<0)throw new Q.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&Q.llseek(f,0,+"2");var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},allocate:function(){throw new Q.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,T){if(f.stream_ops)return Us.mmap(f,E,w,k,L,T);if(E!==0)throw new Q.ErrnoError(28);var ee=ss(w);return Q.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||Q.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new Q.ErrnoError(wo.ENOTTY)}},Q={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Tn.resolve(Q.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new Q.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),T=Q.root,ee="/",Ie=0;Ie<L.length;Ie++){var Oe=Ie===L.length-1;if(Oe&&E.parent)break;if(T=Q.lookupNode(T,L[Ie]),ee=yt.join2(ee,L[Ie]),Q.isMountpoint(T)&&(!Oe||Oe&&E.follow_mount)&&(T=T.mounted.root),!Oe||E.follow)for(var it=0;Q.isLink(T.mode);){var at=Q.readlink(ee);ee=Tn.resolve(yt.dirname(ee),at);var Ue=Q.lookupPath(ee,{recurse_count:E.recurse_count});if(T=Ue.node,it++>40)throw new Q.ErrnoError(32)}}return{path:ee,node:T}},getPath:function(f){for(var E;;){if(Q.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k<E.length;k++)w=(w<<5)-w+E.charCodeAt(k)|0;return(f+w>>>0)%Q.nameTable.length},hashAddNode:function(f){var E=Q.hashName(f.parent.id,f.name);f.name_next=Q.nameTable[E],Q.nameTable[E]=f},hashRemoveNode:function(f){var E=Q.hashName(f.parent.id,f.name);if(Q.nameTable[E]===f)Q.nameTable[E]=f.name_next;else for(var w=Q.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=Q.mayLookup(f);if(w)throw new Q.ErrnoError(w,f);for(var k=Q.hashName(f.id,E),L=Q.nameTable[k];L;L=L.name_next){var T=L.name;if(L.parent.id===f.id&&T===E)return L}return Q.lookup(f,E)},createNode:function(f,E,w,k){var L=new Q.FSNode(f,E,w,k);return Q.hashAddNode(L),L},destroyNode:function(f){Q.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=Q.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return Q.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=Q.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=Q.lookupNode(f,E);return 20}catch{}return Q.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=Q.lookupNode(f,E)}catch(T){return T.errno}var L=Q.nodePermissions(f,"wx");if(L)return L;if(w){if(!Q.isDir(k.mode))return 54;if(Q.isRoot(k)||Q.getPath(k)===Q.cwd())return 10}else if(Q.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?Q.isLink(f.mode)?32:Q.isDir(f.mode)&&(Q.flagsToPermissionString(E)!=="r"||E&512)?31:Q.nodePermissions(f,Q.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||Q.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!Q.streams[w])return w;throw new Q.ErrnoError(33)},getStream:function(f){return Q.streams[f]},createStream:function(f,E,w){Q.FSStream||(Q.FSStream=function(){},Q.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new Q.FSStream;for(var L in f)k[L]=f[L];f=k;var T=Q.nextfd(E,w);return f.fd=T,Q.streams[T]=f,f},closeStream:function(f){Q.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=Q.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new Q.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){Q.devices[f]={stream_ops:E}},getDevice:function(f){return Q.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),Q.syncFSRequests++,Q.syncFSRequests>1&&P("warning: "+Q.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=Q.getMounts(Q.root.mount),k=0;function L(ee){return Q.syncFSRequests--,E(ee)}function T(ee){if(ee)return T.errored?void 0:(T.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return T(null);ee.type.syncfs(ee,f,T)})},mount:function(f,E,w){var k=w==="/",L=!w,T;if(k&&Q.root)throw new Q.ErrnoError(10);if(!k&&!L){var ee=Q.lookupPath(w,{follow_mount:!1});if(w=ee.path,T=ee.node,Q.isMountpoint(T))throw new Q.ErrnoError(10);if(!Q.isDir(T.mode))throw new Q.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?Q.root=Oe:T&&(T.mounted=Ie,T.mount&&T.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=Q.lookupPath(f,{follow_mount:!1});if(!Q.isMountpoint(E.node))throw new Q.ErrnoError(28);var w=E.node,k=w.mounted,L=Q.getMounts(k);Object.keys(Q.nameTable).forEach(function(ee){for(var Ie=Q.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&Q.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var T=w.mount.mounts.indexOf(k);w.mount.mounts.splice(T,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=Q.lookupPath(f,{parent:!0}),L=k.node,T=yt.basename(f);if(!T||T==="."||T==="..")throw new Q.ErrnoError(28);var ee=Q.mayCreate(L,T);if(ee)throw new Q.ErrnoError(ee);if(!L.node_ops.mknod)throw new Q.ErrnoError(63);return L.node_ops.mknod(L,T,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,Q.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,Q.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L<w.length;++L)if(!!w[L]){k+="/"+w[L];try{Q.mkdir(k,E)}catch(T){if(T.errno!=20)throw T}}},mkdev:function(f,E,w){return typeof w>"u"&&(w=E,E=438),E|=8192,Q.mknod(f,E,w)},symlink:function(f,E){if(!Tn.resolve(f))throw new Q.ErrnoError(44);var w=Q.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new Q.ErrnoError(44);var L=yt.basename(E),T=Q.mayCreate(k,L);if(T)throw new Q.ErrnoError(T);if(!k.node_ops.symlink)throw new Q.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),T=yt.basename(E),ee,Ie,Oe;if(ee=Q.lookupPath(f,{parent:!0}),Ie=ee.node,ee=Q.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new Q.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new Q.ErrnoError(75);var it=Q.lookupNode(Ie,L),at=Tn.relative(f,k);if(at.charAt(0)!==".")throw new Q.ErrnoError(28);if(at=Tn.relative(E,w),at.charAt(0)!==".")throw new Q.ErrnoError(55);var Ue;try{Ue=Q.lookupNode(Oe,T)}catch{}if(it!==Ue){var Ve=Q.isDir(it.mode),nt=Q.mayDelete(Ie,L,Ve);if(nt)throw new Q.ErrnoError(nt);if(nt=Ue?Q.mayDelete(Oe,T,Ve):Q.mayCreate(Oe,T),nt)throw new Q.ErrnoError(nt);if(!Ie.node_ops.rename)throw new Q.ErrnoError(63);if(Q.isMountpoint(it)||Ue&&Q.isMountpoint(Ue))throw new Q.ErrnoError(10);if(Oe!==Ie&&(nt=Q.nodePermissions(Ie,"w"),nt))throw new Q.ErrnoError(nt);try{Q.trackingDelegate.willMovePath&&Q.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}Q.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,T)}catch(wt){throw wt}finally{Q.hashAddNode(it)}try{Q.trackingDelegate.onMovePath&&Q.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!0);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.rmdir)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=Q.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new Q.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!1);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.unlink)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=Q.lookupPath(f),w=E.node;if(!w)throw new Q.ErrnoError(44);if(!w.node_ops.readlink)throw new Q.ErrnoError(28);return Tn.resolve(Q.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=Q.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new Q.ErrnoError(44);if(!k.node_ops.getattr)throw new Q.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return Q.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=Q.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new Q.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){Q.chmod(f,E,!0)},fchmod:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);Q.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var T=Q.lookupPath(f,{follow:!k});L=T.node}else L=f;if(!L.node_ops.setattr)throw new Q.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){Q.chown(f,E,w,!0)},fchown:function(f,E,w){var k=Q.getStream(f);if(!k)throw new Q.ErrnoError(8);Q.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);var w;if(typeof f=="string"){var k=Q.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new Q.ErrnoError(63);if(Q.isDir(w.mode))throw new Q.ErrnoError(31);if(!Q.isFile(w.mode))throw new Q.ErrnoError(28);var L=Q.nodePermissions(w,"w");if(L)throw new Q.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);if((w.flags&2097155)===0)throw new Q.ErrnoError(28);Q.truncate(w.node,E)},utime:function(f,E,w){var k=Q.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new Q.ErrnoError(44);E=typeof E=="string"?Q.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var T;if(typeof f=="object")T=f;else{f=yt.normalize(f);try{var ee=Q.lookupPath(f,{follow:!(E&131072)});T=ee.node}catch{}}var Ie=!1;if(E&64)if(T){if(E&128)throw new Q.ErrnoError(20)}else T=Q.mknod(f,w,0),Ie=!0;if(!T)throw new Q.ErrnoError(44);if(Q.isChrdev(T.mode)&&(E&=-513),E&65536&&!Q.isDir(T.mode))throw new Q.ErrnoError(54);if(!Ie){var Oe=Q.mayOpen(T,E);if(Oe)throw new Q.ErrnoError(Oe)}E&512&&Q.truncate(T,0),E&=-131713;var it=Q.createStream({node:T,path:Q.getPath(T),flags:E,seekable:!0,position:0,stream_ops:T.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(Q.readFiles||(Q.readFiles={}),f in Q.readFiles||(Q.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(Q.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=Q.tracking.openFlags.READ),(E&2097155)!==0&&(at|=Q.tracking.openFlags.WRITE),Q.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(Q.isClosed(f))throw new Q.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{Q.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new Q.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new Q.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===1)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.read)throw new Q.ErrnoError(28);var T=typeof L<"u";if(!T)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L,T){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.write)throw new Q.ErrnoError(28);f.seekable&&f.flags&1024&&Q.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,T);ee||(f.position+=Ie);try{f.path&&Q.trackingDelegate.onWriteToFile&&Q.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(E<0||w<=0)throw new Q.ErrnoError(28);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(!Q.isFile(f.node.mode)&&!Q.isDir(f.node.mode))throw new Q.ErrnoError(43);if(!f.stream_ops.allocate)throw new Q.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,T){if((L&2)!==0&&(T&2)===0&&(f.flags&2097155)!==2)throw new Q.ErrnoError(2);if((f.flags&2097155)===1)throw new Q.ErrnoError(2);if(!f.stream_ops.mmap)throw new Q.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,T)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new Q.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=Q.open(f,E.flags),L=Q.stat(f),T=L.size,ee=new Uint8Array(T);return Q.read(k,ee,0,T,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),Q.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=Q.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),T=Re(E,L,0,L.length);Q.write(k,L,0,T,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))Q.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");Q.close(k)},cwd:function(){return Q.currentPath},chdir:function(f){var E=Q.lookupPath(f,{follow:!0});if(E.node===null)throw new Q.ErrnoError(44);if(!Q.isDir(E.node.mode))throw new Q.ErrnoError(54);var w=Q.nodePermissions(E.node,"x");if(w)throw new Q.ErrnoError(w);Q.currentPath=E.path},createDefaultDirectories:function(){Q.mkdir("/tmp"),Q.mkdir("/home"),Q.mkdir("/home/web_user")},createDefaultDevices:function(){Q.mkdir("/dev"),Q.registerDevice(Q.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,T){return L}}),Q.mkdev("/dev/null",Q.makedev(1,3)),ns.register(Q.makedev(5,0),ns.default_tty_ops),ns.register(Q.makedev(6,0),ns.default_tty1_ops),Q.mkdev("/dev/tty",Q.makedev(5,0)),Q.mkdev("/dev/tty1",Q.makedev(6,0));var f=Tl();Q.createDevice("/dev","random",f),Q.createDevice("/dev","urandom",f),Q.mkdir("/dev/shm"),Q.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Q.mkdir("/proc");var f=Q.mkdir("/proc/self");Q.mkdir("/proc/self/fd"),Q.mount({mount:function(){var E=Q.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,T=Q.getStream(L);if(!T)throw new Q.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return T.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?Q.createDevice("/dev","stdin",t.stdin):Q.symlink("/dev/tty","/dev/stdin"),t.stdout?Q.createDevice("/dev","stdout",null,t.stdout):Q.symlink("/dev/tty","/dev/stdout"),t.stderr?Q.createDevice("/dev","stderr",null,t.stderr):Q.symlink("/dev/tty1","/dev/stderr");var f=Q.open("/dev/stdin",0),E=Q.open("/dev/stdout",1),w=Q.open("/dev/stderr",1)},ensureErrnoError:function(){Q.ErrnoError||(Q.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},Q.ErrnoError.prototype=new Error,Q.ErrnoError.prototype.constructor=Q.ErrnoError,[44].forEach(function(f){Q.genericErrors[f]=new Q.ErrnoError(f),Q.genericErrors[f].stack="<generic error, no stack>"}))},staticInit:function(){Q.ensureErrnoError(),Q.nameTable=new Array(4096),Q.mount(ut,{},"/"),Q.createDefaultDirectories(),Q.createDefaultDevices(),Q.createSpecialDirectories(),Q.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){Q.init.initialized=!0,Q.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,Q.createStandardStreams()},quit:function(){Q.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;E<Q.streams.length;E++){var w=Q.streams[E];!w||Q.close(w)}},getMode:function(f,E){var w=0;return f&&(w|=365),E&&(w|=146),w},findObject:function(f,E){var w=Q.analyzePath(f,E);return w.exists?w.object:null},analyzePath:function(f,E){try{var w=Q.lookupPath(f,{follow:!E});f=w.path}catch{}var k={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var w=Q.lookupPath(f,{parent:!0});k.parentExists=!0,k.parentPath=w.path,k.parentObject=w.node,k.name=yt.basename(f),w=Q.lookupPath(f,{follow:!E}),k.exists=!0,k.path=w.path,k.object=w.node,k.name=w.node.name,k.isRoot=w.path==="/"}catch(L){k.error=L.errno}return k},createPath:function(f,E,w,k){f=typeof f=="string"?f:Q.getPath(f);for(var L=E.split("/").reverse();L.length;){var T=L.pop();if(!!T){var ee=yt.join2(f,T);try{Q.mkdir(ee)}catch{}f=ee}}return ee},createFile:function(f,E,w,k,L){var T=yt.join2(typeof f=="string"?f:Q.getPath(f),E),ee=Q.getMode(k,L);return Q.create(T,ee)},createDataFile:function(f,E,w,k,L,T){var ee=E?yt.join2(typeof f=="string"?f:Q.getPath(f),E):f,Ie=Q.getMode(k,L),Oe=Q.create(ee,Ie);if(w){if(typeof w=="string"){for(var it=new Array(w.length),at=0,Ue=w.length;at<Ue;++at)it[at]=w.charCodeAt(at);w=it}Q.chmod(Oe,Ie|146);var Ve=Q.open(Oe,577);Q.write(Ve,w,0,w.length,0,T),Q.close(Ve),Q.chmod(Oe,Ie)}return Oe},createDevice:function(f,E,w,k){var L=yt.join2(typeof f=="string"?f:Q.getPath(f),E),T=Q.getMode(!!w,!!k);Q.createDevice.major||(Q.createDevice.major=64);var ee=Q.makedev(Q.createDevice.major++,0);return Q.registerDevice(ee,{open:function(Ie){Ie.seekable=!1},close:function(Ie){k&&k.buffer&&k.buffer.length&&k(10)},read:function(Ie,Oe,it,at,Ue){for(var Ve=0,nt=0;nt<at;nt++){var wt;try{wt=w()}catch{throw new Q.ErrnoError(29)}if(wt===void 0&&Ve===0)throw new Q.ErrnoError(6);if(wt==null)break;Ve++,Oe[it+nt]=wt}return Ve&&(Ie.node.timestamp=Date.now()),Ve},write:function(Ie,Oe,it,at,Ue){for(var Ve=0;Ve<at;Ve++)try{k(Oe[it+Ve])}catch{throw new Q.ErrnoError(29)}return at&&(Ie.node.timestamp=Date.now()),Ve}}),Q.mkdev(L,T,ee)},forceLoadFile:function(f){if(f.isDevice||f.isFolder||f.link||f.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(d)try{f.contents=wA(d(f.url),!0),f.usedBytes=f.contents.length}catch{throw new Q.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(f,E,w,k,L){function T(){this.lengthKnown=!1,this.chunks=[]}if(T.prototype.get=function(Ve){if(!(Ve>this.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},T.prototype.setDataGetter=function(Ve){this.getter=Ve},T.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",un=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var vr=new XMLHttpRequest;if(vr.open("GET",w,!1),nt!==ii&&vr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(vr.responseType="arraybuffer"),vr.overrideMimeType&&vr.overrideMimeType("text/plain; charset=x-user-defined"),vr.send(null),!(vr.status>=200&&vr.status<300||vr.status===304))throw new Error("Couldn't load "+w+". Status: "+vr.status);return vr.response!==void 0?new Uint8Array(vr.response||[]):wA(vr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,vr=(On+1)*ii-1;if(vr=Math.min(vr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,vr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(un||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new T;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=Q.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return Q.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,un){Q.forceLoadFile(Oe);var ii=Ve.node.contents;if(un>=ii.length)return 0;var Be=Math.min(ii.length-un,Ii);if(ii.slice)for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii[un+yi];else for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii.get(un+yi);return Be},Oe.stream_ops=it,Oe},createPreloadedFile:function(f,E,w,k,L,T,ee,Ie,Oe,it){Browser.init();var at=E?Tn.resolve(yt.join2(f,E)):f,Ue="cp "+at;function Ve(nt){function wt(un){it&&it(),Ie||Q.createDataFile(f,E,un,k,L,Oe),T&&T(),IA(Ue)}var Ii=!1;t.preloadPlugins.forEach(function(un){Ii||un.canHandle(at)&&(un.handle(nt,at,wt,function(){ee&&ee(),IA(Ue)}),Ii=!0)}),Ii||wt(nt)}EA(Ue),typeof w=="string"?Browser.asyncLoad(w,function(nt){Ve(nt)},ee):Ve(w)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=Q.indexedDB();try{var L=k.open(Q.DB_NAME(),Q.DB_VERSION)}catch(T){return w(T)}L.onupgradeneeded=function(){S("creating db");var ee=L.result;ee.createObjectStore(Q.DB_STORE_NAME)},L.onsuccess=function(){var ee=L.result,Ie=ee.transaction([Q.DB_STORE_NAME],"readwrite"),Oe=Ie.objectStore(Q.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.put(Q.analyzePath(nt).object.contents,nt);wt.onsuccess=function(){it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w},loadFilesFromDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=Q.indexedDB();try{var L=k.open(Q.DB_NAME(),Q.DB_VERSION)}catch(T){return w(T)}L.onupgradeneeded=w,L.onsuccess=function(){var ee=L.result;try{var Ie=ee.transaction([Q.DB_STORE_NAME],"readonly")}catch(nt){w(nt);return}var Oe=Ie.objectStore(Q.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.get(nt);wt.onsuccess=function(){Q.analyzePath(nt).exists&&Q.unlink(nt),Q.createDataFile(yt.dirname(nt),yt.basename(nt),wt.result,!0,!0,!0),it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w}},Nt={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(f,E,w){if(E[0]==="/")return E;var k;if(f===-100)k=Q.cwd();else{var L=Q.getStream(f);if(!L)throw new Q.ErrnoError(8);k=L.path}if(E.length==0){if(!w)throw new Q.ErrnoError(44);return k}return yt.join2(k,E)},doStat:function(f,E,w){try{var k=f(E)}catch(L){if(L&&L.node&&yt.normalize(E)!==yt.normalize(Q.getPath(L.node)))return-54;throw L}return de[w>>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Sr=k.size,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Sr=k.ino,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var T=G.slice(f,f+w);Q.msync(E,T,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),Q.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Q.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=Q.readlink(f),L=Math.min(w,Ae(k)),T=ie[E+L];return se(k,E,w+1),ie[E+L]=T,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=Q.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&Q.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=Q.getStream(w);return k&&Q.close(k),Q.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,T=0;T<w;T++){var ee=de[E+T*8>>2],Ie=de[E+(T*8+4)>>2],Oe=Q.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe<Ie)break}return L},doWritev:function(f,E,w,k){for(var L=0,T=0;T<w;T++){var ee=de[E+T*8>>2],Ie=de[E+(T*8+4)>>2],Oe=Q.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Nt.varargs+=4;var f=de[Nt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=Q.getStream(f);if(!E)throw new Q.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Nt.getStr(f),Q.chmod(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function Qp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 0:{var L=Nt.get();if(L<0)return-28;var T;return T=Q.open(k.path,k.flags,0,L),T.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Nt.get();return k.flags|=L,0}case 12:{var L=Nt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof Q>"u"||!(Ie instanceof Q.ErrnoError))&&yr(Ie),-Ie.errno}}function Sp(f,E){try{var w=Nt.getStreamFromFD(f);return Nt.doStat(Q.stat,w.path,E)}catch(k){return(typeof Q>"u"||!(k instanceof Q.ErrnoError))&&yr(k),-k.errno}}function vp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Nt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Nt.get();return Q.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:yr("bad ioctl syscall "+E)}}catch(T){return(typeof Q>"u"||!(T instanceof Q.ErrnoError))&&yr(T),-T.errno}}function xp(f,E,w){Nt.varargs=w;try{var k=Nt.getStr(f),L=w?Nt.get():0,T=Q.open(k,E,L);return T.fd}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&yr(ee),-ee.errno}}function Pp(f,E){try{return f=Nt.getStr(f),E=Nt.getStr(E),Q.rename(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),-w.errno}}function j(f){try{return f=Nt.getStr(f),Q.rmdir(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&yr(E),-E.errno}}function Et(f,E){try{return f=Nt.getStr(f),Nt.doStat(Q.stat,f,E)}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),-w.errno}}function yA(f){try{return f=Nt.getStr(f),Q.unlink(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&yr(E),-E.errno}}function zi(f,E,w){G.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Lr(A.buffer),1}catch{}}function ze(f){var E=G.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var T=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(T);if(ee)return!0}return!1}function fa(f){try{var E=Nt.getStreamFromFD(f);return Q.close(E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),w.errno}}function dg(f,E){try{var w=Nt.getStreamFromFD(f),k=w.tty?2:Q.isDir(w.mode)?3:Q.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof Q>"u"||!(L instanceof Q.ErrnoError))&&yr(L),L.errno}}function OE(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doReadv(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&yr(ee),ee.errno}}function kp(f,E,w,k,L){try{var T=Nt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(Q.llseek(T,Ie,k),Ri=[T.position>>>0,(Sr=T.position,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],T.getdents&&Ie===0&&k===0&&(T.getdents=null),0)}catch(it){return(typeof Q>"u"||!(it instanceof Q.ErrnoError))&&yr(it),it.errno}}function ME(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doWritev(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&yr(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),T=Math.max(k,L);de[eS()>>2]=T*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L<k?(de[ql()>>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=Q.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,cn=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&cn)===cn},set:function(f){f?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return Q.isDir(this.mode)}},isDevice:{get:function(){return Q.isChrdev(this.mode)}}}),Q.FSNode=Ks,Q.staticInit(),g){var Ne=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new Q.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},Q);for(var Ul in ln)Q[Ul]=Kl(ln[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),T=Re(f,L,0,L.length);return E&&(L.length=T),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,T,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,T=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(T));while(at<f.length);return w};function Eg(f){if(typeof g=="boolean"&&g){var E;try{E=Buffer.from(f,"base64")}catch{E=new Buffer(f,"base64")}return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}try{for(var w=mg(f),k=new Uint8Array(w.length),L=0;L<w.length;++L)k[L]=w.charCodeAt(L);return k}catch{throw new Error("Converting base64 string to bytes failed.")}}function pa(f){if(!!fg(f))return Eg(f.slice(Nl.length))}var da={s:ae,p:pg,e:Qp,k:Sp,o:vp,q:xp,i:Pp,r:j,c:Et,h:yA,l:zi,m:ze,f:fa,j:dg,g:OE,n:kp,d:ME,a:sr,b:Ln,t:Dp},tt=bp(),Bo=t.___wasm_call_ctors=tt.v,BA=t._zip_ext_count_symlinks=tt.w,Rp=t._zip_file_get_external_attributes=tt.x,Ca=t._zipstruct_stat=tt.y,Hl=t._zipstruct_statS=tt.z,jl=t._zipstruct_stat_name=tt.A,bA=t._zipstruct_stat_index=tt.B,ma=t._zipstruct_stat_size=tt.C,Fp=t._zipstruct_stat_mtime=tt.D,KE=t._zipstruct_stat_crc=tt.E,Gl=t._zipstruct_error=tt.F,UE=t._zipstruct_errorS=tt.G,Np=t._zipstruct_error_code_zip=tt.H,Yl=t._zipstruct_stat_comp_size=tt.I,Or=t._zipstruct_stat_comp_method=tt.J,HE=t._zip_close=tt.K,Hs=t._zip_delete=tt.L,js=t._zip_dir_add=tt.M,Ig=t._zip_discard=tt.N,QA=t._zip_error_init_with_code=tt.O,D=t._zip_get_error=tt.P,Y=t._zip_file_get_error=tt.Q,pe=t._zip_error_strerror=tt.R,Le=t._zip_fclose=tt.S,ke=t._zip_file_add=tt.T,Je=t._free=tt.U,pt=t._malloc=tt.V,Xt=t.___errno_location=tt.W,Ea=t._zip_source_error=tt.X,D1=t._zip_source_seek=tt.Y,Gs=t._zip_file_set_external_attributes=tt.Z,yg=t._zip_file_set_mtime=tt._,JQ=t._zip_fopen=tt.$,R1=t._zip_fopen_index=tt.aa,F1=t._zip_fread=tt.ba,WQ=t._zip_get_name=tt.ca,N1=t._zip_get_num_entries=tt.da,T1=t._zip_source_read=tt.ea,zQ=t._zip_name_locate=tt.fa,L1=t._zip_open=tt.ga,O1=t._zip_open_from_source=tt.ha,VQ=t._zip_set_file_compression=tt.ia,M1=t._zip_source_buffer=tt.ja,K1=t._zip_source_buffer_create=tt.ka,XQ=t._zip_source_close=tt.la,U1=t._zip_source_free=tt.ma,H1=t._zip_source_keep=tt.na,j1=t._zip_source_open=tt.oa,G1=t._zip_source_set_mtime=tt.qa,ZQ=t._zip_source_tell=tt.ra,_Q=t._zip_stat=tt.sa,$Q=t._zip_stat_index=tt.ta,ql=t.__get_tzname=tt.ua,jE=t.__get_daylight=tt.va,eS=t.__get_timezone=tt.wa,tS=t.stackSave=tt.xa,rS=t.stackRestore=tt.ya,GE=t.stackAlloc=tt.za;t.cwrap=ce,t.getValue=Z;var Jl;ga=function f(){Jl||wg(),Jl||(ga=f)};function wg(f){if(f=f||a,is>0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function QDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t<i;)n[t]=e(r[t],t,r);return n}k9.exports=QDe});var Ss=I((iot,R9)=>{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Nc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,N9=F9?F9.prototype:void 0,T9=N9?N9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return T9?T9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i<n;)s[i]=r[i+e];return s}U9.exports=FDe});var j9=I((aot,H9)=>{var NDe=HR();function TDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:NDe(r,e,t)}H9.exports=TDe});var jR=I((Aot,G9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",GDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function YDe(r){return GDe.test(r)}G9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",GR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+GR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+GR+"?",GR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne<A.length-1){var te=ue,O=A.charCodeAt(ne+1);return 56320<=O&&O<=57343?(te-55296)*1024+(O-56320)+65536:te}if(56320<=ue&&ue<=57343&&ne>=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],N=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&N==e)return S;if(O==t||O==r||O==e)return N==d&&ne.every(function(De){return De==i})?F:P;if(N==t||N==r||N==e)return P;if(O==o&&(N==o||N==a||N==c||N==u))return S;if((O==c||O==a)&&(N==a||N==l))return S;if((O==u||O==l)&&N==l)return S;if(N==i||N==m)return S;if(N==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&N==d||O==m&&[y,B].indexOf(N)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&N==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O<A.length;O++)if(!_(A,O-1)){var N=Z(X(A,O));if(W(ue,te,N))return O;te.push(N)}return A.length},this.splitGraphemes=function(A){for(var ne=[],ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ne.push(A.slice(ue,te)),ue=te;return ue<A.length&&ne.push(A.slice(ue)),ne},this.iterateGraphemes=function(A){var ne=0,ue={next:function(){var te,O;return(O=this.nextBreak(A,ne))<A.length?(te=A.slice(ne,O),ne=O,{value:te,done:!1}):ne<A.length?(te=A.slice(ne),ne=A.length,{value:te,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(ue[Symbol.iterator]=function(){return ue}),ue},this.countGraphemes=function(A){for(var ne=0,ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ue=te,ne++;return ue<A.length&&ne++,ne};function Z(A){return 1536<=A&&A<=1541||A==1757||A==1807||A==2274||A==3406||A==69821||70082<=A&&A<=70083||A==72250||72326<=A&&A<=72329||A==73030?h:A==13?r:A==10?e:0<=A&&A<=9||11<=A&&A<=12||14<=A&&A<=31||127<=A&&A<=159||A==173||A==1564||A==6158||A==8203||8206<=A&&A<=8207||A==8232||A==8233||8234<=A&&A<=8238||8288<=A&&A<=8292||A==8293||8294<=A&&A<=8303||55296<=A&&A<=57343||A==65279||65520<=A&&A<=65528||65529<=A&&A<=65531||113824<=A&&A<=113827||119155<=A&&A<=119162||A==917504||A==917505||917506<=A&&A<=917535||917632<=A&&A<=917759||918e3<=A&&A<=921599?t:768<=A&&A<=879||1155<=A&&A<=1159||1160<=A&&A<=1161||1425<=A&&A<=1469||A==1471||1473<=A&&A<=1474||1476<=A&&A<=1477||A==1479||1552<=A&&A<=1562||1611<=A&&A<=1631||A==1648||1750<=A&&A<=1756||1759<=A&&A<=1764||1767<=A&&A<=1768||1770<=A&&A<=1773||A==1809||1840<=A&&A<=1866||1958<=A&&A<=1968||2027<=A&&A<=2035||2070<=A&&A<=2073||2075<=A&&A<=2083||2085<=A&&A<=2087||2089<=A&&A<=2093||2137<=A&&A<=2139||2260<=A&&A<=2273||2275<=A&&A<=2306||A==2362||A==2364||2369<=A&&A<=2376||A==2381||2385<=A&&A<=2391||2402<=A&&A<=2403||A==2433||A==2492||A==2494||2497<=A&&A<=2500||A==2509||A==2519||2530<=A&&A<=2531||2561<=A&&A<=2562||A==2620||2625<=A&&A<=2626||2631<=A&&A<=2632||2635<=A&&A<=2637||A==2641||2672<=A&&A<=2673||A==2677||2689<=A&&A<=2690||A==2748||2753<=A&&A<=2757||2759<=A&&A<=2760||A==2765||2786<=A&&A<=2787||2810<=A&&A<=2815||A==2817||A==2876||A==2878||A==2879||2881<=A&&A<=2884||A==2893||A==2902||A==2903||2914<=A&&A<=2915||A==2946||A==3006||A==3008||A==3021||A==3031||A==3072||3134<=A&&A<=3136||3142<=A&&A<=3144||3146<=A&&A<=3149||3157<=A&&A<=3158||3170<=A&&A<=3171||A==3201||A==3260||A==3263||A==3266||A==3270||3276<=A&&A<=3277||3285<=A&&A<=3286||3298<=A&&A<=3299||3328<=A&&A<=3329||3387<=A&&A<=3388||A==3390||3393<=A&&A<=3396||A==3405||A==3415||3426<=A&&A<=3427||A==3530||A==3535||3538<=A&&A<=3540||A==3542||A==3551||A==3633||3636<=A&&A<=3642||3655<=A&&A<=3662||A==3761||3764<=A&&A<=3769||3771<=A&&A<=3772||3784<=A&&A<=3789||3864<=A&&A<=3865||A==3893||A==3895||A==3897||3953<=A&&A<=3966||3968<=A&&A<=3972||3974<=A&&A<=3975||3981<=A&&A<=3991||3993<=A&&A<=4028||A==4038||4141<=A&&A<=4144||4146<=A&&A<=4151||4153<=A&&A<=4154||4157<=A&&A<=4158||4184<=A&&A<=4185||4190<=A&&A<=4192||4209<=A&&A<=4212||A==4226||4229<=A&&A<=4230||A==4237||A==4253||4957<=A&&A<=4959||5906<=A&&A<=5908||5938<=A&&A<=5940||5970<=A&&A<=5971||6002<=A&&A<=6003||6068<=A&&A<=6069||6071<=A&&A<=6077||A==6086||6089<=A&&A<=6099||A==6109||6155<=A&&A<=6157||6277<=A&&A<=6278||A==6313||6432<=A&&A<=6434||6439<=A&&A<=6440||A==6450||6457<=A&&A<=6459||6679<=A&&A<=6680||A==6683||A==6742||6744<=A&&A<=6750||A==6752||A==6754||6757<=A&&A<=6764||6771<=A&&A<=6780||A==6783||6832<=A&&A<=6845||A==6846||6912<=A&&A<=6915||A==6964||6966<=A&&A<=6970||A==6972||A==6978||7019<=A&&A<=7027||7040<=A&&A<=7041||7074<=A&&A<=7077||7080<=A&&A<=7081||7083<=A&&A<=7085||A==7142||7144<=A&&A<=7145||A==7149||7151<=A&&A<=7153||7212<=A&&A<=7219||7222<=A&&A<=7223||7376<=A&&A<=7378||7380<=A&&A<=7392||7394<=A&&A<=7400||A==7405||A==7412||7416<=A&&A<=7417||7616<=A&&A<=7673||7675<=A&&A<=7679||A==8204||8400<=A&&A<=8412||8413<=A&&A<=8416||A==8417||8418<=A&&A<=8420||8421<=A&&A<=8432||11503<=A&&A<=11505||A==11647||11744<=A&&A<=11775||12330<=A&&A<=12333||12334<=A&&A<=12335||12441<=A&&A<=12442||A==42607||42608<=A&&A<=42610||42612<=A&&A<=42621||42654<=A&&A<=42655||42736<=A&&A<=42737||A==43010||A==43014||A==43019||43045<=A&&A<=43046||43204<=A&&A<=43205||43232<=A&&A<=43249||43302<=A&&A<=43309||43335<=A&&A<=43345||43392<=A&&A<=43394||A==43443||43446<=A&&A<=43449||A==43452||A==43493||43561<=A&&A<=43566||43569<=A&&A<=43570||43573<=A&&A<=43574||A==43587||A==43596||A==43644||A==43696||43698<=A&&A<=43700||43703<=A&&A<=43704||43710<=A&&A<=43711||A==43713||43756<=A&&A<=43757||A==43766||A==44005||A==44008||A==44013||A==64286||65024<=A&&A<=65039||65056<=A&&A<=65071||65438<=A&&A<=65439||A==66045||A==66272||66422<=A&&A<=66426||68097<=A&&A<=68099||68101<=A&&A<=68102||68108<=A&&A<=68111||68152<=A&&A<=68154||A==68159||68325<=A&&A<=68326||A==69633||69688<=A&&A<=69702||69759<=A&&A<=69761||69811<=A&&A<=69814||69817<=A&&A<=69818||69888<=A&&A<=69890||69927<=A&&A<=69931||69933<=A&&A<=69940||A==70003||70016<=A&&A<=70017||70070<=A&&A<=70078||70090<=A&&A<=70092||70191<=A&&A<=70193||A==70196||70198<=A&&A<=70199||A==70206||A==70367||70371<=A&&A<=70378||70400<=A&&A<=70401||A==70460||A==70462||A==70464||A==70487||70502<=A&&A<=70508||70512<=A&&A<=70516||70712<=A&&A<=70719||70722<=A&&A<=70724||A==70726||A==70832||70835<=A&&A<=70840||A==70842||A==70845||70847<=A&&A<=70848||70850<=A&&A<=70851||A==71087||71090<=A&&A<=71093||71100<=A&&A<=71101||71103<=A&&A<=71104||71132<=A&&A<=71133||71219<=A&&A<=71226||A==71229||71231<=A&&A<=71232||A==71339||A==71341||71344<=A&&A<=71349||A==71351||71453<=A&&A<=71455||71458<=A&&A<=71461||71463<=A&&A<=71467||72193<=A&&A<=72198||72201<=A&&A<=72202||72243<=A&&A<=72248||72251<=A&&A<=72254||A==72263||72273<=A&&A<=72278||72281<=A&&A<=72283||72330<=A&&A<=72342||72344<=A&&A<=72345||72752<=A&&A<=72758||72760<=A&&A<=72765||A==72767||72850<=A&&A<=72871||72874<=A&&A<=72880||72882<=A&&A<=72883||72885<=A&&A<=72886||73009<=A&&A<=73014||A==73018||73020<=A&&A<=73021||73023<=A&&A<=73029||A==73031||92912<=A&&A<=92916||92976<=A&&A<=92982||94095<=A&&A<=94098||113821<=A&&A<=113822||A==119141||119143<=A&&A<=119145||119150<=A&&A<=119154||119163<=A&&A<=119170||119173<=A&&A<=119179||119210<=A&&A<=119213||119362<=A&&A<=119364||121344<=A&&A<=121398||121403<=A&&A<=121452||A==121461||A==121476||121499<=A&&A<=121503||121505<=A&&A<=121519||122880<=A&&A<=122886||122888<=A&&A<=122904||122907<=A&&A<=122913||122915<=A&&A<=122916||122918<=A&&A<=122922||125136<=A&&A<=125142||125252<=A&&A<=125258||917536<=A&&A<=917631||917760<=A&&A<=917999?i:127462<=A&&A<=127487?n:A==2307||A==2363||2366<=A&&A<=2368||2377<=A&&A<=2380||2382<=A&&A<=2383||2434<=A&&A<=2435||2495<=A&&A<=2496||2503<=A&&A<=2504||2507<=A&&A<=2508||A==2563||2622<=A&&A<=2624||A==2691||2750<=A&&A<=2752||A==2761||2763<=A&&A<=2764||2818<=A&&A<=2819||A==2880||2887<=A&&A<=2888||2891<=A&&A<=2892||A==3007||3009<=A&&A<=3010||3014<=A&&A<=3016||3018<=A&&A<=3020||3073<=A&&A<=3075||3137<=A&&A<=3140||3202<=A&&A<=3203||A==3262||3264<=A&&A<=3265||3267<=A&&A<=3268||3271<=A&&A<=3272||3274<=A&&A<=3275||3330<=A&&A<=3331||3391<=A&&A<=3392||3398<=A&&A<=3400||3402<=A&&A<=3404||3458<=A&&A<=3459||3536<=A&&A<=3537||3544<=A&&A<=3550||3570<=A&&A<=3571||A==3635||A==3763||3902<=A&&A<=3903||A==3967||A==4145||4155<=A&&A<=4156||4182<=A&&A<=4183||A==4228||A==6070||6078<=A&&A<=6085||6087<=A&&A<=6088||6435<=A&&A<=6438||6441<=A&&A<=6443||6448<=A&&A<=6449||6451<=A&&A<=6456||6681<=A&&A<=6682||A==6741||A==6743||6765<=A&&A<=6770||A==6916||A==6965||A==6971||6973<=A&&A<=6977||6979<=A&&A<=6980||A==7042||A==7073||7078<=A&&A<=7079||A==7082||A==7143||7146<=A&&A<=7148||A==7150||7154<=A&&A<=7155||7204<=A&&A<=7211||7220<=A&&A<=7221||A==7393||7410<=A&&A<=7411||A==7415||43043<=A&&A<=43044||A==43047||43136<=A&&A<=43137||43188<=A&&A<=43203||43346<=A&&A<=43347||A==43395||43444<=A&&A<=43445||43450<=A&&A<=43451||43453<=A&&A<=43456||43567<=A&&A<=43568||43571<=A&&A<=43572||A==43597||A==43755||43758<=A&&A<=43759||A==43765||44003<=A&&A<=44004||44006<=A&&A<=44007||44009<=A&&A<=44010||A==44012||A==69632||A==69634||A==69762||69808<=A&&A<=69810||69815<=A&&A<=69816||A==69932||A==70018||70067<=A&&A<=70069||70079<=A&&A<=70080||70188<=A&&A<=70190||70194<=A&&A<=70195||A==70197||70368<=A&&A<=70370||70402<=A&&A<=70403||A==70463||70465<=A&&A<=70468||70471<=A&&A<=70472||70475<=A&&A<=70477||70498<=A&&A<=70499||70709<=A&&A<=70711||70720<=A&&A<=70721||A==70725||70833<=A&&A<=70834||A==70841||70843<=A&&A<=70844||A==70846||A==70849||71088<=A&&A<=71089||71096<=A&&A<=71099||A==71102||71216<=A&&A<=71218||71227<=A&&A<=71228||A==71230||A==71340||71342<=A&&A<=71343||A==71350||71456<=A&&A<=71457||A==71462||72199<=A&&A<=72200||A==72249||72279<=A&&A<=72280||A==72343||A==72751||A==72766||A==72873||A==72881||A==72884||94033<=A&&A<=94078||A==119142||A==119149?s:4352<=A&&A<=4447||43360<=A&&A<=43388?o:4448<=A&&A<=4519||55216<=A&&A<=55238?a:4520<=A&&A<=4607||55243<=A&&A<=55291?l:A==44032||A==44060||A==44088||A==44116||A==44144||A==44172||A==44200||A==44228||A==44256||A==44284||A==44312||A==44340||A==44368||A==44396||A==44424||A==44452||A==44480||A==44508||A==44536||A==44564||A==44592||A==44620||A==44648||A==44676||A==44704||A==44732||A==44760||A==44788||A==44816||A==44844||A==44872||A==44900||A==44928||A==44956||A==44984||A==45012||A==45040||A==45068||A==45096||A==45124||A==45152||A==45180||A==45208||A==45236||A==45264||A==45292||A==45320||A==45348||A==45376||A==45404||A==45432||A==45460||A==45488||A==45516||A==45544||A==45572||A==45600||A==45628||A==45656||A==45684||A==45712||A==45740||A==45768||A==45796||A==45824||A==45852||A==45880||A==45908||A==45936||A==45964||A==45992||A==46020||A==46048||A==46076||A==46104||A==46132||A==46160||A==46188||A==46216||A==46244||A==46272||A==46300||A==46328||A==46356||A==46384||A==46412||A==46440||A==46468||A==46496||A==46524||A==46552||A==46580||A==46608||A==46636||A==46664||A==46692||A==46720||A==46748||A==46776||A==46804||A==46832||A==46860||A==46888||A==46916||A==46944||A==46972||A==47e3||A==47028||A==47056||A==47084||A==47112||A==47140||A==47168||A==47196||A==47224||A==47252||A==47280||A==47308||A==47336||A==47364||A==47392||A==47420||A==47448||A==47476||A==47504||A==47532||A==47560||A==47588||A==47616||A==47644||A==47672||A==47700||A==47728||A==47756||A==47784||A==47812||A==47840||A==47868||A==47896||A==47924||A==47952||A==47980||A==48008||A==48036||A==48064||A==48092||A==48120||A==48148||A==48176||A==48204||A==48232||A==48260||A==48288||A==48316||A==48344||A==48372||A==48400||A==48428||A==48456||A==48484||A==48512||A==48540||A==48568||A==48596||A==48624||A==48652||A==48680||A==48708||A==48736||A==48764||A==48792||A==48820||A==48848||A==48876||A==48904||A==48932||A==48960||A==48988||A==49016||A==49044||A==49072||A==49100||A==49128||A==49156||A==49184||A==49212||A==49240||A==49268||A==49296||A==49324||A==49352||A==49380||A==49408||A==49436||A==49464||A==49492||A==49520||A==49548||A==49576||A==49604||A==49632||A==49660||A==49688||A==49716||A==49744||A==49772||A==49800||A==49828||A==49856||A==49884||A==49912||A==49940||A==49968||A==49996||A==50024||A==50052||A==50080||A==50108||A==50136||A==50164||A==50192||A==50220||A==50248||A==50276||A==50304||A==50332||A==50360||A==50388||A==50416||A==50444||A==50472||A==50500||A==50528||A==50556||A==50584||A==50612||A==50640||A==50668||A==50696||A==50724||A==50752||A==50780||A==50808||A==50836||A==50864||A==50892||A==50920||A==50948||A==50976||A==51004||A==51032||A==51060||A==51088||A==51116||A==51144||A==51172||A==51200||A==51228||A==51256||A==51284||A==51312||A==51340||A==51368||A==51396||A==51424||A==51452||A==51480||A==51508||A==51536||A==51564||A==51592||A==51620||A==51648||A==51676||A==51704||A==51732||A==51760||A==51788||A==51816||A==51844||A==51872||A==51900||A==51928||A==51956||A==51984||A==52012||A==52040||A==52068||A==52096||A==52124||A==52152||A==52180||A==52208||A==52236||A==52264||A==52292||A==52320||A==52348||A==52376||A==52404||A==52432||A==52460||A==52488||A==52516||A==52544||A==52572||A==52600||A==52628||A==52656||A==52684||A==52712||A==52740||A==52768||A==52796||A==52824||A==52852||A==52880||A==52908||A==52936||A==52964||A==52992||A==53020||A==53048||A==53076||A==53104||A==53132||A==53160||A==53188||A==53216||A==53244||A==53272||A==53300||A==53328||A==53356||A==53384||A==53412||A==53440||A==53468||A==53496||A==53524||A==53552||A==53580||A==53608||A==53636||A==53664||A==53692||A==53720||A==53748||A==53776||A==53804||A==53832||A==53860||A==53888||A==53916||A==53944||A==53972||A==54e3||A==54028||A==54056||A==54084||A==54112||A==54140||A==54168||A==54196||A==54224||A==54252||A==54280||A==54308||A==54336||A==54364||A==54392||A==54420||A==54448||A==54476||A==54504||A==54532||A==54560||A==54588||A==54616||A==54644||A==54672||A==54700||A==54728||A==54756||A==54784||A==54812||A==54840||A==54868||A==54896||A==54924||A==54952||A==54980||A==55008||A==55036||A==55064||A==55092||A==55120||A==55148||A==55176?c:44033<=A&&A<=44059||44061<=A&&A<=44087||44089<=A&&A<=44115||44117<=A&&A<=44143||44145<=A&&A<=44171||44173<=A&&A<=44199||44201<=A&&A<=44227||44229<=A&&A<=44255||44257<=A&&A<=44283||44285<=A&&A<=44311||44313<=A&&A<=44339||44341<=A&&A<=44367||44369<=A&&A<=44395||44397<=A&&A<=44423||44425<=A&&A<=44451||44453<=A&&A<=44479||44481<=A&&A<=44507||44509<=A&&A<=44535||44537<=A&&A<=44563||44565<=A&&A<=44591||44593<=A&&A<=44619||44621<=A&&A<=44647||44649<=A&&A<=44675||44677<=A&&A<=44703||44705<=A&&A<=44731||44733<=A&&A<=44759||44761<=A&&A<=44787||44789<=A&&A<=44815||44817<=A&&A<=44843||44845<=A&&A<=44871||44873<=A&&A<=44899||44901<=A&&A<=44927||44929<=A&&A<=44955||44957<=A&&A<=44983||44985<=A&&A<=45011||45013<=A&&A<=45039||45041<=A&&A<=45067||45069<=A&&A<=45095||45097<=A&&A<=45123||45125<=A&&A<=45151||45153<=A&&A<=45179||45181<=A&&A<=45207||45209<=A&&A<=45235||45237<=A&&A<=45263||45265<=A&&A<=45291||45293<=A&&A<=45319||45321<=A&&A<=45347||45349<=A&&A<=45375||45377<=A&&A<=45403||45405<=A&&A<=45431||45433<=A&&A<=45459||45461<=A&&A<=45487||45489<=A&&A<=45515||45517<=A&&A<=45543||45545<=A&&A<=45571||45573<=A&&A<=45599||45601<=A&&A<=45627||45629<=A&&A<=45655||45657<=A&&A<=45683||45685<=A&&A<=45711||45713<=A&&A<=45739||45741<=A&&A<=45767||45769<=A&&A<=45795||45797<=A&&A<=45823||45825<=A&&A<=45851||45853<=A&&A<=45879||45881<=A&&A<=45907||45909<=A&&A<=45935||45937<=A&&A<=45963||45965<=A&&A<=45991||45993<=A&&A<=46019||46021<=A&&A<=46047||46049<=A&&A<=46075||46077<=A&&A<=46103||46105<=A&&A<=46131||46133<=A&&A<=46159||46161<=A&&A<=46187||46189<=A&&A<=46215||46217<=A&&A<=46243||46245<=A&&A<=46271||46273<=A&&A<=46299||46301<=A&&A<=46327||46329<=A&&A<=46355||46357<=A&&A<=46383||46385<=A&&A<=46411||46413<=A&&A<=46439||46441<=A&&A<=46467||46469<=A&&A<=46495||46497<=A&&A<=46523||46525<=A&&A<=46551||46553<=A&&A<=46579||46581<=A&&A<=46607||46609<=A&&A<=46635||46637<=A&&A<=46663||46665<=A&&A<=46691||46693<=A&&A<=46719||46721<=A&&A<=46747||46749<=A&&A<=46775||46777<=A&&A<=46803||46805<=A&&A<=46831||46833<=A&&A<=46859||46861<=A&&A<=46887||46889<=A&&A<=46915||46917<=A&&A<=46943||46945<=A&&A<=46971||46973<=A&&A<=46999||47001<=A&&A<=47027||47029<=A&&A<=47055||47057<=A&&A<=47083||47085<=A&&A<=47111||47113<=A&&A<=47139||47141<=A&&A<=47167||47169<=A&&A<=47195||47197<=A&&A<=47223||47225<=A&&A<=47251||47253<=A&&A<=47279||47281<=A&&A<=47307||47309<=A&&A<=47335||47337<=A&&A<=47363||47365<=A&&A<=47391||47393<=A&&A<=47419||47421<=A&&A<=47447||47449<=A&&A<=47475||47477<=A&&A<=47503||47505<=A&&A<=47531||47533<=A&&A<=47559||47561<=A&&A<=47587||47589<=A&&A<=47615||47617<=A&&A<=47643||47645<=A&&A<=47671||47673<=A&&A<=47699||47701<=A&&A<=47727||47729<=A&&A<=47755||47757<=A&&A<=47783||47785<=A&&A<=47811||47813<=A&&A<=47839||47841<=A&&A<=47867||47869<=A&&A<=47895||47897<=A&&A<=47923||47925<=A&&A<=47951||47953<=A&&A<=47979||47981<=A&&A<=48007||48009<=A&&A<=48035||48037<=A&&A<=48063||48065<=A&&A<=48091||48093<=A&&A<=48119||48121<=A&&A<=48147||48149<=A&&A<=48175||48177<=A&&A<=48203||48205<=A&&A<=48231||48233<=A&&A<=48259||48261<=A&&A<=48287||48289<=A&&A<=48315||48317<=A&&A<=48343||48345<=A&&A<=48371||48373<=A&&A<=48399||48401<=A&&A<=48427||48429<=A&&A<=48455||48457<=A&&A<=48483||48485<=A&&A<=48511||48513<=A&&A<=48539||48541<=A&&A<=48567||48569<=A&&A<=48595||48597<=A&&A<=48623||48625<=A&&A<=48651||48653<=A&&A<=48679||48681<=A&&A<=48707||48709<=A&&A<=48735||48737<=A&&A<=48763||48765<=A&&A<=48791||48793<=A&&A<=48819||48821<=A&&A<=48847||48849<=A&&A<=48875||48877<=A&&A<=48903||48905<=A&&A<=48931||48933<=A&&A<=48959||48961<=A&&A<=48987||48989<=A&&A<=49015||49017<=A&&A<=49043||49045<=A&&A<=49071||49073<=A&&A<=49099||49101<=A&&A<=49127||49129<=A&&A<=49155||49157<=A&&A<=49183||49185<=A&&A<=49211||49213<=A&&A<=49239||49241<=A&&A<=49267||49269<=A&&A<=49295||49297<=A&&A<=49323||49325<=A&&A<=49351||49353<=A&&A<=49379||49381<=A&&A<=49407||49409<=A&&A<=49435||49437<=A&&A<=49463||49465<=A&&A<=49491||49493<=A&&A<=49519||49521<=A&&A<=49547||49549<=A&&A<=49575||49577<=A&&A<=49603||49605<=A&&A<=49631||49633<=A&&A<=49659||49661<=A&&A<=49687||49689<=A&&A<=49715||49717<=A&&A<=49743||49745<=A&&A<=49771||49773<=A&&A<=49799||49801<=A&&A<=49827||49829<=A&&A<=49855||49857<=A&&A<=49883||49885<=A&&A<=49911||49913<=A&&A<=49939||49941<=A&&A<=49967||49969<=A&&A<=49995||49997<=A&&A<=50023||50025<=A&&A<=50051||50053<=A&&A<=50079||50081<=A&&A<=50107||50109<=A&&A<=50135||50137<=A&&A<=50163||50165<=A&&A<=50191||50193<=A&&A<=50219||50221<=A&&A<=50247||50249<=A&&A<=50275||50277<=A&&A<=50303||50305<=A&&A<=50331||50333<=A&&A<=50359||50361<=A&&A<=50387||50389<=A&&A<=50415||50417<=A&&A<=50443||50445<=A&&A<=50471||50473<=A&&A<=50499||50501<=A&&A<=50527||50529<=A&&A<=50555||50557<=A&&A<=50583||50585<=A&&A<=50611||50613<=A&&A<=50639||50641<=A&&A<=50667||50669<=A&&A<=50695||50697<=A&&A<=50723||50725<=A&&A<=50751||50753<=A&&A<=50779||50781<=A&&A<=50807||50809<=A&&A<=50835||50837<=A&&A<=50863||50865<=A&&A<=50891||50893<=A&&A<=50919||50921<=A&&A<=50947||50949<=A&&A<=50975||50977<=A&&A<=51003||51005<=A&&A<=51031||51033<=A&&A<=51059||51061<=A&&A<=51087||51089<=A&&A<=51115||51117<=A&&A<=51143||51145<=A&&A<=51171||51173<=A&&A<=51199||51201<=A&&A<=51227||51229<=A&&A<=51255||51257<=A&&A<=51283||51285<=A&&A<=51311||51313<=A&&A<=51339||51341<=A&&A<=51367||51369<=A&&A<=51395||51397<=A&&A<=51423||51425<=A&&A<=51451||51453<=A&&A<=51479||51481<=A&&A<=51507||51509<=A&&A<=51535||51537<=A&&A<=51563||51565<=A&&A<=51591||51593<=A&&A<=51619||51621<=A&&A<=51647||51649<=A&&A<=51675||51677<=A&&A<=51703||51705<=A&&A<=51731||51733<=A&&A<=51759||51761<=A&&A<=51787||51789<=A&&A<=51815||51817<=A&&A<=51843||51845<=A&&A<=51871||51873<=A&&A<=51899||51901<=A&&A<=51927||51929<=A&&A<=51955||51957<=A&&A<=51983||51985<=A&&A<=52011||52013<=A&&A<=52039||52041<=A&&A<=52067||52069<=A&&A<=52095||52097<=A&&A<=52123||52125<=A&&A<=52151||52153<=A&&A<=52179||52181<=A&&A<=52207||52209<=A&&A<=52235||52237<=A&&A<=52263||52265<=A&&A<=52291||52293<=A&&A<=52319||52321<=A&&A<=52347||52349<=A&&A<=52375||52377<=A&&A<=52403||52405<=A&&A<=52431||52433<=A&&A<=52459||52461<=A&&A<=52487||52489<=A&&A<=52515||52517<=A&&A<=52543||52545<=A&&A<=52571||52573<=A&&A<=52599||52601<=A&&A<=52627||52629<=A&&A<=52655||52657<=A&&A<=52683||52685<=A&&A<=52711||52713<=A&&A<=52739||52741<=A&&A<=52767||52769<=A&&A<=52795||52797<=A&&A<=52823||52825<=A&&A<=52851||52853<=A&&A<=52879||52881<=A&&A<=52907||52909<=A&&A<=52935||52937<=A&&A<=52963||52965<=A&&A<=52991||52993<=A&&A<=53019||53021<=A&&A<=53047||53049<=A&&A<=53075||53077<=A&&A<=53103||53105<=A&&A<=53131||53133<=A&&A<=53159||53161<=A&&A<=53187||53189<=A&&A<=53215||53217<=A&&A<=53243||53245<=A&&A<=53271||53273<=A&&A<=53299||53301<=A&&A<=53327||53329<=A&&A<=53355||53357<=A&&A<=53383||53385<=A&&A<=53411||53413<=A&&A<=53439||53441<=A&&A<=53467||53469<=A&&A<=53495||53497<=A&&A<=53523||53525<=A&&A<=53551||53553<=A&&A<=53579||53581<=A&&A<=53607||53609<=A&&A<=53635||53637<=A&&A<=53663||53665<=A&&A<=53691||53693<=A&&A<=53719||53721<=A&&A<=53747||53749<=A&&A<=53775||53777<=A&&A<=53803||53805<=A&&A<=53831||53833<=A&&A<=53859||53861<=A&&A<=53887||53889<=A&&A<=53915||53917<=A&&A<=53943||53945<=A&&A<=53971||53973<=A&&A<=53999||54001<=A&&A<=54027||54029<=A&&A<=54055||54057<=A&&A<=54083||54085<=A&&A<=54111||54113<=A&&A<=54139||54141<=A&&A<=54167||54169<=A&&A<=54195||54197<=A&&A<=54223||54225<=A&&A<=54251||54253<=A&&A<=54279||54281<=A&&A<=54307||54309<=A&&A<=54335||54337<=A&&A<=54363||54365<=A&&A<=54391||54393<=A&&A<=54419||54421<=A&&A<=54447||54449<=A&&A<=54475||54477<=A&&A<=54503||54505<=A&&A<=54531||54533<=A&&A<=54559||54561<=A&&A<=54587||54589<=A&&A<=54615||54617<=A&&A<=54643||54645<=A&&A<=54671||54673<=A&&A<=54699||54701<=A&&A<=54727||54729<=A&&A<=54755||54757<=A&&A<=54783||54785<=A&&A<=54811||54813<=A&&A<=54839||54841<=A&&A<=54867||54869<=A&&A<=54895||54897<=A&&A<=54923||54925<=A&&A<=54951||54953<=A&&A<=54979||54981<=A&&A<=55007||55009<=A&&A<=55035||55037<=A&&A<=55063||55065<=A&&A<=55091||55093<=A&&A<=55119||55121<=A&&A<=55147||55149<=A&&A<=55175||55177<=A&&A<=55203?u:A==9757||A==9977||9994<=A&&A<=9997||A==127877||127938<=A&&A<=127940||A==127943||127946<=A&&A<=127948||128066<=A&&A<=128067||128070<=A&&A<=128080||A==128110||128112<=A&&A<=128120||A==128124||128129<=A&&A<=128131||128133<=A&&A<=128135||A==128170||128372<=A&&A<=128373||A==128378||A==128400||128405<=A&&A<=128406||128581<=A&&A<=128583||128587<=A&&A<=128591||A==128675||128692<=A&&A<=128694||A==128704||A==128716||129304<=A&&A<=129308||129310<=A&&A<=129311||A==129318||129328<=A&&A<=129337||129341<=A&&A<=129342||129489<=A&&A<=129501?p:127995<=A&&A<=127999?d:A==8205?m:A==9792||A==9794||9877<=A&&A<=9878||A==9992||A==10084||A==127752||A==127806||A==127859||A==127891||A==127908||A==127912||A==127979||A==127981||A==128139||128187<=A&&A<=128188||A==128295||A==128300||A==128488||A==128640||A==128658?y:128102<=A&&A<=128105?B:g}return this}typeof PB<"u"&&PB.exports&&(PB.exports=ERe)});var lV=I((dot,AV)=>{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,QV)=>{"use strict";var bV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);QV.exports=r=>r?Object.keys(r).map(e=>[bV.has(e)?bV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,NV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},NRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),TC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",TRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};NV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new xV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[TC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[TC]&&(this[Za]?OC(()=>t.call(this,this[TC])):t.call(this,this[TC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[TC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[TRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof NRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,TV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};TV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Gc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Gc](rl.from(a[0]));for(let c=1;c<a.length;c++)l=this[Gc](a[c])}else l=this[Gc](rl.from(a));return i&&i(),l}[Gc](e){return super.write(e)}},_a=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.Z_NO_FLUSH,e.finishFlush=e.finishFlush||jc.Z_FINISH,super(e,t),this[pF]=jc.Z_FULL_FLUSH,this[tF]=e.level,this[rF]=e.strategy}params(e,t){if(!this[$f]){if(!this[Ar])throw new Error("cannot switch params when binding is closed");if(!this[Ar].params)throw new Error("not supported in this implementation");if(this[tF]!==e||this[rF]!==t){this.flush(jc.Z_SYNC_FLUSH),sF(this[Ar],"zlib binding closed");let i=this[Ar].flush;this[Ar].flush=(n,s)=>{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Gc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Gc](e)):super[Gc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},GB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends GB{constructor(e){super(e,"BrotliCompress")}},hF=class extends GB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var GRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=GRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=GV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=GV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,GV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),bF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o<t+148;o++)s+=e[o];for(let o=t+156;o<t+512;o++)s+=e[o];this.cksumValid=s===this.cksum,this.cksum===null&&s===8*32&&(this.nullBlock=!0)}[yF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=e[i])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l<t+148;l++)a+=e[l];for(let l=t+156;l<t+512;l++)a+=e[l];return this.cksum=a,nl(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return IF.name.get(this[Zn])||this[Zn]}get typeKey(){return this[Zn]}set type(e){IF.code.has(e)?this[Zn]=IF.code.get(e):this[Zn]=e}},ZRe=(r,e)=>{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=bF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s<n.length;s++)n[s]=0;return n}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],i=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+t+` `,n=Buffer.byteLength(i),s=Math.floor(Math.log(n)/Math.log(10))+1;return n+s>=Math.pow(10,s)&&(s+=1),s+n+i}};KC.parse=(r,e,t)=>new KC(AFe(lFe(r),e),t);var AFe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,lFe=r=>r.replace(/\n$/,"").split(` -`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],bF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,bF[e]])),gFe=new Map(bF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>bF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),TF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),NF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[TF](t)})}[TF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;n<this.length&&e<this.blockRemain;n++)this.buf[n+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(t)?this[xF]():this[NF](()=>this[xF]())}[NF](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let t=new Error("writing more data than expected");return t.path=this.absolute,this.emit("error",t)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[xF](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[sl](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[TF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[NF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,QFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),GF=Symbol("stat"),jF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),bFe=WB(),HF=th(),WF=bFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new QFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]<this.jobs;e=e.next)if(this[C7](e.value),e.value.ignore){let t=e.next;this[_o].removeNode(e),e.next=t}this[e0]=!1,this[$B]&&!this[_o].length&&this[$o]===0&&(this.zip?this.zip.end(d7):(super.write(d7),super.end()))}}get[sh](){return this[_o]&&this[_o].head&&this[_o].head.value}[MF](e){this[_o].shift(),this[$o]-=1,this[Jc]()}[C7](e){if(!e.pending){if(e.entry){e===this[sh]&&!e.piped&&this[n0](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[t0](e,this.statCache.get(e.absolute)):this[GF](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[i0](e,this.readdirCache.get(e.absolute)):this[jF](e),!e.readdir))){if(e.entry=this[E7](e),!e.entry){e.ignore=!0;return}e===this[sh]&&!e.piped&&this[n0](e)}}}[KF](e){return{onwarn:(t,i,n)=>this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[GF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[jF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(GC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,kn=J("fs"),XF=kn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),Q7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),b7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[Q7]=t.readSize||16*1024*1024,this[ol]=!1,this[b7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[b7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){kn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[Q7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));kn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[l0]<=0)&&(i=!1,this[Ao](),super.end()),i}emit(e,t){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[er]=="number"&&this[Ah]();break;case"error":return this[ch]?void 0:(this[ch]=!0,super.emit(e,t));default:return super.emit(e,t)}}},$F=class extends f0{[Al](){let e=!0;try{this[gh](null,kn.openSync(this[$a],"r")),e=!1}finally{e&&this[Ao]()}}[Ah](){let e=!0;try{if(!this[ol]){this[ol]=!0;do{let t=this[_F](),i=t.length===0?0:kn.readSync(this[er],t,0,t.length,null);if(!this[ZF](i,t))break}while(!0);this[ol]=!1}e=!1}finally{e&&this[Ao]()}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}},h0=class extends vFe{constructor(e,t){t=t||{},super(t),this.readable=!1,this.writable=!0,this[ch]=!1,this[oh]=!1,this[HC]=!1,this[A0]=!1,this[ea]=[],this[$a]=e,this[er]=typeof t.fd=="number"?t.fd:null,this[g0]=t.mode===void 0?438:t.mode,this[Wc]=typeof t.start=="number"?t.start:null,this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0;let i=this[Wc]!==null?"r+":"w";this[u0]=t.flags===void 0,this[al]=this[u0]?i:t.flags,this[er]===null&&this[Al]()}emit(e,t){if(e==="error"){if(this[ch])return;this[ch]=!0}return super.emit(e,t)}get fd(){return this[er]}get path(){return this[$a]}[lh](e){this[Ao](),this[oh]=!0,this.emit("error",e)}[Al](){kn.open(this[$a],this[al],this[g0],(e,t)=>this[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){kn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eT=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=kn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=kn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,kn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};GC.ReadStream=f0;GC.ReadStreamSync=$F;GC.WriteStream=h0;GC.WriteStreamSync=eT});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),TFe=dF(),tT=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rT=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),jC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),Dn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iT=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nT=Symbol("bufferConcat"),sT=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),NFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:NFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[jC]=null,this[Vc]=!1,this[Dn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[jC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[jC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rT]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rT]()),t=!1)):(this[eA]=null,t=!1),t}[rT](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iT](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iT](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[jC]=S7.parse(this[ll],this[jC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[Dn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.length<tT.length)return this[Cr]=e,!0;for(let i=0;this[Dn]===null&&i<tT.length;i++)e[i]!==tT[i]&&(this[Dn]=!1);if(this[Dn]===null){let i=this[Vc];this[Vc]=!1,this[Dn]=new TFe.Unzip,this[Dn].on("data",s=>this[p0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nT](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sT](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nT](e);else if(!e&&!this[Cr])this[sT]();else{if(this[C0]=!0,this[Cr]){this[nT](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sT]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iT](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t<i&&(this[Cr]?this[Cr]=Buffer.concat([e.slice(t),this[Cr]]):this[Cr]=e.slice(t))}end(e){this[cl]||(this[Dn]?this[Dn].end(e):(this[Vc]=!0,this.write(e)))}})});var w0=I((lat,L7)=>{"use strict";var LFe=Xf(),T7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oT=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):N7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oT(s)):s=>n(oT(s))},UFe=r=>{let e=N7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size<o)e.end(hh.readFileSync(t));else{let a=0,l=Buffer.allocUnsafe(o);for(n=hh.openSync(t,"r");a<s.size;){let c=hh.readSync(n,l,0,o,a);a+=c,e.write(l.slice(0,c))}e.end()}i=!1}finally{if(i&&n)try{hh.closeSync(n)}catch{}}},HFe=(r,e)=>{let t=new T7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},N7=r=>new T7(r)});var G7=I((cat,H7)=>{"use strict";var GFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=GFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?jFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var jFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aT(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aT=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aT(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aT(t,e),t}});var AT=I((uat,V7)=>{"use strict";var WFe=Xf(),j7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new j7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;s<o.size;s+=512){for(let u=0,g=0;u<512;u+=g){if(g=_n.readSync(n,a,u,a.length-u,s+u),s===0&&a[0]===31&&a[1]===139)throw new Error("cannot append to compressed archives");if(!g)break e}let l=new W7(a);if(!l.cksumValid)break;let c=512*Math.ceil(l.size/512);if(s+c+512>o.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new j7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AT();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eTe(i),$Fe(i,e,t)};var eTe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tTe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tTe});var rX=I((hat,tX)=>{var rTe=process.platform,{resolve:iTe,parse:nTe}=J("path"),sTe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iTe(r),rTe==="win32"){let e=/[*|"<>?:]/,{root:t}=nTe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sTe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uT=I((dat,lX)=>{var{dirname:AX}=J("path"),lT=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lT(i,e).then(s=>lT(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cT=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cT(r,e,cT(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lT,mkdirpManualSync:cT}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oTe,findMadeSync:aTe}=aX(),{mkdirpManual:ATe,mkdirpManualSync:lTe}=uT(),cTe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oTe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ATe(r,e);throw n}))),uTe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aTe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lTe(r,e);throw n}};uX.exports={mkdirpNative:cTe,mkdirpNativeSync:uTe}});var dX=I((mat,pX)=>{var fX=J("fs"),gTe=process.version,gT=gTe.replace(/^v/,"").split("."),hX=+gT[0]>10||+gT[0]==10&&+gT[1]>=12,fTe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hTe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fTe,useNativeSync:hTe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uT(),{useNative:pTe,useNativeSync:dTe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pTe(e)?CX(r,e):EX(r,e)),CTe=(r,e)=>(r=dh(r),e=ph(e),dTe(e)?mX(r,e):IX(r,e));Ch.sync=CTe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mTe=Ps.lchown?"lchown":"chown",ETe=Ps.lchownSync?"lchownSync":"chownSync",QX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ETe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},ITe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yTe=QX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fT=QX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;ITe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wTe=process.version,bX=(r,e,t)=>Ps.readdir(r,e,t),BTe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wTe)&&(bX=(r,e,t)=>Ps.readdir(r,t));var Q0=(r,e,t,i)=>{Ps[mTe](r,e,t,yTe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hT(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);Q0(o,t,i,n)});else{let s=_c.resolve(r,e.name);Q0(s,t,i,n)}},hT=(r,e,t,i)=>{bX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return Q0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return Q0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},QTe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fT(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BTe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fT(r,e,t);throw n}return i&&i.length&&i.forEach(n=>QTe(r,n,e,t)),fT(r,e,t)};xX.exports=hT;hT.sync=vX});var FX=I((yat,pT)=>{"use strict";var kX=wX(),ks=J("fs"),b0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),bTe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pT.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return bTe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(b0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(b0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},STe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pT.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return STe(g),h();if(l)return h(kX.sync(r,i));let d=lo(b0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(b0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CT=I((wat,TX)=>{var dT=Object.create(null),{hasOwnProperty:vTe}=Object.prototype;TX.exports=r=>(vTe.call(dT,r)||(dT[r]=r.normalize("NFKD")),dT[r])});var MX=I((Bat,OX)=>{var NX=J("assert"),xTe=CT(),PTe=nh(),{join:LX}=J("path"),kTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DTe=kTe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);NX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);NX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DTe?["win32 parallelization disabled"]:c.map(h=>xTe(PTe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((Qat,UX)=>{var RTe=process.platform,FTe=RTe==="win32",TTe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:NTe,O_TRUNC:LTe,O_WRONLY:OTe,UV_FS_O_FILEMAP:KX=0}=TTe.constants,MTe=FTe&&!!KX,KTe=512*1024,UTe=KX|LTe|NTe|OTe;UX.exports=MTe?r=>r<KTe?UTe:"w":()=>"w"});var ST=I((bat,tZ)=>{"use strict";var HTe=J("assert"),GTe=y0(),Ht=J("fs"),jTe=fh(),rA=J("path"),_X=FX(),GX=SF(),YTe=MX(),qTe=vF(),$n=th(),JTe=nh(),WTe=CT(),jX=Symbol("onEntry"),IT=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yT=Symbol("isReusable"),Ds=Symbol("makeFs"),wT=Symbol("file"),BT=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),ji=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mT=Symbol("ended"),ET=Symbol("maybeClose"),QT=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zTe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zTe==="win32",VTe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XTe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WTe(JTe($n(r))).toLowerCase(),ZTe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Te=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends GTe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mT]=!0,this[ET]()},super(e),this[VC]=!1,this.reservations=YTe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mT]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[jX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[ET](){this[mT]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join("/"),e.type==="Link"){let i=$n(e.linkpath).split("/");if(i.length>=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qTe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+GX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+GX.encode(e.path.substr(i.length))}return!0}[jX](e){if(!this[zX](e))return e.resume();switch(HTe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IT](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[ji](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wT](e,t){let i=e.mode&4095||this.fmode,n=new jTe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[ji](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[ji](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[ji](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[ji](l,e),t()}),e.pipe(a)),a.pipe(n)}[BT](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[ji](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[ET]()}[QT](e){this[mh](),e.resume()}[yT](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IT](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Te(this.dirCache):e.type!=="Directory"&&ZTe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[ji](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[ji](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[QT](e),i();return}if(a||this[yT](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VTe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[ji](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wT](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BT](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[ji](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},bT=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IT](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[ji](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[ji](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[QT](e);if(t||this[yT](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XTe(e.absolute));this[Ds](n,e)}[wT](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[ji](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[ji](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BT](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[ji](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[ji](s,e)}}};ZC.Sync=bT;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Te=Xf(),T0=ST(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vT=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Te(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eNe(i,e),i.file&&i.sync?tNe(i):i.file?rNe(i,t):i.sync?iNe(i):nNe(i)};var eNe=(r,e)=>{let t=new Map(e.map(s=>[vT(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vT(s)):s=>n(vT(s))},tNe=r=>{let e=new T0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rNe=(r,e)=>{let t=new T0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iNe=r=>new T0.Sync(r),nNe=r=>new T0(r)});var aZ=I(li=>{"use strict";li.c=li.create=G7();li.r=li.replace=AT();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=ST();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xT;cZ.exports.getContent=()=>(typeof xT>"u"&&(xT=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xT)});var CZ=I((PT,dZ)=>{(function(r,e){typeof PT=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PT,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var M0=I((_at,vZ)=>{var wNe=Ss(),BNe=fC(),QNe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,bNe=/^\w*$/;function SNe(r,e){if(wNe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BNe(r)?!0:bNe.test(r)||!QNe.test(r)||e!=null&&r in Object(e)}vZ.exports=SNe});var K0=I(($at,xZ)=>{var vNe=Nc(),xNe=xn(),PNe="[object AsyncFunction]",kNe="[object Function]",DNe="[object GeneratorFunction]",RNe="[object Proxy]";function FNe(r){if(!xNe(r))return!1;var e=vNe(r);return e==kNe||e==DNe||e==PNe||e==RNe}xZ.exports=FNe});var kZ=I((eAt,PZ)=>{var TNe=Is(),NNe=TNe["__core-js_shared__"];PZ.exports=NNe});var FZ=I((tAt,RZ)=>{var OT=kZ(),DZ=function(){var r=/[^.]+$/.exec(OT&&OT.keys&&OT.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LNe(r){return!!DZ&&DZ in r}RZ.exports=LNe});var MT=I((rAt,TZ)=>{var ONe=Function.prototype,MNe=ONe.toString;function KNe(r){if(r!=null){try{return MNe.call(r)}catch{}try{return r+""}catch{}}return""}TZ.exports=KNe});var LZ=I((iAt,NZ)=>{var UNe=K0(),HNe=FZ(),GNe=xn(),jNe=MT(),YNe=/[\\^$.*+?()[\]{}|]/g,qNe=/^\[object .+?Constructor\]$/,JNe=Function.prototype,WNe=Object.prototype,zNe=JNe.toString,VNe=WNe.hasOwnProperty,XNe=RegExp("^"+zNe.call(VNe).replace(YNe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZNe(r){if(!GNe(r)||HNe(r))return!1;var e=UNe(r)?XNe:qNe;return e.test(jNe(r))}NZ.exports=ZNe});var MZ=I((nAt,OZ)=>{function _Ne(r,e){return r==null?void 0:r[e]}OZ.exports=_Ne});var hl=I((sAt,KZ)=>{var $Ne=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Ne(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var jZ=I((aAt,GZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}GZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=jZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Eh.prototype.clear=mLe;Eh.prototype.delete=ELe;Eh.prototype.get=ILe;Eh.prototype.has=yLe;Eh.prototype.set=wLe;_Z.exports=Eh});var t_=I((fAt,e_)=>{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function QLe(r,e){return r===e||r!==r&&e!==e}r_.exports=QLe});var em=I((pAt,i_)=>{var bLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(bLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function TLe(r){return FLe(this.__data__,r)>-1}A_.exports=TLe});var u_=I((EAt,c_)=>{var NLe=em();function LLe(r,e){var t=this.__data__,i=NLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}yh.prototype.clear=OLe;yh.prototype.delete=MLe;yh.prototype.get=KLe;yh.prototype.has=ULe;yh.prototype.set=HLe;g_.exports=yh});var U0=I((yAt,f_)=>{var GLe=hl(),jLe=Is(),YLe=GLe(jLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((QAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((bAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var b_=I((vAt,Q_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}Q_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=b_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}wh.prototype.clear=sOe;wh.prototype.delete=oOe;wh.prototype.get=aOe;wh.prototype.has=AOe;wh.prototype.set=lOe;x_.exports=wh});var D_=I((kAt,k_)=>{var P_=H0(),cOe="Expected a function";function KT(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KT.Cache||P_),t}KT.Cache=P_;k_.exports=KT});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var N_=I((RAt,T_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});T_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=N_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((TAt,O_)=>{var BOe=fC(),QOe=1/0;function bOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-QOe?"-0":e}O_.exports=bOe});var im=I((NAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t<i;)r=r[vOe(e[t++])];return t&&t==i?r:void 0}M_.exports=xOe});var UT=I((LAt,K_)=>{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var Qh=I((OAt,H_)=>{var U_=UT();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var G0=I((MAt,G_)=>{var ROe=Qh(),FOe=Ih(),TOe=Object.prototype,NOe=TOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(NOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}G_.exports=LOe});var nm=I((KAt,j_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r<e}j_.exports=KOe});var HT=I((UAt,q_)=>{var UOe=G0(),HOe=Bh(),GOe=nm(),Y_=xn(),jOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n<s;){var l=jOe(e[n]),c=t;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(n!=o){var u=a[l];c=i?i(u,l,a):void 0,c===void 0&&(c=Y_(u)?u:GOe(e[n+1])?[]:{})}UOe(a,l,c),a=a[l]}return r}q_.exports=YOe});var W_=I((HAt,J_)=>{var qOe=im(),JOe=HT(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i<n;){var o=e[i],a=qOe(r,o);t(a,o)&&JOe(s,WOe(o,r),a)}return s}J_.exports=zOe});var V_=I((GAt,z_)=>{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((jAt,X_)=>{var XOe=Nc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var j0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var GT=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=j0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i<n;){var o=uMe(e[i]);if(!(s=r!=null&&t(r,o)))break;r=r[o]}return s||++i!=n?s:(n=r==null?0:r.length,!!n&&cMe(n)&&lMe(o,n)&&(AMe(r)||aMe(r)))}r$.exports=gMe});var jT=I((WAt,i$)=>{var fMe=V_(),hMe=GT();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=jT();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}o$.exports=EMe});var c$=I((XAt,l$)=>{var a$=Tc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),QMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=QMe),n||(n=[]);++s<o;){var a=r[s];e>0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var bMe=f$();function SMe(r){var e=r==null?0:r.length;return e?bMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YT=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n<s;)o[n]=i[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=i[n];return a[e]=t(o),xMe(r,this,a)}}E$.exports=PMe});var y$=I((tlt,I$)=>{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var b$=I((ilt,Q$)=>{var RMe=y$(),B$=UT(),FMe=q0(),TMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;Q$.exports=TMe});var v$=I((nlt,S$)=>{var NMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=NMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qT=I((slt,x$)=>{var KMe=b$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var GMe=p$(),jMe=YT(),YMe=qT();function qMe(r){return YMe(jMe(r,void 0,GMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var j$=I((kct,G$)=>{"use strict";var _T;try{_T=Map}catch{}var $T;try{$T=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_T&&r instanceof _T)return new Map(Array.from(r.entries()));if($T&&r instanceof $T)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}G$.exports=H$});var am=I(eN=>{"use strict";Object.defineProperty(eN,"__esModule",{value:!0});eN.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Tct,tee)=>{var p1e=eee(),d1e=GT();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eQ=>{"use strict";Object.defineProperty(eQ,"__esModule",{value:!0});eQ.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tN=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tN;eQ.default=y1e});var iN=I(rN=>{"use strict";Object.defineProperty(rN,"__esModule",{value:!0});rN.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});tQ.default=void 0;var B1e=nee(am()),Q1e=nee(iN());function nee(r){return r&&r.__esModule?r:{default:r}}function nN(){return nN=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},nN.apply(this,arguments)}var b1e=/\$\{\s*(\w+)\s*\}/g,Ph=class extends Error{static formatError(e,t){let i=t.label||t.path||"this";return i!==t.path&&(t=nN({},t,{path:i})),typeof e=="string"?e.replace(b1e,(n,s)=>(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,Q1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tQ.default=Ph});var rQ=I(oN=>{"use strict";Object.defineProperty(oN,"__esModule",{value:!0});oN.default=x1e;var sN=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sN.default(o,s,l)):c(null,s);for(let h=0;h<i.length;h++){let p=i[h];p(n,function(m){if(m){if(!sN.default.isError(m))return c(m,s);if(t)return m.value=s,c(m,s);g.push(m)}if(--u<=0){if(g.length&&(a&&g.sort(a),o.length&&g.push(...o),o=g),o.length){c(new sN.default(o,s,l),s);return}c(null,s)}})}}});var oee=I((Uct,see)=>{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aN=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((Gct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}Aee.exports=R1e});var uee=I((jct,cee)=>{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var T1e=Is(),N1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?T1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||N1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Nc(),U1e=j0(),H1e=Jo(),G1e="[object Arguments]",j1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[G1e]=mr[j1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var iQ=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nQ=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AN=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AN&&AN.binding&&AN.binding("util")}catch{}}();Dh.exports=dKe});var sQ=I((Jct,yee)=>{var CKe=dee(),mKe=iQ(),Eee=nQ(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lN=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),QKe=nm(),bKe=sQ(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&bKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||QKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var oQ=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cN=I((Vct,Qee)=>{function DKe(r,e){return function(t){return r(e(t))}}Qee.exports=DKe});var See=I((Xct,bee)=>{var RKe=cN(),FKe=RKe(Object.keys,Object);bee.exports=FKe});var xee=I((Zct,vee)=>{var TKe=oQ(),NKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!TKe(r))return NKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=j0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var GKe=lN(),jKe=xee(),YKe=fm();function qKe(r){return YKe(r)?GKe(r):jKe(r)}kee.exports=qKe});var uN=I((eut,Dee)=>{var JKe=aN(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Nee=I((rut,Tee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Tee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length<iUe-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new rUe(i)}return t.set(r,e),this.size=t.size,this}Uee.exports=nUe});var hm=I((out,Gee)=>{var sUe=tm(),oUe=Fee(),aUe=Nee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;Gee.exports=Fh});var Yee=I((aut,jee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}jee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function aQ(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e<t;)this.add(r[e])}aQ.prototype.add=aQ.prototype.push=pUe;aQ.prototype.has=dUe;Wee.exports=aQ});var Xee=I((cut,Vee)=>{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}Vee.exports=CUe});var _ee=I((uut,Zee)=>{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gN=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function QUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g<a;){var d=r[g],m=e[g];if(i)var y=o?i(m,d,g,e,r,s):i(d,m,g,r,e,s);if(y!==void 0){if(y)continue;h=!1;break}if(p){if(!IUe(e,function(B,S){if(!yUe(p,S)&&(d===B||n(d,B,t,i,s)))return p.push(S)})){h=!1;break}}else if(!(d===m||n(d,m,t,i,s))){h=!1;break}}return s.delete(r),s.delete(e),h}$ee.exports=QUe});var fN=I((fut,ete)=>{var bUe=Is(),SUe=bUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Tc(),ote=fN(),PUe=Ih(),kUe=gN(),DUe=rte(),RUe=nte(),FUe=1,TUe=2,NUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",GUe="[object String]",jUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hN=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case NUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case GUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=TUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case jUe:if(hN)return hN.call(r)==hN.call(e)}return!1}Ate.exports=JUe});var pN=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t<i;){var o=r[t];e(o,t,r)&&(s[n++]=o)}return s}ute.exports=XUe});var dN=I((Eut,fte)=>{function ZUe(){return[]}fte.exports=ZUe});var AQ=I((Iut,pte)=>{var _Ue=gte(),$Ue=dN(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CN=I((yut,dte)=>{var i2e=pN(),n2e=AQ(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CN(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g<l;){h=a[g];var B=r[h],S=e[h];if(i)var P=o?i(S,B,h,e,r,s):i(B,S,h,r,e,s);if(!(P===void 0?B===S||n(B,S,t,i,s):P)){m=!1;break}y||(y=h=="constructor")}if(m&&!y){var F=r.constructor,H=e.constructor;F!=H&&"constructor"in r&&"constructor"in e&&!(typeof F=="function"&&F instanceof F&&typeof H=="function"&&H instanceof H)&&(m=!1)}return s.delete(r),s.delete(e),m}mte.exports=c2e});var yte=I((But,Ite)=>{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((Qut,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var bte=I((but,Qte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");Qte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Tte)=>{var mN=yte(),EN=U0(),IN=Bte(),yN=bte(),wN=vte(),Fte=Nc(),Th=MT(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",Q2e=Th(mN),b2e=Th(EN),S2e=Th(IN),v2e=Th(yN),x2e=Th(wN),tu=Fte;(mN&&tu(new mN(new ArrayBuffer(1)))!=Rte||EN&&tu(new EN)!=xte||IN&&tu(IN.resolve())!=Pte||yN&&tu(new yN)!=kte||wN&&tu(new wN)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Th(t):"";if(i)switch(i){case Q2e:return Rte;case b2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Tte.exports=tu});var Gte=I((xut,Hte)=>{var BN=hm(),P2e=gN(),k2e=lte(),D2e=Ete(),Nte=pm(),Lte=Ss(),Ote=cm(),R2e=sQ(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lQ="[object Object]",T2e=Object.prototype,Ute=T2e.hasOwnProperty;function N2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Nte(r),c=a?Kte:Nte(e);l=l==Mte?lQ:l,c=c==Mte?lQ:c;var u=l==lQ,g=c==lQ,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BN),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BN),n(m,y,t,i,s)}}return h?(s||(s=new BN),D2e(r,e,t,i,n,s)):!1}Hte.exports=N2e});var QN=I((Put,qte)=>{var L2e=Gte(),jte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!jte(r)&&!jte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=QN(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n<s;){a=t[n];var l=a[0],c=r[l],u=a[1];if(o&&a[2]){if(c===void 0&&!(l in r))return!1}else{var g=new O2e;if(i)var h=i(c,u,l,r,e,g);if(!(h===void 0?M2e(u,c,K2e|U2e,i,g):h))return!1}}return!0}Jte.exports=H2e});var bN=I((Dut,zte)=>{var G2e=xn();function j2e(r){return r===r&&!G2e(r)}zte.exports=j2e});var Xte=I((Rut,Vte)=>{var Y2e=bN(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var SN=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Tut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=SN();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cQ=I((Nut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=QN(),tHe=cQ(),rHe=jT(),iHe=M0(),nHe=bN(),sHe=SN(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vN=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xN=I((Hut,cre)=>{var QHe=Qh(),bHe=uN(),SHe=vN();function vHe(r,e){var t={};return e=SHe(e,3),bHe(r,function(i,n,s){QHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((Gut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DN=512,ure=new ru(DN),gre=new ru(DN),fre=new ru(DN);pre.exports={Cache:ru,split:kN,normalizePath:PN,setter:function(r){var e=PN(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s<o-1;){var l=e[s];if(l==="__proto__"||l==="constructor"||l==="prototype")return i;a=a[e[s++]]}a[e[s]]=n})},getter:function(r,e){var t=PN(r);return fre.get(r)||fre.set(r,function(n){for(var s=0,o=t.length;s<o;)if(n!=null||!e)n=n[t[s++]];else return;return n})},join:function(r){return r.reduce(function(e,t){return e+(RN(t)||hre.test(t)?"["+t+"]":(e?".":"")+t)},"")},forEach:function(r,e,t){RHe(Array.isArray(r)?r:kN(r),e,t)}};function PN(r){return ure.get(r)||ure.set(r,kN(r).map(function(e){return e.replace(DHe,"$2")}))}function kN(r){return r.match(xHe)}function RHe(r,e,t){var i=r.length,n,s,o,a;for(s=0;s<i;s++)n=r[s],n&&(NHe(n)&&(n='"'+n+'"'),a=RN(n),o=!a&&/^\d+$/.test(n),e.call(t,n,a,o,s,r))}function RN(r){return typeof r=="string"&&r&&["'",'"'].indexOf(r.charAt(0))!==-1}function FHe(r){return r.match(PHe)&&!r.match(hre)}function THe(r){return kHe.test(r)}function NHe(r){return!RN(r)&&(FHe(r)||THe(r))}});var iu=I(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),uQ={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===uQ.context,this.isValue=this.key[0]===uQ.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?uQ.context:this.isValue?uQ.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(TN=>{"use strict";Object.defineProperty(TN,"__esModule",{value:!0});TN.default=HHe;var MHe=FN(xN()),gQ=FN(eu()),KHe=FN(iu());function FN(r){return r&&r.__esModule?r:{default:r}}function fQ(){return fQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},fQ.apply(this,arguments)}function UHe(r,e){if(r==null)return{};var t={},i=Object.keys(r),n,s;for(s=0;s<i.length;s++)n=i[s],!(e.indexOf(n)>=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fQ({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gQ.default(gQ.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fQ({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gQ.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gQ.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var NN=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var GHe=dm(),jHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,GHe.forEach)(e,(a,l,c)=>{let u=l?jHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hQ=>{"use strict";Object.defineProperty(hQ,"__esModule",{value:!0});hQ.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hQ.default=Im});var oA=I(dQ=>{"use strict";Object.defineProperty(dQ,"__esModule",{value:!0});dQ.default=void 0;var Ire=sA(j$()),Nh=nA(),WHe=sA(iee()),yre=sA(rQ()),pQ=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=NN(),XHe=sA(iN()),Bre=sA(eu()),Qre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Rs.apply(this,arguments)}var co=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new Qre.default,this._blacklist=new Qre.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Nh.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". +`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],QF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,QF[e]])),gFe=new Map(QF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>QF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;n<this.length&&e<this.blockRemain;n++)this.buf[n+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(t)?this[xF]():this[TF](()=>this[xF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let t=new Error("writing more data than expected");return t.path=this.absolute,this.emit("error",t)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[xF](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[sl](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[NF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[TF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,bFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),GF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),QFe=WB(),HF=th(),WF=QFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new bFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]<this.jobs;e=e.next)if(this[C7](e.value),e.value.ignore){let t=e.next;this[_o].removeNode(e),e.next=t}this[e0]=!1,this[$B]&&!this[_o].length&&this[$o]===0&&(this.zip?this.zip.end(d7):(super.write(d7),super.end()))}}get[sh](){return this[_o]&&this[_o].head&&this[_o].head.value}[MF](e){this[_o].shift(),this[$o]-=1,this[Jc]()}[C7](e){if(!e.pending){if(e.entry){e===this[sh]&&!e.piped&&this[n0](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[t0](e,this.statCache.get(e.absolute)):this[jF](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[i0](e,this.readdirCache.get(e.absolute)):this[GF](e),!e.readdir))){if(e.entry=this[E7](e),!e.entry){e.ignore=!0;return}e===this[sh]&&!e.piped&&this[n0](e)}}}[KF](e){return{onwarn:(t,i,n)=>this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[GF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,kn=J("fs"),XF=kn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),b7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),Q7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[b7]=t.readSize||16*1024*1024,this[ol]=!1,this[Q7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[Q7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){kn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[b7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));kn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[l0]<=0)&&(i=!1,this[Ao](),super.end()),i}emit(e,t){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[er]=="number"&&this[Ah]();break;case"error":return this[ch]?void 0:(this[ch]=!0,super.emit(e,t));default:return super.emit(e,t)}}},$F=class extends f0{[Al](){let e=!0;try{this[gh](null,kn.openSync(this[$a],"r")),e=!1}finally{e&&this[Ao]()}}[Ah](){let e=!0;try{if(!this[ol]){this[ol]=!0;do{let t=this[_F](),i=t.length===0?0:kn.readSync(this[er],t,0,t.length,null);if(!this[ZF](i,t))break}while(!0);this[ol]=!1}e=!1}finally{e&&this[Ao]()}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}},h0=class extends vFe{constructor(e,t){t=t||{},super(t),this.readable=!1,this.writable=!0,this[ch]=!1,this[oh]=!1,this[HC]=!1,this[A0]=!1,this[ea]=[],this[$a]=e,this[er]=typeof t.fd=="number"?t.fd:null,this[g0]=t.mode===void 0?438:t.mode,this[Wc]=typeof t.start=="number"?t.start:null,this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0;let i=this[Wc]!==null?"r+":"w";this[u0]=t.flags===void 0,this[al]=this[u0]?i:t.flags,this[er]===null&&this[Al]()}emit(e,t){if(e==="error"){if(this[ch])return;this[ch]=!0}return super.emit(e,t)}get fd(){return this[er]}get path(){return this[$a]}[lh](e){this[Ao](),this[oh]=!0,this.emit("error",e)}[Al](){kn.open(this[$a],this[al],this[g0],(e,t)=>this[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){kn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=kn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=kn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,kn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eN});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),NFe=dF(),tN=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rN=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),Dn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),TFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:TFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[GC]=null,this[Vc]=!1,this[Dn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[GC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rN]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[eA]=null,t=!1),t}[rN](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iN](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[GC]=S7.parse(this[ll],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[Dn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.length<tN.length)return this[Cr]=e,!0;for(let i=0;this[Dn]===null&&i<tN.length;i++)e[i]!==tN[i]&&(this[Dn]=!1);if(this[Dn]===null){let i=this[Vc];this[Vc]=!1,this[Dn]=new NFe.Unzip,this[Dn].on("data",s=>this[p0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sN](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nN](e);else if(!e&&!this[Cr])this[sN]();else{if(this[C0]=!0,this[Cr]){this[nN](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sN]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t<i&&(this[Cr]?this[Cr]=Buffer.concat([e.slice(t),this[Cr]]):this[Cr]=e.slice(t))}end(e){this[cl]||(this[Dn]?this[Dn].end(e):(this[Vc]=!0,this.write(e)))}})});var w0=I((lat,L7)=>{"use strict";var LFe=Xf(),N7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oN=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):T7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},UFe=r=>{let e=T7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size<o)e.end(hh.readFileSync(t));else{let a=0,l=Buffer.allocUnsafe(o);for(n=hh.openSync(t,"r");a<s.size;){let c=hh.readSync(n,l,0,o,a);a+=c,e.write(l.slice(0,c))}e.end()}i=!1}finally{if(i&&n)try{hh.closeSync(n)}catch{}}},HFe=(r,e)=>{let t=new N7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},T7=r=>new N7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?GFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var GFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aN(t,e),t}});var AN=I((uat,V7)=>{"use strict";var WFe=Xf(),G7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new G7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;s<o.size;s+=512){for(let u=0,g=0;u<512;u+=g){if(g=_n.readSync(n,a,u,a.length-u,s+u),s===0&&a[0]===31&&a[1]===139)throw new Error("cannot append to compressed archives");if(!g)break e}let l=new W7(a);if(!l.cksumValid)break;let c=512*Math.ceil(l.size/512);if(s+c+512>o.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new G7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AN();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eNe(i),$Fe(i,e,t)};var eNe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tNe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tNe});var rX=I((hat,tX)=>{var rNe=process.platform,{resolve:iNe,parse:nNe}=J("path"),sNe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iNe(r),rNe==="win32"){let e=/[*|"<>?:]/,{root:t}=nNe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sNe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uN=I((dat,lX)=>{var{dirname:AX}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oNe,findMadeSync:aNe}=aX(),{mkdirpManual:ANe,mkdirpManualSync:lNe}=uN(),cNe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oNe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ANe(r,e);throw n}))),uNe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aNe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lNe(r,e);throw n}};uX.exports={mkdirpNative:cNe,mkdirpNativeSync:uNe}});var dX=I((mat,pX)=>{var fX=J("fs"),gNe=process.version,gN=gNe.replace(/^v/,"").split("."),hX=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,fNe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hNe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fNe,useNativeSync:hNe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uN(),{useNative:pNe,useNativeSync:dNe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pNe(e)?CX(r,e):EX(r,e)),CNe=(r,e)=>(r=dh(r),e=ph(e),dNe(e)?mX(r,e):IX(r,e));Ch.sync=CNe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mNe=Ps.lchown?"lchown":"chown",ENe=Ps.lchownSync?"lchownSync":"chownSync",bX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ENe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},INe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yNe=bX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=bX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;INe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wNe=process.version,QX=(r,e,t)=>Ps.readdir(r,e,t),BNe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wNe)&&(QX=(r,e,t)=>Ps.readdir(r,t));var b0=(r,e,t,i)=>{Ps[mNe](r,e,t,yNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hN(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);b0(o,t,i,n)});else{let s=_c.resolve(r,e.name);b0(s,t,i,n)}},hN=(r,e,t,i)=>{QX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return b0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return b0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},bNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fN(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>bNe(r,n,e,t)),fN(r,e,t)};xX.exports=hN;hN.sync=vX});var FX=I((yat,pN)=>{"use strict";var kX=wX(),ks=J("fs"),Q0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),QNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return QNe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(Q0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(Q0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},SNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return SNe(g),h();if(l)return h(kX.sync(r,i));let d=lo(Q0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(Q0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CN=I((wat,NX)=>{var dN=Object.create(null),{hasOwnProperty:vNe}=Object.prototype;NX.exports=r=>(vNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var MX=I((Bat,OX)=>{var TX=J("assert"),xNe=CN(),PNe=nh(),{join:LX}=J("path"),kNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DNe=kNe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);TX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);TX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DNe?["win32 parallelization disabled"]:c.map(h=>xNe(PNe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((bat,UX)=>{var RNe=process.platform,FNe=RNe==="win32",NNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:TNe,O_TRUNC:LNe,O_WRONLY:ONe,UV_FS_O_FILEMAP:KX=0}=NNe.constants,MNe=FNe&&!!KX,KNe=512*1024,UNe=KX|LNe|TNe|ONe;UX.exports=MNe?r=>r<KNe?UNe:"w":()=>"w"});var SN=I((Qat,tZ)=>{"use strict";var HNe=J("assert"),jNe=y0(),Ht=J("fs"),GNe=fh(),rA=J("path"),_X=FX(),jX=SF(),YNe=MX(),qNe=vF(),$n=th(),JNe=nh(),WNe=CN(),GX=Symbol("onEntry"),IN=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yN=Symbol("isReusable"),Ds=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Gi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),bN=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zNe==="win32",VNe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XNe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WNe(JNe($n(r))).toLowerCase(),ZNe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Ne=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[VC]=!1,this.reservations=YNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[GX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join("/"),e.type==="Link"){let i=$n(e.linkpath).split("/");if(i.length>=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[GX](e){if(!this[zX](e))return e.resume();switch(HNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Gi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new GNe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Gi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Gi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Gi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Gi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Gi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[EN]()}[bN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IN](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Ne(this.dirCache):e.type!=="Directory"&&ZNe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Gi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Gi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[bN](e),i();return}if(a||this[yN](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VNe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Gi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Gi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},QN=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IN](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Gi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Gi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[bN](e);if(t||this[yN](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XNe(e.absolute));this[Ds](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Gi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Gi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Gi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Gi](s,e)}}};ZC.Sync=QN;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Ne=Xf(),N0=SN(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vN=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)};var eTe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},tTe=r=>{let e=new N0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rTe=(r,e)=>{let t=new N0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new N0.Sync(r),nTe=r=>new N0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AN();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=SN();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xN;cZ.exports.getContent=()=>(typeof xN>"u"&&(xN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xN)});var CZ=I((PN,dZ)=>{(function(r,e){typeof PN=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` +`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),bTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,QTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:QTe.test(r)||!bTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,xZ)=>{var vTe=Tc(),xTe=xn(),PTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!xTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==PTe||e==RTe}xZ.exports=FTe});var kZ=I((eAt,PZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];PZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=xn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Eh.prototype.clear=mLe;Eh.prototype.delete=ELe;Eh.prototype.get=ILe;Eh.prototype.has=yLe;Eh.prototype.set=wLe;_Z.exports=Eh});var t_=I((fAt,e_)=>{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function bLe(r,e){return r===e||r!==r&&e!==e}r_.exports=bLe});var em=I((pAt,i_)=>{var QLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(QLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}yh.prototype.clear=OLe;yh.prototype.delete=MLe;yh.prototype.get=KLe;yh.prototype.has=ULe;yh.prototype.set=HLe;g_.exports=yh});var U0=I((yAt,f_)=>{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((bAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((QAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var Q_=I((vAt,b_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}b_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=Q_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}wh.prototype.clear=sOe;wh.prototype.delete=oOe;wh.prototype.get=aOe;wh.prototype.has=AOe;wh.prototype.set=lOe;x_.exports=wh});var D_=I((kAt,k_)=>{var P_=H0(),cOe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||P_),t}KN.Cache=P_;k_.exports=KN});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var T_=I((RAt,N_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});N_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=T_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((NAt,O_)=>{var BOe=fC(),bOe=1/0;function QOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-bOe?"-0":e}O_.exports=QOe});var im=I((TAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t<i;)r=r[vOe(e[t++])];return t&&t==i?r:void 0}M_.exports=xOe});var UN=I((LAt,K_)=>{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var bh=I((OAt,H_)=>{var U_=UN();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=bh(),FOe=Ih(),NOe=Object.prototype,TOe=NOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(TOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,G_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r<e}G_.exports=KOe});var HN=I((UAt,q_)=>{var UOe=j0(),HOe=Bh(),jOe=nm(),Y_=xn(),GOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n<s;){var l=GOe(e[n]),c=t;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(n!=o){var u=a[l];c=i?i(u,l,a):void 0,c===void 0&&(c=Y_(u)?u:jOe(e[n+1])?[]:{})}UOe(a,l,c),a=a[l]}return r}q_.exports=YOe});var W_=I((HAt,J_)=>{var qOe=im(),JOe=HN(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i<n;){var o=e[i],a=qOe(r,o);t(a,o)&&JOe(s,WOe(o,r),a)}return s}J_.exports=zOe});var V_=I((jAt,z_)=>{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((GAt,X_)=>{var XOe=Tc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var G0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jN=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=G0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i<n;){var o=uMe(e[i]);if(!(s=r!=null&&t(r,o)))break;r=r[o]}return s||++i!=n?s:(n=r==null?0:r.length,!!n&&cMe(n)&&lMe(o,n)&&(AMe(r)||aMe(r)))}r$.exports=gMe});var GN=I((WAt,i$)=>{var fMe=V_(),hMe=jN();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=GN();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}o$.exports=EMe});var c$=I((XAt,l$)=>{var a$=Nc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),bMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=bMe),n||(n=[]);++s<o;){var a=r[s];e>0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var QMe=f$();function SMe(r){var e=r==null?0:r.length;return e?QMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YN=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n<s;)o[n]=i[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=i[n];return a[e]=t(o),xMe(r,this,a)}}E$.exports=PMe});var y$=I((tlt,I$)=>{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var Q$=I((ilt,b$)=>{var RMe=y$(),B$=UN(),FMe=q0(),NMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;b$.exports=NMe});var v$=I((nlt,S$)=>{var TMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=TMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qN=I((slt,x$)=>{var KMe=Q$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var jMe=p$(),GMe=YN(),YMe=qN();function qMe(r){return YMe(GMe(r,void 0,jMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var G$=I((kct,j$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Nct,tee)=>{var p1e=eee(),d1e=jN();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tT;eb.default=y1e});var iT=I(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.default=void 0;var B1e=nee(am()),b1e=nee(iT());function nee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},nT.apply(this,arguments)}var Q1e=/\$\{\s*(\w+)\s*\}/g,Ph=class extends Error{static formatError(e,t){let i=t.label||t.path||"this";return i!==t.path&&(t=nT({},t,{path:i})),typeof e=="string"?e.replace(Q1e,(n,s)=>(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,b1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tb.default=Ph});var rb=I(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=x1e;var sT=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let h=0;h<i.length;h++){let p=i[h];p(n,function(m){if(m){if(!sT.default.isError(m))return c(m,s);if(t)return m.value=s,c(m,s);g.push(m)}if(--u<=0){if(g.length&&(a&&g.sort(a),o.length&&g.push(...o),o=g),o.length){c(new sT.default(o,s,l),s);return}c(null,s)}})}}});var oee=I((Uct,see)=>{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aT=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}Aee.exports=R1e});var uee=I((Gct,cee)=>{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var N1e=Is(),T1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?N1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||T1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Tc(),U1e=G0(),H1e=Jo(),j1e="[object Arguments]",G1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[G1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var ib=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nb=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AT=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();Dh.exports=dKe});var sb=I((Jct,yee)=>{var CKe=dee(),mKe=ib(),Eee=nb(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lT=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),bKe=nm(),QKe=sb(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&QKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||bKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var ob=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cT=I((Vct,bee)=>{function DKe(r,e){return function(t){return r(e(t))}}bee.exports=DKe});var See=I((Xct,Qee)=>{var RKe=cT(),FKe=RKe(Object.keys,Object);Qee.exports=FKe});var xee=I((Zct,vee)=>{var NKe=ob(),TKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!NKe(r))return TKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=G0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lT(),GKe=xee(),YKe=fm();function qKe(r){return YKe(r)?jKe(r):GKe(r)}kee.exports=qKe});var uT=I((eut,Dee)=>{var JKe=aT(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Tee=I((rut,Nee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Nee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length<iUe-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new rUe(i)}return t.set(r,e),this.size=t.size,this}Uee.exports=nUe});var hm=I((out,jee)=>{var sUe=tm(),oUe=Fee(),aUe=Tee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Yee=I((aut,Gee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Gee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function ab(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e<t;)this.add(r[e])}ab.prototype.add=ab.prototype.push=pUe;ab.prototype.has=dUe;Wee.exports=ab});var Xee=I((cut,Vee)=>{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}Vee.exports=CUe});var _ee=I((uut,Zee)=>{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gT=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function bUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g<a;){var d=r[g],m=e[g];if(i)var y=o?i(m,d,g,e,r,s):i(d,m,g,r,e,s);if(y!==void 0){if(y)continue;h=!1;break}if(p){if(!IUe(e,function(B,S){if(!yUe(p,S)&&(d===B||n(d,B,t,i,s)))return p.push(S)})){h=!1;break}}else if(!(d===m||n(d,m,t,i,s))){h=!1;break}}return s.delete(r),s.delete(e),h}$ee.exports=bUe});var fT=I((fut,ete)=>{var QUe=Is(),SUe=QUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Nc(),ote=fT(),PUe=Ih(),kUe=gT(),DUe=rte(),RUe=nte(),FUe=1,NUe=2,TUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hT=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case TUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(hT)return hT.call(r)==hT.call(e)}return!1}Ate.exports=JUe});var pT=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t<i;){var o=r[t];e(o,t,r)&&(s[n++]=o)}return s}ute.exports=XUe});var dT=I((Eut,fte)=>{function ZUe(){return[]}fte.exports=ZUe});var Ab=I((Iut,pte)=>{var _Ue=gte(),$Ue=dT(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CT=I((yut,dte)=>{var i2e=pT(),n2e=Ab(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CT(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g<l;){h=a[g];var B=r[h],S=e[h];if(i)var P=o?i(S,B,h,e,r,s):i(B,S,h,r,e,s);if(!(P===void 0?B===S||n(B,S,t,i,s):P)){m=!1;break}y||(y=h=="constructor")}if(m&&!y){var F=r.constructor,H=e.constructor;F!=H&&"constructor"in r&&"constructor"in e&&!(typeof F=="function"&&F instanceof F&&typeof H=="function"&&H instanceof H)&&(m=!1)}return s.delete(r),s.delete(e),m}mte.exports=c2e});var yte=I((But,Ite)=>{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((but,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var Qte=I((Qut,bte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");bte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Nte)=>{var mT=yte(),ET=U0(),IT=Bte(),yT=Qte(),wT=vte(),Fte=Tc(),Nh=MN(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",b2e=Nh(mT),Q2e=Nh(ET),S2e=Nh(IT),v2e=Nh(yT),x2e=Nh(wT),tu=Fte;(mT&&tu(new mT(new ArrayBuffer(1)))!=Rte||ET&&tu(new ET)!=xte||IT&&tu(IT.resolve())!=Pte||yT&&tu(new yT)!=kte||wT&&tu(new wT)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case b2e:return Rte;case Q2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Nte.exports=tu});var jte=I((xut,Hte)=>{var BT=hm(),P2e=gT(),k2e=lte(),D2e=Ete(),Tte=pm(),Lte=Ss(),Ote=cm(),R2e=sb(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lb="[object Object]",N2e=Object.prototype,Ute=N2e.hasOwnProperty;function T2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Tte(r),c=a?Kte:Tte(e);l=l==Mte?lb:l,c=c==Mte?lb:c;var u=l==lb,g=c==lb,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BT),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BT),n(m,y,t,i,s)}}return h?(s||(s=new BT),D2e(r,e,t,i,n,s)):!1}Hte.exports=T2e});var bT=I((Put,qte)=>{var L2e=jte(),Gte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Gte(r)&&!Gte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=bT(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n<s;){a=t[n];var l=a[0],c=r[l],u=a[1];if(o&&a[2]){if(c===void 0&&!(l in r))return!1}else{var g=new O2e;if(i)var h=i(c,u,l,r,e,g);if(!(h===void 0?M2e(u,c,K2e|U2e,i,g):h))return!1}}return!0}Jte.exports=H2e});var QT=I((Dut,zte)=>{var j2e=xn();function G2e(r){return r===r&&!j2e(r)}zte.exports=G2e});var Xte=I((Rut,Vte)=>{var Y2e=QT(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var ST=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Nut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=ST();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cb=I((Tut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=bT(),tHe=cb(),rHe=GN(),iHe=M0(),nHe=QT(),sHe=ST(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vT=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xT=I((Hut,cre)=>{var bHe=bh(),QHe=uT(),SHe=vT();function vHe(r,e){var t={};return e=SHe(e,3),QHe(r,function(i,n,s){bHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DT=512,ure=new ru(DT),gre=new ru(DT),fre=new ru(DT);pre.exports={Cache:ru,split:kT,normalizePath:PT,setter:function(r){var e=PT(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s<o-1;){var l=e[s];if(l==="__proto__"||l==="constructor"||l==="prototype")return i;a=a[e[s++]]}a[e[s]]=n})},getter:function(r,e){var t=PT(r);return fre.get(r)||fre.set(r,function(n){for(var s=0,o=t.length;s<o;)if(n!=null||!e)n=n[t[s++]];else return;return n})},join:function(r){return r.reduce(function(e,t){return e+(RT(t)||hre.test(t)?"["+t+"]":(e?".":"")+t)},"")},forEach:function(r,e,t){RHe(Array.isArray(r)?r:kT(r),e,t)}};function PT(r){return ure.get(r)||ure.set(r,kT(r).map(function(e){return e.replace(DHe,"$2")}))}function kT(r){return r.match(xHe)}function RHe(r,e,t){var i=r.length,n,s,o,a;for(s=0;s<i;s++)n=r[s],n&&(THe(n)&&(n='"'+n+'"'),a=RT(n),o=!a&&/^\d+$/.test(n),e.call(t,n,a,o,s,r))}function RT(r){return typeof r=="string"&&r&&["'",'"'].indexOf(r.charAt(0))!==-1}function FHe(r){return r.match(PHe)&&!r.match(hre)}function NHe(r){return kHe.test(r)}function THe(r){return!RT(r)&&(FHe(r)||NHe(r))}});var iu=I(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),ub={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===ub.context,this.isValue=this.key[0]===ub.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?ub.context:this.isValue?ub.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=HHe;var MHe=FT(xT()),gb=FT(eu()),KHe=FT(iu());function FT(r){return r&&r.__esModule?r:{default:r}}function fb(){return fb=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},fb.apply(this,arguments)}function UHe(r,e){if(r==null)return{};var t={},i=Object.keys(r),n,s;for(s=0;s<i.length;s++)n=i[s],!(e.indexOf(n)>=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fb({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gb.default(gb.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fb({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gb.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gb.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var TT=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),GHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?GHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hb=>{"use strict";Object.defineProperty(hb,"__esModule",{value:!0});hb.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hb.default=Im});var oA=I(db=>{"use strict";Object.defineProperty(db,"__esModule",{value:!0});db.default=void 0;var Ire=sA(G$()),Th=nA(),WHe=sA(iee()),yre=sA(rb()),pb=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=TT(),XHe=sA(iT()),Bre=sA(eu()),bre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Rs.apply(this,arguments)}var co=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new bre.default,this._blacklist=new bre.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Nh.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Nh.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Nh.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pQ.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pQ.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Nh.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pQ.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Nh.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pQ.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};dQ.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=bre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LN=ZHe.default,$He=LN;ym.default=$He;function bre(){return new LN}bre.prototype=LN.prototype});var Lh=I(CQ=>{"use strict";Object.defineProperty(CQ,"__esModule",{value:!0});CQ.default=void 0;var eGe=r=>r==null;CQ.default=eGe});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tGe=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tGe.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Tre=I(bm=>{"use strict";Object.defineProperty(bm,"__esModule",{value:!0});bm.create=Fre;bm.default=void 0;var ra=nA(),aA=Rre(Lh()),rGe=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var iGe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nGe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sGe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oGe=r=>(0,aA.default)(r)||r===r.trim(),aGe={}.toString();function Fre(){return new Qm}var Qm=class extends rGe.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aGe?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(iGe,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nGe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sGe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oGe})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};bm.default=Qm;Fre.prototype=Qm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Nre(Lh()),AGe=Nre(oA());function Nre(r){return r&&r.__esModule?r:{default:r}}var lGe=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends AGe.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lGe(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||i<this.resolve(e)}})}moreThan(e,t=nu.number.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},test(i){return(0,su.default)(i)||i>this.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(ON=>{"use strict";Object.defineProperty(ON,"__esModule",{value:!0});ON.default=uGe;var cGe=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uGe(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cGe.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KN;xm.default=void 0;var gGe=mQ(Mre()),Kre=nA(),Ure=mQ(Lh()),fGe=mQ(iu()),hGe=mQ(oA());function mQ(r){return r&&r.__esModule?r:{default:r}}var MN=new Date(""),pGe=r=>Object.prototype.toString.call(r)==="[object Date]";function KN(){return new Oh}var Oh=class extends hGe.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gGe.default)(e),isNaN(e)?MN:new Date(e))})})}_typeCheck(e){return pGe(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fGe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MN;KN.prototype=Oh.prototype;KN.INVALID_DATE=MN});var jre=I((tgt,Gre)=>{function dGe(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n<s;)t=e(t,r[n],n,r);return t}Gre.exports=dGe});var qre=I((rgt,Yre)=>{function CGe(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=CGe});var Wre=I((igt,Jre)=>{var mGe=qre(),EGe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},IGe=mGe(EGe);Jre.exports=IGe});var Vre=I((ngt,zre)=>{var yGe=Wre(),wGe=Vf(),BGe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,QGe="\\u0300-\\u036f",bGe="\\ufe20-\\ufe2f",SGe="\\u20d0-\\u20ff",vGe=QGe+bGe+SGe,xGe="["+vGe+"]",PGe=RegExp(xGe,"g");function kGe(r){return r=wGe(r),r&&r.replace(BGe,yGe).replace(PGe,"")}zre.exports=kGe});var Zre=I((sgt,Xre)=>{var DGe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function RGe(r){return r.match(DGe)||[]}Xre.exports=RGe});var $re=I((ogt,_re)=>{var FGe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function TGe(r){return FGe.test(r)}_re.exports=TGe});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",NGe="\\u0300-\\u036f",LGe="\\ufe20-\\ufe2f",OGe="\\u20d0-\\u20ff",MGe=NGe+LGe+OGe,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",KGe="\\xac\\xb1\\xd7\\xf7",UGe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",HGe="\\u2000-\\u206f",GGe=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",jGe="\\ufe0e\\ufe0f",Aie=KGe+UGe+HGe+GGe,lie="['\u2019]",eie="["+Aie+"]",YGe="["+MGe+"]",cie="\\d+",qGe="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",JGe="\\ud83c[\\udffb-\\udfff]",WGe="(?:"+YGe+"|"+JGe+")",zGe="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",VGe="\\u200d",tie="(?:"+uie+"|"+gie+")",XGe="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=WGe+"?",die="["+jGe+"]?",ZGe="(?:"+VGe+"(?:"+[zGe,fie,hie].join("|")+")"+die+pie+")*",_Ge="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$Ge="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eje=die+pie+ZGe,tje="(?:"+[qGe,fie,hie].join("|")+")"+eje,rje=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",XGe+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$Ge,_Ge,cie,tje].join("|"),"g");function ije(r){return r.match(rje)||[]}Cie.exports=ije});var Iie=I((Agt,Eie)=>{var nje=Zre(),sje=$re(),oje=Vf(),aje=mie();function Aje(r,e,t){return r=oje(r),e=t?void 0:e,e===void 0?sje(r)?aje(r):nje(r):r.match(e)||[]}Eie.exports=Aje});var UN=I((lgt,yie)=>{var lje=jre(),cje=Vre(),uje=Iie(),gje="['\u2019]",fje=RegExp(gje,"g");function hje(r){return function(e){return lje(uje(cje(e).replace(fje,"")),r,"")}}yie.exports=hje});var Bie=I((cgt,wie)=>{var pje=UN(),dje=pje(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dje});var bie=I((ugt,Qie)=>{var Cje=xB(),mje=UN(),Eje=mje(function(r,e,t){return e=e.toLowerCase(),r+(t?Cje(e):e)});Qie.exports=Eje});var vie=I((ggt,Sie)=>{var Ije=Qh(),yje=uN(),wje=vN();function Bje(r,e){var t={};return e=wje(e,3),yje(r,function(i,n,s){Ije(t,e(i,n,s),i)}),t}Sie.exports=Bje});var Pie=I((fgt,HN)=>{HN.exports=function(r){return xie(Qje(r),r)};HN.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=bje(e),a=Sje(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function Qje(r){for(var e=new Set,t=0,i=r.length;t<i;t++){var n=r[t];e.add(n[0]),e.add(n[1])}return Array.from(e)}function bje(r){for(var e=new Map,t=0,i=r.length;t<i;t++){var n=r[t];e.has(n[0])||e.set(n[0],new Set),e.has(n[1])||e.set(n[1],new Set),e.get(n[0]).add(n[1])}return e}function Sje(r){for(var e=new Map,t=0,i=r.length;t<i;t++)e.set(r[t],t);return e}});var kie=I(GN=>{"use strict";Object.defineProperty(GN,"__esModule",{value:!0});GN.default=Rje;var vje=EQ(Am()),xje=EQ(Pie()),Pje=dm(),kje=EQ(iu()),Dje=EQ(xh());function EQ(r){return r&&r.__esModule?r:{default:r}}function Rje(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,Pje.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vje.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kje.default.isRef(o)&&o.isSibling?n(o.path,s):(0,Dje.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xje.default.array(i,t).reverse()}});var Rie=I(jN=>{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.default=Fje;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function Fje(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Tie=ia(Bie()),Tje=ia(bie()),Nje=ia(vie()),Lje=ia(xN()),Oje=dm(),Nie=nA(),Mje=ia(kie()),Oie=ia(Rie()),Kje=ia(rQ()),Uje=ia(eu()),YN=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Kh.apply(this,arguments)}var Lie=r=>Object.prototype.toString.call(r)==="[object Object]";function Hje(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var Gje=(0,Oie.default)([]),Pm=class extends YN.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=Gje,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!Uje.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,Kje.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YN.default&&s instanceof YN.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,Mje.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,Oje.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Nie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=Hje(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Nie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,Nje.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(Tje.default)}snakeCase(){return this.transformKeys(Tie.default)}constantCase(){return this.transformKeys(e=>(0,Tie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Lje.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qN=Uh(Lh()),jje=Uh(xh()),Yje=Uh(am()),JN=nA(),qje=Uh(rQ()),Jje=Uh(eu()),Wje=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function IQ(){return IQ=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},IQ.apply(this,arguments)}function Uie(r){return new Dm(r)}var Dm=class extends Wje.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,IQ({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!Jje.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;y<d.length;y++){let B=d[y],S=`${t.path||""}[${y}]`,P=IQ({},t,{path:S,strict:!0,parent:d,index:y,originalValue:h[y]});m[y]=(F,H)=>c.validate(B,P,H)}(0,qje.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,jje.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Yje.default)(e));return t.innerType=e,t}length(e,t=JN.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qN.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JN.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qN.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JN.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var Gie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=Xje;Fm.default=void 0;var zje=Vje(xh());function Vje(r){return r&&r.__esModule?r:{default:r}}function Xje(r){return new yQ(r)}var yQ=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zje.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},Zje=yQ;Fm.default=Zje});var jie=I(WN=>{"use strict";Object.defineProperty(WN,"__esModule",{value:!0});WN.default=eYe;var _je=$je(nA());function $je(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_je.default[e][t]=r[e][t]})})}});var VN=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zN.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zN.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zN=ou(Dre()),qie=ou(Tre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=Gie(),iYe=Tm(eu()),nYe=Tm(NN()),Xie=Tm(xh()),sYe=Tm(jie()),oYe=Tm(oA());function Tm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XN});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Tgt,ZN)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZN.exports=ine();ZN.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_N=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var BQ=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Ft.swap=(r,e,t)=>{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Ft.get=(r={},e="",t)=>{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!BQ(r))return e;if(!BQ(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&BQ(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);BQ(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_N.forEach(n=>n()),t===!0&&process.exit(128+i))};_N.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_N.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(Gh=>{"use strict";Gh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Gh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Gh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Gh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Gh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var QQ=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};QQ.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,QQ(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};QQ.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=QQ});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$N=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$N});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),QYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=QYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((Ggt,mne)=>{"use strict";var bYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=bYe.merge(r.options)}});var Qne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xYe=uo(),nL=Yi(),go=Bne.exports=wne,kr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${kr}G`,down:`${kr}J`,esc:kr,getPosition:`${kr}6n`,hide:`${kr}?25l`,line:`${kr}2K`,lineEnd:`${kr}K`,lineStart:`${kr}1K`,restorePosition:kr+(Ine?"8":"u"),savePosition:kr+(Ine?"7":"s"),screen:`${kr}2J`,show:`${kr}?25h`,up:`${kr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${kr}${r}C`,backward:(r=1)=>`${kr}${r}D`,nextLine:(r=1)=>`${kr}E`.repeat(r),prevLine:(r=1)=>`${kr}F`.repeat(r),up:(r=1)=>r?`${kr}${r}A`:"",down:(r=1)=>r?`${kr}${r}B`:"",right:(r=1)=>r?`${kr}${r}C`:"",left:(r=1)=>r?`${kr}${r}D`:"",to(r,e){return e?`${kr}${e+1};${r+1}H`:`${kr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t<r;t++)e+=go.erase.line+(t<r-1?go.cursor.up(1):"");return r&&(e+=go.code.beginning),e}};go.clear=(r="",e=process.stdout.columns)=>{if(!e)return oL.line+au.to(0);let t=s=>[...xYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var jh=I((jgt,Sne)=>{"use strict";var PYe=J("events"),bne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Rn=Yi(),Au=Qne(),Om=class extends PYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=TYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Rn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=bne.unstyle(i);let n=bne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` +`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pb.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pb.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pb.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pb.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};db.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=Qre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function Qre(){return new LT}Qre.prototype=LT.prototype});var Lh=I(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.default=void 0;var eje=r=>r==null;Cb.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Nre=I(Qm=>{"use strict";Object.defineProperty(Qm,"__esModule",{value:!0});Qm.create=Fre;Qm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new bm}var bm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};Qm.default=bm;Fre.prototype=bm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Tre(Lh()),Aje=Tre(oA());function Tre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||i<this.resolve(e)}})}moreThan(e,t=nu.number.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},test(i){return(0,su.default)(i)||i>this.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KT;xm.default=void 0;var gje=mb(Mre()),Kre=nA(),Ure=mb(Lh()),fje=mb(iu()),hje=mb(oA());function mb(r){return r&&r.__esModule?r:{default:r}}var MT=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MT:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MT;KT.prototype=Oh.prototype;KT.INVALID_DATE=MT});var Gre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n<s;)t=e(t,r[n],n,r);return t}jre.exports=dje});var qre=I((rgt,Yre)=>{function Cje(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bje="\\u0300-\\u036f",Qje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=bje+Qje+Sje,xje="["+vje+"]",Pje=RegExp(xje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(Pje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Nje(r){return Fje.test(r)}_re.exports=Nje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Tje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Tje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Gje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Yje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Yje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Gje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eGe=die+pie+Zje,tGe="(?:"+[qje,fie,hie].join("|")+")"+eGe,rGe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tGe].join("|"),"g");function iGe(r){return r.match(rGe)||[]}Cie.exports=iGe});var Iie=I((Agt,Eie)=>{var nGe=Zre(),sGe=$re(),oGe=Vf(),aGe=mie();function AGe(r,e,t){return r=oGe(r),e=t?void 0:e,e===void 0?sGe(r)?aGe(r):nGe(r):r.match(e)||[]}Eie.exports=AGe});var UT=I((lgt,yie)=>{var lGe=Gre(),cGe=Vre(),uGe=Iie(),gGe="['\u2019]",fGe=RegExp(gGe,"g");function hGe(r){return function(e){return lGe(uGe(cGe(e).replace(fGe,"")),r,"")}}yie.exports=hGe});var Bie=I((cgt,wie)=>{var pGe=UT(),dGe=pGe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dGe});var Qie=I((ugt,bie)=>{var CGe=xB(),mGe=UT(),EGe=mGe(function(r,e,t){return e=e.toLowerCase(),r+(t?CGe(e):e)});bie.exports=EGe});var vie=I((ggt,Sie)=>{var IGe=bh(),yGe=uT(),wGe=vT();function BGe(r,e){var t={};return e=wGe(e,3),yGe(r,function(i,n,s){IGe(t,e(i,n,s),i)}),t}Sie.exports=BGe});var Pie=I((fgt,HT)=>{HT.exports=function(r){return xie(bGe(r),r)};HT.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=QGe(e),a=SGe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function bGe(r){for(var e=new Set,t=0,i=r.length;t<i;t++){var n=r[t];e.add(n[0]),e.add(n[1])}return Array.from(e)}function QGe(r){for(var e=new Map,t=0,i=r.length;t<i;t++){var n=r[t];e.has(n[0])||e.set(n[0],new Set),e.has(n[1])||e.set(n[1],new Set),e.get(n[0]).add(n[1])}return e}function SGe(r){for(var e=new Map,t=0,i=r.length;t<i;t++)e.set(r[t],t);return e}});var kie=I(jT=>{"use strict";Object.defineProperty(jT,"__esModule",{value:!0});jT.default=RGe;var vGe=Eb(Am()),xGe=Eb(Pie()),PGe=dm(),kGe=Eb(iu()),DGe=Eb(xh());function Eb(r){return r&&r.__esModule?r:{default:r}}function RGe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,PGe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vGe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kGe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DGe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xGe.default.array(i,t).reverse()}});var Rie=I(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=FGe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FGe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Nie=ia(Bie()),NGe=ia(Qie()),TGe=ia(vie()),LGe=ia(xT()),OGe=dm(),Tie=nA(),MGe=ia(kie()),Oie=ia(Rie()),KGe=ia(rb()),UGe=ia(eu()),YT=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Kh.apply(this,arguments)}var Lie=r=>Object.prototype.toString.call(r)==="[object Object]";function HGe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jGe=(0,Oie.default)([]),Pm=class extends YT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jGe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UGe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KGe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YT.default&&s instanceof YT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MGe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OGe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Tie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HGe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Tie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,TGe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(NGe.default)}snakeCase(){return this.transformKeys(Nie.default)}constantCase(){return this.transformKeys(e=>(0,Nie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LGe.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qT=Uh(Lh()),GGe=Uh(xh()),YGe=Uh(am()),JT=nA(),qGe=Uh(rb()),JGe=Uh(eu()),WGe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function Ib(){return Ib=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Ib.apply(this,arguments)}function Uie(r){return new Dm(r)}var Dm=class extends WGe.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,Ib({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JGe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;y<d.length;y++){let B=d[y],S=`${t.path||""}[${y}]`,P=Ib({},t,{path:S,strict:!0,parent:d,index:y,originalValue:h[y]});m[y]=(F,H)=>c.validate(B,P,H)}(0,qGe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,GGe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YGe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XGe;Fm.default=void 0;var zGe=VGe(xh());function VGe(r){return r&&r.__esModule?r:{default:r}}function XGe(r){return new yb(r)}var yb=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zGe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZGe=yb;Fm.default=ZGe});var Gie=I(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=eYe;var _Ge=$Ge(nA());function $Ge(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ge.default[e][t]=r[e][t]})})}});var VT=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zT=ou(Dre()),qie=ou(Nre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=jie(),iYe=Nm(eu()),nYe=Nm(TT()),Xie=Nm(xh()),sYe=Nm(Gie()),oYe=Nm(oA());function Nm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Ngt,ZT)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` +`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var Bb=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Ft.swap=(r,e,t)=>{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` +`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Ft.get=(r={},e="",t)=>{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!Bb(r))return e;if(!Bb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&Bb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);Bb(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var bb=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` +`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};bb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,bb(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};bb.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=bb});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),bYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=bYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var QYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=QYe.merge(r.options)}});var bne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xYe=uo(),nL=Yi(),go=Bne.exports=wne,kr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${kr}G`,down:`${kr}J`,esc:kr,getPosition:`${kr}6n`,hide:`${kr}?25l`,line:`${kr}2K`,lineEnd:`${kr}K`,lineStart:`${kr}1K`,restorePosition:kr+(Ine?"8":"u"),savePosition:kr+(Ine?"7":"s"),screen:`${kr}2J`,show:`${kr}?25h`,up:`${kr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${kr}${r}C`,backward:(r=1)=>`${kr}${r}D`,nextLine:(r=1)=>`${kr}E`.repeat(r),prevLine:(r=1)=>`${kr}F`.repeat(r),up:(r=1)=>r?`${kr}${r}A`:"",down:(r=1)=>r?`${kr}${r}B`:"",right:(r=1)=>r?`${kr}${r}C`:"",left:(r=1)=>r?`${kr}${r}D`:"",to(r,e){return e?`${kr}${e+1};${r+1}H`:`${kr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t<r;t++)e+=go.erase.line+(t<r-1?go.cursor.up(1):"");return r&&(e+=go.code.beginning),e}};go.clear=(r="",e=process.stdout.columns)=>{if(!e)return oL.line+au.to(0);let t=s=>[...xYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Gh=I((Ggt,Sne)=>{"use strict";var PYe=J("events"),Qne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Rn=Yi(),Au=bne(),Om=class extends PYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Rn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=Qne.unstyle(i);let n=Qne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` `),c=l[0],u=l[l.length-1],h=(i+(t?" "+t:"")).length,p=h<c.length?c.slice(h+1):"";return{header:o,prompt:c,after:p,rest:l.slice(1),last:u}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let t=` `+this.symbols.pointer+" ";typeof e=="string"?t+=e.trim():t+="Invalid input",this.state.error=` `+this.styles.danger(t),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),t=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Au.cursor.down(e.rest.length)),this.write(` -`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Rn.isObject(e)&&(e=e[i.status]||e.pending),Rn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Rn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Rn.isObject(s)&&(s=s[i.status]||s.pending),Rn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Rn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Rn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Rn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Rn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Rn.height(this.stdout,25)}get width(){return this.options.columns||Rn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function TYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var NYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=NYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=jh(),MYe=Pne(),bQ=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=bQ,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l<o.length;l++){let c=o[l]=await this.toChoice(o[l],n++,a);i.push(c),c.choices&&await s(c.choices,c)}return i};return s(e,t).then(o=>(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,bQ.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(t=>t.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=bQ.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(bQ.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var GYe=Mm(),cL=Yi(),uL=class extends GYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` +`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Rn.isObject(e)&&(e=e[i.status]||e.pending),Rn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Rn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Rn.isObject(s)&&(s=s[i.status]||s.pending),Rn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Rn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Rn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Rn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Rn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Rn.height(this.stdout,25)}get width(){return this.options.columns||Rn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function NYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` +`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var TYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=Pne(),Qb=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=Qb,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l<o.length;l++){let c=o[l]=await this.toChoice(o[l],n++,a);i.push(c),c.choices&&await s(c.choices,c)}return i};return s(e,t).then(o=>(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,Qb.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(t=>t.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=Qb.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Qb.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jYe=Mm(),cL=Yi(),uL=class extends jYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` `),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Nne=I((Wgt,Tne)=>{"use strict";var jYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends jYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Tne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var SQ=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=SQ(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var Gne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vQ=I((_gt,jne)=>{"use strict";var _Ye=jh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};jne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vQ(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=SQ(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=jh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` +`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var Sb=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=Sb(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vb=I((_gt,Gne)=>{"use strict";var _Ye=Gh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vb(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=Sb(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` `,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):sqe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xQ=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xQ([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xQ([...s,t]),present:o};case"save":return{past:xQ([...i,t]),present:""};case"remove":return o=xQ(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),QL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=QL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),bL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=bL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return i<this.min-t?this.alert():(this.input=`${i-t}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(t=>this.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` +`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xb=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xb([...s,t]),present:o};case"save":return{past:xb([...i,t]),present:""};case"remove":return o=xb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),bL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=bL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),QL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=QL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return i<this.min-t?this.alert():(this.input=`${i-t}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(t=>this.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i<this.scale.length;i++)t.scale.push({index:i})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}heading(e,t,i){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(` `)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!cse.hasColor(s)&&(s=this.styles.muted(s));let o=d=>this.margin[3]+d.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=hqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let p=cse.wordWrap(c,{width:this.widths[0],newline:a}).split(` `).map(d=>o(d)+this.margin[1]);return i&&(u=this.styles.info(u),p=p.map(d=>this.styles.info(d))),p[0]+=u,this.linebreak&&p.push(""),[l+n,p.join(` @@ -224,16 +224,16 @@ attempted value: ${s} `)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=PL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});u<s.length-1;){let d=g();if(/^[^\S\n ]$/.test(d)){p({type:"text",value:d});continue}if(d===` `){p({type:"newline",value:d}),c++;continue}if(d==="\\"){d+=g(),p({type:"text",value:d});continue}if((d==="$"||d==="#"||d==="{")&&h()==="{"){let y=g();d+=y;let B={type:"template",open:d,inner:"",close:"",value:d},S;for(;S=g();){if(S==="}"){h()==="}"&&(S+=g()),B.value+=S,B.close=S;break}S===":"?(B.initial="",B.key=B.inner):B.initial!==void 0&&(B.initial+=S),B.value+=S,B.inner+=S}B.template=B.open+(B.initial||B.inner)+B.close,B.key=B.key||B.inner,e.hasOwnProperty(B.key)&&(B.initial=e[B.key]),B=t(B),p(B),l.push(B.key),i.add(B.key);let P=a.find(F=>F.name===B.key);B.field=n.find(F=>F.name===B.key),P||(P=new DL(B),a.push(P)),P.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,P,F,H)=>{let q=await c(S,P,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let P=S.value,F=S.key;if(S.type!=="template"){P&&(g.output+=P);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,P].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=P;P=await l(P,g,H,p),q!==P?(g.values[F]=q,P=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,P=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(P=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(P=r.styles.danger(q)),p===g.index&&(W!==P?P=r.styles.underline(P):P=r.styles.heading(fse.unstyle(P))),p++}P&&(g.output+=P)}let m=g.output.split(` `).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(P=>{m[P][0]===" "&&(m[P]=g.styles.danger(g.symbols.bullet)+m[P].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` -`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=jh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` +`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Gh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` `].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",h=await this.hint()||"",p=i?"":await this.interpolate(this.state),d=this.state.key=t[e]||"",m=await this.format(d),y=await this.footer();m&&(c+=" "+m),h&&!m&&this.state.completed===0&&(c+=" "+h),this.clear(n);let B=[u,c,p,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} `;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mqe.unstyle(i).split(` `).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use <shift>+<up/down> to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),TL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=Qqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` +`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use <shift>+<up/down> to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),NL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=bqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` `);return i&&(d=this.styles.cyan(d),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` `)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Qqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i<r+1;i++)t.push({i,selected:!1});return t}Ise.exports=TL});var Bse=I((pft,wse)=>{wse.exports=wL()});var bse=I((dft,Qse)=>{"use strict";var bqe=vQ(),NL=class extends bqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Qse.exports=NL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Nne());ci("BasicAuth",()=>Gne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>SQ());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>bse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vQ(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||jh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var jse=I((aht,Gse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}Gse.exports=Dqe});var Jh=I((Aht,Yse)=>{var Rqe=G0(),Fqe=Qh();function Tqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=i?i(t[a],r[a],a,t,r):void 0;l===void 0&&(l=r[a]),n?Fqe(t,a,l):Rqe(t,a,l)}return t}Yse.exports=Tqe});var Jse=I((lht,qse)=>{var Nqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Nqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=xn(),Uqe=oQ(),Hqe=zse(),Gqe=Object.prototype,jqe=Gqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!jqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lN(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t<i;)e[t]=r[t];return e}noe.exports=tJe});var ooe=I((pht,soe)=>{var rJe=Jh(),iJe=AQ();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kQ=I((dht,aoe)=>{var sJe=cN(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kQ(),lJe=AQ(),cJe=dN(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pN(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var DQ=I((yht,doe)=>{var poe=fN();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var QJe=DQ();function bJe(r,e){var t=e?QJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=bJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var boe=I((Qht,Qoe)=>{var yoe=Tc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}Qoe.exports=xJe});var zL=I((bht,Soe)=>{var PJe=DQ();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=DQ(),RJe=moe(),FJe=Ioe(),TJe=boe(),NJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",GJe="[object String]",jJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return NJe(r,t);case MJe:return new i;case KJe:case GJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case jJe:return TJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=xn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kQ(),o3e=oQ();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Toe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Toe(),f3e=iQ(),Noe=nQ(),Loe=Noe&&Noe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,joe)=>{var E3e=Uoe(),I3e=iQ(),Hoe=nQ(),Goe=Hoe&&Hoe.isSet,y3e=Goe?I3e(Goe):E3e;joe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=jse(),Q3e=G0(),b3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CN(),R3e=goe(),F3e=pm(),T3e=hoe(),N3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=xn(),H3e=Yoe(),G3e=Rh(),j3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",eWe="[object RegExp]",tWe="[object Set]",rWe="[object String]",iWe="[object Symbol]",nWe="[object WeakMap]",sWe="[object ArrayBuffer]",oWe="[object DataView]",aWe="[object Float32Array]",AWe="[object Float64Array]",lWe="[object Int8Array]",cWe="[object Int16Array]",uWe="[object Int32Array]",gWe="[object Uint8Array]",fWe="[object Uint8ClampedArray]",hWe="[object Uint16Array]",pWe="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[sWe]=lr[oWe]=lr[z3e]=lr[V3e]=lr[aWe]=lr[AWe]=lr[lWe]=lr[cWe]=lr[uWe]=lr[_3e]=lr[$3e]=lr[Woe]=lr[eWe]=lr[tWe]=lr[rWe]=lr[iWe]=lr[gWe]=lr[fWe]=lr[hWe]=lr[pWe]=!0;lr[X3e]=lr[Joe]=lr[nWe]=!1;function RQ(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=T3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,b3e(o,r))}else{if(!lr[g])return n?r:{};o=N3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(RQ(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,RQ(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?j3e:G3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),Q3e(o,B,RQ(y,e,t,B,r,s))}),o}zoe.exports=RQ});var XL=I((Tht,Xoe)=>{var dWe=Voe(),CWe=1,mWe=4;function EWe(r){return dWe(r,CWe|mWe)}Xoe.exports=EWe});var _oe=I((Nht,Zoe)=>{var IWe=HT();function yWe(r,e,t){return r==null?r:IWe(r,e,t)}Zoe.exports=yWe});var iae=I((Hht,rae)=>{function wWe(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=wWe});var sae=I((Ght,nae)=>{var BWe=im(),QWe=HR();function bWe(r,e){return e.length<2?r:BWe(r,QWe(e,0,-1))}nae.exports=bWe});var aae=I((jht,oae)=>{var SWe=Bh(),vWe=iae(),xWe=sae(),PWe=$c();function kWe(r,e){return e=SWe(e,r),r=xWe(r,e),r==null||delete r[PWe(vWe(e))]}oae.exports=kWe});var lae=I((Yht,Aae)=>{var DWe=aae();function RWe(r,e){return r==null?!0:DWe(r,e)}Aae.exports=RWe});var hae=I((mpt,NWe)=>{NWe.exports={name:"@yarnpkg/cli",version:"3.8.4",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((jmt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,Pae)=>{"use strict";var e4e=oO();function t4e(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=e4e(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=t4e});var Fae=I((qmt,Rae)=>{"use strict";var r4e=kae();function i4e(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var n4e=i4e(r4e),s4e="text/plain",o4e="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),a4e=(r,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===o4e)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==s4e)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function A4e(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return a4e(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=A4e(r,e));let n=n4e.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Nae)=>{"use strict";var l4e=oO();function Tae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=l4e(r);if(r=r.substring(r.indexOf("://")+3),Tae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@")<r.indexOf(":")}Nae.exports=Tae});var Kae=I((Wmt,Mae)=>{"use strict";var c4e=Fae(),Oae=Lae();function u4e(r){var e=c4e(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=u4e});var Hae=I((zmt,Uae)=>{"use strict";var g4e=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=g4e(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?f4e(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+h4e(r)+n;default:return r.href}};function f4e(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function h4e(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var N4e=Qh(),L4e=Ih();function O4e(r,e,t){(t!==void 0&&!L4e(r[e],t)||t===void 0&&!(e in r))&&N4e(r,e,t)}AAe.exports=O4e});var cAe=I((Kyt,lAe)=>{var M4e=fm(),K4e=Jo();function U4e(r){return K4e(r)&&M4e(r)}lAe.exports=U4e});var fAe=I((Uyt,gAe)=>{var H4e=Nc(),G4e=kQ(),j4e=Jo(),Y4e="[object Object]",q4e=Function.prototype,J4e=Object.prototype,uAe=q4e.toString,W4e=J4e.hasOwnProperty,z4e=uAe.call(Object);function V4e(r){if(!j4e(r)||H4e(r)!=Y4e)return!1;var e=G4e(r);if(e===null)return!0;var t=W4e.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==z4e}gAe.exports=V4e});var DO=I((Hyt,hAe)=>{function X4e(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=X4e});var dAe=I((Gyt,pAe)=>{var Z4e=Jh(),_4e=Wh();function $4e(r){return Z4e(r,_4e(r))}pAe.exports=$4e});var wAe=I((jyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=xn(),A8e=fAe(),l8e=sQ(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var bAe=I((Yyt,QAe)=>{var g8e=hm(),f8e=kO(),h8e=aN(),p8e=wAe(),d8e=xn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}QAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=YT(),y8e=qT();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var PAe=I((Jyt,xAe)=>{var B8e=Ih(),Q8e=fm(),b8e=nm(),S8e=xn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?Q8e(t)&&b8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}xAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var x8e=vAe(),P8e=PAe();function k8e(r){return x8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var a=t[i];a&&r(e,a,i,s)}return e})}kAe.exports=k8e});var FAe=I((zyt,RAe)=>{var D8e=bAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Fn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Fn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Fn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Fn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Fn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Fn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Fn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Fn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a<l;a++){let c=e[a];if(i&&n._.length>0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g<u.length;g++){let h=u[g],[p,d]=h[1]==="-"?h.split(/=(.*)/,2):[h,void 0],m=p;for(;m in s;)m=s[m];if(!(m in o))if(t){n._.push(h);continue}else throw new Fn(`unknown or unexpected option: ${p}`,"ARG_UNKNOWN_OPTION");let[y,B]=o[m];if(!B&&g+1<u.length)throw new Fn(`option requires argument (but was followed by another short argument): ${p}`,"ARG_MISSING_REQUIRED_SHORTARG");if(B)n[m]=y(!0,m,n[m]);else if(d===void 0){if(e.length<a+2||e[a+1].length>1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Fn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Fn;fle.exports=uE});var ble=I((_Bt,Qle)=>{var eM;Qle.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((Z0t,Nle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ts=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Tle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Tle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Tze(e,t),Nze(r,e,i,t)}function Tze(r,e){return e.fs_.mkdir(Ts.dirname(r),{recursive:!0})}function Nze(r,e,t,i){let n=Tle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:Gze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return jze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ts.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ts.relative(Ts.dirname(e),r).split("/").join("\\"),s=Ts.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function bqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i<r+1;i++)t.push({i,selected:!1});return t}Ise.exports=NL});var Bse=I((pft,wse)=>{wse.exports=wL()});var Qse=I((dft,bse)=>{"use strict";var Qqe=vb(),TL=class extends Qqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};bse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>Sb());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>Qse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vb(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Gh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}jse.exports=Dqe});var Jh=I((Aht,Yse)=>{var Rqe=j0(),Fqe=bh();function Nqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=i?i(t[a],r[a],a,t,r):void 0;l===void 0&&(l=r[a]),n?Fqe(t,a,l):Rqe(t,a,l)}return t}Yse.exports=Nqe});var Jse=I((lht,qse)=>{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=xn(),Uqe=ob(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t<i;)e[t]=r[t];return e}noe.exports=tJe});var ooe=I((pht,soe)=>{var rJe=Jh(),iJe=Ab();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kb=I((dht,aoe)=>{var sJe=cT(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kb(),lJe=Ab(),cJe=dT(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pT(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var Db=I((yht,doe)=>{var poe=fT();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var bJe=Db();function QJe(r,e){var t=e?bJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=QJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var Qoe=I((bht,boe)=>{var yoe=Nc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}boe.exports=xJe});var zL=I((Qht,Soe)=>{var PJe=Db();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=Db(),RJe=moe(),FJe=Ioe(),NJe=Qoe(),TJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",GJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return TJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case GJe:return NJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=xn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kb(),o3e=ob();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Noe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Noe(),f3e=ib(),Toe=nb(),Loe=Toe&&Toe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,Goe)=>{var E3e=Uoe(),I3e=ib(),Hoe=nb(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Goe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Gse(),b3e=j0(),Q3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CT(),R3e=goe(),F3e=pm(),N3e=hoe(),T3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=xn(),H3e=Yoe(),j3e=Rh(),G3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",e4e="[object RegExp]",t4e="[object Set]",r4e="[object String]",i4e="[object Symbol]",n4e="[object WeakMap]",s4e="[object ArrayBuffer]",o4e="[object DataView]",a4e="[object Float32Array]",A4e="[object Float64Array]",l4e="[object Int8Array]",c4e="[object Int16Array]",u4e="[object Int32Array]",g4e="[object Uint8Array]",f4e="[object Uint8ClampedArray]",h4e="[object Uint16Array]",p4e="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[s4e]=lr[o4e]=lr[z3e]=lr[V3e]=lr[a4e]=lr[A4e]=lr[l4e]=lr[c4e]=lr[u4e]=lr[_3e]=lr[$3e]=lr[Woe]=lr[e4e]=lr[t4e]=lr[r4e]=lr[i4e]=lr[g4e]=lr[f4e]=lr[h4e]=lr[p4e]=!0;lr[X3e]=lr[Joe]=lr[n4e]=!1;function Rb(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=N3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,Q3e(o,r))}else{if(!lr[g])return n?r:{};o=T3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(Rb(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,Rb(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?G3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),b3e(o,B,Rb(y,e,t,B,r,s))}),o}zoe.exports=Rb});var XL=I((Nht,Xoe)=>{var d4e=Voe(),C4e=1,m4e=4;function E4e(r){return d4e(r,C4e|m4e)}Xoe.exports=E4e});var _oe=I((Tht,Zoe)=>{var I4e=HN();function y4e(r,e,t){return r==null?r:I4e(r,e,t)}Zoe.exports=y4e});var iae=I((Hht,rae)=>{function w4e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=w4e});var sae=I((jht,nae)=>{var B4e=im(),b4e=HR();function Q4e(r,e){return e.length<2?r:B4e(r,b4e(e,0,-1))}nae.exports=Q4e});var aae=I((Ght,oae)=>{var S4e=Bh(),v4e=iae(),x4e=sae(),P4e=$c();function k4e(r,e){return e=S4e(e,r),r=x4e(r,e),r==null||delete r[P4e(v4e(e))]}oae.exports=k4e});var lae=I((Yht,Aae)=>{var D4e=aae();function R4e(r,e){return r==null?!0:D4e(r,e)}Aae.exports=R4e});var hae=I((mpt,T4e)=>{T4e.exports={name:"@yarnpkg/cli",version:"3.8.5",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Gmt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,Pae)=>{"use strict";var eWe=oO();function tWe(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=eWe(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=tWe});var Fae=I((qmt,Rae)=>{"use strict";var rWe=kae();function iWe(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var nWe=iWe(rWe),sWe="text/plain",oWe="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),aWe=(r,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===oWe)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==sWe)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function AWe(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return aWe(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=AWe(r,e));let n=nWe.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Tae)=>{"use strict";var lWe=oO();function Nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=lWe(r);if(r=r.substring(r.indexOf("://")+3),Nae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@")<r.indexOf(":")}Tae.exports=Nae});var Kae=I((Wmt,Mae)=>{"use strict";var cWe=Fae(),Oae=Lae();function uWe(r){var e=cWe(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=uWe});var Hae=I((zmt,Uae)=>{"use strict";var gWe=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=gWe(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?fWe(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+hWe(r)+n;default:return r.href}};function fWe(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function hWe(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var TWe=bh(),LWe=Ih();function OWe(r,e,t){(t!==void 0&&!LWe(r[e],t)||t===void 0&&!(e in r))&&TWe(r,e,t)}AAe.exports=OWe});var cAe=I((Kyt,lAe)=>{var MWe=fm(),KWe=Jo();function UWe(r){return KWe(r)&&MWe(r)}lAe.exports=UWe});var fAe=I((Uyt,gAe)=>{var HWe=Tc(),jWe=kb(),GWe=Jo(),YWe="[object Object]",qWe=Function.prototype,JWe=Object.prototype,uAe=qWe.toString,WWe=JWe.hasOwnProperty,zWe=uAe.call(Object);function VWe(r){if(!GWe(r)||HWe(r)!=YWe)return!1;var e=jWe(r);if(e===null)return!0;var t=WWe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==zWe}gAe.exports=VWe});var DO=I((Hyt,hAe)=>{function XWe(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=XWe});var dAe=I((jyt,pAe)=>{var ZWe=Jh(),_We=Wh();function $We(r){return ZWe(r,_We(r))}pAe.exports=$We});var wAe=I((Gyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=xn(),A8e=fAe(),l8e=sb(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var QAe=I((Yyt,bAe)=>{var g8e=hm(),f8e=kO(),h8e=aT(),p8e=wAe(),d8e=xn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}bAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=YN(),y8e=qN();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var PAe=I((Jyt,xAe)=>{var B8e=Ih(),b8e=fm(),Q8e=nm(),S8e=xn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?b8e(t)&&Q8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}xAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var x8e=vAe(),P8e=PAe();function k8e(r){return x8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var a=t[i];a&&r(e,a,i,s)}return e})}kAe.exports=k8e});var FAe=I((zyt,RAe)=>{var D8e=QAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Fn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Fn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Fn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Fn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Fn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Fn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Fn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Fn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a<l;a++){let c=e[a];if(i&&n._.length>0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g<u.length;g++){let h=u[g],[p,d]=h[1]==="-"?h.split(/=(.*)/,2):[h,void 0],m=p;for(;m in s;)m=s[m];if(!(m in o))if(t){n._.push(h);continue}else throw new Fn(`unknown or unexpected option: ${p}`,"ARG_UNKNOWN_OPTION");let[y,B]=o[m];if(!B&&g+1<u.length)throw new Fn(`option requires argument (but was followed by another short argument): ${p}`,"ARG_MISSING_REQUIRED_SHORTARG");if(B)n[m]=y(!0,m,n[m]);else if(d===void 0){if(e.length<a+2||e[a+1].length>1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Fn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Fn;fle.exports=uE});var Qle=I((_Bt,ble)=>{var eM;ble.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((Z0t,Tle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ns=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Nle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Nle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Nze(e,t),Tze(r,e,i,t)}function Nze(r,e){return e.fs_.mkdir(Ns.dirname(r),{recursive:!0})}function Tze(r,e,t,i){let n=Nle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Gze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ns.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ns.relative(Ns.dirname(e),r).split("/").join("\\"),s=Ns.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r `:"";return o?g+=`@IF EXIST ${o} (\r ${o} ${l} ${n} ${u}%*\r ) ELSE (\r @@ -242,7 +242,7 @@ attempted value: ${s} ${a} ${l} ${n} ${u}%*\r )\r `:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function Hze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh +`,g}function Hze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in @@ -257,7 +257,7 @@ else fi `:u+=`${g}${n} ${a} ${i} ${c}"$@" exit $? -`,u}function Gze(r,e,t){let i=Ts.relative(Ts.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ts.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh +`,u}function jze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" @@ -299,33 +299,33 @@ if ($MyInvocation.ExpectingInput) { } ${t.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE -`,p}function jze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ts.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=Fle()?e[i].split("\\").join("/").replace(/^([^:\\/]*):/,(o,a)=>`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Nle.exports=AM});var yM=I((pbt,rce)=>{rce.exports=J("stream")});var oce=I((dbt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ice(Object(t),!0).forEach(function(i){c5e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ice(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function c5e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function u5e(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function nce(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function g5e(r,e,t){return e&&nce(r.prototype,e),t&&nce(r,t),r}var f5e=J("buffer"),pb=f5e.Buffer,h5e=J("util"),wM=h5e.inspect,p5e=wM&&wM.custom||"inspect";function d5e(r,e,t){pb.prototype.copy.call(r,e,t)}sce.exports=function(){function r(){u5e(this,r),this.head=null,this.tail=null,this.length=0}return g5e(r,[{key:"push",value:function(t){var i={data:t,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pb.alloc(0);for(var i=pb.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return t<this.head.data.length?(n=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):t===this.head.data.length?n=this.shift():n=i?this._getString(t):this._getBuffer(t),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var i=this.head,n=1,s=i.data;for(t-=s.length;i=i.next;){var o=i.data,a=t>o.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pb.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var QM=I((Cbt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(db,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(db,t),e(s)):process.nextTick(db,t)}),this)}function ace(r,e){BM(r,e),db(r)}function db(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var bl=I((mbt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var bM=I((Ebt,gce)=>{"use strict";var B5e=bl().codes.ERR_INVALID_OPT_VALUE;function Q5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function b5e(r,e,t,i){var n=Q5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:b5e}});var fce=I((Ibt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((ybt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((wbt,hce)=>{hce.exports=J("util").deprecate});var DM=I((Bbt,yce)=>{"use strict";yce.exports=Nr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Nr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mb=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mb.from(r)}function P5e(r){return mb.isBuffer(r)||r instanceof v5e}var kM=QM(),k5e=bM(),D5e=k5e.getHighWaterMark,vl=bl().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,T5e=vl.ERR_MULTIPLE_CALLBACK,N5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Nr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Cb;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Cb=Function.prototype[Symbol.hasInstance],Object.defineProperty(Nr,Symbol.hasInstance,{value:function(e){return Cb.call(this,e)?!0:this!==Nr?!1:e&&e._writableState instanceof dE}})):Cb=function(e){return e instanceof this};function Nr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!Cb.call(Nr,this))return new Nr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Nr.prototype.pipe=function(){Ap(this,new N5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function G5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Nr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mb.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||G5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Nr.prototype.cork=function(){this._writableState.corked++};Nr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Nr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Nr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function j5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mb.from(e,t)),e}Object.defineProperty(Nr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=j5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length<e.highWaterMark;if(l||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:i,encoding:n,isBuf:t,callback:s,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else PM(r,e,!1,a,i,n,s);return l}function PM(r,e,t,i,n,s,o){e.writelen=i,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new L5e("write")):t?r._writev(n,e.onwrite):r._write(n,s,e.onwrite),e.sync=!1}function q5e(r,e,t,i,n){--e.pendingcb,t?(process.nextTick(n,i),process.nextTick(pE,r,e),r._writableState.errorEmitted=!0,Ap(r,i)):(n(i),r._writableState.errorEmitted=!0,Ap(r,i),pE(r,e))}function J5e(r){r.writing=!1,r.writecb=null,r.length-=r.writelen,r.writelen=0}function W5e(r,e){var t=r._writableState,i=t.sync,n=t.writecb;if(typeof n!="function")throw new T5e;if(J5e(t),e)q5e(r,t,i,e,n);else{var s=Ice(t)||r.destroyed;!s&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Ece(r,t),i?process.nextTick(dce,r,t,s,n):dce(r,t,s,n)}}function dce(r,e,t,i){t||z5e(r,e),e.pendingcb--,i(),pE(r,e)}function z5e(r,e){e.length===0&&e.needDrain&&(e.needDrain=!1,r.emit("drain"))}function Ece(r,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(r._writev&&t&&t.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=t;for(var o=0,a=!0;t;)n[o]=t,t.isBuf||(a=!1),t=t.next,o+=1;n.allBuffers=a,PM(r,e,!0,e.length,n,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new Cce(e),e.bufferedRequestCount=0}else{for(;t;){var l=t.chunk,c=t.encoding,u=t.callback,g=e.objectMode?1:l.length;if(PM(r,e,!1,g,l,c,u),t=t.next,e.bufferedRequestCount--,e.writing)break}t===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}Nr.prototype._write=function(r,e,t){t(new F5e("_write()"))};Nr.prototype._writev=null;Nr.prototype.end=function(r,e,t){var i=this._writableState;return typeof r=="function"?(t=r,r=null,e=null):typeof e=="function"&&(t=e,e=null),r!=null&&this.write(r,e),i.corked&&(i.corked=1,this.uncork()),i.ending||Z5e(this,i,t),this};Object.defineProperty(Nr.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ice(r){return r.ending&&r.length===0&&r.bufferedRequest===null&&!r.finished&&!r.writing}function V5e(r,e){r._final(function(t){e.pendingcb--,t&&Ap(r,t),e.prefinished=!0,r.emit("prefinish"),pE(r,e)})}function X5e(r,e){!e.prefinished&&!e.finalCalled&&(typeof r._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(V5e,r,e)):(e.prefinished=!0,r.emit("prefinish")))}function pE(r,e){var t=Ice(e);if(t&&(X5e(r,e),e.pendingcb===0&&(e.finished=!0,r.emit("finish"),e.autoDestroy))){var i=r._readableState;(!i||i.autoDestroy&&i.endEmitted)&&r.destroy()}return t}function Z5e(r,e,t){e.ending=!0,pE(r,e),t&&(e.finished?process.nextTick(t):r.once("finish",t)),e.ended=!0,r.writable=!1}function _5e(r,e,t){var i=r.entry;for(r.entry=null;i;){var n=i.callback;e.pendingcb--,n(t),i=i.next}e.corkedRequestsFree.next=r}Object.defineProperty(Nr.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Nr.prototype.destroy=kM.destroy;Nr.prototype._undestroy=kM.undestroy;Nr.prototype._destroy=function(r,e){e(r)}});var Wu=I((Qbt,Bce)=>{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=TM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),Eb=0;Eb<RM.length;Eb++)Ib=RM[Eb],oa.prototype[Ib]||(oa.prototype[Ib]=FM.prototype[Ib]);var RM,Ib,Eb;function oa(r){if(!(this instanceof oa))return new oa(r);wce.call(this,r),FM.call(this,r),this.allowHalfOpen=!0,r&&(r.readable===!1&&(this.readable=!1),r.writable===!1&&(this.writable=!1),r.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",e6e)))}Object.defineProperty(oa.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(oa.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(oa.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function e6e(){this._writableState.ended||process.nextTick(t6e,this)}function t6e(r){r.end()}Object.defineProperty(oa.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var Sce=I((NM,bce)=>{var yb=J("buffer"),hA=yb.Buffer;function Qce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?bce.exports=yb:(Qce(yb,NM),NM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}Qce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yb.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t<r.length?e?e+this.text(r,t):this.text(r,t):e||""};CE.prototype.end=A6e;CE.prototype.text=a6e;CE.prototype.fillLast=function(r){if(this.lastNeed<=r.length)return r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,r.length),this.lastNeed-=r.length};function LM(r){return r<=127?0:r>>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i<t)return 0;var n=LM(e[i]);return n>=0?(n>0&&(r.lastNeed=n-1),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(r.lastNeed=n-2),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wb=I((Sbt,Dce)=>{"use strict";var Pce=bl().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];r.apply(this,i)}}}function d6e(){}function C6e(r){return r.setHeader&&typeof r.abort=="function"}function kce(r,e,t){if(typeof e=="function")return kce(r,null,e);e||(e={}),t=p6e(t||d6e);var i=e.readable||e.readable!==!1&&r.readable,n=e.writable||e.writable!==!1&&r.writable,s=function(){r.writable||a()},o=r._writableState&&r._writableState.finished,a=function(){n=!1,o=!0,i||t.call(r)},l=r._readableState&&r._readableState.endEmitted,c=function(){i=!1,l=!0,n||t.call(r)},u=function(d){t.call(r,d)},g=function(){var d;if(i&&!l)return(!r._readableState||!r._readableState.ended)&&(d=new Pce),t.call(r,d);if(n&&!o)return(!r._writableState||!r._writableState.ended)&&(d=new Pce),t.call(r,d)},h=function(){r.req.on("finish",a)};return C6e(r)?(r.on("complete",a),r.on("abort",g),r.req?h():r.on("request",h)):n&&!r._writableState&&(r.on("end",s),r.on("close",s)),r.on("end",c),r.on("finish",a),e.error!==!1&&r.on("error",u),r.on("close",g),function(){r.removeListener("complete",a),r.removeListener("abort",g),r.removeListener("request",h),r.req&&r.req.removeListener("finish",a),r.removeListener("end",s),r.removeListener("close",s),r.removeListener("finish",a),r.removeListener("end",c),r.removeListener("error",u),r.removeListener("close",g)}}Dce.exports=kce});var Fce=I((vbt,Rce)=>{"use strict";var Bb;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wb(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),Qb=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[Qb]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((Bb={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[Qb])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(Bb,Symbol.asyncIterator,function(){return this}),xl(Bb,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),Bb),w6e),Q6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,Qb,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[Qb]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=Q6e});var Oce=I((xbt,Lce)=>{"use strict";function Tce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function b6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Tce(s,i,n,o,a,"next",l)}function a(l){Tce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Nce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Nce(Object(t),!0).forEach(function(i){v6e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Nce(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function v6e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var x6e=bl().codes.ERR_INVALID_ARG_TYPE;function P6e(r,e,t){var i;if(e&&typeof e.next=="function")i=e;else if(e&&e[Symbol.asyncIterator])i=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])i=e[Symbol.iterator]();else throw new x6e("iterable",["Iterable"],e);var n=new r(S6e({objectMode:!0},t)),s=!1;n._read=function(){s||(s=!0,o())};function o(){return a.apply(this,arguments)}function a(){return a=b6e(function*(){try{var l=yield i.next(),c=l.value,u=l.done;u?n.push(null):n.push(yield c)?o():s=!1}catch(g){n.destroy(g)}}),a.apply(this,arguments)}return n}Lce.exports=P6e});var TM=I((kbt,Wce)=>{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var Pbt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),bb=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return bb.from(r)}function R6e(r){return bb.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=QM(),T6e=bM(),N6e=T6e.getHighWaterMark,Sb=bl().codes,L6e=Sb.ERR_INVALID_ARG_TYPE,O6e=Sb.ERR_STREAM_PUSH_AFTER_EOF,M6e=Sb.ERR_METHOD_NOT_IMPLEMENTED,K6e=Sb.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,GM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,jM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=N6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=bb.from(r,e),e=""),i=!0),Gce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return Gce(this,r,null,!0,!1)};function Gce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,j6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==bb.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length<s.highWaterMark||s.length===0)}function YM(r,e,t,i){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,r.emit("data",t)):(e.length+=e.objectMode?1:t.length,i?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&vb(r)),JM(r,e)}function H6e(r,e){var t;return!R6e(e)&&typeof e!="string"&&e!==void 0&&!r.objectMode&&(t=new L6e("chunk",["string","Buffer","Uint8Array"],e)),t}Ot.prototype.isPaused=function(){return this._readableState.flowing===!1};Ot.prototype.setEncoding=function(r){up||(up=MM().StringDecoder);var e=new up(r);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var t=this._readableState.buffer.head,i="";t!==null;)i+=e.write(t.data),t=t.next;return this._readableState.buffer.clear(),i!==""&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var Mce=1073741824;function G6e(r){return r>=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=G6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vb(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r<e.highWaterMark)&&(i=!0,Pt("length less than watermark",i)),e.ended||e.reading?(i=!1,Pt("reading or ended",i)):i&&(Pt("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(r=Kce(t,e)));var n;return r>0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function j6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vb(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,jce(r)))}}function vb(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(jce,r))}function jce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var t=e.length;if(Pt("maybeReadMore read 0"),r.read(0),t===e.length)break}e.readingMore=!1}Ot.prototype._read=function(r){EE(this,new M6e("_read()"))};Ot.prototype.pipe=function(r,e){var t=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=r;break;case 1:i.pipes=[i.pipes,r];break;default:i.pipes.push(r);break}i.pipesCount+=1,Pt("pipe count=%d opts=%j",i.pipesCount,e);var n=(!e||e.end!==!1)&&r!==process.stdout&&r!==process.stderr,s=n?a:m;i.endEmitted?process.nextTick(s):t.once("end",s),r.on("unpipe",o);function o(y,B){Pt("onunpipe"),y===t&&B&&B.hasUnpiped===!1&&(B.hasUnpiped=!0,u())}function a(){Pt("onend"),r.end()}var l=q6e(t);r.on("drain",l);var c=!1;function u(){Pt("cleanup"),r.removeListener("close",p),r.removeListener("finish",d),r.removeListener("drain",l),r.removeListener("error",h),r.removeListener("unpipe",o),t.removeListener("end",a),t.removeListener("end",m),t.removeListener("data",g),c=!0,i.awaitDrain&&(!r._writableState||r._writableState.needDrain)&&l()}t.on("data",g);function g(y){Pt("ondata");var B=r.write(y);Pt("dest.write",B),B===!1&&((i.pipesCount===1&&i.pipes===r||i.pipesCount>1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s<n;s++)i[s].emit("unpipe",this,{hasUnpiped:!1});return this}var o=Jce(e.pipes,r);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),r.emit("unpipe",this,t),this)};Ot.prototype.on=function(r,e){var t=IE.prototype.on.call(this,r,e),i=this._readableState;return r==="data"?(i.readableListening=this.listenerCount("readable")>0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vb(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s<jM.length;s++)r.on(jM[s],this.emit.bind(this,jM[s]));return this._read=function(o){Pt("wrapped _read",o),i&&(i=!1,r.resume())},this};typeof Symbol=="function"&&(Ot.prototype[Symbol.asyncIterator]=function(){return HM===void 0&&(HM=Fce()),HM(this)});Object.defineProperty(Ot.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Ot.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Ot.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Ot._fromList=qce;Object.defineProperty(Ot.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function qce(r,e){if(e.length===0)return null;var t;return e.objectMode?t=e.buffer.shift():!r||r>=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return GM===void 0&&(GM=Oce()),GM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t<i;t++)if(r[t]===e)return t;return-1}});var VM=I((Dbt,Vce)=>{"use strict";Vce.exports=pA;var xb=bl().codes,X6e=xb.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xb.ERR_MULTIPLE_CALLBACK,_6e=xb.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xb.ERR_TRANSFORM_WITH_LENGTH_0,Pb=Wu();Sl()(pA,Pb);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function pA(r){if(!(this instanceof pA))return new pA(r);Pb.call(this,r),this._transformState={afterTransform:e9e.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,r&&(typeof r.transform=="function"&&(this._transform=r.transform),typeof r.flush=="function"&&(this._flush=r.flush)),this.on("prefinish",t9e)}function t9e(){var r=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,t){zce(r,e,t)}):zce(this,null,null)}pA.prototype.push=function(r,e){return this._transformState.needTransform=!1,Pb.prototype.push.call(this,r,e)};pA.prototype._transform=function(r,e,t){t(new X6e("_transform()"))};pA.prototype._write=function(r,e,t){var i=this._transformState;if(i.writecb=t,i.writechunk=r,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}};pA.prototype._read=function(r){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};pA.prototype._destroy=function(r,e){Pb.prototype._destroy.call(this,r,function(t){e(t)})};function zce(r,e,t){if(e)return r.emit("error",e);if(t!=null&&r.push(t),r._writableState.length)throw new $6e;if(r._transformState.transforming)throw new _6e;return r.push(null)}});var _ce=I((Rbt,Zce)=>{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((Fbt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=bl().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wb()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var i=A9e(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new i9e("streams");var n,s=e.map(function(o,a){var l=a<e.length-1,c=a>0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=TM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wb(),Os.pipeline=iue())});var oue=I((Tbt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;i<this._bufs.length;i++){let n=t+this._bufs[i].length;if(e<n||i===this._bufs.length-1)return[i,e-t];t=n}};ur.prototype._reverseOffset=function(r){let e=r[0],t=r[1];for(let i=0;i<e;i++)t+=this._bufs[i].length;return t};ur.prototype.get=function(e){if(e>this.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;g<this._bufs.length;g++)this._bufs[g].copy(e,c),c+=this._bufs[g].length;return e}if(l<=this._bufs[o[0]].length-u)return s?this._bufs[o[0]].copy(e,t,u,u+l):this._bufs[o[0]].slice(u,u+l);s||(e=Eo.allocUnsafe(a));for(let g=o[0];g<this._bufs.length;g++){let h=this._bufs[g].length-u;if(l>h)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e};ur.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(Eo.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(Eo.from(e));return this};ur.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};ur.prototype.indexOf=function(r,e,t){if(t===void 0&&typeof e=="string"&&(t=e,e=void 0),typeof r=="function"||Array.isArray(r))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof r=="number"?r=Eo.from([r]):typeof r=="string"?r=Eo.from(r,t):this._isBufferList(r)?r=r.slice():Array.isArray(r.buffer)?r=Eo.from(r.buffer,r.byteOffset,r.byteLength):Eo.isBuffer(r)||(r=Eo.from(r)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),r.length===0)return e>this.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n<this._bufs.length;n++){let o=this._bufs[n];for(;s<o.length;)if(o.length-s>=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r<e.length)return!1;for(let t=0;t<e.length;t++)if(this.get(r+t)!==e[t])return!1;return!0};(function(){let r={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in r)(function(t){r[t]===null?ur.prototype[t]=function(i,n){return this.slice(i,i+n)[t](0,n)}:ur.prototype[t]=function(i=0){return this.slice(i,i+r[t])[t](0)}})(e)})();ur.prototype._isBufferList=function(e){return e instanceof ur||ur.isBufferList(e)};ur.isBufferList=function(e){return e!=null&&e[nue]};sue.exports=ur});var aue=I((Nbt,kb)=>{"use strict";var ZM=gp().Duplex,c9e=Sl(),QE=oue();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}QE._init.call(this,r),ZM.call(this)}c9e(Wi,ZM);Object.assign(Wi.prototype,QE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof QE||Wi.isBufferList(e)};Wi.isBufferList=QE.isBufferList;kb.exports=Wi;kb.exports.BufferListStream=Wi;kb.exports.BufferList=QE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),bE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;t<i;t++)if(r[t]===e)return t;return i},uue=function(r){for(var e=256,t=0;t<148;t++)e+=r[t];for(var i=156;i<512;i++)e+=r[i];return e},Dl=function(r,e){return r=r.toString(8),r.length>e?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i<o;i++)s+=t[i]*Math.pow(256,i);return e?s:-1*s}var Rl=function(r,e,t){if(r=r.slice(e,e+t),e=0,r[e]&128)return y9e(r);for(;e<r.length&&r[e]===32;)e++;for(var i=m9e(cue(r,32,e,r.length),r.length,r.length);e<i&&r[e]===0;)e++;return i===e?0:parseInt(r.slice(e,i).toString(),8)},fp=function(r,e,t,i){return r.slice(e,cue(r,0,e,e+t)).toString(i)},_M=function(r){var e=Buffer.byteLength(r),t=Math.floor(Math.log(e)/Math.log(10))+1;return e+t>=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` +`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=Fle()?e[i].split("\\").join("/").replace(/^([^:\\/]*):/,(o,a)=>`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Tle.exports=AM});var yM=I((pQt,rce)=>{rce.exports=J("stream")});var oce=I((dQt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ice(Object(t),!0).forEach(function(i){c5e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ice(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function c5e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function u5e(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function nce(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function g5e(r,e,t){return e&&nce(r.prototype,e),t&&nce(r,t),r}var f5e=J("buffer"),pQ=f5e.Buffer,h5e=J("util"),wM=h5e.inspect,p5e=wM&&wM.custom||"inspect";function d5e(r,e,t){pQ.prototype.copy.call(r,e,t)}sce.exports=function(){function r(){u5e(this,r),this.head=null,this.tail=null,this.length=0}return g5e(r,[{key:"push",value:function(t){var i={data:t,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pQ.alloc(0);for(var i=pQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return t<this.head.data.length?(n=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):t===this.head.data.length?n=this.shift():n=i?this._getString(t):this._getBuffer(t),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var i=this.head,n=1,s=i.data;for(t-=s.length;i=i.next;){var o=i.data,a=t>o.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pQ.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var bM=I((CQt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(dQ,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(dQ,t),e(s)):process.nextTick(dQ,t)}),this)}function ace(r,e){BM(r,e),dQ(r)}function dQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var Ql=I((mQt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var QM=I((EQt,gce)=>{"use strict";var B5e=Ql().codes.ERR_INVALID_OPT_VALUE;function b5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function Q5e(r,e,t,i){var n=b5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:Q5e}});var fce=I((IQt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((yQt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((wQt,hce)=>{hce.exports=J("util").deprecate});var DM=I((BQt,yce)=>{"use strict";yce.exports=Tr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Tr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mQ=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mQ.from(r)}function P5e(r){return mQ.isBuffer(r)||r instanceof v5e}var kM=bM(),k5e=QM(),D5e=k5e.getHighWaterMark,vl=Ql().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,N5e=vl.ERR_MULTIPLE_CALLBACK,T5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Tr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Tr,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Tr?!1:e&&e._writableState instanceof dE}})):CQ=function(e){return e instanceof this};function Tr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!CQ.call(Tr,this))return new Tr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Tr.prototype.pipe=function(){Ap(this,new T5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Tr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mQ.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Tr.prototype.cork=function(){this._writableState.corked++};Tr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Tr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Tr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mQ.from(e,t)),e}Object.defineProperty(Tr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=G5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length<e.highWaterMark;if(l||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:i,encoding:n,isBuf:t,callback:s,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else PM(r,e,!1,a,i,n,s);return l}function PM(r,e,t,i,n,s,o){e.writelen=i,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new L5e("write")):t?r._writev(n,e.onwrite):r._write(n,s,e.onwrite),e.sync=!1}function q5e(r,e,t,i,n){--e.pendingcb,t?(process.nextTick(n,i),process.nextTick(pE,r,e),r._writableState.errorEmitted=!0,Ap(r,i)):(n(i),r._writableState.errorEmitted=!0,Ap(r,i),pE(r,e))}function J5e(r){r.writing=!1,r.writecb=null,r.length-=r.writelen,r.writelen=0}function W5e(r,e){var t=r._writableState,i=t.sync,n=t.writecb;if(typeof n!="function")throw new N5e;if(J5e(t),e)q5e(r,t,i,e,n);else{var s=Ice(t)||r.destroyed;!s&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Ece(r,t),i?process.nextTick(dce,r,t,s,n):dce(r,t,s,n)}}function dce(r,e,t,i){t||z5e(r,e),e.pendingcb--,i(),pE(r,e)}function z5e(r,e){e.length===0&&e.needDrain&&(e.needDrain=!1,r.emit("drain"))}function Ece(r,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(r._writev&&t&&t.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=t;for(var o=0,a=!0;t;)n[o]=t,t.isBuf||(a=!1),t=t.next,o+=1;n.allBuffers=a,PM(r,e,!0,e.length,n,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new Cce(e),e.bufferedRequestCount=0}else{for(;t;){var l=t.chunk,c=t.encoding,u=t.callback,g=e.objectMode?1:l.length;if(PM(r,e,!1,g,l,c,u),t=t.next,e.bufferedRequestCount--,e.writing)break}t===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}Tr.prototype._write=function(r,e,t){t(new F5e("_write()"))};Tr.prototype._writev=null;Tr.prototype.end=function(r,e,t){var i=this._writableState;return typeof r=="function"?(t=r,r=null,e=null):typeof e=="function"&&(t=e,e=null),r!=null&&this.write(r,e),i.corked&&(i.corked=1,this.uncork()),i.ending||Z5e(this,i,t),this};Object.defineProperty(Tr.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ice(r){return r.ending&&r.length===0&&r.bufferedRequest===null&&!r.finished&&!r.writing}function V5e(r,e){r._final(function(t){e.pendingcb--,t&&Ap(r,t),e.prefinished=!0,r.emit("prefinish"),pE(r,e)})}function X5e(r,e){!e.prefinished&&!e.finalCalled&&(typeof r._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(V5e,r,e)):(e.prefinished=!0,r.emit("prefinish")))}function pE(r,e){var t=Ice(e);if(t&&(X5e(r,e),e.pendingcb===0&&(e.finished=!0,r.emit("finish"),e.autoDestroy))){var i=r._readableState;(!i||i.autoDestroy&&i.endEmitted)&&r.destroy()}return t}function Z5e(r,e,t){e.ending=!0,pE(r,e),t&&(e.finished?process.nextTick(t):r.once("finish",t)),e.ended=!0,r.writable=!1}function _5e(r,e,t){var i=r.entry;for(r.entry=null;i;){var n=i.callback;e.pendingcb--,n(t),i=i.next}e.corkedRequestsFree.next=r}Object.defineProperty(Tr.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Tr.prototype.destroy=kM.destroy;Tr.prototype._undestroy=kM.undestroy;Tr.prototype._destroy=function(r,e){e(r)}});var Wu=I((bQt,Bce)=>{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=NM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),EQ=0;EQ<RM.length;EQ++)IQ=RM[EQ],oa.prototype[IQ]||(oa.prototype[IQ]=FM.prototype[IQ]);var RM,IQ,EQ;function oa(r){if(!(this instanceof oa))return new oa(r);wce.call(this,r),FM.call(this,r),this.allowHalfOpen=!0,r&&(r.readable===!1&&(this.readable=!1),r.writable===!1&&(this.writable=!1),r.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",e6e)))}Object.defineProperty(oa.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(oa.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(oa.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function e6e(){this._writableState.ended||process.nextTick(t6e,this)}function t6e(r){r.end()}Object.defineProperty(oa.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var Sce=I((TM,Qce)=>{var yQ=J("buffer"),hA=yQ.Buffer;function bce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?Qce.exports=yQ:(bce(yQ,TM),TM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}bce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yQ.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t<r.length?e?e+this.text(r,t):this.text(r,t):e||""};CE.prototype.end=A6e;CE.prototype.text=a6e;CE.prototype.fillLast=function(r){if(this.lastNeed<=r.length)return r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,r.length),this.lastNeed-=r.length};function LM(r){return r<=127?0:r>>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i<t)return 0;var n=LM(e[i]);return n>=0?(n>0&&(r.lastNeed=n-1),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(r.lastNeed=n-2),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wQ=I((SQt,Dce)=>{"use strict";var Pce=Ql().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];r.apply(this,i)}}}function d6e(){}function C6e(r){return r.setHeader&&typeof r.abort=="function"}function kce(r,e,t){if(typeof e=="function")return kce(r,null,e);e||(e={}),t=p6e(t||d6e);var i=e.readable||e.readable!==!1&&r.readable,n=e.writable||e.writable!==!1&&r.writable,s=function(){r.writable||a()},o=r._writableState&&r._writableState.finished,a=function(){n=!1,o=!0,i||t.call(r)},l=r._readableState&&r._readableState.endEmitted,c=function(){i=!1,l=!0,n||t.call(r)},u=function(d){t.call(r,d)},g=function(){var d;if(i&&!l)return(!r._readableState||!r._readableState.ended)&&(d=new Pce),t.call(r,d);if(n&&!o)return(!r._writableState||!r._writableState.ended)&&(d=new Pce),t.call(r,d)},h=function(){r.req.on("finish",a)};return C6e(r)?(r.on("complete",a),r.on("abort",g),r.req?h():r.on("request",h)):n&&!r._writableState&&(r.on("end",s),r.on("close",s)),r.on("end",c),r.on("finish",a),e.error!==!1&&r.on("error",u),r.on("close",g),function(){r.removeListener("complete",a),r.removeListener("abort",g),r.removeListener("request",h),r.req&&r.req.removeListener("finish",a),r.removeListener("end",s),r.removeListener("close",s),r.removeListener("finish",a),r.removeListener("end",c),r.removeListener("error",u),r.removeListener("close",g)}}Dce.exports=kce});var Fce=I((vQt,Rce)=>{"use strict";var BQ;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wQ(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),bQ=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[bQ]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((BQ={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[bQ])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(BQ,Symbol.asyncIterator,function(){return this}),xl(BQ,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),BQ),w6e),b6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,bQ,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[bQ]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=b6e});var Oce=I((xQt,Lce)=>{"use strict";function Nce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function Q6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Nce(s,i,n,o,a,"next",l)}function a(l){Nce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Tce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Tce(Object(t),!0).forEach(function(i){v6e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Tce(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function v6e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var x6e=Ql().codes.ERR_INVALID_ARG_TYPE;function P6e(r,e,t){var i;if(e&&typeof e.next=="function")i=e;else if(e&&e[Symbol.asyncIterator])i=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])i=e[Symbol.iterator]();else throw new x6e("iterable",["Iterable"],e);var n=new r(S6e({objectMode:!0},t)),s=!1;n._read=function(){s||(s=!0,o())};function o(){return a.apply(this,arguments)}function a(){return a=Q6e(function*(){try{var l=yield i.next(),c=l.value,u=l.done;u?n.push(null):n.push(yield c)?o():s=!1}catch(g){n.destroy(g)}}),a.apply(this,arguments)}return n}Lce.exports=P6e});var NM=I((kQt,Wce)=>{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var PQt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),QQ=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return QQ.from(r)}function R6e(r){return QQ.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=bM(),N6e=QM(),T6e=N6e.getHighWaterMark,SQ=Ql().codes,L6e=SQ.ERR_INVALID_ARG_TYPE,O6e=SQ.ERR_STREAM_PUSH_AFTER_EOF,M6e=SQ.ERR_METHOD_NOT_IMPLEMENTED,K6e=SQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,GM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=T6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=QQ.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,G6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==QQ.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length<s.highWaterMark||s.length===0)}function YM(r,e,t,i){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,r.emit("data",t)):(e.length+=e.objectMode?1:t.length,i?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&vQ(r)),JM(r,e)}function H6e(r,e){var t;return!R6e(e)&&typeof e!="string"&&e!==void 0&&!r.objectMode&&(t=new L6e("chunk",["string","Buffer","Uint8Array"],e)),t}Ot.prototype.isPaused=function(){return this._readableState.flowing===!1};Ot.prototype.setEncoding=function(r){up||(up=MM().StringDecoder);var e=new up(r);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var t=this._readableState.buffer.head,i="";t!==null;)i+=e.write(t.data),t=t.next;return this._readableState.buffer.clear(),i!==""&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var Mce=1073741824;function j6e(r){return r>=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vQ(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r<e.highWaterMark)&&(i=!0,Pt("length less than watermark",i)),e.ended||e.reading?(i=!1,Pt("reading or ended",i)):i&&(Pt("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(r=Kce(t,e)));var n;return r>0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function G6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vQ(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Gce(r)))}}function vQ(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Gce,r))}function Gce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var t=e.length;if(Pt("maybeReadMore read 0"),r.read(0),t===e.length)break}e.readingMore=!1}Ot.prototype._read=function(r){EE(this,new M6e("_read()"))};Ot.prototype.pipe=function(r,e){var t=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=r;break;case 1:i.pipes=[i.pipes,r];break;default:i.pipes.push(r);break}i.pipesCount+=1,Pt("pipe count=%d opts=%j",i.pipesCount,e);var n=(!e||e.end!==!1)&&r!==process.stdout&&r!==process.stderr,s=n?a:m;i.endEmitted?process.nextTick(s):t.once("end",s),r.on("unpipe",o);function o(y,B){Pt("onunpipe"),y===t&&B&&B.hasUnpiped===!1&&(B.hasUnpiped=!0,u())}function a(){Pt("onend"),r.end()}var l=q6e(t);r.on("drain",l);var c=!1;function u(){Pt("cleanup"),r.removeListener("close",p),r.removeListener("finish",d),r.removeListener("drain",l),r.removeListener("error",h),r.removeListener("unpipe",o),t.removeListener("end",a),t.removeListener("end",m),t.removeListener("data",g),c=!0,i.awaitDrain&&(!r._writableState||r._writableState.needDrain)&&l()}t.on("data",g);function g(y){Pt("ondata");var B=r.write(y);Pt("dest.write",B),B===!1&&((i.pipesCount===1&&i.pipes===r||i.pipesCount>1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s<n;s++)i[s].emit("unpipe",this,{hasUnpiped:!1});return this}var o=Jce(e.pipes,r);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),r.emit("unpipe",this,t),this)};Ot.prototype.on=function(r,e){var t=IE.prototype.on.call(this,r,e),i=this._readableState;return r==="data"?(i.readableListening=this.listenerCount("readable")>0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vQ(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s<GM.length;s++)r.on(GM[s],this.emit.bind(this,GM[s]));return this._read=function(o){Pt("wrapped _read",o),i&&(i=!1,r.resume())},this};typeof Symbol=="function"&&(Ot.prototype[Symbol.asyncIterator]=function(){return HM===void 0&&(HM=Fce()),HM(this)});Object.defineProperty(Ot.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Ot.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Ot.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Ot._fromList=qce;Object.defineProperty(Ot.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function qce(r,e){if(e.length===0)return null;var t;return e.objectMode?t=e.buffer.shift():!r||r>=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t<i;t++)if(r[t]===e)return t;return-1}});var VM=I((DQt,Vce)=>{"use strict";Vce.exports=pA;var xQ=Ql().codes,X6e=xQ.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xQ.ERR_MULTIPLE_CALLBACK,_6e=xQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xQ.ERR_TRANSFORM_WITH_LENGTH_0,PQ=Wu();Sl()(pA,PQ);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function pA(r){if(!(this instanceof pA))return new pA(r);PQ.call(this,r),this._transformState={afterTransform:e9e.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,r&&(typeof r.transform=="function"&&(this._transform=r.transform),typeof r.flush=="function"&&(this._flush=r.flush)),this.on("prefinish",t9e)}function t9e(){var r=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,t){zce(r,e,t)}):zce(this,null,null)}pA.prototype.push=function(r,e){return this._transformState.needTransform=!1,PQ.prototype.push.call(this,r,e)};pA.prototype._transform=function(r,e,t){t(new X6e("_transform()"))};pA.prototype._write=function(r,e,t){var i=this._transformState;if(i.writecb=t,i.writechunk=r,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}};pA.prototype._read=function(r){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};pA.prototype._destroy=function(r,e){PQ.prototype._destroy.call(this,r,function(t){e(t)})};function zce(r,e,t){if(e)return r.emit("error",e);if(t!=null&&r.push(t),r._writableState.length)throw new $6e;if(r._transformState.transforming)throw new _6e;return r.push(null)}});var _ce=I((RQt,Zce)=>{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((FQt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=Ql().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wQ()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var i=A9e(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new i9e("streams");var n,s=e.map(function(o,a){var l=a<e.length-1,c=a>0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wQ(),Os.pipeline=iue())});var oue=I((NQt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;i<this._bufs.length;i++){let n=t+this._bufs[i].length;if(e<n||i===this._bufs.length-1)return[i,e-t];t=n}};ur.prototype._reverseOffset=function(r){let e=r[0],t=r[1];for(let i=0;i<e;i++)t+=this._bufs[i].length;return t};ur.prototype.get=function(e){if(e>this.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;g<this._bufs.length;g++)this._bufs[g].copy(e,c),c+=this._bufs[g].length;return e}if(l<=this._bufs[o[0]].length-u)return s?this._bufs[o[0]].copy(e,t,u,u+l):this._bufs[o[0]].slice(u,u+l);s||(e=Eo.allocUnsafe(a));for(let g=o[0];g<this._bufs.length;g++){let h=this._bufs[g].length-u;if(l>h)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e};ur.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(Eo.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(Eo.from(e));return this};ur.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};ur.prototype.indexOf=function(r,e,t){if(t===void 0&&typeof e=="string"&&(t=e,e=void 0),typeof r=="function"||Array.isArray(r))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof r=="number"?r=Eo.from([r]):typeof r=="string"?r=Eo.from(r,t):this._isBufferList(r)?r=r.slice():Array.isArray(r.buffer)?r=Eo.from(r.buffer,r.byteOffset,r.byteLength):Eo.isBuffer(r)||(r=Eo.from(r)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),r.length===0)return e>this.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n<this._bufs.length;n++){let o=this._bufs[n];for(;s<o.length;)if(o.length-s>=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r<e.length)return!1;for(let t=0;t<e.length;t++)if(this.get(r+t)!==e[t])return!1;return!0};(function(){let r={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in r)(function(t){r[t]===null?ur.prototype[t]=function(i,n){return this.slice(i,i+n)[t](0,n)}:ur.prototype[t]=function(i=0){return this.slice(i,i+r[t])[t](0)}})(e)})();ur.prototype._isBufferList=function(e){return e instanceof ur||ur.isBufferList(e)};ur.isBufferList=function(e){return e!=null&&e[nue]};sue.exports=ur});var aue=I((TQt,kQ)=>{"use strict";var ZM=gp().Duplex,c9e=Sl(),bE=oue();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}bE._init.call(this,r),ZM.call(this)}c9e(Wi,ZM);Object.assign(Wi.prototype,bE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof bE||Wi.isBufferList(e)};Wi.isBufferList=bE.isBufferList;kQ.exports=Wi;kQ.exports.BufferListStream=Wi;kQ.exports.BufferList=bE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),QE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;t<i;t++)if(r[t]===e)return t;return i},uue=function(r){for(var e=256,t=0;t<148;t++)e+=r[t];for(var i=156;i<512;i++)e+=r[i];return e},Dl=function(r,e){return r=r.toString(8),r.length>e?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i<o;i++)s+=t[i]*Math.pow(256,i);return e?s:-1*s}var Rl=function(r,e,t){if(r=r.slice(e,e+t),e=0,r[e]&128)return y9e(r);for(;e<r.length&&r[e]===32;)e++;for(var i=m9e(cue(r,32,e,r.length),r.length,r.length);e<i&&r[e]===0;)e++;return i===e?0:parseInt(r.slice(e,i).toString(),8)},fp=function(r,e,t,i){return r.slice(e,cue(r,0,e,e+t)).toString(i)},_M=function(r){var e=Buffer.byteLength(r),t=Math.floor(Math.log(e)/Math.log(10))+1;return e+t>=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` `)),r.linkname&&(e+=_M(" linkpath="+r.linkname+` `));var t=r.pax;if(t)for(var i in t)e+=_M(" "+i+"="+t[i]+` -`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t<r.length&&r[t]!==32;)t++;var i=parseInt(r.slice(0,t).toString(),10);if(!i)return e;var n=r.slice(t+1,i-1).toString(),s=n.indexOf("=");if(s===-1)return e;e[n.slice(0,s)]=n.slice(s+1),r=r.slice(i)}return e};hp.encode=function(r){var e=u9e(512),t=r.name,i="";if(r.typeflag===5&&t[t.length-1]!=="/"&&(t+="/"),Buffer.byteLength(t)!==t.length)return null;for(;Buffer.byteLength(t)>100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,bE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,bE,bE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,bE,bE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((Obt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new Db(r,e);return t.end(),t},Q9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},Db=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(Db,pue);Db.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=Q9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new Db(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t());this._cb=t,this._missing=0;var o=null;r.length>s&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((Mbt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var bue=I((Kbt,Que)=>{var pp=Iue(),yue=PD(),Fb=Sl(),b9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,Rb=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=b9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var Tb=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};Fb(Tb,dp);Tb.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};Tb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Nb=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};Fb(Nb,dp);Nb.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};Nb.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};Fb(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};Fb(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new Nb;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new Tb(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=Rb.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=Rb.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(Rb.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(Rb.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};Que.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=bue()});var Mue=I((aSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Nue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Nue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function G9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))G9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Tue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Tue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Tue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=j9e;function j9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Nue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((ASt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,An=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=An(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=An(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=An(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. +`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t<r.length&&r[t]!==32;)t++;var i=parseInt(r.slice(0,t).toString(),10);if(!i)return e;var n=r.slice(t+1,i-1).toString(),s=n.indexOf("=");if(s===-1)return e;e[n.slice(0,s)]=n.slice(s+1),r=r.slice(i)}return e};hp.encode=function(r){var e=u9e(512),t=r.name,i="";if(r.typeflag===5&&t[t.length-1]!=="/"&&(t+="/"),Buffer.byteLength(t)!==t.length)return null;for(;Buffer.byteLength(t)>100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,QE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,QE,QE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,QE,QE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((OQt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new DQ(r,e);return t.end(),t},b9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},DQ=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(DQ,pue);DQ.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=b9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new DQ(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t());this._cb=t,this._missing=0;var o=null;r.length>s&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((MQt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var Que=I((KQt,bue)=>{var pp=Iue(),yue=PD(),FQ=Sl(),Q9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,RQ=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=Q9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var NQ=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};FQ(NQ,dp);NQ.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};NQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var TQ=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};FQ(TQ,dp);TQ.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};TQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};FQ(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};FQ(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new TQ;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new NQ(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=RQ.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=RQ.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(RQ.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(RQ.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};bue.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=Que()});var Mue=I((aSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Tue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Tue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Nue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Nue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Nue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=G9e;function G9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Tue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((ASt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,An=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=An(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=An(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=An(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. Wanted: ${t.size} Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=An(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. Wanted: ${r.size} - Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>je,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>bh,WorkspaceFetcher:()=>Nf,WorkspaceResolver:()=>Hr,YarnVersion:()=>Tr,execUtils:()=>pr,folderUtils:()=>Tw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>NI,scriptUtils:()=>Yt,semverUtils:()=>bt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>Gw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>bo,CustomDir:()=>Gp,CwdFS:()=>Gt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Ne,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>wr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>QS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var xr={};ct(xr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>jge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function jge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Ne={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Mr(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function Qo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function gn(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var Gp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new Gp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;s<i&&await new Promise(a=>setTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} + Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>Qh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Hr,YarnVersion:()=>Nr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>Qt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>Qo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>wr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>bS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var xr={};ct(xr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Te={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Mr(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function bo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function gn(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;s<i&&await new Promise(a=>setTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} `)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} `)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},vA=class extends wa{constructor(){super(v)}};function $ge(r){let e=r.match(/\r?\n/g);if(e===null)return fK.EOL;let t=e.filter(n=>n===`\r `).length,i=e.length-t;return t>i?`\r `:` -`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var bg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Ne.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var Qg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new Qg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=Qg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function jp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())jp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Ne.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;a<o;++a){let l=this.libzip.getName(this.zip,a,0);if(v.isAbsolute(l))continue;let c=v.resolve(Ne.root,l);this.registerEntry(c,a),l.endsWith("/")&&this.registerListing(c)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(t){let i=this.libzip.struct.errorCodeZip(t),n=this.libzip.error.strerror(t),s=new ZE(n,this.libzip.errors[i]);if(i===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${s.message}`);return s}getExtractHint(t){for(let i of this.entries.keys()){let n=this.pathUtils.extname(i);if(t.relevantExtensions.has(n))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}getBufferAndClose(){if(this.prepareClose(),!this.lzSource)throw new Error("ZipFS was not created from a Buffer");if(this.entries.size===0)return this.discardAndClose(),ES();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let t=this.libzip.source.tell(this.lzSource);if(t===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let i=this.libzip.malloc(t);if(!i)throw new Error("Couldn't allocate enough memory");try{let n=this.libzip.source.read(this.lzSource,i,t);if(n===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(n<t)throw new Error("Incomplete read");if(n>t)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Ne.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Mr("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Mr("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Mr("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw gn(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Ne.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=bg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&bg.constants.W_OK)throw gn(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Mr("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw Qo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Ne.root,i);if(o==="/")return Ne.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw Qo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Ne.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(g<a)throw new Error("Incomplete read");if(g>a)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw gn(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw gn(`copyfile '${t} -> '${i}'`);if((n&bg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(bg.constants.COPYFILE_EXCL|bg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Mr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw gn(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw gn(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw gn(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw gn(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw gn(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw gn(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw Qo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Ne.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw gn(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw Qo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw Qo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw Qo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Ne.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Ne.root,t);return jp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var bo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var Gt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Ne.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Ne.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Ne.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,wr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a<o.length&&o[a]==="..";)a+=1;let l=o.slice(a);return v.join(t,i,String(a),...l)}static resolveVirtual(t){let i=t.match(BS);if(!i||!i[3]&&i[5])return t;let n=v.dirname(i[1]);if(!i[3]||!i[4])return n;if(!tfe.test(i[4]))return t;let o=Number(i[4]),a="../".repeat(o),l=i[5]||".";return wr.resolveVirtual(v.join(n,a,l))}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(t){let i=t.match(BS);if(!i)return this.baseFs.realpathSync(t);if(!i[5])return t;let n=this.baseFs.realpathSync(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}async realpathPromise(t){let i=t.match(BS);if(!i)return await this.baseFs.realpathPromise(t);if(!i[5])return t;let n=await this.baseFs.realpathPromise(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}mapToBase(t){if(t==="")return t;if(this.pathUtils.isAbsolute(t))return wr.resolveVirtual(t);let i=wr.resolveVirtual(this.baseFs.resolve(Ne.dot)),n=wr.resolveVirtual(this.baseFs.resolve(t));return v.relative(i,n)||Ne.dot}mapFromBase(t){return t}};var Jp=J("fs");var fn=4278190080,Vi=704643072,EK=(r,e)=>{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&fn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&fn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&fn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&fn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Ne.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&fn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>jp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Ne.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function QS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return QS(t,e),t}var bK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,bS=null;function QK(){if(bS)return bS;let r=K.toPortablePath(bK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),bS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=QK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(NS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>ba,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` -`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],bI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null +`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var Qg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var bg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new bg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=bg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Te.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;a<o;++a){let l=this.libzip.getName(this.zip,a,0);if(v.isAbsolute(l))continue;let c=v.resolve(Te.root,l);this.registerEntry(c,a),l.endsWith("/")&&this.registerListing(c)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(t){let i=this.libzip.struct.errorCodeZip(t),n=this.libzip.error.strerror(t),s=new ZE(n,this.libzip.errors[i]);if(i===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${s.message}`);return s}getExtractHint(t){for(let i of this.entries.keys()){let n=this.pathUtils.extname(i);if(t.relevantExtensions.has(n))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}getBufferAndClose(){if(this.prepareClose(),!this.lzSource)throw new Error("ZipFS was not created from a Buffer");if(this.entries.size===0)return this.discardAndClose(),ES();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let t=this.libzip.source.tell(this.lzSource);if(t===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let i=this.libzip.malloc(t);if(!i)throw new Error("Couldn't allocate enough memory");try{let n=this.libzip.source.read(this.lzSource,i,t);if(n===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(n<t)throw new Error("Incomplete read");if(n>t)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Te.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Mr("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Mr("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Mr("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw gn(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Te.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=Qg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&Qg.constants.W_OK)throw gn(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Mr("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw bo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Te.root,i);if(o==="/")return Te.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw bo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Te.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(g<a)throw new Error("Incomplete read");if(g>a)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw gn(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw gn(`copyfile '${t} -> '${i}'`);if((n&Qg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(Qg.constants.COPYFILE_EXCL|Qg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Mr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw gn(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw gn(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw gn(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw gn(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw gn(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw gn(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw bo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Te.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw gn(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw bo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Te.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Te.root,t);return Gp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Qo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Te.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Te.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Te.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,wr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a<o.length&&o[a]==="..";)a+=1;let l=o.slice(a);return v.join(t,i,String(a),...l)}static resolveVirtual(t){let i=t.match(BS);if(!i||!i[3]&&i[5])return t;let n=v.dirname(i[1]);if(!i[3]||!i[4])return n;if(!tfe.test(i[4]))return t;let o=Number(i[4]),a="../".repeat(o),l=i[5]||".";return wr.resolveVirtual(v.join(n,a,l))}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(t){let i=t.match(BS);if(!i)return this.baseFs.realpathSync(t);if(!i[5])return t;let n=this.baseFs.realpathSync(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}async realpathPromise(t){let i=t.match(BS);if(!i)return await this.baseFs.realpathPromise(t);if(!i[5])return t;let n=await this.baseFs.realpathPromise(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}mapToBase(t){if(t==="")return t;if(this.pathUtils.isAbsolute(t))return wr.resolveVirtual(t);let i=wr.resolveVirtual(this.baseFs.resolve(Te.dot)),n=wr.resolveVirtual(this.baseFs.resolve(t));return v.relative(i,n)||Te.dot}mapFromBase(t){return t}};var Jp=J("fs");var fn=4278190080,Vi=704643072,EK=(r,e)=>{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&fn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&fn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&fn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&fn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&fn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Te.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function bS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return bS(t,e),t}var QK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,QS=null;function bK(){if(QS)return QS;let r=K.toPortablePath(QK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),QS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(TS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>Qa,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],QI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null `;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} `;if(typeof r=="string")return`${hH(r)} `;if(Array.isArray(r)){if(r.length===0)return`[] `;let i=" ".repeat(e);return` -${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof bI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.indexOf(c);return u===-1&&g===-1?l<c?-1:l>c?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g} +${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof QI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.indexOf(c);return u===-1&&g===-1?l<c?-1:l>c?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g} ${p}:`:`${g}:`,m=h.startsWith(` `)?h:` ${h}`;return`${p}${d}${m}`}).join(e===0?` `:"")||` `;return t?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function ba(r){try{let e=$S(r,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}ba.PreserveOrdering=bI;function Ede(r){return r.endsWith(` +${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function Qa(r){try{let e=$S(r,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Qa.PreserveOrdering=QI;function Ede(r){return r.endsWith(` `)||(r+=` -`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>Gn,Command:()=>be,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ni});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} +`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>Qe,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} ${this.candidates.map(({usage:n})=>`$ ${n}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: @@ -343,9 +343,9 @@ ${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` ${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Xi(r){return{...r,[id]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function PI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${PI(e[0],!0)}`):new we(`${r}: ${e.map(t=>` -- ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var be=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),pn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};be.isOption=id;be.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` +- ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var Qe=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),pn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};Qe.isOption=id;Qe.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` `),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Ni(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` +`)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` `),r=nCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 `),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` @@ -353,26 +353,26 @@ ${e.map(t=>` `)}).join(` `)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var fv=ve(J("tty"),1);function dn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function TH(){return{nodes:[_i(),_i(),_i()]}}function sCe(r){let e=TH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)OH(s)||e.nodes.push(hCe(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)Gg(e,0,n);return e}function Vs(r,e){return r.nodes.push(e),r.nodes.length-1}function oCe(r){let e=new Set,t=i=>{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){dn(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)dn(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function NH(r,e,t=!1){dn(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];aCe(r,{prefix:" "});let n=[tv,...e];for(let s=0;s<n.length;++s){let o=n[s];dn(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){dn(` Current node is ${l}`);let u=r.nodes[l];if(l===2){a.push({node:l,state:c});continue}console.assert(u.shortcuts.length===0,"Shortcuts should have been eliminated by now");let g=Object.prototype.hasOwnProperty.call(u.statics,o);if(!t||s<n.length-1||g)if(g){let h=u.statics[o];for(let{to:p,reducer:d}of h)a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Static transition to ${p} found`)}else dn(" No static transition found");else{let h=!1;for(let p of Object.keys(u.statics))if(!!p.startsWith(o)){if(o===p)for(let{to:d,reducer:m}of u.statics[p])a.push({node:d,state:typeof m<"u"?DI(uv,m,c,o):c}),dn(` Static transition to ${d} found`);else for(let{to:d}of u.statics[p])a.push({node:d,state:{...c,remainder:p.slice(o.length)}}),dn(` Static transition to ${d} found (partial match)`);h=!0}h||dn(" No partial static transition found")}if(o!==Bi)for(let[h,{to:p,reducer:d}]of u.dynamics)DI(FI,h,c,o)&&(a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Dynamic transition to ${p} found (via ${h})`))}if(a.length===0&&o===Bi&&e.length===1)return[{node:0,state:FH}];if(a.length===0)throw new Hg(e,i.filter(({node:l})=>l!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){dn(" Results:");for(let s of i)dn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else dn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=NH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=NH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function Qi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function Gg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i<t;++i)this.addPositional({name:e});this.arity.extra=Hn}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:t,arity:i=0,hidden:n=!1,required:s=!1,allowBinding:o=!0}){if(!o&&i>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p<a;++p)g.push(` #${p}`);let h=`${o.join(",")}${g.join("")}`;!t&&c?n.push({definition:h,description:c,required:u}):i.push(u?`<${h}>`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=TH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,_i()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,_i());Gg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h<a.length;++h){let p=Vs(e,_i());Sa(e,l,a[h],p,"pushPath"),l=p}if(this.arity.leading.length>0||!this.arity.proxy){let h=Vs(e,_i());Qi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h<this.arity.leading.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),(this.arity.trailing.length>0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,_i());if(Gg(e,c,h),this.arity.extra===Hn){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),Qi(e,c,s,p,"pushExtraNoLimits"),Qi(e,p,s,p,"pushExtraNoLimits"),Gg(e,p,h)}else for(let p=0;p<this.arity.extra.length;++p){let d=Vs(e,_i());this.arity.proxy||this.registerOptions(e,d),Qi(e,u,s,d,"pushExtra"),Gg(e,d,h),u=d}u=h}this.arity.trailing.length>0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;h<this.arity.trailing.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),h+1<this.arity.trailing.length&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),Qi(e,g,"isNotOptionLike",p,"pushPositional"),g=p}Qi(e,g,s,2,["setError","Extraneous positional argument"]),Sa(e,g,Bi,1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){Qi(e,t,["isOption","--"],t,"inhibateOptions"),Qi(e,t,["isBatchOption",this.allOptionNames],t,"pushBatch"),Qi(e,t,["isBoundOption",this.allOptionNames,this.options],t,"pushBound"),Qi(e,t,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),Qi(e,t,["isInvalidOption"],2,["setError","Invalid option name"]);for(let i of this.options){let n=i.names.reduce((s,o)=>o.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)Qi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&Qi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,_i());for(let o of i.names)Qi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o<i.arity;++o){let a=Vs(e,_i());Sa(e,s,Bi,2,"setOptionArityError"),Qi(e,s,"isOptionLike",2,"setOptionArityError");let l=i.arity===1?"setStringValue":"pushStringValue";Qi(e,s,"isNotOptionLike",a,l),s=a}Gg(e,s,t)}}}},Yg=class{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new Yg(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let t of e)t(this.command());return this}command(){let e=new gv(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],t=[];for(let n of this.builders){let{machine:s,context:o}=n.compile();e.push(s),t.push(o)}let i=sCe(e);return oCe(i),{machine:i,contexts:t,process:n=>cCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends be{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: +`:""}var fv=ve(J("tty"),1);function dn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[_i(),_i(),_i()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)OH(s)||e.nodes.push(hCe(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)jg(e,0,n);return e}function Vs(r,e){return r.nodes.push(e),r.nodes.length-1}function oCe(r){let e=new Set,t=i=>{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){dn(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)dn(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function TH(r,e,t=!1){dn(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];aCe(r,{prefix:" "});let n=[tv,...e];for(let s=0;s<n.length;++s){let o=n[s];dn(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){dn(` Current node is ${l}`);let u=r.nodes[l];if(l===2){a.push({node:l,state:c});continue}console.assert(u.shortcuts.length===0,"Shortcuts should have been eliminated by now");let g=Object.prototype.hasOwnProperty.call(u.statics,o);if(!t||s<n.length-1||g)if(g){let h=u.statics[o];for(let{to:p,reducer:d}of h)a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Static transition to ${p} found`)}else dn(" No static transition found");else{let h=!1;for(let p of Object.keys(u.statics))if(!!p.startsWith(o)){if(o===p)for(let{to:d,reducer:m}of u.statics[p])a.push({node:d,state:typeof m<"u"?DI(uv,m,c,o):c}),dn(` Static transition to ${d} found`);else for(let{to:d}of u.statics[p])a.push({node:d,state:{...c,remainder:p.slice(o.length)}}),dn(` Static transition to ${d} found (partial match)`);h=!0}h||dn(" No partial static transition found")}if(o!==Bi)for(let[h,{to:p,reducer:d}]of u.dynamics)DI(FI,h,c,o)&&(a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Dynamic transition to ${p} found (via ${h})`))}if(a.length===0&&o===Bi&&e.length===1)return[{node:0,state:FH}];if(a.length===0)throw new Hg(e,i.filter(({node:l})=>l!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){dn(" Results:");for(let s of i)dn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else dn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function bi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i<t;++i)this.addPositional({name:e});this.arity.extra=Hn}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:t,arity:i=0,hidden:n=!1,required:s=!1,allowBinding:o=!0}){if(!o&&i>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p<a;++p)g.push(` #${p}`);let h=`${o.join(",")}${g.join("")}`;!t&&c?n.push({definition:h,description:c,required:u}):i.push(u?`<${h}>`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=NH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,_i()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,_i());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h<a.length;++h){let p=Vs(e,_i());Sa(e,l,a[h],p,"pushPath"),l=p}if(this.arity.leading.length>0||!this.arity.proxy){let h=Vs(e,_i());bi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h<this.arity.leading.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),(this.arity.trailing.length>0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),bi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,_i());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),bi(e,c,s,p,"pushExtraNoLimits"),bi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p<this.arity.extra.length;++p){let d=Vs(e,_i());this.arity.proxy||this.registerOptions(e,d),bi(e,u,s,d,"pushExtra"),jg(e,d,h),u=d}u=h}this.arity.trailing.length>0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;h<this.arity.trailing.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),h+1<this.arity.trailing.length&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),bi(e,g,"isNotOptionLike",p,"pushPositional"),g=p}bi(e,g,s,2,["setError","Extraneous positional argument"]),Sa(e,g,Bi,1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){bi(e,t,["isOption","--"],t,"inhibateOptions"),bi(e,t,["isBatchOption",this.allOptionNames],t,"pushBatch"),bi(e,t,["isBoundOption",this.allOptionNames,this.options],t,"pushBound"),bi(e,t,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),bi(e,t,["isInvalidOption"],2,["setError","Invalid option name"]);for(let i of this.options){let n=i.names.reduce((s,o)=>o.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)bi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&bi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,_i());for(let o of i.names)bi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o<i.arity;++o){let a=Vs(e,_i());Sa(e,s,Bi,2,"setOptionArityError"),bi(e,s,"isOptionLike",2,"setOptionArityError");let l=i.arity===1?"setStringValue":"pushStringValue";bi(e,s,"isNotOptionLike",a,l),s=a}jg(e,s,t)}}}},Yg=class{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new Yg(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let t of e)t(this.command());return this}command(){let e=new gv(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],t=[];for(let n of this.builders){let{machine:s,context:o}=n.compile();e.push(s),t.push(o)}let i=sCe(e);return oCe(i),{machine:i,contexts:t,process:n=>cCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends Qe{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands. -`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var Gn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new Gn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[be.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...Gn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ni(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ni(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ni(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ni(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof be?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ni(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` +`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Qe.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Qe?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` `),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} `,a+=` `);let{usage:g,options:h}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} `,h.length>0){a+=` `,a+=`${lv.header("Options")} `;let p=h.reduce((d,m)=>Math.max(d,m.definition.length),0);a+=` -`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ni(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` +`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ti(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` `,a+=`${this.format(t).header("Details")} `,a+=` -`,a+=Ni(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` +`,a+=Ti(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` `,a+=`${this.format(t).header("Examples")} `;for(let[p,d]of u)a+=` -`,a+=Ni(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} +`,a+=Ti(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} `}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} -`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ni(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} +`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ti(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} `:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} `:a+=`${this.format(t).header(`${this.binaryVersion}`)} @@ -382,100 +382,100 @@ ${e.map(t=>` `,a+=`${this.format(t).header(`${d}`)} `;for(let{commandClass:m,usage:y}of p){let B=m.usage.description||"undocumented";a+=` `,a+=` ${this.format(t).bold(y)} -`,a+=` ${Ni(B,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=Ni("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} +`,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=` +`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} `;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` `,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:Gn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};Gn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends be{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends be{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends be{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"} -`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>GH,Counter:()=>jH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&o<e.arity.leading.length},s=0;for(;s<i.positionals.length&&n(s);)s+=1;return i.positionals.splice(0,s).map(({value:o})=>o)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<n.positionals.length;++o){if(n.positionals[o].extra===Hn||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return sd((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function JH(r,...e){return typeof r=="string"?mCe(r,...e):ECe(r)}var wz=ve(Jg()),nD=J("stream");var dt=(ae=>(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function NI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>GSe,bindLocator:()=>jSe,convertDescriptorToLocator:()=>bw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>nn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>tn,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>vn,stringifyIdent:()=>Nt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>Gk,virtualizePackage:()=>jk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Sn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>bc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var mW=ve(Qn()),EW=ve(aW());var me={};ct(me,{AsyncActions:()=>Gx,BufferStream:()=>Hx,CachingStrategy:()=>dW,DefaultStream:()=>jx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>Qc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>CW,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>bn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var lW=ve(Qn()),cW=ve(Jg()),uW=ve(zr()),Yx=J("stream");function u0e(r){return!!(uW.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==gW&&t.push(n)}return t}var gW=Symbol();Uo.skip=gW;function Wd(r,e){for(let t of r){let i=e(t);if(i!==fW)return i}}var fW=Symbol();Wd.skip=fW;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function Qc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Yx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var Gx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,cW.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},jx=class extends Yx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function hW(r){return Jd(K.fromPortablePath(r))}function pW(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=hW(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var AW=new Map;function C0e(r){let e=AW.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=pW(r);return AW.set(r,{mtime:t.mtimeMs,instance:i}),i}var dW=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(dW||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return pW(r);case 1:return C0e(r);case 2:return hW(r);default:throw new Error("Unsupported caching strategy")}}function bn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${lW.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function CW(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return CW(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Sn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Nt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>vn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:vn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:vn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,tn(e.selector))} \u27A4 ${Sn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Nt(r.parentDescriptor)} > ${Nt(r.descriptor)}`;case"PeerDependency":return`${Nt(r.parentDescriptor)} >> ${Nt(r.descriptor)}`;case"PeerDependencyMeta":return`${Nt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Sn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Sn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Sn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ni(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Sn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Sn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Sn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function bc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?bc(t,i):_e(e,t,i)}function rP(r){return{Check:Sn(r,"\u2713","green"),Cross:Sn(r,"\u2718","red"),Question:Sn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([mW.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,EW.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>Qw,makeHash:()=>rn});var ww=J("crypto"),Kk=ve(Mk());function rn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Qw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(x8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function bw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,nn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function GSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function jSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P8(t,i))return!1}return!0}function tn(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function b8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${b8(e)}#`),n+=b8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Nt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function vn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Nt(r)}@${xw(r.reference)}`}function Pf(r){return bn(r,[e=>Nt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Nt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Nt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Nt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Hr=uC;Hr.protocol="workspace:";var bt={};ct(bt,{SemVer:()=>T8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),T8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=N8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=N8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Hr.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Nt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Nt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Nt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Nt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Nt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Nt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Nt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of bn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of bn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?vn(zt(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...bn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function N8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var Gve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function jve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t<e;)await n,yield{progress:t/e}}();return{[Symbol.asyncIterator](){return a},hasProgress:!0,hasTitle:!1,set:s,tick:o}}static progressViaTitle(){let e,t,i=new Promise(o=>{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/Gve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){jve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=wr.makeVirtualPath(s,o,n),l=new bo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Tf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Tf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Tf.protocol)}supportsDescriptor(e,t){return Tf.isVirtualDescriptor(e)}supportsLocator(e,t){return Tf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Tf;hC.protocol="virtual:";var Nf=class{supports(e){return!!e.reference.startsWith(Hr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new Gt(i),prefixPath:Ne.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Hr.protocol.length))}};var Tw={};ct(Tw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Nw,Lw;function dC(){return Nw=Nw!=null?Nw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),Ga=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new Ga(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await Ga.findRcFiles(e),c=await Ga.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new Ga(e);h.importSettings(u(rD)),h.useWithSource("<environment>",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await Ga.findProjectCwd(e,p);break;case 1:d=await Ga.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"<environment>")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("<environment>",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","<internal>")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,ba(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await Ga.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e==="<environment>"&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!=="<environment>"){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Hr,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Nf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Nt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(bn(t.dependencies,([,s])=>vn(s))),t.peerDependencies=new Map(bn(t.peerDependencies,([,s])=>vn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=Ga;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},Gw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new Gw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(Qn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>TB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>NB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>TC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>an,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(T=>(T[T.ZIP_ER_OK=0]="ZIP_ER_OK",T[T.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",T[T.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",T[T.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",T[T.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",T[T.ZIP_ER_READ=5]="ZIP_ER_READ",T[T.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",T[T.ZIP_ER_CRC=7]="ZIP_ER_CRC",T[T.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",T[T.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",T[T.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",T[T.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",T[T.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",T[T.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",T[T.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",T[T.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",T[T.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",T[T.ZIP_ER_EOF=17]="ZIP_ER_EOF",T[T.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",T[T.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",T[T.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",T[T.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",T[T.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",T[T.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",T[T.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",T[T.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",T[T.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",T[T.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",T[T.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",T[T.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",T[T.ZIP_ER_TELL=30]="ZIP_ER_TELL",T[T.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",T))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var TR=null;function u9(){return TR===null&&(TR=l9((0,c9.default)())),TR}async function an(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var b9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>NR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(Qn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function NR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(NS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} +`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends Qe{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends Qe{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends Qe{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"} +`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&o<e.arity.leading.length},s=0;for(;s<i.positionals.length&&n(s);)s+=1;return i.positionals.splice(0,s).map(({value:o})=>o)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<n.positionals.length;++o){if(n.positionals[o].extra===Hn||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return sd((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function JH(r,...e){return typeof r=="string"?mCe(r,...e):ECe(r)}var wz=ve(Jg()),nD=J("stream");var dt=(ae=>(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function TI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>jSe,bindLocator:()=>GSe,convertDescriptorToLocator:()=>Qw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>nn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>tn,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>vn,stringifyIdent:()=>Tt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Gk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Sn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>Qc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var m4=ve(bn()),E4=ve(a4());var me={};ct(me,{AsyncActions:()=>jx,BufferStream:()=>Hx,CachingStrategy:()=>d4,DefaultStream:()=>Gx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>bc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>C4,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>Qn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var l4=ve(bn()),c4=ve(Jg()),u4=ve(zr()),Yx=J("stream");function u0e(r){return!!(u4.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==g4&&t.push(n)}return t}var g4=Symbol();Uo.skip=g4;function Wd(r,e){for(let t of r){let i=e(t);if(i!==f4)return i}}var f4=Symbol();Wd.skip=f4;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function bc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Yx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,c4.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Gx=class extends Yx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function h4(r){return Jd(K.fromPortablePath(r))}function p4(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=h4(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var A4=new Map;function C0e(r){let e=A4.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=p4(r);return A4.set(r,{mtime:t.mtimeMs,instance:i}),i}var d4=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(d4||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return p4(r);case 1:return C0e(r);case 2:return h4(r);default:throw new Error("Unsupported caching strategy")}}function Qn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${l4.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function C4(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return C4(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Sn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Tt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>vn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:vn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:vn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,tn(e.selector))} \u27A4 ${Sn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Tt(r.parentDescriptor)} > ${Tt(r.descriptor)}`;case"PeerDependency":return`${Tt(r.parentDescriptor)} >> ${Tt(r.descriptor)}`;case"PeerDependencyMeta":return`${Tt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Sn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Sn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Sn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Sn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Sn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Sn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function Qc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?Qc(t,i):_e(e,t,i)}function rP(r){return{Check:Sn(r,"\u2713","green"),Cross:Sn(r,"\u2718","red"),Question:Sn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([m4.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,E4.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>bw,makeHash:()=>rn});var ww=J("crypto"),Kk=ve(Mk());function rn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function bw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(x8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function Qw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,nn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function GSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P8(t,i))return!1}return!0}function tn(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function Q8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${Q8(e)}#`),n+=Q8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Tt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function vn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Tt(r)}@${xw(r.reference)}`}function Pf(r){return Qn(r,[e=>Tt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Tt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Tt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Tt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Hr=uC;Hr.protocol="workspace:";var Qt={};ct(Qt,{SemVer:()=>N8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),N8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=T8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=T8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Hr.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Tt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Tt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Tt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Tt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of Qn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of Qn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?vn(zt(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Qn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function T8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Gve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t<e;)await n,yield{progress:t/e}}();return{[Symbol.asyncIterator](){return a},hasProgress:!0,hasTitle:!1,set:s,tick:o}}static progressViaTitle(){let e,t,i=new Promise(o=>{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Gve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=wr.makeVirtualPath(s,o,n),l=new Qo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Hr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Te.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Hr.protocol.length))}};var Nw={};ct(Nw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Tw,Lw;function dC(){return Tw=Tw!=null?Tw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("<environment>",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"<environment>")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("<environment>",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","<internal>")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,Qa(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e==="<environment>"&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!=="<environment>"){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} +`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Hr,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(Qn(t.dependencies,([,s])=>vn(s))),t.peerDependencies=new Map(Qn(t.peerDependencies,([,s])=>vn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(bn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>NB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>TB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>NC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>an,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(N=>(N[N.ZIP_ER_OK=0]="ZIP_ER_OK",N[N.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",N[N.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",N[N.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",N[N.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",N[N.ZIP_ER_READ=5]="ZIP_ER_READ",N[N.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",N[N.ZIP_ER_CRC=7]="ZIP_ER_CRC",N[N.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",N[N.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",N[N.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",N[N.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",N[N.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",N[N.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",N[N.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",N[N.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",N[N.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",N[N.ZIP_ER_EOF=17]="ZIP_ER_EOF",N[N.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",N[N.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",N[N.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",N[N.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",N[N.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",N[N.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",N[N.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",N[N.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",N[N.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",N[N.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",N[N.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",N[N.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",N[N.ZIP_ER_TELL=30]="ZIP_ER_TELL",N[N.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",N))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function u9(){return NR===null&&(NR=l9((0,c9.default)())),NR}async function an(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var Q9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>TR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(bn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function TR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(TS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} `),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} `),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var bs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` +`),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Qs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` `),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function I9(r,{prefix:e}){return{stdout:p9(t=>r.stdout.write(`${t} `),r.stdout.isTTY?e:null),stderr:p9(t=>r.stderr.write(`${t} -`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function bB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} +`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function QB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} `),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} -`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new bs(t.stdin),stdout:new bs(t.stdout),stderr:new bs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;S<B;++c,++S)switch(h){case"<":d(()=>e.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]} -`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new bs(i),stdout:new bs(n),stderr:new bs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,bB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function QB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=QB(s);for(let a=0;a<o.length-1;++a)n(o[a]);i(o[o.length-1])}break;case"*":{let s=e.args.join(" ");if(r.quoted)i(s);else for(let o of QB(s))n(o)}break;case"PPID":i(String(process.ppid));break;case"RANDOM":i(String(Math.floor(Math.random()*32768)));break;default:{let s=parseInt(r.name,10),o,a=Number.isFinite(s);if(a?s>=0&&s<e.args.length&&(o=e.args[s]):Object.prototype.hasOwnProperty.call(t.variables,r.name)?o=t.variables[r.name]:Object.prototype.hasOwnProperty.call(t.environment,r.name)&&(o=t.environment[r.name]),typeof o<"u"&&r.alternativeValue?o=(await Hc(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=QB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var IDe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=QB(p);for(let m=0;m<d.length-1;++m)l(d[m]);o(d[d.length-1])}}break;case"variable":await x9(h,e,t,o,l);break;case"arithmetic":o(String(await kC(h.arithmetic,e,t)));break}break}if(a(),g){let h=n.pop();if(typeof h>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=NR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,bB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function Q9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,bB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new bs(o.stdin),stdout:new bs(o.stdout),stderr:new bs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return b9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(Q9(r,e,bB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} +`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new Qs(t.stdin),stdout:new Qs(t.stdout),stderr:new Qs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;S<B;++c,++S)switch(h){case"<":d(()=>e.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]} +`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new Qs(i),stdout:new Qs(n),stderr:new Qs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,QB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function bB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=bB(s);for(let a=0;a<o.length-1;++a)n(o[a]);i(o[o.length-1])}break;case"*":{let s=e.args.join(" ");if(r.quoted)i(s);else for(let o of bB(s))n(o)}break;case"PPID":i(String(process.ppid));break;case"RANDOM":i(String(Math.floor(Math.random()*32768)));break;default:{let s=parseInt(r.name,10),o,a=Number.isFinite(s);if(a?s>=0&&s<e.args.length&&(o=e.args[s]):Object.prototype.hasOwnProperty.call(t.variables,r.name)?o=t.variables[r.name]:Object.prototype.hasOwnProperty.call(t.environment,r.name)&&(o=t.environment[r.name]),typeof o<"u"&&r.alternativeValue?o=(await Hc(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=bB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var IDe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=bB(p);for(let m=0;m<d.length-1;++m)l(d[m]);o(d[d.length-1])}}break;case"variable":await x9(h,e,t,o,l);break;case"arithmetic":o(String(await kC(h.arithmetic,e,t)));break}break}if(a(),g){let h=n.pop();if(typeof h>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,QB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function b9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,QB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new Qs(o.stdin),stdout:new Qs(o.stdout),stderr:new Qs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return Q9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(b9(r,e,QB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} `)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended -`)})),0}return await Q9(r,e,t)}async function QDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} -`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await QDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function P9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} +`)})),0}return await b9(r,e,t)}async function bDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} +`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await bDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function P9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} `,end:r=>`::endgroup:: `}:RB.default.TRAVIS?{start:r=>`travis_fold:start:${r} `,end:r=>`travis_fold:end:${r} `}:RB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${r} -`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,QRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,bRe=r=>r,FB=bRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=QRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} +`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,bRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,QRe=r=>r,FB=QRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=bRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} `),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})} `);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>uV&&(this.progressFrame=(this.progressFrame+1)%cV.length,this.progressTime=t);let i=cV[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${_e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Tr="3.8.4";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Nr="3.8.5";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function TC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Tr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Nt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Tr!==null?`yarn/${Tr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources +`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Nr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Nr!==null?`yarn/${Nr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources `);let p=await mV(r),d;p!==null?(c.write(`Using ${p.packageManager} for bootstrap. Reason: ${p.reason} `),d=p.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn -`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await TC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn +`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn `),c.write(` `),delete B.NODE_ENV;let W=await so("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` -`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let T=qo(null,"npm"),ce=zt(T,O),he=zt(T,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new Gt(u,{baseFs:s});return(await ot.find(Ne.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function TB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await TC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await TC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await NB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new Gt(p,{baseFs:a}),m=await ot.find(Ne.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await an()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await TB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function NB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await NB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await NB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await TC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oNe,extractArchiveTo:()=>ANe,makeArchiveFromDirectory:()=>sNe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),N0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sNe(r,{baseFs:e=new Zt,prefixPath:t=Ne.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Ne.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oNe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new N0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await an(),level:e.compressionLevel})}async function*aNe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ANe(r,e,{stripComponents:t=0,prefixPath:i=Ne.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aNe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lNe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return bc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:bc(t.value[0],t.value[1]),children:n}};return e(r)}function lNe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} +`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function NB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await an()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") +`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await an(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=Te.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lTe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Qc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:Qc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} `);return}let s=(0,mZ.asTree)(EZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DT=ve(J("fs"));var cNe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cNe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uNe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kT(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore +$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore *.flock *.tmp -`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Ne.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Nt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kT(t)!==kT(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let T=`${a}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let T=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,T,DT.default.constants.COPYFILE_FICLONE),await M.chmodPromise(T,420),await M.renamePromise(T,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(T=>T())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,T=O?i:n;if(T&&T(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await an(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new bo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kT(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uNe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} +`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await an(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new Qo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} `)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1<a,H=S&&0<=P&&P<l;if(!F&&!H){g[m]=void 0;continue}if(!F||H&&B.newPos<S.newPos?(y=fNe(S),s.pushComponent(y.components,void 0,!0)):(y=B,y.newPos++,s.pushComponent(y.components,!0,void 0)),P=s.extractCommon(y,t,e,m),y.newPos+1>=a&&P+1>=l)return o(gNe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1<s&&l+1<o&&this.equals(t[a+1],i[l+1]);)a++,l++,c++;return c&&e.components.push({count:c}),e.newPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};function gNe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(p,d){var m=i[l+d];return m.length>p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fNe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,QZ=/\S/,bZ=new iA;bZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!QZ.test(r)&&!QZ.test(e)};bZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&BZ.test(e[t])&&BZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var LT=new iA;LT.tokenize=function(r){var e=[],t=r.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var i=0;i<t.length;i++){var n=t[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=n:(this.options.ignoreWhitespace&&(n=n.trim()),e.push(n))}return e};function hNe(r,e,t){return LT.diff(r,e,t)}var pNe=new iA;pNe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var dNe=new iA;dNe.tokenize=function(r){return r.split(/([{}:;,]|\s+)/)};function O0(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O0=function(e){return typeof e}:O0=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O0(r)}function RT(r){return CNe(r)||mNe(r)||ENe(r)||INe()}function CNe(r){if(Array.isArray(r))return FT(r)}function mNe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function ENe(r,e){if(!!r){if(typeof r=="string")return FT(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return FT(r,e)}}function FT(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function INe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var yNe=Object.prototype.toString,_C=new iA;_C.useLongestToken=!0;_C.tokenize=LT.tokenize;_C.castInput=function(r){var e=this.options,t=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o>"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(TT(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function TT(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(yNe.call(r)==="[object Array]"){for(e.push(r),o=new Array(r.length),t.push(o),s=0;s<r.length;s+=1)o[s]=TT(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),O0(r)==="object"&&r!==null){e.push(r),o={},t.push(o);var a=[],l;for(l in r)r.hasOwnProperty(l)&&a.push(l);for(a.sort(),s=0;s<a.length;s+=1)l=a[s],o[l]=TT(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var NT=new iA;NT.tokenize=function(r){return r.slice()};NT.join=NT.removeEmpty=function(r){return r};function SZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=hNe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` -`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RT(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S<a.length-2){var _;(_=h).push.apply(_,RT(l(F)))}else{var X,W=Math.min(F.length,o.context);(X=h).push.apply(X,RT(l(F.slice(0,W))));var Z={oldStart:u,oldLines:p-u+W,newStart:g,newLines:d-g+W,lines:h};if(S>=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y<a.length;y++)m(y);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var X0=ve(R$()),Z0=ve(Jg()),O$=ve(zr()),zT=J("util"),WT=ve(J("v8")),VT=ve(J("zlib"));var VMe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(r,e,t,i)=>`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,nn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(bw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(bw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var bh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Ne.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=zt(this.locator,`${Hr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${Hr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Hr.protocol&&v.normalize(n)===this.relativeCwd||i===Hr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Hr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var T$=6,XMe=1,ZMe=/ *, */g,N$=/\/$/,_Me=32,$Me=(0,zT.promisify)(VT.default.gzip),e1e=(0,zT.promisify)(VT.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JT={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>rn(`${XMe}`,r),je=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new je(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. +`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1<a,H=S&&0<=P&&P<l;if(!F&&!H){g[m]=void 0;continue}if(!F||H&&B.newPos<S.newPos?(y=fTe(S),s.pushComponent(y.components,void 0,!0)):(y=B,y.newPos++,s.pushComponent(y.components,!0,void 0)),P=s.extractCommon(y,t,e,m),y.newPos+1>=a&&P+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1<s&&l+1<o&&this.equals(t[a+1],i[l+1]);)a++,l++,c++;return c&&e.components.push({count:c}),e.newPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};function gTe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(p,d){var m=i[l+d];return m.length>p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,bZ=/\S/,QZ=new iA;QZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!bZ.test(r)&&!bZ.test(e)};QZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&BZ.test(e[t])&&BZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var LN=new iA;LN.tokenize=function(r){var e=[],t=r.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var i=0;i<t.length;i++){var n=t[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=n:(this.options.ignoreWhitespace&&(n=n.trim()),e.push(n))}return e};function hTe(r,e,t){return LN.diff(r,e,t)}var pTe=new iA;pTe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var dTe=new iA;dTe.tokenize=function(r){return r.split(/([{}:;,]|\s+)/)};function O0(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O0=function(e){return typeof e}:O0=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O0(r)}function RN(r){return CTe(r)||mTe(r)||ETe(r)||ITe()}function CTe(r){if(Array.isArray(r))return FN(r)}function mTe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function ETe(r,e){if(!!r){if(typeof r=="string")return FN(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return FN(r,e)}}function FN(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function ITe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var yTe=Object.prototype.toString,_C=new iA;_C.useLongestToken=!0;_C.tokenize=LN.tokenize;_C.castInput=function(r){var e=this.options,t=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o>"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(yTe.call(r)==="[object Array]"){for(e.push(r),o=new Array(r.length),t.push(o),s=0;s<r.length;s+=1)o[s]=NN(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),O0(r)==="object"&&r!==null){e.push(r),o={},t.push(o);var a=[],l;for(l in r)r.hasOwnProperty(l)&&a.push(l);for(a.sort(),s=0;s<a.length;s+=1)l=a[s],o[l]=NN(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var TN=new iA;TN.tokenize=function(r){return r.slice()};TN.join=TN.removeEmpty=function(r){return r};function SZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` +`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S<a.length-2){var _;(_=h).push.apply(_,RN(l(F)))}else{var X,W=Math.min(F.length,o.context);(X=h).push.apply(X,RN(l(F.slice(0,W))));var Z={oldStart:u,oldLines:p-u+W,newStart:g,newLines:d-g+W,lines:h};if(S>=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y<a.length;y++)m(y);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var X0=ve(R$()),Z0=ve(Jg()),O$=ve(zr()),zN=J("util"),WN=ve(J("v8")),VN=ve(J("zlib"));var VMe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(r,e,t,i)=>`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,nn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Qw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Qw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var Qh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Te.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=zt(this.locator,`${Hr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${Hr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Hr.protocol&&v.normalize(n)===this.relativeCwd||i===Hr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Hr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} +`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var N$=6,XMe=1,ZMe=/ *, */g,T$=/\/$/,_Me=32,$Me=(0,zN.promisify)(VN.default.gzip),e1e=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>rn(`${XMe}`,r),Ge=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ge(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. ${[g,h,p].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<T$;for(let l of Object.keys(s)){if(l==="__metadata")continue;let c=s[l];if(typeof c.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new bh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Nt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(N$,"")!==e.replace(N$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let T=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,T))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,T)})`);g.set(T.locatorHash,T);let ce=this.configuration.normalizePackage(T);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let T=h.get(O.locatorHash);if(typeof T<"u")return T;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,T)=>{let ce=await te(T);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let T=this.resolutionAliases.get(O.descriptorHash);if(typeof T<"u")return ne(O,this.storedDescriptors.get(T));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let T=p.get(O.descriptorHash);if(typeof T<"u")return T;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let T=O.anchoredDescriptor;y.push(te(T))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(bn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let T=O.makeInstaller(c),ce=T.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&T.attachCustomData(he),[O,T]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(T,a)]}))),m=[];for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(typeof T>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(T.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(T);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(T,c)&&(await ge.installPackage(T,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(T.locatorHash,Ae),!Yo(T)&&Re.length>0&&p.set(T.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(T,c));if(!Re)throw new rt(12,`${Ct(this.configuration,T)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(T,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(T.locatorHash,Re),h.set(T.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(T.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let T=this.storedPackages.get(O);if(!T)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(T)!==null,he=async(Pe,De)=>{let Re=h.get(T.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,T)}) should have been registered`);let se=[];for(let Ae of T.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,T)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(T,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(T,c)&&await he(Pe,De);else{let Pe=g.get(T.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,T]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,T)}let B=new Map;for(let O of u.values()){let T=await O.finalizeInstall();for(let ce of(te=T==null?void 0:T.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(T==null?void 0:T.customData)<"u"&&B.set(O.getCustomDataKey(),T.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let T=q.get(O.locatorHash);if(typeof T<"u")return T;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"<recursive>");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return T=he.digest("hex"),q.set(O.locatorHash,T),T},X=(O,T)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of T)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let T=new Set([O.locatorHash]);for(let ce of T){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;T.add(se.anchoredLocator.locatorHash)}T.add(De)}}return!0};for(;P.size>0;){let O=P.size,T=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) +`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<N$;for(let l of Object.keys(s)){if(l==="__metadata")continue;let c=s[l];if(typeof c.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new Qh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Tt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(T$,"")!==e.replace(T$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let N=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,N)})`);g.set(N.locatorHash,N);let ce=this.configuration.normalizePackage(N);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let N=h.get(O.locatorHash);if(typeof N<"u")return N;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,N)=>{let ce=await te(N);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let N=this.resolutionAliases.get(O.descriptorHash);if(typeof N<"u")return ne(O,this.storedDescriptors.get(N));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let N=p.get(O.descriptorHash);if(typeof N<"u")return N;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let N=O.anchoredDescriptor;y.push(te(N))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(Qn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let N=O.makeInstaller(c),ce=N.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&N.attachCustomData(he),[O,N]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(N,a)]}))),m=[];for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(typeof N>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(N.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(N);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(N,c)&&(await ge.installPackage(N,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(N.locatorHash,Ae),!Yo(N)&&Re.length>0&&p.set(N.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(N,c));if(!Re)throw new rt(12,`${Ct(this.configuration,N)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(N,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(N.locatorHash,Re),h.set(N.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(N.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(N)!==null,he=async(Pe,De)=>{let Re=h.get(N.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,N)}) should have been registered`);let se=[];for(let Ae of N.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,N)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(N,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(N,c)&&await he(Pe,De);else{let Pe=g.get(N.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,N]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,N)}let B=new Map;for(let O of u.values()){let N=await O.finalizeInstall();for(let ce of(te=N==null?void 0:N.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(N==null?void 0:N.customData)<"u"&&B.set(O.getCustomDataKey(),N.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let N=q.get(O.locatorHash);if(typeof N<"u")return N;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"<recursive>");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return N=he.digest("hex"),q.set(O.locatorHash,N),N},X=(O,N)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of N)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let N=new Set([O.locatorHash]);for(let ce of N){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;N.add(se.anchoredLocator.locatorHash)}N.add(De)}}return!0};for(;P.size>0;){let O=P.size,N=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) `;switch(Ae){case 0:ge+=`# Script name: ${ye} `;break;case 1:ge+=`# Script code: ${ye} -`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let j=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(j,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await TB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,j,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});T.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(T),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(bc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Qw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Qw(u,{cwd:this.cwd})));for(let u=0;u<s.length;++u)o[u]!==c[u]&&e.report.reportError(64,`The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile(),await this.configuration.triggerHook(c=>c.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:T$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>vn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(Qc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>bw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>bw(u,{cwd:this.cwd})));for(let u=0;u<s.length;++u)o[u]!==c[u]&&e.report.reportError(64,`The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile(),await this.configuration.triggerHook(c=>c.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>vn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} -`+ba(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JT))e.push(...o);let t=(0,X0.default)(this,e),i=WT.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WT.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JT.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JT.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} -`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],T=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let j=te.dependenciesMeta.get(Nt(Re));if(typeof j<"u"){let fe=j.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;T.push(()=>{ge=Gk(Re,Z.locatorHash),oe=jk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var j;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&Qc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(j=A.get(fe.identHash))!=null?j:oe.locatorHash)}oe.dependencies=new Map(bn(oe.dependencies,([fe,re])=>Nt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let j=c.get(ye.locatorHash);typeof j=="number"&&j>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let j=te.dependencies.get(Re.identHash);if(typeof j>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(j.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Qc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Nt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...T,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=rn(...[...Ae.dependencies.values()].map(j=>{let fe=j.range!=="missing:"?t.get(j.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,j)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let j of ie){let fe=i.get(j);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,T]of ne){let ce=tn(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${rn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:T});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of T){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Hr.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Hr.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:T.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Nt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements <hash>",Ke.CODE)} for details, where ${_e(r.configuration,"<hash>",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of bn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){Qc(this.values,e).add(t)}reportEnumerator(e,t){Qc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XT=J("child_process"),M$=ve(cc());var ZT=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XT.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XT.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new Gn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!bt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZT.realpathSync)(process.cwd()),X=(0,ZT.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Nm={};ct(Nm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wQ,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends be{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VN()),_ie=()=>new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",pn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await je.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VN());var CO={};ct(CO,{dedupeUtils:()=>FQ,default:()=>y4e,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>PQ,Target:()=>Hm,WorkspaceModifier:()=>Tse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>GL,extractRangeModifier:()=>Nse,fetchDescriptorFrom:()=>jL,findProjectDescriptors:()=>Kse,getModifier:()=>Gm,getSuggestedDescriptors:()=>jm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Tse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Tse||{}),PQ=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(PQ||{});function Gm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Nse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function GL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await jL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function jm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await jL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function jL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Nse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=Gm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await GL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await jm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=be.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} -`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=be.Usage({description:"get the path to a binary script",details:` +`+Qa(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} +`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&bc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(Qn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(bc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=rn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=tn(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${rn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of N){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Hr.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Hr.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:N.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Tt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements <hash>",Ke.CODE)} for details, where ${_e(r.configuration,"<hash>",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of Qn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){bc(this.values,e).add(t)}reportEnumerator(e,t){bc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),M$=ve(cc());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Qt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZN.realpathSync)(process.cwd()),X=(0,ZN.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Tm={};ct(Tm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wb,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends Qe{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VT()),_ie=()=>new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",pn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ge.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VT());var CO={};ct(CO,{dedupeUtils:()=>Fb,default:()=>yWe,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>Pb,Target:()=>Hm,WorkspaceModifier:()=>Nse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Tse,fetchDescriptorFrom:()=>GL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Nse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Nse||{}),Pb=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(Pb||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Tse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await GL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await GL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function GL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Tse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` +`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=Qe.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} +`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=Qe.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends xe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=be.Usage({description:"remove the shared cache files",details:` + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends xe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=Qe.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cQ()),YL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cb()),YL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} `),c.exitCode();YL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,YL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} -`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=be.Usage({description:"read a configuration settings",details:` +`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=Qe.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var $oe=ve(XL()),eae=ve(cQ()),tae=ve(_oe()),ZL=J("util"),hu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=be.Usage({description:"change a configuration settings",details:` + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var $oe=ve(XL()),eae=ve(cb()),tae=ve(_oe()),ZL=J("util"),hu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=Qe.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends xe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=be.Usage({description:"unset a configuration setting",details:` + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends xe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=Qe.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"<default>":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=be.Usage({description:"display the current configuration",details:` + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"<default>":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=Qe.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});As();var FQ={};ct(FQ,{Strategy:()=>qm,acceptedStrategies:()=>FWe,dedupe:()=>$L});var fae=ve(Qn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),FWe=new Set(Object.values(qm)),TWe={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=TWe[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=be.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=Gn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Tr||"<unknown>"} -`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await je.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=be.Usage({description:"execute a shell script",details:` + `,examples:[["Print the active configuration settings","$0 config"]]});As();var Fb={};ct(Fb,{Strategy:()=>qm,acceptedStrategies:()=>F4e,dedupe:()=>$L});var fae=ve(bn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),F4e=new Set(Object.values(qm)),N4e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=N4e[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=Qe.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} +`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Nr||"<unknown>"} +`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=Qe.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await LWe(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=be.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await L4e(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=Qe.Usage({description:"explain a set of peer requirements",details:` A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. @@ -483,9 +483,9 @@ Try running the command again with the package name prefixed: ${$.pretty(t,"yarn When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function LWe(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>bt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"<missing>")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?bt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Tr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(bt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(bt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(bt.validRange(this.version))n=`https://repo.yarnpkg.com/${await OWe(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=be.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function OWe(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>bt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: + `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function L4e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>Qt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"<missing>")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?Qt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Nr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(Qt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Qt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Qt.validRange(this.version))n=`https://repo.yarnpkg.com/${await O4e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=Qe.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function O4e(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>Qt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: ${e}`)});let n=(p=r.projectCwd)!=null?p:r.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(r.startingCwd,o),l=v.relative(n,o);i.reportInfo(0,`Saving the new release in ${$.pretty(r,a,"magenta")}`),await M.removePromise(v.dirname(o)),await M.mkdirPromise(v.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ee.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&me.isTaggedYarnVersion(e)?e:await Wm(r,"stable")}`;let u={};c.exportTo(u);let g=v.join(n,ot.fileName),h=`${JSON.stringify(u,null,c.indent)} -`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[NI(r)]}var MWe=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function KWe(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Tr)?Tr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(MWe),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await KWe(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var M4e=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function K4e(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Nr)?Nr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(M4e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await K4e(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} @@ -493,11 +493,11 @@ ${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berr `):this.context.stdout.write(`${s} ${l} -`)}else{let i={children:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=be.Usage({description:"explain an error code",details:` +`)}else{let i={children:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=Qe.Usage({description:"explain an error code",details:` When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(Qn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let T=x.stringifyIdent(O);if(!ne.test(T))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,T]of Object.entries(ne))typeof T>"u"||(te[O]={label:O,value:T})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,T;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(T=i.storedPackages.get(ue))!=null?T:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=be.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var TQ=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!TQ.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!TQ.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await jWe(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("<compat>",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await je.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],be.Default],Bu.usage=be.Usage({description:"install the project dependencies",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(bn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let N=x.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,N;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(N=i.storedPackages.get(ue))!=null?N:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=Qe.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Nb=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!Nb.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await G4e(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("<compat>",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ge.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],Qe.Default],Bu.usage=Qe.Usage({description:"install the project dependencies",details:` This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). @@ -523,18 +523,18 @@ ${l} - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var UWe="|||||||",HWe=">>>>>>>",GWe="=======",mae="<<<<<<<";async function jWe(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=YWe(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,ba(l),{automaticNewlines:!0}),!0}function YWe(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===GWe){i=!1;break}else if(i||s.startsWith(UWe)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(HWe))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` + `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var U4e="|||||||",H4e=">>>>>>>",j4e="=======",mae="<<<<<<<";async function G4e(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=Y4e(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,Qa(l),{automaticNewlines:!0}),!0}function Y4e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===j4e){i=!1;break}else if(i||s.startsWith(U4e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(H4e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` `),e[1].join(` -`)]}var Qu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await je.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Qu.paths=[["link"]],Qu.usage=be.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var bu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};bu.paths=[["node"]],bu.usage=be.Usage({description:"run node with the hook already setup",details:` +`)]}var bu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};bu.paths=[["link"]],bu.usage=Qe.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Qu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Qu.paths=[["node"]],Qu.usage=Qe.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Qae=J("os");var Eae=J("os");var qWe="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(qWe,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=be.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var JWe=/^[0-9]+$/;function Iae(r){return JWe.test(r)?`pull/${r}/head`:r}var WWe=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],zWe=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],VWe=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(VWe(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await XWe(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=be.Usage({description:"build Yarn from master",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var bae=J("os");var Eae=J("os");var q4e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(q4e,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=Qe.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var J4e=/^[0-9]+$/;function Iae(r){return J4e.test(r)?`pull/${r}/head`:r}var W4e=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],z4e=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],V4e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(V4e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await X4e(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=Qe.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function zm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await pr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${$.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(zWe(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(WWe(r,i),{configuration:e,context:r.context,target:i}))}async function XWe(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await je.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Tr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Tr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=be.Usage({category:"Plugin-related commands",description:"download a plugin",details:` +`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(z4e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(W4e(r,i),{configuration:e,context:r.context,target:i}))}async function X4e(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Nr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Nr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=Qe.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: @@ -544,23 +544,23 @@ ${l} - Local plugins can be referenced by their path on the disk. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var ZWe=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Qae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await je.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=be.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var Z4e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,bae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=Qe.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(ZWe({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=be.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(Z4e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=Qe.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=be.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=Qe.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=be.Usage({description:"rebuild the project's native packages",details:` + `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=Qe.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(Qn());As();var Tu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Tu.paths=[["remove"]],Tu.usage=be.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(bn());As();var Nu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=Qe.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -570,7 +570,7 @@ ${l} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var bae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await je.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,bae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Nu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await je.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Nu.paths=[["run"]],Nu.usage=be.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Qae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,Qae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=Qe.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -580,48 +580,48 @@ ${l} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=be.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(Qn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await je.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=be.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=Qe.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(bn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=Qe.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(Qn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=Gm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await jm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(bn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range ${_}`):B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) ${_}`)}else H.length>1&&!o&&B.reportError(27,`${x.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:P}]of g){let F,H=P.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${x.prettyWorkspace(t,B)} \u276F ${S}?`,choices:P.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=be.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$We(i,s,{configuration:t,peers:this.peers}):_We(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=be.Usage({description:"display the reason why a package is needed",details:` +`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=Qe.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$4e(i,s,{configuration:t,peers:this.peers}):_4e(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=Qe.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $We(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>E4e,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>NQ,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>C4e,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>LQ,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var jae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function Gae(r){try{return new jae.URL(r)}catch{return}}function p4e(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return Gae(r)||Gae(p4e(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var d4e=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],NQ=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(NQ||{});function ep(r){return r?d4e.some(e=>!!r.match(e)):!1}function Vm(r){r=LQ(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(NQ).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(NQ))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function LQ(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,LQ(r.reference))}function fO(r,{configuration:e}){let t=LQ(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=bt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function C4e({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var OQ=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var MQ=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var m4e={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[OQ],resolvers:[MQ]};var E4e=m4e;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=be.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>EWe,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>Tb,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>CWe,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>Lb,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function pWe(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(pWe(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var dWe=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Tb=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(Tb||{});function ep(r){return r?dWe.some(e=>!!r.match(e)):!1}function Vm(r){r=Lb(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Tb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(Tb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function Lb(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,Lb(r.reference))}function fO(r,{configuration:e}){let t=Lb(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=Qt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function CWe({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var Ob=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var Mb=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var mWe={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[Ob],resolvers:[Mb]};var EWe=mWe;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=Qe.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${l.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=be.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=Qe.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var I4e={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,Qu,Ou,bu,ku,Pu,Du,Su,Ru,Fu,Tu,_h,Nu,ml,Mu,Uu]},y4e=I4e;var wO={};ct(wO,{default:()=>B4e});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("m1C+PAVy82TZOdqKhkjfscdNwVRkofPqJdKVqBRs/f0HeyOaY/euQpHsGl7zjxkr1ekEVL0VN8bAASvrSk6lGK5bWNUW2gmbVg4kLJkFlQunKWNeuIXLTU8QdnGNGz6QdOLgn+qRbL1Am15hp9EwXaM9MUVQyvGWJKkY/qfYkjCFLNiw8QsbYw714mb9cVQPTdOIpxbG3qQJ/DXVQWB6DaDjpnsFECKYFlmiaXmJjVnHFHFM0lfv0xquDTVEKx7gsQ6XwCBPWuk/V0BaLl9n/5+fr41fYcUJkZhcg9ecVplAXsswQlhrR4ctPLviclz585faf36+Hsolg/FDoKa20lfc7nn1xlkhcaTkAI+Rl5nFoufb5Qm9iT6nWmenS+ga6GvUyRVCzWT4KTddWJi9m2rH1SUhHpAEiEnVPu8avp/KplVcRJBOgtOQ0ekqJz2oeZBvhkDlJilbjSHcDNBVVfKT8i2ZOVusqpS98HMbkB/gZPV3VIe+vq0vjQY72EL6BbOK/f/7S6vUlmEYpMGexag3yHzc9gJxtNly1X33vuspUq9Uks5IlhthkO69777/S1Uldct2b9tugiXgJNok5Xw5i7+kko/dMNiz2D3E0RIEQbL/v2r+++1dcz2SvExA8uPetKyz8QKh6xCh1TskTeXuhSo1xaPfAcThyCFkUQ535FjZlUYzBBzlFEsvlyH/SBVN9X9XcwYAKd8LiC+cA/6vORvwuoMD/nDDD63/XFYvddJ7e1Wr1z9Mz49zTgFpATt0ddyI3rqknp8C+0ZbhxwyoD+N2jFQA2TArodjFzfj4z9Sy+E9Ccyo22nWzgTZ77O9n+lbkr6B9U16SqRoM2+QAUUGDhLg/L/puVPrt0QQ+kz17aoS7/kyIGcUOkjTnpGRIwbruf892C5IGEjiiYWJbT8NOOCO39/MUAny7l6QuN6jaDHGvJ6mYEQLpWvtplCGlsVEfi1HVm32WttlEiIIwZT315gqrelOcxOQIOJ+WYq8CjJVtDdpR9Mvx41KGeEYa9Z6dG97EhEBEYg7OMWWCZSZKmk7v7xUK3RqmKUfcvr8sdu/yJSTHJLgWg9kDKaX9SdiVAw6ws/9GPNVm5jOn06VsTwQT8QvvhR6GdrbPO/5/Es2pVTAQgiRAuH7qnhndyx3Duf1qyxiESIIhSig0/t4QlbaSgSP72Zhcohog72E/o392U+qCuK4TgIzfMpq6Ko0nwrsZ3MP6+8L1K97L/f9jr++qmceRP6bN4jMkT7E7Wdi6Hrw5xjSDl6/7xeeV6Ov/hjEAww3sxdFb7D8JtstxCl6J1BPdO1Z8hOC8Ljc1WT6scrPny/mytROraCA7tDM65YEiBkAGzuSEyxS5OWnNlKUu59CeH27yrxnfWgrh0MsLVtgsEeAfxv7JrzzCzhulLY5A1BNulikOmMI0BQsiaind0+z8NHRov60a38N6SqoMpjZeUAKGJHa8xXcuGy+iGVqPsn4n4lxZLHp8NWJ9tJR/dcmubfZw8oRLeP+YwJ5HN77lxdB5eQyg24dcMDO448eToKbOZ2AE6S7m2ZEKEw9cc8vpm29DPbBzEmPCjhene2q0GOI+G2TJk3KRmaza58vl2Qa2w5QSH7SPH4tp73jbY4VzNXfFCSJTy5eW9myvQvMtVOPv2piQR8sypLT5uBgMIuNX2nfO9cFIE/cbNEFtBb6SNXvescVYG8paLi41q25jer7DREwzBDiin+gU3cUPcUykEAGR+CbPExUcsCh1K3vj5FsIZwhbLDV0J59/iQebYA2Xg9ngCQFn6YmyLzarvvMV40FkpvX3ZsoyAKSLbbezn62YdHdtL70LPs+ENHvsisvBr2HzmTOgPXwxDzAuesLHEekwRH4gvikAM4H9FoisKNMh3Vqr7V3IabpTrcH7NqlKgBTARmz+axANF3AwclQMpMHzLyYwQJzW4A66l7HFr7qTBq22ylB9Too6j9kyErLFjkNav8SniLzx1QsZmBZCVGfLuSMKLbOv5ak5ghUG7nSp67Wsl+ITx2BOanBDFDJF6XCTEVKsOCLSwv4/h2Hz4TJCEa9ECIuHFAyiXJIKWDnKGMzEM5HOcBB1KQ2ot+adDK/sY1AmfQ6tjpQkIB28WzGLt/x3MYt6TyOXYcKqAbV5g1IVsaM5PJUJkgrdWQiIFBsse+lYTpfZyegzNx5dAgI3YgBmsxDf4NVJHwrJBxx5iHnT/9y+MzugCRZPkblM87h9vjQ5n//ttO9ckUb/XCMziwGyKvMc5neMrNgfrF/zOfgHBSpEPou1POFo9aGx70OvcNU4ZRcmOt1YEGGp24L+2WTH5WgNppi5YdjinF18p1fROEdYpdKHSC2nGbBYguTnN/KlTmNq+NGUijFjD1L4uO8Tf4SNpZYiXLatoXkli1zPsu22QohMWMFSSkERIj1PG/Wb/DSYeDMT6ns9eetiM33I3aTlfTKzCmMmxNK/o7kFwqUyVRMuBA43O+F/JibH2uL9qAH3UmrqLpXNPP6S1IDMNQeRz1oBEKOnmmHyXPMMUO8r9HtrtJlYbba6hqI7Bo+3Lg0uMTdTwIZkL2XFlPrm4L70H4fBAU2oqCgo3q76cXT5Y35KnddqFl+OdIxS5+2oXQc0zoYgrDOGrP9Ocxv7bGVp3gKF1m1yGlGAcC3O7TvynEzIotd74LYhMjFviQwmq/brez7cDL1BXGg3klslvGMpHQfnyvEEGnTcqZ2aecExkWe4nZtr0Mgj4vLowe0uRF36B+4GKJoSw/tt5gddLhHc+ucO7ynBQizZdGDPe8lbrd2nUXP9EEhGawuniCsXGpplXawyB0q0ZWrGSC8SS+EUvRSQzRIVdEIrjkqFoSz66MkvnQggD6iGomN2GDfZl7DJGg7c7yk8oBd0dWudbKhIwm6KvzKmQNUXlv5kk5DBkq5rTJg2odmeY8BsNetlRzxp9U0gZAe/tZA7xFAgZFRgwBFT5ddFlTTtS4DXZS7OoFi5PBFZnNE2iEKTD5nJHyd4BD+KpZL/JzCbMFI3KyRZg/fyvl1M4A+AnRUONg5Lq+Srmc44PdTNz1dMNoXVBKJrNwYOwh1CSn9DiqJhJKHb2VNz6nl6975W/oP35CT3tcd+P3DkFndo01QMHnF3cuAnujaqsZ7GRqesfZj2L9yCYTwt/tLwCD6QS2vCi+tYYXYJOyLMKjr20blISwcy+yNgVkQQl6pXA9EMs65U4bqJwyXcxDeRBLNdKlFfRjw9N+gcWzrF6OumkIcy3v2Xes2CP19Y9MiSHKgb/A+A3ieue+uSq/3+mUQoZEmxDQYiLExaJ3RGLTDmu8Z6Lbaw783aynMlJzW3DaGbc3NtHtOIlW/H1qxeYhhT8voEQZv4KaXnbq6/2DasKpSRJNQEd5MJzOkK7qKm8PFjajUYAlQHFkh788Jo+ehLS75Lw6udwK7B4aPXW2guzt1/4L9POEmnM0nnUSUmxfC3ZMq7p0Sc8DdNLZq6iv18Q0MUpXW91D1UVlXWEiuZXXe+HL2XdlXtXfju5OH79XruecOxLkdbDQ+bl029Ll54T/79OKAf4+iXiNCxa52R3QVVJ4zPPwXbKLOFdMedoYPgM8fZuzCsoQfrLDGPdWlBRveM0jZxl/B+Hm1ngQm7mCIx1bVVScGYr8GKsjPTYZ3eU3sJafJzpJQxn+eMmy2AjvZOF/Hr0LdAI39xeRH7CVAtGLfvhIPFUzu8W77yyb+0fnwFnoZMEDAqazVn44ghy6eEcucuhU7244M8daVQj3tCyPC1tVgr5JGLepbCgcae/IDCQfUKHd7kU3rP+hoTuM7hWE6jRsnp+2jHy19VPOBxdisgdgGBr++57mPCuLSmGqjqU+2E1sWLn3qZOp/yFpl21DSgXI5OGRQ3DxEwUdCD15QEQcIDnTMx1s4UDW7p024AMApI/pbCklZeHQMrd2mf4UQ6xoBABvhqrTutAw80DIfuf1AwRwU2ff2yPY19+GNz4/hAewD3fKjzQ7Uyi5uIy4AgLtzSF04fef06O2aO6e96REA0N4d7KHZcerlA/MDNXMwg/K2e/CRAz+YyvGuAxwnUTcf2FkJVgConacbu2tHB6N3sA3mY00PVM5B8zy0kO9rao/ADdE9GsPBx/E2DvLd7c5swgUAZoDZ5cJzjcNo7Tz6uwnJukYA4DxZCcfBUYV0NxpN/C5twPe94NB7LFmibd7ZrWQAAJwUgfz/58q93RrHU+nGoqOxPzsjBKpjs6NkBJTqrocOBP0ld1/N+Q6GvhdEhGf2JeLynd3qLQDARwXKsomSjUVSZyYS/nOafIVias9mn+5DjHe2ZQIAExRBXnich2seROTPWi6onOCKejE7QaVZWwCgBKwYDrBRe6nGDiqlSwCgNUpz0rtnEMSeT/Wah7aH9UR0XO8StgBAOLn1TS0Mo2dEe73E1EKPS40AQNlHicYm4A9o/KMhuHkXNsPL/a2UVwEQbvZbmvG7+MtszUxr+TOgP5PprdvTen2YGZWyBQCSY5NPDAOYuL1VVhYw6UYAwLdVkrFJR8csfu52B4yOX1p5V6zclnkCxVvvkgwAgHtpQ40XTZ5+dooruCozrttN9HnC/hazIz1M9dLhzshLuh8I9Gx+PzE1vd6ltwAAA0s/jfNCj3kwivzgxAUaa+1Z+tsOydpMAOAMdiZcgM9/bv/qPG5ebDnZdhq7NZtwAYAaYHqY8KDoTxzWUvva33aINZcAwHor+iMl1/Sf+cWF8cOOLydxueVNuABAmf50wloSPvsThSi1j/1thVizCQCMQUvYdMPvP3tVqQnp158md60EKwCizvF6i+oroel+bnYj7DNm/iXdS+N+paJ7q3EBgIzZJJVquA+QcB9ApUYAYNg4zihUXM6h1VVy75nbcpsxffNcEvC7ywimR+l5YvV+BaKpF4gR+qbI70UGexJKbAeJJEU0MCAr6XBCeNKGXTXCks5CS9agR+J1G1t6FTpuSwRXA1J+/bxsShzRp6La5a7TO/nU9UJ4n7TpIgWfxbspuOgK1DLa9i3teHXsfaOpxfyXeMjbaPHxNB7A+dGzeRfFPvrX6DxKmi02tx8ilvH+6LtkJpAigY30a8Tbjom5RVmCfpTZ6eSFBLvvOG8wXIDl4dHr8m1a142Tc1o5JGF8vvBCET16Va88RdJ5viCPX7i0dDrNsaAAGaBWHPCGyq/wG9RujEMDBQ8lqmvzx8bIHwjDFCN1nnHEhdO8O5krpCdm3CdzcDom3rPayGpcHSNT4Rixd9vivdP8vZl2DUDOGpKmLT17xVhSQOuWARItpehqVoTuBmEZvB3aiwEKwR33v9q2X7hzLBggIdqzA1c8JgP5+xiQA7GOAqWKdO6BA/68hkRsmhQeoNDj1B1rzXsch/mIJbspge/gY8gLi1f16uoyELGDXH7JnDndHMKSnXMPDRSk/ZBScnbTTB/Ef5KoAQliiGUQnfsfoPWhxii1WGBI7cqGCvvh7wljgE/7yQlkaIXfmlgWLoUVOGTd9mXeaFpOTWRKh8j+psTByU/Gi5TE3aMhngkRiFouCB0/je1eHq0fic4jPy68yH2fhJD9BqdK8vF9IsK7g94nr9VBEwcAXrODsSFWA0wF7VqTk4Aggn6k+bta5PzHMJ2Uxl3OspKTQtQoKQY+toTphIyRQ5iT34wYPAj866D64Am+jle0ESv5TjjrEZEbeuI6qSI7zqQ/S8Dy+vSctf8jkov6r0vWZm8XbdgVb6Bzxhd/c/NzfxflYL+U/x+cwFhRIY+rH0wuGBPqe0zsh4GT42i8/HA9CTiwm32QrorNNmldtDszLhXtDnzxunMr6BJFk1j+YtF68seYZB/3XosuGf3aJYjwU7Wzt9gJQEgoxyfRb3nx5F5zDgKQo8kkqcoRkzqi2RG46b9rm4TJ8/kNTA7su1lgTWfAm0ZzkFCybGAFeDxiMZGYTgLroPhmywQbMqEUBgKJS8BwRDcsXf5GJsBbRdUTCSiXAaNCNdivJvhWj9WCDKZidpFK3fYRXivzV63bP8Jr8X8pWwmXOflwGwFzM20o+e10mljk1M6T+K41vlVv4lCOYa0/ykC5vG0vgZaE1iJgYgFxPcgI+m0jbQJFmfNSg2/yTZZOVuycXUze6XkrP4P3EBAH2GndvAIJH6FOFjyAomXX8XdaACL3hkQQrDLl/RggQSoLSzJJXOhSTxyxaT5l5wJxWZIa8MM0XAPdtEX1to7BTTulx1IyympHm3r/noRE/4k+Lm1n74AyMx+2Gz3jWCLASptQuDUalh2AHKzorRtCdVmOi3FeE/YhE8r37GFh0rmfXhuKPTEzOccTszy8Ens8kA1nZrTMJodU8clgBfpYfH+fawrK1XlNJ15dMspl92NPe7dwRLFaxO1hwVYBnp5DX4OL0agYbxLOVXY8kXsr07hLIldttvxtr5ONmmyqwFhX4svRDktSz0EYniVukwQ4OVIW4BDegfl87qqmlnDB12LFDpsZeVr102YOEjOXdn/k87Y3wFjh78dSfkbhd026ZgETV5z9sdNzZpXjJVeeYurBsgRttPX8bfMcMKrZ+yUB0FP5EtKo/Ry6qTar0SKTdRa7ToSqNNFjBI5mx8D78T4lszN7dlFXmh6gWIE4cGTGZ1YyAwA+PDQ0ZeH1IUvt8WHXaAIA0cmp8jmcYZXAgrdLOzV93uBJdzVNaRPzIBuNhjpvV75zZ273RaPN9OoUax0ubjMzAEDx0FAklY6PUrubyfewGzQBAOfr7KjyLRx0pUAvVyeVfWPc3aqnEskM6tZoJlpjftPtzN7dSkwF4LGaxAYRbjQ5FH9rZzuzN3fwOE2vrFjLuDMbmQGAWY4MtVxe2AO1dpUPuUETALjSMVV5iOOpBkiIq7cst7L1V2R+MRLwD95DvnDvDf/VDVSIbmchCt5cyDaaAQALhWpoJtR17szZuY6kt0sI7aYzXwfx/VG9M+4ey78FdkerP+qStGBM6gIZK+ySm6GaHeiZkBrL7khQ+T1ZhfRLsAOqzcyu8kdXR5VkFdOalvu0f5B+v7CLyTT3ZjKy1bQvuNk1YqFqj5y93G7ZQoZVwlEFT34xIfi8JY/YKX7JkEenwyIrF3Dv095HOjQxLXr96JLoi0w7lqlNkBmX81vtJ5iDTjrl8DLFY0FimPAaCSO3dIVBoRL3XIBa9iCDvYBSBhrp7bGyhBiE0qP7U2O6f/MTDWiXuGtzPTmXRs1dBzcrecwEZCkiDGt2RjLK44Wy36YhkWlUQ5VZiu5h1plf2EnsINPNaVuWF8mKxowqMuqlA0cHgD2iQ7N25krgITwnu+PK1yjpHavNzpCwNsfRMWt6PL2fjUEO0zJm4K5JUeukY+uiowCXE0079N4Of3tnbUh3CwzPuElcmNtQcReoTypsmABoXjPC2tH1LN/w6skDYhUorRlcePt8OzBKHyIni4YdX8KQYSM0E2IUjWPTYJySMjjuj/E2s0f2sGbF6FyTd9PxSiI58JsMzsHWzsVn2b2osa4Nc8iWliKDIECQMJUdsN89z9S/l5MQ+YFnb/sxQj9TbcWpEP23jhkAmFacK0z4LKEX37jbsdmpQl2bQ0qrt8oEACjDzXSUtvjDv+Eepb2jF/ru4DpWNGIG8Rirl8c0n1ExJx8xvHFjPBe06WAdPvazdga3LCAYdIwLng/4f+J4ZE7Wl88hUXfE4radwA0PvJn+BPVL620RjsKXoa1T5T+6iPK5oeP+Vdf1yIdeJYLSJB1eWBT2LnPTG7uxALw7+t718mw66l7vhqNKqACj8P/u3Cg/kUhdO3CXClYOfXLEzSinmA1uCH97AggF2NpKO4nRoTdzz2E/O5oqsbPeSktqnSxyVMVodyxaG1Hv6Kz0VAX2VmKDUCJrbZR1soNi8Xv4eOsUB7iwkswVj+Fhw7dTBQ1QFldhM260kvWvnNnorPxXmPJ5AhO1tb7emNQFnJbWUsfUTpC/4fw6IbWlw/qxp+G2Avf6kAQs4Lokaiprll1T4RuiefD+8+PVIwAyRfTqw1s4sm7ljSB7nhkAsNGxEM5BKX2Oalq396DDOU0AIAOdr7t3Cbr9+ygBgLtYjuqayR3QjnFN01Xjo7t8ZgYU3tg6PNh+eWl3tojNTVY5ADkiPLZS02wev8o7cf8R0s1nPGdEf6anHIAcEn77hmtmmydb2rv/7y3bQeT8ET37UNTd7bDaz4iW13+XGQDghVZnIcxRUbTQk7q9hR7OaAIALR6Z89T9Lg0ybxIAaPDVzWqzB93r2HP3tePDL+Yh/avb0g9F3d0+LQPRpxxF53VmAMA4pOINLaMYMu7M/DOkCxsWjT10SGtaojbfde7SC0Qd+ku9HMZyFv7QyUfJaMi4QQiphdjaF3KwDS/3s4JGBtvdFy+Q5A/sVAHTCRQAw/s2QV2r8A1w2g0PYyl0guvHNEHJTbFkLFN9yBcQqO4PXKzrVkUE4b8IalGcG0KGHIGyX9ANI2QAIHsCIsmeZyV0Ai86qhqkmfraB9pRn2fTgWjpChmuTLvbyOs+fW1cPn5tzsePXpeKZxjFHgiM65LMb8jo0MPQd8tOoDYXCef6HRCIQRQbuHRtFgR0fbp137sf5dadeuwljY7lRX1Xzo3/gUZ2aYbJHSYnua/AvYy8U6JtKDH0R88yskb2aL9dk3PX6swbQBRSPUTpsMj02QwZKeHp0AUGwsk26EzApmUY09HA4KYniUPtL4+f0jSd+jQFAPhaHcwkWdwHpcE6iKPk9LW987B6ck060srVUtb0IBnu9T1NH8b6wMXSERoQOtarxvcu9DWKNZ/wwBIMwVkGvSf9IPansIFO5BcN22IUyZtS0r/RhM+KFhgJ6cAkFT5QQvNSpwsnmBiD61QhuFZHOC12FHl0q5mdhiumOOLer6asBvLgKlNbEan+USd/gZctP2kHAEcnx2SNBt6JE5utNAgpzTmSMtM5WYr1NW+KK1BYrQJC2J1fOvaJ4mEEmgoDCtpy3lq+U6cdSBXdLN12yIdqUDoNMvxCATo+jN23ZLA/VLY7Qhcyou5hcIUZASLgZoiVAu9hdAXion/nHvjEBaDjn9Sterk4rojWlKu+kiuWTXGAHbLpolmp3uVSyFWETbKBfr1QXi3AOhEWfMGI7FZM5RMsSglADPdit9SYzdwKVWcTNMKaIRtoRBgu57N2HypASsRMWwzedo67QyUFSC+F5dLjkAGtRBk79wu2YnXIs6tC+XwkavgqekbAqq8ajmr5nWkVxbzDXGq6DLdCDAmKsheN8mvHXpiL7aXBlFhCA5qAUdCc/dSlzRkyIDUONoIMcpEt6C+b+DKnReOE351C2KHDad+HvoTziQx+eJBKakEVzYpGcTOBN2apu3cb+UuYKufmT4lnkyNMK7oyzphRSpeERBwSVp5E+lengJYxoMJyhhAxUNpnNHZ8pCtdzLXGZI62FTss5WiYZTOGISaDh2c/z5xdu/ZxRBRXpiOi5gnuIwt6p3sNfPZofgXxuYzMyKycAWCzZcklPqQPSk6HtBLxYtFOrgBD5vbzHPPpw8l1IKb9BVMFufTDbccDz07bitDPsbVTRuWOhdG8jsXuyu+9pZhcY1H+TNDXQ0ZXycVcEfvwUp25uqWusdBQ26Y91cTFfhgSOPh1CpMIPxFow6DigPxzVgstrHShsHAfGxfvM5V4qjAf9pGI6UeSPbhVaWxJC3l4t9FJiCb2Ld8f4HDY7SgRIc0HbwbvOybnP7/9JEwC03q8mGvMbf9YSvV47zYjJoj+W8UMALSCGYSWURyvcbmKhyGLclhK7SpULXYKEpsyAQDxseDnGdVT9Qz/9bvcqdUvfE8MKwJwrYDW4kX2AL36Im4oIhL3AaIOA+I5huxJMp8n+LrSZfy1JwSoLjdGR2xoqgJQs44x/01HMKWZivBToNHJO4FQH5DgglUrDhiGCEpiiNZAACVJJDwxvvxzcXL9xy7mb/HpFa0BwG/Zps3VJc5hxwddxl1j620BguAMNESRQSSM7QnJigNse3ZDsnODW98CJBoz6FU0Pn5GfTcwN+u1YOI1t1OtCjE2zUkz/k7BzQijJo5NPxKcv7QWxnyof/lazv1110+i+a9RXrUli9gBfdhVnSuR7h9D+N48eWoogSCdUP3NPcKTC9DGQ90H370UOXFx9Jtme/GYgEnuUDMGJJFQr8cMdM9K8ei/ApPnw/DAJtWoYgrtmRh96lXVqk3OHbV+rjMiI8jmM6IwJzLeU3O5QzsPSIHyZOyWpKcaouhOJPquuRP/+jqduspt0mVmA+o50Bzn00YLAuke5eh7NsuQhtF57YZU5+NC7WQAncaVg3ULt9Qnr4J9TyyQLiJlbVAN+UzTm/wxfYT8P7zADbsGQ1vTRV3LwTvNOuGdJMFoOONsLt48IFcGeh5YLfqzl/WSbtbR0g4za7miXjVqpzcx4Tylqy6/4y5uBx75ayX6PC9Oc8Q0Mmxqb946x7XcCJsN7Woa0HaIkLLBZl+j0fAwgalsSOc3pm8gFZzCAwq44By+x1bBMIipFs2DJPpJyyj0006CB3ANDexnIDf2E3u0CbDV1F0KRnYxg2hRWB6nc04TfnwvX2VMtQedgIrpAZIx0A6EOAz7vgS2MmtWgyj0qGSGPNU0JEdBhOZG6o4rLC5Gy4w2vSNv50+oG5ug4DSY6FZG5OX05QlnmxPHNntlXU+5ngM7Ohr/lSfxn+v6TbQfWwVRudxDRFjMkAn7Mp3pjIIGtS+ykAxn69dCZ9HEDqCqcbt5FX1iTYRd2N/uwjTDmmOCcTLmy6ou7B9JZbYM+Cw0hJUZ8EloYNn7T5+UXcVFTxDzY7o+A8MjYVP2PIPodDyCGXFua6h26NqGWmcngb5ywyJXLuJfPpQHojM9raOuaWrbPO7SaXqt0I7fhFJtoIrXKTH75P88UwW96yihBx9zUHwxgZhIT6C6rhPIKVviEmgf4HNS8TkM56ZREcS8BF77UCfsNMMrM1EvWI4ZK73/nFNixM6uRHlBfas3ct+SuBzyxHBiBzBYUPkSbdey9LCDFlreJCcKkx7US3GOzwinGBpIt8H/XGXBvYfws1Wx6s1lVE90grlEfFBYq0pdYEiCFaGCHRUS/iBOWwuYdt0ocpgedtqNy8RP0XDvXlWa6JrWS0sjnGEZgBAbwY2XzJ4/hzE0FTw5WFw02OfRu3a3vKbExa5Ni2KGPfTRlGRF7BgCArAItv+0ojh+jiUON+w7W+7UfQzFFRC2Ym5x9YXrimrRbeRa+S29Qm+6nHot4d+P/B79TLkx9G95SKjDX1tRK/ScVhIuC5vu6e7wN3wRzonCNHsQ3hj4Gk1YDfMihADipX2EdSFgDI03JBfBr3LEguMfK/EOWtgAYRB2dIKO+U1s3msaWa7+E7USNEoDEmcSlvfu+/PaPUqlg4r4xOBlOr9hPLECWHSZ4l2sqeXuGA+yTxHol3IocGww3gDtlI+CJKdO3sqvpshWhp+ZmcnfKQp0kv+xsBo0An8rkKXuypLPbCu6rGEGAC7TaMhcb2jFhD9vCuUsWn0A3unsYo7tSbCXjZkAwHE8I4fAPTGb2wHnqkZv1wy23dQPABwNSuFQHoLuM3xxg6ZMcaZAy+wvC3BEnWB352yGwPGq76vzfeFddUuqOZCq0KWkTsDsGrMdgFwZC+dAVfNs74DCmO80Qcp1RSaJw/i2YFleG0yfwyoD+wjaeZhdKw0kgJr7FyM9Jn5ZuH0vD06ZzZFLr/b4XXJauSABVJEYr22pQfR+b2/cc9CpXG336HHC6l+fUr1OdRhiUiFbxwwAtAQzHVo5WBqyfZJ0dvDLI8cDNtc9fLxBEwAgGGRPt1ngrqv0trjatbEfAGDhqrWoLG5L9Sm4OGUc46r0vxlcrmYwxjGNdy7E5cpxsHpo8kEczQXyD3Z8p28HbqhF6Gch+eVENBTea80AAEvQVGjlz9GQnk4Ijd2tIWhfiMr8G4XvV8bm4Hdx0WhdOR6/id62bkXAJr7x8OIYem4TRGo8Fbi9cdCb65gXRJfeN9e+G3+Bt3tGm1Dt36vDg5kAC8GFsVWSEl6Y9jquvkvHYSHW2t3pMBenmDp6nAz2pMCb42FKmFBUHqlhSoJkhG3ofkouGdpYqGEqWBmMYHh6kIpYvvSElIJ23l2D+Z2Qd/tjfm/ZdXbd2OUrWHeSwvqsGtFfq5gBgIFqKVh3aCVhS1xVSWV2pu3ikNOt1JwJAJg3+S6yc3/tGsrdej8dZug4OF1b9k+PbfZH0pIvS7+uRfThOL3WuvAzo46VtBvXT5h/qT5fWQwAeHV8yusomY66a5dVDn+quA1/v6u65Si9Vj0lkZIS8jfFcM4jveFyNL9RG/5+F2g5jIADRTrMdSnvo+6UnQe0Eb8GuiWdIWRzK5I8n46b7sh3r/N6mVEqiPa0FRwBokdWNicFMVWtN2cDyUBXkaaL+B06Dkp05svno0le0J7+7PSe423xRL9nVgra8/6Udp5M9niFTjmZXTc2zOiQqYo2FflsYgYAuiV2uszEjnYOX75C4vpUcr+P2vCFexEv3ApNAGBMFhFtWDaM3PYDarpWzgkDVzcXBABB81JXExoUPDKLJERZ7ZGSEChFTEtCsHU/RhIKpxU4klCSKvdqkLqayUBgumqUgvDAKJeMGShw3MbiGHCyPPsscE7m+7bA6dQVXYk4fDoOthsddec3Ihni0yN2+vZhBYIEUH//Yrh1HJR80fxqjsbyDn3x6U7vHVY0SAAVJcb8ZR0i8B7VpwvP8Ul1ME0fIcR/em+XtuePFasWt3odMwBQaYYbwimXg6UH7O2p1I7xWS45O5s0AQAsrka3UeEmlXJpPg2XjQYBQAcXo0VZuFWqj8BtK2M3LqL/hbiQZpDG5SnvBXE5d3yrndi788RIGm1gdnZwW9gL1EgAzvHaXEqz4CRfayRm8sX3G7Ih0Cn4skSSDfajYsbz9UviT/nLpHQQcVwdI77qnxQs6tfAf/mhYqH1+YmdWp78Y7BXTRx4XiTWHyUHZlNGBsHt4kyA5RfDDJgMSWF3bSZ+/YWvTm3Du+ngrrj59Azd+dVmaF+UUgSPVfCriHZLihuS+Y4SY0TiDbqRBPnDMLfj4CSpxMznk5RCKQ152SlnU5h+36qu2q7Rc1trModcAGvaU84igFFGJ6ku2NJdmvjHDIfwFTLntLngfWwkaYqgiIS+Xea49q3fr3i0o/SlDhUDB94sixYv4rD6YUQvyrO8QFlmBELKQJ4zUVBlPAGa2jxxhDazQpVCYdcTR3FXbepUaIMiyProhX8CNjU5LGI1JSoqMFqSMmGg5OQ/qeoLICDd4Z+F2LQEz6NMWnqUnqmNglx15Y0fr+jyM4roK4RTlw9YFD9ujfDEgBcr6o6z6pZ80ng7kUZ10SC0IrYGcyzjk5hSvkr3zF6GaIVRr+VOiO00CPilEorZtcywwJS4wCBB6zjfnbtOZ2UQfKmhVDiSs3+T39+3txkCIBNpFkrgHe2gOWySbJ9+IXTdNfSYSSx/o+Z1tIGVOSRuOtmRRI4q1qfKfu2zdUqJuK7cmCsEivr4Pwx2eIFL1727PUphZLwWTH0fsd32Pd1Wn/4Ggmc5g43yuc8eH7XeuTyt7hAWzURspdL35ICpqIJBcDMyjNDcvNeaWaA6O+J1Cu0RULXNwn2KxRGNtaXjPPRqr3uf+pJ9/bc9u8QF147akczFxYWc6GTgojunE4ILM1GXtXNn4ad3/C1p63UAgJGAL/+NYpoTphZjSrFXO3Pop8ZEjNUWSHTRxKw4wepTMyU79Eke9fhEhz724ARP4jgrtQWybIexNfwQciVDH+uVwOZsAtwJgV3ZCaw2wcCB9EQfTbo+p5DPDm4ze5BahaAr9vUr5lkIIclcDLxcTlHpS7JhpjBZ3Z2wJhPjJpPGy2UC11R114BhI9vhZPMKudhcEYpLn7q7gImNnAWvG3EnWMJ3q+7bsaMJnwjUIP37qmGgtyTykPfxuzX0aXT02OD/fcOWzdCKh1PHfH1drhjpUGj1+N64D6bLzFzuNnQCAxtszDkZdIImohoT/g5aqOPj2kSQB6hvt5HiiaMLebDfAEMiLxfDwMDgzRDfXF0IbFHhiVE8rycBDtIBXOdDwPDs2TDOlVdoN46NHEBSEswR/fulHkz0FA0BdJg3cGKY9kDw9PjYW91juS9ETxWDaaTOYmlTAjQp2ZTIlSmn/EoTVuW+BHaftfYXaNXBpgK7N3HTNNoCI3Wkj73uLT1LW+r8AyByjRJrZlNh6ULakedjOvOvEXs2fyxGThVpThI3wx8t5DO6p+6p3au6O7W644dfk9rQ036u2282XGW3IBxmcTMWaYngcbuG6fCFiyyRTn+jhHmPaBn1XWW3ofu5C7FE2CInwOmZuRO5MLe3OJnH7xPDGqx7LocITerD2GnRwbp26r44LyUwGT6AyUHEQkPncGCaBoBWlkJ3PXoTIrGH4tYwj4jAhT0giIT0Cab8S/EfdYZngYqLCNE7hUuNuR1v8m4xrWUSASRSV6tRKYzJ20tMiCThrgIDKOU5TOJa/v/OGE3bRAXI0/LtPnEDJEvbjMW03EEyURi3nMlRsRxOsZiKjZGEJCZs1ph+KLF0EhMz4RscjNaPI6ouWgKn/qDy+p6PYtuKpc3Nq99/EOqsol0FQRsXzkLafUIR2q49593Uf5QwLSMxuGp1hRZnKvyEqrrdVx8dxio/ewIsbBJwQlooot8HhRTmDI2dEAb04wGNQUFWxf5NpfWcBSHqKDtUzSMBhkz3lPb2kN2U1pphuSETnlv5/ITB2n6nrQ1A+o7zjKjhu8QLzpBvnGhuFf6Wa7LpveA73fKutt1goasrJ1odRTD2qTsn/zPai7QGcLu7s0NZD5e+uYdJJ7x1tUzq3lF/TDVj9S7N9vqj0ZZmq3fP+GOAfmLT2XQ7Ae/7yvrrUrq5v5jGjCQOo89l04gG5KqvN6/Q6TVnqZT3KFw/fT9USi4eUicB6Vhp7LbvQ5tVMjvyPuQHPNI44pKMQ28tTzKIQcWALw6klPrB4Y/XbWv2iAvcrv400O3cUw3WBfm8R7ZhQWzgKus8gVtJYOjYe/1Eehf3zhKiBwjQdUDA6IuQshKAiyAYLVA10+zA2a1Aj3jR88vZQCwgNNMNia6zsCiI7o5+r+Q1cZnnQWH+vxh8WYyL3Q7vTrtXzfk1V3Oy5DFXOzxdLBac/QLb4l+8i3a4yP+yb4GfYMhX4WlxgeboPxoy8P4BoQxN0rKLEOuPUKPXerQ1pYRmOytYaYdEaj37ue70Fr7gbDxTXU+4m8jbcyzGgDiMt3QhBwzplPPNL9hAtiFKBSUMr/QwhPr+utQoWvqqBSruXLzpyXIm2ZMzzTxuqri19SrHO1rXnFwFF25jqrmA21X5C7kx6+mCLt+22VWVTB4tzxVfTbGBWbl5ySaftud8ohxpvMd3SYB5k84XTICFxoAeDy/tEIiwrjMSmsiCdiXkrlFWRATpCh0iRsWmi4CbxfmNNqVDp2p47gxlAR1o0QGfTgIciYqxvagzRwrEzY2meEo02E5fQImoGr7z66gboqjA0KIO5iZ7mFbEpn12Iwsg3EBBc9FVD690qxkIHZLgsABzbEYMvaIIUgzpwsv31HK7E1p2mJYNwoCYlOw1eiWsRP8O8aQxs4vdbsbOyX8DEaQtdqvzzQK6hQx5qUDV+3wRBBmWqMA25g2jCEUp9hZV5GJFtxaoc/aUTuvcUW2vTV7sRlx3rNql3qXK8hOX6fptSxqvTO/g2Ye6+zVNBVTWB2UZ/Y5mpVpfNNbs0i5tbCDfJ21pO2QRa8c37VC+jyp/wY0jUgvMbGXpfUvgMuMZ9PD+TxbaYGCbCt8UV6BSy4dRfOGLMviuKvebWxCjzXP36qpT6Ol6JwDtbgo647ybGm7zCAlXN3L7GYLiczRcdsV19oA+f49cB+LGnhK8OjF0nOzIC5xtdUfqUyM4Pl5s7phpc3QsPS3P/graUehM3k05pIhGKeYpRQm16LNcL6uz5dze5CW53LxIsMEVDwC6LH5peSReCEdBPbxvmm4JpyidR4wXfDjUVTqNh3bqT5OlXnVQFyWFR4ayvlms+Lw3cO8Q+Y/rzYrfosf8YqYs8znymtAlb7kLbGeXPKeFycwjnXWp09tnwUr+xHy7Qjh92aM/gV1Jpe9mcCAmILkqwCSRU/EG0gB5fWM75H0E/Id0072Jx/uEvcwwAcNzR7ALwaOyMTDdFVnDBea4hMryaYahlLDi2W4jEARcWPeNUNIoAFsmeHBJjAFhMvnEnXUA7zeGQk2uuZzmCPL2mHavsQ/g4i2C3ko8AeYRBRN1ialNGrD3VEKgqaYB+0hLrcH6xI0GLo2zOcUhw0p3wPBMEjonkYPfBzGnZSMWOYNcC3PlwUU3lyD/DFJIuu+aYlHK05+MLxS7mhi9wE2DScss2Fqm3wHFkkC3gfG5iViekBk3fJKulHKtEotun8BQWIOZwX7oAYx4ddSw5X+dtQsiJQHePgIH6xJbtY6OlPSzMGknY0uihYQJmmCXbEoDqPjhtOjAlJxb4TaFgadaLWNyWEBhQ/pAMO9IagPN3ZcNGCi2K1txQeT3O9l96RIcnAkzIE7uI/1AGhJVk75u3K8guXV0/EirWSfWZIqDZFMuR7Z8sXMOA37PCqmUvEOAT8tJWY6SyepReI6StHXqQsytDtPq4pb2QzVgvnEC9hVcPNgcKoH0nM40Qyru1e41Gm+RWS/8TKbTPk+cs0EAykoBIq4Z7bdFU7vFP+09CRzQKjRaB9MqWCPD+NmA3pgG+qNeV4f/mH7A6G9tWnVItUiieAh+CehfcrjHrIGlY8+7/wdvXrblCeT82yqdhygjzQwxmYfhKNqA6cxOpmqReGT2tmgTz5fZnBW7IxeNfTpttgCuDWZnni9jdF+ZT5wr5Yxt0wAim3B3X5HVn/nnlm72/qk73dNzusLtdDRs/fc6ThdRdvG0bADxXPf/R2dNE+0hwFfCzp7R61T2tDi+X2vXxzEe/DaCABUpn81n7lm2q2aROyN1ZpS7s2kh+1FY4RCjdgQCfFu9TSSme9qhldGuAmwmbUwBQuh8yjAzb3GI5S2YF/ynE/j2KljA10aivlYutdaHU7KaLPh45Yvp2JtPlT3ZonI28yqXWSC8VCfoTfWBupneRqhi+D3QG/BNh8U0FG5V0biIAFp4kSRZxNhmTMIA8/vOrzZCitqLvaamIhcaIJzYOiBzY3ua2ooJc2AejfFkJDtTV8Bc85yYyNOCuZufk5t+DHGfLVPJfFUK3x76hOAUK+0EwQLeaguuPzs/Mqk0ZUlYTL5JsHmKIOn6d7qC1xgapGpkp521WQeQthk1Nzn+G9CR2aq5zGwiZnh4TmU02KXFIBqxhiOhCuB2m2Q6VGsmCUnORT6qIH1A5lS1EAB2O0BHVJV48oyc+mW+I5r/jvrrR3z7UeZ4HMPHNJ8oRwN/dvYQlhyen9E6k3G6Urnj4fRc49g3jHauceyHOcMVyBHbkYFVz4sinRRanKAokhTyTnmLkFL67fDZiICOJpTzFcuTKnefS463s5899XyBpCepVQk6wNu6AYADq/FiQJyiY9yJJDsXbFPZrQeHQb5CQ6uZMCorZnXTardSR52WX65BwG4tggkRckvdhanSCabcruV0C3dY+3db4BW3/gMAKArMif0sG5yccbsucHbV8DFib0Vqw73T/uQN7sYqYIsQq2EJsCNwQcN7c+DSfOwOwLrfsh0AQFUt/Qtf70M1l/5NRyW12k4j71DbfXk8QAdUR9MJBZxiq0wneK6bxjwAgD3gICbutkBFZmb6QC149nBA1/KGCUHt1ECNxIn9jerP8AvpONJIpv+qlX7Xw8z//i10B2C/OPq6n8CxBnIFTWOKw6Wugq68X7zfzH/2NBWh8lH85FqptgE0g2lm5+b7c/qFdByphTnIqfhkC/1IMtRxar9H35STuzhfPqFW5hj9+y+oBfG6Tjwarb6vEF872DuufNsAam2OeTJ3CVzCC73zDO/nv+a76mrj97TSHqhWQcQVKrq3rhsAcP8aQENFXad8mtm5ILXFXdJBzXyFhtyxw6isGGrInRKqkrgIuqJFtCNiwlJ3Ic86gcupXU+3MNnavxmDud36DwD04kDtsZ8goCPjNmXQS1M8WNAn9jcqYA5WAY4LYWvafpyPuBzfNej8UxnvM6LirLwlO7w92r1C5BDwJrq3rgsAOI29iP10+L8rYOp9h5H+teL20bjiIdgKn2dvz3oOoXxhlIVP6eYiqKHlTKMQTGNLAQDABIgrssW/htj/gbfFvBcy1LWidCDZvV0HAFBChLHFXMwrvSQRCdN9gbSmeXLu+6bSt0WUK2vwl8O/i4O97BIHY6UqfM9rf1zY8P1u5xxlEAjxhblUxbafvDqm0ra5892L039HvWU51NFq+3aqmhyAprHnC02dIDda6w9jbz5+qe/pB/F7z2tQorAnfkYzXWrYvrTD26w+ucUqG8rkW1WM7q3nBgBWwmqGUTBMKTcZvCEnFrKknKGVdWtnDeZSvHyFhnYRYTy7YhznVdil0LMkTtAoaR0iABDRspYTrHoKJjrVIuXc9act4Gngbf8AgNaBbIj9OPE/C3IK7aVHLFQuKuFE/U1RPE72io4MveeYocy5lNfKJvLKvMB3Y0eIvClzkmpSiwdbTNFNv+O8jsZOGIgrx+S5crD1JDWz75NkGPUGRoT42rz6bjdPJkucCF3175QhMlhFYPAYG15awlXTEhVchqDg/ogJLvfwCmrbLR1odrLN+fxyBASHsSAjHBgmGlhOMLCUWGBqWD2YSGCAQOCQXvnczE82J/PJBAFH/yQ2U2EigDUEAM9DQgA86830pbjAnjrc/XbbQ091KCbke+exoUTYdqvLqsl1IUNgMZGW0MVQSuolYEULgsWwbgoAgJvA2e0eO+El4MJOO/aYH3fJtQmExVUydp0Kura35QEAxzHiJmjhUtU+3+qnvXk9Jr1qfiad0oeEju3TMB1WpBPoDGv5QWq6oIKN61SMRUOP5TOhoEmPXTV7S1Dx/DG7ZzTwzjK4Zuxwz9Wfruh2YhrbXeo0un7r+C2Q0XmAa2At3psDoxm/zuOiHe6p+iaUqpkGT/hW37xVNwBgodAALyCWNzMGdq64u7wKOG8hAFJjgSwAdZUEzvlboVVNiABAy9C6wAk2NRt+ne4Nd6/y727UGg103fgPALgMeXqtH68tnIvRPA642IL4pnXZEC5P0d86imuqFaV4rCC94db7QacsqROUUowGU10/tx5wmnUPu8YjV2bXEzzywsa8x9upRlM7AJAyHg0ZvqF5O03U240EdUHWSkMCqWvMAwCcA89RcGi/ZZVgtowMigOuSIK5ZdkoS4KFWANqJMFWd0CxvCTnt6zBEvZw0rvRpD3OZ2h3eDuVY2jeURxezBpU9DPkPx4NvrsmTb92ePu0AmMDaMrR4vje6q00Ih+Dfkby29Sn/OxwL5WHqFk4zihbGXg/H8CXjsZfoyj9cod7pxUdG0DNwzFH6dNAdG3q9UaztVYqEe1wbyU2MUaVGMTdIbq3rhsAGOv8Q4O8uVNARspuOhsvyVsICl1dUXEdVQmKqZKoFXRfEyIA0BC0uOEEq5q7PE/3hlnV/s01OK2t/wCAVgbdZD9xgb42mkOAAVXxxM1U0aGh9yypVuSl9AJf0vvwoL06FSil9KEYczv0gJCfwdL/TIL0h/wd9xR39DisG443up2ByIe8is7rbQAAOp/qOG6bHrig6uQ577yV0pkjqgq62zDQ6inM3IDgLD5/Vwgh05UhVhDCtuUsYhESWsZmAgBgWsN0FUIF82WCSmfHJpJs7UomAZgVk2vYAQCyhRixmNJYgnGZzAmAMQ3xxMBYMElKIOrBMS5x4NOPXlV3zJwCderfSplMo9RPi/uqihkMJ5j1BBP4cmYEme/ZeRC/grqyy/Dy0fhcD17BO7rN7smKVQYvs8kQALgxgsRJCrXJFtrsJLpuDUM3y8nJk0h0TD7fOYePf1lUlborUAIC1e6QQMUAehoQAQAA+F3uk8OIAomm9qr/pr1p4ur05n8AYADNQfrPliurultqcxt3Sxlv4259jG6TLym17gxo6RMtDF6wvCHmg4sY/1Wzfw7yfnb/5kNX+pu8lbtBEHP5/xdcAyVI0kpt1HlNL0adkYsMTajCMYwPRiS7c3QHSbGMf89afhxxFGoeK+PHMM9T1R5QZBzudFq+XrztdvfMG+hXgCxiPFYl1TakZy3Q5iB4sRCrlOGl+1gWD2KZU0H0pj8IwqCPNTQn/dLFLAQUu8yus4kOk2U+7F5rDJ7iJdgUh/A0q6cAAKdNJUcxfF7pJThWvZ3XHJrrlp2iCohCb+VVY1UeABCkV/0QWVkGzs0LuVGtjJlAbq6Vba4gd2Q1WF1Q2tsVFVXwpwsnaT64C01jJV7ltIIS/XF4OY7m8YXhL8SO9txvG1/0l89w2tSgXGIPvRrRg/m2ux3tqXtxxprrOvt2p6N7qwwBgFiDn400Owtw4M3EAavR53en1g0J+qQLg6d3lzoEqKuTgA/glBYhzLnCS92F0+RE2wtiWfnHC4Ilg2E3/gMAI0HbvfrPwoFT3W21ucRdKOMl7uLKMle6oRSdwHcSlSFUWp2kr+lFJExZXRICCbOdgRIFpXbb3WAaSldZY8EKL93Z1g4AhFVQgG35IhZewHTbRTw8iSytxFVRJVilKQ8AYDm8qkqowMRNDciWmXEKJMGzPQvSyxtSAmlUQaXiwn1yWzC9wkf0mdGcIL5vo3d0O51jaNRQHK6KGkyi4Ia/0Uyv+TRxd3T7vLJaA2jA0OI46Gmwyuoa6T0a/F3C76TZ0V46D1GfbowKEjx2LfQdjQV2v/ntaO+8UlsDqG83Xrc0DQas48yDo2k+8fZmR3vsnqRUJXzrnLA2gQMAafvjQ+3w5oaACMoum+uX5SxEfXs1FsUGqlQnURbQsRaBnvH/l7oLXVsqSuT2oqnZ2r/pjWyog+lq/AcABoTmmvrPlouaunNqcxt3Sxlv425d2c6VXhBqXsAdEI7pVy1xObbp5+ooQo2G+i2GL/T3+R8+b096EyUy4cr4Sjs73NvKTWCiTlN9nJPDiMm/4kVw4cGjj0LpX0VeAzDnII+Hhhny0gWokHHEEQgEFhlsbgMqilpqMR2GHVIf1zmuzfnDz3NzSz5cwBsujr76JAGlYuMZFk9nsiwhPJ4C+wjD3IxkvKJyEx5Ut39n/YTK001ebWf/F1wjwyWFHMrAVmJYPX1IcCV8BClNvHQVZE+RsM3QgZUN5hWzGHoaXiGnekGzeW0Ia2BFMg/UjjD7OJ2rqh0X9y9fyTUeHQlK1xqy2wAuHyXtPQCXqbbtRADLfqfAzXAl1V14Oq1lOwj+ohE59TD16yV7QglHrJVNnLMfop6RA+IM9Mhx3d8s54IoWy6cMGh04HdfV0u4u7GzhQAID9E5EdL1Y4sFEmeW7ahGPUqgEGByhJZ6AdqFKkBWX4+u1Feqa/+2VPhzI8XwfDruvn0ngKHJRMd8qJqwA/56DwuLX1qSE3ylVV+/ArjngLHM27w2MgB/5ZXqke9scZanRDbG4QZ1HEPfm4/FOhtApcn4+uadmZvdDE/Qii8fFzp5FQJgvGhKR3ZWE/pmm7CFOrEh3gzYjhZwqXtIhMOWGWmecpXBSABwP37cuY/SuVI7gPGT917M8wRFm0tyOm33El+a8XPpPooXeBfq+OX6vgS3HQ9tLslNRfee3PLBBkoP193D5bmf7vjuYap0SqLJvz7Sbbg9UtVMawrjhHtb9u69s5E3Ku0mtHW48w7c/QlwfRYebMhNku/gHT/9HjmIZE3qOh8S0DpupqxRM0ih42GEbIlHW/2mHt5lgmqBxrUqF0TSRthUWvuB1ije5Q8wgSg9XezgnY7iOutig1Ni6vE2IBygtfEFs3QlbHq6KbNJ8D/Z9LD81nZvvKE1rfdG1ALhE5rzBUABgZ4u5oDXiG6HQbA9gNjJaCJF6AS4T/sBaRMS5RUROh7YItZppuEd9fzx9d/cQ8kBCrWIHXJSOhA2ABHVqBKxmBiAe8uAEfVmh7UyjW3mYfFWNLlMRj/M9nJG2Ly/gHbbaIx0JlsVxuvcfJS6wULlNrCOqAos22zsbjKjssmyBk+hWK5RnNksLQBDGJwI4ZxhS0fCXJ80QH1Of+lp+d/swORmH6feYg8A6HOxlWCno/jKTKyIxfsD1Q6OyX2K9FEKH4VRm4lS46PYZYhR8tX8SG24aI00t/kos60CVCYVC/BRVuwA1BRTpCKrK+gFU2m3AoRjf/HEcgsHWaXZnXZ3awDN3lljW2u8ufb17eqyw1E2kvx48keDIUUb1KvKiVel065aknRV3JMYZ7d3XGsXw9Qa+/q+yrjsgRLwT6X0XfjERh0eUtc5YHjl53sle33sPImXNbqnf1XOWEXOnAk3FbSFafkWVPC26G9Z6HK7SNOCrTL0BvINOvfSu+EEArtFIahilrakKZYqvgNb6bCjQLR334+2PsJtgIdM/KG24Gts7tl8fzPxbguX5Xa4kpnZXEOsSisvz96pjlarc/IOuwlxGzf6BniMeU0XvZ/T7Dtzwy5ipou7CAoJP00rJrXGOt6C5e64zoo5RBQP4I/ofucocOHR3VMDgnTzM451wiZX5zD+TBhOBx3P9mK1o++yjcbqJsvXs+/TWpBCgH1oPE4hbhr2KhVmgUr+4/fE11cX5eN2FpN8BMzo1qnBw1RUq7f1k89c96j4+JMWfsV/7U9dsTrL2FPpB33T3i8mnAKQvgYTACAgMLTuMTNwgrIogcr8TxoEK+k6Y3chWHN2AZuNYF3bSGwZgEuLYC0311YiAADCATjR4kAj6jq09tfSAA0cNQAEALkBecV+jAOVVZjpURkZQpeK4uT6SxK6zUoTggNrBTvZS4CEo9ID9iRhBN61VWBcNYRbi7fKmd1YeKttNpYMb1/dNEAEAFmCqVN923HU3tv01NztgukMJK5yKrx00kwIAHABzKKNmyLAUGpmN+6r0sbg2XvFdDMrBnE4MIMasYOh9eOsqhehGIc1r0GGxHMlbwONNr+mUDeAZhnthqOrXijTyL6VhklfWMspUTev/2uqdQOoq9ev17hetISbxL8ceCnd+VdeT6//a3F9l5SqayEo9sDmoXsDmDBvALUaTAAA9QJm6R6eGK6aRQlQxf8gMMWmXRmj+qyMM9INEJyNlqTCkUttNS3cLteW05MvitthkosurhlELZYHyPU1AQQAOuCu9R8IN1SaFQa4K4iVxLKH3C691IuLKhUkuoeFHFr5ZxXbOqckIBsz0j2apNDP1uduzu/7/1C/b8v0cMUIMkiAKa/k8bCc7GqAA2vID0GoWIZBFYfzzzkIfKP/hQ57JgHOtTMkAVZYAQ2APaacMSC74QMAcAlBbVks9BTipP7XeSaIuoYt73hEp0kV2DmTZc0nab8RkItT1s04NmdTIWAuxUk0MhNwXdhIrSNJlSnHjGe/irmWuEq3xLaYCnn8uHFfIhcdGBZ4wOUWKLDD16j9tkSPo37E36hTKD+3PMXDv9zjmvOE+7yPL/Sb9nD8kUZfZ1edTDu3fXryINhbg/2lWaXO0epFdZSFu8T76MbaWrO6tgIU67S9LSbsDZBigwkAkBpgenj6eAB1aYBy67sEO6g9I0rAHmZAAGAvSyKEQ20SBQBUEIVhRDTlo6i8CyU7WyxTbPnEo5sorrZqAwAot29hLGaphT4a1BV0uYXM2IguajbazJYNNbWGuHWrd6VDNH2ypNo1xF5yoY/2pHVFDzJu4BgVKRr3ujhRGg2cXkb5Lk1feNfQEaiVBiXDNQzLN1zwgq4Qw3vowCBGV1w+dgDelbX9IQA4qETXSct3HOJdj77lOMvtRLs+beUqjQk4zGxT9XtbmEltc++iFa5928zhT2H79ZgpE/hTuJPFse2SP0VYYg+eyJ9mn1Qj5oHGn8tT+mLDRVPu9kqRY/NlaG4Z1/Ddr+efXsI4z685XPE/6lehWK3f+lGQcMZMeLaAuWkwAQC2GrhuTf08uo4gJf4XBUE69WdUyWF0AwGHqyWJONYmUQDABzFoRsRBXG+N5uGT3apLjK5xXAPPNsQDANMNCqu5OKfzOavQFaMZHWhBEWfTnxMJbepSU3EjPwHhTCnXa2tvxSuctfI/GnBrX7g1vOticNt1hDcEw1G8i3FohBfxsVsyuKQBIgC4NXgzpu9uGdxszd3dQacprnLZtIiVslU1fFnkc9L59wsGVHA7sSVfQo2VzEAS6qhljySh+xjETIFu1ohNArUn33Q1fJ8x+OiQi06yw7k1Q5s/SsttAG0Y2pHfd8wz7IPvYzdDbn79pXWoyNa/L7em7zaAim09/w4noYE/bs94Q9Jfp8uArtS2X8dnfXzNTQSzuuaCZeu0PSUm7DHgQ4MJAOALMBWePgrAO/1PCoCH92RbtWfsA9hhBkQD7GFJBHHITaIAAA+iOoyIRvR29VGk3ywRJcnK/AMON+0BAK7U3DCTFALUXJg4tziz+1W41WpTwuUo4xWOlrfpghsXrh0qLWKWu1X4M/pZxOUirP9F4XjcUJ135Y0RnP2m8j3yy/Yrfy0n93lb3JcUfmQhIklnkUkNhDTuUJa2mK1Xt0L3wB2+ibFn0/jBl+ieoE7BIGhtxGMwNzUGVaQ1eIRWaFoQgaB860tXZhHweuRyCQnkHFZ6QRgr4QycYf8+heARbhhnGW4lE80MX3L9ArKEMfWGCQKJrgqfMYCSSO6+a5soAOolv9LiPp9aabKlSnXccqts23OlVbhd/M+9h19Tgh3Wzlw3sCtWcCzgqg356RAp3pYPACC1i1AMe0Uj8DOjKjv/PetpZviIZiK/vefrMBtZAIDFfk3toqXU6YXaI5PZubIT069Olymunu2Rx09UB88N7Uu6U2+rgO0arDdWqRdXpHRZ1ZueDCq+Cwac8yZvkzeux0g3MT/6d6VU71oUJocCgUwYSK4SAbBhpD8f6q/ELyU/+7oemRep+fS0JRLsGvuPrUNwz11nPB6CV2sqeRl46fQZlbBL0JAWCtUOi1Brx2K/CgEAkLQgI9Kxooz20dt6k0T0gRF8eb1G0x4A0LcVxEkWKWEK3AerukLgEJgtTSYOHgLb0RDjsnbTHAKLkUvhxvgllqRe2YsubqwSy6cLEOsoLm3WVteuCG2O3YO77jli4bNMvq7Lml58luXX81nDZqxajDOzjzRjjhi/WlhIsmtF1YubdjXJ/8Usu5lsEl5rLz1QzzT8m78CH/MQT6fZsTYWzs1FmgZNyLaOgNiVruRQMpOPgHGaZ/m+O0nUYbMCEV9A8j6T4XEsr9enNg9oABZa1c3M5qprtC/EeQCCmfCmnH9Ec28bBTAzaTwlOV+GSb9OpcIXpxR+frgEJKY4PUnEqn/DUMQsJNHmmIA0XfgC+TLlTuTAObDmAtecgMZ/Rjfxg4G0QHGD9eG6g+cLI9efS1+StEJJAAQKNA/Xd9bDa7y5jWUW3nP5YfzH9Jy/4fBAqy5wHUBRVAvI5LqEZZe01hqa/zWtmGJX3gg3HnC6upvUf7LrB7bCTAlAjmWF1eKNgTwOcHU15T+9BuLVrtyr/qLmEPMQImFDrwVS7xcDX4lfoMTvOgv8vza6ySljpaBRTwtdgldUyQYUKGL36FlGDrAw00mLkwfipIi/FfGSRbi8Z5KhZqwBUIEFRg2a0YbOL1CGS228DxMgBOiIChnfXTdekSgKDDhIgA5thkIhQBgW2TR/xcJaS/TAdq2xGBn160zYwfnTvyYfuAOU8nwxIjnSzqQqcHQHQEdwRzSJ87x5XaMzqRsGIRHN7BjTCy3xtc3k9pMc57UXIyTCdpqTxAN8m2LVTEDavc8dxIOdYBKHLf38Wb03j6Kevk0P6srlacC6Es5RTkTkBF7HP8r2kfkmnVvV8/myZiRCpyjMDIIP/4/BufeE7IO3CpGdWTe1HFsdvkwleVn/sWyRQLnyKjT85wwa3ZrhcIAqtCZ7WSybtVm5xcMZ6eVkFJP1Mga/5aal4Yedi6EeVuBZFCfJ7KIufOBO5vVcNXIr1DNaFmTXzxtdqaqfCPTCuIStjFPYrLiFXTiOYZOWQcqfewwwdNdGO3jiTdK2EXYMvXD8Bwd8rD0FhJbHamx27MYW0eW2MrZTRUF47MfOFAv6fCu0mz9eZKeJH9mSeJLNDEZqx5vs+vEnu5F4lC2LT9nJ4lWsJdhoBnU8i79IIM1ZP96V04cTbzQ+4UZit6Ye05RACNwKJaRWYrRZ+mQorT9yJKI0WWst/OtwSq0wKCvSBTZ33Iu6bsKkJ/XhzlVyFzxS9PxFkk6OW3KxChseGaDkQjxBzYjTikZmMJ8oZDIkDkUC5OLF9aWSqnirZaJfYuhzyar6lTXvY4/TissMCvGnbLY6LkfYX7V2ehcnYtLX/NP9YP46ItbgXt9jnXF3BZ81nOidWmmX1k+dYK2ke5bRYnGn2koIAEz1nCbe/Ck7cldwC/2Bul+XGWR2nhojBCsbuYCQ7QcMAFK6y/OZYyutijbc5ghtQptvz0uwGiUf6ps3/jXTe4qEIZzord8rtdqbPPUEOZYwlA5KGDTbjAIAaAGkpBii92k8FySwWv+jMsw02o2Vu5c9miu/C3XBJlBbRCXsEnSkiYBtLYLsFN2tQgAAJFePTuTOo3ofqNo3SQS6Rw+lNO0BAOhZM6YySWEv+g9rVTdwcWqTjctSxmxcljbFJgER3OKVHdSeeEWYBYqaoj3pRTpcNK9TNne5xyrCE4fsljS7TVQVLofsdjT6TZlmpO6BxdP0Qt2rrScBQHMKr1HYajcAtCCoqTJ87STOnc+mNnqnPttu9NM25aarzOpPNSU1EwIATIBxFXJdKHxLmLKa2bkTAvJs7EGIjkHgGmLEOjFek1DzJifQ+N5on/un6B95z/DhGopvhoCvgg4BYkddkAajcCC+EPc8n3fp1zidEkBQ/DMzf1V1CBBQULz5MHFLpry2jvTk0H1I9KoeTFD8j/7NKdWb7bH9ywJuo9tywicjSgAmjPUoAMAczUrgne4hlut6WZRQF/7XXKbc1fTaqzzDgnujG+hwespIc16ilJzJOlEAgEpuo0TUix1oyC1WJja4ql63BwBM5bWXSTrIddmHNQxHyM0VmW3ILWfEfZOhSG5Hb4twycJ1949LMetqC//aEi7FVvsWByYqHth3NPyNzbwNv2rHOryTA2SxZMhE3y4jYhd4WU5208DtNJcAAHeFcDdUgztBxXIOwjT0v9EIeS8Te1SPceqI5foUcdZUJj03Mk6bUflyVqqcEEa76QMAmKubOEQasVmCjgTaXTWQggdeb2UBAOACRJSYC9nr9nAyEjExmeSdsm9FkSUZYopte4v7RfZzg31JuBFdY7oZjoHzM0UDT5rixKan+62cZfPilU/Ay6a6sYa7ia8q4ei3tljtvuHHoViuljBWjOULNtWMAgBsxO7p6iycgQY4AZSpPdM0oCwz0BDQFEvSBNhTue2q2vVl2lLo4URRZqUY0UplInN+Affo9XZ4AIDTC0phP0pBsmg0lV2gV0gem2IN7igva9MQ0twYV53KL5hYJW3DnOhSU8Gkllkp5rMG90Yu1u4wZA0nrBqlPXt0WjfHfvqGiGV8zPFM0fiL/JM9Sgez6EEO/rVACKx4sS3nB58Ix+wTS5qZRGKEmDYGlsdTAITEW08CAKwbD1lutRsAcGUIixg+lvoMEw+Ipay3Y9nDkLsyFAar99xYgplGQgAAkyJH5HDYlgaOwmY3yh9Xt6EZI6slXJembeC6dAgTSl91jUU+/MUxb4BbAuH+su8Nh/Pp2qBUonxe75NWDf0d8FjowPGntkSfglqlNh1391iETJjFXBsGlsNYjQIAKNhHO50ggUNpgJdFCkdos11nugZCu20X6EiErpoj6XwuZheuXT3C3ff/XIUAAIixOVFiXE5lIhePM9eoDQDweoUgXFBRMfvRHKThtJnaLUiTM8W6XuUHUbNcSgfil3TX6tXdWWGLVXJVFIq7XcKWWvTZFHgX2wvdL7JZq8Q2Z1EgwURw210KhAiXxUYxEJFYPJQBEbNbTwIAKsIjLlvtBgC6F4/iqb4kNYYHlGrumIFU1daKQIrD2kwIAFycklpNXFogygWNMlHCNTRtC9fQIWym4co6uJgGObY/BwOfRe8FWnFHfhp/Okr0SSpVsr1o8rIs0Oi2nHAZKwcshbEWBQC4O7BX+yBqJcwsSue6DHgVrdwPam312RXOjm5wwNnTkU4I1xxrc3ODIrpMW4oFTpTo4I/f57DjPa1OVCEaK60NABS1cjsr6YTLnha+NpawIXMPu70WKhA/OtG0aOs05rWaRXDdIQl5daW7OZ60u/yo+4yaPPHSNVp9HZzuIBzvdvnG5JCa9eF+I3mqHhHKzaAEADbNztzdAFAHFPc5eySshpu5i5/nHRQoOA3a7MbNjNB8Ivq1PfwYvHLoBf3jP4UkEsEhQBBAfjM+wqxRvPR+so3Rk0+MSQBA/is/mocbe1xt1J8OT2J7T4axmC56oFIKACBgpHqjKgac2MKO8gRaDog0aCgbJZWiDhZM3LahKhvXFimLBCKfSDCz8QBADlAF5AXBnAHNxwVGuDU4/A2aOfYXvtI+wozFfKRG6aOrUXXVXhFVcjj+5rHoi90UI4FcNxaZuwrh7oSxxgQAOAHqogHlJWrOQVgeA9wxkLnamekBcqUqhwtrzikUpmLKxwJ26v/xru/PRcz/kVjcA3Rl5mOFjX+lZWl5JQGGWEt6wKuqrbkTeMx2FgCA5QJnoLns5VZWQuJqVOZltauXYOcMsarKQBAq7v4PVaqOGWIDWf0sPddH+qUat64l1G4vKkajQuNeFSc4+aifya+Ec/wZIhEkfLq29DRv+FV8P314ZJy4+59wPXeh6p41/lTcHOs3JowbAHdhrEoBANylpt4Drq8EWKufl9QrVZ+tIv5ytnWDDc5SR9oDXLjmGu0hTU5mvLBld/UxOGXOOlGun97lQz33JokQruMK84TehngAQHQqqZIbYT9GjigcGmU0Ta+xXmSoDLF5TQjwKQzfDL1VnqXDHvqwfK03nD42cJ410gVCUNW8ywGoumueejURso3/hXkesrd9kDJmm5jLPle5jrWADtxuPuxxhqj4KsXk05HOeodAkcOZmq6n2+/dt+K9Z+aEKr3V7JMiqbwmmOG7hLH81P2npvM+nyCVX1Q2cTYicFe97tZ8RNTeGzRBxk1vod9HY+oNrp2rod3boIHtgfIEhZZrNjQihgwoKMqKsE30MQJaqcITLNk96ddY9D+Rk0dQZCDGENVDKkE3zEd+tGxgqWLspBkrt4me2A9CyQFENxMmyJJNAhHQBC9ovFANQluAMVRY0Nmmztp27MmFHIquhxDXjWHn4RqLUVbvkQuKBpl9R/7miumajfeNHAFgzMwDVyuE7eaxK4NEleL0xhzbCXZWe5eSR8ENC7KkuaPHFaAzDoEOD+IKq/PzwSVKwBlsokTGMvB9Pq+9W0SCg2sU9MaAqMQhlLgRfeQJ8ZHJ7QAfzzb2cnLhchXuNEhXu6o3pJki2gBFuhCvE1bMyNVphUNaAZfdoA6vTit4GMiNRMCfo/EtsYcUtBSE7aCXCs701MzTDahfE9rFH0YODDNQGBPnetKAsPMNUoPC1WDF57qlxMpwe58i23hGPZGRQ1HmaTPGBjnugx9+mTWZDdbZlIW1fjaFNQqI3BxMqR0tnaddbdokhZYGanXBzYrXYqjICRWbBl7HObGegyGukNooFD8bEvQUXdYwI2sxmV5U39jdZQnMCciZIB3iMnV8VAs/FdOoaH5yH0Y4hMVPzNZkoiRwrI2EAEAuuZkYjmoQbgaOssiHa2WCIuTTWNkBGvIN7YdAA03XXh+uXq0fGZa3fzoTxrgK8NWdgCUJVsH/1FIllW66xtrkpyxX89RVK3cW0ZUfmmep1wzci/04/pFUVxUkTY7WvFEF2+Tnr7p8zmPUWNdv15b/RC/+CR5zMqG6T26ZRYpv78vNmIQKQWer1vrMW4zyFXooOtGE251yu85Wt9UKxM4wYfbUi6LA3u0oAAD7GKsoEMvSmUWoTP6nunfAWOrfbe2ZS/mnAK5mBq4ALrIk1+Kgm3cBAAyF2+NEUzfzwabi0KpE7esfeF9quCEeALAkE6X/WGvB7NQq3IymtaCowtiSJbt27kmMqby3CmqvqZNVD1h4SFRL1oWeuiHnkCjAzkT0Eji2RaAGgBPVsLowyUmjfvf5zUVjlIXLdW2r0+DtbicTANRnSE23p2KMpxYZgTi77v0cuHBlbcW9eaKUMNrqvV3z7yISFWdWJ2PTNKiR4Q1eWs2y1cZLZxiE1CAL0rPJ1oQacb8BnYa3zfmrkvheRxNiYvyJLtAXY1bFgO2VcsKHuxjYG96rUQAAkWw9nUaoJCkHuMJxy9W/veoz11r95bh0AxeOS0tyIYy6bbwAgBEFlmgKVky0ROFaFE0mTmiKyT0AYAeZFSalbvHjg2rcmmdxJg/sjUMwE48OMbXUDlo6es8dHmOLfOzfPiOVRVc2bLgONacTRxBQEzQhioWRtq17qSRVjQxQk9sGzdxcmQCwgZBjqkNDCYJsICMicJd7kUxchQ3MPn7YZTR0y9tp5QkpxL/p7A8gxBC/M3X+Uz36UyFDs8tNYxReSO/dSTzVoXXabqHFsIEppQAAA7RUN4o14C40O362LgtojRUbaEFHSVpQJV4AwMDURbugs4nDHX3JPQCgU5YaJsWSP6LpZU6CCMXXDVccINfTd1iBR3AfaPZvfE3q+d9oJu9IdvLfP5/JT+0LvKCj/6u6f/2/7cfxeKSrRZnQqFkTAABEhRm2RqGJHdRSDbiFXrMjXgTg2E8VplUpGP9M5Ty3m/N7XjeOpCmefWb9Yj/3iT6vMpMDAMBoXdxSWhk9iYP/dw2rzyY90wIAjNE3lct1KWDQlzTgzBtdx1peiYmptbxWTaRm2VXsjYIy/vPqtkJBmswPHL3a5/P1K8xD8BstJ6hP9XkYIbxTaMl52pkUAKCKRau4oYchioNuFEeAm9Y7SzeyZ64v4y0NC4PRIln2HG9rMKpnAgjTxPwuALBDu7iq6DiXlgg9mUjQwHPxAAAX6kgX7htkN5WgiqpNLi5GGQu4WF1KxNWp7wjXpQkkUKuHdbVnD9h5yBZsZ2J7A5CyCGgYoGKx0Vy+m35z0Ri1Agdd23QE8no7mQBA30I0tz3lZPFohRFwpo1lkgMXWMtVZDWmoiXU1EZCAGCqyq+XsHYNHNN4PrmYQTPI98H4QsvZ8MH49rwLOQixoXoyVTGZ8/NuqMkFuKCWh+WWYkp86M0l1csM40BFs/vH1emc8PIzKrnH1SgAgJJD5dSzk9NR6YBqpq6Kzzxz5V8f2r2SwRjaPa3pGLYoAGncBQCwDU2BnGiaZaDlVKqxKtF9gvu/LyluiAcAvJJp6S5WJw9z1huKUZre1W6UrKwhdrqZvCQXao5JhQVmp3jdrkJovOIUiv9tFISOJRRL80KfvlQJxb2CXpoonOaurhLBCuczwmrXnHBp1GhMwl/aHKNw645t9QyeqrSdTAAQuiG1uz0Vt/HUvq5B8Qo4NFtxZ4mcIiZqKAQAeJWmnC5WxdkM0lQzagZp69kig/TqEDIuu6LMRzLTfz5Y4ew41ZUaYkNLdWk52sTQ/qAgFq4cMh2lRAoAoHUOxx9t5McgpXZJwFvRoK7uRnZUebMamau7uDLHM+W3U82qm1YxJuqeGV4AYIBuxUV1QVsrnjOWeFLdtxpOIR4AGC2Sxc8uoFAWYVhzCpVMi3xcXBtZDweqlkJDs+yKPRS8Xx/JMQ7YFsE7hJZdexr8sBrceKL6aEkCaEGF4RKibT8VSjL6rm+s7HakO6tQJgCUFgmMOjpY2cFVX1sCxe7I1dhhQ/0FiHeIBRq8KCO6kNA/F+iTWh9AtCGeT93zhieZP9ZDzHQJlcKRhgT9aUEPI4YzxbfeN1YpBQBYFeKPxntgkFKpBtyF5jJoBEocGIBwGqBLvABAgIqLKkOfe+ozn1jcwmI8ABBAFRAWBHMGNB8XGDHV4ITvfSfiPWsN/45fWI3ncyqNFwWir59qBm8ovsfdv/7sun94ZJZw8yjECbv6TcvsKUK/06/VBAAwO3O32/CQ4E0BA5rzXvbUPX4a2H2oqSpzHYWyd7/JDWU3k+LMWowH7xS8SLSW55+u+WvqqJ8Yk74qu+ms5aP152UPyo6y7eqAHFu3oOFtUzQktPLlJwcnJbiGAJC9nptQVJ8KXtxU5o0aEzEzqh33Rkr9xc9jwFezGy0Kir5+qQVnMLGfzDYie1R2lp0N58lIT4Bix6QrbN7TP4TI4O/IAQCGgMS4wFjG12RskTzuorLmpmD28Xi9zSwAgIqQxqW7aM/2y8lIWqzJ1Hn56PdLm3qhCuKFSjsv1MeDGx9vqSLglK8ruBMmiI8OdDqsrBC8llbqyTd2c8DeoCFXTRFv0oMWqC71eQ8X65e/zZrmPAkJ1qphUAfyyaz1xbYet5nD0jBq5jOCrnBDODrbz4kzd5RIMmIKJkuE0cJU+C1JQZCwv79I4kXwU2vKckf2FnyOVENBn8sN68mCOphY2qkS1xOQTYRmJIcj1QpUd6/T0frlmpFMnaBJelpg1AdlcFRNzG/XsDxfhawUd3Cy371i9TKi+u7yLAeLEKVuRgEAJGfghWII0Lg2eSAixBodUExxD3w2w/zbNtW4AYyVd3LtojDjwTvVr0dbdbETE3mqJnm3hgX0NWuMuH+0SW9ZEa1ewm6uJ+lqtjXZ7YSEdg0tqYWaxEyblyO40+XbZM+rgTVWmqng0K0N4z50JWxGOKfDJU5zwuUzAJ8NpRbKGm3fBQC0kUZz+RFnTyvaOv3Wk7GoSzRve6PimeiGeADA8s7ylQJY/wk30IkUdt+NTLPD3EKheDey4g0SAYXm3Si3a/RNH3HGfCOzh1CkeKEJZPAJqywvYmpSQLlWZeIUnuTjA3HhSdNKOCnZf1KonrTNFzPEk27qtrPHwJ2GMgFgQDChQd0jg0xrBFcLmmH+W8/Raiu78xiftM1mQgDA5XI3giy2ifMUNNg1M+NAwwrPHi80JBjEpKBVpstsR5SMshVnlyDLbeV5HIIALX4998nqEH0LJ0Gyxv+d2LgqWLFBdSGqVxemllRLh9qQAgBQEL2tpwd7JbnvFNUBRe4bRsisrLm5gJUZBMASLwCwoGKiA+jpYI8l7ideHKzkHgDQpG8PlKKin6mg72AFzRXw0lEIxntE904I+U4woTvp6TthhxMDU4xwXruL3Qdc0pnIxgA7wwhcmUP7qF3G5lpQe4zRdaCua7fdhXtsKBMA3AJda1DNZuDaukETUCphKGGd6Ux1evaGKBUCAA1WiNu/5Do4QaaHVtQJLLLHTtjxg50weTLQ08VVeENGuIffsAveL/3NK9JJ/9ez+s63uXVfDlAsMdwASykAAIEJDR1dsChIwolAAsrNLTiZQQAp8QIAjdrTorkDJ5+43NLFeABAYAsgg8WcAsnHC6h+14Fm8AJHCoDF6U672F3Gnj2J89iZTuyNb5KygsCzqs6BEmyjAyUYV0tXprbrtBq4UCYAUIsGjFo6WLnB1tKeCgW3NxPfkb2N74WyUH8otgj8K/Zhj2zF+xTuT+mBAJGu+M0dAJNCD1hetJ0+vwf1EYlyxf93aph1XseVhieGC0ApBQAAEKlewIpAAMzNDZjMYAMu8QIABU5UdGrWtzD5xAFrNh4AEMGSP6LBBc2GRq+DCMU6SPm+gPg1bf1nz2LCf6f+2Vs/78ag1gb+8eWwPw7YbHv/8H2768E3qoPIBxMNfN52UlagKvOhxzMmAMAsi6nmhmkaZ0cOLlgQgNywS1htuyd+9tCja32AYkHj06p6kh6GP3ys2xcONHCwz3+zBwT/UPh+qE62L9pLV/PsxJG92ZkihYZfaZsyjemKsFStCNcRM03WMluF3T+pi1016hs8Na/JAgAQ3BNvXFBJN82VXAu5dErTXfpSHpZrW1VsSOW6N7aX0TvEkl/G0niXVeWb+GXcGpSyOJPn+ED8uSoQHJ2ipx97AiY7P+4eTSmmS1M4vWLBWgVMKmrEhDUH6NKMAgC4CghHT89002+EGOuA0hmP/56JimuuXo4RSG2toKoAuyDl0zLY2cpOACCgOdrmcqKFigpqstW1iY4n3NVV76Z4AGAaV5v/ue6zJLketTmNmyqMZ4dh8kNJq71PcBfq+wZ3pQvc4WwzL9zgLOoTcYsz5AQ64Iw4m044Y86oM85M7bYuXJ3bUCYAVDHQSaH28Gk6VQ72MuieEooPStlYzyw3EwIAloCDDVz6GlaQEszKzGx5hzJMswWevTXQLJZBbBe0F3aTHXjuz7R/mIodlyrnpwCcYeUFHoK9hfr7up+YStr4YgXGGn89579bGWszTYeooS5M1f5lDrUpBQCggDB6eqbrqSDEiAFKtT6J3zf7wmRlzc0RNdcL8g7SFXUBAIETEV2Q2umENZa4CYey7phLxAMA+9t3Bxm5rCN7G9vkQuZO46cTdDBuGkI62PIdoIPr9RQs32KFk4skWGHpRSIY3kXe/mWFCKkrkSpLbtseMBXInTHCpi8c7aROo6nL5dEXc5L72LFtrnm70WgmEwDUh2f6zKn3eLuZUbYi8O1gUiJwW9NiZTbx7Z1QaUIA4Jzu76ACXNMMvRMyzJRzPA52nK2DE0HoIMbmvCBcr/DsNhgeKruE6Ca9+TCOx1bcy/6JEcNB7VwKAKADINWDchXIAzo3Z4ATgzyUZnUBAB8IWUSQ+USBU4oHAKbb9mHhCKAGEzY7BXX34pOPBZZ8N9gMHpBCYHmSwJx2kbuslrYEr00kjyfdyn8TmJyYJhtvEL4KLbaX2mQlY0Grye0JdxSLZQJAgcWpReMVBNum54/BJUSgJMdOd+Uy3c8nfh3zeG3D5pTKBh7Niu8UFEjigQDRrfjNPQGzT7aXgmubMoh2uhLZiv+0Ezhfcuu+XitoMWxgSikAwAIdqTc7CS1QDLhiBVhQuTmByAwuwKIuALBgR0W99zgLkU8kmNl4ACAHRgAV4CNnDlw2Jo1PvgssBjcI9h985ZvABYfnoodcHhVek7btOXFqV/NfJQIfUkYCwBwncOVBy8o4AwexU+KahxAUTJy5v0wkKnf0cwvRL+RCcbqn7X2HtUneuQlw4Dd6B58qQphqyIoCpsLnByyELHxcBqv3m9k1DSt35wgtp0VCshxeQY2L7x4fH7lYW8GiNNMGY8WOhG/9+kNCPwrM4wjaXltrusfwlyLw+3m6Rd0/rdG0dEtsjIvJKA2uxet6UZJx/9uGvRMcOs0p3XpvVHWnQTCE2M0i9G2wLDXYDHj++JYGXxuEKiaC2MzeAAANlJi5P6zI4p1FpckaVAX58wW1yjILABAdJVnS23bWp3/zXvPTgAzO3OmA0AnExPD5ApI+NHl2znku8VcEnhrgsCfWZqPqZhyExJpsGlnZbTrFApuUwIEAsd5871J6mSZocc3eWnPbrJYVRpH7k2bQS33f2RBtOfsU7uBuCVsBIAEObjDvzhnnLcfmOwmBsH/+Nj44tSsQDdr3hmxakH+dVlZvcLJuzERhN3O6AEAHUguiXB276gTKJabr3OIgS3sAAC/KEwVK4USJVmUqv3m0oBw2L4JddVITjO0EM+kwNzJwZ8EcDHefH0bW+M8JpsD+MgfBVlic9Kol5OBqOWYUy3a0ouBoJyXajnamROPRzia/fbRbni0TAFxcnSGrtu2lJgcN2jROVcLpKce7RZ1EIQDQs2exNMNy2HIFW3Rmmb1oR+NQU2SfDvFqCAgaTZOleSZNF6inksNAYZU3h4kl+H6sGeLWlhOxE8BvMlcAeJwxz4TzK/0DKAp85VVf63Nszs9qHBn0NZ1JXQBAUgmifNDEQLeHHEssGa8dRHIPALiMKhwohY1LOtpZfkUFzQahvIMJw5dWH9ZiYp8T0EHgExLATx8sFnT49ylXhEZ4aXlLWBF2PlGs3IkkICv3rGQjK/euZCQro5TdFjcNsFgmAIiWU6walpzNDwayJMqcAm6fvaHH9y67ycbwgjmud4YADohl5tJGfSdElO3zAzeCqGjbHORImT2Vh0OfTLb7Gfoi6MT95+gchWniVgBIKIgbzLtz6s/cyygLFoEFdG4uIDODBaioCwAUSFlkkPlEc8sU4wEAgCN6CIY3QePjY4OVfQiI4L3+dTuogOL+4orgCi8tvQsrQsknipXbIwnIyp2TbGTlnpOMZOU+Z7fJTaNVLBMARMs0q4Ylc/nBQKZEmVV4djc0c9Tm4/QM0UzXvKOj7knsCgCJT5Em5wCi8PF8jRDKkLQ2bg0R3G8ZPYrAJ6ErACRoxhnz9OvfI/0XpSqQB1RuzgAmBnkozuoCAD4Qskgg8onilhTjAYAGI3oAOmw2+YYsXDYWjS/7YLDD6yVXH88iw/9VVB9faeRxgWQ4h+fuo093U3zduMHrMYS9tVGHHp+tXf/4s/66Qc64BAjnCugH85mL+mbOpz9eyEsGCP/o1dV168ARv/RTTB+WrvkfhZzVm5P1+S2Aevi7yk9nxi+u4Y0jHsDy1WXbb0mK57MC6ZFuzre1vHm86pnW0ff5zL6h8a1RzGxpq0HWReckhAEehKlDSaCz640XRBhHObRGfLWH+9iZv+xZPk8jbqJSBD7B26fBxvL+CWYIZbSlr5q2cgAImt8MEMHl5cUs3pt/YLno3Ja+rxDjBfqsA9WdO/UfHgm9U0AScdECIpPQcUfsaawQIbaClNUixHRVf5VNsX3vltT6Rryzw5PAR0hjG2zFSNwjy78vGlcmFIfi/7RtDouCcOi9AeVJF41iZXmDwhnIa2SChm7i5DSe6atTo1A9RLIMRxvdS8ti82Kptv8oLWCokHi2PVWCLPOsMrtn7LBcJO8h4qL8uHFqFFmZlJsIjbKY73pz4dgvfeqzqC9fFjZmsT3PMr96oBEo8Dw7Z+NssR5aHRiECe1z26Ttnba07UYOxE+KtcKeo5b2h8flrlZ1rMPWxPBLNCGIZvZDpnnOrQH+iJx9SsIW/hErAnMZQkMeYgFiRLc8efXqp6io7hY//4TQObMM+ouARU+PE42pkK1aNs4kNZrjNAE5iyONEvw4k0XZJ4iSjmEzGFvzY4PTVy+wOk/jnQgwkuiRtICGRXx1THpWh9H5JwGxr1xaO6Dv3P8vQCzvMT/YnmHQGLFt0S1baAQeUJmMyCof5+BCBtejn1KMd3HDSBs9zs/JU1MAPstiWsggKtS0jm+1XOQu4I67BMhoa1N9d4HwhtF1JolZbcvyIZz29HMjpZ0HaYqmde/e3/cQt+E8GpZYfDWUvGLiHEGcBYOR0InVd+oxYVAnHWGqXHgThUBWGX0jhRBkafUO0z5VXf0ifQew0WQdTAUEZFvyMgrxEyk7lFmvoGNl2kI5aMOWv4yadUNeOBaNMclWwZS4bTqq9NU70aG0KbkVJd87qcMvTsjs5tIK0F+h+khp+3nAs2LdkIZZ7/NWbeOwSIbiOSgAkRNqI9syb+CTO4z7ltVFMQNI5ihmkPvlAMyexhwsvpkOgbOuEnBqoLSOoNoGwnKQZDF/tQD6hhrOmknWhZWFN35TV6CxcnYlWx9yvdk5at/aF7Mufav6pfyIHW70cETC+6mJO3b2XVdZbDT+4RzR4q7IIbUjP4snYAc+qxArLlgKXbwftR5Fo6ism4Q+eMsNiKRDq+pb0UmGyXM7vPdf4HtZjhUysUu+4Ufrpo/xN3o77Wm/C0v0tbC+SNKf2T4lvqbjpZuguHRQ/0LPCQ5sfNakWV00E5rz5zD/VwkxX5vqwB+WRgqpsC3exU7KgQ9LMjquAtRPtaGvK/N+L37YhHQobzG4UVtQqwwZqdC971msnIDuJavsfU80OJ/jsQhFOeeTePFV5bSEDulR2ZY8IVQ5EA/4PZK76HPdBrM0BaM4AnIjZvuOR2vU+OFL2+piR2aEiztG/bOhs4epqW/mGSDmnsDx64LK0PJArgnvAyB06xpQUizS3Op4ojUllGHhW68urdC6kveybQ5baYyIs3R509neBiXY1W3FHsvdgfUoI4h24QxYxvowtHOvfQkM4+6elTnIg9SLBACHvii1xyar3rfmcwtZ+IwMOTATpTcbCm/CMI+OAUfflfcbM74EcJv1PLJvuJSQGxXbFrJvXmgGmAKK/48WW8xC0mDEFZDFDmDDBgDRHhkm0H/NvGo4/1C4fg84/ptLLBfHTThzNzQclA+hMFHOvE1RUM+QdfU9O+824H37x0DyAwK6OjRScgDGXmVdb00UMSgczbDUfWKQ1cRoV0ei1TsrQ3G9j1LztOUSPMeWdypDn/lkgoG5cENiHVRgBscLJJAd5DMIzDmYnpjoZ6R40TclwMuB9SNPxZjonFUuA4QbB3qrPVQSjyKPUVC2a+VGH6c8clSJWDHt/BKMGwLuqiBFRbC3JpjbXclPl6dvpjjNY7O8dwohvhbuz+JAYMC12kHQ13JyXW6dUrLt014rMOyKwWvX5y/0nu07rg+P1PMwzxCt4lK3oZhzoDQG+lRcM+QAROm7EC5AYz7Oc9WW9ua9B+0qXI8qC2dTbduiPW4iSoXqEjZa5DSgUHenkagUzpl01n1DO9bBKX9WtjNWHYx0pcQvi+OwVViXv3EDM+MDkzwRtlD4sHVZWh1hYanDLOWGNM5OZZHX5qNThMczn2MDD9JNJCqGcx6hDG3xFpeODwFE1LuGMEV688CcmYYadrNT0G4W/6+Ub+zvjAyMeTrqaJDqplCQBvouYJy5rSzXWAnZKNdhWxD1kZlS10bwJxtGdq7EaHBQOGUW+sO/QRUf33XAt7scJsOA4YoB4DJAbwLqxiR+ooiA4mHYqPEKBqkyHBTrRt5716Ezqj/LJt/qiYlMr9XFe/hCFOCbbnz7/5OXy/7v/WYSYm32/Y31eKLfMx7YtaFMbkXv3SuK3n1cv5V51Q2j8AW2LzD1X9OwQftuaxk2Z4xOFno+9Eghp/dD1rpVwUUw5R5uNHsMG/JwVWZP/xdC5tTtVmW29f8IZA69u1Pm3hg0X6T7AuUW6pWUNBY+rmmkBQP92TcThwZ9GTthaHAMzP1SEJDX4iXFEtasQ8Xyqm2l7vCvPJy/f1SexQlKwTsJXd+8liyiAsImCVu1w7VC9wYhkdC5PVFm7MiLuU3AGQOsYvgZZ750SPnXYUOJ1r3hXGKwcMa+RFtvfQYASMzmbijh1hslJW5uF0EOHAdf/O1AaR34Nq0LRP5+srV/FnDO9utyH6fJcPzZRthYu3+6BX1Mo+lu9ZnCjiapu3MG9Zd5x+LUtnCXS2lL7/5e8fkW5AWLghVy6UieDcm8ieS/KO01cQefBNXAvCr+/Erltx9ZPM3n4CNDX3iy1o+edIxKR10xkFGBy/tgN16HATd354Ntvc4Crrj7GbBvFEHhde990IkrYNFWOx907RWwKMVu/2Egv3Nbu4tRD0zgOSRgo7dkjQI3eYU3Vu/cWgVuZiZsX5GI0RjvYG8rC/5by9wBMOzi6GQiMN+LsPzNR1idsnMDxVKvHwUST7fWBW06vQdC2p6l1OUujiqg7isi75agyG1chJErBroNN3x1pSi+7hVO/VkzFNvkyPpHseqaPRsqhmXyD86iR2R1ETnkUDXAb/ahKIDwvnQ2JnSuKf0kq6frGo6tinxL+M1NZ2nz/S892jZTQV1I8XQQbdPgxUQo0dleRNAdGbOkRv/pqjcN7tX5gs0BJab19dmZRV52FwXQ2f5PpL7qBlmVz7AgOkW/EwoJ9T5phszVSWJz+zeMJg1X1TqA7aEj1zVCKaw6Q2m5ZmFnTh70ZkCp+LMdn7GDexKtffYaiGAKp3F9wTMXnyVEO+vxGLqkKz1zDIz1cZoWg3h6K/Wz2zCPDdEFBVLyrDkXvyH3mWYgyut3p2ngb1AvhL6PYb2jn3iLiDW0F6dEIGgBh95nKIXWhEZf9/OuyWeL+go7Db29szLNCiIQ4Pg8MvdK8aW58hT81DxB9NGhmMmfbye0Vjq1V5FXobd0GwsKa3vdQoRJ/elfr5sD7Lec3tnv0WLHAWP1hQOgIBY0VfH7cIGLTKH3QkhUwl/1prK7dZ9KwKvojJHoCswqB9g261c2Wf1KVmufZ732p6zYPm7NvgxuROpniTTOzuisi7a7ePQCtn5vmc3fG9v+/bELwE/vCvBhl0B/RYKGIIc8/+IrsXRmEGFyrATdRSjFpS2qKG+oZspKLAYTZlc4kYiZ4L0/ifvV5u7tKgLupJKUUMN4Qr9rDA62qbV/bO/fvOu4u1soIUGoiSzbZt9PnUVT6i4X+NfgXnMlLRbSJnxra3/TCeN9nJFYthMfiiZQXUfUR+5MeKv2tRVxyyeXzmxSDkirrlIswaW1Xg+W8ok6qwn3Sg89hIDSMJJJ8cyu5kIeNsxaC/l1HMJ5LhlXnU5Kbu2i4dmjgcSUQz/QI9kM96HKMZgEpasGSicb7RrNWVsZ7UGT4nMT7r/KXQPcOUbRsZrzzILO7McWf0+njRpLZYKJwXqpO8/47edBDVtdXmsJyoo1N0omdrbcBowl1Rx2Ae2vmE7e+U45wRh2Gk4kmrvcTIotZxmd6+ydgSPPyhlncr++8/kM2rn3oS43W6LOYqL43KlTGnNfhoZHgamydDvpqfSGhd1Erxm6ioki/pQS9cubOVb2tYQWli3hdXv82KMUgC1xLPRasrcpFkyWjeJTMQnMHBlT7XLaCaAcfW7ThabAcG7v2SbltiRfMorVJ6NY3q6MKK6GgZkoLVFQwJps9pQ07UkKLQNbIuVeSyartBTxqJp4kdUSMYPciqmWGMunlvAckHGmgmQk6f6jnAnvTLmmwjGXVOyaE48nuyhXVORzQcUpKN/aF3NOJt4lf4ZJbMi2xDhacjYFGb5ZnC/K7Jv24q7qs22qQg2ynkHTpAA+S4iCFriMhXyj7GqrTYMTx83nsbr42nEBftX4e9OxdtE1xdcubHqWvbb+N+WVdItWCV/RK7VlfwkZmxuzuIRfppbY4M1xzev1HJL8zU/ngyH8ygQhNrEOhMKeRqbWNpeYB5imXCiTBSQkCV19Qzx0w4MSAWxJyT/r8pdEzy7edayZ8hitYMScX3OW7pM5BYYF75X3z21CsLTFE6rlQwwG5XI4sSTTCOv6mqewGvEbX9wHanzjcfFZNvIn4Y3pecv6wWsCp8BKwetskosegcg6wOueF3NOCF7/43xoR8m6vusefnk6m7Ie5NQLGl4bfKlRURRo/BZvo1aAh2nFMo3bDYgPqTC3LnqFRamDbiszwVu9TGolOe/XsIc4TlCOoGujF8eF4266/SUya/plKZ4OyXZUeZcSKIRH9gPOcULKypRgnGfMRcAX8OdxA3+mFmfWotduXZ/1Ze0/aSrnN5q8SfZPenMTH5F/mbuyJ6s6/T6/t4ddzI2LdNvPubteRd0Hnri+TiNGEfQd5DVkC1yGqqpyNJU8OiOdGL9l1+WMTLh9qmX6SENCI/iixPe9BQDzF0E0KLMdUMQuwQxjlvwyakEQkK85cs2iny+KgAg1MciC2pSqTrx4FQoEwGF5/6BIPgJFseAgVi08nQfQT5feKaF1hr1Seiitmy3u9632dd+GrH7h9r1NkEC4pkzZKardxOZUl7k+aQaTM5fQTNtMlNXMNNcySyypF4jK+mFrnqhy7Af+GjOBGE8sWbliTRUcuCOX48MKzfM2AlCBGAF8mHH6tdzGJibTvlOU1cxTXMs8RtmlTZpRfxCmUeGO0QasInacnWYmOAagMuFqtJxsfAQpTu2GU7wlsKuXN6PhM/MCIwiqEG+U2E2T3pXUnuWSYP8QUqk1zy8aAL4MhszAAsDPiNLJsTEMuMRVKFZVRtF5AP2fLwDVCMPZaVqGAaFQ/B65EQzNxBWq1D7Y/XN6orJm8PWwuwF6xWBqzfOzAUAZG5GYJM0YeIltIyMz1Wo0oCm131kMth2iF6bmoi0v29Hxc5mm302QqGuP2uhPMkZ8qvikxyTpP9jvT3kSETbS2/KUdX7s8vU9/LxOcr4ZQND+JfyUSBaHEF9AXU/aalnoWhHdJdqfq7LxqTjw5akAZ1cZf3VxYgDh7Bg/fioXz5sQQHFiKvhWJJFfmniVZtM+GFSAqqEadVyIARqu0ccJqF+NxsG+Qc1GSSAu3u1S6v4+ILW9eiAkS43JCWFnMtDriB/op2fgr5diB9l8j7ryIZ11xtWaqbYbvy2Wso3XH2lrxqnbTvhE3cLzZtWrTPCktV5Vl6KWz38HFnygZ0c15NGxhg7KeCsxYDAs7gJNa/pWykDRydOenVQ7MDCxglrYOcKRMb2KfQva1zr2LKXG69hVwIudEY6Ep27y2di0ZylViKEaQVopkzXU5a0BuVN0jFqzlGoDXnyYODEBV3b+cGw+HrrotlXQis1aqp1mVRkLT5zgtGgGODGsANXvBV4nMFM9X/svSMGGtGV/xaHJSkNKk3xkm/Vmj18BwhDYa57v0dj4g/EwDPsLd8HZPrCGfi9AGDjbMDfNLX4J5RMbPIEt7XAZMo8cQI9/1GrZxhuPO+l7TPCFdnV1WF78PWcSuM575uC6c1qEGmDFjv3IGSy8LwQHi5YnslltqhPGHxfODDwNUSTNxM6O0wbFTphonFY/o3h2sVayc1dyawwXybUFNquPv3j+uMpww1crjoNIGnjj6hfPLp6ZNjRWYBLOnV3d6hcHYgzfYMXj7ISbeJydHWdXP7tAnJ1mJ6yEFkloRDwIBeBmmtP34aftFy+xx0nzBvHq5c8oiD/Iilc5fwBUsLXOlT4LnbdH7Z29chgyUo4bM7y07VbK99bWV/faLkgWjasLLhtUkscISn1+yuwmPnT2aArbioUVnS/+UYIiA3XXaGoJYNA7MSEO9Mn8oFrw9iZFTuf0pyc26XfVfGlxxffNfooVMfvW89XLLy8xog36HBOqgdg+QvSQqYf7vPInvdkR8yXGqDm/OqQPlKeMwD5UlPTtsMVH+JEMGXF+iRspKhPtV9GAP1JVxI8kEC9iYAorH0nLv6DhXvLG00oHBfJxKPRfaVkKjg6skyYyxds1mQSOVpKjw2p8Ln76Er4ESrIEYzonGvNILEJfvXKaTwgioV9Vq8AOvupzGHkkiWpJ4Jcj/FUsQ+8b4tODccWQHbvZrHL4GLQ+J7q6MEkyGUlhgioBBUlckLsSG4OqmUB2vbWCxbqiSm9MnbGykxyBCaQEcQvVmfAI3BR5/UcL9pZP2uPwMx9htEAgMOB5/uRa2pSZ+0dLbOVC4rD5FTieFImG5kXGh8zx7Eh9FdXwkAvmNMkW08oCPxAFKsHPbvbcSdf0SZpB6Z9EqfMoWwVablrFGkKf9filx2KW5MpkOHZSimXUNwcmRw1cpJsx+PSTw7NRjsLtZm9WvzkAkXaDq9Z7FuUOPlF1auBCxdNOXUVv8AgAWOUMGd8VyvV+gnOs5N8oh8F3bH1xynp+ibdvZdhPRj3Z2Q0jR8szntdd2rB2jtHoT8lfN9HbXfq3v+MPnCnRmtHzevX18pUMchJE/c/2b/eRx1dm2itm2v2VafdUv9qeRUGyzgve18SST2Hurc8AAIrVNaS0JwmXtKqJ9bU9HNsbRyD4Ea+R9di80fkzNuKnbXSn22j8jX0H3XjaPVP1mCVCunsp5BZYNhLeLXDEPVJTg8BUCTuj5Pgu8lJEf1tuj0+qKP2R3nKlqHRkv0PbckOYop8j7WkJw9W+ogUyCQ8GNK8QmCe7exY9eF3lnAGwYuhW7wYWN6IBALodbA5v3eudQJKNv0YUJzzKvqIIcsHaEraf80qQ8BvCq03fIugUAZziBJqiIpjHMNbbpbH6zpTBJzRcfabM9SBXEXsctBmfhKYRTQ2ixqAqo30vPb8pqsT6Bd2BvUXWr5fc8tN0KRnn7rpoLz9tZ4kZKykQEDBzBlfE5pGmMn7nC1a25PqmVRIj16kZY58LS+1dEB//p5NLJ8Efe0Fpkr666zJZYFpTgqVTC9LP4qCnE99Utw02jwZ6K9+YU81MAx7L8iWXMDgL24t3wNibQlDswuWUXYqmS56Flxo2DFLe8yZb/jIMXsxL+TTMY9dSdMaDwIulZl4N25biduCF6YnzToEb363cDTq7hZZMfSem0qibyQlm7hyFeEuZyYHn5A/FkyIHxRDMditEB8TRJycsE865COWfYEr8J5/TdPZJzZytUYRW20BRfIcyVG1i70qbepETwPDdg0E5O7AbuC/AaCR8eX4JmHHWgLdKOO7INkd07QLHoG2hoHHyNIe3BjknUy4pKryiDZ3HVdpmTa+XH4tw70AnCx8yhqV9uZpyWjxJimlSB6/AnMbBTn4qi+ZFywCwTYTDVkTgTWS/ZyJos5o70IeDlCV8okgNYe+cV8z9cz3ac946iwF1qqmsGuD1cPNlp1Ti7zW4zJoWeeHHvvm2uWlBgZSwzl1XwYrlJlEOfZB5KyLlIXlqmS9gMz/nXRiipbnc3JwyA7P2uHR8YFH8tiNJ7F63lnCe6AMjd7tioiiAAyqBQj+k0Nnq66aefjI3dim0ykTld6D5c8yOGSf9YaGPFRukT+5RS7+PmTamz43fx7u2pc/G71N3m9fn4Pelp3Xrm8HvC9Ga9s0Rv/kUQYJ3Cc4v5nd71GQfkRoB4lavWvlUA6P7njFi6aPGG3E6sonhhHpc6EiDDZOHmGkzSQetb4yf+8wbS1rEDSSd3E7JY0r3wfv1tJty0T9fK9EF0r9Z67BLqPEiKqdKsQvNeexIRf9MC52lBm53CxoAwFohCB+bJNf1xsURRMXgZqbWG5ElOvNyM1B2qoN9SofIXnXtTE1DyZ3tkt0yPYWECgcR1x9UH0KmjYFkfAh3bQukw4fY3eZBLnzIPa0bNIUPmWhNoQF39Dlxt/ibv1/15q9lD2su1W5huy1ntTf2wTFoOcP5FG54y1Hdzz7Ph5+4wRYyY4bWtSP3Mj10hcdn+6MAxBT3M54mf7b5swHwgAf/NLS1ufF8FR3XFktrLW6+FHb2iJKlxRk1UEFz1xqj3SlJmv2Th3CXOkfqDGZX//9Tom5m5UMA7NNN7Qlg7wuUSkNLqrKCQLC7CebggcL2hAAA3oKgk32IMSACtP6pHYhzajtU23j2tbnYOTyHNsgHQrHG0s1yoK6o/WvOQI1JW98+Ym2GvW9Ivj7cwTd80Xu3+NqzFLgO6PgszpAOsgsaovWeaFAFu3pxQoC2b2sUMkvr+63B4aqlnfmdj9NUwfk+j1eTi66bOM7fXl9vNQeYpeX+bvYR1dIO/1EbAFA3rq7qVs3gtY2RH5tXlX8j8PNFYB6jdrOZxd4s+i7Hm2ZF13ww1qz8zVt2detaQaDhrHKhgtl5qUeseE6EqF6lxLKGO9Ve7RMauA2LKmzHVCeIi0LCLl6dPHHxAlStnFHLJxBxUQTieHkBXFQvWAQh4pu7zsGZ/F6tCyqXIMTfUm76Oqtz+buX8VZ/V1su+gMMR82GrEajbIyV22eJd5U6Ql9KvCduWnNptZsofgV/0QHf2CG57lp9YxcCT/YIvIIgu61BXBC007YgGwi6a/OQWzxM2dhdCQ+DMrUHQ6zmu01gxnxIerC8JOJHxGLwNz8FWK3/Wj/JV7ei5asfI7lURUurkPIVxo+VzwtVzSlYU98N2HFJspj+yaF/AOq+DYHkqGNy+GGr0iE5Lz5+XIzEFoC1Znfrwbchro5KH/6qRDJZhOD6yWjX6rlCOsgNbveCemhArd56p478XsIWt3cEAO4s2F6+12uwM+ejPkHr0wd8d+qB8gaB1Sxlb4YmXoP2wSJf9WPUxWkm+tsj79+YQjqwtHTMtMFEzNC3/z+U3SUOZPHsfeah65rZl9n4KDuX2rdQa69bZ6rk8lcJTmmRCC1wV20+cQCu0FUhVGAwUym/UfMdruoj8sRY6+L+lCSIANoUp00ldAdpD5cs1FfzqLh5VThYEYjIO9lwM4vc8x0BwJTaTp3u9Q4W7f5RHJkAz3Xh+Qz4zcOVRd3a6VmF9L1jeryDmOtr4eYAhnVc2ud1vGGP7depdwsaAFAnMawLzgquyyoICO7eYjSsrw3D9K9szyR3Owa9razo9/j0qJgtZo10F45KKYg8KuKJvHQ4ro+BI8kkH00CaUcTtbm/hO3ht/2JR1nRbJ/QH36v6d9N0+PS+/An8YfYjg4sObvEgiIkmaU00aCdlXVM+ANWaBvOdPQhjlNj4A7RMceclzPRMT2k5Iycf3Hmo7CeIf6gLx6nzXqWsVqRzHZN4n2XzZw5LW4LZ7o6b4sB654R5vHBn2VqgQKJq9wZgZNmIVcBFzAyN6C/1usuqKrlhzZ5Jyg8lH4JqgZ/zfpOFJCi7BgNK/jXjY6mcpPMeihr2NvGqE+IT8Bxz/o3Pkv8fzHz3mksUwKvaoRNjiHtJIAwuibNn1o9eOLZaJJrXEri0zUHBCWX5vvvbscnqxZfxL21J/ebAz8g2r2t7tBPgvycmL/O+Eryc9jb+oT55+aP/f7nSsYLfZkO9rcfULLUHnoRn9zeNnvzybW8/LkCaM/8YMnnxRFg9ZdTA9WT+ccp5yBWj96FNL81HMr8vrosYraKrW+N6rGqH5Zgq43Clsi/1myRM7zwurpVzri+lqFdUFth12Z4UIaqqY3YNMeQqDaRLQ2mM5Bgoe1zdh3EcraCAQBso2YmkGyvpCZjgbJCLY4/bDCkDrdTX5PIwfV5UwPlwhr2aSFyy9qd6UDTO9bLMHuC081C9gjOwMicD9yScbkzsJ02z1XDD7lQwZitYzQZuGjFGjQT69fo/Df60p3JcXAbNtV9+QvlqmucgsUVu5iYaZat5i6U47UPuSKkRduErjXpKm+hyDy85jtzvJLRPk0fXutHWxzVWRE0YF4TxxCJRuoN2tZouytn4wgZt3+4XQi709YTJYIwOHTdYH7DNnL3aqA4UfUpKztqAtk1ErnWoyOeWD4dzs1HTYYk8zpqf9YliV3Xf+zhgh0mfyj26tqBvTn/4xJNAKlIC2d9fZTXMzUmMO+h0qffcc6hpL05D+Uc2H8XiI658HSHio6nNdOhUmU7ztMGtHjPENG2NC7fktJQqdLOOAjMxyYHbE/t3+WAtbuoXWoWKvo77opxhZALfC6hG/TA7E8a2G2LhDUNnNDasDnAjVoX9hC4TZvHXvND7EME2M7+BPJ61NY+vKAcHyiPn59fjup7LFG3gWqeyqtVjo/Kv2d75YSgXs/f0L0dV7V0H9XnZ2PVURlFQQViRDZS77hhZxWSstK/q0wf73hwIhZ0M9AVclE5KHiHW87jPrzT9jl1yhB00+mEAfDgTocSJmZJcL6GEZK19nAcCGNehFhY/KkO/xc4JZ6Hd1+BfeXsSzGhUxYwxCHdZk8YwdJrLlby7+4rZ3vLhPFcdFheXolpn2TPRUXr4zidXUFK9WuurkiikQkE2l1b4e3dNawmVkC9cMDgmeex0ksF+psrARwBVJtPs5XQNaQ6WFIs2ah7SOh8qPaxdPfEE0PDmukIAOagRcXnhjIHjkD/3dRn5iu2l7YOuFDfJK/p46ieda4cfxQWxfwtrng8sa5Esc/XKGit3goGAKxDc7YOa2euvapd9kRfpqc79oU6uB+bzSJq8Pon+cn/PIMpE8Fn+6zobz/8kRnhlTH53tfosouYeppvt4udxjkXCzek43LugpTNTrRgenXBNL21fm72Va40MOpZBqulSYLtZaxXA7TE4SADZGr0JOOM6tjdQ+9Us2MePoplWQxELvkoZiUD4169hFKVYbHFSyg1H/DSdmb2Xf3+eGY2RrhYoovfNq+OzeZe+O2/pm5/xm7dhIqUveY8yr25TV/9mt/60RUAB79Djym0H/zqPgiK7cyIQRi+PBeCvd3rjJrfVZTvFV7SRsYnx9wMAAA49ELD0xh6EybYKpAonfmIsyifT+VBEnbPZjAAAC0J1M6yxot2Nq3emcUdQW+nNq8JvCm4fh0laEqu3QECKuQukSDDsEEsCjLbJsYuJ1u4CVNjWmxyE2bKXrDdxZ95dsbW8Xjx7KUV69li3Hd517ry4rAlTPXSn9feZVJzB13jupuOIt61djtCAHDcQMcq+/DsxXNKrH+zUHr8mh8FnGn/wc21FYsMtAW2x8tu4BJL9+BAdG37x0VDnGZbr2IRJPqK5I3+JKSj6jCpPTk57SKzG3p4MJwGHABgVOqf0sJcdfgUr014hQVR0Ku36Z/L0u6ScNcbzQCAHZxFeC7tUW/FyBbLp0w6/1xY8Fp16F0FHFUf0wDO7selCbByq5+i8Kg+PpI6BtQqmwwDupXLNB6NeU8HSay+78kxOc7uI40ci2oPwcFQ7OhIBuNiwWdDKvVrjGBCR4IHnTUM+OgCX1huZfX3xuZhdYd8SJ9VW7LOqSyJVqV3bHDy+Mazf3H2MPl3Qw+RlI17KunF/t7V69FvO5b6plxEhkhvBdJmEOfn3EuNAkjkkuAOCaT1mHalOL/Bk6OLMZG0SdEeneCnubPfVoP73RsIe7jIdGeBUzgwgeHJl25FJOtCybDwaPG8sxJn8X9oyhg5As0z985BIdVVkXDhMd2v8tjW9uDhVWb8tTxgcyXPI4D2BpCmEkpBqoMlxfIaUU/fCzp03lPVEeqbxpJouPMmAcAOdFU/+qDxYeii/34hvCDn8IvZLUh+7+vQde/1KtWhJ8y8OTo4zsUARbrBKYUBAAdtidhg9ge/tm25HPydz4t8nvn+1/XV4+gDLK83VjpjIOOqpczF2VU8B5w9XfAETEY/3x7nNhJuYTMYALBRtMQuuFS5SCVxASE6nBHt7O4hvarOG4gQpx4bcyyQIJOqncXdIXpnZIOgAKhP1cagrqC+QduCRqC+tb2A5uGhj7YOqMED6uxlMEewoiHlNz8J/KvaFPEuaSNG9VaqZ4XoVsJYCwAAnICO2REKYI4JigTSZMzZAJxh6IpBNRrCAADXAtOlrpZx4TeLlpguWHADHjQ41eeJB5KoYXc3QKNuxyR05bJdDmwoq+MgU4xswIfINWRkpm5sBGJOxmWaUM5jL0xr5U3HbGfoYeHsTW/z2OEwFiGRtYTNQuyNLkWO3EA/XRpZzABpTUJq20nmXPTf0M41fzSxpN1MV/Lm9GmWun4wka8557TnjTQ/jV5Z/FAT0STN++cw/gJpQb9/a2CK+WIbj94epPGsAgf128g/yUTf9/+f4Qd1fQWTQRQkDgzRJn0ZXUdI8yOZnCulF8dQENfXg/5WrWWZYg7lbxdWYrrsFdmT9s+7B3m22/rULbfUQnppw5PAzncU9K0ROTH1HEXnAFfVgAMAXDV4aPWCBQ/QCnE4Gr3ahhqAns0ejIGDhjeaAQA0rl3Zk6V/WWvM3eCeO6W6Pzbw3Lc16FxBRm9tjCoAB88jp6ARYPYnLXJVGIn75jA3dKWtMSLQXW2LWQW5W/aC2dw8E2BHNsa9wMAkD7YFOnjOeMU91kFWELsJsdEXFbaIx9aynp4CO3NO7T38FEFZDMFaJVKHZl5rko+7maLwVgIAQMrXJhZM5GvlOf25UcdP6SSLOU5oRUE/5TnpfLiWJr0Y6PSdY/rcY4Ok2+bAhqfyuHQrMuMLpRND9vYF1rtggRrDMHsnEO5/SP3gcPtr0BhNFhzR3M8QXE5txWZgMqVTL8Zyi9Bz56cslre5kucRQJsBiCOCLIdYB4uLpQuiB2o72/bVHiriTkaFkOfvfQQAqbB0Xf04C50Owxz997qg2X2zWLxjG/y1rcfwV4Nejzpft1n47Mysd2/AkZGDCphmCX3yYwMJR/tMg9HSJPVvwxevOAjLFkXBAHjhtMXoZqRHB69J37fuMibtptAJMD01S4MCD1PojK3sJTzV07h6xab9G2jP2PtdELeufJ6J6SrkSFUGV1qepJ78PgT1NGmRaWFXEIUa+IL+d+bt/saWzi1nvpiuw9mPu85YGaIbzQNqb2+7R25/2/ljqmm0iwbkpvpkJ62jbiN0RqW4GUqE35Void4EeUWYSkU2lgWSO1i6c/cAKFtaCGooESK6jQwQEG3jAhZTdCDGwA4DTmk7hgbgMmZYBCtvs96bRoO/WDPrexl7xE/a7CeSN4fLudoIAAAcQTXUzgQUrAnuFYcTPr0cYx4BkKGfWx6nEnJ31oMBAKtQb5fBX7Pgq4UZC4ViesnhhogHojScqdAz5Kqr2H04YuVOGjq49JdTvxd6UyktBHL5B5oGjcywoWnbuAwFTWc4w9C6ytF3HK7ytFovsBO+xNoLUdW2FNMQCltvFIGBNM0BAUDWYIr8cNPQ1o7dv3SDSRuW04LKGIuxQXeb47kDZTHdkaBUs/0LEbyg19SbJmit8BZePYlv7gXxsa7SOX7tOqsLQKLSJa3FAQBML2tgyKW39b6k6xWc9pIB7WCIWaeIc9Szd0Bim8wAALHAYN+D8cV4Phdn/bEkpeMOPZdcHtsIKjo1eKr8uwYxU62lJOAmmbycm8qYNSD3cyk8ML1mf2tANBmJiiAmxkbTIGuNi2tAohiD+xgYy44Gw8ASDx4dsPRrTEqD183iQRRBIeeWKGBuSz0X30WRvUh0ChVOVV3UwQymr+kjALgssGPtsXuYFWLqzpdpMCUZnWPSwDPvalEyAWZ5sUwtgbtrp8IqYMut0XYNsLr2ftsNzKG24urCxyivKZz+ahUOt0B1BaH5A/6UvpAAGj1AciXkhdQHS5rlNOseCrocrCioPRmloqFmPwKAJXQVPY71QofGQUFmQcjnSD7bWULPtYxVBaB/nW+CTx67Zy2Q/pscIhbDqc/HXc5ktTOYBwMA5vSVumrqZP0q2pWOUzTbiuh9GS9Jv+zl6m9m99UiN9e59qijRa8mdtZs0Z775+JV8uvdfvvx959eDWd5jS4D5VE7XX2oCFPDB6eb/pn8/KrGII8Et9sMBgBcSRJgr76As4CXWlw2pXaBGdXn7RLcRg372YIlanduBjTFQjIH+kbFjO4kDKFcZu3wTojEGDCHhzXYDqvwsFkeywLxKwj4yjBufeokwtknplJD4lYvKn4y7A6BUB08MSxIyThD20qrY6cZ2vbZgnbAPXvb8jcWc++qOxWdlI6eww03hQEAQ3rH2gVVAJxLcQorpTTa1OeFDRqqCJtKzkWzc4Gl2p2BL25Gf1mDFrSQgXBSRmbmmE5UMi7LBmMwhhXBTVk7W25wJxbt1hCPnDp3eMQjX4PJPxJjS/MpLczJ339PfwcqXjp9Sg1Wdb0R2gwK1RwQAMAL9kRDFBNNS5rbsMKFSVu67D1jNNcSTJ59zOAlGL/oGTZ+D1GBqhhPpIQSuqKM5xT5ZeJllHaBqyoAnflZSq6siAPiMONhsJClND+Zc3R9oE2bYB+/dlnYEehV0wkA0DucqJ7p2I8hp3IY6mXchYmgHl6oHSA5Xj1aQArPtgrUdpMZAOAlONs1bdcAOsXHWALorv1zEeReHbrHgOpqY3wDOHwejRvaSpv9hfOmTNexSLy7wkkbm3PAuRiXOwNbay+kavBSHdsoaOOlCCs44IAhnjsxwWCeh6vi5FVqZwy5ZczJ37/PBBsewoEXFbQIAdWcB0LG9feA4Ern1dSCyOkIuihPlr/TALsbBQAAM5CTLV8YaYiXVYJsLuNVZeER7XOMrvGMYy2Kp4DxXkRSXiYvOvknsmUPf74Pt/5LDzbvBRF5dFMYou+T3o4vZ/CoPoS5tEhbtx2EeKkUvoC7qWC4IubMcfCWEXyrvHRuO/lVc29pQLYYFdqAaCVDWAt1QU6beVi7dfZ57SIrefBrVwprPRgAEA3rai2DqzdznqmLYjjU4Ah6QRK/RhgfydBvTKxPfVlxqOdTOz6cQ3XTGew+tROATeiCY7wrdB49zbZwrzaFAQDX3DumVF8gHZBIi5sMvAxYu0LvkocPOnv12CyyQOpfkzOwfJfrSbkHfeBCKwTsyufiiIW0MewJxEobF6KD0xGxhoyBwFzt5BHbH0CKnhQLe0Zq8rZO+Rq/xifUN/3+O1WHP/Aqzjv8lBiawSNurFjKQwLjLSMg+wpKYDSX4vso87vMPVJvXPTMYJiTgDm1wMlwCZdxamHshYqpLXSmQBwJgy4LrkK9wXvh5Ie/uzU3k52dp8J05gISlNAn3odKmJs1YQDA6GVV1WLralTptJAjMAOY1eFc5WLdG/tUnTclGt/UsM8M9yY9qrSZE1UNgo8sOAtR11BAEE4rXSWoSiPwpygM/D7eYo8I0/DHS60XxpMFgyHyOoaaQuFFcDn6aTYvxTvwqf0bnfXUeJLvzHLMU7jQBtmWwdAW0sYsmtBWum1ZGNDW0F5YRHiLbQtoNShy7UutFbs6sW/70HE3VEWEEVXBrqeeiONSVoHmahjjQZGRS7Lh6cCe6v65AZCR3w7wbThNHfFmsGOgy6x/ctD1+OJ2Cux1CrdjLBoz7jCwiwa52cDNcF0gSc8FxYkBzE6sbcPMmOKpJTbq/aWtA7s4St75h181hHvDRI3bLX4Hv8AnZs1we9gleqMex7nx9a87wsOODpP0cySQaYIhAW7fZ+iD0JM1YvDlw+CPCxzUqw2Usz1gSqsEmiziHgd6arv5Wm09cbwbCJReCuv2ca9/IaAz+eIU7+idW2o9ewO01faevr9NYVo0sT1TGbEw8mauIKHbhSvLEVg/ikV5cdJovt/G32ZoRRW/LVBPKewUrN0AuIYdAACEehn1YibQF3Aau/CsEwyLV28djkvTTuFaG80AgIjBShVtYxCkPjYDCqr8m4AKatGjpbcw55kiL2TwVQjzXFoIVPgexViMKuDDa7Fvwyv52/herwRMt3rc/eQlnrSC+IUw0yql+3SScAqActPqJoSCHuMSdbZhiAEshgi7DcR5j8JM6hM/gzV5F2QSevQ5tsR0LP7hRaYdnHgttoqjPGfOC6EcSwfI4YHGucUDMCzWs25gmxdVFgfYGjujiyDHFQPecJEtCwBA15j8frx3g1vYjg031JW5SDYFiGNdYFQsyNvuQkkdoGDrYhVvWWLVi+vOu9uFt0SbooB4y9jYJ4N37K7HSJvPOuKfbe3JhH08HtSt7j9+9QbqZ8ClZDM+m7o4cqbL5+vtihJeZTMYAHCQhK0trZ/h2hZFwZRCfh/PaPRVvqRf/JWy7PVlza5eqHJCxLSnxmk67psKXBU7mjqsJeANG5TqAjjr51QUNJKQrM1gAABPEoRXYTBw39T+pT4wrLTB2B17oW0+Mt3+Iw3rkI5sTnHnfeDsCnXzgvB15pFZiLhpqygV31S/QH5cf5LtxMwwFN4k8ZEgd+/TqYLssTiowBQVT9li2llRkaVNj9mVmT0V/zIwY64O/t1ZvelXqTlU+y/T0t4Y+ueEFpJMGBdeCqnQBUEiyshIgyu2LXIdrsgYZEzh0p48ZwFpSDM9ePKZx2qcb2XFbxXVoJH1wrwRiIc3oSPWgjtiVj/dqic9IRNJkLhpAABIFriS0rnMhDsSXA8XvG0EOmc/AwL9y/BzlatXOlRVUDMYAKA6SQ67vK5O7ltIQc48bokyqsTcqUJveyrGcLfU1YKliRJbhtawmJwxMnlRs88eaFdZKJUOMyzkZI+xp6PKyJwBHcfG5RzouMMYzoN3vrOAbq7kXdoW7W0DcrM4kUmvQyXHsqS8McQ+mRSqkku2x0b7b4723xDtTzHtX097tmGm1OKNdo9oGiPKGSPbY6X9V9Ae/+fEy5auX097PsVYqUU67UTmrEMGg7+lidW/NfIsVH+7FVnnNpEi3LaxIDIrYBALao3JBsTLWW6Cj2mg3XJ7GvDLZsd6d4degloP1cixbxxXOqzelfrI1fDiWcaP1AYGbqKimuhTupq0ozWAV5kb8mmP1TofNH6HOpstU29BqNr+1ZMwyq8m3m9VxPGrfy0TeC2C2qP9gs+cN8HjbNZtHb96U6puCnDz3OAOS/z//6LDuM3LooEJOeGSDK1qh6FXnwRzx7P3CC7VYAYAHAOhhY42YAhYq1By02fGSU79I2UZNfXh0wA5syybCqup/LvLa9rQu6YkNSRSoXrWaOLUZD46ZM4LZaFYhrBJlhwws/tXNuipy3TaZrR16q8z7WfxOX6kpOPkR/LH5LhnyqMm6LkUaK7Sp8teC3s7a2JUGqEZyaRTgDYardqayRw07jMuM71yHqIx216YYW3ejGgxzQl4Mz4reC6Ctly0CM4MkByuQy/ExBcV7hriiaxHnQHdTmr1BVWMISjFNJCNYDf5rc2D5poWAAAMotVNbl+E0OwRV5HpBjE4V+IO8lRdYHwTaGa6FmVL00kGLZiL1ZrZaBVfcHcS/C1WvU60lQL+FsXX67ci429jVxb79UEnbb9F9B3PbfR9mm4XwQCpgdcfymczv3x+ry1KHf2J65Oc+XjnkwQBlUyweHBZFMG1NPTrs2Sd1vVoQxgAcC0JBGjrmqFGuTASZbxH6CF/XR4EfoHi84xBq5WDmyg1spNcBe+Q1LAOR8mttVRVLChH70boYYjXITARBgCoI4CMQaOtas4GOJ4Xc3gdaLaixhSlWjI4CvGGeS1ZjEKW3pCOTo4ybpdMbaWy2MVqpRYNSp2jvqDAWw00xzLqE+atxoB5jHee4cr1u/zSCu4IfVI7PwAATKPmyDMNoeSg0IMY2iVTLVXyXEs0pG/IO2vMQONJ0iWxjr7d21HBRnJlVDlq8nmSgx6FlwMeo5BFo4rApiVRhbjHOb9FZ5ZZ5ccTjcsF4EmM4ULuXyzpQCtvtJeuTpVjo4nctU60B06dLnVwj1Qiq67TrTIRFa0a3+6/kmNzy9IzyqNSM1hzpV5j34syRfaxpJajX8s+5qVETdqZjTemZutGTkXNMMShwdTx/h2C2D63OYvHbhsLFcFOGWNp8dRVuhtvwVx5Fgt3x/yhCu8qZ965waYZyD2ksh0FG+F8sbpj/zovsmA5a6oZrh+vTDXca4J7yH2kCrgbpKwDABwgjhEQaRhgpfWgEGlnOsJNb9EMADgsoifbEhRqtg3Q439j91/vWFwSjUmq3TtG39H8H/wF/APQ2CUe03lS1nEpPl1ZnrBqnzi8lLWB39s77CIryfljhQsTatj19zZUJkJEtj2vrisrWcqEq+6MRpIBrTI3Q+OO1csId6fEsAmilHT1Tme6BbdtB2+hwK48b9gLiuA6kcFBn19OjXOn8wALOomQc3NeFRp05tocSkXk5I0xmBx5moWfxC2BN39U4wIAEOxo/19Qo6/G18yDyZGDzsBF/WAk/hhWTAAgLOuDyi4nbAbWyXb8iq00Oi++mVhhoYtMugq8SiVKb34oRcvpC9ZmWpjCufeKoBhVNIwFABJqW9nPzu7DEgqt/w68UDXdKWjD4DcA5hc6+IzntnIga9QlZDK5o83iyGHp6BJuvCkMANjB6a5ACAiC/fx0O49GHl+Kmky+J3l8fTxY6Q72UF8t1Ksnvxa2EBvj+sZ+ihZTE/sbtydanyXmIdfp44tiz1Wxu1A8e86kKnbP2uAeQ2tB+9zawbfWK2szGABw0NDuTHeBDSOU9gdX03v875ZflJvGfBZC16rPcyFBOyWdYaxcx9JECd2A3H2nlId/Ztqv/j08uiezqeJx3/R65FKDOJNblw9m8sZfJU+VDeLVQJ6wjfG1Ic+tevHlTKfk7WIMvkx2jF4KsIDSs5uX4vLYoHIIyvgVFHi3mu89j++9ozLX097gOCIW+z8FP+p/zcI/55ppzW7trtW2+UMiDEJfc3Cug2vOH8blAV0tAQ4xYAVHZOsjf022Yl2OEErYsm5kXgdKG/rXDlm8AUixRwfMlj7Gwm+AzgEYQUG82FFUa3SAHKs9zGA089sUNreEOzzHxwgm1jRwqz5OXM/djdB5PKECNVow4M7ITLrcOfXSnZvxfctPsjs7i1qcDSTJO43eyFQR01S+kvZQNAPZV21z6m1jkRJ4Lt76kgKCQ1rfE6L5Nva6Pk9q2PH/98kzgeRlQS2lz6h7HgnvS/whU1Hx/9+4pzZiuJ0ey2Ubyj5Fvy/Ms2RO+cV4SSAoxuzQhaB0bJBuBKdaLu15ImHjNHQnLV461I60IQwAcDTUO3yTBVNVEieVlXeeK3RU3PA682430M1MF/ydF3Fz07lxtwVh0dYAq2TNX5+1tA3CrnYlWp+1t20MuxafdaR6Yed6TMQ6XWHnF3ST3R4LiE1zk91Dm5bNgbZpi2iphjZHS2qvAmXY13Oap02Uv/Yv+xZgztpt/Hs949rx9dzxaSPrmACAfSbfNMjluDct5RofhOnh/qeDXJpIXdD7xUBMcLjaGl3YXDdQhtNWTGGhzOZf39QMSYWCUpYZ4rgnXXhsWU84wIMhh3v/sLO4CSPY6sJIFaptyk2BZvg7w9jGu4VgThvbOtlZgKdJPv5GMxTze4YnfI4mg/p4E2IxdufV40z9dMjaG16pqErbSAFmXOys0Oy3SoLZ1QWX3oUhQSb6+VASTvdmMABgRhJUp76gawCRPM8MvUGNnpbApNWVbtlHuzxR/dnWGnTrQNqM/pwTHI8WctXjlve9fVIy08BaxiXV6/hQ8iY2QwqQO9KAwHq6QlevyrFW/Ary24cTd+YxnsDfjoEFbuSK1OMUy6HXU84oAlV45TXmfRX6y8P0BXb86rlUoIugoc78ic3pMjwOqq/+xa9+kPNkEJzSZgUAoAQgp3bIFYaSIBbWIKmVY2rQKYCAfq5egyVLSE+VgaylSeonqFvwrEOIiOsbTe9YrKg47VboXaAzXA1/gzjLlRQ3EK7PJmAXzirBBcsgZSGZkLsuYmbVeRtyUUVLLwyUQy6hM8BcVeWBxuVw6KqTk9VY3pyGE7UJGsWlhgS2r9NpivYPES/LVUdTKzvc1agAgCh34YcD5+Fphyu2xfrlnZPkD9eF0/nNbCjX3VoMqs8SAS9lnuECz6sbw34iEttvspoHHja/xO8Pf3xQ+sPQsZ8ewq5eTQqYTT3V7CGuiornatmFIK46bPAqgwv9Xu1pK6Ofuz9O63BaFwYAnKDB7oImLIiH502K/mnr81weZOSkW9fCuxkEL6aucmclVG4YUHzSQzK/471BicfMZCubJYQcjEtWGU79/UxJ+pKgLaRI8Wr1wfDhlb2rDMsM4VgWHwp/Mu7EKT7pBVbXCXdfoFLld2t3Wk5Fmt6/BFPsn3r1TeC5rPrX/bXqU1/Aqyzj62+bu05qKZzXvcmr6Z/jbHaHHhdQN0LPCpDUDznMD84cYIsDOh41ySQ+PyL1CoFtvGc5yB7cd1ceMtL5g48IzOj9iWqn66fXCJz6fU59sFvzdV8vZu+8R9lm1H8iEMLt5Q7RR2DFpYAXDb6lLY41MZaQ9BWGz7DgI9Di4Nt/0rQiFnYLD3NJxiVqQoiYNF1syNDlJqEDXZItluLAurjLPtW3NIqLBfp43MzYz+1Rveg+xBLxSKa+mGG6SeIj74foNl7QU+ObxseVumVFfgZm/TK6ewspBk21o441s+5zQoW4nXwT6WtiN3FPeVOA7By/tl82e6lfeRO/sKVEntveRgbCeksVuM6CtErgMyQ8H/65R2MfuUStYvA2qaPbaZJAI7KvVQAAjgDdakedyFW4R0ZEGxQ9GXXKNIkGvZs5p/L5+me7BAq3GQwAMIgEDKXDb+YQl8UhgDHPUysDJ9V50zGQ5f1LkTwTfoPp+L0LSGo3tgLCk0iCD9AdiMd9tjk2CHsAHfZn2KlSmEXMEp8dWjLVsiA+OxoJfWFFfPbarRtRyn6GvdmyWACETEzVTr1/UyaCifHpKmBSh0kEoD/IxE1qqDbxg4DBZLZIBABzjQxnaSFuHTI49wfe6CmJp5nnnN/bt5rVVPmX/aJS8b307zvTYJvYcf2RT90xxfYdeMvHsTu7zKnvjfeUxc5CWmM64RLjfNjM2+iunfqp3Gx8OWJg/RyH4fRTQWAFBw==","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),w4e={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin<compat/${x.stringifyIdent(r)}>`,params:null}))}},B4e=w4e;var BO={};ct(BO,{default:()=>b4e});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var IWe={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,bu,Ou,Qu,ku,Pu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},yWe=IWe;var wO={};ct(wO,{default:()=>BWe});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),wWe={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin<compat/${x.stringifyIdent(r)}>`,params:null}))}},BWe=wWe;var BO={};ct(BO,{default:()=>QWe});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} `),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let P=typeof S=="string"?S:S.path,F=K.isAbsolute(P)?P:K.resolve(K.fromPortablePath(s),P);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} enableTelemetry: false `);let l=(m=this.packages)!=null?m:[this.command],c=x.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` -`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await je.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=be.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var Q4e={commands:[tp,Hu]},b4e=Q4e;var vO={};ct(vO,{default:()=>x4e,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Gr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>KQ,makeBufferFromLocator:()=>SO,makeLocator:()=>bO,makeSpec:()=>iAe,parseSpec:()=>QO});function QO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function bO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function KQ(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await KQ(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var UQ=class{supports(e,t){return!!e.reference.startsWith(Gr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Gr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return KQ(e,{protocol:Gr,fetchOptions:t})}};var S4e=2,HQ=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(Gr)}supportsLocator(e,t){return!!e.reference.startsWith(Gr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Gr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=QO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:Gr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:Gr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${S4e}`,o).slice(0,6);return[bO(e,{parentLocator:s,path:n,folderHash:a,protocol:Gr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var GQ=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Gr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:Gr}),s=v.isAbsolute(n)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var jQ=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(Gr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(Gr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${Gr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(Gr)?e.range.slice(Gr.length):e.range;return[x.makeLocator(e,`${Gr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var v4e={fetchers:[GQ,UQ],resolvers:[jQ,HQ]},x4e=v4e;var xO={};ct(xO,{default:()=>R4e});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(P4e(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function P4e(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var YQ=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new Gt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var D4e={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new YQ;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},R4e=D4e;var PO={};ct(PO,{default:()=>T4e});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qQ=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var JQ=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var F4e={fetchers:[qQ],resolvers:[JQ]},T4e=F4e;var FO={};ct(FO,{default:()=>N8e});var TAe=ve(FAe()),RO=J("util"),Gu=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await je.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Tr&&me.isTaggedYarnVersion(Tr)?`yarn@${Tr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} +`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=Qe.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var bWe={commands:[tp,Hu]},QWe=bWe;var vO={};ct(vO,{default:()=>xWe,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,jr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>Kb,makeBufferFromLocator:()=>SO,makeLocator:()=>QO,makeSpec:()=>iAe,parseSpec:()=>bO});function bO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function QO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Kb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await Kb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var Ub=class{supports(e,t){return!!e.reference.startsWith(jr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Kb(e,{protocol:jr,fetchOptions:t})}};var SWe=2,Hb=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(jr)}supportsLocator(e,t){return!!e.reference.startsWith(jr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=bO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:jr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:jr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${SWe}`,o).slice(0,6);return[QO(e,{parentLocator:s,path:n,folderHash:a,protocol:jr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jb=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var Gb=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(jr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(jr)?e.range.slice(jr.length):e.range;return[x.makeLocator(e,`${jr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var vWe={fetchers:[jb,Ub],resolvers:[Gb,Hb]},xWe=vWe;var xO={};ct(xO,{default:()=>RWe});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(PWe(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function PWe(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var Yb=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var DWe={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new Yb;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},RWe=DWe;var PO={};ct(PO,{default:()=>NWe});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qb=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var Jb=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var FWe={fetchers:[qb],resolvers:[Jb]},NWe=FWe;var FO={};ct(FO,{default:()=>T8e});var NAe=ve(FAe()),RO=J("util"),ju=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ge.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Nr&&me.isTaggedYarnVersion(Nr)?`yarn@${Nr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} `);let a=v.join(this.context.cwd,ot.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)} `,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${x.stringifyIdent(n.name)} `),!i||i.cwd===this.context.cwd){let u=v.join(this.context.cwd,St.lockfile);M.existsSync(u)||await M.writeFilePromise(u,"");let h=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(F=>`${F} `).join(""),p=v.join(this.context.cwd,".gitignore");M.existsSync(p)||await M.writeFilePromise(p,h);let m=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(F=>`${F} -`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,TAe.default)(B,t.get("initEditorConfig"));let S=`root = true +`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,NAe.default)(B,t.get("initEditorConfig"));let S=`root = true `;for(let[F,H]of Object.entries(B)){S+=` [${F}] `;for(let[q,_]of Object.entries(H)){let X=q.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);S+=`${X} = ${_} -`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};Gu.paths=[["init"]],Gu.usage=be.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var T8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[Gu]},N8e=T8e;var TO={};ct(TO,{default:()=>O8e});var cA="portal:",uA="link:";var WQ=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Gt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot}}};var zQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var VQ=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new Gt(Ne.root),prefixPath:Ne.dot,localPath:Ne.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,s.localPath),localPath:Ne.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Gt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Ne.dot,discardFromLookup:!0}}};var XQ=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[VQ,WQ],resolvers:[XQ,zQ]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,NAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=Qe.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var N8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},T8e=N8e;var NO={};ct(NO,{default:()=>O8e});var cA="portal:",uA="link:";var Wb=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Vb=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var Xb=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[Vb,Wb],resolvers:[Xb,zb]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,TAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${u}, next tree: ${eE(a)}`);let h=KAe(a);if(h)throw new Error(`${h}, after hoisting finished: -${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},NO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=j8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},G8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},ZQ=r=>`${r.name}@${r.locator}`,j8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,ZQ(F)],_=[...P,ZQ(F)],X=new Map,W=new Map;for(let te of NO(F)){let O=G8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let T of O.dependsOn){let ce=X.get(T.name)||new Set;ce.add(te.name),X.set(T.name,ce)}}let Z=new Set,A=(te,O,T)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:T});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let T=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!T)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)T.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: -${eE(r)}`)}let ue=NO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(ZQ(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(NO(c)),y=Array.from(e).map(B=>ZQ(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},Y8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:NAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:NAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),h=MO(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} +${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},Zb=r=>`${r.name}@${r.locator}`,G8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,Zb(F)],_=[...P,Zb(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let N of O.dependsOn){let ce=X.get(N.name)||new Set;ce.add(te.name),X.set(N.name,ce)}}let Z=new Set,A=(te,O,N)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:N});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let N=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!N)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)N.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: +${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(Zb(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>Zb(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` +`)},Y8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),h=MO(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} `,l+=t(u,s,`${o}${c<a.length-1?"\u2502 ":" "}`)}}return s.delete(n),l};return t(r,new Set)+(e>OAe?` Tree is too large, part of the tree has been dunped -`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",ju="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=GAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let T=0;X?T=2:d.linkType==="SOFT"&&m.name.endsWith(ju)&&(T=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:T===1?new Set:d.packagePeers,dependencyKind:T},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let T=na({name:y.identName,reference:y.reference}),ce=n.get(T)||new Set;n.set(T,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let T=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(T){let ce=new Set([...Array.from(T.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(T.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(ju,""),reference:m.reference}),ne=s.get(A);if(ne)for(let T of ne)Z.set(`${T.name}${ju}`,T.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(ju)&&!X;if(!_&&!ue){let T=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(ju,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let j=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(j)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,j)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,j)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=T.get(Ye);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,j)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,j)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else T.set(Ye,{target:j.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Ne.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Ne.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function GAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(ju,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:GAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(ju)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),T=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([T])});else if(ce.dirList){if(ce.dirList.has(T))break;ce.dirList.add(T)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var jAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n<s;++n)i+=_Q(String(n),r[n],e,t).replace(/^ +/g,""),n+1<s&&(i+=", ");return i+="]",i}function _8e(r,e,t){let i=`${t} `,n="";n+=t,n+=`[ -`;for(let s=0,o=r.length;s<o;++s)n+=i+_Q(String(s),r[s],e,i).replace(/^ +/,""),s+1<o&&(n+=","),n+=` -`;return n+=t,n+="]",n}function $8e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_Q(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ +`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ye);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else N.set(Ye,{target:G.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Te.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Te.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(Gu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Gu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),N=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([N])});else if(ce.dirList){if(ce.dirList.has(N))break;ce.dirList.add(N)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var GAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n<s;++n)i+=_b(String(n),r[n],e,t).replace(/^ +/g,""),n+1<s&&(i+=", ");return i+="]",i}function _8e(r,e,t){let i=`${t} `,n="";n+=t,n+=`[ +`;for(let s=0,o=r.length;s<o;++s)n+=i+_b(String(s),r[s],e,i).replace(/^ +/,""),s+1<o&&(n+=","),n+=` +`;return n+=t,n+="]",n}function $8e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_b(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ `;let o=0;for(let a=0,l=i.length;a<l;++a){let c=i[a],u=r[c];typeof u>"u"||(o!==0&&(s+=",",s+=` -`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_Q(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` -`),s+=t,s+="}",s}function _Q(r,e,t,i){let{next:n}=jAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=jAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} +`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_b(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` +`),s+=t,s+="}",s}function _b(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} `:"",`/* eslint-disable */ `,`"use strict"; `,` @@ -633,66 +633,66 @@ Tree is too large, part of the tree has been dunped `].join("")}function aze(r){return[`var path = require('path'); `,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); `,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function GO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var jO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eb=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Yu(r,n)&&(t[n]=r[n])}return t}var $Q=new $Ae;function Aze(r,e,t,i){let n=$Q.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let p={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(r,p),p}let o;try{o=ele(s)}catch(p){throw new lE(r,(t?`"${e}" from `:"")+(0,eb.fileURLToPath)(t||e),p.message)}let{imports:a,main:l,name:c,type:u}=sle(o,["imports","main","name","type"]),g=Yu(o,"exports")?o.exports:void 0;(typeof a!="object"||a===null)&&(a=void 0),typeof l!="string"&&(l=void 0),typeof c!="string"&&(c=void 0),u!=="module"&&u!=="commonjs"&&(u="none");let h={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return $Q.set(r,h),h}function ole(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(El(s,"node_modules/package.json"))break;let o=Aze((0,eb.fileURLToPath)(t),r,void 0,e);if(o.exists)return o;let a=t;if(t=new URL("../package.json",t),t.pathname===a.pathname)break}let i=(0,eb.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $Q.set(i,n),n}function lze(r,e,t){throw new rle(r,e&&(0,qi.fileURLToPath)(new URL(".",e)),(0,qi.fileURLToPath)(t))}function cze(r,e,t,i){let n=`request is not a valid subpath for the "${t?"imports":"exports"}" resolution of ${(0,qi.fileURLToPath)(e)}`;throw new zO(r,n,i&&(0,qi.fileURLToPath)(i))}function cE(r,e,t,i,n){throw typeof e=="object"&&e!==null?e=sE(e,null,""):e=`${e}`,new ile((0,qi.fileURLToPath)(new URL(".",t)),r,e,i,n&&(0,qi.fileURLToPath)(n))}var ale=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,Ale=/\*/g;function uze(r,e,t,i,n,s,o,a){if(e!==""&&!s&&r[r.length-1]!=="/"&&cE(t,r,i,o,n),!sa(r,"./")){if(o&&!sa(r,"../")&&!sa(r,"/")){let g=!1;try{new URL(r),g=!0}catch{}if(!g)return s?qO(Ale,r,()=>e):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(jO(e)){if(e.length===0)return null;let l;for(let c=0;c<e.length;c++){let u=e[c],g;try{g=ip(r,u,t,i,n,s,o,a)}catch(h){if(l=h,h.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw h}if(g!==void 0){if(g===null){l=null;continue}return g}}if(l==null)return l;throw l}else if(typeof e=="object"&&e!==null){let l=oE(e);for(let c=0;c<l.length;c++){let u=l[c];if(gze(u))throw new lE((0,qi.fileURLToPath)(r),n,'"exports" cannot contain numeric property keys.')}for(let c=0;c<l.length;c++){let u=l[c];if(u==="default"||a.has(u)){let g=e[u],h=ip(r,g,t,i,n,s,o,a);if(h===void 0)continue;return h}}return}else if(e===null)return null;cE(i,e,r,o,n)}function cle(r,e){let t=aE(r,"*"),i=aE(e,"*"),n=t===-1?r.length:t+1,s=i===-1?e.length:i+1;return n>s?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||jO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a===""||a[0]!==".";if(s++===0)n=l;else if(n!==l)throw new lE((0,qi.fileURLToPath)(e),t,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return n}function VO(r,e,t){throw new nle((0,qi.fileURLToPath)(new URL(".",e)),r,t&&(0,qi.fileURLToPath)(t))}var lle=new Set;function hze(r,e,t){let i=(0,qi.fileURLToPath)(e);lle.has(i+"|"+r)||(lle.add(i+"|"+r),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${r}" in the "exports" field module resolution of the package at ${i}${t?` imported from ${(0,qi.fileURLToPath)(t)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function ule({packageJSONUrl:r,packageSubpath:e,exports:t,base:i,conditions:n}){if(fze(t,r,i)&&(t={".":t}),Yu(t,e)&&!JO(e,"*")&&!El(e,"/")){let l=t[e],c=ip(r,l,"",e,i,!1,!1,n);return c==null&&VO(e,r,i),c}let s="",o,a=oE(t);for(let l=0;l<a.length;l++){let c=a[l],u=aE(c,"*");if(u!==-1&&sa(e,Il(c,0,u))){El(e,"/")&&hze(e,r,i);let g=Il(c,u+1);e.length>=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u<c.length;u++){let g=c[u],h=aE(g,"*");if(h!==-1&&sa(r,Il(g,0,h))){let p=Il(g,h+1);r.length>=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s<r.length;++s){let o=r[s];if(o==="\\"&&i){if(s+1===r.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) +`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function jO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eQ=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Yu(r,n)&&(t[n]=r[n])}return t}var $b=new $Ae;function Aze(r,e,t,i){let n=$b.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let p={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $b.set(r,p),p}let o;try{o=ele(s)}catch(p){throw new lE(r,(t?`"${e}" from `:"")+(0,eQ.fileURLToPath)(t||e),p.message)}let{imports:a,main:l,name:c,type:u}=sle(o,["imports","main","name","type"]),g=Yu(o,"exports")?o.exports:void 0;(typeof a!="object"||a===null)&&(a=void 0),typeof l!="string"&&(l=void 0),typeof c!="string"&&(c=void 0),u!=="module"&&u!=="commonjs"&&(u="none");let h={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return $b.set(r,h),h}function ole(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(El(s,"node_modules/package.json"))break;let o=Aze((0,eQ.fileURLToPath)(t),r,void 0,e);if(o.exists)return o;let a=t;if(t=new URL("../package.json",t),t.pathname===a.pathname)break}let i=(0,eQ.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $b.set(i,n),n}function lze(r,e,t){throw new rle(r,e&&(0,qi.fileURLToPath)(new URL(".",e)),(0,qi.fileURLToPath)(t))}function cze(r,e,t,i){let n=`request is not a valid subpath for the "${t?"imports":"exports"}" resolution of ${(0,qi.fileURLToPath)(e)}`;throw new zO(r,n,i&&(0,qi.fileURLToPath)(i))}function cE(r,e,t,i,n){throw typeof e=="object"&&e!==null?e=sE(e,null,""):e=`${e}`,new ile((0,qi.fileURLToPath)(new URL(".",t)),r,e,i,n&&(0,qi.fileURLToPath)(n))}var ale=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,Ale=/\*/g;function uze(r,e,t,i,n,s,o,a){if(e!==""&&!s&&r[r.length-1]!=="/"&&cE(t,r,i,o,n),!sa(r,"./")){if(o&&!sa(r,"../")&&!sa(r,"/")){let g=!1;try{new URL(r),g=!0}catch{}if(!g)return s?qO(Ale,r,()=>e):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(GO(e)){if(e.length===0)return null;let l;for(let c=0;c<e.length;c++){let u=e[c],g;try{g=ip(r,u,t,i,n,s,o,a)}catch(h){if(l=h,h.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw h}if(g!==void 0){if(g===null){l=null;continue}return g}}if(l==null)return l;throw l}else if(typeof e=="object"&&e!==null){let l=oE(e);for(let c=0;c<l.length;c++){let u=l[c];if(gze(u))throw new lE((0,qi.fileURLToPath)(r),n,'"exports" cannot contain numeric property keys.')}for(let c=0;c<l.length;c++){let u=l[c];if(u==="default"||a.has(u)){let g=e[u],h=ip(r,g,t,i,n,s,o,a);if(h===void 0)continue;return h}}return}else if(e===null)return null;cE(i,e,r,o,n)}function cle(r,e){let t=aE(r,"*"),i=aE(e,"*"),n=t===-1?r.length:t+1,s=i===-1?e.length:i+1;return n>s?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||GO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a===""||a[0]!==".";if(s++===0)n=l;else if(n!==l)throw new lE((0,qi.fileURLToPath)(e),t,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return n}function VO(r,e,t){throw new nle((0,qi.fileURLToPath)(new URL(".",e)),r,t&&(0,qi.fileURLToPath)(t))}var lle=new Set;function hze(r,e,t){let i=(0,qi.fileURLToPath)(e);lle.has(i+"|"+r)||(lle.add(i+"|"+r),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${r}" in the "exports" field module resolution of the package at ${i}${t?` imported from ${(0,qi.fileURLToPath)(t)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function ule({packageJSONUrl:r,packageSubpath:e,exports:t,base:i,conditions:n}){if(fze(t,r,i)&&(t={".":t}),Yu(t,e)&&!JO(e,"*")&&!El(e,"/")){let l=t[e],c=ip(r,l,"",e,i,!1,!1,n);return c==null&&VO(e,r,i),c}let s="",o,a=oE(t);for(let l=0;l<a.length;l++){let c=a[l],u=aE(c,"*");if(u!==-1&&sa(e,Il(c,0,u))){El(e,"/")&&hze(e,r,i);let g=Il(c,u+1);e.length>=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u<c.length;u++){let g=c[u],h=aE(g,"*");if(h!==-1&&sa(r,Il(g,0,h))){let p=Il(g,h+1);r.length>=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s<r.length;++s){let o=r[s];if(o==="\\"&&i){if(s+1===r.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) `),t;o=r[++s]}else if(o===" "&&!i){n=!0;continue}else if(o==='"'){i=!i;continue}n?(t.push(o),n=!1):t[t.length-1]+=o}return i&&e.push(`invalid value for NODE_OPTIONS (unterminated string) -`),t}var Ele=J("module");var[Ir,Ji]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=Ir>16||Ir===16&&Ji>=12,IBt=Ir>17||Ir===17&&Ji>=5||Ir===16&&Ji>=15,yBt=Ir>17||Ir===17&&Ji>=1||Ir===16&&Ji>14,mle=Ir>19||Ir===19&&Ji>=2||Ir===18&&Ji>=13,wBt=Ir===20&&Ji<6||Ir===19&&Ji>=3,BBt=Ir>19||Ir===19&&Ji>=6,QBt=Ir>18||Ir===18&&Ji>=1||Ir===16&&Ji>=17,bBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=19,SBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=20,vBt=Ir>=22;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tb=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,j,fe,re,de;let Ae=(j=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?j:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let j=v.contains(oe,se);if(j===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");j!=="."&&!a.test(j)&&(j=`./${j}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:j,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(j),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=`${se}${ye[oe]}`;if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}if(ge&&ge.isDirectory())for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=v.format({dir:se,name:"index",ext:ye[oe]});if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}return null}function q(se){let Ae=new gE.Module(se,null);return Ae.filename=se,Ae.paths=gE.Module._nodeModulePaths(se),Ae}function _(se,Ae){return Ae.endsWith("/")&&(Ae=v.join(Ae,"internal.js")),gE.Module._resolveFilename(K.fromPortablePath(se),q(K.fromPortablePath(Ae)),!1,{plugnplay:!1})}function X(se){if(g===null)return!1;let Ae=v.contains(r.basePath,se);return Ae===null?!1:!!g.test(Ae.replace(/\/$/,""))}let W={std:3,resolveVirtual:1,getAllLocators:1},Z=l;function A({name:se,reference:Ae}){let ye=h.get(se);if(!ye)return null;let ge=ye.get(Ae);return ge||null}function ne({name:se,reference:Ae}){let ye=[];for(let[ge,oe]of h)if(ge!==null)for(let[Ye,ie]of oe)Ye===null||ie.packageDependencies.get(se)!==Ae||ge===se&&Ye===Ae||ye.push({name:ge,reference:Ye});return ye}function ue(se,Ae){let ye=new Map,ge=new Set,oe=ie=>{let j=JSON.stringify(ie.name);if(ge.has(j))return;ge.add(j);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let j of[...ye.get(ie)].sort())Ye.push({name:ie,reference:j});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function T(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tb(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let j=_(se,Ae);if(j===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),t}var Ele=J("module");var[Ir,Ji]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=Ir>16||Ir===16&&Ji>=12,IBt=Ir>17||Ir===17&&Ji>=5||Ir===16&&Ji>=15,yBt=Ir>17||Ir===17&&Ji>=1||Ir===16&&Ji>14,mle=Ir>19||Ir===19&&Ji>=2||Ir===18&&Ji>=13,wBt=Ir===20&&Ji<6||Ir===19&&Ji>=3,BBt=Ir>19||Ir===19&&Ji>=6,bBt=Ir>18||Ir===18&&Ji>=1||Ir===16&&Ji>=17,QBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=19,SBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=20,vBt=Ir>=22;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tQ=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=`${se}${ye[oe]}`;if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}if(ge&&ge.isDirectory())for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=v.format({dir:se,name:"index",ext:ye[oe]});if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}return null}function q(se){let Ae=new gE.Module(se,null);return Ae.filename=se,Ae.paths=gE.Module._nodeModulePaths(se),Ae}function _(se,Ae){return Ae.endsWith("/")&&(Ae=v.join(Ae,"internal.js")),gE.Module._resolveFilename(K.fromPortablePath(se),q(K.fromPortablePath(Ae)),!1,{plugnplay:!1})}function X(se){if(g===null)return!1;let Ae=v.contains(r.basePath,se);return Ae===null?!1:!!g.test(Ae.replace(/\/$/,""))}let W={std:3,resolveVirtual:1,getAllLocators:1},Z=l;function A({name:se,reference:Ae}){let ye=h.get(se);if(!ye)return null;let ge=ye.get(Ae);return ge||null}function ne({name:se,reference:Ae}){let ye=[];for(let[ge,oe]of h)if(ge!==null)for(let[Ye,ie]of oe)Ye===null||ie.packageDependencies.get(se)!==Ae||ge===se&&Ye===Ae||ye.push({name:ge,reference:Ye});return ye}function ue(se,Ae){let ye=new Map,ge=new Set,oe=ie=>{let G=JSON.stringify(ie.name);if(ge.has(G))return;ge.add(G);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let G of[...ye.get(ie)].sort())Ye.push({name:ie,reference:G});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function N(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tQ(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let G=_(se,Ae);if(G===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(j)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,j,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). +`,{request:ge,issuer:oe});return K.toPortablePath(G)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,G,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). Require path: "${ge}" Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(j),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;ri<Ms;++ri){let Ei=B(c[ri]).packageDependencies.get(j);if(Ei!=null){t?vt=Ei:Ze=Ei;break}}if(r.enableTopLevelFallback&&Ze==null&&vt===null){let ri=r.fallbackPool.get(j);ri!=null&&(vt=ri)}}}let mt=null;if(Ze===null)if(S(re))mt=ei("MISSING_PEER_DEPENDENCY",`Your application tried to access ${j} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. +`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(G),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;ri<Ms;++ri){let Ei=B(c[ri]).packageDependencies.get(G);if(Ei!=null){t?vt=Ei:Ze=Ei;break}}if(r.enableTopLevelFallback&&Ze==null&&vt===null){let ri=r.fallbackPool.get(G);ri!=null&&(vt=ri)}}}let mt=null;if(Ze===null)if(S(re))mt=ei("MISSING_PEER_DEPENDENCY",`Your application tried to access ${G} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. -Required package: ${j}${j!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:j});else{let gr=ue(j,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${j} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:G});else{let gr=ue(G,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. -Required package: ${j}${j!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${j} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. -Required package: ${j}${j!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) ${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} `).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tb(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${j}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${j} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tQ(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. -Required package: ${j}${j!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:j}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${j}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${j} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. -Required package: ${j}${j!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${j}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. -Required package: ${j}${j!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:j}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${j}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. +`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. -Required package: ${j}${j!==ge?` (via "${ge}")`:""} +Required package: ${G}${G!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:j}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Lr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:j,reference:Ze},ti=B(Lr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. +`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Lr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:G,reference:Ze},ti=B(Lr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. Required package: ${Lr.name}@${Lr.reference}${Lr.name!==ge?` (via "${ge}")`:""} Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Lr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let j=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(j,se)):Ye=v.normalize(v.join(v.dirname(j),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),j=te(se);if(j){let{packageLocation:fe}=B(j),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). +`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Lr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). -Missing package: ${j.name}@${j.reference} +Missing package: ${G.name}@${G.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let de=fe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`${de} -Missing package: ${j.name}@${j.reference} +Missing package: ${G.name}@${G.reference} Expected package location: ${ho(fe)} `,{unqualifiedPath:ie,extensions:Ae})}}throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. Source path: ${ie} ${ye.map(fe=>`Not found: ${ho(fe)} -`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=T(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let j=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tb(se))&&!j()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=wr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=T(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var YBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=GO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(ble());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rb,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rb(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rb(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,wr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rb(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new bo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Ne.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new Gt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(Qn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!bt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!bt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=be.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function Qze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function bze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:bze,setupScriptEnvironment:Qze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,Dr="node_modules",ib=".bin",Gle=".yarn-state.yml",Yze=1e3;var nb=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,Dr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sb(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will +`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tQ(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=wr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var YBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(Qle());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rQ,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rQ(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rQ(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,wr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rQ(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Qo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Te.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(bn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!Qt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!Qt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=Qe.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function bze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function Qze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:Qze,setupScriptEnvironment:bze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,Dr="node_modules",iQ=".bin",jle=".yarn-state.yml",Yze=1e3;var nQ=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,Dr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sQ(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will `,s+=`# cause your node_modules installation to become invalidated. `,s+=` `,s+=`__metadata: @@ -707,10 +707,10 @@ ${ye.map(fe=>`Not found: ${ho(fe)} `}if(u===a&&t.size>0){s+=` bin: `;for(let[h,p]of t){let d=v.contains(r.cwd,h);if(d===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` ${JSON.stringify(d)}: `;for(let[m,y]of p){let B=v.relative(v.join(h,Dr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)} -`}}}}let l=r.cwd,c=v.join(l,Dr,Gle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,Dr,Gle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,Dr,S].join(v.sep)))}if(a.set(c,{target:Ne.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Ne.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:jle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(Dr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==Dr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sb=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(Dr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},jle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sb(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let h=me.getFactoryWithDefault(c.children,g,i);c.children.set(g,h),c=h}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},fM=async(r,e)=>{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-Yze))if(await Ai.checksumFile(a,{baseFs:M,algorithm:"sha1"})!==t.digest){let g=v.join(i,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));await M.renamePromise(a,g);let h=await n.readFilePromise(r);await M.writeFilePromise(g,h);try{await M.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await M.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await M.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await Yle(i,a,c),t.mtimeMs=new Date().getTime();try{await M.linkPromise(a,e)}catch(u){u&&u.code&&u.code=="EXDEV"&&(s.value="hardlinks-local",await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let o=t.mode&511;o!==420&&await M.chmodPromise(e,o)}}var qle=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Ne.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==Dr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===Dr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,Dr,ib),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(Dr)&&l(c,Dr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,Dr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=jle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let T=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of T){if(!O.innerLoop&&ce.name===ib)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==Dr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(T){throw O.innerLoop||(T.message=`While cloning ${ue} -> ${te} ${T.message}`),T}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!1});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!0});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),T=e.get(ue.locator),ce=T.target,he=te,Pe=T.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sb(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,T=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=T.target,De=Z;if(Pe===De)continue;let Re=T.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,Dr,ib);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,Dr,ib),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var ob=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nb,ob]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>Ql,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>ab,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):ab({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return ab({configuration:e,type:t});let n=i.get(t);return n===null?ab({configuration:e,type:t}):Co(n)}function ab({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lb(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function Ql(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await Ab(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await Ab(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lb(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await Ab(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lb(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function Ab(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`}}}}let l=r.cwd,c=v.join(l,Dr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,Dr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,Dr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(Dr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==Dr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sQ=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(Dr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sQ(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let h=me.getFactoryWithDefault(c.children,g,i);c.children.set(g,h),c=h}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},fM=async(r,e)=>{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-Yze))if(await Ai.checksumFile(a,{baseFs:M,algorithm:"sha1"})!==t.digest){let g=v.join(i,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));await M.renamePromise(a,g);let h=await n.readFilePromise(r);await M.writeFilePromise(g,h);try{await M.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await M.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await M.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await Yle(i,a,c),t.mtimeMs=new Date().getTime();try{await M.linkPromise(a,e)}catch(u){u&&u.code&&u.code=="EXDEV"&&(s.value="hardlinks-local",await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let o=t.mode&511;o!==420&&await M.chmodPromise(e,o)}}var qle=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==Dr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===Dr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,Dr,iQ),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(Dr)&&l(c,Dr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,Dr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Gle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let N=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of N){if(!O.innerLoop&&ce.name===iQ)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==Dr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(N){throw O.innerLoop||(N.message=`While cloning ${ue} -> ${te} ${N.message}`),N}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!1});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!0});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),N=e.get(ue.locator),ce=N.target,he=te,Pe=N.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,N=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=N.target,De=Z;if(Pe===De)continue;let Re=N.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,Dr,iQ);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,Dr,iQ),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var oQ=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nQ,oQ]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>bl,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>aQ,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):aQ({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return aQ({configuration:e,type:t});let n=i.get(t);return n===null?aQ({configuration:e,type:t}):Co(n)}function aQ({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lQ(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function bl(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await AQ(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await AQ(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lQ(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function AQ(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),i}function lb(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cb=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var ub=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ns=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ns.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ns.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ns.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=bt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${Ql(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gb=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fb=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!bt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new bt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ns.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=bt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new bt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=bt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(Ql(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gb.identHash)&&!o.peerDependencies.has(gb.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gb.identHash,x.makeDescriptor(gb,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hb=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(Ql(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ns.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>Ob,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(Qn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await Ob(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function Ob(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Ne.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Ne.root,o)),a!=null&&s.accept.push(v.resolve(Ne.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Ne.root,l));for(let P of c.values())s.accept.push(v.resolve(Ne.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Ne.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Ne.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Ne.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Ne.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Ne.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Ne.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=Lb(r,e.accept);if(i!==0)return i===2;let n=Lb(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=Lb(r,s.accept);if(o!==0)return o===2;let a=Lb(r,s.reject);if(a!==0)return a===1}return!1}function Lb(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n][0]!=="!"?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n].slice(1)));return Pue(r,i)?2:Pue(r,t)?1:0}function Pue(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n].includes("/")?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n]));return!!(n1.default.isMatch(r,t,{dot:!0,nocase:!0})||n1.default.isMatch(r,i,{dot:!0,basename:!0,nocase:!0}))}var Zu=class extends xe{constructor(){super(...arguments);this.installIfNeeded=z.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=z.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=z.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=z.String("--filename",{hidden:!0})}async execute(){var l;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await s1(n)&&(this.installIfNeeded?await i.install({cache:await Dt.find(t),report:new $r}):await i.restoreInstallState());let s=(l=this.out)!=null?l:this.filename,o=typeof s<"u"?v.resolve(this.context.cwd,T9e(s,{workspace:n})):v.resolve(n.cwd,"package.tgz");return(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async c=>{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await Ob(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=be.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function T9e(r,{workspace:e}){let t=r.replace("%s",N9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function N9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var Gue=J("crypto"),jue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,Gue.createHash)("sha1").update(e).digest("hex"),u=jue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} -`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cb,Ns],resolvers:[ub,fb,hb]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(Qn());As();var Mb=(i=>(i.All="all",i.Production="production",i.Development="development",i))(Mb||{}),Kb=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(Kb||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(Mb)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(Kb)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=be.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`),i}function lQ(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cQ=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var uQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=Qt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${bl(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gQ=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fQ=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!Qt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Qt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new Qt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=Qt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(bl(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gQ.identHash)&&!o.peerDependencies.has(gQ.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gQ.identHash,x.makeDescriptor(gQ,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ts.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>OQ,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(bn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await OQ(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function OQ(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Te.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Te.root,o)),a!=null&&s.accept.push(v.resolve(Te.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Te.root,l));for(let P of c.values())s.accept.push(v.resolve(Te.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Te.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Te.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Te.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Te.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Te.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Te.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=LQ(r,e.accept);if(i!==0)return i===2;let n=LQ(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=LQ(r,s.accept);if(o!==0)return o===2;let a=LQ(r,s.reject);if(a!==0)return a===1}return!1}function LQ(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n][0]!=="!"?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n].slice(1)));return Pue(r,i)?2:Pue(r,t)?1:0}function Pue(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n].includes("/")?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n]));return!!(n1.default.isMatch(r,t,{dot:!0,nocase:!0})||n1.default.isMatch(r,i,{dot:!0,basename:!0,nocase:!0}))}var Zu=class extends xe{constructor(){super(...arguments);this.installIfNeeded=z.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=z.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=z.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=z.String("--filename",{hidden:!0})}async execute(){var l;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await s1(n)&&(this.installIfNeeded?await i.install({cache:await Dt.find(t),report:new $r}):await i.restoreInstallState());let s=(l=this.out)!=null?l:this.filename,o=typeof s<"u"?v.resolve(this.context.cwd,N9e(s,{workspace:n})):v.resolve(n.cwd,"package.tgz");return(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async c=>{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await OQ(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=Qe.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function N9e(r,{workspace:e}){let t=r.replace("%s",T9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function T9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Gue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Gue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} +`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cQ,Ts],resolvers:[uQ,fQ,hQ]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(bn());As();var MQ=(i=>(i.All="all",i.Production="production",i.Development="development",i))(MQ||{}),KQ=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(KQ||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(MQ)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(KQ)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=Qe.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -724,25 +724,25 @@ ${ye.map(fe=>`Not found: ${ho(fe)} If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why <package>\` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await je.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=bt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=Qt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} -`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=be.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=be.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function Ub({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await Ub({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=be.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=be.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=be.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=Qe.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=Qe.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function UQ({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=Qe.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=Qe.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=Qe.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=be.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=Qe.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=be.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=Qe.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=be.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>NVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>Gb,diffFolders:()=>Q1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>b1,parseDescriptor:()=>TE,parseLocator:()=>NE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Ne.root,v.resolve(Ne.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),QVe=r=>({header:yVe(r),parts:[]}),bVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l<r.length;l++){let c=r[l];if(i==="parsing header")if(c.startsWith("@@"))i="parsing hunks",t.hunks=[],l-=1;else if(c.startsWith("diff --git ")){t&&t.diffLineFromPath&&a();let u=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!u)throw new Error(`Bad diff line: ${c}`);t.diffLineFromPath=u[1],t.diffLineToPath=u[2]}else if(c.startsWith("old mode "))t.oldMode=c.slice(9).trim();else if(c.startsWith("new mode "))t.newMode=c.slice(9).trim();else if(c.startsWith("deleted file mode "))t.deletedFileMode=c.slice(18).trim();else if(c.startsWith("new file mode "))t.newFileMode=c.slice(14).trim();else if(c.startsWith("rename from "))t.renameFrom=c.slice(12).trim();else if(c.startsWith("rename to "))t.renameTo=c.slice(10).trim();else if(c.startsWith("index ")){let u=c.match(/(\w+)\.\.(\w+)/);if(!u)continue;t.beforeHash=u[1],t.afterHash=u[2]}else c.startsWith("semver exclusivity ")?t.semverExclusivity=c.slice(19).trim():c.startsWith("--- ")?t.fromPath=c.slice(6).trim():c.startsWith("+++ ")&&(t.toPath=c.slice(6).trim());else{let u=bVe[c[0]]||null;switch(u){case"header":o(),n=QVe(c);break;case null:i="parsing header",a(),l-=1;break;case"pragma":{if(!c.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${c}`);if(!s)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");s.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!n)throw new Error("Bad parser state: Hunk lines encountered before hunk header");s&&s.type!==u&&(n.parts.push(s),s=null),s||(s={type:u,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1))}break;default:me.assertNever(u);break}}}a();for(let{hunks:l}of e)if(l)for(let c of l)xVe(c);return e}function vVe(r){let e=[];for(let t of r){let{semverExclusivity:i,diffLineFromPath:n,diffLineToPath:s,oldMode:o,newMode:a,deletedFileMode:l,newFileMode:c,renameFrom:u,renameTo:g,beforeHash:h,afterHash:p,fromPath:d,toPath:m,hunks:y}=t,B=u?"rename":l?"file deletion":c?"file creation":y&&y.length>0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:Hb(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:Hb(o),newMode:Hb(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function Hb(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function Gb(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!bt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=Qe.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jQ,diffFolders:()=>b1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>Q1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),bVe=r=>({header:yVe(r),parts:[]}),QVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l<r.length;l++){let c=r[l];if(i==="parsing header")if(c.startsWith("@@"))i="parsing hunks",t.hunks=[],l-=1;else if(c.startsWith("diff --git ")){t&&t.diffLineFromPath&&a();let u=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!u)throw new Error(`Bad diff line: ${c}`);t.diffLineFromPath=u[1],t.diffLineToPath=u[2]}else if(c.startsWith("old mode "))t.oldMode=c.slice(9).trim();else if(c.startsWith("new mode "))t.newMode=c.slice(9).trim();else if(c.startsWith("deleted file mode "))t.deletedFileMode=c.slice(18).trim();else if(c.startsWith("new file mode "))t.newFileMode=c.slice(14).trim();else if(c.startsWith("rename from "))t.renameFrom=c.slice(12).trim();else if(c.startsWith("rename to "))t.renameTo=c.slice(10).trim();else if(c.startsWith("index ")){let u=c.match(/(\w+)\.\.(\w+)/);if(!u)continue;t.beforeHash=u[1],t.afterHash=u[2]}else c.startsWith("semver exclusivity ")?t.semverExclusivity=c.slice(19).trim():c.startsWith("--- ")?t.fromPath=c.slice(6).trim():c.startsWith("+++ ")&&(t.toPath=c.slice(6).trim());else{let u=QVe[c[0]]||null;switch(u){case"header":o(),n=bVe(c);break;case null:i="parsing header",a(),l-=1;break;case"pragma":{if(!c.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${c}`);if(!s)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");s.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!n)throw new Error("Bad parser state: Hunk lines encountered before hunk header");s&&s.type!==u&&(n.parts.push(s),s=null),s||(s={type:u,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1))}break;default:me.assertNever(u);break}}}a();for(let{hunks:l}of e)if(l)for(let c of l)xVe(c);return e}function vVe(r){let e=[];for(let t of r){let{semverExclusivity:i,diffLineFromPath:n,diffLineToPath:s,oldMode:o,newMode:a,deletedFileMode:l,newFileMode:c,renameFrom:u,renameTo:g,beforeHash:h,afterHash:p,fromPath:d,toPath:m,hunks:y}=t,B=u?"rename":l?"file deletion":c?"file creation":y&&y.length>0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:HQ(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:HQ(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:HQ(o),newMode:HQ(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function HQ(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jQ(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!Qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` `)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` `):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function TE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function NE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new Gt(Ne.root),prefixPath:v.relative(Ne.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function Q1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` +`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function b1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function b1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!bt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var jb=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=NE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await an(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new Gt(v.resolve(Ne.root,g),{baseFs:y});try{await Gb(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var Yb=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=TE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=TE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=TE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=b1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=NE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await Q1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=be.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await je.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): +${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function Q1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!Qt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var GQ=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await an(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jQ(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var YQ=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=Q1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await b1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=Qe.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): ${a.map(l=>` -- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=be.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var TVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[jb],resolvers:[Yb]},NVe=TVe;var k1={};ct(k1,{default:()=>MVe});var qb=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qb]},MVe=OVe;var wQ=()=>({modules:new Map([["@yarnpkg/cli",Nm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",pn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",TO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Tr||"<unknown>",pluginConfiguration:wQ()});})(); +- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=Qe.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var NVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[GQ],resolvers:[YQ]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qQ=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qQ]},MVe=OVe;var wb=()=>({modules:new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",pn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",NO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Nr||"<unknown>",pluginConfiguration:wb()});})(); /*! * buildToken * Builds OAuth token prefix (helper function) diff --git a/.yarnrc.yml b/.yarnrc.yml index 6c9a9f8f5..b1fcdbfe8 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -11,7 +11,7 @@ plugins: - path: .yarn/plugins/@yarnpkg/plugin-exec.cjs spec: "@yarnpkg/plugin-exec" -yarnPath: .yarn/releases/yarn-3.8.4.cjs +yarnPath: .yarn/releases/yarn-3.8.5.cjs packageExtensions: "uniforms-bridge-json-schema@*": diff --git a/package.json b/package.json index 09304cc8d..e800bd9dd 100644 --- a/package.json +++ b/package.json @@ -22,5 +22,5 @@ "husky": "^9.0.0", "lint-staged": "^15.0.0" }, - "packageManager": "yarn@3.8.4" + "packageManager": "yarn@3.8.5" } From e22be514018432d30eea705ae5d633a65f7d718e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi <tm.igarashi@gmail.com> Date: Mon, 26 Aug 2024 16:37:41 -0400 Subject: [PATCH 346/471] fix: Add isEmbedded=true to DataMapper.tsx Fixes: #402 --- packages/ui/src/DataMapper.test.tsx | 12 ++++++- packages/ui/src/DataMapper.tsx | 28 +++------------ packages/ui/src/layout/MainCanvas.tsx | 18 ++++++++++ ...{MainLayout.scss => StandaloneLayout.scss} | 2 +- ...out.test.tsx => StandaloneLayout.test.tsx} | 21 +++++++----- .../{MainLayout.tsx => StandaloneLayout.tsx} | 34 +++++++++---------- packages/ui/src/layout/index.ts | 2 +- .../ui/src/providers/CanvasProvider.test.tsx | 4 +-- 8 files changed, 66 insertions(+), 55 deletions(-) create mode 100644 packages/ui/src/layout/MainCanvas.tsx rename packages/ui/src/layout/{MainLayout.scss => StandaloneLayout.scss} (84%) rename packages/ui/src/layout/{MainLayout.test.tsx => StandaloneLayout.test.tsx} (90%) rename packages/ui/src/layout/{MainLayout.tsx => StandaloneLayout.tsx} (61%) diff --git a/packages/ui/src/DataMapper.test.tsx b/packages/ui/src/DataMapper.test.tsx index 981ab5288..4eafb86f6 100644 --- a/packages/ui/src/DataMapper.test.tsx +++ b/packages/ui/src/DataMapper.test.tsx @@ -1,5 +1,5 @@ import { DataMapper } from './DataMapper'; -import { render } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import * as fs from 'fs'; describe('DataMapper', () => { @@ -8,4 +8,14 @@ describe('DataMapper', () => { render(<DataMapper xsltFile={xsltFile} onUpdate={jest.fn()} />); // TODO assert mappings are restored even without loading schema }); + + it('should render toolbar menu in standalone mode', () => { + render(<DataMapper />); + expect(screen.getByTestId('main-menu-button')).toBeInTheDocument(); + }); + + it('should not render toolbar menu in embedded mode', () => { + render(<DataMapper isEmbedded={true} />); + expect(screen.queryByTestId('main-menu-button')).toBeFalsy(); + }); }); diff --git a/packages/ui/src/DataMapper.tsx b/packages/ui/src/DataMapper.tsx index 7a90d5aba..8eaf9ea81 100644 --- a/packages/ui/src/DataMapper.tsx +++ b/packages/ui/src/DataMapper.tsx @@ -13,43 +13,25 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { MainLayout } from './layout'; +import { StandaloneLayout } from './layout'; import { FunctionComponent } from 'react'; -import { useDataMapper } from './hooks/useDataMapper'; -import { DataMapperMonitor } from './components/debug/DataMapperMonitor'; -import { CanvasMonitor } from './components/debug/CanvasMonitor'; import { DataMapperProvider } from './providers'; import { CanvasProvider } from './providers/CanvasProvider'; - -const DataMapperApp: FunctionComponent = () => { - const { debug } = useDataMapper()!; - return ( - <> - {debug && ( - <> - <DataMapperMonitor /> - <CanvasMonitor /> - </> - )} - <MainLayout /> - </> - ); -}; +import { MainCanvas } from './layout/MainCanvas'; export interface IDataMapperProps { modalsContainerId?: string; xsltFile?: string; onUpdate?: (xsltFile: string) => void; + isEmbedded?: boolean; } -export const DataMapper: FunctionComponent<IDataMapperProps> = ({ xsltFile, onUpdate }) => { +export const DataMapper: FunctionComponent<IDataMapperProps> = ({ xsltFile, onUpdate, isEmbedded }) => { return ( <> <DataMapperProvider xsltFile={xsltFile} onUpdate={onUpdate}> - <CanvasProvider> - <DataMapperApp /> - </CanvasProvider> + <CanvasProvider>{isEmbedded ? <MainCanvas /> : <StandaloneLayout />}</CanvasProvider> </DataMapperProvider> </> ); diff --git a/packages/ui/src/layout/MainCanvas.tsx b/packages/ui/src/layout/MainCanvas.tsx new file mode 100644 index 000000000..4281d6d05 --- /dev/null +++ b/packages/ui/src/layout/MainCanvas.tsx @@ -0,0 +1,18 @@ +import { FunctionComponent, useMemo } from 'react'; +import { useDataMapper } from '../hooks'; +import { CanvasView } from '../models/view'; +import { SourceTargetView } from './views'; + +export const MainCanvas: FunctionComponent = () => { + const { activeView } = useDataMapper(); + const currentView = useMemo(() => { + switch (activeView) { + case CanvasView.SOURCE_TARGET: + return <SourceTargetView />; + default: + return <>View {activeView} is not supported</>; + } + }, [activeView]); + + return <>{currentView}</>; +}; diff --git a/packages/ui/src/layout/MainLayout.scss b/packages/ui/src/layout/StandaloneLayout.scss similarity index 84% rename from packages/ui/src/layout/MainLayout.scss rename to packages/ui/src/layout/StandaloneLayout.scss index 4b6563b1e..297331975 100644 --- a/packages/ui/src/layout/MainLayout.scss +++ b/packages/ui/src/layout/StandaloneLayout.scss @@ -1,4 +1,4 @@ -.main-layout { +.standalone-layout { height: 100%; &__drawer-content { diff --git a/packages/ui/src/layout/MainLayout.test.tsx b/packages/ui/src/layout/StandaloneLayout.test.tsx similarity index 90% rename from packages/ui/src/layout/MainLayout.test.tsx rename to packages/ui/src/layout/StandaloneLayout.test.tsx index d3d73aaac..abd6d1fc9 100644 --- a/packages/ui/src/layout/MainLayout.test.tsx +++ b/packages/ui/src/layout/StandaloneLayout.test.tsx @@ -1,14 +1,12 @@ import { DataMapperProvider } from '../providers'; import { CanvasProvider } from '../providers/CanvasProvider'; import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'; -import { MainLayout } from './MainLayout'; +import { StandaloneLayout } from './StandaloneLayout'; import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; import { useDataMapper } from '../hooks'; import { useCanvas } from '../hooks/useCanvas'; import { TestUtil } from '../test/test-util'; import { MappingSerializerService } from '../services/mapping-serializer.service'; -import { CanvasMonitor } from '../components/debug/CanvasMonitor'; -import { DataMapperMonitor } from '../components/debug/DataMapperMonitor'; import { MappingTree } from '../models/mapping'; describe('MainLayout', () => { @@ -35,7 +33,7 @@ describe('MainLayout', () => { <DataMapperProvider> <CanvasProvider> <TestLoader> - <MainLayout /> + <StandaloneLayout /> </TestLoader> </CanvasProvider> </DataMapperProvider>, @@ -79,10 +77,17 @@ describe('MainLayout', () => { describe('debug', () => { it('should output debug info to console', () => { const TestLoader: FunctionComponent<PropsWithChildren> = ({ children }) => { - const { mappingTree, setMappingTree, sourceParameterMap, setSourceBodyDocument, setTargetBodyDocument } = - useDataMapper(); + const { + setDebug, + mappingTree, + setMappingTree, + sourceParameterMap, + setSourceBodyDocument, + setTargetBodyDocument, + } = useDataMapper(); const { reloadNodeReferences } = useCanvas(); useEffect(() => { + setDebug(true); const sourceDoc = TestUtil.createSourceOrderDoc(); setSourceBodyDocument(sourceDoc); const targetDoc = TestUtil.createTargetOrderDoc(); @@ -105,9 +110,7 @@ describe('MainLayout', () => { <DataMapperProvider> <CanvasProvider> <TestLoader> - <DataMapperMonitor /> - <CanvasMonitor /> - <MainLayout /> + <StandaloneLayout /> </TestLoader> </CanvasProvider> </DataMapperProvider>, diff --git a/packages/ui/src/layout/MainLayout.tsx b/packages/ui/src/layout/StandaloneLayout.tsx similarity index 61% rename from packages/ui/src/layout/MainLayout.tsx rename to packages/ui/src/layout/StandaloneLayout.tsx index e7a243a76..f81c82d40 100644 --- a/packages/ui/src/layout/MainLayout.tsx +++ b/packages/ui/src/layout/StandaloneLayout.tsx @@ -13,25 +13,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, memo, useContext, useMemo } from 'react'; +import { FunctionComponent, memo } from 'react'; import { Masthead, MastheadContent, Page, PageSection, PageSectionVariants } from '@patternfly/react-core'; -import { SourceTargetView } from './views'; -import { DataMapperContext } from '../providers'; -import { CanvasView } from '../models/view'; import { ContextToolbar } from './ContextToolbar'; -import './MainLayout.scss'; - -export const MainLayout: FunctionComponent = memo(function MainLayout() { - const { activeView } = useContext(DataMapperContext)!; - const currentView = useMemo(() => { - switch (activeView) { - case CanvasView.SOURCE_TARGET: - return <SourceTargetView />; - default: - return <>View {activeView} is not supported</>; - } - }, [activeView]); +import './StandaloneLayout.scss'; +import { MainCanvas } from './MainCanvas'; +import { useDataMapper } from '../hooks'; +import { CanvasMonitor } from '../components/debug/CanvasMonitor'; +import { DataMapperMonitor } from '../components/debug/DataMapperMonitor'; +export const StandaloneLayout: FunctionComponent = memo(function MainLayout() { + const { debug } = useDataMapper()!; const header = ( <Masthead> <MastheadContent> @@ -42,8 +34,14 @@ export const MainLayout: FunctionComponent = memo(function MainLayout() { return ( <Page header={header}> - <PageSection variant={PageSectionVariants.default} className="main-layout"> - {currentView} + {debug && ( + <> + <DataMapperMonitor /> + <CanvasMonitor /> + </> + )} + <PageSection variant={PageSectionVariants.default} className="standalone-layout"> + <MainCanvas /> </PageSection> </Page> ); diff --git a/packages/ui/src/layout/index.ts b/packages/ui/src/layout/index.ts index 1abe55193..b2d385064 100644 --- a/packages/ui/src/layout/index.ts +++ b/packages/ui/src/layout/index.ts @@ -1 +1 @@ -export * from './MainLayout'; +export * from './StandaloneLayout'; diff --git a/packages/ui/src/providers/CanvasProvider.test.tsx b/packages/ui/src/providers/CanvasProvider.test.tsx index 29924d009..6acdcd6cd 100644 --- a/packages/ui/src/providers/CanvasProvider.test.tsx +++ b/packages/ui/src/providers/CanvasProvider.test.tsx @@ -10,7 +10,7 @@ import { useCanvas } from '../hooks/useCanvas'; import { BODY_DOCUMENT_ID } from '../models/document'; import { MappingSerializerService } from '../services/mapping-serializer.service'; import { screen } from '@testing-library/react'; -import { MainLayout } from '../layout'; +import { StandaloneLayout } from '../layout'; import { MappingService } from '../services/mapping.service'; import { IMappingLink } from '../models/visualization'; @@ -152,7 +152,7 @@ describe('CanvasProvider', () => { <DataMapperProvider> <CanvasProvider> <LoadMappings> - <MainLayout></MainLayout> + <StandaloneLayout></StandaloneLayout> </LoadMappings> </CanvasProvider> </DataMapperProvider>, From c93a58a4707aa0968ea93fc56a570940aafae7e3 Mon Sep 17 00:00:00 2001 From: "Ricardo M." <lordrip@gmail.com> Date: Wed, 28 Aug 2024 16:23:28 +0200 Subject: [PATCH 347/471] Add @kaoto/xml-schema-ts package --- .../xml-schema-ts/.lintstagedrc.json | 0 .../xml-schema-ts/README.md | 0 .../xml-schema-ts/babel.config.cjs | 0 .../xml-schema-ts/jest.config.js | 0 .../xml-schema-ts/jest.setup.ts | 0 .../xml-schema-ts/package.json | 35 ++++++++--------- .../src/DocumentFragmentNodeList.ts | 0 .../xml-schema-ts/src/QName.ts | 0 .../xml-schema-ts/src/SchemaBuilder.ts | 0 .../xml-schema-ts/src/SchemaKey.ts | 0 .../xml-schema-ts/src/TypeReceiver.ts | 0 .../xml-schema-ts/src/XmlSchema.ts | 0 .../xml-schema-ts/src/XmlSchemaAnnotated.ts | 0 .../src/XmlSchemaAnyAttribute.ts | 0 .../src/XmlSchemaCollection.test.ts | 4 +- .../xml-schema-ts/src/XmlSchemaCollection.ts | 0 .../xml-schema-ts/src/XmlSchemaContent.ts | 0 .../src/XmlSchemaContentModel.ts | 0 .../src/XmlSchemaContentProcessing.ts | 0 .../xml-schema-ts/src/XmlSchemaContentType.ts | 0 .../src/XmlSchemaDerivationMethod.ts | 0 .../src/XmlSchemaDocumentation.ts | 0 .../xml-schema-ts/src/XmlSchemaForm.ts | 0 .../xml-schema-ts/src/XmlSchemaGroup.ts | 0 .../xml-schema-ts/src/XmlSchemaItemWithRef.ts | 0 .../src/XmlSchemaItemWithRefBase.ts | 0 .../xml-schema-ts/src/XmlSchemaNotation.ts | 0 .../xml-schema-ts/src/XmlSchemaObject.ts | 0 .../xml-schema-ts/src/XmlSchemaType.ts | 0 .../xml-schema-ts/src/XmlSchemaUse.ts | 0 .../xml-schema-ts/src/XmlSchemaXPath.ts | 0 .../src/annotation/XmlSchemaAnnotation.ts | 0 .../src/annotation/XmlSchemaAnnotationItem.ts | 0 .../src/annotation/XmlSchemaAppInfo.ts | 0 .../src/annotation/XmlSchemaDocumentation.ts | 0 .../src/attribute/XmlSchemaAttribute.ts | 0 .../src/attribute/XmlSchemaAttributeGroup.ts | 0 .../XmlSchemaAttributeGroupMember.ts | 0 .../attribute/XmlSchemaAttributeGroupRef.ts | 0 .../attribute/XmlSchemaAttributeOrGroupRef.ts | 0 .../src/complex/XmlSchemaComplexContent.ts | 0 .../XmlSchemaComplexContentExtension.ts | 0 .../XmlSchemaComplexContentRestriction.ts | 0 .../src/complex/XmlSchemaComplexType.ts | 0 .../xml-schema-ts/src/constants.ts | 0 .../constraint/XmlSchemaIdentityConstraint.ts | 0 .../src/constraint/XmlSchemaKey.ts | 0 .../src/constraint/XmlSchemaKeyref.ts | 0 .../src/constraint/XmlSchemaUnique.ts | 0 .../DefaultExtensionDeserializer.ts | 0 .../extensions/DefaultExtensionSerializer.ts | 0 .../src/extensions/ExtensionDeserializer.ts | 0 .../src/extensions/ExtensionRegistry.ts | 0 .../src/extensions/ExtensionSerializer.ts | 0 .../src/external/XmlSchemaExternal.ts | 0 .../src/external/XmlSchemaImport.ts | 0 .../src/external/XmlSchemaInclude.ts | 0 .../src/external/XmlSchemaRedefine.ts | 0 .../src/facet/XmlSchemaEnumerationFacet.ts | 0 .../xml-schema-ts/src/facet/XmlSchemaFacet.ts | 0 .../src/facet/XmlSchemaFacetConstructor.ts | 0 .../src/facet/XmlSchemaFractionDigitsFacet.ts | 0 .../src/facet/XmlSchemaLengthFacet.ts | 0 .../src/facet/XmlSchemaMaxExclusiveFacet.ts | 0 .../src/facet/XmlSchemaMaxInclusiveFacet.ts | 0 .../src/facet/XmlSchemaMaxLengthFacet.ts | 0 .../src/facet/XmlSchemaMinExclusiveFacet.ts | 0 .../src/facet/XmlSchemaMinInclusiveFacet.ts | 0 .../src/facet/XmlSchemaMinLengthFacet.ts | 0 .../src/facet/XmlSchemaNumericFacet.ts | 0 .../src/facet/XmlSchemaPatternFacet.ts | 0 .../src/facet/XmlSchemaTotalDigitsFacet.ts | 0 .../src/facet/XmlSchemaWhiteSpaceFacet.ts | 0 .../xml-schema-ts/src/index.ts | 0 .../src/particle/XmlSchemaAll.ts | 0 .../src/particle/XmlSchemaAllMember.ts | 0 .../src/particle/XmlSchemaAny.ts | 0 .../src/particle/XmlSchemaChoice.ts | 0 .../src/particle/XmlSchemaChoiceMember.ts | 0 .../src/particle/XmlSchemaElement.ts | 0 .../src/particle/XmlSchemaGroupParticle.ts | 0 .../src/particle/XmlSchemaGroupRef.ts | 0 .../src/particle/XmlSchemaParticle.ts | 0 .../src/particle/XmlSchemaSequence.ts | 0 .../src/particle/XmlSchemaSequenceMember.ts | 0 .../src/resolver/CollectionURIResolver.ts | 0 .../src/resolver/DefaultURIResolver.ts | 0 .../xml-schema-ts/src/resolver/URIResolver.ts | 0 .../src/simple/XmlSchemaSimpleContent.ts | 0 .../simple/XmlSchemaSimpleContentExtension.ts | 0 .../XmlSchemaSimpleContentRestriction.ts | 0 .../src/simple/XmlSchemaSimpleType.ts | 0 .../src/simple/XmlSchemaSimpleTypeContent.ts | 0 .../src/simple/XmlSchemaSimpleTypeList.ts | 0 .../simple/XmlSchemaSimpleTypeRestriction.ts | 0 .../src/simple/XmlSchemaSimpleTypeUnion.ts | 0 .../src/utils/NamespaceContext.ts | 0 .../src/utils/NamespaceContextOwner.ts | 0 .../src/utils/NamespacePrefixList.ts | 0 .../src/utils/NodeNamespaceContext.ts | 0 .../xml-schema-ts/src/utils/ObjectMap.test.ts | 0 .../xml-schema-ts/src/utils/ObjectMap.ts | 0 .../src/utils/PrefixCollector.ts | 0 .../xml-schema-ts/src/utils/XDOMUtil.ts | 0 .../xml-schema-ts/src/utils/XmlSchemaNamed.ts | 0 .../src/utils/XmlSchemaNamedImpl.ts | 0 .../src/utils/XmlSchemaNamedType.ts | 0 .../src/utils/XmlSchemaNamedWithForm.ts | 0 .../src/utils/XmlSchemaNamedWithFormImpl.ts | 0 .../src/utils/XmlSchemaObjectBase.ts | 0 .../xml-schema-ts/src/utils/XmlSchemaRef.ts | 0 .../src/utils/XmlSchemaRefBase.ts | 0 .../xml-schema-ts/src/xml-parser.test.ts | 0 .../test-resources/ExampleOrder.xml | 0 .../test-resources/ShipOrder.xsd | 0 .../test-resources/ShipOrderToShipOrder.xsl | 0 .../test-resources/TestDocument.xsd | 0 .../xml-schema-ts}/test-resources/hello.xsd | 0 .../xml-schema-ts}/test-resources/hello.xsl | 0 .../xml-schema-ts/tsconfig.cjs.json | 0 .../xml-schema-ts/tsconfig.esm.json | 0 .../xml-schema-ts/tsconfig.json | 1 + yarn.lock | 39 ++++++++++++++++++- 123 files changed, 58 insertions(+), 21 deletions(-) rename {data-mapper/packages => packages}/xml-schema-ts/.lintstagedrc.json (100%) rename {data-mapper/packages => packages}/xml-schema-ts/README.md (100%) rename {data-mapper/packages => packages}/xml-schema-ts/babel.config.cjs (100%) rename {data-mapper/packages => packages}/xml-schema-ts/jest.config.js (100%) rename {data-mapper/packages => packages}/xml-schema-ts/jest.setup.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/package.json (52%) rename {data-mapper/packages => packages}/xml-schema-ts/src/DocumentFragmentNodeList.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/QName.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/SchemaBuilder.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/SchemaKey.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/TypeReceiver.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchema.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaAnnotated.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaAnyAttribute.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaCollection.test.ts (96%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaCollection.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaContent.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaContentModel.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaContentProcessing.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaContentType.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaDerivationMethod.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaDocumentation.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaForm.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaGroup.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaItemWithRef.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaNotation.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaObject.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaType.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaUse.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/XmlSchemaXPath.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/annotation/XmlSchemaAnnotation.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/annotation/XmlSchemaAnnotationItem.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/annotation/XmlSchemaAppInfo.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/annotation/XmlSchemaDocumentation.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/attribute/XmlSchemaAttribute.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/attribute/XmlSchemaAttributeGroup.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupRef.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/attribute/XmlSchemaAttributeOrGroupRef.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/complex/XmlSchemaComplexContent.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/complex/XmlSchemaComplexContentExtension.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/complex/XmlSchemaComplexContentRestriction.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/complex/XmlSchemaComplexType.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/constants.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/constraint/XmlSchemaIdentityConstraint.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/constraint/XmlSchemaKey.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/constraint/XmlSchemaKeyref.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/constraint/XmlSchemaUnique.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/extensions/DefaultExtensionDeserializer.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/extensions/DefaultExtensionSerializer.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/extensions/ExtensionDeserializer.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/extensions/ExtensionRegistry.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/extensions/ExtensionSerializer.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/external/XmlSchemaExternal.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/external/XmlSchemaImport.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/external/XmlSchemaInclude.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/external/XmlSchemaRedefine.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaEnumerationFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaFacetConstructor.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaFractionDigitsFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaLengthFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaMaxExclusiveFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaMaxInclusiveFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaMaxLengthFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaMinExclusiveFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaMinInclusiveFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaMinLengthFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaNumericFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaPatternFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaTotalDigitsFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/facet/XmlSchemaWhiteSpaceFacet.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/index.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaAll.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaAllMember.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaAny.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaChoice.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaElement.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaGroupParticle.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaGroupRef.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaParticle.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaSequence.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/resolver/CollectionURIResolver.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/resolver/DefaultURIResolver.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/resolver/URIResolver.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleContent.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleContentExtension.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleContentRestriction.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleType.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleTypeContent.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleTypeList.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleTypeRestriction.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/simple/XmlSchemaSimpleTypeUnion.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/NamespaceContext.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/NamespaceContextOwner.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/NamespacePrefixList.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/NodeNamespaceContext.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/ObjectMap.test.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/ObjectMap.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/PrefixCollector.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XDOMUtil.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaNamed.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaNamedImpl.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaNamedType.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaNamedWithFormImpl.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaRef.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/utils/XmlSchemaRefBase.ts (100%) rename {data-mapper/packages => packages}/xml-schema-ts/src/xml-parser.test.ts (100%) rename {data-mapper => packages/xml-schema-ts}/test-resources/ExampleOrder.xml (100%) rename {data-mapper => packages/xml-schema-ts}/test-resources/ShipOrder.xsd (100%) rename {data-mapper => packages/xml-schema-ts}/test-resources/ShipOrderToShipOrder.xsl (100%) rename {data-mapper => packages/xml-schema-ts}/test-resources/TestDocument.xsd (100%) rename {data-mapper => packages/xml-schema-ts}/test-resources/hello.xsd (100%) rename {data-mapper => packages/xml-schema-ts}/test-resources/hello.xsl (100%) rename {data-mapper/packages => packages}/xml-schema-ts/tsconfig.cjs.json (100%) rename {data-mapper/packages => packages}/xml-schema-ts/tsconfig.esm.json (100%) rename {data-mapper/packages => packages}/xml-schema-ts/tsconfig.json (95%) diff --git a/data-mapper/packages/xml-schema-ts/.lintstagedrc.json b/packages/xml-schema-ts/.lintstagedrc.json similarity index 100% rename from data-mapper/packages/xml-schema-ts/.lintstagedrc.json rename to packages/xml-schema-ts/.lintstagedrc.json diff --git a/data-mapper/packages/xml-schema-ts/README.md b/packages/xml-schema-ts/README.md similarity index 100% rename from data-mapper/packages/xml-schema-ts/README.md rename to packages/xml-schema-ts/README.md diff --git a/data-mapper/packages/xml-schema-ts/babel.config.cjs b/packages/xml-schema-ts/babel.config.cjs similarity index 100% rename from data-mapper/packages/xml-schema-ts/babel.config.cjs rename to packages/xml-schema-ts/babel.config.cjs diff --git a/data-mapper/packages/xml-schema-ts/jest.config.js b/packages/xml-schema-ts/jest.config.js similarity index 100% rename from data-mapper/packages/xml-schema-ts/jest.config.js rename to packages/xml-schema-ts/jest.config.js diff --git a/data-mapper/packages/xml-schema-ts/jest.setup.ts b/packages/xml-schema-ts/jest.setup.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/jest.setup.ts rename to packages/xml-schema-ts/jest.setup.ts diff --git a/data-mapper/packages/xml-schema-ts/package.json b/packages/xml-schema-ts/package.json similarity index 52% rename from data-mapper/packages/xml-schema-ts/package.json rename to packages/xml-schema-ts/package.json index fe357815e..fbf7d7110 100644 --- a/data-mapper/packages/xml-schema-ts/package.json +++ b/packages/xml-schema-ts/package.json @@ -1,13 +1,13 @@ { - "name": "@datamapper-poc/xml-schema-ts", - "version": "0.0.1", + "name": "@kaoto/xml-schema-ts", + "version": "2.2.0-dev", "type": "module", - "description": "datamapper-poc :: XmlSchemaTS", - "repository": "https://github.com/KaotoIO/datamapper-poc", + "description": "Kaoto XmlSchemaTS", + "repository": "https://github.com/KaotoIO/kaoto", "repositoryDirectory": "packages/xml-schema-ts", - "author": "KaotoIO", + "author": "The Kaoto Team", "private": true, - "license": "Apache-2.0", + "license": "Apache License v2.0", "types": "./dist/esm/index.d.ts", "main": "./dist/esm/index.js", "exports": { @@ -27,21 +27,20 @@ "lint:fix": "yarn lint:code --fix" }, "devDependencies": { - "@babel/preset-env": "^7.24.0", - "@babel/preset-react": "^7.23.3", - "@babel/preset-typescript": "^7.23.3", + "@babel/core": "^7.23.2", + "@babel/preset-env": "^7.21.5", + "@babel/preset-typescript": "^7.21.5", "@testing-library/jest-dom": "^6.4.2", "@types/jest": "^29.5.12", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint": "^8.45.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^27.2.1", + "eslint-plugin-prettier": "^5.0.0", "jest": "^29.7.0", + "prettier": "^3.0.0", "rimraf": "^6.0.0", - "stylelint": "^16.2.1", - "stylelint-prettier": "^5.0.0", - "typescript": "^5.3.3", - "vite": "^5.1.4" + "typescript": "^5.4.2", + "vite": "^5.4.0" } } diff --git a/data-mapper/packages/xml-schema-ts/src/DocumentFragmentNodeList.ts b/packages/xml-schema-ts/src/DocumentFragmentNodeList.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/DocumentFragmentNodeList.ts rename to packages/xml-schema-ts/src/DocumentFragmentNodeList.ts diff --git a/data-mapper/packages/xml-schema-ts/src/QName.ts b/packages/xml-schema-ts/src/QName.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/QName.ts rename to packages/xml-schema-ts/src/QName.ts diff --git a/data-mapper/packages/xml-schema-ts/src/SchemaBuilder.ts b/packages/xml-schema-ts/src/SchemaBuilder.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/SchemaBuilder.ts rename to packages/xml-schema-ts/src/SchemaBuilder.ts diff --git a/data-mapper/packages/xml-schema-ts/src/SchemaKey.ts b/packages/xml-schema-ts/src/SchemaKey.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/SchemaKey.ts rename to packages/xml-schema-ts/src/SchemaKey.ts diff --git a/data-mapper/packages/xml-schema-ts/src/TypeReceiver.ts b/packages/xml-schema-ts/src/TypeReceiver.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/TypeReceiver.ts rename to packages/xml-schema-ts/src/TypeReceiver.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchema.ts b/packages/xml-schema-ts/src/XmlSchema.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchema.ts rename to packages/xml-schema-ts/src/XmlSchema.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaAnnotated.ts b/packages/xml-schema-ts/src/XmlSchemaAnnotated.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaAnnotated.ts rename to packages/xml-schema-ts/src/XmlSchemaAnnotated.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaAnyAttribute.ts b/packages/xml-schema-ts/src/XmlSchemaAnyAttribute.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaAnyAttribute.ts rename to packages/xml-schema-ts/src/XmlSchemaAnyAttribute.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts similarity index 96% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts rename to packages/xml-schema-ts/src/XmlSchemaCollection.test.ts index 1ec660759..cde28af8f 100644 --- a/data-mapper/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts +++ b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts @@ -10,8 +10,8 @@ import { XmlSchemaAttributeGroupRef } from './attribute/XmlSchemaAttributeGroupR import { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; describe('XmlSchemaCollection', () => { - const orderXsd = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrder.xsd').toString(); - const testXsd = fs.readFileSync(__dirname + '/../../../test-resources/TestDocument.xsd').toString(); + const orderXsd = fs.readFileSync(__dirname + '/../test-resources/ShipOrder.xsd').toString(); + const testXsd = fs.readFileSync(__dirname + '/../test-resources/TestDocument.xsd').toString(); it('should parse ShipOrder XML schema', () => { const collection = new XmlSchemaCollection(); diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaCollection.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaCollection.ts rename to packages/xml-schema-ts/src/XmlSchemaCollection.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaContent.ts b/packages/xml-schema-ts/src/XmlSchemaContent.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaContent.ts rename to packages/xml-schema-ts/src/XmlSchemaContent.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaContentModel.ts b/packages/xml-schema-ts/src/XmlSchemaContentModel.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaContentModel.ts rename to packages/xml-schema-ts/src/XmlSchemaContentModel.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaContentProcessing.ts b/packages/xml-schema-ts/src/XmlSchemaContentProcessing.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaContentProcessing.ts rename to packages/xml-schema-ts/src/XmlSchemaContentProcessing.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaContentType.ts b/packages/xml-schema-ts/src/XmlSchemaContentType.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaContentType.ts rename to packages/xml-schema-ts/src/XmlSchemaContentType.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaDerivationMethod.ts b/packages/xml-schema-ts/src/XmlSchemaDerivationMethod.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaDerivationMethod.ts rename to packages/xml-schema-ts/src/XmlSchemaDerivationMethod.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaDocumentation.ts b/packages/xml-schema-ts/src/XmlSchemaDocumentation.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaDocumentation.ts rename to packages/xml-schema-ts/src/XmlSchemaDocumentation.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaForm.ts b/packages/xml-schema-ts/src/XmlSchemaForm.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaForm.ts rename to packages/xml-schema-ts/src/XmlSchemaForm.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaGroup.ts b/packages/xml-schema-ts/src/XmlSchemaGroup.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaGroup.ts rename to packages/xml-schema-ts/src/XmlSchemaGroup.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts b/packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts rename to packages/xml-schema-ts/src/XmlSchemaItemWithRef.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts b/packages/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts rename to packages/xml-schema-ts/src/XmlSchemaItemWithRefBase.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaNotation.ts b/packages/xml-schema-ts/src/XmlSchemaNotation.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaNotation.ts rename to packages/xml-schema-ts/src/XmlSchemaNotation.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaObject.ts b/packages/xml-schema-ts/src/XmlSchemaObject.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaObject.ts rename to packages/xml-schema-ts/src/XmlSchemaObject.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaType.ts b/packages/xml-schema-ts/src/XmlSchemaType.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaType.ts rename to packages/xml-schema-ts/src/XmlSchemaType.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaUse.ts b/packages/xml-schema-ts/src/XmlSchemaUse.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaUse.ts rename to packages/xml-schema-ts/src/XmlSchemaUse.ts diff --git a/data-mapper/packages/xml-schema-ts/src/XmlSchemaXPath.ts b/packages/xml-schema-ts/src/XmlSchemaXPath.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/XmlSchemaXPath.ts rename to packages/xml-schema-ts/src/XmlSchemaXPath.ts diff --git a/data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotation.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotation.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotation.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaAnnotation.ts diff --git a/data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotationItem.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotationItem.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaAnnotationItem.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaAnnotationItem.ts diff --git a/data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaAppInfo.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaAppInfo.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaAppInfo.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaAppInfo.ts diff --git a/data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaDocumentation.ts b/packages/xml-schema-ts/src/annotation/XmlSchemaDocumentation.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/annotation/XmlSchemaDocumentation.ts rename to packages/xml-schema-ts/src/annotation/XmlSchemaDocumentation.ts diff --git a/data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttribute.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttribute.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttribute.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttribute.ts diff --git a/data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroup.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroup.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroup.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroup.ts diff --git a/data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts diff --git a/data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupRef.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupRef.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupRef.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupRef.ts diff --git a/data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeOrGroupRef.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeOrGroupRef.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeOrGroupRef.ts rename to packages/xml-schema-ts/src/attribute/XmlSchemaAttributeOrGroupRef.ts diff --git a/data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexContent.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexContent.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexContent.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexContent.ts diff --git a/data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentExtension.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentExtension.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentExtension.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexContentExtension.ts diff --git a/data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentRestriction.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentRestriction.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexContentRestriction.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexContentRestriction.ts diff --git a/data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexType.ts b/packages/xml-schema-ts/src/complex/XmlSchemaComplexType.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/complex/XmlSchemaComplexType.ts rename to packages/xml-schema-ts/src/complex/XmlSchemaComplexType.ts diff --git a/data-mapper/packages/xml-schema-ts/src/constants.ts b/packages/xml-schema-ts/src/constants.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/constants.ts rename to packages/xml-schema-ts/src/constants.ts diff --git a/data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaIdentityConstraint.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaIdentityConstraint.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaIdentityConstraint.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaIdentityConstraint.ts diff --git a/data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaKey.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaKey.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaKey.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaKey.ts diff --git a/data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaKeyref.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaKeyref.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaKeyref.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaKeyref.ts diff --git a/data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaUnique.ts b/packages/xml-schema-ts/src/constraint/XmlSchemaUnique.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/constraint/XmlSchemaUnique.ts rename to packages/xml-schema-ts/src/constraint/XmlSchemaUnique.ts diff --git a/data-mapper/packages/xml-schema-ts/src/extensions/DefaultExtensionDeserializer.ts b/packages/xml-schema-ts/src/extensions/DefaultExtensionDeserializer.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/extensions/DefaultExtensionDeserializer.ts rename to packages/xml-schema-ts/src/extensions/DefaultExtensionDeserializer.ts diff --git a/data-mapper/packages/xml-schema-ts/src/extensions/DefaultExtensionSerializer.ts b/packages/xml-schema-ts/src/extensions/DefaultExtensionSerializer.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/extensions/DefaultExtensionSerializer.ts rename to packages/xml-schema-ts/src/extensions/DefaultExtensionSerializer.ts diff --git a/data-mapper/packages/xml-schema-ts/src/extensions/ExtensionDeserializer.ts b/packages/xml-schema-ts/src/extensions/ExtensionDeserializer.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/extensions/ExtensionDeserializer.ts rename to packages/xml-schema-ts/src/extensions/ExtensionDeserializer.ts diff --git a/data-mapper/packages/xml-schema-ts/src/extensions/ExtensionRegistry.ts b/packages/xml-schema-ts/src/extensions/ExtensionRegistry.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/extensions/ExtensionRegistry.ts rename to packages/xml-schema-ts/src/extensions/ExtensionRegistry.ts diff --git a/data-mapper/packages/xml-schema-ts/src/extensions/ExtensionSerializer.ts b/packages/xml-schema-ts/src/extensions/ExtensionSerializer.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/extensions/ExtensionSerializer.ts rename to packages/xml-schema-ts/src/extensions/ExtensionSerializer.ts diff --git a/data-mapper/packages/xml-schema-ts/src/external/XmlSchemaExternal.ts b/packages/xml-schema-ts/src/external/XmlSchemaExternal.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/external/XmlSchemaExternal.ts rename to packages/xml-schema-ts/src/external/XmlSchemaExternal.ts diff --git a/data-mapper/packages/xml-schema-ts/src/external/XmlSchemaImport.ts b/packages/xml-schema-ts/src/external/XmlSchemaImport.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/external/XmlSchemaImport.ts rename to packages/xml-schema-ts/src/external/XmlSchemaImport.ts diff --git a/data-mapper/packages/xml-schema-ts/src/external/XmlSchemaInclude.ts b/packages/xml-schema-ts/src/external/XmlSchemaInclude.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/external/XmlSchemaInclude.ts rename to packages/xml-schema-ts/src/external/XmlSchemaInclude.ts diff --git a/data-mapper/packages/xml-schema-ts/src/external/XmlSchemaRedefine.ts b/packages/xml-schema-ts/src/external/XmlSchemaRedefine.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/external/XmlSchemaRedefine.ts rename to packages/xml-schema-ts/src/external/XmlSchemaRedefine.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaEnumerationFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaEnumerationFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaEnumerationFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaEnumerationFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaFacetConstructor.ts b/packages/xml-schema-ts/src/facet/XmlSchemaFacetConstructor.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaFacetConstructor.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaFacetConstructor.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaFractionDigitsFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaFractionDigitsFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaFractionDigitsFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaFractionDigitsFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaLengthFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaLengthFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaLengthFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaLengthFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMaxExclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMaxExclusiveFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMaxExclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMaxExclusiveFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMaxInclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMaxInclusiveFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMaxInclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMaxInclusiveFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMaxLengthFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMaxLengthFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMaxLengthFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMaxLengthFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMinExclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMinExclusiveFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMinExclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMinExclusiveFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMinInclusiveFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMinInclusiveFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMinInclusiveFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMinInclusiveFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMinLengthFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaMinLengthFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaMinLengthFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaMinLengthFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaNumericFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaNumericFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaNumericFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaNumericFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaPatternFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaPatternFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaPatternFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaPatternFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaTotalDigitsFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaTotalDigitsFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaTotalDigitsFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaTotalDigitsFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaWhiteSpaceFacet.ts b/packages/xml-schema-ts/src/facet/XmlSchemaWhiteSpaceFacet.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/facet/XmlSchemaWhiteSpaceFacet.ts rename to packages/xml-schema-ts/src/facet/XmlSchemaWhiteSpaceFacet.ts diff --git a/data-mapper/packages/xml-schema-ts/src/index.ts b/packages/xml-schema-ts/src/index.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/index.ts rename to packages/xml-schema-ts/src/index.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaAll.ts b/packages/xml-schema-ts/src/particle/XmlSchemaAll.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaAll.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaAll.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaAny.ts b/packages/xml-schema-ts/src/particle/XmlSchemaAny.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaAny.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaAny.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaChoice.ts b/packages/xml-schema-ts/src/particle/XmlSchemaChoice.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaChoice.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaChoice.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaElement.ts b/packages/xml-schema-ts/src/particle/XmlSchemaElement.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaElement.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaElement.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaGroupParticle.ts b/packages/xml-schema-ts/src/particle/XmlSchemaGroupParticle.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaGroupParticle.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaGroupParticle.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaGroupRef.ts b/packages/xml-schema-ts/src/particle/XmlSchemaGroupRef.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaGroupRef.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaGroupRef.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaParticle.ts b/packages/xml-schema-ts/src/particle/XmlSchemaParticle.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaParticle.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaParticle.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaSequence.ts b/packages/xml-schema-ts/src/particle/XmlSchemaSequence.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaSequence.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaSequence.ts diff --git a/data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts rename to packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts diff --git a/data-mapper/packages/xml-schema-ts/src/resolver/CollectionURIResolver.ts b/packages/xml-schema-ts/src/resolver/CollectionURIResolver.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/resolver/CollectionURIResolver.ts rename to packages/xml-schema-ts/src/resolver/CollectionURIResolver.ts diff --git a/data-mapper/packages/xml-schema-ts/src/resolver/DefaultURIResolver.ts b/packages/xml-schema-ts/src/resolver/DefaultURIResolver.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/resolver/DefaultURIResolver.ts rename to packages/xml-schema-ts/src/resolver/DefaultURIResolver.ts diff --git a/data-mapper/packages/xml-schema-ts/src/resolver/URIResolver.ts b/packages/xml-schema-ts/src/resolver/URIResolver.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/resolver/URIResolver.ts rename to packages/xml-schema-ts/src/resolver/URIResolver.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContent.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContent.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContent.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleContent.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentExtension.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentExtension.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentExtension.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentExtension.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentRestriction.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentRestriction.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentRestriction.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleContentRestriction.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleType.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleType.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleType.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleType.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeContent.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeContent.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeContent.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeContent.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeList.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeList.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeList.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeList.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeRestriction.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeRestriction.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeRestriction.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeRestriction.ts diff --git a/data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeUnion.ts b/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeUnion.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeUnion.ts rename to packages/xml-schema-ts/src/simple/XmlSchemaSimpleTypeUnion.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/NamespaceContext.ts b/packages/xml-schema-ts/src/utils/NamespaceContext.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/NamespaceContext.ts rename to packages/xml-schema-ts/src/utils/NamespaceContext.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/NamespaceContextOwner.ts b/packages/xml-schema-ts/src/utils/NamespaceContextOwner.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/NamespaceContextOwner.ts rename to packages/xml-schema-ts/src/utils/NamespaceContextOwner.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/NamespacePrefixList.ts b/packages/xml-schema-ts/src/utils/NamespacePrefixList.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/NamespacePrefixList.ts rename to packages/xml-schema-ts/src/utils/NamespacePrefixList.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/NodeNamespaceContext.ts b/packages/xml-schema-ts/src/utils/NodeNamespaceContext.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/NodeNamespaceContext.ts rename to packages/xml-schema-ts/src/utils/NodeNamespaceContext.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/ObjectMap.test.ts b/packages/xml-schema-ts/src/utils/ObjectMap.test.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/ObjectMap.test.ts rename to packages/xml-schema-ts/src/utils/ObjectMap.test.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/ObjectMap.ts b/packages/xml-schema-ts/src/utils/ObjectMap.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/ObjectMap.ts rename to packages/xml-schema-ts/src/utils/ObjectMap.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/PrefixCollector.ts b/packages/xml-schema-ts/src/utils/PrefixCollector.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/PrefixCollector.ts rename to packages/xml-schema-ts/src/utils/PrefixCollector.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XDOMUtil.ts b/packages/xml-schema-ts/src/utils/XDOMUtil.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XDOMUtil.ts rename to packages/xml-schema-ts/src/utils/XDOMUtil.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamed.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamed.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamed.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamed.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedImpl.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedImpl.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedImpl.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedImpl.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedType.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedType.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedType.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedType.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithFormImpl.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithFormImpl.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithFormImpl.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaNamedWithFormImpl.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts b/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaRef.ts b/packages/xml-schema-ts/src/utils/XmlSchemaRef.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaRef.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaRef.ts diff --git a/data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaRefBase.ts b/packages/xml-schema-ts/src/utils/XmlSchemaRefBase.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/utils/XmlSchemaRefBase.ts rename to packages/xml-schema-ts/src/utils/XmlSchemaRefBase.ts diff --git a/data-mapper/packages/xml-schema-ts/src/xml-parser.test.ts b/packages/xml-schema-ts/src/xml-parser.test.ts similarity index 100% rename from data-mapper/packages/xml-schema-ts/src/xml-parser.test.ts rename to packages/xml-schema-ts/src/xml-parser.test.ts diff --git a/data-mapper/test-resources/ExampleOrder.xml b/packages/xml-schema-ts/test-resources/ExampleOrder.xml similarity index 100% rename from data-mapper/test-resources/ExampleOrder.xml rename to packages/xml-schema-ts/test-resources/ExampleOrder.xml diff --git a/data-mapper/test-resources/ShipOrder.xsd b/packages/xml-schema-ts/test-resources/ShipOrder.xsd similarity index 100% rename from data-mapper/test-resources/ShipOrder.xsd rename to packages/xml-schema-ts/test-resources/ShipOrder.xsd diff --git a/data-mapper/test-resources/ShipOrderToShipOrder.xsl b/packages/xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl similarity index 100% rename from data-mapper/test-resources/ShipOrderToShipOrder.xsl rename to packages/xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl diff --git a/data-mapper/test-resources/TestDocument.xsd b/packages/xml-schema-ts/test-resources/TestDocument.xsd similarity index 100% rename from data-mapper/test-resources/TestDocument.xsd rename to packages/xml-schema-ts/test-resources/TestDocument.xsd diff --git a/data-mapper/test-resources/hello.xsd b/packages/xml-schema-ts/test-resources/hello.xsd similarity index 100% rename from data-mapper/test-resources/hello.xsd rename to packages/xml-schema-ts/test-resources/hello.xsd diff --git a/data-mapper/test-resources/hello.xsl b/packages/xml-schema-ts/test-resources/hello.xsl similarity index 100% rename from data-mapper/test-resources/hello.xsl rename to packages/xml-schema-ts/test-resources/hello.xsl diff --git a/data-mapper/packages/xml-schema-ts/tsconfig.cjs.json b/packages/xml-schema-ts/tsconfig.cjs.json similarity index 100% rename from data-mapper/packages/xml-schema-ts/tsconfig.cjs.json rename to packages/xml-schema-ts/tsconfig.cjs.json diff --git a/data-mapper/packages/xml-schema-ts/tsconfig.esm.json b/packages/xml-schema-ts/tsconfig.esm.json similarity index 100% rename from data-mapper/packages/xml-schema-ts/tsconfig.esm.json rename to packages/xml-schema-ts/tsconfig.esm.json diff --git a/data-mapper/packages/xml-schema-ts/tsconfig.json b/packages/xml-schema-ts/tsconfig.json similarity index 95% rename from data-mapper/packages/xml-schema-ts/tsconfig.json rename to packages/xml-schema-ts/tsconfig.json index 5862af91e..64a09d2f2 100644 --- a/data-mapper/packages/xml-schema-ts/tsconfig.json +++ b/packages/xml-schema-ts/tsconfig.json @@ -4,6 +4,7 @@ "lib": ["ES2020", "DOM", "DOM.Iterable"], "target": "ES2020", "module": "ESNext", + "moduleResolution": "Bundler", "useDefineForClassFields": true, "declaration": true, "declarationMap": true, diff --git a/yarn.lock b/yarn.lock index 0ef58c239..67721dc9e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2546,6 +2546,28 @@ __metadata: languageName: unknown linkType: soft +"@kaoto/xml-schema-ts@workspace:packages/xml-schema-ts": + version: 0.0.0-use.local + resolution: "@kaoto/xml-schema-ts@workspace:packages/xml-schema-ts" + dependencies: + "@babel/core": ^7.23.2 + "@babel/preset-env": ^7.21.5 + "@babel/preset-typescript": ^7.21.5 + "@testing-library/jest-dom": ^6.4.2 + "@types/jest": ^29.5.12 + eslint: ^8.45.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-import: ^2.26.0 + eslint-plugin-jest: ^27.2.1 + eslint-plugin-prettier: ^5.0.0 + jest: ^29.7.0 + prettier: ^3.0.0 + rimraf: ^6.0.0 + typescript: ^5.4.2 + vite: ^5.4.0 + languageName: unknown + linkType: soft + "@kie-tools-core/backend@npm:0.32.0": version: 0.32.0 resolution: "@kie-tools-core/backend@npm:0.32.0" @@ -4669,6 +4691,21 @@ __metadata: languageName: node linkType: hard +"@testing-library/jest-dom@npm:^6.4.2": + version: 6.5.0 + resolution: "@testing-library/jest-dom@npm:6.5.0" + dependencies: + "@adobe/css-tools": ^4.4.0 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.6.3 + lodash: ^4.17.21 + redent: ^3.0.0 + checksum: c2d14103ebe3358852ec527ff7512f64207a39932b2f7b6dff7e73ba91296b01a71bad9a9584b6ee010681380a906c1740af50470adc6db660e1c7585d012ebf + languageName: node + linkType: hard + "@testing-library/react@npm:^16.0.0": version: 16.0.0 resolution: "@testing-library/react@npm:16.0.0" @@ -5259,7 +5296,7 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.4.0": +"@types/jest@npm:^29.4.0, @types/jest@npm:^29.5.12": version: 29.5.12 resolution: "@types/jest@npm:29.5.12" dependencies: From 40858eddbf18dff4e4ac6d5abb2973eb0f274913 Mon Sep 17 00:00:00 2001 From: "Ricardo M." <lordrip@gmail.com> Date: Wed, 28 Aug 2024 16:43:34 +0200 Subject: [PATCH 348/471] temp(build): Increase heap size --- packages/ui/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/package.json b/packages/ui/package.json index e014eb08f..c299185f3 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -36,7 +36,7 @@ ], "scripts": { "start": "vite", - "build": "tsc && vite build --config vite.config.js", + "build": "tsc && NODE_OPTIONS=--max-old-space-size=3072 vite build --config vite.config.js", "build:lib": "yarn rimraf ./lib && yarn copy-catalog && yarn build:esm && yarn build:cjs && yarn write-version", "build:esm": "tsc --project tsconfig.esm.json && copyfiles -u 1 './src/**/*.scss' './src/assets/**' ./lib/esm", "build:cjs": "tsc --project tsconfig.cjs.json && copyfiles -u 1 './src/**/*.scss' './src/assets/**' ./lib/cjs", From 5456c288df23a6274dcdbaaf3bc1f03f399ebd69 Mon Sep 17 00:00:00 2001 From: "Ricardo M." <lordrip@gmail.com> Date: Tue, 20 Aug 2024 13:38:37 -0400 Subject: [PATCH 349/471] feat(Canvas): Serialize Step EIP --- .../ui/src/assets/components/atlasmap.svg | 103 ++++++++++++++++++ .../flows/nodes/mappers/base-node-mapper.ts | 2 +- .../mappers/datamapper-node-mapper.test.ts | 65 +++++++++++ .../nodes/mappers/datamapper-node-mapper.ts | 51 +++++++++ .../nodes/mappers/step-node-mapper.test.ts | 63 +++++++++++ .../flows/nodes/mappers/step-node-mapper.ts | 45 ++++++++ .../flows/nodes/node-mapper.service.test.ts | 7 ++ .../flows/nodes/node-mapper.service.ts | 7 ++ packages/ui/src/utils/node-icon-resolver.ts | 3 + 9 files changed, 345 insertions(+), 1 deletion(-) create mode 100644 packages/ui/src/assets/components/atlasmap.svg create mode 100644 packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts create mode 100644 packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts create mode 100644 packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts create mode 100644 packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts diff --git a/packages/ui/src/assets/components/atlasmap.svg b/packages/ui/src/assets/components/atlasmap.svg new file mode 100644 index 000000000..8cb9c4a7d --- /dev/null +++ b/packages/ui/src/assets/components/atlasmap.svg @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="55.842178mm" + height="49.860378mm" + viewBox="0 0 55.842178 49.860378" + version="1.1" + id="svg324" + inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + sodipodi:docname="atlasmap.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview326" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:document-units="mm" + showgrid="false" + inkscape:snap-global="true" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="0.69130191" + inkscape:cx="-145.37787" + inkscape:cy="370.31577" + inkscape:window-width="1920" + inkscape:window-height="1011" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <defs + id="defs321" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-22.635411,-20.070722)"> + <g + id="g387"> + <path + class="cls-2" + d="m 67.180358,40.281886 v 9.42975 l 2.550583,4.33387 a 7.9374999,7.9374999 0 0 1 4.116917,0.69321 v -19.47598 a 7.9613124,7.9613124 0 1 0 -9.871604,-2.69081 l -3.439584,5.85258 3.868209,6.5749 z" + id="path22" + style="fill:#4db0d5;stroke-width:0.264583" /> + <path + class="cls-2" + d="m 51.345045,54.045506 a 7.9057499,7.9057499 0 0 0 -1.5875,0 l -5.315479,-9.0461 -3.868208,6.57754 3.439583,5.84994 a 7.9586666,7.9586666 0 1 0 13.075709,0 l 3.439583,-5.84994 -3.862917,-6.57754 z" + id="path24" + style="fill:#4db0d5;stroke-width:0.264583" /> + <path + class="cls-2" + d="m 31.384879,54.045506 2.542646,-4.33387 v -9.42975 l 2.778125,4.71752 3.868208,-6.5749 -3.439583,-5.85258 a 7.9586666,7.9586666 0 1 0 -9.87425,2.69081 v 19.47598 a 7.9374999,7.9374999 0 0 1 4.124854,-0.69321 z" + id="path26" + style="fill:#4db0d5;stroke-width:0.264583" /> + <path + class="cls-1" + d="m 49.762837,35.953296 a 7.9057499,7.9057499 0 0 0 1.5875,0 l 5.320771,9.04346 3.868208,-6.57489 -3.439583,-5.85259 a 7.9586666,7.9586666 0 1 0 -13.075708,0 l -3.439584,5.85259 3.857625,6.57754 z" + id="path28" + style="fill:#ffffff;stroke-width:0.264583" /> + <path + class="cls-1" + d="m 67.180358,54.738716 v -5.02708 l -2.778125,-4.72017 -3.868208,6.57754 3.439583,5.84994 a 7.9904166,7.9904166 0 0 1 3.20675,-2.68023 z" + id="path30" + style="fill:#ffffff;stroke-width:0.264583" /> + <path + class="cls-1" + d="m 33.927525,49.711636 v 5.02708 a 7.9745416,7.9745416 0 0 1 3.204104,2.68817 l 3.439583,-5.84994 -3.865562,-6.57754 z" + id="path32" + style="fill:#ffffff;stroke-width:0.264583" /> + <polygon + class="cls-3" + points="54.18,95.19 68.8,120.05 83.42,95.19 68.8,70.34 " + id="polygon34" + style="fill:#afdbec" + transform="matrix(0.26458333,0,0,0.26458333,22.370525,19.813716)" /> + <polygon + class="cls-3" + points="129.62,95.19 144.24,120.05 158.86,95.19 144.24,70.34 " + id="polygon36" + style="fill:#afdbec" + transform="matrix(0.26458333,0,0,0.26458333,22.370525,19.813716)" /> + <path + class="cls-3" + d="m 70.524691,54.005816 a 7.8025624,7.8025624 0 0 0 -0.79375,0.0397 l -2.550583,-4.33387 v 5.02708 a 7.9613124,7.9613124 0 1 0 3.33375,-0.73025 z" + id="path38" + style="fill:#afdbec;stroke-width:0.264583" /> + <path + class="cls-3" + d="m 30.593775,54.005816 a 7.8025624,7.8025624 0 0 1 0.79375,0.0397 l 2.54,-4.33387 v 5.02708 a 7.9613124,7.9613124 0 1 1 -3.33375,-0.73025 z" + id="path40" + style="fill:#afdbec;stroke-width:0.264583" /> + </g> + </g> +</svg> diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/base-node-mapper.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/base-node-mapper.ts index b63d789d9..0a05759a9 100644 --- a/packages/ui/src/models/visualization/flows/nodes/mappers/base-node-mapper.ts +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/base-node-mapper.ts @@ -12,7 +12,7 @@ import { import { INodeMapper } from '../node-mapper'; export class BaseNodeMapper implements INodeMapper { - constructor(private readonly rootNodeMapper: INodeMapper) {} + constructor(protected readonly rootNodeMapper: INodeMapper) {} getVizNodeFromProcessor( path: string, diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts new file mode 100644 index 000000000..a58b5ae4f --- /dev/null +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts @@ -0,0 +1,65 @@ +import { RouteDefinition, Step } from '@kaoto/camel-catalog/types'; +import { parse } from 'yaml'; +import { RootNodeMapper } from '../root-node-mapper'; +import { DataMapperNodeMapper } from './datamapper-node-mapper'; +import { noopNodeMapper } from './testing/noop-node-mapper'; + +describe('DataMapperNodeMapper', () => { + let mapper: DataMapperNodeMapper; + let routeDefinition: RouteDefinition; + let rootNodeMapper: RootNodeMapper; + const path = 'from.steps.0.step'; + + beforeEach(() => { + rootNodeMapper = new RootNodeMapper(); + rootNodeMapper.registerDefaultMapper(mapper); + rootNodeMapper.registerMapper('log', noopNodeMapper); + + mapper = new DataMapperNodeMapper(rootNodeMapper); + + routeDefinition = parse(` + from: + id: from-8888 + uri: direct:start + parameters: {} + steps: + - step: + id: ${DataMapperNodeMapper.DATAMAPPER_ID_PREFIX}-1234 + steps: + - to: + uri: ${DataMapperNodeMapper.XSLT_COMPONENT_NAME}:transform.xsl`); + }); + + it('should not return any children', () => { + const vizNode = mapper.getVizNodeFromProcessor(path, { processorName: 'step' }, routeDefinition); + + expect(vizNode.getChildren()).toBeUndefined(); + }); + + describe('isDataMapperNode', () => { + it('should return true if it has the right id and a xslt component', () => { + const stepDefinition = routeDefinition.from.steps[0].step as Step; + const isDataMapperNode = DataMapperNodeMapper.isDataMapperNode(stepDefinition); + + expect(isDataMapperNode).toBe(true); + }); + + it('should return false if it has the right id but no xslt component', () => { + const stepDefinition = routeDefinition.from.steps[0].step as Step; + stepDefinition.steps![0].to = { uri: 'direct:log' }; + + const isDataMapperNode = DataMapperNodeMapper.isDataMapperNode(stepDefinition); + + expect(isDataMapperNode).toBe(false); + }); + + it('should return false if it has no id but a xslt component', () => { + const stepDefinition = routeDefinition.from.steps[0].step as Step; + stepDefinition.id = 'step-1234'; + + const isDataMapperNode = DataMapperNodeMapper.isDataMapperNode(stepDefinition); + + expect(isDataMapperNode).toBe(false); + }); + }); +}); diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts new file mode 100644 index 000000000..c14f58245 --- /dev/null +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts @@ -0,0 +1,51 @@ +import { ProcessorDefinition, Step } from '@kaoto/camel-catalog/types'; +import { NodeIconResolver, NodeIconType } from '../../../../../utils/node-icon-resolver'; +import { IVisualizationNode } from '../../../base-visual-entity'; +import { createVisualizationNode } from '../../../visualization-node'; +import { CamelRouteVisualEntityData, ICamelElementLookupResult } from '../../support/camel-component-types'; +import { BaseNodeMapper } from './base-node-mapper'; + +export class DataMapperNodeMapper extends BaseNodeMapper { + static readonly DATAMAPPER_ID_PREFIX = 'kaoto-datamapper' as keyof ProcessorDefinition; + static readonly XSLT_COMPONENT_NAME = 'xslt'; + + getVizNodeFromProcessor( + path: string, + _componentLookup: ICamelElementLookupResult, + _entityDefinition: unknown, + ): IVisualizationNode { + const processorName = DataMapperNodeMapper.DATAMAPPER_ID_PREFIX; + + const data: CamelRouteVisualEntityData = { + path, + icon: NodeIconResolver.getIcon(processorName, NodeIconType.EIP), + processorName: DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, + isGroup: false, + }; + + return createVisualizationNode(processorName, data); + } + + static isDataMapperNode(stepDefinition: Step): boolean { + const isDatamapperId = this.isDatamapperId(stepDefinition); + const doesContainXslt = this.doesContainXslt(stepDefinition); + + return isDatamapperId && doesContainXslt; + } + + private static isDatamapperId(stepDefinition: Step): boolean { + return stepDefinition.id?.startsWith(this.DATAMAPPER_ID_PREFIX) ?? false; + } + + private static doesContainXslt(stepDefinition: Step): boolean { + return ( + stepDefinition.steps?.some((step) => { + if (typeof step.to === 'string') { + return step.to.startsWith(this.XSLT_COMPONENT_NAME); + } + + return step.to?.uri?.startsWith(this.XSLT_COMPONENT_NAME); + }) ?? false + ); + } +} diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts new file mode 100644 index 000000000..c21d33681 --- /dev/null +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts @@ -0,0 +1,63 @@ +import { RouteDefinition } from '@kaoto/camel-catalog/types'; +import { parse } from 'yaml'; +import { RootNodeMapper } from '../root-node-mapper'; +import { DataMapperNodeMapper } from './datamapper-node-mapper'; +import { StepNodeMapper } from './step-node-mapper'; +import { noopNodeMapper } from './testing/noop-node-mapper'; + +describe('StepNodeMapper', () => { + let mapper: StepNodeMapper; + let routeDefinition: RouteDefinition; + let rootNodeMapper: RootNodeMapper; + const path = 'from.steps.0.step'; + + beforeEach(() => { + rootNodeMapper = new RootNodeMapper(); + rootNodeMapper.registerDefaultMapper(mapper); + rootNodeMapper.registerMapper('log', noopNodeMapper); + rootNodeMapper.registerMapper(DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, noopNodeMapper); + + mapper = new StepNodeMapper(rootNodeMapper); + + routeDefinition = parse(` + from: + id: from-8888 + uri: direct:start + parameters: {} + steps: + - step: + id: step-1234 + steps: + - log: + id: log-1234 + message: \${body}`); + }); + + it('should return children', () => { + const vizNode = mapper.getVizNodeFromProcessor(path, { processorName: 'step' }, routeDefinition); + + expect(vizNode.getChildren()).toHaveLength(1); + }); + + it('should verify if this step node is a Kaoto DataMapper one', () => { + const dataMapperNodeSpy = jest.spyOn(DataMapperNodeMapper, 'isDataMapperNode'); + + mapper.getVizNodeFromProcessor(path, { processorName: 'step' }, routeDefinition); + + expect(dataMapperNodeSpy).toHaveBeenCalledWith(routeDefinition.from.steps[0].step); + }); + + it('should delegate to the rootNodeMapper if this step node is a Kaoto DataMapper one', () => { + const rootNodeMapperSpy = jest.spyOn(rootNodeMapper, 'getVizNodeFromProcessor'); + const dataMapperNodeSpy = jest.spyOn(DataMapperNodeMapper, 'isDataMapperNode'); + dataMapperNodeSpy.mockReturnValue(true); + + mapper.getVizNodeFromProcessor(path, { processorName: 'step' }, routeDefinition); + + expect(rootNodeMapperSpy).toHaveBeenCalledWith( + path, + { processorName: DataMapperNodeMapper.DATAMAPPER_ID_PREFIX }, + routeDefinition, + ); + }); +}); diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts new file mode 100644 index 000000000..91848b7e3 --- /dev/null +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts @@ -0,0 +1,45 @@ +import { ProcessorDefinition, Step } from '@kaoto/camel-catalog/types'; +import { getValue } from '../../../../../utils'; +import { NodeIconResolver, NodeIconType } from '../../../../../utils/node-icon-resolver'; +import { IVisualizationNode } from '../../../base-visual-entity'; +import { createVisualizationNode } from '../../../visualization-node'; +import { CamelRouteVisualEntityData, ICamelElementLookupResult } from '../../support/camel-component-types'; +import { BaseNodeMapper } from './base-node-mapper'; +import { DataMapperNodeMapper } from './datamapper-node-mapper'; + +export class StepNodeMapper extends BaseNodeMapper { + getVizNodeFromProcessor( + path: string, + _componentLookup: ICamelElementLookupResult, + entityDefinition: unknown, + ): IVisualizationNode { + const processorName: keyof ProcessorDefinition = 'step'; + + const data: CamelRouteVisualEntityData = { + path, + icon: NodeIconResolver.getIcon(processorName, NodeIconType.EIP), + processorName, + isGroup: true, + }; + + const stepDefinition: Step = getValue(entityDefinition, path); + if (DataMapperNodeMapper.isDataMapperNode(stepDefinition)) { + return this.rootNodeMapper.getVizNodeFromProcessor( + path, + { + processorName: DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, + }, + entityDefinition, + ); + } + + const vizNode = createVisualizationNode(processorName, data); + + const children = this.getChildrenFromBranch(`${path}.steps`, entityDefinition); + children.forEach((child) => { + vizNode.addChild(child); + }); + + return vizNode; + } +} diff --git a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts index 3ea9ec016..262b0a9ac 100644 --- a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts +++ b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts @@ -1,6 +1,8 @@ import { BaseNodeMapper } from './mappers/base-node-mapper'; import { ChoiceNodeMapper } from './mappers/choice-node-mapper'; +import { DataMapperNodeMapper } from './mappers/datamapper-node-mapper'; import { OtherwiseNodeMapper } from './mappers/otherwise-node-mapper'; +import { StepNodeMapper } from './mappers/step-node-mapper'; import { WhenNodeMapper } from './mappers/when-node-mapper'; import { NodeMapperService } from './node-mapper.service'; import { RootNodeMapper } from './root-node-mapper'; @@ -16,5 +18,10 @@ describe('NodeMapperService', () => { expect(registerMapperSpy).toHaveBeenCalledWith('choice', expect.any(ChoiceNodeMapper)); expect(registerMapperSpy).toHaveBeenCalledWith('when', expect.any(WhenNodeMapper)); expect(registerMapperSpy).toHaveBeenCalledWith('otherwise', expect.any(OtherwiseNodeMapper)); + expect(registerMapperSpy).toHaveBeenCalledWith('step', expect.any(StepNodeMapper)); + expect(registerMapperSpy).toHaveBeenCalledWith( + DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, + expect.any(DataMapperNodeMapper), + ); }); }); diff --git a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts index 4d896699b..2fa9f188a 100644 --- a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts +++ b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts @@ -2,7 +2,9 @@ import { IVisualizationNode } from '../../base-visual-entity'; import { ICamelElementLookupResult } from '../support/camel-component-types'; import { BaseNodeMapper } from './mappers/base-node-mapper'; import { ChoiceNodeMapper } from './mappers/choice-node-mapper'; +import { DataMapperNodeMapper } from './mappers/datamapper-node-mapper'; import { OtherwiseNodeMapper } from './mappers/otherwise-node-mapper'; +import { StepNodeMapper } from './mappers/step-node-mapper'; import { WhenNodeMapper } from './mappers/when-node-mapper'; import { INodeMapper } from './node-mapper'; import { RootNodeMapper } from './root-node-mapper'; @@ -32,5 +34,10 @@ export class NodeMapperService { this.rootNodeMapper.registerMapper('choice', new ChoiceNodeMapper(this.rootNodeMapper)); this.rootNodeMapper.registerMapper('when', new WhenNodeMapper(this.rootNodeMapper)); this.rootNodeMapper.registerMapper('otherwise', new OtherwiseNodeMapper(this.rootNodeMapper)); + this.rootNodeMapper.registerMapper('step', new StepNodeMapper(this.rootNodeMapper)); + this.rootNodeMapper.registerMapper( + DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, + new DataMapperNodeMapper(this.rootNodeMapper), + ); } } diff --git a/packages/ui/src/utils/node-icon-resolver.ts b/packages/ui/src/utils/node-icon-resolver.ts index 664d0b164..6d5ffedbf 100644 --- a/packages/ui/src/utils/node-icon-resolver.ts +++ b/packages/ui/src/utils/node-icon-resolver.ts @@ -57,6 +57,7 @@ import wiretap from '../assets/eip/wiretap.png'; // component icons import activemq from '../assets/components/amq.svg'; import amqp from '../assets/components/amqp.svg'; +import atlasmap from '../assets/components/atlasmap.svg'; import aws from '../assets/components/aws.png'; import aws2_ddb from '../assets/components/aws-ddb.svg'; import aws2_s3 from '../assets/components/aws-s3.svg'; @@ -655,6 +656,8 @@ export class NodeIconResolver { case 'idempotentConsumer': return idempotent_consumer; // case 'kamelet': handled on top + case 'kaoto-datamapper': + return atlasmap; case 'loadBalance': return load_balance; case 'log': From 68b28424e8646b43a2414637a9ec05a400e6f027 Mon Sep 17 00:00:00 2001 From: "Ricardo M." <lordrip@gmail.com> Date: Thu, 29 Aug 2024 14:33:39 +0200 Subject: [PATCH 350/471] chore(canvas): Add Datamapper icon --- .../ui/src/assets/components/atlasmap.svg | 103 ------------------ .../ui/src/assets/components/datamapper.png | Bin 0 -> 6047 bytes packages/ui/src/utils/node-icon-resolver.ts | 4 +- 3 files changed, 2 insertions(+), 105 deletions(-) delete mode 100644 packages/ui/src/assets/components/atlasmap.svg create mode 100644 packages/ui/src/assets/components/datamapper.png diff --git a/packages/ui/src/assets/components/atlasmap.svg b/packages/ui/src/assets/components/atlasmap.svg deleted file mode 100644 index 8cb9c4a7d..000000000 --- a/packages/ui/src/assets/components/atlasmap.svg +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="55.842178mm" - height="49.860378mm" - viewBox="0 0 55.842178 49.860378" - version="1.1" - id="svg324" - inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" - sodipodi:docname="atlasmap.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg"> - <sodipodi:namedview - id="namedview326" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageshadow="2" - inkscape:pageopacity="0.0" - inkscape:pagecheckerboard="0" - inkscape:document-units="mm" - showgrid="false" - inkscape:snap-global="true" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" - inkscape:zoom="0.69130191" - inkscape:cx="-145.37787" - inkscape:cy="370.31577" - inkscape:window-width="1920" - inkscape:window-height="1011" - inkscape:window-x="0" - inkscape:window-y="0" - inkscape:window-maximized="1" - inkscape:current-layer="layer1" /> - <defs - id="defs321" /> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-22.635411,-20.070722)"> - <g - id="g387"> - <path - class="cls-2" - d="m 67.180358,40.281886 v 9.42975 l 2.550583,4.33387 a 7.9374999,7.9374999 0 0 1 4.116917,0.69321 v -19.47598 a 7.9613124,7.9613124 0 1 0 -9.871604,-2.69081 l -3.439584,5.85258 3.868209,6.5749 z" - id="path22" - style="fill:#4db0d5;stroke-width:0.264583" /> - <path - class="cls-2" - d="m 51.345045,54.045506 a 7.9057499,7.9057499 0 0 0 -1.5875,0 l -5.315479,-9.0461 -3.868208,6.57754 3.439583,5.84994 a 7.9586666,7.9586666 0 1 0 13.075709,0 l 3.439583,-5.84994 -3.862917,-6.57754 z" - id="path24" - style="fill:#4db0d5;stroke-width:0.264583" /> - <path - class="cls-2" - d="m 31.384879,54.045506 2.542646,-4.33387 v -9.42975 l 2.778125,4.71752 3.868208,-6.5749 -3.439583,-5.85258 a 7.9586666,7.9586666 0 1 0 -9.87425,2.69081 v 19.47598 a 7.9374999,7.9374999 0 0 1 4.124854,-0.69321 z" - id="path26" - style="fill:#4db0d5;stroke-width:0.264583" /> - <path - class="cls-1" - d="m 49.762837,35.953296 a 7.9057499,7.9057499 0 0 0 1.5875,0 l 5.320771,9.04346 3.868208,-6.57489 -3.439583,-5.85259 a 7.9586666,7.9586666 0 1 0 -13.075708,0 l -3.439584,5.85259 3.857625,6.57754 z" - id="path28" - style="fill:#ffffff;stroke-width:0.264583" /> - <path - class="cls-1" - d="m 67.180358,54.738716 v -5.02708 l -2.778125,-4.72017 -3.868208,6.57754 3.439583,5.84994 a 7.9904166,7.9904166 0 0 1 3.20675,-2.68023 z" - id="path30" - style="fill:#ffffff;stroke-width:0.264583" /> - <path - class="cls-1" - d="m 33.927525,49.711636 v 5.02708 a 7.9745416,7.9745416 0 0 1 3.204104,2.68817 l 3.439583,-5.84994 -3.865562,-6.57754 z" - id="path32" - style="fill:#ffffff;stroke-width:0.264583" /> - <polygon - class="cls-3" - points="54.18,95.19 68.8,120.05 83.42,95.19 68.8,70.34 " - id="polygon34" - style="fill:#afdbec" - transform="matrix(0.26458333,0,0,0.26458333,22.370525,19.813716)" /> - <polygon - class="cls-3" - points="129.62,95.19 144.24,120.05 158.86,95.19 144.24,70.34 " - id="polygon36" - style="fill:#afdbec" - transform="matrix(0.26458333,0,0,0.26458333,22.370525,19.813716)" /> - <path - class="cls-3" - d="m 70.524691,54.005816 a 7.8025624,7.8025624 0 0 0 -0.79375,0.0397 l -2.550583,-4.33387 v 5.02708 a 7.9613124,7.9613124 0 1 0 3.33375,-0.73025 z" - id="path38" - style="fill:#afdbec;stroke-width:0.264583" /> - <path - class="cls-3" - d="m 30.593775,54.005816 a 7.8025624,7.8025624 0 0 1 0.79375,0.0397 l 2.54,-4.33387 v 5.02708 a 7.9613124,7.9613124 0 1 1 -3.33375,-0.73025 z" - id="path40" - style="fill:#afdbec;stroke-width:0.264583" /> - </g> - </g> -</svg> diff --git a/packages/ui/src/assets/components/datamapper.png b/packages/ui/src/assets/components/datamapper.png new file mode 100644 index 0000000000000000000000000000000000000000..57472858c8000662638d96a9d706803e662ffcbd GIT binary patch literal 6047 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 Z{vT!52eU7C-iQDI002ovPDHLkV1jUYaDD&) literal 0 HcmV?d00001 diff --git a/packages/ui/src/utils/node-icon-resolver.ts b/packages/ui/src/utils/node-icon-resolver.ts index 6d5ffedbf..ee0021e69 100644 --- a/packages/ui/src/utils/node-icon-resolver.ts +++ b/packages/ui/src/utils/node-icon-resolver.ts @@ -57,7 +57,6 @@ import wiretap from '../assets/eip/wiretap.png'; // component icons import activemq from '../assets/components/amq.svg'; import amqp from '../assets/components/amqp.svg'; -import atlasmap from '../assets/components/atlasmap.svg'; import aws from '../assets/components/aws.png'; import aws2_ddb from '../assets/components/aws-ddb.svg'; import aws2_s3 from '../assets/components/aws-s3.svg'; @@ -65,6 +64,7 @@ import aws2_sns from '../assets/components/sns.svg'; import aws2_sqs from '../assets/components/sqs.svg'; import azure from '../assets/components/azure.png'; import cxf from '../assets/components/cxf.png'; +import datamapper from '../assets/components/datamapper.png'; import debezium from '../assets/components/debezium.png'; import dropbox from '../assets/components/dropbox.svg'; import facebook from '../assets/components/facebook.svg'; @@ -657,7 +657,7 @@ export class NodeIconResolver { return idempotent_consumer; // case 'kamelet': handled on top case 'kaoto-datamapper': - return atlasmap; + return datamapper; case 'loadBalance': return load_balance; case 'log': From 73e0ed6cec4ee5ed72dd4e9703ab234ec1fe6532 Mon Sep 17 00:00:00 2001 From: "Ricardo M." <lordrip@gmail.com> Date: Fri, 30 Aug 2024 18:03:22 +0200 Subject: [PATCH 351/471] feat(App): Register components for a given anchor This commit allow consumers to register components for a given anchor defined somewhere else. This is useful to register a component that only should be rendered in a given anchor or because it pass some validation function. --- .../RenderingAnchor/RenderingAnchor.test.tsx | 61 +++++++++ .../RenderingAnchor/RenderingAnchor.tsx | 21 ++++ .../rendering.provider.model.ts | 56 +++++++++ .../rendering.provider.test.tsx | 118 ++++++++++++++++++ .../RenderingAnchor/rendering.provider.tsx | 33 +++++ 5 files changed, 289 insertions(+) create mode 100644 packages/ui/src/components/RenderingAnchor/RenderingAnchor.test.tsx create mode 100644 packages/ui/src/components/RenderingAnchor/RenderingAnchor.tsx create mode 100644 packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts create mode 100644 packages/ui/src/components/RenderingAnchor/rendering.provider.test.tsx create mode 100644 packages/ui/src/components/RenderingAnchor/rendering.provider.tsx diff --git a/packages/ui/src/components/RenderingAnchor/RenderingAnchor.test.tsx b/packages/ui/src/components/RenderingAnchor/RenderingAnchor.test.tsx new file mode 100644 index 000000000..b5fcfe74e --- /dev/null +++ b/packages/ui/src/components/RenderingAnchor/RenderingAnchor.test.tsx @@ -0,0 +1,61 @@ +import { render } from '@testing-library/react'; +import { createVisualizationNode, IVisualizationNode } from '../../models'; +import { RenderingAnchor } from './RenderingAnchor'; +import { RenderingAnchorContext } from './rendering.provider'; +import { IRegisteredValidatedComponent, IRenderingAnchorContext } from './rendering.provider.model'; + +describe('RenderingAnchor', () => { + const anchorTag = 'example-anchor'; + const vizNode: IVisualizationNode = createVisualizationNode('example-node', {}); + let renderingAnchorContext: IRenderingAnchorContext; + + beforeEach(() => { + renderingAnchorContext = { + getRegisteredComponents: jest.fn().mockReturnValue([]), + registerComponent: jest.fn(), + }; + }); + + it('should not render the `RenderingAnchor` when the `vizNode` prop is undefined', () => { + const wrapper = render(<RenderingAnchor anchorTag={anchorTag} vizNode={undefined} />); + + expect(wrapper.container).toBeEmptyDOMElement(); + }); + + it('should not render anything if there is no registered components for a given anchor', () => { + const wrapper = render( + <RenderingAnchorContext.Provider value={renderingAnchorContext}> + <RenderingAnchor anchorTag={anchorTag} vizNode={vizNode} /> + </RenderingAnchorContext.Provider>, + ); + + expect(wrapper.container).toBeEmptyDOMElement(); + }); + + it('should query the registered components by `anchorTag` and `vizNode`', () => { + render( + <RenderingAnchorContext.Provider value={renderingAnchorContext}> + <RenderingAnchor anchorTag={anchorTag} vizNode={vizNode} /> + </RenderingAnchorContext.Provider>, + ); + + expect(renderingAnchorContext.getRegisteredComponents).toHaveBeenCalledWith(anchorTag, vizNode); + }); + + it('should render the registered components', () => { + const registeredComponents: IRegisteredValidatedComponent[] = [ + { key: '1', Component: () => <p>Component 1</p> }, + { key: '2', Component: () => <p>Component 2</p> }, + ]; + renderingAnchorContext.getRegisteredComponents = jest.fn().mockReturnValue(registeredComponents); + + const wrapper = render( + <RenderingAnchorContext.Provider value={renderingAnchorContext}> + <RenderingAnchor anchorTag={anchorTag} vizNode={vizNode} /> + </RenderingAnchorContext.Provider>, + ); + + expect(wrapper.getByText('Component 1')).toBeInTheDocument(); + expect(wrapper.getByText('Component 2')).toBeInTheDocument(); + }); +}); diff --git a/packages/ui/src/components/RenderingAnchor/RenderingAnchor.tsx b/packages/ui/src/components/RenderingAnchor/RenderingAnchor.tsx new file mode 100644 index 000000000..3a84cc3f5 --- /dev/null +++ b/packages/ui/src/components/RenderingAnchor/RenderingAnchor.tsx @@ -0,0 +1,21 @@ +import { FunctionComponent, useContext } from 'react'; +import { IVisualizationNode } from '../../models'; +import { isDefined } from '../../utils'; +import { RenderingAnchorContext } from './rendering.provider'; + +interface IRenderingAnchor { + anchorTag: string; + vizNode: IVisualizationNode | undefined; +} + +export const RenderingAnchor: FunctionComponent<IRenderingAnchor> = ({ anchorTag, vizNode }) => { + const renderingAnchorContext = useContext(RenderingAnchorContext); + + if (!isDefined(vizNode)) { + return null; + } + + const registeredChildren = renderingAnchorContext.getRegisteredComponents(anchorTag, vizNode); + + return registeredChildren.map(({ key, Component }) => <Component key={key} vizNode={vizNode} />); +}; diff --git a/packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts b/packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts new file mode 100644 index 000000000..3be72ddce --- /dev/null +++ b/packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts @@ -0,0 +1,56 @@ +import { FunctionComponent } from 'react'; +import { IVisualizationNode } from '../../models'; + +export interface IRegisteredComponent { + anchor: string; + activationFn: (vizNode: IVisualizationNode) => boolean; + component: FunctionComponent<{ vizNode: IVisualizationNode }>; +} + +export interface IRegisteredValidatedComponent { + key: string; + Component: IRegisteredComponent['component']; +} + +export interface IRenderingAnchorContext { + /** + * Register a component to be rendered in the given anchor + * + * @example + * ```tsx + * const renderingAnchorContext = useContext(RenderingAnchorContext); + * + * renderingAnchorContext.registerComponent({ + * anchor: 'form-header', + * activationFn: () => true, + * component: ({ vizNode }) => <h1>{vizNode.getId()}</h1>, + * }); + * ``` + * @param props Registered component definition + * @returns void + */ + registerComponent: (props: IRegisteredComponent) => void; + + /** + * Get components registered to the given anchor and pass the validation function + * + * @example + * ```tsx + * const renderingAnchorContext = useContext(RenderingAnchorContext); + * + * const components = renderingAnchorContext.getRegisteredComponents('form-header', vizNode); + * + * return ( + * <div> + * {components.map(({ key, Component }) => ( + * <Component key={key} vizNode={vizNode} /> + * ))} + * </div> + * ); + * ``` + * @param anchorTag The anchor tag to register the component to + * @param vizNode The visualization node to pass to the component + * @returns `IRegisteredValidatedComponent[]` An array of registered and validated components + */ + getRegisteredComponents: (anchorTag: string, vizNode: IVisualizationNode) => IRegisteredValidatedComponent[]; +} diff --git a/packages/ui/src/components/RenderingAnchor/rendering.provider.test.tsx b/packages/ui/src/components/RenderingAnchor/rendering.provider.test.tsx new file mode 100644 index 000000000..d6c0c26d8 --- /dev/null +++ b/packages/ui/src/components/RenderingAnchor/rendering.provider.test.tsx @@ -0,0 +1,118 @@ +import { render } from '@testing-library/react'; +import { useContext } from 'react'; +import { IVisualizationNode } from '../../models/visualization/base-visual-entity'; +import { createVisualizationNode } from '../../models/visualization/visualization-node'; +import { RenderingAnchorContext, RenderingProvider } from './rendering.provider'; +import { IRegisteredComponent } from './rendering.provider.model'; + +describe('RenderingProvider', () => { + const anchorExample = 'form-header'; + const vizNode: IVisualizationNode = createVisualizationNode('example-node', {}); + + describe('RenderingAnchorContext', () => { + it('should provide a default implementation', () => { + expect(() => { + render(<ProviderConsumer anchorTag={anchorExample} registerComponents={[]} />); + }).not.toThrow(); + }); + }); + + it('should render the child component', () => { + const { getByText } = render( + <RenderingProvider> + <p>Child component</p> + </RenderingProvider>, + ); + + expect(getByText('Child component')).toBeInTheDocument(); + }); + + it('should allow consumers to register and render components', () => { + const { getByText } = render( + <RenderingProvider> + <ProviderConsumer + anchorTag={anchorExample} + registerComponents={[ + { + anchor: anchorExample, + activationFn: () => true, + component: () => <p>Registered component</p>, + }, + ]} + /> + </RenderingProvider>, + ); + + expect(getByText('Registered component')).toBeInTheDocument(); + }); + + it('should filter components by anchorTag', async () => { + const { getByText, queryByText } = render( + <RenderingProvider> + <ProviderConsumer + anchorTag={anchorExample} + registerComponents={[ + { + anchor: anchorExample, + activationFn: () => true, + component: () => <p>Registered component</p>, + }, + { + anchor: 'another-anchor', + activationFn: () => true, + component: () => <p>Another component</p>, + }, + ]} + /> + </RenderingProvider>, + ); + + expect(getByText('Registered component')).toBeInTheDocument(); + + const anotherComponent = queryByText('Another component'); + expect(anotherComponent).toBeNull(); + }); + + it('should filter components by activationFn', async () => { + const { getByText, queryByText } = render( + <RenderingProvider> + <ProviderConsumer + anchorTag={anchorExample} + registerComponents={[ + { + anchor: anchorExample, + activationFn: () => true, + component: () => <p>Registered component</p>, + }, + { + anchor: anchorExample, + activationFn: () => false, + component: () => <p>Another component</p>, + }, + ]} + /> + </RenderingProvider>, + ); + + expect(getByText('Registered component')).toBeInTheDocument(); + + const anotherComponent = queryByText('Another component'); + expect(anotherComponent).toBeNull(); + }); + + function ProviderConsumer(props: { anchorTag: string; registerComponents: IRegisteredComponent[] }) { + const { registerComponent, getRegisteredComponents } = useContext(RenderingAnchorContext); + + props.registerComponents.forEach((regComponent) => registerComponent(regComponent)); + + const components = getRegisteredComponents('form-header', vizNode); + + return ( + <div> + {components.map(({ key, Component }) => ( + <Component key={key} vizNode={vizNode} /> + ))} + </div> + ); + } +}); diff --git a/packages/ui/src/components/RenderingAnchor/rendering.provider.tsx b/packages/ui/src/components/RenderingAnchor/rendering.provider.tsx new file mode 100644 index 000000000..d922a0b31 --- /dev/null +++ b/packages/ui/src/components/RenderingAnchor/rendering.provider.tsx @@ -0,0 +1,33 @@ +import { createContext, FunctionComponent, PropsWithChildren, useCallback, useMemo, useRef } from 'react'; +import { getCamelRandomId } from '../../camel-utils/camel-random-id'; +import { IVisualizationNode } from '../../models'; +import { IRenderingAnchorContext, IRegisteredComponent } from './rendering.provider.model'; + +export const RenderingAnchorContext = createContext<IRenderingAnchorContext>({ + registerComponent: () => {}, + getRegisteredComponents: () => [], +}); + +export const RenderingProvider: FunctionComponent<PropsWithChildren> = ({ children }) => { + const registeredComponents = useRef<({ key: string } & IRegisteredComponent)[]>([]); + + const registerComponent = useCallback((props: IRegisteredComponent) => { + const key = getCamelRandomId(props.anchor, 6); + registeredComponents.current.push({ key, ...props }); + }, []); + + const getRegisteredComponents = useCallback((anchorTag: string, vizNode: IVisualizationNode) => { + return registeredComponents.current + .filter( + (registeredComponent) => registeredComponent.anchor === anchorTag && registeredComponent.activationFn(vizNode), + ) + .map(({ key, component }) => ({ key, Component: component })); + }, []); + + const value = useMemo( + () => ({ registerComponent, getRegisteredComponents }), + [getRegisteredComponents, registerComponent], + ); + + return <RenderingAnchorContext.Provider value={value}>{children}</RenderingAnchorContext.Provider>; +}; From 80d47a29c169a9a87578f543ab1029103148f025 Mon Sep 17 00:00:00 2001 From: "Ricardo M." <lordrip@gmail.com> Date: Mon, 2 Sep 2024 10:42:43 +0200 Subject: [PATCH 352/471] feat(Datamapper): Register Datamapper dummy component --- packages/ui/src/App.tsx | 8 ++++- .../src/components/DataMapper/DataMapper.tsx | 8 +++++ .../rendering.provider.model.ts | 2 +- .../Visualization/Canvas/Form/CanvasForm.tsx | 3 ++ .../registers/RegisterComponents.tsx | 20 +++++++++++ .../ui/src/components/registers/anchors.ts | 3 ++ .../registers/datamapper.activationfn.test.ts | 36 +++++++++++++++++++ .../registers/datamapper.activationfn.ts | 16 +++++++++ .../mappers/datamapper-node-mapper.test.ts | 18 ++-------- .../nodes/mappers/datamapper-node-mapper.ts | 31 +++------------- .../nodes/mappers/step-node-mapper.test.ts | 9 ++--- .../flows/nodes/mappers/step-node-mapper.ts | 4 +-- .../flows/nodes/node-mapper.service.test.ts | 6 ++-- .../flows/nodes/node-mapper.service.ts | 6 ++-- packages/ui/src/stubs/data-mapper.ts | 14 ++++++++ packages/ui/src/utils/index.ts | 1 + packages/ui/src/utils/is-datamapper.test.ts | 30 ++++++++++++++++ packages/ui/src/utils/is-datamapper.ts | 18 ++++++++++ 18 files changed, 174 insertions(+), 59 deletions(-) create mode 100644 packages/ui/src/components/DataMapper/DataMapper.tsx create mode 100644 packages/ui/src/components/registers/RegisterComponents.tsx create mode 100644 packages/ui/src/components/registers/anchors.ts create mode 100644 packages/ui/src/components/registers/datamapper.activationfn.test.ts create mode 100644 packages/ui/src/components/registers/datamapper.activationfn.ts create mode 100644 packages/ui/src/stubs/data-mapper.ts create mode 100644 packages/ui/src/utils/is-datamapper.test.ts create mode 100644 packages/ui/src/utils/is-datamapper.ts diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx index 20995b843..4af1c90fe 100644 --- a/packages/ui/src/App.tsx +++ b/packages/ui/src/App.tsx @@ -1,4 +1,6 @@ import { Outlet } from 'react-router-dom'; +import { RenderingProvider } from './components/RenderingAnchor/rendering.provider'; +import { RegisterComponents } from './components/registers/RegisterComponents'; import { useReload } from './hooks/reload.hook'; import { Shell } from './layout/Shell'; import { LocalStorageSettingsAdapter } from './models/settings/localstorage-settings-adapter'; @@ -36,7 +38,11 @@ function App() { <CatalogLoaderProvider> <CatalogTilesProvider> <VisibleFlowsProvider> - <Outlet /> + <RenderingProvider> + <RegisterComponents> + <Outlet /> + </RegisterComponents> + </RenderingProvider> </VisibleFlowsProvider> </CatalogTilesProvider> </CatalogLoaderProvider> diff --git a/packages/ui/src/components/DataMapper/DataMapper.tsx b/packages/ui/src/components/DataMapper/DataMapper.tsx new file mode 100644 index 000000000..c66b9665f --- /dev/null +++ b/packages/ui/src/components/DataMapper/DataMapper.tsx @@ -0,0 +1,8 @@ +import { Button } from '@patternfly/react-core'; +import { FunctionComponent } from 'react'; + +export const DataMapper: FunctionComponent = () => { + return <Button>Configure</Button>; +}; + +export default DataMapper; diff --git a/packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts b/packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts index 3be72ddce..668fb3b75 100644 --- a/packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts +++ b/packages/ui/src/components/RenderingAnchor/rendering.provider.model.ts @@ -4,7 +4,7 @@ import { IVisualizationNode } from '../../models'; export interface IRegisteredComponent { anchor: string; activationFn: (vizNode: IVisualizationNode) => boolean; - component: FunctionComponent<{ vizNode: IVisualizationNode }>; + component: FunctionComponent<{ vizNode?: IVisualizationNode }>; } export interface IRegisteredValidatedComponent { diff --git a/packages/ui/src/components/Visualization/Canvas/Form/CanvasForm.tsx b/packages/ui/src/components/Visualization/Canvas/Form/CanvasForm.tsx index bc0c8c7c7..f4524ee88 100644 --- a/packages/ui/src/components/Visualization/Canvas/Form/CanvasForm.tsx +++ b/packages/ui/src/components/Visualization/Canvas/Form/CanvasForm.tsx @@ -2,6 +2,8 @@ import { Card, CardBody, CardHeader } from '@patternfly/react-core'; import { FunctionComponent, useCallback, useContext, useEffect, useMemo, useRef } from 'react'; import { VisibleFlowsContext } from '../../../../providers'; import { ErrorBoundary } from '../../../ErrorBoundary'; +import { Anchors } from '../../../registers/anchors'; +import { RenderingAnchor } from '../../../RenderingAnchor/RenderingAnchor'; import { CanvasNode } from '../canvas.models'; import './CanvasForm.scss'; import { CanvasFormBody } from './CanvasFormBody'; @@ -46,6 +48,7 @@ export const CanvasForm: FunctionComponent<CanvasFormProps> = ({ selectedNode, o <Card className="canvas-form"> <CardHeader> <CanvasFormHeader nodeId={selectedNode.id} title={title} onClose={onCloseFn} nodeIcon={vizNode?.data?.icon} /> + <RenderingAnchor anchorTag={Anchors.CanvasFormHeader} vizNode={vizNode} /> </CardHeader> <CardBody className="canvas-form__body"> diff --git a/packages/ui/src/components/registers/RegisterComponents.tsx b/packages/ui/src/components/registers/RegisterComponents.tsx new file mode 100644 index 000000000..b0c322204 --- /dev/null +++ b/packages/ui/src/components/registers/RegisterComponents.tsx @@ -0,0 +1,20 @@ +import { FunctionComponent, lazy, PropsWithChildren, useContext, useRef } from 'react'; +import { RenderingAnchorContext } from '../RenderingAnchor/rendering.provider'; +import { IRegisteredComponent } from '../RenderingAnchor/rendering.provider.model'; +import { Anchors } from './anchors'; +import { datamapperActivationFn } from './datamapper.activationfn'; + +export const RegisterComponents: FunctionComponent<PropsWithChildren> = ({ children }) => { + const { registerComponent } = useContext(RenderingAnchorContext); + const componentsToRegister = useRef<IRegisteredComponent[]>([ + { + anchor: Anchors.CanvasFormHeader, + activationFn: datamapperActivationFn, + component: lazy(() => import('../DataMapper/DataMapper')), + }, + ]); + + componentsToRegister.current.forEach((regComponent) => registerComponent(regComponent)); + + return <>{children}</>; +}; diff --git a/packages/ui/src/components/registers/anchors.ts b/packages/ui/src/components/registers/anchors.ts new file mode 100644 index 000000000..ace9fa6cd --- /dev/null +++ b/packages/ui/src/components/registers/anchors.ts @@ -0,0 +1,3 @@ +export const enum Anchors { + CanvasFormHeader = 'CanvasFormHeader', +} diff --git a/packages/ui/src/components/registers/datamapper.activationfn.test.ts b/packages/ui/src/components/registers/datamapper.activationfn.test.ts new file mode 100644 index 000000000..f3119fe3a --- /dev/null +++ b/packages/ui/src/components/registers/datamapper.activationfn.test.ts @@ -0,0 +1,36 @@ +import { Step } from '@kaoto/camel-catalog/types'; +import { IVisualizationNode, KaotoSchemaDefinition } from '../../models'; +import { datamapperRouteDefinitionStub } from '../../stubs/data-mapper'; +import { datamapperActivationFn } from './datamapper.activationfn'; + +describe('datamapperActivationFn', () => { + it('should return false if vizNode is `undefined`', () => { + const result = datamapperActivationFn(undefined); + + expect(result).toBe(false); + }); + + it('should return false if stepDefinition is undefined', () => { + const result = datamapperActivationFn({ + getComponentSchema: () => ({ + title: 'Data mapper', + definition: undefined, + schema: {} as KaotoSchemaDefinition['schema'], + }), + } as IVisualizationNode); + + expect(result).toBe(false); + }); + + it('should return `true` if stepDefinition is a Data Mapper node', () => { + const result = datamapperActivationFn({ + getComponentSchema: () => ({ + title: 'Data mapper', + definition: datamapperRouteDefinitionStub.from.steps[0].step as Step, + schema: {} as KaotoSchemaDefinition['schema'], + }), + } as IVisualizationNode); + + expect(result).toBe(true); + }); +}); diff --git a/packages/ui/src/components/registers/datamapper.activationfn.ts b/packages/ui/src/components/registers/datamapper.activationfn.ts new file mode 100644 index 000000000..352940bad --- /dev/null +++ b/packages/ui/src/components/registers/datamapper.activationfn.ts @@ -0,0 +1,16 @@ +import { IVisualizationNode } from '../../models/visualization/base-visual-entity'; +import { isDataMapperNode } from '../../utils'; + +export const datamapperActivationFn = (vizNode?: IVisualizationNode): boolean => { + if (!vizNode) { + return false; + } + + const stepDefinition = vizNode.getComponentSchema()?.definition; + + if (!stepDefinition) { + return false; + } + + return isDataMapperNode(stepDefinition); +}; diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts index a58b5ae4f..c8821dd78 100644 --- a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.test.ts @@ -1,13 +1,13 @@ -import { RouteDefinition, Step } from '@kaoto/camel-catalog/types'; -import { parse } from 'yaml'; +import { Step } from '@kaoto/camel-catalog/types'; +import { datamapperRouteDefinitionStub as datamapperRouteDefinitionStub } from '../../../../../stubs/data-mapper'; import { RootNodeMapper } from '../root-node-mapper'; import { DataMapperNodeMapper } from './datamapper-node-mapper'; import { noopNodeMapper } from './testing/noop-node-mapper'; describe('DataMapperNodeMapper', () => { let mapper: DataMapperNodeMapper; - let routeDefinition: RouteDefinition; let rootNodeMapper: RootNodeMapper; + const routeDefinition = datamapperRouteDefinitionStub; const path = 'from.steps.0.step'; beforeEach(() => { @@ -16,18 +16,6 @@ describe('DataMapperNodeMapper', () => { rootNodeMapper.registerMapper('log', noopNodeMapper); mapper = new DataMapperNodeMapper(rootNodeMapper); - - routeDefinition = parse(` - from: - id: from-8888 - uri: direct:start - parameters: {} - steps: - - step: - id: ${DataMapperNodeMapper.DATAMAPPER_ID_PREFIX}-1234 - steps: - - to: - uri: ${DataMapperNodeMapper.XSLT_COMPONENT_NAME}:transform.xsl`); }); it('should not return any children', () => { diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts index c14f58245..eb19525df 100644 --- a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts @@ -1,4 +1,5 @@ -import { ProcessorDefinition, Step } from '@kaoto/camel-catalog/types'; +import { Step } from '@kaoto/camel-catalog/types'; +import { DATAMAPPER_ID_PREFIX, isDataMapperNode } from '../../../../../utils'; import { NodeIconResolver, NodeIconType } from '../../../../../utils/node-icon-resolver'; import { IVisualizationNode } from '../../../base-visual-entity'; import { createVisualizationNode } from '../../../visualization-node'; @@ -6,20 +7,17 @@ import { CamelRouteVisualEntityData, ICamelElementLookupResult } from '../../sup import { BaseNodeMapper } from './base-node-mapper'; export class DataMapperNodeMapper extends BaseNodeMapper { - static readonly DATAMAPPER_ID_PREFIX = 'kaoto-datamapper' as keyof ProcessorDefinition; - static readonly XSLT_COMPONENT_NAME = 'xslt'; - getVizNodeFromProcessor( path: string, _componentLookup: ICamelElementLookupResult, _entityDefinition: unknown, ): IVisualizationNode { - const processorName = DataMapperNodeMapper.DATAMAPPER_ID_PREFIX; + const processorName = DATAMAPPER_ID_PREFIX; const data: CamelRouteVisualEntityData = { path, icon: NodeIconResolver.getIcon(processorName, NodeIconType.EIP), - processorName: DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, + processorName: DATAMAPPER_ID_PREFIX, isGroup: false, }; @@ -27,25 +25,6 @@ export class DataMapperNodeMapper extends BaseNodeMapper { } static isDataMapperNode(stepDefinition: Step): boolean { - const isDatamapperId = this.isDatamapperId(stepDefinition); - const doesContainXslt = this.doesContainXslt(stepDefinition); - - return isDatamapperId && doesContainXslt; - } - - private static isDatamapperId(stepDefinition: Step): boolean { - return stepDefinition.id?.startsWith(this.DATAMAPPER_ID_PREFIX) ?? false; - } - - private static doesContainXslt(stepDefinition: Step): boolean { - return ( - stepDefinition.steps?.some((step) => { - if (typeof step.to === 'string') { - return step.to.startsWith(this.XSLT_COMPONENT_NAME); - } - - return step.to?.uri?.startsWith(this.XSLT_COMPONENT_NAME); - }) ?? false - ); + return isDataMapperNode(stepDefinition); } } diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts index c21d33681..bcad1f671 100644 --- a/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.test.ts @@ -1,5 +1,6 @@ import { RouteDefinition } from '@kaoto/camel-catalog/types'; import { parse } from 'yaml'; +import { DATAMAPPER_ID_PREFIX } from '../../../../../utils'; import { RootNodeMapper } from '../root-node-mapper'; import { DataMapperNodeMapper } from './datamapper-node-mapper'; import { StepNodeMapper } from './step-node-mapper'; @@ -15,7 +16,7 @@ describe('StepNodeMapper', () => { rootNodeMapper = new RootNodeMapper(); rootNodeMapper.registerDefaultMapper(mapper); rootNodeMapper.registerMapper('log', noopNodeMapper); - rootNodeMapper.registerMapper(DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, noopNodeMapper); + rootNodeMapper.registerMapper(DATAMAPPER_ID_PREFIX, noopNodeMapper); mapper = new StepNodeMapper(rootNodeMapper); @@ -54,10 +55,6 @@ describe('StepNodeMapper', () => { mapper.getVizNodeFromProcessor(path, { processorName: 'step' }, routeDefinition); - expect(rootNodeMapperSpy).toHaveBeenCalledWith( - path, - { processorName: DataMapperNodeMapper.DATAMAPPER_ID_PREFIX }, - routeDefinition, - ); + expect(rootNodeMapperSpy).toHaveBeenCalledWith(path, { processorName: DATAMAPPER_ID_PREFIX }, routeDefinition); }); }); diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts index 91848b7e3..ddb7dbd31 100644 --- a/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/step-node-mapper.ts @@ -1,5 +1,5 @@ import { ProcessorDefinition, Step } from '@kaoto/camel-catalog/types'; -import { getValue } from '../../../../../utils'; +import { DATAMAPPER_ID_PREFIX, getValue } from '../../../../../utils'; import { NodeIconResolver, NodeIconType } from '../../../../../utils/node-icon-resolver'; import { IVisualizationNode } from '../../../base-visual-entity'; import { createVisualizationNode } from '../../../visualization-node'; @@ -27,7 +27,7 @@ export class StepNodeMapper extends BaseNodeMapper { return this.rootNodeMapper.getVizNodeFromProcessor( path, { - processorName: DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, + processorName: DATAMAPPER_ID_PREFIX, }, entityDefinition, ); diff --git a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts index 262b0a9ac..408fdbf4d 100644 --- a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts +++ b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.test.ts @@ -1,3 +1,4 @@ +import { DATAMAPPER_ID_PREFIX } from '../../../../utils'; import { BaseNodeMapper } from './mappers/base-node-mapper'; import { ChoiceNodeMapper } from './mappers/choice-node-mapper'; import { DataMapperNodeMapper } from './mappers/datamapper-node-mapper'; @@ -19,9 +20,6 @@ describe('NodeMapperService', () => { expect(registerMapperSpy).toHaveBeenCalledWith('when', expect.any(WhenNodeMapper)); expect(registerMapperSpy).toHaveBeenCalledWith('otherwise', expect.any(OtherwiseNodeMapper)); expect(registerMapperSpy).toHaveBeenCalledWith('step', expect.any(StepNodeMapper)); - expect(registerMapperSpy).toHaveBeenCalledWith( - DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, - expect.any(DataMapperNodeMapper), - ); + expect(registerMapperSpy).toHaveBeenCalledWith(DATAMAPPER_ID_PREFIX, expect.any(DataMapperNodeMapper)); }); }); diff --git a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts index 2fa9f188a..4afb29a0c 100644 --- a/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts +++ b/packages/ui/src/models/visualization/flows/nodes/node-mapper.service.ts @@ -1,3 +1,4 @@ +import { DATAMAPPER_ID_PREFIX } from '../../../../utils'; import { IVisualizationNode } from '../../base-visual-entity'; import { ICamelElementLookupResult } from '../support/camel-component-types'; import { BaseNodeMapper } from './mappers/base-node-mapper'; @@ -35,9 +36,6 @@ export class NodeMapperService { this.rootNodeMapper.registerMapper('when', new WhenNodeMapper(this.rootNodeMapper)); this.rootNodeMapper.registerMapper('otherwise', new OtherwiseNodeMapper(this.rootNodeMapper)); this.rootNodeMapper.registerMapper('step', new StepNodeMapper(this.rootNodeMapper)); - this.rootNodeMapper.registerMapper( - DataMapperNodeMapper.DATAMAPPER_ID_PREFIX, - new DataMapperNodeMapper(this.rootNodeMapper), - ); + this.rootNodeMapper.registerMapper(DATAMAPPER_ID_PREFIX, new DataMapperNodeMapper(this.rootNodeMapper)); } } diff --git a/packages/ui/src/stubs/data-mapper.ts b/packages/ui/src/stubs/data-mapper.ts new file mode 100644 index 000000000..a97f496c0 --- /dev/null +++ b/packages/ui/src/stubs/data-mapper.ts @@ -0,0 +1,14 @@ +import { parse } from 'yaml'; +import { DATAMAPPER_ID_PREFIX, XSLT_COMPONENT_NAME } from '../utils'; + +export const datamapperRouteDefinitionStub = parse(` + from: + id: from-8888 + uri: direct:start + parameters: {} + steps: + - step: + id: ${DATAMAPPER_ID_PREFIX}-1234 + steps: + - to: + uri: ${XSLT_COMPONENT_NAME}:transform.xsl`); diff --git a/packages/ui/src/utils/index.ts b/packages/ui/src/utils/index.ts index abd7fe13b..84490b4c1 100644 --- a/packages/ui/src/utils/index.ts +++ b/packages/ui/src/utils/index.ts @@ -4,6 +4,7 @@ export * from './catalog-schema-loader'; export * from './event-notifier'; export * from './get-array-property'; export * from './get-value'; +export * from './is-datamapper'; export * from './is-defined'; export * from './is-enum-type'; export * from './node-icon-resolver'; diff --git a/packages/ui/src/utils/is-datamapper.test.ts b/packages/ui/src/utils/is-datamapper.test.ts new file mode 100644 index 000000000..d86dc2c45 --- /dev/null +++ b/packages/ui/src/utils/is-datamapper.test.ts @@ -0,0 +1,30 @@ +import { Step } from '@kaoto/camel-catalog/types'; +import { datamapperRouteDefinitionStub } from '../stubs/data-mapper'; +import { isDataMapperNode } from './is-datamapper'; + +describe('isDataMapperNode', () => { + it('should return true if it has the right id and a xslt component', () => { + const stepDefinition = datamapperRouteDefinitionStub.from.steps[0].step as Step; + const result = isDataMapperNode(stepDefinition); + + expect(result).toBe(true); + }); + + it('should return false if it has the right id but no xslt component', () => { + const stepDefinition = datamapperRouteDefinitionStub.from.steps[0].step as Step; + stepDefinition.steps![0].to = { uri: 'direct:log' }; + + const result = isDataMapperNode(stepDefinition); + + expect(result).toBe(false); + }); + + it('should return false if it has no id but a xslt component', () => { + const stepDefinition = datamapperRouteDefinitionStub.from.steps[0].step as Step; + stepDefinition.id = 'step-1234'; + + const result = isDataMapperNode(stepDefinition); + + expect(result).toBe(false); + }); +}); diff --git a/packages/ui/src/utils/is-datamapper.ts b/packages/ui/src/utils/is-datamapper.ts new file mode 100644 index 000000000..d48a6a658 --- /dev/null +++ b/packages/ui/src/utils/is-datamapper.ts @@ -0,0 +1,18 @@ +import { ProcessorDefinition, Step } from '@kaoto/camel-catalog/types'; + +export const DATAMAPPER_ID_PREFIX = 'kaoto-datamapper' as keyof ProcessorDefinition; +export const XSLT_COMPONENT_NAME = 'xslt'; + +export const isDataMapperNode = (stepDefinition: Step): boolean => { + const isDatamapperId = stepDefinition.id?.startsWith(DATAMAPPER_ID_PREFIX) ?? false; + const doesContainXslt = + stepDefinition.steps?.some((step) => { + if (typeof step.to === 'string') { + return step.to.startsWith(XSLT_COMPONENT_NAME); + } + + return step.to?.uri?.startsWith(XSLT_COMPONENT_NAME); + }) ?? false; + + return isDatamapperId && doesContainXslt; +}; From 1875562745a0efb19047eed030c29523a2c974a0 Mon Sep 17 00:00:00 2001 From: "Ricardo M." <lordrip@gmail.com> Date: Mon, 2 Sep 2024 10:52:13 +0200 Subject: [PATCH 353/471] feat(Datamapper): Bring Datamapper component --- .github/workflows/build-lint-test.yml | 8 +- data-mapper/.eslintrc.cjs | 17 - .../.github/workflows/build-lint-test.yml | 35 - data-mapper/.gitignore | 144 - data-mapper/.prettierrc | 12 - data-mapper/.stylelintrc | 9 - .../.yarn/plugins/@yarnpkg/plugin-exec.cjs | 35 - .../@yarnpkg/plugin-workspace-tools.cjs | 28 - data-mapper/.yarn/releases/yarn-3.8.5.cjs | 875 - data-mapper/.yarnrc.yml | 23 - data-mapper/package.json | 26 - data-mapper/packages/ui/.lintstagedrc.json | 5 - data-mapper/packages/ui/babel.config.cjs | 8 - data-mapper/packages/ui/index.html | 13 - data-mapper/packages/ui/jest-setup.ts | 48 - data-mapper/packages/ui/jest.config.ts | 209 - data-mapper/packages/ui/package.json | 105 - .../packages/ui/src/__mocks__/fileMock.ts | 1 - .../packages/ui/src/__mocks__/styleMock.ts | 1 - .../packages/ui/src/components/index.ts | 2 - data-mapper/packages/ui/src/main.tsx | 7 - data-mapper/packages/ui/tsconfig.cjs.json | 9 - data-mapper/packages/ui/tsconfig.esm.json | 34 - data-mapper/packages/ui/tsconfig.json | 31 - data-mapper/packages/ui/tsconfig.node.json | 10 - data-mapper/packages/ui/vite.config.js | 19 - data-mapper/renovate.json | 6 - data-mapper/yarn.lock | 14820 ---------------- packages/ui/jest-setup.ts | 14 + packages/ui/package.json | 4 + .../src/components/DataMapper/DataMapper.tsx | 8 - .../DataMapper/DataMapperLauncher.tsx | 18 + .../DataMapper}/components/Loading.tsx | 0 .../components/debug/CanvasMonitor.tsx | 0 .../components/debug/DataMapperMonitor.tsx | 0 .../components/document/Document.scss | 13 - .../components/document/NodeContainer.tsx | 0 .../components/document/Parameters.test.tsx | 0 .../components/document/Parameters.tsx | 0 .../document/SourceDocument.test.tsx | 0 .../components/document/SourceDocument.tsx | 0 .../components/document/TargetDocument.tsx | 0 .../actions/AttachSchemaButton.test.tsx | 0 .../document/actions/AttachSchemaButton.tsx | 0 .../actions/ConditionMenuAction.test.tsx | 0 .../document/actions/ConditionMenuAction.tsx | 0 .../actions/DeleteMappingItemAction.test.tsx | 0 .../actions/DeleteMappingItemAction.tsx | 0 .../actions/DeleteParameterButton.test.tsx | 0 .../actions/DeleteParameterButton.tsx | 0 .../actions/DetachSchemaButton.test.tsx | 0 .../document/actions/DetachSchemaButton.tsx | 0 .../document/actions/DocumentActions.test.tsx | 0 .../document/actions/DocumentActions.tsx | 0 .../actions/ExpressionEditorAction.test.tsx | 0 .../actions/ExpressionEditorAction.tsx | 0 .../actions/ExpressionInputAction.test.tsx | 0 .../actions/ExpressionInputAction.tsx | 0 .../actions/TargetNodeActions.test.tsx | 0 .../document/actions/TargetNodeActions.tsx | 0 .../expression/ExpressionEditor.tsx | 0 .../expression/FunctionIcon.test.tsx | 0 .../components/expression/FunctionIcon.tsx | 0 .../components/expression/Transformation.scss | 4 +- .../expression/monaco/XPathEditor.scss | 2 +- .../expression/monaco/XPathEditor.tsx | 0 .../expression/monaco/monaco-options.ts | 0 .../components/DataMapper/components/index.ts | 2 + .../toolbar/ExportMappingFileDropdownItem.tsx | 0 .../toolbar/ImportMappingFileDropdownItem.tsx | 0 .../toolbar/MainMenuToolbarItem.tsx | 0 .../toolbar/ToggleDebugToolbarItem.tsx | 0 .../DataMapper}/components/toolbar/index.ts | 0 .../src/components/DataMapper}/hooks/index.ts | 0 .../DataMapper}/hooks/useCanvas.tsx | 0 .../DataMapper}/hooks/useDataMapper.ts | 0 .../components/DataMapper}/hooks/useToggle.ts | 0 .../DataMapper}/layout/ContextToolbar.tsx | 0 .../DataMapper}/layout/MainCanvas.tsx | 0 .../DataMapper}/layout/StandaloneLayout.scss | 2 +- .../layout/StandaloneLayout.test.tsx | 0 .../DataMapper}/layout/StandaloneLayout.tsx | 0 .../components/DataMapper}/layout/index.ts | 0 .../DataMapper}/layout/views/MappingLink.tsx | 0 .../DataMapper}/layout/views/SourcePanel.tsx | 0 .../layout/views/SourceTargetView.scss | 5 +- .../layout/views/SourceTargetView.test.tsx | 0 .../layout/views/SourceTargetView.tsx | 0 .../DataMapper}/layout/views/index.ts | 0 .../components/DataMapper}/models/document.ts | 0 .../components/DataMapper}/models/mapping.ts | 0 .../src/components/DataMapper}/models/path.ts | 0 .../components/DataMapper}/models/types.ts | 0 .../src/components/DataMapper}/models/view.ts | 0 .../DataMapper}/models/visualization.test.ts | 0 .../DataMapper}/models/visualization.ts | 0 .../providers/CanvasProvider.test.tsx | 0 .../DataMapper}/providers/CanvasProvider.tsx | 0 .../providers/DataMapperProvider.test.tsx | 0 .../providers/DataMapperProvider.tsx | 0 .../DataMapper}/providers/dnd/DnDHandler.ts | 0 .../dnd/ExpressionEditorDnDHandler.ts | 0 .../providers/dnd/SourceTargetDnDHandler.ts | 0 .../components/DataMapper}/providers/index.ts | 0 .../services/document.service.test.ts | 0 .../DataMapper}/services/document.service.ts | 0 .../components/DataMapper}/services/index.ts | 0 .../mapping-serializer.service.test.ts | 0 .../services/mapping-serializer.service.ts | 0 .../services/mapping.service.test.ts | 0 .../DataMapper}/services/mapping.service.ts | 0 .../services/visualization.service.test.ts | 0 .../services/visualization.service.ts | 0 .../xml-schema-document.service.test.ts | 0 .../services/xml-schema-document.service.ts | 2 +- .../xpath/2.0/xpath-2.0-functions-boolean.ts | 0 .../xpath/2.0/xpath-2.0-functions-context.ts | 0 .../xpath/2.0/xpath-2.0-functions-datetime.ts | 0 .../xpath/2.0/xpath-2.0-functions-node.ts | 0 .../xpath/2.0/xpath-2.0-functions-numeric.ts | 0 .../xpath/2.0/xpath-2.0-functions-qname.ts | 0 .../xpath/2.0/xpath-2.0-functions-sequence.ts | 0 .../xpath/2.0/xpath-2.0-functions-string.ts | 0 .../services/xpath/2.0/xpath-2.0-functions.ts | 0 .../services/xpath/2.0/xpath-2.0-parser.ts | 0 .../services/xpath/monaco-language.ts | 0 .../services/xpath/xpath-parser.ts | 0 .../services/xpath/xpath.service.test.ts | 0 .../services/xpath/xpath.service.ts | 0 .../components/DataMapper}/test/test-util.ts | 14 +- .../DataMapper}/util/common.test.ts | 0 .../src/components/DataMapper}/util/common.ts | 0 .../src/components/DataMapper}/util/index.ts | 0 .../registers/RegisterComponents.tsx | 2 +- .../src/pages/DataMapper}/DataMapper.test.tsx | 6 +- .../ui/src/pages/DataMapper}/DataMapper.tsx | 18 +- packages/ui/src/pages/DataMapper/index.ts | 1 + .../src/pages/DataMapper/router-exports.tsx | 3 + packages/ui/src/router.tsx | 4 + packages/ui/src/router/links.models.ts | 1 + yarn.lock | 116 +- 141 files changed, 198 insertions(+), 16581 deletions(-) delete mode 100644 data-mapper/.eslintrc.cjs delete mode 100644 data-mapper/.github/workflows/build-lint-test.yml delete mode 100644 data-mapper/.gitignore delete mode 100644 data-mapper/.prettierrc delete mode 100644 data-mapper/.stylelintrc delete mode 100644 data-mapper/.yarn/plugins/@yarnpkg/plugin-exec.cjs delete mode 100644 data-mapper/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs delete mode 100755 data-mapper/.yarn/releases/yarn-3.8.5.cjs delete mode 100644 data-mapper/.yarnrc.yml delete mode 100644 data-mapper/package.json delete mode 100644 data-mapper/packages/ui/.lintstagedrc.json delete mode 100644 data-mapper/packages/ui/babel.config.cjs delete mode 100644 data-mapper/packages/ui/index.html delete mode 100644 data-mapper/packages/ui/jest-setup.ts delete mode 100644 data-mapper/packages/ui/jest.config.ts delete mode 100644 data-mapper/packages/ui/package.json delete mode 100644 data-mapper/packages/ui/src/__mocks__/fileMock.ts delete mode 100644 data-mapper/packages/ui/src/__mocks__/styleMock.ts delete mode 100644 data-mapper/packages/ui/src/components/index.ts delete mode 100644 data-mapper/packages/ui/src/main.tsx delete mode 100644 data-mapper/packages/ui/tsconfig.cjs.json delete mode 100644 data-mapper/packages/ui/tsconfig.esm.json delete mode 100644 data-mapper/packages/ui/tsconfig.json delete mode 100644 data-mapper/packages/ui/tsconfig.node.json delete mode 100644 data-mapper/packages/ui/vite.config.js delete mode 100644 data-mapper/renovate.json delete mode 100644 data-mapper/yarn.lock delete mode 100644 packages/ui/src/components/DataMapper/DataMapper.tsx create mode 100644 packages/ui/src/components/DataMapper/DataMapperLauncher.tsx rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/Loading.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/debug/CanvasMonitor.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/debug/DataMapperMonitor.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/Document.scss (76%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/NodeContainer.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/Parameters.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/Parameters.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/SourceDocument.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/SourceDocument.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/TargetDocument.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/AttachSchemaButton.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/AttachSchemaButton.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/ConditionMenuAction.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/ConditionMenuAction.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DeleteMappingItemAction.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DeleteMappingItemAction.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DeleteParameterButton.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DeleteParameterButton.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DetachSchemaButton.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DetachSchemaButton.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DocumentActions.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/DocumentActions.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/ExpressionEditorAction.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/ExpressionEditorAction.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/ExpressionInputAction.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/ExpressionInputAction.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/TargetNodeActions.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/document/actions/TargetNodeActions.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/expression/ExpressionEditor.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/expression/FunctionIcon.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/expression/FunctionIcon.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/expression/Transformation.scss (68%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/expression/monaco/XPathEditor.scss (95%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/expression/monaco/XPathEditor.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/expression/monaco/monaco-options.ts (100%) create mode 100644 packages/ui/src/components/DataMapper/components/index.ts rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/toolbar/ExportMappingFileDropdownItem.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/toolbar/ImportMappingFileDropdownItem.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/toolbar/MainMenuToolbarItem.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/toolbar/ToggleDebugToolbarItem.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/components/toolbar/index.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/hooks/index.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/hooks/useCanvas.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/hooks/useDataMapper.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/hooks/useToggle.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/ContextToolbar.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/MainCanvas.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/StandaloneLayout.scss (98%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/StandaloneLayout.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/StandaloneLayout.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/index.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/views/MappingLink.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/views/SourcePanel.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/views/SourceTargetView.scss (85%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/views/SourceTargetView.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/views/SourceTargetView.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/layout/views/index.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/models/document.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/models/mapping.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/models/path.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/models/types.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/models/view.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/models/visualization.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/models/visualization.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/CanvasProvider.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/CanvasProvider.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/DataMapperProvider.test.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/DataMapperProvider.tsx (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/dnd/DnDHandler.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/dnd/ExpressionEditorDnDHandler.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/dnd/SourceTargetDnDHandler.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/providers/index.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/document.service.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/document.service.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/index.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/mapping-serializer.service.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/mapping-serializer.service.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/mapping.service.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/mapping.service.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/visualization.service.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/visualization.service.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xml-schema-document.service.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xml-schema-document.service.ts (99%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-boolean.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-context.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-datetime.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-node.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-numeric.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-qname.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-sequence.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions-string.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-functions.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/2.0/xpath-2.0-parser.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/monaco-language.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/xpath-parser.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/xpath.service.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/services/xpath/xpath.service.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/test/test-util.ts (76%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/util/common.test.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/util/common.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/components/DataMapper}/util/index.ts (100%) rename {data-mapper/packages/ui/src => packages/ui/src/pages/DataMapper}/DataMapper.test.tsx (80%) rename {data-mapper/packages/ui/src => packages/ui/src/pages/DataMapper}/DataMapper.tsx (64%) create mode 100644 packages/ui/src/pages/DataMapper/index.ts create mode 100644 packages/ui/src/pages/DataMapper/router-exports.tsx diff --git a/.github/workflows/build-lint-test.yml b/.github/workflows/build-lint-test.yml index a3d3a1557..0e13c4d33 100644 --- a/.github/workflows/build-lint-test.yml +++ b/.github/workflows/build-lint-test.yml @@ -36,6 +36,10 @@ jobs: - name: 💅 Run stylelint run: yarn workspace @kaoto/kaoto run lint:style + # Build packages excluding @kaoto/camel-catalog since it was build during installing dependencies + - name: Build packages + run: yarn workspaces foreach --verbose --topological-dev --exclude @kaoto/camel-catalog run build + # Run tests - name: 🧪 Run tests run: yarn workspaces foreach --verbose --topological-dev run test @@ -45,10 +49,6 @@ jobs: with: token: ${{ secrets.CODECOV_TOKEN }} - # Build packages excluding @kaoto/camel-catalog since it was build during installing dependencies - - name: Build packages - run: yarn workspaces foreach --verbose --topological-dev --exclude @kaoto/camel-catalog run build - # Build lib - name: Build @kaoto/kaoto package in lib mode run: yarn workspace @kaoto/kaoto run build:lib diff --git a/data-mapper/.eslintrc.cjs b/data-mapper/.eslintrc.cjs deleted file mode 100644 index 2bf70f209..000000000 --- a/data-mapper/.eslintrc.cjs +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = { - root: true, - env: { browser: true, es2020: true }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react-hooks/recommended', - 'plugin:prettier/recommended', - ], - ignorePatterns: ['dist', '.eslintrc.cjs'], - parser: '@typescript-eslint/parser', - plugins: ['react-refresh'], - rules: { - 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }], - '@typescript-eslint/no-unused-vars': ['off'], /** Turned off since Typescript not unused vars is enabled */ - }, -}; diff --git a/data-mapper/.github/workflows/build-lint-test.yml b/data-mapper/.github/workflows/build-lint-test.yml deleted file mode 100644 index 700ca309a..000000000 --- a/data-mapper/.github/workflows/build-lint-test.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: 📦 Build npm Package -on: - push: - branches: - - main - pull_request: - types: [opened, synchronize, reopened] -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: 'Checkout source code' - uses: actions/checkout@v4 - - - uses: actions/setup-node@v4 - with: - node-version: '20.x' - registry-url: 'https://registry.npmjs.org' - scope: '@datamapper-poc' - cache: 'yarn' - - # Install dependencies - - run: yarn - - # Lint files - - name: 💅 Run eslint - run: yarn workspaces foreach --verbose --topological-dev run lint - - # Build packages - - name: Build packages - run: yarn workspaces foreach --verbose --topological-dev run build - - # Run tests - - name: 🧪 Run tests - run: yarn workspaces foreach --verbose --topological-dev run test diff --git a/data-mapper/.gitignore b/data-mapper/.gitignore deleted file mode 100644 index 61d5cc486..000000000 --- a/data-mapper/.gitignore +++ /dev/null @@ -1,144 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist -lib - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -# testing -**/cypress/screenshots/* -**/cypress/videos/* - -.vscode/* -.idea/* -**/*.iml - -# storybook -storybook-static - -**/circleDep diff --git a/data-mapper/.prettierrc b/data-mapper/.prettierrc deleted file mode 100644 index 1d6429019..000000000 --- a/data-mapper/.prettierrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "arrowParens": "always", - "bracketSameLine": false, - "bracketSpacing": true, - "endOfLine": "auto", - "printWidth": 120, - "semi": true, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "all", - "useTabs": false -} diff --git a/data-mapper/.stylelintrc b/data-mapper/.stylelintrc deleted file mode 100644 index 7e2e90702..000000000 --- a/data-mapper/.stylelintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": ["stylelint-config-standard-scss"], - "plugins": ["stylelint-prettier"], - "rules": { - "prettier/prettier": true, - "declaration-property-value-no-unknown": true, - "custom-property-pattern": null - } -} diff --git a/data-mapper/.yarn/plugins/@yarnpkg/plugin-exec.cjs b/data-mapper/.yarn/plugins/@yarnpkg/plugin-exec.cjs deleted file mode 100644 index 7aeff2daa..000000000 --- a/data-mapper/.yarn/plugins/@yarnpkg/plugin-exec.cjs +++ /dev/null @@ -1,35 +0,0 @@ -/* eslint-disable */ -//prettier-ignore -module.exports = { -name: "@yarnpkg/plugin-exec", -factory: function (require) { -var plugin=(()=>{var V=Object.create,d=Object.defineProperty,_=Object.defineProperties,G=Object.getOwnPropertyDescriptor,z=Object.getOwnPropertyDescriptors,J=Object.getOwnPropertyNames,j=Object.getOwnPropertySymbols,Y=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var U=(r,e,t)=>e in r?d(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,u=(r,e)=>{for(var t in e||(e={}))S.call(e,t)&&U(r,t,e[t]);if(j)for(var t of j(e))B.call(e,t)&&U(r,t,e[t]);return r},T=(r,e)=>_(r,z(e)),K=r=>d(r,"__esModule",{value:!0});var C=(r,e)=>{for(var t in e)d(r,t,{get:e[t],enumerable:!0})},Q=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of J(e))!S.call(r,a)&&a!=="default"&&d(r,a,{get:()=>e[a],enumerable:!(t=G(e,a))||t.enumerable});return r},h=r=>Q(K(d(r!=null?V(Y(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var Z={};C(Z,{default:()=>te,execUtils:()=>y});var l=h(require("@yarnpkg/core")),O=h(require("@yarnpkg/core")),n=h(require("@yarnpkg/fslib"));var p="exec:";var y={};C(y,{loadGeneratorFile:()=>P,makeLocator:()=>x,makeSpec:()=>A,parseSpec:()=>v});var f=h(require("@yarnpkg/core")),c=h(require("@yarnpkg/fslib"));function v(r){let{params:e,selector:t}=f.structUtils.parseRange(r),a=c.npath.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?f.structUtils.parseLocator(e.locator):null,path:a}}function A({parentLocator:r,path:e,generatorHash:t,protocol:a}){let o=r!==null?{locator:f.structUtils.stringifyLocator(r)}:{},i=typeof t!="undefined"?{hash:t}:{};return f.structUtils.makeRange({protocol:a,source:e,selector:e,params:u(u({},i),o)})}function x(r,{parentLocator:e,path:t,generatorHash:a,protocol:o}){return f.structUtils.makeLocator(r,A({parentLocator:e,path:t,generatorHash:a,protocol:o}))}async function P(r,e,t){let{parentLocator:a,path:o}=f.structUtils.parseFileStyleRange(r,{protocol:e}),i=c.ppath.isAbsolute(o)?{packageFs:new c.CwdFS(c.PortablePath.root),prefixPath:c.PortablePath.dot,localPath:c.PortablePath.root}:await t.fetcher.fetch(a,t),s=i.localPath?{packageFs:new c.CwdFS(c.PortablePath.root),prefixPath:c.ppath.relative(c.PortablePath.root,i.localPath)}:i;i!==s&&i.releaseFs&&i.releaseFs();let g=s.packageFs,b=c.ppath.join(s.prefixPath,o);return await g.readFilePromise(b,"utf8")}var L=class{supports(e,t){return!!e.reference.startsWith(p)}getLocalPath(e,t){let{parentLocator:a,path:o}=l.structUtils.parseFileStyleRange(e.reference,{protocol:p});if(n.ppath.isAbsolute(o))return o;let i=t.fetcher.getLocalPath(a,t);return i===null?null:n.ppath.resolve(i,o)}async fetch(e,t){let a=t.checksums.get(e.locatorHash)||null,[o,i,s]=await t.cache.fetchPackageFromCache(e,a,u({onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck},t.cacheOptions));return{packageFs:o,releaseFs:i,prefixPath:l.structUtils.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:s}}async fetchFromDisk(e,t){let a=await P(e.reference,p,t);return n.xfs.mktempPromise(async o=>{let i=n.ppath.join(o,"generator.js");return await n.xfs.writeFilePromise(i,a),n.xfs.mktempPromise(async s=>{if(await this.generatePackage(s,e,i,t),!n.xfs.existsSync(n.ppath.join(s,"build")))throw new Error("The script should have generated a build directory");return await l.tgzUtils.makeArchiveFromDirectory(n.ppath.join(s,"build"),{prefixPath:l.structUtils.getIdentVendorPath(e),compressionLevel:t.project.configuration.get("compressionLevel")})})})}async generatePackage(e,t,a,o){return await n.xfs.mktempPromise(async i=>{let s=await l.scriptUtils.makeScriptEnv({project:o.project,binFolder:i}),g=n.ppath.join(e,"runtime.js");return await n.xfs.mktempPromise(async b=>{let E=n.ppath.join(b,"buildfile.log"),I=null,F=n.xfs.createWriteStream(E),W=F,R=n.ppath.join(e,"generator"),D=n.ppath.join(e,"build");await n.xfs.mkdirPromise(R),await n.xfs.mkdirPromise(D);let $={tempDir:n.npath.fromPortablePath(R),buildDir:n.npath.fromPortablePath(D),locator:l.structUtils.stringifyLocator(t)};await n.xfs.writeFilePromise(g,` - // Expose 'Module' as a global variable - Object.defineProperty(global, 'Module', { - get: () => require('module'), - configurable: true, - enumerable: false, - }); - - // Expose non-hidden built-in modules as global variables - for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { - Object.defineProperty(global, name, { - get: () => require(name), - configurable: true, - enumerable: false, - }); - } - - // Expose the 'execEnv' global variable - Object.defineProperty(global, 'execEnv', { - value: { - ...${JSON.stringify($)}, - }, - enumerable: true, - }); - `);let k=s.NODE_OPTIONS||"",q=/\s*--require\s+\S*\.pnp\.c?js\s*/g;k=k.replace(q," ").trim(),s.NODE_OPTIONS=k,F.write(`# This file contains the result of Yarn generating a package (${l.structUtils.stringifyLocator(t)}) -`),F.write(` -`);let{code:M}=await l.execUtils.pipevp(process.execPath,["--require",n.npath.fromPortablePath(g),n.npath.fromPortablePath(a),l.structUtils.stringifyIdent(t)],{cwd:e,env:s,stdin:I,stdout:F,stderr:W});if(M!==0)throw n.xfs.detachTemp(b),new Error(`Package generation failed (exit code ${M}, logs can be found here: ${O.formatUtils.pretty(o.project.configuration,E,O.formatUtils.Type.PATH)})`)})})}};var N=h(require("@yarnpkg/core")),H=h(require("@yarnpkg/core")),m=h(require("@yarnpkg/core"));var X=2,w=class{supportsDescriptor(e,t){return!!e.range.startsWith(p)}supportsLocator(e,t){return!!e.reference.startsWith(p)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,a){return m.structUtils.bindDescriptor(e,{locator:m.structUtils.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,a){if(!a.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:o,parentLocator:i}=v(e.range);if(i===null)throw new Error("Assertion failed: The descriptor should have been bound");let s=await P(m.structUtils.makeRange({protocol:p,source:o,selector:o,params:{locator:m.structUtils.stringifyLocator(i)}}),p,a.fetchOptions),g=m.hashUtils.makeHash(`${X}`,s).slice(0,6);return[x(e,{parentLocator:i,path:o,generatorHash:g,protocol:p})]}async getSatisfying(e,t,a){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let a=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),o=await m.miscUtils.releaseAfterUseAsync(async()=>await N.Manifest.find(a.prefixPath,{baseFs:a.packageFs}),a.releaseFs);return T(u({},e),{version:o.version||"0.0.0",languageName:o.languageName||t.project.configuration.get("defaultLanguageName"),linkType:H.LinkType.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var ee={fetchers:[L],resolvers:[w]},te=ee;return Z;})(); -return plugin; -} -}; diff --git a/data-mapper/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs b/data-mapper/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs deleted file mode 100644 index 4e89c7c35..000000000 --- a/data-mapper/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +++ /dev/null @@ -1,28 +0,0 @@ -/* eslint-disable */ -//prettier-ignore -module.exports = { -name: "@yarnpkg/plugin-workspace-tools", -factory: function (require) { -var plugin=(()=>{var yr=Object.create;var we=Object.defineProperty;var _r=Object.getOwnPropertyDescriptor;var Er=Object.getOwnPropertyNames;var br=Object.getPrototypeOf,xr=Object.prototype.hasOwnProperty;var W=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var q=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),Cr=(e,r)=>{for(var t in r)we(e,t,{get:r[t],enumerable:!0})},Je=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of Er(r))!xr.call(e,s)&&s!==t&&we(e,s,{get:()=>r[s],enumerable:!(n=_r(r,s))||n.enumerable});return e};var Be=(e,r,t)=>(t=e!=null?yr(br(e)):{},Je(r||!e||!e.__esModule?we(t,"default",{value:e,enumerable:!0}):t,e)),wr=e=>Je(we({},"__esModule",{value:!0}),e);var ve=q(ee=>{"use strict";ee.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;ee.find=(e,r)=>e.nodes.find(t=>t.type===r);ee.exceedsLimit=(e,r,t=1,n)=>n===!1||!ee.isInteger(e)||!ee.isInteger(r)?!1:(Number(r)-Number(e))/Number(t)>=n;ee.escapeNode=(e,r=0,t)=>{let n=e.nodes[r];!n||(t&&n.type===t||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};ee.encloseBrace=e=>e.type!=="brace"?!1:e.commas>>0+e.ranges>>0===0?(e.invalid=!0,!0):!1;ee.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:e.commas>>0+e.ranges>>0===0||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;ee.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;ee.reduce=e=>e.reduce((r,t)=>(t.type==="text"&&r.push(t.value),t.type==="range"&&(t.type="text"),r),[]);ee.flatten=(...e)=>{let r=[],t=n=>{for(let s=0;s<n.length;s++){let i=n[s];Array.isArray(i)?t(i,r):i!==void 0&&r.push(i)}return r};return t(e),r}});var He=q((zn,rt)=>{"use strict";var tt=ve();rt.exports=(e,r={})=>{let t=(n,s={})=>{let i=r.escapeInvalid&&tt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c="";if(n.value)return(i||a)&&tt.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let p of n.nodes)c+=t(p);return c};return t(e)}});var st=q((Vn,nt)=>{"use strict";nt.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var ht=q((Jn,pt)=>{"use strict";var at=st(),le=(e,r,t)=>{if(at(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(r===void 0||e===r)return String(e);if(at(r)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...t};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let s=String(n.relaxZeros),i=String(n.shorthand),a=String(n.capture),c=String(n.wrap),p=e+":"+r+"="+s+i+a+c;if(le.cache.hasOwnProperty(p))return le.cache[p].result;let m=Math.min(e,r),h=Math.max(e,r);if(Math.abs(m-h)===1){let y=e+"|"+r;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let R=ft(e)||ft(r),f={min:e,max:r,a:m,b:h},$=[],_=[];if(R&&(f.isPadded=R,f.maxLen=String(f.max).length),m<0){let y=h<0?Math.abs(h):1;_=it(y,Math.abs(m),f,n),m=f.a=0}return h>=0&&($=it(m,h,f,n)),f.negatives=_,f.positives=$,f.result=Sr(_,$,n),n.capture===!0?f.result=`(${f.result})`:n.wrap!==!1&&$.length+_.length>1&&(f.result=`(?:${f.result})`),le.cache[p]=f,f.result};function Sr(e,r,t){let n=Pe(e,r,"-",!1,t)||[],s=Pe(r,e,"",!1,t)||[],i=Pe(e,r,"-?",!0,t)||[];return n.concat(i).concat(s).join("|")}function vr(e,r){let t=1,n=1,s=ut(e,t),i=new Set([r]);for(;e<=s&&s<=r;)i.add(s),t+=1,s=ut(e,t);for(s=ct(r+1,n)-1;e<s&&s<=r;)i.add(s),n+=1,s=ct(r+1,n)-1;return i=[...i],i.sort(Tr),i}function Hr(e,r,t){if(e===r)return{pattern:e,count:[],digits:0};let n=$r(e,r),s=n.length,i="",a=0;for(let c=0;c<s;c++){let[p,m]=n[c];p===m?i+=p:p!=="0"||m!=="9"?i+=kr(p,m,t):a++}return a&&(i+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:i,count:[a],digits:s}}function it(e,r,t,n){let s=vr(e,r),i=[],a=e,c;for(let p=0;p<s.length;p++){let m=s[p],h=Hr(String(a),String(m),n),R="";if(!t.isPadded&&c&&c.pattern===h.pattern){c.count.length>1&&c.count.pop(),c.count.push(h.count[0]),c.string=c.pattern+lt(c.count),a=m+1;continue}t.isPadded&&(R=Lr(m,t,n)),h.string=R+h.pattern+lt(h.count),i.push(h),a=m+1,c=h}return i}function Pe(e,r,t,n,s){let i=[];for(let a of e){let{string:c}=a;!n&&!ot(r,"string",c)&&i.push(t+c),n&&ot(r,"string",c)&&i.push(t+c)}return i}function $r(e,r){let t=[];for(let n=0;n<e.length;n++)t.push([e[n],r[n]]);return t}function Tr(e,r){return e>r?1:r>e?-1:0}function ot(e,r,t){return e.some(n=>n[r]===t)}function ut(e,r){return Number(String(e).slice(0,-r)+"9".repeat(r))}function ct(e,r){return e-e%Math.pow(10,r)}function lt(e){let[r=0,t=""]=e;return t||r>1?`{${r+(t?","+t:"")}}`:""}function kr(e,r,t){return`[${e}${r-e===1?"":"-"}${r}]`}function ft(e){return/^-?(0+)\d/.test(e)}function Lr(e,r,t){if(!r.isPadded)return e;let n=Math.abs(r.maxLen-String(e).length),s=t.relaxZeros!==!1;switch(n){case 0:return"";case 1:return s?"0?":"0";case 2:return s?"0{0,2}":"00";default:return s?`0{0,${n}}`:`0{${n}}`}}le.cache={};le.clearCache=()=>le.cache={};pt.exports=le});var Ue=q((es,Et)=>{"use strict";var Or=W("util"),At=ht(),dt=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Nr=e=>r=>e===!0?Number(r):String(r),Me=e=>typeof e=="number"||typeof e=="string"&&e!=="",Ae=e=>Number.isInteger(+e),De=e=>{let r=`${e}`,t=-1;if(r[0]==="-"&&(r=r.slice(1)),r==="0")return!1;for(;r[++t]==="0";);return t>0},Ir=(e,r,t)=>typeof e=="string"||typeof r=="string"?!0:t.stringify===!0,Br=(e,r,t)=>{if(r>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?r-1:r,"0")}return t===!1?String(e):e},gt=(e,r)=>{let t=e[0]==="-"?"-":"";for(t&&(e=e.slice(1),r--);e.length<r;)e="0"+e;return t?"-"+e:e},Pr=(e,r)=>{e.negatives.sort((a,c)=>a<c?-1:a>c?1:0),e.positives.sort((a,c)=>a<c?-1:a>c?1:0);let t=r.capture?"":"?:",n="",s="",i;return e.positives.length&&(n=e.positives.join("|")),e.negatives.length&&(s=`-(${t}${e.negatives.join("|")})`),n&&s?i=`${n}|${s}`:i=n||s,r.wrap?`(${t}${i})`:i},mt=(e,r,t,n)=>{if(t)return At(e,r,{wrap:!1,...n});let s=String.fromCharCode(e);if(e===r)return s;let i=String.fromCharCode(r);return`[${s}-${i}]`},Rt=(e,r,t)=>{if(Array.isArray(e)){let n=t.wrap===!0,s=t.capture?"":"?:";return n?`(${s}${e.join("|")})`:e.join("|")}return At(e,r,t)},yt=(...e)=>new RangeError("Invalid range arguments: "+Or.inspect(...e)),_t=(e,r,t)=>{if(t.strictRanges===!0)throw yt([e,r]);return[]},Mr=(e,r)=>{if(r.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},Dr=(e,r,t=1,n={})=>{let s=Number(e),i=Number(r);if(!Number.isInteger(s)||!Number.isInteger(i)){if(n.strictRanges===!0)throw yt([e,r]);return[]}s===0&&(s=0),i===0&&(i=0);let a=s>i,c=String(e),p=String(r),m=String(t);t=Math.max(Math.abs(t),1);let h=De(c)||De(p)||De(m),R=h?Math.max(c.length,p.length,m.length):0,f=h===!1&&Ir(e,r,n)===!1,$=n.transform||Nr(f);if(n.toRegex&&t===1)return mt(gt(e,R),gt(r,R),!0,n);let _={negatives:[],positives:[]},y=T=>_[T<0?"negatives":"positives"].push(Math.abs(T)),E=[],S=0;for(;a?s>=i:s<=i;)n.toRegex===!0&&t>1?y(s):E.push(Br($(s,S),R,f)),s=a?s-t:s+t,S++;return n.toRegex===!0?t>1?Pr(_,n):Rt(E,null,{wrap:!1,...n}):E},Ur=(e,r,t=1,n={})=>{if(!Ae(e)&&e.length>1||!Ae(r)&&r.length>1)return _t(e,r,n);let s=n.transform||(f=>String.fromCharCode(f)),i=`${e}`.charCodeAt(0),a=`${r}`.charCodeAt(0),c=i>a,p=Math.min(i,a),m=Math.max(i,a);if(n.toRegex&&t===1)return mt(p,m,!1,n);let h=[],R=0;for(;c?i>=a:i<=a;)h.push(s(i,R)),i=c?i-t:i+t,R++;return n.toRegex===!0?Rt(h,null,{wrap:!1,options:n}):h},$e=(e,r,t,n={})=>{if(r==null&&Me(e))return[e];if(!Me(e)||!Me(r))return _t(e,r,n);if(typeof t=="function")return $e(e,r,1,{transform:t});if(dt(t))return $e(e,r,0,t);let s={...n};return s.capture===!0&&(s.wrap=!0),t=t||s.step||1,Ae(t)?Ae(e)&&Ae(r)?Dr(e,r,t,s):Ur(e,r,Math.max(Math.abs(t),1),s):t!=null&&!dt(t)?Mr(t,s):$e(e,r,1,t)};Et.exports=$e});var Ct=q((ts,xt)=>{"use strict";var Gr=Ue(),bt=ve(),qr=(e,r={})=>{let t=(n,s={})=>{let i=bt.isInvalidBrace(s),a=n.invalid===!0&&r.escapeInvalid===!0,c=i===!0||a===!0,p=r.escapeInvalid===!0?"\\":"",m="";if(n.isOpen===!0||n.isClose===!0)return p+n.value;if(n.type==="open")return c?p+n.value:"(";if(n.type==="close")return c?p+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":c?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let h=bt.reduce(n.nodes),R=Gr(...h,{...r,wrap:!1,toRegex:!0});if(R.length!==0)return h.length>1&&R.length>1?`(${R})`:R}if(n.nodes)for(let h of n.nodes)m+=t(h,n);return m};return t(e)};xt.exports=qr});var vt=q((rs,St)=>{"use strict";var Kr=Ue(),wt=He(),he=ve(),fe=(e="",r="",t=!1)=>{let n=[];if(e=[].concat(e),r=[].concat(r),!r.length)return e;if(!e.length)return t?he.flatten(r).map(s=>`{${s}}`):r;for(let s of e)if(Array.isArray(s))for(let i of s)n.push(fe(i,r,t));else for(let i of r)t===!0&&typeof i=="string"&&(i=`{${i}}`),n.push(Array.isArray(i)?fe(s,i,t):s+i);return he.flatten(n)},Wr=(e,r={})=>{let t=r.rangeLimit===void 0?1e3:r.rangeLimit,n=(s,i={})=>{s.queue=[];let a=i,c=i.queue;for(;a.type!=="brace"&&a.type!=="root"&&a.parent;)a=a.parent,c=a.queue;if(s.invalid||s.dollar){c.push(fe(c.pop(),wt(s,r)));return}if(s.type==="brace"&&s.invalid!==!0&&s.nodes.length===2){c.push(fe(c.pop(),["{}"]));return}if(s.nodes&&s.ranges>0){let R=he.reduce(s.nodes);if(he.exceedsLimit(...R,r.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=Kr(...R,r);f.length===0&&(f=wt(s,r)),c.push(fe(c.pop(),f)),s.nodes=[];return}let p=he.encloseBrace(s),m=s.queue,h=s;for(;h.type!=="brace"&&h.type!=="root"&&h.parent;)h=h.parent,m=h.queue;for(let R=0;R<s.nodes.length;R++){let f=s.nodes[R];if(f.type==="comma"&&s.type==="brace"){R===1&&m.push(""),m.push("");continue}if(f.type==="close"){c.push(fe(c.pop(),m,p));continue}if(f.value&&f.type!=="open"){m.push(fe(m.pop(),f.value));continue}f.nodes&&n(f,s)}return m};return he.flatten(n(e))};St.exports=Wr});var $t=q((ns,Ht)=>{"use strict";Ht.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Nt=q((ss,Ot)=>{"use strict";var jr=He(),{MAX_LENGTH:Tt,CHAR_BACKSLASH:Ge,CHAR_BACKTICK:Fr,CHAR_COMMA:Qr,CHAR_DOT:Xr,CHAR_LEFT_PARENTHESES:Zr,CHAR_RIGHT_PARENTHESES:Yr,CHAR_LEFT_CURLY_BRACE:zr,CHAR_RIGHT_CURLY_BRACE:Vr,CHAR_LEFT_SQUARE_BRACKET:kt,CHAR_RIGHT_SQUARE_BRACKET:Lt,CHAR_DOUBLE_QUOTE:Jr,CHAR_SINGLE_QUOTE:en,CHAR_NO_BREAK_SPACE:tn,CHAR_ZERO_WIDTH_NOBREAK_SPACE:rn}=$t(),nn=(e,r={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let t=r||{},n=typeof t.maxLength=="number"?Math.min(Tt,t.maxLength):Tt;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let s={type:"root",input:e,nodes:[]},i=[s],a=s,c=s,p=0,m=e.length,h=0,R=0,f,$={},_=()=>e[h++],y=E=>{if(E.type==="text"&&c.type==="dot"&&(c.type="text"),c&&c.type==="text"&&E.type==="text"){c.value+=E.value;return}return a.nodes.push(E),E.parent=a,E.prev=c,c=E,E};for(y({type:"bos"});h<m;)if(a=i[i.length-1],f=_(),!(f===rn||f===tn)){if(f===Ge){y({type:"text",value:(r.keepEscaping?f:"")+_()});continue}if(f===Lt){y({type:"text",value:"\\"+f});continue}if(f===kt){p++;let E=!0,S;for(;h<m&&(S=_());){if(f+=S,S===kt){p++;continue}if(S===Ge){f+=_();continue}if(S===Lt&&(p--,p===0))break}y({type:"text",value:f});continue}if(f===Zr){a=y({type:"paren",nodes:[]}),i.push(a),y({type:"text",value:f});continue}if(f===Yr){if(a.type!=="paren"){y({type:"text",value:f});continue}a=i.pop(),y({type:"text",value:f}),a=i[i.length-1];continue}if(f===Jr||f===en||f===Fr){let E=f,S;for(r.keepQuotes!==!0&&(f="");h<m&&(S=_());){if(S===Ge){f+=S+_();continue}if(S===E){r.keepQuotes===!0&&(f+=S);break}f+=S}y({type:"text",value:f});continue}if(f===zr){R++;let E=c.value&&c.value.slice(-1)==="$"||a.dollar===!0;a=y({type:"brace",open:!0,close:!1,dollar:E,depth:R,commas:0,ranges:0,nodes:[]}),i.push(a),y({type:"open",value:f});continue}if(f===Vr){if(a.type!=="brace"){y({type:"text",value:f});continue}let E="close";a=i.pop(),a.close=!0,y({type:E,value:f}),R--,a=i[i.length-1];continue}if(f===Qr&&R>0){if(a.ranges>0){a.ranges=0;let E=a.nodes.shift();a.nodes=[E,{type:"text",value:jr(a)}]}y({type:"comma",value:f}),a.commas++;continue}if(f===Xr&&R>0&&a.commas===0){let E=a.nodes;if(R===0||E.length===0){y({type:"text",value:f});continue}if(c.type==="dot"){if(a.range=[],c.value+=f,c.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,c.type="text";continue}a.ranges++,a.args=[];continue}if(c.type==="range"){E.pop();let S=E[E.length-1];S.value+=c.value+f,c=S,a.ranges--;continue}y({type:"dot",value:f});continue}y({type:"text",value:f})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(T=>{T.nodes||(T.type==="open"&&(T.isOpen=!0),T.type==="close"&&(T.isClose=!0),T.nodes||(T.type="text"),T.invalid=!0)});let E=i[i.length-1],S=E.nodes.indexOf(a);E.nodes.splice(S,1,...a.nodes)}while(i.length>0);return y({type:"eos"}),s};Ot.exports=nn});var Pt=q((as,Bt)=>{"use strict";var It=He(),sn=Ct(),an=vt(),on=Nt(),Z=(e,r={})=>{let t=[];if(Array.isArray(e))for(let n of e){let s=Z.create(n,r);Array.isArray(s)?t.push(...s):t.push(s)}else t=[].concat(Z.create(e,r));return r&&r.expand===!0&&r.nodupes===!0&&(t=[...new Set(t)]),t};Z.parse=(e,r={})=>on(e,r);Z.stringify=(e,r={})=>It(typeof e=="string"?Z.parse(e,r):e,r);Z.compile=(e,r={})=>(typeof e=="string"&&(e=Z.parse(e,r)),sn(e,r));Z.expand=(e,r={})=>{typeof e=="string"&&(e=Z.parse(e,r));let t=an(e,r);return r.noempty===!0&&(t=t.filter(Boolean)),r.nodupes===!0&&(t=[...new Set(t)]),t};Z.create=(e,r={})=>e===""||e.length<3?[e]:r.expand!==!0?Z.compile(e,r):Z.expand(e,r);Bt.exports=Z});var me=q((is,qt)=>{"use strict";var un=W("path"),se="\\\\/",Mt=`[^${se}]`,ie="\\.",cn="\\+",ln="\\?",Te="\\/",fn="(?=.)",Dt="[^/]",qe=`(?:${Te}|$)`,Ut=`(?:^|${Te})`,Ke=`${ie}{1,2}${qe}`,pn=`(?!${ie})`,hn=`(?!${Ut}${Ke})`,dn=`(?!${ie}{0,1}${qe})`,gn=`(?!${Ke})`,An=`[^.${Te}]`,mn=`${Dt}*?`,Gt={DOT_LITERAL:ie,PLUS_LITERAL:cn,QMARK_LITERAL:ln,SLASH_LITERAL:Te,ONE_CHAR:fn,QMARK:Dt,END_ANCHOR:qe,DOTS_SLASH:Ke,NO_DOT:pn,NO_DOTS:hn,NO_DOT_SLASH:dn,NO_DOTS_SLASH:gn,QMARK_NO_DOT:An,STAR:mn,START_ANCHOR:Ut},Rn={...Gt,SLASH_LITERAL:`[${se}]`,QMARK:Mt,STAR:`${Mt}*?`,DOTS_SLASH:`${ie}{1,2}(?:[${se}]|$)`,NO_DOT:`(?!${ie})`,NO_DOTS:`(?!(?:^|[${se}])${ie}{1,2}(?:[${se}]|$))`,NO_DOT_SLASH:`(?!${ie}{0,1}(?:[${se}]|$))`,NO_DOTS_SLASH:`(?!${ie}{1,2}(?:[${se}]|$))`,QMARK_NO_DOT:`[^.${se}]`,START_ANCHOR:`(?:^|[${se}])`,END_ANCHOR:`(?:[${se}]|$)`},yn={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};qt.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:yn,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:un.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Rn:Gt}}});var Re=q(Q=>{"use strict";var _n=W("path"),En=process.platform==="win32",{REGEX_BACKSLASH:bn,REGEX_REMOVE_BACKSLASH:xn,REGEX_SPECIAL_CHARS:Cn,REGEX_SPECIAL_CHARS_GLOBAL:wn}=me();Q.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Q.hasRegexChars=e=>Cn.test(e);Q.isRegexChar=e=>e.length===1&&Q.hasRegexChars(e);Q.escapeRegex=e=>e.replace(wn,"\\$1");Q.toPosixSlashes=e=>e.replace(bn,"/");Q.removeBackslashes=e=>e.replace(xn,r=>r==="\\"?"":r);Q.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Q.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:En===!0||_n.sep==="\\";Q.escapeLast=(e,r,t)=>{let n=e.lastIndexOf(r,t);return n===-1?e:e[n-1]==="\\"?Q.escapeLast(e,r,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Q.removePrefix=(e,r={})=>{let t=e;return t.startsWith("./")&&(t=t.slice(2),r.prefix="./"),t};Q.wrapOutput=(e,r={},t={})=>{let n=t.contains?"":"^",s=t.contains?"":"$",i=`${n}(?:${e})${s}`;return r.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var Yt=q((us,Zt)=>{"use strict";var Kt=Re(),{CHAR_ASTERISK:We,CHAR_AT:Sn,CHAR_BACKWARD_SLASH:ye,CHAR_COMMA:vn,CHAR_DOT:je,CHAR_EXCLAMATION_MARK:Fe,CHAR_FORWARD_SLASH:Xt,CHAR_LEFT_CURLY_BRACE:Qe,CHAR_LEFT_PARENTHESES:Xe,CHAR_LEFT_SQUARE_BRACKET:Hn,CHAR_PLUS:$n,CHAR_QUESTION_MARK:Wt,CHAR_RIGHT_CURLY_BRACE:Tn,CHAR_RIGHT_PARENTHESES:jt,CHAR_RIGHT_SQUARE_BRACKET:kn}=me(),Ft=e=>e===Xt||e===ye,Qt=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},Ln=(e,r)=>{let t=r||{},n=e.length-1,s=t.parts===!0||t.scanToEnd===!0,i=[],a=[],c=[],p=e,m=-1,h=0,R=0,f=!1,$=!1,_=!1,y=!1,E=!1,S=!1,T=!1,L=!1,z=!1,I=!1,re=0,K,g,v={value:"",depth:0,isGlob:!1},k=()=>m>=n,l=()=>p.charCodeAt(m+1),H=()=>(K=g,p.charCodeAt(++m));for(;m<n;){g=H();let P;if(g===ye){T=v.backslashes=!0,g=H(),g===Qe&&(S=!0);continue}if(S===!0||g===Qe){for(re++;k()!==!0&&(g=H());){if(g===ye){T=v.backslashes=!0,H();continue}if(g===Qe){re++;continue}if(S!==!0&&g===je&&(g=H())===je){if(f=v.isBrace=!0,_=v.isGlob=!0,I=!0,s===!0)continue;break}if(S!==!0&&g===vn){if(f=v.isBrace=!0,_=v.isGlob=!0,I=!0,s===!0)continue;break}if(g===Tn&&(re--,re===0)){S=!1,f=v.isBrace=!0,I=!0;break}}if(s===!0)continue;break}if(g===Xt){if(i.push(m),a.push(v),v={value:"",depth:0,isGlob:!1},I===!0)continue;if(K===je&&m===h+1){h+=2;continue}R=m+1;continue}if(t.noext!==!0&&(g===$n||g===Sn||g===We||g===Wt||g===Fe)===!0&&l()===Xe){if(_=v.isGlob=!0,y=v.isExtglob=!0,I=!0,g===Fe&&m===h&&(z=!0),s===!0){for(;k()!==!0&&(g=H());){if(g===ye){T=v.backslashes=!0,g=H();continue}if(g===jt){_=v.isGlob=!0,I=!0;break}}continue}break}if(g===We){if(K===We&&(E=v.isGlobstar=!0),_=v.isGlob=!0,I=!0,s===!0)continue;break}if(g===Wt){if(_=v.isGlob=!0,I=!0,s===!0)continue;break}if(g===Hn){for(;k()!==!0&&(P=H());){if(P===ye){T=v.backslashes=!0,H();continue}if(P===kn){$=v.isBracket=!0,_=v.isGlob=!0,I=!0;break}}if(s===!0)continue;break}if(t.nonegate!==!0&&g===Fe&&m===h){L=v.negated=!0,h++;continue}if(t.noparen!==!0&&g===Xe){if(_=v.isGlob=!0,s===!0){for(;k()!==!0&&(g=H());){if(g===Xe){T=v.backslashes=!0,g=H();continue}if(g===jt){I=!0;break}}continue}break}if(_===!0){if(I=!0,s===!0)continue;break}}t.noext===!0&&(y=!1,_=!1);let w=p,B="",o="";h>0&&(B=p.slice(0,h),p=p.slice(h),R-=h),w&&_===!0&&R>0?(w=p.slice(0,R),o=p.slice(R)):_===!0?(w="",o=p):w=p,w&&w!==""&&w!=="/"&&w!==p&&Ft(w.charCodeAt(w.length-1))&&(w=w.slice(0,-1)),t.unescape===!0&&(o&&(o=Kt.removeBackslashes(o)),w&&T===!0&&(w=Kt.removeBackslashes(w)));let u={prefix:B,input:e,start:h,base:w,glob:o,isBrace:f,isBracket:$,isGlob:_,isExtglob:y,isGlobstar:E,negated:L,negatedExtglob:z};if(t.tokens===!0&&(u.maxDepth=0,Ft(g)||a.push(v),u.tokens=a),t.parts===!0||t.tokens===!0){let P;for(let b=0;b<i.length;b++){let V=P?P+1:h,J=i[b],X=e.slice(V,J);t.tokens&&(b===0&&h!==0?(a[b].isPrefix=!0,a[b].value=B):a[b].value=X,Qt(a[b]),u.maxDepth+=a[b].depth),(b!==0||X!=="")&&c.push(X),P=J}if(P&&P+1<e.length){let b=e.slice(P+1);c.push(b),t.tokens&&(a[a.length-1].value=b,Qt(a[a.length-1]),u.maxDepth+=a[a.length-1].depth)}u.slashes=i,u.parts=c}return u};Zt.exports=Ln});var er=q((cs,Jt)=>{"use strict";var ke=me(),Y=Re(),{MAX_LENGTH:Le,POSIX_REGEX_SOURCE:On,REGEX_NON_SPECIAL_CHARS:Nn,REGEX_SPECIAL_CHARS_BACKREF:In,REPLACEMENTS:zt}=ke,Bn=(e,r)=>{if(typeof r.expandRange=="function")return r.expandRange(...e,r);e.sort();let t=`[${e.join("-")}]`;try{new RegExp(t)}catch{return e.map(s=>Y.escapeRegex(s)).join("..")}return t},de=(e,r)=>`Missing ${e}: "${r}" - use "\\\\${r}" to match literal characters`,Vt=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=zt[e]||e;let t={...r},n=typeof t.maxLength=="number"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);let i={type:"bos",value:"",output:t.prepend||""},a=[i],c=t.capture?"":"?:",p=Y.isWindows(r),m=ke.globChars(p),h=ke.extglobChars(m),{DOT_LITERAL:R,PLUS_LITERAL:f,SLASH_LITERAL:$,ONE_CHAR:_,DOTS_SLASH:y,NO_DOT:E,NO_DOT_SLASH:S,NO_DOTS_SLASH:T,QMARK:L,QMARK_NO_DOT:z,STAR:I,START_ANCHOR:re}=m,K=A=>`(${c}(?:(?!${re}${A.dot?y:R}).)*?)`,g=t.dot?"":E,v=t.dot?L:z,k=t.bash===!0?K(t):I;t.capture&&(k=`(${k})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let l={input:e,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};e=Y.removePrefix(e,l),s=e.length;let H=[],w=[],B=[],o=i,u,P=()=>l.index===s-1,b=l.peek=(A=1)=>e[l.index+A],V=l.advance=()=>e[++l.index]||"",J=()=>e.slice(l.index+1),X=(A="",O=0)=>{l.consumed+=A,l.index+=O},Ee=A=>{l.output+=A.output!=null?A.output:A.value,X(A.value)},mr=()=>{let A=1;for(;b()==="!"&&(b(2)!=="("||b(3)==="?");)V(),l.start++,A++;return A%2===0?!1:(l.negated=!0,l.start++,!0)},be=A=>{l[A]++,B.push(A)},oe=A=>{l[A]--,B.pop()},C=A=>{if(o.type==="globstar"){let O=l.braces>0&&(A.type==="comma"||A.type==="brace"),d=A.extglob===!0||H.length&&(A.type==="pipe"||A.type==="paren");A.type!=="slash"&&A.type!=="paren"&&!O&&!d&&(l.output=l.output.slice(0,-o.output.length),o.type="star",o.value="*",o.output=k,l.output+=o.output)}if(H.length&&A.type!=="paren"&&(H[H.length-1].inner+=A.value),(A.value||A.output)&&Ee(A),o&&o.type==="text"&&A.type==="text"){o.value+=A.value,o.output=(o.output||"")+A.value;return}A.prev=o,a.push(A),o=A},xe=(A,O)=>{let d={...h[O],conditions:1,inner:""};d.prev=o,d.parens=l.parens,d.output=l.output;let x=(t.capture?"(":"")+d.open;be("parens"),C({type:A,value:O,output:l.output?"":_}),C({type:"paren",extglob:!0,value:V(),output:x}),H.push(d)},Rr=A=>{let O=A.close+(t.capture?")":""),d;if(A.type==="negate"){let x=k;A.inner&&A.inner.length>1&&A.inner.includes("/")&&(x=K(t)),(x!==k||P()||/^\)+$/.test(J()))&&(O=A.close=`)$))${x}`),A.inner.includes("*")&&(d=J())&&/^\.[^\\/.]+$/.test(d)&&(O=A.close=`)${d})${x})`),A.prev.type==="bos"&&(l.negatedExtglob=!0)}C({type:"paren",extglob:!0,value:u,output:O}),oe("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let A=!1,O=e.replace(In,(d,x,M,j,G,Ie)=>j==="\\"?(A=!0,d):j==="?"?x?x+j+(G?L.repeat(G.length):""):Ie===0?v+(G?L.repeat(G.length):""):L.repeat(M.length):j==="."?R.repeat(M.length):j==="*"?x?x+j+(G?k:""):k:x?d:`\\${d}`);return A===!0&&(t.unescape===!0?O=O.replace(/\\/g,""):O=O.replace(/\\+/g,d=>d.length%2===0?"\\\\":d?"\\":"")),O===e&&t.contains===!0?(l.output=e,l):(l.output=Y.wrapOutput(O,l,r),l)}for(;!P();){if(u=V(),u==="\0")continue;if(u==="\\"){let d=b();if(d==="/"&&t.bash!==!0||d==="."||d===";")continue;if(!d){u+="\\",C({type:"text",value:u});continue}let x=/^\\+/.exec(J()),M=0;if(x&&x[0].length>2&&(M=x[0].length,l.index+=M,M%2!==0&&(u+="\\")),t.unescape===!0?u=V():u+=V(),l.brackets===0){C({type:"text",value:u});continue}}if(l.brackets>0&&(u!=="]"||o.value==="["||o.value==="[^")){if(t.posix!==!1&&u===":"){let d=o.value.slice(1);if(d.includes("[")&&(o.posix=!0,d.includes(":"))){let x=o.value.lastIndexOf("["),M=o.value.slice(0,x),j=o.value.slice(x+2),G=On[j];if(G){o.value=M+G,l.backtrack=!0,V(),!i.output&&a.indexOf(o)===1&&(i.output=_);continue}}}(u==="["&&b()!==":"||u==="-"&&b()==="]")&&(u=`\\${u}`),u==="]"&&(o.value==="["||o.value==="[^")&&(u=`\\${u}`),t.posix===!0&&u==="!"&&o.value==="["&&(u="^"),o.value+=u,Ee({value:u});continue}if(l.quotes===1&&u!=='"'){u=Y.escapeRegex(u),o.value+=u,Ee({value:u});continue}if(u==='"'){l.quotes=l.quotes===1?0:1,t.keepQuotes===!0&&C({type:"text",value:u});continue}if(u==="("){be("parens"),C({type:"paren",value:u});continue}if(u===")"){if(l.parens===0&&t.strictBrackets===!0)throw new SyntaxError(de("opening","("));let d=H[H.length-1];if(d&&l.parens===d.parens+1){Rr(H.pop());continue}C({type:"paren",value:u,output:l.parens?")":"\\)"}),oe("parens");continue}if(u==="["){if(t.nobracket===!0||!J().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(de("closing","]"));u=`\\${u}`}else be("brackets");C({type:"bracket",value:u});continue}if(u==="]"){if(t.nobracket===!0||o&&o.type==="bracket"&&o.value.length===1){C({type:"text",value:u,output:`\\${u}`});continue}if(l.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(de("opening","["));C({type:"text",value:u,output:`\\${u}`});continue}oe("brackets");let d=o.value.slice(1);if(o.posix!==!0&&d[0]==="^"&&!d.includes("/")&&(u=`/${u}`),o.value+=u,Ee({value:u}),t.literalBrackets===!1||Y.hasRegexChars(d))continue;let x=Y.escapeRegex(o.value);if(l.output=l.output.slice(0,-o.value.length),t.literalBrackets===!0){l.output+=x,o.value=x;continue}o.value=`(${c}${x}|${o.value})`,l.output+=o.value;continue}if(u==="{"&&t.nobrace!==!0){be("braces");let d={type:"brace",value:u,output:"(",outputIndex:l.output.length,tokensIndex:l.tokens.length};w.push(d),C(d);continue}if(u==="}"){let d=w[w.length-1];if(t.nobrace===!0||!d){C({type:"text",value:u,output:u});continue}let x=")";if(d.dots===!0){let M=a.slice(),j=[];for(let G=M.length-1;G>=0&&(a.pop(),M[G].type!=="brace");G--)M[G].type!=="dots"&&j.unshift(M[G].value);x=Bn(j,t),l.backtrack=!0}if(d.comma!==!0&&d.dots!==!0){let M=l.output.slice(0,d.outputIndex),j=l.tokens.slice(d.tokensIndex);d.value=d.output="\\{",u=x="\\}",l.output=M;for(let G of j)l.output+=G.output||G.value}C({type:"brace",value:u,output:x}),oe("braces"),w.pop();continue}if(u==="|"){H.length>0&&H[H.length-1].conditions++,C({type:"text",value:u});continue}if(u===","){let d=u,x=w[w.length-1];x&&B[B.length-1]==="braces"&&(x.comma=!0,d="|"),C({type:"comma",value:u,output:d});continue}if(u==="/"){if(o.type==="dot"&&l.index===l.start+1){l.start=l.index+1,l.consumed="",l.output="",a.pop(),o=i;continue}C({type:"slash",value:u,output:$});continue}if(u==="."){if(l.braces>0&&o.type==="dot"){o.value==="."&&(o.output=R);let d=w[w.length-1];o.type="dots",o.output+=u,o.value+=u,d.dots=!0;continue}if(l.braces+l.parens===0&&o.type!=="bos"&&o.type!=="slash"){C({type:"text",value:u,output:R});continue}C({type:"dot",value:u,output:R});continue}if(u==="?"){if(!(o&&o.value==="(")&&t.noextglob!==!0&&b()==="("&&b(2)!=="?"){xe("qmark",u);continue}if(o&&o.type==="paren"){let x=b(),M=u;if(x==="<"&&!Y.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(o.value==="("&&!/[!=<:]/.test(x)||x==="<"&&!/<([!=]|\w+>)/.test(J()))&&(M=`\\${u}`),C({type:"text",value:u,output:M});continue}if(t.dot!==!0&&(o.type==="slash"||o.type==="bos")){C({type:"qmark",value:u,output:z});continue}C({type:"qmark",value:u,output:L});continue}if(u==="!"){if(t.noextglob!==!0&&b()==="("&&(b(2)!=="?"||!/[!=<:]/.test(b(3)))){xe("negate",u);continue}if(t.nonegate!==!0&&l.index===0){mr();continue}}if(u==="+"){if(t.noextglob!==!0&&b()==="("&&b(2)!=="?"){xe("plus",u);continue}if(o&&o.value==="("||t.regex===!1){C({type:"plus",value:u,output:f});continue}if(o&&(o.type==="bracket"||o.type==="paren"||o.type==="brace")||l.parens>0){C({type:"plus",value:u});continue}C({type:"plus",value:f});continue}if(u==="@"){if(t.noextglob!==!0&&b()==="("&&b(2)!=="?"){C({type:"at",extglob:!0,value:u,output:""});continue}C({type:"text",value:u});continue}if(u!=="*"){(u==="$"||u==="^")&&(u=`\\${u}`);let d=Nn.exec(J());d&&(u+=d[0],l.index+=d[0].length),C({type:"text",value:u});continue}if(o&&(o.type==="globstar"||o.star===!0)){o.type="star",o.star=!0,o.value+=u,o.output=k,l.backtrack=!0,l.globstar=!0,X(u);continue}let A=J();if(t.noextglob!==!0&&/^\([^?]/.test(A)){xe("star",u);continue}if(o.type==="star"){if(t.noglobstar===!0){X(u);continue}let d=o.prev,x=d.prev,M=d.type==="slash"||d.type==="bos",j=x&&(x.type==="star"||x.type==="globstar");if(t.bash===!0&&(!M||A[0]&&A[0]!=="/")){C({type:"star",value:u,output:""});continue}let G=l.braces>0&&(d.type==="comma"||d.type==="brace"),Ie=H.length&&(d.type==="pipe"||d.type==="paren");if(!M&&d.type!=="paren"&&!G&&!Ie){C({type:"star",value:u,output:""});continue}for(;A.slice(0,3)==="/**";){let Ce=e[l.index+4];if(Ce&&Ce!=="/")break;A=A.slice(3),X("/**",3)}if(d.type==="bos"&&P()){o.type="globstar",o.value+=u,o.output=K(t),l.output=o.output,l.globstar=!0,X(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&!j&&P()){l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type="globstar",o.output=K(t)+(t.strictSlashes?")":"|$)"),o.value+=u,l.globstar=!0,l.output+=d.output+o.output,X(u);continue}if(d.type==="slash"&&d.prev.type!=="bos"&&A[0]==="/"){let Ce=A[1]!==void 0?"|$":"";l.output=l.output.slice(0,-(d.output+o.output).length),d.output=`(?:${d.output}`,o.type="globstar",o.output=`${K(t)}${$}|${$}${Ce})`,o.value+=u,l.output+=d.output+o.output,l.globstar=!0,X(u+V()),C({type:"slash",value:"/",output:""});continue}if(d.type==="bos"&&A[0]==="/"){o.type="globstar",o.value+=u,o.output=`(?:^|${$}|${K(t)}${$})`,l.output=o.output,l.globstar=!0,X(u+V()),C({type:"slash",value:"/",output:""});continue}l.output=l.output.slice(0,-o.output.length),o.type="globstar",o.output=K(t),o.value+=u,l.output+=o.output,l.globstar=!0,X(u);continue}let O={type:"star",value:u,output:k};if(t.bash===!0){O.output=".*?",(o.type==="bos"||o.type==="slash")&&(O.output=g+O.output),C(O);continue}if(o&&(o.type==="bracket"||o.type==="paren")&&t.regex===!0){O.output=u,C(O);continue}(l.index===l.start||o.type==="slash"||o.type==="dot")&&(o.type==="dot"?(l.output+=S,o.output+=S):t.dot===!0?(l.output+=T,o.output+=T):(l.output+=g,o.output+=g),b()!=="*"&&(l.output+=_,o.output+=_)),C(O)}for(;l.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing","]"));l.output=Y.escapeLast(l.output,"["),oe("brackets")}for(;l.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing",")"));l.output=Y.escapeLast(l.output,"("),oe("parens")}for(;l.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(de("closing","}"));l.output=Y.escapeLast(l.output,"{"),oe("braces")}if(t.strictSlashes!==!0&&(o.type==="star"||o.type==="bracket")&&C({type:"maybe_slash",value:"",output:`${$}?`}),l.backtrack===!0){l.output="";for(let A of l.tokens)l.output+=A.output!=null?A.output:A.value,A.suffix&&(l.output+=A.suffix)}return l};Vt.fastpaths=(e,r)=>{let t={...r},n=typeof t.maxLength=="number"?Math.min(Le,t.maxLength):Le,s=e.length;if(s>n)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${n}`);e=zt[e]||e;let i=Y.isWindows(r),{DOT_LITERAL:a,SLASH_LITERAL:c,ONE_CHAR:p,DOTS_SLASH:m,NO_DOT:h,NO_DOTS:R,NO_DOTS_SLASH:f,STAR:$,START_ANCHOR:_}=ke.globChars(i),y=t.dot?R:h,E=t.dot?f:h,S=t.capture?"":"?:",T={negated:!1,prefix:""},L=t.bash===!0?".*?":$;t.capture&&(L=`(${L})`);let z=g=>g.noglobstar===!0?L:`(${S}(?:(?!${_}${g.dot?m:a}).)*?)`,I=g=>{switch(g){case"*":return`${y}${p}${L}`;case".*":return`${a}${p}${L}`;case"*.*":return`${y}${L}${a}${p}${L}`;case"*/*":return`${y}${L}${c}${p}${E}${L}`;case"**":return y+z(t);case"**/*":return`(?:${y}${z(t)}${c})?${E}${p}${L}`;case"**/*.*":return`(?:${y}${z(t)}${c})?${E}${L}${a}${p}${L}`;case"**/.*":return`(?:${y}${z(t)}${c})?${a}${p}${L}`;default:{let v=/^(.*?)\.(\w+)$/.exec(g);if(!v)return;let k=I(v[1]);return k?k+a+v[2]:void 0}}},re=Y.removePrefix(e,T),K=I(re);return K&&t.strictSlashes!==!0&&(K+=`${c}?`),K};Jt.exports=Vt});var rr=q((ls,tr)=>{"use strict";var Pn=W("path"),Mn=Yt(),Ze=er(),Ye=Re(),Dn=me(),Un=e=>e&&typeof e=="object"&&!Array.isArray(e),D=(e,r,t=!1)=>{if(Array.isArray(e)){let h=e.map(f=>D(f,r,t));return f=>{for(let $ of h){let _=$(f);if(_)return _}return!1}}let n=Un(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let s=r||{},i=Ye.isWindows(r),a=n?D.compileRe(e,r):D.makeRe(e,r,!1,!0),c=a.state;delete a.state;let p=()=>!1;if(s.ignore){let h={...r,ignore:null,onMatch:null,onResult:null};p=D(s.ignore,h,t)}let m=(h,R=!1)=>{let{isMatch:f,match:$,output:_}=D.test(h,a,r,{glob:e,posix:i}),y={glob:e,state:c,regex:a,posix:i,input:h,output:_,match:$,isMatch:f};return typeof s.onResult=="function"&&s.onResult(y),f===!1?(y.isMatch=!1,R?y:!1):p(h)?(typeof s.onIgnore=="function"&&s.onIgnore(y),y.isMatch=!1,R?y:!1):(typeof s.onMatch=="function"&&s.onMatch(y),R?y:!0)};return t&&(m.state=c),m};D.test=(e,r,t,{glob:n,posix:s}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let i=t||{},a=i.format||(s?Ye.toPosixSlashes:null),c=e===n,p=c&&a?a(e):e;return c===!1&&(p=a?a(e):e,c=p===n),(c===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?c=D.matchBase(e,r,t,s):c=r.exec(p)),{isMatch:Boolean(c),match:c,output:p}};D.matchBase=(e,r,t,n=Ye.isWindows(t))=>(r instanceof RegExp?r:D.makeRe(r,t)).test(Pn.basename(e));D.isMatch=(e,r,t)=>D(r,t)(e);D.parse=(e,r)=>Array.isArray(e)?e.map(t=>D.parse(t,r)):Ze(e,{...r,fastpaths:!1});D.scan=(e,r)=>Mn(e,r);D.compileRe=(e,r,t=!1,n=!1)=>{if(t===!0)return e.output;let s=r||{},i=s.contains?"":"^",a=s.contains?"":"$",c=`${i}(?:${e.output})${a}`;e&&e.negated===!0&&(c=`^(?!${c}).*$`);let p=D.toRegex(c,r);return n===!0&&(p.state=e),p};D.makeRe=(e,r={},t=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let s={negated:!1,fastpaths:!0};return r.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(s.output=Ze.fastpaths(e,r)),s.output||(s=Ze(e,r)),D.compileRe(s,r,t,n)};D.toRegex=(e,r)=>{try{let t=r||{};return new RegExp(e,t.flags||(t.nocase?"i":""))}catch(t){if(r&&r.debug===!0)throw t;return/$^/}};D.constants=Dn;tr.exports=D});var sr=q((fs,nr)=>{"use strict";nr.exports=rr()});var cr=q((ps,ur)=>{"use strict";var ir=W("util"),or=Pt(),ae=sr(),ze=Re(),ar=e=>e===""||e==="./",N=(e,r,t)=>{r=[].concat(r),e=[].concat(e);let n=new Set,s=new Set,i=new Set,a=0,c=h=>{i.add(h.output),t&&t.onResult&&t.onResult(h)};for(let h=0;h<r.length;h++){let R=ae(String(r[h]),{...t,onResult:c},!0),f=R.state.negated||R.state.negatedExtglob;f&&a++;for(let $ of e){let _=R($,!0);!(f?!_.isMatch:_.isMatch)||(f?n.add(_.output):(n.delete(_.output),s.add(_.output)))}}let m=(a===r.length?[...i]:[...s]).filter(h=>!n.has(h));if(t&&m.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${r.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?r.map(h=>h.replace(/\\/g,"")):r}return m};N.match=N;N.matcher=(e,r)=>ae(e,r);N.isMatch=(e,r,t)=>ae(r,t)(e);N.any=N.isMatch;N.not=(e,r,t={})=>{r=[].concat(r).map(String);let n=new Set,s=[],a=N(e,r,{...t,onResult:c=>{t.onResult&&t.onResult(c),s.push(c.output)}});for(let c of s)a.includes(c)||n.add(c);return[...n]};N.contains=(e,r,t)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ir.inspect(e)}"`);if(Array.isArray(r))return r.some(n=>N.contains(e,n,t));if(typeof r=="string"){if(ar(e)||ar(r))return!1;if(e.includes(r)||e.startsWith("./")&&e.slice(2).includes(r))return!0}return N.isMatch(e,r,{...t,contains:!0})};N.matchKeys=(e,r,t)=>{if(!ze.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=N(Object.keys(e),r,t),s={};for(let i of n)s[i]=e[i];return s};N.some=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(n.some(a=>i(a)))return!0}return!1};N.every=(e,r,t)=>{let n=[].concat(e);for(let s of[].concat(r)){let i=ae(String(s),t);if(!n.every(a=>i(a)))return!1}return!0};N.all=(e,r,t)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${ir.inspect(e)}"`);return[].concat(r).every(n=>ae(n,t)(e))};N.capture=(e,r,t)=>{let n=ze.isWindows(t),i=ae.makeRe(String(e),{...t,capture:!0}).exec(n?ze.toPosixSlashes(r):r);if(i)return i.slice(1).map(a=>a===void 0?"":a)};N.makeRe=(...e)=>ae.makeRe(...e);N.scan=(...e)=>ae.scan(...e);N.parse=(e,r)=>{let t=[];for(let n of[].concat(e||[]))for(let s of or(String(n),r))t.push(ae.parse(s,r));return t};N.braces=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");return r&&r.nobrace===!0||!/\{.*\}/.test(e)?[e]:or(e,r)};N.braceExpand=(e,r)=>{if(typeof e!="string")throw new TypeError("Expected a string");return N.braces(e,{...r,expand:!0})};ur.exports=N});var fr=q((hs,lr)=>{"use strict";lr.exports=(e,...r)=>new Promise(t=>{t(e(...r))})});var hr=q((ds,Ve)=>{"use strict";var Gn=fr(),pr=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let r=[],t=0,n=()=>{t--,r.length>0&&r.shift()()},s=(c,p,...m)=>{t++;let h=Gn(c,...m);p(h),h.then(n,n)},i=(c,p,...m)=>{t<e?s(c,p,...m):r.push(s.bind(null,c,p,...m))},a=(c,...p)=>new Promise(m=>i(c,m,...p));return Object.defineProperties(a,{activeCount:{get:()=>t},pendingCount:{get:()=>r.length}}),a};Ve.exports=pr;Ve.exports.default=pr});var jn={};Cr(jn,{default:()=>Wn});var Se=W("@yarnpkg/cli"),ne=W("@yarnpkg/core"),et=W("@yarnpkg/core"),ue=W("clipanion"),ce=class extends Se.BaseCommand{constructor(){super(...arguments);this.json=ue.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ue.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ue.Option.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ue.Option.Rest()}async execute(){let t=await ne.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ne.Project.find(t,this.context.cwd),i=await ne.Cache.find(t);await n.restoreInstallState({restoreResolutions:!1});let a;if(this.all)a=new Set(n.workspaces);else if(this.workspaces.length===0){if(!s)throw new Se.WorkspaceRequiredError(n.cwd,this.context.cwd);a=new Set([s])}else a=new Set(this.workspaces.map(p=>n.getWorkspaceByIdent(et.structUtils.parseIdent(p))));for(let p of a)for(let m of this.production?["dependencies"]:ne.Manifest.hardDependencies)for(let h of p.manifest.getForScope(m).values()){let R=n.tryWorkspaceByDescriptor(h);R!==null&&a.add(R)}for(let p of n.workspaces)a.has(p)?this.production&&p.manifest.devDependencies.clear():(p.manifest.installConfig=p.manifest.installConfig||{},p.manifest.installConfig.selfReferences=!1,p.manifest.dependencies.clear(),p.manifest.devDependencies.clear(),p.manifest.peerDependencies.clear(),p.manifest.scripts.clear());return(await ne.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await n.install({cache:i,report:p,persistProject:!1})})).exitCode()}};ce.paths=[["workspaces","focus"]],ce.usage=ue.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});var Ne=W("@yarnpkg/cli"),ge=W("@yarnpkg/core"),_e=W("@yarnpkg/core"),F=W("@yarnpkg/core"),gr=W("@yarnpkg/plugin-git"),U=W("clipanion"),Oe=Be(cr()),Ar=Be(hr()),te=Be(W("typanion")),pe=class extends Ne.BaseCommand{constructor(){super(...arguments);this.recursive=U.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.from=U.Option.Array("--from",[],{description:"An array of glob pattern idents from which to base any recursion"});this.all=U.Option.Boolean("-A,--all",!1,{description:"Run the command on all workspaces of a project"});this.verbose=U.Option.Boolean("-v,--verbose",!1,{description:"Prefix each output line with the name of the originating workspace"});this.parallel=U.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=U.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=U.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:te.isOneOf([te.isEnum(["unlimited"]),te.applyCascade(te.isNumber(),[te.isInteger(),te.isAtLeast(1)])])});this.topological=U.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=U.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=U.Option.Array("--include",[],{description:"An array of glob pattern idents; only matching workspaces will be traversed"});this.exclude=U.Option.Array("--exclude",[],{description:"An array of glob pattern idents; matching workspaces won't be traversed"});this.publicOnly=U.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=U.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.commandName=U.Option.String();this.args=U.Option.Proxy()}async execute(){let t=await ge.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:s}=await ge.Project.find(t,this.context.cwd);if(!this.all&&!s)throw new Ne.WorkspaceRequiredError(n.cwd,this.context.cwd);await n.restoreInstallState();let i=this.cli.process([this.commandName,...this.args]),a=i.path.length===1&&i.path[0]==="run"&&typeof i.scriptName<"u"?i.scriptName:null;if(i.path.length===0)throw new U.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let c=this.all?n.topLevelWorkspace:s,p=this.since?Array.from(await gr.gitUtils.fetchChangedWorkspaces({ref:this.since,project:n})):[c,...this.from.length>0?c.getRecursiveWorkspaceChildren():[]],m=g=>Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.from),h=this.from.length>0?p.filter(m):p,R=new Set([...h,...h.map(g=>[...this.recursive?this.since?g.getRecursiveWorkspaceDependents():g.getRecursiveWorkspaceDependencies():g.getRecursiveWorkspaceChildren()]).flat()]),f=[],$=!1;if(a!=null&&a.includes(":")){for(let g of n.workspaces)if(g.manifest.scripts.has(a)&&($=!$,$===!1))break}for(let g of R)a&&!g.manifest.scripts.has(a)&&!$&&!(await ge.scriptUtils.getWorkspaceAccessibleBinaries(g)).has(a)||a===process.env.npm_lifecycle_event&&g.cwd===s.cwd||this.include.length>0&&!Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.include)||this.exclude.length>0&&Oe.default.isMatch(F.structUtils.stringifyIdent(g.locator),this.exclude)||this.publicOnly&&g.manifest.private===!0||f.push(g);let _=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(F.nodeUtils.availableParallelism()/2):1,y=_===1?!1:this.parallel,E=y?this.interlaced:!0,S=(0,Ar.default)(_),T=new Map,L=new Set,z=0,I=null,re=!1,K=await _e.StreamReport.start({configuration:t,stdout:this.context.stdout,includePrefix:!1},async g=>{let v=async(k,{commandIndex:l})=>{if(re)return-1;!y&&this.verbose&&l>1&&g.reportSeparator();let H=qn(k,{configuration:t,verbose:this.verbose,commandIndex:l}),[w,B]=dr(g,{prefix:H,interlaced:E}),[o,u]=dr(g,{prefix:H,interlaced:E});try{this.verbose&&g.reportInfo(null,`${H} Process started`);let P=Date.now(),b=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:w,stderr:o})||0;w.end(),o.end(),await B,await u;let V=Date.now();if(this.verbose){let J=t.get("enableTimers")?`, completed in ${F.formatUtils.pretty(t,V-P,F.formatUtils.Type.DURATION)}`:"";g.reportInfo(null,`${H} Process exited (exit code ${b})${J}`)}return b===130&&(re=!0,I=b),b}catch(P){throw w.end(),o.end(),await B,await u,P}};for(let k of f)T.set(k.anchoredLocator.locatorHash,k);for(;T.size>0&&!g.hasErrors();){let k=[];for(let[w,B]of T){if(L.has(B.anchoredDescriptor.descriptorHash))continue;let o=!0;if(this.topological||this.topologicalDev){let u=this.topologicalDev?new Map([...B.manifest.dependencies,...B.manifest.devDependencies]):B.manifest.dependencies;for(let P of u.values()){let b=n.tryWorkspaceByDescriptor(P);if(o=b===null||!T.has(b.anchoredLocator.locatorHash),!o)break}}if(!!o&&(L.add(B.anchoredDescriptor.descriptorHash),k.push(S(async()=>{let u=await v(B,{commandIndex:++z});return T.delete(w),L.delete(B.anchoredDescriptor.descriptorHash),u})),!y))break}if(k.length===0){let w=Array.from(T.values()).map(B=>F.structUtils.prettyLocator(t,B.anchoredLocator)).join(", ");g.reportError(_e.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${w})`);return}let H=(await Promise.all(k)).find(w=>w!==0);I===null&&(I=typeof H<"u"?1:I),(this.topological||this.topologicalDev)&&typeof H<"u"&&g.reportError(_e.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return I!==null?I:K.exitCode()}};pe.paths=[["workspaces","foreach"]],pe.usage=U.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project. By default yarn runs the command only on current and all its descendant workspaces.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n Adding the `-v,--verbose` flag will cause Yarn to print more information; in particular the name of the workspace that generated the output will be printed at the front of each line.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish current and all descendant packages","yarn workspaces foreach npm publish --tolerate-republish"],["Run build script on current and all descendant packages","yarn workspaces foreach run build"],["Run build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -pt run build"],["Run build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -ptR --from '{workspace-a,workspace-b}' run build"]]});function dr(e,{prefix:r,interlaced:t}){let n=e.createStreamReporter(r),s=new F.miscUtils.DefaultStream;s.pipe(n,{end:!1}),s.on("finish",()=>{n.end()});let i=new Promise(c=>{n.on("finish",()=>{c(s.active)})});if(t)return[s,i];let a=new F.miscUtils.BufferStream;return a.pipe(s,{end:!1}),a.on("finish",()=>{s.end()}),[a,i]}function qn(e,{configuration:r,commandIndex:t,verbose:n}){if(!n)return null;let i=`[${F.structUtils.stringifyIdent(e.locator)}]:`,a=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],c=a[t%a.length];return F.formatUtils.pretty(r,i,c)}var Kn={commands:[ce,pe]},Wn=Kn;return wr(jn);})(); -/*! - * fill-range <https://github.com/jonschlinkert/fill-range> - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-number <https://github.com/jonschlinkert/is-number> - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * to-regex-range <https://github.com/micromatch/to-regex-range> - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ -return plugin; -} -}; diff --git a/data-mapper/.yarn/releases/yarn-3.8.5.cjs b/data-mapper/.yarn/releases/yarn-3.8.5.cjs deleted file mode 100755 index 5f3e555cb..000000000 --- a/data-mapper/.yarn/releases/yarn-3.8.5.cjs +++ /dev/null @@ -1,875 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var Lge=Object.create;var lS=Object.defineProperty;var Oge=Object.getOwnPropertyDescriptor;var Mge=Object.getOwnPropertyNames;var Kge=Object.getPrototypeOf,Uge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Hge=(r,e)=>()=>(r&&(e=r(r=0)),e);var I=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ct=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},jge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Mge(e))!Uge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=Oge(e,n))||i.enumerable});return r};var ve=(r,e,t)=>(t=r!=null?Lge(Kge(r)):{},jge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var kK=I((nZe,PK)=>{PK.exports=xK;xK.sync=lfe;var SK=J("fs");function Afe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i<t.length;i++){var n=t[i].toLowerCase();if(n&&r.substr(-n.length).toLowerCase()===n)return!0}return!1}function vK(r,e,t){return!r.isSymbolicLink()&&!r.isFile()?!1:Afe(e,t)}function xK(r,e,t){SK.stat(r,function(i,n){t(i,i?!1:vK(n,r,e))})}function lfe(r,e){return vK(SK.statSync(r),r,e)}});var TK=I((sZe,NK)=>{NK.exports=RK;RK.sync=cfe;var DK=J("fs");function RK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:FK(n,e))})}function cfe(r,e){return FK(DK.statSync(r),e)}function FK(r,e){return r.isFile()&&ufe(r,e)}function ufe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var OK=I((aZe,LK)=>{var oZe=J("fs"),AI;process.platform==="win32"||global.TESTING_WINDOWS?AI=kK():AI=TK();LK.exports=SS;SS.sync=gfe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}AI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function gfe(r,e){try{return AI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=I((AZe,GK)=>{var kg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",MK=J("path"),ffe=kg?";":":",KK=OK(),UK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),HK=(r,e)=>{let t=e.colon||ffe,i=r.match(/\//)||kg&&r.match(/\\/)?[""]:[...kg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=kg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=kg?n.split(t):[""];return kg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},jK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=HK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(UK(r));let h=i[c],p=/^".*"$/.test(h)?h.slice(1,-1):h,d=MK.join(p,r),m=!p&&/^\.[\\\/]/.test(r)?r.slice(0,2)+d:d;u(l(m,c,0))}),l=(c,u,g)=>new Promise((h,p)=>{if(g===n.length)return h(a(u+1));let d=n[g];KK(c+d,{pathExt:s},(m,y)=>{if(!m&&y)if(e.all)o.push(c+d);else return h(c+d);return h(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},hfe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=HK(r,e),s=[];for(let o=0;o<t.length;o++){let a=t[o],l=/^".*"$/.test(a)?a.slice(1,-1):a,c=MK.join(l,r),u=!l&&/^\.[\\\/]/.test(r)?r.slice(0,2)+c:c;for(let g=0;g<i.length;g++){let h=u+i[g];try{if(KK.sync(h,{pathExt:n}))if(e.all)s.push(h);else return h}catch{}}}if(e.all&&s.length)return s;if(e.nothrow)return null;throw UK(r)};GK.exports=jK;jK.sync=hfe});var JK=I((lZe,vS)=>{"use strict";var qK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=qK;vS.exports.default=qK});var XK=I((cZe,VK)=>{"use strict";var WK=J("path"),pfe=YK(),dfe=JK();function zK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=pfe.sync(r.command,{path:t[dfe({env:t})],pathExt:e?WK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=WK.resolve(n?r.options.cwd:"",o)),o}function Cfe(r){return zK(r)||zK(r,!0)}VK.exports=Cfe});var ZK=I((uZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function mfe(r){return r=r.replace(xS,"^$1"),r}function Efe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=mfe;PS.exports.argument=Efe});var $K=I((gZe,_K)=>{"use strict";_K.exports=/^#!(.*)/});var tU=I((fZe,eU)=>{"use strict";var Ife=$K();eU.exports=(r="")=>{let e=r.match(Ife);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var iU=I((hZe,rU)=>{"use strict";var kS=J("fs"),yfe=tU();function wfe(r){let t=Buffer.alloc(150),i;try{i=kS.openSync(r,"r"),kS.readSync(i,t,0,150,0),kS.closeSync(i)}catch{}return yfe(t.toString())}rU.exports=wfe});var aU=I((pZe,oU)=>{"use strict";var Bfe=J("path"),nU=XK(),sU=ZK(),bfe=iU(),Qfe=process.platform==="win32",Sfe=/\.(?:com|exe)$/i,vfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xfe(r){r.file=nU(r);let e=r.file&&bfe(r.file);return e?(r.args.unshift(r.file),r.command=e,nU(r)):r.file}function Pfe(r){if(!Qfe)return r;let e=xfe(r),t=!Sfe.test(e);if(r.options.forceShell||t){let i=vfe.test(e);r.command=Bfe.normalize(r.command),r.command=sU.command(r.command),r.args=r.args.map(s=>sU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function kfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Pfe(i)}oU.exports=kfe});var cU=I((dZe,lU)=>{"use strict";var DS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Dfe(r,e){if(!DS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=AU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function AU(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Rfe(r,e){return DS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}lU.exports={hookChildProcess:Dfe,verifyENOENT:AU,verifyENOENTSync:Rfe,notFoundError:RS}});var TS=I((CZe,Dg)=>{"use strict";var uU=J("child_process"),FS=aU(),NS=cU();function gU(r,e,t){let i=FS(r,e,t),n=uU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function Ffe(r,e,t){let i=FS(r,e,t),n=uU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}Dg.exports=gU;Dg.exports.spawn=gU;Dg.exports.sync=Ffe;Dg.exports._parse=FS;Dg.exports._enoent=NS});var hU=I((mZe,fU)=>{"use strict";function Nfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Nfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Tfe(r,e){e=e!==void 0?e:{};var t={},i={Start:Ia},n=Ia,s=function(C){return C||[]},o=function(C,b,R){return[{command:C,type:b}].concat(R||[])},a=function(C,b){return[{command:C,type:b||";"}]},l=function(C){return C},c=";",u=Ue(";",!1),g="&",h=Ue("&",!1),p=function(C,b){return b?{chain:C,then:b}:{chain:C}},d=function(C,b){return{type:C,line:b}},m="&&",y=Ue("&&",!1),B="||",S=Ue("||",!1),P=function(C,b){return b?{...C,then:b}:C},F=function(C,b){return{type:C,chain:b}},H="|&",q=Ue("|&",!1),_="|",X=Ue("|",!1),W="=",Z=Ue("=",!1),A=function(C,b){return{name:C,args:[b]}},ne=function(C){return{name:C,args:[]}},ue="(",te=Ue("(",!1),O=")",N=Ue(")",!1),ce=function(C,b){return{type:"subshell",subshell:C,args:b}},he="{",Pe=Ue("{",!1),De="}",Re=Ue("}",!1),se=function(C,b){return{type:"group",group:C,args:b}},Ae=function(C,b){return{type:"command",args:b,envs:C}},ye=function(C){return{type:"envs",envs:C}},ge=function(C){return C},oe=function(C){return C},Ye=/^[0-9]/,ie=Ve([["0","9"]],!1,!1),G=function(C,b,R){return{type:"redirection",subtype:b,fd:C!==null?parseInt(C):null,args:[R]}},fe=">>",re=Ue(">>",!1),de=">&",Ze=Ue(">&",!1),vt=">",mt=Ue(">",!1),Lr="<<<",ti=Ue("<<<",!1),ui="<&",gr=Ue("<&",!1),gi="<",ri=Ue("<",!1),Ms=function(C){return{type:"argument",segments:[].concat(...C)}},fr=function(C){return C},Ei="$'",rs=Ue("$'",!1),ua="'",CA=Ue("'",!1),gg=function(C){return[{type:"text",text:C}]},is='""',mA=Ue('""',!1),ga=function(){return{type:"text",text:""}},wp='"',EA=Ue('"',!1),IA=function(C){return C},yr=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},Nl=function(C){return{type:"shell",shell:C,quoted:!0}},fg=function(C){return{type:"variable",...C,quoted:!0}},Io=function(C){return{type:"text",text:C}},hg=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},Bp=function(C){return{type:"shell",shell:C,quoted:!1}},bp=function(C){return{type:"variable",...C,quoted:!1}},Sr=function(C){return{type:"glob",pattern:C}},Ri=/^[^']/,yo=Ve(["'"],!0,!1),Nn=function(C){return C.join("")},ae=/^[^$"]/,yt=Ve(["$",'"'],!0,!1),Tl=`\\ -`,Tn=Ue(`\\ -`,!1),ns=function(){return""},ss="\\",ut=Ue("\\",!1),wo=/^[\\$"`]/,At=Ve(["\\","$",'"',"`"],!1,!1),ln=function(C){return C},Q="\\a",Nt=Ue("\\a",!1),pg=function(){return"a"},Ll="\\b",Qp=Ue("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Ve(["E","e"],!1,!1),Pp=function(){return"\x1B"},j="\\f",Et=Ue("\\f",!1),yA=function(){return"\f"},zi="\\n",Ol=Ue("\\n",!1),ze=function(){return` -`},fa="\\r",dg=Ue("\\r",!1),OE=function(){return"\r"},kp="\\t",ME=Ue("\\t",!1),sr=function(){return" "},Ln="\\v",Ml=Ue("\\v",!1),Dp=function(){return"\v"},Ks=/^[\\'"?]/,ha=Ve(["\\","'",'"',"?"],!1,!1),cn=function(C){return String.fromCharCode(parseInt(C,16))},Ne="\\x",Cg=Ue("\\x",!1),Kl="\\u",Us=Ue("\\u",!1),Ul="\\U",wA=Ue("\\U",!1),mg=function(C){return String.fromCodePoint(parseInt(C,16))},Eg=/^[0-7]/,pa=Ve([["0","7"]],!1,!1),da=/^[0-9a-fA-f]/,tt=Ve([["0","9"],["a","f"],["A","f"]],!1,!1),Bo=nt(),BA="{}",Rp=Ue("{}",!1),Ca=function(){return"{}"},Hl="-",jl=Ue("-",!1),bA="+",ma=Ue("+",!1),Fp=".",KE=Ue(".",!1),Gl=function(C,b,R){return{type:"number",value:(C==="-"?-1:1)*parseFloat(b.join("")+"."+R.join(""))}},UE=function(C,b){return{type:"number",value:(C==="-"?-1:1)*parseInt(b.join(""))}},Np=function(C){return{type:"variable",...C}},Yl=function(C){return{type:"variable",name:C}},Or=function(C){return C},HE="*",Hs=Ue("*",!1),js="/",Ig=Ue("/",!1),QA=function(C,b,R){return{type:b==="*"?"multiplication":"division",right:R}},D=function(C,b){return b.reduce((R,U)=>({left:R,...U}),C)},Y=function(C,b,R){return{type:b==="+"?"addition":"subtraction",right:R}},pe="$((",Le=Ue("$((",!1),ke="))",Je=Ue("))",!1),pt=function(C){return C},Xt="$(",Ea=Ue("$(",!1),D1=function(C){return C},Gs="${",yg=Ue("${",!1),JQ=":-",R1=Ue(":-",!1),F1=function(C,b){return{name:C,defaultValue:b}},WQ=":-}",N1=Ue(":-}",!1),T1=function(C){return{name:C,defaultValue:[]}},zQ=":+",L1=Ue(":+",!1),O1=function(C,b){return{name:C,alternativeValue:b}},VQ=":+}",M1=Ue(":+}",!1),K1=function(C){return{name:C,alternativeValue:[]}},XQ=function(C){return{name:C}},U1="$",H1=Ue("$",!1),j1=function(C){return e.isGlobPattern(C)},G1=function(C){return C},ZQ=/^[a-zA-Z0-9_]/,_Q=Ve([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return Ie()},ql=/^[$@*?#a-zA-Z0-9_\-]/,jE=Ve(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),eS=/^[()}<>$|&; \t"']/,tS=Ve(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,GE=Ve(["<",">","&",";"," "," ",'"',"'"],!1,!1),Jl=/^[ \t]/,wg=Ve([" "," "],!1,!1),f=0,E=0,w=[{line:1,column:1}],k=0,L=[],T=0,ee;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Ie(){return r.substring(E,f)}function Oe(){return ii(E,f)}function it(C,b){throw b=b!==void 0?b:ii(E,f),On([Ii(C)],r.substring(E,f),b)}function at(C,b){throw b=b!==void 0?b:ii(E,f),yi(C,b)}function Ue(C,b){return{type:"literal",text:C,ignoreCase:b}}function Ve(C,b,R){return{type:"class",parts:C,inverted:b,ignoreCase:R}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function Ii(C){return{type:"other",description:C}}function un(C){var b=w[C],R;if(b)return b;for(R=C-1;!w[R];)R--;for(b=w[R],b={line:b.line,column:b.column};R<C;)r.charCodeAt(R)===10?(b.line++,b.column=1):b.column++,R++;return w[C]=b,b}function ii(C,b){var R=un(C),U=un(b);return{start:{offset:C,line:R.line,column:R.column},end:{offset:b,line:U.line,column:U.column}}}function Be(C){f<k||(f>k&&(k=f,L=[]),L.push(C))}function yi(C,b){return new $l(C,null,null,b)}function On(C,b,R){return new $l($l.buildMessage(C,b),C,b,R)}function Ia(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=vr(),R===t&&(R=null),R!==t?(E=C,b=s(R),C=b):(f=C,C=t)):(f=C,C=t),C}function vr(){var C,b,R,U,le;if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U!==t?(le=mge(),le===t&&(le=null),le!==t?(E=C,b=o(b,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;if(C===t)if(C=f,b=iS(),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();R!==t?(U=Y1(),U===t&&(U=null),U!==t?(E=C,b=a(b,U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function mge(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=vr(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=l(R),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Y1(){var C;return r.charCodeAt(f)===59?(C=c,f++):(C=t,T===0&&Be(u)),C===t&&(r.charCodeAt(f)===38?(C=g,f++):(C=t,T===0&&Be(h))),C}function iS(){var C,b,R;return C=f,b=q1(),b!==t?(R=Ege(),R===t&&(R=null),R!==t?(E=C,b=p(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function Ege(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=Ige(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=iS(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=d(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function Ige(){var C;return r.substr(f,2)===m?(C=m,f+=2):(C=t,T===0&&Be(y)),C===t&&(r.substr(f,2)===B?(C=B,f+=2):(C=t,T===0&&Be(S))),C}function q1(){var C,b,R;return C=f,b=Bge(),b!==t?(R=yge(),R===t&&(R=null),R!==t?(E=C,b=P(b,R),C=b):(f=C,C=t)):(f=C,C=t),C}function yge(){var C,b,R,U,le,be,ft;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(R=wge(),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=q1(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=F(R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;return C}function wge(){var C;return r.substr(f,2)===H?(C=H,f+=2):(C=t,T===0&&Be(q)),C===t&&(r.charCodeAt(f)===124?(C=_,f++):(C=t,T===0&&Be(X))),C}function YE(){var C,b,R,U,le,be;if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t)if(U=z1(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(E=C,b=A(b,U),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;else f=C,C=t;if(C===t)if(C=f,b=iK(),b!==t)if(r.charCodeAt(f)===61?(R=W,f++):(R=t,T===0&&Be(Z)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ne(b),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t;return C}function Bge(){var C,b,R,U,le,be,ft,It,Gr,fi,os;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===40?(R=ue,f++):(R=t,T===0&&Be(te)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===41?(ft=O,f++):(ft=t,T===0&&Be(N)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=ce(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t)if(r.charCodeAt(f)===123?(R=he,f++):(R=t,T===0&&Be(Pe)),R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t)if(le=vr(),le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();if(be!==t)if(r.charCodeAt(f)===125?(ft=De,f++):(ft=t,T===0&&Be(Re)),ft!==t){for(It=[],Gr=Me();Gr!==t;)It.push(Gr),Gr=Me();if(It!==t){for(Gr=[],fi=Tp();fi!==t;)Gr.push(fi),fi=Tp();if(Gr!==t){for(fi=[],os=Me();os!==t;)fi.push(os),os=Me();fi!==t?(E=C,b=se(le,Gr),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t}else f=C,C=t;else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){for(R=[],U=YE();U!==t;)R.push(U),U=YE();if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();if(U!==t){if(le=[],be=W1(),be!==t)for(;be!==t;)le.push(be),be=W1();else le=t;if(le!==t){for(be=[],ft=Me();ft!==t;)be.push(ft),ft=Me();be!==t?(E=C,b=Ae(R,le),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}else f=C,C=t}else f=C,C=t;if(C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=YE(),U!==t)for(;U!==t;)R.push(U),U=YE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ye(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t}}}return C}function J1(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t){if(R=[],U=qE(),U!==t)for(;U!==t;)R.push(U),U=qE();else R=t;if(R!==t){for(U=[],le=Me();le!==t;)U.push(le),le=Me();U!==t?(E=C,b=ge(R),C=b):(f=C,C=t)}else f=C,C=t}else f=C,C=t;return C}function W1(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();if(b!==t?(R=Tp(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C===t){for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();b!==t?(R=qE(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t)}return C}function Tp(){var C,b,R,U,le;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(Ye.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ie)),R===t&&(R=null),R!==t?(U=bge(),U!==t?(le=qE(),le!==t?(E=C,b=G(R,U,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function bge(){var C;return r.substr(f,2)===fe?(C=fe,f+=2):(C=t,T===0&&Be(re)),C===t&&(r.substr(f,2)===de?(C=de,f+=2):(C=t,T===0&&Be(Ze)),C===t&&(r.charCodeAt(f)===62?(C=vt,f++):(C=t,T===0&&Be(mt)),C===t&&(r.substr(f,3)===Lr?(C=Lr,f+=3):(C=t,T===0&&Be(ti)),C===t&&(r.substr(f,2)===ui?(C=ui,f+=2):(C=t,T===0&&Be(gr)),C===t&&(r.charCodeAt(f)===60?(C=gi,f++):(C=t,T===0&&Be(ri))))))),C}function qE(){var C,b,R;for(C=f,b=[],R=Me();R!==t;)b.push(R),R=Me();return b!==t?(R=z1(),R!==t?(E=C,b=oe(R),C=b):(f=C,C=t)):(f=C,C=t),C}function z1(){var C,b,R;if(C=f,b=[],R=V1(),R!==t)for(;R!==t;)b.push(R),R=V1();else b=t;return b!==t&&(E=C,b=Ms(b)),C=b,C}function V1(){var C,b;return C=f,b=Qge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=Sge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=vge(),b!==t&&(E=C,b=fr(b)),C=b,C===t&&(C=f,b=xge(),b!==t&&(E=C,b=fr(b)),C=b))),C}function Qge(){var C,b,R,U;return C=f,r.substr(f,2)===Ei?(b=Ei,f+=2):(b=t,T===0&&Be(rs)),b!==t?(R=Dge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function Sge(){var C,b,R,U;return C=f,r.charCodeAt(f)===39?(b=ua,f++):(b=t,T===0&&Be(CA)),b!==t?(R=Pge(),R!==t?(r.charCodeAt(f)===39?(U=ua,f++):(U=t,T===0&&Be(CA)),U!==t?(E=C,b=gg(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function vge(){var C,b,R,U;if(C=f,r.substr(f,2)===is?(b=is,f+=2):(b=t,T===0&&Be(mA)),b!==t&&(E=C,b=ga()),C=b,C===t)if(C=f,r.charCodeAt(f)===34?(b=wp,f++):(b=t,T===0&&Be(EA)),b!==t){for(R=[],U=X1();U!==t;)R.push(U),U=X1();R!==t?(r.charCodeAt(f)===34?(U=wp,f++):(U=t,T===0&&Be(EA)),U!==t?(E=C,b=IA(R),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;return C}function xge(){var C,b,R;if(C=f,b=[],R=Z1(),R!==t)for(;R!==t;)b.push(R),R=Z1();else b=t;return b!==t&&(E=C,b=IA(b)),C=b,C}function X1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=yr(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Nl(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=fg(b)),C=b,C===t&&(C=f,b=kge(),b!==t&&(E=C,b=Io(b)),C=b))),C}function Z1(){var C,b;return C=f,b=tK(),b!==t&&(E=C,b=hg(b)),C=b,C===t&&(C=f,b=rK(),b!==t&&(E=C,b=Bp(b)),C=b,C===t&&(C=f,b=aS(),b!==t&&(E=C,b=bp(b)),C=b,C===t&&(C=f,b=Nge(),b!==t&&(E=C,b=Sr(b)),C=b,C===t&&(C=f,b=Fge(),b!==t&&(E=C,b=Io(b)),C=b)))),C}function Pge(){var C,b,R;for(C=f,b=[],Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));R!==t;)b.push(R),Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo));return b!==t&&(E=C,b=Nn(b)),C=b,C}function kge(){var C,b,R;if(C=f,b=[],R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt))),R!==t)for(;R!==t;)b.push(R),R=_1(),R===t&&(ae.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yt)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function _1(){var C,b,R;return C=f,r.substr(f,2)===Tl?(b=Tl,f+=2):(b=t,T===0&&Be(Tn)),b!==t&&(E=C,b=ns()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(wo.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(At)),R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t)),C}function Dge(){var C,b,R;for(C=f,b=[],R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));R!==t;)b.push(R),R=$1(),R===t&&(Ri.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(yo)));return b!==t&&(E=C,b=Nn(b)),C=b,C}function $1(){var C,b,R;return C=f,r.substr(f,2)===Q?(b=Q,f+=2):(b=t,T===0&&Be(Nt)),b!==t&&(E=C,b=pg()),C=b,C===t&&(C=f,r.substr(f,2)===Ll?(b=Ll,f+=2):(b=t,T===0&&Be(Qp)),b!==t&&(E=C,b=Sp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(vp.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(xp)),R!==t?(E=C,b=Pp(),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===j?(b=j,f+=2):(b=t,T===0&&Be(Et)),b!==t&&(E=C,b=yA()),C=b,C===t&&(C=f,r.substr(f,2)===zi?(b=zi,f+=2):(b=t,T===0&&Be(Ol)),b!==t&&(E=C,b=ze()),C=b,C===t&&(C=f,r.substr(f,2)===fa?(b=fa,f+=2):(b=t,T===0&&Be(dg)),b!==t&&(E=C,b=OE()),C=b,C===t&&(C=f,r.substr(f,2)===kp?(b=kp,f+=2):(b=t,T===0&&Be(ME)),b!==t&&(E=C,b=sr()),C=b,C===t&&(C=f,r.substr(f,2)===Ln?(b=Ln,f+=2):(b=t,T===0&&Be(Ml)),b!==t&&(E=C,b=Dp()),C=b,C===t&&(C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(Ks.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(ha)),R!==t?(E=C,b=ln(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=Rge()))))))))),C}function Rge(){var C,b,R,U,le,be,ft,It,Gr,fi,os,AS;return C=f,r.charCodeAt(f)===92?(b=ss,f++):(b=t,T===0&&Be(ut)),b!==t?(R=nS(),R!==t?(E=C,b=cn(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ne?(b=Ne,f+=2):(b=t,T===0&&Be(Cg)),b!==t?(R=f,U=f,le=nS(),le!==t?(be=Mn(),be!==t?(le=[le,be],U=le):(f=U,U=t)):(f=U,U=t),U===t&&(U=nS()),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=cn(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Kl?(b=Kl,f+=2):(b=t,T===0&&Be(Us)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(le=[le,be,ft,It],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=cn(R),C=b):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Ul?(b=Ul,f+=2):(b=t,T===0&&Be(wA)),b!==t?(R=f,U=f,le=Mn(),le!==t?(be=Mn(),be!==t?(ft=Mn(),ft!==t?(It=Mn(),It!==t?(Gr=Mn(),Gr!==t?(fi=Mn(),fi!==t?(os=Mn(),os!==t?(AS=Mn(),AS!==t?(le=[le,be,ft,It,Gr,fi,os,AS],U=le):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t)):(f=U,U=t),U!==t?R=r.substring(R,f):R=U,R!==t?(E=C,b=mg(R),C=b):(f=C,C=t)):(f=C,C=t)))),C}function nS(){var C;return Eg.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(pa)),C}function Mn(){var C;return da.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tt)),C}function Fge(){var C,b,R,U,le;if(C=f,b=[],R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t))),R!==t)for(;R!==t;)b.push(R),R=f,r.charCodeAt(f)===92?(U=ss,f++):(U=t,T===0&&Be(ut)),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R===t&&(R=f,r.substr(f,2)===BA?(U=BA,f+=2):(U=t,T===0&&Be(Rp)),U!==t&&(E=R,U=Ca()),R=U,R===t&&(R=f,U=f,T++,le=nK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t)));else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function sS(){var C,b,R,U,le,be;if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;if(R!==t)if(r.charCodeAt(f)===46?(U=Fp,f++):(U=t,T===0&&Be(KE)),U!==t){if(le=[],Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie)),be!==t)for(;be!==t;)le.push(be),Ye.test(r.charAt(f))?(be=r.charAt(f),f++):(be=t,T===0&&Be(ie));else le=t;le!==t?(E=C,b=Gl(b,R,le),C=b):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;if(C===t){if(C=f,r.charCodeAt(f)===45?(b=Hl,f++):(b=t,T===0&&Be(jl)),b===t&&(r.charCodeAt(f)===43?(b=bA,f++):(b=t,T===0&&Be(ma))),b===t&&(b=null),b!==t){if(R=[],Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie)),U!==t)for(;U!==t;)R.push(U),Ye.test(r.charAt(f))?(U=r.charAt(f),f++):(U=t,T===0&&Be(ie));else R=t;R!==t?(E=C,b=UE(b,R),C=b):(f=C,C=t)}else f=C,C=t;if(C===t&&(C=f,b=aS(),b!==t&&(E=C,b=Np(b)),C=b,C===t&&(C=f,b=Wl(),b!==t&&(E=C,b=Yl(b)),C=b,C===t)))if(C=f,r.charCodeAt(f)===40?(b=ue,f++):(b=t,T===0&&Be(te)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.charCodeAt(f)===41?(be=O,f++):(be=t,T===0&&Be(N)),be!==t?(E=C,b=Or(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t}return C}function oS(){var C,b,R,U,le,be,ft,It;if(C=f,b=sS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===42?(be=HE,f++):(be=t,T===0&&Be(Hs)),be===t&&(r.charCodeAt(f)===47?(be=js,f++):(be=t,T===0&&Be(Ig))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=sS(),It!==t?(E=U,le=QA(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function eK(){var C,b,R,U,le,be,ft,It;if(C=f,b=oS(),b!==t){for(R=[],U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t;for(;U!==t;){for(R.push(U),U=f,le=[],be=Me();be!==t;)le.push(be),be=Me();if(le!==t)if(r.charCodeAt(f)===43?(be=bA,f++):(be=t,T===0&&Be(ma)),be===t&&(r.charCodeAt(f)===45?(be=Hl,f++):(be=t,T===0&&Be(jl))),be!==t){for(ft=[],It=Me();It!==t;)ft.push(It),It=Me();ft!==t?(It=oS(),It!==t?(E=U,le=Y(b,be,It),U=le):(f=U,U=t)):(f=U,U=t)}else f=U,U=t;else f=U,U=t}R!==t?(E=C,b=D(b,R),C=b):(f=C,C=t)}else f=C,C=t;return C}function tK(){var C,b,R,U,le,be;if(C=f,r.substr(f,3)===pe?(b=pe,f+=3):(b=t,T===0&&Be(Le)),b!==t){for(R=[],U=Me();U!==t;)R.push(U),U=Me();if(R!==t)if(U=eK(),U!==t){for(le=[],be=Me();be!==t;)le.push(be),be=Me();le!==t?(r.substr(f,2)===ke?(be=ke,f+=2):(be=t,T===0&&Be(Je)),be!==t?(E=C,b=pt(U),C=b):(f=C,C=t)):(f=C,C=t)}else f=C,C=t;else f=C,C=t}else f=C,C=t;return C}function rK(){var C,b,R,U;return C=f,r.substr(f,2)===Xt?(b=Xt,f+=2):(b=t,T===0&&Be(Ea)),b!==t?(R=vr(),R!==t?(r.charCodeAt(f)===41?(U=O,f++):(U=t,T===0&&Be(N)),U!==t?(E=C,b=D1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C}function aS(){var C,b,R,U,le,be;return C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===JQ?(U=JQ,f+=2):(U=t,T===0&&Be(R1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=F1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===WQ?(U=WQ,f+=3):(U=t,T===0&&Be(N1)),U!==t?(E=C,b=T1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,2)===zQ?(U=zQ,f+=2):(U=t,T===0&&Be(L1)),U!==t?(le=J1(),le!==t?(r.charCodeAt(f)===125?(be=De,f++):(be=t,T===0&&Be(Re)),be!==t?(E=C,b=O1(R,le),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.substr(f,3)===VQ?(U=VQ,f+=3):(U=t,T===0&&Be(M1)),U!==t?(E=C,b=K1(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.substr(f,2)===Gs?(b=Gs,f+=2):(b=t,T===0&&Be(yg)),b!==t?(R=Wl(),R!==t?(r.charCodeAt(f)===125?(U=De,f++):(U=t,T===0&&Be(Re)),U!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)):(f=C,C=t),C===t&&(C=f,r.charCodeAt(f)===36?(b=U1,f++):(b=t,T===0&&Be(H1)),b!==t?(R=Wl(),R!==t?(E=C,b=XQ(R),C=b):(f=C,C=t)):(f=C,C=t)))))),C}function Nge(){var C,b,R;return C=f,b=Tge(),b!==t?(E=f,R=j1(b),R?R=void 0:R=t,R!==t?(E=C,b=G1(b),C=b):(f=C,C=t)):(f=C,C=t),C}function Tge(){var C,b,R,U,le;if(C=f,b=[],R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t),R!==t)for(;R!==t;)b.push(R),R=f,U=f,T++,le=sK(),T--,le===t?U=void 0:(f=U,U=t),U!==t?(r.length>f?(le=r.charAt(f),f++):(le=t,T===0&&Be(Bo)),le!==t?(E=R,U=ln(le),R=U):(f=R,R=t)):(f=R,R=t);else b=t;return b!==t&&(E=C,b=Nn(b)),C=b,C}function iK(){var C,b,R;if(C=f,b=[],ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q)),R!==t)for(;R!==t;)b.push(R),ZQ.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(_Q));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function Wl(){var C,b,R;if(C=f,b=[],ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE)),R!==t)for(;R!==t;)b.push(R),ql.test(r.charAt(f))?(R=r.charAt(f),f++):(R=t,T===0&&Be(jE));else b=t;return b!==t&&(E=C,b=$Q()),C=b,C}function nK(){var C;return eS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(tS)),C}function sK(){var C;return rS.test(r.charAt(f))?(C=r.charAt(f),f++):(C=t,T===0&&Be(GE)),C}function Me(){var C,b;if(C=[],Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg)),b!==t)for(;b!==t;)C.push(b),Jl.test(r.charAt(f))?(b=r.charAt(f),f++):(b=t,T===0&&Be(wg));else C=t;return C}if(ee=n(),ee!==t&&f===r.length)return ee;throw ee!==t&&f<r.length&&Be(wt()),On(L,k<r.length?r.charAt(k):null,k<r.length?ii(k,k+1):ii(k,k))}fU.exports={SyntaxError:$l,parse:Tfe}});var EU=I((RZe,mU)=>{"use strict";function Mfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function tc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,tc)}Mfe(tc,Error);tc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Kfe(r,e){e=e!==void 0?e:{};var t={},i={resolution:Ae},n=Ae,s="/",o=ue("/",!1),a=function(ie,G){return{from:ie,descriptor:G}},l=function(ie){return{descriptor:ie}},c="@",u=ue("@",!1),g=function(ie,G){return{fullName:ie,description:G}},h=function(ie){return{fullName:ie}},p=function(){return W()},d=/^[^\/@]/,m=te(["/","@"],!0,!1),y=/^[^\/]/,B=te(["/"],!0,!1),S=0,P=0,F=[{line:1,column:1}],H=0,q=[],_=0,X;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function W(){return r.substring(P,S)}function Z(){return Pe(P,S)}function A(ie,G){throw G=G!==void 0?G:Pe(P,S),se([ce(ie)],r.substring(P,S),G)}function ne(ie,G){throw G=G!==void 0?G:Pe(P,S),Re(ie,G)}function ue(ie,G){return{type:"literal",text:ie,ignoreCase:G}}function te(ie,G,fe){return{type:"class",parts:ie,inverted:G,ignoreCase:fe}}function O(){return{type:"any"}}function N(){return{type:"end"}}function ce(ie){return{type:"other",description:ie}}function he(ie){var G=F[ie],fe;if(G)return G;for(fe=ie-1;!F[fe];)fe--;for(G=F[fe],G={line:G.line,column:G.column};fe<ie;)r.charCodeAt(fe)===10?(G.line++,G.column=1):G.column++,fe++;return F[ie]=G,G}function Pe(ie,G){var fe=he(ie),re=he(G);return{start:{offset:ie,line:fe.line,column:fe.column},end:{offset:G,line:re.line,column:re.column}}}function De(ie){S<H||(S>H&&(H=S,q=[]),q.push(ie))}function Re(ie,G){return new tc(ie,null,null,G)}function se(ie,G,fe){return new tc(tc.buildMessage(ie,G),ie,G,fe)}function Ae(){var ie,G,fe,re;return ie=S,G=ye(),G!==t?(r.charCodeAt(S)===47?(fe=s,S++):(fe=t,_===0&&De(o)),fe!==t?(re=ye(),re!==t?(P=ie,G=a(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ye(),G!==t&&(P=ie,G=l(G)),ie=G),ie}function ye(){var ie,G,fe,re;return ie=S,G=ge(),G!==t?(r.charCodeAt(S)===64?(fe=c,S++):(fe=t,_===0&&De(u)),fe!==t?(re=Ye(),re!==t?(P=ie,G=g(G,re),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=ge(),G!==t&&(P=ie,G=h(G)),ie=G),ie}function ge(){var ie,G,fe,re,de;return ie=S,r.charCodeAt(S)===64?(G=c,S++):(G=t,_===0&&De(u)),G!==t?(fe=oe(),fe!==t?(r.charCodeAt(S)===47?(re=s,S++):(re=t,_===0&&De(o)),re!==t?(de=oe(),de!==t?(P=ie,G=p(),ie=G):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t)):(S=ie,ie=t),ie===t&&(ie=S,G=oe(),G!==t&&(P=ie,G=p()),ie=G),ie}function oe(){var ie,G,fe;if(ie=S,G=[],d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m)),fe!==t)for(;fe!==t;)G.push(fe),d.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(m));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}function Ye(){var ie,G,fe;if(ie=S,G=[],y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B)),fe!==t)for(;fe!==t;)G.push(fe),y.test(r.charAt(S))?(fe=r.charAt(S),S++):(fe=t,_===0&&De(B));else G=t;return G!==t&&(P=ie,G=p()),ie=G,ie}if(X=n(),X!==t&&S===r.length)return X;throw X!==t&&S<r.length&&De(N()),se(q,H<r.length?r.charAt(H):null,H<r.length?Pe(H,H+1):Pe(H,H))}mU.exports={SyntaxError:tc,parse:Kfe}});var ic=I((NZe,rc)=>{"use strict";function yU(r){return typeof r>"u"||r===null}function Ufe(r){return typeof r=="object"&&r!==null}function Hfe(r){return Array.isArray(r)?r:yU(r)?[]:[r]}function jfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t<i;t+=1)n=s[t],r[n]=e[n];return r}function Gfe(r,e){var t="",i;for(i=0;i<e;i+=1)t+=r;return t}function Yfe(r){return r===0&&Number.NEGATIVE_INFINITY===1/r}rc.exports.isNothing=yU;rc.exports.isObject=Ufe;rc.exports.toArray=Hfe;rc.exports.repeat=Gfe;rc.exports.isNegativeZero=Yfe;rc.exports.extend=jfe});var Ng=I((TZe,wU)=>{"use strict";function Xp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Xp.prototype=Object.create(Error.prototype);Xp.prototype.constructor=Xp;Xp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};wU.exports=Xp});var QU=I((LZe,bU)=>{"use strict";var BU=ic();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;o<this.buffer.length&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(o))===-1;)if(o+=1,o-this.position>t/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),BU.repeat(" ",e)+i+a+s+` -`+BU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: -`+t)),i};bU.exports=HS});var ni=I((OZe,vU)=>{"use strict";var SU=Ng(),qfe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jfe=["scalar","sequence","mapping"];function Wfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zfe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qfe.indexOf(t)===-1)throw new SU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wfe(e.styleAliases||null),Jfe.indexOf(this.kind)===-1)throw new SU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}vU.exports=zfe});var nc=I((MZe,PU)=>{"use strict";var xU=ic(),pI=Ng(),Vfe=ni();function jS(r,e,t){var i=[];return r.include.forEach(function(n){t=jS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(i);return r}function Tg(r){this.include=r.include||[],this.implicit=r.implicit||[],this.explicit=r.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&e.loadKind!=="scalar")throw new pI("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=jS(this,"implicit",[]),this.compiledExplicit=jS(this,"explicit",[]),this.compiledTypeMap=Xfe(this.compiledImplicit,this.compiledExplicit)}Tg.DEFAULT=null;Tg.create=function(){var e,t;switch(arguments.length){case 1:e=Tg.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new pI("Wrong number of arguments for Schema.create function")}if(e=xU.toArray(e),t=xU.toArray(t),!e.every(function(i){return i instanceof Tg}))throw new pI("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(i){return i instanceof Vfe}))throw new pI("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Tg({include:e,explicit:t})};PU.exports=Tg});var DU=I((KZe,kU)=>{"use strict";var Zfe=ni();kU.exports=new Zfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var FU=I((UZe,RU)=>{"use strict";var _fe=ni();RU.exports=new _fe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var TU=I((HZe,NU)=>{"use strict";var $fe=ni();NU.exports=new $fe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var dI=I((jZe,LU)=>{"use strict";var ehe=nc();LU.exports=new ehe({explicit:[DU(),FU(),TU()]})});var MU=I((GZe,OU)=>{"use strict";var the=ni();function rhe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ihe(){return null}function nhe(r){return r===null}OU.exports=new the("tag:yaml.org,2002:null",{kind:"scalar",resolve:rhe,construct:ihe,predicate:nhe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var UU=I((YZe,KU)=>{"use strict";var she=ni();function ohe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function ahe(r){return r==="true"||r==="True"||r==="TRUE"}function Ahe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}KU.exports=new she("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ohe,construct:ahe,predicate:Ahe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var jU=I((qZe,HU)=>{"use strict";var lhe=ic(),che=ni();function uhe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function ghe(r){return 48<=r&&r<=55}function fhe(r){return 48<=r&&r<=57}function hhe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(n!=="0"&&n!=="1")return!1;i=!0}return i&&n!=="_"}if(n==="x"){for(t++;t<e;t++)if(n=r[t],n!=="_"){if(!uhe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}for(;t<e;t++)if(n=r[t],n!=="_"){if(!ghe(r.charCodeAt(t)))return!1;i=!0}return i&&n!=="_"}if(n==="_")return!1;for(;t<e;t++)if(n=r[t],n!=="_"){if(n===":")break;if(!fhe(r.charCodeAt(t)))return!1;i=!0}return!i||n==="_"?!1:n!==":"?!0:/^(:[0-5]?[0-9])+$/.test(r.slice(t))}function phe(r){var e=r,t=1,i,n,s=[];return e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),i=e[0],(i==="-"||i==="+")&&(i==="-"&&(t=-1),e=e.slice(1),i=e[0]),e==="0"?0:i==="0"?e[1]==="b"?t*parseInt(e.slice(2),2):e[1]==="x"?t*parseInt(e,16):t*parseInt(e,8):e.indexOf(":")!==-1?(e.split(":").forEach(function(o){s.unshift(parseInt(o,10))}),e=0,n=1,s.forEach(function(o){e+=o*n,n*=60}),t*e):t*parseInt(e,10)}function dhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&r%1===0&&!lhe.isNegativeZero(r)}HU.exports=new che("tag:yaml.org,2002:int",{kind:"scalar",resolve:hhe,construct:phe,predicate:dhe,represent:{binary:function(r){return r>=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var qU=I((JZe,YU)=>{"use strict";var GU=ic(),Che=ni(),mhe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Ehe(r){return!(r===null||!mhe.test(r)||r[r.length-1]==="_")}function Ihe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yhe=/^[-+]?[0-9]+e/;function whe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(GU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yhe.test(t)?t.replace("e",".e"):t}function Bhe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||GU.isNegativeZero(r))}YU.exports=new Che("tag:yaml.org,2002:float",{kind:"scalar",resolve:Ehe,construct:Ihe,predicate:Bhe,represent:whe,defaultStyle:"lowercase"})});var GS=I((WZe,JU)=>{"use strict";var bhe=nc();JU.exports=new bhe({include:[dI()],implicit:[MU(),UU(),jU(),qU()]})});var YS=I((zZe,WU)=>{"use strict";var Qhe=nc();WU.exports=new Qhe({include:[GS()]})});var ZU=I((VZe,XU)=>{"use strict";var She=ni(),zU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),VU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vhe(r){return r===null?!1:zU.exec(r)!==null||VU.exec(r)!==null}function xhe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,h;if(e=zU.exec(r),e===null&&(e=VU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),h=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&h.setTime(h.getTime()-c),h}function Phe(r){return r.toISOString()}XU.exports=new She("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vhe,construct:xhe,instanceOf:Date,represent:Phe})});var $U=I((XZe,_U)=>{"use strict";var khe=ni();function Dhe(r){return r==="<<"||r===null}_U.exports=new khe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Dhe})});var r2=I((ZZe,t2)=>{"use strict";var sc;try{e2=J,sc=e2("buffer").Buffer}catch{}var e2,Rhe=ni(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Fhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t<n;t++)if(e=s.indexOf(r.charAt(t)),!(e>64)){if(e<0)return!1;i+=6}return i%8===0}function Nhe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e<n;e++)e%4===0&&e&&(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),sc?sc.from?sc.from(a):new sc(a):a}function The(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i<s;i++)i%3===0&&i&&(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Lhe(r){return sc&&sc.isBuffer(r)}t2.exports=new Rhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Fhe,construct:Nhe,predicate:Lhe,represent:The})});var n2=I(($Ze,i2)=>{"use strict";var Ohe=ni(),Mhe=Object.prototype.hasOwnProperty,Khe=Object.prototype.toString;function Uhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t<i;t+=1){if(n=a[t],o=!1,Khe.call(n)!=="[object Object]")return!1;for(s in n)if(Mhe.call(n,s))if(!o)o=!0;else return!1;if(!o)return!1;if(e.indexOf(s)===-1)e.push(s);else return!1}return!0}function Hhe(r){return r!==null?r:[]}i2.exports=new Ohe("tag:yaml.org,2002:omap",{kind:"sequence",resolve:Uhe,construct:Hhe})});var o2=I((e_e,s2)=>{"use strict";var jhe=ni(),Ghe=Object.prototype.toString;function Yhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1){if(i=o[e],Ghe.call(i)!=="[object Object]"||(n=Object.keys(i),n.length!==1))return!1;s[e]=[n[0],i[n[0]]]}return!0}function qhe(r){if(r===null)return[];var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e<t;e+=1)i=o[e],n=Object.keys(i),s[e]=[n[0],i[n[0]]];return s}s2.exports=new jhe("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:Yhe,construct:qhe})});var A2=I((t_e,a2)=>{"use strict";var Jhe=ni(),Whe=Object.prototype.hasOwnProperty;function zhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Whe.call(t,e)&&t[e]!==null)return!1;return!0}function Vhe(r){return r!==null?r:{}}a2.exports=new Jhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zhe,construct:Vhe})});var Lg=I((r_e,l2)=>{"use strict";var Xhe=nc();l2.exports=new Xhe({include:[YS()],implicit:[ZU(),$U()],explicit:[r2(),n2(),o2(),A2()]})});var u2=I((i_e,c2)=>{"use strict";var Zhe=ni();function _he(){return!0}function $he(){}function epe(){return""}function tpe(r){return typeof r>"u"}c2.exports=new Zhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:_he,construct:$he,predicate:tpe,represent:epe})});var f2=I((n_e,g2)=>{"use strict";var rpe=ni();function ipe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function npe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function spe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ope(r){return Object.prototype.toString.call(r)==="[object RegExp]"}g2.exports=new rpe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ipe,construct:npe,predicate:ope,represent:spe})});var d2=I((s_e,p2)=>{"use strict";var CI;try{h2=J,CI=h2("esprima")}catch{typeof window<"u"&&(CI=window.esprima)}var h2,ape=ni();function Ape(r){if(r===null)return!1;try{var e="("+r+")",t=CI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lpe(r){var e="("+r+")",t=CI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function cpe(r){return r.toString()}function upe(r){return Object.prototype.toString.call(r)==="[object Function]"}p2.exports=new ape("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ape,construct:lpe,predicate:upe,represent:cpe})});var Zp=I((a_e,m2)=>{"use strict";var C2=nc();m2.exports=C2.DEFAULT=new C2({include:[Lg()],explicit:[u2(),f2(),d2()]})});var O2=I((A_e,_p)=>{"use strict";var ba=ic(),Q2=Ng(),gpe=QU(),S2=Lg(),fpe=Zp(),kA=Object.prototype.hasOwnProperty,mI=1,v2=2,x2=3,EI=4,JS=1,hpe=2,E2=3,ppe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dpe=/[\x85\u2028\u2029]/,Cpe=/[,\[\]\{\}]/,P2=/^(?:!|!!|![a-z\-]+!)$/i,k2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function I2(r){return Object.prototype.toString.call(r)}function vo(r){return r===10||r===13}function ac(r){return r===9||r===32}function hn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function mpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Epe(r){return r===120?2:r===117?4:r===85?8:0}function Ipe(r){return 48<=r&&r<=57?r-48:-1}function y2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` -`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function ype(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var D2=new Array(256),R2=new Array(256);for(oc=0;oc<256;oc++)D2[oc]=y2(oc)?1:0,R2[oc]=y2(oc);var oc;function wpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fpe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function F2(r,e){return new Q2(e,new gpe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function gt(r,e){throw F2(r,e)}function II(r,e){r.onWarning&&r.onWarning.call(null,F2(r,e))}var w2={YAML:function(e,t,i){var n,s,o;e.version!==null&>(e,"duplication of %YAML directive"),i.length!==1&>(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&>(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&>(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&II(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&>(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],P2.test(n)||gt(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&>(e,'there is a previously declared suffix for "'+n+'" tag handle'),k2.test(s)||gt(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function PA(r,e,t,i){var n,s,o,a;if(e<t){if(a=r.input.slice(e,t),i)for(n=0,s=a.length;n<s;n+=1)o=a.charCodeAt(n),o===9||32<=o&&o<=1114111||gt(r,"expected valid JSON character");else ppe.test(a)&>(r,"the stream contains non-printable characters");r.result+=a}}function B2(r,e,t,i){var n,s,o,a;for(ba.isObject(t)||gt(r,"cannot merge mappings; the provided source object is unacceptable"),n=Object.keys(t),o=0,a=n.length;o<a;o+=1)s=n[o],kA.call(e,s)||(e[s]=t[s],i[s]=!0)}function Mg(r,e,t,i,n,s,o,a){var l,c;if(Array.isArray(n))for(n=Array.prototype.slice.call(n),l=0,c=n.length;l<c;l+=1)Array.isArray(n[l])&>(r,"nested arrays are not supported inside keys"),typeof n=="object"&&I2(n[l])==="[object Object]"&&(n[l]="[object Object]");if(typeof n=="object"&&I2(n)==="[object Object]"&&(n="[object Object]"),n=String(n),e===null&&(e={}),i==="tag:yaml.org,2002:merge")if(Array.isArray(s))for(l=0,c=s.length;l<c;l+=1)B2(r,e,s[l],t);else B2(r,e,s,t);else!r.json&&!kA.call(t,n)&&kA.call(e,n)&&(r.line=o||r.line,r.position=a||r.position,gt(r,"duplicated mapping key")),e[n]=s,delete t[n];return e}function WS(r){var e;e=r.input.charCodeAt(r.position),e===10?r.position++:e===13?(r.position++,r.input.charCodeAt(r.position)===10&&r.position++):gt(r,"a line break is expected"),r.line+=1,r.lineStart=r.position}function Jr(r,e,t){for(var i=0,n=r.input.charCodeAt(r.position);n!==0;){for(;ac(n);)n=r.input.charCodeAt(++r.position);if(e&&n===35)do n=r.input.charCodeAt(++r.position);while(n!==10&&n!==13&&n!==0);if(vo(n))for(WS(r),n=r.input.charCodeAt(r.position),i++,r.lineIndent=0;n===32;)r.lineIndent++,n=r.input.charCodeAt(++r.position);else break}return t!==-1&&i!==0&&r.lineIndent<t&&II(r,"deficient indentation"),i}function yI(r){var e=r.position,t;return t=r.input.charCodeAt(e),!!((t===45||t===46)&&t===r.input.charCodeAt(e+1)&&t===r.input.charCodeAt(e+2)&&(e+=3,t=r.input.charCodeAt(e),t===0||hn(t)))}function zS(r,e){e===1?r.result+=" ":e>1&&(r.result+=ba.repeat(` -`,e-1))}function Bpe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,h=r.result,p;if(p=r.input.charCodeAt(r.position),hn(p)||Og(p)||p===35||p===38||p===42||p===33||p===124||p===62||p===39||p===34||p===37||p===64||p===96||(p===63||p===45)&&(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;p!==0;){if(p===58){if(n=r.input.charCodeAt(r.position+1),hn(n)||t&&Og(n))break}else if(p===35){if(i=r.input.charCodeAt(r.position-1),hn(i))break}else{if(r.position===r.lineStart&&yI(r)||t&&Og(p))break;if(vo(p))if(l=r.line,c=r.lineStart,u=r.lineIndent,Jr(r,!1,-1),r.lineIndent>=e){a=!0,p=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(PA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),ac(p)||(o=r.position+1),p=r.input.charCodeAt(++r.position)}return PA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=h,!1)}function bpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(PA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else vo(t)?(PA(r,i,n,!0),zS(r,Jr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);gt(r,"unexpected end of the stream within a single quoted scalar")}function Qpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return PA(r,t,r.position,!0),r.position++,!0;if(a===92){if(PA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),vo(a))Jr(r,!1,e);else if(a<256&&D2[a])r.result+=R2[a],r.position++;else if((o=Epe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mpe(a))>=0?s=(s<<4)+o:gt(r,"expected hexadecimal character");r.result+=ype(s),r.position++}else gt(r,"unknown escape sequence");t=i=r.position}else vo(a)?(PA(r,t,i,!0),zS(r,Jr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&yI(r)?gt(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}gt(r,"unexpected end of the stream within a double quoted scalar")}function Spe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,h={},p,d,m,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||gt(r,"missed comma between flow collection entries"),d=p=m=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),hn(a)&&(c=u=!0,r.position++,Jr(r,!0,e))),i=r.line,Kg(r,e,mI,!1,!0),d=r.tag,p=r.result,Jr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),Jr(r,!0,e),Kg(r,e,mI,!1,!0),m=r.result),g?Mg(r,s,h,d,p,m):c?s.push(Mg(r,null,h,d,p,m)):s.push(p),Jr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}gt(r,"unexpected end of the stream within a flow collection")}function vpe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?E2:hpe:gt(r,"repeat of a chomping mode identifier");else if((u=Ipe(g))>=0)u===0?gt(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?gt(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(ac(g)){do g=r.input.charCodeAt(++r.position);while(ac(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!vo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndent<a)&&g===32;)r.lineIndent++,g=r.input.charCodeAt(++r.position);if(!o&&r.lineIndent>a&&(a=r.lineIndent),vo(g)){l++;continue}if(r.lineIndent<a){n===E2?r.result+=ba.repeat(` -`,s?1+l:l):n===JS&&s&&(r.result+=` -`);break}for(i?ac(g)?(c=!0,r.result+=ba.repeat(` -`,s?1+l:l)):c?(c=!1,r.result+=ba.repeat(` -`,l+1)):l===0?s&&(r.result+=" "):r.result+=ba.repeat(` -`,l):r.result+=ba.repeat(` -`,s?1+l:l),s=!0,o=!0,l=0,t=r.position;!vo(g)&&g!==0;)g=r.input.charCodeAt(++r.position);PA(r,t,r.position,!1)}return!0}function b2(r,e){var t,i=r.tag,n=r.anchor,s=[],o,a=!1,l;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),l=r.input.charCodeAt(r.position);l!==0&&!(l!==45||(o=r.input.charCodeAt(r.position+1),!hn(o)));){if(a=!0,r.position++,Jr(r,!0,-1)&&r.lineIndent<=e){s.push(null),l=r.input.charCodeAt(r.position);continue}if(t=r.line,Kg(r,e,x2,!1,!0),s.push(r.result),Jr(r,!0,-1),l=r.input.charCodeAt(r.position),(r.line===t||r.lineIndent>e)&&l!==0)gt(r,"bad indentation of a sequence entry");else if(r.lineIndent<e)break}return a?(r.tag=i,r.anchor=n,r.kind="sequence",r.result=s,!0):!1}function xpe(r,e,t){var i,n,s,o,a=r.tag,l=r.anchor,c={},u={},g=null,h=null,p=null,d=!1,m=!1,y;for(r.anchor!==null&&(r.anchorMap[r.anchor]=c),y=r.input.charCodeAt(r.position);y!==0;){if(i=r.input.charCodeAt(r.position+1),s=r.line,o=r.position,(y===63||y===58)&&hn(i))y===63?(d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!0,n=!0):d?(d=!1,n=!0):gt(r,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),r.position+=1,y=i;else if(Kg(r,t,v2,!1,!0))if(r.line===s){for(y=r.input.charCodeAt(r.position);ac(y);)y=r.input.charCodeAt(++r.position);if(y===58)y=r.input.charCodeAt(++r.position),hn(y)||gt(r,"a whitespace character is expected after the key-value separator within a block mapping"),d&&(Mg(r,c,u,g,h,null),g=h=p=null),m=!0,d=!1,n=!1,g=r.tag,h=r.result;else if(m)gt(r,"can not read an implicit mapping pair; a colon is missed");else return r.tag=a,r.anchor=l,!0}else if(m)gt(r,"can not read a block mapping entry; a multiline key may not be an implicit key");else return r.tag=a,r.anchor=l,!0;else break;if((r.line===s||r.lineIndent>e)&&(Kg(r,e,EI,!0,n)&&(d?h=r.result:p=r.result),d||(Mg(r,c,u,g,h,p,s,o),g=h=p=null),Jr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)gt(r,"bad indentation of a mapping entry");else if(r.lineIndent<e)break}return d&&Mg(r,c,u,g,h,null),m&&(r.tag=a,r.anchor=l,r.kind="mapping",r.result=c),m}function Ppe(r){var e,t=!1,i=!1,n,s,o;if(o=r.input.charCodeAt(r.position),o!==33)return!1;if(r.tag!==null&>(r,"duplication of a tag property"),o=r.input.charCodeAt(++r.position),o===60?(t=!0,o=r.input.charCodeAt(++r.position)):o===33?(i=!0,n="!!",o=r.input.charCodeAt(++r.position)):n="!",e=r.position,t){do o=r.input.charCodeAt(++r.position);while(o!==0&&o!==62);r.position<r.length?(s=r.input.slice(e,r.position),o=r.input.charCodeAt(++r.position)):gt(r,"unexpected end of the stream within a verbatim tag")}else{for(;o!==0&&!hn(o);)o===33&&(i?gt(r,"tag suffix cannot contain exclamation marks"):(n=r.input.slice(e-1,r.position+1),P2.test(n)||gt(r,"named tag handle cannot contain such characters"),i=!0,e=r.position+1)),o=r.input.charCodeAt(++r.position);s=r.input.slice(e,r.position),Cpe.test(s)&>(r,"tag suffix cannot contain flow indicator characters")}return s&&!k2.test(s)&>(r,"tag name cannot contain such characters: "+s),t?r.tag=s:kA.call(r.tagMap,n)?r.tag=r.tagMap[n]+s:n==="!"?r.tag="!"+s:n==="!!"?r.tag="tag:yaml.org,2002:"+s:gt(r,'undeclared tag handle "'+n+'"'),!0}function kpe(r){var e,t;if(t=r.input.charCodeAt(r.position),t!==38)return!1;for(r.anchor!==null&>(r,"duplication of an anchor property"),t=r.input.charCodeAt(++r.position),e=r.position;t!==0&&!hn(t)&&!Og(t);)t=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an anchor node must contain at least one character"),r.anchor=r.input.slice(e,r.position),!0}function Dpe(r){var e,t,i;if(i=r.input.charCodeAt(r.position),i!==42)return!1;for(i=r.input.charCodeAt(++r.position),e=r.position;i!==0&&!hn(i)&&!Og(i);)i=r.input.charCodeAt(++r.position);return r.position===e&>(r,"name of an alias node must contain at least one character"),t=r.input.slice(e,r.position),kA.call(r.anchorMap,t)||gt(r,'unidentified alias "'+t+'"'),r.result=r.anchorMap[t],Jr(r,!0,-1),!0}function Kg(r,e,t,i,n){var s,o,a,l=1,c=!1,u=!1,g,h,p,d,m;if(r.listener!==null&&r.listener("open",r),r.tag=null,r.anchor=null,r.kind=null,r.result=null,s=o=a=EI===t||x2===t,i&&Jr(r,!0,-1)&&(c=!0,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)),l===1)for(;Ppe(r)||kpe(r);)Jr(r,!0,-1)?(c=!0,a=s,r.lineIndent>e?l=1:r.lineIndent===e?l=0:r.lineIndent<e&&(l=-1)):a=!1;if(a&&(a=c||n),(l===1||EI===t)&&(mI===t||v2===t?d=e:d=e+1,m=r.position-r.lineStart,l===1?a&&(b2(r,m)||xpe(r,m,d))||Spe(r,d)?u=!0:(o&&vpe(r,d)||bpe(r,d)||Qpe(r,d)?u=!0:Dpe(r)?(u=!0,(r.tag!==null||r.anchor!==null)&>(r,"alias node should not have any properties")):Bpe(r,d,mI===t)&&(u=!0,r.tag===null&&(r.tag="?")),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):l===0&&(u=a&&b2(r,m))),r.tag!==null&&r.tag!=="!")if(r.tag==="?"){for(r.result!==null&&r.kind!=="scalar"&>(r,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+r.kind+'"'),g=0,h=r.implicitTypes.length;g<h;g+=1)if(p=r.implicitTypes[g],p.resolve(r.result)){r.result=p.construct(r.result),r.tag=p.tag,r.anchor!==null&&(r.anchorMap[r.anchor]=r.result);break}}else kA.call(r.typeMap[r.kind||"fallback"],r.tag)?(p=r.typeMap[r.kind||"fallback"][r.tag],r.result!==null&&p.kind!==r.kind&>(r,"unacceptable node kind for !<"+r.tag+'> tag; it should be "'+p.kind+'", not "'+r.kind+'"'),p.resolve(r.result)?(r.result=p.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):gt(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):gt(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(Jr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&>(r,"directive name must not be less than one character in length");o!==0;){for(;ac(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!vo(o));break}if(vo(o))break;for(t=r.position;o!==0&&!hn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(w2,i)?w2[i](r,i,n):II(r,'unknown document directive "'+i+'"')}if(Jr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,Jr(r,!0,-1)):s&>(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,EI,!1,!0),Jr(r,!0,-1),r.checkLineBreaks&&dpe.test(r.input.slice(e,r.position))&&II(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&yI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,Jr(r,!0,-1));return}if(r.position<r.length-1)gt(r,"end of the stream or a document separator is expected");else return}function N2(r,e){r=String(r),e=e||{},r.length!==0&&(r.charCodeAt(r.length-1)!==10&&r.charCodeAt(r.length-1)!==13&&(r+=` -`),r.charCodeAt(0)===65279&&(r=r.slice(1)));var t=new wpe(r,e),i=r.indexOf("\0");for(i!==-1&&(t.position=i,gt(t,"null byte is not allowed in input")),t.input+="\0";t.input.charCodeAt(t.position)===32;)t.lineIndent+=1,t.position+=1;for(;t.position<t.length-1;)Rpe(t);return t.documents}function T2(r,e,t){e!==null&&typeof e=="object"&&typeof t>"u"&&(t=e,e=null);var i=N2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n<s;n+=1)e(i[n])}function L2(r,e){var t=N2(r,e);if(t.length!==0){if(t.length===1)return t[0];throw new Q2("expected a single document in the stream, but found more")}}function Fpe(r,e,t){return typeof e=="object"&&e!==null&&typeof t>"u"&&(t=e,e=null),T2(r,e,ba.extend({schema:S2},t))}function Npe(r,e){return L2(r,ba.extend({schema:S2},e))}_p.exports.loadAll=T2;_p.exports.load=L2;_p.exports.safeLoadAll=Fpe;_p.exports.safeLoad=Npe});var oH=I((l_e,_S)=>{"use strict";var ed=ic(),td=Ng(),Tpe=Zp(),Lpe=Lg(),q2=Object.prototype.toString,J2=Object.prototype.hasOwnProperty,Ope=9,$p=10,Mpe=13,Kpe=32,Upe=33,Hpe=34,W2=35,jpe=37,Gpe=38,Ype=39,qpe=42,z2=44,Jpe=45,V2=58,Wpe=61,zpe=62,Vpe=63,Xpe=64,X2=91,Z2=93,Zpe=96,_2=123,_pe=124,$2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var $pe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function ede(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n<s;n+=1)o=i[n],a=String(e[o]),o.slice(0,2)==="!!"&&(o="tag:yaml.org,2002:"+o.slice(2)),l=r.compiledTypeMap.fallback[o],l&&J2.call(l.styleAliases,a)&&(a=l.styleAliases[a]),t[o]=a;return t}function M2(r){var e,t,i;if(e=r.toString(16).toUpperCase(),r<=255)t="x",i=2;else if(r<=65535)t="u",i=4;else if(r<=4294967295)t="U",i=8;else throw new td("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+t+ed.repeat("0",i-e.length)+e}function tde(r){this.schema=r.schema||Tpe,this.indent=Math.max(1,r.indent||2),this.noArrayIndent=r.noArrayIndent||!1,this.skipInvalid=r.skipInvalid||!1,this.flowLevel=ed.isNothing(r.flowLevel)?-1:r.flowLevel,this.styleMap=ede(this.schema,r.styles||null),this.sortKeys=r.sortKeys||!1,this.lineWidth=r.lineWidth||80,this.noRefs=r.noRefs||!1,this.noCompatMode=r.noCompatMode||!1,this.condenseFlow=r.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function K2(r,e){for(var t=ed.repeat(" ",e),i=0,n=-1,s="",o,a=r.length;i<a;)n=r.indexOf(` -`,i),n===-1?(o=r.slice(i),i=a):(o=r.slice(i,n+1),i=n+1),o.length&&o!==` -`&&(s+=t),s+=o;return s}function VS(r,e){return` -`+ed.repeat(" ",r.indent*e)}function rde(r,e){var t,i,n;for(t=0,i=r.implicitTypes.length;t<i;t+=1)if(n=r.implicitTypes[t],n.resolve(e))return!0;return!1}function ZS(r){return r===Kpe||r===Ope}function Ug(r){return 32<=r&&r<=126||161<=r&&r<=55295&&r!==8232&&r!==8233||57344<=r&&r<=65533&&r!==65279||65536<=r&&r<=1114111}function ide(r){return Ug(r)&&!ZS(r)&&r!==65279&&r!==Mpe&&r!==$p}function U2(r,e){return Ug(r)&&r!==65279&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==V2&&(r!==W2||e&&ide(e))}function nde(r){return Ug(r)&&r!==65279&&!ZS(r)&&r!==Jpe&&r!==Vpe&&r!==V2&&r!==z2&&r!==X2&&r!==Z2&&r!==_2&&r!==$2&&r!==W2&&r!==Gpe&&r!==qpe&&r!==Upe&&r!==_pe&&r!==Wpe&&r!==zpe&&r!==Ype&&r!==Hpe&&r!==jpe&&r!==Xpe&&r!==Zpe}function eH(r){var e=/^\n* /;return e.test(r)}var tH=1,rH=2,iH=3,nH=4,wI=5;function sde(r,e,t,i,n){var s,o,a,l=!1,c=!1,u=i!==-1,g=-1,h=nde(r.charCodeAt(0))&&!ZS(r.charCodeAt(r.length-1));if(e)for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}else{for(s=0;s<r.length;s++){if(o=r.charCodeAt(s),o===$p)l=!0,u&&(c=c||s-g-1>i&&r[g+1]!==" ",g=s);else if(!Ug(o))return wI;a=s>0?r.charCodeAt(s-1):null,h=h&&U2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?h&&!n(r)?tH:rH:t>9&&eH(r)?wI:c?nH:iH}function ode(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$pe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rde(r,l)}switch(sde(e,o,r.indent,s,a)){case tH:return e;case rH:return"'"+e.replace(/'/g,"''")+"'";case iH:return"|"+H2(e,r.indent)+j2(K2(e,n));case nH:return">"+H2(e,r.indent)+j2(K2(ade(e,s),n));case wI:return'"'+Ade(e,s)+'"';default:throw new td("impossible error: invalid scalar style")}}()}function H2(r,e){var t=eH(r)?String(e):"",i=r[r.length-1]===` -`,n=i&&(r[r.length-2]===` -`||r===` -`),s=n?"+":i?"":"-";return t+s+` -`}function j2(r){return r[r.length-1]===` -`?r.slice(0,-1):r}function ade(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` -`);return c=c!==-1?c:r.length,t.lastIndex=c,G2(r.slice(0,c),e)}(),n=r[0]===` -`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+G2(l,e),n=s}return i}function G2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` -`+r.slice(n,s),n=s+1),o=a;return l+=` -`,r.length-n>e&&o>n?l+=r.slice(n,o)+` -`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ade(r){for(var e="",t,i,n,s=0;s<r.length;s++){if(t=r.charCodeAt(s),t>=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=M2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||M2(t)}return e}function lde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s<o;s+=1)Ac(r,e,t[s],!1,!1)&&(s!==0&&(i+=","+(r.condenseFlow?"":" ")),i+=r.dump);r.tag=n,r.dump="["+i+"]"}function cde(r,e,t,i){var n="",s=r.tag,o,a;for(o=0,a=t.length;o<a;o+=1)Ac(r,e+1,t[o],!0,!0)&&((!i||o!==0)&&(n+=VS(r,e)),r.dump&&$p===r.dump.charCodeAt(0)?n+="-":n+="- ",n+=r.dump);r.tag=s,r.dump=n||"[]"}function ude(r,e,t){var i="",n=r.tag,s=Object.keys(t),o,a,l,c,u;for(o=0,a=s.length;o<a;o+=1)u="",o!==0&&(u+=", "),r.condenseFlow&&(u+='"'),l=s[o],c=t[l],Ac(r,e,l,!1,!1)&&(r.dump.length>1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Ac(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,h;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new td("sortKeys must be a boolean or a function");for(a=0,l=o.length;a<l;a+=1)h="",(!i||a!==0)&&(h+=VS(r,e)),c=o[a],u=t[c],Ac(r,e+1,c,!0,!0,!0)&&(g=r.tag!==null&&r.tag!=="?"||r.dump&&r.dump.length>1024,g&&(r.dump&&$p===r.dump.charCodeAt(0)?h+="?":h+="? "),h+=r.dump,g&&(h+=VS(r,e)),Ac(r,e+1,u,!0,g)&&(r.dump&&$p===r.dump.charCodeAt(0)?h+=":":h+=": ",h+=r.dump,n+=h));r.tag=s,r.dump=n||"{}"}function Y2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s<o;s+=1)if(a=n[s],(a.instanceOf||a.predicate)&&(!a.instanceOf||typeof e=="object"&&e instanceof a.instanceOf)&&(!a.predicate||a.predicate(e))){if(r.tag=t?a.tag:"?",a.represent){if(l=r.styleMap[a.tag]||a.defaultStyle,q2.call(a.represent)==="[object Function]")i=a.represent(e,l);else if(J2.call(a.represent,l))i=a.represent[l](e,l);else throw new td("!<"+a.tag+'> tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Ac(r,e,t,i,n,s){r.tag=null,r.dump=t,Y2(r,t,!1)||Y2(r,t,!0);var o=q2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ude(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ode(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new td("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n<s;n+=1)e.duplicates.push(t[i[n]]);e.usedDuplicates=new Array(s)}function XS(r,e,t){var i,n,s;if(r!==null&&typeof r=="object")if(n=e.indexOf(r),n!==-1)t.indexOf(n)===-1&&t.push(n);else if(e.push(r),Array.isArray(r))for(n=0,s=r.length;n<s;n+=1)XS(r[n],e,t);else for(i=Object.keys(r),n=0,s=i.length;n<s;n+=1)XS(r[i[n]],e,t)}function sH(r,e){e=e||{};var t=new tde(e);return t.noRefs||fde(r,t),Ac(t,0,r,!0,!0)?t.dump+` -`:""}function hde(r,e){return sH(r,ed.extend({schema:Lpe},e))}_S.exports.dump=sH;_S.exports.safeDump=hde});var AH=I((c_e,Rr)=>{"use strict";var BI=O2(),aH=oH();function bI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Rr.exports.Type=ni();Rr.exports.Schema=nc();Rr.exports.FAILSAFE_SCHEMA=dI();Rr.exports.JSON_SCHEMA=GS();Rr.exports.CORE_SCHEMA=YS();Rr.exports.DEFAULT_SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_FULL_SCHEMA=Zp();Rr.exports.load=BI.load;Rr.exports.loadAll=BI.loadAll;Rr.exports.safeLoad=BI.safeLoad;Rr.exports.safeLoadAll=BI.safeLoadAll;Rr.exports.dump=aH.dump;Rr.exports.safeDump=aH.safeDump;Rr.exports.YAMLException=Ng();Rr.exports.MINIMAL_SCHEMA=dI();Rr.exports.SAFE_SCHEMA=Lg();Rr.exports.DEFAULT_SCHEMA=Zp();Rr.exports.scan=bI("scan");Rr.exports.parse=bI("parse");Rr.exports.compose=bI("compose");Rr.exports.addConstructor=bI("addConstructor")});var cH=I((u_e,lH)=>{"use strict";var pde=AH();lH.exports=pde});var gH=I((g_e,uH)=>{"use strict";function dde(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function lc(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,lc)}dde(lc,Error);lc.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g<c.parts.length;g++)u+=c.parts[g]instanceof Array?s(c.parts[g][0])+"-"+s(c.parts[g][1]):s(c.parts[g]);return"["+(c.inverted?"^":"")+u+"]"},any:function(c){return"any character"},end:function(c){return"end of input"},other:function(c){return c.description}};function i(c){return c.charCodeAt(0).toString(16).toUpperCase()}function n(c){return c.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function s(c){return c.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(u){return"\\x0"+i(u)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(u){return"\\x"+i(u)})}function o(c){return t[c.type](c)}function a(c){var u=new Array(c.length),g,h;for(g=0;g<c.length;g++)u[g]=o(c[g]);if(u.sort(),u.length>0){for(g=1,h=1;g<u.length;g++)u[g-1]!==u[g]&&(u[h]=u[g],h++);u.length=h}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}function l(c){return c?'"'+n(c)+'"':"end of input"}return"Expected "+a(r)+" but "+l(e)+" found."};function Cde(r,e){e=e!==void 0?e:{};var t={},i={Start:Us},n=Us,s=function(D){return[].concat(...D)},o="-",a=sr("-",!1),l=function(D){return D},c=function(D){return Object.assign({},...D)},u="#",g=sr("#",!1),h=Ml(),p=function(){return{}},d=":",m=sr(":",!1),y=function(D,Y){return{[D]:Y}},B=",",S=sr(",",!1),P=function(D,Y){return Y},F=function(D,Y,pe){return Object.assign({},...[D].concat(Y).map(Le=>({[Le]:pe})))},H=function(D){return D},q=function(D){return D},_=Ks("correct indentation"),X=" ",W=sr(" ",!1),Z=function(D){return D.length===QA*Ig},A=function(D){return D.length===(QA+1)*Ig},ne=function(){return QA++,!0},ue=function(){return QA--,!0},te=function(){return dg()},O=Ks("pseudostring"),N=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ce=Ln(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,Pe=Ln(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),De=function(){return dg().replace(/^ *| *$/g,"")},Re="--",se=sr("--",!1),Ae=/^[a-zA-Z\/0-9]/,ye=Ln([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ge=/^[^\r\n\t :,]/,oe=Ln(["\r",` -`," "," ",":",","],!0,!1),Ye="null",ie=sr("null",!1),G=function(){return null},fe="true",re=sr("true",!1),de=function(){return!0},Ze="false",vt=sr("false",!1),mt=function(){return!1},Lr=Ks("string"),ti='"',ui=sr('"',!1),gr=function(){return""},gi=function(D){return D},ri=function(D){return D.join("")},Ms=/^[^"\\\0-\x1F\x7F]/,fr=Ln(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',rs=sr('\\"',!1),ua=function(){return'"'},CA="\\\\",gg=sr("\\\\",!1),is=function(){return"\\"},mA="\\/",ga=sr("\\/",!1),wp=function(){return"/"},EA="\\b",IA=sr("\\b",!1),yr=function(){return"\b"},Nl="\\f",fg=sr("\\f",!1),Io=function(){return"\f"},hg="\\n",Bp=sr("\\n",!1),bp=function(){return` -`},Sr="\\r",Ri=sr("\\r",!1),yo=function(){return"\r"},Nn="\\t",ae=sr("\\t",!1),yt=function(){return" "},Tl="\\u",Tn=sr("\\u",!1),ns=function(D,Y,pe,Le){return String.fromCharCode(parseInt(`0x${D}${Y}${pe}${Le}`))},ss=/^[0-9a-fA-F]/,ut=Ln([["0","9"],["a","f"],["A","F"]],!1,!1),wo=Ks("blank space"),At=/^[ \t]/,ln=Ln([" "," "],!1,!1),Q=Ks("white space"),Nt=/^[ \t\n\r]/,pg=Ln([" "," ",` -`,"\r"],!1,!1),Ll=`\r -`,Qp=sr(`\r -`,!1),Sp=` -`,vp=sr(` -`,!1),xp="\r",Pp=sr("\r",!1),j=0,Et=0,yA=[{line:1,column:1}],zi=0,Ol=[],ze=0,fa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dg(){return r.substring(Et,j)}function OE(){return cn(Et,j)}function kp(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Kl([Ks(D)],r.substring(Et,j),Y)}function ME(D,Y){throw Y=Y!==void 0?Y:cn(Et,j),Cg(D,Y)}function sr(D,Y){return{type:"literal",text:D,ignoreCase:Y}}function Ln(D,Y,pe){return{type:"class",parts:D,inverted:Y,ignoreCase:pe}}function Ml(){return{type:"any"}}function Dp(){return{type:"end"}}function Ks(D){return{type:"other",description:D}}function ha(D){var Y=yA[D],pe;if(Y)return Y;for(pe=D-1;!yA[pe];)pe--;for(Y=yA[pe],Y={line:Y.line,column:Y.column};pe<D;)r.charCodeAt(pe)===10?(Y.line++,Y.column=1):Y.column++,pe++;return yA[D]=Y,Y}function cn(D,Y){var pe=ha(D),Le=ha(Y);return{start:{offset:D,line:pe.line,column:pe.column},end:{offset:Y,line:Le.line,column:Le.column}}}function Ne(D){j<zi||(j>zi&&(zi=j,Ol=[]),Ol.push(D))}function Cg(D,Y){return new lc(D,null,null,Y)}function Kl(D,Y,pe){return new lc(lc.buildMessage(D,Y),D,Y,pe)}function Us(){var D;return D=mg(),D}function Ul(){var D,Y,pe;for(D=j,Y=[],pe=wA();pe!==t;)Y.push(pe),pe=wA();return Y!==t&&(Et=D,Y=s(Y)),D=Y,D}function wA(){var D,Y,pe,Le,ke;return D=j,Y=da(),Y!==t?(r.charCodeAt(j)===45?(pe=o,j++):(pe=t,ze===0&&Ne(a)),pe!==t?(Le=Or(),Le!==t?(ke=pa(),ke!==t?(Et=D,Y=l(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D}function mg(){var D,Y,pe;for(D=j,Y=[],pe=Eg();pe!==t;)Y.push(pe),pe=Eg();return Y!==t&&(Et=D,Y=c(Y)),D=Y,D}function Eg(){var D,Y,pe,Le,ke,Je,pt,Xt,Ea;if(D=j,Y=Or(),Y===t&&(Y=null),Y!==t){if(pe=j,r.charCodeAt(j)===35?(Le=u,j++):(Le=t,ze===0&&Ne(g)),Le!==t){if(ke=[],Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t),Je!==t)for(;Je!==t;)ke.push(Je),Je=j,pt=j,ze++,Xt=js(),ze--,Xt===t?pt=void 0:(j=pt,pt=t),pt!==t?(r.length>j?(Xt=r.charAt(j),j++):(Xt=t,ze===0&&Ne(h)),Xt!==t?(pt=[pt,Xt],Je=pt):(j=Je,Je=t)):(j=Je,Je=t);else ke=t;ke!==t?(Le=[Le,ke],pe=Le):(j=pe,pe=t)}else j=pe,pe=t;if(pe===t&&(pe=null),pe!==t){if(Le=[],ke=Hs(),ke!==t)for(;ke!==t;)Le.push(ke),ke=Hs();else Le=t;Le!==t?(Et=D,Y=p(),D=Y):(j=D,D=t)}else j=D,D=t}else j=D,D=t;if(D===t&&(D=j,Y=da(),Y!==t?(pe=Rp(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=da(),Y!==t?(pe=Ca(),pe!==t?(Le=Or(),Le===t&&(Le=null),Le!==t?(r.charCodeAt(j)===58?(ke=d,j++):(ke=t,ze===0&&Ne(m)),ke!==t?(Je=Or(),Je===t&&(Je=null),Je!==t?(pt=pa(),pt!==t?(Et=D,Y=y(pe,pt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))){if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t)if(Le=Or(),Le!==t)if(ke=jl(),ke!==t){if(Je=[],pt=Hs(),pt!==t)for(;pt!==t;)Je.push(pt),pt=Hs();else Je=t;Je!==t?(Et=D,Y=y(pe,ke),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;else j=D,D=t;else j=D,D=t;if(D===t)if(D=j,Y=da(),Y!==t)if(pe=Ca(),pe!==t){if(Le=[],ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t),ke!==t)for(;ke!==t;)Le.push(ke),ke=j,Je=Or(),Je===t&&(Je=null),Je!==t?(r.charCodeAt(j)===44?(pt=B,j++):(pt=t,ze===0&&Ne(S)),pt!==t?(Xt=Or(),Xt===t&&(Xt=null),Xt!==t?(Ea=Ca(),Ea!==t?(Et=ke,Je=P(pe,Ea),ke=Je):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t)):(j=ke,ke=t);else Le=t;Le!==t?(ke=Or(),ke===t&&(ke=null),ke!==t?(r.charCodeAt(j)===58?(Je=d,j++):(Je=t,ze===0&&Ne(m)),Je!==t?(pt=Or(),pt===t&&(pt=null),pt!==t?(Xt=pa(),Xt!==t?(Et=D,Y=F(pe,Le,Xt),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)}else j=D,D=t;else j=D,D=t}return D}function pa(){var D,Y,pe,Le,ke,Je,pt;if(D=j,Y=j,ze++,pe=j,Le=js(),Le!==t?(ke=tt(),ke!==t?(r.charCodeAt(j)===45?(Je=o,j++):(Je=t,ze===0&&Ne(a)),Je!==t?(pt=Or(),pt!==t?(Le=[Le,ke,Je,pt],pe=Le):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t)):(j=pe,pe=t),ze--,pe!==t?(j=Y,Y=void 0):Y=t,Y!==t?(pe=Hs(),pe!==t?(Le=Bo(),Le!==t?(ke=Ul(),ke!==t?(Je=BA(),Je!==t?(Et=D,Y=H(ke),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,Y=js(),Y!==t?(pe=Bo(),pe!==t?(Le=mg(),Le!==t?(ke=BA(),ke!==t?(Et=D,Y=H(Le),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t),D===t))if(D=j,Y=Hl(),Y!==t){if(pe=[],Le=Hs(),Le!==t)for(;Le!==t;)pe.push(Le),Le=Hs();else pe=t;pe!==t?(Et=D,Y=q(Y),D=Y):(j=D,D=t)}else j=D,D=t;return D}function da(){var D,Y,pe;for(ze++,D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=Z(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),ze--,D===t&&(Y=t,ze===0&&Ne(_)),D}function tt(){var D,Y,pe;for(D=j,Y=[],r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));pe!==t;)Y.push(pe),r.charCodeAt(j)===32?(pe=X,j++):(pe=t,ze===0&&Ne(W));return Y!==t?(Et=j,pe=A(Y),pe?pe=void 0:pe=t,pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)):(j=D,D=t),D}function Bo(){var D;return Et=j,D=ne(),D?D=void 0:D=t,D}function BA(){var D;return Et=j,D=ue(),D?D=void 0:D=t,D}function Rp(){var D;return D=Gl(),D===t&&(D=bA()),D}function Ca(){var D,Y,pe;if(D=Gl(),D===t){if(D=j,Y=[],pe=ma(),pe!==t)for(;pe!==t;)Y.push(pe),pe=ma();else Y=t;Y!==t&&(Et=D,Y=te()),D=Y}return D}function Hl(){var D;return D=Fp(),D===t&&(D=KE(),D===t&&(D=Gl(),D===t&&(D=bA()))),D}function jl(){var D;return D=Fp(),D===t&&(D=Gl(),D===t&&(D=ma())),D}function bA(){var D,Y,pe,Le,ke,Je;if(ze++,D=j,N.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ce)),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(he.test(r.charAt(j))?(Je=r.charAt(j),j++):(Je=t,ze===0&&Ne(Pe)),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(O)),D}function ma(){var D,Y,pe,Le,ke;if(D=j,r.substr(j,2)===Re?(Y=Re,j+=2):(Y=t,ze===0&&Ne(se)),Y===t&&(Y=null),Y!==t)if(Ae.test(r.charAt(j))?(pe=r.charAt(j),j++):(pe=t,ze===0&&Ne(ye)),pe!==t){for(Le=[],ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));ke!==t;)Le.push(ke),ge.test(r.charAt(j))?(ke=r.charAt(j),j++):(ke=t,ze===0&&Ne(oe));Le!==t?(Et=D,Y=De(),D=Y):(j=D,D=t)}else j=D,D=t;else j=D,D=t;return D}function Fp(){var D,Y;return D=j,r.substr(j,4)===Ye?(Y=Ye,j+=4):(Y=t,ze===0&&Ne(ie)),Y!==t&&(Et=D,Y=G()),D=Y,D}function KE(){var D,Y;return D=j,r.substr(j,4)===fe?(Y=fe,j+=4):(Y=t,ze===0&&Ne(re)),Y!==t&&(Et=D,Y=de()),D=Y,D===t&&(D=j,r.substr(j,5)===Ze?(Y=Ze,j+=5):(Y=t,ze===0&&Ne(vt)),Y!==t&&(Et=D,Y=mt()),D=Y),D}function Gl(){var D,Y,pe,Le;return ze++,D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(r.charCodeAt(j)===34?(pe=ti,j++):(pe=t,ze===0&&Ne(ui)),pe!==t?(Et=D,Y=gr(),D=Y):(j=D,D=t)):(j=D,D=t),D===t&&(D=j,r.charCodeAt(j)===34?(Y=ti,j++):(Y=t,ze===0&&Ne(ui)),Y!==t?(pe=UE(),pe!==t?(r.charCodeAt(j)===34?(Le=ti,j++):(Le=t,ze===0&&Ne(ui)),Le!==t?(Et=D,Y=gi(pe),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)),ze--,D===t&&(Y=t,ze===0&&Ne(Lr)),D}function UE(){var D,Y,pe;if(D=j,Y=[],pe=Np(),pe!==t)for(;pe!==t;)Y.push(pe),pe=Np();else Y=t;return Y!==t&&(Et=D,Y=ri(Y)),D=Y,D}function Np(){var D,Y,pe,Le,ke,Je;return Ms.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(fr)),D===t&&(D=j,r.substr(j,2)===Ei?(Y=Ei,j+=2):(Y=t,ze===0&&Ne(rs)),Y!==t&&(Et=D,Y=ua()),D=Y,D===t&&(D=j,r.substr(j,2)===CA?(Y=CA,j+=2):(Y=t,ze===0&&Ne(gg)),Y!==t&&(Et=D,Y=is()),D=Y,D===t&&(D=j,r.substr(j,2)===mA?(Y=mA,j+=2):(Y=t,ze===0&&Ne(ga)),Y!==t&&(Et=D,Y=wp()),D=Y,D===t&&(D=j,r.substr(j,2)===EA?(Y=EA,j+=2):(Y=t,ze===0&&Ne(IA)),Y!==t&&(Et=D,Y=yr()),D=Y,D===t&&(D=j,r.substr(j,2)===Nl?(Y=Nl,j+=2):(Y=t,ze===0&&Ne(fg)),Y!==t&&(Et=D,Y=Io()),D=Y,D===t&&(D=j,r.substr(j,2)===hg?(Y=hg,j+=2):(Y=t,ze===0&&Ne(Bp)),Y!==t&&(Et=D,Y=bp()),D=Y,D===t&&(D=j,r.substr(j,2)===Sr?(Y=Sr,j+=2):(Y=t,ze===0&&Ne(Ri)),Y!==t&&(Et=D,Y=yo()),D=Y,D===t&&(D=j,r.substr(j,2)===Nn?(Y=Nn,j+=2):(Y=t,ze===0&&Ne(ae)),Y!==t&&(Et=D,Y=yt()),D=Y,D===t&&(D=j,r.substr(j,2)===Tl?(Y=Tl,j+=2):(Y=t,ze===0&&Ne(Tn)),Y!==t?(pe=Yl(),pe!==t?(Le=Yl(),Le!==t?(ke=Yl(),ke!==t?(Je=Yl(),Je!==t?(Et=D,Y=ns(pe,Le,ke,Je),D=Y):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)):(j=D,D=t)))))))))),D}function Yl(){var D;return ss.test(r.charAt(j))?(D=r.charAt(j),j++):(D=t,ze===0&&Ne(ut)),D}function Or(){var D,Y;if(ze++,D=[],At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln)),Y!==t)for(;Y!==t;)D.push(Y),At.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(ln));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(wo)),D}function HE(){var D,Y;if(ze++,D=[],Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg)),Y!==t)for(;Y!==t;)D.push(Y),Nt.test(r.charAt(j))?(Y=r.charAt(j),j++):(Y=t,ze===0&&Ne(pg));else D=t;return ze--,D===t&&(Y=t,ze===0&&Ne(Q)),D}function Hs(){var D,Y,pe,Le,ke,Je;if(D=j,Y=js(),Y!==t){for(pe=[],Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);Le!==t;)pe.push(Le),Le=j,ke=Or(),ke===t&&(ke=null),ke!==t?(Je=js(),Je!==t?(ke=[ke,Je],Le=ke):(j=Le,Le=t)):(j=Le,Le=t);pe!==t?(Y=[Y,pe],D=Y):(j=D,D=t)}else j=D,D=t;return D}function js(){var D;return r.substr(j,2)===Ll?(D=Ll,j+=2):(D=t,ze===0&&Ne(Qp)),D===t&&(r.charCodeAt(j)===10?(D=Sp,j++):(D=t,ze===0&&Ne(vp)),D===t&&(r.charCodeAt(j)===13?(D=xp,j++):(D=t,ze===0&&Ne(Pp)))),D}let Ig=2,QA=0;if(fa=n(),fa!==t&&j===r.length)return fa;throw fa!==t&&j<r.length&&Ne(Dp()),Kl(Ol,zi<r.length?r.charAt(zi):null,zi<r.length?cn(zi,zi+1):cn(zi,zi))}uH.exports={SyntaxError:lc,parse:Cde}});var mH=I((C_e,ev)=>{"use strict";var wde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n<r.length;n++){let s=r[n];e&&/[a-zA-Z]/.test(s)&&s.toUpperCase()===s?(r=r.slice(0,n)+"-"+r.slice(n),e=!1,i=t,t=!0,n++):t&&i&&/[a-zA-Z]/.test(s)&&s.toLowerCase()===s?(r=r.slice(0,n-1)+"-"+r.slice(n-1),i=t,t=!1,e=!0):(e=s.toLowerCase()===s&&s.toUpperCase()!==s,i=t,t=s.toUpperCase()===s&&s.toLowerCase()!==s)}return r},CH=(r,e)=>{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=CH;ev.exports.default=CH});var EH=I((m_e,Bde)=>{Bde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var cc=I(Un=>{"use strict";var yH=EH(),xo=process.env;Object.defineProperty(Un,"_vendors",{value:yH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;yH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return IH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!xo[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in xo&&xo[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!xo[i]}):Un.isPR=IH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(xo.CI||xo.CONTINUOUS_INTEGRATION||xo.BUILD_NUMBER||xo.RUN_ID||Un.name);function IH(r){return typeof r=="string"?!!xo[r]:Object.keys(r).every(function(e){return xo[e]===r[e]})}});var pn={};ct(pn,{KeyRelationship:()=>uc,applyCascade:()=>ad,base64RegExp:()=>SH,colorStringAlphaRegExp:()=>QH,colorStringRegExp:()=>bH,computeKey:()=>DA,getPrintable:()=>Wr,hasExactLength:()=>DH,hasForbiddenKeys:()=>tCe,hasKeyRelationship:()=>av,hasMaxLength:()=>Mde,hasMinLength:()=>Ode,hasMutuallyExclusiveKeys:()=>rCe,hasRequiredKeys:()=>eCe,hasUniqueItems:()=>Kde,isArray:()=>Pde,isAtLeast:()=>jde,isAtMost:()=>Gde,isBase64:()=>_de,isBoolean:()=>Sde,isDate:()=>xde,isDict:()=>Dde,isEnum:()=>Zi,isHexColor:()=>Zde,isISO8601:()=>Xde,isInExclusiveRange:()=>qde,isInInclusiveRange:()=>Yde,isInstanceOf:()=>Fde,isInteger:()=>Jde,isJSON:()=>$de,isLiteral:()=>bde,isLowerCase:()=>Wde,isNegative:()=>Ude,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Rde,isOneOf:()=>Nde,isOptional:()=>Tde,isPositive:()=>Hde,isString:()=>od,isTuple:()=>kde,isUUID4:()=>Vde,isUnknown:()=>kH,isUpperCase:()=>zde,iso8601RegExp:()=>ov,makeCoercionFn:()=>gc,makeSetter:()=>PH,makeTrait:()=>xH,makeValidator:()=>Bt,matchesRegExp:()=>Ad,plural:()=>kI,pushError:()=>ht,simpleKeyRegExp:()=>BH,uuid4RegExp:()=>vH});function Bt({test:r}){return xH(r)()}function Wr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function DA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:BH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function gc(r,e){return t=>{let i=r[e];return r[e]=t,gc(r,e).bind(null,i)}}function PH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function ht({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function bde(r){return Bt({test:(e,t)=>e!==r?ht(t,`Expected a literal (got ${Wr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Bt({test:(i,n)=>t.has(i)?!0:ht(n,`Expected a valid enumeration value (got ${Wr(i)})`)})}var BH,bH,QH,SH,vH,ov,xH,kH,od,Qde,Sde,vde,xde,Pde,kde,Dde,Rde,Fde,Nde,ad,Tde,Lde,Ode,Mde,DH,Kde,Ude,Hde,jde,Gde,Yde,qde,Jde,Ad,Wde,zde,Vde,Xde,Zde,_de,$de,eCe,tCe,rCe,uc,iCe,av,As=Hge(()=>{BH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,bH=/^#[0-9a-f]{6}$/i,QH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,SH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,vH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,xH=r=>()=>r;kH=()=>Bt({test:(r,e)=>!0});od=()=>Bt({test:(r,e)=>typeof r!="string"?ht(e,`Expected a string (got ${Wr(r)})`):!0});Qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Sde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i=Qde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a boolean (got ${Wr(r)})`)}return!0}}),vde=()=>Bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return ht(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a number (got ${Wr(r)})`)}return!0}}),xde=()=>Bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return ht(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return ht(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return ht(e,`Expected a date (got ${Wr(r)})`)}return!0}}),Pde=(r,{delimiter:e}={})=>Bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return ht(i,`Expected an array (got ${Wr(t)})`);let s=!0;for(let o=0,a=t.length;o<a&&(s=r(t[o],Object.assign(Object.assign({},i),{p:DA(i,o),coercion:gc(t,o)}))&&s,!(!s&&(i==null?void 0:i.errors)==null));++o);return s}}),kde=(r,{delimiter:e}={})=>{let t=DH(r.length);return Bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return ht(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return ht(n,`Expected a tuple (got ${Wr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;a<l&&a<r.length&&(o=r[a](i[a],Object.assign(Object.assign({},n),{p:DA(n,a),coercion:gc(i,a)}))&&o,!(!o&&(n==null?void 0:n.errors)==null));++a);return o}})},Dde=(r,{keys:e=null}={})=>Bt({test:(t,i)=>{if(typeof t!="object"||t===null)return ht(i,`Expected an object (got ${Wr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o<a&&(s||(i==null?void 0:i.errors)!=null);++o){let l=n[o],c=t[l];if(l==="__proto__"||l==="constructor"){s=ht(Object.assign(Object.assign({},i),{p:DA(i,l)}),"Unsafe property name");continue}if(e!==null&&!e(l,i)){s=!1;continue}if(!r(c,Object.assign(Object.assign({},i),{p:DA(i,l),coercion:gc(t,l)}))){s=!1;continue}}return s}}),Rde=(r,{extra:e=null}={})=>{let t=Object.keys(r);return Bt({test:(i,n)=>{if(typeof i!="object"||i===null)return ht(n,`Expected an object (got ${Wr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:DA(n,l),coercion:gc(i,l)}))&&a:e===null?a=ht(Object.assign(Object.assign({},n),{p:DA(n,l)}),`Extraneous property (got ${Wr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:PH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fde=r=>Bt({test:(e,t)=>e instanceof r?!0:ht(t,`Expected an instance of ${r.name} (got ${Wr(e)})`)}),Nde=(r,{exclusive:e=!1}={})=>Bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c<u;++c){let g=typeof(i==null?void 0:i.errors)<"u"?[]:void 0,h=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(r[c](t,Object.assign(Object.assign({},i),{errors:g,coercions:h,p:`${(n=i==null?void 0:i.p)!==null&&n!==void 0?n:"."}#${c+1}`}))){if(a.push([`#${c+1}`,h]),!e)break}else l==null||l.push(g[0])}if(a.length===1){let[,c]=a[0];return typeof c<"u"&&((s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...c)),!0}return a.length>1?ht(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),ad=(r,e)=>Bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?gc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return ht(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Tde=r=>Bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Lde=r=>Bt({test:(e,t)=>e===null?!0:r(e,t)}),Ode=r=>Bt({test:(e,t)=>e.length>=r?!0:ht(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mde=r=>Bt({test:(e,t)=>e.length<=r?!0:ht(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),DH=r=>Bt({test:(e,t)=>e.length!==r?ht(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kde=({map:r}={})=>Bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;s<o;++s){let a=e[s],l=typeof r<"u"?r(a):a;if(i.has(l)){if(n.has(l))continue;ht(t,`Expected to contain unique elements; got a duplicate with ${Wr(e)}`),n.add(l)}else i.add(l)}return n.size===0}}),Ude=()=>Bt({test:(r,e)=>r<=0?!0:ht(e,`Expected to be negative (got ${r})`)}),Hde=()=>Bt({test:(r,e)=>r>=0?!0:ht(e,`Expected to be positive (got ${r})`)}),jde=r=>Bt({test:(e,t)=>e>=r?!0:ht(t,`Expected to be at least ${r} (got ${e})`)}),Gde=r=>Bt({test:(e,t)=>e<=r?!0:ht(t,`Expected to be at most ${r} (got ${e})`)}),Yde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<=e?!0:ht(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qde=(r,e)=>Bt({test:(t,i)=>t>=r&&t<e?!0:ht(i,`Expected to be in the [${r}; ${e}[ range (got ${t})`)}),Jde=({unsafe:r=!1}={})=>Bt({test:(e,t)=>e!==Math.round(e)?ht(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:ht(t,`Expected to be a safe integer (got ${e})`)}),Ad=r=>Bt({test:(e,t)=>r.test(e)?!0:ht(t,`Expected to match the pattern ${r.toString()} (got ${Wr(e)})`)}),Wde=()=>Bt({test:(r,e)=>r!==r.toLowerCase()?ht(e,`Expected to be all-lowercase (got ${r})`):!0}),zde=()=>Bt({test:(r,e)=>r!==r.toUpperCase()?ht(e,`Expected to be all-uppercase (got ${r})`):!0}),Vde=()=>Bt({test:(r,e)=>vH.test(r)?!0:ht(e,`Expected to be a valid UUID v4 (got ${Wr(r)})`)}),Xde=()=>Bt({test:(r,e)=>ov.test(r)?!1:ht(e,`Expected to be a valid ISO 8601 date string (got ${Wr(r)})`)}),Zde=({alpha:r=!1})=>Bt({test:(e,t)=>(r?bH.test(e):QH.test(e))?!0:ht(t,`Expected to be a valid hexadecimal color string (got ${Wr(e)})`)}),_de=()=>Bt({test:(r,e)=>SH.test(r)?!0:ht(e,`Expected to be a valid base 64 string (got ${Wr(r)})`)}),$de=(r=kH())=>Bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return ht(t,`Expected to be a valid JSON string (got ${Wr(e)})`)}return r(i,t)}}),eCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?ht(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?ht(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rCe=r=>{let e=new Set(r);return Bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?ht(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(uc||(uc={}));iCe={[uc.Forbids]:{expect:!1,message:"forbids using"},[uc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=iCe[e];return Bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?ht(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var zH=I((m$e,WH)=>{"use strict";WH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=I((E$e,pv)=>{"use strict";var ICe=zH(),VH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=ICe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{t<r?n(a,l,...c):e.push(n.bind(null,a,l,...c))},o=(a,...l)=>new Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=VH;pv.exports.default=VH});var fd=I((y$e,XH)=>{var yCe="2.0.0",wCe=Number.MAX_SAFE_INTEGER||9007199254740991,BCe=16;XH.exports={SEMVER_SPEC_VERSION:yCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:wCe,MAX_SAFE_COMPONENT_LENGTH:BCe}});var hd=I((w$e,ZH)=>{var bCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};ZH.exports=bCe});var fc=I((FA,_H)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=fd(),QCe=hd();FA=_H.exports={};var SCe=FA.re=[],$e=FA.src=[],et=FA.t={},vCe=0,bt=(r,e,t)=>{let i=vCe++;QCe(i,e),et[r]=i,$e[i]=e,SCe[i]=new RegExp(e,t?"g":void 0)};bt("NUMERICIDENTIFIER","0|[1-9]\\d*");bt("NUMERICIDENTIFIERLOOSE","[0-9]+");bt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");bt("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);bt("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);bt("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);bt("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);bt("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);bt("BUILDIDENTIFIER","[0-9A-Za-z-]+");bt("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);bt("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);bt("FULL",`^${$e[et.FULLPLAIN]}$`);bt("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);bt("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);bt("GTLT","((?:<|>)?=?)");bt("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);bt("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);bt("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);bt("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);bt("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);bt("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);bt("COERCERTL",$e[et.COERCE],!0);bt("LONETILDE","(?:~>?)");bt("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);FA.tildeTrimReplace="$1~";bt("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);bt("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("LONECARET","(?:\\^)");bt("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);FA.caretTrimReplace="$1^";bt("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);bt("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);bt("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);bt("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);bt("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);FA.comparatorTrimReplace="$1$2$3";bt("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);bt("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);bt("STAR","(<|>)?=?\\s*\\*");bt("GTE0","^\\s*>=\\s*0.0.0\\s*$");bt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var pd=I((B$e,$H)=>{var xCe=["includePrerelease","loose","rtl"],PCe=r=>r?typeof r!="object"?{loose:!0}:xCe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};$H.exports=PCe});var LI=I((b$e,rj)=>{var ej=/^[0-9]+$/,tj=(r,e)=>{let t=ej.test(r),i=ej.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r<e?-1:1},kCe=(r,e)=>tj(e,r);rj.exports={compareIdentifiers:tj,rcompareIdentifiers:kCe}});var Li=I((Q$e,oj)=>{var OI=hd(),{MAX_LENGTH:ij,MAX_SAFE_INTEGER:MI}=fd(),{re:nj,t:sj}=fc(),DCe=pd(),{compareIdentifiers:dd}=LI(),Gn=class{constructor(e,t){if(t=DCe(t),e instanceof Gn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>ij)throw new TypeError(`version is longer than ${ij} characters`);OI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?nj[sj.LOOSE]:nj[sj.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>MI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<MI)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(OI("SemVer.compare",this.version,this.options,e),!(e instanceof Gn)){if(typeof e=="string"&&e===this.version)return 0;e=new Gn(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof Gn||(e=new Gn(e,this.options)),dd(this.major,e.major)||dd(this.minor,e.minor)||dd(this.patch,e.patch)}comparePre(e){if(e instanceof Gn||(e=new Gn(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let i=this.prerelease[t],n=e.prerelease[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}compareBuild(e){e instanceof Gn||(e=new Gn(e,this.options));let t=0;do{let i=this.build[t],n=e.build[t];if(OI("prerelease compare",t,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return dd(i,n)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t),this.inc("pre",t);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};oj.exports=Gn});var hc=I((S$e,cj)=>{var{MAX_LENGTH:RCe}=fd(),{re:aj,t:Aj}=fc(),lj=Li(),FCe=pd(),NCe=(r,e)=>{if(e=FCe(e),r instanceof lj)return r;if(typeof r!="string"||r.length>RCe||!(e.loose?aj[Aj.LOOSE]:aj[Aj.FULL]).test(r))return null;try{return new lj(r,e)}catch{return null}};cj.exports=NCe});var gj=I((v$e,uj)=>{var TCe=hc(),LCe=(r,e)=>{let t=TCe(r,e);return t?t.version:null};uj.exports=LCe});var hj=I((x$e,fj)=>{var OCe=hc(),MCe=(r,e)=>{let t=OCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};fj.exports=MCe});var dj=I((P$e,pj)=>{var KCe=Li(),UCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new KCe(r,t).inc(e,i).version}catch{return null}};pj.exports=UCe});var ls=I((k$e,mj)=>{var Cj=Li(),HCe=(r,e,t)=>new Cj(r,t).compare(new Cj(e,t));mj.exports=HCe});var KI=I((D$e,Ej)=>{var jCe=ls(),GCe=(r,e,t)=>jCe(r,e,t)===0;Ej.exports=GCe});var wj=I((R$e,yj)=>{var Ij=hc(),YCe=KI(),qCe=(r,e)=>{if(YCe(r,e))return null;{let t=Ij(r),i=Ij(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};yj.exports=qCe});var bj=I((F$e,Bj)=>{var JCe=Li(),WCe=(r,e)=>new JCe(r,e).major;Bj.exports=WCe});var Sj=I((N$e,Qj)=>{var zCe=Li(),VCe=(r,e)=>new zCe(r,e).minor;Qj.exports=VCe});var xj=I((T$e,vj)=>{var XCe=Li(),ZCe=(r,e)=>new XCe(r,e).patch;vj.exports=ZCe});var kj=I((L$e,Pj)=>{var _Ce=hc(),$Ce=(r,e)=>{let t=_Ce(r,e);return t&&t.prerelease.length?t.prerelease:null};Pj.exports=$Ce});var Rj=I((O$e,Dj)=>{var eme=ls(),tme=(r,e,t)=>eme(e,r,t);Dj.exports=tme});var Nj=I((M$e,Fj)=>{var rme=ls(),ime=(r,e)=>rme(r,e,!0);Fj.exports=ime});var UI=I((K$e,Lj)=>{var Tj=Li(),nme=(r,e,t)=>{let i=new Tj(r,t),n=new Tj(e,t);return i.compare(n)||i.compareBuild(n)};Lj.exports=nme});var Mj=I((U$e,Oj)=>{var sme=UI(),ome=(r,e)=>r.sort((t,i)=>sme(t,i,e));Oj.exports=ome});var Uj=I((H$e,Kj)=>{var ame=UI(),Ame=(r,e)=>r.sort((t,i)=>ame(i,t,e));Kj.exports=Ame});var Cd=I((j$e,Hj)=>{var lme=ls(),cme=(r,e,t)=>lme(r,e,t)>0;Hj.exports=cme});var HI=I((G$e,jj)=>{var ume=ls(),gme=(r,e,t)=>ume(r,e,t)<0;jj.exports=gme});var Cv=I((Y$e,Gj)=>{var fme=ls(),hme=(r,e,t)=>fme(r,e,t)!==0;Gj.exports=hme});var jI=I((q$e,Yj)=>{var pme=ls(),dme=(r,e,t)=>pme(r,e,t)>=0;Yj.exports=dme});var GI=I((J$e,qj)=>{var Cme=ls(),mme=(r,e,t)=>Cme(r,e,t)<=0;qj.exports=mme});var mv=I((W$e,Jj)=>{var Eme=KI(),Ime=Cv(),yme=Cd(),wme=jI(),Bme=HI(),bme=GI(),Qme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Eme(r,t,i);case"!=":return Ime(r,t,i);case">":return yme(r,t,i);case">=":return wme(r,t,i);case"<":return Bme(r,t,i);case"<=":return bme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};Jj.exports=Qme});var zj=I((z$e,Wj)=>{var Sme=Li(),vme=hc(),{re:YI,t:qI}=fc(),xme=(r,e)=>{if(r instanceof Sme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(YI[qI.COERCE]);else{let i;for(;(i=YI[qI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),YI[qI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;YI[qI.COERCERTL].lastIndex=-1}return t===null?null:vme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};Wj.exports=xme});var Xj=I((V$e,Vj)=>{"use strict";Vj.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var JI=I((X$e,Zj)=>{"use strict";Zj.exports=Mt;Mt.Node=pc;Mt.create=Mt;function Mt(r){var e=this;if(e instanceof Mt||(e=new Mt),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t<i;t++)e.push(arguments[t]);return e}Mt.prototype.removeNode=function(r){if(r.list!==this)throw new Error("removing node which does not belong to this list");var e=r.next,t=r.prev;return e&&(e.prev=t),t&&(t.next=e),r===this.head&&(this.head=e),r===this.tail&&(this.tail=t),r.list.length--,r.next=null,r.prev=null,r.list=null,e};Mt.prototype.unshiftNode=function(r){if(r!==this.head){r.list&&r.list.removeNode(r);var e=this.head;r.list=this,r.next=e,e&&(e.prev=r),this.head=r,this.tail||(this.tail=r),this.length++}};Mt.prototype.pushNode=function(r){if(r!==this.tail){r.list&&r.list.removeNode(r);var e=this.tail;r.list=this,r.prev=e,e&&(e.next=r),this.tail=r,this.head||(this.head=r),this.length++}};Mt.prototype.push=function(){for(var r=0,e=arguments.length;r<e;r++)kme(this,arguments[r]);return this.length};Mt.prototype.unshift=function(){for(var r=0,e=arguments.length;r<e;r++)Dme(this,arguments[r]);return this.length};Mt.prototype.pop=function(){if(!!this.tail){var r=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,r}};Mt.prototype.shift=function(){if(!!this.head){var r=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,r}};Mt.prototype.forEach=function(r,e){e=e||this;for(var t=this.head,i=0;t!==null;i++)r.call(e,t.value,i,this),t=t.next};Mt.prototype.forEachReverse=function(r,e){e=e||this;for(var t=this.tail,i=this.length-1;t!==null;i--)r.call(e,t.value,i,this),t=t.prev};Mt.prototype.get=function(r){for(var e=0,t=this.head;t!==null&&e<r;e++)t=t.next;if(e===r&&t!==null)return t.value};Mt.prototype.getReverse=function(r){for(var e=0,t=this.tail;t!==null&&e<r;e++)t=t.prev;if(e===r&&t!==null)return t.value};Mt.prototype.map=function(r,e){e=e||this;for(var t=new Mt,i=this.head;i!==null;)t.push(r.call(e,i.value,this)),i=i.next;return t};Mt.prototype.mapReverse=function(r,e){e=e||this;for(var t=new Mt,i=this.tail;i!==null;)t.push(r.call(e,i.value,this)),i=i.prev;return t};Mt.prototype.reduce=function(r,e){var t,i=this.head;if(arguments.length>1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Mt.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Mt.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Mt.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Mt.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(;n!==null&&i<e;i++,n=n.next)t.push(n.value);return t};Mt.prototype.sliceReverse=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Mt;if(e<r||e<0)return t;r<0&&(r=0),e>this.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Mt.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i<r;i++)n=n.next;for(var s=[],i=0;n&&i<e;i++)s.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var i=0;i<t.length;i++)n=Pme(this,n,t[i]);return s};Mt.prototype.reverse=function(){for(var r=this.head,e=this.tail,t=r;t!==null;t=t.prev){var i=t.prev;t.prev=t.next,t.next=i}return this.head=e,this.tail=r,this};function Pme(r,e,t){var i=e===r.head?new pc(t,null,e,r):new pc(t,e,e.next,r);return i.next===null&&(r.tail=i),i.prev===null&&(r.head=i),r.length++,i}function kme(r,e){r.tail=new pc(e,r.tail,null,r),r.head||(r.head=r.tail),r.length++}function Dme(r,e){r.head=new pc(e,null,r.head,r),r.tail||(r.tail=r.head),r.length++}function pc(r,e,t,i){if(!(this instanceof pc))return new pc(r,e,t,i);this.list=i,this.value=r,e?(e.next=this,this.prev=e):this.prev=null,t?(t.prev=this,this.next=t):this.next=null}try{Xj()(Mt)}catch{}});var rG=I((Z$e,tG)=>{"use strict";var Rme=JI(),dc=Symbol("max"),xa=Symbol("length"),Wg=Symbol("lengthCalculator"),Ed=Symbol("allowStale"),Cc=Symbol("maxAge"),va=Symbol("dispose"),_j=Symbol("noDisposeOnSet"),pi=Symbol("lruList"),Xs=Symbol("cache"),eG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[dc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[Ed]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[Cc]=e.maxAge||0,this[va]=e.dispose,this[_j]=e.noDisposeOnSet||!1,this[eG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[dc]=e||1/0,md(this)}get max(){return this[dc]}set allowStale(e){this[Ed]=!!e}get allowStale(){return this[Ed]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[Cc]=e,md(this)}get maxAge(){return this[Cc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[xa]=0,this[pi].forEach(t=>{t.length=this[Wg](t.value,t.key),this[xa]+=t.length})),md(this)}get lengthCalculator(){return this[Wg]}get length(){return this[xa]}get itemCount(){return this[pi].length}rforEach(e,t){t=t||this;for(let i=this[pi].tail;i!==null;){let n=i.prev;$j(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[pi].head;i!==null;){let n=i.next;$j(this,e,i,t),i=n}}keys(){return this[pi].toArray().map(e=>e.key)}values(){return this[pi].toArray().map(e=>e.value)}reset(){this[va]&&this[pi]&&this[pi].length&&this[pi].forEach(e=>this[va](e.key,e.value)),this[Xs]=new Map,this[pi]=new Rme,this[xa]=0}dump(){return this[pi].map(e=>WI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[pi]}set(e,t,i){if(i=i||this[Cc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Xs].has(e)){if(s>this[dc])return zg(this,this[Xs].get(e)),!1;let l=this[Xs].get(e).value;return this[va]&&(this[_j]||this[va](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[xa]+=s-l.length,l.length=s,this.get(e),md(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[dc]?(this[va]&&this[va](e,t),!1):(this[xa]+=o.length,this[pi].unshift(o),this[Xs].set(e,this[pi].head),md(this),!0)}has(e){if(!this[Xs].has(e))return!1;let t=this[Xs].get(e).value;return!WI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[pi].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Xs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Xs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Xs].get(e);if(i){let n=i.value;if(WI(r,n)){if(zg(r,i),!r[Ed])return}else t&&(r[eG]&&(i.value.now=Date.now()),r[pi].unshiftNode(i));return n.value}},WI=(r,e)=>{if(!e||!e.maxAge&&!r[Cc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[Cc]&&t>r[Cc]},md=r=>{if(r[xa]>r[dc])for(let e=r[pi].tail;r[xa]>r[dc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[va]&&r[va](t.key,t.value),r[xa]-=t.length,r[Xs].delete(t.key),r[pi].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},$j=(r,e,t,i)=>{let n=t.value;WI(r,n)&&(zg(r,t),r[Ed]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};tG.exports=yv});var cs=I((_$e,oG)=>{var mc=class{constructor(e,t){if(t=Nme(t),e instanceof mc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new mc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!nG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=iG.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[Qi.HYPHENRANGELOOSE]:Oi[Qi.HYPHENRANGE];e=e.replace(o,Vme(this.options.includePrerelease)),Kr("hyphen replace",e),e=e.replace(Oi[Qi.COMPARATORTRIM],Lme),Kr("comparator trim",e,Oi[Qi.COMPARATORTRIM]),e=e.replace(Oi[Qi.TILDETRIM],Ome),e=e.replace(Oi[Qi.CARETTRIM],Mme),e=e.split(/\s+/).join(" ");let a=s?Oi[Qi.COMPARATORLOOSE]:Oi[Qi.COMPARATOR],l=e.split(" ").map(h=>Ume(h,this.options)).join(" ").split(/\s+/).map(h=>zme(h,this.options)).filter(this.options.loose?h=>!!h.match(a):()=>!0).map(h=>new Bv(h,this.options)),c=l.length,u=new Map;for(let h of l){if(nG(h))return[h];u.set(h.value,h)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return iG.set(i,g),g}intersects(e,t){if(!(e instanceof mc))throw new TypeError("a Range is required");return this.set.some(i=>sG(i,t)&&e.set.some(n=>sG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Tme(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(Xme(this.set[t],e,this.options))return!0;return!1}};oG.exports=mc;var Fme=rG(),iG=new Fme({max:1e3}),Nme=pd(),Bv=Id(),Kr=hd(),Tme=Li(),{re:Oi,t:Qi,comparatorTrimReplace:Lme,tildeTrimReplace:Ome,caretTrimReplace:Mme}=fc(),nG=r=>r.value==="<0.0.0-0",Kme=r=>r.value==="",sG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Ume=(r,e)=>(Kr("comp",r,e),r=Gme(r,e),Kr("caret",r),r=Hme(r,e),Kr("tildes",r),r=qme(r,e),Kr("xrange",r),r=Wme(r,e),Kr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Hme=(r,e)=>r.trim().split(/\s+/).map(t=>jme(t,e)).join(" "),jme=(r,e)=>{let t=e.loose?Oi[Qi.TILDELOOSE]:Oi[Qi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Kr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Kr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Kr("tilde return",l),l})},Gme=(r,e)=>r.trim().split(/\s+/).map(t=>Yme(t,e)).join(" "),Yme=(r,e)=>{Kr("caret",r,e);let t=e.loose?Oi[Qi.CARETLOOSE]:Oi[Qi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Kr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Kr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Kr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Kr("caret return",c),c})},qme=(r,e)=>(Kr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Jme(t,e)).join(" ")),Jme=(r,e)=>{r=r.trim();let t=e.loose?Oi[Qi.XRANGELOOSE]:Oi[Qi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Kr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),h=g;return n==="="&&h&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&h?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Kr("xRange return",i),i})},Wme=(r,e)=>(Kr("replaceStars",r,e),r.trim().replace(Oi[Qi.STAR],"")),zme=(r,e)=>(Kr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?Qi.GTE0PRE:Qi.GTE0],"")),Vme=r=>(e,t,i,n,s,o,a,l,c,u,g,h,p)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:h?l=`<=${c}.${u}.${g}-${h}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Xme=(r,e,t)=>{for(let i=0;i<r.length;i++)if(!r[i].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let i=0;i<r.length;i++)if(Kr(r[i].semver),r[i].semver!==Bv.ANY&&r[i].semver.prerelease.length>0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Id=I(($$e,uG)=>{var yd=Symbol("SemVer ANY"),Vg=class{static get ANY(){return yd}constructor(e,t){if(t=Zme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===yd?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?aG[AG.COMPARATORLOOSE]:aG[AG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new lG(i[2],this.options.loose):this.semver=yd}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===yd||e===yd)return!0;if(typeof e=="string")try{e=new lG(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new cG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new cG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};uG.exports=Vg;var Zme=pd(),{re:aG,t:AG}=fc(),bv=mv(),Qv=hd(),lG=Li(),cG=cs()});var wd=I((eet,gG)=>{var _me=cs(),$me=(r,e,t)=>{try{e=new _me(e,t)}catch{return!1}return e.test(r)};gG.exports=$me});var hG=I((tet,fG)=>{var eEe=cs(),tEe=(r,e)=>new eEe(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));fG.exports=tEe});var dG=I((ret,pG)=>{var rEe=Li(),iEe=cs(),nEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new iEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rEe(i,t))}),i};pG.exports=nEe});var mG=I((iet,CG)=>{var sEe=Li(),oEe=cs(),aEe=(r,e,t)=>{let i=null,n=null,s=null;try{s=new oEe(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sEe(i,t))}),i};CG.exports=aEe});var yG=I((net,IG)=>{var Sv=Li(),AEe=cs(),EG=Cd(),lEe=(r,e)=>{r=new AEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i<r.set.length;++i){let n=r.set[i],s=null;n.forEach(o=>{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||EG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||EG(t,s))&&(t=s)}return t&&r.test(t)?t:null};IG.exports=lEe});var BG=I((set,wG)=>{var cEe=cs(),uEe=(r,e)=>{try{return new cEe(r,e).range||"*"}catch{return null}};wG.exports=uEe});var zI=I((oet,vG)=>{var gEe=Li(),SG=Id(),{ANY:fEe}=SG,hEe=cs(),pEe=wd(),bG=Cd(),QG=HI(),dEe=GI(),CEe=jI(),mEe=(r,e,t,i)=>{r=new gEe(r,i),e=new hEe(e,i);let n,s,o,a,l;switch(t){case">":n=bG,s=dEe,o=QG,a=">",l=">=";break;case"<":n=QG,s=CEe,o=bG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pEe(r,e,i))return!1;for(let c=0;c<e.set.length;++c){let u=e.set[c],g=null,h=null;if(u.forEach(p=>{p.semver===fEe&&(p=new SG(">=0.0.0")),g=g||p,h=h||p,n(p.semver,g.semver,i)?g=p:o(p.semver,h.semver,i)&&(h=p)}),g.operator===a||g.operator===l||(!h.operator||h.operator===a)&&s(r,h.semver))return!1;if(h.operator===l&&o(r,h.semver))return!1}return!0};vG.exports=mEe});var PG=I((aet,xG)=>{var EEe=zI(),IEe=(r,e,t)=>EEe(r,e,">",t);xG.exports=IEe});var DG=I((Aet,kG)=>{var yEe=zI(),wEe=(r,e,t)=>yEe(r,e,"<",t);kG.exports=wEe});var NG=I((cet,FG)=>{var RG=cs(),BEe=(r,e,t)=>(r=new RG(r,t),e=new RG(e,t),r.intersects(e));FG.exports=BEe});var LG=I((uet,TG)=>{var bEe=wd(),QEe=ls();TG.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>QEe(u,g,t));for(let u of o)bEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length<c.length?l:e}});var HG=I((get,UG)=>{var OG=cs(),VI=Id(),{ANY:vv}=VI,Bd=wd(),xv=ls(),SEe=(r,e,t={})=>{if(r===e)return!0;r=new OG(r,t),e=new OG(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new VI(">=0.0.0-0")]:r=[new VI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new VI(">=0.0.0")]}let i=new Set,n,s;for(let p of r)p.operator===">"||p.operator===">="?n=MG(n,p,t):p.operator==="<"||p.operator==="<="?s=KG(s,p,t):i.add(p.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of i){if(n&&!Bd(p,String(n),t)||s&&!Bd(p,String(s),t))return null;for(let d of e)if(!Bd(p,String(d),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,h=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let p of e){if(u=u||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",n){if(h&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===h.major&&p.semver.minor===h.minor&&p.semver.patch===h.patch&&(h=!1),p.operator===">"||p.operator===">="){if(a=MG(n,p,t),a===p&&a!==n)return!1}else if(n.operator===">="&&!Bd(n.semver,String(p),t))return!1}if(s){if(g&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===g.major&&p.semver.minor===g.minor&&p.semver.patch===g.patch&&(g=!1),p.operator==="<"||p.operator==="<="){if(l=KG(s,p,t),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Bd(s.semver,String(p),t))return!1}if(!p.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||h||g)},MG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},KG=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};UG.exports=SEe});var zr=I((fet,jG)=>{var Pv=fc();jG.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:fd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:LI().compareIdentifiers,rcompareIdentifiers:LI().rcompareIdentifiers,parse:hc(),valid:gj(),clean:hj(),inc:dj(),diff:wj(),major:bj(),minor:Sj(),patch:xj(),prerelease:kj(),compare:ls(),rcompare:Rj(),compareLoose:Nj(),compareBuild:UI(),sort:Mj(),rsort:Uj(),gt:Cd(),lt:HI(),eq:KI(),neq:Cv(),gte:jI(),lte:GI(),cmp:mv(),coerce:zj(),Comparator:Id(),Range:cs(),satisfies:wd(),toComparators:hG(),maxSatisfying:dG(),minSatisfying:mG(),minVersion:yG(),validRange:BG(),outside:zI(),gtr:PG(),ltr:DG(),intersects:NG(),simplifyRange:LG(),subset:HG()}});var kv=I(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.VERSION=void 0;XI.VERSION="9.1.0"});var Kt=I((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i<n;i++)(s||!(i in e))&&(s||(s=Array.prototype.slice.call(e,0,i)),s[i]=e[i]);return r.concat(s||Array.prototype.slice.call(e))};Object.defineProperty(exports,"__esModule",{value:!0});exports.toFastProperties=exports.timer=exports.peek=exports.isES2015MapSupported=exports.PRINT_WARNING=exports.PRINT_ERROR=exports.packArray=exports.IDENTITY=exports.NOOP=exports.merge=exports.groupBy=exports.defaults=exports.assignNoOverwrite=exports.assign=exports.zipObject=exports.sortBy=exports.indexOf=exports.some=exports.difference=exports.every=exports.isObject=exports.isRegExp=exports.isArray=exports.partial=exports.uniq=exports.compact=exports.reduce=exports.findAll=exports.find=exports.cloneObj=exports.cloneArr=exports.contains=exports.has=exports.pick=exports.reject=exports.filter=exports.dropRight=exports.drop=exports.isFunction=exports.isUndefined=exports.isString=exports.forEach=exports.last=exports.first=exports.flatten=exports.map=exports.mapValues=exports.values=exports.keys=exports.isEmpty=void 0;exports.upperFirst=void 0;function isEmpty(r){return r&&r.length===0}exports.isEmpty=isEmpty;function keys(r){return r==null?[]:Object.keys(r)}exports.keys=keys;function values(r){for(var e=[],t=Object.keys(r),i=0;i<t.length;i++)e.push(r[t[i]]);return e}exports.values=values;function mapValues(r,e){for(var t=[],i=keys(r),n=0;n<i.length;n++){var s=i[n];t.push(e.call(null,r[s],s))}return t}exports.mapValues=mapValues;function map(r,e){for(var t=[],i=0;i<r.length;i++)t.push(e.call(null,r[i],i));return t}exports.map=map;function flatten(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];Array.isArray(i)?e=e.concat(flatten(i)):e.push(i)}return e}exports.flatten=flatten;function first(r){return isEmpty(r)?void 0:r[0]}exports.first=first;function last(r){var e=r&&r.length;return e?r[e-1]:void 0}exports.last=last;function forEach(r,e){if(Array.isArray(r))for(var t=0;t<r.length;t++)e.call(null,r[t],t);else if(isObject(r))for(var i=keys(r),t=0;t<i.length;t++){var n=i[t],s=r[n];e.call(null,s,n)}else throw Error("non exhaustive match")}exports.forEach=forEach;function isString(r){return typeof r=="string"}exports.isString=isString;function isUndefined(r){return r===void 0}exports.isUndefined=isUndefined;function isFunction(r){return r instanceof Function}exports.isFunction=isFunction;function drop(r,e){return e===void 0&&(e=1),r.slice(e,r.length)}exports.drop=drop;function dropRight(r,e){return e===void 0&&(e=1),r.slice(0,r.length-e)}exports.dropRight=dropRight;function filter(r,e){var t=[];if(Array.isArray(r))for(var i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.filter=filter;function reject(r,e){return filter(r,function(t){return!e(t)})}exports.reject=reject;function pick(r,e){for(var t=Object.keys(r),i={},n=0;n<t.length;n++){var s=t[n],o=r[s];e(o)&&(i[s]=o)}return i}exports.pick=pick;function has(r,e){return isObject(r)?r.hasOwnProperty(e):!1}exports.has=has;function contains(r,e){return find(r,function(t){return t===e})!==void 0}exports.contains=contains;function cloneArr(r){for(var e=[],t=0;t<r.length;t++)e.push(r[t]);return e}exports.cloneArr=cloneArr;function cloneObj(r){var e={};for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t]);return e}exports.cloneObj=cloneObj;function find(r,e){for(var t=0;t<r.length;t++){var i=r[t];if(e.call(null,i))return i}}exports.find=find;function findAll(r,e){for(var t=[],i=0;i<r.length;i++){var n=r[i];e.call(null,n)&&t.push(n)}return t}exports.findAll=findAll;function reduce(r,e,t){for(var i=Array.isArray(r),n=i?r:values(r),s=i?[]:keys(r),o=t,a=0;a<n.length;a++)o=e.call(null,o,n[a],i?a:s[a]);return o}exports.reduce=reduce;function compact(r){return reject(r,function(e){return e==null})}exports.compact=compact;function uniq(r,e){e===void 0&&(e=function(i){return i});var t=[];return reduce(r,function(i,n){var s=e(n);return contains(t,s)?i:(t.push(s),i.concat(n))},[])}exports.uniq=uniq;function partial(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var i=[null],n=i.concat(e);return Function.bind.apply(r,n)}exports.partial=partial;function isArray(r){return Array.isArray(r)}exports.isArray=isArray;function isRegExp(r){return r instanceof RegExp}exports.isRegExp=isRegExp;function isObject(r){return r instanceof Object}exports.isObject=isObject;function every(r,e){for(var t=0;t<r.length;t++)if(!e(r[t],t))return!1;return!0}exports.every=every;function difference(r,e){return reject(r,function(t){return contains(e,t)})}exports.difference=difference;function some(r,e){for(var t=0;t<r.length;t++)if(e(r[t]))return!0;return!1}exports.some=some;function indexOf(r,e){for(var t=0;t<r.length;t++)if(r[t]===e)return t;return-1}exports.indexOf=indexOf;function sortBy(r,e){var t=cloneArr(r);return t.sort(function(i,n){return e(i)-e(n)}),t}exports.sortBy=sortBy;function zipObject(r,e){if(r.length!==e.length)throw Error("can't zipObject with different number of keys and values!");for(var t={},i=0;i<r.length;i++)t[r[i]]=e[i];return t}exports.zipObject=zipObject;function assign(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];r[a]=n[a]}return r}exports.assign=assign;function assignNoOverwrite(r){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var i=0;i<e.length;i++)for(var n=e[i],s=keys(n),o=0;o<s.length;o++){var a=s[o];has(r,a)||(r[a]=n[a])}return r}exports.assignNoOverwrite=assignNoOverwrite;function defaults(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];return assignNoOverwrite.apply(void 0,__spreadArray([{}],r,!1))}exports.defaults=defaults;function groupBy(r,e){var t={};return forEach(r,function(i){var n=e(i),s=t[n];s?s.push(i):t[n]=[i]}),t}exports.groupBy=groupBy;function merge(r,e){for(var t=cloneObj(r),i=keys(e),n=0;n<i.length;n++){var s=i[n],o=e[s];t[s]=o}return t}exports.merge=merge;function NOOP(){}exports.NOOP=NOOP;function IDENTITY(r){return r}exports.IDENTITY=IDENTITY;function packArray(r){for(var e=[],t=0;t<r.length;t++){var i=r[t];e.push(i!==void 0?i:void 0)}return e}exports.packArray=packArray;function PRINT_ERROR(r){console&&console.error&&console.error("Error: "+r)}exports.PRINT_ERROR=PRINT_ERROR;function PRINT_WARNING(r){console&&console.warn&&console.warn("Warning: "+r)}exports.PRINT_WARNING=PRINT_WARNING;function isES2015MapSupported(){return typeof Map=="function"}exports.isES2015MapSupported=isES2015MapSupported;function peek(r){return r[r.length-1]}exports.peek=peek;function timer(r){var e=new Date().getTime(),t=r(),i=new Date().getTime(),n=i-e;return{time:n,value:t}}exports.timer=timer;function toFastProperties(toBecomeFast){function FakeConstructor(){}FakeConstructor.prototype=toBecomeFast;var fakeInstance=new FakeConstructor;function fakeAccess(){return typeof fakeInstance.bar}return fakeAccess(),fakeAccess(),toBecomeFast;eval(toBecomeFast)}exports.toFastProperties=toFastProperties;function upperFirst(r){if(!r)return r;var e=getCharacterFromCodePointAt(r,0);return e.toUpperCase()+r.substring(e.length)}exports.upperFirst=upperFirst;var surrogatePairPattern=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;function getCharacterFromCodePointAt(r,e){var t=r.substring(e,e+1);return surrogatePairPattern.test(t)?t:r[e]}});var _I=I((GG,ZI)=>{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof ZI=="object"&&ZI.exports?ZI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:GG,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(d){this.idx=d.idx,this.input=d.input,this.groupIdx=d.groupIdx},r.prototype.pattern=function(d){this.idx=0,this.input=d,this.groupIdx=0,this.consumeChar("/");var m=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:d.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:m,loc:this.loc(0)}},r.prototype.disjunction=function(){var d=[],m=this.idx;for(d.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),d.push(this.alternative());return{type:"Disjunction",value:d,loc:this.loc(m)}},r.prototype.alternative=function(){for(var d=[],m=this.idx;this.isTerm();)d.push(this.term());return{type:"Alternative",value:d,loc:this.loc(m)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var d=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(d)};case"$":return{type:"EndAnchor",loc:this.loc(d)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(d)};case"B":return{type:"NonWordBoundary",loc:this.loc(d)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var m;switch(this.popChar()){case"=":m="Lookahead";break;case"!":m="NegativeLookahead";break}a(m);var y=this.disjunction();return this.consumeChar(")"),{type:m,value:y,loc:this.loc(d)}}l()},r.prototype.quantifier=function(d){var m,y=this.idx;switch(this.popChar()){case"*":m={atLeast:0,atMost:1/0};break;case"+":m={atLeast:1,atMost:1/0};break;case"?":m={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":m={atLeast:B,atMost:B};break;case",":var S;this.isDigit()?(S=this.integerIncludingZero(),m={atLeast:B,atMost:S}):m={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(d===!0&&m===void 0)return;a(m);break}if(!(d===!0&&m===void 0))return a(m),this.peekChar(0)==="?"?(this.consumeChar("?"),m.greedy=!1):m.greedy=!0,m.type="Quantifier",m.loc=this.loc(y),m},r.prototype.atom=function(){var d,m=this.idx;switch(this.peekChar()){case".":d=this.dotAll();break;case"\\":d=this.atomEscape();break;case"[":d=this.characterClass();break;case"(":d=this.group();break}return d===void 0&&this.isPatternCharacter()&&(d=this.patternCharacter()),a(d),d.loc=this.loc(m),this.isQuantifier()&&(d.quantifier=this.quantifier()),d},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` -`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var d=this.positiveInteger();return{type:"GroupBackReference",value:d}},r.prototype.characterClassEscape=function(){var d,m=!1;switch(this.popChar()){case"d":d=u;break;case"D":d=u,m=!0;break;case"s":d=h;break;case"S":d=h,m=!0;break;case"w":d=g;break;case"W":d=g,m=!0;break}return a(d),{type:"Set",value:d,complement:m}},r.prototype.controlEscapeAtom=function(){var d;switch(this.popChar()){case"f":d=n("\f");break;case"n":d=n(` -`);break;case"r":d=n("\r");break;case"t":d=n(" ");break;case"v":d=n("\v");break}return a(d),{type:"Character",value:d}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var d=this.popChar();if(/[a-zA-Z]/.test(d)===!1)throw Error("Invalid ");var m=d.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:m}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var d=this.popChar();return{type:"Character",value:n(d)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var d=this.popChar();return{type:"Character",value:n(d)}}},r.prototype.characterClass=function(){var d=[],m=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),m=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var S=this.classAtom(),P=S.type==="Character";if(P){if(S.value<y.value)throw Error("Range out of order in character class");d.push({from:y.value,to:S.value})}else s(y.value,d),d.push(n("-")),s(S.value,d)}else s(y.value,d)}return this.consumeChar("]"),{type:"Set",complement:m,value:d}},r.prototype.classAtom=function(){switch(this.peekChar()){case"]":case` -`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}},r.prototype.classEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:n("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.group=function(){var d=!0;switch(this.consumeChar("("),this.peekChar(0)){case"?":this.consumeChar("?"),this.consumeChar(":"),d=!1;break;default:this.groupIdx++;break}var m=this.disjunction();this.consumeChar(")");var y={type:"Group",capturing:d,value:m};return d&&(y.idx=this.groupIdx),y},r.prototype.positiveInteger=function(){var d=this.popChar();if(i.test(d)===!1)throw Error("Expecting a positive integer");for(;t.test(this.peekChar(0));)d+=this.popChar();return parseInt(d,10)},r.prototype.integerIncludingZero=function(){var d=this.popChar();if(t.test(d)===!1)throw Error("Expecting an integer");for(;t.test(this.peekChar(0));)d+=this.popChar();return parseInt(d,10)},r.prototype.patternCharacter=function(){var d=this.popChar();switch(d){case` -`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:n(d)}}},r.prototype.isRegExpFlag=function(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}},r.prototype.isRangeDash=function(){return this.peekChar()==="-"&&this.isClassAtom(1)},r.prototype.isDigit=function(){return t.test(this.peekChar(0))},r.prototype.isClassAtom=function(d){switch(d===void 0&&(d=0),this.peekChar(d)){case"]":case` -`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.isTerm=function(){return this.isAtom()||this.isAssertion()},r.prototype.isAtom=function(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}},r.prototype.isAssertion=function(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!");default:return!1}},r.prototype.isQuantifier=function(){var d=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(d)}},r.prototype.isPatternCharacter=function(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case` -`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}},r.prototype.parseHexDigits=function(d){for(var m="",y=0;y<d;y++){var B=this.popChar();if(e.test(B)===!1)throw Error("Expecting a HexDecimal digits");m+=B}var S=parseInt(m,16);return{type:"Character",value:S}},r.prototype.peekChar=function(d){return d===void 0&&(d=0),this.input[this.idx+d]},r.prototype.popChar=function(){var d=this.peekChar(0);return this.consumeChar(),d},r.prototype.consumeChar=function(d){if(d!==void 0&&this.input[this.idx]!==d)throw Error("Expected: '"+d+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(d){return{begin:d,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(d){return d.charCodeAt(0)}function s(d,m){d.length!==void 0?d.forEach(function(y){m.push(y)}):m.push(d)}function o(d,m){if(d[m]===!0)throw"duplicate flag "+m;d[m]=!0}function a(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var h=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function p(){}return p.prototype.visitChildren=function(d){for(var m in d){var y=d[m];d.hasOwnProperty(m)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},p.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},p.prototype.visitPattern=function(d){},p.prototype.visitFlags=function(d){},p.prototype.visitDisjunction=function(d){},p.prototype.visitAlternative=function(d){},p.prototype.visitStartAnchor=function(d){},p.prototype.visitEndAnchor=function(d){},p.prototype.visitWordBoundary=function(d){},p.prototype.visitNonWordBoundary=function(d){},p.prototype.visitLookahead=function(d){},p.prototype.visitNegativeLookahead=function(d){},p.prototype.visitCharacter=function(d){},p.prototype.visitSet=function(d){},p.prototype.visitGroup=function(d){},p.prototype.visitGroupBackReference=function(d){},p.prototype.visitQuantifier=function(d){},{RegExpParser:r,BaseRegExpVisitor:p,VERSION:"0.5.0"}})});var ey=I(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var xEe=_I(),$I={},PEe=new xEe.RegExpParser;function kEe(r){var e=r.toString();if($I.hasOwnProperty(e))return $I[e];var t=PEe.pattern(e);return $I[e]=t,t}Xg.getRegExpAst=kEe;function DEe(){$I={}}Xg.clearRegExpParserCache=DEe});var zG=I(mn=>{"use strict";var REe=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.canMatchCharCode=mn.firstCharOptimizedIndices=mn.getOptimizedStartCodesIndices=mn.failedOptimizationPrefixMsg=void 0;var qG=_I(),us=Kt(),JG=ey(),Pa=Rv(),WG="Complement Sets are not supported for first char optimization";mn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function FEe(r,e){e===void 0&&(e=!1);try{var t=(0,JG.getRegExpAst)(r),i=ry(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===WG)e&&(0,us.PRINT_WARNING)(""+mn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,us.PRINT_ERROR)(mn.failedOptimizationPrefixMsg+` -`+(" Failed parsing: < "+r.toString()+` > -`)+(" Using the regexp-to-ast library version: "+qG.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}mn.getOptimizedStartCodesIndices=FEe;function ry(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i<r.value.length;i++)ry(r.value[i],e,t);break;case"Alternative":for(var n=r.value,i=0;i<n.length;i++){var s=n[i];switch(s.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}var o=s;switch(o.type){case"Character":ty(o.value,e,t);break;case"Set":if(o.complement===!0)throw Error(WG);(0,us.forEach)(o.value,function(c){if(typeof c=="number")ty(c,e,t);else{var u=c;if(t===!0)for(var g=u.from;g<=u.to;g++)ty(g,e,t);else{for(var g=u.from;g<=u.to&&g<Pa.minOptimizationVal;g++)ty(g,e,t);if(u.to>=Pa.minOptimizationVal)for(var h=u.from>=Pa.minOptimizationVal?u.from:Pa.minOptimizationVal,p=u.to,d=(0,Pa.charCodeToOptimizedIndex)(h),m=(0,Pa.charCodeToOptimizedIndex)(p),y=d;y<=m;y++)e[y]=y}}});break;case"Group":ry(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,us.values)(e)}mn.firstCharOptimizedIndices=ry;function ty(r,e,t){var i=(0,Pa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&NEe(r,e)}function NEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,Pa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,Pa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function YG(r,e){return(0,us.find)(r.value,function(t){if(typeof t=="number")return(0,us.contains)(e,t);var i=t;return(0,us.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,us.isArray)(r.value)?(0,us.every)(r.value,Dv):Dv(r.value):!1}var TEe=function(r){REe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,us.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?YG(t,this.targetCharCodes)===void 0&&(this.found=!0):YG(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qG.BaseRegExpVisitor);function LEe(r,e){if(e instanceof RegExp){var t=(0,JG.getRegExpAst)(e),i=new TEe(r);return i.visit(t),i.found}else return(0,us.find)(e,function(n){return(0,us.contains)(r,n.charCodeAt(0))})!==void 0}mn.canMatchCharCode=LEe});var Rv=I(We=>{"use strict";var VG=We&&We.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(We,"__esModule",{value:!0});We.charCodeToOptimizedIndex=We.minOptimizationVal=We.buildLineBreakIssueMessage=We.LineTerminatorOptimizedTester=We.isShortPattern=We.isCustomPattern=We.cloneEmptyGroups=We.performWarningRuntimeChecks=We.performRuntimeChecks=We.addStickyFlag=We.addStartOfInput=We.findUnreachablePatterns=We.findModesThatDoNotExist=We.findInvalidGroupType=We.findDuplicatePatterns=We.findUnsupportedFlags=We.findStartOfInputAnchor=We.findEmptyMatchRegExps=We.findEndOfInputAnchor=We.findInvalidPatterns=We.findMissingPatterns=We.validatePatterns=We.analyzeTokenTypes=We.enableSticky=We.disableSticky=We.SUPPORT_STICKY=We.MODES=We.DEFAULT_MODE=void 0;var XG=_I(),tr=bd(),Se=Kt(),Zg=zG(),ZG=ey(),ko="PATTERN";We.DEFAULT_MODE="defaultMode";We.MODES="modes";We.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function OEe(){We.SUPPORT_STICKY=!1}We.disableSticky=OEe;function MEe(){We.SUPPORT_STICKY=!0}We.enableSticky=MEe;function KEe(r,e){e=(0,Se.defaults)(e,{useSticky:We.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(S,P){return P()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){VEe()});var i;t("Reject Lexer.NA",function(){i=(0,Se.reject)(r,function(S){return S[ko]===tr.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,Se.map)(i,function(S){var P=S[ko];if((0,Se.isRegExp)(P)){var F=P.source;return F.length===1&&F!=="^"&&F!=="$"&&F!=="."&&!P.ignoreCase?F:F.length===2&&F[0]==="\\"&&!(0,Se.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],F[1])?F[1]:e.useSticky?Tv(P):Nv(P)}else{if((0,Se.isFunction)(P))return n=!0,{exec:P};if((0,Se.has)(P,"exec"))return n=!0,P;if(typeof P=="string"){if(P.length===1)return P;var H=P.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),q=new RegExp(H);return e.useSticky?Tv(q):Nv(q)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,Se.map)(i,function(S){return S.tokenTypeIdx}),a=(0,Se.map)(i,function(S){var P=S.GROUP;if(P!==tr.Lexer.SKIPPED){if((0,Se.isString)(P))return P;if((0,Se.isUndefined)(P))return!1;throw Error("non exhaustive match")}}),l=(0,Se.map)(i,function(S){var P=S.LONGER_ALT;if(P){var F=(0,Se.isArray)(P)?(0,Se.map)(P,function(H){return(0,Se.indexOf)(i,H)}):[(0,Se.indexOf)(i,P)];return F}}),c=(0,Se.map)(i,function(S){return S.PUSH_MODE}),u=(0,Se.map)(i,function(S){return(0,Se.has)(S,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var S=uY(e.lineTerminatorCharacters);g=(0,Se.map)(i,function(P){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Se.map)(i,function(P){if((0,Se.has)(P,"LINE_BREAKS"))return P.LINE_BREAKS;if(lY(P,S)===!1)return(0,Zg.canMatchCharCode)(S,P.PATTERN)}))});var h,p,d,m;t("Misc Mapping #2",function(){h=(0,Se.map)(i,Ov),p=(0,Se.map)(s,AY),d=(0,Se.reduce)(i,function(S,P){var F=P.GROUP;return(0,Se.isString)(F)&&F!==tr.Lexer.SKIPPED&&(S[F]=[]),S},{}),m=(0,Se.map)(s,function(S,P){return{pattern:s[P],longerAlt:l[P],canLineTerminator:g[P],isCustom:h[P],short:p[P],group:a[P],push:c[P],pop:u[P],tokenTypeIdx:o[P],tokenType:i[P]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,Se.reduce)(i,function(S,P,F){if(typeof P.PATTERN=="string"){var H=P.PATTERN.charCodeAt(0),q=Lv(H);Fv(S,q,m[F])}else if((0,Se.isArray)(P.START_CHARS_HINT)){var _;(0,Se.forEach)(P.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=Lv(Z);_!==A&&(_=A,Fv(S,A,m[F]))})}else if((0,Se.isRegExp)(P.PATTERN))if(P.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+P.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var X=(0,Zg.getOptimizedStartCodesIndices)(P.PATTERN,e.ensureOptimizations);(0,Se.isEmpty)(X)&&(y=!1),(0,Se.forEach)(X,function(W){Fv(S,W,m[F])})}else e.ensureOptimizations&&(0,Se.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+P.name+`> is using a custom token pattern without providing <start_chars_hint> parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return S},[])}),t("ArrayPacking",function(){B=(0,Se.packArray)(B)}),{emptyGroups:d,patternIdxToConfig:m,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}We.analyzeTokenTypes=KEe;function UEe(r,e){var t=[],i=_G(r);t=t.concat(i.errors);var n=$G(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(HEe(s)),t=t.concat(sY(s)),t=t.concat(oY(s,e)),t=t.concat(aY(s)),t}We.validatePatterns=UEe;function HEe(r){var e=[],t=(0,Se.filter)(r,function(i){return(0,Se.isRegExp)(i[ko])});return e=e.concat(eY(t)),e=e.concat(rY(t)),e=e.concat(iY(t)),e=e.concat(nY(t)),e=e.concat(tY(t)),e}function _G(r){var e=(0,Se.filter)(r,function(n){return!(0,Se.has)(n,ko)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:tr.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findMissingPatterns=_G;function $G(r){var e=(0,Se.filter)(r,function(n){var s=n[ko];return!(0,Se.isRegExp)(s)&&!(0,Se.isFunction)(s)&&!(0,Se.has)(s,"exec")&&!(0,Se.isString)(s)}),t=(0,Se.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:tr.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Se.difference)(r,e);return{errors:t,valid:i}}We.findInvalidPatterns=$G;var jEe=/[^\\][\$]/;function eY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return jEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findEndOfInputAnchor=eY;function tY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:tr.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}We.findEmptyMatchRegExps=tY;var GEe=/[^\\[][\^]|^\^/;function rY(r){var e=function(n){VG(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XG.BaseRegExpVisitor),t=(0,Se.filter)(r,function(n){var s=n[ko];try{var o=(0,ZG.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return GEe.test(s.source)}}),i=(0,Se.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:tr.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}We.findStartOfInputAnchor=rY;function iY(r){var e=(0,Se.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:tr.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}We.findUnsupportedFlags=iY;function nY(r){var e=[],t=(0,Se.map)(r,function(s){return(0,Se.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Se.contains)(e,a)&&a.PATTERN!==tr.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,Se.compact)(t);var i=(0,Se.filter)(t,function(s){return s.length>1}),n=(0,Se.map)(i,function(s){var o=(0,Se.map)(s,function(l){return l.name}),a=(0,Se.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:tr.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}We.findDuplicatePatterns=nY;function sY(r){var e=(0,Se.filter)(r,function(i){if(!(0,Se.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==tr.Lexer.SKIPPED&&n!==tr.Lexer.NA&&!(0,Se.isString)(n)}),t=(0,Se.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:tr.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}We.findInvalidGroupType=sY;function oY(r,e){var t=(0,Se.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,Se.contains)(e,n.PUSH_MODE)}),i=(0,Se.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:tr.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}We.findModesThatDoNotExist=oY;function aY(r){var e=[],t=(0,Se.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===tr.Lexer.NA||((0,Se.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Se.isRegExp)(o)&&qEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Se.forEach)(r,function(i,n){(0,Se.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n<a&&YEe(o,i.PATTERN)){var c="Token: ->"+l.name+`<- can never be matched. -`+("Because it appears AFTER the Token Type ->"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:tr.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}We.findUnreachablePatterns=aY;function YEe(r,e){if((0,Se.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,Se.isFunction)(e))return e(r,0,[],{});if((0,Se.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Se.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}We.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}We.addStickyFlag=Tv;function JEe(r,e,t){var i=[];return(0,Se.has)(r,We.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.DEFAULT_MODE+`> property in its definition -`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Se.has)(r,We.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+We.MODES+`> property in its definition -`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Se.has)(r,We.MODES)&&(0,Se.has)(r,We.DEFAULT_MODE)&&!(0,Se.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+We.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist -`,type:tr.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Se.has)(r,We.MODES)&&(0,Se.forEach)(r.modes,function(n,s){(0,Se.forEach)(n,function(o,a){(0,Se.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:tr.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}We.performRuntimeChecks=JEe;function WEe(r,e,t){var i=[],n=!1,s=(0,Se.compact)((0,Se.flatten)((0,Se.mapValues)(r.modes,function(l){return l}))),o=(0,Se.reject)(s,function(l){return l[ko]===tr.Lexer.NA}),a=uY(t);return e&&(0,Se.forEach)(o,function(l){var c=lY(l,a);if(c!==!1){var u=cY(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Se.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:tr.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}We.performWarningRuntimeChecks=WEe;function zEe(r){var e={},t=(0,Se.keys)(r);return(0,Se.forEach)(t,function(i){var n=r[i];if((0,Se.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}We.cloneEmptyGroups=zEe;function Ov(r){var e=r.PATTERN;if((0,Se.isRegExp)(e))return!1;if((0,Se.isFunction)(e))return!0;if((0,Se.has)(e,"exec"))return!0;if((0,Se.isString)(e))return!1;throw Error("non exhaustive match")}We.isCustomPattern=Ov;function AY(r){return(0,Se.isString)(r)&&r.length===1?r.charCodeAt(0):!1}We.isShortPattern=AY;We.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t<e;t++){var i=r.charCodeAt(t);if(i===10)return this.lastIndex=t+1,!0;if(i===13)return r.charCodeAt(t+1)===10?this.lastIndex=t+2:this.lastIndex=t+1,!0}return!1},lastIndex:0};function lY(r,e){if((0,Se.has)(r,"LINE_BREAKS"))return!1;if((0,Se.isRegExp)(r.PATTERN)){try{(0,Zg.canMatchCharCode)(e,r.PATTERN)}catch(t){return{issue:tr.LexerDefinitionErrorType.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}else{if((0,Se.isString)(r.PATTERN))return!1;if(Ov(r))return{issue:tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function cY(r,e){if(e.issue===tr.LexerDefinitionErrorType.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. -`+(" The problem is in the <"+r.name+`> Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===tr.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option. -`+(" The problem is in the <"+r.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}We.buildLineBreakIssueMessage=cY;function uY(r){var e=(0,Se.map)(r,function(t){return(0,Se.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}We.minOptimizationVal=256;var iy=[];function Lv(r){return r<We.minOptimizationVal?r:iy[r]}We.charCodeToOptimizedIndex=Lv;function VEe(){if((0,Se.isEmpty)(iy)){iy=new Array(65536);for(var r=0;r<65536;r++)iy[r]=r>255?255+~~(r/255):r}}});var _g=I(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.isTokenType=Rt.hasExtendingTokensTypesMapProperty=Rt.hasExtendingTokensTypesProperty=Rt.hasCategoriesProperty=Rt.hasShortKeyProperty=Rt.singleAssignCategoriesToksMap=Rt.assignCategoriesMapProp=Rt.assignCategoriesTokensProp=Rt.assignTokenDefaultProps=Rt.expandCategories=Rt.augmentTokenTypes=Rt.tokenIdxToClass=Rt.tokenShortNameIdx=Rt.tokenStructuredMatcherNoCategories=Rt.tokenStructuredMatcher=void 0;var Vr=Kt();function XEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Rt.tokenStructuredMatcher=XEe;function ZEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Rt.tokenStructuredMatcherNoCategories=ZEe;Rt.tokenShortNameIdx=1;Rt.tokenIdxToClass={};function _Ee(r){var e=gY(r);fY(e),pY(e),hY(e),(0,Vr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Rt.augmentTokenTypes=_Ee;function gY(r){for(var e=(0,Vr.cloneArr)(r),t=r,i=!0;i;){t=(0,Vr.compact)((0,Vr.flatten)((0,Vr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Vr.difference)(t,e);e=e.concat(n),(0,Vr.isEmpty)(n)?i=!1:t=n}return e}Rt.expandCategories=gY;function fY(r){(0,Vr.forEach)(r,function(e){dY(e)||(Rt.tokenIdxToClass[Rt.tokenShortNameIdx]=e,e.tokenTypeIdx=Rt.tokenShortNameIdx++),Mv(e)&&!(0,Vr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),CY(e)||(e.categoryMatches=[]),mY(e)||(e.categoryMatchesMap={})})}Rt.assignTokenDefaultProps=fY;function hY(r){(0,Vr.forEach)(r,function(e){e.categoryMatches=[],(0,Vr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Rt.tokenIdxToClass[i].tokenTypeIdx)})})}Rt.assignCategoriesTokensProp=hY;function pY(r){(0,Vr.forEach)(r,function(e){Kv([],e)})}Rt.assignCategoriesMapProp=pY;function Kv(r,e){(0,Vr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Vr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Vr.contains)(i,t)||Kv(i,t)})}Rt.singleAssignCategoriesToksMap=Kv;function dY(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.hasShortKeyProperty=dY;function Mv(r){return(0,Vr.has)(r,"CATEGORIES")}Rt.hasCategoriesProperty=Mv;function CY(r){return(0,Vr.has)(r,"categoryMatches")}Rt.hasExtendingTokensTypesProperty=CY;function mY(r){return(0,Vr.has)(r,"categoryMatchesMap")}Rt.hasExtendingTokensTypesMapProperty=mY;function $Ee(r){return(0,Vr.has)(r,"tokenTypeIdx")}Rt.isTokenType=$Ee});var Uv=I(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.defaultLexerErrorProvider=void 0;ny.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var bd=I(Ec=>{"use strict";Object.defineProperty(Ec,"__esModule",{value:!0});Ec.Lexer=Ec.LexerDefinitionErrorType=void 0;var Zs=Rv(),rr=Kt(),eIe=_g(),tIe=Uv(),rIe=ey(),iIe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iIe=Ec.LexerDefinitionErrorType||(Ec.LexerDefinitionErrorType={}));var Qd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(Qd);var nIe=function(){function r(e,t){var i=this;if(t===void 0&&(t=Qd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,rr.merge)(Qd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===Qd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===Qd.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,rr.isArray)(e)?(s={modes:{}},s.modes[Zs.DEFAULT_MODE]=(0,rr.cloneArr)(e),s[Zs.DEFAULT_MODE]=Zs.DEFAULT_MODE):(o=!1,s=(0,rr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,rr.forEach)(s.modes,function(u,g){s.modes[g]=(0,rr.reject)(u,function(h){return(0,rr.isUndefined)(h)})});var a=(0,rr.keys)(s.modes);if((0,rr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Zs.validatePatterns)(u,a))}),(0,rr.isEmpty)(i.lexerDefinitionErrors)){(0,eIe.augmentTokenTypes)(u);var h;i.TRACE_INIT("analyzeTokenTypes",function(){h=(0,Zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=h.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=h.charCodeToPatternIdxToConfig,i.emptyGroups=(0,rr.merge)(i.emptyGroups,h.emptyGroups),i.hasCustom=h.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=h.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,rr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,rr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+c)}(0,rr.forEach)(i.lexerDefinitionWarning,function(u){(0,rr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Zs.SUPPORT_STICKY?(i.chopInput=rr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=rr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=rr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=rr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=rr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid <positionTracking> config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,rr.reduce)(i.canModeBeOptimized,function(g,h,p){return h===!1&&g.push(p),g},[]);if(t.ensureOptimizations&&!(0,rr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,rr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,rr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,rr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,h,p,d,m,y,B,S,P,F=e,H=F.length,q=0,_=0,X=this.hasCustom?0:Math.floor(e.length/10),W=new Array(X),Z=[],A=this.trackStartLines?1:void 0,ne=this.trackStartLines?1:void 0,ue=(0,Zs.cloneEmptyGroups)(this.emptyGroups),te=this.trackStartLines,O=this.config.lineTerminatorsPattern,N=0,ce=[],he=[],Pe=[],De=[];Object.freeze(De);var Re=void 0;function se(){return ce}function Ae(fr){var Ei=(0,Zs.charCodeToOptimizedIndex)(fr),rs=he[Ei];return rs===void 0?De:rs}var ye=function(fr){if(Pe.length===1&&fr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(fr);Z.push({offset:fr.startOffset,line:fr.startLine!==void 0?fr.startLine:void 0,column:fr.startColumn!==void 0?fr.startColumn:void 0,length:fr.image.length,message:Ei})}else{Pe.pop();var rs=(0,rr.last)(Pe);ce=i.patternIdxToConfig[rs],he=i.charCodeToPatternIdxToConfig[rs],N=ce.length;var ua=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;he&&ua?Re=Ae:Re=se}};function ge(fr){Pe.push(fr),he=this.charCodeToPatternIdxToConfig[fr],ce=this.patternIdxToConfig[fr],N=ce.length,N=ce.length;var Ei=this.canModeBeOptimized[fr]&&this.config.safeMode===!1;he&&Ei?Re=Ae:Re=se}ge.call(this,t);for(var oe;q<H;){c=null;var Ye=F.charCodeAt(q),ie=Re(Ye),G=ie.length;for(n=0;n<G;n++){oe=ie[n];var fe=oe.pattern;u=null;var re=oe.short;if(re!==!1?Ye===re&&(c=fe):oe.isCustom===!0?(P=fe.exec(F,q,W,ue),P!==null?(c=P[0],P.payload!==void 0&&(u=P.payload)):c=null):(this.updateLastIndex(fe,q),c=this.match(fe,e,q)),c!==null){if(l=oe.longerAlt,l!==void 0){var de=l.length;for(o=0;o<de;o++){var Ze=ce[l[o]],vt=Ze.pattern;if(g=null,Ze.isCustom===!0?(P=vt.exec(F,q,W,ue),P!==null?(a=P[0],P.payload!==void 0&&(g=P.payload)):a=null):(this.updateLastIndex(vt,q),a=this.match(vt,e,q)),a&&a.length>c.length){c=a,u=g,oe=Ze;break}}}break}}if(c!==null){if(h=c.length,p=oe.group,p!==void 0&&(d=oe.tokenTypeIdx,m=this.createTokenInstance(c,q,d,oe.tokenType,A,ne,h),this.handlePayload(m,u),p===!1?_=this.addToken(W,_,m):ue[p].push(m)),e=this.chopInput(e,h),q=q+h,ne=this.computeNewColumn(ne,h),te===!0&&oe.canLineTerminator===!0){var mt=0,Lr=void 0,ti=void 0;O.lastIndex=0;do Lr=O.test(c),Lr===!0&&(ti=O.lastIndex-1,mt++);while(Lr===!0);mt!==0&&(A=A+mt,ne=h-ti,this.updateTokenEndLineColumnLocation(m,p,ti,mt,A,ne,h))}this.handleModes(oe,ye,ge,m)}else{for(var ui=q,gr=A,gi=ne,ri=!1;!ri&&q<H;)for(B=F.charCodeAt(q),e=this.chopInput(e,1),q++,s=0;s<N;s++){var Ms=ce[s],fe=Ms.pattern,re=Ms.short;if(re!==!1?F.charCodeAt(q)===re&&(ri=!0):Ms.isCustom===!0?ri=fe.exec(F,q,W,ue)!==null:(this.updateLastIndex(fe,q),ri=fe.exec(e)!==null),ri===!0)break}y=q-ui,S=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(F,ui,y,gr,gi),Z.push({offset:ui,line:gr,column:gi,length:y,message:S})}}return this.hasCustom||(W.length=_),{tokens:W,groups:ue,errors:Z}},r.prototype.handleModes=function(e,t,i,n){if(e.pop===!0){var s=e.push;t(n),s!==void 0&&i.call(this,s)}else e.push!==void 0&&i.call(this,e.push)},r.prototype.chopInput=function(e,t){return e.substring(t)},r.prototype.updateLastIndex=function(e,t){e.lastIndex=t},r.prototype.updateTokenEndLineColumnLocation=function(e,t,i,n,s,o,a){var l,c;t!==void 0&&(l=i===a-1,c=l?-1:0,n===1&&l===!0||(e.endLine=s+c,e.endColumn=o-1+-c))},r.prototype.computeNewColumn=function(e,t){return e+t},r.prototype.createTokenInstance=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return null},r.prototype.createOffsetOnlyToken=function(e,t,i,n){return{image:e,startOffset:t,tokenTypeIdx:i,tokenType:n}},r.prototype.createStartOnlyToken=function(e,t,i,n,s,o){return{image:e,startOffset:t,startLine:s,startColumn:o,tokenTypeIdx:i,tokenType:n}},r.prototype.createFullToken=function(e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:t+a-1,startLine:s,endLine:s,startColumn:o,endColumn:o+a-1,tokenTypeIdx:i,tokenType:n}},r.prototype.addToken=function(e,t,i){return 666},r.prototype.addTokenUsingPush=function(e,t,i){return e.push(i),t},r.prototype.addTokenUsingMemberAccess=function(e,t,i){return e[t]=i,t++,t},r.prototype.handlePayload=function(e,t){},r.prototype.handlePayloadNoCustom=function(e,t){},r.prototype.handlePayloadWithCustom=function(e,t){t!==null&&(e.payload=t)},r.prototype.match=function(e,t,i){return null},r.prototype.matchWithTest=function(e,t,i){var n=e.test(t);return n===!0?t.substring(i,e.lastIndex):null},r.prototype.matchWithExec=function(e,t){var i=e.exec(t);return i!==null?i[0]:i},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,rr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Ec.Lexer=nIe});var NA=I(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.tokenMatcher=Si.createTokenInstance=Si.EOF=Si.createToken=Si.hasTokenLabel=Si.tokenName=Si.tokenLabel=void 0;var _s=Kt(),sIe=bd(),Hv=_g();function oIe(r){return vY(r)?r.LABEL:r.name}Si.tokenLabel=oIe;function aIe(r){return r.name}Si.tokenName=aIe;function vY(r){return(0,_s.isString)(r.LABEL)&&r.LABEL!==""}Si.hasTokenLabel=vY;var AIe="parent",EY="categories",IY="label",yY="group",wY="push_mode",BY="pop_mode",bY="longer_alt",QY="line_breaks",SY="start_chars_hint";function xY(r){return lIe(r)}Si.createToken=xY;function lIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,_s.isUndefined)(e)||(t.PATTERN=e),(0,_s.has)(r,AIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,_s.has)(r,EY)&&(t.CATEGORIES=r[EY]),(0,Hv.augmentTokenTypes)([t]),(0,_s.has)(r,IY)&&(t.LABEL=r[IY]),(0,_s.has)(r,yY)&&(t.GROUP=r[yY]),(0,_s.has)(r,BY)&&(t.POP_MODE=r[BY]),(0,_s.has)(r,wY)&&(t.PUSH_MODE=r[wY]),(0,_s.has)(r,bY)&&(t.LONGER_ALT=r[bY]),(0,_s.has)(r,QY)&&(t.LINE_BREAKS=r[QY]),(0,_s.has)(r,SY)&&(t.START_CHARS_HINT=r[SY]),t}Si.EOF=xY({name:"EOF",pattern:sIe.Lexer.NA});(0,Hv.augmentTokenTypes)([Si.EOF]);function cIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Si.createTokenInstance=cIe;function uIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Si.tokenMatcher=uIe});var En=I(qt=>{"use strict";var ka=qt&&qt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(qt,"__esModule",{value:!0});qt.serializeProduction=qt.serializeGrammar=qt.Terminal=qt.Alternation=qt.RepetitionWithSeparator=qt.Repetition=qt.RepetitionMandatoryWithSeparator=qt.RepetitionMandatory=qt.Option=qt.Alternative=qt.Rule=qt.NonTerminal=qt.AbstractProduction=void 0;var or=Kt(),gIe=NA(),Do=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,or.forEach)(this.definition,function(t){t.accept(e)})},r}();qt.AbstractProduction=Do;var PY=function(r){ka(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Do);qt.NonTerminal=PY;var kY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Rule=kY;var DY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Alternative=DY;var RY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Option=RY;var FY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatory=FY;var NY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionMandatoryWithSeparator=NY;var TY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.Repetition=TY;var LY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return e}(Do);qt.RepetitionWithSeparator=LY;var OY=function(r){ka(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,or.assign)(i,(0,or.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Do);qt.Alternation=OY;var sy=function(){function r(e){this.idx=1,(0,or.assign)(this,(0,or.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();qt.Terminal=sy;function fIe(r){return(0,or.map)(r,Sd)}qt.serializeGrammar=fIe;function Sd(r){function e(s){return(0,or.map)(s,Sd)}if(r instanceof PY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,or.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof DY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof RY)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof FY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof NY)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof LY)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Sd(new sy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof TY)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof OY)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof sy){var i={type:"Terminal",name:r.terminalType.name,label:(0,gIe.tokenLabel)(r.terminalType),idx:r.idx};(0,or.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,or.isRegExp)(n)?n.source:n),i}else{if(r instanceof kY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}qt.serializeProduction=Sd});var ay=I(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.RestWalker=void 0;var jv=Kt(),In=En(),hIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,jv.forEach)(e.definition,function(n,s){var o=(0,jv.drop)(e.definition,s+1);if(n instanceof In.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof In.Terminal)i.walkTerminal(n,o,t);else if(n instanceof In.Alternative)i.walkFlat(n,o,t);else if(n instanceof In.Option)i.walkOption(n,o,t);else if(n instanceof In.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof In.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof In.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof In.Repetition)i.walkMany(n,o,t);else if(n instanceof In.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new In.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=MY(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,jv.forEach)(e.definition,function(o){var a=new In.Alternative({definition:[o]});n.walk(a,s)})},r}();oy.RestWalker=hIe;function MY(r,e,t){var i=[new In.Option({definition:[new In.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=I(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.GAstVisitor=void 0;var Ro=En(),pIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Ro.NonTerminal:return this.visitNonTerminal(t);case Ro.Alternative:return this.visitAlternative(t);case Ro.Option:return this.visitOption(t);case Ro.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Ro.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Ro.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Ro.Repetition:return this.visitRepetition(t);case Ro.Alternation:return this.visitAlternation(t);case Ro.Terminal:return this.visitTerminal(t);case Ro.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();Ay.GAstVisitor=pIe});var xd=I(Mi=>{"use strict";var dIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var vd=Kt(),Br=En(),CIe=$g();function mIe(r){return r instanceof Br.Alternative||r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionMandatory||r instanceof Br.RepetitionMandatoryWithSeparator||r instanceof Br.RepetitionWithSeparator||r instanceof Br.Terminal||r instanceof Br.Rule}Mi.isSequenceProd=mIe;function Gv(r,e){e===void 0&&(e=[]);var t=r instanceof Br.Option||r instanceof Br.Repetition||r instanceof Br.RepetitionWithSeparator;return t?!0:r instanceof Br.Alternation?(0,vd.some)(r.definition,function(i){return Gv(i,e)}):r instanceof Br.NonTerminal&&(0,vd.contains)(e,r)?!1:r instanceof Br.AbstractProduction?(r instanceof Br.NonTerminal&&e.push(r),(0,vd.every)(r.definition,function(i){return Gv(i,e)})):!1}Mi.isOptionalProd=Gv;function EIe(r){return r instanceof Br.Alternation}Mi.isBranchingProd=EIe;function IIe(r){if(r instanceof Br.NonTerminal)return"SUBRULE";if(r instanceof Br.Option)return"OPTION";if(r instanceof Br.Alternation)return"OR";if(r instanceof Br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Br.Repetition)return"MANY";if(r instanceof Br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=IIe;var KY=function(r){dIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,vd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=KY;var ly=new KY;function yIe(r){ly.reset(),r.accept(ly);var e=ly.dslMethods;return ly.reset(),e}Mi.collectMethods=yIe});var qv=I(Fo=>{"use strict";Object.defineProperty(Fo,"__esModule",{value:!0});Fo.firstForTerminal=Fo.firstForBranching=Fo.firstForSequence=Fo.first=void 0;var cy=Kt(),UY=En(),Yv=xd();function uy(r){if(r instanceof UY.NonTerminal)return uy(r.referencedRule);if(r instanceof UY.Terminal)return GY(r);if((0,Yv.isSequenceProd)(r))return HY(r);if((0,Yv.isBranchingProd)(r))return jY(r);throw Error("non exhaustive match")}Fo.first=uy;function HY(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Yv.isOptionalProd)(s),e=e.concat(uy(s)),i=i+1,n=t.length>i;return(0,cy.uniq)(e)}Fo.firstForSequence=HY;function jY(r){var e=(0,cy.map)(r.definition,function(t){return uy(t)});return(0,cy.uniq)((0,cy.flatten)(e))}Fo.firstForBranching=jY;function GY(r){return[r.terminalType]}Fo.firstForTerminal=GY});var Jv=I(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.IN=void 0;gy.IN="_~IN~_"});var zY=I(gs=>{"use strict";var wIe=gs&&gs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(gs,"__esModule",{value:!0});gs.buildInProdFollowPrefix=gs.buildBetweenProdsFollowPrefix=gs.computeAllProdsFollows=gs.ResyncFollowsWalker=void 0;var BIe=ay(),bIe=qv(),YY=Kt(),qY=Jv(),QIe=En(),JY=function(r){wIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=WY(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new QIe.Alternative({definition:o}),l=(0,bIe.first)(a);this.follows[s]=l},e}(BIe.RestWalker);gs.ResyncFollowsWalker=JY;function SIe(r){var e={};return(0,YY.forEach)(r,function(t){var i=new JY(t).startWalking();(0,YY.assign)(e,i)}),e}gs.computeAllProdsFollows=SIe;function WY(r,e){return r.name+e+qY.IN}gs.buildBetweenProdsFollowPrefix=WY;function vIe(r){var e=r.terminalType.name;return e+r.idx+qY.IN}gs.buildInProdFollowPrefix=vIe});var Pd=I(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=NA(),xIe=Kt(),$s=Kt(),Wv=En(),VY=xd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,$s.first)(t).image,l=` -but found: '`+a+"'";if(n)return o+n+l;var c=(0,$s.reduce)(e,function(p,d){return p.concat(d)},[]),u=(0,$s.map)(c,function(p){return"["+(0,$s.map)(p,function(d){return(0,ef.tokenLabel)(d)}).join(", ")+"]"}),g=(0,$s.map)(u,function(p,d){return" "+(d+1)+". "+p}),h=`one of these possible Token sequences: -`+g.join(` -`);return o+h+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,$s.first)(t).image,a=` -but found: '`+o+"'";if(i)return s+i+a;var l=(0,$s.map)(e,function(u){return"["+(0,$s.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,$s.first)(e),s=n.idx,o=(0,VY.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` -`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,$s.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in <OR"+t+"> inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,$s.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in <OR"+t+">"+(" inside <"+r.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,VY.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in <OR"+r.alternation.idx+"> inside <"+r.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: -`+("<OR"+r.alternation.idx+"> inside <"+r.topLevelRule.name+`> Rule. - has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=xIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+i+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var _Y=I(TA=>{"use strict";var PIe=TA&&TA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(TA,"__esModule",{value:!0});TA.GastRefResolverVisitor=TA.resolveGrammar=void 0;var kIe=Yn(),XY=Kt(),DIe=$g();function RIe(r,e){var t=new ZY(r,e);return t.resolveRefs(),t.errors}TA.resolveGrammar=RIe;var ZY=function(r){PIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,XY.forEach)((0,XY.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:kIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(DIe.GAstVisitor);TA.GastRefResolverVisitor=ZY});var Dd=I(Fr=>{"use strict";var Ic=Fr&&Fr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Fr,"__esModule",{value:!0});Fr.nextPossibleTokensAfter=Fr.possiblePathsFrom=Fr.NextTerminalAfterAtLeastOneSepWalker=Fr.NextTerminalAfterAtLeastOneWalker=Fr.NextTerminalAfterManySepWalker=Fr.NextTerminalAfterManyWalker=Fr.AbstractNextTerminalAfterProductionWalker=Fr.NextAfterTokenWalker=Fr.AbstractNextPossibleTokensWalker=void 0;var $Y=ay(),Lt=Kt(),FIe=qv(),kt=En(),eq=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Lt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Lt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Lt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}($Y.RestWalker);Fr.AbstractNextPossibleTokensWalker=eq;var NIe=function(r){Ic(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FIe.first)(o),this.found=!0}},e}(eq);Fr.NextAfterTokenWalker=NIe;var kd=function(r){Ic(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}($Y.RestWalker);Fr.AbstractNextTerminalAfterProductionWalker=kd;var TIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManyWalker=TIe;var LIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterManySepWalker=LIe;var OIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneWalker=OIe;var MIe=function(r){Ic(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Lt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(kd);Fr.NextTerminalAfterAtLeastOneSepWalker=MIe;function tq(r,e,t){t===void 0&&(t=[]),t=(0,Lt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Lt.drop)(r,n+1))}function o(c){var u=tq(s(c),e,t);return i.concat(u)}for(;t.length<e&&n<r.length;){var a=r[n];if(a instanceof kt.Alternative)return o(a.definition);if(a instanceof kt.NonTerminal)return o(a.definition);if(a instanceof kt.Option)i=o(a.definition);else if(a instanceof kt.RepetitionMandatory){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);return o(l)}else if(a instanceof kt.RepetitionMandatoryWithSeparator){var l=[new kt.Alternative({definition:a.definition}),new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})];return o(l)}else if(a instanceof kt.RepetitionWithSeparator){var l=a.definition.concat([new kt.Repetition({definition:[new kt.Terminal({terminalType:a.separator})].concat(a.definition)})]);i=o(l)}else if(a instanceof kt.Repetition){var l=a.definition.concat([new kt.Repetition({definition:a.definition})]);i=o(l)}else{if(a instanceof kt.Alternation)return(0,Lt.forEach)(a.definition,function(c){(0,Lt.isEmpty)(c.definition)===!1&&(i=o(c.definition))}),i;if(a instanceof kt.Terminal)t.push(a.terminalType);else throw Error("non exhaustive match")}n++}return i.push({partialPath:t,suffixDef:(0,Lt.drop)(r,n)}),i}Fr.possiblePathsFrom=tq;function KIe(r,e,t,i){var n="EXIT_NONE_TERMINAL",s=[n],o="EXIT_ALTERNATIVE",a=!1,l=e.length,c=l-i-1,u=[],g=[];for(g.push({idx:-1,def:r,ruleStack:[],occurrenceStack:[]});!(0,Lt.isEmpty)(g);){var h=g.pop();if(h===o){a&&(0,Lt.last)(g).idx<=c&&g.pop();continue}var p=h.def,d=h.idx,m=h.ruleStack,y=h.occurrenceStack;if(!(0,Lt.isEmpty)(p)){var B=p[0];if(B===n){var S={idx:d,def:(0,Lt.drop)(p),ruleStack:(0,Lt.dropRight)(m),occurrenceStack:(0,Lt.dropRight)(y)};g.push(S)}else if(B instanceof kt.Terminal)if(d<l-1){var P=d+1,F=e[P];if(t(F,B.terminalType)){var S={idx:P,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(S)}}else if(d===l-1)u.push({nextTokenType:B.terminalType,nextTokenOccurrence:B.idx,ruleStack:m,occurrenceStack:y}),a=!0;else throw Error("non exhaustive match");else if(B instanceof kt.NonTerminal){var H=(0,Lt.cloneArr)(m);H.push(B.nonTerminalName);var q=(0,Lt.cloneArr)(y);q.push(B.idx);var S={idx:d,def:B.definition.concat(s,(0,Lt.drop)(p)),ruleStack:H,occurrenceStack:q};g.push(S)}else if(B instanceof kt.Option){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var X={idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.RepetitionMandatory){var W=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionMandatoryWithSeparator){var A=new kt.Terminal({terminalType:B.separator}),W=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([W],(0,Lt.drop)(p)),S={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(S)}else if(B instanceof kt.RepetitionWithSeparator){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var A=new kt.Terminal({terminalType:B.separator}),ne=new kt.Repetition({definition:[A].concat(B.definition),idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Repetition){var _={idx:d,def:(0,Lt.drop)(p),ruleStack:m,occurrenceStack:y};g.push(_),g.push(o);var ne=new kt.Repetition({definition:B.definition,idx:B.idx}),Z=B.definition.concat([ne],(0,Lt.drop)(p)),X={idx:d,def:Z,ruleStack:m,occurrenceStack:y};g.push(X)}else if(B instanceof kt.Alternation)for(var ue=B.definition.length-1;ue>=0;ue--){var te=B.definition[ue],O={idx:d,def:te.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:d,def:B.definition.concat((0,Lt.drop)(p)),ruleStack:m,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UIe(B,d,m,y));else throw Error("non exhaustive match")}}return u}Fr.nextPossibleTokensAfter=KIe;function UIe(r,e,t,i){var n=(0,Lt.cloneArr)(t);n.push(r.name);var s=(0,Lt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Rd=I(Wt=>{"use strict";var nq=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.areTokenCategoriesNotUsed=Wt.isStrictPrefixOfPath=Wt.containsPath=Wt.getLookaheadPathsForOptionalProd=Wt.getLookaheadPathsForOr=Wt.lookAheadSequenceFromAlternatives=Wt.buildSingleAlternativeLookaheadFunction=Wt.buildAlternativesLookAheadFunc=Wt.buildLookaheadFuncForOptionalProd=Wt.buildLookaheadFuncForOr=Wt.getProdType=Wt.PROD_TYPE=void 0;var ir=Kt(),rq=Dd(),HIe=ay(),fy=_g(),LA=En(),jIe=$g(),si;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(si=Wt.PROD_TYPE||(Wt.PROD_TYPE={}));function GIe(r){if(r instanceof LA.Option)return si.OPTION;if(r instanceof LA.Repetition)return si.REPETITION;if(r instanceof LA.RepetitionMandatory)return si.REPETITION_MANDATORY;if(r instanceof LA.RepetitionMandatoryWithSeparator)return si.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof LA.RepetitionWithSeparator)return si.REPETITION_WITH_SEPARATOR;if(r instanceof LA.Alternation)return si.ALTERNATION;throw Error("non exhaustive match")}Wt.getProdType=GIe;function YIe(r,e,t,i,n,s){var o=oq(r,e,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o,i,a,n)}Wt.buildLookaheadFuncForOr=YIe;function qIe(r,e,t,i,n,s){var o=aq(r,e,n,t),a=Xv(o)?fy.tokenStructuredMatcherNoCategories:fy.tokenStructuredMatcher;return s(o[0],a,i)}Wt.buildLookaheadFuncForOptionalProd=qIe;function JIe(r,e,t,i){var n=r.length,s=(0,ir.every)(r,function(l){return(0,ir.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,ir.map)(l,function(P){return P.GATE}),u=0;u<n;u++){var g=r[u],h=g.length,p=c[u];if(p!==void 0&&p.call(this)===!1)continue;e:for(var d=0;d<h;d++){for(var m=g[d],y=m.length,B=0;B<y;B++){var S=this.LA(B+1);if(t(S,m[B])===!1)continue e}return u}}};if(s&&!i){var o=(0,ir.map)(r,function(l){return(0,ir.flatten)(l)}),a=(0,ir.reduce)(o,function(l,c,u){return(0,ir.forEach)(c,function(g){(0,ir.has)(l,g.tokenTypeIdx)||(l[g.tokenTypeIdx]=u),(0,ir.forEach)(g.categoryMatches,function(h){(0,ir.has)(l,h)||(l[h]=u)})}),l},[]);return function(){var l=this.LA(1);return a[l.tokenTypeIdx]}}else return function(){for(var l=0;l<n;l++){var c=r[l],u=c.length;e:for(var g=0;g<u;g++){for(var h=c[g],p=h.length,d=0;d<p;d++){var m=this.LA(d+1);if(t(m,h[d])===!1)continue e}return l}}}}Wt.buildAlternativesLookAheadFunc=JIe;function WIe(r,e,t){var i=(0,ir.every)(r,function(c){return c.length===1}),n=r.length;if(i&&!t){var s=(0,ir.flatten)(r);if(s.length===1&&(0,ir.isEmpty)(s[0].categoryMatches)){var o=s[0],a=o.tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===a}}else{var l=(0,ir.reduce)(s,function(c,u,g){return c[u.tokenTypeIdx]=!0,(0,ir.forEach)(u.categoryMatches,function(h){c[h]=!0}),c},[]);return function(){var c=this.LA(1);return l[c.tokenTypeIdx]===!0}}}else return function(){e:for(var c=0;c<n;c++){for(var u=r[c],g=u.length,h=0;h<g;h++){var p=this.LA(h+1);if(e(p,u[h])===!1)continue e}return!0}return!1}}Wt.buildSingleAlternativeLookaheadFunction=WIe;var zIe=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.topProd=t,s.targetOccurrence=i,s.targetProdType=n,s}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.restDef},e.prototype.checkIsTarget=function(t,i,n,s){return t.idx===this.targetOccurrence&&this.targetProdType===i?(this.restDef=n.concat(s),!0):!1},e.prototype.walkOption=function(t,i,n){this.checkIsTarget(t,si.OPTION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOne=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkAtLeastOneSep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkMany=function(t,i,n){this.checkIsTarget(t,si.REPETITION,i,n)||r.prototype.walkOption.call(this,t,i,n)},e.prototype.walkManySep=function(t,i,n){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR,i,n)||r.prototype.walkOption.call(this,t,i,n)},e}(HIe.RestWalker),sq=function(r){nq(e,r);function e(t,i,n){var s=r.call(this)||this;return s.targetOccurrence=t,s.targetProdType=i,s.targetRef=n,s.result=[],s}return e.prototype.checkIsTarget=function(t,i){t.idx===this.targetOccurrence&&this.targetProdType===i&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)},e.prototype.visitOption=function(t){this.checkIsTarget(t,si.OPTION)},e.prototype.visitRepetition=function(t){this.checkIsTarget(t,si.REPETITION)},e.prototype.visitRepetitionMandatory=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_MANDATORY_WITH_SEPARATOR)},e.prototype.visitRepetitionWithSeparator=function(t){this.checkIsTarget(t,si.REPETITION_WITH_SEPARATOR)},e.prototype.visitAlternation=function(t){this.checkIsTarget(t,si.ALTERNATION)},e}(jIe.GAstVisitor);function iq(r){for(var e=new Array(r),t=0;t<r;t++)e[t]=[];return e}function zv(r){for(var e=[""],t=0;t<r.length;t++){for(var i=r[t],n=[],s=0;s<e.length;s++){var o=e[s];n.push(o+"_"+i.tokenTypeIdx);for(var a=0;a<i.categoryMatches.length;a++){var l="_"+i.categoryMatches[a];n.push(o+l)}}e=n}return e}function VIe(r,e,t){for(var i=0;i<r.length;i++)if(i!==t)for(var n=r[i],s=0;s<e.length;s++){var o=e[s];if(n[o]===!0)return!1}return!0}function Vv(r,e){for(var t=(0,ir.map)(r,function(u){return(0,rq.possiblePathsFrom)([u],1)}),i=iq(t.length),n=(0,ir.map)(t,function(u){var g={};return(0,ir.forEach)(u,function(h){var p=zv(h.partialPath);(0,ir.forEach)(p,function(d){g[d]=!0})}),g}),s=t,o=1;o<=e;o++){var a=s;s=iq(a.length);for(var l=function(u){for(var g=a[u],h=0;h<g.length;h++){var p=g[h].partialPath,d=g[h].suffixDef,m=zv(p),y=VIe(n,m,u);if(y||(0,ir.isEmpty)(d)||p.length===e){var B=i[u];if(Aq(B,p)===!1){B.push(p);for(var S=0;S<m.length;S++){var P=m[S];n[u][P]=!0}}}else{var F=(0,rq.possiblePathsFrom)(d,o+1,p);s[u]=s[u].concat(F),(0,ir.forEach)(F,function(H){var q=zv(H.partialPath);(0,ir.forEach)(q,function(_){n[u][_]=!0})})}}},c=0;c<a.length;c++)l(c)}return i}Wt.lookAheadSequenceFromAlternatives=Vv;function oq(r,e,t,i){var n=new sq(r,si.ALTERNATION,i);return e.accept(n),Vv(n.result,t)}Wt.getLookaheadPathsForOr=oq;function aq(r,e,t,i){var n=new sq(r,t);e.accept(n);var s=n.result,o=new zIe(e,r,t),a=o.startWalking(),l=new LA.Alternative({definition:s}),c=new LA.Alternative({definition:a});return Vv([l,c],i)}Wt.getLookaheadPathsForOptionalProd=aq;function Aq(r,e){e:for(var t=0;t<r.length;t++){var i=r[t];if(i.length===e.length){for(var n=0;n<i.length;n++){var s=e[n],o=i[n],a=s===o||o.categoryMatchesMap[s.tokenTypeIdx]!==void 0;if(a===!1)continue e}return!0}}return!1}Wt.containsPath=Aq;function XIe(r,e){return r.length<e.length&&(0,ir.every)(r,function(t,i){var n=e[i];return t===n||n.categoryMatchesMap[t.tokenTypeIdx]})}Wt.isStrictPrefixOfPath=XIe;function Xv(r){return(0,ir.every)(r,function(e){return(0,ir.every)(e,function(t){return(0,ir.every)(t,function(i){return(0,ir.isEmpty)(i.categoryMatches)})})})}Wt.areTokenCategoriesNotUsed=Xv});var rx=I(Jt=>{"use strict";var Zv=Jt&&Jt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Jt,"__esModule",{value:!0});Jt.checkPrefixAlternativesAmbiguities=Jt.validateSomeNonEmptyLookaheadPath=Jt.validateTooManyAlts=Jt.RepetionCollector=Jt.validateAmbiguousAlternationAlternatives=Jt.validateEmptyOrAlternative=Jt.getFirstNoneTerminal=Jt.validateNoLeftRecursion=Jt.validateRuleIsOverridden=Jt.validateRuleDoesNotAlreadyExist=Jt.OccurrenceValidationCollector=Jt.identifyProductionForDuplicates=Jt.validateGrammar=void 0;var _t=Kt(),br=Kt(),No=Yn(),_v=xd(),tf=Rd(),ZIe=Dd(),eo=En(),$v=$g();function _Ie(r,e,t,i,n){var s=_t.map(r,function(p){return $Ie(p,i)}),o=_t.map(r,function(p){return ex(p,p,i)}),a=[],l=[],c=[];(0,br.every)(o,br.isEmpty)&&(a=(0,br.map)(r,function(p){return fq(p,i)}),l=(0,br.map)(r,function(p){return hq(p,e,i)}),c=Cq(r,e,i));var u=rye(r,t,i),g=(0,br.map)(r,function(p){return dq(p,i)}),h=(0,br.map)(r,function(p){return gq(p,r,n,i)});return _t.flatten(s.concat(c,o,a,l,u,g,h))}Jt.validateGrammar=_Ie;function $Ie(r,e){var t=new uq;r.accept(t);var i=t.allProductions,n=_t.groupBy(i,lq),s=_t.pick(n,function(a){return a.length>1}),o=_t.map(_t.values(s),function(a){var l=_t.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:No.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},h=cq(l);return h&&(g.parameter=h),g});return o}function lq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+cq(r)}Jt.identifyProductionForDuplicates=lq;function cq(r){return r instanceof eo.Terminal?r.terminalType.name:r instanceof eo.NonTerminal?r.nonTerminalName:""}var uq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.OccurrenceValidationCollector=uq;function gq(r,e,t,i){var n=[],s=(0,br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:No.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Jt.validateRuleDoesNotAlreadyExist=gq;function eye(r,e,t){var i=[],n;return _t.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:No.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Jt.validateRuleIsOverridden=eye;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Fd(e.definition);if(_t.isEmpty(s))return[];var o=r.name,a=_t.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:No.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=_t.difference(s,i.concat([r])),c=_t.map(l,function(u){var g=_t.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(_t.flatten(c))}Jt.validateNoLeftRecursion=ex;function Fd(r){var e=[];if(_t.isEmpty(r))return e;var t=_t.first(r);if(t instanceof eo.NonTerminal)e.push(t.referencedRule);else if(t instanceof eo.Alternative||t instanceof eo.Option||t instanceof eo.RepetitionMandatory||t instanceof eo.RepetitionMandatoryWithSeparator||t instanceof eo.RepetitionWithSeparator||t instanceof eo.Repetition)e=e.concat(Fd(t.definition));else if(t instanceof eo.Alternation)e=_t.flatten(_t.map(t.definition,function(o){return Fd(o.definition)}));else if(!(t instanceof eo.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=_t.drop(r);return e.concat(Fd(s))}else return e}Jt.getFirstNoneTerminal=Fd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){var a=_t.dropRight(o.definition),l=_t.map(a,function(c,u){var g=(0,ZIe.nextPossibleTokensAfter)([c],[],null,1);return _t.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:No.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(_t.compact(l))},[]);return n}Jt.validateEmptyOrAlternative=fq;function hq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=_t.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=tye(u,a,r,t),h=mq(u,a,r,t);return o.concat(g,h)},[]);return s}Jt.validateAmbiguousAlternationAlternatives=hq;var pq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Jt.RepetionCollector=pq;function dq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=_t.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:No.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Jt.validateTooManyAlts=dq;function Cq(r,e,t){var i=[];return(0,br.forEach)(r,function(n){var s=new pq;n.accept(s);var o=s.allProductions;(0,br.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),h=g[0];if((0,br.isEmpty)((0,br.flatten)(h))){var p=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:p,type:No.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Jt.validateSomeNonEmptyLookaheadPath=Cq;function tye(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,br.forEach)(l,function(u){var g=[c];(0,br.forEach)(r,function(h,p){c!==p&&(0,tf.containsPath)(h,u)&&e.definition[p].ignoreAmbiguities!==!0&&g.push(p)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=_t.map(s,function(a){var l=(0,br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:No.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mq(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(o,a,l){var c=(0,br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,br.findAll)(s,function(h){return e.definition[h.idx].ignoreAmbiguities!==!0&&h.idx<l&&(0,tf.isStrictPrefixOfPath)(h.path,c)}),g=(0,br.map)(u,function(h){var p=[h.idx+1,l+1],d=e.idx===0?"":e.idx,m=i.buildAlternationPrefixAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:p,prefixPath:h.path});return{message:m,type:No.ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,ruleName:t.name,occurrence:d,alternatives:p}});n=n.concat(g)}}),n}Jt.checkPrefixAlternativesAmbiguities=mq;function rye(r,e,t){var i=[],n=(0,br.map)(e,function(s){return s.name});return(0,br.forEach)(r,function(s){var o=s.name;if((0,br.contains)(n,o)){var a=t.buildNamespaceConflictError(s);i.push({message:a,type:No.ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:o})}}),i}});var Iq=I(rf=>{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Kt(),iye=_Y(),nye=rx(),Eq=Pd();function sye(r){r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,iye.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=sye;function oye(r){return r=(0,ix.defaults)(r,{errMsgProvider:Eq.defaultGrammarValidatorErrorProvider}),(0,nye.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=oye});var nf=I(yn=>{"use strict";var Nd=yn&&yn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(yn,"__esModule",{value:!0});yn.EarlyExitException=yn.NotAllInputParsedException=yn.NoViableAltException=yn.MismatchedTokenException=yn.isRecognitionException=void 0;var aye=Kt(),yq="MismatchedTokenException",wq="NoViableAltException",Bq="EarlyExitException",bq="NotAllInputParsedException",Qq=[yq,wq,Bq,bq];Object.freeze(Qq);function Aye(r){return(0,aye.contains)(Qq,r.name)}yn.isRecognitionException=Aye;var hy=function(r){Nd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=yq,s}return e}(hy);yn.MismatchedTokenException=lye;var cye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=wq,s}return e}(hy);yn.NoViableAltException=cye;var uye=function(r){Nd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=bq,n}return e}(hy);yn.NotAllInputParsedException=uye;var gye=function(r){Nd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Bq,s}return e}(hy);yn.EarlyExitException=gye});var sx=I(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var py=NA(),fs=Kt(),fye=nf(),hye=Jv(),pye=Yn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var dye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,fs.has)(e,"recoveryEnabled")?e.recoveryEnabled:pye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sq)},r.prototype.getTokenToInsert=function(e){var t=(0,py.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),h=function(){var p=s.LA(0),d=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:p,ruleName:s.getCurrRuleFullName()}),m=new fye.MismatchedTokenException(d,u,s.LA(0));m.resyncedTokens=(0,fs.dropRight)(l),s.SAVE_ERROR(m)};!c;)if(this.tokenMatcher(g,n)){h();return}else if(i.call(this)){h(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,fs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,fs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,fs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,fs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,fs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,fs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,fs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[py.EOF];var t=e.ruleName+e.idxInCallingRule+hye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,py.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,fs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,fs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,fs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=dye;function Sq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var h=l.token,p=l.occurrence,d=l.isEndOfRule;this.RULE_STACK.length===1&&d&&h===void 0&&(h=py.EOF,p=1),this.shouldInRepetitionRecoveryBeTried(h,p,o)&&this.tryInRepetitionRecovery(r,e,t,h)}Ki.attemptInRepetitionRecovery=Sq});var dy=I(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.getKeyForAutomaticLookahead=Gt.AT_LEAST_ONE_SEP_IDX=Gt.MANY_SEP_IDX=Gt.AT_LEAST_ONE_IDX=Gt.MANY_IDX=Gt.OPTION_IDX=Gt.OR_IDX=Gt.BITS_FOR_ALT_IDX=Gt.BITS_FOR_RULE_IDX=Gt.BITS_FOR_OCCURRENCE_IDX=Gt.BITS_FOR_METHOD_TYPE=void 0;Gt.BITS_FOR_METHOD_TYPE=4;Gt.BITS_FOR_OCCURRENCE_IDX=8;Gt.BITS_FOR_RULE_IDX=12;Gt.BITS_FOR_ALT_IDX=8;Gt.OR_IDX=1<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.OPTION_IDX=2<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.MANY_IDX=3<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.AT_LEAST_ONE_IDX=4<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.MANY_SEP_IDX=5<<Gt.BITS_FOR_OCCURRENCE_IDX;Gt.AT_LEAST_ONE_SEP_IDX=6<<Gt.BITS_FOR_OCCURRENCE_IDX;function Cye(r,e,t){return t|e|r}Gt.getKeyForAutomaticLookahead=Cye;var Met=32-Gt.BITS_FOR_ALT_IDX});var xq=I(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.LooksAhead=void 0;var Ra=Rd(),to=Kt(),vq=Yn(),Fa=dy(),yc=xd(),mye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,to.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,to.has)(e,"maxLookahead")?e.maxLookahead:vq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,to.isES2015MapSupported)()?new Map:[],(0,to.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,to.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,yc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,to.forEach)(s,function(g){var h=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,yc.getProductionDslName)(g)+h,function(){var p=(0,Ra.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),d=(0,Fa.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Fa.OR_IDX,g.idx);t.setLaFuncCache(d,p)})}),(0,to.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_IDX,Ra.PROD_TYPE.REPETITION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Fa.OPTION_IDX,Ra.PROD_TYPE.OPTION,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Fa.AT_LEAST_ONE_SEP_IDX,Ra.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))}),(0,to.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Fa.MANY_SEP_IDX,Ra.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,yc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Ra.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Fa.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Ra.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Ra.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Fa.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();Cy.LooksAhead=mye});var Pq=I(To=>{"use strict";Object.defineProperty(To,"__esModule",{value:!0});To.addNoneTerminalToCst=To.addTerminalToCst=To.setNodeLocationFull=To.setNodeLocationOnlyOffset=void 0;function Eye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset)}To.setNodeLocationOnlyOffset=Eye;function Iye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.startColumn=e.startColumn,r.startLine=e.startLine,r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine):r.endOffset<e.endOffset&&(r.endOffset=e.endOffset,r.endColumn=e.endColumn,r.endLine=e.endLine)}To.setNodeLocationFull=Iye;function yye(r,e,t){r.children[t]===void 0?r.children[t]=[e]:r.children[t].push(e)}To.addTerminalToCst=yye;function wye(r,e,t){r.children[e]===void 0?r.children[e]=[t]:r.children[e].push(t)}To.addNoneTerminalToCst=wye});var ox=I(OA=>{"use strict";Object.defineProperty(OA,"__esModule",{value:!0});OA.defineNameProp=OA.functionName=OA.classNameFromInstance=void 0;var Bye=Kt();function bye(r){return Dq(r.constructor)}OA.classNameFromInstance=bye;var kq="name";function Dq(r){var e=r.name;return e||"anonymous"}OA.functionName=Dq;function Qye(r,e){var t=Object.getOwnPropertyDescriptor(r,kq);return(0,Bye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,kq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}OA.defineNameProp=Qye});var Lq=I(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.validateRedundantMethods=vi.validateMissingCstMethods=vi.validateVisitor=vi.CstVisitorDefinitionError=vi.createBaseVisitorConstructorWithDefaults=vi.createBaseSemanticVisitorConstructor=vi.defaultVisit=void 0;var hs=Kt(),Td=ox();function Rq(r,e){for(var t=(0,hs.keys)(r),i=t.length,n=0;n<i;n++)for(var s=t[n],o=r[s],a=o.length,l=0;l<a;l++){var c=o[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,e)}}vi.defaultVisit=Rq;function Sye(r,e){var t=function(){};(0,Td.defineNameProp)(t,r+"BaseSemantics");var i={visit:function(n,s){if((0,hs.isArray)(n)&&(n=n[0]),!(0,hs.isUndefined)(n))return this[n.name](n.children,s)},validateVisitor:function(){var n=Fq(this,e);if(!(0,hs.isEmpty)(n)){var s=(0,hs.map)(n,function(o){return o.msg});throw Error("Errors Detected in CST Visitor <"+(0,Td.functionName)(this.constructor)+`>: - `+(""+s.join(` - -`).replace(/\n/g,` - `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}vi.createBaseSemanticVisitorConstructor=Sye;function vye(r,e,t){var i=function(){};(0,Td.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,hs.forEach)(e,function(s){n[s]=Rq}),i.prototype=n,i.prototype.constructor=i,i}vi.createBaseVisitorConstructorWithDefaults=vye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=vi.CstVisitorDefinitionError||(vi.CstVisitorDefinitionError={}));function Fq(r,e){var t=Nq(r,e),i=Tq(r,e);return t.concat(i)}vi.validateVisitor=Fq;function Nq(r,e){var t=(0,hs.map)(e,function(i){if(!(0,hs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,hs.compact)(t)}vi.validateMissingCstMethods=Nq;var xye=["constructor","visit","validateVisitor"];function Tq(r,e){var t=[];for(var i in r)(0,hs.isFunction)(r[i])&&!(0,hs.contains)(xye,i)&&!(0,hs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Td.functionName)(r.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:ax.REDUNDANT_METHOD,methodName:i});return t}vi.validateRedundantMethods=Tq});var Mq=I(my=>{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.TreeBuilder=void 0;var sf=Pq(),Xr=Kt(),Oq=Lq(),Pye=Yn(),kye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Xr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Pye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Xr.NOOP,this.cstFinallyStateUpdate=Xr.NOOP,this.cstPostTerminal=Xr.NOOP,this.cstPostNonTerminal=Xr.NOOP,this.cstPostRule=Xr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Xr.NOOP,this.setNodeLocationFromNode=Xr.NOOP,this.cstPostRule=Xr.NOOP,this.setInitialNodeLocation=Xr.NOOP;else throw Error('Invalid <nodeLocationTracking> config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Xr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oq.createBaseSemanticVisitorConstructor)(this.className,(0,Xr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Xr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Xr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();my.TreeBuilder=kye});var Uq=I(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.LexerAdapter=void 0;var Kq=Yn(),Dye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Kq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Kq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Ey.LexerAdapter=Dye});var jq=I(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.RecognizerApi=void 0;var Hq=Kt(),Rye=nf(),Ax=Yn(),Fye=Pd(),Nye=rx(),Tye=En(),Lye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Hq.contains)(this.definedRulesNames,e)){var n=Fye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Nye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,Rye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,Tye.serializeGrammar)((0,Hq.values)(this.gastProductionsCache))},r}();Iy.RecognizerApi=Lye});var Jq=I(wy=>{"use strict";Object.defineProperty(wy,"__esModule",{value:!0});wy.RecognizerEngine=void 0;var Pr=Kt(),qn=dy(),yy=nf(),Gq=Rd(),of=Dd(),Yq=Yn(),Oye=sx(),qq=NA(),Ld=_g(),Mye=ox(),Kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Mye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Ld.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Ld.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=qq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Ld.tokenStructuredMatcherNoCategories:Ld.tokenStructuredMatcher,(0,Ld.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Yq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Yq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<<qn.BITS_FOR_METHOD_TYPE+qn.BITS_FOR_OCCURRENCE_IDX;this.ruleShortNameIdx++,this.shortRuleNameToFull[o]=e,this.fullRuleNameToShort[e]=o;function a(u){try{if(this.outputCst===!0){t.apply(this,u);var g=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(g),g}else return t.apply(this,u)}catch(h){return this.invokeRuleCatch(h,n,s)}finally{this.ruleFinallyStateUpdate()}}var l=function(u,g){return u===void 0&&(u=0),this.ruleInvocationStateUpdate(o,e,u),a.call(this,g)},c="ruleName";return l[c]=e,l.originalGrammarAction=t,l},r.prototype.invokeRuleCatch=function(e,t,i){var n=this.RULE_STACK.length===1,s=t&&!this.isBackTracking()&&this.recoveryEnabled;if((0,yy.isRecognitionException)(e)){var o=e;if(s){var a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(o.resyncedTokens=this.reSyncTo(a),this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return i();else{if(this.outputCst){var l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,o.partialCstResult=l}throw o}}else{if(n)return this.moveToTerminatedState(),i();throw o}}else throw e},r.prototype.optionInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OPTION_IDX,t);return this.optionInternalLogic(e,t,i)},r.prototype.optionInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(e.DEF!==void 0){if(o=e.DEF,a=e.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=e;if(s.call(this)===!0)return o.call(this)},r.prototype.atLeastOneInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_IDX,e);return this.atLeastOneInternalLogic(e,t,i)},r.prototype.atLeastOneInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;if(s.call(this)===!0)for(var c=this.doSingleRepetition(o);s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);else throw this.raiseEarlyExitException(e,Gq.PROD_TYPE.REPETITION_MANDATORY,t.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],s,qn.AT_LEAST_ONE_IDX,e,of.NextTerminalAfterAtLeastOneWalker)},r.prototype.atLeastOneSepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.AT_LEAST_ONE_SEP_IDX,e);this.atLeastOneSepFirstInternalLogic(e,t,i)},r.prototype.atLeastOneSepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterAtLeastOneSepWalker],l,qn.AT_LEAST_ONE_SEP_IDX,e,of.NextTerminalAfterAtLeastOneSepWalker)}else throw this.raiseEarlyExitException(e,Gq.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG)},r.prototype.manyInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_IDX,e);return this.manyInternalLogic(e,t,i)},r.prototype.manyInternalLogic=function(e,t,i){var n=this,s=this.getLaFuncFromCache(i),o,a;if(t.DEF!==void 0){if(o=t.DEF,a=t.GATE,a!==void 0){var l=s;s=function(){return a.call(n)&&l.call(n)}}}else o=t;for(var c=!0;s.call(this)===!0&&c===!0;)c=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],s,qn.MANY_IDX,e,of.NextTerminalAfterManyWalker,c)},r.prototype.manySepFirstInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.MANY_SEP_IDX,e);this.manySepFirstInternalLogic(e,t,i)},r.prototype.manySepFirstInternalLogic=function(e,t,i){var n=this,s=t.DEF,o=t.SEP,a=this.getLaFuncFromCache(i);if(a.call(this)===!0){s.call(this);for(var l=function(){return n.tokenMatcher(n.LA(1),o)};this.tokenMatcher(this.LA(1),o)===!0;)this.CONSUME(o),s.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,o,l,s,of.NextTerminalAfterManySepWalker],l,qn.MANY_SEP_IDX,e,of.NextTerminalAfterManySepWalker)}},r.prototype.repetitionSepSecondInternal=function(e,t,i,n,s){for(;i();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,i,n,s],i,qn.AT_LEAST_ONE_SEP_IDX,e,s)},r.prototype.doSingleRepetition=function(e){var t=this.getLexerPosition();e.call(this);var i=this.getLexerPosition();return i>t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new yy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,yy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new yy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Oye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),qq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();wy.RecognizerEngine=Kye});var zq=I(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.ErrorHandler=void 0;var lx=nf(),cx=Kt(),Wq=Rd(),Uye=Yn(),Hye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Uye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,Wq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,Wq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();By.ErrorHandler=Hye});var Zq=I(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ContentAssist=void 0;var Vq=Dd(),Xq=Kt(),jye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Xq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Vq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Xq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Vq.NextAfterTokenWalker(n,e).startWalking();return s},r}();by.ContentAssist=jye});var sJ=I(vy=>{"use strict";Object.defineProperty(vy,"__esModule",{value:!0});vy.GastRecorder=void 0;var wn=Kt(),Lo=En(),Gye=bd(),tJ=_g(),rJ=NA(),Yye=Yn(),qye=dy(),Sy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(Sy);var _q=!0,$q=Math.pow(2,qye.BITS_FOR_OCCURRENCE_IDX)-1,iJ=(0,rJ.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Gye.Lexer.NA});(0,tJ.augmentTokenTypes)([iJ]);var nJ=(0,rJ.createTokenInstance)(iJ,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nJ);var Jye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Wye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Yye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Lo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Od.call(this,Lo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionMandatoryWithSeparator,t,e,_q)},r.prototype.manyInternalRecord=function(e,t){Od.call(this,Lo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Od.call(this,Lo.RepetitionWithSeparator,t,e,_q)},r.prototype.orInternalRecord=function(e,t){return zye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Qy(t),!e||(0,wn.has)(e,"ruleName")===!1){var n=new Error("<SUBRULE"+eJ(t)+"> argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=e.ruleName,a=new Lo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Jye:Sy},r.prototype.consumeInternalRecord=function(e,t,i){if(Qy(t),!(0,tJ.hasShortKeyProperty)(e)){var n=new Error("<CONSUME"+eJ(t)+"> argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,wn.peek)(this.recordingProdStack),o=new Lo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nJ},r}();vy.GastRecorder=Wye;function Od(r,e,t,i){i===void 0&&(i=!1),Qy(t);var n=(0,wn.peek)(this.recordingProdStack),s=(0,wn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,wn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),Sy}function zye(r,e){var t=this;Qy(e);var i=(0,wn.peek)(this.recordingProdStack),n=(0,wn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Lo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,wn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,wn.some)(s,function(l){return(0,wn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,wn.forEach)(s,function(l){var c=new Lo.Alternative({definition:[]});o.definition.push(c),(0,wn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,wn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),Sy}function eJ(r){return r===0?"":""+r}function Qy(r){if(r<0||r>$q){var e=new Error("Invalid DSL Method idx value: <"+r+`> - `+("Idx value must be a none negative value smaller than "+($q+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var aJ=I(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.PerformanceTracer=void 0;var oJ=Kt(),Vye=Yn(),Xye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,oJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Vye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(i+"--> <"+e+">");var n=(0,oJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(i+"<-- <"+e+"> time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();xy.PerformanceTracer=Xye});var AJ=I(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.applyMixins=void 0;function Zye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Py.applyMixins=Zye});var Yn=I(hr=>{"use strict";var uJ=hr&&hr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(hr,"__esModule",{value:!0});hr.EmbeddedActionsParser=hr.CstParser=hr.Parser=hr.EMPTY_ALT=hr.ParserDefinitionErrorType=hr.DEFAULT_RULE_CONFIG=hr.DEFAULT_PARSER_CONFIG=hr.END_OF_FILE=void 0;var en=Kt(),_ye=zY(),lJ=NA(),gJ=Pd(),cJ=Iq(),$ye=sx(),ewe=xq(),twe=Mq(),rwe=Uq(),iwe=jq(),nwe=Jq(),swe=zq(),owe=Zq(),awe=sJ(),Awe=aJ(),lwe=AJ();hr.END_OF_FILE=(0,lJ.createTokenInstance)(lJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(hr.END_OF_FILE);hr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});hr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cwe=hr.ParserDefinitionErrorType||(hr.ParserDefinitionErrorType={}));function uwe(r){return r===void 0&&(r=void 0),function(){return r}}hr.EMPTY_ALT=uwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated. - Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:hr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,cJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,cJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:gJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,_ye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: - `+t.join(` -------------------------------- -`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();hr.Parser=ky;(0,lwe.applyMixins)(ky,[$ye.Recoverable,ewe.LooksAhead,twe.TreeBuilder,rwe.LexerAdapter,nwe.RecognizerEngine,iwe.RecognizerApi,swe.ErrorHandler,owe.ContentAssist,awe.GastRecorder,Awe.PerformanceTracer]);var gwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);hr.CstParser=gwe;var fwe=function(r){uJ(e,r);function e(t,i){i===void 0&&(i=hr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);hr.EmbeddedActionsParser=fwe});var hJ=I(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.createSyntaxDiagramsCode=void 0;var fJ=kv();function hwe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+fJ.VERSION+"/diagrams/diagrams.css":s,a=` -<!-- This is a generated file --> -<!DOCTYPE html> -<meta charset="utf-8"> -<style> - body { - background-color: hsl(30, 20%, 95%) - } -</style> - -`,l=` -<link rel='stylesheet' href='`+o+`'> -`,c=` -<script src='`+n+`vendor/railroad-diagrams.js'><\/script> -<script src='`+n+`src/diagrams_builder.js'><\/script> -<script src='`+n+`src/diagrams_behavior.js'><\/script> -<script src='`+n+`src/main.js'><\/script> -`,u=` -<div id="diagrams" align="center"></div> -`,g=` -<script> - window.serializedGrammar = `+JSON.stringify(r,null," ")+`; -<\/script> -`,h=` -<script> - var diagramsDiv = document.getElementById("diagrams"); - main.drawDiagramsFromSerializedGrammar(serializedGrammar, diagramsDiv); -<\/script> -`;return a+l+c+u+g+h}Dy.createSyntaxDiagramsCode=hwe});var CJ=I(qe=>{"use strict";Object.defineProperty(qe,"__esModule",{value:!0});qe.Parser=qe.createSyntaxDiagramsCode=qe.clearCache=qe.GAstVisitor=qe.serializeProduction=qe.serializeGrammar=qe.Terminal=qe.Rule=qe.RepetitionWithSeparator=qe.RepetitionMandatoryWithSeparator=qe.RepetitionMandatory=qe.Repetition=qe.Option=qe.NonTerminal=qe.Alternative=qe.Alternation=qe.defaultLexerErrorProvider=qe.NoViableAltException=qe.NotAllInputParsedException=qe.MismatchedTokenException=qe.isRecognitionException=qe.EarlyExitException=qe.defaultParserErrorProvider=qe.tokenName=qe.tokenMatcher=qe.tokenLabel=qe.EOF=qe.createTokenInstance=qe.createToken=qe.LexerDefinitionErrorType=qe.Lexer=qe.EMPTY_ALT=qe.ParserDefinitionErrorType=qe.EmbeddedActionsParser=qe.CstParser=qe.VERSION=void 0;var pwe=kv();Object.defineProperty(qe,"VERSION",{enumerable:!0,get:function(){return pwe.VERSION}});var Ry=Yn();Object.defineProperty(qe,"CstParser",{enumerable:!0,get:function(){return Ry.CstParser}});Object.defineProperty(qe,"EmbeddedActionsParser",{enumerable:!0,get:function(){return Ry.EmbeddedActionsParser}});Object.defineProperty(qe,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return Ry.ParserDefinitionErrorType}});Object.defineProperty(qe,"EMPTY_ALT",{enumerable:!0,get:function(){return Ry.EMPTY_ALT}});var pJ=bd();Object.defineProperty(qe,"Lexer",{enumerable:!0,get:function(){return pJ.Lexer}});Object.defineProperty(qe,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return pJ.LexerDefinitionErrorType}});var af=NA();Object.defineProperty(qe,"createToken",{enumerable:!0,get:function(){return af.createToken}});Object.defineProperty(qe,"createTokenInstance",{enumerable:!0,get:function(){return af.createTokenInstance}});Object.defineProperty(qe,"EOF",{enumerable:!0,get:function(){return af.EOF}});Object.defineProperty(qe,"tokenLabel",{enumerable:!0,get:function(){return af.tokenLabel}});Object.defineProperty(qe,"tokenMatcher",{enumerable:!0,get:function(){return af.tokenMatcher}});Object.defineProperty(qe,"tokenName",{enumerable:!0,get:function(){return af.tokenName}});var dwe=Pd();Object.defineProperty(qe,"defaultParserErrorProvider",{enumerable:!0,get:function(){return dwe.defaultParserErrorProvider}});var Md=nf();Object.defineProperty(qe,"EarlyExitException",{enumerable:!0,get:function(){return Md.EarlyExitException}});Object.defineProperty(qe,"isRecognitionException",{enumerable:!0,get:function(){return Md.isRecognitionException}});Object.defineProperty(qe,"MismatchedTokenException",{enumerable:!0,get:function(){return Md.MismatchedTokenException}});Object.defineProperty(qe,"NotAllInputParsedException",{enumerable:!0,get:function(){return Md.NotAllInputParsedException}});Object.defineProperty(qe,"NoViableAltException",{enumerable:!0,get:function(){return Md.NoViableAltException}});var Cwe=Uv();Object.defineProperty(qe,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return Cwe.defaultLexerErrorProvider}});var Oo=En();Object.defineProperty(qe,"Alternation",{enumerable:!0,get:function(){return Oo.Alternation}});Object.defineProperty(qe,"Alternative",{enumerable:!0,get:function(){return Oo.Alternative}});Object.defineProperty(qe,"NonTerminal",{enumerable:!0,get:function(){return Oo.NonTerminal}});Object.defineProperty(qe,"Option",{enumerable:!0,get:function(){return Oo.Option}});Object.defineProperty(qe,"Repetition",{enumerable:!0,get:function(){return Oo.Repetition}});Object.defineProperty(qe,"RepetitionMandatory",{enumerable:!0,get:function(){return Oo.RepetitionMandatory}});Object.defineProperty(qe,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionMandatoryWithSeparator}});Object.defineProperty(qe,"RepetitionWithSeparator",{enumerable:!0,get:function(){return Oo.RepetitionWithSeparator}});Object.defineProperty(qe,"Rule",{enumerable:!0,get:function(){return Oo.Rule}});Object.defineProperty(qe,"Terminal",{enumerable:!0,get:function(){return Oo.Terminal}});var dJ=En();Object.defineProperty(qe,"serializeGrammar",{enumerable:!0,get:function(){return dJ.serializeGrammar}});Object.defineProperty(qe,"serializeProduction",{enumerable:!0,get:function(){return dJ.serializeProduction}});var mwe=$g();Object.defineProperty(qe,"GAstVisitor",{enumerable:!0,get:function(){return mwe.GAstVisitor}});function Ewe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. - It performs no action other than printing this message. - Please avoid using it as it will be completely removed in the future`)}qe.clearCache=Ewe;var Iwe=hJ();Object.defineProperty(qe,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return Iwe.createSyntaxDiagramsCode}});var ywe=function(){function r(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return r}();qe.Parser=ywe});var IJ=I((rtt,EJ)=>{var Fy=CJ(),Na=Fy.createToken,mJ=Fy.tokenMatcher,ux=Fy.Lexer,wwe=Fy.EmbeddedActionsParser;EJ.exports=r=>{let e=Na({name:"LogicalOperator",pattern:ux.NA}),t=Na({name:"Or",pattern:/\|/,categories:e}),i=Na({name:"Xor",pattern:/\^/,categories:e}),n=Na({name:"And",pattern:/&/,categories:e}),s=Na({name:"Not",pattern:/!/}),o=Na({name:"LParen",pattern:/\(/}),a=Na({name:"RParen",pattern:/\)/}),l=Na({name:"Query",pattern:r}),u=[Na({name:"WhiteSpace",pattern:/\s+/,group:ux.SKIPPED}),t,i,n,o,a,s,e,l],g=new ux(u);class h extends wwe{constructor(d){super(u),this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let y=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let B=y,S=this.CONSUME(e),P=this.SUBRULE2(this.atomicExpression);mJ(S,t)?y=F=>B(F)||P(F):mJ(S,i)?y=F=>!!(B(F)^P(F)):y=F=>B(F)&&P(F)}),y}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:m}=this.CONSUME(l);return y=>y(m)}},{ALT:()=>{this.CONSUME(s);let m=this.SUBRULE(this.atomicExpression);return y=>!m(y)}}])),this.RULE("parenthesisExpression",()=>{let m;return this.CONSUME(o),m=this.SUBRULE(this.expression),this.CONSUME(a),m}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:h}}});var yJ=I(Ny=>{var Bwe=IJ();Ny.makeParser=(r=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:t}=Bwe(r),i=new t;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};Ny.parse=Ny.makeParser()});var BJ=I((ntt,wJ)=>{"use strict";wJ.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var gx=I((stt,QJ)=>{var Kd=BJ(),bJ={};for(let r of Object.keys(Kd))bJ[Kd[r]]=r;var st={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};QJ.exports=st;for(let r of Object.keys(st)){if(!("channels"in st[r]))throw new Error("missing channels property: "+r);if(!("labels"in st[r]))throw new Error("missing channel labels property: "+r);if(st[r].labels.length!==st[r].channels)throw new Error("channel and label counts mismatch: "+r);let{channels:e,labels:t}=st[r];delete st[r].channels,delete st[r].labels,Object.defineProperty(st[r],"channels",{value:e}),Object.defineProperty(st[r],"labels",{value:t})}st.rgb.hsl=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(e,t,i),s=Math.max(e,t,i),o=s-n,a,l;s===n?a=0:e===s?a=(t-i)/o:t===s?a=2+(i-e)/o:i===s&&(a=4+(e-t)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};st.rgb.hsv=function(r){let e,t,i,n,s,o=r[0]/255,a=r[1]/255,l=r[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(h){return(c-h)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),t=g(a),i=g(l),o===c?n=i-t:a===c?n=1/3+e-i:l===c&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};st.rgb.hwb=function(r){let e=r[0],t=r[1],i=r[2],n=st.rgb.hsl(r)[0],s=1/255*Math.min(e,Math.min(t,i));return i=1-1/255*Math.max(e,Math.max(t,i)),[n,s*100,i*100]};st.rgb.cmyk=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.min(1-e,1-t,1-i),s=(1-e-n)/(1-n)||0,o=(1-t-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function bwe(r,e){return(r[0]-e[0])**2+(r[1]-e[1])**2+(r[2]-e[2])**2}st.rgb.keyword=function(r){let e=bJ[r];if(e)return e;let t=1/0,i;for(let n of Object.keys(Kd)){let s=Kd[n],o=bwe(r,s);o<t&&(t=o,i=n)}return i};st.keyword.rgb=function(r){return Kd[r]};st.rgb.xyz=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255;e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+t*.3576+i*.1805,s=e*.2126+t*.7152+i*.0722,o=e*.0193+t*.1192+i*.9505;return[n*100,s*100,o*100]};st.rgb.lab=function(r){let e=st.rgb.xyz(r),t=e[0],i=e[1],n=e[2];t/=95.047,i/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(t-i),a=200*(i-n);return[s,o,a]};st.hsl.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n,s,o;if(t===0)return o=i*255,[o,o,o];i<.5?n=i*(1+t):n=i+t-i*t;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};st.hsl.hsv=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=t,s=Math.max(i,.01);i*=2,t*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+t)/2,a=i===0?2*n/(s+n):2*t/(i+t);return[e,a*100,o*100]};st.hsv.rgb=function(r){let e=r[0]/60,t=r[1]/100,i=r[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-t),a=255*i*(1-t*s),l=255*i*(1-t*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};st.hsv.hsl=function(r){let e=r[0],t=r[1]/100,i=r[2]/100,n=Math.max(i,.01),s,o;o=(2-t)*i;let a=(2-t)*n;return s=t*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};st.hwb.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100,n=t+i,s;n>1&&(t/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!==0&&(s=1-s);let l=t+s*(a-t),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=t;break;case 1:c=l,u=a,g=t;break;case 2:c=t,u=a,g=l;break;case 3:c=t,u=l,g=a;break;case 4:c=l,u=t,g=a;break;case 5:c=a,u=t,g=l;break}return[c*255,u*255,g*255]};st.cmyk.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n=r[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};st.xyz.rgb=function(r){let e=r[0]/100,t=r[1]/100,i=r[2]/100,n,s,o;return n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,o=e*.0557+t*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};st.xyz.lab=function(r){let e=r[0],t=r[1],i=r[2];e/=95.047,t/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*t-16,s=500*(e-t),o=200*(t-i);return[n,s,o]};st.lab.xyz=function(r){let e=r[0],t=r[1],i=r[2],n,s,o;s=(e+16)/116,n=t/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};st.lab.lch=function(r){let e=r[0],t=r[1],i=r[2],n;n=Math.atan2(i,t)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(t*t+i*i);return[e,o,n]};st.lch.lab=function(r){let e=r[0],t=r[1],n=r[2]/360*2*Math.PI,s=t*Math.cos(n),o=t*Math.sin(n);return[e,s,o]};st.rgb.ansi16=function(r,e=null){let[t,i,n]=r,s=e===null?st.rgb.hsv(r)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(t/255));return s===2&&(o+=60),o};st.hsv.ansi16=function(r){return st.rgb.ansi16(st.hsv.rgb(r),r[2])};st.rgb.ansi256=function(r){let e=r[0],t=r[1],i=r[2];return e===t&&t===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(i/255*5)};st.ansi16.rgb=function(r){let e=r%10;if(e===0||e===7)return r>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let t=(~~(r>50)+1)*.5,i=(e&1)*t*255,n=(e>>1&1)*t*255,s=(e>>2&1)*t*255;return[i,n,s]};st.ansi256.rgb=function(r){if(r>=232){let s=(r-232)*10+8;return[s,s,s]}r-=16;let e,t=Math.floor(r/36)/5*255,i=Math.floor((e=r%36)/6)/5*255,n=e%6/5*255;return[t,i,n]};st.rgb.hex=function(r){let t=(((Math.round(r[0])&255)<<16)+((Math.round(r[1])&255)<<8)+(Math.round(r[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t};st.hex.rgb=function(r){let e=r.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let t=e[0];e[0].length===3&&(t=t.split("").map(a=>a+a).join(""));let i=parseInt(t,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};st.rgb.hcg=function(r){let e=r[0]/255,t=r[1]/255,i=r[2]/255,n=Math.max(Math.max(e,t),i),s=Math.min(Math.min(e,t),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(t-i)/o%6:n===t?l=2+(i-e)/o:l=4+(e-t)/o,l/=6,l%=1,[l*360,o*100,a*100]};st.hsl.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=t<.5?2*e*t:2*e*(1-t),n=0;return i<1&&(n=(t-.5*i)/(1-i)),[r[0],i*100,n*100]};st.hsv.hcg=function(r){let e=r[1]/100,t=r[2]/100,i=e*t,n=0;return i<1&&(n=(t-i)/(1-i)),[r[0],i*100,n*100]};st.hcg.rgb=function(r){let e=r[0]/360,t=r[1]/100,i=r[2]/100;if(t===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*i,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};st.hcg.hsv=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e),n=0;return i>0&&(n=e/i),[r[0],n*100,i*100]};st.hcg.hsl=function(r){let e=r[1]/100,i=r[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[r[0],n*100,i*100]};st.hcg.hwb=function(r){let e=r[1]/100,t=r[2]/100,i=e+t*(1-e);return[r[0],(i-e)*100,(1-i)*100]};st.hwb.hcg=function(r){let e=r[1]/100,i=1-r[2]/100,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[r[0],n*100,s*100]};st.apple.rgb=function(r){return[r[0]/65535*255,r[1]/65535*255,r[2]/65535*255]};st.rgb.apple=function(r){return[r[0]/255*65535,r[1]/255*65535,r[2]/255*65535]};st.gray.rgb=function(r){return[r[0]/100*255,r[0]/100*255,r[0]/100*255]};st.gray.hsl=function(r){return[0,0,r[0]]};st.gray.hsv=st.gray.hsl;st.gray.hwb=function(r){return[0,100,r[0]]};st.gray.cmyk=function(r){return[0,0,0,r[0]]};st.gray.lab=function(r){return[r[0],0,0]};st.gray.hex=function(r){let e=Math.round(r[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};st.rgb.gray=function(r){return[(r[0]+r[1]+r[2])/3/255*100]}});var vJ=I((ott,SJ)=>{var Ty=gx();function Qwe(){let r={},e=Object.keys(Ty);for(let t=e.length,i=0;i<t;i++)r[e[i]]={distance:-1,parent:null};return r}function Swe(r){let e=Qwe(),t=[r];for(e[r].distance=0;t.length;){let i=t.pop(),n=Object.keys(Ty[i]);for(let s=n.length,o=0;o<s;o++){let a=n[o],l=e[a];l.distance===-1&&(l.distance=e[i].distance+1,l.parent=i,t.unshift(a))}}return e}function vwe(r,e){return function(t){return e(r(t))}}function xwe(r,e){let t=[e[r].parent,r],i=Ty[e[r].parent][r],n=e[r].parent;for(;e[n].parent;)t.unshift(e[n].parent),i=vwe(Ty[e[n].parent][n],i),n=e[n].parent;return i.conversion=t,i}SJ.exports=function(r){let e=Swe(r),t={},i=Object.keys(e);for(let n=i.length,s=0;s<n;s++){let o=i[s];e[o].parent!==null&&(t[o]=xwe(o,e))}return t}});var PJ=I((att,xJ)=>{var fx=gx(),Pwe=vJ(),Af={},kwe=Object.keys(fx);function Dwe(r){let e=function(...t){let i=t[0];return i==null?i:(i.length>1&&(t=i),r(t))};return"conversion"in r&&(e.conversion=r.conversion),e}function Rwe(r){let e=function(...t){let i=t[0];if(i==null)return i;i.length>1&&(t=i);let n=r(t);if(typeof n=="object")for(let s=n.length,o=0;o<s;o++)n[o]=Math.round(n[o]);return n};return"conversion"in r&&(e.conversion=r.conversion),e}kwe.forEach(r=>{Af[r]={},Object.defineProperty(Af[r],"channels",{value:fx[r].channels}),Object.defineProperty(Af[r],"labels",{value:fx[r].labels});let e=Pwe(r);Object.keys(e).forEach(i=>{let n=e[i];Af[r][i]=Rwe(n),Af[r][i].raw=Dwe(n)})});xJ.exports=Af});var TJ=I((Att,NJ)=>{"use strict";var kJ=(r,e)=>(...t)=>`\x1B[${r(...t)+e}m`,DJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};5;${i}m`},RJ=(r,e)=>(...t)=>{let i=r(...t);return`\x1B[${38+e};2;${i[0]};${i[1]};${i[2]}m`},Ly=r=>r,FJ=(r,e,t)=>[r,e,t],lf=(r,e,t)=>{Object.defineProperty(r,e,{get:()=>{let i=t();return Object.defineProperty(r,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},hx,cf=(r,e,t,i)=>{hx===void 0&&(hx=PJ());let n=i?10:0,s={};for(let[o,a]of Object.entries(hx)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=r(t,n):typeof a=="object"&&(s[l]=r(a[e],n))}return s};function Fwe(){let r=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},i[n]=e[n],r.set(s[0],s[1]);Object.defineProperty(e,t,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:r,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",lf(e.color,"ansi",()=>cf(kJ,"ansi16",Ly,!1)),lf(e.color,"ansi256",()=>cf(DJ,"ansi256",Ly,!1)),lf(e.color,"ansi16m",()=>cf(RJ,"rgb",FJ,!1)),lf(e.bgColor,"ansi",()=>cf(kJ,"ansi16",Ly,!0)),lf(e.bgColor,"ansi256",()=>cf(DJ,"ansi256",Ly,!0)),lf(e.bgColor,"ansi16m",()=>cf(RJ,"rgb",FJ,!0)),e}Object.defineProperty(NJ,"exports",{enumerable:!0,get:Fwe})});var OJ=I((ltt,LJ)=>{"use strict";LJ.exports=(r,e=process.argv)=>{let t=r.startsWith("-")?"":r.length===1?"-":"--",i=e.indexOf(t+r),n=e.indexOf("--");return i!==-1&&(n===-1||i<n)}});var UJ=I((ctt,KJ)=>{"use strict";var Nwe=J("os"),MJ=J("tty"),ps=OJ(),{env:oi}=process,MA;ps("no-color")||ps("no-colors")||ps("color=false")||ps("color=never")?MA=0:(ps("color")||ps("colors")||ps("color=true")||ps("color=always"))&&(MA=1);"FORCE_COLOR"in oi&&(oi.FORCE_COLOR==="true"?MA=1:oi.FORCE_COLOR==="false"?MA=0:MA=oi.FORCE_COLOR.length===0?1:Math.min(parseInt(oi.FORCE_COLOR,10),3));function px(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function dx(r,e){if(MA===0)return 0;if(ps("color=16m")||ps("color=full")||ps("color=truecolor"))return 3;if(ps("color=256"))return 2;if(r&&!e&&MA===void 0)return 0;let t=MA||0;if(oi.TERM==="dumb")return t;if(process.platform==="win32"){let i=Nwe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in oi)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in oi)||oi.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in oi)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(oi.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in oi)return 1;if(oi.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in oi){let i=parseInt((oi.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(oi.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(oi.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(oi.TERM)||"COLORTERM"in oi?1:t}function Twe(r){let e=dx(r,r&&r.isTTY);return px(e)}KJ.exports={supportsColor:Twe,stdout:px(dx(!0,MJ.isatty(1))),stderr:px(dx(!0,MJ.isatty(2)))}});var jJ=I((utt,HJ)=>{"use strict";var Lwe=(r,e,t)=>{let i=r.indexOf(e);if(i===-1)return r;let n=e.length,s=0,o="";do o+=r.substr(s,i-s)+e+t,s=i+n,i=r.indexOf(e,s);while(i!==-1);return o+=r.substr(s),o},Owe=(r,e,t,i)=>{let n=0,s="";do{let o=r[i-1]==="\r";s+=r.substr(n,(o?i-1:i)-n)+e+(o?`\r -`:` -`)+t,n=i+1,i=r.indexOf(` -`,n)}while(i!==-1);return s+=r.substr(n),s};HJ.exports={stringReplaceAll:Lwe,stringEncaseCRLFWithFirstIndex:Owe}});var WJ=I((gtt,JJ)=>{"use strict";var Mwe=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GJ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Kwe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Uwe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,Hwe=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function qJ(r){let e=r[0]==="u",t=r[1]==="{";return e&&!t&&r.length===5||r[0]==="x"&&r.length===3?String.fromCharCode(parseInt(r.slice(1),16)):e&&t?String.fromCodePoint(parseInt(r.slice(2,-1),16)):Hwe.get(r)||r}function jwe(r,e){let t=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))t.push(o);else if(n=s.match(Kwe))t.push(n[2].replace(Uwe,(a,l,c)=>l?qJ(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${r}')`)}return t}function Gwe(r){GJ.lastIndex=0;let e=[],t;for(;(t=GJ.exec(r))!==null;){let i=t[1];if(t[2]){let n=jwe(i,t[2]);e.push([i].concat(n))}else e.push([i])}return e}function YJ(r,e){let t={};for(let n of e)for(let s of n.styles)t[s[0]]=n.inverse?null:s.slice(1);let i=r;for(let[n,s]of Object.entries(t))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}JJ.exports=(r,e)=>{let t=[],i=[],n=[];if(e.replace(Mwe,(s,o,a,l,c,u)=>{if(o)n.push(qJ(o));else if(l){let g=n.join("");n=[],i.push(t.length===0?g:YJ(r,t)(g)),t.push({inverse:a,styles:Gwe(l)})}else if(c){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YJ(r,t)(n.join(""))),n=[],t.pop()}else n.push(u)}),i.push(n.join("")),t.length>0){let s=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var wx=I((ftt,ZJ)=>{"use strict";var Ud=TJ(),{stdout:mx,stderr:Ex}=UJ(),{stringReplaceAll:Ywe,stringEncaseCRLFWithFirstIndex:qwe}=jJ(),zJ=["ansi","ansi","ansi256","ansi16m"],uf=Object.create(null),Jwe=(r,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let t=mx?mx.level:0;r.level=e.level===void 0?t:e.level},Ix=class{constructor(e){return VJ(e)}},VJ=r=>{let e={};return Jwe(e,r),e.template=(...t)=>Vwe(e.template,...t),Object.setPrototypeOf(e,Oy.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Ix,e.template};function Oy(r){return VJ(r)}for(let[r,e]of Object.entries(Ud))uf[r]={get(){let t=My(this,yx(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,r,{value:t}),t}};uf.visible={get(){let r=My(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:r}),r}};var XJ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let r of XJ)uf[r]={get(){let{level:e}=this;return function(...t){let i=yx(Ud.color[zJ[e]][r](...t),Ud.color.close,this._styler);return My(this,i,this._isEmpty)}}};for(let r of XJ){let e="bg"+r[0].toUpperCase()+r.slice(1);uf[e]={get(){let{level:t}=this;return function(...i){let n=yx(Ud.bgColor[zJ[t]][r](...i),Ud.bgColor.close,this._styler);return My(this,n,this._isEmpty)}}}}var Wwe=Object.defineProperties(()=>{},{...uf,level:{enumerable:!0,get(){return this._generator.level},set(r){this._generator.level=r}}}),yx=(r,e,t)=>{let i,n;return t===void 0?(i=r,n=e):(i=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:i,closeAll:n,parent:t}},My=(r,e,t)=>{let i=(...n)=>zwe(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=Wwe,i._generator=r,i._styler=e,i._isEmpty=t,i},zwe=(r,e)=>{if(r.level<=0||!e)return r._isEmpty?"":e;let t=r._styler;if(t===void 0)return e;let{openAll:i,closeAll:n}=t;if(e.indexOf("\x1B")!==-1)for(;t!==void 0;)e=Ywe(e,t.close,t.open),t=t.parent;let s=e.indexOf(` -`);return s!==-1&&(e=qwe(e,n,i,s)),i+e+n},Cx,Vwe=(r,...e)=>{let[t]=e;if(!Array.isArray(t))return e.join(" ");let i=e.slice(1),n=[t.raw[0]];for(let s=1;s<t.length;s++)n.push(String(i[s-1]).replace(/[{}\\]/g,"\\$&"),String(t.raw[s]));return Cx===void 0&&(Cx=WJ()),Cx(r,n.join(""))};Object.defineProperties(Oy.prototype,uf);var Hd=Oy();Hd.supportsColor=mx;Hd.stderr=Oy({level:Ex?Ex.level:0});Hd.stderr.supportsColor=Ex;Hd.Level={None:0,Basic:1,Ansi256:2,TrueColor:3,0:"None",1:"Basic",2:"Ansi256",3:"TrueColor"};ZJ.exports=Hd});var Ky=I(ds=>{"use strict";ds.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;ds.find=(r,e)=>r.nodes.find(t=>t.type===e);ds.exceedsLimit=(r,e,t=1,i)=>i===!1||!ds.isInteger(r)||!ds.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;ds.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};ds.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0===0?(r.invalid=!0,!0):!1;ds.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0===0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;ds.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;ds.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);ds.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n<i.length;n++){let s=i[n];Array.isArray(s)?t(s,e):s!==void 0&&e.push(s)}return e};return t(r),e}});var Uy=I((ptt,$J)=>{"use strict";var _J=Ky();$J.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&_J.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&_J.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=t(l);return a};return t(r)}});var t3=I((dtt,e3)=>{"use strict";e3.exports=function(r){return typeof r=="number"?r-r===0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var c3=I((Ctt,l3)=>{"use strict";var r3=t3(),wc=(r,e,t)=>{if(r3(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(r3(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=r+":"+e+"="+n+s+o+a;if(wc.cache.hasOwnProperty(l))return wc.cache[l].result;let c=Math.min(r,e),u=Math.max(r,e);if(Math.abs(c-u)===1){let m=r+"|"+e;return i.capture?`(${m})`:i.wrap===!1?m:`(?:${m})`}let g=A3(r)||A3(e),h={min:r,max:e,a:c,b:u},p=[],d=[];if(g&&(h.isPadded=g,h.maxLen=String(h.max).length),c<0){let m=u<0?Math.abs(u):1;d=i3(m,Math.abs(c),h,i),c=h.a=0}return u>=0&&(p=i3(c,u,h,i)),h.negatives=d,h.positives=p,h.result=Xwe(d,p,i),i.capture===!0?h.result=`(${h.result})`:i.wrap!==!1&&p.length+d.length>1&&(h.result=`(?:${h.result})`),wc.cache[l]=h,h.result};function Xwe(r,e,t){let i=Bx(r,e,"-",!1,t)||[],n=Bx(e,r,"",!1,t)||[],s=Bx(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function Zwe(r,e){let t=1,i=1,n=s3(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=s3(r,t);for(n=o3(e+1,i)-1;r<n&&n<=e;)s.add(n),i+=1,n=o3(e+1,i)-1;return s=[...s],s.sort(eBe),s}function _we(r,e,t){if(r===e)return{pattern:r,count:[],digits:0};let i=$we(r,e),n=i.length,s="",o=0;for(let a=0;a<n;a++){let[l,c]=i[a];l===c?s+=l:l!=="0"||c!=="9"?s+=tBe(l,c,t):o++}return o&&(s+=t.shorthand===!0?"\\d":"[0-9]"),{pattern:s,count:[o],digits:n}}function i3(r,e,t,i){let n=Zwe(r,e),s=[],o=r,a;for(let l=0;l<n.length;l++){let c=n[l],u=_we(String(o),String(c),i),g="";if(!t.isPadded&&a&&a.pattern===u.pattern){a.count.length>1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+a3(a.count),o=c+1;continue}t.isPadded&&(g=rBe(c,t,i)),u.string=g+u.pattern+a3(u.count),s.push(u),o=c+1,a=u}return s}function Bx(r,e,t,i,n){let s=[];for(let o of r){let{string:a}=o;!i&&!n3(e,"string",a)&&s.push(t+a),i&&n3(e,"string",a)&&s.push(t+a)}return s}function $we(r,e){let t=[];for(let i=0;i<r.length;i++)t.push([r[i],e[i]]);return t}function eBe(r,e){return r>e?1:e>r?-1:0}function n3(r,e,t){return r.some(i=>i[e]===t)}function s3(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function o3(r,e){return r-r%Math.pow(10,e)}function a3(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tBe(r,e,t){return`[${r}${e-r===1?"":"-"}${e}]`}function A3(r){return/^-?(0+)\d/.test(r)}function rBe(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}wc.cache={};wc.clearCache=()=>wc.cache={};l3.exports=wc});var Sx=I((mtt,m3)=>{"use strict";var iBe=J("util"),f3=c3(),u3=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nBe=r=>e=>r===!0?Number(e):String(e),bx=r=>typeof r=="number"||typeof r=="string"&&r!=="",jd=r=>Number.isInteger(+r),Qx=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sBe=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,oBe=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},g3=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length<e;)r="0"+r;return t?"-"+r:r},aBe=(r,e)=>{r.negatives.sort((o,a)=>o<a?-1:o>a?1:0),r.positives.sort((o,a)=>o<a?-1:o>a?1:0);let t=e.capture?"":"?:",i="",n="",s;return r.positives.length&&(i=r.positives.join("|")),r.negatives.length&&(n=`-(${t}${r.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${t}${s})`:s},h3=(r,e,t,i)=>{if(t)return f3(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},p3=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return f3(r,e,t)},d3=(...r)=>new RangeError("Invalid range arguments: "+iBe.inspect(...r)),C3=(r,e,t)=>{if(t.strictRanges===!0)throw d3([r,e]);return[]},ABe=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},lBe=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw d3([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let u=Qx(a)||Qx(l)||Qx(c),g=u?Math.max(a.length,l.length,c.length):0,h=u===!1&&sBe(r,e,i)===!1,p=i.transform||nBe(h);if(i.toRegex&&t===1)return h3(g3(r,g),g3(e,g),!0,i);let d={negatives:[],positives:[]},m=S=>d[S<0?"negatives":"positives"].push(Math.abs(S)),y=[],B=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&t>1?m(n):y.push(oBe(p(n,B),g,h)),n=o?n-t:n+t,B++;return i.toRegex===!0?t>1?aBe(d,i):p3(y,null,{wrap:!1,...i}):y},cBe=(r,e,t=1,i={})=>{if(!jd(r)&&r.length>1||!jd(e)&&e.length>1)return C3(r,e,i);let n=i.transform||(h=>String.fromCharCode(h)),s=`${r}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&t===1)return h3(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-t:s+t,g++;return i.toRegex===!0?p3(u,null,{wrap:!1,options:i}):u},Hy=(r,e,t,i={})=>{if(e==null&&bx(r))return[r];if(!bx(r)||!bx(e))return C3(r,e,i);if(typeof t=="function")return Hy(r,e,1,{transform:t});if(u3(t))return Hy(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,jd(t)?jd(r)&&jd(e)?lBe(r,e,t,n):cBe(r,e,Math.max(Math.abs(t),1),n):t!=null&&!u3(t)?ABe(t,n):Hy(r,e,1,t)};m3.exports=Hy});var y3=I((Ett,I3)=>{"use strict";var uBe=Sx(),E3=Ky(),gBe=(r,e={})=>{let t=(i,n={})=>{let s=E3.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=E3.reduce(i.nodes),g=uBe(...u,{...e,wrap:!1,toRegex:!0});if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=t(u,i);return c};return t(r)};I3.exports=gBe});var b3=I((Itt,B3)=>{"use strict";var fBe=Sx(),w3=Uy(),gf=Ky(),Bc=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?gf.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Bc(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Bc(n,s,t):n+s);return gf.flatten(i)},hBe=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Bc(a.pop(),w3(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Bc(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=gf.reduce(n.nodes);if(gf.exceedsLimit(...g,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=fBe(...g,e);h.length===0&&(h=w3(n,e)),a.push(Bc(a.pop(),h)),n.nodes=[];return}let l=gf.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g<n.nodes.length;g++){let h=n.nodes[g];if(h.type==="comma"&&n.type==="brace"){g===1&&c.push(""),c.push("");continue}if(h.type==="close"){a.push(Bc(a.pop(),c,l));continue}if(h.value&&h.type!=="open"){c.push(Bc(c.pop(),h.value));continue}h.nodes&&i(h,n)}return c};return gf.flatten(i(r))};B3.exports=hBe});var S3=I((ytt,Q3)=>{"use strict";Q3.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var D3=I((wtt,k3)=>{"use strict";var pBe=Uy(),{MAX_LENGTH:v3,CHAR_BACKSLASH:vx,CHAR_BACKTICK:dBe,CHAR_COMMA:CBe,CHAR_DOT:mBe,CHAR_LEFT_PARENTHESES:EBe,CHAR_RIGHT_PARENTHESES:IBe,CHAR_LEFT_CURLY_BRACE:yBe,CHAR_RIGHT_CURLY_BRACE:wBe,CHAR_LEFT_SQUARE_BRACKET:x3,CHAR_RIGHT_SQUARE_BRACKET:P3,CHAR_DOUBLE_QUOTE:BBe,CHAR_SINGLE_QUOTE:bBe,CHAR_NO_BREAK_SPACE:QBe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:SBe}=S3(),vBe=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(v3,t.maxLength):v3;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],o=n,a=n,l=0,c=r.length,u=0,g=0,h,p={},d=()=>r[u++],m=y=>{if(y.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&y.type==="text"){a.value+=y.value;return}return o.nodes.push(y),y.parent=o,y.prev=a,a=y,y};for(m({type:"bos"});u<c;)if(o=s[s.length-1],h=d(),!(h===SBe||h===QBe)){if(h===vx){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===P3){m({type:"text",value:"\\"+h});continue}if(h===x3){l++;let y=!0,B;for(;u<c&&(B=d());){if(h+=B,B===x3){l++;continue}if(B===vx){h+=d();continue}if(B===P3&&(l--,l===0))break}m({type:"text",value:h});continue}if(h===EBe){o=m({type:"paren",nodes:[]}),s.push(o),m({type:"text",value:h});continue}if(h===IBe){if(o.type!=="paren"){m({type:"text",value:h});continue}o=s.pop(),m({type:"text",value:h}),o=s[s.length-1];continue}if(h===BBe||h===bBe||h===dBe){let y=h,B;for(e.keepQuotes!==!0&&(h="");u<c&&(B=d());){if(B===vx){h+=B+d();continue}if(B===y){e.keepQuotes===!0&&(h+=B);break}h+=B}m({type:"text",value:h});continue}if(h===yBe){g++;let B={type:"brace",open:!0,close:!1,dollar:a.value&&a.value.slice(-1)==="$"||o.dollar===!0,depth:g,commas:0,ranges:0,nodes:[]};o=m(B),s.push(o),m({type:"open",value:h});continue}if(h===wBe){if(o.type!=="brace"){m({type:"text",value:h});continue}let y="close";o=s.pop(),o.close=!0,m({type:y,value:h}),g--,o=s[s.length-1];continue}if(h===CBe&&g>0){if(o.ranges>0){o.ranges=0;let y=o.nodes.shift();o.nodes=[y,{type:"text",value:pBe(o)}]}m({type:"comma",value:h}),o.commas++;continue}if(h===mBe&&g>0&&o.commas===0){let y=o.nodes;if(g===0||y.length===0){m({type:"text",value:h});continue}if(a.type==="dot"){if(o.range=[],a.value+=h,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){y.pop();let B=y[y.length-1];B.value+=a.value+h,a=B,o.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(S=>{S.nodes||(S.type==="open"&&(S.isOpen=!0),S.type==="close"&&(S.isClose=!0),S.nodes||(S.type="text"),S.invalid=!0)});let y=s[s.length-1],B=y.nodes.indexOf(o);y.nodes.splice(B,1,...o.nodes)}while(s.length>0);return m({type:"eos"}),n};k3.exports=vBe});var N3=I((Btt,F3)=>{"use strict";var R3=Uy(),xBe=y3(),PBe=b3(),kBe=D3(),Jn=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Jn.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Jn.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.parse=(r,e={})=>kBe(r,e);Jn.stringify=(r,e={})=>R3(typeof r=="string"?Jn.parse(r,e):r,e);Jn.compile=(r,e={})=>(typeof r=="string"&&(r=Jn.parse(r,e)),xBe(r,e));Jn.expand=(r,e={})=>{typeof r=="string"&&(r=Jn.parse(r,e));let t=PBe(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Jn.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Jn.compile(r,e):Jn.expand(r,e);F3.exports=Jn});var Gd=I((btt,K3)=>{"use strict";var DBe=J("path"),Mo="\\\\/",T3=`[^${Mo}]`,Ta="\\.",RBe="\\+",FBe="\\?",jy="\\/",NBe="(?=.)",L3="[^/]",xx=`(?:${jy}|$)`,O3=`(?:^|${jy})`,Px=`${Ta}{1,2}${xx}`,TBe=`(?!${Ta})`,LBe=`(?!${O3}${Px})`,OBe=`(?!${Ta}{0,1}${xx})`,MBe=`(?!${Px})`,KBe=`[^.${jy}]`,UBe=`${L3}*?`,M3={DOT_LITERAL:Ta,PLUS_LITERAL:RBe,QMARK_LITERAL:FBe,SLASH_LITERAL:jy,ONE_CHAR:NBe,QMARK:L3,END_ANCHOR:xx,DOTS_SLASH:Px,NO_DOT:TBe,NO_DOTS:LBe,NO_DOT_SLASH:OBe,NO_DOTS_SLASH:MBe,QMARK_NO_DOT:KBe,STAR:UBe,START_ANCHOR:O3},HBe={...M3,SLASH_LITERAL:`[${Mo}]`,QMARK:T3,STAR:`${T3}*?`,DOTS_SLASH:`${Ta}{1,2}(?:[${Mo}]|$)`,NO_DOT:`(?!${Ta})`,NO_DOTS:`(?!(?:^|[${Mo}])${Ta}{1,2}(?:[${Mo}]|$))`,NO_DOT_SLASH:`(?!${Ta}{0,1}(?:[${Mo}]|$))`,NO_DOTS_SLASH:`(?!${Ta}{1,2}(?:[${Mo}]|$))`,QMARK_NO_DOT:`[^.${Mo}]`,START_ANCHOR:`(?:^|[${Mo}])`,END_ANCHOR:`(?:[${Mo}]|$)`},jBe={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};K3.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:jBe,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:DBe.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?HBe:M3}}});var Yd=I(Bn=>{"use strict";var GBe=J("path"),YBe=process.platform==="win32",{REGEX_BACKSLASH:qBe,REGEX_REMOVE_BACKSLASH:JBe,REGEX_SPECIAL_CHARS:WBe,REGEX_SPECIAL_CHARS_GLOBAL:zBe}=Gd();Bn.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Bn.hasRegexChars=r=>WBe.test(r);Bn.isRegexChar=r=>r.length===1&&Bn.hasRegexChars(r);Bn.escapeRegex=r=>r.replace(zBe,"\\$1");Bn.toPosixSlashes=r=>r.replace(qBe,"/");Bn.removeBackslashes=r=>r.replace(JBe,e=>e==="\\"?"":e);Bn.supportsLookbehinds=()=>{let r=process.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Bn.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:YBe===!0||GBe.sep==="\\";Bn.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Bn.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Bn.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Bn.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var W3=I((Stt,J3)=>{"use strict";var U3=Yd(),{CHAR_ASTERISK:kx,CHAR_AT:VBe,CHAR_BACKWARD_SLASH:qd,CHAR_COMMA:XBe,CHAR_DOT:Dx,CHAR_EXCLAMATION_MARK:Rx,CHAR_FORWARD_SLASH:q3,CHAR_LEFT_CURLY_BRACE:Fx,CHAR_LEFT_PARENTHESES:Nx,CHAR_LEFT_SQUARE_BRACKET:ZBe,CHAR_PLUS:_Be,CHAR_QUESTION_MARK:H3,CHAR_RIGHT_CURLY_BRACE:$Be,CHAR_RIGHT_PARENTHESES:j3,CHAR_RIGHT_SQUARE_BRACKET:e0e}=Gd(),G3=r=>r===q3||r===qd,Y3=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t0e=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],o=[],a=[],l=r,c=-1,u=0,g=0,h=!1,p=!1,d=!1,m=!1,y=!1,B=!1,S=!1,P=!1,F=!1,H=!1,q=0,_,X,W={value:"",depth:0,isGlob:!1},Z=()=>c>=i,A=()=>l.charCodeAt(c+1),ne=()=>(_=X,l.charCodeAt(++c));for(;c<i;){X=ne();let ce;if(X===qd){S=W.backslashes=!0,X=ne(),X===Fx&&(B=!0);continue}if(B===!0||X===Fx){for(q++;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,ne();continue}if(X===Fx){q++;continue}if(B!==!0&&X===Dx&&(X=ne())===Dx){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(B!==!0&&X===XBe){if(h=W.isBrace=!0,d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===$Be&&(q--,q===0)){B=!1,h=W.isBrace=!0,H=!0;break}}if(n===!0)continue;break}if(X===q3){if(s.push(c),o.push(W),W={value:"",depth:0,isGlob:!1},H===!0)continue;if(_===Dx&&c===u+1){u+=2;continue}g=c+1;continue}if(t.noext!==!0&&(X===_Be||X===VBe||X===kx||X===H3||X===Rx)===!0&&A()===Nx){if(d=W.isGlob=!0,m=W.isExtglob=!0,H=!0,X===Rx&&c===u&&(F=!0),n===!0){for(;Z()!==!0&&(X=ne());){if(X===qd){S=W.backslashes=!0,X=ne();continue}if(X===j3){d=W.isGlob=!0,H=!0;break}}continue}break}if(X===kx){if(_===kx&&(y=W.isGlobstar=!0),d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===H3){if(d=W.isGlob=!0,H=!0,n===!0)continue;break}if(X===ZBe){for(;Z()!==!0&&(ce=ne());){if(ce===qd){S=W.backslashes=!0,ne();continue}if(ce===e0e){p=W.isBracket=!0,d=W.isGlob=!0,H=!0;break}}if(n===!0)continue;break}if(t.nonegate!==!0&&X===Rx&&c===u){P=W.negated=!0,u++;continue}if(t.noparen!==!0&&X===Nx){if(d=W.isGlob=!0,n===!0){for(;Z()!==!0&&(X=ne());){if(X===Nx){S=W.backslashes=!0,X=ne();continue}if(X===j3){H=!0;break}}continue}break}if(d===!0){if(H=!0,n===!0)continue;break}}t.noext===!0&&(m=!1,d=!1);let ue=l,te="",O="";u>0&&(te=l.slice(0,u),l=l.slice(u),g-=u),ue&&d===!0&&g>0?(ue=l.slice(0,g),O=l.slice(g)):d===!0?(ue="",O=l):ue=l,ue&&ue!==""&&ue!=="/"&&ue!==l&&G3(ue.charCodeAt(ue.length-1))&&(ue=ue.slice(0,-1)),t.unescape===!0&&(O&&(O=U3.removeBackslashes(O)),ue&&S===!0&&(ue=U3.removeBackslashes(ue)));let N={prefix:te,input:r,start:u,base:ue,glob:O,isBrace:h,isBracket:p,isGlob:d,isExtglob:m,isGlobstar:y,negated:P,negatedExtglob:F};if(t.tokens===!0&&(N.maxDepth=0,G3(X)||o.push(W),N.tokens=o),t.parts===!0||t.tokens===!0){let ce;for(let he=0;he<s.length;he++){let Pe=ce?ce+1:u,De=s[he],Re=r.slice(Pe,De);t.tokens&&(he===0&&u!==0?(o[he].isPrefix=!0,o[he].value=te):o[he].value=Re,Y3(o[he]),N.maxDepth+=o[he].depth),(he!==0||Re!=="")&&a.push(Re),ce=De}if(ce&&ce+1<r.length){let he=r.slice(ce+1);a.push(he),t.tokens&&(o[o.length-1].value=he,Y3(o[o.length-1]),N.maxDepth+=o[o.length-1].depth)}N.slashes=s,N.parts=a}return N};J3.exports=t0e});var X3=I((vtt,V3)=>{"use strict";var Gy=Gd(),Wn=Yd(),{MAX_LENGTH:Yy,POSIX_REGEX_SOURCE:r0e,REGEX_NON_SPECIAL_CHARS:i0e,REGEX_SPECIAL_CHARS_BACKREF:n0e,REPLACEMENTS:z3}=Gy,s0e=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch{return r.map(n=>Wn.escapeRegex(n)).join("..")}return t},ff=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,Tx=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=z3[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},o=[s],a=t.capture?"":"?:",l=Wn.isWindows(e),c=Gy.globChars(l),u=Gy.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:h,SLASH_LITERAL:p,ONE_CHAR:d,DOTS_SLASH:m,NO_DOT:y,NO_DOT_SLASH:B,NO_DOTS_SLASH:S,QMARK:P,QMARK_NO_DOT:F,STAR:H,START_ANCHOR:q}=c,_=G=>`(${a}(?:(?!${q}${G.dot?m:g}).)*?)`,X=t.dot?"":y,W=t.dot?P:F,Z=t.bash===!0?_(t):H;t.capture&&(Z=`(${Z})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let A={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};r=Wn.removePrefix(r,A),n=r.length;let ne=[],ue=[],te=[],O=s,N,ce=()=>A.index===n-1,he=A.peek=(G=1)=>r[A.index+G],Pe=A.advance=()=>r[++A.index]||"",De=()=>r.slice(A.index+1),Re=(G="",fe=0)=>{A.consumed+=G,A.index+=fe},se=G=>{A.output+=G.output!=null?G.output:G.value,Re(G.value)},Ae=()=>{let G=1;for(;he()==="!"&&(he(2)!=="("||he(3)==="?");)Pe(),A.start++,G++;return G%2===0?!1:(A.negated=!0,A.start++,!0)},ye=G=>{A[G]++,te.push(G)},ge=G=>{A[G]--,te.pop()},oe=G=>{if(O.type==="globstar"){let fe=A.braces>0&&(G.type==="comma"||G.type==="brace"),re=G.extglob===!0||ne.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!fe&&!re&&(A.output=A.output.slice(0,-O.output.length),O.type="star",O.value="*",O.output=Z,A.output+=O.output)}if(ne.length&&G.type!=="paren"&&(ne[ne.length-1].inner+=G.value),(G.value||G.output)&&se(G),O&&O.type==="text"&&G.type==="text"){O.value+=G.value,O.output=(O.output||"")+G.value;return}G.prev=O,o.push(G),O=G},Ye=(G,fe)=>{let re={...u[fe],conditions:1,inner:""};re.prev=O,re.parens=A.parens,re.output=A.output;let de=(t.capture?"(":"")+re.open;ye("parens"),oe({type:G,value:fe,output:A.output?"":d}),oe({type:"paren",extglob:!0,value:Pe(),output:de}),ne.push(re)},ie=G=>{let fe=G.close+(t.capture?")":""),re;if(G.type==="negate"){let de=Z;if(G.inner&&G.inner.length>1&&G.inner.includes("/")&&(de=_(t)),(de!==Z||ce()||/^\)+$/.test(De()))&&(fe=G.close=`)$))${de}`),G.inner.includes("*")&&(re=De())&&/^\.[^\\/.]+$/.test(re)){let Ze=Tx(re,{...e,fastpaths:!1}).output;fe=G.close=`)${Ze})${de})`}G.prev.type==="bos"&&(A.negatedExtglob=!0)}oe({type:"paren",extglob:!0,value:N,output:fe}),ge("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let G=!1,fe=r.replace(n0e,(re,de,Ze,vt,mt,Lr)=>vt==="\\"?(G=!0,re):vt==="?"?de?de+vt+(mt?P.repeat(mt.length):""):Lr===0?W+(mt?P.repeat(mt.length):""):P.repeat(Ze.length):vt==="."?g.repeat(Ze.length):vt==="*"?de?de+vt+(mt?Z:""):Z:de?re:`\\${re}`);return G===!0&&(t.unescape===!0?fe=fe.replace(/\\/g,""):fe=fe.replace(/\\+/g,re=>re.length%2===0?"\\\\":re?"\\":"")),fe===r&&t.contains===!0?(A.output=r,A):(A.output=Wn.wrapOutput(fe,A,e),A)}for(;!ce();){if(N=Pe(),N==="\0")continue;if(N==="\\"){let re=he();if(re==="/"&&t.bash!==!0||re==="."||re===";")continue;if(!re){N+="\\",oe({type:"text",value:N});continue}let de=/^\\+/.exec(De()),Ze=0;if(de&&de[0].length>2&&(Ze=de[0].length,A.index+=Ze,Ze%2!==0&&(N+="\\")),t.unescape===!0?N=Pe():N+=Pe(),A.brackets===0){oe({type:"text",value:N});continue}}if(A.brackets>0&&(N!=="]"||O.value==="["||O.value==="[^")){if(t.posix!==!1&&N===":"){let re=O.value.slice(1);if(re.includes("[")&&(O.posix=!0,re.includes(":"))){let de=O.value.lastIndexOf("["),Ze=O.value.slice(0,de),vt=O.value.slice(de+2),mt=r0e[vt];if(mt){O.value=Ze+mt,A.backtrack=!0,Pe(),!s.output&&o.indexOf(O)===1&&(s.output=d);continue}}}(N==="["&&he()!==":"||N==="-"&&he()==="]")&&(N=`\\${N}`),N==="]"&&(O.value==="["||O.value==="[^")&&(N=`\\${N}`),t.posix===!0&&N==="!"&&O.value==="["&&(N="^"),O.value+=N,se({value:N});continue}if(A.quotes===1&&N!=='"'){N=Wn.escapeRegex(N),O.value+=N,se({value:N});continue}if(N==='"'){A.quotes=A.quotes===1?0:1,t.keepQuotes===!0&&oe({type:"text",value:N});continue}if(N==="("){ye("parens"),oe({type:"paren",value:N});continue}if(N===")"){if(A.parens===0&&t.strictBrackets===!0)throw new SyntaxError(ff("opening","("));let re=ne[ne.length-1];if(re&&A.parens===re.parens+1){ie(ne.pop());continue}oe({type:"paren",value:N,output:A.parens?")":"\\)"}),ge("parens");continue}if(N==="["){if(t.nobracket===!0||!De().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));N=`\\${N}`}else ye("brackets");oe({type:"bracket",value:N});continue}if(N==="]"){if(t.nobracket===!0||O&&O.type==="bracket"&&O.value.length===1){oe({type:"text",value:N,output:`\\${N}`});continue}if(A.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(ff("opening","["));oe({type:"text",value:N,output:`\\${N}`});continue}ge("brackets");let re=O.value.slice(1);if(O.posix!==!0&&re[0]==="^"&&!re.includes("/")&&(N=`/${N}`),O.value+=N,se({value:N}),t.literalBrackets===!1||Wn.hasRegexChars(re))continue;let de=Wn.escapeRegex(O.value);if(A.output=A.output.slice(0,-O.value.length),t.literalBrackets===!0){A.output+=de,O.value=de;continue}O.value=`(${a}${de}|${O.value})`,A.output+=O.value;continue}if(N==="{"&&t.nobrace!==!0){ye("braces");let re={type:"brace",value:N,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};ue.push(re),oe(re);continue}if(N==="}"){let re=ue[ue.length-1];if(t.nobrace===!0||!re){oe({type:"text",value:N,output:N});continue}let de=")";if(re.dots===!0){let Ze=o.slice(),vt=[];for(let mt=Ze.length-1;mt>=0&&(o.pop(),Ze[mt].type!=="brace");mt--)Ze[mt].type!=="dots"&&vt.unshift(Ze[mt].value);de=s0e(vt,t),A.backtrack=!0}if(re.comma!==!0&&re.dots!==!0){let Ze=A.output.slice(0,re.outputIndex),vt=A.tokens.slice(re.tokensIndex);re.value=re.output="\\{",N=de="\\}",A.output=Ze;for(let mt of vt)A.output+=mt.output||mt.value}oe({type:"brace",value:N,output:de}),ge("braces"),ue.pop();continue}if(N==="|"){ne.length>0&&ne[ne.length-1].conditions++,oe({type:"text",value:N});continue}if(N===","){let re=N,de=ue[ue.length-1];de&&te[te.length-1]==="braces"&&(de.comma=!0,re="|"),oe({type:"comma",value:N,output:re});continue}if(N==="/"){if(O.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),O=s;continue}oe({type:"slash",value:N,output:p});continue}if(N==="."){if(A.braces>0&&O.type==="dot"){O.value==="."&&(O.output=g);let re=ue[ue.length-1];O.type="dots",O.output+=N,O.value+=N,re.dots=!0;continue}if(A.braces+A.parens===0&&O.type!=="bos"&&O.type!=="slash"){oe({type:"text",value:N,output:g});continue}oe({type:"dot",value:N,output:g});continue}if(N==="?"){if(!(O&&O.value==="(")&&t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("qmark",N);continue}if(O&&O.type==="paren"){let de=he(),Ze=N;if(de==="<"&&!Wn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(O.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(De()))&&(Ze=`\\${N}`),oe({type:"text",value:N,output:Ze});continue}if(t.dot!==!0&&(O.type==="slash"||O.type==="bos")){oe({type:"qmark",value:N,output:F});continue}oe({type:"qmark",value:N,output:P});continue}if(N==="!"){if(t.noextglob!==!0&&he()==="("&&(he(2)!=="?"||!/[!=<:]/.test(he(3)))){Ye("negate",N);continue}if(t.nonegate!==!0&&A.index===0){Ae();continue}}if(N==="+"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){Ye("plus",N);continue}if(O&&O.value==="("||t.regex===!1){oe({type:"plus",value:N,output:h});continue}if(O&&(O.type==="bracket"||O.type==="paren"||O.type==="brace")||A.parens>0){oe({type:"plus",value:N});continue}oe({type:"plus",value:h});continue}if(N==="@"){if(t.noextglob!==!0&&he()==="("&&he(2)!=="?"){oe({type:"at",extglob:!0,value:N,output:""});continue}oe({type:"text",value:N});continue}if(N!=="*"){(N==="$"||N==="^")&&(N=`\\${N}`);let re=i0e.exec(De());re&&(N+=re[0],A.index+=re[0].length),oe({type:"text",value:N});continue}if(O&&(O.type==="globstar"||O.star===!0)){O.type="star",O.star=!0,O.value+=N,O.output=Z,A.backtrack=!0,A.globstar=!0,Re(N);continue}let G=De();if(t.noextglob!==!0&&/^\([^?]/.test(G)){Ye("star",N);continue}if(O.type==="star"){if(t.noglobstar===!0){Re(N);continue}let re=O.prev,de=re.prev,Ze=re.type==="slash"||re.type==="bos",vt=de&&(de.type==="star"||de.type==="globstar");if(t.bash===!0&&(!Ze||G[0]&&G[0]!=="/")){oe({type:"star",value:N,output:""});continue}let mt=A.braces>0&&(re.type==="comma"||re.type==="brace"),Lr=ne.length&&(re.type==="pipe"||re.type==="paren");if(!Ze&&re.type!=="paren"&&!mt&&!Lr){oe({type:"star",value:N,output:""});continue}for(;G.slice(0,3)==="/**";){let ti=r[A.index+4];if(ti&&ti!=="/")break;G=G.slice(3),Re("/**",3)}if(re.type==="bos"&&ce()){O.type="globstar",O.value+=N,O.output=_(t),A.output=O.output,A.globstar=!0,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&!vt&&ce()){A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=_(t)+(t.strictSlashes?")":"|$)"),O.value+=N,A.globstar=!0,A.output+=re.output+O.output,Re(N);continue}if(re.type==="slash"&&re.prev.type!=="bos"&&G[0]==="/"){let ti=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(re.output+O.output).length),re.output=`(?:${re.output}`,O.type="globstar",O.output=`${_(t)}${p}|${p}${ti})`,O.value+=N,A.output+=re.output+O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}if(re.type==="bos"&&G[0]==="/"){O.type="globstar",O.value+=N,O.output=`(?:^|${p}|${_(t)}${p})`,A.output=O.output,A.globstar=!0,Re(N+Pe()),oe({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-O.output.length),O.type="globstar",O.output=_(t),O.value+=N,A.output+=O.output,A.globstar=!0,Re(N);continue}let fe={type:"star",value:N,output:Z};if(t.bash===!0){fe.output=".*?",(O.type==="bos"||O.type==="slash")&&(fe.output=X+fe.output),oe(fe);continue}if(O&&(O.type==="bracket"||O.type==="paren")&&t.regex===!0){fe.output=N,oe(fe);continue}(A.index===A.start||O.type==="slash"||O.type==="dot")&&(O.type==="dot"?(A.output+=B,O.output+=B):t.dot===!0?(A.output+=S,O.output+=S):(A.output+=X,O.output+=X),he()!=="*"&&(A.output+=d,O.output+=d)),oe(fe)}for(;A.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","]"));A.output=Wn.escapeLast(A.output,"["),ge("brackets")}for(;A.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing",")"));A.output=Wn.escapeLast(A.output,"("),ge("parens")}for(;A.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(ff("closing","}"));A.output=Wn.escapeLast(A.output,"{"),ge("braces")}if(t.strictSlashes!==!0&&(O.type==="star"||O.type==="bracket")&&oe({type:"maybe_slash",value:"",output:`${p}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};Tx.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(Yy,t.maxLength):Yy,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=z3[r]||r;let s=Wn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:h,STAR:p,START_ANCHOR:d}=Gy.globChars(s),m=t.dot?g:u,y=t.dot?h:u,B=t.capture?"":"?:",S={negated:!1,prefix:""},P=t.bash===!0?".*?":p;t.capture&&(P=`(${P})`);let F=X=>X.noglobstar===!0?P:`(${B}(?:(?!${d}${X.dot?c:o}).)*?)`,H=X=>{switch(X){case"*":return`${m}${l}${P}`;case".*":return`${o}${l}${P}`;case"*.*":return`${m}${P}${o}${l}${P}`;case"*/*":return`${m}${P}${a}${l}${y}${P}`;case"**":return m+F(t);case"**/*":return`(?:${m}${F(t)}${a})?${y}${l}${P}`;case"**/*.*":return`(?:${m}${F(t)}${a})?${y}${P}${o}${l}${P}`;case"**/.*":return`(?:${m}${F(t)}${a})?${o}${l}${P}`;default:{let W=/^(.*?)\.(\w+)$/.exec(X);if(!W)return;let Z=H(W[1]);return Z?Z+o+W[2]:void 0}}},q=Wn.removePrefix(r,S),_=H(q);return _&&t.strictSlashes!==!0&&(_+=`${a}?`),_};V3.exports=Tx});var _3=I((xtt,Z3)=>{"use strict";var o0e=J("path"),a0e=W3(),Lx=X3(),Ox=Yd(),A0e=Gd(),l0e=r=>r&&typeof r=="object"&&!Array.isArray(r),Ur=(r,e,t=!1)=>{if(Array.isArray(r)){let u=r.map(h=>Ur(h,e,t));return h=>{for(let p of u){let d=p(h);if(d)return d}return!1}}let i=l0e(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Ox.isWindows(e),o=i?Ur.compileRe(r,e):Ur.makeRe(r,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u={...e,ignore:null,onMatch:null,onResult:null};l=Ur(n.ignore,u,t)}let c=(u,g=!1)=>{let{isMatch:h,match:p,output:d}=Ur.test(u,o,e,{glob:r,posix:s}),m={glob:r,state:a,regex:o,posix:s,input:u,output:d,match:p,isMatch:h};return typeof n.onResult=="function"&&n.onResult(m),h===!1?(m.isMatch=!1,g?m:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(m),m.isMatch=!1,g?m:!1):(typeof n.onMatch=="function"&&n.onMatch(m),g?m:!0)};return t&&(c.state=a),c};Ur.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},o=s.format||(n?Ox.toPosixSlashes:null),a=r===i,l=a&&o?o(r):r;return a===!1&&(l=o?o(r):r,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Ur.matchBase(r,e,t,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Ur.matchBase=(r,e,t,i=Ox.isWindows(t))=>(e instanceof RegExp?e:Ur.makeRe(e,t)).test(o0e.basename(r));Ur.isMatch=(r,e,t)=>Ur(e,t)(r);Ur.parse=(r,e)=>Array.isArray(r)?r.map(t=>Ur.parse(t,e)):Lx(r,{...e,fastpaths:!1});Ur.scan=(r,e)=>a0e(r,e);Ur.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${r.output})${o}`;r&&r.negated===!0&&(a=`^(?!${a}).*$`);let l=Ur.toRegex(a,e);return i===!0&&(l.state=r),l};Ur.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=Lx.fastpaths(r,e)),n.output||(n=Lx(r,e)),Ur.compileRe(n,e,t,i)};Ur.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};Ur.constants=A0e;Z3.exports=Ur});var Mx=I((Ptt,$3)=>{"use strict";$3.exports=_3()});var bn=I((ktt,i4)=>{"use strict";var t4=J("util"),r4=N3(),Ko=Mx(),Kx=Yd(),e4=r=>r===""||r==="./",Qr=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),t&&t.onResult&&t.onResult(u)};for(let u=0;u<e.length;u++){let g=Ko(String(e[u]),{...t,onResult:a},!0),h=g.state.negated||g.state.negatedExtglob;h&&o++;for(let p of r){let d=g(p,!0);!(h?!d.isMatch:d.isMatch)||(h?i.add(d.output):(i.delete(d.output),n.add(d.output)))}}let c=(o===e.length?[...s]:[...n]).filter(u=>!i.has(u));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};Qr.match=Qr;Qr.matcher=(r,e)=>Ko(r,e);Qr.isMatch=(r,e,t)=>Ko(e,t)(r);Qr.any=Qr.isMatch;Qr.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],o=Qr(r,e,{...t,onResult:a=>{t.onResult&&t.onResult(a),n.push(a.output)}});for(let a of n)o.includes(a)||i.add(a);return[...i]};Qr.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>Qr.contains(r,i,t));if(typeof e=="string"){if(e4(r)||e4(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return Qr.isMatch(r,e,{...t,contains:!0})};Qr.matchKeys=(r,e,t)=>{if(!Kx.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=Qr(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};Qr.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(i.some(o=>s(o)))return!0}return!1};Qr.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=Ko(String(n),t);if(!i.every(o=>s(o)))return!1}return!0};Qr.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${t4.inspect(r)}"`);return[].concat(e).every(i=>Ko(i,t)(r))};Qr.capture=(r,e,t)=>{let i=Kx.isWindows(t),s=Ko.makeRe(String(r),{...t,capture:!0}).exec(i?Kx.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};Qr.makeRe=(...r)=>Ko.makeRe(...r);Qr.scan=(...r)=>Ko.scan(...r);Qr.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of r4(String(i),e))t.push(Ko.parse(n,e));return t};Qr.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(r)?[r]:r4(r,e)};Qr.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return Qr.braces(r,{...e,expand:!0})};i4.exports=Qr});var s4=I((Dtt,n4)=>{"use strict";n4.exports=({onlyFirst:r=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,r?void 0:"g")}});var a4=I((Rtt,o4)=>{"use strict";var c0e=s4();o4.exports=r=>typeof r=="string"?r.replace(c0e(),""):r});var y4=I((Gtt,I4)=>{"use strict";I4.exports=(...r)=>[...new Set([].concat(...r))]});var sP=I((Ytt,b4)=>{"use strict";var B0e=J("stream"),w4=B0e.PassThrough,b0e=Array.prototype.slice;b4.exports=Q0e;function Q0e(){let r=[],e=!1,t=b0e.call(arguments),i=t[t.length-1];i&&!Array.isArray(i)&&i.pipe==null?t.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=w4(i);function o(){for(let c=0,u=arguments.length;c<u;c++)r.push(B4(arguments[c],i));return a(),this}function a(){if(e)return;e=!0;let c=r.shift();if(!c){process.nextTick(l);return}Array.isArray(c)||(c=[c]);let u=c.length+1;function g(){--u>0||(e=!1,a())}function h(p){function d(){p.removeListener("merge2UnpipeEnd",d),p.removeListener("end",d),g()}if(p._readableState.endEmitted)return g();p.on("merge2UnpipeEnd",d),p.on("end",d),p.pipe(s,{end:!1}),p.resume()}for(let p=0;p<c.length;p++)h(c[p]);g()}function l(){return e=!1,s.emit("queueDrain"),n&&s.end()}return s.setMaxListeners(0),s.add=o,s.on("unpipe",function(c){c.emit("merge2UnpipeEnd")}),t.length&&o.apply(null,t),s}function B4(r,e){if(Array.isArray(r))for(let t=0,i=r.length;t<i;t++)r[t]=B4(r[t],e);else{if(!r._readableState&&r.pipe&&(r=r.pipe(w4(e))),!r._readableState||!r.pause||!r.pipe)throw new Error("Only readable stream can be merged.");r.pause()}return r}});var Q4=I(Xy=>{"use strict";Object.defineProperty(Xy,"__esModule",{value:!0});function S0e(r){return r.reduce((e,t)=>[].concat(e,t),[])}Xy.flatten=S0e;function v0e(r,e){let t=[[]],i=0;for(let n of r)e(n)?(i++,t[i]=[]):t[i].push(n);return t}Xy.splitWhen=v0e});var S4=I(oP=>{"use strict";Object.defineProperty(oP,"__esModule",{value:!0});function x0e(r){return r.code==="ENOENT"}oP.isEnoentCodeError=x0e});var v4=I(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});var aP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function P0e(r,e){return new aP(r,e)}AP.createDirentFromStats=P0e});var x4=I(yf=>{"use strict";Object.defineProperty(yf,"__esModule",{value:!0});var k0e=J("path"),D0e=2,R0e=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function F0e(r){return r.replace(/\\/g,"/")}yf.unixify=F0e;function N0e(r,e){return k0e.resolve(r,e)}yf.makeAbsolute=N0e;function T0e(r){return r.replace(R0e,"\\$2")}yf.escape=T0e;function L0e(r){if(r.charAt(0)==="."){let e=r.charAt(1);if(e==="/"||e==="\\")return r.slice(D0e)}return r}yf.removeLeadingDotSegment=L0e});var k4=I((Vtt,P4)=>{P4.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1}});var F4=I((Xtt,R4)=>{var O0e=k4(),D4={"{":"}","(":")","[":"]"},M0e=function(r){if(r[0]==="!")return!0;for(var e=0,t=-2,i=-2,n=-2,s=-2,o=-2;e<r.length;){if(r[e]==="*"||r[e+1]==="?"&&/[\].+)]/.test(r[e])||i!==-1&&r[e]==="["&&r[e+1]!=="]"&&(i<e&&(i=r.indexOf("]",e)),i>e&&(o===-1||o>i||(o=r.indexOf("\\",e),o===-1||o>i)))||n!==-1&&r[e]==="{"&&r[e+1]!=="}"&&(n=r.indexOf("}",e),n>e&&(o=r.indexOf("\\",e),o===-1||o>n))||s!==-1&&r[e]==="("&&r[e+1]==="?"&&/[:!=]/.test(r[e+2])&&r[e+3]!==")"&&(s=r.indexOf(")",e),s>e&&(o=r.indexOf("\\",e),o===-1||o>s))||t!==-1&&r[e]==="("&&r[e+1]!=="|"&&(t<e&&(t=r.indexOf("|",e)),t!==-1&&r[t+1]!==")"&&(s=r.indexOf(")",t),s>t&&(o=r.indexOf("\\",t),o===-1||o>s))))return!0;if(r[e]==="\\"){var a=r[e+1];e+=2;var l=D4[a];if(l){var c=r.indexOf(l,e);c!==-1&&(e=c+1)}if(r[e]==="!")return!0}else e++}return!1},K0e=function(r){if(r[0]==="!")return!0;for(var e=0;e<r.length;){if(/[*?{}()[\]]/.test(r[e]))return!0;if(r[e]==="\\"){var t=r[e+1];e+=2;var i=D4[t];if(i){var n=r.indexOf(i,e);n!==-1&&(e=n+1)}if(r[e]==="!")return!0}else e++}return!1};R4.exports=function(e,t){if(typeof e!="string"||e==="")return!1;if(O0e(e))return!0;var i=M0e;return t&&t.strict===!1&&(i=K0e),i(e)}});var T4=I((Ztt,N4)=>{"use strict";var U0e=F4(),H0e=J("path").posix.dirname,j0e=J("os").platform()==="win32",lP="/",G0e=/\\/g,Y0e=/[\{\[].*[\}\]]$/,q0e=/(^|[^\\])([\{\[]|\([^\)]+$)/,J0e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;N4.exports=function(e,t){var i=Object.assign({flipBackslashes:!0},t);i.flipBackslashes&&j0e&&e.indexOf(lP)<0&&(e=e.replace(G0e,lP)),Y0e.test(e)&&(e+=lP),e+="a";do e=H0e(e);while(U0e(e)||q0e.test(e));return e.replace(J0e,"$1")}});var Y4=I(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});var W0e=J("path"),z0e=T4(),L4=bn(),V0e=Mx(),O4="**",X0e="\\",Z0e=/[*?]|^!/,_0e=/\[.*]/,$0e=/(?:^|[^!*+?@])\(.*\|.*\)/,ebe=/[!*+?@]\(.*\)/,tbe=/{.*(?:,|\.\.).*}/;function M4(r,e={}){return!K4(r,e)}Zr.isStaticPattern=M4;function K4(r,e={}){return!!(e.caseSensitiveMatch===!1||r.includes(X0e)||Z0e.test(r)||_0e.test(r)||$0e.test(r)||e.extglob!==!1&&ebe.test(r)||e.braceExpansion!==!1&&tbe.test(r))}Zr.isDynamicPattern=K4;function rbe(r){return Zy(r)?r.slice(1):r}Zr.convertToPositivePattern=rbe;function ibe(r){return"!"+r}Zr.convertToNegativePattern=ibe;function Zy(r){return r.startsWith("!")&&r[1]!=="("}Zr.isNegativePattern=Zy;function U4(r){return!Zy(r)}Zr.isPositivePattern=U4;function nbe(r){return r.filter(Zy)}Zr.getNegativePatterns=nbe;function sbe(r){return r.filter(U4)}Zr.getPositivePatterns=sbe;function obe(r){return z0e(r,{flipBackslashes:!1})}Zr.getBaseDirectory=obe;function abe(r){return r.includes(O4)}Zr.hasGlobStar=abe;function H4(r){return r.endsWith("/"+O4)}Zr.endsWithSlashGlobStar=H4;function Abe(r){let e=W0e.basename(r);return H4(r)||M4(e)}Zr.isAffectDepthOfReadingPattern=Abe;function lbe(r){return r.reduce((e,t)=>e.concat(j4(t)),[])}Zr.expandPatternsWithBraceExpansion=lbe;function j4(r){return L4.braces(r,{expand:!0,nodupes:!0})}Zr.expandBraceExpansion=j4;function cbe(r,e){let t=V0e.scan(r,Object.assign(Object.assign({},e),{parts:!0}));return t.parts.length===0?[r]:t.parts}Zr.getPatternParts=cbe;function G4(r,e){return L4.makeRe(r,e)}Zr.makeRe=G4;function ube(r,e){return r.map(t=>G4(t,e))}Zr.convertPatternsToRe=ube;function gbe(r,e){return e.some(t=>t.test(r))}Zr.matchAny=gbe});var J4=I(cP=>{"use strict";Object.defineProperty(cP,"__esModule",{value:!0});var fbe=sP();function hbe(r){let e=fbe(r);return r.forEach(t=>{t.once("error",i=>e.emit("error",i))}),e.once("close",()=>q4(r)),e.once("end",()=>q4(r)),e}cP.merge=hbe;function q4(r){r.forEach(e=>e.emit("close"))}});var W4=I(_y=>{"use strict";Object.defineProperty(_y,"__esModule",{value:!0});function pbe(r){return typeof r=="string"}_y.isString=pbe;function dbe(r){return r===""}_y.isEmpty=dbe});var Ma=I(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});var Cbe=Q4();Oa.array=Cbe;var mbe=S4();Oa.errno=mbe;var Ebe=v4();Oa.fs=Ebe;var Ibe=x4();Oa.path=Ibe;var ybe=Y4();Oa.pattern=ybe;var wbe=J4();Oa.stream=wbe;var Bbe=W4();Oa.string=Bbe});var _4=I(Ka=>{"use strict";Object.defineProperty(Ka,"__esModule",{value:!0});var Sc=Ma();function bbe(r,e){let t=z4(r),i=V4(r,e.ignore),n=t.filter(l=>Sc.pattern.isStaticPattern(l,e)),s=t.filter(l=>Sc.pattern.isDynamicPattern(l,e)),o=uP(n,i,!1),a=uP(s,i,!0);return o.concat(a)}Ka.generate=bbe;function uP(r,e,t){let i=X4(r);return"."in i?[gP(".",r,e,t)]:Z4(i,e,t)}Ka.convertPatternsToTasks=uP;function z4(r){return Sc.pattern.getPositivePatterns(r)}Ka.getPositivePatterns=z4;function V4(r,e){return Sc.pattern.getNegativePatterns(r).concat(e).map(Sc.pattern.convertToPositivePattern)}Ka.getNegativePatternsAsPositive=V4;function X4(r){let e={};return r.reduce((t,i)=>{let n=Sc.pattern.getBaseDirectory(i);return n in t?t[n].push(i):t[n]=[i],t},e)}Ka.groupPatternsByBaseDirectory=X4;function Z4(r,e,t){return Object.keys(r).map(i=>gP(i,r[i],e,t))}Ka.convertPatternGroupsToTasks=Z4;function gP(r,e,t,i){return{dynamic:i,positive:e,negative:t,base:r,patterns:[].concat(e,t.map(Sc.pattern.convertToNegativePattern))}}Ka.convertPatternGroupToTask=gP});var eW=I($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.read=void 0;function Qbe(r,e,t){e.fs.lstat(r,(i,n)=>{if(i!==null){$4(t,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){fP(t,n);return}e.fs.stat(r,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){$4(t,s);return}fP(t,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),fP(t,o)})})}$y.read=Qbe;function $4(r,e){r(e)}function fP(r,e){r(null,e)}});var tW=I(ew=>{"use strict";Object.defineProperty(ew,"__esModule",{value:!0});ew.read=void 0;function Sbe(r,e){let t=e.fs.lstatSync(r);if(!t.isSymbolicLink()||!e.followSymbolicLink)return t;try{let i=e.fs.statSync(r);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return t;throw i}}ew.read=Sbe});var rW=I(KA=>{"use strict";Object.defineProperty(KA,"__esModule",{value:!0});KA.createFileSystemAdapter=KA.FILE_SYSTEM_ADAPTER=void 0;var tw=J("fs");KA.FILE_SYSTEM_ADAPTER={lstat:tw.lstat,stat:tw.stat,lstatSync:tw.lstatSync,statSync:tw.statSync};function vbe(r){return r===void 0?KA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},KA.FILE_SYSTEM_ADAPTER),r)}KA.createFileSystemAdapter=vbe});var iW=I(pP=>{"use strict";Object.defineProperty(pP,"__esModule",{value:!0});var xbe=rW(),hP=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=xbe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,t){return e!=null?e:t}};pP.default=hP});var vc=I(UA=>{"use strict";Object.defineProperty(UA,"__esModule",{value:!0});UA.statSync=UA.stat=UA.Settings=void 0;var nW=eW(),Pbe=tW(),dP=iW();UA.Settings=dP.default;function kbe(r,e,t){if(typeof e=="function"){nW.read(r,CP(),e);return}nW.read(r,CP(e),t)}UA.stat=kbe;function Dbe(r,e){let t=CP(e);return Pbe.read(r,t)}UA.statSync=Dbe;function CP(r={}){return r instanceof dP.default?r:new dP.default(r)}});var oW=I((Art,sW)=>{sW.exports=Rbe;function Rbe(r,e){var t,i,n,s=!0;Array.isArray(r)?(t=[],i=r.length):(n=Object.keys(r),t={},i=n.length);function o(l){function c(){e&&e(l,t),e=null}s?process.nextTick(c):c()}function a(l,c,u){t[l]=u,(--i===0||c)&&o(c)}i?n?n.forEach(function(l){r[l](function(c,u){a(l,c,u)})}):r.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var mP=I(iw=>{"use strict";Object.defineProperty(iw,"__esModule",{value:!0});iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var rw=process.versions.node.split(".");if(rw[0]===void 0||rw[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var aW=Number.parseInt(rw[0],10),Fbe=Number.parseInt(rw[1],10),AW=10,Nbe=10,Tbe=aW>AW,Lbe=aW===AW&&Fbe>=Nbe;iw.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Tbe||Lbe});var lW=I(nw=>{"use strict";Object.defineProperty(nw,"__esModule",{value:!0});nw.createDirentFromStats=void 0;var EP=class{constructor(e,t){this.name=e,this.isBlockDevice=t.isBlockDevice.bind(t),this.isCharacterDevice=t.isCharacterDevice.bind(t),this.isDirectory=t.isDirectory.bind(t),this.isFIFO=t.isFIFO.bind(t),this.isFile=t.isFile.bind(t),this.isSocket=t.isSocket.bind(t),this.isSymbolicLink=t.isSymbolicLink.bind(t)}};function Obe(r,e){return new EP(r,e)}nw.createDirentFromStats=Obe});var IP=I(sw=>{"use strict";Object.defineProperty(sw,"__esModule",{value:!0});sw.fs=void 0;var Mbe=lW();sw.fs=Mbe});var yP=I(ow=>{"use strict";Object.defineProperty(ow,"__esModule",{value:!0});ow.joinPathSegments=void 0;function Kbe(r,e,t){return r.endsWith(t)?r+e:r+t+e}ow.joinPathSegments=Kbe});var pW=I(HA=>{"use strict";Object.defineProperty(HA,"__esModule",{value:!0});HA.readdir=HA.readdirWithFileTypes=HA.read=void 0;var Ube=vc(),cW=oW(),Hbe=mP(),uW=IP(),gW=yP();function jbe(r,e,t){if(!e.stats&&Hbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){fW(r,e,t);return}hW(r,e,t)}HA.read=jbe;function fW(r,e,t){e.fs.readdir(r,{withFileTypes:!0},(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:gW.joinPathSegments(r,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){wP(t,s);return}let o=s.map(a=>Gbe(a,e));cW(o,(a,l)=>{if(a!==null){aw(t,a);return}wP(t,l)})})}HA.readdirWithFileTypes=fW;function Gbe(r,e){return t=>{if(!r.dirent.isSymbolicLink()){t(null,r);return}e.fs.stat(r.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){t(i);return}t(null,r);return}r.dirent=uW.fs.createDirentFromStats(r.name,n),t(null,r)})}}function hW(r,e,t){e.fs.readdir(r,(i,n)=>{if(i!==null){aw(t,i);return}let s=n.map(o=>{let a=gW.joinPathSegments(r,o,e.pathSegmentSeparator);return l=>{Ube.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:uW.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});cW(s,(o,a)=>{if(o!==null){aw(t,o);return}wP(t,a)})})}HA.readdir=hW;function aw(r,e){r(e)}function wP(r,e){r(null,e)}});var IW=I(jA=>{"use strict";Object.defineProperty(jA,"__esModule",{value:!0});jA.readdir=jA.readdirWithFileTypes=jA.read=void 0;var Ybe=vc(),qbe=mP(),dW=IP(),CW=yP();function Jbe(r,e){return!e.stats&&qbe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?mW(r,e):EW(r,e)}jA.read=Jbe;function mW(r,e){return e.fs.readdirSync(r,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:CW.joinPathSegments(r,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=dW.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}jA.readdirWithFileTypes=mW;function EW(r,e){return e.fs.readdirSync(r).map(i=>{let n=CW.joinPathSegments(r,i,e.pathSegmentSeparator),s=Ybe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:dW.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}jA.readdir=EW});var yW=I(GA=>{"use strict";Object.defineProperty(GA,"__esModule",{value:!0});GA.createFileSystemAdapter=GA.FILE_SYSTEM_ADAPTER=void 0;var wf=J("fs");GA.FILE_SYSTEM_ADAPTER={lstat:wf.lstat,stat:wf.stat,lstatSync:wf.lstatSync,statSync:wf.statSync,readdir:wf.readdir,readdirSync:wf.readdirSync};function Wbe(r){return r===void 0?GA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},GA.FILE_SYSTEM_ADAPTER),r)}GA.createFileSystemAdapter=Wbe});var wW=I(bP=>{"use strict";Object.defineProperty(bP,"__esModule",{value:!0});var zbe=J("path"),Vbe=vc(),Xbe=yW(),BP=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=Xbe.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,zbe.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new Vbe.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};bP.default=BP});var Aw=I(YA=>{"use strict";Object.defineProperty(YA,"__esModule",{value:!0});YA.Settings=YA.scandirSync=YA.scandir=void 0;var BW=pW(),Zbe=IW(),QP=wW();YA.Settings=QP.default;function _be(r,e,t){if(typeof e=="function"){BW.read(r,SP(),e);return}BW.read(r,SP(e),t)}YA.scandir=_be;function $be(r,e){let t=SP(e);return Zbe.read(r,t)}YA.scandirSync=$be;function SP(r={}){return r instanceof QP.default?r:new QP.default(r)}});var QW=I((mrt,bW)=>{"use strict";function eQe(r){var e=new r,t=e;function i(){var s=e;return s.next?e=s.next:(e=new r,t=e),s.next=null,s}function n(s){t.next=s,t=s}return{get:i,release:n}}bW.exports=eQe});var vW=I((Ert,vP)=>{"use strict";var tQe=QW();function SW(r,e,t){if(typeof r=="function"&&(t=e,e=r,r=null),t<1)throw new Error("fastqueue concurrency must be greater than 1");var i=tQe(rQe),n=null,s=null,o=0,a=null,l={push:m,drain:Es,saturated:Es,pause:u,paused:!1,concurrency:t,running:c,resume:p,idle:d,length:g,getQueue:h,unshift:y,empty:Es,kill:S,killAndDrain:P,error:F};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,q=0;H;)H=H.next,q++;return q}function h(){for(var H=n,q=[];H;)q.push(H.value),H=H.next;return q}function p(){if(!!l.paused){l.paused=!1;for(var H=0;H<l.concurrency;H++)o++,B()}}function d(){return o===0&&l.length()===0}function m(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,_.errorHandler=a,o===l.concurrency||l.paused?s?(s.next=_,s=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function y(H,q){var _=i.get();_.context=r,_.release=B,_.value=H,_.callback=q||Es,o===l.concurrency||l.paused?n?(_.next=n,n=_):(n=_,s=_,l.saturated()):(o++,e.call(r,_.value,_.worked))}function B(H){H&&i.release(H);var q=n;q?l.paused?o--:(s===n&&(s=null),n=q.next,q.next=null,e.call(r,q.value,q.worked),s===null&&l.empty()):--o===0&&l.drain()}function S(){n=null,s=null,l.drain=Es}function P(){n=null,s=null,l.drain(),l.drain=Es}function F(H){a=H}}function Es(){}function rQe(){this.value=null,this.callback=Es,this.next=null,this.release=Es,this.context=null,this.errorHandler=null;var r=this;this.worked=function(t,i){var n=r.callback,s=r.errorHandler,o=r.value;r.value=null,r.callback=Es,r.errorHandler&&s(t,o),n.call(r.context,t,i),r.release(r)}}function iQe(r,e,t){typeof r=="function"&&(t=e,e=r,r=null);function i(u,g){e.call(this,u).then(function(h){g(null,h)},g)}var n=SW(r,i,t),s=n.push,o=n.unshift;return n.push=a,n.unshift=l,n.drained=c,n;function a(u){var g=new Promise(function(h,p){s(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function l(u){var g=new Promise(function(h,p){o(u,function(d,m){if(d){p(d);return}h(m)})});return g.catch(Es),g}function c(){var u=n.drain,g=new Promise(function(h){n.drain=function(){u(),h()}});return g}}vP.exports=SW;vP.exports.promise=iQe});var lw=I(jo=>{"use strict";Object.defineProperty(jo,"__esModule",{value:!0});jo.joinPathSegments=jo.replacePathSegmentSeparator=jo.isAppliedFilter=jo.isFatalError=void 0;function nQe(r,e){return r.errorFilter===null?!0:!r.errorFilter(e)}jo.isFatalError=nQe;function sQe(r,e){return r===null||r(e)}jo.isAppliedFilter=sQe;function oQe(r,e){return r.split(/[/\\]/).join(e)}jo.replacePathSegmentSeparator=oQe;function aQe(r,e,t){return r===""?e:r.endsWith(t)?r+e:r+t+e}jo.joinPathSegments=aQe});var kP=I(PP=>{"use strict";Object.defineProperty(PP,"__esModule",{value:!0});var AQe=lw(),xP=class{constructor(e,t){this._root=e,this._settings=t,this._root=AQe.replacePathSegmentSeparator(e,t.pathSegmentSeparator)}};PP.default=xP});var FP=I(RP=>{"use strict";Object.defineProperty(RP,"__esModule",{value:!0});var lQe=J("events"),cQe=Aw(),uQe=vW(),cw=lw(),gQe=kP(),DP=class extends gQe.default{constructor(e,t){super(e,t),this._settings=t,this._scandir=cQe.scandir,this._emitter=new lQe.EventEmitter,this._queue=uQe(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,t){let i={directory:e,base:t};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,t){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){t(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);t(null,void 0)})}_handleError(e){this._isDestroyed||!cw.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,t){if(this._isDestroyed||this._isFatalError)return;let i=e.path;t!==void 0&&(e.path=cw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),cw.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&cw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};RP.default=DP});var xW=I(TP=>{"use strict";Object.defineProperty(TP,"__esModule",{value:!0});var fQe=FP(),NP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new fQe.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(t=>{hQe(e,t)}),this._reader.onEntry(t=>{this._storage.add(t)}),this._reader.onEnd(()=>{pQe(e,[...this._storage])}),this._reader.read()}};TP.default=NP;function hQe(r,e){r(e)}function pQe(r,e){r(null,e)}});var PW=I(OP=>{"use strict";Object.defineProperty(OP,"__esModule",{value:!0});var dQe=J("stream"),CQe=FP(),LP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new CQe.default(this._root,this._settings),this._stream=new dQe.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};OP.default=LP});var kW=I(KP=>{"use strict";Object.defineProperty(KP,"__esModule",{value:!0});var mQe=Aw(),uw=lw(),EQe=kP(),MP=class extends EQe.default{constructor(){super(...arguments),this._scandir=mQe.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,t){this._queue.add({directory:e,base:t})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,t){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,t)}catch(i){this._handleError(i)}}_handleError(e){if(!!uw.isFatalError(this._settings,e))throw e}_handleEntry(e,t){let i=e.path;t!==void 0&&(e.path=uw.joinPathSegments(t,e.name,this._settings.pathSegmentSeparator)),uw.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&uw.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};KP.default=MP});var DW=I(HP=>{"use strict";Object.defineProperty(HP,"__esModule",{value:!0});var IQe=kW(),UP=class{constructor(e,t){this._root=e,this._settings=t,this._reader=new IQe.default(this._root,this._settings)}read(){return this._reader.read()}};HP.default=UP});var RW=I(GP=>{"use strict";Object.defineProperty(GP,"__esModule",{value:!0});var yQe=J("path"),wQe=Aw(),jP=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,yQe.sep),this.fsScandirSettings=new wQe.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,t){return e!=null?e:t}};GP.default=jP});var qP=I(Go=>{"use strict";Object.defineProperty(Go,"__esModule",{value:!0});Go.Settings=Go.walkStream=Go.walkSync=Go.walk=void 0;var FW=xW(),BQe=PW(),bQe=DW(),YP=RW();Go.Settings=YP.default;function QQe(r,e,t){if(typeof e=="function"){new FW.default(r,gw()).read(e);return}new FW.default(r,gw(e)).read(t)}Go.walk=QQe;function SQe(r,e){let t=gw(e);return new bQe.default(r,t).read()}Go.walkSync=SQe;function vQe(r,e){let t=gw(e);return new BQe.default(r,t).read()}Go.walkStream=vQe;function gw(r={}){return r instanceof YP.default?r:new YP.default(r)}});var zP=I(WP=>{"use strict";Object.defineProperty(WP,"__esModule",{value:!0});var xQe=J("path"),PQe=vc(),NW=Ma(),JP=class{constructor(e){this._settings=e,this._fsStatSettings=new PQe.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return xQe.resolve(this._settings.cwd,e)}_makeEntry(e,t){let i={name:t,path:t,dirent:NW.fs.createDirentFromStats(t,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!NW.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};WP.default=JP});var ZP=I(XP=>{"use strict";Object.defineProperty(XP,"__esModule",{value:!0});var kQe=J("stream"),DQe=vc(),RQe=qP(),FQe=zP(),VP=class extends FQe.default{constructor(){super(...arguments),this._walkStream=RQe.walkStream,this._stat=DQe.stat}dynamic(e,t){return this._walkStream(e,t)}static(e,t){let i=e.map(this._getFullEntryPath,this),n=new kQe.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],t).then(l=>{l!==null&&t.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;s<i.length;s++)n.write(s);return n}_getEntry(e,t,i){return this._getStat(e).then(n=>this._makeEntry(n,t)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((t,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?t(s):i(n))})}};XP.default=VP});var TW=I($P=>{"use strict";Object.defineProperty($P,"__esModule",{value:!0});var Bf=Ma(),_P=class{constructor(e,t,i){this._patterns=e,this._settings=t,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Bf.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let t of e){let i=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:t,segments:i,sections:n})}}_getPatternSegments(e){return Bf.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Bf.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Bf.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Bf.array.splitWhen(e,t=>t.dynamic&&Bf.pattern.hasGlobStar(t.pattern))}};$P.default=_P});var LW=I(tk=>{"use strict";Object.defineProperty(tk,"__esModule",{value:!0});var NQe=TW(),ek=class extends NQe.default{match(e){let t=e.split("/"),i=t.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||t.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};tk.default=ek});var OW=I(ik=>{"use strict";Object.defineProperty(ik,"__esModule",{value:!0});var fw=Ma(),TQe=LW(),rk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t}getFilter(e,t,i){let n=this._getMatcher(t),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new TQe.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let t=e.filter(fw.pattern.isAffectDepthOfReadingPattern);return fw.pattern.convertPatternsToRe(t,this._micromatchOptions)}_filter(e,t,i,n){let s=this._getEntryLevel(e,t.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(t))return!1;let o=fw.path.removeLeadingDotSegment(t.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,t){let i=e.split("/").length;return t.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,t){return!this._settings.baseNameMatch&&!t.match(e)}_isSkippedByNegativePatterns(e,t){return!fw.pattern.matchAny(e,t)}};ik.default=rk});var MW=I(sk=>{"use strict";Object.defineProperty(sk,"__esModule",{value:!0});var _d=Ma(),nk=class{constructor(e,t){this._settings=e,this._micromatchOptions=t,this.index=new Map}getFilter(e,t){let i=_d.pattern.convertPatternsToRe(e,this._micromatchOptions),n=_d.pattern.convertPatternsToRe(t,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,t,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,t)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,t){if(!this._settings.absolute)return!1;let i=_d.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,t)}_isMatchToPatterns(e,t){let i=_d.path.removeLeadingDotSegment(e);return _d.pattern.matchAny(i,t)}};sk.default=nk});var KW=I(ak=>{"use strict";Object.defineProperty(ak,"__esModule",{value:!0});var LQe=Ma(),ok=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return LQe.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ak.default=ok});var HW=I(lk=>{"use strict";Object.defineProperty(lk,"__esModule",{value:!0});var UW=Ma(),Ak=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let t=e.path;return this._settings.absolute&&(t=UW.path.makeAbsolute(this._settings.cwd,t),t=UW.path.unixify(t)),this._settings.markDirectories&&e.dirent.isDirectory()&&(t+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:t}):t}};lk.default=Ak});var hw=I(uk=>{"use strict";Object.defineProperty(uk,"__esModule",{value:!0});var OQe=J("path"),MQe=OW(),KQe=MW(),UQe=KW(),HQe=HW(),ck=class{constructor(e){this._settings=e,this.errorFilter=new UQe.default(this._settings),this.entryFilter=new KQe.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new MQe.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new HQe.default(this._settings)}_getRootDirectory(e){return OQe.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let t=e.base==="."?"":e.base;return{basePath:t,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(t,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};uk.default=ck});var jW=I(fk=>{"use strict";Object.defineProperty(fk,"__esModule",{value:!0});var jQe=ZP(),GQe=hw(),gk=class extends GQe.default{constructor(){super(...arguments),this._reader=new jQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(t,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};fk.default=gk});var GW=I(pk=>{"use strict";Object.defineProperty(pk,"__esModule",{value:!0});var YQe=J("stream"),qQe=ZP(),JQe=hw(),hk=class extends JQe.default{constructor(){super(...arguments),this._reader=new qQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(t,e,i),s=new YQe.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};pk.default=hk});var YW=I(Ck=>{"use strict";Object.defineProperty(Ck,"__esModule",{value:!0});var WQe=vc(),zQe=qP(),VQe=zP(),dk=class extends VQe.default{constructor(){super(...arguments),this._walkSync=zQe.walkSync,this._statSync=WQe.statSync}dynamic(e,t){return this._walkSync(e,t)}static(e,t){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,t);o===null||!t.entryFilter(o)||i.push(o)}return i}_getEntry(e,t,i){try{let n=this._getStat(e);return this._makeEntry(n,t)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};Ck.default=dk});var qW=I(Ek=>{"use strict";Object.defineProperty(Ek,"__esModule",{value:!0});var XQe=YW(),ZQe=hw(),mk=class extends ZQe.default{constructor(){super(...arguments),this._reader=new XQe.default(this._settings)}read(e){let t=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(t,e,i).map(i.transform)}api(e,t,i){return t.dynamic?this._reader.dynamic(e,i):this._reader.static(t.patterns,i)}};Ek.default=mk});var JW=I($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});var bf=J("fs"),_Qe=J("os"),$Qe=_Qe.cpus().length;$d.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:bf.lstat,lstatSync:bf.lstatSync,stat:bf.stat,statSync:bf.statSync,readdir:bf.readdir,readdirSync:bf.readdirSync};var Ik=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,$Qe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,t){return e===void 0?t:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},$d.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};$d.default=Ik});var pw=I((Grt,zW)=>{"use strict";var WW=_4(),eSe=jW(),tSe=GW(),rSe=qW(),yk=JW(),xc=Ma();async function wk(r,e){Qf(r);let t=Bk(r,eSe.default,e),i=await Promise.all(t);return xc.array.flatten(i)}(function(r){function e(o,a){Qf(o);let l=Bk(o,rSe.default,a);return xc.array.flatten(l)}r.sync=e;function t(o,a){Qf(o);let l=Bk(o,tSe.default,a);return xc.stream.merge(l)}r.stream=t;function i(o,a){Qf(o);let l=[].concat(o),c=new yk.default(a);return WW.generate(l,c)}r.generateTasks=i;function n(o,a){Qf(o);let l=new yk.default(a);return xc.pattern.isDynamicPattern(o,l)}r.isDynamicPattern=n;function s(o){return Qf(o),xc.path.escape(o)}r.escapePath=s})(wk||(wk={}));function Bk(r,e,t){let i=[].concat(r),n=new yk.default(t),s=WW.generate(i,n),o=new e(n);return s.map(o.read,o)}function Qf(r){if(![].concat(r).every(i=>xc.string.isString(i)&&!xc.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}zW.exports=wk});var XW=I(Pc=>{"use strict";var{promisify:iSe}=J("util"),VW=J("fs");async function bk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return(await iSe(VW[r])(t))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Qk(r,e,t){if(typeof t!="string")throw new TypeError(`Expected a string, got ${typeof t}`);try{return VW[r](t)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Pc.isFile=bk.bind(null,"stat","isFile");Pc.isDirectory=bk.bind(null,"stat","isDirectory");Pc.isSymlink=bk.bind(null,"lstat","isSymbolicLink");Pc.isFileSync=Qk.bind(null,"statSync","isFile");Pc.isDirectorySync=Qk.bind(null,"statSync","isDirectory");Pc.isSymlinkSync=Qk.bind(null,"lstatSync","isSymbolicLink")});var t8=I((qrt,Sk)=>{"use strict";var kc=J("path"),ZW=XW(),_W=r=>r.length>1?`{${r.join(",")}}`:r[0],$W=(r,e)=>{let t=r[0]==="!"?r.slice(1):r;return kc.isAbsolute(t)?t:kc.join(e,t)},nSe=(r,e)=>kc.extname(r)?`**/${r}`:`**/${r}.${_W(e)}`,e8=(r,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(t=>kc.posix.join(r,nSe(t,e.extensions))):e.files?e.files.map(t=>kc.posix.join(r,`**/${t}`)):e.extensions?[kc.posix.join(r,`**/*.${_W(e.extensions)}`)]:[kc.posix.join(r,"**")]};Sk.exports=async(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=await Promise.all([].concat(r).map(async i=>await ZW.isDirectory($W(i,e.cwd))?e8(i,e):i));return[].concat.apply([],t)};Sk.exports.sync=(r,e)=>{if(e={cwd:process.cwd(),...e},typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let t=[].concat(r).map(i=>ZW.isDirectorySync($W(i,e.cwd))?e8(i,e):i);return[].concat.apply([],t)}});var l8=I((Jrt,A8)=>{function r8(r){return Array.isArray(r)?r:[r]}var o8="",i8=" ",vk="\\",sSe=/^\s+$/,oSe=/^\\!/,aSe=/^\\#/,ASe=/\r?\n/g,lSe=/^\.*\/|^\.+$/,xk="/",n8=typeof Symbol<"u"?Symbol.for("node-ignore"):"node-ignore",cSe=(r,e,t)=>Object.defineProperty(r,e,{value:t}),uSe=/([0-z])-([0-z])/g,gSe=r=>r.replace(uSe,(e,t,i)=>t.charCodeAt(0)<=i.charCodeAt(0)?e:o8),fSe=r=>{let{length:e}=r;return r.slice(0,e-e%2)},hSe=[[/\\?\s+$/,r=>r.indexOf("\\")===0?i8:o8],[/\\\s/g,()=>i8],[/[\\$.|*+(){^]/g,r=>`\\${r}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(r,e,t)=>e+6<t.length?"(?:\\/[^\\/]+)*":"\\/.+"],[/(^|[^\\]+)\\\*(?=.+)/g,(r,e)=>`${e}[^\\/]*`],[/\\\\\\(?=[$.|*+(){^])/g,()=>vk],[/\\\\/g,()=>vk],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(r,e,t,i,n)=>e===vk?`\\[${t}${fSe(i)}${n}`:n==="]"&&i.length%2===0?`[${gSe(t)}${i}]`:"[]"],[/(?:[^*])$/,r=>/\/$/.test(r)?`${r}$`:`${r}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(r,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`]],s8=Object.create(null),pSe=(r,e)=>{let t=s8[r];return t||(t=hSe.reduce((i,n)=>i.replace(n[0],n[1].bind(r)),r),s8[r]=t),e?new RegExp(t,"i"):new RegExp(t)},Dk=r=>typeof r=="string",dSe=r=>r&&Dk(r)&&!sSe.test(r)&&r.indexOf("#")!==0,CSe=r=>r.split(ASe),Pk=class{constructor(e,t,i,n){this.origin=e,this.pattern=t,this.negative=i,this.regex=n}},mSe=(r,e)=>{let t=r,i=!1;r.indexOf("!")===0&&(i=!0,r=r.substr(1)),r=r.replace(oSe,"!").replace(aSe,"#");let n=pSe(r,e);return new Pk(t,r,i,n)},ESe=(r,e)=>{throw new e(r)},Ua=(r,e,t)=>Dk(r)?r?Ua.isNotRelative(r)?t(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:t("path must not be empty",TypeError):t(`path must be a string, but got \`${e}\``,TypeError),a8=r=>lSe.test(r);Ua.isNotRelative=a8;Ua.convert=r=>r;var kk=class{constructor({ignorecase:e=!0}={}){cSe(this,n8,!0),this._rules=[],this._ignorecase=e,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[n8]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(dSe(e)){let t=mSe(e,this._ignorecase);this._added=!0,this._rules.push(t)}}add(e){return this._added=!1,r8(Dk(e)?CSe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,t){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!t)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,t,i,n){let s=e&&Ua.convert(e);return Ua(s,e,ESe),this._t(s,t,i,n)}_t(e,t,i,n){if(e in t)return t[e];if(n||(n=e.split(xk)),n.pop(),!n.length)return t[e]=this._testOne(e,i);let s=this._t(n.join(xk)+xk,t,i,n);return t[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return r8(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},dw=r=>new kk(r),ISe=()=>!1,ySe=r=>Ua(r&&Ua.convert(r),r,ISe);dw.isPathValid=ySe;dw.default=dw;A8.exports=dw;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let r=t=>/^\\\\\?\\/.test(t)||/["<>|\u0000-\u001F]+/u.test(t)?t:t.replace(/\\/g,"/");Ua.convert=r;let e=/^[a-z]:\//i;Ua.isNotRelative=t=>e.test(t)||a8(t)}});var u8=I((Wrt,c8)=>{"use strict";c8.exports=r=>{let e=/^\\\\\?\\/.test(r),t=/[^\u0000-\u0080]+/.test(r);return e||t?r:r.replace(/\\/g,"/")}});var m8=I((zrt,Rk)=>{"use strict";var{promisify:wSe}=J("util"),g8=J("fs"),Ha=J("path"),f8=pw(),BSe=l8(),eC=u8(),h8=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],bSe=wSe(g8.readFile),QSe=r=>e=>e.startsWith("!")?"!"+Ha.posix.join(r,e.slice(1)):Ha.posix.join(r,e),SSe=(r,e)=>{let t=eC(Ha.relative(e.cwd,Ha.dirname(e.fileName)));return r.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(QSe(t))},p8=r=>{let e=BSe();for(let t of r)e.add(SSe(t.content,{cwd:t.cwd,fileName:t.filePath}));return e},vSe=(r,e)=>{if(r=eC(r),Ha.isAbsolute(e)){if(eC(e).startsWith(r))return e;throw new Error(`Path ${e} is not in cwd ${r}`)}return Ha.join(r,e)},d8=(r,e)=>t=>r.ignores(eC(Ha.relative(e,vSe(e,t.path||t)))),xSe=async(r,e)=>{let t=Ha.join(e,r),i=await bSe(t,"utf8");return{cwd:e,filePath:t,content:i}},PSe=(r,e)=>{let t=Ha.join(e,r),i=g8.readFileSync(t,"utf8");return{cwd:e,filePath:t,content:i}},C8=({ignore:r=[],cwd:e=eC(process.cwd())}={})=>({ignore:r,cwd:e});Rk.exports=async r=>{r=C8(r);let e=await f8("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}),t=await Promise.all(e.map(n=>xSe(n,r.cwd))),i=p8(t);return d8(i,r.cwd)};Rk.exports.sync=r=>{r=C8(r);let t=f8.sync("**/.gitignore",{ignore:h8.concat(r.ignore),cwd:r.cwd}).map(n=>PSe(n,r.cwd)),i=p8(t);return d8(i,r.cwd)}});var I8=I((Vrt,E8)=>{"use strict";var{Transform:kSe}=J("stream"),Cw=class extends kSe{constructor(){super({objectMode:!0})}},Fk=class extends Cw{constructor(e){super(),this._filter=e}_transform(e,t,i){this._filter(e)&&this.push(e),i()}},Nk=class extends Cw{constructor(){super(),this._pushed=new Set}_transform(e,t,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};E8.exports={FilterStream:Fk,UniqueStream:Nk}});var Mk=I((Xrt,Dc)=>{"use strict";var w8=J("fs"),mw=y4(),DSe=sP(),Ew=pw(),Iw=t8(),Tk=m8(),{FilterStream:RSe,UniqueStream:FSe}=I8(),B8=()=>!1,y8=r=>r[0]==="!",NSe=r=>{if(!r.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},TSe=(r={})=>{if(!r.cwd)return;let e;try{e=w8.statSync(r.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},LSe=r=>r.stats instanceof w8.Stats?r.path:r,yw=(r,e)=>{r=mw([].concat(r)),NSe(r),TSe(e);let t=[];e={ignore:[],expandDirectories:!0,...e};for(let[i,n]of r.entries()){if(y8(n))continue;let s=r.slice(i).filter(a=>y8(a)).map(a=>a.slice(1)),o={...e,ignore:e.ignore.concat(s)};t.push({pattern:n,options:o})}return t},OSe=(r,e)=>{let t={};return r.options.cwd&&(t.cwd=r.options.cwd),Array.isArray(r.options.expandDirectories)?t={...t,files:r.options.expandDirectories}:typeof r.options.expandDirectories=="object"&&(t={...t,...r.options.expandDirectories}),e(r.pattern,t)},Lk=(r,e)=>r.options.expandDirectories?OSe(r,e):[r.pattern],b8=r=>r&&r.gitignore?Tk.sync({cwd:r.cwd,ignore:r.ignore}):B8,Ok=r=>e=>{let{options:t}=r;return t.ignore&&Array.isArray(t.ignore)&&t.expandDirectories&&(t.ignore=Iw.sync(t.ignore)),{pattern:e,options:t}};Dc.exports=async(r,e)=>{let t=yw(r,e),i=async()=>e&&e.gitignore?Tk({cwd:e.cwd,ignore:e.ignore}):B8,n=async()=>{let l=await Promise.all(t.map(async c=>{let u=await Lk(c,Iw);return Promise.all(u.map(Ok(c)))}));return mw(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>Ew(l.pattern,l.options)));return mw(...a).filter(l=>!s(LSe(l)))};Dc.exports.sync=(r,e)=>{let t=yw(r,e),i=[];for(let o of t){let a=Lk(o,Iw.sync).map(Ok(o));i.push(...a)}let n=b8(e),s=[];for(let o of i)s=mw(s,Ew.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Dc.exports.stream=(r,e)=>{let t=yw(r,e),i=[];for(let a of t){let l=Lk(a,Iw.sync).map(Ok(a));i.push(...l)}let n=b8(e),s=new RSe(a=>!n(a)),o=new FSe;return DSe(i.map(a=>Ew.stream(a.pattern,a.options))).pipe(s).pipe(o)};Dc.exports.generateGlobTasks=yw;Dc.exports.hasMagic=(r,e)=>[].concat(r).some(t=>Ew.isDynamicPattern(t,e));Dc.exports.gitignore=Tk});var xn=I((fit,K8)=>{function XSe(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}K8.exports=XSe});var Wk=I((hit,U8)=>{var ZSe=typeof global=="object"&&global&&global.Object===Object&&global;U8.exports=ZSe});var Is=I((pit,H8)=>{var _Se=Wk(),$Se=typeof self=="object"&&self&&self.Object===Object&&self,eve=_Se||$Se||Function("return this")();H8.exports=eve});var G8=I((dit,j8)=>{var tve=Is(),rve=function(){return tve.Date.now()};j8.exports=rve});var q8=I((Cit,Y8)=>{var ive=/\s/;function nve(r){for(var e=r.length;e--&&ive.test(r.charAt(e)););return e}Y8.exports=nve});var W8=I((mit,J8)=>{var sve=q8(),ove=/^\s+/;function ave(r){return r&&r.slice(0,sve(r)+1).replace(ove,"")}J8.exports=ave});var Nc=I((Eit,z8)=>{var Ave=Is(),lve=Ave.Symbol;z8.exports=lve});var _8=I((Iit,Z8)=>{var V8=Nc(),X8=Object.prototype,cve=X8.hasOwnProperty,uve=X8.toString,gC=V8?V8.toStringTag:void 0;function gve(r){var e=cve.call(r,gC),t=r[gC];try{r[gC]=void 0;var i=!0}catch{}var n=uve.call(r);return i&&(e?r[gC]=t:delete r[gC]),n}Z8.exports=gve});var ez=I((yit,$8)=>{var fve=Object.prototype,hve=fve.toString;function pve(r){return hve.call(r)}$8.exports=pve});var Tc=I((wit,iz)=>{var tz=Nc(),dve=_8(),Cve=ez(),mve="[object Null]",Eve="[object Undefined]",rz=tz?tz.toStringTag:void 0;function Ive(r){return r==null?r===void 0?Eve:mve:rz&&rz in Object(r)?dve(r):Cve(r)}iz.exports=Ive});var Jo=I((Bit,nz)=>{function yve(r){return r!=null&&typeof r=="object"}nz.exports=yve});var fC=I((bit,sz)=>{var wve=Tc(),Bve=Jo(),bve="[object Symbol]";function Qve(r){return typeof r=="symbol"||Bve(r)&&wve(r)==bve}sz.exports=Qve});var lz=I((Qit,Az)=>{var Sve=W8(),oz=xn(),vve=fC(),az=0/0,xve=/^[-+]0x[0-9a-f]+$/i,Pve=/^0b[01]+$/i,kve=/^0o[0-7]+$/i,Dve=parseInt;function Rve(r){if(typeof r=="number")return r;if(vve(r))return az;if(oz(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=oz(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=Sve(r);var t=Pve.test(r);return t||kve.test(r)?Dve(r.slice(2),t?2:8):xve.test(r)?az:+r}Az.exports=Rve});var gz=I((Sit,uz)=>{var Fve=xn(),zk=G8(),cz=lz(),Nve="Expected a function",Tve=Math.max,Lve=Math.min;function Ove(r,e,t){var i,n,s,o,a,l,c=0,u=!1,g=!1,h=!0;if(typeof r!="function")throw new TypeError(Nve);e=cz(e)||0,Fve(t)&&(u=!!t.leading,g="maxWait"in t,s=g?Tve(cz(t.maxWait)||0,e):s,h="trailing"in t?!!t.trailing:h);function p(q){var _=i,X=n;return i=n=void 0,c=q,o=r.apply(X,_),o}function d(q){return c=q,a=setTimeout(B,e),u?p(q):o}function m(q){var _=q-l,X=q-c,W=e-_;return g?Lve(W,s-X):W}function y(q){var _=q-l,X=q-c;return l===void 0||_>=e||_<0||g&&X>=s}function B(){var q=zk();if(y(q))return S(q);a=setTimeout(B,m(q))}function S(q){return a=void 0,h&&i?p(q):(i=n=void 0,o)}function P(){a!==void 0&&clearTimeout(a),c=0,i=l=n=a=void 0}function F(){return a===void 0?o:S(zk())}function H(){var q=zk(),_=y(q);if(i=arguments,n=this,l=q,_){if(a===void 0)return d(l);if(g)return clearTimeout(a),a=setTimeout(B,e),p(l)}return a===void 0&&(a=setTimeout(B,e)),o}return H.cancel=P,H.flush=F,H}uz.exports=Ove});var hz=I((vit,fz)=>{var Mve=gz(),Kve=xn(),Uve="Expected a function";function Hve(r,e,t){var i=!0,n=!0;if(typeof r!="function")throw new TypeError(Uve);return Kve(t)&&(i="leading"in t?!!t.leading:i,n="trailing"in t?!!t.trailing:n),Mve(r,e,{leading:i,maxWait:e,trailing:n})}fz.exports=Hve});var Ya=I((Ga,Gw)=>{"use strict";Object.defineProperty(Ga,"__esModule",{value:!0});var bz=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function txe(r){return bz.includes(r)}var rxe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...bz];function ixe(r){return rxe.includes(r)}var nxe=["null","undefined","string","number","bigint","boolean","symbol"];function sxe(r){return nxe.includes(r)}function Lf(r){return e=>typeof e===r}var{toString:Qz}=Object.prototype,mC=r=>{let e=Qz.call(r).slice(8,-1);if(/HTML\w+Element/.test(e)&&V.domElement(r))return"HTMLElement";if(ixe(e))return e},ar=r=>e=>mC(e)===r;function V(r){if(r===null)return"null";switch(typeof r){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(V.observable(r))return"Observable";if(V.array(r))return"Array";if(V.buffer(r))return"Buffer";let e=mC(r);if(e)return e;if(r instanceof String||r instanceof Boolean||r instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}V.undefined=Lf("undefined");V.string=Lf("string");var oxe=Lf("number");V.number=r=>oxe(r)&&!V.nan(r);V.bigint=Lf("bigint");V.function_=Lf("function");V.null_=r=>r===null;V.class_=r=>V.function_(r)&&r.toString().startsWith("class ");V.boolean=r=>r===!0||r===!1;V.symbol=Lf("symbol");V.numericString=r=>V.string(r)&&!V.emptyStringOrWhitespace(r)&&!Number.isNaN(Number(r));V.array=(r,e)=>Array.isArray(r)?V.function_(e)?r.every(e):!0:!1;V.buffer=r=>{var e,t,i,n;return(n=(i=(t=(e=r)===null||e===void 0?void 0:e.constructor)===null||t===void 0?void 0:t.isBuffer)===null||i===void 0?void 0:i.call(t,r))!==null&&n!==void 0?n:!1};V.nullOrUndefined=r=>V.null_(r)||V.undefined(r);V.object=r=>!V.null_(r)&&(typeof r=="object"||V.function_(r));V.iterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.iterator])};V.asyncIterable=r=>{var e;return V.function_((e=r)===null||e===void 0?void 0:e[Symbol.asyncIterator])};V.generator=r=>V.iterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.asyncGenerator=r=>V.asyncIterable(r)&&V.function_(r.next)&&V.function_(r.throw);V.nativePromise=r=>ar("Promise")(r);var axe=r=>{var e,t;return V.function_((e=r)===null||e===void 0?void 0:e.then)&&V.function_((t=r)===null||t===void 0?void 0:t.catch)};V.promise=r=>V.nativePromise(r)||axe(r);V.generatorFunction=ar("GeneratorFunction");V.asyncGeneratorFunction=r=>mC(r)==="AsyncGeneratorFunction";V.asyncFunction=r=>mC(r)==="AsyncFunction";V.boundFunction=r=>V.function_(r)&&!r.hasOwnProperty("prototype");V.regExp=ar("RegExp");V.date=ar("Date");V.error=ar("Error");V.map=r=>ar("Map")(r);V.set=r=>ar("Set")(r);V.weakMap=r=>ar("WeakMap")(r);V.weakSet=r=>ar("WeakSet")(r);V.int8Array=ar("Int8Array");V.uint8Array=ar("Uint8Array");V.uint8ClampedArray=ar("Uint8ClampedArray");V.int16Array=ar("Int16Array");V.uint16Array=ar("Uint16Array");V.int32Array=ar("Int32Array");V.uint32Array=ar("Uint32Array");V.float32Array=ar("Float32Array");V.float64Array=ar("Float64Array");V.bigInt64Array=ar("BigInt64Array");V.bigUint64Array=ar("BigUint64Array");V.arrayBuffer=ar("ArrayBuffer");V.sharedArrayBuffer=ar("SharedArrayBuffer");V.dataView=ar("DataView");V.directInstanceOf=(r,e)=>Object.getPrototypeOf(r)===e.prototype;V.urlInstance=r=>ar("URL")(r);V.urlString=r=>{if(!V.string(r))return!1;try{return new URL(r),!0}catch{return!1}};V.truthy=r=>Boolean(r);V.falsy=r=>!r;V.nan=r=>Number.isNaN(r);V.primitive=r=>V.null_(r)||sxe(typeof r);V.integer=r=>Number.isInteger(r);V.safeInteger=r=>Number.isSafeInteger(r);V.plainObject=r=>{if(Qz.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||e===Object.getPrototypeOf({})};V.typedArray=r=>txe(mC(r));var Axe=r=>V.safeInteger(r)&&r>=0;V.arrayLike=r=>!V.nullOrUndefined(r)&&!V.function_(r)&&Axe(r.length);V.inRange=(r,e)=>{if(V.number(e))return r>=Math.min(0,e)&&r<=Math.max(e,0);if(V.array(e)&&e.length===2)return r>=Math.min(...e)&&r<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var lxe=1,cxe=["innerHTML","ownerDocument","style","attributes","nodeValue"];V.domElement=r=>V.object(r)&&r.nodeType===lxe&&V.string(r.nodeName)&&!V.plainObject(r)&&cxe.every(e=>e in r);V.observable=r=>{var e,t,i,n;return r?r===((t=(e=r)[Symbol.observable])===null||t===void 0?void 0:t.call(e))||r===((n=(i=r)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};V.nodeStream=r=>V.object(r)&&V.function_(r.pipe)&&!V.observable(r);V.infinite=r=>r===1/0||r===-1/0;var Sz=r=>e=>V.integer(e)&&Math.abs(e%2)===r;V.evenInteger=Sz(0);V.oddInteger=Sz(1);V.emptyArray=r=>V.array(r)&&r.length===0;V.nonEmptyArray=r=>V.array(r)&&r.length>0;V.emptyString=r=>V.string(r)&&r.length===0;V.nonEmptyString=r=>V.string(r)&&r.length>0;var uxe=r=>V.string(r)&&!/\S/.test(r);V.emptyStringOrWhitespace=r=>V.emptyString(r)||uxe(r);V.emptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length===0;V.nonEmptyObject=r=>V.object(r)&&!V.map(r)&&!V.set(r)&&Object.keys(r).length>0;V.emptySet=r=>V.set(r)&&r.size===0;V.nonEmptySet=r=>V.set(r)&&r.size>0;V.emptyMap=r=>V.map(r)&&r.size===0;V.nonEmptyMap=r=>V.map(r)&&r.size>0;V.propertyKey=r=>V.any([V.string,V.number,V.symbol],r);V.formData=r=>ar("FormData")(r);V.urlSearchParams=r=>ar("URLSearchParams")(r);var vz=(r,e,t)=>{if(!V.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(t.length===0)throw new TypeError("Invalid number of values");return r.call(t,e)};V.any=(r,...e)=>(V.array(r)?r:[r]).some(i=>vz(Array.prototype.some,i,e));V.all=(r,...e)=>vz(Array.prototype.every,r,e);var je=(r,e,t,i={})=>{if(!r){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(t.map(o=>`\`${V(o)}\``))].join(", ")}`:`received value of type \`${V(t)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};Ga.assert={undefined:r=>je(V.undefined(r),"undefined",r),string:r=>je(V.string(r),"string",r),number:r=>je(V.number(r),"number",r),bigint:r=>je(V.bigint(r),"bigint",r),function_:r=>je(V.function_(r),"Function",r),null_:r=>je(V.null_(r),"null",r),class_:r=>je(V.class_(r),"Class",r),boolean:r=>je(V.boolean(r),"boolean",r),symbol:r=>je(V.symbol(r),"symbol",r),numericString:r=>je(V.numericString(r),"string with a number",r),array:(r,e)=>{je(V.array(r),"Array",r),e&&r.forEach(e)},buffer:r=>je(V.buffer(r),"Buffer",r),nullOrUndefined:r=>je(V.nullOrUndefined(r),"null or undefined",r),object:r=>je(V.object(r),"Object",r),iterable:r=>je(V.iterable(r),"Iterable",r),asyncIterable:r=>je(V.asyncIterable(r),"AsyncIterable",r),generator:r=>je(V.generator(r),"Generator",r),asyncGenerator:r=>je(V.asyncGenerator(r),"AsyncGenerator",r),nativePromise:r=>je(V.nativePromise(r),"native Promise",r),promise:r=>je(V.promise(r),"Promise",r),generatorFunction:r=>je(V.generatorFunction(r),"GeneratorFunction",r),asyncGeneratorFunction:r=>je(V.asyncGeneratorFunction(r),"AsyncGeneratorFunction",r),asyncFunction:r=>je(V.asyncFunction(r),"AsyncFunction",r),boundFunction:r=>je(V.boundFunction(r),"Function",r),regExp:r=>je(V.regExp(r),"RegExp",r),date:r=>je(V.date(r),"Date",r),error:r=>je(V.error(r),"Error",r),map:r=>je(V.map(r),"Map",r),set:r=>je(V.set(r),"Set",r),weakMap:r=>je(V.weakMap(r),"WeakMap",r),weakSet:r=>je(V.weakSet(r),"WeakSet",r),int8Array:r=>je(V.int8Array(r),"Int8Array",r),uint8Array:r=>je(V.uint8Array(r),"Uint8Array",r),uint8ClampedArray:r=>je(V.uint8ClampedArray(r),"Uint8ClampedArray",r),int16Array:r=>je(V.int16Array(r),"Int16Array",r),uint16Array:r=>je(V.uint16Array(r),"Uint16Array",r),int32Array:r=>je(V.int32Array(r),"Int32Array",r),uint32Array:r=>je(V.uint32Array(r),"Uint32Array",r),float32Array:r=>je(V.float32Array(r),"Float32Array",r),float64Array:r=>je(V.float64Array(r),"Float64Array",r),bigInt64Array:r=>je(V.bigInt64Array(r),"BigInt64Array",r),bigUint64Array:r=>je(V.bigUint64Array(r),"BigUint64Array",r),arrayBuffer:r=>je(V.arrayBuffer(r),"ArrayBuffer",r),sharedArrayBuffer:r=>je(V.sharedArrayBuffer(r),"SharedArrayBuffer",r),dataView:r=>je(V.dataView(r),"DataView",r),urlInstance:r=>je(V.urlInstance(r),"URL",r),urlString:r=>je(V.urlString(r),"string with a URL",r),truthy:r=>je(V.truthy(r),"truthy",r),falsy:r=>je(V.falsy(r),"falsy",r),nan:r=>je(V.nan(r),"NaN",r),primitive:r=>je(V.primitive(r),"primitive",r),integer:r=>je(V.integer(r),"integer",r),safeInteger:r=>je(V.safeInteger(r),"integer",r),plainObject:r=>je(V.plainObject(r),"plain object",r),typedArray:r=>je(V.typedArray(r),"TypedArray",r),arrayLike:r=>je(V.arrayLike(r),"array-like",r),domElement:r=>je(V.domElement(r),"HTMLElement",r),observable:r=>je(V.observable(r),"Observable",r),nodeStream:r=>je(V.nodeStream(r),"Node.js Stream",r),infinite:r=>je(V.infinite(r),"infinite number",r),emptyArray:r=>je(V.emptyArray(r),"empty array",r),nonEmptyArray:r=>je(V.nonEmptyArray(r),"non-empty array",r),emptyString:r=>je(V.emptyString(r),"empty string",r),nonEmptyString:r=>je(V.nonEmptyString(r),"non-empty string",r),emptyStringOrWhitespace:r=>je(V.emptyStringOrWhitespace(r),"empty string or whitespace",r),emptyObject:r=>je(V.emptyObject(r),"empty object",r),nonEmptyObject:r=>je(V.nonEmptyObject(r),"non-empty object",r),emptySet:r=>je(V.emptySet(r),"empty set",r),nonEmptySet:r=>je(V.nonEmptySet(r),"non-empty set",r),emptyMap:r=>je(V.emptyMap(r),"empty map",r),nonEmptyMap:r=>je(V.nonEmptyMap(r),"non-empty map",r),propertyKey:r=>je(V.propertyKey(r),"PropertyKey",r),formData:r=>je(V.formData(r),"FormData",r),urlSearchParams:r=>je(V.urlSearchParams(r),"URLSearchParams",r),evenInteger:r=>je(V.evenInteger(r),"even integer",r),oddInteger:r=>je(V.oddInteger(r),"odd integer",r),directInstanceOf:(r,e)=>je(V.directInstanceOf(r,e),"T",r),inRange:(r,e)=>je(V.inRange(r,e),"in range",r),any:(r,...e)=>je(V.any(r,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(r,...e)=>je(V.all(r,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(V,{class:{value:V.class_},function:{value:V.function_},null:{value:V.null_}});Object.defineProperties(Ga.assert,{class:{value:Ga.assert.class_},function:{value:Ga.assert.function_},null:{value:Ga.assert.null_}});Ga.default=V;Gw.exports=V;Gw.exports.default=V;Gw.exports.assert=Ga.assert});var xz=I((hnt,dD)=>{"use strict";var Yw=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},Of=class{static fn(e){return(...t)=>new Of((i,n,s)=>{t.push(s),e(...t).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((t,i)=>{this._reject=i;let n=a=>{this._isPending=!1,t(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let t of this._cancelHandlers)t()}catch(t){this._reject(t)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Yw(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Of.prototype,Promise.prototype);dD.exports=Of;dD.exports.CancelError=Yw});var Pz=I((mD,ED)=>{"use strict";Object.defineProperty(mD,"__esModule",{value:!0});var gxe=J("tls"),CD=(r,e)=>{let t;typeof e=="function"?t={connect:e}:t=e;let i=typeof t.connect=="function",n=typeof t.secureConnect=="function",s=typeof t.close=="function",o=()=>{i&&t.connect(),r instanceof gxe.TLSSocket&&n&&(r.authorized?t.secureConnect():r.authorizationError||r.once("secureConnect",t.secureConnect)),s&&r.once("close",t.close)};r.writable&&!r.connecting?o():r.connecting?r.once("connect",o):r.destroyed&&s&&t.close(r._hadError)};mD.default=CD;ED.exports=CD;ED.exports.default=CD});var kz=I((yD,wD)=>{"use strict";Object.defineProperty(yD,"__esModule",{value:!0});var fxe=Pz(),hxe=Number(process.versions.node.split(".")[0]),ID=r=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};r.timings=e;let t=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};t(r),r.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||hxe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),fxe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};r.socket?i(r.socket):r.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof r.writableFinished=="boolean"?r.writableFinished:r.finished&&r.outputSize===0&&(!r.socket||r.socket.writableLength===0))()?n():r.prependOnceListener("finish",n),r.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,t(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};yD.default=ID;wD.exports=ID;wD.exports.default=ID});var Oz=I((pnt,QD)=>{"use strict";var{V4MAPPED:pxe,ADDRCONFIG:dxe,ALL:Lz,promises:{Resolver:Dz},lookup:Cxe}=J("dns"),{promisify:BD}=J("util"),mxe=J("os"),Mf=Symbol("cacheableLookupCreateConnection"),bD=Symbol("cacheableLookupInstance"),Rz=Symbol("expires"),Exe=typeof Lz=="number",Fz=r=>{if(!(r&&typeof r.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Ixe=r=>{for(let e of r)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Nz=()=>{let r=!1,e=!1;for(let t of Object.values(mxe.networkInterfaces()))for(let i of t)if(!i.internal&&(i.family==="IPv6"?e=!0:r=!0,r&&e))return{has4:r,has6:e};return{has4:r,has6:e}},yxe=r=>Symbol.iterator in r,Tz={ttl:!0},wxe={all:!0},qw=class{constructor({cache:e=new Map,maxTtl:t=1/0,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new Dz,lookup:o=Cxe}={}){if(this.maxTtl=t,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=BD(o),this._resolver instanceof Dz?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=BD(this._resolver.resolve4.bind(this._resolver)),this._resolve6=BD(this._resolver.resolve6.bind(this._resolver))),this._iface=Nz(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,t,i){if(typeof t=="function"?(i=t,t={}):typeof t=="number"&&(t={family:t}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,t).then(n=>{t.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,t={}){typeof t=="number"&&(t={family:t});let i=await this.query(e);if(t.family===6){let n=i.filter(s=>s.family===6);t.hints&pxe&&(Exe&&t.hints&Lz||n.length===0)?Ixe(i):i=n}else t.family===4&&(i=i.filter(n=>n.family===4));if(t.hints&dxe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return t.all?i:i[0]}async query(e){let t=await this._cache.get(e);if(!t){let i=this._pending[e];if(i)t=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,t=await n}}return t=t.map(i=>({...i})),t}async _resolve(e){let t=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,Tz),this._resolve6(e,Tz)].map(c=>t(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,t,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,t[Rz]=Date.now()+i;try{await this._cache.set(e,t,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}yxe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,wxe);try{let t=await this._resolve(e);t.entries.length===0&&this._fallback&&(t=await this._lookup(e),t.entries.length!==0&&this._hostnamesToFallback.add(e));let i=t.entries.length===0?this.errorTtl:t.cacheTtl;return await this._set(e,t.entries,i),delete this._pending[e],t.entries}catch(t){throw delete this._pending[e],t}}_tick(e){let t=this._nextRemovalTime;(!t||e<t)&&(clearTimeout(this._removalTimeout),this._nextRemovalTime=e,this._removalTimeout=setTimeout(()=>{this._nextRemovalTime=!1;let i=1/0,n=Date.now();for(let[s,o]of this._cache){let a=o[Rz];n>=a?this._cache.delete(s):a<i&&(i=a)}i!==1/0&&this._tick(i-n)},e),this._removalTimeout.unref&&this._removalTimeout.unref())}install(e){if(Fz(e),Mf in e)throw new Error("CacheableLookup has been already installed");e[Mf]=e.createConnection,e[bD]=this,e.createConnection=(t,i)=>("lookup"in t||(t.lookup=this.lookup),e[Mf](t,i))}uninstall(e){if(Fz(e),e[Mf]){if(e[bD]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Mf],delete e[Mf],delete e[bD]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Nz(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};QD.exports=qw;QD.exports.default=qw});var Uz=I((dnt,SD)=>{"use strict";var Bxe=typeof URL>"u"?J("url").URL:URL,bxe="text/plain",Qxe="us-ascii",Mz=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),Sxe=(r,{stripHash:e})=>{let t=r.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!t)throw new Error(`Invalid URL: ${r}`);let i=t[1].split(";"),n=t[2],s=e?"":t[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,h=""]=u.split("=").map(p=>p.trim());return g==="charset"&&(h=h.toLowerCase(),h===Qxe)?"":`${g}${h?`=${h}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==bxe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},Kz=(r,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(r=r.trim(),/^data:/i.test(r))return Sxe(r,e);let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new Bxe(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];Mz(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])Mz(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),r=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r};SD.exports=Kz;SD.exports.default=Kz});var Gz=I((Cnt,jz)=>{jz.exports=Hz;function Hz(r,e){if(r&&e)return Hz(r)(e);if(typeof r!="function")throw new TypeError("need wrapper function");return Object.keys(r).forEach(function(i){t[i]=r[i]}),t;function t(){for(var i=new Array(arguments.length),n=0;n<i.length;n++)i[n]=arguments[n];var s=r.apply(this,i),o=i[i.length-1];return typeof s=="function"&&s!==o&&Object.keys(o).forEach(function(a){s[a]=o[a]}),s}}});var xD=I((mnt,vD)=>{var Yz=Gz();vD.exports=Yz(Jw);vD.exports.strict=Yz(qz);Jw.proto=Jw(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Jw(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return qz(this)},configurable:!0})});function Jw(r){var e=function(){return e.called?e.value:(e.called=!0,e.value=r.apply(this,arguments))};return e.called=!1,e}function qz(r){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=r.apply(this,arguments)},t=r.name||"Function wrapped with `once`";return e.onceError=t+" shouldn't be called more than once",e.called=!1,e}});var PD=I((Ent,Wz)=>{var vxe=xD(),xxe=function(){},Pxe=function(r){return r.setHeader&&typeof r.abort=="function"},kxe=function(r){return r.stdio&&Array.isArray(r.stdio)&&r.stdio.length===3},Jz=function(r,e,t){if(typeof e=="function")return Jz(r,null,e);e||(e={}),t=vxe(t||xxe);var i=r._writableState,n=r._readableState,s=e.readable||e.readable!==!1&&r.readable,o=e.writable||e.writable!==!1&&r.writable,a=function(){r.writable||l()},l=function(){o=!1,s||t.call(r)},c=function(){s=!1,o||t.call(r)},u=function(d){t.call(r,d?new Error("exited with error code: "+d):null)},g=function(d){t.call(r,d)},h=function(){if(s&&!(n&&n.ended))return t.call(r,new Error("premature close"));if(o&&!(i&&i.ended))return t.call(r,new Error("premature close"))},p=function(){r.req.on("finish",l)};return Pxe(r)?(r.on("complete",l),r.on("abort",h),r.req?p():r.on("request",p)):o&&!i&&(r.on("end",a),r.on("close",a)),kxe(r)&&r.on("exit",u),r.on("end",c),r.on("finish",l),e.error!==!1&&r.on("error",g),r.on("close",h),function(){r.removeListener("complete",l),r.removeListener("abort",h),r.removeListener("request",p),r.req&&r.req.removeListener("finish",l),r.removeListener("end",a),r.removeListener("close",a),r.removeListener("finish",l),r.removeListener("exit",u),r.removeListener("end",c),r.removeListener("error",g),r.removeListener("close",h)}};Wz.exports=Jz});var Xz=I((Int,Vz)=>{var Dxe=xD(),Rxe=PD(),kD=J("fs"),EC=function(){},Fxe=/^v?\.0/.test(process.version),Ww=function(r){return typeof r=="function"},Nxe=function(r){return!Fxe||!kD?!1:(r instanceof(kD.ReadStream||EC)||r instanceof(kD.WriteStream||EC))&&Ww(r.close)},Txe=function(r){return r.setHeader&&Ww(r.abort)},Lxe=function(r,e,t,i){i=Dxe(i);var n=!1;r.on("close",function(){n=!0}),Rxe(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Nxe(r))return r.close(EC);if(Txe(r))return r.abort();if(Ww(r.destroy))return r.destroy();i(o||new Error("stream was destroyed"))}}},zz=function(r){r()},Oxe=function(r,e){return r.pipe(e)},Mxe=function(){var r=Array.prototype.slice.call(arguments),e=Ww(r[r.length-1]||EC)&&r.pop()||EC;if(Array.isArray(r[0])&&(r=r[0]),r.length<2)throw new Error("pump requires two streams per minimum");var t,i=r.map(function(n,s){var o=s<r.length-1,a=s>0;return Lxe(n,o,a,function(l){t||(t=l),l&&i.forEach(zz),!o&&(i.forEach(zz),e(t))})});return r.reduce(Oxe)};Vz.exports=Mxe});var _z=I((ynt,Zz)=>{"use strict";var{PassThrough:Kxe}=J("stream");Zz.exports=r=>{r={...r};let{array:e}=r,{encoding:t}=r,i=t==="buffer",n=!1;e?n=!(t||i):t=t||"utf8",i&&(t=null);let s=new Kxe({objectMode:n});t&&s.setEncoding(t);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var $z=I((wnt,Kf)=>{"use strict";var Uxe=Xz(),Hxe=_z(),zw=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Vw(r,e){if(!r)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:t}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Uxe(r,Hxe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>t&&o(new zw)})}),i.getBufferedValue()}Kf.exports=Vw;Kf.exports.default=Vw;Kf.exports.buffer=(r,e)=>Vw(r,{...e,encoding:"buffer"});Kf.exports.array=(r,e)=>Vw(r,{...e,array:!0});Kf.exports.MaxBufferError=zw});var t5=I((bnt,e5)=>{"use strict";var jxe=new Set([200,203,204,206,300,301,404,405,410,414,501]),Gxe=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Yxe=new Set([500,502,503,504]),qxe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Jxe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Mc(r){let e=parseInt(r,10);return isFinite(e)?e:0}function Wxe(r){return r?Yxe.has(r.status):!0}function DD(r){let e={};if(!r)return e;let t=r.trim().split(/\s*,\s*/);for(let i of t){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zxe(r){let e=[];for(let t in r){let i=r[t];e.push(i===!0?t:t+"="+i)}if(!!e.length)return e.join(", ")}e5.exports=class{constructor(e,t,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,_fromObject:a}={}){if(a){this._fromObject(a);return}if(!t||!t.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in t?t.status:200,this._resHeaders=t.headers,this._rescc=DD(t.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=t.headers.vary?e.headers:null,this._reqcc=DD(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zxe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),t.headers["cache-control"]==null&&/no-cache/.test(t.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Gxe.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||jxe.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let t=DD(e.headers["cache-control"]);return t["no-cache"]||/no-cache/.test(e.headers.pragma)||t["max-age"]&&this.age()>t["max-age"]||t["min-fresh"]&&this.timeToLive()<1e3*t["min-fresh"]||this.stale()&&!(t["max-stale"]&&!this._rescc["must-revalidate"]&&(t["max-stale"]===!0||t["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,t){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||t&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let t=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of t)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let t={};for(let i in e)qxe[i]||(t[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete t[n]}if(t.warning){let i=t.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?t.warning=i.join(",").trim():delete t.warning}return t}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),t=this.age();return t>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(t)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),t=(this.now()-this._responseTime)/1e3;return e+t}_ageValue(){return Mc(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Mc(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Mc(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,t=this.date();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||i<t?0:Math.max(e,(i-t)/1e3)}if(this._resHeaders["last-modified"]){let i=Date.parse(this._resHeaders["last-modified"]);if(isFinite(i)&&t>i)return Math.max(e,(t-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),t=e+Mc(this._rescc["stale-if-error"]),i=e+Mc(this._rescc["stale-while-revalidate"]);return Math.max(0,e,t,i)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Mc(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Mc(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let t=this._copyWithoutHopByHopHeaders(e.headers);if(delete t["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete t["if-none-match"],delete t["if-modified-since"],t;if(this._resHeaders.etag&&(t["if-none-match"]=t["if-none-match"]?`${t["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),t["accept-ranges"]||t["if-match"]||t["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete t["if-modified-since"],t["if-none-match"]){let n=t["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?t["if-none-match"]=n.join(",").trim():delete t["if-none-match"]}}else this._resHeaders["last-modified"]&&!t["if-modified-since"]&&(t["if-modified-since"]=this._resHeaders["last-modified"]);return t}revalidatedPolicy(e,t){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Wxe(t))return{modified:!1,matches:!1,policy:this};if(!t||!t.headers)throw Error("Response headers missing");let i=!1;if(t.status!==void 0&&t.status!=304?i=!1:t.headers.etag&&!/^\s*W\//.test(t.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag:this._resHeaders.etag&&t.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===t.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===t.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!t.headers.etag&&!t.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,t),modified:t.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in t.headers&&!Jxe[o]?t.headers[o]:this._resHeaders[o];let s=Object.assign({},t,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Xw=I((Qnt,r5)=>{"use strict";r5.exports=r=>{let e={};for(let[t,i]of Object.entries(r))e[t.toLowerCase()]=i;return e}});var n5=I((Snt,i5)=>{"use strict";var Vxe=J("stream").Readable,Xxe=Xw(),RD=class extends Vxe{constructor(e,t,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof t!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=Xxe(t),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};i5.exports=RD});var o5=I((vnt,s5)=>{"use strict";var Zxe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];s5.exports=(r,e)=>{let t=new Set(Object.keys(r).concat(Zxe));for(let i of t)i in e||(e[i]=typeof r[i]=="function"?r[i].bind(r):r[i])}});var A5=I((xnt,a5)=>{"use strict";var _xe=J("stream").PassThrough,$xe=o5(),ePe=r=>{if(!(r&&r.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new _xe;return $xe(r,e),r.pipe(e)};a5.exports=ePe});var l5=I(FD=>{FD.stringify=function r(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var t="",i=Array.isArray(e);t=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]>"u";Object.hasOwnProperty.call(e,s)&&!o&&(n||(t+=","),n=!1,i?e[s]==null?t+="null":t+=r(e[s]):e[s]!==void 0&&(t+=r(s)+":"+r(e[s])))}return t+=i?"]":"}",t}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};FD.parse=function(r){return JSON.parse(r,function(e,t){return typeof t=="string"?/^:base64:/.test(t)?Buffer.from(t.substring(8),"base64"):/^:/.test(t)?t.substring(1):t:t})}});var g5=I((knt,u5)=>{"use strict";var tPe=J("events"),c5=l5(),rPe=r=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(r.adapter||r.uri){let t=r.adapter||/^[^:]*/.exec(r.uri)[0];return new(J(e[t]))(r)}return new Map},ND=class extends tPe{constructor(e,t){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:c5.stringify,deserialize:c5.parse},typeof e=="string"?{uri:e}:e,t),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rPe(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,t){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return t&&t.raw?n:n.value}})}set(e,t,i){e=this._getKeyPrefix(e),typeof i>"u"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return t={value:t,expires:s},this.opts.serialize(t)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:t}=this.opts;return Promise.resolve().then(()=>t.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};u5.exports=ND});var p5=I((Rnt,h5)=>{"use strict";var iPe=J("events"),Zw=J("url"),nPe=Uz(),sPe=$z(),TD=t5(),f5=n5(),oPe=Xw(),aPe=A5(),APe=g5(),oo=class{constructor(e,t){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new APe({uri:typeof t=="string"&&t,store:typeof t!="string"&&t,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(t,i)=>{let n;if(typeof t=="string")n=LD(Zw.parse(t)),t={};else if(t instanceof Zw.URL)n=LD(Zw.parse(t.toString())),t={};else{let[g,...h]=(t.path||"").split("?"),p=h.length>0?`?${h.join("?")}`:"";n=LD({...t,pathname:g,search:p})}t={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...t,...lPe(n)},t.headers=oPe(t.headers);let s=new iPe,o=nPe(Zw.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${t.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let h=!1,p,d=new Promise(y=>{p=()=>{h||(h=!0,y())}}),m=y=>{if(l&&!g.forceRefresh){y.status=y.statusCode;let S=TD.fromObject(l.cachePolicy).revalidatedPolicy(g,y);if(!S.modified){let P=S.policy.responseHeaders();y=new f5(l.statusCode,P,l.body,l.url),y.cachePolicy=S.policy,y.fromCache=!0}}y.fromCache||(y.cachePolicy=new TD(g,y,g),y.fromCache=!1);let B;g.cache&&y.cachePolicy.storable()?(B=aPe(y),(async()=>{try{let S=sPe.buffer(y);if(await Promise.race([d,new Promise(q=>y.once("end",q))]),h)return;let P=await S,F={cachePolicy:y.cachePolicy.toObject(),url:y.url,statusCode:y.fromCache?l.statusCode:y.statusCode,body:P},H=g.strictTtl?y.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,F,H)}catch(S){s.emit("error",new oo.CacheError(S))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(S){s.emit("error",new oo.CacheError(S))}})(),s.emit("response",B||y),typeof i=="function"&&i(B||y)};try{let y=e(g,m);y.once("error",p),y.once("abort",p),s.emit("request",y)}catch(y){s.emit("error",new oo.RequestError(y))}};return(async()=>{let g=async p=>{await Promise.resolve();let d=p.cache?await this.cache.get(a):void 0;if(typeof d>"u")return u(p);let m=TD.fromObject(d.cachePolicy);if(m.satisfiesWithoutRevalidation(p)&&!p.forceRefresh){let y=m.responseHeaders(),B=new f5(d.statusCode,y,d.body,d.url);B.cachePolicy=m,B.fromCache=!0,s.emit("response",B),typeof i=="function"&&i(B)}else l=d,p.headers=m.revalidationHeaders(p),u(p)},h=p=>s.emit("error",new oo.CacheError(p));this.cache.once("error",h),s.on("response",()=>this.cache.removeListener("error",h));try{await g(t)}catch(p){t.automaticFailover&&!c&&u(t),s.emit("error",new oo.CacheError(p))}})(),s}}};function lPe(r){let e={...r};return e.path=`${r.pathname||"/"}${r.search||""}`,delete e.pathname,delete e.search,e}function LD(r){return{protocol:r.protocol,auth:r.auth,hostname:r.hostname||r.host||"localhost",port:r.port,pathname:r.pathname,search:r.search}}oo.RequestError=class extends Error{constructor(r){super(r.message),this.name="RequestError",Object.assign(this,r)}};oo.CacheError=class extends Error{constructor(r){super(r.message),this.name="CacheError",Object.assign(this,r)}};h5.exports=oo});var C5=I((Tnt,d5)=>{"use strict";var cPe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];d5.exports=(r,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(r).concat(cPe)),i={};for(let n of t)n in e||(i[n]={get(){let s=r[n];return typeof s=="function"?s.bind(r):s},set(s){r[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),r.once("aborted",()=>{e.destroy(),e.emit("aborted")}),r.once("close",()=>{r.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var E5=I((Lnt,m5)=>{"use strict";var{Transform:uPe,PassThrough:gPe}=J("stream"),OD=J("zlib"),fPe=C5();m5.exports=r=>{let e=(r.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return r;let t=e==="br";if(t&&typeof OD.createBrotliDecompress!="function")return r.destroy(new Error("Brotli is not supported on Node.js < 12")),r;let i=!0,n=new uPe({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gPe({autoDestroy:!1,destroy(a,l){r.destroy(),l(a)}}),o=t?OD.createBrotliDecompress():OD.createUnzip();return o.once("error",a=>{if(i&&!r.readable){s.end();return}s.destroy(a)}),fPe(r,s),r.pipe(n).pipe(o).pipe(s),s}});var KD=I((Ont,I5)=>{"use strict";var MD=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,t){if(this.cache.set(e,t),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[t]=e;this.cache.has(t)||(yield e)}}get size(){let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};I5.exports=MD});var HD=I((Mnt,b5)=>{"use strict";var hPe=J("events"),pPe=J("tls"),dPe=J("http2"),CPe=KD(),on=Symbol("currentStreamsCount"),y5=Symbol("request"),ws=Symbol("cachedOriginSet"),Uf=Symbol("gracefullyClosing"),mPe=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],EPe=(r,e,t)=>{let i=0,n=r.length;for(;i<n;){let s=i+n>>>1;t(r[s],e)?i=s+1:n=s}return i},IPe=(r,e)=>r.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,UD=(r,e)=>{for(let t of r)t[ws].length<e[ws].length&&t[ws].every(i=>e[ws].includes(i))&&t[on]+e[on]<=e.remoteSettings.maxConcurrentStreams&&B5(t)},yPe=(r,e)=>{for(let t of r)e[ws].length<t[ws].length&&e[ws].every(i=>t[ws].includes(i))&&e[on]+t[on]<=t.remoteSettings.maxConcurrentStreams&&B5(e)},w5=({agent:r,isFree:e})=>{let t={};for(let i in r.sessions){let s=r.sessions[i].filter(o=>{let a=o[Wo.kCurrentStreamsCount]<o.remoteSettings.maxConcurrentStreams;return e?a:!a});s.length!==0&&(t[i]=s)}return t},B5=r=>{r[Uf]=!0,r[on]===0&&r.close()},Wo=class extends hPe{constructor({timeout:e=6e4,maxSessions:t=1/0,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=t,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new CPe({maxSize:n})}static normalizeOrigin(e,t){return typeof e=="string"&&(e=new URL(e)),t&&e.hostname!==t&&(e.hostname=t),e.origin}normalizeOptions(e){let t="";if(e)for(let i of mPe)e[i]&&(t+=`:${e[i]}`);return t}_tryToCreateNewSession(e,t){if(!(e in this.queue)||!(t in this.queue[e]))return;let i=this.queue[e][t];this._sessionsCount<this.maxSessions&&!i.completed&&(i.completed=!0,i())}getSession(e,t,i){return new Promise((n,s)=>{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(t),a=Wo.normalizeOrigin(e,t&&t.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,h=-1,p;for(let d of u){let m=d.remoteSettings.maxConcurrentStreams;if(m<g)break;if(d[ws].includes(a)){let y=d[on];if(y>=m||d[Uf]||d.destroyed)continue;p||(g=m),y>h&&(p=d,h=y)}}if(p){if(i.length!==1){for(let{reject:d}of i){let m=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);d(m)}return}i[0].resolve(p);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let h=dPe.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u),...t});h[on]=0,h[Uf]=!1;let p=()=>h[on]<h.remoteSettings.maxConcurrentStreams,d=!0;h.socket.once("session",y=>{this.tlsSessionCache.set(u,y)}),h.once("error",y=>{for(let{reject:B}of i)B(y);this.tlsSessionCache.delete(u)}),h.setTimeout(this.timeout,()=>{h.destroy()}),h.once("close",()=>{if(g){d&&this._freeSessionsCount--,this._sessionsCount--;let y=this.sessions[o];y.splice(y.indexOf(h),1),y.length===0&&delete this.sessions[o]}else{let y=new Error("Session closed without receiving a SETTINGS frame");y.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:B}of i)B(y);l()}this._tryToCreateNewSession(o,a)});let m=()=>{if(!(!(o in this.queue)||!p())){for(let y of h[ws])if(y in this.queue[o]){let{listeners:B}=this.queue[o][y];for(;B.length!==0&&p();)B.shift().resolve(h);let S=this.queue[o];if(S[y].listeners.length===0&&(delete S[y],Object.keys(S).length===0)){delete this.queue[o];break}if(!p())break}}};h.on("origin",()=>{h[ws]=h.originSet,p()&&(m(),UD(this.sessions[o],h))}),h.once("remoteSettings",()=>{if(h.ref(),h.unref(),this._sessionsCount++,c.destroyed){let y=new Error("Agent has been destroyed");for(let B of i)B.reject(y);h.destroy();return}h[ws]=h.originSet;{let y=this.sessions;if(o in y){let B=y[o];B.splice(EPe(B,h,IPe),0,h)}else y[o]=[h]}this._freeSessionsCount+=1,g=!0,this.emit("session",h),m(),l(),h[on]===0&&this._freeSessionsCount>this.maxFreeSessions&&h.close(),i.length!==0&&(this.getSession(a,t,i),i.length=0),h.on("remoteSettings",()=>{m(),UD(this.sessions[o],h)})}),h[y5]=h.request,h.request=(y,B)=>{if(h[Uf])throw new Error("The session is gracefully closing. No new streams are allowed.");let S=h[y5](y,B);return h.ref(),++h[on],h[on]===h.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,S.once("close",()=>{if(d=p(),--h[on],!h.destroyed&&!h.closed&&(yPe(this.sessions[o],h),p()&&!h.closed)){d||(this._freeSessionsCount++,d=!0);let P=h[on]===0;P&&h.unref(),P&&(this._freeSessionsCount>this.maxFreeSessions||h[Uf])?h.close():(UD(this.sessions[o],h),m())}}),S}}catch(h){for(let p of i)p.reject(h);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,t,i,n){return new Promise((s,o)=>{this.getSession(e,t,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,t){return Wo.connect(e,t)}static connect(e,t){t.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof t.servername>"u"&&(t.servername=n),pPe.connect(i,n,t)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let t of e)t[on]===0&&t.close()}destroy(e){for(let t of Object.values(this.sessions))for(let i of t)i.destroy(e);for(let t of Object.values(this.queue))for(let i of Object.values(t))i.destroyed=!0;this.queue={}}get freeSessions(){return w5({agent:this,isFree:!0})}get busySessions(){return w5({agent:this,isFree:!1})}};Wo.kCurrentStreamsCount=on;Wo.kGracefullyClosing=Uf;b5.exports={Agent:Wo,globalAgent:new Wo}});var GD=I((Knt,Q5)=>{"use strict";var{Readable:wPe}=J("stream"),jD=class extends wPe{constructor(e,t){super({highWaterMark:t,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,t){return this.req.setTimeout(e,t),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Q5.exports=jD});var YD=I((Unt,S5)=>{"use strict";S5.exports=r=>{let e={protocol:r.protocol,hostname:typeof r.hostname=="string"&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return typeof r.port=="string"&&r.port.length!==0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var x5=I((Hnt,v5)=>{"use strict";v5.exports=(r,e,t)=>{for(let i of t)r.on(i,(...n)=>e.emit(i,...n))}});var k5=I((jnt,P5)=>{"use strict";P5.exports=r=>{switch(r){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var R5=I((Ynt,D5)=>{"use strict";var Hf=(r,e,t)=>{D5.exports[e]=class extends r{constructor(...n){super(typeof t=="string"?t:t(n)),this.name=`${super.name} [${e}]`,this.code=e}}};Hf(TypeError,"ERR_INVALID_ARG_TYPE",r=>{let e=r[0].includes(".")?"property":"argument",t=r[1],i=Array.isArray(t);return i&&(t=`${t.slice(0,-1).join(", ")} or ${t.slice(-1)}`),`The "${r[0]}" ${e} must be ${i?"one of":"of"} type ${t}. Received ${typeof r[2]}`});Hf(TypeError,"ERR_INVALID_PROTOCOL",r=>`Protocol "${r[0]}" not supported. Expected "${r[1]}"`);Hf(Error,"ERR_HTTP_HEADERS_SENT",r=>`Cannot ${r[0]} headers after they are sent to the client`);Hf(TypeError,"ERR_INVALID_HTTP_TOKEN",r=>`${r[0]} must be a valid HTTP token [${r[1]}]`);Hf(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",r=>`Invalid value "${r[0]} for header "${r[1]}"`);Hf(TypeError,"ERR_INVALID_CHAR",r=>`Invalid character in ${r[0]} [${r[1]}]`)});var VD=I((qnt,K5)=>{"use strict";var BPe=J("http2"),{Writable:bPe}=J("stream"),{Agent:F5,globalAgent:QPe}=HD(),SPe=GD(),vPe=YD(),xPe=x5(),PPe=k5(),{ERR_INVALID_ARG_TYPE:qD,ERR_INVALID_PROTOCOL:kPe,ERR_HTTP_HEADERS_SENT:N5,ERR_INVALID_HTTP_TOKEN:DPe,ERR_HTTP_INVALID_HEADER_VALUE:RPe,ERR_INVALID_CHAR:FPe}=R5(),{HTTP2_HEADER_STATUS:T5,HTTP2_HEADER_METHOD:L5,HTTP2_HEADER_PATH:O5,HTTP2_METHOD_CONNECT:NPe}=BPe.constants,Ui=Symbol("headers"),JD=Symbol("origin"),WD=Symbol("session"),M5=Symbol("options"),_w=Symbol("flushedHeaders"),IC=Symbol("jobs"),TPe=/^[\^`\-\w!#$%&*+.|~]+$/,LPe=/[^\t\u0020-\u007E\u0080-\u00FF]/,zD=class extends bPe{constructor(e,t,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=vPe(e instanceof URL?e:new URL(e))),typeof t=="function"||t===void 0?(i=t,t=n?e:{...e}):t={...e,...t},t.h2session)this[WD]=t.h2session;else if(t.agent===!1)this.agent=new F5({maxFreeSessions:0});else if(typeof t.agent>"u"||t.agent===null)typeof t.createConnection=="function"?(this.agent=new F5({maxFreeSessions:0}),this.agent.createConnection=t.createConnection):this.agent=QPe;else if(typeof t.agent.request=="function")this.agent=t.agent;else throw new qD("options.agent",["Agent-like Object","undefined","false"],t.agent);if(t.protocol&&t.protocol!=="https:")throw new kPe(t.protocol,"https:");let s=t.port||t.defaultPort||this.agent&&this.agent.defaultPort||443,o=t.hostname||t.host||"localhost";delete t.hostname,delete t.host,delete t.port;let{timeout:a}=t;if(t.timeout=void 0,this[Ui]=Object.create(null),this[IC]=[],this.socket=null,this.connection=null,this.method=t.method||"GET",this.path=t.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,t.headers)for(let[l,c]of Object.entries(t.headers))this.setHeader(l,c);t.auth&&!("authorization"in this[Ui])&&(this[Ui].authorization="Basic "+Buffer.from(t.auth).toString("base64")),t.session=t.tlsSession,t.path=t.socketPath,this[M5]=t,s===443?(this[JD]=`https://${o}`,":authority"in this[Ui]||(this[Ui][":authority"]=o)):(this[JD]=`https://${o}:${s}`,":authority"in this[Ui]||(this[Ui][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[_w]=!1}get method(){return this[Ui][L5]}set method(e){e&&(this[Ui][L5]=e.toUpperCase())}get path(){return this[Ui][O5]}set path(e){e&&(this[Ui][O5]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,t,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,t,i);this._request?n():this[IC].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let t=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?t():this[IC].push(t)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,t){this.res&&this.res._dump(),this._request&&this._request.destroy(),t(e)}async flushHeaders(){if(this[_w]||this.destroyed)return;this[_w]=!0;let e=this.method===NPe,t=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xPe(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new SPe(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[T5],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[T5]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[IC])o();this.emit("socket",this.socket)};if(this[WD])try{t(this[WD].request(this[Ui]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{t(await this.agent.request(this[JD],this[M5],this[Ui]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new qD("name","string",e);return this[Ui][e.toLowerCase()]}get headersSent(){return this[_w]}removeHeader(e){if(typeof e!="string")throw new qD("name","string",e);if(this.headersSent)throw new N5("remove");delete this[Ui][e.toLowerCase()]}setHeader(e,t){if(this.headersSent)throw new N5("set");if(typeof e!="string"||!TPe.test(e)&&!PPe(e))throw new DPe("Header name",e);if(typeof t>"u")throw new RPe(t,e);if(LPe.test(t))throw new FPe("header content",e);this[Ui][e.toLowerCase()]=t}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,t){let i=()=>this._request.setTimeout(e,t);return this._request?i():this[IC].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};K5.exports=zD});var H5=I((Jnt,U5)=>{"use strict";var OPe=J("tls");U5.exports=(r={})=>new Promise((e,t)=>{let i=OPe.connect(r,()=>{r.resolveSocket?(i.off("error",t),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",t)})});var G5=I((Wnt,j5)=>{"use strict";var MPe=J("net");j5.exports=r=>{let e=r.host,t=r.headers&&r.headers.host;return t&&(t.startsWith("[")?t.indexOf("]")===-1?e=t:e=t.slice(1,-1):e=t.split(":",1)[0]),MPe.isIP(e)?"":e}});var J5=I((znt,ZD)=>{"use strict";var Y5=J("http"),XD=J("https"),KPe=H5(),UPe=KD(),HPe=VD(),jPe=G5(),GPe=YD(),$w=new UPe({maxSize:100}),yC=new Map,q5=(r,e,t)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{r.emit("free",e,t)};e.on("free",i);let n=()=>{r.removeSocket(e,t)};e.on("close",n);let s=()=>{r.removeSocket(e,t),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),r.emit("free",e,t)},YPe=async r=>{let e=`${r.host}:${r.port}:${r.ALPNProtocols.sort()}`;if(!$w.has(e)){if(yC.has(e))return(await yC.get(e)).alpnProtocol;let{path:t,agent:i}=r;r.path=r.socketPath;let n=KPe(r);yC.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if($w.set(e,o),r.path=t,o==="h2")s.destroy();else{let{globalAgent:a}=XD,l=XD.Agent.prototype.createConnection;i?i.createConnection===l?q5(i,s,r):s.destroy():a.createConnection===l?q5(a,s,r):s.destroy()}return yC.delete(e),o}catch(s){throw yC.delete(e),s}}return $w.get(e)};ZD.exports=async(r,e,t)=>{if((typeof r=="string"||r instanceof URL)&&(r=GPe(new URL(r))),typeof e=="function"&&(t=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...r,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||jPe(e),e.port=e.port||(i?443:80),e._defaultAgent=i?XD.globalAgent:Y5.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await YPe(e)==="h2"?(n&&(e.agent=n.http2),new HPe(e,t)):Y5.request(e,t)};ZD.exports.protocolCache=$w});var z5=I((Vnt,W5)=>{"use strict";var qPe=J("http2"),JPe=HD(),_D=VD(),WPe=GD(),zPe=J5(),VPe=(r,e,t)=>new _D(r,e,t),XPe=(r,e,t)=>{let i=new _D(r,e,t);return i.end(),i};W5.exports={...qPe,ClientRequest:_D,IncomingMessage:WPe,...JPe,request:VPe,get:XPe,auto:zPe}});var eR=I($D=>{"use strict";Object.defineProperty($D,"__esModule",{value:!0});var V5=Ya();$D.default=r=>V5.default.nodeStream(r)&&V5.default.function_(r.getBoundary)});var $5=I(tR=>{"use strict";Object.defineProperty(tR,"__esModule",{value:!0});var Z5=J("fs"),_5=J("util"),X5=Ya(),ZPe=eR(),_Pe=_5.promisify(Z5.stat);tR.default=async(r,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!r)return 0;if(X5.default.string(r))return Buffer.byteLength(r);if(X5.default.buffer(r))return r.length;if(ZPe.default(r))return _5.promisify(r.getLength.bind(r))();if(r instanceof Z5.ReadStream){let{size:t}=await _Pe(r.path);return t===0?void 0:t}}});var iR=I(rR=>{"use strict";Object.defineProperty(rR,"__esModule",{value:!0});function $Pe(r,e,t){let i={};for(let n of t)i[n]=(...s)=>{e.emit(n,...s)},r.on(n,i[n]);return()=>{for(let n of t)r.off(n,i[n])}}rR.default=$Pe});var e6=I(nR=>{"use strict";Object.defineProperty(nR,"__esModule",{value:!0});nR.default=()=>{let r=[];return{once(e,t,i){e.once(t,i),r.push({origin:e,event:t,fn:i})},unhandleAll(){for(let e of r){let{origin:t,event:i,fn:n}=e;t.removeListener(i,n)}r.length=0}}}});var r6=I(wC=>{"use strict";Object.defineProperty(wC,"__esModule",{value:!0});wC.TimeoutError=void 0;var eke=J("net"),tke=e6(),t6=Symbol("reentry"),rke=()=>{},eB=class extends Error{constructor(e,t){super(`Timeout awaiting '${t}' for ${e}ms`),this.event=t,this.name="TimeoutError",this.code="ETIMEDOUT"}};wC.TimeoutError=eB;wC.default=(r,e,t)=>{if(t6 in r)return rke;r[t6]=!0;let i=[],{once:n,unhandleAll:s}=tke.default(),o=(g,h,p)=>{var d;let m=setTimeout(h,g,g,p);(d=m.unref)===null||d===void 0||d.call(m);let y=()=>{clearTimeout(m)};return i.push(y),y},{host:a,hostname:l}=t,c=(g,h)=>{r.destroy(new eB(g,h))},u=()=>{for(let g of i)g();s()};if(r.once("error",g=>{if(u(),r.listenerCount("error")===0)throw g}),r.once("close",u),n(r,"response",g=>{n(g,"end",u)}),typeof e.request<"u"&&o(e.request,c,"request"),typeof e.socket<"u"){let g=()=>{c(e.socket,"socket")};r.setTimeout(e.socket,g),i.push(()=>{r.removeListener("timeout",g)})}return n(r,"socket",g=>{var h;let{socketPath:p}=r;if(g.connecting){let d=Boolean(p!=null?p:eke.isIP((h=l!=null?l:a)!==null&&h!==void 0?h:"")!==0);if(typeof e.lookup<"u"&&!d&&typeof g.address().address>"u"){let m=o(e.lookup,c,"lookup");n(g,"lookup",m)}if(typeof e.connect<"u"){let m=()=>o(e.connect,c,"connect");d?n(g,"connect",m()):n(g,"lookup",y=>{y===null&&n(g,"connect",m())})}typeof e.secureConnect<"u"&&t.protocol==="https:"&&n(g,"connect",()=>{let m=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",m)})}if(typeof e.send<"u"){let d=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(r,"upload-complete",d())}):n(r,"upload-complete",d())}}),typeof e.response<"u"&&n(r,"upload-complete",()=>{let g=o(e.response,c,"response");n(r,"response",g)}),u}});var n6=I(sR=>{"use strict";Object.defineProperty(sR,"__esModule",{value:!0});var i6=Ya();sR.default=r=>{r=r;let e={protocol:r.protocol,hostname:i6.default.string(r.hostname)&&r.hostname.startsWith("[")?r.hostname.slice(1,-1):r.hostname,host:r.host,hash:r.hash,search:r.search,pathname:r.pathname,href:r.href,path:`${r.pathname||""}${r.search||""}`};return i6.default.string(r.port)&&r.port.length>0&&(e.port=Number(r.port)),(r.username||r.password)&&(e.auth=`${r.username||""}:${r.password||""}`),e}});var s6=I(oR=>{"use strict";Object.defineProperty(oR,"__esModule",{value:!0});var ike=J("url"),nke=["protocol","host","hostname","port","pathname","search"];oR.default=(r,e)=>{var t,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!r){if(!e.protocol)throw new TypeError("No URL protocol specified");r=`${e.protocol}//${(i=(t=e.hostname)!==null&&t!==void 0?t:e.host)!==null&&i!==void 0?i:""}`}let n=new ike.URL(r);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nke)e[s]&&(n[s]=e[s].toString());return n}});var o6=I(AR=>{"use strict";Object.defineProperty(AR,"__esModule",{value:!0});var aR=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,t){typeof e=="object"?this.weakMap.set(e,t):this.map.set(e,t)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};AR.default=aR});var cR=I(lR=>{"use strict";Object.defineProperty(lR,"__esModule",{value:!0});var ske=async r=>{let e=[],t=0;for await(let i of r)e.push(i),t+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,t):Buffer.from(e.join(""))};lR.default=ske});var A6=I(Kc=>{"use strict";Object.defineProperty(Kc,"__esModule",{value:!0});Kc.dnsLookupIpVersionToFamily=Kc.isDnsLookupIpVersion=void 0;var a6={auto:0,ipv4:4,ipv6:6};Kc.isDnsLookupIpVersion=r=>r in a6;Kc.dnsLookupIpVersionToFamily=r=>{if(Kc.isDnsLookupIpVersion(r))return a6[r];throw new Error("Invalid DNS lookup IP version")}});var uR=I(tB=>{"use strict";Object.defineProperty(tB,"__esModule",{value:!0});tB.isResponseOk=void 0;tB.isResponseOk=r=>{let{statusCode:e}=r,t=r.request.options.followRedirect?299:399;return e>=200&&e<=t||e===304}});var c6=I(gR=>{"use strict";Object.defineProperty(gR,"__esModule",{value:!0});var l6=new Set;gR.default=r=>{l6.has(r)||(l6.add(r),process.emitWarning(`Got: ${r}`,{type:"DeprecationWarning"}))}});var u6=I(fR=>{"use strict";Object.defineProperty(fR,"__esModule",{value:!0});var dr=Ya(),oke=(r,e)=>{if(dr.default.null_(r.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");dr.assert.any([dr.default.string,dr.default.undefined],r.encoding),dr.assert.any([dr.default.boolean,dr.default.undefined],r.resolveBodyOnly),dr.assert.any([dr.default.boolean,dr.default.undefined],r.methodRewriting),dr.assert.any([dr.default.boolean,dr.default.undefined],r.isStream),dr.assert.any([dr.default.string,dr.default.undefined],r.responseType),r.responseType===void 0&&(r.responseType="text");let{retry:t}=r;if(e?r.retry={...e.retry}:r.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},dr.default.object(t)?(r.retry={...r.retry,...t},r.retry.methods=[...new Set(r.retry.methods.map(i=>i.toUpperCase()))],r.retry.statusCodes=[...new Set(r.retry.statusCodes)],r.retry.errorCodes=[...new Set(r.retry.errorCodes)]):dr.default.number(t)&&(r.retry.limit=t),dr.default.undefined(r.retry.maxRetryAfter)&&(r.retry.maxRetryAfter=Math.min(...[r.timeout.request,r.timeout.connect].filter(dr.default.number))),dr.default.object(r.pagination)){e&&(r.pagination={...e.pagination,...r.pagination});let{pagination:i}=r;if(!dr.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!dr.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!dr.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!dr.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return r.responseType==="json"&&r.headers.accept===void 0&&(r.headers.accept="application/json"),r};fR.default=oke});var g6=I(BC=>{"use strict";Object.defineProperty(BC,"__esModule",{value:!0});BC.retryAfterStatusCodes=void 0;BC.retryAfterStatusCodes=new Set([413,429,503]);var ake=({attemptCount:r,retryOptions:e,error:t,retryAfter:i})=>{if(r>e.limit)return 0;let n=e.methods.includes(t.options.method),s=e.errorCodes.includes(t.code),o=t.response&&e.statusCodes.includes(t.response.statusCode);if(!n||!s&&!o)return 0;if(t.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(t.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(r-1)*1e3+a};BC.default=ake});var SC=I(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.UnsupportedProtocolError=Ut.ReadError=Ut.TimeoutError=Ut.UploadError=Ut.CacheError=Ut.HTTPError=Ut.MaxRedirectsError=Ut.RequestError=Ut.setNonEnumerableProperties=Ut.knownHookEvents=Ut.withoutBody=Ut.kIsNormalizedAlready=void 0;var f6=J("util"),h6=J("stream"),Ake=J("fs"),zA=J("url"),p6=J("http"),hR=J("http"),lke=J("https"),cke=kz(),uke=Oz(),d6=p5(),gke=E5(),fke=z5(),hke=Xw(),Ce=Ya(),pke=$5(),C6=eR(),dke=iR(),m6=r6(),Cke=n6(),E6=s6(),mke=o6(),Eke=cR(),I6=A6(),Ike=uR(),VA=c6(),yke=u6(),wke=g6(),pR,Pi=Symbol("request"),nB=Symbol("response"),jf=Symbol("responseSize"),Gf=Symbol("downloadedSize"),Yf=Symbol("bodySize"),qf=Symbol("uploadedSize"),rB=Symbol("serverResponsesPiped"),y6=Symbol("unproxyEvents"),w6=Symbol("isFromCache"),dR=Symbol("cancelTimeouts"),B6=Symbol("startedReading"),Jf=Symbol("stopReading"),iB=Symbol("triggerRead"),XA=Symbol("body"),bC=Symbol("jobs"),b6=Symbol("originalResponse"),Q6=Symbol("retryTimeout");Ut.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Bke=Ce.default.string(process.versions.brotli);Ut.withoutBody=new Set(["GET","HEAD"]);Ut.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function bke(r){for(let e in r){let t=r[e];if(!Ce.default.string(t)&&!Ce.default.number(t)&&!Ce.default.boolean(t)&&!Ce.default.null_(t)&&!Ce.default.undefined(t))throw new TypeError(`The \`searchParams\` value '${String(t)}' must be a string, number, boolean or null`)}}function Qke(r){return Ce.default.object(r)&&!("statusCode"in r)}var CR=new mke.default,Ske=async r=>new Promise((e,t)=>{let i=n=>{t(n)};r.pending||e(),r.once("error",i),r.once("ready",()=>{r.off("error",i),e()})}),vke=new Set([300,301,302,303,304,307,308]),xke=["context","body","json","form"];Ut.setNonEnumerableProperties=(r,e)=>{let t={};for(let i of r)if(!!i)for(let n of xke)n in i&&(t[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,t)};var _r=class extends Error{constructor(e,t,i){var n;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=t.code,i instanceof uB?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[nB]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,Ce.default.string(t.stack)&&Ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` -`).reverse(),a=t.stack.slice(t.stack.indexOf(t.message)+t.message.length).split(` -`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` -`)}${a.reverse().join(` -`)}`}}};Ut.RequestError=_r;var sB=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Ut.MaxRedirectsError=sB;var oB=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Ut.HTTPError=oB;var aB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="CacheError"}};Ut.CacheError=aB;var AB=class extends _r{constructor(e,t){super(e.message,e,t),this.name="UploadError"}};Ut.UploadError=AB;var lB=class extends _r{constructor(e,t,i){super(e.message,e,i),this.name="TimeoutError",this.event=e.event,this.timings=t}};Ut.TimeoutError=lB;var QC=class extends _r{constructor(e,t){super(e.message,e,t),this.name="ReadError"}};Ut.ReadError=QC;var cB=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Ut.UnsupportedProtocolError=cB;var Pke=["socket","connect","continue","information","upgrade","timeout"],uB=class extends h6.Duplex{constructor(e,t={},i){super({autoDestroy:!1,highWaterMark:0}),this[Gf]=0,this[qf]=0,this.requestInitialized=!1,this[rB]=new Set,this.redirects=[],this[Jf]=!1,this[iB]=!1,this[bC]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof hR.IncomingMessage&&(this.options.headers={...c.headers,...this.options.headers})});let{json:o,body:a,form:l}=t;if((o||a||l)&&this._lockWrite(),Ut.kIsNormalizedAlready in t)this.options=t;else try{this.options=this.constructor.normalizeArguments(e,t,i)}catch(c){Ce.default.nodeStream(t.body)&&t.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof Ake.ReadStream&&await Ske(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Pi])===null||c===void 0||c.destroy();return}for(let g of this[bC])g();this[bC].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,t,i){var n,s,o,a,l;let c=t;if(Ce.default.object(e)&&!Ce.default.urlInstance(e))t={...i,...e,...t};else{if(e&&t&&t.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");t={...i,...t},e!==void 0&&(t.url=e),Ce.default.urlInstance(t.url)&&(t.url=new zA.URL(t.url.toString()))}if(t.cache===!1&&(t.cache=void 0),t.dnsCache===!1&&(t.dnsCache=void 0),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.method),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.headers),Ce.assert.any([Ce.default.string,Ce.default.urlInstance,Ce.default.undefined],t.prefixUrl),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cookieJar),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.searchParams),Ce.assert.any([Ce.default.object,Ce.default.string,Ce.default.undefined],t.cache),Ce.assert.any([Ce.default.object,Ce.default.number,Ce.default.undefined],t.timeout),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.context),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.hooks),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.decompress),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.ignoreInvalidCookies),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.followRedirect),Ce.assert.any([Ce.default.number,Ce.default.undefined],t.maxRedirects),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.throwHttpErrors),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.http2),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.allowGetBody),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.localAddress),Ce.assert.any([I6.isDnsLookupIpVersion,Ce.default.undefined],t.dnsLookupIpVersion),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.https),Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.rejectUnauthorized),t.https&&(Ce.assert.any([Ce.default.boolean,Ce.default.undefined],t.https.rejectUnauthorized),Ce.assert.any([Ce.default.function_,Ce.default.undefined],t.https.checkServerIdentity),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificateAuthority),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.key),Ce.assert.any([Ce.default.string,Ce.default.object,Ce.default.array,Ce.default.undefined],t.https.certificate),Ce.assert.any([Ce.default.string,Ce.default.undefined],t.https.passphrase),Ce.assert.any([Ce.default.string,Ce.default.buffer,Ce.default.array,Ce.default.undefined],t.https.pfx)),Ce.assert.any([Ce.default.object,Ce.default.undefined],t.cacheOptions),Ce.default.string(t.method)?t.method=t.method.toUpperCase():t.method="GET",t.headers===(i==null?void 0:i.headers)?t.headers={...t.headers}:t.headers=hke({...i==null?void 0:i.headers,...t.headers}),"slashes"in t)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in t)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in t&&t.searchParams&&t.searchParams!==(i==null?void 0:i.searchParams)){let p;if(Ce.default.string(t.searchParams)||t.searchParams instanceof zA.URLSearchParams)p=new zA.URLSearchParams(t.searchParams);else{bke(t.searchParams),p=new zA.URLSearchParams;for(let d in t.searchParams){let m=t.searchParams[d];m===null?p.append(d,""):m!==void 0&&p.append(d,m)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((d,m)=>{p.has(m)||p.append(m,d)}),t.searchParams=p}if(t.username=(s=t.username)!==null&&s!==void 0?s:"",t.password=(o=t.password)!==null&&o!==void 0?o:"",Ce.default.undefined(t.prefixUrl)?t.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(t.prefixUrl=t.prefixUrl.toString(),t.prefixUrl!==""&&!t.prefixUrl.endsWith("/")&&(t.prefixUrl+="/")),Ce.default.string(t.url)){if(t.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");t.url=E6.default(t.prefixUrl+t.url,t)}else(Ce.default.undefined(t.url)&&t.prefixUrl!==""||t.protocol)&&(t.url=E6.default(t.prefixUrl,t));if(t.url){"port"in t&&delete t.port;let{prefixUrl:p}=t;Object.defineProperty(t,"prefixUrl",{set:m=>{let y=t.url;if(!y.href.startsWith(m))throw new Error(`Cannot change \`prefixUrl\` from ${p} to ${m}: ${y.href}`);t.url=new zA.URL(m+y.href.slice(p.length)),p=m},get:()=>p});let{protocol:d}=t.url;if(d==="unix:"&&(d="http:",t.url=new zA.URL(`http://unix${t.url.pathname}${t.url.search}`)),t.searchParams&&(t.url.search=t.searchParams.toString()),d!=="http:"&&d!=="https:")throw new cB(t);t.username===""?t.username=t.url.username:t.url.username=t.username,t.password===""?t.password=t.url.password:t.url.password=t.password}let{cookieJar:u}=t;if(u){let{setCookie:p,getCookieString:d}=u;Ce.assert.function_(p),Ce.assert.function_(d),p.length===4&&d.length===0&&(p=f6.promisify(p.bind(t.cookieJar)),d=f6.promisify(d.bind(t.cookieJar)),t.cookieJar={setCookie:p,getCookieString:d})}let{cache:g}=t;if(g&&(CR.has(g)||CR.set(g,new d6((p,d)=>{let m=p[Pi](p,d);return Ce.default.promise(m)&&(m.once=(y,B)=>{if(y==="error")m.catch(B);else if(y==="abort")(async()=>{try{(await m).once("abort",B)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${y}`);return m}),m},g))),t.cacheOptions={...t.cacheOptions},t.dnsCache===!0)pR||(pR=new uke.default),t.dnsCache=pR;else if(!Ce.default.undefined(t.dnsCache)&&!t.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${Ce.default(t.dnsCache)}`);Ce.default.number(t.timeout)?t.timeout={request:t.timeout}:i&&t.timeout!==i.timeout?t.timeout={...i.timeout,...t.timeout}:t.timeout={...t.timeout},t.context||(t.context={});let h=t.hooks===(i==null?void 0:i.hooks);t.hooks={...t.hooks};for(let p of Ut.knownHookEvents)if(p in t.hooks)if(Ce.default.array(t.hooks[p]))t.hooks[p]=[...t.hooks[p]];else throw new TypeError(`Parameter \`${p}\` must be an Array, got ${Ce.default(t.hooks[p])}`);else t.hooks[p]=[];if(i&&!h)for(let p of Ut.knownHookEvents)i.hooks[p].length>0&&(t.hooks[p]=[...i.hooks[p],...t.hooks[p]]);if("family"in t&&VA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),i!=null&&i.https&&(t.https={...i.https,...t.https}),"rejectUnauthorized"in t&&VA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in t&&VA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in t&&VA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in t&&VA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in t&&VA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in t&&VA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in t&&VA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in t)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(t.agent){for(let p in t.agent)if(p!=="http"&&p!=="https"&&p!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${p}\``)}return t.maxRedirects=(l=t.maxRedirects)!==null&&l!==void 0?l:0,Ut.setNonEnumerableProperties([i,c],t),yke.default(t,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:t}=e,i=!Ce.default.undefined(e.form),n=!Ce.default.undefined(e.json),s=!Ce.default.undefined(e.body),o=i||n||s,a=Ut.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof h6.Readable)&&!Ce.default.string(e.body)&&!Ce.default.buffer(e.body)&&!C6.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!Ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!Ce.default.string(t["content-type"]);s?(C6.default(e.body)&&l&&(t["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[XA]=e.body):i?(l&&(t["content-type"]="application/x-www-form-urlencoded"),this[XA]=new zA.URLSearchParams(e.form).toString()):(l&&(t["content-type"]="application/json"),this[XA]=e.stringifyJson(e.json));let c=await pke.default(this[XA],e.headers);Ce.default.undefined(t["content-length"])&&Ce.default.undefined(t["transfer-encoding"])&&!a&&!Ce.default.undefined(c)&&(t["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[Yf]=Number(t["content-length"])||void 0}async _onResponseBase(e){let{options:t}=this,{url:i}=t;this[b6]=e,t.decompress&&(e=gke(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:p6.STATUS_CODES[n],s.url=t.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[w6]=s.isFromCache,this[jf]=Number(e.headers["content-length"])||void 0,this[nB]=e,e.once("end",()=>{this[jf]=this[Gf],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new QC(a,this))}),e.once("aborted",()=>{this._beforeError(new QC({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(Ce.default.object(t.cookieJar)&&o){let a=o.map(async l=>t.cookieJar.setCookie(l,i.toString()));t.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(t.followRedirect&&e.headers.location&&vke.has(n)){if(e.resume(),this[Pi]&&(this[dR](),delete this[Pi],this[y6]()),(n===303&&t.method!=="GET"&&t.method!=="HEAD"||!t.methodRewriting)&&(t.method="GET","body"in t&&delete t.body,"json"in t&&delete t.json,"form"in t&&delete t.form,this[XA]=void 0,delete t.headers["content-length"]),this.redirects.length>=t.maxRedirects){this._beforeError(new sB(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new zA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in t.headers&&delete t.headers.host,"cookie"in t.headers&&delete t.headers.cookie,"authorization"in t.headers&&delete t.headers.authorization,(t.username||t.password)&&(t.username="",t.password="")):(c.username=t.username,c.password=t.password),this.redirects.push(u),t.url=c;for(let g of t.hooks.beforeRedirect)await g(t,s);this.emit("redirect",s,t),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(t.isStream&&t.throwHttpErrors&&!Ike.isResponseOk(s)){this._beforeError(new oB(s));return}e.on("readable",()=>{this[iB]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[rB])if(!a.headersSent){for(let l in e.headers){let c=t.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(t){this._beforeError(t)}}_onRequest(e){let{options:t}=this,{timeout:i,url:n}=t;cke.default(e),this[dR]=m6.default(e,i,n);let s=t.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof m6.TimeoutError?new lB(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[y6]=dke.default(e,this,Pke),this[Pi]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[XA],a=this.redirects.length===0?this:e;Ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new AB(l,this))})):(this._unlockWrite(),Ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,t){return new Promise((i,n)=>{Object.assign(t,Cke.default(e)),delete t.url;let s,o=CR.get(t.cache)(t,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});t.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,t,i,n,s;let{options:o}=this,{headers:a}=o;for(let B in a)if(Ce.default.undefined(a[B]))delete a[B];else if(Ce.default.null_(a[B]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${B}\` header`);if(o.decompress&&Ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=Bke?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let B=await o.cookieJar.getCookieString(o.url.toString());Ce.default.nonEmptyString(B)&&(o.headers.cookie=B)}for(let B of o.hooks.beforeRequest){let S=await B(o);if(!Ce.default.undefined(S)){o.request=()=>S;break}}o.body&&this[XA]!==o.body&&(this[XA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let B=/(?<socketPath>.+?):(?<path>.+)/.exec(`${g.pathname}${g.search}`);if(B!=null&&B.groups){let{socketPath:S,path:P}=B.groups;Object.assign(o,{socketPath:S,path:P,host:""})}}let h=g.protocol==="https:",p;o.http2?p=fke.auto:p=h?lke.request:p6.request;let d=(e=o.request)!==null&&e!==void 0?e:p,m=o.cache?this._createCacheableRequest:d;l&&!o.http2&&(o.agent=l[h?"https":"http"]),o[Pi]=d,delete o.request,delete o.timeout;let y=o;if(y.shared=(t=o.cacheOptions)===null||t===void 0?void 0:t.shared,y.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,y.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,y.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{y.family=I6.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(y.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(y.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(y.ca=o.https.certificateAuthority),o.https.certificate&&(y.cert=o.https.certificate),o.https.key&&(y.key=o.https.key),o.https.passphrase&&(y.passphrase=o.https.passphrase),o.https.pfx&&(y.pfx=o.https.pfx));try{let B=await m(g,y);Ce.default.undefined(B)&&(B=p(g,y)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete y.rejectUnauthorized,o.https.checkServerIdentity&&delete y.checkServerIdentity,o.https.certificateAuthority&&delete y.ca,o.https.certificate&&delete y.cert,o.https.key&&delete y.key,o.https.passphrase&&delete y.passphrase,o.https.pfx&&delete y.pfx),Qke(B)?this._onRequest(B):this.writable?(this.once("finish",()=>{this._onResponse(B)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(B)}catch(B){throw B instanceof d6.CacheError?new aB(B,this):new _r(B.message,B,this)}}async _error(e){try{for(let t of this.options.hooks.beforeError)e=await t(e)}catch(t){e=new _r(t.message,t,this)}this.destroy(e)}_beforeError(e){if(this[Jf])return;let{options:t}=this,i=this.retryCount+1;this[Jf]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await Eke.default(s),s.body=s.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await t.retry.calculateDelay({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:wke.default({attemptCount:i,retryOptions:t.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[Q6]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[iB]=!0;let e=this[nB];if(e&&!this[Jf]){e.readableLength&&(this[iB]=!1);let t;for(;(t=e.read())!==null;){this[Gf]+=t.length,this[B6]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(t)}}}_write(e,t,i){let n=()=>{this._writeRequest(e,t,i)};this.requestInitialized?n():this[bC].push(n)}_writeRequest(e,t,i){this[Pi].destroyed||(this._progressCallbacks.push(()=>{this[qf]+=Buffer.byteLength(e,t);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Pi].write(e,t,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let t=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Pi in this)){e();return}if(this[Pi].destroyed){e();return}this[Pi].end(i=>{i||(this[Yf]=this[qf],this.emit("uploadProgress",this.uploadProgress),this[Pi].emit("upload-complete")),e(i)})};this.requestInitialized?t():this[bC].push(t)}_destroy(e,t){var i;this[Jf]=!0,clearTimeout(this[Q6]),Pi in this&&(this[dR](),!((i=this[nB])===null||i===void 0)&&i.complete||this[Pi].destroy()),e!==null&&!Ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),t(e)}get _isAboutToError(){return this[Jf]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,t,i;return((t=(e=this[Pi])===null||e===void 0?void 0:e.destroyed)!==null&&t!==void 0?t:this.destroyed)&&!(!((i=this[b6])===null||i===void 0)&&i.complete)}get socket(){var e,t;return(t=(e=this[Pi])===null||e===void 0?void 0:e.socket)!==null&&t!==void 0?t:void 0}get downloadProgress(){let e;return this[jf]?e=this[Gf]/this[jf]:this[jf]===this[Gf]?e=1:e=0,{percent:e,transferred:this[Gf],total:this[jf]}}get uploadProgress(){let e;return this[Yf]?e=this[qf]/this[Yf]:this[Yf]===this[qf]?e=1:e=0,{percent:e,transferred:this[qf],total:this[Yf]}}get timings(){var e;return(e=this[Pi])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[w6]}pipe(e,t){if(this[B6])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof hR.ServerResponse&&this[rB].add(e),super.pipe(e,t)}unpipe(e){return e instanceof hR.ServerResponse&&this[rB].delete(e),super.unpipe(e),this}};Ut.default=uB});var vC=I(ao=>{"use strict";var kke=ao&&ao.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Dke=ao&&ao.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kke(e,r,t)};Object.defineProperty(ao,"__esModule",{value:!0});ao.CancelError=ao.ParseError=void 0;var S6=SC(),mR=class extends S6.RequestError{constructor(e,t){let{options:i}=t.request;super(`${e.message} in "${i.url.toString()}"`,e,t.request),this.name="ParseError"}};ao.ParseError=mR;var ER=class extends S6.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};ao.CancelError=ER;Dke(SC(),ao)});var x6=I(IR=>{"use strict";Object.defineProperty(IR,"__esModule",{value:!0});var v6=vC(),Rke=(r,e,t,i)=>{let{rawBody:n}=r;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":t(n.toString());if(e==="buffer")return n;throw new v6.ParseError({message:`Unknown body type '${e}'`,name:"Error"},r)}catch(s){throw new v6.ParseError(s,r)}};IR.default=Rke});var yR=I(ZA=>{"use strict";var Fke=ZA&&ZA.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Nke=ZA&&ZA.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Fke(e,r,t)};Object.defineProperty(ZA,"__esModule",{value:!0});var Tke=J("events"),Lke=Ya(),Oke=xz(),gB=vC(),P6=x6(),k6=SC(),Mke=iR(),Kke=cR(),D6=uR(),Uke=["request","response","redirect","uploadProgress","downloadProgress"];function R6(r){let e,t,i=new Tke.EventEmitter,n=new Oke((o,a,l)=>{let c=u=>{let g=new k6.default(void 0,r);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new gB.CancelError(g))),e=g,g.once("response",async d=>{var m;if(d.retryCount=u,d.request.aborted)return;let y;try{y=await Kke.default(g),d.rawBody=y}catch{return}if(g._isAboutToError)return;let B=((m=d.headers["content-encoding"])!==null&&m!==void 0?m:"").toLowerCase(),S=["gzip","deflate","br"].includes(B),{options:P}=g;if(S&&!P.decompress)d.body=y;else try{d.body=P6.default(d,P.responseType,P.parseJson,P.encoding)}catch(F){if(d.body=y.toString(),D6.isResponseOk(d)){g._beforeError(F);return}}try{for(let[F,H]of P.hooks.afterResponse.entries())d=await H(d,async q=>{let _=k6.default.normalizeArguments(void 0,{...q,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},P);_.hooks.afterResponse=_.hooks.afterResponse.slice(0,F);for(let W of _.hooks.beforeRetry)await W(_);let X=R6(_);return l(()=>{X.catch(()=>{}),X.cancel()}),X})}catch(F){g._beforeError(new gB.RequestError(F.message,F,g));return}if(!D6.isResponseOk(d)){g._beforeError(new gB.HTTPError(d));return}t=d,o(g.options.resolveBodyOnly?d.body:d)});let h=d=>{if(n.isCanceled)return;let{options:m}=g;if(d instanceof gB.HTTPError&&!m.throwHttpErrors){let{response:y}=d;o(g.options.resolveBodyOnly?y.body:y);return}a(d)};g.once("error",h);let p=g.options.body;g.once("retry",(d,m)=>{var y,B;if(p===((y=m.request)===null||y===void 0?void 0:y.options.body)&&Lke.default.nodeStream((B=m.request)===null||B===void 0?void 0:B.options.body)){h(m);return}c(d)}),Mke.default(g,i,Uke)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=t.request;return P6.default(t,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}ZA.default=R6;Nke(vC(),ZA)});var F6=I(wR=>{"use strict";Object.defineProperty(wR,"__esModule",{value:!0});var Hke=vC();function jke(r,...e){let t=(async()=>{if(r instanceof Hke.RequestError)try{for(let n of e)if(n)for(let s of n)r=await s(r)}catch(n){r=n}throw r})(),i=()=>t;return t.json=i,t.text=i,t.buffer=i,t.on=i,t}wR.default=jke});var L6=I(BR=>{"use strict";Object.defineProperty(BR,"__esModule",{value:!0});var N6=Ya();function T6(r){for(let e of Object.values(r))(N6.default.plainObject(e)||N6.default.array(e))&&T6(e);return Object.freeze(r)}BR.default=T6});var M6=I(O6=>{"use strict";Object.defineProperty(O6,"__esModule",{value:!0})});var bR=I(bs=>{"use strict";var Gke=bs&&bs.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),Yke=bs&&bs.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Gke(e,r,t)};Object.defineProperty(bs,"__esModule",{value:!0});bs.defaultHandler=void 0;var K6=Ya(),Bs=yR(),qke=F6(),hB=SC(),Jke=L6(),Wke={RequestError:Bs.RequestError,CacheError:Bs.CacheError,ReadError:Bs.ReadError,HTTPError:Bs.HTTPError,MaxRedirectsError:Bs.MaxRedirectsError,TimeoutError:Bs.TimeoutError,ParseError:Bs.ParseError,CancelError:Bs.CancelError,UnsupportedProtocolError:Bs.UnsupportedProtocolError,UploadError:Bs.UploadError},zke=async r=>new Promise(e=>{setTimeout(e,r)}),{normalizeArguments:fB}=hB.default,U6=(...r)=>{let e;for(let t of r)e=fB(void 0,t,e);return e},Vke=r=>r.isStream?new hB.default(void 0,r):Bs.default(r),Xke=r=>"defaults"in r&&"options"in r.defaults,Zke=["get","post","put","patch","head","delete"];bs.defaultHandler=(r,e)=>e(r);var H6=(r,e)=>{if(r)for(let t of r)t(e)},j6=r=>{r._rawHandlers=r.handlers,r.handlers=r.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>r.handlers[l++](u,l===r.handlers.length?Vke:c);if(K6.default.plainObject(i)){let u={...i,...n};hB.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{H6(r.options.hooks.init,n),H6((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(h){u=h}let g=fB(i,n,s!=null?s:r.options);if(g[hB.kIsNormalizedAlready]=!0,u)throw new Bs.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qke.default(u,r.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[r.options],s=[...r._rawHandlers],o;for(let a of i)Xke(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==bs.defaultHandler),s.length===0&&s.push(bs.defaultHandler),j6({options:U6(...n),handlers:s,mutableDefaults:Boolean(o)})};let t=async function*(i,n){let s=fB(i,n,r.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!K6.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c<o.requestLimit;){c!==0&&await zke(o.backoff);let u=await e(void 0,void 0,s),g=await o.transform(u),h=[];for(let d of g)if(o.filter(d,a,h)&&(!o.shouldContinue(d,a,h)||(yield d,o.stackAllItems&&a.push(d),h.push(d),--l<=0)))return;let p=o.paginate(u,a,h);if(p===!1)return;p===u.request.options?s=u.request.options:p!==void 0&&(s=fB(void 0,p,s)),c++}};e.paginate=t,e.paginate.all=async(i,n)=>{let s=[];for await(let o of t(i,n))s.push(o);return s},e.paginate.each=t,e.stream=(i,n)=>e(i,{...n,isStream:!0});for(let i of Zke)e[i]=(n,s)=>e(n,{...s,method:i}),e.stream[i]=(n,s)=>e(n,{...s,method:i,isStream:!0});return Object.assign(e,Wke),Object.defineProperty(e,"defaults",{value:r.mutableDefaults?r:Jke.default(r),writable:r.mutableDefaults,configurable:r.mutableDefaults,enumerable:!0}),e.mergeOptions=U6,e};bs.default=j6;Yke(M6(),bs)});var dB=I((qa,pB)=>{"use strict";var _ke=qa&&qa.__createBinding||(Object.create?function(r,e,t,i){i===void 0&&(i=t),Object.defineProperty(r,i,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]}),G6=qa&&qa.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&_ke(e,r,t)};Object.defineProperty(qa,"__esModule",{value:!0});var $ke=J("url"),Y6=bR(),eDe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:r})=>r},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:r=>r.request.options.responseType==="json"?r.body:JSON.parse(r.body),paginate:r=>{if(!Reflect.has(r.headers,"link"))return!1;let e=r.headers.link.split(","),t;for(let i of e){let n=i.split(";");if(n[1].includes("next")){t=n[0].trimStart().trim(),t=t.slice(1,-1);break}}return t?{url:new $ke.URL(t)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:r=>JSON.parse(r),stringifyJson:r=>JSON.stringify(r),cacheOptions:{}},handlers:[Y6.defaultHandler],mutableDefaults:!1},QR=Y6.default(eDe);qa.default=QR;pB.exports=QR;pB.exports.default=QR;pB.exports.__esModule=!0;G6(bR(),qa);G6(yR(),qa)});var z6=I(Wf=>{"use strict";var mst=J("net"),tDe=J("tls"),SR=J("http"),q6=J("https"),rDe=J("events"),Est=J("assert"),iDe=J("util");Wf.httpOverHttp=nDe;Wf.httpsOverHttp=sDe;Wf.httpOverHttps=oDe;Wf.httpsOverHttps=aDe;function nDe(r){var e=new Ja(r);return e.request=SR.request,e}function sDe(r){var e=new Ja(r);return e.request=SR.request,e.createSocket=J6,e.defaultPort=443,e}function oDe(r){var e=new Ja(r);return e.request=q6.request,e}function aDe(r){var e=new Ja(r);return e.request=q6.request,e.createSocket=J6,e.defaultPort=443,e}function Ja(r){var e=this;e.options=r||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||SR.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=W6(n,s,o),l=0,c=e.requests.length;l<c;++l){var u=e.requests[l];if(u.host===a.host&&u.port===a.port){e.requests.splice(l,1),u.request.onSocket(i);return}}i.destroy(),e.removeSocket(i)})}iDe.inherits(Ja,rDe.EventEmitter);Ja.prototype.addRequest=function(e,t,i,n){var s=this,o=vR({request:e},s.options,W6(t,i,n));if(s.sockets.length>=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ja.prototype.createSocket=function(e,t){var i=this,n={};i.sockets.push(n);var s=vR({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),_A("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,h,p){process.nextTick(function(){c(g,h,p)})}function c(g,h,p){if(o.removeAllListeners(),h.removeAllListeners(),g.statusCode!==200){_A("tunneling socket could not be established, statusCode=%d",g.statusCode),h.destroy();var d=new Error("tunneling socket could not be established, statusCode="+g.statusCode);d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}if(p.length>0){_A("got illegal response body from proxy"),h.destroy();var d=new Error("got illegal response body from proxy");d.code="ECONNRESET",e.request.emit("error",d),i.removeSocket(n);return}return _A("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=h,t(h)}function u(g){o.removeAllListeners(),_A(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var h=new Error("tunneling socket could not be established, cause="+g.message);h.code="ECONNRESET",e.request.emit("error",h),i.removeSocket(n)}};Ja.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function J6(r,e){var t=this;Ja.prototype.createSocket.call(t,r,function(i){var n=r.request.getHeader("host"),s=vR({},t.options,{socket:i,servername:n?n.replace(/:.*$/,""):r.host}),o=tDe.connect(0,s);t.sockets[t.sockets.indexOf(i)]=o,e(o)})}function W6(r,e,t){return typeof r=="string"?{host:r,port:e,localAddress:t}:r}function vR(r){for(var e=1,t=arguments.length;e<t;++e){var i=arguments[e];if(typeof i=="object")for(var n=Object.keys(i),s=0,o=n.length;s<o;++s){var a=n[s];i[a]!==void 0&&(r[a]=i[a])}}return r}var _A;process.env.NODE_DEBUG&&/\btunnel\b/.test(process.env.NODE_DEBUG)?_A=function(){var r=Array.prototype.slice.call(arguments);typeof r[0]=="string"?r[0]="TUNNEL: "+r[0]:r.unshift("TUNNEL:"),console.error.apply(console,r)}:_A=function(){};Wf.debug=_A});var X6=I((yst,V6)=>{V6.exports=z6()});var a9=I((EB,FR)=>{var o9=Object.assign({},J("fs")),RR=function(){var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(r=r||__filename),function(e){e=e||{};var t=typeof e<"u"?e:{},i,n;t.ready=new Promise(function(f,E){i=f,n=E});var s={},o;for(o in t)t.hasOwnProperty(o)&&(s[o]=t[o]);var a=[],l="./this.program",c=function(f,E){throw E},u=!1,g=!0,h="";function p(f){return t.locateFile?t.locateFile(f,h):h+f}var d,m,y,B;g&&(u?h=J("path").dirname(h)+"/":h=__dirname+"/",d=function(E,w){var k=pa(E);return k?w?k:k.toString():(y||(y=o9),B||(B=J("path")),E=B.normalize(E),y.readFileSync(E,w?null:"utf8"))},m=function(E){var w=d(E,!0);return w.buffer||(w=new Uint8Array(w)),te(w.buffer),w},process.argv.length>1&&(l=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),c=function(f){process.exit(f)},t.inspect=function(){return"[Emscripten Module object]"});var S=t.print||console.log.bind(console),P=t.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(t[o]=s[o]);s=null,t.arguments&&(a=t.arguments),t.thisProgram&&(l=t.thisProgram),t.quit&&(c=t.quit);var F=16;function H(f,E){return E||(E=F),Math.ceil(f/E)*E}var q=0,_=function(f){q=f},X;t.wasmBinary&&(X=t.wasmBinary);var W=t.noExitRuntime||!0;typeof WebAssembly!="object"&&yr("no native wasm support detected");function Z(f,E,w){switch(E=E||"i8",E.charAt(E.length-1)==="*"&&(E="i32"),E){case"i1":return ie[f>>0];case"i8":return ie[f>>0];case"i16":return fe[f>>1];case"i32":return de[f>>2];case"i64":return de[f>>2];case"float":return vt[f>>2];case"double":return mt[f>>3];default:yr("invalid type for getValue: "+E)}return null}var A,ne=!1,ue;function te(f,E){f||yr("Assertion failed: "+E)}function O(f){var E=t["_"+f];return te(E,"Cannot call unknown function "+f+", make sure it is exported"),E}function N(f,E,w,k,L){var T={string:function(nt){var wt=0;if(nt!=null&&nt!==0){var Ii=(nt.length<<2)+1;wt=GE(Ii),se(nt,wt,Ii)}return wt},array:function(nt){var wt=GE(nt.length);return ge(nt,wt),wt}};function ee(nt){return E==="string"?De(nt):E==="boolean"?Boolean(nt):nt}var Ie=O(f),Oe=[],it=0;if(k)for(var at=0;at<k.length;at++){var Ue=T[w[at]];Ue?(it===0&&(it=tS()),Oe[at]=Ue(k[at])):Oe[at]=k[at]}var Ve=Ie.apply(null,Oe);return Ve=ee(Ve),it!==0&&rS(it),Ve}function ce(f,E,w,k){w=w||[];var L=w.every(function(ee){return ee==="number"}),T=E!=="string";return T&&L&&!k?O(f):function(){return N(f,E,w,arguments,k)}}var he=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Pe(f,E,w){for(var k=E+w,L=E;f[L]&&!(L>=k);)++L;if(L-E>16&&f.subarray&&he)return he.decode(f.subarray(E,L));for(var T="";E<L;){var ee=f[E++];if(!(ee&128)){T+=String.fromCharCode(ee);continue}var Ie=f[E++]&63;if((ee&224)==192){T+=String.fromCharCode((ee&31)<<6|Ie);continue}var Oe=f[E++]&63;if((ee&240)==224?ee=(ee&15)<<12|Ie<<6|Oe:ee=(ee&7)<<18|Ie<<12|Oe<<6|f[E++]&63,ee<65536)T+=String.fromCharCode(ee);else{var it=ee-65536;T+=String.fromCharCode(55296|it>>10,56320|it&1023)}}return T}function De(f,E){return f?Pe(G,f,E):""}function Re(f,E,w,k){if(!(k>0))return 0;for(var L=w,T=w+k-1,ee=0;ee<f.length;++ee){var Ie=f.charCodeAt(ee);if(Ie>=55296&&Ie<=57343){var Oe=f.charCodeAt(++ee);Ie=65536+((Ie&1023)<<10)|Oe&1023}if(Ie<=127){if(w>=T)break;E[w++]=Ie}else if(Ie<=2047){if(w+1>=T)break;E[w++]=192|Ie>>6,E[w++]=128|Ie&63}else if(Ie<=65535){if(w+2>=T)break;E[w++]=224|Ie>>12,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}else{if(w+3>=T)break;E[w++]=240|Ie>>18,E[w++]=128|Ie>>12&63,E[w++]=128|Ie>>6&63,E[w++]=128|Ie&63}}return E[w]=0,w-L}function se(f,E,w){return Re(f,G,E,w)}function Ae(f){for(var E=0,w=0;w<f.length;++w){var k=f.charCodeAt(w);k>=55296&&k<=57343&&(k=65536+((k&1023)<<10)|f.charCodeAt(++w)&1023),k<=127?++E:k<=2047?E+=2:k<=65535?E+=3:E+=4}return E}function ye(f){var E=Ae(f)+1,w=pt(E);return w&&Re(f,ie,w,E),w}function ge(f,E){ie.set(f,E)}function oe(f,E){return f%E>0&&(f+=E-f%E),f}var Ye,ie,G,fe,re,de,Ze,vt,mt;function Lr(f){Ye=f,t.HEAP8=ie=new Int8Array(f),t.HEAP16=fe=new Int16Array(f),t.HEAP32=de=new Int32Array(f),t.HEAPU8=G=new Uint8Array(f),t.HEAPU16=re=new Uint16Array(f),t.HEAPU32=Ze=new Uint32Array(f),t.HEAPF32=vt=new Float32Array(f),t.HEAPF64=mt=new Float64Array(f)}var ti=t.INITIAL_MEMORY||16777216,ui,gr=[],gi=[],ri=[],Ms=!1;function fr(){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)ua(t.preRun.shift());yo(gr)}function Ei(){Ms=!0,!t.noFSInit&&!Q.init.initialized&&Q.init(),ns.init(),yo(gi)}function rs(){if(t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)gg(t.postRun.shift());yo(ri)}function ua(f){gr.unshift(f)}function CA(f){gi.unshift(f)}function gg(f){ri.unshift(f)}var is=0,mA=null,ga=null;function wp(f){return f}function EA(f){is++,t.monitorRunDependencies&&t.monitorRunDependencies(is)}function IA(f){if(is--,t.monitorRunDependencies&&t.monitorRunDependencies(is),is==0&&(mA!==null&&(clearInterval(mA),mA=null),ga)){var E=ga;ga=null,E()}}t.preloadedImages={},t.preloadedAudios={};function yr(f){t.onAbort&&t.onAbort(f),f+="",P(f),ne=!0,ue=1,f="abort("+f+"). Build with -s ASSERTIONS=1 for more info.";var E=new WebAssembly.RuntimeError(f);throw n(E),E}var Nl="data:application/octet-stream;base64,";function fg(f){return f.startsWith(Nl)}var Io="data:application/octet-stream;base64,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ACgCFC0AAiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQADIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAQgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABSAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAGIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAcgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAJIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAogACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ACyAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAMIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAA0gACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ADiAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAPIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhRBEGo2AhQgACAAKAIIQQFrIgE2AgggAQ0ACyAAIAAoAhhB8f8DcDYCGCAAIAAoAgxB8f8DcDYCDAwBCwsgACgCEARAA0AgACgCEEEQTwRAIAAgACgCEEEQazYCECAAIAAoAhQtAAAgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AASAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQACIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAMgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0ABCAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAFIAAoAhhqNgIYIAAgACgCGCAAKAIMajYCDCAAIAAoAhQtAAYgACgCGGo2AhggACAAKAIYIAAoAgxqNgIMIAAgACgCFC0AByAAKAIYajYCGCAAIAAoAhggACgCDGo2AgwgACAAKAIULQAIIAAoAhhqNgIYIAAgACgCGCAAKAIMajYC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NgIYIAEoAgxCADcDICABKAIMQgA3AyggASgCDEEANgIwIAEoAgxBADYCNCABKAIMQQA2AjggASgCDEEANgI8IAEoAgxBADsBQCABKAIMQYCA2I14NgJEIAEoAgxCADcDSCABKAIMQQA7AVAgASgCDEEAOwFSIAEoAgxBADYCVAvSEwEBfyMAQbABayIDJAAgAyAANgKoASADIAE2AqQBIAMgAjYCoAEgA0EANgKQASADIAMoAqQBKAIwQQAQOjYClAEgAyADKAKkASgCOEEAEDo2ApgBAkACQAJAAkAgAygClAFBAkYEQCADKAKYAUEBRg0BCyADKAKUAUEBRgRAIAMoApgBQQJGDQELIAMoApQBQQJHDQEgAygCmAFBAkcNAQsgAygCpAEiACAALwEMQYAQcjsBDAwBCyADKAKkASIAIAAvAQxB/+8DcTsBDCADKAKUAUECRgRAIANB9eABIAMoAqQBKAIwIAMoAqgBQQhqEI4BNgKQASADKAKQAUUEQCADQX82AqwBDAMLCwJAIAMoAqABQYACcQ0AIAMoApgBQQJHDQAgA0H1xgEgAygCpAEoAjggAygCqAFBCGoQjgE2AkggAygCSEUEQCADKAKQARAjIANBfzYCrAEMAwsgAygCSCADKAKQATYCACADIAMoAkg2ApABCwsCQCADKAKkAS8BUkUEQCADKAKkASIAIAAvAQxB/v8DcTsBDAwBCyADKAKkASIAIAAvAQxBAXI7AQwLIAMgAygCpAEgAygCoAEQZUEBcToAhgEgAyADKAKgAUGACnFBgApHBH8gAy0AhgEFQQELQQFxOgCHASADAn9BASADKAKkAS8BUkGBAkYNABpBASADKAKkAS8BUkGCAkYNABogAygCpAEvAVJBgwJGC0EBcToAhQEgAy0AhwFBAXEEQCADIANBIGpCHBApNgIcIAMoAhxFBEAgAygCqAFBCGpBDkEAEBQgAygCkAEQIyADQX82AqwBDAILAkAgAygCoAFBgAJxBEACQCADKAKgAUGACHENACADKAKkASkDIEL/////D1YNACADKAKkASkDKEL/////D1gNAgsgAygCHCADKAKkASkDKBAtIAMoAhwgAygCpAEpAyAQLQwBCwJAAkAgAygCoAFBgAhxDQAgAygCpAEpAyBC/////w9WDQAgAygCpAEpAyhC/////w9WDQAgAygCpAEpA0hC/////w9YDQELIAMoAqQBKQMoQv////8PWgRAIAMoAhwgAygCpAEpAygQLQsgAygCpAEpAyBC/////w9aBEAgAygCHCADKAKkASkDIBAtCyADKAKkASkDSEL/////D1oEQCADKAIcIAMoAqQBKQNIEC0LCwsCfyMAQRBrIgAgAygCHDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIcEBYgAygCkAEQIyADQX82AqwBDAILIANBAQJ/IwBBEGsiACADKAIcNgIMAn4gACgCDC0AAEEBcQRAIAAoAgwpAxAMAQtCAAunQf//A3ELIANBIGpBgAYQVTYCjAEgAygCHBAWIAMoAowBIAMoApABNgIAIAMgAygCjAE2ApABCyADLQCFAUEBcQRAIAMgA0EVakIHECk2AhAgAygCEEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAgsgAygCEEECEB8gAygCEEG9EkECEEEgAygCECADKAKkAS8BUkH/AXEQlgEgAygCECADKAKkASgCEEH//wNxEB8CfyMAQRBrIgAgAygCEDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAIQEBYgAygCkAEQIyADQX82AqwBDAILIANBgbICQQcgA0EVakGABhBVNgIMIAMoAhAQFiADKAIMIAMoApABNgIAIAMgAygCDDYCkAELIAMgA0HQAGpCLhApIgA2AkwgAEUEQCADKAKoAUEIakEOQQAQFCADKAKQARAjIANBfzYCrAEMAQsgAygCTEHxEkH2EiADKAKgAUGAAnEbQQQQQSADKAKgAUGAAnFFBEAgAygCTCADLQCGAUEBcQR/QS0FIAMoAqQBLwEIC0H//wNxEB8LIAMoAkwgAy0AhgFBAXEEf0EtBSADKAKkAS8BCgtB//8DcRAfIAMoAkwgAygCpAEvAQwQHwJAIAMtAIUBQQFxBEAgAygCTEHjABAfDAELIAMoAkwgAygCpAEoAhBB//8DcRAfCyADKAKkASgCFCADQZ4BaiADQZwBahCNASADKAJMIAMvAZ4BEB8gAygCTCADLwGcARAfAkACQCADLQCFAUEBcUUNACADKAKkASkDKEIUWg0AIAMoAkxBABAhDAELIAMoAkwgAygCpAEoAhgQIQsCQAJAIAMoAqABQYACcUGAAkcNACADKAKkASkDIEL/////D1QEQCADKAKkASkDKEL/////D1QNAQsgAygCTEF/ECEgAygCTEF/ECEMAQsCQCADKAKkASkDIEL/////D1QEQCADKAJMIAMoAqQBKQMgpxAhDAELIAMoAkxBfxAhCwJAIAMoAqQBKQMoQv////8PVARAIAMoAkwgAygCpAEpAyinECEMAQsgAygCTEF/ECELCyADKAJMIAMoAqQBKAIwEFFB//8DcRAfIAMgAygCpAEoAjQgAygCoAEQkgFB//8DcSADKAKQAUGABhCSAUH//wNxajYCiAEgAygCTCADKAKIAUH//wNxEB8gAygCoAFBgAJxRQRAIAMoAkwgAygCpAEoAjgQUUH//wNxEB8gAygCTCADKAKkASgCPEH//wNxEB8gAygCTCADKAKkAS8BQBAfIAMoAkwgAygCpAEoAkQQIQJAIAMoAqQBKQNIQv////8PVARAIAMoAkwgAygCpAEpA0inECEMAQsgAygCTEF/ECELCwJ/IwBBEGsiACADKAJMNgIMIAAoAgwtAABBAXFFCwRAIAMoAqgBQQhqQRRBABAUIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCqAEgA0HQAGoCfiMAQRBrIgAgAygCTDYCDAJ+IAAoAgwtAABBAXEEQCAAKAIMKQMQDAELQgALCxA2QQBIBEAgAygCTBAWIAMoApABECMgA0F/NgKsAQwBCyADKAJMEBYgAygCpAEoAjAEQCADKAKoASADKAKkASgCMBCFAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEEQCADKAKoASADKAKQAUGABhCRAUEASARAIAMoApABECMgA0F/NgKsAQwCCwsgAygCkAEQIyADKAKkASgCNARAIAMoAqgBIAMoAqQBKAI0IAMoAqABEJEBQQBIBEAgA0F/NgKsAQwCCwsgAygCoAFBgAJxRQRAIAMoAqQBKAI4BEAgAygCqAEgAygCpAEoAjgQhQFBAEgEQCADQX82AqwBDAMLCwsgAyADLQCHAUEBcTYCrAELIAMoAqwBIQAgA0GwAWokACAAC+ACAQF/IwBBIGsiBCQAIAQgADsBGiAEIAE7ARggBCACNgIUIAQgAzYCECAEQRAQGCIANgIMAkAg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AAAgAygCHEHcFmogAygCDEECdGooAgAgAygCHEHYKGpqLQAASg0ADAELIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhxB3BZqIAMoAgxBAnRqKAIANgIAIAMgAygCDDYCFCADIAMoAgxBAXQ2AgwMAQsLIAMoAhxB3BZqIAMoAhRBAnRqIAMoAhA2AgAL1xMBA38jAEEwayICJAAgAiAANgIsIAIgATYCKCACIAIoAigoAgA2AiQgAiACKAIoKAIIKAIANgIgIAIgAigCKCgCCCgCDDYCHCACQX82AhAgAigCLEEANgLQKCACKAIsQb0ENgLUKCACQQA2AhgDQCACKAIYIAIoAhxIBEACQCACKAIkIAIoAhhBAnRqLwEABEAgAiACKAIYIgE2AhAgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQAgBCAANgLQKCAAQQJ0IANqIAE2AgAgAigCGCACKAIsQdgoampBADoAAAwBCyACKAIkIAIoAhhBAnRqQQA7AQILIAIgAigCGEEBajYCGAwBCwsDQCACKAIsKALQKEECSARAAkAgAigCEEECSARAIAIgAigCEEEBaiIANgIQDAELQQAhAAsgAigCLEHcFmohAyACKAIsIgQoAtAoQQFqIQEgBCABNgLQKCABQQJ0IANqIAA2AgAgAiAANgIMIAIoAiQgAigCDEECdGpBATsBACACKAIMIAIoAixB2ChqakEAOgAAIAIoAiwiACAAKAKoLUEBazYCqC0gAigCIARAIAIoAiwiACAAKAKsLSACKAIgIAIoAgxBAnRqLwECazYCrC0LDAELCyACKAIoIAIoAhA2AgQgAiACKAIsKALQKEECbTYCGANAIAIoAhhBAU4EQCACKAIsIAIoAiQgAigCGBB5IAIgAigCGEEBazYCGAwBCwsgAiACKAIcNgIMA0AgAiACKAIsKALgFjYCGCACKAIsQdwWaiEBIAIoAiwiAygC0CghACADIABBAWs2AtAoIAIoAiwgAEECdCABaigCADYC4BYgAigCLCACKAIkQQEQeSACIAIoAiwoAuAWNgIUIAIoAhghASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIUIQEgAigCLEHcFmohAyACKAIsIgQoAtQoQQFrIQAgBCAANgLUKCAA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AQsgAigCCEEANgIAIAIoAghCADcDECACKAIIQgA3AwggAigCCEIANwMgIAIoAghCADcDGCACKAIIQQA2AiggAigCCEEAOgAsIAIoAgggAikDECACKAIMEI8BQQFxRQRAIAIoAggQJSACQQA2AhwMAQsgAiACKAIINgIcCyACKAIcIQEgAkEgaiQAIAEL1gIBAX8jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADQQxqQgQQKTYCCAJAIAMoAghFBEAgA0F/NgIcDAELA0AgAygCFARAIAMoAhQoAgQgAygCEHFBgAZxBEAgAygCCEIAECwaIAMoAgggAygCFC8BCBAfIAMoAgggAygCFC8BChAfAn8jAEEQayIAIAMoAgg2AgwgACgCDC0AAEEBcUULBEAgAygCGEEIakEUQQAQFCADKAIIEBYgA0F/NgIcDAQLIAMoAhggA0EMakIEEDZBAEgEQCADKAIIEBYgA0F/NgIcDAQLIAMoAhQvAQoEQCADKAIYIAMoAhQoAgwgAygCFC8BCq0QNkEASARAIAMoAggQFiADQX82AhwMBQsLCyADIAMoAhQoAgA2AhQMAQsLIAMoAggQFiADQQA2AhwLIAMoAhwhACADQSBqJAAgAAtoAQF/IwBBEGsiAiAANgIMIAIgATYCCCACQQA7AQYDQCACKAIMBEAgAigCDCgCBCACKAIIcUGABnEEQCACIAIoAgwvAQogAi8BBkEEamo7AQYLIAIgAigCDCgCADYCDAwBCwsgAi8BBgvwAQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAFBADYCBANAIAEoAgwEQAJAAkAgASgCDC8BCEH1xgFGDQAgASgCDC8BCEH14AFGDQAgASgCDC8BCEGBsgJGDQAgASgCDC8BCEEBRw0BCyABIAEoAgwoAgA2AgAgASgCCCABKAIMRgRAIAEgASgCADYCCAsgASgCDEEANgIAIAEoAgwQIyABKAIEBEAgASgCBCABKAIANgIACyABIAEoAgA2AgwMAgsgASABKAIMNgIEIAEgASgCDCgCADYCDAwBCwsgASgCCCEAIAFBEGokACAAC7IEAQF/IwBBQGoiBSQAIAUgADYCOCAFIAE7ATYgBSACNgIwIAUgAzYCLCAFIAQ2AiggBSAFKAI4IAUvATatECkiADYC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IAEoAhBB//8DRgRAIAEgASgCDDYCEAsgASgCCEH//wNGBEAgASABKAIENgIICwJAIAEoApQBQQRxRQ0AIAEoAgggASgCBEYEQCABKAIQIAEoAgxGDQELIAEoApABQRVBABAUIAEtABdBAXEEQCABKAKkARAWCyABQQA2AqwBDAELAkAgASgCEEUEQCABKAIIRQ0BCyABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AyggASABKAKkARAxNwMgIAEpAyggASkDIFIEQCABKAKQAUEBQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABIAEoAqQBEDE3AzAgASABKAKkARAxNwOAAQJ/IwBBEGsiBSABKAKkATYCDCAFKAIMLQAAQQFxRQsEQCABKAKQAUEUQQAQFCABLQAXQQFxBEAgASgCpAEQFgsgAUEANgKsAQwBCyABLQAXQQFxBEAgASgCpAEQFgsCQCABKQOAAUL///////////8AWARAIAEpA4ABIAEpA4ABIAEpAzB8WA0BCyABKAKQAUEEQRYQFCABQQA2AqwBDAELIAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCQASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQMEIWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJIQgQQHhogASgCSBAqBEAgASgCOEEBQQAQFCABQQA2AkwMAQsgASABKAJIEB1B//8Dca03AyggASABKAJIEB1B//8Dca03AyAgASkDICABKQMoUgRAIAEoAjhBE0EAEBQgAUEANgJMDAELIAEgASgCSBAqrTcDGCABIAEoAkgQKq03AxAgASkDECABKQMQIAEpAxh8VgRAIAEoAjhBBEEWEBQgAUEANgJMDAELIAEpAxAgASkDGHwgASkDQCABKQMIfFYEQCABKAI4QRVBABAUIAFBADYCTAwBCwJAIAEoAjxBBHFFDQAgASkDECABKQMYfCABKQNAIAEpAwh8UQ0AIAEoAjhBFUEAEBQgAUEANgJMDAELIAEgASkDICABKAI4EJABIgU2AjQgBUUEQCABQQA2AkwMAQsgASgCNEEAOgAsIAEoAjQgASkDGDcDGCABKAI0IAEpAxA3AyAgASABKAI0NgJMCyABKAJMIQUgAUHQAGokACAAIAU2AlALIAAoAlBFBEAgAEEANgJsDAELIAAoAmQgACkDMEIUfBAsGiAAIAAoAmQQHTsBTiAAKAJQKQMgIAAoAlApAxh8IAApA1ggACkDMHxWBEAgACgCVEEVQQAQFCAAKAJQECUgAEEANgJsDAELAkAgAC8BTkUEQCAAKAJoKAIEQQRxRQ0BCyAAKAJkIAApAzBCFnwQLBogACAAKAJkEDA3AyACQCAAKQMgIAAvAU6tWgRAIAAoAmgoAgRBBHFFDQEgACkDICAALwFOrVENAQsgACgCVEEVQQAQFCAAKAJQECUgAEEANgJsDAILIAAvAU4EQCAAKAJkIAAvAU6tEB4gAC8BTkEAIAAoAlQQUCEBIAAoAlAgATYCKCABRQRAIAAoAlAQJSAAQQA2AmwMAwsLCwJAIAAoAlApAyAgACkDWFoEQCAAKAJkIAAoAlApAyAgACkDWH0QLBogACAAKAJkIAAoAlApAxgQHiIBNgIcIAFFBEAgACgCVEEVQQAQFCAAKAJQECUgAEEANgJsDAMLIAAgACgCHCAAKAJQKQMYECkiATYCLCABRQRAIAAoAlRBDkEAEBQgACgCUBAlIABBADYCbAwDCwwBCyAAQQA2AiwgACgCaCgCACAAKAJQKQMgQQAQJ0EASARAIAAoAlQgACgCaCgCABAXIAAoAlAQJSAAQQA2AmwMAgsgACgCaCgCABBJIAAoAlApAyBSBEAgACgCVEETQQAQFCAAKAJQECUgAEEANgJsDAILCyAAIAAoAlApAxg3AzggAEIANwNAA0ACQCAAKQM4UA0AIABBADoAGyAAKQNAIAAoAlApAwhRBEAgACgCUC0ALEEBcQ0BIAApAzhCLlQNASAAKAJQQoCABCAAKAJUEI8BQQFxRQRAIAAoAlAQJSAAKAIsEBYgAEEANgJsDAQLIABBAToAGwsjAEEQayIBJAAgAUHYABAYIgU2AggCQCAFRQRAIAFBADYCDAwBCyABKAIIEFMgASABKAIINgIMCyABKAIMIQUgAUEQaiQAIAUhASAAKAJQKAIAIAApA0CnQQR0aiABNgIAAkAgAQRAIAAgACgCUCgCACAAKQNAp0EEdGooAgAgACgCaCgCACAAKAIsQQAgACgCVBCMASIJNwMQIAlCAFkNAQsCQCAALQAbQQFxRQ0AIwBBEGsiASAAKAJUNgIMIAEoAgwoAgBBE0cNACAAKAJUQRVBABAUCyAAKAJQECUgACgCLBAWIABBADYCbAwDCyAAIAApA0BCAXw3A0AgACAAKQM4IAApAxB9NwM4DAELCwJAIAApA0AgACgCUCkDCFEEQCAAKQM4UA0BCyAAKAJUQRVBABAUIAAoAiwQFiAAKAJQECUgAEEANgJsDAELIAAoAmgoAgRBBHEEQAJAIAAoAiwEQCAAIAAoAiwQR0EBcToADwwBCyAAIAAoAmgoAgAQSTcDACAAKQMAQgBTBEAgACgCVCAAKAJoKAIAEBcgACgCUBAlIABBADYCbAwDCyAAIAApAwAgACgCUCkDICAAKAJQKQMYfFE6AA8LIAAtAA9BAXFFBEAgACgCVEEVQQAQFCAAKAIsEBYgACgCUBAlIABBADYCbAwCCwsgACgCLBAWIAAgACgCUDYCbAsgACgCbCEBIABB8ABqJAAgAiABNgJIIAEEQAJAIAIoAkwEQCACKQMgQgBXBEAgAiACKAJYIAIoAkwgAkEQahBoNwMgCyACIAIoAlggAigCSCACQRBqEGg3AygCQCACKQMgIAIpAyhTBEAgAigCTBAlIAIgAigCSDYCTCACIAIpAyg3AyAMAQsgAigCSBAlCwwBCyACIAIoAkg2AkwCQCACKAJYKAIEQQRxBEAgAiACKAJYIAIoAkwgAkEQahBoNwMgDAELIAJCADcDIAsLIAJBADYCSAsgAiACKAJEQQFqNgJEIAIoAgwgAigCRAJ/IwBBEGsiACACKAIMNgIMIAAoAgwoAgQLa6wQLBoMAQsLIAIoAgwQFiACKQMgQgBTBEAgAigCWEEIaiACQRBqEEUgAigCTBAlIAJBADYCXAwBCyACIAIoAkw2AlwLIAIoAlwhACACQeAAaiQAIAMgADYCWCAARQRAIAMoAmAgAygCXEEIahBFIwBBEGsiACADKAJoNgIMIAAoAgwiACAAKAIwQQFqNgIwIAMoAlwQPCADQQA2AmwMAQsgAygCXCADKAJYKAIANgJAIAMoAlwgAygCWCkDCDcDMCADKAJcIAMoAlgpAxA3AzggAygCXCADKAJYKAIoNgIgIAMoAlgQFSADKAJcKAJQIQAgAygCXCkDMCEJIAMoAlxBCGohAiMAQSBrIgEkACABIAA2AhggASAJNwMQIAEgAjYCDAJAIAEpAxBQBEAgAUEBOgAfDAELIwBBIGsiACABKQMQNwMQIAAgACkDELpEAAAAAAAA6D+jOQMIAkAgACsDCEQAAOD////vQWQEQCAAQX82AgQMAQsgAAJ/IAArAwgiCkQAAAAAAADwQWMgCkQAAAAAAAAAAGZxBEAgCqsMAQtBAAs2AgQLAkAgACgCBEGAgICAeEsEQCAAQYCAgIB4NgIcDAELIAAgACgCBEEBazYCBCAAIAAoAgQgACgCBEEBdnI2AgQgACAAKAIEIAAoAgRBAnZyNgIEIAAgACgCBCAAKAIEQQR2cjYCBCAAIAAoAgQgACgCBEEIdnI2AgQgACAAKAIEIAAoAgRBEHZyNgIEIAAgACgCBEEBajYCBCAAIAAoAgQ2AhwLIAEgACgCHDYCCCABKAIIIAEoAhgoAgBNBEAgAUEBOgAfDAELIAEoAhggASgCCCABKAIMEFpBAXFFBEAgAUEAOgAfDAELIAFBAToAHwsgAS0AHxogAUEgaiQAIANCADcDEANAIAMpAxAgAygCXCkDMFQEQCADIAMoAlwoAkAgAykDEKdBBHRqKAIAKAIwQQBBACADKAJgEEY2AgwgAygCDEUEQCMAQRBrIgAgAygCaDYCDCAAKAIMIgAgACgCMEEBajYCMCADKAJcEDwgA0EANgJsDAMLIAMoAlwoAlAgAygCDCADKQMQQQggAygCXEEIahB0QQFxRQRAAkAgAygCXCgCCEEKRgRAIAMoAmRBBHFFDQELIAMoAmAgAygCXEEIahBFIwBBEGsiACADKAJoNgIMIAAoAgwiACAAKAIwQQFqNgIwIAMoAlwQPCADQQA2AmwMBAsLIAMgAykDEEIBfDcDEAwBCwsgAygCXCADKAJcKAIUNgIYIAMgAygCXDYCbAsgAygCbCEAIANB8ABqJAAgBCAANgI4CyAEKAI4RQRAIAQoAlgQLxogBEEANgJcDAELIAQgBCgCODYCXAsgBCgCXCEAIARB4ABqJAAgAAuOAQEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAJBADYCBCACKAIIBEAjAEEQayIAIAIoAgg2AgwgAiAAKAIMKAIANgIEIAIoAggQrAFBAUYEQCMAQRBrIgAgAigCCDYCDEG0mwEgACgCDCgCBDYCAAsLIAIoAgwEQCACKAIMIAIoAgQ2AgALIAJBEGokAAuVAQEBfyMAQRBrIgEkACABIAA2AggCQAJ/IwBBEGsiACABKAIINgIMIAAoAgwpAxhCgIAQg1ALBEAgASgCCCgCAARAIAEgASgCCCgCABCeAUEBcToADwwCCyABQQE6AA8MAQsgASABKAIIQQBCAEESECA+AgQgASABKAIEQQBHOgAPCyABLQAPQQFxIQAgAUEQaiQAIAALfwEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIANBADYCDCADIAI2AggCQCADKQMQQv///////////wBWBEAgAygCCEEEQT0QFCADQX82AhwMAQsgAyADKAIYIAMpAxAgAygCDCADKAIIEGo2AhwLIAMoAhwhACADQSBqJAAgAAt9ACACQQFGBEAgASAAKAIIIAAoAgRrrH0hAQsCQCAAKAIUIAAoAhxLBEAgAEEAQQAgACgCJBEBABogACgCFEUNAQsgAEEANgIcIABCADcDECAAIAEgAiAAKAIoEQ8AQgBTDQAgAEIANwIEIAAgACgCAEFvcTYCAEEADwtBfwvhAgECfyMAQSBrIgMkAAJ/AkACQEGnEiABLAAAEKIBRQRAQbSbAUEcNgIADAELQZgJEBgiAg0BC0EADAELIAJBAEGQARAzIAFBKxCiAUUEQCACQQhBBCABLQAAQfIARhs2AgALAkAgAS0AAEHhAEcEQCACKAIAIQEMAQsgAEEDQQAQBCIBQYAIcUUEQCADIAFBgAhyNgIQIABBBCADQRBqEAQaCyACIAIoAgBBgAFyIgE2AgALIAJB/wE6AEsgAkGACDYCMCACIAA2AjwgAiACQZgBajYCLAJAIAFBCHENACADIANBGGo2AgAgAEGTqAEgAxAODQAgAkEKOgBLCyACQRo2AiggAkEbNgIkIAJBHDYCICACQR02AgxB6J8BKAIARQRAIAJBfzYCTAsgAkGsoAEoAgA2AjhBrKABKAIAIgAEQCAAIAI2AjQLQaygASACNgIAIAILIQAgA0EgaiQAIAAL8AEBAn8CfwJAIAFB/wFxIgMEQCAAQQNxBEADQCAALQAAIgJFDQMgAiABQf8BcUYNAyAAQQFqIgBBA3ENAAsLAkAgACgCACICQX9zIAJBgYKECGtxQYCBgoR4cQ0AIANBgYKECGwhAwNAIAIgA3MiAkF/cyACQYGChAhrcUGAgYKEeHENASAAKAIEIQIgAEEEaiEAIAJBgYKECGsgAkF/c3FBgIGChHhxRQ0ACwsDQCAAIgItAAAiAwRAIAJBAWohACADIAFB/wFxRw0BCwsgAgwCCyAAEC4gAGoMAQsgAAsiAEEAIAAtAAAgAUH/AXFGGwsYACAAKAJMQX9MBEAgABCkAQ8LIAAQpAELYAIBfgJ/IAAoAighAkEBIQMgAEIAIAAtAABBgAFxBH9BAkEBIAAoAhQgACgCHEsbBUEBCyACEQ8AIgFCAFkEfiAAKAIUIAAoAhxrrCABIAAoAgggACgCBGusfXwFIAELC2sBAX8gAARAIAAoAkxBf0wEQCAAEG4PCyAAEG4PC0GwoAEoAgAEQEGwoAEoAgAQpQEhAQtBrKABKAIAIgAEQANAIAAoAkwaIAAoAhQgACgCHEsEQCAAEG4gAXIhAQsgACgCOCIADQALCyABCyIAIAAgARACIgBBgWBPBH9BtJsBQQAgAGs2AgBBfwUgAAsLUwEDfwJAIAAoAgAsAABBMGtBCk8NAANAIAAoAgAiAiwAACEDIAAgAkEBajYCACABIANqQTBrIQEgAiwAAUEwa0EKTw0BIAFBCmwhAQwACwALIAELuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEYEQQACwt/AgF/AX4gAL0iA0I0iKdB/w9xIgJB/w9HBHwgAkUEQCABIABEAAAAAAAAAABhBH9BAAUgAEQAAAAAAADwQ6IgARCpASEAIAEoAgBBQGoLNgIAIAAPCyABIAJB/gdrNgIAIANC/////////4eAf4NCgICAgICAgPA/hL8FIAALC5sCACAARQRAQQAPCwJ/AkAgAAR/IAFB/wBNDQECQEGQmQEoAgAoAgBFBEAgAUGAf3FBgL8DRg0DDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIMBAsgAUGAsANPQQAgAUGAQHFBgMADRxtFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwECwtBtJsBQRk2AgBBfwVBAQsMAQsgACABOgAAQQELC+MBAQJ/IAJBAEchAwJAAkACQCAAQQNxRQ0AIAJFDQAgAUH/AXEhBANAIAAtAAAgBEYNAiACQQFrIgJBAEchAyAAQQFqIgBBA3FFDQEgAg0ACwsgA0UNAQsCQCAALQAAIAFB/wFxRg0AIAJBBEkNACABQf8BcUGBgoQIbCEDA0AgACgCACADcyIEQX9zIARBgYKECGtxQYCBgoR4cQ0BIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQAgAUH/AXEhAQNAIAEgAC0AAEYEQCAADwsgAEEBaiEAIAJBAWsiAg0ACwtBAAtaAQF/IwBBEGsiASAANgIIAkACQCABKAIIKAIAQQBOBEAgASgCCCgCAEGAFCgCAEgNAQsgAUEANgIMDAELIAEgASgCCCgCAEECdEGQFGooAgA2AgwLIAEoAgwL+QIBAX8jAEEgayIEJAAgBCAANgIYIAQgATcDECAEIAI2AgwgBCADNgIIIAQgBCgCGCAEKAIYIAQpAxAgBCgCDCAEKAIIEK4BIgA2AgACQCAARQRAIARBADYCHAwBCyAEKAIAEEhBAEgEQCAEKAIYQQhqIAQoAgAQFyAEKAIAEBsgBEEANgIcDAELIAQoAhghAiMAQRBrIgAkACAAIAI2AgggAEEYEBgiAjYCBAJAIAJFBEAgACgCCEEIakEOQQAQFCAAQQA2AgwMAQsgACgCBCAAKAIINgIAIwBBEGsiAiAAKAIEQQRqNgIMIAIoAgxBADYCACACKAIMQQA2AgQgAigCDEEANgIIIAAoAgRBADoAECAAKAIEQQA2AhQgACAAKAIENgIMCyAAKAIMIQIgAEEQaiQAIAQgAjYCBCACRQRAIAQoAgAQGyAEQQA2AhwMAQsgBCgCBCAEKAIANgIUIAQgBCgCBDYCHAsgBCgCHCEAIARBIGokACAAC7cOAgN/AX4jAEHAAWsiBSQAIAUgADYCuAEgBSABNgK0ASAFIAI3A6gBIAUgAzYCpAEgBUIANwOYASAFQgA3A5ABIAUgBDYCjAECQCAFKAK4AUUEQCAFQQA2ArwBDAELAkAgBSgCtAEEQCAFKQOoASAFKAK0ASkDMFQNAQsgBSgCuAFBCGpBEkEAEBQgBUEANgK8AQwBCwJAIAUoAqQBQQhxDQAgBSgCtAEoAkAgBSkDqAGnQQR0aigCCEUEQCAFKAK0ASgCQCAFKQOoAadBBHRqLQAMQQFxRQ0BCyAFKAK4AUEIakEPQQAQFCAFQQA2ArwBDAELIAUoArQBIAUpA6gBIAUoAqQBQQhyIAVByABqEH5BAEgEQCAFKAK4AUEIakEUQQAQFCAFQQA2ArwBDAELIAUoAqQBQSBxBEAgBSAFKAKkAUEEcjYCpAELAkAgBSkDmAFQBEAgBSkDkAFQDQELIAUoAqQBQQRxRQ0AIAUoArgBQQhqQRJBABAUIAVBADYCvAEMAQsCQCAFKQOYAVAEQCAFKQOQAVANAQsgBSkDmAEgBSkDmAEgBSkDkAF8WARAIAUpA2AgBSkDmAEgBSkDkAF8Wg0BCyAFKAK4AUEIakESQQAQFCAFQQA2ArwBDAELIAUpA5ABUARAIAUgBSkDYCAFKQOYAX03A5ABCyAFIAUpA5ABIAUpA2BUOgBHIAUgBSgCpAFBIHEEf0EABSAFLwF6QQBHC0EBcToARSAFIAUoAqQBQQRxBH9BAAUgBS8BeEEARwtBAXE6AEQgBQJ/IAUoAqQBQQRxBEBBACAFLwF4DQEaCyAFLQBHQX9zC0EBcToARiAFLQBFQQFxBEAgBSgCjAFFBEAgBSAFKAK4ASgCHDYCjAELIAUoAowBRQRAIAUoArgBQQhqQRpBABAUIAVBADYCvAEMAgsLIAUpA2hQBEAgBSAFKAK4AUEAQgBBABB9NgK8AQwBCwJAAkAgBS0AR0EBcUUNACAFLQBFQQFxDQAgBS0AREEBcQ0AIAUgBSkDkAE3AyAgBSAFKQOQATcDKCAFQQA7ATggBSAFKAJwNgIwIAVC3AA3AwggBSAFKAK0ASgCACAFKQOYASAFKQOQASAFQQhqQQAgBSgCtAEgBSkDqAEgBSgCuAFBCGoQXyIANgKIAQwBCyAFIAUoArQBIAUpA6gBIAUoAqQBIAUoArgBQQhqED8iADYCBCAARQRAIAVBADYCvAEMAgsgBSAFKAK0ASgCAEIAIAUpA2ggBUHIAGogBSgCBC8BDEEBdkEDcSAFKAK0ASAFKQOoASAFKAK4AUEIahBfIgA2AogBCyAARQRAIAVBADYCvAEMAQsCfyAFKAKIASEAIAUoArQBIQMjAEEQayIBJAAgASAANgIMIAEgAzYCCCABKAIMIAEoAgg2AiwgASgCCCEDIAEoAgwhBCMAQSBrIgAkACAAIAM2AhggACAENgIUAkAgACgCGCgCSCAAKAIYKAJEQQFqTQRAIAAgACgCGCgCSEEKajYCDCAAIAAoAhgoAkwgACgCDEECdBBONgIQIAAoAhBFBEAgACgCGEEIakEOQQAQFCAAQX82AhwMAgsgACgCGCAAKAIMNgJIIAAoAhggACgCEDYCTAsgACgCFCEEIAAoAhgoAkwhBiAAKAIYIgcoAkQhAyAHIANBAWo2AkQgA0ECdCAGaiAENgIAIABBADYCHAsgACgCHCEDIABBIGokACABQRBqJAAgA0EASAsEQCAFKAKIARAbIAVBADYCvAEMAQsgBS0ARUEBcQRAIAUgBS8BekEAEHsiADYCACAARQRAIAUoArgBQQhqQRhBABAUIAVBADYCvAEMAgsgBSAFKAK4ASAFKAKIASAFLwF6QQAgBSgCjAEgBSgCABEFADYChAEgBSgCiAEQGyAFKAKEAUUEQCAFQQA2ArwBDAILIAUgBSgChAE2AogBCyAFLQBEQQFxBEAgBSAFKAK4ASAFKAKIASAFLwF4ELABNgKEASAFKAKIARAbIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUtAEZBAXEEQCAFIAUoArgBIAUoAogBQQEQrwE2AoQBIAUoAogBEBsgBSgChAFFBEAgBUEANgK8AQwCCyAFIAUoAoQBNgKIAQsCQCAFLQBHQQFxRQ0AIAUtAEVBAXFFBEAgBS0AREEBcUUNAQsgBSgCuAEhASAFKAKIASEDIAUpA5gBIQIgBSkDkAEhCCMAQSBrIgAkACAAIAE2AhwgACADNgIYIAAgAjcDECAAIAg3AwggACgCGCAAKQMQIAApAwhBAEEAQQBCACAAKAIcQQhqEF8hASAAQSBqJAAgBSABNgKEASAFKAKIARAbIAUoAoQBRQRAIAVBADYCvAEMAgsgBSAFKAKEATYCiAELIAUgBSgCiAE2ArwBCyAFKAK8ASEAIAVBwAFqJAAgAAuEAgEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCEAJAIAMoAhRFBEAgAygCGEEIakESQQAQFCADQQA2AhwMAQsgA0E4EBgiADYCDCAARQRAIAMoAhhBCGpBDkEAEBQgA0EANgIcDAELIwBBEGsiACADKAIMQQhqNgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAMoAgwgAygCEDYCACADKAIMQQA2AgQgAygCDEIANwMoQQBBAEEAEBohACADKAIMIAA2AjAgAygCDEIANwMYIAMgAygCGCADKAIUQRQgAygCDBBhNgIcCyADKAIcIQAgA0EgaiQAIAALQwEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIAMoAgggAygCBEEAQQAQsgEhACADQRBqJAAgAAtJAQF/IwBBEGsiASQAIAEgADYCDCABKAIMBEAgASgCDCgCrEAgASgCDCgCqEAoAgQRAgAgASgCDBA4IAEoAgwQFQsgAUEQaiQAC5QFAQF/IwBBMGsiBSQAIAUgADYCKCAFIAE2AiQgBSACNgIgIAUgAzoAHyAFIAQ2AhggBUEANgIMAkAgBSgCJEUEQCAFKAIoQQhqQRJBABAUIAVBADYCLAwBCyAFIAUoAiAgBS0AH0EBcRCzASIANgIMIABFBEAgBSgCKEEIakEQQQAQFCAFQQA2AiwMAQsgBSgCICEBIAUtAB9BAXEhAiAFKAIYIQMgBSgCDCEEIwBBIGsiACQAIAAgATYCGCAAIAI6ABcgACADNgIQIAAgBDYCDCAAQbDAABAYIgE2AggCQCABRQRAIABBADYCHAwBCyMAQRBrIgEgACgCCDYCDCABKAIMQQA2AgAgASgCDEEANgIEIAEoAgxBADYCCCAAKAIIAn8gAC0AF0EBcQRAIAAoAhhBf0cEfyAAKAIYQX5GBUEBC0EBcQwBC0EAC0EARzoADiAAKAIIIAAoAgw2AqhAIAAoAgggACgCGDYCFCAAKAIIIAAtABdBAXE6ABAgACgCCEEAOgAMIAAoAghBADoADSAAKAIIQQA6AA8gACgCCCgCqEAoAgAhAQJ/AkAgACgCGEF/RwRAIAAoAhhBfkcNAQtBCAwBCyAAKAIYC0H//wNxIAAoAhAgACgCCCABEQEAIQEgACgCCCABNgKsQCABRQRAIAAoAggQOCAAKAIIEBUgAEEANgIcDAELIAAgACgCCDYCHAsgACgCHCEBIABBIGokACAFIAE2AhQgAUUEQCAFKAIoQQhqQQ5BABAUIAVBADYCLAwBCyAFIAUoAiggBSgCJEETIAUoAhQQYSIANgIQIABFBEAgBSgCFBCxASAFQQA2AiwMAQsgBSAFKAIQNgIsCyAFKAIsIQAgBUEwaiQAIAALzAEBAX8jAEEgayICIAA2AhggAiABOgAXIAICfwJAIAIoAhhBf0cEQCACKAIYQX5HDQELQQgMAQsgAigCGAs7AQ4gAkEANgIQAkADQCACKAIQQdSXASgCAEkEQCACKAIQQQxsQdiXAWovAQAgAi8BDkYEQCACLQAXQQFxBEAgAiACKAIQQQxsQdiXAWooAgQ2AhwMBAsgAiACKAIQQQxsQdiXAWooAgg2AhwMAwUgAiACKAIQQQFqNgIQDAILAAsLIAJBADYCHAsgAigCHAvkAQEBfyMAQSBrIgMkACADIAA6ABsgAyABNgIUIAMgAjYCECADQcgAEBgiADYCDAJAIABFBEAgAygCEEEBQbSbASgCABAUIANBADYCHAwBCyADKAIMIAMoAhA2AgAgAygCDCADLQAbQQFxOgAEIAMoAgwgAygCFDYCCAJAIAMoAgwoAghBAU4EQCADKAIMKAIIQQlMDQELIAMoAgxBCTYCCAsgAygCDEEAOgAMIAMoAgxBADYCMCADKAIMQQA2AjQgAygCDEEANgI4IAMgAygCDDYCHAsgAygCHCEAIANBIGokACAACzgBAX8jAEEQayIBIAA2AgwgASgCDEEANgIAIAEoAgxBADYCBCABKAIMQQA2AgggASgCDEEAOgAMC+MIAQF/IwBBQGoiAiAANgI4IAIgATYCNCACIAIoAjgoAnw2AjAgAiACKAI4KAI4IAIoAjgoAmxqNgIsIAIgAigCOCgCeDYCICACIAIoAjgoApABNgIcIAICfyACKAI4KAJsIAIoAjgoAixBhgJrSwRAIAIoAjgoAmwgAigCOCgCLEGGAmtrDAELQQALNgIYIAIgAigCOCgCQDYCFCACIAIoAjgoAjQ2AhAgAiACKAI4KAI4IAIoAjgoAmxqQYICajYCDCACIAIoAiwgAigCIEEBa2otAAA6AAsgAiACKAIsIAIoAiBqLQAAOgAKIAIoAjgoAnggAigCOCgCjAFPBEAgAiACKAIwQQJ2NgIwCyACKAIcIAIoAjgoAnRLBEAgAiACKAI4KAJ0NgIcCwNAAkAgAiACKAI4KAI4IAIoAjRqNgIoAkAgAigCKCACKAIgai0AACACLQAKRw0AIAIoAiggAigCIEEBa2otAAAgAi0AC0cNACACKAIoLQAAIAIoAiwtAABHDQAgAiACKAIoIgBBAWo2AiggAC0AASACKAIsLQABRwRADAELIAIgAigCLEECajYCLCACIAIoAihBAWo2AigDQCACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AigCf0EAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEF0gAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQdhogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQdhogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBdIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHgEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCABKAIIKAIcKAJAIAEoAggoAiQRBAALIAEoAggoAhwoAjgEQCABKAIIKAIoIAEoAggoAhwoAjggASgCCCgCJBEEAAsgASgCCCgCKCABKAIIKAIcIAEoAggoAiQRBAAgASgCCEEANgIcIAFBfUEAIAEoAgRB8QBGGzYCDAsgASgCDCEAIAFBEGokACAAC+sXAQJ/IwBB8ABrIgMgADYCbCADIAE2AmggAyACNgJkIANBfzYCXCADIAMoAmgvAQI2AlQgA0EANgJQIANBBzYCTCADQQQ2AkggAygCVEUEQCADQYoBNgJMIANBAzYCSAsgA0EANgJgA0AgAygCYCADKAJkSkUEQCADIAMoAlQ2AlggAyADKAJoIAMoAmBBAWpBAnRqLwECNgJUIAMgAygCUEEBaiIANgJQAkACQCADKAJMIABMDQAgAygCWCADKAJURw0ADAELAkAgAygCUCADKAJISARAA0AgAyADKAJsQfwUaiADKAJYQQJ0ai8BAjYCRAJAIAMoAmwoArwtQRAgAygCRGtKBEAgAyADKAJsQfwUaiADKAJYQQJ0ai8BADYCQCADKAJsIgAgAC8BuC0gAygCQEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAJAQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCREEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsQfwUaiADKAJYQQJ0ai8BACADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCRCAAKAK8LWo2ArwtCyADIAMoAlBBAWsiADYCUCAADQALDAELAkAgAygCWARAIAMoAlggAygCXEcEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwECNgI8AkAgAygCbCgCvC1BECADKAI8a0oEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwEANgI4IAMoAmwiACAALwG4LSADKAI4Qf//A3EgAygCbCgCvC10cjsBuC0gAygCbC8BuC1B/wFxIQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbC8BuC1BCHYhASADKAJsKAIIIQIgAygCbCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJsIAMoAjhB//8DcUEQIAMoAmwoArwta3U7AbgtIAMoAmwiACAAKAK8LSADKAI8QRBrajYCvC0MAQsgAygCbCIAIAAvAbgtIAMoAmxB/BRqIAMoAlhBAnRqLwEAIAMoAmwoArwtdHI7AbgtIAMoAmwiACADKAI8IAAoArwtajYCvC0LIAMgAygCUEEBazYCUAsgAyADKAJsLwG+FTYCNAJAIAMoAmwoArwtQRAgAygCNGtKBEAgAyADKAJsLwG8FTYCMCADKAJsIgAgAC8BuC0gAygCMEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIwQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCNEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwG8FSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCNCAAKAK8LWo2ArwtCyADQQI2AiwCQCADKAJsKAK8LUEQIAMoAixrSgRAIAMgAygCUEEDazYCKCADKAJsIgAgAC8BuC0gAygCKEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIoQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAiwgACgCvC1qNgK8LQsMAQsCQCADKAJQQQpMBEAgAyADKAJsLwHCFTYCJAJAIAMoAmwoArwtQRAgAygCJGtKBEAgAyADKAJsLwHAFTYCICADKAJsIgAgAC8BuC0gAygCIEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIgQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHAFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCJCAAKAK8LWo2ArwtCyADQQM2AhwCQCADKAJsKAK8LUEQIAMoAhxrSgRAIAMgAygCUEEDazYCGCADKAJsIgAgAC8BuC0gAygCGEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIYQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCHEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAhwgACgCvC1qNgK8LQsMAQsgAyADKAJsLwHGFTYCFAJAIAMoAmwoArwtQRAgAygCFGtKBEAgAyADKAJsLwHEFTYCECADKAJsIgAgAC8BuC0gAygCEEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIQQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHEFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCFCAAKAK8LWo2ArwtCyADQQc2AgwCQCADKAJsKAK8LUEQIAMoAgxrSgRAIAMgAygCUEELazYCCCADKAJsIgAgAC8BuC0gAygCCEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIIQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQtrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAgwgACgCvC1qNgK8LQsLCwsgA0EANgJQIAMgAygCWDYCXAJAIAMoAlRFBEAgA0GKATYCTCADQQM2AkgMAQsCQCADKAJYIAMoAlRGBEAgA0EGNgJMIANBAzYCSAwBCyADQQc2AkwgA0EENgJICwsLIAMgAygCYEEBajYCYAwBCwsLkQQBAX8jAEEwayIDIAA2AiwgAyABNgIoIAMgAjYCJCADQX82AhwgAyADKAIoLwECNgIUIANBADYCECADQQc2AgwgA0EENgIIIAMoAhRFBEAgA0GKATYCDCADQQM2AggLIAMoAiggAygCJEEBakECdGpB//8DOwECIANBADYCIANAIAMoAiAgAygCJEpFBEAgAyADKAIUNgIYIAMgAygCKCADKAIgQQFqQQJ0ai8BAjYCFCADIAMoAhBBAWoiADYCEAJAAkAgAygCDCAATA0AIAMoAhggAygCFEcNAAwBCwJAIAMoAhAgAygCCEgEQCADKAIsQfwUaiADKAIYQQJ0aiIAIAMoAhAgAC8BAGo7AQAMAQsCQCADKAIYBEAgAygCGCADKAIcRwRAIAMoAiwgAygCGEECdGpB/BRqIgAgAC8BAEEBajsBAAsgAygCLCIAIABBvBVqLwEAQQFqOwG8FQwBCwJAIAMoAhBBCkwEQCADKAIsIgAgAEHAFWovAQBBAWo7AcAVDAELIAMoAiwiACAAQcQVai8BAEEBajsBxBULCwsgA0EANgIQIAMgAygCGDYCHAJAIAMoAhRFBEAgA0GKATYCDCADQQM2AggMAQsCQCADKAIYIAMoAhRGBEAgA0EGNgIMIANBAzYCCAwBCyADQQc2AgwgA0EENgIICwsLIAMgAygCIEEBajYCIAwBCwsLpxIBAn8jAEHQAGsiAyAANgJMIAMgATYCSCADIAI2AkQgA0EANgI4IAMoAkwoAqAtBEADQCADIAMoAkwoAqQtIAMoAjhBAXRqLwEANgJAIAMoAkwoApgtIQAgAyADKAI4IgFBAWo2AjggAyAAIAFqLQAANgI8AkAgAygCQEUEQCADIAMoAkggAygCPEECdGovAQI2AiwCQCADKAJMKAK8LUEQIAMoAixrSgRAIAMgAygCSCADKAI8QQJ0ai8BADYCKCADKAJMIgAgAC8BuC0gAygCKEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIoQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjxBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIsIAAoArwtajYCvC0LDAELIAMgAygCPC0A0F02AjQgAyADKAJIIAMoAjRBgQJqQQJ0ai8BAjYCJAJAIAMoAkwoArwtQRAgAygCJGtKBEAgAyADKAJIIAMoAjRBgQJqQQJ0ai8BADYCICADKAJMIgAgAC8BuC0gAygCIEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIgQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjRBgQJqQQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCJCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBkOoAaigCADYCMCADKAIwBEAgAyADKAI8IAMoAjRBAnRBgO0AaigCAGs2AjwgAyADKAIwNgIcAkAgAygCTCgCvC1BECADKAIca0oEQCADIAMoAjw2AhggAygCTCIAIAAvAbgtIAMoAhhB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdiEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCGEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCPEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIcIAAoArwtajYCvC0LCyADIAMoAkBBAWs2AkAgAwJ/IAMoAkBBgAJJBEAgAygCQC0A0FkMAQsgAygCQEEHdkGAAmotANBZCzYCNCADIAMoAkQgAygCNEECdGovAQI2AhQCQCADKAJMKAK8LUEQIAMoAhRrSgRAIAMgAygCRCADKAI0QQJ0ai8BADYCECADKAJMIgAgAC8BuC0gAygCEEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIQQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJEIAMoAjRBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIUIAAoArwtajYCvC0LIAMgAygCNEECdEGQ6wBqKAIANgIwIAMoAjAEQCADIAMoAkAgAygCNEECdEGA7gBqKAIAazYCQCADIAMoAjA2AgwCQCADKAJMKAK8LUEQIAMoAgxrSgRAIAMgAygCQDYCCCADKAJMIgAgAC8BuC0gAygCCEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIIQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJAQf//A3EgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgwgACgCvC1qNgK8LQsLCyADKAI4IAMoAkwoAqAtSQ0ACwsgAyADKAJILwGCCDYCBAJAIAMoAkwoArwtQRAgAygCBGtKBEAgAyADKAJILwGACDYCACADKAJMIgAgAC8BuC0gAygCAEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIAQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCBEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJILwGACCADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCBCAAKAK8LWo2ArwtCwuXAgEEfyMAQRBrIgEgADYCDAJAIAEoAgwoArwtQRBGBEAgASgCDC8BuC1B/wFxIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDC8BuC1BCHYhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMQQA7AbgtIAEoAgxBADYCvC0MAQsgASgCDCgCvC1BCE4EQCABKAIMLwG4LSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwiACAALwG4LUEIdjsBuC0gASgCDCIAIAAoArwtQQhrNgK8LQsLC+8BAQR/IwBBEGsiASAANgIMAkAgASgCDCgCvC1BCEoEQCABKAIMLwG4LUH/AXEhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMLwG4LUEIdiECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAADAELIAEoAgwoArwtQQBKBEAgASgCDC8BuC0hAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAAAsLIAEoAgxBADsBuC0gASgCDEEANgK8LQv8AQEBfyMAQRBrIgEgADYCDCABQQA2AggDQCABKAIIQZ4CTkUEQCABKAIMQZQBaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEEeTkUEQCABKAIMQYgTaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEETTkUEQCABKAIMQfwUaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgASgCDEEBOwGUCSABKAIMQQA2AqwtIAEoAgxBADYCqC0gASgCDEEANgKwLSABKAIMQQA2AqAtCyIBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQFSABQRBqJAAL6QEBAX8jAEEwayICIAA2AiQgAiABNwMYIAJCADcDECACIAIoAiQpAwhCAX03AwgCQANAIAIpAxAgAikDCFQEQCACIAIpAxAgAikDCCACKQMQfUIBiHw3AwACQCACKAIkKAIEIAIpAwCnQQN0aikDACACKQMYVgRAIAIgAikDAEIBfTcDCAwBCwJAIAIpAwAgAigCJCkDCFIEQCACKAIkKAIEIAIpAwBCAXynQQN0aikDACACKQMYWA0BCyACIAIpAwA3AygMBAsgAiACKQMAQgF8NwMQCwwBCwsgAiACKQMQNwMoCyACKQMoC6cBAQF/IwBBMGsiBCQAIAQgADYCKCAEIAE2AiQgBCACNwMYIAQgAzYCFCAEIAQoAigpAzggBCgCKCkDMCAEKAIkIAQpAxggBCgCFBCIATcDCAJAIAQpAwhCAFMEQCAEQX82AiwMAQsgBCgCKCAEKQMINwM4IAQoAiggBCgCKCkDOBDAASECIAQoAiggAjcDQCAEQQA2AiwLIAQoAiwhACAEQTBqJAAgAAvrAQEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIAMgAjYCDAJAIAMpAxAgAygCGCkDEFQEQCADQQE6AB8MAQsgAyADKAIYKAIAIAMpAxBCBIanEE4iADYCCCAARQRAIAMoAgxBDkEAEBQgA0EAOgAfDAELIAMoAhggAygCCDYCACADIAMoAhgoAgQgAykDEEIBfEIDhqcQTiIANgIEIABFBEAgAygCDEEOQQAQFCADQQA6AB8MAQsgAygCGCADKAIENgIEIAMoAhggAykDEDcDECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAvOAgEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQAJAIAQoAigNACAEKQMgUA0AIAQoAhhBEkEAEBQgBEEANgIsDAELIAQgBCgCKCAEKQMgIAQoAhwgBCgCGBBMIgA2AgwgAEUEQCAEQQA2AiwMAQsgBEEYEBgiADYCFCAARQRAIAQoAhhBDkEAEBQgBCgCDBAyIARBADYCLAwBCyAEKAIUIAQoAgw2AhAgBCgCFEEANgIUQQAQASEAIAQoAhQgADYCDCMAQRBrIgAgBCgCFDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEQQIgBCgCFCAEKAIYEIMBIgA2AhAgAEUEQCAEKAIUKAIQEDIgBCgCFBAVIARBADYCLAwBCyAEIAQoAhA2AiwLIAQoAiwhACAEQTBqJAAgAAupAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQCAEKAIoRQRAIAQpAyBCAFIEQCAEKAIYQRJBABAUIARBADYCLAwCCyAEQQBCACAEKAIcIAQoAhgQwwE2AiwMAQsgBCAEKAIoNgIIIAQgBCkDIDcDECAEIARBCGpCASAEKAIcIAQoAhgQwwE2AiwLIAQoAiwhACAEQTBqJAAgAAtGAQF/IwBBIGsiAyQAIAMgADYCHCADIAE3AxAgAyACNgIMIAMoAhwgAykDECADKAIMIAMoAhxBCGoQTSEAIANBIGokACAAC4sMAQZ/IAAgAWohBQJAAkAgACgCBCICQQFxDQAgAkEDcUUNASAAKAIAIgIgAWohAQJAIAAgAmsiAEH4mwEoAgBHBEAgAkH/AU0EQCAAKAIIIgQgAkEDdiICQQN0QYycAWpGGiAAKAIMIgMgBEcNAkHkmwFB5JsBKAIAQX4gAndxNgIADAMLIAAoAhghBgJAIAAgACgCDCIDRwRAIAAoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgAEEUaiICKAIAIgQNACAAQRBqIgIoAgAiBA0AQQAhAwwBCwNAIAIhByAEIgNBFGoiAigCACIEDQAgA0EQaiECIAMoAhAiBA0ACyAHQQA2AgALIAZFDQICQCAAIAAoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAQLIAZBEEEUIAYoAhAgAEYbaiADNgIAIANFDQMLIAMgBjYCGCAAKAIQIgIEQCADIAI2AhAgAiADNgIYCyAAKAIUIgJFDQIgAyACNgIUIAIgAzYCGAwCCyAFKAIEIgJBA3FBA0cNAUHsmwEgATYCACAFIAJBfnE2AgQgACABQQFyNgIEIAUgATYCAA8LIAQgAzYCDCADIAQ2AggLAkAgBSgCBCICQQJxRQRAIAVB/JsBKAIARgRAQfybASAANgIAQfCbAUHwmwEoAgAgAWoiATYCACAAIAFBAXI2AgQgAEH4mwEoAgBHDQNB7JsBQQA2AgBB+JsBQQA2AgAPCyAFQfibASgCAEYEQEH4mwEgADYCAEHsmwFB7JsBKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LIAJBeHEgAWohAQJAIAJB/wFNBEAgBSgCCCIEIAJBA3YiAkEDdEGMnAFqRhogBCAFKAIMIgNGBEBB5JsBQeSbASgCAEF+IAJ3cTYCAAwCCyAEIAM2AgwgAyAENgIIDAELIAUoAhghBgJAIAUgBSgCDCIDRwRAIAUoAggiAkH0mwEoAgBJGiACIAM2AgwgAyACNgIIDAELAkAgBUEUaiIEKAIAIgINACAFQRBqIgQoAgAiAg0AQQAhAwwBCwNAIAQhByACIgNBFGoiBCgCACICDQAgA0EQaiEEIAMoAhAiAg0ACyAHQQA2AgALIAZFDQACQCAFIAUoAhwiBEECdEGUngFqIgIoAgBGBEAgAiADNgIAIAMNAUHomwFB6JsBKAIAQX4gBHdxNgIADAILIAZBEEEUIAYoAhAgBUYbaiADNgIAIANFDQELIAMgBjYCGCAFKAIQIgIEQCADIAI2AhAgAiADNgIYCyAFKAIUIgJFDQAgAyACNgIUIAIgAzYCGAsgACABQQFyNgIEIAAgAWogATYCACAAQfibASgCAEcNAUHsmwEgATYCAA8LIAUgAkF+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQf8BTQRAIAFBA3YiAkEDdEGMnAFqIQECf0HkmwEoAgAiA0EBIAJ0IgJxRQRAQeSbASACIANyNgIAIAEMAQsgASgCCAshAiABIAA2AgggAiAANgIMIAAgATYCDCAAIAI2AggPC0EfIQIgAEIANwIQIAFB////B00EQCABQQh2IgIgAkGA/j9qQRB2QQhxIgR0IgIgAkGA4B9qQRB2QQRxIgN0IgIgAkGAgA9qQRB2QQJxIgJ0QQ92IAMgBHIgAnJrIgJBAXQgASACQRVqdkEBcXJBHGohAgsgACACNgIcIAJBAnRBlJ4BaiEHAkACQEHomwEoAgAiBEEBIAJ0IgNxRQRAQeibASADIARyNgIAIAcgADYCACAAIAc2AhgMAQsgAUEAQRkgAkEBdmsgAkEfRht0IQIgBygCACEDA0AgAyIEKAIEQXhxIAFGDQIgAkEddiEDIAJBAXQhAiAEIANBBHFqIgdBEGooAgAiAw0ACyAHIAA2AhAgACAENgIYCyAAIAA2AgwgACAANgIIDwsgBCgCCCIBIAA2AgwgBCAANgIIIABBADYCGCAAIAQ2AgwgACABNgIICwsGAEG0mwELtQkBAX8jAEHgwABrIgUkACAFIAA2AtRAIAUgATYC0EAgBSACNgLMQCAFIAM3A8BAIAUgBDYCvEAgBSAFKALQQDYCuEACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCvEAOEQMEAAYBAgUJCgoKCgoKCAoHCgsgBUIANwPYQAwKCyAFIAUoArhAQeQAaiAFKALMQCAFKQPAQBBDNwPYQAwJCyAFKAK4QBAVIAVCADcD2EAMCAsgBSgCuEAoAhAEQCAFIAUoArhAKAIQIAUoArhAKQMYIAUoArhAQeQAahBgIgM3A5hAIANQBEAgBUJ/NwPYQAwJCyAFKAK4QCkDCCAFKAK4QCkDCCAFKQOYQHxWBEAgBSgCuEBB5ABqQRVBABAUIAVCfzcD2EAMCQsgBSgCuEAiACAFKQOYQCAAKQMAfDcDACAFKAK4QCIAIAUpA5hAIAApAwh8NwMIIAUoArhAQQA2AhALIAUoArhALQB4QQFxRQRAIAVCADcDqEADQCAFKQOoQCAFKAK4QCkDAFQEQCAFIAUoArhAKQMAIAUpA6hAfUKAwABWBH5CgMAABSAFKAK4QCkDACAFKQOoQH0LNwOgQCAFIAUoAtRAIAVBEGogBSkDoEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqIAUoAtRAEBcgBUJ/NwPYQAwLCyAFKQOwQFAEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwLBSAFIAUpA7BAIAUpA6hAfDcDqEAMAgsACwsLIAUoArhAIAUoArhAKQMANwMgIAVCADcD2EAMBwsgBSkDwEAgBSgCuEApAwggBSgCuEApAyB9VgRAIAUgBSgCuEApAwggBSgCuEApAyB9NwPAQAsgBSkDwEBQBEAgBUIANwPYQAwHCyAFKAK4QC0AeEEBcQRAIAUoAtRAIAUoArhAKQMgQQAQJ0EASARAIAUoArhAQeQAaiAFKALUQBAXIAVCfzcD2EAMCAsLIAUgBSgC1EAgBSgCzEAgBSkDwEAQKyIDNwOwQCADQgBTBEAgBSgCuEBB5ABqQRFBABAUIAVCfzcD2EAMBwsgBSgCuEAiACAFKQOwQCAAKQMgfDcDICAFKQOwQFAEQCAFKAK4QCkDICAFKAK4QCkDCFQEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwICwsgBSAFKQOwQDcD2EAMBgsgBSAFKAK4QCkDICAFKAK4QCkDAH0gBSgCuEApAwggBSgCuEApAwB9IAUoAsxAIAUpA8BAIAUoArhAQeQAahCIATcDCCAFKQMIQgBTBEAgBUJ/NwPYQAwGCyAFKAK4QCAFKQMIIAUoArhAKQMAfDcDICAFQgA3A9hADAULIAUgBSgCzEA2AgQgBSgCBCAFKAK4QEEoaiAFKAK4QEHkAGoQhAFBAEgEQCAFQn83A9hADAULIAVCADcD2EAMBAsgBSAFKAK4QCwAYKw3A9hADAMLIAUgBSgCuEApA3A3A9hADAILIAUgBSgCuEApAyAgBSgCuEApAwB9NwPYQAwBCyAFKAK4QEHkAGpBHEEAEBQgBUJ/NwPYQAsgBSkD2EAhAyAFQeDAAGokACADCwgAQQFBDBB/CyIBAX8jAEEQayIBIAA2AgwgASgCDCIAIAAoAjBBAWo2AjALBwAgACgCLAsHACAAKAIoCxgBAX8jAEEQayIBIAA2AgwgASgCDEEMagsHACAAKAIYCwcAIAAoAhALBwAgACgCCAtFAEGgmwFCADcDAEGYmwFCADcDAEGQmwFCADcDAEGImwFCADcDAEGAmwFCADcDAEH4mgFCADcDAEHwmgFCADcDAEHwmgELFAAgACABrSACrUIghoQgAyAEEH4LEwEBfiAAEEkiAUIgiKcQACABpwsVACAAIAGtIAKtQiCGhCADIAQQxAELFAAgACABIAKtIAOtQiCGhCAEEH0LrQQBAX8jAEEgayIFJAAgBSAANgIYIAUgAa0gAq1CIIaENwMQIAUgAzYCDCAFIAQ2AggCQAJAIAUpAxAgBSgCGCkDMFQEQCAFKAIIQQlNDQELIAUoAhhBCGpBEkEAEBQgBUF/NgIcDAELIAUoAhgoAhhBAnEEQCAFKAIYQQhqQRlBABAUIAVBfzYCHAwBCwJ/IAUoAgwhASMAQRBrIgAkACAAIAE2AgggAEEBOgAHAkAgACgCCEUEQCAAQQE6AA8MAQsgACAAKAIIIAAtAAdBAXEQswFBAEc6AA8LIAAtAA9BAXEhASAAQRBqJAAgAUULBEAgBSgCGEEIakEQQQAQFCAFQX82AhwMAQsgBSAFKAIYKAJAIAUpAxCnQQR0ajYCBCAFIAUoAgQoAgAEfyAFKAIEKAIAKAIQBUF/CzYCAAJAIAUoAgwgBSgCAEYEQCAFKAIEKAIEBEAgBSgCBCgCBCIAIAAoAgBBfnE2AgAgBSgCBCgCBEEAOwFQIAUoAgQoAgQoAgBFBEAgBSgCBCgCBBA3IAUoAgRBADYCBAsLDAELIAUoAgQoAgRFBEAgBSgCBCgCABBAIQAgBSgCBCAANgIEIABFBEAgBSgCGEEIakEOQQAQFCAFQX82AhwMAwsLIAUoAgQoAgQgBSgCDDYCECAFKAIEKAIEIAUoAgg7AVAgBSgCBCgCBCIAIAAoAgBBAXI2AgALIAVBADYCHAsgBSgCHCEAIAVBIGokACAACxcBAX4gACABIAIQciIDQiCIpxAAIAOnCx8BAX4gACABIAKtIAOtQiCGhBArIgRCIIinEAAgBKcLrgECAX8BfgJ/IwBBIGsiAiAANgIUIAIgATYCEAJAIAIoAhRFBEAgAkJ/NwMYDAELIAIoAhBBCHEEQCACIAIoAhQpAzA3AwgDQCACKQMIQgBSBH8gAigCFCgCQCACKQMIQgF9p0EEdGooAgAFQQELRQRAIAIgAikDCEIBfTcDCAwBCwsgAiACKQMINwMYDAELIAIgAigCFCkDMDcDGAsgAikDGCIDQiCIpwsQACADpwsTACAAIAGtIAKtQiCGhCADEMUBC4gCAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAq0gA61CIIaENwMIAkAgBCgCFEUEQCAEQn83AxgMAQsgBCgCFCgCBARAIARCfzcDGAwBCyAEKQMIQv///////////wBWBEAgBCgCFEEEakESQQAQFCAEQn83AxgMAQsCQCAEKAIULQAQQQFxRQRAIAQpAwhQRQ0BCyAEQgA3AxgMAQsgBCAEKAIUKAIUIAQoAhAgBCkDCBArIgU3AwAgBUIAUwRAIAQoAhRBBGogBCgCFCgCFBAXIARCfzcDGAwBCyAEIAQpAwA3AxgLIAQpAxghBSAEQSBqJAAgBUIgiKcLEAAgBacLTwEBfyMAQSBrIgQkACAEIAA2AhwgBCABrSACrUIghoQ3AxAgBCADNgIMIAQoAhwgBCkDECAEKAIMIAQoAhwoAhwQrQEhACAEQSBqJAAgAAvZAwEBfyMAQSBrIgUkACAFIAA2AhggBSABrSACrUIghoQ3AxAgBSADNgIMIAUgBDYCCAJAIAUoAhggBSkDEEEAQQAQP0UEQCAFQX82AhwMAQsgBSgCGCgCGEECcQRAIAUoAhhBCGpBGUEAEBQgBUF/NgIcDAELIAUoAhgoAkAgBSkDEKdBBHRqKAIIBEAgBSgCGCgCQCAFKQMQp0EEdGooAgggBSgCDBBnQQBIBEAgBSgCGEEIakEPQQAQFCAFQX82AhwMAgsgBUEANgIcDAELIAUgBSgCGCgCQCAFKQMQp0EEdGo2AgQgBSAFKAIEKAIABH8gBSgCDCAFKAIEKAIAKAIURwVBAQtBAXE2AgACQCAFKAIABEAgBSgCBCgCBEUEQCAFKAIEKAIAEEAhACAFKAIEIAA2AgQgAEUEQCAFKAIYQQhqQQ5BABAUIAVBfzYCHAwECwsgBSgCBCgCBCAFKAIMNgIUIAUoAgQoAgQiACAAKAIAQSByNgIADAELIAUoAgQoAgQEQCAFKAIEKAIEIgAgACgCAEFfcTYCACAFKAIEKAIEKAIARQRAIAUoAgQoAgQQNyAFKAIEQQA2AgQLCwsgBUEANgIcCyAFKAIcIQAgBUEgaiQAIAALFwAgACABrSACrUIghoQgAyAEIAUQmQELEgAgACABrSACrUIghoQgAxAnC48BAgF/AX4CfyMAQSBrIgQkACAEIAA2AhQgBCABNgIQIAQgAjYCDCAEIAM2AggCQAJAIAQoAhAEQCAEKAIMDQELIAQoAhRBCGpBEkEAEBQgBEJ/NwMYDAELIAQgBCgCFCAEKAIQIAQoAgwgBCgCCBCaATcDGAsgBCkDGCEFIARBIGokACAFQiCIpwsQACAFpwuFBQIBfwF+An8jAEEwayIDJAAgAyAANgIkIAMgATYCICADIAI2AhwCQCADKAIkKAIYQQJxBEAgAygCJEEIakEZQQAQFCADQn83AygMAQsgAygCIEUEQCADKAIkQQhqQRJBABAUIANCfzcDKAwBCyADQQA2AgwgAyADKAIgEC42AhggAygCICADKAIYQQFraiwAAEEvRwRAIAMgAygCGEECahAYIgA2AgwgAEUEQCADKAIkQQhqQQ5BABAUIANCfzcDKAwCCwJAAkAgAygCDCIBIAMoAiAiAHNBA3ENACAAQQNxBEADQCABIAAtAAAiAjoAACACRQ0DIAFBAWohASAAQQFqIgBBA3ENAAsLIAAoAgAiAkF/cyACQYGChAhrcUGAgYKEeHENAANAIAEgAjYCACAAKAIEIQIgAUEEaiEBIABBBGohACACQYGChAhrIAJBf3NxQYCBgoR4cUUNAAsLIAEgAC0AACICOgAAIAJFDQADQCABIAAtAAEiAjoAASABQQFqIQEgAEEBaiEAIAINAAsLIAMoAgwgAygCGGpBLzoAACADKAIMIAMoAhhBAWpqQQA6AAALIAMgAygCJEEAQgBBABB9IgA2AgggAEUEQCADKAIMEBUgA0J/NwMoDAELIAMgAygCJAJ/IAMoAgwEQCADKAIMDAELIAMoAiALIAMoAgggAygCHBCaATcDECADKAIMEBUCQCADKQMQQgBTBEAgAygCCBAbDAELIAMoAiQgAykDEEEAQQNBgID8jwQQmQFBAEgEQCADKAIkIAMpAxAQmAEaIANCfzcDKAwCCwsgAyADKQMQNwMoCyADKQMoIQQgA0EwaiQAIARCIIinCxAAIASnCxEAIAAgAa0gAq1CIIaEEJgBCxcAIAAgAa0gAq1CIIaEIAMgBCAFEIoBC38CAX8BfiMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhggAygCFCADKAIQEHIiBDcDCAJAIARCAFMEQCADQQA2AhwMAQsgAyADKAIYIAMpAwggAygCECADKAIYKAIcEK0BNgIcCyADKAIcIQAgA0EgaiQAIAALEAAjACAAa0FwcSIAJAAgAAsGACAAJAALBAAjAAuCAQIBfwF+IwBBIGsiBCQAIAQgADYCGCAEIAE2AhQgBCACNgIQIAQgAzYCDCAEIAQoAhggBCgCFCAEKAIQEHIiBTcDAAJAIAVCAFMEQCAEQX82AhwMAQsgBCAEKAIYIAQpAwAgBCgCECAEKAIMEH42AhwLIAQoAhwhACAEQSBqJAAgAAvQRQMGfwF+AnwjAEHgAGsiASQAIAEgADYCWAJAIAEoAlhFBEAgAUF/NgJcDAELIwBBIGsiACABKAJYNgIcIAAgAUFAazYCGCAAQQA2AhQgAEIANwMAAkAgACgCHC0AKEEBcUUEQCAAKAIcKAIYIAAoAhwoAhRGDQELIABBATYCFAsgAEIANwMIA0AgACkDCCAAKAIcKQMwVARAAkACQCAAKAIcKAJAIAApAwinQQR0aigCCA0AIAAoAhwoAkAgACkDCKdBBHRqLQAMQQFxDQAgACgCHCgCQCAAKQMIp0EEdGooAgRFDQEgACgCHCgCQCAAKQMIp0EEdGooAgQoAgBFDQELIABBATYCFAsgACgCHCgCQCAAKQMIp0EEdGotAAxBAXFFBEAgACAAKQMAQgF8NwMACyAAIAApAwhCAXw3AwgMAQsLIAAoAhgEQCAAKAIYIAApAwA3AwALIAEgACgCFDYCJCABKQNAUARAAkAgASgCWCgCBEEIcUUEQCABKAIkRQ0BCwJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQNGBEAgAEEANgIMDAELIAAoAggoAiAEQCAAKAIIEC9BAEgEQCAAQX82AgwMAgsLIAAoAggoAiQEQCAAKAIIEGILIAAoAghBAEIAQQ8QIEIAUwRAIABBfzYCDAwBCyAAKAIIQQM2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAJBAEgLBEACQAJ/IwBBEGsiACABKAJYKAIANgIMIwBBEGsiAiAAKAIMQQxqNgIMIAIoAgwoAgBBFkYLBEAjAEEQayIAIAEoAlgoAgA2AgwjAEEQayICIAAoAgxBDGo2AgwgAigCDCgCBEEsRg0BCyABKAJYQQhqIAEoAlgoAgAQFyABQX82AlwMBAsLCyABKAJYEDwgAUEANgJcDAELIAEoAiRFBEAgASgCWBA8IAFBADYCXAwBCyABKQNAIAEoAlgpAzBWBEAgASgCWEEIakEUQQAQFCABQX82AlwMAQsgASABKQNAp0EDdBAYIgA2AiggAEUEQCABQX82AlwMAQsgAUJ/NwM4IAFCADcDSCABQgA3A1ADQCABKQNQIAEoAlgpAzBUBEACQCABKAJYKAJAIAEpA1CnQQR0aigCAEUNAAJAIAEoAlgoAkAgASkDUKdBBHRqKAIIDQAgASgCWCgCQCABKQNQp0EEdGotAAxBAXENACABKAJYKAJAIAEpA1CnQQR0aigCBEUNASABKAJYKAJAIAEpA1CnQQR0aigCBCgCAEUNAQsgAQJ+IAEpAzggASgCWCgCQCABKQNQp0EEdGooAgApA0hUBEAgASkDOAwBCyABKAJYKAJAIAEpA1CnQQR0aigCACkDSAs3AzgLIAEoAlgoAkAgASkDUKdBBHRqLQAMQQFxRQRAIAEpA0ggASkDQFoEQCABKAIoEBUgASgCWEEIakEUQQAQFCABQX82AlwMBAsgASgCKCABKQNIp0EDdGogASkDUDcDACABIAEpA0hCAXw3A0gLIAEgASkDUEIBfDcDUAwBCwsgASkDSCABKQNAVARAIAEoAigQFSABKAJYQQhqQRRBABAUIAFBfzYCXAwBCwJAAn8jAEEQayIAIAEoAlgoAgA2AgwgACgCDCkDGEKAgAiDUAsEQCABQgA3AzgMAQsgASkDOEJ/UQRAIAFCfzcDGCABQgA3AzggAUIANwNQA0AgASkDUCABKAJYKQMwVARAIAEoAlgoAkAgASkDUKdBBHRqKAIABEAgASgCWCgCQCABKQNQp0EEdGooAgApA0ggASkDOFoEQCABIAEoAlgoAkAgASkDUKdBBHRqKAIAKQNINwM4IAEgASkDUDcDGAsLIAEgASkDUEIBfDcDUAwBCwsgASkDGEJ/UgRAIAEoAlghAiABKQMYIQcgASgCWEEIaiEDIwBBMGsiACQAIAAgAjYCJCAAIAc3AxggACADNgIUIAAgACgCJCAAKQMYIAAoAhQQYCIHNwMIAkAgB1AEQCAAQgA3AygMAQsgACAAKAIkKAJAIAApAxinQQR0aigCADYCBAJAIAApAwggACkDCCAAKAIEKQMgfFgEQCAAKQMIIAAoAgQpAyB8Qv///////////wBYDQELIAAoAhRBBEEWEBQgAEIANwMoDAELIAAgACgCBCkDICAAKQMIfDcDCCAAKAIELwEMQQhxBEAgACgCJCgCACAAKQMIQQAQJ0EASARAIAAoAhQgACgCJCgCABAXIABCADcDKAwCCyAAKAIkKAIAIABCBBArQgRSBEAgACgCFCAAKAIkKAIAEBcgAEIANwMoDAILIAAoAABB0JadwABGBEAgACAAKQMIQgR8NwMICyAAIAApAwhCDHw3AwggACgCBEEAEGVBAXEEQCAAIAApAwhCCHw3AwgLIAApAwhC////////////AFYEQCAAKAIUQQRBFhAUIABCADcDKAwCCwsgACAAKQMINwMoCyAAKQMoIQcgAEEwaiQAIAEgBzcDOCAHUARAIAEoAigQFSABQX82AlwMBAsLCyABKQM4QgBSBEACfyABKAJYKAIAIQIgASkDOCEHIwBBEGsiACQAIAAgAjYCCCAAIAc3AwACQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAIAApAwBBERAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABQgA3AzgLCwsgASkDOFAEQAJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQFGBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCEEAQgBBCBAgQgBTBEAgAEF/NgIMDAELIAAoAghBATYCJCAAQQA2AgwLIAAoAgwhAiAAQRBqJAAgAkEASAsEQCABKAJYQQhqIAEoAlgoAgAQFyABKAIoEBUgAUF/NgJcDAILCyABKAJYKAJUIQIjAEEQayIAJAAgACACNgIMIAAoAgwEQCAAKAIMRAAAAAAAAAAAOQMYIAAoAgwoAgBEAAAAAAAAAAAgACgCDCgCDCAAKAIMKAIEERYACyAAQRBqJAAgAUEANgIsIAFCADcDSANAAkAgASkDSCABKQNAWg0AIAEoAlgoAlQhAiABKQNIIge6IAEpA0C6IgijIQkjAEEgayIAJAAgACACNgIcIAAgCTkDECAAIAdCAXy6IAijOQMIIAAoAhwEQCAAKAIcIAArAxA5AyAgACgCHCAAKwMIOQMoIAAoAhxEAAAAAAAAAAAQVwsgAEEgaiQAIAEgASgCKCABKQNIp0EDdGopAwA3A1AgASABKAJYKAJAIAEpA1CnQQR0ajYCEAJAAkAgASgCECgCAEUNACABKAIQKAIAKQNIIAEpAzhaDQAMAQsgAQJ/QQEgASgCECgCCA0AGiABKAIQKAIEBEBBASABKAIQKAIEKAIAQQFxDQEaCyABKAIQKAIEBH8gASgCECgCBCgCAEHAAHFBAEcFQQALC0EBcTYCFCABKAIQKAIERQRAIAEoAhAoAgAQQCEAIAEoAhAgADYCBCAARQRAIAEoAlhBCGpBDkEAEBQgAUEBNgIsDAMLCyABIAEoAhAoAgQ2AgwCfyABKAJYIQIgASkDUCEHIwBBMGsiACQAIAAgAjYCKCAAIAc3AyACQCAAKQMgIAAoAigpAzBaBEAgACgCKEEIakESQQAQFCAAQX82AiwMAQsgACAAKAIoKAJAIAApAyCnQQR0ajYCHAJAIAAoAhwoAgAEQCAAKAIcKAIALQAEQQFxRQ0BCyAAQQA2AiwMAQsgACgCHCgCACkDSEIafEL///////////8AVgRAIAAoAihBCGpBBEEWEBQgAEF/NgIsDAELIAAoAigoAgAgACgCHCgCACkDSEIafEEAECdBAEgEQCAAKAIoQQhqIAAoAigoAgAQFyAAQX82AiwMAQsgACAAKAIoKAIAQgQgAEEYaiAAKAIoQQhqEEIiAjYCFCACRQRAIABBfzYCLAwBCyAAIAAoAhQQHTsBEiAAIAAoAhQQHTsBECAAKAIUEEdBAXFFBEAgACgCFBAWIAAoAihBCGpBFEEAEBQgAEF/NgIsDAELIAAoAhQQFiAALwEQBEAgACgCKCgCACAALwESrUEBECdBAEgEQCAAKAIoQQhqQQRBtJsBKAIAEBQgAEF/NgIsDAILIABBACAAKAIoKAIAIAAvARBBACAAKAIoQQhqEGM2AgggACgCCEUEQCAAQX82AiwMAgsgACgCCCAALwEQQYACIABBDGogACgCKEEIahCUAUEBcUUEQCAAKAIIEBUgAEF/NgIsDAILIAAoAggQFSAAKAIMBEAgACAAKAIMEJMBNgIMIAAoAhwoAgAoAjQgACgCDBCVASECIAAoAhwoAgAgAjYCNAsLIAAoAhwoAgBBAToABAJAIAAoAhwoAgRFDQAgACgCHCgCBC0ABEEBcQ0AIAAoAhwoAgQgACgCHCgCACgCNDYCNCAAKAIcKAIEQQE6AAQLIABBADYCLAsgACgCLCECIABBMGokACACQQBICwRAIAFBATYCLAwCCyABIAEoAlgoAgAQNSIHNwMwIAdCAFMEQCABQQE2AiwMAgsgASgCDCABKQMwNwNIAkAgASgCFARAIAFBADYCCCABKAIQKAIIRQRAIAEgASgCWCABKAJYIAEpA1BBCEEAEK4BIgA2AgggAEUEQCABQQE2AiwMBQsLAn8gASgCWCECAn8gASgCCARAIAEoAggMAQsgASgCECgCCAshAyABKAIMIQQjAEGgAWsiACQAIAAgAjYCmAEgACADNgKUASAAIAQ2ApABAkAgACgClAEgAEE4ahA5QQBIBEAgACgCmAFBCGogACgClAEQFyAAQX82ApwBDAELIAApAzhCwACDUARAIAAgACkDOELAAIQ3AzggAEEAOwFoCwJAAkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BCyAALwFoRQ0AIAAoApABIAAvAWg2AhAMAQsCQAJAIAAoApABKAIQDQAgACkDOEIEg1ANACAAIAApAzhCCIQ3AzggACAAKQNQNwNYDAELIAAgACkDOEL3////D4M3AzgLCyAAKQM4QoABg1AEQCAAIAApAzhCgAGENwM4IABBADsBagsgAEGAAjYCJAJAIAApAzhCBINQBEAgACAAKAIkQYAIcjYCJCAAQn83A3AMAQsgACgCkAEgACkDUDcDKCAAIAApA1A3A3ACQCAAKQM4QgiDUARAAkACQAJAAkACQAJ/AkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BC0EIDAELIAAoApABKAIQC0H//wNxDg0CAwMDAwMDAwEDAwMAAwsgAEKUwuTzDzcDEAwDCyAAQoODsP8PNwMQDAILIABC/////w83AxAMAQsgAEIANwMQCyAAKQNQIAApAxBWBEAgACAAKAIkQYAIcjYCJAsMAQsgACgCkAEgACkDWDcDIAsLIAAgACgCmAEoAgAQNSIHNwOIASAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApABIgIgAi8BDEH3/wNxOwEMIAAgACgCmAEgACgCkAEgACgCJBBUIgI2AiggAkEASARAIABBfzYCnAEMAQsgACAALwFoAn8CQCAAKAKQASgCEEF/RwRAIAAoApABKAIQQX5HDQELQQgMAQsgACgCkAEoAhALQf//A3FHOgAiIAAgAC0AIkEBcQR/IAAvAWhBAEcFQQALQQFxOgAhIAAgAC8BaAR/IAAtACEFQQELQQFxOgAgIAAgAC0AIkEBcQR/IAAoApABKAIQQQBHBUEAC0EBcToAHyAAAn9BASAALQAiQQFxDQAaQQEgACgCkAEoAgBBgAFxDQAaIAAoApABLwFSIAAvAWpHC0EBcToAHiAAIAAtAB5BAXEEfyAALwFqQQBHBUEAC0EBcToAHSAAIAAtAB5BAXEEfyAAKAKQAS8BUkEARwVBAAtBAXE6ABwgACAAKAKUATYCNCMAQRBrIgIgACgCNDYCDCACKAIMIgIgAigCMEEBajYCMCAALQAdQQFxBEAgACAALwFqQQAQeyICNgIMIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAvAWpBACAAKAKYASgCHCAAKAIMEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAALQAhQQFxBEAgACAAKAKYASAAKAI0IAAvAWgQsAEiAjYCMCACRQRAIAAoAjQQGyAAQX82ApwBDAILIAAoAjQQGyAAIAAoAjA2AjQLIAAtACBBAXEEQCAAIAAoApgBIAAoAjRBABCvASICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AH0EBcQRAIAAoApgBIQMgACgCNCEEIAAoApABKAIQIQUgACgCkAEvAVAhBiMAQRBrIgIkACACIAM2AgwgAiAENgIIIAIgBTYCBCACIAY2AgAgAigCDCACKAIIIAIoAgRBASACKAIAELIBIQMgAkEQaiQAIAAgAyICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AHEEBcQRAIABBADYCBAJAIAAoApABKAJUBEAgACAAKAKQASgCVDYCBAwBCyAAKAKYASgCHARAIAAgACgCmAEoAhw2AgQLCyAAIAAoApABLwFSQQEQeyICNgIIIAJFBEAgACgCmAFBCGpBGEEAEBQgACgCNBAbIABBfzYCnAEMAgsgACAAKAKYASAAKAI0IAAoApABLwFSQQEgACgCBCAAKAIIEQUAIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAAIAAoApgBKAIAEDUiBzcDgAEgB0IAUwRAIAAoApgBQQhqIAAoApgBKAIAEBcgAEF/NgKcAQwBCyAAKAKYASEDIAAoAjQhBCAAKQNwIQcjAEHAwABrIgIkACACIAM2ArhAIAIgBDYCtEAgAiAHNwOoQAJAIAIoArRAEEhBAEgEQCACKAK4QEEIaiACKAK0QBAXIAJBfzYCvEAMAQsgAkEANgIMIAJCADcDEANAAkAgAiACKAK0QCACQSBqQoDAABArIgc3AxggB0IAVw0AIAIoArhAIAJBIGogAikDGBA2QQBIBEAgAkF/NgIMBSACKQMYQoDAAFINAiACKAK4QCgCVEUNAiACKQOoQEIAVw0CIAIgAikDGCACKQMQfDcDECACKAK4QCgCVCACKQMQuSACKQOoQLmjEFcMAgsLCyACKQMYQgBTBEAgAigCuEBBCGogAigCtEAQFyACQX82AgwLIAIoArRAEC8aIAIgAigCDDYCvEALIAIoArxAIQMgAkHAwABqJAAgACADNgIsIAAoAjQgAEE4ahA5QQBIBEAgACgCmAFBCGogACgCNBAXIABBfzYCLAsgACgCNCEDIwBBEGsiAiQAIAIgAzYCCAJAA0AgAigCCARAIAIoAggpAxhCgIAEg0IAUgRAIAIgAigCCEEAQgBBEBAgNwMAIAIpAwBCAFMEQCACQf8BOgAPDAQLIAIpAwBCA1UEQCACKAIIQQxqQRRBABAUIAJB/wE6AA8MBAsgAiACKQMAPAAPDAMFIAIgAigCCCgCADYCCAwCCwALCyACQQA6AA8LIAIsAA8hAyACQRBqJAAgACADIgI6ACMgAkEYdEEYdUEASARAIAAoApgBQQhqIAAoAjQQFyAAQX82AiwLIAAoAjQQGyAAKAIsQQBIBEAgAEF/NgKcAQwBCyAAIAAoApgBKAIAEDUiBzcDeCAHQgBTBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAAoApgBKAIAIAApA4gBEJsBQQBIBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIAApAzhC5ACDQuQAUgRAIAAoApgBQQhqQRRBABAUIABBfzYCnAEMAQsgACgCkAEoAgBBIHFFBEACQCAAKQM4QhCDQgBSBEAgACgCkAEgACgCYDYCFAwBCyAAKAKQAUEUahABGgsLIAAoApABIAAvAWg2AhAgACgCkAEgACgCZDYCGCAAKAKQASAAKQNQNwMoIAAoApABIAApA3ggACkDgAF9NwMgIAAoApABIAAoApABLwEMQfn/A3EgAC0AI0EBdHI7AQwgACgCkAEhAyAAKAIkQYAIcUEARyEEIwBBEGsiAiQAIAIgAzYCDCACIAQ6AAsCQCACKAIMKAIQQQ5GBEAgAigCDEE/OwEKDAELIAIoAgwoAhBBDEYEQCACKAIMQS47AQoMAQsCQCACLQALQQFxRQRAIAIoAgxBABBlQQFxRQ0BCyACKAIMQS07AQoMAQsCQCACKAIMKAIQQQhHBEAgAigCDC8BUkEBRw0BCyACKAIMQRQ7AQoMAQsgAiACKAIMKAIwEFEiAzsBCCADQf//A3EEQCACKAIMKAIwKAIAIAIvAQhBAWtqLQAAQS9GBEAgAigCDEEUOwEKDAILCyACKAIMQQo7AQoLIAJBEGokACAAIAAoApgBIAAoApABIAAoAiQQVCICNgIsIAJBAEgEQCAAQX82ApwBDAELIAAoAiggACgCLEcEQCAAKAKYAUEIakEUQQAQFCAAQX82ApwBDAELIAAoApgBKAIAIAApA3gQmwFBAEgEQCAAKAKYAUEIaiAAKAKYASgCABAXIABBfzYCnAEMAQsgAEEANgKcAQsgACgCnAEhAiAAQaABaiQAIAJBAEgLBEAgAUEBNgIsIAEoAggEQCABKAIIEBsLDAQLIAEoAggEQCABKAIIEBsLDAELIAEoAgwiACAALwEMQff/A3E7AQwgASgCWCABKAIMQYACEFRBAEgEQCABQQE2AiwMAwsgASABKAJYIAEpA1AgASgCWEEIahBgIgc3AwAgB1AEQCABQQE2AiwMAwsgASgCWCgCACABKQMAQQAQJ0EASARAIAEoAlhBCGogASgCWCgCABAXIAFBATYCLAwDCwJ/IAEoAlghAiABKAIMKQMgIQcjAEGgwABrIgAkACAAIAI2AphAIAAgBzcDkEAgACAAKQOQQLo5AwACQANAIAApA5BAUEUEQCAAIAApA5BAQoDAAFYEfkKAwAAFIAApA5BACz4CDCAAKAKYQCgCACAAQRBqIAAoAgytIAAoAphAQQhqEGRBAEgEQCAAQX82ApxADAMLIAAoAphAIABBEGogACgCDK0QNkEASARAIABBfzYCnEAMAwUgACAAKQOQQCAANQIMfTcDkEAgACgCmEAoAlQgACsDACAAKQOQQLqhIAArAwCjEFcMAgsACwsgAEEANgKcQAsgACgCnEAhAiAAQaDAAGokACACQQBICwRAIAFBATYCLAwDCwsLIAEgASkDSEIBfDcDSAwBCwsgASgCLEUEQAJ/IAEoAlghACABKAIoIQMgASkDQCEHIwBBMGsiAiQAIAIgADYCKCACIAM2AiQgAiAHNwMYIAIgAigCKCgCABA1Igc3AxACQCAHQgBTBEAgAkF/NgIsDAELIAIoAighAyACKAIkIQQgAikDGCEHIwBBwAFrIgAkACAAIAM2ArQBIAAgBDYCsAEgACAHNwOoASAAIAAoArQBKAIAEDUiBzcDIAJAIAdCAFMEQCAAKAK0AUEIaiAAKAK0ASgCABAXIABCfzcDuAEMAQsgACAAKQMgNwOgASAAQQA6ABcgAEIANwMYA0AgACkDGCAAKQOoAVQEQCAAIAAoArQBKAJAIAAoArABIAApAxinQQN0aikDAKdBBHRqNgIMIAAgACgCtAECfyAAKAIMKAIEBEAgACgCDCgCBAwBCyAAKAIMKAIAC0GABBBUIgM2AhAgA0EASARAIABCfzcDuAEMAwsgACgCEARAIABBAToAFwsgACAAKQMYQgF8NwMYDAELCyAAIAAoArQBKAIAEDUiBzcDICAHQgBTBEAgACgCtAFBCGogACgCtAEoAgAQFyAAQn83A7gBDAELIAAgACkDICAAKQOgAX03A5gBAkAgACkDoAFC/////w9YBEAgACkDqAFC//8DWA0BCyAAQQE6ABcLIAAgAEEwakLiABApIgM2AiwgA0UEQCAAKAK0AUEIakEOQQAQFCAAQn83A7gBDAELIAAtABdBAXEEQCAAKAIsQecSQQQQQSAAKAIsQiwQLSAAKAIsQS0QHyAAKAIsQS0QHyAAKAIsQQAQISAAKAIsQQAQISAAKAIsIAApA6gBEC0gACgCLCAAKQOoARAtIAAoAiwgACkDmAEQLSAAKAIsIAApA6ABEC0gACgCLEHiEkEEEEEgACgCLEEAECEgACgCLCAAKQOgASAAKQOYAXwQLSAAKAIsQQEQIQsgACgCLEHsEkEEEEEgACgCLEEAECEgACgCLCAAKQOoAUL//wNaBH5C//8DBSAAKQOoAQunQf//A3EQHyAAKAIsIAApA6gBQv//A1oEfkL//wMFIAApA6gBC6dB//8DcRAfIAAoAiwgACkDmAFC/////w9aBH9BfwUgACkDmAGnCxAhIAAoAiwgACkDoAFC/////w9aBH9BfwUgACkDoAGnCxAhIAACfyAAKAK0AS0AKEEBcQRAIAAoArQBKAIkDAELIAAoArQBKAIgCzYClAEgACgCLAJ/IAAoApQBBEAgACgClAEvAQQMAQtBAAtB//8DcRAfAn8jAEEQayIDIAAoAiw2AgwgAygCDC0AAEEBcUULBEAgACgCtAFBCGpBFEEAEBQgACgCLBAWIABCfzcDuAEMAQsgACgCtAECfyMAQRBrIgMgACgCLDYCDCADKAIMKAIECwJ+IwBBEGsiAyAAKAIsNgIMAn4gAygCDC0AAEEBcQRAIAMoAgwpAxAMAQtCAAsLEDZBAEgEQCAAKAIsEBYgAEJ/NwO4AQwBCyAAKAIsEBYgACgClAEEQCAAKAK0ASAAKAKUASgCACAAKAKUAS8BBK0QNkEASARAIABCfzcDuAEMAgsLIAAgACkDmAE3A7gBCyAAKQO4ASEHIABBwAFqJAAgAiAHNwMAIAdCAFMEQCACQX82AiwMAQsgAiACKAIoKAIAEDUiBzcDCCAHQgBTBEAgAkF/NgIsDAELIAJBADYCLAsgAigCLCEAIAJBMGokACAAQQBICwRAIAFBATYCLAsLIAEoAigQFSABKAIsRQRAAn8gASgCWCgCACECIwBBEGsiACQAIAAgAjYCCAJAIAAoAggoAiRBAUcEQCAAKAIIQQxqQRJBABAUIABBfzYCDAwBCyAAKAIIKAIgQQFLBEAgACgCCEEMakEdQQAQFCAAQX82AgwMAQsgACgCCCgCIARAIAAoAggQL0EASARAIABBfzYCDAwCCwsgACgCCEEAQgBBCRAgQgBTBEAgACgCCEECNgIkIABBfzYCDAwBCyAAKAIIQQA2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAILBEAgASgCWEEIaiABKAJYKAIAEBcgAUEBNgIsCwsgASgCWCgCVCECIwBBEGsiACQAIAAgAjYCDCAAKAIMRAAAAAAAAPA/EFcgAEEQaiQAIAEoAiwEQCABKAJYKAIAEGIgAUF/NgJcDAELIAEoAlgQPCABQQA2AlwLIAEoAlwhACABQeAAaiQAIAAL0g4CB38CfiMAQTBrIgMkACADIAA2AiggAyABNgIkIAMgAjYCICMAQRBrIgAgA0EIajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCADKAIoIQAjAEEgayIEJAAgBCAANgIYIARCADcDECAEQn83AwggBCADQQhqNgIEAkACQCAEKAIYBEAgBCkDCEJ/WQ0BCyAEKAIEQRJBABAUIARBADYCHAwBCyAEKAIYIQAgBCkDECEKIAQpAwghCyAEKAIEIQEjAEGgAWsiAiQAIAIgADYCmAEgAkEANgKUASACIAo3A4gBIAIgCzcDgAEgAkEANgJ8IAIgATYCeAJAAkAgAigClAENACACKAKYAQ0AIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACKQOAAUIAUwRAIAJCADcDgAELAkAgAikDiAFC////////////AFgEQCACKQOIASACKQOIASACKQOAAXxYDQELIAIoAnhBEkEAEBQgAkEANgKcAQwBCyACQYgBEBgiADYCdCAARQRAIAIoAnhBDkEAEBQgAkEANgKcAQwBCyACKAJ0QQA2AhggAigCmAEEQCACKAKYASIAEC5BAWoiARAYIgUEfyAFIAAgARAZBUEACyEAIAIoAnQgADYCGCAARQRAIAIoAnhBDkEAEBQgAigCdBAVIAJBADYCnAEMAgsLIAIoAnQgAigClAE2AhwgAigCdCACKQOIATcDaCACKAJ0IAIpA4ABNwNwAkAgAigCfARAIAIoAnQiACACKAJ8IgEpAwA3AyAgACABKQMwNwNQIAAgASkDKDcDSCAAIAEpAyA3A0AgACABKQMYNwM4IAAgASkDEDcDMCAAIAEpAwg3AyggAigCdEEANgIoIAIoAnQiACAAKQMgQv7///8PgzcDIAwBCyACKAJ0QSBqEDsLIAIoAnQpA3BCAFIEQCACKAJ0IAIoAnQpA3A3AzggAigCdCIAIAApAyBCBIQ3AyALIwBBEGsiACACKAJ0QdgAajYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCACKAJ0QQA2AoABIAIoAnRBADYChAEjAEEQayIAIAIoAnQ2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggAkF/NgIEIAJBBzYCAEEOIAIQNEI/hCEKIAIoAnQgCjcDEAJAIAIoAnQoAhgEQCACIAIoAnQoAhggAkEYahCmAUEATjoAFyACLQAXQQFxRQRAAkAgAigCdCkDaFBFDQAgAigCdCkDcFBFDQAgAigCdEL//wM3AxALCwwBCwJAIAIoAnQoAhwiACgCTEEASA0ACyAAKAI8IQBBACEFIwBBIGsiBiQAAn8CQCAAIAJBGGoiCRAKIgFBeEYEQCMAQSBrIgckACAAIAdBCGoQCSIIBH9BtJsBIAg2AgBBAAVBAQshCCAHQSBqJAAgCA0BCyABQYFgTwR/QbSbAUEAIAFrNgIAQX8FIAELDAELA0AgBSAGaiIBIAVBxxJqLQAAOgAAIAVBDkchByAFQQFqIQUgBw0ACwJAIAAEQEEPIQUgACEBA0AgAUEKTwRAIAVBAWohBSABQQpuIQEMAQsLIAUgBmpBADoAAANAIAYgBUEBayIFaiAAIABBCm4iAUEKbGtBMHI6AAAgAEEJSyEHIAEhACAHDQALDAELIAFBMDoAACAGQQA6AA8LIAYgCRACIgBBgWBPBH9BtJsBQQAgAGs2AgBBfwUgAAsLIQAgBkEgaiQAIAIgAEEATjoAFwsCQCACLQAXQQFxRQRAIAIoAnRB2ABqQQVBtJsBKAIAEBQMAQsgAigCdCkDIEIQg1AEQCACKAJ0IAIoAlg2AkggAigCdCIAIAApAyBCEIQ3AyALIAIoAiRBgOADcUGAgAJGBEAgAigCdEL/gQE3AxAgAikDQCACKAJ0KQNoIAIoAnQpA3B8VARAIAIoAnhBEkEAEBQgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAMLIAIoAnQpA3BQBEAgAigCdCACKQNAIAIoAnQpA2h9NwM4IAIoAnQiACAAKQMgQgSENwMgAkAgAigCdCgCGEUNACACKQOIAVBFDQAgAigCdEL//wM3AxALCwsLIAIoAnQiACAAKQMQQoCAEIQ3AxAgAkEeIAIoAnQgAigCeBCDASIANgJwIABFBEAgAigCdCgCGBAVIAIoAnQQFSACQQA2ApwBDAELIAIgAigCcDYCnAELIAIoApwBIQAgAkGgAWokACAEIAA2AhwLIAQoAhwhACAEQSBqJAAgAyAANgIYAkAgAEUEQCADKAIgIANBCGoQnQEgA0EIahA4IANBADYCLAwBCyADIAMoAhggAygCJCADQQhqEJwBIgA2AhwgAEUEQCADKAIYEBsgAygCICADQQhqEJ0BIANBCGoQOCADQQA2AiwMAQsgA0EIahA4IAMgAygCHDYCLAsgAygCLCEAIANBMGokACAAC5IfAQZ/IwBB4ABrIgQkACAEIAA2AlQgBCABNgJQIAQgAjcDSCAEIAM2AkQgBCAEKAJUNgJAIAQgBCgCUDYCPAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAkQOEwYHAgwEBQoOAQMJEAsPDQgREQARCyAEQgA3A1gMEQsgBCgCQCgCGEUEQCAEKAJAQRxBABAUIARCfzcDWAwRCyAEKAJAIQAjAEGAAWsiASQAIAEgADYCeCABIAEoAngoAhgQLkEIahAYIgA2AnQCQCAARQRAIAEoAnhBDkEAEBQgAUF/NgJ8DAELAkAgASgCeCgCGCABQRBqEKYBRQRAIAEgASgCHDYCbAwBCyABQX82AmwLIAEoAnQhACABIAEoAngoAhg2AgAgAEGrEiABEG8gASgCdCEDIAEoAmwhByMAQTBrIgAkACAAIAM2AiggACAHNgIkIABBADYCECAAIAAoAiggACgCKBAuajYCGCAAIAAoAhhBAWs2AhwDQCAAKAIcIAAoAihPBH8gACgCHCwAAEHYAEYFQQALQQFxBEAgACAAKAIQQQFqNgIQIAAgACgCHEEBazYCHAwBCwsCQCAAKAIQRQRAQbSbAUEcNgIAIABBfzYCLAwBCyAAIAAoAhxBAWo2AhwDQCMAQRBrIgckAAJAAn8jAEEQayIDJAAgAyAHQQhqNgIIIANBBDsBBiADQegLQQBBABBsIgU2AgACQCAFQQBIBEAgA0EAOgAPDAELAn8gAygCACEGIAMoAgghCCADLwEGIQkjAEEQayIFJAAgBSAJNgIMIAUgCDYCCCAGIAVBCGpBASAFQQRqEAYiBgR/QbSbASAGNgIAQX8FQQALIQYgBSgCBCEIIAVBEGokACADLwEGQX8gCCAGG0cLBEAgAygCABBrIANBADoADwwBCyADKAIAEGsgA0EBOgAPCyADLQAPQQFxIQUgA0EQaiQAIAULBEAgByAHKAIINgIMDAELQcCgAS0AAEEBcUUEQEEAEAEhBgJAQciZASgCACIDRQRAQcyZASgCACAGNgIADAELQdCZAUEDQQNBASADQQdGGyADQR9GGzYCAEG8oAFBADYCAEHMmQEoAgAhBSADQQFOBEAgBq0hAkEAIQYDQCAFIAZBAnRqIAJCrf7V5NSF/ajYAH5CAXwiAkIgiD4CACAGQQFqIgYgA0cNAAsLIAUgBSgCAEEBcjYCAAsLQcyZASgCACEDAkBByJkBKAIAIgVFBEAgAyADKAIAQe2cmY4EbEG54ABqQf////8HcSIDNgIADAELIANB0JkBKAIAIgZBAnRqIgggCCgCACADQbygASgCACIIQQJ0aigCAGoiAzYCAEG8oAFBACAIQQFqIgggBSAIRhs2AgBB0JkBQQAgBkEBaiIGIAUgBkYbNgIAIANBAXYhAwsgByADNgIMCyAHKAIMIQMgB0EQaiQAIAAgAzYCDCAAIAAoAhw2AhQDQCAAKAIUIAAoAhhJBEAgACAAKAIMQSRwOgALAn8gACwAC0EKSARAIAAsAAtBMGoMAQsgACwAC0HXAGoLIQMgACAAKAIUIgdBAWo2AhQgByADOgAAIAAgACgCDEEkbjYCDAwBCwsgACgCKCEDIAAgACgCJEF/RgR/QbYDBSAAKAIkCzYCACAAIANBwoEgIAAQbCIDNgIgIANBAE4EQCAAKAIkQX9HBEAgACgCKCAAKAIkEA8iA0GBYE8Ef0G0mwFBACADazYCAEEABSADCxoLIAAgACgCIDYCLAwCC0G0mwEoAgBBFEYNAAsgAEF/NgIsCyAAKAIsIQMgAEEwaiQAIAEgAyIANgJwIABBf0YEQCABKAJ4QQxBtJsBKAIAEBQgASgCdBAVIAFBfzYCfAwBCyABIAEoAnBBoxIQoQEiADYCaCAARQRAIAEoAnhBDEG0mwEoAgAQFCABKAJwEGsgASgCdBBtGiABKAJ0EBUgAUF/NgJ8DAELIAEoAnggASgCaDYChAEgASgCeCABKAJ0NgKAASABQQA2AnwLIAEoAnwhACABQYABaiQAIAQgAKw3A1gMEAsgBCgCQCgCGARAIAQoAkAoAhwQVhogBCgCQEEANgIcCyAEQgA3A1gMDwsgBCgCQCgChAEQVkEASARAIAQoAkBBADYChAEgBCgCQEEGQbSbASgCABAUCyAEKAJAQQA2AoQBIAQoAkAoAoABIAQoAkAoAhgQCCIAQYFgTwR/QbSbAUEAIABrNgIAQX8FIAALQQBIBEAgBCgCQEECQbSbASgCABAUIARCfzcDWAwPCyAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDA4LIAQgBCgCQCAEKAJQIAQpA0gQQzcDWAwNCyAEKAJAKAIYEBUgBCgCQCgCgAEQFSAEKAJAKAIcBEAgBCgCQCgCHBBWGgsgBCgCQBAVIARCADcDWAwMCyAEKAJAKAIYBEAgBCgCQCgCGCEBIwBBIGsiACQAIAAgATYCGCAAQQA6ABcgAEGAgCA2AgwCQCAALQAXQQFxBEAgACAAKAIMQQJyNgIMDAELIAAgACgCDDYCDAsgACgCGCEBIAAoAgwhAyAAQbYDNgIAIAAgASADIAAQbCIBNgIQAkAgAUEASARAIABBADYCHAwBCyAAIAAoAhBBoxJBoBIgAC0AF0EBcRsQoQEiATYCCCABRQRAIABBADYCHAwBCyAAIAAoAgg2AhwLIAAoAhwhASAAQSBqJAAgBCgCQCABNgIcIAFFBEAgBCgCQEELQbSbASgCABAUIARCfzcDWAwNCwsgBCgCQCkDaEIAUgRAIAQoAkAoAhwgBCgCQCkDaCAEKAJAEJ8BQQBIBEAgBEJ/NwNYDA0LCyAEKAJAQgA3A3ggBEIANwNYDAsLAkAgBCgCQCkDcEIAUgRAIAQgBCgCQCkDcCAEKAJAKQN4fTcDMCAEKQMwIAQpA0hWBEAgBCAEKQNINwMwCwwBCyAEIAQpA0g3AzALIAQpAzBC/////w9WBEAgBEL/////DzcDMAsgBAJ/IAQoAjwhByAEKQMwpyEAIAQoAkAoAhwiAygCTBogAyADLQBKIgFBAWsgAXI6AEogAygCCCADKAIEIgVrIgFBAUgEfyAABSAHIAUgASAAIAAgAUsbIgEQGRogAyADKAIEIAFqNgIEIAEgB2ohByAAIAFrCyIBBEADQAJAAn8gAyADLQBKIgVBAWsgBXI6AEogAygCFCADKAIcSwRAIANBAEEAIAMoAiQRAQAaCyADQQA2AhwgA0IANwMQIAMoAgAiBUEEcQRAIAMgBUEgcjYCAEF/DAELIAMgAygCLCADKAIwaiIGNgIIIAMgBjYCBCAFQRt0QR91C0UEQCADIAcgASADKAIgEQEAIgVBAWpBAUsNAQsgACABawwDCyAFIAdqIQcgASAFayIBDQALCyAACyIANgIsIABFBEACfyAEKAJAKAIcIgAoAkxBf0wEQCAAKAIADAELIAAoAgALQQV2QQFxBEAgBCgCQEEFQbSbASgCABAUIARCfzcDWAwMCwsgBCgCQCIAIAApA3ggBCgCLK18NwN4IAQgBCgCLK03A1gMCgsgBCgCQCgCGBBtQQBIBEAgBCgCQEEWQbSbASgCABAUIARCfzcDWAwKCyAEQgA3A1gMCQsgBCgCQCgChAEEQCAEKAJAKAKEARBWGiAEKAJAQQA2AoQBCyAEKAJAKAKAARBtGiAEKAJAKAKAARAVIAQoAkBBADYCgAEgBEIANwNYDAgLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIYIAQoAhhFBEAgBEJ/NwNYDAgLIARBATYCHAJAAkACQAJAAkAgBCgCGCgCCA4DAAIBAwsgBCAEKAIYKQMANwMgDAMLAkAgBCgCQCkDcFAEQCAEKAJAKAIcIAQoAhgpAwBBAiAEKAJAEGpBAEgEQCAEQn83A1gMDQsgBCAEKAJAKAIcEKMBIgI3AyAgAkIAUwRAIAQoAkBBBEG0mwEoAgAQFCAEQn83A1gMDQsgBCAEKQMgIAQoAkApA2h9NwMgIARBADYCHAwBCyAEIAQoAkApA3AgBCgCGCkDAHw3AyALDAILIAQgBCgCQCkDeCAEKAIYKQMAfDcDIAwBCyAEKAJAQRJBABAUIARCfzcDWAwICwJAAkAgBCkDIEIAUw0AIAQoAkApA3BCAFIEQCAEKQMgIAQoAkApA3BWDQELIAQoAkApA2ggBCkDICAEKAJAKQNofFgNAQsgBCgCQEESQQAQFCAEQn83A1gMCAsgBCgCQCAEKQMgNwN4IAQoAhwEQCAEKAJAKAIcIAQoAkApA3ggBCgCQCkDaHwgBCgCQBCfAUEASARAIARCfzcDWAwJCwsgBEIANwNYDAcLIAQCfyAEKQNIQhBUBEAgBCgCQEESQQAQFEEADAELIAQoAlALNgIUIAQoAhRFBEAgBEJ/NwNYDAcLIAQoAkAoAoQBIAQoAhQpAwAgBCgCFCgCCCAEKAJAEGpBAEgEQCAEQn83A1gMBwsgBEIANwNYDAYLIAQpA0hCOFQEQCAEQn83A1gMBgsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsEQCAEKAJAAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgALAn8jAEEQayIAIAQoAkBB2ABqNgIMIAAoAgwoAgQLEBQgBEJ/NwNYDAYLIAQoAlAiACAEKAJAIgEpACA3AAAgACABKQBQNwAwIAAgASkASDcAKCAAIAEpAEA3ACAgACABKQA4NwAYIAAgASkAMDcAECAAIAEpACg3AAggBEI4NwNYDAULIAQgBCgCQCkDEDcDWAwECyAEIAQoAkApA3g3A1gMAwsgBCAEKAJAKAKEARCjATcDCCAEKQMIQgBTBEAgBCgCQEEeQbSbASgCABAUIARCfzcDWAwDCyAEIAQpAwg3A1gMAgsgBCgCQCgChAEiACgCTEEAThogACAAKAIAQU9xNgIAIAQCfyAEKAJQIQEgBCkDSKciACAAAn8gBCgCQCgChAEiAygCTEF/TARAIAEgACADEHEMAQsgASAAIAMQcQsiAUYNABogAQs2AgQCQCAEKQNIIAQoAgStUQRAAn8gBCgCQCgChAEiACgCTEF/TARAIAAoAgAMAQsgACgCAAtBBXZBAXFFDQELIAQoAkBBBkG0mwEoAgAQFCAEQn83A1gMAgsgBCAEKAIErTcDWAwBCyAEKAJAQRxBABAUIARCfzcDWAsgBCkDWCECIARB4ABqJAAgAgsJACAAKAI8EAUL5AEBBH8jAEEgayIDJAAgAyABNgIQIAMgAiAAKAIwIgRBAEdrNgIUIAAoAiwhBSADIAQ2AhwgAyAFNgIYQX8hBAJAAkAgACgCPCADQRBqQQIgA0EMahAGIgUEf0G0mwEgBTYCAEF/BUEAC0UEQCADKAIMIgRBAEoNAQsgACAAKAIAIARBMHFBEHNyNgIADAELIAQgAygCFCIGTQ0AIAAgACgCLCIFNgIEIAAgBSAEIAZrajYCCCAAKAIwBEAgACAFQQFqNgIEIAEgAmpBAWsgBS0AADoAAAsgAiEECyADQSBqJAAgBAv0AgEHfyMAQSBrIgMkACADIAAoAhwiBTYCECAAKAIUIQQgAyACNgIcIAMgATYCGCADIAQgBWsiATYCFCABIAJqIQVBAiEHIANBEGohAQJ/AkACQCAAKAI8IANBEGpBAiADQQxqEAMiBAR/QbSbASAENgIAQX8FQQALRQRAA0AgBSADKAIMIgRGDQIgBEF/TA0DIAEgBCABKAIEIghLIgZBA3RqIgkgBCAIQQAgBhtrIgggCSgCAGo2AgAgAUEMQQQgBhtqIgkgCSgCACAIazYCACAFIARrIQUgACgCPCABQQhqIAEgBhsiASAHIAZrIgcgA0EMahADIgQEf0G0mwEgBDYCAEF/BUEAC0UNAAsLIAVBf0cNAQsgACAAKAIsIgE2AhwgACABNgIUIAAgASAAKAIwajYCECACDAELIABBADYCHCAAQgA3AxAgACAAKAIAQSByNgIAQQAgB0ECRg0AGiACIAEoAgRrCyEAIANBIGokACAAC1IBAX8jAEEQayIDJAAgACgCPCABpyABQiCIpyACQf8BcSADQQhqEA0iAAR/QbSbASAANgIAQX8FQQALIQAgAykDCCEBIANBEGokAEJ/IAEgABsL1QQBBX8jAEGwAWsiASQAIAEgADYCqAEgASgCqAEQOAJAAkAgASgCqAEoAgBBAE4EQCABKAKoASgCAEGAFCgCAEgNAQsgASABKAKoASgCADYCECABQSBqQY8SIAFBEGoQbyABQQA2AqQBIAEgAUEgajYCoAEMAQsgASABKAKoASgCAEECdEGAE2ooAgA2AqQBAkACQAJAAkAgASgCqAEoAgBBAnRBkBRqKAIAQQFrDgIAAQILIAEoAqgBKAIEIQJBkJkBKAIAIQRBACEAAkACQANAIAIgAEGgiAFqLQAARwRAQdcAIQMgAEEBaiIAQdcARw0BDAILCyAAIgMNAEGAiQEhAgwBC0GAiQEhAANAIAAtAAAhBSAAQQFqIgIhACAFDQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQLgJ/IAEoAqQBBEAgASgCpAEQLkECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEG8gASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAsIAEEBQTgQfwszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMI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ADYCtC0gASgCFEEERgRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQEQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUECNgIcDAILIAFBAzYCHAwBCyABKAIYKAKgLQRAIAEoAhgCfyABKAIYKAJcQQBOBEAgASgCGCgCOCABKAIYKAJcagwBC0EACyABKAIYKAJsIAEoAhgoAlxrQQAQKCABKAIYIAEoAhgoAmw2AlwgASgCGCgCABAcIAEoAhgoAgAoAhBFBEAgAUEANgIcDAILCyABQQE2AhwLIAEoAhwhAiABQSBqJAAgAgwBCwJ/IAAoAiwoAogBQQNGBEAgACgCLCECIAAoAjQhAyMAQTBrIgEkACABIAI2AiggASADNgIkAkADQAJAIAEoAigoAnRBggJNBEAgASgCKBBcAkAgASgCKCgCdEGCAksNACABKAIkDQAgAUEANgIsDAQLIAEoAigoAnRFDQELIAEoAihBADYCYAJAIAEoAigoAnRBA0kNACABKAIoKAJsRQ0AIAEgASgCKCgCOCABKAIoKAJsakEBazYCGCABIAEoAhgtAAA2AhwgASgCHCECIAEgASgCGCIDQQFqNgIYAkAgAy0AASACRw0AIAEoAhwhAiABIAEoAhgiA0EBajYCGCADLQABIAJHDQAgASgCHCECIAEgASgCGCIDQQFqNgIYIAMtAAEgAkcNACABIAEoAigoAjggASgCKCgCbGpBggJqNgIUA0AgASgCHCECIAEgASgCGCIDQQFqNgIYAn9BACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABog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AS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIIQQNrNgIIIAEoAghBAksNAAsLIAEoAggEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEoAghBAUsEQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAACwsMAgsgASgCDEHAAHFFBEAgASABKAIgIAEvARIgASgCLEEBIAEoAgx0QQFrcWpBAnRqKAEANgEQDAELCyAB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AG5hbgAvZGV2L3VyYW5kb20AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoAGluZgBpbnZhbGlkIHdpbmRvdyBzaXplAFJlYWQtb25seSBhcmNoaXZlAE5vdCBhIHppcCBhcmNoaXZlAFJlc291cmNlIHN0aWxsIGluIHVzZQBNYWxsb2MgZmFpbHVyZQBpbnZhbGlkIGJsb2NrIHR5cGUARmFpbHVyZSB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUAQ2FuJ3Qgb3BlbiBmaWxlAE5vIHN1Y2ggZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGZpbGUAQ2FuJ3QgcmVtb3ZlIGZpbGUAaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlAGludmFsaWQgZGlzdGFuY2UgY29kZQB1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZABzdHJlYW0gZW5kAENvbXByZXNzZWQgZGF0YSBpbnZhbGlkAE11bHRpLWRpc2sgemlwIGFyY2hpdmVzIG5vdCBzdXBwb3J0ZWQAT3BlcmF0aW9uIG5vdCBzdXBwb3J0ZWQARW5jcnlwdGlvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABDb21wcmVzc2lvbiBtZXRob2Qgbm90IHN1cHBvcnRlZABFbnRyeSBoYXMgYmVlbiBkZWxldGVkAENvbnRhaW5pbmcgemlwIGFyY2hpdmUgd2FzIGNsb3NlZABDbG9zaW5nIHppcCBhcmNoaXZlIGZhaWxlZABSZW5hbWluZyB0ZW1wb3JhcnkgZmlsZSBmYWlsZWQARW50cnkgaGFzIGJlZW4gY2hhbmdlZABObyBwYXNzd29yZCBwcm92aWRlZABXcm9uZyBwYXNzd29yZCBwcm92aWRlZABVbmtub3duIGVycm9yICVkAHJiAHIrYgByd2EAJXMuWFhYWFhYAE5BTgBJTkYAQUUAMS4yLjExAC9wcm9jL3NlbGYvZmQvAC4AKG51bGwpADogAFBLBgcA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0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";fg(Io)||(Io=p(Io));function hg(f){try{if(f==Io&&X)return new Uint8Array(X);var E=pa(f);if(E)return E;if(m)return m(f);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(w){yr(w)}}function Bp(f,E){var w,k,L;try{L=hg(f),k=new WebAssembly.Module(L),w=new WebAssembly.Instance(k,E)}catch(ee){var T=ee.toString();throw P("failed to compile wasm module: "+T),(T.includes("imported Memory")||T.includes("memory import"))&&P("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),ee}return[w,k]}function bp(){var f={a:da};function E(L,T){var ee=L.exports;t.asm=ee,A=t.asm.u,Lr(A.buffer),ui=t.asm.pa,CA(t.asm.v),IA("wasm-instantiate")}if(EA("wasm-instantiate"),t.instantiateWasm)try{var w=t.instantiateWasm(f,E);return w}catch(L){return P("Module.instantiateWasm callback failed with error: "+L),!1}var k=Bp(Io,f);return E(k[0]),t.asm}var Sr,Ri;function yo(f){for(;f.length>0;){var E=f.shift();if(typeof E=="function"){E(t);continue}var w=E.func;typeof w=="number"?E.arg===void 0?ui.get(w)():ui.get(w)(E.arg):w(E.arg===void 0?null:E.arg)}}function Nn(f,E){var w=new Date(de[f>>2]*1e3);de[E>>2]=w.getUTCSeconds(),de[E+4>>2]=w.getUTCMinutes(),de[E+8>>2]=w.getUTCHours(),de[E+12>>2]=w.getUTCDate(),de[E+16>>2]=w.getUTCMonth(),de[E+20>>2]=w.getUTCFullYear()-1900,de[E+24>>2]=w.getUTCDay(),de[E+36>>2]=0,de[E+32>>2]=0;var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[E+28>>2]=L,Nn.GMTString||(Nn.GMTString=ye("GMT")),de[E+40>>2]=Nn.GMTString,E}function ae(f,E){return Nn(f,E)}var yt={splitPath:function(f){var E=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return E.exec(f).slice(1)},normalizeArray:function(f,E){for(var w=0,k=f.length-1;k>=0;k--){var L=f[k];L==="."?f.splice(k,1):L===".."?(f.splice(k,1),w++):w&&(f.splice(k,1),w--)}if(E)for(;w;w--)f.unshift("..");return f},normalize:function(f){var E=f.charAt(0)==="/",w=f.substr(-1)==="/";return f=yt.normalizeArray(f.split("/").filter(function(k){return!!k}),!E).join("/"),!f&&!E&&(f="."),f&&w&&(f+="/"),(E?"/":"")+f},dirname:function(f){var E=yt.splitPath(f),w=E[0],k=E[1];return!w&&!k?".":(k&&(k=k.substr(0,k.length-1)),w+k)},basename:function(f){if(f==="/")return"/";f=yt.normalize(f),f=f.replace(/\/$/,"");var E=f.lastIndexOf("/");return E===-1?f:f.substr(E+1)},extname:function(f){return yt.splitPath(f)[3]},join:function(){var f=Array.prototype.slice.call(arguments,0);return yt.normalize(f.join("/"))},join2:function(f,E){return yt.normalize(f+"/"+E)}};function Tl(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var f=new Uint8Array(1);return function(){return crypto.getRandomValues(f),f[0]}}else if(g)try{var E=J("crypto");return function(){return E.randomBytes(1)[0]}}catch{}return function(){yr("randomDevice")}}var Tn={resolve:function(){for(var f="",E=!1,w=arguments.length-1;w>=-1&&!E;w--){var k=w>=0?arguments[w]:Q.cwd();if(typeof k!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!k)return"";f=k+"/"+f,E=k.charAt(0)==="/"}return f=yt.normalizeArray(f.split("/").filter(function(L){return!!L}),!E).join("/"),(E?"/":"")+f||"."},relative:function(f,E){f=Tn.resolve(f).substr(1),E=Tn.resolve(E).substr(1);function w(it){for(var at=0;at<it.length&&it[at]==="";at++);for(var Ue=it.length-1;Ue>=0&&it[Ue]==="";Ue--);return at>Ue?[]:it.slice(at,Ue-at+1)}for(var k=w(f.split("/")),L=w(E.split("/")),T=Math.min(k.length,L.length),ee=T,Ie=0;Ie<T;Ie++)if(k[Ie]!==L[Ie]){ee=Ie;break}for(var Oe=[],Ie=ee;Ie<k.length;Ie++)Oe.push("..");return Oe=Oe.concat(L.slice(ee)),Oe.join("/")}},ns={ttys:[],init:function(){},shutdown:function(){},register:function(f,E){ns.ttys[f]={input:[],output:[],ops:E},Q.registerDevice(f,ns.stream_ops)},stream_ops:{open:function(f){var E=ns.ttys[f.node.rdev];if(!E)throw new Q.ErrnoError(43);f.tty=E,f.seekable=!1},close:function(f){f.tty.ops.flush(f.tty)},flush:function(f){f.tty.ops.flush(f.tty)},read:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.get_char)throw new Q.ErrnoError(60);for(var T=0,ee=0;ee<k;ee++){var Ie;try{Ie=f.tty.ops.get_char(f.tty)}catch{throw new Q.ErrnoError(29)}if(Ie===void 0&&T===0)throw new Q.ErrnoError(6);if(Ie==null)break;T++,E[w+ee]=Ie}return T&&(f.node.timestamp=Date.now()),T},write:function(f,E,w,k,L){if(!f.tty||!f.tty.ops.put_char)throw new Q.ErrnoError(60);try{for(var T=0;T<k;T++)f.tty.ops.put_char(f.tty,E[w+T])}catch{throw new Q.ErrnoError(29)}return k&&(f.node.timestamp=Date.now()),T}},default_tty_ops:{get_char:function(f){if(!f.input.length){var E=null;if(g){var w=256,k=Buffer.alloc?Buffer.alloc(w):new Buffer(w),L=0;try{L=y.readSync(process.stdin.fd,k,0,w,null)}catch(T){if(T.toString().includes("EOF"))L=0;else throw T}L>0?E=k.slice(0,L).toString("utf-8"):E=null}else typeof window<"u"&&typeof window.prompt=="function"?(E=window.prompt("Input: "),E!==null&&(E+=` -`)):typeof readline=="function"&&(E=readline(),E!==null&&(E+=` -`));if(!E)return null;f.input=wA(E,!0)}return f.input.shift()},put_char:function(f,E){E===null||E===10?(S(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(S(Pe(f.output,0)),f.output=[])}},default_tty1_ops:{put_char:function(f,E){E===null||E===10?(P(Pe(f.output,0)),f.output=[]):E!=0&&f.output.push(E)},flush:function(f){f.output&&f.output.length>0&&(P(Pe(f.output,0)),f.output=[])}}};function ss(f){for(var E=H(f,65536),w=pt(E);f<E;)ie[w+f++]=0;return w}var ut={ops_table:null,mount:function(f){return ut.createNode(null,"/",16895,0)},createNode:function(f,E,w,k){if(Q.isBlkdev(w)||Q.isFIFO(w))throw new Q.ErrnoError(63);ut.ops_table||(ut.ops_table={dir:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,lookup:ut.node_ops.lookup,mknod:ut.node_ops.mknod,rename:ut.node_ops.rename,unlink:ut.node_ops.unlink,rmdir:ut.node_ops.rmdir,readdir:ut.node_ops.readdir,symlink:ut.node_ops.symlink},stream:{llseek:ut.stream_ops.llseek}},file:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:{llseek:ut.stream_ops.llseek,read:ut.stream_ops.read,write:ut.stream_ops.write,allocate:ut.stream_ops.allocate,mmap:ut.stream_ops.mmap,msync:ut.stream_ops.msync}},link:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr,readlink:ut.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ut.node_ops.getattr,setattr:ut.node_ops.setattr},stream:Q.chrdev_stream_ops}});var L=Q.createNode(f,E,w,k);return Q.isDir(L.mode)?(L.node_ops=ut.ops_table.dir.node,L.stream_ops=ut.ops_table.dir.stream,L.contents={}):Q.isFile(L.mode)?(L.node_ops=ut.ops_table.file.node,L.stream_ops=ut.ops_table.file.stream,L.usedBytes=0,L.contents=null):Q.isLink(L.mode)?(L.node_ops=ut.ops_table.link.node,L.stream_ops=ut.ops_table.link.stream):Q.isChrdev(L.mode)&&(L.node_ops=ut.ops_table.chrdev.node,L.stream_ops=ut.ops_table.chrdev.stream),L.timestamp=Date.now(),f&&(f.contents[E]=L,f.timestamp=L.timestamp),L},getFileDataAsTypedArray:function(f){return f.contents?f.contents.subarray?f.contents.subarray(0,f.usedBytes):new Uint8Array(f.contents):new Uint8Array(0)},expandFileStorage:function(f,E){var w=f.contents?f.contents.length:0;if(!(w>=E)){var k=1024*1024;E=Math.max(E,w*(w<k?2:1.125)>>>0),w!=0&&(E=Math.max(E,256));var L=f.contents;f.contents=new Uint8Array(E),f.usedBytes>0&&f.contents.set(L.subarray(0,f.usedBytes),0)}},resizeFileStorage:function(f,E){if(f.usedBytes!=E)if(E==0)f.contents=null,f.usedBytes=0;else{var w=f.contents;f.contents=new Uint8Array(E),w&&f.contents.set(w.subarray(0,Math.min(E,f.usedBytes))),f.usedBytes=E}},node_ops:{getattr:function(f){var E={};return E.dev=Q.isChrdev(f.mode)?f.id:1,E.ino=f.id,E.mode=f.mode,E.nlink=1,E.uid=0,E.gid=0,E.rdev=f.rdev,Q.isDir(f.mode)?E.size=4096:Q.isFile(f.mode)?E.size=f.usedBytes:Q.isLink(f.mode)?E.size=f.link.length:E.size=0,E.atime=new Date(f.timestamp),E.mtime=new Date(f.timestamp),E.ctime=new Date(f.timestamp),E.blksize=4096,E.blocks=Math.ceil(E.size/E.blksize),E},setattr:function(f,E){E.mode!==void 0&&(f.mode=E.mode),E.timestamp!==void 0&&(f.timestamp=E.timestamp),E.size!==void 0&&ut.resizeFileStorage(f,E.size)},lookup:function(f,E){throw Q.genericErrors[44]},mknod:function(f,E,w,k){return ut.createNode(f,E,w,k)},rename:function(f,E,w){if(Q.isDir(f.mode)){var k;try{k=Q.lookupNode(E,w)}catch{}if(k)for(var L in k.contents)throw new Q.ErrnoError(55)}delete f.parent.contents[f.name],f.parent.timestamp=Date.now(),f.name=w,E.contents[w]=f,E.timestamp=f.parent.timestamp,f.parent=E},unlink:function(f,E){delete f.contents[E],f.timestamp=Date.now()},rmdir:function(f,E){var w=Q.lookupNode(f,E);for(var k in w.contents)throw new Q.ErrnoError(55);delete f.contents[E],f.timestamp=Date.now()},readdir:function(f){var E=[".",".."];for(var w in f.contents)!f.contents.hasOwnProperty(w)||E.push(w);return E},symlink:function(f,E,w){var k=ut.createNode(f,E,41471,0);return k.link=w,k},readlink:function(f){if(!Q.isLink(f.mode))throw new Q.ErrnoError(28);return f.link}},stream_ops:{read:function(f,E,w,k,L){var T=f.node.contents;if(L>=f.node.usedBytes)return 0;var ee=Math.min(f.node.usedBytes-L,k);if(ee>8&&T.subarray)E.set(T.subarray(L,L+ee),w);else for(var Ie=0;Ie<ee;Ie++)E[w+Ie]=T[L+Ie];return ee},write:function(f,E,w,k,L,T){if(E.buffer===ie.buffer&&(T=!1),!k)return 0;var ee=f.node;if(ee.timestamp=Date.now(),E.subarray&&(!ee.contents||ee.contents.subarray)){if(T)return ee.contents=E.subarray(w,w+k),ee.usedBytes=k,k;if(ee.usedBytes===0&&L===0)return ee.contents=E.slice(w,w+k),ee.usedBytes=k,k;if(L+k<=ee.usedBytes)return ee.contents.set(E.subarray(w,w+k),L),k}if(ut.expandFileStorage(ee,L+k),ee.contents.subarray&&E.subarray)ee.contents.set(E.subarray(w,w+k),L);else for(var Ie=0;Ie<k;Ie++)ee.contents[L+Ie]=E[w+Ie];return ee.usedBytes=Math.max(ee.usedBytes,L+k),k},llseek:function(f,E,w){var k=E;if(w===1?k+=f.position:w===2&&Q.isFile(f.node.mode)&&(k+=f.node.usedBytes),k<0)throw new Q.ErrnoError(28);return k},allocate:function(f,E,w){ut.expandFileStorage(f.node,E+w),f.node.usedBytes=Math.max(f.node.usedBytes,E+w)},mmap:function(f,E,w,k,L,T){if(E!==0)throw new Q.ErrnoError(28);if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);var ee,Ie,Oe=f.node.contents;if(!(T&2)&&Oe.buffer===Ye)Ie=!1,ee=Oe.byteOffset;else{if((k>0||k+w<Oe.length)&&(Oe.subarray?Oe=Oe.subarray(k,k+w):Oe=Array.prototype.slice.call(Oe,k,k+w)),Ie=!0,ee=ss(w),!ee)throw new Q.ErrnoError(48);ie.set(Oe,ee)}return{ptr:ee,allocated:Ie}},msync:function(f,E,w,k,L){if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);if(L&2)return 0;var T=ut.stream_ops.write(f,E,0,k,w,!1);return 0}}},wo={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},At={isWindows:!1,staticInit:function(){At.isWindows=!!process.platform.match(/^win/);var f={fs:Ne.constants};f.fs&&(f=f.fs),At.flagsForNodeMap={1024:f.O_APPEND,64:f.O_CREAT,128:f.O_EXCL,256:f.O_NOCTTY,0:f.O_RDONLY,2:f.O_RDWR,4096:f.O_SYNC,512:f.O_TRUNC,1:f.O_WRONLY}},bufferFrom:function(f){return Buffer.alloc?Buffer.from(f):new Buffer(f)},convertNodeCode:function(f){var E=f.code;return wo[E]},mount:function(f){return At.createNode(null,"/",At.getMode(f.opts.root),0)},createNode:function(f,E,w,k){if(!Q.isDir(w)&&!Q.isFile(w)&&!Q.isLink(w))throw new Q.ErrnoError(28);var L=Q.createNode(f,E,w);return L.node_ops=At.node_ops,L.stream_ops=At.stream_ops,L},getMode:function(f){var E;try{E=Ne.lstatSync(f),At.isWindows&&(E.mode=E.mode|(E.mode&292)>>2)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}return E.mode},realPath:function(f){for(var E=[];f.parent!==f;)E.push(f.name),f=f.parent;return E.push(f.mount.opts.root),E.reverse(),yt.join.apply(null,E)},flagsForNode:function(f){f&=-2097153,f&=-2049,f&=-32769,f&=-524289;var E=0;for(var w in At.flagsForNodeMap)f&w&&(E|=At.flagsForNodeMap[w],f^=w);if(f)throw new Q.ErrnoError(28);return E},node_ops:{getattr:function(f){var E=At.realPath(f),w;try{w=Ne.lstatSync(E)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}return At.isWindows&&!w.blksize&&(w.blksize=4096),At.isWindows&&!w.blocks&&(w.blocks=(w.size+w.blksize-1)/w.blksize|0),{dev:w.dev,ino:w.ino,mode:w.mode,nlink:w.nlink,uid:w.uid,gid:w.gid,rdev:w.rdev,size:w.size,atime:w.atime,mtime:w.mtime,ctime:w.ctime,blksize:w.blksize,blocks:w.blocks}},setattr:function(f,E){var w=At.realPath(f);try{if(E.mode!==void 0&&(Ne.chmodSync(w,E.mode),f.mode=E.mode),E.timestamp!==void 0){var k=new Date(E.timestamp);Ne.utimesSync(w,k,k)}E.size!==void 0&&Ne.truncateSync(w,E.size)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},lookup:function(f,E){var w=yt.join2(At.realPath(f),E),k=At.getMode(w);return At.createNode(f,E,k)},mknod:function(f,E,w,k){var L=At.createNode(f,E,w,k),T=At.realPath(L);try{Q.isDir(L.mode)?Ne.mkdirSync(T,L.mode):Ne.writeFileSync(T,"",{mode:L.mode})}catch(ee){throw ee.code?new Q.ErrnoError(At.convertNodeCode(ee)):ee}return L},rename:function(f,E,w){var k=At.realPath(f),L=yt.join2(At.realPath(E),w);try{Ne.renameSync(k,L)}catch(T){throw T.code?new Q.ErrnoError(At.convertNodeCode(T)):T}f.name=w},unlink:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.unlinkSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},rmdir:function(f,E){var w=yt.join2(At.realPath(f),E);try{Ne.rmdirSync(w)}catch(k){throw k.code?new Q.ErrnoError(At.convertNodeCode(k)):k}},readdir:function(f){var E=At.realPath(f);try{return Ne.readdirSync(E)}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},symlink:function(f,E,w){var k=yt.join2(At.realPath(f),E);try{Ne.symlinkSync(w,k)}catch(L){throw L.code?new Q.ErrnoError(At.convertNodeCode(L)):L}},readlink:function(f){var E=At.realPath(f);try{return E=Ne.readlinkSync(E),E=Cg.relative(Cg.resolve(f.mount.opts.root),E),E}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}}},stream_ops:{open:function(f){var E=At.realPath(f.node);try{Q.isFile(f.node.mode)&&(f.nfd=Ne.openSync(E,At.flagsForNode(f.flags)))}catch(w){throw w.code?new Q.ErrnoError(At.convertNodeCode(w)):w}},close:function(f){try{Q.isFile(f.node.mode)&&f.nfd&&Ne.closeSync(f.nfd)}catch(E){throw E.code?new Q.ErrnoError(At.convertNodeCode(E)):E}},read:function(f,E,w,k,L){if(k===0)return 0;try{return Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},write:function(f,E,w,k,L){try{return Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L)}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}},llseek:function(f,E,w){var k=E;if(w===1)k+=f.position;else if(w===2&&Q.isFile(f.node.mode))try{var L=Ne.fstatSync(f.nfd);k+=L.size}catch(T){throw new Q.ErrnoError(At.convertNodeCode(T))}if(k<0)throw new Q.ErrnoError(28);return k},mmap:function(f,E,w,k,L,T){if(E!==0)throw new Q.ErrnoError(28);if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);var ee=ss(w);return At.stream_ops.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){if(!Q.isFile(f.node.mode))throw new Q.ErrnoError(43);if(L&2)return 0;var T=At.stream_ops.write(f,E,0,k,w,!1);return 0}}},ln={lookupPath:function(f){return{path:f,node:{mode:At.getMode(f)}}},createStandardStreams:function(){Q.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var f=1;f<3;f++)Q.streams[f]={fd:f,nfd:f,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(f,E){Q.isDir(f)?Ne.mkdirSync(f,E):Ne.writeFileSync(f,"",{mode:E})},mkdir:function(){Ne.mkdirSync.apply(void 0,arguments)},symlink:function(){Ne.symlinkSync.apply(void 0,arguments)},rename:function(){Ne.renameSync.apply(void 0,arguments)},rmdir:function(){Ne.rmdirSync.apply(void 0,arguments)},readdir:function(){Ne.readdirSync.apply(void 0,arguments)},unlink:function(){Ne.unlinkSync.apply(void 0,arguments)},readlink:function(){return Ne.readlinkSync.apply(void 0,arguments)},stat:function(){return Ne.statSync.apply(void 0,arguments)},lstat:function(){return Ne.lstatSync.apply(void 0,arguments)},chmod:function(){Ne.chmodSync.apply(void 0,arguments)},fchmod:function(){Ne.fchmodSync.apply(void 0,arguments)},chown:function(){Ne.chownSync.apply(void 0,arguments)},fchown:function(){Ne.fchownSync.apply(void 0,arguments)},truncate:function(){Ne.truncateSync.apply(void 0,arguments)},ftruncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);Ne.ftruncateSync.apply(void 0,arguments)},utime:function(){Ne.utimesSync.apply(void 0,arguments)},open:function(f,E,w,k){typeof E=="string"&&(E=Us.modeStringToFlags(E));var L=Ne.openSync(f,At.flagsForNode(E),w),T=k!=null?k:Q.nextfd(L),ee={fd:T,nfd:L,position:0,path:f,flags:E,seekable:!0};return Q.streams[T]=ee,ee},close:function(f){f.stream_ops||Ne.closeSync(f.nfd),Q.closeStream(f.fd)},llseek:function(f,E,w){if(f.stream_ops)return Us.llseek(f,E,w);var k=E;if(w===1)k+=f.position;else if(w===2)k+=Ne.fstatSync(f.nfd).size;else if(w!==0)throw new Q.ErrnoError(wo.EINVAL);if(k<0)throw new Q.ErrnoError(wo.EINVAL);return f.position=k,k},read:function(f,E,w,k,L){if(f.stream_ops)return Us.read(f,E,w,k,L);var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.readSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L){if(f.stream_ops)return Us.write(f,E,w,k,L);f.flags&+"1024"&&Q.llseek(f,0,+"2");var T=typeof L<"u";!T&&f.seekable&&(L=f.position);var ee=Ne.writeSync(f.nfd,At.bufferFrom(E.buffer),w,k,L);return T||(f.position+=ee),ee},allocate:function(){throw new Q.ErrnoError(wo.EOPNOTSUPP)},mmap:function(f,E,w,k,L,T){if(f.stream_ops)return Us.mmap(f,E,w,k,L,T);if(E!==0)throw new Q.ErrnoError(28);var ee=ss(w);return Q.read(f,ie,ee,w,k),{ptr:ee,allocated:!0}},msync:function(f,E,w,k,L){return f.stream_ops?Us.msync(f,E,w,k,L):(L&2||Q.write(f,E,0,k,w),0)},munmap:function(){return 0},ioctl:function(){throw new Q.ErrnoError(wo.ENOTTY)}},Q={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(f,E){if(f=Tn.resolve(Q.cwd(),f),E=E||{},!f)return{path:"",node:null};var w={follow_mount:!0,recurse_count:0};for(var k in w)E[k]===void 0&&(E[k]=w[k]);if(E.recurse_count>8)throw new Q.ErrnoError(32);for(var L=yt.normalizeArray(f.split("/").filter(function(Ve){return!!Ve}),!1),T=Q.root,ee="/",Ie=0;Ie<L.length;Ie++){var Oe=Ie===L.length-1;if(Oe&&E.parent)break;if(T=Q.lookupNode(T,L[Ie]),ee=yt.join2(ee,L[Ie]),Q.isMountpoint(T)&&(!Oe||Oe&&E.follow_mount)&&(T=T.mounted.root),!Oe||E.follow)for(var it=0;Q.isLink(T.mode);){var at=Q.readlink(ee);ee=Tn.resolve(yt.dirname(ee),at);var Ue=Q.lookupPath(ee,{recurse_count:E.recurse_count});if(T=Ue.node,it++>40)throw new Q.ErrnoError(32)}}return{path:ee,node:T}},getPath:function(f){for(var E;;){if(Q.isRoot(f)){var w=f.mount.mountpoint;return E?w[w.length-1]!=="/"?w+"/"+E:w+E:w}E=E?f.name+"/"+E:f.name,f=f.parent}},hashName:function(f,E){for(var w=0,k=0;k<E.length;k++)w=(w<<5)-w+E.charCodeAt(k)|0;return(f+w>>>0)%Q.nameTable.length},hashAddNode:function(f){var E=Q.hashName(f.parent.id,f.name);f.name_next=Q.nameTable[E],Q.nameTable[E]=f},hashRemoveNode:function(f){var E=Q.hashName(f.parent.id,f.name);if(Q.nameTable[E]===f)Q.nameTable[E]=f.name_next;else for(var w=Q.nameTable[E];w;){if(w.name_next===f){w.name_next=f.name_next;break}w=w.name_next}},lookupNode:function(f,E){var w=Q.mayLookup(f);if(w)throw new Q.ErrnoError(w,f);for(var k=Q.hashName(f.id,E),L=Q.nameTable[k];L;L=L.name_next){var T=L.name;if(L.parent.id===f.id&&T===E)return L}return Q.lookup(f,E)},createNode:function(f,E,w,k){var L=new Q.FSNode(f,E,w,k);return Q.hashAddNode(L),L},destroyNode:function(f){Q.hashRemoveNode(f)},isRoot:function(f){return f===f.parent},isMountpoint:function(f){return!!f.mounted},isFile:function(f){return(f&61440)===32768},isDir:function(f){return(f&61440)===16384},isLink:function(f){return(f&61440)===40960},isChrdev:function(f){return(f&61440)===8192},isBlkdev:function(f){return(f&61440)===24576},isFIFO:function(f){return(f&61440)===4096},isSocket:function(f){return(f&49152)===49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(f){var E=Q.flagModes[f];if(typeof E>"u")throw new Error("Unknown file open mode: "+f);return E},flagsToPermissionString:function(f){var E=["r","w","rw"][f&3];return f&512&&(E+="w"),E},nodePermissions:function(f,E){return Q.ignorePermissions?0:E.includes("r")&&!(f.mode&292)||E.includes("w")&&!(f.mode&146)||E.includes("x")&&!(f.mode&73)?2:0},mayLookup:function(f){var E=Q.nodePermissions(f,"x");return E||(f.node_ops.lookup?0:2)},mayCreate:function(f,E){try{var w=Q.lookupNode(f,E);return 20}catch{}return Q.nodePermissions(f,"wx")},mayDelete:function(f,E,w){var k;try{k=Q.lookupNode(f,E)}catch(T){return T.errno}var L=Q.nodePermissions(f,"wx");if(L)return L;if(w){if(!Q.isDir(k.mode))return 54;if(Q.isRoot(k)||Q.getPath(k)===Q.cwd())return 10}else if(Q.isDir(k.mode))return 31;return 0},mayOpen:function(f,E){return f?Q.isLink(f.mode)?32:Q.isDir(f.mode)&&(Q.flagsToPermissionString(E)!=="r"||E&512)?31:Q.nodePermissions(f,Q.flagsToPermissionString(E)):44},MAX_OPEN_FDS:4096,nextfd:function(f,E){f=f||0,E=E||Q.MAX_OPEN_FDS;for(var w=f;w<=E;w++)if(!Q.streams[w])return w;throw new Q.ErrnoError(33)},getStream:function(f){return Q.streams[f]},createStream:function(f,E,w){Q.FSStream||(Q.FSStream=function(){},Q.FSStream.prototype={object:{get:function(){return this.node},set:function(ee){this.node=ee}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}});var k=new Q.FSStream;for(var L in f)k[L]=f[L];f=k;var T=Q.nextfd(E,w);return f.fd=T,Q.streams[T]=f,f},closeStream:function(f){Q.streams[f]=null},chrdev_stream_ops:{open:function(f){var E=Q.getDevice(f.node.rdev);f.stream_ops=E.stream_ops,f.stream_ops.open&&f.stream_ops.open(f)},llseek:function(){throw new Q.ErrnoError(70)}},major:function(f){return f>>8},minor:function(f){return f&255},makedev:function(f,E){return f<<8|E},registerDevice:function(f,E){Q.devices[f]={stream_ops:E}},getDevice:function(f){return Q.devices[f]},getMounts:function(f){for(var E=[],w=[f];w.length;){var k=w.pop();E.push(k),w.push.apply(w,k.mounts)}return E},syncfs:function(f,E){typeof f=="function"&&(E=f,f=!1),Q.syncFSRequests++,Q.syncFSRequests>1&&P("warning: "+Q.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var w=Q.getMounts(Q.root.mount),k=0;function L(ee){return Q.syncFSRequests--,E(ee)}function T(ee){if(ee)return T.errored?void 0:(T.errored=!0,L(ee));++k>=w.length&&L(null)}w.forEach(function(ee){if(!ee.type.syncfs)return T(null);ee.type.syncfs(ee,f,T)})},mount:function(f,E,w){var k=w==="/",L=!w,T;if(k&&Q.root)throw new Q.ErrnoError(10);if(!k&&!L){var ee=Q.lookupPath(w,{follow_mount:!1});if(w=ee.path,T=ee.node,Q.isMountpoint(T))throw new Q.ErrnoError(10);if(!Q.isDir(T.mode))throw new Q.ErrnoError(54)}var Ie={type:f,opts:E,mountpoint:w,mounts:[]},Oe=f.mount(Ie);return Oe.mount=Ie,Ie.root=Oe,k?Q.root=Oe:T&&(T.mounted=Ie,T.mount&&T.mount.mounts.push(Ie)),Oe},unmount:function(f){var E=Q.lookupPath(f,{follow_mount:!1});if(!Q.isMountpoint(E.node))throw new Q.ErrnoError(28);var w=E.node,k=w.mounted,L=Q.getMounts(k);Object.keys(Q.nameTable).forEach(function(ee){for(var Ie=Q.nameTable[ee];Ie;){var Oe=Ie.name_next;L.includes(Ie.mount)&&Q.destroyNode(Ie),Ie=Oe}}),w.mounted=null;var T=w.mount.mounts.indexOf(k);w.mount.mounts.splice(T,1)},lookup:function(f,E){return f.node_ops.lookup(f,E)},mknod:function(f,E,w){var k=Q.lookupPath(f,{parent:!0}),L=k.node,T=yt.basename(f);if(!T||T==="."||T==="..")throw new Q.ErrnoError(28);var ee=Q.mayCreate(L,T);if(ee)throw new Q.ErrnoError(ee);if(!L.node_ops.mknod)throw new Q.ErrnoError(63);return L.node_ops.mknod(L,T,E,w)},create:function(f,E){return E=E!==void 0?E:438,E&=4095,E|=32768,Q.mknod(f,E,0)},mkdir:function(f,E){return E=E!==void 0?E:511,E&=1023,E|=16384,Q.mknod(f,E,0)},mkdirTree:function(f,E){for(var w=f.split("/"),k="",L=0;L<w.length;++L)if(!!w[L]){k+="/"+w[L];try{Q.mkdir(k,E)}catch(T){if(T.errno!=20)throw T}}},mkdev:function(f,E,w){return typeof w>"u"&&(w=E,E=438),E|=8192,Q.mknod(f,E,w)},symlink:function(f,E){if(!Tn.resolve(f))throw new Q.ErrnoError(44);var w=Q.lookupPath(E,{parent:!0}),k=w.node;if(!k)throw new Q.ErrnoError(44);var L=yt.basename(E),T=Q.mayCreate(k,L);if(T)throw new Q.ErrnoError(T);if(!k.node_ops.symlink)throw new Q.ErrnoError(63);return k.node_ops.symlink(k,L,f)},rename:function(f,E){var w=yt.dirname(f),k=yt.dirname(E),L=yt.basename(f),T=yt.basename(E),ee,Ie,Oe;if(ee=Q.lookupPath(f,{parent:!0}),Ie=ee.node,ee=Q.lookupPath(E,{parent:!0}),Oe=ee.node,!Ie||!Oe)throw new Q.ErrnoError(44);if(Ie.mount!==Oe.mount)throw new Q.ErrnoError(75);var it=Q.lookupNode(Ie,L),at=Tn.relative(f,k);if(at.charAt(0)!==".")throw new Q.ErrnoError(28);if(at=Tn.relative(E,w),at.charAt(0)!==".")throw new Q.ErrnoError(55);var Ue;try{Ue=Q.lookupNode(Oe,T)}catch{}if(it!==Ue){var Ve=Q.isDir(it.mode),nt=Q.mayDelete(Ie,L,Ve);if(nt)throw new Q.ErrnoError(nt);if(nt=Ue?Q.mayDelete(Oe,T,Ve):Q.mayCreate(Oe,T),nt)throw new Q.ErrnoError(nt);if(!Ie.node_ops.rename)throw new Q.ErrnoError(63);if(Q.isMountpoint(it)||Ue&&Q.isMountpoint(Ue))throw new Q.ErrnoError(10);if(Oe!==Ie&&(nt=Q.nodePermissions(Ie,"w"),nt))throw new Q.ErrnoError(nt);try{Q.trackingDelegate.willMovePath&&Q.trackingDelegate.willMovePath(f,E)}catch(wt){P("FS.trackingDelegate['willMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}Q.hashRemoveNode(it);try{Ie.node_ops.rename(it,Oe,T)}catch(wt){throw wt}finally{Q.hashAddNode(it)}try{Q.trackingDelegate.onMovePath&&Q.trackingDelegate.onMovePath(f,E)}catch(wt){P("FS.trackingDelegate['onMovePath']('"+f+"', '"+E+"') threw an exception: "+wt.message)}}},rmdir:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!0);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.rmdir)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.rmdir(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readdir:function(f){var E=Q.lookupPath(f,{follow:!0}),w=E.node;if(!w.node_ops.readdir)throw new Q.ErrnoError(54);return w.node_ops.readdir(w)},unlink:function(f){var E=Q.lookupPath(f,{parent:!0}),w=E.node,k=yt.basename(f),L=Q.lookupNode(w,k),T=Q.mayDelete(w,k,!1);if(T)throw new Q.ErrnoError(T);if(!w.node_ops.unlink)throw new Q.ErrnoError(63);if(Q.isMountpoint(L))throw new Q.ErrnoError(10);try{Q.trackingDelegate.willDeletePath&&Q.trackingDelegate.willDeletePath(f)}catch(ee){P("FS.trackingDelegate['willDeletePath']('"+f+"') threw an exception: "+ee.message)}w.node_ops.unlink(w,k),Q.destroyNode(L);try{Q.trackingDelegate.onDeletePath&&Q.trackingDelegate.onDeletePath(f)}catch(ee){P("FS.trackingDelegate['onDeletePath']('"+f+"') threw an exception: "+ee.message)}},readlink:function(f){var E=Q.lookupPath(f),w=E.node;if(!w)throw new Q.ErrnoError(44);if(!w.node_ops.readlink)throw new Q.ErrnoError(28);return Tn.resolve(Q.getPath(w.parent),w.node_ops.readlink(w))},stat:function(f,E){var w=Q.lookupPath(f,{follow:!E}),k=w.node;if(!k)throw new Q.ErrnoError(44);if(!k.node_ops.getattr)throw new Q.ErrnoError(63);return k.node_ops.getattr(k)},lstat:function(f){return Q.stat(f,!0)},chmod:function(f,E,w){var k;if(typeof f=="string"){var L=Q.lookupPath(f,{follow:!w});k=L.node}else k=f;if(!k.node_ops.setattr)throw new Q.ErrnoError(63);k.node_ops.setattr(k,{mode:E&4095|k.mode&-4096,timestamp:Date.now()})},lchmod:function(f,E){Q.chmod(f,E,!0)},fchmod:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);Q.chmod(w.node,E)},chown:function(f,E,w,k){var L;if(typeof f=="string"){var T=Q.lookupPath(f,{follow:!k});L=T.node}else L=f;if(!L.node_ops.setattr)throw new Q.ErrnoError(63);L.node_ops.setattr(L,{timestamp:Date.now()})},lchown:function(f,E,w){Q.chown(f,E,w,!0)},fchown:function(f,E,w){var k=Q.getStream(f);if(!k)throw new Q.ErrnoError(8);Q.chown(k.node,E,w)},truncate:function(f,E){if(E<0)throw new Q.ErrnoError(28);var w;if(typeof f=="string"){var k=Q.lookupPath(f,{follow:!0});w=k.node}else w=f;if(!w.node_ops.setattr)throw new Q.ErrnoError(63);if(Q.isDir(w.mode))throw new Q.ErrnoError(31);if(!Q.isFile(w.mode))throw new Q.ErrnoError(28);var L=Q.nodePermissions(w,"w");if(L)throw new Q.ErrnoError(L);w.node_ops.setattr(w,{size:E,timestamp:Date.now()})},ftruncate:function(f,E){var w=Q.getStream(f);if(!w)throw new Q.ErrnoError(8);if((w.flags&2097155)===0)throw new Q.ErrnoError(28);Q.truncate(w.node,E)},utime:function(f,E,w){var k=Q.lookupPath(f,{follow:!0}),L=k.node;L.node_ops.setattr(L,{timestamp:Math.max(E,w)})},open:function(f,E,w,k,L){if(f==="")throw new Q.ErrnoError(44);E=typeof E=="string"?Q.modeStringToFlags(E):E,w=typeof w>"u"?438:w,E&64?w=w&4095|32768:w=0;var T;if(typeof f=="object")T=f;else{f=yt.normalize(f);try{var ee=Q.lookupPath(f,{follow:!(E&131072)});T=ee.node}catch{}}var Ie=!1;if(E&64)if(T){if(E&128)throw new Q.ErrnoError(20)}else T=Q.mknod(f,w,0),Ie=!0;if(!T)throw new Q.ErrnoError(44);if(Q.isChrdev(T.mode)&&(E&=-513),E&65536&&!Q.isDir(T.mode))throw new Q.ErrnoError(54);if(!Ie){var Oe=Q.mayOpen(T,E);if(Oe)throw new Q.ErrnoError(Oe)}E&512&&Q.truncate(T,0),E&=-131713;var it=Q.createStream({node:T,path:Q.getPath(T),flags:E,seekable:!0,position:0,stream_ops:T.stream_ops,ungotten:[],error:!1},k,L);it.stream_ops.open&&it.stream_ops.open(it),t.logReadFiles&&!(E&1)&&(Q.readFiles||(Q.readFiles={}),f in Q.readFiles||(Q.readFiles[f]=1,P("FS.trackingDelegate error on read file: "+f)));try{if(Q.trackingDelegate.onOpenFile){var at=0;(E&2097155)!==1&&(at|=Q.tracking.openFlags.READ),(E&2097155)!==0&&(at|=Q.tracking.openFlags.WRITE),Q.trackingDelegate.onOpenFile(f,at)}}catch(Ue){P("FS.trackingDelegate['onOpenFile']('"+f+"', flags) threw an exception: "+Ue.message)}return it},close:function(f){if(Q.isClosed(f))throw new Q.ErrnoError(8);f.getdents&&(f.getdents=null);try{f.stream_ops.close&&f.stream_ops.close(f)}catch(E){throw E}finally{Q.closeStream(f.fd)}f.fd=null},isClosed:function(f){return f.fd===null},llseek:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(!f.seekable||!f.stream_ops.llseek)throw new Q.ErrnoError(70);if(w!=0&&w!=1&&w!=2)throw new Q.ErrnoError(28);return f.position=f.stream_ops.llseek(f,E,w),f.ungotten=[],f.position},read:function(f,E,w,k,L){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===1)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.read)throw new Q.ErrnoError(28);var T=typeof L<"u";if(!T)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var ee=f.stream_ops.read(f,E,w,k,L);return T||(f.position+=ee),ee},write:function(f,E,w,k,L,T){if(k<0||L<0)throw new Q.ErrnoError(28);if(Q.isClosed(f))throw new Q.ErrnoError(8);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(Q.isDir(f.node.mode))throw new Q.ErrnoError(31);if(!f.stream_ops.write)throw new Q.ErrnoError(28);f.seekable&&f.flags&1024&&Q.llseek(f,0,2);var ee=typeof L<"u";if(!ee)L=f.position;else if(!f.seekable)throw new Q.ErrnoError(70);var Ie=f.stream_ops.write(f,E,w,k,L,T);ee||(f.position+=Ie);try{f.path&&Q.trackingDelegate.onWriteToFile&&Q.trackingDelegate.onWriteToFile(f.path)}catch(Oe){P("FS.trackingDelegate['onWriteToFile']('"+f.path+"') threw an exception: "+Oe.message)}return Ie},allocate:function(f,E,w){if(Q.isClosed(f))throw new Q.ErrnoError(8);if(E<0||w<=0)throw new Q.ErrnoError(28);if((f.flags&2097155)===0)throw new Q.ErrnoError(8);if(!Q.isFile(f.node.mode)&&!Q.isDir(f.node.mode))throw new Q.ErrnoError(43);if(!f.stream_ops.allocate)throw new Q.ErrnoError(138);f.stream_ops.allocate(f,E,w)},mmap:function(f,E,w,k,L,T){if((L&2)!==0&&(T&2)===0&&(f.flags&2097155)!==2)throw new Q.ErrnoError(2);if((f.flags&2097155)===1)throw new Q.ErrnoError(2);if(!f.stream_ops.mmap)throw new Q.ErrnoError(43);return f.stream_ops.mmap(f,E,w,k,L,T)},msync:function(f,E,w,k,L){return!f||!f.stream_ops.msync?0:f.stream_ops.msync(f,E,w,k,L)},munmap:function(f){return 0},ioctl:function(f,E,w){if(!f.stream_ops.ioctl)throw new Q.ErrnoError(59);return f.stream_ops.ioctl(f,E,w)},readFile:function(f,E){if(E=E||{},E.flags=E.flags||0,E.encoding=E.encoding||"binary",E.encoding!=="utf8"&&E.encoding!=="binary")throw new Error('Invalid encoding type "'+E.encoding+'"');var w,k=Q.open(f,E.flags),L=Q.stat(f),T=L.size,ee=new Uint8Array(T);return Q.read(k,ee,0,T,0),E.encoding==="utf8"?w=Pe(ee,0):E.encoding==="binary"&&(w=ee),Q.close(k),w},writeFile:function(f,E,w){w=w||{},w.flags=w.flags||577;var k=Q.open(f,w.flags,w.mode);if(typeof E=="string"){var L=new Uint8Array(Ae(E)+1),T=Re(E,L,0,L.length);Q.write(k,L,0,T,void 0,w.canOwn)}else if(ArrayBuffer.isView(E))Q.write(k,E,0,E.byteLength,void 0,w.canOwn);else throw new Error("Unsupported data type");Q.close(k)},cwd:function(){return Q.currentPath},chdir:function(f){var E=Q.lookupPath(f,{follow:!0});if(E.node===null)throw new Q.ErrnoError(44);if(!Q.isDir(E.node.mode))throw new Q.ErrnoError(54);var w=Q.nodePermissions(E.node,"x");if(w)throw new Q.ErrnoError(w);Q.currentPath=E.path},createDefaultDirectories:function(){Q.mkdir("/tmp"),Q.mkdir("/home"),Q.mkdir("/home/web_user")},createDefaultDevices:function(){Q.mkdir("/dev"),Q.registerDevice(Q.makedev(1,3),{read:function(){return 0},write:function(E,w,k,L,T){return L}}),Q.mkdev("/dev/null",Q.makedev(1,3)),ns.register(Q.makedev(5,0),ns.default_tty_ops),ns.register(Q.makedev(6,0),ns.default_tty1_ops),Q.mkdev("/dev/tty",Q.makedev(5,0)),Q.mkdev("/dev/tty1",Q.makedev(6,0));var f=Tl();Q.createDevice("/dev","random",f),Q.createDevice("/dev","urandom",f),Q.mkdir("/dev/shm"),Q.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Q.mkdir("/proc");var f=Q.mkdir("/proc/self");Q.mkdir("/proc/self/fd"),Q.mount({mount:function(){var E=Q.createNode(f,"fd",16895,73);return E.node_ops={lookup:function(w,k){var L=+k,T=Q.getStream(L);if(!T)throw new Q.ErrnoError(8);var ee={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return T.path}}};return ee.parent=ee,ee}},E}},{},"/proc/self/fd")},createStandardStreams:function(){t.stdin?Q.createDevice("/dev","stdin",t.stdin):Q.symlink("/dev/tty","/dev/stdin"),t.stdout?Q.createDevice("/dev","stdout",null,t.stdout):Q.symlink("/dev/tty","/dev/stdout"),t.stderr?Q.createDevice("/dev","stderr",null,t.stderr):Q.symlink("/dev/tty1","/dev/stderr");var f=Q.open("/dev/stdin",0),E=Q.open("/dev/stdout",1),w=Q.open("/dev/stderr",1)},ensureErrnoError:function(){Q.ErrnoError||(Q.ErrnoError=function(E,w){this.node=w,this.setErrno=function(k){this.errno=k},this.setErrno(E),this.message="FS error"},Q.ErrnoError.prototype=new Error,Q.ErrnoError.prototype.constructor=Q.ErrnoError,[44].forEach(function(f){Q.genericErrors[f]=new Q.ErrnoError(f),Q.genericErrors[f].stack="<generic error, no stack>"}))},staticInit:function(){Q.ensureErrnoError(),Q.nameTable=new Array(4096),Q.mount(ut,{},"/"),Q.createDefaultDirectories(),Q.createDefaultDevices(),Q.createSpecialDirectories(),Q.filesystems={MEMFS:ut,NODEFS:At}},init:function(f,E,w){Q.init.initialized=!0,Q.ensureErrnoError(),t.stdin=f||t.stdin,t.stdout=E||t.stdout,t.stderr=w||t.stderr,Q.createStandardStreams()},quit:function(){Q.init.initialized=!1;var f=t._fflush;f&&f(0);for(var E=0;E<Q.streams.length;E++){var w=Q.streams[E];!w||Q.close(w)}},getMode:function(f,E){var w=0;return f&&(w|=365),E&&(w|=146),w},findObject:function(f,E){var w=Q.analyzePath(f,E);return w.exists?w.object:null},analyzePath:function(f,E){try{var w=Q.lookupPath(f,{follow:!E});f=w.path}catch{}var k={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var w=Q.lookupPath(f,{parent:!0});k.parentExists=!0,k.parentPath=w.path,k.parentObject=w.node,k.name=yt.basename(f),w=Q.lookupPath(f,{follow:!E}),k.exists=!0,k.path=w.path,k.object=w.node,k.name=w.node.name,k.isRoot=w.path==="/"}catch(L){k.error=L.errno}return k},createPath:function(f,E,w,k){f=typeof f=="string"?f:Q.getPath(f);for(var L=E.split("/").reverse();L.length;){var T=L.pop();if(!!T){var ee=yt.join2(f,T);try{Q.mkdir(ee)}catch{}f=ee}}return ee},createFile:function(f,E,w,k,L){var T=yt.join2(typeof f=="string"?f:Q.getPath(f),E),ee=Q.getMode(k,L);return Q.create(T,ee)},createDataFile:function(f,E,w,k,L,T){var ee=E?yt.join2(typeof f=="string"?f:Q.getPath(f),E):f,Ie=Q.getMode(k,L),Oe=Q.create(ee,Ie);if(w){if(typeof w=="string"){for(var it=new Array(w.length),at=0,Ue=w.length;at<Ue;++at)it[at]=w.charCodeAt(at);w=it}Q.chmod(Oe,Ie|146);var Ve=Q.open(Oe,577);Q.write(Ve,w,0,w.length,0,T),Q.close(Ve),Q.chmod(Oe,Ie)}return Oe},createDevice:function(f,E,w,k){var L=yt.join2(typeof f=="string"?f:Q.getPath(f),E),T=Q.getMode(!!w,!!k);Q.createDevice.major||(Q.createDevice.major=64);var ee=Q.makedev(Q.createDevice.major++,0);return Q.registerDevice(ee,{open:function(Ie){Ie.seekable=!1},close:function(Ie){k&&k.buffer&&k.buffer.length&&k(10)},read:function(Ie,Oe,it,at,Ue){for(var Ve=0,nt=0;nt<at;nt++){var wt;try{wt=w()}catch{throw new Q.ErrnoError(29)}if(wt===void 0&&Ve===0)throw new Q.ErrnoError(6);if(wt==null)break;Ve++,Oe[it+nt]=wt}return Ve&&(Ie.node.timestamp=Date.now()),Ve},write:function(Ie,Oe,it,at,Ue){for(var Ve=0;Ve<at;Ve++)try{k(Oe[it+Ve])}catch{throw new Q.ErrnoError(29)}return at&&(Ie.node.timestamp=Date.now()),Ve}}),Q.mkdev(L,T,ee)},forceLoadFile:function(f){if(f.isDevice||f.isFolder||f.link||f.contents)return!0;if(typeof XMLHttpRequest<"u")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(d)try{f.contents=wA(d(f.url),!0),f.usedBytes=f.contents.length}catch{throw new Q.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:function(f,E,w,k,L){function T(){this.lengthKnown=!1,this.chunks=[]}if(T.prototype.get=function(Ve){if(!(Ve>this.length-1||Ve<0)){var nt=Ve%this.chunkSize,wt=Ve/this.chunkSize|0;return this.getter(wt)[nt]}},T.prototype.setDataGetter=function(Ve){this.getter=Ve},T.prototype.cacheLength=function(){var Ve=new XMLHttpRequest;if(Ve.open("HEAD",w,!1),Ve.send(null),!(Ve.status>=200&&Ve.status<300||Ve.status===304))throw new Error("Couldn't load "+w+". Status: "+Ve.status);var nt=Number(Ve.getResponseHeader("Content-length")),wt,Ii=(wt=Ve.getResponseHeader("Accept-Ranges"))&&wt==="bytes",un=(wt=Ve.getResponseHeader("Content-Encoding"))&&wt==="gzip",ii=1024*1024;Ii||(ii=nt);var Be=function(On,Ia){if(On>Ia)throw new Error("invalid range ("+On+", "+Ia+") or no bytes requested!");if(Ia>nt-1)throw new Error("only "+nt+" bytes available! programmer error!");var vr=new XMLHttpRequest;if(vr.open("GET",w,!1),nt!==ii&&vr.setRequestHeader("Range","bytes="+On+"-"+Ia),typeof Uint8Array<"u"&&(vr.responseType="arraybuffer"),vr.overrideMimeType&&vr.overrideMimeType("text/plain; charset=x-user-defined"),vr.send(null),!(vr.status>=200&&vr.status<300||vr.status===304))throw new Error("Couldn't load "+w+". Status: "+vr.status);return vr.response!==void 0?new Uint8Array(vr.response||[]):wA(vr.responseText||"",!0)},yi=this;yi.setDataGetter(function(On){var Ia=On*ii,vr=(On+1)*ii-1;if(vr=Math.min(vr,nt-1),typeof yi.chunks[On]>"u"&&(yi.chunks[On]=Be(Ia,vr)),typeof yi.chunks[On]>"u")throw new Error("doXHR failed!");return yi.chunks[On]}),(un||!nt)&&(ii=nt=1,nt=this.getter(0).length,ii=nt,S("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=nt,this._chunkSize=ii,this.lengthKnown=!0},typeof XMLHttpRequest<"u"){if(!u)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var ee=new T;Object.defineProperties(ee,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var Ie={isDevice:!1,contents:ee}}else var Ie={isDevice:!1,url:w};var Oe=Q.createFile(f,E,Ie,k,L);Ie.contents?Oe.contents=Ie.contents:Ie.url&&(Oe.contents=null,Oe.url=Ie.url),Object.defineProperties(Oe,{usedBytes:{get:function(){return this.contents.length}}});var it={},at=Object.keys(Oe.stream_ops);return at.forEach(function(Ue){var Ve=Oe.stream_ops[Ue];it[Ue]=function(){return Q.forceLoadFile(Oe),Ve.apply(null,arguments)}}),it.read=function(Ve,nt,wt,Ii,un){Q.forceLoadFile(Oe);var ii=Ve.node.contents;if(un>=ii.length)return 0;var Be=Math.min(ii.length-un,Ii);if(ii.slice)for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii[un+yi];else for(var yi=0;yi<Be;yi++)nt[wt+yi]=ii.get(un+yi);return Be},Oe.stream_ops=it,Oe},createPreloadedFile:function(f,E,w,k,L,T,ee,Ie,Oe,it){Browser.init();var at=E?Tn.resolve(yt.join2(f,E)):f,Ue="cp "+at;function Ve(nt){function wt(un){it&&it(),Ie||Q.createDataFile(f,E,un,k,L,Oe),T&&T(),IA(Ue)}var Ii=!1;t.preloadPlugins.forEach(function(un){Ii||un.canHandle(at)&&(un.handle(nt,at,wt,function(){ee&&ee(),IA(Ue)}),Ii=!0)}),Ii||wt(nt)}EA(Ue),typeof w=="string"?Browser.asyncLoad(w,function(nt){Ve(nt)},ee):Ve(w)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=Q.indexedDB();try{var L=k.open(Q.DB_NAME(),Q.DB_VERSION)}catch(T){return w(T)}L.onupgradeneeded=function(){S("creating db");var ee=L.result;ee.createObjectStore(Q.DB_STORE_NAME)},L.onsuccess=function(){var ee=L.result,Ie=ee.transaction([Q.DB_STORE_NAME],"readwrite"),Oe=Ie.objectStore(Q.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.put(Q.analyzePath(nt).object.contents,nt);wt.onsuccess=function(){it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w},loadFilesFromDB:function(f,E,w){E=E||function(){},w=w||function(){};var k=Q.indexedDB();try{var L=k.open(Q.DB_NAME(),Q.DB_VERSION)}catch(T){return w(T)}L.onupgradeneeded=w,L.onsuccess=function(){var ee=L.result;try{var Ie=ee.transaction([Q.DB_STORE_NAME],"readonly")}catch(nt){w(nt);return}var Oe=Ie.objectStore(Q.DB_STORE_NAME),it=0,at=0,Ue=f.length;function Ve(){at==0?E():w()}f.forEach(function(nt){var wt=Oe.get(nt);wt.onsuccess=function(){Q.analyzePath(nt).exists&&Q.unlink(nt),Q.createDataFile(yt.dirname(nt),yt.basename(nt),wt.result,!0,!0,!0),it++,it+at==Ue&&Ve()},wt.onerror=function(){at++,it+at==Ue&&Ve()}}),Ie.onerror=w},L.onerror=w}},Nt={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(f,E,w){if(E[0]==="/")return E;var k;if(f===-100)k=Q.cwd();else{var L=Q.getStream(f);if(!L)throw new Q.ErrnoError(8);k=L.path}if(E.length==0){if(!w)throw new Q.ErrnoError(44);return k}return yt.join2(k,E)},doStat:function(f,E,w){try{var k=f(E)}catch(L){if(L&&L.node&&yt.normalize(E)!==yt.normalize(Q.getPath(L.node)))return-54;throw L}return de[w>>2]=k.dev,de[w+4>>2]=0,de[w+8>>2]=k.ino,de[w+12>>2]=k.mode,de[w+16>>2]=k.nlink,de[w+20>>2]=k.uid,de[w+24>>2]=k.gid,de[w+28>>2]=k.rdev,de[w+32>>2]=0,Ri=[k.size>>>0,(Sr=k.size,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+40>>2]=Ri[0],de[w+44>>2]=Ri[1],de[w+48>>2]=4096,de[w+52>>2]=k.blocks,de[w+56>>2]=k.atime.getTime()/1e3|0,de[w+60>>2]=0,de[w+64>>2]=k.mtime.getTime()/1e3|0,de[w+68>>2]=0,de[w+72>>2]=k.ctime.getTime()/1e3|0,de[w+76>>2]=0,Ri=[k.ino>>>0,(Sr=k.ino,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[w+80>>2]=Ri[0],de[w+84>>2]=Ri[1],0},doMsync:function(f,E,w,k,L){var T=G.slice(f,f+w);Q.msync(E,T,L,w,k)},doMkdir:function(f,E){return f=yt.normalize(f),f[f.length-1]==="/"&&(f=f.substr(0,f.length-1)),Q.mkdir(f,E,0),0},doMknod:function(f,E,w){switch(E&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Q.mknod(f,E,w),0},doReadlink:function(f,E,w){if(w<=0)return-28;var k=Q.readlink(f),L=Math.min(w,Ae(k)),T=ie[E+L];return se(k,E,w+1),ie[E+L]=T,L},doAccess:function(f,E){if(E&-8)return-28;var w,k=Q.lookupPath(f,{follow:!0});if(w=k.node,!w)return-44;var L="";return E&4&&(L+="r"),E&2&&(L+="w"),E&1&&(L+="x"),L&&Q.nodePermissions(w,L)?-2:0},doDup:function(f,E,w){var k=Q.getStream(w);return k&&Q.close(k),Q.open(f,E,0,w,w).fd},doReadv:function(f,E,w,k){for(var L=0,T=0;T<w;T++){var ee=de[E+T*8>>2],Ie=de[E+(T*8+4)>>2],Oe=Q.read(f,ie,ee,Ie,k);if(Oe<0)return-1;if(L+=Oe,Oe<Ie)break}return L},doWritev:function(f,E,w,k){for(var L=0,T=0;T<w;T++){var ee=de[E+T*8>>2],Ie=de[E+(T*8+4)>>2],Oe=Q.write(f,ie,ee,Ie,k);if(Oe<0)return-1;L+=Oe}return L},varargs:void 0,get:function(){Nt.varargs+=4;var f=de[Nt.varargs-4>>2];return f},getStr:function(f){var E=De(f);return E},getStreamFromFD:function(f){var E=Q.getStream(f);if(!E)throw new Q.ErrnoError(8);return E},get64:function(f,E){return f}};function pg(f,E){try{return f=Nt.getStr(f),Q.chmod(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),-w.errno}}function Ll(f){return de[Xt()>>2]=f,f}function Qp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 0:{var L=Nt.get();if(L<0)return-28;var T;return T=Q.open(k.path,k.flags,0,L),T.fd}case 1:case 2:return 0;case 3:return k.flags;case 4:{var L=Nt.get();return k.flags|=L,0}case 12:{var L=Nt.get(),ee=0;return fe[L+ee>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Ll(28),-1;default:return-28}}catch(Ie){return(typeof Q>"u"||!(Ie instanceof Q.ErrnoError))&&yr(Ie),-Ie.errno}}function Sp(f,E){try{var w=Nt.getStreamFromFD(f);return Nt.doStat(Q.stat,w.path,E)}catch(k){return(typeof Q>"u"||!(k instanceof Q.ErrnoError))&&yr(k),-k.errno}}function vp(f,E,w){Nt.varargs=w;try{var k=Nt.getStreamFromFD(f);switch(E){case 21509:case 21505:return k.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return k.tty?0:-59;case 21519:{if(!k.tty)return-59;var L=Nt.get();return de[L>>2]=0,0}case 21520:return k.tty?-28:-59;case 21531:{var L=Nt.get();return Q.ioctl(k,E,L)}case 21523:return k.tty?0:-59;case 21524:return k.tty?0:-59;default:yr("bad ioctl syscall "+E)}}catch(T){return(typeof Q>"u"||!(T instanceof Q.ErrnoError))&&yr(T),-T.errno}}function xp(f,E,w){Nt.varargs=w;try{var k=Nt.getStr(f),L=w?Nt.get():0,T=Q.open(k,E,L);return T.fd}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&yr(ee),-ee.errno}}function Pp(f,E){try{return f=Nt.getStr(f),E=Nt.getStr(E),Q.rename(f,E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),-w.errno}}function j(f){try{return f=Nt.getStr(f),Q.rmdir(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&yr(E),-E.errno}}function Et(f,E){try{return f=Nt.getStr(f),Nt.doStat(Q.stat,f,E)}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),-w.errno}}function yA(f){try{return f=Nt.getStr(f),Q.unlink(f),0}catch(E){return(typeof Q>"u"||!(E instanceof Q.ErrnoError))&&yr(E),-E.errno}}function zi(f,E,w){G.copyWithin(f,E,E+w)}function Ol(f){try{return A.grow(f-Ye.byteLength+65535>>>16),Lr(A.buffer),1}catch{}}function ze(f){var E=G.length;f=f>>>0;var w=2147483648;if(f>w)return!1;for(var k=1;k<=4;k*=2){var L=E*(1+.2/k);L=Math.min(L,f+100663296);var T=Math.min(w,oe(Math.max(f,L),65536)),ee=Ol(T);if(ee)return!0}return!1}function fa(f){try{var E=Nt.getStreamFromFD(f);return Q.close(E),0}catch(w){return(typeof Q>"u"||!(w instanceof Q.ErrnoError))&&yr(w),w.errno}}function dg(f,E){try{var w=Nt.getStreamFromFD(f),k=w.tty?2:Q.isDir(w.mode)?3:Q.isLink(w.mode)?7:4;return ie[E>>0]=k,0}catch(L){return(typeof Q>"u"||!(L instanceof Q.ErrnoError))&&yr(L),L.errno}}function OE(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doReadv(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&yr(ee),ee.errno}}function kp(f,E,w,k,L){try{var T=Nt.getStreamFromFD(f),ee=4294967296,Ie=w*ee+(E>>>0),Oe=9007199254740992;return Ie<=-Oe||Ie>=Oe?-61:(Q.llseek(T,Ie,k),Ri=[T.position>>>0,(Sr=T.position,+Math.abs(Sr)>=1?Sr>0?(Math.min(+Math.floor(Sr/4294967296),4294967295)|0)>>>0:~~+Math.ceil((Sr-+(~~Sr>>>0))/4294967296)>>>0:0)],de[L>>2]=Ri[0],de[L+4>>2]=Ri[1],T.getdents&&Ie===0&&k===0&&(T.getdents=null),0)}catch(it){return(typeof Q>"u"||!(it instanceof Q.ErrnoError))&&yr(it),it.errno}}function ME(f,E,w,k){try{var L=Nt.getStreamFromFD(f),T=Nt.doWritev(L,E,w);return de[k>>2]=T,0}catch(ee){return(typeof Q>"u"||!(ee instanceof Q.ErrnoError))&&yr(ee),ee.errno}}function sr(f){_(f)}function Ln(f){var E=Date.now()/1e3|0;return f&&(de[f>>2]=E),E}function Ml(){if(Ml.called)return;Ml.called=!0;var f=new Date().getFullYear(),E=new Date(f,0,1),w=new Date(f,6,1),k=E.getTimezoneOffset(),L=w.getTimezoneOffset(),T=Math.max(k,L);de[eS()>>2]=T*60,de[jE()>>2]=Number(k!=L);function ee(Ue){var Ve=Ue.toTimeString().match(/\(([A-Za-z ]+)\)$/);return Ve?Ve[1]:"GMT"}var Ie=ee(E),Oe=ee(w),it=ye(Ie),at=ye(Oe);L<k?(de[ql()>>2]=it,de[ql()+4>>2]=at):(de[ql()>>2]=at,de[ql()+4>>2]=it)}function Dp(f){Ml();var E=Date.UTC(de[f+20>>2]+1900,de[f+16>>2],de[f+12>>2],de[f+8>>2],de[f+4>>2],de[f>>2],0),w=new Date(E);de[f+24>>2]=w.getUTCDay();var k=Date.UTC(w.getUTCFullYear(),0,1,0,0,0,0),L=(w.getTime()-k)/(1e3*60*60*24)|0;return de[f+28>>2]=L,w.getTime()/1e3|0}var Ks=function(f,E,w,k){f||(f=this),this.parent=f,this.mount=f.mount,this.mounted=null,this.id=Q.nextInode++,this.name=E,this.mode=w,this.node_ops={},this.stream_ops={},this.rdev=k},ha=365,cn=146;if(Object.defineProperties(Ks.prototype,{read:{get:function(){return(this.mode&ha)===ha},set:function(f){f?this.mode|=ha:this.mode&=~ha}},write:{get:function(){return(this.mode&cn)===cn},set:function(f){f?this.mode|=cn:this.mode&=~cn}},isFolder:{get:function(){return Q.isDir(this.mode)}},isDevice:{get:function(){return Q.isChrdev(this.mode)}}}),Q.FSNode=Ks,Q.staticInit(),g){var Ne=o9,Cg=J("path");At.staticInit()}if(g){var Kl=function(f){return function(){try{return f.apply(this,arguments)}catch(E){throw E.code?new Q.ErrnoError(wo[E.code]):E}}},Us=Object.assign({},Q);for(var Ul in ln)Q[Ul]=Kl(ln[Ul])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");function wA(f,E,w){var k=w>0?w:Ae(f)+1,L=new Array(k),T=Re(f,L,0,L.length);return E&&(L.length=T),L}var mg=typeof atob=="function"?atob:function(f){var E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",w="",k,L,T,ee,Ie,Oe,it,at=0;f=f.replace(/[^A-Za-z0-9\+\/\=]/g,"");do ee=E.indexOf(f.charAt(at++)),Ie=E.indexOf(f.charAt(at++)),Oe=E.indexOf(f.charAt(at++)),it=E.indexOf(f.charAt(at++)),k=ee<<2|Ie>>4,L=(Ie&15)<<4|Oe>>2,T=(Oe&3)<<6|it,w=w+String.fromCharCode(k),Oe!==64&&(w=w+String.fromCharCode(L)),it!==64&&(w=w+String.fromCharCode(T));while(at<f.length);return w};function Eg(f){if(typeof g=="boolean"&&g){var E;try{E=Buffer.from(f,"base64")}catch{E=new Buffer(f,"base64")}return new Uint8Array(E.buffer,E.byteOffset,E.byteLength)}try{for(var w=mg(f),k=new Uint8Array(w.length),L=0;L<w.length;++L)k[L]=w.charCodeAt(L);return k}catch{throw new Error("Converting base64 string to bytes failed.")}}function pa(f){if(!!fg(f))return Eg(f.slice(Nl.length))}var da={s:ae,p:pg,e:Qp,k:Sp,o:vp,q:xp,i:Pp,r:j,c:Et,h:yA,l:zi,m:ze,f:fa,j:dg,g:OE,n:kp,d:ME,a:sr,b:Ln,t:Dp},tt=bp(),Bo=t.___wasm_call_ctors=tt.v,BA=t._zip_ext_count_symlinks=tt.w,Rp=t._zip_file_get_external_attributes=tt.x,Ca=t._zipstruct_stat=tt.y,Hl=t._zipstruct_statS=tt.z,jl=t._zipstruct_stat_name=tt.A,bA=t._zipstruct_stat_index=tt.B,ma=t._zipstruct_stat_size=tt.C,Fp=t._zipstruct_stat_mtime=tt.D,KE=t._zipstruct_stat_crc=tt.E,Gl=t._zipstruct_error=tt.F,UE=t._zipstruct_errorS=tt.G,Np=t._zipstruct_error_code_zip=tt.H,Yl=t._zipstruct_stat_comp_size=tt.I,Or=t._zipstruct_stat_comp_method=tt.J,HE=t._zip_close=tt.K,Hs=t._zip_delete=tt.L,js=t._zip_dir_add=tt.M,Ig=t._zip_discard=tt.N,QA=t._zip_error_init_with_code=tt.O,D=t._zip_get_error=tt.P,Y=t._zip_file_get_error=tt.Q,pe=t._zip_error_strerror=tt.R,Le=t._zip_fclose=tt.S,ke=t._zip_file_add=tt.T,Je=t._free=tt.U,pt=t._malloc=tt.V,Xt=t.___errno_location=tt.W,Ea=t._zip_source_error=tt.X,D1=t._zip_source_seek=tt.Y,Gs=t._zip_file_set_external_attributes=tt.Z,yg=t._zip_file_set_mtime=tt._,JQ=t._zip_fopen=tt.$,R1=t._zip_fopen_index=tt.aa,F1=t._zip_fread=tt.ba,WQ=t._zip_get_name=tt.ca,N1=t._zip_get_num_entries=tt.da,T1=t._zip_source_read=tt.ea,zQ=t._zip_name_locate=tt.fa,L1=t._zip_open=tt.ga,O1=t._zip_open_from_source=tt.ha,VQ=t._zip_set_file_compression=tt.ia,M1=t._zip_source_buffer=tt.ja,K1=t._zip_source_buffer_create=tt.ka,XQ=t._zip_source_close=tt.la,U1=t._zip_source_free=tt.ma,H1=t._zip_source_keep=tt.na,j1=t._zip_source_open=tt.oa,G1=t._zip_source_set_mtime=tt.qa,ZQ=t._zip_source_tell=tt.ra,_Q=t._zip_stat=tt.sa,$Q=t._zip_stat_index=tt.ta,ql=t.__get_tzname=tt.ua,jE=t.__get_daylight=tt.va,eS=t.__get_timezone=tt.wa,tS=t.stackSave=tt.xa,rS=t.stackRestore=tt.ya,GE=t.stackAlloc=tt.za;t.cwrap=ce,t.getValue=Z;var Jl;ga=function f(){Jl||wg(),Jl||(ga=f)};function wg(f){if(f=f||a,is>0||(fr(),is>0))return;function E(){Jl||(Jl=!0,t.calledRun=!0,!ne&&(Ei(),i(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),rs()))}t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),E()},1)):E()}if(t.run=wg,t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return wg(),e}}();typeof EB=="object"&&typeof FR=="object"?FR.exports=RR:typeof define=="function"&&define.amd?define([],function(){return RR}):typeof EB=="object"&&(EB.createModule=RR)});var D9=I((rot,k9)=>{function QDe(r,e){for(var t=-1,i=r==null?0:r.length,n=Array(i);++t<i;)n[t]=e(r[t],t,r);return n}k9.exports=QDe});var Ss=I((iot,R9)=>{var SDe=Array.isArray;R9.exports=SDe});var M9=I((not,O9)=>{var F9=Nc(),vDe=D9(),xDe=Ss(),PDe=fC(),kDe=1/0,N9=F9?F9.prototype:void 0,T9=N9?N9.toString:void 0;function L9(r){if(typeof r=="string")return r;if(xDe(r))return vDe(r,L9)+"";if(PDe(r))return T9?T9.call(r):"";var e=r+"";return e=="0"&&1/r==-kDe?"-0":e}O9.exports=L9});var Vf=I((sot,K9)=>{var DDe=M9();function RDe(r){return r==null?"":DDe(r)}K9.exports=RDe});var HR=I((oot,U9)=>{function FDe(r,e,t){var i=-1,n=r.length;e<0&&(e=-e>n?0:n+e),t=t>n?n:t,t<0&&(t+=n),n=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(n);++i<n;)s[i]=r[i+e];return s}U9.exports=FDe});var j9=I((aot,H9)=>{var NDe=HR();function TDe(r,e,t){var i=r.length;return t=t===void 0?i:t,!e&&t>=i?r:NDe(r,e,t)}H9.exports=TDe});var jR=I((Aot,G9)=>{var LDe="\\ud800-\\udfff",ODe="\\u0300-\\u036f",MDe="\\ufe20-\\ufe2f",KDe="\\u20d0-\\u20ff",UDe=ODe+MDe+KDe,HDe="\\ufe0e\\ufe0f",jDe="\\u200d",GDe=RegExp("["+jDe+LDe+UDe+HDe+"]");function YDe(r){return GDe.test(r)}G9.exports=YDe});var q9=I((lot,Y9)=>{function qDe(r){return r.split("")}Y9.exports=qDe});var $9=I((cot,_9)=>{var J9="\\ud800-\\udfff",JDe="\\u0300-\\u036f",WDe="\\ufe20-\\ufe2f",zDe="\\u20d0-\\u20ff",VDe=JDe+WDe+zDe,XDe="\\ufe0e\\ufe0f",ZDe="["+J9+"]",GR="["+VDe+"]",YR="\\ud83c[\\udffb-\\udfff]",_De="(?:"+GR+"|"+YR+")",W9="[^"+J9+"]",z9="(?:\\ud83c[\\udde6-\\uddff]){2}",V9="[\\ud800-\\udbff][\\udc00-\\udfff]",$De="\\u200d",X9=_De+"?",Z9="["+XDe+"]?",eRe="(?:"+$De+"(?:"+[W9,z9,V9].join("|")+")"+Z9+X9+")*",tRe=Z9+X9+eRe,rRe="(?:"+[W9+GR+"?",GR,z9,V9,ZDe].join("|")+")",iRe=RegExp(YR+"(?="+YR+")|"+rRe+tRe,"g");function nRe(r){return r.match(iRe)||[]}_9.exports=nRe});var tV=I((uot,eV)=>{var sRe=q9(),oRe=jR(),aRe=$9();function ARe(r){return oRe(r)?aRe(r):sRe(r)}eV.exports=ARe});var iV=I((got,rV)=>{var lRe=j9(),cRe=jR(),uRe=tV(),gRe=Vf();function fRe(r){return function(e){e=gRe(e);var t=cRe(e)?uRe(e):void 0,i=t?t[0]:e.charAt(0),n=t?lRe(t,1).join(""):e.slice(1);return i[r]()+n}}rV.exports=fRe});var sV=I((fot,nV)=>{var hRe=iV(),pRe=hRe("toUpperCase");nV.exports=pRe});var xB=I((hot,oV)=>{var dRe=Vf(),CRe=sV();function mRe(r){return CRe(dRe(r).toLowerCase())}oV.exports=mRe});var aV=I((pot,PB)=>{function ERe(){var r=0,e=1,t=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,h=12,p=13,d=14,m=15,y=16,B=17,S=0,P=1,F=2,H=3,q=4;function _(A,ne){return 55296<=A.charCodeAt(ne)&&A.charCodeAt(ne)<=56319&&56320<=A.charCodeAt(ne+1)&&A.charCodeAt(ne+1)<=57343}function X(A,ne){ne===void 0&&(ne=0);var ue=A.charCodeAt(ne);if(55296<=ue&&ue<=56319&&ne<A.length-1){var te=ue,O=A.charCodeAt(ne+1);return 56320<=O&&O<=57343?(te-55296)*1024+(O-56320)+65536:te}if(56320<=ue&&ue<=57343&&ne>=1){var te=A.charCodeAt(ne-1),O=ue;return 55296<=te&&te<=56319?(te-55296)*1024+(O-56320)+65536:O}return ue}function W(A,ne,ue){var te=[A].concat(ne).concat([ue]),O=te[te.length-2],N=ue,ce=te.lastIndexOf(d);if(ce>1&&te.slice(1,ce).every(function(De){return De==i})&&[i,p,B].indexOf(A)==-1)return F;var he=te.lastIndexOf(n);if(he>0&&te.slice(1,he).every(function(De){return De==n})&&[h,n].indexOf(O)==-1)return te.filter(function(De){return De==n}).length%2==1?H:q;if(O==r&&N==e)return S;if(O==t||O==r||O==e)return N==d&&ne.every(function(De){return De==i})?F:P;if(N==t||N==r||N==e)return P;if(O==o&&(N==o||N==a||N==c||N==u))return S;if((O==c||O==a)&&(N==a||N==l))return S;if((O==u||O==l)&&N==l)return S;if(N==i||N==m)return S;if(N==s)return S;if(O==h)return S;var Pe=te.indexOf(i)!=-1?te.lastIndexOf(i)-1:te.length-2;return[p,B].indexOf(te[Pe])!=-1&&te.slice(Pe+1,-1).every(function(De){return De==i})&&N==d||O==m&&[y,B].indexOf(N)!=-1?S:ne.indexOf(n)!=-1?F:O==n&&N==n?S:P}this.nextBreak=function(A,ne){if(ne===void 0&&(ne=0),ne<0)return 0;if(ne>=A.length-1)return A.length;for(var ue=Z(X(A,ne)),te=[],O=ne+1;O<A.length;O++)if(!_(A,O-1)){var N=Z(X(A,O));if(W(ue,te,N))return O;te.push(N)}return A.length},this.splitGraphemes=function(A){for(var ne=[],ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ne.push(A.slice(ue,te)),ue=te;return ue<A.length&&ne.push(A.slice(ue)),ne},this.iterateGraphemes=function(A){var ne=0,ue={next:function(){var te,O;return(O=this.nextBreak(A,ne))<A.length?(te=A.slice(ne,O),ne=O,{value:te,done:!1}):ne<A.length?(te=A.slice(ne),ne=A.length,{value:te,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(ue[Symbol.iterator]=function(){return ue}),ue},this.countGraphemes=function(A){for(var ne=0,ue=0,te;(te=this.nextBreak(A,ue))<A.length;)ue=te,ne++;return ue<A.length&&ne++,ne};function Z(A){return 1536<=A&&A<=1541||A==1757||A==1807||A==2274||A==3406||A==69821||70082<=A&&A<=70083||A==72250||72326<=A&&A<=72329||A==73030?h:A==13?r:A==10?e:0<=A&&A<=9||11<=A&&A<=12||14<=A&&A<=31||127<=A&&A<=159||A==173||A==1564||A==6158||A==8203||8206<=A&&A<=8207||A==8232||A==8233||8234<=A&&A<=8238||8288<=A&&A<=8292||A==8293||8294<=A&&A<=8303||55296<=A&&A<=57343||A==65279||65520<=A&&A<=65528||65529<=A&&A<=65531||113824<=A&&A<=113827||119155<=A&&A<=119162||A==917504||A==917505||917506<=A&&A<=917535||917632<=A&&A<=917759||918e3<=A&&A<=921599?t:768<=A&&A<=879||1155<=A&&A<=1159||1160<=A&&A<=1161||1425<=A&&A<=1469||A==1471||1473<=A&&A<=1474||1476<=A&&A<=1477||A==1479||1552<=A&&A<=1562||1611<=A&&A<=1631||A==1648||1750<=A&&A<=1756||1759<=A&&A<=1764||1767<=A&&A<=1768||1770<=A&&A<=1773||A==1809||1840<=A&&A<=1866||1958<=A&&A<=1968||2027<=A&&A<=2035||2070<=A&&A<=2073||2075<=A&&A<=2083||2085<=A&&A<=2087||2089<=A&&A<=2093||2137<=A&&A<=2139||2260<=A&&A<=2273||2275<=A&&A<=2306||A==2362||A==2364||2369<=A&&A<=2376||A==2381||2385<=A&&A<=2391||2402<=A&&A<=2403||A==2433||A==2492||A==2494||2497<=A&&A<=2500||A==2509||A==2519||2530<=A&&A<=2531||2561<=A&&A<=2562||A==2620||2625<=A&&A<=2626||2631<=A&&A<=2632||2635<=A&&A<=2637||A==2641||2672<=A&&A<=2673||A==2677||2689<=A&&A<=2690||A==2748||2753<=A&&A<=2757||2759<=A&&A<=2760||A==2765||2786<=A&&A<=2787||2810<=A&&A<=2815||A==2817||A==2876||A==2878||A==2879||2881<=A&&A<=2884||A==2893||A==2902||A==2903||2914<=A&&A<=2915||A==2946||A==3006||A==3008||A==3021||A==3031||A==3072||3134<=A&&A<=3136||3142<=A&&A<=3144||3146<=A&&A<=3149||3157<=A&&A<=3158||3170<=A&&A<=3171||A==3201||A==3260||A==3263||A==3266||A==3270||3276<=A&&A<=3277||3285<=A&&A<=3286||3298<=A&&A<=3299||3328<=A&&A<=3329||3387<=A&&A<=3388||A==3390||3393<=A&&A<=3396||A==3405||A==3415||3426<=A&&A<=3427||A==3530||A==3535||3538<=A&&A<=3540||A==3542||A==3551||A==3633||3636<=A&&A<=3642||3655<=A&&A<=3662||A==3761||3764<=A&&A<=3769||3771<=A&&A<=3772||3784<=A&&A<=3789||3864<=A&&A<=3865||A==3893||A==3895||A==3897||3953<=A&&A<=3966||3968<=A&&A<=3972||3974<=A&&A<=3975||3981<=A&&A<=3991||3993<=A&&A<=4028||A==4038||4141<=A&&A<=4144||4146<=A&&A<=4151||4153<=A&&A<=4154||4157<=A&&A<=4158||4184<=A&&A<=4185||4190<=A&&A<=4192||4209<=A&&A<=4212||A==4226||4229<=A&&A<=4230||A==4237||A==4253||4957<=A&&A<=4959||5906<=A&&A<=5908||5938<=A&&A<=5940||5970<=A&&A<=5971||6002<=A&&A<=6003||6068<=A&&A<=6069||6071<=A&&A<=6077||A==6086||6089<=A&&A<=6099||A==6109||6155<=A&&A<=6157||6277<=A&&A<=6278||A==6313||6432<=A&&A<=6434||6439<=A&&A<=6440||A==6450||6457<=A&&A<=6459||6679<=A&&A<=6680||A==6683||A==6742||6744<=A&&A<=6750||A==6752||A==6754||6757<=A&&A<=6764||6771<=A&&A<=6780||A==6783||6832<=A&&A<=6845||A==6846||6912<=A&&A<=6915||A==6964||6966<=A&&A<=6970||A==6972||A==6978||7019<=A&&A<=7027||7040<=A&&A<=7041||7074<=A&&A<=7077||7080<=A&&A<=7081||7083<=A&&A<=7085||A==7142||7144<=A&&A<=7145||A==7149||7151<=A&&A<=7153||7212<=A&&A<=7219||7222<=A&&A<=7223||7376<=A&&A<=7378||7380<=A&&A<=7392||7394<=A&&A<=7400||A==7405||A==7412||7416<=A&&A<=7417||7616<=A&&A<=7673||7675<=A&&A<=7679||A==8204||8400<=A&&A<=8412||8413<=A&&A<=8416||A==8417||8418<=A&&A<=8420||8421<=A&&A<=8432||11503<=A&&A<=11505||A==11647||11744<=A&&A<=11775||12330<=A&&A<=12333||12334<=A&&A<=12335||12441<=A&&A<=12442||A==42607||42608<=A&&A<=42610||42612<=A&&A<=42621||42654<=A&&A<=42655||42736<=A&&A<=42737||A==43010||A==43014||A==43019||43045<=A&&A<=43046||43204<=A&&A<=43205||43232<=A&&A<=43249||43302<=A&&A<=43309||43335<=A&&A<=43345||43392<=A&&A<=43394||A==43443||43446<=A&&A<=43449||A==43452||A==43493||43561<=A&&A<=43566||43569<=A&&A<=43570||43573<=A&&A<=43574||A==43587||A==43596||A==43644||A==43696||43698<=A&&A<=43700||43703<=A&&A<=43704||43710<=A&&A<=43711||A==43713||43756<=A&&A<=43757||A==43766||A==44005||A==44008||A==44013||A==64286||65024<=A&&A<=65039||65056<=A&&A<=65071||65438<=A&&A<=65439||A==66045||A==66272||66422<=A&&A<=66426||68097<=A&&A<=68099||68101<=A&&A<=68102||68108<=A&&A<=68111||68152<=A&&A<=68154||A==68159||68325<=A&&A<=68326||A==69633||69688<=A&&A<=69702||69759<=A&&A<=69761||69811<=A&&A<=69814||69817<=A&&A<=69818||69888<=A&&A<=69890||69927<=A&&A<=69931||69933<=A&&A<=69940||A==70003||70016<=A&&A<=70017||70070<=A&&A<=70078||70090<=A&&A<=70092||70191<=A&&A<=70193||A==70196||70198<=A&&A<=70199||A==70206||A==70367||70371<=A&&A<=70378||70400<=A&&A<=70401||A==70460||A==70462||A==70464||A==70487||70502<=A&&A<=70508||70512<=A&&A<=70516||70712<=A&&A<=70719||70722<=A&&A<=70724||A==70726||A==70832||70835<=A&&A<=70840||A==70842||A==70845||70847<=A&&A<=70848||70850<=A&&A<=70851||A==71087||71090<=A&&A<=71093||71100<=A&&A<=71101||71103<=A&&A<=71104||71132<=A&&A<=71133||71219<=A&&A<=71226||A==71229||71231<=A&&A<=71232||A==71339||A==71341||71344<=A&&A<=71349||A==71351||71453<=A&&A<=71455||71458<=A&&A<=71461||71463<=A&&A<=71467||72193<=A&&A<=72198||72201<=A&&A<=72202||72243<=A&&A<=72248||72251<=A&&A<=72254||A==72263||72273<=A&&A<=72278||72281<=A&&A<=72283||72330<=A&&A<=72342||72344<=A&&A<=72345||72752<=A&&A<=72758||72760<=A&&A<=72765||A==72767||72850<=A&&A<=72871||72874<=A&&A<=72880||72882<=A&&A<=72883||72885<=A&&A<=72886||73009<=A&&A<=73014||A==73018||73020<=A&&A<=73021||73023<=A&&A<=73029||A==73031||92912<=A&&A<=92916||92976<=A&&A<=92982||94095<=A&&A<=94098||113821<=A&&A<=113822||A==119141||119143<=A&&A<=119145||119150<=A&&A<=119154||119163<=A&&A<=119170||119173<=A&&A<=119179||119210<=A&&A<=119213||119362<=A&&A<=119364||121344<=A&&A<=121398||121403<=A&&A<=121452||A==121461||A==121476||121499<=A&&A<=121503||121505<=A&&A<=121519||122880<=A&&A<=122886||122888<=A&&A<=122904||122907<=A&&A<=122913||122915<=A&&A<=122916||122918<=A&&A<=122922||125136<=A&&A<=125142||125252<=A&&A<=125258||917536<=A&&A<=917631||917760<=A&&A<=917999?i:127462<=A&&A<=127487?n:A==2307||A==2363||2366<=A&&A<=2368||2377<=A&&A<=2380||2382<=A&&A<=2383||2434<=A&&A<=2435||2495<=A&&A<=2496||2503<=A&&A<=2504||2507<=A&&A<=2508||A==2563||2622<=A&&A<=2624||A==2691||2750<=A&&A<=2752||A==2761||2763<=A&&A<=2764||2818<=A&&A<=2819||A==2880||2887<=A&&A<=2888||2891<=A&&A<=2892||A==3007||3009<=A&&A<=3010||3014<=A&&A<=3016||3018<=A&&A<=3020||3073<=A&&A<=3075||3137<=A&&A<=3140||3202<=A&&A<=3203||A==3262||3264<=A&&A<=3265||3267<=A&&A<=3268||3271<=A&&A<=3272||3274<=A&&A<=3275||3330<=A&&A<=3331||3391<=A&&A<=3392||3398<=A&&A<=3400||3402<=A&&A<=3404||3458<=A&&A<=3459||3536<=A&&A<=3537||3544<=A&&A<=3550||3570<=A&&A<=3571||A==3635||A==3763||3902<=A&&A<=3903||A==3967||A==4145||4155<=A&&A<=4156||4182<=A&&A<=4183||A==4228||A==6070||6078<=A&&A<=6085||6087<=A&&A<=6088||6435<=A&&A<=6438||6441<=A&&A<=6443||6448<=A&&A<=6449||6451<=A&&A<=6456||6681<=A&&A<=6682||A==6741||A==6743||6765<=A&&A<=6770||A==6916||A==6965||A==6971||6973<=A&&A<=6977||6979<=A&&A<=6980||A==7042||A==7073||7078<=A&&A<=7079||A==7082||A==7143||7146<=A&&A<=7148||A==7150||7154<=A&&A<=7155||7204<=A&&A<=7211||7220<=A&&A<=7221||A==7393||7410<=A&&A<=7411||A==7415||43043<=A&&A<=43044||A==43047||43136<=A&&A<=43137||43188<=A&&A<=43203||43346<=A&&A<=43347||A==43395||43444<=A&&A<=43445||43450<=A&&A<=43451||43453<=A&&A<=43456||43567<=A&&A<=43568||43571<=A&&A<=43572||A==43597||A==43755||43758<=A&&A<=43759||A==43765||44003<=A&&A<=44004||44006<=A&&A<=44007||44009<=A&&A<=44010||A==44012||A==69632||A==69634||A==69762||69808<=A&&A<=69810||69815<=A&&A<=69816||A==69932||A==70018||70067<=A&&A<=70069||70079<=A&&A<=70080||70188<=A&&A<=70190||70194<=A&&A<=70195||A==70197||70368<=A&&A<=70370||70402<=A&&A<=70403||A==70463||70465<=A&&A<=70468||70471<=A&&A<=70472||70475<=A&&A<=70477||70498<=A&&A<=70499||70709<=A&&A<=70711||70720<=A&&A<=70721||A==70725||70833<=A&&A<=70834||A==70841||70843<=A&&A<=70844||A==70846||A==70849||71088<=A&&A<=71089||71096<=A&&A<=71099||A==71102||71216<=A&&A<=71218||71227<=A&&A<=71228||A==71230||A==71340||71342<=A&&A<=71343||A==71350||71456<=A&&A<=71457||A==71462||72199<=A&&A<=72200||A==72249||72279<=A&&A<=72280||A==72343||A==72751||A==72766||A==72873||A==72881||A==72884||94033<=A&&A<=94078||A==119142||A==119149?s:4352<=A&&A<=4447||43360<=A&&A<=43388?o:4448<=A&&A<=4519||55216<=A&&A<=55238?a:4520<=A&&A<=4607||55243<=A&&A<=55291?l:A==44032||A==44060||A==44088||A==44116||A==44144||A==44172||A==44200||A==44228||A==44256||A==44284||A==44312||A==44340||A==44368||A==44396||A==44424||A==44452||A==44480||A==44508||A==44536||A==44564||A==44592||A==44620||A==44648||A==44676||A==44704||A==44732||A==44760||A==44788||A==44816||A==44844||A==44872||A==44900||A==44928||A==44956||A==44984||A==45012||A==45040||A==45068||A==45096||A==45124||A==45152||A==45180||A==45208||A==45236||A==45264||A==45292||A==45320||A==45348||A==45376||A==45404||A==45432||A==45460||A==45488||A==45516||A==45544||A==45572||A==45600||A==45628||A==45656||A==45684||A==45712||A==45740||A==45768||A==45796||A==45824||A==45852||A==45880||A==45908||A==45936||A==45964||A==45992||A==46020||A==46048||A==46076||A==46104||A==46132||A==46160||A==46188||A==46216||A==46244||A==46272||A==46300||A==46328||A==46356||A==46384||A==46412||A==46440||A==46468||A==46496||A==46524||A==46552||A==46580||A==46608||A==46636||A==46664||A==46692||A==46720||A==46748||A==46776||A==46804||A==46832||A==46860||A==46888||A==46916||A==46944||A==46972||A==47e3||A==47028||A==47056||A==47084||A==47112||A==47140||A==47168||A==47196||A==47224||A==47252||A==47280||A==47308||A==47336||A==47364||A==47392||A==47420||A==47448||A==47476||A==47504||A==47532||A==47560||A==47588||A==47616||A==47644||A==47672||A==47700||A==47728||A==47756||A==47784||A==47812||A==47840||A==47868||A==47896||A==47924||A==47952||A==47980||A==48008||A==48036||A==48064||A==48092||A==48120||A==48148||A==48176||A==48204||A==48232||A==48260||A==48288||A==48316||A==48344||A==48372||A==48400||A==48428||A==48456||A==48484||A==48512||A==48540||A==48568||A==48596||A==48624||A==48652||A==48680||A==48708||A==48736||A==48764||A==48792||A==48820||A==48848||A==48876||A==48904||A==48932||A==48960||A==48988||A==49016||A==49044||A==49072||A==49100||A==49128||A==49156||A==49184||A==49212||A==49240||A==49268||A==49296||A==49324||A==49352||A==49380||A==49408||A==49436||A==49464||A==49492||A==49520||A==49548||A==49576||A==49604||A==49632||A==49660||A==49688||A==49716||A==49744||A==49772||A==49800||A==49828||A==49856||A==49884||A==49912||A==49940||A==49968||A==49996||A==50024||A==50052||A==50080||A==50108||A==50136||A==50164||A==50192||A==50220||A==50248||A==50276||A==50304||A==50332||A==50360||A==50388||A==50416||A==50444||A==50472||A==50500||A==50528||A==50556||A==50584||A==50612||A==50640||A==50668||A==50696||A==50724||A==50752||A==50780||A==50808||A==50836||A==50864||A==50892||A==50920||A==50948||A==50976||A==51004||A==51032||A==51060||A==51088||A==51116||A==51144||A==51172||A==51200||A==51228||A==51256||A==51284||A==51312||A==51340||A==51368||A==51396||A==51424||A==51452||A==51480||A==51508||A==51536||A==51564||A==51592||A==51620||A==51648||A==51676||A==51704||A==51732||A==51760||A==51788||A==51816||A==51844||A==51872||A==51900||A==51928||A==51956||A==51984||A==52012||A==52040||A==52068||A==52096||A==52124||A==52152||A==52180||A==52208||A==52236||A==52264||A==52292||A==52320||A==52348||A==52376||A==52404||A==52432||A==52460||A==52488||A==52516||A==52544||A==52572||A==52600||A==52628||A==52656||A==52684||A==52712||A==52740||A==52768||A==52796||A==52824||A==52852||A==52880||A==52908||A==52936||A==52964||A==52992||A==53020||A==53048||A==53076||A==53104||A==53132||A==53160||A==53188||A==53216||A==53244||A==53272||A==53300||A==53328||A==53356||A==53384||A==53412||A==53440||A==53468||A==53496||A==53524||A==53552||A==53580||A==53608||A==53636||A==53664||A==53692||A==53720||A==53748||A==53776||A==53804||A==53832||A==53860||A==53888||A==53916||A==53944||A==53972||A==54e3||A==54028||A==54056||A==54084||A==54112||A==54140||A==54168||A==54196||A==54224||A==54252||A==54280||A==54308||A==54336||A==54364||A==54392||A==54420||A==54448||A==54476||A==54504||A==54532||A==54560||A==54588||A==54616||A==54644||A==54672||A==54700||A==54728||A==54756||A==54784||A==54812||A==54840||A==54868||A==54896||A==54924||A==54952||A==54980||A==55008||A==55036||A==55064||A==55092||A==55120||A==55148||A==55176?c:44033<=A&&A<=44059||44061<=A&&A<=44087||44089<=A&&A<=44115||44117<=A&&A<=44143||44145<=A&&A<=44171||44173<=A&&A<=44199||44201<=A&&A<=44227||44229<=A&&A<=44255||44257<=A&&A<=44283||44285<=A&&A<=44311||44313<=A&&A<=44339||44341<=A&&A<=44367||44369<=A&&A<=44395||44397<=A&&A<=44423||44425<=A&&A<=44451||44453<=A&&A<=44479||44481<=A&&A<=44507||44509<=A&&A<=44535||44537<=A&&A<=44563||44565<=A&&A<=44591||44593<=A&&A<=44619||44621<=A&&A<=44647||44649<=A&&A<=44675||44677<=A&&A<=44703||44705<=A&&A<=44731||44733<=A&&A<=44759||44761<=A&&A<=44787||44789<=A&&A<=44815||44817<=A&&A<=44843||44845<=A&&A<=44871||44873<=A&&A<=44899||44901<=A&&A<=44927||44929<=A&&A<=44955||44957<=A&&A<=44983||44985<=A&&A<=45011||45013<=A&&A<=45039||45041<=A&&A<=45067||45069<=A&&A<=45095||45097<=A&&A<=45123||45125<=A&&A<=45151||45153<=A&&A<=45179||45181<=A&&A<=45207||45209<=A&&A<=45235||45237<=A&&A<=45263||45265<=A&&A<=45291||45293<=A&&A<=45319||45321<=A&&A<=45347||45349<=A&&A<=45375||45377<=A&&A<=45403||45405<=A&&A<=45431||45433<=A&&A<=45459||45461<=A&&A<=45487||45489<=A&&A<=45515||45517<=A&&A<=45543||45545<=A&&A<=45571||45573<=A&&A<=45599||45601<=A&&A<=45627||45629<=A&&A<=45655||45657<=A&&A<=45683||45685<=A&&A<=45711||45713<=A&&A<=45739||45741<=A&&A<=45767||45769<=A&&A<=45795||45797<=A&&A<=45823||45825<=A&&A<=45851||45853<=A&&A<=45879||45881<=A&&A<=45907||45909<=A&&A<=45935||45937<=A&&A<=45963||45965<=A&&A<=45991||45993<=A&&A<=46019||46021<=A&&A<=46047||46049<=A&&A<=46075||46077<=A&&A<=46103||46105<=A&&A<=46131||46133<=A&&A<=46159||46161<=A&&A<=46187||46189<=A&&A<=46215||46217<=A&&A<=46243||46245<=A&&A<=46271||46273<=A&&A<=46299||46301<=A&&A<=46327||46329<=A&&A<=46355||46357<=A&&A<=46383||46385<=A&&A<=46411||46413<=A&&A<=46439||46441<=A&&A<=46467||46469<=A&&A<=46495||46497<=A&&A<=46523||46525<=A&&A<=46551||46553<=A&&A<=46579||46581<=A&&A<=46607||46609<=A&&A<=46635||46637<=A&&A<=46663||46665<=A&&A<=46691||46693<=A&&A<=46719||46721<=A&&A<=46747||46749<=A&&A<=46775||46777<=A&&A<=46803||46805<=A&&A<=46831||46833<=A&&A<=46859||46861<=A&&A<=46887||46889<=A&&A<=46915||46917<=A&&A<=46943||46945<=A&&A<=46971||46973<=A&&A<=46999||47001<=A&&A<=47027||47029<=A&&A<=47055||47057<=A&&A<=47083||47085<=A&&A<=47111||47113<=A&&A<=47139||47141<=A&&A<=47167||47169<=A&&A<=47195||47197<=A&&A<=47223||47225<=A&&A<=47251||47253<=A&&A<=47279||47281<=A&&A<=47307||47309<=A&&A<=47335||47337<=A&&A<=47363||47365<=A&&A<=47391||47393<=A&&A<=47419||47421<=A&&A<=47447||47449<=A&&A<=47475||47477<=A&&A<=47503||47505<=A&&A<=47531||47533<=A&&A<=47559||47561<=A&&A<=47587||47589<=A&&A<=47615||47617<=A&&A<=47643||47645<=A&&A<=47671||47673<=A&&A<=47699||47701<=A&&A<=47727||47729<=A&&A<=47755||47757<=A&&A<=47783||47785<=A&&A<=47811||47813<=A&&A<=47839||47841<=A&&A<=47867||47869<=A&&A<=47895||47897<=A&&A<=47923||47925<=A&&A<=47951||47953<=A&&A<=47979||47981<=A&&A<=48007||48009<=A&&A<=48035||48037<=A&&A<=48063||48065<=A&&A<=48091||48093<=A&&A<=48119||48121<=A&&A<=48147||48149<=A&&A<=48175||48177<=A&&A<=48203||48205<=A&&A<=48231||48233<=A&&A<=48259||48261<=A&&A<=48287||48289<=A&&A<=48315||48317<=A&&A<=48343||48345<=A&&A<=48371||48373<=A&&A<=48399||48401<=A&&A<=48427||48429<=A&&A<=48455||48457<=A&&A<=48483||48485<=A&&A<=48511||48513<=A&&A<=48539||48541<=A&&A<=48567||48569<=A&&A<=48595||48597<=A&&A<=48623||48625<=A&&A<=48651||48653<=A&&A<=48679||48681<=A&&A<=48707||48709<=A&&A<=48735||48737<=A&&A<=48763||48765<=A&&A<=48791||48793<=A&&A<=48819||48821<=A&&A<=48847||48849<=A&&A<=48875||48877<=A&&A<=48903||48905<=A&&A<=48931||48933<=A&&A<=48959||48961<=A&&A<=48987||48989<=A&&A<=49015||49017<=A&&A<=49043||49045<=A&&A<=49071||49073<=A&&A<=49099||49101<=A&&A<=49127||49129<=A&&A<=49155||49157<=A&&A<=49183||49185<=A&&A<=49211||49213<=A&&A<=49239||49241<=A&&A<=49267||49269<=A&&A<=49295||49297<=A&&A<=49323||49325<=A&&A<=49351||49353<=A&&A<=49379||49381<=A&&A<=49407||49409<=A&&A<=49435||49437<=A&&A<=49463||49465<=A&&A<=49491||49493<=A&&A<=49519||49521<=A&&A<=49547||49549<=A&&A<=49575||49577<=A&&A<=49603||49605<=A&&A<=49631||49633<=A&&A<=49659||49661<=A&&A<=49687||49689<=A&&A<=49715||49717<=A&&A<=49743||49745<=A&&A<=49771||49773<=A&&A<=49799||49801<=A&&A<=49827||49829<=A&&A<=49855||49857<=A&&A<=49883||49885<=A&&A<=49911||49913<=A&&A<=49939||49941<=A&&A<=49967||49969<=A&&A<=49995||49997<=A&&A<=50023||50025<=A&&A<=50051||50053<=A&&A<=50079||50081<=A&&A<=50107||50109<=A&&A<=50135||50137<=A&&A<=50163||50165<=A&&A<=50191||50193<=A&&A<=50219||50221<=A&&A<=50247||50249<=A&&A<=50275||50277<=A&&A<=50303||50305<=A&&A<=50331||50333<=A&&A<=50359||50361<=A&&A<=50387||50389<=A&&A<=50415||50417<=A&&A<=50443||50445<=A&&A<=50471||50473<=A&&A<=50499||50501<=A&&A<=50527||50529<=A&&A<=50555||50557<=A&&A<=50583||50585<=A&&A<=50611||50613<=A&&A<=50639||50641<=A&&A<=50667||50669<=A&&A<=50695||50697<=A&&A<=50723||50725<=A&&A<=50751||50753<=A&&A<=50779||50781<=A&&A<=50807||50809<=A&&A<=50835||50837<=A&&A<=50863||50865<=A&&A<=50891||50893<=A&&A<=50919||50921<=A&&A<=50947||50949<=A&&A<=50975||50977<=A&&A<=51003||51005<=A&&A<=51031||51033<=A&&A<=51059||51061<=A&&A<=51087||51089<=A&&A<=51115||51117<=A&&A<=51143||51145<=A&&A<=51171||51173<=A&&A<=51199||51201<=A&&A<=51227||51229<=A&&A<=51255||51257<=A&&A<=51283||51285<=A&&A<=51311||51313<=A&&A<=51339||51341<=A&&A<=51367||51369<=A&&A<=51395||51397<=A&&A<=51423||51425<=A&&A<=51451||51453<=A&&A<=51479||51481<=A&&A<=51507||51509<=A&&A<=51535||51537<=A&&A<=51563||51565<=A&&A<=51591||51593<=A&&A<=51619||51621<=A&&A<=51647||51649<=A&&A<=51675||51677<=A&&A<=51703||51705<=A&&A<=51731||51733<=A&&A<=51759||51761<=A&&A<=51787||51789<=A&&A<=51815||51817<=A&&A<=51843||51845<=A&&A<=51871||51873<=A&&A<=51899||51901<=A&&A<=51927||51929<=A&&A<=51955||51957<=A&&A<=51983||51985<=A&&A<=52011||52013<=A&&A<=52039||52041<=A&&A<=52067||52069<=A&&A<=52095||52097<=A&&A<=52123||52125<=A&&A<=52151||52153<=A&&A<=52179||52181<=A&&A<=52207||52209<=A&&A<=52235||52237<=A&&A<=52263||52265<=A&&A<=52291||52293<=A&&A<=52319||52321<=A&&A<=52347||52349<=A&&A<=52375||52377<=A&&A<=52403||52405<=A&&A<=52431||52433<=A&&A<=52459||52461<=A&&A<=52487||52489<=A&&A<=52515||52517<=A&&A<=52543||52545<=A&&A<=52571||52573<=A&&A<=52599||52601<=A&&A<=52627||52629<=A&&A<=52655||52657<=A&&A<=52683||52685<=A&&A<=52711||52713<=A&&A<=52739||52741<=A&&A<=52767||52769<=A&&A<=52795||52797<=A&&A<=52823||52825<=A&&A<=52851||52853<=A&&A<=52879||52881<=A&&A<=52907||52909<=A&&A<=52935||52937<=A&&A<=52963||52965<=A&&A<=52991||52993<=A&&A<=53019||53021<=A&&A<=53047||53049<=A&&A<=53075||53077<=A&&A<=53103||53105<=A&&A<=53131||53133<=A&&A<=53159||53161<=A&&A<=53187||53189<=A&&A<=53215||53217<=A&&A<=53243||53245<=A&&A<=53271||53273<=A&&A<=53299||53301<=A&&A<=53327||53329<=A&&A<=53355||53357<=A&&A<=53383||53385<=A&&A<=53411||53413<=A&&A<=53439||53441<=A&&A<=53467||53469<=A&&A<=53495||53497<=A&&A<=53523||53525<=A&&A<=53551||53553<=A&&A<=53579||53581<=A&&A<=53607||53609<=A&&A<=53635||53637<=A&&A<=53663||53665<=A&&A<=53691||53693<=A&&A<=53719||53721<=A&&A<=53747||53749<=A&&A<=53775||53777<=A&&A<=53803||53805<=A&&A<=53831||53833<=A&&A<=53859||53861<=A&&A<=53887||53889<=A&&A<=53915||53917<=A&&A<=53943||53945<=A&&A<=53971||53973<=A&&A<=53999||54001<=A&&A<=54027||54029<=A&&A<=54055||54057<=A&&A<=54083||54085<=A&&A<=54111||54113<=A&&A<=54139||54141<=A&&A<=54167||54169<=A&&A<=54195||54197<=A&&A<=54223||54225<=A&&A<=54251||54253<=A&&A<=54279||54281<=A&&A<=54307||54309<=A&&A<=54335||54337<=A&&A<=54363||54365<=A&&A<=54391||54393<=A&&A<=54419||54421<=A&&A<=54447||54449<=A&&A<=54475||54477<=A&&A<=54503||54505<=A&&A<=54531||54533<=A&&A<=54559||54561<=A&&A<=54587||54589<=A&&A<=54615||54617<=A&&A<=54643||54645<=A&&A<=54671||54673<=A&&A<=54699||54701<=A&&A<=54727||54729<=A&&A<=54755||54757<=A&&A<=54783||54785<=A&&A<=54811||54813<=A&&A<=54839||54841<=A&&A<=54867||54869<=A&&A<=54895||54897<=A&&A<=54923||54925<=A&&A<=54951||54953<=A&&A<=54979||54981<=A&&A<=55007||55009<=A&&A<=55035||55037<=A&&A<=55063||55065<=A&&A<=55091||55093<=A&&A<=55119||55121<=A&&A<=55147||55149<=A&&A<=55175||55177<=A&&A<=55203?u:A==9757||A==9977||9994<=A&&A<=9997||A==127877||127938<=A&&A<=127940||A==127943||127946<=A&&A<=127948||128066<=A&&A<=128067||128070<=A&&A<=128080||A==128110||128112<=A&&A<=128120||A==128124||128129<=A&&A<=128131||128133<=A&&A<=128135||A==128170||128372<=A&&A<=128373||A==128378||A==128400||128405<=A&&A<=128406||128581<=A&&A<=128583||128587<=A&&A<=128591||A==128675||128692<=A&&A<=128694||A==128704||A==128716||129304<=A&&A<=129308||129310<=A&&A<=129311||A==129318||129328<=A&&A<=129337||129341<=A&&A<=129342||129489<=A&&A<=129501?p:127995<=A&&A<=127999?d:A==8205?m:A==9792||A==9794||9877<=A&&A<=9878||A==9992||A==10084||A==127752||A==127806||A==127859||A==127891||A==127908||A==127912||A==127979||A==127981||A==128139||128187<=A&&A<=128188||A==128295||A==128300||A==128488||A==128640||A==128658?y:128102<=A&&A<=128105?B:g}return this}typeof PB<"u"&&PB.exports&&(PB.exports=ERe)});var lV=I((dot,AV)=>{var IRe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,kB;function yRe(){if(kB)return kB;if(typeof Intl.Segmenter<"u"){let r=new Intl.Segmenter("en",{granularity:"grapheme"});return kB=e=>Array.from(r.segment(e),({segment:t})=>t)}else{let r=aV(),e=new r;return kB=t=>e.splitGraphemes(t)}}AV.exports=(r,e=0,t=r.length)=>{if(e<0||t<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=t-e,n="",s=0,o=0;for(;r.length>0;){let a=r.match(IRe)||[r,r,void 0],l=yRe()(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]<"u"&&(n+=a[2]),r=r.slice(a[0].length)}return n}});var Xf=I((Lot,QV)=>{"use strict";var bV=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);QV.exports=r=>r?Object.keys(r).map(e=>[bV.has(e)?bV.get(e):e,r[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var _f=I((Oot,NV)=>{"use strict";var SV=typeof process=="object"&&process?process:{stdout:null,stderr:null},NRe=J("events"),vV=J("stream"),xV=J("string_decoder").StringDecoder,za=Symbol("EOF"),Va=Symbol("maybeEmitEnd"),tl=Symbol("emittedEnd"),LB=Symbol("emittingEnd"),TC=Symbol("emittedError"),OB=Symbol("closed"),PV=Symbol("read"),MB=Symbol("flush"),kV=Symbol("flushChunk"),Pn=Symbol("encoding"),Xa=Symbol("decoder"),KB=Symbol("flowing"),LC=Symbol("paused"),Zf=Symbol("resume"),di=Symbol("bufferLength"),XR=Symbol("bufferPush"),ZR=Symbol("bufferShift"),Hi=Symbol("objectMode"),ji=Symbol("destroyed"),_R=Symbol("emitData"),DV=Symbol("emitEnd"),$R=Symbol("emitEnd2"),Za=Symbol("async"),OC=r=>Promise.resolve().then(r),RV=global._MP_NO_ITERATOR_SYMBOLS_!=="1",TRe=RV&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),LRe=RV&&Symbol.iterator||Symbol("iterator not implemented"),ORe=r=>r==="end"||r==="finish"||r==="prefinish",MRe=r=>r instanceof ArrayBuffer||typeof r=="object"&&r.constructor&&r.constructor.name==="ArrayBuffer"&&r.byteLength>=0,KRe=r=>!Buffer.isBuffer(r)&&ArrayBuffer.isView(r),UB=class{constructor(e,t,i){this.src=e,this.dest=t,this.opts=i,this.ondrain=()=>e[Zf](),t.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},eF=class extends UB{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,i){super(e,t,i),this.proxyErrors=n=>t.emit("error",n),e.on("error",this.proxyErrors)}};NV.exports=class FV extends vV{constructor(e){super(),this[KB]=!1,this[LC]=!1,this.pipes=[],this.buffer=[],this[Hi]=e&&e.objectMode||!1,this[Hi]?this[Pn]=null:this[Pn]=e&&e.encoding||null,this[Pn]==="buffer"&&(this[Pn]=null),this[Za]=e&&!!e.async||!1,this[Xa]=this[Pn]?new xV(this[Pn]):null,this[za]=!1,this[tl]=!1,this[LB]=!1,this[OB]=!1,this[TC]=null,this.writable=!0,this.readable=!0,this[di]=0,this[ji]=!1}get bufferLength(){return this[di]}get encoding(){return this[Pn]}set encoding(e){if(this[Hi])throw new Error("cannot set encoding in objectMode");if(this[Pn]&&e!==this[Pn]&&(this[Xa]&&this[Xa].lastNeed||this[di]))throw new Error("cannot change encoding");this[Pn]!==e&&(this[Xa]=e?new xV(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[Xa].write(t)))),this[Pn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Hi]}set objectMode(e){this[Hi]=this[Hi]||!!e}get async(){return this[Za]}set async(e){this[Za]=this[Za]||!!e}write(e,t,i){if(this[za])throw new Error("write after end");if(this[ji])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(i=t,t="utf8"),t||(t="utf8");let n=this[Za]?OC:s=>s();return!this[Hi]&&!Buffer.isBuffer(e)&&(KRe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):MRe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Hi]?(this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):e.length?(typeof e=="string"&&!(t===this[Pn]&&!this[Xa].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[Pn]&&(e=this[Xa].write(e)),this.flowing&&this[di]!==0&&this[MB](!0),this.flowing?this.emit("data",e):this[XR](e),this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing):(this[di]!==0&&this.emit("readable"),i&&n(i),this.flowing)}read(e){if(this[ji])return null;if(this[di]===0||e===0||e>this[di])return this[Va](),null;this[Hi]&&(e=null),this.buffer.length>1&&!this[Hi]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[di])]);let t=this[PV](e||null,this.buffer[0]);return this[Va](),t}[PV](e,t){return e===t.length||e===null?this[ZR]():(this.buffer[0]=t.slice(e),t=t.slice(0,e),this[di]-=e),this.emit("data",t),!this.buffer.length&&!this[za]&&this.emit("drain"),t}end(e,t,i){return typeof e=="function"&&(i=e,e=null),typeof t=="function"&&(i=t,t="utf8"),e&&this.write(e,t),i&&this.once("end",i),this[za]=!0,this.writable=!1,(this.flowing||!this[LC])&&this[Va](),this}[Zf](){this[ji]||(this[LC]=!1,this[KB]=!0,this.emit("resume"),this.buffer.length?this[MB]():this[za]?this[Va]():this.emit("drain"))}resume(){return this[Zf]()}pause(){this[KB]=!1,this[LC]=!0}get destroyed(){return this[ji]}get flowing(){return this[KB]}get paused(){return this[LC]}[XR](e){this[Hi]?this[di]+=1:this[di]+=e.length,this.buffer.push(e)}[ZR](){return this.buffer.length&&(this[Hi]?this[di]-=1:this[di]-=this.buffer[0].length),this.buffer.shift()}[MB](e){do;while(this[kV](this[ZR]()));!e&&!this.buffer.length&&!this[za]&&this.emit("drain")}[kV](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[ji])return;let i=this[tl];return t=t||{},e===SV.stdout||e===SV.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,i?t.end&&e.end():(this.pipes.push(t.proxyErrors?new eF(this,e,t):new UB(this,e,t)),this[Za]?OC(()=>this[Zf]()):this[Zf]()),e}unpipe(e){let t=this.pipes.find(i=>i.dest===e);t&&(this.pipes.splice(this.pipes.indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let i=super.on(e,t);return e==="data"&&!this.pipes.length&&!this.flowing?this[Zf]():e==="readable"&&this[di]!==0?super.emit("readable"):ORe(e)&&this[tl]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[TC]&&(this[Za]?OC(()=>t.call(this,this[TC])):t.call(this,this[TC])),i}get emittedEnd(){return this[tl]}[Va](){!this[LB]&&!this[tl]&&!this[ji]&&this.buffer.length===0&&this[za]&&(this[LB]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[OB]&&this.emit("close"),this[LB]=!1)}emit(e,t,...i){if(e!=="error"&&e!=="close"&&e!==ji&&this[ji])return;if(e==="data")return t?this[Za]?OC(()=>this[_R](t)):this[_R](t):!1;if(e==="end")return this[DV]();if(e==="close"){if(this[OB]=!0,!this[tl]&&!this[ji])return;let s=super.emit("close");return this.removeAllListeners("close"),s}else if(e==="error"){this[TC]=t;let s=super.emit("error",t);return this[Va](),s}else if(e==="resume"){let s=super.emit("resume");return this[Va](),s}else if(e==="finish"||e==="prefinish"){let s=super.emit(e);return this.removeAllListeners(e),s}let n=super.emit(e,t,...i);return this[Va](),n}[_R](e){for(let i of this.pipes)i.dest.write(e)===!1&&this.pause();let t=super.emit("data",e);return this[Va](),t}[DV](){this[tl]||(this[tl]=!0,this.readable=!1,this[Za]?OC(()=>this[$R]()):this[$R]())}[$R](){if(this[Xa]){let t=this[Xa].end();if(t){for(let i of this.pipes)i.dest.write(t);super.emit("data",t)}}for(let t of this.pipes)t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Hi]||(e.dataLength=0);let t=this.promise();return this.on("data",i=>{e.push(i),this[Hi]||(e.dataLength+=i.length)}),t.then(()=>e)}concat(){return this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Hi]?Promise.reject(new Error("cannot concat in objectMode")):this[Pn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(ji,()=>t(new Error("stream destroyed"))),this.on("error",i=>t(i)),this.on("end",()=>e())})}[TRe](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[za])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[za]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(ji,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[LRe](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[ji]?(e?this.emit("error",e):this.emit(ji),this):(this[ji]=!0,this.buffer.length=0,this[di]=0,typeof this.close=="function"&&!this[OB]&&this.close(),e?this.emit("error",e):this.emit(ji),this)}static isStream(e){return!!e&&(e instanceof FV||e instanceof vV||e instanceof NRe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var LV=I((Mot,TV)=>{var URe=J("zlib").constants||{ZLIB_VERNUM:4736};TV.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},URe))});var dF=I(Xn=>{"use strict";var sF=J("assert"),rl=J("buffer").Buffer,KV=J("zlib"),jc=Xn.constants=LV(),HRe=_f(),OV=rl.concat,Gc=Symbol("_superWrite"),eh=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},jRe=Symbol("opts"),MC=Symbol("flushFlag"),MV=Symbol("finishFlushFlag"),pF=Symbol("fullFlushFlag"),Ar=Symbol("handle"),HB=Symbol("onError"),$f=Symbol("sawError"),tF=Symbol("level"),rF=Symbol("strategy"),iF=Symbol("ended"),Kot=Symbol("_defaultFullFlush"),jB=class extends HRe{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[$f]=!1,this[iF]=!1,this[jRe]=e,this[MC]=e.flush,this[MV]=e.finishFlush;try{this[Ar]=new KV[t](e)}catch(i){throw new eh(i)}this[HB]=i=>{this[$f]||(this[$f]=!0,this.close(),this.emit("error",i))},this[Ar].on("error",i=>this[HB](new eh(i))),this.once("end",()=>this.close)}close(){this[Ar]&&(this[Ar].close(),this[Ar]=null,this.emit("close"))}reset(){if(!this[$f])return sF(this[Ar],"zlib binding closed"),this[Ar].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[pF]),this.write(Object.assign(rl.alloc(0),{[MC]:e})))}end(e,t,i){return e&&this.write(e,t),this.flush(this[MV]),this[iF]=!0,super.end(null,null,i)}get ended(){return this[iF]}write(e,t,i){if(typeof t=="function"&&(i=t,t="utf8"),typeof e=="string"&&(e=rl.from(e,t)),this[$f])return;sF(this[Ar],"zlib binding closed");let n=this[Ar]._handle,s=n.close;n.close=()=>{};let o=this[Ar].close;this[Ar].close=()=>{},rl.concat=c=>c;let a;try{let c=typeof e[MC]=="number"?e[MC]:this[MC];a=this[Ar]._processChunk(e,c),rl.concat=OV}catch(c){rl.concat=OV,this[HB](new eh(c))}finally{this[Ar]&&(this[Ar]._handle=n,n.close=s,this[Ar].close=o,this[Ar].removeAllListeners("error"))}this[Ar]&&this[Ar].on("error",c=>this[HB](new eh(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[Gc](rl.from(a[0]));for(let c=1;c<a.length;c++)l=this[Gc](a[c])}else l=this[Gc](rl.from(a));return i&&i(),l}[Gc](e){return super.write(e)}},_a=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.Z_NO_FLUSH,e.finishFlush=e.finishFlush||jc.Z_FINISH,super(e,t),this[pF]=jc.Z_FULL_FLUSH,this[tF]=e.level,this[rF]=e.strategy}params(e,t){if(!this[$f]){if(!this[Ar])throw new Error("cannot switch params when binding is closed");if(!this[Ar].params)throw new Error("not supported in this implementation");if(this[tF]!==e||this[rF]!==t){this.flush(jc.Z_SYNC_FLUSH),sF(this[Ar],"zlib binding closed");let i=this[Ar].flush;this[Ar].flush=(n,s)=>{this.flush(n),s()};try{this[Ar].params(e,t)}finally{this[Ar].flush=i}this[Ar]&&(this[tF]=e,this[rF]=t)}}}},oF=class extends _a{constructor(e){super(e,"Deflate")}},aF=class extends _a{constructor(e){super(e,"Inflate")}},nF=Symbol("_portable"),AF=class extends _a{constructor(e){super(e,"Gzip"),this[nF]=e&&!!e.portable}[Gc](e){return this[nF]?(this[nF]=!1,e[9]=255,super[Gc](e)):super[Gc](e)}},lF=class extends _a{constructor(e){super(e,"Gunzip")}},cF=class extends _a{constructor(e){super(e,"DeflateRaw")}},uF=class extends _a{constructor(e){super(e,"InflateRaw")}},gF=class extends _a{constructor(e){super(e,"Unzip")}},GB=class extends jB{constructor(e,t){e=e||{},e.flush=e.flush||jc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||jc.BROTLI_OPERATION_FINISH,super(e,t),this[pF]=jc.BROTLI_OPERATION_FLUSH}},fF=class extends GB{constructor(e){super(e,"BrotliCompress")}},hF=class extends GB{constructor(e){super(e,"BrotliDecompress")}};Xn.Deflate=oF;Xn.Inflate=aF;Xn.Gzip=AF;Xn.Gunzip=lF;Xn.DeflateRaw=cF;Xn.InflateRaw=uF;Xn.Unzip=gF;typeof KV.BrotliCompress=="function"?(Xn.BrotliCompress=fF,Xn.BrotliDecompress=hF):Xn.BrotliCompress=Xn.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var th=I((jot,UV)=>{var GRe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;UV.exports=GRe!=="win32"?r=>r:r=>r&&r.replace(/\\/g,"/")});var YB=I((Yot,HV)=>{"use strict";var YRe=_f(),CF=th(),mF=Symbol("slurp");HV.exports=class extends YRe{constructor(e,t,i){switch(super(),this.pause(),this.extended=t,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=CF(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=CF(e.linkpath),this.uname=e.uname,this.gname=e.gname,t&&this[mF](t),i&&this[mF](i,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:i>=t?super.write(e):super.write(e.slice(0,i))}[mF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=i==="path"||i==="linkpath"?CF(e[i]):e[i])}}});var EF=I(qB=>{"use strict";qB.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);qB.code=new Map(Array.from(qB.name).map(r=>[r[1],r[0]]))});var qV=I((Jot,YV)=>{"use strict";var qRe=(r,e)=>{if(Number.isSafeInteger(r))r<0?WRe(r,e):JRe(r,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},JRe=(r,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=r&255,r=Math.floor(r/256)},WRe=(r,e)=>{e[0]=255;var t=!1;r=r*-1;for(var i=e.length;i>1;i--){var n=r&255;r=Math.floor(r/256),t?e[i-1]=jV(n):n===0?e[i-1]=0:(t=!0,e[i-1]=GV(n))}},zRe=r=>{let e=r[0],t=e===128?XRe(r.slice(1,r.length)):e===255?VRe(r):null;if(t===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(t))throw Error("parsed number outside of javascript safe integer range");return t},VRe=r=>{for(var e=r.length,t=0,i=!1,n=e-1;n>-1;n--){var s=r[n],o;i?o=jV(s):s===0?o=s:(i=!0,o=GV(s)),o!==0&&(t-=o*Math.pow(256,e-n-1))}return t},XRe=r=>{for(var e=r.length,t=0,i=e-1;i>-1;i--){var n=r[i];n!==0&&(t+=n*Math.pow(256,e-i-1))}return t},jV=r=>(255^r)&255,GV=r=>(255^r)+1&255;YV.exports={encode:qRe,parse:zRe}});var ih=I((Wot,WV)=>{"use strict";var IF=EF(),rh=J("path").posix,JV=qV(),yF=Symbol("slurp"),Zn=Symbol("type"),bF=class{constructor(e,t,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Zn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,i,n):e&&this.set(e)}decode(e,t,i,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=Yc(e,t,100),this.mode=il(e,t+100,8),this.uid=il(e,t+108,8),this.gid=il(e,t+116,8),this.size=il(e,t+124,12),this.mtime=wF(e,t+136,12),this.cksum=il(e,t+148,12),this[yF](i),this[yF](n,!0),this[Zn]=Yc(e,t+156,1),this[Zn]===""&&(this[Zn]="0"),this[Zn]==="0"&&this.path.substr(-1)==="/"&&(this[Zn]="5"),this[Zn]==="5"&&(this.size=0),this.linkpath=Yc(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=Yc(e,t+265,32),this.gname=Yc(e,t+297,32),this.devmaj=il(e,t+329,8),this.devmin=il(e,t+337,8),e[t+475]!==0){let o=Yc(e,t+345,155);this.path=o+"/"+this.path}else{let o=Yc(e,t+345,130);o&&(this.path=o+"/"+this.path),this.atime=wF(e,t+476,12),this.ctime=wF(e,t+488,12)}let s=8*32;for(let o=t;o<t+148;o++)s+=e[o];for(let o=t+156;o<t+512;o++)s+=e[o];this.cksumValid=s===this.cksum,this.cksum===null&&s===8*32&&(this.nullBlock=!0)}[yF](e,t){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(t&&i==="path")&&(this[i]=e[i])}encode(e,t){if(e||(e=this.block=Buffer.alloc(512),t=0),t||(t=0),!(e.length>=t+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=ZRe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=qc(e,t,100,s)||this.needPax,this.needPax=nl(e,t+100,8,this.mode)||this.needPax,this.needPax=nl(e,t+108,8,this.uid)||this.needPax,this.needPax=nl(e,t+116,8,this.gid)||this.needPax,this.needPax=nl(e,t+124,12,this.size)||this.needPax,this.needPax=BF(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Zn].charCodeAt(0),this.needPax=qc(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=qc(e,t+265,32,this.uname)||this.needPax,this.needPax=qc(e,t+297,32,this.gname)||this.needPax,this.needPax=nl(e,t+329,8,this.devmaj)||this.needPax,this.needPax=nl(e,t+337,8,this.devmin)||this.needPax,this.needPax=qc(e,t+345,i,o)||this.needPax,e[t+475]!==0?this.needPax=qc(e,t+345,155,o)||this.needPax:(this.needPax=qc(e,t+345,130,o)||this.needPax,this.needPax=BF(e,t+476,12,this.atime)||this.needPax,this.needPax=BF(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l<t+148;l++)a+=e[l];for(let l=t+156;l<t+512;l++)a+=e[l];return this.cksum=a,nl(e,t+148,8,this.cksum),this.cksumValid=!0,this.needPax}set(e){for(let t in e)e[t]!==null&&e[t]!==void 0&&(this[t]=e[t])}get type(){return IF.name.get(this[Zn])||this[Zn]}get typeKey(){return this[Zn]}set type(e){IF.code.has(e)?this[Zn]=IF.code.get(e):this[Zn]=e}},ZRe=(r,e)=>{let i=r,n="",s,o=rh.parse(r).root||".";if(Buffer.byteLength(i)<100)s=[i,n,!1];else{n=rh.dirname(i),i=rh.basename(i);do Buffer.byteLength(i)<=100&&Buffer.byteLength(n)<=e?s=[i,n,!1]:Buffer.byteLength(i)>100&&Buffer.byteLength(n)<=e?s=[i.substr(0,100-1),n,!0]:(i=rh.join(rh.basename(n),i),n=rh.dirname(n));while(n!==o&&!s);s||(s=[r.substr(0,100-1),"",!0])}return s},Yc=(r,e,t)=>r.slice(e,e+t).toString("utf8").replace(/\0.*/,""),wF=(r,e,t)=>_Re(il(r,e,t)),_Re=r=>r===null?null:new Date(r*1e3),il=(r,e,t)=>r[e]&128?JV.parse(r.slice(e,e+t)):eFe(r,e,t),$Re=r=>isNaN(r)?null:r,eFe=(r,e,t)=>$Re(parseInt(r.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),tFe={12:8589934591,8:2097151},nl=(r,e,t,i)=>i===null?!1:i>tFe[t]||i<0?(JV.encode(i,r.slice(e,e+t)),!0):(rFe(r,e,t,i),!1),rFe=(r,e,t,i)=>r.write(iFe(i,t),e,t,"ascii"),iFe=(r,e)=>nFe(Math.floor(r).toString(8),e),nFe=(r,e)=>(r.length===e-1?r:new Array(e-r.length-1).join("0")+r+" ")+"\0",BF=(r,e,t,i)=>i===null?!1:nl(r,e,t,i.getTime()/1e3),sFe=new Array(156).join("\0"),qc=(r,e,t,i)=>i===null?!1:(r.write(i+sFe,e,t,"utf8"),i.length!==Buffer.byteLength(i)||i.length>t);WV.exports=bF});var JB=I((zot,zV)=>{"use strict";var oFe=ih(),aFe=J("path"),KC=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),i=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new oFe({path:("PaxHeader/"+aFe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let s=t+512;s<n.length;s++)n[s]=0;return n}encodeBody(){return this.encodeField("path")+this.encodeField("ctime")+this.encodeField("atime")+this.encodeField("dev")+this.encodeField("ino")+this.encodeField("nlink")+this.encodeField("charset")+this.encodeField("comment")+this.encodeField("gid")+this.encodeField("gname")+this.encodeField("linkpath")+this.encodeField("mtime")+this.encodeField("size")+this.encodeField("uid")+this.encodeField("uname")}encodeField(e){if(this[e]===null||this[e]===void 0)return"";let t=this[e]instanceof Date?this[e].getTime()/1e3:this[e],i=" "+(e==="dev"||e==="ino"||e==="nlink"?"SCHILY.":"")+e+"="+t+` -`,n=Buffer.byteLength(i),s=Math.floor(Math.log(n)/Math.log(10))+1;return n+s>=Math.pow(10,s)&&(s+=1),s+n+i}};KC.parse=(r,e,t)=>new KC(AFe(lFe(r),e),t);var AFe=(r,e)=>e?Object.keys(r).reduce((t,i)=>(t[i]=r[i],t),e):r,lFe=r=>r.replace(/\n$/,"").split(` -`).reduce(cFe,Object.create(null)),cFe=(r,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return r;e=e.substr((t+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return r;let s=i.join("=");return r[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,r};zV.exports=KC});var nh=I((Vot,VV)=>{VV.exports=r=>{let e=r.length-1,t=-1;for(;e>-1&&r.charAt(e)==="/";)t=e,e--;return t===-1?r:r.slice(0,t)}});var WB=I((Xot,XV)=>{"use strict";XV.exports=r=>class extends r{warn(e,t,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=t instanceof Error&&t.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(t instanceof Error&&(i=Object.assign(t,i),t=t.message),this.emit("warn",i.tarCode,t,i)):t instanceof Error?this.emit("error",Object.assign(t,i)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),i))}}});var SF=I((_ot,ZV)=>{"use strict";var zB=["|","<",">","?",":"],QF=zB.map(r=>String.fromCharCode(61440+r.charCodeAt(0))),uFe=new Map(zB.map((r,e)=>[r,QF[e]])),gFe=new Map(QF.map((r,e)=>[r,zB[e]]));ZV.exports={encode:r=>zB.reduce((e,t)=>e.split(t).join(uFe.get(t)),r),decode:r=>QF.reduce((e,t)=>e.split(t).join(gFe.get(t)),r)}});var vF=I(($ot,$V)=>{var{isAbsolute:fFe,parse:_V}=J("path").win32;$V.exports=r=>{let e="",t=_V(r);for(;fFe(r)||t.root;){let i=r.charAt(0)==="/"&&r.slice(0,4)!=="//?/"?"/":t.root;r=r.substr(i.length),e+=i,t=_V(r)}return[e,r]}});var t7=I((eat,e7)=>{"use strict";e7.exports=(r,e,t)=>(r&=4095,t&&(r=(r|384)&-19),e&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r)});var OF=I((iat,p7)=>{"use strict";var A7=_f(),l7=JB(),c7=ih(),Xo=J("fs"),r7=J("path"),Vo=th(),hFe=nh(),u7=(r,e)=>e?(r=Vo(r).replace(/^\.(\/|$)/,""),hFe(e)+"/"+r):Vo(r),pFe=16*1024*1024,i7=Symbol("process"),n7=Symbol("file"),s7=Symbol("directory"),PF=Symbol("symlink"),o7=Symbol("hardlink"),UC=Symbol("header"),VB=Symbol("read"),kF=Symbol("lstat"),XB=Symbol("onlstat"),DF=Symbol("onread"),RF=Symbol("onreadlink"),FF=Symbol("openfile"),NF=Symbol("onopenfile"),sl=Symbol("close"),ZB=Symbol("mode"),TF=Symbol("awaitDrain"),xF=Symbol("ondrain"),Zo=Symbol("prefix"),a7=Symbol("hadError"),g7=WB(),dFe=SF(),f7=vF(),h7=t7(),_B=g7(class extends A7{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=Vo(e),this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||pFe,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=Vo(t.cwd||process.cwd()),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,this.prefix=t.prefix?Vo(t.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=dFe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=Vo(t.absolute||r7.resolve(this.cwd,e)),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[XB](this.statCache.get(this.absolute)):this[kF]()}emit(e,...t){return e==="error"&&(this[a7]=!0),super.emit(e,...t)}[kF](){Xo.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[XB](t)})}[XB](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=mFe(e),this.emit("stat",e),this[i7]()}[i7](){switch(this.type){case"File":return this[n7]();case"Directory":return this[s7]();case"SymbolicLink":return this[PF]();default:return this.end()}}[ZB](e){return h7(e,this.type==="Directory",this.portable)}[Zo](e){return u7(e,this.prefix)}[UC](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this[ZB](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[s7](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[UC](),this.end()}[PF](){Xo.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[RF](t)})}[RF](e){this.linkpath=Vo(e),this[UC](),this.end()}[o7](e){this.type="Link",this.linkpath=Vo(r7.relative(this.cwd,e)),this.stat.size=0,this[UC](),this.end()}[n7](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[o7](t)}this.linkCache.set(e,this.absolute)}if(this[UC](),this.stat.size===0)return this.end();this[FF]()}[FF](){Xo.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[NF](t)})}[NF](e){if(this.fd=e,this[a7])return this[sl]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let t=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(t),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[VB]()}[VB](){let{fd:e,buf:t,offset:i,length:n,pos:s}=this;Xo.read(e,t,i,n,s,(o,a)=>{if(o)return this[sl](()=>this.emit("error",o));this[DF](a)})}[sl](e){Xo.close(this.fd,e)}[DF](e){if(e<=0&&this.remain>0){let n=new Error("encountered unexpected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e>this.remain){let n=new Error("did not encounter expected EOF");return n.path=this.absolute,n.syscall="read",n.code="EOF",this[sl](()=>this.emit("error",n))}if(e===this.remain)for(let n=e;n<this.length&&e<this.blockRemain;n++)this.buf[n+this.offset]=0,e++,this.remain++;let t=this.offset===0&&e===this.buf.length?this.buf:this.buf.slice(this.offset,this.offset+e);this.write(t)?this[xF]():this[TF](()=>this[xF]())}[TF](e){this.once("drain",e)}write(e){if(this.blockRemain<e.length){let t=new Error("writing more data than expected");return t.path=this.absolute,this.emit("error",t)}return this.remain-=e.length,this.blockRemain-=e.length,this.pos+=e.length,this.offset+=e.length,super.write(e)}[xF](){if(!this.remain)return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),this[sl](e=>e?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[VB]()}}),LF=class extends _B{[kF](){this[XB](Xo.lstatSync(this.absolute))}[PF](){this[RF](Xo.readlinkSync(this.absolute))}[FF](){this[NF](Xo.openSync(this.absolute,"r"))}[VB](){let e=!0;try{let{fd:t,buf:i,offset:n,length:s,pos:o}=this,a=Xo.readSync(t,i,n,s,o);this[DF](a),e=!1}finally{if(e)try{this[sl](()=>{})}catch{}}}[TF](e){e()}[sl](e){Xo.closeSync(this.fd),e()}},CFe=g7(class extends A7{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=t.prefix||null,this.path=Vo(e.path),this.mode=this[ZB](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=Vo(e.linkpath),typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let i=!1;if(!this.preservePaths){let[n,s]=f7(this.path);n&&(this.path=s,i=n)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new c7({path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new l7({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[Zo](this.path),linkpath:this.type==="Link"?this[Zo](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[Zo](e){return u7(e,this.prefix)}[ZB](e){return h7(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});_B.Sync=LF;_B.Tar=CFe;var mFe=r=>r.isFile()?"File":r.isDirectory()?"Directory":r.isSymbolicLink()?"SymbolicLink":"Unsupported";p7.exports=_B});var a0=I((sat,w7)=>{"use strict";var s0=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},EFe=_f(),IFe=dF(),yFe=YB(),JF=OF(),wFe=JF.Sync,BFe=JF.Tar,bFe=JI(),d7=Buffer.alloc(1024),t0=Symbol("onStat"),$B=Symbol("ended"),_o=Symbol("queue"),sh=Symbol("current"),Jc=Symbol("process"),e0=Symbol("processing"),C7=Symbol("processJob"),$o=Symbol("jobs"),MF=Symbol("jobDone"),r0=Symbol("addFSEntry"),m7=Symbol("addTarEntry"),jF=Symbol("stat"),GF=Symbol("readdir"),i0=Symbol("onreaddir"),n0=Symbol("pipe"),E7=Symbol("entry"),KF=Symbol("entryOpt"),YF=Symbol("writeEntryClass"),y7=Symbol("write"),UF=Symbol("ondrain"),o0=J("fs"),I7=J("path"),QFe=WB(),HF=th(),WF=QFe(class extends EFe{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=HF(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[YF]=JF,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new IFe.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[UF]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[UF]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[_o]=new bFe,this[$o]=0,this.jobs=+e.jobs||4,this[e0]=!1,this[$B]=!1}[y7](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[$B]=!0,this[Jc](),this}write(e){if(this[$B])throw new Error("write after end");return e instanceof yFe?this[m7](e):this[r0](e),this.flowing}[m7](e){let t=HF(I7.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let i=new s0(e.path,t,!1);i.entry=new BFe(e,this[KF](i)),i.entry.on("end",n=>this[MF](i)),this[$o]+=1,this[_o].push(i)}this[Jc]()}[r0](e){let t=HF(I7.resolve(this.cwd,e));this[_o].push(new s0(e,t)),this[Jc]()}[jF](e){e.pending=!0,this[$o]+=1;let t=this.follow?"stat":"lstat";o0[t](e.absolute,(i,n)=>{e.pending=!1,this[$o]-=1,i?this.emit("error",i):this[t0](e,n)})}[t0](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[Jc]()}[GF](e){e.pending=!0,this[$o]+=1,o0.readdir(e.absolute,(t,i)=>{if(e.pending=!1,this[$o]-=1,t)return this.emit("error",t);this[i0](e,i)})}[i0](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[Jc]()}[Jc](){if(!this[e0]){this[e0]=!0;for(let e=this[_o].head;e!==null&&this[$o]<this.jobs;e=e.next)if(this[C7](e.value),e.value.ignore){let t=e.next;this[_o].removeNode(e),e.next=t}this[e0]=!1,this[$B]&&!this[_o].length&&this[$o]===0&&(this.zip?this.zip.end(d7):(super.write(d7),super.end()))}}get[sh](){return this[_o]&&this[_o].head&&this[_o].head.value}[MF](e){this[_o].shift(),this[$o]-=1,this[Jc]()}[C7](e){if(!e.pending){if(e.entry){e===this[sh]&&!e.piped&&this[n0](e);return}if(e.stat||(this.statCache.has(e.absolute)?this[t0](e,this.statCache.get(e.absolute)):this[jF](e)),!!e.stat&&!e.ignore&&!(!this.noDirRecurse&&e.stat.isDirectory()&&!e.readdir&&(this.readdirCache.has(e.absolute)?this[i0](e,this.readdirCache.get(e.absolute)):this[GF](e),!e.readdir))){if(e.entry=this[E7](e),!e.entry){e.ignore=!0;return}e===this[sh]&&!e.piped&&this[n0](e)}}}[KF](e){return{onwarn:(t,i,n)=>this.warn(t,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[E7](e){this[$o]+=1;try{return new this[YF](e.path,this[KF](e)).on("end",()=>this[MF](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[UF](){this[sh]&&this[sh].entry&&this[sh].entry.resume()}[n0](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)});let t=e.entry,i=this.zip;i?t.on("data",n=>{i.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),qF=class extends WF{constructor(e){super(e),this[YF]=wFe}pause(){}resume(){}[jF](e){let t=this.follow?"statSync":"lstatSync";this[t0](e,o0[t](e.absolute))}[GF](e,t){this[i0](e,o0.readdirSync(e.absolute))}[n0](e){let t=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[r0](o+n)}),i?t.on("data",n=>{i.write(n)}):t.on("data",n=>{super[y7](n)})}};WF.Sync=qF;w7.exports=WF});var fh=I(jC=>{"use strict";var SFe=_f(),vFe=J("events").EventEmitter,kn=J("fs"),XF=kn.writev;if(!XF){let r=process.binding("fs"),e=r.FSReqWrap||r.FSReqCallback;XF=(t,i,n,s)=>{let o=(l,c)=>s(l,c,i),a=new e;a.oncomplete=o,r.writeBuffers(t,i,n,a)}}var uh=Symbol("_autoClose"),Ao=Symbol("_close"),HC=Symbol("_ended"),er=Symbol("_fd"),B7=Symbol("_finished"),al=Symbol("_flags"),zF=Symbol("_flush"),ZF=Symbol("_handleChunk"),_F=Symbol("_makeBuf"),g0=Symbol("_mode"),A0=Symbol("_needDrain"),lh=Symbol("_onerror"),gh=Symbol("_onopen"),VF=Symbol("_onread"),ah=Symbol("_onwrite"),Al=Symbol("_open"),$a=Symbol("_path"),Wc=Symbol("_pos"),ea=Symbol("_queue"),Ah=Symbol("_read"),b7=Symbol("_readSize"),ol=Symbol("_reading"),l0=Symbol("_remain"),Q7=Symbol("_size"),c0=Symbol("_write"),oh=Symbol("_writing"),u0=Symbol("_defaultFlag"),ch=Symbol("_errored"),f0=class extends SFe{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[ch]=!1,this[er]=typeof t.fd=="number"?t.fd:null,this[$a]=e,this[b7]=t.readSize||16*1024*1024,this[ol]=!1,this[Q7]=typeof t.size=="number"?t.size:1/0,this[l0]=this[Q7],this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[er]=="number"?this[Ah]():this[Al]()}get fd(){return this[er]}get path(){return this[$a]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Al](){kn.open(this[$a],"r",(e,t)=>this[gh](e,t))}[gh](e,t){e?this[lh](e):(this[er]=t,this.emit("open",t),this[Ah]())}[_F](){return Buffer.allocUnsafe(Math.min(this[b7],this[l0]))}[Ah](){if(!this[ol]){this[ol]=!0;let e=this[_F]();if(e.length===0)return process.nextTick(()=>this[VF](null,0,e));kn.read(this[er],e,0,e.length,null,(t,i,n)=>this[VF](t,i,n))}}[VF](e,t,i){this[ol]=!1,e?this[lh](e):this[ZF](t,i)&&this[Ah]()}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[lh](e){this[ol]=!0,this[Ao](),this.emit("error",e)}[ZF](e,t){let i=!1;return this[l0]-=e,e>0&&(i=super.write(e<t.length?t.slice(0,e):t)),(e===0||this[l0]<=0)&&(i=!1,this[Ao](),super.end()),i}emit(e,t){switch(e){case"prefinish":case"finish":break;case"drain":typeof this[er]=="number"&&this[Ah]();break;case"error":return this[ch]?void 0:(this[ch]=!0,super.emit(e,t));default:return super.emit(e,t)}}},$F=class extends f0{[Al](){let e=!0;try{this[gh](null,kn.openSync(this[$a],"r")),e=!1}finally{e&&this[Ao]()}}[Ah](){let e=!0;try{if(!this[ol]){this[ol]=!0;do{let t=this[_F](),i=t.length===0?0:kn.readSync(this[er],t,0,t.length,null);if(!this[ZF](i,t))break}while(!0);this[ol]=!1}e=!1}finally{e&&this[Ao]()}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}},h0=class extends vFe{constructor(e,t){t=t||{},super(t),this.readable=!1,this.writable=!0,this[ch]=!1,this[oh]=!1,this[HC]=!1,this[A0]=!1,this[ea]=[],this[$a]=e,this[er]=typeof t.fd=="number"?t.fd:null,this[g0]=t.mode===void 0?438:t.mode,this[Wc]=typeof t.start=="number"?t.start:null,this[uh]=typeof t.autoClose=="boolean"?t.autoClose:!0;let i=this[Wc]!==null?"r+":"w";this[u0]=t.flags===void 0,this[al]=this[u0]?i:t.flags,this[er]===null&&this[Al]()}emit(e,t){if(e==="error"){if(this[ch])return;this[ch]=!0}return super.emit(e,t)}get fd(){return this[er]}get path(){return this[$a]}[lh](e){this[Ao](),this[oh]=!0,this.emit("error",e)}[Al](){kn.open(this[$a],this[al],this[g0],(e,t)=>this[gh](e,t))}[gh](e,t){this[u0]&&this[al]==="r+"&&e&&e.code==="ENOENT"?(this[al]="w",this[Al]()):e?this[lh](e):(this[er]=t,this.emit("open",t),this[zF]())}end(e,t){return e&&this.write(e,t),this[HC]=!0,!this[oh]&&!this[ea].length&&typeof this[er]=="number"&&this[ah](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[HC]?(this.emit("error",new Error("write() after end()")),!1):this[er]===null||this[oh]||this[ea].length?(this[ea].push(e),this[A0]=!0,!1):(this[oh]=!0,this[c0](e),!0)}[c0](e){kn.write(this[er],e,0,e.length,this[Wc],(t,i)=>this[ah](t,i))}[ah](e,t){e?this[lh](e):(this[Wc]!==null&&(this[Wc]+=t),this[ea].length?this[zF]():(this[oh]=!1,this[HC]&&!this[B7]?(this[B7]=!0,this[Ao](),this.emit("finish")):this[A0]&&(this[A0]=!1,this.emit("drain"))))}[zF](){if(this[ea].length===0)this[HC]&&this[ah](null,0);else if(this[ea].length===1)this[c0](this[ea].pop());else{let e=this[ea];this[ea]=[],XF(this[er],e,this[Wc],(t,i)=>this[ah](t,i))}}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},eN=class extends h0{[Al](){let e;if(this[u0]&&this[al]==="r+")try{e=kn.openSync(this[$a],this[al],this[g0])}catch(t){if(t.code==="ENOENT")return this[al]="w",this[Al]();throw t}else e=kn.openSync(this[$a],this[al],this[g0]);this[gh](null,e)}[Ao](){if(this[uh]&&typeof this[er]=="number"){let e=this[er];this[er]=null,kn.closeSync(e),this.emit("close")}}[c0](e){let t=!0;try{this[ah](null,kn.writeSync(this[er],e,0,e.length,this[Wc])),t=!1}finally{if(t)try{this[Ao]()}catch{}}}};jC.ReadStream=f0;jC.ReadStreamSync=$F;jC.WriteStream=h0;jC.WriteStreamSync=eN});var y0=I((Aat,R7)=>{"use strict";var xFe=WB(),PFe=ih(),kFe=J("events"),DFe=JI(),RFe=1024*1024,FFe=YB(),S7=JB(),NFe=dF(),tN=Buffer.from([31,139]),vs=Symbol("state"),zc=Symbol("writeEntry"),eA=Symbol("readEntry"),rN=Symbol("nextEntry"),v7=Symbol("processEntry"),xs=Symbol("extendedHeader"),GC=Symbol("globalExtendedHeader"),ll=Symbol("meta"),x7=Symbol("emitMeta"),Cr=Symbol("buffer"),tA=Symbol("queue"),Vc=Symbol("ended"),P7=Symbol("emittedEnd"),Xc=Symbol("emit"),Dn=Symbol("unzip"),p0=Symbol("consumeChunk"),d0=Symbol("consumeChunkSub"),iN=Symbol("consumeBody"),k7=Symbol("consumeMeta"),D7=Symbol("consumeHeader"),C0=Symbol("consuming"),nN=Symbol("bufferConcat"),sN=Symbol("maybeEnd"),YC=Symbol("writing"),cl=Symbol("aborted"),m0=Symbol("onDone"),Zc=Symbol("sawValidEntry"),E0=Symbol("sawNullBlock"),I0=Symbol("sawEOF"),TFe=r=>!0;R7.exports=xFe(class extends kFe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Zc]=null,this.on(m0,t=>{(this[vs]==="begin"||this[Zc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(m0,e.ondone):this.on(m0,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||RFe,this.filter=typeof e.filter=="function"?e.filter:TFe,this.writable=!0,this.readable=!1,this[tA]=new DFe,this[Cr]=null,this[eA]=null,this[zc]=null,this[vs]="begin",this[ll]="",this[xs]=null,this[GC]=null,this[Vc]=!1,this[Dn]=null,this[cl]=!1,this[E0]=!1,this[I0]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[D7](e,t){this[Zc]===null&&(this[Zc]=!1);let i;try{i=new PFe(e,t,this[xs],this[GC])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[E0]?(this[I0]=!0,this[vs]==="begin"&&(this[vs]="header"),this[Xc]("eof")):(this[E0]=!0,this[Xc]("nullBlock"));else if(this[E0]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[zc]=new FFe(i,this[xs],this[GC]);if(!this[Zc])if(s.remain){let o=()=>{s.invalid||(this[Zc]=!0)};s.on("end",o)}else this[Zc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[Xc]("ignoredEntry",s),this[vs]="ignore",s.resume()):s.size>0&&(this[ll]="",s.on("data",o=>this[ll]+=o),this[vs]="meta"):(this[xs]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[Xc]("ignoredEntry",s),this[vs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[vs]="body":(this[vs]="header",s.end()),this[eA]?this[tA].push(s):(this[tA].push(s),this[rN]())))}}}[v7](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[eA]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[rN]()),t=!1)):(this[eA]=null,t=!1),t}[rN](){do;while(this[v7](this[tA].shift()));if(!this[tA].length){let e=this[eA];!e||e.flowing||e.size===e.remain?this[YC]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[iN](e,t){let i=this[zc],n=i.blockRemain,s=n>=e.length&&t===0?e:e.slice(t,t+n);return i.write(s),i.blockRemain||(this[vs]="header",this[zc]=null,i.end()),s.length}[k7](e,t){let i=this[zc],n=this[iN](e,t);return this[zc]||this[x7](i),n}[Xc](e,t,i){!this[tA].length&&!this[eA]?this.emit(e,t,i):this[tA].push([e,t,i])}[x7](e){switch(this[Xc]("meta",this[ll]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[xs]=S7.parse(this[ll],this[xs],!1);break;case"GlobalExtendedHeader":this[GC]=S7.parse(this[ll],this[GC],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[xs]=this[xs]||Object.create(null),this[xs].path=this[ll].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[xs]=this[xs]||Object.create(null),this[xs].linkpath=this[ll].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[cl]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[cl])return;if(this[Dn]===null&&e){if(this[Cr]&&(e=Buffer.concat([this[Cr],e]),this[Cr]=null),e.length<tN.length)return this[Cr]=e,!0;for(let i=0;this[Dn]===null&&i<tN.length;i++)e[i]!==tN[i]&&(this[Dn]=!1);if(this[Dn]===null){let i=this[Vc];this[Vc]=!1,this[Dn]=new NFe.Unzip,this[Dn].on("data",s=>this[p0](s)),this[Dn].on("error",s=>this.abort(s)),this[Dn].on("end",s=>{this[Vc]=!0,this[p0]()}),this[YC]=!0;let n=this[Dn][i?"end":"write"](e);return this[YC]=!1,n}}this[YC]=!0,this[Dn]?this[Dn].write(e):this[p0](e),this[YC]=!1;let t=this[tA].length?!1:this[eA]?this[eA].flowing:!0;return!t&&!this[tA].length&&this[eA].once("drain",i=>this.emit("drain")),t}[nN](e){e&&!this[cl]&&(this[Cr]=this[Cr]?Buffer.concat([this[Cr],e]):e)}[sN](){if(this[Vc]&&!this[P7]&&!this[cl]&&!this[C0]){this[P7]=!0;let e=this[zc];if(e&&e.blockRemain){let t=this[Cr]?this[Cr].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[Cr]&&e.write(this[Cr]),e.end()}this[Xc](m0)}}[p0](e){if(this[C0])this[nN](e);else if(!e&&!this[Cr])this[sN]();else{if(this[C0]=!0,this[Cr]){this[nN](e);let t=this[Cr];this[Cr]=null,this[d0](t)}else this[d0](e);for(;this[Cr]&&this[Cr].length>=512&&!this[cl]&&!this[I0];){let t=this[Cr];this[Cr]=null,this[d0](t)}this[C0]=!1}(!this[Cr]||this[Vc])&&this[sN]()}[d0](e){let t=0,i=e.length;for(;t+512<=i&&!this[cl]&&!this[I0];)switch(this[vs]){case"begin":case"header":this[D7](e,t),t+=512;break;case"ignore":case"body":t+=this[iN](e,t);break;case"meta":t+=this[k7](e,t);break;default:throw new Error("invalid state: "+this[vs])}t<i&&(this[Cr]?this[Cr]=Buffer.concat([e.slice(t),this[Cr]]):this[Cr]=e.slice(t))}end(e){this[cl]||(this[Dn]?this[Dn].end(e):(this[Vc]=!0,this.write(e)))}})});var w0=I((lat,L7)=>{"use strict";var LFe=Xf(),N7=y0(),hh=J("fs"),OFe=fh(),F7=J("path"),oN=nh();L7.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=LFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&KFe(i,e),i.noResume||MFe(i),i.file&&i.sync?UFe(i):i.file?HFe(i,t):T7(i)};var MFe=r=>{let e=r.onentry;r.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},KFe=(r,e)=>{let t=new Map(e.map(s=>[oN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||F7.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(F7.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(oN(s)):s=>n(oN(s))},UFe=r=>{let e=T7(r),t=r.file,i=!0,n;try{let s=hh.statSync(t),o=r.maxReadSize||16*1024*1024;if(s.size<o)e.end(hh.readFileSync(t));else{let a=0,l=Buffer.allocUnsafe(o);for(n=hh.openSync(t,"r");a<s.size;){let c=hh.readSync(n,l,0,o,a);a+=c,e.write(l.slice(0,c))}e.end()}i=!1}finally{if(i&&n)try{hh.closeSync(n)}catch{}}},HFe=(r,e)=>{let t=new N7(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("end",o),hh.stat(n,(l,c)=>{if(l)a(l);else{let u=new OFe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},T7=r=>new N7(r)});var j7=I((cat,H7)=>{"use strict";var jFe=Xf(),B0=a0(),O7=fh(),M7=w0(),K7=J("path");H7.exports=(r,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(r)&&(e=r,r={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=jFe(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?GFe(i,e):i.file?YFe(i,e,t):i.sync?qFe(i,e):JFe(i,e)};var GFe=(r,e)=>{let t=new B0.Sync(r),i=new O7.WriteStreamSync(r.file,{mode:r.mode||438});t.pipe(i),U7(t,e)},YFe=(r,e,t)=>{let i=new B0(r),n=new O7.WriteStream(r.file,{mode:r.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return aN(i,e),t?s.then(t,t):s},U7=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?M7({file:K7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},aN=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return M7({file:K7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>aN(r,e));r.add(t)}r.end()},qFe=(r,e)=>{let t=new B0.Sync(r);return U7(t,e),t},JFe=(r,e)=>{let t=new B0(r);return aN(t,e),t}});var AN=I((uat,V7)=>{"use strict";var WFe=Xf(),G7=a0(),_n=J("fs"),Y7=fh(),q7=w0(),J7=J("path"),W7=ih();V7.exports=(r,e,t)=>{let i=WFe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?zFe(i,e):XFe(i,e,t)};var zFe=(r,e)=>{let t=new G7.Sync(r),i=!0,n,s;try{try{n=_n.openSync(r.file,"r+")}catch(l){if(l.code==="ENOENT")n=_n.openSync(r.file,"w+");else throw l}let o=_n.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;s<o.size;s+=512){for(let u=0,g=0;u<512;u+=g){if(g=_n.readSync(n,a,u,a.length-u,s+u),s===0&&a[0]===31&&a[1]===139)throw new Error("cannot append to compressed archives");if(!g)break e}let l=new W7(a);if(!l.cksumValid)break;let c=512*Math.ceil(l.size/512);if(s+c+512>o.size)break;s+=c,r.mtimeCache&&r.mtimeCache.set(l.path,l.mtime)}i=!1,VFe(r,t,s,n,e)}finally{if(i)try{_n.closeSync(n)}catch{}}},VFe=(r,e,t,i,n)=>{let s=new Y7.WriteStreamSync(r.file,{fd:i,start:t});e.pipe(s),ZFe(e,n)},XFe=(r,e,t)=>{e=Array.from(e);let i=new G7(r),n=(o,a,l)=>{let c=(d,m)=>{d?_n.close(o,y=>l(d)):l(null,m)},u=0;if(a===0)return c(null,0);let g=0,h=Buffer.alloc(512),p=(d,m)=>{if(d)return c(d);if(g+=m,g<512&&m)return _n.read(o,h,g,h.length-g,u+g,p);if(u===0&&h[0]===31&&h[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let y=new W7(h);if(!y.cksumValid)return c(null,u);let B=512*Math.ceil(y.size/512);if(u+B+512>a||(u+=B+512,u>=a))return c(null,u);r.mtimeCache&&r.mtimeCache.set(y.path,y.mtime),g=0,_n.read(o,h,0,512,u,p)};_n.read(o,h,0,512,u,p)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",_n.open(r.file,l,c);if(u)return a(u);_n.fstat(g,(h,p)=>{if(h)return _n.close(g,()=>a(h));n(g,p.size,(d,m)=>{if(d)return a(d);let y=new Y7.WriteStream(r.file,{fd:g,start:m});i.pipe(y),y.on("error",a),y.on("close",o),z7(i,e)})})};_n.open(r.file,l,c)});return t?s.then(t,t):s},ZFe=(r,e)=>{e.forEach(t=>{t.charAt(0)==="@"?q7({file:J7.resolve(r.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:i=>r.add(i)}):r.add(t)}),r.end()},z7=(r,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return q7({file:J7.resolve(r.cwd,t.substr(1)),noResume:!0,onentry:i=>r.add(i)}).then(i=>z7(r,e));r.add(t)}r.end()}});var Z7=I((gat,X7)=>{"use strict";var _Fe=Xf(),$Fe=AN();X7.exports=(r,e,t)=>{let i=_Fe(r);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),eNe(i),$Fe(i,e,t)};var eNe=r=>{let e=r.filter;r.mtimeCache||(r.mtimeCache=new Map),r.filter=e?(t,i)=>e(t,i)&&!(r.mtimeCache.get(t)>i.mtime):(t,i)=>!(r.mtimeCache.get(t)>i.mtime)}});var eX=I((fat,$7)=>{var{promisify:_7}=J("util"),ul=J("fs"),tNe=r=>{if(!r)r={mode:511,fs:ul};else if(typeof r=="object")r={mode:511,fs:ul,...r};else if(typeof r=="number")r={mode:r,fs:ul};else if(typeof r=="string")r={mode:parseInt(r,8),fs:ul};else throw new TypeError("invalid options argument");return r.mkdir=r.mkdir||r.fs.mkdir||ul.mkdir,r.mkdirAsync=_7(r.mkdir),r.stat=r.stat||r.fs.stat||ul.stat,r.statAsync=_7(r.stat),r.statSync=r.statSync||r.fs.statSync||ul.statSync,r.mkdirSync=r.mkdirSync||r.fs.mkdirSync||ul.mkdirSync,r};$7.exports=tNe});var rX=I((hat,tX)=>{var rNe=process.platform,{resolve:iNe,parse:nNe}=J("path"),sNe=r=>{if(/\0/.test(r))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:r,code:"ERR_INVALID_ARG_VALUE"});if(r=iNe(r),rNe==="win32"){let e=/[*|"<>?:]/,{root:t}=nNe(r);if(e.test(r.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:r,code:"EINVAL"})}return r};tX.exports=sNe});var aX=I((pat,oX)=>{var{dirname:iX}=J("path"),nX=(r,e,t=void 0)=>t===e?Promise.resolve():r.statAsync(e).then(i=>i.isDirectory()?t:void 0,i=>i.code==="ENOENT"?nX(r,iX(e),e):void 0),sX=(r,e,t=void 0)=>{if(t!==e)try{return r.statSync(e).isDirectory()?t:void 0}catch(i){return i.code==="ENOENT"?sX(r,iX(e),e):void 0}};oX.exports={findMade:nX,findMadeSync:sX}});var uN=I((dat,lX)=>{var{dirname:AX}=J("path"),lN=(r,e,t)=>{e.recursive=!1;let i=AX(r);return i===r?e.mkdirAsync(r,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(r,e).then(()=>t||r,n=>{if(n.code==="ENOENT")return lN(i,e).then(s=>lN(r,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(r).then(s=>{if(s.isDirectory())return t;throw n},()=>{throw n})})},cN=(r,e,t)=>{let i=AX(r);if(e.recursive=!1,i===r)try{return e.mkdirSync(r,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(r,e),t||r}catch(n){if(n.code==="ENOENT")return cN(r,e,cN(i,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(r).isDirectory())throw n}catch{throw n}}};lX.exports={mkdirpManual:lN,mkdirpManualSync:cN}});var gX=I((Cat,uX)=>{var{dirname:cX}=J("path"),{findMade:oNe,findMadeSync:aNe}=aX(),{mkdirpManual:ANe,mkdirpManualSync:lNe}=uN(),cNe=(r,e)=>(e.recursive=!0,cX(r)===r?e.mkdirAsync(r,e):oNe(e,r).then(i=>e.mkdirAsync(r,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return ANe(r,e);throw n}))),uNe=(r,e)=>{if(e.recursive=!0,cX(r)===r)return e.mkdirSync(r,e);let i=aNe(e,r);try{return e.mkdirSync(r,e),i}catch(n){if(n.code==="ENOENT")return lNe(r,e);throw n}};uX.exports={mkdirpNative:cNe,mkdirpNativeSync:uNe}});var dX=I((mat,pX)=>{var fX=J("fs"),gNe=process.version,gN=gNe.replace(/^v/,"").split("."),hX=+gN[0]>10||+gN[0]==10&&+gN[1]>=12,fNe=hX?r=>r.mkdir===fX.mkdir:()=>!1,hNe=hX?r=>r.mkdirSync===fX.mkdirSync:()=>!1;pX.exports={useNative:fNe,useNativeSync:hNe}});var wX=I((Eat,yX)=>{var ph=eX(),dh=rX(),{mkdirpNative:CX,mkdirpNativeSync:mX}=gX(),{mkdirpManual:EX,mkdirpManualSync:IX}=uN(),{useNative:pNe,useNativeSync:dNe}=dX(),Ch=(r,e)=>(r=dh(r),e=ph(e),pNe(e)?CX(r,e):EX(r,e)),CNe=(r,e)=>(r=dh(r),e=ph(e),dNe(e)?mX(r,e):IX(r,e));Ch.sync=CNe;Ch.native=(r,e)=>CX(dh(r),ph(e));Ch.manual=(r,e)=>EX(dh(r),ph(e));Ch.nativeSync=(r,e)=>mX(dh(r),ph(e));Ch.manualSync=(r,e)=>IX(dh(r),ph(e));yX.exports=Ch});var PX=I((Iat,xX)=>{"use strict";var Ps=J("fs"),_c=J("path"),mNe=Ps.lchown?"lchown":"chown",ENe=Ps.lchownSync?"lchownSync":"chownSync",bX=Ps.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),BX=(r,e,t)=>{try{return Ps[ENe](r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},INe=(r,e,t)=>{try{return Ps.chownSync(r,e,t)}catch(i){if(i.code!=="ENOENT")throw i}},yNe=bX?(r,e,t,i)=>n=>{!n||n.code!=="EISDIR"?i(n):Ps.chown(r,e,t,i)}:(r,e,t,i)=>i,fN=bX?(r,e,t)=>{try{return BX(r,e,t)}catch(i){if(i.code!=="EISDIR")throw i;INe(r,e,t)}}:(r,e,t)=>BX(r,e,t),wNe=process.version,QX=(r,e,t)=>Ps.readdir(r,e,t),BNe=(r,e)=>Ps.readdirSync(r,e);/^v4\./.test(wNe)&&(QX=(r,e,t)=>Ps.readdir(r,t));var b0=(r,e,t,i)=>{Ps[mNe](r,e,t,yNe(r,e,t,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},SX=(r,e,t,i,n)=>{if(typeof e=="string")return Ps.lstat(_c.resolve(r,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,SX(r,o,t,i,n)});if(e.isDirectory())hN(_c.resolve(r,e.name),t,i,s=>{if(s)return n(s);let o=_c.resolve(r,e.name);b0(o,t,i,n)});else{let s=_c.resolve(r,e.name);b0(s,t,i,n)}},hN=(r,e,t,i)=>{QX(r,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return b0(r,e,t,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o===0)return b0(r,e,t,i)}};s.forEach(c=>SX(r,c,e,t,l))})},bNe=(r,e,t,i)=>{if(typeof e=="string")try{let n=Ps.lstatSync(_c.resolve(r,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&vX(_c.resolve(r,e.name),t,i),fN(_c.resolve(r,e.name),t,i)},vX=(r,e,t)=>{let i;try{i=BNe(r,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return fN(r,e,t);throw n}return i&&i.length&&i.forEach(n=>bNe(r,n,e,t)),fN(r,e,t)};xX.exports=hN;hN.sync=vX});var FX=I((yat,pN)=>{"use strict";var kX=wX(),ks=J("fs"),Q0=J("path"),DX=PX(),lo=th(),S0=class extends Error{constructor(e,t){super("Cannot extract through symbolic link"),this.path=t,this.symlink=e}get name(){return"SylinkError"}},v0=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'"),this.path=e,this.code=t}get name(){return"CwdError"}},x0=(r,e)=>r.get(lo(e)),qC=(r,e,t)=>r.set(lo(e),t),QNe=(r,e)=>{ks.stat(r,(t,i)=>{(t||!i.isDirectory())&&(t=new v0(r,t&&t.code||"ENOTDIR")),e(t)})};pN.exports=(r,e,t)=>{r=lo(r);let i=e.umask,n=e.mode|448,s=(n&i)!==0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,h=lo(e.cwd),p=(y,B)=>{y?t(y):(qC(g,r,!0),B&&l?DX(B,o,a,S=>p(S)):s?ks.chmod(r,n,t):t())};if(g&&x0(g,r)===!0)return p();if(r===h)return QNe(r,p);if(c)return kX(r,{mode:n}).then(y=>p(null,y),p);let m=lo(Q0.relative(h,r)).split("/");P0(h,m,n,g,u,h,null,p)};var P0=(r,e,t,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=lo(Q0.resolve(r+"/"+l));if(x0(i,c))return P0(c,e,t,i,n,s,o,a);ks.mkdir(c,t,RX(c,e,t,i,n,s,o,a))},RX=(r,e,t,i,n,s,o,a)=>l=>{l?ks.lstat(r,(c,u)=>{if(c)c.path=c.path&&lo(c.path),a(c);else if(u.isDirectory())P0(r,e,t,i,n,s,o,a);else if(n)ks.unlink(r,g=>{if(g)return a(g);ks.mkdir(r,t,RX(r,e,t,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new S0(r,r+"/"+e.join("/")));a(l)}}):(o=o||r,P0(r,e,t,i,n,s,o,a))},SNe=r=>{let e=!1,t="ENOTDIR";try{e=ks.statSync(r).isDirectory()}catch(i){t=i.code}finally{if(!e)throw new v0(r,t)}};pN.exports.sync=(r,e)=>{r=lo(r);let t=e.umask,i=e.mode|448,n=(i&t)!==0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=lo(e.cwd),h=y=>{qC(u,r,!0),y&&a&&DX.sync(y,s,o),n&&ks.chmodSync(r,i)};if(u&&x0(u,r)===!0)return h();if(r===g)return SNe(g),h();if(l)return h(kX.sync(r,i));let d=lo(Q0.relative(g,r)).split("/"),m=null;for(let y=d.shift(),B=g;y&&(B+="/"+y);y=d.shift())if(B=lo(Q0.resolve(B)),!x0(u,B))try{ks.mkdirSync(B,i),m=m||B,qC(u,B,!0)}catch{let P=ks.lstatSync(B);if(P.isDirectory()){qC(u,B,!0);continue}else if(c){ks.unlinkSync(B),ks.mkdirSync(B,i),m=m||B,qC(u,B,!0);continue}else if(P.isSymbolicLink())return new S0(B,B+"/"+d.join("/"))}return h(m)}});var CN=I((wat,NX)=>{var dN=Object.create(null),{hasOwnProperty:vNe}=Object.prototype;NX.exports=r=>(vNe.call(dN,r)||(dN[r]=r.normalize("NFKD")),dN[r])});var MX=I((Bat,OX)=>{var TX=J("assert"),xNe=CN(),PNe=nh(),{join:LX}=J("path"),kNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,DNe=kNe==="win32";OX.exports=()=>{let r=new Map,e=new Map,t=c=>c.split("/").slice(0,-1).reduce((g,h)=>(g.length&&(h=LX(g[g.length-1],h)),g.push(h||"/"),g),[]),i=new Set,n=c=>{let u=e.get(c);if(!u)throw new Error("function does not have any path reservations");return{paths:u.paths.map(g=>r.get(g)),dirs:[...u.dirs].map(g=>r.get(g))}},s=c=>{let{paths:u,dirs:g}=n(c);return u.every(h=>h[0]===c)&&g.every(h=>h[0]instanceof Set&&h[0].has(c))},o=c=>i.has(c)||!s(c)?!1:(i.add(c),c(()=>a(c)),!0),a=c=>{if(!i.has(c))return!1;let{paths:u,dirs:g}=e.get(c),h=new Set;return u.forEach(p=>{let d=r.get(p);TX.equal(d[0],c),d.length===1?r.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),g.forEach(p=>{let d=r.get(p);TX(d[0]instanceof Set),d[0].size===1&&d.length===1?r.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(c)}),i.delete(c),h.forEach(p=>o(p)),!0};return{check:s,reserve:(c,u)=>{c=DNe?["win32 parallelization disabled"]:c.map(h=>xNe(PNe(LX(h))).toLowerCase());let g=new Set(c.map(h=>t(h)).reduce((h,p)=>h.concat(p)));return e.set(u,{dirs:g,paths:c}),c.forEach(h=>{let p=r.get(h);p?p.push(u):r.set(h,[u])}),g.forEach(h=>{let p=r.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(u):p.push(new Set([u])):r.set(h,[new Set([u])])}),o(u)}}}});var HX=I((bat,UX)=>{var RNe=process.platform,FNe=RNe==="win32",NNe=global.__FAKE_TESTING_FS__||J("fs"),{O_CREAT:TNe,O_TRUNC:LNe,O_WRONLY:ONe,UV_FS_O_FILEMAP:KX=0}=NNe.constants,MNe=FNe&&!!KX,KNe=512*1024,UNe=KX|LNe|TNe|ONe;UX.exports=MNe?r=>r<KNe?UNe:"w":()=>"w"});var SN=I((Qat,tZ)=>{"use strict";var HNe=J("assert"),jNe=y0(),Ht=J("fs"),GNe=fh(),rA=J("path"),_X=FX(),jX=SF(),YNe=MX(),qNe=vF(),$n=th(),JNe=nh(),WNe=CN(),GX=Symbol("onEntry"),IN=Symbol("checkFs"),YX=Symbol("checkFs2"),R0=Symbol("pruneCache"),yN=Symbol("isReusable"),Ds=Symbol("makeFs"),wN=Symbol("file"),BN=Symbol("directory"),F0=Symbol("link"),qX=Symbol("symlink"),JX=Symbol("hardlink"),WX=Symbol("unsupported"),zX=Symbol("checkPath"),gl=Symbol("mkdir"),Gi=Symbol("onError"),k0=Symbol("pending"),VX=Symbol("pend"),mh=Symbol("unpend"),mN=Symbol("ended"),EN=Symbol("maybeClose"),bN=Symbol("skip"),JC=Symbol("doChown"),WC=Symbol("uid"),zC=Symbol("gid"),VC=Symbol("checkedCwd"),$X=J("crypto"),eZ=HX(),zNe=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,XC=zNe==="win32",VNe=(r,e)=>{if(!XC)return Ht.unlink(r,e);let t=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.rename(r,t,i=>{if(i)return e(i);Ht.unlink(t,e)})},XNe=r=>{if(!XC)return Ht.unlinkSync(r);let e=r+".DELETE."+$X.randomBytes(16).toString("hex");Ht.renameSync(r,e),Ht.unlinkSync(e)},XX=(r,e,t)=>r===r>>>0?r:e===e>>>0?e:t,ZX=r=>WNe(JNe($n(r))).toLowerCase(),ZNe=(r,e)=>{e=ZX(e);for(let t of r.keys()){let i=ZX(t);(i===e||i.indexOf(e+"/")===0)&&r.delete(t)}},_Ne=r=>{for(let e of r.keys())r.delete(e)},ZC=class extends jNe{constructor(e){if(e||(e={}),e.ondone=t=>{this[mN]=!0,this[EN]()},super(e),this[VC]=!1,this.reservations=YNe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[k0]=0,this[mN]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||XC,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=$n(rA.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[GX](t))}warn(e,t,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,t,i)}[EN](){this[mN]&&this[k0]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[zX](e){if(this.strip){let t=$n(e.path).split("/");if(t.length<this.strip)return!1;if(e.path=t.slice(this.strip).join("/"),e.type==="Link"){let i=$n(e.linkpath).split("/");if(i.length>=this.strip)e.linkpath=i.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let t=$n(e.path),i=t.split("/");if(i.includes("..")||XC&&/^[a-z]:\.\.$/i.test(i[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;let[n,s]=qNe(t);n&&(e.path=s,this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t}))}if(rA.isAbsolute(e.path)?e.absolute=$n(rA.resolve(e.path)):e.absolute=$n(rA.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:$n(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:t}=rA.win32.parse(e.absolute);e.absolute=t+jX.encode(e.absolute.substr(t.length));let{root:i}=rA.win32.parse(e.path);e.path=i+jX.encode(e.path.substr(i.length))}return!0}[GX](e){if(!this[zX](e))return e.resume();switch(HNe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[IN](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[WX](e)}}[Gi](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[mh](),t.resume())}[gl](e,t,i){_X($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t,noChmod:this.noChmod},i)}[JC](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[WC](e){return XX(this.uid,e.uid,this.processUid)}[zC](e){return XX(this.gid,e.gid,this.processGid)}[wN](e,t){let i=e.mode&4095||this.fmode,n=new GNe.WriteStream(e.absolute,{flags:eZ(e.size),mode:i,autoClose:!1});n.on("error",l=>{n.fd&&Ht.close(n.fd,()=>{}),n.write=()=>!0,this[Gi](l,e),t()});let s=1,o=l=>{if(l){n.fd&&Ht.close(n.fd,()=>{}),this[Gi](l,e),t();return}--s===0&&Ht.close(n.fd,c=>{c?this[Gi](c,e):this[mh](),t()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,h=e.mtime;Ht.futimes(u,g,h,p=>p?Ht.utimes(c,g,h,d=>o(d&&p)):o())}if(this[JC](e)){s++;let g=this[WC](e),h=this[zC](e);Ht.fchown(u,g,h,p=>p?Ht.chown(c,g,h,d=>o(d&&p)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>{this[Gi](l,e),t()}),e.pipe(a)),a.pipe(n)}[BN](e,t){let i=e.mode&4095||this.dmode;this[gl](e.absolute,i,n=>{if(n){this[Gi](n,e),t();return}let s=1,o=a=>{--s===0&&(t(),this[mh](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ht.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[JC](e)&&(s++,Ht.chown(e.absolute,this[WC](e),this[zC](e),o)),o()})}[WX](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[qX](e,t){this[F0](e,e.linkpath,"symlink",t)}[JX](e,t){let i=$n(rA.resolve(this.cwd,e.linkpath));this[F0](e,i,"link",t)}[VX](){this[k0]++}[mh](){this[k0]--,this[EN]()}[bN](e){this[mh](),e.resume()}[yN](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&!XC}[IN](e){this[VX]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,i=>this[YX](e,i))}[R0](e){e.type==="SymbolicLink"?_Ne(this.dirCache):e.type!=="Directory"&&ZNe(this.dirCache,e.absolute)}[YX](e,t){this[R0](e);let i=a=>{this[R0](e),t(a)},n=()=>{this[gl](this.cwd,this.dmode,a=>{if(a){this[Gi](a,e),i();return}this[VC]=!0,s()})},s=()=>{if(e.absolute!==this.cwd){let a=$n(rA.dirname(e.absolute));if(a!==this.cwd)return this[gl](a,this.dmode,l=>{if(l){this[Gi](l,e),i();return}o()})}o()},o=()=>{Ht.lstat(e.absolute,(a,l)=>{if(l&&(this.keep||this.newer&&l.mtime>e.mtime)){this[bN](e),i();return}if(a||this[yN](e,l))return this[Ds](null,e,i);if(l.isDirectory()){if(e.type==="Directory"){let c=!this.noChmod&&e.mode&&(l.mode&4095)!==e.mode,u=g=>this[Ds](g,e,i);return c?Ht.chmod(e.absolute,e.mode,u):u()}if(e.absolute!==this.cwd)return Ht.rmdir(e.absolute,c=>this[Ds](c,e,i))}if(e.absolute===this.cwd)return this[Ds](null,e,i);VNe(e.absolute,c=>this[Ds](c,e,i))})};this[VC]?s():n()}[Ds](e,t,i){if(e){this[Gi](e,t),i();return}switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[wN](t,i);case"Link":return this[JX](t,i);case"SymbolicLink":return this[qX](t,i);case"Directory":case"GNUDumpDir":return this[BN](t,i)}}[F0](e,t,i,n){Ht[i](t,e.absolute,s=>{s?this[Gi](s,e):(this[mh](),e.resume()),n()})}},D0=r=>{try{return[null,r()]}catch(e){return[e,null]}},QN=class extends ZC{[Ds](e,t){return super[Ds](e,t,()=>{})}[IN](e){if(this[R0](e),!this[VC]){let s=this[gl](this.cwd,this.dmode);if(s)return this[Gi](s,e);this[VC]=!0}if(e.absolute!==this.cwd){let s=$n(rA.dirname(e.absolute));if(s!==this.cwd){let o=this[gl](s,this.dmode);if(o)return this[Gi](o,e)}}let[t,i]=D0(()=>Ht.lstatSync(e.absolute));if(i&&(this.keep||this.newer&&i.mtime>e.mtime))return this[bN](e);if(t||this[yN](e,i))return this[Ds](null,e);if(i.isDirectory()){if(e.type==="Directory"){let o=!this.noChmod&&e.mode&&(i.mode&4095)!==e.mode,[a]=o?D0(()=>{Ht.chmodSync(e.absolute,e.mode)}):[];return this[Ds](a,e)}let[s]=D0(()=>Ht.rmdirSync(e.absolute));this[Ds](s,e)}let[n]=e.absolute===this.cwd?[]:D0(()=>XNe(e.absolute));this[Ds](n,e)}[wN](e,t){let i=e.mode&4095||this.fmode,n=a=>{let l;try{Ht.closeSync(s)}catch(c){l=c}(a||l)&&this[Gi](a||l,e),t()},s;try{s=Ht.openSync(e.absolute,eZ(e.size),i)}catch(a){return n(a)}let o=this.transform&&this.transform(e)||e;o!==e&&(o.on("error",a=>this[Gi](a,e)),e.pipe(o)),o.on("data",a=>{try{Ht.writeSync(s,a,0,a.length)}catch(l){n(l)}}),o.on("end",a=>{let l=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,u=e.mtime;try{Ht.futimesSync(s,c,u)}catch(g){try{Ht.utimesSync(e.absolute,c,u)}catch{l=g}}}if(this[JC](e)){let c=this[WC](e),u=this[zC](e);try{Ht.fchownSync(s,c,u)}catch(g){try{Ht.chownSync(e.absolute,c,u)}catch{l=l||g}}}n(l)})}[BN](e,t){let i=e.mode&4095||this.dmode,n=this[gl](e.absolute,i);if(n){this[Gi](n,e),t();return}if(e.mtime&&!this.noMtime)try{Ht.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[JC](e))try{Ht.chownSync(e.absolute,this[WC](e),this[zC](e))}catch{}t(),e.resume()}[gl](e,t){try{return _X.sync($n(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(i){return i}}[F0](e,t,i,n){try{Ht[i+"Sync"](t,e.absolute),n(),e.resume()}catch(s){return this[Gi](s,e)}}};ZC.Sync=QN;tZ.exports=ZC});var oZ=I((Sat,sZ)=>{"use strict";var $Ne=Xf(),N0=SN(),iZ=J("fs"),nZ=fh(),rZ=J("path"),vN=nh();sZ.exports=(r,e,t)=>{typeof r=="function"?(t=r,e=null,r={}):Array.isArray(r)&&(e=r,r={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let i=$Ne(r);if(i.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&eTe(i,e),i.file&&i.sync?tTe(i):i.file?rTe(i,t):i.sync?iTe(i):nTe(i)};var eTe=(r,e)=>{let t=new Map(e.map(s=>[vN(s),!0])),i=r.filter,n=(s,o)=>{let a=o||rZ.parse(s).root||".",l=s===a?!1:t.has(s)?t.get(s):n(rZ.dirname(s),a);return t.set(s,l),l};r.filter=i?(s,o)=>i(s,o)&&n(vN(s)):s=>n(vN(s))},tTe=r=>{let e=new N0.Sync(r),t=r.file,i=iZ.statSync(t),n=r.maxReadSize||16*1024*1024;new nZ.ReadStreamSync(t,{readSize:n,size:i.size}).pipe(e)},rTe=(r,e)=>{let t=new N0(r),i=r.maxReadSize||16*1024*1024,n=r.file,s=new Promise((o,a)=>{t.on("error",a),t.on("close",o),iZ.stat(n,(l,c)=>{if(l)a(l);else{let u=new nZ.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(t)}})});return e?s.then(e,e):s},iTe=r=>new N0.Sync(r),nTe=r=>new N0(r)});var aZ=I(li=>{"use strict";li.c=li.create=j7();li.r=li.replace=AN();li.t=li.list=w0();li.u=li.update=Z7();li.x=li.extract=oZ();li.Pack=a0();li.Unpack=SN();li.Parse=y0();li.ReadEntry=YB();li.WriteEntry=OF();li.Header=ih();li.Pax=JB();li.types=EF()});var uZ=I((Pat,cZ)=>{var xN;cZ.exports.getContent=()=>(typeof xN>"u"&&(xN=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),xN)});var CZ=I((PN,dZ)=>{(function(r,e){typeof PN=="object"?dZ.exports=e():typeof define=="function"&&define.amd?define(e):r.treeify=e()})(PN,function(){function r(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function t(n,s,o,a,l,c,u){var g="",h=0,p,d,m=a.slice(0);if(m.push([s,o])&&a.length>0&&(a.forEach(function(B,S){S>0&&(g+=(B[1]?" ":"\u2502")+" "),!d&&B[0]===s&&(d=!0)}),g+=r(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),d&&(g+=" (circular ref.)"),u(g)),!d&&typeof s=="object"){var y=e(s,c);y.forEach(function(B){p=++h===y.length,t(B,s[B],p,m,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;t(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return t(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var M0=I((_at,vZ)=>{var wTe=Ss(),BTe=fC(),bTe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,QTe=/^\w*$/;function STe(r,e){if(wTe(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||BTe(r)?!0:QTe.test(r)||!bTe.test(r)||e!=null&&r in Object(e)}vZ.exports=STe});var K0=I(($at,xZ)=>{var vTe=Tc(),xTe=xn(),PTe="[object AsyncFunction]",kTe="[object Function]",DTe="[object GeneratorFunction]",RTe="[object Proxy]";function FTe(r){if(!xTe(r))return!1;var e=vTe(r);return e==kTe||e==DTe||e==PTe||e==RTe}xZ.exports=FTe});var kZ=I((eAt,PZ)=>{var NTe=Is(),TTe=NTe["__core-js_shared__"];PZ.exports=TTe});var FZ=I((tAt,RZ)=>{var ON=kZ(),DZ=function(){var r=/[^.]+$/.exec(ON&&ON.keys&&ON.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function LTe(r){return!!DZ&&DZ in r}RZ.exports=LTe});var MN=I((rAt,NZ)=>{var OTe=Function.prototype,MTe=OTe.toString;function KTe(r){if(r!=null){try{return MTe.call(r)}catch{}try{return r+""}catch{}}return""}NZ.exports=KTe});var LZ=I((iAt,TZ)=>{var UTe=K0(),HTe=FZ(),jTe=xn(),GTe=MN(),YTe=/[\\^$.*+?()[\]{}|]/g,qTe=/^\[object .+?Constructor\]$/,JTe=Function.prototype,WTe=Object.prototype,zTe=JTe.toString,VTe=WTe.hasOwnProperty,XTe=RegExp("^"+zTe.call(VTe).replace(YTe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ZTe(r){if(!jTe(r)||HTe(r))return!1;var e=UTe(r)?XTe:qTe;return e.test(GTe(r))}TZ.exports=ZTe});var MZ=I((nAt,OZ)=>{function _Te(r,e){return r==null?void 0:r[e]}OZ.exports=_Te});var hl=I((sAt,KZ)=>{var $Te=LZ(),eLe=MZ();function tLe(r,e){var t=eLe(r,e);return $Te(t)?t:void 0}KZ.exports=tLe});var $C=I((oAt,UZ)=>{var rLe=hl(),iLe=rLe(Object,"create");UZ.exports=iLe});var GZ=I((aAt,jZ)=>{var HZ=$C();function nLe(){this.__data__=HZ?HZ(null):{},this.size=0}jZ.exports=nLe});var qZ=I((AAt,YZ)=>{function sLe(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}YZ.exports=sLe});var WZ=I((lAt,JZ)=>{var oLe=$C(),aLe="__lodash_hash_undefined__",ALe=Object.prototype,lLe=ALe.hasOwnProperty;function cLe(r){var e=this.__data__;if(oLe){var t=e[r];return t===aLe?void 0:t}return lLe.call(e,r)?e[r]:void 0}JZ.exports=cLe});var VZ=I((cAt,zZ)=>{var uLe=$C(),gLe=Object.prototype,fLe=gLe.hasOwnProperty;function hLe(r){var e=this.__data__;return uLe?e[r]!==void 0:fLe.call(e,r)}zZ.exports=hLe});var ZZ=I((uAt,XZ)=>{var pLe=$C(),dLe="__lodash_hash_undefined__";function CLe(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=pLe&&e===void 0?dLe:e,this}XZ.exports=CLe});var $Z=I((gAt,_Z)=>{var mLe=GZ(),ELe=qZ(),ILe=WZ(),yLe=VZ(),wLe=ZZ();function Eh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}Eh.prototype.clear=mLe;Eh.prototype.delete=ELe;Eh.prototype.get=ILe;Eh.prototype.has=yLe;Eh.prototype.set=wLe;_Z.exports=Eh});var t_=I((fAt,e_)=>{function BLe(){this.__data__=[],this.size=0}e_.exports=BLe});var Ih=I((hAt,r_)=>{function bLe(r,e){return r===e||r!==r&&e!==e}r_.exports=bLe});var em=I((pAt,i_)=>{var QLe=Ih();function SLe(r,e){for(var t=r.length;t--;)if(QLe(r[t][0],e))return t;return-1}i_.exports=SLe});var s_=I((dAt,n_)=>{var vLe=em(),xLe=Array.prototype,PLe=xLe.splice;function kLe(r){var e=this.__data__,t=vLe(e,r);if(t<0)return!1;var i=e.length-1;return t==i?e.pop():PLe.call(e,t,1),--this.size,!0}n_.exports=kLe});var a_=I((CAt,o_)=>{var DLe=em();function RLe(r){var e=this.__data__,t=DLe(e,r);return t<0?void 0:e[t][1]}o_.exports=RLe});var l_=I((mAt,A_)=>{var FLe=em();function NLe(r){return FLe(this.__data__,r)>-1}A_.exports=NLe});var u_=I((EAt,c_)=>{var TLe=em();function LLe(r,e){var t=this.__data__,i=TLe(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}c_.exports=LLe});var tm=I((IAt,g_)=>{var OLe=t_(),MLe=s_(),KLe=a_(),ULe=l_(),HLe=u_();function yh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}yh.prototype.clear=OLe;yh.prototype.delete=MLe;yh.prototype.get=KLe;yh.prototype.has=ULe;yh.prototype.set=HLe;g_.exports=yh});var U0=I((yAt,f_)=>{var jLe=hl(),GLe=Is(),YLe=jLe(GLe,"Map");f_.exports=YLe});var d_=I((wAt,p_)=>{var h_=$Z(),qLe=tm(),JLe=U0();function WLe(){this.size=0,this.__data__={hash:new h_,map:new(JLe||qLe),string:new h_}}p_.exports=WLe});var m_=I((BAt,C_)=>{function zLe(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}C_.exports=zLe});var rm=I((bAt,E_)=>{var VLe=m_();function XLe(r,e){var t=r.__data__;return VLe(e)?t[typeof e=="string"?"string":"hash"]:t.map}E_.exports=XLe});var y_=I((QAt,I_)=>{var ZLe=rm();function _Le(r){var e=ZLe(this,r).delete(r);return this.size-=e?1:0,e}I_.exports=_Le});var B_=I((SAt,w_)=>{var $Le=rm();function eOe(r){return $Le(this,r).get(r)}w_.exports=eOe});var Q_=I((vAt,b_)=>{var tOe=rm();function rOe(r){return tOe(this,r).has(r)}b_.exports=rOe});var v_=I((xAt,S_)=>{var iOe=rm();function nOe(r,e){var t=iOe(this,r),i=t.size;return t.set(r,e),this.size+=t.size==i?0:1,this}S_.exports=nOe});var H0=I((PAt,x_)=>{var sOe=d_(),oOe=y_(),aOe=B_(),AOe=Q_(),lOe=v_();function wh(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var i=r[e];this.set(i[0],i[1])}}wh.prototype.clear=sOe;wh.prototype.delete=oOe;wh.prototype.get=aOe;wh.prototype.has=AOe;wh.prototype.set=lOe;x_.exports=wh});var D_=I((kAt,k_)=>{var P_=H0(),cOe="Expected a function";function KN(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(cOe);var t=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=t.cache;if(s.has(n))return s.get(n);var o=r.apply(this,i);return t.cache=s.set(n,o)||s,o};return t.cache=new(KN.Cache||P_),t}KN.Cache=P_;k_.exports=KN});var F_=I((DAt,R_)=>{var uOe=D_(),gOe=500;function fOe(r){var e=uOe(r,function(i){return t.size===gOe&&t.clear(),i}),t=e.cache;return e}R_.exports=fOe});var T_=I((RAt,N_)=>{var hOe=F_(),pOe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,dOe=/\\(\\)?/g,COe=hOe(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(pOe,function(t,i,n,s){e.push(n?s.replace(dOe,"$1"):i||t)}),e});N_.exports=COe});var Bh=I((FAt,L_)=>{var mOe=Ss(),EOe=M0(),IOe=T_(),yOe=Vf();function wOe(r,e){return mOe(r)?r:EOe(r,e)?[r]:IOe(yOe(r))}L_.exports=wOe});var $c=I((NAt,O_)=>{var BOe=fC(),bOe=1/0;function QOe(r){if(typeof r=="string"||BOe(r))return r;var e=r+"";return e=="0"&&1/r==-bOe?"-0":e}O_.exports=QOe});var im=I((TAt,M_)=>{var SOe=Bh(),vOe=$c();function xOe(r,e){e=SOe(e,r);for(var t=0,i=e.length;r!=null&&t<i;)r=r[vOe(e[t++])];return t&&t==i?r:void 0}M_.exports=xOe});var UN=I((LAt,K_)=>{var POe=hl(),kOe=function(){try{var r=POe(Object,"defineProperty");return r({},"",{}),r}catch{}}();K_.exports=kOe});var bh=I((OAt,H_)=>{var U_=UN();function DOe(r,e,t){e=="__proto__"&&U_?U_(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}H_.exports=DOe});var j0=I((MAt,j_)=>{var ROe=bh(),FOe=Ih(),NOe=Object.prototype,TOe=NOe.hasOwnProperty;function LOe(r,e,t){var i=r[e];(!(TOe.call(r,e)&&FOe(i,t))||t===void 0&&!(e in r))&&ROe(r,e,t)}j_.exports=LOe});var nm=I((KAt,G_)=>{var OOe=9007199254740991,MOe=/^(?:0|[1-9]\d*)$/;function KOe(r,e){var t=typeof r;return e=e==null?OOe:e,!!e&&(t=="number"||t!="symbol"&&MOe.test(r))&&r>-1&&r%1==0&&r<e}G_.exports=KOe});var HN=I((UAt,q_)=>{var UOe=j0(),HOe=Bh(),jOe=nm(),Y_=xn(),GOe=$c();function YOe(r,e,t,i){if(!Y_(r))return r;e=HOe(e,r);for(var n=-1,s=e.length,o=s-1,a=r;a!=null&&++n<s;){var l=GOe(e[n]),c=t;if(l==="__proto__"||l==="constructor"||l==="prototype")return r;if(n!=o){var u=a[l];c=i?i(u,l,a):void 0,c===void 0&&(c=Y_(u)?u:jOe(e[n+1])?[]:{})}UOe(a,l,c),a=a[l]}return r}q_.exports=YOe});var W_=I((HAt,J_)=>{var qOe=im(),JOe=HN(),WOe=Bh();function zOe(r,e,t){for(var i=-1,n=e.length,s={};++i<n;){var o=e[i],a=qOe(r,o);t(a,o)&&JOe(s,WOe(o,r),a)}return s}J_.exports=zOe});var V_=I((jAt,z_)=>{function VOe(r,e){return r!=null&&e in Object(r)}z_.exports=VOe});var Z_=I((GAt,X_)=>{var XOe=Tc(),ZOe=Jo(),_Oe="[object Arguments]";function $Oe(r){return ZOe(r)&&XOe(r)==_Oe}X_.exports=$Oe});var sm=I((YAt,e$)=>{var __=Z_(),eMe=Jo(),$_=Object.prototype,tMe=$_.hasOwnProperty,rMe=$_.propertyIsEnumerable,iMe=__(function(){return arguments}())?__:function(r){return eMe(r)&&tMe.call(r,"callee")&&!rMe.call(r,"callee")};e$.exports=iMe});var G0=I((qAt,t$)=>{var nMe=9007199254740991;function sMe(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=nMe}t$.exports=sMe});var jN=I((JAt,r$)=>{var oMe=Bh(),aMe=sm(),AMe=Ss(),lMe=nm(),cMe=G0(),uMe=$c();function gMe(r,e,t){e=oMe(e,r);for(var i=-1,n=e.length,s=!1;++i<n;){var o=uMe(e[i]);if(!(s=r!=null&&t(r,o)))break;r=r[o]}return s||++i!=n?s:(n=r==null?0:r.length,!!n&&cMe(n)&&lMe(o,n)&&(AMe(r)||aMe(r)))}r$.exports=gMe});var GN=I((WAt,i$)=>{var fMe=V_(),hMe=jN();function pMe(r,e){return r!=null&&hMe(r,e,fMe)}i$.exports=pMe});var s$=I((zAt,n$)=>{var dMe=W_(),CMe=GN();function mMe(r,e){return dMe(r,e,function(t,i){return CMe(r,i)})}n$.exports=mMe});var Y0=I((VAt,o$)=>{function EMe(r,e){for(var t=-1,i=e.length,n=r.length;++t<i;)r[n+t]=e[t];return r}o$.exports=EMe});var c$=I((XAt,l$)=>{var a$=Nc(),IMe=sm(),yMe=Ss(),A$=a$?a$.isConcatSpreadable:void 0;function wMe(r){return yMe(r)||IMe(r)||!!(A$&&r&&r[A$])}l$.exports=wMe});var f$=I((ZAt,g$)=>{var BMe=Y0(),bMe=c$();function u$(r,e,t,i,n){var s=-1,o=r.length;for(t||(t=bMe),n||(n=[]);++s<o;){var a=r[s];e>0&&t(a)?e>1?u$(a,e-1,t,i,n):BMe(n,a):i||(n[n.length]=a)}return n}g$.exports=u$});var p$=I((_At,h$)=>{var QMe=f$();function SMe(r){var e=r==null?0:r.length;return e?QMe(r,1):[]}h$.exports=SMe});var C$=I(($At,d$)=>{function vMe(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}d$.exports=vMe});var YN=I((elt,E$)=>{var xMe=C$(),m$=Math.max;function PMe(r,e,t){return e=m$(e===void 0?r.length-1:e,0),function(){for(var i=arguments,n=-1,s=m$(i.length-e,0),o=Array(s);++n<s;)o[n]=i[e+n];n=-1;for(var a=Array(e+1);++n<e;)a[n]=i[n];return a[e]=t(o),xMe(r,this,a)}}E$.exports=PMe});var y$=I((tlt,I$)=>{function kMe(r){return function(){return r}}I$.exports=kMe});var q0=I((rlt,w$)=>{function DMe(r){return r}w$.exports=DMe});var Q$=I((ilt,b$)=>{var RMe=y$(),B$=UN(),FMe=q0(),NMe=B$?function(r,e){return B$(r,"toString",{configurable:!0,enumerable:!1,value:RMe(e),writable:!0})}:FMe;b$.exports=NMe});var v$=I((nlt,S$)=>{var TMe=800,LMe=16,OMe=Date.now;function MMe(r){var e=0,t=0;return function(){var i=OMe(),n=LMe-(i-t);if(t=i,n>0){if(++e>=TMe)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}S$.exports=MMe});var qN=I((slt,x$)=>{var KMe=Q$(),UMe=v$(),HMe=UMe(KMe);x$.exports=HMe});var k$=I((olt,P$)=>{var jMe=p$(),GMe=YN(),YMe=qN();function qMe(r){return YMe(GMe(r,void 0,jMe),r+"")}P$.exports=qMe});var R$=I((alt,D$)=>{var JMe=s$(),WMe=k$(),zMe=WMe(function(r,e){return r==null?{}:JMe(r,e)});D$.exports=zMe});var G$=I((kct,j$)=>{"use strict";var _N;try{_N=Map}catch{}var $N;try{$N=Set}catch{}function U$(r,e,t){if(!r||typeof r!="object"||typeof r=="function")return r;if(r.nodeType&&"cloneNode"in r)return r.cloneNode(!0);if(r instanceof Date)return new Date(r.getTime());if(r instanceof RegExp)return new RegExp(r);if(Array.isArray(r))return r.map(H$);if(_N&&r instanceof _N)return new Map(Array.from(r.entries()));if($N&&r instanceof $N)return new Set(Array.from(r.values()));if(r instanceof Object){e.push(r);var i=Object.create(r);t.push(i);for(var n in r){var s=e.findIndex(function(o){return o===r[n]});i[n]=s>-1?t[s]:U$(r[n],e,t)}return i}return r}function H$(r){return U$(r,[],[])}j$.exports=H$});var am=I(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.default=l1e;var i1e=Object.prototype.toString,n1e=Error.prototype.toString,s1e=RegExp.prototype.toString,o1e=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",a1e=/^Symbol\((.*)\)(.*)$/;function A1e(r){return r!=+r?"NaN":r===0&&1/r<0?"-0":""+r}function Y$(r,e=!1){if(r==null||r===!0||r===!1)return""+r;let t=typeof r;if(t==="number")return A1e(r);if(t==="string")return e?`"${r}"`:r;if(t==="function")return"[Function "+(r.name||"anonymous")+"]";if(t==="symbol")return o1e.call(r).replace(a1e,"Symbol($1)");let i=i1e.call(r).slice(8,-1);return i==="Date"?isNaN(r.getTime())?""+r:r.toISOString(r):i==="Error"||r instanceof Error?"["+n1e.call(r)+"]":i==="RegExp"?s1e.call(r):null}function l1e(r,e){let t=Y$(r,e);return t!==null?t:JSON.stringify(r,function(i,n){let s=Y$(this[i],e);return s!==null?s:n},2)}});var nA=I(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.default=mi.array=mi.object=mi.boolean=mi.date=mi.number=mi.string=mi.mixed=void 0;var q$=c1e(am());function c1e(r){return r&&r.__esModule?r:{default:r}}var J$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:r,type:e,value:t,originalValue:i})=>{let n=i!=null&&i!==t,s=`${r} must be a \`${e}\` type, but the final value was: \`${(0,q$.default)(t,!0)}\``+(n?` (cast from the value \`${(0,q$.default)(i,!0)}\`).`:".");return t===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};mi.mixed=J$;var W$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};mi.string=W$;var z$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};mi.number=z$;var V$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};mi.date=V$;var X$={isValue:"${path} field must be ${value}"};mi.boolean=X$;var Z$={noUnknown:"${path} field has unspecified keys: ${unknown}"};mi.object=Z$;var _$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};mi.array=_$;var u1e=Object.assign(Object.create(null),{mixed:J$,string:W$,number:z$,date:V$,object:Z$,array:_$,boolean:X$});mi.default=u1e});var eee=I((Fct,$$)=>{var g1e=Object.prototype,f1e=g1e.hasOwnProperty;function h1e(r,e){return r!=null&&f1e.call(r,e)}$$.exports=h1e});var Am=I((Nct,tee)=>{var p1e=eee(),d1e=jN();function C1e(r,e){return r!=null&&d1e(r,e,p1e)}tee.exports=C1e});var xh=I($0=>{"use strict";Object.defineProperty($0,"__esModule",{value:!0});$0.default=void 0;var m1e=r=>r&&r.__isYupSchema__;$0.default=m1e});var iee=I(eb=>{"use strict";Object.defineProperty(eb,"__esModule",{value:!0});eb.default=void 0;var E1e=ree(Am()),I1e=ree(xh());function ree(r){return r&&r.__esModule?r:{default:r}}var tT=class{constructor(e,t){if(this.refs=e,this.refs=e,typeof t=="function"){this.fn=t;return}if(!(0,E1e.default)(t,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=t,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,t){let i=this.refs.map(s=>s.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),n=this.fn.apply(e,i.concat(e,t));if(n===void 0||n===e)return e;if(!(0,I1e.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(t)}},y1e=tT;eb.default=y1e});var iT=I(rT=>{"use strict";Object.defineProperty(rT,"__esModule",{value:!0});rT.default=w1e;function w1e(r){return r==null?[]:[].concat(r)}});var eu=I(tb=>{"use strict";Object.defineProperty(tb,"__esModule",{value:!0});tb.default=void 0;var B1e=nee(am()),b1e=nee(iT());function nee(r){return r&&r.__esModule?r:{default:r}}function nT(){return nT=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},nT.apply(this,arguments)}var Q1e=/\$\{\s*(\w+)\s*\}/g,Ph=class extends Error{static formatError(e,t){let i=t.label||t.path||"this";return i!==t.path&&(t=nT({},t,{path:i})),typeof e=="string"?e.replace(Q1e,(n,s)=>(0,B1e.default)(t[s])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,i,n){super(),this.name="ValidationError",this.value=t,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,b1e.default)(e).forEach(s=>{Ph.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Ph)}};tb.default=Ph});var rb=I(oT=>{"use strict";Object.defineProperty(oT,"__esModule",{value:!0});oT.default=x1e;var sT=S1e(eu());function S1e(r){return r&&r.__esModule?r:{default:r}}var v1e=r=>{let e=!1;return(...t)=>{e||(e=!0,r(...t))}};function x1e(r,e){let{endEarly:t,tests:i,args:n,value:s,errors:o,sort:a,path:l}=r,c=v1e(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new sT.default(o,s,l)):c(null,s);for(let h=0;h<i.length;h++){let p=i[h];p(n,function(m){if(m){if(!sT.default.isError(m))return c(m,s);if(t)return m.value=s,c(m,s);g.push(m)}if(--u<=0){if(g.length&&(a&&g.sort(a),o.length&&g.push(...o),o=g),o.length){c(new sT.default(o,s,l),s);return}c(null,s)}})}}});var oee=I((Uct,see)=>{function P1e(r){return function(e,t,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[r?a:++n];if(t(s[l],l,s)===!1)break}return e}}see.exports=P1e});var aT=I((Hct,aee)=>{var k1e=oee(),D1e=k1e();aee.exports=D1e});var lee=I((jct,Aee)=>{function R1e(r,e){for(var t=-1,i=Array(r);++t<r;)i[t]=e(t);return i}Aee.exports=R1e});var uee=I((Gct,cee)=>{function F1e(){return!1}cee.exports=F1e});var cm=I((lm,kh)=>{var N1e=Is(),T1e=uee(),hee=typeof lm=="object"&&lm&&!lm.nodeType&&lm,gee=hee&&typeof kh=="object"&&kh&&!kh.nodeType&&kh,L1e=gee&&gee.exports===hee,fee=L1e?N1e.Buffer:void 0,O1e=fee?fee.isBuffer:void 0,M1e=O1e||T1e;kh.exports=M1e});var dee=I((Yct,pee)=>{var K1e=Tc(),U1e=G0(),H1e=Jo(),j1e="[object Arguments]",G1e="[object Array]",Y1e="[object Boolean]",q1e="[object Date]",J1e="[object Error]",W1e="[object Function]",z1e="[object Map]",V1e="[object Number]",X1e="[object Object]",Z1e="[object RegExp]",_1e="[object Set]",$1e="[object String]",eKe="[object WeakMap]",tKe="[object ArrayBuffer]",rKe="[object DataView]",iKe="[object Float32Array]",nKe="[object Float64Array]",sKe="[object Int8Array]",oKe="[object Int16Array]",aKe="[object Int32Array]",AKe="[object Uint8Array]",lKe="[object Uint8ClampedArray]",cKe="[object Uint16Array]",uKe="[object Uint32Array]",mr={};mr[iKe]=mr[nKe]=mr[sKe]=mr[oKe]=mr[aKe]=mr[AKe]=mr[lKe]=mr[cKe]=mr[uKe]=!0;mr[j1e]=mr[G1e]=mr[tKe]=mr[Y1e]=mr[rKe]=mr[q1e]=mr[J1e]=mr[W1e]=mr[z1e]=mr[V1e]=mr[X1e]=mr[Z1e]=mr[_1e]=mr[$1e]=mr[eKe]=!1;function gKe(r){return H1e(r)&&U1e(r.length)&&!!mr[K1e(r)]}pee.exports=gKe});var ib=I((qct,Cee)=>{function fKe(r){return function(e){return r(e)}}Cee.exports=fKe});var nb=I((um,Dh)=>{var hKe=Wk(),mee=typeof um=="object"&&um&&!um.nodeType&&um,gm=mee&&typeof Dh=="object"&&Dh&&!Dh.nodeType&&Dh,pKe=gm&&gm.exports===mee,AT=pKe&&hKe.process,dKe=function(){try{var r=gm&&gm.require&&gm.require("util").types;return r||AT&&AT.binding&&AT.binding("util")}catch{}}();Dh.exports=dKe});var sb=I((Jct,yee)=>{var CKe=dee(),mKe=ib(),Eee=nb(),Iee=Eee&&Eee.isTypedArray,EKe=Iee?mKe(Iee):CKe;yee.exports=EKe});var lT=I((Wct,wee)=>{var IKe=lee(),yKe=sm(),wKe=Ss(),BKe=cm(),bKe=nm(),QKe=sb(),SKe=Object.prototype,vKe=SKe.hasOwnProperty;function xKe(r,e){var t=wKe(r),i=!t&&yKe(r),n=!t&&!i&&BKe(r),s=!t&&!i&&!n&&QKe(r),o=t||i||n||s,a=o?IKe(r.length,String):[],l=a.length;for(var c in r)(e||vKe.call(r,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||bKe(c,l)))&&a.push(c);return a}wee.exports=xKe});var ob=I((zct,Bee)=>{var PKe=Object.prototype;function kKe(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||PKe;return r===t}Bee.exports=kKe});var cT=I((Vct,bee)=>{function DKe(r,e){return function(t){return r(e(t))}}bee.exports=DKe});var See=I((Xct,Qee)=>{var RKe=cT(),FKe=RKe(Object.keys,Object);Qee.exports=FKe});var xee=I((Zct,vee)=>{var NKe=ob(),TKe=See(),LKe=Object.prototype,OKe=LKe.hasOwnProperty;function MKe(r){if(!NKe(r))return TKe(r);var e=[];for(var t in Object(r))OKe.call(r,t)&&t!="constructor"&&e.push(t);return e}vee.exports=MKe});var fm=I((_ct,Pee)=>{var KKe=K0(),UKe=G0();function HKe(r){return r!=null&&UKe(r.length)&&!KKe(r)}Pee.exports=HKe});var Rh=I(($ct,kee)=>{var jKe=lT(),GKe=xee(),YKe=fm();function qKe(r){return YKe(r)?jKe(r):GKe(r)}kee.exports=qKe});var uT=I((eut,Dee)=>{var JKe=aT(),WKe=Rh();function zKe(r,e){return r&&JKe(r,e,WKe)}Dee.exports=zKe});var Fee=I((tut,Ree)=>{var VKe=tm();function XKe(){this.__data__=new VKe,this.size=0}Ree.exports=XKe});var Tee=I((rut,Nee)=>{function ZKe(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}Nee.exports=ZKe});var Oee=I((iut,Lee)=>{function _Ke(r){return this.__data__.get(r)}Lee.exports=_Ke});var Kee=I((nut,Mee)=>{function $Ke(r){return this.__data__.has(r)}Mee.exports=$Ke});var Hee=I((sut,Uee)=>{var eUe=tm(),tUe=U0(),rUe=H0(),iUe=200;function nUe(r,e){var t=this.__data__;if(t instanceof eUe){var i=t.__data__;if(!tUe||i.length<iUe-1)return i.push([r,e]),this.size=++t.size,this;t=this.__data__=new rUe(i)}return t.set(r,e),this.size=t.size,this}Uee.exports=nUe});var hm=I((out,jee)=>{var sUe=tm(),oUe=Fee(),aUe=Tee(),AUe=Oee(),lUe=Kee(),cUe=Hee();function Fh(r){var e=this.__data__=new sUe(r);this.size=e.size}Fh.prototype.clear=oUe;Fh.prototype.delete=aUe;Fh.prototype.get=AUe;Fh.prototype.has=lUe;Fh.prototype.set=cUe;jee.exports=Fh});var Yee=I((aut,Gee)=>{var uUe="__lodash_hash_undefined__";function gUe(r){return this.__data__.set(r,uUe),this}Gee.exports=gUe});var Jee=I((Aut,qee)=>{function fUe(r){return this.__data__.has(r)}qee.exports=fUe});var zee=I((lut,Wee)=>{var hUe=H0(),pUe=Yee(),dUe=Jee();function ab(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new hUe;++e<t;)this.add(r[e])}ab.prototype.add=ab.prototype.push=pUe;ab.prototype.has=dUe;Wee.exports=ab});var Xee=I((cut,Vee)=>{function CUe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i;)if(e(r[t],t,r))return!0;return!1}Vee.exports=CUe});var _ee=I((uut,Zee)=>{function mUe(r,e){return r.has(e)}Zee.exports=mUe});var gT=I((gut,$ee)=>{var EUe=zee(),IUe=Xee(),yUe=_ee(),wUe=1,BUe=2;function bUe(r,e,t,i,n,s){var o=t&wUe,a=r.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(r),u=s.get(e);if(c&&u)return c==e&&u==r;var g=-1,h=!0,p=t&BUe?new EUe:void 0;for(s.set(r,e),s.set(e,r);++g<a;){var d=r[g],m=e[g];if(i)var y=o?i(m,d,g,e,r,s):i(d,m,g,r,e,s);if(y!==void 0){if(y)continue;h=!1;break}if(p){if(!IUe(e,function(B,S){if(!yUe(p,S)&&(d===B||n(d,B,t,i,s)))return p.push(S)})){h=!1;break}}else if(!(d===m||n(d,m,t,i,s))){h=!1;break}}return s.delete(r),s.delete(e),h}$ee.exports=bUe});var fT=I((fut,ete)=>{var QUe=Is(),SUe=QUe.Uint8Array;ete.exports=SUe});var rte=I((hut,tte)=>{function vUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i,n){t[++e]=[n,i]}),t}tte.exports=vUe});var nte=I((put,ite)=>{function xUe(r){var e=-1,t=Array(r.size);return r.forEach(function(i){t[++e]=i}),t}ite.exports=xUe});var lte=I((dut,Ate)=>{var ste=Nc(),ote=fT(),PUe=Ih(),kUe=gT(),DUe=rte(),RUe=nte(),FUe=1,NUe=2,TUe="[object Boolean]",LUe="[object Date]",OUe="[object Error]",MUe="[object Map]",KUe="[object Number]",UUe="[object RegExp]",HUe="[object Set]",jUe="[object String]",GUe="[object Symbol]",YUe="[object ArrayBuffer]",qUe="[object DataView]",ate=ste?ste.prototype:void 0,hT=ate?ate.valueOf:void 0;function JUe(r,e,t,i,n,s,o){switch(t){case qUe:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case YUe:return!(r.byteLength!=e.byteLength||!s(new ote(r),new ote(e)));case TUe:case LUe:case KUe:return PUe(+r,+e);case OUe:return r.name==e.name&&r.message==e.message;case UUe:case jUe:return r==e+"";case MUe:var a=DUe;case HUe:var l=i&FUe;if(a||(a=RUe),r.size!=e.size&&!l)return!1;var c=o.get(r);if(c)return c==e;i|=NUe,o.set(r,e);var u=kUe(a(r),a(e),i,n,s,o);return o.delete(r),u;case GUe:if(hT)return hT.call(r)==hT.call(e)}return!1}Ate.exports=JUe});var pT=I((Cut,cte)=>{var WUe=Y0(),zUe=Ss();function VUe(r,e,t){var i=e(r);return zUe(r)?i:WUe(i,t(r))}cte.exports=VUe});var gte=I((mut,ute)=>{function XUe(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t<i;){var o=r[t];e(o,t,r)&&(s[n++]=o)}return s}ute.exports=XUe});var dT=I((Eut,fte)=>{function ZUe(){return[]}fte.exports=ZUe});var Ab=I((Iut,pte)=>{var _Ue=gte(),$Ue=dT(),e2e=Object.prototype,t2e=e2e.propertyIsEnumerable,hte=Object.getOwnPropertySymbols,r2e=hte?function(r){return r==null?[]:(r=Object(r),_Ue(hte(r),function(e){return t2e.call(r,e)}))}:$Ue;pte.exports=r2e});var CT=I((yut,dte)=>{var i2e=pT(),n2e=Ab(),s2e=Rh();function o2e(r){return i2e(r,s2e,n2e)}dte.exports=o2e});var Ete=I((wut,mte)=>{var Cte=CT(),a2e=1,A2e=Object.prototype,l2e=A2e.hasOwnProperty;function c2e(r,e,t,i,n,s){var o=t&a2e,a=Cte(r),l=a.length,c=Cte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var h=a[g];if(!(o?h in e:l2e.call(e,h)))return!1}var p=s.get(r),d=s.get(e);if(p&&d)return p==e&&d==r;var m=!0;s.set(r,e),s.set(e,r);for(var y=o;++g<l;){h=a[g];var B=r[h],S=e[h];if(i)var P=o?i(S,B,h,e,r,s):i(B,S,h,r,e,s);if(!(P===void 0?B===S||n(B,S,t,i,s):P)){m=!1;break}y||(y=h=="constructor")}if(m&&!y){var F=r.constructor,H=e.constructor;F!=H&&"constructor"in r&&"constructor"in e&&!(typeof F=="function"&&F instanceof F&&typeof H=="function"&&H instanceof H)&&(m=!1)}return s.delete(r),s.delete(e),m}mte.exports=c2e});var yte=I((But,Ite)=>{var u2e=hl(),g2e=Is(),f2e=u2e(g2e,"DataView");Ite.exports=f2e});var Bte=I((but,wte)=>{var h2e=hl(),p2e=Is(),d2e=h2e(p2e,"Promise");wte.exports=d2e});var Qte=I((Qut,bte)=>{var C2e=hl(),m2e=Is(),E2e=C2e(m2e,"Set");bte.exports=E2e});var vte=I((Sut,Ste)=>{var I2e=hl(),y2e=Is(),w2e=I2e(y2e,"WeakMap");Ste.exports=w2e});var pm=I((vut,Nte)=>{var mT=yte(),ET=U0(),IT=Bte(),yT=Qte(),wT=vte(),Fte=Tc(),Nh=MN(),xte="[object Map]",B2e="[object Object]",Pte="[object Promise]",kte="[object Set]",Dte="[object WeakMap]",Rte="[object DataView]",b2e=Nh(mT),Q2e=Nh(ET),S2e=Nh(IT),v2e=Nh(yT),x2e=Nh(wT),tu=Fte;(mT&&tu(new mT(new ArrayBuffer(1)))!=Rte||ET&&tu(new ET)!=xte||IT&&tu(IT.resolve())!=Pte||yT&&tu(new yT)!=kte||wT&&tu(new wT)!=Dte)&&(tu=function(r){var e=Fte(r),t=e==B2e?r.constructor:void 0,i=t?Nh(t):"";if(i)switch(i){case b2e:return Rte;case Q2e:return xte;case S2e:return Pte;case v2e:return kte;case x2e:return Dte}return e});Nte.exports=tu});var jte=I((xut,Hte)=>{var BT=hm(),P2e=gT(),k2e=lte(),D2e=Ete(),Tte=pm(),Lte=Ss(),Ote=cm(),R2e=sb(),F2e=1,Mte="[object Arguments]",Kte="[object Array]",lb="[object Object]",N2e=Object.prototype,Ute=N2e.hasOwnProperty;function T2e(r,e,t,i,n,s){var o=Lte(r),a=Lte(e),l=o?Kte:Tte(r),c=a?Kte:Tte(e);l=l==Mte?lb:l,c=c==Mte?lb:c;var u=l==lb,g=c==lb,h=l==c;if(h&&Ote(r)){if(!Ote(e))return!1;o=!0,u=!1}if(h&&!u)return s||(s=new BT),o||R2e(r)?P2e(r,e,t,i,n,s):k2e(r,e,l,t,i,n,s);if(!(t&F2e)){var p=u&&Ute.call(r,"__wrapped__"),d=g&&Ute.call(e,"__wrapped__");if(p||d){var m=p?r.value():r,y=d?e.value():e;return s||(s=new BT),n(m,y,t,i,s)}}return h?(s||(s=new BT),D2e(r,e,t,i,n,s)):!1}Hte.exports=T2e});var bT=I((Put,qte)=>{var L2e=jte(),Gte=Jo();function Yte(r,e,t,i,n){return r===e?!0:r==null||e==null||!Gte(r)&&!Gte(e)?r!==r&&e!==e:L2e(r,e,t,i,Yte,n)}qte.exports=Yte});var Wte=I((kut,Jte)=>{var O2e=hm(),M2e=bT(),K2e=1,U2e=2;function H2e(r,e,t,i){var n=t.length,s=n,o=!i;if(r==null)return!s;for(r=Object(r);n--;){var a=t[n];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++n<s;){a=t[n];var l=a[0],c=r[l],u=a[1];if(o&&a[2]){if(c===void 0&&!(l in r))return!1}else{var g=new O2e;if(i)var h=i(c,u,l,r,e,g);if(!(h===void 0?M2e(u,c,K2e|U2e,i,g):h))return!1}}return!0}Jte.exports=H2e});var QT=I((Dut,zte)=>{var j2e=xn();function G2e(r){return r===r&&!j2e(r)}zte.exports=G2e});var Xte=I((Rut,Vte)=>{var Y2e=QT(),q2e=Rh();function J2e(r){for(var e=q2e(r),t=e.length;t--;){var i=e[t],n=r[i];e[t]=[i,n,Y2e(n)]}return e}Vte.exports=J2e});var ST=I((Fut,Zte)=>{function W2e(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}Zte.exports=W2e});var $te=I((Nut,_te)=>{var z2e=Wte(),V2e=Xte(),X2e=ST();function Z2e(r){var e=V2e(r);return e.length==1&&e[0][2]?X2e(e[0][0],e[0][1]):function(t){return t===r||z2e(t,r,e)}}_te.exports=Z2e});var cb=I((Tut,ere)=>{var _2e=im();function $2e(r,e,t){var i=r==null?void 0:_2e(r,e);return i===void 0?t:i}ere.exports=$2e});var rre=I((Lut,tre)=>{var eHe=bT(),tHe=cb(),rHe=GN(),iHe=M0(),nHe=QT(),sHe=ST(),oHe=$c(),aHe=1,AHe=2;function lHe(r,e){return iHe(r)&&nHe(e)?sHe(oHe(r),e):function(t){var i=tHe(t,r);return i===void 0&&i===e?rHe(t,r):eHe(e,i,aHe|AHe)}}tre.exports=lHe});var nre=I((Out,ire)=>{function cHe(r){return function(e){return e==null?void 0:e[r]}}ire.exports=cHe});var ore=I((Mut,sre)=>{var uHe=im();function gHe(r){return function(e){return uHe(e,r)}}sre.exports=gHe});var Are=I((Kut,are)=>{var fHe=nre(),hHe=ore(),pHe=M0(),dHe=$c();function CHe(r){return pHe(r)?fHe(dHe(r)):hHe(r)}are.exports=CHe});var vT=I((Uut,lre)=>{var mHe=$te(),EHe=rre(),IHe=q0(),yHe=Ss(),wHe=Are();function BHe(r){return typeof r=="function"?r:r==null?IHe:typeof r=="object"?yHe(r)?EHe(r[0],r[1]):mHe(r):wHe(r)}lre.exports=BHe});var xT=I((Hut,cre)=>{var bHe=bh(),QHe=uT(),SHe=vT();function vHe(r,e){var t={};return e=SHe(e,3),QHe(r,function(i,n,s){bHe(t,n,e(i,n,s))}),t}cre.exports=vHe});var dm=I((jut,pre)=>{"use strict";function ru(r){this._maxSize=r,this.clear()}ru.prototype.clear=function(){this._size=0,this._values=Object.create(null)};ru.prototype.get=function(r){return this._values[r]};ru.prototype.set=function(r,e){return this._size>=this._maxSize&&this.clear(),r in this._values||this._size++,this._values[r]=e};var xHe=/[^.^\]^[]+|(?=\[\]|\.\.)/g,hre=/^\d+$/,PHe=/^\d/,kHe=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,DHe=/^\s*(['"]?)(.*?)(\1)\s*$/,DT=512,ure=new ru(DT),gre=new ru(DT),fre=new ru(DT);pre.exports={Cache:ru,split:kT,normalizePath:PT,setter:function(r){var e=PT(r);return gre.get(r)||gre.set(r,function(i,n){for(var s=0,o=e.length,a=i;s<o-1;){var l=e[s];if(l==="__proto__"||l==="constructor"||l==="prototype")return i;a=a[e[s++]]}a[e[s]]=n})},getter:function(r,e){var t=PT(r);return fre.get(r)||fre.set(r,function(n){for(var s=0,o=t.length;s<o;)if(n!=null||!e)n=n[t[s++]];else return;return n})},join:function(r){return r.reduce(function(e,t){return e+(RT(t)||hre.test(t)?"["+t+"]":(e?".":"")+t)},"")},forEach:function(r,e,t){RHe(Array.isArray(r)?r:kT(r),e,t)}};function PT(r){return ure.get(r)||ure.set(r,kT(r).map(function(e){return e.replace(DHe,"$2")}))}function kT(r){return r.match(xHe)}function RHe(r,e,t){var i=r.length,n,s,o,a;for(s=0;s<i;s++)n=r[s],n&&(THe(n)&&(n='"'+n+'"'),a=RT(n),o=!a&&/^\d+$/.test(n),e.call(t,n,a,o,s,r))}function RT(r){return typeof r=="string"&&r&&["'",'"'].indexOf(r.charAt(0))!==-1}function FHe(r){return r.match(PHe)&&!r.match(hre)}function NHe(r){return kHe.test(r)}function THe(r){return!RT(r)&&(FHe(r)||NHe(r))}});var iu=I(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});mm.create=OHe;mm.default=void 0;var LHe=dm(),ub={context:"$",value:"."};function OHe(r,e){return new Cm(r,e)}var Cm=class{constructor(e,t={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===ub.context,this.isValue=this.key[0]===ub.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?ub.context:this.isValue?ub.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,LHe.getter)(this.path,!0),this.map=t.map}getValue(e,t,i){let n=this.isContext?i:this.isValue?e:t;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};mm.default=Cm;Cm.prototype.__isYupRef=!0});var dre=I(NT=>{"use strict";Object.defineProperty(NT,"__esModule",{value:!0});NT.default=HHe;var MHe=FT(xT()),gb=FT(eu()),KHe=FT(iu());function FT(r){return r&&r.__esModule?r:{default:r}}function fb(){return fb=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},fb.apply(this,arguments)}function UHe(r,e){if(r==null)return{};var t={},i=Object.keys(r),n,s;for(s=0;s<i.length;s++)n=i[s],!(e.indexOf(n)>=0)&&(t[n]=r[n]);return t}function HHe(r){function e(t,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=t,u=UHe(t,["value","path","label","options","originalValue","sync"]),{name:g,test:h,params:p,message:d}=r,{parent:m,context:y}=a;function B(q){return KHe.default.isRef(q)?q.getValue(n,m,y):q}function S(q={}){let _=(0,MHe.default)(fb({value:n,originalValue:l,label:o,path:q.path||s},p,q.params),B),X=new gb.default(gb.default.formatError(q.message||d,_),n,_.path,q.type||g);return X.params=_,X}let P=fb({path:s,parent:m,type:g,createError:S,resolve:B,options:a,originalValue:l},u);if(!c){try{Promise.resolve(h.call(P,n,P)).then(q=>{gb.default.isError(q)?i(q):q?i(null,q):i(S())})}catch(q){i(q)}return}let F;try{var H;if(F=h.call(P,n,P),typeof((H=F)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${P.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(q){i(q);return}gb.default.isError(F)?i(F):F?i(null,F):i(S())}return e.OPTIONS=r,e}});var TT=I(Em=>{"use strict";Object.defineProperty(Em,"__esModule",{value:!0});Em.getIn=Cre;Em.default=void 0;var jHe=dm(),GHe=r=>r.substr(0,r.length-1).substr(1);function Cre(r,e,t,i=t){let n,s,o;return e?((0,jHe.forEach)(e,(a,l,c)=>{let u=l?GHe(a):a;if(r=r.resolve({context:i,parent:n,value:t}),r.innerType){let g=c?parseInt(u,10):0;if(t&&g>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=t,t=t&&t[g],r=r.innerType}if(!c){if(!r.fields||!r.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${r._type}")`);n=t,t=t&&t[u],r=r.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:r,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:r}}var YHe=(r,e,t,i)=>Cre(r,e,t,i).schema,qHe=YHe;Em.default=qHe});var Ere=I(hb=>{"use strict";Object.defineProperty(hb,"__esModule",{value:!0});hb.default=void 0;var mre=JHe(iu());function JHe(r){return r&&r.__esModule?r:{default:r}}var Im=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let t of this.list)e.push(t);for(let[,t]of this.refs)e.push(t.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){mre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){mre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,t){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(t(i.value)===e)return!0;return!1}clone(){let e=new Im;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,t){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),t.list.forEach(n=>i.delete(n)),t.refs.forEach(n=>i.delete(n)),i}};hb.default=Im});var oA=I(db=>{"use strict";Object.defineProperty(db,"__esModule",{value:!0});db.default=void 0;var Ire=sA(G$()),Th=nA(),WHe=sA(iee()),yre=sA(rb()),pb=sA(dre()),wre=sA(am()),zHe=sA(iu()),VHe=TT(),XHe=sA(iT()),Bre=sA(eu()),bre=sA(Ere());function sA(r){return r&&r.__esModule?r:{default:r}}function Rs(){return Rs=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Rs.apply(this,arguments)}var co=class{constructor(e){this.deps=[],this.conditions=[],this._whitelist=new bre.default,this._blacklist=new bre.default,this.exclusiveTests=Object.create(null),this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Th.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=Rs({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeError=this._typeError,t._whitelistError=this._whitelistError,t._blacklistError=this._blacklistError,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.exclusiveTests=Rs({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=(0,Ire.default)(Rs({},this.spec,e)),t}label(e){var t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=t,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,i=e.clone(),n=Rs({},t.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=t._typeError),i._whitelistError||(i._whitelistError=t._whitelistError),i._blacklistError||(i._blacklistError=t._blacklistError),i._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),i.tests=t.tests,i.exclusiveTests=t.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let i=t.conditions;t=t.clone(),t.conditions=[],t=i.reduce((n,s)=>s.resolve(n,e),t),t=t.resolve(e)}return t}cast(e,t={}){let i=this.resolve(Rs({value:e},t)),n=i._cast(e,t);if(e!==void 0&&t.assert!==!1&&i.isType(n)!==!0){let s=(0,wre.default)(e),o=(0,wre.default)(n);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". - -attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,t){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,t={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=t,u=e;l||(u=this._cast(u,Rs({assert:!1},t)));let g={value:u,path:s,options:t,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},h=[];this._typeError&&h.push(this._typeError),this._whitelistError&&h.push(this._whitelistError),this._blacklistError&&h.push(this._blacklistError),(0,yre.default)({args:g,value:u,path:s,sync:n,tests:h,endEarly:c},p=>{if(p)return void i(p,u);(0,yre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,t,i){let n=this.resolve(Rs({},t,{value:e}));return typeof i=="function"?n._validate(e,t,i):new Promise((s,o)=>n._validate(e,t,(a,l)=>{a?o(a):s(l)}))}validateSync(e,t){let i=this.resolve(Rs({},t,{value:e})),n;return i._validate(e,Rs({},t,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,t){return this.validate(e,t).then(()=>!0,i=>{if(Bre.default.isError(i))return!1;throw i})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(i){if(Bre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,Ire.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var t=this.clone();return t.spec.strict=e,t}_isPresent(e){return e!=null}defined(e=Th.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(t){return t!==void 0}})}required(e=Th.mixed.required){return this.clone({presence:"required"}).withMutation(t=>t.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e}nullable(e=!0){var t=this.clone({nullable:e!==!1});return t}transform(e){var t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Th.mixed.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,pb.default)(t),s=t.exclusive||t.name&&i.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(i.exclusiveTests[t.name]=!!t.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===t.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let i=this.clone(),n=(0,XHe.default)(e).map(s=>new zHe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new WHe.default(n,t)),i}typeError(e){var t=this.clone();return t._typeError=(0,pb.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),t}oneOf(e,t=Th.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,pb.default)({message:t,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,t=Th.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,pb.default)({message:t,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(){let e=this.clone(),{label:t,meta:i}=e.spec;return{meta:i,label:t,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};db.default=co;co.prototype.__isYupSchema__=!0;for(let r of["validate","validateSync"])co.prototype[`${r}At`]=function(e,t,i={}){let{parent:n,parentPath:s,schema:o}=(0,VHe.getIn)(this,e,t,i.context);return o[r](n&&n[s],Rs({},i,{parent:n,path:e}))};for(let r of["equals","is"])co.prototype[r]=co.prototype.oneOf;for(let r of["not","nope"])co.prototype[r]=co.prototype.notOneOf;co.prototype.optional=co.prototype.notRequired});var Sre=I(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.create=Qre;ym.default=void 0;var ZHe=_He(oA());function _He(r){return r&&r.__esModule?r:{default:r}}var LT=ZHe.default,$He=LT;ym.default=$He;function Qre(){return new LT}Qre.prototype=LT.prototype});var Lh=I(Cb=>{"use strict";Object.defineProperty(Cb,"__esModule",{value:!0});Cb.default=void 0;var eje=r=>r==null;Cb.default=eje});var Dre=I(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.create=kre;Bm.default=void 0;var tje=Pre(oA()),vre=nA(),xre=Pre(Lh());function Pre(r){return r&&r.__esModule?r:{default:r}}function kre(){return new wm}var wm=class extends tje.default{constructor(){super({type:"boolean"}),this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return(0,xre.default)(t)||t===!0}})}isFalse(e=vre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return(0,xre.default)(t)||t===!1}})}};Bm.default=wm;kre.prototype=wm.prototype});var Nre=I(Qm=>{"use strict";Object.defineProperty(Qm,"__esModule",{value:!0});Qm.create=Fre;Qm.default=void 0;var ra=nA(),aA=Rre(Lh()),rje=Rre(oA());function Rre(r){return r&&r.__esModule?r:{default:r}}var ije=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,nje=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,sje=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,oje=r=>(0,aA.default)(r)||r===r.trim(),aje={}.toString();function Fre(){return new bm}var bm=class extends rje.default{constructor(){super({type:"string"}),this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let t=e!=null&&e.toString?e.toString():e;return t===aje?e:t})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,t=ra.string.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aA.default)(i)||i.length===this.resolve(e)}})}min(e,t=ra.string.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aA.default)(i)||i.length>=this.resolve(e)}})}max(e,t=ra.string.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},test(i){return(0,aA.default)(i)||i.length<=this.resolve(e)}})}matches(e,t){let i=!1,n,s;return t&&(typeof t=="object"?{excludeEmptyString:i=!1,message:n,name:s}=t:n=t),this.test({name:s||"matches",message:n||ra.string.matches,params:{regex:e},test:o=>(0,aA.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=ra.string.email){return this.matches(ije,{name:"email",message:e,excludeEmptyString:!0})}url(e=ra.string.url){return this.matches(nje,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=ra.string.uuid){return this.matches(sje,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=ra.string.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:oje})}lowercase(e=ra.string.lowercase){return this.transform(t=>(0,aA.default)(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toLowerCase()})}uppercase(e=ra.string.uppercase){return this.transform(t=>(0,aA.default)(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:t=>(0,aA.default)(t)||t===t.toUpperCase()})}};Qm.default=bm;Fre.prototype=bm.prototype});var Ore=I(vm=>{"use strict";Object.defineProperty(vm,"__esModule",{value:!0});vm.create=Lre;vm.default=void 0;var nu=nA(),su=Tre(Lh()),Aje=Tre(oA());function Tre(r){return r&&r.__esModule?r:{default:r}}var lje=r=>r!=+r;function Lre(){return new Sm}var Sm=class extends Aje.default{constructor(){super({type:"number"}),this.withMutation(()=>{this.transform(function(e){let t=e;if(typeof t=="string"){if(t=t.replace(/\s/g,""),t==="")return NaN;t=+t}return this.isType(t)?t:parseFloat(t)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!lje(e)}min(e,t=nu.number.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,su.default)(i)||i>=this.resolve(e)}})}max(e,t=nu.number.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,su.default)(i)||i<=this.resolve(e)}})}lessThan(e,t=nu.number.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},test(i){return(0,su.default)(i)||i<this.resolve(e)}})}moreThan(e,t=nu.number.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},test(i){return(0,su.default)(i)||i>this.resolve(e)}})}positive(e=nu.number.positive){return this.moreThan(0,e)}negative(e=nu.number.negative){return this.lessThan(0,e)}integer(e=nu.number.integer){return this.test({name:"integer",message:e,test:t=>(0,su.default)(t)||Number.isInteger(t)})}truncate(){return this.transform(e=>(0,su.default)(e)?e:e|0)}round(e){var t,i=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,su.default)(n)?n:Math[e](n))}};vm.default=Sm;Lre.prototype=Sm.prototype});var Mre=I(OT=>{"use strict";Object.defineProperty(OT,"__esModule",{value:!0});OT.default=uje;var cje=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function uje(r){var e=[1,4,5,6,7,10,11],t=0,i,n;if(n=cje.exec(r)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(t=n[10]*60+n[11],n[9]==="+"&&(t=0-t)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+t,n[6],n[7]))}else i=Date.parse?Date.parse(r):NaN;return i}});var Hre=I(xm=>{"use strict";Object.defineProperty(xm,"__esModule",{value:!0});xm.create=KT;xm.default=void 0;var gje=mb(Mre()),Kre=nA(),Ure=mb(Lh()),fje=mb(iu()),hje=mb(oA());function mb(r){return r&&r.__esModule?r:{default:r}}var MT=new Date(""),pje=r=>Object.prototype.toString.call(r)==="[object Date]";function KT(){return new Oh}var Oh=class extends hje.default{constructor(){super({type:"date"}),this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,gje.default)(e),isNaN(e)?MT:new Date(e))})})}_typeCheck(e){return pje(e)&&!isNaN(e.getTime())}prepareParam(e,t){let i;if(fje.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,t=Kre.date.min){let i=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Ure.default)(n)||n>=this.resolve(i)}})}max(e,t=Kre.date.max){var i=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Ure.default)(n)||n<=this.resolve(i)}})}};xm.default=Oh;Oh.INVALID_DATE=MT;KT.prototype=Oh.prototype;KT.INVALID_DATE=MT});var Gre=I((tgt,jre)=>{function dje(r,e,t,i){var n=-1,s=r==null?0:r.length;for(i&&s&&(t=r[++n]);++n<s;)t=e(t,r[n],n,r);return t}jre.exports=dje});var qre=I((rgt,Yre)=>{function Cje(r){return function(e){return r==null?void 0:r[e]}}Yre.exports=Cje});var Wre=I((igt,Jre)=>{var mje=qre(),Eje={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},Ije=mje(Eje);Jre.exports=Ije});var Vre=I((ngt,zre)=>{var yje=Wre(),wje=Vf(),Bje=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bje="\\u0300-\\u036f",Qje="\\ufe20-\\ufe2f",Sje="\\u20d0-\\u20ff",vje=bje+Qje+Sje,xje="["+vje+"]",Pje=RegExp(xje,"g");function kje(r){return r=wje(r),r&&r.replace(Bje,yje).replace(Pje,"")}zre.exports=kje});var Zre=I((sgt,Xre)=>{var Dje=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function Rje(r){return r.match(Dje)||[]}Xre.exports=Rje});var $re=I((ogt,_re)=>{var Fje=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function Nje(r){return Fje.test(r)}_re.exports=Nje});var mie=I((agt,Cie)=>{var nie="\\ud800-\\udfff",Tje="\\u0300-\\u036f",Lje="\\ufe20-\\ufe2f",Oje="\\u20d0-\\u20ff",Mje=Tje+Lje+Oje,sie="\\u2700-\\u27bf",oie="a-z\\xdf-\\xf6\\xf8-\\xff",Kje="\\xac\\xb1\\xd7\\xf7",Uje="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Hje="\\u2000-\\u206f",jje=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aie="A-Z\\xc0-\\xd6\\xd8-\\xde",Gje="\\ufe0e\\ufe0f",Aie=Kje+Uje+Hje+jje,lie="['\u2019]",eie="["+Aie+"]",Yje="["+Mje+"]",cie="\\d+",qje="["+sie+"]",uie="["+oie+"]",gie="[^"+nie+Aie+cie+sie+oie+aie+"]",Jje="\\ud83c[\\udffb-\\udfff]",Wje="(?:"+Yje+"|"+Jje+")",zje="[^"+nie+"]",fie="(?:\\ud83c[\\udde6-\\uddff]){2}",hie="[\\ud800-\\udbff][\\udc00-\\udfff]",Mh="["+aie+"]",Vje="\\u200d",tie="(?:"+uie+"|"+gie+")",Xje="(?:"+Mh+"|"+gie+")",rie="(?:"+lie+"(?:d|ll|m|re|s|t|ve))?",iie="(?:"+lie+"(?:D|LL|M|RE|S|T|VE))?",pie=Wje+"?",die="["+Gje+"]?",Zje="(?:"+Vje+"(?:"+[zje,fie,hie].join("|")+")"+die+pie+")*",_je="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$je="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",eGe=die+pie+Zje,tGe="(?:"+[qje,fie,hie].join("|")+")"+eGe,rGe=RegExp([Mh+"?"+uie+"+"+rie+"(?="+[eie,Mh,"$"].join("|")+")",Xje+"+"+iie+"(?="+[eie,Mh+tie,"$"].join("|")+")",Mh+"?"+tie+"+"+rie,Mh+"+"+iie,$je,_je,cie,tGe].join("|"),"g");function iGe(r){return r.match(rGe)||[]}Cie.exports=iGe});var Iie=I((Agt,Eie)=>{var nGe=Zre(),sGe=$re(),oGe=Vf(),aGe=mie();function AGe(r,e,t){return r=oGe(r),e=t?void 0:e,e===void 0?sGe(r)?aGe(r):nGe(r):r.match(e)||[]}Eie.exports=AGe});var UT=I((lgt,yie)=>{var lGe=Gre(),cGe=Vre(),uGe=Iie(),gGe="['\u2019]",fGe=RegExp(gGe,"g");function hGe(r){return function(e){return lGe(uGe(cGe(e).replace(fGe,"")),r,"")}}yie.exports=hGe});var Bie=I((cgt,wie)=>{var pGe=UT(),dGe=pGe(function(r,e,t){return r+(t?"_":"")+e.toLowerCase()});wie.exports=dGe});var Qie=I((ugt,bie)=>{var CGe=xB(),mGe=UT(),EGe=mGe(function(r,e,t){return e=e.toLowerCase(),r+(t?CGe(e):e)});bie.exports=EGe});var vie=I((ggt,Sie)=>{var IGe=bh(),yGe=uT(),wGe=vT();function BGe(r,e){var t={};return e=wGe(e,3),yGe(r,function(i,n,s){IGe(t,e(i,n,s),i)}),t}Sie.exports=BGe});var Pie=I((fgt,HT)=>{HT.exports=function(r){return xie(bGe(r),r)};HT.exports.array=xie;function xie(r,e){var t=r.length,i=new Array(t),n={},s=t,o=QGe(e),a=SGe(r);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(r[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var h;try{h=", node was:"+JSON.stringify(c)}catch{h=""}throw new Error("Cyclic dependency"+h)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var p=o.get(c)||new Set;if(p=Array.from(p),u=p.length){g.add(c);do{var d=p[--u];l(d,a.get(d),g)}while(u);g.delete(c)}i[--t]=c}}}function bGe(r){for(var e=new Set,t=0,i=r.length;t<i;t++){var n=r[t];e.add(n[0]),e.add(n[1])}return Array.from(e)}function QGe(r){for(var e=new Map,t=0,i=r.length;t<i;t++){var n=r[t];e.has(n[0])||e.set(n[0],new Set),e.has(n[1])||e.set(n[1],new Set),e.get(n[0]).add(n[1])}return e}function SGe(r){for(var e=new Map,t=0,i=r.length;t<i;t++)e.set(r[t],t);return e}});var kie=I(jT=>{"use strict";Object.defineProperty(jT,"__esModule",{value:!0});jT.default=RGe;var vGe=Eb(Am()),xGe=Eb(Pie()),PGe=dm(),kGe=Eb(iu()),DGe=Eb(xh());function Eb(r){return r&&r.__esModule?r:{default:r}}function RGe(r,e=[]){let t=[],i=[];function n(s,o){var a=(0,PGe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||t.push([o,a])}for(let s in r)if((0,vGe.default)(r,s)){let o=r[s];~i.indexOf(s)||i.push(s),kGe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,DGe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return xGe.default.array(i,t).reverse()}});var Rie=I(GT=>{"use strict";Object.defineProperty(GT,"__esModule",{value:!0});GT.default=FGe;function Die(r,e){let t=1/0;return r.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return t=n,!0}),t}function FGe(r){return(e,t)=>Die(r,e)-Die(r,t)}});var Kie=I(km=>{"use strict";Object.defineProperty(km,"__esModule",{value:!0});km.create=Mie;km.default=void 0;var Fie=ia(Am()),Nie=ia(Bie()),NGe=ia(Qie()),TGe=ia(vie()),LGe=ia(xT()),OGe=dm(),Tie=nA(),MGe=ia(kie()),Oie=ia(Rie()),KGe=ia(rb()),UGe=ia(eu()),YT=ia(oA());function ia(r){return r&&r.__esModule?r:{default:r}}function Kh(){return Kh=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Kh.apply(this,arguments)}var Lie=r=>Object.prototype.toString.call(r)==="[object Object]";function HGe(r,e){let t=Object.keys(r.fields);return Object.keys(e).filter(i=>t.indexOf(i)===-1)}var jGe=(0,Oie.default)([]),Pm=class extends YT.default{constructor(e){super({type:"object"}),this.fields=Object.create(null),this._sortErrors=jGe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch{i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Lie(e)||typeof e=="function"}_cast(e,t={}){var i;let n=super._cast(e,t);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=t.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=Kh({},t,{parent:l,__validating:t.__validating||!1}),u=!1;for(let g of a){let h=s[g],p=(0,Fie.default)(n,g);if(h){let d,m=n[g];c.path=(t.path?`${t.path}.`:"")+g,h=h.resolve({value:m,context:t.context,parent:l});let y="spec"in h?h.spec:void 0,B=y==null?void 0:y.strict;if(y!=null&&y.strip){u=u||g in n;continue}d=!t.__validating||!B?h.cast(n[g],c):n[g],d!==void 0&&(l[g]=d)}else p&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,t={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=t;o=[{schema:this,value:a},...o],t.__validating=!0,t.originalValue=a,t.from=o,super._validate(e,t,(u,g)=>{if(u){if(!UGe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Lie(g)){i(n[0]||null,g);return}a=a||g;let h=this._nodes.map(p=>(d,m)=>{let y=p.indexOf(".")===-1?(t.path?`${t.path}.`:"")+p:`${t.path||""}["${p}"]`,B=this.fields[p];if(B&&"validate"in B){B.validate(g[p],Kh({},t,{path:y,from:o,strict:!0,parent:g,originalValue:a[p]}),m);return}m(null)});(0,KGe.default)({sync:s,tests:h,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:t.path},i)})}clone(e){let t=super.clone(e);return t.fields=Kh({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),i=t.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof YT.default&&s instanceof YT.default&&(i[n]=s.concat(o))}return t.withMutation(()=>t.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(t=>{let i=this.fields[t];e[t]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,t=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Oie.default)(Object.keys(n)),t.length){Array.isArray(t[0])||(t=[t]);let s=t.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,MGe.default)(n,i._excludedEdges),i}pick(e){let t={};for(let i of e)this.fields[i]&&(t[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(t)))}omit(e){let t=this.clone(),i=t.fields;t.fields={};for(let n of e)delete i[n];return t.withMutation(()=>t.shape(i))}from(e,t,i){let n=(0,OGe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,Fie.default)(s,e)&&(o=Kh({},s),i||delete o[e],o[t]=n(s)),o})}noUnknown(e=!0,t=Tie.object.noUnknown){typeof e=="string"&&(t=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:t,test(n){if(n==null)return!0;let s=HGe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,t=Tie.object.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>t&&(0,TGe.default)(t,(i,n)=>e(n)))}camelCase(){return this.transformKeys(NGe.default)}snakeCase(){return this.transformKeys(Nie.default)}constantCase(){return this.transformKeys(e=>(0,Nie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,LGe.default)(this.fields,t=>t.describe()),e}};km.default=Pm;function Mie(r){return new Pm(r)}Mie.prototype=Pm.prototype});var Hie=I(Rm=>{"use strict";Object.defineProperty(Rm,"__esModule",{value:!0});Rm.create=Uie;Rm.default=void 0;var qT=Uh(Lh()),GGe=Uh(xh()),YGe=Uh(am()),JT=nA(),qGe=Uh(rb()),JGe=Uh(eu()),WGe=Uh(oA());function Uh(r){return r&&r.__esModule?r:{default:r}}function Ib(){return Ib=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=t[i])}return r},Ib.apply(this,arguments)}function Uie(r){return new Dm(r)}var Dm=class extends WGe.default{constructor(e){super({type:"array"}),this.innerType=e,this.withMutation(()=>{this.transform(function(t){if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return this.isType(t)?t:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,t){let i=super._cast(e,t);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,Ib({},t,{path:`${t.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,t={},i){var n,s;let o=[],a=t.sync,l=t.path,c=this.innerType,u=(n=t.abortEarly)!=null?n:this.spec.abortEarly,g=(s=t.recursive)!=null?s:this.spec.recursive,h=t.originalValue!=null?t.originalValue:e;super._validate(e,t,(p,d)=>{if(p){if(!JGe.default.isError(p)||u)return void i(p,d);o.push(p)}if(!g||!c||!this._typeCheck(d)){i(o[0]||null,d);return}h=h||d;let m=new Array(d.length);for(let y=0;y<d.length;y++){let B=d[y],S=`${t.path||""}[${y}]`,P=Ib({},t,{path:S,strict:!0,parent:d,index:y,originalValue:h[y]});m[y]=(F,H)=>c.validate(B,P,H)}(0,qGe.default)({sync:a,path:l,value:d,errors:o,endEarly:u,tests:m},i)})}clone(e){let t=super.clone(e);return t.innerType=this.innerType,t}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!(0,GGe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,YGe.default)(e));return t.innerType=e,t}length(e,t=JT.array.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},test(i){return(0,qT.default)(i)||i.length===this.resolve(e)}})}min(e,t){return t=t||JT.array.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},test(i){return(0,qT.default)(i)||i.length>=this.resolve(e)}})}max(e,t){return t=t||JT.array.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},test(i){return(0,qT.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(t):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};Rm.default=Dm;Uie.prototype=Dm.prototype});var jie=I(Fm=>{"use strict";Object.defineProperty(Fm,"__esModule",{value:!0});Fm.create=XGe;Fm.default=void 0;var zGe=VGe(xh());function VGe(r){return r&&r.__esModule?r:{default:r}}function XGe(r){return new yb(r)}var yb=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(t,i={})=>{let n=this.builder(t,i);if(!(0,zGe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,t){return this._resolve(e,t).cast(e,t)}validate(e,t,i){return this._resolve(e,t).validate(e,t,i)}validateSync(e,t){return this._resolve(e,t).validateSync(e,t)}validateAt(e,t,i){return this._resolve(t,i).validateAt(e,t,i)}validateSyncAt(e,t,i){return this._resolve(t,i).validateSyncAt(e,t,i)}describe(){return null}isValid(e,t){return this._resolve(e,t).isValid(e,t)}isValidSync(e,t){return this._resolve(e,t).isValidSync(e,t)}},ZGe=yb;Fm.default=ZGe});var Gie=I(WT=>{"use strict";Object.defineProperty(WT,"__esModule",{value:!0});WT.default=eYe;var _Ge=$Ge(nA());function $Ge(r){return r&&r.__esModule?r:{default:r}}function eYe(r){Object.keys(r).forEach(e=>{Object.keys(r[e]).forEach(t=>{_Ge.default[e][t]=r[e][t]})})}});var VT=I(Er=>{"use strict";Object.defineProperty(Er,"__esModule",{value:!0});Er.addMethod=aYe;Object.defineProperty(Er,"MixedSchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(Er,"mixed",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(Er,"BooleanSchema",{enumerable:!0,get:function(){return zT.default}});Object.defineProperty(Er,"bool",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"boolean",{enumerable:!0,get:function(){return zT.create}});Object.defineProperty(Er,"StringSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(Er,"string",{enumerable:!0,get:function(){return qie.create}});Object.defineProperty(Er,"NumberSchema",{enumerable:!0,get:function(){return Jie.default}});Object.defineProperty(Er,"number",{enumerable:!0,get:function(){return Jie.create}});Object.defineProperty(Er,"DateSchema",{enumerable:!0,get:function(){return Wie.default}});Object.defineProperty(Er,"date",{enumerable:!0,get:function(){return Wie.create}});Object.defineProperty(Er,"ObjectSchema",{enumerable:!0,get:function(){return zie.default}});Object.defineProperty(Er,"object",{enumerable:!0,get:function(){return zie.create}});Object.defineProperty(Er,"ArraySchema",{enumerable:!0,get:function(){return Vie.default}});Object.defineProperty(Er,"array",{enumerable:!0,get:function(){return Vie.create}});Object.defineProperty(Er,"ref",{enumerable:!0,get:function(){return tYe.create}});Object.defineProperty(Er,"lazy",{enumerable:!0,get:function(){return rYe.create}});Object.defineProperty(Er,"ValidationError",{enumerable:!0,get:function(){return iYe.default}});Object.defineProperty(Er,"reach",{enumerable:!0,get:function(){return nYe.default}});Object.defineProperty(Er,"isSchema",{enumerable:!0,get:function(){return Xie.default}});Object.defineProperty(Er,"setLocale",{enumerable:!0,get:function(){return sYe.default}});Object.defineProperty(Er,"BaseSchema",{enumerable:!0,get:function(){return oYe.default}});var Yie=ou(Sre()),zT=ou(Dre()),qie=ou(Nre()),Jie=ou(Ore()),Wie=ou(Hre()),zie=ou(Kie()),Vie=ou(Hie()),tYe=iu(),rYe=jie(),iYe=Nm(eu()),nYe=Nm(TT()),Xie=Nm(xh()),sYe=Nm(Gie()),oYe=Nm(oA());function Nm(r){return r&&r.__esModule?r:{default:r}}function Zie(){if(typeof WeakMap!="function")return null;var r=new WeakMap;return Zie=function(){return r},r}function ou(r){if(r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var e=Zie();if(e&&e.has(r))return e.get(r);var t={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in r)if(Object.prototype.hasOwnProperty.call(r,n)){var s=i?Object.getOwnPropertyDescriptor(r,n):null;s&&(s.get||s.set)?Object.defineProperty(t,n,s):t[n]=r[n]}return t.default=r,e&&e.set(r,t),t}function aYe(r,e,t){if(!r||!(0,Xie.default)(r.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof t!="function")throw new TypeError("Method function must be provided");r.prototype[e]=t}});var rne=I((Fgt,Lm)=>{"use strict";var cYe=process.env.TERM_PROGRAM==="Hyper",uYe=process.platform==="win32",$ie=process.platform==="linux",XT={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},ene=Object.assign({},XT,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),tne=Object.assign({},XT,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:$ie?"\u25B8":"\u276F",pointerSmall:$ie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});Lm.exports=uYe&&!cYe?ene:tne;Reflect.defineProperty(Lm.exports,"common",{enumerable:!1,value:XT});Reflect.defineProperty(Lm.exports,"windows",{enumerable:!1,value:ene});Reflect.defineProperty(Lm.exports,"other",{enumerable:!1,value:tne})});var uo=I((Ngt,ZT)=>{"use strict";var gYe=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),fYe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ine=()=>{let r={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(r.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`\x1B[${s.codes[0]}m`,a=s.close=`\x1B[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},t=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(r.enabled===!1)return s;if(r.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=t(r.styles[o[c]],a,l);return a},n=(s,o,a)=>{r.styles[s]=e({name:s,codes:o}),(r.keys[a]||(r.keys[a]=[])).push(s),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(c){r.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,r),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),r.ansiRegex=fYe,r.hasColor=r.hasAnsi=s=>(r.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&r.ansiRegex.test(s)),r.alias=(s,o)=>{let a=typeof o=="string"?r[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),r.styles[s]=a,a.stack=[s]),Reflect.defineProperty(r,s,{configurable:!0,enumerable:!0,set(l){r.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,r),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},r.theme=s=>{if(!gYe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))r.alias(o,s[o]);return r},r.alias("unstyle",s=>typeof s=="string"&&s!==""?(r.ansiRegex.lastIndex=0,s.replace(r.ansiRegex,"")):""),r.alias("noop",s=>s),r.none=r.clear=r.noop,r.stripColor=r.unstyle,r.symbols=rne(),r.define=n,r};ZT.exports=ine();ZT.exports.create=ine});var Yi=I(Ft=>{"use strict";var hYe=Object.prototype.toString,Fs=uo(),nne=!1,_T=[],sne={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};Ft.longest=(r,e)=>r.reduce((t,i)=>Math.max(t,e?i[e].length:i.length),0);Ft.hasColor=r=>!!r&&Fs.hasColor(r);var Bb=Ft.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Ft.nativeType=r=>hYe.call(r).slice(8,-1).toLowerCase().replace(/\s/g,"");Ft.isAsyncFn=r=>Ft.nativeType(r)==="asyncfunction";Ft.isPrimitive=r=>r!=null&&typeof r!="object"&&typeof r!="function";Ft.resolve=(r,e,...t)=>typeof e=="function"?e.call(r,...t):e;Ft.scrollDown=(r=[])=>[...r.slice(1),r[0]];Ft.scrollUp=(r=[])=>[r.pop(),...r];Ft.reorder=(r=[])=>{let e=r.slice();return e.sort((t,i)=>t.index>i.index?1:t.index<i.index?-1:0),e};Ft.swap=(r,e,t)=>{let i=r.length,n=t===i?0:t<0?i-1:t,s=r[e];r[e]=r[n],r[n]=s};Ft.width=(r,e=80)=>{let t=r&&r.columns?r.columns:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[0]),process.platform==="win32"?t-1:t};Ft.height=(r,e=20)=>{let t=r&&r.rows?r.rows:e;return r&&typeof r.getWindowSize=="function"&&(t=r.getWindowSize()[1]),t};Ft.wordWrap=(r,e={})=>{if(!r)return r;typeof e=="number"&&(e={width:e});let{indent:t="",newline:i=` -`+t,width:n=80}=e,s=(i+t).match(/[^\S\n]/g)||[];n-=s.length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=r.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),t+c.join(i)};Ft.unmute=r=>{let e=r.stack.find(i=>Fs.keys.color.includes(i));return e?Fs[e]:r.stack.find(i=>i.slice(2)==="bg")?Fs[e.slice(2)]:i=>i};Ft.pascal=r=>r?r[0].toUpperCase()+r.slice(1):"";Ft.inverse=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i));if(e){let i=Fs["bg"+Ft.pascal(e)];return i?i.black:r}let t=r.stack.find(i=>i.slice(0,2)==="bg");return t?Fs[t.slice(2).toLowerCase()]||r:Fs.none};Ft.complement=r=>{if(!r||!r.stack)return r;let e=r.stack.find(i=>Fs.keys.color.includes(i)),t=r.stack.find(i=>i.slice(0,2)==="bg");if(e&&!t)return Fs[sne[e]||e];if(t){let i=t.slice(2).toLowerCase(),n=sne[i];return n&&Fs["bg"+Ft.pascal(n)]||r}return Fs.none};Ft.meridiem=r=>{let e=r.getHours(),t=r.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=t<10?"0"+t:t;return n+":"+s+" "+i};Ft.set=(r={},e="",t)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:t;return!Ft.isObject(a)&&s<o.length-1&&(a={}),i[n]=a},r);Ft.get=(r={},e="",t)=>{let i=r[e]==null?e.split(".").reduce((n,s)=>n&&n[s],r):r[e];return i==null?t:i};Ft.mixin=(r,e)=>{if(!Bb(r))return e;if(!Bb(e))return r;for(let t of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,t);if(i.hasOwnProperty("value"))if(r.hasOwnProperty(t)&&Bb(i.value)){let n=Object.getOwnPropertyDescriptor(r,t);Bb(n.value)?r[t]=Ft.merge({},r[t],e[t]):Reflect.defineProperty(r,t,i)}else Reflect.defineProperty(r,t,i);else Reflect.defineProperty(r,t,i)}return r};Ft.merge=(...r)=>{let e={};for(let t of r)Ft.mixin(e,t);return e};Ft.mixinEmitter=(r,e)=>{let t=e.constructor.prototype;for(let i of Object.keys(t)){let n=t[i];typeof n=="function"?Ft.define(r,i,n.bind(e)):Ft.define(r,i,n)}};Ft.onExit=r=>{let e=(t,i)=>{nne||(nne=!0,_T.forEach(n=>n()),t===!0&&process.exit(128+i))};_T.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),_T.push(r)};Ft.define=(r,e,t)=>{Reflect.defineProperty(r,e,{value:t})};Ft.defineExport=(r,e,t)=>{let i;Reflect.defineProperty(r,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():t()}})}});var one=I(jh=>{"use strict";jh.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};jh.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};jh.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};jh.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};jh.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var lne=I((Ogt,Ane)=>{"use strict";var ane=J("readline"),pYe=one(),dYe=/^(?:\x1b)([a-zA-Z0-9])$/,CYe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,mYe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function EYe(r){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(r)}function IYe(r){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(r)}var bb=(r="",e={})=>{let t,i={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:r,raw:r,...e};if(Buffer.isBuffer(r)?r[0]>127&&r[1]===void 0?(r[0]-=128,r="\x1B"+String(r)):r=String(r):r!==void 0&&typeof r!="string"?r=String(r):r||(r=i.sequence||""),i.sequence=i.sequence||r||i.name,r==="\r")i.raw=void 0,i.name="return";else if(r===` -`)i.name="enter";else if(r===" ")i.name="tab";else if(r==="\b"||r==="\x7F"||r==="\x1B\x7F"||r==="\x1B\b")i.name="backspace",i.meta=r.charAt(0)==="\x1B";else if(r==="\x1B"||r==="\x1B\x1B")i.name="escape",i.meta=r.length===2;else if(r===" "||r==="\x1B ")i.name="space",i.meta=r.length===2;else if(r<="")i.name=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(r.length===1&&r>="0"&&r<="9")i.name="number";else if(r.length===1&&r>="a"&&r<="z")i.name=r;else if(r.length===1&&r>="A"&&r<="Z")i.name=r.toLowerCase(),i.shift=!0;else if(t=dYe.exec(r))i.meta=!0,i.shift=/^[A-Z]$/.test(t[1]);else if(t=CYe.exec(r)){let n=[...r];n[0]==="\x1B"&&n[1]==="\x1B"&&(i.option=!0);let s=[t[1],t[2],t[4],t[6]].filter(Boolean).join(""),o=(t[3]||t[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=mYe[s],i.shift=EYe(s)||i.shift,i.ctrl=IYe(s)||i.ctrl}return i};bb.listen=(r={},e)=>{let{stdin:t}=r;if(!t||t!==process.stdin&&!t.isTTY)throw new Error("Invalid stream passed");let i=ane.createInterface({terminal:!0,input:t});ane.emitKeypressEvents(t,i);let n=(a,l)=>e(a,bb(a,l),i),s=t.isRaw;return t.isTTY&&t.setRawMode(!0),t.on("keypress",n),i.resume(),()=>{t.isTTY&&t.setRawMode(s),t.removeListener("keypress",n),i.pause(),i.close()}};bb.action=(r,e,t)=>{let i={...pYe,...t};return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};Ane.exports=bb});var une=I((Mgt,cne)=>{"use strict";cne.exports=r=>{r.timers=r.timers||{};let e=r.options.timers;if(!!e)for(let t of Object.keys(e)){let i=e[t];typeof i=="number"&&(i={interval:i}),yYe(r,t,i)}};function yYe(r,e,t={}){let i=r.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=t.interval||120;i.frames=t.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,r.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),r.once("close",()=>i.stop()),i.stop}});var fne=I((Kgt,gne)=>{"use strict";var{define:wYe,width:BYe}=Yi(),$T=class{constructor(e){let t=e.options;wYe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=BYe(t.stdout||process.stdout),Object.assign(this,t),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let t=this._color||e[this.status];return typeof t=="function"?t:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};gne.exports=$T});var pne=I((Ugt,hne)=>{"use strict";var eL=Yi(),ki=uo(),tL={default:ki.noop,noop:ki.noop,set inverse(r){this._inverse=r},get inverse(){return this._inverse||eL.inverse(this.primary)},set complement(r){this._complement=r},get complement(){return this._complement||eL.complement(this.primary)},primary:ki.cyan,success:ki.green,danger:ki.magenta,strong:ki.bold,warning:ki.yellow,muted:ki.dim,disabled:ki.gray,dark:ki.dim.gray,underline:ki.underline,set info(r){this._info=r},get info(){return this._info||this.primary},set em(r){this._em=r},get em(){return this._em||this.primary.underline},set heading(r){this._heading=r},get heading(){return this._heading||this.muted.underline},set pending(r){this._pending=r},get pending(){return this._pending||this.primary},set submitted(r){this._submitted=r},get submitted(){return this._submitted||this.success},set cancelled(r){this._cancelled=r},get cancelled(){return this._cancelled||this.danger},set typing(r){this._typing=r},get typing(){return this._typing||this.dim},set placeholder(r){this._placeholder=r},get placeholder(){return this._placeholder||this.primary.dim},set highlight(r){this._highlight=r},get highlight(){return this._highlight||this.inverse}};tL.merge=(r={})=>{r.styles&&typeof r.styles.enabled=="boolean"&&(ki.enabled=r.styles.enabled),r.styles&&typeof r.styles.visible=="boolean"&&(ki.visible=r.styles.visible);let e=eL.merge({},tL,r.styles);delete e.merge;for(let t of Object.keys(ki))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});for(let t of Object.keys(ki.styles))e.hasOwnProperty(t)||Reflect.defineProperty(e,t,{get:()=>ki[t]});return e};hne.exports=tL});var Cne=I((Hgt,dne)=>{"use strict";var rL=process.platform==="win32",AA=uo(),bYe=Yi(),iL={...AA.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:AA.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:AA.symbols.question,submitted:AA.symbols.check,cancelled:AA.symbols.cross},separator:{pending:AA.symbols.pointerSmall,submitted:AA.symbols.middot,cancelled:AA.symbols.middot},radio:{off:rL?"( )":"\u25EF",on:rL?"(*)":"\u25C9",disabled:rL?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};iL.merge=r=>{let e=bYe.merge({},AA.symbols,iL,r.symbols);return delete e.merge,e};dne.exports=iL});var Ene=I((jgt,mne)=>{"use strict";var QYe=pne(),SYe=Cne(),vYe=Yi();mne.exports=r=>{r.options=vYe.merge({},r.options.theme,r.options),r.symbols=SYe.merge(r.options),r.styles=QYe.merge(r.options)}});var bne=I((wne,Bne)=>{"use strict";var Ine=process.env.TERM_PROGRAM==="Apple_Terminal",xYe=uo(),nL=Yi(),go=Bne.exports=wne,kr="\x1B[",yne="\x07",sL=!1,pl=go.code={bell:yne,beep:yne,beginning:`${kr}G`,down:`${kr}J`,esc:kr,getPosition:`${kr}6n`,hide:`${kr}?25l`,line:`${kr}2K`,lineEnd:`${kr}K`,lineStart:`${kr}1K`,restorePosition:kr+(Ine?"8":"u"),savePosition:kr+(Ine?"7":"s"),screen:`${kr}2J`,show:`${kr}?25h`,up:`${kr}1J`},au=go.cursor={get hidden(){return sL},hide(){return sL=!0,pl.hide},show(){return sL=!1,pl.show},forward:(r=1)=>`${kr}${r}C`,backward:(r=1)=>`${kr}${r}D`,nextLine:(r=1)=>`${kr}E`.repeat(r),prevLine:(r=1)=>`${kr}F`.repeat(r),up:(r=1)=>r?`${kr}${r}A`:"",down:(r=1)=>r?`${kr}${r}B`:"",right:(r=1)=>r?`${kr}${r}C`:"",left:(r=1)=>r?`${kr}${r}D`:"",to(r,e){return e?`${kr}${e+1};${r+1}H`:`${kr}${r+1}G`},move(r=0,e=0){let t="";return t+=r<0?au.left(-r):r>0?au.right(r):"",t+=e<0?au.up(-e):e>0?au.down(e):"",t},restore(r={}){let{after:e,cursor:t,initial:i,input:n,prompt:s,size:o,value:a}=r;if(i=nL.isPrimitive(i)?String(i):"",n=nL.isPrimitive(n)?String(n):"",a=nL.isPrimitive(a)?String(a):"",o){let l=go.cursor.up(o)+go.cursor.to(s.length),c=n.length-t;return c>0&&(l+=go.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+t;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),go.cursor.move(l)}}},oL=go.erase={screen:pl.screen,up:pl.up,down:pl.down,line:pl.line,lineEnd:pl.lineEnd,lineStart:pl.lineStart,lines(r){let e="";for(let t=0;t<r;t++)e+=go.erase.line+(t<r-1?go.cursor.up(1):"");return r&&(e+=go.code.beginning),e}};go.clear=(r="",e=process.stdout.columns)=>{if(!e)return oL.line+au.to(0);let t=s=>[...xYe.unstyle(s)].length,i=r.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(t(s)-1,0)/e);return(oL.line+au.prevLine()).repeat(n-1)+oL.line+au.to(0)}});var Gh=I((Ggt,Sne)=>{"use strict";var PYe=J("events"),Qne=uo(),aL=lne(),kYe=une(),DYe=fne(),RYe=Ene(),Rn=Yi(),Au=bne(),Om=class extends PYe{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,RYe(this),kYe(this),this.state=new DYe(this),this.initial=[e.initial,e.default].find(t=>t!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=NYe(this.options.margin),this.setMaxListeners(0),FYe(this)}async keypress(e,t={}){this.keypressed=!0;let i=aL.action(e,aL(e,t),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Au.code.beep)}cursorHide(){this.stdout.write(Au.cursor.hide()),Rn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Au.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let t=this.state.buffer;this.state.buffer="",!(!t&&!e||this.options.show===!1)&&this.stdout.write(Au.cursor.down(e)+Au.clear(t,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:t,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:t,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Au.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:t,prompt:i}=this.state;i=Qne.unstyle(i);let n=Qne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` -`),c=l[0],u=l[l.length-1],h=(i+(t?" "+t:"")).length,p=h<c.length?c.slice(h+1):"";return{header:o,prompt:c,after:p,rest:l.slice(1),last:u}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let t=` -`+this.symbols.pointer+" ";typeof e=="string"?t+=e.trim():t+="Invalid input",this.state.error=` -`+this.styles.danger(t),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),t=Math.ceil(e.prompt.length/this.width);e.rest&&this.write(Au.cursor.down(e.rest.length)),this.write(` -`.repeat(t))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=aL.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:t,result:i}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>i.call(this,this.value),typeof t.initial=="function"&&(this.initial=await t.initial.call(this,this)),typeof t.onRun=="function"&&await t.onRun.call(this,this),typeof t.onSubmit=="function"){let n=t.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,t)=>{if(this.once("submit",e),this.once("cancel",t),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,t,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=t&&t[e]!=null?t[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,t,i);return!g&&t&&t[e]?this.resolve(c,s,t,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,t=this.timers&&this.timers.prefix,i=this.state;return i.timer=t,Rn.isObject(e)&&(e=e[i.status]||e.pending),Rn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Rn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,t=this.timers&&this.timers.separator,i=this.state;i.timer=t;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return Rn.isObject(s)&&(s=s[i.status]||s.pending),Rn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,t){let i=await this.element("pointer",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===t,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=Rn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,t){let i=await this.element("indicator",e,t);if(typeof i=="string"&&Rn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return Rn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Rn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...t){return Rn.resolve(this,e,...t)}get base(){return Om.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Rn.height(this.stdout,25)}get width(){return this.options.columns||Rn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:t}=this.state,i=[t,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function FYe(r){let e=n=>r[n]===void 0||typeof r[n]=="function",t=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(r.options)){if(t.includes(n)||/^on[A-Z]/.test(n))continue;let s=r.options[n];typeof s=="function"&&e(n)?i.includes(n)||(r[n]=s.bind(r)):typeof r[n]!="function"&&(r[n]=s)}}function NYe(r){typeof r=="number"&&(r=[r,r,r,r]);let e=[].concat(r||[]),t=n=>n%2===0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=t(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}Sne.exports=Om});var Pne=I((Ygt,xne)=>{"use strict";var TYe=Yi(),vne={default(r,e){return e},checkbox(r,e){throw new Error("checkbox role is not implemented yet")},editable(r,e){throw new Error("editable role is not implemented yet")},expandable(r,e){throw new Error("expandable role is not implemented yet")},heading(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||"",e},input(r,e){throw new Error("input role is not implemented yet")},option(r,e){return vne.default(r,e)},radio(r,e){throw new Error("radio role is not implemented yet")},separator(r,e){return e.disabled="",e.indicator=[e.indicator," "].find(t=>t!=null),e.message=e.message||r.symbols.line.repeat(5),e},spacer(r,e){return e}};xne.exports=(r,e={})=>{let t=TYe.merge({},vne,e.roles);return t[r]||t.default}});var Mm=I((qgt,Rne)=>{"use strict";var LYe=uo(),OYe=Gh(),MYe=Pne(),Qb=Yi(),{reorder:AL,scrollUp:KYe,scrollDown:UYe,isObject:kne,swap:HYe}=Qb,lL=class extends OYe{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:t,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");kne(t)&&(t=Object.keys(t)),Array.isArray(t)?(i!=null&&(this.index=this.findIndex(i)),t.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(t=i),typeof t=="string"&&(t=this.findIndex(t)),typeof t=="number"&&t>-1&&(this.index=Math.max(0,Math.min(t,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,t){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l<o.length;l++){let c=o[l]=await this.toChoice(o[l],n++,a);i.push(c),c.choices&&await s(c.choices,c)}return i};return s(e,t).then(o=>(this.state.loadingChoices=!1,o))}async toChoice(e,t,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=MYe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=t,e.cursor=0,Qb.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,LYe.unstyle(e.message).length));let o={...e};return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,t)),e}async onChoice(e,t){this.emit("choice",e,t,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,t)}async addChoice(e,t,i){let n=await this.toChoice(e,t,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,t,i){let n={name:"New choice name?",editable:!0,newChoice:!0,...e},s=await this.addChoice(n,t,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,t){if(this.multiple&&this[t.name])return this[t.name]();this.alert()}focus(e,t){return typeof t!="boolean"&&(t=e.enabled),t&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=t&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(t=>t.enabled);return this.choices.forEach(t=>t.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(t=>!!t.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,t){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof t!="boolean"&&(t=!e.enabled),e.enabled=t,e.choices&&e.choices.forEach(n=>this.toggle(n,t));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return Dne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let t=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=AL(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=t(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=AL(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,t=AL(this.choices);return this.choices=t.slice(e).concat(t.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>t&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,t=this.visible.length,i=this.index;return this.options.scroll===!1&&i===t-1?this.alert():e>t&&i===t-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=KYe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=UYe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){HYe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(t=>this.isEnabled(t));if(e.choices){let t=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&t.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,t){return e.name===t||e.index===Number(t)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(t=>this.isChoice(e,t)):this.isChoice(e,this.initial)}map(e=[],t="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,t),i),{})}filter(e,t){let n=typeof e=="function"?e:(a,l)=>[a.name,l].includes(e),o=(this.options.multiple?this.state._choices:this.choices).filter(n);return t?o.map(a=>a[t]):o}find(e,t){if(kne(e))return t?e[t]:e;let n=typeof e=="function"?e:(o,a)=>[o.name,a].includes(e),s=this.choices.find(n);if(s)return t?s[t]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:t,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&t!==!1&&i!==!0&&(s=Qb.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let t of e)this.state._choices.some(i=>i.name===t.name)||this.state._choices.push(t);if(!this._initial&&this.options.initial){this._initial=!0;let t=this.initial;if(typeof t=="string"||typeof t=="number"){let i=this.find(t);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return Dne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:t,choices:i}=this,n=e.limit||this._limit||t.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Dne(r,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Qb.isAsyncFn(e))return e;e=e.call(r,r)}for(let t of e){if(Array.isArray(t.choices)){let i=t.choices.filter(n=>!r.isDisabled(n));t.enabled=i.every(n=>n.enabled===!0)}r.isDisabled(t)===!0&&delete t.enabled}return e}Rne.exports=lL});var dl=I((Jgt,Fne)=>{"use strict";var jYe=Mm(),cL=Yi(),uL=class extends jYe{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,t){return!this.multiple||this.options.pointer?super.pointer(e,t):""}indicator(e,t){return this.multiple?super.indicator(e,t):""}choiceMessage(e,t){let i=this.resolve(e.message,this.state,e,t);return e.role==="heading"&&!cL.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,t)}choiceSeparator(){return":"}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await this.indicator(e,t)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,t);o&&!cL.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,t),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(cL.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),t=await Promise.all(e);t.length||t.push(this.styles.danger("No matching choices"));let i=this.margin[0]+t.join(` -`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` -`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:t}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(t),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Fne.exports=uL});var Tne=I((Wgt,Nne)=>{"use strict";var GYe=dl(),YYe=(r,e)=>{let t=r.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(t),o=e(i.slice(s,s+t.length));return s>=0?i.slice(0,s)+o+i.slice(s+t.length):i}},gL=class extends GYe{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:t,input:i}=this.state;return this.input=i.slice(0,t)+e+i.slice(t),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:t}=this.state;return t?(this.input=t.slice(0,e-1)+t.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:t}=this.state;return t[e]===void 0?this.alert():(this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,t=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,t);let i=e.toLowerCase();return t.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,t=YYe(this.input,e),i=this.choices;this.choices=i.map(n=>({...n,message:t(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nne.exports=gL});var hL=I((zgt,Lne)=>{"use strict";var fL=Yi();Lne.exports=(r,e={})=>{r.cursorHide();let{input:t="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||r.styles.placeholder,l=fL.inverse(r.styles.primary),c=m=>l(r.styles.black(m)),u=t,g=" ",h=c(g);if(r.blink&&r.blink.off===!0&&(c=m=>m,h=""),s&&n===0&&i===""&&t==="")return c(g);if(s&&n===0&&(t===i||t===""))return c(i[0])+a(i.slice(1));i=fL.isPrimitive(i)?`${i}`:"",t=fL.isPrimitive(t)?`${t}`:"";let p=i&&i.startsWith(t)&&i!==t,d=p?c(i[t.length]):h;if(n!==t.length&&s===!0&&(u=t.slice(0,n)+c(t[n])+t.slice(n+1),d=""),s===!1&&(d=""),p){let m=r.styles.unstyle(u+d);return u+d+a(i.slice(m.length))}return u+d}});var Sb=I((Vgt,One)=>{"use strict";var qYe=uo(),JYe=dl(),WYe=hL(),pL=class extends JYe{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(t=>t!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(t=>t.reset&&t.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let t=this.focused;if(!t)return this.alert();let{cursor:i,input:n}=t;return t.value=t.input=n.slice(0,i)+e+n.slice(i),t.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:t,input:i}=e;return e.value=e.input=i.slice(0,t-1)+i.slice(t),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:t,input:i}=e;if(i[t]===void 0)return this.alert();let n=`${i}`.slice(0,t)+`${i}`.slice(t+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,t){return this.dispatch(e,t)}number(e,t){return this.dispatch(e,t)}next(){let e=this.focused;if(!e)return this.alert();let{initial:t,input:i}=e;return t&&t.startsWith(i)&&i!==t?(e.value=e.input=t,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,t){let i=await this.resolve(e.separator,this.state,e,t)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,t){await this.onChoice(e,t);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:h,danger:p}=n,d=l,m=this.index===t,y=e.validate||(()=>!0),B=await this.choiceSeparator(e,t),S=e.message;this.align==="right"&&(S=S.padStart(this.longest+1," ")),this.align==="left"&&(S=S.padEnd(this.longest+1," "));let P=this.values[a]=c||o,F=c?"success":"dark";await y.call(e,P,this.state)!==!0&&(F="danger");let H=n[F],q=H(await this.indicator(e,t))+(e.pad||""),_=this.indent(e),X=()=>[_,q,S+B,c,d].filter(Boolean).join(" ");if(i.submitted)return S=qYe.unstyle(S),c=g(c),d="",X();if(e.format)c=await e.format.call(this,c,e,t);else{let W=this.styles.muted;c=WYe(this,{input:c,initial:o,pos:s,showCursor:m,color:W})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,P,e,t)),m&&(S=h(S)),e.error?c+=(c?" ":"")+p(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),X()}async submit(){return this.value=this.values,super.base.submit.call(this)}};One.exports=pL});var dL=I((Xgt,Kne)=>{"use strict";var zYe=Sb(),VYe=()=>{throw new Error("expected prompt to have a custom authenticate method")},Mne=(r=VYe)=>{class e extends zYe{constructor(i){super(i)}async submit(){this.value=await r.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Mne(i)}}return e};Kne.exports=Mne()});var jne=I((Zgt,Hne)=>{"use strict";var XYe=dL();function ZYe(r,e){return r.username===this.options.username&&r.password===this.options.password}var Une=(r=ZYe)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class t extends XYe.create(r){constructor(n){super({...n,choices:e})}static create(n){return Une(n)}}return t};Hne.exports=Une()});var vb=I((_gt,Gne)=>{"use strict";var _Ye=Gh(),{isPrimitive:$Ye,hasColor:eqe}=Yi(),CL=class extends _Ye{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:t,state:i}=this;return i.submitted?t.success(e):t.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return $Ye(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return eqe(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),h=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(t),this.write([l,a,h].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Gne.exports=CL});var qne=I(($gt,Yne)=>{"use strict";var tqe=vb(),mL=class extends tqe{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yne.exports=mL});var Wne=I((eft,Jne)=>{"use strict";var rqe=dl(),iqe=Sb(),Yh=iqe.prototype,EL=class extends rqe{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(t=>t!=null),this.emptyError="",this.values={}}dispatch(e,t){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():Yh.dispatch.call(this,e,t)}append(e,t){return Yh.append.call(this,e,t)}delete(e,t){return Yh.delete.call(this,e,t)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?Yh.next.call(this):super.next()}prev(){return this.focused.editable?Yh.prev.call(this):super.prev()}async indicator(e,t){let i=e.indicator||"",n=e.editable?i:super.indicator(e,t);return await this.resolve(n,this.state,e,t)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,t){return e.indent="",e.editable?Yh.renderChoice.call(this,e,t):super.renderChoice(e,t)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let t of this.choices){if(typeof t.validate!="function"||t.role==="heading")continue;let i=t.parent?this.value[t.parent.name]:this.value;if(t.editable?i=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(i=t.enabled===!0),e=await t.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let t=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?t[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(t[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Jne.exports=EL});var lu=I((tft,zne)=>{"use strict";var nqe=Gh(),sqe=hL(),{isPrimitive:oqe}=Yi(),IL=class extends nqe{constructor(e){super(e),this.initial=oqe(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,t={}){let i=this.state.prevKeypress;return this.state.prevKeypress=t,this.options.multiline===!0&&t.name==="return"&&(!i||i.name!=="return")?this.append(` -`,t):super.keypress(e,t)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,t){if(!e||t.ctrl||t.code)return this.alert();this.append(e)}append(e){let{cursor:t,input:i}=this.state;this.input=`${i}`.slice(0,t)+e+`${i}`.slice(t),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:t}=this.state;if(e<=0)return this.alert();this.input=`${t}`.slice(0,e-1)+`${t}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:t}=this.state;if(t[e]===void 0)return this.alert();this.input=`${t}`.slice(0,e)+`${t}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let t=this.input.slice(0,e),i=this.input.slice(e),n=t.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let t=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||t):sqe(this,{input:e,initial:t,pos:this.cursor})}async render(){let e=this.state.size,t=await this.prefix(),i=await this.separator(),n=await this.message(),s=[t,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};zne.exports=IL});var Xne=I((rft,Vne)=>{"use strict";var aqe=r=>r.filter((e,t)=>r.lastIndexOf(e)===t),xb=r=>aqe(r).filter(Boolean);Vne.exports=(r,e={},t="")=>{let{past:i=[],present:n=""}=e,s,o;switch(r){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:xb([t,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:xb([...s,t]),present:o};case"save":return{past:xb([...i,t]),present:""};case"remove":return o=xb(i.filter(a=>a!==t)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${r}"`)}}});var wL=I((ift,_ne)=>{"use strict";var Aqe=lu(),Zne=Xne(),yL=class extends Aqe{constructor(e){super(e);let t=this.options.history;if(t&&t.store){let i=t.values||this.initial;this.autosave=!!t.autosave,this.store=t.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zne(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zne("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};_ne.exports=yL});var ese=I((nft,$ne)=>{"use strict";var lqe=lu(),BL=class extends lqe{format(){return""}};$ne.exports=BL});var rse=I((sft,tse)=>{"use strict";var cqe=lu(),bL=class extends cqe{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:t=>t;return this.list.map(e).join(", ")}async submit(e){let t=this.state.error||await this.validate(this.list,this.state);return t!==!0?(this.state.error=t,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};tse.exports=bL});var nse=I((oft,ise)=>{"use strict";var uqe=dl(),QL=class extends uqe{constructor(e){super({...e,multiple:!0})}};ise.exports=QL});var vL=I((aft,sse)=>{"use strict";var gqe=lu(),SL=class extends gqe{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let t=e||this.minor,i=this.toNumber(this.input);return i>this.max+t?this.alert():(this.input=`${i+t}`,this.render())}down(e){let t=e||this.minor,i=this.toNumber(this.input);return i<this.min-t?this.alert():(this.input=`${i-t}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(t=>this.isValue(t));return this.value=this.toNumber(e||0),super.submit()}};sse.exports=SL});var ase=I((Aft,ose)=>{ose.exports=vL()});var lse=I((lft,Ase)=>{"use strict";var fqe=lu(),xL=class extends fqe{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Ase.exports=xL});var gse=I((cft,use)=>{"use strict";var hqe=uo(),pqe=Mm(),cse=Yi(),PL=class extends pqe{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` - `;let t=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+t})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let t of this.choices){e=Math.max(e,t.message.length),t.scaleIndex=t.initial||2,t.scale=[];for(let i=0;i<this.scale.length;i++)t.scale.push({index:i})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,t){if(this.multiple)return this[t.name]?await this[t.name](e,t):await super.dispatch(e,t);this.alert()}heading(e,t,i){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(i=>` ${i.name} - ${i.message}`)].map(i=>this.styles.muted(i)).join(` -`)}renderScaleHeading(e){let t=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(t=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-t.join("").length,n=Math.round(i/(t.length-1)),o=t.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,t,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,t,i);let n=e.scaleIndex===t.index;return t.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,t){let i=e.scale.map(s=>this.scaleIndicator(e,s,t)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=await this.pointer(e,t),s=await e.hint;s&&!cse.hasColor(s)&&(s=this.styles.muted(s));let o=d=>this.margin[3]+d.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,t),u=await this.renderScale(e,t),g=this.margin[1]+this.margin[3];this.scaleLength=hqe.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let p=cse.wordWrap(c,{width:this.widths[0],newline:a}).split(` -`).map(d=>o(d)+this.margin[1]);return i&&(u=this.styles.info(u),p=p.map(d=>this.styles.info(d))),p[0]+=u,this.linebreak&&p.push(""),[l+n,p.join(` -`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),t=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...t.map(n=>n.join(" "))].join(` -`)}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),h=await this.footer(),p=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&p!=null&&(o+=this.styles.danger(p)),this.clear(t),this.write([a,o,c,g,h].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};use.exports=PL});var pse=I((uft,hse)=>{"use strict";var fse=uo(),dqe=(r="")=>typeof r=="string"?r.replace(/^['"]|['"]$/g,""):"",DL=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=dqe(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Cqe=async(r={},e={},t=i=>i)=>{let i=new Set,n=r.fields||[],s=r.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],h=()=>s[u+1],p=d=>{d.line=c,o.push(d)};for(p({type:"bos",value:""});u<s.length-1;){let d=g();if(/^[^\S\n ]$/.test(d)){p({type:"text",value:d});continue}if(d===` -`){p({type:"newline",value:d}),c++;continue}if(d==="\\"){d+=g(),p({type:"text",value:d});continue}if((d==="$"||d==="#"||d==="{")&&h()==="{"){let y=g();d+=y;let B={type:"template",open:d,inner:"",close:"",value:d},S;for(;S=g();){if(S==="}"){h()==="}"&&(S+=g()),B.value+=S,B.close=S;break}S===":"?(B.initial="",B.key=B.inner):B.initial!==void 0&&(B.initial+=S),B.value+=S,B.inner+=S}B.template=B.open+(B.initial||B.inner)+B.close,B.key=B.key||B.inner,e.hasOwnProperty(B.key)&&(B.initial=e[B.key]),B=t(B),p(B),l.push(B.key),i.add(B.key);let P=a.find(F=>F.name===B.key);B.field=n.find(F=>F.name===B.key),P||(P=new DL(B),a.push(P)),P.lines.push(B.line-1);continue}let m=o[o.length-1];m.type==="text"&&m.line===c?m.value+=d:p({type:"text",value:d})}return p({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};hse.exports=async r=>{let e=r.options,t=new Set(e.required===!0?[]:e.required||[]),i={...e.values,...e.initial},{tabstops:n,items:s,keys:o}=await Cqe(e,i),a=kL("result",r,e),l=kL("format",r,e),c=kL("validate",r,e,!0),u=r.isValue.bind(r);return async(g={},h=!1)=>{let p=0;g.required=t,g.items=s,g.keys=o,g.output="";let d=async(S,P,F,H)=>{let q=await c(S,P,F,H);return q===!1?"Invalid field "+F.name:q};for(let S of n){let P=S.value,F=S.key;if(S.type!=="template"){P&&(g.output+=P);continue}if(S.type==="template"){let H=s.find(Z=>Z.name===F);e.required===!0&&g.required.add(H.name);let q=[H.input,g.values[H.value],H.value,P].find(u),X=(H.field||{}).message||S.inner;if(h){let Z=await d(g.values[F],g,H,p);if(Z&&typeof Z=="string"||Z===!1){g.invalid.set(F,Z);continue}g.invalid.delete(F);let A=await a(g.values[F],g,H,p);g.output+=fse.unstyle(A);continue}H.placeholder=!1;let W=P;P=await l(P,g,H,p),q!==P?(g.values[F]=q,P=r.styles.typing(q),g.missing.delete(X)):(g.values[F]=void 0,q=`<${X}>`,P=r.styles.primary(q),H.placeholder=!0,g.required.has(F)&&g.missing.add(X)),g.missing.has(X)&&g.validating&&(P=r.styles.warning(q)),g.invalid.has(F)&&g.validating&&(P=r.styles.danger(q)),p===g.index&&(W!==P?P=r.styles.underline(P):P=r.styles.heading(fse.unstyle(P))),p++}P&&(g.output+=P)}let m=g.output.split(` -`).map(S=>" "+S),y=s.length,B=0;for(let S of s)g.invalid.has(S.name)&&S.lines.forEach(P=>{m[P][0]===" "&&(m[P]=g.styles.danger(g.symbols.bullet)+m[P].slice(1))}),r.isValue(g.values[S.name])&&B++;return g.completed=(B/y*100).toFixed(0),g.output=m.join(` -`),g.output}};function kL(r,e,t,i){return(n,s,o,a)=>typeof o.field[r]=="function"?o.field[r].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Cse=I((gft,dse)=>{"use strict";var mqe=uo(),Eqe=pse(),Iqe=Gh(),RL=class extends Iqe{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Eqe(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let t=this.getItem();this.cursor+=e,t.cursor+=e}dispatch(e,t){if(!t.code&&!t.ctrl&&e!=null&&this.getItem()){this.append(e,t);return}this.alert()}append(e,t){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let t=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${t}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let t=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(t=this.styles.danger),t(`${this.state.completed}% completed`)}async render(){let{index:e,keys:t=[],submitted:i,size:n}=this.state,s=[this.options.newline,` -`].find(S=>S!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",h=await this.hint()||"",p=i?"":await this.interpolate(this.state),d=this.state.key=t[e]||"",m=await this.format(d),y=await this.footer();m&&(c+=" "+m),h&&!m&&this.state.completed===0&&(c+=" "+h),this.clear(n);let B=[u,c,p,y,g.trim()];this.write(B.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:t,keys:i,index:n}=this.state,s=t.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:t,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} -`;return this.state.error=a,super.submit()}if(t.size)return this.state.error="Required: "+[...t.keys()].join(", "),super.submit();let o=mqe.unstyle(i).split(` -`).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};dse.exports=RL});var Ese=I((fft,mse)=>{"use strict";var yqe="(Use <shift>+<up/down> to sort)",wqe=dl(),FL=class extends wqe{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,yqe].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,t){let i=await super.renderChoice(e,t),n=this.symbols.identicalTo+" ",s=this.index===t&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${t+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};mse.exports=FL});var yse=I((hft,Ise)=>{"use strict";var Bqe=Mm(),NL=class extends Bqe{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let t=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];t=t.map(i=>this.styles.muted(i)),this.state.header=t.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let t=await super.toChoices(...e);for(let i of t)i.scale=bqe(5,this.options),i.scaleIdx=2;return t}dispatch(){this.alert()}space(){let e=this.focused,t=e.scale[e.scaleIdx],i=t.selected;return e.scale.forEach(n=>n.selected=!1),t.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,t){await this.onChoice(e,t);let i=this.index===t,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=P=>(P?this.styles.success("\u25C9"):"\u25EF")+o,u=t+1+".",g=i?this.styles.heading:this.styles.noop,h=await this.resolve(e.message,this.state,e,t),p=this.indent(e),d=p+e.scale.map((P,F)=>c(F===e.scaleIdx)).join(a),m=P=>P===e.scaleIdx?g(P):P,y=p+e.scale.map((P,F)=>m(F)).join(l),B=()=>[u,h].filter(Boolean).join(" "),S=()=>[B(),d,y," "].filter(Boolean).join(` -`);return i&&(d=this.styles.cyan(d),y=this.styles.cyan(y)),S()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),t=await Promise.all(e);return t.length||t.push(this.styles.danger("No matching choices")),t.join(` -`)}format(){return this.state.submitted?this.choices.map(t=>this.styles.info(t.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:t}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(t),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function bqe(r,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>({...i}));let t=[];for(let i=1;i<r+1;i++)t.push({i,selected:!1});return t}Ise.exports=NL});var Bse=I((pft,wse)=>{wse.exports=wL()});var Qse=I((dft,bse)=>{"use strict";var Qqe=vb(),TL=class extends Qqe{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",t){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,t=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([t,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};bse.exports=TL});var vse=I((Cft,Sse)=>{"use strict";var Sqe=dl(),LL=class extends Sqe{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,t){let i=await super.toChoices(e,t);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Sse.exports=LL});var Pse=I(OL=>{"use strict";var xse=Yi(),ci=(r,e)=>{xse.defineExport(OL,r,e),xse.defineExport(OL,r.toLowerCase(),e)};ci("AutoComplete",()=>Tne());ci("BasicAuth",()=>jne());ci("Confirm",()=>qne());ci("Editable",()=>Wne());ci("Form",()=>Sb());ci("Input",()=>wL());ci("Invisible",()=>ese());ci("List",()=>rse());ci("MultiSelect",()=>nse());ci("Numeral",()=>ase());ci("Password",()=>lse());ci("Scale",()=>gse());ci("Select",()=>dl());ci("Snippet",()=>Cse());ci("Sort",()=>Ese());ci("Survey",()=>yse());ci("Text",()=>Bse());ci("Toggle",()=>Qse());ci("Quiz",()=>vse())});var Dse=I((Eft,kse)=>{kse.exports={ArrayPrompt:Mm(),AuthPrompt:dL(),BooleanPrompt:vb(),NumberPrompt:vL(),StringPrompt:lu()}});var Um=I((Ift,Fse)=>{"use strict";var Rse=J("assert"),KL=J("events"),Cl=Yi(),fo=class extends KL{constructor(e,t){super(),this.options=Cl.merge({},e),this.answers={...t}}register(e,t){if(Cl.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}Rse.equal(typeof t,"function","expected a function");let i=e.toLowerCase();return t.prototype instanceof this.Prompt?this.prompts[i]=t:this.prompts[i]=t(this.Prompt,this),this}async prompt(e=[]){for(let t of[].concat(e))try{typeof t=="function"&&(t=await t.call(this)),await this.ask(Cl.merge({},this.options,t))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let t=Cl.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=Cl;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];Rse(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](t),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),t.autofill&&l!=null?(a.value=a.input=l,t.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||Gh()}static get prompts(){return Pse()}static get types(){return Dse()}static get prompt(){let e=(t,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(t)};return Cl.mixinEmitter(e,new KL),e}};Cl.mixinEmitter(fo,new KL);var ML=fo.prompts;for(let r of Object.keys(ML)){let e=r.toLowerCase(),t=i=>new ML[r](i).run();fo.prompt[e]=t,fo[e]=t,fo[r]||Reflect.defineProperty(fo,r,{get:()=>ML[r]})}var Km=r=>{Cl.defineExport(fo,r,()=>fo.types[r])};Km("ArrayPrompt");Km("AuthPrompt");Km("BooleanPrompt");Km("NumberPrompt");Km("StringPrompt");Fse.exports=fo});var Gse=I((aht,jse)=>{function Dqe(r,e){for(var t=-1,i=r==null?0:r.length;++t<i&&e(r[t],t,r)!==!1;);return r}jse.exports=Dqe});var Jh=I((Aht,Yse)=>{var Rqe=j0(),Fqe=bh();function Nqe(r,e,t,i){var n=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],l=i?i(t[a],r[a],a,t,r):void 0;l===void 0&&(l=r[a]),n?Fqe(t,a,l):Rqe(t,a,l)}return t}Yse.exports=Nqe});var Jse=I((lht,qse)=>{var Tqe=Jh(),Lqe=Rh();function Oqe(r,e){return r&&Tqe(e,Lqe(e),r)}qse.exports=Oqe});var zse=I((cht,Wse)=>{function Mqe(r){var e=[];if(r!=null)for(var t in Object(r))e.push(t);return e}Wse.exports=Mqe});var Xse=I((uht,Vse)=>{var Kqe=xn(),Uqe=ob(),Hqe=zse(),jqe=Object.prototype,Gqe=jqe.hasOwnProperty;function Yqe(r){if(!Kqe(r))return Hqe(r);var e=Uqe(r),t=[];for(var i in r)i=="constructor"&&(e||!Gqe.call(r,i))||t.push(i);return t}Vse.exports=Yqe});var Wh=I((ght,Zse)=>{var qqe=lT(),Jqe=Xse(),Wqe=fm();function zqe(r){return Wqe(r)?qqe(r,!0):Jqe(r)}Zse.exports=zqe});var $se=I((fht,_se)=>{var Vqe=Jh(),Xqe=Wh();function Zqe(r,e){return r&&Vqe(e,Xqe(e),r)}_se.exports=Zqe});var qL=I((Ym,zh)=>{var _qe=Is(),ioe=typeof Ym=="object"&&Ym&&!Ym.nodeType&&Ym,eoe=ioe&&typeof zh=="object"&&zh&&!zh.nodeType&&zh,$qe=eoe&&eoe.exports===ioe,toe=$qe?_qe.Buffer:void 0,roe=toe?toe.allocUnsafe:void 0;function eJe(r,e){if(e)return r.slice();var t=r.length,i=roe?roe(t):new r.constructor(t);return r.copy(i),i}zh.exports=eJe});var JL=I((hht,noe)=>{function tJe(r,e){var t=-1,i=r.length;for(e||(e=Array(i));++t<i;)e[t]=r[t];return e}noe.exports=tJe});var ooe=I((pht,soe)=>{var rJe=Jh(),iJe=Ab();function nJe(r,e){return rJe(r,iJe(r),e)}soe.exports=nJe});var kb=I((dht,aoe)=>{var sJe=cT(),oJe=sJe(Object.getPrototypeOf,Object);aoe.exports=oJe});var WL=I((Cht,Aoe)=>{var aJe=Y0(),AJe=kb(),lJe=Ab(),cJe=dT(),uJe=Object.getOwnPropertySymbols,gJe=uJe?function(r){for(var e=[];r;)aJe(e,lJe(r)),r=AJe(r);return e}:cJe;Aoe.exports=gJe});var coe=I((mht,loe)=>{var fJe=Jh(),hJe=WL();function pJe(r,e){return fJe(r,hJe(r),e)}loe.exports=pJe});var goe=I((Eht,uoe)=>{var dJe=pT(),CJe=WL(),mJe=Wh();function EJe(r){return dJe(r,mJe,CJe)}uoe.exports=EJe});var hoe=I((Iht,foe)=>{var IJe=Object.prototype,yJe=IJe.hasOwnProperty;function wJe(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&yJe.call(r,"index")&&(t.index=r.index,t.input=r.input),t}foe.exports=wJe});var Db=I((yht,doe)=>{var poe=fT();function BJe(r){var e=new r.constructor(r.byteLength);return new poe(e).set(new poe(r)),e}doe.exports=BJe});var moe=I((wht,Coe)=>{var bJe=Db();function QJe(r,e){var t=e?bJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}Coe.exports=QJe});var Ioe=I((Bht,Eoe)=>{var SJe=/\w*$/;function vJe(r){var e=new r.constructor(r.source,SJe.exec(r));return e.lastIndex=r.lastIndex,e}Eoe.exports=vJe});var Qoe=I((bht,boe)=>{var yoe=Nc(),woe=yoe?yoe.prototype:void 0,Boe=woe?woe.valueOf:void 0;function xJe(r){return Boe?Object(Boe.call(r)):{}}boe.exports=xJe});var zL=I((Qht,Soe)=>{var PJe=Db();function kJe(r,e){var t=e?PJe(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.length)}Soe.exports=kJe});var xoe=I((Sht,voe)=>{var DJe=Db(),RJe=moe(),FJe=Ioe(),NJe=Qoe(),TJe=zL(),LJe="[object Boolean]",OJe="[object Date]",MJe="[object Map]",KJe="[object Number]",UJe="[object RegExp]",HJe="[object Set]",jJe="[object String]",GJe="[object Symbol]",YJe="[object ArrayBuffer]",qJe="[object DataView]",JJe="[object Float32Array]",WJe="[object Float64Array]",zJe="[object Int8Array]",VJe="[object Int16Array]",XJe="[object Int32Array]",ZJe="[object Uint8Array]",_Je="[object Uint8ClampedArray]",$Je="[object Uint16Array]",e3e="[object Uint32Array]";function t3e(r,e,t){var i=r.constructor;switch(e){case YJe:return DJe(r);case LJe:case OJe:return new i(+r);case qJe:return RJe(r,t);case JJe:case WJe:case zJe:case VJe:case XJe:case ZJe:case _Je:case $Je:case e3e:return TJe(r,t);case MJe:return new i;case KJe:case jJe:return new i(r);case UJe:return FJe(r);case HJe:return new i;case GJe:return NJe(r)}}voe.exports=t3e});var Doe=I((vht,koe)=>{var r3e=xn(),Poe=Object.create,i3e=function(){function r(){}return function(e){if(!r3e(e))return{};if(Poe)return Poe(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}();koe.exports=i3e});var VL=I((xht,Roe)=>{var n3e=Doe(),s3e=kb(),o3e=ob();function a3e(r){return typeof r.constructor=="function"&&!o3e(r)?n3e(s3e(r)):{}}Roe.exports=a3e});var Noe=I((Pht,Foe)=>{var A3e=pm(),l3e=Jo(),c3e="[object Map]";function u3e(r){return l3e(r)&&A3e(r)==c3e}Foe.exports=u3e});var Moe=I((kht,Ooe)=>{var g3e=Noe(),f3e=ib(),Toe=nb(),Loe=Toe&&Toe.isMap,h3e=Loe?f3e(Loe):g3e;Ooe.exports=h3e});var Uoe=I((Dht,Koe)=>{var p3e=pm(),d3e=Jo(),C3e="[object Set]";function m3e(r){return d3e(r)&&p3e(r)==C3e}Koe.exports=m3e});var Yoe=I((Rht,Goe)=>{var E3e=Uoe(),I3e=ib(),Hoe=nb(),joe=Hoe&&Hoe.isSet,y3e=joe?I3e(joe):E3e;Goe.exports=y3e});var Voe=I((Fht,zoe)=>{var w3e=hm(),B3e=Gse(),b3e=j0(),Q3e=Jse(),S3e=$se(),v3e=qL(),x3e=JL(),P3e=ooe(),k3e=coe(),D3e=CT(),R3e=goe(),F3e=pm(),N3e=hoe(),T3e=xoe(),L3e=VL(),O3e=Ss(),M3e=cm(),K3e=Moe(),U3e=xn(),H3e=Yoe(),j3e=Rh(),G3e=Wh(),Y3e=1,q3e=2,J3e=4,qoe="[object Arguments]",W3e="[object Array]",z3e="[object Boolean]",V3e="[object Date]",X3e="[object Error]",Joe="[object Function]",Z3e="[object GeneratorFunction]",_3e="[object Map]",$3e="[object Number]",Woe="[object Object]",e4e="[object RegExp]",t4e="[object Set]",r4e="[object String]",i4e="[object Symbol]",n4e="[object WeakMap]",s4e="[object ArrayBuffer]",o4e="[object DataView]",a4e="[object Float32Array]",A4e="[object Float64Array]",l4e="[object Int8Array]",c4e="[object Int16Array]",u4e="[object Int32Array]",g4e="[object Uint8Array]",f4e="[object Uint8ClampedArray]",h4e="[object Uint16Array]",p4e="[object Uint32Array]",lr={};lr[qoe]=lr[W3e]=lr[s4e]=lr[o4e]=lr[z3e]=lr[V3e]=lr[a4e]=lr[A4e]=lr[l4e]=lr[c4e]=lr[u4e]=lr[_3e]=lr[$3e]=lr[Woe]=lr[e4e]=lr[t4e]=lr[r4e]=lr[i4e]=lr[g4e]=lr[f4e]=lr[h4e]=lr[p4e]=!0;lr[X3e]=lr[Joe]=lr[n4e]=!1;function Rb(r,e,t,i,n,s){var o,a=e&Y3e,l=e&q3e,c=e&J3e;if(t&&(o=n?t(r,i,n,s):t(r)),o!==void 0)return o;if(!U3e(r))return r;var u=O3e(r);if(u){if(o=N3e(r),!a)return x3e(r,o)}else{var g=F3e(r),h=g==Joe||g==Z3e;if(M3e(r))return v3e(r,a);if(g==Woe||g==qoe||h&&!n){if(o=l||h?{}:L3e(r),!a)return l?k3e(r,S3e(o,r)):P3e(r,Q3e(o,r))}else{if(!lr[g])return n?r:{};o=T3e(r,g,a)}}s||(s=new w3e);var p=s.get(r);if(p)return p;s.set(r,o),H3e(r)?r.forEach(function(y){o.add(Rb(y,e,t,y,r,s))}):K3e(r)&&r.forEach(function(y,B){o.set(B,Rb(y,e,t,B,r,s))});var d=c?l?R3e:D3e:l?G3e:j3e,m=u?void 0:d(r);return B3e(m||r,function(y,B){m&&(B=y,y=r[B]),b3e(o,B,Rb(y,e,t,B,r,s))}),o}zoe.exports=Rb});var XL=I((Nht,Xoe)=>{var d4e=Voe(),C4e=1,m4e=4;function E4e(r){return d4e(r,C4e|m4e)}Xoe.exports=E4e});var _oe=I((Tht,Zoe)=>{var I4e=HN();function y4e(r,e,t){return r==null?r:I4e(r,e,t)}Zoe.exports=y4e});var iae=I((Hht,rae)=>{function w4e(r){var e=r==null?0:r.length;return e?r[e-1]:void 0}rae.exports=w4e});var sae=I((jht,nae)=>{var B4e=im(),b4e=HR();function Q4e(r,e){return e.length<2?r:B4e(r,b4e(e,0,-1))}nae.exports=Q4e});var aae=I((Ght,oae)=>{var S4e=Bh(),v4e=iae(),x4e=sae(),P4e=$c();function k4e(r,e){return e=S4e(e,r),r=x4e(r,e),r==null||delete r[P4e(v4e(e))]}oae.exports=k4e});var lae=I((Yht,Aae)=>{var D4e=aae();function R4e(r,e){return r==null?!0:D4e(r,e)}Aae.exports=R4e});var hae=I((mpt,T4e)=>{T4e.exports={name:"@yarnpkg/cli",version:"3.8.5",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"3.2.0-rc.4",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var oO=I((Gmt,xae)=>{"use strict";xae.exports=function(e,t){t===!0&&(t=0);var i="";if(typeof e=="string")try{i=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(i=e.protocol);var n=i.split(/\:|\+/).filter(Boolean);return typeof t=="number"?n[t]:n}});var kae=I((Ymt,Pae)=>{"use strict";var eWe=oO();function tWe(r){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:r,query:{},parse_failed:!1};try{var t=new URL(r);e.protocols=eWe(t),e.protocol=e.protocols[0],e.port=t.port,e.resource=t.hostname,e.host=t.host,e.user=t.username||"",e.password=t.password||"",e.pathname=t.pathname,e.hash=t.hash.slice(1),e.search=t.search.slice(1),e.href=t.href,e.query=Object.fromEntries(t.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=r,e.query={},e.parse_failed=!0}return e}Pae.exports=tWe});var Fae=I((qmt,Rae)=>{"use strict";var rWe=kae();function iWe(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var nWe=iWe(rWe),sWe="text/plain",oWe="us-ascii",Dae=(r,e)=>e.some(t=>t instanceof RegExp?t.test(r):t===r),aWe=(r,{stripHash:e})=>{let t=/^data:(?<type>[^,]*?),(?<data>[^#]*?)(?:#(?<hash>.*))?$/.exec(r);if(!t)throw new Error(`Invalid URL: ${r}`);let{type:i,data:n,hash:s}=t.groups,o=i.split(";");s=e?"":s;let a=!1;o[o.length-1]==="base64"&&(o.pop(),a=!0);let l=(o.shift()||"").toLowerCase(),u=[...o.map(g=>{let[h,p=""]=g.split("=").map(d=>d.trim());return h==="charset"&&(p=p.toLowerCase(),p===oWe)?"":`${h}${p?`=${p}`:""}`}).filter(Boolean)];return a&&u.push("base64"),(u.length>0||l&&l!==sWe)&&u.unshift(l),`data:${u.join(";")},${a?n.trim():n}${s?`#${s}`:""}`};function AWe(r,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},r=r.trim(),/^data:/i.test(r))return aWe(r,e);if(/^view-source:/i.test(r))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let t=r.startsWith("//");!t&&/^\.*\//.test(r)||(r=r.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new URL(r);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash?n.hash="":e.stripTextFragment&&(n.hash=n.hash.replace(/#?:~:text.*?$/i,"")),n.pathname){let o=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,a=0,l="";for(;;){let u=o.exec(n.pathname);if(!u)break;let g=u[0],h=u.index,p=n.pathname.slice(a,h);l+=p.replace(/\/{2,}/g,"/"),l+=g,a=h+g.length}let c=n.pathname.slice(a,n.pathname.length);l+=c.replace(/\/{2,}/g,"/"),n.pathname=l}if(n.pathname)try{n.pathname=decodeURI(n.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let o=n.pathname.split("/"),a=o[o.length-1];Dae(a,e.removeDirectoryIndex)&&(o=o.slice(0,-1),n.pathname=o.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let o of[...n.searchParams.keys()])Dae(o,e.removeQueryParameters)&&n.searchParams.delete(o);if(e.removeQueryParameters===!0&&(n.search=""),e.sortQueryParameters){n.searchParams.sort();try{n.search=decodeURIComponent(n.search)}catch{}}e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,""));let s=r;return r=n.toString(),!e.removeSingleSlash&&n.pathname==="/"&&!s.endsWith("/")&&n.hash===""&&(r=r.replace(/\/$/,"")),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&e.removeSingleSlash&&(r=r.replace(/\/$/,"")),t&&!e.normalizeProtocol&&(r=r.replace(/^http:\/\//,"//")),e.stripProtocol&&(r=r.replace(/^(?:https?:)?\/\//,"")),r}var aO=(r,e=!1)=>{let t=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,i=s=>{let o=new Error(s);throw o.subject_url=r,o};(typeof r!="string"||!r.trim())&&i("Invalid url."),r.length>aO.MAX_INPUT_LENGTH&&i("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),r=AWe(r,e));let n=nWe.default(r);if(n.parse_failed){let s=n.href.match(t);s?(n.protocols=["ssh"],n.protocol="ssh",n.resource=s[2],n.host=s[2],n.user=s[1],n.pathname=`/${s[3]}`,n.parse_failed=!1):i("URL parsing failed.")}return n};aO.MAX_INPUT_LENGTH=2048;Rae.exports=aO});var Lae=I((Jmt,Tae)=>{"use strict";var lWe=oO();function Nae(r){if(Array.isArray(r))return r.indexOf("ssh")!==-1||r.indexOf("rsync")!==-1;if(typeof r!="string")return!1;var e=lWe(r);if(r=r.substring(r.indexOf("://")+3),Nae(e))return!0;var t=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!r.match(t)&&r.indexOf("@")<r.indexOf(":")}Tae.exports=Nae});var Kae=I((Wmt,Mae)=>{"use strict";var cWe=Fae(),Oae=Lae();function uWe(r){var e=cWe(r);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),Oae(e.protocols)||e.protocols.length===0&&Oae(r)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}Mae.exports=uWe});var Hae=I((zmt,Uae)=>{"use strict";var gWe=Kae();function AO(r){if(typeof r!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(r)&&(r="https://github.com/"+r);var t=gWe(r),i=t.resource.split("."),n=null;switch(t.toString=function(y){return AO.stringify(this,y)},t.source=i.length>2?i.slice(1-i.length).join("."):t.source=t.resource,t.git_suffix=/\.git$/.test(t.pathname),t.name=decodeURIComponent((t.pathname||t.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),t.owner=decodeURIComponent(t.user),t.source){case"git.cloudforge.com":t.owner=t.user,t.organization=i[0],t.source="cloudforge.com";break;case"visualstudio.com":if(t.resource==="vs-ssh.visualstudio.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3],t.full_name=n[2]+"/"+n[3]);break}else{n=t.name.split("/"),n.length===2?(t.owner=n[1],t.name=n[1],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name);break}case"dev.azure.com":case"azure.com":if(t.resource==="ssh.dev.azure.com"){n=t.name.split("/"),n.length===4&&(t.organization=n[1],t.owner=n[2],t.name=n[3]);break}else{n=t.name.split("/"),n.length===5?(t.organization=n[0],t.owner=n[1],t.name=n[4],t.full_name="_git/"+t.name):n.length===3?(t.name=n[2],n[0]==="DefaultCollection"?(t.owner=n[2],t.organization=n[0],t.full_name=t.organization+"/_git/"+t.name):(t.owner=n[0],t.full_name=t.owner+"/_git/"+t.name)):n.length===4&&(t.organization=n[0],t.owner=n[1],t.name=n[3],t.full_name=t.organization+"/"+t.owner+"/_git/"+t.name),t.query&&t.query.path&&(t.filepath=t.query.path.replace(/^\/+/g,"")),t.query&&t.query.version&&(t.ref=t.query.version.replace(/^GB/,""));break}default:n=t.name.split("/");var s=n.length-1;if(n.length>=2){var o=n.indexOf("-",2),a=n.indexOf("blob",2),l=n.indexOf("tree",2),c=n.indexOf("commit",2),u=n.indexOf("src",2),g=n.indexOf("raw",2),h=n.indexOf("edit",2);s=o>0?o-1:a>0?a-1:l>0?l-1:c>0?c-1:u>0?u-1:g>0?g-1:h>0?h-1:s,t.owner=n.slice(0,s).join("/"),t.name=n[s],c&&(t.commit=n[s+2])}t.ref="",t.filepathtype="",t.filepath="";var p=n.length>s&&n[s+1]==="-"?s+1:s;n.length>p+2&&["raw","src","blob","tree","edit"].indexOf(n[p+1])>=0&&(t.filepathtype=n[p+1],t.ref=n[p+2],n.length>p+3&&(t.filepath=n.slice(p+3).join("/"))),t.organization=t.owner;break}t.full_name||(t.full_name=t.owner,t.name&&(t.full_name&&(t.full_name+="/"),t.full_name+=t.name)),t.owner.startsWith("scm/")&&(t.source="bitbucket-server",t.owner=t.owner.replace("scm/",""),t.organization=t.owner,t.full_name=t.owner+"/"+t.name);var d=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,m=d.exec(t.pathname);return m!=null&&(t.source="bitbucket-server",m[1]==="users"?t.owner="~"+m[2]:t.owner=m[2],t.organization=t.owner,t.name=m[3],n=m[4].split("/"),n.length>1&&(["raw","browse"].indexOf(n[1])>=0?(t.filepathtype=n[1],n.length>2&&(t.filepath=n.slice(2).join("/"))):n[1]==="commits"&&n.length>2&&(t.commit=n[2])),t.full_name=t.owner+"/"+t.name,t.query.at?t.ref=t.query.at:t.ref=""),t}AO.stringify=function(r,e){e=e||(r.protocols&&r.protocols.length?r.protocols.join("+"):r.protocol);var t=r.port?":"+r.port:"",i=r.user||"git",n=r.git_suffix?".git":"";switch(e){case"ssh":return t?"ssh://"+i+"@"+r.resource+t+"/"+r.full_name+n:i+"@"+r.resource+":"+r.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+r.resource+t+"/"+r.full_name+n;case"http":case"https":var s=r.token?fWe(r):r.user&&(r.protocols.includes("http")||r.protocols.includes("https"))?r.user+"@":"";return e+"://"+s+r.resource+t+"/"+hWe(r)+n;default:return r.href}};function fWe(r){switch(r.source){case"bitbucket.org":return"x-token-auth:"+r.token+"@";default:return r.token+"@"}}function hWe(r){switch(r.source){case"bitbucket-server":return"scm/"+r.full_name;default:return""+r.full_name}}Uae.exports=AO});var kO=I((Myt,AAe)=>{var TWe=bh(),LWe=Ih();function OWe(r,e,t){(t!==void 0&&!LWe(r[e],t)||t===void 0&&!(e in r))&&TWe(r,e,t)}AAe.exports=OWe});var cAe=I((Kyt,lAe)=>{var MWe=fm(),KWe=Jo();function UWe(r){return KWe(r)&&MWe(r)}lAe.exports=UWe});var fAe=I((Uyt,gAe)=>{var HWe=Tc(),jWe=kb(),GWe=Jo(),YWe="[object Object]",qWe=Function.prototype,JWe=Object.prototype,uAe=qWe.toString,WWe=JWe.hasOwnProperty,zWe=uAe.call(Object);function VWe(r){if(!GWe(r)||HWe(r)!=YWe)return!1;var e=jWe(r);if(e===null)return!0;var t=WWe.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&uAe.call(t)==zWe}gAe.exports=VWe});var DO=I((Hyt,hAe)=>{function XWe(r,e){if(!(e==="constructor"&&typeof r[e]=="function")&&e!="__proto__")return r[e]}hAe.exports=XWe});var dAe=I((jyt,pAe)=>{var ZWe=Jh(),_We=Wh();function $We(r){return ZWe(r,_We(r))}pAe.exports=$We});var wAe=I((Gyt,yAe)=>{var CAe=kO(),e8e=qL(),t8e=zL(),r8e=JL(),i8e=VL(),mAe=sm(),EAe=Ss(),n8e=cAe(),s8e=cm(),o8e=K0(),a8e=xn(),A8e=fAe(),l8e=sb(),IAe=DO(),c8e=dAe();function u8e(r,e,t,i,n,s,o){var a=IAe(r,t),l=IAe(e,t),c=o.get(l);if(c){CAe(r,t,c);return}var u=s?s(a,l,t+"",r,e,o):void 0,g=u===void 0;if(g){var h=EAe(l),p=!h&&s8e(l),d=!h&&!p&&l8e(l);u=l,h||p||d?EAe(a)?u=a:n8e(a)?u=r8e(a):p?(g=!1,u=e8e(l,!0)):d?(g=!1,u=t8e(l,!0)):u=[]:A8e(l)||mAe(l)?(u=a,mAe(a)?u=c8e(a):(!a8e(a)||o8e(a))&&(u=i8e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),CAe(r,t,u)}yAe.exports=u8e});var QAe=I((Yyt,bAe)=>{var g8e=hm(),f8e=kO(),h8e=aT(),p8e=wAe(),d8e=xn(),C8e=Wh(),m8e=DO();function BAe(r,e,t,i,n){r!==e&&h8e(e,function(s,o){if(n||(n=new g8e),d8e(s))p8e(r,e,o,t,BAe,i,n);else{var a=i?i(m8e(r,o),s,o+"",r,e,n):void 0;a===void 0&&(a=s),f8e(r,o,a)}},C8e)}bAe.exports=BAe});var vAe=I((qyt,SAe)=>{var E8e=q0(),I8e=YN(),y8e=qN();function w8e(r,e){return y8e(I8e(r,e,E8e),r+"")}SAe.exports=w8e});var PAe=I((Jyt,xAe)=>{var B8e=Ih(),b8e=fm(),Q8e=nm(),S8e=xn();function v8e(r,e,t){if(!S8e(t))return!1;var i=typeof e;return(i=="number"?b8e(t)&&Q8e(e,t.length):i=="string"&&e in t)?B8e(t[e],r):!1}xAe.exports=v8e});var DAe=I((Wyt,kAe)=>{var x8e=vAe(),P8e=PAe();function k8e(r){return x8e(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,o=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,o&&P8e(t[0],t[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i<n;){var a=t[i];a&&r(e,a,i,s)}return e})}kAe.exports=k8e});var FAe=I((zyt,RAe)=>{var D8e=QAe(),R8e=DAe(),F8e=R8e(function(r,e,t){D8e(r,e,t)});RAe.exports=F8e});var WAe=I((Wwt,JAe)=>{var HO;JAe.exports=()=>(typeof HO>"u"&&(HO=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),HO)});var hle=I((CBt,fle)=>{var XO=Symbol("arg flag"),Fn=class extends Error{constructor(e,t){super(e),this.name="ArgError",this.code=t,Object.setPrototypeOf(this,Fn.prototype)}};function uE(r,{argv:e=process.argv.slice(2),permissive:t=!1,stopAtPositional:i=!1}={}){if(!r)throw new Fn("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},s={},o={};for(let a of Object.keys(r)){if(!a)throw new Fn("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new Fn(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new Fn(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof r[a]=="string"){s[a]=r[a];continue}let l=r[a],c=!1;if(Array.isArray(l)&&l.length===1&&typeof l[0]=="function"){let[u]=l;l=(g,h,p=[])=>(p.push(u(g,h,p[p.length-1])),p),c=u===Boolean||u[XO]===!0}else if(typeof l=="function")c=l===Boolean||l[XO]===!0;else throw new Fn(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new Fn(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");o[a]=[l,c]}for(let a=0,l=e.length;a<l;a++){let c=e[a];if(i&&n._.length>0){n._=n._.concat(e.slice(a));break}if(c==="--"){n._=n._.concat(e.slice(a+1));break}if(c.length>1&&c[0]==="-"){let u=c[1]==="-"||c.length===2?[c]:c.slice(1).split("").map(g=>`-${g}`);for(let g=0;g<u.length;g++){let h=u[g],[p,d]=h[1]==="-"?h.split(/=(.*)/,2):[h,void 0],m=p;for(;m in s;)m=s[m];if(!(m in o))if(t){n._.push(h);continue}else throw new Fn(`unknown or unexpected option: ${p}`,"ARG_UNKNOWN_OPTION");let[y,B]=o[m];if(!B&&g+1<u.length)throw new Fn(`option requires argument (but was followed by another short argument): ${p}`,"ARG_MISSING_REQUIRED_SHORTARG");if(B)n[m]=y(!0,m,n[m]);else if(d===void 0){if(e.length<a+2||e[a+1].length>1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(y===Number||typeof BigInt<"u"&&y===BigInt))){let S=p===m?"":` (alias for ${m})`;throw new Fn(`option requires argument: ${p}${S}`,"ARG_MISSING_REQUIRED_LONGARG")}n[m]=y(e[a+1],m,n[m]),++a}else n[m]=y(d,m,n[m])}}else n._.push(c)}return n}uE.flag=r=>(r[XO]=!0,r);uE.COUNT=uE.flag((r,e,t)=>(t||0)+1);uE.ArgError=Fn;fle.exports=uE});var Qle=I((_Bt,ble)=>{var eM;ble.exports=()=>(typeof eM>"u"&&(eM=J("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eM)});var Rle=I((oM,aM)=>{(function(r){oM&&typeof oM=="object"&&typeof aM<"u"?aM.exports=r():typeof define=="function"&&define.amd?define([],r):typeof window<"u"?window.isWindows=r():typeof global<"u"?global.isWindows=r():typeof self<"u"?self.isWindows=r():this.isWindows=r()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var Lle=I((Z0t,Tle)=>{"use strict";AM.ifExists=Dze;var np=J("util"),Ns=J("path"),Fle=Rle(),xze=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Pze={createPwshFile:!0,createCmdFile:Fle(),fs:J("fs")},kze=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function Nle(r){let e={...Pze,...r},t=e.fs;return e.fs_={chmod:t.chmod?np.promisify(t.chmod):async()=>{},mkdir:np.promisify(t.mkdir),readFile:np.promisify(t.readFile),stat:np.promisify(t.stat),unlink:np.promisify(t.unlink),writeFile:np.promisify(t.writeFile)},e}async function AM(r,e,t){let i=Nle(t);await i.fs_.stat(r),await Fze(r,e,i)}function Dze(r,e,t){return AM(r,e,t).catch(()=>{})}function Rze(r,e){return e.fs_.unlink(r).catch(()=>{})}async function Fze(r,e,t){let i=await Mze(r,t);return await Nze(e,t),Tze(r,e,i,t)}function Nze(r,e){return e.fs_.mkdir(Ns.dirname(r),{recursive:!0})}function Tze(r,e,t,i){let n=Nle(i),s=[{generator:Hze,extension:""}];return n.createCmdFile&&s.push({generator:Uze,extension:".cmd"}),n.createPwshFile&&s.push({generator:jze,extension:".ps1"}),Promise.all(s.map(o=>Kze(r,e+o.extension,t,o.generator,n)))}function Lze(r,e){return Rze(r,e)}function Oze(r,e){return Gze(r,e)}async function Mze(r,e){let n=(await e.fs_.readFile(r,"utf8")).trim().split(/\r*\n/)[0].match(xze);if(!n){let s=Ns.extname(r).toLowerCase();return{program:kze.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function Kze(r,e,t,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[t.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:t.program,args:o}),await Lze(e,n),await n.fs_.writeFile(e,i(r,e,n),"utf8"),Oze(e,n)}function Uze(r,e,t){let n=Ns.relative(Ns.dirname(e),r).split("/").join("\\"),s=Ns.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=t.prog,l=t.args||"",c=lM(t.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=t.progArgs?`${t.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r -`:"";return o?g+=`@IF EXIST ${o} (\r - ${o} ${l} ${n} ${u}%*\r -) ELSE (\r - @SETLOCAL\r - @SET PATHEXT=%PATHEXT:;.JS;=;%\r - ${a} ${l} ${n} ${u}%*\r -)\r -`:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function Hze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=t.args||"",l=lM(t.nodePath).posix;n?(s=`"$basedir/${t.prog}"`,i=o):(n=o,a="",i="");let c=t.progArgs?`${t.progArgs.join(" ")} `:"",u=`#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") - -case \`uname\` in - *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; -esac - -`,g=t.nodePath?`export NODE_PATH="${l}" -`:"";return s?u+=`${g}if [ -x ${s} ]; then - exec ${s} ${a} ${i} ${c}"$@" -else - exec ${n} ${a} ${i} ${c}"$@" -fi -`:u+=`${g}${n} ${a} ${i} ${c}"$@" -exit $? -`,u}function jze(r,e,t){let i=Ns.relative(Ns.dirname(e),r),n=t.prog&&t.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Ns.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=t.args||"",c=lM(t.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${t.prog}$exe"`,i=a):(s=a,l="",i="");let h=t.progArgs?`${t.progArgs.join(" ")} `:"",p=`#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -${t.nodePath?`$env_node_path=$env:NODE_PATH -$env:NODE_PATH="${u}" -`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -}`;return t.nodePath&&(p+=` else { - $env:NODE_PATH="${g}" -}`),o?p+=` -$ret=0 -if (Test-Path ${o}) { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${o} ${l} ${i} ${h}$args - } else { - & ${o} ${l} ${i} ${h}$args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${h}$args - } else { - & ${s} ${l} ${i} ${h}$args - } - $ret=$LASTEXITCODE -} -${t.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $ret -`:p+=` -# Support pipeline input -if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${h}$args -} else { - & ${s} ${l} ${i} ${h}$args -} -${t.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $LASTEXITCODE -`,p}function Gze(r,e){return e.fs_.chmod(r,493)}function lM(r){if(!r)return{win32:"",posix:""};let e=typeof r=="string"?r.split(Ns.delimiter):Array.from(r),t={};for(let i=0;i<e.length;i++){let n=e[i].split("/").join("\\"),s=Fle()?e[i].split("\\").join("/").replace(/^([^:\\/]*):/,(o,a)=>`/mnt/${a.toLowerCase()}`):e[i];t.win32=t.win32?`${t.win32};${n}`:n,t.posix=t.posix?`${t.posix}:${s}`:s,t[i]={win32:n,posix:s}}return t}Tle.exports=AM});var yM=I((pQt,rce)=>{rce.exports=J("stream")});var oce=I((dQt,sce)=>{"use strict";function ice(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function l5e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ice(Object(t),!0).forEach(function(i){c5e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ice(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function c5e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function u5e(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function nce(r,e){for(var t=0;t<e.length;t++){var i=e[t];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(r,i.key,i)}}function g5e(r,e,t){return e&&nce(r.prototype,e),t&&nce(r,t),r}var f5e=J("buffer"),pQ=f5e.Buffer,h5e=J("util"),wM=h5e.inspect,p5e=wM&&wM.custom||"inspect";function d5e(r,e,t){pQ.prototype.copy.call(r,e,t)}sce.exports=function(){function r(){u5e(this,r),this.head=null,this.tail=null,this.length=0}return g5e(r,[{key:"push",value:function(t){var i={data:t,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(t){var i={data:t,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var t=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=t+i.data;return n}},{key:"concat",value:function(t){if(this.length===0)return pQ.alloc(0);for(var i=pQ.allocUnsafe(t>>>0),n=this.head,s=0;n;)d5e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(t,i){var n;return t<this.head.data.length?(n=this.head.data.slice(0,t),this.head.data=this.head.data.slice(t)):t===this.head.data.length?n=this.shift():n=i?this._getString(t):this._getBuffer(t),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(t){var i=this.head,n=1,s=i.data;for(t-=s.length;i=i.next;){var o=i.data,a=t>o.length?o.length:t;if(a===o.length?s+=o:s+=o.slice(0,t),t-=a,t===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(t){var i=pQ.allocUnsafe(t),n=this.head,s=1;for(n.data.copy(i),t-=n.data.length;n=n.next;){var o=n.data,a=t>o.length?o.length:t;if(o.copy(i,i.length-t,0,a),t-=a,t===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:p5e,value:function(t,i){return wM(this,l5e({},i,{depth:0,customInspect:!1}))}}]),r}()});var bM=I((CQt,Ace)=>{"use strict";function C5e(r,e){var t=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(r):r&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(BM,this,r)):process.nextTick(BM,this,r)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(r||null,function(s){!e&&s?t._writableState?t._writableState.errorEmitted?process.nextTick(dQ,t):(t._writableState.errorEmitted=!0,process.nextTick(ace,t,s)):process.nextTick(ace,t,s):e?(process.nextTick(dQ,t),e(s)):process.nextTick(dQ,t)}),this)}function ace(r,e){BM(r,e),dQ(r)}function dQ(r){r._writableState&&!r._writableState.emitClose||r._readableState&&!r._readableState.emitClose||r.emit("close")}function m5e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function BM(r,e){r.emit("error",e)}function E5e(r,e){var t=r._readableState,i=r._writableState;t&&t.autoDestroy||i&&i.autoDestroy?r.destroy(e):r.emit("error",e)}Ace.exports={destroy:C5e,undestroy:m5e,errorOrDestroy:E5e}});var Ql=I((mQt,uce)=>{"use strict";var cce={};function Ls(r,e,t){t||(t=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends t{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=t.name,n.prototype.code=r,cce[r]=n}function lce(r,e){if(Array.isArray(r)){let t=r.length;return r=r.map(i=>String(i)),t>2?`one of ${e} ${r.slice(0,t-1).join(", ")}, or `+r[t-1]:t===2?`one of ${e} ${r[0]} or ${r[1]}`:`of ${e} ${r[0]}`}else return`of ${e} ${String(r)}`}function I5e(r,e,t){return r.substr(!t||t<0?0:+t,e.length)===e}function y5e(r,e,t){return(t===void 0||t>r.length)&&(t=r.length),r.substring(t-e.length,t)===e}function w5e(r,e,t){return typeof t!="number"&&(t=0),t+e.length>r.length?!1:r.indexOf(e,t)!==-1}Ls("ERR_INVALID_OPT_VALUE",function(r,e){return'The value "'+e+'" is invalid for option "'+r+'"'},TypeError);Ls("ERR_INVALID_ARG_TYPE",function(r,e,t){let i;typeof e=="string"&&I5e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(y5e(r," argument"))n=`The ${r} ${i} ${lce(e,"type")}`;else{let s=w5e(r,".")?"property":"argument";n=`The "${r}" ${s} ${i} ${lce(e,"type")}`}return n+=`. Received type ${typeof t}`,n},TypeError);Ls("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ls("ERR_METHOD_NOT_IMPLEMENTED",function(r){return"The "+r+" method is not implemented"});Ls("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ls("ERR_STREAM_DESTROYED",function(r){return"Cannot call "+r+" after a stream was destroyed"});Ls("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ls("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ls("ERR_STREAM_WRITE_AFTER_END","write after end");Ls("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ls("ERR_UNKNOWN_ENCODING",function(r){return"Unknown encoding: "+r},TypeError);Ls("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");uce.exports.codes=cce});var QM=I((EQt,gce)=>{"use strict";var B5e=Ql().codes.ERR_INVALID_OPT_VALUE;function b5e(r,e,t){return r.highWaterMark!=null?r.highWaterMark:e?r[t]:null}function Q5e(r,e,t,i){var n=b5e(e,i,t);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?t:"highWaterMark";throw new B5e(s,n)}return Math.floor(n)}return r.objectMode?16:16*1024}gce.exports={getHighWaterMark:Q5e}});var fce=I((IQt,SM)=>{typeof Object.create=="function"?SM.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:SM.exports=function(e,t){if(t){e.super_=t;var i=function(){};i.prototype=t.prototype,e.prototype=new i,e.prototype.constructor=e}}});var Sl=I((yQt,xM)=>{try{if(vM=J("util"),typeof vM.inherits!="function")throw"";xM.exports=vM.inherits}catch{xM.exports=fce()}var vM});var pce=I((wQt,hce)=>{hce.exports=J("util").deprecate});var DM=I((BQt,yce)=>{"use strict";yce.exports=Tr;function Cce(r){var e=this;this.next=null,this.entry=null,this.finish=function(){_5e(e,r)}}var ap;Tr.WritableState=dE;var S5e={deprecate:pce()},mce=yM(),mQ=J("buffer").Buffer,v5e=global.Uint8Array||function(){};function x5e(r){return mQ.from(r)}function P5e(r){return mQ.isBuffer(r)||r instanceof v5e}var kM=bM(),k5e=QM(),D5e=k5e.getHighWaterMark,vl=Ql().codes,R5e=vl.ERR_INVALID_ARG_TYPE,F5e=vl.ERR_METHOD_NOT_IMPLEMENTED,N5e=vl.ERR_MULTIPLE_CALLBACK,T5e=vl.ERR_STREAM_CANNOT_PIPE,L5e=vl.ERR_STREAM_DESTROYED,O5e=vl.ERR_STREAM_NULL_VALUES,M5e=vl.ERR_STREAM_WRITE_AFTER_END,K5e=vl.ERR_UNKNOWN_ENCODING,Ap=kM.errorOrDestroy;Sl()(Tr,mce);function U5e(){}function dE(r,e,t){ap=ap||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof ap),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.writableObjectMode),this.highWaterMark=D5e(this,r,"writableHighWaterMark",t),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=r.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=r.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){W5e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Cce(this)}dE.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t};(function(){try{Object.defineProperty(dE.prototype,"buffer",{get:S5e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var CQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(CQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Tr,Symbol.hasInstance,{value:function(e){return CQ.call(this,e)?!0:this!==Tr?!1:e&&e._writableState instanceof dE}})):CQ=function(e){return e instanceof this};function Tr(r){ap=ap||Wu();var e=this instanceof ap;if(!e&&!CQ.call(Tr,this))return new Tr(r);this._writableState=new dE(r,this,e),this.writable=!0,r&&(typeof r.write=="function"&&(this._write=r.write),typeof r.writev=="function"&&(this._writev=r.writev),typeof r.destroy=="function"&&(this._destroy=r.destroy),typeof r.final=="function"&&(this._final=r.final)),mce.call(this)}Tr.prototype.pipe=function(){Ap(this,new T5e)};function H5e(r,e){var t=new M5e;Ap(r,t),process.nextTick(e,t)}function j5e(r,e,t,i){var n;return t===null?n=new O5e:typeof t!="string"&&!e.objectMode&&(n=new R5e("chunk",["string","Buffer"],t)),n?(Ap(r,n),process.nextTick(i,n),!1):!0}Tr.prototype.write=function(r,e,t){var i=this._writableState,n=!1,s=!i.objectMode&&P5e(r);return s&&!mQ.isBuffer(r)&&(r=x5e(r)),typeof e=="function"&&(t=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof t!="function"&&(t=U5e),i.ending?H5e(this,t):(s||j5e(this,i,r,t))&&(i.pendingcb++,n=Y5e(this,i,s,r,e,t)),n};Tr.prototype.cork=function(){this._writableState.corked++};Tr.prototype.uncork=function(){var r=this._writableState;r.corked&&(r.corked--,!r.writing&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ece(this,r))};Tr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new K5e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Tr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function G5e(r,e,t){return!r.objectMode&&r.decodeStrings!==!1&&typeof e=="string"&&(e=mQ.from(e,t)),e}Object.defineProperty(Tr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Y5e(r,e,t,i,n,s){if(!t){var o=G5e(e,i,n);i!==o&&(t=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length<e.highWaterMark;if(l||(e.needDrain=!0),e.writing||e.corked){var c=e.lastBufferedRequest;e.lastBufferedRequest={chunk:i,encoding:n,isBuf:t,callback:s,next:null},c?c.next=e.lastBufferedRequest:e.bufferedRequest=e.lastBufferedRequest,e.bufferedRequestCount+=1}else PM(r,e,!1,a,i,n,s);return l}function PM(r,e,t,i,n,s,o){e.writelen=i,e.writecb=o,e.writing=!0,e.sync=!0,e.destroyed?e.onwrite(new L5e("write")):t?r._writev(n,e.onwrite):r._write(n,s,e.onwrite),e.sync=!1}function q5e(r,e,t,i,n){--e.pendingcb,t?(process.nextTick(n,i),process.nextTick(pE,r,e),r._writableState.errorEmitted=!0,Ap(r,i)):(n(i),r._writableState.errorEmitted=!0,Ap(r,i),pE(r,e))}function J5e(r){r.writing=!1,r.writecb=null,r.length-=r.writelen,r.writelen=0}function W5e(r,e){var t=r._writableState,i=t.sync,n=t.writecb;if(typeof n!="function")throw new N5e;if(J5e(t),e)q5e(r,t,i,e,n);else{var s=Ice(t)||r.destroyed;!s&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Ece(r,t),i?process.nextTick(dce,r,t,s,n):dce(r,t,s,n)}}function dce(r,e,t,i){t||z5e(r,e),e.pendingcb--,i(),pE(r,e)}function z5e(r,e){e.length===0&&e.needDrain&&(e.needDrain=!1,r.emit("drain"))}function Ece(r,e){e.bufferProcessing=!0;var t=e.bufferedRequest;if(r._writev&&t&&t.next){var i=e.bufferedRequestCount,n=new Array(i),s=e.corkedRequestsFree;s.entry=t;for(var o=0,a=!0;t;)n[o]=t,t.isBuf||(a=!1),t=t.next,o+=1;n.allBuffers=a,PM(r,e,!0,e.length,n,"",s.finish),e.pendingcb++,e.lastBufferedRequest=null,s.next?(e.corkedRequestsFree=s.next,s.next=null):e.corkedRequestsFree=new Cce(e),e.bufferedRequestCount=0}else{for(;t;){var l=t.chunk,c=t.encoding,u=t.callback,g=e.objectMode?1:l.length;if(PM(r,e,!1,g,l,c,u),t=t.next,e.bufferedRequestCount--,e.writing)break}t===null&&(e.lastBufferedRequest=null)}e.bufferedRequest=t,e.bufferProcessing=!1}Tr.prototype._write=function(r,e,t){t(new F5e("_write()"))};Tr.prototype._writev=null;Tr.prototype.end=function(r,e,t){var i=this._writableState;return typeof r=="function"?(t=r,r=null,e=null):typeof e=="function"&&(t=e,e=null),r!=null&&this.write(r,e),i.corked&&(i.corked=1,this.uncork()),i.ending||Z5e(this,i,t),this};Object.defineProperty(Tr.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function Ice(r){return r.ending&&r.length===0&&r.bufferedRequest===null&&!r.finished&&!r.writing}function V5e(r,e){r._final(function(t){e.pendingcb--,t&&Ap(r,t),e.prefinished=!0,r.emit("prefinish"),pE(r,e)})}function X5e(r,e){!e.prefinished&&!e.finalCalled&&(typeof r._final=="function"&&!e.destroyed?(e.pendingcb++,e.finalCalled=!0,process.nextTick(V5e,r,e)):(e.prefinished=!0,r.emit("prefinish")))}function pE(r,e){var t=Ice(e);if(t&&(X5e(r,e),e.pendingcb===0&&(e.finished=!0,r.emit("finish"),e.autoDestroy))){var i=r._readableState;(!i||i.autoDestroy&&i.endEmitted)&&r.destroy()}return t}function Z5e(r,e,t){e.ending=!0,pE(r,e),t&&(e.finished?process.nextTick(t):r.once("finish",t)),e.ended=!0,r.writable=!1}function _5e(r,e,t){var i=r.entry;for(r.entry=null;i;){var n=i.callback;e.pendingcb--,n(t),i=i.next}e.corkedRequestsFree.next=r}Object.defineProperty(Tr.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){!this._writableState||(this._writableState.destroyed=e)}});Tr.prototype.destroy=kM.destroy;Tr.prototype._undestroy=kM.undestroy;Tr.prototype._destroy=function(r,e){e(r)}});var Wu=I((bQt,Bce)=>{"use strict";var $5e=Object.keys||function(r){var e=[];for(var t in r)e.push(t);return e};Bce.exports=oa;var wce=NM(),FM=DM();Sl()(oa,wce);for(RM=$5e(FM.prototype),EQ=0;EQ<RM.length;EQ++)IQ=RM[EQ],oa.prototype[IQ]||(oa.prototype[IQ]=FM.prototype[IQ]);var RM,IQ,EQ;function oa(r){if(!(this instanceof oa))return new oa(r);wce.call(this,r),FM.call(this,r),this.allowHalfOpen=!0,r&&(r.readable===!1&&(this.readable=!1),r.writable===!1&&(this.writable=!1),r.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",e6e)))}Object.defineProperty(oa.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});Object.defineProperty(oa.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});Object.defineProperty(oa.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function e6e(){this._writableState.ended||process.nextTick(t6e,this)}function t6e(r){r.end()}Object.defineProperty(oa.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}})});var Sce=I((TM,Qce)=>{var yQ=J("buffer"),hA=yQ.Buffer;function bce(r,e){for(var t in r)e[t]=r[t]}hA.from&&hA.alloc&&hA.allocUnsafe&&hA.allocUnsafeSlow?Qce.exports=yQ:(bce(yQ,TM),TM.Buffer=lp);function lp(r,e,t){return hA(r,e,t)}bce(hA,lp);lp.from=function(r,e,t){if(typeof r=="number")throw new TypeError("Argument must not be a number");return hA(r,e,t)};lp.alloc=function(r,e,t){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=hA(r);return e!==void 0?typeof t=="string"?i.fill(e,t):i.fill(e):i.fill(0),i};lp.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return hA(r)};lp.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return yQ.SlowBuffer(r)}});var MM=I(xce=>{"use strict";var OM=Sce().Buffer,vce=OM.isEncoding||function(r){switch(r=""+r,r&&r.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function r6e(r){if(!r)return"utf8";for(var e;;)switch(r){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return r;default:if(e)return;r=(""+r).toLowerCase(),e=!0}}function i6e(r){var e=r6e(r);if(typeof e!="string"&&(OM.isEncoding===vce||!vce(r)))throw new Error("Unknown encoding: "+r);return e||r}xce.StringDecoder=CE;function CE(r){this.encoding=i6e(r);var e;switch(this.encoding){case"utf16le":this.text=l6e,this.end=c6e,e=4;break;case"utf8":this.fillLast=o6e,e=4;break;case"base64":this.text=u6e,this.end=g6e,e=3;break;default:this.write=f6e,this.end=h6e;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=OM.allocUnsafe(e)}CE.prototype.write=function(r){if(r.length===0)return"";var e,t;if(this.lastNeed){if(e=this.fillLast(r),e===void 0)return"";t=this.lastNeed,this.lastNeed=0}else t=0;return t<r.length?e?e+this.text(r,t):this.text(r,t):e||""};CE.prototype.end=A6e;CE.prototype.text=a6e;CE.prototype.fillLast=function(r){if(this.lastNeed<=r.length)return r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,this.lastTotal-this.lastNeed,0,r.length),this.lastNeed-=r.length};function LM(r){return r<=127?0:r>>5===6?2:r>>4===14?3:r>>3===30?4:r>>6===2?-1:-2}function n6e(r,e,t){var i=e.length-1;if(i<t)return 0;var n=LM(e[i]);return n>=0?(n>0&&(r.lastNeed=n-1),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(r.lastNeed=n-2),n):--i<t||n===-2?0:(n=LM(e[i]),n>=0?(n>0&&(n===2?n=0:r.lastNeed=n-3),n):0))}function s6e(r,e,t){if((e[0]&192)!==128)return r.lastNeed=0,"\uFFFD";if(r.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return r.lastNeed=1,"\uFFFD";if(r.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return r.lastNeed=2,"\uFFFD"}}function o6e(r){var e=this.lastTotal-this.lastNeed,t=s6e(this,r,e);if(t!==void 0)return t;if(this.lastNeed<=r.length)return r.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);r.copy(this.lastChar,e,0,r.length),this.lastNeed-=r.length}function a6e(r,e){var t=n6e(this,r,e);if(!this.lastNeed)return r.toString("utf8",e);this.lastTotal=t;var i=r.length-(t-this.lastNeed);return r.copy(this.lastChar,0,i),r.toString("utf8",e,i)}function A6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+"\uFFFD":e}function l6e(r,e){if((r.length-e)%2===0){var t=r.toString("utf16le",e);if(t){var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1],t.slice(0,-1)}return t}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=r[r.length-1],r.toString("utf16le",e,r.length-1)}function c6e(r){var e=r&&r.length?this.write(r):"";if(this.lastNeed){var t=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,t)}return e}function u6e(r,e){var t=(r.length-e)%3;return t===0?r.toString("base64",e):(this.lastNeed=3-t,this.lastTotal=3,t===1?this.lastChar[0]=r[r.length-1]:(this.lastChar[0]=r[r.length-2],this.lastChar[1]=r[r.length-1]),r.toString("base64",e,r.length-t))}function g6e(r){var e=r&&r.length?this.write(r):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function f6e(r){return r.toString(this.encoding)}function h6e(r){return r&&r.length?this.write(r):""}});var wQ=I((SQt,Dce)=>{"use strict";var Pce=Ql().codes.ERR_STREAM_PREMATURE_CLOSE;function p6e(r){var e=!1;return function(){if(!e){e=!0;for(var t=arguments.length,i=new Array(t),n=0;n<t;n++)i[n]=arguments[n];r.apply(this,i)}}}function d6e(){}function C6e(r){return r.setHeader&&typeof r.abort=="function"}function kce(r,e,t){if(typeof e=="function")return kce(r,null,e);e||(e={}),t=p6e(t||d6e);var i=e.readable||e.readable!==!1&&r.readable,n=e.writable||e.writable!==!1&&r.writable,s=function(){r.writable||a()},o=r._writableState&&r._writableState.finished,a=function(){n=!1,o=!0,i||t.call(r)},l=r._readableState&&r._readableState.endEmitted,c=function(){i=!1,l=!0,n||t.call(r)},u=function(d){t.call(r,d)},g=function(){var d;if(i&&!l)return(!r._readableState||!r._readableState.ended)&&(d=new Pce),t.call(r,d);if(n&&!o)return(!r._writableState||!r._writableState.ended)&&(d=new Pce),t.call(r,d)},h=function(){r.req.on("finish",a)};return C6e(r)?(r.on("complete",a),r.on("abort",g),r.req?h():r.on("request",h)):n&&!r._writableState&&(r.on("end",s),r.on("close",s)),r.on("end",c),r.on("finish",a),e.error!==!1&&r.on("error",u),r.on("close",g),function(){r.removeListener("complete",a),r.removeListener("abort",g),r.removeListener("request",h),r.req&&r.req.removeListener("finish",a),r.removeListener("end",s),r.removeListener("close",s),r.removeListener("finish",a),r.removeListener("end",c),r.removeListener("error",u),r.removeListener("close",g)}}Dce.exports=kce});var Fce=I((vQt,Rce)=>{"use strict";var BQ;function xl(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var m6e=wQ(),Pl=Symbol("lastResolve"),zu=Symbol("lastReject"),mE=Symbol("error"),bQ=Symbol("ended"),Vu=Symbol("lastPromise"),KM=Symbol("handlePromise"),Xu=Symbol("stream");function kl(r,e){return{value:r,done:e}}function E6e(r){var e=r[Pl];if(e!==null){var t=r[Xu].read();t!==null&&(r[Vu]=null,r[Pl]=null,r[zu]=null,e(kl(t,!1)))}}function I6e(r){process.nextTick(E6e,r)}function y6e(r,e){return function(t,i){r.then(function(){if(e[bQ]){t(kl(void 0,!0));return}e[KM](t,i)},i)}}var w6e=Object.getPrototypeOf(function(){}),B6e=Object.setPrototypeOf((BQ={get stream(){return this[Xu]},next:function(){var e=this,t=this[mE];if(t!==null)return Promise.reject(t);if(this[bQ])return Promise.resolve(kl(void 0,!0));if(this[Xu].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[mE]?a(e[mE]):o(kl(void 0,!0))})});var i=this[Vu],n;if(i)n=new Promise(y6e(i,this));else{var s=this[Xu].read();if(s!==null)return Promise.resolve(kl(s,!1));n=new Promise(this[KM])}return this[Vu]=n,n}},xl(BQ,Symbol.asyncIterator,function(){return this}),xl(BQ,"return",function(){var e=this;return new Promise(function(t,i){e[Xu].destroy(null,function(n){if(n){i(n);return}t(kl(void 0,!0))})})}),BQ),w6e),b6e=function(e){var t,i=Object.create(B6e,(t={},xl(t,Xu,{value:e,writable:!0}),xl(t,Pl,{value:null,writable:!0}),xl(t,zu,{value:null,writable:!0}),xl(t,mE,{value:null,writable:!0}),xl(t,bQ,{value:e._readableState.endEmitted,writable:!0}),xl(t,KM,{value:function(s,o){var a=i[Xu].read();a?(i[Vu]=null,i[Pl]=null,i[zu]=null,s(kl(a,!1))):(i[Pl]=s,i[zu]=o)},writable:!0}),t));return i[Vu]=null,m6e(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[zu];s!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,s(n)),i[mE]=n;return}var o=i[Pl];o!==null&&(i[Vu]=null,i[Pl]=null,i[zu]=null,o(kl(void 0,!0))),i[bQ]=!0}),e.on("readable",I6e.bind(null,i)),i};Rce.exports=b6e});var Oce=I((xQt,Lce)=>{"use strict";function Nce(r,e,t,i,n,s,o){try{var a=r[s](o),l=a.value}catch(c){t(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function Q6e(r){return function(){var e=this,t=arguments;return new Promise(function(i,n){var s=r.apply(e,t);function o(l){Nce(s,i,n,o,a,"next",l)}function a(l){Nce(s,i,n,o,a,"throw",l)}o(void 0)})}}function Tce(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(r);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(r,n).enumerable})),t.push.apply(t,i)}return t}function S6e(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Tce(Object(t),!0).forEach(function(i){v6e(r,i,t[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Tce(Object(t)).forEach(function(i){Object.defineProperty(r,i,Object.getOwnPropertyDescriptor(t,i))})}return r}function v6e(r,e,t){return e in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var x6e=Ql().codes.ERR_INVALID_ARG_TYPE;function P6e(r,e,t){var i;if(e&&typeof e.next=="function")i=e;else if(e&&e[Symbol.asyncIterator])i=e[Symbol.asyncIterator]();else if(e&&e[Symbol.iterator])i=e[Symbol.iterator]();else throw new x6e("iterable",["Iterable"],e);var n=new r(S6e({objectMode:!0},t)),s=!1;n._read=function(){s||(s=!0,o())};function o(){return a.apply(this,arguments)}function a(){return a=Q6e(function*(){try{var l=yield i.next(),c=l.value,u=l.done;u?n.push(null):n.push(yield c)?o():s=!1}catch(g){n.destroy(g)}}),a.apply(this,arguments)}return n}Lce.exports=P6e});var NM=I((kQt,Wce)=>{"use strict";Wce.exports=Ot;var cp;Ot.ReadableState=Hce;var PQt=J("events").EventEmitter,Uce=function(e,t){return e.listeners(t).length},IE=yM(),QQ=J("buffer").Buffer,k6e=global.Uint8Array||function(){};function D6e(r){return QQ.from(r)}function R6e(r){return QQ.isBuffer(r)||r instanceof k6e}var UM=J("util"),Pt;UM&&UM.debuglog?Pt=UM.debuglog("stream"):Pt=function(){};var F6e=oce(),WM=bM(),N6e=QM(),T6e=N6e.getHighWaterMark,SQ=Ql().codes,L6e=SQ.ERR_INVALID_ARG_TYPE,O6e=SQ.ERR_STREAM_PUSH_AFTER_EOF,M6e=SQ.ERR_METHOD_NOT_IMPLEMENTED,K6e=SQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,up,HM,jM;Sl()(Ot,IE);var EE=WM.errorOrDestroy,GM=["error","close","destroy","pause","resume"];function U6e(r,e,t){if(typeof r.prependListener=="function")return r.prependListener(e,t);!r._events||!r._events[e]?r.on(e,t):Array.isArray(r._events[e])?r._events[e].unshift(t):r._events[e]=[t,r._events[e]]}function Hce(r,e,t){cp=cp||Wu(),r=r||{},typeof t!="boolean"&&(t=e instanceof cp),this.objectMode=!!r.objectMode,t&&(this.objectMode=this.objectMode||!!r.readableObjectMode),this.highWaterMark=T6e(this,r,"readableHighWaterMark",t),this.buffer=new F6e,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=r.emitClose!==!1,this.autoDestroy=!!r.autoDestroy,this.destroyed=!1,this.defaultEncoding=r.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,r.encoding&&(up||(up=MM().StringDecoder),this.decoder=new up(r.encoding),this.encoding=r.encoding)}function Ot(r){if(cp=cp||Wu(),!(this instanceof Ot))return new Ot(r);var e=this instanceof cp;this._readableState=new Hce(r,this,e),this.readable=!0,r&&(typeof r.read=="function"&&(this._read=r.read),typeof r.destroy=="function"&&(this._destroy=r.destroy)),IE.call(this)}Object.defineProperty(Ot.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});Ot.prototype.destroy=WM.destroy;Ot.prototype._undestroy=WM.undestroy;Ot.prototype._destroy=function(r,e){e(r)};Ot.prototype.push=function(r,e){var t=this._readableState,i;return t.objectMode?i=!0:typeof r=="string"&&(e=e||t.defaultEncoding,e!==t.encoding&&(r=QQ.from(r,e),e=""),i=!0),jce(this,r,e,!1,i)};Ot.prototype.unshift=function(r){return jce(this,r,null,!0,!1)};function jce(r,e,t,i,n){Pt("readableAddChunk",e);var s=r._readableState;if(e===null)s.reading=!1,G6e(r,s);else{var o;if(n||(o=H6e(s,e)),o)EE(r,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==QQ.prototype&&(e=D6e(e)),i)s.endEmitted?EE(r,new K6e):YM(r,s,e,!0);else if(s.ended)EE(r,new O6e);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!t?(e=s.decoder.write(e),s.objectMode||e.length!==0?YM(r,s,e,!1):JM(r,s)):YM(r,s,e,!1)}else i||(s.reading=!1,JM(r,s))}return!s.ended&&(s.length<s.highWaterMark||s.length===0)}function YM(r,e,t,i){e.flowing&&e.length===0&&!e.sync?(e.awaitDrain=0,r.emit("data",t)):(e.length+=e.objectMode?1:t.length,i?e.buffer.unshift(t):e.buffer.push(t),e.needReadable&&vQ(r)),JM(r,e)}function H6e(r,e){var t;return!R6e(e)&&typeof e!="string"&&e!==void 0&&!r.objectMode&&(t=new L6e("chunk",["string","Buffer","Uint8Array"],e)),t}Ot.prototype.isPaused=function(){return this._readableState.flowing===!1};Ot.prototype.setEncoding=function(r){up||(up=MM().StringDecoder);var e=new up(r);this._readableState.decoder=e,this._readableState.encoding=this._readableState.decoder.encoding;for(var t=this._readableState.buffer.head,i="";t!==null;)i+=e.write(t.data),t=t.next;return this._readableState.buffer.clear(),i!==""&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var Mce=1073741824;function j6e(r){return r>=Mce?r=Mce:(r--,r|=r>>>1,r|=r>>>2,r|=r>>>4,r|=r>>>8,r|=r>>>16,r++),r}function Kce(r,e){return r<=0||e.length===0&&e.ended?0:e.objectMode?1:r!==r?e.flowing&&e.length?e.buffer.head.data.length:e.length:(r>e.highWaterMark&&(e.highWaterMark=j6e(r)),r<=e.length?r:e.ended?e.length:(e.needReadable=!0,0))}Ot.prototype.read=function(r){Pt("read",r),r=parseInt(r,10);var e=this._readableState,t=r;if(r!==0&&(e.emittedReadable=!1),r===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Pt("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?qM(this):vQ(this),null;if(r=Kce(r,e),r===0&&e.ended)return e.length===0&&qM(this),null;var i=e.needReadable;Pt("need readable",i),(e.length===0||e.length-r<e.highWaterMark)&&(i=!0,Pt("length less than watermark",i)),e.ended||e.reading?(i=!1,Pt("reading or ended",i)):i&&(Pt("do read"),e.reading=!0,e.sync=!0,e.length===0&&(e.needReadable=!0),this._read(e.highWaterMark),e.sync=!1,e.reading||(r=Kce(t,e)));var n;return r>0?n=qce(r,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,r=0):(e.length-=r,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),t!==r&&e.ended&&qM(this)),n!==null&&this.emit("data",n),n};function G6e(r,e){if(Pt("onEofChunk"),!e.ended){if(e.decoder){var t=e.decoder.end();t&&t.length&&(e.buffer.push(t),e.length+=e.objectMode?1:t.length)}e.ended=!0,e.sync?vQ(r):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Gce(r)))}}function vQ(r){var e=r._readableState;Pt("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Pt("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Gce,r))}function Gce(r){var e=r._readableState;Pt("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(r.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,zM(r)}function JM(r,e){e.readingMore||(e.readingMore=!0,process.nextTick(Y6e,r,e))}function Y6e(r,e){for(;!e.reading&&!e.ended&&(e.length<e.highWaterMark||e.flowing&&e.length===0);){var t=e.length;if(Pt("maybeReadMore read 0"),r.read(0),t===e.length)break}e.readingMore=!1}Ot.prototype._read=function(r){EE(this,new M6e("_read()"))};Ot.prototype.pipe=function(r,e){var t=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=r;break;case 1:i.pipes=[i.pipes,r];break;default:i.pipes.push(r);break}i.pipesCount+=1,Pt("pipe count=%d opts=%j",i.pipesCount,e);var n=(!e||e.end!==!1)&&r!==process.stdout&&r!==process.stderr,s=n?a:m;i.endEmitted?process.nextTick(s):t.once("end",s),r.on("unpipe",o);function o(y,B){Pt("onunpipe"),y===t&&B&&B.hasUnpiped===!1&&(B.hasUnpiped=!0,u())}function a(){Pt("onend"),r.end()}var l=q6e(t);r.on("drain",l);var c=!1;function u(){Pt("cleanup"),r.removeListener("close",p),r.removeListener("finish",d),r.removeListener("drain",l),r.removeListener("error",h),r.removeListener("unpipe",o),t.removeListener("end",a),t.removeListener("end",m),t.removeListener("data",g),c=!0,i.awaitDrain&&(!r._writableState||r._writableState.needDrain)&&l()}t.on("data",g);function g(y){Pt("ondata");var B=r.write(y);Pt("dest.write",B),B===!1&&((i.pipesCount===1&&i.pipes===r||i.pipesCount>1&&Jce(i.pipes,r)!==-1)&&!c&&(Pt("false write response, pause",i.awaitDrain),i.awaitDrain++),t.pause())}function h(y){Pt("onerror",y),m(),r.removeListener("error",h),Uce(r,"error")===0&&EE(r,y)}U6e(r,"error",h);function p(){r.removeListener("finish",d),m()}r.once("close",p);function d(){Pt("onfinish"),r.removeListener("close",p),m()}r.once("finish",d);function m(){Pt("unpipe"),t.unpipe(r)}return r.emit("pipe",t),i.flowing||(Pt("pipe resume"),t.resume()),r};function q6e(r){return function(){var t=r._readableState;Pt("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Uce(r,"data")&&(t.flowing=!0,zM(r))}}Ot.prototype.unpipe=function(r){var e=this._readableState,t={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return r&&r!==e.pipes?this:(r||(r=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,r&&r.emit("unpipe",this,t),this);if(!r){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s<n;s++)i[s].emit("unpipe",this,{hasUnpiped:!1});return this}var o=Jce(e.pipes,r);return o===-1?this:(e.pipes.splice(o,1),e.pipesCount-=1,e.pipesCount===1&&(e.pipes=e.pipes[0]),r.emit("unpipe",this,t),this)};Ot.prototype.on=function(r,e){var t=IE.prototype.on.call(this,r,e),i=this._readableState;return r==="data"?(i.readableListening=this.listenerCount("readable")>0,i.flowing!==!1&&this.resume()):r==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Pt("on readable",i.length,i.reading),i.length?vQ(this):i.reading||process.nextTick(J6e,this)),t};Ot.prototype.addListener=Ot.prototype.on;Ot.prototype.removeListener=function(r,e){var t=IE.prototype.removeListener.call(this,r,e);return r==="readable"&&process.nextTick(Yce,this),t};Ot.prototype.removeAllListeners=function(r){var e=IE.prototype.removeAllListeners.apply(this,arguments);return(r==="readable"||r===void 0)&&process.nextTick(Yce,this),e};function Yce(r){var e=r._readableState;e.readableListening=r.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:r.listenerCount("data")>0&&r.resume()}function J6e(r){Pt("readable nexttick read 0"),r.read(0)}Ot.prototype.resume=function(){var r=this._readableState;return r.flowing||(Pt("resume"),r.flowing=!r.readableListening,W6e(this,r)),r.paused=!1,this};function W6e(r,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(z6e,r,e))}function z6e(r,e){Pt("resume",e.reading),e.reading||r.read(0),e.resumeScheduled=!1,r.emit("resume"),zM(r),e.flowing&&!e.reading&&r.read(0)}Ot.prototype.pause=function(){return Pt("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pt("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function zM(r){var e=r._readableState;for(Pt("flow",e.flowing);e.flowing&&r.read()!==null;);}Ot.prototype.wrap=function(r){var e=this,t=this._readableState,i=!1;r.on("end",function(){if(Pt("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),r.on("data",function(o){if(Pt("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,r.pause())}});for(var n in r)this[n]===void 0&&typeof r[n]=="function"&&(this[n]=function(a){return function(){return r[a].apply(r,arguments)}}(n));for(var s=0;s<GM.length;s++)r.on(GM[s],this.emit.bind(this,GM[s]));return this._read=function(o){Pt("wrapped _read",o),i&&(i=!1,r.resume())},this};typeof Symbol=="function"&&(Ot.prototype[Symbol.asyncIterator]=function(){return HM===void 0&&(HM=Fce()),HM(this)});Object.defineProperty(Ot.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(Ot.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(Ot.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});Ot._fromList=qce;Object.defineProperty(Ot.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function qce(r,e){if(e.length===0)return null;var t;return e.objectMode?t=e.buffer.shift():!r||r>=e.length?(e.decoder?t=e.buffer.join(""):e.buffer.length===1?t=e.buffer.first():t=e.buffer.concat(e.length),e.buffer.clear()):t=e.buffer.consume(r,e.decoder),t}function qM(r){var e=r._readableState;Pt("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(V6e,e,r))}function V6e(r,e){if(Pt("endReadableNT",r.endEmitted,r.length),!r.endEmitted&&r.length===0&&(r.endEmitted=!0,e.readable=!1,e.emit("end"),r.autoDestroy)){var t=e._writableState;(!t||t.autoDestroy&&t.finished)&&e.destroy()}}typeof Symbol=="function"&&(Ot.from=function(r,e){return jM===void 0&&(jM=Oce()),jM(Ot,r,e)});function Jce(r,e){for(var t=0,i=r.length;t<i;t++)if(r[t]===e)return t;return-1}});var VM=I((DQt,Vce)=>{"use strict";Vce.exports=pA;var xQ=Ql().codes,X6e=xQ.ERR_METHOD_NOT_IMPLEMENTED,Z6e=xQ.ERR_MULTIPLE_CALLBACK,_6e=xQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,$6e=xQ.ERR_TRANSFORM_WITH_LENGTH_0,PQ=Wu();Sl()(pA,PQ);function e9e(r,e){var t=this._transformState;t.transforming=!1;var i=t.writecb;if(i===null)return this.emit("error",new Z6e);t.writechunk=null,t.writecb=null,e!=null&&this.push(e),i(r);var n=this._readableState;n.reading=!1,(n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}function pA(r){if(!(this instanceof pA))return new pA(r);PQ.call(this,r),this._transformState={afterTransform:e9e.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,r&&(typeof r.transform=="function"&&(this._transform=r.transform),typeof r.flush=="function"&&(this._flush=r.flush)),this.on("prefinish",t9e)}function t9e(){var r=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(e,t){zce(r,e,t)}):zce(this,null,null)}pA.prototype.push=function(r,e){return this._transformState.needTransform=!1,PQ.prototype.push.call(this,r,e)};pA.prototype._transform=function(r,e,t){t(new X6e("_transform()"))};pA.prototype._write=function(r,e,t){var i=this._transformState;if(i.writecb=t,i.writechunk=r,i.writeencoding=e,!i.transforming){var n=this._readableState;(i.needTransform||n.needReadable||n.length<n.highWaterMark)&&this._read(n.highWaterMark)}};pA.prototype._read=function(r){var e=this._transformState;e.writechunk!==null&&!e.transforming?(e.transforming=!0,this._transform(e.writechunk,e.writeencoding,e.afterTransform)):e.needTransform=!0};pA.prototype._destroy=function(r,e){PQ.prototype._destroy.call(this,r,function(t){e(t)})};function zce(r,e,t){if(e)return r.emit("error",e);if(t!=null&&r.push(t),r._writableState.length)throw new $6e;if(r._transformState.transforming)throw new _6e;return r.push(null)}});var _ce=I((RQt,Zce)=>{"use strict";Zce.exports=yE;var Xce=VM();Sl()(yE,Xce);function yE(r){if(!(this instanceof yE))return new yE(r);Xce.call(this,r)}yE.prototype._transform=function(r,e,t){t(null,r)}});var iue=I((FQt,rue)=>{"use strict";var XM;function r9e(r){var e=!1;return function(){e||(e=!0,r.apply(void 0,arguments))}}var tue=Ql().codes,i9e=tue.ERR_MISSING_ARGS,n9e=tue.ERR_STREAM_DESTROYED;function $ce(r){if(r)throw r}function s9e(r){return r.setHeader&&typeof r.abort=="function"}function o9e(r,e,t,i){i=r9e(i);var n=!1;r.on("close",function(){n=!0}),XM===void 0&&(XM=wQ()),XM(r,{readable:e,writable:t},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,s9e(r))return r.abort();if(typeof r.destroy=="function")return r.destroy();i(o||new n9e("pipe"))}}}function eue(r){r()}function a9e(r,e){return r.pipe(e)}function A9e(r){return!r.length||typeof r[r.length-1]!="function"?$ce:r.pop()}function l9e(){for(var r=arguments.length,e=new Array(r),t=0;t<r;t++)e[t]=arguments[t];var i=A9e(e);if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new i9e("streams");var n,s=e.map(function(o,a){var l=a<e.length-1,c=a>0;return o9e(o,l,c,function(u){n||(n=u),u&&s.forEach(eue),!l&&(s.forEach(eue),i(n))})});return e.reduce(a9e)}rue.exports=l9e});var gp=I((Os,BE)=>{var wE=J("stream");process.env.READABLE_STREAM==="disable"&&wE?(BE.exports=wE.Readable,Object.assign(BE.exports,wE),BE.exports.Stream=wE):(Os=BE.exports=NM(),Os.Stream=wE||Os,Os.Readable=Os,Os.Writable=DM(),Os.Duplex=Wu(),Os.Transform=VM(),Os.PassThrough=_ce(),Os.finished=wQ(),Os.pipeline=iue())});var oue=I((NQt,sue)=>{"use strict";var{Buffer:Eo}=J("buffer"),nue=Symbol.for("BufferList");function ur(r){if(!(this instanceof ur))return new ur(r);ur._init.call(this,r)}ur._init=function(e){Object.defineProperty(this,nue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ur.prototype._new=function(e){return new ur(e)};ur.prototype._offset=function(e){if(e===0)return[0,0];let t=0;for(let i=0;i<this._bufs.length;i++){let n=t+this._bufs[i].length;if(e<n||i===this._bufs.length-1)return[i,e-t];t=n}};ur.prototype._reverseOffset=function(r){let e=r[0],t=r[1];for(let i=0;i<e;i++)t+=this._bufs[i].length;return t};ur.prototype.get=function(e){if(e>this.length||e<0)return;let t=this._offset(e);return this._bufs[t[0]][t[1]]};ur.prototype.slice=function(e,t){return typeof e=="number"&&e<0&&(e+=this.length),typeof t=="number"&&t<0&&(t+=this.length),this.copy(null,0,e,t)};ur.prototype.copy=function(e,t,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||Eo.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&t||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:Eo.concat(this._bufs,this.length);for(let g=0;g<this._bufs.length;g++)this._bufs[g].copy(e,c),c+=this._bufs[g].length;return e}if(l<=this._bufs[o[0]].length-u)return s?this._bufs[o[0]].copy(e,t,u,u+l):this._bufs[o[0]].slice(u,u+l);s||(e=Eo.allocUnsafe(a));for(let g=o[0];g<this._bufs.length;g++){let h=this._bufs[g].length-u;if(l>h)this._bufs[g].copy(e,c,u),c+=h;else{this._bufs[g].copy(e,c,u,u+l),c+=h;break}l-=h,u&&(u=0)}return e.length>c?e.slice(0,c):e};ur.prototype.shallowSlice=function(e,t){if(e=e||0,t=typeof t!="number"?this.length:t,e<0&&(e+=this.length),t<0&&(t+=this.length),e===t)return this._new();let i=this._offset(e),n=this._offset(t),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};ur.prototype.toString=function(e,t,i){return this.slice(t,i).toString(e)};ur.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ur.prototype.duplicate=function(){let e=this._new();for(let t=0;t<this._bufs.length;t++)e.append(this._bufs[t]);return e};ur.prototype.append=function(e){if(e==null)return this;if(e.buffer)this._appendBuffer(Eo.from(e.buffer,e.byteOffset,e.byteLength));else if(Array.isArray(e))for(let t=0;t<e.length;t++)this.append(e[t]);else if(this._isBufferList(e))for(let t=0;t<e._bufs.length;t++)this.append(e._bufs[t]);else typeof e=="number"&&(e=e.toString()),this._appendBuffer(Eo.from(e));return this};ur.prototype._appendBuffer=function(e){this._bufs.push(e),this.length+=e.length};ur.prototype.indexOf=function(r,e,t){if(t===void 0&&typeof e=="string"&&(t=e,e=void 0),typeof r=="function"||Array.isArray(r))throw new TypeError('The "value" argument must be one of type string, Buffer, BufferList, or Uint8Array.');if(typeof r=="number"?r=Eo.from([r]):typeof r=="string"?r=Eo.from(r,t):this._isBufferList(r)?r=r.slice():Array.isArray(r.buffer)?r=Eo.from(r.buffer,r.byteOffset,r.byteLength):Eo.isBuffer(r)||(r=Eo.from(r)),e=Number(e||0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),r.length===0)return e>this.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n<this._bufs.length;n++){let o=this._bufs[n];for(;s<o.length;)if(o.length-s>=r.length){let l=o.indexOf(r,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-r.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,r))return l;s++}s=0}return-1};ur.prototype._match=function(r,e){if(this.length-r<e.length)return!1;for(let t=0;t<e.length;t++)if(this.get(r+t)!==e[t])return!1;return!0};(function(){let r={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1,readIntBE:null,readIntLE:null,readUIntBE:null,readUIntLE:null};for(let e in r)(function(t){r[t]===null?ur.prototype[t]=function(i,n){return this.slice(i,i+n)[t](0,n)}:ur.prototype[t]=function(i=0){return this.slice(i,i+r[t])[t](0)}})(e)})();ur.prototype._isBufferList=function(e){return e instanceof ur||ur.isBufferList(e)};ur.isBufferList=function(e){return e!=null&&e[nue]};sue.exports=ur});var aue=I((TQt,kQ)=>{"use strict";var ZM=gp().Duplex,c9e=Sl(),bE=oue();function Wi(r){if(!(this instanceof Wi))return new Wi(r);if(typeof r=="function"){this._callback=r;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),r=null}bE._init.call(this,r),ZM.call(this)}c9e(Wi,ZM);Object.assign(Wi.prototype,bE.prototype);Wi.prototype._new=function(e){return new Wi(e)};Wi.prototype._write=function(e,t,i){this._appendBuffer(e),typeof i=="function"&&i()};Wi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Wi.prototype.end=function(e){ZM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Wi.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)};Wi.prototype._isBufferList=function(e){return e instanceof Wi||e instanceof bE||Wi.isBufferList(e)};Wi.isBufferList=bE.isBufferList;kQ.exports=Wi;kQ.exports.BufferListStream=Wi;kQ.exports.BufferList=bE});var e1=I(hp=>{var u9e=Buffer.alloc,g9e="0000000000000000000",f9e="7777777777777777777",Aue="0".charCodeAt(0),lue=Buffer.from("ustar\0","binary"),h9e=Buffer.from("00","binary"),p9e=Buffer.from("ustar ","binary"),d9e=Buffer.from(" \0","binary"),C9e=parseInt("7777",8),QE=257,$M=263,m9e=function(r,e,t){return typeof r!="number"?t:(r=~~r,r>=e?e:r>=0||(r+=e,r>=0)?r:0)},E9e=function(r){switch(r){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},I9e=function(r){switch(r){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},cue=function(r,e,t,i){for(;t<i;t++)if(r[t]===e)return t;return i},uue=function(r){for(var e=256,t=0;t<148;t++)e+=r[t];for(var i=156;i<512;i++)e+=r[i];return e},Dl=function(r,e){return r=r.toString(8),r.length>e?f9e.slice(0,e)+" ":g9e.slice(0,e-r.length)+r+" "};function y9e(r){var e;if(r[0]===128)e=!0;else if(r[0]===255)e=!1;else return null;for(var t=[],i=r.length-1;i>0;i--){var n=r[i];e?t.push(n):t.push(255-n)}var s=0,o=t.length;for(i=0;i<o;i++)s+=t[i]*Math.pow(256,i);return e?s:-1*s}var Rl=function(r,e,t){if(r=r.slice(e,e+t),e=0,r[e]&128)return y9e(r);for(;e<r.length&&r[e]===32;)e++;for(var i=m9e(cue(r,32,e,r.length),r.length,r.length);e<i&&r[e]===0;)e++;return i===e?0:parseInt(r.slice(e,i).toString(),8)},fp=function(r,e,t,i){return r.slice(e,cue(r,0,e,e+t)).toString(i)},_M=function(r){var e=Buffer.byteLength(r),t=Math.floor(Math.log(e)/Math.log(10))+1;return e+t>=Math.pow(10,t)&&t++,e+t+r};hp.decodeLongPath=function(r,e){return fp(r,0,r.length,e)};hp.encodePax=function(r){var e="";r.name&&(e+=_M(" path="+r.name+` -`)),r.linkname&&(e+=_M(" linkpath="+r.linkname+` -`));var t=r.pax;if(t)for(var i in t)e+=_M(" "+i+"="+t[i]+` -`);return Buffer.from(e)};hp.decodePax=function(r){for(var e={};r.length;){for(var t=0;t<r.length&&r[t]!==32;)t++;var i=parseInt(r.slice(0,t).toString(),10);if(!i)return e;var n=r.slice(t+1,i-1).toString(),s=n.indexOf("=");if(s===-1)return e;e[n.slice(0,s)]=n.slice(s+1),r=r.slice(i)}return e};hp.encode=function(r){var e=u9e(512),t=r.name,i="";if(r.typeflag===5&&t[t.length-1]!=="/"&&(t+="/"),Buffer.byteLength(t)!==t.length)return null;for(;Buffer.byteLength(t)>100;){var n=t.indexOf("/");if(n===-1)return null;i+=i?"/"+t.slice(0,n):t.slice(0,n),t=t.slice(n+1)}return Buffer.byteLength(t)>100||Buffer.byteLength(i)>155||r.linkname&&Buffer.byteLength(r.linkname)>100?null:(e.write(t),e.write(Dl(r.mode&C9e,6),100),e.write(Dl(r.uid,6),108),e.write(Dl(r.gid,6),116),e.write(Dl(r.size,11),124),e.write(Dl(r.mtime.getTime()/1e3|0,11),136),e[156]=Aue+I9e(r.type),r.linkname&&e.write(r.linkname,157),lue.copy(e,QE),h9e.copy(e,$M),r.uname&&e.write(r.uname,265),r.gname&&e.write(r.gname,297),e.write(Dl(r.devmajor||0,6),329),e.write(Dl(r.devminor||0,6),337),i&&e.write(i,345),e.write(Dl(uue(e),6),148),e)};hp.decode=function(r,e,t){var i=r[156]===0?0:r[156]-Aue,n=fp(r,0,100,e),s=Rl(r,100,8),o=Rl(r,108,8),a=Rl(r,116,8),l=Rl(r,124,12),c=Rl(r,136,12),u=E9e(i),g=r[157]===0?null:fp(r,157,100,e),h=fp(r,265,32),p=fp(r,297,32),d=Rl(r,329,8),m=Rl(r,337,8),y=uue(r);if(y===8*32)return null;if(y!==Rl(r,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(lue.compare(r,QE,QE+6)===0)r[345]&&(n=fp(r,345,155,e)+"/"+n);else if(!(p9e.compare(r,QE,QE+6)===0&&d9e.compare(r,$M,$M+2)===0)){if(!t)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:h,gname:p,devmajor:d,devminor:m}}});var mue=I((OQt,Cue)=>{var fue=J("util"),w9e=aue(),SE=e1(),hue=gp().Writable,pue=gp().PassThrough,due=function(){},gue=function(r){return r&=511,r&&512-r},B9e=function(r,e){var t=new DQ(r,e);return t.end(),t},b9e=function(r,e){return e.path&&(r.name=e.path),e.linkpath&&(r.linkname=e.linkpath),e.size&&(r.size=parseInt(e.size,10)),r.pax=e,r},DQ=function(r,e){this._parent=r,this.offset=e,pue.call(this,{autoDestroy:!1})};fue.inherits(DQ,pue);DQ.prototype.destroy=function(r){this._parent.destroy(r)};var dA=function(r){if(!(this instanceof dA))return new dA(r);hue.call(this,r),r=r||{},this._offset=0,this._buffer=w9e(),this._missing=0,this._partial=!1,this._onparse=due,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,t=e._buffer,i=function(){e._continue()},n=function(h){if(e._locked=!1,h)return e.destroy(h);e._stream||i()},s=function(){e._stream=null;var h=gue(e._header.size);h?e._parse(h,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(gue(e._header.size)),e._parse(512,g),i()},a=function(){var h=e._header.size;e._paxGlobal=SE.decodePax(t.slice(0,h)),t.consume(h),s()},l=function(){var h=e._header.size;e._pax=SE.decodePax(t.slice(0,h)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),t.consume(h),s()},c=function(){var h=e._header.size;this._gnuLongPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},u=function(){var h=e._header.size;this._gnuLongLinkPath=SE.decodeLongPath(t.slice(0,h),r.filenameEncoding),t.consume(h),s()},g=function(){var h=e._offset,p;try{p=e._header=SE.decode(t.slice(0,512),r.filenameEncoding,r.allowUnknownFormat)}catch(d){e.emit("error",d)}if(t.consume(512),!p){e._parse(512,g),i();return}if(p.type==="gnu-long-path"){e._parse(p.size,c),i();return}if(p.type==="gnu-long-link-path"){e._parse(p.size,u),i();return}if(p.type==="pax-global-header"){e._parse(p.size,a),i();return}if(p.type==="pax-header"){e._parse(p.size,l),i();return}if(e._gnuLongPath&&(p.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(p.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=p=b9e(p,e._pax),e._pax=null),e._locked=!0,!p.size||p.type==="directory"){e._parse(512,g),e.emit("entry",p,B9e(e,h),n);return}e._stream=new DQ(e,h),e.emit("entry",p,e._stream,n),e._parse(p.size,s),i()};this._onheader=g,this._parse(512,g)};fue.inherits(dA,hue);dA.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.emit("close"))};dA.prototype._parse=function(r,e){this._destroyed||(this._offset+=r,this._missing=r,e===this._onheader&&(this._partial=!1),this._onparse=e)};dA.prototype._continue=function(){if(!this._destroyed){var r=this._cb;this._cb=due,this._overflow?this._write(this._overflow,void 0,r):r()}};dA.prototype._write=function(r,e,t){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(r.length&&(this._partial=!0),r.length<s)return this._missing-=r.length,this._overflow=null,i?i.write(r,t):(n.append(r),t());this._cb=t,this._missing=0;var o=null;r.length>s&&(o=r.slice(s),r=r.slice(0,s)),i?i.end(r):n.append(r),this._overflow=o,this._onparse()}};dA.prototype._final=function(r){if(this._partial)return this.destroy(new Error("Unexpected end of data"));r()};Cue.exports=dA});var Iue=I((MQt,Eue)=>{Eue.exports=J("fs").constants||J("constants")});var Que=I((KQt,bue)=>{var pp=Iue(),yue=PD(),FQ=Sl(),Q9e=Buffer.alloc,wue=gp().Readable,dp=gp().Writable,S9e=J("string_decoder").StringDecoder,RQ=e1(),v9e=parseInt("755",8),x9e=parseInt("644",8),Bue=Q9e(1024),r1=function(){},t1=function(r,e){e&=511,e&&r.push(Bue.slice(0,512-e))};function P9e(r){switch(r&pp.S_IFMT){case pp.S_IFBLK:return"block-device";case pp.S_IFCHR:return"character-device";case pp.S_IFDIR:return"directory";case pp.S_IFIFO:return"fifo";case pp.S_IFLNK:return"symlink"}return"file"}var NQ=function(r){dp.call(this),this.written=0,this._to=r,this._destroyed=!1};FQ(NQ,dp);NQ.prototype._write=function(r,e,t){if(this.written+=r.length,this._to.push(r))return t();this._to._drain=t};NQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var TQ=function(){dp.call(this),this.linkname="",this._decoder=new S9e("utf-8"),this._destroyed=!1};FQ(TQ,dp);TQ.prototype._write=function(r,e,t){this.linkname+=this._decoder.write(r),t()};TQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var vE=function(){dp.call(this),this._destroyed=!1};FQ(vE,dp);vE.prototype._write=function(r,e,t){t(new Error("No body allowed for this entry"))};vE.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var aa=function(r){if(!(this instanceof aa))return new aa(r);wue.call(this,r),this._drain=r1,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};FQ(aa,wue);aa.prototype.entry=function(r,e,t){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(t=e,e=null),t||(t=r1);var i=this;if((!r.size||r.type==="symlink")&&(r.size=0),r.type||(r.type=P9e(r.mode)),r.mode||(r.mode=r.type==="directory"?v9e:x9e),r.uid||(r.uid=0),r.gid||(r.gid=0),r.mtime||(r.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){r.size=e.length,this._encode(r);var n=this.push(e);return t1(i,r.size),n?process.nextTick(t):this._drain=t,new vE}if(r.type==="symlink"&&!r.linkname){var s=new TQ;return yue(s,function(a){if(a)return i.destroy(),t(a);r.linkname=s.linkname,i._encode(r),t()}),s}if(this._encode(r),r.type!=="file"&&r.type!=="contiguous-file")return process.nextTick(t),new vE;var o=new NQ(this);return this._stream=o,yue(o,function(a){if(i._stream=null,a)return i.destroy(),t(a);if(o.written!==r.size)return i.destroy(),t(new Error("size mismatch"));t1(i,r.size),i._finalizing&&i.finalize(),t()}),o}};aa.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Bue),this.push(null))};aa.prototype.destroy=function(r){this._destroyed||(this._destroyed=!0,r&&this.emit("error",r),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};aa.prototype._encode=function(r){if(!r.pax){var e=RQ.encode(r);if(e){this.push(e);return}}this._encodePax(r)};aa.prototype._encodePax=function(r){var e=RQ.encodePax({name:r.name,linkname:r.linkname,pax:r.pax}),t={name:"PaxHeader",mode:r.mode,uid:r.uid,gid:r.gid,size:e.length,mtime:r.mtime,type:"pax-header",linkname:r.linkname&&"PaxHeader",uname:r.uname,gname:r.gname,devmajor:r.devmajor,devminor:r.devminor};this.push(RQ.encode(t)),this.push(e),t1(this,e.length),t.size=r.size,t.type=r.type,this.push(RQ.encode(t))};aa.prototype._read=function(r){var e=this._drain;this._drain=r1,e()};bue.exports=aa});var Sue=I(i1=>{i1.extract=mue();i1.pack=Que()});var Mue=I((aSt,Oue)=>{"use strict";var _u=class{constructor(e,t,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=t||{},this.__providers=Tue(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return l1(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,t=this){for(let[i,n]of this.entries())e.call(t,n,i,this)}toJSON(){let e={};return this.forEach((t,i)=>{e[i]=t}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let t=e||this.__opts.other;if(t){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(t):Y9e(n);for(let[o,a]of s)t(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,t]of this.entries())yield[e,t]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new _u(this.__specs,this.__opts,Tue(this.__providers).concat(e)),Lue)}};try{let r=J("util");_u.prototype[r.inspect.custom]=function(e,t){return this[Symbol.toStringTag]+" "+r.inspect(this.toJSON(),t)}}catch{}function j9e(r){throw Object.assign(new Error(`invalid config key requested: ${r}`),{code:"EBADKEY"})}function l1(r,e,t){let i=r.__specs[e];if(t&&!i&&(!r.__opts.other||!r.__opts.other(e)))j9e(e);else{i||(i={});let n;for(let s of r.__providers){if(n=Nue(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=Nue(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(r):i.default:n}}function Nue(r,e){let t;return e.__isFiggyPudding?t=l1(e,r,!1):typeof e.get=="function"?t=e.get(r):t=e[r],t}var Lue={has(r,e){return e in r.__specs&&l1(r,e,!1)!==void 0},ownKeys(r){return Object.keys(r.__specs)},get(r,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in _u.prototype?r[e]:r.get(e)},set(r,e,t){if(typeof e=="symbol"||e.slice(0,2)==="__")return r[e]=t,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};Oue.exports=G9e;function G9e(r,e){function t(...i){return new Proxy(new _u(r,e,i),Lue)}return t}function Tue(r){let e=[];return r.forEach(t=>e.unshift(t)),e}function Y9e(r){return Object.keys(r).map(e=>[e,r[e]])}});var Hue=I((ASt,ca)=>{"use strict";var PE=J("crypto"),q9e=Mue(),J9e=J("stream").Transform,Kue=["sha256","sha384","sha512"],W9e=/^[a-z0-9+/]+(?:=?=?)$/i,z9e=/^([^-]+)-([^?]+)([?\S*]*)$/,V9e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,X9e=/^[\x21-\x7E]+$/,An=q9e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>nVe},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),Fl=class{get isHash(){return!0}constructor(e,t){t=An(t);let i=!!t.strict;this.source=e.trim();let n=this.source.match(i?V9e:z9e);if(!n||i&&!Kue.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=An(e),e.strict&&!(Kue.some(i=>i===this.algorithm)&&this.digest.match(W9e)&&(this.options||[]).every(i=>i.match(X9e))))return"";let t=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${t}`}},$u=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=An(e);let t=e.sep||" ";return e.strict&&(t=t.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>Fl.prototype.toString.call(n,e)).filter(n=>n.length).join(t)).filter(i=>i.length).join(t)}concat(e,t){t=An(t);let i=typeof e=="string"?e:xE(e,t);return la(`${this.toString(t)} ${i}`,t)}hexDigest(){return la(this,{single:!0}).hexDigest()}match(e,t){t=An(t);let i=la(e,t),n=i.pickAlgorithm(t);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=An(e);let t=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>t(n,s)||n)}};ca.exports.parse=la;function la(r,e){if(e=An(e),typeof r=="string")return c1(r,e);if(r.algorithm&&r.digest){let t=new $u;return t[r.algorithm]=[r],c1(xE(t,e),e)}else return c1(xE(r,e),e)}function c1(r,e){return e.single?new Fl(r,e):r.trim().split(/\s+/).reduce((t,i)=>{let n=new Fl(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;t[s]||(t[s]=[]),t[s].push(n)}return t},new $u)}ca.exports.stringify=xE;function xE(r,e){return e=An(e),r.algorithm&&r.digest?Fl.prototype.toString.call(r,e):typeof r=="string"?xE(la(r,e),e):$u.prototype.toString.call(r,e)}ca.exports.fromHex=Z9e;function Z9e(r,e,t){t=An(t);let i=t.options&&t.options.length?`?${t.options.join("?")}`:"";return la(`${e}-${Buffer.from(r,"hex").toString("base64")}${i}`,t)}ca.exports.fromData=_9e;function _9e(r,e){e=An(e);let t=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return t.reduce((n,s)=>{let o=PE.createHash(s).update(r).digest("base64"),a=new Fl(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new $u)}ca.exports.fromStream=$9e;function $9e(r,e){e=An(e);let t=e.Promise||Promise,i=u1(e);return new t((n,s)=>{r.pipe(i),r.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}ca.exports.checkData=eVe;function eVe(r,e,t){if(t=An(t),e=la(e,t),!Object.keys(e).length){if(t.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(t),n=PE.createHash(i).update(r).digest("base64"),s=la({algorithm:i,digest:n}),o=s.match(e,t);if(o||!t.error)return o;if(typeof t.size=="number"&&r.length!==t.size){let a=new Error(`data size mismatch when checking ${e}. - Wanted: ${t.size} - Found: ${r.length}`);throw a.code="EBADSIZE",a.found=r.length,a.expected=t.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${r.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}ca.exports.checkStream=tVe;function tVe(r,e,t){t=An(t);let i=t.Promise||Promise,n=u1(t.concat({integrity:e}));return new i((s,o)=>{r.pipe(n),r.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}ca.exports.integrityStream=u1;function u1(r){r=An(r);let e=r.integrity&&la(r.integrity,r),t=e&&Object.keys(e).length,i=t&&e.pickAlgorithm(r),n=t&&e[i],s=Array.from(new Set(r.algorithms.concat(i?[i]:[]))),o=s.map(PE.createHash),a=0,l=new J9e({transform(c,u,g){a+=c.length,o.forEach(h=>h.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=r.options&&r.options.length?`?${r.options.join("?")}`:"",u=la(o.map((h,p)=>`${s[p]}-${h.digest("base64")}${c}`).join(" "),r),g=t&&u.match(e,r);if(typeof r.size=="number"&&a!==r.size){let h=new Error(`stream size mismatch when checking ${e}. - Wanted: ${r.size} - Found: ${a}`);h.code="EBADSIZE",h.found=a,h.expected=r.size,h.sri=e,l.emit("error",h)}else if(r.integrity&&!g){let h=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);h.code="EINTEGRITY",h.found=u,h.expected=n,h.algorithm=i,h.sri=e,l.emit("error",h)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}ca.exports.create=rVe;function rVe(r){r=An(r);let e=r.algorithms,t=r.options.length?`?${r.options.join("?")}`:"",i=e.map(PE.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new Fl(`${a}-${l}${t}`,r);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new $u)}}}var iVe=new Set(PE.getHashes()),Uue=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(r=>iVe.has(r));function nVe(r,e){return Uue.indexOf(r.toLowerCase())>=Uue.indexOf(e.toLowerCase())?r:e}});var om={};ct(om,{BuildType:()=>L0,Cache:()=>Dt,Configuration:()=>Ee,DEFAULT_LOCK_FILENAME:()=>oD,DEFAULT_RC_FILENAME:()=>sD,FormatType:()=>Bz,InstallMode:()=>ts,LightReport:()=>ta,LinkType:()=>Ef,Manifest:()=>ot,MessageName:()=>dt,MultiFetcher:()=>kf,PackageExtensionStatus:()=>Xx,PackageExtensionType:()=>Vx,Project:()=>Ge,ProjectLookup:()=>cD,Report:()=>xi,ReportError:()=>rt,SettingsType:()=>aD,StreamReport:()=>He,TAG_REGEXP:()=>Rf,TelemetryManager:()=>Sh,ThrowReport:()=>$r,VirtualFetcher:()=>Ff,Workspace:()=>Qh,WorkspaceFetcher:()=>Tf,WorkspaceResolver:()=>Hr,YarnVersion:()=>Nr,execUtils:()=>pr,folderUtils:()=>Nw,formatUtils:()=>$,hashUtils:()=>Ai,httpUtils:()=>Vt,miscUtils:()=>me,nodeUtils:()=>ys,parseMessageName:()=>TI,scriptUtils:()=>Yt,semverUtils:()=>Qt,stringifyMessageName:()=>RA,structUtils:()=>x,tgzUtils:()=>Ci,treeUtils:()=>es});var pr={};ct(pr,{EndStrategy:()=>hD,ExecError:()=>jw,PipeError:()=>CC,execvp:()=>tD,pipevp:()=>so});var zp={};ct(zp,{AliasFS:()=>Qo,CustomDir:()=>jp,CwdFS:()=>jt,DEFAULT_COMPRESSION_LEVEL:()=>_l,FakeFS:()=>wa,Filename:()=>St,JailFS:()=>So,LazyFS:()=>Sg,LinkStrategy:()=>CS,NoFS:()=>qp,NodeFS:()=>Zt,PortablePath:()=>Te,PosixFS:()=>vg,ProxiedFS:()=>hi,VirtualFS:()=>wr,ZipFS:()=>qr,ZipOpenFS:()=>Kn,constants:()=>xr,extendFs:()=>aI,normalizeLineEndings:()=>Zl,npath:()=>K,opendir:()=>eI,patchFs:()=>bS,ppath:()=>v,statUtils:()=>Mp,toFilename:()=>Yr,xfs:()=>M});var xr={};ct(xr,{SAFE_TIME:()=>oK,S_IFDIR:()=>zl,S_IFLNK:()=>Xl,S_IFMT:()=>Ys,S_IFREG:()=>Vl});var Ys=61440,zl=16384,Vl=32768,Xl=40960,oK=456789e3;var Mp={};ct(Mp,{BigIntStatsEntry:()=>Bg,DEFAULT_MODE:()=>Lp,DirEntry:()=>cS,StatEntry:()=>ya,areStatsEqual:()=>gS,clearStats:()=>JE,convertToBigIntStats:()=>WE,makeDefaultStats:()=>Op,makeEmptyStats:()=>Gge});var uS=ve(J("util"));var Lp=33188,cS=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ya=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=Lp;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},Bg=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(Lp);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}};function Op(){return new ya}function Gge(){return JE(Op())}function JE(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)){let t=r[e];typeof t=="number"?r[e]=0:typeof t=="bigint"?r[e]=BigInt(0):uS.types.isDate(t)&&(r[e]=new Date(0))}return r}function WE(r){let e=new Bg;for(let t in r)if(Object.prototype.hasOwnProperty.call(r,t)){let i=r[t];typeof i=="number"?e[t]=BigInt(i):uS.types.isDate(i)&&(e[t]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function gS(r,e){if(r.atimeMs!==e.atimeMs||r.birthtimeMs!==e.birthtimeMs||r.blksize!==e.blksize||r.blocks!==e.blocks||r.ctimeMs!==e.ctimeMs||r.dev!==e.dev||r.gid!==e.gid||r.ino!==e.ino||r.isBlockDevice()!==e.isBlockDevice()||r.isCharacterDevice()!==e.isCharacterDevice()||r.isDirectory()!==e.isDirectory()||r.isFIFO()!==e.isFIFO()||r.isFile()!==e.isFile()||r.isSocket()!==e.isSocket()||r.isSymbolicLink()!==e.isSymbolicLink()||r.mode!==e.mode||r.mtimeMs!==e.mtimeMs||r.nlink!==e.nlink||r.rdev!==e.rdev||r.size!==e.size||r.uid!==e.uid)return!1;let t=r,i=e;return!(t.atimeNs!==i.atimeNs||t.mtimeNs!==i.mtimeNs||t.ctimeNs!==i.ctimeNs||t.birthtimeNs!==i.birthtimeNs)}var VE=ve(J("fs"));var Kp=ve(J("path"));var Te={root:"/",dot:".",parent:".."},St={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},K=Object.create(Kp.default),v=Object.create(Kp.default.posix);K.cwd=()=>process.cwd();v.cwd=()=>fS(process.cwd());v.resolve=(...r)=>r.length>0&&v.isAbsolute(r[0])?Kp.default.posix.resolve(...r):Kp.default.posix.resolve(v.cwd(),...r);var aK=function(r,e,t){return e=r.normalize(e),t=r.normalize(t),e===t?".":(e.endsWith(r.sep)||(e=e+r.sep),t.startsWith(e)?t.slice(e.length):null)};K.fromPortablePath=AK;K.toPortablePath=fS;K.contains=(r,e)=>aK(K,r,e);v.contains=(r,e)=>aK(v,r,e);var Yge=/^([a-zA-Z]:.*)$/,qge=/^\/\/(\.\/)?(.*)$/,Jge=/^\/([a-zA-Z]:.*)$/,Wge=/^\/unc\/(\.dot\/)?(.*)$/;function AK(r){if(process.platform!=="win32")return r;let e,t;if(e=r.match(Jge))r=e[1];else if(t=r.match(Wge))r=`\\\\${t[1]?".\\":""}${t[2]}`;else return r;return r.replace(/\//g,"\\")}function fS(r){if(process.platform!=="win32")return r;r=r.replace(/\\/g,"/");let e,t;return(e=r.match(Yge))?r=`/${e[1]}`:(t=r.match(qge))&&(r=`/unc/${t[1]?".dot/":""}${t[2]}`),r}function zE(r,e){return r===K?AK(e):fS(e)}function Yr(r){if(K.parse(r).dir!==""||v.parse(r).dir!=="")throw new Error(`Invalid filename: "${r}"`);return r}var XE=new Date(456789e3*1e3),CS=(t=>(t.Allow="allow",t.ReadOnly="readOnly",t))(CS||{});async function lK(r,e,t,i,n){let s=r.pathUtils.normalize(e),o=t.pathUtils.normalize(i),a=[],l=[],{atime:c,mtime:u}=n.stableTime?{atime:XE,mtime:XE}:await t.lstatPromise(o);await r.mkdirpPromise(r.pathUtils.dirname(e),{utimes:[c,u]});let g=typeof r.lutimesPromise=="function"?r.lutimesPromise.bind(r):r.utimesPromise.bind(r);await pS(a,l,g,r,s,t,o,{...n,didParentExist:!0});for(let h of a)await h();await Promise.all(l.map(h=>h()))}async function pS(r,e,t,i,n,s,o,a){var p,d;let l=a.didParentExist?await zge(i,n):null,c=await s.lstatPromise(o),{atime:u,mtime:g}=a.stableTime?{atime:XE,mtime:XE}:c,h;switch(!0){case c.isDirectory():h=await Vge(r,e,t,i,n,l,s,o,c,a);break;case c.isFile():h=await Zge(r,e,t,i,n,l,s,o,c,a);break;case c.isSymbolicLink():h=await _ge(r,e,t,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(h||((p=l==null?void 0:l.mtime)==null?void 0:p.getTime())!==g.getTime()||((d=l==null?void 0:l.atime)==null?void 0:d.getTime())!==u.getTime())&&(e.push(()=>t(n,u,g)),h=!0),(l===null||(l.mode&511)!==(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),h=!0),h}async function zge(r,e){try{return await r.lstatPromise(e)}catch{return null}}async function Vge(r,e,t,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(r.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(p){if(p.code!=="EEXIST")throw p}}),u=!0);let g=await o.readdirPromise(a),h=c.didParentExist&&!s?{...c,didParentExist:!1}:c;if(c.stableSort)for(let p of g.sort())await pS(r,e,t,i,i.pathUtils.join(n,p),o,o.pathUtils.join(a,p),h)&&(u=!0);else(await Promise.all(g.map(async d=>{await pS(r,e,t,i,i.pathUtils.join(n,d),o,o.pathUtils.join(a,d),h)}))).some(d=>d)&&(u=!0);return u}var hS=new WeakMap;function dS(r,e,t,i,n){return async()=>{await r.linkPromise(t,e),n==="readOnly"&&(i.mode&=-147,await r.chmodPromise(e,i.mode))}}function Xge(r,e,t,i,n){let s=hS.get(r);return typeof s>"u"?async()=>{try{await r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE),hS.set(r,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")hS.set(r,!1),await dS(r,e,t,i,n)();else throw o}}:s?async()=>r.copyFilePromise(t,e,VE.default.constants.COPYFILE_FICLONE_FORCE):dS(r,e,t,i,n)}async function Zge(r,e,t,i,n,s,o,a,l,c){var h;if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(h=c.linkStrategy)!=null?h:null,g=i===o?u!==null?Xge(i,n,a,l,u):async()=>i.copyFilePromise(a,n,VE.default.constants.COPYFILE_FICLONE):u!==null?dS(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return r.push(async()=>g()),!0}async function _ge(r,e,t,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)r.push(async()=>i.removePromise(n)),s=null;else return!1;return r.push(async()=>{await i.symlinkPromise(zE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function as(r,e){return Object.assign(new Error(`${r}: ${e}`),{code:r})}function _E(r){return as("EBUSY",r)}function Up(r,e){return as("ENOSYS",`${r}, ${e}`)}function SA(r){return as("EINVAL",`invalid argument, ${r}`)}function Mr(r){return as("EBADF",`bad file descriptor, ${r}`)}function qs(r){return as("ENOENT",`no such file or directory, ${r}`)}function bo(r){return as("ENOTDIR",`not a directory, ${r}`)}function Hp(r){return as("EISDIR",`illegal operation on a directory, ${r}`)}function $E(r){return as("EEXIST",`file already exists, ${r}`)}function gn(r){return as("EROFS",`read-only filesystem, ${r}`)}function cK(r){return as("ENOTEMPTY",`directory not empty, ${r}`)}function uK(r){return as("EOPNOTSUPP",`operation not supported, ${r}`)}function gK(){return as("ERR_DIR_CLOSED","Directory handle was closed")}var ZE=class extends Error{constructor(t,i){super(t);this.name="Libzip Error",this.code=i}};var jp=class{constructor(e,t,i={}){this.path=e;this.nextDirent=t;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw gK()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let t=this.readSync();return typeof e<"u"?e(null,t):Promise.resolve(t)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){var e,t;this.throwIfClosed(),(t=(e=this.opts).onClose)==null||t.call(e),this.closed=!0}};function eI(r,e,t,i){let n=()=>{let s=t.shift();return typeof s>"u"?null:Object.assign(r.statSync(r.pathUtils.join(e,s)),{name:s})};return new jp(e,n,i)}var fK=J("os");var wa=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:t=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(t)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:t=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(t){let s=await this.readdirPromise(e);await Promise.all(s.map(o=>this.removePromise(this.pathUtils.resolve(e,o))))}for(let s=0;s<=i;s++)try{await this.rmdirPromise(e);break}catch(o){if(o.code!=="EBUSY"&&o.code!=="ENOTEMPTY")throw o;s<i&&await new Promise(a=>setTimeout(a,s*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:t=!0}={}){let i;try{i=this.lstatSync(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(i.isDirectory()){if(t)for(let n of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,n));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{await this.mkdirPromise(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&await this.chmodPromise(a,t),i!=null)await this.utimesPromise(a,i[0],i[1]);else{let l=await this.statPromise(this.pathUtils.dirname(a));await this.utimesPromise(a,l.atime,l.mtime)}}}return s}mkdirpSync(e,{chmod:t,utimes:i}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let n=e.split(this.pathUtils.sep),s;for(let o=2;o<=n.length;++o){let a=n.slice(0,o).join(this.pathUtils.sep);if(!this.existsSync(a)){try{this.mkdirSync(a)}catch(l){if(l.code==="EEXIST")continue;throw l}if(s!=null||(s=a),t!=null&&this.chmodSync(a,t),i!=null)this.utimesSync(a,i[0],i[1]);else{let l=this.statSync(this.pathUtils.dirname(a));this.utimesSync(a,l.atime,l.mtime)}}}return s}async copyPromise(e,t,{baseFs:i=this,overwrite:n=!0,stableSort:s=!1,stableTime:o=!1,linkStrategy:a=null}={}){return await lK(this,e,i,t,{overwrite:n,stableSort:s,stableTime:o,linkStrategy:a})}copySync(e,t,{baseFs:i=this,overwrite:n=!0}={}){let s=i.lstatSync(t),o=this.existsSync(e);if(s.isDirectory()){this.mkdirpSync(e);let l=i.readdirSync(t);for(let c of l)this.copySync(this.pathUtils.join(e,c),i.pathUtils.join(t,c),{baseFs:i,overwrite:n})}else if(s.isFile()){if(!o||n){o&&this.removeSync(e);let l=i.readFileSync(t);this.writeFileSync(e,l)}}else if(s.isSymbolicLink()){if(!o||n){o&&this.removeSync(e);let l=i.readlinkSync(t);this.symlinkSync(zE(this.pathUtils,l),e)}}else throw new Error(`Unsupported file type (file: ${t}, mode: 0o${s.mode.toString(8).padStart(6,"0")})`);let a=s.mode&511;this.chmodSync(e,a)}async changeFilePromise(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferPromise(e,t,i):this.changeFileTextPromise(e,t,i)}async changeFileBufferPromise(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=await this.readFilePromise(e)}catch{}Buffer.compare(n,t)!==0&&await this.writeFilePromise(e,t,{mode:i})}async changeFileTextPromise(e,t,{automaticNewlines:i,mode:n}={}){let s="";try{s=await this.readFilePromise(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&await this.writeFilePromise(e,o,{mode:n})}changeFileSync(e,t,i={}){return Buffer.isBuffer(t)?this.changeFileBufferSync(e,t,i):this.changeFileTextSync(e,t,i)}changeFileBufferSync(e,t,{mode:i}={}){let n=Buffer.alloc(0);try{n=this.readFileSync(e)}catch{}Buffer.compare(n,t)!==0&&this.writeFileSync(e,t,{mode:i})}changeFileTextSync(e,t,{automaticNewlines:i=!1,mode:n}={}){let s="";try{s=this.readFileSync(e,"utf8")}catch{}let o=i?Zl(s,t):t;s!==o&&this.writeFileSync(e,o,{mode:n})}async movePromise(e,t){try{await this.renamePromise(e,t)}catch(i){if(i.code==="EXDEV")await this.copyPromise(t,e),await this.removePromise(e);else throw i}}moveSync(e,t){try{this.renameSync(e,t)}catch(i){if(i.code==="EXDEV")this.copySync(t,e),this.removeSync(e);else throw i}}async lockPromise(e,t){let i=`${e}.flock`,n=1e3/60,s=Date.now(),o=null,a=async()=>{let l;try{[l]=await this.readJsonPromise(i)}catch{return Date.now()-s<500}try{return process.kill(l,0),!0}catch{return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch{}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await t()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch{}}}async readJsonPromise(e){let t=await this.readFilePromise(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let t=this.readFileSync(e,"utf8");try{return JSON.parse(t)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,t){return await this.writeFilePromise(e,`${JSON.stringify(t,null,2)} -`)}writeJsonSync(e,t){return this.writeFileSync(e,`${JSON.stringify(t,null,2)} -`)}async preserveTimePromise(e,t){let i=await this.lstatPromise(e),n=await t();typeof n<"u"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,t){let i=this.lstatSync(e),n=t();typeof n<"u"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},vA=class extends wa{constructor(){super(v)}};function $ge(r){let e=r.match(/\r?\n/g);if(e===null)return fK.EOL;let t=e.filter(n=>n===`\r -`).length,i=e.length-t;return t>i?`\r -`:` -`}function Zl(r,e){return e.replace(/\r?\n/g,$ge(r))}var Qg=J("fs"),IS=J("stream"),CK=J("util"),yS=ve(J("zlib"));var hK=ve(J("fs"));var Zt=class extends vA{constructor(t=hK.default){super();this.realFs=t,typeof this.realFs.lutimes<"u"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Te.root}resolve(t){return v.resolve(t)}async openPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.open(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}openSync(t,i,n){return this.realFs.openSync(K.fromPortablePath(t),i,n)}async opendirPromise(t,i){return await new Promise((n,s)=>{typeof i<"u"?this.realFs.opendir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.opendir(K.fromPortablePath(t),this.makeCallback(n,s))}).then(n=>Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0}))}opendirSync(t,i){let n=typeof i<"u"?this.realFs.opendirSync(K.fromPortablePath(t),i):this.realFs.opendirSync(K.fromPortablePath(t));return Object.defineProperty(n,"path",{value:t,configurable:!0,writable:!0})}async readPromise(t,i,n=0,s=0,o=-1){return await new Promise((a,l)=>{this.realFs.read(t,i,n,s,o,(c,u)=>{c?l(c):a(u)})})}readSync(t,i,n,s,o){return this.realFs.readSync(t,i,n,s,o)}async writePromise(t,i,n,s,o){return await new Promise((a,l)=>typeof i=="string"?this.realFs.write(t,i,n,this.makeCallback(a,l)):this.realFs.write(t,i,n,s,o,this.makeCallback(a,l)))}writeSync(t,i,n,s,o){return typeof i=="string"?this.realFs.writeSync(t,i,n):this.realFs.writeSync(t,i,n,s,o)}async closePromise(t){await new Promise((i,n)=>{this.realFs.close(t,this.makeCallback(i,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createReadStream(n,i)}createWriteStream(t,i){let n=t!==null?K.fromPortablePath(t):t;return this.realFs.createWriteStream(n,i)}async realpathPromise(t){return await new Promise((i,n)=>{this.realFs.realpath(K.fromPortablePath(t),{},this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}realpathSync(t){return K.toPortablePath(this.realFs.realpathSync(K.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(i=>{this.realFs.exists(K.fromPortablePath(t),i)})}accessSync(t,i){return this.realFs.accessSync(K.fromPortablePath(t),i)}async accessPromise(t,i){return await new Promise((n,s)=>{this.realFs.access(K.fromPortablePath(t),i,this.makeCallback(n,s))})}existsSync(t){return this.realFs.existsSync(K.fromPortablePath(t))}async statPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.stat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.stat(K.fromPortablePath(t),this.makeCallback(n,s))})}statSync(t,i){return i?this.realFs.statSync(K.fromPortablePath(t),i):this.realFs.statSync(K.fromPortablePath(t))}async fstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.fstat(t,i,this.makeCallback(n,s)):this.realFs.fstat(t,this.makeCallback(n,s))})}fstatSync(t,i){return i?this.realFs.fstatSync(t,i):this.realFs.fstatSync(t)}async lstatPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.lstat(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.lstat(K.fromPortablePath(t),this.makeCallback(n,s))})}lstatSync(t,i){return i?this.realFs.lstatSync(K.fromPortablePath(t),i):this.realFs.lstatSync(K.fromPortablePath(t))}async fchmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.fchmod(t,i,this.makeCallback(n,s))})}fchmodSync(t,i){return this.realFs.fchmodSync(t,i)}async chmodPromise(t,i){return await new Promise((n,s)=>{this.realFs.chmod(K.fromPortablePath(t),i,this.makeCallback(n,s))})}chmodSync(t,i){return this.realFs.chmodSync(K.fromPortablePath(t),i)}async fchownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.fchown(t,i,n,this.makeCallback(s,o))})}fchownSync(t,i,n){return this.realFs.fchownSync(t,i,n)}async chownPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.chown(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}chownSync(t,i,n){return this.realFs.chownSync(K.fromPortablePath(t),i,n)}async renamePromise(t,i){return await new Promise((n,s)=>{this.realFs.rename(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}renameSync(t,i){return this.realFs.renameSync(K.fromPortablePath(t),K.fromPortablePath(i))}async copyFilePromise(t,i,n=0){return await new Promise((s,o)=>{this.realFs.copyFile(K.fromPortablePath(t),K.fromPortablePath(i),n,this.makeCallback(s,o))})}copyFileSync(t,i,n=0){return this.realFs.copyFileSync(K.fromPortablePath(t),K.fromPortablePath(i),n)}async appendFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFile(a,i,n,this.makeCallback(s,o)):this.realFs.appendFile(a,i,this.makeCallback(s,o))})}appendFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.appendFileSync(s,i,n):this.realFs.appendFileSync(s,i)}async writeFilePromise(t,i,n){return await new Promise((s,o)=>{let a=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFile(a,i,n,this.makeCallback(s,o)):this.realFs.writeFile(a,i,this.makeCallback(s,o))})}writeFileSync(t,i,n){let s=typeof t=="string"?K.fromPortablePath(t):t;n?this.realFs.writeFileSync(s,i,n):this.realFs.writeFileSync(s,i)}async unlinkPromise(t){return await new Promise((i,n)=>{this.realFs.unlink(K.fromPortablePath(t),this.makeCallback(i,n))})}unlinkSync(t){return this.realFs.unlinkSync(K.fromPortablePath(t))}async utimesPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.utimes(K.fromPortablePath(t),i,n,this.makeCallback(s,o))})}utimesSync(t,i,n){this.realFs.utimesSync(K.fromPortablePath(t),i,n)}async lutimesPromiseImpl(t,i,n){let s=this.realFs.lutimes;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);return await new Promise((o,a)=>{s.call(this.realFs,K.fromPortablePath(t),i,n,this.makeCallback(o,a))})}lutimesSyncImpl(t,i,n){let s=this.realFs.lutimesSync;if(typeof s>"u")throw Up("unavailable Node binding",`lutimes '${t}'`);s.call(this.realFs,K.fromPortablePath(t),i,n)}async mkdirPromise(t,i){return await new Promise((n,s)=>{this.realFs.mkdir(K.fromPortablePath(t),i,this.makeCallback(n,s))})}mkdirSync(t,i){return this.realFs.mkdirSync(K.fromPortablePath(t),i)}async rmdirPromise(t,i){return await new Promise((n,s)=>{i?this.realFs.rmdir(K.fromPortablePath(t),i,this.makeCallback(n,s)):this.realFs.rmdir(K.fromPortablePath(t),this.makeCallback(n,s))})}rmdirSync(t,i){return this.realFs.rmdirSync(K.fromPortablePath(t),i)}async linkPromise(t,i){return await new Promise((n,s)=>{this.realFs.link(K.fromPortablePath(t),K.fromPortablePath(i),this.makeCallback(n,s))})}linkSync(t,i){return this.realFs.linkSync(K.fromPortablePath(t),K.fromPortablePath(i))}async symlinkPromise(t,i,n){return await new Promise((s,o)=>{this.realFs.symlink(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n,this.makeCallback(s,o))})}symlinkSync(t,i,n){return this.realFs.symlinkSync(K.fromPortablePath(t.replace(/\/+$/,"")),K.fromPortablePath(i),n)}async readFilePromise(t,i){return await new Promise((n,s)=>{let o=typeof t=="string"?K.fromPortablePath(t):t;this.realFs.readFile(o,i,this.makeCallback(n,s))})}readFileSync(t,i){let n=typeof t=="string"?K.fromPortablePath(t):t;return this.realFs.readFileSync(n,i)}async readdirPromise(t,i){return await new Promise((n,s)=>{i!=null&&i.withFileTypes?this.realFs.readdir(K.fromPortablePath(t),{withFileTypes:!0},this.makeCallback(n,s)):this.realFs.readdir(K.fromPortablePath(t),this.makeCallback(o=>n(o),s))})}readdirSync(t,i){return i!=null&&i.withFileTypes?this.realFs.readdirSync(K.fromPortablePath(t),{withFileTypes:!0}):this.realFs.readdirSync(K.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((i,n)=>{this.realFs.readlink(K.fromPortablePath(t),this.makeCallback(i,n))}).then(i=>K.toPortablePath(i))}readlinkSync(t){return K.toPortablePath(this.realFs.readlinkSync(K.fromPortablePath(t)))}async truncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.truncate(K.fromPortablePath(t),i,this.makeCallback(n,s))})}truncateSync(t,i){return this.realFs.truncateSync(K.fromPortablePath(t),i)}async ftruncatePromise(t,i){return await new Promise((n,s)=>{this.realFs.ftruncate(t,i,this.makeCallback(n,s))})}ftruncateSync(t,i){return this.realFs.ftruncateSync(t,i)}watch(t,i,n){return this.realFs.watch(K.fromPortablePath(t),i,n)}watchFile(t,i,n){return this.realFs.watchFile(K.fromPortablePath(t),i,n)}unwatchFile(t,i){return this.realFs.unwatchFile(K.fromPortablePath(t),i)}makeCallback(t,i){return(n,s)=>{n?i(n):t(s)}}};var dK=J("events");function pK(r,e){if(r!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${r}'`)}var bg=class extends dK.EventEmitter{constructor(t,i,{bigint:n=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=t,this.path=i,this.bigint=n,this.lastStats=this.stat()}static create(t,i,n){let s=new bg(t,i,n);return s.start(),s}start(){pK(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){pK(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let i=this.bigint?new Bg:new ya;return JE(i)}}makeInterval(t){let i=setInterval(()=>{let n=this.stat(),s=this.lastStats;gS(n,s)||(this.lastStats=n,this.emit("change",n,s))},t.interval);return t.persistent?i:i.unref()}registerChangeListener(t,i){this.addListener("change",t),this.changeListeners.set(t,this.makeInterval(i))}unregisterChangeListener(t){this.removeListener("change",t);let i=this.changeListeners.get(t);typeof i<"u"&&clearInterval(i),this.changeListeners.delete(t)}unregisterAllChangeListeners(){for(let t of this.changeListeners.keys())this.unregisterChangeListener(t)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let t of this.changeListeners.values())t.ref();return this}unref(){for(let t of this.changeListeners.values())t.unref();return this}};var tI=new WeakMap;function rI(r,e,t,i){let n,s,o,a;switch(typeof t){case"function":n=!1,s=!0,o=5007,a=t;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=t),a=i;break}let l=tI.get(r);typeof l>"u"&&tI.set(r,l=new Map);let c=l.get(e);return typeof c>"u"&&(c=bg.create(r,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function Gp(r,e,t){let i=tI.get(r);if(typeof i>"u")return;let n=i.get(e);typeof n>"u"||(typeof t>"u"?n.unregisterAllChangeListeners():n.unregisterChangeListener(t),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function Yp(r){let e=tI.get(r);if(!(typeof e>"u"))for(let t of e.keys())Gp(r,t)}var _l="mixed";function efe(r){if(typeof r=="string"&&String(+r)===r)return+r;if(typeof r=="number"&&Number.isFinite(r))return r<0?Date.now()/1e3:r;if(CK.types.isDate(r))return r.getTime()/1e3;throw new Error("Invalid time")}function ES(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var qr=class extends vA{constructor(t,i){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=i.libzip;let n=i;if(this.level=typeof n.level<"u"?n.level:_l,t!=null||(t=ES()),typeof t=="string"){let{baseFs:a=new Zt}=n;this.baseFs=a,this.path=t}else this.path=null,this.baseFs=null;if(i.stats)this.stats=i.stats;else if(typeof t=="string")try{this.stats=this.baseFs.statSync(t)}catch(a){if(a.code==="ENOENT"&&n.create)this.stats=Op();else throw a}else this.stats=Op();let s=this.libzip.malloc(4);try{let a=0;if(typeof t=="string"&&n.create&&(a|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),i.readOnly&&(a|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof t=="string")this.zip=this.libzip.open(K.fromPortablePath(t),a,s);else{let l=this.allocateUnattachedSource(t);try{this.zip=this.libzip.openFromSource(l,a,s),this.lzSource=l}catch(c){throw this.libzip.source.free(l),c}}if(this.zip===0){let l=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(l,this.libzip.getValue(s,"i32")),this.makeLibzipError(l)}}finally{this.libzip.free(s)}this.listings.set(Te.root,new Set);let o=this.libzip.getNumEntries(this.zip,0);for(let a=0;a<o;++a){let l=this.libzip.getName(this.zip,a,0);if(v.isAbsolute(l))continue;let c=v.resolve(Te.root,l);this.registerEntry(c,a),l.endsWith("/")&&this.registerListing(c)}if(this.symlinkCount=this.libzip.ext.countSymlinks(this.zip),this.symlinkCount===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.ready=!0}makeLibzipError(t){let i=this.libzip.struct.errorCodeZip(t),n=this.libzip.error.strerror(t),s=new ZE(n,this.libzip.errors[i]);if(i===this.libzip.errors.ZIP_ER_CHANGED)throw new Error(`Assertion failed: Unexpected libzip error: ${s.message}`);return s}getExtractHint(t){for(let i of this.entries.keys()){let n=this.pathUtils.extname(i);if(t.relevantExtensions.has(n))return!0}return!1}getAllFiles(){return Array.from(this.entries.keys())}getRealPath(){if(!this.path)throw new Error("ZipFS don't have real paths when loaded from a buffer");return this.path}getBufferAndClose(){if(this.prepareClose(),!this.lzSource)throw new Error("ZipFS was not created from a Buffer");if(this.entries.size===0)return this.discardAndClose(),ES();try{if(this.libzip.source.keep(this.lzSource),this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.libzip.source.open(this.lzSource)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_END)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let t=this.libzip.source.tell(this.lzSource);if(t===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(this.libzip.source.seek(this.lzSource,0,0,this.libzip.SEEK_SET)===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));let i=this.libzip.malloc(t);if(!i)throw new Error("Couldn't allocate enough memory");try{let n=this.libzip.source.read(this.lzSource,i,t);if(n===-1)throw this.makeLibzipError(this.libzip.source.error(this.lzSource));if(n<t)throw new Error("Incomplete read");if(n>t)throw new Error("Overread");let s=this.libzip.HEAPU8.subarray(i,i+t);return Buffer.from(s)}finally{this.libzip.free(i)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw _E("archive closed, close");Yp(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let t=this.baseFs.existsSync(this.path)||this.stats.mode===Lp?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,ES(),{mode:t});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof t<"u"&&this.baseFs.chmodSync(this.path,t)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(t){return v.resolve(Te.root,t)}async openPromise(t,i,n){return this.openSync(t,i,n)}openSync(t,i,n){let s=this.nextFd++;return this.fds.set(s,{cursor:0,p:t}),s}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(t,i){return this.opendirSync(t,i)}opendirSync(t,i={}){let n=this.resolveFilename(`opendir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`opendir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`opendir '${t}'`);let o=[...s],a=this.openSync(n,"r");return eI(this,n,o,{onClose:()=>{this.closeSync(a)}})}async readPromise(t,i,n,s,o){return this.readSync(t,i,n,s,o)}readSync(t,i,n=0,s=i.byteLength,o=-1){let a=this.fds.get(t);if(typeof a>"u")throw Mr("read");let l=o===-1||o===null?a.cursor:o,c=this.readFileSync(a.p);c.copy(i,n,l,l+s);let u=Math.max(0,Math.min(c.length-l,s));return(o===-1||o===null)&&(a.cursor+=u),u}async writePromise(t,i,n,s,o){return typeof i=="string"?this.writeSync(t,i,o):this.writeSync(t,i,n,s,o)}writeSync(t,i,n,s,o){throw typeof this.fds.get(t)>"u"?Mr("read"):new Error("Unimplemented")}async closePromise(t){return this.closeSync(t)}closeSync(t){if(typeof this.fds.get(t)>"u")throw Mr("read");this.fds.delete(t)}createReadStream(t,{encoding:i}={}){if(t===null)throw new Error("Unimplemented");let n=this.openSync(t,"r"),s=Object.assign(new IS.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(a,l)=>{clearImmediate(o),this.closeSync(n),l(a)}}),{close(){s.destroy()},bytesRead:0,path:t,pending:!1}),o=setImmediate(async()=>{try{let a=await this.readFilePromise(t,i);s.bytesRead=a.length,s.end(a)}catch(a){s.destroy(a)}});return s}createWriteStream(t,{encoding:i}={}){if(this.readOnly)throw gn(`open '${t}'`);if(t===null)throw new Error("Unimplemented");let n=[],s=this.openSync(t,"w"),o=Object.assign(new IS.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(a,l)=>{try{a?l(a):(this.writeFileSync(t,Buffer.concat(n),i),l(null))}catch(c){l(c)}finally{this.closeSync(s)}}}),{close(){o.destroy()},bytesWritten:0,path:t,pending:!1});return o.on("data",a=>{let l=Buffer.from(a);o.bytesWritten+=l.length,n.push(l)}),o}async realpathPromise(t){return this.realpathSync(t)}realpathSync(t){let i=this.resolveFilename(`lstat '${t}'`,t);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`lstat '${t}'`);return i}async existsPromise(t){return this.existsSync(t)}existsSync(t){if(!this.ready)throw _E(`archive closed, existsSync '${t}'`);if(this.symlinkCount===0){let n=v.resolve(Te.root,t);return this.entries.has(n)||this.listings.has(n)}let i;try{i=this.resolveFilename(`stat '${t}'`,t,void 0,!1)}catch{return!1}return i===void 0?!1:this.entries.has(i)||this.listings.has(i)}async accessPromise(t,i){return this.accessSync(t,i)}accessSync(t,i=Qg.constants.F_OK){let n=this.resolveFilename(`access '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`access '${t}'`);if(this.readOnly&&i&Qg.constants.W_OK)throw gn(`access '${t}'`)}async statPromise(t,i={bigint:!1}){return i.bigint?this.statSync(t,{bigint:!0}):this.statSync(t)}statSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`stat '${t}'`,t,void 0,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`stat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`stat '${t}'`);return this.statImpl(`stat '${t}'`,n,i)}}async fstatPromise(t,i){return this.fstatSync(t,i)}fstatSync(t,i){let n=this.fds.get(t);if(typeof n>"u")throw Mr("fstatSync");let{p:s}=n,o=this.resolveFilename(`stat '${s}'`,s);if(!this.entries.has(o)&&!this.listings.has(o))throw qs(`stat '${s}'`);if(s[s.length-1]==="/"&&!this.listings.has(o))throw bo(`stat '${s}'`);return this.statImpl(`fstat '${s}'`,o,i)}async lstatPromise(t,i={bigint:!1}){return i.bigint?this.lstatSync(t,{bigint:!0}):this.lstatSync(t)}lstatSync(t,i={bigint:!1,throwIfNoEntry:!0}){let n=this.resolveFilename(`lstat '${t}'`,t,!1,i.throwIfNoEntry);if(n!==void 0){if(!this.entries.has(n)&&!this.listings.has(n)){if(i.throwIfNoEntry===!1)return;throw qs(`lstat '${t}'`)}if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`lstat '${t}'`);return this.statImpl(`lstat '${t}'`,n,i)}}statImpl(t,i,n={}){let s=this.entries.get(i);if(typeof s<"u"){let o=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,s,0,0,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let l=this.stats.uid,c=this.stats.gid,u=this.libzip.struct.statSize(o)>>>0,g=512,h=Math.ceil(u/g),p=(this.libzip.struct.statMtime(o)>>>0)*1e3,d=p,m=p,y=p,B=new Date(d),S=new Date(m),P=new Date(y),F=new Date(p),H=this.listings.has(i)?16384:this.isSymbolicLink(s)?40960:32768,q=H===16384?493:420,_=H|this.getUnixMode(s,q)&511,X=this.libzip.struct.statCrc(o),W=Object.assign(new ya,{uid:l,gid:c,size:u,blksize:g,blocks:h,atime:B,birthtime:S,ctime:P,mtime:F,atimeMs:d,birthtimeMs:m,ctimeMs:y,mtimeMs:p,mode:_,crc:X});return n.bigint===!0?WE(W):W}if(this.listings.has(i)){let o=this.stats.uid,a=this.stats.gid,l=0,c=512,u=0,g=this.stats.mtimeMs,h=this.stats.mtimeMs,p=this.stats.mtimeMs,d=this.stats.mtimeMs,m=new Date(g),y=new Date(h),B=new Date(p),S=new Date(d),P=16877,F=0,H=Object.assign(new ya,{uid:o,gid:a,size:l,blksize:c,blocks:u,atime:m,birthtime:y,ctime:B,mtime:S,atimeMs:g,birthtimeMs:h,ctimeMs:p,mtimeMs:d,mode:P,crc:F});return n.bigint===!0?WE(H):H}throw new Error("Unreachable")}getUnixMode(t,i){if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?i:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(t){let i=this.listings.get(t);if(i)return i;this.registerListing(v.dirname(t)).add(v.basename(t));let s=new Set;return this.listings.set(t,s),s}registerEntry(t,i){this.registerListing(v.dirname(t)).add(v.basename(t)),this.entries.set(t,i)}unregisterListing(t){this.listings.delete(t);let i=this.listings.get(v.dirname(t));i==null||i.delete(v.basename(t))}unregisterEntry(t){this.unregisterListing(t);let i=this.entries.get(t);this.entries.delete(t),!(typeof i>"u")&&(this.fileSources.delete(i),this.isSymbolicLink(i)&&this.symlinkCount--)}deleteEntry(t,i){if(this.unregisterEntry(t),this.libzip.delete(this.zip,i)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(t,i,n=!0,s=!0){if(!this.ready)throw _E(`archive closed, ${t}`);let o=v.resolve(Te.root,i);if(o==="/")return Te.root;let a=this.entries.get(o);if(n&&a!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(a)){let l=this.getFileSource(a).toString();return this.resolveFilename(t,v.resolve(v.dirname(o),l),!0,s)}else return o;for(;;){let l=this.resolveFilename(t,v.dirname(o),!0,s);if(l===void 0)return l;let c=this.listings.has(l),u=this.entries.has(l);if(!c&&!u){if(s===!1)return;throw qs(t)}if(!c)throw bo(t);if(o=v.resolve(l,v.basename(o)),!n||this.symlinkCount===0)break;let g=this.libzip.name.locate(this.zip,o.slice(1),0);if(g===-1)break;if(this.isSymbolicLink(g)){let h=this.getFileSource(g).toString();o=v.resolve(v.dirname(o),h)}else break}return o}allocateBuffer(t){Buffer.isBuffer(t)||(t=Buffer.from(t));let i=this.libzip.malloc(t.byteLength);if(!i)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,i,t.byteLength).set(t),{buffer:i,byteLength:t.byteLength}}allocateUnattachedSource(t){let i=this.libzip.struct.errorS(),{buffer:n,byteLength:s}=this.allocateBuffer(t),o=this.libzip.source.fromUnattachedBuffer(n,s,0,1,i);if(o===0)throw this.libzip.free(i),this.makeLibzipError(i);return o}allocateSource(t){let{buffer:i,byteLength:n}=this.allocateBuffer(t),s=this.libzip.source.fromBuffer(this.zip,i,n,0,1);if(s===0)throw this.libzip.free(i),this.makeLibzipError(this.libzip.getError(this.zip));return s}setFileSource(t,i){let n=Buffer.isBuffer(i)?i:Buffer.from(i),s=v.relative(Te.root,t),o=this.allocateSource(i);try{let a=this.libzip.file.add(this.zip,s,o,this.libzip.ZIP_FL_OVERWRITE);if(a===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let l=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,a,0,l,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(a,n),a}catch(a){throw this.libzip.source.free(o),a}}isSymbolicLink(t){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,t,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&61440)===40960}getFileSource(t,i={asyncDecompress:!1}){let n=this.fileSources.get(t);if(typeof n<"u")return n;let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,t,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.libzip.struct.statCompSize(s),l=this.libzip.struct.statCompMethod(s),c=this.libzip.malloc(a);try{let u=this.libzip.fopenIndex(this.zip,t,0,this.libzip.ZIP_FL_COMPRESSED);if(u===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let g=this.libzip.fread(u,c,a,0);if(g===-1)throw this.makeLibzipError(this.libzip.file.getError(u));if(g<a)throw new Error("Incomplete read");if(g>a)throw new Error("Overread");let h=this.libzip.HEAPU8.subarray(c,c+a),p=Buffer.from(h);if(l===0)return this.fileSources.set(t,p),p;if(i.asyncDecompress)return new Promise((d,m)=>{yS.default.inflateRaw(p,(y,B)=>{y?m(y):(this.fileSources.set(t,B),d(B))})});{let d=yS.default.inflateRawSync(p);return this.fileSources.set(t,d),d}}finally{this.libzip.fclose(u)}}finally{this.libzip.free(c)}}async fchmodPromise(t,i){return this.chmodPromise(this.fdToPath(t,"fchmod"),i)}fchmodSync(t,i){return this.chmodSync(this.fdToPath(t,"fchmodSync"),i)}async chmodPromise(t,i){return this.chmodSync(t,i)}chmodSync(t,i){if(this.readOnly)throw gn(`chmod '${t}'`);i&=493;let n=this.resolveFilename(`chmod '${t}'`,t,!1),s=this.entries.get(n);if(typeof s>"u")throw new Error(`Assertion failed: The entry should have been registered (${n})`);let a=this.getUnixMode(s,32768)&-512|i;if(this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,a<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(t,i,n){return this.chownPromise(this.fdToPath(t,"fchown"),i,n)}fchownSync(t,i,n){return this.chownSync(this.fdToPath(t,"fchownSync"),i,n)}async chownPromise(t,i,n){return this.chownSync(t,i,n)}chownSync(t,i,n){throw new Error("Unimplemented")}async renamePromise(t,i){return this.renameSync(t,i)}renameSync(t,i){throw new Error("Unimplemented")}async copyFilePromise(t,i,n){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=await this.getFileSource(s,{asyncDecompress:!0}),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}copyFileSync(t,i,n=0){let{indexSource:s,indexDest:o,resolvedDestP:a}=this.prepareCopyFile(t,i,n),l=this.getFileSource(s),c=this.setFileSource(a,l);c!==o&&this.registerEntry(a,c)}prepareCopyFile(t,i,n=0){if(this.readOnly)throw gn(`copyfile '${t} -> '${i}'`);if((n&Qg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Up("unsupported clone operation",`copyfile '${t}' -> ${i}'`);let s=this.resolveFilename(`copyfile '${t} -> ${i}'`,t),o=this.entries.get(s);if(typeof o>"u")throw SA(`copyfile '${t}' -> '${i}'`);let a=this.resolveFilename(`copyfile '${t}' -> ${i}'`,i),l=this.entries.get(a);if((n&(Qg.constants.COPYFILE_EXCL|Qg.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof l<"u")throw $E(`copyfile '${t}' -> '${i}'`);return{indexSource:o,resolvedDestP:a,indexDest:l}}async appendFilePromise(t,i,n){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFilePromise(t,i,n)}appendFileSync(t,i,n={}){if(this.readOnly)throw gn(`open '${t}'`);return typeof n>"u"?n={flag:"a"}:typeof n=="string"?n={flag:"a",encoding:n}:typeof n.flag>"u"&&(n={flag:"a",...n}),this.writeFileSync(t,i,n)}fdToPath(t,i){var s;let n=(s=this.fds.get(t))==null?void 0:s.p;if(typeof n>"u")throw Mr(i);return n}async writeFilePromise(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([await this.getFileSource(a,{asyncDecompress:!0}),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&await this.chmodPromise(l,o)}writeFileSync(t,i,n){let{encoding:s,mode:o,index:a,resolvedP:l}=this.prepareWriteFile(t,n);a!==void 0&&typeof n=="object"&&n.flag&&n.flag.includes("a")&&(i=Buffer.concat([this.getFileSource(a),Buffer.from(i)])),s!==null&&(i=i.toString(s));let c=this.setFileSource(l,i);c!==a&&this.registerEntry(l,c),o!==null&&this.chmodSync(l,o)}prepareWriteFile(t,i){if(typeof t=="number"&&(t=this.fdToPath(t,"read")),this.readOnly)throw gn(`open '${t}'`);let n=this.resolveFilename(`open '${t}'`,t);if(this.listings.has(n))throw Hp(`open '${t}'`);let s=null,o=null;typeof i=="string"?s=i:typeof i=="object"&&({encoding:s=null,mode:o=null}=i);let a=this.entries.get(n);return{encoding:s,mode:o,resolvedP:n,index:a}}async unlinkPromise(t){return this.unlinkSync(t)}unlinkSync(t){if(this.readOnly)throw gn(`unlink '${t}'`);let i=this.resolveFilename(`unlink '${t}'`,t);if(this.listings.has(i))throw Hp(`unlink '${t}'`);let n=this.entries.get(i);if(typeof n>"u")throw SA(`unlink '${t}'`);this.deleteEntry(i,n)}async utimesPromise(t,i,n){return this.utimesSync(t,i,n)}utimesSync(t,i,n){if(this.readOnly)throw gn(`utimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t);this.utimesImpl(s,n)}async lutimesPromise(t,i,n){return this.lutimesSync(t,i,n)}lutimesSync(t,i,n){if(this.readOnly)throw gn(`lutimes '${t}'`);let s=this.resolveFilename(`utimes '${t}'`,t,!1);this.utimesImpl(s,n)}utimesImpl(t,i){this.listings.has(t)&&(this.entries.has(t)||this.hydrateDirectory(t));let n=this.entries.get(t);if(n===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,n,0,efe(i),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(t,i){return this.mkdirSync(t,i)}mkdirSync(t,{mode:i=493,recursive:n=!1}={}){if(n)return this.mkdirpSync(t,{chmod:i});if(this.readOnly)throw gn(`mkdir '${t}'`);let s=this.resolveFilename(`mkdir '${t}'`,t);if(this.entries.has(s)||this.listings.has(s))throw $E(`mkdir '${t}'`);this.hydrateDirectory(s),this.chmodSync(s,i)}async rmdirPromise(t,i){return this.rmdirSync(t,i)}rmdirSync(t,{recursive:i=!1}={}){if(this.readOnly)throw gn(`rmdir '${t}'`);if(i){this.removeSync(t);return}let n=this.resolveFilename(`rmdir '${t}'`,t),s=this.listings.get(n);if(!s)throw bo(`rmdir '${t}'`);if(s.size>0)throw cK(`rmdir '${t}'`);let o=this.entries.get(n);if(typeof o>"u")throw SA(`rmdir '${t}'`);this.deleteEntry(t,o)}hydrateDirectory(t){let i=this.libzip.dir.add(this.zip,v.relative(Te.root,t));if(i===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(t),this.registerEntry(t,i),i}async linkPromise(t,i){return this.linkSync(t,i)}linkSync(t,i){throw uK(`link '${t}' -> '${i}'`)}async symlinkPromise(t,i){return this.symlinkSync(t,i)}symlinkSync(t,i){if(this.readOnly)throw gn(`symlink '${t}' -> '${i}'`);let n=this.resolveFilename(`symlink '${t}' -> '${i}'`,i);if(this.listings.has(n))throw Hp(`symlink '${t}' -> '${i}'`);if(this.entries.has(n))throw $E(`symlink '${t}' -> '${i}'`);let s=this.setFileSource(n,t);if(this.registerEntry(n,s),this.libzip.file.setExternalAttributes(this.zip,s,0,0,this.libzip.ZIP_OPSYS_UNIX,41471<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=await this.readFileBuffer(t,{asyncDecompress:!0});return i?n.toString(i):n}readFileSync(t,i){typeof i=="object"&&(i=i?i.encoding:void 0);let n=this.readFileBuffer(t);return i?n.toString(i):n}readFileBuffer(t,i={asyncDecompress:!1}){typeof t=="number"&&(t=this.fdToPath(t,"read"));let n=this.resolveFilename(`open '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`open '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(n))throw bo(`open '${t}'`);if(this.listings.has(n))throw Hp("read");let s=this.entries.get(n);if(s===void 0)throw new Error("Unreachable");return this.getFileSource(s,i)}async readdirPromise(t,i){return this.readdirSync(t,i)}readdirSync(t,i){let n=this.resolveFilename(`scandir '${t}'`,t);if(!this.entries.has(n)&&!this.listings.has(n))throw qs(`scandir '${t}'`);let s=this.listings.get(n);if(!s)throw bo(`scandir '${t}'`);let o=[...s];return i!=null&&i.withFileTypes?o.map(a=>Object.assign(this.statImpl("lstat",v.join(t,a)),{name:a})):o}async readlinkPromise(t){let i=this.prepareReadlink(t);return(await this.getFileSource(i,{asyncDecompress:!0})).toString()}readlinkSync(t){let i=this.prepareReadlink(t);return this.getFileSource(i).toString()}prepareReadlink(t){let i=this.resolveFilename(`readlink '${t}'`,t,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw qs(`readlink '${t}'`);if(t[t.length-1]==="/"&&!this.listings.has(i))throw bo(`open '${t}'`);if(this.listings.has(i))throw SA(`readlink '${t}'`);let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(n))throw SA(`readlink '${t}'`);return n}async truncatePromise(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=await this.getFileSource(s,{asyncDecompress:!0}),a=Buffer.alloc(i,0);return o.copy(a),await this.writeFilePromise(t,a)}truncateSync(t,i=0){let n=this.resolveFilename(`open '${t}'`,t),s=this.entries.get(n);if(typeof s>"u")throw SA(`open '${t}'`);let o=this.getFileSource(s),a=Buffer.alloc(i,0);return o.copy(a),this.writeFileSync(t,a)}async ftruncatePromise(t,i){return this.truncatePromise(this.fdToPath(t,"ftruncate"),i)}ftruncateSync(t,i){return this.truncateSync(this.fdToPath(t,"ftruncateSync"),i)}watch(t,i,n){let s;switch(typeof i){case"function":case"string":case"undefined":s=!0;break;default:({persistent:s=!0}=i);break}if(!s)return{on:()=>{},close:()=>{}};let o=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(o)}}}watchFile(t,i,n){let s=v.resolve(Te.root,t);return rI(this,s,i,n)}unwatchFile(t,i){let n=v.resolve(Te.root,t);return Gp(this,n,i)}};var hi=class extends wa{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,t,i){return this.baseFs.openPromise(this.mapToBase(e),t,i)}openSync(e,t,i){return this.baseFs.openSync(this.mapToBase(e),t,i)}async opendirPromise(e,t){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),t),{path:e})}opendirSync(e,t){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),t),{path:e})}async readPromise(e,t,i,n,s){return await this.baseFs.readPromise(e,t,i,n,s)}readSync(e,t,i,n,s){return this.baseFs.readSync(e,t,i,n,s)}async writePromise(e,t,i,n,s){return typeof t=="string"?await this.baseFs.writePromise(e,t,i):await this.baseFs.writePromise(e,t,i,n,s)}writeSync(e,t,i,n,s){return typeof t=="string"?this.baseFs.writeSync(e,t,i):this.baseFs.writeSync(e,t,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,t){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,t)}createWriteStream(e,t){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,t)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,t){return this.baseFs.accessSync(this.mapToBase(e),t)}async accessPromise(e,t){return this.baseFs.accessPromise(this.mapToBase(e),t)}async statPromise(e,t){return this.baseFs.statPromise(this.mapToBase(e),t)}statSync(e,t){return this.baseFs.statSync(this.mapToBase(e),t)}async fstatPromise(e,t){return this.baseFs.fstatPromise(e,t)}fstatSync(e,t){return this.baseFs.fstatSync(e,t)}lstatPromise(e,t){return this.baseFs.lstatPromise(this.mapToBase(e),t)}lstatSync(e,t){return this.baseFs.lstatSync(this.mapToBase(e),t)}async fchmodPromise(e,t){return this.baseFs.fchmodPromise(e,t)}fchmodSync(e,t){return this.baseFs.fchmodSync(e,t)}async chmodPromise(e,t){return this.baseFs.chmodPromise(this.mapToBase(e),t)}chmodSync(e,t){return this.baseFs.chmodSync(this.mapToBase(e),t)}async fchownPromise(e,t,i){return this.baseFs.fchownPromise(e,t,i)}fchownSync(e,t,i){return this.baseFs.fchownSync(e,t,i)}async chownPromise(e,t,i){return this.baseFs.chownPromise(this.mapToBase(e),t,i)}chownSync(e,t,i){return this.baseFs.chownSync(this.mapToBase(e),t,i)}async renamePromise(e,t){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(t))}renameSync(e,t){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(t))}async copyFilePromise(e,t,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(t),i)}copyFileSync(e,t,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(t),i)}async appendFilePromise(e,t,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),t,i)}appendFileSync(e,t,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),t,i)}async writeFilePromise(e,t,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),t,i)}writeFileSync(e,t,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),t,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,t,i){return this.baseFs.utimesPromise(this.mapToBase(e),t,i)}utimesSync(e,t,i){return this.baseFs.utimesSync(this.mapToBase(e),t,i)}async mkdirPromise(e,t){return this.baseFs.mkdirPromise(this.mapToBase(e),t)}mkdirSync(e,t){return this.baseFs.mkdirSync(this.mapToBase(e),t)}async rmdirPromise(e,t){return this.baseFs.rmdirPromise(this.mapToBase(e),t)}rmdirSync(e,t){return this.baseFs.rmdirSync(this.mapToBase(e),t)}async linkPromise(e,t){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(t))}linkSync(e,t){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(t))}async symlinkPromise(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,t,i){let n=this.mapToBase(t);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(t),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,t){return this.baseFs.readFilePromise(this.fsMapToBase(e),t)}readFileSync(e,t){return this.baseFs.readFileSync(this.fsMapToBase(e),t)}async readdirPromise(e,t){return this.baseFs.readdirPromise(this.mapToBase(e),t)}readdirSync(e,t){return this.baseFs.readdirSync(this.mapToBase(e),t)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,t){return this.baseFs.truncatePromise(this.mapToBase(e),t)}truncateSync(e,t){return this.baseFs.truncateSync(this.mapToBase(e),t)}async ftruncatePromise(e,t){return this.baseFs.ftruncatePromise(e,t)}ftruncateSync(e,t){return this.baseFs.ftruncateSync(e,t)}watch(e,t,i){return this.baseFs.watch(this.mapToBase(e),t,i)}watchFile(e,t,i){return this.baseFs.watchFile(this.mapToBase(e),t,i)}unwatchFile(e,t){return this.baseFs.unwatchFile(this.mapToBase(e),t)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Qo=class extends hi{constructor(t,{baseFs:i,pathUtils:n}){super(n);this.target=t,this.baseFs=i}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};var jt=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.normalize(t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?v.normalize(t):this.baseFs.resolve(v.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};var mK=Te.root,So=class extends hi{constructor(t,{baseFs:i=new Zt}={}){super(v);this.target=this.pathUtils.resolve(Te.root,t),this.baseFs=i}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Te.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let i=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(mK,t));if(i.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(mK,this.pathUtils.relative(this.target,t))}};var Sg=class extends hi{constructor(t,i){super(i);this.instance=null;this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};var Xe=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),wS=class extends wa{constructor(){super(v)}getExtractHint(){throw Xe()}getRealPath(){throw Xe()}resolve(){throw Xe()}async openPromise(){throw Xe()}openSync(){throw Xe()}async opendirPromise(){throw Xe()}opendirSync(){throw Xe()}async readPromise(){throw Xe()}readSync(){throw Xe()}async writePromise(){throw Xe()}writeSync(){throw Xe()}async closePromise(){throw Xe()}closeSync(){throw Xe()}createWriteStream(){throw Xe()}createReadStream(){throw Xe()}async realpathPromise(){throw Xe()}realpathSync(){throw Xe()}async readdirPromise(){throw Xe()}readdirSync(){throw Xe()}async existsPromise(e){throw Xe()}existsSync(e){throw Xe()}async accessPromise(){throw Xe()}accessSync(){throw Xe()}async statPromise(){throw Xe()}statSync(){throw Xe()}async fstatPromise(e){throw Xe()}fstatSync(e){throw Xe()}async lstatPromise(e){throw Xe()}lstatSync(e){throw Xe()}async fchmodPromise(){throw Xe()}fchmodSync(){throw Xe()}async chmodPromise(){throw Xe()}chmodSync(){throw Xe()}async fchownPromise(){throw Xe()}fchownSync(){throw Xe()}async chownPromise(){throw Xe()}chownSync(){throw Xe()}async mkdirPromise(){throw Xe()}mkdirSync(){throw Xe()}async rmdirPromise(){throw Xe()}rmdirSync(){throw Xe()}async linkPromise(){throw Xe()}linkSync(){throw Xe()}async symlinkPromise(){throw Xe()}symlinkSync(){throw Xe()}async renamePromise(){throw Xe()}renameSync(){throw Xe()}async copyFilePromise(){throw Xe()}copyFileSync(){throw Xe()}async appendFilePromise(){throw Xe()}appendFileSync(){throw Xe()}async writeFilePromise(){throw Xe()}writeFileSync(){throw Xe()}async unlinkPromise(){throw Xe()}unlinkSync(){throw Xe()}async utimesPromise(){throw Xe()}utimesSync(){throw Xe()}async readFilePromise(){throw Xe()}readFileSync(){throw Xe()}async readlinkPromise(){throw Xe()}readlinkSync(){throw Xe()}async truncatePromise(){throw Xe()}truncateSync(){throw Xe()}async ftruncatePromise(e,t){throw Xe()}ftruncateSync(e,t){throw Xe()}watch(){throw Xe()}watchFile(){throw Xe()}unwatchFile(){throw Xe()}},qp=wS;qp.instance=new wS;var vg=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return K.fromPortablePath(t)}mapToBase(t){return K.toPortablePath(t)}};var tfe=/^[0-9]+$/,BS=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,rfe=/^([^/]+-)?[a-f0-9]+$/,wr=class extends hi{constructor({baseFs:t=new Zt}={}){super(v);this.baseFs=t}static makeVirtualPath(t,i,n){if(v.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(i).match(rfe))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=v.relative(v.dirname(t),n).split("/"),a=0;for(;a<o.length&&o[a]==="..";)a+=1;let l=o.slice(a);return v.join(t,i,String(a),...l)}static resolveVirtual(t){let i=t.match(BS);if(!i||!i[3]&&i[5])return t;let n=v.dirname(i[1]);if(!i[3]||!i[4])return n;if(!tfe.test(i[4]))return t;let o=Number(i[4]),a="../".repeat(o),l=i[5]||".";return wr.resolveVirtual(v.join(n,a,l))}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}realpathSync(t){let i=t.match(BS);if(!i)return this.baseFs.realpathSync(t);if(!i[5])return t;let n=this.baseFs.realpathSync(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}async realpathPromise(t){let i=t.match(BS);if(!i)return await this.baseFs.realpathPromise(t);if(!i[5])return t;let n=await this.baseFs.realpathPromise(this.mapToBase(t));return wr.makeVirtualPath(i[1],i[3],n)}mapToBase(t){if(t==="")return t;if(this.pathUtils.isAbsolute(t))return wr.resolveVirtual(t);let i=wr.resolveVirtual(this.baseFs.resolve(Te.dot)),n=wr.resolveVirtual(this.baseFs.resolve(t));return v.relative(i,n)||Te.dot}mapFromBase(t){return t}};var Jp=J("fs");var fn=4278190080,Vi=704643072,EK=(r,e)=>{let t=r.indexOf(e);if(t<=0)return null;let i=t;for(;t>=0&&(i=t+e.length,r[i]!==v.sep);){if(r[t-1]===v.sep)return null;t=r.indexOf(e,i)}return r.length>i&&r[i]!==v.sep?null:r.slice(0,i)},Kn=class extends vA{constructor({libzip:t,baseFs:i=new Zt,filter:n=null,maxOpenFiles:s=1/0,readOnlyArchives:o=!1,useCache:a=!0,maxAge:l=5e3,fileExtensions:c=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof t!="function"?()=>t:t,this.baseFs=i,this.zipInstances=a?new Map:null,this.filter=n,this.maxOpenFiles=s,this.readOnlyArchives=o,this.maxAge=l,this.fileExtensions=c}static async openPromise(t,i){let n=new Kn(i);try{return await t(n)}finally{n.saveAndClose()}}get libzip(){return typeof this.libzipInstance>"u"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.saveAndClose(),this.zipInstances.delete(t)}discardAndClose(){if(Yp(this),this.zipInstances)for(let[t,{zipFs:i}]of this.zipInstances.entries())i.discardAndClose(),this.zipInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,i){let n=this.nextFd++|Vi;return this.fdMap.set(n,[t,i]),n}async openPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,i,n),async(s,{subPath:o})=>this.remapFd(s,await s.openPromise(o,i,n)))}openSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,i,n),(s,{subPath:o})=>this.remapFd(s,s.openSync(o,i,n)))}async opendirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,i),async(n,{subPath:s})=>await n.opendirPromise(s,i),{requireSubpath:!1})}opendirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,i),(n,{subPath:s})=>n.opendirSync(s,i),{requireSubpath:!1})}async readPromise(t,i,n,s,o){if((t&fn)!==Vi)return await this.baseFs.readPromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("read");let[l,c]=a;return await l.readPromise(c,i,n,s,o)}readSync(t,i,n,s,o){if((t&fn)!==Vi)return this.baseFs.readSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("readSync");let[l,c]=a;return l.readSync(c,i,n,s,o)}async writePromise(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?await this.baseFs.writePromise(t,i,n):await this.baseFs.writePromise(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("write");let[l,c]=a;return typeof i=="string"?await l.writePromise(c,i,n):await l.writePromise(c,i,n,s,o)}writeSync(t,i,n,s,o){if((t&fn)!==Vi)return typeof i=="string"?this.baseFs.writeSync(t,i,n):this.baseFs.writeSync(t,i,n,s,o);let a=this.fdMap.get(t);if(typeof a>"u")throw Mr("writeSync");let[l,c]=a;return typeof i=="string"?l.writeSync(c,i,n):l.writeSync(c,i,n,s,o)}async closePromise(t){if((t&fn)!==Vi)return await this.baseFs.closePromise(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("close");this.fdMap.delete(t);let[n,s]=i;return await n.closePromise(s)}closeSync(t){if((t&fn)!==Vi)return this.baseFs.closeSync(t);let i=this.fdMap.get(t);if(typeof i>"u")throw Mr("closeSync");this.fdMap.delete(t);let[n,s]=i;return n.closeSync(s)}createReadStream(t,i){return t===null?this.baseFs.createReadStream(t,i):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,i),(n,{archivePath:s,subPath:o})=>{let a=n.createReadStream(o,i);return a.path=K.fromPortablePath(this.pathUtils.join(s,o)),a})}createWriteStream(t,i){return t===null?this.baseFs.createWriteStream(t,i):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,i),(n,{subPath:s})=>n.createWriteStream(s,i))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,await i.realpathPromise(s)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(i,{archivePath:n,subPath:s})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Te.root,i.realpathSync(s)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(i,{subPath:n})=>await i.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(i,{subPath:n})=>i.existsSync(n))}async accessPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,i),async(n,{subPath:s})=>await n.accessPromise(s,i))}accessSync(t,i){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,i),(n,{subPath:s})=>n.accessSync(s,i))}async statPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,i),async(n,{subPath:s})=>await n.statPromise(s,i))}statSync(t,i){return this.makeCallSync(t,()=>this.baseFs.statSync(t,i),(n,{subPath:s})=>n.statSync(s,i))}async fstatPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fstatPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstat");let[s,o]=n;return s.fstatPromise(o,i)}fstatSync(t,i){if((t&fn)!==Vi)return this.baseFs.fstatSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fstatSync");let[s,o]=n;return s.fstatSync(o,i)}async lstatPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,i),async(n,{subPath:s})=>await n.lstatPromise(s,i))}lstatSync(t,i){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,i),(n,{subPath:s})=>n.lstatSync(s,i))}async fchmodPromise(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodPromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmod");let[s,o]=n;return s.fchmodPromise(o,i)}fchmodSync(t,i){if((t&fn)!==Vi)return this.baseFs.fchmodSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("fchmodSync");let[s,o]=n;return s.fchmodSync(o,i)}async chmodPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,i),async(n,{subPath:s})=>await n.chmodPromise(s,i))}chmodSync(t,i){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,i),(n,{subPath:s})=>n.chmodSync(s,i))}async fchownPromise(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownPromise(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchown");let[o,a]=s;return o.fchownPromise(a,i,n)}fchownSync(t,i,n){if((t&fn)!==Vi)return this.baseFs.fchownSync(t,i,n);let s=this.fdMap.get(t);if(typeof s>"u")throw Mr("fchownSync");let[o,a]=s;return o.fchownSync(a,i,n)}async chownPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,i,n),async(s,{subPath:o})=>await s.chownPromise(o,i,n))}chownSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,i,n),(s,{subPath:o})=>s.chownSync(o,i,n))}async renamePromise(t,i){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.renamePromise(t,i),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:s})=>await this.makeCallPromise(i,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(s,a)}))}renameSync(t,i){return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.renameSync(t,i),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:s})=>this.makeCallSync(i,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:a})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(s,a)}))}async copyFilePromise(t,i,n=0){let s=async(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&await this.existsPromise(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=await o.readFilePromise(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}await l.writeFilePromise(c,u)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(i,async()=>await this.baseFs.copyFilePromise(t,i,n),async(o,{subPath:a})=>await s(this.baseFs,t,o,a)),async(o,{subPath:a})=>await this.makeCallPromise(i,async()=>await s(o,a,this.baseFs,i),async(l,{subPath:c})=>o!==l?await s(o,a,l,c):await o.copyFilePromise(a,c,n)))}copyFileSync(t,i,n=0){let s=(o,a,l,c)=>{if((n&Jp.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${a}' -> ${c}'`),{code:"EXDEV"});if(n&Jp.constants.COPYFILE_EXCL&&this.existsSync(a))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${a}' -> '${c}'`),{code:"EEXIST"});let u;try{u=o.readFileSync(a)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${a}' -> '${c}'`),{code:"EINVAL"})}l.writeFileSync(c,u)};return this.makeCallSync(t,()=>this.makeCallSync(i,()=>this.baseFs.copyFileSync(t,i,n),(o,{subPath:a})=>s(this.baseFs,t,o,a)),(o,{subPath:a})=>this.makeCallSync(i,()=>s(o,a,this.baseFs,i),(l,{subPath:c})=>o!==l?s(o,a,l,c):o.copyFileSync(a,c,n)))}async appendFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,i,n),async(s,{subPath:o})=>await s.appendFilePromise(o,i,n))}appendFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,i,n),(s,{subPath:o})=>s.appendFileSync(o,i,n))}async writeFilePromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,i,n),async(s,{subPath:o})=>await s.writeFilePromise(o,i,n))}writeFileSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,i,n),(s,{subPath:o})=>s.writeFileSync(o,i,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(i,{subPath:n})=>await i.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(i,{subPath:n})=>i.unlinkSync(n))}async utimesPromise(t,i,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,i,n),async(s,{subPath:o})=>await s.utimesPromise(o,i,n))}utimesSync(t,i,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,i,n),(s,{subPath:o})=>s.utimesSync(o,i,n))}async mkdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,i),async(n,{subPath:s})=>await n.mkdirPromise(s,i))}mkdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,i),(n,{subPath:s})=>n.mkdirSync(s,i))}async rmdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,i),async(n,{subPath:s})=>await n.rmdirPromise(s,i))}rmdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,i),(n,{subPath:s})=>n.rmdirSync(s,i))}async linkPromise(t,i){return await this.makeCallPromise(i,async()=>await this.baseFs.linkPromise(t,i),async(n,{subPath:s})=>await n.linkPromise(t,s))}linkSync(t,i){return this.makeCallSync(i,()=>this.baseFs.linkSync(t,i),(n,{subPath:s})=>n.linkSync(t,s))}async symlinkPromise(t,i,n){return await this.makeCallPromise(i,async()=>await this.baseFs.symlinkPromise(t,i,n),async(s,{subPath:o})=>await s.symlinkPromise(t,o))}symlinkSync(t,i,n){return this.makeCallSync(i,()=>this.baseFs.symlinkSync(t,i,n),(s,{subPath:o})=>s.symlinkSync(t,o))}async readFilePromise(t,i){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,i),async(n,{subPath:s})=>await n.readFilePromise(s,i))}readFileSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,i),(n,{subPath:s})=>n.readFileSync(s,i))}async readdirPromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,i),async(n,{subPath:s})=>await n.readdirPromise(s,i),{requireSubpath:!1})}readdirSync(t,i){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,i),(n,{subPath:s})=>n.readdirSync(s,i),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(i,{subPath:n})=>await i.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(i,{subPath:n})=>i.readlinkSync(n))}async truncatePromise(t,i){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,i),async(n,{subPath:s})=>await n.truncatePromise(s,i))}truncateSync(t,i){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,i),(n,{subPath:s})=>n.truncateSync(s,i))}async ftruncatePromise(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncatePromise(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncate");let[s,o]=n;return s.ftruncatePromise(o,i)}ftruncateSync(t,i){if((t&fn)!==Vi)return this.baseFs.ftruncateSync(t,i);let n=this.fdMap.get(t);if(typeof n>"u")throw Mr("ftruncateSync");let[s,o]=n;return s.ftruncateSync(o,i)}watch(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,i,n),(s,{subPath:o})=>s.watch(o,i,n))}watchFile(t,i,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,i,n),()=>rI(this,t,i,n))}unwatchFile(t,i){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,i),()=>Gp(this,t,i))}async makeCallPromise(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return await i();let o=this.resolve(t),a=this.findZip(o);return a?s&&a.subPath==="/"?await i():await this.getZipPromise(a.archivePath,async l=>await n(l,a)):await i()}makeCallSync(t,i,n,{requireSubpath:s=!0}={}){if(typeof t!="string")return i();let o=this.resolve(t),a=this.findZip(o);return!a||s&&a.subPath==="/"?i():this.getZipSync(a.archivePath,l=>n(l,a))}findZip(t){if(this.filter&&!this.filter.test(t))return null;let i="";for(;;){let n=t.substring(i.length),s;if(!this.fileExtensions)s=EK(n,".zip");else for(let o of this.fileExtensions)if(s=EK(n,o),s)break;if(!s)return null;if(i=this.pathUtils.join(i,s),this.isZip.has(i)===!1){if(this.notZip.has(i))continue;try{if(!this.baseFs.lstatSync(i).isFile()){this.notZip.add(i);continue}}catch{return null}this.isZip.add(i)}return{archivePath:i,subPath:this.pathUtils.join(Te.root,t.substring(i.length))}}}limitOpenFiles(t){if(this.zipInstances===null)return;let i=Date.now(),n=i+this.maxAge,s=t===null?0:this.zipInstances.size-t;for(let[o,{zipFs:a,expiresAt:l,refCount:c}]of this.zipInstances.entries())if(!(c!==0||a.hasOpenFileHandles())){if(i>=l){a.saveAndClose(),this.zipInstances.delete(o),s-=1;continue}else if(t===null||s<=0){n=l;break}a.saveAndClose(),this.zipInstances.delete(o),s-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.zipInstances.size>0||t!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-i).unref())}async getZipPromise(t,i){let n=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(t)});if(this.zipInstances){let s=this.zipInstances.get(t);if(!s){let o=await n();s=this.zipInstances.get(t),s||(s={zipFs:new qr(t,o),expiresAt:0,refCount:0})}this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,s.refCount+=1;try{return await i(s.zipFs)}finally{s.refCount-=1}}else{let s=new qr(t,await n());try{return await i(s)}finally{s.saveAndClose()}}}getZipSync(t,i){let n=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(t)});if(this.zipInstances){let s=this.zipInstances.get(t);return s||(s={zipFs:new qr(t,n()),expiresAt:0,refCount:0}),this.zipInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(t,s),s.expiresAt=Date.now()+this.maxAge,i(s.zipFs)}else{let s=new qr(t,n());try{return i(s)}finally{s.saveAndClose()}}}};var Pg=J("util");var nI=J("url"),IK=J("util");var iI=class extends hi{constructor(t){super(K);this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof nI.URL)return(0,nI.fileURLToPath)(t);if(Buffer.isBuffer(t)){let i=t.toString();if(Buffer.byteLength(i)!==t.byteLength)throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return i}throw new Error(`Unsupported path type: ${(0,IK.inspect)(t)}`)}};var yK=J("readline"),Fi=Symbol("kBaseFs"),Ba=Symbol("kFd"),xA=Symbol("kClosePromise"),sI=Symbol("kCloseResolve"),oI=Symbol("kCloseReject"),xg=Symbol("kRefs"),Js=Symbol("kRef"),Ws=Symbol("kUnref"),ife,nfe,sfe,ofe,Wp=class{constructor(e,t){this[ife]=1;this[nfe]=void 0;this[sfe]=void 0;this[ofe]=void 0;this[Fi]=t,this[Ba]=e}get fd(){return this[Ba]}async appendFile(e,t){var i;try{this[Js](this.appendFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;return await this[Fi].appendFilePromise(this.fd,e,n?{encoding:n}:void 0)}finally{this[Ws]()}}async chown(e,t){try{return this[Js](this.chown),await this[Fi].fchownPromise(this.fd,e,t)}finally{this[Ws]()}}async chmod(e){try{return this[Js](this.chmod),await this[Fi].fchmodPromise(this.fd,e)}finally{this[Ws]()}}createReadStream(e){return this[Fi].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Fi].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,t,i,n){var s,o,a;try{this[Js](this.read);let l;return Buffer.isBuffer(e)?l=e:(e!=null||(e={}),l=(s=e.buffer)!=null?s:Buffer.alloc(16384),t=e.offset||0,i=(o=e.length)!=null?o:l.byteLength,n=(a=e.position)!=null?a:null),t!=null||(t=0),i!=null||(i=0),i===0?{bytesRead:i,buffer:l}:{bytesRead:await this[Fi].readPromise(this.fd,l,t,i,n),buffer:l}}finally{this[Ws]()}}async readFile(e){var t;try{this[Js](this.readFile);let i=(t=typeof e=="string"?e:e==null?void 0:e.encoding)!=null?t:void 0;return await this[Fi].readFilePromise(this.fd,i)}finally{this[Ws]()}}readLines(e){return(0,yK.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Js](this.stat),await this[Fi].fstatPromise(this.fd,e)}finally{this[Ws]()}}async truncate(e){try{return this[Js](this.truncate),await this[Fi].ftruncatePromise(this.fd,e)}finally{this[Ws]()}}utimes(e,t){throw new Error("Method not implemented.")}async writeFile(e,t){var i;try{this[Js](this.writeFile);let n=(i=typeof t=="string"?t:t==null?void 0:t.encoding)!=null?i:void 0;await this[Fi].writeFilePromise(this.fd,e,n)}finally{this[Ws]()}}async write(...e){try{if(this[Js](this.write),ArrayBuffer.isView(e[0])){let[t,i,n,s]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i!=null?i:void 0,n!=null?n:void 0,s!=null?s:void 0),buffer:t}}else{let[t,i,n]=e;return{bytesWritten:await this[Fi].writePromise(this.fd,t,i,n),buffer:t}}}finally{this[Ws]()}}async writev(e,t){try{this[Js](this.writev);let i=0;if(typeof t<"u")for(let n of e){let s=await this.write(n,void 0,void 0,t);i+=s.bytesWritten,t+=s.bytesWritten}else for(let n of e){let s=await this.write(n);i+=s.bytesWritten}return{buffers:e,bytesWritten:i}}finally{this[Ws]()}}readv(e,t){throw new Error("Method not implemented.")}close(){if(this[Ba]===-1)return Promise.resolve();if(this[xA])return this[xA];if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[xA]=this[Fi].closePromise(e).finally(()=>{this[xA]=void 0})}else this[xA]=new Promise((e,t)=>{this[sI]=e,this[oI]=t}).finally(()=>{this[xA]=void 0,this[oI]=void 0,this[sI]=void 0});return this[xA]}[(Fi,Ba,ife=xg,nfe=xA,sfe=sI,ofe=oI,Js)](e){if(this[Ba]===-1){let t=new Error("file closed");throw t.code="EBADF",t.syscall=e.name,t}this[xg]++}[Ws](){if(this[xg]--,this[xg]===0){let e=this[Ba];this[Ba]=-1,this[Fi].closePromise(e).then(this[sI],this[oI])}}};var afe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),wK=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function bS(r,e){e=new iI(e);let t=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[Pg.promisify.custom])<"u"&&(s[Pg.promisify.custom]=o[Pg.promisify.custom])};{t(r,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),t(r,"read",(...i)=>{let[n,s,o,a,l,c]=i;if(i.length<=3){let u={};i.length<3?c=i[1]:(u=i[1],c=i[2]),{buffer:s=Buffer.alloc(16384),offset:o=0,length:a=s.byteLength,position:l}=u}if(o==null&&(o=0),a|=0,a===0){process.nextTick(()=>{c(null,0,s)});return}l==null&&(l=-1),process.nextTick(()=>{e.readPromise(n,s,o,a,l).then(u=>{c(null,u,s)},u=>{c(u,0,s)})})});for(let i of wK){let n=i.replace(/Promise$/,"");if(typeof r[n]>"u")continue;let s=e[i];if(typeof s>"u")continue;t(r,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}r.realpath.native=r.realpath}{t(r,"existsSync",i=>{try{return e.existsSync(i)}catch{return!1}}),t(r,"readSync",(...i)=>{let[n,s,o,a,l]=i;return i.length<=3&&({offset:o=0,length:a=s.byteLength,position:l}=i[2]||{}),o==null&&(o=0),a|=0,a===0?0:(l==null&&(l=-1),e.readSync(n,s,o,a,l))});for(let i of afe){let n=i;if(typeof r[n]>"u")continue;let s=e[i];typeof s>"u"||t(r,n,s.bind(e))}r.realpathSync.native=r.realpathSync}{let i=r.promises;for(let n of wK){let s=n.replace(/Promise$/,"");if(typeof i[s]>"u")continue;let o=e[n];typeof o>"u"||n!=="open"&&t(i,s,(a,...l)=>a instanceof Wp?a[s].apply(a,l):o.call(e,a,...l))}t(i,"open",async(...n)=>{let s=await e.openPromise(...n);return new Wp(s,e)})}r.read[Pg.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n}),r.write[Pg.promisify.custom]=async(i,n,...s)=>({bytesWritten:await e.writePromise(i,n,...s),buffer:n})}function aI(r,e){let t=Object.create(r);return bS(t,e),t}var QK=ve(J("os"));function BK(r){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${r}${e}`}var zs=new Set,QS=null;function bK(){if(QS)return QS;let r=K.toPortablePath(QK.default.tmpdir()),e=M.realpathSync(r);return process.once("exit",()=>{M.rmtempSync()}),QS={tmpdir:r,realTmpdir:e}}var M=Object.assign(new Zt,{detachTemp(r){zs.delete(r)},mktempSync(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{this.mkdirSync(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return r(n)}finally{if(zs.has(n)){zs.delete(n);try{this.removeSync(n)}catch{}}}}},async mktempPromise(r){let{tmpdir:e,realTmpdir:t}=bK();for(;;){let i=BK("xfs-");try{await this.mkdirPromise(v.join(e,i))}catch(s){if(s.code==="EEXIST")continue;throw s}let n=v.join(t,i);if(zs.add(n),typeof r>"u")return n;try{return await r(n)}finally{if(zs.has(n)){zs.delete(n);try{await this.removePromise(n)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(zs.values()).map(async r=>{try{await M.removePromise(r,{maxRetries:0}),zs.delete(r)}catch{}}))},rmtempSync(){for(let r of zs)try{M.removeSync(r),zs.delete(r)}catch{}}});var fD=ve(TS());var rd={};ct(rd,{parseResolution:()=>fI,parseShell:()=>cI,parseSyml:()=>wi,stringifyArgument:()=>KS,stringifyArgumentSegment:()=>US,stringifyArithmeticExpression:()=>gI,stringifyCommand:()=>MS,stringifyCommandChain:()=>Fg,stringifyCommandChainThen:()=>OS,stringifyCommandLine:()=>uI,stringifyCommandLineThen:()=>LS,stringifyEnvSegment:()=>lI,stringifyRedirectArgument:()=>Vp,stringifyResolution:()=>hI,stringifyShell:()=>Rg,stringifyShellLine:()=>Rg,stringifySyml:()=>Qa,stringifyValueArgument:()=>ec});var pU=ve(hU());function cI(r,e={isGlobPattern:()=>!1}){try{return(0,pU.parse)(r,e)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function Rg(r,{endSemicolon:e=!1}={}){return r.map(({command:t,type:i},n)=>`${uI(t)}${i===";"?n!==r.length-1||e?";":"":" &"}`).join(" ")}function uI(r){return`${Fg(r.chain)}${r.then?` ${LS(r.then)}`:""}`}function LS(r){return`${r.type} ${uI(r.line)}`}function Fg(r){return`${MS(r)}${r.then?` ${OS(r.then)}`:""}`}function OS(r){return`${r.type} ${Fg(r.chain)}`}function MS(r){switch(r.type){case"command":return`${r.envs.length>0?`${r.envs.map(e=>lI(e)).join(" ")} `:""}${r.args.map(e=>KS(e)).join(" ")}`;case"subshell":return`(${Rg(r.subshell)})${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"group":return`{ ${Rg(r.group,{endSemicolon:!0})} }${r.args.length>0?` ${r.args.map(e=>Vp(e)).join(" ")}`:""}`;case"envs":return r.envs.map(e=>lI(e)).join(" ");default:throw new Error(`Unsupported command type: "${r.type}"`)}}function lI(r){return`${r.name}=${r.args[0]?ec(r.args[0]):""}`}function KS(r){switch(r.type){case"redirection":return Vp(r);case"argument":return ec(r);default:throw new Error(`Unsupported argument type: "${r.type}"`)}}function Vp(r){return`${r.subtype} ${r.args.map(e=>ec(e)).join(" ")}`}function ec(r){return r.segments.map(e=>US(e)).join("")}var dU=new Map([["\f","\\f"],[` -`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Lfe=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(dU,([r,e])=>[r,`"$'${e}'"`])]),CU=r=>{var e;return(e=dU.get(r))!=null?e:`\\x${r.charCodeAt(0).toString(16).padStart(2,"0")}`},Ofe=r=>{var e;return(e=Lfe.get(r))!=null?e:`"$'${CU(r)}'"`};function US(r){let e=(i,n)=>n?`"${i}"`:i,t=i=>i===""?"''":i.match(/[()}<>$|&;"'\n\t ]/)?i.match(/['\t\p{C}]/u)?i.match(/'/)?`"${i.replace(/["$\t\p{C}]/u,Ofe)}"`:`$'${i.replace(/[\t\p{C}]/u,CU)}'`:`'${i}'`:i;switch(r.type){case"text":return t(r.text);case"glob":return r.pattern;case"shell":return e(`\${${Rg(r.shell)}}`,r.quoted);case"variable":return e(typeof r.defaultValue>"u"?typeof r.alternativeValue>"u"?`\${${r.name}}`:r.alternativeValue.length===0?`\${${r.name}:+}`:`\${${r.name}:+${r.alternativeValue.map(i=>ec(i)).join(" ")}}`:r.defaultValue.length===0?`\${${r.name}:-}`:`\${${r.name}:-${r.defaultValue.map(i=>ec(i)).join(" ")}}`,r.quoted);case"arithmetic":return`$(( ${gI(r.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${r.type}"`)}}function gI(r){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},t=(n,s)=>s?`( ${n} )`:n,i=n=>t(gI(n),!["number","variable"].includes(n.type));switch(r.type){case"number":return String(r.value);case"variable":return r.name;default:return`${i(r.left)} ${e(r.type)} ${i(r.right)}`}}var IU=ve(EU());function fI(r){let e=r.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${r}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,IU.parse)(r)}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}function hI(r){let e="";return r.from&&(e+=r.from.fullName,r.from.description&&(e+=`@${r.from.description}`),e+="/"),e+=r.descriptor.fullName,r.descriptor.description&&(e+=`@${r.descriptor.description}`),e}var SI=ve(cH()),pH=ve(gH()),mde=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,fH=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],QI=class{constructor(e){this.data=e}};function hH(r){return r.match(mde)?r:JSON.stringify(r)}function dH(r){return typeof r>"u"?!0:typeof r=="object"&&r!==null?Object.keys(r).every(e=>dH(r[e])):!1}function $S(r,e,t){if(r===null)return`null -`;if(typeof r=="number"||typeof r=="boolean")return`${r.toString()} -`;if(typeof r=="string")return`${hH(r)} -`;if(Array.isArray(r)){if(r.length===0)return`[] -`;let i=" ".repeat(e);return` -${r.map(s=>`${i}- ${$S(s,e+1,!1)}`).join("")}`}if(typeof r=="object"&&r){let[i,n]=r instanceof QI?[r.data,!1]:[r,!0],s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=fH.indexOf(l),g=fH.indexOf(c);return u===-1&&g===-1?l<c?-1:l>c?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!dH(i[l])).map((l,c)=>{let u=i[l],g=hH(l),h=$S(u,e+1,!0),p=c>0||t?s:"",d=g.length>1024?`? ${g} -${p}:`:`${g}:`,m=h.startsWith(` -`)?h:` ${h}`;return`${p}${d}${m}`}).join(e===0?` -`:"")||` -`;return t?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${r})`)}function Qa(r){try{let e=$S(r,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Qa.PreserveOrdering=QI;function Ede(r){return r.endsWith(` -`)||(r+=` -`),(0,pH.parse)(r)}var Ide=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function yde(r){if(Ide.test(r))return Ede(r);let e=(0,SI.safeLoad)(r,{schema:SI.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function wi(r){return yde(r)}var yz=ve(mH()),Mw=ve(cc());var gd={};ct(gd,{Builtins:()=>hv,Cli:()=>jn,Command:()=>Qe,Option:()=>z,UsageError:()=>we,formatMarkdownish:()=>Ti});var tv="",Bi="\0";var rv=/^(-h|--help)(?:=([0-9]+))?$/,vI=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,wH=/^-[a-zA-Z]{2,}$/,iv=/^([^=]+)=([\s\S]*)$/,nv=process.env.DEBUG_CLI==="1";var we=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Hg=class extends Error{constructor(e,t){if(super(),this.input=e,this.candidates=t,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===t[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} - -${this.candidates.map(({usage:n})=>`$ ${n}`).join(` -`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: - -$ ${i} -${sv(e)}`}else this.message=`Command not found; did you mean one of: - -${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${sv(e)}`}},xI=class extends Error{constructor(e,t){super(),this.input=e,this.usages=t,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: - -${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${sv(e)}`}},sv=r=>`While running ${r.filter(e=>e!==Bi).map(e=>{let t=JSON.stringify(e);return e.match(/\s/)||e.length===0||t!==`"${e}"`?t:e}).join(" ")}`;var id=Symbol("clipanion/isOption");function Xi(r){return{...r,[id]:!0}}function Po(r,e){return typeof r>"u"?[r,e]:typeof r=="object"&&r!==null&&!Array.isArray(r)?[void 0,r]:[r,e]}function PI(r,e=!1){let t=r.replace(/^\.: /,"");return e&&(t=t[0].toLowerCase()+t.slice(1)),t}function nd(r,e){return e.length===1?new we(`${r}: ${PI(e[0],!0)}`):new we(`${r}: -${e.map(t=>` -- ${PI(t)}`).join("")}`)}function sd(r,e,t){if(typeof t>"u")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!t(e,{errors:i,coercions:n,coercion:s}))throw nd(`Invalid value for ${r}`,i);for(let[,a]of n)a();return e}var Qe=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let t=this.constructor.schema;if(Array.isArray(t)){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(As(),pn)),a=o(n(s()),t),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw nd("Invalid option schema",l);for(let[,g]of c)g()}else if(t!=null)throw new Error("Invalid command schema");let i=await this.execute();return typeof i<"u"?i:0}};Qe.isOption=id;Qe.Default=[];var Av=Array(80).fill("\u2501");for(let r=0;r<=24;++r)Av[Av.length-r]=`\x1B[38;5;${232+r}m\u2501`;var lv={header:r=>`\x1B[1m\u2501\u2501\u2501 ${r}${r.length<80-5?` ${Av.slice(r.length+5).join("")}`:":"}\x1B[0m`,bold:r=>`\x1B[1m${r}\x1B[22m`,error:r=>`\x1B[31m\x1B[1m${r}\x1B[22m\x1B[39m`,code:r=>`\x1B[36m${r}\x1B[39m`},RH={header:r=>r,bold:r=>r,error:r=>r,code:r=>r};function nCe(r){let e=r.split(` -`),t=e.filter(n=>n.match(/\S/)),i=t.length>0?t.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Ti(r,{format:e,paragraphs:t}){return r=r.replace(/\r\n?/g,` -`),r=nCe(r),r=r.replace(/^\n+|\n+$/g,""),r=r.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 - -`),r=r.replace(/\n(\n)?\n*/g,"$1"),t&&(r=r.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` -`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` -`)}).join(` - -`)),r=r.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),r=r.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),r?`${r} -`:""}var fv=ve(J("tty"),1);function dn(r){nv&&console.log(r)}var FH={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:-1};function NH(){return{nodes:[_i(),_i(),_i()]}}function sCe(r){let e=NH(),t=[],i=e.nodes.length;for(let n of r){t.push(i);for(let s=0;s<n.nodes.length;++s)OH(s)||e.nodes.push(hCe(n.nodes[s],i));i+=n.nodes.length-2}for(let n of t)jg(e,0,n);return e}function Vs(r,e){return r.nodes.push(e),r.nodes.length-1}function oCe(r){let e=new Set,t=i=>{if(e.has(i))return;e.add(i);let n=r.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)t(a);for(let[,{to:o}]of n.dynamics)t(o);for(let{to:o}of n.shortcuts)t(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=r.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:h})=>g.to===h)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};t(0)}function aCe(r,{prefix:e=""}={}){if(nv){dn(`${e}Nodes are:`);for(let t=0;t<r.nodes.length;++t)dn(`${e} ${t}: ${JSON.stringify(r.nodes[t])}`)}}function TH(r,e,t=!1){dn(`Running a vm on ${JSON.stringify(e)}`);let i=[{node:0,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null}}];aCe(r,{prefix:" "});let n=[tv,...e];for(let s=0;s<n.length;++s){let o=n[s];dn(` Processing ${JSON.stringify(o)}`);let a=[];for(let{node:l,state:c}of i){dn(` Current node is ${l}`);let u=r.nodes[l];if(l===2){a.push({node:l,state:c});continue}console.assert(u.shortcuts.length===0,"Shortcuts should have been eliminated by now");let g=Object.prototype.hasOwnProperty.call(u.statics,o);if(!t||s<n.length-1||g)if(g){let h=u.statics[o];for(let{to:p,reducer:d}of h)a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Static transition to ${p} found`)}else dn(" No static transition found");else{let h=!1;for(let p of Object.keys(u.statics))if(!!p.startsWith(o)){if(o===p)for(let{to:d,reducer:m}of u.statics[p])a.push({node:d,state:typeof m<"u"?DI(uv,m,c,o):c}),dn(` Static transition to ${d} found`);else for(let{to:d}of u.statics[p])a.push({node:d,state:{...c,remainder:p.slice(o.length)}}),dn(` Static transition to ${d} found (partial match)`);h=!0}h||dn(" No partial static transition found")}if(o!==Bi)for(let[h,{to:p,reducer:d}]of u.dynamics)DI(FI,h,c,o)&&(a.push({node:p,state:typeof d<"u"?DI(uv,d,c,o):c}),dn(` Dynamic transition to ${p} found (via ${h})`))}if(a.length===0&&o===Bi&&e.length===1)return[{node:0,state:FH}];if(a.length===0)throw new Hg(e,i.filter(({node:l})=>l!==2).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===2))throw new Hg(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=uCe(a)}if(i.length>0){dn(" Results:");for(let s of i)dn(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else dn(" No results");return i}function ACe(r,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(r.statics,Bi)){for(let{to:t}of r.statics[Bi])if(t===1)return!0}return!1}function lCe(r,e,t){let i=t&&e.length>0?[""]:[],n=TH(r,e,t),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let p=g;g=[];for(let d of p){let m=r.nodes[d],y=Object.keys(m.statics);for(let B of Object.keys(m.statics)){let S=y[0];for(let{to:P,reducer:F}of m.statics[S])F==="pushPath"&&(u||l.push(S),g.push(P))}}u=!1}let h=JSON.stringify(l);o.has(h)||(s.push(l),o.add(h))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=r.nodes[l],g=ACe(u,c);for(let[h,p]of Object.entries(u.statics))(g&&h!==Bi||!h.startsWith("-")&&p.some(({reducer:d})=>d==="pushPath"))&&a([...i,h],l);if(!!g)for(let[h,{to:p}]of u.dynamics){if(p===2)continue;let d=pCe(h,c);if(d!==null)for(let m of d)a([...i,m],l)}}return[...s].sort()}function cCe(r,e){let t=TH(r,[...e,Bi]);return gCe(e,t.map(({state:i})=>i))}function uCe(r){let e=0;for(let{state:t}of r)t.path.length>e&&(e=t.path.length);return r.filter(({state:t})=>t.path.length===e)}function gCe(r,e){let t=e.filter(g=>g.selectedIndex!==null);if(t.length===0)throw new Error;let i=t.filter(g=>g.requiredOptions.every(h=>h.some(p=>g.options.find(d=>d.name===p))));if(i.length===0)throw new Hg(r,t.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:h})=>!h).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new xI(r,u.map(g=>g.candidateUsage));return u[0]}function fCe(r){let e=[],t=[];for(let i of r)i.selectedIndex===-1?t.push(i):e.push(i);return t.length>0&&e.push({...FH,path:LH(...t.map(i=>i.path)),options:t.reduce((i,n)=>i.concat(n.options),[])}),e}function LH(r,e,...t){return e===void 0?Array.from(r):LH(r.filter((i,n)=>i===e[n]),...t)}function _i(){return{dynamics:[],shortcuts:[],statics:{}}}function OH(r){return r===1||r===2}function cv(r,e=0){return{to:OH(r.to)?r.to:r.to>2?r.to+e-2:r.to+e,reducer:r.reducer}}function hCe(r,e=0){let t=_i();for(let[i,n]of r.dynamics)t.dynamics.push([i,cv(n,e)]);for(let i of r.shortcuts)t.shortcuts.push(cv(i,e));for(let[i,n]of Object.entries(r.statics))t.statics[i]=n.map(s=>cv(s,e));return t}function bi(r,e,t,i,n){r.nodes[e].dynamics.push([t,{to:i,reducer:n}])}function jg(r,e,t,i){r.nodes[e].shortcuts.push({to:t,reducer:i})}function Sa(r,e,t,i,n){(Object.prototype.hasOwnProperty.call(r.nodes[e].statics,t)?r.nodes[e].statics[t]:r.nodes[e].statics[t]=[]).push({to:i,reducer:n})}function DI(r,e,t,i){if(Array.isArray(e)){let[n,...s]=e;return r[n](t,i,...s)}else return r[e](t,i)}function pCe(r,e){let t=Array.isArray(r)?FI[r[0]]:FI[r];if(typeof t.suggest>"u")return null;let i=Array.isArray(r)?r.slice(1):[];return t.suggest(e,...i)}var FI={always:()=>!0,isOptionLike:(r,e)=>!r.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(r,e)=>r.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(r,e,t,i)=>!r.ignoreOptions&&e===t,isBatchOption:(r,e,t)=>!r.ignoreOptions&&wH.test(e)&&[...e.slice(1)].every(i=>t.includes(`-${i}`)),isBoundOption:(r,e,t,i)=>{let n=e.match(iv);return!r.ignoreOptions&&!!n&&vI.test(n[1])&&t.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(r,e,t)=>!r.ignoreOptions&&e===`--no-${t.slice(2)}`,isHelp:(r,e)=>!r.ignoreOptions&&rv.test(e),isUnsupportedOption:(r,e,t)=>!r.ignoreOptions&&e.startsWith("-")&&vI.test(e)&&!t.includes(e),isInvalidOption:(r,e)=>!r.ignoreOptions&&e.startsWith("-")&&!vI.test(e)};FI.isOption.suggest=(r,e,t=!0)=>t?null:[e];var uv={setCandidateState:(r,e,t)=>({...r,...t}),setSelectedIndex:(r,e,t)=>({...r,selectedIndex:t}),pushBatch:(r,e)=>({...r,options:r.options.concat([...e.slice(1)].map(t=>({name:`-${t}`,value:!0})))}),pushBound:(r,e)=>{let[,t,i]=e.match(iv);return{...r,options:r.options.concat({name:t,value:i})}},pushPath:(r,e)=>({...r,path:r.path.concat(e)}),pushPositional:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!1})}),pushExtra:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(r,e)=>({...r,positionals:r.positionals.concat({value:e,extra:Hn})}),pushTrue:(r,e,t=e)=>({...r,options:r.options.concat({name:e,value:!0})}),pushFalse:(r,e,t=e)=>({...r,options:r.options.concat({name:t,value:!1})}),pushUndefined:(r,e)=>({...r,options:r.options.concat({name:e,value:void 0})}),pushStringValue:(r,e)=>{var t;let i={...r,options:[...r.options]},n=r.options[r.options.length-1];return n.value=((t=n.value)!==null&&t!==void 0?t:[]).concat([e]),i},setStringValue:(r,e)=>{let t={...r,options:[...r.options]},i=r.options[r.options.length-1];return i.value=e,t},inhibateOptions:r=>({...r,ignoreOptions:!0}),useHelp:(r,e,t)=>{let[,,i]=e.match(rv);return typeof i<"u"?{...r,options:[{name:"-c",value:String(t)},{name:"-i",value:i}]}:{...r,options:[{name:"-c",value:String(t)}]}},setError:(r,e,t)=>e===Bi?{...r,errorMessage:`${t}.`}:{...r,errorMessage:`${t} ("${e}").`},setOptionArityError:(r,e)=>{let t=r.options[r.options.length-1];return{...r,errorMessage:`Not enough arguments to option ${t.name}.`}}},Hn=Symbol(),gv=class{constructor(e,t){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=t}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:t=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:t,extra:i,proxy:n})}addPositional({name:e="arg",required:t=!0}={}){if(!t&&this.arity.extra===Hn)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!t&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!t&&this.arity.extra!==Hn?this.arity.extra.push(e):this.arity.extra!==Hn&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:t=0}={}){if(this.arity.extra===Hn)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i<t;++i)this.addPositional({name:e});this.arity.extra=Hn}addProxy({required:e=0}={}){this.addRest({required:e}),this.arity.proxy=!0}addOption({names:e,description:t,arity:i=0,hidden:n=!1,required:s=!1,allowBinding:o=!0}){if(!o&&i>1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:t,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:t=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let p=0;p<a;++p)g.push(` #${p}`);let h=`${o.join(",")}${g.join("")}`;!t&&c?n.push({definition:h,description:c,required:u}):i.push(u?`<${h}>`:`[${h}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Hn?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=NH(),t=0,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);t=Vs(e,_i()),Sa(e,0,tv,t,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=t;if(a.length>0){let h=Vs(e,_i());jg(e,l,h),this.registerOptions(e,h),l=h}for(let h=0;h<a.length;++h){let p=Vs(e,_i());Sa(e,l,a[h],p,"pushPath"),l=p}if(this.arity.leading.length>0||!this.arity.proxy){let h=Vs(e,_i());bi(e,l,"isHelp",h,["useHelp",this.cliIndex]),Sa(e,h,Bi,1,["setSelectedIndex",-1]),this.registerOptions(e,l)}this.arity.leading.length>0&&Sa(e,l,Bi,2,["setError","Not enough positional arguments"]);let c=l;for(let h=0;h<this.arity.leading.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),(this.arity.trailing.length>0||h+1!==this.arity.leading.length)&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),bi(e,c,"isNotOptionLike",p,"pushPositional"),c=p}let u=c;if(this.arity.extra===Hn||this.arity.extra.length>0){let h=Vs(e,_i());if(jg(e,c,h),this.arity.extra===Hn){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),bi(e,c,s,p,"pushExtraNoLimits"),bi(e,p,s,p,"pushExtraNoLimits"),jg(e,p,h)}else for(let p=0;p<this.arity.extra.length;++p){let d=Vs(e,_i());this.arity.proxy||this.registerOptions(e,d),bi(e,u,s,d,"pushExtra"),jg(e,d,h),u=d}u=h}this.arity.trailing.length>0&&Sa(e,u,Bi,2,["setError","Not enough positional arguments"]);let g=u;for(let h=0;h<this.arity.trailing.length;++h){let p=Vs(e,_i());this.arity.proxy||this.registerOptions(e,p),h+1<this.arity.trailing.length&&Sa(e,p,Bi,2,["setError","Not enough positional arguments"]),bi(e,g,"isNotOptionLike",p,"pushPositional"),g=p}bi(e,g,s,2,["setError","Extraneous positional argument"]),Sa(e,g,Bi,1,["setSelectedIndex",this.cliIndex])}return{machine:e,context:this.context}}registerOptions(e,t){bi(e,t,["isOption","--"],t,"inhibateOptions"),bi(e,t,["isBatchOption",this.allOptionNames],t,"pushBatch"),bi(e,t,["isBoundOption",this.allOptionNames,this.options],t,"pushBound"),bi(e,t,["isUnsupportedOption",this.allOptionNames],2,["setError","Unsupported option name"]),bi(e,t,["isInvalidOption"],2,["setError","Invalid option name"]);for(let i of this.options){let n=i.names.reduce((s,o)=>o.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)bi(e,t,["isOption",s,i.hidden||s!==n],t,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&bi(e,t,["isNegatedOption",s],t,["pushFalse",s]);else{let s=Vs(e,_i());for(let o of i.names)bi(e,t,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o<i.arity;++o){let a=Vs(e,_i());Sa(e,s,Bi,2,"setOptionArityError"),bi(e,s,"isOptionLike",2,"setOptionArityError");let l=i.arity===1?"setStringValue":"pushStringValue";bi(e,s,"isNotOptionLike",a,l),s=a}jg(e,s,t)}}}},Yg=class{constructor({binaryName:e="..."}={}){this.builders=[],this.opts={binaryName:e}}static build(e,t={}){return new Yg(t).commands(e).compile()}getBuilderByIndex(e){if(!(e>=0&&e<this.builders.length))throw new Error(`Assertion failed: Out-of-bound command index (${e})`);return this.builders[e]}commands(e){for(let t of e)t(this.command());return this}command(){let e=new gv(this.builders.length,this.opts);return this.builders.push(e),e}compile(){let e=[],t=[];for(let n of this.builders){let{machine:s,context:o}=n.compile();e.push(s),t.push(o)}let i=sCe(e);return oCe(i),{machine:i,contexts:t,process:n=>cCe(i,n),suggest:(n,s)=>lCe(i,n,s)}}};var qg=class extends Qe{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,t){let i=new qg(t);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index<e.length&&(e=[e[this.index]]),e.length===0)this.context.stdout.write(this.cli.usage());else if(e.length===1)this.context.stdout.write(this.cli.usage(this.contexts[e[0]].commandClass,{detailed:!0}));else if(e.length>1){this.context.stdout.write(`Multiple commands match your selection: -`),this.context.stdout.write(` -`);let t=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${t++}. `.padStart(5)}));this.context.stdout.write(` -`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands. -`)}}};var MH=Symbol("clipanion/errorCommand");function dCe(){return process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}var jn=class{constructor({binaryLabel:e,binaryName:t="...",binaryVersion:i,enableCapture:n=!1,enableColors:s}={}){this.registrations=new Map,this.builder=new Yg({binaryName:t}),this.binaryLabel=e,this.binaryName=t,this.binaryVersion=i,this.enableCapture=n,this.enableColors=s}static from(e,t={}){let i=new jn(t);for(let n of e)i.register(n);return i}register(e){var t;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[Qe.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(t=e.paths)!==null&&t!==void 0?t:n.paths;if(typeof a<"u")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:t,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case-1:return qg.from(n,t);default:{let{commandClass:s}=t[n.selectedIndex],o=this.registrations.get(s);if(typeof o>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[MH]=a,l}}break}}async run(e,t){var i;let n,s={...jn.defaultContext,...t},o=(i=this.enableColors)!==null&&i!==void 0?i:s.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e)}catch(c){return s.stdout.write(this.error(c,{colored:o})),1}if(n.help)return s.stdout.write(this.usage(n,{colored:o,detailed:!0})),0;n.context=s,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(c,u)=>this.error(c,u),format:c=>this.format(c),process:c=>this.process(c),run:(c,u)=>this.run(c,{...s,...u}),usage:(c,u)=>this.usage(c,u)};let a=this.enableCapture?CCe(s):UH,l;try{l=await a(()=>n.validateAndExecute().catch(c=>n.catch(c).then(()=>0)))}catch(c){return s.stdout.write(this.error(c,{colored:o,command:n})),1}return l}async runExit(e,t){process.exitCode=await this.run(e,t)}suggest(e,t){let{suggest:i}=this.builder.compile();return i(e,t)}definitions({colored:e=!1}={}){let t=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage>"u")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category<"u"?Ti(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description<"u"?Ti(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details<"u"?Ti(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples<"u"?i.usage.examples.map(([h,p])=>[Ti(h,{format:this.format(e),paragraphs:!1}),p.replace(/\$0/g,this.binaryName)]):void 0;t.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return t}usage(e=null,{colored:t,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage<"u";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(p=>p.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof Qe?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Ti(l,{format:this.format(t),paragraphs:!1}).replace(/^./,p=>p.toUpperCase()),a+=` -`),(c!==""||u.length>0)&&(a+=`${this.format(t).header("Usage")} -`,a+=` -`);let{usage:g,options:h}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(t).bold(n)}${g} -`,h.length>0){a+=` -`,a+=`${lv.header("Options")} -`;let p=h.reduce((d,m)=>Math.max(d,m.definition.length),0);a+=` -`;for(let{definition:d,description:m}of h)a+=` ${this.format(t).bold(d.padEnd(p))} ${Ti(m,{format:this.format(t),paragraphs:!1})}`}if(c!==""&&(a+=` -`,a+=`${this.format(t).header("Details")} -`,a+=` -`,a+=Ti(c,{format:this.format(t),paragraphs:!0})),u.length>0){a+=` -`,a+=`${this.format(t).header("Examples")} -`;for(let[p,d]of u)a+=` -`,a+=Ti(p,{format:this.format(t),paragraphs:!1}),a+=`${d.replace(/^/m,` ${this.format(t).bold(n)}`).replace(/\$0/g,this.binaryName)} -`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(t).bold(n)}${l} -`}else{let l=new Map;for(let[h,{index:p}]of this.registrations.entries()){if(typeof h.usage>"u")continue;let d=typeof h.usage.category<"u"?Ti(h.usage.category,{format:this.format(t),paragraphs:!1}):null,m=l.get(d);typeof m>"u"&&l.set(d,m=[]);let{usage:y}=this.getUsageByIndex(p);m.push({commandClass:h,usage:y})}let c=Array.from(l.keys()).sort((h,p)=>h===null?-1:p===null?1:h.localeCompare(p,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel<"u",g=typeof this.binaryVersion<"u";u||g?(u&&g?a+=`${this.format(t).header(`${this.binaryLabel} - ${this.binaryVersion}`)} - -`:u?a+=`${this.format(t).header(`${this.binaryLabel}`)} -`:a+=`${this.format(t).header(`${this.binaryVersion}`)} -`,a+=` ${this.format(t).bold(n)}${this.binaryName} <command> -`):a+=`${this.format(t).bold(n)}${this.binaryName} <command> -`;for(let h of c){let p=l.get(h).slice().sort((m,y)=>m.usage.localeCompare(y.usage,"en",{usage:"sort",caseFirst:"upper"})),d=h!==null?h.trim():"General commands";a+=` -`,a+=`${this.format(t).header(`${d}`)} -`;for(let{commandClass:m,usage:y}of p){let B=m.usage.description||"undocumented";a+=` -`,a+=` ${this.format(t).bold(y)} -`,a+=` ${Ti(B,{format:this.format(t),paragraphs:!1})}`}}a+=` -`,a+=Ti("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(t),paragraphs:!0})}return a}error(e,t){var i,{colored:n,command:s=(i=e[MH])!==null&&i!==void 0?i:null}=t===void 0?{}:t;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} -`;let l=e.clipanion;return typeof l<"u"?l.type==="usage"&&(o+=` -`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}format(e){var t;return((t=e!=null?e:this.enableColors)!==null&&t!==void 0?t:jn.defaultContext.colorDepth>1)?lv:RH}getUsageByRegistration(e,t){let i=this.registrations.get(e);if(typeof i>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,t)}getUsageByIndex(e,t){return this.builder.getBuilderByIndex(e).usage(t)}};jn.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:"getColorDepth"in fv.default.WriteStream.prototype?fv.default.WriteStream.prototype.getColorDepth():dCe()};var KH;function CCe(r){let e=KH;if(typeof e>"u"){if(r.stdout===process.stdout&&r.stderr===process.stderr)return UH;let{AsyncLocalStorage:t}=J("async_hooks");e=KH=new t;let i=process.stdout._write;process.stdout._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?i.call(this,s,o,a):l.stdout.write(s,o,a)};let n=process.stderr._write;process.stderr._write=function(s,o,a){let l=e.getStore();return typeof l>"u"?n.call(this,s,o,a):l.stderr.write(s,o,a)}}return t=>e.run(r,t)}function UH(r){return r()}var hv={};ct(hv,{DefinitionsCommand:()=>ld,HelpCommand:()=>cd,VersionCommand:()=>ud});var ld=class extends Qe{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};ld.paths=[["--clipanion=definitions"]];var cd=class extends Qe{async execute(){this.context.stdout.write(this.cli.usage())}};cd.paths=[["-h"],["--help"]];var ud=class extends Qe{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"} -`)}};ud.paths=[["-v"],["--version"]];var z={};ct(z,{Array:()=>HH,Boolean:()=>jH,Counter:()=>GH,Proxy:()=>YH,Rest:()=>qH,String:()=>JH,applyValidator:()=>sd,cleanValidationError:()=>PI,formatError:()=>nd,isOptionSymbol:()=>id,makeCommandOption:()=>Xi,rerouteArguments:()=>Po});function HH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i<"u"?[...i]:void 0;for(let{name:h,value:p}of u.options)!a.has(h)||(g=g!=null?g:[],g.push(p));return g}})}function jH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u=h);return u}})}function GH(r,e,t){let[i,n]=Po(e,t!=null?t:{}),s=r.split(","),o=new Set(s);return Xi({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:h}of c.options)!o.has(g)||(u!=null||(u=0),h?u+=1:u=0);return u}})}function YH(r={}){return Xi({definition(e,t){var i;e.addProxy({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){return i.positionals.map(({value:n})=>n)}})}function qH(r={}){return Xi({definition(e,t){var i;e.addRest({name:(i=r.name)!==null&&i!==void 0?i:t,required:r.required})},transformer(e,t,i){let n=o=>{let a=i.positionals[o];return a.extra===Hn||a.extra===!1&&o<e.arity.leading.length},s=0;for(;s<i.positionals.length&&n(s);)s+=1;return i.positionals.splice(0,s).map(({value:o})=>o)}})}function mCe(r,e,t){let[i,n]=Po(e,t!=null?t:{}),{arity:s=1}=n,o=r.split(","),a=new Set(o);return Xi({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,h=i;for(let{name:p,value:d}of u.options)!a.has(p)||(g=p,h=d);return typeof h=="string"?sd(g!=null?g:c,h,n.validator):h}})}function ECe(r={}){let{required:e=!0}=r;return Xi({definition(t,i){var n;t.addPositional({name:(n=r.name)!==null&&n!==void 0?n:i,required:r.required})},transformer(t,i,n){var s;for(let o=0;o<n.positionals.length;++o){if(n.positionals[o].extra===Hn||e&&n.positionals[o].extra===!0||!e&&n.positionals[o].extra===!1)continue;let[a]=n.positionals.splice(o,1);return sd((s=r.name)!==null&&s!==void 0?s:i,a.value,r.validator)}}})}function JH(r,...e){return typeof r=="string"?mCe(r,...e):ECe(r)}var wz=ve(Jg()),nD=J("stream");var dt=(ae=>(ae[ae.UNNAMED=0]="UNNAMED",ae[ae.EXCEPTION=1]="EXCEPTION",ae[ae.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",ae[ae.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",ae[ae.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",ae[ae.BUILD_DISABLED=5]="BUILD_DISABLED",ae[ae.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",ae[ae.MUST_BUILD=7]="MUST_BUILD",ae[ae.MUST_REBUILD=8]="MUST_REBUILD",ae[ae.BUILD_FAILED=9]="BUILD_FAILED",ae[ae.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",ae[ae.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",ae[ae.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",ae[ae.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",ae[ae.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",ae[ae.REMOTE_INVALID=15]="REMOTE_INVALID",ae[ae.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",ae[ae.RESOLUTION_PACK=17]="RESOLUTION_PACK",ae[ae.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",ae[ae.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",ae[ae.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",ae[ae.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",ae[ae.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",ae[ae.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",ae[ae.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",ae[ae.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",ae[ae.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",ae[ae.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",ae[ae.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",ae[ae.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",ae[ae.FETCH_FAILED=30]="FETCH_FAILED",ae[ae.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",ae[ae.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",ae[ae.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",ae[ae.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",ae[ae.NETWORK_ERROR=35]="NETWORK_ERROR",ae[ae.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",ae[ae.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",ae[ae.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",ae[ae.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",ae[ae.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",ae[ae.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",ae[ae.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",ae[ae.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",ae[ae.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",ae[ae.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",ae[ae.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",ae[ae.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",ae[ae.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",ae[ae.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",ae[ae.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",ae[ae.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",ae[ae.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",ae[ae.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",ae[ae.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",ae[ae.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",ae[ae.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",ae[ae.INVALID_MANIFEST=57]="INVALID_MANIFEST",ae[ae.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",ae[ae.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",ae[ae.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",ae[ae.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",ae[ae.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",ae[ae.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",ae[ae.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",ae[ae.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",ae[ae.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",ae[ae.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",ae[ae.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",ae[ae.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",ae[ae.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",ae[ae.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",ae[ae.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",ae[ae.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",ae[ae.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",ae[ae.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",ae[ae.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",ae[ae.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",ae[ae.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",ae[ae.NETWORK_DISABLED=80]="NETWORK_DISABLED",ae[ae.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",ae[ae.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",ae))(dt||{});function RA(r){return`YN${r.toString(10).padStart(4,"0")}`}function TI(r){let e=Number(r.slice(2));if(typeof dt[e]>"u")throw new Error(`Unknown message name: "${r}"`);return e}var x={};ct(x,{areDescriptorsEqual:()=>P8,areIdentsEqual:()=>oC,areLocatorsEqual:()=>aC,areVirtualPackagesEquivalent:()=>YSe,bindDescriptor:()=>jSe,bindLocator:()=>GSe,convertDescriptorToLocator:()=>Qw,convertLocatorToDescriptor:()=>Hk,convertPackageToLocator:()=>HSe,convertToIdent:()=>USe,convertToManifestRange:()=>WSe,copyPackage:()=>iC,devirtualizeDescriptor:()=>nC,devirtualizeLocator:()=>sC,getIdentVendorPath:()=>qk,isPackageCompatible:()=>kw,isVirtualDescriptor:()=>qA,isVirtualLocator:()=>Yo,makeDescriptor:()=>zt,makeIdent:()=>qo,makeLocator:()=>nn,makeRange:()=>vw,parseDescriptor:()=>JA,parseFileStyleRange:()=>qSe,parseIdent:()=>tn,parseLocator:()=>Rc,parseRange:()=>vf,prettyDependent:()=>nP,prettyDescriptor:()=>$t,prettyIdent:()=>ai,prettyLocator:()=>Ct,prettyLocatorNoColors:()=>Yk,prettyRange:()=>Pw,prettyReference:()=>lC,prettyResolution:()=>iP,prettyWorkspace:()=>cC,renamePackage:()=>rC,slugifyIdent:()=>Uk,slugifyLocator:()=>xf,sortDescriptors:()=>Pf,stringifyDescriptor:()=>vn,stringifyIdent:()=>Tt,stringifyLocator:()=>ms,tryParseDescriptor:()=>AC,tryParseIdent:()=>k8,tryParseLocator:()=>Sw,virtualizeDescriptor:()=>jk,virtualizePackage:()=>Gk});var Sf=ve(J("querystring")),S8=ve(zr()),v8=ve(yJ());var $={};ct($,{LogLevel:()=>Vy,Style:()=>_x,Type:()=>Ke,addLogFilterSupport:()=>Zd,applyColor:()=>Sn,applyHyperlink:()=>If,applyStyle:()=>zy,json:()=>Qc,jsonOrPretty:()=>w0e,mark:()=>rP,pretty:()=>_e,prettyField:()=>Ho,prettyList:()=>tP,supportsColor:()=>Wy,supportsHyperlinks:()=>eP,tuple:()=>io});var Xd=ve(wx()),Vd=ve(cc());var m4=ve(bn()),E4=ve(a4());var me={};ct(me,{AsyncActions:()=>jx,BufferStream:()=>Hx,CachingStrategy:()=>d4,DefaultStream:()=>Gx,allSettledSafe:()=>ro,assertNever:()=>qx,bufferStream:()=>Cf,buildIgnorePattern:()=>m0e,convertMapsToIndexableObjects:()=>qy,dynamicRequire:()=>mf,escapeRegExp:()=>g0e,getArrayWithDefault:()=>hf,getFactoryWithDefault:()=>La,getMapWithDefault:()=>pf,getSetWithDefault:()=>bc,isIndexableObject:()=>Ux,isPathLike:()=>E0e,isTaggedYarnVersion:()=>u0e,mapAndFilter:()=>Uo,mapAndFind:()=>Wd,overrideType:()=>f0e,parseBoolean:()=>zd,parseOptionalBoolean:()=>C4,prettifyAsyncErrors:()=>df,prettifySyncErrors:()=>Jx,releaseAfterUseAsync:()=>p0e,replaceEnvVariables:()=>Wx,sortMap:()=>Qn,tryParseOptionalBoolean:()=>zx,validateEnum:()=>h0e});var l4=ve(bn()),c4=ve(Jg()),u4=ve(zr()),Yx=J("stream");function u0e(r){return!!(u4.default.valid(r)&&r.match(/^[^-]+(-rc\.[0-9]+)?$/))}function g0e(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function f0e(r){}function qx(r){throw new Error(`Assertion failed: Unexpected object '${r}'`)}function h0e(r,e){let t=Object.values(r);if(!t.includes(e))throw new we(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${t.map(i=>JSON.stringify(i)).join(", ")})`);return e}function Uo(r,e){let t=[];for(let i of r){let n=e(i);n!==g4&&t.push(n)}return t}var g4=Symbol();Uo.skip=g4;function Wd(r,e){for(let t of r){let i=e(t);if(i!==f4)return i}}var f4=Symbol();Wd.skip=f4;function Ux(r){return typeof r=="object"&&r!==null}async function ro(r){let e=await Promise.allSettled(r),t=[];for(let i of e){if(i.status==="rejected")throw i.reason;t.push(i.value)}return t}function qy(r){if(r instanceof Map&&(r=Object.fromEntries(r)),Ux(r))for(let e of Object.keys(r)){let t=r[e];Ux(t)&&(r[e]=qy(t))}return r}function La(r,e,t){let i=r.get(e);return typeof i>"u"&&r.set(e,i=t()),i}function hf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=[]),t}function bc(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Set),t}function pf(r,e){let t=r.get(e);return typeof t>"u"&&r.set(e,t=new Map),t}async function p0e(r,e){if(e==null)return await r();try{return await r()}finally{await e()}}async function df(r,e){try{return await r()}catch(t){throw t.message=e(t.message),t}}function Jx(r,e){try{return r()}catch(t){throw t.message=e(t.message),t}}async function Cf(r){return await new Promise((e,t)=>{let i=[];r.on("error",n=>{t(n)}),r.on("data",n=>{i.push(n)}),r.on("end",()=>{e(Buffer.concat(i))})})}var Hx=class extends Yx.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};function d0e(){let r,e;return{promise:new Promise((i,n)=>{r=i,e=n}),resolve:r,reject:e}}var jx=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,c4.default)(e)}set(e,t){let i=this.deferred.get(e);typeof i>"u"&&this.deferred.set(e,i=d0e());let n=this.limit(()=>t());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,t){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>t(i))}async wait(){await Promise.all(this.promises.values())}},Gx=class extends Yx.Transform{constructor(t=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=t}_transform(t,i,n){if(i!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}},Jd=eval("require");function h4(r){return Jd(K.fromPortablePath(r))}function p4(path){let physicalPath=K.fromPortablePath(path),currentCacheEntry=Jd.cache[physicalPath];delete Jd.cache[physicalPath];let result;try{result=h4(physicalPath);let freshCacheEntry=Jd.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Jd.cache[physicalPath]=currentCacheEntry}return result}var A4=new Map;function C0e(r){let e=A4.get(r),t=M.statSync(r);if((e==null?void 0:e.mtime)===t.mtimeMs)return e.instance;let i=p4(r);return A4.set(r,{mtime:t.mtimeMs,instance:i}),i}var d4=(i=>(i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node",i))(d4||{});function mf(r,{cachingStrategy:e=2}={}){switch(e){case 0:return p4(r);case 1:return C0e(r);case 2:return h4(r);default:throw new Error("Unsupported caching strategy")}}function Qn(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function m0e(r){return r.length===0?null:r.map(e=>`(${l4.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Wx(r,{env:e}){let t=/\${(?<variableName>[\d\w_]+)(?<colon>:)?(?:-(?<fallback>[^}]*))?}/g;return r.replace(t,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new we(`Environment variable not found (${n})`)})}function zd(r){switch(r){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${r}" as a boolean`)}}function C4(r){return typeof r>"u"?r:zd(r)}function zx(r){try{return C4(r)}catch{return null}}function E0e(r){return!!(K.isAbsolute(r)||r.match(/^(\.{1,2}|~)\//))}var Ef=(t=>(t.HARD="HARD",t.SOFT="SOFT",t))(Ef||{}),Vx=(i=>(i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta",i))(Vx||{}),Xx=(i=>(i.Inactive="inactive",i.Redundant="redundant",i.Active="active",i))(Xx||{});var Ke={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN"},_x=(e=>(e[e.BOLD=2]="BOLD",e))(_x||{}),$x=Vd.default.GITHUB_ACTIONS?{level:2}:Xd.default.supportsColor?{level:Xd.default.supportsColor.level}:{level:0},Wy=$x.level!==0,eP=Wy&&!Vd.default.GITHUB_ACTIONS&&!Vd.default.CIRCLE&&!Vd.default.GITLAB,Zx=new Xd.default.Instance($x),I0e=new Map([[Ke.NO_HINT,null],[Ke.NULL,["#a853b5",129]],[Ke.SCOPE,["#d75f00",166]],[Ke.NAME,["#d7875f",173]],[Ke.RANGE,["#00afaf",37]],[Ke.REFERENCE,["#87afff",111]],[Ke.NUMBER,["#ffd700",220]],[Ke.PATH,["#d75fd7",170]],[Ke.URL,["#d75fd7",170]],[Ke.ADDED,["#5faf00",70]],[Ke.REMOVED,["#d70000",160]],[Ke.CODE,["#87afff",111]],[Ke.SIZE,["#ffd700",220]]]),Cs=r=>r,Jy={[Ke.NUMBER]:Cs({pretty:(r,e)=>Sn(r,`${e}`,Ke.NUMBER),json:r=>r}),[Ke.IDENT]:Cs({pretty:(r,e)=>ai(r,e),json:r=>Tt(r)}),[Ke.LOCATOR]:Cs({pretty:(r,e)=>Ct(r,e),json:r=>ms(r)}),[Ke.DESCRIPTOR]:Cs({pretty:(r,e)=>$t(r,e),json:r=>vn(r)}),[Ke.RESOLUTION]:Cs({pretty:(r,{descriptor:e,locator:t})=>iP(r,e,t),json:({descriptor:r,locator:e})=>({descriptor:vn(r),locator:e!==null?ms(e):null})}),[Ke.DEPENDENT]:Cs({pretty:(r,{locator:e,descriptor:t})=>nP(r,e,t),json:({locator:r,descriptor:e})=>({locator:ms(r),descriptor:vn(e)})}),[Ke.PACKAGE_EXTENSION]:Cs({pretty:(r,e)=>{switch(e.type){case"Dependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"dependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependency":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependencies",Ke.CODE)} \u27A4 ${ai(r,e.descriptor)}`;case"PeerDependencyMeta":return`${ai(r,e.parentDescriptor)} \u27A4 ${Sn(r,"peerDependenciesMeta",Ke.CODE)} \u27A4 ${ai(r,tn(e.selector))} \u27A4 ${Sn(r,e.key,Ke.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:r=>{switch(r.type){case"Dependency":return`${Tt(r.parentDescriptor)} > ${Tt(r.descriptor)}`;case"PeerDependency":return`${Tt(r.parentDescriptor)} >> ${Tt(r.descriptor)}`;case"PeerDependencyMeta":return`${Tt(r.parentDescriptor)} >> ${r.selector} / ${r.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${r.type}`)}}}),[Ke.SETTING]:Cs({pretty:(r,e)=>(r.get(e),If(r,Sn(r,e,Ke.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:r=>r}),[Ke.DURATION]:Cs({pretty:(r,e)=>{if(e>1e3*60){let t=Math.floor(e/1e3/60),i=Math.ceil((e-t*60*1e3)/1e3);return i===0?`${t}m`:`${t}m ${i}s`}else{let t=Math.floor(e/1e3),i=e-t*1e3;return i===0?`${t}s`:`${t}s ${i}ms`}},json:r=>r}),[Ke.SIZE]:Cs({pretty:(r,e)=>{let t=["KB","MB","GB","TB"],i=t.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return Sn(r,`${s} ${t[i-1]}`,Ke.NUMBER)},json:r=>r}),[Ke.PATH]:Cs({pretty:(r,e)=>Sn(r,K.fromPortablePath(e),Ke.PATH),json:r=>K.fromPortablePath(r)}),[Ke.MARKDOWN]:Cs({pretty:(r,{text:e,format:t,paragraphs:i})=>Ti(e,{format:t,paragraphs:i}),json:({text:r})=>r})};function io(r,e){return[e,r]}function zy(r,e,t){return r.get("enableColors")&&t&2&&(e=Xd.default.bold(e)),e}function Sn(r,e,t){if(!r.get("enableColors"))return e;let i=I0e.get(t);if(i===null)return e;let n=typeof i>"u"?t:$x.level>=3?i[0]:i[1],s=typeof n=="number"?Zx.ansi256(n):n.startsWith("#")?Zx.hex(n):Zx[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var y0e=!!process.env.KONSOLE_VERSION;function If(r,e,t){return r.get("enableHyperlinks")?y0e?`\x1B]8;;${t}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${t}\x07${e}\x1B]8;;\x07`:e}function _e(r,e,t){if(e===null)return Sn(r,"null",Ke.NULL);if(Object.prototype.hasOwnProperty.call(Jy,t))return Jy[t].pretty(r,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Sn(r,e,t)}function tP(r,e,t,{separator:i=", "}={}){return[...e].map(n=>_e(r,n,t)).join(i)}function Qc(r,e){if(r===null)return null;if(Object.prototype.hasOwnProperty.call(Jy,e))return Jy[e].json(r);if(typeof r!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof r}`);return r}function w0e(r,e,[t,i]){return r?Qc(t,i):_e(e,t,i)}function rP(r){return{Check:Sn(r,"\u2713","green"),Cross:Sn(r,"\u2718","red"),Question:Sn(r,"?","cyan")}}function Ho(r,{label:e,value:[t,i]}){return`${_e(r,e,Ke.CODE)}: ${_e(r,t,i)}`}var Vy=(n=>(n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard",n))(Vy||{});function Zd(r,{configuration:e}){let t=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of t){let h=g.get("level");if(typeof h>"u")continue;let p=g.get("code");typeof p<"u"&&i.set(p,h);let d=g.get("text");typeof d<"u"&&n.set(d,h);let m=g.get("pattern");typeof m<"u"&&s.push([m4.default.matcher(m,{contains:!0}),h])}s.reverse();let o=(g,h,p)=>{if(g===null||g===0)return p;let d=n.size>0||s.length>0?(0,E4.default)(h):h;if(n.size>0){let m=n.get(d);if(typeof m<"u")return m!=null?m:p}if(s.length>0){for(let[m,y]of s)if(m(d))return y!=null?y:p}if(i.size>0){let m=i.get(RA(g));if(typeof m<"u")return m!=null?m:p}return p},a=r.reportInfo,l=r.reportWarning,c=r.reportError,u=function(g,h,p,d){switch(o(h,p,d)){case"info":a.call(g,h,p);break;case"warning":l.call(g,h!=null?h:0,p);break;case"error":c.call(g,h!=null?h:0,p);break}};r.reportInfo=function(...g){return u(this,...g,"info")},r.reportWarning=function(...g){return u(this,...g,"warning")},r.reportError=function(...g){return u(this,...g,"error")}}var Ai={};ct(Ai,{checksumFile:()=>Bw,checksumPattern:()=>bw,makeHash:()=>rn});var ww=J("crypto"),Kk=ve(Mk());function rn(...r){let e=(0,ww.createHash)("sha512"),t="";for(let i of r)typeof i=="string"?t+=i:i&&(t&&(e.update(t),t=""),e.update(i));return t&&e.update(t),e.digest("hex")}async function Bw(r,{baseFs:e,algorithm:t}={baseFs:M,algorithm:"sha512"}){let i=await e.openPromise(r,"r");try{let s=Buffer.allocUnsafeSlow(65536),o=(0,ww.createHash)(t),a=0;for(;(a=await e.readPromise(i,s,0,65536))!==0;)o.update(a===65536?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function bw(r,{cwd:e}){let i=(await(0,Kk.default)(r,{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Kk.default)([r,...i],{cwd:K.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=K.toPortablePath(a),u=await M.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await M.readlinkPromise(c))):u.isFile()&&l.push(await M.readFilePromise(c)),l.join("\0")})),o=(0,ww.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var tC="virtual:",MSe=5,x8=/(os|cpu|libc)=([a-z0-9_-]+)/,KSe=(0,v8.makeParser)(x8);function qo(r,e){if(r!=null&&r.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:rn(r,e),scope:r,name:e}}function zt(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:rn(r.identHash,e),range:e}}function nn(r,e){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:rn(r.identHash,e),reference:e}}function USe(r){return{identHash:r.identHash,scope:r.scope,name:r.name}}function Qw(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.descriptorHash,reference:r.range}}function Hk(r){return{identHash:r.identHash,scope:r.scope,name:r.name,descriptorHash:r.locatorHash,range:r.reference}}function HSe(r){return{identHash:r.identHash,scope:r.scope,name:r.name,locatorHash:r.locatorHash,reference:r.reference}}function rC(r,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:r.version,languageName:r.languageName,linkType:r.linkType,conditions:r.conditions,dependencies:new Map(r.dependencies),peerDependencies:new Map(r.peerDependencies),dependenciesMeta:new Map(r.dependenciesMeta),peerDependenciesMeta:new Map(r.peerDependenciesMeta),bin:new Map(r.bin)}}function iC(r){return rC(r,r)}function jk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return zt(r,`virtual:${e}#${r.range}`)}function Gk(r,e){if(e.includes("#"))throw new Error("Invalid entropy");return rC(r,nn(r,`virtual:${e}#${r.reference}`))}function qA(r){return r.range.startsWith(tC)}function Yo(r){return r.reference.startsWith(tC)}function nC(r){if(!qA(r))throw new Error("Not a virtual descriptor");return zt(r,r.range.replace(/^[^#]*#/,""))}function sC(r){if(!Yo(r))throw new Error("Not a virtual descriptor");return nn(r,r.reference.replace(/^[^#]*#/,""))}function jSe(r,e){return r.range.includes("::")?r:zt(r,`${r.range}::${Sf.default.stringify(e)}`)}function GSe(r,e){return r.reference.includes("::")?r:nn(r,`${r.reference}::${Sf.default.stringify(e)}`)}function oC(r,e){return r.identHash===e.identHash}function P8(r,e){return r.descriptorHash===e.descriptorHash}function aC(r,e){return r.locatorHash===e.locatorHash}function YSe(r,e){if(!Yo(r))throw new Error("Invalid package type");if(!Yo(e))throw new Error("Invalid package type");if(!oC(r,e)||r.dependencies.size!==e.dependencies.size)return!1;for(let t of r.dependencies.values()){let i=e.dependencies.get(t.identHash);if(!i||!P8(t,i))return!1}return!0}function tn(r){let e=k8(r);if(!e)throw new Error(`Invalid ident (${r})`);return e}function k8(r){let e=r.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,t,i]=e;return qo(typeof t<"u"?t:null,i)}function JA(r,e=!1){let t=AC(r,e);if(!t)throw new Error(`Invalid descriptor (${r})`);return t}function AC(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid range (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return zt(qo(o,n),a)}function Rc(r,e=!1){let t=Sw(r,e);if(!t)throw new Error(`Invalid locator (${r})`);return t}function Sw(r,e=!1){let t=e?r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):r.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!t)return null;let[,i,n,s]=t;if(s==="unknown")throw new Error(`Invalid reference (${r})`);let o=typeof i<"u"?i:null,a=typeof s<"u"?s:"unknown";return nn(qo(o,n),a)}function vf(r,e){let t=r.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(t===null)throw new Error(`Invalid range (${r})`);let i=typeof t[1]<"u"?t[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof t[3]<"u"?decodeURIComponent(t[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${r})`);let s=typeof t[3]<"u"?decodeURIComponent(t[3]):decodeURIComponent(t[2]),o=e!=null&&e.parseSelector?Sf.default.parse(s):s,a=typeof t[4]<"u"?Sf.default.parse(t[4]):null;return{protocol:i,source:n,selector:o,params:a}}function qSe(r,{protocol:e}){let{selector:t,params:i}=vf(r,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${r}`);return{parentLocator:Rc(i.locator,!0),path:t}}function Q8(r){return r=r.replace(/%/g,"%25"),r=r.replace(/:/g,"%3A"),r=r.replace(/#/g,"%23"),r}function JSe(r){return r===null?!1:Object.entries(r).length>0}function vw({protocol:r,source:e,selector:t,params:i}){let n="";return r!==null&&(n+=`${r}`),e!==null&&(n+=`${Q8(e)}#`),n+=Q8(t),JSe(i)&&(n+=`::${Sf.default.stringify(i)}`),n}function WSe(r){let{params:e,protocol:t,source:i,selector:n}=vf(r);for(let s in e)s.startsWith("__")&&delete e[s];return vw({protocol:t,source:i,params:e,selector:n})}function Tt(r){return r.scope?`@${r.scope}/${r.name}`:`${r.name}`}function vn(r){return r.scope?`@${r.scope}/${r.name}@${r.range}`:`${r.name}@${r.range}`}function ms(r){return r.scope?`@${r.scope}/${r.name}@${r.reference}`:`${r.name}@${r.reference}`}function Uk(r){return r.scope!==null?`@${r.scope}-${r.name}`:r.name}function xf(r){let{protocol:e,selector:t}=vf(r.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=S8.default.valid(t),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=r.scope?`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`:`${Uk(r)}-${s}-${r.locatorHash.slice(0,o)}`;return Yr(a)}function ai(r,e){return e.scope?`${_e(r,`@${e.scope}/`,Ke.SCOPE)}${_e(r,e.name,Ke.NAME)}`:`${_e(r,e.name,Ke.NAME)}`}function xw(r){if(r.startsWith(tC)){let e=xw(r.substring(r.indexOf("#")+1)),t=r.substring(tC.length,tC.length+MSe);return`${e} [${t}]`}else return r.replace(/\?.*/,"?[...]")}function Pw(r,e){return`${_e(r,xw(e),Ke.RANGE)}`}function $t(r,e){return`${ai(r,e)}${_e(r,"@",Ke.RANGE)}${Pw(r,e.range)}`}function lC(r,e){return`${_e(r,xw(e),Ke.REFERENCE)}`}function Ct(r,e){return`${ai(r,e)}${_e(r,"@",Ke.REFERENCE)}${lC(r,e.reference)}`}function Yk(r){return`${Tt(r)}@${xw(r.reference)}`}function Pf(r){return Qn(r,[e=>Tt(e),e=>e.range])}function cC(r,e){return ai(r,e.locator)}function iP(r,e,t){let i=qA(e)?nC(e):e;return t===null?`${$t(r,i)} \u2192 ${rP(r).Cross}`:i.identHash===t.identHash?`${$t(r,i)} \u2192 ${lC(r,t.reference)}`:`${$t(r,i)} \u2192 ${Ct(r,t)}`}function nP(r,e,t){return t===null?`${Ct(r,e)}`:`${Ct(r,e)} (via ${Pw(r,t.range)})`}function qk(r){return`node_modules/${Tt(r)}`}function kw(r,e){return r.conditions?KSe(r.conditions,t=>{let[,i,n]=t.match(x8),s=e[i];return s?s.includes(n):!0}):!0}var D8={hooks:{reduceDependency:(r,e,t,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==Tt(t)||o.from&&o.from.description&&o.from.description!==t.reference||o.descriptor.fullName!==Tt(r)||o.descriptor.description&&o.descriptor.description!==r.range)continue;return n.bindDescriptor(zt(r,a),e.topLevelWorkspace.anchoredLocator,s)}return r},validateProject:async(r,e)=>{for(let t of r.workspaces){let i=cC(r.configuration,t);await r.configuration.triggerHook(n=>n.validateWorkspace,t,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(r,e)=>{let{manifest:t}=r;t.resolutions.length&&r.cwd!==r.project.cwd&&t.errors.push(new Error("Resolutions field will be ignored"));for(let i of t.errors)e.reportWarning(57,i.message)}}};var M8=ve(zr());var uC=class{supportsDescriptor(e,t){return!!(e.range.startsWith(uC.protocol)||t.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,t){return!!e.reference.startsWith(uC.protocol)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.getWorkspaceByCwd(e.reference.slice(uC.protocol.length));return{...e,version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin}}},Hr=uC;Hr.protocol="workspace:";var Qt={};ct(Qt,{SemVer:()=>N8.SemVer,clean:()=>VSe,satisfiesWithPrereleases:()=>Fc,validRange:()=>no});var Dw=ve(zr()),N8=ve(zr()),R8=new Map;function Fc(r,e,t=!1){if(!r)return!1;let i=`${e}${t}`,n=R8.get(i);if(typeof n>"u")try{n=new Dw.default.Range(e,{includePrerelease:!0,loose:t})}catch{return!1}finally{R8.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Dw.default.SemVer(r,n)}catch{return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var F8=new Map;function no(r){if(r.indexOf(":")!==-1)return null;let e=F8.get(r);if(typeof e<"u")return e;try{e=new Dw.default.Range(r)}catch{e=null}return F8.set(r,e),e}var zSe=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function VSe(r){let e=zSe.exec(r);return e?e[1]:null}var WA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:t=new Zt}={}){let i=v.join(e,"package.json");try{return await WA.fromFile(i,{baseFs:t})}catch(n){if(n.code==="ENOENT")return null;throw n}}static async find(e,{baseFs:t}={}){let i=await WA.tryFind(e,{baseFs:t});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:t=new Zt}={}){let i=new WA;return await i.loadFile(e,{baseFs:t}),i}static fromText(e){let t=new WA;return t.loadFromText(e),t}static isManifestFieldCompatible(e,t){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,t===s.slice(1))return!1}else if(i=!1,s===t)return!0;return n&&i}loadFromText(e){let t;try{t=JSON.parse(L8(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(t),this.indent=T8(e)}async loadFile(e,{baseFs:t=new Zt}){let i=await t.readFilePromise(e,"utf8"),n;try{n=JSON.parse(L8(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=T8(i)}load(e,{yamlCompatibilityMode:t=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=tn(e.name)}catch{i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(Array.isArray(e.libc)){let s=[];this.libc=s;for(let o of e.libc)typeof o!="string"?i.push(new Error("Parsing failed for the 'libc' field")):s.push(o)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=sn(e.main):this.main=null,typeof e.module=="string"?this.module=sn(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=sn(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(sn(s),typeof o=="string"?sn(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?i.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,sn(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"||o.trim()===""){i.push(new Error(`Invalid bin definition for '${s}'`));continue}let a=tn(s);this.bin.set(a.name,sn(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Hr.protocol)&&!no(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=zt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=JA(s),l=this.ensureDependencyMeta(a),c=Rw(o.built,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Rw(o.optional,{yamlCompatibilityMode:t});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Rw(o.unplugged,{yamlCompatibilityMode:t});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=JA(s),l=this.ensurePeerDependencyMeta(a),c=Rw(o.optional,{yamlCompatibilityMode:t});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:fI(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=sn(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=sn(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=sn(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(sn(s),typeof o=="string"?sn(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,sn(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,sn(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(sn(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=tn(s)}catch{i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=zt(a,o);this.dependencies.set(l.identHash,l);let c=zt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(Jk("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(Jk("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(Jk("libc",this.libc)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return WA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return WA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!M8.default.valid(e.range))throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(t);n||this.dependenciesMeta.set(t,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${vn(e)}'`);let t=Tt(e),i=this.peerDependenciesMeta.get(t);return i||this.peerDependenciesMeta.set(t,i={}),i}setRawField(e,t,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=t;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=t,a=!0))}}exportTo(e,{compatibilityMode:t=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=Tt(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(Tt(o)),l=!1;if(t&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Pf(i).map(o=>({[Tt(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Pf(n).map(o=>({[Tt(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Pf(this.devDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Pf(this.peerDependencies.values()).map(o=>({[Tt(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of Qn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of Qn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?vn(zt(tn(o),l)):o,g={...c};t&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Qn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[hI(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},ot=WA;ot.fileName="package.json",ot.allDependencies=["dependencies","devDependencies","peerDependencies"],ot.hardDependencies=["dependencies","devDependencies"];function T8(r){let e=r.match(/^[ \t]+/m);return e?e[0]:" "}function L8(r){return r.charCodeAt(0)===65279?r.slice(1):r}function sn(r){return r.replace(/\\/g,"/")}function Rw(r,{yamlCompatibilityMode:e}){return e?zx(r):typeof r>"u"||typeof r=="boolean"?r:null}function O8(r,e){let t=e.search(/[^!]/);if(t===-1)return"invalid";let i=t%2===0?"":"!",n=e.slice(t);return`${i}${r}=${n}`}function Jk(r,e){return e.length===1?O8(r,e[0]):`(${e.map(t=>O8(r,t)).join(" | ")})`}var pz=ve(hz()),dz=J("stream"),Cz=J("string_decoder");var jve=15,rt=class extends Error{constructor(t,i,n){super(i);this.reportExtra=n;this.reportCode=t}};function Gve(r){return typeof r.reportCode<"u"}var xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let t=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),t=l,c()},o=(l=0)=>{s(t+1)},a=async function*(){for(;t<e;)await n,yield{progress:t/e}}();return{[Symbol.asyncIterator](){return a},hasProgress:!0,hasTitle:!1,set:s,tick:o}}static progressViaTitle(){let e,t,i=new Promise(o=>{t=o}),n=(0,pz.default)(o=>{let a=t;i=new Promise(l=>{t=l}),e=o,a()},1e3/jve),s=async function*(){for(;;)await i,yield{title:e}}();return{[Symbol.asyncIterator](){return s},hasProgress:!1,hasTitle:!0,setTitle:n}}async startProgressPromise(e,t){let i=this.reportProgress(e);try{return await t(e)}finally{i.stop()}}startProgressSync(e,t){let i=this.reportProgress(e);try{return t(e)}finally{i.stop()}}reportInfoOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedInfos.has(n)||(this.reportedInfos.add(n),this.reportInfo(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportWarningOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedWarnings.has(n)||(this.reportedWarnings.add(n),this.reportWarning(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportErrorOnce(e,t,i){var s;let n=i&&i.key?i.key:t;this.reportedErrors.has(n)||(this.reportedErrors.add(n),this.reportError(e,t),(s=i==null?void 0:i.reportExtra)==null||s.call(i,this))}reportExceptionOnce(e){Gve(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let t=new dz.PassThrough,i=new Cz.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),t}};var kf=class{constructor(e){this.fetchers=e}supports(e,t){return!!this.tryFetcher(e,t)}getLocalPath(e,t){return this.getFetcher(e,t).getLocalPath(e,t)}async fetch(e,t){return await this.getFetcher(e,t).fetch(e,t)}tryFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));return i||null}getFetcher(e,t){let i=this.fetchers.find(n=>n.supports(e,t));if(!i)throw new rt(11,`${Ct(t.project.configuration,e)} isn't supported by any available fetcher`);return i}};var Df=class{constructor(e){this.resolvers=e.filter(t=>t)}supportsDescriptor(e,t){return!!this.tryResolverByDescriptor(e,t)}supportsLocator(e,t){return!!this.tryResolverByLocator(e,t)}shouldPersistResolution(e,t){return this.getResolverByLocator(e,t).shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.getResolverByDescriptor(e,t).getResolutionDependencies(e,t)}async getCandidates(e,t,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,t,i)}async getSatisfying(e,t,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,t,i)}async resolve(e,t){return await this.getResolverByLocator(e,t).resolve(e,t)}tryResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));return i||null}getResolverByDescriptor(e,t){let i=this.resolvers.find(n=>n.supportsDescriptor(e,t));if(!i)throw new Error(`${$t(t.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));return i||null}getResolverByLocator(e,t){let i=this.resolvers.find(n=>n.supportsLocator(e,t));if(!i)throw new Error(`${Ct(t.project.configuration,e)} isn't supported by any available resolver`);return i}};var mz=ve(zr());var Rf=/^(?!v)[a-z0-9._-]+$/i,Fw=class{supportsDescriptor(e,t){return!!(no(e.range)||Rf.test(e.range))}supportsLocator(e,t){return!!(mz.default.valid(e.reference)||Rf.test(e.reference))}shouldPersistResolution(e,t){return t.resolver.shouldPersistResolution(this.forwardLocator(e,t),t)}bindDescriptor(e,t,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),t,i)}getResolutionDependencies(e,t){return t.resolver.getResolutionDependencies(this.forwardDescriptor(e,t),t)}async getCandidates(e,t,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),t,i)}async getSatisfying(e,t,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),t,i)}async resolve(e,t){let i=await t.resolver.resolve(this.forwardLocator(e,t),t);return rC(i,e)}forwardDescriptor(e,t){return zt(e,`${t.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,t){return nn(e,`${t.project.configuration.get("defaultProtocol")}${e.reference}`)}};var Ff=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n);return t.fetcher.getLocalPath(s,t)}async fetch(e,t){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=nn(e,n),o=await t.fetcher.fetch(s,t);return await this.ensureVirtualLink(e,o,t)}getLocatorFilename(e){return xf(e)}async ensureVirtualLink(e,t,i){let n=t.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=wr.makeVirtualPath(s,o,n),l=new Qo(a,{baseFs:t.packageFs,pathUtils:v});return{...t,packageFs:l}}};var Nf=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Nf.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Nf.protocol)}supportsDescriptor(e,t){return Nf.isVirtualDescriptor(e)}supportsLocator(e,t){return Nf.isVirtualLocator(e)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,t){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,t,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,t,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,t){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},hC=Nf;hC.protocol="virtual:";var Tf=class{supports(e){return!!e.reference.startsWith(Hr.protocol)}getLocalPath(e,t){return this.getWorkspace(e,t).cwd}async fetch(e,t){let i=this.getWorkspace(e,t).cwd;return{packageFs:new jt(i),prefixPath:Te.dot,localPath:i}}getWorkspace(e,t){return t.project.getWorkspaceByCwd(e.reference.slice(Hr.protocol.length))}};var Nw={};ct(Nw,{getDefaultGlobalFolder:()=>Xk,getHomeFolder:()=>pC,isFolderInside:()=>Zk});var Vk=J("os");function Xk(){if(process.platform==="win32"){let r=K.toPortablePath(process.env.LOCALAPPDATA||K.join((0,Vk.homedir)(),"AppData","Local"));return v.resolve(r,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let r=K.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(r,"yarn/berry")}return v.resolve(pC(),".yarn/berry")}function pC(){return K.toPortablePath((0,Vk.homedir)()||"/usr/local/share")}function Zk(r,e){let t=v.relative(e,r);return t&&!t.startsWith("..")&&!v.isAbsolute(t)}var ys={};ct(ys,{availableParallelism:()=>eD,builtinModules:()=>_k,getArchitecture:()=>dC,getArchitectureName:()=>Wve,getArchitectureSet:()=>$k,openUrl:()=>Yve});var Iz=ve(J("module")),Ow=ve(J("os"));var Ez=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Yve=typeof Ez<"u"?async r=>{try{return await tD(Ez,[r],{cwd:v.cwd()}),!0}catch{return!1}}:void 0;function _k(){return new Set(Iz.default.builtinModules||Object.keys(process.binding("natives")))}var qve="/usr/bin/ldd";function Jve(){var n,s,o,a;if(process.platform==="win32")return null;let r;try{r=M.readFileSync(qve)}catch{}if(typeof r<"u"){if(r&&r.includes("GLIBC"))return"glibc";if(r&&r.includes("musl"))return"musl"}let t=(o=((s=(n=process.report)==null?void 0:n.getReport())!=null?s:{}).sharedObjects)!=null?o:[],i=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return(a=Wd(t,l=>{let c=l.match(i);if(!c)return Wd.skip;if(c[1])return"glibc";if(c[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")}))!=null?a:null}var Tw,Lw;function dC(){return Tw=Tw!=null?Tw:{os:process.platform,cpu:process.arch,libc:Jve()}}function Wve(r=dC()){return r.libc?`${r.os}-${r.cpu}-${r.libc}`:`${r.os}-${r.cpu}`}function $k(){let r=dC();return Lw=Lw!=null?Lw:{os:[r.os],cpu:[r.cpu],libc:r.libc?[r.libc]:[]}}function eD(){return"availableParallelism"in Ow.default?Ow.default.availableParallelism():Math.max(1,Ow.default.cpus().length)}var zve=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry"]),Hw="yarn_",sD=".yarnrc.yml",oD="yarn.lock",Vve="********",aD=(u=>(u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP",u))(aD||{}),Bz=Ke,rD={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:"BOOLEAN",default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:"STRING",default:null},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:Xk()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:_l},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:"STRING",default:oD},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:Uw()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:Wy,defaultText:"<dynamic>"},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:eP,defaultText:"<dynamic>"},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Mw.isCI,defaultText:"<dynamic>"},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Mw.isCI,defaultText:"<dynamic>"},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:"BOOLEAN",default:Mw.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:"<dynamic>"},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(Vy),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};function AD(r,e,t,i,n){if(i.isArray||i.type==="ANY"&&Array.isArray(t))return Array.isArray(t)?t.map((s,o)=>iD(r,`${e}[${o}]`,s,i,n)):String(t).split(/,/).map(s=>iD(r,e,s,i,n));if(Array.isArray(t))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return iD(r,e,t,i,n)}function iD(r,e,t,i,n){var a;switch(i.type){case"ANY":return t;case"SHAPE":return Xve(r,e,t,i,n);case"MAP":return Zve(r,e,t,i,n)}if(t===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)!=null&&a.includes(t))return t;let o=(()=>{if(i.type==="BOOLEAN"&&typeof t!="string")return zd(t);if(typeof t!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof t}`);let l=Wx(t,{env:process.env});switch(i.type){case"ABSOLUTE_PATH":return v.resolve(n,K.toPortablePath(l));case"LOCATOR_LOOSE":return Rc(l,!1);case"NUMBER":return parseInt(l);case"LOCATOR":return Rc(l);case"BOOLEAN":return zd(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function Xve(r,e,t,i,n){if(typeof t!="object"||Array.isArray(t))throw new we(`Object configuration settings "${e}" must be an object`);let s=lD(r,i,{ignoreArrays:!0});if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=`${e}.${o}`;if(!i.properties[o])throw new we(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,AD(r,l,a,i.properties[o],n))}return s}function Zve(r,e,t,i,n){let s=new Map;if(typeof t!="object"||Array.isArray(t))throw new we(`Map configuration settings "${e}" must be an object`);if(t===null)return s;for(let[o,a]of Object.entries(t)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,AD(r,c,a,u,n))}return s}function lD(r,e,{ignoreArrays:t=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!t)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,lD(r,s));return i}break;case"MAP":return e.isArray&&!t?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:r.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(r.projectCwd,i)):v.resolve(r.projectCwd,e.default);default:return e.default}}function Kw(r,e,t){if(e.type==="SECRET"&&typeof r=="string"&&t.hideSecrets)return Vve;if(e.type==="ABSOLUTE_PATH"&&typeof r=="string"&&t.getNativePaths)return K.fromPortablePath(r);if(e.isArray&&Array.isArray(r)){let i=[];for(let n of r)i.push(Kw(n,e,t));return i}if(e.type==="MAP"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries())i.set(n,Kw(s,e.valueDefinition,t));return i}if(e.type==="SHAPE"&&r instanceof Map){let i=new Map;for(let[n,s]of r.entries()){let o=e.properties[n];i.set(n,Kw(s,o,t))}return i}return r}function _ve(){let r={};for(let[e,t]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(Hw)&&(e=(0,yz.default)(e.slice(Hw.length)),r[e]=t);return r}function Uw(){let r=`${Hw}rc_filename`;for(let[e,t]of Object.entries(process.env))if(e.toLowerCase()===r&&typeof t=="string")return t;return sD}var cD=(i=>(i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE",i))(cD||{}),ja=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,t,i){let n=new ja(e);typeof t<"u"&&!(t instanceof Map)&&(n.projectCwd=t),n.importSettings(rD);let s=typeof i<"u"?i:t instanceof Map?t:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,t,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=_ve();delete a.rcFilename;let l=await ja.findRcFiles(e),c=await ja.findHomeRcFile();if(c){let B=l.find(S=>S.path===c.path);B?B.strict=!1:l.push({...c,strict:!1})}let u=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F})=>({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F}),g=({ignoreCwd:B,yarnPath:S,ignorePath:P,lockfileFilename:F,...H})=>H,h=new ja(e);h.importSettings(u(rD)),h.useWithSource("<environment>",u(a),e,{strict:!1});for(let{path:B,cwd:S,data:P}of l)h.useWithSource(B,u(P),S,{strict:!1});if(s){let B=h.get("yarnPath"),S=h.get("ignorePath");if(B!==null&&!S)return h}let p=h.get("lockfileFilename"),d;switch(i){case 0:d=await ja.findProjectCwd(e,p);break;case 1:d=await ja.findProjectCwd(e,null);break;case 2:M.existsSync(v.join(e,"package.json"))?d=v.resolve(e):d=null;break}h.startingCwd=e,h.projectCwd=d,h.importSettings(g(rD));let m=new Map([["@@core",D8]]),y=B=>"default"in B?B.default:B;if(t!==null){for(let F of t.plugins.keys())m.set(F,y(t.modules.get(F)));let B=new Map;for(let F of _k())B.set(F,()=>mf(F));for(let[F,H]of t.modules)B.set(F,()=>H);let S=new Set,P=async(F,H)=>{let{factory:q,name:_}=mf(F);if(S.has(_))return;let X=new Map(B),W=A=>{if(X.has(A))return X.get(A)();throw new we(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},Z=await df(async()=>y(await q(W)),A=>`${A} (when initializing ${_}, defined in ${H})`);B.set(_,()=>Z),S.add(_),m.set(_,Z)};if(a.plugins)for(let F of a.plugins.split(";")){let H=v.resolve(e,K.toPortablePath(F));await P(H,"<environment>")}for(let{path:F,cwd:H,data:q}of l)if(!!o&&!!Array.isArray(q.plugins))for(let _ of q.plugins){let X=typeof _!="string"?_.path:_,W=v.resolve(H,K.toPortablePath(X));await P(W,F)}}for(let[B,S]of m)h.activatePlugin(B,S);h.useWithSource("<environment>",g(a),e,{strict:n});for(let{path:B,cwd:S,data:P,strict:F}of l)h.useWithSource(B,g(P),S,{strict:F!=null?F:n});return h.get("enableGlobalCache")&&(h.values.set("cacheFolder",`${h.get("globalFolder")}/cache`),h.sources.set("cacheFolder","<internal>")),await h.refreshPackageExtensions(),h}static async findRcFiles(e){let t=Uw(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,t);if(M.existsSync(o)){let a=await M.readFilePromise(o,"utf8"),l;try{l=wi(a)}catch{let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new we(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=Uw(),t=pC(),i=v.join(t,e);if(M.existsSync(i)){let n=await M.readFilePromise(i,"utf8"),s=wi(n);return{path:i,cwd:t,data:s}}return null}static async findProjectCwd(e,t){let i=null,n=e,s=null;for(;n!==s;){if(s=n,M.existsSync(v.join(s,"package.json"))&&(i=s),t!==null){if(M.existsSync(v.join(s,t))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,t){let i=Uw(),n=v.join(e,i),s=M.existsSync(n)?wi(await M.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof t=="function"){try{a=t(s)}catch{a=t({})}if(a===s)return}else{a=s;for(let l of Object.keys(t)){let c=s[l],u=t[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await M.changeFilePromise(n,Qa(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let t=pC();return await ja.updateConfiguration(t,e)}activatePlugin(e,t){this.plugins.set(e,t),typeof t.configuration<"u"&&this.importSettings(t.configuration)}importSettings(e){for(let[t,i]of Object.entries(e))if(i!=null){if(this.settings.has(t))throw new Error(`Cannot redefine settings "${t}"`);this.settings.set(t,i),this.values.set(t,lD(this,i))}}useWithSource(e,t,i,n){try{this.use(e,t,i,n)}catch(s){throw s.message+=` (in ${_e(this,e,Ke.PATH)})`,s}}use(e,t,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(t)]){if(typeof t[o]>"u"||o==="plugins"||e==="<environment>"&&zve.has(o))continue;if(o==="rcFilename")throw new we(`The rcFilename settings can only be set via ${`${Hw}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new we(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type==="MAP"||l.isArray&&l.concatenateValues))continue;let c;try{c=AD(this,o,t[o],l,i)}catch(u){throw u.message+=` in ${_e(this,e,Ke.PATH)}`,u}if(o==="enableStrictSettings"&&e!=="<environment>"){n=c;continue}if(l.type==="MAP"){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:t=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s>"u")throw new we(`Couldn't find a configuration settings named "${e}"`);return Kw(n,s,{hideSecrets:t,getNativePaths:i})}getSubprocessStreams(e,{header:t,prefix:i,report:n}){let s,o,a=M.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${_e(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${_e(this,"STDERR","red")}`);s=new nD.PassThrough,s.pipe(l),s.pipe(a),o=new nD.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof t<"u"&&s.write(`${t} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let t of this.plugins.values())for(let i of t.resolvers||[])e.push(new i);return new Df([new hC,new Hr,new Fw,...e])}makeFetcher(){let e=[];for(let t of this.plugins.values())for(let i of t.fetchers||[])e.push(new i);return new kf([new Ff,new Tf,...e])}getLinkers(){let e=[];for(let t of this.plugins.values())for(let i of t.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=dC(),t=this.get("supportedArchitectures"),i=t.get("os");i!==null&&(i=i.map(o=>o==="current"?e.os:o));let n=t.get("cpu");n!==null&&(n=n.map(o=>o==="current"?e.cpu:o));let s=t.get("libc");return s!==null&&(s=Uo(s,o=>{var a;return o==="current"?(a=e.libc)!=null?a:Uo.skip:o})),{os:i,cpu:n,libc:s}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,t=(i,n,{userProvided:s=!1}={})=>{if(!no(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new ot;o.load(n,{yamlCompatibilityMode:!0});let a=hf(e,i.identHash),l=[];a.push([i.range,l]);let c={status:"inactive",userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push({...c,type:"Dependency",descriptor:u});for(let u of o.peerDependencies.values())l.push({...c,type:"PeerDependency",descriptor:u});for(let[u,g]of o.peerDependenciesMeta)for(let[h,p]of Object.entries(g))l.push({...c,type:"PeerDependencyMeta",selector:u,key:h,value:p})};await this.triggerHook(i=>i.registerPackageExtensions,this,t);for(let[i,n]of this.get("packageExtensions"))t(JA(i,!0),qy(n),{userProvided:!0})}normalizePackage(e){let t=iC(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i<"u"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!Fc(s,o))for(let l of a)switch(l.status==="inactive"&&(l.status="redundant"),l.type){case"Dependency":typeof t.dependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.dependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependency":typeof t.peerDependencies.get(l.descriptor.identHash)>"u"&&(l.status="active",t.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case"PeerDependencyMeta":{let c=t.peerDependenciesMeta.get(l.selector);(typeof c>"u"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status="active",La(t.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:qx(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of t.peerDependenciesMeta.keys()){let o=tn(s);t.peerDependencies.has(o.identHash)||t.peerDependencies.set(o.identHash,zt(o,"*"))}for(let s of t.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=qo("types",o),l=Tt(a);t.peerDependencies.has(a.identHash)||t.peerDependenciesMeta.has(l)||(t.peerDependencies.set(a.identHash,zt(a,"*")),t.peerDependenciesMeta.set(l,{optional:!0}))}return t.dependencies=new Map(Qn(t.dependencies,([,s])=>vn(s))),t.peerDependencies=new Map(Qn(t.peerDependencies,([,s])=>vn(s))),t}getLimit(e){return La(this.limits,e,()=>(0,wz.default)(this.get(e)))}async triggerHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...t)}}async triggerMultipleHooks(e,t){for(let i of t)await this.triggerHook(e,...i)}async reduceHook(e,t,...i){let n=t;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...t){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...t);if(typeof o<"u")return o}return null}},Ee=ja;Ee.telemetry=null;var hD=(i=>(i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always",i))(hD||{}),CC=class extends rt{constructor({fileName:t,code:i,signal:n}){let s=Ee.create(v.cwd()),o=_e(s,t,Ke.PATH);super(1,`Child ${o} reported an error`,a=>{exe(i,n,{configuration:s,report:a})});this.code=pD(i,n)}},jw=class extends CC{constructor({fileName:t,code:i,signal:n,stdout:s,stderr:o}){super({fileName:t,code:i,signal:n});this.stdout=s,this.stderr=o}};function Lc(r){return r!==null&&typeof r.fd=="number"}var Oc=new Set;function uD(){}function gD(){for(let r of Oc)r.kill()}async function so(r,e,{cwd:t,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":Lc(s)&&(c[0]=s),Lc(o)&&(c[1]=o),Lc(a)&&(c[2]=a);let u=(0,fD.default)(r,e,{cwd:K.fromPortablePath(t),env:{...i,PWD:K.fromPortablePath(t)},stdio:c});Oc.add(u),Oc.size===1&&(process.on("SIGINT",uD),process.on("SIGTERM",gD)),!Lc(s)&&s!==null&&s.pipe(u.stdin),Lc(o)||u.stdout.pipe(o,{end:!1}),Lc(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let h of new Set([o,a]))Lc(h)||h.end()};return new Promise((h,p)=>{u.on("error",d=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1)&&g(),p(d)}),u.on("close",(d,m)=>{Oc.delete(u),Oc.size===0&&(process.off("SIGINT",uD),process.off("SIGTERM",gD)),(l===2||l===1&&d!==0)&&g(),d===0||!n?h({code:pD(d,m)}):p(new CC({fileName:r,code:d,signal:m}))})})}async function tD(r,e,{cwd:t,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=K.fromPortablePath(t);typeof i.PWD<"u"&&(i={...i,PWD:c});let u=(0,fD.default)(r,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,h)=>{u.on("error",p=>{let d=Ee.create(t),m=_e(d,r,Ke.PATH);h(new rt(1,`Process ${m} failed to spawn`,y=>{y.reportError(1,` ${Ho(d,{label:"Thrown Error",value:io(Ke.NO_HINT,p.message)})}`)}))}),u.on("close",(p,d)=>{let m=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),y=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);p===0||!s?g({code:pD(p,d),stdout:m,stderr:y}):h(new jw({fileName:r,code:p,signal:d,stdout:m,stderr:y}))})})}var $ve=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function pD(r,e){let t=$ve.get(e);return typeof t<"u"?128+t:r!=null?r:1}function exe(r,e,{configuration:t,report:i}){i.reportError(1,` ${Ho(t,r!==null?{label:"Exit Code",value:io(Ke.NUMBER,r)}:{label:"Exit Signal",value:io(Ke.CODE,e)})}`)}var Vt={};ct(Vt,{Method:()=>n9,RequestError:()=>s9.RequestError,del:()=>fDe,get:()=>uDe,getNetworkSettings:()=>i9,post:()=>DR,put:()=>gDe,request:()=>xC});var e9=ve(dB()),t9=J("https"),r9=J("http"),kR=ve(bn()),PR=ve(X6()),CB=J("url");var s9=ve(dB()),Z6=new Map,_6=new Map,ADe=new r9.Agent({keepAlive:!0}),lDe=new t9.Agent({keepAlive:!0});function $6(r){let e=new CB.URL(r),t={host:e.hostname,headers:{}};return e.port&&(t.port=Number(e.port)),e.username&&e.password&&(t.proxyAuth=`${e.username}:${e.password}`),{proxy:t}}async function xR(r){return La(_6,r,()=>M.readFilePromise(r).then(e=>(_6.set(r,e),e)))}function cDe({statusCode:r,statusMessage:e},t){let i=_e(t,r,Ke.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${r}`;return If(t,`${i}${e?` (${e})`:""}`,n)}async function mB(r,{configuration:e,customErrorMessage:t}){var i,n;try{return await r}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=t==null?void 0:t(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof e9.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${_e(e,"httpTimeout",Ke.SETTING)})`);let a=new rt(35,o,l=>{s.response&&l.reportError(35,` ${Ho(e,{label:"Response Code",value:io(Ke.NO_HINT,cDe(s.response,e))})}`),s.request&&(l.reportError(35,` ${Ho(e,{label:"Request Method",value:io(Ke.NO_HINT,s.request.options.method)})}`),l.reportError(35,` ${Ho(e,{label:"Request URL",value:io(Ke.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(35,` ${Ho(e,{label:"Request Redirects",value:io(Ke.NO_HINT,tP(e,s.request.redirects,Ke.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(35,` ${Ho(e,{label:"Request Retry Count",value:io(Ke.NO_HINT,`${_e(e,s.request.retryCount,Ke.NUMBER)} (can be increased via ${_e(e,"httpRetry",Ke.SETTING)})`)})}`)});throw a.originalError=s,a}}function i9(r,e){let t=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},n=Object.keys(i),s=typeof r=="string"?new CB.URL(r):r;for(let[o,a]of t)if(kR.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]>"u"&&(i[l]=c)}for(let o of n)typeof i[o]>"u"&&(i[o]=e.configuration.get(o));return i}var n9=(n=>(n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE",n))(n9||{});async function xC(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=async()=>await hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o});return await(await t.reduceHook(c=>c.wrapNetworkRequest,a,{target:r,body:e,configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o}))()}async function uDe(r,{configuration:e,jsonResponse:t,...i}){let n=La(Z6,r,()=>mB(xC(r,null,{configuration:e,...i}),{configuration:e}).then(s=>(Z6.set(r,s.body),s.body)));return Buffer.isBuffer(n)===!1&&(n=await n),t?JSON.parse(n.toString()):n}async function gDe(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"PUT"}),i)).body}async function DR(r,e,{customErrorMessage:t,...i}){return(await mB(xC(r,e,{...i,method:"POST"}),i)).body}async function fDe(r,{customErrorMessage:e,...t}){return(await mB(xC(r,null,{...t,method:"DELETE"}),t)).body}async function hDe(r,e,{configuration:t,headers:i,jsonRequest:n,jsonResponse:s,method:o="GET"}){let a=typeof r=="string"?new CB.URL(r):r,l=i9(a,{configuration:t});if(l.enableNetwork===!1)throw new rt(80,`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!kR.default.isMatch(a.hostname,t.get("unsafeHttpWhitelist")))throw new rt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?PR.default.httpOverHttp($6(l.httpProxy)):ADe,https:l.httpsProxy?PR.default.httpsOverHttp($6(l.httpsProxy)):lDe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=t.get("httpTimeout"),h=t.get("httpRetry"),p=t.get("enableStrictSsl"),d=l.caFilePath,m=l.httpsCertFilePath,y=l.httpsKeyFilePath,{default:B}=await Promise.resolve().then(()=>ve(dB())),S=d?await xR(d):void 0,P=m?await xR(m):void 0,F=y?await xR(y):void 0,H=B.extend({timeout:{socket:g},retry:h,https:{rejectUnauthorized:p,certificateAuthority:S,certificate:P,key:F},...u});return t.getLimit("networkConcurrency")(()=>H(a))}var Yt={};ct(Yt,{PackageManager:()=>CV,detectPackageManager:()=>mV,executePackageAccessibleBinary:()=>BV,executePackageScript:()=>NB,executePackageShellcode:()=>JR,executeWorkspaceAccessibleBinary:()=>FRe,executeWorkspaceLifecycleScript:()=>yV,executeWorkspaceScript:()=>IV,getPackageAccessibleBinaries:()=>TB,getWorkspaceAccessibleBinaries:()=>wV,hasPackageScript:()=>kRe,hasWorkspaceScript:()=>WR,isNodeScript:()=>zR,makeScriptEnv:()=>NC,maybeExecuteWorkspaceLifecycleScript:()=>RRe,prepareExternalProject:()=>PRe});var PC={};ct(PC,{getLibzipPromise:()=>an,getLibzipSync:()=>u9});var c9=ve(a9());var Wa=["number","number"],A9=(N=>(N[N.ZIP_ER_OK=0]="ZIP_ER_OK",N[N.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",N[N.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",N[N.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",N[N.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",N[N.ZIP_ER_READ=5]="ZIP_ER_READ",N[N.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",N[N.ZIP_ER_CRC=7]="ZIP_ER_CRC",N[N.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",N[N.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",N[N.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",N[N.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",N[N.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",N[N.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",N[N.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",N[N.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",N[N.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",N[N.ZIP_ER_EOF=17]="ZIP_ER_EOF",N[N.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",N[N.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",N[N.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",N[N.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",N[N.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",N[N.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",N[N.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",N[N.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",N[N.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",N[N.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",N[N.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",N[N.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",N[N.ZIP_ER_TELL=30]="ZIP_ER_TELL",N[N.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",N))(A9||{}),l9=r=>({get HEAP8(){return r.HEAP8},get HEAPU8(){return r.HEAPU8},errors:A9,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:r._malloc(1),uint16S:r._malloc(2),uint32S:r._malloc(4),uint64S:r._malloc(8),malloc:r._malloc,free:r._free,getValue:r.getValue,open:r.cwrap("zip_open","number",["string","number","number"]),openFromSource:r.cwrap("zip_open_from_source","number",["number","number","number"]),close:r.cwrap("zip_close","number",["number"]),discard:r.cwrap("zip_discard",null,["number"]),getError:r.cwrap("zip_get_error","number",["number"]),getName:r.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:r.cwrap("zip_get_num_entries","number",["number","number"]),delete:r.cwrap("zip_delete","number",["number","number"]),stat:r.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:r.cwrap("zip_stat_index","number",["number",...Wa,"number","number"]),fopen:r.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:r.cwrap("zip_fopen_index","number",["number",...Wa,"number"]),fread:r.cwrap("zip_fread","number",["number","number","number","number"]),fclose:r.cwrap("zip_fclose","number",["number"]),dir:{add:r.cwrap("zip_dir_add","number",["number","string"])},file:{add:r.cwrap("zip_file_add","number",["number","string","number","number"]),getError:r.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:r.cwrap("zip_file_get_external_attributes","number",["number",...Wa,"number","number","number"]),setExternalAttributes:r.cwrap("zip_file_set_external_attributes","number",["number",...Wa,"number","number","number"]),setMtime:r.cwrap("zip_file_set_mtime","number",["number",...Wa,"number","number"]),setCompression:r.cwrap("zip_set_file_compression","number",["number",...Wa,"number","number"])},ext:{countSymlinks:r.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:r.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:r.cwrap("zip_error_strerror","string",["number"])},name:{locate:r.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:r.cwrap("zip_source_buffer_create","number",["number",...Wa,"number","number"]),fromBuffer:r.cwrap("zip_source_buffer","number",["number","number",...Wa,"number"]),free:r.cwrap("zip_source_free",null,["number"]),keep:r.cwrap("zip_source_keep",null,["number"]),open:r.cwrap("zip_source_open","number",["number"]),close:r.cwrap("zip_source_close","number",["number"]),seek:r.cwrap("zip_source_seek","number",["number",...Wa,"number"]),tell:r.cwrap("zip_source_tell","number",["number"]),read:r.cwrap("zip_source_read","number",["number","number","number"]),error:r.cwrap("zip_source_error","number",["number"]),setMtime:r.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:r.cwrap("zipstruct_stat","number",[]),statS:r.cwrap("zipstruct_statS","number",[]),statName:r.cwrap("zipstruct_stat_name","string",["number"]),statIndex:r.cwrap("zipstruct_stat_index","number",["number"]),statSize:r.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:r.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:r.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:r.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:r.cwrap("zipstruct_stat_crc","number",["number"]),error:r.cwrap("zipstruct_error","number",[]),errorS:r.cwrap("zipstruct_errorS","number",[]),errorCodeZip:r.cwrap("zipstruct_error_code_zip","number",["number"])}});var NR=null;function u9(){return NR===null&&(NR=l9((0,c9.default)())),NR}async function an(){return u9()}var FC={};ct(FC,{ShellError:()=>zn,execute:()=>vB,globUtils:()=>wB});var Q9=ve(wx()),S9=J("os"),Vn=J("stream"),v9=J("util");var zn=class extends Error{constructor(e){super(e),this.name="ShellError"}};var wB={};ct(wB,{fastGlobOptions:()=>h9,isBraceExpansion:()=>TR,isGlobPattern:()=>pDe,match:()=>dDe,micromatchOptions:()=>yB});var g9=ve(pw()),f9=ve(J("fs")),IB=ve(bn()),yB={strictBrackets:!0},h9={onlyDirectories:!1,onlyFiles:!1};function pDe(r){if(!IB.default.scan(r,yB).isGlob)return!1;try{IB.default.parse(r,yB)}catch{return!1}return!0}function dDe(r,{cwd:e,baseFs:t}){return(0,g9.default)(r,{...h9,cwd:K.fromPortablePath(e),fs:aI(f9.default,new vg(t))})}function TR(r){return IB.default.scan(r,yB).isBrace}var d9=ve(TS()),zo=J("stream"),C9=J("string_decoder");var Uc=new Set;function LR(){}function OR(){for(let r of Uc)r.kill()}function m9(r,e,t,i){return n=>{let s=n[0]instanceof zo.Transform?"pipe":n[0],o=n[1]instanceof zo.Transform?"pipe":n[1],a=n[2]instanceof zo.Transform?"pipe":n[2],l=(0,d9.default)(r,e,{...i,stdio:[s,o,a]});return Uc.add(l),Uc.size===1&&(process.on("SIGINT",LR),process.on("SIGTERM",OR)),n[0]instanceof zo.Transform&&n[0].pipe(l.stdin),n[1]instanceof zo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof zo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),u.code){case"ENOENT":n[2].write(`command not found: ${r} -`),c(127);break;case"EACCES":n[2].write(`permission denied: ${r} -`),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("close",u=>{Uc.delete(l),Uc.size===0&&(process.off("SIGINT",LR),process.off("SIGTERM",OR)),c(u!==null?u:129)})})}}}function E9(r){return e=>{let t=e[0]==="pipe"?new zo.PassThrough:e[0];return{stdin:t,promise:Promise.resolve().then(()=>r({stdin:t,stdout:e[1],stderr:e[2]}))}}}var Qs=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},MR=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},zf=class{constructor(e,t){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=t}static start(e,{stdin:t,stdout:i,stderr:n}){let s=new zf(null,e);return s.stdin=t,s.stdout=i,s.stderr=n,s}pipeTo(e,t=1){let i=new zf(this,e),n=new MR;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(t&1)===1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(t&2)===2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let t;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");t=this.stdout,e[1]=t.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(t.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function BB(r,e){return zf.start(r,e)}function p9(r,e=null){let t=new zo.PassThrough,i=new C9.StringDecoder,n="";return t.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substring(0,a);o=o.substring(a+1),n="",r(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),t.on("end",()=>{let s=i.end();s!==""&&r(e!==null?`${e} ${s}`:s)}),t}function I9(r,{prefix:e}){return{stdout:p9(t=>r.stdout.write(`${t} -`),r.stdout.isTTY?e:null),stderr:p9(t=>r.stderr.write(`${t} -`),r.stderr.isTTY?e:null)}}var CDe=(0,v9.promisify)(setTimeout);function y9(r,e,t){let i=new Vn.PassThrough({autoDestroy:!0});switch(r){case 0:(e&1)===1&&t.stdin.pipe(i,{end:!1}),(e&2)===2&&t.stdin instanceof Vn.Writable&&i.pipe(t.stdin,{end:!1});break;case 1:(e&1)===1&&t.stdout.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stdout,{end:!1});break;case 2:(e&1)===1&&t.stderr.pipe(i,{end:!1}),(e&2)===2&&i.pipe(t.stderr,{end:!1});break;default:throw new zn(`Bad file descriptor: "${r}"`)}return i}function QB(r,e={}){let t={...r,...e};return t.environment={...r.environment,...e.environment},t.variables={...r.variables,...e.variables},t}var mDe=new Map([["cd",async([r=(0,S9.homedir)(),...e],t,i)=>{let n=v.resolve(i.cwd,K.toPortablePath(r));if(!(await t.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new zn(`cd: no such file or directory: ${r}`):o})).isDirectory())throw new zn(`cd: not a directory: ${r}`);return i.cwd=n,0}],["pwd",async(r,e,t)=>(t.stdout.write(`${K.fromPortablePath(t.cwd)} -`),0)],[":",async(r,e,t)=>0],["true",async(r,e,t)=>0],["false",async(r,e,t)=>1],["exit",async([r,...e],t,i)=>i.exitCode=parseInt(r!=null?r:i.variables["?"],10)],["echo",async(r,e,t)=>(t.stdout.write(`${r.join(" ")} -`),0)],["sleep",async([r],e,t)=>{if(typeof r>"u")throw new zn("sleep: missing operand");let i=Number(r);if(Number.isNaN(i))throw new zn(`sleep: invalid time interval '${r}'`);return await CDe(1e3*i,0)}],["__ysh_run_procedure",async(r,e,t)=>{let i=t.procedures[r[0]];return await BB(i,{stdin:new Qs(t.stdin),stdout:new Qs(t.stdout),stderr:new Qs(t.stderr)}).run()}],["__ysh_set_redirects",async(r,e,t)=>{let i=t.stdin,n=t.stdout,s=t.stderr,o=[],a=[],l=[],c=0;for(;r[c]!=="--";){let g=r[c++],{type:h,fd:p}=JSON.parse(g),d=S=>{switch(p){case null:case 0:o.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},m=S=>{switch(p){case null:case 1:a.push(S);break;case 2:l.push(S);break;default:throw new Error(`Unsupported file descriptor: "${p}"`)}},y=Number(r[c++]),B=c+y;for(let S=c;S<B;++c,++S)switch(h){case"<":d(()=>e.baseFs.createReadStream(v.resolve(t.cwd,K.toPortablePath(r[S]))));break;case"<<<":d(()=>{let P=new Vn.PassThrough;return process.nextTick(()=>{P.write(`${r[S]} -`),P.end()}),P});break;case"<&":d(()=>y9(Number(r[S]),1,t));break;case">":case">>":{let P=v.resolve(t.cwd,K.toPortablePath(r[S]));m(P==="/dev/null"?new Vn.Writable({autoDestroy:!0,emitClose:!0,write(F,H,q){setImmediate(q)}}):e.baseFs.createWriteStream(P,h===">>"?{flags:"a"}:void 0))}break;case">&":m(y9(Number(r[S]),2,t));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${h}"`)}}if(o.length>0){let g=new Vn.PassThrough;i=g;let h=p=>{if(p===o.length)g.end();else{let d=o[p]();d.pipe(g,{end:!1}),d.on("end",()=>{h(p+1)})}};h(0)}if(a.length>0){let g=new Vn.PassThrough;n=g;for(let h of a)g.pipe(h)}if(l.length>0){let g=new Vn.PassThrough;s=g;for(let h of l)g.pipe(h)}let u=await BB(DC(r.slice(c+1),e,t),{stdin:new Qs(i),stdout:new Qs(n),stderr:new Qs(s)}).run();return await Promise.all(a.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),await Promise.all(l.map(g=>new Promise((h,p)=>{g.on("error",d=>{p(d)}),g.on("close",()=>{h()}),g.end()}))),u}]]);async function EDe(r,e,t){let i=[],n=new Vn.PassThrough;return n.on("data",s=>i.push(s)),await SB(r,e,QB(t,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function w9(r,e,t){let i=r.map(async s=>{let o=await Hc(s.args,e,t);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function bB(r){return r.match(/[^ \r\n\t]+/g)||[]}async function x9(r,e,t,i,n=i){switch(r.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(r.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=bB(s);for(let a=0;a<o.length-1;++a)n(o[a]);i(o[o.length-1])}break;case"*":{let s=e.args.join(" ");if(r.quoted)i(s);else for(let o of bB(s))n(o)}break;case"PPID":i(String(process.ppid));break;case"RANDOM":i(String(Math.floor(Math.random()*32768)));break;default:{let s=parseInt(r.name,10),o,a=Number.isFinite(s);if(a?s>=0&&s<e.args.length&&(o=e.args[s]):Object.prototype.hasOwnProperty.call(t.variables,r.name)?o=t.variables[r.name]:Object.prototype.hasOwnProperty.call(t.environment,r.name)&&(o=t.environment[r.name]),typeof o<"u"&&r.alternativeValue?o=(await Hc(r.alternativeValue,e,t)).join(" "):typeof o>"u"&&(r.defaultValue?o=(await Hc(r.defaultValue,e,t)).join(" "):r.alternativeValue&&(o="")),typeof o>"u")throw a?new zn(`Unbound argument #${s}`):new zn(`Unbound variable "${r.name}"`);if(r.quoted)i(o);else{let l=bB(o);for(let u=0;u<l.length-1;++u)n(l[u]);let c=l[l.length-1];typeof c<"u"&&i(c)}}break}}var IDe={addition:(r,e)=>r+e,subtraction:(r,e)=>r-e,multiplication:(r,e)=>r*e,division:(r,e)=>Math.trunc(r/e)};async function kC(r,e,t){if(r.type==="number"){if(Number.isInteger(r.value))return r.value;throw new Error(`Invalid number: "${r.value}", only integers are allowed`)}else if(r.type==="variable"){let i=[];await x9({...r,quoted:!0},e,t,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?kC({type:"variable",name:i.join(" ")},e,t):kC({type:"number",value:n},e,t)}else return IDe[r.type](await kC(r.left,e,t),await kC(r.right,e,t))}async function Hc(r,e,t){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,h)=>{let p=JSON.stringify({type:u,fd:g}),d=i.get(p);typeof d>"u"&&i.set(p,d=[]),d.push(h)};for(let u of r){let g=!1;switch(u.type){case"redirection":{let h=await Hc(u.args,e,t);for(let p of h)c(u.subtype,u.fd,p)}break;case"argument":for(let h of u.segments)switch(h.type){case"text":o(h.text);break;case"glob":o(h.pattern),g=!0;break;case"shell":{let p=await EDe(h.shell,e,t);if(h.quoted)o(p);else{let d=bB(p);for(let m=0;m<d.length-1;++m)l(d[m]);o(d[d.length-1])}}break;case"variable":await x9(h,e,t,o,l);break;case"arithmetic":o(String(await kC(h.arithmetic,e,t)));break}break}if(a(),g){let h=n.pop();if(typeof h>"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let p=await e.glob.match(h,{cwd:t.cwd,baseFs:e.baseFs});if(p.length===0){let d=TR(h)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new zn(`No matches found: "${h}"${d}`)}for(let d of p.sort())l(d)}}if(i.size>0){let u=[];for(let[g,h]of i.entries())u.splice(u.length,0,g,String(h.length),...h);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function DC(r,e,t){e.builtins.has(r[0])||(r=["command",...r]);let i=K.fromPortablePath(t.cwd),n=t.environment;typeof n.PWD<"u"&&(n={...n,PWD:i});let[s,...o]=r;if(s==="command")return m9(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a>"u")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return E9(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:h,stderr:p}=t;t.stdin=l,t.stdout=c,t.stderr=u;try{return await a(o,e,t)}finally{t.stdin=g,t.stdout=h,t.stderr=p}})}function yDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,QB(t,{stdin:n}));return{stdin:n,promise:s}}}function wDe(r,e,t){return i=>{let n=new Vn.PassThrough,s=SB(r,e,t);return{stdin:n,promise:s}}}function B9(r,e,t,i){if(e.length===0)return r;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures={...i.procedures},i.procedures[n]=r,DC([...e,"__ysh_run_procedure",n],t,i)}}async function b9(r,e,t){let i=r,n=null,s=null;for(;i;){let o=i.then?{...t}:t,a;switch(i.type){case"command":{let l=await Hc(i.args,e,t),c=await w9(i.envs,e,t);a=i.envs.length?DC(l,e,QB(o,{environment:c})):DC(l,e,o)}break;case"subshell":{let l=await Hc(i.args,e,t),c=yDe(i.subshell,e,o);a=B9(c,l,e,o)}break;case"group":{let l=await Hc(i.args,e,t),c=wDe(i.group,e,o);a=B9(c,l,e,o)}break;case"envs":{let l=await w9(i.envs,e,t);o.environment={...o.environment,...l},a=DC(["true"],e,o)}break}if(typeof a>"u")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=BB(a,{stdin:new Qs(o.stdin),stdout:new Qs(o.stdout),stderr:new Qs(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,1);break;case"|&":s=s.pipeTo(a,3);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function BDe(r,e,t,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return Q9.default.hex(a)}if(i){let s=t.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=I9(t,{prefix:l});return t.backgroundJobs.push(b9(r,e,QB(t,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} -`)).finally(()=>{t.stdout.isTTY&&t.stdout.write(`Job ${l}, '${o(Fg(r))}' has ended -`)})),0}return await b9(r,e,t)}async function bDe(r,e,t,{background:i=!1}={}){let n,s=a=>{n=a,t.variables["?"]=String(a)},o=async a=>{try{return await BDe(a.chain,e,t,{background:i&&typeof a.then>"u"})}catch(l){if(!(l instanceof zn))throw l;return t.stderr.write(`${l.message} -`),1}};for(s(await o(r));r.then;){if(t.exitCode!==null)return t.exitCode;switch(r.then.type){case"&&":n===0&&s(await o(r.then.line));break;case"||":n!==0&&s(await o(r.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${r.then.type}"`)}r=r.then.line}return n}async function SB(r,e,t){let i=t.backgroundJobs;t.backgroundJobs=[];let n=0;for(let{command:s,type:o}of r){if(n=await bDe(s,e,t,{background:o==="&"}),t.exitCode!==null)return t.exitCode;t.variables["?"]=String(n)}return await Promise.all(t.backgroundJobs),t.backgroundJobs=i,n}function P9(r){switch(r.type){case"variable":return r.name==="@"||r.name==="#"||r.name==="*"||Number.isFinite(parseInt(r.name,10))||"defaultValue"in r&&!!r.defaultValue&&r.defaultValue.some(e=>RC(e))||"alternativeValue"in r&&!!r.alternativeValue&&r.alternativeValue.some(e=>RC(e));case"arithmetic":return KR(r.arithmetic);case"shell":return UR(r.shell);default:return!1}}function RC(r){switch(r.type){case"redirection":return r.args.some(e=>RC(e));case"argument":return r.segments.some(e=>P9(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${r.type}"`)}}function KR(r){switch(r.type){case"variable":return P9(r);case"number":return!1;default:return KR(r.left)||KR(r.right)}}function UR(r){return r.some(({command:e})=>{for(;e;){let t=e.chain;for(;t;){let i;switch(t.type){case"subshell":i=UR(t.subshell);break;case"command":i=t.envs.some(n=>n.args.some(s=>RC(s)))||t.args.some(n=>RC(n));break}if(i)return!0;if(!t.then)break;t=t.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function vB(r,e=[],{baseFs:t=new Zt,builtins:i={},cwd:n=K.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=wB}={}){let g={};for(let[d,m]of Object.entries(s))typeof m<"u"&&(g[d]=m);let h=new Map(mDe);for(let[d,m]of Object.entries(i))h.set(d,m);o===null&&(o=new Vn.PassThrough,o.end());let p=cI(r,u);if(!UR(p)&&p.length>0&&e.length>0){let{command:d}=p[p.length-1];for(;d.then;)d=d.then.line;let m=d.chain;for(;m.then;)m=m.then.chain;m.type==="command"&&(m.args=m.args.concat(e.map(y=>({type:"argument",segments:[{type:"text",text:y}]}))))}return await SB(p,{args:e,baseFs:t,builtins:h,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var pV=ve(xB()),dV=ve(Jg()),el=J("stream");var fV=ve(lV()),RB=ve(cc());var cV=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],uV=80,wRe=new Set([13,19]),BRe=5,DB=RB.default.GITHUB_ACTIONS?{start:r=>`::group::${r} -`,end:r=>`::endgroup:: -`}:RB.default.TRAVIS?{start:r=>`travis_fold:start:${r} -`,end:r=>`travis_fold:end:${r} -`}:RB.default.GITLAB?{start:r=>`section_start:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${r} -`,end:r=>`section_end:${Math.floor(Date.now()/1e3)}:${r.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,gV=new Date,bRe=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,QRe=r=>r,FB=QRe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),SRe=bRe&&Object.keys(FB).find(r=>{let e=FB[r];return!(e.date&&(e.date[0]!==gV.getDate()||e.date[1]!==gV.getMonth()+1))})||"default";function hV(r,{configuration:e,json:t}){if(!e.get("enableMessageNames"))return"";let n=RA(r===null?0:r);return!t&&r===null?_e(e,n,"grey"):n}function qR(r,{configuration:e,json:t}){let i=hV(r,{configuration:e,json:t});if(!i||r===null||r===0)return i;let n=dt[r],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return If(e,i,s)}var He=class extends xi{constructor({configuration:t,stdout:i,json:n=!1,includePrefix:s=!0,includeFooter:o=!0,includeLogs:a=!n,includeInfos:l=a,includeWarnings:c=a,forgettableBufferSize:u=BRe,forgettableNames:g=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errors=[];this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;this.forgettableLines=[];if(Zd(this,{configuration:t}),this.configuration=t,this.forgettableBufferSize=u,this.forgettableNames=new Set([...g,...wRe]),this.includePrefix=s,this.includeFooter=o,this.includeInfos=l,this.includeWarnings=c,this.json=n,this.stdout=i,t.get("enableProgressBars")&&!n&&i.isTTY&&i.columns>22){let h=t.get("progressBarStyle")||SRe;if(!Object.prototype.hasOwnProperty.call(FB,h))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=FB[h];let p=12,d=Math.max(0,Math.min(i.columns-p,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*d/80)}}static async start(t,i){let n=new this(t),s=process.emitWarning;process.emitWarning=(o,a)=>{if(typeof o!="string"){let c=o;o=c.message,a=a!=null?a:c.name}let l=typeof a<"u"?`${a}: ${o}`:o;n.reportWarning(0,l)};try{await i(n)}catch(o){n.reportExceptionOnce(o)}finally{await n.finalize(),process.emitWarning=s}return n}hasErrors(){return this.errors.length>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){this.cacheHitCount+=1}reportCacheMiss(t,i){this.lastCacheMiss=t,this.cacheMissCount+=1,typeof i<"u"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(13,i)}startSectionSync({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}async startSectionPromise({reportHeader:t,reportFooter:i,skipIfEmpty:n},s){let o={committed:!1,action:()=>{t==null||t()}};n?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(i==null||i(l-a))}}startTimerImpl(t,i,n){return{cb:typeof i=="function"?i:n,reportHeader:()=>{this.reportInfo(null,`\u250C ${t}`),this.indent+=1,DB!==null&&!this.json&&this.includeInfos&&this.stdout.write(DB.start(t))},reportFooter:a=>{if(this.indent-=1,DB!==null&&!this.json&&this.includeInfos){this.stdout.write(DB.end(t));for(let[l,c]of this.errors)this.reportErrorImpl(l,c)}this.configuration.get("enableTimers")&&a>200?this.reportInfo(null,`\u2514 Completed in ${_e(this.configuration,a,Ke.DURATION)}`):this.reportInfo(null,"\u2514 Completed")},skipIfEmpty:(typeof i=="function"?{}:i).skipIfEmpty}}startTimerSync(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionSync(o,s)}async startTimerPromise(t,i,n){let{cb:s,...o}=this.startTimerImpl(t,i,n);return this.startSectionPromise(o,s)}async startCacheReport(t){let i=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await t()}catch(n){throw this.reportExceptionOnce(n),n}finally{i!==null&&this.reportCacheChanges(i)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(t,i){if(!this.includeInfos)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"",o=`${this.formatPrefix(s,"blueBright")}${i}`;if(this.json)this.reportJson({type:"info",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i});else if(this.forgettableNames.has(t))if(this.forgettableLines.push(o),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(o,{truncate:!0});else this.writeLineWithForgettableReset(o)}reportWarning(t,i){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"warning",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"yellowBright")}${i}`)}reportError(t,i){this.errors.push([t,i]),this.reportErrorImpl(t,i)}reportErrorImpl(t,i){this.commit();let n=this.formatNameWithHyperlink(t),s=n?`${n}: `:"";this.json?this.reportJson({type:"error",name:t,displayName:this.formatName(t),indent:this.formatIndent(),data:i}):this.writeLineWithForgettableReset(`${this.formatPrefix(s,"redBright")}${i}`,{truncate:!1})}reportProgress(t){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(t.hasProgress&&t.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let i=!1,n=Promise.resolve().then(async()=>{let o={progress:t.hasProgress?0:void 0,title:t.hasTitle?"":void 0};this.progress.set(t,{definition:o,lastScaledSize:t.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:a,title:l}of t)i||o.progress===a&&o.title===l||(o.progress=a,o.title=l,this.refreshProgress());s()}),s=()=>{i||(i=!0,this.progress.delete(t),this.refreshProgress({delta:1}))};return{...n,stop:s}}reportJson(t){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(t)}`)}async finalize(){if(!this.includeFooter)return;let t="";this.errors.length>0?t="Failed with errors":this.warningCount>0?t="Done with warnings":t="Done";let i=_e(this.configuration,Date.now()-this.startTime,Ke.DURATION),n=this.configuration.get("enableTimers")?`${t} in ${i}`:t;this.errors.length>0?this.reportError(0,n):this.warningCount>0?this.reportWarning(0,n):this.reportInfo(0,n)}writeLine(t,{truncate:i}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(t,{truncate:i})} -`),this.writeProgress()}writeLineWithForgettableReset(t,{truncate:i}={}){this.forgettableLines=[],this.writeLine(t,{truncate:i})}writeLines(t,{truncate:i}={}){this.clearProgress({delta:t.length});for(let n of t)this.stdout.write(`${this.truncate(n,{truncate:i})} -`);this.writeProgress()}reportCacheChanges({cacheHitCount:t,cacheMissCount:i}){let n=this.cacheHitCount-t,s=this.cacheMissCount-i;if(n===0&&s===0)return;let o="";this.cacheHitCount>1?o+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?o+=" - one package was already cached":o+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?o+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(o+=`, one had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?o+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(o+=` - one package had to be fetched (${Ct(this.configuration,this.lastCacheMiss)})`),this.reportInfo(13,o)}commit(){let t=this.uncommitted;this.uncommitted=new Set;for(let i of t)i.committed=!0,i.action()}clearProgress({delta:t=0,clear:i=!1}){this.progressStyle!==null&&this.progress.size+t>0&&(this.stdout.write(`\x1B[${this.progress.size+t}A`),(t>0||i)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let t=Date.now();t-this.progressTime>uV&&(this.progressFrame=(this.progressFrame+1)%cV.length,this.progressTime=t);let i=cV[this.progressFrame];for(let n of this.progress.values()){let s="";if(typeof n.lastScaledSize<"u"){let c=this.progressStyle.chars[0].repeat(n.lastScaledSize),u=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-n.lastScaledSize);s=` ${c}${u}`}let o=this.formatName(null),a=o?`${o}: `:"",l=n.definition.title?` ${n.definition.title}`:"";this.stdout.write(`${_e(this.configuration,"\u27A4","blueBright")} ${a}${i}${s}${l} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},uV)}refreshProgress({delta:t=0,force:i=!1}={}){let n=!1,s=!1;if(i||this.progress.size===0)n=!0;else for(let o of this.progress.values()){let a=typeof o.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*o.definition.progress):void 0,l=o.lastScaledSize;o.lastScaledSize=a;let c=o.lastTitle;if(o.lastTitle=o.definition.title,a!==l||(s=c!==o.definition.title)){n=!0;break}}n&&(this.clearProgress({delta:t,clear:s}),this.writeProgress())}truncate(t,{truncate:i}={}){return this.progressStyle===null&&(i=!1),typeof i>"u"&&(i=this.configuration.get("preferTruncatedLines")),i&&(t=(0,fV.default)(t,0,this.stdout.columns-1)),t}formatName(t){return hV(t,{configuration:this.configuration,json:this.json})}formatPrefix(t,i){return this.includePrefix?`${_e(this.configuration,"\u27A4",i)} ${t}${this.formatIndent()}`:""}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Nr="3.8.5";var CV=(n=>(n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm",n))(CV||{});async function $A(r,e,t,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${t}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await M.writeFilePromise(v.format({dir:r,name:e,ext:".cmd"}),n)}await M.writeFilePromise(v.join(r,e),`#!/bin/sh -exec "${t}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function mV(r){let e=await ot.tryFind(r);if(e!=null&&e.packageManager){let i=Sw(e.packageManager);if(i!=null&&i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManagerField:!0,packageManager:Number(s)===1?"Yarn Classic":"Yarn",reason:n};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:n};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:n}}}}let t;try{t=await M.readFilePromise(v.join(r,St.lockfile),"utf8")}catch{}return t!==void 0?t.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:M.existsSync(v.join(r,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:M.existsSync(v.join(r,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function NC({project:r,locator:e,binFolder:t,ignoreCorepack:i,lifecycleScript:n}){var c,u;let s={};for(let[g,h]of Object.entries(process.env))typeof h<"u"&&(s[g.toLowerCase()!=="path"?g:"PATH"]=h);let o=K.fromPortablePath(t);s.BERRY_BIN_FOLDER=K.fromPortablePath(o);let a=process.env.COREPACK_ROOT&&!i?K.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([$A(t,"node",process.execPath),...Nr!==null?[$A(t,"run",process.execPath,[a,"run"]),$A(t,"yarn",process.execPath,[a]),$A(t,"yarnpkg",process.execPath,[a]),$A(t,"node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])]:[]]),r&&(s.INIT_CWD=K.fromPortablePath(r.configuration.startingCwd),s.PROJECT_CWD=K.fromPortablePath(r.cwd)),s.PATH=s.PATH?`${o}${K.delimiter}${s.PATH}`:`${o}`,s.npm_execpath=`${o}${K.sep}yarn`,s.npm_node_execpath=`${o}${K.sep}node`,e){if(!r)throw new Error("Assertion failed: Missing project");let g=r.tryWorkspaceByLocator(e),h=g?(c=g.manifest.version)!=null?c:"":(u=r.storedPackages.get(e.locatorHash).version)!=null?u:"";s.npm_package_name=Tt(e),s.npm_package_version=h;let p;if(g)p=g.cwd;else{let d=r.storedPackages.get(e.locatorHash);if(!d)throw new Error(`Package for ${Ct(r.configuration,e)} not found in the project`);let m=r.configuration.getLinkers(),y={project:r,report:new He({stdout:new el.PassThrough,configuration:r.configuration})},B=m.find(S=>S.supportsPackage(d,y));if(!B)throw new Error(`The package ${Ct(r.configuration,d)} isn't supported by any of the available linkers`);p=await B.findPackageLocation(d,y)}s.npm_package_json=K.fromPortablePath(v.join(p,St.manifest))}let l=Nr!==null?`yarn/${Nr}`:`yarn/${mf("@yarnpkg/core").version}-core`;return s.npm_config_user_agent=`${l} npm/? node/${process.version} ${process.platform} ${process.arch}`,n&&(s.npm_lifecycle_event=n),r&&await r.configuration.triggerHook(g=>g.setupScriptEnvironment,r,s,async(g,h,p)=>await $A(t,Yr(g),h,p)),s}var vRe=2,xRe=(0,dV.default)(vRe);async function PRe(r,e,{configuration:t,report:i,workspace:n=null,locator:s=null}){await xRe(async()=>{await M.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=t.getSubprocessStreams(a,{prefix:K.fromPortablePath(r),report:i}),g=s&&Yo(s)?sC(s):s,h=g?ms(g):"an external project";c.write(`Packing ${h} from sources -`);let p=await mV(r),d;p!==null?(c.write(`Using ${p.packageManager} for bootstrap. Reason: ${p.reason} - -`),d=p.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn - -`),d="Yarn");let m=d==="Yarn"&&!(p!=null&&p.packageManagerField);await M.mktempPromise(async y=>{let B=await NC({binFolder:y,ignoreCorepack:m}),P=new Map([["Yarn Classic",async()=>{let H=n!==null?["workspace",n]:[],q=v.join(r,St.manifest),_=await M.readFilePromise(q),X=await so(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(X.code!==0)return X.code;await M.writeFilePromise(q,_),await M.appendFilePromise(v.join(r,".npmignore"),`/.yarn -`),c.write(` -`),delete B.NODE_ENV;let W=await so("yarn",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(W.code!==0)return W.code;c.write(` -`);let Z=await so("yarn",[...H,"pack","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return Z.code!==0?Z.code:0}],["Yarn",async()=>{let H=n!==null?["workspace",n]:[];B.YARN_ENABLE_INLINE_BUILDS="1";let q=v.join(r,St.lockfile);await M.existsPromise(q)||await M.writeFilePromise(q,"");let _=await so("yarn",[...H,"pack","--install-if-needed","--filename",K.fromPortablePath(e)],{cwd:r,env:B,stdin:l,stdout:c,stderr:u});return _.code!==0?_.code:0}],["npm",async()=>{if(n!==null){let ne=new el.PassThrough,ue=Cf(ne);ne.pipe(c,{end:!1});let te=await so("npm",["--version"],{cwd:r,env:B,stdin:l,stdout:ne,stderr:u,end:0});if(ne.end(),te.code!==0)return c.end(),u.end(),te.code;let O=(await ue).toString().trim();if(!Fc(O,">=7.x")){let N=qo(null,"npm"),ce=zt(N,O),he=zt(N,">=7.x");throw new Error(`Workspaces aren't supported by ${$t(t,ce)}; please upgrade to ${$t(t,he)} (npm has been detected as the primary package manager for ${_e(t,r,Ke.PATH)})`)}}let H=n!==null?["--workspace",n]:[];delete B.npm_config_user_agent,delete B.npm_config_production,delete B.NPM_CONFIG_PRODUCTION,delete B.NODE_ENV;let q=await so("npm",["install"],{cwd:r,env:B,stdin:l,stdout:c,stderr:u,end:1});if(q.code!==0)return q.code;let _=new el.PassThrough,X=Cf(_);_.pipe(c);let W=await so("npm",["pack","--silent",...H],{cwd:r,env:B,stdin:l,stdout:_,stderr:u});if(W.code!==0)return W.code;let Z=(await X).toString().trim().replace(/^.*\n/s,""),A=v.resolve(r,K.toPortablePath(Z));return await M.renamePromise(A,e),0}]]).get(d);if(typeof P>"u")throw new Error("Assertion failed: Unsupported workflow");let F=await P();if(!(F===0||typeof F>"u"))throw M.detachTemp(o),new rt(58,`Packing the package failed (exit code ${F}, logs can be found here: ${_e(t,a,Ke.PATH)})`)})})})}async function kRe(r,e,{project:t}){let i=t.tryWorkspaceByLocator(r);if(i!==null)return WR(i,e);let n=t.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t.configuration,r)} not found in the project`);return await Kn.openPromise(async s=>{let o=t.configuration,a=t.configuration.getLinkers(),l={project:t,report:new He({stdout:new el.PassThrough,configuration:o})},c=a.find(p=>p.supportsPackage(n,l));if(!c)throw new Error(`The package ${Ct(t.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new jt(u,{baseFs:s});return(await ot.find(Te.dot,{baseFs:g})).scripts.has(e)},{libzip:await an()})}async function NB(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await EV(r,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),h=c.scripts.get(e);if(typeof h>"u")return 1;let p=async()=>await vB(h,t,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(m=>m.wrapScriptExecution,p,n,r,e,{script:h,args:t,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function JR(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await M.mktempPromise(async l=>{let{env:c,cwd:u}=await EV(r,{project:n,binFolder:l,cwd:i});return await vB(e,t,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function DRe(r,{binFolder:e,cwd:t,lifecycleScript:i}){let n=await NC({project:r.project,locator:r.anchoredLocator,binFolder:e,lifecycleScript:i});return await VR(e,await wV(r)),typeof t>"u"&&(t=v.dirname(await M.realpathPromise(v.join(r.cwd,"package.json")))),{manifest:r.manifest,binFolder:e,env:n,cwd:t}}async function EV(r,{project:e,binFolder:t,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(r);if(s!==null)return DRe(s,{binFolder:t,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(r.locatorHash);if(!o)throw new Error(`Package for ${Ct(e.configuration,r)} not found in the project`);return await Kn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new He({stdout:new el.PassThrough,configuration:l})},g=c.find(y=>y.supportsPackage(o,u));if(!g)throw new Error(`The package ${Ct(e.configuration,o)} isn't supported by any of the available linkers`);let h=await NC({project:e,locator:r,binFolder:t,lifecycleScript:n});await VR(t,await TB(r,{project:e}));let p=await g.findPackageLocation(o,u),d=new jt(p,{baseFs:a}),m=await ot.find(Te.dot,{baseFs:d});return typeof i>"u"&&(i=p),{manifest:m,binFolder:t,env:h,cwd:i}},{libzip:await an()})}async function IV(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o}){return await NB(r.anchoredLocator,e,t,{cwd:i,project:r.project,stdin:n,stdout:s,stderr:o})}function WR(r,e){return r.manifest.scripts.has(e)}async function yV(r,e,{cwd:t,report:i}){let{configuration:n}=r.project,s=null;await M.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${K.fromPortablePath(r.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:Ct(n,r.anchoredLocator),header:l});i.reportInfo(36,`Calling the "${e}" lifecycle script`);let g=await IV(r,e,[],{cwd:t,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw M.detachTemp(o),new rt(36,`${(0,pV.default)(e)} script failed (exit code ${_e(n,g,Ke.NUMBER)}, logs can be found here: ${_e(n,a,Ke.PATH)}); run ${_e(n,`yarn ${e}`,Ke.CODE)} to investigate`)})}async function RRe(r,e,t){WR(r,e)&&await yV(r,e,t)}function zR(r){let e=v.extname(r);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let t=Buffer.alloc(4),i;try{i=M.openSync(r,"r")}catch{return!0}try{M.readSync(i,t,0,t.length,0)}finally{M.closeSync(i)}let n=t.readUint32BE();return!(n===3405691582||n===3489328638||n===2135247942||(n&4294901760)===1297743872)}async function TB(r,{project:e}){let t=e.configuration,i=new Map,n=e.storedPackages.get(r.locatorHash);if(!n)throw new Error(`Package for ${Ct(t,r)} not found in the project`);let s=new el.Writable,o=t.getLinkers(),a={project:e,report:new He({configuration:t,stdout:s})},l=new Set([r.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${$t(t,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return Uo.skip;let h=o.find(d=>d.supportsPackage(g,a));if(!h)return Uo.skip;let p=null;try{p=await h.findPackageLocation(g,a)}catch(d){if(d.code==="LOCATOR_NOT_INSTALLED")return Uo.skip;throw d}return{dependency:g,packageLocation:p}}));for(let u of c){if(u===Uo.skip)continue;let{dependency:g,packageLocation:h}=u;for(let[p,d]of g.bin){let m=v.resolve(h,d);i.set(p,[g,K.fromPortablePath(m),zR(m)])}}return i}async function wV(r){return await TB(r.anchoredLocator,{project:r.project})}async function VR(r,e){await Promise.all(Array.from(e,([t,[,i,n]])=>n?$A(r,Yr(t),process.execPath,[i]):$A(r,Yr(t),i,[])))}async function BV(r,e,t,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await TB(r,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${Ct(n.configuration,r)}`);return await M.mktempPromise(async g=>{let[,h]=u,p=await NC({project:n,locator:r,binFolder:g});await VR(p.BERRY_BIN_FOLDER,c);let d=zR(K.toPortablePath(h))?so(process.execPath,[...l,h,...t],{cwd:i,env:p,stdin:s,stdout:o,stderr:a}):so(h,t,{cwd:i,env:p,stdin:s,stdout:o,stderr:a}),m;try{m=await d}finally{await M.removePromise(p.BERRY_BIN_FOLDER)}return m.code})}async function FRe(r,e,t,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await BV(r.anchoredLocator,e,t,{project:r.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ci={};ct(Ci,{convertToZip:()=>oTe,extractArchiveTo:()=>ATe,makeArchiveFromDirectory:()=>sTe});var fZ=J("stream"),hZ=ve(aZ());var AZ=ve(Jg()),lZ=J("worker_threads");var fl=Symbol("kTaskInfo"),T0=class{constructor(e){this.source=e;this.workers=[];this.limit=(0,AZ.default)(eD());this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let t=this.workers.pop();t?t.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new lZ.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",t=>{if(!e[fl])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[fl].resolve(t),e[fl]=null,e.unref(),this.workers.push(e)}),e.on("error",t=>{var i;(i=e[fl])==null||i.reject(t),e[fl]=null}),e.on("exit",t=>{var i;t!==0&&((i=e[fl])==null||i.reject(new Error(`Worker exited with code ${t}`))),e[fl]=null}),e}run(e){return this.limit(()=>{var i;let t=(i=this.workers.pop())!=null?i:this.createWorker();return t.ref(),new Promise((n,s)=>{t[fl]={resolve:n,reject:s},t.postMessage(e)})})}};var pZ=ve(uZ());async function sTe(r,{baseFs:e=new Zt,prefixPath:t=Te.root,compressionLevel:i,inMemory:n=!1}={}){let s=await an(),o;if(n)o=new qr(null,{libzip:s,level:i});else{let l=await M.mktempPromise(),c=v.join(l,"archive.zip");o=new qr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Te.root,t);return await o.copyPromise(a,r,{baseFs:e,stableTime:!0,stableSort:!0}),o}var gZ;async function oTe(r,e){let t=await M.mktempPromise(),i=v.join(t,"archive.zip");return gZ||(gZ=new T0((0,pZ.getContent)())),await gZ.run({tmpFile:i,tgz:r,opts:e}),new qr(i,{libzip:await an(),level:e.compressionLevel})}async function*aTe(r){let e=new hZ.default.Parse,t=new fZ.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{t.write(i)}),e.on("error",i=>{t.destroy(i)}),e.on("close",()=>{t.destroyed||t.end()}),e.end(r);for await(let i of t){let n=i;yield n,n.resume()}}async function ATe(r,e,{stripComponents:t=0,prefixPath:i=Te.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=t)}for await(let a of aTe(r)){if(n(a))continue;let l=v.normalize(K.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=t)continue;let c=l.slice(t).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!==0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.writeFileSync(u,await Cf(a),{mode:g}),e.utimesSync(u,xr.SAFE_TIME,xr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,xr.SAFE_TIME,xr.SAFE_TIME);break}}return e}var es={};ct(es,{emitList:()=>lTe,emitTree:()=>yZ,treeNodeToJson:()=>IZ,treeNodeToTreeify:()=>EZ});var mZ=ve(CZ());function EZ(r,{configuration:e}){let t={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l<"u"&&g.push(zy(e,l,2)),typeof c<"u"&&g.push(_e(e,c[0],c[1])),g.length===0&&g.push(zy(e,`${a}`,2));let h=g.join(": "),p=s[h]={};typeof u<"u"&&i(u,p)}};if(typeof r.children>"u")throw new Error("The root node must only contain children");return i(r.children,t),t}function IZ(r){let e=t=>{var s;if(typeof t.children>"u"){if(typeof t.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Qc(t.value[0],t.value[1])}let i=Array.isArray(t.children)?t.children.entries():Object.entries((s=t.children)!=null?s:{}),n=Array.isArray(t.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof t.value>"u"?n:{value:Qc(t.value[0],t.value[1]),children:n}};return e(r)}function lTe(r,{configuration:e,stdout:t,json:i}){let n=r.map(s=>({value:s}));yZ({children:n},{configuration:e,stdout:t,json:i})}function yZ(r,{configuration:e,stdout:t,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(r.children)?r.children.values():Object.values((o=r.children)!=null?o:{});for(let l of a)t.write(`${JSON.stringify(IZ(l))} -`);return}let s=(0,mZ.asTree)(EZ(r,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 -$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");t.write(s)}var wZ=J("crypto"),DN=ve(J("fs"));var cTe=8,Dt=class{constructor(e,{configuration:t,immutable:i=t.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,wZ.randomBytes)(8).toString("hex")}.tmp`;this.configuration=t,this.cwd=e,this.immutable=i,this.check=n;let s=t.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=t.get("compressionLevel"),a=o!==_l?`c${o}`:"";this.cacheKey=[cTe,a].join("")}}static async find(e,{immutable:t,check:i}={}){let n=new Dt(e.get("cacheFolder"),{configuration:e,immutable:t,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${xf(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,t){let n=uTe(t).slice(0,10);return`${xf(e)}-${n}.zip`}getLocatorPath(e,t,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):t===null||kN(t)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,t))}getLocatorMirrorPath(e){let t=this.mirrorCwd;return t!==null?v.resolve(t,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await M.existsPromise(this.cwd))throw new rt(56,"Cache path does not exist.")}else{await M.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await M.changeFilePromise(e,`/.gitignore -*.flock -*.tmp -`)}(this.mirrorCwd||!this.immutable)&&await M.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,t,{onHit:i,onMiss:n,loader:s,...o}){var W;let a=this.getLocatorMirrorPath(e),l=new Zt,c=()=>{let Z=new qr(null,{libzip:P}),A=v.join(Te.root,qk(e));return Z.mkdirSync(A,{recursive:!0}),Z.writeJsonSync(v.join(A,St.manifest),{name:Tt(e),mocked:!0}),Z},u=async(Z,A=null)=>{var ue;if(A===null&&((ue=o.unstablePackages)==null?void 0:ue.has(e.locatorHash)))return{isValid:!0,hash:null};let ne=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(Z)}`:t;if(A!==null){let te=!o.skipIntegrityCheck||!t?`${this.cacheKey}/${await Bw(A)}`:t;if(ne!==te)throw new rt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(t!==null&&ne!==t){let te;switch(this.check?te="throw":kN(t)!==kN(ne)?te="update":te=this.configuration.get("checksumBehavior"),te){case"ignore":return{isValid:!0,hash:t};case"update":return{isValid:!0,hash:ne};case"reset":return{isValid:!1,hash:t};default:case"throw":throw new rt(18,"The remote archive doesn't match the expected checksum")}}return{isValid:!0,hash:ne}},g=async Z=>{if(!s)throw new Error(`Cache check required but no loader configured for ${Ct(this.configuration,e)}`);let A=await s(),ne=A.getRealPath();A.saveAndClose(),await M.chmodPromise(ne,420);let ue=await u(Z,ne);if(!ue.isValid)throw new Error("Assertion failed: Expected a valid checksum");return ue.hash},h=async()=>{if(a===null||!await M.existsPromise(a)){let Z=await s(),A=Z.getRealPath();return Z.saveAndClose(),{source:"loader",path:A}}return{source:"mirror",path:a}},p=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${Ct(this.configuration,e)}`);if(this.immutable)throw new rt(56,`Cache entry required but missing for ${Ct(this.configuration,e)}`);let{path:Z,source:A}=await h(),ne=(await u(Z)).hash,ue=this.getLocatorPath(e,ne,o);if(!ue)throw new Error("Assertion failed: Expected the cache path to be available");let te=[];A!=="mirror"&&a!==null&&te.push(async()=>{let N=`${a}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,a)}),(!o.mirrorWriteOnly||a===null)&&te.push(async()=>{let N=`${ue}${this.cacheId}`;await M.copyFilePromise(Z,N,DN.default.constants.COPYFILE_FICLONE),await M.chmodPromise(N,420),await M.renamePromise(N,ue)});let O=o.mirrorWriteOnly&&a!=null?a:ue;return await Promise.all(te.map(N=>N())),[!1,O,ne]},d=async()=>{let A=(async()=>{var ce;let ne=this.getLocatorPath(e,t,o),ue=ne!==null?this.markedFiles.has(ne)||await l.existsPromise(ne):!1,te=!!((ce=o.mockedPackages)!=null&&ce.has(e.locatorHash))&&(!this.check||!ue),O=te||ue,N=O?i:n;if(N&&N(),O){let he=null,Pe=ne;if(!te)if(this.check)he=await g(Pe);else{let De=await u(Pe);if(De.isValid)he=De.hash;else return p()}return[te,Pe,he]}else return p()})();this.mutexes.set(e.locatorHash,A);try{return await A}finally{this.mutexes.delete(e.locatorHash)}};for(let Z;Z=this.mutexes.get(e.locatorHash);)await Z;let[m,y,B]=await d();m||this.markedFiles.add(y);let S,P=await an(),F=m?()=>c():()=>new qr(y,{baseFs:l,libzip:P,readOnly:!0}),H=new Sg(()=>Jx(()=>S=F(),Z=>`Failed to open the cache entry for ${Ct(this.configuration,e)}: ${Z}`),v),q=new Qo(y,{baseFs:H,pathUtils:v}),_=()=>{S==null||S.discardAndClose()},X=(W=o.unstablePackages)!=null&&W.has(e.locatorHash)?null:B;return[q,_,X]}};function kN(r){let e=r.indexOf("/");return e!==-1?r.slice(0,e):null}function uTe(r){let e=r.indexOf("/");return e!==-1?r.slice(e+1):r}var L0=(t=>(t[t.SCRIPT=0]="SCRIPT",t[t.SHELLCODE=1]="SHELLCODE",t))(L0||{});var ta=class extends xi{constructor({configuration:t,stdout:i,suggestInstall:n=!0}){super();this.errorCount=0;Zd(this,{configuration:t}),this.configuration=t,this.stdout=i,this.suggestInstall=n}static async start(t,i){let n=new this(t);try{await i(n)}catch(s){n.reportExceptionOnce(s)}finally{await n.finalize()}return n}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(t){}reportCacheMiss(t){}startSectionSync(t,i){return i()}async startSectionPromise(t,i){return await i()}startTimerSync(t,i,n){return(typeof i=="function"?i:n)()}async startTimerPromise(t,i,n){return await(typeof i=="function"?i:n)()}async startCacheReport(t){return await t()}reportSeparator(){}reportInfo(t,i){}reportWarning(t,i){}reportError(t,i){this.errorCount+=1,this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(t)}: ${i} -`)}reportProgress(t){return{...Promise.resolve().then(async()=>{for await(let{}of t);}),stop:()=>{}}}reportJson(t){}async finalize(){this.errorCount>0&&(this.stdout.write(` -`),this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. -`),this.suggestInstall&&this.stdout.write(`${_e(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(t){return qR(t,{configuration:this.configuration,json:!1})}};var V0=J("crypto");function iA(){}iA.prototype={diff:function(e,t){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(m){return n?(setTimeout(function(){n(void 0,m)},0),!0):m}e=this.castInput(e),t=this.castInput(t),e=this.removeEmpty(this.tokenize(e)),t=this.removeEmpty(this.tokenize(t));var a=t.length,l=e.length,c=1,u=a+l;i.maxEditLength&&(u=Math.min(u,i.maxEditLength));var g=[{newPos:-1,components:[]}],h=this.extractCommon(g[0],t,e,0);if(g[0].newPos+1>=a&&h+1>=l)return o([{value:this.join(t),count:t.length}]);function p(){for(var m=-1*c;m<=c;m+=2){var y=void 0,B=g[m-1],S=g[m+1],P=(S?S.newPos:0)-m;B&&(g[m-1]=void 0);var F=B&&B.newPos+1<a,H=S&&0<=P&&P<l;if(!F&&!H){g[m]=void 0;continue}if(!F||H&&B.newPos<S.newPos?(y=fTe(S),s.pushComponent(y.components,void 0,!0)):(y=B,y.newPos++,s.pushComponent(y.components,!0,void 0)),P=s.extractCommon(y,t,e,m),y.newPos+1>=a&&P+1>=l)return o(gTe(s,y.components,t,e,s.useLongestToken));g[m]=y}c++}if(n)(function m(){setTimeout(function(){if(c>u)return n();p()||m()},0)})();else for(;c<=u;){var d=p();if(d)return d}},pushComponent:function(e,t,i){var n=e[e.length-1];n&&n.added===t&&n.removed===i?e[e.length-1]={count:n.count+1,added:t,removed:i}:e.push({count:1,added:t,removed:i})},extractCommon:function(e,t,i,n){for(var s=t.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1<s&&l+1<o&&this.equals(t[a+1],i[l+1]);)a++,l++,c++;return c&&e.components.push({count:c}),e.newPos=a,l},equals:function(e,t){return this.options.comparator?this.options.comparator(e,t):e===t||this.options.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};function gTe(r,e,t,i,n){for(var s=0,o=e.length,a=0,l=0;s<o;s++){var c=e[s];if(c.removed){if(c.value=r.join(i.slice(l,l+c.count)),l+=c.count,s&&e[s-1].added){var g=e[s-1];e[s-1]=e[s],e[s]=g}}else{if(!c.added&&n){var u=t.slice(a,a+c.count);u=u.map(function(p,d){var m=i[l+d];return m.length>p.length?m:p}),c.value=r.join(u)}else c.value=r.join(t.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var h=e[o-1];return o>1&&typeof h.value=="string"&&(h.added||h.removed)&&r.equals("",h.value)&&(e[o-2].value+=h.value,e.pop()),e}function fTe(r){return{newPos:r.newPos,components:r.components.slice(0)}}var Xat=new iA;var BZ=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,bZ=/\S/,QZ=new iA;QZ.equals=function(r,e){return this.options.ignoreCase&&(r=r.toLowerCase(),e=e.toLowerCase()),r===e||this.options.ignoreWhitespace&&!bZ.test(r)&&!bZ.test(e)};QZ.tokenize=function(r){for(var e=r.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),t=0;t<e.length-1;t++)!e[t+1]&&e[t+2]&&BZ.test(e[t])&&BZ.test(e[t+2])&&(e[t]+=e[t+2],e.splice(t+1,2),t--);return e};var LN=new iA;LN.tokenize=function(r){var e=[],t=r.split(/(\n|\r\n)/);t[t.length-1]||t.pop();for(var i=0;i<t.length;i++){var n=t[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=n:(this.options.ignoreWhitespace&&(n=n.trim()),e.push(n))}return e};function hTe(r,e,t){return LN.diff(r,e,t)}var pTe=new iA;pTe.tokenize=function(r){return r.split(/(\S.+?[.!?])(?=\s+|$)/)};var dTe=new iA;dTe.tokenize=function(r){return r.split(/([{}:;,]|\s+)/)};function O0(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O0=function(e){return typeof e}:O0=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O0(r)}function RN(r){return CTe(r)||mTe(r)||ETe(r)||ITe()}function CTe(r){if(Array.isArray(r))return FN(r)}function mTe(r){if(typeof Symbol<"u"&&Symbol.iterator in Object(r))return Array.from(r)}function ETe(r,e){if(!!r){if(typeof r=="string")return FN(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return FN(r,e)}}function FN(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t<e;t++)i[t]=r[t];return i}function ITe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var yTe=Object.prototype.toString,_C=new iA;_C.useLongestToken=!0;_C.tokenize=LN.tokenize;_C.castInput=function(r){var e=this.options,t=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o>"u"?t:o}:i;return typeof r=="string"?r:JSON.stringify(NN(r,null,null,n),n," ")};_C.equals=function(r,e){return iA.prototype.equals.call(_C,r.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function NN(r,e,t,i,n){e=e||[],t=t||[],i&&(r=i(n,r));var s;for(s=0;s<e.length;s+=1)if(e[s]===r)return t[s];var o;if(yTe.call(r)==="[object Array]"){for(e.push(r),o=new Array(r.length),t.push(o),s=0;s<r.length;s+=1)o[s]=NN(r[s],e,t,i,n);return e.pop(),t.pop(),o}if(r&&r.toJSON&&(r=r.toJSON()),O0(r)==="object"&&r!==null){e.push(r),o={},t.push(o);var a=[],l;for(l in r)r.hasOwnProperty(l)&&a.push(l);for(a.sort(),s=0;s<a.length;s+=1)l=a[s],o[l]=NN(r[l],e,t,i,l);e.pop(),t.pop()}else o=r;return o}var TN=new iA;TN.tokenize=function(r){return r.slice()};TN.join=TN.removeEmpty=function(r){return r};function SZ(r,e,t,i,n,s,o){o||(o={}),typeof o.context>"u"&&(o.context=4);var a=hTe(t,i,o);if(!a)return;a.push({value:"",lines:[]});function l(B){return B.map(function(S){return" "+S})}for(var c=[],u=0,g=0,h=[],p=1,d=1,m=function(S){var P=a[S],F=P.lines||P.value.replace(/\n$/,"").split(` -`);if(P.lines=F,P.added||P.removed){var H;if(!u){var q=a[S-1];u=p,g=d,q&&(h=o.context>0?l(q.lines.slice(-o.context)):[],u-=h.length,g-=h.length)}(H=h).push.apply(H,RN(F.map(function(te){return(P.added?"+":"-")+te}))),P.added?d+=F.length:p+=F.length}else{if(u)if(F.length<=o.context*2&&S<a.length-2){var _;(_=h).push.apply(_,RN(l(F)))}else{var X,W=Math.min(F.length,o.context);(X=h).push.apply(X,RN(l(F.slice(0,W))));var Z={oldStart:u,oldLines:p-u+W,newStart:g,newLines:d-g+W,lines:h};if(S>=a.length-2&&F.length<=o.context){var A=/\n$/.test(t),ne=/\n$/.test(i),ue=F.length==0&&h.length>Z.oldLines;!A&&ue&&t.length>0&&h.splice(Z.oldLines,0,"\\ No newline at end of file"),(!A&&!ue||!ne)&&h.push("\\ No newline at end of file")}c.push(Z),u=0,g=0,h=[]}p+=F.length,d+=F.length}},y=0;y<a.length;y++)m(y);return{oldFileName:r,newFileName:e,oldHeader:n,newHeader:s,hunks:c}}var X0=ve(R$()),Z0=ve(Jg()),O$=ve(zr()),zN=J("util"),WN=ve(J("v8")),VN=ve(J("zlib"));var VMe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(r,e,t,i)=>`${t}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(r,e,t="",i,n)=>`https://${t}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,r=>`npm:${r}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,r=>`npm:${r}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(r,e)=>vw({protocol:"npm:",source:null,selector:r,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,r=>`npm:${r}`]],J0=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:t}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!M.existsSync(i))return;let n=await M.readFilePromise(i,"utf8"),s=wi(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=AC(a);if(!l){t.reportWarning(14,`Failed to parse the string "${a}" into a proper descriptor`);continue}let c=no(l.range)?zt(l,`npm:${l.range}`):l,{version:u,resolved:g}=s[a];if(!g)continue;let h;for(let[d,m]of VMe){let y=g.match(d);if(y){h=m(u,...y);break}}if(!h){t.reportWarning(14,`${$t(e.configuration,c)}: Only some patterns can be imported from legacy lockfiles (not "${g}")`);continue}let p=c;try{let d=vf(c.range),m=AC(d.selector,!0);m&&(p=m)}catch{}o.set(c.descriptorHash,nn(p,h))}}supportsDescriptor(e,t){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return await this.resolver.getCandidates(Hk(n),t,i)}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var W0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return!!(t.project.storedResolutions.get(e.descriptorHash)||t.project.originalPackages.has(Qw(e).locatorHash))}supportsLocator(e,t){return!!(t.project.originalPackages.has(e.locatorHash)&&!t.project.lockfileNeedsRefresh)}shouldPersistResolution(e,t){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){let n=i.project.originalPackages.get(Qw(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");let o=i.project.originalPackages.get(s);if(!o)throw new Error("Expected the resolution to have been successful - package not found");return[o]}async getSatisfying(e,t,i){return null}async resolve(e,t){let i=t.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var z0=class{constructor(e){this.resolver=e}supportsDescriptor(e,t){return this.resolver.supportsDescriptor(e,t)}supportsLocator(e,t){return this.resolver.supportsLocator(e,t)}shouldPersistResolution(e,t){return this.resolver.shouldPersistResolution(e,t)}bindDescriptor(e,t,i){return this.resolver.bindDescriptor(e,t,i)}getResolutionDependencies(e,t){return this.resolver.getResolutionDependencies(e,t)}async getCandidates(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,t,i){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,t){throw new rt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var $r=class extends xi{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,t){return t()}async startSectionPromise(e,t){return await t()}startTimerSync(e,t,i){return(typeof t=="function"?t:i)()}async startTimerPromise(e,t,i){return await(typeof t=="function"?t:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,t){}reportWarning(e,t){}reportError(e,t){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}async finalize(){}};var F$=ve(Mk());var Qh=class{constructor(e,{project:t}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=t,this.cwd=e}async setup(){var s;this.manifest=(s=await ot.tryFind(this.cwd))!=null?s:new ot,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Te.dot;let e=this.manifest.name?this.manifest.name:qo(null,`${this.computeCandidateName()}-${rn(this.relativeCwd).substring(0,6)}`),t=this.manifest.version?this.manifest.version:"0.0.0";this.locator=nn(e,t),this.anchoredDescriptor=zt(this.locator,`${Hr.protocol}${this.relativeCwd}`),this.anchoredLocator=nn(this.locator,`${Hr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:o})=>o);if(i.length===0)return;let n=await(0,F$.default)(i,{cwd:K.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort(),await n.reduce(async(o,a)=>{let l=v.resolve(this.cwd,K.toPortablePath(a)),c=await M.existsPromise(v.join(l,"package.json"));await o,c&&this.workspacesCwds.add(l)},Promise.resolve())}accepts(e){var o;let t=e.indexOf(":"),i=t!==-1?e.slice(0,t+1):null,n=t!==-1?e.slice(t+1):e;if(i===Hr.protocol&&v.normalize(n)===this.relativeCwd||i===Hr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=no(n);return s?i===Hr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||t.has(a)||(t.add(a),i(a))}};return i(this),t}getRecursiveWorkspaceDependents({dependencies:e=ot.hardDependencies}={}){let t=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&aC(c.anchoredLocator,n.anchoredLocator)}))&&!t.has(s)&&(t.add(s),i(s))};return i(this),t}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let t of e)for(let i of t.workspacesCwds){let n=this.project.workspacesByCwd.get(i);n&&e.add(n)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let t=v.join(this.cwd,ot.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await M.changeFilePromise(t,i,{automaticNewlines:!0}),this.manifest.raw=e}};var N$=6,XMe=1,ZMe=/ *, */g,T$=/\/$/,_Me=32,$Me=(0,zN.promisify)(VN.default.gzip),e1e=(0,zN.promisify)(VN.default.gunzip),ts=(t=>(t.UpdateLockfile="update-lockfile",t.SkipBuild="skip-build",t))(ts||{}),JN={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},L$=r=>rn(`${XMe}`,r),Ge=class{constructor(e,{configuration:t}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=t,this.cwd=e}static async find(e,t){var d,m,y;if(!e.projectCwd)throw new we(`No project found in ${t}`);let i=e.projectCwd,n=t,s=null;for(;s!==e.projectCwd;){if(s=n,M.existsSync(v.join(s,St.manifest))){i=s;break}n=v.dirname(s)}let o=new Ge(e.projectCwd,{configuration:e});(d=Ee.telemetry)==null||d.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(m=Ee.telemetry)==null||m.reportWorkspaceCount(o.workspaces.length),(y=Ee.telemetry)==null||y.reportDependencyCount(o.workspaces.reduce((B,S)=>B+S.manifest.dependencies.size+S.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};let c=_e(e,o.cwd,Ke.PATH),u=_e(e,v.relative(o.cwd,i),Ke.PATH),g=`- If ${c} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,h=`- If ${c} is intended to be a project, it might be that you forgot to list ${u} in its workspace configuration.`,p=`- Finally, if ${c} is fine and you intend ${u} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new we(`The nearest package directory (${_e(e,i,Ke.PATH)}) doesn't seem to be part of the project declared in ${_e(e,o.cwd,Ke.PATH)}. - -${[g,h,p].join(` -`)}`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t=this.configuration.get("defaultLanguageName");if(M.existsSync(e)){let n=await M.readFilePromise(e,"utf8");this.lockFileChecksum=L$(n);let s=wi(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o<N$;for(let l of Object.keys(s)){if(l==="__metadata")continue;let c=s[l];if(typeof c.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${l})`);let u=Rc(c.resolution,!0),g=new ot;g.load(c,{yamlCompatibilityMode:!0});let h=g.version,p=g.languageName||t,d=c.linkType.toUpperCase(),m=(i=c.conditions)!=null?i:null,y=g.dependencies,B=g.peerDependencies,S=g.dependenciesMeta,P=g.peerDependenciesMeta,F=g.bin;if(c.checksum!=null){let q=typeof a<"u"&&!c.checksum.includes("/")?`${a}/${c.checksum}`:c.checksum;this.storedChecksums.set(u.locatorHash,q)}let H={...u,version:h,languageName:p,linkType:d,conditions:m,dependencies:y,peerDependencies:B,dependenciesMeta:S,peerDependenciesMeta:P,bin:F};this.originalPackages.set(H.locatorHash,H);for(let q of l.split(ZMe)){let _=JA(q);this.storedDescriptors.set(_.descriptorHash,_),this.storedResolutions.set(_.descriptorHash,u.locatorHash)}}}}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,t=(0,Z0.default)(4),i=async(n,s)=>{if(e.has(s))return n;e.add(s);let o=new Qh(s,{project:this});await t(()=>o.setup());let a=n.then(()=>{this.addWorkspace(o);let l=this.storedPackages.get(o.anchoredLocator.locatorHash);l&&(o.dependencies=l.dependencies)});return Array.from(o.workspacesCwds).reduce(i,a)};await i(Promise.resolve(),this.cwd)}addWorkspace(e){let t=this.workspacesByIdent.get(e.locator.identHash);if(typeof t<"u")throw new Error(`Duplicate workspace name ${ai(this.configuration,e.locator)}: ${K.fromPortablePath(e.cwd)} conflicts with ${K.fromPortablePath(t.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.locator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let t=this.workspacesByCwd.get(e);return t||null}getWorkspaceByCwd(e){let t=this.tryWorkspaceByCwd(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByFilePath(e){let t=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||t&&t.cwd.length>=i.cwd.length||(t=i);return t||null}getWorkspaceByFilePath(e){let t=this.tryWorkspaceByFilePath(e);if(!t)throw new Error(`Workspace not found (${e})`);return t}tryWorkspaceByIdent(e){let t=this.workspacesByIdent.get(e.identHash);return typeof t>"u"?null:t}getWorkspaceByIdent(e){let t=this.tryWorkspaceByIdent(e);if(!t)throw new Error(`Workspace not found (${ai(this.configuration,e)})`);return t}tryWorkspaceByDescriptor(e){let t=this.tryWorkspaceByIdent(e);return t===null||(qA(e)&&(e=nC(e)),!t.accepts(e.range))?null:t}getWorkspaceByDescriptor(e){let t=this.tryWorkspaceByDescriptor(e);if(t===null)throw new Error(`Workspace not found (${$t(this.configuration,e)})`);return t}tryWorkspaceByLocator(e){let t=this.tryWorkspaceByIdent(e);return t===null||(Yo(e)&&(e=sC(e)),t.locator.locatorHash!==e.locatorHash&&t.anchoredLocator.locatorHash!==e.locatorHash)?null:t}getWorkspaceByLocator(e){let t=this.tryWorkspaceByLocator(e);if(!t)throw new Error(`Workspace not found (${Ct(this.configuration,e)})`);return t}refreshWorkspaceDependencies(){for(let e of this.workspaces){let t=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!t)throw new Error(`Assertion failed: Expected workspace ${cC(this.configuration,e)} (${_e(this.configuration,v.join(e.cwd,St.manifest),Ke.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(t.dependencies)}}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let t=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let i=new Set(this.storedResolutions.values());typeof t<"u"&&!i.has(t)&&this.deleteLocator(t)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[t,i]of this.storedResolutions)i===e.locatorHash&&this.deleteDescriptor(t)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),t=new Map;for(let[i,n]of this.storedResolutions.entries()){let s=t.get(n);s||t.set(n,s=new Set),s.add(i)}for(let i of this.originalPackages.values()){let n;try{n=e.shouldPersistResolution(i,{project:this,resolver:e})}catch{n=!1}if(!n){this.deleteLocator(i.locatorHash);let s=t.get(i.locatorHash);if(s){t.delete(i.locatorHash);for(let o of s)this.deleteDescriptor(o)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[t,i]of e.dependencies)qA(i)&&e.dependencies.set(t,nC(i))}getDependencyMeta(e,t){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(Tt(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),t===null||!O$.default.valid(t))return i;for(let[a,l]of s)a!==null&&a===t&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:t=!1}={}){let i=new $r,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(t&&(await o.findPackageLocation(a,s)).replace(T$,"")!==e.replace(T$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let t=e.resolver||this.configuration.makeResolver(),i=new J0(t);await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new z0(t)]:[i,t],s=new Df([new W0(t),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,h=new Map,p=new Map,d=this.topLevelWorkspace.anchoredLocator,m=new Set,y=[],B=$k(),S=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(xi.progressViaTitle(),async W=>{let Z=async O=>{let N=await df(async()=>await s.resolve(O,a),Pe=>`${Ct(this.configuration,O)}: ${Pe}`);if(!aC(O,N))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${Ct(this.configuration,O)} to ${Ct(this.configuration,N)})`);g.set(N.locatorHash,N);let ce=this.configuration.normalizePackage(N);for(let[Pe,De]of ce.dependencies){let Re=await this.configuration.reduceHook(Ae=>Ae.reduceDependency,De,this,ce,De,{resolver:s,resolveOptions:a});if(!oC(De,Re))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let se=s.bindDescriptor(Re,O,a);ce.dependencies.set(Pe,se)}let he=ro([...ce.dependencies.values()].map(Pe=>te(Pe)));return y.push(he),he.catch(()=>{}),c.set(ce.locatorHash,ce),ce},A=async O=>{let N=h.get(O.locatorHash);if(typeof N<"u")return N;let ce=Promise.resolve().then(()=>Z(O));return h.set(O.locatorHash,ce),ce},ne=async(O,N)=>{let ce=await te(N);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,ce.locatorHash),ce},ue=async O=>{W.setTitle($t(this.configuration,O));let N=this.resolutionAliases.get(O.descriptorHash);if(typeof N<"u")return ne(O,this.storedDescriptors.get(N));let ce=s.getResolutionDependencies(O,a),he=new Map(await ro(ce.map(async Re=>{let se=s.bindDescriptor(Re,d,a),Ae=await te(se);return m.add(Ae.locatorHash),[Re.descriptorHash,Ae]}))),De=(await df(async()=>await s.getCandidates(O,he,a),Re=>`${$t(this.configuration,O)}: ${Re}`))[0];if(typeof De>"u")throw new rt(82,`${$t(this.configuration,O)}: No candidates found`);return l.set(O.descriptorHash,O),u.set(O.descriptorHash,De.locatorHash),A(De)},te=O=>{let N=p.get(O.descriptorHash);if(typeof N<"u")return N;l.set(O.descriptorHash,O);let ce=Promise.resolve().then(()=>ue(O));return p.set(O.descriptorHash,ce),ce};for(let O of this.workspaces){let N=O.anchoredDescriptor;y.push(te(N))}for(;y.length>0;){let O=[...y];y.length=0,await ro(O)}});let P=new Set(this.resolutionAliases.values()),F=new Set(c.keys()),H=new Set,q=new Map;t1e({project:this,report:e.report,accessibleLocators:H,volatileDescriptors:P,optionalBuilds:F,peerRequirements:q,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of m)F.delete(W);for(let W of P)l.delete(W),u.delete(W);let _=new Set,X=new Set;for(let W of c.values())W.conditions!=null&&(!F.has(W.locatorHash)||(kw(W,S)||(kw(W,B)&&e.report.reportWarningOnce(77,`${Ct(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${_e(this.configuration,"supportedArchitectures",Ke.SETTING)} setting`),X.add(W.locatorHash)),_.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=H,this.conditionalLocators=_,this.disabledLocators=X,this.originalPackages=g,this.optionalBuilds=F,this.peerRequirements=q,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:t,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,cacheOptions:s},l=Array.from(new Set(Qn(this.storedResolutions.values(),[h=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");return ms(p)}])));n==="update-lockfile"&&(l=l.filter(h=>!this.storedChecksums.has(h)));let c=!1,u=xi.progressViaCounter(l.length);await t.reportProgress(u);let g=(0,Z0.default)(_Me);if(await t.startCacheReport(async()=>{await ro(l.map(h=>g(async()=>{let p=this.storedPackages.get(h);if(!p)throw new Error("Assertion failed: The locator should have been registered");if(Yo(p))return;let d;try{d=await o.fetch(p,a)}catch(m){m.message=`${Ct(this.configuration,p)}: ${m.message}`,t.reportExceptionOnce(m),c=m;return}d.checksum!=null?this.storedChecksums.set(p.locatorHash,d.checksum):this.storedChecksums.delete(p.locatorHash),d.releaseFs&&d.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:t,fetcher:i,mode:n}){var ne,ue,te;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:t,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:t},u=new Map(l.map(O=>{let N=O.makeInstaller(c),ce=N.getCustomDataKey(),he=this.installersCustomData.get(ce);return typeof he<"u"&&N.attachCustomData(he),[O,N]})),g=new Map,h=new Map,p=new Map,d=new Map(await ro([...this.accessibleLocators].map(async O=>{let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");return[O,await o.fetch(N,a)]}))),m=[];for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(typeof N>"u")throw new Error("Assertion failed: The locator should have been registered");let ce=d.get(N.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],Pe=Re=>{he.push(Re)},De=this.tryWorkspaceByLocator(N);if(De!==null){let Re=[],{scripts:se}=De.manifest;for(let ye of["preinstall","install","postinstall"])se.has(ye)&&Re.push([0,ye]);try{for(let[ye,ge]of u)if(ye.supportsPackage(N,c)&&(await ge.installPackage(N,ce,{holdFetchResult:Pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(ne=ce.releaseFs)==null||ne.call(ce):m.push(ro(he).catch(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}let Ae=v.join(ce.packageFs.getRealPath(),ce.prefixPath);h.set(N.locatorHash,Ae),!Yo(N)&&Re.length>0&&p.set(N.locatorHash,{directives:Re,buildLocations:[Ae]})}else{let Re=l.find(ye=>ye.supportsPackage(N,c));if(!Re)throw new rt(12,`${Ct(this.configuration,N)} isn't supported by any available linker`);let se=u.get(Re);if(!se)throw new Error("Assertion failed: The installer should have been registered");let Ae;try{Ae=await se.installPackage(N,ce,{holdFetchResult:Pe})}finally{he.length===0?(ue=ce.releaseFs)==null||ue.call(ce):m.push(ro(he).then(()=>{}).then(()=>{var ye;(ye=ce.releaseFs)==null||ye.call(ce)}))}g.set(N.locatorHash,Re),h.set(N.locatorHash,Ae.packageLocation),Ae.buildDirective&&Ae.buildDirective.length>0&&Ae.packageLocation&&p.set(N.locatorHash,{directives:Ae.buildDirective,buildLocations:[Ae.packageLocation]})}}let y=new Map;for(let O of this.accessibleLocators){let N=this.storedPackages.get(O);if(!N)throw new Error("Assertion failed: The locator should have been registered");let ce=this.tryWorkspaceByLocator(N)!==null,he=async(Pe,De)=>{let Re=h.get(N.locatorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The package (${Ct(this.configuration,N)}) should have been registered`);let se=[];for(let Ae of N.dependencies.values()){let ye=this.storedResolutions.get(Ae.descriptorHash);if(typeof ye>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Ae)}, from ${Ct(this.configuration,N)})should have been registered`);let ge=this.storedPackages.get(ye);if(typeof ge>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);let oe=this.tryWorkspaceByLocator(ge)===null?g.get(ye):null;if(typeof oe>"u")throw new Error(`Assertion failed: The package (${ye}, resolved from ${$t(this.configuration,Ae)}) should have been registered`);oe===Pe||oe===null?h.get(ge.locatorHash)!==null&&se.push([Ae,ge]):!ce&&Re!==null&&hf(y,ye).push(Re)}Re!==null&&await De.attachInternalDependencies(N,se)};if(ce)for(let[Pe,De]of u)Pe.supportsPackage(N,c)&&await he(Pe,De);else{let Pe=g.get(N.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let De=u.get(Pe);if(!De)throw new Error("Assertion failed: The installer should have been registered");await he(Pe,De)}}for(let[O,N]of y){let ce=this.storedPackages.get(O);if(!ce)throw new Error("Assertion failed: The package should have been registered");let he=g.get(ce.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let Pe=u.get(he);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ce,N)}let B=new Map;for(let O of u.values()){let N=await O.finalizeInstall();for(let ce of(te=N==null?void 0:N.records)!=null?te:[])p.set(ce.locatorHash,{directives:ce.buildDirective,buildLocations:ce.buildLocations});typeof(N==null?void 0:N.customData)<"u"&&B.set(O.getCustomDataKey(),N.customData)}if(this.installersCustomData=B,await ro(m),n==="skip-build")return;let S=new Set(this.storedPackages.keys()),P=new Set(p.keys());for(let O of P)S.delete(O);let F=(0,V0.createHash)("sha512");F.update(process.versions.node),await this.configuration.triggerHook(O=>O.globalHashGeneration,this,O=>{F.update("\0"),F.update(O)});let H=F.digest("hex"),q=new Map,_=O=>{let N=q.get(O.locatorHash);if(typeof N<"u")return N;let ce=this.storedPackages.get(O.locatorHash);if(typeof ce>"u")throw new Error("Assertion failed: The package should have been registered");let he=(0,V0.createHash)("sha512");he.update(O.locatorHash),q.set(O.locatorHash,"<recursive>");for(let Pe of ce.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(typeof De>"u")throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);let Re=this.storedPackages.get(De);if(typeof Re>"u")throw new Error("Assertion failed: The package should have been registered");he.update(_(Re))}return N=he.digest("hex"),q.set(O.locatorHash,N),N},X=(O,N)=>{let ce=(0,V0.createHash)("sha512");ce.update(H),ce.update(_(O));for(let he of N)ce.update(he);return ce.digest("hex")},W=new Map,Z=!1,A=O=>{let N=new Set([O.locatorHash]);for(let ce of N){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");for(let Pe of he.dependencies.values()){let De=this.storedResolutions.get(Pe.descriptorHash);if(!De)throw new Error(`Assertion failed: The resolution (${$t(this.configuration,Pe)}) should have been registered`);if(De!==O.locatorHash&&P.has(De))return!1;let Re=this.storedPackages.get(De);if(!Re)throw new Error("Assertion failed: The package should have been registered");let se=this.tryWorkspaceByLocator(Re);if(se){if(se.anchoredLocator.locatorHash!==O.locatorHash&&P.has(se.anchoredLocator.locatorHash))return!1;N.add(se.anchoredLocator.locatorHash)}N.add(De)}}return!0};for(;P.size>0;){let O=P.size,N=[];for(let ce of P){let he=this.storedPackages.get(ce);if(!he)throw new Error("Assertion failed: The package should have been registered");if(!A(he))continue;let Pe=p.get(he.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let De=X(he,Pe.buildLocations);if(this.storedBuildState.get(he.locatorHash)===De){W.set(he.locatorHash,De),P.delete(ce);continue}Z||(await this.persistInstallStateFile(),Z=!0),this.storedBuildState.has(he.locatorHash)?t.reportInfo(8,`${Ct(this.configuration,he)} must be rebuilt because its dependency tree changed`):t.reportInfo(7,`${Ct(this.configuration,he)} must be built because it never has been before or the last one failed`);let Re=Pe.buildLocations.map(async se=>{if(!v.isAbsolute(se))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${se})`);for(let[Ae,ye]of Pe.directives){let ge=`# This file contains the result of Yarn building a package (${ms(he)}) -`;switch(Ae){case 0:ge+=`# Script name: ${ye} -`;break;case 1:ge+=`# Script code: ${ye} -`;break}let oe=null;if(!await M.mktempPromise(async ie=>{let G=v.join(ie,"build.log"),{stdout:fe,stderr:re}=this.configuration.getSubprocessStreams(G,{header:ge,prefix:Ct(this.configuration,he),report:t}),de;try{switch(Ae){case 0:de=await NB(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break;case 1:de=await JR(he,ye,[],{cwd:se,project:this,stdin:oe,stdout:fe,stderr:re});break}}catch(vt){re.write(vt.stack),de=1}if(fe.end(),re.end(),de===0)return!0;M.detachTemp(ie);let Ze=`${Ct(this.configuration,he)} couldn't be built successfully (exit code ${_e(this.configuration,de,Ke.NUMBER)}, logs can be found here: ${_e(this.configuration,G,Ke.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(t.reportInfo(9,Ze),!0):(t.reportError(9,Ze),!1)}))return!1}return!0});N.push(...Re,Promise.allSettled(Re).then(se=>{P.delete(ce),se.every(Ae=>Ae.status==="fulfilled"&&Ae.value===!0)&&W.set(he.locatorHash,De)}))}if(await ro(N),O===P.size){let ce=Array.from(P).map(he=>{let Pe=this.storedPackages.get(he);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return Ct(this.configuration,Pe)}).join(", ");t.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ce})`);break}}this.storedBuildState=W}async install(e){var a,l;let t=this.configuration.get("nodeLinker");(a=Ee.telemetry)==null||a.reportInstall(t),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status="inactive";let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await M.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new rt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let h=_e(this.configuration,g,Ke.PACKAGE_EXTENSION);switch(g.status){case"inactive":e.report.reportWarning(68,`${h}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${h}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=Zl(n,this.generateLockfile());if(c!==n){let u=SZ(i,i,n,c,void 0,void 0,{maxEditLength:100});if(u){e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let h of g.lines)h.startsWith("+")?e.report.reportError(28,_e(this.configuration,h,Ke.ADDED)):h.startsWith("-")?e.report.reportError(28,_e(this.configuration,h,Ke.REMOVED)):e.report.reportInfo(null,_e(this.configuration,h,"grey"))}e.report.reportSeparator()}throw new rt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status==="active"&&((l=Ee.telemetry)==null||l.reportPackageExtension(Qc(g,Ke.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject>"u"||e.persistProject)&&e.mode!=="update-lockfile"&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>bw(c,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${_e(this.configuration,"mode=update-lockfile",Ke.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>bw(u,{cwd:this.cwd})));for(let u=0;u<s.length;++u)o[u]!==c[u]&&e.report.reportError(64,`The checksum for ${s[u]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile(),await this.configuration.triggerHook(c=>c.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let t={};t.__metadata={version:N$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let h of s){let p=this.storedDescriptors.get(h);if(!p)throw new Error("Assertion failed: The descriptor should have been registered");a.push(p)}let l=a.map(h=>vn(h)).sort().join(", "),c=new ot;c.version=o.linkType==="HARD"?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g<"u"){let h=g.indexOf("/");if(h===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let p=g.slice(0,h),d=g.slice(h+1);typeof t.__metadata.cacheKey>"u"&&(t.__metadata.cacheKey=p),p===t.__metadata.cacheKey?u=d:u=g}t[l]={...c.exportTo({},{compatibilityMode:!1}),linkType:o.linkType.toLowerCase(),resolution:ms(o),checksum:u,conditions:o.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. -`,`# Manual changes might be lost - proceed with caution! -`].join("")} -`+Qa(t)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),t="";try{t=await M.readFilePromise(e,"utf8")}catch{}let i=this.generateLockfile(),n=Zl(t,i);n!==t&&(await M.writeFilePromise(e,n),this.lockFileChecksum=L$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(JN))e.push(...o);let t=(0,X0.default)(this,e),i=WN.default.serialize(t),n=rn(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await M.mkdirPromise(v.dirname(s),{recursive:!0}),await M.writeFilePromise(s,await $Me(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:t=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath"),s;try{let o=await e1e(await M.readFilePromise(n));s=WN.default.deserialize(o),this.installStateChecksum=rn(o)}catch{t&&await this.applyLightResolution();return}e&&typeof s.installersCustomData<"u"&&(this.installersCustomData=s.installersCustomData),i&&Object.assign(this,(0,X0.default)(s,JN.restoreBuildState)),t&&(s.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,X0.default)(s,JN.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new $r}),await this.persistInstallStateFile()}async persist(){let e=(0,Z0.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(t=>e(()=>t.persistManifest()))])}async cacheCleanup({cache:e,report:t}){if(this.configuration.get("enableGlobalCache"))return;let i=new Set([".gitignore"]);if(!Zk(e.cwd,this.cwd)||!await M.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await M.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?t.reportError(56,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:t.reportInfo(19,`${_e(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await M.removePromise(l)))}n&&s!==0&&t.reportInfo(19,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`)}};function t1e({project:r,allDescriptors:e,allResolutions:t,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,peerRequirements:o=new Map,volatileDescriptors:a=new Set,report:l}){var X;let c=new Map,u=[],g=new Map,h=new Map,p=new Map,d=new Map,m=new Map,y=new Map(r.workspaces.map(W=>{let Z=W.anchoredLocator.locatorHash,A=i.get(Z);if(typeof A>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[Z,iC(A)]})),B=()=>{let W=M.mktempSync(),Z=v.join(W,"stacktrace.log"),A=String(u.length+1).length,ne=u.map((ue,te)=>`${`${te+1}.`.padStart(A," ")} ${ms(ue)} -`).join("");throw M.writeFileSync(Z,ne),M.detachTemp(W),new rt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${K.fromPortablePath(Z)}`)},S=W=>{let Z=t.get(W.descriptorHash);if(typeof Z>"u")throw new Error("Assertion failed: The resolution should have been registered");let A=i.get(Z);if(!A)throw new Error("Assertion failed: The package could not be found");return A},P=(W,Z,A,{top:ne,optional:ue})=>{u.length>1e3&&B(),u.push(Z);let te=F(W,Z,A,{top:ne,optional:ue});return u.pop(),te},F=(W,Z,A,{top:ne,optional:ue})=>{if(ue||s.delete(Z.locatorHash),n.has(Z.locatorHash))return;n.add(Z.locatorHash);let te=i.get(Z.locatorHash);if(!te)throw new Error(`Assertion failed: The package (${Ct(r.configuration,Z)}) should have been registered`);let O=[],N=[],ce=[],he=[],Pe=[];for(let Re of Array.from(te.dependencies.values())){if(te.peerDependencies.has(Re.identHash)&&te.locatorHash!==ne)continue;if(qA(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");a.delete(Re.descriptorHash);let se=ue;if(!se){let G=te.dependenciesMeta.get(Tt(Re));if(typeof G<"u"){let fe=G.get(null);typeof fe<"u"&&fe.optional&&(se=!0)}}let Ae=t.get(Re.descriptorHash);if(!Ae)throw new Error(`Assertion failed: The resolution (${$t(r.configuration,Re)}) should have been registered`);let ye=y.get(Ae)||i.get(Ae);if(!ye)throw new Error(`Assertion failed: The package (${Ae}, resolved from ${$t(r.configuration,Re)}) should have been registered`);if(ye.peerDependencies.size===0){P(Re,ye,new Map,{top:ne,optional:se});continue}let ge,oe,Ye=new Set,ie;N.push(()=>{ge=jk(Re,Z.locatorHash),oe=Gk(ye,Z.locatorHash),te.dependencies.delete(Re.identHash),te.dependencies.set(ge.identHash,ge),t.set(ge.descriptorHash,oe.locatorHash),e.set(ge.descriptorHash,ge),i.set(oe.locatorHash,oe),O.push([ye,ge,oe])}),ce.push(()=>{var G;ie=new Map;for(let fe of oe.peerDependencies.values()){let re=te.dependencies.get(fe.identHash);if(!re&&oC(Z,fe)&&(W.identHash===Z.identHash?re=W:(re=zt(Z,W.range),e.set(re.descriptorHash,re),t.set(re.descriptorHash,Z.locatorHash),a.delete(re.descriptorHash))),(!re||re.range==="missing:")&&oe.dependencies.has(fe.identHash)){oe.peerDependencies.delete(fe.identHash);continue}re||(re=zt(fe,"missing:")),oe.dependencies.set(re.identHash,re),qA(re)&&bc(p,re.descriptorHash).add(oe.locatorHash),g.set(re.identHash,re),re.range==="missing:"&&Ye.add(re.identHash),ie.set(fe.identHash,(G=A.get(fe.identHash))!=null?G:oe.locatorHash)}oe.dependencies=new Map(Qn(oe.dependencies,([fe,re])=>Tt(re)))}),he.push(()=>{if(!i.has(oe.locatorHash))return;let G=c.get(ye.locatorHash);typeof G=="number"&&G>=2&&B();let fe=c.get(ye.locatorHash),re=typeof fe<"u"?fe+1:1;c.set(ye.locatorHash,re),P(ge,oe,ie,{top:ne,optional:se}),c.set(ye.locatorHash,re-1)}),Pe.push(()=>{let G=te.dependencies.get(Re.identHash);if(typeof G>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let fe=t.get(G.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(bc(m,fe).add(Z.locatorHash),!!i.has(oe.locatorHash)){for(let re of oe.peerDependencies.values()){let de=ie.get(re.identHash);if(typeof de>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hf(pf(d,de),Tt(re)).push(oe.locatorHash)}for(let re of Ye)oe.dependencies.delete(re)}})}for(let Re of[...N,...ce])Re();let De;do{De=!0;for(let[Re,se,Ae]of O){let ye=pf(h,Re.locatorHash),ge=rn(...[...Ae.dependencies.values()].map(G=>{let fe=G.range!=="missing:"?t.get(G.descriptorHash):"missing:";if(typeof fe>"u")throw new Error(`Assertion failed: Expected the resolution for ${$t(r.configuration,G)} to have been registered`);return fe===ne?`${fe} (top)`:fe}),se.identHash),oe=ye.get(ge);if(typeof oe>"u"){ye.set(ge,se);continue}if(oe===se)continue;i.delete(Ae.locatorHash),e.delete(se.descriptorHash),t.delete(se.descriptorHash),n.delete(Ae.locatorHash);let Ye=p.get(se.descriptorHash)||[],ie=[te.locatorHash,...Ye];p.delete(se.descriptorHash);for(let G of ie){let fe=i.get(G);typeof fe>"u"||(fe.dependencies.get(se.identHash).descriptorHash!==oe.descriptorHash&&(De=!1),fe.dependencies.set(se.identHash,oe))}}}while(!De);for(let Re of[...he,...Pe])Re()};for(let W of r.workspaces){let Z=W.anchoredLocator;a.delete(W.anchoredDescriptor.descriptorHash),P(W.anchoredDescriptor,Z,new Map,{top:Z.locatorHash,optional:!1})}let H;(A=>(A[A.NotProvided=0]="NotProvided",A[A.NotCompatible=1]="NotCompatible"))(H||(H={}));let q=[];for(let[W,Z]of m){let A=i.get(W);if(typeof A>"u")throw new Error("Assertion failed: Expected the root to be registered");let ne=d.get(W);if(!(typeof ne>"u"))for(let ue of Z){let te=i.get(ue);if(!(typeof te>"u"))for(let[O,N]of ne){let ce=tn(O);if(te.peerDependencies.has(ce.identHash))continue;let he=`p${rn(ue,O,W).slice(0,5)}`;o.set(he,{subject:ue,requested:ce,rootRequester:W,allRequesters:N});let Pe=A.dependencies.get(ce.identHash);if(typeof Pe<"u"){let De=S(Pe),Re=(X=De.version)!=null?X:"0.0.0",se=new Set;for(let ye of N){let ge=i.get(ye);if(typeof ge>"u")throw new Error("Assertion failed: Expected the link to be registered");let oe=ge.peerDependencies.get(ce.identHash);if(typeof oe>"u")throw new Error("Assertion failed: Expected the ident to be registered");se.add(oe.range)}[...se].every(ye=>{if(ye.startsWith(Hr.protocol)){if(!r.tryWorkspaceByLocator(De))return!1;ye=ye.slice(Hr.protocol.length),(ye==="^"||ye==="~")&&(ye="*")}return Fc(Re,ye)})||q.push({type:1,subject:te,requested:ce,requester:A,version:Re,hash:he,requirementCount:N.length})}else{let De=A.peerDependenciesMeta.get(O);De!=null&&De.optional||q.push({type:0,subject:te,requested:ce,requester:A,hash:he})}}}}let _=[W=>Yk(W.subject),W=>Tt(W.requested),W=>`${W.type}`];l==null||l.startSectionSync({reportFooter:()=>{l.reportWarning(0,`Some peer dependencies are incorrectly met; run ${_e(r.configuration,"yarn explain peer-requirements <hash>",Ke.CODE)} for details, where ${_e(r.configuration,"<hash>",Ke.CODE)} is the six-letter p-prefixed code`)},skipIfEmpty:!0},()=>{for(let W of Qn(q,_))switch(W.type){case 0:l.reportWarning(2,`${Ct(r.configuration,W.subject)} doesn't provide ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}), requested by ${ai(r.configuration,W.requester)}`);break;case 1:{let Z=W.requirementCount>1?"and some of its descendants request":"requests";l.reportWarning(60,`${Ct(r.configuration,W.subject)} provides ${ai(r.configuration,W.requested)} (${_e(r.configuration,W.hash,Ke.CODE)}) with version ${lC(r.configuration,W.version)}, which doesn't satisfy what ${ai(r.configuration,W.requester)} ${Z}`)}break}})}var Sh=class{constructor(e,t){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!M.existsSync(i),this.sendReport(t),this.startBuffer()}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,t){bc(this.values,e).add(t)}reportEnumerator(e,t){bc(this.enumerators,e).add(rn(t))}reportHit(e,t="*"){let i=pf(this.hits,e),n=La(i,t,()=>0);i.set(t,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,h;let t=this.getRegistryPath(),i;try{i=M.readJsonSync(t)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{M.mkdirSync(v.dirname(t),{recursive:!0}),M.writeJsonSync(t,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=p=>DR(l,p,{configuration:this.configuration}).catch(()=>{});for(let[p,d]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(d).length===0)continue;let m=d;m.userId=p,m.reportType="primary";for(let S of Object.keys((h=m.enumerators)!=null?h:{}))m.enumerators[S]=m.enumerators[S].length;c(m);let y=new Map,B=20;for(let[S,P]of Object.entries(m.values))P.length>0&&y.set(S,P.slice(0,B));for(;y.size>0;){let S={};S.userId=p,S.reportType="secondary",S.metrics={};for(let[P,F]of y)S.metrics[P]=F.shift(),F.length===0&&y.delete(P);c(S)}}}applyChanges(){var o,a,l,c,u,g,h,p,d;let e=this.getRegistryPath(),t;try{t=M.readJsonSync(e)}catch{t={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=t.blocks=(a=t.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let m of this.hits.keys()){let y=s.hits=(c=s.hits)!=null?c:{},B=y[m]=(u=y[m])!=null?u:{};for(let[S,P]of this.hits.get(m))B[S]=((g=B[S])!=null?g:0)+P}for(let m of["values","enumerators"])for(let y of this[m].keys()){let B=s[m]=(h=s[m])!=null?h:{};B[y]=[...new Set([...(p=B[y])!=null?p:[],...(d=this[m].get(y))!=null?d:[]])]}M.mkdirSync(v.dirname(e),{recursive:!0}),M.writeJsonSync(e,t)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var XN=J("child_process"),M$=ve(cc());var ZN=J("fs");var vh=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function r1e(r){let e=K.fromPortablePath(r);process.on("SIGINT",()=>{}),e?(0,XN.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}}):(0,XN.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"}})}async function _0({binaryVersion:r,pluginConfiguration:e}){async function t(){let n=new jn({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:r});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var m,y,B,S,P;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(!me.parseOptionalBoolean(process.env.YARN_IGNORE_NODE)&&!Qt.satisfiesWithPrereleases(s,o))throw new we(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let l=await Ee.find(K.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),c=l.get("yarnPath"),u=l.get("ignorePath"),g=l.get("ignoreCwd"),h=K.toPortablePath(K.resolve(process.argv[1])),p=F=>M.readFilePromise(F).catch(()=>Buffer.of());if(!u&&!g&&await(async()=>c===h||Buffer.compare(...await Promise.all([p(c),p(h)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(c!==null&&!u)if(!M.existsSync(c))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${l.sources.get("yarnPath")}), but the specified location doesn't exist (${c}).`))),process.exitCode=1;else try{r1e(c)}catch(F){process.exitCode=F.code||1}else{u&&delete process.env.YARN_IGNORE_PATH,l.get("enableTelemetry")&&!M$.isCI&&process.stdout.isTTY&&(Ee.telemetry=new Sh(l,"puba9cdc10ec5790a2cf4969dd413a47270")),(m=Ee.telemetry)==null||m.reportVersion(r);for(let[_,X]of l.plugins.entries()){vh.has((B=(y=_.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:y[1])!=null?B:"")&&((S=Ee.telemetry)==null||S.reportPluginName(_));for(let W of X.commands||[])n.register(W)}let H=n.process(process.argv.slice(2));H.help||(P=Ee.telemetry)==null||P.reportCommandName(H.path.join(" "));let q=H.cwd;if(typeof q<"u"&&!g){let _=(0,ZN.realpathSync)(process.cwd()),X=(0,ZN.realpathSync)(q);if(_!==X){process.chdir(q),await t();return}}await n.runExit(H,{cwd:K.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return t().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>M.rmtempPromise())}function K$(r){r.Command.Path=(...e)=>t=>{t.paths=t.paths||[],t.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])r.Command[e]=(...t)=>(i,n)=>{let s=r.Option[e](...t);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return r}var Tm={};ct(Tm,{BaseCommand:()=>xe,WorkspaceRequiredError:()=>lt,getDynamicLibs:()=>_ie,getPluginConfiguration:()=>wb,main:()=>_0,openWorkspace:()=>Hh,pluginCommands:()=>vh});var xe=class extends Qe{constructor(){super(...arguments);this.cwd=z.String("--cwd",{hidden:!0})}};var lt=class extends we{constructor(e,t){let i=v.relative(e,t),n=v.join(e,ot.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var AYe=ve(zr());As();var lYe=ve(VT()),_ie=()=>new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",gd],["semver",AYe],["typanion",pn],["yup",lYe]]);async function Hh(r,e){let{project:t,workspace:i}=await Ge.find(r,e);if(!i)throw new lt(t.cwd,e);return i}var KVe=ve(zr());As();var UVe=ve(VT());var CO={};ct(CO,{dedupeUtils:()=>Fb,default:()=>yWe,suggestUtils:()=>qh});var _ae=ve(cc());var Use=ve(Um());As();var qh={};ct(qh,{Modifier:()=>HL,Strategy:()=>Pb,Target:()=>Hm,WorkspaceModifier:()=>Nse,applyModifier:()=>Lse,extractDescriptorFromPath:()=>jL,extractRangeModifier:()=>Tse,fetchDescriptorFrom:()=>GL,findProjectDescriptors:()=>Kse,getModifier:()=>jm,getSuggestedDescriptors:()=>Gm,makeWorkspaceDescriptor:()=>Mse,toWorkspaceModifier:()=>Ose});var UL=ve(zr()),vqe="workspace:",Hm=(i=>(i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies",i))(Hm||{}),HL=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="",i))(HL||{}),Nse=(i=>(i.CARET="^",i.TILDE="~",i.EXACT="*",i))(Nse||{}),Pb=(s=>(s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache",s))(Pb||{});function jm(r,e){return r.exact?"":r.caret?"^":r.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var xqe=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Tse(r,{project:e}){let t=r.match(xqe);return t?t[1]:e.configuration.get("defaultSemverRangePrefix")}function Lse(r,e){let{protocol:t,source:i,params:n,selector:s}=x.parseRange(r.range);return UL.default.valid(s)&&(s=`${e}${r.range}`),x.makeDescriptor(r,x.makeRange({protocol:t,source:i,params:n,selector:s}))}function Ose(r){switch(r){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${r}"`)}}function Mse(r,e){return x.makeDescriptor(r.anchoredDescriptor,`${vqe}${Ose(e)}`)}async function Kse(r,{project:e,target:t}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(t==="peerDependencies"){let o=s.manifest.peerDependencies.get(r.identHash);o!==void 0&&n(o).locators.push(s.anchoredLocator)}else{let o=s.manifest.dependencies.get(r.identHash),a=s.manifest.devDependencies.get(r.identHash);t==="devDependencies"?a!==void 0?n(a).locators.push(s.anchoredLocator):o!==void 0&&n(o).locators.push(s.anchoredLocator):o!==void 0?n(o).locators.push(s.anchoredLocator):a!==void 0&&n(a).locators.push(s.anchoredLocator)}return i}async function jL(r,{cwd:e,workspace:t}){return await Pqe(async i=>{v.isAbsolute(r)||(r=v.relative(t.cwd,v.resolve(e,r)),r.match(/^\.{0,2}\//)||(r=`./${r}`));let{project:n}=t,s=await GL(x.makeIdent(null,"archive"),r,{project:t.project,cache:i,workspace:t});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new $r,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,t.anchoredLocator,c),g=x.convertDescriptorToLocator(u),h=await l.fetch(g,c),p=await ot.find(h.prefixPath,{baseFs:h.packageFs});if(!p.name)throw new Error("Target path doesn't have a name");return x.makeDescriptor(p.name,r)})}async function Gm(r,{project:e,workspace:t,cache:i,target:n,modifier:s,strategies:o,maxResults:a=1/0}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(r.range!=="unknown")return{suggestions:[{descriptor:r,name:`Use ${x.prettyDescriptor(e.configuration,r)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof t<"u"&&t!==null&&t.manifest[n].get(r.identHash)||null,c=[],u=[],g=async h=>{try{await h()}catch(p){u.push(p)}};for(let h of o){if(c.length>=a)break;switch(h){case"keep":await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${x.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case"reuse":await g(async()=>{for(let{descriptor:p,locators:d}of(await Kse(r,{project:e,target:n})).values()){if(d.length===1&&d[0].locatorHash===t.anchoredLocator.locatorHash&&o.includes("keep"))continue;let m=`(originally used by ${x.prettyLocator(e.configuration,d[0])}`;m+=d.length>1?` and ${d.length-1} other${d.length>2?"s":""})`:")",c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:m})}});break;case"cache":await g(async()=>{for(let p of e.storedDescriptors.values())p.identHash===r.identHash&&c.push({descriptor:p,name:`Reuse ${x.prettyDescriptor(e.configuration,p)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await g(async()=>{if(t.manifest.name!==null&&r.identHash===t.manifest.name.identHash)return;let p=e.tryWorkspaceByIdent(r);if(p===null)return;let d=Mse(p,s);c.push({descriptor:d,name:`Attach ${x.prettyDescriptor(e.configuration,d)}`,reason:`(local workspace at ${$.pretty(e.configuration,p.relativeCwd,$.Type.PATH)})`})});break;case"latest":await g(async()=>{if(r.range!=="unknown")c.push({descriptor:r,name:`Use ${x.prettyRange(e.configuration,r.range)}`,reason:"(explicit range requested)"});else if(n==="peerDependencies")c.push({descriptor:x.makeDescriptor(r,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:$.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let p=await GL(r,"latest",{project:e,cache:i,workspace:t,preserveModifier:!1});p&&(p=Lse(p,s),c.push({descriptor:p,name:`Use ${x.prettyDescriptor(e.configuration,p)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function GL(r,e,{project:t,cache:i,workspace:n,preserveModifier:s=!0}){let o=x.makeDescriptor(r,e),a=new $r,l=t.configuration.makeFetcher(),c=t.configuration.makeResolver(),u={project:t,fetcher:l,cache:i,checksums:t.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g={...u,resolver:c,fetchOptions:u},h=c.bindDescriptor(o,n.anchoredLocator,g),p=await c.getCandidates(h,new Map,g);if(p.length===0)return null;let d=p[0],{protocol:m,source:y,params:B,selector:S}=x.parseRange(x.convertToManifestRange(d.reference));if(m===t.configuration.get("defaultProtocol")&&(m=null),UL.default.valid(S)&&s!==!1){let P=typeof s=="string"?s:o.range;S=Tse(P,{project:t})+S}return x.makeDescriptor(d,x.makeRange({protocol:m,source:y,params:B,selector:S}))}async function Pqe(r){return await M.mktempPromise(async e=>{let t=Ee.create(e);return t.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await r(new Dt(e,{configuration:t,check:!1,immutable:!1}))})}var cu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=z.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=z.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=z.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=z.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=z.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=z.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.silent=z.Boolean("--silent",{hidden:!0});this.packages=z.Rest()}async execute(){var B;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(B=this.interactive)!=null?B:t.get("preferInteractive"),a=o||t.get("preferReuse"),l=jm(this,i),c=[a?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(S=>typeof S<"u"),u=o?1/0:1,g=await Promise.all(this.packages.map(async S=>{let P=S.match(/^\.{0,2}\//)?await jL(S,{cwd:this.context.cwd,workspace:n}):x.tryParseDescriptor(S),F=S.match(/^(https?:|git@github)/);if(F)throw new we(`It seems you are trying to add a package using a ${$.pretty(t,`${F[0]}...`,$.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${$.pretty(t,"yarn add",$.Type.CODE)} ${$.pretty(t,x.makeDescriptor(x.makeIdent(null,"my-package"),`${F[0]}...`),$.Type.DESCRIPTOR)}`);if(!P)throw new we(`The ${$.pretty(t,S,$.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let H=kqe(n,P,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(H.map(async _=>{let X=await Gm(P,{project:i,workspace:n,cache:s,target:_,modifier:l,strategies:c,maxResults:u});return{request:P,suggestedDescriptors:X,target:_}}))})).then(S=>S.flat()),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async S=>{for(let{request:P,suggestedDescriptors:{suggestions:F,rejections:H}}of g)if(F.filter(_=>_.descriptor!==null).length===0){let[_]=H;if(typeof _>"u")throw new Error("Assertion failed: Expected an error to have been set");i.configuration.get("enableNetwork")?S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range`):S.reportError(27,`${x.prettyDescriptor(t,P)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),S.reportSeparator(),S.reportExceptionOnce(_)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[],m=[];for(let{suggestedDescriptors:{suggestions:S},target:P}of g){let F,H=S.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,Use.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:S.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=n.manifest[P].get(F.identHash);(typeof X>"u"||X.descriptorHash!==F.descriptorHash)&&(n.manifest[P].set(F.identHash,F),this.optional&&(P==="dependencies"?n.manifest.ensureDependencyMeta({...F,range:"unknown"}).optional=!0:P==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...F,range:"unknown"}).optional=!0)),typeof X>"u"?d.push([n,P,F,c]):m.push([n,P,X,F]))}return await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyAddition,d),await t.triggerMultipleHooks(S=>S.afterWorkspaceDependencyReplacement,m),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async S=>{await i.install({cache:s,report:S,mode:this.mode})})).exitCode()}};cu.paths=[["add"]],cu.usage=Qe.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"<package>\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function kqe(r,e,{dev:t,peer:i,preferDev:n,optional:s}){let o=r.manifest["dependencies"].has(e.identHash),a=r.manifest["devDependencies"].has(e.identHash),l=r.manifest["peerDependencies"].has(e.identHash);if((t||i)&&o)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!t&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((t||n)&&s)throw new we(`Package "${x.prettyIdent(r.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let c=[];return i&&c.push("peerDependencies"),(t||n)&&c.push("devDependencies"),s&&c.push("dependencies"),c.length>0?c:a?["devDependencies"]:l?["peerDependencies"]:["dependencies"]}var uu=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);if(await i.restoreInstallState(),this.name){let a=(await Yt.getPackageAccessibleBinaries(n,{project:i})).get(this.name);if(!a)throw new we(`Couldn't find a binary named "${this.name}" for package "${x.prettyLocator(t,n)}"`);let[,l]=a;return this.context.stdout.write(`${l} -`),0}return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let a=await Yt.getPackageAccessibleBinaries(n,{project:i}),c=Array.from(a.keys()).reduce((u,g)=>Math.max(u,g.length),0);for(let[u,[g,h]]of a)o.reportJson({name:u,source:x.stringifyIdent(g),path:h});if(this.verbose)for(let[u,[g]]of a)o.reportInfo(null,`${u.padEnd(c," ")} ${x.prettyLocator(t,g)}`);else for(let u of a.keys())o.reportInfo(null,u)})).exitCode()}};uu.paths=[["bin"]],uu.usage=Qe.Usage({description:"get the path to a binary script",details:` - When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. - - When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var gu=class extends xe{constructor(){super(...arguments);this.mirror=z.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=z.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await Dt.find(t);return(await He.start({configuration:t,stdout:this.context.stdout},async()=>{let s=(this.all||this.mirror)&&i.mirrorCwd!==null,o=!this.mirror;s&&(await M.removePromise(i.mirrorCwd),await t.triggerHook(a=>a.cleanGlobalArtifacts,t)),o&&await M.removePromise(i.cwd)})).exitCode()}};gu.paths=[["cache","clean"],["cache","clear"]],gu.usage=Qe.Usage({description:"remove the shared cache files",details:` - This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var Hse=ve(cb()),YL=J("util"),fu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=z.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(i)>"u")throw new we(`Couldn't find a configuration settings named "${i}"`);let o=t.getSpecial(i,{hideSecrets:!this.unsafe,getNativePaths:!0}),a=me.convertMapsToIndexableObjects(o),l=n?(0,Hse.default)(a,n):a,c=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async u=>{u.reportJson(l)});if(!this.json){if(typeof l=="string")return this.context.stdout.write(`${l} -`),c.exitCode();YL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,YL.inspect)(l,{depth:1/0,colors:t.get("enableColors"),compact:!1})} -`)}return c.exitCode()}};fu.paths=[["config","get"]],fu.usage=Qe.Usage({description:"read a configuration settings",details:` - This command will print a configuration setting. - - Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var $oe=ve(XL()),eae=ve(cb()),tae=ve(_oe()),ZL=J("util"),hu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String();this.value=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new we("This setting only affects the file it's in, and thus cannot be set from the CLI");let a=this.json?JSON.parse(this.value):this.value;await(this.home?d=>Ee.updateHomeConfiguration(d):d=>Ee.updateConfiguration(i(),d))(d=>{if(s){let m=(0,$oe.default)(d);return(0,tae.default)(m,this.name,a),m}else return{...d,[n]:a}});let u=(await Ee.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),g=me.convertMapsToIndexableObjects(u),h=s?(0,eae.default)(g,s):g;return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async d=>{ZL.inspect.styles.name="cyan",d.reportInfo(0,`Successfully set ${this.name} to ${(0,ZL.inspect)(h,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};hu.paths=[["config","set"]],hu.usage=Qe.Usage({description:"change a configuration settings",details:` - This command will set a configuration setting. - - When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). - - When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var cae=ve(XL()),uae=ve(Am()),gae=ve(lae()),pu=class extends xe{constructor(){super(...arguments);this.home=z.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=()=>{if(!t.projectCwd)throw new we("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),s=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new we(`Couldn't find a configuration settings named "${n}"`);let a=this.home?c=>Ee.updateHomeConfiguration(c):c=>Ee.updateConfiguration(i(),c);return(await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async c=>{let u=!1;await a(g=>{if(!(0,uae.default)(g,this.name))return c.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),u=!0,g;let h=s?(0,cae.default)(g):{...g};return(0,gae.default)(h,this.name),h}),u||c.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};pu.paths=[["config","unset"]],pu.usage=Qe.Usage({description:"unset a configuration setting",details:` - This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var _L=J("util"),du=class extends xe{constructor(){super(...arguments);this.verbose=z.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=z.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins,{strict:!1});return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{if(t.invalid.size>0&&!this.json){for(let[s,o]of t.invalid)n.reportError(34,`Invalid configuration key "${s}" in ${o}`);n.reportSeparator()}if(this.json){let s=me.sortMap(t.settings.keys(),o=>o);for(let o of s){let a=t.settings.get(o),l=t.getSpecial(o,{hideSecrets:!0,getNativePaths:!0}),c=t.sources.get(o);this.verbose?n.reportJson({key:o,effective:l,source:c}):n.reportJson({key:o,effective:l,source:c,...a})}}else{let s=me.sortMap(t.settings.keys(),l=>l),o=s.reduce((l,c)=>Math.max(l,c.length),0),a={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let l=s.map(u=>{let g=t.settings.get(u);if(!g)throw new Error(`Assertion failed: This settings ("${u}") should have been registered`);let h=this.why?t.sources.get(u)||"<default>":g.description;return[u,h]}),c=l.reduce((u,[,g])=>Math.max(u,g.length),0);for(let[u,g]of l)n.reportInfo(null,`${u.padEnd(o," ")} ${g.padEnd(c," ")} ${(0,_L.inspect)(t.getSpecial(u,{hideSecrets:!0,getNativePaths:!0}),a)}`)}else for(let l of s)n.reportInfo(null,`${l.padEnd(o," ")} ${(0,_L.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),a)}`)}})).exitCode()}};du.paths=[["config"]],du.usage=Qe.Usage({description:"display the current configuration",details:` - This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});As();var Fb={};ct(Fb,{Strategy:()=>qm,acceptedStrategies:()=>F4e,dedupe:()=>$L});var fae=ve(bn()),qm=(e=>(e.HIGHEST="highest",e))(qm||{}),F4e=new Set(Object.values(qm)),N4e={highest:async(r,e,{resolver:t,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of r.storedResolutions){let c=r.storedDescriptors.get(a);if(typeof c>"u")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);me.getSetWithDefault(o,c.identHash).add(l)}return Array.from(r.storedDescriptors.values(),async a=>{if(e.length&&!fae.default.isMatch(x.stringifyIdent(a),e))return null;let l=r.storedResolutions.get(a.descriptorHash);if(typeof l>"u")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=r.originalPackages.get(l);if(typeof c>"u"||!t.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u>"u")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(y=>{let B=r.originalPackages.get(y);if(typeof B>"u")throw new Error(`Assertion failed: The package (${y}) should have been registered`);return B.reference}),h=await t.getSatisfying(a,g,n),p=h==null?void 0:h[0];if(typeof p>"u")return null;let d=p.locatorHash,m=r.originalPackages.get(d);if(typeof m>"u")throw new Error(`Assertion failed: The package (${d}) should have been registered`);return d===l?null:{descriptor:a,currentPackage:c,updatedPackage:m}})}};async function $L(r,{strategy:e,patterns:t,cache:i,report:n}){let{configuration:s}=r,o=new $r,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:r.storedChecksums,fetcher:l,project:r,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:r,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let g=N4e[e],h=await g(r,t,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),p=xi.progressViaCounter(h.length);await n.reportProgress(p);let d=0;await Promise.all(h.map(B=>B.then(S=>{if(S===null)return;d++;let{descriptor:P,currentPackage:F,updatedPackage:H}=S;n.reportInfo(0,`${x.prettyDescriptor(s,P)} can be deduped from ${x.prettyLocator(s,F)} to ${x.prettyLocator(s,H)}`),n.reportJson({descriptor:x.stringifyDescriptor(P),currentResolution:x.stringifyLocator(F),updatedResolution:x.stringifyLocator(H)}),r.storedResolutions.set(P.descriptorHash,H.locatorHash)}).finally(()=>p.tick())));let m;switch(d){case 0:m="No packages";break;case 1:m="One package";break;default:m=`${d} packages`}let y=$.pretty(s,e,$.Type.CODE);return n.reportInfo(0,`${m} can be deduped using the ${y} strategy`),d})}var Cu=class extends xe{constructor(){super(...arguments);this.strategy=z.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Zi(qm)});this.check=z.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=await Dt.find(t);await i.restoreInstallState({restoreResolutions:!1});let s=0,o=await He.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async a=>{s=await $L(i,{strategy:this.strategy,patterns:this.patterns,cache:n,report:a})});return o.hasErrors()?o.exitCode():this.check?s?1:0:(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async l=>{await i.install({cache:n,report:l,mode:this.mode})})).exitCode()}};Cu.paths=[["dedupe"]],Cu.usage=Qe.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Vh=class extends xe{async execute(){let{plugins:e}=await Ee.find(this.context.cwd,this.context.plugins),t=[];for(let o of e){let{commands:a}=o[1];if(a){let c=jn.from(a).definitions();t.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=hae()["@yarnpkg/builder"].bundles.standard;for(let o of t){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Vh.paths=[["--clipanion=definitions"]];var Xh=class extends xe{async execute(){this.context.stdout.write(this.cli.usage(null))}};Xh.paths=[["help"],["--help"],["-h"]];var Jm=class extends xe{constructor(){super(...arguments);this.leadingArgument=z.String();this.args=z.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!x.tryParseIdent(this.leadingArgument)){let t=v.resolve(this.context.cwd,K.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};var Zh=class extends xe{async execute(){this.context.stdout.write(`${Nr||"<unknown>"} -`)}};Zh.paths=[["-v"],["--version"]];var mu=class extends xe{constructor(){super(...arguments);this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,locator:n}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState(),await Yt.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:i})}};mu.paths=[["exec"]],mu.usage=Qe.Usage({description:"execute a shell script",details:` - This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. - - It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});As();var Eu=class extends xe{constructor(){super(...arguments);this.hash=z.String({required:!1,validator:ad(od(),[Ad(/^p[0-9a-f]{5}$/)])})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return await i.restoreInstallState({restoreResolutions:!1}),await i.applyLightResolution(),typeof this.hash<"u"?await L4e(this.hash,i,{stdout:this.context.stdout}):(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{var a;let o=[([,l])=>x.stringifyLocator(i.storedPackages.get(l.subject)),([,l])=>x.stringifyIdent(l.requested)];for(let[l,c]of me.sortMap(i.peerRequirements,o)){let u=i.storedPackages.get(c.subject);if(typeof u>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let g=i.storedPackages.get(c.rootRequester);if(typeof g>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let h=(a=u.dependencies.get(c.requested.identHash))!=null?a:null,p=$.pretty(t,l,$.Type.CODE),d=x.prettyLocator(t,u),m=x.prettyIdent(t,c.requested),y=x.prettyIdent(t,g),B=c.allRequesters.length-1,S=`descendant${B===1?"":"s"}`,P=B>0?` and ${B} ${S}`:"",F=h!==null?"provides":"doesn't provide";s.reportInfo(null,`${p} \u2192 ${d} ${F} ${m} to ${y}${P}`)}})).exitCode()}};Eu.paths=[["explain","peer-requirements"]],Eu.usage=Qe.Usage({description:"explain a set of peer requirements",details:` - A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. - - When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. - - When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. - - **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function L4e(r,e,t){let{configuration:i}=e,n=e.peerRequirements.get(r);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${r}"`);return(await He.start({configuration:i,stdout:t.stdout,includeFooter:!1},async o=>{var B,S;let a=e.storedPackages.get(n.subject);if(typeof a>"u")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l>"u")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(B=a.dependencies.get(n.requested.identHash))!=null?B:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g>"u")throw new Error("Assertion failed: Expected the provided package to have been registered");let h=[...n.allRequesters.values()].map(P=>{let F=e.storedPackages.get(P);if(typeof F>"u")throw new Error("Assertion failed: Expected the package to be registered");let H=x.devirtualizeLocator(F),q=e.storedPackages.get(H.locatorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the package to be registered");let _=q.peerDependencies.get(n.requested.identHash);if(typeof _>"u")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:F,peerDependency:_}});if(g!==null){let P=h.every(({peerDependency:F})=>Qt.satisfiesWithPrereleases(g.version,F.range));o.reportInfo(0,`${x.prettyLocator(i,a)} provides ${x.prettyLocator(i,g)} with version ${x.prettyReference(i,(S=g.version)!=null?S:"<missing>")}, which ${P?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(0,`${x.prettyLocator(i,a)} doesn't provide ${x.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let p=$.mark(i),d=[];for(let{pkg:P,peerDependency:F}of me.sortMap(h,H=>x.stringifyLocator(H.pkg))){let q=(g!==null?Qt.satisfiesWithPrereleases(g.version,F.range):!1)?p.Check:p.Cross;d.push({stringifiedLocator:x.stringifyLocator(P),prettyLocator:x.prettyLocator(i,P),prettyRange:x.prettyRange(i,F.range),mark:q})}let m=Math.max(...d.map(({stringifiedLocator:P})=>P.length)),y=Math.max(...d.map(({prettyRange:P})=>P.length));for(let{stringifiedLocator:P,prettyLocator:F,prettyRange:H,mark:q}of me.sortMap(d,({stringifiedLocator:_})=>_))o.reportInfo(null,`${F.padEnd(m+(F.length-P.length)," ")} \u2192 ${H.padEnd(y," ")} ${q}`);d.length>1&&(o.reportSeparator(),o.reportInfo(0,`Note: these requirements start with ${x.prettyLocator(e.configuration,l)}`))})).exitCode()}As();var pae=ve(zr()),Iu=class extends xe{constructor(){super(...arguments);this.onlyIfNeeded=z.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=z.String()}async execute(){var o;let t=await Ee.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let a=t.sources.get("yarnPath");if(!a)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let l=(o=t.projectCwd)!=null?o:t.startingCwd;if(v.contains(l,a))return 0}let i=()=>{if(typeof Nr>"u")throw new we("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n;if(this.version==="self")n=i();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=`https://repo.yarnpkg.com/${await Wm(t,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")n=`https://repo.yarnpkg.com/${await Wm(t,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")n="https://classic.yarnpkg.com/latest.js";else if(this.version.match(/^https?:/))n=this.version;else if(this.version.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.version))n=`file://${K.resolve(this.version)}`;else if(Qt.satisfiesWithPrereleases(this.version,">=2.0.0"))n=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(Qt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(Qt.validRange(this.version))n=`https://repo.yarnpkg.com/${await O4e(t,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new we(`Invalid version descriptor "${this.version}"`);return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{let l="file://",c;n.startsWith(l)?(a.reportInfo(0,`Downloading ${$.pretty(t,n,$.Type.URL)}`),c=await M.readFilePromise(K.toPortablePath(n.slice(l.length)))):(a.reportInfo(0,`Retrieving ${$.pretty(t,n,$.Type.PATH)}`),c=await Vt.get(n,{configuration:t})),await eO(t,null,c,{report:a})})).exitCode()}};Iu.paths=[["set","version"]],Iu.usage=Qe.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function O4e(r,e){let i=(await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0})).tags.filter(n=>Qt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new we(`No matching release found for range ${$.pretty(r,e,$.Type.RANGE)}.`);return i[0]}async function Wm(r,e){let t=await Vt.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0});if(!t.latest[e])throw new we(`Tag ${$.pretty(r,e,$.Type.RANGE)} not found`);return t.latest[e]}async function eO(r,e,t,{report:i}){var p;e===null&&await M.mktempPromise(async d=>{let m=v.join(d,"yarn.cjs");await M.writeFilePromise(m,t);let{stdout:y}=await pr.execvp(process.execPath,[K.fromPortablePath(m),"--version"],{cwd:d,env:{...process.env,YARN_IGNORE_PATH:"1"}});if(e=y.trim(),!pae.default.valid(e))throw new Error(`Invalid semver version. ${$.pretty(r,"yarn --version",$.Type.CODE)} returned: -${e}`)});let n=(p=r.projectCwd)!=null?p:r.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(r.startingCwd,o),l=v.relative(n,o);i.reportInfo(0,`Saving the new release in ${$.pretty(r,a,"magenta")}`),await M.removePromise(v.dirname(o)),await M.mkdirPromise(v.dirname(o),{recursive:!0}),await M.writeFilePromise(o,t,{mode:493}),await Ee.updateConfiguration(n,{yarnPath:l});let c=await ot.tryFind(n)||new ot;c.packageManager=`yarn@${e&&me.isTaggedYarnVersion(e)?e:await Wm(r,"stable")}`;let u={};c.exportTo(u);let g=v.join(n,ot.fileName),h=`${JSON.stringify(u,null,c.indent)} -`;await M.changeFilePromise(g,h,{automaticNewlines:!0})}function dae(r){return dt[TI(r)]}var M4e=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function K4e(r){let t=`https://repo.yarnpkg.com/${me.isTaggedYarnVersion(Nr)?Nr:await Wm(r,"canary")}/packages/gatsby/content/advanced/error-codes.md`,i=await Vt.get(t,{configuration:r});return new Map(Array.from(i.toString().matchAll(M4e),({groups:n})=>{if(!n)throw new Error("Assertion failed: Expected the match to have been successful");let s=dae(n.code);if(n.name!==s)throw new Error(`Assertion failed: Invalid error code data: Expected "${n.name}" to be named "${s}"`);return[n.code,n.details]}))}var yu=class extends xe{constructor(){super(...arguments);this.code=z.String({required:!1,validator:ad(od(),[Ad(/^YN[0-9]{4}$/)])});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let i=dae(this.code),n=$.pretty(t,i,$.Type.CODE),s=this.cli.format().header(`${this.code} - ${n}`),a=(await K4e(t)).get(this.code),l=typeof a<"u"?$.jsonOrPretty(this.json,t,$.tuple($.Type.MARKDOWN,{text:a,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. - -You can help us by editing this page on GitHub \u{1F642}: -${$.jsonOrPretty(this.json,t,$.tuple($.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} -`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:i,details:l})} -`):this.context.stdout.write(`${s} - -${l} -`)}else{let i={children:me.mapAndFilter(Object.entries(dt),([n,s])=>Number.isNaN(Number(n))?me.mapAndFilter.skip:{label:RA(Number(n)),value:$.tuple($.Type.CODE,s)})};es.emitTree(i,{configuration:t,stdout:this.context.stdout,json:this.json})}}};yu.paths=[["explain"]],yu.usage=Qe.Usage({description:"explain an error code",details:` - When the code argument is specified, this command prints its name and its details. - - When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});var Cae=ve(bn()),wu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=z.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=z.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=z.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=z.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=z.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=z.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n&&!this.all)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let a=(F,{recursive:H})=>{let q=F.anchoredLocator.locatorHash,_=new Map,X=[q];for(;X.length>0;){let W=X.shift();if(_.has(W))continue;let Z=i.storedPackages.get(W);if(typeof Z>"u")throw new Error("Assertion failed: Expected the package to be registered");if(_.set(W,Z),x.isVirtualLocator(Z)&&X.push(x.devirtualizeLocator(Z).locatorHash),!(!H&&W!==q))for(let A of Z.dependencies.values()){let ne=i.storedResolutions.get(A.descriptorHash);if(typeof ne>"u")throw new Error("Assertion failed: Expected the resolution to be registered");X.push(ne)}}return _.values()},l=({recursive:F})=>{let H=new Map;for(let q of i.workspaces)for(let _ of a(q,{recursive:F}))H.set(_.locatorHash,_);return H.values()},c=({all:F,recursive:H})=>F&&H?i.storedPackages.values():F?l({recursive:H}):a(n,{recursive:H}),u=({all:F,recursive:H})=>{let q=c({all:F,recursive:H}),_=this.patterns.map(Z=>{let A=x.parseLocator(Z),ne=Cae.default.makeRe(x.stringifyIdent(A)),ue=x.isVirtualLocator(A),te=ue?x.devirtualizeLocator(A):A;return O=>{let N=x.stringifyIdent(O);if(!ne.test(N))return!1;if(A.reference==="unknown")return!0;let ce=x.isVirtualLocator(O),he=ce?x.devirtualizeLocator(O):O;return!(ue&&ce&&A.reference!==O.reference||te.reference!==he.reference)}}),X=me.sortMap([...q],Z=>x.stringifyLocator(Z));return{selection:X.filter(Z=>_.length===0||_.some(A=>A(Z))),sortedLookup:X}},{selection:g,sortedLookup:h}=u({all:this.all,recursive:this.recursive});if(g.length===0)throw new we("No package matched your request");let p=new Map;if(this.dependents)for(let F of h)for(let H of F.dependencies.values()){let q=i.storedResolutions.get(H.descriptorHash);if(typeof q>"u")throw new Error("Assertion failed: Expected the resolution to be registered");me.getArrayWithDefault(p,q).push(F)}let d=new Map;for(let F of h){if(!x.isVirtualLocator(F))continue;let H=x.devirtualizeLocator(F);me.getArrayWithDefault(d,H.locatorHash).push(F)}let m={},y={children:m},B=t.makeFetcher(),S={project:i,fetcher:B,cache:s,checksums:i.storedChecksums,report:new $r,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},P=[async(F,H,q)=>{var W,Z;if(!H.has("manifest"))return;let _=await B.fetch(F,S),X;try{X=await ot.find(_.prefixPath,{baseFs:_.packageFs})}finally{(W=_.releaseFs)==null||W.call(_)}q("Manifest",{License:$.tuple($.Type.NO_HINT,X.license),Homepage:$.tuple($.Type.URL,(Z=X.raw.homepage)!=null?Z:null)})},async(F,H,q)=>{var ne;if(!H.has("cache"))return;let _={mockedPackages:i.disabledLocators,unstablePackages:i.conditionalLocators},X=(ne=i.storedChecksums.get(F.locatorHash))!=null?ne:null,W=s.getLocatorPath(F,X,_),Z;if(W!==null)try{Z=M.statSync(W)}catch{}let A=typeof Z<"u"?[Z.size,$.Type.SIZE]:void 0;q("Cache",{Checksum:$.tuple($.Type.NO_HINT,X),Path:$.tuple($.Type.PATH,W),Size:A})}];for(let F of g){let H=x.isVirtualLocator(F);if(!this.virtuals&&H)continue;let q={},_={value:[F,$.Type.LOCATOR],children:q};if(m[x.stringifyLocator(F)]=_,this.nameOnly){delete _.children;continue}let X=d.get(F.locatorHash);typeof X<"u"&&(q.Instances={label:"Instances",value:$.tuple($.Type.NUMBER,X.length)}),q.Version={label:"Version",value:$.tuple($.Type.NO_HINT,F.version)};let W=(A,ne)=>{let ue={};if(q[A]=ue,Array.isArray(ne))ue.children=ne.map(te=>({value:te}));else{let te={};ue.children=te;for(let[O,N]of Object.entries(ne))typeof N>"u"||(te[O]={label:O,value:N})}};if(!H){for(let A of P)await A(F,o,W);await t.triggerHook(A=>A.fetchPackageInfo,F,o,W)}F.bin.size>0&&!H&&W("Exported Binaries",[...F.bin.keys()].map(A=>$.tuple($.Type.PATH,A)));let Z=p.get(F.locatorHash);typeof Z<"u"&&Z.length>0&&W("Dependents",Z.map(A=>$.tuple($.Type.LOCATOR,A))),F.dependencies.size>0&&!H&&W("Dependencies",[...F.dependencies.values()].map(A=>{var te;let ne=i.storedResolutions.get(A.descriptorHash),ue=typeof ne<"u"&&(te=i.storedPackages.get(ne))!=null?te:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:ue})})),F.peerDependencies.size>0&&H&&W("Peer dependencies",[...F.peerDependencies.values()].map(A=>{var O,N;let ne=F.dependencies.get(A.identHash),ue=typeof ne<"u"&&(O=i.storedResolutions.get(ne.descriptorHash))!=null?O:null,te=ue!==null&&(N=i.storedPackages.get(ue))!=null?N:null;return $.tuple($.Type.RESOLUTION,{descriptor:A,locator:te})}))}es.emitTree(y,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};wu.paths=[["info"]],wu.usage=Qe.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Nb=ve(cc());As();var Bu=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=z.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=z.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=z.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=z.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.cacheFolder=z.String("--cache-folder",{hidden:!0});this.frozenLockfile=z.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=z.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=z.Boolean("--non-interactive",{hidden:!0});this.preferOffline=z.Boolean("--prefer-offline",{hidden:!0});this.production=z.Boolean("--production",{hidden:!0});this.registry=z.String("--registry",{hidden:!0});this.silent=z.Boolean("--silent",{hidden:!0});this.networkTimeout=z.String("--network-timeout",{hidden:!0})}async execute(){var h;let t=await Ee.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("<cli>",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let i=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=async(p,{error:d})=>{let m=await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async y=>{d?y.reportError(50,p):y.reportWarning(50,p)});return m.hasErrors()?m.exitCode():null};if(typeof this.ignoreEngines<"u"){let p=await n("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.registry<"u"){let p=await n("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(p!==null)return p}if(typeof this.preferOffline<"u"){let p=await n("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!Nb.default.VERCEL});if(p!==null)return p}if(typeof this.production<"u"){let p=await n("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(p!==null)return p}if(typeof this.nonInteractive<"u"){let p=await n("The --non-interactive option is deprecated",{error:!i});if(p!==null)return p}if(typeof this.frozenLockfile<"u"&&(await n("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder<"u"){let p=await n("The cache-folder option has been deprecated; use rc settings instead",{error:!Nb.default.NETLIFY});if(p!==null)return p}let s=this.mode==="update-lockfile";if(s&&(this.immutable||this.immutableCache))throw new we(`${$.pretty(t,"--immutable",$.Type.CODE)} and ${$.pretty(t,"--immutable-cache",$.Type.CODE)} cannot be used with ${$.pretty(t,"--mode=update-lockfile",$.Type.CODE)}`);let o=((h=this.immutable)!=null?h:t.get("enableImmutableInstalls"))&&!s,a=this.immutableCache&&!s;if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{await G4e(t,o)&&(d.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}if(t.projectCwd!==null&&typeof t.sources.get("nodeLinker")>"u"){let p=t.projectCwd,d;try{d=await M.readFilePromise(v.join(p,St.lockfile),"utf8")}catch{}if(d!=null&&d.includes("yarn lockfile v1")){let m=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async y=>{y.reportInfo(70,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),y.reportSeparator(),t.use("<compat>",{nodeLinker:"node-modules"},p,{overwrite:!0}),await Ee.updateConfiguration(p,{nodeLinker:"node-modules"})});if(m.hasErrors())return m.exitCode()}}if(t.projectCwd!==null){let p=await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async d=>{var m;(m=Ee.telemetry)!=null&&m.isNew&&(d.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),d.reportInfo(65,`Run ${$.pretty(t,"yarn config set --home enableTelemetry 0",$.Type.CODE)} to disable`),d.reportSeparator())});if(p.hasErrors())return p.exitCode()}let{project:l,workspace:c}=await Ge.find(t,this.context.cwd),u=await Dt.find(t,{immutable:a,check:this.checkCache});if(!c)throw new lt(l.cwd,this.context.cwd);return await l.restoreInstallState({restoreResolutions:!1}),(await He.start({configuration:t,json:this.json,stdout:this.context.stdout,includeLogs:!0},async p=>{await l.install({cache:u,report:p,immutable:o,mode:this.mode})})).exitCode()}};Bu.paths=[["install"],Qe.Default],Bu.usage=Qe.Usage({description:"install the project dependencies",details:` - This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - - - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). - - - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored). - - - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know). - - - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail. - - Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches. - - If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release. - - If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed). - - If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them. - - If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments. - - If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var U4e="|||||||",H4e=">>>>>>>",j4e="=======",mae="<<<<<<<";async function G4e(r,e){if(!r.projectCwd)return!1;let t=v.join(r.projectCwd,r.get("lockfileFilename"));if(!await M.existsPromise(t))return!1;let i=await M.readFilePromise(t,"utf8");if(!i.includes(mae))return!1;if(e)throw new rt(47,"Cannot autofix a lockfile when running an immutable install");let[n,s]=Y4e(i),o,a;try{o=wi(n),a=wi(s)}catch{throw new rt(46,"The individual variants of the lockfile failed to parse")}let l={...o,...a};for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await M.changeFilePromise(t,Qa(l),{automaticNewlines:!0}),!0}function Y4e(r){let e=[[],[]],t=r.split(/\r?\n/g),i=!1;for(;t.length>0;){let n=t.shift();if(typeof n>"u")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(mae)){for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s===j4e){i=!1;break}else if(i||s.startsWith(U4e)){i=!0;continue}else e[0].push(s)}for(;t.length>0;){let s=t.shift();if(typeof s>"u")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(H4e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` -`),e[1].join(` -`)]}var bu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=z.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=z.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=i.topLevelWorkspace,a=[];for(let c of this.destinations){let u=v.resolve(this.context.cwd,K.toPortablePath(c)),g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(i.cwd===h.cwd)throw new we(`Invalid destination '${c}'; Can't link the project to itself`);if(!p)throw new lt(h.cwd,u);if(this.all){let d=!1;for(let m of h.workspaces)m.manifest.name&&(!m.manifest.private||this.private)&&(a.push(m),d=!0);if(!d)throw new we(`No workspace found to be linked in the target project: ${c}`)}else{if(!p.manifest.name)throw new we(`The target workspace at '${c}' doesn't have a name and thus cannot be linked`);if(p.manifest.private&&!this.private)throw new we(`The target workspace at '${c}' is marked private - use the --private flag to link it anyway`);a.push(p)}}for(let c of a){let u=x.stringifyIdent(c.locator),g=this.relative?v.relative(i.cwd,c.cwd):c.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:u}},reference:`portal:${g}`})}return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};bu.paths=[["link"]],bu.usage=Qe.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var Qu=class extends xe{constructor(){super(...arguments);this.args=z.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Qu.paths=[["node"]],Qu.usage=Qe.Usage({description:"run node with the hook already setup",details:` - This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - - The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var bae=J("os");var Eae=J("os");var q4e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function vu(r){let e=await Vt.get(q4e,{configuration:r});return wi(e.toString())}var Su=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let s=await vu(t);for(let[o,{experimental:a,...l}]of Object.entries(s)){let c=o;a&&(c+=" [experimental]"),n.reportJson({name:o,experimental:a,...l}),n.reportInfo(null,c)}})).exitCode()}};Su.paths=[["plugin","list"]],Su.usage=Qe.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var J4e=/^[0-9]+$/;function Iae(r){return J4e.test(r)?`pull/${r}/head`:r}var W4e=({repository:r,branch:e},t)=>[["git","init",K.fromPortablePath(t)],["git","remote","add","origin",r],["git","fetch","origin","--depth=1",Iae(e)],["git","reset","--hard","FETCH_HEAD"]],z4e=({branch:r})=>[["git","fetch","origin","--depth=1",Iae(r),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],V4e=({plugins:r,noMinify:e},t)=>[["yarn","build:cli",...new Array().concat(...r.map(i=>["--plugin",v.resolve(t,i)])),...e?["--no-minify"]:[],"|"]],xu=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=z.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=z.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,Eae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async o=>{await tO(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(0,"Building a fresh bundle"),o.reportSeparator(),await zm(V4e(this,n),{configuration:t,context:this.context,target:n}),o.reportSeparator();let a=v.resolve(n,"packages/yarnpkg-cli/bundles/yarn.js"),l=await M.readFilePromise(a);await eO(t,"sources",l,{report:o}),this.skipPlugins||await X4e(this,{project:i,report:o,target:n})})).exitCode()}};xu.paths=[["set","version","from","sources"]],xu.usage=Qe.Usage({description:"build Yarn from master",details:` - This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. - - By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. - `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function zm(r,{configuration:e,context:t,target:i}){for(let[n,...s]of r){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await pr.pipevp(n,s,{cwd:i,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,strict:!0});else{t.stdout.write(`${$.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await pr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw t.stdout.write(a.stdout||a.stack),a}}}}async function tO(r,{configuration:e,report:t,target:i}){let n=!1;if(!r.force&&M.existsSync(v.join(i,".git"))){t.reportInfo(0,"Fetching the latest commits"),t.reportSeparator();try{await zm(z4e(r),{configuration:e,context:r.context,target:i}),n=!0}catch{t.reportSeparator(),t.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}n||(t.reportInfo(0,"Cloning the remote repository"),t.reportSeparator(),await M.removePromise(i),await M.mkdirPromise(i,{recursive:!0}),await zm(W4e(r,i),{configuration:e,context:r.context,target:i}))}async function X4e(r,{project:e,report:t,target:i}){let n=await vu(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await rO(o,r,{project:e,report:t,target:i})}var yae=ve(zr()),wae=J("url"),Bae=J("vm");var Pu=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:s}=await Ge.find(t,this.context.cwd),o,a;if(this.name.match(/^\.{0,2}[\\/]/)||K.isAbsolute(this.name)){let l=v.resolve(this.context.cwd,K.toPortablePath(this.name));n.reportInfo(0,`Reading ${$.pretty(t,l,$.Type.PATH)}`),o=v.relative(s.cwd,l),a=await M.readFilePromise(l)}else{let l;if(this.name.match(/^https?:/)){try{new wae.URL(this.name)}catch{throw new rt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,l=this.name}else{let c=x.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(c.reference!=="unknown"&&!yae.default.valid(c.reference))throw new rt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let u=x.stringifyIdent(c),g=await vu(t);if(!Object.prototype.hasOwnProperty.call(g,u))throw new rt(51,`Couldn't find a plugin named "${u}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);o=u,l=g[u].url,c.reference!=="unknown"?l=l.replace(/\/master\//,`/${u}/${c.reference}/`):Nr!==null&&(l=l.replace(/\/master\//,`/@yarnpkg/cli/${Nr}/`))}n.reportInfo(0,`Downloading ${$.pretty(t,l,"green")}`),a=await Vt.get(l,{configuration:t})}await iO(o,a,{project:s,report:n})})).exitCode()}};Pu.paths=[["plugin","import"]],Pu.usage=Qe.Usage({category:"Plugin-related commands",description:"download a plugin",details:` - This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. - - Three types of plugin references are accepted: - - - If the plugin is stored within the Yarn repository, it can be referenced by name. - - Third-party plugins can be referenced directly through their public urls. - - Local plugins can be referenced by their path on the disk. - - Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function iO(r,e,{project:t,report:i}){let{configuration:n}=t,s={},o={exports:s};(0,Bae.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(t.cwd,l);i.reportInfo(0,`Saving the new plugin in ${$.pretty(n,l,"magenta")}`),await M.mkdirPromise(v.dirname(c),{recursive:!0}),await M.writeFilePromise(c,e);let u={path:l,spec:r};await Ee.updateConfiguration(t.cwd,g=>{let h=[],p=!1;for(let d of g.plugins||[]){let m=typeof d!="string"?d.path:d,y=v.resolve(t.cwd,K.toPortablePath(m)),{name:B}=me.dynamicRequire(y);B!==a?h.push(d):(h.push(u),p=!0)}return p||h.push(u),{...g,plugins:h}})}var Z4e=({pluginName:r,noMinify:e},t)=>[["yarn",`build:${r}`,...e?["--no-minify"]:[],"|"]],ku=class extends xe{constructor(){super(...arguments);this.installPath=z.String("--path",{description:"The path where the repository should be cloned to"});this.repository=z.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=z.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=z.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=z.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.installPath<"u"?v.resolve(this.context.cwd,K.toPortablePath(this.installPath)):v.resolve(K.toPortablePath((0,bae.tmpdir)()),"yarnpkg-sources",Ai.makeHash(this.repository).slice(0,6));return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let{project:o}=await Ge.find(t,this.context.cwd),a=x.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),l=x.stringifyIdent(a),c=await vu(t);if(!Object.prototype.hasOwnProperty.call(c,l))throw new rt(51,`Couldn't find a plugin named "${l}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let u=l;await tO(this,{configuration:t,report:s,target:i}),await rO(u,this,{project:o,report:s,target:i})})).exitCode()}};ku.paths=[["plugin","import","from","sources"]],ku.usage=Qe.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` - This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. - - The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function rO(r,{context:e,noMinify:t},{project:i,report:n,target:s}){let o=r.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(0,`Building a fresh ${o}`),n.reportSeparator(),await zm(Z4e({pluginName:o,noMinify:t},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${r}.js`),c=await M.readFilePromise(l);await iO(r,c,{project:i,report:n})}var Du=class extends xe{constructor(){super(...arguments);this.name=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{let o=this.name,a=x.parseIdent(o);if(!t.plugins.has(o))throw new we(`${x.prettyIdent(t,a)} isn't referenced by the current configuration`);let l=`.yarn/plugins/${o}.cjs`,c=v.resolve(i.cwd,l);M.existsSync(c)&&(s.reportInfo(0,`Removing ${$.pretty(t,l,$.Type.PATH)}...`),await M.removePromise(c)),s.reportInfo(0,"Updating the configuration..."),await Ee.updateConfiguration(i.cwd,u=>{if(!Array.isArray(u.plugins))return u;let g=u.plugins.filter(h=>h.path!==l);return u.plugins.length===g.length?u:{...u,plugins:g}})})).exitCode()}};Du.paths=[["plugin","remove"]],Du.usage=Qe.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` - This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. - - **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var Ru=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let s of t.plugins.keys()){let o=this.context.plugins.plugins.has(s),a=s;o&&(a+=" [builtin]"),n.reportJson({name:s,builtin:o}),n.reportInfo(null,`${a}`)}})).exitCode()}};Ru.paths=[["plugin","runtime"]],Ru.usage=Qe.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` - This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var Fu=class extends xe{constructor(){super(...arguments);this.idents=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(x.parseIdent(l).identHash);if(await i.restoreInstallState({restoreResolutions:!1}),await i.resolveEverything({cache:s,report:new $r}),o.size>0)for(let l of i.storedPackages.values())o.has(l.identHash)&&i.storedBuildState.delete(l.locatorHash);else i.storedBuildState.clear();return(await He.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{await i.install({cache:s,report:l})})).exitCode()}};Fu.paths=[["rebuild"]],Fu.usage=Qe.Usage({description:"rebuild the project's native packages",details:` - This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. - - Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). - - By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var nO=ve(bn());As();var Nu=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=this.all?i.workspaces:[n],a=["dependencies","devDependencies","peerDependencies"],l=[],c=!1,u=[];for(let d of this.patterns){let m=!1,y=x.parseIdent(d);for(let B of o){let S=[...B.manifest.peerDependenciesMeta.keys()];for(let P of(0,nO.default)(S,d))B.manifest.peerDependenciesMeta.delete(P),c=!0,m=!0;for(let P of a){let F=B.manifest.getForScope(P),H=[...F.values()].map(q=>x.stringifyIdent(q));for(let q of(0,nO.default)(H,x.stringifyIdent(y))){let{identHash:_}=x.parseIdent(q),X=F.get(_);if(typeof X>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");B.manifest[P].delete(_),u.push([B,P,X]),c=!0,m=!0}}}m||l.push(d)}let g=l.length>1?"Patterns":"Pattern",h=l.length>1?"don't":"doesn't",p=this.all?"any":"this";if(l.length>0)throw new we(`${g} ${$.prettyList(t,l,$.Type.CODE)} ${h} match any packages referenced by ${p} workspace`);return c?(await t.triggerMultipleHooks(m=>m.afterWorkspaceDependencyRemoval,u),(await He.start({configuration:t,stdout:this.context.stdout},async m=>{await i.install({cache:s,report:m,mode:this.mode})})).exitCode()):0}};Nu.paths=[["remove"]],Nu.usage=Qe.Usage({description:"remove dependencies from the project",details:` - This command will remove the packages matching the specified patterns from the current workspace. - - If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - - This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var Qae=J("util"),_h=class extends xe{async execute(){let e=await Ee.find(this.context.cwd,this.context.plugins),{project:t,workspace:i}=await Ge.find(e,this.context.cwd);if(!i)throw new lt(t.cwd,this.context.cwd);return(await He.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=me.sortMap(o.keys(),u=>u),l={breakLength:1/0,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,Qae.inspect)(g,l)}`)})).exitCode()}};_h.paths=[["run"]];var Tu=class extends xe{constructor(){super(...arguments);this.inspect=z.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=z.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=z.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=z.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=z.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=z.Boolean("--silent",{hidden:!0});this.scriptName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n,locator:s}=await Ge.find(t,this.context.cwd);await i.restoreInstallState();let o=this.topLevel?i.topLevelWorkspace.anchoredLocator:s;if(!this.binariesOnly&&await Yt.hasPackageScript(o,this.scriptName,{project:i}))return await Yt.executePackageScript(o,this.scriptName,this.args,{project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let a=await Yt.getPackageAccessibleBinaries(o,{project:i});if(a.get(this.scriptName)){let c=[];return this.inspect&&(typeof this.inspect=="string"?c.push(`--inspect=${this.inspect}`):c.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?c.push(`--inspect-brk=${this.inspectBrk}`):c.push("--inspect-brk")),this.require&&c.push(`--require=${this.require}`),await Yt.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:i,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:c,packageAccessibleBinaries:a})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let u=(await Promise.all(i.workspaces.map(async g=>g.manifest.scripts.has(this.scriptName)?g:null))).filter(g=>g!==null);if(u.length===1)return await Yt.executeWorkspaceScript(u[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new we(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${x.prettyLocator(t,s)}).`);{if(this.scriptName==="global")throw new we("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let c=[this.scriptName].concat(this.args);for(let[u,g]of vh)for(let h of g)if(c.length>=h.length&&JSON.stringify(c.slice(0,h.length))===JSON.stringify(h))throw new we(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${u} plugin. You can install it with "yarn plugin import ${u}".`);throw new we(`Couldn't find a script named "${this.scriptName}".`)}}};Tu.paths=[["run"]],Tu.usage=Qe.Usage({description:"run a script defined in the package.json",details:` - This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - - - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - - - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - - - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. - - Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var Lu=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=z.String();this.resolution=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(await i.restoreInstallState({restoreResolutions:!1}),!n)throw new lt(i.cwd,this.context.cwd);let o=x.parseDescriptor(this.descriptor,!0),a=x.makeDescriptor(o,this.resolution);return i.storedDescriptors.set(o.descriptorHash,o),i.storedDescriptors.set(a.descriptorHash,a),i.resolutionAliases.set(o.descriptorHash,a.descriptorHash),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Lu.paths=[["set","resolution"]],Lu.usage=Qe.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var Sae=ve(bn()),Ou=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);let o=i.topLevelWorkspace,a=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:c,reference:u}of o.manifest.resolutions)u.startsWith("portal:")&&a.add(c.descriptor.fullName);if(this.leadingArguments.length>0)for(let c of this.leadingArguments){let u=v.resolve(this.context.cwd,K.toPortablePath(c));if(me.isPathLike(c)){let g=await Ee.find(u,this.context.plugins,{useRc:!1,strict:!1}),{project:h,workspace:p}=await Ge.find(g,u);if(!p)throw new lt(h.cwd,u);if(this.all){for(let d of h.workspaces)d.manifest.name&&a.add(x.stringifyIdent(d.locator));if(a.size===0)throw new we("No workspace found to be unlinked in the target project")}else{if(!p.manifest.name)throw new we("The target workspace doesn't have a name and thus cannot be unlinked");a.add(x.stringifyIdent(p.locator))}}else{let g=[...o.manifest.resolutions.map(({pattern:h})=>h.descriptor.fullName)];for(let h of(0,Sae.default)(g,c))a.add(h)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:c})=>!a.has(c.descriptor.fullName)),(await He.start({configuration:t,stdout:this.context.stdout},async c=>{await i.install({cache:s,report:c})})).exitCode()}};Ou.paths=[["unlink"]],Ou.usage=Qe.Usage({description:"disconnect the local project from another one",details:` - This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var vae=ve(Um()),sO=ve(bn());As();var ml=class extends xe{constructor(){super(...arguments);this.interactive=z.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=z.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=z.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=z.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=z.String("--mode",{description:"Change what artifacts installs generate",validator:Zi(ts)});this.patterns=z.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=[...i.storedDescriptors.values()],a=o.map(g=>x.stringifyIdent(g)),l=new Set;for(let g of this.patterns){if(x.parseDescriptor(g).range!=="unknown")throw new we("Ranges aren't allowed when using --recursive");for(let h of(0,sO.default)(a,g)){let p=x.parseIdent(h);l.add(p.identHash)}}let c=o.filter(g=>l.has(g.identHash));for(let g of c)i.storedDescriptors.delete(g.descriptorHash),i.storedResolutions.delete(g.descriptorHash);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{await i.install({cache:s,report:g})})).exitCode()}async executeUpClassic(){var y;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState({restoreResolutions:!1});let o=(y=this.interactive)!=null?y:t.get("preferInteractive"),a=jm(this,i),l=o?["keep","reuse","project","latest"]:["project","latest"],c=[],u=[];for(let B of this.patterns){let S=!1,P=x.parseDescriptor(B);for(let F of i.workspaces)for(let H of["dependencies","devDependencies"]){let _=[...F.manifest.getForScope(H).values()].map(X=>x.stringifyIdent(X));for(let X of(0,sO.default)(_,x.stringifyIdent(P))){let W=x.parseIdent(X),Z=F.manifest[H].get(W.identHash);if(typeof Z>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=x.makeDescriptor(W,P.range);c.push(Promise.resolve().then(async()=>[F,H,Z,await Gm(A,{project:i,workspace:F,cache:s,target:H,modifier:a,strategies:l})])),S=!0}}S||u.push(B)}if(u.length>1)throw new we(`Patterns ${$.prettyList(t,u,$.Type.CODE)} don't match any packages referenced by any workspace`);if(u.length>0)throw new we(`Pattern ${$.prettyList(t,u,$.Type.CODE)} doesn't match any packages referenced by any workspace`);let g=await Promise.all(c),h=await ta.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async B=>{for(let[,,S,{suggestions:P,rejections:F}]of g){let H=P.filter(q=>q.descriptor!==null);if(H.length===0){let[q]=F;if(typeof q>"u")throw new Error("Assertion failed: Expected an error to have been set");let _=this.cli.error(q);i.configuration.get("enableNetwork")?B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range - -${_}`):B.reportError(27,`${x.prettyDescriptor(t,S)} can't be resolved to a satisfying range (note: network resolution has been disabled) - -${_}`)}else H.length>1&&!o&&B.reportError(27,`${x.prettyDescriptor(t,S)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(h.hasErrors())return h.exitCode();let p=!1,d=[];for(let[B,S,,{suggestions:P}]of g){let F,H=P.filter(W=>W.descriptor!==null),q=H[0].descriptor,_=H.every(W=>x.areDescriptorsEqual(W.descriptor,q));H.length===1||_?F=q:(p=!0,{answer:F}=await(0,vae.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${x.prettyWorkspace(t,B)} \u276F ${S}?`,choices:P.map(({descriptor:W,name:Z,reason:A})=>W?{name:Z,hint:A,descriptor:W}:{name:Z,hint:A,disabled:!0}),onCancel:()=>process.exit(130),result(W){return this.find(W,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let X=B.manifest[S].get(F.identHash);if(typeof X>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(X.descriptorHash!==F.descriptorHash)B.manifest[S].set(F.identHash,F),d.push([B,S,X,F]);else{let W=t.makeResolver(),Z={project:i,resolver:W},A=W.bindDescriptor(X,B.anchoredLocator,Z);i.forgetResolution(A)}}return await t.triggerMultipleHooks(B=>B.afterWorkspaceDependencyReplacement,d),p&&this.context.stdout.write(` -`),(await He.start({configuration:t,stdout:this.context.stdout},async B=>{await i.install({cache:s,report:B,mode:this.mode})})).exitCode()}};ml.paths=[["up"]],ml.usage=Qe.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),ml.schema=[av("recursive",uc.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var Mu=class extends xe{constructor(){super(...arguments);this.recursive=z.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=z.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=x.parseIdent(this.package).identHash,o=this.recursive?$4e(i,s,{configuration:t,peers:this.peers}):_4e(i,s,{configuration:t,peers:this.peers});es.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};Mu.paths=[["why"]],Mu.usage=Qe.Usage({description:"display the reason why a package is needed",details:` - This command prints the exact reasons why a package appears in the dependency tree. - - If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function _4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.storedPackages.values(),a=>x.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={};for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=r.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let h=r.storedPackages.get(g);if(!h)throw new Error("Assertion failed: The package should have been registered");if(h.identHash!==e)continue;{let d=x.stringifyLocator(a);s[d]={value:[a,$.Type.LOCATOR],children:l}}let p=x.stringifyLocator(h);l[p]={value:[{descriptor:u,locator:h},$.Type.DEPENDENT]}}}return o}function $4e(r,e,{configuration:t,peers:i}){let n=me.sortMap(r.workspaces,h=>x.stringifyLocator(h.anchoredLocator)),s=new Set,o=new Set,a=h=>{if(s.has(h.locatorHash))return o.has(h.locatorHash);if(s.add(h.locatorHash),h.identHash===e)return o.add(h.locatorHash),!0;let p=!1;h.identHash===e&&(p=!0);for(let d of h.dependencies.values()){if(!i&&h.peerDependencies.has(d.identHash))continue;let m=r.storedResolutions.get(d.descriptorHash);if(!m)throw new Error("Assertion failed: The resolution should have been registered");let y=r.storedPackages.get(m);if(!y)throw new Error("Assertion failed: The package should have been registered");a(y)&&(p=!0)}return p&&o.add(h.locatorHash),p};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");a(p)}let l=new Set,c={},u={children:c},g=(h,p,d)=>{if(!o.has(h.locatorHash))return;let m=d!==null?$.tuple($.Type.DEPENDENT,{locator:h,descriptor:d}):$.tuple($.Type.LOCATOR,h),y={},B={value:m,children:y},S=x.stringifyLocator(h);if(p[S]=B,!l.has(h.locatorHash)&&(l.add(h.locatorHash),!(d!==null&&r.tryWorkspaceByLocator(h))))for(let P of h.dependencies.values()){if(!i&&h.peerDependencies.has(P.identHash))continue;let F=r.storedResolutions.get(P.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let H=r.storedPackages.get(F);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,y,P)}};for(let h of n){let p=r.storedPackages.get(h.anchoredLocator.locatorHash);if(!p)throw new Error("Assertion failed: The package should have been registered");g(p,c,null)}return u}var dO={};ct(dO,{default:()=>EWe,gitUtils:()=>lA});var lA={};ct(lA,{TreeishProtocols:()=>Tb,clone:()=>pO,fetchBase:()=>Xae,fetchChangedFiles:()=>Zae,fetchChangedWorkspaces:()=>CWe,fetchRoot:()=>Vae,isGitUrl:()=>ep,lsRemote:()=>zae,normalizeLocator:()=>gO,normalizeRepoUrl:()=>Lb,resolveUrl:()=>hO,splitRepoUrl:()=>Vm,validateRepoUrl:()=>fO});var qae=ve(Hae()),Jae=ve(xB()),$h=ve(J("querystring")),cO=ve(zr());var Gae=J("url");function lO(r,e,t){let i=r.indexOf(t);return r.lastIndexOf(e,i>-1?i:1/0)}function jae(r){try{return new Gae.URL(r)}catch{return}}function pWe(r){let e=lO(r,"@","#"),t=lO(r,":","#");return t>e&&(r=`${r.slice(0,t)}/${r.slice(t+1)}`),lO(r,":","#")===-1&&r.indexOf("//")===-1&&(r=`ssh://${r}`),r}function Yae(r){return jae(r)||jae(pWe(r))}function Wae(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var dWe=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],Tb=(n=>(n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver",n))(Tb||{});function ep(r){return r?dWe.some(e=>!!r.match(e)):!1}function Vm(r){r=Lb(r);let e=r.indexOf("#");if(e===-1)return{repo:r,treeish:{protocol:"head",request:"HEAD"},extra:{}};let t=r.slice(0,e),i=r.slice(e+1);if(i.match(/^[a-z]+=/)){let n=$h.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(Tb).find(l=>Object.prototype.hasOwnProperty.call(n,l)),[o,a]=typeof s<"u"?[s,n[s]]:["head","HEAD"];for(let l of Object.values(Tb))delete n[l];return{repo:t,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),[s,o]=n===-1?[null,i]:[i.slice(0,n),i.slice(n+1)];return{repo:t,treeish:{protocol:s,request:o},extra:{}}}}function Lb(r,{git:e=!1}={}){if(r=r.replace(/^git\+https:/,"https:"),r=r.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),r=r.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let t=Yae(r);t&&(r=t.href),r=r.replace(/^git\+([^:]+):/,"$1:")}return r}function gO(r){return x.makeLocator(r,Lb(r.reference))}function fO(r,{configuration:e}){let t=Lb(r,{git:!0});if(!Vt.getNetworkSettings(`https://${(0,qae.default)(t).resource}`,{configuration:e}).enableNetwork)throw new rt(80,`Request to '${t}' has been blocked because of your configuration settings`);return t}async function zae(r,e){let t=fO(r,{configuration:e}),i=await uO("listing refs",["ls-remote",t],{cwd:e.startingCwd,env:Wae()},{configuration:e,normalizedRepoUrl:t}),n=new Map,s=/^([a-f0-9]{40})\t([^\n]+)/gm,o;for(;(o=s.exec(i.stdout))!==null;)n.set(o[2],o[1]);return n}async function hO(r,e){let{repo:t,treeish:{protocol:i,request:n},extra:s}=Vm(r),o=await zae(t,e),a=(c,u)=>{switch(c){case"commit":{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return $h.default.stringify({...s,commit:u})}case"head":{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g>"u")throw new Error(`Unknown head ("${u}")`);return $h.default.stringify({...s,commit:g})}case"tag":{let g=o.get(`refs/tags/${u}`);if(typeof g>"u")throw new Error(`Unknown tag ("${u}")`);return $h.default.stringify({...s,commit:g})}case"semver":{let g=Qt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let h=new Map([...o.entries()].filter(([d])=>d.startsWith("refs/tags/")).map(([d,m])=>[cO.default.parse(d.slice(10)),m]).filter(d=>d[0]!==null)),p=cO.default.maxSatisfying([...h.keys()],g);if(p===null)throw new Error(`No matching range ("${u}")`);return $h.default.stringify({...s,commit:h.get(p)})}case null:{let g;if((g=l("commit",u))!==null||(g=l("tag",u))!==null||(g=l("head",u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch{return null}};return`${t}#${a(i,n)}`}async function pO(r,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:t,treeish:{protocol:i,request:n}}=Vm(r);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=fO(t,{configuration:e}),o=await M.mktempPromise(),a={cwd:o,env:Wae()};return await uO("cloning the repository",["clone","-c core.autocrlf=false",s,K.fromPortablePath(o)],a,{configuration:e,normalizedRepoUrl:s}),await uO("switching branch",["checkout",`${n}`],a,{configuration:e,normalizedRepoUrl:s}),o})}async function Vae(r){let e,t=r;do{if(e=t,await M.existsPromise(v.join(e,".git")))return e;t=v.dirname(e)}while(t!==e);return null}async function Xae(r,{baseRefs:e}){if(e.length===0)throw new we("Can't run this command with zero base refs specified.");let t=[];for(let a of e){let{code:l}=await pr.execvp("git",["merge-base",a,"HEAD"],{cwd:r});l===0&&t.push(a)}if(t.length===0)throw new we(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await pr.execvp("git",["merge-base","HEAD",...t],{cwd:r,strict:!0}),n=i.trim(),{stdout:s}=await pr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:r,strict:!0}),o=s.trim();return{hash:n,title:o}}async function Zae(r,{base:e,project:t}){let i=me.buildIgnorePattern(t.configuration.get("changesetIgnorePatterns")),{stdout:n}=await pr.execvp("git",["diff","--name-only",`${e}`],{cwd:r,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),{stdout:o}=await pr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:r,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(r,K.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(t.cwd,c).match(i)):l}async function CWe({ref:r,project:e}){if(e.configuration.projectCwd===null)throw new we("This command can only be run from within a Yarn project");let t=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&t.push(o)});let i=await Vae(e.configuration.projectCwd);if(i==null)throw new we("This command can only be run on Git repositories");let n=await Xae(i,{baseRefs:typeof r=="string"?[r]:e.configuration.get("changesetBaseRefs")}),s=await Zae(i,{base:n.hash,project:e});return new Set(me.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?me.mapAndFilter.skip:t.some(l=>o.startsWith(l))?me.mapAndFilter.skip:a}))}async function uO(r,e,t,{configuration:i,normalizedRepoUrl:n}){try{return await pr.execvp("git",e,{...t,strict:!0})}catch(s){if(!(s instanceof pr.ExecError))throw s;let o=s.reportExtra,a=s.stderr.toString();throw new rt(1,`Failed ${r}`,l=>{l.reportError(1,` ${$.prettyField(i,{label:"Repository URL",value:$.tuple($.Type.URL,n)})}`);for(let c of a.matchAll(/^(.+?): (.*)$/gm)){let[,u,g]=c;u=u.toLowerCase();let h=u==="error"?"Error":`${(0,Jae.default)(u)} Error`;l.reportError(1,` ${$.prettyField(i,{label:h,value:$.tuple($.Type.NO_HINT,g)})}`)}o==null||o(l)})}}var Ob=class{supports(e,t){return ep(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,n=gO(e),s=new Map(t.checksums);s.set(n.locatorHash,i);let o={...t,checksums:s},a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:l,releaseFs:c,prefixPath:x.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,t){return t.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,t)}async cloneFromRemote(e,t){let i=await pO(e.reference,t.project.configuration),n=Vm(e.reference),s=v.join(i,"package.tgz");await Yt.prepareExternalProject(i,s,{configuration:t.project.configuration,report:t.report,workspace:n.extra.workspace,locator:e});let o=await M.readFilePromise(s);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(o,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}))}};var Mb=class{supportsDescriptor(e,t){return ep(e.range)}supportsLocator(e,t){return ep(e.reference)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=await hO(e.range,i.project.configuration);return[x.makeLocator(e,n)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var mWe={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[Ob],resolvers:[Mb]};var EWe=mWe;var Ku=class extends xe{constructor(){super(...arguments);this.since=z.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=z.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=z.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd);return(await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async s=>{let o=this.since?await lA.fetchChangedWorkspaces({ref:this.since,project:i}):i.workspaces,a=new Set(o);if(this.recursive)for(let l of[...o].map(c=>c.getRecursiveWorkspaceDependents()))for(let c of l)a.add(c);for(let l of a){let{manifest:c}=l;if(c.private&&this.noPrivate)continue;let u;if(this.verbose){let g=new Set,h=new Set;for(let p of ot.hardDependencies)for(let[d,m]of c.getForScope(p)){let y=i.tryWorkspaceByDescriptor(m);y===null?i.workspacesByIdent.has(d)&&h.add(m):g.add(y)}u={workspaceDependencies:Array.from(g).map(p=>p.relativeCwd),mismatchedWorkspaceDependencies:Array.from(h).map(p=>x.stringifyDescriptor(p))}}s.reportInfo(null,`${l.relativeCwd}`),s.reportJson({location:l.relativeCwd,name:c.name?x.stringifyIdent(c.name):null,...u})}})).exitCode()}};Ku.paths=[["workspaces","list"]],Ku.usage=Qe.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var Uu=class extends xe{constructor(){super(...arguments);this.workspaceName=z.String();this.commandName=z.String();this.args=z.Proxy()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=i.workspaces,o=new Map(s.map(l=>[x.stringifyIdent(l.locator),l])),a=o.get(this.workspaceName);if(a===void 0){let l=Array.from(o.keys()).sort();throw new we(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - - ${l.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:a.cwd})}};Uu.paths=[["workspace"]],Uu.usage=Qe.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` - This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var IWe={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:_ae.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[gu,fu,hu,pu,Lu,xu,Iu,Ku,Vh,Xh,Jm,Zh,cu,uu,du,Cu,mu,Eu,yu,wu,Bu,bu,Ou,Qu,ku,Pu,Du,Su,Ru,Fu,Nu,_h,Tu,ml,Mu,Uu]},yWe=IWe;var wO={};ct(wO,{default:()=>BWe});var Fe={optional:!0},mO=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Fe,zenObservable:Fe}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Fe}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Fe,["postcss-jsx"]:Fe,["postcss-less"]:Fe,["postcss-markdown"]:Fe,["postcss-scss"]:Fe}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Fe}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Fe}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Fe,"vue-template-compiler":Fe}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Fe,"utf-8-validate":Fe}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe,"vuetify-loader":Fe}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Fe}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Fe}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Fe}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Fe}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Fe,tinyliquid:Fe,"liquid-node":Fe,jade:Fe,"then-jade":Fe,dust:Fe,"dustjs-helpers":Fe,"dustjs-linkedin":Fe,swig:Fe,"swig-templates":Fe,"razor-tmpl":Fe,atpl:Fe,liquor:Fe,twig:Fe,ejs:Fe,eco:Fe,jazz:Fe,jqtpl:Fe,hamljs:Fe,hamlet:Fe,whiskers:Fe,"haml-coffee":Fe,"hogan.js":Fe,templayed:Fe,handlebars:Fe,underscore:Fe,lodash:Fe,pug:Fe,"then-pug":Fe,qejs:Fe,walrus:Fe,mustache:Fe,just:Fe,ect:Fe,mote:Fe,toffee:Fe,dot:Fe,"bracket-template":Fe,ractive:Fe,nunjucks:Fe,htmling:Fe,"babel-core":Fe,plates:Fe,"react-dom":Fe,react:Fe,"arc-templates":Fe,vash:Fe,slm:Fe,marko:Fe,teacup:Fe,"coffee-script":Fe,squirrelly:Fe,twing:Fe}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Fe,vue:Fe}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Fe}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Fe}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(r=>[r,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Fe,"webpack-command":Fe}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Fe}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Fe}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Fe,jimp:Fe}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Fe,"eslint-import-resolver-typescript":Fe,"eslint-import-resolver-webpack":Fe,"@typescript-eslint/parser":Fe}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Fe}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Fe}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Fe}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Fe}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:Fe}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Fe}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Fe}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Fe}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Fe}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var EO;function $ae(){return typeof EO>"u"&&(EO=J("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),EO}var IO;function eAe(){return typeof IO>"u"&&(IO=J("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),IO}var yO;function tAe(){return typeof yO>"u"&&(yO=J("zlib").brotliDecompressSync(Buffer.from("m5N7PZNNGa6n2xAgQ91Ku8rrZrIpk710DjHQVpChzuz/qk4oImMpopscXUenLSUJ/l8bUD0ON66uHywQnCVqSDAysG3zwhbSlXzYF9KGzILCgz6HnrY4A5PNhUM3HjfeVvDwKyszGnrlmob+ClWri0TzsfzyUNV387DpSVI0dBtjdPLEyRpcoZ2B33fS0JEwMuzHAHpsHKjChSIRqlCTDMPipyn85j7z7ZjXH72SZsof9ji5gqG9Hgaa5gpIy2W27D+fV+duJbKYNTnNXprrdA1kL2pKGEs2SoxQdTfDkqpcS7XX19q0HTOkFSarcqW0FLQY2cEFNBY+PbDg3/9l89+ot5VkyCYc5AS6kNjSVemS6z9Ttd3L9EWawOWJklbW7NdtH+IDilMa0lU5hOZ5hB68nF7FN2csVNkJs78ESAhOrl2ryr4v+RD0tGjbRqskthNHRfT8cxFW+H4tVNlzIRBOBaor9MqoaZlyA9f/YD8rFiq3KGVHncAQpuphW52Sn7A5m6xSmqaB+QAn977FGu71Bd88WkHMfpamycSAQ/T/elN7txAkApwf9BM1CgS/bcJJs+IsdjRFSk4xoG/VrctpdAMaAiDPAASl7GMlB2l+iHVTVaO7AQ1AKkTL/CEFx7xZebMNeee8W79ugDKVJvKH7JDiYrHx36tplao4R0lV24B06vf6ZvUf1jQ0ZyxU+RlHRpc5mwTbVR9gs0drjCfXUlOX3kaUaWCtzpnYuMxHooIkuixvEkD3GEBc8z+6SvwP2BPx0We0mnPZ7X2z7KW5uuof7tJ7GUn/8uS6UBuwhQtQELLzurV782yQs8j+yQ3o6VZumBAWADWAoDA++dMt5ehqgVFJxPImNyGx8kI/fou90J7IB+mmzJlJ9gRa4eIWxGocyRwFkzFu27AsIXyk55jDgAhLk2sxbJXO6j7z35hA8zXQECCKXrnJmonDPR93jwUVQgeoobShlM7C469ZzHNP7s0K2pGfhEwhClGtqm35tCEF6RekMQDJC281pmm+VvEoNXAQZBZNxhLrOvd3vwoYHgNiRKl4y5hG3XqzPyoiAiJSEwhirygUQG0jaqDtXvV9EDFy4YzGdFPLf9IRuQUWTosxrS8m17ogUpQFRG8txIFIrGl5CsAqeOXcM/mbv+k6kPO7CPDoKcvR0K351mA+5g9M/XMC9uv7E+/7I3498f06dL6XH3CSOeQbe/0UCLoe/C2Msof8eH7hubW/5q2Yz024yIGYTk35E5Q3JE1rJ1CPuPQO+UlBeDwSe5K+bWP8+LH+2vSWVlDg79DM69NiIOuA2OTJO0EhRl763UUfpe6nEF6fq1Ka0A9t5eIQS5tmGuQQ4N92tYau/EIcN4qrXJGqSdfvhp4xBGgKphrU4+0zb130TFY3ftf9UvTXzFcGW3cfkDsaybdXO6hx2apNbWq+SOa/DfORxZbiDyvKpwXVf20RnU0OZpbosP2fFciv4ZN76ZT5snpawaAHLDB1+tZjXnCR7ZbQQ5bd04xEhXwvO9JfUTU/DSaYKelhAUfaSS0LPaIYv2Sv0b2yLVQuu+fzg881uBmgEN3Eefx51pV5m2IFcfXb77mJJhevK1XJzgXmmtLDRdGU6IJ13jxtDgYGk9j4k7WVmxyBHHFRmyMqC32kWl9rRg1wbSlwuLjOzXrZqC81CAIIA6PGP68T55B8SG0MTBksEV/zm4mKFjifSv32GEkKwgxhg6q2duyjj+NHB6Cd18MMkGj08aEJsiq99b7tVkggubi+fzcNsmDIBLfk7rm/f+xu2gq9gz8NZv0ul3m1oldbkzgD9MWJeYC56wsch14TR+AL4hMjuJpdtiUCWUq02IJ1WncfYtzfcXkwnduUBaAWkCmbdwWiaAMKTqLiTB5i5kUMFphbIrSgjjy20EVj0nCNKYqvtwCj/oeORLVskdKg7n/CUzJ/1GIxEXMlRH36hNZIYutqruPUPBLlq0zp07L2sl+ITwtMc1GTGaCSL0yFyRcxwYJPKi3Et887PgUcVsGoF5mICzcoGUW56FPAzknGJiKUj1KAg6iJbUQ/O3E8W9hFouT1PLYajEAB7YHZDJ8+77mNnPQ8jmwXN0C1qTZvwLHmmJE8MrSJ3Eo9MhF4UGqxb/VDPV8nK0SZeeHBIiB0RxOgyTz0N9gWmG8zCSebecjVk8g3n9kckCjLp6h8xxnUHh/a/J/dZt0rN2ujH26jM4kB+UXiOaezxCyY/srfVk8pWij5Qui70OrPLDUaDrda9FVzDif1RFzPAwsyPLYsXC8bf1SC2miMlT8Qkoi0nM//dnS/QexiqQPEllssKOxgkvMni21OXNOnDUts2Yw9i+Ljqmv+FTY2OIlyyXWF5I4rc77DdSmFkFhx2ksxBLIQ65nv1m+w+8PAmR9T2RfPOx2bpzPZSUp688wpjJsTSv6G5BcKlGoqltkQONzuBH/M9cfa0g60GPeKnX31hHDmtZekBmCo4w570GQGUvTULZbPMcdKoOsa3c2VLmvTva6ugcjO6cPCjdk5Xf0kkAHJebqY2ioK9ovq+yApUJEEBR7Vu51eHKY39pdadSGR/PL0yDR9uhpzy5Ffh5UgrNMWs7MFpddupeR7DVKoyMpFTjEKgHnHgtddOe1GZD1XDmKRIhX7VGL4eN3uiK8Lea4+IQ60JorNeTxDKd3G58xgiLS6nMltupAC4zpf035tX0AM3iwqj54LqRF36B+4HhNvLT3/4MXssA33meiDdYfHL0CYreUf5Hir5y7fuc6ip35hhgxWZ0sQNi61lEo7scgdKtGZrYkgvOZOCKXojcbTIFWNq+CSoWIhs3brrcSXBgOgjyg3RDZYYN/50xqmzG9XjrZUHkxn/irXOsnUoxcsq+BXyhyg8lrKl3gaMlDKLZUBdReK5T0iQE6XNBniT+elCUTu4M8O1BJAgZHjFgQoeprUkqCq17oMjFHuqQSKkcO3YTJH6BZhZPycobha4RD6LMsldk4htiBDzKyhs4dNs79uBoxPBA0VDnKOS1r0eoZzuNVNLzWM9gWVRFlWLlTfdlBkCRrfiZAogzw0lEjPkedfzcf9av3n35gb7VdzuPeimAn38DExY/JJdy8DfETftun/GoRnsrOlVM+Dmuib9SXAiH7A8uzhpTMqEFsEX4QB13cZeWQTPJs5OAU6BGHPM+R6LgWzOK/JgJ/ifrkHVKVNtOJEoj4YPP1v0ES2/crgqlMFW96nfwy1QdD3TaJFcMkB3eCTDI55Ovper/Tc6w9RoIaHmKQwxNgupDPahRzWqqdgW91R96VawIzl0+ZLYdhOEtPu2Wap+v2kYqsgydMybMB4A4leLtji/p00s6p5Fi2PNca34vgX0pWWisThUiUqc+ITYPbOCsmfE0qeTFs8+D8NHDiB3QPmY7cbUHdH9S/w84REOOeXTCLlm9eS+ojigFZirju8FaOY+rcptNGIWxVaKyoFWBfbnjzMOE8s1jb7Mh3EeufiXn6Fa0JFkJ3bx0f7d+2yQefmnb9UfUTg+yjq5SxUUrV7muug8Jzii99gEypXLHlwhg8iX12vpMKyAd+sME/7lJO/KHhPUeYy/iyO36fmEeC0h5DeW9Wyymxg1GvAB/kzveN7xJLeyKLlypLwjP87tHGzZXCycdXGz4JqgIK/mNRELQHcVrS2nwzvO+j9htz2z0X80+JDG7QMKEJIk03W+l3gxEHFM6VyRuWMC6UiQxq6VeC071ygcujCq6S9FnyL+wFtT/6bRAQscLe3DtMWge7NEd9TR+o6HSsnx/rRn8lvgflgwiTWgIcNGL++8vwWgLjaQbXb5MnyxZYylzacjPqHRJXlkQSXj7zKoLh5iILfFCb5QEVQAsSY9QkINT+PTku4AMApbK7kSrjwvLQh2u2wScHhWCMA4FcuFGkFyUCizGw4AeYjVfZ9Yd1+4028Mf0YUtzEluVxhJWzCbeICwDggialcDroHtmuCbq99AgAaEMceWim4WUaT5j5yA7K217Cbzrwhe0e76Y0LLiZpvkHghUA2Pm+veOd5c3oUR3M6lhCzkdWz0MHlb+xThpeiE5OgZr8RH8X9ETAnVmGCwDMAO9yYV9zGK2dp3+bMI5rBAAut7cKx8HsQbobjSa+Ty7gm2cmvLsj+1i0za3XLWQAADJZCeT/nWtPjt2+ray6seho7M/OiEB1bHaUTECp7nroINgyuftqHexg6HtBXMMz/WOxLm+9bvEWAJCbXVGWTayysdjUmYkN73OafEWEa89md/cR9s6qTADAQZFj8kFyHu4uiMifjbwrlVt83NzETKVFWwCgBJYNB2zUvqrGjsrYJQDQMVprJe/pBLHn0+Ht0Lbw+L3V8cHrBmwBgKuTK99IYZieYe21EFNLj8caAYBKG6tobAL+gMY/6oIP78Lm1cvtPR7yKgCubva7asYf4u+wNTOv5a+B/mynt15Lj3/0ambUkC0A0Dg2+dgwwMTtXWVlwQw3AgD5mVbJ2KRHj1n8nPcYrK6/sutDa1czN8QCxdt63UIGACCptEONoUn+2Snvh2vNjPV2k3OusL8VDKSHqV56cDf7ke4HruiZ/olwTW+9bvEWAJCMpT+Nocc8GEXvd7yCxlp7Vv/aYRybCQBcgsGEC/C52/7RTW7edcvJdqexW7MMFwCoAe5hwkbpOw5nqX3Tv3bomEsAYHM1+iMtb+guv7gxfjjXLyfxyC0vwwUAyvruhLMkfOk7CpXaJ/1rhY7ZBAAmwVpw1Qy/u96uvaaz+NPkHi0EKwCudY43VxV9FQy931hXCft8p/4r6b407lcqKluMCwC0mL0ebbjPWZXcx1kd1wgAjKmHQsVoHlpdJbfmDcm2WMqslwQUm3qdTDBupfc5y3sHiKZeC4Sgb0r4vXBgT4Ix20EnSSM0MABKOjQRnnjGLrMwdbDQ1B24Jb6wuQ2HQkeyJOBqQM+vf0f4kzTuH5Yqb3tBH/mDrxf4ffSsCw18Fv+cgoupBSXDtG+18uqkfYFqmfeKRd6CxC+n0QHnA7P5OsV2/WvvfM3RbHFpexFxvu5vvS4zC3IkUCb9iIy2o+JbWE7QVzO9G14FRvW9zBsYLiDxcOCk/Bk6qZtBzumcgiSM6guv2eShV/XJa1jO8j8W+4Wvjp6nORIoQAYo4u05vopfUOxGcnCioCElu9bfNoa/IQwxGcnjjKedW3B3csZyTczUJ3NQegy8T+uQVqPsmDwUTh77mK3PLPi9WWoGghQ1qFs7Gr1ilFKIwqUN0dC0gq75zqCXIzuZ+H/gFwMpMtex/+pq//Sdw7AhGkR3euCKz0pA+n4WKMiwngFKFumZe7L4+4bALFI04QFK+gjdsc6sxnHAI1ZeTQl0B+9Dngt8ovv7DwNRdkiXPzhjRsYQVl459/xAVtoPTSpHN81SE5MkaoBQDL4MvHP/LbT1zdoolZzAkFqVbWX3w88MRiCv68lIZGglvwQsC1OBFShkbOvS15qWsSRSK0MkfWPgYHRPwnM+3KNhvRMEnTR1gdDxjZh/2vdffkw+D/+6dph7PAnh9/c7XSwfX2KBflzhePI6DjRxUMHrdNETkQiIHLSjxk4Cigj8I/N/cYvc/zCFSmmkcmIreUUwN4qGgQ/UmYS6j5GXbI79Zo5BR+D3geqjmMDheOU2Vk2+ZjlfW4rc5YjkIpszOZ4lUeJ1mBP9/yK5YUUVW9vN00WpneMtcjnCHds5F9+LW3Njfwj/awtwLipgXH0nPmBMyG9j4iwEmo6jqfnhVk1AQKa9g+vW+enUuui6bFz873Kgxuvu7cAJiibj9gdY8+BjLMc+7ndaODH8aw8W6G13ZW/dMYCQMLdPRL/lA73fDLcXAEST5UhVTjCpQzQ7Apn+e9lyMHk+mqF3JK/mDNZ0AnjT0AdlnCy7WAY8stg4SUwXAeug8ciWEWzICKUwUEgKAUOJbghd/r5MN24ZXY/QzVwEDBWqwUQTdFOPzQIZTMPyRRp1s4/w0piHZt38I7yUf9DySmjLKw9phPinMw/FL6cxiyV37eTEj679wr4Rh3IE1vpnMNThbXcBaEnYLQFMLEBcD4Cg3+UACiPnjUa+xSpKRyFyzJ6Bd3rVyCN4LxIiC7ul5y9JwnvIkwUNxKTlcuR3PQGE6g2BIAglk7fLAAFSLVnUIHHNyZvkiGzmp8y6B7+cGzXIDzBcg7JpydS72gfPG0iPaWmU7RGeentPQpL+sjou3SDunFJyfJFv9I4jcQI2FwlXbgXGsnNQkBB+64aQXeZRccQ1YR/agvGe3CyMHvvxveFqT4pM7vHE3n94ZR/3QDTsjGjJmZxXhU4GK9LPhlXlagrF6rSnUV5+zcjr3J+9rnxPHkXiiDtOS0KBHsfQ12DbGhXJq9J5wpFHVG9jmLtyyRnPlp33WmVqkk0F2rrKPg18WLnpGQyGUOK2SITVlrJAjkw7gOdzUzZ1Thd0ne24QNuEOK35YTNZiRhLm9/9bttqYVTgb5elfkRhV42esxAD14j+2KUZqHJ88NKHJDVYNqCIrsZvm+WAUcXaLwpBS+ZLCKPOUsxQm+XSRke24LLzQEjlLAE9ZjR3B7yT92ndNW9aoqo0PUCxAhzcMMZnFjIDANk/aGjKwpt9KbUn+3OMJgCQODlVPscZVgksvEzaqenzhifd1TSlLeaBbDQa6rxd+a41b3Sih8306hRrHRe3nBkAoOwbFEml41Nqd2fy7c8STQDAuXV2VPkWB10p0OvCpLJvzN2teipJZqBujWZtTuY3vTVvXhZiKgB/rCaxgQg3mnoFf1efrXlz8vQfp+mVFWuZO7OUGQCYdcOglssL5+lo7arsyxJNAOAqjqnKQ46nGiARV9+yXM3WX5H5xUjAP/gSeSY/G/LUZVSIirOQCN5cWEvNAIBFhGpoJtRVd+bsPI6kt0uEdtOZr4O8d1XteHgs3wzsWa0oBfmR9MCYtAgwVsg1N0MzO7BRGTWWY2H8niQi10uQA5rNdDf5w5ujUpOK+k6bXR4fpF0vpGKkZu4mI0mNx4LrbhEriraMs5dZLRMkSJUpqvDVL3IINm3lM3aKHh3j0WmQSOIC7l0efaRhJ3KLVj2aRvQljzs2qSnkjMv+lesJctBxz9y8xOGxwGGYsJIEz52rQnCh+XnPBVzLccRgBihlIE8v+8oKIQjGR/vBSe4XfrjRXCXm1lxfmY9GzesHL1t5yATOMgswpOwMNcijQtnPMQTmOqjBxiyz/4esM/tgJ5GCRDXrsmxOjBWNGFQ42qUDRYcT7BFOzdqVSz49hHvYHbe+SeXakVY3Q8Jo+tFJI+1Pp+0OOExrZOCO5FDr6KF16SDApERRDn60w5/b6TrKbYHhHddJhbltFXaBeFVg21jA/FVCmCu6VZfNvHoKi9gGaldHKrx71g+M6ibySrGQ4iuYDJHgiRChahxRAz+Vj8Fxfwy3KXkkmzUJjsoV0248XFGiAztlUE5cZS4+Se51Df7bNlO29BspYxCElKntAfs9ytS/rBUEP/D62tY4FBZnqquICtFfxzEDALOKuMKEYw168eXcjs1OFdraHFJavVgmAEAZXnZXaas/fBP3Ku0dvdDXEVY1YvNWCnOsPp/TfELDnDRjeFNnPNe0frIOP/tKe8Idc0IwWGAVPArwO1OamZOtyvcEVjljcbtxwA3PVfXbU/3SuK3CUbwMbUzV/1gujM8NzvtX3tYjTb3KeFKaxOmFhXZvoqt3dmMN8G32vfPybJx1r2/AUTVUIKHw/92x0X6ETp4cuI8GNg79ypDLXk41m9gR/m5/glCA3lbKUQy3vZUZ0352b6rGzrgdLakxWeWoicHupBiNoHfvrPZUA45WYpdQI2s06jrJVrH+CppvndkEF2Yjc0U+PHR8W6toEMfiKnTjhgsZf/XM9s7qf4VrPjcKyEJf1b/BWNT94fTRWlrYap3A33F+HpHKo8NqvBrOe8C9hizgoiiqKmuWPcEC3xDNg3ef/7wnDaCliETTv4JivWo3wrWXMwMANicuCadQSrtUM3p7DydcpgkAZLjnunuXuLfNKAGAuwxGVTO5AzhGTdNVi6N3+YIdUHjj6MGD65e3zrQWMX0WVjkAbUTE2JWawenx635rdx8h3Xy2tRmRXBZPOQBtSMTbb7jBbvPUlHt3P99yY0RuPyLhXFo1pikOq/0ZUfH6lcwAAC8qnZkwh4qipSeyvUUPFzQBgJa35jx3v6tAlk0CAA1fvVltRtC9HnvOXzs+/GIjL/nUhvSlVUfFGUh8ylH0c5wZADAZUvGGZ0YxyLgz85shXdhwaOxhhrSmpdp81+W9RBX9JRy/j+VY+NuN4/Xho2Q0NNxAhNSK2NoXWrANL+BcQVvAdvcDjyLHP8RFDaCOoAAY/l19gkub8AVw2g0vk6ewCD5vaxknz7Mhk2dsDboCAtX8GjfrmlUhQ9g/Mm5hkluEDDkEZb+gGyJkACB7BCLJnpUSfAIvesZkBs24Vv4f7ajPijowLX5CgyvR7C7KuodP3Jc3nBjzQ4fGUvcModsDgnGdKvyGhg49gL5bcgZ1adHkXP8TCEg66Tbw0IlRPUHXt5vXd+5H+2jOPU6Q9o7ni/r1nA/2F4zsOQ1ROlSL3I9jO0fe2tQ2VAz9vec5so7i0Vm7inPP64w7QBRyvYjSYUnokwUyVELl0DUCwsk2WIzApiWQWdDA4MaLxGH0lxvqMAwL/dMUAOBrdaCJc3EflAbjII3Ky9fyjYflxbXcklKrllrlQSRudT2WD9N44NnWEfQInuo14+so/DNNaz7igSUQiVUGvcfrIPXHsIFF6BYO22KYyIuzpP+SiSF2tEBISAeUWPhAD82HLOcWmBiDz1OWca0OcVrsGcGjXcXmNDQwxdPuvKOyHciB20xvROL6jzr6p3kp2lk7ADg6WsYVDayFE1msFBhJlxxRmWgdl2L+6StxBQ6bm4AQdve3DflM8QJiKIUBB03cn166VdYOrBrtnNvtvPedVxoJCW7BAD04CJ/cGHyvrNkdogsZcvcwuMOMABFwK4GUguwhLAXmwotn7umJC4CnP9q9erne7YTWlNt+BFtsmuIAO2RLdtip3iNs+TLBJtlAv18oqxYQnRALviAimxVj/wSJUwIQw32sG3oUV3aFobMRGmHFkA08khHP61mX7ztASoyNtgi87QwPh0oMkF4Ky41HIQNakTOm9qdthnnIk61C//zI1PBeuiJg25P8kW2/E43ClHeYC00P4y8OBAmK+SqM8qNjLtRiW3lQm5bQgCZgGDR3f82yeYYM0OJgO5BBLokF/fkqvpzRknHE785sskOH064PaxHnEwn88CCX5BNVdJo1iptleGOmPbzb0F0Z1bw2/5SomjzCtKKp4YyYpCyTkEg+IbVJxIs8B5TIgArJGtkUA+kuw9jxFle82Ofdky3atuxnK0fbbJsRiIgCXnz28/TctGubRIRppZ4QzV/iPnLG7/iogXdH88eJy/PEDGl5PEAWy9QtPqgPek6HvDLixaKcXQGGzJ2lGfTx1Sh1REz7C1QzdumH1x0PHLvkIqPf45KlofKCg9G8BYfdlV/8OiRpBofyZxl/fejwCbmEKxQfPl42dTf0PawN9KZxR83jZr8YEtH7eQ6jhF8WaMOg4oD8c9IRjrDThWLhPlmVdxnLPFmYD/vAxPhNFQ8+XcPcBi3o4GOGT0I0aW19d4DFcRtRIpM0H6RRDF9jMne/HWBaj3dzjfnYD0upho9uM8JBdGkRMwBwFHgQakbx/2tcruJlyKEcjlK7OlWLm4K0LBMAEH9V+Tus6qk6w6V+1zq1+Z3vUWCNAFybQWvxepZrF+jVl3BDMSJxHyDqMCCeY2ielLfzBFc3uo8/d0QGqstttsSuZigAVnUc298sMKY0Yxd+DDR88k5A1AdEuGDligOGIYKSFKJzEKAkkYVnVjf/ubhzFexu/pKc3tARAOyGXbK5u8QzAD7oEu4aS3/XwDHOQEMSGaaEsbtDsuIA257LTszc5Y63AJnGStcuGm/YZb0BbA7jemLiubTTrAExLpmbzfjXBB/2MEbiuORnBucfKre6Huq/fBl70T0+CZe/9vKGLVkHCH3Y2Zgrie+vQ+s786gdoQSCdIYZc0V45wN441rVzvZHycLFM+3b4eaxDCa5w8gYkEXCuB4r0J6Z4r3/AUweBVXYyIgq4qQ9o6CPq6BZHdpkx+6q9Tn0GEE2bxGHOZHxnpqPLd65TgqcT8ZuSXrqQBTdiUTfHbbSX1+nU1f5DOky1YC8BprSfLzSgsC6z9i1d2y2IQ2j29oNqTEf13oLAXwaVw7Grd3QP3kVnFxWYN2IlLVBNbQz1a/yx9IV2//QBre4NBDt1Ju6NoMPmnXEO0mE0XDC2dx494C8K9B5YLfpT97Wi7pJR0dbTBzlClfNpZzfpIxzVlWXn7cKq8BDd21Fn1fZUiPGkWGTO/PTF6jnO2GzrW2NHi2HCCobHG5rdCQeCpjMBL29MX4Bq8QSHnDAbz6D7rBVMHgxjqK5g7AuNwxDX7cSvIBt0LO/b+eGf3gPMgN2hrFLgeQyCogWhe1xvOU04sf35lXDVNnrMqiYHsANA+VASH7YdxXYjNZpDaLQk5KV4LmmzS0KEjQ34vK4w+IyWla08k5+P3/C2NgIBaeBolkZspfRlZcdHy4fPpwQm05ex4EZCx7/lRfxwgsdCe3PrgJTmeyDTFjGZ8JtmXZao5BX2xKLXODsfOh0liguAKoad5s/2Zo0EuEytPe7MFZYU0pwEIj9OVkXZ4+kebMMeCsawowGvCEaWPb+vUYzq1zyBCl/zNdXIPxCbMpeBRJPxyOxIc5nNHZ7tG1b7bMTQV+5bZArN+JfPvQHwmd6WsNY03jsWtrF8/S5gTf8JvRqA1W0T4nTT3HhbSpp3UcJvtiEg/LdBFImPdOlekENlGxRSsDbAO/Jxc+Uqk3DLoi+DJ67kGfsWOHlzNQLz2PGVldnT48RubkStgW17d7IfE/iUsijwBkXAOGMyzdoszal/Q6OcKSr5IRh0oN6Mc2xkTBOQwPqFuSfJ8x46yHsYlUaenMTrSdZQdwiPijuVaWF4JNgRBhgh4WEPYh1YwHTrtu2hekFyz4uozyF/r582WnCT10vbo0whmUAQuwIbrxIe/UMwtBUcORgttFg2ug9v5uwy4nL7k0LU4bjdCuViyJyCgEBWELsv6UwjT9DnIYL5t3Nt8qvQ6ECxFbMidgKvFCUjm4jz8uf8gdW48eR12S/f8HX+99djtx8b3/pHsOfGzE38KwrCR9rp1K5O/wM74hzolBmD5M3Bq6OFLZD2oQQQLy0D4suCIyh6Y7kQvhVTlhw/DUJ7WEKGWAMxI5O0LG6ScO/uZ1Erv4TtTlolAYkzkQs7z35x/vYMJcOKtKJwMt0dUP4xAog8aUmu0il5eWKDHJSBazTLAoSG8Qb4J36KEhypL4C96Zed/jds5L83VGAT/yva7vBI/CzG2apN2XJx9uK7PJzDDMAcBni6w3PYsLbTaGcxVIfgHc6uzjH9iTYy9JMAOA4npFDuCdmcztwrmr0dm2w7aZ+AOBoKIVDeQjdZ/jihqZMcaagZfaXBRxRJ9hdnc0Qjld9Xz3dDt5Vt6Sag1SFLiV1ArNrzHYAuTIWzkFV82zvQGHMd5qQcl2RSXEUvi04js8Wyw9gj8R5BMt5mD4LDSSAlvtnY3pMfIa5fV9ftJnNkUuvafF7yWXhggTQRGK8ZUsNovf7YvIcgJF2td2jxwmnnz6lmp7qMIRTYR3HDAB0BJ4Oz3KwMuT6JOns4O6R4zqX6x4+XqIJABAG2dNtFtx1ld6WC11L+wEAFletRWW5LdWncHHKOOaq9L8ZLlczGHNM452LuKpyHHQPTT6Io3mG/IPbttYbgctqEd5nIfPLiWgovI41AwAcQVPhWf6cDOnphDR2d4agfaHK/Ju8T5kyB1suGm1VjkUm+teVFUVD4umjFsfRlctBTI2nGP/ceESbR1gtiPaezHXdjX/J7N5Nlgn1+leXw0d6QrQSXNzkj5Ik8Il5/ZmrX6XjrV9iHd5Vh/lUiqlMBntSUJvjYUqYcKk8MsOUBMkI28jHUvK3DG0szDAVrAxGMLxcT0X89qUnpBKsz2fcmF8B+552h99/2HX6XD7lK1jPJIX1OTWiskXMAMBAtRScOzxLwo5IVUlldk7bxSHRrdScCQCYd/sOsnN/7RrKvfR+OszQcXC4/rB/elxmf9Ra8mXTr2sW63CcXltdeGbVsSbtxpMnzHN1ni4sBgBqdXzI2yjZXXW3XFa5+VPFy/D3u6pbbqXXaqck6qSE/LkYztOINlyO5jdahr/fBVpuRsBBIgpzXcr7mK1vO9dpI/Ua6JZ0hsjmViR5NsdNW/Gn13lUNigVoj1tBUdA9MjK5qQQU9V6czZIBrqKNF3ir9BxUKMzX34+muID7enPWm86Lq0nKs6sEqzp/Snt3Js84xU6306mz+UDM3rJVEOXiryWMQMA3RE3XWbiRqvDl6+ISJ9K7rmvDc/kCZzJAk0AYEwWEW1YNoy87AfUdK2cEwNXNxcEAEF7qqsJDQoemUUSoqz2yEgIlCKmIyHYuh8TCYXTCpxIKEmVezNIXc1kIJiuGqUgrg/KFWMGCo7bWBwDJ8uzz4JzMt+3BadTV3QlcdTpODhfBurOb0Ri4jNpa71xWIAgAbTfPxvVOg5qZTS/WqOxfYe++Olabx4WNEgADSXGvFuHCOSj+szgA/y0x5imjxDif7xzStvzx4pVy60+jhkAqGmGG3LK5WDlOnd7KbVjfJZLzs4yTQAAy9XoNipuUimX9m24LDUIADpcjBZlcatUH8FtK2M3F9H/Qi6kGaS5POW9EFfljq+uT+w9fWMkky4wO2vYEPYWamQB53hxLqVZ6P0t+xoJV118OwBVRmC3RLI3+KtyHhX3eO5fEs/y1yaI0M4x4mv+ScGi+uD/nFvexHx+YKei8o8P2Htl4lrmRbWOswM+Y+xBSLsYC7D84rDtnmzF63bXZuJnvlrbhveSg7vi5mHbUv4abcsXTY3hkQp+ldBuSblezXekDMkSb6IbUdgfgrkdO5OkEjGfj6oFM1qUZcecTbH5/Yfqcp2Hee7qmfSwC2BNx8tYBDDM6JSbC7Z0zyl+2zAo3yA663SJ97ERlYpgCGW+TXQcfeu3Gz7akX6pQ6XAgTbLwsVLdlj9MKAX9dlcZiwxApHrgJ5TKahyrABNTs84gNOsqFEw7LppGHliU1WhDYZA68Mn/QJsanJBgcyknKjAZEmMwsDJ5f/FTl8AAukO+yQopiV4Hkbp3KP09G0U5LZLT/54RZffYZM/IZy8fMBZ8eNGRCYGPKWoe5yUt+STwqfLyUyXCMENcVV2BoScRM34LN3TvQzhBsOO662obSQE/NYIwxydMywQNS4YJPA59rtzU3VWBsU3Gk6FIjlnN/H9X+0VQgBkQhehBN5RDprDJsly9QtF1z2nJ0eR/A2b1tAGVnpYXD3ZEVVOJuZVZT/6Yp00FcfKjbkiQ1Ef/w+DFXYxc3Bwt0cpxsZzxdj3PbbbvqfZ6vVvoLjLGeyW6z774FD8p8sj6hFh0UzCVip9jw+YCk8wSNyMLEZoLu61ZhI4nR3pOoW2KMjaZuE+xeKwaksPwvdqX3ifziX7+K/27IrMtUE6ksgXF/nGLwYu/G+dYkJwVa2y9iVnp9n0jm9Pe886AMDkIHz5VoppxqnFuEspr/aeQz81Vims9kEk+idNzIrh8inXZIe2vFd9okOrfxk+CK2U2geR5T8dxtY4h9y3jG861puD2Nw/S4A7OYhd/bMJrLYjDRfKC/03TIU+r0A+k7iV+SHQlVXITIp9Q4p5dwirph+DLJcRKn3J3rBQmL26O2HNnpg0md14uUwOpHmlLg0YNvZ2JNm8Sh41V4QHk74rdwmY2LjEQtbNwZzwzwjnVo8lzgU04QOgBulrYvBmCR7yPp7R0KcRPzb4r2nUsRmxaDT2++piIUgHQ6sbtJF/m+4yc6XbYAUGtmHIPc/BMZqIavf4O2jNxse1kSEPUN9uNyUThxfy4CwDIJGXByAQALwZopurC4Itqlgxivd5BHCQDuA6HwSGZ78VurX0Bl2Wc5IDSEqCKZJ/f8gDJ8/RIECHeT/HRmgPBE83uKya3O8KUZvFYNpTF7F0SQI0KbkkUSqTp/xKM2LOdyWQqtbaH7NShtCB3Zu0aRpugaEd6WMvf9In6fI5/wCIXMPUor89dFi6cHtHnphZzf5fxFpPoAQ5zUhzkpiHP1rIK12b94ouM8vUeswPvya1D3tdt1/pVqbd0oMVFjdlkZaotWrXemvkwkWWSMdYJYx7Rcuod6Tchu6nKsQStROcoI/vzJ3Ihbnl4mRfv0+oM1j3QFagJvVh7LToWrx4rH4JrJzA4vQCIQcJCw3dIxseBgBaWQzd9fBNiLI9FHdGeUQyXNgDiuSQPkHUfyP+k2d4zlBxESJ6p3CpMXfTTd4tpbUsIoBEWtbOqFSMyctLTIgkxV0FBlDKc4GBzvL/5ydomhMVIE/L5/qVBiBdumZoTMsdxCOFYZuZHBXLhdytxyIyopIohE0a0g81zp3EzEzc7/RGtH4cyXTJEij1Jxqv79kgsq1U2lzf+f0Hpe6y62Vc0cYzZ5HbvWIIbteWeje1HyVMhzUGV82u0GKnwS+r+Dh2vDVMRrt4gljYJJCEtGaT3wdFrswdGlQIQ/TjAY1BQVbF/s1J67kLxpg9JYfKZSRA73RPureH7Ka41iyWG1Lx3MznK4SV/U5XEyD3Hfe5o/svEC44vZ+ckW4N/ualrL4XfKNbPpq7DRa6elcJq6MQxj4tz8j/HO0ltwZwu8fiodjD6Tf3sNwJX8WbZO596bbKk+mofE26FU3kq5J5wq9Bd09ssjPbCVh/bi3XpfR8tZiOGUkMpPeKaYwEMp2vN6vS+pozLeU9KddP3w+V1MWDVglIzyZzv31ftFmmsyHvgz/gycmRlmQUenN91CAmGgZ8cWCl2A8Kf6xum4tHXEPPfxsYdu7JeumCfD4ubjOIDdzmgycwGwmIHjurn9B3cW8sIXqAAF3nGHi+ECkrAbgIgsEZqmY6HSi7FcxjvOj588lALWA09YZE11hYlIjujv5sydHP+rRaPhT/v4t/D/O7XmH9v/qZu/mjLsaDwP92evax3ZVu9fu55S3W+yvI03+clL6Oqk61lWvQ0X40ZOD9A0IZWqRlFyLWn8yMVuvh1qQpTXZW2GjnBTLr3XP9d2zhC87GMtaLZP5ufXs2xRjIDuNNL+SAoB1zvv6CDbiJmBtIIV71MAS7/rrUKFz7pgUq5ly8+mieUY5nJ83TpopXdVbjWAfzMyfXwIXbpGYu4I5WfyE3aZwu6Py2Ta6qMnu0Oa74aowNnMYlm/yYmrOp8nT2Ht8lAeZNup9xACw0BvR4+FCGQWBd58hoRhG0W8F3jbISEaTHNUSMyqaLgJuN0wttSgdP1bDcGcoCOtDCAz5dBDgSlWJ7ac4MKRAX6xxSlWiQnT6G2dHVf/7X0dcnVUGgRQtJk71Ap2PTNrvJCyDcRkW96KqHVrrNnaB0SIKLBZgjGhH0ikJIMcQLL99j9TYntOwLHQ7CgJnMxWv0clgZ/TvEkybDUXxNmNyT/wYiSBN8VbBNAnMLGfK0QNX6fhEEHTaowDblDcMIRRV7SyYyiaIbBe6cPKXROvfFa5Ioi12I607Go9JR0eUnHtbp4yOPV9M7WPahbv6ocwGN9UEu0u/LW9X5osl8VLcx24DfJ010C9kiRsc37VPfR9VfcMcB2gLTbSy+b4m4zPi+J+OG9/9k4S74BzcVvppUoKrlwyhf+CKH3FXmfr0FMbp07l5dNcuN+58CcNdNQWea9pKG2zyC4ur23H6FoPgehSOuuFVv8tm7KHUgbeyZg1cngo6TC8j7J9S2uiH1qb04Pt7Y3DHj5uix9LQ0+SfRNhxO+eOYQ7JqmGKuGSozC6/l+vx0ttzrHbwmj5iVGBtc8QCgy9KXTkLihXAU1MMPTdMt4hSl+wh7xYfDudLTeHCn/jia9pEHdUlTeDmM9aQ4/flExL1D+F8vmtN/Ro/pKaYsUx15zfASn7aq0c4uWaqFScwj7brU6eVasMp/xXy7mXL8ske/sbjjRt/N4EBNQHJVgEkiT6UHSAOk9Y3dmPcR8B/S79o60HCbsg8zBQA8dwS7EHzG8wqY7kqi4YJwXERl+TjBUErZ7N1ukyEIuLDuO0JJowBsmeBFJTEGhMlkU/d0BHi/ERRqMk1lpCPo28PtXmMfwMVbCL2VaISYRxQoalKTUxqw95Si0KlhAPtIGw1hbeomgufknO/jkGGlO2B4phw6J6GDPwnPjJYdscgZ5Fo4UxcXPb8A+WeQQrL8Yxg2ann70n66qOkDoRe4JeC0zMLWsvQDKJYEcxsEn4uI5SkK44YPuSvFXKsootumMBTWYKV463sAI149I2zpf0+bDZGSAG8fgYM1qc1aR0dM+lnrtdexw9FCxARNsEs2NgPR8MNp1UEoObXCbQwDT3XWgslhARUb0geEeUf5bES627IBA8f2rk5fEPn9jndfugF7Y8IMqON96a/IQ0bT6NeN++Mktw6PH3Ez88QapzqRbfJKZPOr7TkM+OOzuVF8hwCv64lZjtRk9aQ8RUm6OnUh5VaHcXlxS/uhGWK+cQT2FVQ8WA+XgPOsZ5pBE/dq95rIWzLrhV3ItO7zsjobBKCsFCDimtB+W8xrt/hXukcgAlPFYdaBWoVnZBgmA35jCeivfF1d/E/9BYM/u1krI9eSM8VD4CWg/+D6GdIMbKw879mfdHrZzsAg+2+rdBamDGdmiMk0BEfRBtQTG4WqJebxkE2b+PZlNrVixy4a+91pswXw4YOZ9LcvYzyOZ3OulDHbpgGATVy7+6qsbuzXLZ2/u+zex+XzPl53ex8zw9a31XEewNmVadkAylz3/3zS3UR7CHAc7M/oNZLdzOL4M7R2vR/DgDeCAPXFfHpr2a6ZRe5M3JlQ7s55D9mPwgqHFLVDEODbOdhEYumNdmg12lWAS0kbU4AQOs8OMvPTHPTKFvQF/3oC3wkFC/i5r3K+Vh7yPoVSsuYh+Pjk56shb7718zdblGczr7rCAuHZnKBX6wJ3s7RNUMXwi+BgVx46LMa+uFUlciEDtLYSJ1mk2GZKwgD6ff6XGw6K20sd56aSFBpgnMg6IHNjt05tjQlzQI92NRrqTtwVCNe8J0nwvKB383N009eh7yfKVJJcleLbQ18WnGKjnSBYwD+0lvon54eU0jlLxGLy8wSbpxCSrn++O+g7hgbaGdnpPm+zDiBtM83cYvUv4CPdpnnYbBIKPDzHMhoc9RyD6Ig1HBFVAHefk0yHas0kIsm5JEcVtA/InGruEQB2O0BHVI1484wceZVf456P9x+/YfS3H7/KOkzituZNbjjwd2MHYcmFMQbzTMb6SeVOh9PznJXngnaes/J6ynAFcqR2ZGDbfF2kk6LFCUoq5Uq+Ju8ipFS/HT4fYfgN5XzF8rur5D5PHG9n77feWCD5EMkUtSqhAF7VDQAErJUXA+IUHTOcSLLzwDaV3XpyGOQrMrSaCaOyYjZXrHYrddS95ZdrCLBbi2A2EXJz3YOp0gmmhl3L4Q7usPbvtuAVV/4DACgK5sR+lg0nZ9yuC86uGj5usbci2nDvtD/5Bu7GKmCLiNWwBNgRXNDw3hxcmo/dAaz7RdsBAFTV6l/4qA/VXP2bjjpqtZ0m3qG2+/J4QAdUR9MJBU6xVaYTnuumMQ8AYA8cxMTdFlRkZqYPasGzhwNdyxsmhNqpgRrJl6fHG9UbvyXnYSWZ/lqdfJPV/P8czBhgv4wf+sTAGjgKVo2JMaSusCnvF/lb/TrZNivyTXw+pdoGsBpMy4Ob70O/JedhKczIpfjUtPJKhjpO7Xf8WOaHON+ZsFRm4vj+w9IQrxfEMVp9XyG+DP1Yvm0AS20m78xd4BVk6FWGd/pv+L3F1fJHWukFNlmtgkQKFZUd1w0AuL4G0FBR14d8mtl5ILXFXQ4HNfMVGZJjh1FZMcyQnBKqkrgEuqJFtLeICXPdgzzrBK5B7Xq4g8nW/s0Y5nblPwDQi4PaYz9BoCPjNmXopSkeLPSJ/Y0KzMEqwHERtqbtx/nENfBdg41/KuN9RtRc3a91jRuj9StEjoA3UdlxXQDAZTyK2A/H+HcFTP3cYaR/ffTmy/GjZ8FW+Dx7K+s5hPKFURa+pJtbQQ0tZxpFMI0VBQAAExApssVPQ7aveJvNx0KGulaUDpLdq3UAACUkBlvMZXitlyQSMXSfIkfT5kuXTYXfi7ChrKG/G/0iDu1dWwYYqxrjF168XthxudvicgSBIF8Ml6p4PE5enaHSHtu6eHH33xLzKIc6CrZvp6qdA9BuxvOTpk6Qm631exlvvn2p7+kn8Y+e16BGYU/8jGZDe9m+tMYNVp/cYpUryuRbVYzKjucGADbCaoZRMEwrNxl8R07MZEs5Qyvr1s4a7Evx8hUZ2kWEcf+KGTivwi6F7idxgUZJxyECAAktaznBqnfBRIc6pJy7/rQFngZe9Q8AaB1kQ+zHyfizIKfQXnrERuWiDk7Un4viGWSv6MjQe84Ubc6lvLVsIq/MC3w3d4TImzInqZZaRrDFLro57jifRGOLDcRTGpPjyk67RWpm38vBMOqNjBDxtfjwG24uR0tcNnfVyBAZXIvAYI4Nr7GEqzaWqOCRISh4/BETPHJvr6BmuqWfRrPTtCWfP3IEBIOxUI1wYDfRwNUJBq5KLHDRefXcRAI7CAQG6a2+NPMbtiTzCxMEDP3TYDPVTQRwHQKAdUgIB8/1zXQrLrDHTNr5/cy3nuoun5CjoaQLYdutLqsm1YUMgcVEWkIXQzltngJWtCBYjOOmAABcAc5u99iJp4ALO+3YYx+dkpcmEBZXyXjoVNC1vSoPADiOiZughduqHvOt/rY3j2K2V+2Z7ZS+JnRsX4bbYUU6gc6wjr9ITRfUYjN0KsahocfymVBo0mNXzd4KFjx/zO4ZDbxrJPfmGjddfXdFxYll3O9Sh3Hot44/ARndCHANXI339cBotr3p66I1bqr6QyjV4WHwhG/1zYt1AwAWCivgBcTyZsZg54q7O64CzlsEgNRYIAugrpLADf5WaFUTIgDQMloXOMGm9oZfh/sGd6/y727WGg103fgPALiMPL3Wj9cOzsVoHgcutiC+3bpsCJen6G8HimuqDaV4rCC9m1vv652yok5QSTEZTHX93HrgNOseds0jV2bXEx55YWPe8zKq0dQOAKTMoyHDN7SX0US93UioC7JWGhKkrjEPAHAOnqPg0OOWVYLZMjIoTrgiCeaWZaMcCRZiDaiJBFvdAcXySm7csn4NR9jDRXkx5cn5LJ3xSR0Mq3fEGMWsWNDPkv84Bt/joumX8TkVGBvAqhztM/ZWPa3Ix6CfkO/JvMKPsadOiCULM7eylZA/X8CXxvhrC0q/MvZT0bEBLHmYvJU+heja1CtjbtypRWTsqxYQhxijSgyRO0Rlx3UDANM7/9Agb+4UyEjZTR+Nl+QtAoWurqgMHVUJiqmSqA10XxMiANAQWtxwglXtuzwP9w1mVfs313BaK/8BAK0M3WQ/cUFfG80hYEBVPBlmqujQ0HtWqg15Kb3Ad9D7cL29uhQolfSRGI/t0ANCfhZb75Ig/SF/b/cU13QnJpe1NyrOQOJDXkU/x9sAABx8quPttunTQ1B18oZbn6R0NhBVBd1tGGhVCjM3EDiLz98VIWS6MsQKIWxbziKWkNAylhMAANMZpqsQKpjvSFDp6LgRm2ztyk42wKy4uYYdAGC3CIvFlGwF7DKZDoBNQ+wY2AInKUF0A8e4xYGXLje7d4t9CtSh/yRlMiulfliGr6rwYDiB1zuYwE/HI8R8e+dJ/AmWkzuGl4/GfT14Ba9pg6cnK1YZXmaZIQBw0wkSt9OoTbawzk6i69YwdLOdnDxJRMfk850b8PGfFlWV7gqUQKDaHRKoGKCnAREAAMDvcp/cjChQaGqv+m96NE1cmF7+DwAM0Byk/2wNZVV3S21uc7eU8TZ36yt0W76k1bojYE2faGHwguVNMR9cxPiv2vb9IO9n98+/fqU/562GGwQxl/+94Bp/pLSyNOq85ihGnUg/mmCHYwh/MyK5/IbPHUyKpePfs44nT9v8xuaxMv09zPOpSWsUjnt3Wv/4eld2u909bzbQrxBkEaO3ZRfVthekzwL+cZA4WYjZJcMb+23pw4OxzFP3v9eN/00QBv69hubi8LOLvdAus+vsZrLMh91rjcFTnoJNcQhPWzwFAAzaVHIUw+dVnoJj1dt5bW+47tgpqkAkvZUXjEV5AMBGetVfIivLwLl5S25UK2MmyM21ss0VckdWg9WF0t6uqKjCdxdO0nxwt+TGSrzK6QQ1+uPwchxN8oXhL8SaNn0u2Rd95zMGbWpQX+EsZY0oYb7tvTVt6vTWGeuxrrNvdzoqW2QIAGxr8LOR1c4CHHgzcWA1+vzurnVDgj7pwuC9d5c6Aqirk4APcEqLEPa5wnPdg9PkRNsLsaz8420ESwbDbvwHAEZC2736z2IAp7rbanPJXSjjJXdxfpkrvUEpOoHvnqgModLqJP00vYSEKatLQpAw2xkoUSi12+4G0yhdZY0FK166s6odAAirUIBt+SIWL2C67SIeTyJLKxmqqBKs0pQHALC8eVWVUIGJmxrIlplxCpLg2Z6F9PKGlCCNKqjUduE+uZugZOEj+uxoniK+eTFr2sjJMazUUBxDFTUoouCGv9FseH9aeGvauFlYrQGswNDsDNDToMvpGek9Gvw+we/KrmkzJw+xPN0YEyR47I3SdzS2sPvNuabNm4XaGsDyduMdlqZBg3OceXA0w0+8vVnTJk9PUqoS3zonrGXgAEC6//GhdnhzQyCCssse65flLEJ9ezUWxQZVqpMoC3SsRaD3+P9z3YOuLRVly+1FU7O1f9O7ZUMdTFfjPwAwIJpr6j9bQ9TUnVOb29wtZbzN3Tq/nSu9Rah5AXcgHNOvWnENbNPvEShCjYb6LYYvzHvmwdvGbG+iRCbOj8/31ADKruIlYMG9Q/9xT+59yJjs570dGKj4zF+c938VKQRgTiKPFw0zZFULXCHTA0dACCwc9XwGaqkzZZo3HRYnpF7/FsrcXtWzp3DCDFc1LXpHX30aQanYfcri6YoQO8LjGttHuM/NnoxTVF6Cx9Vt9yOVpwe8/q4FVw3+llJYysB2ibJ6erfY6oV/HohTBfNxJbKnHtlmGAeLbKATc2Xuaf4euVFXSM1Gm8OasyfRmdoVWH2cYl91Mycc8+2Scx060tm6dkPLNuBvHyO53APuLjW2l4nA3fbHKXMzP0mNO3k67WbiL5oipx5O7Vfby0g4xVrZpDX7IekZHhZnoEce5MVu5kSUzcsnDAYd6MU21RJKd3dLIQAXL0bnROS2H1uWSZzYtRONWkigCDM5jJZ6AdVFCZDo60BO/nxVOlyV/9yeojyfHnSd/ymAmwvZxHzom+IE/HHPC4uumtqQeE2bHr4CuHIgBFiH1/YM2F9ZW7UVM9/V4mw6EknHcoMqsJDJhzvMBjDTKFa3beaODeNjNIq/v/o+nXwWBDB+31D6uL6bDaHnbWQLlXbQNWC79OBSf4KX23HYMpnmcVoyyAS+xMHLlE4ZtAMQR9lgntZTtPl0jseDIb4pEKckU7xp6UIVN1ec4Fz+oc2nc5uD5uSM7xSFF3V30b3yoOMbOqir4UQz/c8ll6LiTBXf3tyEcUZlZ1zuncN2r/3a1tajklPcBcHX570/GJGbJH/LJ06puXEQmWpW19NzAjrCzZSVNbMUmoch2RIglu4h+wmqMRrXKlkWSWnYVFrvQ5dGYf2hBSZKQ+Ht1lFcwdsw+JTcVI+/OSOcSFX6ZbP02zD09Ju22Vuy/5la3bj7yur0za3pqDeiVnTxt6M5XyJWQJGevm8NeJ1Et8OM2fZEETsZr60VRpMAr83srUibkEl7HUfoeIxHxN7wNA/viZ4vrFhFiWUK9f6alG2TTiQbgOOoRpVJLCZGFPeWET1Q7x1IZDoZM9/y3oreONuNfnjHwW/DtmPz/rai3TZe06t54zOFObdfpiq2ULkNQVQFpmw2VhVkRrzJsgZJoZivwc5sGhOAYas5UQ+2GbZ0QJvrI1dQn8PPPS3/GzowudKHzRfZAwD6lDAl2OFgX5mJsVj82EKWgGNynwRklMJH9rLNRLLAR6LSECMpq/kRbbhdGuncwUcKZRUgZ4NiAT5SHDsAuQm7mBy0uqbLgJPTbk33wC0fPDHfQkBWae1td53bQOs7a8xpgbdXetKVVXY4KBs5iG+4GFKMDalXrS7xqsWlXXUkJV3Vb5MY0do7Uu2VhakVcPTtKgPHQAuIf2qRawdTYuEdJkilPiDn/Hx7J918f/Gq2LLGuJf+1eoyVqF9zkRuKsjZ2/K5QfCc0JvcNN8OaYttqyxkIN12596UDbdxB7tZkaCKac4lTclSxdswwo4C0dx9v9wUgtsA+9r4Pr/ga9zes3m8kpHdwo1hQJNmxnMesSqZMs/2JpBpnpC9gMnAbdyhb4A7GFm6QD/H9StyiypiBuI2gkLCYloxsTXW8SNYrvVxVlwUQvEA/hCqVwynVXg0JKClTy1xrGfEGYhZj38dHa8RHZ3+xepk+O6mnsbq55llb5BqpwkpBEx/jHoct76ahr1KhZg8fU9kfXVWaDuLCXwETCnWqUG0etukfA70pGPyJ02p4Vf8977rilUvY0+l9/umvl9MOAUgfQ0mAEBAYGjdY6bjBGVRgsr8TxoEK+k6Y3chWHN2AZuNYF3bSGwZgEuLYC031xYiAADiAJxocaARdR229tfcAAeOGgACgNyAvGI/xoHKKsx0r4wMoUtFcXL9JQndZqUJwYG1gp3sJUDCUekBe0oYgXdtFRhXDeHW4q1yZjcW3mqbjSXDy1Y3DRABQJZg6lTf9jhq7216au52we4MJFc5FV46aSYEALgAZtHGTRFgKDWzO+6r0sbg2XvF7mZWBnE4MIMasYP5MCdYVT0047DmJWkazxv9Kmi0fq9QN4BqGe0R6Kpu7CT7tmjSB85qhz02L/9etW4Aj9XLjRpXXwveCv9KfIxo/Ov2OL38e5vSC02qUwtBse/bPBzegJUwbyjVeoUJAKBeSrOkh2cMVw1Rlqha/0HgCpsOZYz5szJ6JA0Q9EYkqdAya6tp4bZfW90TF43bYRah0zUHUYv+AMn3KoAAQAdoLX8gKJw0K9S4S8RKYtkd6pKlXgjFCjK6hzmanvyzelvnlBhysaszd+RoikI/O99re7znt/jHhriHK0aQQQLs8koRD8vJrgY4sIb8EISKZRhUCTj/nIPgG/0vDNgzCXCunSEJsMIKaADsMeWMAdkNHwCASwhqy2KhpxCR+uszJoiop4bN78gpmlSBxSFZ1nwSbhsCcnZ43Yz95mwqBMylOAGNzAREFzaidSSpMmU/49mvYq4lrtLtYltE2YQ2OJGLAgwbNWG8uwUa1Tdu0OvvcPT4E8/TX1+ncL9u6Xv4t8o1Jwn309HLdqQ93NNE4+yqk2nhtk9PEgR7tbG/tHr4ATq9qB8Vc5d488v7as3qvvKgWHfb2yWWCXsDpNhgAgCkBpgenj4eQF0aoFz7LsEOas+IEtjDDAgA7GVJhHCoZaIAgAqiMIyIpj6KyitRsrPFMsXmT3x5BcXVSm0AAOWOLYzZLLXQR4M6jy63kCkr0UXNRpvZsqGm1hC3bvWutIemT0uqXUPsJRf6aE9aV/Qg4waO0Yho3OviRGk0cHrp5bs0feFdQ49ArTQoGa5hmL8Rghd0hRjeQw8MYnTF5WMH4F1Zqx8CgINKuk5avuMQ73r0puOebyft+rSVqzQmYG9nm9bvbWEmtc29Sytc+7aZw3dh+1GMywS+C3eyOLZd+i7CEnvwRN/NPqlGzAPHf5Sn9MWGi6bC7ZUix+bL0FyVb2Lebw4+vYRxnl91uOL/sl+FYrW2fhQknDETni1gbhpMAICtBq5bUz/3riNIif9FQZBO/RlVOoxuIOBwtSQRx1omCgD4IAbNiDgY11ujdfhkveoSo6sc18CzDfEAwHSDwmouztP5nFZ0xWhGB1pQxNn050RCm7rU1LiRn4A4U8r1urW34hVnrfyPDbi1LW4N77oY3HYd4Q3BcBTvoh8a4UV87JYMLmmACABuDd6M6btbBjdbc3d30GmKq1w2LWKl3aoavl3kc9L59ysGVHA7Y0u+hBormYES6qhlj5TQfQxipkA3a8Qm4cOk2HQF32crfFS56UmNNa7N0PqXtdwGUIehTfYd88A+mB97qzyc/aVzeCBbfiy31ncbwAPbknc4CQF/PF6RSvodeWUwD2qbG/is9/ZNpFndvsGydbc9JRP2GPChwQQA8AWYCk8fBeCd/icNgIc7sm3tGfsAdpgB0QB7WBJBHHKZKADAg6gOI6Ixerv6KNKPS0RJamV+RM3h0h4A4ErNDYOkFUDhwoxzizcOvwqqnjYliDMZr9DadZsuUJxce6i08CxtJX+Ofha5cYUI678oHI8bsvka3iRy9jvaT8hnzFO/bWneNmT7IsOfLEQSeRaZqEaI4w5lcYtpvboWuudumSmmntXxwZfET1CjYmLW2hHHYJ4PBFWkU3wHb9C0RABB+dNfD20OAa9PX2ggkHO40QtCqIQzSBbj+xjAI9xmtgx3ZIlmhq+lfgwvgNNXTBDkcFX4CgMkkbz8Y1RRALSe/Kpxj6dWDLZUpY4st8q2HSutYtrF/6b38GtKsMPamesGdsUKjgVctSE/HWKLt+IDANjaRSiGvaIReGZVZePfs55mhvdIi3xrz2dhNrIAAIv9jNpFS6nTC7VHJrNzaSemX50uU1w9yyOPj1cHbxval3Sl3lYB2zlYb6xSL65I6bSqNz0ZLPhuWHAeNHmbvPE8SrqJ+d7PlVLNbVGY7AkEMmEgfZUIgA0j/blvfyV+Lvno63pDXKTm07stkWDX2H9sHYJ77jrj8RC8WlPJS8FLh8+Iws5CQ1ooVDssQq0Vi/0iBABA0oKMSMeMMtpHb+sxiegDa/Dl9RpNewBA32YQJ1mkhClwH6zyCoE9YLY0mTi4B2xHQ4zL3E2zByxGLoUb45dYknplT7q4sUosny5AzKO4tFlbXbsitDl2D+66Y8TCZ5l8pMuaXnyW5Uf5rGHTPWIHLXFmEDRjBsGvFbZO2bXAvVybvlZT/7mw7u7JnsJr3ZaSfZ4Z/vkLwTemEC6jzKyNxvFcBHzI8hAhoitdaiqZxYeMceZPm5O3qIxhXRsRXwB5n3HhcaRVr4+UB3iAs0HVRaZrmb32RdgDEJYJ71Tjv8OllxcF0HlqPJVLvglz/jqlbV+cufL92yUgCo3zk4yo+jekIiYlZZSjktN08QPypcYncpAcRFOH54wA4z9HnvhBIi2w3PDrwy0Xz28Erj9XP5K0giEAgAJN6fruut+l62Gks/DfKw/hH9Nn/LWE59bKG9cBdIURIIuPBuY2tM5jbv7PtRAurt4EN5bsdHmY1P9kH19gAeEKyKeyim7xpUAWCa6eIvNbP6CssnNvek+dKTRhi4QNUQto3x8AZFEP5viuc4b/a0eenBIqBR2HaSEkeEuVbkCHErpHTzpyDpQYkpbTB5SkxPOWoFmI5T2jDs3LAQB2OEPUoAk2dH5MrdqZ7muYASHkjsjA+O7W6C1JqogbDhLAoc3QqZghDKlsCf+gsNY5PLA9J6RGgn6dER2cv/0p/SAdQMrzZVTydLPEVsTJHQCO4E4wifMq777DmdRtBiSiSRwhvdA5XtuMvJ+kMq+9jJIQ7TRHjYf8bcramQDavZ9p4psLcUkcJib/rt7ra5HP36YHh8r1BsBcRB1C5DJ+pD9qu0i/TntZPe/vqiMQWvNhOjx8EWNw7j329sG1Qd5OV6GWI6vDlqjEl/Q/Llsk+FwpCi1+2+FHlwRcCBBDa9zj4vywNptP8XCHrI5/RN76nIKfuCXx8pXOhZAuW4Dicm92qR0feEGLtew1clvUFi0LXefbjW6uKsffirTE1DVpiqlL0RZTjzCNMSULjYNqvh2HdGToXpfsKCef6LeFYUfuhAHggIfYU4fU1amaqUtTN1NX8pdPXZPaGRUF+amfqZtEBb33O927zaeLpm4MfTR1FTpp6pKDkdGmm6bk6NNPU48ROmpKVqOnpm4YXVVqDMYE1Kazyo8SCokcfbqrmS68YEHjIwR2c9+j7hMIA7eiHqmtSG9Wby121k4cZSSNK9bCHodTlWFQEtEFJveyF7xuikFP7HTnSp0FTy67f5TEg+M2nEdhw4sruNAfoDalclgR0wM9UGhKEwKHIADSPLpGJlWVi5aBvxZN14JV60fWbB3mKCuuyd4mKcSXfs+Oel6OcPxGbZze9f9FTONb/snTvomINbhHe6wz8FnDiTpqpV1af+sEa2W7ZxotFneqlYQAgKtnmHjzXXbkUnALfUPdj2SMzMapMUKwspELCNl+wAAgpWs87ju20qpow22O0Ca0+fa8BN0o+dC8g8bfYXrv0GoIJ3rp90qt9naeeoIcSxhKV0oYNNuMAgBoAaSkGKLnNJ4LElit/1E9zDQyY+X6ZY/myq9CXbAJ1BYRhZ2FjjQRsK1FkDtFd4sQAADJ1aMTuftRvQ9U7WMSge7RQylNewAAeuaMqUxS2Iv+w5rVDVyc2mTjspQxG5elTbFJQAS3eOUOak+8IswCRZuiPelFOlw0r1Nv7nKPVYQn9tgtaXabyCpc9tjtaPSbMs1I3QOLp+mFulcrTwKA5hReo7DSbgBoQVBTZfja6Th3PpvaqKPe3270t23KqavM6ruakpoJAQAmwLgKuU4UviVMWc3sXAkBeTb2IETHIHANMWKdGK/5MGnzJgcG8432ed/o/5LP8uEa4kUIeAUdAtQddZMNRmGIL8Q96erSr210SgWC+JGZX1WHABUK4vaHCdcpr/OU36F8SPTqqEwQ/94y95Im1czy2P67Am6bskh4MKIsgXExjgIAzNGsLHknPcR0XS9EWdZl/ddcrrir8NqbPcNS7Y000KF7ONKMS5SWnoyJAgDUogYj6skO1KHibGKDQj22BwBM5rUXJK1zzX2Yw3A4lEuZrUPlQLxvMtQgdWRbBJHJddePS54lbfKvJeGSt9y32FhzfGDfi+FPXPUb+IUr6/BBHyDz0kMmNuO6XY3IuMDLcrKbBm6nuQQAuCvEdEM1THdQsZyDMA39b1RC3qdZe1SP664jlutTrLOmctOxkXHYjOjLWalyQhjtsg8AYC5v4hDbiM2y6Eig3VUDKXjg9UoWAAAuQESJuZA9bw8nIxETk0nekH0riizJEFPctrf4WJH9tsG+JFyIrjHdDMvAeaZo4I2mOLHp6Xo1V9fNeNU98LLtqKzibuLLSjj6rS1We9/wY08sV0sYK9blCzbVjAIAbMT66eosnIEGOAGUqT3TNKAsM9AQ0BRL0gTYU7ntstr1edpS6OFEUaJSjGilMpEZX8A9er0aHgDg9IJS2I9SkCwaTWUn6BWSx6ZYgyvKy9o0hDQ3xlWn9AsmVknbMCe65FQwqSUqxXzW4L6Ri7U7DFnDCatGac/eGNbNsQ/fELGUjzmOFI0/y1u+pTuYRUqe/tMCIbDixW45P/hEOGafWNJMEIkRYtoYWB7PAiAkXnkSAGDdeMhypd0AgCtDWMTwsbTPMHGdWMp6O5bdW3JXhsJg9p4bSzDTSAgAYJLkiOyZbWngKCx2o3y7ug2NjV4t4bo0bQPXpUOYUPqqayzy4R+O+Qa4IxA+dux7x+F8ujaoXSifnLvXeqK/Ax6rOnD8XVuiT0GtUouOux0WIRNmsa8NA8thLEYBABTso51OkMChNMDLJIUjtNmuM10Dod22C3QkQlfNkXQei9nF1K4eMb3v/7kIAQAQY3OixLicykQuHmeuURsA4PUMQTijomL2ozlIw2kztVuQJmeKdT3LD6JmuZQOxC/prtWre2eFLVbJVVEo7u0SttSiz6bAu9ie6H6RzVoltjmKKhJMBLfdpUCIcFlsFAMRicVDGRAxu/IkAKAiPOKy0m4AoHvxKJ7qS7rG8IBSzR0zkKraWhFIcViaLxMCABevSK23cWlRoZxo1BMlyBDaFmRICJurcOVdcDE1ObY/Dxa+RPMCLd81P/XfHSU2JCdVcnvR5LuyQJuySDiNlStZcjGKAgDctWSv+CByJcwQpb7mgJfRyl1q7fzZFXpHGhzQexLpxHtTc6u2aS5QRPu0PY2FNVGigz9+zWHX93Q+UQXWsDYAkNTK7a2kYy47LHzdWMKGzDXs9gOhAvG9QZpmbd2Nea1iEVxXSEJe3epuppP2Lj/qIaMmV166RqvvgtMdhEu7nb4xOaRO+vCwkTyiR4RyCygBgE2xs3Q3ANQBlfrceySsgpu5i9e8gwwFw6DNflxMC80nol+7w38Gr8ryKv3jvwtJDASHAJUA8tvjI0yP5qP8yS5GTz6xJhUA8p/50WwaO6028k+HU2zvahiLcNEDjaUAAAKGqzeqYsDAFnaUZ9ByQLhBQ9koKRV1sGDitgVVWb+2SF4kEPlEglmMBwBygASQF0TiDOh0XGCYW4OTvkExl/yFr24fYdphJalxcZ1eTu0VDZPDh5//VvSx2jSy9CBN3Vhk01WI6U4Yx5gAACdAXTQgvUTNOQjLY4A7BjJXOzM9QK5U5XBizTmEwlRM+VjATv0P7/r+poj5fxKLu4CuzLyssPEPNC+tX0mAIdaSHvCqamvuBB6zmgUAYLnAGWgue30rKyFxNSrzMtvVS7BzhlhVaSAIFXf/TZWqY4a4gax+lI71kX6pxq1rCbXai4rRiGjcq+IEg4/6kdwSzvH3EIkg4TM+JXXQ8KP4Tn24ZJy49z/heu5C1XvW+Lvi5li/MWHcALgLY1EKAOA6NfUecH0lwJr9vKReqfpsVeMvZ1s32OAsdaQ9YAoXp0Z72CYnU17YvLv8GJwyZ50ot5/e5UM995hECNf1CvOE3oZ4AEB0V1IlN8J+jBxRODTKaJqeY73IUBli8zYhwHdh+GLorfIoLfbQh+VrveH0sYHzrJEuEIKq5l0OQNVd9NQLiSXbeAjzPOTe9kHKiDYxl32ich3rDgXWmw9b2BCV+jKbfXpsZ9wBKHJxp6brAb/jb8W/PFMLyvOtZpsW5dZrBhn3unAfP3W/o9l438wAzJ9RCH13gZCr18uWa4L23sAHmareQr+ExvQnHLCrofumQgPbkssTdDq/ZUOTlZABhYqsCHmJPvaAblThZSKJn/QjVvxPeJqUFRmoMRT1kEzRbXP1F8sGki2OQZrJuc1owv8Wig50cTMhZllyiUABNEEHGq9oB4EKEFKFhSHbqdNRjz25VtBd6CGUdWMxeHjOS0VW79MfpdrAZd/Jn7xqeu4H770cIcOYlXtyK4h288jOQHEpxtWYI7NgZ7v3Z/IosWJBFgfuccUVRDYOwRAe1BVuzs8HTpQAG2ySRiYT+BLnj94/hgYHbhT0xgKiooRgcHv0hSfEWwKrAG6A3Cc43ny5irMG6SlXvRrSRBXtggpdiPcKp2t5Kp12XqfFu+5Sz55Kp1lY/r5EgvBnOL1ljJACoiDUg16yfKZPTT3fgFZfNrj4C1FBACEFhDrHiQdh6l2SR+EpcPpubFmxGrz3KUnx7PUURg6llqdNmBrkZR/W4Zc4ktllvYi6MOovorL2Ago3B1Fr95ZelmJXbZIC0YCkS6xWvM5SRc5o+jTwXs4p9RwEdYWzjcLskZJK4Cm6qdKMHMbT9KKwfRvrj+UE5EyQDnE1dXz0J/xQTKOi+cnbcIVDWPzEbCcTJYFjLSUEAHLJzcTQqkE4DRxlyYdrZYIi5NNY2QEa8g3th0ADTdcm3jBcvVYPm/u89OJMCOtVgG3eCbFhDYzUUsVLesl1WJt89ria731q5bUioL5u7rq8ouZedj/+ES9dU0LS5LEz71YD2+T3n7r6nOvUGOtYn9DLE3haJxOaS9yvpxC9L+fsvp1QwdxgY6vW+hy0sPIVeqh2oglvd8qtO1tdVisQO8OE2ZMvigJ7V6MAAOxjXUWBWJbOLEJl8j/VPQFjqX+3tWdT6n8KMNXMYCrAFFnS1OKgm3cBAAyF2+NEUxf5YLvi0KpEbfsHfkxquCQeALAkE6X/WHPB7K5VuBhNa0FRhbElS3bt3JMYU3lvJdReu05WPWDhHlEtWRd68oacPaIAOxPRS+DYFoEaAE5Uw+rEJCeN+s7zu4vGKAuX69pWp8HbXU0mAKjPkJpuT8UYTy0yAnFW3fs5cOHK2op78UQpYbTVe7vm30UkKs7MTsZ206BGhjd4aTXLVhsvnWEQUoMsOMrKk60tbcT9GroDuc3u9RC+16OtYqL/ji6wEXO7KoaqvVYkfLiLS/a6cxgFALAiW6bTvKeSrAhwhuO2Y3N782dTc/WXnpIGU+gpkTTFe4O6/8ULAAyiiiVixURTFK5F0WzihKI4uAcArCCzwqTUzX58UI0r86yUyQN74xCciEeHGCm1g5Ym77nDY2yRL/m3j6Uy68qCDdeh5nziCAIkQROikjC6betBKkmikQFqdtugmFsqEwA2EDKlOhQUI8gCMiICt94LZ+IsbGDGtofTlbpu+3ZaeaoU4t/h7A+giiF+I3X+K1v0p027ZslNY1S9kNZ3J/FUh9aw3UKzYQMzlgIADNBc3ShKwF1otv9sXhbQGis20IKOkrSgxngBAAMji3ZBZxOH+/oG9wCAnbLUMCkW/xFFb+IkiFB83nDFAaZ6+gErcAL3gU7+ja+gnv+jVuUdxU7+P+7JT+0LPNf7/1Xl6V+Ob3Z/q6tZmdCoRRMAAEQlMWyOQhM7qCUJuIVeJ0c0AnDsp0qiVSoY/zhzntvP+J7XjYk0xZO3rN/vUwT6vMpCDgAAo3VxS2pldIqD/3sNq88ivdACAIzRN8LlOhUwaEsapMwrXceqr5SIqVVfSxKpqbsqeSOhjL9Wt2UK0mR+4FHWPqvXH7Avwa+0nKAe6vMwTHhDaMl55EIKAFBF2arU0MUQxUEXiiPAReudpRvZM+eX8ZaGmcFokcx7jp+pMKrHFQjTxPIuALBDtThRdIylJULPJhIU8FI8AMCFOtyF6wbZm0rQtMmFMJOxAGGllAjppu8IcgmBhDRq9bCu9qwBO/fYgu1MbG8AUhYBDQNULDaayzvpdxeNUStw0LVNRyCvV5MJAPQtRHPbU04Wj1YYAWe2sUxy4AJruYqsjaloCTW1lBAAmMry6yWsXQPHNJ5PNpJmsBnk+337Qnk2/L59ez6FCMKqobvJVMXjmJ+nUMgFECjysJwZpsSHspNULzOMKyoa7u/FdCQ8/YxadBxGAQC0NBWp905OrZKAaq6mKmbPnPnXO+qYweioE03HaouWAUAadwEAbENTICeaZhpouSvVWJXoHuD+PyYpLokHALySaeku1k4e5rQXFKM0vbPdKFlZQ+z0ZvKSHKg5JhUWmJ3idXcVQuMVp1D870ZB6FhCsTQv9PClSijuefTcROE01/QuEaxwPiOsds4Jl0aNZBL+7OUYhVt3bKtn8FSl1WQCgNANqd3tqbiNp/Z1DYpXwKHZijtT5BQxUUMhAMCrbsppGcJOcTZ1mtOMmjptmS1Sp1dCyBB7psxHO+E/bzo8e1zqXRwY6Rmz1zYxtN8piIUzh0xHaSAFANA6geOPbeTHIKV2ccCb0aAu78bkqPRmNTJXd6XKHM+UP001Szat6pioexZ4AYABuhUX5QVtlXhOX+Kgum8VnJF4AGC0SGY/O4FCWYRJmpOoZFrkS8W1kPVwoKQUGppNrlhDwfv1rRzjgGURvENo3rXD4IdV4PoT1UeLE0ALKgynEG2HqVCc0Vd9Y2W3I91ZI2UCQGmRkFBHBys7uOpri6HYPTkbO2yovwDxdrFBgxdV1C4k9McC/aDWB1DbEM9D97zhReaPTRdLXkGXck1Dgn5Y0MOw4YT41sfGGksBAFaF+GPjPTBIqSQBd6G5DBqBYgcGwJwG6DFeACBAxUWZoc9L9ZlPLO7haDwAEEACCAsicQZ0Oi4wbKrBCd/rTsSX1hr+9Zbj+RgaLwpEF9Ozwhua31t5+quVBx/fZVMcQjwdV8uycYjQg0dNAAADYbdBLyTggkXn/Sx7Wm5wA8deTOUyx2gue9MjD2UvJcXMWoRvvia4IFrLo901f80h6g+PifeNrTpruVXvcdx99+qbk+XY2MoN72qlc0Krrz8eTEpwhDIgex9nbEX12ubFjSYvjJhQmOB2zJWU+usi/2S+6vZaFCq+fpHAGUztr2QGOa47dacajjdGfAMoWyZdsbinxzjGkhwAwETYBcZi3yZji+RxF5U1Nwmzj8frbWYBAFSENC7dRTvaLycjabEmU+fpo98vbepMFcQLlXYKT9T7gxu3NiyP6brMWAgTxMYGnA4bKwQr0Uo9xc5uDigNGvLEFPGqC2gBx1I/5dWk/hPf5CDMeNshWGmEgQ7ki/GuL7bzsM8cFudRE5tkbLM4hMMfuVn2Q44SakvEQGwz4mghJnRSGWTHUN5fROkJajRSxB3Je/A5NEtBn4sd68kZcwixtFEnjhOUTehFthnJ8ZjTqrvcdLR+KXdlqZMu09OAUR+8WFxVoQ/u/DafKj+flqwUdzjZr1+xehBZd41HOZgSyWpGAQBIAXIrhultXJs8kELI1QGFFffAd5kWYtvU6duCsfJOrV0UKXzH19R8oK2W2w8m8r3dAHhDwxX0dRp4fbRJb/1OtH0BL3M90d9nO5OXnZDgS0NL5h7Nhx+N15cjtNPlP5KenSlrrFqt4GJbG6bX0JVQHeFaS3qc9YTLZxR8NjRDORqt3gUAHKMvP+LsaUVbw289GYu6RPOWNyqeiW6IBwAsryxfKYD1n3ABnUhh97XINHeYWygUr0VWvEAioNC8FuV2lb7pI86Yb2TWEIoULzSBDD5hleVFTAUFlGtVJk7hST4+EBeeNK2Ek5T9J4XqSdt8MUM86aZuO3sM3GkoEwAGBBMa1D0yyLRGcDWhGea/9RyttrIbx/ikbTYTAgAup7sRZLFNnKegwa6ZGQcaVnj2eKEhwSAmBa0yXWY7omSUrTi7BFluK8/jIGYCtPj1ut0aU30LJ5Vk9f/lewdXiRULVJdTqlcKU1OqpaYWUgAAilN6W6YHayW5r4tKQJHrgVFl1txcwMoMAuAYLwCwoGKiA+jpYPclrideHKzBPQBgk749UIqKfkJB38EKmjPgpaMQjNeI7g0i+DvBhO5OT98gdjgxMsUI57W72H3AJZ2JbAywM4zAlRjaR+0yNteC2mOMrgN1XbvtLtxjQ5kA4BboWoNqNgPX1g2agFIJQwlrpDPV+skFMVYIADRYIW79kuvgBJk9tKIGwSx7bBA7frBBTJ4MtHRyFd6QEe7h7HZD/qrlvGo66f98Vt/Jdmrd5gDFYsMNcCwFACAwoWFHFywKknAskIBycwtOZhBAxngBgEbtumjuwMknLvf0aDwAILAZkMFKnAKZjheQfNeBTuAFDhcA5enWXexOY89OcR675xN76zdJWUbgqKpzoBjb6EAxxtXSlbntOq0CHikTAKhFg4RaOli5wdbSHoGCW5uJ78naxvdMW6g/FDsE/hX7sNdsxXsI9w/pgQA1XfHbdwBMCj1gedFuun8J9RGp5Yr/L9Uk1mnHlYLHhgvAWAoAACBcvYBlgQCYmxswmcEGPMYLABQ4UdHQrG9h8okD1mI8ACCCxX9EgQuaGxq9DiIU6yD5+wJKr9nWf/YsJvzv1D9728+7MWh0gH98MTwfB2y2yoPfWs4H36gOIi8mGrgeO11WIKSV+XDGS0wAgFlgqouG2TTOzjkILJQAuWCXkLDdFT97OKNaH6AAGvN+nKrmxfCH17p9xYIGdvr8RA9I/FnF56G6aD/uvj+bZ5cd2RsZZys0mGmbMo1wRZirloTrCE+TtXgrsfsndbGrRn2Dp+Y1WQAAgvfEG2dU0k1zJddCLp3SdKe+lHvl2lYVG1K57hvby+gtYskvY2m8y8ryTfwybg1KWRzJMT4Qf18VCOZI9PRj98B258fdpSnFdGoKp1csWCuBSUWNmLDmAF2aUQAAVwHh6OmZ3fQbIcY6oDTi8e8MUfWaq5djBFJbK6gqwC5I+bAUdrawEwCo0BxtcznRQkkFNdnq2kTHAXdlqPAuxQMA05A2/jnvs2SRZ9qchlLJeFYYJt9MWvE+gRbT9w20kgJ36O2VF27Qi7sTcYsergl0QI/WbDqhx2tGndEzd27rQjG3UCYAVFHrNKH28JZOs4O91N3DUHxQyqLGema5mRAAsAQcbODSt2EFKcGszMyWVyjDNFvg2VsDzWIZxHZBe2E32YHndqT9w1TsuFS5fwrAGVZe4EHMjFHqb87sTIs2vtgVY/Wfz/mrCqybaTqn1FAKU7l/maaWUgAAijKMTM/seiq8J0YrQKnmJ/HrYV81WXNzRM3dgryDdKO6AIDAiYhOSO00iNWXuAiHsu6bG4gHANa37w4ycplH9m5skQuZK42fBqGD8aYhpIPN3wE6uJ5PwfItVjg5SYIVnV4kguFd5K1fVoiQuhKpsuS27QFTgdwZI2z6xNFO6jTqXc6NvpiT3MeObXPNy4xGM5kAoD4802dOvcfLzIxG4FvBpOTARdMS2cos4tsbRA0TAgBjur+DCnCbZugNIsNMOsfjYMfZOjgRhA6ib84zyvUKz+6C4aG2V1C7SW9ucJxacc3+iWHDQe1SCgCgA8DVg7II5AGdmzPAmUEeSou6AIAPBC8iyHyiwBmLBwBmt+3DwmFADSZs7hTUvYzPdCyw+LvBTuAByQSWLCIwvIvcabUUCdYmkge5FZvA5NRp0qTCG4TPQosdpBZZzljQanZ7wn3F0TIBoMBKqUXhZQS7Tc8fg0sIQ0kfO92X03Q/X/p1zOO9C5clXRO8Niu+u6DAIB4IULsVv31PwIzt9lJw7VIV0U5Xarbiv9sJnCxT67bXCpoNG5ixFABggY7UNzsJLVAMOGMFWFC5OYHIDC7AUV0AYMGOivbe4yxEPpFgFuMBgBwYBlSAJ84cuMmYFD7+LrASuEEk/8FXfxM40+B5FqYXR4XXyk19qtelPrUIfBgyEgB6nMDlDHhMrCxn4GzYKTGtQwgMJ86ZN3gS5QU/lzb0C5k2cbrrdN/F0SQVbgIc+JTdzitxgzDVkJNNwFSx+YCtlIUfX4PV+8miaVjewhFaRkJCXBGvwGDxzfD4kYvRShalTgrGygLhS1/2lNAfBWaJBG0r1ZpmCP9cBPZlni4xt/s1qkt3vjXGRWxJR9dijb2ovOX+WWDvMg6N4ZTu3AuqujEgGJnYxS70bVwvNbgUcPz4zo2/MwhVzASxWbwBABooJeZ+WZHFB4tKszWoDPLnfbXKcRYAIDpKvKSX7ayPfvRW+6cBGSlzwwGhQVAihs8KiPvQFxvIJf6KcsFRAybskbXYqLkJB0HJyaahlV2mUyyw0QQOBIj1bgeXpadpggrXyVtzbptVsZJQ5OGkaZSpbz7roh1nn8Yr3G3AVgDoAAevMx/e1zg/tWy+VYim+dHP8OLUrkBUaN+P9aYF/tfdyurHnK0bM1PYzZIuANCB1IwoZ8euGgTlErPr3OIgx/YAAJ6UJwqUwrESzcpUfvvRgnLYPAl21aCaYGyDMLMOcyUDN04wB5O6z88ia/z7BFPgcIlBsC0Wx71qCjm4XI4ZxbIaLSs4qkmxtqOaKdZ4VLPJbx/VlhfLBAAXl2eYVNvqUrODBlUaa5Vw9pTj3aDOQCEAsGfPYmkmyWHJFWzROcnsSTsah5os+3SIJyEgaDRPluZxN12gHiGHgUKRN4eJLfhO1nTxZvZC7FTgdzBXALi/xjyuzi/3D6AosOVVX/TZN+c3NPYM+kLnoC4AIKkYUV40MdAckH2JKeO1gxjcAwBOowoHSmHjkh3tLL+iguYGobyDCcOnVh8eiIl9BqCDwCckgA8fLBZ0+PehW0LDvDS9JWwJO58otu6EE5Cte5azka17lzOSrVHKbotPGOBomQAgKk4l1VBzNj8YyOIoMwTcPrmg+/dOu8nG8IJTXK8MARxQkplTG/UNIqJsnxluBJHRtjnInjJbSg+Hvpxs97P0LdCJ63fYuBamA7cCQIeCeJ358K79mWtGWTALLKBzcwGZGSxAo7oAQIHkRQaZTzT3zGg8AABwWA/BpE1Q+NKxwco+BETwnv+6HVRA8XBxS3CZl6behS2h5BPF1u3hBGTrznE2snXPcUaydZ+z2+QTRmu0TAAQFdNJNdTM5QcDmRxlZuHZ/dDsUZuP09NFG7rmHVPrnoFdAaDjUwyTcwC18PF8jhDKkLIxbnURpt+y+qgGPgO6AkAHzXiNedT+Pdx/URKBPKBycwYwM8hDcVEXAPCB4EUCkU8U92Q0HgBoMKwHoMPmJt+QhZuMReHLPhjs8HrK1cezyPB/FtXHVzfyOEMynMPTR/rrH+d0N8Ws3OBQhnCxbdShm/5aG76Z/BtdUt1mIFi7aJUmftRPc+J3uywZILx9f/+xMHPES94m+bx2zW+HgpVM1ucGoR4eqrzuZ5TFNez2eGC6Xly0rZLiSQKpSDenaX3zWGRL6+g13m+/SaNiZgt7DbJWzggIAzoQhg4FgbaeTzkA1M12ZI34+h69VTbSB2L9PK3xFBUj8AmdfQAby0sFEs1lNHCooC0JAIHzKwARrLa7o3jv/1mt7NzAj75CHy+wzxKobru85m+PhJ61fEgiVlyeSXC/I3YMZYYIMQqSskWI4aE8y6YYv9KaWg/ibXFJAh9RGuNsK07iHrX0+8JxZaLiqPg/fbvDolA46qsB5S1bUCyRN1Q4B3mNmqBRN+nkNHaG6tawrIeUJMMRvXuJLPrfrdX2n0mPCh0Sz9hTFmSZ3Ta5Z2yyXSXvUcSm9Lhxa1hRJukpQqcsyl2Hu479skzdRX31dWGjldtxkvmVgUZggefZNhln06MMrQ4ahAHtc2wSeyeWtt2QQPyoWCvsolrbHz4093CVwgX2Joaf0YRAmrkcMs3FNsAfl5NPSbWVf8SLwJyG0CpvsQBxRHdw8uqXPAVGK61+/gGhs7AO+pOASU+PJxpTUbaasnMmCTTHbQLlrB5plMhPYbIoc4Io1TGsgLFVHhucXPyQ1ds1P4kARxIZSQvY0MRXYpJZHcbOHwmIXeXa2oH6rvjfBYiDe8iL7bkNGie2LXXPFpoCD8hMRkwqH4u4ksFl9FOS8U7TMNRGxvliGZoC5NPm04KAqJDTOj4oVrkLnI47g2Q02lSfLxDecHQtBDErtkzfxGmmn0FKkwNp8KZ15+Rfe4jjfB7AEldfDSavGDlHKE7DYER0YuWTepow1Ek6hSmbwptgBLIS9A0VQpBVq2fUVasuP1HfIdhosA6GAgKykbwMI34iZody6xXsmE1bsAnaautfRpN1gywcj8aYyFehKfFbRtFFv2RnK5Q+Jfei5HsWGzoVQmbXdlaAPEP1EcL286iVUj8EDdPr01YtTFgEQ3ERBUByotrIBpYNyqQO49yyOq3OACJcyAwqft+vVNKYQ4uv0CHkLFUETo0orWtQbYPCKiDJZP5yAeSGGt44E3EKS4Q3Pt8+aSzJruTrQ11vponaJ3t31KVPKvfyQ3a4sYcjEp2fwO/Y1tkTLTYc/7BEtHhR5JB8Il/EE7CJIakQMy60ELqUftd6VBtFZbNJ6ENnuREi6dCr+l50ktXkOQ7v+QldL+1YIQO74Bp+jYY+xv/H3g5Htd+JJfY1sV5h+V+xTxVX0/Glm1Bx1UH9S3qzwJqNyxo1axbNhO70Oaz/qYRoX5vqiD8sjBRCYVu80+Jy4MMUjI718qF+ahr6Opvzu/ltE9Jc33R2r+ZDZRkyQqF73y6UE9A9o9ze9+FutPdyMzSjLbkknr7sJi1Rh2RUtgVHCFYOxAPdHpWX6HPehmZpqoziCJEbabbv+miNwA2f2mZ3PzIjvBfHqL8AOns0NfnTPCOIuafi+HVKw9DyoFwrvI8AoVt3SAmxCDzreMyghDIsutazexRaKnkvG1PYChgRXV3edDbboQR7eMXwzSwFtkQZQbTlUVjGchja9qB9FRjGrT0oc5CHUk8SgDj0SalL7LLqfTLf3IIInyGQAzPB+rQh8UYMZXQMeCmbeb9x40tAbkXHI/+OSwl6UjG2IH6WQjOgKSC5/3Cx1VlJGpy4AkTsAD5sACjayXCB/nPmjYbzrwrXXwKO//4Wrbz0YTJ3Q8OBfQhFE6Vzu6KgbnR1ddnOlw943/89IukBAbs6aqTkIBh7I+vm1ooiVpqPZrTUfcJIVhPGdjVJrZ5NYihu7rvUPG65RJ7rlncqwz4rkwgG2ifTkJgHFWhBwTtKoHamn0pgzpXpiam9RYoX+8YCvFyxfvypmCa6wionAOHWA73lDiqBR5LHWlC2syXdVuut2kNHNYkV484vwLjhjLtsliIT7K0L5nZLzHXVfFhx4L1Z3rOSmh/GY5cJBA24lk8Q5FqOHpPylJKxT7NW0LAzg9f2mpP6yvZdrw8nZQ7mAtEqReo4F7MESuOgT6VoghxAUZZdCRdQY36oZ32LR/exBO0quh5lFk6ohrZqj7uIUlF1iTZa1GlAUac7nUSl6JxRZ4vvaMe6bspfKKuMVQcnXSn118VxtFV4179xBzPnG5M8EjZR+DC4La2OMNXyeZakIU1nx5LIK3wnRbgW+SNtugTpJuQVw+IjlFFbvcWp46MAIlq6RmGS9MrAnEJDDruZFDQt4v9D7Rv/l0YGRtuMOgCpbpgL0kHfBRpnxTLLNV5CNuw6bABRT1qmriD444Yju6LEaOigcMwsLA//hqp4rWq/b2s5TFYDhjMDwAlAbwTqpkn8xJkioPowbKrxigxC5Tgz1iDv2WPYGdaftuhbrRJfq817+0J0BL/o1Lefv/ul7Y96Ogmx5j/e9MQD/73HA7t22MIWfP3zVxiaY7nMvOoGO3+B7xeZls9p2GD7xXIZNvP26qHng48UJL1fJdetilxUptyjGM0eow15yBpaGj2CsKbuMLRkPo7AGviwZ+2NQfN3tC66p4X6q5GVlDQmPu7I/AwG+t7PiBwa7Mu6EUODl4qpXwoFVGr1ktIC1sznitWr2Eqz53/V5/Mv75WnOUAp+KXMXQ8fllVUgNgEYbN2dK2QPlFIyty5mSgFO/J0xSJwxgGrWP2GN33tkCpfHxbi/TvnYnrhjGeFzP/wGQAgZvNwWFj8dyXFzR0AckCDL16iy7AOnPr3BSJ/36T1c1GNbNvGxSkNxzcLe2P/2f5IhD6eCUf/fPVM9WFmEjw5d77OO5pD26JPuVhbev4T4vMJmCULQ4ZcuibPjmDe1OTfFPaaeucyAapB88r88xVlzt/C7doeZx8Z9ZUnq9dudIy6jlffBWRY4PKzgNT/FgbY3MMsIPPfsgBLHB4BdKMIV/Ck4yzg7P3A6211mAVcux94vbQP+DaQ/0NvT3e9MYHXIQFBb1GOAjc4hYPVW8pV4AoLYXttyAWN8SYme1nwnyzGCwDDFtqri8D8UoTl97dYncSlgeKpe+1M4uHZukq7Tu8RIW1mKS3yEkdVoc4VUe8WociFKcKaGQNd4EbPrhTVr7PCqT+zbsZCiqx/E7pZi2eD+bCs/IGzyIisNpFDjqqG8Js5FAUivLcuxoQ0NcU3snoWzeHYMs+3iF8pnqXdr7/02LabCmojxdOVaJtGXlyEEi1wIkEnMmaVGvuPV1kc3LPb0mmAEkN+fbalNe9biwJosf8Dqa+8gajyAgtFp/AvhUJCfgyaQXg4SKx0fJtR0HCNygPYzrHUNYVSWHZDpdU1i3bTyYPuByiVvrXjs+7gHkTrX7wGJBhjHNcbtlx8Woh25uMx7BKv+MIxcNZvZZgI4AYz+d4rmMcO74IqUvLMOSe3oeILzYCUt9yLpkF5g3pKgMsY1pt6w1tEXUN7epUIBC7gqq8ZSlVrhUbf4rctk84W+QN+GnqzGzPNDB4I6Pg8hFeleGuqPEV+mhwh+tihOtGf7ye0ljq1093sg+gtHeKRwtqsW+hhUh7/9bw5gv3a6Z29TO1BB4zldwcFsU5T1f8aLoAy5X0VQipK+Gt9U3kadb8oAa+Vbj4SXR2LysFtm51+lE3W6UfJaj19Oev19JIVe3q/NRsHt4LUzxakcVbRWajt0KHXYeufzmbzn47b/qfnUwDTN34qYHr3lAChIZCQ55++ZEungAhTx0qQ7kQprtoi8/JG1UyixOJgotkVjpFiJpQ+3sJ51Z9Xu4oKL1JJTKjVeMJ+5xgcfLG1f3PhTpFHxC4iQWgSWbZwzENnAaXuchH/Gk6vFSUtFqWN+ObWfuiE8zXOiCzbgQ9GEyiva9STFya8lbvakrjpR5dOMSgHSqtFpZhml+Z6vbKUT2hmNaF4xYcehYDSaiST4pZdzancNkhaC3Ieh7BdSsb63XDJrV1suDAeSFwp9AN7RExwH6wcg0mlcNWg0tFOu0Z30lbG9lCT4k8fdF/Vpwb0yTEVHas7zSzwxH7scfcstFNjySaYOlgveec1fvM0qOGr7TWXIFGs0ihZsbNJOzCWWHO0C3B3xXAtne6UA4xh0nAk0fqUm0ux6Uajc568M/CiJ+WMTu3WdwpH0M6dy6vcbAm7kYlS5kWd0pn6Mjg8CpoqB24nbEpvmHIfnTN0JROF3CnJ65cLrJR9LVELy5bodbx81iOlAGxJwUKvJTszigWTiV58MiYVE0fGDHcxo+zGcvS50AUoMJybbW1SjiX5krFYfTIWy9ulEcU5CMSEaQlDAWuy1rI0zSRFLQNbQuVeSyZmYSnSvWrSi6yWkBlUrJhqibN8aomeAjI6nCUjSPc/lDNxB1eqqSiYSiq2rLzq/mSbUkWFnAoqTqB9snfHlEy8RdzQJHYkW2K8eFI2hTJ8a36+MLNvRtu3rrNtqoEapBeDBkIALxKiwAVOY6GyXnbFqm911XHzlcguviYukF82/u5r1i41p/ia5k0X2XPrP5RX0jVlCV+xV5qW/CVobO5M4hLlErXEBj4L5rxeF5HkP/yh8jlS9IEdjNHEOxASe9UztdicfB7QNOVUQhKQoCB05YZ41R0PSgpgSwj+WUpfEpldPHUMYh4jCobM+Vln8T43Jxvzgmfl/XNhDpZYPKGavslgYFMOx4oSjTCv73jKcsTvPBUfqPEful98np38Sfip6XlP/uA1gFNgpuC1tZU7H4FQHuB1x90xJQT3/rzNVVjy+q47cH9dQFmvw9SPbXBx9iVQUSzQ+E3ORlGA27RimcZxB+JDKMyti72ieamD3WZmQmn1cqkVpbxfxxHF8YMkEXTtdOJY7ne8/QUya/KyFE9zOIyXdylBhSiR/IAlTpSyMiU4znOmIuAlfB436FtqcVpSO3freuRV7atsOn93O/w6xKucG/+Iype5K/tIlsJ/t/P5MXbHN6Xw3M/t1y9E6j7igetLGrEWQd+VnIZ8M5dh1ahyNJW6d0Y8MH4HXZctZwLDQy3DdxgSQPCmwPc9ARqdKirhkM0wIyZ+AV7jbMlP0BQKBZK/OSraol9ZKgWqoUkcRKhprBqnvvoaqCKEdHj38qFIZVRUi4cO1dUUJb2dRsJn71BozbsvSu9M+8xrfNkHLb/2bXj+/cIDy18coEC4o5Xn71HxMcJ7nfD1BE4nJkWimYaUWg73bBbGLEvC8r1ArdYPo7bUmsd+xQNnE4j1kQPLPLScMrxyx1zHhw3UlqeoSAPUUUEZbjo+ltu4yWTadarlMDuFWXbcts824ZrmhzCNFcVpuBHWIH46P86N6DQINUx1TXSwoP4MFDHfbhTKW0J+zVWa0+hzKwWNQagR6htL/GYK3kPFPc9ngt1DpFLUlvc3RcpyGGUOHgiVM0bxcmwcBi7pGqiuRhmL3l7kfatIY1Sj8+M4gYOCUem/kRuD0Uw6o4baBfsdazRR9c3gr4DdjWapDKaoLe8dRZhxoyZNEK4Z8Rnb1kxmaqqxAR+V3U+/GGxM0YtLzaUSL8PMyucy3n6aIVGiozamC00RHxwfRUwq8YN5POUtpIihaMsT65R/a3r79o8+dEavBhD035M8Fs3Sc4g3tM5nbXVQrTokWJbBX9Fc8ql0qKySDHR+DVNesxTigKrz05RTTsPVVxohSKUjM2rfIZHQP5uUms2m/3SkAqpG1Vinq2IEja6xT0dQ8zXReLBr0GRjSUW6+h5QlEjNfjVcJYTUqDGyCJvrn7mI+s988gxEL8Wug/CCVJmks5mv1NVqaaz6t8Xzt403v7TVUkg8KlPdwhP/f7NslAm9tOb3lSpqWv93YMr7NZvqMz0da9Qhm9IsRhgaLcVVNFOjO1TuNr17+ttJ9UMOLl6oKfwKwjfGzFXsE5C/6vhbSq0v8WuAUvyc8I3w5k38CGz6W0olZFSNQZyVyyzq8mbRuWN6i3pbSvVBpZThUogLKsqvPHxrXttcud02bNdtLdWP82oYj5J0RMfV5oDvDIe6Sy8CTgVm+J4vbgQp2FFb5vdctax0VJrKWrZZFzweAcIR7NWWy1R8ykPjw2jYXXgYTvniGPpFaHbkjG1uYItfGPJJi544Wtr2HsprRtCjXWRZqMbTi/SZEvxEvfzPNrO83AYP7EmVObhssaXaCDXAITv2M45Aj/uijMHCk82apnGqKU9XnRsqaRTVxLn4+em4keJHXDgd13xO9fnVdSiVeyi3xvEpuWnBZs1TXn3l6RpGN/qaSqdDNXGoNF3z1edXnxs3aryQS3XF+TVb89WD6hh9I6s+nR8ppj6dn5/Or/n8KtL5cX7Ei3A1EU5RH6oKoWJmcnSf/rQ9eIk/J600VF9zledUSXlIVF/DlYeQqrJZ55JfCM7bm07n7DhnZD5udDhpy63Ud9bmD/f6LuQs2q+64OEZMSeMoNjns9nN/v7Zg3He1lhY0fmBj3s6IwMtU2gqCWDQkZgiDvRFc2YtWHsTPaczutMjG/2LNd+4fOBLhtvKXIprPT28+eYlebSBP5OaNcj2jxB96NSH+7z1J73uN3OYT3mN6on0gXpqBPuiUvT3Ycsn/JCDI+envEnRmLRfQwN/qKmQHVIgKyQgDKkP6fxPNLRQ3zxtdCiQ7oaig9KyFE4HtuRmMonP1ETi1Yr66rAZu/V3/f36EhiSJTj+nhPtTxGLcF99clOPKl3NM9m1wtXBvnUYxs3wAdXpv/jlaem2hqH3DT09eF0x5NvVnRb9MLyuxZ8UKhVrMqJigiYBhShP5KZiY9A0M52qf1gbhdHjpXqj9sBylxyBCGgCo2YWHpFupvP0D21DOypTexz95iMaW1BFyEHv+Suv0maQuf/Qore6kHi79RdweikSx2ovsn5kTm9H8peojq9ccNckI00kQuWgWlBD6A83f3eyaH1SbVCWL1HyHmVkEBUTmQHCH3r6s8d0nnJlMDo2o4plrdt8cGDyOCO7arx8d3hSp4YLt7t5ht8cgEXa1Zcle9xo+1jVqJU98+RVdC14BABIerHiu2wkHzkH7Rfl0Dxi8TN/4Y7P3WV8tBtjrGbU231+w5fdUlFxxtN3aUNze4i+/pSJTuTu0r99xr/gTIkqRma9ei3vySAnC6L+Z/tg3xJ3ZtrzZnn32eXdoe62Z1FNWufVck8s+bZ678XPAABbyDK0RZ8MLilmYu3t4diKIxC8ofccT37J0el/fhG9fBlNuo2+X98X6MZz2xNUj0AsoO6lBQxEGQnZQEPuMbl2LhjsDFfHd93WvC63x6+qKL5G/zdXimw20ZH91m3nO8IU7RxxR0sYrk5aCWQS7gS0rBCIJ7l7Ej14y8wlA/Bd0I86vPmIbxENAOAdDmzOd23d0+EgEnhOFCIe5aQdGblg3XnxvP2UVoIyt6H4sOhaBJ1CgNMYQVNYBPMYxnpHNVlfixl8RMPVZ8pcd7hM2OOgzbQRmiZrKhA1BlWN9q30/GpUifWrugNHiaxfK7nlt9hoMk7dNdFefsuNJOZY5QIBARNn8EBqnmgqoy+6x0qWXFtcJRFynTkl7HNhrb0L4qO/dHJ6EPxjLzBN0ld3PQ8WGNeUYOnkgrSz2HG75RvrLoPNgW5dhQ/kVAvTgMaydPcSBidhe7EOGCdiM4pdqJyyS2m65El42rAhkPLui7b8TRi8iJf6NMzHrml0xoPAy1Izz4ZtSXEX4ET0xFlj4Mb2LHc73MxCU0PfGUNptBw5OMHEnaEQbykxOTdv/la8XOSgGBmzY+qsA9nFJickE8alCGWPMCX6X7rpdPblmtmtUTKttoui+C7KULOJvasWe5Ez3YN/Plgz5wB2A/MdGO0J3x/tuo2INeAfynbkQjbHOLULHIO2hYLGyUsUP9thclKbksLCK9rQ+Zilbeb0etmxCPe+0slCZ8ewdLIkUU7Lk6Sokzr4OJY0Di6U11o0L0oGgGwiXLAiAmsg+y2RoE1qbkAfDlKmuEShGsLRuKyY+xd6tOesdRJD1KmisnKA1wsto1Ms8PccXGakRV780jfXNjMtKBAS1jNXXbBieZ4oh95hNopIeeQ8dcwvsFmdMZuHaGMhNxdTEjHrVqXjA0vx2xWSuHw1WorLRB8YmdvNIkUBJqAUFPohhM5SX8/r+JN5aSNxrUxYfgeagNkxg/Svr/SxYoP0yT1q6fcx08b0ufl9vGtb+mx+n7rbvD6H35ee1q1vht8XojXtmxN/8SmCBO9WnF8c3DtzsY9IiwBxp1etfKrB6N41Rsx9TCB+gIgTkxiu9IkLsQob0hQumSSqfSOm7hZLaqJAkv3rlFSObtqvBg97bFEu+udrJbpA/Zu1DruEFi+i56lSrENzHlekon+mhc5Sg9tdgQYAsFYE4WOT5Fa9cXYCUTG4mWn1RuwSnXl7M2h3qoPdpSN2r7p2XNMoubNdsltFTyGhwkHErQ+qDyHTxkAyH8Jd2wLp+BC72zzIxYfc07pBU3zIRGsKDRQNeUvcLf78Zave/LXKw8rG4G9hd63P5laMg2PQcsKSTyGPtwzofk4CtsgNlpAZE7Su7LmX6KCbOXx2Hwggi3E/YTP5s8yfDIAHPNjj0FbmxvJb2q8tkta5vHgqdrOIkqTF6DVQoaVrHb3dqSTN9ughPKqFRZ3B7Or/GxN1Kx9/CIBtuqm7Apf3BUuloSVVWSEQ7G6COTxQWJ0QAMBbCDrZhxgDEaD1T+0gzqntUG3z7GtzsXM8hzbIB6JYY+lmOagrav+aM6gxaevbR2zTLL8h+Xp3F3P4onwv8bXlKKQ60PFrcYbU5hqOGERbGmoEv+bSEYI4KLVhSyED6zMGhwM7wz5OI+H1Pk/+PEvnt6crjmNfp7fqAAPL5dlHgB2uagMA6saqWu/WLwbvbIy8YV7kjsCX7wXmcXQDzTSfL4i+306vZkWqD8aslT8/satL1wy8g4ZFdlVV5ldKc9RVXyGENF5DkYMa7oz2apewwG20VGE/TeNUUoQR8auvmUrS1VdBo9k5RWWCiE0JxPXJKiii8SqrgZD6y13nupl8t1oXbBUJId5TXvo6h+fyl5/PW/2laV30VzA6mmyUNdFYNo7Z7bLUt64O6EuJFzLN0lx6y01U/wJ/SrczTK67Vt/YReDJHoFXCLLbGsSFoJ22Bdkg6K7NQ255mLKxuxIPgzK1ByNW86dNINmPqQfrlYg3x2Lw528ArNZ/rX11dCu8e/MzkqsqTdcg9RVjR+qzippmFmvqCwE71vbYTw4+Aaj7M7AXi1hMDqltioXkfOzfsePj+OoEYJ3X1XpW2mGcjnr4g/7HkoYQAHfX6rlCLMgNbveUemgAtXrrnTpy7yVscXVHADCdBWwv3+s1YGdORn0CWp9if6bvTlELQadmsbUGmK9BVFbzqu8rRVyaSY098v5mU0gXWDpwzEyDqaHRx+cPZacVB9Ks3wuqm6Xtkx5fyzmXYhtie906UyXXHVJfJTilRSK04K7afOIArtBVIVRQTGnlN2q+3VV9RJ5YW7q4vwwSRADLFKeNELpD2uMli/okj8onrgpHK4KIvJMLbmaRe7kjAJhK1an1Xu+waPdv4sQEeF4oz6fD6Ye7RqnWTsvZzE4Vpmd2CF9fC+cDDDtc2ucd3rDH9jvqXYEGAHQkw05wVnAnmyAguHuL0bC+tgzTn901k1zvGHKprKg4vtzsNN1p2lO6OzkqpSC62SmeU1765Li+Ao6SmXw0CUw7mqjO7d+w7f+yv+1RVjTdBv3h98Ltpunxt979G/GH2B48XZKzsywoIslZShP12llZx4Rf54Quw5mOPuQ4NQbuiLIc87ycibL0MCVn5H7OhfvCeorTH7T4VtqsZxmrFWW2VxJvV9nMmdPitjjT1XlbBqy7T5jHB3+WmRk6IXGVOyM4aRZyFbiAkbmB/lqPXFBV6wObfCUoPFR+E6oGf835ChSQoiyWFxv45wsd1eYmmTRGVlKyt02X1gb/BAwNW2fqZCwvZt67kpYpgVeWwiYnEYMEEFLXpJhr9aCzZdYkU7qUjPyKCYKSdPP+3WvwI1UbhXiiLfArm9eBHxDticZX9biC/Fye93PsSerCiabLJq2bP7L6E5LxomLa6SRfoGSpPfRi5O5E84nk/Ckv+7oCKBs/UeeTPQKs/vlgUKfglLP2wZP2LgS/xijp4HY2KPObuCxiFlwqtv5oVM+o+WEJttoobEn+tWWLnOEzr6tb5YzbaxnaBbUVdu0MD8pQs2sjZZpjSFQXkS0NTmcgwULb5+w6xHJWggEAbKNlJpBsr6RmxgJlhZmd+rDBkDrcTntNYg+uz3MN2gtr2N0i9pa1O+6g6R3rZZh9hNPNQvYIZ2Bkzge3ZFzuDLbT5rlqfMCFBsZsHaNp4KIVa9AmpV+j85/1pbsix8Ft2FT3zV8oV13jFCxX7GJips1bnbtQjtc+5IpIi7YJXWvpat5CkXl46Dtzns/ojqYPD/vRlhtzVJxowDwUx5BET6n3RNsabXdV2ThCxu0fbhdhd9p6oiQIi0tvJhzcGBu5ey2gONH0KSs76hayayRynZuf4jnNnz45N182GUnO66jtH12SWLv+W55n7Jz8WdzVtQN3c/WPS3QCSEUknPX1UV7P1JjAeQ+VPusd5xxK2jvnoZwD+++CKMuFT3eoKDusMx0qVS7HebcB/XrPENEuaVy+ZUpDpcpyxkFgPjY5sD21f5cDa3dRT6nN1Km/466YqRBNgQ8kdEMPzP6kwW5bJKxpcEJrw+aAG7Uu7CG4TZvHXvsA+xaw/VLyOmu7Sb2wdOh5fEQ+dnZ2Hs33ZqI+A1TzvbxZ8/ho/Gq2VyeCepyvoHv7bursPprPTkaaozFKiQoiC85G6n037FxCUmv6d9Ws451RnIgF3Qy6Qk4rB4V3uOU87uOdtk+oU0bQTacTBuDBnQ4lTGxO8HwNIyRr7eE4CGOehlhYvqvD/wBd4tXw7sepP7H6I5jQKQsY4ki3syeMYOmhi5Xqd/cTq5vLhPGcdlhez8d0R7LntKL1uVWOrhMp1Q9dXRGx1VMQOFV231nhbSZ2QL1wwWDPk6y0sgD9m2cAOAJYbD7NCqFrpDpaUmo2ZA+Jzsdqn9rdM0+MgrXQEQDMoYXgc6PMkSNov0x9Zn/N9tLRDjfqm+S1NY5qObk9Rf0ooBgTVzziXLHPzyh0Vq8EAwDOYXe2Dvtmrr3qW1aiL9PL/NC/UPQ4dpsFDHh9pXzov646OWQiuNnnVH/36z92RniVpUtfId+HQpXm29f0Yqc552LhpnRczj2QstmJFqZXF0zrrfVzs1a50sCo+xls5iYFtpexXg1oicNBBmRq9CRzRnXs7tE71eyYx0exLIuByBUfxaxkYNybp1CqMiy2xHw/lJo/qZ1p3bN/Pp4pbiNcPFsXvyH/nvttvPXTn6Qfvped+r+pSNlpw3Pp44Vb9Zv8ya+9AODKn9F9Va2Dn9UHQbGdGRmE4ctzEYxpXmfUwT1D+V7hLW1kfHHM5QAAgKMXGp7G6E2YYKsgUTrzkbMon8/CgyTsnuVgAAA6EqidZc0X7Ww6vTOLO0JvpzavCZ4Lrl9HCbnk2h0gUCF3iYQMwwaxKGS2TYxdg2zhCkyNabHpCsyUvWC7mz/z7Iyt4/Hy7KUV69kyrl3exa48YbaEqSr9ee1dJjV36BrX3XQUedfa1QgBwHGDjlX24dnLc0qsf7MoPX7oR4Ej7QQ311YsMmgLbI+X3eASS/fgILq2/eOiEafZ1qtYgkRfkbzR74UKVB0mS09OLuvI7KYeHgynAQcAGFX6p7QwqY6XeG3CFBaioFdv65/L0u6SuOulZgDADmcRHnN70lsxssV6yaTzbwoLr1WH3lXgqPqYBji7X5UmYOVWP0XxqD4+kjoDapVNxoBu5TLNozE/00ESW9735Dw5H93nNHKe1f4QHAzFjo40GBcLPhup1A8ZwURHggedNQ346AKfWm7l9PfG5mF1b/IhfVZtyTqhshRalV6+wclF/PqfKc4eJumGHqJWNnappCf83XWNr7Zjyf+30meI9FYgbQZx6txzjTyQyDnBDhJI6zHtSnGO8OTo/JhI2qRoj06wnzv67WpwW/3yBsIeTjPdWXAKByYwPfnSbYhknSoZFo8WTzorOYpPaMoYOYLmmXvnUEh1VSRcUs3mV3nsencweHU1/tY84OYZPI8A1jeANEIohVRHS0p9jain9oIOnQ/UNEh981iSgrtsEgDsoCv56EPj49Cl/boQntHn8Iu9HSjO9wuYZe+1GtWhZzPz5uhgmosBWbrhjIUBAIe2WGyYkfCbeqMXg9/XNiOfx5e/PnjqcfYBnownnbEy47mlzK3enXgO9J4UPCknI8+357mNVW1hGQwA2KTxsQugosi0cVsVCNHhjK2d3Q7Sm+q8QQhx6rExZ4YCmVTtLB7toXcmNggKQH2qNgZ1hfoGbQsaQX1rewHN46GPtg6o4QF19jKYE3Q0pPzme4G/7bMg3i1txJjeSvWsiG4ljGMBAIAL0DE7QgHmmKBIkCZjzgZwhqErhmo0hAEArgXTpa6W24XfLDrCXbDgDB4yTvV54kESNezuBjTqdkyiK5ftcmCjrI6DTHHLBryHXCNGZurmRiDmZFymiXIee2FaG286ZjtDTwtnb3qbxw7HOIRE1hI2i9gbXYqcuYH+dmlkMQOkM9mktt3OPhf9i1o9zR/tWNKubFfyePptlko/mMivnHPa+400fxu9svihJqFJmvfPYf4F0oIe/BlbA+Lb7T6qPYjzWQUS9dvk/yYT/eS7f4YrdW0Nk8EmSBxqjH3S5ygdIe4fyfaXrPiEDQVxtR70r2otyxRzGP+6sBLTZW/InrR/3j3k2W7rU7eu8kZ66cC9wJPvFtB3iciJpecoOgekqgEHAEg1DFq9YGEArRDH0ejVNmoAejZ7MgYOGl5qBgDQXLuyJ6t/WWtsumFnOpW6PzZ407c16FyhQW9tjCqAgweRU2gEmP1Jh1wVRuK+fZgbutLWGBF0V9tiViF3y14wmzeeCbAjG/NeYGCSB9uCDh4wXtlhHWIFsZuIjT6tsEUeW8t6egp25oTae/wtgrIYgrVJZBmaea2dfNyVLQovJgAAbPm6iwUT+VV5Tn/fqONv6SSLOU7Yi4L+luekk+FamVQx0Ok7wfS5YoOk2+bAhnflcek2ZManSidG9vYp1rswQyvDMH0RCLe/pt4/3HoNGqPJwhHN/QzhcmorNiOoU+XFWt1DOHPnp3ssb/osPI8A1hnA5ZSCnJDL+prFZeBCqQfBzmJfpdC43MqokOtp+ggAUjFwnf44yz19bZiTfNUFg+FXo8Y77gV/3QzLlkvQSzC9deGze2a9HYMTIwcVmGYJfY6PDSQc7X0NJnOT0r8NX0xxEpbNSoIG8MKdGqPblKSD16T2reuMKespdAKmp2ZpUPAwhc70lb2Ep3o2bp636e51dJex110Qt658nh3TVciRqgyuMj8pPTn4kxAUPVCoMRSEQQNfOPzrnI439gS3dK7P12HhUuiMVyCG0TyqT04Owxr/v81fajVMdmGD3FRMdtJuVDZCZ1SKm6lE+I4kc/R2kFeEqVRkY81Q3MHcnUfXgbKjhaCmEiGi28gAgWgbF7DsooMwBnYMOKXtGBmAy5hhCTrfsN6bRoPfODPrew6bxG/Z7GdL3hwO52opAABwhGqonQkUrAnuNYcTXr0cYx4ByNDPrRGnEnJ3jgcDADah3i6Dv2bDVzMzFwqFe8nhTGwPRMmcqdAz4qqr2H0csXInjQ4u/eVU90JvKqWFQEP+gaZBIzNsNG0bl6HQdIYzDJ0LHH3HcYGn1XrBTvgSa2+JqralmEZQ2HqjCAbSNAcEAFnDFPnhptHWjt2/dMOkDctpoTLGYmzobnM8d1AW0x0JpZrtX4jwgl5Tb1qwjsJbeHUvpu8F8bFZpHP8WXdWtwESlc7qWBwAwHpZA0Ou3tbPJV3P43RXMqA7MMSsU+Qc9ewdSGyTGQAgFgz2ZzC+GO+fi6P+PCelcIfelFwe2y2o6O6Al8q/a4iZai3lANwkk49zUxmzBnI/kMKD6TX7WwPRZCQqQkyMjaYha42LayBRjMF9Bsayo8EYWOLBowNLP2RSGl43iwdRhEJOLFFgbks9t30XRfYi0Sk0OFV1UQcbTF/TRwBwWbBj7bF7mhXi1p0st2GXZHKCSYNn3tWiZAJmebpMLcHdtVNhFdhya7RdA1bX3m+7wRxqK65u8zEqaiqnv9qN3W1QXUFY/QF/Gb6QAFZ6gGQh5EXqoyWtnqbsodDlaEWh9myUSkEtfgQAS3QVPc71QofGQSHmQMjnkXx2s5WeNzvWIgD952QTfI5j96wS6Vs5RMrhyPNxyZmsagbLYADAXL7bqWZW66lkXwqnaM5T0ft1vCD9sJerf57lq0XePCfaSUdLr2Z21mZ0N/7v4lX5r7vt/cfff+X90FFeo9tAedROVw0VwTV80N36Z/LzVM1BHglutxkMAEgpEmCvvoCzwEstLntI7QIzqs/bJdxGDfvZgSVqd24GmmIhmYO+UTGjRxKGUC6z/fBOiMQYMMfDGmyHVTxslseyIP4EAV9llVvfukI4+8TUakjc6UXFT6bdIRCqgyfGjLSMM7SttDp22tC2zxa0Azv2ds/fWMy9q3IqOikdPccNl4UBAEO9Y+2CKgDnUpw2K6VkberzwoaGKsKmDs5Fs/OApdqdgW/djP6yhha0kEFwUkZm5uxOVDEuy4YxGMOKcFPWzpYb7sSi3RryyKkTh0du+gFM/k9ibGn+kBbm9r98D38BFc+ePqWGVV1vhLZBoZoDAgB4YU80RPFA05LmNqxwYWkr57xpjNZagsnrbzF5CcZve4TN30NUoCrGO1JCCV1RxnOJ3DLxHEq74KoKQB/5WUqurIgDcXTjYXCQpTQ/OeA49YExXQX7+LPOwo6gV00nAEDvuK3lTMd+HhKVw1Av4xImgnp4oXZAcrx6tEAKz7YKarvJDADwEs52Tds1QKf4GEuA7to/FyH36tA9BqqrjfENcPggGjfaSpv9hY+bMl3HIvHuBidtbM6BczEudwZbay+kanipjm0UtHkpwgoOODDEAycmDOZBuCq3v0jtjOHYMub2v7yPhD48hANPK2gRAdWcB8IR1991gqucVFMLkdMRdFt5svxdBthdKgAAmBtysvkLMw3xnEqQ7RxeUBaPaJ9gdM0zjrUongLjPY2kvCZvO/m/yJbt/3Efbv0XHmy+CCK8+aowRB+3+3B8ewTP6kOYS4u0dVsgxLOl8AXupoLhSsxHjoNXreBb5aUHtpNfz+ZrGpAtbhXagGglQ/QW6ozc28zDvq2zz/sWRyUPft9KYR0PBgAkw06tZXD1Zu7P1FnpONRgBr2giF8jjH+p0G9Mep/6nOJIz6d2fJxDddMZdp/aCWATuuCYl0Ln0Q+zLdzUsjAAIG0nTKW+QDqQSIubTLwMWLtC73IcPujs1WOzaIbSvyZnYPlRrueQe9AHLrRCwK7juThiIW0Me4JYaeNC9MbpiFhDxkBgX+3kEdu/ihQ9aRb2iMzkU53yM/6AbzNv+PbfVB2+72baz/gh6WgGj7ixYimPBOZbRkAuG1pgNE/im5T5neMmqTcuemYyzEnAnFrgHOESzuPMzPQXKqa20JkGcSQMuiy4CfUGPwsn77+4NTdzdHaeCg9nLiBBCX2296ES5uaYMABg8mlV1WHraizSaSZnYAYwq8O52sXasX2pzpsK2Tc17J6x4/Sk0mYuVDX44wUfhajH8mUZQRgX6UpRmhuBX1Mw8Lt6B6pkpuFP+dws1iSJB0Nq6uQJV1D8HEyWfupuSnkLPpW/krWeCicKHFmWeQoX2iDbMg5tIW3Moom20m3LwkBbQ3thEfEW2xbQatDk2o9YK3Z1st33oeMyVEXIiKrQr6eeiONSVkFzNYzxpMjIJfXh6cCe6v65CZCR397At+E0dcSbyY6BLrP+yaHr8entFPTXKdyOsWjMvMPALhrkZoOb4bpADAz0XFCcGMDs+LVtmBlTPLVQqNjzpa2PuMNV8n7jh29PhHvDTI3LP8Ev8KacGYqHPeT/1OO4d1c/cwoPO0wm6WfYQaYJhgT4zL3q9BOhJytswZcv4OxjAwetDxswa3uIe1olMGSRnnGgx/5vvjYXV9K7gUDnRVm3T8/6FwI1i9ePqYQ/uaXW8myAtrna2z8fujAvmjSeyYxYmJomBpDQ5bOrZQmsb1WjvDh9486Lv8PQRFUerdNTCjt51m4AXMMOAAACexn1YgagLyAauzDWIQyLV28dOC5NOwWutdQMAIhgsFJF2xgQpD42Ayio8m8CqKAWPVroLcx5piAvZOGrEOaBtBCgwp9RjNmYBXxotj9CyX/E16wErG71Vl8Thbc7g/iZsKZVSvfpJOEmAMpNq5sQKOgxLlGHNgwxgMUQYQ8DcX5GYSbzEz+C28jJr0Em4c2fY0tMH83+R15k2sGJt8VWcZQHzHkhlGPpADk80DixeACGxXrWDWzztMriAFtjZ3QR5LjGgDdcZMUCANA1Jr8/3rvBLWzHhhvqypwmmwLEsU4xKhbkbXehpA5QsHW6irdaYtWL606624W3RJuigHjL2Ngng3fsrsdIm++86p+b896Eezwe1H24//jtDdTPgLPJZmI2dXZ0psvnG+2KEl5lORgAcFDC1pbWr+HaZsWglJDfj3c0+up2pF/8bLXs9TlNby9UOSHC7alxcid8U4GrYkdTh7UEvGGDUl0BZ/2cGgWNJCRrORgAwFOC8CoMBuGb2r/Urw4rbTB+8mRom49Mt3/ThnVIR21OsfVb4Oga6uYF4evMI7MQcdNWUSreEP+EfKdeJ9uJmeFQeJPEG0HuPqZTBdljcVBBU1R8Abzla0VFWqsesyWrt1D8y4g15urI/3o2vulX1eZQzX9IT31j1POEFpRMGCsvhdTQBUEiyshIgyu2LXIdrsgYZEzh0p48ZwFpyGZ68OQzj9U438qKv1VUg5WsF9bLQPzxFUzEWnBHzPa3W/VsT8hEEiRuGgAAkgWupHQuM+GOBNfDBW8bgc7Zz4BA/zL8XOWHV9pTVbAZDABQnZLDLq/rIPfNpJAzj1uijCrhO1XoXU/FGO6VujowN1FxZWgNh8kZI5OXmn32QLuqhVLpMMNCTo4YezqqjMwZ0HFsXM6BjjuM4Tx45zsL6OZK79K2aG8bkJvFiUxGHSo5liXljSH2yaRQlVyy3TG6fWl0+6Lo9iym22vplm00U2rxRjePaBojyhkj2x2l22fRLf4/Es9bur+WbvmUxkot0ulGZM46ZDD4V5pY/VejyEL1r1uRdWITKeG2jQWRWQGDWFBrTDYgXs5yE3yEQLul+jTEPzcb1rs7+AOw9VBN3veN00qH1bpSH3kKrn+X8SNzG+7chEU14Xu6DNrRGsCrzA35tMdqnQ+auEOdri1Tr0Ko2v71vbCFX0O834cijt9+WiYwLYJltkwGnwM+BI+z+djW8dubUnVTgJsnBneY4//hDx7GbV4WDUzICZdkaFU7DL36JMwdz94juFSDGQBwDIQWOtqAIWCtQslNnxm389Q/Ulajpu5/GiBHVsumwmoq/+7ymjacXVOyNSTygOpZYxOnJvPmkDkvlIVi6cImWfKAmd2/skHfukynLcfZ1qkD8DaOn+PHLukj+0f1P0of3euWe03Qt0sLzVX6Muiy18LezjYxKo3QjGTSKUAbjVZtzWQOGvcZl5leOQ/RmG0vzLAu3oxoMc0JeDM+K3gugrZctAiODJAcrkMvxMSnFe4a4omsR50O3U5q9SlVjCEoxTSQHcFu8lsXD5prWgAAMBitbnL7EkKzR1yNTDeIwYkSd5Cn6hTjm0Az07UoW5pOMmjBnK7WzIVW8Sl3J8G/YtUjoqsU8K8oPqq/iox/jV1Z7NcHs6z1t4C3pQwwSprwD0h9TYzsD1XadJfj99VDafS3Lokfc/CJzierDDjJBIsHl32xTEugp58l61Wnx4UwACCtVQoQ65quRrk3GvkIPeSvi4OFX6D4PG7QajXBTUr17CRXwXukmqTDXnJr1aqKBXX0boQ+DPE6BA6EAQA2CMgYNNoSczbA/rwxh9eBTla0T1HVnMGjEG+Yt2YxCll6Qzo6mWTcIZlaSWUlF1tJzRqUOke9r8AXCTRHHfWKeasxYB7jnae7kn53e1UL7gh9ql0eAACmUTPxTEMoPij0IIYOyVRLFT/XEg3ph/LO9hnYn6QusXUc2709FTaSK6PKUZPPkw66F14H3EehRSNBYFORECHufs5v0TnJrNWJty4XUJ20YriQ64ulBFpFo71VTPHY+FhaS6I9qqmTUofwSI2YIatuoFtvJKIQNL7FH0XNLUvHVESl7sE2V+qHs+9qfWeRfbxMLfyvspUfBIa092yiMXVvvZFTEagZhjg0mDrev0MQ2yc2Z/HYbWOhItgpYywtnrpKd+MtmCuPYnF3zB+q8K5y5p0bDJqG3EMqu9FwEc4XH+7YvyfFJFjBmmqa68e7pLv7puIecm9UAfcCGdcBAA5QihEQbhhgufWgEGlnOsJF76gZAHBYRM+2JShItg3Q/X9991/vWKkk9kla7V1C3978H/wF/hVo7EIeJqGso7F4fWK5olS2ODxN2cDv6gtwzCeS0/cWdzNhCjvPrz5hp2RFZNvzAZInWaoJV2lGkGSorLq9GRoaTy8jaIcxbIIoZRV3kumW64PbtoO3UGBXHjTsBUVwncjgoE8up8a503mABZ1EyLk5qQoNOnNxDqUicvuVMZh8lKdZ+ElctfDmj2pcAAAW29v/Z7TRV+Or5sHkoxx0Bi7qL0bij8saEwAIy/o1ZZcTbgbWyeXWK7bS6Gf2m4kVFjrNpKvAq1Si9OaHUrScPmVtpsUUTrxXBMWoouFYACChtpX97Ow+LKHQ+u8gClXTncG6DH4D4OBCB59tdbUcyBo9i0wmd7SZHR2Wji7hxsvCAIAdnO4KhIAg2M+f3vTRyJ8fRU0m/yR5fL8zWOkO9lA/JdQLJ9bCFuJiPHmxn0WHqbHPe5/c1vosMQ+5Th+flfZcFbcLxXMXTKri9qwN3jG0FrTPrR18a72yloMBAAeHdme6C2wYobR/bTW9t94tvyg3pfkshK5VnzeFBO2UdIaxmjrmJip0A5ruO6Ts/y/TPvdV9+iezKaKt/pbr5suNYgzuXX5YCbf+KvkqbJBvBrIE7YxvjbkuVUvvpzplLxdjMGXyY7RSwEWUHr24qW4PDaoHIJyc8p7pMJ7ivne3xjzfenM9RjAjqPs7yn42jrrNObz3q1oXzzaPXd1rR8S4S70c0Zc6+DmZ5Wjf0A31wBJDFjBEtn68Pc8BKzLI4cSWlg3NK8D7hv6z3F+fgNQYY8WzJY+ucBvEJ0DsAfF8WJfidYwgRyrfJ/BZOa3U/hUlNnDc6qGPLGWmK+Xr9buRpg8rlAgjxYMeC2i9sudtatu/De+b/1ddmfjuZZbAkl0TqMPMNWz2jBN+UnaolAUsq+5Yu2wu9gTeC6/+JJHpozmE6Jv3MZe1yflD3b5348i7zsDyYMjSyt9tri/MRLeT/hDRlHlf73Q5ce1UXF65Ms2lH2Kvs7M/WRSr/nF8ZJAUIzZoQtB6dgg3QhOtRza80Qxxmnok7R4ac9x5JIwAGDi0NnhYxbcqlJEKisvnit0VGR4nXnZDZSZ6YLPeRGZm86N3BaERVsDrFJr/vqspW0QdnUo0fqsvW1j2LX4rCPVCzvXYyLW6Tw7v+AVdnssIDbNFXYPbVo2B9qmLaKlGtocLam9CpRhP5nTPNtE+au9brcAc9bexr9PZlxr82Tu+GwjxzEBAC2TvzXI5YQ3LeUavwbTw+33g1yapC7o/eJATLB32hpPba4bKMNpK6awUGbz9Tc1Q6ykPcuMfemedKNqX9LlBowTQw5/9uv6btaYrQfY3ng2+yk05ZZjBZrh3wxjG98Wwpw2tpzsLMA7JB/P0SzF/NLwhEc0G9Q7uxGLsT4vHOfRT4ecvWFUVKWfkQLMuNjZ7LdKgtnVBZfRhSFBJvr5UAmnezkYADCjBNWpL+gaQCTPM0NvUKOnJTBpdaVb9tHOT7Q/21qDbh1Im9E/5wTHo4VcHXHLj3n7VDLTwFrGJdXr+FDyJjZDCtAdaUDg43SFLlyVY238Bjn34cLbgxh/gb/LxAI3ckX2OMVy6PWUM4pADz7JxkE/g/7yMv0JO357LhXoIlhRZ/7EDugxPA6qv/yL3/4iJ8lFcErLFQCAEoCc2iFXGEqCWFiDpFbH1KBTAAH9XL0GS5aQnioD2blJ9hPULcxsQIiI9I2mFxYrKqLdCr0EiuFq+AwilispMhCuzyZgF55VgguWQaqFZELuuoiZVedtyEUVLb0wUA65hM4Ac0GVB+qXw6ELTk7Wsd6chhO1CRrFpYYEtq/TaYqODxEvy1VHUys73MWoAICUu/DDgfPwtL0T27J+eeck+b1z4Ty5mQ3luluLQfWzRMBLmWe4wPPqxnCciMS2yWoeSGx+id+v2vhH6Q9DR4fP3tZyu5M7pl6s64WjHrJ0yM0mKrk/1T1RhMupYijjWYAhXE51QqXBdDP03drTMuQojx74j1SHWxYGANQBDVrwTZhEDluC49H0Ujja++e5u5FLzroSvjkcXuxOla3cMKD4pIdk9r43KPGYmWzltYSQg3HJKtepp0zJWsim6DmeSBjuz75ehtFDOP1evBb+kbiTHvuJD11dl12os/X53eg+qlPRevyXr8/+kebvEF457vjdL5v56R/gXQBrAH9+9eHRhzh6uOqS8VM5P3A6btExA1qXCg4YwJSfd8PZXEb+BH7jIYoeVaslnb5H6jwCV+PK8jZ8SN/reQ2o8wdXElhx+Yh/WMencwkceQWbnzgz/O4AL2Z5P/Lvc/H8Jgt2KN7sIE+fFaexNho8UZ2lRDHO+eyz+D/DwunT4uDDfuSqUhztVkwEkxz924Sw2dI01YNGMhcRk8EkS3Vmye7iHp73CR4BxgK3glykcjWqco/9MHaIj+LkT2ROzTeXDx0nYjn4C32K7SDllk3qinfPlb4oMnwrKgza60KVEs26z6USbOyi3SRsxunklu7G2NwZvmSXbrYqnyvIf+OIijx1+d5TGstrcCXQgiOb5SF8psIQeH639jwa+4gW6s8/UmoolpomGy00Ij/HKgAAJ9CtdtSLYYUdMlIbFA9G6i7TVIPexTmVz/e4t0so3HIwAMBQgqF0+E1PcpkdAWOepxbgpDpveqay/FhS9L7wG87jOwlo7cZWCvgkkuADdAf7uM82xwZhD8qOfYadqjfMImb12aFlqZaFPjsaSV9YOWSvLRk3lHyGvdnfiwVAnNS+nXr/XCZCzfLpKmBSh1ksoF/fidsaqk2OVcBgMiskAoC5BjhLC3HrAJz7V9/oKYkTnnOO+4l9K2/t86d7VGvHb/k+CY/Glp4Lu/i9Qm23Q3nL2o83vuqzf2i8d8ViZzDXuG/C9TudD8uhje7DT31ZHvFLVrF9eo6jEvvhDP+dniqsH8R6dcVPr3rXxwGftIygkvqwqLqqBXE4hc4e7fKQ4yoNnjt1WPPoW0Q6oV54f4N2fpJOtgzvxshKQhgdy1sDmoqr83oOc/fudMFKeCiuhj44jb8wOJ8rb+ge9coN9kXNziQ19s9whsj1saeTb/aKNXjC7Hpu5C1jBK2aYUJzg862sPzcxCE/oT1qX0IMsig8dcBTTFcDSzm0E172MGcsuuMLvlrfQ83ffjC5hXW53w5QtzRcYCYHEqfPvzg+LwZOn3H97c1ufKsTr/PHT6E/2RMG62yvmDDERnW3gerGlK0Q2nuffwjfSrJqs572Jy57f1Cqg2UFACBG7yQdL7B2rUpVcjDhRLd+HohSrBh9yUPl6HgoDADQ0VMc/o7J6f54IjCn57nixnInWXsfvV2K6VAGUFe5efN5fuLlnaO/MNCU4TIuiSEtAm6nOvOwFAdBdZdtl2BvTAxqleAI04KGEpzEF9D0OtGGxo0yHjo2BoyANWyiKw/Iu7E/tnTDUjd1pi0EDtYfCZxHDley+8pz3wAyU4gptfjPd+FzCiRpMV+q90ZL2i6RWTfcuM4aDndeiaey1fecKYqJrwqMfiOGb5H6wP5u7T2Gapel6tF727UrJAKApQtvMcUPzcKzUqx/EDC9J/1ooK1pY7FMU9/jNszzqnn/dWS3pwA=","base64")).toString()),yO}var rAe=new Map([[x.makeIdent(null,"fsevents").identHash,$ae],[x.makeIdent(null,"resolve").identHash,eAe],[x.makeIdent(null,"typescript").identHash,tAe]]),wWe={hooks:{registerPackageExtensions:async(r,e)=>{for(let[t,i]of mO)e(x.parseDescriptor(t,!0),i)},getBuiltinPatch:async(r,e)=>{var s;let t="compat/";if(!e.startsWith(t))return;let i=x.parseIdent(e.slice(t.length)),n=(s=rAe.get(i.identHash))==null?void 0:s();return typeof n<"u"?n:null},reduceDependency:async(r,e,t,i)=>typeof rAe.get(r.identHash)>"u"?r:x.makeDescriptor(r,x.makeRange({protocol:"patch:",source:x.stringifyDescriptor(r),selector:`~builtin<compat/${x.stringifyIdent(r)}>`,params:null}))}},BWe=wWe;var BO={};ct(BO,{default:()=>QWe});var tp=class extends xe{constructor(){super(...arguments);this.pkg=z.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let i=x.parseDescriptor(this.command),n;i.scope?n=x.makeIdent(i.scope,`create-${i.name}`):i.name.startsWith("@")?n=x.makeIdent(i.name.substring(1),"create"):n=x.makeIdent(null,`create-${i.name}`);let s=x.stringifyIdent(n);return i.range!=="unknown"&&(s+=`@${i.range}`),this.cli.run(["dlx",...t,s,...this.args])}};tp.paths=[["create"]];var Hu=class extends xe{constructor(){super(...arguments);this.packages=z.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=z.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=z.String();this.args=z.Proxy()}async execute(){return Ee.telemetry=null,await M.mktempPromise(async t=>{var m;let i=v.join(t,`dlx-${process.pid}`);await M.mkdirPromise(i),await M.writeFilePromise(v.join(i,"package.json"),`{} -`),await M.writeFilePromise(v.join(i,"yarn.lock"),"");let n=v.join(i,".yarnrc.yml"),s=await Ee.findProjectCwd(this.context.cwd,St.lockfile),o=!(await Ee.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),a=s!==null?v.join(s,".yarnrc.yml"):null;a!==null&&M.existsSync(a)?(await M.copyFilePromise(a,n),await Ee.updateConfiguration(i,y=>{let B={...y,enableGlobalCache:o,enableTelemetry:!1};return Array.isArray(y.plugins)&&(B.plugins=y.plugins.map(S=>{let P=typeof S=="string"?S:S.path,F=K.isAbsolute(P)?P:K.resolve(K.fromPortablePath(s),P);return typeof S=="string"?F:{path:F,spec:S.spec}})),B})):await M.writeFilePromise(n,`enableGlobalCache: ${o} -enableTelemetry: false -`);let l=(m=this.packages)!=null?m:[this.command],c=x.parseDescriptor(this.command).name,u=await this.cli.run(["add","--",...l],{cwd:i,quiet:this.quiet});if(u!==0)return u;this.quiet||this.context.stdout.write(` -`);let g=await Ee.find(i,this.context.plugins),{project:h,workspace:p}=await Ge.find(g,i);if(p===null)throw new lt(h.cwd,i);await h.restoreInstallState();let d=await Yt.getWorkspaceAccessibleBinaries(p);return d.has(c)===!1&&d.size===1&&typeof this.packages>"u"&&(c=Array.from(d)[0][0]),await Yt.executeWorkspaceAccessibleBinary(p,c,this.args,{packageAccessibleBinaries:d,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};Hu.paths=[["dlx"]],Hu.usage=Qe.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var bWe={commands:[tp,Hu]},QWe=bWe;var vO={};ct(vO,{default:()=>xWe,fileUtils:()=>Zm});var rp=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,Xm=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,jr="file:";var Zm={};ct(Zm,{makeArchiveFromLocator:()=>Kb,makeBufferFromLocator:()=>SO,makeLocator:()=>QO,makeSpec:()=>iAe,parseSpec:()=>bO});function bO(r){let{params:e,selector:t}=x.parseRange(r),i=K.toPortablePath(t);return{parentLocator:e&&typeof e.locator=="string"?x.parseLocator(e.locator):null,path:i}}function iAe({parentLocator:r,path:e,folderHash:t,protocol:i}){let n=r!==null?{locator:x.stringifyLocator(r)}:{},s=typeof t<"u"?{hash:t}:{};return x.makeRange({protocol:i,source:e,selector:e,params:{...s,...n}})}function QO(r,{parentLocator:e,path:t,folderHash:i,protocol:n}){return x.makeLocator(r,iAe({parentLocator:e,path:t,folderHash:i,protocol:n}))}async function Kb(r,{protocol:e,fetchOptions:t,inMemory:i=!1}){let{parentLocator:n,path:s}=x.parseFileStyleRange(r.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(n,t),a=o.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await me.releaseAfterUseAsync(async()=>await Ci.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:x.getIdentVendorPath(r),compressionLevel:t.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function SO(r,{protocol:e,fetchOptions:t}){return(await Kb(r,{protocol:e,fetchOptions:t,inMemory:!0})).getBufferAndClose()}var Ub=class{supports(e,t){return!!e.reference.startsWith(jr)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async fetchFromDisk(e,t){return Kb(e,{protocol:jr,fetchOptions:t})}};var SWe=2,Hb=class{supportsDescriptor(e,t){return e.range.match(rp)?!0:!!e.range.startsWith(jr)}supportsLocator(e,t){return!!e.reference.startsWith(jr)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=bO(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await SO(x.makeLocator(e,x.makeRange({protocol:jr,source:n,selector:n,params:{locator:x.stringifyLocator(s)}})),{protocol:jr,fetchOptions:i.fetchOptions}),a=Ai.makeHash(`${SWe}`,o).slice(0,6);return[QO(e,{parentLocator:s,path:n,folderHash:a,protocol:jr})]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var jb=class{supports(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:jr}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await me.releaseAfterUseAsync(async()=>await Ci.convertToZip(c,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var Gb=class{supportsDescriptor(e,t){return Xm.test(e.range)?!!(e.range.startsWith(jr)||rp.test(e.range)):!1}supportsLocator(e,t){return Xm.test(e.reference)?!!e.reference.startsWith(jr):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return rp.test(e.range)&&(e=x.makeDescriptor(e,`${jr}${e.range}`)),x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.startsWith(jr)?e.range.slice(jr.length):e.range;return[x.makeLocator(e,`${jr}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var vWe={fetchers:[jb,Ub],resolvers:[Gb,Hb]},xWe=vWe;var xO={};ct(xO,{default:()=>RWe});var nAe=ve(J("querystring")),sAe=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function oAe(r){return r?sAe.some(e=>!!r.match(e)):!1}function aAe(r){let e;for(let a of sAe)if(e=r.match(a),e)break;if(!e)throw new Error(PWe(r));let[,t,i,n,s="master"]=e,{commit:o}=nAe.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:t,username:i,reponame:n,treeish:s}}function PWe(r){return`Input cannot be parsed as a valid GitHub URL ('${r}').`}var Yb=class{supports(e,t){return!!oAe(e.reference)}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(this.getLocatorUrl(e,t),{configuration:t.project.configuration});return await M.mktempPromise(async n=>{let s=new jt(n);await Ci.extractArchiveTo(i,s,{stripComponents:1});let o=lA.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Yt.prepareExternalProject(n,a,{configuration:t.project.configuration,report:t.report,workspace:o.extra.workspace,locator:e});let l=await M.readFilePromise(a);return await Ci.convertToZip(l,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,t){let{auth:i,username:n,reponame:s,treeish:o}=aAe(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var DWe={hooks:{async fetchHostedRepository(r,e,t){if(r!==null)return r;let i=new Yb;if(!i.supports(e,t))return null;try{return await i.fetch(e,t)}catch{return null}}}},RWe=DWe;var PO={};ct(PO,{default:()=>NWe});var _m=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,$m=/^https?:/;var qb=class{supports(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i=await Vt.get(e.reference,{configuration:t.project.configuration});return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var Jb=class{supportsDescriptor(e,t){return _m.test(e.range)?!!$m.test(e.range):!1}supportsLocator(e,t){return _m.test(e.reference)?!!$m.test(e.reference):!1}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){return[x.convertDescriptorToLocator(e)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var FWe={fetchers:[qb],resolvers:[Jb]},NWe=FWe;var FO={};ct(FO,{default:()=>T8e});var NAe=ve(FAe()),RO=J("util"),ju=class extends xe{constructor(){super(...arguments);this.private=z.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=z.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=z.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=z.Boolean("-2",!1,{hidden:!0});this.yes=z.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=z.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return i!==null?await this.executeProxy(t,i):await this.executeRegular(t)}async executeProxy(t,i){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new we("Cannot use the --install flag from within a project subdirectory");M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=v.join(this.context.cwd,t.get("lockfileFilename"));M.existsSync(n)||await M.writeFilePromise(n,"");let s=await this.cli.run(["set","version",i],{quiet:!0});if(s!==0)return s;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.yes&&o.push("-y"),await M.mktempPromise(async a=>{let{code:l}=await pr.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Yt.makeScriptEnv({binFolder:a})});return l})}async executeRegular(t){var c;let i=null;try{i=(await Ge.find(t,this.context.cwd)).project}catch{i=null}M.existsSync(this.context.cwd)||await M.mkdirPromise(this.context.cwd,{recursive:!0});let n=await ot.tryFind(this.context.cwd)||new ot,s=Object.fromEntries(t.get("initFields").entries());n.load(s),n.name=(c=n.name)!=null?c:x.makeIdent(t.get("initScope"),v.basename(this.context.cwd)),n.packageManager=Nr&&me.isTaggedYarnVersion(Nr)?`yarn@${Nr}`:null,typeof n.raw.private>"u"&&(this.private||this.workspace&&n.workspaceDefinitions.length===0)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await M.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let o={};n.exportTo(o),RO.inspect.styles.name="cyan",this.context.stdout.write(`${(0,RO.inspect)(o,{depth:1/0,colors:!0,compact:!1})} -`);let a=v.join(this.context.cwd,ot.fileName);await M.changeFilePromise(a,`${JSON.stringify(o,null,2)} -`,{automaticNewlines:!0});let l=v.join(this.context.cwd,"README.md");if(M.existsSync(l)||await M.writeFilePromise(l,`# ${x.stringifyIdent(n.name)} -`),!i||i.cwd===this.context.cwd){let u=v.join(this.context.cwd,St.lockfile);M.existsSync(u)||await M.writeFilePromise(u,"");let h=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!.yarn/cache","#.pnp.*"].map(F=>`${F} -`).join(""),p=v.join(this.context.cwd,".gitignore");M.existsSync(p)||await M.writeFilePromise(p,h);let m=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(F=>`${F} -`).join(""),y=v.join(this.context.cwd,".gitattributes");M.existsSync(y)||await M.writeFilePromise(y,m);let B={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,NAe.default)(B,t.get("initEditorConfig"));let S=`root = true -`;for(let[F,H]of Object.entries(B)){S+=` -[${F}] -`;for(let[q,_]of Object.entries(H)){let X=q.replace(/[A-Z]/g,W=>`_${W.toLowerCase()}`);S+=`${X} = ${_} -`}}let P=v.join(this.context.cwd,".editorconfig");M.existsSync(P)||await M.writeFilePromise(P,S),M.existsSync(v.join(this.context.cwd,".git"))||await pr.execvp("git",["init"],{cwd:this.context.cwd})}}};ju.paths=[["init"]],ju.usage=Qe.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var N8e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[ju]},T8e=N8e;var NO={};ct(NO,{default:()=>O8e});var cA="portal:",uA="link:";var Wb=class{supports(e,t){return!!e.reference.startsWith(cA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:cA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot}}};var zb=class{supportsDescriptor(e,t){return!!e.range.startsWith(cA)}supportsLocator(e,t){return!!e.reference.startsWith(cA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cA.length);return[x.makeLocator(e,`${cA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){if(!t.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await t.fetchOptions.fetcher.fetch(e,t.fetchOptions),n=await me.releaseAfterUseAsync(async()=>await ot.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return{...e,version:n.version||"0.0.0",languageName:n.languageName||t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin}}};var Vb=class{supports(e,t){return!!e.reference.startsWith(uA)}getLocalPath(e,t){let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA});if(v.isAbsolute(n))return n;let s=t.fetcher.getLocalPath(i,t);return s===null?null:v.resolve(s,n)}async fetch(e,t){var c;let{parentLocator:i,path:n}=x.parseFileStyleRange(e.reference,{protocol:uA}),s=v.isAbsolute(n)?{packageFs:new jt(Te.root),prefixPath:Te.dot,localPath:Te.root}:await t.fetcher.fetch(i,t),o=s.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,s.localPath),localPath:Te.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new jt(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0,localPath:l}:{packageFs:new So(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Te.dot,discardFromLookup:!0}}};var Xb=class{supportsDescriptor(e,t){return!!e.range.startsWith(uA)}supportsLocator(e,t){return!!e.reference.startsWith(uA)}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){return x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(uA.length);return[x.makeLocator(e,`${uA}${K.toPortablePath(n)}`)]}async getSatisfying(e,t,i){return null}async resolve(e,t){return{...e,version:"0.0.0",languageName:t.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};var L8e={fetchers:[Vb,Wb],resolvers:[Xb,zb]},O8e=L8e;var dM={};ct(dM,{default:()=>e5e});var LO=(r,e)=>`${r}@${e}`,TAe=(r,e)=>{let t=e.indexOf("#"),i=t>=0?e.substring(t+1):e;return LO(r,i)};var MAe=(r,e={})=>{let t=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||t>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:t,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=Y8e(r,s),l=!1,c=0;do l=OO(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=eE(a);if(OO(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: -${u}, next tree: -${eE(a)}`);let h=KAe(a);if(h)throw new Error(`${h}, after hoisting finished: -${eE(a)}`)}return s.debugLevel>=2&&console.log(eE(a)),q8e(a)},M8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())t.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),t},K8e=r=>{let e=r[r.length-1],t=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of r)u=g.dependencies.get(c.name),u&&t.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),t},LAe=(r,e)=>{if(e.decoupled)return e;let{name:t,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:d,hoistedTo:m}=e,y={name:t,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:h,dependencyKind:p,hoistedFrom:new Map(d),hoistedTo:new Map(m)},B=y.dependencies.get(t);return B&&B.ident==y.ident&&y.dependencies.set(t,y),r.dependencies.set(y.name,y),y},U8e=(r,e)=>{let t=new Map([[r.name,[r.ident]]]);for(let n of r.dependencies.values())r.peerNames.has(n.name)||t.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!r.peerNames.has(s)){let a=t.get(s);a||(a=[],t.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return t},TO=r=>{let e=new Set,t=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!r.peerNames.has(s)){let o=r.dependencies.get(s);o&&!e.has(o)&&t(o,n)}e.add(i)}};for(let i of r.dependencies.values())r.peerNames.has(i.name)||t(i);return e},OO=(r,e,t,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J8e(o),l=U8e(o,a),c=r==o?new Map:n.fastLookupPossible?M8e(e):K8e(e),u,g=!1,h=!1,p=new Map(Array.from(l.entries()).map(([m,y])=>[m,y[0]])),d=new Map;do{let m=G8e(r,e,t,c,p,l,i,d,n);m.isGraphChanged&&(h=!0),m.anotherRoundNeeded&&(g=!0),u=!1;for(let[y,B]of l)B.length>1&&!o.dependencies.has(y)&&(p.delete(y),B.shift(),p.set(y,B[0]),u=!0)}while(u);for(let m of o.dependencies.values())if(!o.peerNames.has(m.name)&&!t.has(m.locator)){t.add(m.locator);let y=OO(r,[...e,m],t,d,n);y.isGraphChanged&&(h=!0),y.anotherRoundNeeded&&(g=!0),t.delete(m.locator)}return{anotherRoundNeeded:g,isGraphChanged:h}},H8e=r=>{for(let[e,t]of r.dependencies)if(!r.peerNames.has(e)&&t.ident!==r.ident)return!0;return!1},j8e=(r,e,t,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,h=new Set;l&&(u=`${Array.from(e).map(y=>Di(y)).join("\u2192")}`);let p=t[t.length-1],m=!(i.ident===p.ident);if(l&&!m&&(g="- self-reference"),m&&(m=i.dependencyKind!==1,l&&!m&&(g="- workspace")),m&&i.dependencyKind===2&&(m=!H8e(i),l&&!m&&(g="- external soft link with unhoisted dependencies")),m&&(m=p.dependencyKind!==1||p.hoistedFrom.has(i.name)||e.size===1,l&&!m&&(g=p.reasons.get(i.name))),m&&(m=!r.peerNames.has(i.name),l&&!m&&(g=`- cannot shadow peer: ${Di(r.originalDependencies.get(i.name).locator)} at ${u}`)),m){let y=!1,B=n.get(i.name);if(y=!B||B.ident===i.ident,l&&!y&&(g=`- filled by: ${Di(B.locator)} at ${u}`),y)for(let S=t.length-1;S>=1;S--){let F=t[S].dependencies.get(i.name);if(F&&F.ident!==i.ident){y=!1;let H=a.get(p);H||(H=new Set,a.set(p,H)),H.add(i.name),l&&(g=`- filled by ${Di(F.locator)} at ${t.slice(0,S).map(q=>Di(q.locator)).join("\u2192")}`);break}}m=y}if(m&&(m=s.get(i.name)===i.ident,l&&!m&&(g=`- filled by: ${Di(o.get(i.name)[0])} at ${u}`)),m){let y=!0,B=new Set(i.peerNames);for(let S=t.length-1;S>=1;S--){let P=t[S];for(let F of B){if(P.peerNames.has(F)&&P.originalDependencies.has(F))continue;let H=P.dependencies.get(F);H&&r.dependencies.get(F)!==H&&(S===t.length-1?h.add(H):(h=null,y=!1,l&&(g=`- peer dependency ${Di(H.locator)} from parent ${Di(P.locator)} was not hoisted to ${u}`))),B.delete(F)}if(!y)break}m=y}if(m&&!c)for(let y of i.hoistedDependencies.values()){let B=n.get(y.name)||r.dependencies.get(y.name);if(!B||y.ident!==B.ident){m=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${Di(y.locator)}, available: ${Di(B==null?void 0:B.locator)}`);break}}return h!==null&&h.size>0?{isHoistable:2,dependsOn:h,reason:g}:{isHoistable:m?0:1,reason:g}},Zb=r=>`${r.name}@${r.locator}`,G8e=(r,e,t,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,h=!1,p=(B,S,P,F,H)=>{if(u.has(F))return;let q=[...S,Zb(F)],_=[...P,Zb(F)],X=new Map,W=new Map;for(let te of TO(F)){let O=j8e(c,t,[c,...B,F],te,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(W.set(te,O),O.isHoistable===2)for(let N of O.dependsOn){let ce=X.get(N.name)||new Set;ce.add(te.name),X.set(N.name,ce)}}let Z=new Set,A=(te,O,N)=>{if(!Z.has(te)){Z.add(te),W.set(te,{isHoistable:1,reason:N});for(let ce of X.get(te.name)||[])A(F.dependencies.get(ce),O,l.debugLevel>=2?`- peer dependency ${Di(te.locator)} from parent ${Di(F.locator)} was not hoisted`:"")}};for(let[te,O]of W)O.isHoistable===1&&A(te,O,O.reason);let ne=!1;for(let te of W.keys())if(!Z.has(te)){h=!0;let O=o.get(F);O&&O.has(te.name)&&(g=!0),ne=!0,F.dependencies.delete(te.name),F.hoistedDependencies.set(te.name,te),F.reasons.delete(te.name);let N=c.dependencies.get(te.name);if(l.debugLevel>=2){let ce=Array.from(S).concat([F.locator]).map(Pe=>Di(Pe)).join("\u2192"),he=c.hoistedFrom.get(te.name);he||(he=[],c.hoistedFrom.set(te.name,he)),he.push(ce),F.hoistedTo.set(te.name,Array.from(e).map(Pe=>Di(Pe.locator)).join("\u2192"))}if(!N)c.ident!==te.ident&&(c.dependencies.set(te.name,te),H.add(te));else for(let ce of te.references)N.references.add(ce)}if(F.dependencyKind===2&&ne&&(g=!0),l.check){let te=KAe(r);if(te)throw new Error(`${te}, after hoisting dependencies of ${[c,...B,F].map(O=>Di(O.locator)).join("\u2192")}: -${eE(r)}`)}let ue=TO(F);for(let te of ue)if(Z.has(te)){let O=W.get(te);if((n.get(te.name)===te.ident||!F.reasons.has(te.name))&&O.isHoistable!==0&&F.reasons.set(te.name,O.reason),!te.isHoistBorder&&_.indexOf(Zb(te))<0){u.add(F);let ce=LAe(F,te);p([...B,F],q,_,ce,m),u.delete(F)}}},d,m=new Set(TO(c)),y=Array.from(e).map(B=>Zb(B));do{d=m,m=new Set;for(let B of d){if(B.locator===c.locator||B.isHoistBorder)continue;let S=LAe(c,B);p([],Array.from(t),y,S,m)}}while(m.size>0);return{anotherRoundNeeded:g,isGraphChanged:h}},KAe=r=>{let e=[],t=new Set,i=new Set,n=(s,o,a)=>{if(t.has(s)||(t.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(h=>Di(h.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let h=o.get(c.name);(h!==u||!h||h.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${h&&h.ident}`)}else{let h=a.hoistedFrom.get(s.name),p=s.hoistedTo.get(c.name),d=`${h?` hoisted from ${h.join(", ")}`:""}`,m=`${p?` hoisted to ${p}`:""}`,y=`${g()}${d}`;u?u.ident!==c.ident&&e.push(`${y} - broken require promise for ${c.name}${m}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${y} - broken require promise: no required dependency ${c.name}${m} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(r,r.dependencies,r),e.join(` -`)},Y8e=(r,e)=>{let{identName:t,name:i,reference:n,peerNames:s}=r,o={name:i,references:new Set([n]),locator:LO(t,n),ident:TAe(t,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[r,o]]),l=(c,u)=>{let g=a.get(c),h=!!g;if(!g){let{name:p,identName:d,reference:m,peerNames:y,hoistPriority:B,dependencyKind:S}=c,P=e.hoistingLimits.get(u.locator);g={name:p,references:new Set([m]),locator:LO(d,m),ident:TAe(d,m),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(y),reasons:new Map,decoupled:!0,isHoistBorder:P?P.has(p):!1,hoistPriority:B||0,dependencyKind:S||0,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),h){let p=new Set,d=m=>{if(!p.has(m)){p.add(m),m.decoupled=!1;for(let y of m.dependencies.values())m.peerNames.has(y.name)||d(y)}};d(g)}else for(let p of c.dependencies)l(p,g)};for(let c of r.dependencies)l(c,o);return o},MO=r=>r.substring(0,r.indexOf("@",1)),q8e=r=>{let e={name:r.name,identName:MO(r.locator),references:new Set(r.references),dependencies:new Set},t=new Set([r]),i=(n,s,o)=>{let a=t.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:MO(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){t.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);t.delete(n)}};for(let n of r.dependencies.values())i(n,r,e);return e},J8e=r=>{let e=new Map,t=new Set([r]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!t.has(a);if(n(a).dependents.add(o.ident),!l){t.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of r.dependencies.values())r.peerNames.has(o.name)||s(r,o);return e},Di=r=>{if(!r)return"none";let e=r.indexOf("@",1),t=r.substring(0,e);t.endsWith("$wsroot$")&&(t=`wh:${t.replace("$wsroot$","")}`);let i=r.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(t=`v:${t}`),n.startsWith("workspace")&&(t=`w:${t}`,n=""),`${t}${n?`@${n}`:""}`}else return`${t}`},OAe=5e4,eE=r=>{let e=0,t=(n,s,o="")=>{if(e>OAe||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name===u.name?0:c.name>u.name?1:-1),l="";s.add(n);for(let c=0;c<a.length;c++){let u=a[c];if(!n.peerNames.has(u.name)&&u!==n){let g=n.reasons.get(u.name),h=MO(u.locator);l+=`${o}${c<a.length-1?"\u251C\u2500":"\u2514\u2500"}${(s.has(u)?">":"")+(h!==u.name?`a:${u.name}:`:"")+Di(u.locator)+(g?` ${g}`:"")} -`,l+=t(u,s,`${o}${c<a.length-1?"\u2502 ":" "}`)}}return s.delete(n),l};return t(r,new Set)+(e>OAe?` -Tree is too large, part of the tree has been dunped -`:"")};var tE=(i=>(i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none",i))(tE||{}),UAe="node_modules",Gu="$wsroot$";var rE=(r,e)=>{let{packageTree:t,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z8e(r,e),o=null;if(n.length===0){let a=MAe(t,{hoistingLimits:i});o=X8e(r,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},na=r=>`${r.name}@${r.reference}`,UO=r=>{let e=new Map;for(let[t,i]of r.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(t)}for(let t of e.values())t.locations=t.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return n===i?0:s!==o?o-s:n>i?1:-1});return e},HAe=(r,e)=>{let t=x.isVirtualLocator(r)?x.devirtualizeLocator(r):r,i=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e;return x.areLocatorsEqual(t,i)},KO=(r,e,t,i)=>{if(r.linkType!=="SOFT")return!1;let n=K.toPortablePath(t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation);return v.contains(i,n)===null},W8e=r=>{let e=r.getPackageInformation(r.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(r.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=K.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=r.getDependencyTreeRoots(),a=new Map,l=new Set,c=(h,p)=>{let d=na(h);if(l.has(d))return;l.add(d);let m=r.getPackageInformation(h);if(m){let y=p?na(p):"";if(na(h)!==y&&m.linkType==="SOFT"&&!KO(m,h,r,i)){let B=jAe(m,h,r);(!a.get(B)||h.reference.startsWith("workspace:"))&&a.set(B,h)}for(let[B,S]of m.packageDependencies)S!==null&&(m.packagePeers.has(B)||c(r.getLocator(B,S),h))}};for(let h of o)c(h,null);let u=i.split(v.sep);for(let h of a.values()){let p=r.getPackageInformation(h),m=K.toPortablePath(p.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),y=s;for(let B of m){let S=y.children.get(B);S||(S={children:new Map},y.children.set(B,S)),y=S}y.workspaceLocator=h}let g=(h,p)=>{if(h.workspaceLocator){let d=na(p),m=n.get(d);m||(m=new Set,n.set(d,m)),m.add(h.workspaceLocator)}for(let d of h.children.values())g(d,h.workspaceLocator||p)};for(let h of s.children.values())g(h,s.workspaceLocator);return n},z8e=(r,e)=>{let t=[],i=!1,n=new Map,s=W8e(r),o=r.getPackageInformation(r.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=r.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=K.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,dependencyKind:1},u=new Map,g=(p,d)=>`${na(d)}:${p}`,h=(p,d,m,y,B,S,P,F)=>{var te,O;let H=g(p,m),q=u.get(H),_=!!q;!_&&m.name===a.name&&m.reference===a.reference&&(q=c,u.set(H,c));let X=KO(d,m,r,l);if(!q){let N=0;X?N=2:d.linkType==="SOFT"&&m.name.endsWith(Gu)&&(N=1),q={name:p,identName:m.name,reference:m.reference,dependencies:new Set,peerNames:N===1?new Set:d.packagePeers,dependencyKind:N},u.set(H,q)}let W;if(X?W=2:B.linkType==="SOFT"?W=1:W=0,q.hoistPriority=Math.max(q.hoistPriority||0,W),F&&!X){let N=na({name:y.identName,reference:y.reference}),ce=n.get(N)||new Set;n.set(N,ce),ce.add(q.name)}let Z=new Map(d.packageDependencies);if(e.project){let N=e.project.workspacesByCwd.get(K.toPortablePath(d.packageLocation.slice(0,-1)));if(N){let ce=new Set([...Array.from(N.manifest.peerDependencies.values(),he=>x.stringifyIdent(he)),...Array.from(N.manifest.peerDependenciesMeta.keys())]);for(let he of ce)Z.has(he)||(Z.set(he,S.get(he)||null),q.peerNames.add(he))}}let A=na({name:m.name.replace(Gu,""),reference:m.reference}),ne=s.get(A);if(ne)for(let N of ne)Z.set(`${N.name}${Gu}`,N.reference);(d!==B||d.linkType!=="SOFT"||!X&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(P)))&&y.dependencies.add(q);let ue=m!==a&&d.linkType==="SOFT"&&!m.name.endsWith(Gu)&&!X;if(!_&&!ue){let N=new Map;for(let[ce,he]of Z)if(he!==null){let Pe=r.getLocator(ce,he),De=r.getLocator(ce.replace(Gu,""),he),Re=r.getPackageInformation(De);if(Re===null)throw new Error("Assertion failed: Expected the package to have been registered");let se=KO(Re,Pe,r,l);if(e.validateExternalSoftLinks&&e.project&&se){Re.packageDependencies.size>0&&(i=!0);for(let[Ye,ie]of Re.packageDependencies)if(ie!==null){let G=x.parseLocator(Array.isArray(ie)?`${ie[0]}@${ie[1]}`:`${Ye}@${ie}`);if(na(G)!==na(Pe)){let fe=Z.get(Ye);if(fe){let re=x.parseLocator(Array.isArray(fe)?`${fe[0]}@${fe[1]}`:`${Ye}@${fe}`);HAe(re,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${x.prettyLocator(e.project.configuration,re)}`})}else{let re=N.get(Ye);if(re){let de=re.target,Ze=x.parseLocator(Array.isArray(de)?`${de[0]}@${de[1]}`:`${Ye}@${de}`);HAe(Ze,G)||t.push({messageName:71,text:`Cannot link ${x.prettyIdent(e.project.configuration,x.parseIdent(Pe.name))} into ${x.prettyLocator(e.project.configuration,x.parseLocator(`${m.name}@${m.reference}`))} dependency ${x.prettyLocator(e.project.configuration,G)} conflicts with dependency ${x.prettyLocator(e.project.configuration,Ze)} from sibling portal ${x.prettyIdent(e.project.configuration,x.parseIdent(re.portal.name))}`})}else N.set(Ye,{target:G.reference,portal:Pe})}}}}let Ae=(te=e.hoistingLimitsByCwd)==null?void 0:te.get(P),ye=se?P:v.relative(l,K.toPortablePath(Re.packageLocation))||Te.dot,ge=(O=e.hoistingLimitsByCwd)==null?void 0:O.get(ye);h(ce,Re,Pe,q,d,Z,ye,Ae==="dependencies"||ge==="dependencies"||ge==="workspaces")}}};return h(a.name,o,a,c,o,o.packageDependencies,Te.dot,!1),{packageTree:c,hoistingLimits:n,errors:t,preserveSymlinksRequired:i}};function jAe(r,e,t){let i=t.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?t.resolveVirtual(r.packageLocation):r.packageLocation;return K.toPortablePath(i||r.packageLocation)}function V8e(r,e,t){let i=e.getLocator(r.name.replace(Gu,""),r.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");return t.pnpifyFs?{linkType:"SOFT",target:K.toPortablePath(n.packageLocation)}:{linkType:n.linkType,target:jAe(n,r,e)}}var X8e=(r,e,t)=>{let i=new Map,n=(u,g,h)=>{let{linkType:p,target:d}=V8e(u,r,t);return{locator:na(u),nodePath:g,target:d,linkType:p,aliases:h}},s=u=>{let[g,h]=u.split("/");return h?{scope:Yr(g),name:Yr(h)}:{scope:null,name:Yr(g)}},o=new Set,a=(u,g,h)=>{if(o.has(u))return;o.add(u);let p=Array.from(u.references).sort().join("#");for(let d of u.dependencies){let m=Array.from(d.references).sort().join("#");if(d.identName===u.identName&&m===p)continue;let y=Array.from(d.references).sort(),B={name:d.identName,reference:y[0]},{name:S,scope:P}=s(d.name),F=P?[P,S]:[S],H=v.join(g,UAe),q=v.join(H,...F),_=`${h}/${B.name}`,X=n(B,h,y.slice(1)),W=!1;if(X.linkType==="SOFT"&&t.project){let A=t.project.workspacesByCwd.get(X.target.slice(0,-1));W=!!(A&&!A.manifest.name)}let Z=X.linkType==="SOFT"&&q.startsWith(X.target);if(!d.name.endsWith(Gu)&&!W&&!Z){let A=i.get(q);if(A){if(A.dirList)throw new Error(`Assertion failed: ${q} cannot merge dir node with leaf node`);{let te=x.parseLocator(A.locator),O=x.parseLocator(X.locator);if(A.linkType!==X.linkType)throw new Error(`Assertion failed: ${q} cannot merge nodes with different link types ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/${x.stringifyLocator(O)}`);if(te.identHash!==O.identHash)throw new Error(`Assertion failed: ${q} cannot merge nodes with different idents ${A.nodePath}/${x.stringifyLocator(te)} and ${h}/s${x.stringifyLocator(O)}`);X.aliases=[...X.aliases,...A.aliases,x.parseLocator(A.locator).reference]}}i.set(q,X);let ne=q.split("/"),ue=ne.indexOf(UAe);for(let te=ne.length-1;ue>=0&&te>ue;te--){let O=K.toPortablePath(ne.slice(0,te).join(v.sep)),N=Yr(ne[te]),ce=i.get(O);if(!ce)i.set(O,{dirList:new Set([N])});else if(ce.dirList){if(ce.dirList.has(N))break;ce.dirList.add(N)}}}a(d,X.linkType==="SOFT"?X.target:q,_)}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var sM={};ct(sM,{PnpInstaller:()=>qu,PnpLinker:()=>yl,default:()=>vze,getPnpPath:()=>wl,jsInstallUtils:()=>po,pnpUtils:()=>hE,quotePathIfNeeded:()=>Dle});var Ple=ve(zr()),kle=J("url");var GAe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function Z8e(r,e,t){let i="";i+="[";for(let n=0,s=r.length;n<s;++n)i+=_b(String(n),r[n],e,t).replace(/^ +/g,""),n+1<s&&(i+=", ");return i+="]",i}function _8e(r,e,t){let i=`${t} `,n="";n+=t,n+=`[ -`;for(let s=0,o=r.length;s<o;++s)n+=i+_b(String(s),r[s],e,i).replace(/^ +/,""),s+1<o&&(n+=","),n+=` -`;return n+=t,n+="]",n}function $8e(r,e,t){let i=Object.keys(r),n="";n+="{";for(let s=0,o=i.length,a=0;s<o;++s){let l=i[s],c=r[l];typeof c>"u"||(a!==0&&(n+=", "),n+=JSON.stringify(l),n+=": ",n+=_b(l,c,e,t).replace(/^ +/g,""),a+=1)}return n+="}",n}function eze(r,e,t){let i=Object.keys(r),n=`${t} `,s="";s+=t,s+=`{ -`;let o=0;for(let a=0,l=i.length;a<l;++a){let c=i[a],u=r[c];typeof u>"u"||(o!==0&&(s+=",",s+=` -`),s+=n,s+=JSON.stringify(c),s+=": ",s+=_b(c,u,e,n).replace(/^ +/g,""),o+=1)}return o!==0&&(s+=` -`),s+=t,s+="}",s}function _b(r,e,t,i){let{next:n}=GAe[t],s=n[r]||n["*"];return YAe(e,s,i)}function YAe(r,e,t){let{collapsed:i}=GAe[e];return Array.isArray(r)?i?Z8e(r,e,t):_8e(r,e,t):typeof r=="object"&&r!==null?i?$8e(r,e,t):eze(r,e,t):JSON.stringify(r)}function qAe(r){return YAe(r,"TOP_LEVEL","")}function iE(r,e){let t=Array.from(r);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(t.map(o=>s(o)));let n=t.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]<a[o]?-1:a[s]>a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>t[s])}function tze(r){let e=new Map,t=iE(r.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of t){let s=e.get(i);typeof s>"u"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function rze(r){return iE(r.fallbackPool||[],([e])=>e)}function ize(r){let e=[];for(let[t,i]of iE(r.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([t,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of iE(i,([g])=>g===null?"0":`1${g}`)){let g=[];t!==null&&s!==null&&!a.has(t)&&g.push([t,s]);for(let[d,m]of iE(a.entries(),([y])=>y))g.push([d,m]);let h=l&&l.size>0?Array.from(l):void 0,p=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:h,linkType:c,discardFromLookup:p}])}}return e}function nE(r){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:r.dependencyTreeRoots,enableTopLevelFallback:r.enableTopLevelFallback||!1,ignorePatternData:r.ignorePattern||null,fallbackExclusionList:tze(r),fallbackPool:rze(r),packageRegistryData:ize(r)}}var zAe=ve(WAe());function VAe(r,e){return[r?`${r} -`:"",`/* eslint-disable */ -`,`"use strict"; -`,` -`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { -`,e.replace(/^/gm," "),`} -`,` -`,(0,zAe.default)()].join("")}function nze(r){return JSON.stringify(r,null,2)}function sze(r){return`'${r.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ -`)}'`}function oze(r){return[`return hydrateRuntimeState(JSON.parse(${sze(qAe(r))}), {basePath: basePath || __dirname}); -`].join("")}function aze(r){return[`var path = require('path'); -`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(r)}); -`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function XAe(r){let e=nE(r),t=oze(e);return VAe(r.shebang,t)}function ZAe(r){let e=nE(r),t=aze(r.dataLocation),i=VAe(r.shebang,t);return{dataFile:nze(e),loaderFile:i}}var yle=J("fs");var wle=J("util");function jO(r,{basePath:e}){let t=K.toPortablePath(e),i=v.resolve(t),n=r.ignorePatternData!==null?new RegExp(r.ignorePatternData):null,s=new Map,o=new Map(r.packageRegistryData.map(([g,h])=>[g,new Map(h.map(([p,d])=>{var P;if(g===null!=(p===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let m=(P=d.discardFromLookup)!=null?P:!1,y={name:g,reference:p},B=s.get(d.packageLocation);B?(B.discardFromLookup=B.discardFromLookup&&m,m||(B.locator=y)):s.set(d.packageLocation,{locator:y,discardFromLookup:m});let S=null;return[p,{packageDependencies:new Map(d.packageDependencies),packagePeers:new Set(d.packagePeers),linkType:d.linkType,discardFromLookup:m,get packageLocation(){return S||(S=v.join(i,d.packageLocation))}}]}))])),a=new Map(r.fallbackExclusionList.map(([g,h])=>[g,new Set(h)])),l=new Map(r.fallbackPool),c=r.dependencyTreeRoots,u=r.enableTopLevelFallback;return{basePath:t,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var gE=J("module"),gA=J("url"),_O=J("util");var qi=J("url");var tle=ve(J("assert"));var GO=Array.isArray,sE=JSON.stringify,oE=Object.getOwnPropertyNames,Yu=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),YO=(r,e)=>RegExp.prototype.exec.call(r,e),qO=(r,...e)=>RegExp.prototype[Symbol.replace].apply(r,e),El=(r,...e)=>String.prototype.endsWith.apply(r,e),JO=(r,...e)=>String.prototype.includes.apply(r,e),WO=(r,...e)=>String.prototype.lastIndexOf.apply(r,e),aE=(r,...e)=>String.prototype.indexOf.apply(r,e),_Ae=(r,...e)=>String.prototype.replace.apply(r,e),Il=(r,...e)=>String.prototype.slice.apply(r,e),sa=(r,...e)=>String.prototype.startsWith.apply(r,e),$Ae=Map,ele=JSON.parse;function AE(r,e,t){return class extends t{constructor(...i){super(e(...i)),this.code=r,this.name=`${t.name} [${r}]`}}}var rle=AE("ERR_PACKAGE_IMPORT_NOT_DEFINED",(r,e,t)=>`Package import specifier "${r}" is not defined${e?` in package ${e}package.json`:""} imported from ${t}`,TypeError),zO=AE("ERR_INVALID_MODULE_SPECIFIER",(r,e,t=void 0)=>`Invalid module "${r}" ${e}${t?` imported from ${t}`:""}`,TypeError),ile=AE("ERR_INVALID_PACKAGE_TARGET",(r,e,t,i=!1,n=void 0)=>{let s=typeof t=="string"&&!i&&t.length&&!sa(t,"./");return e==="."?((0,tle.default)(i===!1),`Invalid "exports" main target ${sE(t)} defined in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`):`Invalid "${i?"imports":"exports"}" target ${sE(t)} defined for '${e}' in the package config ${r}package.json${n?` imported from ${n}`:""}${s?'; targets must start with "./"':""}`},Error),lE=AE("ERR_INVALID_PACKAGE_CONFIG",(r,e,t)=>`Invalid package config ${r}${e?` while importing ${e}`:""}${t?`. ${t}`:""}`,Error),nle=AE("ERR_PACKAGE_PATH_NOT_EXPORTED",(r,e,t=void 0)=>e==="."?`No "exports" main defined in ${r}package.json${t?` imported from ${t}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${r}package.json${t?` imported from ${t}`:""}`,Error);var eQ=J("url");function sle(r,e){let t=Object.create(null);for(let i=0;i<e.length;i++){let n=e[i];Yu(r,n)&&(t[n]=r[n])}return t}var $b=new $Ae;function Aze(r,e,t,i){let n=$b.get(r);if(n!==void 0)return n;let s=i(r);if(s===void 0){let p={pjsonPath:r,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $b.set(r,p),p}let o;try{o=ele(s)}catch(p){throw new lE(r,(t?`"${e}" from `:"")+(0,eQ.fileURLToPath)(t||e),p.message)}let{imports:a,main:l,name:c,type:u}=sle(o,["imports","main","name","type"]),g=Yu(o,"exports")?o.exports:void 0;(typeof a!="object"||a===null)&&(a=void 0),typeof l!="string"&&(l=void 0),typeof c!="string"&&(c=void 0),u!=="module"&&u!=="commonjs"&&(u="none");let h={pjsonPath:r,exists:!0,main:l,name:c,type:u,exports:g,imports:a};return $b.set(r,h),h}function ole(r,e){let t=new URL("./package.json",r);for(;;){let s=t.pathname;if(El(s,"node_modules/package.json"))break;let o=Aze((0,eQ.fileURLToPath)(t),r,void 0,e);if(o.exists)return o;let a=t;if(t=new URL("../package.json",t),t.pathname===a.pathname)break}let i=(0,eQ.fileURLToPath)(t),n={pjsonPath:i,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return $b.set(i,n),n}function lze(r,e,t){throw new rle(r,e&&(0,qi.fileURLToPath)(new URL(".",e)),(0,qi.fileURLToPath)(t))}function cze(r,e,t,i){let n=`request is not a valid subpath for the "${t?"imports":"exports"}" resolution of ${(0,qi.fileURLToPath)(e)}`;throw new zO(r,n,i&&(0,qi.fileURLToPath)(i))}function cE(r,e,t,i,n){throw typeof e=="object"&&e!==null?e=sE(e,null,""):e=`${e}`,new ile((0,qi.fileURLToPath)(new URL(".",t)),r,e,i,n&&(0,qi.fileURLToPath)(n))}var ale=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i,Ale=/\*/g;function uze(r,e,t,i,n,s,o,a){if(e!==""&&!s&&r[r.length-1]!=="/"&&cE(t,r,i,o,n),!sa(r,"./")){if(o&&!sa(r,"../")&&!sa(r,"/")){let g=!1;try{new URL(r),g=!0}catch{}if(!g)return s?qO(Ale,r,()=>e):r+e}cE(t,r,i,o,n)}YO(ale,Il(r,2))!==null&&cE(t,r,i,o,n);let l=new URL(r,i),c=l.pathname,u=new URL(".",i).pathname;if(sa(c,u)||cE(t,r,i,o,n),e==="")return l;if(YO(ale,e)!==null){let g=s?_Ae(t,"*",()=>e):t+e;cze(g,i,o,n)}return s?new URL(qO(Ale,l.href,()=>e)):new URL(e,l)}function gze(r){let e=+r;return`${e}`!==r?!1:e>=0&&e<4294967295}function ip(r,e,t,i,n,s,o,a){if(typeof e=="string")return uze(e,t,i,r,n,s,o,a);if(GO(e)){if(e.length===0)return null;let l;for(let c=0;c<e.length;c++){let u=e[c],g;try{g=ip(r,u,t,i,n,s,o,a)}catch(h){if(l=h,h.code==="ERR_INVALID_PACKAGE_TARGET")continue;throw h}if(g!==void 0){if(g===null){l=null;continue}return g}}if(l==null)return l;throw l}else if(typeof e=="object"&&e!==null){let l=oE(e);for(let c=0;c<l.length;c++){let u=l[c];if(gze(u))throw new lE((0,qi.fileURLToPath)(r),n,'"exports" cannot contain numeric property keys.')}for(let c=0;c<l.length;c++){let u=l[c];if(u==="default"||a.has(u)){let g=e[u],h=ip(r,g,t,i,n,s,o,a);if(h===void 0)continue;return h}}return}else if(e===null)return null;cE(i,e,r,o,n)}function cle(r,e){let t=aE(r,"*"),i=aE(e,"*"),n=t===-1?r.length:t+1,s=i===-1?e.length:i+1;return n>s?-1:s>n||t===-1?1:i===-1||r.length>e.length?-1:e.length>r.length?1:0}function fze(r,e,t){if(typeof r=="string"||GO(r))return!0;if(typeof r!="object"||r===null)return!1;let i=oE(r),n=!1,s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a===""||a[0]!==".";if(s++===0)n=l;else if(n!==l)throw new lE((0,qi.fileURLToPath)(e),t,`"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`)}return n}function VO(r,e,t){throw new nle((0,qi.fileURLToPath)(new URL(".",e)),r,t&&(0,qi.fileURLToPath)(t))}var lle=new Set;function hze(r,e,t){let i=(0,qi.fileURLToPath)(e);lle.has(i+"|"+r)||(lle.add(i+"|"+r),process.emitWarning(`Use of deprecated trailing slash pattern mapping "${r}" in the "exports" field module resolution of the package at ${i}${t?` imported from ${(0,qi.fileURLToPath)(t)}`:""}. Mapping specifiers ending in "/" is no longer supported.`,"DeprecationWarning","DEP0155"))}function ule({packageJSONUrl:r,packageSubpath:e,exports:t,base:i,conditions:n}){if(fze(t,r,i)&&(t={".":t}),Yu(t,e)&&!JO(e,"*")&&!El(e,"/")){let l=t[e],c=ip(r,l,"",e,i,!1,!1,n);return c==null&&VO(e,r,i),c}let s="",o,a=oE(t);for(let l=0;l<a.length;l++){let c=a[l],u=aE(c,"*");if(u!==-1&&sa(e,Il(c,0,u))){El(e,"/")&&hze(e,r,i);let g=Il(c,u+1);e.length>=c.length&&El(e,g)&&cle(s,c)===1&&WO(c,"*")===u&&(s=c,o=Il(e,u,e.length-g.length))}}if(s){let l=t[s],c=ip(r,l,o,s,i,!0,!1,n);return c==null&&VO(e,r,i),c}VO(e,r,i)}function gle({name:r,base:e,conditions:t,readFileSyncFn:i}){if(r==="#"||sa(r,"#/")||El(r,"/")){let o="is not a valid internal imports specifier name";throw new zO(r,o,(0,qi.fileURLToPath)(e))}let n,s=ole(e,i);if(s.exists){n=(0,qi.pathToFileURL)(s.pjsonPath);let o=s.imports;if(o)if(Yu(o,r)&&!JO(r,"*")){let a=ip(n,o[r],"",r,e,!1,!0,t);if(a!=null)return a}else{let a="",l,c=oE(o);for(let u=0;u<c.length;u++){let g=c[u],h=aE(g,"*");if(h!==-1&&sa(r,Il(g,0,h))){let p=Il(g,h+1);r.length>=g.length&&El(r,p)&&cle(a,g)===1&&WO(g,"*")===h&&(a=g,l=Il(r,h,r.length-p.length))}}if(a){let u=o[a],g=ip(n,u,l,a,e,!0,!0,t);if(g!=null)return g}}}lze(r,n,e)}var pze=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ei(r,e,t={},i){i!=null||(i=pze.has(r)?"MODULE_NOT_FOUND":r);let n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...n,value:i},pnpCode:{...n,value:r},data:{...n,value:t}})}function ho(r){return K.normalize(K.fromPortablePath(r))}var dle=ve(hle());function Cle(r){return dze(),ZO[r]}var ZO;function dze(){ZO||(ZO={"--conditions":[],...ple(Cze()),...ple(process.execArgv)})}function ple(r){return(0,dle.default)({"--conditions":[String],"-C":"--conditions"},{argv:r,permissive:!0})}function Cze(){let r=[],e=mze(process.env.NODE_OPTIONS||"",r);return r.length,e}function mze(r,e){let t=[],i=!1,n=!0;for(let s=0;s<r.length;++s){let o=r[s];if(o==="\\"&&i){if(s+1===r.length)return e.push(`invalid value for NODE_OPTIONS (invalid escape) -`),t;o=r[++s]}else if(o===" "&&!i){n=!0;continue}else if(o==='"'){i=!i;continue}n?(t.push(o),n=!1):t[t.length-1]+=o}return i&&e.push(`invalid value for NODE_OPTIONS (unterminated string) -`),t}var Ele=J("module");var[Ir,Ji]=process.versions.node.split(".").map(r=>parseInt(r,10)),EBt=Ir>16||Ir===16&&Ji>=12,IBt=Ir>17||Ir===17&&Ji>=5||Ir===16&&Ji>=15,yBt=Ir>17||Ir===17&&Ji>=1||Ir===16&&Ji>14,mle=Ir>19||Ir===19&&Ji>=2||Ir===18&&Ji>=13,wBt=Ir===20&&Ji<6||Ir===19&&Ji>=3,BBt=Ir>19||Ir===19&&Ji>=6,bBt=Ir>18||Ir===18&&Ji>=1||Ir===16&&Ji>=17,QBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=19,SBt=Ir>=21||Ir===20&&Ji>=10||Ir===18&&Ji>=20,vBt=Ir>=22;var Eze=new Set(Ele.Module.builtinModules||Object.keys(process.binding("natives"))),tQ=r=>r.startsWith("node:")||Eze.has(r);function Ile(r){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(r=r.map(e=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(e)))),mle)process.send({"watch:require":r});else for(let e of r)process.send({"watch:require":e})}function $O(r,e){let t=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,s=/^(\/|\.{1,2}(\/|$))/,o=/\/$/,a=/^\.{0,2}\//,l={name:null,reference:null},c=[],u=new Set;if(r.enableTopLevelFallback===!0&&c.push(l),e.compatibilityMode!==!1)for(let se of["react-scripts","gatsby"]){let Ae=r.packageRegistry.get(se);if(Ae)for(let ye of Ae.keys()){if(ye===null)throw new Error("Assertion failed: This reference shouldn't be null");c.push({name:se,reference:ye})}}let{ignorePattern:g,packageRegistry:h,packageLocatorsByLocations:p}=r;function d(se,Ae){return{fn:se,args:Ae,error:null,result:null}}function m(se){var Ye,ie,G,fe,re,de;let Ae=(G=(ie=(Ye=process.stderr)==null?void 0:Ye.hasColors)==null?void 0:ie.call(Ye))!=null?G:process.stdout.isTTY,ye=(Ze,vt)=>`\x1B[${Ze}m${vt}\x1B[0m`,ge=se.error;console.error(ge?ye("31;1",`\u2716 ${(fe=se.error)==null?void 0:fe.message.replace(/\n.*/s,"")}`):ye("33;1","\u203C Resolution")),se.args.length>0&&console.error();for(let Ze of se.args)console.error(` ${ye("37;1","In \u2190")} ${(0,_O.inspect)(Ze,{colors:Ae,compact:!0})}`);se.result&&(console.error(),console.error(` ${ye("37;1","Out \u2192")} ${(0,_O.inspect)(se.result,{colors:Ae,compact:!0})}`));let oe=(de=(re=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:re.slice(2))!=null?de:[];if(oe.length>0){console.error();for(let Ze of oe)console.error(` ${ye("38;5;244",Ze)}`)}console.error()}function y(se,Ae){if(e.allowDebug===!1)return Ae;if(Number.isFinite(i)){if(i>=2)return(...ye)=>{let ge=d(se,ye);try{return ge.result=Ae(...ye)}catch(oe){throw ge.error=oe}finally{m(ge)}};if(i>=1)return(...ye)=>{try{return Ae(...ye)}catch(ge){let oe=d(se,ye);throw oe.error=ge,m(oe),ge}}}return Ae}function B(se){let Ae=A(se);if(!Ae)throw ei("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Ae}function S(se){if(se.name===null)return!0;for(let Ae of r.dependencyTreeRoots)if(Ae.name===se.name&&Ae.reference===se.reference)return!0;return!1}let P=new Set(["node","require",...Cle("--conditions")]);function F(se,Ae=P,ye){let ge=te(v.join(se,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(ge===null)throw ei("INTERNAL",`The locator that owns the "${se}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:oe}=B(ge),Ye=v.join(oe,St.manifest);if(!e.fakeFs.existsSync(Ye))return null;let ie=JSON.parse(e.fakeFs.readFileSync(Ye,"utf8"));if(ie.exports==null)return null;let G=v.contains(oe,se);if(G===null)throw ei("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");G!=="."&&!a.test(G)&&(G=`./${G}`);try{let fe=ule({packageJSONUrl:(0,gA.pathToFileURL)(K.fromPortablePath(Ye)),packageSubpath:G,exports:ie.exports,base:ye?(0,gA.pathToFileURL)(K.fromPortablePath(ye)):null,conditions:Ae});return K.toPortablePath((0,gA.fileURLToPath)(fe))}catch(fe){throw ei("EXPORTS_RESOLUTION_FAILED",fe.message,{unqualifiedPath:ho(se),locator:ge,pkgJson:ie,subpath:ho(G),conditions:Ae},fe.code)}}function H(se,Ae,{extensions:ye}){let ge;try{Ae.push(se),ge=e.fakeFs.statSync(se)}catch{}if(ge&&!ge.isDirectory())return e.fakeFs.realpathSync(se);if(ge&&ge.isDirectory()){let oe;try{oe=JSON.parse(e.fakeFs.readFileSync(v.join(se,St.manifest),"utf8"))}catch{}let Ye;if(oe&&oe.main&&(Ye=v.resolve(se,oe.main)),Ye&&Ye!==se){let ie=H(Ye,Ae,{extensions:ye});if(ie!==null)return ie}}for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=`${se}${ye[oe]}`;if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}if(ge&&ge.isDirectory())for(let oe=0,Ye=ye.length;oe<Ye;oe++){let ie=v.format({dir:se,name:"index",ext:ye[oe]});if(Ae.push(ie),e.fakeFs.existsSync(ie))return ie}return null}function q(se){let Ae=new gE.Module(se,null);return Ae.filename=se,Ae.paths=gE.Module._nodeModulePaths(se),Ae}function _(se,Ae){return Ae.endsWith("/")&&(Ae=v.join(Ae,"internal.js")),gE.Module._resolveFilename(K.fromPortablePath(se),q(K.fromPortablePath(Ae)),!1,{plugnplay:!1})}function X(se){if(g===null)return!1;let Ae=v.contains(r.basePath,se);return Ae===null?!1:!!g.test(Ae.replace(/\/$/,""))}let W={std:3,resolveVirtual:1,getAllLocators:1},Z=l;function A({name:se,reference:Ae}){let ye=h.get(se);if(!ye)return null;let ge=ye.get(Ae);return ge||null}function ne({name:se,reference:Ae}){let ye=[];for(let[ge,oe]of h)if(ge!==null)for(let[Ye,ie]of oe)Ye===null||ie.packageDependencies.get(se)!==Ae||ge===se&&Ye===Ae||ye.push({name:ge,reference:Ye});return ye}function ue(se,Ae){let ye=new Map,ge=new Set,oe=ie=>{let G=JSON.stringify(ie.name);if(ge.has(G))return;ge.add(G);let fe=ne(ie);for(let re of fe)if(B(re).packagePeers.has(se))oe(re);else{let Ze=ye.get(re.name);typeof Ze>"u"&&ye.set(re.name,Ze=new Set),Ze.add(re.reference)}};oe(Ae);let Ye=[];for(let ie of[...ye.keys()].sort())for(let G of[...ye.get(ie)].sort())Ye.push({name:ie,reference:G});return Ye}function te(se,{resolveIgnored:Ae=!1,includeDiscardFromLookup:ye=!1}={}){if(X(se)&&!Ae)return null;let ge=v.relative(r.basePath,se);ge.match(s)||(ge=`./${ge}`),ge.endsWith("/")||(ge=`${ge}/`);do{let oe=p.get(ge);if(typeof oe>"u"||oe.discardFromLookup&&!ye){ge=ge.substring(0,ge.lastIndexOf("/",ge.length-2)+1);continue}return oe.locator}while(ge!=="");return null}function O(se){try{return e.fakeFs.readFileSync(K.toPortablePath(se),"utf8")}catch(Ae){if(Ae.code==="ENOENT")return;throw Ae}}function N(se,Ae,{considerBuiltins:ye=!0}={}){if(se.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(se==="pnpapi")return K.toPortablePath(e.pnpapiResolution);if(ye&&tQ(se))return null;let ge=ho(se),oe=Ae&&ho(Ae);if(Ae&&X(Ae)&&(!v.isAbsolute(se)||te(se)===null)){let G=_(se,Ae);if(G===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${ge}" -Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(G)}let Ye,ie=se.match(n);if(ie){if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let[,G,fe]=ie,re=te(Ae);if(!re){let gr=_(se,Ae);if(gr===!1)throw ei("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${ge}" -Required by: ${oe} -`,{request:ge,issuer:oe});return K.toPortablePath(gr)}let Ze=B(re).packageDependencies.get(G),vt=null;if(Ze==null&&re.name!==null){let gr=r.fallbackExclusionList.get(re.name);if(!gr||!gr.has(re.reference)){for(let ri=0,Ms=c.length;ri<Ms;++ri){let Ei=B(c[ri]).packageDependencies.get(G);if(Ei!=null){t?vt=Ei:Ze=Ei;break}}if(r.enableTopLevelFallback&&Ze==null&&vt===null){let ri=r.fallbackPool.get(G);ri!=null&&(vt=ri)}}}let mt=null;if(Ze===null)if(S(re))mt=ei("MISSING_PEER_DEPENDENCY",`Your application tried to access ${G} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. - -Required package: ${G}${G!==ge?` (via "${ge}")`:""} -Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G});else{let gr=ue(G,re);gr.every(gi=>S(gi))?mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ge?` (via "${ge}")`:""} -Required by: ${re.name}@${re.reference} (via ${oe}) -${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} -`).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr}):mt=ei("MISSING_PEER_DEPENDENCY",`${re.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ge?` (via "${ge}")`:""} -Required by: ${re.name}@${re.reference} (via ${oe}) - -${gr.map(gi=>`Ancestor breaking the chain: ${gi.name}@${gi.reference} -`).join("")} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G,brokenAncestors:gr})}else Ze===void 0&&(!ye&&tQ(se)?S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ge?` (via "${ge}")`:""} -Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in ${re.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ge?` (via "${ge}")`:""} -Required by: ${oe} -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}):S(re)?mt=ei("UNDECLARED_DEPENDENCY",`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ge?` (via "${ge}")`:""} -Required by: ${oe} -`,{request:ge,issuer:oe,dependencyName:G}):mt=ei("UNDECLARED_DEPENDENCY",`${re.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ge?` (via "${ge}")`:""} -Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,issuerLocator:Object.assign({},re),dependencyName:G}));if(Ze==null){if(vt===null||mt===null)throw mt||new Error("Assertion failed: Expected an error to have been set");Ze=vt;let gr=mt.message.replace(/\n.*/g,"");mt.message=gr,!u.has(gr)&&i!==0&&(u.add(gr),process.emitWarning(mt))}let Lr=Array.isArray(Ze)?{name:Ze[0],reference:Ze[1]}:{name:G,reference:Ze},ti=B(Lr);if(!ti.packageLocation)throw ei("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${Lr.name}@${Lr.reference}${Lr.name!==ge?` (via "${ge}")`:""} -Required by: ${re.name}@${re.reference} (via ${oe}) -`,{request:ge,issuer:oe,dependencyLocator:Object.assign({},Lr)});let ui=ti.packageLocation;fe?Ye=v.join(ui,fe):Ye=ui}else if(v.isAbsolute(se))Ye=v.normalize(se);else{if(!Ae)throw ei("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ge,issuer:oe});let G=v.resolve(Ae);Ae.match(o)?Ye=v.normalize(v.join(G,se)):Ye=v.normalize(v.join(v.dirname(G),se))}return v.normalize(Ye)}function ce(se,Ae,ye=P,ge){if(s.test(se))return Ae;let oe=F(Ae,ye,ge);return oe?v.normalize(oe):Ae}function he(se,{extensions:Ae=Object.keys(gE.Module._extensions)}={}){var oe,Ye;let ye=[],ge=H(se,ye,{extensions:Ae});if(ge)return v.normalize(ge);{Ile(ye.map(fe=>K.fromPortablePath(fe)));let ie=ho(se),G=te(se);if(G){let{packageLocation:fe}=B(G),re=!0;try{e.fakeFs.accessSync(fe)}catch(de){if((de==null?void 0:de.code)==="ENOENT")re=!1;else{let Ze=((Ye=(oe=de==null?void 0:de.message)!=null?oe:de)!=null?Ye:"empty exception thrown").replace(/^[A-Z]/,vt=>vt.toLowerCase());throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${Ze}). - -Missing package: ${G.name}@${G.reference} -Expected package location: ${ho(fe)} -`,{unqualifiedPath:ie,extensions:Ae})}}if(!re){let de=fe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`${de} - -Missing package: ${G.name}@${G.reference} -Expected package location: ${ho(fe)} -`,{unqualifiedPath:ie,extensions:Ae})}}throw ei("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. - -Source path: ${ie} -${ye.map(fe=>`Not found: ${ho(fe)} -`).join("")}`,{unqualifiedPath:ie,extensions:Ae})}}function Pe(se,Ae,ye){var oe;if(!Ae)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let ge=gle({name:se,base:(0,gA.pathToFileURL)(K.fromPortablePath(Ae)),conditions:(oe=ye.conditions)!=null?oe:P,readFileSyncFn:O});if(ge instanceof gA.URL)return he(K.toPortablePath((0,gA.fileURLToPath)(ge)),{extensions:ye.extensions});if(ge.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return De(ge,Ae,ye)}function De(se,Ae,ye={}){try{if(se.startsWith("#"))return Pe(se,Ae,ye);let{considerBuiltins:ge,extensions:oe,conditions:Ye}=ye,ie=N(se,Ae,{considerBuiltins:ge});if(se==="pnpapi")return ie;if(ie===null)return null;let G=()=>Ae!==null?X(Ae):!1,fe=(!ge||!tQ(se))&&!G()?ce(se,ie,Ye,Ae):ie;return he(fe,{extensions:oe})}catch(ge){throw Object.prototype.hasOwnProperty.call(ge,"pnpCode")&&Object.assign(ge.data,{request:ho(se),issuer:Ae&&ho(Ae)}),ge}}function Re(se){let Ae=v.normalize(se),ye=wr.resolveVirtual(Ae);return ye!==Ae?ye:null}return{VERSIONS:W,topLevel:Z,getLocator:(se,Ae)=>Array.isArray(Ae)?{name:Ae[0],reference:Ae[1]}:{name:se,reference:Ae},getDependencyTreeRoots:()=>[...r.dependencyTreeRoots],getAllLocators(){let se=[];for(let[Ae,ye]of h)for(let ge of ye.keys())Ae!==null&&ge!==null&&se.push({name:Ae,reference:ge});return se},getPackageInformation:se=>{let Ae=A(se);if(Ae===null)return null;let ye=K.fromPortablePath(Ae.packageLocation);return{...Ae,packageLocation:ye}},findPackageLocator:se=>te(K.toPortablePath(se)),resolveToUnqualified:y("resolveToUnqualified",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=N(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveUnqualified:y("resolveUnqualified",(se,Ae)=>K.fromPortablePath(he(K.toPortablePath(se),Ae))),resolveRequest:y("resolveRequest",(se,Ae,ye)=>{let ge=Ae!==null?K.toPortablePath(Ae):null,oe=De(K.toPortablePath(se),ge,ye);return oe===null?null:K.fromPortablePath(oe)}),resolveVirtual:y("resolveVirtual",se=>{let Ae=Re(K.toPortablePath(se));return Ae!==null?K.fromPortablePath(Ae):null})}}var YBt=(0,wle.promisify)(yle.readFile);var Ble=(r,e,t)=>{let i=nE(r),n=jO(i,{basePath:e}),s=K.join(e,St.pnpCjs);return $O(n,{fakeFs:t,pnpapiResolution:s})};var tM=ve(Qle());var po={};ct(po,{checkAndReportManifestCompatibility:()=>vle,checkManifestCompatibility:()=>Sle,extractBuildScripts:()=>rQ,getExtractHint:()=>rM,hasBindingGyp:()=>iM});function Sle(r){return x.isPackageCompatible(r,ys.getArchitectureSet())}function vle(r,e,{configuration:t,report:i}){return Sle(r)?!0:(i==null||i.reportWarningOnce(76,`${x.prettyLocator(t,r)} The ${ys.getArchitectureName()} architecture is incompatible with this package, ${e} skipped.`),!1)}function rQ(r,e,t,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([0,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([1,"node-gyp rebuild"]),s.length===0?[]:r.linkType!=="HARD"?(n==null||n.reportWarningOnce(6,`${x.prettyLocator(i,r)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):t&&t.built===!1?(n==null||n.reportInfoOnce(5,`${x.prettyLocator(i,r)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!t.built?(n==null||n.reportWarningOnce(4,`${x.prettyLocator(i,r)} lists build scripts, but all build scripts have been disabled.`),[]):vle(r,"build",{configuration:i,report:n})?s:[]}var yze=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rM(r){return r.packageFs.getExtractHint({relevantExtensions:yze})}function iM(r){let e=v.join(r.prefixPath,"binding.gyp");return r.packageFs.existsSync(e)}var hE={};ct(hE,{getUnpluggedPath:()=>fE});function fE(r,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),x.slugifyLocator(r))}var wze=new Set([x.makeIdent(null,"open").identHash,x.makeIdent(null,"opn").identHash]),yl=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let i=wl(t.project).cjs;if(!M.existsSync(i))throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})),s={name:x.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed PnP map - running an install might help`);return K.toPortablePath(o.packageLocation)}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=wl(t.project).cjs;if(!M.existsSync(i))return null;let s=me.getFactoryWithDefault(this.pnpCache,i,()=>me.dynamicRequire(i,{cachingStrategy:me.CachingStrategy.FsTime})).findPackageLocator(K.fromPortablePath(e));return s?x.makeLocator(x.parseIdent(s.name),s.reference):null}makeInstaller(e){return new qu(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},qu=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new me.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t,i){let n=x.stringifyIdent(e),s=e.reference,o=!!this.opts.project.tryWorkspaceByLocator(e),a=x.isVirtualLocator(e),l=e.peerDependencies.size>0&&!a,c=!l&&!o,u=!l&&e.linkType!=="SOFT",g,h;if(c||u){let P=a?x.devirtualizeLocator(e):e;g=this.customData.store.get(P.locatorHash),typeof g>"u"&&(g=await Bze(t),e.linkType==="HARD"&&this.customData.store.set(P.locatorHash,g)),g.manifest.type==="module"&&(this.isESMLoaderRequired=!0),h=this.opts.project.getDependencyMeta(P,e.version)}let p=c?rQ(e,g,h,{configuration:this.opts.project.configuration,report:this.opts.report}):[],d=u?await this.unplugPackageIfNeeded(e,g,t,h,i):t.packageFs;if(v.isAbsolute(t.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${t.prefixPath}) to be relative to the parent`);let m=v.resolve(d.getRealPath(),t.prefixPath),y=nM(this.opts.project.cwd,m),B=new Map,S=new Set;if(a){for(let P of e.peerDependencies.values())B.set(x.stringifyIdent(P),null),S.add(x.stringifyIdent(P));if(!o){let P=x.devirtualizeLocator(e);this.virtualTemplates.set(P.locatorHash,{location:nM(this.opts.project.cwd,wr.resolveVirtual(m)),locator:P})}}return me.getMapWithDefault(this.packageRegistry,n).set(s,{packageLocation:y,packageDependencies:B,packagePeers:S,linkType:e.linkType,discardFromLookup:t.discardFromLookup||!1}),{packageLocation:m,buildDirective:p.length>0?p:null}}async attachInternalDependencies(e,t){let i=this.getPackageInformation(e);for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){for(let i of t)this.getDiskInformation(i).packageDependencies.set(x.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=wl(this.opts.project);if(M.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(0,`Removing the old ${$.pretty(this.opts.project.configuration,St.pnpJs,$.Type.PATH)} file. You might need to manually update existing references to reference the new ${$.pretty(this.opts.project.configuration,St.pnpCjs,$.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${$.pretty(this.opts.project.configuration,"yarn sdks",$.Type.CODE)}.`),await M.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await M.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await M.removePromise(e.cjs),await M.removePromise(this.opts.project.configuration.get("pnpDataPath")),await M.removePromise(e.esmLoader),await M.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:u,location:g}of this.virtualTemplates.values())me.getMapWithDefault(this.packageRegistry,x.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let t=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:x.stringifyIdent(u),reference:u.reference})),n=t!=="none",s=[],o=new Map,a=me.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(t==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:x.stringifyIdent(u),reference:u.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let t=wl(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await M.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=XAe(e);await M.changeFilePromise(t.cjs,o,{automaticNewlines:!0,mode:493}),await M.removePromise(i)}else{let o=v.relative(v.dirname(t.cjs),i),{dataFile:a,loaderFile:l}=ZAe({...e,dataLocation:o});await M.changeFilePromise(t.cjs,l,{automaticNewlines:!0,mode:493}),await M.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await M.changeFilePromise(t.esmLoader,(0,tM.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await M.removePromise(s);else for(let o of await M.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await M.removePromise(a)}}async locateNodeModules(e){let t=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!M.existsSync(s))continue;let o=await M.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)t.push(s);else for(let l of a)t.push(v.join(s,l.name))}return t}async unplugPackageIfNeeded(e,t,i,n,s){return this.shouldBeUnplugged(e,t,n)?this.unplugPackage(e,i,s):i.packageFs}shouldBeUnplugged(e,t,i){return typeof i.unplugged<"u"?i.unplugged:wze.has(e.identHash)||e.conditions!=null?!0:t.manifest.preferUnplugged!==null?t.manifest.preferUnplugged:!!(rQ(e,t,i,{configuration:this.opts.project.configuration}).length>0||t.misc.extractHint)}async unplugPackage(e,t,i){let n=fE(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Qo(n,{baseFs:t.packageFs,pathUtils:v}):(this.unpluggedPaths.add(n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let s=v.join(n,t.prefixPath,".ready");await M.existsPromise(s)||(this.opts.project.storedBuildState.delete(e.locatorHash),await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,Te.dot,{baseFs:t.packageFs,overwrite:!1}),await M.writeFilePromise(s,""))})),new jt(n))}getPackageInformation(e){let t=x.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(t);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${x.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${x.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let t=me.getMapWithDefault(this.packageRegistry,"@@disk"),i=nM(this.opts.project.cwd,e);return me.getFactoryWithDefault(t,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function nM(r,e){let t=v.relative(r,e);return t.match(/^\.{0,2}\//)||(t=`./${t}`),t.replace(/\/?$/,"/")}async function Bze(r){var i;let e=(i=await ot.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?i:new ot,t=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())t.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rM(r),hasBindingGyp:iM(r)}}}var xle=ve(bn());var Ju=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new we("This command can only be used if the `nodeLinker` option is set to `pnp`");await i.restoreInstallState();let o=new Set(this.patterns),a=this.patterns.map(p=>{let d=x.parseDescriptor(p),m=d.range!=="unknown"?d:x.makeDescriptor(d,"*");if(!Qt.validRange(m.range))throw new we(`The range of the descriptor patterns must be a valid semver range (${x.prettyDescriptor(t,m)})`);return y=>{let B=x.stringifyIdent(y);return!xle.default.isMatch(B,x.stringifyIdent(m))||y.version&&!Qt.satisfiesWithPrereleases(y.version,m.range)?!1:(o.delete(p),!0)}}),l=()=>{let p=[];for(let d of i.storedPackages.values())!i.tryWorkspaceByLocator(d)&&!x.isVirtualLocator(d)&&a.some(m=>m(d))&&p.push(d);return p},c=p=>{let d=new Set,m=[],y=(B,S)=>{if(d.has(B.locatorHash))return;let P=!!i.tryWorkspaceByLocator(B);if(!(S>0&&!this.recursive&&P)&&(d.add(B.locatorHash),!i.tryWorkspaceByLocator(B)&&a.some(F=>F(B))&&m.push(B),!(S>0&&!this.recursive)))for(let F of B.dependencies.values()){let H=i.storedResolutions.get(F.descriptorHash);if(!H)throw new Error("Assertion failed: The resolution should have been registered");let q=i.storedPackages.get(H);if(!q)throw new Error("Assertion failed: The package should have been registered");y(q,S+1)}};for(let B of p){let S=i.storedPackages.get(B.anchoredLocator.locatorHash);if(!S)throw new Error("Assertion failed: The package should have been registered");y(S,0)}return m},u,g;if(this.all&&this.recursive?(u=l(),g="the project"):this.all?(u=c(i.workspaces),g="any workspace"):(u=c([n]),g="this workspace"),o.size>1)throw new we(`Patterns ${$.prettyList(t,o,$.Type.CODE)} don't match any packages referenced by ${g}`);if(o.size>0)throw new we(`Pattern ${$.prettyList(t,o,$.Type.CODE)} doesn't match any packages referenced by ${g}`);return u=me.sortMap(u,p=>x.stringifyLocator(p)),(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async p=>{var d;for(let m of u){let y=(d=m.version)!=null?d:"unknown",B=i.topLevelWorkspace.manifest.ensureDependencyMeta(x.makeDescriptor(m,y));B.unplugged=!0,p.reportInfo(0,`Will unpack ${x.prettyLocator(t,m)} to ${$.pretty(t,fE(m,{configuration:t}),$.Type.PATH)}`),p.reportJson({locator:x.stringifyLocator(m),version:y})}await i.topLevelWorkspace.persistManifest(),p.reportSeparator(),await i.install({cache:s,report:p})})).exitCode()}};Ju.paths=[["unplug"]],Ju.usage=Qe.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var wl=r=>({cjs:v.join(r.cwd,St.pnpCjs),cjsLegacy:v.join(r.cwd,St.pnpJs),esmLoader:v.join(r.cwd,".pnp.loader.mjs")}),Dle=r=>/\s/.test(r)?JSON.stringify(r):r;async function bze(r,e,t){let i=wl(r),n=`--require ${Dle(K.fromPortablePath(i.cjs))}`;if(M.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,kle.pathToFileURL)(K.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&Ple.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(M.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function Qze(r,e){let t=wl(r);e(t.cjs),e(t.esmLoader),e(r.configuration.get("pnpDataPath")),e(r.configuration.get("pnpUnpluggedFolder"))}var Sze={hooks:{populateYarnPaths:Qze,setupScriptEnvironment:bze},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:"STRING",default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:"ABSOLUTE_PATH",default:"./.pnp.data.json"}},linkers:[yl],commands:[Ju]},vze=Sze;var Kle=ve(Lle());var gM=ve(J("crypto")),Ule=ve(J("fs")),Hle=1,Dr="node_modules",iQ=".bin",jle=".yarn-state.yml",Yze=1e3;var nQ=class{constructor(){this.installStateCache=new Map}supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let i=t.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(n===null)throw new we("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(x.stringifyLocator(e));if(!s){let l=new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw l.code="LOCATOR_NOT_INSTALLED",l}let o=s.locations.sort((l,c)=>l.split(v.sep).length-c.split(v.sep).length),a=v.join(t.project.configuration.startingCwd,Dr);return o.find(l=>v.contains(a,l))||s.locations[0]}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=await me.getFactoryWithDefault(this.installStateCache,t.project.cwd,async()=>await uM(t.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=sQ(v.resolve(e),{skipPrefix:t.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return x.parseLocator(a)}makeInstaller(e){return new cM(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},cM=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,t){var u;let i=v.resolve(t.packageFs.getRealPath(),t.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n>"u"&&(n=await qze(e,t),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,n)),!x.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(x.stringifyIdent(e))||s.set(x.stringifyIdent(e),e.reference);let a=e;if(x.isVirtualLocator(e)){a=x.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(x.stringifyIdent(g),null),o.add(x.stringifyIdent(g))}let l={packageLocation:`${K.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=t.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=t.checksum?t.checksum.substring(t.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,t){let i=this.localStore.get(e.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of t){let o=x.areIdentsEqual(n,s)?s.reference:[x.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(x.stringifyIdent(n),o)}}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),t=await uM(this.opts.project),i=this.opts.project.configuration.get("nmMode");(t===null||i!==t.nmMode)&&(this.opts.project.storedBuildState.clear(),t={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i,mtimeMs:0});let n=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmHoistingLimits");try{p=me.validateEnum(tE,(m=(d=h.manifest.installConfig)==null?void 0:d.hoistingLimits)!=null?m:p)}catch{let B=x.prettyWorkspace(this.opts.project.configuration,h);this.opts.report.reportWarning(57,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(tE).join(", ")}, using default: "${p}"`)}return[h.relativeCwd,p]})),s=new Map(this.opts.project.workspaces.map(h=>{var d,m;let p=this.opts.project.configuration.get("nmSelfReferences");return p=(m=(d=h.manifest.installConfig)==null?void 0:d.selfReferences)!=null?m:p,[h.relativeCwd,p]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(h,p)=>Array.isArray(p)?{name:p[0],reference:p[1]}:{name:h,reference:p},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(h=>{let p=h.anchoredLocator;return{name:x.stringifyIdent(h.locator),reference:p.reference}}),getPackageInformation:h=>{let p=h.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:x.makeLocator(x.parseIdent(h.name),h.reference),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return d.pnpNode},findPackageLocator:h=>{let p=this.opts.project.tryWorkspaceByCwd(K.toPortablePath(h));if(p!==null){let d=p.anchoredLocator;return{name:x.stringifyIdent(d),reference:d.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:h=>K.fromPortablePath(wr.resolveVirtual(K.toPortablePath(h)))},{tree:a,errors:l,preserveSymlinksRequired:c}=rE(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:h,text:p}of l)this.opts.report.reportError(h,p);return}let u=UO(a);await Zze(t,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async h=>{let p=x.parseLocator(h),d=this.localStore.get(p.locatorHash);if(typeof d>"u")throw new Error("Assertion failed: Expected the slot to exist");return d.customPackageData.manifest}});let g=[];for(let[h,p]of u.entries()){if(Jle(h))continue;let d=x.parseLocator(h),m=this.localStore.get(d.locatorHash);if(typeof m>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(m.pkg))continue;let y=po.extractBuildScripts(m.pkg,m.customPackageData,m.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});y.length!==0&&g.push({buildLocations:p.locations,locatorHash:d.locatorHash,buildDirective:y})}return c&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${$.pretty(this.opts.project.configuration,"--preserve-symlinks",$.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function qze(r,e){var n;let t=(n=await ot.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new ot,i=new Set(["preinstall","install","postinstall"]);for(let s of t.scripts.keys())i.has(s)||t.scripts.delete(s);return{manifest:{bin:t.bin,scripts:t.scripts},misc:{extractHint:po.getExtractHint(e),hasBindingGyp:po.hasBindingGyp(e)}}}async function Jze(r,e,t,i,{installChangedByUser:n}){let s="";s+=`# Warning: This file is automatically generated. Removing it is fine, but will -`,s+=`# cause your node_modules installation to become invalidated. -`,s+=` -`,s+=`__metadata: -`,s+=` version: ${Hle} -`,s+=` nmMode: ${i.value} -`;let o=Array.from(e.keys()).sort(),a=x.stringifyLocator(r.topLevelWorkspace.anchoredLocator);for(let u of o){let g=e.get(u);s+=` -`,s+=`${JSON.stringify(u)}: -`,s+=` locations: -`;for(let h of g.locations){let p=v.contains(r.cwd,h);if(p===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` - ${JSON.stringify(p)} -`}if(g.aliases.length>0){s+=` aliases: -`;for(let h of g.aliases)s+=` - ${JSON.stringify(h)} -`}if(u===a&&t.size>0){s+=` bin: -`;for(let[h,p]of t){let d=v.contains(r.cwd,h);if(d===null)throw new Error(`Assertion failed: Expected the path to be within the project (${h})`);s+=` ${JSON.stringify(d)}: -`;for(let[m,y]of p){let B=v.relative(v.join(h,Dr),y);s+=` ${JSON.stringify(m)}: ${JSON.stringify(B)} -`}}}}let l=r.cwd,c=v.join(l,Dr,jle);n&&await M.removePromise(c),await M.changeFilePromise(c,s,{automaticNewlines:!0})}async function uM(r,{unrollAliases:e=!1}={}){let t=r.cwd,i=v.join(t,Dr,jle),n;try{n=await M.statPromise(i)}catch{}if(!n)return null;let s=wi(await M.readFilePromise(i,"utf8"));if(s.__metadata.version>Hle)return null;let o=s.__metadata.nmMode||"classic",a=new Map,l=new Map;delete s.__metadata;for(let[c,u]of Object.entries(s)){let g=u.locations.map(p=>v.join(t,p)),h=u.bin;if(h)for(let[p,d]of Object.entries(h)){let m=v.join(t,K.toPortablePath(p)),y=me.getMapWithDefault(l,m);for(let[B,S]of Object.entries(d))y.set(Yr(B),K.toPortablePath([m,Dr,S].join(v.sep)))}if(a.set(c,{target:Te.dot,linkType:"HARD",locations:g,aliases:u.aliases||[]}),e&&u.aliases)for(let p of u.aliases){let{scope:d,name:m}=x.parseLocator(c),y=x.makeLocator(x.makeIdent(d,m),p),B=x.stringifyLocator(y);a.set(B,{target:Te.dot,linkType:"HARD",locations:g,aliases:[]})}}return{locatorMap:a,binSymlinks:l,locationTree:Gle(a,{skipPrefix:r.cwd}),nmMode:o,mtimeMs:n.mtimeMs}}var sp=async(r,e)=>{if(r.split(v.sep).indexOf(Dr)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${r}`);try{if(!e.innerLoop){let i=e.allowSymlink?await M.statPromise(r):await M.lstatPromise(r);if(e.allowSymlink&&!i.isDirectory()||!e.allowSymlink&&i.isSymbolicLink()){await M.unlinkPromise(r);return}}let t=await M.readdirPromise(r,{withFileTypes:!0});for(let i of t){let n=v.join(r,Yr(i.name));i.isDirectory()?(i.name!==Dr||e&&e.innerLoop)&&await sp(n,{innerLoop:!0,contentsOnly:!1}):await M.unlinkPromise(n)}e.contentsOnly||await M.rmdirPromise(r)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY")throw t}},Ole=4,sQ=(r,{skipPrefix:e})=>{let t=v.contains(e,r);if(t===null)throw new Error(`Assertion failed: Writing attempt prevented to ${r} which is outside project root: ${e}`);let i=t.split(v.sep).filter(l=>l!==""),n=i.indexOf(Dr),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Gle=(r,{skipPrefix:e})=>{let t=new Map;if(r===null)return t;let i=()=>({children:new Map,linkType:"HARD"});for(let[n,s]of r.entries()){if(s.linkType==="SOFT"&&v.contains(e,s.target)!==null){let a=me.getFactoryWithDefault(t,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=sQ(o,{skipPrefix:e}),c=me.getFactoryWithDefault(t,a,i);for(let u=0;u<l.length;++u){let g=l[u];if(g!=="."){let h=me.getFactoryWithDefault(c.children,g,i);c.children.set(g,h),c=h}u===l.length-1&&(c.locator=n,c.linkType=s.linkType)}}}return t},fM=async(r,e)=>{let t;try{process.platform==="win32"&&(t=await M.lstatPromise(r))}catch{}process.platform=="win32"&&(!t||t.isDirectory())?await M.symlinkPromise(r,e,"junction"):await M.symlinkPromise(v.relative(v.dirname(e),r),e)};async function Yle(r,e,t){let i=v.join(r,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));try{await M.writeFilePromise(i,t);try{await M.linkPromise(i,e)}catch{}}finally{await M.unlinkPromise(i)}}async function Wze({srcPath:r,dstPath:e,entry:t,globalHardlinksStore:i,baseFs:n,nmMode:s}){if(t.kind===qle.FILE){if(s.value==="hardlinks-global"&&i&&t.digest){let a=v.join(i,t.digest.substring(0,2),`${t.digest.substring(2)}.dat`),l;try{let c=await M.statPromise(a);if(c&&(!t.mtimeMs||c.mtimeMs>t.mtimeMs||c.mtimeMs<t.mtimeMs-Yze))if(await Ai.checksumFile(a,{baseFs:M,algorithm:"sha1"})!==t.digest){let g=v.join(i,Yr(`${gM.default.randomBytes(16).toString("hex")}.tmp`));await M.renamePromise(a,g);let h=await n.readFilePromise(r);await M.writeFilePromise(g,h);try{await M.linkPromise(g,a),t.mtimeMs=new Date().getTime(),await M.unlinkPromise(g)}catch{}}else t.mtimeMs||(t.mtimeMs=Math.ceil(c.mtimeMs));await M.linkPromise(a,e),l=!0}catch{l=!1}if(!l){let c=await n.readFilePromise(r);await Yle(i,a,c),t.mtimeMs=new Date().getTime();try{await M.linkPromise(a,e)}catch(u){u&&u.code&&u.code=="EXDEV"&&(s.value="hardlinks-local",await n.copyFilePromise(r,e))}}}else await n.copyFilePromise(r,e);let o=t.mode&511;o!==420&&await M.chmodPromise(e,o)}}var qle=(i=>(i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink",i))(qle||{}),zze=async(r,e,{baseFs:t,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await M.mkdirPromise(r,{recursive:!0});let o=async(c=Te.dot)=>{let u=v.join(e,c),g=await t.readdirPromise(u,{withFileTypes:!0}),h=new Map;for(let p of g){let d=v.join(c,p.name),m,y=v.join(u,p.name);if(p.isFile()){if(m={kind:"file",mode:(await t.lstatPromise(y)).mode},n.value==="hardlinks-global"){let B=await Ai.checksumFile(y,{baseFs:t,algorithm:"sha1"});m.digest=B}}else if(p.isDirectory())m={kind:"directory"};else if(p.isSymbolicLink())m={kind:"symlink",symlinkTo:await t.readlinkPromise(y)};else throw new Error(`Unsupported file type (file: ${y}, mode: 0o${await t.statSync(y).mode.toString(8).padStart(6,"0")})`);if(h.set(d,m),p.isDirectory()&&d!==Dr){let B=await o(d);for(let[S,P]of B)h.set(S,P)}}return h},a;if(n.value==="hardlinks-global"&&i&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await M.readFilePromise(c,"utf8"))))}catch{a=await o()}}else a=await o();let l=!1;for(let[c,u]of a){let g=v.join(e,c),h=v.join(r,c);if(u.kind==="directory")await M.mkdirPromise(h,{recursive:!0});else if(u.kind==="file"){let p=u.mtimeMs;await Wze({srcPath:g,dstPath:h,entry:u,nmMode:n,baseFs:t,globalHardlinksStore:i}),u.mtimeMs!==p&&(l=!0)}else u.kind==="symlink"&&await fM(v.resolve(v.dirname(h),u.symlinkTo),h)}if(n.value==="hardlinks-global"&&i&&l&&s){let c=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);await M.removePromise(c),await Yle(i,c,Buffer.from(JSON.stringify(Object.fromEntries(a))))}};function Vze(r,e,t,i){let n=new Map,s=new Map,o=new Map,a=!1,l=(c,u,g,h,p)=>{let d=!0,m=v.join(c,u),y=new Set;if(u===Dr||u.startsWith("@")){let S;try{S=M.statSync(m)}catch{}d=!!S,S?S.mtimeMs>t?(a=!0,y=new Set(M.readdirSync(m))):y=new Set(g.children.get(u).children.keys()):a=!0;let P=e.get(c);if(P){let F=v.join(c,Dr,iQ),H;try{H=M.statSync(F)}catch{}if(!H)a=!0;else if(H.mtimeMs>t){a=!0;let q=new Set(M.readdirSync(F)),_=new Map;s.set(c,_);for(let[X,W]of P)q.has(X)&&_.set(X,W)}else s.set(c,P)}}else d=p.has(u);let B=g.children.get(u);if(d){let{linkType:S,locator:P}=B,F={children:new Map,linkType:S,locator:P};if(h.children.set(u,F),P){let H=me.getSetWithDefault(o,P);H.add(m),o.set(P,H)}for(let H of B.children.keys())l(m,H,B,F,y)}else B.locator&&i.storedBuildState.delete(x.parseLocator(B.locator).locatorHash)};for(let[c,u]of r){let{linkType:g,locator:h}=u,p={children:new Map,linkType:g,locator:h};if(n.set(c,p),h){let d=me.getSetWithDefault(o,u.locator);d.add(c),o.set(u.locator,d)}u.children.has(Dr)&&l(c,Dr,u,p,new Set)}return{locationTree:n,binSymlinks:s,locatorLocations:o,installChangedByUser:a}}function Jle(r){let e=x.parseDescriptor(r);return x.isVirtualDescriptor(e)&&(e=x.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function Xze(r,e,t,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of r){let c=Jle(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,h]of c.bin){let p=v.join(l[0],h);h!==""&&M.existsSync(p)&&u.set(g,h)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(t,a);if(c.locator&&g!==null){let h=n.get(c.locator);for(let[p,d]of h){let m=v.join(a,K.toPortablePath(d));u.set(Yr(p),m)}for(let[p,d]of c.children){let m=v.join(a,p),y=o(m,m,d);y.size>0&&s.set(a,new Map([...s.get(a)||new Map,...y]))}}else for(let[h,p]of c.children){let d=o(v.join(a,h),l,p);for(let[m,y]of d)u.set(m,y)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var Mle=(r,e)=>{if(!r||!e)return r===e;let t=x.parseLocator(r);x.isVirtualLocator(t)&&(t=x.devirtualizeLocator(t));let i=x.parseLocator(e);return x.isVirtualLocator(i)&&(i=x.devirtualizeLocator(i)),x.areLocatorsEqual(t,i)};function hM(r){return v.join(r.get("globalFolder"),"store")}async function Zze(r,e,{baseFs:t,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,Dr),{locationTree:l,binSymlinks:c,locatorLocations:u,installChangedByUser:g}=Vze(r.locationTree,r.binSymlinks,r.mtimeMs,i),h=Gle(e,{skipPrefix:i.cwd}),p=[],d=async({srcDir:X,dstDir:W,linkType:Z,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})=>{let te=(async()=>{try{Z==="SOFT"?(await M.mkdirPromise(v.dirname(W),{recursive:!0}),await fM(v.resolve(X),W)):await zze(W,X,{baseFs:t,globalHardlinksStore:A,nmMode:ne,packageChecksum:ue})}catch(O){throw O.message=`While persisting ${X} -> ${W} ${O.message}`,O}finally{F.tick()}})().then(()=>p.splice(p.indexOf(te),1));p.push(te),p.length>Ole&&await Promise.race(p)},m=async(X,W,Z)=>{let A=(async()=>{let ne=async(ue,te,O)=>{try{O.innerLoop||await M.mkdirPromise(te,{recursive:!0});let N=await M.readdirPromise(ue,{withFileTypes:!0});for(let ce of N){if(!O.innerLoop&&ce.name===iQ)continue;let he=v.join(ue,ce.name),Pe=v.join(te,ce.name);ce.isDirectory()?(ce.name!==Dr||O&&O.innerLoop)&&(await M.mkdirPromise(Pe,{recursive:!0}),await ne(he,Pe,{...O,innerLoop:!0})):_.value==="hardlinks-local"||_.value==="hardlinks-global"?await M.linkPromise(he,Pe):await M.copyFilePromise(he,Pe,Ule.default.constants.COPYFILE_FICLONE)}}catch(N){throw O.innerLoop||(N.message=`While cloning ${ue} -> ${te} ${N.message}`),N}finally{O.innerLoop||F.tick()}};await ne(X,W,Z)})().then(()=>p.splice(p.indexOf(A),1));p.push(A),p.length>Ole&&await Promise.race(p)},y=async(X,W,Z)=>{if(Z)for(let[A,ne]of W.children){let ue=Z.children.get(A);await y(v.join(X,A),ne,ue)}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!1});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:X===a,allowSymlink:A})}};for(let[X,W]of l){let Z=h.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A),te=v.join(X,A);await y(te,ne,ue)}}let B=async(X,W,Z)=>{if(Z){Mle(W.locator,Z.locator)||await sp(X,{contentsOnly:W.linkType==="HARD"});for(let[A,ne]of W.children){let ue=Z.children.get(A);await B(v.join(X,A),ne,ue)}}else{W.children.has(Dr)&&await sp(v.join(X,Dr),{contentsOnly:!0});let A=v.basename(X)===Dr&&h.has(v.join(v.dirname(X),v.sep));await sp(X,{contentsOnly:W.linkType==="HARD",allowSymlink:A})}};for(let[X,W]of h){let Z=l.get(X);for(let[A,ne]of W.children){if(A===".")continue;let ue=Z&&Z.children.get(A);await B(v.join(X,A),ne,ue)}}let S=new Map,P=[];for(let[X,W]of u)for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=h.get(A),te=A;if(ue){for(let O of ne)if(te=v.join(te,O),ue=ue.children.get(O),!ue)break;if(ue){let O=Mle(ue.locator,X),N=e.get(ue.locator),ce=N.target,he=te,Pe=N.linkType;if(O)S.has(ce)||S.set(ce,he);else if(ce!==he){let De=x.parseLocator(ue.locator);x.isVirtualLocator(De)&&(De=x.devirtualizeLocator(De)),P.push({srcDir:ce,dstDir:he,linkType:Pe,realLocatorHash:De.locatorHash})}}}}for(let[X,{locations:W}]of e.entries())for(let Z of W){let{locationRoot:A,segments:ne}=sQ(Z,{skipPrefix:i.cwd}),ue=l.get(A),te=h.get(A),O=A,N=e.get(X),ce=x.parseLocator(X);x.isVirtualLocator(ce)&&(ce=x.devirtualizeLocator(ce));let he=ce.locatorHash,Pe=N.target,De=Z;if(Pe===De)continue;let Re=N.linkType;for(let se of ne)te=te.children.get(se);if(!ue)P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});else for(let se of ne)if(O=v.join(O,se),ue=ue.children.get(se),!ue){P.push({srcDir:Pe,dstDir:De,linkType:Re,realLocatorHash:he});break}}let F=xi.progressViaCounter(P.length),H=n.reportProgress(F),q=i.configuration.get("nmMode"),_={value:q};try{let X=_.value==="hardlinks-global"?`${hM(i.configuration)}/v1`:null;if(X&&!await M.existsPromise(X)){await M.mkdirpPromise(X);for(let Z=0;Z<256;Z++)await M.mkdirPromise(v.join(X,Z.toString(16).padStart(2,"0")))}for(let Z of P)(Z.linkType==="SOFT"||!S.has(Z.srcDir))&&(S.set(Z.srcDir,Z.dstDir),await d({...Z,globalHardlinksStore:X,nmMode:_,packageChecksum:o.get(Z.realLocatorHash)||null}));await Promise.all(p),p.length=0;for(let Z of P){let A=S.get(Z.srcDir);Z.linkType!=="SOFT"&&Z.dstDir!==A&&await m(A,Z.dstDir,{nmMode:_})}await Promise.all(p),await M.mkdirPromise(a,{recursive:!0});let W=await Xze(e,h,i.cwd,{loadManifest:s});await _ze(c,W,i.cwd),await Jze(i,e,W,_,{installChangedByUser:g}),q=="hardlinks-global"&&_.value=="hardlinks-local"&&n.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{H.stop()}}async function _ze(r,e,t){for(let i of r.keys()){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,Dr,iQ);await M.removePromise(n)}}for(let[i,n]of e){if(v.contains(t,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,Dr,iQ),o=r.get(i)||new Map;await M.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await M.removePromise(v.join(s,a)),process.platform==="win32"&&await M.removePromise(v.join(s,Yr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Kle.default)(K.fromPortablePath(l),K.fromPortablePath(u),{createPwshFile:!1}):(await M.removePromise(u),await fM(l,u),v.contains(t,await M.realpathPromise(l))!==null&&await M.chmodPromise(l,493)))}}}var oQ=class extends yl{constructor(){super(...arguments);this.mode="loose"}makeInstaller(t){return new pM(t)}},pM=class extends qu{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(t){let i=new wr({baseFs:new Kn({libzip:await an(),maxOpenFiles:80,readOnlyArchives:!0})}),n=Ble(t,this.opts.project.cwd,i),{tree:s,errors:o}=rE(n,{pnpifyFs:!1,project:this.opts.project});if(!s){for(let{messageName:g,text:h}of o)this.opts.report.reportError(g,h);return}let a=new Map;t.fallbackPool=a;let l=(g,h)=>{let p=x.parseLocator(h.locator),d=x.stringifyIdent(p);d===g?a.set(g,p.reference):a.set(g,[d,p.reference])},c=v.join(this.opts.project.cwd,St.nodeModules),u=s.get(c);if(!(typeof u>"u")){if("target"in u)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let g of u.dirList){let h=v.join(c,g),p=s.get(h);if(typeof p>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in p)l(g,p);else for(let d of p.dirList){let m=v.join(h,d),y=s.get(m);if(typeof y>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in y)l(`${g}/${d}`,y);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var $ze={hooks:{cleanGlobalArtifacts:async r=>{let e=hM(r);await M.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:"BOOLEAN",default:!0}},linkers:[nQ,oQ]},e5e=$ze;var f1={};ct(f1,{default:()=>AVe,npmConfigUtils:()=>nr,npmHttpUtils:()=>xt,npmPublishUtils:()=>Cp});var _le=ve(zr());var cr="npm:";var xt={};ct(xt,{AuthType:()=>Zle,customPackageError:()=>r5e,del:()=>s5e,get:()=>mo,getIdentUrl:()=>bl,handleInvalidAuthenticationError:()=>Bl,post:()=>i5e,put:()=>n5e});var EM=ve(Um()),Xle=J("url");var nr={};ct(nr,{RegistryType:()=>Wle,getAuditRegistry:()=>t5e,getAuthConfiguration:()=>mM,getDefaultRegistry:()=>aQ,getPublishRegistry:()=>zle,getRegistryConfiguration:()=>Vle,getScopeConfiguration:()=>CM,getScopeRegistry:()=>fA,normalizeRegistry:()=>Co});var Wle=(i=>(i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry",i))(Wle||{});function Co(r){return r.replace(/\/$/,"")}function t5e(r,{configuration:e}){let t=e.get("npmAuditRegistry");return t!==null?Co(t):zle(r,{configuration:e})}function zle(r,{configuration:e}){var t;return(t=r.publishConfig)!=null&&t.registry?Co(r.publishConfig.registry):r.name?fA(r.name.scope,{configuration:e,type:"npmPublishRegistry"}):aQ({configuration:e,type:"npmPublishRegistry"})}function fA(r,{configuration:e,type:t="npmRegistryServer"}){let i=CM(r,{configuration:e});if(i===null)return aQ({configuration:e,type:t});let n=i.get(t);return n===null?aQ({configuration:e,type:t}):Co(n)}function aQ({configuration:r,type:e="npmRegistryServer"}){let t=r.get(e);return Co(t!==null?t:r.get("npmRegistryServer"))}function Vle(r,{configuration:e}){let t=e.get("npmRegistries"),i=Co(r),n=t.get(i);if(typeof n<"u")return n;let s=t.get(i.replace(/^[a-z]+:/,""));return typeof s<"u"?s:null}function CM(r,{configuration:e}){if(r===null)return null;let i=e.get("npmScopes").get(r);return i||null}function mM(r,{configuration:e,ident:t}){let i=t&&CM(t.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:Vle(r,{configuration:e})||e}var Zle=(n=>(n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH",n))(Zle||{});async function Bl(r,{attemptedAs:e,registry:t,headers:i,configuration:n}){var s,o;if(lQ(r))throw new rt(41,"Invalid OTP token");if(((s=r.originalError)==null?void 0:s.name)==="HTTPError"&&((o=r.originalError)==null?void 0:o.response.statusCode)===401)throw new rt(41,`Invalid authentication (${typeof e!="string"?`as ${await a5e(t,i,{configuration:n})}`:`attempted as ${e}`})`)}function r5e(r){var e;return((e=r.response)==null?void 0:e.statusCode)===404?"Package not found":null}function bl(r){return r.scope?`/@${r.scope}%2f${r.name}`:`/${r.name}`}async function mo(r,{configuration:e,headers:t,ident:i,authType:n,registry:s,...o}){if(i&&typeof s>"u"&&(s=fA(i.scope,{configuration:e})),i&&i.scope&&typeof n>"u"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let a=await AQ(s,{authType:n,configuration:e,ident:i});a&&(t={...t,authorization:a});try{return await Vt.get(r.charAt(0)==="/"?`${s}${r}`:r,{configuration:e,headers:t,...o})}catch(l){throw await Bl(l,{registry:s,configuration:e,headers:t}),l}}async function i5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.post(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g)||l)throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.post(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function n5e(r,e,{attemptedAs:t,configuration:i,headers:n,ident:s,authType:o=3,registry:a,otp:l,...c}){if(s&&typeof a>"u"&&(a=fA(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let u=await AQ(a,{authType:o,configuration:i,ident:s});u&&(n={...n,authorization:u}),l&&(n={...n,...op(l)});try{return await Vt.put(a+r,e,{configuration:i,headers:n,...c})}catch(g){if(!lQ(g))throw await Bl(g,{attemptedAs:t,registry:a,configuration:i,headers:n}),g;l=await IM(g,{configuration:i});let h={...n,...op(l)};try{return await Vt.put(`${a}${r}`,e,{configuration:i,headers:h,...c})}catch(p){throw await Bl(p,{attemptedAs:t,registry:a,configuration:i,headers:n}),p}}}async function s5e(r,{attemptedAs:e,configuration:t,headers:i,ident:n,authType:s=3,registry:o,otp:a,...l}){if(n&&typeof o>"u"&&(o=fA(n.scope,{configuration:t})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let c=await AQ(o,{authType:s,configuration:t,ident:n});c&&(i={...i,authorization:c}),a&&(i={...i,...op(a)});try{return await Vt.del(o+r,{configuration:t,headers:i,...l})}catch(u){if(!lQ(u)||a)throw await Bl(u,{attemptedAs:e,registry:o,configuration:t,headers:i}),u;a=await IM(u,{configuration:t});let g={...i,...op(a)};try{return await Vt.del(`${o}${r}`,{configuration:t,headers:g,...l})}catch(h){throw await Bl(h,{attemptedAs:e,registry:o,configuration:t,headers:i}),h}}}async function AQ(r,{authType:e=2,configuration:t,ident:i}){let n=mM(r,{configuration:t,ident:i}),s=o5e(n,e);if(!s)return null;let o=await t.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,r,{configuration:t,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new rt(33,"No authentication configured for request");return null}function o5e(r,e){switch(e){case 2:return r.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function a5e(r,e,{configuration:t}){var i;if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(i=(await Vt.get(new Xle.URL(`${r}/-/whoami`).href,{configuration:t,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function IM(r,{configuration:e}){var n;let t=(n=r.originalError)==null?void 0:n.response.headers["npm-notice"];if(t&&(await He.start({configuration:e,stdout:process.stdout,includeFooter:!1},async s=>{if(s.reportInfo(0,t.replace(/(https?:\/\/\S+)/g,$.pretty(e,"$1",$.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=t.match(/open (https?:\/\/\S+)/i);if(o&&ys.openUrl){let{openNow:a}=await(0,EM.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});a&&(await ys.openUrl(o[1])||(s.reportSeparator(),s.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` -`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:i}=await(0,EM.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),i}function lQ(r){var e,t;if(((e=r.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((t=r.originalError)==null?void 0:t.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch{return!1}}function op(r){return{["npm-otp"]:r}}var cQ=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i,params:n}=x.parseRange(e.reference);return!(!_le.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let{params:i}=x.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await mo(i.__archiveUrl,{configuration:t.project.configuration,ident:e});return await Ci.convertToZip(n,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}};var uQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!x.tryParseDescriptor(e.range.slice(cr.length),!0))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){let i=x.parseDescriptor(e.range.slice(cr.length),!0);return t.resolver.getResolutionDependencies(i,t)}async getCandidates(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return await i.resolver.getCandidates(n,t,i)}async getSatisfying(e,t,i){let n=x.parseDescriptor(e.range.slice(cr.length),!0);return i.resolver.getSatisfying(n,t,i)}resolve(e,t){throw new Error("Unreachable")}};var $le=ve(zr()),ece=J("url");var Ts=class{supports(e,t){if(!e.reference.startsWith(cr))return!1;let i=new ece.URL(e.reference);return!(!$le.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,t){let i;try{i=await mo(Ts.getLocatorUrl(e),{configuration:t.project.configuration,ident:e})}catch{i=await mo(Ts.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:t.project.configuration,ident:e})}return await Ci.convertToZip(i,{compressionLevel:t.project.configuration.get("compressionLevel"),prefixPath:x.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,t,{configuration:i}){let n=fA(e.scope,{configuration:i}),s=Ts.getLocatorUrl(e);return t=t.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t=t.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),t===n+s||t===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let t=Qt.clean(e.reference.slice(cr.length));if(t===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");return`${bl(e)}/-/${e.name}-${t}.tgz`}};var tce=ve(zr());var gQ=x.makeIdent(null,"node-gyp"),A5e=/\b(node-gyp|prebuild-install)\b/,fQ=class{supportsDescriptor(e,t){return e.range.startsWith(cr)?!!Qt.validRange(e.range.slice(cr.length)):!1}supportsLocator(e,t){if(!e.reference.startsWith(cr))return!1;let{selector:i}=x.parseRange(e.reference);return!!tce.default.valid(i)}shouldPersistResolution(e,t){return!0}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);let s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=me.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new Qt.SemVer(c);if(n.test(u))return u}catch{}return me.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=x.makeLocator(e,`${cr}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Ts.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:x.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,t,i){let n=Qt.validRange(e.range.slice(cr.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(cr.length)}`);return me.mapAndFilter(t,s=>{try{let{selector:o}=x.parseRange(s,{requireProtocol:cr}),a=new Qt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return me.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>x.makeLocator(e,s))}async resolve(e,t){let{selector:i}=x.parseRange(e.reference),n=Qt.clean(i);if(n===null)throw new rt(10,"The npm semver resolver got selected, but the version isn't semver");let s=await mo(bl(e),{configuration:t.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new rt(16,`Registry failed to return reference "${n}"`);let o=new ot;if(o.load(s.versions[n]),!o.dependencies.has(gQ.identHash)&&!o.peerDependencies.has(gQ.identHash)){for(let a of o.scripts.values())if(a.match(A5e)){o.dependencies.set(gQ.identHash,x.makeDescriptor(gQ,"latest")),t.report.reportWarningOnce(32,`${x.prettyLocator(t.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}if(typeof o.raw.deprecated=="string"&&o.raw.deprecated!==""){let a=x.prettyLocator(t.project.configuration,e),l=o.raw.deprecated.match(/\S/)?`${a} is deprecated: ${o.raw.deprecated}`:`${a} is deprecated`;t.report.reportWarningOnce(61,l)}return{...e,version:n,languageName:"node",linkType:"HARD",conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin}}};var hQ=class{supportsDescriptor(e,t){return!(!e.range.startsWith(cr)||!Rf.test(e.range.slice(cr.length)))}supportsLocator(e,t){return!1}shouldPersistResolution(e,t){throw new Error("Unreachable")}bindDescriptor(e,t,i){return e}getResolutionDependencies(e,t){return[]}async getCandidates(e,t,i){let n=e.range.slice(cr.length),s=await mo(bl(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new rt(15,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new rt(16,`Registry failed to return tag "${n}"`);let a=o[n],l=x.makeLocator(e,`${cr}${a}`),c=s.versions[a].dist.tarball;return Ts.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[x.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){throw new Error("Unreachable")}};var Cp={};ct(Cp,{getGitHead:()=>oVe,getPublishAccess:()=>que,getReadmeContent:()=>Jue,makePublishBody:()=>sVe});var A1={};ct(A1,{default:()=>H9e,packUtils:()=>Aa});var Aa={};ct(Aa,{genPackList:()=>OQ,genPackStream:()=>a1,genPackageManifest:()=>Rue,hasPackScripts:()=>s1,prepareForPack:()=>o1});var n1=ve(bn()),kue=ve(Sue()),Due=J("zlib"),k9e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],D9e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function s1(r){return!!(Yt.hasWorkspaceScript(r,"prepack")||Yt.hasWorkspaceScript(r,"postpack"))}async function o1(r,{report:e},t){await Yt.maybeExecuteWorkspaceLifecycleScript(r,"prepack",{report:e});try{let i=v.join(r.cwd,ot.fileName);await M.existsPromise(i)&&await r.manifest.loadFile(i,{baseFs:M}),await t()}finally{await Yt.maybeExecuteWorkspaceLifecycleScript(r,"postpack",{report:e})}}async function a1(r,e){var s,o;typeof e>"u"&&(e=await OQ(r));let t=new Set;for(let a of(o=(s=r.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)t.add(v.normalize(a));for(let a of r.manifest.bin.values())t.add(v.normalize(a));let i=kue.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(r.cwd,l),u=v.join("package",l),g=await M.lstatPromise(c),h={name:u,mtime:new Date(xr.SAFE_TIME*1e3)},p=t.has(l)?493:420,d,m,y=new Promise((S,P)=>{d=S,m=P}),B=S=>{S?m(S):d()};if(g.isFile()){let S;l==="package.json"?S=Buffer.from(JSON.stringify(await Rue(r),null,2)):S=await M.readFilePromise(c),i.entry({...h,mode:p,type:"file"},S,B)}else g.isSymbolicLink()?i.entry({...h,mode:p,type:"symlink",linkname:await M.readlinkPromise(c)},B):B(new Error(`Unsupported file type ${g.mode} for ${K.fromPortablePath(l)}`));await y}i.finalize()});let n=(0,Due.createGzip)();return i.pipe(n),n}async function Rue(r){let e=JSON.parse(JSON.stringify(r.manifest.raw));return await r.project.configuration.triggerHook(t=>t.beforeWorkspacePacking,r,e),e}async function OQ(r){var g,h,p,d,m,y,B,S;let e=r.project,t=e.configuration,i={accept:[],reject:[]};for(let P of D9e)i.reject.push(P);for(let P of k9e)i.accept.push(P);i.reject.push(t.get("rcFilename"));let n=P=>{if(P===null||!P.startsWith(`${r.cwd}/`))return;let F=v.relative(r.cwd,P),H=v.resolve(Te.root,F);i.reject.push(H)};n(v.resolve(e.cwd,t.get("lockfileFilename"))),n(t.get("cacheFolder")),n(t.get("globalFolder")),n(t.get("installStatePath")),n(t.get("virtualFolder")),n(t.get("yarnPath")),await t.triggerHook(P=>P.populateYarnPaths,e,P=>{n(P)});for(let P of e.workspaces){let F=v.relative(r.cwd,P.cwd);F!==""&&!F.match(/^(\.\.)?\//)&&i.reject.push(`/${F}`)}let s={accept:[],reject:[]},o=(h=(g=r.manifest.publishConfig)==null?void 0:g.main)!=null?h:r.manifest.main,a=(d=(p=r.manifest.publishConfig)==null?void 0:p.module)!=null?d:r.manifest.module,l=(y=(m=r.manifest.publishConfig)==null?void 0:m.browser)!=null?y:r.manifest.browser,c=(S=(B=r.manifest.publishConfig)==null?void 0:B.bin)!=null?S:r.manifest.bin;o!=null&&s.accept.push(v.resolve(Te.root,o)),a!=null&&s.accept.push(v.resolve(Te.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Te.root,l));for(let P of c.values())s.accept.push(v.resolve(Te.root,P));if(l instanceof Map)for(let[P,F]of l.entries())s.accept.push(v.resolve(Te.root,P)),typeof F=="string"&&s.accept.push(v.resolve(Te.root,F));let u=r.manifest.files!==null;if(u){s.reject.push("/*");for(let P of r.manifest.files)Fue(s.accept,P,{cwd:Te.root})}return await R9e(r.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function R9e(r,{hasExplicitFileList:e,globalList:t,ignoreList:i}){let n=[],s=new So(r),o=[[Te.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!xue(a,{globalList:t,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,h=!1;if(!e||a!==Te.root)for(let m of u)g=g||m===".gitignore",h=h||m===".npmignore";let p=h?await vue(s,a,".npmignore"):g?await vue(s,a,".gitignore"):null,d=p!==null?[p].concat(l):l;xue(a,{globalList:t,ignoreLists:l})&&(d=[...l,{accept:[],reject:["**/*"]}]);for(let m of u)o.push([v.resolve(a,m),d])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Te.root,a))}return n.sort()}async function vue(r,e,t){let i={accept:[],reject:[]},n=await r.readFilePromise(v.join(e,t),"utf8");for(let s of n.split(/\n/g))Fue(i.reject,s,{cwd:e});return i}function F9e(r,{cwd:e}){let t=r[0]==="!";return t&&(r=r.slice(1)),r.match(/\.{0,1}\//)&&(r=v.resolve(e,r)),t&&(r=`!${r}`),r}function Fue(r,e,{cwd:t}){let i=e.trim();i===""||i[0]==="#"||r.push(F9e(i,{cwd:t}))}function xue(r,{globalList:e,ignoreLists:t}){let i=LQ(r,e.accept);if(i!==0)return i===2;let n=LQ(r,e.reject);if(n!==0)return n===1;if(t!==null)for(let s of t){let o=LQ(r,s.accept);if(o!==0)return o===2;let a=LQ(r,s.reject);if(a!==0)return a===1}return!1}function LQ(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n][0]!=="!"?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n].slice(1)));return Pue(r,i)?2:Pue(r,t)?1:0}function Pue(r,e){let t=e,i=[];for(let n=0;n<e.length;++n)e[n].includes("/")?t!==e&&t.push(e[n]):(t===e&&(t=e.slice(0,n)),i.push(e[n]));return!!(n1.default.isMatch(r,t,{dot:!0,nocase:!0})||n1.default.isMatch(r,i,{dot:!0,basename:!0,nocase:!0}))}var Zu=class extends xe{constructor(){super(...arguments);this.installIfNeeded=z.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"});this.dryRun=z.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.out=z.String("-o,--out",{description:"Create the archive at the specified path"});this.filename=z.String("--filename",{hidden:!0})}async execute(){var l;let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await s1(n)&&(this.installIfNeeded?await i.install({cache:await Dt.find(t),report:new $r}):await i.restoreInstallState());let s=(l=this.out)!=null?l:this.filename,o=typeof s<"u"?v.resolve(this.context.cwd,N9e(s,{workspace:n})):v.resolve(n.cwd,"package.tgz");return(await He.start({configuration:t,stdout:this.context.stdout,json:this.json},async c=>{await o1(n,{report:c},async()=>{c.reportJson({base:K.fromPortablePath(n.cwd)});let u=await OQ(n);for(let g of u)c.reportInfo(null,K.fromPortablePath(g)),c.reportJson({location:K.fromPortablePath(g)});if(!this.dryRun){let g=await a1(n,u),h=M.createWriteStream(o);g.pipe(h),await new Promise(p=>{h.on("finish",p)})}}),this.dryRun||(c.reportInfo(0,`Package archive generated in ${$.pretty(t,o,$.Type.PATH)}`),c.reportJson({output:K.fromPortablePath(o)}))})).exitCode()}};Zu.paths=[["pack"]],Zu.usage=Qe.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function N9e(r,{workspace:e}){let t=r.replace("%s",T9e(e)).replace("%v",L9e(e));return K.toPortablePath(t)}function T9e(r){return r.manifest.name!==null?x.slugifyIdent(r.manifest.name):"package"}function L9e(r){return r.manifest.version!==null?r.manifest.version:"unknown"}var O9e=["dependencies","devDependencies","peerDependencies"],M9e="workspace:",K9e=(r,e)=>{var i,n;e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let t=r.project;for(let s of O9e)for(let o of r.manifest.getForScope(s).values()){let a=t.tryWorkspaceByDescriptor(o),l=x.parseRange(o.range);if(l.protocol===M9e)if(a===null){if(t.tryWorkspaceByIdent(o)===null)throw new rt(21,`${x.prettyDescriptor(t.configuration,o)}: No local workspace found for this range`)}else{let c;x.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector;let u=s==="dependencies"?x.makeDescriptor(o,"unknown"):null,g=u!==null&&r.manifest.ensureDependencyMeta(u).optional?"optionalDependencies":s;e[g][x.stringifyIdent(o)]=c}}},U9e={hooks:{beforeWorkspacePacking:K9e},commands:[Zu]},H9e=U9e;var jue=J("crypto"),Gue=ve(Hue()),Yue=J("url");async function sVe(r,e,{access:t,tag:i,registry:n,gitHead:s}){let o=r.manifest.name,a=r.manifest.version,l=x.stringifyIdent(o),c=(0,jue.createHash)("sha1").update(e).digest("hex"),u=Gue.default.fromData(e).toString(),g=t!=null?t:que(r,o),h=await Jue(r),p=await Aa.genPackageManifest(r),d=`${l}-${a}.tgz`,m=new Yue.URL(`${Co(n)}/${l}/-/${d}`);return{_id:l,_attachments:{[d]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:l,access:g,["dist-tags"]:{[i]:a},versions:{[a]:{...p,_id:`${l}@${a}`,name:l,version:a,gitHead:s,dist:{shasum:c,integrity:u,tarball:m.toString()}}},readme:h}}async function oVe(r){try{let{stdout:e}=await pr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:r});return e.trim()===""?void 0:e.trim()}catch{return}}function que(r,e){let t=r.project.configuration;return r.manifest.publishConfig&&typeof r.manifest.publishConfig.access=="string"?r.manifest.publishConfig.access:t.get("npmPublishAccess")!==null?t.get("npmPublishAccess"):e.scope?"restricted":"public"}async function Jue(r){let e=K.toPortablePath(`${r.cwd}/README.md`),t=r.manifest.name,n=`# ${x.stringifyIdent(t)} -`;try{n=await M.readFilePromise(e,"utf8")}catch(s){if(s.code==="ENOENT")return n;throw s}return n}var g1={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},Wue={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},aVe={configuration:{...g1,...Wue,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...g1,...Wue}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:Co,valueDefinition:{description:"",type:"SHAPE",properties:{...g1}}}},fetchers:[cQ,Ts],resolvers:[uQ,fQ,hQ]},AVe=aVe;var C1={};ct(C1,{default:()=>EVe});var DE=ve(bn());As();var MQ=(i=>(i.All="all",i.Production="production",i.Development="development",i))(MQ||{}),KQ=(s=>(s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical",s))(KQ||{});var kE=["info","low","moderate","high","critical"];function Vue(r,e){let t=[],i=new Set,n=o=>{i.has(o)||(i.add(o),t.push(o))};for(let o of e)n(o);let s=new Set;for(;t.length>0;){let o=t.shift(),a=r.storedResolutions.get(o);if(typeof a>"u")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=r.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function lVe(r,e){return new Set([...r].filter(t=>!e.has(t)))}function cVe(r,e,{all:t}){let i=t?r.workspaces:[e],n=i.map(h=>h.manifest),s=new Set(n.map(h=>[...h.dependencies].map(([p,d])=>p)).flat()),o=new Set(n.map(h=>[...h.devDependencies].map(([p,d])=>p)).flat()),a=i.map(h=>[...h.dependencies.values()]).flat(),l=a.filter(h=>s.has(h.identHash)).map(h=>h.descriptorHash),c=a.filter(h=>o.has(h.identHash)).map(h=>h.descriptorHash),u=Vue(r,l),g=Vue(r,c);return lVe(g,u)}function Xue(r){let e={};for(let t of r)e[x.stringifyIdent(t)]=x.parseRange(t.range).selector;return e}function Zue(r){if(typeof r>"u")return new Set(kE);let e=kE.indexOf(r),t=kE.slice(e);return new Set(t)}function uVe(r,e){let t=Zue(e),i={};for(let n of t)i[n]=r[n];return i}function _ue(r,e){var i;let t=uVe(r,e);for(let n of Object.keys(t))if((i=t[n])!=null?i:0>0)return!0;return!1}function $ue(r,e){var s;let t={},i={children:t},n=Object.values(r.advisories);if(e!=null){let o=Zue(e);n=n.filter(a=>o.has(a.severity))}for(let o of me.sortMap(n,a=>a.module_name))t[o.module_name]={label:o.module_name,value:$.tuple($.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{ID:{label:"ID",value:$.tuple($.Type.NUMBER,o.id)},Issue:{label:"Issue",value:$.tuple($.Type.NO_HINT,o.title)},URL:{label:"URL",value:$.tuple($.Type.URL,o.url)},Severity:{label:"Severity",value:$.tuple($.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:$.tuple($.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:$.tuple($.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:$.tuple($.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:$.tuple($.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function ege(r,e,{all:t,environment:i}){let n=t?r.workspaces:[e],s=["all","production"].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=["all","development"].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return Xue([...o,...l].filter(c=>x.parseRange(c.range).protocol===null))}function tge(r,e,{all:t}){var s;let i=cVe(r,e,{all:t}),n={};for(let o of r.storedPackages.values())n[x.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:Xue(o.dependencies.values()),dev:i.has(x.convertLocatorToDescriptor(o).descriptorHash)};return n}var eg=class extends xe{constructor(){super(...arguments);this.all=z.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=z.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=z.String("--environment","all",{description:"Which environments to cover",validator:Zi(MQ)});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=z.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Zi(KQ)});this.excludes=z.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=z.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=ege(i,n,{all:this.all,environment:this.environment}),o=tge(i,n,{all:this.all});if(!this.recursive)for(let d of Object.keys(o))Object.prototype.hasOwnProperty.call(s,d)?o[d].requires={}:delete o[d];let a=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes]));if(a){for(let d of Object.keys(s))DE.default.isMatch(d,a)&&delete s[d];for(let d of Object.keys(o))DE.default.isMatch(d,a)&&delete o[d];for(let d of Object.keys(o))for(let m of Object.keys(o[d].requires))DE.default.isMatch(m,a)&&delete o[d].requires[m]}let l={requires:s,dependencies:o},c=nr.getAuditRegistry(n.manifest,{configuration:t}),u,g=await ta.start({configuration:t,stdout:this.context.stdout},async()=>{u=await xt.post("/-/npm/v1/security/audits/quick",l,{authType:xt.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:c})});if(g.hasErrors())return g.exitCode();let h=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores]));if(h){for(let d of Object.keys(u.advisories))if(DE.default.isMatch(d,h)){let m=u.advisories[d],y=0;m.findings.forEach(B=>y+=B.paths.length),u.metadata.vulnerabilities[m.severity]-=y,delete u.advisories[d]}}let p=_ue(u.metadata.vulnerabilities,this.severity);return!this.json&&p?(es.emitTree($ue(u,this.severity),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async d=>{d.reportJson(u),p||d.reportInfo(1,"No audit suggestions")}),p?1:0)}};eg.paths=[["npm","audit"]],eg.usage=Qe.Usage({description:"perform a vulnerability audit against the installed packages",details:` - This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). - - For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. - - Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${kE.map(t=>`\`${t}\``).join(", ")}. - - If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. - - If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. - - If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. - - To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why <package>\` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});var h1=ve(zr()),p1=J("util"),tg=class extends xe{constructor(){super(...arguments);this.fields=z.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=z.Rest()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i}=await Ge.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,s=[],o=!1,a=await He.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async l=>{for(let c of this.packages){let u;if(c==="."){let F=i.topLevelWorkspace;if(!F.manifest.name)throw new we(`Missing ${$.pretty(t,"name",$.Type.CODE)} field in ${K.fromPortablePath(v.join(F.cwd,St.manifest))}`);u=x.makeDescriptor(F.manifest.name,"unknown")}else u=x.parseDescriptor(c);let g=xt.getIdentUrl(u),h=d1(await xt.get(g,{configuration:t,ident:u,jsonResponse:!0,customErrorMessage:xt.customPackageError})),p=Object.keys(h.versions).sort(h1.default.compareLoose),m=h["dist-tags"].latest||p[p.length-1],y=Qt.validRange(u.range);if(y){let F=h1.default.maxSatisfying(p,y);F!==null?m=F:(l.reportWarning(0,`Unmet range ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0)}else Object.prototype.hasOwnProperty.call(h["dist-tags"],u.range)?m=h["dist-tags"][u.range]:u.range!=="unknown"&&(l.reportWarning(0,`Unknown tag ${x.prettyRange(t,u.range)}; falling back to the latest version`),o=!0);let B=h.versions[m],S={...h,...B,version:m,versions:p},P;if(n!==null){P={};for(let F of n){let H=S[F];if(typeof H<"u")P[F]=H;else{l.reportWarning(1,`The ${$.pretty(t,F,$.Type.CODE)} field doesn't exist inside ${x.prettyIdent(t,u)}'s information`),o=!0;continue}}}else this.json||(delete S.dist,delete S.readme,delete S.users),P=S;l.reportJson(P),this.json||s.push(P)}});p1.inspect.styles.name="cyan";for(let l of s)(l!==s[0]||o)&&this.context.stdout.write(` -`),this.context.stdout.write(`${(0,p1.inspect)(l,{depth:1/0,colors:!0,compact:!1})} -`);return a.exitCode()}};tg.paths=[["npm","info"]],tg.usage=Qe.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function d1(r){if(Array.isArray(r)){let e=[];for(let t of r)t=d1(t),t&&e.push(t);return e}else if(typeof r=="object"&&r!==null){let e={};for(let t of Object.keys(r)){if(t.startsWith("_"))continue;let i=d1(r[t]);i&&(e[t]=i)}return e}else return r||null}var rge=ve(Um()),rg=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=z.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await He.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async s=>{let o=await pVe({configuration:t,registry:i,report:s,stdin:this.context.stdin,stdout:this.context.stdout}),a=await fVe(i,o,t);return await hVe(i,a,{alwaysAuth:this.alwaysAuth,scope:this.scope}),s.reportInfo(0,"Successfully logged in")})).exitCode()}};rg.paths=[["npm","login"]],rg.usage=Qe.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function UQ({scope:r,publish:e,configuration:t,cwd:i}){return r&&e?nr.getScopeRegistry(r,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):r?nr.getScopeRegistry(r,{configuration:t}):e?nr.getPublishRegistry((await Hh(t,i)).manifest,{configuration:t}):nr.getDefaultRegistry({configuration:t})}async function fVe(r,e,t){var u,g;let i=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,n={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},s={attemptedAs:e.name,configuration:t,registry:r,jsonResponse:!0,authType:xt.AuthType.NO_AUTH};try{return(await xt.put(i,n,s)).token}catch(h){if(!(((u=h.originalError)==null?void 0:u.name)==="HTTPError"&&((g=h.originalError)==null?void 0:g.response.statusCode)===409))throw h}let o={...s,authType:xt.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},a=await xt.get(i,o);for(let[h,p]of Object.entries(a))(!n[h]||h==="roles")&&(n[h]=p);let l=`${i}/-rev/${n._rev}`;return(await xt.put(l,n,o)).token}async function hVe(r,e,{alwaysAuth:t,scope:i}){let n=o=>a=>{let l=me.isIndexableObject(a)?a:{},c=l[o],u=me.isIndexableObject(c)?c:{};return{...l,[o]:{...u,...t!==void 0?{npmAlwaysAuth:t}:{},npmAuthToken:e}}},s=i?{npmScopes:n(i)}:{npmRegistries:n(r)};return await Ee.updateHomeConfiguration(s)}async function pVe({configuration:r,registry:e,report:t,stdin:i,stdout:n}){t.reportInfo(0,`Logging in to ${$.pretty(r,e,$.Type.URL)}`);let s=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(t.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),s=!0),t.reportSeparator(),process.env.YARN_IS_TEST_ENV)return{name:process.env.YARN_INJECT_NPM_USER||"",password:process.env.YARN_INJECT_NPM_PASSWORD||""};let o=await(0,rge.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n},{type:"password",name:"password",message:s?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:i,stdout:n}]);return t.reportSeparator(),o}var mp=new Set(["npmAuthIdent","npmAuthToken"]),ig=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=z.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i=async()=>{var c;let s=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await Ee.find(this.context.cwd,this.context.plugins),a=x.makeIdent((c=this.scope)!=null?c:null,"pkg");return!nr.getAuthConfiguration(s,{configuration:o,ident:a}).get("npmAuthToken")};return(await He.start({configuration:t,stdout:this.context.stdout},async s=>{if(this.all&&(await CVe(),s.reportInfo(0,"Successfully logged out from everything")),this.scope){await ige("npmScopes",this.scope),await i()?s.reportInfo(0,`Successfully logged out from ${this.scope}`):s.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await UQ({configuration:t,cwd:this.context.cwd,publish:this.publish});await ige("npmRegistries",o),await i()?s.reportInfo(0,`Successfully logged out from ${o}`):s.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};ig.paths=[["npm","logout"]],ig.usage=Qe.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function dVe(r,e){let t=r[e];if(!me.isIndexableObject(t))return!1;let i=new Set(Object.keys(t));if([...mp].every(s=>!i.has(s)))return!1;for(let s of mp)i.delete(s);if(i.size===0)return r[e]=void 0,!0;let n={...t};for(let s of mp)delete n[s];return r[e]=n,!0}async function CVe(){let r=e=>{let t=!1,i=me.isIndexableObject(e)?{...e}:{};i.npmAuthToken&&(delete i.npmAuthToken,t=!0);for(let n of Object.keys(i))dVe(i,n)&&(t=!0);if(Object.keys(i).length!==0)return t?i:e};return await Ee.updateHomeConfiguration({npmRegistries:r,npmScopes:r})}async function ige(r,e){return await Ee.updateHomeConfiguration({[r]:t=>{let i=me.isIndexableObject(t)?t:{};if(!Object.prototype.hasOwnProperty.call(i,e))return t;let n=i[e],s=me.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...mp].every(l=>!o.has(l)))return t;for(let l of mp)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:{...i,[e]:void 0};let a={};for(let l of mp)a[l]=void 0;return{...i,[e]:{...s,...a}}}})}var ng=class extends xe{constructor(){super(...arguments);this.access=z.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=z.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=z.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=z.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);if(n.manifest.private)throw new we("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new we("Workspaces must have valid names and versions to be published on an external registry");await i.restoreInstallState();let s=n.manifest.name,o=n.manifest.version,a=nr.getPublishRegistry(n.manifest,{configuration:t});return(await He.start({configuration:t,stdout:this.context.stdout},async c=>{var u,g;if(this.tolerateRepublish)try{let h=await xt.get(xt.getIdentUrl(s),{configuration:t,registry:a,ident:s,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(h,"versions"))throw new rt(15,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(h.versions,o)){c.reportWarning(0,`Registry already knows about version ${o}; skipping.`);return}}catch(h){if(((g=(u=h.originalError)==null?void 0:u.response)==null?void 0:g.statusCode)!==404)throw h}await Yt.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:c}),await Aa.prepareForPack(n,{report:c},async()=>{let h=await Aa.genPackList(n);for(let B of h)c.reportInfo(null,B);let p=await Aa.genPackStream(n,h),d=await me.bufferStream(p),m=await Cp.getGitHead(n.cwd),y=await Cp.makePublishBody(n,d,{access:this.access,tag:this.tag,registry:a,gitHead:m});await xt.put(xt.getIdentUrl(s),y,{configuration:t,registry:a,ident:s,otp:this.otp,jsonResponse:!0})}),c.reportInfo(0,"Package archive published")})).exitCode()}};ng.paths=[["npm","publish"]],ng.usage=Qe.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var nge=ve(zr());var sg=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String({required:!1})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s;if(typeof this.package<"u")s=x.parseIdent(this.package);else{if(!n)throw new lt(i.cwd,this.context.cwd);if(!n.manifest.name)throw new we(`Missing 'name' field in ${K.fromPortablePath(v.join(n.cwd,St.manifest))}`);s=n.manifest.name}let o=await RE(s,t),l={children:me.sortMap(Object.entries(o),([c])=>c).map(([c,u])=>({value:$.tuple($.Type.RESOLUTION,{descriptor:x.makeDescriptor(s,c),locator:x.makeLocator(s,u)})}))};return es.emitTree(l,{configuration:t,json:this.json,stdout:this.context.stdout})}};sg.paths=[["npm","tag","list"]],sg.usage=Qe.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` - This command will list all tags of a package from the npm registry. - - If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function RE(r,e){let t=`/-/package${xt.getIdentUrl(r)}/dist-tags`;return xt.get(t,{configuration:e,ident:r,jsonResponse:!0,customErrorMessage:xt.customPackageError})}var og=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseDescriptor(this.package,!0),o=s.range;if(!nge.default.valid(o))throw new we(`The range ${$.pretty(t,s.range,$.Type.RANGE)} must be a valid semver version`);let a=nr.getPublishRegistry(n.manifest,{configuration:t}),l=$.pretty(t,s,$.Type.IDENT),c=$.pretty(t,o,$.Type.RANGE),u=$.pretty(t,this.tag,$.Type.CODE);return(await He.start({configuration:t,stdout:this.context.stdout},async h=>{let p=await RE(s,t);Object.prototype.hasOwnProperty.call(p,this.tag)&&p[this.tag]===o&&h.reportWarning(0,`Tag ${u} is already set to version ${c}`);let d=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.put(d,o,{configuration:t,registry:a,ident:s,jsonRequest:!0,jsonResponse:!0}),h.reportInfo(0,`Tag ${u} added to version ${c} of package ${l}`)})).exitCode()}};og.paths=[["npm","tag","add"]],og.usage=Qe.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` - This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var ag=class extends xe{constructor(){super(...arguments);this.package=z.String();this.tag=z.String()}async execute(){if(this.tag==="latest")throw new we("The 'latest' tag cannot be removed.");let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);let s=x.parseIdent(this.package),o=nr.getPublishRegistry(n.manifest,{configuration:t}),a=$.pretty(t,this.tag,$.Type.CODE),l=$.pretty(t,s,$.Type.IDENT),c=await RE(s,t);if(!Object.prototype.hasOwnProperty.call(c,this.tag))throw new we(`${a} is not a tag of package ${l}`);return(await He.start({configuration:t,stdout:this.context.stdout},async g=>{let h=`/-/package${xt.getIdentUrl(s)}/dist-tags/${encodeURIComponent(this.tag)}`;await xt.del(h,{configuration:t,registry:o,ident:s,jsonResponse:!0}),g.reportInfo(0,`Tag ${a} removed from package ${l}`)})).exitCode()}};ag.paths=[["npm","tag","remove"]],ag.usage=Qe.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` - This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Ag=class extends xe{constructor(){super(...arguments);this.scope=z.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=z.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),i;return this.scope&&this.publish?i=nr.getScopeRegistry(this.scope,{configuration:t,type:nr.RegistryType.PUBLISH_REGISTRY}):this.scope?i=nr.getScopeRegistry(this.scope,{configuration:t}):this.publish?i=nr.getPublishRegistry((await Hh(t,this.context.cwd)).manifest,{configuration:t}):i=nr.getDefaultRegistry({configuration:t}),(await He.start({configuration:t,stdout:this.context.stdout},async s=>{var a,l;let o;try{o=await xt.get("/-/whoami",{configuration:t,registry:i,authType:xt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?x.makeIdent(this.scope,""):void 0})}catch(c){if(((a=c.response)==null?void 0:a.statusCode)===401||((l=c.response)==null?void 0:l.statusCode)===403){s.reportError(41,"Authentication failed - your credentials may have expired");return}else throw c}s.reportInfo(0,o.username)})).exitCode()}};Ag.paths=[["npm","whoami"]],Ag.usage=Qe.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var mVe={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[eg,tg,rg,ig,ng,og,sg,ag,Ag]},EVe=mVe;var S1={};ct(S1,{default:()=>TVe,patchUtils:()=>lg});var lg={};ct(lg,{applyPatchFile:()=>jQ,diffFolders:()=>b1,ensureUnpatchedDescriptor:()=>E1,extractPackageToDisk:()=>B1,extractPatchFlags:()=>uge,isParentRequired:()=>w1,loadPatchFiles:()=>LE,makeDescriptor:()=>I1,makeLocator:()=>y1,makePatchHash:()=>Q1,parseDescriptor:()=>NE,parseLocator:()=>TE,parsePatchFile:()=>FE});var IVe=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Ep(r){return v.relative(Te.root,v.resolve(Te.root,K.toPortablePath(r)))}function yVe(r){let e=r.trim().match(IVe);if(!e)throw new Error(`Bad header line: '${r}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var wVe=420,BVe=493;var sge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),bVe=r=>({header:yVe(r),parts:[]}),QVe={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function SVe(r){let e=[],t=sge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),t.hunks.push(n),n=null)}function a(){o(),e.push(t),t=sge()}for(let l=0;l<r.length;l++){let c=r[l];if(i==="parsing header")if(c.startsWith("@@"))i="parsing hunks",t.hunks=[],l-=1;else if(c.startsWith("diff --git ")){t&&t.diffLineFromPath&&a();let u=c.match(/^diff --git a\/(.*?) b\/(.*?)\s*$/);if(!u)throw new Error(`Bad diff line: ${c}`);t.diffLineFromPath=u[1],t.diffLineToPath=u[2]}else if(c.startsWith("old mode "))t.oldMode=c.slice(9).trim();else if(c.startsWith("new mode "))t.newMode=c.slice(9).trim();else if(c.startsWith("deleted file mode "))t.deletedFileMode=c.slice(18).trim();else if(c.startsWith("new file mode "))t.newFileMode=c.slice(14).trim();else if(c.startsWith("rename from "))t.renameFrom=c.slice(12).trim();else if(c.startsWith("rename to "))t.renameTo=c.slice(10).trim();else if(c.startsWith("index ")){let u=c.match(/(\w+)\.\.(\w+)/);if(!u)continue;t.beforeHash=u[1],t.afterHash=u[2]}else c.startsWith("semver exclusivity ")?t.semverExclusivity=c.slice(19).trim():c.startsWith("--- ")?t.fromPath=c.slice(6).trim():c.startsWith("+++ ")&&(t.toPath=c.slice(6).trim());else{let u=QVe[c[0]]||null;switch(u){case"header":o(),n=bVe(c);break;case null:i="parsing header",a(),l-=1;break;case"pragma":{if(!c.startsWith("\\ No newline at end of file"))throw new Error(`Unrecognized pragma in patch file: ${c}`);if(!s)throw new Error("Bad parser state: No newline at EOF pragma encountered without context");s.noNewlineAtEndOfFile=!0}break;case"context":case"deletion":case"insertion":{if(!n)throw new Error("Bad parser state: Hunk lines encountered before hunk header");s&&s.type!==u&&(n.parts.push(s),s=null),s||(s={type:u,lines:[],noNewlineAtEndOfFile:!1}),s.lines.push(c.slice(1))}break;default:me.assertNever(u);break}}}a();for(let{hunks:l}of e)if(l)for(let c of l)xVe(c);return e}function vVe(r){let e=[];for(let t of r){let{semverExclusivity:i,diffLineFromPath:n,diffLineToPath:s,oldMode:o,newMode:a,deletedFileMode:l,newFileMode:c,renameFrom:u,renameTo:g,beforeHash:h,afterHash:p,fromPath:d,toPath:m,hunks:y}=t,B=u?"rename":l?"file deletion":c?"file creation":y&&y.length>0?"patch":"mode change",S=null;switch(B){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Ep(u),toPath:Ep(g)}),S=g}break;case"file deletion":{let P=n||d;if(!P)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:HQ(l),hash:h})}break;case"file creation":{let P=s||m;if(!P)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:y&&y[0]||null,path:Ep(P),mode:HQ(c),hash:p})}break;case"patch":case"mode change":S=m||s;break;default:me.assertNever(B);break}S&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Ep(S),oldMode:HQ(o),newMode:HQ(a)}),S&&y&&y.length&&e.push({type:"patch",semverExclusivity:i,path:Ep(S),hunks:y,beforeHash:h,afterHash:p})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function HQ(r){let e=parseInt(r,8)&511;if(e!==wVe&&e!==BVe)throw new Error(`Unexpected file mode string: ${r}`);return e}function FE(r){let e=r.split(/\n/g);return e[e.length-1]===""&&e.pop(),vVe(SVe(e))}function xVe(r){let e=0,t=0;for(let{type:i,lines:n}of r.parts)switch(i){case"context":t+=n.length,e+=n.length;break;case"deletion":e+=n.length;break;case"insertion":t+=n.length;break;default:me.assertNever(i);break}if(e!==r.header.original.length||t!==r.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(r.header.original.length)} ${i(r.header.patched.length)} @@, got @@ ${i(e)} ${i(t)} @@)`)}}var Ip=class extends Error{constructor(t,i){super(`Cannot apply hunk #${t+1}`);this.hunk=i}};async function yp(r,e,t){let i=await r.lstatPromise(e),n=await t();if(typeof n<"u"&&(e=n),r.lutimesPromise)await r.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await r.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function jQ(r,{baseFs:e=new Zt,dryRun:t=!1,version:i=null}={}){for(let n of r)if(!(n.semverExclusivity!==null&&i!==null&&!Qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(t){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await yp(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(t){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await yp(e,v.dirname(n.fromPath),async()=>{await yp(e,v.dirname(n.toPath),async()=>{await yp(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(t){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` -`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[xr.SAFE_TIME,xr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,xr.SAFE_TIME,xr.SAFE_TIME)}break;case"patch":await yp(e,n.path,async()=>{await DVe(n,{baseFs:e,dryRun:t})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(oge(n.newMode)!==oge(o))continue;await yp(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:me.assertNever(n);break}}function oge(r){return(r&64)>0}function age(r){return r.replace(/\s+$/,"")}function kVe(r,e){return age(r)===age(e)}async function DVe({hunks:r,path:e},{baseFs:t,dryRun:i=!1}){let n=await t.statSync(e).mode,o=(await t.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of r){let h=Math.max(c,g.header.patched.start+l),p=Math.max(0,h-c),d=Math.max(0,o.length-h-g.header.original.length),m=Math.max(p,d),y=0,B=0,S=null;for(;y<=m;){if(y<=p&&(B=h-y,S=Age(g,o,B),S!==null)){y=-y;break}if(y<=d&&(B=h+y,S=Age(g,o,B),S!==null))break;y+=1}if(S===null)throw new Ip(r.indexOf(g),g);a.push(S),l+=y,c=B+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let h of g)switch(h.type){case"splice":{let p=h.index+u;o.splice(p,h.numToDelete,...h.linesToInsert),u+=h.linesToInsert.length-h.numToDelete}break;case"pop":o.pop();break;case"push":o.push(h.line);break;default:me.assertNever(h);break}await t.writeFilePromise(e,o.join(` -`),{mode:n})}function Age(r,e,t){let i=[];for(let n of r.parts)switch(n.type){case"context":case"deletion":{for(let s of n.lines){let o=e[t];if(o==null||!kVe(o,s))return null;t+=1}n.type==="deletion"&&(i.push({type:"splice",index:t-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case"insertion":i.push({type:"splice",index:t,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:me.assertNever(n.type);break}return i}var FVe=/^builtin<([^>]+)>$/;function m1(r,e){let{source:t,selector:i,params:n}=x.parseRange(r);if(t===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>K.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?x.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(t);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function NE(r){let{sourceItem:e,...t}=m1(r.range,x.parseDescriptor);return{...t,sourceDescriptor:e}}function TE(r){let{sourceItem:e,...t}=m1(r.reference,x.parseLocator);return{...t,sourceLocator:e}}function E1(r){if(!r.range.startsWith("patch:"))return r;let{sourceItem:e}=m1(r.range,x.parseDescriptor);return e}function lge({parentLocator:r,sourceItem:e,patchPaths:t,sourceVersion:i,patchHash:n},s){let o=r!==null?{locator:x.stringifyLocator(r)}:{},a=typeof i<"u"?{version:i}:{},l=typeof n<"u"?{hash:n}:{};return x.makeRange({protocol:"patch:",source:s(e),selector:t.join("&"),params:{...a,...l,...o}})}function I1(r,{parentLocator:e,sourceDescriptor:t,patchPaths:i}){return x.makeDescriptor(r,lge({parentLocator:e,sourceItem:t,patchPaths:i},x.stringifyDescriptor))}function y1(r,{parentLocator:e,sourcePackage:t,patchPaths:i,patchHash:n}){return x.makeLocator(r,lge({parentLocator:e,sourceItem:t,sourceVersion:t.version,patchPaths:i,patchHash:n},x.stringifyLocator))}function cge({onAbsolute:r,onRelative:e,onBuiltin:t},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(FVe);return s!==null?t(s[1]):v.isAbsolute(i)?r(i):e(i)}function uge(r){let e=r.startsWith("~");return e&&(r=r.slice(1)),{optional:e}}function w1(r){return cge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},r)}async function LE(r,e,t){let i=r!==null?await t.fetcher.fetch(r,t):null,n=i&&i.localPath?{packageFs:new jt(Te.root),prefixPath:v.relative(Te.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await me.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=uge(o),l=await cge({onAbsolute:async()=>await M.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await t.project.configuration.firstHook(u=>u.getBuiltinPatch,t.project,c)},o);return{...a,source:l}})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function B1(r,{cache:e,project:t}){let i=t.storedPackages.get(r.locatorHash);if(typeof i>"u")throw new Error("Assertion failed: Expected the package to be registered");let n=t.storedChecksums,s=new $r,o=t.configuration.makeFetcher(),a=await o.fetch(r,{cache:e,project:t,fetcher:o,checksums:n,report:s}),l=await M.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([M.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),M.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),M.writeJsonPromise(g,{locator:x.stringifyLocator(r),version:i.version})]),M.detachTemp(l),u}async function b1(r,e){let t=K.fromPortablePath(r).replace(/\\/g,"/"),i=K.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await pr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",t,i],{cwd:K.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. -The following error was reported by 'git': -${s}`);let o=t.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${me.escapeRegExp(`/${o(t)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${me.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(me.escapeRegExp(`${t}/`),"g"),"").replace(new RegExp(me.escapeRegExp(`${i}/`),"g"),"")}function Q1(r,e){let t=[];for(let{source:i}of r){if(i===null)continue;let n=FE(i);for(let s of n){let{semverExclusivity:o,...a}=s;o!==null&&e!==null&&!Qt.satisfiesWithPrereleases(e,o)||t.push(JSON.stringify(a))}}return Ai.makeHash(`${3}`,...t).slice(0,6)}function gge(r,{configuration:e,report:t}){for(let i of r.parts)for(let n of i.lines)switch(i.type){case"context":t.reportInfo(null,` ${$.pretty(e,n,"grey")}`);break;case"deletion":t.reportError(28,`- ${$.pretty(e,n,$.Type.REMOVED)}`);break;case"insertion":t.reportError(28,`+ ${$.pretty(e,n,$.Type.ADDED)}`);break;default:me.assertNever(i.type)}}var GQ=class{supports(e,t){return!!e.reference.startsWith("patch:")}getLocalPath(e,t){return null}async fetch(e,t){let i=t.checksums.get(e.locatorHash)||null,[n,s,o]=await t.cache.fetchPackageFromCache(e,i,{onHit:()=>t.report.reportCacheHit(e),onMiss:()=>t.report.reportCacheMiss(e,`${x.prettyLocator(t.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,t),skipIntegrityCheck:t.skipIntegrityCheck,...t.cacheOptions});return{packageFs:n,releaseFs:s,prefixPath:x.getIdentVendorPath(e),localPath:this.getLocalPath(e,t),checksum:o}}async patchPackage(e,t){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=TE(e),a=await LE(i,o,t),l=await M.mktempPromise(),c=v.join(l,"current.zip"),u=await t.fetcher.fetch(n,t),g=x.getIdentVendorPath(e),h=await an(),p=new qr(c,{libzip:h,create:!0,level:t.project.configuration.get("compressionLevel")});await me.releaseAfterUseAsync(async()=>{await p.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),p.saveAndClose();for(let{source:d,optional:m}of a){if(d===null)continue;let y=new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")}),B=new jt(v.resolve(Te.root,g),{baseFs:y});try{await jQ(FE(d),{baseFs:B,version:s})}catch(S){if(!(S instanceof Ip))throw S;let P=t.project.configuration.get("enableInlineHunks"),F=!P&&!m?" (set enableInlineHunks for details)":"",H=`${x.prettyLocator(t.project.configuration,e)}: ${S.message}${F}`,q=_=>{!P||gge(S.hunk,{configuration:t.project.configuration,report:_})};if(y.discardAndClose(),m){t.report.reportWarningOnce(66,H,{reportExtra:q});continue}else throw new rt(66,H,q)}y.saveAndClose()}return new qr(c,{libzip:h,level:t.project.configuration.get("compressionLevel")})}};var YQ=class{supportsDescriptor(e,t){return!!e.range.startsWith("patch:")}supportsLocator(e,t){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,t){return!1}bindDescriptor(e,t,i){let{patchPaths:n}=NE(e);return n.every(s=>!w1(s))?e:x.bindDescriptor(e,{locator:x.stringifyLocator(t)})}getResolutionDependencies(e,t){let{sourceDescriptor:i}=NE(e);return[i]}async getCandidates(e,t,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=NE(e),a=await LE(n,o,i.fetchOptions),l=t.get(s.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: The dependency should have been resolved");let c=Q1(a,l.version);return[y1(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,t,i){return null}async resolve(e,t){let{sourceLocator:i}=TE(e);return{...await t.resolver.resolve(i,t),...e}}};var cg=class extends xe{constructor(){super(...arguments);this.save=z.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let s=v.resolve(this.context.cwd,K.toPortablePath(this.patchFolder)),o=v.join(s,"../source"),a=v.join(s,"../.yarn-patch.json");if(!M.existsSync(o))throw new we("The argument folder didn't get created by 'yarn patch'");let l=await b1(o,s),c=await M.readJsonPromise(a),u=x.parseLocator(c.locator,!0);if(!i.storedPackages.has(u.locatorHash))throw new we("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(l);return}let g=t.get("patchFolder"),h=v.join(g,`${x.slugifyLocator(u)}.patch`);await M.mkdirPromise(g,{recursive:!0}),await M.writeFilePromise(h,l);let p=new Map;for(let d of i.storedPackages.values()){if(x.isVirtualLocator(d))continue;let m=d.dependencies.get(u.identHash);if(!m)continue;let y=x.isVirtualDescriptor(m)?x.devirtualizeDescriptor(m):m,B=E1(y),S=i.storedResolutions.get(B.descriptorHash);if(!S)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!i.storedPackages.get(S))throw new Error("Assertion failed: Expected the package to have been registered");let F=i.originalPackages.get(d.locatorHash);if(!F)throw new Error("Assertion failed: Expected the original package to have been registered");let H=F.dependencies.get(m.identHash);if(!H)throw new Error("Assertion failed: Expected the original dependency to have been registered");p.set(H.descriptorHash,H)}for(let d of p.values()){let m=I1(d,{parentLocator:null,sourceDescriptor:x.convertLocatorToDescriptor(u),sourceVersion:null,patchPaths:[`./${v.relative(i.cwd,h)}`]});i.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:x.stringifyIdent(m),description:d.range}},reference:m.range})}await i.persist()}};cg.paths=[["patch-commit"]],cg.usage=Qe.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var ug=class extends xe{constructor(){super(...arguments);this.json=z.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=z.String()}async execute(){let t=await Ee.find(this.context.cwd,this.context.plugins),{project:i,workspace:n}=await Ge.find(t,this.context.cwd),s=await Dt.find(t);if(!n)throw new lt(i.cwd,this.context.cwd);await i.restoreInstallState();let o=x.parseLocator(this.package);if(o.reference==="unknown"){let a=me.mapAndFilter([...i.storedPackages.values()],l=>l.identHash!==o.identHash?me.mapAndFilter.skip:x.isVirtualLocator(l)?me.mapAndFilter.skip:l);if(a.length===0)throw new we("No package found in the project for the given locator");if(a.length>1)throw new we(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why <package>\` to get more information as to who depends on them): -${a.map(l=>` -- ${x.prettyLocator(t,l)}`).join("")}`);o=a[0]}if(!i.storedPackages.has(o.locatorHash))throw new we("No package found in the project for the given locator");await He.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let l=await B1(o,{cache:s,project:i});a.reportJson({locator:x.stringifyLocator(o),path:K.fromPortablePath(l)}),a.reportInfo(0,`Package ${x.prettyLocator(t,o)} got extracted with success!`),a.reportInfo(0,`You can now edit the following folder: ${$.pretty(t,K.fromPortablePath(l),"magenta")}`),a.reportInfo(0,`Once you are done run ${$.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${K.fromPortablePath(l)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};ug.paths=[["patch"]],ug.usage=Qe.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n \n Once you're done with your changes, run `yarn patch-commit -s <path>` (with `<path>` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n "});var NVe={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cg,ug],fetchers:[GQ],resolvers:[YQ]},TVe=NVe;var k1={};ct(k1,{default:()=>MVe});var qQ=class{supportsPackage(e,t){return this.isEnabled(t)}async findPackageLocation(e,t){if(!this.isEnabled(t))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=n.pathByLocator.get(e.locatorHash);if(typeof s>"u")throw new we(`Couldn't find ${x.prettyLocator(t.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return s}async findPackageLocator(e,t){if(!this.isEnabled(t))return null;let i=x1(),n=t.project.installersCustomData.get(i);if(!n)throw new we(`The project in ${$.pretty(t.project.configuration,`${t.project.cwd}/package.json`,$.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new v1(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},v1=class{constructor(e){this.opts=e;this.asyncActions=new me.AsyncActions(10);this.customData={pathByLocator:new Map,locatorByPath:new Map}}getCustomDataKey(){return x1()}attachCustomData(e){}async installPackage(e,t,i){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,t,i);case"HARD":return this.installPackageHard(e,t,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,t,i){let n=v.resolve(t.packageFs.getRealPath(),t.prefixPath);return this.customData.pathByLocator.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,t,i){var u;let n=LVe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,x.stringifyLocator(e)),this.customData.pathByLocator.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await M.mkdirPromise(n,{recursive:!0}),await M.copyPromise(n,t.prefixPath,{baseFs:t.packageFs,overwrite:!1})}));let o=x.isVirtualLocator(e)?x.devirtualizeLocator(e):e,a={manifest:(u=await ot.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?u:new ot,misc:{hasBindingGyp:po.hasBindingGyp(t)}},l=this.opts.project.getDependencyMeta(o,e.version),c=po.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,t){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!fge(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.customData.pathByLocator.get(e.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(e)})`);let s=v.join(n,St.nodeModules),o=[],a=await hge(s);for(let[l,c]of t){let u=c;fge(c,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=x.devirtualizeLocator(c));let g=this.customData.pathByLocator.get(u.locatorHash);if(typeof g>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${x.stringifyLocator(c)})`);let h=x.stringifyIdent(l),p=v.join(s,h),d=v.relative(v.dirname(p),g),m=a.get(h);a.delete(h),o.push(Promise.resolve().then(async()=>{if(m){if(m.isSymbolicLink()&&await M.readlinkPromise(p)===d)return;await M.removePromise(p)}await M.mkdirpPromise(v.dirname(p)),process.platform=="win32"?await M.symlinkPromise(g,p,"junction"):await M.symlinkPromise(d,p)}))}o.push(pge(s,a)),await Promise.all(o)}))}async attachExternalDependents(e,t){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=Cge(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await M.removePromise(e);else{let t=[],i=new Set;for(let s of this.customData.pathByLocator.values()){let o=v.contains(e,s);if(o!==null){let[a,,...l]=o.split(v.sep);i.add(a);let c=v.join(e,a);t.push(M.readdirPromise(c).then(u=>Promise.all(u.map(async g=>{let h=v.join(c,g);if(g===St.nodeModules){let p=await hge(h);return p.delete(l.join(v.sep)),pge(h,p)}else return M.removePromise(h)}))).catch(u=>{if(u.code!=="ENOENT")throw u}))}}let n;try{n=await M.readdirPromise(e)}catch{n=[]}for(let s of n)i.has(s)||t.push(M.removePromise(v.join(e,s)));await Promise.all(t)}return await this.asyncActions.wait(),await P1(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await P1(dge(this.opts.project)),{customData:this.customData}}};function x1(){return JSON.stringify({name:"PnpmInstaller",version:2})}function dge(r){return v.join(r.cwd,St.nodeModules)}function Cge(r){return v.join(dge(r),".store")}function LVe(r,{project:e}){let t=x.slugifyLocator(r),i=x.getIdentVendorPath(r);return v.join(Cge(e),t,i)}function fge(r,{project:e}){return!x.isVirtualLocator(r)||!e.tryWorkspaceByLocator(r)}async function hge(r){let e=new Map,t=[];try{t=await M.readdirPromise(r,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of t)if(!i.name.startsWith("."))if(i.name.startsWith("@")){let n=await M.readdirPromise(v.join(r,i.name),{withFileTypes:!0});if(n.length===0)e.set(i.name,i);else for(let s of n)e.set(`${i.name}/${s.name}`,s)}else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}async function pge(r,e){var n;let t=[],i=new Set;for(let s of e.keys()){t.push(M.removePromise(v.join(r,s)));let o=(n=x.tryParseIdent(s))==null?void 0:n.scope;o&&i.add(`@${o}`)}return Promise.all(t).then(()=>Promise.all([...i].map(s=>P1(v.join(r,s)))))}async function P1(r){try{await M.rmdirPromise(r)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var OVe={linkers:[qQ]},MVe=OVe;var wb=()=>({modules:new Map([["@yarnpkg/cli",Tm],["@yarnpkg/core",om],["@yarnpkg/fslib",zp],["@yarnpkg/libzip",PC],["@yarnpkg/parsers",rd],["@yarnpkg/shell",FC],["clipanion",K$(gd)],["semver",KVe],["typanion",pn],["yup",UVe],["@yarnpkg/plugin-essentials",CO],["@yarnpkg/plugin-compat",wO],["@yarnpkg/plugin-dlx",BO],["@yarnpkg/plugin-file",vO],["@yarnpkg/plugin-git",dO],["@yarnpkg/plugin-github",xO],["@yarnpkg/plugin-http",PO],["@yarnpkg/plugin-init",FO],["@yarnpkg/plugin-link",NO],["@yarnpkg/plugin-nm",dM],["@yarnpkg/plugin-npm",f1],["@yarnpkg/plugin-npm-cli",C1],["@yarnpkg/plugin-pack",A1],["@yarnpkg/plugin-patch",S1],["@yarnpkg/plugin-pnp",sM],["@yarnpkg/plugin-pnpm",k1]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});_0({binaryVersion:Nr||"<unknown>",pluginConfiguration:wb()});})(); -/*! - * buildToken - * Builds OAuth token prefix (helper function) - * - * @name buildToken - * @function - * @param {GitUrl} obj The parsed Git url object. - * @return {String} token prefix - */ -/*! - * fill-range <https://github.com/jonschlinkert/fill-range> - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-extglob <https://github.com/jonschlinkert/is-extglob> - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-glob <https://github.com/jonschlinkert/is-glob> - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-number <https://github.com/jonschlinkert/is-number> - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-windows <https://github.com/jonschlinkert/is-windows> - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * to-regex-range <https://github.com/micromatch/to-regex-range> - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ -/** - @license - Copyright (c) 2015, Rebecca Turner - - Permission to use, copy, modify, and/or distribute this software for any - purpose with or without fee is hereby granted, provided that the above - copyright notice and this permission notice appear in all copies. - - THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. - */ -/** - @license - Copyright Joyent, Inc. and other Node contributors. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and associated documentation files (the - "Software"), to deal in the Software without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Software, and to permit - persons to whom the Software is furnished to do so, subject to the - following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -/** - @license - Copyright Node.js contributors. All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/** - @license - The MIT License (MIT) - - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ diff --git a/data-mapper/.yarnrc.yml b/data-mapper/.yarnrc.yml deleted file mode 100644 index b1fcdbfe8..000000000 --- a/data-mapper/.yarnrc.yml +++ /dev/null @@ -1,23 +0,0 @@ -nodeLinker: node-modules - -npmPublishRegistry: "https://registry.npmjs.org" -npmRegistries: - "https://registry.npmjs.org": - npmAuthToken: ${NODE_AUTH_TOKEN:-} - -plugins: - - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs - spec: "@yarnpkg/plugin-workspace-tools" - - path: .yarn/plugins/@yarnpkg/plugin-exec.cjs - spec: "@yarnpkg/plugin-exec" - -yarnPath: .yarn/releases/yarn-3.8.5.cjs - -packageExtensions: - "uniforms-bridge-json-schema@*": - dependencies: - "react": "^18.2.0" - - "storybook-fixtures@*": - peerDependencies: - "react-dom": "^18.2.0" diff --git a/data-mapper/package.json b/data-mapper/package.json deleted file mode 100644 index e800bd9dd..000000000 --- a/data-mapper/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "datamapper-poc", - "version": "0.0.1", - "description": "datamapper-poc", - "repository": "https://github.com/KaotoIO/datamapper-poc", - "private": true, - "author": "KaotoIO", - "license": "Apache-2.0", - "workspaces": [ - "packages/*" - ], - "scripts": { - "version": "lerna version" - }, - "engines": { - "node": ">=18.x" - }, - "devDependencies": { - "@lerna-lite/cli": "^3.0.0", - "@lerna-lite/publish": "^3.0.0", - "@lerna-lite/version": "^3.0.0", - "husky": "^9.0.0", - "lint-staged": "^15.0.0" - }, - "packageManager": "yarn@3.8.5" -} diff --git a/data-mapper/packages/ui/.lintstagedrc.json b/data-mapper/packages/ui/.lintstagedrc.json deleted file mode 100644 index bd7e41c98..000000000 --- a/data-mapper/packages/ui/.lintstagedrc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "*.ts": "yarn workspace @datamapper-poc/ui run eslint \"src/**/*.ts\"", - "*.tsx": "yarn workspace @datamapper-poc/ui run eslint \"src/**/*.tsx\"", - "*.scss": "yarn workspace @datamapper-poc/ui run lint:style" -} diff --git a/data-mapper/packages/ui/babel.config.cjs b/data-mapper/packages/ui/babel.config.cjs deleted file mode 100644 index d40df42bf..000000000 --- a/data-mapper/packages/ui/babel.config.cjs +++ /dev/null @@ -1,8 +0,0 @@ -// eslint-disable-next-line no-undef -module.exports = { - presets: [ - ['@babel/preset-env', { targets: { node: 'current' } }], - ['@babel/preset-react', { runtime: 'automatic' }], - '@babel/preset-typescript', - ], -}; diff --git a/data-mapper/packages/ui/index.html b/data-mapper/packages/ui/index.html deleted file mode 100644 index 274e6141e..000000000 --- a/data-mapper/packages/ui/index.html +++ /dev/null @@ -1,13 +0,0 @@ -<!doctype html> -<html lang="en"> - <head> - <meta charset="UTF-8" /> - <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>DataMapper - - -
    - - - diff --git a/data-mapper/packages/ui/jest-setup.ts b/data-mapper/packages/ui/jest-setup.ts deleted file mode 100644 index 3910a443a..000000000 --- a/data-mapper/packages/ui/jest-setup.ts +++ /dev/null @@ -1,48 +0,0 @@ -import '@testing-library/jest-dom'; -// import '@testing-library/jest-dom/extend-expect' -import { install, XSLTProcessor } from 'xslt-ts'; - -Object.defineProperty(window, 'fetch', { - writable: true, - value: jest.fn(), -}); - -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), // Deprecated - removeListener: jest.fn(), // Deprecated - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - -jest - .spyOn(global, 'crypto', 'get') - .mockImplementation(() => ({ getRandomValues: () => [12345678] }) as unknown as Crypto); - -jest.spyOn(console, 'warn').mockImplementation((...args) => { - if ( - args[0].toString().includes('[mobx-react-lite] importing batchingForReactDom is no longer needed') || - args[0].toString().includes('NODE_ENV is not defined') - ) { - return; - } - - console.log(...args); -}); - -const fetchMock = jest.spyOn(window, 'fetch'); - -beforeEach(() => { - fetchMock.mockResolvedValue(null as unknown as Response); -}); - -// Inject xslt-ts implementation since jsdom doesn't provide XSLTProcessor -install(new DOMParser(), new XMLSerializer(), document.implementation); -global.XSLTProcessor = XSLTProcessor; -window.XSLTProcessor = XSLTProcessor; diff --git a/data-mapper/packages/ui/jest.config.ts b/data-mapper/packages/ui/jest.config.ts deleted file mode 100644 index d914b92fe..000000000 --- a/data-mapper/packages/ui/jest.config.ts +++ /dev/null @@ -1,209 +0,0 @@ -/* - * For a detailed explanation regarding each configuration property and type check, visit: - * https://jestjs.io/docs/configuration - */ - -export default { - // All imported modules in your tests should be mocked automatically - // automock: false, - - // Stop running tests after `n` failures - // bail: 0, - - // The directory where Jest should store its cached dependency information - // cacheDirectory: 'C:\\Users\\LordR\\AppData\\Local\\Temp\\jest', - - // Automatically clear mock calls, instances, contexts and results before every test - clearMocks: true, - - // Indicates whether the coverage information should be collected while executing the test - collectCoverage: true, - - // An array of glob patterns indicating a set of files for which coverage information should be collected - collectCoverageFrom: [ - // Collect coverage from all ts and tsx files in the src folder - 'src/**/*.{ts,tsx}', - // Ignore all test files - '!src/**/*.test.{ts,tsx}', - // Ignore all declaration files - '!src/**/*.d.ts', - // Ignore public-api - '!src/public-api.ts', - // Ignore model files - '!src/**/*.models.ts', - // Ignore stub files - '!src/**/stubs/*.ts', - // Ignore icon resolver - '!src/**/node-icon-resolver.ts', - ], - - // The directory where Jest should output its coverage files - coverageDirectory: 'coverage', - - // An array of regexp pattern strings used to skip coverage collection - coveragePathIgnorePatterns: ['\\\\node_modules\\\\', 'index.ts', 'router-exports.tsx'], - - // Indicates which provider should be used to instrument code for coverage - coverageProvider: 'babel', - - // A list of reporter names that Jest uses when writing coverage reports - // coverageReporters: [ - // 'json', - // 'text', - // 'lcov', - // 'clover' - // ], - - // An object that configures minimum threshold enforcement for coverage results - // coverageThreshold: undefined, - - // A path to a custom dependency extractor - // dependencyExtractor: undefined, - - // Make calling deprecated APIs throw helpful error messages - // errorOnDeprecated: false, - - // The default configuration for fake timers - // fakeTimers: { - // 'enableGlobally': false - // }, - - // Force coverage collection from ignored files using an array of glob patterns - // forceCoverageMatch: [], - - // A path to a module which exports an async function that is triggered once before all test suites - // globalSetup: undefined, - - // A path to a module which exports an async function that is triggered once after all test suites - // globalTeardown: undefined, - - // A set of global variables that need to be available in all test environments - // globals: {}, - - // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. - // maxWorkers: '50%', - - // An array of directory names to be searched recursively up from the requiring module's location - // moduleDirectories: [ - // 'node_modules' - // ], - - // An array of file extensions your modules use - // moduleFileExtensions: [ - // 'js', - // 'mjs', - // 'cjs', - // 'jsx', - // 'ts', - // 'tsx', - // 'json', - // 'node' - // ], - - // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module - // moduleNameMapper: {}, - moduleNameMapper: { - '\\.(c|le|sc)ss$': '/src/__mocks__/styleMock.ts', - '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': - '/src/__mocks__/fileMock.ts', - }, - - // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader - // modulePathIgnorePatterns: [], - - // Activates notifications for test results - // notify: false, - - // An enum that specifies notification mode. Requires { notify: true } - // notifyMode: 'failure-change', - - // A preset that is used as a base for Jest's configuration - // preset: undefined, - - // Run tests from one or more projects - // projects: undefined, - - // Use this configuration option to add custom reporters to Jest - // reporters: undefined, - - // Automatically reset mock state before every test - // resetMocks: false, - - // Reset the module registry before running each individual test - // resetModules: false, - - // A path to a custom resolver - // resolver: undefined, - - // Automatically restore mock state and implementation before every test - // restoreMocks: false, - - // The root directory that Jest should scan for tests and modules within - // rootDir: undefined, - - // A list of paths to directories that Jest should use to search for files in - // roots: [ - // '' - // ], - - // Allows you to use a custom runner instead of Jest's default test runner - // runner: 'jest-runner', - - // The paths to modules that run some code to configure or set up the testing environment before each test - // setupFiles: [], - - // A list of paths to modules that run some code to configure or set up the testing framework before each test - setupFilesAfterEnv: ['/jest-setup.ts', 'jest-canvas-mock'], - - // The number of seconds after which a test is considered as slow and reported as such in the results. - // slowTestThreshold: 5, - - // A list of paths to snapshot serializer modules Jest should use for snapshot testing - // snapshotSerializers: [], - - // The test environment that will be used for testing - testEnvironment: 'jsdom', - - // Options that will be passed to the testEnvironment - // testEnvironmentOptions: {}, - - // Adds a location field to test results - // testLocationInResults: false, - - // The glob patterns Jest uses to detect test files - testMatch: ['**/?(*.)+(test).[tj]s?(x)'], - - // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - testPathIgnorePatterns: ['\\\\node_modules\\\\'], - - // The regexp pattern or array of patterns that Jest uses to detect test files - // testRegex: [], - - // This option allows the use of a custom results processor - // testResultsProcessor: undefined, - - // This option allows use of a custom test runner - // testRunner: 'jest-circus/runner', - - // A map from regular expressions to paths to transformers - // transform: undefined, - - // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation - transformIgnorePatterns: [ - // A RegExp to exclude `@patternfly/*` and `yaml` packages from the transformation ignore - // This means that both packages will be transformed by babel to support ES modules - '\\\\node_modules/(?!(@patternfly|yaml)/)\\\\', - ], - - // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them - // unmockedModulePathPatterns: undefined, - - // Indicates whether each individual test should be reported during the run - // verbose: undefined, - - // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode - // watchPathIgnorePatterns: [], - - // Whether to use watchman for file crawling - // watchman: true, -}; diff --git a/data-mapper/packages/ui/package.json b/data-mapper/packages/ui/package.json deleted file mode 100644 index 2269ef34a..000000000 --- a/data-mapper/packages/ui/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "name": "@datamapper-poc/ui", - "version": "0.0.1", - "type": "module", - "description": "datamapper-poc", - "repository": "https://github.com/KaotoIO/datamapper-poc", - "repositoryDirectory": "packages/ui", - "author": "KaotoIO", - "publishConfig": { - "access": "public" - }, - "license": "Apache-2.0", - "types": "./lib/esm/public-api.d.ts", - "module": "./lib/esm/public-api.js", - "main": "./lib/cjs/public-api.js", - "exports": { - ".": { - "import": "./lib/esm/public-api.js", - "require": "./lib/cjs/public-api.js" - }, - "./testing": { - "import": "./lib/esm/testing-api.js", - "require": "./lib/cjs/testing-api.js" - } - }, - "files": [ - "lib" - ], - "scripts": { - "start": "vite", - "build": "tsc && vite build --config vite.config.js", - "build:lib": "yarn rimraf ./lib && yarn build:esm && yarn build:cjs", - "build:esm": "tsc --project tsconfig.esm.json && copyfiles -u 1 ./src/**/*.scss ./src/assets/** ./lib/esm", - "build:cjs": "tsc --project tsconfig.cjs.json && copyfiles -u 1 ./src/**/*.scss ./src/assets/** ./lib/cjs", - "preview": "vite preview", - "test": "jest", - "test:watch": "jest --watch", - "lint": "yarn eslint \"src/**/*.{ts,tsx}\"", - "lint:fix": "yarn lint:code --fix", - "lint:style": "yarn stylelint \"src/**/*.{css,scss}\"", - "lint:style:fix": "yarn lint:style --fix" - }, - "dependencies": { - "@datamapper-poc/xml-schema-ts": "workspace:*", - "@dnd-kit/core": "^6.1.0", - "@patternfly/react-code-editor": "^5.2.3", - "@patternfly/react-core": "^5.1.2", - "@patternfly/react-table": "^5.1.2", - "@patternfly/react-topology": "^5.1.0", - "@types/pako": "^2.0.3", - "chevrotain": "10.5.0", - "d3-scale": "^4.0.2", - "d3-shape": "^3.2.0", - "file-saver": "^2.0.5", - "loglevel": "^1.9.1", - "monaco-editor": "^0.51.0", - "pako": "^2.1.0", - "react": "^18.2.0", - "react-dnd": "^16.0.1", - "react-dnd-html5-backend": "^16.0.1", - "react-dnd-touch-backend": "^16.0.1", - "react-dom": "^18.2.0", - "react-use-gesture": "^9.1.3", - "use-debounce": "^10.0.0", - "xml-formatter": "^3.6.2" - }, - "devDependencies": { - "@babel/core": "^7.23.9", - "@babel/preset-env": "^7.24.0", - "@babel/preset-react": "^7.23.3", - "@babel/preset-typescript": "^7.23.3", - "@storybook/addon-actions": "^8.0.0", - "@storybook/addon-knobs": "^8.0.0", - "@testing-library/jest-dom": "^6.4.2", - "@testing-library/react": "^15.0.0", - "@types/jest": "^29.5.12", - "@types/node": "^20.11.6", - "@types/react": "^18.2.53", - "@types/react-dom": "^18.2.18", - "@typescript-eslint/eslint-plugin": "^7.0.0", - "@typescript-eslint/parser": "^7.0.0", - "@vitejs/plugin-react": "^4.2.1", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.5", - "jest": "^29.7.0", - "jest-canvas-mock": "^2.5.2", - "jest-environment-jsdom": "^29.7.0", - "madge": "^8.0.0", - "prettier": "^3.2.5", - "sass": "^1.70.0", - "stylelint": "^16.2.1", - "stylelint-config-standard-scss": "^13.0.0", - "stylelint-prettier": "^5.0.0", - "ts-node": "^10.9.2", - "typescript": "^5.3.3", - "vite": "^5.0.12", - "vite-plugin-circular-dependency": "^0.4.0", - "xslt-ts": "^1.1.8" - } -} diff --git a/data-mapper/packages/ui/src/__mocks__/fileMock.ts b/data-mapper/packages/ui/src/__mocks__/fileMock.ts deleted file mode 100644 index 9dc5fc1e4..000000000 --- a/data-mapper/packages/ui/src/__mocks__/fileMock.ts +++ /dev/null @@ -1 +0,0 @@ -module.exports = ''; diff --git a/data-mapper/packages/ui/src/__mocks__/styleMock.ts b/data-mapper/packages/ui/src/__mocks__/styleMock.ts deleted file mode 100644 index f053ebf79..000000000 --- a/data-mapper/packages/ui/src/__mocks__/styleMock.ts +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/data-mapper/packages/ui/src/components/index.ts b/data-mapper/packages/ui/src/components/index.ts deleted file mode 100644 index b0973ebbf..000000000 --- a/data-mapper/packages/ui/src/components/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '../DataMapper'; -export * from './Loading'; diff --git a/data-mapper/packages/ui/src/main.tsx b/data-mapper/packages/ui/src/main.tsx deleted file mode 100644 index 073a98190..000000000 --- a/data-mapper/packages/ui/src/main.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first -import { DataMapper } from './components'; -import { createRoot } from 'react-dom/client'; - -const container = document.getElementById('root'); -const root = createRoot(container!); -root.render(); diff --git a/data-mapper/packages/ui/tsconfig.cjs.json b/data-mapper/packages/ui/tsconfig.cjs.json deleted file mode 100644 index afed6cc1b..000000000 --- a/data-mapper/packages/ui/tsconfig.cjs.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.esm.json", - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "target": "ES5", - "outDir": "lib/cjs", - }, -} diff --git a/data-mapper/packages/ui/tsconfig.esm.json b/data-mapper/packages/ui/tsconfig.esm.json deleted file mode 100644 index 6bd76de1a..000000000 --- a/data-mapper/packages/ui/tsconfig.esm.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": false, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": false, - "sourceMap": true, - "declaration": true, - "jsx": "react-jsx", - "outDir": "lib/esm", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - - /* Typings */ - "types": [ - "@testing-library/jest-dom", - ] - }, - "include": ["src/public-api.ts","src/testing-api.ts", "src/global.d.ts"], - "exclude": ["src/**/*.test.tsx", "src/**/*.test.ts"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/data-mapper/packages/ui/tsconfig.json b/data-mapper/packages/ui/tsconfig.json deleted file mode 100644 index 064f67c75..000000000 --- a/data-mapper/packages/ui/tsconfig.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - - /* Typings */ - "types": [ - "@testing-library/jest-dom", - "@types/jest", - "@types/node", - ] - }, - "include": ["src/**/*"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/data-mapper/packages/ui/tsconfig.node.json b/data-mapper/packages/ui/tsconfig.node.json deleted file mode 100644 index c7f60c62b..000000000 --- a/data-mapper/packages/ui/tsconfig.node.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true - }, - "include": ["vite.config.js"] -} diff --git a/data-mapper/packages/ui/vite.config.js b/data-mapper/packages/ui/vite.config.js deleted file mode 100644 index 13de7eb40..000000000 --- a/data-mapper/packages/ui/vite.config.js +++ /dev/null @@ -1,19 +0,0 @@ -import react from '@vitejs/plugin-react'; -import circleDependency from 'vite-plugin-circular-dependency'; -import { defineConfig } from 'vite'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - react(), - circleDependency({ - outputFilePath: './circleDep', - }), - ], - build: { - outDir: './dist', - sourcemap: true, - emptyOutDir: true, - }, - base: './', -}); diff --git a/data-mapper/renovate.json b/data-mapper/renovate.json deleted file mode 100644 index a7b662a65..000000000 --- a/data-mapper/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "github>KaotoIO/renovate-config" - ] -} diff --git a/data-mapper/yarn.lock b/data-mapper/yarn.lock deleted file mode 100644 index e7e591dd1..000000000 --- a/data-mapper/yarn.lock +++ /dev/null @@ -1,14820 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 - -"@aashutoshrathi/word-wrap@npm:^1.2.3": - version: 1.2.6 - resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" - checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd - languageName: node - linkType: hard - -"@adobe/css-tools@npm:^4.4.0": - version: 4.4.0 - resolution: "@adobe/css-tools@npm:4.4.0" - checksum: 1f08fb49bf17fc7f2d1a86d3e739f29ca80063d28168307f1b0a962ef37501c5667271f6771966578897f2e94e43c4770fd802728a6e6495b812da54112d506a - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.2.0": - version: 2.2.1 - resolution: "@ampproject/remapping@npm:2.2.1" - dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/code-frame@npm:7.23.5" - dependencies: - "@babel/highlight": ^7.23.4 - chalk: ^2.4.2 - checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.22.13": - version: 7.24.2 - resolution: "@babel/code-frame@npm:7.24.2" - dependencies: - "@babel/highlight": ^7.24.2 - picocolors: ^1.0.0 - checksum: 70e867340cfe09ca5488b2f36372c45cabf43c79a5b6426e6df5ef0611ff5dfa75a57dda841895693de6008f32c21a7c97027a8c7bcabd63a7d17416cbead6f8 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": ^7.24.7 - picocolors: ^1.0.0 - checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/compat-data@npm:7.23.5" - checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/compat-data@npm:7.24.7" - checksum: 1fc276825dd434fe044877367dfac84171328e75a8483a6976aa28bf833b32367e90ee6df25bdd97c287d1aa8019757adcccac9153de70b1932c0d243a978ae9 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/compat-data@npm:7.24.8" - checksum: 75b2cf8220ad17ec50486a461c3fecb60cae6498b1beec3946dabf894129d03d34d9b545bbd3e81c8f9d36570a8b4d1965c694b16c02868926510c3374822c39 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/compat-data@npm:7.25.2" - checksum: b61bc9da7cfe249f19d08da00f4f0c20550cd9ad5bffcde787c2bf61a8a6fa5b66d92bbd89031f3a6e5495a799a2a2499f2947b6cc7964be41979377473ab132 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: b12a91d27c3731a4b0bdc9312a50b1911f41f7f728aaf0d4b32486e2257fd2cb2d3ea1a295e98449600c48f2c7883a3196ca77cda1cef7d97a10c2e83d037974 - languageName: node - linkType: hard - -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.0 - "@babel/helper-compilation-targets": ^7.25.2 - "@babel/helper-module-transforms": ^7.25.2 - "@babel/helpers": ^7.25.0 - "@babel/parser": ^7.25.0 - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.2 - "@babel/types": ^7.25.2 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 9a1ef604a7eb62195f70f9370cec45472a08114e3934e3eaaedee8fd754edf0730e62347c7b4b5e67d743ce57b5bb8cf3b92459482ca94d06e06246ef021390a - languageName: node - linkType: hard - -"@babel/generator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/generator@npm:7.24.7" - dependencies: - "@babel/types": ^7.24.7 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: 0ff31a73b15429f1287e4d57b439bba4a266f8c673bb445fe313b82f6d110f586776997eb723a777cd7adad9d340edd162aea4973a90112c5d0cfcaf6686844b - languageName: node - linkType: hard - -"@babel/generator@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/generator@npm:7.24.8" - dependencies: - "@babel/types": ^7.24.8 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: 167ecc888ac4ba72eec18209d05e867ad730685ca5e5af2ad0682cfcf33f3b4819a2c087a414100e4f03c2d4e806054442f7b368753ab7d8462ad820190f09d1 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/generator@npm:7.25.0" - dependencies: - "@babel/types": ^7.25.0 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: bf25649dde4068bff8e387319bf820f2cb3b1af7b8c0cfba0bd90880656427c8bad96cd5cb6db7058d20cffe93149ee59da16567018ceaa21ecaefbf780a785c - languageName: node - linkType: hard - -"@babel/generator@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/generator@npm:7.25.4" - dependencies: - "@babel/types": ^7.25.4 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: 0096986585ccb2dbb8feb78aeaddb1b089ed7f6aafb16ec0f7bd931f04e1fc7d3d12e96999b6746f72d851b09453141522ddcf924bcac8cfe07c5d631bb09c8d - languageName: node - linkType: hard - -"@babel/generator@npm:^7.7.2": - version: 7.23.6 - resolution: "@babel/generator@npm:7.23.6" - dependencies: - "@babel/types": ^7.23.6 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 1a1a1c4eac210f174cd108d479464d053930a812798e09fee069377de39a893422df5b5b146199ead7239ae6d3a04697b45fc9ac6e38e0f6b76374390f91fc6c - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" - dependencies: - "@babel/types": ^7.24.7 - checksum: 6178566099a6a0657db7a7fa601a54fb4731ca0b8614fbdccfd8e523c210c13963649bc8fdfd53ce7dd14d05e3dda2fb22dea5b30113c488b9eb1a906d60212e - languageName: node - linkType: hard - -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 71a6158a9fdebffb82fdc400d5555ba8f2e370cea81a0d578155877bdc4db7d5252b75c43b2fdf3f72b3f68348891f99bd35ae315542daad1b7ace8322b1abcb - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.6": - version: 7.23.6 - resolution: "@babel/helper-compilation-targets@npm:7.23.6" - dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-validator-option": ^7.23.5 - browserslist: ^4.22.2 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-compilation-targets@npm:7.24.7" - dependencies: - "@babel/compat-data": ^7.24.7 - "@babel/helper-validator-option": ^7.24.7 - browserslist: ^4.22.2 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: dfc88bc35e223ade796c7267901728217c665adc5bc2e158f7b0ae850de14f1b7941bec4fe5950ae46236023cfbdeddd9c747c276acf9b39ca31f8dd97dc6cc6 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-compilation-targets@npm:7.24.8" - dependencies: - "@babel/compat-data": ^7.24.8 - "@babel/helper-validator-option": ^7.24.8 - browserslist: ^4.23.1 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: 40c9e87212fffccca387504b259a629615d7df10fc9080c113da6c51095d3e8b622a1409d9ed09faf2191628449ea28d582179c5148e2e993a3140234076b8da - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" - dependencies: - "@babel/compat-data": ^7.25.2 - "@babel/helper-validator-option": ^7.24.8 - browserslist: ^4.23.1 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: aed33c5496cb9db4b5e2d44e26bf8bc474074cc7f7bb5ebe1d4a20fdeb362cb3ba9e1596ca18c7484bcd6e5c3a155ab975e420d520c0ae60df81f9de04d0fd16 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-function-name": ^7.24.7 - "@babel/helper-member-expression-to-functions": ^7.24.7 - "@babel/helper-optimise-call-expression": ^7.24.7 - "@babel/helper-replace-supers": ^7.24.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - "@babel/helper-split-export-declaration": ^7.24.7 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 371a181a1717a9b0cebc97727c8ea9ca6afa34029476a684b6030f9d1ad94dcdafd7de175da10b63ae3ba79e4e82404db8ed968ebf264b768f097e5d64faab71 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-member-expression-to-functions": ^7.24.8 - "@babel/helper-optimise-call-expression": ^7.24.7 - "@babel/helper-replace-supers": ^7.25.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - "@babel/traverse": ^7.25.4 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 4544ebda4516eb25efdebd47ca024bd7bdb1eb6e7cc3ad89688c8ef8e889734c2f4411ed78981899c641394f013f246f2af63d92a0e9270f6c453309b4cb89ba - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": - version: 7.22.15 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" - dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - regexpu-core: ^5.3.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - regexpu-core: ^5.3.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 17c59fa222af50f643946eca940ce1d474ff2da1f4afed2312687ab9d708ebbb8c9372754ddbdf44b6e21ead88b8fc144644f3a7b63ccb886de002458cef3974 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.0" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - regexpu-core: ^5.3.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: eff1edbcffa53f361275bfb4449580fe307fafc76d6e7d30d53638198c92462d797f817ccd5624506d42704051a37b29cb6c2a8441c4ea1ee75a5898975f151e - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - regexpu-core: ^5.3.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: df55fdc6a1f3090dd37d91347df52d9322d52affa239543808dc142f8fe35e6787e67d8612337668198fac85826fafa9e6772e6c28b7d249ec94e6fafae5da6e - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.6.1": - version: 0.6.1 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.1" - dependencies: - "@babel/helper-compilation-targets": ^7.22.6 - "@babel/helper-plugin-utils": ^7.22.5 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: b45deb37ce1342d862422e81a3d25ff55f9c7ca52fe303405641e2add8db754091aaaa2119047a0f0b85072221fbddaa92adf53104274661d2795783b56bea2c - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.6.2": - version: 0.6.2 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" - dependencies: - "@babel/helper-compilation-targets": ^7.22.6 - "@babel/helper-plugin-utils": ^7.22.5 - debug: ^4.1.1 - lodash.debounce: ^4.0.8 - resolve: ^1.14.2 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-environment-visitor@npm:7.24.7" - dependencies: - "@babel/types": ^7.24.7 - checksum: 079d86e65701b29ebc10baf6ed548d17c19b808a07aa6885cc141b690a78581b180ee92b580d755361dc3b16adf975b2d2058b8ce6c86675fcaf43cf22f2f7c6 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-function-name@npm:7.24.7" - dependencies: - "@babel/template": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 142ee08922074dfdc0ff358e09ef9f07adf3671ab6eef4fca74dcf7a551f1a43717e7efa358c9e28d7eea84c28d7f177b7a58c70452fc312ae3b1893c5dab2a4 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-hoist-variables@npm:7.24.7" - dependencies: - "@babel/types": ^7.24.7 - checksum: 6cfdcf2289cd12185dcdbdf2435fa8d3447b797ac75851166de9fc8503e2fd0021db6baf8dfbecad3753e582c08e6a3f805c8d00cbed756060a877d705bd8d8d - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 9fecf412f85fa23b7cf55d19eb69de39f8240426a028b141c9df2aed8cfedf20b3ec3318d40312eb7a3dec9eea792828ce0d590e0ff62da3da532482f537192c - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" - dependencies: - "@babel/traverse": ^7.24.8 - "@babel/types": ^7.24.8 - checksum: bf923d05d81b06857f4ca4fe9c528c9c447a58db5ea39595bb559eae2fce01a8266173db0fd6a2ec129d7bbbb9bb22f4e90008252f7c66b422c76630a878a4bc - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.16.7": - version: 7.22.15 - resolution: "@babel/helper-module-imports@npm:7.22.15" - dependencies: - "@babel/types": ^7.22.15 - checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-transforms@npm:7.24.7" - dependencies: - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-split-export-declaration": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: ddff3b41c2667876b4e4e73d961168f48a5ec9560c95c8c2d109e6221f9ca36c6f90c6317eb7a47f2a3c99419c356e529a86b79174cad0d4f7a61960866b88ca - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-module-transforms@npm:7.24.8" - dependencies: - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-split-export-declaration": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a7a515f4786e2c2e354721c5806c07a3ccb7ee73da7cd8c305d2d4c573d9170eadd9393e9eb993b9cd9b0ad28249d8290a525cd38e1fdfaf9f0fa04c1932c204 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-module-transforms@npm:7.25.0" - dependencies: - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 12270fe101a03e46e68d8166aca423c829472f735cd40b674a50c3061954475c840b0baee57ba546d5a51796715e0db8f781f556fb93e71529e5343bd3b6bd57 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.2 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 282d4e3308df6746289e46e9c39a0870819630af5f84d632559171e4fae6045684d771a65f62df3d569e88ccf81dc2def78b8338a449ae3a94bb421aa14fc367 - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" - dependencies: - "@babel/types": ^7.24.7 - checksum: 280654eaf90e92bf383d7eed49019573fb35a98c9e992668f701ad099957246721044be2068cf6840cb2299e0ad393705a1981c88c23a1048096a8d59e5f79a3 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/helper-plugin-utils@npm:7.22.5" - checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/helper-plugin-utils@npm:7.24.0" - checksum: e2baa0eede34d2fa2265947042aa84d444aa48dc51e9feedea55b67fc1bc3ab051387e18b33ca7748285a6061390831ab82f8a2c767d08470b93500ec727e9b9 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/helper-plugin-utils@npm:7.24.5" - checksum: fa1450c92541b32fe18a6ae85e5c989296a284838fa0a282a2138732cae6f173f36d39dc724890c1740ae72d6d6fbca0b009916b168d4bc874bacc7e5c2fdce0 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-plugin-utils@npm:7.24.7" - checksum: 81f2a15751d892e4a8fce25390f973363a5b27596167861d2d6eab0f61856eb2ba389b031a9f19f669c0bd4dd601185828d3cebafd25431be7a1696f2ce3ef68 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a - languageName: node - linkType: hard - -"@babel/helper-remap-async-to-generator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-wrap-function": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: bab7be178f875350f22a2cb9248f67fe3a8a8128db77a25607096ca7599fd972bc7049fb11ed9e95b45a3f1dd1fac3846a3279f9cbac16f337ecb0e6ca76e1fc - languageName: node - linkType: hard - -"@babel/helper-remap-async-to-generator@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-wrap-function": ^7.25.0 - "@babel/traverse": ^7.25.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 47f3065e43fe9d6128ddb4291ffb9cf031935379265fd13de972b5f241943121f7583efb69cd2e1ecf39e3d0f76f047547d56c3fcc2c853b326fad5465da0bd7 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-replace-supers@npm:7.24.7" - dependencies: - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-member-expression-to-functions": ^7.24.7 - "@babel/helper-optimise-call-expression": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2bf0d113355c60d86a04e930812d36f5691f26c82d4ec1739e5ec0a4c982c9113dad3167f7c74f888a96328bd5e696372232406d8200e5979e6e0dc2af5e7c76 - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-replace-supers@npm:7.25.0" - dependencies: - "@babel/helper-member-expression-to-functions": ^7.24.8 - "@babel/helper-optimise-call-expression": ^7.24.7 - "@babel/traverse": ^7.25.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: f669fc2487c22d40b808f94b9c3ee41129484d5ef0ba689bdd70f216ff91e10b6b021d2f8cd37e7bdd700235a2a6ae6622526344f064528190383bf661ac65f8 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 - languageName: node - linkType: hard - -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 11b28fe534ce2b1a67c4d8e51a7b5711a2a0a0cae802f74614eee54cca58c744d9a62f6f60103c41759e81c537d270bfd665bf368a6bea214c6052f2094f8407 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-split-export-declaration@npm:7.24.7" - dependencies: - "@babel/types": ^7.24.7 - checksum: e3ddc91273e5da67c6953f4aa34154d005a00791dc7afa6f41894e768748540f6ebcac5d16e72541aea0c89bee4b89b4da6a3d65972a0ea8bfd2352eda5b7e22 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/helper-string-parser@npm:7.23.4" - checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-string-parser@npm:7.24.7" - checksum: 09568193044a578743dd44bf7397940c27ea693f9812d24acb700890636b376847a611cdd0393a928544e79d7ad5b8b916bd8e6e772bc8a10c48a647a96e7b1a - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helper-validator-option@npm:7.23.5" - checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-option@npm:7.24.7" - checksum: 9689166bf3f777dd424c026841c8cd651e41b21242dbfd4569a53086179a3e744c8eddd56e9d10b54142270141c91581b53af0d7c00c82d552d2540e2a919f7e - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-wrap-function@npm:7.24.7" - dependencies: - "@babel/helper-function-name": ^7.24.7 - "@babel/template": ^7.24.7 - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 085bf130ed08670336e3976f5841ae44e3e10001131632e22ef234659341978d2fd37e65785f59b6cb1745481347fc3bce84b33a685cacb0a297afbe1d2b03af - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-wrap-function@npm:7.25.0" - dependencies: - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 0095b4741704066d1687f9bbd5370bb88c733919e4275e49615f70c180208148ff5f24ab58d186ce92f8f5d28eab034ec6617e9264590cc4744c75302857629c - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helpers@npm:7.25.0" - dependencies: - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 739e3704ff41a30f5eaac469b553f4d3ab02be6ced083f5925851532dfbd9efc5c347728e77b754ed0b262a4e5e384e60932a62c192d338db7e4b7f3adf9f4a7 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/highlight@npm:7.23.4" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/highlight@npm:7.24.2" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5f17b131cc3ebf3ab285a62cf98a404aef1bd71a6be045e748f8d5bf66d6a6e1aefd62f5972c84369472e8d9f22a614c58a89cd331eb60b7ba965b31b1bbeaf5 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": ^7.24.7 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/parser@npm:7.23.9" - bin: - parser: ./bin/babel-parser.js - checksum: e7cd4960ac8671774e13803349da88d512f9292d7baa952173260d3e8f15620a28a3701f14f709d769209022f9e7b79965256b8be204fc550cfe783cdcabe7c7 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.24.4, @babel/parser@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/parser@npm:7.25.3" - dependencies: - "@babel/types": ^7.25.2 - bin: - parser: ./bin/babel-parser.js - checksum: b55aba64214fa1d66ccd0d29f476d2e55a48586920d280f88c546f81cbbececc0e01c9d05a78d6bf206e8438b9c426caa344942c1a581eecc4d365beaab8a20e - languageName: node - linkType: hard - -"@babel/parser@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/parser@npm:7.24.7" - bin: - parser: ./bin/babel-parser.js - checksum: fc9d2c4c8712f89672edc55c0dc5cf640dcec715b56480f111f85c2bc1d507e251596e4110d65796690a96ac37a4b60432af90b3e97bb47e69d4ef83872dbbd6 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/parser@npm:7.24.8" - bin: - parser: ./bin/babel-parser.js - checksum: 76f866333bfbd53800ac027419ae523bb0137fc63daa968232eb780e4390136bb6e497cb4a2cf6051a2c318aa335c2e6d2adc17079d60691ae7bde89b28c5688 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/parser@npm:7.25.0" - bin: - parser: ./bin/babel-parser.js - checksum: e0f0f5a0d323c8ebaa7caa5a982ce82a87d1f7176939642020beed021024af523e69e30b8918be82d02666742dfe0aad562c65edfd1a696785d76a2882e7904c - languageName: node - linkType: hard - -"@babel/parser@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/parser@npm:7.25.4" - dependencies: - "@babel/types": ^7.25.4 - bin: - parser: ./bin/babel-parser.js - checksum: fe4f083d4ad34f019dd7fad672cd007003004fb0a3df9b7315a5da9a5e8e56c1fed95acab6862e7d76cfccb2e8e364bcc307e9117718e6bb6dfb2e87ad065abf - languageName: node - linkType: hard - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/traverse": ^7.25.3 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: d3dba60f360defe70eb43e35a1b17ea9dd4a99e734249e15be3d5c288019644f96f88d7ff51990118fda0845b4ad50f6d869e0382232b1d8b054d113d4eea7e2 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: fd56d1e6435f2c008ca9050ea906ff7eedcbec43f532f2bf2e7e905d8bf75bf5e4295ea9593f060394e2c8e45737266ccbf718050bad2dd7be4e7613c60d1b5b - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 13ed301b108d85867d64226bbc4032b07dd1a23aab68e9e32452c4fe3930f2198bb65bdae9c262c4104bd5e45647bc1830d25d43d356ee9a137edd8d5fab8350 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - "@babel/plugin-transform-optional-chaining": ^7.24.7 - peerDependencies: - "@babel/core": ^7.13.0 - checksum: 07b92878ac58a98ea1fdf6a8b4ec3413ba4fa66924e28b694d63ec5b84463123fbf4d7153b56cf3cedfef4a3482c082fe3243c04f8fb2c041b32b0e29b4a9e21 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/traverse": ^7.25.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: c8d08b8d6cc71451ad2a50cf7db72ab5b41c1e5e2e4d56cf6837a25a61270abd682c6b8881ab025f11a552d2024b3780519bb051459ebb71c27aed13d9917663 - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": - version: 7.21.0-placeholder-for-preset-env.2 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 - languageName: node - linkType: hard - -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-bigint@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": ^7.12.13 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: c4d67be4eb1d4637e361477dbe01f5b392b037d17c1f861cfa0faa120030e137aab90a9237931b8040fd31d1e5d159e11866fa1165f78beef7a3be876a391a17 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 590dbb5d1a15264f74670b427b8d18527672c3d6c91d7bae7e65f80fd810edbc83d90e68065088644cbad3f2457ed265a54a9956fb789fcb9a5b521822b3a275 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7a5ca629d8ca1e1ee78705a78e58c12920d07ed8006d7e7232b31296a384ff5e41d7b649bde5561196041037bbb9f9715be1d1c20975df87ca204f34ad15b965 - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.23.3 - resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 89037694314a74e7f0e7a9c8d3793af5bf6b23d80950c29b360db1c66859d67f60711ea437e70ad6b5b4b29affe17eababda841b6c01107c2b638e0493bafb4e - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 56fe84f3044ecbf038977281648db6b63bd1301f2fff6595820dc10ee276c1d1586919d48d52a8d497ecae32c958be38f42c1c8d174dc58aad856c516dc5b35a - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.23.3 - resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" - dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: abfad3a19290d258b028e285a1f34c9b8a0cbe46ef79eafed4ed7ffce11b5d0720b5e536c82f91cbd8442cde35a3dd8e861fa70366d87ff06fdc0d4756e30876 - languageName: node - linkType: hard - -"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 707c209b5331c7dc79bd326128c6a6640dbd62a78da1653c844db20c4f36bf7b68454f1bc4d2d051b3fde9136fa291f276ec03a071bb00ee653069ff82f91010 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-generator-functions@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.4" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-remap-async-to-generator": ^7.25.0 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/traverse": ^7.25.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4235444735a1946f8766fe56564a8134c2c36c73e6cf83b3f2ed5624ebc84ff5979506a6a5b39acdb23aa09d442a6af471710ed408ccce533a2c4d2990b9df6a - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" - dependencies: - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-remap-async-to-generator": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 13704fb3b83effc868db2b71bfb2c77b895c56cb891954fc362e95e200afd523313b0e7cf04ce02f45b05e76017c5b5fa8070c92613727a35131bb542c253a36 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 249cdcbff4e778b177245f9652b014ea4f3cd245d83297f10a7bf6d97790074089aa62bcde8c08eb299c5e68f2faed346b587d3ebac44d625ba9a83a4ee27028 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b1a8f932f69ad2a47ae3e02b4cedd2a876bfc2ac9cf72a503fd706cdc87272646fe9eed81e068c0fc639647033de29f7fa0c21cddd1da0026f83dbaac97316a8 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-properties@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.4" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.25.4 - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b73f7d968639c6c2dfc13f4c5a8fe45cefd260f0faa7890ae12e65d41211072544ff5e128c8b61a86887b29ffd3df8422dbdfbf61648488e71d4bb599c41f4a5 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-static-block@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: 324049263504f18416f1c3e24033baebfafd05480fdd885c8ebe6f2b415b0fc8e0b98d719360f9e30743cc78ac387fabc0b3c6606d2b54135756ffb92963b382 - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-classes@npm:7.25.4" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-compilation-targets": ^7.25.2 - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-replace-supers": ^7.25.0 - "@babel/traverse": ^7.25.4 - globals: ^11.1.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0bf20e46eeb691bd60cee5d1b01950fc37accec88018ecace25099f7c8d8509c1ac54d11b8caf9f2157c6945969520642a3bc421159c1a14e80224dc9a7611de - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/template": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0cf8c1b1e4ea57dec8d4612460d84fd4cdbf71a7499bb61ee34632cf89018a59eee818ffca88a8d99ee7057c20a4257044d7d463fda6daef9bf1db9fa81563cb - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 0b4bd3d608979a1e5bd97d9d42acd5ad405c7fffa61efac4c7afd8e86ea6c2d91ab2d94b6a98d63919571363fe76e0b03c4ff161f0f60241b895842596e4a999 - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 67b10fc6abb1f61f0e765288eb4c6d63d1d0f9fc0660e69f6f2170c56fa16bc74e49857afc644beda112b41771cd90cf52df0940d11e97e52617c77c7dcff171 - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d1da2ff85ecb56a63f4ccfd9dc9ae69400d85f0dadf44ecddd9e71c6e5c7a9178e74e3a9637555f415a2bb14551e563f09f98534ab54f53d25e8439fdde6ba2d - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.0 - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 608d6b0e77341189508880fd1a9f605a38d0803dd6f678ea3920ab181b17b377f6d5221ae8cf0104c7a044d30d4ddb0366bd064447695671d78457a656bb264f - languageName: node - linkType: hard - -"@babel/plugin-transform-dynamic-import@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 776509ff62ab40c12be814a342fc56a5cc09b91fb63032b2633414b635875fd7da03734657be0f6db2891fe6e3033b75d5ddb6f2baabd1a02e4443754a785002 - languageName: node - linkType: hard - -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 23c84a23eb56589fdd35a3540f9a1190615be069110a2270865223c03aee3ba4e0fc68fe14850800cf36f0712b26e4964d3026235261f58f0405a29fe8dac9b1 - languageName: node - linkType: hard - -"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3bd3a10038f10ae0dea1ee42137f3edcf7036b5e9e570a0d1cbd0865f03658990c6c2d84fa2475f87a754e7dc5b46766c16f7ce5c9b32c3040150b6a21233a80 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-for-of@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a53b42dc93ab4b7d1ebd3c695b52be22b3d592f6a3dbdb3dc2fea2c8e0a7e1508fe919864c455cde552aec44ce7518625fccbb70c7063373ca228d884f4f49ea - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.25.1": - version: 7.25.1 - resolution: "@babel/plugin-transform-function-name@npm:7.25.1" - dependencies: - "@babel/helper-compilation-targets": ^7.24.8 - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/traverse": ^7.25.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 743f3ea03bbc5a90944849d5a880b6bd9243dddbde581a46952da76e53a0b74c1e2424133fe8129d7a152c1f8c872bcd27e0b6728d7caadabd1afa7bb892e1e0 - languageName: node - linkType: hard - -"@babel/plugin-transform-json-strings@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-json-strings": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 88874d0b7a1ddea66c097fc0abb68801ffae194468aa44b828dde9a0e20ac5d8647943793de86092eabaa2911c96f67a6b373793d4bb9c932ef81b2711c06c2e - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/plugin-transform-literals@npm:7.25.2" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 70c9bb40e377a306bd8f500899fb72127e527517914466e95dc6bb53fa7a0f51479db244a54a771b5780fc1eab488fedd706669bf11097b81a23c81ab7423eb1 - languageName: node - linkType: hard - -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3367ce0be243704dc6fce23e86a592c4380f01998ee5dd9f94c54b1ef7b971ac6f8a002901eb51599ac6cbdc0d067af8d1a720224fca1c40fde8bb8aab804aac - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2720c57aa3bf70576146ba7d6ea03227f4611852122d76d237924f7b008dafc952e6ae61a19e5024f26c665f44384bbd378466f01b6bd1305b3564a3b7fb1a5d - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-amd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" - dependencies: - "@babel/helper-module-transforms": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f1dd0fb2f46c0f8f21076b8c7ccd5b33a85ce6dcb31518ea4c648d9a5bb2474cd4bd87c9b1b752e68591e24b022e334ba0d07631fef2b6b4d8a4b85cf3d581f5 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7" - dependencies: - "@babel/helper-module-transforms": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bfda2a0297197ed342e2a02e5f9847a489a3ae40a4a7d7f00f4aeb8544a85e9006e0c5271c8f61f39bc97975ef2717b5594cf9486694377a53433162909d64c1 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" - dependencies: - "@babel/helper-module-transforms": ^7.24.8 - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-simple-access": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a4cf95b1639c33382064b44558f73ee5fac023f2a94d16e549d2bb55ceebd5cbc10fcddd505d08cd5bc97f5a64af9fd155512358b7dcf7b1a0082e8945cf21c5 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" - dependencies: - "@babel/helper-module-transforms": ^7.25.0 - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fe673bec08564e491847324bb80a1e6edfb229f5c37e58a094d51e95306e7b098e1d130fc43e992d22debd93b9beac74441ffc3f6ea5d78f6b2535896efa0728 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-umd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" - dependencies: - "@babel/helper-module-transforms": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9ff1c464892efe042952ba778468bda6131b196a2729615bdcc3f24cdc94014f016a4616ee5643c5845bade6ba698f386833e61056d7201314b13a7fd69fac88 - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: f1c6c7b5d60a86b6d7e4dd098798e1d393d55e993a0b57a73b53640c7a94985b601a96bdacee063f809a9a700bcea3a2ff18e98fa561554484ac56b761d774bd - languageName: node - linkType: hard - -"@babel/plugin-transform-new-target@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-new-target@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3cb94cd1076b270f768f91fdcf9dd2f6d487f8dbfff3df7ca8d07b915900b86d02769a35ba1407d16fe49499012c8f055e1741299e2c880798b953d942a8fa1b - languageName: node - linkType: hard - -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4a9221356401d87762afbc37a9e8e764afc2daf09c421117537820f8cfbed6876888372ad3a7bcfae2d45c95f026651f050ab4020b777be31d3ffb00908dbdd3 - languageName: node - linkType: hard - -"@babel/plugin-transform-numeric-separator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 561b5f1d08b2c3f92ce849f092751558b5e6cfeb7eb55c79e7375c34dd9c3066dce5e630bb439affef6adcf202b6cbcaaa23870070276fa5bb429c8f5b8c7514 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" - dependencies: - "@babel/helper-compilation-targets": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 169d257b9800c13e1feb4c37fb05dae84f702e58b342bb76e19e82e6692b7b5337c9923ee89e3916a97c0dd04a3375bdeca14f5e126f110bbacbeb46d1886ca2 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-super@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-replace-supers": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: f71e607a830ee50a22fa1a2686524d3339440cf9dea63032f6efbd865cfe4e35000e1e3f3492459e5c986f7c0c07dc36938bf3ce61fc9ba5f8ab732d0b64ab37 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7229f3a5a4facaab40f4fdfc7faabc157dc38a67d66bed7936599f4bc509e0bff636f847ac2aa45294881fce9cf8a0a460b85d2a465b7b977de9739fce9b18f6 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 877e7ce9097d475132c7f4d1244de50bb2fd37993dc4580c735f18f8cbc49282f6e77752821bcad5ca9d3528412d2c8a7ee0aa7ca71bb680ff82648e7a5fed25 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 45e55e3a2fffb89002d3f89aef59c141610f23b60eee41e047380bffc40290b59f64fc649aa7ec5281f73d41b2065410d788acc6afaad2a9f44cad6e8af04442 - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-parameters@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ab534b03ac2eff94bc79342b8f39a4584666f5305a6c63c1964afda0b1b004e6b861e49d1683548030defe248e3590d3ff6338ee0552cb90c064f7e1479968c3 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-methods@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.4" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.25.4 - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: cb1dabfc03e2977990263d65bc8f43a9037dffbb5d9a5f825c00d05447ff68015099408c1531d9dd88f18a41a90f5062dc48f3a1d52b415d2d2ee4827dedff09 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-create-class-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8cee9473095305cc787bb653fd681719b49363281feabf677db8a552e8e41c94441408055d7e5fd5c7d41b315e634fa70b145ad0c7c54456216049df4ed57350 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 9aeefc3aab6c6bf9d1fae1cf3a2d38c7d886fd3c6c81b7c608c477f5758aee2e7abf52f32724310fe861da61af934ee2508b78a5b5f234b9740c9134e1c14437 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-display-name@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a05bf83bf5e7b31f7a3b56da1bf8e2eeec76ef52ae44435ceff66363a1717fcda45b7b4b931a2c115982175f481fc3f2d0fab23f0a43c44e6d983afc396858f0 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-development@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.7" - dependencies: - "@babel/plugin-transform-react-jsx": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 653d32ea5accb12d016e324ec5a584b60a8f39e60c6a5101194b73553fdefbfa3c3f06ec2410216ec2033fddae181a2f146a1d6ed59f075c488fc4570cad2e7b - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-self@npm:^7.24.5": - version: 7.24.5 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.5" - dependencies: - "@babel/helper-plugin-utils": ^7.24.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 074862b10c8cd25634bb072b0c242f4351dd6b9241cef98c5b291ebe75619518f4debf6374b7cb3c3c7b3f0f4395cd1d725e7616ff3c3bf9aa6c281a71ab2598 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-source@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 396ce878dc588e74113d38c5a1773e0850bb878a073238a74f8cdf62d968d56a644f5485bf4032dc095fe8863fe2bd9fbbbab6abc3adf69542e038ac5c689d4c - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-jsx@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-jsx": ^7.24.7 - "@babel/types": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ddfe494eb4b6ad567ebf0c029246df55d006512b1eb4beead73427b83af2e7e91b6d6e6954e275a92c81a5111d1e6e1fb4a62fdfc6f77c847cc7581650a7c452 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-pure-annotations@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d859ada3cbeb829fa3d9978a29b2d36657fcc9dcc1e4c3c3af84ec5a044a8f8db26ada406baa309e5d4d512aca53d07c520d991b891ff943bec7d8f01aae0419 - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - regenerator-transform: ^0.15.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 20c6c3fb6fc9f407829087316653388d311e8c1816b007609bb09aeef254092a7157adace8b3aaa8f34be752503717cb85c88a5fe482180a9b11bcbd676063be - languageName: node - linkType: hard - -"@babel/plugin-transform-reserved-words@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3d5876954d5914d7270819479504f30c4bf5452a65c677f44e2dab2db50b3c9d4b47793c45dfad7abf4f377035dd79e4b3f554ae350df9f422201d370ce9f8dd - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7b524245814607188212b8eb86d8c850e5974203328455a30881b4a92c364b93353fae14bc2af5b614ef16300b75b8c1d3b8f3a08355985b4794a7feb240adc3 - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-spread@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4c4254c8b9cceb1a8f975fa9b92257ddb08380a35c0a3721b8f4b9e13a3d82e403af2e0fba577b9f2452dd8f06bc3dea71cc53b1e2c6af595af5db52a13429d6 - languageName: node - linkType: hard - -"@babel/plugin-transform-sticky-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 118fc7a7ebf7c20411b670c8a030535fdfe4a88bc5643bb625a584dbc4c8a468da46430a20e6bf78914246962b0f18f1b9d6a62561a7762c4f34a038a5a77179 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ad44e5826f5a98c1575832dbdbd033adfe683cdff195e178528ead62507564bf02f479b282976cfd3caebad8b06d5fd7349c1cdb880dec3c56daea4f1f179619 - languageName: node - linkType: hard - -"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" - dependencies: - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8663a8e7347cedf181001d99c88cf794b6598c3d82f324098510fe8fb8bd22113995526a77aa35a3cc5d70ffd0617a59dd0d10311a9bf0e1a3a7d3e59b900c00 - languageName: node - linkType: hard - -"@babel/plugin-transform-typescript@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-typescript@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": ^7.24.7 - "@babel/helper-create-class-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-typescript": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6b367d1e3d6bdbe438878a76436fc6903e2b4fd7c31fa036d43865570d282679ec3f7c0306399851f2866a9b36686a0ea8c343df3750f70d427f1fe20ca54310 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4af0a193e1ddea6ff82b2b15cc2501b872728050bd625740b813c8062fec917d32d530ff6b41de56c15e7296becdf3336a58db81f5ca8e7c445c1306c52f3e01 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aae13350c50973f5802ca7906d022a6a0cc0e3aebac9122d0450bbd51e78252d4c2032ad69385e2759fcbdd3aac5d571bd7e26258907f51f8e1a51b53be626c2 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 1cb4e70678906e431da0a05ac3f8350025fee290304ad7482d9cfaa1ca67b2e898654de537c9268efbdad5b80d3ebadf42b4a88ea84609bd8a4cce7b11b48afd - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.4" - dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.25.2 - "@babel/helper-plugin-utils": ^7.24.8 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 6d1a7e9fdde4ffc9a81c0e3f261b96a9a0dfe65da282ec96fe63b36c597a7389feac638f1df2a8a4f8c9128337bba8e984f934e9f19077930f33abf1926759ea - languageName: node - linkType: hard - -"@babel/preset-env@npm:^7.24.0": - version: 7.25.4 - resolution: "@babel/preset-env@npm:7.25.4" - dependencies: - "@babel/compat-data": ^7.25.4 - "@babel/helper-compilation-targets": ^7.25.2 - "@babel/helper-plugin-utils": ^7.24.8 - "@babel/helper-validator-option": ^7.24.8 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.3 - "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.25.0 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.25.0 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.7 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.25.0 - "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.24.7 - "@babel/plugin-syntax-import-attributes": ^7.24.7 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.24.7 - "@babel/plugin-transform-async-generator-functions": ^7.25.4 - "@babel/plugin-transform-async-to-generator": ^7.24.7 - "@babel/plugin-transform-block-scoped-functions": ^7.24.7 - "@babel/plugin-transform-block-scoping": ^7.25.0 - "@babel/plugin-transform-class-properties": ^7.25.4 - "@babel/plugin-transform-class-static-block": ^7.24.7 - "@babel/plugin-transform-classes": ^7.25.4 - "@babel/plugin-transform-computed-properties": ^7.24.7 - "@babel/plugin-transform-destructuring": ^7.24.8 - "@babel/plugin-transform-dotall-regex": ^7.24.7 - "@babel/plugin-transform-duplicate-keys": ^7.24.7 - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.25.0 - "@babel/plugin-transform-dynamic-import": ^7.24.7 - "@babel/plugin-transform-exponentiation-operator": ^7.24.7 - "@babel/plugin-transform-export-namespace-from": ^7.24.7 - "@babel/plugin-transform-for-of": ^7.24.7 - "@babel/plugin-transform-function-name": ^7.25.1 - "@babel/plugin-transform-json-strings": ^7.24.7 - "@babel/plugin-transform-literals": ^7.25.2 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 - "@babel/plugin-transform-member-expression-literals": ^7.24.7 - "@babel/plugin-transform-modules-amd": ^7.24.7 - "@babel/plugin-transform-modules-commonjs": ^7.24.8 - "@babel/plugin-transform-modules-systemjs": ^7.25.0 - "@babel/plugin-transform-modules-umd": ^7.24.7 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 - "@babel/plugin-transform-new-target": ^7.24.7 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 - "@babel/plugin-transform-numeric-separator": ^7.24.7 - "@babel/plugin-transform-object-rest-spread": ^7.24.7 - "@babel/plugin-transform-object-super": ^7.24.7 - "@babel/plugin-transform-optional-catch-binding": ^7.24.7 - "@babel/plugin-transform-optional-chaining": ^7.24.8 - "@babel/plugin-transform-parameters": ^7.24.7 - "@babel/plugin-transform-private-methods": ^7.25.4 - "@babel/plugin-transform-private-property-in-object": ^7.24.7 - "@babel/plugin-transform-property-literals": ^7.24.7 - "@babel/plugin-transform-regenerator": ^7.24.7 - "@babel/plugin-transform-reserved-words": ^7.24.7 - "@babel/plugin-transform-shorthand-properties": ^7.24.7 - "@babel/plugin-transform-spread": ^7.24.7 - "@babel/plugin-transform-sticky-regex": ^7.24.7 - "@babel/plugin-transform-template-literals": ^7.24.7 - "@babel/plugin-transform-typeof-symbol": ^7.24.8 - "@babel/plugin-transform-unicode-escapes": ^7.24.7 - "@babel/plugin-transform-unicode-property-regex": ^7.24.7 - "@babel/plugin-transform-unicode-regex": ^7.24.7 - "@babel/plugin-transform-unicode-sets-regex": ^7.25.4 - "@babel/preset-modules": 0.1.6-no-external-plugins - babel-plugin-polyfill-corejs2: ^0.4.10 - babel-plugin-polyfill-corejs3: ^0.10.6 - babel-plugin-polyfill-regenerator: ^0.6.1 - core-js-compat: ^3.37.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 752be43f0b78a2eefe5007076aed3d21b505e1c09d134b61e7de8838f1bbb1e7af81023d39adb14b6eae23727fb5a9fd23f8115a44df043319be22319be17913 - languageName: node - linkType: hard - -"@babel/preset-modules@npm:0.1.6-no-external-plugins": - version: 0.1.6-no-external-plugins - resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@babel/types": ^7.4.4 - esutils: ^2.0.2 - peerDependencies: - "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 - checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 - languageName: node - linkType: hard - -"@babel/preset-react@npm:^7.23.3": - version: 7.24.7 - resolution: "@babel/preset-react@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-validator-option": ^7.24.7 - "@babel/plugin-transform-react-display-name": ^7.24.7 - "@babel/plugin-transform-react-jsx": ^7.24.7 - "@babel/plugin-transform-react-jsx-development": ^7.24.7 - "@babel/plugin-transform-react-pure-annotations": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 76d0365b6bca808be65c4ccb3f3384c0792084add15eb537f16b3e44184216b82fa37f945339b732ceee6f06e09ba1f39f75c45e69b9811ddcc479f05555ea9c - languageName: node - linkType: hard - -"@babel/preset-typescript@npm:^7.23.3": - version: 7.24.7 - resolution: "@babel/preset-typescript@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/helper-validator-option": ^7.24.7 - "@babel/plugin-syntax-jsx": ^7.24.7 - "@babel/plugin-transform-modules-commonjs": ^7.24.7 - "@babel/plugin-transform-typescript": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 12929b24757f3bd6548103475f86478eda4c872bc7cefd920b29591eee8f4a4f350561d888e133d632d0c9402b8615fdcec9138e5127a6567dcb22f804ff207f - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.2.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.23.9 - resolution: "@babel/runtime@npm:7.23.9" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 6bbebe8d27c0c2dd275d1ac197fc1a6c00e18dab68cc7aaff0adc3195b45862bae9c4cc58975629004b0213955b2ed91e99eccb3d9b39cabea246c657323d667 - languageName: node - linkType: hard - -"@babel/template@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/template@npm:7.24.7" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/parser": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: ea90792fae708ddf1632e54c25fe1a86643d8c0132311f81265d2bdbdd42f9f4fac65457056c1b6ca87f7aa0d6a795b549566774bba064bdcea2034ab3960ee9 - languageName: node - linkType: hard - -"@babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/parser": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b - languageName: node - linkType: hard - -"@babel/template@npm:^7.3.3": - version: 7.23.9 - resolution: "@babel/template@npm:7.23.9" - dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/parser": ^7.23.9 - "@babel/types": ^7.23.9 - checksum: 6e67414c0f7125d7ecaf20c11fab88085fa98a96c3ef10da0a61e962e04fdf3a18a496a66047005ddd1bb682a7cc7842d556d1db2f3f3f6ccfca97d5e445d342 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/traverse@npm:7.24.7" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.24.7 - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-function-name": ^7.24.7 - "@babel/helper-hoist-variables": ^7.24.7 - "@babel/helper-split-export-declaration": ^7.24.7 - "@babel/parser": ^7.24.7 - "@babel/types": ^7.24.7 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 7cd366afe9e7ee77e493779fdf24f67bf5595247289364f4689e29688572505eaeb886d7a8f20ebb9c29fc2de7d0895e4ff9e203e78e39ac67239724d45aa83b - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/traverse@npm:7.24.8" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.24.8 - "@babel/helper-environment-visitor": ^7.24.7 - "@babel/helper-function-name": ^7.24.7 - "@babel/helper-hoist-variables": ^7.24.7 - "@babel/helper-split-export-declaration": ^7.24.7 - "@babel/parser": ^7.24.8 - "@babel/types": ^7.24.8 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: ee7955476ce031613249f2b0ce9e74a3b7787c9d52e84534fcf39ad61aeb0b811a4cd83edc157608be4886f04c6ecf210861e211ba2a3db4fda729cc2048b5ed - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/traverse@npm:7.25.0" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.0 - "@babel/parser": ^7.25.0 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.0 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 042180f3187ba9bbf14756fdabbe4cae5c72f3c11e03fd993da9c9c0352832aadffbd257468298d7ce40de7052624de1b379c0fa965cea6856880335a0c771ed - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/traverse@npm:7.25.2" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.0 - "@babel/parser": ^7.25.0 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.2 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 281bb367d78735d3a84b342b6021d57ef21827fb5049dc298c509bd3880470e9979bc2a87ec8d6da27856c08a0fc94d7feb29e8e03f8f0efa5d3f2904ac65779 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/traverse@npm:7.25.3" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.0 - "@babel/parser": ^7.25.3 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.2 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 5661308b1357816f1d4e2813a5dd82c6053617acc08c5c95db051b8b6577d07c4446bc861c9a5e8bf294953ac8266ae13d7d9d856b6b889fc0d34c1f51abbd8c - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/traverse@npm:7.25.4" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.4 - "@babel/parser": ^7.25.4 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.4 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 3b6d879b9d843b119501585269b3599f047011ae21eb7820d00aef62fc3a2bcdaf6f4cdf2679795a2d7c0b6b5d218974916e422f08dea08613dc42188ef21e4b - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.23.9 - resolution: "@babel/types@npm:7.23.9" - dependencies: - "@babel/helper-string-parser": ^7.23.4 - "@babel/helper-validator-identifier": ^7.22.20 - to-fast-properties: ^2.0.0 - checksum: 0a9b008e9bfc89beb8c185e620fa0f8ed6c771f1e1b2e01e1596870969096fec7793898a1d64a035176abf1dd13e2668ee30bf699f2d92c210a8128f4b151e65 - languageName: node - linkType: hard - -"@babel/types@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/types@npm:7.24.7" - dependencies: - "@babel/helper-string-parser": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: 3e4437fced97e02982972ce5bebd318c47d42c9be2152c0fd28c6f786cc74086cc0a8fb83b602b846e41df37f22c36254338eada1a47ef9d8a1ec92332ca3ea8 - languageName: node - linkType: hard - -"@babel/types@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/types@npm:7.24.8" - dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: e3f58ce9272c6ad519ce2ccf66efb1bfc84a62a344c0e252580d258638e0f0754eb060ec3aea3296c961973c188959f8fd3dc12f8ab6ed4ead1fb7723d693a33 - languageName: node - linkType: hard - -"@babel/types@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/types@npm:7.25.0" - dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: 58645192c73ea1adf72b3311c46e6f656bb3f52adb285c3ae0566e62a3d9ea1998449e88c6590501cb7aa9fe3411bb66288c961b9ebb5c4e9c433bad8619efaa - languageName: node - linkType: hard - -"@babel/types@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/types@npm:7.25.2" - dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: f73f66ba903c6f7e38f519a33d53a67d49c07e208e59ea65250362691dc546c6da7ab90ec66ee79651ef697329872f6f97eb19a6dfcacc026fd05e76a563c5d2 - languageName: node - linkType: hard - -"@babel/types@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/types@npm:7.25.4" - dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: 497f8b583c54a92a59c3ec542144695064cd5c384fcca46ba1aa301d5e5dd6c1d011f312ca024cb0f9c956da07ae82fb4c348c31a30afa31a074c027720d2aa8 - languageName: node - linkType: hard - -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 - languageName: node - linkType: hard - -"@chevrotain/cst-dts-gen@npm:10.5.0": - version: 10.5.0 - resolution: "@chevrotain/cst-dts-gen@npm:10.5.0" - dependencies: - "@chevrotain/gast": 10.5.0 - "@chevrotain/types": 10.5.0 - lodash: 4.17.21 - checksum: 3ff851d5cbccc509269bb77078dafd7acfcd2e128e7d362718cde728f3fa95f4dd58eb1eea67ecf11453fba70bded97df55c5ba31ed93fb2dec4324663bd2eee - languageName: node - linkType: hard - -"@chevrotain/gast@npm:10.5.0": - version: 10.5.0 - resolution: "@chevrotain/gast@npm:10.5.0" - dependencies: - "@chevrotain/types": 10.5.0 - lodash: 4.17.21 - checksum: 35183e7067bc936db9ecfea7624ee3178634618cf1518ea3470b4ed208fb19454dc3ed990a0de2dab80794251398a857ad17d26cc552eac497a2aa974f76b86d - languageName: node - linkType: hard - -"@chevrotain/types@npm:10.5.0": - version: 10.5.0 - resolution: "@chevrotain/types@npm:10.5.0" - checksum: 72f7b48de1888ab14831108da4b0ab3ef244e1101a4094240382e4983a9e71aae6f8a87e09b819854d1028cee08f97b7d2a81fce935742c55d2bc497b7cad350 - languageName: node - linkType: hard - -"@chevrotain/utils@npm:10.5.0": - version: 10.5.0 - resolution: "@chevrotain/utils@npm:10.5.0" - checksum: f3ae9e0fea2e928a1a4930311d3ef04f45c29fa58ba4d5d2ca43c33355ac47f95ce99a98d6496706e2e7f773ef684a9a7e7cbd7b77c00af9158f08c82d88212b - languageName: node - linkType: hard - -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" - dependencies: - "@jridgewell/trace-mapping": 0.3.9 - checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa - languageName: node - linkType: hard - -"@csstools/css-parser-algorithms@npm:^3.0.0": - version: 3.0.1 - resolution: "@csstools/css-parser-algorithms@npm:3.0.1" - peerDependencies: - "@csstools/css-tokenizer": ^3.0.1 - checksum: 6d8ae77d0a4a14269ab489cbb55d952a226fbdf7999943db1ebd51167ebafa12e24342c56e1af0f9fe6a460f1cf1579442b56f700e3e614faf1c8ba96e0761f4 - languageName: node - linkType: hard - -"@csstools/css-tokenizer@npm:^3.0.0": - version: 3.0.1 - resolution: "@csstools/css-tokenizer@npm:3.0.1" - checksum: 53e5e147290972b37c00e2debcd84662e41d1a72055bc231d75c6c6ceb2f654bc3f0ba064ca4ae97c6b39a7c51e1023c4a5e857af2c5c8e16d8665c490ee8948 - languageName: node - linkType: hard - -"@csstools/media-query-list-parser@npm:^3.0.0": - version: 3.0.1 - resolution: "@csstools/media-query-list-parser@npm:3.0.1" - peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.1 - "@csstools/css-tokenizer": ^3.0.1 - checksum: 65d1fdb83def44de4e97898d630aba13a9c09dac18f80d4a68bd135c903973bbf81f338a41471016c3d93768bc005f3e7978977135c8e0944baba710b4d33dca - languageName: node - linkType: hard - -"@csstools/selector-specificity@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/selector-specificity@npm:4.0.0" - peerDependencies: - postcss-selector-parser: ^6.1.0 - checksum: 7076c1d8af0fba94f06718f87fba5bfea583f39089efa906ae38b5ecd6912d3d5865f7047a871ac524b1057e4c970622b2ade456b90d69fb9393902250057994 - languageName: node - linkType: hard - -"@datamapper-poc/ui@workspace:packages/ui": - version: 0.0.0-use.local - resolution: "@datamapper-poc/ui@workspace:packages/ui" - dependencies: - "@babel/core": ^7.23.9 - "@babel/preset-env": ^7.24.0 - "@babel/preset-react": ^7.23.3 - "@babel/preset-typescript": ^7.23.3 - "@datamapper-poc/xml-schema-ts": "workspace:*" - "@dnd-kit/core": ^6.1.0 - "@patternfly/react-code-editor": ^5.2.3 - "@patternfly/react-core": ^5.1.2 - "@patternfly/react-table": ^5.1.2 - "@patternfly/react-topology": ^5.1.0 - "@storybook/addon-actions": ^8.0.0 - "@storybook/addon-knobs": ^8.0.0 - "@testing-library/jest-dom": ^6.4.2 - "@testing-library/react": ^15.0.0 - "@types/jest": ^29.5.12 - "@types/node": ^20.11.6 - "@types/pako": ^2.0.3 - "@types/react": ^18.2.53 - "@types/react-dom": ^18.2.18 - "@typescript-eslint/eslint-plugin": ^7.0.0 - "@typescript-eslint/parser": ^7.0.0 - "@vitejs/plugin-react": ^4.2.1 - chevrotain: 10.5.0 - d3-scale: ^4.0.2 - d3-shape: ^3.2.0 - eslint: ^8.57.0 - eslint-config-prettier: ^9.1.0 - eslint-plugin-import: ^2.29.1 - eslint-plugin-jest: ^27.9.0 - eslint-plugin-prettier: ^5.1.3 - eslint-plugin-react-hooks: ^4.6.0 - eslint-plugin-react-refresh: ^0.4.5 - file-saver: ^2.0.5 - jest: ^29.7.0 - jest-canvas-mock: ^2.5.2 - jest-environment-jsdom: ^29.7.0 - loglevel: ^1.9.1 - madge: ^8.0.0 - monaco-editor: ^0.51.0 - pako: ^2.1.0 - prettier: ^3.2.5 - react: ^18.2.0 - react-dnd: ^16.0.1 - react-dnd-html5-backend: ^16.0.1 - react-dnd-touch-backend: ^16.0.1 - react-dom: ^18.2.0 - react-use-gesture: ^9.1.3 - sass: ^1.70.0 - stylelint: ^16.2.1 - stylelint-config-standard-scss: ^13.0.0 - stylelint-prettier: ^5.0.0 - ts-node: ^10.9.2 - typescript: ^5.3.3 - use-debounce: ^10.0.0 - vite: ^5.0.12 - vite-plugin-circular-dependency: ^0.4.0 - xml-formatter: ^3.6.2 - xslt-ts: ^1.1.8 - languageName: unknown - linkType: soft - -"@datamapper-poc/xml-schema-ts@workspace:*, @datamapper-poc/xml-schema-ts@workspace:packages/xml-schema-ts": - version: 0.0.0-use.local - resolution: "@datamapper-poc/xml-schema-ts@workspace:packages/xml-schema-ts" - dependencies: - "@babel/preset-env": ^7.24.0 - "@babel/preset-react": ^7.23.3 - "@babel/preset-typescript": ^7.23.3 - "@testing-library/jest-dom": ^6.4.2 - "@types/jest": ^29.5.12 - eslint: ^8.57.0 - eslint-config-prettier: ^9.1.0 - eslint-plugin-import: ^2.29.1 - eslint-plugin-jest: ^27.9.0 - eslint-plugin-prettier: ^5.1.3 - jest: ^29.7.0 - rimraf: ^6.0.0 - stylelint: ^16.2.1 - stylelint-prettier: ^5.0.0 - typescript: ^5.3.3 - vite: ^5.1.4 - languageName: unknown - linkType: soft - -"@dependents/detective-less@npm:^5.0.0": - version: 5.0.0 - resolution: "@dependents/detective-less@npm:5.0.0" - dependencies: - gonzales-pe: ^4.3.0 - node-source-walk: ^7.0.0 - checksum: 85dfc3142d8f34753ddd411dc434784361f318adc7c4abc529c27cf9e2abad28cfe1cc099f2fd3615b9d7787d1f0bd012ac3ef20881d539bb85b61eb9ad7c78e - languageName: node - linkType: hard - -"@dnd-kit/accessibility@npm:^3.1.0": - version: 3.1.0 - resolution: "@dnd-kit/accessibility@npm:3.1.0" - dependencies: - tslib: ^2.0.0 - peerDependencies: - react: ">=16.8.0" - checksum: fcb88c961e2f4c226ab575bc4a13712419884bb0f60761befcaa23bcb6c9939dc2cac6633416f2a07baee9a8830350c6df444039332408cdaaf27cad17c6b64b - languageName: node - linkType: hard - -"@dnd-kit/core@npm:^6.1.0": - version: 6.1.0 - resolution: "@dnd-kit/core@npm:6.1.0" - dependencies: - "@dnd-kit/accessibility": ^3.1.0 - "@dnd-kit/utilities": ^3.2.2 - tslib: ^2.0.0 - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: 3b8f46d2f4d2723abad4721c7bc4d1df2c4f6f26ce54673243666212cfa6f34f33e3255b53144a847da469dc736c966c19e4c45330f967ce8c01f8f878ec7f5b - languageName: node - linkType: hard - -"@dnd-kit/utilities@npm:^3.2.2": - version: 3.2.2 - resolution: "@dnd-kit/utilities@npm:3.2.2" - dependencies: - tslib: ^2.0.0 - peerDependencies: - react: ">=16.8.0" - checksum: 8a5015c2faa52760ab82a64287b2ac6a3d798867a1bca5ccbc1178560dbd9a1f9f1a21faea80f590ba1a4277c3eb7e7c4d3b4a39f1f32171bf6bc8174b370547 - languageName: node - linkType: hard - -"@dual-bundle/import-meta-resolve@npm:^4.1.0": - version: 4.1.0 - resolution: "@dual-bundle/import-meta-resolve@npm:4.1.0" - checksum: 8a79576624d66f3ee578cb4cd7f7dac9282dc4c6f757c7c1f4c364fdbabc99584e1407e49e1ef00c0b42dab01d1f8490ec1d08a02c1238bad657a7335303d462 - languageName: node - linkType: hard - -"@emotion/babel-plugin@npm:^11.11.0": - version: 11.11.0 - resolution: "@emotion/babel-plugin@npm:11.11.0" - dependencies: - "@babel/helper-module-imports": ^7.16.7 - "@babel/runtime": ^7.18.3 - "@emotion/hash": ^0.9.1 - "@emotion/memoize": ^0.8.1 - "@emotion/serialize": ^1.1.2 - babel-plugin-macros: ^3.1.0 - convert-source-map: ^1.5.0 - escape-string-regexp: ^4.0.0 - find-root: ^1.1.0 - source-map: ^0.5.7 - stylis: 4.2.0 - checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9 - languageName: node - linkType: hard - -"@emotion/cache@npm:^11.11.0, @emotion/cache@npm:^11.4.0": - version: 11.11.0 - resolution: "@emotion/cache@npm:11.11.0" - dependencies: - "@emotion/memoize": ^0.8.1 - "@emotion/sheet": ^1.2.2 - "@emotion/utils": ^1.2.1 - "@emotion/weak-memoize": ^0.3.1 - stylis: 4.2.0 - checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 - languageName: node - linkType: hard - -"@emotion/hash@npm:^0.9.1": - version: 0.9.1 - resolution: "@emotion/hash@npm:0.9.1" - checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 - languageName: node - linkType: hard - -"@emotion/memoize@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/memoize@npm:0.8.1" - checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 - languageName: node - linkType: hard - -"@emotion/react@npm:^11.8.1": - version: 11.11.3 - resolution: "@emotion/react@npm:11.11.3" - dependencies: - "@babel/runtime": ^7.18.3 - "@emotion/babel-plugin": ^11.11.0 - "@emotion/cache": ^11.11.0 - "@emotion/serialize": ^1.1.3 - "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 - "@emotion/utils": ^1.2.1 - "@emotion/weak-memoize": ^0.3.1 - hoist-non-react-statics: ^3.3.1 - peerDependencies: - react: ">=16.8.0" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 2e4b223591569f0a41686d5bd72dc8778629b7be33267e4a09582979e6faee4d7218de84e76294ed827058d4384d75557b5d71724756539c1f235e9a69e62b2e - languageName: node - linkType: hard - -"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3": - version: 1.1.3 - resolution: "@emotion/serialize@npm:1.1.3" - dependencies: - "@emotion/hash": ^0.9.1 - "@emotion/memoize": ^0.8.1 - "@emotion/unitless": ^0.8.1 - "@emotion/utils": ^1.2.1 - csstype: ^3.0.2 - checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063 - languageName: node - linkType: hard - -"@emotion/sheet@npm:^1.2.2": - version: 1.2.2 - resolution: "@emotion/sheet@npm:1.2.2" - checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe - languageName: node - linkType: hard - -"@emotion/unitless@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/unitless@npm:0.8.1" - checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 - languageName: node - linkType: hard - -"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": - version: 1.0.1 - resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" - peerDependencies: - react: ">=16.8.0" - checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 - languageName: node - linkType: hard - -"@emotion/utils@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/utils@npm:1.2.1" - checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 - languageName: node - linkType: hard - -"@emotion/weak-memoize@npm:^0.3.1": - version: 0.3.1 - resolution: "@emotion/weak-memoize@npm:0.3.1" - checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 - languageName: node - linkType: hard - -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: ^3.3.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" - dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.6.0 - globals: ^13.19.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb - languageName: node - linkType: hard - -"@floating-ui/core@npm:^1.0.0": - version: 1.6.0 - resolution: "@floating-ui/core@npm:1.6.0" - dependencies: - "@floating-ui/utils": ^0.2.1 - checksum: 2e25c53b0c124c5c9577972f8ae21d081f2f7895e6695836a53074463e8c65b47722744d6d2b5a993164936da006a268bcfe87fe68fd24dc235b1cb86bed3127 - languageName: node - linkType: hard - -"@floating-ui/dom@npm:^1.0.1": - version: 1.6.3 - resolution: "@floating-ui/dom@npm:1.6.3" - dependencies: - "@floating-ui/core": ^1.0.0 - "@floating-ui/utils": ^0.2.0 - checksum: 81cbb18ece3afc37992f436e469e7fabab2e433248e46fff4302d12493a175b0c64310f8a971e6e1eda7218df28ace6b70237b0f3c22fe12a21bba05b5579555 - languageName: node - linkType: hard - -"@floating-ui/utils@npm:^0.2.0, @floating-ui/utils@npm:^0.2.1": - version: 0.2.1 - resolution: "@floating-ui/utils@npm:0.2.1" - checksum: 9ed4380653c7c217cd6f66ae51f20fdce433730dbc77f95b5abfb5a808f5fdb029c6ae249b4e0490a816f2453aa6e586d9a873cd157fdba4690f65628efc6e06 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": ^2.0.2 - debug: ^4.3.1 - minimatch: ^3.0.5 - checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.2 - resolution: "@humanwhocodes/object-schema@npm:2.0.2" - checksum: 2fc11503361b5fb4f14714c700c02a3f4c7c93e9acd6b87a29f62c522d90470f364d6161b03d1cc618b979f2ae02aed1106fd29d302695d8927e2fc8165ba8ee - languageName: node - linkType: hard - -"@hutson/parse-repository-url@npm:^5.0.0": - version: 5.0.0 - resolution: "@hutson/parse-repository-url@npm:5.0.0" - checksum: 8adce66fd62e339382191f32a90708fab4c65560124b67a06262c57815706944a2f894d33f9bd8dd97180fd80accc0c3d1d5b5138ab86ed10ee071cb487d5983 - languageName: node - linkType: hard - -"@inquirer/core@npm:^9.0.10": - version: 9.0.10 - resolution: "@inquirer/core@npm:9.0.10" - dependencies: - "@inquirer/figures": ^1.0.5 - "@inquirer/type": ^1.5.2 - "@types/mute-stream": ^0.0.4 - "@types/node": ^22.1.0 - "@types/wrap-ansi": ^3.0.0 - ansi-escapes: ^4.3.2 - cli-spinners: ^2.9.2 - cli-width: ^4.1.0 - mute-stream: ^1.0.0 - signal-exit: ^4.1.0 - strip-ansi: ^6.0.1 - wrap-ansi: ^6.2.0 - yoctocolors-cjs: ^2.1.2 - checksum: 2d86e78c1a4d0cfc8a68a3f48bcce090092af5b486ac6da9b7e7b0f4016caa1447d07c4241a6ee63566a3be2ae2d5784105a9b1a47aefd1315f9ff0764752ea8 - languageName: node - linkType: hard - -"@inquirer/expand@npm:^2.1.22": - version: 2.1.22 - resolution: "@inquirer/expand@npm:2.1.22" - dependencies: - "@inquirer/core": ^9.0.10 - "@inquirer/type": ^1.5.2 - yoctocolors-cjs: ^2.1.2 - checksum: f997ba916d3ddcc6e2563158805e2ae7a7a6f98e24cf0a08e23d4101b7d78f78e7dce28e648b85ca7f41759eeefdf1c6f6abf2bce0f041fbda54aacf68522454 - languageName: node - linkType: hard - -"@inquirer/figures@npm:^1.0.5": - version: 1.0.5 - resolution: "@inquirer/figures@npm:1.0.5" - checksum: 01dc7b95fe7b030b0577d59f45c4fa5c002dccb43ac75ff106d7142825e09dee63a6f9c42b044da2bc964bf38c40229a112a26505a68f3912b15dc8304106bbc - languageName: node - linkType: hard - -"@inquirer/input@npm:^2.2.9": - version: 2.2.9 - resolution: "@inquirer/input@npm:2.2.9" - dependencies: - "@inquirer/core": ^9.0.10 - "@inquirer/type": ^1.5.2 - checksum: 1b44b36465205196821e902e5ba3a9613fb1b465e3728ee583b99936572733de206eb3b0f71082d72ae06ba71f7ea7c8cbabc814c4b3aacfbdb1a699a9ddcb92 - languageName: node - linkType: hard - -"@inquirer/select@npm:^2.4.7": - version: 2.4.7 - resolution: "@inquirer/select@npm:2.4.7" - dependencies: - "@inquirer/core": ^9.0.10 - "@inquirer/figures": ^1.0.5 - "@inquirer/type": ^1.5.2 - ansi-escapes: ^4.3.2 - yoctocolors-cjs: ^2.1.2 - checksum: 77d0d708983d4b432cd6bb9e4bc3c53308f3a3c97fa8c688fb2a05a14d3a7211d7cc3f3b72f17f0e1a2879658724184ac25b2da0e2cf5629151b86441567ec64 - languageName: node - linkType: hard - -"@inquirer/type@npm:^1.5.2": - version: 1.5.2 - resolution: "@inquirer/type@npm:1.5.2" - dependencies: - mute-stream: ^1.0.0 - checksum: 6f5ee8143c982aaab0d14871f346b5770c9630e0f14303119c03fb9cb7904f6e0af0b76dcef9528da16563877f65e80a6056aa6d90e77511ab42177cdf06c4d7 - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: ^5.1.2 - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb - languageName: node - linkType: hard - -"@isaacs/string-locale-compare@npm:^1.1.0": - version: 1.1.0 - resolution: "@isaacs/string-locale-compare@npm:1.1.0" - checksum: 7287da5d11497b82c542d3c2abe534808015be4f4883e71c26853277b5456f6bbe4108535db847a29f385ad6dc9318ffb0f55ee79bb5f39993233d7dccf8751d - languageName: node - linkType: hard - -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 - languageName: node - linkType: hard - -"@jest/console@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/console@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 - languageName: node - linkType: hard - -"@jest/core@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/core@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/reporters": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^29.7.0 - jest-config: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-resolve-dependencies: ^29.7.0 - jest-runner: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - jest-watcher: ^29.7.0 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d - languageName: node - linkType: hard - -"@jest/environment@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/environment@npm:29.7.0" - dependencies: - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 - languageName: node - linkType: hard - -"@jest/expect-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect-utils@npm:29.7.0" - dependencies: - jest-get-type: ^29.6.3 - checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed - languageName: node - linkType: hard - -"@jest/expect@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect@npm:29.7.0" - dependencies: - expect: ^29.7.0 - jest-snapshot: ^29.7.0 - checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/fake-timers@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@sinonjs/fake-timers": ^10.0.2 - "@types/node": "*" - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 - languageName: node - linkType: hard - -"@jest/globals@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/globals@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/types": ^29.6.3 - jest-mock: ^29.7.0 - checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 - languageName: node - linkType: hard - -"@jest/reporters@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/reporters@npm:29.7.0" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^6.0.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - slash: ^3.0.0 - string-length: ^4.0.1 - strip-ansi: ^6.0.0 - v8-to-istanbul: ^9.0.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 - languageName: node - linkType: hard - -"@jest/schemas@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/schemas@npm:29.6.3" - dependencies: - "@sinclair/typebox": ^0.27.8 - checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 - languageName: node - linkType: hard - -"@jest/source-map@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/source-map@npm:29.6.3" - dependencies: - "@jridgewell/trace-mapping": ^0.3.18 - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb - languageName: node - linkType: hard - -"@jest/test-result@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-result@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-sequencer@npm:29.7.0" - dependencies: - "@jest/test-result": ^29.7.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - slash: ^3.0.0 - checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd - languageName: node - linkType: hard - -"@jest/transform@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/transform@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@jest/types": ^29.6.3 - "@jridgewell/trace-mapping": ^0.3.18 - babel-plugin-istanbul: ^6.1.1 - chalk: ^4.0.0 - convert-source-map: ^2.0.0 - fast-json-stable-stringify: ^2.1.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - micromatch: ^4.0.4 - pirates: ^4.0.4 - slash: ^3.0.0 - write-file-atomic: ^4.0.2 - checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab - languageName: node - linkType: hard - -"@jest/types@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/types@npm:29.6.3" - dependencies: - "@jest/schemas": ^29.6.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.3 - resolution: "@jridgewell/gen-mapping@npm:0.3.3" - dependencies: - "@jridgewell/set-array": ^1.0.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" - dependencies: - "@jridgewell/set-array": ^1.2.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.24 - checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.2 - resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.5.0": - version: 1.5.0 - resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" - checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.22 - resolution: "@jridgewell/trace-mapping@npm:0.3.22" - dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: ac7dd2cfe0b479aa1b81776d40d789243131cc792dc8b6b6a028c70fcd6171958ae1a71bf67b618ffe3c0c3feead9870c095ee46a5e30319410d92976b28f498 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": - version: 0.3.25 - resolution: "@jridgewell/trace-mapping@npm:0.3.25" - dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 - languageName: node - linkType: hard - -"@lerna-lite/cli@npm:3.8.0, @lerna-lite/cli@npm:^3.0.0": - version: 3.8.0 - resolution: "@lerna-lite/cli@npm:3.8.0" - dependencies: - "@lerna-lite/core": 3.8.0 - "@lerna-lite/init": 3.8.0 - "@lerna-lite/npmlog": 3.8.0 - dedent: ^1.5.3 - dotenv: ^16.4.5 - import-local: ^3.2.0 - load-json-file: ^7.0.1 - yargs: ^17.7.2 - peerDependenciesMeta: - "@lerna-lite/exec": - optional: true - "@lerna-lite/list": - optional: true - "@lerna-lite/publish": - optional: true - "@lerna-lite/run": - optional: true - "@lerna-lite/version": - optional: true - "@lerna-lite/watch": - optional: true - bin: - lerna: dist/cli.js - checksum: 7f7dd5c5282849194439c934bdf526a47b58b2b82c34edd1c4f6b1da5b1cdad66c4d46892d241c6a35b9cf176a51e6ad888455b05e564e66cef22853214a113a - languageName: node - linkType: hard - -"@lerna-lite/core@npm:3.8.0": - version: 3.8.0 - resolution: "@lerna-lite/core@npm:3.8.0" - dependencies: - "@inquirer/expand": ^2.1.22 - "@inquirer/input": ^2.2.9 - "@inquirer/select": ^2.4.7 - "@lerna-lite/npmlog": ^3.8.0 - "@npmcli/run-script": ^8.1.0 - chalk: ^5.3.0 - clone-deep: ^4.0.1 - config-chain: ^1.1.13 - cosmiconfig: ^9.0.0 - dedent: ^1.5.3 - execa: ^8.0.1 - fs-extra: ^11.2.0 - glob-parent: ^6.0.2 - globby: ^14.0.2 - is-ci: ^3.0.1 - json5: ^2.2.3 - load-json-file: ^7.0.1 - minimatch: ^9.0.5 - npm-package-arg: ^11.0.3 - p-map: ^7.0.2 - p-queue: ^8.0.1 - resolve-from: ^5.0.0 - semver: ^7.6.3 - slash: ^5.1.0 - strong-log-transformer: ^2.1.0 - write-file-atomic: ^5.0.1 - write-json-file: ^6.0.0 - write-package: ^7.1.0 - checksum: 758d01ff8b9a71face14dfce74aa66537b980e9df5cf32f9da46aa361010576c1de537cb47d0e1008a46ef94249ce11133388ca91d15637952e78b0fba9281a2 - languageName: node - linkType: hard - -"@lerna-lite/init@npm:3.8.0": - version: 3.8.0 - resolution: "@lerna-lite/init@npm:3.8.0" - dependencies: - "@lerna-lite/core": 3.8.0 - fs-extra: ^11.2.0 - p-map: ^7.0.2 - write-json-file: ^6.0.0 - checksum: cff73b71583ec23aec0b94bf775fbe25b84f9f80ecba41dce6ff595df0c6e1271f852dde7c97a3b32a8b4d33cfc5ed0a48f0c9938c3c810cf7988ea61ba6a9df - languageName: node - linkType: hard - -"@lerna-lite/npmlog@npm:3.8.0, @lerna-lite/npmlog@npm:^3.8.0": - version: 3.8.0 - resolution: "@lerna-lite/npmlog@npm:3.8.0" - dependencies: - aproba: ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - set-blocking: ^2.0.0 - signal-exit: ^4.1.0 - string-width: ^7.2.0 - strip-ansi: ^7.1.0 - wide-align: ^1.1.5 - checksum: 6376ad12a9a2e524c0d1ba96656192dc03341cba0359df17f310f0dacc713e34b759b5cb80e2473ca8db2cddf18c9af2713be9d543385838900eb259a302ef23 - languageName: node - linkType: hard - -"@lerna-lite/publish@npm:^3.0.0": - version: 3.8.0 - resolution: "@lerna-lite/publish@npm:3.8.0" - dependencies: - "@lerna-lite/cli": 3.8.0 - "@lerna-lite/core": 3.8.0 - "@lerna-lite/npmlog": ^3.8.0 - "@lerna-lite/version": 3.8.0 - "@npmcli/arborist": ^7.5.4 - "@npmcli/package-json": ^5.2.0 - byte-size: ^9.0.0 - chalk: ^5.3.0 - columnify: ^1.6.0 - fs-extra: ^11.2.0 - glob: ^10.4.5 - has-unicode: ^2.0.1 - libnpmaccess: ^8.0.6 - libnpmpublish: ^9.0.9 - normalize-path: ^3.0.0 - npm-package-arg: ^11.0.3 - npm-packlist: ^8.0.2 - npm-registry-fetch: ^17.1.0 - p-map: ^7.0.2 - p-pipe: ^4.0.0 - pacote: ^18.0.6 - semver: ^7.6.3 - ssri: ^10.0.6 - tar: ^6.2.1 - temp-dir: ^3.0.0 - checksum: feb09703853f2f3821046687008201b2eff87bf753079eeb5472c0473e1cf26ccfb9e9dd5393bb7d2cc6cf07275f844cb99d067915a80b89a2a4e0b1f121b830 - languageName: node - linkType: hard - -"@lerna-lite/version@npm:3.8.0, @lerna-lite/version@npm:^3.0.0": - version: 3.8.0 - resolution: "@lerna-lite/version@npm:3.8.0" - dependencies: - "@lerna-lite/cli": 3.8.0 - "@lerna-lite/core": 3.8.0 - "@lerna-lite/npmlog": ^3.8.0 - "@octokit/plugin-enterprise-rest": ^6.0.1 - "@octokit/rest": ^21.0.1 - chalk: ^5.3.0 - conventional-changelog-angular: ^7.0.0 - conventional-changelog-core: ^7.0.0 - conventional-changelog-writer: ^7.0.1 - conventional-commits-parser: ^5.0.0 - conventional-recommended-bump: ^9.0.0 - dedent: ^1.5.3 - fs-extra: ^11.2.0 - get-stream: ^9.0.1 - git-url-parse: ^14.1.0 - graceful-fs: ^4.2.11 - is-stream: ^4.0.1 - load-json-file: ^7.0.1 - make-dir: ^5.0.0 - minimatch: ^9.0.5 - new-github-release-url: ^2.0.0 - node-fetch: ^3.3.2 - npm-package-arg: ^11.0.3 - p-limit: ^6.1.0 - p-map: ^7.0.2 - p-pipe: ^4.0.0 - p-reduce: ^3.0.0 - pify: ^6.1.0 - semver: ^7.6.3 - slash: ^5.1.0 - temp-dir: ^3.0.0 - uuid: ^10.0.0 - write-json-file: ^6.0.0 - checksum: 8af4fc477cf277433e6c520406ad7bccb72a99f7b09cae17a7e188bda86a27a91b60ea2c063f64bf44ed56aedaf79b78929206f4bbe123f85f36b36bb77bb030 - languageName: node - linkType: hard - -"@monaco-editor/loader@npm:^1.4.0": - version: 1.4.0 - resolution: "@monaco-editor/loader@npm:1.4.0" - dependencies: - state-local: ^1.0.6 - peerDependencies: - monaco-editor: ">= 0.21.0 < 1" - checksum: 374ec0ea872ee15b33310e105a43217148161480d3955c5cece87d0f801754cd2c45a3f6c539a75da18a066c1615756fb87eaf1003f1df6a64a0cbce5d2c3749 - languageName: node - linkType: hard - -"@monaco-editor/react@npm:^4.6.0": - version: 4.6.0 - resolution: "@monaco-editor/react@npm:4.6.0" - dependencies: - "@monaco-editor/loader": ^1.4.0 - peerDependencies: - monaco-editor: ">= 0.25.0 < 1" - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 9d44e76c5baad6db5f84c90a5540fbd3c9af691b97d76cf2a99b3c8273004d0efe44c2572d80e9d975c9af10022c21e4a66923924950a5201e82017c8b20428c - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.1 - resolution: "@npmcli/agent@npm:2.2.1" - dependencies: - agent-base: ^7.1.0 - http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.1 - lru-cache: ^10.0.1 - socks-proxy-agent: ^8.0.1 - checksum: c69aca42dbba393f517bc5777ee872d38dc98ea0e5e93c1f6d62b82b8fecdc177a57ea045f07dda1a770c592384b2dd92a5e79e21e2a7cf51c9159466a8f9c9b - languageName: node - linkType: hard - -"@npmcli/arborist@npm:^7.5.4": - version: 7.5.4 - resolution: "@npmcli/arborist@npm:7.5.4" - dependencies: - "@isaacs/string-locale-compare": ^1.1.0 - "@npmcli/fs": ^3.1.1 - "@npmcli/installed-package-contents": ^2.1.0 - "@npmcli/map-workspaces": ^3.0.2 - "@npmcli/metavuln-calculator": ^7.1.1 - "@npmcli/name-from-folder": ^2.0.0 - "@npmcli/node-gyp": ^3.0.0 - "@npmcli/package-json": ^5.1.0 - "@npmcli/query": ^3.1.0 - "@npmcli/redact": ^2.0.0 - "@npmcli/run-script": ^8.1.0 - bin-links: ^4.0.4 - cacache: ^18.0.3 - common-ancestor-path: ^1.0.1 - hosted-git-info: ^7.0.2 - json-parse-even-better-errors: ^3.0.2 - json-stringify-nice: ^1.1.4 - lru-cache: ^10.2.2 - minimatch: ^9.0.4 - nopt: ^7.2.1 - npm-install-checks: ^6.2.0 - npm-package-arg: ^11.0.2 - npm-pick-manifest: ^9.0.1 - npm-registry-fetch: ^17.0.1 - pacote: ^18.0.6 - parse-conflict-json: ^3.0.0 - proc-log: ^4.2.0 - proggy: ^2.0.0 - promise-all-reject-late: ^1.0.0 - promise-call-limit: ^3.0.1 - read-package-json-fast: ^3.0.2 - semver: ^7.3.7 - ssri: ^10.0.6 - treeverse: ^3.0.0 - walk-up-path: ^3.0.1 - bin: - arborist: bin/index.js - checksum: 1b205a6f4744ecf342a96a804a3a22b07dcf96f32ca61a877cf388a8a23b1f3bc97fa4054927a7606376d802ff9374de321b49ee9a4c95cf606420bfd8a534d9 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/fs@npm:3.1.0" - dependencies: - semver: ^7.3.5 - checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.1": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" - dependencies: - semver: ^7.3.5 - checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 - languageName: node - linkType: hard - -"@npmcli/git@npm:^5.0.0": - version: 5.0.4 - resolution: "@npmcli/git@npm:5.0.4" - dependencies: - "@npmcli/promise-spawn": ^7.0.0 - lru-cache: ^10.0.1 - npm-pick-manifest: ^9.0.0 - proc-log: ^3.0.0 - promise-inflight: ^1.0.1 - promise-retry: ^2.0.1 - semver: ^7.3.5 - which: ^4.0.0 - checksum: 3c4adb7294eb7562cb0d908f36e1967ae6bde438192affd7f103cdeebbd9b2d83cd6b41b7db2278c9acd934c4af138baa094544e8e8a530b515c4084438d0170 - languageName: node - linkType: hard - -"@npmcli/installed-package-contents@npm:^2.0.1": - version: 2.0.2 - resolution: "@npmcli/installed-package-contents@npm:2.0.2" - dependencies: - npm-bundled: ^3.0.0 - npm-normalize-package-bin: ^3.0.0 - bin: - installed-package-contents: lib/index.js - checksum: 60789d5ed209ee5df479232f62d9d38ecec36e95701cae88320b828b8651351b32d7b47d16d4c36cc7ce5000db4bf1f3e6981bed6381bdc5687ff4bc0795682d - languageName: node - linkType: hard - -"@npmcli/installed-package-contents@npm:^2.1.0": - version: 2.1.0 - resolution: "@npmcli/installed-package-contents@npm:2.1.0" - dependencies: - npm-bundled: ^3.0.0 - npm-normalize-package-bin: ^3.0.0 - bin: - installed-package-contents: bin/index.js - checksum: d0f307e0c971a4ffaea44d4f38d53b57e19222413f338bab26d4321c4a7b9098318d74719dd1f8747a6de0575ac0ba29aeb388edf6599ac8299506947f53ffb6 - languageName: node - linkType: hard - -"@npmcli/map-workspaces@npm:^3.0.2": - version: 3.0.6 - resolution: "@npmcli/map-workspaces@npm:3.0.6" - dependencies: - "@npmcli/name-from-folder": ^2.0.0 - glob: ^10.2.2 - minimatch: ^9.0.0 - read-package-json-fast: ^3.0.0 - checksum: bdb09ee1d044bb9b2857d9e2d7ca82f40783a8549b5a7e150e25f874ee354cdbc8109ad7c3df42ec412f7057d95baa05920c4d361c868a93a42146b8e4390d3d - languageName: node - linkType: hard - -"@npmcli/metavuln-calculator@npm:^7.1.1": - version: 7.1.1 - resolution: "@npmcli/metavuln-calculator@npm:7.1.1" - dependencies: - cacache: ^18.0.0 - json-parse-even-better-errors: ^3.0.0 - pacote: ^18.0.0 - proc-log: ^4.1.0 - semver: ^7.3.5 - checksum: c6297e40f914100c4effb574c55ef95cbf15d0c28e73e39f29de317b12a3d3d82571f8aca3f7635cc4c8e97bff35942c71c59a79e1a8abc93475744e61abc399 - languageName: node - linkType: hard - -"@npmcli/name-from-folder@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/name-from-folder@npm:2.0.0" - checksum: fb3ef891aa57315fb6171866847f298577c8bda98a028e93e458048477133e142b4eb45ce9f3b80454f7c257612cb01754ee782d608507698dd712164436f5bd - languageName: node - linkType: hard - -"@npmcli/node-gyp@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/node-gyp@npm:3.0.0" - checksum: fe3802b813eecb4ade7ad77c9396cb56721664275faab027e3bd8a5e15adfbbe39e2ecc19f7885feb3cfa009b96632741cc81caf7850ba74440c6a2eee7b4ffc - languageName: node - linkType: hard - -"@npmcli/package-json@npm:^5.0.0": - version: 5.0.0 - resolution: "@npmcli/package-json@npm:5.0.0" - dependencies: - "@npmcli/git": ^5.0.0 - glob: ^10.2.2 - hosted-git-info: ^7.0.0 - json-parse-even-better-errors: ^3.0.0 - normalize-package-data: ^6.0.0 - proc-log: ^3.0.0 - semver: ^7.5.3 - checksum: 0d128e84e05e8a1771c8cc1f4232053fecf32e28f44e123ad16366ca3a7fd06f272f25f0b7d058f2763cab26bc479c8fc3c570af5de6324b05cb39868dcc6264 - languageName: node - linkType: hard - -"@npmcli/package-json@npm:^5.1.0": - version: 5.1.1 - resolution: "@npmcli/package-json@npm:5.1.1" - dependencies: - "@npmcli/git": ^5.0.0 - glob: ^10.2.2 - hosted-git-info: ^7.0.0 - json-parse-even-better-errors: ^3.0.0 - normalize-package-data: ^6.0.0 - proc-log: ^4.0.0 - semver: ^7.5.3 - checksum: 073e7344ae96e8c187fe605db4cc41827916648ec1225f9ac640eae8841d3bfd7e92d56c5863591fc6ebba46f9554cb9b113b93d5ebe6e7d900ae43907fd4492 - languageName: node - linkType: hard - -"@npmcli/package-json@npm:^5.2.0": - version: 5.2.0 - resolution: "@npmcli/package-json@npm:5.2.0" - dependencies: - "@npmcli/git": ^5.0.0 - glob: ^10.2.2 - hosted-git-info: ^7.0.0 - json-parse-even-better-errors: ^3.0.0 - normalize-package-data: ^6.0.0 - proc-log: ^4.0.0 - semver: ^7.5.3 - checksum: 8df289c45b52cca88826cc737195cabf21757008e11d90b1f62d5400ff65834c0e9bcb552f235ba560c3af436a1ca3fc553b23b5cb5da8330ae56929065a6988 - languageName: node - linkType: hard - -"@npmcli/promise-spawn@npm:^7.0.0": - version: 7.0.1 - resolution: "@npmcli/promise-spawn@npm:7.0.1" - dependencies: - which: ^4.0.0 - checksum: a2b25d66d4dc835c69593bdf56588d66299fde3e80be4978347e686f24647007b794ce4da4cfcfcc569c67112720b746c4e7bf18ce45c096712d8b75fed19ec7 - languageName: node - linkType: hard - -"@npmcli/query@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/query@npm:3.1.0" - dependencies: - postcss-selector-parser: ^6.0.10 - checksum: 33c018bfcc6d64593e7969847d0442beab4e8a42b6c9f932237c9fd135c95ab55de5c4b5d5d66302dd9fc3c748bc4ead780d3595e5d586fedf9859ed6b5f2744 - languageName: node - linkType: hard - -"@npmcli/redact@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/redact@npm:2.0.0" - checksum: 7ed760ab0f30c7199d1176b35619e226f6810d3606f75870551486493f4ba388f64dcf2fbcfb0ab2059ea8ed36e6733ebb9c92f883116c45b2e3fd80da7d7106 - languageName: node - linkType: hard - -"@npmcli/run-script@npm:^8.0.0, @npmcli/run-script@npm:^8.1.0": - version: 8.1.0 - resolution: "@npmcli/run-script@npm:8.1.0" - dependencies: - "@npmcli/node-gyp": ^3.0.0 - "@npmcli/package-json": ^5.0.0 - "@npmcli/promise-spawn": ^7.0.0 - node-gyp: ^10.0.0 - proc-log: ^4.0.0 - which: ^4.0.0 - checksum: 21adfb308b9064041d6d2f7f0d53924be0e1466d558de1c9802fab9eb84850bd8e04fdd5695924f331e1a36565461500d912e187909f91c03188cc763a106986 - languageName: node - linkType: hard - -"@octokit/auth-token@npm:^5.0.0": - version: 5.1.1 - resolution: "@octokit/auth-token@npm:5.1.1" - checksum: b39516dda44aeced0326227c53aade621effe1d59c4b0f48ebe2b9fd32b5156e02705bcb2fb1bf48b11f26cc6aff1a0683c32c3d5424e0118dae6596e431d489 - languageName: node - linkType: hard - -"@octokit/core@npm:^6.1.2": - version: 6.1.2 - resolution: "@octokit/core@npm:6.1.2" - dependencies: - "@octokit/auth-token": ^5.0.0 - "@octokit/graphql": ^8.0.0 - "@octokit/request": ^9.0.0 - "@octokit/request-error": ^6.0.1 - "@octokit/types": ^13.0.0 - before-after-hook: ^3.0.2 - universal-user-agent: ^7.0.0 - checksum: e794fb11b3942f55033f4cf6c0914953fd974587309498e8709c428660fa5c098334d83af5e41457dbe67d92d70a8b559c6cc00457d6c95290fa6c9e1d4bfc42 - languageName: node - linkType: hard - -"@octokit/endpoint@npm:^10.0.0": - version: 10.1.1 - resolution: "@octokit/endpoint@npm:10.1.1" - dependencies: - "@octokit/types": ^13.0.0 - universal-user-agent: ^7.0.2 - checksum: fde158f40dc9a88e92a8ac1d347a54599aa5715ec24045be9cb8ff8decb3c17b63c91eca1bab12dfe0e0cd37433127dd05cd05db14a719dca749bc56093aa915 - languageName: node - linkType: hard - -"@octokit/graphql@npm:^8.0.0": - version: 8.1.1 - resolution: "@octokit/graphql@npm:8.1.1" - dependencies: - "@octokit/request": ^9.0.0 - "@octokit/types": ^13.0.0 - universal-user-agent: ^7.0.0 - checksum: 07239666b0ca38a7d8c581570b544ee9fd1a2616c8dd436af31879662b3345c44ed52e3d7b311840a1c5772a23f02caf7585aca56f36e50f38f0207a87577a9c - languageName: node - linkType: hard - -"@octokit/openapi-types@npm:^22.1.0": - version: 22.1.0 - resolution: "@octokit/openapi-types@npm:22.1.0" - checksum: 6c3c1ef11fd04be423eb347622a3da063b3847ba4c5e665458bf9461cf3c21a5ddbb16603b65694825537ef28b01ee6e700c37ec2981fb8eac13906b37874bb8 - languageName: node - linkType: hard - -"@octokit/openapi-types@npm:^22.2.0": - version: 22.2.0 - resolution: "@octokit/openapi-types@npm:22.2.0" - checksum: eca41feac2b83298e0d95e253ac1c5b6d65155ac57f65c5fd8d4a485d9728922d85ff4bee0e815a1f3a5421311db092bdb6da9d6104a1b1843d8b274bcad9630 - languageName: node - linkType: hard - -"@octokit/plugin-enterprise-rest@npm:^6.0.1": - version: 6.0.1 - resolution: "@octokit/plugin-enterprise-rest@npm:6.0.1" - checksum: 1c9720002f31daf62f4f48e73557dcdd7fcde6e0f6d43256e3f2ec827b5548417297186c361fb1af497fdcc93075a7b681e6ff06e2f20e4a8a3e74cc09d1f7e3 - languageName: node - linkType: hard - -"@octokit/plugin-paginate-rest@npm:^11.0.0": - version: 11.3.1 - resolution: "@octokit/plugin-paginate-rest@npm:11.3.1" - dependencies: - "@octokit/types": ^13.5.0 - peerDependencies: - "@octokit/core": 5 - checksum: 42c7c08e7287b4b85d2ae47852d2ffeb238c134ad6bcff18bddc154b15f6bec31778816c0763181401c370198390db7f6b0c3c44750fdfeec459594f7f4b5933 - languageName: node - linkType: hard - -"@octokit/plugin-request-log@npm:^5.3.1": - version: 5.3.1 - resolution: "@octokit/plugin-request-log@npm:5.3.1" - peerDependencies: - "@octokit/core": ">=6" - checksum: a27e163282c8d0ba8feee4d3cbbd1b62e1aa89a892877f7a9876fc17ddde3e1e1af922e6664221a0cabae99b8a7a2a5215b9ec2ee5222edb50e06298e99022b0 - languageName: node - linkType: hard - -"@octokit/plugin-rest-endpoint-methods@npm:^13.0.0": - version: 13.2.2 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:13.2.2" - dependencies: - "@octokit/types": ^13.5.0 - peerDependencies: - "@octokit/core": ^5 - checksum: 347b3a891a561ed1dcc307a2dce42ca48c318c465ad91a26225d3d6493aef1b7ff868e6c56a0d7aa4170d028c7429ca1ec52aed6be34615a6ed701c3bcafdb17 - languageName: node - linkType: hard - -"@octokit/request-error@npm:^6.0.1": - version: 6.1.1 - resolution: "@octokit/request-error@npm:6.1.1" - dependencies: - "@octokit/types": ^13.0.0 - checksum: cae7bc4078629a02edcf35977f496a4b943e730165f6d7828795073f99a1d884ac67343b02eff69e553a5057765e466d70ddd9d266787f505aa29018858ab06d - languageName: node - linkType: hard - -"@octokit/request@npm:^9.0.0": - version: 9.1.1 - resolution: "@octokit/request@npm:9.1.1" - dependencies: - "@octokit/endpoint": ^10.0.0 - "@octokit/request-error": ^6.0.1 - "@octokit/types": ^13.1.0 - universal-user-agent: ^7.0.2 - checksum: 0c41654911c217eb2892ce6c9c273cc2139e5510b025c71e72e1528f0d8bad2a9e578e5b305595599f2e1cb630c1812cd7d9e4f6d16a63007a7d1745f1c682ce - languageName: node - linkType: hard - -"@octokit/rest@npm:^21.0.1": - version: 21.0.1 - resolution: "@octokit/rest@npm:21.0.1" - dependencies: - "@octokit/core": ^6.1.2 - "@octokit/plugin-paginate-rest": ^11.0.0 - "@octokit/plugin-request-log": ^5.3.1 - "@octokit/plugin-rest-endpoint-methods": ^13.0.0 - checksum: 99a099a7fbb2c460955e941e0ab8d8aa7480988b9bcae80af752d8d6112aaf301f43916eac7be04e813ca97a3dd5ad5f27cc88812aa600f5bbf387dfbba2381c - languageName: node - linkType: hard - -"@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0": - version: 13.4.1 - resolution: "@octokit/types@npm:13.4.1" - dependencies: - "@octokit/openapi-types": ^22.1.0 - checksum: d47f42e8c97bd9ce410cbb7ada464f26260ca0147116611e00d9843c4b76fcd963df19d920e35c80e845d057d579f0d4be82ff0b7b7ce5e4dcaae38e012d66cb - languageName: node - linkType: hard - -"@octokit/types@npm:^13.5.0": - version: 13.5.0 - resolution: "@octokit/types@npm:13.5.0" - dependencies: - "@octokit/openapi-types": ^22.2.0 - checksum: 8e92f2b145b3c28a35312f93714245824a7b6b7353caa88edfdc85fc2ed4108321ed0c3988001ea53449fbb212febe0e8e9582744e85c3574dabe9d0441af5a0 - languageName: node - linkType: hard - -"@patternfly/react-code-editor@npm:^5.2.3": - version: 5.3.4 - resolution: "@patternfly/react-code-editor@npm:5.3.4" - dependencies: - "@monaco-editor/react": ^4.6.0 - "@patternfly/react-core": ^5.3.4 - "@patternfly/react-icons": ^5.3.2 - "@patternfly/react-styles": ^5.3.1 - react-dropzone: 14.2.3 - tslib: ^2.5.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 7f01e63a70441ada29756640aeeee04e47458fe625d6cf01b69bdfb48a8cef2df4385bfc25f6e6c5ee076efe192030a7ce6d6bb83a6d13dddf8d8f4ee7dd52b8 - languageName: node - linkType: hard - -"@patternfly/react-core@npm:^5.1.1, @patternfly/react-core@npm:^5.1.2, @patternfly/react-core@npm:^5.3.4": - version: 5.3.4 - resolution: "@patternfly/react-core@npm:5.3.4" - dependencies: - "@patternfly/react-icons": ^5.3.2 - "@patternfly/react-styles": ^5.3.1 - "@patternfly/react-tokens": ^5.3.1 - focus-trap: 7.5.2 - react-dropzone: ^14.2.3 - tslib: ^2.5.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 72c37cb99befd927a2015531018e594ea0d2e1bbb26651cdfd7da7a68eac7c9e3bfe928d85dddc0093d4ab64cde48653373dbe24fff27916f2b2527d4be2b8ee - languageName: node - linkType: hard - -"@patternfly/react-icons@npm:^5.1.1": - version: 5.2.0 - resolution: "@patternfly/react-icons@npm:5.2.0" - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: c33b7bb4d5760bbade5b989319dad4425ec13f9fbf7c7dc34924c29186798270ce3bc2cc566cc2169e695152a31afc6623bf96de7ad6d258a15e044f2dd654aa - languageName: node - linkType: hard - -"@patternfly/react-icons@npm:^5.3.2": - version: 5.3.2 - resolution: "@patternfly/react-icons@npm:5.3.2" - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 0d6f2c47905015fd70b1d2a53bb85844b04250742a37f067b42731f609bafda1f2819d77398985e4db0ac5662e24523b459013b312b9fde9a30df1f3de6bc15c - languageName: node - linkType: hard - -"@patternfly/react-styles@npm:^5.1.1": - version: 5.2.0 - resolution: "@patternfly/react-styles@npm:5.2.0" - checksum: ab38211d265c5fdcebf1c6d10503cca3fa87e7f5021021a61e0b1cf320f6f906eb7ae4279b5d7767cd657ddea4659d74b072b100416f8c6dfb485d4d31a3dc76 - languageName: node - linkType: hard - -"@patternfly/react-styles@npm:^5.3.1": - version: 5.3.1 - resolution: "@patternfly/react-styles@npm:5.3.1" - checksum: fccb4e955e45538807397c7a53ee1b1f6ebf4137a4b708ad4e03f35b0dfe7b707f64240f11ee3a48b007d628d5d55b63b33c110a1f2d268b607e73ce8eccb514 - languageName: node - linkType: hard - -"@patternfly/react-table@npm:^5.1.2": - version: 5.3.4 - resolution: "@patternfly/react-table@npm:5.3.4" - dependencies: - "@patternfly/react-core": ^5.3.4 - "@patternfly/react-icons": ^5.3.2 - "@patternfly/react-styles": ^5.3.1 - "@patternfly/react-tokens": ^5.3.1 - lodash: ^4.17.19 - tslib: ^2.5.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 40a72e827533d97b8f4ed789535c1329356a13512e7141393ea518002cca7c801d781dfbd474b3820f457d59385552dc10dea58060d8335e8308a9911a720438 - languageName: node - linkType: hard - -"@patternfly/react-tokens@npm:^5.3.1": - version: 5.3.1 - resolution: "@patternfly/react-tokens@npm:5.3.1" - checksum: 0690ab162034370715e938c73a8364d1df2770d42ae2860ecca3cdbc38bae4b5aaf2bb9e46f3a3a4cdd2402b2ca40fd6b43de9bbce35429d392853f6e17f6aec - languageName: node - linkType: hard - -"@patternfly/react-topology@npm:^5.1.0": - version: 5.2.0 - resolution: "@patternfly/react-topology@npm:5.2.0" - dependencies: - "@patternfly/react-core": ^5.1.1 - "@patternfly/react-icons": ^5.1.1 - "@patternfly/react-styles": ^5.1.1 - "@types/d3": ^7.4.0 - "@types/d3-force": ^1.2.1 - "@types/dagre": 0.7.42 - "@types/react-measure": ^2.0.6 - d3: ^7.8.0 - dagre: 0.8.2 - lodash: ^4.17.19 - mobx: ^6.9.0 - mobx-react: ^7.6.0 - point-in-svg-path: ^1.0.1 - popper.js: ^1.16.1 - react-measure: ^2.3.0 - tslib: ^2.0.0 - webcola: 3.4.0 - peerDependencies: - react: ^17 || ^18 - react-dom: ^17 || ^18 - checksum: 45e8534f9d37e3271c63eaeb2b70c743f3712690e09ecf4897735549a9c9581aa6a38325d1104bb888405eb0fcbf252b914e948f445098afcb198fd16b40588c - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f - languageName: node - linkType: hard - -"@pkgr/core@npm:^0.1.0": - version: 0.1.1 - resolution: "@pkgr/core@npm:0.1.1" - checksum: 6f25fd2e3008f259c77207ac9915b02f1628420403b2630c92a07ff963129238c9262afc9e84344c7a23b5cc1f3965e2cd17e3798219f5fd78a63d144d3cceba - languageName: node - linkType: hard - -"@react-dnd/asap@npm:^5.0.1": - version: 5.0.2 - resolution: "@react-dnd/asap@npm:5.0.2" - checksum: 18f040e53512983f11c542ef21e6e4cac605d585a10cd764b13bc1b2f3ac7490e0fa40503adc348d8387aa45bc8e7eebe9cb33003b960a30bb5fde666ff2adde - languageName: node - linkType: hard - -"@react-dnd/invariant@npm:^4.0.1": - version: 4.0.2 - resolution: "@react-dnd/invariant@npm:4.0.2" - checksum: 594f6d78896c19bb8f023e101334fd91a9fdff686117bd8e830ba53737ec0a6042dab66971d3d63c7afbc622103909aff7a64c5c6767e0aa8d9561fd42705016 - languageName: node - linkType: hard - -"@react-dnd/shallowequal@npm:^4.0.1": - version: 4.0.2 - resolution: "@react-dnd/shallowequal@npm:4.0.2" - checksum: 7f21d691bddbfd4d2830948cbeefecca1600b2b46bcb1934926795f07ae8a1fa60a3dfd3a2112be5ef682c3820c80a99711e9fa15843f7e300acb25a4ecb70ab - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^5.1.0": - version: 5.1.0 - resolution: "@rollup/pluginutils@npm:5.1.0" - dependencies: - "@types/estree": ^1.0.0 - estree-walker: ^2.0.2 - picomatch: ^2.3.1 - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 3cc5a6d91452a6eabbfd1ae79b4dd1f1e809d2eecda6e175deb784e75b0911f47e9ecce73f8dd315d6a8b3f362582c91d3c0f66908b6ced69345b3cbe28f8ce8 - languageName: node - linkType: hard - -"@rollup/rollup-android-arm-eabi@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.13.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-android-arm64@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-android-arm64@npm:4.13.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-arm64@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.13.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-x64@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.13.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.13.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-gnu@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.13.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-musl@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.13.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-gnu@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.13.0" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-gnu@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.13.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-musl@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.13.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-win32-arm64-msvc@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.13.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-ia32-msvc@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.13.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@rollup/rollup-win32-x64-msvc@npm:4.13.0": - version: 4.13.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.13.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@sec-ant/readable-stream@npm:^0.4.1": - version: 0.4.1 - resolution: "@sec-ant/readable-stream@npm:0.4.1" - checksum: eb56f72a70995f725269f1c1c206d6dbeb090e88413b1302a456c600041175a7a484c2f0172454f7bed65a8ab95ffed7647d8ad03e6c23b1e3bbc9845f78cd17 - languageName: node - linkType: hard - -"@sigstore/bundle@npm:^2.2.0": - version: 2.2.0 - resolution: "@sigstore/bundle@npm:2.2.0" - dependencies: - "@sigstore/protobuf-specs": ^0.3.0 - checksum: 08f71c19b5223694e4915dd1ada9dcae66637051cbb7ac3968122bd38e8a2078e52d28ed6b18f1dbe2408740304cf76675180fdc51cbd74b167200a47d4a325b - languageName: node - linkType: hard - -"@sigstore/core@npm:^1.0.0": - version: 1.0.0 - resolution: "@sigstore/core@npm:1.0.0" - checksum: ebbb4de8f6ef71f2c5812a5aaa01900db630c8783ecbac7a27fc1d18a5f1dce77c052d80510d778b29c257ed7a0c7de119e994868cd5689006ef33184b68ef8e - languageName: node - linkType: hard - -"@sigstore/protobuf-specs@npm:^0.3.0": - version: 0.3.0 - resolution: "@sigstore/protobuf-specs@npm:0.3.0" - checksum: 584ea2888aede7124c747a343ab09dd5234195973f15169b6afff19f87347c2e29a2e688298dba87827883c704096fc31a8a0748049dde0b85fbec2cf922a350 - languageName: node - linkType: hard - -"@sigstore/sign@npm:^2.2.3": - version: 2.2.3 - resolution: "@sigstore/sign@npm:2.2.3" - dependencies: - "@sigstore/bundle": ^2.2.0 - "@sigstore/core": ^1.0.0 - "@sigstore/protobuf-specs": ^0.3.0 - make-fetch-happen: ^13.0.0 - checksum: 191a74d6bfa4d8c8fafeebc07f871145a1f883a832a763f27ec1973f182f713fce07828d98d6052a96277a4ac4dd0f915adac4cf33bcde6737c905b43304be9e - languageName: node - linkType: hard - -"@sigstore/tuf@npm:^2.3.1": - version: 2.3.1 - resolution: "@sigstore/tuf@npm:2.3.1" - dependencies: - "@sigstore/protobuf-specs": ^0.3.0 - tuf-js: ^2.2.0 - checksum: 809befef876567b14240ee41baabc5b595e9d5a245c7cf31b7ae2e37f4600e0ac353b010807f5caa7b720d12f630ea5b33d2f222c1844083d6a1ee08b3cc4250 - languageName: node - linkType: hard - -"@sigstore/verify@npm:^1.1.0": - version: 1.1.0 - resolution: "@sigstore/verify@npm:1.1.0" - dependencies: - "@sigstore/bundle": ^2.2.0 - "@sigstore/core": ^1.0.0 - "@sigstore/protobuf-specs": ^0.3.0 - checksum: dcc978d7cbad4adf05d16a44b17d6bbce401381adf3909b3524a627eee37ed0ef1b66c4db1eba0965d42a3dea2444a01c985ea3358f01ec48053eeb13e0a6aad - languageName: node - linkType: hard - -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 - languageName: node - linkType: hard - -"@sindresorhus/merge-streams@npm:^2.1.0": - version: 2.2.1 - resolution: "@sindresorhus/merge-streams@npm:2.2.1" - checksum: edb3d7b8fd9cdf4976c32483f073bb903f8ee94a2f1e93b47cc7d9205ac77cf64fce751ea45b1b39036a8de19d980cb942fff596c0d200232f3e1d4835c8ca4b - languageName: node - linkType: hard - -"@sinonjs/commons@npm:^3.0.0": - version: 3.0.1 - resolution: "@sinonjs/commons@npm:3.0.1" - dependencies: - type-detect: 4.0.8 - checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" - dependencies: - "@sinonjs/commons": ^3.0.0 - checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 - languageName: node - linkType: hard - -"@storybook/addon-actions@npm:^8.0.0": - version: 8.2.9 - resolution: "@storybook/addon-actions@npm:8.2.9" - dependencies: - "@storybook/global": ^5.0.0 - "@types/uuid": ^9.0.1 - dequal: ^2.0.2 - polished: ^4.2.2 - uuid: ^9.0.0 - peerDependencies: - storybook: ^8.2.9 - checksum: 3d9cdc9bcfb4fe2cfc9baece1e29ec77fefbcb92c0c77edd9fcc54db506e55dba419e5b8cb2fe49073108a00e0e808e0d55eceb6772071ed9add864cc9b34fbf - languageName: node - linkType: hard - -"@storybook/addon-knobs@npm:^8.0.0": - version: 8.0.1 - resolution: "@storybook/addon-knobs@npm:8.0.1" - dependencies: - copy-to-clipboard: ^3.3.3 - core-js: ^3.29.0 - escape-html: ^1.0.3 - fast-deep-equal: ^3.1.3 - global: ^4.4.0 - lodash: ^4.17.21 - prop-types: ^15.8.1 - qs: ^6.11.1 - react-colorful: ^5.6.1 - react-lifecycles-compat: ^3.0.4 - react-select: ^5.7.0 - peerDependencies: - "@storybook/components": ^8.0.0 - "@storybook/core-events": ^8.0.0 - "@storybook/manager-api": ^8.0.0 - "@storybook/theming": ^8.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - checksum: 6540d0339aee2c4e5a16db467a04c8757822c676709af608cb086b3a04617113f4fd7cf218f2d10b6933e069927c8501eb8255e1fa54e8789f0b2e350f9cdec0 - languageName: node - linkType: hard - -"@storybook/global@npm:^5.0.0": - version: 5.0.0 - resolution: "@storybook/global@npm:5.0.0" - checksum: ede0ad35ec411fe31c61150dbd118fef344d1d0e72bf5d3502368e35cf68126f6b7ae4a0ab5e2ffe2f0baa3b4286f03ad069ba3e098e1725449ef08b7e154ba8 - languageName: node - linkType: hard - -"@testing-library/dom@npm:^10.0.0": - version: 10.0.0 - resolution: "@testing-library/dom@npm:10.0.0" - dependencies: - "@babel/code-frame": ^7.10.4 - "@babel/runtime": ^7.12.5 - "@types/aria-query": ^5.0.1 - aria-query: 5.3.0 - chalk: ^4.1.0 - dom-accessibility-api: ^0.5.9 - lz-string: ^1.5.0 - pretty-format: ^27.0.2 - checksum: 682cc22cb3414ffbcf5d9bac777907167c5523f2dcbe5d96cd2e99386009acd879640c7fe5b1c66b199c2d2679f97057410557b3848b871f59c547b1dc8fc28a - languageName: node - linkType: hard - -"@testing-library/jest-dom@npm:^6.4.2": - version: 6.5.0 - resolution: "@testing-library/jest-dom@npm:6.5.0" - dependencies: - "@adobe/css-tools": ^4.4.0 - aria-query: ^5.0.0 - chalk: ^3.0.0 - css.escape: ^1.5.1 - dom-accessibility-api: ^0.6.3 - lodash: ^4.17.21 - redent: ^3.0.0 - checksum: c2d14103ebe3358852ec527ff7512f64207a39932b2f7b6dff7e73ba91296b01a71bad9a9584b6ee010681380a906c1740af50470adc6db660e1c7585d012ebf - languageName: node - linkType: hard - -"@testing-library/react@npm:^15.0.0": - version: 15.0.7 - resolution: "@testing-library/react@npm:15.0.7" - dependencies: - "@babel/runtime": ^7.12.5 - "@testing-library/dom": ^10.0.0 - "@types/react-dom": ^18.0.0 - peerDependencies: - "@types/react": ^18.0.0 - react: ^18.0.0 - react-dom: ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: eb33fd82eb811bb8612aa154e430a2c1c251d5ed45a477ef57fe20095db494ea7dcfa6b1e1e2bffb0c7ee10c86e408745d95a879be8ca8fbe301bb91e5f2e5db - languageName: node - linkType: hard - -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - -"@ts-graphviz/adapter@npm:^2.0.3": - version: 2.0.3 - resolution: "@ts-graphviz/adapter@npm:2.0.3" - dependencies: - "@ts-graphviz/common": ^2.1.2 - checksum: 36af79c9ac12a8aebe4374237e6842a931b6df5508f7005599dca699d221cbeb96a7369beedc2ac6cee7c8ec428f9fdcd2a7000d9d363eb4fd45c99750091146 - languageName: node - linkType: hard - -"@ts-graphviz/ast@npm:^2.0.3": - version: 2.0.3 - resolution: "@ts-graphviz/ast@npm:2.0.3" - dependencies: - "@ts-graphviz/common": ^2.1.2 - checksum: 761632345204830864a0252ae0d138e064c367ae804beee0de11fccad4065d95e939522ddd127b1545576e7d3898cf3936e1e6eec6267e367ca878087807d7a0 - languageName: node - linkType: hard - -"@ts-graphviz/common@npm:^2.1.2": - version: 2.1.2 - resolution: "@ts-graphviz/common@npm:2.1.2" - checksum: 4a30c1f5ddfad5e3e134f600915f0c0a5e6fb96201fe27d0ff5d0f645663b32e8eb27cf861263ee13534750596135d161ce871fb65ab1cb632e52916c3b7917d - languageName: node - linkType: hard - -"@ts-graphviz/core@npm:^2.0.3": - version: 2.0.3 - resolution: "@ts-graphviz/core@npm:2.0.3" - dependencies: - "@ts-graphviz/ast": ^2.0.3 - "@ts-graphviz/common": ^2.1.2 - checksum: b7f9a634f794391783e3a1575b92ca8d845e4a1c3230f517521f520252a286e4636a182d726bad6c6a6bf52d164e2572988bcb5316a10c229a7de264d1b05ef6 - languageName: node - linkType: hard - -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node10@npm:1.0.9" - checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.3 - resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.4 - resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff - languageName: node - linkType: hard - -"@tufjs/canonical-json@npm:2.0.0": - version: 2.0.0 - resolution: "@tufjs/canonical-json@npm:2.0.0" - checksum: cc719a1d0d0ae1aa1ba551a82c87dcbefac088e433c03a3d8a1d547ea721350e47dab4ab5b0fca40d5c7ab1f4882e72edc39c9eae15bf47c45c43bcb6ee39f4f - languageName: node - linkType: hard - -"@tufjs/models@npm:2.0.0": - version: 2.0.0 - resolution: "@tufjs/models@npm:2.0.0" - dependencies: - "@tufjs/canonical-json": 2.0.0 - minimatch: ^9.0.3 - checksum: aac9f2f3a4838112764bd41c1ddcb15665e133412decbbc3e35a733ae63e4d69db4636df6d42ff3a88e7dd9ffbdc17c2d90737ac52e630403d1e86d595c45ea4 - languageName: node - linkType: hard - -"@types/aria-query@npm:^5.0.1": - version: 5.0.4 - resolution: "@types/aria-query@npm:5.0.4" - checksum: ad8b87e4ad64255db5f0a73bc2b4da9b146c38a3a8ab4d9306154334e0fc67ae64e76bfa298eebd1e71830591fb15987e5de7111bdb36a2221bdc379e3415fb0 - languageName: node - linkType: hard - -"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.20.5": - version: 7.20.5 - resolution: "@types/babel__core@npm:7.20.5" - dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 - languageName: node - linkType: hard - -"@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" - dependencies: - "@babel/types": ^7.0.0 - checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 - languageName: node - linkType: hard - -"@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" - dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 - languageName: node - linkType: hard - -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.20.5 - resolution: "@types/babel__traverse@npm:7.20.5" - dependencies: - "@babel/types": ^7.20.7 - checksum: 608e0ab4fc31cd47011d98942e6241b34d461608c0c0e153377c5fd822c436c475f1ded76a56bfa76a1adf8d9266b727bbf9bfac90c4cb152c97f30dadc5b7e8 - languageName: node - linkType: hard - -"@types/d3-array@npm:*": - version: 3.2.1 - resolution: "@types/d3-array@npm:3.2.1" - checksum: 8a41cee0969e53bab3f56cc15c4e6c9d76868d6daecb2b7d8c9ce71e0ececccc5a8239697cc52dadf5c665f287426de5c8ef31a49e7ad0f36e8846889a383df4 - languageName: node - linkType: hard - -"@types/d3-axis@npm:*": - version: 3.0.6 - resolution: "@types/d3-axis@npm:3.0.6" - dependencies: - "@types/d3-selection": "*" - checksum: ea1065d9e6d134c04427763603cbe9d549b8b5785b8ae0d002b5b14a362619d5b8f5ee3c2fda8b36b7e5a413cbcd387e1a2d89898b919a9f0cc91ad4e67b5ab5 - languageName: node - linkType: hard - -"@types/d3-brush@npm:*": - version: 3.0.6 - resolution: "@types/d3-brush@npm:3.0.6" - dependencies: - "@types/d3-selection": "*" - checksum: e5166bc53e5c914b1fed0a6ce55ca14d76ae11c5afd16b724b8ae47989e977c4af02bb07496d1ccd0a77f4ccd9a2ca7345e1d289bcfce16490fe4b39a9e0d170 - languageName: node - linkType: hard - -"@types/d3-chord@npm:*": - version: 3.0.6 - resolution: "@types/d3-chord@npm:3.0.6" - checksum: b511cf372ed8a0086d37a715c0d4aca811b614454e1f7c1561fbcd46863beaccdb115d274a7a992a30a8218393fbc3e1fdd7ca6e9d572e729a4570002c327083 - languageName: node - linkType: hard - -"@types/d3-color@npm:*": - version: 3.1.3 - resolution: "@types/d3-color@npm:3.1.3" - checksum: 8a0e79a709929502ec4effcee2c786465b9aec51b653ba0b5d05dbfec3e84f418270dd603002d94021885061ff592f614979193bd7a02ad76317f5608560e357 - languageName: node - linkType: hard - -"@types/d3-contour@npm:*": - version: 3.0.6 - resolution: "@types/d3-contour@npm:3.0.6" - dependencies: - "@types/d3-array": "*" - "@types/geojson": "*" - checksum: 83c13eb0567e95d6675d6d81cbeab38d0899c5af70a7c69354e23e0860ddb2f3e911d2cacd33a8baa60ce7846b38785a337b2d7c8d2763a1340bfb999b4bd2ab - languageName: node - linkType: hard - -"@types/d3-delaunay@npm:*": - version: 6.0.4 - resolution: "@types/d3-delaunay@npm:6.0.4" - checksum: 502fe0eb91f7d05b0f57904d68028c24348a54b1e5458009caf662de995d0e59bd82cd701b4af0087d614ee9e456d415fe32d63c25272ca753bf12b3f27b2d77 - languageName: node - linkType: hard - -"@types/d3-dispatch@npm:*": - version: 3.0.6 - resolution: "@types/d3-dispatch@npm:3.0.6" - checksum: f82076c7d205885480d363c92c19b8e0d6b9e529a3a78ce772f96a7cc4cce01f7941141f148828337035fac9676b13e7440565530491d560fdf12e562cb56573 - languageName: node - linkType: hard - -"@types/d3-drag@npm:*": - version: 3.0.7 - resolution: "@types/d3-drag@npm:3.0.7" - dependencies: - "@types/d3-selection": "*" - checksum: 1107cb1667ead79073741c06ea4a9e8e4551698f6c9c60821e327a6aa30ca2ba0b31a6fe767af85a2e38a22d2305f6c45b714df15c2bba68adf58978223a5fc5 - languageName: node - linkType: hard - -"@types/d3-dsv@npm:*": - version: 3.0.7 - resolution: "@types/d3-dsv@npm:3.0.7" - checksum: 5025e01459827d09d14e0d00281995a04042ce9e3e76444c5a65466c1d29649d82cbfaa9251e33837bf576f5c587525d8d8ff5aacc6bd3b831824d54449261b9 - languageName: node - linkType: hard - -"@types/d3-ease@npm:*": - version: 3.0.2 - resolution: "@types/d3-ease@npm:3.0.2" - checksum: 0885219966294bfc99548f37297e1c75e75da812a5f3ec941977ebb57dcab0a25acec5b2bbd82d09a49d387daafca08521ca269b7e4c27ddca7768189e987b54 - languageName: node - linkType: hard - -"@types/d3-fetch@npm:*": - version: 3.0.7 - resolution: "@types/d3-fetch@npm:3.0.7" - dependencies: - "@types/d3-dsv": "*" - checksum: e60cf60b25cbc49b2066ac2a3638f610c7379000562b0f499dd90fd57a8cb9740c24667a70496c2a66456d42867afeffb1722a75b26d95e7d7ee8667d96b0b36 - languageName: node - linkType: hard - -"@types/d3-force@npm:*": - version: 3.0.9 - resolution: "@types/d3-force@npm:3.0.9" - checksum: 6ec16109b5048cda0877931b5e60565436fee697ccbc223eae1562c4a8401dddacb25b0137da2babca2a810ad0471114444e08c8e395ce90758d768a05a23b4f - languageName: node - linkType: hard - -"@types/d3-force@npm:^1.2.1": - version: 1.2.7 - resolution: "@types/d3-force@npm:1.2.7" - checksum: 9290f55beebcb4826b9b92dab2bb5204ca76a546ef5d84ded789f915605196da52d548f0a7b23c6e4327a1361096a20b096a9918148d1e0f3a10945a332b1844 - languageName: node - linkType: hard - -"@types/d3-format@npm:*": - version: 3.0.4 - resolution: "@types/d3-format@npm:3.0.4" - checksum: e69421cd93861a0c080084b0b23d4a5d6a427497559e46898189002fb756dae2c7c858b465308f6bcede7272b90e39ce8adab810bded2309035a5d9556c59134 - languageName: node - linkType: hard - -"@types/d3-geo@npm:*": - version: 3.1.0 - resolution: "@types/d3-geo@npm:3.1.0" - dependencies: - "@types/geojson": "*" - checksum: a4b2daa8a64012912ce7186891e8554af123925dca344c111b771e168a37477e02d504c6c94ee698440380e8c4f3f373d6755be97935da30eae0904f6745ce40 - languageName: node - linkType: hard - -"@types/d3-hierarchy@npm:*": - version: 3.1.6 - resolution: "@types/d3-hierarchy@npm:3.1.6" - checksum: cb6a80823fd8820277863f78dac7c8072b364c548cf266215d6bb3f3d017304348cfcb1ca806f38de48ce3ccd5e6af12c70814a10660f882ee4a48e6ae710afa - languageName: node - linkType: hard - -"@types/d3-interpolate@npm:*": - version: 3.0.4 - resolution: "@types/d3-interpolate@npm:3.0.4" - dependencies: - "@types/d3-color": "*" - checksum: efd2770e174e84fc7316fdafe03cf3688451f767dde1fa6211610137f495be7f3923db7e1723a6961a0e0e9ae0ed969f4f47c038189fa0beb1d556b447922622 - languageName: node - linkType: hard - -"@types/d3-path@npm:*": - version: 3.1.0 - resolution: "@types/d3-path@npm:3.1.0" - checksum: 1e81b56ed33ba1ac954a8c42c78c3fcf2716927fe5d01b2003591193ad3b639572a3dfcedd9bf78b6b73215a5cfb01cede8f25c936e95ac18fbe3858f9b62f5c - languageName: node - linkType: hard - -"@types/d3-polygon@npm:*": - version: 3.0.2 - resolution: "@types/d3-polygon@npm:3.0.2" - checksum: 7cf1eadb54f02dd3617512b558f4c0f3811f8a6a8c887d9886981c3cc251db28b68329b2b0707d9f517231a72060adbb08855227f89bef6ef30caedc0a67cab2 - languageName: node - linkType: hard - -"@types/d3-quadtree@npm:*": - version: 3.0.6 - resolution: "@types/d3-quadtree@npm:3.0.6" - checksum: 631fb1a50dbe4fb0c97574891b180ec3d6a0f524bbd8aee8dfd44eda405e7ed1ca2b03d5568a35f697d09e5e4b598117e149236874b0c8764979a3d6242bb0bc - languageName: node - linkType: hard - -"@types/d3-random@npm:*": - version: 3.0.3 - resolution: "@types/d3-random@npm:3.0.3" - checksum: 33285b57768a724d2466ac1deec002432805c9df3e475ffb7f7fec66681cfe3e18d2f68b7f8ba45f400b274907bbebfe8adff14c9a97ef1987e476135e784925 - languageName: node - linkType: hard - -"@types/d3-scale-chromatic@npm:*": - version: 3.0.3 - resolution: "@types/d3-scale-chromatic@npm:3.0.3" - checksum: a465d126a00a71d3824957283580b4b404fe6f6bb52eb2b7303047fffed2bec6e31aeb34bfb30313e72ee1d75243c50ec5a45824eaf547f9c0849a1379527662 - languageName: node - linkType: hard - -"@types/d3-scale@npm:*": - version: 4.0.8 - resolution: "@types/d3-scale@npm:4.0.8" - dependencies: - "@types/d3-time": "*" - checksum: 3b1906da895564f73bb3d0415033d9a8aefe7c4f516f970176d5b2ff7a417bd27ae98486e9a9aa0472001dc9885a9204279a1973a985553bdb3ee9bbc1b94018 - languageName: node - linkType: hard - -"@types/d3-selection@npm:*": - version: 3.0.10 - resolution: "@types/d3-selection@npm:3.0.10" - checksum: 8a1b0940eca565d754c1898b9e4f86e2778e4135878b76b3b8a89d497e37675d423ec3376f248577a502bccb55c1218cc9f6b5688a29a3b500973de8fc5f1c5c - languageName: node - linkType: hard - -"@types/d3-shape@npm:*": - version: 3.1.6 - resolution: "@types/d3-shape@npm:3.1.6" - dependencies: - "@types/d3-path": "*" - checksum: bd765be021019c43c8dca066a798a1de28a051d1213db6ca25f76c9e577da7ec40a592e3bda7628383ab48cb87164fe60b95eb5ec23761b2012bd0adb30c549a - languageName: node - linkType: hard - -"@types/d3-time-format@npm:*": - version: 4.0.3 - resolution: "@types/d3-time-format@npm:4.0.3" - checksum: e981fc9780697a9d8c5d1ddf1167d9c6bc28e4e610afddff1384fe55e6eb52cb65309b2a0a1d4cf817413b0a80b9f1a652fe0b2cb8054ace4eafff80a6093aa5 - languageName: node - linkType: hard - -"@types/d3-time@npm:*": - version: 3.0.3 - resolution: "@types/d3-time@npm:3.0.3" - checksum: a071826c80efdb1999e6406fef2db516d45f3906da3a9a4da8517fa863bae53c4c1056ca5347a20921660607d21ec874fd2febe0e961adb7be6954255587d08f - languageName: node - linkType: hard - -"@types/d3-timer@npm:*": - version: 3.0.2 - resolution: "@types/d3-timer@npm:3.0.2" - checksum: 1643eebfa5f4ae3eb00b556bbc509444d88078208ec2589ddd8e4a24f230dd4cf2301e9365947e70b1bee33f63aaefab84cd907822aae812b9bc4871b98ab0e1 - languageName: node - linkType: hard - -"@types/d3-transition@npm:*": - version: 3.0.8 - resolution: "@types/d3-transition@npm:3.0.8" - dependencies: - "@types/d3-selection": "*" - checksum: 4ff2727f0f2305cbe4fed1ef860a6cac44393607db42e4d0975eb6348338c2c3091b25bc5a1bddd31d7f3e10d1028187f7d271f6e4239d67f485f28c4f076a8b - languageName: node - linkType: hard - -"@types/d3-zoom@npm:*": - version: 3.0.8 - resolution: "@types/d3-zoom@npm:3.0.8" - dependencies: - "@types/d3-interpolate": "*" - "@types/d3-selection": "*" - checksum: a1685728949ed39faf8ce162cc13338639c57bc2fd4d55fc7902b2632cad2bc2a808941263e57ce6685647e8a6a0a556e173386a52d6bb74c9ed6195b68be3de - languageName: node - linkType: hard - -"@types/d3@npm:^7.4.0": - version: 7.4.3 - resolution: "@types/d3@npm:7.4.3" - dependencies: - "@types/d3-array": "*" - "@types/d3-axis": "*" - "@types/d3-brush": "*" - "@types/d3-chord": "*" - "@types/d3-color": "*" - "@types/d3-contour": "*" - "@types/d3-delaunay": "*" - "@types/d3-dispatch": "*" - "@types/d3-drag": "*" - "@types/d3-dsv": "*" - "@types/d3-ease": "*" - "@types/d3-fetch": "*" - "@types/d3-force": "*" - "@types/d3-format": "*" - "@types/d3-geo": "*" - "@types/d3-hierarchy": "*" - "@types/d3-interpolate": "*" - "@types/d3-path": "*" - "@types/d3-polygon": "*" - "@types/d3-quadtree": "*" - "@types/d3-random": "*" - "@types/d3-scale": "*" - "@types/d3-scale-chromatic": "*" - "@types/d3-selection": "*" - "@types/d3-shape": "*" - "@types/d3-time": "*" - "@types/d3-time-format": "*" - "@types/d3-timer": "*" - "@types/d3-transition": "*" - "@types/d3-zoom": "*" - checksum: 12234aa093c8661546168becdd8956e892b276f525d96f65a7b32fed886fc6a569fe5a1171bff26fef2a5663960635f460c9504a6f2d242ba281a2b6c8c6465c - languageName: node - linkType: hard - -"@types/dagre@npm:0.7.42": - version: 0.7.42 - resolution: "@types/dagre@npm:0.7.42" - checksum: c63a0e9155df7d00b4e3bd5a781a69a958cf7281d2fec90cbea0e553841cd41bef3b35c749b1b481811ac7d81d25eb8a8366ea17ac647a907828e399ccdce82d - languageName: node - linkType: hard - -"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a - languageName: node - linkType: hard - -"@types/geojson@npm:*": - version: 7946.0.14 - resolution: "@types/geojson@npm:7946.0.14" - checksum: ae511bee6488ae3bd5a3a3347aedb0371e997b14225b8983679284e22fa4ebd88627c6e3ff8b08bf4cc35068cb29310c89427311ffc9322c255615821a922e71 - languageName: node - linkType: hard - -"@types/graceful-fs@npm:^4.1.3": - version: 4.1.9 - resolution: "@types/graceful-fs@npm:4.1.9" - dependencies: - "@types/node": "*" - checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 - languageName: node - linkType: hard - -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.6 - resolution: "@types/istanbul-lib-coverage@npm:2.0.6" - checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" - dependencies: - "@types/istanbul-lib-report": "*" - checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 - languageName: node - linkType: hard - -"@types/jest@npm:^29.5.12": - version: 29.5.12 - resolution: "@types/jest@npm:29.5.12" - dependencies: - expect: ^29.0.0 - pretty-format: ^29.0.0 - checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c - languageName: node - linkType: hard - -"@types/jsdom@npm:^20.0.0": - version: 20.0.1 - resolution: "@types/jsdom@npm:20.0.1" - dependencies: - "@types/node": "*" - "@types/tough-cookie": "*" - parse5: ^7.0.0 - checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.9": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 - languageName: node - linkType: hard - -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac - languageName: node - linkType: hard - -"@types/mute-stream@npm:^0.0.4": - version: 0.0.4 - resolution: "@types/mute-stream@npm:0.0.4" - dependencies: - "@types/node": "*" - checksum: af8d83ad7b68ea05d9357985daf81b6c9b73af4feacb2f5c2693c7fd3e13e5135ef1bd083ce8d5bdc8e97acd28563b61bb32dec4e4508a8067fcd31b8a098632 - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:^22.1.0": - version: 22.4.1 - resolution: "@types/node@npm:22.4.1" - dependencies: - undici-types: ~6.19.2 - checksum: 341eb54867a3ec8eee7853ff9a9fc92d9f66305b70c9bc5db78492d51f4da3cd81e50c077f5d98eef1835fcbca00c58bb2a229ef56b0e377e48a3284401bf3f6 - languageName: node - linkType: hard - -"@types/node@npm:^20.11.6": - version: 20.16.1 - resolution: "@types/node@npm:20.16.1" - dependencies: - undici-types: ~6.19.2 - checksum: 2b8f30f416f5c1851ffa8a13ef6c464a5e355edfd763713c22813a7839f6419a64e27925f9e89c972513d78432263179332f0bffb273d16498233bfdf495d096 - languageName: node - linkType: hard - -"@types/normalize-package-data@npm:^2.4.1, @types/normalize-package-data@npm:^2.4.3": - version: 2.4.4 - resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 - languageName: node - linkType: hard - -"@types/pako@npm:^2.0.3": - version: 2.0.3 - resolution: "@types/pako@npm:2.0.3" - checksum: 0746dd5d29eccf5b2e6cceb3ccb093851219e78bd2e2e20d25757e247987139e061e5d4ba37cb5295493f06e3c683c74f8876011cd8a3f3748a09244fbc841d9 - languageName: node - linkType: hard - -"@types/parse-json@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/parse-json@npm:4.0.2" - checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 - languageName: node - linkType: hard - -"@types/prop-types@npm:*": - version: 15.7.11 - resolution: "@types/prop-types@npm:15.7.11" - checksum: 7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54 - languageName: node - linkType: hard - -"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.18": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" - dependencies: - "@types/react": "*" - checksum: a0cd9b1b815a6abd2a367a9eabdd8df8dd8f13f95897b2f9e1359ea3ac6619f957c1432ece004af7d95e2a7caddbba19faa045f831f32d6263483fc5404a7596 - languageName: node - linkType: hard - -"@types/react-measure@npm:^2.0.6": - version: 2.0.12 - resolution: "@types/react-measure@npm:2.0.12" - dependencies: - "@types/react": "*" - checksum: c04ab0835bc4732383a9c7cf90aabab1155e3834fc4ee8470e173964aaa301963057a1905db51c208d5bc833df345720565ae430ac4f41e34e6aff6d9671cc61 - languageName: node - linkType: hard - -"@types/react-transition-group@npm:^4.4.0": - version: 4.4.10 - resolution: "@types/react-transition-group@npm:4.4.10" - dependencies: - "@types/react": "*" - checksum: fe2ea11f70251e9f79f368e198c18fd469b1d4f1e1d44e4365845b44e15974b0ec925100036f449b023b0ca3480a82725c5f0a73040e282ad32ec7b0def9b57c - languageName: node - linkType: hard - -"@types/react@npm:*, @types/react@npm:^18.2.53": - version: 18.3.4 - resolution: "@types/react@npm:18.3.4" - dependencies: - "@types/prop-types": "*" - csstype: ^3.0.2 - checksum: 555ccd1af86a23c781dea0360de64b2f7a0708cdcbf9e6496744b77630065868526fd55147c727dc5ef11b7fd712b04f7898757a84c67e2eb9dfd4c4ead10d95 - languageName: node - linkType: hard - -"@types/semver@npm:^7.3.12": - version: 7.5.7 - resolution: "@types/semver@npm:7.5.7" - checksum: 5af9b13e3d74d86d4b618f6506ccbded801fb35dbc28608cd5a7bfb8bcac0021dd35ef305a72a0c2a8def0cff60acd706bfee16a9ed1c39a893d2a175e778ea7 - languageName: node - linkType: hard - -"@types/stack-utils@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/stack-utils@npm:2.0.3" - checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 - languageName: node - linkType: hard - -"@types/tough-cookie@npm:*": - version: 4.0.5 - resolution: "@types/tough-cookie@npm:4.0.5" - checksum: f19409d0190b179331586365912920d192733112a195e870c7f18d20ac8adb7ad0b0ff69dad430dba8bc2be09593453a719cfea92dc3bda19748fd158fe1498d - languageName: node - linkType: hard - -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 - languageName: node - linkType: hard - -"@types/wrap-ansi@npm:^3.0.0": - version: 3.0.0 - resolution: "@types/wrap-ansi@npm:3.0.0" - checksum: 492f0610093b5802f45ca292777679bb9b381f1f32ae939956dd9e00bf81dba7cc99979687620a2817d9a7d8b59928207698166c47a0861c6a2e5c30d4aaf1e9 - languageName: node - linkType: hard - -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" - dependencies: - "@types/yargs-parser": "*" - checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^7.0.0": - version: 7.18.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" - dependencies: - "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/type-utils": 7.18.0 - "@typescript-eslint/utils": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - graphemer: ^1.4.0 - ignore: ^5.3.1 - natural-compare: ^1.4.0 - ts-api-utils: ^1.3.0 - peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: dfcf150628ca2d4ccdfc20b46b0eae075c2f16ef5e70d9d2f0d746acf4c69a09f962b93befee01a529f14bbeb3e817b5aba287d7dd0edc23396bc5ed1f448c3d - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^7.0.0": - version: 7.18.0 - resolution: "@typescript-eslint/parser@npm:7.18.0" - dependencies: - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/typescript-estree": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - debug: ^4.3.4 - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 132b56ac3b2d90b588d61d005a70f6af322860974225b60201cbf45abf7304d67b7d8a6f0ade1c188ac4e339884e78d6dcd450417f1481998f9ddd155bab0801 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/scope-manager@npm:5.62.0" - dependencies: - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/visitor-keys": 5.62.0 - checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/scope-manager@npm:7.18.0" - dependencies: - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - checksum: b982c6ac13d8c86bb3b949c6b4e465f3f60557c2ccf4cc229799827d462df56b9e4d3eaed7711d79b875422fc3d71ec1ebcb5195db72134d07c619e3c5506b57 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/type-utils@npm:7.18.0" - dependencies: - "@typescript-eslint/typescript-estree": 7.18.0 - "@typescript-eslint/utils": 7.18.0 - debug: ^4.3.4 - ts-api-utils: ^1.3.0 - peerDependencies: - eslint: ^8.56.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 68fd5df5146c1a08cde20d59b4b919acab06a1b06194fe4f7ba1b928674880249890785fbbc97394142f2ef5cff5a7fba9b8a940449e7d5605306505348e38bc - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/types@npm:5.62.0" - checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/types@npm:7.18.0" - checksum: 7df2750cd146a0acd2d843208d69f153b458e024bbe12aab9e441ad2c56f47de3ddfeb329c4d1ea0079e2577fea4b8c1c1ce15315a8d49044586b04fedfe7a4d - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" - dependencies: - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/visitor-keys": 5.62.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:7.18.0, @typescript-eslint/typescript-estree@npm:^7.6.0": - version: 7.18.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" - dependencies: - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/visitor-keys": 7.18.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - minimatch: ^9.0.4 - semver: ^7.6.0 - ts-api-utils: ^1.3.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: c82d22ec9654973944f779eb4eb94c52f4a6eafaccce2f0231ff7757313f3a0d0256c3252f6dfe6d43f57171d09656478acb49a629a9d0c193fb959bc3f36116 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/utils@npm:7.18.0" - dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 7.18.0 - "@typescript-eslint/types": 7.18.0 - "@typescript-eslint/typescript-estree": 7.18.0 - peerDependencies: - eslint: ^8.56.0 - checksum: 751dbc816dab8454b7dc6b26a56671dbec08e3f4ef94c2661ce1c0fc48fa2d05a64e03efe24cba2c22d03ba943cd3c5c7a5e1b7b03bbb446728aec1c640bd767 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:^5.10.0": - version: 5.62.0 - resolution: "@typescript-eslint/utils@npm:5.62.0" - dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@types/json-schema": ^7.0.9 - "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.62.0 - "@typescript-eslint/types": 5.62.0 - "@typescript-eslint/typescript-estree": 5.62.0 - eslint-scope: ^5.1.1 - semver: ^7.3.7 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" - dependencies: - "@typescript-eslint/types": 5.62.0 - eslint-visitor-keys: ^3.3.0 - checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:7.18.0": - version: 7.18.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" - dependencies: - "@typescript-eslint/types": 7.18.0 - eslint-visitor-keys: ^3.4.3 - checksum: 6e806a7cdb424c5498ea187a5a11d0fef7e4602a631be413e7d521e5aec1ab46ba00c76cfb18020adaa0a8c9802354a163bfa0deb74baa7d555526c7517bb158 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 - languageName: node - linkType: hard - -"@vitejs/plugin-react@npm:^4.2.1": - version: 4.3.1 - resolution: "@vitejs/plugin-react@npm:4.3.1" - dependencies: - "@babel/core": ^7.24.5 - "@babel/plugin-transform-react-jsx-self": ^7.24.5 - "@babel/plugin-transform-react-jsx-source": ^7.24.1 - "@types/babel__core": ^7.20.5 - react-refresh: ^0.14.2 - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - checksum: 57872e0193c7e545c5ef4852cbe1adf17a6b35406a2aba4b3acce06c173a9dabbf6ff4c72701abc11bb3cbe24a056f5054f39018f7034c9aa57133a3a7770237 - languageName: node - linkType: hard - -"@vue/compiler-core@npm:3.4.37": - version: 3.4.37 - resolution: "@vue/compiler-core@npm:3.4.37" - dependencies: - "@babel/parser": ^7.24.7 - "@vue/shared": 3.4.37 - entities: ^5.0.0 - estree-walker: ^2.0.2 - source-map-js: ^1.2.0 - checksum: 2b7ad0f3a101f804269cd3c8876c15e33a49a62e966b15dab340342acb9a7303718d3b4ffc980aee724b70e69bc1987739412b17444bd1c104711f49472aa340 - languageName: node - linkType: hard - -"@vue/compiler-dom@npm:3.4.37": - version: 3.4.37 - resolution: "@vue/compiler-dom@npm:3.4.37" - dependencies: - "@vue/compiler-core": 3.4.37 - "@vue/shared": 3.4.37 - checksum: 097f65608962848f054f11fc7c126234ac15db3f43dad46bba676781a15bac3679642f11a8b0c0b6505feb275107d37b30461f000f500c231ab5649f77caf522 - languageName: node - linkType: hard - -"@vue/compiler-sfc@npm:^3.4.27": - version: 3.4.37 - resolution: "@vue/compiler-sfc@npm:3.4.37" - dependencies: - "@babel/parser": ^7.24.7 - "@vue/compiler-core": 3.4.37 - "@vue/compiler-dom": 3.4.37 - "@vue/compiler-ssr": 3.4.37 - "@vue/shared": 3.4.37 - estree-walker: ^2.0.2 - magic-string: ^0.30.10 - postcss: ^8.4.40 - source-map-js: ^1.2.0 - checksum: ac69d7d7b81c3a5a29df1bdf9f3dbc423fd2e72ed05e9d09218ce9ab9036f53b24b8a4bf731e68914e832609f83915ffa65651dc8f9ce70a55ce804d544a31f6 - languageName: node - linkType: hard - -"@vue/compiler-ssr@npm:3.4.37": - version: 3.4.37 - resolution: "@vue/compiler-ssr@npm:3.4.37" - dependencies: - "@vue/compiler-dom": 3.4.37 - "@vue/shared": 3.4.37 - checksum: f4537ecd2c47192ef78c9c65fc5c692ff183b0a7bf4aa417471af94bc1f5c3cbb1b6e8b098dbcc60279d1c71a8c8d9f0b62e486a54336bb0adca5e57638ffe80 - languageName: node - linkType: hard - -"@vue/shared@npm:3.4.37": - version: 3.4.37 - resolution: "@vue/shared@npm:3.4.37" - checksum: 8ea0000b726c54603f63598e5aa634449bd1b92d9eb158e77e1d58a767b83f4343fe3da5de5de74d9b125ad422c143ad0e5289de1b057b1e77a7e75a440ea1f3 - languageName: node - linkType: hard - -"JSONStream@npm:^1.3.5": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: ^1.2.0 - through: ">=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 2605fa124260c61bad38bb65eba30d2f72216a78e94d0ab19b11b4e0327d572b8d530c0c9cc3b0764f727ad26d39e00bf7ebad57781ca6368394d73169c59e46 - languageName: node - linkType: hard - -"abab@npm:^2.0.6": - version: 2.0.6 - resolution: "abab@npm:2.0.6" - checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 - languageName: node - linkType: hard - -"acorn-globals@npm:^7.0.0": - version: 7.0.1 - resolution: "acorn-globals@npm:7.0.1" - dependencies: - acorn: ^8.1.0 - acorn-walk: ^8.0.2 - checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 - languageName: node - linkType: hard - -"acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 - languageName: node - linkType: hard - -"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": - version: 8.3.2 - resolution: "acorn-walk@npm:8.3.2" - checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 - languageName: node - linkType: hard - -"acorn@npm:^8.1.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" - bin: - acorn: bin/acorn - checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c - languageName: node - linkType: hard - -"add-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "add-stream@npm:1.0.0" - checksum: 3e9e8b0b8f0170406d7c3a9a39bfbdf419ccccb0fd2a396338c0fda0a339af73bf738ad414fc520741de74517acf0dd92b4a36fd3298a47fd5371eee8f2c5a06 - languageName: node - linkType: hard - -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": - version: 7.1.0 - resolution: "agent-base@npm:7.1.0" - dependencies: - debug: ^4.3.4 - checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: ^3.1.1 - fast-json-stable-stringify: ^2.0.0 - json-schema-traverse: ^0.4.1 - uri-js: ^4.2.2 - checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 - languageName: node - linkType: hard - -"ajv@npm:^8.0.1": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 - languageName: node - linkType: hard - -"ansi-escapes@npm:^7.0.0": - version: 7.0.0 - resolution: "ansi-escapes@npm:7.0.0" - dependencies: - environment: ^1.0.0 - checksum: 19baa61e68d1998c03b3b8bd023653a6c2667f0ed6caa9a00780ffd6f0a14f4a6563c57a38b3c0aba71bd704cd49c4c8df41be60bd81c957409f91e9dd49051f - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 - languageName: node - linkType: hard - -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 - languageName: node - linkType: hard - -"any-promise@npm:^1.1.0": - version: 1.3.0 - resolution: "any-promise@npm:1.3.0" - checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de - languageName: node - linkType: hard - -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" - dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 - languageName: node - linkType: hard - -"app-module-path@npm:^2.2.0": - version: 2.2.0 - resolution: "app-module-path@npm:2.2.0" - checksum: b52aa49cfa809efbad41b514222e8ef3f8ee9e147f5eccf79280b45eddcc61f7aeb302b0049474e3f42072dd53a28348c57dd96f36cd461d2e31cc8ab1ef56b5 - languageName: node - linkType: hard - -"aproba@npm:^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 - languageName: node - linkType: hard - -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: ~1.0.2 - checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced - languageName: node - linkType: hard - -"aria-query@npm:5.3.0, aria-query@npm:^5.0.0": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: ^2.0.3 - checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: ^1.0.5 - is-array-buffer: ^3.0.4 - checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e - languageName: node - linkType: hard - -"array-ify@npm:^1.0.0": - version: 1.0.0 - resolution: "array-ify@npm:1.0.0" - checksum: c0502015b319c93dd4484f18036bcc4b654eb76a4aa1f04afbcef11ac918859bb1f5d71ba1f0f1141770db9eef1a4f40f1761753650873068010bbf7bcdae4a4 - languageName: node - linkType: hard - -"array-includes@npm:^3.1.7": - version: 3.1.7 - resolution: "array-includes@npm:3.1.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - get-intrinsic: ^1.2.1 - is-string: ^1.0.7 - checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"array.prototype.filter@npm:^1.0.3": - version: 1.0.3 - resolution: "array.prototype.filter@npm:1.0.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-array-method-boxes-properly: ^1.0.0 - is-string: ^1.0.7 - checksum: 5443cde6ad64596649e5751252b1b2f5242b41052980c2fb2506ba485e3ffd7607e8f6f2f1aefa0cb1cfb9b8623b2b2be103579cb367a161a3426400619b6e73 - languageName: node - linkType: hard - -"array.prototype.findlastindex@npm:^1.2.3": - version: 1.2.4 - resolution: "array.prototype.findlastindex@npm:1.2.4" - dependencies: - call-bind: ^1.0.5 - define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.3.0 - es-shim-unscopables: ^1.0.2 - checksum: cc8dce27a06dddf6d9c40a15d4c573f96ac5ca3583f89f8d8cd7d7ffdb96a71d819890a5bdb211f221bda8fafa0d97d1d8cbb5460a5cbec1fff57ae80b8abc31 - languageName: node - linkType: hard - -"array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" - dependencies: - array-buffer-byte-length: ^1.0.1 - call-bind: ^1.0.5 - define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.2.1 - get-intrinsic: ^1.2.3 - is-array-buffer: ^3.0.4 - is-shared-array-buffer: ^1.0.2 - checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e - languageName: node - linkType: hard - -"ast-module-types@npm:^6.0.0": - version: 6.0.0 - resolution: "ast-module-types@npm:6.0.0" - checksum: 9636e7fb49d91daf47d62664d1909f75119b9e16b0a728fe7fc2db0e7a1af9399a1f9e05ad5158b73a9f320a40759728cdb149e04c2c0d3769d5b791d20567e6 - languageName: node - linkType: hard - -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be - languageName: node - linkType: hard - -"attr-accept@npm:^2.2.2": - version: 2.2.2 - resolution: "attr-accept@npm:2.2.2" - checksum: 496f7249354ab53e522510c1dc8f67a1887382187adde4dc205507d2f014836a247073b05e9d9ea51e2e9c7f71b0d2aa21730af80efa9af2d68303e5f0565c4d - languageName: node - linkType: hard - -"available-typed-arrays@npm:^1.0.5, available-typed-arrays@npm:^1.0.6": - version: 1.0.6 - resolution: "available-typed-arrays@npm:1.0.6" - checksum: 8295571eb86447138adf64a0df0c08ae61250b17190bba30e1fae8c80a816077a6d028e5506f602c382c0197d3080bae131e92e331139d55460989580eeae659 - languageName: node - linkType: hard - -"babel-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "babel-jest@npm:29.7.0" - dependencies: - "@jest/transform": ^29.7.0 - "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.6.3 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - slash: ^3.0.0 - peerDependencies: - "@babel/core": ^7.8.0 - checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-instrument: ^5.0.4 - test-exclude: ^6.0.0 - checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a - languageName: node - linkType: hard - -"babel-plugin-jest-hoist@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-plugin-jest-hoist@npm:29.6.3" - dependencies: - "@babel/template": ^7.3.3 - "@babel/types": ^7.3.3 - "@types/babel__core": ^7.1.14 - "@types/babel__traverse": ^7.0.6 - checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 - languageName: node - linkType: hard - -"babel-plugin-macros@npm:^3.1.0": - version: 3.1.0 - resolution: "babel-plugin-macros@npm:3.1.0" - dependencies: - "@babel/runtime": ^7.12.5 - cosmiconfig: ^7.0.0 - resolve: ^1.19.0 - checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs2@npm:^0.4.10": - version: 0.4.10 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.10" - dependencies: - "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.6.1 - semver: ^6.3.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 2c0e4868789152f50db306f4957fa7934876cefb51d5d86436595f0b091539e45ce0e9c0125b5db2d71f913b29cd48ae76b8e942ba28fcf2273e084f54664a1c - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.10.6": - version: 0.10.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.2 - core-js-compat: ^3.38.0 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: f762f29f7acca576897c63149c850f0a72babd3fb9ea436a2e36f0c339161c4b912a77828541d8188ce8a91e50965c6687120cf36071eabb1b7aa92f279e2164 - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.6.1": - version: 0.6.1 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.1" - dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.1 - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 9df4a8e9939dd419fed3d9ea26594b4479f2968f37c225e1b2aa463001d7721f5537740e6622909d2a570b61cec23256924a1701404fc9d6fd4474d3e845cedb - languageName: node - linkType: hard - -"babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.0.1 - resolution: "babel-preset-current-node-syntax@npm:1.0.1" - dependencies: - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-bigint": ^7.8.3 - "@babel/plugin-syntax-class-properties": ^7.8.3 - "@babel/plugin-syntax-import-meta": ^7.8.3 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.8.3 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-top-level-await": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 - languageName: node - linkType: hard - -"babel-preset-jest@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-preset-jest@npm:29.6.3" - dependencies: - babel-plugin-jest-hoist: ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"balanced-match@npm:^2.0.0": - version: 2.0.0 - resolution: "balanced-match@npm:2.0.0" - checksum: 9a5caad6a292c5df164cc6d0c38e0eedf9a1413f42e5fece733640949d74d0052cfa9587c1a1681f772147fb79be495121325a649526957fd75b3a216d1fbc68 - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 - languageName: node - linkType: hard - -"before-after-hook@npm:^3.0.2": - version: 3.0.2 - resolution: "before-after-hook@npm:3.0.2" - checksum: 5f76a9d31909f7f1f7125b7e017ff018799308f5c1fc5a5bfeba9986149da77e6a5cdde0d151671cf374a7fa6452533237bb1de62dfd6c235c20e7c61cc9569d - languageName: node - linkType: hard - -"bin-links@npm:^4.0.4": - version: 4.0.4 - resolution: "bin-links@npm:4.0.4" - dependencies: - cmd-shim: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - read-cmd-shim: ^4.0.0 - write-file-atomic: ^5.0.0 - checksum: 9fca1fddaa3c1c9f7efd6fd7a6d991e3d8f6aaa9de5d0b9355469c2c594d8d06c9b2e0519bb0304202c14ddbe832d27b6d419d55cea4340e2c26116f9190e5c9 - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 - languageName: node - linkType: hard - -"bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: ^5.5.0 - inherits: ^2.0.4 - readable-stream: ^3.4.0 - checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 - languageName: node - linkType: hard - -"braces@npm:^3.0.3": - version: 3.0.3 - resolution: "braces@npm:3.0.3" - dependencies: - fill-range: ^7.1.1 - checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 - languageName: node - linkType: hard - -"browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": - version: 4.23.0 - resolution: "browserslist@npm:4.23.0" - dependencies: - caniuse-lite: ^1.0.30001587 - electron-to-chromium: ^1.4.668 - node-releases: ^2.0.14 - update-browserslist-db: ^1.0.13 - bin: - browserslist: cli.js - checksum: 436f49e796782ca751ebab7edc010cfc9c29f68536f387666cd70ea22f7105563f04dd62c6ff89cb24cc3254d17cba385f979eeeb3484d43e012412ff7e75def - languageName: node - linkType: hard - -"browserslist@npm:^4.23.1": - version: 4.23.2 - resolution: "browserslist@npm:4.23.2" - dependencies: - caniuse-lite: ^1.0.30001640 - electron-to-chromium: ^1.4.820 - node-releases: ^2.0.14 - update-browserslist-db: ^1.1.0 - bin: - browserslist: cli.js - checksum: 8212af37f6ca6355da191cf2d4ad49bd0b82854888b9a7e103638fada70d38cbe36d28feeeaa98344cb15d9128f9f74bcc8ce1bfc9011b5fd14381c1c6fb542c - languageName: node - linkType: hard - -"browserslist@npm:^4.23.3": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" - dependencies: - caniuse-lite: ^1.0.30001646 - electron-to-chromium: ^1.5.4 - node-releases: ^2.0.18 - update-browserslist-db: ^1.1.0 - bin: - browserslist: cli.js - checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e - languageName: node - linkType: hard - -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: ^0.4.0 - checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb - languageName: node - linkType: hard - -"buffer@npm:^5.5.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 - languageName: node - linkType: hard - -"builtins@npm:^5.0.0": - version: 5.0.1 - resolution: "builtins@npm:5.0.1" - dependencies: - semver: ^7.0.0 - checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 - languageName: node - linkType: hard - -"byte-size@npm:^9.0.0": - version: 9.0.0 - resolution: "byte-size@npm:9.0.0" - checksum: 3c0c988dcb8eaee6364f42837b395fbff949b611d6b23a078a60b5b03d9e1a04841a1a2f471177a91971712f407e753d6ca9d46bb60f80c482b84e37b5a05193 - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.2 - resolution: "cacache@npm:18.0.2" - dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^10.0.1 - minipass: ^7.0.3 - minipass-collect: ^2.0.1 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: 0250df80e1ad0c828c956744850c5f742c24244e9deb5b7dc81bca90f8c10e011e132ecc58b64497cc1cad9a98968676147fb6575f4f94722f7619757b17a11b - languageName: node - linkType: hard - -"cacache@npm:^18.0.3": - version: 18.0.3 - resolution: "cacache@npm:18.0.3" - dependencies: - "@npmcli/fs": ^3.1.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^10.0.1 - minipass: ^7.0.3 - minipass-collect: ^2.0.1 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: b717fd9b36e9c3279bfde4545c3a8f6d5a539b084ee26a9504d48f83694beb724057d26e090b97540f9cc62bea18b9f6cf671c50e18fb7dac60eda9db691714f - languageName: node - linkType: hard - -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" - dependencies: - es-define-property: ^1.0.0 - es-errors: ^1.3.0 - function-bind: ^1.1.2 - get-intrinsic: ^1.2.4 - set-function-length: ^1.2.1 - checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 - languageName: node - linkType: hard - -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001587": - version: 1.0.30001587 - resolution: "caniuse-lite@npm:1.0.30001587" - checksum: fb50aa9beaaae42f9feae92ce038f6ff71e97510f024ef1bef2666f3adcfd36d6c59e5675442e5fe795575193f71bc826cb7721d4b0f6d763e82d193bea57863 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001640": - version: 1.0.30001641 - resolution: "caniuse-lite@npm:1.0.30001641" - checksum: f131829f7746374ae4a19a8fb5aef9bbc5649682afb0ffd6a74f567389cb6efadbab600cc83384a3e694e1646772ff14ac3c791593aedb41fb2ce1942a1aa208 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001651 - resolution: "caniuse-lite@npm:1.0.30001651" - checksum: c31a5a01288e70cdbbfb5cd94af3df02f295791673173b8ce6d6a16db4394a6999197d44190be5a6ff06b8c2c7d2047e94dfd5e5eb4c103ab000fca2d370afc7 - languageName: node - linkType: hard - -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - -"chalk@npm:^3.0.0": - version: 3.0.0 - resolution: "chalk@npm:3.0.0" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc - languageName: node - linkType: hard - -"chalk@npm:^5.3.0, chalk@npm:~5.3.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 - languageName: node - linkType: hard - -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 - languageName: node - linkType: hard - -"chevrotain@npm:10.5.0": - version: 10.5.0 - resolution: "chevrotain@npm:10.5.0" - dependencies: - "@chevrotain/cst-dts-gen": 10.5.0 - "@chevrotain/gast": 10.5.0 - "@chevrotain/types": 10.5.0 - "@chevrotain/utils": 10.5.0 - lodash: 4.17.21 - regexp-to-ast: 0.5.0 - checksum: b641f149f60979a29eff2434d745e9565a7c89422b601d554bcf8f047f7d8ff776b9a54b1b36085a622e3f1ed7eb4b8721b5a5348d90ae2567ce7594b10f25aa - languageName: node - linkType: hard - -"chokidar@npm:>=3.0.0 <4.0.0": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.2 - glob-parent: ~5.1.2 - is-binary-path: ~2.1.0 - is-glob: ~4.0.1 - normalize-path: ~3.0.0 - readdirp: ~3.6.0 - dependenciesMeta: - fsevents: - optional: true - checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"ci-info@npm:^3.2.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 - languageName: node - linkType: hard - -"ci-info@npm:^4.0.0": - version: 4.0.0 - resolution: "ci-info@npm:4.0.0" - checksum: 122fe41c5eb8d0b5fa0ab6fd674c5ddcf2dc59766528b062a0144ff0d913cfb210ef925ec52110e7c2a7f4e603d5f0e8b91cfe68867e196e9212fa0b94d0a08a - languageName: node - linkType: hard - -"cjs-module-lexer@npm:^1.0.0": - version: 1.2.3 - resolution: "cjs-module-lexer@npm:1.2.3" - checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-cursor@npm:^5.0.0": - version: 5.0.0 - resolution: "cli-cursor@npm:5.0.0" - dependencies: - restore-cursor: ^5.0.0 - checksum: 1eb9a3f878b31addfe8d82c6d915ec2330cec8447ab1f117f4aa34f0137fbb3137ec3466e1c9a65bcb7557f6e486d343f2da57f253a2f668d691372dfa15c090 - languageName: node - linkType: hard - -"cli-spinners@npm:^2.5.0, cli-spinners@npm:^2.9.2": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c - languageName: node - linkType: hard - -"cli-truncate@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-truncate@npm:4.0.0" - dependencies: - slice-ansi: ^5.0.0 - string-width: ^7.0.0 - checksum: d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d - languageName: node - linkType: hard - -"cli-width@npm:^4.1.0": - version: 4.1.0 - resolution: "cli-width@npm:4.1.0" - checksum: 0a79cff2dbf89ef530bcd54c713703ba94461457b11e5634bd024c78796ed21401e32349c004995954e06f442d82609287e7aabf6a5f02c919a1cf3b9b6854ff - languageName: node - linkType: hard - -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.1 - wrap-ansi: ^7.0.0 - checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 - languageName: node - linkType: hard - -"clone-deep@npm:^4.0.1": - version: 4.0.1 - resolution: "clone-deep@npm:4.0.1" - dependencies: - is-plain-object: ^2.0.4 - kind-of: ^6.0.2 - shallow-clone: ^3.0.0 - checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 - languageName: node - linkType: hard - -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd - languageName: node - linkType: hard - -"cmd-shim@npm:^6.0.0": - version: 6.0.3 - resolution: "cmd-shim@npm:6.0.3" - checksum: bd79ac1505fea77cba0caf271c16210ebfbe50f348a1907f4700740876ab2157e00882b9baa685a9fcf9bc92e08a87e21bd757f45a6938f00290422f80f7d27a - languageName: node - linkType: hard - -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 - languageName: node - linkType: hard - -"collect-v8-coverage@npm:^1.0.0": - version: 1.0.2 - resolution: "collect-v8-coverage@npm:1.0.2" - checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - -"color-name@npm:^1.1.4, color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 - languageName: node - linkType: hard - -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b - languageName: node - linkType: hard - -"colord@npm:^2.9.3": - version: 2.9.3 - resolution: "colord@npm:2.9.3" - checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 - languageName: node - linkType: hard - -"colorette@npm:^2.0.20": - version: 2.0.20 - resolution: "colorette@npm:2.0.20" - checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d - languageName: node - linkType: hard - -"columnify@npm:^1.6.0": - version: 1.6.0 - resolution: "columnify@npm:1.6.0" - dependencies: - strip-ansi: ^6.0.1 - wcwidth: ^1.0.0 - checksum: 0d590023616a27bcd2135c0f6ddd6fac94543263f9995538bbe391068976e30545e5534d369737ec7c3e9db4e53e70a277462de46aeb5a36e6997b4c7559c335 - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.8": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: ~1.0.0 - checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c - languageName: node - linkType: hard - -"commander@npm:7, commander@npm:^7.2.0": - version: 7.2.0 - resolution: "commander@npm:7.2.0" - checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc - languageName: node - linkType: hard - -"commander@npm:^12.0.0, commander@npm:^12.1.0, commander@npm:~12.1.0": - version: 12.1.0 - resolution: "commander@npm:12.1.0" - checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 - languageName: node - linkType: hard - -"common-ancestor-path@npm:^1.0.1": - version: 1.0.1 - resolution: "common-ancestor-path@npm:1.0.1" - checksum: 1d2e4186067083d8cc413f00fc2908225f04ae4e19417ded67faa6494fb313c4fcd5b28a52326d1a62b466e2b3a4325e92c31133c5fee628cdf8856b3a57c3d7 - languageName: node - linkType: hard - -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb - languageName: node - linkType: hard - -"compare-func@npm:^2.0.0": - version: 2.0.0 - resolution: "compare-func@npm:2.0.0" - dependencies: - array-ify: ^1.0.0 - dot-prop: ^5.1.0 - checksum: fb71d70632baa1e93283cf9d80f30ac97f003aabee026e0b4426c9716678079ef5fea7519b84d012cbed938c476493866a38a79760564a9e21ae9433e40e6f0d - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af - languageName: node - linkType: hard - -"config-chain@npm:^1.1.13": - version: 1.1.13 - resolution: "config-chain@npm:1.1.13" - dependencies: - ini: ^1.3.4 - proto-list: ~1.2.1 - checksum: 828137a28e7c2fc4b7fb229bd0cd6c1397bcf83434de54347e608154008f411749041ee392cbe42fab6307e02de4c12480260bf769b7d44b778fdea3839eafab - languageName: node - linkType: hard - -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed - languageName: node - linkType: hard - -"conventional-changelog-angular@npm:^7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-angular@npm:7.0.0" - dependencies: - compare-func: ^2.0.0 - checksum: 2478962ad7ce42878449ba3568347d704f22c5c9af1cd36916b5600734bd7f82c09712a338c649195c44e907f1b0372ce52d6cb51df643f495c89af05ad4bc48 - languageName: node - linkType: hard - -"conventional-changelog-core@npm:^7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-core@npm:7.0.0" - dependencies: - "@hutson/parse-repository-url": ^5.0.0 - add-stream: ^1.0.0 - conventional-changelog-writer: ^7.0.0 - conventional-commits-parser: ^5.0.0 - git-raw-commits: ^4.0.0 - git-semver-tags: ^7.0.0 - hosted-git-info: ^7.0.0 - normalize-package-data: ^6.0.0 - read-pkg: ^8.0.0 - read-pkg-up: ^10.0.0 - checksum: 0409bd06acdcab5c2798e9e66cc015d93cced5848fe12e56f54bfaf4c6be7ec2a876fc3bc64daaed2464a7a49a7fb9860b51247bd05727bbebbae6e83d3e7a72 - languageName: node - linkType: hard - -"conventional-changelog-preset-loader@npm:^4.1.0": - version: 4.1.0 - resolution: "conventional-changelog-preset-loader@npm:4.1.0" - checksum: 8813c34884a9e3f4be9f3a9ffa216012ee40ef8c0eb1593a70fa8ab906e08de09cab9e0b769b187a43456dbcb24b01a517b3798ebc5b8b9264af2e32c976d9c9 - languageName: node - linkType: hard - -"conventional-changelog-writer@npm:^7.0.0, conventional-changelog-writer@npm:^7.0.1": - version: 7.0.1 - resolution: "conventional-changelog-writer@npm:7.0.1" - dependencies: - conventional-commits-filter: ^4.0.0 - handlebars: ^4.7.7 - json-stringify-safe: ^5.0.1 - meow: ^12.0.1 - semver: ^7.5.2 - split2: ^4.0.0 - bin: - conventional-changelog-writer: cli.mjs - checksum: 6d1e2ef2d75752c74d87321b9e33562f37a0734bbdb69ed48ce6cf868168e7847d5cf5238402ebd612ac763f521ba063aab452766d39ee81f5748b93a79ae51f - languageName: node - linkType: hard - -"conventional-commits-filter@npm:^4.0.0": - version: 4.0.0 - resolution: "conventional-commits-filter@npm:4.0.0" - checksum: 46d2d90531f024d596f61d353876276e5357adb5c4684e042467bb7d159feb0a2831b74656bd3038ac9ec38d99b0b24ac39f319ad511861e1299c4cdfb5a119a - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^5.0.0": - version: 5.0.0 - resolution: "conventional-commits-parser@npm:5.0.0" - dependencies: - JSONStream: ^1.3.5 - is-text-path: ^2.0.0 - meow: ^12.0.1 - split2: ^4.0.0 - bin: - conventional-commits-parser: cli.mjs - checksum: bb92a0bfe41802330d2d14ddb0f912fd65dd355f1aa294e708f4891aac95c580919a70580b9f26563c24c3335baaed2ce003104394a8fa5ba61eeb3889e45df0 - languageName: node - linkType: hard - -"conventional-recommended-bump@npm:^9.0.0": - version: 9.0.0 - resolution: "conventional-recommended-bump@npm:9.0.0" - dependencies: - conventional-changelog-preset-loader: ^4.1.0 - conventional-commits-filter: ^4.0.0 - conventional-commits-parser: ^5.0.0 - git-raw-commits: ^4.0.0 - git-semver-tags: ^7.0.0 - meow: ^12.0.1 - bin: - conventional-recommended-bump: cli.mjs - checksum: 0842628777609ef17f1b4f6bb11edbbc243bcc72ae5265e92eb24cac4206e5eadbea48f4a2b0732fbf9c3cea7d1369a08f93fd9ec9755fbf54e6dddb2b88e757 - languageName: node - linkType: hard - -"convert-source-map@npm:^1.5.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 - languageName: node - linkType: hard - -"copy-to-clipboard@npm:^3.3.3": - version: 3.3.3 - resolution: "copy-to-clipboard@npm:3.3.3" - dependencies: - toggle-selection: ^1.0.6 - checksum: e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf - languageName: node - linkType: hard - -"core-js-compat@npm:^3.37.1": - version: 3.37.1 - resolution: "core-js-compat@npm:3.37.1" - dependencies: - browserslist: ^4.23.0 - checksum: 5e7430329358bced08c30950512d2081aea0a5652b4c5892cbb3c4a6db05b0d3893a191a955162a07fdb5f4fe74e61b6429fdb503f54e062336d76e43c9555d9 - languageName: node - linkType: hard - -"core-js-compat@npm:^3.38.0": - version: 3.38.1 - resolution: "core-js-compat@npm:3.38.1" - dependencies: - browserslist: ^4.23.3 - checksum: a0a5673bcd59f588f0cd0b59cdacd4712b82909738a87406d334dd412eb3d273ae72b275bdd8e8fef63fca9ef12b42ed651be139c7c44c8a1acb423c8906992e - languageName: node - linkType: hard - -"core-js@npm:^3.29.0": - version: 3.36.0 - resolution: "core-js@npm:3.36.0" - checksum: 48c807d5055ad0424f52d13583e96ddca2efcdc4e3cd9c479d60f269c8fe225191cd4e26a4593f43f7ef6dba08d161091147ecf8ae0300c15bc648a4f555217b - languageName: node - linkType: hard - -"cosmiconfig@npm:^7.0.0": - version: 7.1.0 - resolution: "cosmiconfig@npm:7.1.0" - dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f - languageName: node - linkType: hard - -"cosmiconfig@npm:^9.0.0": - version: 9.0.0 - resolution: "cosmiconfig@npm:9.0.0" - dependencies: - env-paths: ^2.2.1 - import-fresh: ^3.3.0 - js-yaml: ^4.1.0 - parse-json: ^5.2.0 - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: a30c424b53d442ea0bdd24cb1b3d0d8687c8dda4a17ab6afcdc439f8964438801619cdb66e8e79f63b9caa3e6586b60d8bab9ce203e72df6c5e80179b971fe8f - languageName: node - linkType: hard - -"create-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "create-jest@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - prompts: ^2.0.1 - bin: - create-jest: bin/create-jest.js - checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 - languageName: node - linkType: hard - -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 - languageName: node - linkType: hard - -"css-functions-list@npm:^3.2.2": - version: 3.2.2 - resolution: "css-functions-list@npm:3.2.2" - checksum: b8a564118b93b87b63236a57132a3ef581416896a70c1d0df73360a9ec43dc582f7c2a586b578feb8476179518e557c6657570a8b6185b16300c7232a84d43e3 - languageName: node - linkType: hard - -"css-tree@npm:^2.3.1": - version: 2.3.1 - resolution: "css-tree@npm:2.3.1" - dependencies: - mdn-data: 2.0.30 - source-map-js: ^1.0.1 - checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 - languageName: node - linkType: hard - -"css.escape@npm:^1.5.1": - version: 1.5.1 - resolution: "css.escape@npm:1.5.1" - checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 - languageName: node - linkType: hard - -"cssesc@npm:^3.0.0": - version: 3.0.0 - resolution: "cssesc@npm:3.0.0" - bin: - cssesc: bin/cssesc - checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 - languageName: node - linkType: hard - -"cssfontparser@npm:^1.2.1": - version: 1.2.1 - resolution: "cssfontparser@npm:1.2.1" - checksum: 952d487cddab591fb944f2a4c326a7736bc963784a6d92b6ad4051f3bf5ee49a732eff62e29a52ff085197cb07f5bd66525a2245ded7fd356113ac81be9238b9 - languageName: node - linkType: hard - -"cssom@npm:^0.5.0": - version: 0.5.0 - resolution: "cssom@npm:0.5.0" - checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 - languageName: node - linkType: hard - -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 - languageName: node - linkType: hard - -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" - dependencies: - cssom: ~0.3.6 - checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 - languageName: node - linkType: hard - -"csstype@npm:^3.0.2": - version: 3.1.3 - resolution: "csstype@npm:3.1.3" - checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 - languageName: node - linkType: hard - -"d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3, d3-array@npm:^3.2.0": - version: 3.2.4 - resolution: "d3-array@npm:3.2.4" - dependencies: - internmap: 1 - 2 - checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 - languageName: node - linkType: hard - -"d3-axis@npm:3": - version: 3.0.0 - resolution: "d3-axis@npm:3.0.0" - checksum: 227ddaa6d4bad083539c1ec245e2228b4620cca941997a8a650cb0af239375dc20271993127eedac66f0543f331027aca09385e1e16eed023f93eac937cddf0b - languageName: node - linkType: hard - -"d3-brush@npm:3": - version: 3.0.0 - resolution: "d3-brush@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-drag: 2 - 3 - d3-interpolate: 1 - 3 - d3-selection: 3 - d3-transition: 3 - checksum: 1d042167769a02ac76271c71e90376d7184206e489552b7022a8ec2860209fe269db55e0a3430f3dcbe13b6fec2ff65b1adeaccba3218991b38e022390df72e3 - languageName: node - linkType: hard - -"d3-chord@npm:3": - version: 3.0.1 - resolution: "d3-chord@npm:3.0.1" - dependencies: - d3-path: 1 - 3 - checksum: ddf35d41675e0f8738600a8a2f05bf0858def413438c12cba357c5802ecc1014c80a658acbbee63cbad2a8c747912efb2358455d93e59906fe37469f1dc6b78b - languageName: node - linkType: hard - -"d3-color@npm:1 - 3, d3-color@npm:3": - version: 3.1.0 - resolution: "d3-color@npm:3.1.0" - checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b - languageName: node - linkType: hard - -"d3-contour@npm:4": - version: 4.0.2 - resolution: "d3-contour@npm:4.0.2" - dependencies: - d3-array: ^3.2.0 - checksum: 56aa082c1acf62a45b61c8d29fdd307041785aa17d9a07de7d1d848633769887a33fb6823888afa383f31c460d0f21d24756593e84e334ddb92d774214d32f1b - languageName: node - linkType: hard - -"d3-delaunay@npm:6": - version: 6.0.4 - resolution: "d3-delaunay@npm:6.0.4" - dependencies: - delaunator: 5 - checksum: ce6d267d5ef21a8aeadfe4606329fc80a22ab6e7748d47bc220bcc396ee8be84b77a5473033954c5ac4aa522d265ddc45d4165d30fe4787dd60a15ea66b9bbb4 - languageName: node - linkType: hard - -"d3-dispatch@npm:1 - 3, d3-dispatch@npm:3": - version: 3.0.1 - resolution: "d3-dispatch@npm:3.0.1" - checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 - languageName: node - linkType: hard - -"d3-dispatch@npm:1, d3-dispatch@npm:^1.0.3": - version: 1.0.6 - resolution: "d3-dispatch@npm:1.0.6" - checksum: b4ecb016b6dda8b99aa4263b2d0a0c7b12e7dea93e4b0ce3013c94dca4d360d9ba00f5bdc15dc944cc4543af8e341067bd628f061f7b8deb642257e2ac90d06c - languageName: node - linkType: hard - -"d3-drag@npm:2 - 3, d3-drag@npm:3": - version: 3.0.0 - resolution: "d3-drag@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-selection: 3 - checksum: d297231e60ecd633b0d076a63b4052b436ddeb48b5a3a11ff68c7e41a6774565473a6b064c5e9256e88eca6439a917ab9cea76032c52d944ddbf4fd289e31111 - languageName: node - linkType: hard - -"d3-drag@npm:^1.0.4": - version: 1.2.5 - resolution: "d3-drag@npm:1.2.5" - dependencies: - d3-dispatch: 1 - d3-selection: 1 - checksum: 6e86e89aa8d511979eea1b5326709c05c2a3c2d43a93a82ed6b6f98528b2ab03b2f58f5e4f66582f2f1c0ae44f9c19f6f4f857249eb66aabc46e4942295fa0a7 - languageName: node - linkType: hard - -"d3-dsv@npm:1 - 3, d3-dsv@npm:3": - version: 3.0.1 - resolution: "d3-dsv@npm:3.0.1" - dependencies: - commander: 7 - iconv-lite: 0.6 - rw: 1 - bin: - csv2json: bin/dsv2json.js - csv2tsv: bin/dsv2dsv.js - dsv2dsv: bin/dsv2dsv.js - dsv2json: bin/dsv2json.js - json2csv: bin/json2dsv.js - json2dsv: bin/json2dsv.js - json2tsv: bin/json2dsv.js - tsv2csv: bin/dsv2dsv.js - tsv2json: bin/dsv2json.js - checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a - languageName: node - linkType: hard - -"d3-ease@npm:1 - 3, d3-ease@npm:3": - version: 3.0.1 - resolution: "d3-ease@npm:3.0.1" - checksum: 06e2ee5326d1e3545eab4e2c0f84046a123dcd3b612e68858219aa034da1160333d9ce3da20a1d3486d98cb5c2a06f7d233eee1bc19ce42d1533458bd85dedcd - languageName: node - linkType: hard - -"d3-fetch@npm:3": - version: 3.0.1 - resolution: "d3-fetch@npm:3.0.1" - dependencies: - d3-dsv: 1 - 3 - checksum: 382dcea06549ef82c8d0b719e5dc1d96286352579e3b51b20f71437f5800323315b09cf7dcfd4e1f60a41e1204deb01758470cea257d2285a7abd9dcec806984 - languageName: node - linkType: hard - -"d3-force@npm:3": - version: 3.0.0 - resolution: "d3-force@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-quadtree: 1 - 3 - d3-timer: 1 - 3 - checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def - languageName: node - linkType: hard - -"d3-format@npm:1 - 3, d3-format@npm:3": - version: 3.1.0 - resolution: "d3-format@npm:3.1.0" - checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 - languageName: node - linkType: hard - -"d3-geo@npm:3": - version: 3.1.0 - resolution: "d3-geo@npm:3.1.0" - dependencies: - d3-array: 2.5.0 - 3 - checksum: adf82b0c105c0c5951ae0a833d4dfc479a563791ad7938579fa14e1cffd623b469d8aa7a37dc413a327fb6ac56880f3da3f6c43d4abe3c923972dd98f34f37d1 - languageName: node - linkType: hard - -"d3-hierarchy@npm:3": - version: 3.1.2 - resolution: "d3-hierarchy@npm:3.1.2" - checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 - languageName: node - linkType: hard - -"d3-interpolate@npm:1 - 3, d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:3": - version: 3.0.1 - resolution: "d3-interpolate@npm:3.0.1" - dependencies: - d3-color: 1 - 3 - checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b - languageName: node - linkType: hard - -"d3-path@npm:1": - version: 1.0.9 - resolution: "d3-path@npm:1.0.9" - checksum: d4382573baf9509a143f40944baeff9fead136926aed6872f7ead5b3555d68925f8a37935841dd51f1d70b65a294fe35c065b0906fb6e42109295f6598fc16d0 - languageName: node - linkType: hard - -"d3-path@npm:1 - 3, d3-path@npm:3, d3-path@npm:^3.1.0": - version: 3.1.0 - resolution: "d3-path@npm:3.1.0" - checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 - languageName: node - linkType: hard - -"d3-polygon@npm:3": - version: 3.0.1 - resolution: "d3-polygon@npm:3.0.1" - checksum: 0b85c532517895544683849768a2c377cee3801ef8ccf3fa9693c8871dd21a0c1a2a0fc75ff54192f0ba2c562b0da2bc27f5bf959dfafc7fa23573b574865d2c - languageName: node - linkType: hard - -"d3-quadtree@npm:1 - 3, d3-quadtree@npm:3": - version: 3.0.1 - resolution: "d3-quadtree@npm:3.0.1" - checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 - languageName: node - linkType: hard - -"d3-random@npm:3": - version: 3.0.1 - resolution: "d3-random@npm:3.0.1" - checksum: a70ad8d1cabe399ebeb2e482703121ac8946a3b336830b518da6848b9fdd48a111990fc041dc716f16885a72176ffa2898f2a250ca3d363ecdba5ef92b18e131 - languageName: node - linkType: hard - -"d3-scale-chromatic@npm:3": - version: 3.0.0 - resolution: "d3-scale-chromatic@npm:3.0.0" - dependencies: - d3-color: 1 - 3 - d3-interpolate: 1 - 3 - checksum: a8ce4cb0267a17b28ebbb929f5e3071d985908a9c13b6fcaa2a198e1e018f275804d691c5794b970df0049725b7944f32297b31603d235af6414004f0c7f82c0 - languageName: node - linkType: hard - -"d3-scale@npm:4, d3-scale@npm:^4.0.2": - version: 4.0.2 - resolution: "d3-scale@npm:4.0.2" - dependencies: - d3-array: 2.10.0 - 3 - d3-format: 1 - 3 - d3-interpolate: 1.2.0 - 3 - d3-time: 2.1.1 - 3 - d3-time-format: 2 - 4 - checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e - languageName: node - linkType: hard - -"d3-selection@npm:1": - version: 1.4.2 - resolution: "d3-selection@npm:1.4.2" - checksum: 2484b392259b087a98f546f2610e6a11c90f38dae6b6b20a3fc85171038fcab4c72e702788b1960a4fece88bed2e36f268096358b5b48d3c7f0d35cfbe305da6 - languageName: node - linkType: hard - -"d3-selection@npm:2 - 3, d3-selection@npm:3": - version: 3.0.0 - resolution: "d3-selection@npm:3.0.0" - checksum: f4e60e133309115b99f5b36a79ae0a19d71ee6e2d5e3c7216ef3e75ebd2cb1e778c2ed2fa4c01bef35e0dcbd96c5428f5bd6ca2184fe2957ed582fde6841cbc5 - languageName: node - linkType: hard - -"d3-shape@npm:3, d3-shape@npm:^3.2.0": - version: 3.2.0 - resolution: "d3-shape@npm:3.2.0" - dependencies: - d3-path: ^3.1.0 - checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa - languageName: node - linkType: hard - -"d3-shape@npm:^1.3.5": - version: 1.3.7 - resolution: "d3-shape@npm:1.3.7" - dependencies: - d3-path: 1 - checksum: 46566a3ab64a25023653bf59d64e81e9e6c987e95be985d81c5cedabae5838bd55f4a201a6b69069ca862eb63594cd263cac9034afc2b0e5664dfe286c866129 - languageName: node - linkType: hard - -"d3-time-format@npm:2 - 4, d3-time-format@npm:4": - version: 4.1.0 - resolution: "d3-time-format@npm:4.1.0" - dependencies: - d3-time: 1 - 3 - checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 - languageName: node - linkType: hard - -"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:3": - version: 3.1.0 - resolution: "d3-time@npm:3.1.0" - dependencies: - d3-array: 2 - 3 - checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 - languageName: node - linkType: hard - -"d3-timer@npm:1 - 3, d3-timer@npm:3": - version: 3.0.1 - resolution: "d3-timer@npm:3.0.1" - checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 - languageName: node - linkType: hard - -"d3-timer@npm:^1.0.5": - version: 1.0.10 - resolution: "d3-timer@npm:1.0.10" - checksum: f7040953672deb2dfa03830ace80dbbcb212f80890218eba15dcca6f33f74102d943023ccc2a563295195cd8c63639bb2410ef1691c8fecff4a114fdf5c666f4 - languageName: node - linkType: hard - -"d3-transition@npm:2 - 3, d3-transition@npm:3": - version: 3.0.1 - resolution: "d3-transition@npm:3.0.1" - dependencies: - d3-color: 1 - 3 - d3-dispatch: 1 - 3 - d3-ease: 1 - 3 - d3-interpolate: 1 - 3 - d3-timer: 1 - 3 - peerDependencies: - d3-selection: 2 - 3 - checksum: cb1e6e018c3abf0502fe9ff7b631ad058efb197b5e14b973a410d3935aead6e3c07c67d726cfab258e4936ef2667c2c3d1cd2037feb0765f0b4e1d3b8788c0ea - languageName: node - linkType: hard - -"d3-zoom@npm:3": - version: 3.0.0 - resolution: "d3-zoom@npm:3.0.0" - dependencies: - d3-dispatch: 1 - 3 - d3-drag: 2 - 3 - d3-interpolate: 1 - 3 - d3-selection: 2 - 3 - d3-transition: 2 - 3 - checksum: 8056e3527281cfd1ccbcbc458408f86973b0583e9dac00e51204026d1d36803ca437f970b5736f02fafed9f2b78f145f72a5dbc66397e02d4d95d4c594b8ff54 - languageName: node - linkType: hard - -"d3@npm:^7.8.0": - version: 7.8.5 - resolution: "d3@npm:7.8.5" - dependencies: - d3-array: 3 - d3-axis: 3 - d3-brush: 3 - d3-chord: 3 - d3-color: 3 - d3-contour: 4 - d3-delaunay: 6 - d3-dispatch: 3 - d3-drag: 3 - d3-dsv: 3 - d3-ease: 3 - d3-fetch: 3 - d3-force: 3 - d3-format: 3 - d3-geo: 3 - d3-hierarchy: 3 - d3-interpolate: 3 - d3-path: 3 - d3-polygon: 3 - d3-quadtree: 3 - d3-random: 3 - d3-scale: 4 - d3-scale-chromatic: 3 - d3-selection: 3 - d3-shape: 3 - d3-time: 3 - d3-time-format: 4 - d3-timer: 3 - d3-transition: 3 - d3-zoom: 3 - checksum: e407e79731f74d946a5eb8dec2f037b5a4ad33c294409b1d3531fdf7094de48adfe364974cb37e2396bdb81e23149d56d0ede716c004d6aebb52b3cc114cd15c - languageName: node - linkType: hard - -"dagre@npm:0.8.2": - version: 0.8.2 - resolution: "dagre@npm:0.8.2" - dependencies: - graphlib: ^2.1.5 - lodash: ^4.17.4 - checksum: 5a0446354610d423152badf34d0870a23382a8d224e158522840513dc095bf60fbc45132f9093a5bb348597be9967a46a21f3729af1a6d8d4d98d73ed8825fa4 - languageName: node - linkType: hard - -"dargs@npm:^8.0.0": - version: 8.1.0 - resolution: "dargs@npm:8.1.0" - checksum: 33f1b8f5f08e72c8a28355a87c0e1a9b6a0fec99252ecd9cf4735e65dd5f2e19747c860251ed5747b38e7204c7915fd7a7146aee5aaef5882c69169aae8b1d09 - languageName: node - linkType: hard - -"data-uri-to-buffer@npm:^4.0.0": - version: 4.0.1 - resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c - languageName: node - linkType: hard - -"data-urls@npm:^3.0.2": - version: 3.0.2 - resolution: "data-urls@npm:3.0.2" - dependencies: - abab: ^2.0.6 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 - languageName: node - linkType: hard - -"datamapper-poc@workspace:.": - version: 0.0.0-use.local - resolution: "datamapper-poc@workspace:." - dependencies: - "@lerna-lite/cli": ^3.0.0 - "@lerna-lite/publish": ^3.0.0 - "@lerna-lite/version": ^3.0.0 - husky: ^9.0.0 - lint-staged: ^15.0.0 - languageName: unknown - linkType: soft - -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 - languageName: node - linkType: hard - -"debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: ^2.1.1 - checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c - languageName: node - linkType: hard - -"debug@npm:^4.3.6, debug@npm:~4.3.6": - version: 4.3.6 - resolution: "debug@npm:4.3.6" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 1630b748dea3c581295e02137a9f5cbe2c1d85fea35c1e6597a65ca2b16a6fce68cec61b299d480787ef310ba927dc8c92d3061faba0ad06c6a724672f66be7f - languageName: node - linkType: hard - -"decimal.js@npm:^10.4.2": - version: 10.4.3 - resolution: "decimal.js@npm:10.4.3" - checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae - languageName: node - linkType: hard - -"dedent@npm:^1.0.0": - version: 1.5.1 - resolution: "dedent@npm:1.5.1" - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - checksum: c3c300a14edf1bdf5a873f9e4b22e839d62490bc5c8d6169c1f15858a1a76733d06a9a56930e963d677a2ceeca4b6b0894cc5ea2f501aa382ca5b92af3413c2a - languageName: node - linkType: hard - -"dedent@npm:^1.5.3": - version: 1.5.3 - resolution: "dedent@npm:1.5.3" - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a - languageName: node - linkType: hard - -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 - languageName: node - linkType: hard - -"deepmerge-ts@npm:^7.1.0": - version: 7.1.0 - resolution: "deepmerge-ts@npm:7.1.0" - checksum: 8c36d7e88b12248e138ba0f959c03e5b6d008842acbc7bb3c43a0513b4b942f936352b8910ac75bcbe1fc61d3975b4e0ab5b13b2492f0ede06f95553c637479e - languageName: node - linkType: hard - -"deepmerge@npm:^4.2.2": - version: 4.3.1 - resolution: "deepmerge@npm:4.3.1" - checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 - languageName: node - linkType: hard - -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" - dependencies: - clone: ^1.0.2 - checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a - languageName: node - linkType: hard - -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.2": - version: 1.1.4 - resolution: "define-data-property@npm:1.1.4" - dependencies: - es-define-property: ^1.0.0 - es-errors: ^1.3.0 - gopd: ^1.0.1 - checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": - version: 1.2.1 - resolution: "define-properties@npm:1.2.1" - dependencies: - define-data-property: ^1.0.1 - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 - languageName: node - linkType: hard - -"delaunator@npm:5": - version: 5.0.1 - resolution: "delaunator@npm:5.0.1" - dependencies: - robust-predicates: ^3.0.2 - checksum: 69ee43ec649b4a13b7f33c8a027fb3e8dfcb09266af324286118da757e04d3d39df619b905dca41421405c311317ccf632ecfa93db44519bacec3303c57c5a0b - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 - languageName: node - linkType: hard - -"dependency-tree@npm:^11.0.0": - version: 11.0.1 - resolution: "dependency-tree@npm:11.0.1" - dependencies: - commander: ^12.0.0 - filing-cabinet: ^5.0.1 - precinct: ^12.0.2 - typescript: ^5.4.5 - bin: - dependency-tree: bin/cli.js - checksum: f0f330c9e275fbb253639f9ebc8e33fc7064b18064b98a8ba13f24909c95dbcc6ae84ca7988edb0d83d15110c4d5e47d6e0c1dc76d3eb169f81fd8ac43d83a8b - languageName: node - linkType: hard - -"dequal@npm:^2.0.2, dequal@npm:^2.0.3": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 - languageName: node - linkType: hard - -"detect-indent@npm:^7.0.1": - version: 7.0.1 - resolution: "detect-indent@npm:7.0.1" - checksum: cbf3f0b1c3c881934ca94428e1179b26ab2a587e0d719031d37a67fb506d49d067de54ff057cb1e772e75975fed5155c01cd4518306fee60988b1486e3fc7768 - languageName: node - linkType: hard - -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - -"detective-amd@npm:^6.0.0": - version: 6.0.0 - resolution: "detective-amd@npm:6.0.0" - dependencies: - ast-module-types: ^6.0.0 - escodegen: ^2.1.0 - get-amd-module-type: ^6.0.0 - node-source-walk: ^7.0.0 - bin: - detective-amd: bin/cli.js - checksum: 2b48d48f8e93a84326975bc8da16cb16df0e06a5e39776c98c17e1d32722d4bf58c3a826265c781ee970b9bf71513f42b8d541f5b56ec111ea922f62da2da406 - languageName: node - linkType: hard - -"detective-cjs@npm:^6.0.0": - version: 6.0.0 - resolution: "detective-cjs@npm:6.0.0" - dependencies: - ast-module-types: ^6.0.0 - node-source-walk: ^7.0.0 - checksum: 9fa6c39122a9b378f4afd76494c23d6913150dfe5ea73d703229a8d0ba7ef5057c4946510a210048b6d78d0171ae6f724c9bba91ea8ec23badec61d232c1b8ba - languageName: node - linkType: hard - -"detective-es6@npm:^5.0.0": - version: 5.0.0 - resolution: "detective-es6@npm:5.0.0" - dependencies: - node-source-walk: ^7.0.0 - checksum: cf7d6423e83fb48e3687ddecc6b5437d01a864e80495bd10a02e985f2757957b8c132d1d2b576aef1250d69ee9fc28ce33ac5805f8ef2e42c9772164011af557 - languageName: node - linkType: hard - -"detective-postcss@npm:^7.0.0": - version: 7.0.0 - resolution: "detective-postcss@npm:7.0.0" - dependencies: - is-url: ^1.2.4 - postcss-values-parser: ^6.0.2 - peerDependencies: - postcss: ^8.4.38 - checksum: 3996bb8af8a379c0f418f26bc73d9b154ded75957196ff0932b424036e4b8dd04773890fa532d9bd32c7bc9bba74d15164f5cbad8ab4d59f558e33484e5e66e8 - languageName: node - linkType: hard - -"detective-sass@npm:^6.0.0": - version: 6.0.0 - resolution: "detective-sass@npm:6.0.0" - dependencies: - gonzales-pe: ^4.3.0 - node-source-walk: ^7.0.0 - checksum: 2a4db6fb383949b9203fea982810ebcf6071f8b0eaf1a173a4c13c6652a7cecf873be386b864fee7a953718fa11a49caa2fa05b137961267e4e771ef39ff1280 - languageName: node - linkType: hard - -"detective-scss@npm:^5.0.0": - version: 5.0.0 - resolution: "detective-scss@npm:5.0.0" - dependencies: - gonzales-pe: ^4.3.0 - node-source-walk: ^7.0.0 - checksum: 2fad1dcaf4a496cf50fff8777100b014394b90f45df7291c5a47b2e8e9c17a884ccb657b8670c1135b3cb1cddab2960a90cd4513b61c365123ba7518e7b83369 - languageName: node - linkType: hard - -"detective-stylus@npm:^5.0.0": - version: 5.0.0 - resolution: "detective-stylus@npm:5.0.0" - checksum: e39a48e5d23605a459923896a5c511fff5d94bb1dc993a9b8cd866ee9b337589a314ef653342e3f0440e3233a8a40320e29ee557b6ef2f58e020ad9934c83682 - languageName: node - linkType: hard - -"detective-typescript@npm:^13.0.0": - version: 13.0.0 - resolution: "detective-typescript@npm:13.0.0" - dependencies: - "@typescript-eslint/typescript-estree": ^7.6.0 - ast-module-types: ^6.0.0 - node-source-walk: ^7.0.0 - peerDependencies: - typescript: ^5.4.4 - checksum: 09f27c3e379e1300a1a4faafa62d119dddac1aae6b06a17e610a4c0e8d80e0cda34ad7fd2eef770cdd28e13e57a1fb2ded36b94d1e0861e0806e2112417c65b7 - languageName: node - linkType: hard - -"detective-vue2@npm:^2.0.3": - version: 2.0.3 - resolution: "detective-vue2@npm:2.0.3" - dependencies: - "@vue/compiler-sfc": ^3.4.27 - detective-es6: ^5.0.0 - detective-sass: ^6.0.0 - detective-scss: ^5.0.0 - detective-stylus: ^5.0.0 - detective-typescript: ^13.0.0 - peerDependencies: - typescript: ^5.4.4 - checksum: 590f2d33de5760a20e3b18e61c88800e626ed3ca854632def91c71b3d16c379569bc86d7cbda20010e14a992d01a0f676854f29e6b46b19e9bd8531b27b861c0 - languageName: node - linkType: hard - -"diff-sequences@npm:^29.6.3": - version: 29.6.3 - resolution: "diff-sequences@npm:29.6.3" - checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa - languageName: node - linkType: hard - -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 - languageName: node - linkType: hard - -"dnd-core@npm:^16.0.1": - version: 16.0.1 - resolution: "dnd-core@npm:16.0.1" - dependencies: - "@react-dnd/asap": ^5.0.1 - "@react-dnd/invariant": ^4.0.1 - redux: ^4.2.0 - checksum: b7d3ef4664f433af796f440ddd27ad9d7fef0205f26c4b7c0af6ebf612ffa9b33e64d095d3e79190c4baaed34aa36570f321ebe0d2cc8ff1031ff158a0907b3f - languageName: node - linkType: hard - -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" - dependencies: - esutils: ^2.0.2 - checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: ^2.0.2 - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce - languageName: node - linkType: hard - -"dom-accessibility-api@npm:^0.5.9": - version: 0.5.16 - resolution: "dom-accessibility-api@npm:0.5.16" - checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 - languageName: node - linkType: hard - -"dom-accessibility-api@npm:^0.6.3": - version: 0.6.3 - resolution: "dom-accessibility-api@npm:0.6.3" - checksum: c325b5144bb406df23f4affecffc117dbaec9af03daad9ee6b510c5be647b14d28ef0a4ea5ca06d696d8ab40bb777e5fed98b985976fdef9d8790178fa1d573f - languageName: node - linkType: hard - -"dom-helpers@npm:^5.0.1": - version: 5.2.1 - resolution: "dom-helpers@npm:5.2.1" - dependencies: - "@babel/runtime": ^7.8.7 - csstype: ^3.0.2 - checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c - languageName: node - linkType: hard - -"dom-walk@npm:^0.1.0": - version: 0.1.2 - resolution: "dom-walk@npm:0.1.2" - checksum: 19eb0ce9c6de39d5e231530685248545d9cd2bd97b2cb3486e0bfc0f2a393a9addddfd5557463a932b52fdfcf68ad2a619020cd2c74a5fe46fbecaa8e80872f3 - languageName: node - linkType: hard - -"domexception@npm:^4.0.0": - version: 4.0.0 - resolution: "domexception@npm:4.0.0" - dependencies: - webidl-conversions: ^7.0.0 - checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 - languageName: node - linkType: hard - -"dot-prop@npm:^5.1.0": - version: 5.3.0 - resolution: "dot-prop@npm:5.3.0" - dependencies: - is-obj: ^2.0.0 - checksum: d5775790093c234ef4bfd5fbe40884ff7e6c87573e5339432870616331189f7f5d86575c5b5af2dcf0f61172990f4f734d07844b1f23482fff09e3c4bead05ea - languageName: node - linkType: hard - -"dotenv@npm:^16.4.5": - version: 16.4.5 - resolution: "dotenv@npm:16.4.5" - checksum: 301a12c3d44fd49888b74eb9ccf9f07a1f5df43f489e7fcb89647a2edcd84c42d6bc349dc8df099cd18f07c35c7b04685c1a4f3e6a6a9e6b30f8d48c15b7f49c - languageName: node - linkType: hard - -"duplexer@npm:^0.1.1": - version: 0.1.2 - resolution: "duplexer@npm:0.1.2" - checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.668": - version: 1.4.671 - resolution: "electron-to-chromium@npm:1.4.671" - checksum: a40461d15a9b5c0bc0f186bf781a97d4c1c58bea1ab95fd9e844a061de6b615bfa3e901a0522fc0e4629994f33c5bdfd33bc84495c94800f5f5f5082b9192062 - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.820": - version: 1.4.826 - resolution: "electron-to-chromium@npm:1.4.826" - checksum: 2ed56a72f5035bfaac379e7e8ad0dd19870e2a5927c5d6bd844ddfbb86516cdd5a3106e063d157c6045573cf6446a222ab475e935ed41d0985c794052dcafdeb - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.5.4": - version: 1.5.13 - resolution: "electron-to-chromium@npm:1.5.13" - checksum: f18ac84dd3bf9a200654a6a9292b9ec4bced0cf9bd26cec9941b775f4470c581c9d043e70b37a124d9752dcc0f47fc96613d52b2defd8e59632852730cb418b9 - languageName: node - linkType: hard - -"emittery@npm:^0.13.1": - version: 0.13.1 - resolution: "emittery@npm:0.13.1" - checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 - languageName: node - linkType: hard - -"emoji-regex@npm:^10.3.0": - version: 10.3.0 - resolution: "emoji-regex@npm:10.3.0" - checksum: 5da48edfeb9462fb1ae5495cff2d79129974c696853fb0ce952cbf560f29a2756825433bf51cfd5157ec7b9f93f46f31d712e896d63e3d8ac9c3832bdb45ab73 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"enhanced-resolve@npm:^5.16.0": - version: 5.17.1 - resolution: "enhanced-resolve@npm:5.17.1" - dependencies: - graceful-fs: ^4.2.4 - tapable: ^2.2.0 - checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59 - languageName: node - linkType: hard - -"entities@npm:^4.4.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 - languageName: node - linkType: hard - -"entities@npm:^5.0.0": - version: 5.0.0 - resolution: "entities@npm:5.0.0" - checksum: d641555e641ef648ebf92f02d763156ffa35a0136ecd45f26050bd6af299ed7e2a53e5063654b662f72a91a8432f03326f245d4b373824e282afafbe0b4ac320 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"environment@npm:^1.0.0": - version: 1.1.0 - resolution: "environment@npm:1.1.0" - checksum: dd3c1b9825e7f71f1e72b03c2344799ac73f2e9ef81b78ea8b373e55db021786c6b9f3858ea43a436a2c4611052670ec0afe85bc029c384cc71165feee2f4ba6 - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1, error-ex@npm:^1.3.2": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3": - version: 1.22.4 - resolution: "es-abstract@npm:1.22.4" - dependencies: - array-buffer-byte-length: ^1.0.1 - arraybuffer.prototype.slice: ^1.0.3 - available-typed-arrays: ^1.0.6 - call-bind: ^1.0.7 - es-define-property: ^1.0.0 - es-errors: ^1.3.0 - es-set-tostringtag: ^2.0.2 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.4 - get-symbol-description: ^1.0.2 - globalthis: ^1.0.3 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.1 - internal-slot: ^1.0.7 - is-array-buffer: ^3.0.4 - is-callable: ^1.2.7 - is-negative-zero: ^2.0.2 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - is-string: ^1.0.7 - is-typed-array: ^1.1.13 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 - object-keys: ^1.1.1 - object.assign: ^4.1.5 - regexp.prototype.flags: ^1.5.2 - safe-array-concat: ^1.1.0 - safe-regex-test: ^1.0.3 - string.prototype.trim: ^1.2.8 - string.prototype.trimend: ^1.0.7 - string.prototype.trimstart: ^1.0.7 - typed-array-buffer: ^1.0.1 - typed-array-byte-length: ^1.0.0 - typed-array-byte-offset: ^1.0.0 - typed-array-length: ^1.0.4 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.14 - checksum: c254102395bd59315b713d72a1ce07980c0f71c9edcac6b036868740789ab5344020e940d6321fc1b31aecf6b27941fdd9655b602696e08f170986dd4d75ddc6 - languageName: node - linkType: hard - -"es-array-method-boxes-properly@npm:^1.0.0": - version: 1.0.0 - resolution: "es-array-method-boxes-properly@npm:1.0.0" - checksum: 2537fcd1cecf187083890bc6f5236d3a26bf39237433587e5bf63392e88faae929dbba78ff0120681a3f6f81c23fe3816122982c160d63b38c95c830b633b826 - languageName: node - linkType: hard - -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: ^1.2.4 - checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 - languageName: node - linkType: hard - -"es-errors@npm:^1.0.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.0.2": - version: 2.0.2 - resolution: "es-set-tostringtag@npm:2.0.2" - dependencies: - get-intrinsic: ^1.2.2 - has-tostringtag: ^1.0.0 - hasown: ^2.0.0 - checksum: afcec3a4c9890ae14d7ec606204858441c801ff84f312538e1d1ccf1e5493c8b17bd672235df785f803756472cb4f2d49b87bde5237aef33411e74c22f194e07 - languageName: node - linkType: hard - -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" - dependencies: - hasown: ^2.0.0 - checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 - languageName: node - linkType: hard - -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: ^1.1.4 - is-date-object: ^1.0.1 - is-symbol: ^1.0.2 - checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed - languageName: node - linkType: hard - -"esbuild@npm:^0.21.3": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" - dependencies: - "@esbuild/aix-ppc64": 0.21.5 - "@esbuild/android-arm": 0.21.5 - "@esbuild/android-arm64": 0.21.5 - "@esbuild/android-x64": 0.21.5 - "@esbuild/darwin-arm64": 0.21.5 - "@esbuild/darwin-x64": 0.21.5 - "@esbuild/freebsd-arm64": 0.21.5 - "@esbuild/freebsd-x64": 0.21.5 - "@esbuild/linux-arm": 0.21.5 - "@esbuild/linux-arm64": 0.21.5 - "@esbuild/linux-ia32": 0.21.5 - "@esbuild/linux-loong64": 0.21.5 - "@esbuild/linux-mips64el": 0.21.5 - "@esbuild/linux-ppc64": 0.21.5 - "@esbuild/linux-riscv64": 0.21.5 - "@esbuild/linux-s390x": 0.21.5 - "@esbuild/linux-x64": 0.21.5 - "@esbuild/netbsd-x64": 0.21.5 - "@esbuild/openbsd-x64": 0.21.5 - "@esbuild/sunos-x64": 0.21.5 - "@esbuild/win32-arm64": 0.21.5 - "@esbuild/win32-ia32": 0.21.5 - "@esbuild/win32-x64": 0.21.5 - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 2911c7b50b23a9df59a7d6d4cdd3a4f85855787f374dce751148dbb13305e0ce7e880dde1608c2ab7a927fc6cec3587b80995f7fc87a64b455f8b70b55fd8ec1 - languageName: node - linkType: hard - -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 - languageName: node - linkType: hard - -"escape-html@npm:^1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 - languageName: node - linkType: hard - -"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": - version: 2.1.0 - resolution: "escodegen@npm:2.1.0" - dependencies: - esprima: ^4.0.1 - estraverse: ^5.2.0 - esutils: ^2.0.2 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^9.1.0": - version: 9.1.0 - resolution: "eslint-config-prettier@npm:9.1.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 - languageName: node - linkType: hard - -"eslint-import-resolver-node@npm:^0.3.9": - version: 0.3.9 - resolution: "eslint-import-resolver-node@npm:0.3.9" - dependencies: - debug: ^3.2.7 - is-core-module: ^2.13.0 - resolve: ^1.22.4 - checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.8.0": - version: 2.8.0 - resolution: "eslint-module-utils@npm:2.8.0" - dependencies: - debug: ^3.2.7 - peerDependenciesMeta: - eslint: - optional: true - checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 - languageName: node - linkType: hard - -"eslint-plugin-import@npm:^2.29.1": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" - dependencies: - array-includes: ^3.1.7 - array.prototype.findlastindex: ^1.2.3 - array.prototype.flat: ^1.3.2 - array.prototype.flatmap: ^1.3.2 - debug: ^3.2.7 - doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.9 - eslint-module-utils: ^2.8.0 - hasown: ^2.0.0 - is-core-module: ^2.13.1 - is-glob: ^4.0.3 - minimatch: ^3.1.2 - object.fromentries: ^2.0.7 - object.groupby: ^1.0.1 - object.values: ^1.1.7 - semver: ^6.3.1 - tsconfig-paths: ^3.15.0 - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e65159aef808136d26d029b71c8c6e4cb5c628e65e5de77f1eb4c13a379315ae55c9c3afa847f43f4ff9df7e54515c77ffc6489c6a6f81f7dd7359267577468c - languageName: node - linkType: hard - -"eslint-plugin-jest@npm:^27.9.0": - version: 27.9.0 - resolution: "eslint-plugin-jest@npm:27.9.0" - dependencies: - "@typescript-eslint/utils": ^5.10.0 - peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: "*" - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - jest: - optional: true - checksum: e2a4b415105408de28ad146818fcc6f4e122f6a39c6b2216ec5c24a80393f1390298b20231b0467bc5fd730f6e24b05b89e1a6a3ce651fc159aa4174ecc233d0 - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^5.1.3": - version: 5.2.1 - resolution: "eslint-plugin-prettier@npm:5.2.1" - dependencies: - prettier-linter-helpers: ^1.0.0 - synckit: ^0.9.1 - peerDependencies: - "@types/eslint": ">=8.0.0" - eslint: ">=8.0.0" - eslint-config-prettier: "*" - prettier: ">=3.0.0" - peerDependenciesMeta: - "@types/eslint": - optional: true - eslint-config-prettier: - optional: true - checksum: 812f4d1596dcd3a55963212dfbd818a4b38f880741aac75f6869aa740dc5d934060674d3b85d10ff9fec424defa61967dbdef26b8a893a92c9b51880264ed0d9 - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.6.0": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 395c433610f59577cfcf3f2e42bcb130436c8a0b3777ac64f441d88c5275f4fcfc89094cedab270f2822daf29af1079151a7a6579a8e9ea8cee66540ba0384c4 - languageName: node - linkType: hard - -"eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.11 - resolution: "eslint-plugin-react-refresh@npm:0.4.11" - peerDependencies: - eslint: ">=7" - checksum: 55c9efb14c3dadf6422bb96af8a561d3f1385f1dc68e7ca9d388cc4adc69907644e1bb509ecfbb033a8ec19ea326beb99577c82d4a2530000809d897b08bf3d4 - languageName: node - linkType: hard - -"eslint-scope@npm:^5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^4.1.1 - checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 - languageName: node - linkType: hard - -"eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" - dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.6.1 - "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.0 - "@humanwhocodes/config-array": ^0.11.14 - "@humanwhocodes/module-importer": ^1.0.1 - "@nodelib/fs.walk": ^1.2.8 - "@ungap/structured-clone": ^1.2.0 - ajv: ^6.12.4 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.2 - eslint-visitor-keys: ^3.4.3 - espree: ^9.6.1 - esquery: ^1.4.2 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - find-up: ^5.0.0 - glob-parent: ^6.0.2 - globals: ^13.19.0 - graphemer: ^1.4.0 - ignore: ^5.2.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - is-path-inside: ^3.0.3 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 - bin: - eslint: bin/eslint.js - checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: ^8.9.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.1 - checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 - languageName: node - linkType: hard - -"esprima@npm:^4.0.0, esprima@npm:^4.0.1": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" - dependencies: - estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: ^5.2.0 - checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 - languageName: node - linkType: hard - -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b - languageName: node - linkType: hard - -"estree-walker@npm:^2.0.2": - version: 2.0.2 - resolution: "estree-walker@npm:2.0.2" - checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc - languageName: node - linkType: hard - -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 - languageName: node - linkType: hard - -"eventemitter3@npm:^5.0.1": - version: 5.0.1 - resolution: "eventemitter3@npm:5.0.1" - checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 - languageName: node - linkType: hard - -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.0 - human-signals: ^2.1.0 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.1 - onetime: ^5.1.2 - signal-exit: ^3.0.3 - strip-final-newline: ^2.0.0 - checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 - languageName: node - linkType: hard - -"execa@npm:^8.0.1, execa@npm:~8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^8.0.1 - human-signals: ^5.0.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^4.1.0 - strip-final-newline: ^3.0.0 - checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f - languageName: node - linkType: hard - -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 - languageName: node - linkType: hard - -"expect@npm:^29.0.0, expect@npm:^29.7.0": - version: 29.7.0 - resolution: "expect@npm:29.7.0" - dependencies: - "@jest/expect-utils": ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d - languageName: node - linkType: hard - -"fast-diff@npm:^1.1.2": - version: 1.3.0 - resolution: "fast-diff@npm:1.3.0" - checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 - languageName: node - linkType: hard - -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c - languageName: node - linkType: hard - -"fastest-levenshtein@npm:^1.0.16": - version: 1.0.16 - resolution: "fastest-levenshtein@npm:1.0.16" - checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" - dependencies: - reusify: ^1.0.4 - checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 - languageName: node - linkType: hard - -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: 2.1.1 - checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 - languageName: node - linkType: hard - -"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": - version: 3.2.0 - resolution: "fetch-blob@npm:3.2.0" - dependencies: - node-domexception: ^1.0.0 - web-streams-polyfill: ^3.0.3 - checksum: f19bc28a2a0b9626e69fd7cf3a05798706db7f6c7548da657cbf5026a570945f5eeaedff52007ea35c8bcd3d237c58a20bf1543bc568ab2422411d762dd3d5bf - languageName: node - linkType: hard - -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 - languageName: node - linkType: hard - -"file-entry-cache@npm:^9.0.0": - version: 9.0.0 - resolution: "file-entry-cache@npm:9.0.0" - dependencies: - flat-cache: ^5.0.0 - checksum: 850ab258497cfad2aff166319068101202d6969415227a425b9de9acdb152dc33506c7208906289a6dcb2a7f9390601f4b80ccf6353510c58710b75d5a02df6e - languageName: node - linkType: hard - -"file-saver@npm:^2.0.5": - version: 2.0.5 - resolution: "file-saver@npm:2.0.5" - checksum: c62d96e5cebc58b4bdf3ae8a60d5cf9607ad82f75f798c33a4ee63435ac2203002584d5256a2a780eda7feb5e19dc3b6351c2212e58b3f529e63d265a7cc79f7 - languageName: node - linkType: hard - -"file-selector@npm:^0.6.0": - version: 0.6.0 - resolution: "file-selector@npm:0.6.0" - dependencies: - tslib: ^2.4.0 - checksum: 7d051b6e5d793f3c6e2ab287ba5e7c2c6a0971bccc9d56e044c8047ba483e18f60fc0b5771c951dc707c0d15f4f36ccb4f1f1aaf385d21ec8f7700dadf8325ba - languageName: node - linkType: hard - -"filing-cabinet@npm:^5.0.1": - version: 5.0.2 - resolution: "filing-cabinet@npm:5.0.2" - dependencies: - app-module-path: ^2.2.0 - commander: ^12.0.0 - enhanced-resolve: ^5.16.0 - module-definition: ^6.0.0 - module-lookup-amd: ^9.0.1 - resolve: ^1.22.8 - resolve-dependency-path: ^4.0.0 - sass-lookup: ^6.0.1 - stylus-lookup: ^6.0.0 - tsconfig-paths: ^4.2.0 - typescript: ^5.4.4 - bin: - filing-cabinet: bin/cli.js - checksum: f588ce81dcf7c26611f24ef3be1e4cc58fb0e60760cb2a5ef3b613ce7237a32072ce7bfe70fe6386a1d0ba41ff764e818b397e7a1ba9ffcc7a0f6656211c4812 - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 - languageName: node - linkType: hard - -"fill-range@npm:^7.1.1": - version: 7.1.1 - resolution: "fill-range@npm:7.1.1" - dependencies: - to-regex-range: ^5.0.1 - checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 - languageName: node - linkType: hard - -"find-root@npm:^1.1.0": - version: 1.1.0 - resolution: "find-root@npm:1.1.0" - checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 - languageName: node - linkType: hard - -"find-up@npm:^5.0.0": - version: 5.0.0 - resolution: "find-up@npm:5.0.0" - dependencies: - locate-path: ^6.0.0 - path-exists: ^4.0.0 - checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 - languageName: node - linkType: hard - -"find-up@npm:^6.3.0": - version: 6.3.0 - resolution: "find-up@npm:6.3.0" - dependencies: - locate-path: ^7.1.0 - path-exists: ^5.0.0 - checksum: 9a21b7f9244a420e54c6df95b4f6fc3941efd3c3e5476f8274eb452f6a85706e7a6a90de71353ee4f091fcb4593271a6f92810a324ec542650398f928783c280 - languageName: node - linkType: hard - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: ^3.2.9 - keyv: ^4.5.3 - rimraf: ^3.0.2 - checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec - languageName: node - linkType: hard - -"flat-cache@npm:^5.0.0": - version: 5.0.0 - resolution: "flat-cache@npm:5.0.0" - dependencies: - flatted: ^3.3.1 - keyv: ^4.5.4 - checksum: a7d03de79b603f5621009f75d84d2c5cd8fb762911df93c0ed16cd1cd4f7b8d2357d4aaed8806b5943ce71ebcd4fc4998faf061f33879c56c5294b3f5c3698ef - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.2.9 - resolution: "flatted@npm:3.2.9" - checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 - languageName: node - linkType: hard - -"flatted@npm:^3.3.1": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 - languageName: node - linkType: hard - -"focus-trap@npm:7.5.2": - version: 7.5.2 - resolution: "focus-trap@npm:7.5.2" - dependencies: - tabbable: ^6.2.0 - checksum: 1eee29d18c152ef08849a5cfd6d462a6741ec15f08938a9d87336d47807f07dbfff2e6405b16b5ce96745eb86b60f3dcdd87b63f0ad240e47252254d2c248d40 - languageName: node - linkType: hard - -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" - dependencies: - is-callable: ^1.1.3 - checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" - dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c - languageName: node - linkType: hard - -"formdata-polyfill@npm:^4.0.10": - version: 4.0.10 - resolution: "formdata-polyfill@npm:4.0.10" - dependencies: - fetch-blob: ^3.1.2 - checksum: 82a34df292afadd82b43d4a740ce387bc08541e0a534358425193017bf9fb3567875dc5f69564984b1da979979b70703aa73dee715a17b6c229752ae736dd9db - languageName: node - linkType: hard - -"fs-extra@npm:^11.2.0": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: ^7.0.3 - checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 - languageName: node - linkType: hard - -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 - languageName: node - linkType: hard - -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - functions-have-names: ^1.2.3 - checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 - languageName: node - linkType: hard - -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec - languageName: node - linkType: hard - -"get-amd-module-type@npm:^6.0.0": - version: 6.0.0 - resolution: "get-amd-module-type@npm:6.0.0" - dependencies: - ast-module-types: ^6.0.0 - node-source-walk: ^7.0.0 - checksum: ebac9fae785fbab313309702278d1574204d5d9ea065f06be91a45512fa268ccd235bdfe62e840d868ff9038afb917b32b535fb609f844a05d4ec680f3f91ee7 - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 - languageName: node - linkType: hard - -"get-east-asian-width@npm:^1.0.0": - version: 1.2.0 - resolution: "get-east-asian-width@npm:1.2.0" - checksum: ea55f4d4a42c4b00d3d9be3111bc17eb0161f60ed23fc257c1390323bb780a592d7a8bdd550260fd4627dabee9a118cdfa3475ae54edca35ebcd3bdae04179e3 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" - dependencies: - es-errors: ^1.3.0 - function-bind: ^1.1.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 - languageName: node - linkType: hard - -"get-node-dimensions@npm:^1.2.1": - version: 1.2.1 - resolution: "get-node-dimensions@npm:1.2.1" - checksum: a68502769588a62a1005a22687517474f9cd426817403ed15fe7b411a2fdeb792ded5f52b3647051e2e982e01681f3010d25dd5679d754dea1d4e904e98d89b6 - languageName: node - linkType: hard - -"get-own-enumerable-property-symbols@npm:^3.0.0": - version: 3.0.2 - resolution: "get-own-enumerable-property-symbols@npm:3.0.2" - checksum: 8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede - languageName: node - linkType: hard - -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad - languageName: node - linkType: hard - -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 - languageName: node - linkType: hard - -"get-stream@npm:^9.0.1": - version: 9.0.1 - resolution: "get-stream@npm:9.0.1" - dependencies: - "@sec-ant/readable-stream": ^0.4.1 - is-stream: ^4.0.1 - checksum: 631df71d7bd60a7f373094d3c352e2ce412b82d30b1b0ec562e5a4aced976173a4cc0dabef019050e1aceaffb1f0e086349ab3d14377b0b7280510bd75bd3e1e - languageName: node - linkType: hard - -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" - dependencies: - call-bind: ^1.0.5 - es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 - languageName: node - linkType: hard - -"git-raw-commits@npm:^4.0.0": - version: 4.0.0 - resolution: "git-raw-commits@npm:4.0.0" - dependencies: - dargs: ^8.0.0 - meow: ^12.0.1 - split2: ^4.0.0 - bin: - git-raw-commits: cli.mjs - checksum: 95546f4afcb33cf00ff638f7fec55ad61d4d927447737900e1f6fcbbdbb341b3f150908424cc62acb6d9faaea6f1e8f55d0697b899f0589af9d2733afb20abfb - languageName: node - linkType: hard - -"git-semver-tags@npm:^7.0.0": - version: 7.0.1 - resolution: "git-semver-tags@npm:7.0.1" - dependencies: - meow: ^12.0.1 - semver: ^7.5.2 - bin: - git-semver-tags: cli.mjs - checksum: 07b8a352bd28ad7678a2e12c91b11b5e53aff017420497bbb1cba0645e609f58d0a7d02d5f2ea6c7cd3019d7631ce7737f64cc90c47d944753c6bd2a36c03211 - languageName: node - linkType: hard - -"git-up@npm:^7.0.0": - version: 7.0.0 - resolution: "git-up@npm:7.0.0" - dependencies: - is-ssh: ^1.4.0 - parse-url: ^8.1.0 - checksum: 2faadbab51e94d2ffb220e426e950087cc02c15d664e673bd5d1f734cfa8196fed8b19493f7bf28fe216d087d10e22a7fd9b63687e0ba7d24f0ddcfb0a266d6e - languageName: node - linkType: hard - -"git-url-parse@npm:^14.1.0": - version: 14.1.0 - resolution: "git-url-parse@npm:14.1.0" - dependencies: - git-up: ^7.0.0 - checksum: 16bbf5ca423352ab1b0d704dc40b46123e0bfcc0ae2959ef6a93d43c509146151cd6a1d99690f3555324d2261b36443b7978abc379dc1a7bf8f564e52d676dee - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: ^4.0.3 - checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.3.10 - resolution: "glob@npm:10.3.10" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 - bin: - glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 - languageName: node - linkType: hard - -"glob@npm:^10.4.5": - version: 10.4.5 - resolution: "glob@npm:10.4.5" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^3.1.2 - minimatch: ^9.0.4 - minipass: ^7.1.2 - package-json-from-dist: ^1.0.0 - path-scurry: ^1.11.1 - bin: - glob: dist/esm/bin.mjs - checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a - languageName: node - linkType: hard - -"glob@npm:^11.0.0": - version: 11.0.0 - resolution: "glob@npm:11.0.0" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^4.0.1 - minimatch: ^10.0.0 - minipass: ^7.1.2 - package-json-from-dist: ^1.0.0 - path-scurry: ^2.0.0 - bin: - glob: dist/esm/bin.mjs - checksum: 8a2dd914d5776987be5244624d9491bbcaf19f2387e06783737003ff696ebfd2264190c47014f8709c1c02d8bc892f17660cf986c587b107e194c0a3151ab333 - languageName: node - linkType: hard - -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.3": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.1.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 - languageName: node - linkType: hard - -"global-modules@npm:^2.0.0": - version: 2.0.0 - resolution: "global-modules@npm:2.0.0" - dependencies: - global-prefix: ^3.0.0 - checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 - languageName: node - linkType: hard - -"global-prefix@npm:^3.0.0": - version: 3.0.0 - resolution: "global-prefix@npm:3.0.0" - dependencies: - ini: ^1.3.5 - kind-of: ^6.0.2 - which: ^1.3.1 - checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d - languageName: node - linkType: hard - -"global@npm:^4.4.0": - version: 4.4.0 - resolution: "global@npm:4.4.0" - dependencies: - min-document: ^2.19.0 - process: ^0.11.10 - checksum: 9c057557c8f5a5bcfbeb9378ba4fe2255d04679452be504608dd5f13b54edf79f7be1db1031ea06a4ec6edd3b9f5f17d2d172fb47e6c69dae57fd84b7e72b77f - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e - languageName: node - linkType: hard - -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: ^0.20.2 - checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c - languageName: node - linkType: hard - -"globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" - dependencies: - define-properties: ^1.1.3 - checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 - languageName: node - linkType: hard - -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - -"globby@npm:^14.0.2": - version: 14.0.2 - resolution: "globby@npm:14.0.2" - dependencies: - "@sindresorhus/merge-streams": ^2.1.0 - fast-glob: ^3.3.2 - ignore: ^5.2.4 - path-type: ^5.0.0 - slash: ^5.1.0 - unicorn-magic: ^0.1.0 - checksum: 2cee79efefca4383a825fc2fcbdb37e5706728f2d39d4b63851927c128fff62e6334ef7d4d467949d411409ad62767dc2d214e0f837a0f6d4b7290b6711d485c - languageName: node - linkType: hard - -"globjoin@npm:^0.1.4": - version: 0.1.4 - resolution: "globjoin@npm:0.1.4" - checksum: 0a47d88d566122d9e42da946453ee38b398e0021515ac6a95d13f980ba8c1e42954e05ee26cfcbffce1ac1ee094d0524b16ce1dd874ca52408d6db5c6d39985b - languageName: node - linkType: hard - -"gonzales-pe@npm:^4.3.0": - version: 4.3.0 - resolution: "gonzales-pe@npm:4.3.0" - dependencies: - minimist: ^1.2.5 - bin: - gonzales: bin/gonzales.js - checksum: 49d60fc49ad35639e5d55923c1516d3ec2e4de5e6e5913ec3458a479b66623e54a060d568295349b0bb9f96ee970c473ff984d4b82a5cfeaf736c55f0d6dc3b7 - languageName: node - linkType: hard - -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: ^1.1.3 - checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 - languageName: node - linkType: hard - -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 - languageName: node - linkType: hard - -"graphlib@npm:^2.1.5": - version: 2.1.8 - resolution: "graphlib@npm:2.1.8" - dependencies: - lodash: ^4.17.15 - checksum: 1e0db4dea1c8187d59103d5582ecf32008845ebe2103959a51d22cb6dae495e81fb9263e22c922bca3aaecb56064a45cd53424e15a4626cfb5a0c52d0aff61a8 - languageName: node - linkType: hard - -"handlebars@npm:^4.7.7": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" - dependencies: - minimist: ^1.2.5 - neo-async: ^2.6.2 - source-map: ^0.6.1 - uglify-js: ^3.1.4 - wordwrap: ^1.0.0 - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1, has-property-descriptors@npm:^1.0.2": - version: 1.0.2 - resolution: "has-property-descriptors@npm:1.0.2" - dependencies: - es-define-property: ^1.0.0 - checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 - languageName: node - linkType: hard - -"has-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "has-proto@npm:1.0.1" - checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: ^1.0.3 - checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d - languageName: node - linkType: hard - -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 - languageName: node - linkType: hard - -"hasown@npm:^2.0.0, hasown@npm:^2.0.1": - version: 2.0.1 - resolution: "hasown@npm:2.0.1" - dependencies: - function-bind: ^1.1.2 - checksum: 9081c382a4fe8a62639a8da5c7d3322b203c319147e48783763dd741863d9f2dcaa743574fe2a1283871c445d8ba99ea45d5fff384e5ad27ca9dd7a367d79de0 - languageName: node - linkType: hard - -"he@npm:^1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: 3d4d6babccccd79c5c5a3f929a68af33360d6445587d628087f39a965079d84f18ce9c3d3f917ee1e3978916fc833bb8b29377c3b403f919426f91bc6965e7a7 - languageName: node - linkType: hard - -"hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": - version: 3.3.2 - resolution: "hoist-non-react-statics@npm:3.3.2" - dependencies: - react-is: ^16.7.0 - checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 - languageName: node - linkType: hard - -"hosted-git-info@npm:^7.0.0": - version: 7.0.1 - resolution: "hosted-git-info@npm:7.0.1" - dependencies: - lru-cache: ^10.0.1 - checksum: be5280f0a20d6153b47e1ab578e09f5ae8ad734301b3ed7e547dc88a6814d7347a4888db1b4f9635cc738e3c0ef1fbff02272aba7d07c75d4c5a50ff8d618db6 - languageName: node - linkType: hard - -"hosted-git-info@npm:^7.0.2": - version: 7.0.2 - resolution: "hosted-git-info@npm:7.0.2" - dependencies: - lru-cache: ^10.0.1 - checksum: 467cf908a56556417b18e86ae3b8dee03c2360ef1d51e61c4028fe87f6f309b6ff038589c94b5666af207da9d972d5107698906aabeb78aca134641962a5c6f8 - languageName: node - linkType: hard - -"html-encoding-sniffer@npm:^3.0.0": - version: 3.0.0 - resolution: "html-encoding-sniffer@npm:3.0.0" - dependencies: - whatwg-encoding: ^2.0.0 - checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 - languageName: node - linkType: hard - -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 - languageName: node - linkType: hard - -"html-tags@npm:^3.3.1": - version: 3.3.1 - resolution: "html-tags@npm:3.3.1" - checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: ^7.1.0 - debug: ^4.3.4 - checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: 6 - debug: 4 - checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.4 - resolution: "https-proxy-agent@npm:7.0.4" - dependencies: - agent-base: ^7.0.2 - debug: 4 - checksum: daaab857a967a2519ddc724f91edbbd388d766ff141b9025b629f92b9408fc83cee8a27e11a907aede392938e9c398e240d643e178408a59e4073539cde8cfe9 - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 - languageName: node - linkType: hard - -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c - languageName: node - linkType: hard - -"husky@npm:^9.0.0": - version: 9.1.5 - resolution: "husky@npm:9.1.5" - bin: - husky: bin.js - checksum: c240018e852666dc12a93ca84751f1440bdf436468ba872c7b7b3cee54f5f1d7b4222a117988b27ca437093efdeb128778897ab0e409361336676a2c3012c8a7 - languageName: node - linkType: hard - -"iconv-lite@npm:0.6, iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e - languageName: node - linkType: hard - -"ignore-walk@npm:^6.0.4": - version: 6.0.4 - resolution: "ignore-walk@npm:6.0.4" - dependencies: - minimatch: ^9.0.0 - checksum: 8161bb3232eee92367049b186a02ad35e3a47edda2de0c0eb216aa89cf6183c33c46aef22b25e1bf5105c643bd2cc2bb722f474870a93a3c56ef8cca22eb64a1 - languageName: node - linkType: hard - -"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 - languageName: node - linkType: hard - -"ignore@npm:^5.3.2": - version: 5.3.2 - resolution: "ignore@npm:5.3.2" - checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be - languageName: node - linkType: hard - -"immutable@npm:^4.0.0": - version: 4.3.5 - resolution: "immutable@npm:4.3.5" - checksum: 0e25dd5c314421faede9e1122ab26cdb638cc3edc8678c4a75dee104279b12621a30c80a480fae7f68bc7e81672f1e672e454dc0fdc7e6cf0af10809348387b8 - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa - languageName: node - linkType: hard - -"import-local@npm:^3.0.2": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" - dependencies: - pkg-dir: ^4.2.0 - resolve-cwd: ^3.0.0 - bin: - import-local-fixture: fixtures/cli.js - checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd - languageName: node - linkType: hard - -"import-local@npm:^3.2.0": - version: 3.2.0 - resolution: "import-local@npm:3.2.0" - dependencies: - pkg-dir: ^4.2.0 - resolve-cwd: ^3.0.0 - bin: - import-local-fixture: fixtures/cli.js - checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 - languageName: node - linkType: hard - -"index-to-position@npm:^0.1.2": - version: 0.1.2 - resolution: "index-to-position@npm:0.1.2" - checksum: ce0ab15544b154d6821b4f8b3fdb5dc410d560d20e43bcb0fb8ea2ccc5f93dc04caeee6b3ebd4abc7091e437156db4caaaef934ce20f05f079a1dbc73755f7e7 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 - languageName: node - linkType: hard - -"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" - dependencies: - es-errors: ^1.3.0 - hasown: ^2.0.0 - side-channel: ^1.0.4 - checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb - languageName: node - linkType: hard - -"internmap@npm:1 - 2": - version: 2.0.3 - resolution: "internmap@npm:2.0.3" - checksum: 7ca41ec6aba8f0072fc32fa8a023450a9f44503e2d8e403583c55714b25efd6390c38a87161ec456bf42d7bc83aab62eb28f5aef34876b1ac4e60693d5e1d241 - languageName: node - linkType: hard - -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" - dependencies: - jsbn: 1.1.0 - sprintf-js: ^1.1.3 - checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: ^1.0.1 - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: ^2.0.0 - checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 - languageName: node - linkType: hard - -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac - languageName: node - linkType: hard - -"is-ci@npm:^3.0.1": - version: 3.0.1 - resolution: "is-ci@npm:3.0.1" - dependencies: - ci-info: ^3.2.0 - bin: - is-ci: bin.js - checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.8.1": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" - dependencies: - hasown: ^2.0.0 - checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^4.0.0": - version: 4.0.0 - resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^5.0.0": - version: 5.0.0 - resolution: "is-fullwidth-code-point@npm:5.0.0" - dependencies: - get-east-asian-width: ^1.0.0 - checksum: 8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 - languageName: node - linkType: hard - -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 - languageName: node - linkType: hard - -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 - languageName: node - linkType: hard - -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.2": - version: 2.0.2 - resolution: "is-negative-zero@npm:2.0.2" - checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: ^1.0.0 - checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a - languageName: node - linkType: hard - -"is-obj@npm:^1.0.1": - version: 1.0.1 - resolution: "is-obj@npm:1.0.1" - checksum: 3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c - languageName: node - linkType: hard - -"is-obj@npm:^2.0.0": - version: 2.0.0 - resolution: "is-obj@npm:2.0.0" - checksum: c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - -"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": - version: 4.1.0 - resolution: "is-plain-obj@npm:4.1.0" - checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce - languageName: node - linkType: hard - -"is-plain-object@npm:^2.0.4": - version: 2.0.4 - resolution: "is-plain-object@npm:2.0.4" - dependencies: - isobject: ^3.0.1 - checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca - languageName: node - linkType: hard - -"is-plain-object@npm:^5.0.0": - version: 5.0.0 - resolution: "is-plain-object@npm:5.0.0" - checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c - languageName: node - linkType: hard - -"is-potential-custom-element-name@npm:^1.0.1": - version: 1.0.1 - resolution: "is-potential-custom-element-name@npm:1.0.1" - checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab - languageName: node - linkType: hard - -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 - languageName: node - linkType: hard - -"is-regexp@npm:^1.0.0": - version: 1.0.0 - resolution: "is-regexp@npm:1.0.0" - checksum: be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "is-shared-array-buffer@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a - languageName: node - linkType: hard - -"is-ssh@npm:^1.4.0": - version: 1.4.0 - resolution: "is-ssh@npm:1.4.0" - dependencies: - protocols: ^2.0.1 - checksum: 75eaa17b538bee24b661fbeb0f140226ac77e904a6039f787bea418431e2162f1f9c4c4ccad3bd169e036cd701cc631406e8c505d9fa7e20164e74b47f86f40f - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 - languageName: node - linkType: hard - -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 - languageName: node - linkType: hard - -"is-stream@npm:^4.0.1": - version: 4.0.1 - resolution: "is-stream@npm:4.0.1" - checksum: cbea3f1fc271b21ceb228819d0c12a0965a02b57f39423925f99530b4eb86935235f258f06310b67cd02b2d10b49e9a0998f5ececf110ab7d3760bae4055ad23 - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: ^1.0.0 - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: ^1.0.2 - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 - languageName: node - linkType: hard - -"is-text-path@npm:^2.0.0": - version: 2.0.0 - resolution: "is-text-path@npm:2.0.0" - dependencies: - text-extensions: ^2.0.0 - checksum: 3a8725fc7c0d4c7741a97993bc2fecc09a0963660394d3ee76145274366c98ad57c6791d20d4ef829835f573b1137265051c05ecd65fbe72f69bb9ab9e3babbd - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.9": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" - dependencies: - which-typed-array: ^1.1.14 - checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 - languageName: node - linkType: hard - -"is-url-superb@npm:^4.0.0": - version: 4.0.0 - resolution: "is-url-superb@npm:4.0.0" - checksum: fd55e91c96349acb0d688f95fcb1ac67450e5db934976e3a8ff13ef446841e779a6f4d18b15f02331f05a3429c8fdaba2382ac1ab444059e86e9ffcde1ec8db0 - languageName: node - linkType: hard - -"is-url@npm:^1.2.4": - version: 1.2.4 - resolution: "is-url@npm:1.2.4" - checksum: 100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432 - languageName: node - linkType: hard - -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de - languageName: node - linkType: hard - -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e - languageName: node - linkType: hard - -"isobject@npm:^3.0.1": - version: 3.0.1 - resolution: "isobject@npm:3.0.1" - checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.2 - resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^6.3.0 - checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.1 - resolution: "istanbul-lib-instrument@npm:6.0.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^7.5.4 - checksum: fb23472e739cfc9b027cefcd7d551d5e7ca7ff2817ae5150fab99fe42786a7f7b56a29a2aa8309c37092e18297b8003f9c274f50ca4360949094d17fbac81472 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.1 - resolution: "istanbul-lib-report@npm:3.0.1" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^4.0.0 - supports-color: ^7.1.0 - checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.3": - version: 3.1.6 - resolution: "istanbul-reports@npm:3.1.6" - dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 44c4c0582f287f02341e9720997f9e82c071627e1e862895745d5f52ec72c9b9f38e1d12370015d2a71dcead794f34c7732aaef3fab80a24bc617a21c3d911d6 - languageName: node - linkType: hard - -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 - languageName: node - linkType: hard - -"jackspeak@npm:^3.1.2": - version: 3.1.2 - resolution: "jackspeak@npm:3.1.2" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 134276d5f785c518930701a0dcba1f3b0e9ce3e5b1c3e300898e2ae0bbd9b5195088b77252bf2110768de072c426e9e39f47e13912b0b002da4a3f4ff6e16eac - languageName: node - linkType: hard - -"jackspeak@npm:^4.0.1": - version: 4.0.1 - resolution: "jackspeak@npm:4.0.1" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 7989d19eddeff0631ef653df413e26290db77dc3791438bd12b56bed1c0b24d5d535fdfec13cf35775cd5b47f8ee57d36fd0bceaf2df672b1f523533fd4184cc - languageName: node - linkType: hard - -"jest-canvas-mock@npm:^2.5.2": - version: 2.5.2 - resolution: "jest-canvas-mock@npm:2.5.2" - dependencies: - cssfontparser: ^1.2.1 - moo-color: ^1.0.2 - checksum: a3004d2e96473049045e49dcf98e5ea6011494048ab42b5422b3089d9ff406aaca8353e79587055d840fa145541668eb8f78613765f252ad5901a8217e91ea5d - languageName: node - linkType: hard - -"jest-changed-files@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-changed-files@npm:29.7.0" - dependencies: - execa: ^5.0.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 - languageName: node - linkType: hard - -"jest-circus@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-circus@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/expect": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^1.0.0 - is-generator-fn: ^2.0.0 - jest-each: ^29.7.0 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-runtime: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - p-limit: ^3.1.0 - pretty-format: ^29.7.0 - pure-rand: ^6.0.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 - languageName: node - linkType: hard - -"jest-cli@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-cli@npm:29.7.0" - dependencies: - "@jest/core": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - create-jest: ^29.7.0 - exit: ^0.1.2 - import-local: ^3.0.2 - jest-config: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - yargs: ^17.3.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 - languageName: node - linkType: hard - -"jest-config@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-config@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.7.0 - "@jest/types": ^29.6.3 - babel-jest: ^29.7.0 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-circus: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-get-type: ^29.6.3 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-runner: ^29.7.0 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^29.7.0 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" - peerDependenciesMeta: - "@types/node": - optional: true - ts-node: - optional: true - checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff - languageName: node - linkType: hard - -"jest-diff@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-diff@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.6.3 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 - languageName: node - linkType: hard - -"jest-docblock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-docblock@npm:29.7.0" - dependencies: - detect-newline: ^3.0.0 - checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 - languageName: node - linkType: hard - -"jest-each@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-each@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - jest-util: ^29.7.0 - pretty-format: ^29.7.0 - checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c - languageName: node - linkType: hard - -"jest-environment-jsdom@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-jsdom@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/jsdom": ^20.0.0 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - jsdom: ^20.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 - languageName: node - linkType: hard - -"jest-environment-node@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-node@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-mock: ^29.7.0 - jest-util: ^29.7.0 - checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 - languageName: node - linkType: hard - -"jest-get-type@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-get-type@npm:29.6.3" - checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 - languageName: node - linkType: hard - -"jest-haste-map@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-haste-map@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/graceful-fs": ^4.1.3 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^29.6.3 - jest-util: ^29.7.0 - jest-worker: ^29.7.0 - micromatch: ^4.0.4 - walker: ^1.0.8 - dependenciesMeta: - fsevents: - optional: true - checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 - languageName: node - linkType: hard - -"jest-leak-detector@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-leak-detector@npm:29.7.0" - dependencies: - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-matcher-utils@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - pretty-format: ^29.7.0 - checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd - languageName: node - linkType: hard - -"jest-message-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-message-util@npm:29.7.0" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.6.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.7.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 - languageName: node - linkType: hard - -"jest-mock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-mock@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - jest-util: ^29.7.0 - checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 - languageName: node - linkType: hard - -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.3 - resolution: "jest-pnp-resolver@npm:1.2.3" - peerDependencies: - jest-resolve: "*" - peerDependenciesMeta: - jest-resolve: - optional: true - checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 - languageName: node - linkType: hard - -"jest-regex-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-regex-util@npm:29.6.3" - checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a - languageName: node - linkType: hard - -"jest-resolve-dependencies@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve-dependencies@npm:29.7.0" - dependencies: - jest-regex-util: ^29.6.3 - jest-snapshot: ^29.7.0 - checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 - languageName: node - linkType: hard - -"jest-resolve@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve@npm:29.7.0" - dependencies: - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-pnp-resolver: ^1.2.2 - jest-util: ^29.7.0 - jest-validate: ^29.7.0 - resolve: ^1.20.0 - resolve.exports: ^2.0.0 - slash: ^3.0.0 - checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 - languageName: node - linkType: hard - -"jest-runner@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runner@npm:29.7.0" - dependencies: - "@jest/console": ^29.7.0 - "@jest/environment": ^29.7.0 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.13.1 - graceful-fs: ^4.2.9 - jest-docblock: ^29.7.0 - jest-environment-node: ^29.7.0 - jest-haste-map: ^29.7.0 - jest-leak-detector: ^29.7.0 - jest-message-util: ^29.7.0 - jest-resolve: ^29.7.0 - jest-runtime: ^29.7.0 - jest-util: ^29.7.0 - jest-watcher: ^29.7.0 - jest-worker: ^29.7.0 - p-limit: ^3.1.0 - source-map-support: 0.5.13 - checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb - languageName: node - linkType: hard - -"jest-runtime@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runtime@npm:29.7.0" - dependencies: - "@jest/environment": ^29.7.0 - "@jest/fake-timers": ^29.7.0 - "@jest/globals": ^29.7.0 - "@jest/source-map": ^29.6.3 - "@jest/test-result": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.7.0 - jest-message-util: ^29.7.0 - jest-mock: ^29.7.0 - jest-regex-util: ^29.6.3 - jest-resolve: ^29.7.0 - jest-snapshot: ^29.7.0 - jest-util: ^29.7.0 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e - languageName: node - linkType: hard - -"jest-snapshot@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-snapshot@npm:29.7.0" - dependencies: - "@babel/core": ^7.11.6 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-jsx": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.7.0 - "@jest/transform": ^29.7.0 - "@jest/types": ^29.6.3 - babel-preset-current-node-syntax: ^1.0.0 - chalk: ^4.0.0 - expect: ^29.7.0 - graceful-fs: ^4.2.9 - jest-diff: ^29.7.0 - jest-get-type: ^29.6.3 - jest-matcher-utils: ^29.7.0 - jest-message-util: ^29.7.0 - jest-util: ^29.7.0 - natural-compare: ^1.4.0 - pretty-format: ^29.7.0 - semver: ^7.5.3 - checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-util@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca - languageName: node - linkType: hard - -"jest-validate@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-validate@npm:29.7.0" - dependencies: - "@jest/types": ^29.6.3 - camelcase: ^6.2.0 - chalk: ^4.0.0 - jest-get-type: ^29.6.3 - leven: ^3.1.0 - pretty-format: ^29.7.0 - checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae - languageName: node - linkType: hard - -"jest-watcher@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-watcher@npm:29.7.0" - dependencies: - "@jest/test-result": ^29.7.0 - "@jest/types": ^29.6.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - emittery: ^0.13.1 - jest-util: ^29.7.0 - string-length: ^4.0.1 - checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f - languageName: node - linkType: hard - -"jest-worker@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-worker@npm:29.7.0" - dependencies: - "@types/node": "*" - jest-util: ^29.7.0 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 - languageName: node - linkType: hard - -"jest@npm:^29.7.0": - version: 29.7.0 - resolution: "jest@npm:29.7.0" - dependencies: - "@jest/core": ^29.7.0 - "@jest/types": ^29.6.3 - import-local: ^3.0.2 - jest-cli: ^29.7.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b - languageName: node - linkType: hard - -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 - languageName: node - linkType: hard - -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 - bin: - js-yaml: bin/js-yaml.js - checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c - languageName: node - linkType: hard - -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: ^2.0.1 - bin: - js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a - languageName: node - linkType: hard - -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 - languageName: node - linkType: hard - -"jsdom@npm:^20.0.0": - version: 20.0.3 - resolution: "jsdom@npm:20.0.3" - dependencies: - abab: ^2.0.6 - acorn: ^8.8.1 - acorn-globals: ^7.0.0 - cssom: ^0.5.0 - cssstyle: ^2.3.0 - data-urls: ^3.0.2 - decimal.js: ^10.4.2 - domexception: ^4.0.0 - escodegen: ^2.0.0 - form-data: ^4.0.0 - html-encoding-sniffer: ^3.0.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.1 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.2 - parse5: ^7.1.1 - saxes: ^6.0.0 - symbol-tree: ^3.2.4 - tough-cookie: ^4.1.2 - w3c-xmlserializer: ^4.0.0 - webidl-conversions: ^7.0.0 - whatwg-encoding: ^2.0.0 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - ws: ^8.11.0 - xml-name-validator: ^4.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d - languageName: node - linkType: hard - -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" - bin: - jsesc: bin/jsesc - checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^3.0.0": - version: 3.0.1 - resolution: "json-parse-even-better-errors@npm:3.0.1" - checksum: bf74fa3f715e56699ccd68b80a7d20908de432a3fae2d5aa2ed530a148e9d9ccdf8e6983b93d9966a553aa70dcf003ce3a7ffec2c0ce74d2a6173e3691a426f0 - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^3.0.2": - version: 3.0.2 - resolution: "json-parse-even-better-errors@npm:3.0.2" - checksum: 6f04ea6c9ccb783630a59297959247e921cc90b917b8351197ca7fd058fccc7079268fd9362be21ba876fc26aa5039369dd0a2280aae49aae425784794a94927 - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b - languageName: node - linkType: hard - -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 - languageName: node - linkType: hard - -"json-stringify-nice@npm:^1.1.4": - version: 1.1.4 - resolution: "json-stringify-nice@npm:1.1.4" - checksum: 6ddf781148b46857ab04e97f47be05f14c4304b86eb5478369edbeacd070c21c697269964b982fc977e8989d4c59091103b1d9dc291aba40096d6cbb9a392b72 - languageName: node - linkType: hard - -"json-stringify-safe@npm:^5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee - languageName: node - linkType: hard - -"json5@npm:^1.0.2": - version: 1.0.2 - resolution: "json5@npm:1.0.2" - dependencies: - minimist: ^1.2.0 - bin: - json5: lib/cli.js - checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 - languageName: node - linkType: hard - -"json5@npm:^2.2.2, json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 - languageName: node - linkType: hard - -"jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": - version: 1.3.1 - resolution: "jsonparse@npm:1.3.1" - checksum: 6514a7be4674ebf407afca0eda3ba284b69b07f9958a8d3113ef1005f7ec610860c312be067e450c569aab8b89635e332cee3696789c750692bb60daba627f4d - languageName: node - linkType: hard - -"just-diff-apply@npm:^5.2.0": - version: 5.5.0 - resolution: "just-diff-apply@npm:5.5.0" - checksum: ed6bbd59781542ccb786bd843038e4591e8390aa788075beb69d358051f68fbeb122bda050b7f42515d51fb64b907d5c7bea694a0543b87b24ce406cfb5f5bfa - languageName: node - linkType: hard - -"just-diff@npm:^6.0.0": - version: 6.0.2 - resolution: "just-diff@npm:6.0.2" - checksum: 1a0c7524f640cb88ab013862733e710f840927834208fd3b85cbc5da2ced97acc75e7dcfe493268ac6a6514c51dd8624d2fd9d057050efba3c02b81a6dcb7ff9 - languageName: node - linkType: hard - -"keyv@npm:^4.5.3, keyv@npm:^4.5.4": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: 3.0.1 - checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 - languageName: node - linkType: hard - -"kind-of@npm:^6.0.2": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b - languageName: node - linkType: hard - -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 - languageName: node - linkType: hard - -"known-css-properties@npm:^0.29.0": - version: 0.29.0 - resolution: "known-css-properties@npm:0.29.0" - checksum: daa6562e907f856cbfd58a00c42f532c9bba283388984da6a3bffb494e56612e5f23c52f30b0d9885f0ea07ad5d88bfa0470ee65017a6ce6c565289a1afd78af - languageName: node - linkType: hard - -"known-css-properties@npm:^0.34.0": - version: 0.34.0 - resolution: "known-css-properties@npm:0.34.0" - checksum: 2f1c562767164672442949c44310cf8bbd0cc8a1fbf76b2437a0a2ed364876f40b03d18ffee3de2490e789e916be6c635823e4137fcb3c2f690a96e79bd66a8c - languageName: node - linkType: hard - -"leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 - languageName: node - linkType: hard - -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: ^1.2.1 - type-check: ~0.4.0 - checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 - languageName: node - linkType: hard - -"libnpmaccess@npm:^8.0.6": - version: 8.0.6 - resolution: "libnpmaccess@npm:8.0.6" - dependencies: - npm-package-arg: ^11.0.2 - npm-registry-fetch: ^17.0.1 - checksum: 62fa6a476321268ebd379f35782d9ead8993964bd9dfc8afbd201921d9037b7bc9d956f8b2717f1247e44ab33cb7de45b556ded66144f4b3038a828299cb260d - languageName: node - linkType: hard - -"libnpmpublish@npm:^9.0.9": - version: 9.0.9 - resolution: "libnpmpublish@npm:9.0.9" - dependencies: - ci-info: ^4.0.0 - normalize-package-data: ^6.0.1 - npm-package-arg: ^11.0.2 - npm-registry-fetch: ^17.0.1 - proc-log: ^4.2.0 - semver: ^7.3.7 - sigstore: ^2.2.0 - ssri: ^10.0.6 - checksum: bce18edcc02df5e08981f64093ed1772953b8efb27ed98018522f8c11cb91c882d420d790d3e3091dccd4f83a229f87b98562cbbed7ac4dc28af7eec9e5da9c1 - languageName: node - linkType: hard - -"lilconfig@npm:~3.1.2": - version: 3.1.2 - resolution: "lilconfig@npm:3.1.2" - checksum: 4e8b83ddd1d0ad722600994e6ba5d858ddca14f0587aa6b9c8185e17548149b5e13d4d583d811e9e9323157fa8c6a527e827739794c7502b59243c58e210b8c3 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 - languageName: node - linkType: hard - -"lines-and-columns@npm:^2.0.3": - version: 2.0.4 - resolution: "lines-and-columns@npm:2.0.4" - checksum: f5e3e207467d3e722280c962b786dc20ebceb191821dcd771d14ab3146b6744cae28cf305ee4638805bec524ac54800e15698c853fcc53243821f88df37e4975 - languageName: node - linkType: hard - -"lint-staged@npm:^15.0.0": - version: 15.2.9 - resolution: "lint-staged@npm:15.2.9" - dependencies: - chalk: ~5.3.0 - commander: ~12.1.0 - debug: ~4.3.6 - execa: ~8.0.1 - lilconfig: ~3.1.2 - listr2: ~8.2.4 - micromatch: ~4.0.7 - pidtree: ~0.6.0 - string-argv: ~0.3.2 - yaml: ~2.5.0 - bin: - lint-staged: bin/lint-staged.js - checksum: 7f804c24d0374b48d26f11a051342141b84c9954f77225bab5ae221b1e4d47a72f722f39b13169267592c28b2614ad39f9722fd86bc4cdfdf93e8601ff66b0e1 - languageName: node - linkType: hard - -"listr2@npm:~8.2.4": - version: 8.2.4 - resolution: "listr2@npm:8.2.4" - dependencies: - cli-truncate: ^4.0.0 - colorette: ^2.0.20 - eventemitter3: ^5.0.1 - log-update: ^6.1.0 - rfdc: ^1.4.1 - wrap-ansi: ^9.0.0 - checksum: b1cdcae653ff967a9b28637e346df2d6614165b4ad1e9e36b1403bc972550c51f57ec0e6d307dc3921ceea0601e244e848ab79457c6d570ab1f088b577a63d90 - languageName: node - linkType: hard - -"load-json-file@npm:^7.0.1": - version: 7.0.1 - resolution: "load-json-file@npm:7.0.1" - checksum: a560288da6891778321ef993e4bdbdf05374a4f3a3aeedd5ba6b64672798c830d748cfc59a2ec9891a3db30e78b3d04172e0dcb0d4828168289a393147ca0e74 - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 - languageName: node - linkType: hard - -"locate-path@npm:^6.0.0": - version: 6.0.0 - resolution: "locate-path@npm:6.0.0" - dependencies: - p-locate: ^5.0.0 - checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a - languageName: node - linkType: hard - -"locate-path@npm:^7.1.0": - version: 7.2.0 - resolution: "locate-path@npm:7.2.0" - dependencies: - p-locate: ^6.0.0 - checksum: c1b653bdf29beaecb3d307dfb7c44d98a2a98a02ebe353c9ad055d1ac45d6ed4e1142563d222df9b9efebc2bcb7d4c792b507fad9e7150a04c29530b7db570f8 - languageName: node - linkType: hard - -"lodash.debounce@npm:^4.0.8": - version: 4.0.8 - resolution: "lodash.debounce@npm:4.0.8" - checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 - languageName: node - linkType: hard - -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 - languageName: node - linkType: hard - -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 - languageName: node - linkType: hard - -"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 - languageName: node - linkType: hard - -"log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: ^4.1.0 - is-unicode-supported: ^0.1.0 - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 - languageName: node - linkType: hard - -"log-update@npm:^6.1.0": - version: 6.1.0 - resolution: "log-update@npm:6.1.0" - dependencies: - ansi-escapes: ^7.0.0 - cli-cursor: ^5.0.0 - slice-ansi: ^7.1.0 - strip-ansi: ^7.1.0 - wrap-ansi: ^9.0.0 - checksum: 817a9ba6c5cbc19e94d6359418df8cfe8b3244a2903f6d53354e175e243a85b782dc6a98db8b5e457ee2f09542ca8916c39641b9cd3b0e6ef45e9481d50c918a - languageName: node - linkType: hard - -"loglevel@npm:^1.9.1": - version: 1.9.1 - resolution: "loglevel@npm:1.9.1" - checksum: e1c8586108c4d566122e91f8a79c8df728920e3a714875affa5120566761a24077ec8ec9e5fc388b022e39fc411ec6e090cde1b5775871241b045139771eeb06 - languageName: node - linkType: hard - -"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: ^3.0.0 || ^4.0.0 - bin: - loose-envify: cli.js - checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 - languageName: node - linkType: hard - -"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.2.0 - resolution: "lru-cache@npm:10.2.0" - checksum: eee7ddda4a7475deac51ac81d7dd78709095c6fa46e8350dc2d22462559a1faa3b81ed931d5464b13d48cbd7e08b46100b6f768c76833912bc444b99c37e25db - languageName: node - linkType: hard - -"lru-cache@npm:^10.2.2": - version: 10.4.1 - resolution: "lru-cache@npm:10.4.1" - checksum: 8acb35d9c2195ec98ec5002850750d7af45ae0cf19376e11a3a1655b3e5bccc0cc6b7192274bcabc9d42c6e2a9769033ffea0310e546c4e2cc55efe3a4b5da75 - languageName: node - linkType: hard - -"lru-cache@npm:^11.0.0": - version: 11.0.0 - resolution: "lru-cache@npm:11.0.0" - checksum: c29385f9369b1a566e1db9eda9a4b12f6507de906e5720ca12844dd775b7139c42b8e5837e7d5162bcc292ce4d3eecfa74ec2856c6afcc0caa2e3c9ea3a17f27 - languageName: node - linkType: hard - -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"lz-string@npm:^1.5.0": - version: 1.5.0 - resolution: "lz-string@npm:1.5.0" - bin: - lz-string: bin/bin.js - checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d - languageName: node - linkType: hard - -"madge@npm:^8.0.0": - version: 8.0.0 - resolution: "madge@npm:8.0.0" - dependencies: - chalk: ^4.1.2 - commander: ^7.2.0 - commondir: ^1.0.1 - debug: ^4.3.4 - dependency-tree: ^11.0.0 - ora: ^5.4.1 - pluralize: ^8.0.0 - pretty-ms: ^7.0.1 - rc: ^1.2.8 - stream-to-array: ^2.3.0 - ts-graphviz: ^2.1.2 - walkdir: ^0.4.1 - peerDependencies: - typescript: ^5.4.4 - peerDependenciesMeta: - typescript: - optional: true - bin: - madge: bin/cli.js - checksum: a5b06f23e474b60cd6a45d72b02ac11d6a3fe5840b3b87c5c01c9f0159a58bd6f86e47b2ed0212316601fabca9de525577944b0f5d547e2b69270858d4049ba4 - languageName: node - linkType: hard - -"magic-string@npm:^0.30.10": - version: 0.30.11 - resolution: "magic-string@npm:0.30.11" - dependencies: - "@jridgewell/sourcemap-codec": ^1.5.0 - checksum: e041649453c9a3f31d2e731fc10e38604d50e20d3585cd48bc7713a6e2e1a3ad3012105929ca15750d59d0a3f1904405e4b95a23b7e69dc256db3c277a73a3ca - languageName: node - linkType: hard - -"make-dir@npm:^4.0.0": - version: 4.0.0 - resolution: "make-dir@npm:4.0.0" - dependencies: - semver: ^7.5.3 - checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a - languageName: node - linkType: hard - -"make-dir@npm:^5.0.0": - version: 5.0.0 - resolution: "make-dir@npm:5.0.0" - checksum: 9f40f4756af5138ca3b138f9e8af144b0420516e96b0e079d816a173d2f69b2ef3425abf20e25764d222c0939a9fd2bce91dd26c22002a559cd6beaea5c994d2 - languageName: node - linkType: hard - -"make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.0 - resolution: "make-fetch-happen@npm:13.0.0" - dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 - http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af - languageName: node - linkType: hard - -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" - dependencies: - tmpl: 1.0.5 - checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 - languageName: node - linkType: hard - -"mathml-tag-names@npm:^2.1.3": - version: 2.1.3 - resolution: "mathml-tag-names@npm:2.1.3" - checksum: 1201a25a137d6b9e328facd67912058b8b45b19a6c4cc62641c9476195da28a275ca6e0eca070af5378b905c2b11abc1114676ba703411db0b9ce007de921ad0 - languageName: node - linkType: hard - -"mdn-data@npm:2.0.30": - version: 2.0.30 - resolution: "mdn-data@npm:2.0.30" - checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa - languageName: node - linkType: hard - -"memoize-one@npm:^6.0.0": - version: 6.0.0 - resolution: "memoize-one@npm:6.0.0" - checksum: f185ea69f7cceae5d1cb596266dcffccf545e8e7b4106ec6aa93b71ab9d16460dd118ac8b12982c55f6d6322fcc1485de139df07eacffaae94888b9b3ad7675f - languageName: node - linkType: hard - -"meow@npm:^12.0.1": - version: 12.1.1 - resolution: "meow@npm:12.1.1" - checksum: a6f3be85fbe53430ef53ab933dd790c39216eb4dbaabdbef593aa59efb40ecaa417897000175476bc33eed09e4cbce01df7ba53ba91e9a4bd84ec07024cb8914 - languageName: node - linkType: hard - -"meow@npm:^13.2.0": - version: 13.2.0 - resolution: "meow@npm:13.2.0" - checksum: 79c61dc02ad448ff5c29bbaf1ef42181f1eae9947112c0e23db93e84cbc2708ecda53e54bfc6689f1e55255b2cea26840ec76e57a5773a16ca45f4fe2163ec1c - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"micromatch@npm:^4.0.4": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc - languageName: node - linkType: hard - -"micromatch@npm:^4.0.7, micromatch@npm:~4.0.7": - version: 4.0.7 - resolution: "micromatch@npm:4.0.7" - dependencies: - braces: ^3.0.3 - picomatch: ^2.3.1 - checksum: 3cde047d70ad80cf60c787b77198d680db3b8c25b23feb01de5e2652205d9c19f43bd81882f69a0fd1f0cde6a7a122d774998aad3271ddb1b8accf8a0f480cf7 - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: 1.52.0 - checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 - languageName: node - linkType: hard - -"mimic-function@npm:^5.0.0": - version: 5.0.1 - resolution: "mimic-function@npm:5.0.1" - checksum: eb5893c99e902ccebbc267c6c6b83092966af84682957f79313311edb95e8bb5f39fb048d77132b700474d1c86d90ccc211e99bae0935447a4834eb4c882982c - languageName: node - linkType: hard - -"min-document@npm:^2.19.0": - version: 2.19.0 - resolution: "min-document@npm:2.19.0" - dependencies: - dom-walk: ^0.1.0 - checksum: da6437562ea2228041542a2384528e74e22d1daa1a4ec439c165abf0b9d8a63e17e3b8a6dc6e0c731845e85301198730426932a0e813d23f932ca668340c9623 - languageName: node - linkType: hard - -"min-indent@npm:^1.0.0": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 - languageName: node - linkType: hard - -"minimatch@npm:^10.0.0": - version: 10.0.1 - resolution: "minimatch@npm:10.0.1" - dependencies: - brace-expansion: ^2.0.1 - checksum: f5b63c2f30606091a057c5f679b067f84a2cd0ffbd2dbc9143bda850afd353c7be81949ff11ae0c86988f07390eeca64efd7143ee05a0dab37f6c6b38a2ebb6c - languageName: node - linkType: hard - -"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.4": - version: 9.0.4 - resolution: "minimatch@npm:9.0.4" - dependencies: - brace-expansion: ^2.0.1 - checksum: cf717f597ec3eed7dabc33153482a2e8d49f4fd3c26e58fd9c71a94c5029a0838728841b93f46bf1263b65a8010e2ee800d0dc9b004ab8ba8b6d1ec07cc115b5 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.5": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: ^2.0.1 - checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 - languageName: node - linkType: hard - -"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": - version: 1.2.8 - resolution: "minimist@npm:1.2.8" - checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: ^7.0.3 - checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.4 - resolution: "minipass-fetch@npm:3.0.4" - dependencies: - encoding: ^0.1.13 - minipass: ^7.0.3 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-json-stream@npm:^1.0.1": - version: 1.0.1 - resolution: "minipass-json-stream@npm:1.0.1" - dependencies: - jsonparse: ^1.3.1 - minipass: ^3.0.0 - checksum: 791b696a27d1074c4c08dab1bf5a9f3201145c2933e428f45d880467bce12c60de4703203d2928de4b162d0ae77b0bb4b55f96cb846645800aa0eb4919b3e796 - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: ^4.0.0 - checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 - languageName: node - linkType: hard - -"minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"mobx-react-lite@npm:^3.4.0": - version: 3.4.3 - resolution: "mobx-react-lite@npm:3.4.3" - peerDependencies: - mobx: ^6.1.0 - react: ^16.8.0 || ^17 || ^18 - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 60a2580eb9a0b9988fc76959d7299f018733dc33cacaa73c45500953006d4d45e738d9ae39ccfc767ac19a75656dbc028d833282c848fbc67d8d18a2bcb5c262 - languageName: node - linkType: hard - -"mobx-react@npm:^7.6.0": - version: 7.6.0 - resolution: "mobx-react@npm:7.6.0" - dependencies: - mobx-react-lite: ^3.4.0 - peerDependencies: - mobx: ^6.1.0 - react: ^16.8.0 || ^17 || ^18 - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - checksum: 07ce6eb297ddab2cc693df7350a3e2f730194cc6eb56bd912f80e28f9427237569e0bda6b30167154faf094e7c5e5ff360abd52acd2860d9a0d0e53320617ee8 - languageName: node - linkType: hard - -"mobx@npm:^6.9.0": - version: 6.12.0 - resolution: "mobx@npm:6.12.0" - checksum: 482914d39199cadc8808907a2b9dbc634c74534d6c6d6cb34984c199aa94665ce07e7d183c0e97d54f4b06c8e42fec0a48c79484f4bbeac04a4dfd0f160290c6 - languageName: node - linkType: hard - -"module-definition@npm:^6.0.0": - version: 6.0.0 - resolution: "module-definition@npm:6.0.0" - dependencies: - ast-module-types: ^6.0.0 - node-source-walk: ^7.0.0 - bin: - module-definition: bin/cli.js - checksum: 88c997eb6018e47140980892261ec875f207cc274a85f9f39c3b76cf93cf3738f3bca4fc40fa4ebcf27f321c7231773e9cf3865a31f85805937883fff9a9d8c5 - languageName: node - linkType: hard - -"module-lookup-amd@npm:^9.0.1": - version: 9.0.2 - resolution: "module-lookup-amd@npm:9.0.2" - dependencies: - commander: ^12.1.0 - glob: ^7.2.3 - requirejs: ^2.3.7 - requirejs-config-file: ^4.0.0 - bin: - lookup-amd: bin/cli.js - checksum: 70a8b734397e2afa5c4078ac9d0d43bdef414c1de38e7ad5d1bb5cda9391008c85b1570e0dc9022d267a4e928d79686ff694e9f79da4bf1dfe14fc1dd0606e07 - languageName: node - linkType: hard - -"monaco-editor@npm:^0.51.0": - version: 0.51.0 - resolution: "monaco-editor@npm:0.51.0" - checksum: 86cd6e5a756407bc9564ae4c408cdaecbf3410b5bf88e22783e22e79e1e1d048c1cba7c26249e6b234731ffc1aad3660c27213ce1f3f441b3e04cf01a75b1f8c - languageName: node - linkType: hard - -"moo-color@npm:^1.0.2": - version: 1.0.3 - resolution: "moo-color@npm:1.0.3" - dependencies: - color-name: ^1.1.4 - checksum: 02bf59b6bbd5e86641bc062e2dc0843e6e579e18ef67e1c8e93bfc01945df578f20e66ce16aa9632db2aa0e16806e0914a26eb345a804f45fff1ae12a8906a29 - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:^2.1.1": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d - languageName: node - linkType: hard - -"mute-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "mute-stream@npm:1.0.0" - checksum: 36fc968b0e9c9c63029d4f9dc63911950a3bdf55c9a87f58d3a266289b67180201cade911e7699f8b2fa596b34c9db43dad37649e3f7fdd13c3bb9edb0017ee7 - languageName: node - linkType: hard - -"nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" - bin: - nanoid: bin/nanoid.cjs - checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d - languageName: node - linkType: hard - -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"neo-async@npm:^2.6.2": - version: 2.6.2 - resolution: "neo-async@npm:2.6.2" - checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 - languageName: node - linkType: hard - -"new-github-release-url@npm:^2.0.0": - version: 2.0.0 - resolution: "new-github-release-url@npm:2.0.0" - dependencies: - type-fest: ^2.5.1 - checksum: 3d4ae0f3b775623ceed8e558b6f9850e897aea981a9c937d3ad4e018669c829beccb2c4b5a6af996726ebf86c5b7638368dfc01f3ac2e395d1df29309bc0c5ca - languageName: node - linkType: hard - -"node-domexception@npm:^1.0.0": - version: 1.0.0 - resolution: "node-domexception@npm:1.0.0" - checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f - languageName: node - linkType: hard - -"node-fetch@npm:^3.3.2": - version: 3.3.2 - resolution: "node-fetch@npm:3.3.2" - dependencies: - data-uri-to-buffer: ^4.0.0 - fetch-blob: ^3.1.4 - formdata-polyfill: ^4.0.10 - checksum: 06a04095a2ddf05b0830a0d5302699704d59bda3102894ea64c7b9d4c865ecdff2d90fd042df7f5bc40337266961cb6183dcc808ea4f3000d024f422b462da92 - languageName: node - linkType: hard - -"node-gyp@npm:^10.0.0, node-gyp@npm:latest": - version: 10.0.1 - resolution: "node-gyp@npm:10.0.1" - dependencies: - env-paths: ^2.2.0 - exponential-backoff: ^3.1.1 - glob: ^10.3.10 - graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^3.0.0 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^4.0.0 - bin: - node-gyp: bin/node-gyp.js - checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f - languageName: node - linkType: hard - -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e - languageName: node - linkType: hard - -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 - languageName: node - linkType: hard - -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 - languageName: node - linkType: hard - -"node-source-walk@npm:^7.0.0": - version: 7.0.0 - resolution: "node-source-walk@npm:7.0.0" - dependencies: - "@babel/parser": ^7.24.4 - checksum: 61789f4bf382a3a225db16e1d30af48550bddbfebcf7b4784756247d2f5acb4318440c32f31efb1ef9fbf6c6d71571a355fd9e532c13a90f5703814b60f8a671 - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.0 - resolution: "nopt@npm:7.2.0" - dependencies: - abbrev: ^2.0.0 - bin: - nopt: bin/nopt.js - checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 - languageName: node - linkType: hard - -"nopt@npm:^7.2.1": - version: 7.2.1 - resolution: "nopt@npm:7.2.1" - dependencies: - abbrev: ^2.0.0 - bin: - nopt: bin/nopt.js - checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 - languageName: node - linkType: hard - -"normalize-package-data@npm:^6.0.0": - version: 6.0.0 - resolution: "normalize-package-data@npm:6.0.0" - dependencies: - hosted-git-info: ^7.0.0 - is-core-module: ^2.8.1 - semver: ^7.3.5 - validate-npm-package-license: ^3.0.4 - checksum: 741211a4354ba6d618caffa98f64e0e5ec9e5575bf3aefe47f4b68e662d65f9ba1b6b2d10640c16254763ed0879288155566138b5ffe384172352f6e969c1752 - languageName: node - linkType: hard - -"normalize-package-data@npm:^6.0.1": - version: 6.0.1 - resolution: "normalize-package-data@npm:6.0.1" - dependencies: - hosted-git-info: ^7.0.0 - is-core-module: ^2.8.1 - semver: ^7.3.5 - validate-npm-package-license: ^3.0.4 - checksum: 4f6bca00b5092b824e1d4a28fb47052b41afaaebabfd0700e47f130cac619d60668aa6ff34dfa9bccc1b06c7adcef44c34a565576b63b578e1e35b3fc67c22ca - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 - languageName: node - linkType: hard - -"npm-bundled@npm:^3.0.0": - version: 3.0.0 - resolution: "npm-bundled@npm:3.0.0" - dependencies: - npm-normalize-package-bin: ^3.0.0 - checksum: 110859c2d6dcd7941dac0932a29171cbde123060486a4b6e897aaf5e025abeb3d9ffcdfe9e9271992e6396b2986c2c534f1029a45a7c196f1257fa244305dbf8 - languageName: node - linkType: hard - -"npm-install-checks@npm:^6.0.0, npm-install-checks@npm:^6.2.0": - version: 6.3.0 - resolution: "npm-install-checks@npm:6.3.0" - dependencies: - semver: ^7.1.1 - checksum: 6c20dadb878a0d2f1f777405217b6b63af1299d0b43e556af9363ee6eefaa98a17dfb7b612a473a473e96faf7e789c58b221e0d8ffdc1d34903c4f71618df3b4 - languageName: node - linkType: hard - -"npm-normalize-package-bin@npm:^3.0.0": - version: 3.0.1 - resolution: "npm-normalize-package-bin@npm:3.0.1" - checksum: de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf - languageName: node - linkType: hard - -"npm-package-arg@npm:^11.0.0": - version: 11.0.1 - resolution: "npm-package-arg@npm:11.0.1" - dependencies: - hosted-git-info: ^7.0.0 - proc-log: ^3.0.0 - semver: ^7.3.5 - validate-npm-package-name: ^5.0.0 - checksum: 60364504e04e34fc20b47ad192efc9181922bce0cb41fa81871b1b75748d8551725f61b2f9a2e3dffb1782d749a35313f5dc02c18c3987653990d486f223adf2 - languageName: node - linkType: hard - -"npm-package-arg@npm:^11.0.2": - version: 11.0.2 - resolution: "npm-package-arg@npm:11.0.2" - dependencies: - hosted-git-info: ^7.0.0 - proc-log: ^4.0.0 - semver: ^7.3.5 - validate-npm-package-name: ^5.0.0 - checksum: cb78da54d42373fc87fcecfc68e74b10be02fea940becddf9fdcc8941334a5d57b5e867da2647e8b74880e1dc2b212d0fcc963fafd41cbccca8da3a1afef5b12 - languageName: node - linkType: hard - -"npm-package-arg@npm:^11.0.3": - version: 11.0.3 - resolution: "npm-package-arg@npm:11.0.3" - dependencies: - hosted-git-info: ^7.0.0 - proc-log: ^4.0.0 - semver: ^7.3.5 - validate-npm-package-name: ^5.0.0 - checksum: cc6f22c39201aa14dcceeddb81bfbf7fa0484f94bcd2b3ad038e18afec5167c843cdde90c897f6034dc368faa0100c1eeee6e3f436a89e0af32ba932af4a8c28 - languageName: node - linkType: hard - -"npm-packlist@npm:^8.0.0, npm-packlist@npm:^8.0.2": - version: 8.0.2 - resolution: "npm-packlist@npm:8.0.2" - dependencies: - ignore-walk: ^6.0.4 - checksum: c75ae66b285503409e07878274d0580c1915e8db3a52539e7588a00d8c7c27b5c3c8459906d26142ffd772f0e8f291e9aa4ea076bb44a4ab0ba7e0f25b46423b - languageName: node - linkType: hard - -"npm-pick-manifest@npm:^9.0.0": - version: 9.0.0 - resolution: "npm-pick-manifest@npm:9.0.0" - dependencies: - npm-install-checks: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - npm-package-arg: ^11.0.0 - semver: ^7.3.5 - checksum: a6f102f9e9e8feea69be3a65e492fef6319084a85fc4e40dc88a277a3aa675089cef13ab0436ed7916e97c7bbba8315633d818eb15402c3abfb0bddc1af08cc7 - languageName: node - linkType: hard - -"npm-pick-manifest@npm:^9.0.1": - version: 9.0.1 - resolution: "npm-pick-manifest@npm:9.0.1" - dependencies: - npm-install-checks: ^6.0.0 - npm-normalize-package-bin: ^3.0.0 - npm-package-arg: ^11.0.0 - semver: ^7.3.5 - checksum: acd53d99cb72b39dd2e6aefe32c08a0ba969622911865ff86555dba0cd6e67ca43ae72fd1962084e4344d88596f4faf75128b70347beb29613720445d4063c87 - languageName: node - linkType: hard - -"npm-registry-fetch@npm:^17.0.0, npm-registry-fetch@npm:^17.0.1": - version: 17.0.1 - resolution: "npm-registry-fetch@npm:17.0.1" - dependencies: - "@npmcli/redact": ^2.0.0 - make-fetch-happen: ^13.0.0 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minipass-json-stream: ^1.0.1 - minizlib: ^2.1.2 - npm-package-arg: ^11.0.0 - proc-log: ^4.0.0 - checksum: 4a53e96969991f62fa6b5b0a47a6a0288282003ab41e6e752bc0c8ba34a284f216ae290952a032bf143fd6827faef0f204cec32f33e2d0cb348db850dd95d09d - languageName: node - linkType: hard - -"npm-registry-fetch@npm:^17.1.0": - version: 17.1.0 - resolution: "npm-registry-fetch@npm:17.1.0" - dependencies: - "@npmcli/redact": ^2.0.0 - jsonparse: ^1.3.1 - make-fetch-happen: ^13.0.0 - minipass: ^7.0.2 - minipass-fetch: ^3.0.0 - minizlib: ^2.1.2 - npm-package-arg: ^11.0.0 - proc-log: ^4.0.0 - checksum: 12452e690aa98a4504fe70a40e97877656799a66d31b8e6d5786b85d1d27aee168162cd5d78acc05a7eac5fa56f2b5ba0bdf80e83daaf5ef67e66c3d8c979c39 - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: ^3.0.0 - checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 - languageName: node - linkType: hard - -"npm-run-path@npm:^5.1.0": - version: 5.2.0 - resolution: "npm-run-path@npm:5.2.0" - dependencies: - path-key: ^4.0.0 - checksum: c5325e016014e715689c4014f7e0be16cc4cbf529f32a1723e511bc4689b5f823b704d2bca61ac152ce2bda65e0205dc8b3ba0ec0f5e4c3e162d302f6f5b9efb - languageName: node - linkType: hard - -"nwsapi@npm:^2.2.2": - version: 2.2.7 - resolution: "nwsapi@npm:2.2.7" - checksum: cab25f7983acec7e23490fec3ef7be608041b460504229770e3bfcf9977c41d6fe58f518994d3bd9aa3a101f501089a3d4a63536f4ff8ae4b8c4ca23bdbfda4e - languageName: node - linkType: hard - -"object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f - languageName: node - linkType: hard - -"object-inspect@npm:^1.13.1": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f - languageName: node - linkType: hard - -"object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a - languageName: node - linkType: hard - -"object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" - dependencies: - call-bind: ^1.0.5 - define-properties: ^1.2.1 - has-symbols: ^1.0.3 - object-keys: ^1.1.1 - checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 - languageName: node - linkType: hard - -"object.fromentries@npm:^2.0.7": - version: 2.0.7 - resolution: "object.fromentries@npm:2.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 7341ce246e248b39a431b87a9ddd331ff52a454deb79afebc95609f94b1f8238966cf21f52188f2a353f0fdf83294f32f1ebf1f7826aae915ebad21fd0678065 - languageName: node - linkType: hard - -"object.groupby@npm:^1.0.1": - version: 1.0.2 - resolution: "object.groupby@npm:1.0.2" - dependencies: - array.prototype.filter: ^1.0.3 - call-bind: ^1.0.5 - define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.0.0 - checksum: 5f95c2a3a5f60a1a8c05fdd71455110bd3d5e6af0350a20b133d8cd70f9c3385d5c7fceb6a17b940c3c61752d9c202d10d5e2eb5ce73b89002656a87e7bf767a - languageName: node - linkType: hard - -"object.values@npm:^1.1.7": - version: 1.1.7 - resolution: "object.values@npm:1.1.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777 - languageName: node - linkType: hard - -"once@npm:^1.3.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 - languageName: node - linkType: hard - -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: ^4.0.0 - checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 - languageName: node - linkType: hard - -"onetime@npm:^7.0.0": - version: 7.0.0 - resolution: "onetime@npm:7.0.0" - dependencies: - mimic-function: ^5.0.0 - checksum: eb08d2da9339819e2f9d52cab9caf2557d80e9af8c7d1ae86e1a0fef027d00a88e9f5bd67494d350df360f7c559fbb44e800b32f310fb989c860214eacbb561c - languageName: node - linkType: hard - -"optionator@npm:^0.9.3": - version: 0.9.3 - resolution: "optionator@npm:0.9.3" - dependencies: - "@aashutoshrathi/word-wrap": ^1.2.3 - deep-is: ^0.1.3 - fast-levenshtein: ^2.0.6 - levn: ^0.4.1 - prelude-ls: ^1.2.1 - type-check: ^0.4.0 - checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a - languageName: node - linkType: hard - -"ora@npm:^5.4.1": - version: 5.4.1 - resolution: "ora@npm:5.4.1" - dependencies: - bl: ^4.1.0 - chalk: ^4.1.0 - cli-cursor: ^3.1.0 - cli-spinners: ^2.5.0 - is-interactive: ^1.0.0 - is-unicode-supported: ^0.1.0 - log-symbols: ^4.1.0 - strip-ansi: ^6.0.0 - wcwidth: ^1.0.1 - checksum: 28d476ee6c1049d68368c0dc922e7225e3b5600c3ede88fade8052837f9ed342625fdaa84a6209302587c8ddd9b664f71f0759833cbdb3a4cf81344057e63c63 - languageName: node - linkType: hard - -"p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: ^2.0.0 - checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 - languageName: node - linkType: hard - -"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - -"p-limit@npm:^4.0.0": - version: 4.0.0 - resolution: "p-limit@npm:4.0.0" - dependencies: - yocto-queue: ^1.0.0 - checksum: 01d9d70695187788f984226e16c903475ec6a947ee7b21948d6f597bed788e3112cc7ec2e171c1d37125057a5f45f3da21d8653e04a3a793589e12e9e80e756b - languageName: node - linkType: hard - -"p-limit@npm:^6.1.0": - version: 6.1.0 - resolution: "p-limit@npm:6.1.0" - dependencies: - yocto-queue: ^1.1.1 - checksum: 0c98d8fc1006b70fc7423232a47e8d026dc69279b06fe7ff8b4c0cc8023de2b6bb8991b609d93c3dec691a7a362ab0f0157df521d931a01fec192a5e404b9ee5 - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: ^2.2.0 - checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 - languageName: node - linkType: hard - -"p-locate@npm:^5.0.0": - version: 5.0.0 - resolution: "p-locate@npm:5.0.0" - dependencies: - p-limit: ^3.0.2 - checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 - languageName: node - linkType: hard - -"p-locate@npm:^6.0.0": - version: 6.0.0 - resolution: "p-locate@npm:6.0.0" - dependencies: - p-limit: ^4.0.0 - checksum: 2bfe5234efa5e7a4e74b30a5479a193fdd9236f8f6b4d2f3f69e3d286d9a7d7ab0c118a2a50142efcf4e41625def635bd9332d6cbf9cc65d85eb0718c579ab38 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - -"p-map@npm:^7.0.2": - version: 7.0.2 - resolution: "p-map@npm:7.0.2" - checksum: bc128c2b244ef5d4619392b2247d718a3fe471d5fa4a73834fd96182a237f460ec7e0ad0f95139ef7103a6b50ed164228c62e2f8e41ba2b15360fe1c20d13563 - languageName: node - linkType: hard - -"p-pipe@npm:^4.0.0": - version: 4.0.0 - resolution: "p-pipe@npm:4.0.0" - checksum: d2638c08e15e049e37835f3d999f0063ecd063ccac45a90925701c604f342ca376c8373ecf945e322f5112cc630644ef99ec55084e4eeb70c90cff9237b89296 - languageName: node - linkType: hard - -"p-queue@npm:^8.0.1": - version: 8.0.1 - resolution: "p-queue@npm:8.0.1" - dependencies: - eventemitter3: ^5.0.1 - p-timeout: ^6.1.2 - checksum: 84a27a5b1faf2dcc96b8c0e423c34b5984b241acc07353d3cc6d8d3d1dadefb250b4ec84ce278cb1c946466999c6bf2a36ff718a75810bad8e11c7ca47ce80f5 - languageName: node - linkType: hard - -"p-reduce@npm:^3.0.0": - version: 3.0.0 - resolution: "p-reduce@npm:3.0.0" - checksum: 387de355e906c07159d5e6270f3b58b7c7c7349ec7294ba0a9cff2a2e2faa8c602b841b079367685d3fa166a3ee529db7aaa73fadc936987c35e90f0ba64d955 - languageName: node - linkType: hard - -"p-timeout@npm:^6.1.2": - version: 6.1.2 - resolution: "p-timeout@npm:6.1.2" - checksum: 887b805eb72c217dbc3c55a60a7f3b89a46cab14f04af62224f253ec84716cbd0880758be13b35444a4fa12d64d37d4c8a300f0b12a57c004d289f0a574cfe91 - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae - languageName: node - linkType: hard - -"package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea - languageName: node - linkType: hard - -"pacote@npm:^18.0.0, pacote@npm:^18.0.6": - version: 18.0.6 - resolution: "pacote@npm:18.0.6" - dependencies: - "@npmcli/git": ^5.0.0 - "@npmcli/installed-package-contents": ^2.0.1 - "@npmcli/package-json": ^5.1.0 - "@npmcli/promise-spawn": ^7.0.0 - "@npmcli/run-script": ^8.0.0 - cacache: ^18.0.0 - fs-minipass: ^3.0.0 - minipass: ^7.0.2 - npm-package-arg: ^11.0.0 - npm-packlist: ^8.0.0 - npm-pick-manifest: ^9.0.0 - npm-registry-fetch: ^17.0.0 - proc-log: ^4.0.0 - promise-retry: ^2.0.1 - sigstore: ^2.2.0 - ssri: ^10.0.0 - tar: ^6.1.11 - bin: - pacote: bin/index.js - checksum: a28a7aa0f4e1375d3f11917e5982e576611aa9057999e7b3a7fd18706e43d6ae4ab34b1002dc0a9821df95c3136dec6d2b6b72cfc7b02afcc1273cec006dea39 - languageName: node - linkType: hard - -"pako@npm:^2.1.0": - version: 2.1.0 - resolution: "pako@npm:2.1.0" - checksum: 71666548644c9a4d056bcaba849ca6fd7242c6cf1af0646d3346f3079a1c7f4a66ffec6f7369ee0dc88f61926c10d6ab05da3e1fca44b83551839e89edd75a3e - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: ^3.0.0 - checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff - languageName: node - linkType: hard - -"parse-conflict-json@npm:^3.0.0": - version: 3.0.1 - resolution: "parse-conflict-json@npm:3.0.1" - dependencies: - json-parse-even-better-errors: ^3.0.0 - just-diff: ^6.0.0 - just-diff-apply: ^5.2.0 - checksum: d8d2656bc02d4df36846366baec36b419da2fe944e31298719a4d28d28f772aa7cad2a69d01f6f329918e7c298ac481d1e6a9138d62d5662d5620a74f794af8f - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 - languageName: node - linkType: hard - -"parse-json@npm:^7.0.0": - version: 7.1.1 - resolution: "parse-json@npm:7.1.1" - dependencies: - "@babel/code-frame": ^7.21.4 - error-ex: ^1.3.2 - json-parse-even-better-errors: ^3.0.0 - lines-and-columns: ^2.0.3 - type-fest: ^3.8.0 - checksum: 187275c7ac097dcfb3c7420bca2399caa4da33bcd5d5aac3604bda0e2b8eee4df61cc26aa0d79fab97f0d67bf42d41d332baa9f9f56ad27636ad785f1ae639e5 - languageName: node - linkType: hard - -"parse-json@npm:^8.0.0": - version: 8.1.0 - resolution: "parse-json@npm:8.1.0" - dependencies: - "@babel/code-frame": ^7.22.13 - index-to-position: ^0.1.2 - type-fest: ^4.7.1 - checksum: efc4256c91e835b1340e2b4f535272247f174fcba85eead15ff938be23b3ca2d521a04c76e564d1dc2f61c0c9ebcb6157d5433d459c7e736c81d014b49577b31 - languageName: node - linkType: hard - -"parse-ms@npm:^2.1.0": - version: 2.1.0 - resolution: "parse-ms@npm:2.1.0" - checksum: d5c66c76cca8df5bd0574e2d11b9c3752893b59b466e74308d4a2f09760dc5436a1633f549cad300fc8c3c19154d14959a3b8333d3b2f7bd75898fe18149d564 - languageName: node - linkType: hard - -"parse-path@npm:^7.0.0": - version: 7.0.0 - resolution: "parse-path@npm:7.0.0" - dependencies: - protocols: ^2.0.0 - checksum: 244b46523a58181d251dda9b888efde35d8afb957436598d948852f416d8c76ddb4f2010f9fc94218b4be3e5c0f716aa0d2026194a781e3b8981924142009302 - languageName: node - linkType: hard - -"parse-url@npm:^8.1.0": - version: 8.1.0 - resolution: "parse-url@npm:8.1.0" - dependencies: - parse-path: ^7.0.0 - checksum: b93e21ab4c93c7d7317df23507b41be7697694d4c94f49ed5c8d6288b01cba328fcef5ba388e147948eac20453dee0df9a67ab2012415189fff85973bdffe8d9 - languageName: node - linkType: hard - -"parse5@npm:^7.0.0, parse5@npm:^7.1.1": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 - languageName: node - linkType: hard - -"path-exists@npm:^5.0.0": - version: 5.0.0 - resolution: "path-exists@npm:5.0.0" - checksum: 8ca842868cab09423994596eb2c5ec2a971c17d1a3cb36dbf060592c730c725cd524b9067d7d2a1e031fef9ba7bd2ac6dc5ec9fb92aa693265f7be3987045254 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 - languageName: node - linkType: hard - -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"path-scurry@npm:^1.10.1": - version: 1.10.1 - resolution: "path-scurry@npm:1.10.1" - dependencies: - lru-cache: ^9.1.1 || ^10.0.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 - languageName: node - linkType: hard - -"path-scurry@npm:^1.11.1": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: ^10.2.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 - languageName: node - linkType: hard - -"path-scurry@npm:^2.0.0": - version: 2.0.0 - resolution: "path-scurry@npm:2.0.0" - dependencies: - lru-cache: ^11.0.0 - minipass: ^7.1.2 - checksum: 9953ce3857f7e0796b187a7066eede63864b7e1dfc14bf0484249801a5ab9afb90d9a58fc533ebb1b552d23767df8aa6a2c6c62caf3f8a65f6ce336a97bbb484 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.1": - version: 1.0.1 - resolution: "picocolors@npm:1.0.1" - checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf - languageName: node - linkType: hard - -"pidtree@npm:~0.6.0": - version: 0.6.0 - resolution: "pidtree@npm:0.6.0" - bin: - pidtree: bin/pidtree.js - checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a - languageName: node - linkType: hard - -"pify@npm:^6.1.0": - version: 6.1.0 - resolution: "pify@npm:6.1.0" - checksum: cb21ee8794e9e14955669fbc06b964d0dd3d4e6fa3c2ea3cf22f6794de61ec1ea5c1fac02dadfd4aa16c9cf589f6733406e826e64366f70e09f5e95917a0b8ac - languageName: node - linkType: hard - -"pirates@npm:^4.0.4": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 - languageName: node - linkType: hard - -"pkg-dir@npm:^4.2.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: ^4.0.0 - checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 - languageName: node - linkType: hard - -"pluralize@npm:^8.0.0": - version: 8.0.0 - resolution: "pluralize@npm:8.0.0" - checksum: 08931d4a6a4a5561a7f94f67a31c17e6632cb21e459ab3ff4f6f629d9a822984cf8afef2311d2005fbea5d7ef26016ebb090db008e2d8bce39d0a9a9d218736e - languageName: node - linkType: hard - -"point-in-svg-path@npm:^1.0.1": - version: 1.0.2 - resolution: "point-in-svg-path@npm:1.0.2" - checksum: 0145eeb8c513fd4087ae569c6c7a4be5382854a251726d32e49cf0f08ff2663178f018ccc77c05609dd8fa73c087066ce8d6ab77b97350316e7b2e6a59174e12 - languageName: node - linkType: hard - -"polished@npm:^4.2.2": - version: 4.3.1 - resolution: "polished@npm:4.3.1" - dependencies: - "@babel/runtime": ^7.17.8 - checksum: a6f863c23f1d2f3f5cda3427b5885c9fb9e83b036d681e24820b143c7df40d2685bebb01c0939767120a28e1183671ae17c93db82ac30b3c20942180bb153bc7 - languageName: node - linkType: hard - -"popper.js@npm:^1.16.1": - version: 1.16.1 - resolution: "popper.js@npm:1.16.1" - checksum: c56ae5001ec50a77ee297a8061a0221d99d25c7348d2e6bcd3e45a0d0f32a1fd81bca29d46cb0d4bdf13efb77685bd6a0ce93f9eb3c608311a461f945fffedbe - languageName: node - linkType: hard - -"postcss-media-query-parser@npm:^0.2.3": - version: 0.2.3 - resolution: "postcss-media-query-parser@npm:0.2.3" - checksum: 8000d4d95b912994928ff86137f5ab0ed4c4ee1498af2336e93d708ae8827a690cd7acbaed55d14684cf44d82c8d44b031c1c69ae6bcd2f9620ea67573888090 - languageName: node - linkType: hard - -"postcss-resolve-nested-selector@npm:^0.1.1": - version: 0.1.1 - resolution: "postcss-resolve-nested-selector@npm:0.1.1" - checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 - languageName: node - linkType: hard - -"postcss-resolve-nested-selector@npm:^0.1.6": - version: 0.1.6 - resolution: "postcss-resolve-nested-selector@npm:0.1.6" - checksum: 85453901afe2a4db497b4e0d2c9cf2a097a08fa5d45bc646547025176217050334e423475519a1e6c74a1f31ade819d16bb37a39914e5321e250695ee3feea14 - languageName: node - linkType: hard - -"postcss-safe-parser@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-safe-parser@npm:7.0.0" - peerDependencies: - postcss: ^8.4.31 - checksum: dba4d782393e6f07339c24bdb8b41166e483d5e7b8f34174c35c64065aef36aadef94b53e0501d7a630d42f51bbd824671e8fb1c2b417333b08b71c9b0066c76 - languageName: node - linkType: hard - -"postcss-scss@npm:^4.0.9": - version: 4.0.9 - resolution: "postcss-scss@npm:4.0.9" - peerDependencies: - postcss: ^8.4.29 - checksum: dc358bafc23d52ed3a9a29333808825deba213042be74ece6eae7a61c692f67d0e6691fa7005367b013c01c79562fbb9ef2fe4c0485075233931bd90715f5132 - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.0.10": - version: 6.1.0 - resolution: "postcss-selector-parser@npm:6.1.0" - dependencies: - cssesc: ^3.0.0 - util-deprecate: ^1.0.2 - checksum: 449f614e6706421be307d8638183c61ba45bc3b460fe3815df8971dbb4d59c4087181940d879daee4a7a2daf3d86e915db1cce0c006dd68ca75b4087079273bd - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.0.15": - version: 6.0.15 - resolution: "postcss-selector-parser@npm:6.0.15" - dependencies: - cssesc: ^3.0.0 - util-deprecate: ^1.0.2 - checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 - languageName: node - linkType: hard - -"postcss-selector-parser@npm:^6.1.2": - version: 6.1.2 - resolution: "postcss-selector-parser@npm:6.1.2" - dependencies: - cssesc: ^3.0.0 - util-deprecate: ^1.0.2 - checksum: ce9440fc42a5419d103f4c7c1847cb75488f3ac9cbe81093b408ee9701193a509f664b4d10a2b4d82c694ee7495e022f8f482d254f92b7ffd9ed9dea696c6f84 - languageName: node - linkType: hard - -"postcss-value-parser@npm:^4.2.0": - version: 4.2.0 - resolution: "postcss-value-parser@npm:4.2.0" - checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f - languageName: node - linkType: hard - -"postcss-values-parser@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-values-parser@npm:6.0.2" - dependencies: - color-name: ^1.1.4 - is-url-superb: ^4.0.0 - quote-unquote: ^1.0.0 - peerDependencies: - postcss: ^8.2.9 - checksum: 615fea3d7996b3fae84a8674fb0e7c6bd0bc006beddb126692c2e43112b772625329c5f10121b00d69fe7a24f7f18dd25e24745574556735c4e9671774df0eb1 - languageName: node - linkType: hard - -"postcss@npm:^8.4.40": - version: 8.4.40 - resolution: "postcss@npm:8.4.40" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.1 - source-map-js: ^1.2.0 - checksum: afd0cc49d2169dcd96c0f17e155c5d75de048956306a3017f1cfa6a7d66b941592245bed20f7796ceeccb2d8967749b623be2c7b010a74f67ea10fb5bdb8ba28 - languageName: node - linkType: hard - -"postcss@npm:^8.4.41": - version: 8.4.41 - resolution: "postcss@npm:8.4.41" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.1 - source-map-js: ^1.2.0 - checksum: f865894929eb0f7fc2263811cc853c13b1c75103028b3f4f26df777e27b201f1abe21cb4aa4c2e901c80a04f6fb325ee22979688fe55a70e2ea82b0a517d3b6f - languageName: node - linkType: hard - -"precinct@npm:^12.0.2": - version: 12.1.2 - resolution: "precinct@npm:12.1.2" - dependencies: - "@dependents/detective-less": ^5.0.0 - commander: ^12.1.0 - detective-amd: ^6.0.0 - detective-cjs: ^6.0.0 - detective-es6: ^5.0.0 - detective-postcss: ^7.0.0 - detective-sass: ^6.0.0 - detective-scss: ^5.0.0 - detective-stylus: ^5.0.0 - detective-typescript: ^13.0.0 - detective-vue2: ^2.0.3 - module-definition: ^6.0.0 - node-source-walk: ^7.0.0 - postcss: ^8.4.40 - typescript: ^5.5.4 - bin: - precinct: bin/cli.js - checksum: 0827820f365cda38e51b830ea1d5be3edfe6d3aa1e73edc71bcaddce8839e4fc33bb3c0282aa063b94f237d785a96ac1cc5e175b0559102e35509fe01b9cea28 - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a - languageName: node - linkType: hard - -"prettier-linter-helpers@npm:^1.0.0": - version: 1.0.0 - resolution: "prettier-linter-helpers@npm:1.0.0" - dependencies: - fast-diff: ^1.1.2 - checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 - languageName: node - linkType: hard - -"prettier@npm:^3.2.5": - version: 3.3.3 - resolution: "prettier@npm:3.3.3" - bin: - prettier: bin/prettier.cjs - checksum: bc8604354805acfdde6106852d14b045bb20827ad76a5ffc2455b71a8257f94de93f17f14e463fe844808d2ccc87248364a5691488a3304f1031326e62d9276e - languageName: node - linkType: hard - -"pretty-format@npm:^27.0.2": - version: 27.5.1 - resolution: "pretty-format@npm:27.5.1" - dependencies: - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^17.0.1 - checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 - languageName: node - linkType: hard - -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": - version: 29.7.0 - resolution: "pretty-format@npm:29.7.0" - dependencies: - "@jest/schemas": ^29.6.3 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 - languageName: node - linkType: hard - -"pretty-ms@npm:^7.0.1": - version: 7.0.1 - resolution: "pretty-ms@npm:7.0.1" - dependencies: - parse-ms: ^2.1.0 - checksum: d76c4920283b48be91f1d3797a2ce4bd51187d58d2a609ae993c028f73c92d16439449d857af57ccad91ae3a38b30c87307f5589749a056102ebb494c686957e - languageName: node - linkType: hard - -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 - languageName: node - linkType: hard - -"proc-log@npm:^4.0.0": - version: 4.1.0 - resolution: "proc-log@npm:4.1.0" - checksum: 7f32d169970ce432f348f5350bc1a0069a89d37dfd43878f3f093894a11ba0afd3e3e28a300368a93b449825ca4b08eeb1e0853958224673cb4a394e04aaeadc - languageName: node - linkType: hard - -"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": - version: 4.2.0 - resolution: "proc-log@npm:4.2.0" - checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc - languageName: node - linkType: hard - -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 - languageName: node - linkType: hard - -"proggy@npm:^2.0.0": - version: 2.0.0 - resolution: "proggy@npm:2.0.0" - checksum: 398f38c5e53d8f3dd8e1f67140dd1044dfde0a8e43edb2df55f7f38b958912841c78a970e61f2ee7222be4f3f1ee0da134e21d0eb537805cb1b10516555c7ac1 - languageName: node - linkType: hard - -"promise-all-reject-late@npm:^1.0.0": - version: 1.0.1 - resolution: "promise-all-reject-late@npm:1.0.1" - checksum: d7d61ac412352e2c8c3463caa5b1c3ca0f0cc3db15a09f180a3da1446e33d544c4261fc716f772b95e4c27d559cfd2388540f44104feb356584f9c73cfb9ffcb - languageName: node - linkType: hard - -"promise-call-limit@npm:^3.0.1": - version: 3.0.1 - resolution: "promise-call-limit@npm:3.0.1" - checksum: f1b3c4d3a9c5482ce27ec5f40311e1389adb9bb10c16166e61c96d29ab22c701691d5225bf6745a162858f45dfb46cc82275fd09e7aa57846fc446c7855c2f06 - languageName: node - linkType: hard - -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 - languageName: node - linkType: hard - -"prompts@npm:^2.0.1": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: ^3.0.3 - sisteransi: ^1.0.5 - checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d - languageName: node - linkType: hard - -"prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": - version: 15.8.1 - resolution: "prop-types@npm:15.8.1" - dependencies: - loose-envify: ^1.4.0 - object-assign: ^4.1.1 - react-is: ^16.13.1 - checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 - languageName: node - linkType: hard - -"proto-list@npm:~1.2.1": - version: 1.2.4 - resolution: "proto-list@npm:1.2.4" - checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 - languageName: node - linkType: hard - -"protocols@npm:^2.0.0, protocols@npm:^2.0.1": - version: 2.0.1 - resolution: "protocols@npm:2.0.1" - checksum: 4a9bef6aa0449a0245ded319ac3cbfd032c3e76ebb562777037a3a832c99253d0e8bc2847f7be350236df620a11f7d4fe683ea7f59a2cc14c69f746b6259eda4 - languageName: node - linkType: hard - -"psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d - languageName: node - linkType: hard - -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 - languageName: node - linkType: hard - -"pure-rand@npm:^6.0.0": - version: 6.0.4 - resolution: "pure-rand@npm:6.0.4" - checksum: e1c4e69f8bf7303e5252756d67c3c7551385cd34d94a1f511fe099727ccbab74c898c03a06d4c4a24a89b51858781057b83ebbfe740d984240cdc04fead36068 - languageName: node - linkType: hard - -"qs@npm:^6.11.1": - version: 6.11.2 - resolution: "qs@npm:6.11.2" - dependencies: - side-channel: ^1.0.4 - checksum: e812f3c590b2262548647d62f1637b6989cc56656dc960b893fe2098d96e1bd633f36576f4cd7564dfbff9db42e17775884db96d846bebe4f37420d073ecdc0b - languageName: node - linkType: hard - -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 - languageName: node - linkType: hard - -"quote-unquote@npm:^1.0.0": - version: 1.0.0 - resolution: "quote-unquote@npm:1.0.0" - checksum: 955a2ead534f5b6a3f8d4dc5a4b95ac6468213d3fb11f8c1592a0a56345c45a3d14d5ca04d3de2bc9891493fcac38c03dfa91c48a6159aef50124e9c5afcea49 - languageName: node - linkType: hard - -"rc@npm:^1.2.8": - version: 1.2.8 - resolution: "rc@npm:1.2.8" - dependencies: - deep-extend: ^0.6.0 - ini: ~1.3.0 - minimist: ^1.2.0 - strip-json-comments: ~2.0.1 - bin: - rc: ./cli.js - checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e - languageName: node - linkType: hard - -"react-colorful@npm:^5.6.1": - version: 5.6.1 - resolution: "react-colorful@npm:5.6.1" - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: e432b7cb0df57e8f0bcdc3b012d2e93fcbcb6092c9e0f85654788d5ebfc4442536d8cc35b2418061ba3c4afb8b7788cc101c606d86a1732407921de7a9244c8d - languageName: node - linkType: hard - -"react-dnd-html5-backend@npm:^16.0.1": - version: 16.0.1 - resolution: "react-dnd-html5-backend@npm:16.0.1" - dependencies: - dnd-core: ^16.0.1 - checksum: e2368bf85d5632a5cd867b743feb54c9052d909ea5331608860fa455edf3c633ac791f5b338e3db29b19ea8670c0ba5fb43c9c1c2510760bea030811d726cdfa - languageName: node - linkType: hard - -"react-dnd-touch-backend@npm:^16.0.1": - version: 16.0.1 - resolution: "react-dnd-touch-backend@npm:16.0.1" - dependencies: - "@react-dnd/invariant": ^4.0.1 - dnd-core: ^16.0.1 - checksum: 5362c5f4266e3655d02c716f341dc55c61fae53e12eb3b239245bafb7a3f3cdb953e27e187e8dcb9d86c01bc738853d764d7c85b87104a49a8a8f1ecc4d35755 - languageName: node - linkType: hard - -"react-dnd@npm:^16.0.1": - version: 16.0.1 - resolution: "react-dnd@npm:16.0.1" - dependencies: - "@react-dnd/invariant": ^4.0.1 - "@react-dnd/shallowequal": ^4.0.1 - dnd-core: ^16.0.1 - fast-deep-equal: ^3.1.3 - hoist-non-react-statics: ^3.3.2 - peerDependencies: - "@types/hoist-non-react-statics": ">= 3.3.1" - "@types/node": ">= 12" - "@types/react": ">= 16" - react: ">= 16.14" - peerDependenciesMeta: - "@types/hoist-non-react-statics": - optional: true - "@types/node": - optional: true - "@types/react": - optional: true - checksum: e8da2186aaafcd5bb41c090a995c963a7c3c73c20991667a2cfc0c800d7f7f73913414b2e61c437cdb6221bb2151bd5174088b8b42c17056a896fc4d1da5729f - languageName: node - linkType: hard - -"react-dom@npm:^18.2.0": - version: 18.3.1 - resolution: "react-dom@npm:18.3.1" - dependencies: - loose-envify: ^1.1.0 - scheduler: ^0.23.2 - peerDependencies: - react: ^18.3.1 - checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 - languageName: node - linkType: hard - -"react-dropzone@npm:14.2.3, react-dropzone@npm:^14.2.3": - version: 14.2.3 - resolution: "react-dropzone@npm:14.2.3" - dependencies: - attr-accept: ^2.2.2 - file-selector: ^0.6.0 - prop-types: ^15.8.1 - peerDependencies: - react: ">= 16.8 || 18.0.0" - checksum: 174b744d5ca898cf3d84ec1aeb6cef5211c446697e45dc8ece8287a03d291f8d07253206d5a1247ef156fd385d65e7de666d4d5c2986020b8543b8f2434e8b40 - languageName: node - linkType: hard - -"react-is@npm:^16.13.1, react-is@npm:^16.7.0": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f - languageName: node - linkType: hard - -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 - languageName: node - linkType: hard - -"react-is@npm:^18.0.0": - version: 18.2.0 - resolution: "react-is@npm:18.2.0" - checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e - languageName: node - linkType: hard - -"react-lifecycles-compat@npm:^3.0.4": - version: 3.0.4 - resolution: "react-lifecycles-compat@npm:3.0.4" - checksum: a904b0fc0a8eeb15a148c9feb7bc17cec7ef96e71188280061fc340043fd6d8ee3ff233381f0e8f95c1cf926210b2c4a31f38182c8f35ac55057e453d6df204f - languageName: node - linkType: hard - -"react-measure@npm:^2.3.0": - version: 2.5.2 - resolution: "react-measure@npm:2.5.2" - dependencies: - "@babel/runtime": ^7.2.0 - get-node-dimensions: ^1.2.1 - prop-types: ^15.6.2 - resize-observer-polyfill: ^1.5.0 - peerDependencies: - react: ">0.13.0" - react-dom: ">0.13.0" - checksum: 75bd3cd74d96f3e83f0a42b8f59e8764e6a5eec994492e077c49a4fea0d0b27775a5154502aff2eee3f6af40650ce2e58ed18ac927a64013b14c9942cc9c4872 - languageName: node - linkType: hard - -"react-refresh@npm:^0.14.2": - version: 0.14.2 - resolution: "react-refresh@npm:0.14.2" - checksum: d80db4bd40a36dab79010dc8aa317a5b931f960c0d83c4f3b81f0552cbcf7f29e115b84bb7908ec6a1eb67720fff7023084eff73ece8a7ddc694882478464382 - languageName: node - linkType: hard - -"react-select@npm:^5.7.0": - version: 5.8.0 - resolution: "react-select@npm:5.8.0" - dependencies: - "@babel/runtime": ^7.12.0 - "@emotion/cache": ^11.4.0 - "@emotion/react": ^11.8.1 - "@floating-ui/dom": ^1.0.1 - "@types/react-transition-group": ^4.4.0 - memoize-one: ^6.0.0 - prop-types: ^15.6.0 - react-transition-group: ^4.3.0 - use-isomorphic-layout-effect: ^1.1.2 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c8398cc0aefb5ee5438b6176c86676e2d3fed7457c16b0769f423a0da0ae431a7df25c2cadf13b709700882b8ebd80a58b1e557fec3e22ad3cbf60164ca9e745 - languageName: node - linkType: hard - -"react-transition-group@npm:^4.3.0": - version: 4.4.5 - resolution: "react-transition-group@npm:4.4.5" - dependencies: - "@babel/runtime": ^7.5.5 - dom-helpers: ^5.0.1 - loose-envify: ^1.4.0 - prop-types: ^15.6.2 - peerDependencies: - react: ">=16.6.0" - react-dom: ">=16.6.0" - checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 - languageName: node - linkType: hard - -"react-use-gesture@npm:^9.1.3": - version: 9.1.3 - resolution: "react-use-gesture@npm:9.1.3" - peerDependencies: - react: ">= 16.8.0" - checksum: 4436b9c4e6634c74884b6d8c8b22b57e280a3ec5b2167467f4405c56e7ca9a188771d0c043d17eb62d5d9d6e15c16ae2b7a370a187391ef1d1740361b8882b43 - languageName: node - linkType: hard - -"react@npm:^18.2.0": - version: 18.3.1 - resolution: "react@npm:18.3.1" - dependencies: - loose-envify: ^1.1.0 - checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 - languageName: node - linkType: hard - -"read-cmd-shim@npm:^4.0.0": - version: 4.0.0 - resolution: "read-cmd-shim@npm:4.0.0" - checksum: 2fb5a8a38984088476f559b17c6a73324a5db4e77e210ae0aab6270480fd85c355fc990d1c79102e25e555a8201606ed12844d6e3cd9f35d6a1518791184e05b - languageName: node - linkType: hard - -"read-package-json-fast@npm:^3.0.0, read-package-json-fast@npm:^3.0.2": - version: 3.0.2 - resolution: "read-package-json-fast@npm:3.0.2" - dependencies: - json-parse-even-better-errors: ^3.0.0 - npm-normalize-package-bin: ^3.0.0 - checksum: 8d406869f045f1d76e2a99865a8fd1c1af9c1dc06200b94d2b07eef87ed734b22703a8d72e1cd36ea36cc48e22020bdd187f88243c7dd0563f72114d38c17072 - languageName: node - linkType: hard - -"read-pkg-up@npm:^10.0.0": - version: 10.1.0 - resolution: "read-pkg-up@npm:10.1.0" - dependencies: - find-up: ^6.3.0 - read-pkg: ^8.1.0 - type-fest: ^4.2.0 - checksum: 554470d7ff54026b561f6c851c35470f5bc95a47bfb8645dc13c447d83c42c78b42d47fffdc8f86bffe731215406dab498f75cb27494e1fb3eca7fa8d00fb501 - languageName: node - linkType: hard - -"read-pkg@npm:^8.0.0, read-pkg@npm:^8.1.0": - version: 8.1.0 - resolution: "read-pkg@npm:8.1.0" - dependencies: - "@types/normalize-package-data": ^2.4.1 - normalize-package-data: ^6.0.0 - parse-json: ^7.0.0 - type-fest: ^4.2.0 - checksum: f4cd164f096e78cf3e338a55f800043524e3055f9b0b826143290002fafc951025fc3cbd6ca683ebaf7945efcfb092d31c683dd252a7871a974662985c723b67 - languageName: node - linkType: hard - -"read-pkg@npm:^9.0.1": - version: 9.0.1 - resolution: "read-pkg@npm:9.0.1" - dependencies: - "@types/normalize-package-data": ^2.4.3 - normalize-package-data: ^6.0.0 - parse-json: ^8.0.0 - type-fest: ^4.6.0 - unicorn-magic: ^0.1.0 - checksum: 5544bea2a58c6e5706db49a96137e8f0768c69395f25363f934064fbba00bdcdaa326fcd2f4281741df38cf81dbf27b76138240dc6de0ed718cf650475e0de3c - languageName: node - linkType: hard - -"readable-stream@npm:^3.4.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: ^2.2.1 - checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 - languageName: node - linkType: hard - -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" - dependencies: - indent-string: ^4.0.0 - strip-indent: ^3.0.0 - checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b - languageName: node - linkType: hard - -"redux@npm:^4.2.0": - version: 4.2.1 - resolution: "redux@npm:4.2.1" - dependencies: - "@babel/runtime": ^7.9.2 - checksum: f63b9060c3a1d930ae775252bb6e579b42415aee7a23c4114e21a0b4ba7ec12f0ec76936c00f546893f06e139819f0e2855e0d55ebfce34ca9c026241a6950dd - languageName: node - linkType: hard - -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.1 - resolution: "regenerate-unicode-properties@npm:10.1.1" - dependencies: - regenerate: ^1.4.2 - checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf - languageName: node - linkType: hard - -"regenerate@npm:^1.4.2": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 - languageName: node - linkType: hard - -"regexp-to-ast@npm:0.5.0": - version: 0.5.0 - resolution: "regexp-to-ast@npm:0.5.0" - checksum: 72e32f2a1217bb22398ac30867ddd43e16943b6b569dd4eb472de47494c7a39e34f47ee3e92ad4cbf92308f98997da366fe094a0e58eb6b93eab0ee956fff86d - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" - dependencies: - call-bind: ^1.0.6 - define-properties: ^1.2.1 - es-errors: ^1.3.0 - set-function-name: ^2.0.1 - checksum: d7f333667d5c564e2d7a97c56c3075d64c722c9bb51b2b4df6822b2e8096d623a5e63088fb4c83df919b6951ef8113841de8b47de7224872fa6838bc5d8a7d64 - languageName: node - linkType: hard - -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" - dependencies: - "@babel/regjsgen": ^0.8.0 - regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.1.0 - regjsparser: ^0.9.1 - unicode-match-property-ecmascript: ^2.0.0 - unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 - languageName: node - linkType: hard - -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" - dependencies: - jsesc: ~0.5.0 - bin: - regjsparser: bin/parser - checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 - languageName: node - linkType: hard - -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b - languageName: node - linkType: hard - -"requirejs-config-file@npm:^4.0.0": - version: 4.0.0 - resolution: "requirejs-config-file@npm:4.0.0" - dependencies: - esprima: ^4.0.0 - stringify-object: ^3.2.1 - checksum: 61ac1c419a8978df9484211827047f0a43d48a97e242ebca9628a2e52da8c739ee068bd67dc4d5dc5fd7be6d1c9a863006bb02df691c86914921fe12713fbebb - languageName: node - linkType: hard - -"requirejs@npm:^2.3.7": - version: 2.3.7 - resolution: "requirejs@npm:2.3.7" - bin: - r.js: bin/r.js - r_js: bin/r.js - checksum: c23ead11f43321d85e3d2415705c94b6cbc1b5d30e831473d002294a2af5b6a08c308bcb25938ee51e8915cc5894e47130b9ebc3c538d4cd2a7cc01de3cbcc36 - languageName: node - linkType: hard - -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff - languageName: node - linkType: hard - -"resize-observer-polyfill@npm:^1.5.0": - version: 1.5.1 - resolution: "resize-observer-polyfill@npm:1.5.1" - checksum: 57e7f79489867b00ba43c9c051524a5c8f162a61d5547e99333549afc23e15c44fd43f2f318ea0261ea98c0eb3158cca261e6f48d66e1ed1cd1f340a43977094 - languageName: node - linkType: hard - -"resolve-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-cwd@npm:3.0.0" - dependencies: - resolve-from: ^5.0.0 - checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 - languageName: node - linkType: hard - -"resolve-dependency-path@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-dependency-path@npm:4.0.0" - checksum: b582be091605f767e2abbf1965efb782aa8ccec8a329b065351c39890ca0f278fa1bde2bd959641b6bb06dfc6bfe76515f01e7e9996dd5d9ac491ad14861b1c7 - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f - languageName: node - linkType: hard - -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - -"resolve.exports@npm:^2.0.0": - version: 2.0.2 - resolution: "resolve.exports@npm:2.0.2" - checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 - languageName: node - linkType: hard - -"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4, resolve@npm:^1.22.8": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.22.8#~builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - -"restore-cursor@npm:^5.0.0": - version: 5.1.0 - resolution: "restore-cursor@npm:5.1.0" - dependencies: - onetime: ^7.0.0 - signal-exit: ^4.1.0 - checksum: 838dd54e458d89cfbc1a923b343c1b0f170a04100b4ce1733e97531842d7b440463967e521216e8ab6c6f8e89df877acc7b7f4c18ec76e99fb9bf5a60d358d2c - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc - languageName: node - linkType: hard - -"rfdc@npm:^1.4.1": - version: 1.4.1 - resolution: "rfdc@npm:1.4.1" - checksum: 3b05bd55062c1d78aaabfcea43840cdf7e12099968f368e9a4c3936beb744adb41cbdb315eac6d4d8c6623005d6f87fdf16d8a10e1ff3722e84afea7281c8d13 - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: ^7.1.3 - bin: - rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 - languageName: node - linkType: hard - -"rimraf@npm:^6.0.0": - version: 6.0.1 - resolution: "rimraf@npm:6.0.1" - dependencies: - glob: ^11.0.0 - package-json-from-dist: ^1.0.0 - bin: - rimraf: dist/esm/bin.mjs - checksum: 8ba5b84131c1344e9417cb7e8c05d8368bb73cbe5dd4c1d5eb49fc0b558209781658d18c450460e30607d0b7865bb067482839a2f343b186b07ae87715837e66 - languageName: node - linkType: hard - -"robust-predicates@npm:^3.0.2": - version: 3.0.2 - resolution: "robust-predicates@npm:3.0.2" - checksum: 36854c1321548ceca96d36ad9d6e0a5a512986029ec6929ad6ed3ec1612c22cc8b46cc72d2c5674af42e8074a119d793f6f0ea3a5b51373e3ab926c64b172d7a - languageName: node - linkType: hard - -"rollup@npm:^4.13.0": - version: 4.13.0 - resolution: "rollup@npm:4.13.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.13.0 - "@rollup/rollup-android-arm64": 4.13.0 - "@rollup/rollup-darwin-arm64": 4.13.0 - "@rollup/rollup-darwin-x64": 4.13.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.13.0 - "@rollup/rollup-linux-arm64-gnu": 4.13.0 - "@rollup/rollup-linux-arm64-musl": 4.13.0 - "@rollup/rollup-linux-riscv64-gnu": 4.13.0 - "@rollup/rollup-linux-x64-gnu": 4.13.0 - "@rollup/rollup-linux-x64-musl": 4.13.0 - "@rollup/rollup-win32-arm64-msvc": 4.13.0 - "@rollup/rollup-win32-ia32-msvc": 4.13.0 - "@rollup/rollup-win32-x64-msvc": 4.13.0 - "@types/estree": 1.0.5 - fsevents: ~2.3.2 - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: c2c35bee0a71ceb0df37c170c2b73a500bf9ebdffb747487d77831348603d50dcfcdd9d0a937362d3a87edda559c9d1e017fba2d75f05f0c594634d9b8dde9a4 - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: ^1.2.2 - checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - -"rw@npm:1": - version: 1.3.3 - resolution: "rw@npm:1.3.3" - checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 - languageName: node - linkType: hard - -"safe-array-concat@npm:^1.1.0": - version: 1.1.0 - resolution: "safe-array-concat@npm:1.1.0" - dependencies: - call-bind: ^1.0.5 - get-intrinsic: ^1.2.2 - has-symbols: ^1.0.3 - isarray: ^2.0.5 - checksum: 5c71eaa999168ee7474929f1cd3aae80f486353a651a094d9968936692cf90aa065224929a6486dcda66334a27dce4250a83612f9e0fef6dced1a925d3ac7296 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" - dependencies: - call-bind: ^1.0.6 - es-errors: ^1.3.0 - is-regex: ^1.1.4 - checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 - languageName: node - linkType: hard - -"sass-lookup@npm:^6.0.1": - version: 6.0.1 - resolution: "sass-lookup@npm:6.0.1" - dependencies: - commander: ^12.0.0 - bin: - sass-lookup: bin/cli.js - checksum: e377b52321802df772e15e33f1ce8282b8a9f1c1ebec5bdfe943366f8fcaaafc5d9439ad750691349f86d3d0dc0e86350142b610a2a9be67bd667b36b954a5d9 - languageName: node - linkType: hard - -"sass@npm:^1.70.0": - version: 1.77.8 - resolution: "sass@npm:1.77.8" - dependencies: - chokidar: ">=3.0.0 <4.0.0" - immutable: ^4.0.0 - source-map-js: ">=0.6.2 <2.0.0" - bin: - sass: sass.js - checksum: 6b5dce17faa1bd1e349b4825bf7f76559a32f3f95d789cd2847623c88ee9635e1485d3458532a05fa5b9134cfbce79a4bad3f13dc63c2433632347674db0abae - languageName: node - linkType: hard - -"saxes@npm:^6.0.0": - version: 6.0.0 - resolution: "saxes@npm:6.0.0" - dependencies: - xmlchars: ^2.2.0 - checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b - languageName: node - linkType: hard - -"scheduler@npm:^0.23.2": - version: 0.23.2 - resolution: "scheduler@npm:0.23.2" - dependencies: - loose-envify: ^1.1.0 - checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 - languageName: node - linkType: hard - -"semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 - languageName: node - linkType: hard - -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c - languageName: node - linkType: hard - -"semver@npm:^7.6.3": - version: 7.6.3 - resolution: "semver@npm:7.6.3" - bin: - semver: bin/semver.js - checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 - languageName: node - linkType: hard - -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 - languageName: node - linkType: hard - -"set-function-length@npm:^1.2.1": - version: 1.2.1 - resolution: "set-function-length@npm:1.2.1" - dependencies: - define-data-property: ^1.1.2 - es-errors: ^1.3.0 - function-bind: ^1.1.2 - get-intrinsic: ^1.2.3 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.1 - checksum: 23742476d695f2eae86348c069bd164d4f25fa7c26546a46a2b5f370f1f84b98ec64366d2cd17785d5b41bbf16b95855da4b7eb188e7056fe3b0248d61f6afda - languageName: node - linkType: hard - -"set-function-name@npm:^2.0.1": - version: 2.0.1 - resolution: "set-function-name@npm:2.0.1" - dependencies: - define-data-property: ^1.0.1 - functions-have-names: ^1.2.3 - has-property-descriptors: ^1.0.0 - checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 - languageName: node - linkType: hard - -"shallow-clone@npm:^3.0.0": - version: 3.0.1 - resolution: "shallow-clone@npm:3.0.1" - dependencies: - kind-of: ^6.0.2 - checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7 - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4": - version: 1.0.5 - resolution: "side-channel@npm:1.0.5" - dependencies: - call-bind: ^1.0.6 - es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - object-inspect: ^1.13.1 - checksum: 640446b4e5a9554116ed6f5bec17c6740fa8da2c1a19e4d69c1202191185d4cc24f21ba0dd3ccca140eb6a8ee978d0b5bc5132f09b7962db7f9c4bc7872494ac - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 - languageName: node - linkType: hard - -"sigstore@npm:^2.2.0": - version: 2.2.2 - resolution: "sigstore@npm:2.2.2" - dependencies: - "@sigstore/bundle": ^2.2.0 - "@sigstore/core": ^1.0.0 - "@sigstore/protobuf-specs": ^0.3.0 - "@sigstore/sign": ^2.2.3 - "@sigstore/tuf": ^2.3.1 - "@sigstore/verify": ^1.1.0 - checksum: 7bb2bd0a971246bbd1d1cfb749404a4a1700dfdd4ea288e922b167af3643d2f2e0e5c25b6b1701701c66f086a8138097c7572a59e288a0b0e4e4e28e5df4f16c - languageName: node - linkType: hard - -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - -"slash@npm:^5.1.0": - version: 5.1.0 - resolution: "slash@npm:5.1.0" - checksum: 70434b34c50eb21b741d37d455110258c42d2cf18c01e6518aeb7299f3c6e626330c889c0c552b5ca2ef54a8f5a74213ab48895f0640717cacefeef6830a1ba4 - languageName: node - linkType: hard - -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 - languageName: node - linkType: hard - -"slice-ansi@npm:^5.0.0": - version: 5.0.0 - resolution: "slice-ansi@npm:5.0.0" - dependencies: - ansi-styles: ^6.0.0 - is-fullwidth-code-point: ^4.0.0 - checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e - languageName: node - linkType: hard - -"slice-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "slice-ansi@npm:7.1.0" - dependencies: - ansi-styles: ^6.2.1 - is-fullwidth-code-point: ^5.0.0 - checksum: 10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.1": - version: 8.0.2 - resolution: "socks-proxy-agent@npm:8.0.2" - dependencies: - agent-base: ^7.0.2 - debug: ^4.3.4 - socks: ^2.7.1 - checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d - languageName: node - linkType: hard - -"socks@npm:^2.7.1": - version: 2.7.3 - resolution: "socks@npm:2.7.3" - dependencies: - ip-address: ^9.0.5 - smart-buffer: ^4.2.0 - checksum: a3eedee3054d55edb1395db1fb4689259b76af062aadd4c3e757961c7122f27baedd9a0947d70cfc902cf8d8c378f5874293ea96c6fb805033d7a08da32f012e - languageName: node - linkType: hard - -"sort-keys@npm:^5.0.0": - version: 5.0.0 - resolution: "sort-keys@npm:5.0.0" - dependencies: - is-plain-obj: ^4.0.0 - checksum: 9c0b7a468312075be03770b260b2cc0e5d55149025e564edaed41c9ff619199698aad6712a6fe4bbc75c541efb081276ac6bbd4cf2723d742f272f7a8fe354f5 - languageName: node - linkType: hard - -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c - languageName: node - linkType: hard - -"source-map-js@npm:^1.2.0": - version: 1.2.0 - resolution: "source-map-js@npm:1.2.0" - checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 - languageName: node - linkType: hard - -"source-map-support@npm:0.5.13": - version: 0.5.13 - resolution: "source-map-support@npm:0.5.13" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 - languageName: node - linkType: hard - -"source-map@npm:^0.5.7": - version: 0.5.7 - resolution: "source-map@npm:0.5.7" - checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - -"spdx-correct@npm:^3.0.0": - version: 3.2.0 - resolution: "spdx-correct@npm:3.2.0" - dependencies: - spdx-expression-parse: ^3.0.0 - spdx-license-ids: ^3.0.0 - checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 - languageName: node - linkType: hard - -"spdx-exceptions@npm:^2.1.0": - version: 2.5.0 - resolution: "spdx-exceptions@npm:2.5.0" - checksum: bb127d6e2532de65b912f7c99fc66097cdea7d64c10d3ec9b5e96524dbbd7d20e01cba818a6ddb2ae75e62bb0c63d5e277a7e555a85cbc8ab40044984fa4ae15 - languageName: node - linkType: hard - -"spdx-expression-parse@npm:^3.0.0": - version: 3.0.1 - resolution: "spdx-expression-parse@npm:3.0.1" - dependencies: - spdx-exceptions: ^2.1.0 - spdx-license-ids: ^3.0.0 - checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde - languageName: node - linkType: hard - -"spdx-license-ids@npm:^3.0.0": - version: 3.0.17 - resolution: "spdx-license-ids@npm:3.0.17" - checksum: 0aba5d16292ff604dd20982200e23b4d425f6ba364765039bdbde2f6c956b9909fce1ad040a897916a5f87388e85e001f90cb64bf706b6e319f3908cfc445a59 - languageName: node - linkType: hard - -"split2@npm:^4.0.0": - version: 4.2.0 - resolution: "split2@npm:4.2.0" - checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d - languageName: node - linkType: hard - -"sprintf-js@npm:^1.1.3": - version: 1.1.3 - resolution: "sprintf-js@npm:1.1.3" - checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 - languageName: node - linkType: hard - -"ssri@npm:^10.0.0": - version: 10.0.5 - resolution: "ssri@npm:10.0.5" - dependencies: - minipass: ^7.0.3 - checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 - languageName: node - linkType: hard - -"ssri@npm:^10.0.6": - version: 10.0.6 - resolution: "ssri@npm:10.0.6" - dependencies: - minipass: ^7.0.3 - checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 - languageName: node - linkType: hard - -"stack-utils@npm:^2.0.3": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 - languageName: node - linkType: hard - -"state-local@npm:^1.0.6": - version: 1.0.7 - resolution: "state-local@npm:1.0.7" - checksum: d1afcf1429e7e6eb08685b3a94be8797db847369316d4776fd51f3962b15b984dacc7f8e401ad20968e5798c9565b4b377afedf4e4c4d60fe7495e1cbe14a251 - languageName: node - linkType: hard - -"stream-to-array@npm:^2.3.0": - version: 2.3.0 - resolution: "stream-to-array@npm:2.3.0" - dependencies: - any-promise: ^1.1.0 - checksum: 7feaf63b38399b850615e6ffcaa951e96e4c8f46745dbce4b553a94c5dc43966933813747014935a3ff97793e7f30a65270bde19f82b2932871a1879229a77cf - languageName: node - linkType: hard - -"string-argv@npm:~0.3.2": - version: 0.3.2 - resolution: "string-argv@npm:0.3.2" - checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f - languageName: node - linkType: hard - -"string-length@npm:^4.0.1": - version: 4.0.2 - resolution: "string-length@npm:4.0.2" - dependencies: - char-regex: ^1.0.2 - strip-ansi: ^6.0.0 - checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 - languageName: node - linkType: hard - -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 - languageName: node - linkType: hard - -"string-width@npm:^7.0.0": - version: 7.1.0 - resolution: "string-width@npm:7.1.0" - dependencies: - emoji-regex: ^10.3.0 - get-east-asian-width: ^1.0.0 - strip-ansi: ^7.1.0 - checksum: a183573fe7209e0d294f661846d33f8caf72aa86d983e5b48a0ed45ab15bcccb02c6f0344b58b571988871105457137b8207855ea536827dbc4a376a0f31bf8f - languageName: node - linkType: hard - -"string-width@npm:^7.2.0": - version: 7.2.0 - resolution: "string-width@npm:7.2.0" - dependencies: - emoji-regex: ^10.3.0 - get-east-asian-width: ^1.0.0 - strip-ansi: ^7.1.0 - checksum: 42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 - languageName: node - linkType: hard - -"string.prototype.trim@npm:^1.2.8": - version: 1.2.8 - resolution: "string.prototype.trim@npm:1.2.8" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimend@npm:1.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimstart@npm:1.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 - languageName: node - linkType: hard - -"stringify-object@npm:^3.2.1": - version: 3.3.0 - resolution: "stringify-object@npm:3.3.0" - dependencies: - get-own-enumerable-property-symbols: ^3.0.0 - is-obj: ^1.0.1 - is-regexp: ^1.0.0 - checksum: 6827a3f35975cfa8572e8cd3ed4f7b262def260af18655c6fde549334acdac49ddba69f3c861ea5a6e9c5a4990fe4ae870b9c0e6c31019430504c94a83b7a154 - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: ^6.0.1 - checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b - languageName: node - linkType: hard - -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 - languageName: node - linkType: hard - -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 - languageName: node - linkType: hard - -"strip-indent@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" - dependencies: - min-indent: ^1.0.0 - checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 - languageName: node - linkType: hard - -"strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 - languageName: node - linkType: hard - -"strong-log-transformer@npm:^2.1.0": - version: 2.1.0 - resolution: "strong-log-transformer@npm:2.1.0" - dependencies: - duplexer: ^0.1.1 - minimist: ^1.2.0 - through: ^2.3.4 - bin: - sl-log-transformer: bin/sl-log-transformer.js - checksum: abf9a4ac143118f26c3a0771b204b02f5cf4fa80384ae158f25e02bfbff761038accc44a7f65869ccd5a5995a7f2c16b1466b83149644ba6cecd3072a8927297 - languageName: node - linkType: hard - -"stylelint-config-recommended-scss@npm:^14.0.0": - version: 14.0.0 - resolution: "stylelint-config-recommended-scss@npm:14.0.0" - dependencies: - postcss-scss: ^4.0.9 - stylelint-config-recommended: ^14.0.0 - stylelint-scss: ^6.0.0 - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.0.2 - peerDependenciesMeta: - postcss: - optional: true - checksum: 512fba4d81654b65a7a36d531f165c7d8f0c938e63a0f90daca0c21d623cc637e29195fec5e0ae1edd862502d69717f6f3e90016cd7ba8458e4a8afcd87bb3b4 - languageName: node - linkType: hard - -"stylelint-config-recommended@npm:^14.0.0": - version: 14.0.0 - resolution: "stylelint-config-recommended@npm:14.0.0" - peerDependencies: - stylelint: ^16.0.0 - checksum: 36511115b06d9f51aa0edc05f6064a7aae98cc990da14dd03629951f63a029d9e66a4d5b1ca678cce699e24413a62c2cd608cc07413ca5026f9680ddb8993858 - languageName: node - linkType: hard - -"stylelint-config-standard-scss@npm:^13.0.0": - version: 13.1.0 - resolution: "stylelint-config-standard-scss@npm:13.1.0" - dependencies: - stylelint-config-recommended-scss: ^14.0.0 - stylelint-config-standard: ^36.0.0 - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.3.1 - peerDependenciesMeta: - postcss: - optional: true - checksum: c5105e3b3390c9d0aa95e252abdf1850fa50d82e1a25a1fcc11a88b111038e00c8033a4b34905405f2203c84c0fa26ce1d40248df2172c83c76cc3baa552db07 - languageName: node - linkType: hard - -"stylelint-config-standard@npm:^36.0.0": - version: 36.0.0 - resolution: "stylelint-config-standard@npm:36.0.0" - dependencies: - stylelint-config-recommended: ^14.0.0 - peerDependencies: - stylelint: ^16.1.0 - checksum: 78b14cdfdd03be409687acc863ef88d0e79d9a7f7ab3a9158e7dcd74212893db24841d22f076f248f3b1b6419d778538a5c885dc42fc056eaeb240463edf2f8f - languageName: node - linkType: hard - -"stylelint-prettier@npm:^5.0.0": - version: 5.0.2 - resolution: "stylelint-prettier@npm:5.0.2" - dependencies: - prettier-linter-helpers: ^1.0.0 - peerDependencies: - prettier: ">=3.0.0" - stylelint: ">=16.0.0" - checksum: 1c8de4d5ee093766690fe4a2548ec40df7a143bb60fba6585efa42adbfe5cfac78a8350e9742fdbf543b1769b75c8ef9b477b6c8d13ed08a0e68565a4120a59d - languageName: node - linkType: hard - -"stylelint-scss@npm:^6.0.0": - version: 6.1.0 - resolution: "stylelint-scss@npm:6.1.0" - dependencies: - known-css-properties: ^0.29.0 - postcss-media-query-parser: ^0.2.3 - postcss-resolve-nested-selector: ^0.1.1 - postcss-selector-parser: ^6.0.15 - postcss-value-parser: ^4.2.0 - peerDependencies: - stylelint: ^16.0.2 - checksum: ff3b1c97e8379e45acd1b5b28bafa11251539366f362ff6a674690fd9aef0c7da926b2445304699d48edd1c375acb51b5fcb8039a4106ef4a6f4e29b8515e00b - languageName: node - linkType: hard - -"stylelint@npm:^16.2.1": - version: 16.8.2 - resolution: "stylelint@npm:16.8.2" - dependencies: - "@csstools/css-parser-algorithms": ^3.0.0 - "@csstools/css-tokenizer": ^3.0.0 - "@csstools/media-query-list-parser": ^3.0.0 - "@csstools/selector-specificity": ^4.0.0 - "@dual-bundle/import-meta-resolve": ^4.1.0 - balanced-match: ^2.0.0 - colord: ^2.9.3 - cosmiconfig: ^9.0.0 - css-functions-list: ^3.2.2 - css-tree: ^2.3.1 - debug: ^4.3.6 - fast-glob: ^3.3.2 - fastest-levenshtein: ^1.0.16 - file-entry-cache: ^9.0.0 - global-modules: ^2.0.0 - globby: ^11.1.0 - globjoin: ^0.1.4 - html-tags: ^3.3.1 - ignore: ^5.3.2 - imurmurhash: ^0.1.4 - is-plain-object: ^5.0.0 - known-css-properties: ^0.34.0 - mathml-tag-names: ^2.1.3 - meow: ^13.2.0 - micromatch: ^4.0.7 - normalize-path: ^3.0.0 - picocolors: ^1.0.1 - postcss: ^8.4.41 - postcss-resolve-nested-selector: ^0.1.6 - postcss-safe-parser: ^7.0.0 - postcss-selector-parser: ^6.1.2 - postcss-value-parser: ^4.2.0 - resolve-from: ^5.0.0 - string-width: ^4.2.3 - strip-ansi: ^7.1.0 - supports-hyperlinks: ^3.0.0 - svg-tags: ^1.0.0 - table: ^6.8.2 - write-file-atomic: ^5.0.1 - bin: - stylelint: bin/stylelint.mjs - checksum: fb90da1de44c47d0f53840881db54072ab996ac3b3dc8cabcacfee55680eac88a0b4fbb02c4746428e246b22e00a4e07ebc2054e1af072db6de7e2860473773c - languageName: node - linkType: hard - -"stylis@npm:4.2.0": - version: 4.2.0 - resolution: "stylis@npm:4.2.0" - checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 - languageName: node - linkType: hard - -"stylus-lookup@npm:^6.0.0": - version: 6.0.0 - resolution: "stylus-lookup@npm:6.0.0" - dependencies: - commander: ^12.0.0 - bin: - stylus-lookup: bin/cli.js - checksum: 27b3380c54f3c2a1186366d44f909d12daaaf412eaf92ad1f0aa1f456fb933da2bf9cf2d84e3195bc6eafeeba667af528e63e543a195ebf7a38bdb9056ca6e01 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac - languageName: node - linkType: hard - -"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a - languageName: node - linkType: hard - -"supports-color@npm:^8.0.0": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: ^4.0.0 - checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 - languageName: node - linkType: hard - -"supports-hyperlinks@npm:^3.0.0": - version: 3.0.0 - resolution: "supports-hyperlinks@npm:3.0.0" - dependencies: - has-flag: ^4.0.0 - supports-color: ^7.0.0 - checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae - languageName: node - linkType: hard - -"svg-tags@npm:^1.0.0": - version: 1.0.0 - resolution: "svg-tags@npm:1.0.0" - checksum: 407e5ef87cfa2fb81c61d738081c2decd022ce13b922d035b214b49810630bf5d1409255a4beb3a940b77b32f6957806deff16f1bf0ce1ab11c7a184115a0b7f - languageName: node - linkType: hard - -"symbol-tree@npm:^3.2.4": - version: 3.2.4 - resolution: "symbol-tree@npm:3.2.4" - checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d - languageName: node - linkType: hard - -"synckit@npm:^0.9.1": - version: 0.9.1 - resolution: "synckit@npm:0.9.1" - dependencies: - "@pkgr/core": ^0.1.0 - tslib: ^2.6.2 - checksum: 4042941a4d939675f1d7b01124b8405b6ac616f3e3f396d00e46c67f38d0d5b7f9a1de05bc7ceea4ce80d967b450cfa2460e5f6aca81f7cea8f1a28be9392985 - languageName: node - linkType: hard - -"tabbable@npm:^6.2.0": - version: 6.2.0 - resolution: "tabbable@npm:6.2.0" - checksum: f8440277d223949272c74bb627a3371be21735ca9ad34c2570f7e1752bd646ccfc23a9d8b1ee65d6561243f4134f5fbbf1ad6b39ac3c4b586554accaff4a1300 - languageName: node - linkType: hard - -"table@npm:^6.8.2": - version: 6.8.2 - resolution: "table@npm:6.8.2" - dependencies: - ajv: ^8.0.1 - lodash.truncate: ^4.4.2 - slice-ansi: ^4.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - checksum: 61188652f53a980d1759ca460ca8dea5c5322aece3210457e7084882f053c2b6a870041295e08a82cb1d676e31b056406845d94b0abf3c79a4b104777bec413b - languageName: node - linkType: hard - -"tapable@npm:^2.2.0": - version: 2.2.1 - resolution: "tapable@npm:2.2.1" - checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.2.0 - resolution: "tar@npm:6.2.0" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c - languageName: node - linkType: hard - -"tar@npm:^6.2.1": - version: 6.2.1 - resolution: "tar@npm:6.2.1" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c - languageName: node - linkType: hard - -"temp-dir@npm:^3.0.0": - version: 3.0.0 - resolution: "temp-dir@npm:3.0.0" - checksum: 577211e995d1d584dd60f1469351d45e8a5b4524e4a9e42d3bdd12cfde1d0bb8f5898311bef24e02aaafb69514c1feb58c7b4c33dcec7129da3b0861a4ca935b - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": ^0.1.2 - glob: ^7.1.4 - minimatch: ^3.0.4 - checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 - languageName: node - linkType: hard - -"text-extensions@npm:^2.0.0": - version: 2.4.0 - resolution: "text-extensions@npm:2.4.0" - checksum: 9bdbc9959e004ccc86a6ec076d6c5bb6765978263e9d0d5febb640d7675c09919ea912f3fe9d50b68c3c7c43cc865610a7cb24954343abb31f74c205fbae4e45 - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - -"through@npm:>=2.2.7 <3, through@npm:^2.3.4": - version: 2.3.8 - resolution: "through@npm:2.3.8" - checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd - languageName: node - linkType: hard - -"tmpl@npm:1.0.5": - version: 1.0.5 - resolution: "tmpl@npm:1.0.5" - checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed - languageName: node - linkType: hard - -"toggle-selection@npm:^1.0.6": - version: 1.0.6 - resolution: "toggle-selection@npm:1.0.6" - checksum: a90dc80ed1e7b18db8f4e16e86a5574f87632dc729cfc07d9ea3ced50021ad42bb4e08f22c0913e0b98e3837b0b717e0a51613c65f30418e21eb99da6556a74c - languageName: node - linkType: hard - -"tough-cookie@npm:^4.1.2": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" - dependencies: - psl: ^1.1.33 - punycode: ^2.1.1 - universalify: ^0.2.0 - url-parse: ^1.5.3 - checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc - languageName: node - linkType: hard - -"tr46@npm:^3.0.0": - version: 3.0.0 - resolution: "tr46@npm:3.0.0" - dependencies: - punycode: ^2.1.1 - checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 - languageName: node - linkType: hard - -"treeverse@npm:^3.0.0": - version: 3.0.0 - resolution: "treeverse@npm:3.0.0" - checksum: 73168d9887fa57b0719218f176c5a3cfbaaf310922879acb4adf76665bc17dcdb6ed3e4163f0c27eee17e346886186a1515ea6f87e96cdc10df1dce13bf622a0 - languageName: node - linkType: hard - -"ts-api-utils@npm:^1.3.0": - version: 1.3.0 - resolution: "ts-api-utils@npm:1.3.0" - peerDependencies: - typescript: ">=4.2.0" - checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 - languageName: node - linkType: hard - -"ts-graphviz@npm:^2.1.2": - version: 2.1.2 - resolution: "ts-graphviz@npm:2.1.2" - dependencies: - "@ts-graphviz/adapter": ^2.0.3 - "@ts-graphviz/ast": ^2.0.3 - "@ts-graphviz/common": ^2.1.2 - "@ts-graphviz/core": ^2.0.3 - checksum: 0b06a00cbd1518d98c158d01541b47343ccfe46cadc63ed34bda19689e92f79126a42628cc6c2eb55014cce7672ec4260538d40baf8f90448b8d3c638191e7a9 - languageName: node - linkType: hard - -"ts-node@npm:^10.9.2": - version: 10.9.2 - resolution: "ts-node@npm:10.9.2" - dependencies: - "@cspotcode/source-map-support": ^0.8.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.1 - yn: 3.1.1 - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac - languageName: node - linkType: hard - -"tsconfig-paths@npm:^3.15.0": - version: 3.15.0 - resolution: "tsconfig-paths@npm:3.15.0" - dependencies: - "@types/json5": ^0.0.29 - json5: ^1.0.2 - minimist: ^1.2.6 - strip-bom: ^3.0.0 - checksum: 59f35407a390d9482b320451f52a411a256a130ff0e7543d18c6f20afab29ac19fbe55c360a93d6476213cc335a4d76ce90f67df54c4e9037f7d240920832201 - languageName: node - linkType: hard - -"tsconfig-paths@npm:^4.2.0": - version: 4.2.0 - resolution: "tsconfig-paths@npm:4.2.0" - dependencies: - json5: ^2.2.2 - minimist: ^1.2.6 - strip-bom: ^3.0.0 - checksum: 28c5f7bbbcabc9dabd4117e8fdc61483f6872a1c6b02a4b1c4d68c5b79d06896c3cc9547610c4c3ba64658531caa2de13ead1ea1bf321c7b53e969c4752b98c7 - languageName: node - linkType: hard - -"tslib@npm:^1.8.1": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd - languageName: node - linkType: hard - -"tslib@npm:^2.0.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad - languageName: node - linkType: hard - -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 - languageName: node - linkType: hard - -"tuf-js@npm:^2.2.0": - version: 2.2.0 - resolution: "tuf-js@npm:2.2.0" - dependencies: - "@tufjs/models": 2.0.0 - debug: ^4.3.4 - make-fetch-happen: ^13.0.0 - checksum: 5e7ce24d5339a7c9255eb130e735f6fef36f02c916e6d2058602982803832afa086f31ae3b00d8cac6dca106644cc6f1b1463058dd513e2cc7b47c5783bb3098 - languageName: node - linkType: hard - -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: ^1.2.1 - checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a - languageName: node - linkType: hard - -"type-detect@npm:4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 - languageName: node - linkType: hard - -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 - languageName: node - linkType: hard - -"type-fest@npm:^2.5.1": - version: 2.19.0 - resolution: "type-fest@npm:2.19.0" - checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 - languageName: node - linkType: hard - -"type-fest@npm:^3.8.0": - version: 3.13.1 - resolution: "type-fest@npm:3.13.1" - checksum: c06b0901d54391dc46de3802375f5579868949d71f93b425ce564e19a428a0d411ae8d8cb0e300d330071d86152c3ea86e744c3f2860a42a79585b6ec2fdae8e - languageName: node - linkType: hard - -"type-fest@npm:^4.2.0, type-fest@npm:^4.6.0": - version: 4.10.2 - resolution: "type-fest@npm:4.10.2" - checksum: ef75736d51c10a885f955c07aed8f46103a8c9ae93742a75fbbdf023dd0e7169c524ebef292f37de19806051fb1bdd96c4098a0101c5f869f80db73bcb484bb1 - languageName: node - linkType: hard - -"type-fest@npm:^4.23.0": - version: 4.24.0 - resolution: "type-fest@npm:4.24.0" - checksum: f02e28bb12ce290f9880937b3c65d3cc4f0fdd89776b4b78d392aece0eb031c7ea9c1d6c536011c63bb8d0a6c72359336287f23f940204508a42a442c98c4d25 - languageName: node - linkType: hard - -"type-fest@npm:^4.7.1": - version: 4.14.0 - resolution: "type-fest@npm:4.14.0" - checksum: c4e2377112a9311430863d5d4eb778c242570a535f0a2bd648da31ecb1013c71affcbdfc5bfcddc8cd13cf821103ee9df4f2e5804a5a7bca8028aab7f7232f73 - languageName: node - linkType: hard - -"typed-array-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-buffer@npm:1.0.1" - dependencies: - call-bind: ^1.0.6 - es-errors: ^1.3.0 - is-typed-array: ^1.1.13 - checksum: 1d65e46b2b9b7ec2a30df39b9ddf32e55ad08d6119aec33975506a3dba56057796bdc3c64dbeb7fdb61bf340a75e279dfd55b48ce8f3b874f01731e1da6833d2 - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-length@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - for-each: ^0.3.3 - has-proto: ^1.0.1 - is-typed-array: ^1.1.10 - checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-offset@npm:1.0.0" - dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - for-each: ^0.3.3 - has-proto: ^1.0.1 - is-typed-array: ^1.1.10 - checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b - languageName: node - linkType: hard - -"typed-array-length@npm:^1.0.4": - version: 1.0.4 - resolution: "typed-array-length@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - for-each: ^0.3.3 - is-typed-array: ^1.1.9 - checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 - languageName: node - linkType: hard - -"typescript@npm:^5.3.3, typescript@npm:^5.4.4, typescript@npm:^5.4.5, typescript@npm:^5.5.4": - version: 5.5.4 - resolution: "typescript@npm:5.5.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: b309040f3a1cd91c68a5a58af6b9fdd4e849b8c42d837b2c2e73f9a4f96a98c4f1ed398a9aab576ee0a4748f5690cf594e6b99dbe61de7839da748c41e6d6ca8 - languageName: node - linkType: hard - -"typescript@patch:typescript@^5.3.3#~builtin, typescript@patch:typescript@^5.4.4#~builtin, typescript@patch:typescript@^5.4.5#~builtin, typescript@patch:typescript@^5.5.4#~builtin": - version: 5.5.4 - resolution: "typescript@patch:typescript@npm%3A5.5.4#~builtin::version=5.5.4&hash=379a07" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: e14c87e8bd51f9ac741051a2c3bde75b2a3ab17dee2c50239f7e1a0868673f3b7d4d87684df41a59a8f57c6ddc5d06d65d120764d992441af5de07b98cf9c67b - languageName: node - linkType: hard - -"uglify-js@npm:^3.1.4": - version: 3.17.4 - resolution: "uglify-js@npm:3.17.4" - bin: - uglifyjs: bin/uglifyjs - checksum: 7b3897df38b6fc7d7d9f4dcd658599d81aa2b1fb0d074829dd4e5290f7318dbca1f4af2f45acb833b95b1fe0ed4698662ab61b87e94328eb4c0a0d3435baf924 - languageName: node - linkType: hard - -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - has-bigints: ^1.0.2 - has-symbols: ^1.0.3 - which-boxed-primitive: ^1.0.2 - checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 - languageName: node - linkType: hard - -"undici-types@npm:~6.19.2": - version: 6.19.6 - resolution: "undici-types@npm:6.19.6" - checksum: e66df2447b6d93a48b0605a54269d8c3f228edcd1e9563229f6de37e48ed53b3e49b4bc965733643ed9717e0e0fa1ee664c929db91d787c9f488fb3f9e17c533 - languageName: node - linkType: hard - -"unicode-canonical-property-names-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" - checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 - languageName: node - linkType: hard - -"unicode-match-property-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-ecmascript@npm:2.0.0" - dependencies: - unicode-canonical-property-names-ecmascript: ^2.0.0 - unicode-property-aliases-ecmascript: ^2.0.0 - checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a - languageName: node - linkType: hard - -"unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 - languageName: node - linkType: hard - -"unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.1.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" - checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b - languageName: node - linkType: hard - -"unicorn-magic@npm:^0.1.0": - version: 0.1.0 - resolution: "unicorn-magic@npm:0.1.0" - checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 - languageName: node - linkType: hard - -"universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": - version: 7.0.2 - resolution: "universal-user-agent@npm:7.0.2" - checksum: 3f02cb6de0bb9fbaf379566bd0320d8e46af6e4358a2e88fce7e70687ed7b48b37f479d728bb22f4204a518e363f3038ac4841c033af1ee2253f6428a6c67e53 - languageName: node - linkType: hard - -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.0.13": - version: 1.0.13 - resolution: "update-browserslist-db@npm:1.0.13" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" - dependencies: - escalade: ^3.1.2 - picocolors: ^1.0.1 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: ^2.1.0 - checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 - languageName: node - linkType: hard - -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: ^2.1.1 - requires-port: ^1.0.0 - checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf - languageName: node - linkType: hard - -"use-debounce@npm:^10.0.0": - version: 10.0.3 - resolution: "use-debounce@npm:10.0.3" - peerDependencies: - react: "*" - checksum: 19146eeb9adb893fe18a601ee8d3ba095b3c8b01e200f552462e7bb7370fcdbe5e7ffa8d5072dbf5eee58cae64f95903c26a5446039c1338c721808be808b546 - languageName: node - linkType: hard - -"use-isomorphic-layout-effect@npm:^1.1.2": - version: 1.1.2 - resolution: "use-isomorphic-layout-effect@npm:1.1.2" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - -"uuid@npm:^10.0.0": - version: 10.0.0 - resolution: "uuid@npm:10.0.0" - bin: - uuid: dist/bin/uuid - checksum: 4b81611ade2885d2313ddd8dc865d93d8dccc13ddf901745edca8f86d99bc46d7a330d678e7532e7ebf93ce616679fb19b2e3568873ac0c14c999032acb25869 - languageName: node - linkType: hard - -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 39931f6da74e307f51c0fb463dc2462807531dc80760a9bff1e35af4316131b4fc3203d16da60ae33f07fdca5b56f3f1dd662da0c99fea9aaeab2004780cc5f4 - languageName: node - linkType: hard - -"v8-compile-cache-lib@npm:^3.0.1": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 - languageName: node - linkType: hard - -"v8-to-istanbul@npm:^9.0.1": - version: 9.2.0 - resolution: "v8-to-istanbul@npm:9.2.0" - dependencies: - "@jridgewell/trace-mapping": ^0.3.12 - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^2.0.0 - checksum: 31ef98c6a31b1dab6be024cf914f235408cd4c0dc56a5c744a5eea1a9e019ba279e1b6f90d695b78c3186feed391ed492380ccf095009e2eb91f3d058f0b4491 - languageName: node - linkType: hard - -"validate-npm-package-license@npm:^3.0.4": - version: 3.0.4 - resolution: "validate-npm-package-license@npm:3.0.4" - dependencies: - spdx-correct: ^3.0.0 - spdx-expression-parse: ^3.0.0 - checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad - languageName: node - linkType: hard - -"validate-npm-package-name@npm:^5.0.0": - version: 5.0.0 - resolution: "validate-npm-package-name@npm:5.0.0" - dependencies: - builtins: ^5.0.0 - checksum: 5342a994986199b3c28e53a8452a14b2bb5085727691ea7aa0d284a6606b127c371e0925ae99b3f1ef7cc7d2c9de75f52eb61a3d1cc45e39bca1e3a9444cbb4e - languageName: node - linkType: hard - -"vite-plugin-circular-dependency@npm:^0.4.0": - version: 0.4.1 - resolution: "vite-plugin-circular-dependency@npm:0.4.1" - dependencies: - "@rollup/pluginutils": ^5.1.0 - chalk: ^4.1.2 - checksum: 415a960471f08fe43ee3442a49732b52c8e08e57e07a080bc42f8c28f2d8042b14195f1ec75c2226d84d0c3577157373a0d85afd6912d05d761383c891d31788 - languageName: node - linkType: hard - -"vite@npm:^5.0.12, vite@npm:^5.1.4": - version: 5.4.1 - resolution: "vite@npm:5.4.1" - dependencies: - esbuild: ^0.21.3 - fsevents: ~2.3.3 - postcss: ^8.4.41 - rollup: ^4.13.0 - peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" - lightningcss: ^1.21.0 - sass: "*" - sass-embedded: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: 5bbb9e855fdbcb170f0d02b78e5c1e8f68e2d2010df6dd74b105bbcef96e91d89871063cb9afafb263e8e0bd69d7b6c4eeadd1abec63bd0938ab7b2b56e7e4dd - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^4.0.0": - version: 4.0.0 - resolution: "w3c-xmlserializer@npm:4.0.0" - dependencies: - xml-name-validator: ^4.0.0 - checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 - languageName: node - linkType: hard - -"walk-up-path@npm:^3.0.1": - version: 3.0.1 - resolution: "walk-up-path@npm:3.0.1" - checksum: 9ffca02fe30fb65f6db531260582988c5e766f4c739cf86a6109380a7f791236b5d0b92b1dce37a6f73e22dca6bc9d93bf3700413e16251b2bd6bbd1ca2be316 - languageName: node - linkType: hard - -"walkdir@npm:^0.4.1": - version: 0.4.1 - resolution: "walkdir@npm:0.4.1" - checksum: 71045c21dc19aae3321f897b6e9e507cf8039202665c35a0b908eecccaf25636aab769b31cbd61ef8267237fe22fc316923a691ecc2d9d38840a15c59c0f2594 - languageName: node - linkType: hard - -"walker@npm:^1.0.8": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: 1.0.12 - checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: ^1.0.3 - checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c - languageName: node - linkType: hard - -"web-streams-polyfill@npm:^3.0.3": - version: 3.3.2 - resolution: "web-streams-polyfill@npm:3.3.2" - checksum: 0292f4113c1bda40d8e8ecebee39eb14cc2e2e560a65a6867980e394537a2645130e2c73f5ef6e641fd3697d2f71720ccf659aebaf69a9d5a773f653a0fdf39d - languageName: node - linkType: hard - -"webcola@npm:3.4.0": - version: 3.4.0 - resolution: "webcola@npm:3.4.0" - dependencies: - d3-dispatch: ^1.0.3 - d3-drag: ^1.0.4 - d3-shape: ^1.3.5 - d3-timer: ^1.0.5 - checksum: 046f7cc06ef077b42e2cdecba9b9407452008444629a95d1c921283b9dae7c874ef8b5d66d4e21d56f427662598ae12d11992fbe10ec29d8ec0bcc68f6c40b75 - languageName: node - linkType: hard - -"webidl-conversions@npm:^7.0.0": - version: 7.0.0 - resolution: "webidl-conversions@npm:7.0.0" - checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b - languageName: node - linkType: hard - -"whatwg-encoding@npm:^2.0.0": - version: 2.0.0 - resolution: "whatwg-encoding@npm:2.0.0" - dependencies: - iconv-lite: 0.6.3 - checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 - languageName: node - linkType: hard - -"whatwg-mimetype@npm:^3.0.0": - version: 3.0.0 - resolution: "whatwg-mimetype@npm:3.0.0" - checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 - languageName: node - linkType: hard - -"whatwg-url@npm:^11.0.0": - version: 11.0.0 - resolution: "whatwg-url@npm:11.0.0" - dependencies: - tr46: ^3.0.0 - webidl-conversions: ^7.0.0 - checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af - languageName: node - linkType: hard - -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: ^1.0.1 - is-boolean-object: ^1.1.0 - is-number-object: ^1.0.4 - is-string: ^1.0.5 - is-symbol: ^1.0.3 - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.14": - version: 1.1.14 - resolution: "which-typed-array@npm:1.1.14" - dependencies: - available-typed-arrays: ^1.0.6 - call-bind: ^1.0.5 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-tostringtag: ^1.0.1 - checksum: efe30c143c58630dde8ab96f9330e20165bacd77ca843c602b510120a415415573bcdef3ccbc30a0e5aaf20f257360cfe24712aea0008f149ce5bb99834c0c0b - languageName: node - linkType: hard - -"which@npm:^1.3.1": - version: 1.3.1 - resolution: "which@npm:1.3.1" - dependencies: - isexe: ^2.0.0 - bin: - which: ./bin/which - checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: ^2.0.0 - bin: - node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: ^3.1.1 - bin: - node-which: bin/which.js - checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 - languageName: node - linkType: hard - -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" - dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 - languageName: node - linkType: hard - -"wordwrap@npm:^1.0.0": - version: 1.0.0 - resolution: "wordwrap@npm:1.0.0" - checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04 - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b - languageName: node - linkType: hard - -"wrap-ansi@npm:^6.2.0": - version: 6.2.0 - resolution: "wrap-ansi@npm:6.2.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: ^6.1.0 - string-width: ^5.0.1 - strip-ansi: ^7.0.1 - checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 - languageName: node - linkType: hard - -"wrap-ansi@npm:^9.0.0": - version: 9.0.0 - resolution: "wrap-ansi@npm:9.0.0" - dependencies: - ansi-styles: ^6.2.1 - string-width: ^7.0.0 - strip-ansi: ^7.1.0 - checksum: b2d43b76b3d8dcbdd64768165e548aad3e54e1cae4ecd31bac9966faaa7cf0b0345677ad6879db10ba58eb446ba8fa44fb82b4951872fd397f096712467a809f - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"write-file-atomic@npm:^4.0.2": - version: 4.0.2 - resolution: "write-file-atomic@npm:4.0.2" - dependencies: - imurmurhash: ^0.1.4 - signal-exit: ^3.0.7 - checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c - languageName: node - linkType: hard - -"write-file-atomic@npm:^5.0.0, write-file-atomic@npm:^5.0.1": - version: 5.0.1 - resolution: "write-file-atomic@npm:5.0.1" - dependencies: - imurmurhash: ^0.1.4 - signal-exit: ^4.0.1 - checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 - languageName: node - linkType: hard - -"write-json-file@npm:^6.0.0": - version: 6.0.0 - resolution: "write-json-file@npm:6.0.0" - dependencies: - detect-indent: ^7.0.1 - is-plain-obj: ^4.1.0 - sort-keys: ^5.0.0 - write-file-atomic: ^5.0.1 - checksum: a53a5c9a20bf91fdf953074ecce633f8d0b2aaa5df1570ee1d31ddb88f48a0b1893563dc3ca9c8446298e640bf5591ed8530bab85a969e416e56cba03997ec06 - languageName: node - linkType: hard - -"write-package@npm:^7.1.0": - version: 7.1.0 - resolution: "write-package@npm:7.1.0" - dependencies: - deepmerge-ts: ^7.1.0 - read-pkg: ^9.0.1 - sort-keys: ^5.0.0 - type-fest: ^4.23.0 - write-json-file: ^6.0.0 - checksum: c307c617b9966c872f46a1f0b261243f6d752e43082ec8912cdf151f7ecb6f4a2d2af8bb51d726af5cac9ac98e7fa95ae3ba9809ed9ac8ad4fb5c50340429bec - languageName: node - linkType: hard - -"ws@npm:^8.11.0": - version: 8.16.0 - resolution: "ws@npm:8.16.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: feb3eecd2bae82fa8a8beef800290ce437d8b8063bdc69712725f21aef77c49cb2ff45c6e5e7fce622248f9c7abaee506bae0a9064067ffd6935460c7357321b - languageName: node - linkType: hard - -"xml-formatter@npm:^3.6.2": - version: 3.6.3 - resolution: "xml-formatter@npm:3.6.3" - dependencies: - xml-parser-xo: ^4.1.2 - checksum: e4c6927d30de9e82f69ea1752d93b9e31e5eb308c2261e039272a04cdf1120a03cf01aea5cbb01c4197a1dee9dc67b04bf91a24acd6a1abe52b4fcb7ac843086 - languageName: node - linkType: hard - -"xml-name-validator@npm:^4.0.0": - version: 4.0.0 - resolution: "xml-name-validator@npm:4.0.0" - checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad - languageName: node - linkType: hard - -"xml-parser-xo@npm:^4.1.2": - version: 4.1.2 - resolution: "xml-parser-xo@npm:4.1.2" - checksum: 732aaeb54e01bf21036a7f711147dceb693a2042b657ffd98166abb4c124946b3e41f2d3e5f3571398cedde7fbd99b346821c4d44d5fed5f86bac506c8a06a2a - languageName: node - linkType: hard - -"xmlchars@npm:^2.2.0": - version: 2.2.0 - resolution: "xmlchars@npm:2.2.0" - checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 - languageName: node - linkType: hard - -"xpath-ts@npm:^1.3.13": - version: 1.3.13 - resolution: "xpath-ts@npm:1.3.13" - checksum: d7e40dbe45ee5b903b88720f0799030d98e4039266ea7aafc7d738fee18eb6351ff283e9e91a1792c72762f7b4794a355b9b2318eadfbec52c432a24ab855860 - languageName: node - linkType: hard - -"xslt-ts@npm:^1.1.8": - version: 1.1.8 - resolution: "xslt-ts@npm:1.1.8" - dependencies: - he: ^1.2.0 - xpath-ts: ^1.3.13 - checksum: 37d358f6f73614c391db6909b21ce2752533597f0984e605fcf49a8dcf1015c9eca73884cb81e84c60380b22fce4102343d42aac3ec6e6b1334bd6bdbb88ff87 - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 - languageName: node - linkType: hard - -"yallist@npm:^3.0.2": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 - languageName: node - linkType: hard - -"yaml@npm:^1.10.0": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f - languageName: node - linkType: hard - -"yaml@npm:~2.5.0": - version: 2.5.0 - resolution: "yaml@npm:2.5.0" - bin: - yaml: bin.mjs - checksum: a116dca5c61641d9bf1f1016c6e71daeb1ed4915f5930ed237d45ab7a605aa5d92c332ff64879a6cd088cabede008c778774e3060ffeb4cd617d28088e4b2d83 - languageName: node - linkType: hard - -"yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c - languageName: node - linkType: hard - -"yargs@npm:^17.3.1, yargs@npm:^17.7.2": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: ^8.0.1 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.1.1 - checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a - languageName: node - linkType: hard - -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 - languageName: node - linkType: hard - -"yocto-queue@npm:^1.0.0": - version: 1.0.0 - resolution: "yocto-queue@npm:1.0.0" - checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 - languageName: node - linkType: hard - -"yocto-queue@npm:^1.1.1": - version: 1.1.1 - resolution: "yocto-queue@npm:1.1.1" - checksum: f2e05b767ed3141e6372a80af9caa4715d60969227f38b1a4370d60bffe153c9c5b33a862905609afc9b375ec57cd40999810d20e5e10229a204e8bde7ef255c - languageName: node - linkType: hard - -"yoctocolors-cjs@npm:^2.1.2": - version: 2.1.2 - resolution: "yoctocolors-cjs@npm:2.1.2" - checksum: 1c474d4b30a8c130e679279c5c2c33a0d48eba9684ffa0252cc64846c121fb56c3f25457fef902edbe1e2d7a7872130073a9fc8e795299d75e13fa3f5f548f1b - languageName: node - linkType: hard diff --git a/packages/ui/jest-setup.ts b/packages/ui/jest-setup.ts index 992d686df..9dc26f676 100644 --- a/packages/ui/jest-setup.ts +++ b/packages/ui/jest-setup.ts @@ -11,6 +11,20 @@ Object.defineProperty(window, 'fetch', { value: jest.fn(), }); +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: jest.fn().mockImplementation((query) => ({ + matches: false, + media: query, + onchange: null, + addListener: jest.fn(), // Deprecated + removeListener: jest.fn(), // Deprecated + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + })), +}); + jest .spyOn(global, 'crypto', 'get') .mockImplementation(() => ({ getRandomValues: () => [12345678] }) as unknown as Crypto); diff --git a/packages/ui/package.json b/packages/ui/package.json index c299185f3..c5adcfb7f 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -51,13 +51,16 @@ "lint:style:fix": "yarn lint:style --fix" }, "dependencies": { + "@dnd-kit/core": "^6.1.0", "@kaoto-next/uniforms-patternfly": "^0.7.1", + "@kaoto/xml-schema-ts": "workspace:*", "@kie-tools-core/editor": "0.32.0", "@kie-tools-core/notifications": "0.32.0", "@types/uuid": "^10.0.0", "ajv": "^8.12.0", "ajv-draft-04": "^1.0.0", "ajv-formats": "^3.0.0", + "chevrotain": "10.5.0", "clsx": "^2.1.0", "html-to-image": "^1.11.11", "lodash.clonedeep": "^4.5.0", @@ -72,6 +75,7 @@ "uniforms-bridge-json-schema": "4.0.0-alpha.6", "usehooks-ts": "^3.0.0", "uuid": "^10.0.0", + "xml-formatter": "^3.6.2", "yaml": "^2.3.2", "zustand": "^4.3.9" }, diff --git a/packages/ui/src/components/DataMapper/DataMapper.tsx b/packages/ui/src/components/DataMapper/DataMapper.tsx deleted file mode 100644 index c66b9665f..000000000 --- a/packages/ui/src/components/DataMapper/DataMapper.tsx +++ /dev/null @@ -1,8 +0,0 @@ -import { Button } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; - -export const DataMapper: FunctionComponent = () => { - return ; -}; - -export default DataMapper; diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx new file mode 100644 index 000000000..82595f1a6 --- /dev/null +++ b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx @@ -0,0 +1,18 @@ +import { Button } from '@patternfly/react-core'; +import { WrenchIcon } from '@patternfly/react-icons'; +import { FunctionComponent } from 'react'; +import { useComponentLink } from '../../hooks/ComponentLink'; +import { IVisualizationNode } from '../../models'; +import { Links } from '../../router/links.models'; + +export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNode }> = () => { + const backLink = useComponentLink(Links.DataMapper); + + return ( + + ); +}; + +export default DataMapperLauncher; diff --git a/data-mapper/packages/ui/src/components/Loading.tsx b/packages/ui/src/components/DataMapper/components/Loading.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/Loading.tsx rename to packages/ui/src/components/DataMapper/components/Loading.tsx diff --git a/data-mapper/packages/ui/src/components/debug/CanvasMonitor.tsx b/packages/ui/src/components/DataMapper/components/debug/CanvasMonitor.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/debug/CanvasMonitor.tsx rename to packages/ui/src/components/DataMapper/components/debug/CanvasMonitor.tsx diff --git a/data-mapper/packages/ui/src/components/debug/DataMapperMonitor.tsx b/packages/ui/src/components/DataMapper/components/debug/DataMapperMonitor.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/debug/DataMapperMonitor.tsx rename to packages/ui/src/components/DataMapper/components/debug/DataMapperMonitor.tsx diff --git a/data-mapper/packages/ui/src/components/document/Document.scss b/packages/ui/src/components/DataMapper/components/document/Document.scss similarity index 76% rename from data-mapper/packages/ui/src/components/document/Document.scss rename to packages/ui/src/components/DataMapper/components/document/Document.scss index 7e853e7fb..72ce31879 100644 --- a/data-mapper/packages/ui/src/components/document/Document.scss +++ b/packages/ui/src/components/DataMapper/components/document/Document.scss @@ -1,12 +1,6 @@ .node-container { - //border-bottom: 1px solid gray; - //border-left: 1px solid gray; padding: 5px; padding-left: 10px; - - &__document { - - } } .node-header { @@ -15,9 +9,6 @@ padding-left: 10px; display: flex; flex-flow: row; - &__document { - - } } .node-children { @@ -25,9 +16,6 @@ border-left: 1px solid gray; padding: 5px; padding-left: 10px; - &__document { - - } } img { @@ -37,4 +25,3 @@ img { .toggle-icon-collapsed { transform: rotate(-90deg); } - diff --git a/data-mapper/packages/ui/src/components/document/NodeContainer.tsx b/packages/ui/src/components/DataMapper/components/document/NodeContainer.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/NodeContainer.tsx rename to packages/ui/src/components/DataMapper/components/document/NodeContainer.tsx diff --git a/data-mapper/packages/ui/src/components/document/Parameters.test.tsx b/packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/Parameters.test.tsx rename to packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/Parameters.tsx b/packages/ui/src/components/DataMapper/components/document/Parameters.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/Parameters.tsx rename to packages/ui/src/components/DataMapper/components/document/Parameters.tsx diff --git a/data-mapper/packages/ui/src/components/document/SourceDocument.test.tsx b/packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/SourceDocument.test.tsx rename to packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/SourceDocument.tsx b/packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/SourceDocument.tsx rename to packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx diff --git a/data-mapper/packages/ui/src/components/document/TargetDocument.tsx b/packages/ui/src/components/DataMapper/components/document/TargetDocument.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/TargetDocument.tsx rename to packages/ui/src/components/DataMapper/components/document/TargetDocument.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/AttachSchemaButton.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/AttachSchemaButton.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/AttachSchemaButton.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/ConditionMenuAction.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/ConditionMenuAction.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/ConditionMenuAction.tsx b/packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/ConditionMenuAction.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DeleteMappingItemAction.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DeleteMappingItemAction.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DeleteMappingItemAction.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DeleteParameterButton.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DeleteParameterButton.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DeleteParameterButton.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DeleteParameterButton.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DetachSchemaButton.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DetachSchemaButton.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DetachSchemaButton.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DocumentActions.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DocumentActions.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/DocumentActions.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/DocumentActions.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/ExpressionEditorAction.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/ExpressionEditorAction.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx b/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/ExpressionEditorAction.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/ExpressionInputAction.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/ExpressionInputAction.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/ExpressionInputAction.tsx b/packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/ExpressionInputAction.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/TargetNodeActions.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/TargetNodeActions.test.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx diff --git a/data-mapper/packages/ui/src/components/document/actions/TargetNodeActions.tsx b/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/document/actions/TargetNodeActions.tsx rename to packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.tsx diff --git a/data-mapper/packages/ui/src/components/expression/ExpressionEditor.tsx b/packages/ui/src/components/DataMapper/components/expression/ExpressionEditor.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/expression/ExpressionEditor.tsx rename to packages/ui/src/components/DataMapper/components/expression/ExpressionEditor.tsx diff --git a/data-mapper/packages/ui/src/components/expression/FunctionIcon.test.tsx b/packages/ui/src/components/DataMapper/components/expression/FunctionIcon.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/expression/FunctionIcon.test.tsx rename to packages/ui/src/components/DataMapper/components/expression/FunctionIcon.test.tsx diff --git a/data-mapper/packages/ui/src/components/expression/FunctionIcon.tsx b/packages/ui/src/components/DataMapper/components/expression/FunctionIcon.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/expression/FunctionIcon.tsx rename to packages/ui/src/components/DataMapper/components/expression/FunctionIcon.tsx diff --git a/data-mapper/packages/ui/src/components/expression/Transformation.scss b/packages/ui/src/components/DataMapper/components/expression/Transformation.scss similarity index 68% rename from data-mapper/packages/ui/src/components/expression/Transformation.scss rename to packages/ui/src/components/DataMapper/components/expression/Transformation.scss index d4036c865..49714290b 100644 --- a/data-mapper/packages/ui/src/components/expression/Transformation.scss +++ b/packages/ui/src/components/DataMapper/components/expression/Transformation.scss @@ -1,4 +1,4 @@ .function-icon { position: relative; - bottom: -3; -} \ No newline at end of file + bottom: -3px; +} diff --git a/data-mapper/packages/ui/src/components/expression/monaco/XPathEditor.scss b/packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.scss similarity index 95% rename from data-mapper/packages/ui/src/components/expression/monaco/XPathEditor.scss rename to packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.scss index 1826bfdf2..047daa884 100644 --- a/data-mapper/packages/ui/src/components/expression/monaco/XPathEditor.scss +++ b/packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.scss @@ -1,4 +1,4 @@ .xpath-editor { width: 100%; height: 100%; -} \ No newline at end of file +} diff --git a/data-mapper/packages/ui/src/components/expression/monaco/XPathEditor.tsx b/packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/expression/monaco/XPathEditor.tsx rename to packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.tsx diff --git a/data-mapper/packages/ui/src/components/expression/monaco/monaco-options.ts b/packages/ui/src/components/DataMapper/components/expression/monaco/monaco-options.ts similarity index 100% rename from data-mapper/packages/ui/src/components/expression/monaco/monaco-options.ts rename to packages/ui/src/components/DataMapper/components/expression/monaco/monaco-options.ts diff --git a/packages/ui/src/components/DataMapper/components/index.ts b/packages/ui/src/components/DataMapper/components/index.ts new file mode 100644 index 000000000..ed89b593b --- /dev/null +++ b/packages/ui/src/components/DataMapper/components/index.ts @@ -0,0 +1,2 @@ +export * from '../../../pages/DataMapper/DataMapper'; +export * from './Loading'; diff --git a/data-mapper/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/DataMapper/components/toolbar/ExportMappingFileDropdownItem.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/toolbar/ExportMappingFileDropdownItem.tsx rename to packages/ui/src/components/DataMapper/components/toolbar/ExportMappingFileDropdownItem.tsx diff --git a/data-mapper/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/DataMapper/components/toolbar/ImportMappingFileDropdownItem.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/toolbar/ImportMappingFileDropdownItem.tsx rename to packages/ui/src/components/DataMapper/components/toolbar/ImportMappingFileDropdownItem.tsx diff --git a/data-mapper/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx b/packages/ui/src/components/DataMapper/components/toolbar/MainMenuToolbarItem.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/toolbar/MainMenuToolbarItem.tsx rename to packages/ui/src/components/DataMapper/components/toolbar/MainMenuToolbarItem.tsx diff --git a/data-mapper/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx b/packages/ui/src/components/DataMapper/components/toolbar/ToggleDebugToolbarItem.tsx similarity index 100% rename from data-mapper/packages/ui/src/components/toolbar/ToggleDebugToolbarItem.tsx rename to packages/ui/src/components/DataMapper/components/toolbar/ToggleDebugToolbarItem.tsx diff --git a/data-mapper/packages/ui/src/components/toolbar/index.ts b/packages/ui/src/components/DataMapper/components/toolbar/index.ts similarity index 100% rename from data-mapper/packages/ui/src/components/toolbar/index.ts rename to packages/ui/src/components/DataMapper/components/toolbar/index.ts diff --git a/data-mapper/packages/ui/src/hooks/index.ts b/packages/ui/src/components/DataMapper/hooks/index.ts similarity index 100% rename from data-mapper/packages/ui/src/hooks/index.ts rename to packages/ui/src/components/DataMapper/hooks/index.ts diff --git a/data-mapper/packages/ui/src/hooks/useCanvas.tsx b/packages/ui/src/components/DataMapper/hooks/useCanvas.tsx similarity index 100% rename from data-mapper/packages/ui/src/hooks/useCanvas.tsx rename to packages/ui/src/components/DataMapper/hooks/useCanvas.tsx diff --git a/data-mapper/packages/ui/src/hooks/useDataMapper.ts b/packages/ui/src/components/DataMapper/hooks/useDataMapper.ts similarity index 100% rename from data-mapper/packages/ui/src/hooks/useDataMapper.ts rename to packages/ui/src/components/DataMapper/hooks/useDataMapper.ts diff --git a/data-mapper/packages/ui/src/hooks/useToggle.ts b/packages/ui/src/components/DataMapper/hooks/useToggle.ts similarity index 100% rename from data-mapper/packages/ui/src/hooks/useToggle.ts rename to packages/ui/src/components/DataMapper/hooks/useToggle.ts diff --git a/data-mapper/packages/ui/src/layout/ContextToolbar.tsx b/packages/ui/src/components/DataMapper/layout/ContextToolbar.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/ContextToolbar.tsx rename to packages/ui/src/components/DataMapper/layout/ContextToolbar.tsx diff --git a/data-mapper/packages/ui/src/layout/MainCanvas.tsx b/packages/ui/src/components/DataMapper/layout/MainCanvas.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/MainCanvas.tsx rename to packages/ui/src/components/DataMapper/layout/MainCanvas.tsx diff --git a/data-mapper/packages/ui/src/layout/StandaloneLayout.scss b/packages/ui/src/components/DataMapper/layout/StandaloneLayout.scss similarity index 98% rename from data-mapper/packages/ui/src/layout/StandaloneLayout.scss rename to packages/ui/src/components/DataMapper/layout/StandaloneLayout.scss index 297331975..d51b9be14 100644 --- a/data-mapper/packages/ui/src/layout/StandaloneLayout.scss +++ b/packages/ui/src/components/DataMapper/layout/StandaloneLayout.scss @@ -8,4 +8,4 @@ &__drawer-content-body { height: 100%; } -} \ No newline at end of file +} diff --git a/data-mapper/packages/ui/src/layout/StandaloneLayout.test.tsx b/packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/StandaloneLayout.test.tsx rename to packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx diff --git a/data-mapper/packages/ui/src/layout/StandaloneLayout.tsx b/packages/ui/src/components/DataMapper/layout/StandaloneLayout.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/StandaloneLayout.tsx rename to packages/ui/src/components/DataMapper/layout/StandaloneLayout.tsx diff --git a/data-mapper/packages/ui/src/layout/index.ts b/packages/ui/src/components/DataMapper/layout/index.ts similarity index 100% rename from data-mapper/packages/ui/src/layout/index.ts rename to packages/ui/src/components/DataMapper/layout/index.ts diff --git a/data-mapper/packages/ui/src/layout/views/MappingLink.tsx b/packages/ui/src/components/DataMapper/layout/views/MappingLink.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/views/MappingLink.tsx rename to packages/ui/src/components/DataMapper/layout/views/MappingLink.tsx diff --git a/data-mapper/packages/ui/src/layout/views/SourcePanel.tsx b/packages/ui/src/components/DataMapper/layout/views/SourcePanel.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/views/SourcePanel.tsx rename to packages/ui/src/components/DataMapper/layout/views/SourcePanel.tsx diff --git a/data-mapper/packages/ui/src/layout/views/SourceTargetView.scss b/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.scss similarity index 85% rename from data-mapper/packages/ui/src/layout/views/SourceTargetView.scss rename to packages/ui/src/components/DataMapper/layout/views/SourceTargetView.scss index e6749f88e..05f2cb57f 100644 --- a/data-mapper/packages/ui/src/layout/views/SourceTargetView.scss +++ b/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.scss @@ -8,12 +8,13 @@ &__source-panel { height: 100%; } + &__source-panel-main { height: 100%; } &__line-blank { - width: 10% + width: 10%; } &__target-split { @@ -21,6 +22,8 @@ } &__target-panel { + display: flex; + flex-flow: column; height: 100%; } diff --git a/data-mapper/packages/ui/src/layout/views/SourceTargetView.test.tsx b/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/views/SourceTargetView.test.tsx rename to packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx diff --git a/data-mapper/packages/ui/src/layout/views/SourceTargetView.tsx b/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.tsx similarity index 100% rename from data-mapper/packages/ui/src/layout/views/SourceTargetView.tsx rename to packages/ui/src/components/DataMapper/layout/views/SourceTargetView.tsx diff --git a/data-mapper/packages/ui/src/layout/views/index.ts b/packages/ui/src/components/DataMapper/layout/views/index.ts similarity index 100% rename from data-mapper/packages/ui/src/layout/views/index.ts rename to packages/ui/src/components/DataMapper/layout/views/index.ts diff --git a/data-mapper/packages/ui/src/models/document.ts b/packages/ui/src/components/DataMapper/models/document.ts similarity index 100% rename from data-mapper/packages/ui/src/models/document.ts rename to packages/ui/src/components/DataMapper/models/document.ts diff --git a/data-mapper/packages/ui/src/models/mapping.ts b/packages/ui/src/components/DataMapper/models/mapping.ts similarity index 100% rename from data-mapper/packages/ui/src/models/mapping.ts rename to packages/ui/src/components/DataMapper/models/mapping.ts diff --git a/data-mapper/packages/ui/src/models/path.ts b/packages/ui/src/components/DataMapper/models/path.ts similarity index 100% rename from data-mapper/packages/ui/src/models/path.ts rename to packages/ui/src/components/DataMapper/models/path.ts diff --git a/data-mapper/packages/ui/src/models/types.ts b/packages/ui/src/components/DataMapper/models/types.ts similarity index 100% rename from data-mapper/packages/ui/src/models/types.ts rename to packages/ui/src/components/DataMapper/models/types.ts diff --git a/data-mapper/packages/ui/src/models/view.ts b/packages/ui/src/components/DataMapper/models/view.ts similarity index 100% rename from data-mapper/packages/ui/src/models/view.ts rename to packages/ui/src/components/DataMapper/models/view.ts diff --git a/data-mapper/packages/ui/src/models/visualization.test.ts b/packages/ui/src/components/DataMapper/models/visualization.test.ts similarity index 100% rename from data-mapper/packages/ui/src/models/visualization.test.ts rename to packages/ui/src/components/DataMapper/models/visualization.test.ts diff --git a/data-mapper/packages/ui/src/models/visualization.ts b/packages/ui/src/components/DataMapper/models/visualization.ts similarity index 100% rename from data-mapper/packages/ui/src/models/visualization.ts rename to packages/ui/src/components/DataMapper/models/visualization.ts diff --git a/data-mapper/packages/ui/src/providers/CanvasProvider.test.tsx b/packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/providers/CanvasProvider.test.tsx rename to packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx diff --git a/data-mapper/packages/ui/src/providers/CanvasProvider.tsx b/packages/ui/src/components/DataMapper/providers/CanvasProvider.tsx similarity index 100% rename from data-mapper/packages/ui/src/providers/CanvasProvider.tsx rename to packages/ui/src/components/DataMapper/providers/CanvasProvider.tsx diff --git a/data-mapper/packages/ui/src/providers/DataMapperProvider.test.tsx b/packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx similarity index 100% rename from data-mapper/packages/ui/src/providers/DataMapperProvider.test.tsx rename to packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx diff --git a/data-mapper/packages/ui/src/providers/DataMapperProvider.tsx b/packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx similarity index 100% rename from data-mapper/packages/ui/src/providers/DataMapperProvider.tsx rename to packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx diff --git a/data-mapper/packages/ui/src/providers/dnd/DnDHandler.ts b/packages/ui/src/components/DataMapper/providers/dnd/DnDHandler.ts similarity index 100% rename from data-mapper/packages/ui/src/providers/dnd/DnDHandler.ts rename to packages/ui/src/components/DataMapper/providers/dnd/DnDHandler.ts diff --git a/data-mapper/packages/ui/src/providers/dnd/ExpressionEditorDnDHandler.ts b/packages/ui/src/components/DataMapper/providers/dnd/ExpressionEditorDnDHandler.ts similarity index 100% rename from data-mapper/packages/ui/src/providers/dnd/ExpressionEditorDnDHandler.ts rename to packages/ui/src/components/DataMapper/providers/dnd/ExpressionEditorDnDHandler.ts diff --git a/data-mapper/packages/ui/src/providers/dnd/SourceTargetDnDHandler.ts b/packages/ui/src/components/DataMapper/providers/dnd/SourceTargetDnDHandler.ts similarity index 100% rename from data-mapper/packages/ui/src/providers/dnd/SourceTargetDnDHandler.ts rename to packages/ui/src/components/DataMapper/providers/dnd/SourceTargetDnDHandler.ts diff --git a/data-mapper/packages/ui/src/providers/index.ts b/packages/ui/src/components/DataMapper/providers/index.ts similarity index 100% rename from data-mapper/packages/ui/src/providers/index.ts rename to packages/ui/src/components/DataMapper/providers/index.ts diff --git a/data-mapper/packages/ui/src/services/document.service.test.ts b/packages/ui/src/components/DataMapper/services/document.service.test.ts similarity index 100% rename from data-mapper/packages/ui/src/services/document.service.test.ts rename to packages/ui/src/components/DataMapper/services/document.service.test.ts diff --git a/data-mapper/packages/ui/src/services/document.service.ts b/packages/ui/src/components/DataMapper/services/document.service.ts similarity index 100% rename from data-mapper/packages/ui/src/services/document.service.ts rename to packages/ui/src/components/DataMapper/services/document.service.ts diff --git a/data-mapper/packages/ui/src/services/index.ts b/packages/ui/src/components/DataMapper/services/index.ts similarity index 100% rename from data-mapper/packages/ui/src/services/index.ts rename to packages/ui/src/components/DataMapper/services/index.ts diff --git a/data-mapper/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/components/DataMapper/services/mapping-serializer.service.test.ts similarity index 100% rename from data-mapper/packages/ui/src/services/mapping-serializer.service.test.ts rename to packages/ui/src/components/DataMapper/services/mapping-serializer.service.test.ts diff --git a/data-mapper/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/components/DataMapper/services/mapping-serializer.service.ts similarity index 100% rename from data-mapper/packages/ui/src/services/mapping-serializer.service.ts rename to packages/ui/src/components/DataMapper/services/mapping-serializer.service.ts diff --git a/data-mapper/packages/ui/src/services/mapping.service.test.ts b/packages/ui/src/components/DataMapper/services/mapping.service.test.ts similarity index 100% rename from data-mapper/packages/ui/src/services/mapping.service.test.ts rename to packages/ui/src/components/DataMapper/services/mapping.service.test.ts diff --git a/data-mapper/packages/ui/src/services/mapping.service.ts b/packages/ui/src/components/DataMapper/services/mapping.service.ts similarity index 100% rename from data-mapper/packages/ui/src/services/mapping.service.ts rename to packages/ui/src/components/DataMapper/services/mapping.service.ts diff --git a/data-mapper/packages/ui/src/services/visualization.service.test.ts b/packages/ui/src/components/DataMapper/services/visualization.service.test.ts similarity index 100% rename from data-mapper/packages/ui/src/services/visualization.service.test.ts rename to packages/ui/src/components/DataMapper/services/visualization.service.test.ts diff --git a/data-mapper/packages/ui/src/services/visualization.service.ts b/packages/ui/src/components/DataMapper/services/visualization.service.ts similarity index 100% rename from data-mapper/packages/ui/src/services/visualization.service.ts rename to packages/ui/src/components/DataMapper/services/visualization.service.ts diff --git a/data-mapper/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/components/DataMapper/services/xml-schema-document.service.test.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xml-schema-document.service.test.ts rename to packages/ui/src/components/DataMapper/services/xml-schema-document.service.test.ts diff --git a/data-mapper/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/components/DataMapper/services/xml-schema-document.service.ts similarity index 99% rename from data-mapper/packages/ui/src/services/xml-schema-document.service.ts rename to packages/ui/src/components/DataMapper/services/xml-schema-document.service.ts index c56eac102..73eaaa452 100644 --- a/data-mapper/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/components/DataMapper/services/xml-schema-document.service.ts @@ -22,7 +22,7 @@ import { XmlSchemaSequenceMember, XmlSchemaSimpleType, XmlSchemaUse, -} from '@datamapper-poc/xml-schema-ts'; +} from '@kaoto/xml-schema-ts'; import { BaseDocument, BaseField } from '../models/document'; import { Types } from '../models/types'; import { DocumentType } from '../models/path'; diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-boolean.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-boolean.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-context.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-context.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-datetime.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-datetime.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-node.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-node.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-numeric.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-numeric.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-qname.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-qname.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-sequence.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-sequence.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-string.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-string.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions.ts diff --git a/data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-parser.ts b/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-parser.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/2.0/xpath-2.0-parser.ts rename to packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-parser.ts diff --git a/data-mapper/packages/ui/src/services/xpath/monaco-language.ts b/packages/ui/src/components/DataMapper/services/xpath/monaco-language.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/monaco-language.ts rename to packages/ui/src/components/DataMapper/services/xpath/monaco-language.ts diff --git a/data-mapper/packages/ui/src/services/xpath/xpath-parser.ts b/packages/ui/src/components/DataMapper/services/xpath/xpath-parser.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/xpath-parser.ts rename to packages/ui/src/components/DataMapper/services/xpath/xpath-parser.ts diff --git a/data-mapper/packages/ui/src/services/xpath/xpath.service.test.ts b/packages/ui/src/components/DataMapper/services/xpath/xpath.service.test.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/xpath.service.test.ts rename to packages/ui/src/components/DataMapper/services/xpath/xpath.service.test.ts diff --git a/data-mapper/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/components/DataMapper/services/xpath/xpath.service.ts similarity index 100% rename from data-mapper/packages/ui/src/services/xpath/xpath.service.ts rename to packages/ui/src/components/DataMapper/services/xpath/xpath.service.ts diff --git a/data-mapper/packages/ui/src/test/test-util.ts b/packages/ui/src/components/DataMapper/test/test-util.ts similarity index 76% rename from data-mapper/packages/ui/src/test/test-util.ts rename to packages/ui/src/components/DataMapper/test/test-util.ts index 2992f31f8..1824668c9 100644 --- a/data-mapper/packages/ui/src/test/test-util.ts +++ b/packages/ui/src/components/DataMapper/test/test-util.ts @@ -1,13 +1,17 @@ import * as fs from 'fs'; -import { XmlSchemaDocumentService } from '../services'; -import { DocumentType } from '../models/path'; import { IDocument, PrimitiveDocument } from '../models/document'; +import { DocumentType } from '../models/path'; +import { XmlSchemaDocumentService } from '../services'; export class TestUtil { - static orderXsd = fs.readFileSync(__dirname + '/../../../../test-resources/ShipOrder.xsd').toString(); - static testXsd = fs.readFileSync(__dirname + '/../../../../test-resources/TestDocument.xsd').toString(); + static orderXsd = fs + .readFileSync(__dirname + '/../../../../../xml-schema-ts/test-resources/ShipOrder.xsd') + .toString(); + static testXsd = fs + .readFileSync(__dirname + '/../../../../../xml-schema-ts/test-resources/TestDocument.xsd') + .toString(); static shipOrderToShipOrderXslt = fs - .readFileSync(__dirname + '/../../../../test-resources/ShipOrderToShipOrder.xsl') + .readFileSync(__dirname + '/../../../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') .toString(); static createSourceOrderDoc() { diff --git a/data-mapper/packages/ui/src/util/common.test.ts b/packages/ui/src/components/DataMapper/util/common.test.ts similarity index 100% rename from data-mapper/packages/ui/src/util/common.test.ts rename to packages/ui/src/components/DataMapper/util/common.test.ts diff --git a/data-mapper/packages/ui/src/util/common.ts b/packages/ui/src/components/DataMapper/util/common.ts similarity index 100% rename from data-mapper/packages/ui/src/util/common.ts rename to packages/ui/src/components/DataMapper/util/common.ts diff --git a/data-mapper/packages/ui/src/util/index.ts b/packages/ui/src/components/DataMapper/util/index.ts similarity index 100% rename from data-mapper/packages/ui/src/util/index.ts rename to packages/ui/src/components/DataMapper/util/index.ts diff --git a/packages/ui/src/components/registers/RegisterComponents.tsx b/packages/ui/src/components/registers/RegisterComponents.tsx index b0c322204..3f0e9e4a4 100644 --- a/packages/ui/src/components/registers/RegisterComponents.tsx +++ b/packages/ui/src/components/registers/RegisterComponents.tsx @@ -10,7 +10,7 @@ export const RegisterComponents: FunctionComponent = ({ child { anchor: Anchors.CanvasFormHeader, activationFn: datamapperActivationFn, - component: lazy(() => import('../DataMapper/DataMapper')), + component: lazy(() => import('../DataMapper/DataMapperLauncher')), }, ]); diff --git a/data-mapper/packages/ui/src/DataMapper.test.tsx b/packages/ui/src/pages/DataMapper/DataMapper.test.tsx similarity index 80% rename from data-mapper/packages/ui/src/DataMapper.test.tsx rename to packages/ui/src/pages/DataMapper/DataMapper.test.tsx index 4eafb86f6..2353a47bf 100644 --- a/data-mapper/packages/ui/src/DataMapper.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapper.test.tsx @@ -4,7 +4,11 @@ import * as fs from 'fs'; describe('DataMapper', () => { it('should render initial XSLT mappings', () => { - const xsltFile = fs.readFileSync(__dirname + '/../../../test-resources/ShipOrderToShipOrder.xsl').toString(); + console.log(__dirname); + + const xsltFile = fs + .readFileSync(__dirname + '/../../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') + .toString(); render(); // TODO assert mappings are restored even without loading schema }); diff --git a/data-mapper/packages/ui/src/DataMapper.tsx b/packages/ui/src/pages/DataMapper/DataMapper.tsx similarity index 64% rename from data-mapper/packages/ui/src/DataMapper.tsx rename to packages/ui/src/pages/DataMapper/DataMapper.tsx index 8eaf9ea81..df921bcf5 100644 --- a/data-mapper/packages/ui/src/DataMapper.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapper.tsx @@ -13,12 +13,12 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { StandaloneLayout } from './layout'; import { FunctionComponent } from 'react'; +import { StandaloneLayout } from '../../components/DataMapper/layout'; -import { DataMapperProvider } from './providers'; -import { CanvasProvider } from './providers/CanvasProvider'; -import { MainCanvas } from './layout/MainCanvas'; +import { MainCanvas } from '../../components/DataMapper/layout/MainCanvas'; +import { DataMapperProvider } from '../../components/DataMapper/providers'; +import { CanvasProvider } from '../../components/DataMapper/providers/CanvasProvider'; export interface IDataMapperProps { modalsContainerId?: string; @@ -29,10 +29,10 @@ export interface IDataMapperProps { export const DataMapper: FunctionComponent = ({ xsltFile, onUpdate, isEmbedded }) => { return ( - <> - - {isEmbedded ? : } - - + + {isEmbedded ? : } + ); }; + +export default DataMapper; diff --git a/packages/ui/src/pages/DataMapper/index.ts b/packages/ui/src/pages/DataMapper/index.ts new file mode 100644 index 000000000..222b76e07 --- /dev/null +++ b/packages/ui/src/pages/DataMapper/index.ts @@ -0,0 +1 @@ +export * from './router-exports'; diff --git a/packages/ui/src/pages/DataMapper/router-exports.tsx b/packages/ui/src/pages/DataMapper/router-exports.tsx new file mode 100644 index 000000000..bd070eefe --- /dev/null +++ b/packages/ui/src/pages/DataMapper/router-exports.tsx @@ -0,0 +1,3 @@ +import { DataMapper } from './DataMapper'; + +export const element = ; diff --git a/packages/ui/src/router.tsx b/packages/ui/src/router.tsx index 00237a079..7f19eb821 100644 --- a/packages/ui/src/router.tsx +++ b/packages/ui/src/router.tsx @@ -37,6 +37,10 @@ export const router = createHashRouter([ path: Links.Settings, lazy: async () => import('./pages/Settings'), }, + { + path: Links.DataMapper, + lazy: async () => import('./pages/DataMapper'), + }, ], }, ]); diff --git a/packages/ui/src/router/links.models.ts b/packages/ui/src/router/links.models.ts index 369bcb0a4..3a1e7cdcf 100644 --- a/packages/ui/src/router/links.models.ts +++ b/packages/ui/src/router/links.models.ts @@ -1,6 +1,7 @@ export const enum Links { Home = '/', // Flows visualization SourceCode = '/code', // Flows source code + DataMapper = '/datamapper', Beans = '/beans', Rest = '/rest', Metadata = '/metadata', diff --git a/yarn.lock b/yarn.lock index 67721dc9e..21d3c0de6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1589,6 +1589,41 @@ __metadata: languageName: node linkType: hard +"@chevrotain/cst-dts-gen@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/cst-dts-gen@npm:10.5.0" + dependencies: + "@chevrotain/gast": 10.5.0 + "@chevrotain/types": 10.5.0 + lodash: 4.17.21 + checksum: 3ff851d5cbccc509269bb77078dafd7acfcd2e128e7d362718cde728f3fa95f4dd58eb1eea67ecf11453fba70bded97df55c5ba31ed93fb2dec4324663bd2eee + languageName: node + linkType: hard + +"@chevrotain/gast@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/gast@npm:10.5.0" + dependencies: + "@chevrotain/types": 10.5.0 + lodash: 4.17.21 + checksum: 35183e7067bc936db9ecfea7624ee3178634618cf1518ea3470b4ed208fb19454dc3ed990a0de2dab80794251398a857ad17d26cc552eac497a2aa974f76b86d + languageName: node + linkType: hard + +"@chevrotain/types@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/types@npm:10.5.0" + checksum: 72f7b48de1888ab14831108da4b0ab3ef244e1101a4094240382e4983a9e71aae6f8a87e09b819854d1028cee08f97b7d2a81fce935742c55d2bc497b7cad350 + languageName: node + linkType: hard + +"@chevrotain/utils@npm:10.5.0": + version: 10.5.0 + resolution: "@chevrotain/utils@npm:10.5.0" + checksum: f3ae9e0fea2e928a1a4930311d3ef04f45c29fa58ba4d5d2ca43c33355ac47f95ce99a98d6496706e2e7f773ef684a9a7e7cbd7b77c00af9158f08c82d88212b + languageName: node + linkType: hard + "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -1692,6 +1727,42 @@ __metadata: languageName: node linkType: hard +"@dnd-kit/accessibility@npm:^3.1.0": + version: 3.1.0 + resolution: "@dnd-kit/accessibility@npm:3.1.0" + dependencies: + tslib: ^2.0.0 + peerDependencies: + react: ">=16.8.0" + checksum: fcb88c961e2f4c226ab575bc4a13712419884bb0f60761befcaa23bcb6c9939dc2cac6633416f2a07baee9a8830350c6df444039332408cdaaf27cad17c6b64b + languageName: node + linkType: hard + +"@dnd-kit/core@npm:^6.1.0": + version: 6.1.0 + resolution: "@dnd-kit/core@npm:6.1.0" + dependencies: + "@dnd-kit/accessibility": ^3.1.0 + "@dnd-kit/utilities": ^3.2.2 + tslib: ^2.0.0 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 3b8f46d2f4d2723abad4721c7bc4d1df2c4f6f26ce54673243666212cfa6f34f33e3255b53144a847da469dc736c966c19e4c45330f967ce8c01f8f878ec7f5b + languageName: node + linkType: hard + +"@dnd-kit/utilities@npm:^3.2.2": + version: 3.2.2 + resolution: "@dnd-kit/utilities@npm:3.2.2" + dependencies: + tslib: ^2.0.0 + peerDependencies: + react: ">=16.8.0" + checksum: 8a5015c2faa52760ab82a64287b2ac6a3d798867a1bca5ccbc1178560dbd9a1f9f1a21faea80f590ba1a4277c3eb7e7c4d3b4a39f1f32171bf6bc8174b370547 + languageName: node + linkType: hard + "@dual-bundle/import-meta-resolve@npm:^4.1.0": version: 4.1.0 resolution: "@dual-bundle/import-meta-resolve@npm:4.1.0" @@ -2454,8 +2525,10 @@ __metadata: "@babel/preset-env": ^7.21.5 "@babel/preset-react": ^7.18.6 "@babel/preset-typescript": ^7.21.5 + "@dnd-kit/core": ^6.1.0 "@kaoto-next/uniforms-patternfly": ^0.7.1 "@kaoto/camel-catalog": "workspace:*" + "@kaoto/xml-schema-ts": "workspace:*" "@kie-tools-core/editor": 0.32.0 "@kie-tools-core/notifications": 0.32.0 "@patternfly/patternfly": 5.3.1 @@ -2488,6 +2561,7 @@ __metadata: ajv-draft-04: ^1.0.0 ajv-formats: ^3.0.0 babel-jest: ^29.4.2 + chevrotain: 10.5.0 clsx: ^2.1.0 copyfiles: ^2.4.1 eslint: ^8.45.0 @@ -2530,6 +2604,7 @@ __metadata: vite: ^5.4.0 vite-plugin-dts: ^4.0.2 vite-plugin-static-copy: ^1.0.6 + xml-formatter: ^3.6.2 yaml: ^2.3.2 zustand: ^4.3.9 peerDependencies: @@ -2546,7 +2621,7 @@ __metadata: languageName: unknown linkType: soft -"@kaoto/xml-schema-ts@workspace:packages/xml-schema-ts": +"@kaoto/xml-schema-ts@workspace:*, @kaoto/xml-schema-ts@workspace:packages/xml-schema-ts": version: 0.0.0-use.local resolution: "@kaoto/xml-schema-ts@workspace:packages/xml-schema-ts" dependencies: @@ -7006,6 +7081,20 @@ __metadata: languageName: node linkType: hard +"chevrotain@npm:10.5.0": + version: 10.5.0 + resolution: "chevrotain@npm:10.5.0" + dependencies: + "@chevrotain/cst-dts-gen": 10.5.0 + "@chevrotain/gast": 10.5.0 + "@chevrotain/types": 10.5.0 + "@chevrotain/utils": 10.5.0 + lodash: 4.17.21 + regexp-to-ast: 0.5.0 + checksum: b641f149f60979a29eff2434d745e9565a7c89422b601d554bcf8f047f7d8ff776b9a54b1b36085a622e3f1ed7eb4b8721b5a5348d90ae2567ce7594b10f25aa + languageName: node + linkType: hard + "chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": version: 3.6.0 resolution: "chokidar@npm:3.6.0" @@ -12540,7 +12629,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.0.0, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:~4.17.15": +"lodash@npm:4.17.21, lodash@npm:^4.0.0, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:~4.17.15": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -15007,6 +15096,13 @@ __metadata: languageName: node linkType: hard +"regexp-to-ast@npm:0.5.0": + version: 0.5.0 + resolution: "regexp-to-ast@npm:0.5.0" + checksum: 72e32f2a1217bb22398ac30867ddd43e16943b6b569dd4eb472de47494c7a39e34f47ee3e92ad4cbf92308f98997da366fe094a0e58eb6b93eab0ee956fff86d + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" @@ -17833,6 +17929,15 @@ __metadata: languageName: node linkType: hard +"xml-formatter@npm:^3.6.2": + version: 3.6.3 + resolution: "xml-formatter@npm:3.6.3" + dependencies: + xml-parser-xo: ^4.1.2 + checksum: e4c6927d30de9e82f69ea1752d93b9e31e5eb308c2261e039272a04cdf1120a03cf01aea5cbb01c4197a1dee9dc67b04bf91a24acd6a1abe52b4fcb7ac843086 + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" @@ -17840,6 +17945,13 @@ __metadata: languageName: node linkType: hard +"xml-parser-xo@npm:^4.1.2": + version: 4.1.2 + resolution: "xml-parser-xo@npm:4.1.2" + checksum: 732aaeb54e01bf21036a7f711147dceb693a2042b657ffd98166abb4c124946b3e41f2d3e5f3571398cedde7fbd99b346821c4d44d5fed5f86bac506c8a06a2a + languageName: node + linkType: hard + "xmlchars@npm:^2.2.0": version: 2.2.0 resolution: "xmlchars@npm:2.2.0" From 52c4ffd1a8cd0f08caba590d61d853b103119c50 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 30 Aug 2024 16:03:42 -0400 Subject: [PATCH 354/471] feat: Allow importing documents on initialization Fixes: https://github.com/KaotoIO/datamapper-poc/issues/359 --- .../components/document/Parameters.test.tsx | 6 +- .../components/document/Parameters.tsx | 9 +- .../document/SourceDocument.test.tsx | 8 +- .../components/document/SourceDocument.tsx | 5 +- .../components/document/TargetDocument.tsx | 2 +- .../actions/AttachSchemaButton.test.tsx | 6 +- .../document/actions/AttachSchemaButton.tsx | 59 ++----- .../actions/DeleteMappingItemAction.test.tsx | 4 +- .../actions/DeleteParameterButton.test.tsx | 4 +- .../actions/DetachSchemaButton.test.tsx | 16 +- .../document/actions/DetachSchemaButton.tsx | 43 ++--- .../document/actions/DocumentActions.test.tsx | 5 +- .../actions/ExpressionEditorAction.test.tsx | 2 +- .../actions/TargetNodeActions.test.tsx | 8 +- .../layout/StandaloneLayout.test.tsx | 5 +- .../layout/views/SourceTargetView.test.tsx | 4 +- .../components/DataMapper/models/document.ts | 28 ++++ .../providers/CanvasProvider.test.tsx | 11 +- .../providers/DataMapperProvider.test.tsx | 7 +- .../providers/DataMapperProvider.tsx | 149 +++++++++++++++--- .../DataMapper/services/document.service.ts | 68 +++++++- .../src/pages/DataMapper/DataMapper.test.tsx | 72 +++++++-- .../ui/src/pages/DataMapper/DataMapper.tsx | 28 +++- 23 files changed, 383 insertions(+), 166 deletions(-) diff --git a/packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx b/packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx index 1ad5ab93d..5115d5f14 100644 --- a/packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx @@ -5,7 +5,7 @@ import { act, fireEvent, render, screen } from '@testing-library/react'; import { TestUtil } from '../../test/test-util'; describe('Parameters', () => { - it('should add and remove a parameter', () => { + it('should add and remove a parameter', async () => { render( @@ -13,7 +13,7 @@ describe('Parameters', () => { , ); - const addButton = screen.getByTestId('add-parameter-button'); + const addButton = await screen.findByTestId('add-parameter-button'); act(() => { fireEvent.click(addButton); }); @@ -45,7 +45,7 @@ describe('Parameters', () => { , ); - const addButton = screen.getByTestId('add-parameter-button'); + const addButton = await screen.findByTestId('add-parameter-button'); act(() => { fireEvent.click(addButton); }); diff --git a/packages/ui/src/components/DataMapper/components/document/Parameters.tsx b/packages/ui/src/components/DataMapper/components/document/Parameters.tsx index cc7cb06fd..ea527f1b1 100644 --- a/packages/ui/src/components/DataMapper/components/document/Parameters.tsx +++ b/packages/ui/src/components/DataMapper/components/document/Parameters.tsx @@ -94,9 +94,8 @@ const AddNewParameterPlaceholder: FunctionComponent { - const { sourceParameterMap } = useDataMapper(); + const { sourceParameterMap, isSourceParametersExpanded, setSourceParametersExpanded } = useDataMapper(); const { reloadNodeReferences } = useCanvas(); - const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(false); const { state: isAddingNewParameter, toggleOff: toggleOffAddNewParameter, @@ -149,7 +148,11 @@ export const Parameters: FunctionComponent = () => { return ( - + Parameters diff --git a/packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx b/packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx index 9b2a333f2..7c8ef7871 100644 --- a/packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx @@ -7,7 +7,7 @@ import { BODY_DOCUMENT_ID, PrimitiveDocument } from '../../models/document'; import { DocumentType } from '../../models/path'; describe('SourceDocument', () => { - it('should render primitive document', () => { + it('should render primitive document', async () => { const document = new PrimitiveDocument(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID); render( @@ -16,10 +16,10 @@ describe('SourceDocument', () => { , ); - expect(screen.getByText('Body')).toBeTruthy(); + expect(await screen.findByText('Body')).toBeTruthy(); }); - it('should render ShipOrder doc', () => { + it('should render ShipOrder doc', async () => { const document = TestUtil.createSourceOrderDoc(); render( @@ -28,6 +28,6 @@ describe('SourceDocument', () => { , ); - expect(screen.getByText('OrderPerson')).toBeTruthy(); + expect(await screen.findByText('OrderPerson')).toBeTruthy(); }); }); diff --git a/packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx b/packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx index 64a95d24c..885711e99 100644 --- a/packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx +++ b/packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx @@ -60,7 +60,10 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD return ( -
    +
    = ({ nodeData }) return (
    diff --git a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx index 7f4c40d57..cc9fd2b4a 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx @@ -8,7 +8,7 @@ import { CommonUtil } from '../../../util'; import { TestUtil } from '../../../test/test-util'; describe('AttachSchemaButton', () => { - it('should invoke onClick()', () => { + it('should invoke onClick()', async () => { const spyOnClick = jest.spyOn(HTMLInputElement.prototype, 'click'); render( @@ -17,7 +17,7 @@ describe('AttachSchemaButton', () => { , ); - const attachButton = screen.getByTestId('attach-schema-sourceBody-Body-button'); + const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); expect(spyOnClick.mock.calls.length).toEqual(0); fireEvent.click(attachButton); expect(spyOnClick.mock.calls.length).toBeGreaterThan(0); @@ -32,8 +32,8 @@ describe('AttachSchemaButton', () => { , ); + const fileInput = await screen.findByTestId('attach-schema-sourceBody-Body-file-input'); const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); - const fileInput = screen.getByTestId('attach-schema-sourceBody-Body-file-input'); fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); expect(mockOnImport.mock.calls.length).toEqual(1); }); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx index 291d6cc8e..e5ee676d8 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx @@ -17,12 +17,10 @@ import { Button, Tooltip } from '@patternfly/react-core'; import { ChangeEvent, createRef, FunctionComponent, useCallback } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; -import { CommonUtil } from '../../../util'; -import { XmlSchemaDocumentService } from '../../../services'; import { useDataMapper } from '../../../hooks'; -import { MappingService } from '../../../services/mapping.service'; import { DocumentType } from '../../../models/path'; import { useCanvas } from '../../../hooks/useCanvas'; +import { DocumentDefinition, DocumentDefinitionType } from '../../../models/document'; type AttachSchemaProps = { documentType: DocumentType; @@ -35,14 +33,7 @@ export const AttachSchemaButton: FunctionComponent = ({ documentId, hasSchema = false, }) => { - const { - mappingTree, - setMappingTree, - sourceParameterMap, - refreshSourceParameters, - setSourceBodyDocument, - setTargetBodyDocument, - } = useDataMapper(); + const { updateDocumentDefinition } = useDataMapper(); const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const fileInputRef = createRef(); @@ -52,46 +43,20 @@ export const AttachSchemaButton: FunctionComponent = ({ const onImport = useCallback( (event: ChangeEvent) => { - const file = event.target.files?.item(0); - if (!file) return; - CommonUtil.readFileAsString(file).then((content) => { - const document = XmlSchemaDocumentService.createXmlSchemaDocument(documentType, documentId, content); - if (hasSchema) { - const cleaned = MappingService.removeStaleMappingsForDocument(mappingTree, document); - setMappingTree(cleaned); - } else { - const cleaned = MappingService.removeAllMappingsForDocument(mappingTree, documentType, documentId); - setMappingTree(cleaned); - } - switch (documentType) { - case DocumentType.SOURCE_BODY: - setSourceBodyDocument(document); - break; - case DocumentType.TARGET_BODY: - setTargetBodyDocument(document); - break; - case DocumentType.PARAM: - sourceParameterMap.set(documentId, document); - refreshSourceParameters(); - break; - } + const files = event.target.files; + if (!files || files.length === 0) return; + const definition = new DocumentDefinition( + documentType, + DocumentDefinitionType.XML_SCHEMA, + documentId, + Array.from(files), + ); + updateDocumentDefinition(definition).then(() => { clearNodeReferencesForDocument(documentType, documentId); reloadNodeReferences(); }); }, - [ - clearNodeReferencesForDocument, - documentId, - documentType, - hasSchema, - mappingTree, - refreshSourceParameters, - reloadNodeReferences, - setMappingTree, - setSourceBodyDocument, - setTargetBodyDocument, - sourceParameterMap, - ], + [clearNodeReferencesForDocument, documentId, documentType, reloadNodeReferences, updateDocumentDefinition], ); return ( diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx index 208ef4f57..f1cfb1bdc 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx @@ -9,7 +9,7 @@ import { CanvasProvider } from '../../../providers/CanvasProvider'; import { DataMapperProvider } from '../../../providers'; describe('DeleteMappingItemAction', () => { - it('should invoke onDelete()', () => { + it('should invoke onDelete()', async () => { const targetDoc = TestUtil.createTargetOrderDoc(); const mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); const docData = new TargetDocumentNodeData(targetDoc, mappingTree); @@ -22,7 +22,7 @@ describe('DeleteMappingItemAction', () => { , ); - const deleteBtn = screen.getByTestId('delete-mapping-btn'); + const deleteBtn = await screen.findByTestId('delete-mapping-btn'); act(() => { fireEvent.click(deleteBtn); }); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx index 68bb7b9db..f6731f6b8 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx @@ -8,7 +8,7 @@ import { IDocument, PrimitiveDocument } from '../../../models/document'; import { DocumentType } from '../../../models/path'; describe('DeleteParameterButton', () => { - it('should delete a parameter', () => { + it('should delete a parameter', async () => { let parameterMap: Map; const ParamTest: FunctionComponent = ({ children }) => { const { sourceParameterMap } = useDataMapper(); @@ -30,8 +30,8 @@ describe('DeleteParameterButton', () => { , ); + const deleteBtn = await screen.findByTestId('delete-parameter-testparam1-button'); expect(parameterMap!.size).toEqual(1); - const deleteBtn = screen.getByTestId('delete-parameter-testparam1-button'); act(() => { fireEvent.click(deleteBtn); }); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx index d3c0236e9..877495d7e 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx @@ -9,18 +9,21 @@ import { useDataMapper } from '../../../hooks'; import { TestUtil } from '../../../test/test-util'; describe('DetachSchemaButton', () => { - it('should detach the schema', () => { + it('should detach the schema', async () => { let sourceDoc: IDocument; + let setInitialDoc = true; const DetachTest: FunctionComponent = ({ children }) => { const { sourceBodyDocument, setSourceBodyDocument } = useDataMapper(); useEffect(() => { - setSourceBodyDocument(TestUtil.createSourceOrderDoc()); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + if (setInitialDoc) { + setSourceBodyDocument(TestUtil.createSourceOrderDoc()); + setInitialDoc = false; + } + }); useEffect(() => { sourceDoc = sourceBodyDocument; }, [sourceBodyDocument]); - return <>{children}; + return
    {children}
    ; }; render( @@ -31,8 +34,8 @@ describe('DetachSchemaButton', () => { , ); + const detachBtn = await screen.findByTestId('detach-schema-sourceBody-Body-button'); expect(sourceDoc!.fields.length).toBe(1); - const detachBtn = screen.getByTestId('detach-schema-sourceBody-Body-button'); act(() => { fireEvent.click(detachBtn); }); @@ -40,6 +43,7 @@ describe('DetachSchemaButton', () => { act(() => { fireEvent.click(confirmBtn); }); + await screen.findByTestId('detachtest'); expect(sourceDoc!.fields.length).toBe(0); expect(sourceDoc! instanceof PrimitiveDocument); }); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx index 56163440e..635798e53 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx @@ -18,8 +18,7 @@ import { FunctionComponent, useCallback } from 'react'; import { ExportIcon } from '@patternfly/react-icons'; import { useDataMapper, useToggle } from '../../../hooks'; -import { PrimitiveDocument } from '../../../models/document'; -import { MappingService } from '../../../services/mapping.service'; +import { DocumentDefinition, DocumentDefinitionType } from '../../../models/document'; import { DocumentType } from '../../../models/path'; import { useCanvas } from '../../../hooks/useCanvas'; @@ -29,48 +28,24 @@ type DeleteSchemaProps = { }; export const DetachSchemaButton: FunctionComponent = ({ documentType, documentId }) => { - const { - mappingTree, - setMappingTree, - sourceParameterMap, - refreshSourceParameters, - setSourceBodyDocument, - setTargetBodyDocument, - } = useDataMapper(); + const { updateDocumentDefinition } = useDataMapper(); const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const onConfirmDelete = useCallback(() => { - const cleanedMappings = MappingService.removeAllMappingsForDocument(mappingTree, documentType, documentId); - setMappingTree(cleanedMappings); - const primitiveDoc = new PrimitiveDocument(documentType, documentId); - switch (documentType) { - case DocumentType.SOURCE_BODY: - setSourceBodyDocument(primitiveDoc); - break; - case DocumentType.TARGET_BODY: - setTargetBodyDocument(primitiveDoc); - break; - case DocumentType.PARAM: - sourceParameterMap.set(documentId, primitiveDoc); - refreshSourceParameters(); - break; - } - clearNodeReferencesForDocument(documentType, documentId); - reloadNodeReferences(); - closeModal(); + const definition = new DocumentDefinition(documentType, DocumentDefinitionType.Primitive, documentId); + updateDocumentDefinition(definition).then(() => { + clearNodeReferencesForDocument(documentType, documentId); + reloadNodeReferences(); + closeModal(); + }); }, [ - mappingTree, documentType, documentId, - setMappingTree, + updateDocumentDefinition, clearNodeReferencesForDocument, reloadNodeReferences, closeModal, - setSourceBodyDocument, - setTargetBodyDocument, - sourceParameterMap, - refreshSourceParameters, ]); return ( diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx index 728a9f3a1..240e86c68 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx @@ -6,7 +6,7 @@ import { DataMapperProvider } from '../../../providers'; import { CanvasProvider } from '../../../providers/CanvasProvider'; describe('DocumentActions', () => { - it('should render', () => { + it('should render', async () => { const docData = new DocumentNodeData(TestUtil.createSourceOrderDoc()); render( @@ -15,7 +15,6 @@ describe('DocumentActions', () => { , ); - screen.debug(); - expect(screen.getByTestId('attach-schema-sourceBody-ShipOrder.xsd-button')); + expect(await screen.findByTestId('attach-schema-sourceBody-ShipOrder.xsd-button')); }); }); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx index fa0efe770..82c8526df 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx @@ -20,7 +20,7 @@ describe('ExpressionEditorAction', () => { , ); - const editBtn = screen.getByTestId(`edit-expression-button-${docData.id}`); + const editBtn = await screen.findByTestId(`edit-expression-button-${docData.id}`); act(() => { fireEvent.click(editBtn); }); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx b/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx index d69a3e33d..353b81541 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx +++ b/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx @@ -9,15 +9,15 @@ import { DataMapperProvider } from '../../../providers'; import { CanvasProvider } from '../../../providers/CanvasProvider'; describe('TargetNodeActions', () => { - it('should render', () => { + it('should render', async () => { const targetDoc = TestUtil.createTargetOrderDoc(); const tree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); const nodeData = new TargetDocumentNodeData(targetDoc, tree); render(); - expect(screen.getByTestId('transformation-actions-menu-toggle')).toBeTruthy(); + expect(await screen.findByTestId('transformation-actions-menu-toggle')).toBeTruthy(); }); - it('should render expression action', () => { + it('should render expression action', async () => { const targetDoc = TestUtil.createTargetOrderDoc(); const tree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); const docData = new TargetDocumentNodeData(targetDoc, tree); @@ -29,7 +29,7 @@ describe('TargetNodeActions', () => { , ); - expect(screen.getByTestId('transformation-expression-input')).toBeTruthy(); + expect(await screen.findByTestId('transformation-expression-input')).toBeTruthy(); expect(screen.getByTestId(`edit-expression-button-${mappingData.id}`)).toBeTruthy(); }); }); diff --git a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx b/packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx index abd6d1fc9..bfea99a7e 100644 --- a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx +++ b/packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx @@ -38,7 +38,7 @@ describe('MainLayout', () => { , ); - let mainMenuButton = screen.getByTestId('main-menu-button'); + let mainMenuButton = await screen.findByTestId('main-menu-button'); act(() => { fireEvent.click(mainMenuButton); }); @@ -75,7 +75,7 @@ describe('MainLayout', () => { }); describe('debug', () => { - it('should output debug info to console', () => { + it('should output debug info to console', async () => { const TestLoader: FunctionComponent = ({ children }) => { const { setDebug, @@ -115,6 +115,7 @@ describe('MainLayout', () => { , ); + await screen.findByTestId('main-menu-button'); const nodeRefsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Node References: [')); expect(nodeRefsLog.length).toBeGreaterThan(0); const mappingsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Mapping: [')); diff --git a/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx b/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx index 1c82cf0c0..35e3188b2 100644 --- a/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx +++ b/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx @@ -14,7 +14,7 @@ describe('SourceTargetView', () => { , ); - const attachButton = screen.getByTestId('attach-schema-sourceBody-Body-button'); + const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); act(() => { fireEvent.click(attachButton); }); @@ -48,7 +48,7 @@ describe('SourceTargetView', () => { , ); - const attachButton = screen.getByTestId('attach-schema-targetBody-Body-button'); + const attachButton = await screen.findByTestId('attach-schema-targetBody-Body-button'); act(() => { fireEvent.click(attachButton); }); diff --git a/packages/ui/src/components/DataMapper/models/document.ts b/packages/ui/src/components/DataMapper/models/document.ts index 6bfbaf4cc..09513d756 100644 --- a/packages/ui/src/components/DataMapper/models/document.ts +++ b/packages/ui/src/components/DataMapper/models/document.ts @@ -96,3 +96,31 @@ export class BaseField implements IField { namespacePrefix: string | null = null; namespaceURI: string | null = null; } + +export enum DocumentDefinitionType { + Primitive = 'Primitive', + XML_SCHEMA = 'XML Schema', +} + +export class DocumentDefinition { + constructor( + public documentType: DocumentType, + public definitionType: DocumentDefinitionType, + public name?: string, + public definitionFiles?: File[] | string[], + ) {} +} + +export class DocumentInitializationModel { + constructor( + public sourceParameters: Record = {}, + public sourceBody: DocumentDefinition = { + documentType: DocumentType.SOURCE_BODY, + definitionType: DocumentDefinitionType.Primitive, + }, + public targetBody: DocumentDefinition = { + documentType: DocumentType.TARGET_BODY, + definitionType: DocumentDefinitionType.Primitive, + }, + ) {} +} diff --git a/packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx b/packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx index 6acdcd6cd..9fa4f19d4 100644 --- a/packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx +++ b/packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx @@ -30,7 +30,7 @@ describe('CanvasProvider', () => { expect(thrower).toThrow(); }); - it('clearNodeReferencesForPath() should clear for the path', () => { + it('clearNodeReferencesForPath() should clear for the path', async () => { let first = false; let second = false; let beforeNodePaths: string[] = []; @@ -69,11 +69,12 @@ describe('CanvasProvider', () => { , ); + await screen.findAllByText('ShipOrder'); expect(afterNodePaths.length).toBeGreaterThan(10); expect(beforeNodePaths.length).toBeGreaterThan(afterNodePaths.length); }); - it('clearNodeReferencesForDocument() should clear for the Document', () => { + it('clearNodeReferencesForDocument() should clear for the Document', async () => { let first = false; let second = false; let beforeNodePaths: string[] = []; @@ -112,11 +113,12 @@ describe('CanvasProvider', () => { , ); + await screen.findAllByText('ShipOrder'); expect(afterNodePaths.length).toBeGreaterThan(10); expect(beforeNodePaths.length).toBeGreaterThan(afterNodePaths.length); }); - it('should render Documents and mappings', () => { + it('should render Documents and mappings', async () => { let mappingLinks: IMappingLink[] = []; const LoadMappings: FunctionComponent = ({ children }) => { const { @@ -157,7 +159,8 @@ describe('CanvasProvider', () => { , ); - const targetNodes = screen.getAllByTestId(/target-node-.*/); + await screen.findAllByText('ShipOrder'); + const targetNodes = screen.getAllByTestId(/node-target-.*/); expect(targetNodes.length).toBeGreaterThan(10); expect(mappingLinks.length).toBeGreaterThan(10); }); diff --git a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx b/packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx index 42b0883a2..a76bc8f00 100644 --- a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx +++ b/packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx @@ -1,5 +1,5 @@ import { DataMapperProvider } from './DataMapperProvider'; -import { render } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; import { useDataMapper } from '../hooks'; import { FieldItem, MappingTree } from '../models/mapping'; import { useEffect } from 'react'; @@ -10,7 +10,7 @@ describe('DataMapperProvider', () => { render(); }); - it('refreshMappingTree should re-create the MappingTree instance', () => { + it('refreshMappingTree should re-create the MappingTree instance', async () => { let prevTree: MappingTree; let nextTree: MappingTree; let done = false; @@ -26,13 +26,14 @@ describe('DataMapperProvider', () => { done = true; } }, [mappingTree, refreshMappingTree]); - return
    ; + return
    ; }; render( , ); + await screen.findByTestId('testdiv'); expect(prevTree!).toBeDefined(); expect(nextTree!).toBeDefined(); expect(prevTree! !== nextTree!).toBeTruthy(); diff --git a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx b/packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx index cc7540ab6..fd6ce3ad6 100644 --- a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx +++ b/packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx @@ -13,17 +13,24 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { createContext, FunctionComponent, PropsWithChildren, useCallback, useMemo, useState } from 'react'; +import { createContext, FunctionComponent, PropsWithChildren, useCallback, useEffect, useMemo, useState } from 'react'; import { Loading } from '../components/Loading'; import { MappingTree } from '../models/mapping'; -import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../models/document'; +import { + BODY_DOCUMENT_ID, + DocumentDefinition, + DocumentInitializationModel, + IDocument, + PrimitiveDocument, +} from '../models/document'; import { CanvasView } from '../models/view'; import { DocumentType } from '../models/path'; import { MappingSerializerService } from '../services/mapping-serializer.service'; +import { MappingService } from '../services/mapping.service'; +import { DocumentService } from '../services/document.service'; export interface IDataMapperContext { - loading: boolean; activeView: CanvasView; setActiveView(view: CanvasView): void; @@ -33,6 +40,10 @@ export interface IDataMapperContext { setSourceBodyDocument: (doc: IDocument) => void; targetBodyDocument: IDocument; setTargetBodyDocument: (doc: IDocument) => void; + updateDocumentDefinition: (definition: DocumentDefinition) => Promise; + + isSourceParametersExpanded: boolean; + setSourceParametersExpanded: (expanded: boolean) => void; mappingTree: MappingTree; refreshMappingTree(): void; @@ -45,30 +56,63 @@ export interface IDataMapperContext { export const DataMapperContext = createContext(null); type DataMapperProviderProps = PropsWithChildren & { - xsltFile?: string; - onUpdate?: (xsltFile: string) => void; + documentInitializationModel?: DocumentInitializationModel; + onUpdateDocument?: (definition: DocumentDefinition) => void; + initialXsltFile?: string; + onUpdateMappings?: (xsltFile: string) => void; }; -export const DataMapperProvider: FunctionComponent = ({ xsltFile, onUpdate, children }) => { - const [loading, _setLoading] = useState(false); +export const DataMapperProvider: FunctionComponent = ({ + documentInitializationModel, + onUpdateDocument, + initialXsltFile, + onUpdateMappings, + children, +}) => { + const [debug, setDebug] = useState(false); const [activeView, setActiveView] = useState(CanvasView.SOURCE_TARGET); + + const [initializingDocument, setInitializingDocument] = useState(true); const [sourceParameterMap, setSourceParameterMap] = useState>(new Map()); + const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(false); const [sourceBodyDocument, setSourceBodyDocument] = useState( new PrimitiveDocument(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID), ); const [targetBodyDocument, setTargetBodyDocument] = useState( new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), ); - const [mappingTree, setMappingTree] = useState( - new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), - ); - xsltFile && MappingSerializerService.deserialize(xsltFile, targetBodyDocument, mappingTree, sourceParameterMap); - const [debug, setDebug] = useState(false); + + useEffect(() => { + setInitializingDocument(true); + DocumentService.createInitialDocuments(documentInitializationModel) + .then((documents) => { + if (!documents) return; + documents.sourceBodyDocument && setSourceBodyDocument(documents.sourceBodyDocument); + setSourceParameterMap(documents.sourceParameterMap); + documents.targetBodyDocument && setTargetBodyDocument(documents.targetBodyDocument); + }) + .finally(() => { + setInitializingDocument(false); + }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); const refreshSourceParameters = useCallback(() => { setSourceParameterMap(new Map(sourceParameterMap)); }, [sourceParameterMap]); + const [initializingMapping, setInitializingMapping] = useState(!!initialXsltFile); + const [mappingTree, setMappingTree] = useState( + new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), + ); + useEffect(() => { + if (initialXsltFile && !initializingDocument && initializingMapping) { + MappingSerializerService.deserialize(initialXsltFile, targetBodyDocument!, mappingTree, sourceParameterMap!); + setInitializingMapping(false); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [initializingDocument, initializingMapping]); + const refreshMappingTree = useCallback(() => { const newMapping = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); newMapping.children = mappingTree.children.map((child) => { @@ -77,20 +121,79 @@ export const DataMapperProvider: FunctionComponent = ({ }); newMapping.namespaceMap = mappingTree.namespaceMap; setMappingTree(newMapping); - onUpdate && onUpdate(MappingSerializerService.serialize(mappingTree, sourceParameterMap)); - }, [mappingTree, onUpdate, sourceParameterMap]); + onUpdateMappings && onUpdateMappings(MappingSerializerService.serialize(mappingTree, sourceParameterMap!)); + }, [mappingTree, onUpdateMappings, sourceParameterMap]); + + const removeStaleMappings = useCallback( + (documentType: DocumentType, documentId: string, newDocument: IDocument) => { + let isFromPrimitive: boolean; + switch (documentType) { + case DocumentType.SOURCE_BODY: + isFromPrimitive = sourceBodyDocument instanceof PrimitiveDocument; + break; + case DocumentType.TARGET_BODY: + isFromPrimitive = targetBodyDocument instanceof PrimitiveDocument; + break; + case DocumentType.PARAM: + isFromPrimitive = sourceParameterMap!.get(documentId) instanceof PrimitiveDocument; + } + const isToPrimitive = newDocument instanceof PrimitiveDocument; + const cleaned = + isFromPrimitive || isToPrimitive + ? MappingService.removeAllMappingsForDocument(mappingTree, documentType, documentId) + : MappingService.removeStaleMappingsForDocument(mappingTree, newDocument); + setMappingTree(cleaned); + }, + [mappingTree, sourceBodyDocument, sourceParameterMap, targetBodyDocument], + ); + + const setNewDocument = useCallback( + (documentType: DocumentType, documentId: string, newDocument: IDocument) => { + switch (documentType) { + case DocumentType.SOURCE_BODY: + setSourceBodyDocument(newDocument); + break; + case DocumentType.TARGET_BODY: + setTargetBodyDocument(newDocument); + break; + case DocumentType.PARAM: + sourceParameterMap!.set(documentId, newDocument); + refreshSourceParameters(); + break; + } + }, + [refreshSourceParameters, sourceParameterMap], + ); + + const [updatingDocument, setUpdatingDocument] = useState(false); + const updateDocumentDefinition = useCallback( + (definition: DocumentDefinition) => { + setUpdatingDocument(true); + return DocumentService.createDocument(definition) + .then((document) => { + if (!document) return; + removeStaleMappings(document.documentType, document.documentId, document); + setNewDocument(document.documentType, document.documentId, document); + onUpdateDocument && onUpdateDocument(definition); + }) + .finally(() => setUpdatingDocument(false)); + }, + [onUpdateDocument, removeStaleMappings, setNewDocument], + ); const value = useMemo(() => { return { - loading, activeView, setActiveView, sourceParameterMap, + isSourceParametersExpanded, + setSourceParametersExpanded, refreshSourceParameters, sourceBodyDocument, setSourceBodyDocument, targetBodyDocument, setTargetBodyDocument, + updateDocumentDefinition, mappingTree, refreshMappingTree, setMappingTree, @@ -99,20 +202,20 @@ export const DataMapperProvider: FunctionComponent = ({ }; }, [ activeView, - refreshSourceParameters, - loading, - mappingTree, - refreshMappingTree, sourceParameterMap, + isSourceParametersExpanded, + refreshSourceParameters, sourceBodyDocument, - setSourceBodyDocument, targetBodyDocument, - setTargetBodyDocument, + updateDocumentDefinition, + mappingTree, + refreshMappingTree, debug, - setDebug, ]); return ( - {value.loading ? : children} + + {initializingDocument || initializingMapping || updatingDocument ? : children} + ); }; diff --git a/packages/ui/src/components/DataMapper/services/document.service.ts b/packages/ui/src/components/DataMapper/services/document.service.ts index 48e0f8715..d9019a6cd 100644 --- a/packages/ui/src/components/DataMapper/services/document.service.ts +++ b/packages/ui/src/components/DataMapper/services/document.service.ts @@ -1,6 +1,72 @@ -import { IDocument, IField, PrimitiveDocument } from '../models/document'; +import { + BODY_DOCUMENT_ID, + DocumentDefinition, + DocumentDefinitionType, + DocumentInitializationModel, + IDocument, + IField, + PrimitiveDocument, +} from '../models/document'; +import { DocumentType } from '../models/path'; +import { CommonUtil } from '../util'; +import { XmlSchemaDocumentService } from './xml-schema-document.service'; + +interface InitialDocumentsSet { + sourceBodyDocument?: IDocument; + sourceParameterMap: Map; + targetBodyDocument?: IDocument; +} export class DocumentService { + static createDocument(definition: DocumentDefinition): Promise { + if (definition.definitionType === DocumentDefinitionType.Primitive) { + return Promise.resolve( + new PrimitiveDocument(definition.documentType, DocumentType.PARAM ? definition.name! : BODY_DOCUMENT_ID), + ); + } + if (!definition.definitionFiles || definition.definitionFiles.length === 0) return Promise.resolve(null); + return Promise.allSettled( + definition.definitionFiles.map((file) => + typeof file === 'string' ? Promise.resolve(file) : CommonUtil.readFileAsString(file), + ), + ).then((results) => { + const content = (results[0] as PromiseFulfilledResult).value; + const documentId = definition.documentType === DocumentType.PARAM ? definition.name! : BODY_DOCUMENT_ID; + return XmlSchemaDocumentService.createXmlSchemaDocument(definition.documentType, documentId, content); + }); + } + + static createInitialDocuments(initModel?: DocumentInitializationModel): Promise { + if (!initModel) return Promise.resolve(null); + const answer: InitialDocumentsSet = { + sourceParameterMap: new Map(), + }; + const promises: Promise[] = []; + if (initModel.sourceBody) { + const sourceBodyPromise = DocumentService.createDocument(initModel.sourceBody).then((document) => { + if (document) answer.sourceBodyDocument = document; + }); + promises.push(sourceBodyPromise); + } + if (initModel.sourceParameters) { + Object.entries(initModel.sourceParameters).map(([key, value]) => { + const paramPromise = DocumentService.createDocument(value).then((document) => { + answer.sourceParameterMap.set(key, document ? document : new PrimitiveDocument(DocumentType.PARAM, key)); + }); + promises.push(paramPromise); + }); + } + if (initModel.targetBody) { + const targetBodyPromise = DocumentService.createDocument(initModel.targetBody).then((document) => { + if (document) answer.targetBodyDocument = document; + }); + promises.push(targetBodyPromise); + } + return Promise.allSettled(promises).then(() => { + return answer; + }); + } + static getFieldStack(field: IField, includeItself: boolean = false) { if (field instanceof PrimitiveDocument) return []; const fieldStack: IField[] = []; diff --git a/packages/ui/src/pages/DataMapper/DataMapper.test.tsx b/packages/ui/src/pages/DataMapper/DataMapper.test.tsx index 2353a47bf..d1da70da4 100644 --- a/packages/ui/src/pages/DataMapper/DataMapper.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapper.test.tsx @@ -1,25 +1,75 @@ import { DataMapper } from './DataMapper'; -import { render, screen } from '@testing-library/react'; -import * as fs from 'fs'; +import { act, fireEvent, render, screen } from '@testing-library/react'; +import { TestUtil } from '../../components/DataMapper/test/test-util'; +import { + BODY_DOCUMENT_ID, + DocumentDefinition, + DocumentDefinitionType, + DocumentInitializationModel, +} from '../../components/DataMapper/models/document'; +import { DocumentType } from '../../components/DataMapper/models/path'; describe('DataMapper', () => { it('should render initial XSLT mappings', () => { console.log(__dirname); - const xsltFile = fs - .readFileSync(__dirname + '/../../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') - .toString(); - render(); - // TODO assert mappings are restored even without loading schema + render(); + // TODO assert mappings are restored even without loading schema... But how? Lines are not drawn... }); - it('should render toolbar menu in standalone mode', () => { + it('should render initial XSLT mappings with initial documents', async () => { + const documentInitializationModel = new DocumentInitializationModel(); + documentInitializationModel.sourceBody = new DocumentDefinition( + DocumentType.SOURCE_BODY, + DocumentDefinitionType.XML_SCHEMA, + BODY_DOCUMENT_ID, + [TestUtil.orderXsd], + ); + documentInitializationModel.targetBody = new DocumentDefinition( + DocumentType.TARGET_BODY, + DocumentDefinitionType.XML_SCHEMA, + BODY_DOCUMENT_ID, + [TestUtil.orderXsd], + ); + documentInitializationModel.sourceParameters['testparam1'] = new DocumentDefinition( + DocumentType.PARAM, + DocumentDefinitionType.Primitive, + 'testparam1', + ); + const onUpdateMappings = jest.fn(); + const onUpdateDocument = jest.fn(); + render( + , + ); + const parametersHeader = await screen.findByTestId('card-source-parameters-header'); + act(() => { + fireEvent.click(parametersHeader.getElementsByTagName('button')[0]); + }); + expect(screen.getByTestId('node-source-doc-param-testparam1')).toBeInTheDocument(); + expect(screen.getByTestId('node-source-doc-sourceBody-Body')).toBeInTheDocument(); + expect(screen.getByTestId('node-target-doc-targetBody-Body')).toBeInTheDocument(); + expect(screen.getByTestId(/node-source-field-OrderId-\n*/)).toBeInTheDocument(); + expect(screen.getByTestId(/node-target-field-OrderId-\n*/)).toBeInTheDocument(); + // TODO assert mappings are restored even without loading schema... But how? Lines are not drawn... + }); + + it('should render toolbar menu in standalone mode', async () => { render(); - expect(screen.getByTestId('main-menu-button')).toBeInTheDocument(); + expect(await screen.findByTestId('main-menu-button')).toBeInTheDocument(); }); - it('should not render toolbar menu in embedded mode', () => { + it('should not render toolbar menu in embedded mode', async () => { render(); - expect(screen.queryByTestId('main-menu-button')).toBeFalsy(); + try { + await screen.findByTestId('main-menu-button'); + fail(); + } catch (e) { + expect(e).toBeTruthy(); + } }); }); diff --git a/packages/ui/src/pages/DataMapper/DataMapper.tsx b/packages/ui/src/pages/DataMapper/DataMapper.tsx index df921bcf5..b715a8f09 100644 --- a/packages/ui/src/pages/DataMapper/DataMapper.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapper.tsx @@ -19,19 +19,35 @@ import { StandaloneLayout } from '../../components/DataMapper/layout'; import { MainCanvas } from '../../components/DataMapper/layout/MainCanvas'; import { DataMapperProvider } from '../../components/DataMapper/providers'; import { CanvasProvider } from '../../components/DataMapper/providers/CanvasProvider'; +import { DocumentDefinition, DocumentInitializationModel } from '../../components/DataMapper/models/document'; export interface IDataMapperProps { modalsContainerId?: string; - xsltFile?: string; - onUpdate?: (xsltFile: string) => void; + documentInitializationModel?: DocumentInitializationModel; + onUpdateDocument?: (definition: DocumentDefinition) => void; + initialXsltFile?: string; + onUpdateMappings?: (xsltFile: string) => void; isEmbedded?: boolean; } -export const DataMapper: FunctionComponent = ({ xsltFile, onUpdate, isEmbedded }) => { +export const DataMapper: FunctionComponent = ({ + documentInitializationModel, + onUpdateDocument, + initialXsltFile, + onUpdateMappings, + isEmbedded, +}) => { return ( - - {isEmbedded ? : } - + <> + + {isEmbedded ? : } + + ); }; From 0c9eeff68dc9576e3a2191d64c9646349492df94 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 4 Sep 2024 16:19:18 -0400 Subject: [PATCH 355/471] fix(DataMapper): Merge datamapper files into kaoto directory structure Fixes: https://github.com/igarashitm/kaoto-private/issues/11 --- .../datamapper/DataMapperDebugger.stories.tsx | 18 ++++ .../{layout/MainCanvas.tsx => DataMapper.tsx} | 8 +- .../DataMapper/components/Loading.tsx | 23 ----- .../components/DataMapper/components/index.ts | 2 - .../DataMapper/components/toolbar/index.ts | 2 - .../{components => }/debug/CanvasMonitor.tsx | 4 +- .../{layout => debug}/ContextToolbar.tsx | 4 +- .../debug/DataMapperDebugger.test.tsx | 8 ++ .../DataMapper/debug/DataMapperDebugger.tsx | 25 ++++++ .../debug/DataMapperMonitor.tsx | 4 +- .../DebugLayout.scss} | 2 +- .../DebugLayout.test.tsx} | 83 ++++++++++++++----- .../DebugLayout.tsx} | 28 +++---- .../ExportMappingFileDropdownItem.tsx | 4 +- .../ImportMappingFileDropdownItem.tsx | 8 +- .../toolbar => debug}/MainMenuToolbarItem.tsx | 2 +- .../src/components/DataMapper/debug/README.md | 7 ++ .../ToggleDebugToolbarItem.tsx | 2 +- .../components/DataMapper/debug/index.html | 16 ++++ .../src/components/DataMapper/debug/index.ts | 1 + .../src/components/DataMapper/debug/main.tsx | 15 ++++ .../src/components/DataMapper/hooks/index.ts | 2 - .../src/components/DataMapper/layout/index.ts | 1 - .../DataMapper/layout/views/index.ts | 1 - .../components/DataMapper/providers/index.ts | 1 - .../components/DataMapper/services/index.ts | 1 - .../components/DataMapper/test/test-util.ts | 47 ----------- .../components/DataMapper/util/common.test.ts | 19 ----- .../src/components/DataMapper/util/common.ts | 17 ---- .../src/components/DataMapper/util/index.ts | 1 - .../document => Document}/Document.scss | 0 .../document => Document}/NodeContainer.tsx | 2 +- .../document => Document}/Parameters.test.tsx | 16 ++-- .../document => Document}/Parameters.tsx | 9 +- .../SourceDocument.test.tsx | 18 ++-- .../document => Document}/SourceDocument.tsx | 6 +- .../document => Document}/TargetDocument.tsx | 8 +- .../actions/AttachSchemaButton.test.tsx | 34 +++++--- .../actions/AttachSchemaButton.tsx | 6 +- .../actions/ConditionMenuAction.test.tsx | 10 +-- .../actions/ConditionMenuAction.tsx | 4 +- .../actions/DeleteMappingItemAction.test.tsx | 18 ++-- .../actions/DeleteMappingItemAction.tsx | 6 +- .../actions/DeleteParameterButton.test.tsx | 14 ++-- .../actions/DeleteParameterButton.tsx | 5 +- .../actions/DetachSchemaButton.test.tsx | 17 ++-- .../actions/DetachSchemaButton.tsx | 7 +- .../actions/DocumentActions.test.tsx | 12 +-- .../actions/DocumentActions.tsx | 4 +- .../actions/ExpressionEditorAction.test.tsx | 18 ++-- .../actions/ExpressionEditorAction.tsx | 6 +- .../actions/ExpressionInputAction.test.tsx | 6 +- .../actions/ExpressionInputAction.tsx | 2 +- .../actions/TargetNodeActions.test.tsx | 18 ++-- .../actions/TargetNodeActions.tsx | 2 +- .../ExpressionEditor.tsx | 8 +- .../FunctionIcon.test.tsx | 0 .../FunctionIcon.tsx | 0 .../Transformation.scss | 0 .../monaco => Expression}/XPathEditor.scss | 0 .../monaco => Expression}/XPathEditor.tsx | 2 +- .../monaco => Expression}/monaco-options.ts | 4 +- .../layout/views => View}/MappingLink.tsx | 4 +- .../layout/views => View}/SourcePanel.tsx | 6 +- .../views => View}/SourceTargetView.scss | 0 .../views => View}/SourceTargetView.test.tsx | 19 +++-- .../views => View}/SourceTargetView.tsx | 4 +- .../DataMapper => }/hooks/useCanvas.tsx | 2 +- .../DataMapper => }/hooks/useDataMapper.ts | 2 +- .../DataMapper => }/hooks/useToggle.ts | 0 .../models => models/datamapper}/document.ts | 4 +- packages/ui/src/models/datamapper/index.ts | 6 ++ .../models => models/datamapper}/mapping.ts | 4 +- .../models => models/datamapper}/path.ts | 0 .../models => models/datamapper}/types.ts | 0 .../models => models/datamapper}/view.ts | 0 .../datamapper}/visualization.test.ts | 0 .../datamapper}/visualization.ts | 0 ...apper.test.tsx => DataMapperPage.test.tsx} | 27 +++--- .../{DataMapper.tsx => DataMapperPage.tsx} | 19 ++--- .../src/pages/DataMapper/router-exports.tsx | 4 +- .../datamapper-canvas.provider.test.tsx} | 77 +++-------------- .../datamapper-canvas.provider.tsx} | 8 +- .../datamapper.provider.tsx} | 8 +- .../datamapper.rovider.test.tsx} | 8 +- .../providers/dnd/DnDHandler.ts | 2 +- .../dnd/ExpressionEditorDnDHandler.ts | 0 .../providers/dnd/SourceTargetDnDHandler.ts | 4 +- .../services/document.service.test.ts | 3 +- .../services/document.service.ts | 8 +- .../mapping-serializer.service.test.ts | 15 ++-- .../services/mapping-serializer.service.ts | 6 +- .../services/mapping.service.test.ts | 10 +-- .../services/mapping.service.ts | 8 +- .../services/visualization.service.test.ts | 10 +-- .../services/visualization.service.ts | 6 +- .../xml-schema-document.service.test.ts | 15 ++-- .../services/xml-schema-document.service.ts | 6 +- .../xpath/2.0/xpath-2.0-functions-boolean.ts | 4 +- .../xpath/2.0/xpath-2.0-functions-context.ts | 4 +- .../xpath/2.0/xpath-2.0-functions-datetime.ts | 4 +- .../xpath/2.0/xpath-2.0-functions-node.ts | 4 +- .../xpath/2.0/xpath-2.0-functions-numeric.ts | 2 +- .../xpath/2.0/xpath-2.0-functions-qname.ts | 4 +- .../xpath/2.0/xpath-2.0-functions-sequence.ts | 4 +- .../xpath/2.0/xpath-2.0-functions-string.ts | 4 +- .../services/xpath/2.0/xpath-2.0-functions.ts | 2 +- .../services/xpath/2.0/xpath-2.0-parser.ts | 0 .../services/xpath/monaco-language.ts | 0 .../services/xpath/xpath-parser.ts | 0 .../services/xpath/xpath.service.test.ts | 2 +- .../services/xpath/xpath.service.ts | 6 +- packages/ui/src/stubs/data-mapper.ts | 39 +++++++++ packages/ui/src/testing-api.ts | 2 + .../ui/src/utils/generate-random-id.test.ts | 9 ++ packages/ui/src/utils/generate-random-id.ts | 5 ++ .../ui/src/utils/read-file-as-string.test.ts | 11 +++ packages/ui/src/utils/read-file-as-string.ts | 9 ++ 118 files changed, 539 insertions(+), 489 deletions(-) create mode 100644 packages/ui-tests/stories/datamapper/DataMapperDebugger.stories.tsx rename packages/ui/src/components/DataMapper/{layout/MainCanvas.tsx => DataMapper.tsx} (61%) delete mode 100644 packages/ui/src/components/DataMapper/components/Loading.tsx delete mode 100644 packages/ui/src/components/DataMapper/components/index.ts delete mode 100644 packages/ui/src/components/DataMapper/components/toolbar/index.ts rename packages/ui/src/components/DataMapper/{components => }/debug/CanvasMonitor.tsx (92%) rename packages/ui/src/components/DataMapper/{layout => debug}/ContextToolbar.tsx (88%) create mode 100644 packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx create mode 100644 packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx rename packages/ui/src/components/DataMapper/{components => }/debug/DataMapperMonitor.tsx (78%) rename packages/ui/src/components/DataMapper/{layout/StandaloneLayout.scss => debug/DebugLayout.scss} (84%) rename packages/ui/src/components/DataMapper/{layout/StandaloneLayout.test.tsx => debug/DebugLayout.test.tsx} (58%) rename packages/ui/src/components/DataMapper/{layout/StandaloneLayout.tsx => debug/DebugLayout.tsx} (65%) rename packages/ui/src/components/DataMapper/{components/toolbar => debug}/ExportMappingFileDropdownItem.tsx (94%) rename packages/ui/src/components/DataMapper/{components/toolbar => debug}/ImportMappingFileDropdownItem.tsx (84%) rename packages/ui/src/components/DataMapper/{components/toolbar => debug}/MainMenuToolbarItem.tsx (95%) create mode 100644 packages/ui/src/components/DataMapper/debug/README.md rename packages/ui/src/components/DataMapper/{components/toolbar => debug}/ToggleDebugToolbarItem.tsx (91%) create mode 100644 packages/ui/src/components/DataMapper/debug/index.html create mode 100644 packages/ui/src/components/DataMapper/debug/index.ts create mode 100644 packages/ui/src/components/DataMapper/debug/main.tsx delete mode 100644 packages/ui/src/components/DataMapper/hooks/index.ts delete mode 100644 packages/ui/src/components/DataMapper/layout/index.ts delete mode 100644 packages/ui/src/components/DataMapper/layout/views/index.ts delete mode 100644 packages/ui/src/components/DataMapper/providers/index.ts delete mode 100644 packages/ui/src/components/DataMapper/services/index.ts delete mode 100644 packages/ui/src/components/DataMapper/test/test-util.ts delete mode 100644 packages/ui/src/components/DataMapper/util/common.test.ts delete mode 100644 packages/ui/src/components/DataMapper/util/common.ts delete mode 100644 packages/ui/src/components/DataMapper/util/index.ts rename packages/ui/src/components/{DataMapper/components/document => Document}/Document.scss (100%) rename packages/ui/src/components/{DataMapper/components/document => Document}/NodeContainer.tsx (96%) rename packages/ui/src/components/{DataMapper/components/document => Document}/Parameters.test.tsx (84%) rename packages/ui/src/components/{DataMapper/components/document => Document}/Parameters.tsx (94%) rename packages/ui/src/components/{DataMapper/components/document => Document}/SourceDocument.test.tsx (65%) rename packages/ui/src/components/{DataMapper/components/document => Document}/SourceDocument.tsx (95%) rename packages/ui/src/components/{DataMapper/components/document => Document}/TargetDocument.tsx (94%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/AttachSchemaButton.test.tsx (53%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/AttachSchemaButton.tsx (94%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/ConditionMenuAction.test.tsx (95%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/ConditionMenuAction.tsx (97%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DeleteMappingItemAction.test.tsx (71%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DeleteMappingItemAction.tsx (91%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DeleteParameterButton.test.tsx (75%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DeleteParameterButton.tsx (93%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DetachSchemaButton.test.tsx (77%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DetachSchemaButton.tsx (93%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DocumentActions.test.tsx (56%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/DocumentActions.tsx (90%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/ExpressionEditorAction.test.tsx (59%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/ExpressionEditorAction.tsx (89%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/ExpressionInputAction.test.tsx (78%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/ExpressionInputAction.tsx (93%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/TargetNodeActions.test.tsx (70%) rename packages/ui/src/components/{DataMapper/components/document => Document}/actions/TargetNodeActions.tsx (95%) rename packages/ui/src/components/{DataMapper/components/expression => Expression}/ExpressionEditor.tsx (93%) rename packages/ui/src/components/{DataMapper/components/expression => Expression}/FunctionIcon.test.tsx (100%) rename packages/ui/src/components/{DataMapper/components/expression => Expression}/FunctionIcon.tsx (100%) rename packages/ui/src/components/{DataMapper/components/expression => Expression}/Transformation.scss (100%) rename packages/ui/src/components/{DataMapper/components/expression/monaco => Expression}/XPathEditor.scss (100%) rename packages/ui/src/components/{DataMapper/components/expression/monaco => Expression}/XPathEditor.tsx (96%) rename packages/ui/src/components/{DataMapper/components/expression/monaco => Expression}/monaco-options.ts (96%) rename packages/ui/src/components/{DataMapper/layout/views => View}/MappingLink.tsx (97%) rename packages/ui/src/components/{DataMapper/layout/views => View}/SourcePanel.tsx (85%) rename packages/ui/src/components/{DataMapper/layout/views => View}/SourceTargetView.scss (100%) rename packages/ui/src/components/{DataMapper/layout/views => View}/SourceTargetView.test.tsx (81%) rename packages/ui/src/components/{DataMapper/layout/views => View}/SourceTargetView.tsx (93%) rename packages/ui/src/{components/DataMapper => }/hooks/useCanvas.tsx (74%) rename packages/ui/src/{components/DataMapper => }/hooks/useDataMapper.ts (93%) rename packages/ui/src/{components/DataMapper => }/hooks/useToggle.ts (100%) rename packages/ui/src/{components/DataMapper/models => models/datamapper}/document.ts (96%) create mode 100644 packages/ui/src/models/datamapper/index.ts rename packages/ui/src/{components/DataMapper/models => models/datamapper}/mapping.ts (97%) rename packages/ui/src/{components/DataMapper/models => models/datamapper}/path.ts (100%) rename packages/ui/src/{components/DataMapper/models => models/datamapper}/types.ts (100%) rename packages/ui/src/{components/DataMapper/models => models/datamapper}/view.ts (100%) rename packages/ui/src/{components/DataMapper/models => models/datamapper}/visualization.test.ts (100%) rename packages/ui/src/{components/DataMapper/models => models/datamapper}/visualization.ts (100%) rename packages/ui/src/pages/DataMapper/{DataMapper.test.tsx => DataMapperPage.test.tsx} (75%) rename packages/ui/src/pages/DataMapper/{DataMapper.tsx => DataMapperPage.tsx} (71%) rename packages/ui/src/{components/DataMapper/providers/CanvasProvider.test.tsx => providers/datamapper-canvas.provider.test.tsx} (59%) rename packages/ui/src/{components/DataMapper/providers/CanvasProvider.tsx => providers/datamapper-canvas.provider.tsx} (95%) rename packages/ui/src/{components/DataMapper/providers/DataMapperProvider.tsx => providers/datamapper.provider.tsx} (97%) rename packages/ui/src/{components/DataMapper/providers/DataMapperProvider.test.tsx => providers/datamapper.rovider.test.tsx} (83%) rename packages/ui/src/{components/DataMapper => }/providers/dnd/DnDHandler.ts (82%) rename packages/ui/src/{components/DataMapper => }/providers/dnd/ExpressionEditorDnDHandler.ts (100%) rename packages/ui/src/{components/DataMapper => }/providers/dnd/SourceTargetDnDHandler.ts (86%) rename packages/ui/src/{components/DataMapper => }/services/document.service.test.ts (96%) rename packages/ui/src/{components/DataMapper => }/services/document.service.ts (94%) rename packages/ui/src/{components/DataMapper => }/services/mapping-serializer.service.test.ts (97%) rename packages/ui/src/{components/DataMapper => }/services/mapping-serializer.service.ts (98%) rename packages/ui/src/{components/DataMapper => }/services/mapping.service.test.ts (96%) rename packages/ui/src/{components/DataMapper => }/services/mapping.service.ts (98%) rename packages/ui/src/{components/DataMapper => }/services/visualization.service.test.ts (97%) rename packages/ui/src/{components/DataMapper => }/services/visualization.service.ts (98%) rename packages/ui/src/{components/DataMapper => }/services/xml-schema-document.service.test.ts (84%) rename packages/ui/src/{components/DataMapper => }/services/xml-schema-document.service.ts (98%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-boolean.ts (80%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-context.ts (93%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-datetime.ts (98%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-node.ts (95%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-numeric.ts (97%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-qname.ts (96%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-sequence.ts (99%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions-string.ts (98%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-functions.ts (94%) rename packages/ui/src/{components/DataMapper => }/services/xpath/2.0/xpath-2.0-parser.ts (100%) rename packages/ui/src/{components/DataMapper => }/services/xpath/monaco-language.ts (100%) rename packages/ui/src/{components/DataMapper => }/services/xpath/xpath-parser.ts (100%) rename packages/ui/src/{components/DataMapper => }/services/xpath/xpath.service.test.ts (96%) rename packages/ui/src/{components/DataMapper => }/services/xpath/xpath.service.ts (96%) create mode 100644 packages/ui/src/utils/generate-random-id.test.ts create mode 100644 packages/ui/src/utils/generate-random-id.ts create mode 100644 packages/ui/src/utils/read-file-as-string.test.ts create mode 100644 packages/ui/src/utils/read-file-as-string.ts diff --git a/packages/ui-tests/stories/datamapper/DataMapperDebugger.stories.tsx b/packages/ui-tests/stories/datamapper/DataMapperDebugger.stories.tsx new file mode 100644 index 000000000..c3293ce19 --- /dev/null +++ b/packages/ui-tests/stories/datamapper/DataMapperDebugger.stories.tsx @@ -0,0 +1,18 @@ +import { DataMapperDebugger } from '@kaoto/kaoto/testing'; +import { Meta, StoryFn } from '@storybook/react'; +import { fn } from '@storybook/test'; + +export default { + title: 'DataMapper/Debugger', + component: DataMapperDebugger, +} as Meta; + +const Template: StoryFn = (args) => { + return ; +}; + +export const Debugger = Template.bind({}); +Debugger.args = { + onUpdateDocument: fn(), + onUpdateMappings: fn(), +}; diff --git a/packages/ui/src/components/DataMapper/layout/MainCanvas.tsx b/packages/ui/src/components/DataMapper/DataMapper.tsx similarity index 61% rename from packages/ui/src/components/DataMapper/layout/MainCanvas.tsx rename to packages/ui/src/components/DataMapper/DataMapper.tsx index 4281d6d05..9b8d05352 100644 --- a/packages/ui/src/components/DataMapper/layout/MainCanvas.tsx +++ b/packages/ui/src/components/DataMapper/DataMapper.tsx @@ -1,9 +1,9 @@ import { FunctionComponent, useMemo } from 'react'; -import { useDataMapper } from '../hooks'; -import { CanvasView } from '../models/view'; -import { SourceTargetView } from './views'; +import { useDataMapper } from '../../hooks/useDataMapper'; +import { CanvasView } from '../../models/datamapper/view'; +import { SourceTargetView } from '../View/SourceTargetView'; -export const MainCanvas: FunctionComponent = () => { +export const DataMapper: FunctionComponent = () => { const { activeView } = useDataMapper(); const currentView = useMemo(() => { switch (activeView) { diff --git a/packages/ui/src/components/DataMapper/components/Loading.tsx b/packages/ui/src/components/DataMapper/components/Loading.tsx deleted file mode 100644 index f650ae035..000000000 --- a/packages/ui/src/components/DataMapper/components/Loading.tsx +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (C) 2017 Red Hat, Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -import { EmptyState, EmptyStateHeader, EmptyStateIcon, EmptyStateVariant, Spinner } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; - -export const Loading: FunctionComponent = () => ( - - }> - -); diff --git a/packages/ui/src/components/DataMapper/components/index.ts b/packages/ui/src/components/DataMapper/components/index.ts deleted file mode 100644 index ed89b593b..000000000 --- a/packages/ui/src/components/DataMapper/components/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '../../../pages/DataMapper/DataMapper'; -export * from './Loading'; diff --git a/packages/ui/src/components/DataMapper/components/toolbar/index.ts b/packages/ui/src/components/DataMapper/components/toolbar/index.ts deleted file mode 100644 index b39decaeb..000000000 --- a/packages/ui/src/components/DataMapper/components/toolbar/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ExportMappingFileDropdownItem'; -export * from './MainMenuToolbarItem'; diff --git a/packages/ui/src/components/DataMapper/components/debug/CanvasMonitor.tsx b/packages/ui/src/components/DataMapper/debug/CanvasMonitor.tsx similarity index 92% rename from packages/ui/src/components/DataMapper/components/debug/CanvasMonitor.tsx rename to packages/ui/src/components/DataMapper/debug/CanvasMonitor.tsx index ec1df8985..c7dac21e1 100644 --- a/packages/ui/src/components/DataMapper/components/debug/CanvasMonitor.tsx +++ b/packages/ui/src/components/DataMapper/debug/CanvasMonitor.tsx @@ -1,7 +1,7 @@ import { DragOverEvent, useDndMonitor } from '@dnd-kit/core'; import { FunctionComponent, useEffect } from 'react'; -import { useCanvas } from '../../hooks/useCanvas'; -import { NodeData } from '../../models/visualization'; +import { useCanvas } from '../../../hooks/useCanvas'; +import { NodeData } from '../../../models/datamapper/visualization'; export const CanvasMonitor: FunctionComponent = () => { useDndMonitor({ diff --git a/packages/ui/src/components/DataMapper/layout/ContextToolbar.tsx b/packages/ui/src/components/DataMapper/debug/ContextToolbar.tsx similarity index 88% rename from packages/ui/src/components/DataMapper/layout/ContextToolbar.tsx rename to packages/ui/src/components/DataMapper/debug/ContextToolbar.tsx index 74e8c546d..b70b5f4c1 100644 --- a/packages/ui/src/components/DataMapper/layout/ContextToolbar.tsx +++ b/packages/ui/src/components/DataMapper/debug/ContextToolbar.tsx @@ -15,8 +15,8 @@ */ import { FunctionComponent } from 'react'; import { Toolbar, ToolbarContent, ToolbarGroup } from '@patternfly/react-core'; -import { MainMenuToolbarItem } from '../components/toolbar'; -import { ToggleDebugToolbarItem } from '../components/toolbar/ToggleDebugToolbarItem'; +import { MainMenuToolbarItem } from './MainMenuToolbarItem'; +import { ToggleDebugToolbarItem } from './ToggleDebugToolbarItem'; export const ContextToolbar: FunctionComponent = () => { return ( diff --git a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx new file mode 100644 index 000000000..c2043c340 --- /dev/null +++ b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx @@ -0,0 +1,8 @@ +import { DataMapperDebugger } from './DataMapperDebugger'; +import { render } from '@testing-library/react'; + +describe('Debug', () => { + it('should render', () => { + render(); + }); +}); diff --git a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx new file mode 100644 index 000000000..22ca453e2 --- /dev/null +++ b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx @@ -0,0 +1,25 @@ +import { FunctionComponent } from 'react'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { IDataMapperProps } from '../../../pages/DataMapper/DataMapperPage'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; +import { DebugLayout } from './DebugLayout'; + +export const DataMapperDebugger: FunctionComponent = ({ + documentInitializationModel, + onUpdateDocument, + initialXsltFile, + onUpdateMappings, +}) => { + return ( + + + + + + ); +}; diff --git a/packages/ui/src/components/DataMapper/components/debug/DataMapperMonitor.tsx b/packages/ui/src/components/DataMapper/debug/DataMapperMonitor.tsx similarity index 78% rename from packages/ui/src/components/DataMapper/components/debug/DataMapperMonitor.tsx rename to packages/ui/src/components/DataMapper/debug/DataMapperMonitor.tsx index 95000a119..6f1c88468 100644 --- a/packages/ui/src/components/DataMapper/components/debug/DataMapperMonitor.tsx +++ b/packages/ui/src/components/DataMapper/debug/DataMapperMonitor.tsx @@ -1,6 +1,6 @@ -import { useDataMapper } from '../../hooks/useDataMapper'; +import { useDataMapper } from '../../../hooks/useDataMapper'; import { useEffect } from 'react'; -import { MappingService } from '../../services/mapping.service'; +import { MappingService } from '../../../services/mapping.service'; export const DataMapperMonitor = () => { const { mappingTree, sourceParameterMap, sourceBodyDocument } = useDataMapper(); diff --git a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.scss b/packages/ui/src/components/DataMapper/debug/DebugLayout.scss similarity index 84% rename from packages/ui/src/components/DataMapper/layout/StandaloneLayout.scss rename to packages/ui/src/components/DataMapper/debug/DebugLayout.scss index d51b9be14..5f7ee499d 100644 --- a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.scss +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.scss @@ -1,4 +1,4 @@ -.standalone-layout { +.debug-layout { height: 100%; &__drawer-content { diff --git a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx b/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx similarity index 58% rename from packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx rename to packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx index bfea99a7e..693d0ca23 100644 --- a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.test.tsx +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx @@ -1,15 +1,59 @@ -import { DataMapperProvider } from '../providers'; -import { CanvasProvider } from '../providers/CanvasProvider'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'; -import { StandaloneLayout } from './StandaloneLayout'; +import { DebugLayout } from './DebugLayout'; import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; -import { useDataMapper } from '../hooks'; -import { useCanvas } from '../hooks/useCanvas'; -import { TestUtil } from '../test/test-util'; -import { MappingSerializerService } from '../services/mapping-serializer.service'; -import { MappingTree } from '../models/mapping'; +import { useDataMapper } from '../../../hooks/useDataMapper'; +import { useCanvas } from '../../../hooks/useCanvas'; +import { MappingSerializerService } from '../../../services/mapping-serializer.service'; +import { MappingTree } from '../../../models/datamapper/mapping'; +import { shipOrderToShipOrderXslt, TestUtil } from '../../../stubs/data-mapper'; +import { IMappingLink } from '../../../models/datamapper/visualization'; +import { MappingService } from '../../../services/mapping.service'; + +describe('DebugLayout', () => { + it('should render Documents and mappings', async () => { + let mappingLinks: IMappingLink[] = []; + const LoadMappings: FunctionComponent = ({ children }) => { + const { + mappingTree, + setMappingTree, + sourceParameterMap, + setSourceBodyDocument, + setTargetBodyDocument, + sourceBodyDocument, + } = useDataMapper(); + const { getAllNodePaths, reloadNodeReferences } = useCanvas(); + useEffect(() => { + const sourceDoc = TestUtil.createSourceOrderDoc(); + setSourceBodyDocument(sourceDoc); + const targetDoc = TestUtil.createTargetOrderDoc(); + setTargetBodyDocument(targetDoc); + MappingSerializerService.deserialize(shipOrderToShipOrderXslt, targetDoc, mappingTree, sourceParameterMap); + setMappingTree(mappingTree); + reloadNodeReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + useEffect(() => { + mappingLinks = MappingService.extractMappingLinks(mappingTree, sourceParameterMap, sourceBodyDocument); + }, [getAllNodePaths, mappingTree, sourceBodyDocument, sourceParameterMap]); + return <>{children}; + }; + render( + + + + + + + , + ); + await screen.findAllByText('ShipOrder'); + const targetNodes = screen.getAllByTestId(/node-target-.*/); + expect(targetNodes.length).toBeGreaterThan(10); + expect(mappingLinks.length).toBeGreaterThan(10); + }); -describe('MainLayout', () => { describe('Main Menu', () => { it('should import and export mappings', async () => { let spyOnMappingTree: MappingTree; @@ -31,11 +75,11 @@ describe('MainLayout', () => { }; render( - + - + - + , ); let mainMenuButton = await screen.findByTestId('main-menu-button'); @@ -46,7 +90,7 @@ describe('MainLayout', () => { act(() => { fireEvent.click(importButton); }); - const fileContent = new File([new Blob([TestUtil.shipOrderToShipOrderXslt])], 'ShipOrderToShipOrder.xsl', { + const fileContent = new File([new Blob([shipOrderToShipOrderXslt])], 'ShipOrderToShipOrder.xsl', { type: 'text/plain', }); const fileInput = screen.getByTestId('import-mappings-file-input'); @@ -92,12 +136,7 @@ describe('MainLayout', () => { setSourceBodyDocument(sourceDoc); const targetDoc = TestUtil.createTargetOrderDoc(); setTargetBodyDocument(targetDoc); - MappingSerializerService.deserialize( - TestUtil.shipOrderToShipOrderXslt, - targetDoc, - mappingTree, - sourceParameterMap, - ); + MappingSerializerService.deserialize(shipOrderToShipOrderXslt, targetDoc, mappingTree, sourceParameterMap); setMappingTree(mappingTree); reloadNodeReferences(); // eslint-disable-next-line react-hooks/exhaustive-deps @@ -108,11 +147,11 @@ describe('MainLayout', () => { console.log = mockLog; render( - + - + - + , ); await screen.findByTestId('main-menu-button'); diff --git a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.tsx b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx similarity index 65% rename from packages/ui/src/components/DataMapper/layout/StandaloneLayout.tsx rename to packages/ui/src/components/DataMapper/debug/DebugLayout.tsx index f81c82d40..1e65bec15 100644 --- a/packages/ui/src/components/DataMapper/layout/StandaloneLayout.tsx +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx @@ -16,14 +16,16 @@ import { FunctionComponent, memo } from 'react'; import { Masthead, MastheadContent, Page, PageSection, PageSectionVariants } from '@patternfly/react-core'; import { ContextToolbar } from './ContextToolbar'; -import './StandaloneLayout.scss'; -import { MainCanvas } from './MainCanvas'; -import { useDataMapper } from '../hooks'; -import { CanvasMonitor } from '../components/debug/CanvasMonitor'; -import { DataMapperMonitor } from '../components/debug/DataMapperMonitor'; +import './DebugLayout.scss'; +import { DataMapper } from '../DataMapper'; +import { useDataMapper } from '../../../hooks/useDataMapper'; +import { CanvasMonitor } from './CanvasMonitor'; +import { DataMapperMonitor } from './DataMapperMonitor'; +import { IDataMapperProps } from '../../../pages/DataMapper/DataMapperPage'; -export const StandaloneLayout: FunctionComponent = memo(function MainLayout() { - const { debug } = useDataMapper()!; +export const DebugLayout: FunctionComponent = memo(function DebugLayout() { + const { setDebug } = useDataMapper()!; + setDebug(true); const header = ( @@ -34,14 +36,10 @@ export const StandaloneLayout: FunctionComponent = memo(function MainLayout() { return ( - {debug && ( - <> - - - - )} - - + + + + ); diff --git a/packages/ui/src/components/DataMapper/components/toolbar/ExportMappingFileDropdownItem.tsx b/packages/ui/src/components/DataMapper/debug/ExportMappingFileDropdownItem.tsx similarity index 94% rename from packages/ui/src/components/DataMapper/components/toolbar/ExportMappingFileDropdownItem.tsx rename to packages/ui/src/components/DataMapper/debug/ExportMappingFileDropdownItem.tsx index 73f815b70..c6da3777f 100644 --- a/packages/ui/src/components/DataMapper/components/toolbar/ExportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/DataMapper/debug/ExportMappingFileDropdownItem.tsx @@ -2,8 +2,8 @@ import { Button, DropdownItem, Modal } from '@patternfly/react-core'; import { CodeEditor, Language } from '@patternfly/react-code-editor'; import { FunctionComponent, useCallback, useMemo, useState } from 'react'; import { ExportIcon } from '@patternfly/react-icons'; -import { MappingSerializerService } from '../../services/mapping-serializer.service'; -import { useDataMapper } from '../../hooks'; +import { MappingSerializerService } from '../../../services/mapping-serializer.service'; +import { useDataMapper } from '../../../hooks/useDataMapper'; import { Monaco } from '@monaco-editor/react'; import { editor } from 'monaco-editor/esm/vs/editor/editor.api'; import IStandaloneEditorConstructionOptions = editor.IStandaloneEditorConstructionOptions; diff --git a/packages/ui/src/components/DataMapper/components/toolbar/ImportMappingFileDropdownItem.tsx b/packages/ui/src/components/DataMapper/debug/ImportMappingFileDropdownItem.tsx similarity index 84% rename from packages/ui/src/components/DataMapper/components/toolbar/ImportMappingFileDropdownItem.tsx rename to packages/ui/src/components/DataMapper/debug/ImportMappingFileDropdownItem.tsx index e5ab575ef..4e58fa2d2 100644 --- a/packages/ui/src/components/DataMapper/components/toolbar/ImportMappingFileDropdownItem.tsx +++ b/packages/ui/src/components/DataMapper/debug/ImportMappingFileDropdownItem.tsx @@ -1,9 +1,9 @@ import { DropdownItem } from '@patternfly/react-core'; import { ChangeEvent, createRef, FunctionComponent, useCallback } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; -import { MappingSerializerService } from '../../services/mapping-serializer.service'; -import { useDataMapper } from '../../hooks'; -import { CommonUtil } from '../../util'; +import { MappingSerializerService } from '../../../services/mapping-serializer.service'; +import { useDataMapper } from '../../../hooks/useDataMapper'; +import { readFileAsString } from '../../../utils/read-file-as-string'; type ImportMappingFileDropdownItemProps = { onComplete: () => void; @@ -23,7 +23,7 @@ export const ImportMappingFileDropdownItem: FunctionComponent) => { const file = event.target.files?.item(0); if (!file) return; - CommonUtil.readFileAsString(file).then((content) => { + readFileAsString(file).then((content) => { MappingSerializerService.deserialize(content, targetBodyDocument, mappingTree, sourceParameterMap); refreshMappingTree(); onComplete(); diff --git a/packages/ui/src/components/DataMapper/components/toolbar/MainMenuToolbarItem.tsx b/packages/ui/src/components/DataMapper/debug/MainMenuToolbarItem.tsx similarity index 95% rename from packages/ui/src/components/DataMapper/components/toolbar/MainMenuToolbarItem.tsx rename to packages/ui/src/components/DataMapper/debug/MainMenuToolbarItem.tsx index f82da8673..52945fcda 100644 --- a/packages/ui/src/components/DataMapper/components/toolbar/MainMenuToolbarItem.tsx +++ b/packages/ui/src/components/DataMapper/debug/MainMenuToolbarItem.tsx @@ -1,5 +1,5 @@ import { FunctionComponent } from 'react'; -import { useToggle } from '../../hooks'; +import { useToggle } from '../../../hooks/useToggle'; import { Dropdown, DropdownList, MenuToggle, ToolbarItem } from '@patternfly/react-core'; import { ExportMappingFileDropdownItem } from './ExportMappingFileDropdownItem'; import { ImportMappingFileDropdownItem } from './ImportMappingFileDropdownItem'; diff --git a/packages/ui/src/components/DataMapper/debug/README.md b/packages/ui/src/components/DataMapper/debug/README.md new file mode 100644 index 000000000..94e76b66e --- /dev/null +++ b/packages/ui/src/components/DataMapper/debug/README.md @@ -0,0 +1,7 @@ +### How to use + +#### In this directory +`yarn vite .` + +#### Or from Kaoto `packages/ui` directory +`yarn vite src/components/DataMapper/debug` diff --git a/packages/ui/src/components/DataMapper/components/toolbar/ToggleDebugToolbarItem.tsx b/packages/ui/src/components/DataMapper/debug/ToggleDebugToolbarItem.tsx similarity index 91% rename from packages/ui/src/components/DataMapper/components/toolbar/ToggleDebugToolbarItem.tsx rename to packages/ui/src/components/DataMapper/debug/ToggleDebugToolbarItem.tsx index 239771923..4ae9b96d8 100644 --- a/packages/ui/src/components/DataMapper/components/toolbar/ToggleDebugToolbarItem.tsx +++ b/packages/ui/src/components/DataMapper/debug/ToggleDebugToolbarItem.tsx @@ -1,5 +1,5 @@ import { FunctionComponent } from 'react'; -import { useDataMapper } from '../../hooks'; +import { useDataMapper } from '../../../hooks/useDataMapper'; import { ToggleGroup, ToggleGroupItem, ToolbarItem } from '@patternfly/react-core'; import { BugIcon } from '@patternfly/react-icons'; diff --git a/packages/ui/src/components/DataMapper/debug/index.html b/packages/ui/src/components/DataMapper/debug/index.html new file mode 100644 index 000000000..0c7f1cd4d --- /dev/null +++ b/packages/ui/src/components/DataMapper/debug/index.html @@ -0,0 +1,16 @@ + + + + + + DataMapper Debugger + + + +
    + + + diff --git a/packages/ui/src/components/DataMapper/debug/index.ts b/packages/ui/src/components/DataMapper/debug/index.ts new file mode 100644 index 000000000..5c87e44e1 --- /dev/null +++ b/packages/ui/src/components/DataMapper/debug/index.ts @@ -0,0 +1 @@ +export * from './DataMapperDebugger'; diff --git a/packages/ui/src/components/DataMapper/debug/main.tsx b/packages/ui/src/components/DataMapper/debug/main.tsx new file mode 100644 index 000000000..5d753db29 --- /dev/null +++ b/packages/ui/src/components/DataMapper/debug/main.tsx @@ -0,0 +1,15 @@ +import '@patternfly/react-core/dist/styles/base.css'; // This import needs to be first +import { createRoot } from 'react-dom/client'; +import { DataMapperDebugger } from './DataMapperDebugger'; +import { DocumentDefinition } from '../../../models/datamapper/document'; + +const onUpdateMappings = (xsltFile: string) => { + console.log('onUpdateMappings() >>>>> ' + xsltFile); +}; +const onUpdateDocument = (definition: DocumentDefinition) => { + console.log('onUpdateDocument() >>>>>', JSON.stringify(definition)); +}; + +const container = document.getElementById('root'); +const root = createRoot(container!); +root.render(); diff --git a/packages/ui/src/components/DataMapper/hooks/index.ts b/packages/ui/src/components/DataMapper/hooks/index.ts deleted file mode 100644 index 08be29e92..000000000 --- a/packages/ui/src/components/DataMapper/hooks/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './useToggle'; -export * from './useDataMapper'; diff --git a/packages/ui/src/components/DataMapper/layout/index.ts b/packages/ui/src/components/DataMapper/layout/index.ts deleted file mode 100644 index b2d385064..000000000 --- a/packages/ui/src/components/DataMapper/layout/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './StandaloneLayout'; diff --git a/packages/ui/src/components/DataMapper/layout/views/index.ts b/packages/ui/src/components/DataMapper/layout/views/index.ts deleted file mode 100644 index 818822eea..000000000 --- a/packages/ui/src/components/DataMapper/layout/views/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './SourceTargetView'; diff --git a/packages/ui/src/components/DataMapper/providers/index.ts b/packages/ui/src/components/DataMapper/providers/index.ts deleted file mode 100644 index aab809fd5..000000000 --- a/packages/ui/src/components/DataMapper/providers/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './DataMapperProvider'; diff --git a/packages/ui/src/components/DataMapper/services/index.ts b/packages/ui/src/components/DataMapper/services/index.ts deleted file mode 100644 index 5e5f882ac..000000000 --- a/packages/ui/src/components/DataMapper/services/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './xml-schema-document.service'; diff --git a/packages/ui/src/components/DataMapper/test/test-util.ts b/packages/ui/src/components/DataMapper/test/test-util.ts deleted file mode 100644 index 1824668c9..000000000 --- a/packages/ui/src/components/DataMapper/test/test-util.ts +++ /dev/null @@ -1,47 +0,0 @@ -import * as fs from 'fs'; -import { IDocument, PrimitiveDocument } from '../models/document'; -import { DocumentType } from '../models/path'; -import { XmlSchemaDocumentService } from '../services'; - -export class TestUtil { - static orderXsd = fs - .readFileSync(__dirname + '/../../../../../xml-schema-ts/test-resources/ShipOrder.xsd') - .toString(); - static testXsd = fs - .readFileSync(__dirname + '/../../../../../xml-schema-ts/test-resources/TestDocument.xsd') - .toString(); - static shipOrderToShipOrderXslt = fs - .readFileSync(__dirname + '/../../../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') - .toString(); - - static createSourceOrderDoc() { - return XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.SOURCE_BODY, - 'ShipOrder.xsd', - TestUtil.orderXsd, - ); - } - - static createTargetOrderDoc() { - return XmlSchemaDocumentService.createXmlSchemaDocument( - DocumentType.TARGET_BODY, - 'ShipOrder.xsd', - TestUtil.orderXsd, - ); - } - - static createParamOrderDoc(name: string) { - const answer = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, name, TestUtil.orderXsd); - answer.name = name; - return answer; - } - - static createParameterMap() { - const sourceParamDoc = TestUtil.createParamOrderDoc('sourceParam1'); - const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); - return new Map([ - ['sourceParam1', sourceParamDoc], - ['primitive', sourcePrimitiveParamDoc], - ]); - } -} diff --git a/packages/ui/src/components/DataMapper/util/common.test.ts b/packages/ui/src/components/DataMapper/util/common.test.ts deleted file mode 100644 index c34fd4d35..000000000 --- a/packages/ui/src/components/DataMapper/util/common.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { CommonUtil } from './common'; - -describe('generateRandomId()', () => { - it('should generate', () => { - const generated = CommonUtil.generateRandomId('dummy', 4); - expect(generated).toMatch(/dummy-\d{4}/); - expect(CommonUtil.generateRandomId('dummy', 4)).not.toEqual(CommonUtil.generateRandomId('dummy', 4)); - }); -}); - -describe('readFileAsString()', () => { - it('should read', async () => { - const file = new File(['foo'], 'foo.txt', { - type: 'text/plain', - }); - const answer = await CommonUtil.readFileAsString(file); - expect(answer).toEqual('foo'); - }); -}); diff --git a/packages/ui/src/components/DataMapper/util/common.ts b/packages/ui/src/components/DataMapper/util/common.ts deleted file mode 100644 index 707ba988f..000000000 --- a/packages/ui/src/components/DataMapper/util/common.ts +++ /dev/null @@ -1,17 +0,0 @@ -export class CommonUtil { - static generateRandomId = (kind: string, length = 4): string => { - const randomNumber = Math.floor(Math.random() * 10 ** length); - const randomNumberString = randomNumber.toString(10).padStart(4, '0'); - return `${kind}-${randomNumberString}`; - }; - - static readFileAsString = (file: File): Promise => { - const reader = new FileReader(); - return new Promise((resolve, reject) => { - reader.onload = (e) => { - e.target ? resolve(e.target.result as string) : reject(); - }; - reader.readAsText(file); - }); - }; -} diff --git a/packages/ui/src/components/DataMapper/util/index.ts b/packages/ui/src/components/DataMapper/util/index.ts deleted file mode 100644 index d0b932366..000000000 --- a/packages/ui/src/components/DataMapper/util/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './common'; diff --git a/packages/ui/src/components/DataMapper/components/document/Document.scss b/packages/ui/src/components/Document/Document.scss similarity index 100% rename from packages/ui/src/components/DataMapper/components/document/Document.scss rename to packages/ui/src/components/Document/Document.scss diff --git a/packages/ui/src/components/DataMapper/components/document/NodeContainer.tsx b/packages/ui/src/components/Document/NodeContainer.tsx similarity index 96% rename from packages/ui/src/components/DataMapper/components/document/NodeContainer.tsx rename to packages/ui/src/components/Document/NodeContainer.tsx index a4fdf3b96..245a9cf00 100644 --- a/packages/ui/src/components/DataMapper/components/document/NodeContainer.tsx +++ b/packages/ui/src/components/Document/NodeContainer.tsx @@ -1,6 +1,6 @@ import { CSSProperties, forwardRef, FunctionComponent, PropsWithChildren } from 'react'; import { useDraggable, useDroppable } from '@dnd-kit/core'; -import { NodeData } from '../../models/visualization'; +import { NodeData } from '../../models/datamapper/visualization'; type DnDContainerProps = PropsWithChildren & { nodeData: NodeData; diff --git a/packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx b/packages/ui/src/components/Document/Parameters.test.tsx similarity index 84% rename from packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx rename to packages/ui/src/components/Document/Parameters.test.tsx index 5115d5f14..5c134025f 100644 --- a/packages/ui/src/components/DataMapper/components/document/Parameters.test.tsx +++ b/packages/ui/src/components/Document/Parameters.test.tsx @@ -1,16 +1,16 @@ import { Parameters } from './Parameters'; -import { DataMapperProvider } from '../../providers'; -import { CanvasProvider } from '../../providers/CanvasProvider'; +import { DataMapperProvider } from '../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { TestUtil } from '../../test/test-util'; +import { shipOrderXsd } from '../../stubs/data-mapper'; describe('Parameters', () => { it('should add and remove a parameter', async () => { render( - + - + , ); const addButton = await screen.findByTestId('add-parameter-button'); @@ -40,9 +40,9 @@ describe('Parameters', () => { it('should attach and detach a schema', async () => { render( - + - + , ); const addButton = await screen.findByTestId('add-parameter-button'); @@ -58,7 +58,7 @@ describe('Parameters', () => { fireEvent.click(submitButton); }); const attachButton = screen.getByTestId('attach-schema-param-testparam1-button'); - const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + const fileContent = new File([new Blob([shipOrderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); act(() => { fireEvent.click(attachButton); }); diff --git a/packages/ui/src/components/DataMapper/components/document/Parameters.tsx b/packages/ui/src/components/Document/Parameters.tsx similarity index 94% rename from packages/ui/src/components/DataMapper/components/document/Parameters.tsx rename to packages/ui/src/components/Document/Parameters.tsx index ea527f1b1..af6087abd 100644 --- a/packages/ui/src/components/DataMapper/components/document/Parameters.tsx +++ b/packages/ui/src/components/Document/Parameters.tsx @@ -13,13 +13,14 @@ import { Tooltip, } from '@patternfly/react-core'; import { FunctionComponent, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'; -import { useDataMapper, useToggle } from '../../hooks'; +import { useDataMapper } from '../../hooks/useDataMapper'; +import { useToggle } from '../../hooks/useToggle'; import { CheckIcon, PlusIcon, TimesIcon } from '@patternfly/react-icons'; -import { PrimitiveDocument } from '../../models/document'; +import { PrimitiveDocument } from '../../models/datamapper/document'; import { useCanvas } from '../../hooks/useCanvas'; import { NodeContainer } from './NodeContainer'; -import { NodeReference } from '../../providers/CanvasProvider'; -import { DocumentType } from '../../models/path'; +import { NodeReference } from '../../providers/datamapper-canvas.provider'; +import { DocumentType } from '../../models/datamapper/path'; import { SourceDocument } from './SourceDocument'; type AddNewParameterPlaceholderProps = { diff --git a/packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx b/packages/ui/src/components/Document/SourceDocument.test.tsx similarity index 65% rename from packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx rename to packages/ui/src/components/Document/SourceDocument.test.tsx index 7c8ef7871..14d0cf3a8 100644 --- a/packages/ui/src/components/DataMapper/components/document/SourceDocument.test.tsx +++ b/packages/ui/src/components/Document/SourceDocument.test.tsx @@ -1,19 +1,19 @@ import { SourceDocument } from './SourceDocument'; import { render, screen } from '@testing-library/react'; -import { TestUtil } from '../../test/test-util'; -import { DataMapperProvider } from '../../providers'; -import { CanvasProvider } from '../../providers/CanvasProvider'; -import { BODY_DOCUMENT_ID, PrimitiveDocument } from '../../models/document'; -import { DocumentType } from '../../models/path'; +import { DataMapperProvider } from '../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; +import { BODY_DOCUMENT_ID, PrimitiveDocument } from '../../models/datamapper/document'; +import { DocumentType } from '../../models/datamapper/path'; +import { TestUtil } from '../../stubs/data-mapper'; describe('SourceDocument', () => { it('should render primitive document', async () => { const document = new PrimitiveDocument(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID); render( - + - + , ); expect(await screen.findByText('Body')).toBeTruthy(); @@ -23,9 +23,9 @@ describe('SourceDocument', () => { const document = TestUtil.createSourceOrderDoc(); render( - + - + , ); expect(await screen.findByText('OrderPerson')).toBeTruthy(); diff --git a/packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx b/packages/ui/src/components/Document/SourceDocument.tsx similarity index 95% rename from packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx rename to packages/ui/src/components/Document/SourceDocument.tsx index 885711e99..740ae61b9 100644 --- a/packages/ui/src/components/DataMapper/components/document/SourceDocument.tsx +++ b/packages/ui/src/components/Document/SourceDocument.tsx @@ -1,11 +1,11 @@ -import { DocumentNodeData, FieldNodeData, MappingNodeData, NodeData } from '../../models/visualization'; +import { DocumentNodeData, FieldNodeData, MappingNodeData, NodeData } from '../../models/datamapper/visualization'; import { FunctionComponent, useRef, useState } from 'react'; -import { IDocument } from '../../models/document'; +import { IDocument } from '../../models/datamapper/document'; import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; import { DocumentActions } from './actions/DocumentActions'; import { AngleDownIcon, AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; import { NodeContainer } from './NodeContainer'; -import { NodeReference } from '../../providers/CanvasProvider'; +import { NodeReference } from '../../providers/datamapper-canvas.provider'; import { useCanvas } from '../../hooks/useCanvas'; import { VisualizationService } from '../../services/visualization.service'; import './Document.scss'; diff --git a/packages/ui/src/components/DataMapper/components/document/TargetDocument.tsx b/packages/ui/src/components/Document/TargetDocument.tsx similarity index 94% rename from packages/ui/src/components/DataMapper/components/document/TargetDocument.tsx rename to packages/ui/src/components/Document/TargetDocument.tsx index c0fa4711e..137d593bc 100644 --- a/packages/ui/src/components/DataMapper/components/document/TargetDocument.tsx +++ b/packages/ui/src/components/Document/TargetDocument.tsx @@ -1,11 +1,11 @@ -import { IDocument } from '../../models/document'; +import { IDocument } from '../../models/datamapper/document'; import { FunctionComponent, useCallback, useRef, useState } from 'react'; -import { useDataMapper } from '../../hooks'; -import { MappingNodeData, TargetDocumentNodeData, TargetNodeData } from '../../models/visualization'; +import { useDataMapper } from '../../hooks/useDataMapper'; +import { MappingNodeData, TargetDocumentNodeData, TargetNodeData } from '../../models/datamapper/visualization'; import { TargetNodeActions } from './actions/TargetNodeActions'; import { NodeContainer } from './NodeContainer'; import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; -import { NodeReference } from '../../providers/CanvasProvider'; +import { NodeReference } from '../../providers/datamapper-canvas.provider'; import { useCanvas } from '../../hooks/useCanvas'; import { VisualizationService } from '../../services/visualization.service'; import { AngleDownIcon, AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; diff --git a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx similarity index 53% rename from packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx rename to packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx index cc9fd2b4a..f7c14eb36 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.test.tsx +++ b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx @@ -1,20 +1,28 @@ import { AttachSchemaButton } from './AttachSchemaButton'; import { fireEvent, render, screen } from '@testing-library/react'; -import { CanvasProvider } from '../../../providers/CanvasProvider'; -import { DocumentType } from '../../../models/path'; -import { BODY_DOCUMENT_ID } from '../../../models/document'; -import { DataMapperProvider } from '../../../providers'; -import { CommonUtil } from '../../../util'; -import { TestUtil } from '../../../test/test-util'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; +import { DocumentType } from '../../../models/datamapper/path'; +import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { readFileAsString } from '../../../utils/read-file-as-string'; + +import { shipOrderXsd } from '../../../stubs/data-mapper'; + +jest.mock('../../../utils/read-file-as-string'); +const mockReadFileAsString = readFileAsString as jest.MockedFunction; describe('AttachSchemaButton', () => { + afterAll(() => { + mockReadFileAsString.mockReset(); + }); + it('should invoke onClick()', async () => { const spyOnClick = jest.spyOn(HTMLInputElement.prototype, 'click'); render( - + - + , ); const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); @@ -24,17 +32,17 @@ describe('AttachSchemaButton', () => { }); it('should invoke onImport()', async () => { - const mockOnImport = jest.spyOn(CommonUtil, 'readFileAsString'); + mockReadFileAsString.mockResolvedValue(shipOrderXsd); render( - + - + , ); const fileInput = await screen.findByTestId('attach-schema-sourceBody-Body-file-input'); - const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + const fileContent = new File([new Blob([shipOrderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); - expect(mockOnImport.mock.calls.length).toEqual(1); + expect(mockReadFileAsString.mock.calls.length).toEqual(1); }); }); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx similarity index 94% rename from packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx rename to packages/ui/src/components/Document/actions/AttachSchemaButton.tsx index e5ee676d8..a4638a4d9 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/AttachSchemaButton.tsx +++ b/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx @@ -17,10 +17,10 @@ import { Button, Tooltip } from '@patternfly/react-core'; import { ChangeEvent, createRef, FunctionComponent, useCallback } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; -import { useDataMapper } from '../../../hooks'; -import { DocumentType } from '../../../models/path'; +import { useDataMapper } from '../../../hooks/useDataMapper'; +import { DocumentType } from '../../../models/datamapper/path'; import { useCanvas } from '../../../hooks/useCanvas'; -import { DocumentDefinition, DocumentDefinitionType } from '../../../models/document'; +import { DocumentDefinition, DocumentDefinitionType } from '../../../models/datamapper/document'; type AttachSchemaProps = { documentType: DocumentType; diff --git a/packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.test.tsx b/packages/ui/src/components/Document/actions/ConditionMenuAction.test.tsx similarity index 95% rename from packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.test.tsx rename to packages/ui/src/components/Document/actions/ConditionMenuAction.test.tsx index baa5fcfa0..eaf92e93c 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.test.tsx +++ b/packages/ui/src/components/Document/actions/ConditionMenuAction.test.tsx @@ -1,12 +1,12 @@ import { ConditionMenuAction } from './ConditionMenuAction'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { MappingNodeData, TargetDocumentNodeData, TargetFieldNodeData } from '../../../models/visualization'; -import { TestUtil } from '../../../test/test-util'; -import { ChooseItem, FieldItem, MappingTree } from '../../../models/mapping'; -import { DocumentType } from '../../../models/path'; -import { BODY_DOCUMENT_ID } from '../../../models/document'; +import { MappingNodeData, TargetDocumentNodeData, TargetFieldNodeData } from '../../../models/datamapper/visualization'; +import { ChooseItem, FieldItem, MappingTree } from '../../../models/datamapper/mapping'; +import { DocumentType } from '../../../models/datamapper/path'; +import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; import { VisualizationService } from '../../../services/visualization.service'; import { MappingService } from '../../../services/mapping.service'; +import { TestUtil } from '../../../stubs/data-mapper'; describe('ConditionMenuAction', () => { const targetDoc = TestUtil.createTargetOrderDoc(); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.tsx b/packages/ui/src/components/Document/actions/ConditionMenuAction.tsx similarity index 97% rename from packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.tsx rename to packages/ui/src/components/Document/actions/ConditionMenuAction.tsx index dad98812c..16c61b2b4 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/ConditionMenuAction.tsx +++ b/packages/ui/src/components/Document/actions/ConditionMenuAction.tsx @@ -1,5 +1,5 @@ import { FunctionComponent, Ref, MouseEvent, useCallback, useState } from 'react'; -import { MappingNodeData, TargetFieldNodeData, TargetNodeData } from '../../../models/visualization'; +import { MappingNodeData, TargetFieldNodeData, TargetNodeData } from '../../../models/datamapper/visualization'; import { VisualizationService } from '../../../services/visualization.service'; import { ActionListItem, @@ -10,7 +10,7 @@ import { MenuToggleElement, } from '@patternfly/react-core'; import { EllipsisVIcon } from '@patternfly/react-icons'; -import { ChooseItem } from '../../../models/mapping'; +import { ChooseItem } from '../../../models/datamapper/mapping'; import { MappingService } from '../../../services/mapping.service'; type ConditionMenuProps = { diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx b/packages/ui/src/components/Document/actions/DeleteMappingItemAction.test.tsx similarity index 71% rename from packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx rename to packages/ui/src/components/Document/actions/DeleteMappingItemAction.test.tsx index f1cfb1bdc..5612993f2 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.test.tsx +++ b/packages/ui/src/components/Document/actions/DeleteMappingItemAction.test.tsx @@ -1,12 +1,12 @@ import { DeleteMappingItemAction } from './DeleteMappingItemAction'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { MappingNodeData, TargetDocumentNodeData } from '../../../models/visualization'; -import { MappingTree, ValueSelector } from '../../../models/mapping'; -import { DocumentType } from '../../../models/path'; -import { BODY_DOCUMENT_ID } from '../../../models/document'; -import { TestUtil } from '../../../test/test-util'; -import { CanvasProvider } from '../../../providers/CanvasProvider'; -import { DataMapperProvider } from '../../../providers'; +import { MappingNodeData, TargetDocumentNodeData } from '../../../models/datamapper/visualization'; +import { MappingTree, ValueSelector } from '../../../models/datamapper/mapping'; +import { DocumentType } from '../../../models/datamapper/path'; +import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { TestUtil } from '../../../stubs/data-mapper'; describe('DeleteMappingItemAction', () => { it('should invoke onDelete()', async () => { @@ -17,9 +17,9 @@ describe('DeleteMappingItemAction', () => { const onDeleteMock = jest.fn(); render( - + - + , ); const deleteBtn = await screen.findByTestId('delete-mapping-btn'); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.tsx b/packages/ui/src/components/Document/actions/DeleteMappingItemAction.tsx similarity index 91% rename from packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.tsx rename to packages/ui/src/components/Document/actions/DeleteMappingItemAction.tsx index d05341099..e71f1c8bb 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DeleteMappingItemAction.tsx +++ b/packages/ui/src/components/Document/actions/DeleteMappingItemAction.tsx @@ -1,11 +1,11 @@ import { FunctionComponent, useCallback } from 'react'; import { ActionListItem, Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { TrashIcon } from '@patternfly/react-icons'; -import { useToggle } from '../../../hooks'; -import { TargetNodeData } from '../../../models/visualization'; +import { useToggle } from '../../../hooks/useToggle'; +import { TargetNodeData } from '../../../models/datamapper/visualization'; import { VisualizationService } from '../../../services/visualization.service'; import { useCanvas } from '../../../hooks/useCanvas'; -import { ConditionItem } from '../../../models/mapping'; +import { ConditionItem } from '../../../models/datamapper/mapping'; type DeleteItemProps = { nodeData: TargetNodeData; diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx b/packages/ui/src/components/Document/actions/DeleteParameterButton.test.tsx similarity index 75% rename from packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx rename to packages/ui/src/components/Document/actions/DeleteParameterButton.test.tsx index f6731f6b8..63e636798 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.test.tsx +++ b/packages/ui/src/components/Document/actions/DeleteParameterButton.test.tsx @@ -1,11 +1,11 @@ import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; -import { DataMapperProvider } from '../../../providers'; -import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; import { DeleteParameterButton } from './DeleteParameterButton'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { useDataMapper } from '../../../hooks'; -import { IDocument, PrimitiveDocument } from '../../../models/document'; -import { DocumentType } from '../../../models/path'; +import { useDataMapper } from '../../../hooks/useDataMapper'; +import { IDocument, PrimitiveDocument } from '../../../models/datamapper/document'; +import { DocumentType } from '../../../models/datamapper/path'; describe('DeleteParameterButton', () => { it('should delete a parameter', async () => { @@ -23,11 +23,11 @@ describe('DeleteParameterButton', () => { }; render( - + - + , ); const deleteBtn = await screen.findByTestId('delete-parameter-testparam1-button'); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.tsx b/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx similarity index 93% rename from packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.tsx rename to packages/ui/src/components/Document/actions/DeleteParameterButton.tsx index 9eab9b303..60802f024 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DeleteParameterButton.tsx +++ b/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx @@ -1,10 +1,11 @@ import { FunctionComponent, useCallback } from 'react'; import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { TrashIcon } from '@patternfly/react-icons'; -import { useDataMapper, useToggle } from '../../../hooks'; +import { useToggle } from '../../../hooks/useToggle'; +import { useDataMapper } from '../../../hooks/useDataMapper'; import { MappingService } from '../../../services/mapping.service'; -import { DocumentType } from '../../../models/path'; +import { DocumentType } from '../../../models/datamapper/path'; import { useCanvas } from '../../../hooks/useCanvas'; type DeleteParameterProps = { diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx b/packages/ui/src/components/Document/actions/DetachSchemaButton.test.tsx similarity index 77% rename from packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx rename to packages/ui/src/components/Document/actions/DetachSchemaButton.test.tsx index 877495d7e..79d8316d4 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.test.tsx +++ b/packages/ui/src/components/Document/actions/DetachSchemaButton.test.tsx @@ -1,12 +1,13 @@ import { act, fireEvent, render, screen } from '@testing-library/react'; -import { DataMapperProvider } from '../../../providers'; -import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; import { DetachSchemaButton } from './DetachSchemaButton'; -import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../../../models/document'; -import { DocumentType } from '../../../models/path'; +import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../../../models/datamapper/document'; +import { DocumentType } from '../../../models/datamapper/path'; import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; -import { useDataMapper } from '../../../hooks'; -import { TestUtil } from '../../../test/test-util'; +import { useDataMapper } from '../../../hooks/useDataMapper'; + +import { TestUtil } from '../../../stubs/data-mapper'; describe('DetachSchemaButton', () => { it('should detach the schema', async () => { @@ -27,11 +28,11 @@ describe('DetachSchemaButton', () => { }; render( - + - + , ); const detachBtn = await screen.findByTestId('detach-schema-sourceBody-Body-button'); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/Document/actions/DetachSchemaButton.tsx similarity index 93% rename from packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx rename to packages/ui/src/components/Document/actions/DetachSchemaButton.tsx index 635798e53..fb055ade2 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DetachSchemaButton.tsx +++ b/packages/ui/src/components/Document/actions/DetachSchemaButton.tsx @@ -17,9 +17,10 @@ import { Button, Modal, ModalVariant, Tooltip } from '@patternfly/react-core'; import { FunctionComponent, useCallback } from 'react'; import { ExportIcon } from '@patternfly/react-icons'; -import { useDataMapper, useToggle } from '../../../hooks'; -import { DocumentDefinition, DocumentDefinitionType } from '../../../models/document'; -import { DocumentType } from '../../../models/path'; +import { useDataMapper } from '../../../hooks/useDataMapper'; +import { useToggle } from '../../../hooks/useToggle'; +import { DocumentDefinition, DocumentDefinitionType } from '../../../models/datamapper/document'; +import { DocumentType } from '../../../models/datamapper/path'; import { useCanvas } from '../../../hooks/useCanvas'; type DeleteSchemaProps = { diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx b/packages/ui/src/components/Document/actions/DocumentActions.test.tsx similarity index 56% rename from packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx rename to packages/ui/src/components/Document/actions/DocumentActions.test.tsx index 240e86c68..9ce632f0f 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.test.tsx +++ b/packages/ui/src/components/Document/actions/DocumentActions.test.tsx @@ -1,18 +1,18 @@ import { DocumentActions } from './DocumentActions'; import { render, screen } from '@testing-library/react'; -import { DocumentNodeData } from '../../../models/visualization'; -import { TestUtil } from '../../../test/test-util'; -import { DataMapperProvider } from '../../../providers'; -import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { DocumentNodeData } from '../../../models/datamapper/visualization'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; +import { TestUtil } from '../../../stubs/data-mapper'; describe('DocumentActions', () => { it('should render', async () => { const docData = new DocumentNodeData(TestUtil.createSourceOrderDoc()); render( - + - + , ); expect(await screen.findByTestId('attach-schema-sourceBody-ShipOrder.xsd-button')); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.tsx b/packages/ui/src/components/Document/actions/DocumentActions.tsx similarity index 90% rename from packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.tsx rename to packages/ui/src/components/Document/actions/DocumentActions.tsx index ac7bbe671..4edfd7b62 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/DocumentActions.tsx +++ b/packages/ui/src/components/Document/actions/DocumentActions.tsx @@ -1,8 +1,8 @@ import { ActionListGroup, ActionListItem } from '@patternfly/react-core'; import { AttachSchemaButton } from './AttachSchemaButton'; import { DetachSchemaButton } from './DetachSchemaButton'; -import { DocumentType } from '../../../models/path'; -import { DocumentNodeData } from '../../../models/visualization'; +import { DocumentType } from '../../../models/datamapper/path'; +import { DocumentNodeData } from '../../../models/datamapper/visualization'; import { DeleteParameterButton } from './DeleteParameterButton'; import { FunctionComponent, MouseEvent, useCallback } from 'react'; diff --git a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx b/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx similarity index 59% rename from packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx rename to packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx index 82c8526df..83ff88056 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.test.tsx +++ b/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx @@ -1,12 +1,12 @@ import { ExpressionEditorAction } from './ExpressionEditorAction'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { MappingTree, ValueSelector } from '../../../models/mapping'; -import { TestUtil } from '../../../test/test-util'; -import { DocumentType } from '../../../models/path'; -import { BODY_DOCUMENT_ID } from '../../../models/document'; -import { TargetDocumentNodeData } from '../../../models/visualization'; -import { DataMapperProvider } from '../../../providers'; -import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { MappingTree, ValueSelector } from '../../../models/datamapper/mapping'; +import { DocumentType } from '../../../models/datamapper/path'; +import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; +import { TargetDocumentNodeData } from '../../../models/datamapper/visualization'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; +import { TestUtil } from '../../../stubs/data-mapper'; describe('ExpressionEditorAction', () => { it('should open expression editor modal', async () => { @@ -15,9 +15,9 @@ describe('ExpressionEditorAction', () => { const docData = new TargetDocumentNodeData(doc, tree); render( - + - + , ); const editBtn = await screen.findByTestId(`edit-expression-button-${docData.id}`); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.tsx b/packages/ui/src/components/Document/actions/ExpressionEditorAction.tsx similarity index 89% rename from packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.tsx rename to packages/ui/src/components/Document/actions/ExpressionEditorAction.tsx index 71692b3a6..7b7e6afe1 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionEditorAction.tsx +++ b/packages/ui/src/components/Document/actions/ExpressionEditorAction.tsx @@ -1,9 +1,9 @@ -import { TargetNodeData } from '../../../models/visualization'; -import { ExpressionItem } from '../../../models/mapping'; +import { TargetNodeData } from '../../../models/datamapper/visualization'; +import { ExpressionItem } from '../../../models/datamapper/mapping'; import { FunctionComponent, useCallback, useState } from 'react'; import { ActionListItem, Button, Modal, ModalVariant } from '@patternfly/react-core'; import { PencilAltIcon } from '@patternfly/react-icons'; -import { ExpressionEditor } from '../../expression/ExpressionEditor'; +import { ExpressionEditor } from '../../Expression/ExpressionEditor'; type ExpressionEditorProps = { nodeData: TargetNodeData; diff --git a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.test.tsx b/packages/ui/src/components/Document/actions/ExpressionInputAction.test.tsx similarity index 78% rename from packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.test.tsx rename to packages/ui/src/components/Document/actions/ExpressionInputAction.test.tsx index a8b73266c..6e379d19f 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.test.tsx +++ b/packages/ui/src/components/Document/actions/ExpressionInputAction.test.tsx @@ -1,8 +1,8 @@ import { ExpressionInputAction } from './ExpressionInputAction'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { MappingTree, ValueSelector } from '../../../models/mapping'; -import { BODY_DOCUMENT_ID } from '../../../models/document'; -import { DocumentType } from '../../../models/path'; +import { MappingTree, ValueSelector } from '../../../models/datamapper/mapping'; +import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; +import { DocumentType } from '../../../models/datamapper/path'; describe('ExpressionInputAction', () => { it('should update expression', () => { diff --git a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.tsx b/packages/ui/src/components/Document/actions/ExpressionInputAction.tsx similarity index 93% rename from packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.tsx rename to packages/ui/src/components/Document/actions/ExpressionInputAction.tsx index 36ad3fbd9..70aab25ee 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/ExpressionInputAction.tsx +++ b/packages/ui/src/components/Document/actions/ExpressionInputAction.tsx @@ -1,4 +1,4 @@ -import { ExpressionItem } from '../../../models/mapping'; +import { ExpressionItem } from '../../../models/datamapper/mapping'; import { FormEvent, FunctionComponent, useCallback } from 'react'; import { ActionListItem, InputGroup, InputGroupItem, TextInput } from '@patternfly/react-core'; diff --git a/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx b/packages/ui/src/components/Document/actions/TargetNodeActions.test.tsx similarity index 70% rename from packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx rename to packages/ui/src/components/Document/actions/TargetNodeActions.test.tsx index 353b81541..d1e955cd9 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.test.tsx +++ b/packages/ui/src/components/Document/actions/TargetNodeActions.test.tsx @@ -1,12 +1,12 @@ import { TargetNodeActions } from './TargetNodeActions'; import { render, screen } from '@testing-library/react'; -import { MappingNodeData, TargetDocumentNodeData } from '../../../models/visualization'; -import { TestUtil } from '../../../test/test-util'; -import { MappingTree, ValueSelector } from '../../../models/mapping'; -import { DocumentType } from '../../../models/path'; -import { BODY_DOCUMENT_ID } from '../../../models/document'; -import { DataMapperProvider } from '../../../providers'; -import { CanvasProvider } from '../../../providers/CanvasProvider'; +import { MappingNodeData, TargetDocumentNodeData } from '../../../models/datamapper/visualization'; +import { MappingTree, ValueSelector } from '../../../models/datamapper/mapping'; +import { DocumentType } from '../../../models/datamapper/path'; +import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; +import { DataMapperProvider } from '../../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; +import { TestUtil } from '../../../stubs/data-mapper'; describe('TargetNodeActions', () => { it('should render', async () => { @@ -24,9 +24,9 @@ describe('TargetNodeActions', () => { const mappingData = new MappingNodeData(docData, new ValueSelector(tree)); render( - + - + , ); expect(await screen.findByTestId('transformation-expression-input')).toBeTruthy(); diff --git a/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.tsx b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx similarity index 95% rename from packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.tsx rename to packages/ui/src/components/Document/actions/TargetNodeActions.tsx index be72c23b5..e32c43a37 100644 --- a/packages/ui/src/components/DataMapper/components/document/actions/TargetNodeActions.tsx +++ b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx @@ -4,7 +4,7 @@ import { ExpressionInputAction } from './ExpressionInputAction'; import { DeleteMappingItemAction } from './DeleteMappingItemAction'; import { ConditionMenuAction } from './ConditionMenuAction'; import { ExpressionEditorAction } from './ExpressionEditorAction'; -import { TargetNodeData } from '../../../models/visualization'; +import { TargetNodeData } from '../../../models/datamapper/visualization'; import { VisualizationService } from '../../../services/visualization.service'; type TargetNodeActionsProps = { diff --git a/packages/ui/src/components/DataMapper/components/expression/ExpressionEditor.tsx b/packages/ui/src/components/Expression/ExpressionEditor.tsx similarity index 93% rename from packages/ui/src/components/DataMapper/components/expression/ExpressionEditor.tsx rename to packages/ui/src/components/Expression/ExpressionEditor.tsx index 687ff6cf8..e8a82c550 100644 --- a/packages/ui/src/components/DataMapper/components/expression/ExpressionEditor.tsx +++ b/packages/ui/src/components/Expression/ExpressionEditor.tsx @@ -13,12 +13,12 @@ import { TabTitleText, } from '@patternfly/react-core'; import { ArrowRightIcon } from '@patternfly/react-icons'; -import { ExpressionItem } from '../../models/mapping'; +import { ExpressionItem } from '../../models/datamapper/mapping'; import { XPathService } from '../../services/xpath/xpath.service'; import { FunctionGroup } from '../../services/xpath/xpath-parser'; -import { SourcePanel } from '../../layout/views/SourcePanel'; -import { NodeContainer } from '../document/NodeContainer'; -import { XPathEditor } from './monaco/XPathEditor'; +import { SourcePanel } from '../View/SourcePanel'; +import { NodeContainer } from '../Document/NodeContainer'; +import { XPathEditor } from './XPathEditor'; import { ExpressionEditorDnDHandler } from '../../providers/dnd/ExpressionEditorDnDHandler'; import { useCanvas } from '../../hooks/useCanvas'; diff --git a/packages/ui/src/components/DataMapper/components/expression/FunctionIcon.test.tsx b/packages/ui/src/components/Expression/FunctionIcon.test.tsx similarity index 100% rename from packages/ui/src/components/DataMapper/components/expression/FunctionIcon.test.tsx rename to packages/ui/src/components/Expression/FunctionIcon.test.tsx diff --git a/packages/ui/src/components/DataMapper/components/expression/FunctionIcon.tsx b/packages/ui/src/components/Expression/FunctionIcon.tsx similarity index 100% rename from packages/ui/src/components/DataMapper/components/expression/FunctionIcon.tsx rename to packages/ui/src/components/Expression/FunctionIcon.tsx diff --git a/packages/ui/src/components/DataMapper/components/expression/Transformation.scss b/packages/ui/src/components/Expression/Transformation.scss similarity index 100% rename from packages/ui/src/components/DataMapper/components/expression/Transformation.scss rename to packages/ui/src/components/Expression/Transformation.scss diff --git a/packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.scss b/packages/ui/src/components/Expression/XPathEditor.scss similarity index 100% rename from packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.scss rename to packages/ui/src/components/Expression/XPathEditor.scss diff --git a/packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.tsx b/packages/ui/src/components/Expression/XPathEditor.tsx similarity index 96% rename from packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.tsx rename to packages/ui/src/components/Expression/XPathEditor.tsx index 2b798e2bf..0364825ca 100644 --- a/packages/ui/src/components/DataMapper/components/expression/monaco/XPathEditor.tsx +++ b/packages/ui/src/components/Expression/XPathEditor.tsx @@ -2,7 +2,7 @@ import { FunctionComponent, KeyboardEvent, MouseEvent, useCallback, useEffect, u import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; import './XPathEditor.scss'; import { xpathEditorConstrufctionOption, xpathEditorTheme } from './monaco-options'; -import { XPathService } from '../../../services/xpath/xpath.service'; +import { XPathService } from '../../services/xpath/xpath.service'; type XPathEditorProps = { expression: string; diff --git a/packages/ui/src/components/DataMapper/components/expression/monaco/monaco-options.ts b/packages/ui/src/components/Expression/monaco-options.ts similarity index 96% rename from packages/ui/src/components/DataMapper/components/expression/monaco/monaco-options.ts rename to packages/ui/src/components/Expression/monaco-options.ts index 394d67e65..29c591178 100644 --- a/packages/ui/src/components/DataMapper/components/expression/monaco/monaco-options.ts +++ b/packages/ui/src/components/Expression/monaco-options.ts @@ -6,8 +6,8 @@ export const xpathEditorTheme = { rules: [ { token: 'identifier', foreground: '0b3c0b', fontStyle: 'bold' }, { token: 'action', foreground: '641564', fontStyle: 'italic' }, - { token: 'number', foreground: '0f2386', fontStyle: 'none' }, - { token: 'number.float', foreground: '0f2386', fontStyle: 'none' }, + { token: 'number', foreground: '0f2386', fontStyle: 'none' }, // notsecret + { token: 'number.float', foreground: '0f2386', fontStyle: 'none' }, // notsecret ], colors: { 'editor.foreground': '#000000', diff --git a/packages/ui/src/components/DataMapper/layout/views/MappingLink.tsx b/packages/ui/src/components/View/MappingLink.tsx similarity index 97% rename from packages/ui/src/components/DataMapper/layout/views/MappingLink.tsx rename to packages/ui/src/components/View/MappingLink.tsx index bffe2f850..1f03aaeec 100644 --- a/packages/ui/src/components/DataMapper/layout/views/MappingLink.tsx +++ b/packages/ui/src/components/View/MappingLink.tsx @@ -1,7 +1,7 @@ import { FunctionComponent, MutableRefObject, useCallback, useEffect, useState } from 'react'; import { useCanvas } from '../../hooks/useCanvas'; -import { useDataMapper } from '../../hooks'; -import { NodeReference } from '../../providers/CanvasProvider'; +import { useDataMapper } from '../../hooks/useDataMapper'; +import { NodeReference } from '../../providers/datamapper-canvas.provider'; import { MappingService } from '../../services/mapping.service'; type LineCoord = { diff --git a/packages/ui/src/components/DataMapper/layout/views/SourcePanel.tsx b/packages/ui/src/components/View/SourcePanel.tsx similarity index 85% rename from packages/ui/src/components/DataMapper/layout/views/SourcePanel.tsx rename to packages/ui/src/components/View/SourcePanel.tsx index 73d026300..d94166529 100644 --- a/packages/ui/src/components/DataMapper/layout/views/SourcePanel.tsx +++ b/packages/ui/src/components/View/SourcePanel.tsx @@ -9,10 +9,10 @@ import { TextContent, TextVariants, } from '@patternfly/react-core'; -import { Parameters } from '../../components/document/Parameters'; -import { useDataMapper } from '../../hooks'; +import { Parameters } from '../Document/Parameters'; +import { useDataMapper } from '../../hooks/useDataMapper'; import { useCanvas } from '../../hooks/useCanvas'; -import { SourceDocument } from '../../components/document/SourceDocument'; +import { SourceDocument } from '../Document/SourceDocument'; export const SourcePanel: FunctionComponent = () => { const { sourceBodyDocument } = useDataMapper(); diff --git a/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.scss b/packages/ui/src/components/View/SourceTargetView.scss similarity index 100% rename from packages/ui/src/components/DataMapper/layout/views/SourceTargetView.scss rename to packages/ui/src/components/View/SourceTargetView.scss diff --git a/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx b/packages/ui/src/components/View/SourceTargetView.test.tsx similarity index 81% rename from packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx rename to packages/ui/src/components/View/SourceTargetView.test.tsx index 35e3188b2..a91f3a74a 100644 --- a/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.test.tsx +++ b/packages/ui/src/components/View/SourceTargetView.test.tsx @@ -1,24 +1,25 @@ import { act, fireEvent, render, screen } from '@testing-library/react'; -import { DataMapperProvider } from '../../providers'; -import { CanvasProvider } from '../../providers/CanvasProvider'; +import { DataMapperProvider } from '../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; import { SourceTargetView } from './SourceTargetView'; -import { TestUtil } from '../../test/test-util'; + +import { shipOrderXsd } from '../../stubs/data-mapper'; describe('SourceTargetView', () => { describe('Source Body Document', () => { it('should attach and detach schema', async () => { render( - + - + , ); const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); act(() => { fireEvent.click(attachButton); }); - const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + const fileContent = new File([new Blob([shipOrderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); act(() => { fireEvent.click(attachButton); }); @@ -43,16 +44,16 @@ describe('SourceTargetView', () => { it('should attach and detach schema', async () => { render( - + - + , ); const attachButton = await screen.findByTestId('attach-schema-targetBody-Body-button'); act(() => { fireEvent.click(attachButton); }); - const fileContent = new File([new Blob([TestUtil.orderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); + const fileContent = new File([new Blob([shipOrderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); act(() => { fireEvent.click(attachButton); }); diff --git a/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.tsx b/packages/ui/src/components/View/SourceTargetView.tsx similarity index 93% rename from packages/ui/src/components/DataMapper/layout/views/SourceTargetView.tsx rename to packages/ui/src/components/View/SourceTargetView.tsx index e2ad470df..fe395c88d 100644 --- a/packages/ui/src/components/DataMapper/layout/views/SourceTargetView.tsx +++ b/packages/ui/src/components/View/SourceTargetView.tsx @@ -11,13 +11,13 @@ import { TextVariants, } from '@patternfly/react-core'; import { FunctionComponent, useEffect } from 'react'; -import { useDataMapper } from '../../hooks'; +import { useDataMapper } from '../../hooks/useDataMapper'; import { MappingLinksContainer } from './MappingLink'; import './SourceTargetView.scss'; import { useCanvas } from '../../hooks/useCanvas'; import { SourcePanel } from './SourcePanel'; import { SourceTargetDnDHandler } from '../../providers/dnd/SourceTargetDnDHandler'; -import { TargetDocument } from '../../components/document/TargetDocument'; +import { TargetDocument } from '../Document/TargetDocument'; export const SourceTargetView: FunctionComponent = () => { const { targetBodyDocument } = useDataMapper(); diff --git a/packages/ui/src/components/DataMapper/hooks/useCanvas.tsx b/packages/ui/src/hooks/useCanvas.tsx similarity index 74% rename from packages/ui/src/components/DataMapper/hooks/useCanvas.tsx rename to packages/ui/src/hooks/useCanvas.tsx index 183af3b9e..8d323556e 100644 --- a/packages/ui/src/components/DataMapper/hooks/useCanvas.tsx +++ b/packages/ui/src/hooks/useCanvas.tsx @@ -1,4 +1,4 @@ -import { CanvasContext, ICanvasContext } from '../providers/CanvasProvider'; +import { CanvasContext, ICanvasContext } from '../providers/datamapper-canvas.provider'; import { useContext } from 'react'; export const errorMessage = 'useCanvas should be called into CanvasProvider'; diff --git a/packages/ui/src/components/DataMapper/hooks/useDataMapper.ts b/packages/ui/src/hooks/useDataMapper.ts similarity index 93% rename from packages/ui/src/components/DataMapper/hooks/useDataMapper.ts rename to packages/ui/src/hooks/useDataMapper.ts index 07778617e..60393692e 100644 --- a/packages/ui/src/components/DataMapper/hooks/useDataMapper.ts +++ b/packages/ui/src/hooks/useDataMapper.ts @@ -1,5 +1,5 @@ import { useContext } from 'react'; -import { DataMapperContext, IDataMapperContext } from '../providers/DataMapperProvider'; +import { DataMapperContext, IDataMapperContext } from '../providers/datamapper.provider'; export const errorMessage = 'useDataMapper should be called into DataMapperProvider'; diff --git a/packages/ui/src/components/DataMapper/hooks/useToggle.ts b/packages/ui/src/hooks/useToggle.ts similarity index 100% rename from packages/ui/src/components/DataMapper/hooks/useToggle.ts rename to packages/ui/src/hooks/useToggle.ts diff --git a/packages/ui/src/components/DataMapper/models/document.ts b/packages/ui/src/models/datamapper/document.ts similarity index 96% rename from packages/ui/src/components/DataMapper/models/document.ts rename to packages/ui/src/models/datamapper/document.ts index 09513d756..2d4c5229c 100644 --- a/packages/ui/src/components/DataMapper/models/document.ts +++ b/packages/ui/src/models/datamapper/document.ts @@ -1,6 +1,6 @@ import { Types } from './types'; import { DocumentType, NodePath } from './path'; -import { CommonUtil } from '../util'; +import { generateRandomId } from '../../utils/generate-random-id'; export const DEFAULT_MIN_OCCURS = 0; export const DEFAULT_MAX_OCCURS = 1; @@ -81,7 +81,7 @@ export class BaseField implements IField { public ownerDocument: IDocument, public name: string, ) { - this.id = CommonUtil.generateRandomId(`field-${this.name}`, 4); + this.id = generateRandomId(`field-${this.name}`, 4); this.path = NodePath.childOf(parent.path, this.id); } diff --git a/packages/ui/src/models/datamapper/index.ts b/packages/ui/src/models/datamapper/index.ts new file mode 100644 index 000000000..29d39d62d --- /dev/null +++ b/packages/ui/src/models/datamapper/index.ts @@ -0,0 +1,6 @@ +export * from './document'; +export * from './mapping'; +export * from './path'; +export * from './types'; +export * from './view'; +export * from './visualization'; diff --git a/packages/ui/src/components/DataMapper/models/mapping.ts b/packages/ui/src/models/datamapper/mapping.ts similarity index 97% rename from packages/ui/src/components/DataMapper/models/mapping.ts rename to packages/ui/src/models/datamapper/mapping.ts index 2bef29f9f..ca42004b8 100644 --- a/packages/ui/src/components/DataMapper/models/mapping.ts +++ b/packages/ui/src/models/datamapper/mapping.ts @@ -1,7 +1,7 @@ import { IField } from './document'; -import { CommonUtil } from '../util'; import { DocumentType, NodePath, Path } from './path'; import { Types } from './types'; +import { generateRandomId } from '../../utils/generate-random-id'; export type MappingParentType = MappingTree | MappingItem; @@ -56,7 +56,7 @@ export abstract class ConditionItem extends MappingItem { public parent: MappingParentType, public name: string, ) { - super(parent, name, CommonUtil.generateRandomId(name, 4)); + super(parent, name, generateRandomId(name, 4)); } readonly isCondition = true; } diff --git a/packages/ui/src/components/DataMapper/models/path.ts b/packages/ui/src/models/datamapper/path.ts similarity index 100% rename from packages/ui/src/components/DataMapper/models/path.ts rename to packages/ui/src/models/datamapper/path.ts diff --git a/packages/ui/src/components/DataMapper/models/types.ts b/packages/ui/src/models/datamapper/types.ts similarity index 100% rename from packages/ui/src/components/DataMapper/models/types.ts rename to packages/ui/src/models/datamapper/types.ts diff --git a/packages/ui/src/components/DataMapper/models/view.ts b/packages/ui/src/models/datamapper/view.ts similarity index 100% rename from packages/ui/src/components/DataMapper/models/view.ts rename to packages/ui/src/models/datamapper/view.ts diff --git a/packages/ui/src/components/DataMapper/models/visualization.test.ts b/packages/ui/src/models/datamapper/visualization.test.ts similarity index 100% rename from packages/ui/src/components/DataMapper/models/visualization.test.ts rename to packages/ui/src/models/datamapper/visualization.test.ts diff --git a/packages/ui/src/components/DataMapper/models/visualization.ts b/packages/ui/src/models/datamapper/visualization.ts similarity index 100% rename from packages/ui/src/components/DataMapper/models/visualization.ts rename to packages/ui/src/models/datamapper/visualization.ts diff --git a/packages/ui/src/pages/DataMapper/DataMapper.test.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx similarity index 75% rename from packages/ui/src/pages/DataMapper/DataMapper.test.tsx rename to packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx index d1da70da4..9b215086b 100644 --- a/packages/ui/src/pages/DataMapper/DataMapper.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx @@ -1,19 +1,19 @@ -import { DataMapper } from './DataMapper'; +import { DataMapperPage } from './DataMapperPage'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { TestUtil } from '../../components/DataMapper/test/test-util'; import { BODY_DOCUMENT_ID, DocumentDefinition, DocumentDefinitionType, DocumentInitializationModel, -} from '../../components/DataMapper/models/document'; -import { DocumentType } from '../../components/DataMapper/models/path'; +} from '../../models/datamapper/document'; +import { DocumentType } from '../../models/datamapper/path'; +import { shipOrderToShipOrderXslt, shipOrderXsd } from '../../stubs/data-mapper'; -describe('DataMapper', () => { +describe('DataMapperPage', () => { it('should render initial XSLT mappings', () => { console.log(__dirname); - render(); + render(); // TODO assert mappings are restored even without loading schema... But how? Lines are not drawn... }); @@ -23,13 +23,13 @@ describe('DataMapper', () => { DocumentType.SOURCE_BODY, DocumentDefinitionType.XML_SCHEMA, BODY_DOCUMENT_ID, - [TestUtil.orderXsd], + [shipOrderXsd], ); documentInitializationModel.targetBody = new DocumentDefinition( DocumentType.TARGET_BODY, DocumentDefinitionType.XML_SCHEMA, BODY_DOCUMENT_ID, - [TestUtil.orderXsd], + [shipOrderXsd], ); documentInitializationModel.sourceParameters['testparam1'] = new DocumentDefinition( DocumentType.PARAM, @@ -39,9 +39,9 @@ describe('DataMapper', () => { const onUpdateMappings = jest.fn(); const onUpdateDocument = jest.fn(); render( - , @@ -58,13 +58,8 @@ describe('DataMapper', () => { // TODO assert mappings are restored even without loading schema... But how? Lines are not drawn... }); - it('should render toolbar menu in standalone mode', async () => { - render(); - expect(await screen.findByTestId('main-menu-button')).toBeInTheDocument(); - }); - it('should not render toolbar menu in embedded mode', async () => { - render(); + render(); try { await screen.findByTestId('main-menu-button'); fail(); diff --git a/packages/ui/src/pages/DataMapper/DataMapper.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx similarity index 71% rename from packages/ui/src/pages/DataMapper/DataMapper.tsx rename to packages/ui/src/pages/DataMapper/DataMapperPage.tsx index b715a8f09..0f41fad63 100644 --- a/packages/ui/src/pages/DataMapper/DataMapper.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx @@ -14,12 +14,10 @@ limitations under the License. */ import { FunctionComponent } from 'react'; -import { StandaloneLayout } from '../../components/DataMapper/layout'; - -import { MainCanvas } from '../../components/DataMapper/layout/MainCanvas'; -import { DataMapperProvider } from '../../components/DataMapper/providers'; -import { CanvasProvider } from '../../components/DataMapper/providers/CanvasProvider'; -import { DocumentDefinition, DocumentInitializationModel } from '../../components/DataMapper/models/document'; +import { DataMapper } from '../../components/DataMapper/DataMapper'; +import { DataMapperProvider } from '../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; +import { DocumentDefinition, DocumentInitializationModel } from '../../models/datamapper/document'; export interface IDataMapperProps { modalsContainerId?: string; @@ -30,12 +28,11 @@ export interface IDataMapperProps { isEmbedded?: boolean; } -export const DataMapper: FunctionComponent = ({ +export const DataMapperPage: FunctionComponent = ({ documentInitializationModel, onUpdateDocument, initialXsltFile, onUpdateMappings, - isEmbedded, }) => { return ( <> @@ -45,10 +42,12 @@ export const DataMapper: FunctionComponent = ({ initialXsltFile={initialXsltFile} onUpdateMappings={onUpdateMappings} > - {isEmbedded ? : } + + + ); }; -export default DataMapper; +export default DataMapperPage; diff --git a/packages/ui/src/pages/DataMapper/router-exports.tsx b/packages/ui/src/pages/DataMapper/router-exports.tsx index bd070eefe..6171be0da 100644 --- a/packages/ui/src/pages/DataMapper/router-exports.tsx +++ b/packages/ui/src/pages/DataMapper/router-exports.tsx @@ -1,3 +1,3 @@ -import { DataMapper } from './DataMapper'; +import { DataMapperPage } from './DataMapperPage'; -export const element = ; +export const element = ; diff --git a/packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx b/packages/ui/src/providers/datamapper-canvas.provider.test.tsx similarity index 59% rename from packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx rename to packages/ui/src/providers/datamapper-canvas.provider.test.tsx index 9fa4f19d4..e52470b9c 100644 --- a/packages/ui/src/components/DataMapper/providers/CanvasProvider.test.tsx +++ b/packages/ui/src/providers/datamapper-canvas.provider.test.tsx @@ -1,31 +1,27 @@ -import { CanvasProvider } from './CanvasProvider'; +import { DataMapperCanvasProvider } from './datamapper-canvas.provider'; import { render } from '@testing-library/react'; -import { DataMapperProvider } from './DataMapperProvider'; +import { DataMapperProvider } from './datamapper.provider'; import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; -import { SourceTargetView } from '../layout/views'; -import { useDataMapper } from '../hooks'; -import { DocumentType } from '../models/path'; -import { TestUtil } from '../test/test-util'; +import { SourceTargetView } from '../components/View/SourceTargetView'; +import { useDataMapper } from '../hooks/useDataMapper'; +import { DocumentType } from '../models/datamapper/path'; import { useCanvas } from '../hooks/useCanvas'; -import { BODY_DOCUMENT_ID } from '../models/document'; -import { MappingSerializerService } from '../services/mapping-serializer.service'; +import { BODY_DOCUMENT_ID } from '../models/datamapper/document'; import { screen } from '@testing-library/react'; -import { StandaloneLayout } from '../layout'; -import { MappingService } from '../services/mapping.service'; -import { IMappingLink } from '../models/visualization'; +import { TestUtil } from '../stubs/data-mapper'; describe('CanvasProvider', () => { it('should render', () => { render( - + , ); }); it('should fail if not within DataMapperProvider', () => { const thrower = () => { - render(); + render(); }; expect(thrower).toThrow(); }); @@ -62,11 +58,11 @@ describe('CanvasProvider', () => { }; render( - + - + , ); await screen.findAllByText('ShipOrder'); @@ -106,62 +102,15 @@ describe('CanvasProvider', () => { }; render( - + - + , ); await screen.findAllByText('ShipOrder'); expect(afterNodePaths.length).toBeGreaterThan(10); expect(beforeNodePaths.length).toBeGreaterThan(afterNodePaths.length); }); - - it('should render Documents and mappings', async () => { - let mappingLinks: IMappingLink[] = []; - const LoadMappings: FunctionComponent = ({ children }) => { - const { - mappingTree, - setMappingTree, - sourceParameterMap, - setSourceBodyDocument, - setTargetBodyDocument, - sourceBodyDocument, - } = useDataMapper(); - const { getAllNodePaths, reloadNodeReferences } = useCanvas(); - useEffect(() => { - const sourceDoc = TestUtil.createSourceOrderDoc(); - setSourceBodyDocument(sourceDoc); - const targetDoc = TestUtil.createTargetOrderDoc(); - setTargetBodyDocument(targetDoc); - MappingSerializerService.deserialize( - TestUtil.shipOrderToShipOrderXslt, - targetDoc, - mappingTree, - sourceParameterMap, - ); - setMappingTree(mappingTree); - reloadNodeReferences(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - useEffect(() => { - mappingLinks = MappingService.extractMappingLinks(mappingTree, sourceParameterMap, sourceBodyDocument); - }, [getAllNodePaths, mappingTree, sourceBodyDocument, sourceParameterMap]); - return <>{children}; - }; - render( - - - - - - - , - ); - await screen.findAllByText('ShipOrder'); - const targetNodes = screen.getAllByTestId(/node-target-.*/); - expect(targetNodes.length).toBeGreaterThan(10); - expect(mappingLinks.length).toBeGreaterThan(10); - }); }); diff --git a/packages/ui/src/components/DataMapper/providers/CanvasProvider.tsx b/packages/ui/src/providers/datamapper-canvas.provider.tsx similarity index 95% rename from packages/ui/src/components/DataMapper/providers/CanvasProvider.tsx rename to packages/ui/src/providers/datamapper-canvas.provider.tsx index bc6ac5350..37195eaa1 100644 --- a/packages/ui/src/components/DataMapper/providers/CanvasProvider.tsx +++ b/packages/ui/src/providers/datamapper-canvas.provider.tsx @@ -21,10 +21,10 @@ import { useSensors, } from '@dnd-kit/core'; import { Label } from '@patternfly/react-core'; -import { useDataMapper } from '../hooks'; +import { useDataMapper } from '../hooks/useDataMapper'; import { DnDHandler } from './dnd/DnDHandler'; -import { NodeData } from '../models/visualization'; -import { DocumentType, NodePath } from '../models/path'; +import { NodeData } from '../models/datamapper/visualization'; +import { DocumentType, NodePath } from '../models/datamapper/path'; export interface NodeReference { headerRef: HTMLDivElement | null; @@ -45,7 +45,7 @@ export interface ICanvasContext { export const CanvasContext = createContext(undefined); -export const CanvasProvider: FunctionComponent = (props) => { +export const DataMapperCanvasProvider: FunctionComponent = (props) => { const { mappingTree, refreshMappingTree } = useDataMapper(); const [defaultHandler, setDefaultHandler] = useState(); const [activeHandler, setActiveHandler] = useState(); diff --git a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx b/packages/ui/src/providers/datamapper.provider.tsx similarity index 97% rename from packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx rename to packages/ui/src/providers/datamapper.provider.tsx index fd6ce3ad6..39c2a771f 100644 --- a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.tsx +++ b/packages/ui/src/providers/datamapper.provider.tsx @@ -16,16 +16,16 @@ import { createContext, FunctionComponent, PropsWithChildren, useCallback, useEffect, useMemo, useState } from 'react'; import { Loading } from '../components/Loading'; -import { MappingTree } from '../models/mapping'; +import { MappingTree } from '../models/datamapper/mapping'; import { BODY_DOCUMENT_ID, DocumentDefinition, DocumentInitializationModel, IDocument, PrimitiveDocument, -} from '../models/document'; -import { CanvasView } from '../models/view'; -import { DocumentType } from '../models/path'; +} from '../models/datamapper/document'; +import { CanvasView } from '../models/datamapper/view'; +import { DocumentType } from '../models/datamapper/path'; import { MappingSerializerService } from '../services/mapping-serializer.service'; import { MappingService } from '../services/mapping.service'; import { DocumentService } from '../services/document.service'; diff --git a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx b/packages/ui/src/providers/datamapper.rovider.test.tsx similarity index 83% rename from packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx rename to packages/ui/src/providers/datamapper.rovider.test.tsx index a76bc8f00..f473d596f 100644 --- a/packages/ui/src/components/DataMapper/providers/DataMapperProvider.test.tsx +++ b/packages/ui/src/providers/datamapper.rovider.test.tsx @@ -1,9 +1,9 @@ -import { DataMapperProvider } from './DataMapperProvider'; +import { DataMapperProvider } from './datamapper.provider'; import { render, screen } from '@testing-library/react'; -import { useDataMapper } from '../hooks'; -import { FieldItem, MappingTree } from '../models/mapping'; +import { useDataMapper } from '../hooks/useDataMapper'; +import { FieldItem, MappingTree } from '../models/datamapper/mapping'; import { useEffect } from 'react'; -import { IField } from '../models/document'; +import { IField } from '../models/datamapper/document'; describe('DataMapperProvider', () => { it('should render', () => { diff --git a/packages/ui/src/components/DataMapper/providers/dnd/DnDHandler.ts b/packages/ui/src/providers/dnd/DnDHandler.ts similarity index 82% rename from packages/ui/src/components/DataMapper/providers/dnd/DnDHandler.ts rename to packages/ui/src/providers/dnd/DnDHandler.ts index ef8c8978b..a00425ea3 100644 --- a/packages/ui/src/components/DataMapper/providers/dnd/DnDHandler.ts +++ b/packages/ui/src/providers/dnd/DnDHandler.ts @@ -1,5 +1,5 @@ import { DragEndEvent, DragOverEvent, DragStartEvent } from '@dnd-kit/core'; -import { MappingTree } from '../../models/mapping'; +import { MappingTree } from '../../models/datamapper/mapping'; export interface DnDHandler { handleDragStart(event: DragStartEvent): void; diff --git a/packages/ui/src/components/DataMapper/providers/dnd/ExpressionEditorDnDHandler.ts b/packages/ui/src/providers/dnd/ExpressionEditorDnDHandler.ts similarity index 100% rename from packages/ui/src/components/DataMapper/providers/dnd/ExpressionEditorDnDHandler.ts rename to packages/ui/src/providers/dnd/ExpressionEditorDnDHandler.ts diff --git a/packages/ui/src/components/DataMapper/providers/dnd/SourceTargetDnDHandler.ts b/packages/ui/src/providers/dnd/SourceTargetDnDHandler.ts similarity index 86% rename from packages/ui/src/components/DataMapper/providers/dnd/SourceTargetDnDHandler.ts rename to packages/ui/src/providers/dnd/SourceTargetDnDHandler.ts index bfe949685..12c3256e1 100644 --- a/packages/ui/src/components/DataMapper/providers/dnd/SourceTargetDnDHandler.ts +++ b/packages/ui/src/providers/dnd/SourceTargetDnDHandler.ts @@ -1,7 +1,7 @@ import { DnDHandler } from './DnDHandler'; import { DragEndEvent, DragOverEvent, DragStartEvent } from '@dnd-kit/core'; -import { MappingTree } from '../../models/mapping'; -import { NodeData } from '../../models/visualization'; +import { MappingTree } from '../../models/datamapper/mapping'; +import { NodeData } from '../../models/datamapper/visualization'; import { VisualizationService } from '../../services/visualization.service'; export class SourceTargetDnDHandler implements DnDHandler { diff --git a/packages/ui/src/components/DataMapper/services/document.service.test.ts b/packages/ui/src/services/document.service.test.ts similarity index 96% rename from packages/ui/src/components/DataMapper/services/document.service.test.ts rename to packages/ui/src/services/document.service.test.ts index 3e73563e7..097626e79 100644 --- a/packages/ui/src/components/DataMapper/services/document.service.test.ts +++ b/packages/ui/src/services/document.service.test.ts @@ -1,5 +1,6 @@ import { DocumentService } from './document.service'; -import { TestUtil } from '../test/test-util'; + +import { TestUtil } from '../stubs/data-mapper'; describe('DocumentService', () => { const sourceDoc = TestUtil.createSourceOrderDoc(); diff --git a/packages/ui/src/components/DataMapper/services/document.service.ts b/packages/ui/src/services/document.service.ts similarity index 94% rename from packages/ui/src/components/DataMapper/services/document.service.ts rename to packages/ui/src/services/document.service.ts index d9019a6cd..20715b0c9 100644 --- a/packages/ui/src/components/DataMapper/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -6,10 +6,10 @@ import { IDocument, IField, PrimitiveDocument, -} from '../models/document'; -import { DocumentType } from '../models/path'; -import { CommonUtil } from '../util'; +} from '../models/datamapper/document'; +import { DocumentType } from '../models/datamapper/path'; import { XmlSchemaDocumentService } from './xml-schema-document.service'; +import { readFileAsString } from '../utils/read-file-as-string'; interface InitialDocumentsSet { sourceBodyDocument?: IDocument; @@ -27,7 +27,7 @@ export class DocumentService { if (!definition.definitionFiles || definition.definitionFiles.length === 0) return Promise.resolve(null); return Promise.allSettled( definition.definitionFiles.map((file) => - typeof file === 'string' ? Promise.resolve(file) : CommonUtil.readFileAsString(file), + typeof file === 'string' ? Promise.resolve(file) : readFileAsString(file), ), ).then((results) => { const content = (results[0] as PromiseFulfilledResult).value; diff --git a/packages/ui/src/components/DataMapper/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts similarity index 97% rename from packages/ui/src/components/DataMapper/services/mapping-serializer.service.test.ts rename to packages/ui/src/services/mapping-serializer.service.test.ts index 0db8313c5..74bc4949f 100644 --- a/packages/ui/src/components/DataMapper/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -1,5 +1,5 @@ import { EMPTY_XSL, MappingSerializerService, NS_XSL } from './mapping-serializer.service'; -import { BODY_DOCUMENT_ID } from '../models/document'; +import { BODY_DOCUMENT_ID } from '../models/datamapper/document'; import { ChooseItem, FieldItem, @@ -9,10 +9,11 @@ import { OtherwiseItem, ValueSelector, WhenItem, -} from '../models/mapping'; -import { DocumentType } from '../models/path'; -import { Types } from '../models/types'; -import { TestUtil } from '../test/test-util'; +} from '../models/datamapper/mapping'; +import { DocumentType } from '../models/datamapper/path'; +import { Types } from '../models/datamapper/types'; + +import { shipOrderToShipOrderXslt, TestUtil } from '../stubs/data-mapper'; describe('MappingSerializerService', () => { const sourceParameterMap = TestUtil.createParameterMap(); @@ -46,7 +47,7 @@ describe('MappingSerializerService', () => { let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); expect(Object.keys(mappingTree.namespaceMap).length).toEqual(0); mappingTree = MappingSerializerService.deserialize( - TestUtil.shipOrderToShipOrderXslt, + shipOrderToShipOrderXslt, targetDoc, mappingTree, sourceParameterMap, @@ -184,7 +185,7 @@ describe('MappingSerializerService', () => { it('should serialize mappings', () => { let mappingTree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); mappingTree = MappingSerializerService.deserialize( - TestUtil.shipOrderToShipOrderXslt, + shipOrderToShipOrderXslt, targetDoc, mappingTree, sourceParameterMap, diff --git a/packages/ui/src/components/DataMapper/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts similarity index 98% rename from packages/ui/src/components/DataMapper/services/mapping-serializer.service.ts rename to packages/ui/src/services/mapping-serializer.service.ts index d690adb0a..93c20fabe 100644 --- a/packages/ui/src/components/DataMapper/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -1,4 +1,4 @@ -import { BaseField, IDocument, IField, IParentType, PrimitiveDocument } from '../models/document'; +import { BaseField, IDocument, IField, IParentType, PrimitiveDocument } from '../models/datamapper/document'; import { ChooseItem, FieldItem, @@ -11,9 +11,9 @@ import { ValueSelector, ValueType, WhenItem, -} from '../models/mapping'; +} from '../models/datamapper/mapping'; import xmlFormat from 'xml-formatter'; -import { DocumentType } from '../models/path'; +import { DocumentType } from '../models/datamapper/path'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; export const EMPTY_XSL = ` diff --git a/packages/ui/src/components/DataMapper/services/mapping.service.test.ts b/packages/ui/src/services/mapping.service.test.ts similarity index 96% rename from packages/ui/src/components/DataMapper/services/mapping.service.test.ts rename to packages/ui/src/services/mapping.service.test.ts index b6723740c..9ac765ea0 100644 --- a/packages/ui/src/components/DataMapper/services/mapping.service.test.ts +++ b/packages/ui/src/services/mapping.service.test.ts @@ -1,5 +1,4 @@ import { MappingService } from './mapping.service'; -import { TestUtil } from '../test/test-util'; import { ChooseItem, FieldItem, @@ -9,11 +8,12 @@ import { ValueSelector, ValueType, WhenItem, -} from '../models/mapping'; +} from '../models/datamapper/mapping'; import { MappingSerializerService } from './mapping-serializer.service'; -import { DocumentType } from '../models/path'; +import { DocumentType } from '../models/datamapper/path'; import { XmlSchemaDocument } from './xml-schema-document.service'; -import { IDocument } from '../models/document'; +import { IDocument } from '../models/datamapper/document'; +import { shipOrderToShipOrderXslt, TestUtil } from '../stubs/data-mapper'; describe('MappingService', () => { let sourceDoc: XmlSchemaDocument; @@ -26,7 +26,7 @@ describe('MappingService', () => { targetDoc = TestUtil.createTargetOrderDoc(); paramsMap = TestUtil.createParameterMap(); tree = new MappingTree(targetDoc.documentType, targetDoc.documentId); - MappingSerializerService.deserialize(TestUtil.shipOrderToShipOrderXslt, targetDoc, tree, paramsMap); + MappingSerializerService.deserialize(shipOrderToShipOrderXslt, targetDoc, tree, paramsMap); }); describe('filterMappingsForField()', () => { diff --git a/packages/ui/src/components/DataMapper/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts similarity index 98% rename from packages/ui/src/components/DataMapper/services/mapping.service.ts rename to packages/ui/src/services/mapping.service.ts index 7728ed0d6..fae293332 100644 --- a/packages/ui/src/components/DataMapper/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -12,12 +12,12 @@ import { ForEachItem, ExpressionItem, ValueType, -} from '../models/mapping'; -import { IDocument, IField, PrimitiveDocument } from '../models/document'; +} from '../models/datamapper/mapping'; +import { IDocument, IField, PrimitiveDocument } from '../models/datamapper/document'; import { DocumentService } from './document.service'; import { XPathService } from './xpath/xpath.service'; -import { IMappingLink } from '../models/visualization'; -import { DocumentType, Path } from '../models/path'; +import { IMappingLink } from '../models/datamapper/visualization'; +import { DocumentType, Path } from '../models/datamapper/path'; export class MappingService { static filterMappingsForField(mappings: MappingItem[], field: IField): MappingItem[] { diff --git a/packages/ui/src/components/DataMapper/services/visualization.service.test.ts b/packages/ui/src/services/visualization.service.test.ts similarity index 97% rename from packages/ui/src/components/DataMapper/services/visualization.service.test.ts rename to packages/ui/src/services/visualization.service.test.ts index 66817edfb..30df9b601 100644 --- a/packages/ui/src/components/DataMapper/services/visualization.service.test.ts +++ b/packages/ui/src/services/visualization.service.test.ts @@ -6,12 +6,12 @@ import { TargetDocumentNodeData, TargetFieldNodeData, TargetNodeData, -} from '../models/visualization'; -import { ChooseItem, FieldItem, IfItem, MappingTree, ValueSelector } from '../models/mapping'; -import { TestUtil } from '../test/test-util'; +} from '../models/datamapper/visualization'; +import { ChooseItem, FieldItem, IfItem, MappingTree, ValueSelector } from '../models/datamapper/mapping'; import { XmlSchemaDocument } from './xml-schema-document.service'; import { MappingSerializerService } from './mapping-serializer.service'; -import { IDocument } from '../models/document'; +import { IDocument } from '../models/datamapper/document'; +import { shipOrderToShipOrderXslt, TestUtil } from '../stubs/data-mapper'; describe('VisualizationService', () => { let sourceDoc: XmlSchemaDocument; @@ -178,7 +178,7 @@ describe('VisualizationService', () => { describe('with pre-populated mappings', () => { beforeEach(() => { - MappingSerializerService.deserialize(TestUtil.shipOrderToShipOrderXslt, targetDoc, tree, paramsMap); + MappingSerializerService.deserialize(shipOrderToShipOrderXslt, targetDoc, tree, paramsMap); targetDocNode = new TargetDocumentNodeData(targetDoc, tree); }); diff --git a/packages/ui/src/components/DataMapper/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts similarity index 98% rename from packages/ui/src/components/DataMapper/services/visualization.service.ts rename to packages/ui/src/services/visualization.service.ts index 42fdc3c13..42372b532 100644 --- a/packages/ui/src/components/DataMapper/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -8,7 +8,7 @@ import { TargetNodeData, TargetFieldNodeData, TargetNodeDataType, -} from '../models/visualization'; +} from '../models/datamapper/visualization'; import { ChooseItem, ExpressionItem, @@ -20,8 +20,8 @@ import { OtherwiseItem, ValueSelector, WhenItem, -} from '../models/mapping'; -import { IField, PrimitiveDocument } from '../models/document'; +} from '../models/datamapper/mapping'; +import { IField, PrimitiveDocument } from '../models/datamapper/document'; import { MappingService } from './mapping.service'; type MappingNodePairType = { diff --git a/packages/ui/src/components/DataMapper/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts similarity index 84% rename from packages/ui/src/components/DataMapper/services/xml-schema-document.service.test.ts rename to packages/ui/src/services/xml-schema-document.service.test.ts index d8b7c5245..943470bf9 100644 --- a/packages/ui/src/components/DataMapper/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -1,15 +1,16 @@ import { XmlSchemaDocumentService, XmlSchemaField } from './xml-schema-document.service'; -import { BODY_DOCUMENT_ID } from '../models/document'; -import { DocumentType } from '../models/path'; -import { Types } from '../models/types'; -import { TestUtil } from '../test/test-util'; +import { BODY_DOCUMENT_ID } from '../models/datamapper/document'; +import { DocumentType } from '../models/datamapper/path'; +import { Types } from '../models/datamapper/types'; + +import { shipOrderXsd, testDocumentXsd } from '../stubs/data-mapper'; describe('XmlSchemaDocumentService', () => { it('should parse ShipOrder XML schema', () => { const document = XmlSchemaDocumentService.createXmlSchemaDocument( DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID, - TestUtil.orderXsd, + shipOrderXsd, ); expect(document).toBeDefined(); const shipOrder = XmlSchemaDocumentService.getFirstElement(document.xmlSchema); @@ -27,7 +28,7 @@ describe('XmlSchemaDocumentService', () => { const document = XmlSchemaDocumentService.createXmlSchemaDocument( DocumentType.TARGET_BODY, BODY_DOCUMENT_ID, - TestUtil.testXsd, + testDocumentXsd, ); expect(document).toBeDefined(); const testDoc = XmlSchemaDocumentService.getFirstElement(document.xmlSchema); @@ -40,7 +41,7 @@ describe('XmlSchemaDocumentService', () => { const doc = XmlSchemaDocumentService.createXmlSchemaDocument( DocumentType.SOURCE_BODY, 'ShipOrder.xsd', - TestUtil.orderXsd, + shipOrderXsd, ); expect(doc.documentType).toEqual(DocumentType.SOURCE_BODY); expect(doc.documentId).toEqual('ShipOrder.xsd'); diff --git a/packages/ui/src/components/DataMapper/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts similarity index 98% rename from packages/ui/src/components/DataMapper/services/xml-schema-document.service.ts rename to packages/ui/src/services/xml-schema-document.service.ts index 73eaaa452..577b38c35 100644 --- a/packages/ui/src/components/DataMapper/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -23,9 +23,9 @@ import { XmlSchemaSimpleType, XmlSchemaUse, } from '@kaoto/xml-schema-ts'; -import { BaseDocument, BaseField } from '../models/document'; -import { Types } from '../models/types'; -import { DocumentType } from '../models/path'; +import { BaseDocument, BaseField } from '../models/datamapper/document'; +import { Types } from '../models/datamapper/types'; +import { DocumentType } from '../models/datamapper/path'; export class XmlSchemaDocument extends BaseDocument { rootElement: XmlSchemaElement; diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-boolean.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts similarity index 80% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-boolean.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts index 520180b8a..2682b99a4 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-boolean.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-boolean.ts @@ -1,5 +1,5 @@ -import { Types } from '../../../models/types'; -import { IFunctionDefinition } from '../../../models/mapping'; +import { Types } from '../../../models/datamapper/types'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; /** * 9.3 Boolean - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#boolean-value-functions diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-context.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts similarity index 93% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-context.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts index cad8c70a2..31fc0a45c 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-context.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-context.ts @@ -1,5 +1,5 @@ -import { IFunctionDefinition } from '../../../models/mapping'; -import { Types } from '../../../models/types'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; +import { Types } from '../../../models/datamapper/types'; /** * 16 Context - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#context diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-datetime.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts similarity index 98% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-datetime.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts index f4e64fe4c..869f7a8fd 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-datetime.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-datetime.ts @@ -1,5 +1,5 @@ -import { Types } from '../../../models/types'; -import { IFunctionDefinition } from '../../../models/mapping'; +import { Types } from '../../../models/datamapper/types'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; /** * 10. Date and Time - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#durations-dates-times diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-node.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts similarity index 95% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-node.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts index 76102cc1b..d5e7c1e16 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-node.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-node.ts @@ -1,5 +1,5 @@ -import { Types } from '../../../models/types'; -import { IFunctionDefinition } from '../../../models/mapping'; +import { Types } from '../../../models/datamapper/types'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; /** * 14 Node - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#node-functions diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-numeric.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts similarity index 97% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-numeric.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts index f2ec5fe3e..19a21c9f7 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-numeric.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-numeric.ts @@ -1,4 +1,4 @@ -import { Types } from '../../../models/types'; +import { Types } from '../../../models/datamapper/types'; /** * 6.4 Numeric - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#numeric-value-functions diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-qname.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts similarity index 96% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-qname.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts index 8f1d932d4..74a15930b 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-qname.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-qname.ts @@ -1,5 +1,5 @@ -import { Types } from '../../../models/types'; -import { IFunctionDefinition } from '../../../models/mapping'; +import { Types } from '../../../models/datamapper/types'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; /** * 11 QName - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#QName-funcs diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-sequence.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts similarity index 99% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-sequence.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts index 7ff629048..a265c5888 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-sequence.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-sequence.ts @@ -1,5 +1,5 @@ -import { Types } from '../../../models/types'; -import { IFunctionDefinition } from '../../../models/mapping'; +import { Types } from '../../../models/datamapper/types'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; /** * 15 Sequence - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#sequence-functions diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-string.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts similarity index 98% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-string.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts index 66e9784ed..ade04ea0e 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions-string.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions-string.ts @@ -1,5 +1,5 @@ -import { Types } from '../../../models/types'; -import { IFunctionDefinition } from '../../../models/mapping'; +import { Types } from '../../../models/datamapper/types'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; /** * 7.4 String - https://www.w3.org/TR/2010/REC-xpath-functions-20101214/#string-value-functions diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts similarity index 94% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts index 47515ba14..802b7fb23 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-functions.ts +++ b/packages/ui/src/services/xpath/2.0/xpath-2.0-functions.ts @@ -1,4 +1,4 @@ -import { IFunctionDefinition } from '../../../models/mapping'; +import { IFunctionDefinition } from '../../../models/datamapper/mapping'; import { FunctionGroup } from '../xpath-parser'; import { numericFunctions } from './xpath-2.0-functions-numeric'; import { patternMatchingFunctions, stringFunctions, substringMatchingFunctions } from './xpath-2.0-functions-string'; diff --git a/packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-parser.ts b/packages/ui/src/services/xpath/2.0/xpath-2.0-parser.ts similarity index 100% rename from packages/ui/src/components/DataMapper/services/xpath/2.0/xpath-2.0-parser.ts rename to packages/ui/src/services/xpath/2.0/xpath-2.0-parser.ts diff --git a/packages/ui/src/components/DataMapper/services/xpath/monaco-language.ts b/packages/ui/src/services/xpath/monaco-language.ts similarity index 100% rename from packages/ui/src/components/DataMapper/services/xpath/monaco-language.ts rename to packages/ui/src/services/xpath/monaco-language.ts diff --git a/packages/ui/src/components/DataMapper/services/xpath/xpath-parser.ts b/packages/ui/src/services/xpath/xpath-parser.ts similarity index 100% rename from packages/ui/src/components/DataMapper/services/xpath/xpath-parser.ts rename to packages/ui/src/services/xpath/xpath-parser.ts diff --git a/packages/ui/src/components/DataMapper/services/xpath/xpath.service.test.ts b/packages/ui/src/services/xpath/xpath.service.test.ts similarity index 96% rename from packages/ui/src/components/DataMapper/services/xpath/xpath.service.test.ts rename to packages/ui/src/services/xpath/xpath.service.test.ts index e068b64c2..84691a6b2 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/xpath.service.test.ts +++ b/packages/ui/src/services/xpath/xpath.service.test.ts @@ -1,7 +1,7 @@ import { XPathService } from './xpath.service'; import { createSyntaxDiagramsCode } from 'chevrotain'; import * as fs from 'fs'; -import { IFunctionDefinition } from '../../models/mapping'; +import { IFunctionDefinition } from '../../models/datamapper/mapping'; import { FunctionGroup } from './xpath-parser'; describe('XPathService', () => { diff --git a/packages/ui/src/components/DataMapper/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts similarity index 96% rename from packages/ui/src/components/DataMapper/services/xpath/xpath.service.ts rename to packages/ui/src/services/xpath/xpath.service.ts index 13181092d..28d56ce54 100644 --- a/packages/ui/src/components/DataMapper/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -1,12 +1,12 @@ import { XPath2Parser } from './2.0/xpath-2.0-parser'; import { FunctionGroup, XPathParserResult } from './xpath-parser'; -import { IFunctionDefinition } from '../../models/mapping'; +import { IFunctionDefinition } from '../../models/datamapper/mapping'; import { XPATH_2_0_FUNCTIONS } from './2.0/xpath-2.0-functions'; import { monacoXPathLanguageMetadata } from './monaco-language'; import { CstElement, CstNode } from 'chevrotain'; -import { IField, PrimitiveDocument } from '../../models/document'; +import { IField, PrimitiveDocument } from '../../models/datamapper/document'; import { DocumentService } from '../document.service'; -import { DocumentType } from '../../models/path'; +import { DocumentType } from '../../models/datamapper/path'; export class XPathService { static parser = new XPath2Parser(); diff --git a/packages/ui/src/stubs/data-mapper.ts b/packages/ui/src/stubs/data-mapper.ts index a97f496c0..a98d26d8f 100644 --- a/packages/ui/src/stubs/data-mapper.ts +++ b/packages/ui/src/stubs/data-mapper.ts @@ -1,5 +1,9 @@ import { parse } from 'yaml'; import { DATAMAPPER_ID_PREFIX, XSLT_COMPONENT_NAME } from '../utils'; +import fs from 'fs'; +import { XmlSchemaDocumentService } from '../services/xml-schema-document.service'; +import { DocumentType } from '../models/datamapper/path'; +import { IDocument, PrimitiveDocument } from '../models/datamapper/document'; export const datamapperRouteDefinitionStub = parse(` from: @@ -12,3 +16,38 @@ export const datamapperRouteDefinitionStub = parse(` steps: - to: uri: ${XSLT_COMPONENT_NAME}:transform.xsl`); + +export const shipOrderXsd = fs + .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/ShipOrder.xsd') + .toString(); +export const testDocumentXsd = fs + .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/TestDocument.xsd') + .toString(); +export const shipOrderToShipOrderXslt = fs + .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') + .toString(); + +export class TestUtil { + static createSourceOrderDoc() { + return XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.SOURCE_BODY, 'ShipOrder.xsd', shipOrderXsd); + } + + static createTargetOrderDoc() { + return XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.TARGET_BODY, 'ShipOrder.xsd', shipOrderXsd); + } + + static createParamOrderDoc(name: string) { + const answer = XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.PARAM, name, shipOrderXsd); + answer.name = name; + return answer; + } + + static createParameterMap() { + const sourceParamDoc = TestUtil.createParamOrderDoc('sourceParam1'); + const sourcePrimitiveParamDoc = new PrimitiveDocument(DocumentType.PARAM, 'primitive'); + return new Map([ + ['sourceParam1', sourceParamDoc], + ['primitive', sourcePrimitiveParamDoc], + ]); + } +} diff --git a/packages/ui/src/testing-api.ts b/packages/ui/src/testing-api.ts index 5069677ee..c097d8dfc 100644 --- a/packages/ui/src/testing-api.ts +++ b/packages/ui/src/testing-api.ts @@ -4,6 +4,8 @@ export * from './models'; export * from './providers'; export * from './utils'; export * from './stubs'; +export * from './components/DataMapper/debug'; +export * from './models/datamapper'; /** Re-export public components */ export * from './public-api'; diff --git a/packages/ui/src/utils/generate-random-id.test.ts b/packages/ui/src/utils/generate-random-id.test.ts new file mode 100644 index 000000000..f39f2692f --- /dev/null +++ b/packages/ui/src/utils/generate-random-id.test.ts @@ -0,0 +1,9 @@ +import { generateRandomId } from './generate-random-id'; + +describe('generateRandomId()', () => { + it('should generate', () => { + const generated = generateRandomId('dummy', 4); + expect(generated).toMatch(/dummy-\d{4}/); + expect(generateRandomId('dummy', 4)).not.toEqual(generateRandomId('dummy', 4)); + }); +}); diff --git a/packages/ui/src/utils/generate-random-id.ts b/packages/ui/src/utils/generate-random-id.ts new file mode 100644 index 000000000..7a76adbd5 --- /dev/null +++ b/packages/ui/src/utils/generate-random-id.ts @@ -0,0 +1,5 @@ +export const generateRandomId = (kind: string, length = 4): string => { + const randomNumber = Math.floor(Math.random() * 10 ** length); + const randomNumberString = randomNumber.toString(10).padStart(length, '0'); + return `${kind}-${randomNumberString}`; +}; diff --git a/packages/ui/src/utils/read-file-as-string.test.ts b/packages/ui/src/utils/read-file-as-string.test.ts new file mode 100644 index 000000000..fc8bc777c --- /dev/null +++ b/packages/ui/src/utils/read-file-as-string.test.ts @@ -0,0 +1,11 @@ +import { readFileAsString } from './read-file-as-string'; + +describe('readFileAsString()', () => { + it('should read', async () => { + const file = new File(['foo'], 'foo.txt', { + type: 'text/plain', + }); + const answer = await readFileAsString(file); + expect(answer).toEqual('foo'); + }); +}); diff --git a/packages/ui/src/utils/read-file-as-string.ts b/packages/ui/src/utils/read-file-as-string.ts new file mode 100644 index 000000000..b9dfa4178 --- /dev/null +++ b/packages/ui/src/utils/read-file-as-string.ts @@ -0,0 +1,9 @@ +export const readFileAsString = (file: File): Promise => { + const reader = new FileReader(); + return new Promise((resolve, reject) => { + reader.onload = (e) => { + e.target ? resolve(e.target.result as string) : reject(); + }; + reader.readAsText(file); + }); +}; From 50703e86c7163e1c885ade9d1d5ca708d1a792bb Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 5 Sep 2024 15:40:12 -0400 Subject: [PATCH 356/471] fix: Warning: An update to DataMapperProvider inside a test was not wrapped in act(...). Fixes: https://github.com/igarashitm/kaoto-private/issues/15 --- .../DataMapper/debug/DataMapperDebugger.test.tsx | 5 +++-- .../components/DataMapper/debug/DebugLayout.tsx | 7 +++++-- .../src/components/Document/Parameters.test.tsx | 2 ++ .../Document/actions/AttachSchemaButton.test.tsx | 15 ++++++++++++--- .../Document/actions/ConditionMenuAction.test.tsx | 10 +++++++++- .../actions/ExpressionEditorAction.test.tsx | 2 +- .../src/components/View/SourceTargetView.test.tsx | 3 +++ .../src/pages/DataMapper/DataMapperPage.test.tsx | 3 ++- .../providers/datamapper-canvas.provider.test.tsx | 9 +++++++-- ...ider.test.tsx => datamapper.provider.test.tsx} | 9 +++++++-- 10 files changed, 51 insertions(+), 14 deletions(-) rename packages/ui/src/providers/{datamapper.rovider.test.tsx => datamapper.provider.test.tsx} (88%) diff --git a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx index c2043c340..72362cf5c 100644 --- a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx +++ b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx @@ -1,8 +1,9 @@ import { DataMapperDebugger } from './DataMapperDebugger'; -import { render } from '@testing-library/react'; +import { render, screen } from '@testing-library/react'; describe('Debug', () => { - it('should render', () => { + it('should render', async () => { render(); + await screen.findByTestId('main-menu-button'); }); }); diff --git a/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx index 1e65bec15..947351482 100644 --- a/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, memo } from 'react'; +import { FunctionComponent, memo, useEffect } from 'react'; import { Masthead, MastheadContent, Page, PageSection, PageSectionVariants } from '@patternfly/react-core'; import { ContextToolbar } from './ContextToolbar'; import './DebugLayout.scss'; @@ -25,7 +25,10 @@ import { IDataMapperProps } from '../../../pages/DataMapper/DataMapperPage'; export const DebugLayout: FunctionComponent = memo(function DebugLayout() { const { setDebug } = useDataMapper()!; - setDebug(true); + useEffect(() => { + setDebug(true); + }, [setDebug]); + const header = ( diff --git a/packages/ui/src/components/Document/Parameters.test.tsx b/packages/ui/src/components/Document/Parameters.test.tsx index 5c134025f..a8d92b103 100644 --- a/packages/ui/src/components/Document/Parameters.test.tsx +++ b/packages/ui/src/components/Document/Parameters.test.tsx @@ -33,6 +33,7 @@ describe('Parameters', () => { act(() => { fireEvent.click(confirmButton); }); + await screen.findByTestId('add-parameter-button'); const notexist = screen.queryByTestId('delete-parameter-testparam1-button'); expect(notexist).toBeFalsy(); }); @@ -77,6 +78,7 @@ describe('Parameters', () => { act(() => { fireEvent.click(detachConfirmButton); }); + await screen.findByTestId('add-parameter-button'); expect(screen.queryByTestId('ShipTo')).toBeFalsy(); }); }); diff --git a/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx index f7c14eb36..fd9621926 100644 --- a/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx +++ b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx @@ -1,5 +1,5 @@ import { AttachSchemaButton } from './AttachSchemaButton'; -import { fireEvent, render, screen } from '@testing-library/react'; +import { act, fireEvent, render, screen } from '@testing-library/react'; import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; import { DocumentType } from '../../../models/datamapper/path'; import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; @@ -27,7 +27,9 @@ describe('AttachSchemaButton', () => { ); const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); expect(spyOnClick.mock.calls.length).toEqual(0); - fireEvent.click(attachButton); + act(() => { + fireEvent.click(attachButton); + }); expect(spyOnClick.mock.calls.length).toBeGreaterThan(0); }); @@ -40,9 +42,16 @@ describe('AttachSchemaButton', () => { , ); + const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); + act(() => { + fireEvent.click(attachButton); + }); const fileInput = await screen.findByTestId('attach-schema-sourceBody-Body-file-input'); const fileContent = new File([new Blob([shipOrderXsd])], 'ShipOrder.xsd', { type: 'text/plain' }); - fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + act(() => { + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + }); + await screen.findByTestId('attach-schema-sourceBody-Body-button'); expect(mockReadFileAsString.mock.calls.length).toEqual(1); }); }); diff --git a/packages/ui/src/components/Document/actions/ConditionMenuAction.test.tsx b/packages/ui/src/components/Document/actions/ConditionMenuAction.test.tsx index eaf92e93c..4e601bca9 100644 --- a/packages/ui/src/components/Document/actions/ConditionMenuAction.test.tsx +++ b/packages/ui/src/components/Document/actions/ConditionMenuAction.test.tsx @@ -1,5 +1,5 @@ import { ConditionMenuAction } from './ConditionMenuAction'; -import { act, fireEvent, render, screen } from '@testing-library/react'; +import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'; import { MappingNodeData, TargetDocumentNodeData, TargetFieldNodeData } from '../../../models/datamapper/visualization'; import { ChooseItem, FieldItem, MappingTree } from '../../../models/datamapper/mapping'; import { DocumentType } from '../../../models/datamapper/path'; @@ -30,6 +30,7 @@ describe('ConditionMenuAction', () => { act(() => { fireEvent.click(selectorItem.getElementsByTagName('button')[0]); }); + waitFor(() => screen.getByTestId('transformation-actions-menu-toggle').getAttribute('aria-expanded') === 'false'); expect(onUpdateMock.mock.calls.length).toEqual(1); expect(spyOnApply.mock.calls.length).toEqual(1); }); @@ -51,6 +52,7 @@ describe('ConditionMenuAction', () => { act(() => { fireEvent.click(ifItem.getElementsByTagName('button')[0]); }); + waitFor(() => screen.getByTestId('transformation-actions-menu-toggle').getAttribute('aria-expanded') === 'false'); expect(onUpdateMock.mock.calls.length).toEqual(1); expect(spyOnApply.mock.calls.length).toEqual(1); }); @@ -72,6 +74,7 @@ describe('ConditionMenuAction', () => { act(() => { fireEvent.click(chooseItem.getElementsByTagName('button')[0]); }); + waitFor(() => screen.getByTestId('transformation-actions-menu-toggle').getAttribute('aria-expanded') === 'false'); expect(onUpdateMock.mock.calls.length).toEqual(1); expect(spyOnApply.mock.calls.length).toEqual(1); }); @@ -89,6 +92,8 @@ describe('ConditionMenuAction', () => { act(() => { fireEvent.click(whenItem.getElementsByTagName('button')[0]); }); + waitFor(() => screen.getByTestId('transformation-actions-menu-toggle').getAttribute('aria-expanded') === 'false'); + expect(onUpdateMock.mock.calls.length).toEqual(1); expect(spyOnApply.mock.calls.length).toEqual(1); }); @@ -106,6 +111,8 @@ describe('ConditionMenuAction', () => { act(() => { fireEvent.click(otherwiseItem.getElementsByTagName('button')[0]); }); + waitFor(() => screen.getByTestId('transformation-actions-menu-toggle').getAttribute('aria-expanded') === 'false'); + expect(onUpdateMock.mock.calls.length).toEqual(1); expect(spyOnApply.mock.calls.length).toEqual(1); }); @@ -127,6 +134,7 @@ describe('ConditionMenuAction', () => { act(() => { fireEvent.click(foreachItem.getElementsByTagName('button')[0]); }); + waitFor(() => screen.getByTestId('transformation-actions-menu-toggle').getAttribute('aria-expanded') === 'false'); expect(onUpdateMock.mock.calls.length).toEqual(1); expect(spyOnApply.mock.calls.length).toEqual(1); }); diff --git a/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx b/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx index 83ff88056..6e995f375 100644 --- a/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx +++ b/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx @@ -26,5 +26,5 @@ describe('ExpressionEditorAction', () => { }); const modal = await screen.findByTestId('expression-editor-modal'); expect(modal).toBeInTheDocument(); - }); + }, 10000); }); diff --git a/packages/ui/src/components/View/SourceTargetView.test.tsx b/packages/ui/src/components/View/SourceTargetView.test.tsx index a91f3a74a..10eb18f49 100644 --- a/packages/ui/src/components/View/SourceTargetView.test.tsx +++ b/packages/ui/src/components/View/SourceTargetView.test.tsx @@ -37,9 +37,11 @@ describe('SourceTargetView', () => { act(() => { fireEvent.click(detachConfirmButton); }); + await screen.findByTestId('attach-schema-sourceBody-Body-button'); expect(screen.queryByTestId('ShipTo')).toBeFalsy(); }); }); + describe('Target Body Document', () => { it('should attach and detach schema', async () => { render( @@ -71,6 +73,7 @@ describe('SourceTargetView', () => { act(() => { fireEvent.click(detachConfirmButton); }); + await screen.findByTestId('attach-schema-sourceBody-Body-button'); expect(screen.queryByTestId('ShipTo')).toBeFalsy(); }); }); diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx index 9b215086b..7d9095f9a 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx @@ -10,10 +10,11 @@ import { DocumentType } from '../../models/datamapper/path'; import { shipOrderToShipOrderXslt, shipOrderXsd } from '../../stubs/data-mapper'; describe('DataMapperPage', () => { - it('should render initial XSLT mappings', () => { + it('should render initial XSLT mappings', async () => { console.log(__dirname); render(); + await screen.findByTestId('card-source-parameters-header'); // TODO assert mappings are restored even without loading schema... But how? Lines are not drawn... }); diff --git a/packages/ui/src/providers/datamapper-canvas.provider.test.tsx b/packages/ui/src/providers/datamapper-canvas.provider.test.tsx index e52470b9c..c98e6bc89 100644 --- a/packages/ui/src/providers/datamapper-canvas.provider.test.tsx +++ b/packages/ui/src/providers/datamapper-canvas.provider.test.tsx @@ -11,19 +11,24 @@ import { screen } from '@testing-library/react'; import { TestUtil } from '../stubs/data-mapper'; describe('CanvasProvider', () => { - it('should render', () => { + it('should render', async () => { render( - + +
    + , ); + expect(await screen.findByTestId('testdiv')).toBeInTheDocument(); }); it('should fail if not within DataMapperProvider', () => { + const consoleSpy = jest.spyOn(console, 'error').mockImplementation(() => {}); const thrower = () => { render(); }; expect(thrower).toThrow(); + consoleSpy.mockRestore(); }); it('clearNodeReferencesForPath() should clear for the path', async () => { diff --git a/packages/ui/src/providers/datamapper.rovider.test.tsx b/packages/ui/src/providers/datamapper.provider.test.tsx similarity index 88% rename from packages/ui/src/providers/datamapper.rovider.test.tsx rename to packages/ui/src/providers/datamapper.provider.test.tsx index f473d596f..5da08f601 100644 --- a/packages/ui/src/providers/datamapper.rovider.test.tsx +++ b/packages/ui/src/providers/datamapper.provider.test.tsx @@ -6,8 +6,13 @@ import { useEffect } from 'react'; import { IField } from '../models/datamapper/document'; describe('DataMapperProvider', () => { - it('should render', () => { - render(); + it('should render', async () => { + render( + +
    + , + ); + await screen.findByTestId('testdiv'); }); it('refreshMappingTree should re-create the MappingTree instance', async () => { From 8ebd200d83a3be497deff7864a3602105e0221a5 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 9 Sep 2024 10:40:22 -0400 Subject: [PATCH 357/471] fix(DataMapper): Mapping lines shifted to lower right Fixes: https://github.com/igarashitm/kaoto-private/issues/17 Line coordinates are relative from svg area, therefore the svg area offset has to be taken into account Also cleaned up test console log a bit more --- .../DataMapper/debug/DataMapperDebugger.test.tsx | 4 ++++ .../DataMapper/debug/DebugLayout.test.tsx | 8 ++++++++ packages/ui/src/components/View/MappingLink.tsx | 13 ++++++++----- .../ui/src/pages/DataMapper/DataMapperPage.test.tsx | 4 +--- packages/ui/src/pages/DataMapper/DataMapperPage.tsx | 1 - packages/ui/src/pages/DataMapper/router-exports.tsx | 2 +- 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx index 72362cf5c..583461424 100644 --- a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx +++ b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.test.tsx @@ -3,7 +3,11 @@ import { render, screen } from '@testing-library/react'; describe('Debug', () => { it('should render', async () => { + const mockLog = jest.fn(); + console.log = mockLog; render(); await screen.findByTestId('main-menu-button'); + const nodeRefsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Node References: [')); + expect(nodeRefsLog.length).toBeGreaterThan(0); }); }); diff --git a/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx b/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx index 693d0ca23..84f791ea4 100644 --- a/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx @@ -39,6 +39,8 @@ describe('DebugLayout', () => { }, [getAllNodePaths, mappingTree, sourceBodyDocument, sourceParameterMap]); return <>{children}; }; + const mockLog = jest.fn(); + console.log = mockLog; render( @@ -52,6 +54,8 @@ describe('DebugLayout', () => { const targetNodes = screen.getAllByTestId(/node-target-.*/); expect(targetNodes.length).toBeGreaterThan(10); expect(mappingLinks.length).toBeGreaterThan(10); + const nodeRefsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Node References: [')); + expect(nodeRefsLog.length).toBeGreaterThan(0); }); describe('Main Menu', () => { @@ -73,6 +77,8 @@ describe('DebugLayout', () => { }, [mappingTree]); return <>{children}; }; + const mockLog = jest.fn(); + console.log = mockLog; render( @@ -115,6 +121,8 @@ describe('DebugLayout', () => { fireEvent.click(closeModalButton); }); expect(screen.queryByTestId('export-mappings-modal')).toBeFalsy(); + const nodeRefsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Node References: [')); + expect(nodeRefsLog.length).toBeGreaterThan(0); }); }); diff --git a/packages/ui/src/components/View/MappingLink.tsx b/packages/ui/src/components/View/MappingLink.tsx index 1f03aaeec..db861f4b8 100644 --- a/packages/ui/src/components/View/MappingLink.tsx +++ b/packages/ui/src/components/View/MappingLink.tsx @@ -1,4 +1,4 @@ -import { FunctionComponent, MutableRefObject, useCallback, useEffect, useState } from 'react'; +import { FunctionComponent, MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'; import { useCanvas } from '../../hooks/useCanvas'; import { useDataMapper } from '../../hooks/useDataMapper'; import { NodeReference } from '../../providers/datamapper-canvas.provider'; @@ -51,9 +51,11 @@ export const MappingLinksContainer: FunctionComponent = () => { const { mappingTree, sourceBodyDocument, sourceParameterMap } = useDataMapper(); const [lineCoordList, setLineCoordList] = useState([]); const { getNodeReference } = useCanvas(); + const svgRef = useRef(null); const getCoordFromFieldRef = useCallback( (sourceRef: MutableRefObject, targetRef: MutableRefObject) => { + const svgRect = svgRef.current?.getBoundingClientRect(); const sourceRect = sourceRef.current?.headerRef?.getBoundingClientRect(); const targetRect = targetRef.current?.headerRef?.getBoundingClientRect(); if (!sourceRect || !targetRect) { @@ -61,10 +63,10 @@ export const MappingLinksContainer: FunctionComponent = () => { } return { - x1: sourceRect.right, - y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2, - x2: targetRect.left, - y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2, + x1: sourceRect.right - (svgRect ? svgRect.left : 0), + y1: sourceRect.top + (sourceRect.bottom - sourceRect.top) / 2 - (svgRect ? svgRect.top : 0), + x2: targetRect.left - (svgRect ? svgRect.left : 0), + y2: targetRect.top + (targetRect.bottom - targetRect.top) / 2 - (svgRect ? svgRect.top : 0), }; }, [], @@ -139,6 +141,7 @@ export const MappingLinksContainer: FunctionComponent = () => { return ( { it('should render initial XSLT mappings', async () => { - console.log(__dirname); - render(); await screen.findByTestId('card-source-parameters-header'); // TODO assert mappings are restored even without loading schema... But how? Lines are not drawn... @@ -60,7 +58,7 @@ describe('DataMapperPage', () => { }); it('should not render toolbar menu in embedded mode', async () => { - render(); + render(); try { await screen.findByTestId('main-menu-button'); fail(); diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx index 0f41fad63..fb75e6695 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx @@ -25,7 +25,6 @@ export interface IDataMapperProps { onUpdateDocument?: (definition: DocumentDefinition) => void; initialXsltFile?: string; onUpdateMappings?: (xsltFile: string) => void; - isEmbedded?: boolean; } export const DataMapperPage: FunctionComponent = ({ diff --git a/packages/ui/src/pages/DataMapper/router-exports.tsx b/packages/ui/src/pages/DataMapper/router-exports.tsx index 6171be0da..c2ea9cf61 100644 --- a/packages/ui/src/pages/DataMapper/router-exports.tsx +++ b/packages/ui/src/pages/DataMapper/router-exports.tsx @@ -1,3 +1,3 @@ import { DataMapperPage } from './DataMapperPage'; -export const element = ; +export const element = ; From 8fba21a997054ece5f758b7b1a4841607e5ddaf6 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 9 Sep 2024 11:14:14 -0400 Subject: [PATCH 358/471] fix(DataMapper): The edge of the mapping lines are hidden behind the box Fixes: https://github.com/KaotoIO/datamapper-poc/issues/91 --- packages/ui/src/components/View/MappingLink.tsx | 4 +++- packages/ui/src/components/View/SourceTargetView.tsx | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/components/View/MappingLink.tsx b/packages/ui/src/components/View/MappingLink.tsx index db861f4b8..0c005c724 100644 --- a/packages/ui/src/components/View/MappingLink.tsx +++ b/packages/ui/src/components/View/MappingLink.tsx @@ -1,4 +1,4 @@ -import { FunctionComponent, MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'; +import { CSSProperties, FunctionComponent, MutableRefObject, useCallback, useEffect, useRef, useState } from 'react'; import { useCanvas } from '../../hooks/useCanvas'; import { useDataMapper } from '../../hooks/useDataMapper'; import { NodeReference } from '../../providers/datamapper-canvas.provider'; @@ -21,6 +21,7 @@ const MappingLink: FunctionComponent = ({ x1, y1, x2, y2, sourceNodeP const lineStyle = { stroke: 'gray', strokeWidth: isOver ? 6 : 3, + pointerEvents: 'auto' as CSSProperties['pointerEvents'], }; const onMouseEnter = useCallback(() => { @@ -145,6 +146,7 @@ export const MappingLinksContainer: FunctionComponent = () => { data-testid="mapping-links" style={{ position: 'absolute', + pointerEvents: 'none', top: 0, left: 0, width: '100%', diff --git a/packages/ui/src/components/View/SourceTargetView.tsx b/packages/ui/src/components/View/SourceTargetView.tsx index fe395c88d..ceb4ce79b 100644 --- a/packages/ui/src/components/View/SourceTargetView.tsx +++ b/packages/ui/src/components/View/SourceTargetView.tsx @@ -29,7 +29,6 @@ export const SourceTargetView: FunctionComponent = () => { return ( - @@ -50,6 +49,7 @@ export const SourceTargetView: FunctionComponent = () => { + ); }; From 7979d10c48cda36c2da00f69b11769559902ae64 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 10 Sep 2024 10:56:53 -0400 Subject: [PATCH 359/471] fix: Lint errors in xml-schema-ts Fixes: https://github.com/igarashitm/kaoto-private/issues/21 --- .../src/components/Document/actions/DeleteParameterButton.tsx | 2 +- .../src/attribute/XmlSchemaAttributeGroupMember.ts | 1 + packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts | 1 + packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts | 1 + packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts | 1 + packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts | 1 + packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts | 1 + 7 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx b/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx index 60802f024..9c3d77698 100644 --- a/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx +++ b/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx @@ -68,7 +68,7 @@ export const DeleteParameterButton: FunctionComponent = ({ , ]} > - Delete parameter "{parameterName}"? Related mappings will be also removed. + Delete parameter "{parameterName}"? Related mappings will be also removed. ); diff --git a/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts index d67349f29..f7b91af9c 100644 --- a/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts +++ b/packages/xml-schema-ts/src/attribute/XmlSchemaAttributeGroupMember.ts @@ -1,4 +1,5 @@ /** * Implemented by the types that can go into an attribute group. */ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface XmlSchemaAttributeGroupMember {} diff --git a/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts index e78255a72..336959901 100644 --- a/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts +++ b/packages/xml-schema-ts/src/particle/XmlSchemaAllMember.ts @@ -1,3 +1,4 @@ import { XmlSchemaObjectBase } from '../utils/XmlSchemaObjectBase'; +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface XmlSchemaAllMember extends XmlSchemaObjectBase {} diff --git a/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts index 744542868..fe661a4da 100644 --- a/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts +++ b/packages/xml-schema-ts/src/particle/XmlSchemaChoiceMember.ts @@ -1,3 +1,4 @@ import { XmlSchemaObjectBase } from '../utils/XmlSchemaObjectBase'; +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface XmlSchemaChoiceMember extends XmlSchemaObjectBase {} diff --git a/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts b/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts index b805e5dbf..1f191026e 100644 --- a/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts +++ b/packages/xml-schema-ts/src/particle/XmlSchemaSequenceMember.ts @@ -1,3 +1,4 @@ import { XmlSchemaObjectBase } from '../utils/XmlSchemaObjectBase'; +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface XmlSchemaSequenceMember extends XmlSchemaObjectBase {} diff --git a/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts b/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts index 6f72cf429..c540bc6be 100644 --- a/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts +++ b/packages/xml-schema-ts/src/utils/XmlSchemaNamedWithForm.ts @@ -1,3 +1,4 @@ import { XmlSchemaNamed } from './XmlSchemaNamed'; +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface XmlSchemaNamedWithForm extends XmlSchemaNamed {} diff --git a/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts b/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts index d997addfc..eac8e3378 100644 --- a/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts +++ b/packages/xml-schema-ts/src/utils/XmlSchemaObjectBase.ts @@ -1 +1,2 @@ +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface XmlSchemaObjectBase {} From ba36696228b72d2e91b107c1edf93c6945a82912 Mon Sep 17 00:00:00 2001 From: "Ricardo M." Date: Wed, 4 Sep 2024 10:47:30 +0200 Subject: [PATCH 360/471] chore: Add missing Provider --- packages/ui/src/multiplying-architecture/KaotoBridge.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx index b1f3dbe08..7a392aba9 100644 --- a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx @@ -1,6 +1,8 @@ import { ChannelType, EditorApi, StateControlCommand } from '@kie-tools-core/editor/dist/api'; import { Notification } from '@kie-tools-core/notifications/dist/api'; import { PropsWithChildren, forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useRef } from 'react'; +import { RenderingProvider } from '../components/RenderingAnchor/rendering.provider'; +import { RegisterComponents } from '../components/registers/RegisterComponents'; import { useReload } from '../hooks/reload.hook'; import { CatalogTilesProvider } from '../providers/catalog-tiles.provider'; import { CatalogLoaderProvider } from '../providers/catalog.provider'; @@ -143,7 +145,11 @@ export const KaotoBridge = forwardRef - {props.children} + + + {props.children} + + From aa7dd73c03ebc96cb902c123a70e769b140f511e Mon Sep 17 00:00:00 2001 From: "Ricardo M." Date: Thu, 12 Sep 2024 17:42:10 +0200 Subject: [PATCH 361/471] feat(VSCode): Provide filePreferences API --- .../multiplying-architecture/KaotoBridge.tsx | 255 ++++++++++-------- .../KaotoEditorApp.test.tsx | 19 +- .../KaotoEditorApp.tsx | 12 + .../KaotoEditorChannelApi.ts | 10 + .../providers/file-preferences.provider.tsx | 30 +++ packages/ui/src/providers/index.ts | 1 + 6 files changed, 213 insertions(+), 114 deletions(-) create mode 100644 packages/ui/src/providers/file-preferences.provider.tsx diff --git a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx index 7a392aba9..ff89dfb96 100644 --- a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx @@ -1,16 +1,28 @@ import { ChannelType, EditorApi, StateControlCommand } from '@kie-tools-core/editor/dist/api'; import { Notification } from '@kie-tools-core/notifications/dist/api'; -import { PropsWithChildren, forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useRef } from 'react'; +import { + PropsWithChildren, + forwardRef, + useCallback, + useContext, + useEffect, + useImperativeHandle, + useMemo, + useRef, +} from 'react'; import { RenderingProvider } from '../components/RenderingAnchor/rendering.provider'; import { RegisterComponents } from '../components/registers/RegisterComponents'; import { useReload } from '../hooks/reload.hook'; -import { CatalogTilesProvider } from '../providers/catalog-tiles.provider'; -import { CatalogLoaderProvider } from '../providers/catalog.provider'; -import { RuntimeProvider } from '../providers/runtime.provider'; -import { SchemasLoaderProvider } from '../providers/schemas.provider'; -import { SettingsContext } from '../providers/settings.provider'; -import { SourceCodeApiContext } from '../providers/source-code.provider'; -import { VisibleFlowsProvider } from '../providers/visible-flows.provider'; +import { + CatalogLoaderProvider, + CatalogTilesProvider, + FilePreferencesProvider, + RuntimeProvider, + SchemasLoaderProvider, + SettingsContext, + SourceCodeApiContext, + VisibleFlowsProvider, +} from '../providers'; import { EventNotifier } from '../utils'; interface KaotoBridgeProps { @@ -42,118 +54,137 @@ interface KaotoBridgeProps { setNotifications: (path: string, notifications: Notification[]) => void; /** - * ChannelType where the component is running. + * Get FilePreferences by a given key, using the Channel API. + * @param key The key to retrieve the FilePreferences + * @returns The FilePreferences */ - channelType: ChannelType; -} - -export const KaotoBridge = forwardRef>((props, forwardedRef) => { - const ReloadProvider = useReload(); - const eventNotifier = EventNotifier.getInstance(); - const sourceCodeApiContext = useContext(SourceCodeApiContext); - const sourceCodeRef = useRef(''); - const settingsAdapter = useContext(SettingsContext); - const catalogUrl = settingsAdapter.getSettings().catalogUrl; + getFilePreferences: (key: string) => Promise; /** - * Callback is exposed to the Channel that is called when a new file is opened. - * It sets the originalContent to the received value. + * Set FilePreferences by a given key, using the Channel API. + * @param key The key to set the FilePreferences */ - const setContent = useCallback( - (_path: string, content: string) => { - /** - * If the new content is the same as the current one, we don't need to update the Editor, - * as it will regenerate the Camel Resource, hence disconnecting the configuration form (if open). - * - * This happens due to the multiplying architecture lifecycle, where the content is set - * after saving the file. - * - * The lifecycle is: - * 1. User edits the file either adding a new node or modifying an existing one using the form - * 2. User saves the file - * 3. The Envelope uses the `getContent` callback to retrieve the new content - * 4. The Envelope sets the new content using the `setContent` callback - * - * At this point, both the new content and the current content are the same, so the Editor - * don't need to be updated. - */ - if (sourceCodeRef.current === content) return; - - sourceCodeApiContext.setCodeAndNotify(content); - sourceCodeRef.current = content; - }, - [sourceCodeApiContext], - ); + setFilePreferences: (key: string, preferences: T) => Promise; /** - * Subscribe to the `entities:updated` event to update the File content. + * ChannelType where the component is running. */ - useEffect(() => { - const unsubscribeFromEntities = eventNotifier.subscribe('entities:updated', (newContent: string) => { - props.onNewEdit(newContent); - sourceCodeRef.current = newContent; - }); + channelType: ChannelType; +} - const unsubscribeFromSourceCode = eventNotifier.subscribe('code:updated', (newContent: string) => { - /** Ignore the first change, from an empty string to the file content */ - if (sourceCodeRef.current !== '') { - props.onNewEdit(newContent); - } - sourceCodeRef.current = newContent; - }); +export const KaotoBridge = forwardRef>( + ({ onNewEdit, onReady, children, getFilePreferences, setFilePreferences }, forwardedRef) => { + const ReloadProvider = useReload(); + const eventNotifier = EventNotifier.getInstance(); + const sourceCodeApiContext = useContext(SourceCodeApiContext); + const sourceCodeRef = useRef(''); + const settingsAdapter = useContext(SettingsContext); + const catalogUrl = settingsAdapter.getSettings().catalogUrl; + const filePreferencesApi = useMemo( + () => ({ getFilePreferences, setFilePreferences }), + [getFilePreferences, setFilePreferences], + ); - return () => { - unsubscribeFromEntities(); - unsubscribeFromSourceCode(); - }; - }, [eventNotifier, props]); + /** + * Callback is exposed to the Channel that is called when a new file is opened. + * It sets the originalContent to the received value. + */ + const setContent = useCallback( + (_path: string, content: string) => { + /** + * If the new content is the same as the current one, we don't need to update the Editor, + * as it will regenerate the Camel Resource, hence disconnecting the configuration form (if open). + * + * This happens due to the multiplying architecture lifecycle, where the content is set + * after saving the file. + * + * The lifecycle is: + * 1. User edits the file either adding a new node or modifying an existing one using the form + * 2. User saves the file + * 3. The Envelope uses the `getContent` callback to retrieve the new content + * 4. The Envelope sets the new content using the `setContent` callback + * + * At this point, both the new content and the current content are the same, so the Editor + * don't need to be updated. + */ + if (sourceCodeRef.current === content) return; - /** - * The useImperativeHandler gives the control of the Editor component to who has it's reference, - * making it possible to communicate with the Editor. - * It returns all methods that are determined on the EditorApi. - */ - useImperativeHandle(forwardedRef, () => { - return { - /* Callback is exposed to the Channel to set the content of the file into the current Editor. */ - setContent: (path: string, content: string) => Promise.resolve(setContent(path, content)), - /** - * Callback is exposed to the Channel to retrieve the current value of the Editor. It returns the value of - * the editorContent, which is the state that has the kaoto yaml. - */ - getContent: () => Promise.resolve(sourceCodeRef.current), - getPreview: () => Promise.resolve(undefined), - undo: (): Promise => { - return Promise.resolve(); - }, - redo: (): Promise => { - return Promise.resolve(); + sourceCodeApiContext.setCodeAndNotify(content); + sourceCodeRef.current = content; }, - validate: () => Promise.resolve([]), - setTheme: () => Promise.resolve(), - }; - }); - - /** Set editor as Ready */ - useEffect(() => { - props.onReady(); - }, [props]); - - return ( - - - - - - - - {props.children} - - - - - - - - ); -}); + [sourceCodeApiContext], + ); + + /** + * Subscribe to the `entities:updated` event to update the File content. + */ + useEffect(() => { + const unsubscribeFromEntities = eventNotifier.subscribe('entities:updated', (newContent: string) => { + onNewEdit(newContent); + sourceCodeRef.current = newContent; + }); + + const unsubscribeFromSourceCode = eventNotifier.subscribe('code:updated', (newContent: string) => { + /** Ignore the first change, from an empty string to the file content */ + if (sourceCodeRef.current !== '') { + onNewEdit(newContent); + } + sourceCodeRef.current = newContent; + }); + + return () => { + unsubscribeFromEntities(); + unsubscribeFromSourceCode(); + }; + }, [eventNotifier, onNewEdit]); + + /** + * The useImperativeHandler gives the control of the Editor component to who has it's reference, + * making it possible to communicate with the Editor. + * It returns all methods that are determined on the EditorApi. + */ + useImperativeHandle(forwardedRef, () => { + return { + /* Callback is exposed to the Channel to set the content of the file into the current Editor. */ + setContent: (path: string, content: string) => Promise.resolve(setContent(path, content)), + /** + * Callback is exposed to the Channel to retrieve the current value of the Editor. It returns the value of + * the editorContent, which is the state that has the kaoto yaml. + */ + getContent: () => Promise.resolve(sourceCodeRef.current), + getPreview: () => Promise.resolve(undefined), + undo: (): Promise => { + return Promise.resolve(); + }, + redo: (): Promise => { + return Promise.resolve(); + }, + validate: () => Promise.resolve([]), + setTheme: () => Promise.resolve(), + }; + }); + + /** Set editor as Ready */ + useEffect(onReady, [onReady]); + + return ( + + + + + + + + + {children} + + + + + + + + + ); + }, +); diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx b/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx index c2068a7d7..4709e05bd 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx @@ -7,6 +7,7 @@ import { KogitoEditorEnvelopeContextType, StateControlCommand, } from '@kie-tools-core/editor/dist/api'; +import { ApiRequests } from '@kie-tools-core/envelope-bus/dist/api'; import { I18nService } from '@kie-tools-core/i18n/dist/envelope/I18nService'; import { KeyboardShortcutsService } from '@kie-tools-core/keyboard-shortcuts/dist/envelope/KeyboardShortcutsService'; import { OperatingSystem } from '@kie-tools-core/operating-system/dist/OperatingSystem'; @@ -51,8 +52,10 @@ describe('KaotoEditorApp', () => { kogitoWorkspace_newEdit: getNotificationMock(), kogitoWorkspace_openFile: getNotificationMock(), }, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - requests: {} as any, + requests: { + getFilePreferences: jest.fn(), + setFilePreferences: jest.fn(), + } as unknown as ApiRequests, // eslint-disable-next-line @typescript-eslint/no-explicit-any shared: {} as any, }, @@ -194,6 +197,18 @@ describe('KaotoEditorApp', () => { StateControlCommand.REDO, ); }); + + it('should delegate to the channelApi getting the file preferences', async () => { + await kaotoEditorApp.getFilePreferences('path'); + + expect(envelopeContext.channelApi.requests.getFilePreferences).toHaveBeenCalledWith('path'); + }); + + it('should delegate to the channelApi setting the file preferences', async () => { + await kaotoEditorApp.setFilePreferences('key', 'value'); + + expect(envelopeContext.channelApi.requests.setFilePreferences).toHaveBeenCalledWith('key', 'value'); + }); }); const getNotificationMock = () => ({ diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx b/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx index 25a44c358..bd24415a0 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx @@ -36,6 +36,8 @@ export class KaotoEditorApp implements Editor { this.sendNewEdit = this.sendNewEdit.bind(this); this.sendNotifications = this.sendNotifications.bind(this); this.sendStateControlCommand = this.sendStateControlCommand.bind(this); + this.getFilePreferences = this.getFilePreferences.bind(this); + this.setFilePreferences = this.setFilePreferences.bind(this); } async setContent(path: string, content: string): Promise { @@ -94,6 +96,14 @@ export class KaotoEditorApp implements Editor { this.envelopeContext.channelApi.notifications.kogitoEditor_stateControlCommandUpdate.send(command); } + async getFilePreferences(key: string): Promise { + return this.envelopeContext.channelApi.requests.getFilePreferences(key); + } + + async setFilePreferences(key: string, preferences: T): Promise { + return this.envelopeContext.channelApi.requests.setFilePreferences(key, preferences); + } + af_componentRoot() { return ( @@ -106,6 +116,8 @@ export class KaotoEditorApp implements Editor { onNewEdit={this.sendNewEdit} setNotifications={this.sendNotifications} onStateControlCommandUpdate={this.sendStateControlCommand} + getFilePreferences={this.getFilePreferences} + setFilePreferences={this.setFilePreferences} > diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorChannelApi.ts b/packages/ui/src/multiplying-architecture/KaotoEditorChannelApi.ts index c6c8b6c2a..6d79926eb 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorChannelApi.ts +++ b/packages/ui/src/multiplying-architecture/KaotoEditorChannelApi.ts @@ -12,4 +12,14 @@ export interface KaotoEditorChannelApi extends KogitoEditorChannelApi { * Returns the Kaoto VSCode settings defined. */ getVSCodeKaotoSettings(): Promise; + + /** + * Returns preferences querying the Kaoto preferences file. + */ + getFilePreferences(key: string): Promise; + + /** + * Save preferences to the Kaoto preferences file. + */ + setFilePreferences(key: string, preferences: T): Promise; } diff --git a/packages/ui/src/providers/file-preferences.provider.tsx b/packages/ui/src/providers/file-preferences.provider.tsx new file mode 100644 index 000000000..9ef775e8b --- /dev/null +++ b/packages/ui/src/providers/file-preferences.provider.tsx @@ -0,0 +1,30 @@ +import { FunctionComponent, PropsWithChildren, createContext } from 'react'; + +export interface IFilePreferencesApi { + /** + * Get FilePreferences by a given key + * @param key The key to retrieve the FilePreferences + * @returns The FilePreferences + */ + getFilePreferences: (key: string) => Promise; + + /** + * Set FilePreferences by a given key + * @param key The key to set the FilePreferences + */ + setFilePreferences: (key: string, preferences: T) => Promise; +} + +export const FilePreferences = createContext(undefined); + +/** + * The goal for this provider is to expose a settings adapter to the SettingsForm component + * and its children, so they can be used to render the form fields. + * In addition to that, it also provides a mechanism to read/write the settings values. + */ +export const FilePreferencesProvider: FunctionComponent> = ({ + api, + children, +}) => { + return {children}; +}; diff --git a/packages/ui/src/providers/index.ts b/packages/ui/src/providers/index.ts index 4032fbdc6..b613c4d70 100644 --- a/packages/ui/src/providers/index.ts +++ b/packages/ui/src/providers/index.ts @@ -4,6 +4,7 @@ export * from './catalog-tiles.provider'; export * from './catalog.provider'; export * from './delete-modal.provider'; export * from './entities.provider'; +export * from './file-preferences.provider'; export * from './filtered-field.provider'; export * from './settings.provider'; export * from './reload.context'; From 460ad364a5a5c0ceefe14d640c20b773b7f4a81a Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 10 Sep 2024 09:36:43 -0400 Subject: [PATCH 362/471] feat(DataMapper): Support drag and drop in XPath editor Fixes: https://github.com/KaotoIO/datamapper-poc/issues/269 --- .../DataMapper/debug/CanvasMonitor.tsx | 27 +---- .../src/components/Document/NodeContainer.tsx | 57 +++++++--- .../Expression/ExpressionEditor.tsx | 105 +++++++++--------- .../src/components/Expression/XPathEditor.tsx | 44 +++++--- .../ui/src/models/datamapper/visualization.ts | 33 +++++- .../providers/datamapper-canvas.provider.tsx | 63 +---------- .../src/providers/datamapper-dnd.provider.tsx | 89 +++++++++++++++ .../providers/dnd/DataMapperDndMonitor.tsx | 40 +++++++ .../dnd/ExpressionEditorDnDHandler.ts | 22 +++- .../ui/src/services/mapping.service.test.ts | 11 ++ packages/ui/src/services/mapping.service.ts | 5 + 11 files changed, 321 insertions(+), 175 deletions(-) create mode 100644 packages/ui/src/providers/datamapper-dnd.provider.tsx create mode 100644 packages/ui/src/providers/dnd/DataMapperDndMonitor.tsx diff --git a/packages/ui/src/components/DataMapper/debug/CanvasMonitor.tsx b/packages/ui/src/components/DataMapper/debug/CanvasMonitor.tsx index c7dac21e1..1380d5ff7 100644 --- a/packages/ui/src/components/DataMapper/debug/CanvasMonitor.tsx +++ b/packages/ui/src/components/DataMapper/debug/CanvasMonitor.tsx @@ -1,34 +1,9 @@ -import { DragOverEvent, useDndMonitor } from '@dnd-kit/core'; import { FunctionComponent, useEffect } from 'react'; import { useCanvas } from '../../../hooks/useCanvas'; -import { NodeData } from '../../../models/datamapper/visualization'; export const CanvasMonitor: FunctionComponent = () => { - useDndMonitor({ - onDragStart(event) { - const fromField = event.active.data.current as NodeData; - console.log(`onDragStart: [active: ${fromField?.path.toString()}`); - }, - - onDragOver(event: DragOverEvent) { - const fromField = event.active?.data.current as NodeData; - const toField = event.over?.data.current as NodeData; - console.log(`onDragOver: [active: ${fromField?.path.toString()}, over:${toField?.path.toString()}`); - }, - - onDragEnd(event) { - const fromField = event.active?.data.current as NodeData; - const toField = event.over?.data.current as NodeData; - console.log(`onDragEnd: [active: ${fromField?.path.toString()}, over:${toField?.path.toString()}`); - }, - onDragCancel(event) { - const fromField = event.active?.data.current as NodeData; - const toField = event.over?.data.current as NodeData; - console.log(`onDragCancel: active: ${fromField?.path.toString()}, over:${toField?.path.toString()}`); - }, - }); - const { getAllNodePaths, reloadNodeReferences } = useCanvas(); + useEffect(() => { console.log( 'Node References: [' + diff --git a/packages/ui/src/components/Document/NodeContainer.tsx b/packages/ui/src/components/Document/NodeContainer.tsx index 245a9cf00..a7dc511a0 100644 --- a/packages/ui/src/components/Document/NodeContainer.tsx +++ b/packages/ui/src/components/Document/NodeContainer.tsx @@ -6,49 +6,70 @@ type DnDContainerProps = PropsWithChildren & { nodeData: NodeData; }; -const DnDContainer: FunctionComponent = ({ nodeData, children }) => { +type BaseContainerProps = PropsWithChildren & { + id: string; + nodeData: NodeData; +}; + +export const DroppableContainer: FunctionComponent = ({ id, nodeData, children }) => { const { isOver, setNodeRef: setDroppableNodeRef } = useDroppable({ - id: 'droppable-' + nodeData.id, + id: `droppable-${id}`, data: nodeData, }); + const droppableStyle = { + color: isOver ? 'var(--pf-v5-global--primary-color--200)' : undefined, + borderWidth: isOver ? 'thin' : undefined, + borderStyle: isOver ? 'dashed' : undefined, + borderColor: isOver ? 'var(--pf-v5-global--primary-color--200)' : undefined, + backgroundColor: isOver ? 'var(--pf-v5-global--palette--blue-50)' : undefined, + height: '100%', + } as CSSProperties; + return ( +
    + {children} +
    + ); +}; + +export const DraggableContainer: FunctionComponent = ({ id, nodeData, children }) => { const { attributes, listeners, setNodeRef: setDraggableNodeRef, transform, } = useDraggable({ - id: 'draggable-' + nodeData.id, + id: `draggable-${id}`, data: nodeData, }); - const droppableStyle = { - color: isOver ? 'var(--pf-v5-global--primary-color--200)' : undefined, - fontWeight: isOver ? 'bold' : undefined, - backgroundColor: isOver ? 'var(--pf-v5-global--palette--blue-50)' : undefined, - } as CSSProperties; const draggableStyle = transform ? ({ fontWeight: 'bold', color: 'var(--pf-v5-global--primary-color--100)', + borderWidth: 'thin', + borderStyle: 'solid', + borderColor: 'var(--pf-v5-global--primary-color--200)', backgroundColor: 'var(--pf-v5-global--palette--black-200)', } as CSSProperties) : undefined; return ( -
    -
    - {children} -
    +
    + {children}
    ); }; +const DnDContainer: FunctionComponent = ({ nodeData, children }) => { + return ( + + + {children} + + + ); +}; + type NodeContainerProps = PropsWithChildren & { nodeData?: NodeData; }; diff --git a/packages/ui/src/components/Expression/ExpressionEditor.tsx b/packages/ui/src/components/Expression/ExpressionEditor.tsx index e8a82c550..827e8cf05 100644 --- a/packages/ui/src/components/Expression/ExpressionEditor.tsx +++ b/packages/ui/src/components/Expression/ExpressionEditor.tsx @@ -1,7 +1,7 @@ -import { FunctionComponent, MouseEvent, useCallback, useEffect, useMemo, useState } from 'react'; +import { FunctionComponent, MouseEvent, useCallback, useMemo, useState } from 'react'; import { - Bullseye, - Button, + //Bullseye, + //Button, Grid, GridItem, Menu, @@ -12,15 +12,17 @@ import { Tabs, TabTitleText, } from '@patternfly/react-core'; -import { ArrowRightIcon } from '@patternfly/react-icons'; +//import { ArrowRightIcon } from '@patternfly/react-icons'; import { ExpressionItem } from '../../models/datamapper/mapping'; import { XPathService } from '../../services/xpath/xpath.service'; import { FunctionGroup } from '../../services/xpath/xpath-parser'; import { SourcePanel } from '../View/SourcePanel'; -import { NodeContainer } from '../Document/NodeContainer'; +import { DroppableContainer, DraggableContainer } from '../Document/NodeContainer'; import { XPathEditor } from './XPathEditor'; import { ExpressionEditorDnDHandler } from '../../providers/dnd/ExpressionEditorDnDHandler'; -import { useCanvas } from '../../hooks/useCanvas'; +import { EditorNodeData, FunctionNodeData } from '../../models/datamapper'; +import { DatamapperDndProvider } from '../../providers/datamapper-dnd.provider'; +import { DataMapperDnDMonitor } from '../../providers/dnd/DataMapperDndMonitor'; type TransformationEditorProps = { mapping: ExpressionItem; @@ -29,15 +31,7 @@ type TransformationEditorProps = { export const ExpressionEditor: FunctionComponent = ({ mapping, onUpdate }) => { const dndHandler = useMemo(() => new ExpressionEditorDnDHandler(), []); - const { setActiveHandler } = useCanvas(); - useEffect(() => { - setActiveHandler(dndHandler); - return () => { - setActiveHandler(undefined); - }; - }, [dndHandler, setActiveHandler]); - const transformationExpression = mapping?.expression; const handleExpressionChange = useCallback( (expression?: string) => { if (expression) { @@ -55,41 +49,52 @@ export const ExpressionEditor: FunctionComponent = ({ }; return ( - - - - Function}> - - - {Object.keys(functionDefinitions).map((value) => ( - - {functionDefinitions[value as FunctionGroup].map((func, index) => ( - - - {func.displayName} - - - ))} - - ))} - - - - Field}> -
    - -
    -
    -
    -
    - - -
    @@ -625,7 +625,7 @@ exports[`Canvas Empty state should render empty state when there is no visual en class="pf-v5-c-drawer__panel pf-m-resizable" hidden="" id="topology-resize-panel" - style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 150px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" + style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 210px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" />
    @@ -1376,7 +1376,7 @@ exports[`Canvas should render correctly 1`] = ` class="pf-v5-c-drawer__panel pf-m-resizable" hidden="" id="topology-resize-panel" - style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 150px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" + style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 210px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" />
    @@ -2127,7 +2127,7 @@ exports[`Canvas should render correctly with more routes 1`] = ` class="pf-v5-c-drawer__panel pf-m-resizable" hidden="" id="topology-resize-panel" - style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 150px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" + style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 210px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" />
    @@ -2982,7 +2982,7 @@ exports[`Canvas should render the Catalog button if \`CatalogModalContext\` is p class="pf-v5-c-drawer__panel pf-m-resizable" hidden="" id="topology-resize-panel" - style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 150px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" + style="--pf-v5-c-drawer__panel--md--FlexBasis: 500px; --pf-v5-c-drawer__panel--md--FlexBasis--min: 210px; --pf-v5-c-drawer__panel--md--FlexBasis--max: 100%;" /> From 4e2a53121493965e14666a75b864fbc554e5a634 Mon Sep 17 00:00:00 2001 From: mmelko Date: Tue, 10 Sep 2024 17:00:37 +0200 Subject: [PATCH 366/471] refactor(Visualization): Adding round edges for the custom groups and tweak the colors Please enter the commit message for your changes. Lines starting --- .../Canvas/__snapshots__/Canvas.test.tsx.snap | 144 +++++------------- .../Custom/Group/CollapseButton.tsx | 8 +- .../Custom/Group/ContextMenuButton.tsx | 11 +- .../Custom/Group/CustomGroup.scss | 39 ++++- .../CollapseButton.test.tsx.snap | 8 +- .../ContextMenuButton.test.tsx.snap | 8 +- .../Visualization/Visualization.scss | 4 + 7 files changed, 87 insertions(+), 135 deletions(-) diff --git a/packages/ui/src/components/Visualization/Canvas/__snapshots__/Canvas.test.tsx.snap b/packages/ui/src/components/Visualization/Canvas/__snapshots__/Canvas.test.tsx.snap index b192ea62a..460afc052 100644 --- a/packages/ui/src/components/Visualization/Canvas/__snapshots__/Canvas.test.tsx.snap +++ b/packages/ui/src/components/Visualization/Canvas/__snapshots__/Canvas.test.tsx.snap @@ -730,13 +730,9 @@ exports[`Canvas should render correctly 1`] = ` style="display: contents;" > , - ]} - > - -
    - - ); -}; diff --git a/packages/ui/src/components/Document/actions/TargetNodeActions.test.tsx b/packages/ui/src/components/Document/actions/TargetNodeActions.test.tsx index d1e955cd9..57704858a 100644 --- a/packages/ui/src/components/Document/actions/TargetNodeActions.test.tsx +++ b/packages/ui/src/components/Document/actions/TargetNodeActions.test.tsx @@ -29,7 +29,7 @@ describe('TargetNodeActions', () => { , ); - expect(await screen.findByTestId('transformation-expression-input')).toBeTruthy(); - expect(screen.getByTestId(`edit-expression-button-${mappingData.id}`)).toBeTruthy(); + expect(await screen.findByTestId('transformation-xpath-input')).toBeTruthy(); + expect(screen.getByTestId(`edit-xpath-button-${mappingData.id}`)).toBeTruthy(); }); }); diff --git a/packages/ui/src/components/Document/actions/TargetNodeActions.tsx b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx index e32c43a37..67303bb55 100644 --- a/packages/ui/src/components/Document/actions/TargetNodeActions.tsx +++ b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx @@ -1,9 +1,9 @@ import { ActionListGroup } from '@patternfly/react-core'; import { FunctionComponent, MouseEvent, KeyboardEvent, useCallback } from 'react'; -import { ExpressionInputAction } from './ExpressionInputAction'; +import { XPathInputAction } from './XPathInputAction'; import { DeleteMappingItemAction } from './DeleteMappingItemAction'; import { ConditionMenuAction } from './ConditionMenuAction'; -import { ExpressionEditorAction } from './ExpressionEditorAction'; +import { XPathEditorAction } from './XPathEditorAction'; import { TargetNodeData } from '../../../models/datamapper/visualization'; import { VisualizationService } from '../../../services/visualization.service'; @@ -27,8 +27,8 @@ export const TargetNodeActions: FunctionComponent = ({ n > {expressionItem && ( <> - - + + )} diff --git a/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx b/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx similarity index 77% rename from packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx rename to packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx index 6e995f375..e476a1f0b 100644 --- a/packages/ui/src/components/Document/actions/ExpressionEditorAction.test.tsx +++ b/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx @@ -1,4 +1,4 @@ -import { ExpressionEditorAction } from './ExpressionEditorAction'; +import { XPathEditorAction } from './XPathEditorAction'; import { act, fireEvent, render, screen } from '@testing-library/react'; import { MappingTree, ValueSelector } from '../../../models/datamapper/mapping'; import { DocumentType } from '../../../models/datamapper/path'; @@ -16,15 +16,15 @@ describe('ExpressionEditorAction', () => { render( - + , ); - const editBtn = await screen.findByTestId(`edit-expression-button-${docData.id}`); + const editBtn = await screen.findByTestId(`edit-xpath-button-${docData.id}`); act(() => { fireEvent.click(editBtn); }); - const modal = await screen.findByTestId('expression-editor-modal'); + const modal = await screen.findByTestId('xpath-editor-modal'); expect(modal).toBeInTheDocument(); }, 10000); }); diff --git a/packages/ui/src/components/Document/actions/XPathEditorAction.tsx b/packages/ui/src/components/Document/actions/XPathEditorAction.tsx new file mode 100644 index 000000000..a1646a480 --- /dev/null +++ b/packages/ui/src/components/Document/actions/XPathEditorAction.tsx @@ -0,0 +1,39 @@ +import { TargetNodeData } from '../../../models/datamapper/visualization'; +import { ExpressionItem } from '../../../models/datamapper/mapping'; +import { FunctionComponent, useCallback, useState } from 'react'; +import { ActionListItem, Button } from '@patternfly/react-core'; +import { PencilAltIcon } from '@patternfly/react-icons'; +import { XPathEditorModal } from '../../XPath/XPathEditorModal'; + +type XPathEditorProps = { + nodeData: TargetNodeData; + mapping: ExpressionItem; + onUpdate: () => void; +}; +export const XPathEditorAction: FunctionComponent = ({ nodeData, mapping, onUpdate }) => { + const [isEditorOpen, setIsEditorOpen] = useState(false); + const launchXPathEditor = useCallback(() => setIsEditorOpen(true), []); + const closeXPathEditor = useCallback(() => setIsEditorOpen(false), []); + + return ( + + , + ]} + > + + + ); +}; diff --git a/packages/ui/src/components/Expression/monaco-options.ts b/packages/ui/src/components/XPath/monaco-options.ts similarity index 100% rename from packages/ui/src/components/Expression/monaco-options.ts rename to packages/ui/src/components/XPath/monaco-options.ts From c464bf0ec5c4acedd53caf5aa1c938a7b3962e7e Mon Sep 17 00:00:00 2001 From: "Ricardo M." Date: Wed, 18 Sep 2024 11:32:41 +0200 Subject: [PATCH 372/471] fix(Datamapper): Load Kaoto Datamapper in VSCode --- .../RenderingAnchor/rendering.provider.tsx | 17 ++++++++++++++--- .../KaotoEditorRouter.tsx | 4 ++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/components/RenderingAnchor/rendering.provider.tsx b/packages/ui/src/components/RenderingAnchor/rendering.provider.tsx index d922a0b31..1ce101b44 100644 --- a/packages/ui/src/components/RenderingAnchor/rendering.provider.tsx +++ b/packages/ui/src/components/RenderingAnchor/rendering.provider.tsx @@ -1,7 +1,8 @@ -import { createContext, FunctionComponent, PropsWithChildren, useCallback, useMemo, useRef } from 'react'; +import { createContext, FunctionComponent, PropsWithChildren, Suspense, useCallback, useMemo, useRef } from 'react'; import { getCamelRandomId } from '../../camel-utils/camel-random-id'; import { IVisualizationNode } from '../../models'; -import { IRenderingAnchorContext, IRegisteredComponent } from './rendering.provider.model'; +import { Loading } from '../Loading'; +import { IRegisteredComponent, IRenderingAnchorContext } from './rendering.provider.model'; export const RenderingAnchorContext = createContext({ registerComponent: () => {}, @@ -29,5 +30,15 @@ export const RenderingProvider: FunctionComponent = ({ childr [getRegisteredComponents, registerComponent], ); - return {children}; + return ( + + Loading dynamic components... + + } + > + {children} + + ); }; diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx b/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx index 03a24f976..f059bab5f 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx @@ -25,6 +25,10 @@ export const kaotoEditorRouter = createHashRouter([ path: Links.PipeErrorHandler, lazy: async () => import('../pages/PipeErrorHandler'), }, + { + path: Links.DataMapper, + lazy: async () => import('../pages/DataMapper'), + }, ], }, ]); From c2fae189dc1d7a46c626fbf7fa15d46497ee9bb7 Mon Sep 17 00:00:00 2001 From: "Ricardo M." Date: Wed, 18 Sep 2024 12:00:26 +0200 Subject: [PATCH 373/471] TEMP: Add test buttons for Datamapper API integration --- .../ContextToolbar/ContextToolbar.tsx | 43 ++++++++++++++++++- .../multiplying-architecture/KaotoBridge.tsx | 23 +++++++++- .../KaotoEditorApp.test.tsx | 18 +++++++- .../KaotoEditorApp.tsx | 12 ++++++ packages/ui/src/providers/index.ts | 2 +- ...ces.provider.tsx => metadata.provider.tsx} | 22 +++++++--- 6 files changed, 108 insertions(+), 12 deletions(-) rename packages/ui/src/providers/{file-preferences.provider.tsx => metadata.provider.tsx} (63%) diff --git a/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx b/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx index 3c83806c1..45ff190d2 100644 --- a/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx +++ b/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx @@ -1,7 +1,9 @@ -import { Toolbar, ToolbarContent, ToolbarItem } from '@patternfly/react-core'; +import { Button, Toolbar, ToolbarContent, ToolbarItem } from '@patternfly/react-core'; import { FunctionComponent, useContext } from 'react'; import { sourceSchemaConfig } from '../../../models/camel'; +import { MetadataContext } from '../../../providers'; import { EntitiesContext } from '../../../providers/entities.provider'; +import { isDefined } from '../../../utils'; import './ContextToolbar.scss'; import { DSLSelector } from './DSLSelector/DSLSelector'; import { FlowClipboard } from './FlowClipboard/FlowClipboard'; @@ -13,6 +15,7 @@ import { RuntimeSelector } from './RuntimeSelector/RuntimeSelector'; export const ContextToolbar: FunctionComponent = () => { const { currentSchemaType } = useContext(EntitiesContext)!; const isMultipleRoutes = sourceSchemaConfig.config[currentSchemaType].multipleRoute; + const metadataApi = useContext(MetadataContext); const toolbarItems: JSX.Element[] = [ @@ -31,6 +34,44 @@ export const ContextToolbar: FunctionComponent = () => { ); } + // TODO: Remove this block when the metadata API is implemented + if (isDefined(metadataApi)) { + toolbarItems.push( + + + , + ); + toolbarItems.push( + + + , + ); + toolbarItems.push( + + + , + ); + toolbarItems.push( + + + , + ); + } + return ( diff --git a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx index 5543df4d4..fb3524e47 100644 --- a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx @@ -66,6 +66,19 @@ interface KaotoBridgeProps { */ setMetadata(key: string, metadata: T): Promise; + /** + * Retrieve resource content using the channel API. + * @param path The path of the resource + */ + getResourceContent(path: string): Promise; + + /** + * Save resource content using the channel API. + * @param path The path of the resource + * @param content The content to be saved + */ + saveResourceContent(path: string, content: string): Promise; + /** * ChannelType where the component is running. */ @@ -73,14 +86,20 @@ interface KaotoBridgeProps { } export const KaotoBridge = forwardRef>( - ({ onNewEdit, onReady, children, getMetadata, setMetadata }, forwardedRef) => { + ( + { onNewEdit, onReady, children, getMetadata, setMetadata, getResourceContent, saveResourceContent }, + forwardedRef, + ) => { const ReloadProvider = useReload(); const eventNotifier = EventNotifier.getInstance(); const sourceCodeApiContext = useContext(SourceCodeApiContext); const sourceCodeRef = useRef(''); const settingsAdapter = useContext(SettingsContext); const catalogUrl = settingsAdapter.getSettings().catalogUrl; - const metadataApi = useMemo(() => ({ getMetadata, setMetadata }), [getMetadata, setMetadata]); + const metadataApi = useMemo( + () => ({ getMetadata, setMetadata, getResourceContent, saveResourceContent }), + [getMetadata, setMetadata, getResourceContent, saveResourceContent], + ); /** * Callback is exposed to the Channel that is called when a new file is opened. diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx b/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx index 11b046948..ab19425c6 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditorApp.test.tsx @@ -55,6 +55,8 @@ describe('KaotoEditorApp', () => { requests: { getMetadata: jest.fn(), setMetadata: jest.fn(), + getResourceContent: jest.fn(), + saveResourceContent: jest.fn(), } as unknown as ApiRequests, // eslint-disable-next-line @typescript-eslint/no-explicit-any shared: {} as any, @@ -198,17 +200,29 @@ describe('KaotoEditorApp', () => { ); }); - it('should delegate to the channelApi getting the file preferences', async () => { + it('should delegate to the channelApi getting metadata from the Kaoto metadata file', async () => { await kaotoEditorApp.getMetadata('path'); expect(envelopeContext.channelApi.requests.getMetadata).toHaveBeenCalledWith('path'); }); - it('should delegate to the channelApi setting the file preferences', async () => { + it('should delegate to the channelApi setting metadata from the Kaoto metadata file', async () => { await kaotoEditorApp.setMetadata('key', 'value'); expect(envelopeContext.channelApi.requests.setMetadata).toHaveBeenCalledWith('key', 'value'); }); + + it('should delegate to the channelApi getting a file resource content', async () => { + await kaotoEditorApp.getResourceContent('path'); + + expect(envelopeContext.channelApi.requests.getResourceContent).toHaveBeenCalledWith('path'); + }); + + it('should delegate to the channelApi saving file resource content', async () => { + await kaotoEditorApp.saveResourceContent('path', 'content'); + + expect(envelopeContext.channelApi.requests.saveResourceContent).toHaveBeenCalledWith('path', 'content'); + }); }); const getNotificationMock = () => ({ diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx b/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx index b91ebf7d9..1e1935e39 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx @@ -38,6 +38,8 @@ export class KaotoEditorApp implements Editor { this.sendStateControlCommand = this.sendStateControlCommand.bind(this); this.getMetadata = this.getMetadata.bind(this); this.setMetadata = this.setMetadata.bind(this); + this.getResourceContent = this.getResourceContent.bind(this); + this.saveResourceContent = this.saveResourceContent.bind(this); } async setContent(path: string, content: string): Promise { @@ -104,6 +106,14 @@ export class KaotoEditorApp implements Editor { return this.envelopeContext.channelApi.requests.setMetadata(key, preferences); } + async getResourceContent(path: string): Promise { + return this.envelopeContext.channelApi.requests.getResourceContent(path); + } + + async saveResourceContent(path: string, content: string): Promise { + return this.envelopeContext.channelApi.requests.saveResourceContent(path, content); + } + af_componentRoot() { return ( @@ -118,6 +128,8 @@ export class KaotoEditorApp implements Editor { onStateControlCommandUpdate={this.sendStateControlCommand} getMetadata={this.getMetadata} setMetadata={this.setMetadata} + getResourceContent={this.getResourceContent} + saveResourceContent={this.saveResourceContent} > diff --git a/packages/ui/src/providers/index.ts b/packages/ui/src/providers/index.ts index b613c4d70..8e30c067a 100644 --- a/packages/ui/src/providers/index.ts +++ b/packages/ui/src/providers/index.ts @@ -4,9 +4,9 @@ export * from './catalog-tiles.provider'; export * from './catalog.provider'; export * from './delete-modal.provider'; export * from './entities.provider'; -export * from './file-preferences.provider'; export * from './filtered-field.provider'; export * from './settings.provider'; +export * from './metadata.provider'; export * from './reload.context'; export * from './runtime.provider'; export * from './schema-bridge.provider'; diff --git a/packages/ui/src/providers/file-preferences.provider.tsx b/packages/ui/src/providers/metadata.provider.tsx similarity index 63% rename from packages/ui/src/providers/file-preferences.provider.tsx rename to packages/ui/src/providers/metadata.provider.tsx index 0b13eb28a..8b455795f 100644 --- a/packages/ui/src/providers/file-preferences.provider.tsx +++ b/packages/ui/src/providers/metadata.provider.tsx @@ -1,6 +1,6 @@ import { FunctionComponent, PropsWithChildren, createContext } from 'react'; -export interface IFilePreferencesApi { +export interface IMetadataApi { /** * Get metadata querying a Kaoto metadata file. * @param key The key to retrieve the metadata from the Kaoto metadata file @@ -13,18 +13,28 @@ export interface IFilePreferencesApi { * @param metadata The metadata to be saved */ setMetadata(key: string, metadata: T): Promise; + + /** + * Retrieve resource content + * @param path The path of the resource + */ + getResourceContent(path: string): Promise; + + /** + * Save resource content + * @param path The path of the resource + * @param content The content to be saved + */ + saveResourceContent(path: string, content: string): Promise; } -export const MetadataContext = createContext(undefined); +export const MetadataContext = createContext(undefined); /** * The goal for this provider is to expose a settings adapter to the SettingsForm component * and its children, so they can be used to render the form fields. * In addition to that, it also provides a mechanism to read/write the settings values. */ -export const MetadataProvider: FunctionComponent> = ({ - api, - children, -}) => { +export const MetadataProvider: FunctionComponent> = ({ api, children }) => { return {children}; }; From 4c8d472473c1845ef345b08bc2618f1b5331676c Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 18 Sep 2024 11:13:05 -0400 Subject: [PATCH 374/471] fix: Wire Kaoto Metadata API Fixes: #59 --- .../DataMapper/DataMapperLauncher.scss | 3 + .../DataMapper/DataMapperLauncher.tsx | 41 +++- .../DataMapper/debug/DataMapperDebugger.tsx | 11 +- .../DataMapper/debug/DebugLayout.tsx | 3 +- .../Document/actions/AttachSchemaButton.tsx | 32 ++- .../Document/actions/DetachSchemaButton.tsx | 9 +- .../actions/XPathEditorAction.test.tsx | 6 +- packages/ui/src/models/datamapper/document.ts | 6 +- packages/ui/src/models/datamapper/metadata.ts | 13 ++ .../pages/DataMapper/DataMapperPage.test.tsx | 110 +++++++---- .../src/pages/DataMapper/DataMapperPage.tsx | 104 +++++++--- .../providers/datamapper-canvas.provider.tsx | 7 + .../ui/src/providers/datamapper.provider.tsx | 79 ++++---- .../services/datamapper-metadata.service.ts | 183 ++++++++++++++++++ packages/ui/src/services/document.service.ts | 48 ++--- .../services/mapping-serializer.service.ts | 2 +- 16 files changed, 492 insertions(+), 165 deletions(-) create mode 100644 packages/ui/src/components/DataMapper/DataMapperLauncher.scss create mode 100644 packages/ui/src/models/datamapper/metadata.ts create mode 100644 packages/ui/src/services/datamapper-metadata.service.ts diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.scss b/packages/ui/src/components/DataMapper/DataMapperLauncher.scss new file mode 100644 index 000000000..5b2eb02b3 --- /dev/null +++ b/packages/ui/src/components/DataMapper/DataMapperLauncher.scss @@ -0,0 +1,3 @@ +.datamapper-launcher-modal { + height: 95%; +} \ No newline at end of file diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx index 82595f1a6..6ae2811e5 100644 --- a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx +++ b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx @@ -1,17 +1,40 @@ -import { Button } from '@patternfly/react-core'; +import { Button, Modal, ModalVariant } from '@patternfly/react-core'; import { WrenchIcon } from '@patternfly/react-icons'; -import { FunctionComponent } from 'react'; -import { useComponentLink } from '../../hooks/ComponentLink'; +import { FunctionComponent, useCallback, useState } from 'react'; import { IVisualizationNode } from '../../models'; -import { Links } from '../../router/links.models'; +import DataMapperPage from '../../pages/DataMapper/DataMapperPage'; +import './DataMapperLauncher.scss'; -export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNode }> = () => { - const backLink = useComponentLink(Links.DataMapper); +export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNode }> = ({ vizNode }) => { + const [isOpen, setIsOpen] = useState(false); + + const onClose = useCallback(() => { + setIsOpen(false); + }, []); return ( - + <> + + + Close + , + ]} + > + + + ); }; diff --git a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx index 22ca453e2..c9552cdd4 100644 --- a/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx +++ b/packages/ui/src/components/DataMapper/debug/DataMapperDebugger.tsx @@ -1,10 +1,17 @@ import { FunctionComponent } from 'react'; import { DataMapperProvider } from '../../../providers/datamapper.provider'; -import { IDataMapperProps } from '../../../pages/DataMapper/DataMapperPage'; import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; import { DebugLayout } from './DebugLayout'; +import { DocumentDefinition, DocumentInitializationModel } from '../../../models/datamapper'; -export const DataMapperDebugger: FunctionComponent = ({ +type DataMapperDebuggerProps = { + documentInitializationModel?: DocumentInitializationModel; + onUpdateDocument?: (definition: DocumentDefinition) => void; + initialXsltFile?: string; + onUpdateMappings?: (xsltFile: string) => void; +}; + +export const DataMapperDebugger: FunctionComponent = ({ documentInitializationModel, onUpdateDocument, initialXsltFile, diff --git a/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx index 947351482..d99252f3e 100644 --- a/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx @@ -21,9 +21,8 @@ import { DataMapper } from '../DataMapper'; import { useDataMapper } from '../../../hooks/useDataMapper'; import { CanvasMonitor } from './CanvasMonitor'; import { DataMapperMonitor } from './DataMapperMonitor'; -import { IDataMapperProps } from '../../../pages/DataMapper/DataMapperPage'; -export const DebugLayout: FunctionComponent = memo(function DebugLayout() { +export const DebugLayout: FunctionComponent = memo(function DebugLayout() { const { setDebug } = useDataMapper()!; useEffect(() => { setDebug(true); diff --git a/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx index a4638a4d9..eb9448970 100644 --- a/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx +++ b/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx @@ -21,6 +21,7 @@ import { useDataMapper } from '../../../hooks/useDataMapper'; import { DocumentType } from '../../../models/datamapper/path'; import { useCanvas } from '../../../hooks/useCanvas'; import { DocumentDefinition, DocumentDefinitionType } from '../../../models/datamapper/document'; +import { readFileAsString } from '../../../utils/read-file-as-string'; type AttachSchemaProps = { documentType: DocumentType; @@ -33,7 +34,7 @@ export const AttachSchemaButton: FunctionComponent = ({ documentId, hasSchema = false, }) => { - const { updateDocumentDefinition } = useDataMapper(); + const { setIsLoading, updateDocumentDefinition } = useDataMapper(); const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const fileInputRef = createRef(); @@ -42,21 +43,36 @@ export const AttachSchemaButton: FunctionComponent = ({ }, [fileInputRef]); const onImport = useCallback( - (event: ChangeEvent) => { + async (event: ChangeEvent) => { + setIsLoading(true); const files = event.target.files; if (!files || files.length === 0) return; + const fileContents: Record = {}; + const fileContentPromises: Promise[] = []; + Array.from(files).map((f) => { + const promise = readFileAsString(f).then((content) => (fileContents[f.name] = content)); + fileContentPromises.push(promise); + }); + await Promise.allSettled(fileContentPromises); const definition = new DocumentDefinition( documentType, DocumentDefinitionType.XML_SCHEMA, documentId, - Array.from(files), + fileContents, ); - updateDocumentDefinition(definition).then(() => { - clearNodeReferencesForDocument(documentType, documentId); - reloadNodeReferences(); - }); + await updateDocumentDefinition(definition); + clearNodeReferencesForDocument(documentType, documentId); + reloadNodeReferences(); + setIsLoading(false); }, - [clearNodeReferencesForDocument, documentId, documentType, reloadNodeReferences, updateDocumentDefinition], + [ + clearNodeReferencesForDocument, + documentId, + documentType, + reloadNodeReferences, + setIsLoading, + updateDocumentDefinition, + ], ); return ( diff --git a/packages/ui/src/components/Document/actions/DetachSchemaButton.tsx b/packages/ui/src/components/Document/actions/DetachSchemaButton.tsx index fb055ade2..75deec899 100644 --- a/packages/ui/src/components/Document/actions/DetachSchemaButton.tsx +++ b/packages/ui/src/components/Document/actions/DetachSchemaButton.tsx @@ -35,11 +35,10 @@ export const DetachSchemaButton: FunctionComponent = ({ docum const onConfirmDelete = useCallback(() => { const definition = new DocumentDefinition(documentType, DocumentDefinitionType.Primitive, documentId); - updateDocumentDefinition(definition).then(() => { - clearNodeReferencesForDocument(documentType, documentId); - reloadNodeReferences(); - closeModal(); - }); + updateDocumentDefinition(definition); + clearNodeReferencesForDocument(documentType, documentId); + reloadNodeReferences(); + closeModal(); }, [ documentType, documentId, diff --git a/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx b/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx index e476a1f0b..635aff897 100644 --- a/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx +++ b/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx @@ -8,8 +8,8 @@ import { DataMapperProvider } from '../../../providers/datamapper.provider'; import { DataMapperCanvasProvider } from '../../../providers/datamapper-canvas.provider'; import { TestUtil } from '../../../stubs/data-mapper'; -describe('ExpressionEditorAction', () => { - it('should open expression editor modal', async () => { +describe('XPathEditorAction', () => { + it('should open xpath editor modal', async () => { const doc = TestUtil.createTargetOrderDoc(); const tree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); const docData = new TargetDocumentNodeData(doc, tree); @@ -26,5 +26,5 @@ describe('ExpressionEditorAction', () => { }); const modal = await screen.findByTestId('xpath-editor-modal'); expect(modal).toBeInTheDocument(); - }, 10000); + }, 15000); }); diff --git a/packages/ui/src/models/datamapper/document.ts b/packages/ui/src/models/datamapper/document.ts index 2d4c5229c..0619c2cea 100644 --- a/packages/ui/src/models/datamapper/document.ts +++ b/packages/ui/src/models/datamapper/document.ts @@ -107,8 +107,10 @@ export class DocumentDefinition { public documentType: DocumentType, public definitionType: DocumentDefinitionType, public name?: string, - public definitionFiles?: File[] | string[], - ) {} + public definitionFiles?: Record, + ) { + if (!definitionFiles) this.definitionFiles = {}; + } } export class DocumentInitializationModel { diff --git a/packages/ui/src/models/datamapper/metadata.ts b/packages/ui/src/models/datamapper/metadata.ts new file mode 100644 index 000000000..8043b4fea --- /dev/null +++ b/packages/ui/src/models/datamapper/metadata.ts @@ -0,0 +1,13 @@ +import { DocumentDefinitionType } from './document'; + +export interface IDocumentMetadata { + type: DocumentDefinitionType; + filePath: string[]; +} + +export interface IDataMapperMetadata { + xsltPath: string; + sourceParameters: Record; + sourceBody: IDocumentMetadata; + targetBody: IDocumentMetadata; +} diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx index a4d981bc8..d97bede46 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx @@ -1,49 +1,79 @@ import { DataMapperPage } from './DataMapperPage'; import { act, fireEvent, render, screen } from '@testing-library/react'; -import { - BODY_DOCUMENT_ID, - DocumentDefinition, - DocumentDefinitionType, - DocumentInitializationModel, -} from '../../models/datamapper/document'; -import { DocumentType } from '../../models/datamapper/path'; +import { DocumentDefinitionType } from '../../models/datamapper/document'; import { shipOrderToShipOrderXslt, shipOrderXsd } from '../../stubs/data-mapper'; +import { IVisualizationNode } from '../../models'; +import { IMetadataApi, MetadataProvider } from '../../providers'; +import { IDataMapperMetadata } from '../../models/datamapper/metadata'; describe('DataMapperPage', () => { + const vizNode = { id: 'kaoto-datamapper-1234' } as IVisualizationNode; + const defaultMetadata: IDataMapperMetadata = { + sourceBody: { + type: DocumentDefinitionType.Primitive, + filePath: [], + }, + sourceParameters: {}, + targetBody: { + type: DocumentDefinitionType.Primitive, + filePath: [], + }, + xsltPath: `kaoto-datamapper-1234.xsl`, + }; + + let metadata: IDataMapperMetadata; + let fileContents: Record; + const api = { + getMetadata: (_key: string) => { + return Promise.resolve(metadata); + }, + setMetadata: (_key: string, meta: IDataMapperMetadata) => { + Object.assign(metadata, meta); + return Promise.resolve(); + }, + getResourceContent: (path: string) => { + return Promise.resolve(fileContents[path]); + }, + saveResourceContent: (path: string, content: string) => { + fileContents[path] = content; + return Promise.resolve(); + }, + } as IMetadataApi; + + beforeEach(() => { + metadata = defaultMetadata; + fileContents = {}; + }); + it('should render initial XSLT mappings', async () => { - render(); + fileContents[metadata.xsltPath] = shipOrderToShipOrderXslt; + render( + + + , + ); await screen.findByTestId('card-source-parameters-header'); // TODO assert mappings are restored even without loading schema... But how? Lines are not drawn... }); it('should render initial XSLT mappings with initial documents', async () => { - const documentInitializationModel = new DocumentInitializationModel(); - documentInitializationModel.sourceBody = new DocumentDefinition( - DocumentType.SOURCE_BODY, - DocumentDefinitionType.XML_SCHEMA, - BODY_DOCUMENT_ID, - [shipOrderXsd], - ); - documentInitializationModel.targetBody = new DocumentDefinition( - DocumentType.TARGET_BODY, - DocumentDefinitionType.XML_SCHEMA, - BODY_DOCUMENT_ID, - [shipOrderXsd], - ); - documentInitializationModel.sourceParameters['testparam1'] = new DocumentDefinition( - DocumentType.PARAM, - DocumentDefinitionType.Primitive, - 'testparam1', - ); - const onUpdateMappings = jest.fn(); - const onUpdateDocument = jest.fn(); + fileContents['ShipOrder.xsd'] = shipOrderXsd; + metadata.sourceBody = { + filePath: ['ShipOrder.xsd'], + type: DocumentDefinitionType.XML_SCHEMA, + }; + metadata.targetBody = { + filePath: ['ShipOrder.xsd'], + type: DocumentDefinitionType.XML_SCHEMA, + }; + metadata.sourceParameters['testparam1'] = { + filePath: [], + type: DocumentDefinitionType.Primitive, + }; render( - , + + + , ); const parametersHeader = await screen.findByTestId('card-source-parameters-header'); act(() => { @@ -58,7 +88,11 @@ describe('DataMapperPage', () => { }); it('should not render toolbar menu in embedded mode', async () => { - render(); + render( + + + , + ); try { await screen.findByTestId('main-menu-button'); fail(); @@ -66,4 +100,10 @@ describe('DataMapperPage', () => { expect(e).toBeTruthy(); } }); + + it('should show an error message if vizNode is not provided', async () => { + render(); + const error = await screen.findByText('No associated DataMapper step was provided.'); + expect(error).toBeInTheDocument(); + }); }); diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx index fb75e6695..773f5d5b5 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx @@ -13,39 +13,93 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent } from 'react'; +import { FunctionComponent, useCallback, useContext, useEffect, useState } from 'react'; import { DataMapper } from '../../components/DataMapper/DataMapper'; import { DataMapperProvider } from '../../providers/datamapper.provider'; import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; import { DocumentDefinition, DocumentInitializationModel } from '../../models/datamapper/document'; +import { IVisualizationNode } from '../../models'; +import { MetadataContext } from '../../providers'; +import { DataMapperMetadataService } from '../../services/datamapper-metadata.service'; +import { DocumentType } from '../../models/datamapper/path'; +import { IDataMapperMetadata } from '../../models/datamapper/metadata'; +import { Loading } from '../../components/Loading'; export interface IDataMapperProps { - modalsContainerId?: string; - documentInitializationModel?: DocumentInitializationModel; - onUpdateDocument?: (definition: DocumentDefinition) => void; - initialXsltFile?: string; - onUpdateMappings?: (xsltFile: string) => void; + vizNode?: IVisualizationNode; } -export const DataMapperPage: FunctionComponent = ({ - documentInitializationModel, - onUpdateDocument, - initialXsltFile, - onUpdateMappings, -}) => { - return ( - <> - - - - - - +export const DataMapperPage: FunctionComponent = ({ vizNode }) => { + const ctx = useContext(MetadataContext)!; + const metadataId = vizNode && DataMapperMetadataService.getDataMapperMetadataId(vizNode); + const [metadata, setMetadata] = useState(); + const [documentInitializationModel, setDocumentInitializationModel] = useState(); + const [initialXsltFile, setInitialXsltFile] = useState(); + const [isLoading, setIsLoading] = useState(true); + + useEffect(() => { + if (!metadataId) return; + const initialize = async () => { + let meta = await ctx.getMetadata(metadataId); + if (!meta) { + meta = await DataMapperMetadataService.initializeDataMapperMetadata(vizNode, ctx, metadataId); + } + setMetadata(meta); + const initModel = await DataMapperMetadataService.loadDocuments(ctx, meta); + setDocumentInitializationModel(initModel); + const mappingFile = await DataMapperMetadataService.loadMappingFile(ctx, meta); + setInitialXsltFile(mappingFile); + }; + initialize().then(() => setIsLoading(false)); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const onUpdateDocument = useCallback( + (definition: DocumentDefinition) => { + if (!metadataId || !metadata) return; + switch (definition.documentType) { + case DocumentType.SOURCE_BODY: + DataMapperMetadataService.updateSourceBodyMetadata(ctx, metadataId, metadata, definition); + break; + case DocumentType.TARGET_BODY: + DataMapperMetadataService.updateTargetBodyMetadata(ctx, metadataId, metadata, definition); + break; + case DocumentType.PARAM: + DataMapperMetadataService.updateSourceParameterMetadata( + ctx, + metadataId, + metadata, + definition.name!, + definition, + ); + } + }, + [ctx, metadata, metadataId], + ); + + const onUpdateMappings = useCallback( + (xsltFile: string) => { + if (!metadata) return; + DataMapperMetadataService.updateMappingFile(ctx, metadata, xsltFile); + }, + [ctx, metadata], + ); + + return !metadataId ? ( + <>No associated DataMapper step was provided. + ) : isLoading ? ( + + ) : ( + + + + + ); }; diff --git a/packages/ui/src/providers/datamapper-canvas.provider.tsx b/packages/ui/src/providers/datamapper-canvas.provider.tsx index 0f393d918..98cb2fc2f 100644 --- a/packages/ui/src/providers/datamapper-canvas.provider.tsx +++ b/packages/ui/src/providers/datamapper-canvas.provider.tsx @@ -4,12 +4,14 @@ import { MutableRefObject, PropsWithChildren, useCallback, + useEffect, useMemo, useState, } from 'react'; import { DnDHandler } from './dnd/DnDHandler'; import { DocumentType, NodePath } from '../models/datamapper/path'; import { DatamapperDndProvider } from './datamapper-dnd.provider'; +import { useDataMapper } from '../hooks/useDataMapper'; export interface NodeReference { headerRef: HTMLDivElement | null; @@ -31,6 +33,7 @@ export interface ICanvasContext { export const CanvasContext = createContext(undefined); export const DataMapperCanvasProvider: FunctionComponent = (props) => { + const { mappingTree } = useDataMapper(); const [defaultHandler, setDefaultHandler] = useState(); const [activeHandler, setActiveHandler] = useState(); @@ -56,6 +59,10 @@ export const DataMapperCanvasProvider: FunctionComponent = (p setNodeReferenceMap(new Map(nodeReferenceMap)); }, [nodeReferenceMap]); + useEffect(() => { + if (mappingTree) reloadNodeReferences(); + }, [mappingTree]); + const clearNodeReferencesForPath = useCallback( (path: string) => { Array.from(nodeReferenceMap.keys()) diff --git a/packages/ui/src/providers/datamapper.provider.tsx b/packages/ui/src/providers/datamapper.provider.tsx index 39c2a771f..285833836 100644 --- a/packages/ui/src/providers/datamapper.provider.tsx +++ b/packages/ui/src/providers/datamapper.provider.tsx @@ -31,6 +31,9 @@ import { MappingService } from '../services/mapping.service'; import { DocumentService } from '../services/document.service'; export interface IDataMapperContext { + isLoading: boolean; + setIsLoading(isLoading: boolean): void; + activeView: CanvasView; setActiveView(view: CanvasView): void; @@ -40,7 +43,7 @@ export interface IDataMapperContext { setSourceBodyDocument: (doc: IDocument) => void; targetBodyDocument: IDocument; setTargetBodyDocument: (doc: IDocument) => void; - updateDocumentDefinition: (definition: DocumentDefinition) => Promise; + updateDocumentDefinition: (definition: DocumentDefinition) => void; isSourceParametersExpanded: boolean; setSourceParametersExpanded: (expanded: boolean) => void; @@ -70,9 +73,9 @@ export const DataMapperProvider: FunctionComponent = ({ children, }) => { const [debug, setDebug] = useState(false); + const [isLoading, setIsLoading] = useState(true); const [activeView, setActiveView] = useState(CanvasView.SOURCE_TARGET); - const [initializingDocument, setInitializingDocument] = useState(true); const [sourceParameterMap, setSourceParameterMap] = useState>(new Map()); const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(false); const [sourceBodyDocument, setSourceBodyDocument] = useState( @@ -81,19 +84,33 @@ export const DataMapperProvider: FunctionComponent = ({ const [targetBodyDocument, setTargetBodyDocument] = useState( new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), ); + const [mappingTree, setMappingTree] = useState( + new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), + ); useEffect(() => { - setInitializingDocument(true); - DocumentService.createInitialDocuments(documentInitializationModel) - .then((documents) => { - if (!documents) return; - documents.sourceBodyDocument && setSourceBodyDocument(documents.sourceBodyDocument); - setSourceParameterMap(documents.sourceParameterMap); - documents.targetBodyDocument && setTargetBodyDocument(documents.targetBodyDocument); - }) - .finally(() => { - setInitializingDocument(false); - }); + const documents = DocumentService.createInitialDocuments(documentInitializationModel); + let latestSourceParameterMap = sourceParameterMap; + let latestTargetBodyDocument = targetBodyDocument; + if (documents) { + documents.sourceBodyDocument && setSourceBodyDocument(documents.sourceBodyDocument); + setSourceParameterMap(documents.sourceParameterMap); + latestSourceParameterMap = documents.sourceParameterMap; + if (documents.targetBodyDocument) { + setTargetBodyDocument(documents.targetBodyDocument); + latestTargetBodyDocument = documents.targetBodyDocument; + } + } + if (initialXsltFile) { + const loaded = MappingSerializerService.deserialize( + initialXsltFile, + latestTargetBodyDocument, + mappingTree, + latestSourceParameterMap, + ); + setMappingTree(loaded); + } + setIsLoading(false); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); @@ -101,18 +118,6 @@ export const DataMapperProvider: FunctionComponent = ({ setSourceParameterMap(new Map(sourceParameterMap)); }, [sourceParameterMap]); - const [initializingMapping, setInitializingMapping] = useState(!!initialXsltFile); - const [mappingTree, setMappingTree] = useState( - new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), - ); - useEffect(() => { - if (initialXsltFile && !initializingDocument && initializingMapping) { - MappingSerializerService.deserialize(initialXsltFile, targetBodyDocument!, mappingTree, sourceParameterMap!); - setInitializingMapping(false); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [initializingDocument, initializingMapping]); - const refreshMappingTree = useCallback(() => { const newMapping = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); newMapping.children = mappingTree.children.map((child) => { @@ -165,24 +170,21 @@ export const DataMapperProvider: FunctionComponent = ({ [refreshSourceParameters, sourceParameterMap], ); - const [updatingDocument, setUpdatingDocument] = useState(false); const updateDocumentDefinition = useCallback( (definition: DocumentDefinition) => { - setUpdatingDocument(true); - return DocumentService.createDocument(definition) - .then((document) => { - if (!document) return; - removeStaleMappings(document.documentType, document.documentId, document); - setNewDocument(document.documentType, document.documentId, document); - onUpdateDocument && onUpdateDocument(definition); - }) - .finally(() => setUpdatingDocument(false)); + const document = DocumentService.createDocument(definition); + if (!document) return; + removeStaleMappings(document.documentType, document.documentId, document); + setNewDocument(document.documentType, document.documentId, document); + onUpdateDocument && onUpdateDocument(definition); }, [onUpdateDocument, removeStaleMappings, setNewDocument], ); const value = useMemo(() => { return { + isLoading, + setIsLoading, activeView, setActiveView, sourceParameterMap, @@ -201,6 +203,7 @@ export const DataMapperProvider: FunctionComponent = ({ setDebug, }; }, [ + isLoading, activeView, sourceParameterMap, isSourceParametersExpanded, @@ -213,9 +216,5 @@ export const DataMapperProvider: FunctionComponent = ({ debug, ]); - return ( - - {initializingDocument || initializingMapping || updatingDocument ? : children} - - ); + return {isLoading ? : children}; }; diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts new file mode 100644 index 000000000..a5001e67d --- /dev/null +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -0,0 +1,183 @@ +import { IVisualizationNode } from '../models'; +import { + BODY_DOCUMENT_ID, + DocumentDefinition, + DocumentDefinitionType, + DocumentInitializationModel, + DocumentType, +} from '../models/datamapper'; +import { IDataMapperMetadata, IDocumentMetadata } from '../models/datamapper/metadata'; +import { IMetadataApi } from '../providers'; +import { EMPTY_XSL } from './mapping-serializer.service'; + +export class DataMapperMetadataService { + static getDataMapperMetadataId(vizNode: IVisualizationNode) { + const model = vizNode.getComponentSchema()?.definition; + return `${vizNode.getId()}-${model.id}`; // routeId-stepId + } + + static initializeDataMapperMetadata( + vizNode: IVisualizationNode, + api: IMetadataApi, + metadataId: string, + ): Promise { + return new Promise((resolve) => { + const model = vizNode.getComponentSchema()?.definition; + // eslint-disable-next-line + const xsltStep = model.steps.find((step: any) => step.to?.uri?.startsWith('xslt')); + const splitted = xsltStep?.to?.uri?.split(':'); + let xsltFileName = `${model.id}.xsl`; + if (splitted.length < 2) { + xsltStep.to.uri = `xslt:${xsltFileName}`; + vizNode.updateModel(model); + } else { + xsltFileName = splitted[1]; + } + const metadata = { + sourceBody: { + type: DocumentDefinitionType.Primitive, + }, + sourceParameters: {}, + targetBody: { + type: DocumentDefinitionType.Primitive, + }, + xsltPath: xsltFileName, + } as IDataMapperMetadata; + const metadataPromise = api.setMetadata(metadataId, metadata); + const contentPromise = api.saveResourceContent(metadata.xsltPath, EMPTY_XSL); + Promise.allSettled([metadataPromise, contentPromise]).then(() => resolve(metadata)); + }); + } + + static loadDocuments(api: IMetadataApi, metadata: IDataMapperMetadata): Promise { + return new Promise((resolve) => { + const answer = new DocumentInitializationModel(); + const sourceBodyPromise = DataMapperMetadataService.doLoadDocument( + api, + DocumentType.SOURCE_BODY, + BODY_DOCUMENT_ID, + metadata.sourceBody, + ).then((definition) => (answer.sourceBody = definition)); + const targetBodyPromise = DataMapperMetadataService.doLoadDocument( + api, + DocumentType.TARGET_BODY, + BODY_DOCUMENT_ID, + metadata.targetBody, + ).then((definition) => (answer.targetBody = definition)); + const paramPromises = Object.entries(metadata.sourceParameters).reduce( + (acc, [key, meta]) => { + acc[key] = DataMapperMetadataService.doLoadDocument(api, DocumentType.PARAM, key, meta).then( + (definition) => (answer.sourceParameters[key] = definition), + ); + return acc; + }, + {} as Record>, + ); + Promise.allSettled([sourceBodyPromise, targetBodyPromise, Object.values(paramPromises)]).then(() => { + resolve(answer); + }); + }); + } + + private static doLoadDocument( + api: IMetadataApi, + documentType: DocumentType, + name: string, + documentMetadata: IDocumentMetadata, + ): Promise { + return new Promise((resolve) => { + const definitionType = documentMetadata.type ? documentMetadata.type : DocumentDefinitionType.Primitive; + const definitionFiles: Record = {}; + const fileReadingPromises = documentMetadata.filePath.map((path) => + api + .getResourceContent(path) + .then((value) => { + if (value) definitionFiles[path] = value; + }) + .catch((reason) => console.log(`Could not read a file "${path}": ${reason}`)), + ); + Promise.allSettled(fileReadingPromises).then(() => { + const answer = new DocumentDefinition(documentType, definitionType, name, definitionFiles); + resolve(answer); + }); + }); + } + + static loadMappingFile(api: IMetadataApi, metadata: IDataMapperMetadata): Promise { + return api.getResourceContent(metadata.xsltPath); + } + + static async updateSourceBodyMetadata( + api: IMetadataApi, + metadataId: string, + metadata: IDataMapperMetadata, + definition: DocumentDefinition, + ) { + metadata.sourceBody = await DataMapperMetadataService.doCreateDocumentMetadata( + api, + metadataId, + metadata, + definition, + ); + api.setMetadata(metadataId, metadata); + } + + private static doCreateDocumentMetadata( + api: IMetadataApi, + metadataId: string, + metadata: IDataMapperMetadata, + definition: DocumentDefinition, + ): Promise { + const filePaths = definition.definitionFiles ? Object.keys(definition.definitionFiles) : []; + const answer = { + type: definition.definitionType, + filePath: filePaths, + }; + const metadataPromise = api.setMetadata(metadataId, metadata); + const filePromises = definition.definitionFiles + ? Object.entries(definition.definitionFiles).map(([path, content]) => { + api + .saveResourceContent(path, content) + .catch((error) => console.log(`Could not save a file "${path}": ${error}`)); + }) + : []; + return new Promise((resolve) => { + Promise.allSettled([metadataPromise, ...filePromises]).then(() => resolve(answer)); + }); + } + + static async updateTargetBodyMetadata( + api: IMetadataApi, + metadataId: string, + metadata: IDataMapperMetadata, + definition: DocumentDefinition, + ) { + metadata.targetBody = await DataMapperMetadataService.doCreateDocumentMetadata( + api, + metadataId, + metadata, + definition, + ); + api.setMetadata(metadataId, metadata); + } + + static async updateSourceParameterMetadata( + api: IMetadataApi, + metadataId: string, + metadata: IDataMapperMetadata, + name: string, + definition: DocumentDefinition, + ) { + metadata.sourceParameters[name] = await DataMapperMetadataService.doCreateDocumentMetadata( + api, + metadataId, + metadata, + definition, + ); + api.setMetadata(metadataId, metadata); + } + + static async updateMappingFile(api: IMetadataApi, metadata: IDataMapperMetadata, xsltFile: string) { + await api.saveResourceContent(metadata.xsltPath, xsltFile); + } +} diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index 20715b0c9..91adf2c27 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -9,7 +9,6 @@ import { } from '../models/datamapper/document'; import { DocumentType } from '../models/datamapper/path'; import { XmlSchemaDocumentService } from './xml-schema-document.service'; -import { readFileAsString } from '../utils/read-file-as-string'; interface InitialDocumentsSet { sourceBodyDocument?: IDocument; @@ -18,53 +17,36 @@ interface InitialDocumentsSet { } export class DocumentService { - static createDocument(definition: DocumentDefinition): Promise { + static createDocument(definition: DocumentDefinition): IDocument | null { if (definition.definitionType === DocumentDefinitionType.Primitive) { - return Promise.resolve( - new PrimitiveDocument(definition.documentType, DocumentType.PARAM ? definition.name! : BODY_DOCUMENT_ID), - ); + return new PrimitiveDocument(definition.documentType, DocumentType.PARAM ? definition.name! : BODY_DOCUMENT_ID); } - if (!definition.definitionFiles || definition.definitionFiles.length === 0) return Promise.resolve(null); - return Promise.allSettled( - definition.definitionFiles.map((file) => - typeof file === 'string' ? Promise.resolve(file) : readFileAsString(file), - ), - ).then((results) => { - const content = (results[0] as PromiseFulfilledResult).value; - const documentId = definition.documentType === DocumentType.PARAM ? definition.name! : BODY_DOCUMENT_ID; - return XmlSchemaDocumentService.createXmlSchemaDocument(definition.documentType, documentId, content); - }); + if (!definition.definitionFiles || Object.keys(definition.definitionFiles).length === 0) return null; + const content = Object.values(definition.definitionFiles)[0]; + const documentId = definition.documentType === DocumentType.PARAM ? definition.name! : BODY_DOCUMENT_ID; + return XmlSchemaDocumentService.createXmlSchemaDocument(definition.documentType, documentId, content); } - static createInitialDocuments(initModel?: DocumentInitializationModel): Promise { - if (!initModel) return Promise.resolve(null); + static createInitialDocuments(initModel?: DocumentInitializationModel): InitialDocumentsSet | null { + if (!initModel) return null; const answer: InitialDocumentsSet = { sourceParameterMap: new Map(), }; - const promises: Promise[] = []; if (initModel.sourceBody) { - const sourceBodyPromise = DocumentService.createDocument(initModel.sourceBody).then((document) => { - if (document) answer.sourceBodyDocument = document; - }); - promises.push(sourceBodyPromise); + const document = DocumentService.createDocument(initModel.sourceBody); + if (document) answer.sourceBodyDocument = document; } if (initModel.sourceParameters) { Object.entries(initModel.sourceParameters).map(([key, value]) => { - const paramPromise = DocumentService.createDocument(value).then((document) => { - answer.sourceParameterMap.set(key, document ? document : new PrimitiveDocument(DocumentType.PARAM, key)); - }); - promises.push(paramPromise); + const document = DocumentService.createDocument(value); + answer.sourceParameterMap.set(key, document ? document : new PrimitiveDocument(DocumentType.PARAM, key)); }); } if (initModel.targetBody) { - const targetBodyPromise = DocumentService.createDocument(initModel.targetBody).then((document) => { - if (document) answer.targetBodyDocument = document; - }); - promises.push(targetBodyPromise); + const document = DocumentService.createDocument(initModel.targetBody); + if (document) answer.targetBodyDocument = document; } - return Promise.allSettled(promises).then(() => { - return answer; - }); + return answer; } static getFieldStack(field: IField, includeItself: boolean = false) { diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 93c20fabe..2054563d4 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -17,7 +17,7 @@ import { DocumentType } from '../models/datamapper/path'; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; export const EMPTY_XSL = ` - + From c9a439e157bff7b8168513c6fa21ede2413b8a1e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 24 Sep 2024 15:16:57 -0400 Subject: [PATCH 375/471] fix(DataMapper): Build&Test error Fixes: #73 --- .../components/registers/datamapper.activationfn.test.ts | 4 ++-- packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/components/registers/datamapper.activationfn.test.ts b/packages/ui/src/components/registers/datamapper.activationfn.test.ts index f3119fe3a..7d7386276 100644 --- a/packages/ui/src/components/registers/datamapper.activationfn.test.ts +++ b/packages/ui/src/components/registers/datamapper.activationfn.test.ts @@ -17,7 +17,7 @@ describe('datamapperActivationFn', () => { definition: undefined, schema: {} as KaotoSchemaDefinition['schema'], }), - } as IVisualizationNode); + } as unknown as IVisualizationNode); expect(result).toBe(false); }); @@ -29,7 +29,7 @@ describe('datamapperActivationFn', () => { definition: datamapperRouteDefinitionStub.from.steps[0].step as Step, schema: {} as KaotoSchemaDefinition['schema'], }), - } as IVisualizationNode); + } as unknown as IVisualizationNode); expect(result).toBe(true); }); diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx index d97bede46..637390d76 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx @@ -7,7 +7,14 @@ import { IMetadataApi, MetadataProvider } from '../../providers'; import { IDataMapperMetadata } from '../../models/datamapper/metadata'; describe('DataMapperPage', () => { - const vizNode = { id: 'kaoto-datamapper-1234' } as IVisualizationNode; + const vizNode = { + getId: () => 'route-1234', + getComponentSchema: () => { + return { + definition: { id: 'kaoto-datamapper-1234' }, + }; + }, + } as unknown as IVisualizationNode; const defaultMetadata: IDataMapperMetadata = { sourceBody: { type: DocumentDefinitionType.Primitive, From 32cc7178906d8f2684afb39df10d94c3702f558d Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 24 Sep 2024 14:44:44 -0400 Subject: [PATCH 376/471] fix(DataMapper): Expand `Parameters` by default Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/72 --- packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx | 5 +---- packages/ui/src/providers/datamapper.provider.tsx | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx index 637390d76..faa7ada1e 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx @@ -82,10 +82,7 @@ describe('DataMapperPage', () => { , ); - const parametersHeader = await screen.findByTestId('card-source-parameters-header'); - act(() => { - fireEvent.click(parametersHeader.getElementsByTagName('button')[0]); - }); + await screen.findByTestId('card-source-parameters-header'); expect(screen.getByTestId('node-source-doc-param-testparam1')).toBeInTheDocument(); expect(screen.getByTestId('node-source-doc-sourceBody-Body')).toBeInTheDocument(); expect(screen.getByTestId('node-target-doc-targetBody-Body')).toBeInTheDocument(); diff --git a/packages/ui/src/providers/datamapper.provider.tsx b/packages/ui/src/providers/datamapper.provider.tsx index 285833836..8b5e84984 100644 --- a/packages/ui/src/providers/datamapper.provider.tsx +++ b/packages/ui/src/providers/datamapper.provider.tsx @@ -77,7 +77,7 @@ export const DataMapperProvider: FunctionComponent = ({ const [activeView, setActiveView] = useState(CanvasView.SOURCE_TARGET); const [sourceParameterMap, setSourceParameterMap] = useState>(new Map()); - const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(false); + const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(true); const [sourceBodyDocument, setSourceBodyDocument] = useState( new PrimitiveDocument(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID), ); From 4efffb3009e012943fce104c37db30189aeb779a Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 24 Sep 2024 15:59:36 -0400 Subject: [PATCH 377/471] fix(DataMapper): Expression Editor: Do not wrap parameter name Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/50 --- .../ui/src/components/Document/SourceDocument.tsx | 12 ++++++++---- .../ui/src/components/Document/TargetDocument.tsx | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/packages/ui/src/components/Document/SourceDocument.tsx b/packages/ui/src/components/Document/SourceDocument.tsx index 0558b75cb..3e184a572 100644 --- a/packages/ui/src/components/Document/SourceDocument.tsx +++ b/packages/ui/src/components/Document/SourceDocument.tsx @@ -1,7 +1,7 @@ import { DocumentNodeData, FieldNodeData, MappingNodeData, NodeData } from '../../models/datamapper/visualization'; import { FunctionComponent, useCallback, useRef, useState } from 'react'; import { IDocument } from '../../models/datamapper/document'; -import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; +import { Label, Split, SplitItem, Title, Truncate } from '@patternfly/react-core'; import { DocumentActions } from './actions/DocumentActions'; import { AngleDownIcon, AtIcon, GripVerticalIcon, LayerGroupIcon } from '@patternfly/react-icons'; import { NodeContainer } from './NodeContainer'; @@ -53,11 +53,15 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD const nodeTitle = nodeData instanceof MappingNodeData ? ( - + ) : isDocument ? ( - {nodeData.title} + + <Truncate content={nodeData.title} /> + ) : ( - nodeData.title + ); return ( diff --git a/packages/ui/src/components/Document/TargetDocument.tsx b/packages/ui/src/components/Document/TargetDocument.tsx index 2729cc5eb..7867edb5e 100644 --- a/packages/ui/src/components/Document/TargetDocument.tsx +++ b/packages/ui/src/components/Document/TargetDocument.tsx @@ -4,7 +4,7 @@ import { useDataMapper } from '../../hooks/useDataMapper'; import { MappingNodeData, TargetDocumentNodeData, TargetNodeData } from '../../models/datamapper/visualization'; import { TargetNodeActions } from './actions/TargetNodeActions'; import { NodeContainer } from './NodeContainer'; -import { Label, Split, SplitItem, Title } from '@patternfly/react-core'; +import { Label, Split, SplitItem, Title, Truncate } from '@patternfly/react-core'; import { NodeReference } from '../../providers/datamapper-canvas.provider'; import { useCanvas } from '../../hooks/useCanvas'; import { VisualizationService } from '../../services/visualization.service'; @@ -64,11 +64,15 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData }) const nodeTitle = nodeData instanceof MappingNodeData ? ( - + ) : isDocument ? ( - {nodeData.title} + + <Truncate content={nodeData.title} /> + ) : ( - nodeData.title + ); return ( From dc3657aee2e987831e118b04da6ab8d1fd76016d Mon Sep 17 00:00:00 2001 From: "Ricardo M." Date: Tue, 17 Sep 2024 09:44:23 +0200 Subject: [PATCH 378/471] feat(Datamapper): Add Datamapper to the catalog This commit adds a new `kaoto-patterns.json` asset that gets included in the Camel Catalog. This file, in combination with the `camel-component-default.service.ts` file, allows the user to add new Kaoto Datamapper elements in the canvas. This `kaoto-patterns.json` file could also be extended in the future, to allow users to add their own custom patterns, in a form of a shortcut, although a better way to do it could be using a kamelet instead. --- .../assets/kaoto-patterns/kaoto-patterns.json | 116 ++++++ .../registers/datamapper.activationfn.test.ts | 2 - .../nodes/mappers/datamapper-node-mapper.ts | 5 +- .../camel-component-default.service.ts | 11 + .../camel-component-schema.service.test.ts | 4 +- .../support/camel-component-schema.service.ts | 1 + .../pages/DataMapper/DataMapperPage.test.tsx | 10 +- .../catalog.provider.test.tsx.snap | 379 ++++++++++++++++++ .../src/providers/catalog.provider.test.tsx | 2 + .../ui/src/providers/catalog.provider.tsx | 11 +- 10 files changed, 530 insertions(+), 11 deletions(-) create mode 100644 packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json create mode 100644 packages/ui/src/providers/__snapshots__/catalog.provider.test.tsx.snap diff --git a/packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json b/packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json new file mode 100644 index 000000000..7b9727b59 --- /dev/null +++ b/packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json @@ -0,0 +1,116 @@ +{ + "kaoto-datamapper" : { + "model" : { + "kind" : "model", + "name" : "kaoto-datamapper", + "title" : "Kaoto data mapper", + "description" : "The Kaoto data mapper pattern process data mapping using a set of Camel processors", + "deprecated" : false, + "label" : "transformation", + "javaType" : "org.apache.camel.model.StepDefinition", + "supportLevel" : "Stable", + "abstract" : false, + "input" : true, + "output" : true + }, + "properties" : { + "id" : { + "index" : 0, + "kind" : "attribute", + "displayName" : "Id", + "group" : "common", + "required" : false, + "type" : "string", + "javaType" : "java.lang.String", + "deprecated" : false, + "autowired" : false, + "secret" : false, + "description" : "Sets the id of this node" + }, + "description" : { + "index" : 1, + "kind" : "attribute", + "displayName" : "Description", + "group" : "common", + "required" : false, + "type" : "string", + "javaType" : "java.lang.String", + "deprecated" : false, + "autowired" : false, + "secret" : false, + "description" : "Sets the description of this node" + }, + "disabled" : { + "index" : 2, + "kind" : "attribute", + "displayName" : "Disabled", + "group" : "advanced", + "label" : "advanced", + "required" : false, + "type" : "boolean", + "javaType" : "java.lang.Boolean", + "deprecated" : false, + "autowired" : false, + "secret" : false, + "defaultValue" : false, + "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime." + }, + "outputs" : { + "index" : 3, + "kind" : "element", + "displayName" : "Outputs", + "group" : "common", + "required" : true, + "type" : "array", + "javaType" : "java.util.List", + "oneOf" : [ "aggregate", "bean", "choice", "circuitBreaker", "claimCheck", "convertBodyTo", "convertHeaderTo", "convertVariableTo", "delay", "doCatch", "doFinally", "doTry", "dynamicRouter", "enrich", "filter", "idempotentConsumer", "intercept", "interceptFrom", "interceptSendToEndpoint", "kamelet", "loadBalance", "log", "loop", "marshal", "multicast", "onCompletion", "onException", "onFallback", "otherwise", "pausable", "pipeline", "policy", "pollEnrich", "process", "recipientList", "removeHeader", "removeHeaders", "removeProperties", "removeProperty", "removeVariable", "resequence", "resumable", "rollback", "routingSlip", "saga", "sample", "script", "serviceCall", "setBody", "setExchangePattern", "setHeader", "setHeaders", "setProperty", "setVariable", "setVariables", "sort", "split", "step", "stop", "threads", "throttle", "throwException", "to", "toD", "transacted", "transform", "unmarshal", "validate", "when", "whenSkipSendToEndpoint", "wireTap" ], + "deprecated" : false, + "autowired" : false, + "secret" : false + } + }, + "exchangeProperties" : { + "CamelStepId" : { + "index" : 0, + "kind" : "exchangeProperty", + "displayName" : "Step Id", + "label" : "producer", + "required" : false, + "javaType" : "String", + "deprecated" : false, + "autowired" : false, + "secret" : false, + "description" : "The id of the Step EIP" + } + }, + "propertiesSchema" : { + "title" : "Kaoto data mapper", + "description" : "The Kaoto data mapper pattern process data mapping using a set of Camel processors", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "id" : { + "type" : "string", + "title" : "Id", + "description" : "Sets the id of this node", + "group" : "common" + }, + "description" : { + "type" : "string", + "title" : "Description", + "description" : "Sets the description of this node", + "group" : "common" + }, + "disabled" : { + "type" : "boolean", + "title" : "Disabled", + "description" : "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.", + "group" : "advanced" + } + }, + "$comment" : "steps", + "$schema" : "http://json-schema.org/draft-07/schema#", + "required" : [ ] + } + } +} diff --git a/packages/ui/src/components/registers/datamapper.activationfn.test.ts b/packages/ui/src/components/registers/datamapper.activationfn.test.ts index 7d7386276..49dce605d 100644 --- a/packages/ui/src/components/registers/datamapper.activationfn.test.ts +++ b/packages/ui/src/components/registers/datamapper.activationfn.test.ts @@ -13,7 +13,6 @@ describe('datamapperActivationFn', () => { it('should return false if stepDefinition is undefined', () => { const result = datamapperActivationFn({ getComponentSchema: () => ({ - title: 'Data mapper', definition: undefined, schema: {} as KaotoSchemaDefinition['schema'], }), @@ -25,7 +24,6 @@ describe('datamapperActivationFn', () => { it('should return `true` if stepDefinition is a Data Mapper node', () => { const result = datamapperActivationFn({ getComponentSchema: () => ({ - title: 'Data mapper', definition: datamapperRouteDefinitionStub.from.steps[0].step as Step, schema: {} as KaotoSchemaDefinition['schema'], }), diff --git a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts index eb19525df..334a75187 100644 --- a/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts +++ b/packages/ui/src/models/visualization/flows/nodes/mappers/datamapper-node-mapper.ts @@ -21,7 +21,10 @@ export class DataMapperNodeMapper extends BaseNodeMapper { isGroup: false, }; - return createVisualizationNode(processorName, data); + const vizNode = createVisualizationNode(processorName, data); + vizNode.setTitle('Kaoto data mapper'); + + return vizNode; } static isDataMapperNode(stepDefinition: Step): boolean { diff --git a/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts b/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts index ffa81ed3f..c20f40471 100644 --- a/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts +++ b/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts @@ -153,6 +153,17 @@ export class CamelComponentDefaultService { simple: {} `); + case 'kaoto-datamapper' as keyof ProcessorDefinition: + return parse(` + step: + id: ${getCamelRandomId('kaoto-datamapper')} + steps: + - to: + id: ${getCamelRandomId('kaoto-datamapper-xslt')} + uri: xslt + parameters: {} + `); + default: return { [processorName]: { diff --git a/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.test.ts b/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.test.ts index 8ca047e1e..82b037476 100644 --- a/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.test.ts +++ b/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.test.ts @@ -333,7 +333,9 @@ describe('CamelComponentSchemaService', () => { { id: 'interceptSendToEndpoint-1234' }, 'interceptSendToEndpoint-1234', ], - ])( + [{ processorName: 'step' }, { id: 'kaoto-datamapper-1234' }, 'kaoto-datamapper-1234'], + [{ processorName: 'step' }, { id: 'step-1234' }, 'step-1234'], + ] as const)( 'should return the processor name if the component name is not provided: %s [%s]', (componentLookup, definition, result) => { const label = CamelComponentSchemaService.getNodeLabel(componentLookup, definition); diff --git a/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.ts b/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.ts index b665293cb..1999c30e6 100644 --- a/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.ts +++ b/packages/ui/src/models/visualization/flows/support/camel-component-schema.service.ts @@ -96,6 +96,7 @@ export class CamelComponentSchemaService { case 'intercept' as keyof ProcessorDefinition: case 'interceptFrom' as keyof ProcessorDefinition: case 'interceptSendToEndpoint' as keyof ProcessorDefinition: + case 'step': return id ?? camelElementLookup.processorName; case 'from' as keyof ProcessorDefinition: diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx index faa7ada1e..4b9d5f30d 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx @@ -1,10 +1,10 @@ -import { DataMapperPage } from './DataMapperPage'; -import { act, fireEvent, render, screen } from '@testing-library/react'; -import { DocumentDefinitionType } from '../../models/datamapper/document'; -import { shipOrderToShipOrderXslt, shipOrderXsd } from '../../stubs/data-mapper'; +import { render, screen } from '@testing-library/react'; import { IVisualizationNode } from '../../models'; -import { IMetadataApi, MetadataProvider } from '../../providers'; +import { DocumentDefinitionType } from '../../models/datamapper/document'; import { IDataMapperMetadata } from '../../models/datamapper/metadata'; +import { IMetadataApi, MetadataProvider } from '../../providers'; +import { shipOrderToShipOrderXslt, shipOrderXsd } from '../../stubs/data-mapper'; +import { DataMapperPage } from './DataMapperPage'; describe('DataMapperPage', () => { const vizNode = { diff --git a/packages/ui/src/providers/__snapshots__/catalog.provider.test.tsx.snap b/packages/ui/src/providers/__snapshots__/catalog.provider.test.tsx.snap new file mode 100644 index 000000000..4146243c1 --- /dev/null +++ b/packages/ui/src/providers/__snapshots__/catalog.provider.test.tsx.snap @@ -0,0 +1,379 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CatalogLoaderProvider should load the CamelCatalogService 1`] = ` +{ + "exchangeProperties": { + "CamelStepId": { + "autowired": false, + "deprecated": false, + "description": "The id of the Step EIP", + "displayName": "Step Id", + "index": 0, + "javaType": "String", + "kind": "exchangeProperty", + "label": "producer", + "required": false, + "secret": false, + }, + }, + "model": { + "abstract": false, + "deprecated": false, + "description": "The Kaoto data mapper pattern process data mapping using a set of Camel processors", + "input": true, + "javaType": "org.apache.camel.model.StepDefinition", + "kind": "model", + "label": "transformation", + "name": "kaoto-datamapper", + "output": true, + "supportLevel": "Stable", + "title": "Kaoto data mapper", + }, + "properties": { + "description": { + "autowired": false, + "deprecated": false, + "description": "Sets the description of this node", + "displayName": "Description", + "group": "common", + "index": 1, + "javaType": "java.lang.String", + "kind": "attribute", + "required": false, + "secret": false, + "type": "string", + }, + "disabled": { + "autowired": false, + "defaultValue": false, + "deprecated": false, + "description": "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.", + "displayName": "Disabled", + "group": "advanced", + "index": 2, + "javaType": "java.lang.Boolean", + "kind": "attribute", + "label": "advanced", + "required": false, + "secret": false, + "type": "boolean", + }, + "id": { + "autowired": false, + "deprecated": false, + "description": "Sets the id of this node", + "displayName": "Id", + "group": "common", + "index": 0, + "javaType": "java.lang.String", + "kind": "attribute", + "required": false, + "secret": false, + "type": "string", + }, + "outputs": { + "autowired": false, + "deprecated": false, + "displayName": "Outputs", + "group": "common", + "index": 3, + "javaType": "java.util.List", + "kind": "element", + "oneOf": [ + "aggregate", + "bean", + "choice", + "circuitBreaker", + "claimCheck", + "convertBodyTo", + "convertHeaderTo", + "convertVariableTo", + "delay", + "doCatch", + "doFinally", + "doTry", + "dynamicRouter", + "enrich", + "filter", + "idempotentConsumer", + "intercept", + "interceptFrom", + "interceptSendToEndpoint", + "kamelet", + "loadBalance", + "log", + "loop", + "marshal", + "multicast", + "onCompletion", + "onException", + "onFallback", + "otherwise", + "pausable", + "pipeline", + "policy", + "pollEnrich", + "process", + "recipientList", + "removeHeader", + "removeHeaders", + "removeProperties", + "removeProperty", + "removeVariable", + "resequence", + "resumable", + "rollback", + "routingSlip", + "saga", + "sample", + "script", + "serviceCall", + "setBody", + "setExchangePattern", + "setHeader", + "setHeaders", + "setProperty", + "setVariable", + "setVariables", + "sort", + "split", + "step", + "stop", + "threads", + "throttle", + "throwException", + "to", + "toD", + "transacted", + "transform", + "unmarshal", + "validate", + "when", + "whenSkipSendToEndpoint", + "wireTap", + ], + "required": true, + "secret": false, + "type": "array", + }, + }, + "propertiesSchema": { + "$comment": "steps", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "description": "The Kaoto data mapper pattern process data mapping using a set of Camel processors", + "properties": { + "description": { + "description": "Sets the description of this node", + "group": "common", + "title": "Description", + "type": "string", + }, + "disabled": { + "description": "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.", + "group": "advanced", + "title": "Disabled", + "type": "boolean", + }, + "id": { + "description": "Sets the id of this node", + "group": "common", + "title": "Id", + "type": "string", + }, + }, + "required": [], + "title": "Kaoto data mapper", + "type": "object", + }, +} +`; + +exports[`CatalogLoaderProvider should load the CamelCatalogService 2`] = ` +{ + "exchangeProperties": { + "CamelStepId": { + "autowired": false, + "deprecated": false, + "description": "The id of the Step EIP", + "displayName": "Step Id", + "index": 0, + "javaType": "String", + "kind": "exchangeProperty", + "label": "producer", + "required": false, + "secret": false, + }, + }, + "model": { + "abstract": false, + "deprecated": false, + "description": "The Kaoto data mapper pattern process data mapping using a set of Camel processors", + "input": true, + "javaType": "org.apache.camel.model.StepDefinition", + "kind": "model", + "label": "transformation", + "name": "kaoto-datamapper", + "output": true, + "supportLevel": "Stable", + "title": "Kaoto data mapper", + }, + "properties": { + "description": { + "autowired": false, + "deprecated": false, + "description": "Sets the description of this node", + "displayName": "Description", + "group": "common", + "index": 1, + "javaType": "java.lang.String", + "kind": "attribute", + "required": false, + "secret": false, + "type": "string", + }, + "disabled": { + "autowired": false, + "defaultValue": false, + "deprecated": false, + "description": "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.", + "displayName": "Disabled", + "group": "advanced", + "index": 2, + "javaType": "java.lang.Boolean", + "kind": "attribute", + "label": "advanced", + "required": false, + "secret": false, + "type": "boolean", + }, + "id": { + "autowired": false, + "deprecated": false, + "description": "Sets the id of this node", + "displayName": "Id", + "group": "common", + "index": 0, + "javaType": "java.lang.String", + "kind": "attribute", + "required": false, + "secret": false, + "type": "string", + }, + "outputs": { + "autowired": false, + "deprecated": false, + "displayName": "Outputs", + "group": "common", + "index": 3, + "javaType": "java.util.List", + "kind": "element", + "oneOf": [ + "aggregate", + "bean", + "choice", + "circuitBreaker", + "claimCheck", + "convertBodyTo", + "convertHeaderTo", + "convertVariableTo", + "delay", + "doCatch", + "doFinally", + "doTry", + "dynamicRouter", + "enrich", + "filter", + "idempotentConsumer", + "intercept", + "interceptFrom", + "interceptSendToEndpoint", + "kamelet", + "loadBalance", + "log", + "loop", + "marshal", + "multicast", + "onCompletion", + "onException", + "onFallback", + "otherwise", + "pausable", + "pipeline", + "policy", + "pollEnrich", + "process", + "recipientList", + "removeHeader", + "removeHeaders", + "removeProperties", + "removeProperty", + "removeVariable", + "resequence", + "resumable", + "rollback", + "routingSlip", + "saga", + "sample", + "script", + "serviceCall", + "setBody", + "setExchangePattern", + "setHeader", + "setHeaders", + "setProperty", + "setVariable", + "setVariables", + "sort", + "split", + "step", + "stop", + "threads", + "throttle", + "throwException", + "to", + "toD", + "transacted", + "transform", + "unmarshal", + "validate", + "when", + "whenSkipSendToEndpoint", + "wireTap", + ], + "required": true, + "secret": false, + "type": "array", + }, + }, + "propertiesSchema": { + "$comment": "steps", + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "description": "The Kaoto data mapper pattern process data mapping using a set of Camel processors", + "properties": { + "description": { + "description": "Sets the description of this node", + "group": "common", + "title": "Description", + "type": "string", + }, + "disabled": { + "description": "Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.", + "group": "advanced", + "title": "Disabled", + "type": "boolean", + }, + "id": { + "description": "Sets the id of this node", + "group": "common", + "title": "Id", + "type": "string", + }, + }, + "required": [], + "title": "Kaoto data mapper", + "type": "object", + }, +} +`; diff --git a/packages/ui/src/providers/catalog.provider.test.tsx b/packages/ui/src/providers/catalog.provider.test.tsx index 41e31f7ed..936a6b059 100644 --- a/packages/ui/src/providers/catalog.provider.test.tsx +++ b/packages/ui/src/providers/catalog.provider.test.tsx @@ -209,6 +209,7 @@ describe('CatalogLoaderProvider', () => { ) { expect(call[0]).toEqual(CatalogKind.Processor); expect(Object.values(call[1])[0]).toEqual('dummy-data'); + expect(Object.values(call[1])[1]).toMatchSnapshot(); count++; } else if ( Object.keys(call[1])[0].includes( @@ -217,6 +218,7 @@ describe('CatalogLoaderProvider', () => { ) { expect(call[0]).toEqual(CatalogKind.Pattern); expect(Object.values(call[1])[0]).toEqual('dummy-data'); + expect(Object.values(call[1])[1]).toMatchSnapshot(); count++; } else if ( Object.keys(call[1])[0].includes( diff --git a/packages/ui/src/providers/catalog.provider.tsx b/packages/ui/src/providers/catalog.provider.tsx index e3149f24e..8d94f9b00 100644 --- a/packages/ui/src/providers/catalog.provider.tsx +++ b/packages/ui/src/providers/catalog.provider.tsx @@ -1,5 +1,6 @@ import { Text, TextVariants } from '@patternfly/react-core'; import { FunctionComponent, PropsWithChildren, createContext, useEffect, useState } from 'react'; +import kaotoPatterns from '../assets/kaoto-patterns/kaoto-patterns.json'; import { LoadDefaultCatalog } from '../components/LoadDefaultCatalog'; import { Loading } from '../components/Loading'; import { useRuntimeContext } from '../hooks/useRuntimeContext/useRuntimeContext'; @@ -89,8 +90,14 @@ export const CatalogLoaderProvider: FunctionComponent = (prop ]); CamelCatalogService.setCatalogKey(CatalogKind.Component, camelComponents.body); - CamelCatalogService.setCatalogKey(CatalogKind.Processor, camelModels.body); - CamelCatalogService.setCatalogKey(CatalogKind.Pattern, camelPatterns.body); + CamelCatalogService.setCatalogKey(CatalogKind.Processor, { + ...camelModels.body, + ...(kaotoPatterns as unknown as ComponentsCatalog[CatalogKind.Pattern]), + }); + CamelCatalogService.setCatalogKey(CatalogKind.Pattern, { + ...camelPatterns.body, + ...(kaotoPatterns as unknown as ComponentsCatalog[CatalogKind.Pattern]), + }); CamelCatalogService.setCatalogKey(CatalogKind.Entity, camelEntities.body); CamelCatalogService.setCatalogKey(CatalogKind.Language, camelLanguages.body); CamelCatalogService.setCatalogKey(CatalogKind.Dataformat, camelDataformats.body); From 4a3259a78bbf621616ef0b534afd1ee0ae631513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Mon, 30 Sep 2024 10:32:50 +0200 Subject: [PATCH 379/471] Fix opening datamapper with no config yet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #84 Signed-off-by: Aurélien Pupier --- packages/ui/src/components/Document/SourceDocument.tsx | 6 +++--- packages/ui/src/components/Document/TargetDocument.tsx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ui/src/components/Document/SourceDocument.tsx b/packages/ui/src/components/Document/SourceDocument.tsx index 3e184a572..a7b7ad1cb 100644 --- a/packages/ui/src/components/Document/SourceDocument.tsx +++ b/packages/ui/src/components/Document/SourceDocument.tsx @@ -54,14 +54,14 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD const nodeTitle = nodeData instanceof MappingNodeData ? ( ) : isDocument ? ( - <Truncate content={nodeData.title} /> + <Truncate content={nodeData.title ?? ''} /> ) : ( - + ); return ( diff --git a/packages/ui/src/components/Document/TargetDocument.tsx b/packages/ui/src/components/Document/TargetDocument.tsx index 7867edb5e..f354b4906 100644 --- a/packages/ui/src/components/Document/TargetDocument.tsx +++ b/packages/ui/src/components/Document/TargetDocument.tsx @@ -65,14 +65,14 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData }) const nodeTitle = nodeData instanceof MappingNodeData ? ( ) : isDocument ? ( - <Truncate content={nodeData.title} /> + <Truncate content={nodeData.title ?? ''} /> ) : ( - + ); return ( From e0fe823644f4da15fb8736eaf49e9647b7fb637e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 30 Sep 2024 15:49:44 -0400 Subject: [PATCH 380/471] fix(DataMapper): XSLT file path is not reflected to YAML route Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/81 --- packages/ui/src/pages/DataMapper/DataMapperPage.tsx | 5 +++-- packages/ui/src/services/datamapper-metadata.service.ts | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx index 773f5d5b5..b8a453fec 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx @@ -19,7 +19,7 @@ import { DataMapperProvider } from '../../providers/datamapper.provider'; import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; import { DocumentDefinition, DocumentInitializationModel } from '../../models/datamapper/document'; import { IVisualizationNode } from '../../models'; -import { MetadataContext } from '../../providers'; +import { EntitiesContext, MetadataContext } from '../../providers'; import { DataMapperMetadataService } from '../../services/datamapper-metadata.service'; import { DocumentType } from '../../models/datamapper/path'; import { IDataMapperMetadata } from '../../models/datamapper/metadata'; @@ -30,6 +30,7 @@ export interface IDataMapperProps { } export const DataMapperPage: FunctionComponent = ({ vizNode }) => { + const entitiesContext = useContext(EntitiesContext)!; const ctx = useContext(MetadataContext)!; const metadataId = vizNode && DataMapperMetadataService.getDataMapperMetadataId(vizNode); const [metadata, setMetadata] = useState(); @@ -42,7 +43,7 @@ export const DataMapperPage: FunctionComponent = ({ vizNode }) const initialize = async () => { let meta = await ctx.getMetadata(metadataId); if (!meta) { - meta = await DataMapperMetadataService.initializeDataMapperMetadata(vizNode, ctx, metadataId); + meta = await DataMapperMetadataService.initializeDataMapperMetadata(entitiesContext, vizNode, ctx, metadataId); } setMetadata(meta); const initModel = await DataMapperMetadataService.loadDocuments(ctx, meta); diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts index a5001e67d..938319f97 100644 --- a/packages/ui/src/services/datamapper-metadata.service.ts +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -9,6 +9,7 @@ import { import { IDataMapperMetadata, IDocumentMetadata } from '../models/datamapper/metadata'; import { IMetadataApi } from '../providers'; import { EMPTY_XSL } from './mapping-serializer.service'; +import { EntitiesContextResult } from '../hooks'; export class DataMapperMetadataService { static getDataMapperMetadataId(vizNode: IVisualizationNode) { @@ -17,6 +18,7 @@ export class DataMapperMetadataService { } static initializeDataMapperMetadata( + entitiesContext: EntitiesContextResult, vizNode: IVisualizationNode, api: IMetadataApi, metadataId: string, @@ -30,6 +32,7 @@ export class DataMapperMetadataService { if (splitted.length < 2) { xsltStep.to.uri = `xslt:${xsltFileName}`; vizNode.updateModel(model); + entitiesContext.updateSourceCodeFromEntities(); } else { xsltFileName = splitted[1]; } From 622dbdc37ecd2b1470bff97377248acb4cc41e76 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 30 Sep 2024 11:56:50 -0400 Subject: [PATCH 381/471] fix(DataMapper): For standalone, show an alert to use VS Code extension when DataMapper step is selected Fixes: #86 --- .../DataMapper/DataMapperLauncher.tsx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx index 6ae2811e5..71863e8e9 100644 --- a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx +++ b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx @@ -1,18 +1,19 @@ -import { Button, Modal, ModalVariant } from '@patternfly/react-core'; +import { Alert, Button, List, ListItem, Modal, ModalVariant } from '@patternfly/react-core'; import { WrenchIcon } from '@patternfly/react-icons'; -import { FunctionComponent, useCallback, useState } from 'react'; +import { FunctionComponent, useCallback, useContext, useState } from 'react'; import { IVisualizationNode } from '../../models'; import DataMapperPage from '../../pages/DataMapper/DataMapperPage'; import './DataMapperLauncher.scss'; +import { MetadataContext } from '../../providers'; export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNode }> = ({ vizNode }) => { const [isOpen, setIsOpen] = useState(false); - + const metadata = useContext(MetadataContext); const onClose = useCallback(() => { setIsOpen(false); }, []); - return ( + return metadata ? ( <> ); diff --git a/packages/ui/src/components/View/SourceTargetView.test.tsx b/packages/ui/src/components/View/SourceTargetView.test.tsx index 10eb18f49..466b35b40 100644 --- a/packages/ui/src/components/View/SourceTargetView.test.tsx +++ b/packages/ui/src/components/View/SourceTargetView.test.tsx @@ -4,16 +4,19 @@ import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.prov import { SourceTargetView } from './SourceTargetView'; import { shipOrderXsd } from '../../stubs/data-mapper'; +import { BrowserFilePickerMetadataProvider } from '../../stubs/BrowserFilePickerMetadataProvider'; describe('SourceTargetView', () => { describe('Source Body Document', () => { it('should attach and detach schema', async () => { render( - - - - - , + + + + + + + , ); const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); act(() => { @@ -23,7 +26,7 @@ describe('SourceTargetView', () => { act(() => { fireEvent.click(attachButton); }); - const fileInput = screen.getByTestId('attach-schema-sourceBody-Body-file-input'); + const fileInput = screen.getByTestId('attach-schema-file-input'); act(() => { fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); }); @@ -45,11 +48,13 @@ describe('SourceTargetView', () => { describe('Target Body Document', () => { it('should attach and detach schema', async () => { render( - - - - - , + + + + + + + , ); const attachButton = await screen.findByTestId('attach-schema-targetBody-Body-button'); act(() => { @@ -59,7 +64,7 @@ describe('SourceTargetView', () => { act(() => { fireEvent.click(attachButton); }); - const fileInput = screen.getByTestId('attach-schema-targetBody-Body-file-input'); + const fileInput = screen.getByTestId('attach-schema-file-input'); act(() => { fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); }); diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index 34c8cda76..c154fcf45 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -9,7 +9,6 @@ import { } from '../models/datamapper/document'; import { DocumentType } from '../models/datamapper/path'; import { XmlSchemaDocumentService } from './xml-schema-document.service'; -import { readFileAsString } from '../utils/read-file-as-string'; import { IMetadataApi } from '../providers'; interface InitialDocumentsSet { @@ -19,7 +18,7 @@ interface InitialDocumentsSet { } export class DocumentService { - static async createDocumentDefinitionFromMetadata( + static async createDocumentDefinition( api: IMetadataApi, documentType: DocumentType, definitionType: DocumentDefinitionType, @@ -39,23 +38,6 @@ export class DocumentService { return new DocumentDefinition(documentType, definitionType, documentId, fileContents); } - static async createDocumentDefinition( - documentType: DocumentType, - definitionType: DocumentDefinitionType, - documentId: string, - schemaFiles: FileList, - ): Promise { - if (!schemaFiles || schemaFiles.length === 0) return; - const fileContents: Record = {}; - const fileContentPromises: Promise[] = []; - Array.from(schemaFiles).map((f) => { - const promise = readFileAsString(f).then((content) => (fileContents[f.name] = content)); - fileContentPromises.push(promise); - }); - await Promise.allSettled(fileContentPromises); - return new DocumentDefinition(documentType, definitionType, documentId, fileContents); - } - static createDocument(definition: DocumentDefinition): IDocument | null { if (definition.definitionType === DocumentDefinitionType.Primitive) { return new PrimitiveDocument(definition.documentType, DocumentType.PARAM ? definition.name! : BODY_DOCUMENT_ID); diff --git a/packages/ui/src/stubs/BrowserFilePickerMetadataProvider.tsx b/packages/ui/src/stubs/BrowserFilePickerMetadataProvider.tsx new file mode 100644 index 000000000..7dbdda60a --- /dev/null +++ b/packages/ui/src/stubs/BrowserFilePickerMetadataProvider.tsx @@ -0,0 +1,68 @@ +import { ChangeEvent, createRef, FunctionComponent, PropsWithChildren, useCallback, useRef } from 'react'; +import { readFileAsString } from './read-file-as-string'; +import { IMetadataApi, MetadataContext } from '../providers'; + +export const BrowserFilePickerMetadataProvider: FunctionComponent = (props) => { + const fileInputRef = createRef(); + const fileSelectionRef = useRef<{ + resolve: (files: Record) => void; + reject: (error: unknown) => unknown; + }>(); + const fileContentsRef = useRef>(); + + const askUserForFileSelection = useCallback( + ( + _include: string, + _exclude?: string, + _options?: Record, + ): Promise => { + fileInputRef.current?.click(); + return new Promise>((resolve, reject) => { + fileSelectionRef.current = { resolve, reject }; + }).then((files) => { + fileContentsRef.current = files; + return Object.keys(files); + }); + }, + [fileInputRef], + ); + + const onImport = useCallback(async (event: ChangeEvent) => { + const schemaFiles = event.target.files; + if (!schemaFiles) return; + const fileContents: Record = {}; + const fileContentPromises: Promise[] = []; + Array.from(schemaFiles).map((f) => { + const promise = readFileAsString(f).then((content) => (fileContents[f.name] = content)); + fileContentPromises.push(promise); + }); + await Promise.allSettled(fileContentPromises); + + fileSelectionRef.current?.resolve(fileContents); + fileSelectionRef.current = undefined; + event.target.value = ''; + }, []); + + const getResourceContent = useCallback((path: string) => { + return Promise.resolve(fileContentsRef.current && fileContentsRef.current[path]); + }, []); + + const metadataApi = { + askUserForFileSelection: askUserForFileSelection, + getResourceContent: getResourceContent, + } as IMetadataApi; + + return ( + + {props.children} + + + ); +}; diff --git a/packages/ui/src/utils/read-file-as-string.test.ts b/packages/ui/src/stubs/read-file-as-string.test.ts similarity index 100% rename from packages/ui/src/utils/read-file-as-string.test.ts rename to packages/ui/src/stubs/read-file-as-string.test.ts diff --git a/packages/ui/src/utils/read-file-as-string.ts b/packages/ui/src/stubs/read-file-as-string.ts similarity index 100% rename from packages/ui/src/utils/read-file-as-string.ts rename to packages/ui/src/stubs/read-file-as-string.ts From f86fe1cdeb9041fae99488366cb1b7aefc991a36 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 1 Oct 2024 08:50:03 -0400 Subject: [PATCH 384/471] chore(DataMapper): Remove unused import --- packages/ui/src/components/DataMapper/DataMapperLauncher.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx index 71863e8e9..1995f9d8f 100644 --- a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx +++ b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx @@ -1,4 +1,4 @@ -import { Alert, Button, List, ListItem, Modal, ModalVariant } from '@patternfly/react-core'; +import { Alert, Button, Modal, ModalVariant } from '@patternfly/react-core'; import { WrenchIcon } from '@patternfly/react-icons'; import { FunctionComponent, useCallback, useContext, useState } from 'react'; import { IVisualizationNode } from '../../models'; From 5a56aedc5591bc55e0a4b3b4696a3646d875ff49 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 1 Oct 2024 08:34:13 -0400 Subject: [PATCH 385/471] fix(DataMapper): Add/Delete parameter doesn't properly reflect Fixes: #83 --- .../ui/src/components/Document/Parameters.test.tsx | 12 +++++++++++- packages/ui/src/components/Document/Parameters.tsx | 11 +++++------ .../Document/actions/DeleteParameterButton.tsx | 8 +++----- .../ui/src/pages/DataMapper/DataMapperPage.tsx | 9 +++++++++ .../src/providers/datamapper-canvas.provider.tsx | 1 + packages/ui/src/providers/datamapper.provider.tsx | 14 ++++++++++++++ .../ui/src/services/datamapper-metadata.service.ts | 10 ++++++++++ 7 files changed, 53 insertions(+), 12 deletions(-) diff --git a/packages/ui/src/components/Document/Parameters.test.tsx b/packages/ui/src/components/Document/Parameters.test.tsx index a2189c623..8fb791b9a 100644 --- a/packages/ui/src/components/Document/Parameters.test.tsx +++ b/packages/ui/src/components/Document/Parameters.test.tsx @@ -7,15 +7,19 @@ import { BrowserFilePickerMetadataProvider } from '../../stubs/BrowserFilePicker describe('Parameters', () => { it('should add and remove a parameter', async () => { + const mockUpdateDocument = jest.fn(); + const mockDeleteParameter = jest.fn(); render( - + , ); + expect(mockUpdateDocument.mock.calls.length).toEqual(0); + expect(mockDeleteParameter.mock.calls.length).toEqual(0); const addButton = await screen.findByTestId('add-parameter-button'); act(() => { fireEvent.click(addButton); @@ -28,6 +32,9 @@ describe('Parameters', () => { act(() => { fireEvent.click(submitButton); }); + expect(mockUpdateDocument.mock.calls.length).toEqual(1); + expect(mockDeleteParameter.mock.calls.length).toEqual(0); + expect(mockUpdateDocument.mock.calls[0][0]['name']).toEqual('testparam1'); const deleteButton = screen.getByTestId('delete-parameter-testparam1-button'); act(() => { fireEvent.click(deleteButton); @@ -36,6 +43,9 @@ describe('Parameters', () => { act(() => { fireEvent.click(confirmButton); }); + expect(mockUpdateDocument.mock.calls.length).toEqual(1); + expect(mockDeleteParameter.mock.calls.length).toEqual(1); + expect(mockDeleteParameter.mock.calls[0][0]).toEqual('testparam1'); await screen.findByTestId('add-parameter-button'); const notexist = screen.queryByTestId('delete-parameter-testparam1-button'); expect(notexist).toBeFalsy(); diff --git a/packages/ui/src/components/Document/Parameters.tsx b/packages/ui/src/components/Document/Parameters.tsx index 83f416bb9..7aee4f0e9 100644 --- a/packages/ui/src/components/Document/Parameters.tsx +++ b/packages/ui/src/components/Document/Parameters.tsx @@ -16,7 +16,7 @@ import { FunctionComponent, useCallback, useEffect, useImperativeHandle, useMemo import { useDataMapper } from '../../hooks/useDataMapper'; import { useToggle } from '../../hooks/useToggle'; import { CheckIcon, PlusIcon, TimesIcon } from '@patternfly/react-icons'; -import { PrimitiveDocument } from '../../models/datamapper/document'; +import { DocumentDefinition, DocumentDefinitionType } from '../../models/datamapper/document'; import { useCanvas } from '../../hooks/useCanvas'; import { NodeContainer } from './NodeContainer'; import { NodeReference } from '../../providers/datamapper-canvas.provider'; @@ -28,18 +28,17 @@ type AddNewParameterPlaceholderProps = { }; const AddNewParameterPlaceholder: FunctionComponent = ({ onComplete }) => { - const { sourceParameterMap, refreshSourceParameters } = useDataMapper(); + const { sourceParameterMap, updateDocumentDefinition } = useDataMapper(); const [newParameterName, setNewParameterName] = useState(''); const submitNewParameter = useCallback(() => { if (!sourceParameterMap.has(newParameterName)) { - const primitiveDocument = new PrimitiveDocument(DocumentType.PARAM, newParameterName); - sourceParameterMap.set(newParameterName, primitiveDocument); - refreshSourceParameters(); + const definition = new DocumentDefinition(DocumentType.PARAM, DocumentDefinitionType.Primitive, newParameterName); + updateDocumentDefinition(definition); } setNewParameterName(''); onComplete(); - }, [sourceParameterMap, newParameterName, onComplete, refreshSourceParameters]); + }, [sourceParameterMap, newParameterName, onComplete, updateDocumentDefinition]); const cancelNewParameter = useCallback(() => { setNewParameterName(''); diff --git a/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx b/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx index 9c3d77698..7baac0d04 100644 --- a/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx +++ b/packages/ui/src/components/Document/actions/DeleteParameterButton.tsx @@ -13,27 +13,25 @@ type DeleteParameterProps = { }; export const DeleteParameterButton: FunctionComponent = ({ parameterName }) => { - const { mappingTree, setMappingTree, sourceParameterMap, refreshSourceParameters } = useDataMapper(); + const { mappingTree, setMappingTree, deleteSourceParameter } = useDataMapper(); const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const { state: isModalOpen, toggleOn: openModal, toggleOff: closeModal } = useToggle(false); const onConfirmDelete = useCallback(() => { const cleaned = MappingService.removeAllMappingsForDocument(mappingTree, DocumentType.PARAM, parameterName); setMappingTree(cleaned); - sourceParameterMap.delete(parameterName); - refreshSourceParameters(); + deleteSourceParameter(parameterName); clearNodeReferencesForDocument(DocumentType.PARAM, parameterName); reloadNodeReferences(); closeModal(); }, [ clearNodeReferencesForDocument, closeModal, + deleteSourceParameter, mappingTree, parameterName, - refreshSourceParameters, reloadNodeReferences, setMappingTree, - sourceParameterMap, ]); return ( diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx index b8a453fec..659f2af6e 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx @@ -78,6 +78,14 @@ export const DataMapperPage: FunctionComponent = ({ vizNode }) [ctx, metadata, metadataId], ); + const onDeleteParameter = useCallback( + (name: string) => { + if (!metadataId || !metadata) return; + DataMapperMetadataService.deleteSourceParameterMetadata(ctx, metadataId, metadata, name); + }, + [ctx, metadata, metadataId], + ); + const onUpdateMappings = useCallback( (xsltFile: string) => { if (!metadata) return; @@ -94,6 +102,7 @@ export const DataMapperPage: FunctionComponent = ({ vizNode }) diff --git a/packages/ui/src/providers/datamapper-canvas.provider.tsx b/packages/ui/src/providers/datamapper-canvas.provider.tsx index 98cb2fc2f..d5e5c2897 100644 --- a/packages/ui/src/providers/datamapper-canvas.provider.tsx +++ b/packages/ui/src/providers/datamapper-canvas.provider.tsx @@ -61,6 +61,7 @@ export const DataMapperCanvasProvider: FunctionComponent = (p useEffect(() => { if (mappingTree) reloadNodeReferences(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, [mappingTree]); const clearNodeReferencesForPath = useCallback( diff --git a/packages/ui/src/providers/datamapper.provider.tsx b/packages/ui/src/providers/datamapper.provider.tsx index 8b5e84984..d8ed8c311 100644 --- a/packages/ui/src/providers/datamapper.provider.tsx +++ b/packages/ui/src/providers/datamapper.provider.tsx @@ -39,6 +39,7 @@ export interface IDataMapperContext { sourceParameterMap: Map; refreshSourceParameters: () => void; + deleteSourceParameter: (name: string) => void; sourceBodyDocument: IDocument; setSourceBodyDocument: (doc: IDocument) => void; targetBodyDocument: IDocument; @@ -61,6 +62,7 @@ export const DataMapperContext = createContext(null); type DataMapperProviderProps = PropsWithChildren & { documentInitializationModel?: DocumentInitializationModel; onUpdateDocument?: (definition: DocumentDefinition) => void; + onDeleteParameter?: (name: string) => void; initialXsltFile?: string; onUpdateMappings?: (xsltFile: string) => void; }; @@ -68,6 +70,7 @@ type DataMapperProviderProps = PropsWithChildren & { export const DataMapperProvider: FunctionComponent = ({ documentInitializationModel, onUpdateDocument, + onDeleteParameter, initialXsltFile, onUpdateMappings, children, @@ -118,6 +121,15 @@ export const DataMapperProvider: FunctionComponent = ({ setSourceParameterMap(new Map(sourceParameterMap)); }, [sourceParameterMap]); + const deleteSourceParameter = useCallback( + (name: string) => { + sourceParameterMap.delete(name); + refreshSourceParameters(); + onDeleteParameter && onDeleteParameter(name); + }, + [onDeleteParameter, refreshSourceParameters, sourceParameterMap], + ); + const refreshMappingTree = useCallback(() => { const newMapping = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); newMapping.children = mappingTree.children.map((child) => { @@ -191,6 +203,7 @@ export const DataMapperProvider: FunctionComponent = ({ isSourceParametersExpanded, setSourceParametersExpanded, refreshSourceParameters, + deleteSourceParameter, sourceBodyDocument, setSourceBodyDocument, targetBodyDocument, @@ -208,6 +221,7 @@ export const DataMapperProvider: FunctionComponent = ({ sourceParameterMap, isSourceParametersExpanded, refreshSourceParameters, + deleteSourceParameter, sourceBodyDocument, targetBodyDocument, updateDocumentDefinition, diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts index 459892247..beca69faf 100644 --- a/packages/ui/src/services/datamapper-metadata.service.ts +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -182,6 +182,16 @@ export class DataMapperMetadataService { api.setMetadata(metadataId, metadata); } + static async deleteSourceParameterMetadata( + api: IMetadataApi, + metadataId: string, + metadata: IDataMapperMetadata, + name: string, + ) { + delete metadata.sourceParameters[name]; + api.setMetadata(metadataId, metadata); + } + static async updateMappingFile(api: IMetadataApi, metadata: IDataMapperMetadata, xsltFile: string) { await api.saveResourceContent(metadata.xsltPath, xsltFile); } From 430f011b41408f90afc997917558c1a1f09fe5a6 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 7 Oct 2024 17:13:42 -0400 Subject: [PATCH 386/471] chore(DataMapper): Add a comment in generated XSLT stating "this is auto-generated, do not edit" Fixes: #95 --- packages/ui/src/services/mapping-serializer.service.test.ts | 1 + packages/ui/src/services/mapping-serializer.service.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/ui/src/services/mapping-serializer.service.test.ts b/packages/ui/src/services/mapping-serializer.service.test.ts index 74bc4949f..5c9e33896 100644 --- a/packages/ui/src/services/mapping-serializer.service.test.ts +++ b/packages/ui/src/services/mapping-serializer.service.test.ts @@ -173,6 +173,7 @@ describe('MappingSerializerService', () => { new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), sourceParameterMap, ); + expect(empty).toContain('This file is generated by Kaoto DataMapper. Do not edit'); const dom = domParser.parseFromString(empty, 'application/xml'); const template = dom .evaluate('/xsl:stylesheet/xsl:template', dom, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE) diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 2054563d4..dbd2f9791 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -15,8 +15,10 @@ import { import xmlFormat from 'xml-formatter'; import { DocumentType } from '../models/datamapper/path'; +export const DO_NOT_EDIT_COMMENT = ''; export const NS_XSL = 'http://www.w3.org/1999/XSL/Transform'; export const EMPTY_XSL = ` +${DO_NOT_EDIT_COMMENT} From d2e39c4bc2cda5794c40db7070aeff87468b82ce Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 2 Oct 2024 16:40:00 -0400 Subject: [PATCH 387/471] fix(DataMapper): Delete DataMapper metadata entry when the step is deleted Fixes: #80 --- packages/ui/src/App.tsx | 8 ++- .../DataMapper/on-delete-datamapper.ts | 9 ++++ .../ContextMenu/ItemDeleteGroup.test.tsx | 32 +++++++++++- .../Custom/ContextMenu/ItemDeleteGroup.tsx | 21 +++++++- .../ContextMenu/ItemDeleteStep.test.tsx | 31 ++++++++++- .../Custom/ContextMenu/ItemDeleteStep.tsx | 20 ++++++- .../ContextMenu/ItemReplaceStep.test.tsx | 41 ++++++++++++++- .../Custom/ContextMenu/ItemReplaceStep.tsx | 27 +++++++++- .../registers/RegisterComponents.tsx | 1 + .../RegisterNodeInteractionAddons.tsx | 26 ++++++++++ .../node-interaction-addon.model.ts | 52 +++++++++++++++++++ .../node-interaction-addon.provider.tsx | 39 ++++++++++++++ .../multiplying-architecture/KaotoBridge.tsx | 8 ++- .../services/datamapper-metadata.service.ts | 6 ++- 14 files changed, 310 insertions(+), 11 deletions(-) create mode 100644 packages/ui/src/components/DataMapper/on-delete-datamapper.ts create mode 100644 packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx create mode 100644 packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts create mode 100644 packages/ui/src/components/registers/interactions/node-interaction-addon.provider.tsx diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx index 4af1c90fe..4c0b6245a 100644 --- a/packages/ui/src/App.tsx +++ b/packages/ui/src/App.tsx @@ -16,6 +16,8 @@ import { } from './providers'; import { isDefined } from './utils'; import { CatalogSchemaLoader } from './utils/catalog-schema-loader'; +import { RegisterNodeInteractionAddons } from './components/registers/RegisterNodeInteractionAddons'; +import { NodeInteractionAddonProvider } from './components/registers/interactions/node-interaction-addon.provider'; function App() { const ReloadProvider = useReload(); @@ -40,7 +42,11 @@ function App() { - + + + + + diff --git a/packages/ui/src/components/DataMapper/on-delete-datamapper.ts b/packages/ui/src/components/DataMapper/on-delete-datamapper.ts new file mode 100644 index 000000000..b050b7f8a --- /dev/null +++ b/packages/ui/src/components/DataMapper/on-delete-datamapper.ts @@ -0,0 +1,9 @@ +import { DataMapperMetadataService } from '../../services/datamapper-metadata.service'; +import { IMetadataApi } from '../../providers'; +import { IVisualizationNode } from '../../models'; + +export const onDeleteDataMapper = (api: IMetadataApi, vizNode: IVisualizationNode) => { + const metadataId = DataMapperMetadataService.getDataMapperMetadataId(vizNode); + DataMapperMetadataService.deleteMetadata(api, metadataId); + // TODO DataMapperMetadataService.deleteXsltFile(api, metadataId); +}; diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx index a9190970f..3a57c072f 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx @@ -1,7 +1,9 @@ -import { fireEvent, render } from '@testing-library/react'; -import { createVisualizationNode } from '../../../../models'; +import { act, fireEvent, render, waitFor } from '@testing-library/react'; +import { createVisualizationNode, IVisualizationNode } from '../../../../models'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; import { ItemDeleteGroup } from './ItemDeleteGroup'; +import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; +import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; describe('ItemDeleteGroup', () => { const vizNode = createVisualizationNode('test', {}); @@ -34,4 +36,30 @@ describe('ItemDeleteGroup', () => { text: 'All steps will be lost.', }); }); + + it('should process addon when deleting', async () => { + const mockDeleteModalContext = { + actionConfirmation: () => Promise.resolve(true), + }; + const mockAddon = jest.fn(); + const mockNodeInteractionAddonContext = { + registerInteractionAddon: jest.fn(), + getRegisteredInteractionAddons: (_interaction: IInteractionAddonType, _vizNode: IVisualizationNode) => [ + { type: IInteractionAddonType.ON_DELETE, activationFn: () => true, callback: mockAddon }, + ], + }; + const wrapper = render( + + + + + , + ); + act(() => { + fireEvent.click(wrapper.getByText('Delete')); + }); + await waitFor(() => { + expect(mockAddon).toHaveBeenCalledWith(vizNode); + }); + }); }); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx index 1cc5c555a..9106013ca 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx @@ -5,6 +5,8 @@ import { IDataTestID } from '../../../../models'; import { IVisualizationNode } from '../../../../models/visualization/base-visual-entity'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; import { EntitiesContext } from '../../../../providers/entities.provider'; +import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; +import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; interface ItemDeleteGroupProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -15,6 +17,21 @@ export const ItemDeleteGroup: FunctionComponent = (props) const deleteModalContext = useContext(ActionConfirmationModalContext); const flowId = props.vizNode?.getId(); + const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); + + const onDeleteRecursively = useCallback( + (parentVizNode: IVisualizationNode) => { + parentVizNode.getChildren()?.forEach((child) => { + onDeleteRecursively(child); + }); + const addons = getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, parentVizNode); + addons.forEach((addon) => { + addon.callback(parentVizNode); + }); + }, + [getRegisteredInteractionAddons], + ); + const onRemoveGroup = useCallback(async () => { /** Open delete confirm modal, get the confirmation */ const isDeleteConfirmed = await deleteModalContext?.actionConfirmation({ @@ -24,9 +41,11 @@ export const ItemDeleteGroup: FunctionComponent = (props) if (!isDeleteConfirmed) return; + onDeleteRecursively(props.vizNode); + entitiesContext?.camelResource.removeEntity(flowId); entitiesContext?.updateEntitiesFromCamelResource(); - }, [deleteModalContext, entitiesContext, flowId]); + }, [deleteModalContext, entitiesContext, flowId, onDeleteRecursively, props.vizNode]); return ( diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx index 3c389dfa5..ba5bc1f9b 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx @@ -1,12 +1,15 @@ -import { fireEvent, render, waitFor } from '@testing-library/react'; +import { act, fireEvent, render, waitFor } from '@testing-library/react'; import { createVisualizationNode, IVisualizationNode } from '../../../../models'; import { ItemDeleteStep } from './ItemDeleteStep'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; +import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; +import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; describe('ItemDeleteStep', () => { const vizNode = createVisualizationNode('test', {}); const mockVizNode = { removeChild: jest.fn(), + getChildren: jest.fn(), } as unknown as IVisualizationNode; const mockDeleteModalContext = { @@ -51,4 +54,30 @@ describe('ItemDeleteStep', () => { expect(mockVizNode.removeChild).toHaveBeenCalled(); }); }); + + it('should process addon when deleting', async () => { + const mockDeleteModalContext = { + actionConfirmation: () => Promise.resolve(true), + }; + const mockAddon = jest.fn(); + const mockNodeInteractionAddonContext = { + registerInteractionAddon: jest.fn(), + getRegisteredInteractionAddons: (_interaction: IInteractionAddonType, _vizNode: IVisualizationNode) => [ + { type: IInteractionAddonType.ON_DELETE, activationFn: () => true, callback: mockAddon }, + ], + }; + const wrapper = render( + + + + + , + ); + act(() => { + fireEvent.click(wrapper.getByText('Delete')); + }); + await waitFor(() => { + expect(mockAddon).toHaveBeenCalledWith(vizNode); + }); + }); }); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx index e4c7c4efe..1ca866a40 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx @@ -5,6 +5,8 @@ import { IDataTestID } from '../../../../models'; import { IVisualizationNode } from '../../../../models/visualization/base-visual-entity'; import { EntitiesContext } from '../../../../providers/entities.provider'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; +import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; +import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; interface ItemDeleteStepProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -14,6 +16,20 @@ interface ItemDeleteStepProps extends PropsWithChildren { export const ItemDeleteStep: FunctionComponent = (props) => { const entitiesContext = useContext(EntitiesContext); const deleteModalContext = useContext(ActionConfirmationModalContext); + const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); + + const onDeleteRecursively = useCallback( + (parentVizNode: IVisualizationNode) => { + parentVizNode.getChildren()?.forEach((child) => { + onDeleteRecursively(child); + }); + const interactions = getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, parentVizNode); + interactions.forEach((interaction) => { + interaction.callback(parentVizNode); + }); + }, + [getRegisteredInteractionAddons], + ); const onRemoveNode = useCallback(async () => { if (props.loadActionConfirmationModal) { @@ -26,9 +42,11 @@ export const ItemDeleteStep: FunctionComponent = (props) => if (!isDeleteConfirmed) return; } + onDeleteRecursively(props.vizNode); + props.vizNode?.removeChild(); entitiesContext?.updateEntitiesFromCamelResource(); - }, [deleteModalContext, entitiesContext, props.loadActionConfirmationModal, props.vizNode]); + }, [deleteModalContext, entitiesContext, onDeleteRecursively, props.loadActionConfirmationModal, props.vizNode]); return ( diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx index 195609d3f..9c086bb6f 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx @@ -1,9 +1,12 @@ -import { fireEvent, render } from '@testing-library/react'; -import { createVisualizationNode } from '../../../../models'; +import { act, fireEvent, render, waitFor } from '@testing-library/react'; +import { createVisualizationNode, DefinedComponent, IVisualizationNode } from '../../../../models'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; import { ItemReplaceStep } from './ItemReplaceStep'; import { EntitiesContext } from '../../../../providers/entities.provider'; import { CamelRouteResource } from '../../../../models/camel/camel-route-resource'; +import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; +import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; +import { CatalogModalContext } from '../../../../providers'; describe('ItemReplaceStep', () => { const vizNode = createVisualizationNode('test', {}); @@ -49,4 +52,38 @@ describe('ItemReplaceStep', () => { text: 'Step and its children will be lost.', }); }); + + it('should process addon when replacing', async () => { + const mockCatalogModalContext = { + setIsModalOpen: jest.fn(), + getNewComponent: () => Promise.resolve({} as DefinedComponent), + }; + const mockReplaceModalContext = { + actionConfirmation: () => Promise.resolve(true), + }; + const mockAddon = jest.fn(); + const mockNodeInteractionAddonContext = { + registerInteractionAddon: jest.fn(), + getRegisteredInteractionAddons: (_interaction: IInteractionAddonType, _vizNode: IVisualizationNode) => [ + { type: IInteractionAddonType.ON_DELETE, activationFn: () => true, callback: mockAddon }, + ], + }; + const wrapper = render( + + + + + + + + + , + ); + act(() => { + fireEvent.click(wrapper.getByText('Replace')); + }); + await waitFor(() => { + expect(mockAddon).toHaveBeenCalledWith(vizNode); + }); + }); }); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx index ba58475d5..b53e58b23 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx @@ -6,6 +6,8 @@ import { AddStepMode, IVisualizationNode } from '../../../../models/visualizatio import { CatalogModalContext } from '../../../../providers/catalog-modal.provider'; import { EntitiesContext } from '../../../../providers/entities.provider'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; +import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; +import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; interface ItemReplaceStepProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -16,6 +18,20 @@ export const ItemReplaceStep: FunctionComponent = (props) const entitiesContext = useContext(EntitiesContext); const catalogModalContext = useContext(CatalogModalContext); const replaceModalContext = useContext(ActionConfirmationModalContext); + const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); + + const onDeleteRecursively = useCallback( + (parentVizNode: IVisualizationNode) => { + parentVizNode.getChildren()?.forEach((child) => { + onDeleteRecursively(child); + }); + const addons = getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, parentVizNode); + addons.forEach((addon) => { + addon.callback(parentVizNode); + }); + }, + [getRegisteredInteractionAddons], + ); const onReplaceNode = useCallback(async () => { if (!props.vizNode || !entitiesContext) return; @@ -40,12 +56,21 @@ export const ItemReplaceStep: FunctionComponent = (props) const definedComponent = await catalogModalContext?.getNewComponent(catalogFilter); if (!definedComponent) return; + onDeleteRecursively(props.vizNode); + /** Add new node to the entities */ props.vizNode.addBaseEntityStep(definedComponent, AddStepMode.ReplaceStep); /** Update entity */ entitiesContext.updateEntitiesFromCamelResource(); - }, [replaceModalContext, catalogModalContext, entitiesContext, props.vizNode]); + }, [ + props.vizNode, + props.loadActionConfirmationModal, + entitiesContext, + catalogModalContext, + onDeleteRecursively, + replaceModalContext, + ]); return ( diff --git a/packages/ui/src/components/registers/RegisterComponents.tsx b/packages/ui/src/components/registers/RegisterComponents.tsx index 3f0e9e4a4..4326fb5b4 100644 --- a/packages/ui/src/components/registers/RegisterComponents.tsx +++ b/packages/ui/src/components/registers/RegisterComponents.tsx @@ -6,6 +6,7 @@ import { datamapperActivationFn } from './datamapper.activationfn'; export const RegisterComponents: FunctionComponent = ({ children }) => { const { registerComponent } = useContext(RenderingAnchorContext); + const componentsToRegister = useRef([ { anchor: Anchors.CanvasFormHeader, diff --git a/packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx b/packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx new file mode 100644 index 000000000..65a7ee1be --- /dev/null +++ b/packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx @@ -0,0 +1,26 @@ +import { FunctionComponent, PropsWithChildren, useContext, useRef } from 'react'; +import { datamapperActivationFn } from './datamapper.activationfn'; +import { MetadataContext } from '../../providers'; +import { onDeleteDataMapper } from '../DataMapper/on-delete-datamapper'; +import { NodeInteractionAddonContext } from './interactions/node-interaction-addon.provider'; +import { IInteractionAddonType, IRegisteredInteractionAddon } from './interactions/node-interaction-addon.model'; + +export const RegisterNodeInteractionAddons: FunctionComponent = ({ children }) => { + const metadataApi = useContext(MetadataContext)!; + const { registerInteractionAddon } = useContext(NodeInteractionAddonContext); + const addonsToRegister = useRef([ + { + type: IInteractionAddonType.ON_DELETE, + activationFn: datamapperActivationFn, + callback: (vizNode) => { + metadataApi && onDeleteDataMapper(metadataApi, vizNode); + }, + }, + ]); + + addonsToRegister.current.forEach((interaction) => { + registerInteractionAddon(interaction); + }); + + return <>{children}; +}; diff --git a/packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts b/packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts new file mode 100644 index 000000000..95e0769b7 --- /dev/null +++ b/packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts @@ -0,0 +1,52 @@ +import { IVisualizationNode } from '../../../models'; + +export enum IInteractionAddonType { + ON_DELETE = 'onDelete', +} + +export interface IRegisteredInteractionAddon { + type: IInteractionAddonType; + activationFn: (vizNode: IVisualizationNode) => boolean; + callback: (vizNode: IVisualizationNode) => void; +} + +export interface INodeInteractionAddonContext { + /** + * Register a node interaction addon to be processed on an associated node interaction + * + * @example + * ```tsx + * const nodeInteractionAddonContext = useContext(NodeInteractionAddonContext); + * + * nodeInteractionAddonContext.registerInteractionAddon({ + * type: IInteractionAddonType.ON_DELETE + * activationFn: () => true, + * callback: () => { doSomething() } + * }); + * ``` + * @param addon Registered node interaction addon + * @returns void + */ + registerInteractionAddon: (addon: IRegisteredInteractionAddon) => void; + + /** + * Get registered interaction addons + * + * @example + * ```tsx + * const nodeInteractionAddonContext = useContext(NodeInteractionAddonContext); + * + * const addons = nodeInteractionAddonContext.getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vizNode); + * addons.forEach((addon) => { + * addon.onDelete(vizNode); + * }); + * ``` + * @param type The interaction addon type enum value + * @param vizNode The visualization node to pass to the interaction + * @returns `IRegisteredInteraction` An array of registered interactions + */ + getRegisteredInteractionAddons: ( + type: IInteractionAddonType, + vizNode: IVisualizationNode, + ) => IRegisteredInteractionAddon[]; +} diff --git a/packages/ui/src/components/registers/interactions/node-interaction-addon.provider.tsx b/packages/ui/src/components/registers/interactions/node-interaction-addon.provider.tsx new file mode 100644 index 000000000..fa649bdee --- /dev/null +++ b/packages/ui/src/components/registers/interactions/node-interaction-addon.provider.tsx @@ -0,0 +1,39 @@ +import { createContext, FunctionComponent, PropsWithChildren, useCallback, useMemo, useRef } from 'react'; +import { IVisualizationNode } from '../../../models'; +import { + IInteractionAddonType, + INodeInteractionAddonContext, + IRegisteredInteractionAddon, +} from './node-interaction-addon.model'; + +export const NodeInteractionAddonContext = createContext({ + registerInteractionAddon: () => {}, + getRegisteredInteractionAddons: () => [], +}); + +export const NodeInteractionAddonProvider: FunctionComponent = ({ children }) => { + const registeredInteractionAddons = useRef([]); + + const registerInteractionAddon = useCallback((interaction: IRegisteredInteractionAddon) => { + registeredInteractionAddons.current.push(interaction); + }, []); + + const getRegisteredInteractionAddons = useCallback( + (interaction: IInteractionAddonType, vizNode: IVisualizationNode) => { + return registeredInteractionAddons.current.filter( + (addon) => addon.type === interaction && addon.activationFn(vizNode), + ); + }, + [], + ); + + const value = useMemo( + () => ({ + registerInteractionAddon, + getRegisteredInteractionAddons, + }), + [getRegisteredInteractionAddons, registerInteractionAddon], + ); + + return {children}; +}; diff --git a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx index 99045f073..4979d71e5 100644 --- a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx @@ -24,6 +24,8 @@ import { VisibleFlowsProvider, } from '../providers'; import { EventNotifier } from '../utils'; +import { NodeInteractionAddonProvider } from '../components/registers/interactions/node-interaction-addon.provider'; +import { RegisterNodeInteractionAddons } from '../components/registers/RegisterNodeInteractionAddons'; interface KaotoBridgeProps { /** @@ -213,7 +215,11 @@ export const KaotoBridge = forwardRef - {children} + + + {children} + + diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts index beca69faf..ddb1bc39c 100644 --- a/packages/ui/src/services/datamapper-metadata.service.ts +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -30,7 +30,7 @@ export class DataMapperMetadataService { // eslint-disable-next-line const xsltStep = model.steps.find((step: any) => step.to?.uri?.startsWith('xslt')); const splitted = xsltStep?.to?.uri?.split(':'); - let xsltFileName = `${model.id}.xsl`; + let xsltFileName = `${metadataId}.xsl`; if (splitted.length < 2) { xsltStep.to.uri = `xslt:${xsltFileName}`; vizNode.updateModel(model); @@ -204,4 +204,8 @@ export class DataMapperMetadataService { title: 'Attaching document schema file', }); } + + static deleteMetadata(api: IMetadataApi, metadataId: string) { + api.setMetadata(metadataId, undefined); + } } From 33d302b923e12e58505248cac7dd9cbeb5b8e754 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 8 Oct 2024 09:45:31 -0400 Subject: [PATCH 388/471] fix(DataMapper): Extract onDeleteRecursively method to a shared external file Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/99 --- .../Custom/ContextMenu/ItemDeleteGroup.tsx | 20 ++++---------- .../Custom/ContextMenu/ItemDeleteStep.tsx | 26 ++++++++----------- .../Custom/ContextMenu/ItemReplaceStep.tsx | 20 ++++---------- .../ContextMenu/item-delete-helper.test.ts | 25 ++++++++++++++++++ .../Custom/ContextMenu/item-delete-helper.ts | 14 ++++++++++ 5 files changed, 60 insertions(+), 45 deletions(-) create mode 100644 packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts create mode 100644 packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx index 9106013ca..fd24454c9 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx @@ -7,6 +7,7 @@ import { ActionConfirmationModalContext } from '../../../../providers/action-con import { EntitiesContext } from '../../../../providers/entities.provider'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; +import { processNodeInteractionAddonRecursively } from './item-delete-helper'; interface ItemDeleteGroupProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -19,19 +20,6 @@ export const ItemDeleteGroup: FunctionComponent = (props) const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); - const onDeleteRecursively = useCallback( - (parentVizNode: IVisualizationNode) => { - parentVizNode.getChildren()?.forEach((child) => { - onDeleteRecursively(child); - }); - const addons = getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, parentVizNode); - addons.forEach((addon) => { - addon.callback(parentVizNode); - }); - }, - [getRegisteredInteractionAddons], - ); - const onRemoveGroup = useCallback(async () => { /** Open delete confirm modal, get the confirmation */ const isDeleteConfirmed = await deleteModalContext?.actionConfirmation({ @@ -41,11 +29,13 @@ export const ItemDeleteGroup: FunctionComponent = (props) if (!isDeleteConfirmed) return; - onDeleteRecursively(props.vizNode); + processNodeInteractionAddonRecursively(props.vizNode, (vn) => + getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), + ); entitiesContext?.camelResource.removeEntity(flowId); entitiesContext?.updateEntitiesFromCamelResource(); - }, [deleteModalContext, entitiesContext, flowId, onDeleteRecursively, props.vizNode]); + }, [deleteModalContext, entitiesContext, flowId, getRegisteredInteractionAddons, props.vizNode]); return ( diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx index 1ca866a40..393d33a0e 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx @@ -7,6 +7,7 @@ import { EntitiesContext } from '../../../../providers/entities.provider'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; +import { processNodeInteractionAddonRecursively } from './item-delete-helper'; interface ItemDeleteStepProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -18,19 +19,6 @@ export const ItemDeleteStep: FunctionComponent = (props) => const deleteModalContext = useContext(ActionConfirmationModalContext); const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); - const onDeleteRecursively = useCallback( - (parentVizNode: IVisualizationNode) => { - parentVizNode.getChildren()?.forEach((child) => { - onDeleteRecursively(child); - }); - const interactions = getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, parentVizNode); - interactions.forEach((interaction) => { - interaction.callback(parentVizNode); - }); - }, - [getRegisteredInteractionAddons], - ); - const onRemoveNode = useCallback(async () => { if (props.loadActionConfirmationModal) { /** Open delete confirm modal, get the confirmation */ @@ -42,11 +30,19 @@ export const ItemDeleteStep: FunctionComponent = (props) => if (!isDeleteConfirmed) return; } - onDeleteRecursively(props.vizNode); + processNodeInteractionAddonRecursively(props.vizNode, (vn) => + getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), + ); props.vizNode?.removeChild(); entitiesContext?.updateEntitiesFromCamelResource(); - }, [deleteModalContext, entitiesContext, onDeleteRecursively, props.loadActionConfirmationModal, props.vizNode]); + }, [ + deleteModalContext, + entitiesContext, + getRegisteredInteractionAddons, + props.loadActionConfirmationModal, + props.vizNode, + ]); return ( diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx index b53e58b23..dbc140c3b 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx @@ -8,6 +8,7 @@ import { EntitiesContext } from '../../../../providers/entities.provider'; import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; +import { processNodeInteractionAddonRecursively } from './item-delete-helper'; interface ItemReplaceStepProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -20,19 +21,6 @@ export const ItemReplaceStep: FunctionComponent = (props) const replaceModalContext = useContext(ActionConfirmationModalContext); const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); - const onDeleteRecursively = useCallback( - (parentVizNode: IVisualizationNode) => { - parentVizNode.getChildren()?.forEach((child) => { - onDeleteRecursively(child); - }); - const addons = getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, parentVizNode); - addons.forEach((addon) => { - addon.callback(parentVizNode); - }); - }, - [getRegisteredInteractionAddons], - ); - const onReplaceNode = useCallback(async () => { if (!props.vizNode || !entitiesContext) return; @@ -56,7 +44,9 @@ export const ItemReplaceStep: FunctionComponent = (props) const definedComponent = await catalogModalContext?.getNewComponent(catalogFilter); if (!definedComponent) return; - onDeleteRecursively(props.vizNode); + processNodeInteractionAddonRecursively(props.vizNode, (vn) => + getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), + ); /** Add new node to the entities */ props.vizNode.addBaseEntityStep(definedComponent, AddStepMode.ReplaceStep); @@ -68,8 +58,8 @@ export const ItemReplaceStep: FunctionComponent = (props) props.loadActionConfirmationModal, entitiesContext, catalogModalContext, - onDeleteRecursively, replaceModalContext, + getRegisteredInteractionAddons, ]); return ( diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts new file mode 100644 index 000000000..9159f734a --- /dev/null +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts @@ -0,0 +1,25 @@ +import { processNodeInteractionAddonRecursively } from './item-delete-helper'; +import { createVisualizationNode } from '../../../../models'; +import { + IInteractionAddonType, + IRegisteredInteractionAddon, +} from '../../../registers/interactions/node-interaction-addon.model'; + +describe('item-delete-helper', () => { + describe('processNodeInteractionAddonRecursively', () => { + it('should process children', () => { + const addons: Record = {}; + const vizNode = createVisualizationNode('test', {}); + const childVn = createVisualizationNode('child', {}); + const mockAddon: IRegisteredInteractionAddon = { + type: IInteractionAddonType.ON_DELETE, + activationFn: () => true, + callback: jest.fn(), + }; + addons[childVn.id] = [mockAddon]; + vizNode.addChild(childVn); + processNodeInteractionAddonRecursively(vizNode, (vn) => addons[vn.id] ?? []); + expect(mockAddon.callback).toHaveBeenCalled(); + }); + }); +}); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts new file mode 100644 index 000000000..9b150499d --- /dev/null +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts @@ -0,0 +1,14 @@ +import { IVisualizationNode } from '../../../../models'; +import { IRegisteredInteractionAddon } from '../../../registers/interactions/node-interaction-addon.model'; + +export const processNodeInteractionAddonRecursively = ( + parentVizNode: IVisualizationNode, + getAddons: (vizNode: IVisualizationNode) => IRegisteredInteractionAddon[], +) => { + parentVizNode.getChildren()?.forEach((child) => { + processNodeInteractionAddonRecursively(child, getAddons); + }); + getAddons(parentVizNode).forEach((addon) => { + addon.callback(parentVizNode); + }); +}; From c1584563084fa1b6eff9803cababb8755f777019 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 11 Oct 2024 14:11:11 -0400 Subject: [PATCH 389/471] chore(DataMapper): Fix build error --- .../Custom/ContextMenu/ItemDeleteGroup.test.tsx | 7 +++++-- .../Custom/ContextMenu/ItemDeleteStep.test.tsx | 7 +++++-- .../Custom/ContextMenu/ItemReplaceStep.test.tsx | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx index 3a57c072f..e2d08cdc5 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx @@ -1,6 +1,9 @@ import { act, fireEvent, render, waitFor } from '@testing-library/react'; import { createVisualizationNode, IVisualizationNode } from '../../../../models'; -import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; +import { + ACTION_INDEX_CONFIRM, + ActionConfirmationModalContext, +} from '../../../../providers/action-confirmation-modal.provider'; import { ItemDeleteGroup } from './ItemDeleteGroup'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; @@ -39,7 +42,7 @@ describe('ItemDeleteGroup', () => { it('should process addon when deleting', async () => { const mockDeleteModalContext = { - actionConfirmation: () => Promise.resolve(true), + actionConfirmation: () => Promise.resolve(ACTION_INDEX_CONFIRM), }; const mockAddon = jest.fn(); const mockNodeInteractionAddonContext = { diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx index ba5bc1f9b..651c58fac 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx @@ -1,7 +1,10 @@ import { act, fireEvent, render, waitFor } from '@testing-library/react'; import { createVisualizationNode, IVisualizationNode } from '../../../../models'; import { ItemDeleteStep } from './ItemDeleteStep'; -import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; +import { + ACTION_INDEX_CONFIRM, + ActionConfirmationModalContext, +} from '../../../../providers/action-confirmation-modal.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; @@ -57,7 +60,7 @@ describe('ItemDeleteStep', () => { it('should process addon when deleting', async () => { const mockDeleteModalContext = { - actionConfirmation: () => Promise.resolve(true), + actionConfirmation: () => Promise.resolve(ACTION_INDEX_CONFIRM), }; const mockAddon = jest.fn(); const mockNodeInteractionAddonContext = { diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx index 9c086bb6f..9915945f9 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx @@ -1,6 +1,9 @@ import { act, fireEvent, render, waitFor } from '@testing-library/react'; import { createVisualizationNode, DefinedComponent, IVisualizationNode } from '../../../../models'; -import { ActionConfirmationModalContext } from '../../../../providers/action-confirmation-modal.provider'; +import { + ACTION_INDEX_CONFIRM, + ActionConfirmationModalContext, +} from '../../../../providers/action-confirmation-modal.provider'; import { ItemReplaceStep } from './ItemReplaceStep'; import { EntitiesContext } from '../../../../providers/entities.provider'; import { CamelRouteResource } from '../../../../models/camel/camel-route-resource'; @@ -59,7 +62,7 @@ describe('ItemReplaceStep', () => { getNewComponent: () => Promise.resolve({} as DefinedComponent), }; const mockReplaceModalContext = { - actionConfirmation: () => Promise.resolve(true), + actionConfirmation: () => Promise.resolve(ACTION_INDEX_CONFIRM), }; const mockAddon = jest.fn(); const mockNodeInteractionAddonContext = { From af6b55c0d11b68b9c0c1e916b9cc0bef51b4255e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 11 Oct 2024 13:57:58 -0400 Subject: [PATCH 390/471] fix(DataMapper): Prevent from modifying source parameters and body while XPath editor is open Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/57 --- .../components/Document/Parameters.test.tsx | 4 +-- .../ui/src/components/Document/Parameters.tsx | 36 +++++++++++-------- .../Document/SourceDocument.test.tsx | 4 +-- .../components/Document/SourceDocument.tsx | 12 ++++--- .../src/components/View/SourcePanel.test.tsx | 31 ++++++++++++++++ .../ui/src/components/View/SourcePanel.tsx | 10 ++++-- .../components/XPath/XPathEditorLayout.tsx | 2 +- 7 files changed, 71 insertions(+), 28 deletions(-) create mode 100644 packages/ui/src/components/View/SourcePanel.test.tsx diff --git a/packages/ui/src/components/Document/Parameters.test.tsx b/packages/ui/src/components/Document/Parameters.test.tsx index 8fb791b9a..8eb21d288 100644 --- a/packages/ui/src/components/Document/Parameters.test.tsx +++ b/packages/ui/src/components/Document/Parameters.test.tsx @@ -13,7 +13,7 @@ describe('Parameters', () => { - + , @@ -56,7 +56,7 @@ describe('Parameters', () => { - + , diff --git a/packages/ui/src/components/Document/Parameters.tsx b/packages/ui/src/components/Document/Parameters.tsx index 7aee4f0e9..be88511f4 100644 --- a/packages/ui/src/components/Document/Parameters.tsx +++ b/packages/ui/src/components/Document/Parameters.tsx @@ -93,7 +93,11 @@ const AddNewParameterPlaceholder: FunctionComponent { +type ParametersProps = { + isReadOnly: boolean; +}; + +export const Parameters: FunctionComponent = ({ isReadOnly }) => { const { sourceParameterMap, isSourceParametersExpanded, setSourceParametersExpanded } = useDataMapper(); const { reloadNodeReferences } = useCanvas(); const { @@ -129,21 +133,23 @@ export const Parameters: FunctionComponent = () => { const parametersHeaderActions = useMemo(() => { return ( - - Add a parameter}> - - - + {!isReadOnly && ( + + Add a parameter}> + + + + )} ); - }, [handleAddNewParameter]); + }, [handleAddNewParameter, isReadOnly]); return ( @@ -166,7 +172,7 @@ export const Parameters: FunctionComponent = () => { )} {Array.from(sourceParameterMap.entries()).map(([documentId, doc]) => ( - + ))} diff --git a/packages/ui/src/components/Document/SourceDocument.test.tsx b/packages/ui/src/components/Document/SourceDocument.test.tsx index 14d0cf3a8..7a2e6f080 100644 --- a/packages/ui/src/components/Document/SourceDocument.test.tsx +++ b/packages/ui/src/components/Document/SourceDocument.test.tsx @@ -12,7 +12,7 @@ describe('SourceDocument', () => { render( - + , ); @@ -24,7 +24,7 @@ describe('SourceDocument', () => { render( - + , ); diff --git a/packages/ui/src/components/Document/SourceDocument.tsx b/packages/ui/src/components/Document/SourceDocument.tsx index a7b7ad1cb..296c8db6a 100644 --- a/packages/ui/src/components/Document/SourceDocument.tsx +++ b/packages/ui/src/components/Document/SourceDocument.tsx @@ -12,18 +12,20 @@ import './Document.scss'; type DocumentProps = { document: IDocument; + isReadOnly: boolean; }; -export const SourceDocument: FunctionComponent = ({ document }) => { +export const SourceDocument: FunctionComponent = ({ document, isReadOnly }) => { const nodeData = new DocumentNodeData(document); - return ; + return ; }; type DocumentNodeProps = { nodeData: NodeData; + isReadOnly: boolean; }; -export const SourceDocumentNode: FunctionComponent = ({ nodeData }) => { +export const SourceDocumentNode: FunctionComponent = ({ nodeData, isReadOnly }) => { const { getNodeReference, reloadNodeReferences, setNodeReference } = useCanvas(); const [collapsed, setCollapsed] = useState(false); @@ -93,14 +95,14 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD )} {nodeTitle} - {isDocument && } + {!isReadOnly && {isDocument && }} {hasChildren && !collapsed && (
    {children.map((child) => ( - + ))}
    )} diff --git a/packages/ui/src/components/View/SourcePanel.test.tsx b/packages/ui/src/components/View/SourcePanel.test.tsx new file mode 100644 index 000000000..f435d4558 --- /dev/null +++ b/packages/ui/src/components/View/SourcePanel.test.tsx @@ -0,0 +1,31 @@ +import { DataMapperProvider } from '../../providers/datamapper.provider'; +import { SourcePanel } from './SourcePanel'; +import { render, screen } from '@testing-library/react'; +import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; + +describe('SourcePanel', () => { + it('should render action buttons by default', () => { + render( + + + + + , + ); + expect(screen.getByTestId('add-parameter-button')).toBeInTheDocument(); + expect(screen.getByTestId('attach-schema-sourceBody-Body-button')).toBeInTheDocument(); + expect(screen.getByTestId('detach-schema-sourceBody-Body-button')).toBeInTheDocument(); + }); + it('should not render action buttons if isReadOnly=true', () => { + render( + + + + + , + ); + expect(screen.queryByTestId('add-parameter-button')).toBeFalsy(); + expect(screen.queryByTestId('attach-schema-sourceBody-Body-button')).toBeFalsy(); + expect(screen.queryByTestId('detach-schema-sourceBody-Body-button')).toBeFalsy(); + }); +}); diff --git a/packages/ui/src/components/View/SourcePanel.tsx b/packages/ui/src/components/View/SourcePanel.tsx index d94166529..48f216c7b 100644 --- a/packages/ui/src/components/View/SourcePanel.tsx +++ b/packages/ui/src/components/View/SourcePanel.tsx @@ -14,7 +14,11 @@ import { useDataMapper } from '../../hooks/useDataMapper'; import { useCanvas } from '../../hooks/useCanvas'; import { SourceDocument } from '../Document/SourceDocument'; -export const SourcePanel: FunctionComponent = () => { +type SourcePanelProps = { + isReadOnly?: boolean; +}; + +export const SourcePanel: FunctionComponent = ({ isReadOnly = false }) => { const { sourceBodyDocument } = useDataMapper(); const { reloadNodeReferences } = useCanvas(); @@ -28,11 +32,11 @@ export const SourcePanel: FunctionComponent = () => { - +   - + diff --git a/packages/ui/src/components/XPath/XPathEditorLayout.tsx b/packages/ui/src/components/XPath/XPathEditorLayout.tsx index 8b200f364..9960158b8 100644 --- a/packages/ui/src/components/XPath/XPathEditorLayout.tsx +++ b/packages/ui/src/components/XPath/XPathEditorLayout.tsx @@ -62,7 +62,7 @@ export const XPathEditorLayout: FunctionComponent = ({ m className="xpath-editor-layout-tab-content" > - + Date: Mon, 14 Oct 2024 11:00:18 -0400 Subject: [PATCH 391/471] chore(DataMapper): adjust --- .../Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx | 4 ++-- .../Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx index e2d08cdc5..f0b30d058 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx @@ -1,7 +1,7 @@ import { act, fireEvent, render, waitFor } from '@testing-library/react'; import { createVisualizationNode, IVisualizationNode } from '../../../../models'; import { - ACTION_INDEX_CONFIRM, + ACTION_ID_CONFIRM, ActionConfirmationModalContext, } from '../../../../providers/action-confirmation-modal.provider'; import { ItemDeleteGroup } from './ItemDeleteGroup'; @@ -42,7 +42,7 @@ describe('ItemDeleteGroup', () => { it('should process addon when deleting', async () => { const mockDeleteModalContext = { - actionConfirmation: () => Promise.resolve(ACTION_INDEX_CONFIRM), + actionConfirmation: () => Promise.resolve(ACTION_ID_CONFIRM), }; const mockAddon = jest.fn(); const mockNodeInteractionAddonContext = { diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx index 9915945f9..72cdc5e40 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx @@ -1,7 +1,7 @@ import { act, fireEvent, render, waitFor } from '@testing-library/react'; import { createVisualizationNode, DefinedComponent, IVisualizationNode } from '../../../../models'; import { - ACTION_INDEX_CONFIRM, + ACTION_ID_CONFIRM, ActionConfirmationModalContext, } from '../../../../providers/action-confirmation-modal.provider'; import { ItemReplaceStep } from './ItemReplaceStep'; @@ -62,7 +62,7 @@ describe('ItemReplaceStep', () => { getNewComponent: () => Promise.resolve({} as DefinedComponent), }; const mockReplaceModalContext = { - actionConfirmation: () => Promise.resolve(ACTION_INDEX_CONFIRM), + actionConfirmation: () => Promise.resolve(ACTION_ID_CONFIRM), }; const mockAddon = jest.fn(); const mockNodeInteractionAddonContext = { From 7f2071626c3ab394eda362df21d1705561158cb0 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 9 Oct 2024 17:03:33 -0400 Subject: [PATCH 392/471] fix(DataMapper): Show a confirmation dialog when DataMapper step is to be deleted, with also offering an option to delete associated mapping file (XSLT) Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/97 --- .../DataMapper/on-delete-datamapper.ts | 15 +++++++-- .../Custom/ContextMenu/ItemDeleteGroup.tsx | 17 +++++++--- .../Custom/ContextMenu/ItemDeleteStep.tsx | 20 +++++++++--- .../Custom/ContextMenu/ItemReplaceStep.tsx | 19 +++++++++--- .../ContextMenu/item-delete-helper.test.ts | 3 +- .../Custom/ContextMenu/item-delete-helper.ts | 31 +++++++++++++++++-- .../RegisterNodeInteractionAddons.tsx | 25 +++++++++++++-- .../node-interaction-addon.model.ts | 11 +++++-- .../multiplying-architecture/KaotoBridge.tsx | 18 +++++++++-- .../KaotoEditorApp.tsx | 6 ++++ .../ui/src/providers/metadata.provider.tsx | 6 ++++ .../services/datamapper-metadata.service.ts | 9 ++++-- 12 files changed, 149 insertions(+), 31 deletions(-) diff --git a/packages/ui/src/components/DataMapper/on-delete-datamapper.ts b/packages/ui/src/components/DataMapper/on-delete-datamapper.ts index b050b7f8a..5081afb25 100644 --- a/packages/ui/src/components/DataMapper/on-delete-datamapper.ts +++ b/packages/ui/src/components/DataMapper/on-delete-datamapper.ts @@ -2,8 +2,17 @@ import { DataMapperMetadataService } from '../../services/datamapper-metadata.se import { IMetadataApi } from '../../providers'; import { IVisualizationNode } from '../../models'; -export const onDeleteDataMapper = (api: IMetadataApi, vizNode: IVisualizationNode) => { +export const ACTION_ID_DELETE_STEP_AND_FILE = 'del-step-and-file'; +export const ACTION_ID_DELETE_STEP_ONLY = 'del-step-only'; + +export const onDeleteDataMapper = async ( + api: IMetadataApi, + vizNode: IVisualizationNode, + modalAnswer: string | undefined, +) => { const metadataId = DataMapperMetadataService.getDataMapperMetadataId(vizNode); - DataMapperMetadataService.deleteMetadata(api, metadataId); - // TODO DataMapperMetadataService.deleteXsltFile(api, metadataId); + if (modalAnswer === ACTION_ID_DELETE_STEP_AND_FILE) { + await DataMapperMetadataService.deleteXsltFile(api, metadataId); + } + await DataMapperMetadataService.deleteMetadata(api, metadataId); }; diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx index c82f99de9..b2b0d24ff 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.tsx @@ -4,13 +4,13 @@ import { FunctionComponent, PropsWithChildren, useCallback, useContext } from 'r import { IDataTestID } from '../../../../models'; import { IVisualizationNode } from '../../../../models/visualization/base-visual-entity'; import { - ACTION_ID_CONFIRM, + ACTION_ID_CANCEL, ActionConfirmationModalContext, } from '../../../../providers/action-confirmation-modal.provider'; import { EntitiesContext } from '../../../../providers/entities.provider'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; -import { processNodeInteractionAddonRecursively } from './item-delete-helper'; +import { findModalCustomizationRecursively, processNodeInteractionAddonRecursively } from './item-delete-helper'; interface ItemDeleteGroupProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -24,15 +24,22 @@ export const ItemDeleteGroup: FunctionComponent = (props) const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); const onRemoveGroup = useCallback(async () => { + const modalCustoms = findModalCustomizationRecursively(props.vizNode, (vn) => + getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), + ); + const additionalModalText = modalCustoms.length > 0 ? modalCustoms[0].additionalText : undefined; + const buttonOptions = modalCustoms.length > 0 ? modalCustoms[0].buttonOptions : undefined; /** Open delete confirm modal, get the confirmation */ - const isDeleteConfirmed = await deleteModalContext?.actionConfirmation({ + const modalAnswer = await deleteModalContext?.actionConfirmation({ title: 'Permanently delete flow?', text: 'All steps will be lost.', + additionalModalText, + buttonOptions, }); - if (isDeleteConfirmed !== ACTION_ID_CONFIRM) return; + if (!modalAnswer || modalAnswer === ACTION_ID_CANCEL) return; - processNodeInteractionAddonRecursively(props.vizNode, (vn) => + processNodeInteractionAddonRecursively(props.vizNode, modalAnswer, (vn) => getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), ); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx index 56d849975..8ecee19a4 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.tsx @@ -5,12 +5,13 @@ import { IDataTestID } from '../../../../models'; import { IVisualizationNode } from '../../../../models/visualization/base-visual-entity'; import { EntitiesContext } from '../../../../providers/entities.provider'; import { + ACTION_ID_CANCEL, ACTION_ID_CONFIRM, ActionConfirmationModalContext, } from '../../../../providers/action-confirmation-modal.provider'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; -import { processNodeInteractionAddonRecursively } from './item-delete-helper'; +import { findModalCustomizationRecursively, processNodeInteractionAddonRecursively } from './item-delete-helper'; interface ItemDeleteStepProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -23,17 +24,26 @@ export const ItemDeleteStep: FunctionComponent = (props) => const { getRegisteredInteractionAddons } = useContext(NodeInteractionAddonContext); const onRemoveNode = useCallback(async () => { - if (props.loadActionConfirmationModal) { + const modalCustoms = findModalCustomizationRecursively(props.vizNode, (vn) => + getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), + ); + + let modalAnswer: string | undefined = ACTION_ID_CONFIRM; + if (props.loadActionConfirmationModal || modalCustoms.length > 0) { + const additionalModalText = modalCustoms.length > 0 ? modalCustoms[0].additionalText : undefined; + const buttonOptions = modalCustoms.length > 0 ? modalCustoms[0].buttonOptions : undefined; /** Open delete confirm modal, get the confirmation */ - const isDeleteConfirmed = await deleteModalContext?.actionConfirmation({ + modalAnswer = await deleteModalContext?.actionConfirmation({ title: 'Permanently delete step?', text: 'Step and its children will be lost.', + additionalModalText, + buttonOptions, }); - if (isDeleteConfirmed !== ACTION_ID_CONFIRM) return; + if (!modalAnswer || modalAnswer === ACTION_ID_CANCEL) return; } - processNodeInteractionAddonRecursively(props.vizNode, (vn) => + processNodeInteractionAddonRecursively(props.vizNode, modalAnswer, (vn) => getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), ); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx index e0bbc6d99..b204c17cb 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.tsx @@ -6,12 +6,13 @@ import { AddStepMode, IVisualizationNode } from '../../../../models/visualizatio import { CatalogModalContext } from '../../../../providers/catalog-modal.provider'; import { EntitiesContext } from '../../../../providers/entities.provider'; import { + ACTION_ID_CANCEL, ACTION_ID_CONFIRM, ActionConfirmationModalContext, } from '../../../../providers/action-confirmation-modal.provider'; import { NodeInteractionAddonContext } from '../../../registers/interactions/node-interaction-addon.provider'; import { IInteractionAddonType } from '../../../registers/interactions/node-interaction-addon.model'; -import { processNodeInteractionAddonRecursively } from './item-delete-helper'; +import { findModalCustomizationRecursively, processNodeInteractionAddonRecursively } from './item-delete-helper'; interface ItemReplaceStepProps extends PropsWithChildren { vizNode: IVisualizationNode; @@ -27,14 +28,22 @@ export const ItemReplaceStep: FunctionComponent = (props) const onReplaceNode = useCallback(async () => { if (!props.vizNode || !entitiesContext) return; - if (props.loadActionConfirmationModal) { + const modalCustoms = findModalCustomizationRecursively(props.vizNode, (vn) => + getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), + ); + let modalAnswer: string | undefined = ACTION_ID_CONFIRM; + if (props.loadActionConfirmationModal || modalCustoms.length > 0) { + const additionalModalText = modalCustoms.length > 0 ? modalCustoms[0].additionalText : undefined; + const buttonOptions = modalCustoms.length > 0 ? modalCustoms[0].buttonOptions : undefined; /** Open delete confirm modal, get the confirmation */ - const isReplaceConfirmed = await replaceModalContext?.actionConfirmation({ + modalAnswer = await replaceModalContext?.actionConfirmation({ title: 'Replace step?', text: 'Step and its children will be lost.', + additionalModalText, + buttonOptions, }); - if (isReplaceConfirmed !== ACTION_ID_CONFIRM) return; + if (!modalAnswer || modalAnswer === ACTION_ID_CANCEL) return; } /** Find compatible components */ @@ -47,7 +56,7 @@ export const ItemReplaceStep: FunctionComponent = (props) const definedComponent = await catalogModalContext?.getNewComponent(catalogFilter); if (!definedComponent) return; - processNodeInteractionAddonRecursively(props.vizNode, (vn) => + processNodeInteractionAddonRecursively(props.vizNode, modalAnswer, (vn) => getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vn), ); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts index 9159f734a..b122f4f70 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.test.ts @@ -4,6 +4,7 @@ import { IInteractionAddonType, IRegisteredInteractionAddon, } from '../../../registers/interactions/node-interaction-addon.model'; +import { ACTION_ID_CONFIRM } from '../../../../providers'; describe('item-delete-helper', () => { describe('processNodeInteractionAddonRecursively', () => { @@ -18,7 +19,7 @@ describe('item-delete-helper', () => { }; addons[childVn.id] = [mockAddon]; vizNode.addChild(childVn); - processNodeInteractionAddonRecursively(vizNode, (vn) => addons[vn.id] ?? []); + processNodeInteractionAddonRecursively(vizNode, ACTION_ID_CONFIRM, (vn) => addons[vn.id] ?? []); expect(mockAddon.callback).toHaveBeenCalled(); }); }); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts index 9b150499d..72149a567 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/item-delete-helper.ts @@ -1,14 +1,39 @@ import { IVisualizationNode } from '../../../../models'; -import { IRegisteredInteractionAddon } from '../../../registers/interactions/node-interaction-addon.model'; +import { + IModalCustomization, + IRegisteredInteractionAddon, +} from '../../../registers/interactions/node-interaction-addon.model'; export const processNodeInteractionAddonRecursively = ( parentVizNode: IVisualizationNode, + modalAnswer: string | undefined, getAddons: (vizNode: IVisualizationNode) => IRegisteredInteractionAddon[], ) => { parentVizNode.getChildren()?.forEach((child) => { - processNodeInteractionAddonRecursively(child, getAddons); + processNodeInteractionAddonRecursively(child, modalAnswer, getAddons); }); getAddons(parentVizNode).forEach((addon) => { - addon.callback(parentVizNode); + addon.callback(parentVizNode, modalAnswer); }); }; + +export const findModalCustomizationRecursively = ( + parentVizNode: IVisualizationNode, + getAddons: (vizNode: IVisualizationNode) => IRegisteredInteractionAddon[], +) => { + const modalCustomizations: IModalCustomization[] = []; + // going breadth-first while addon processes depth-first... do we want? + getAddons(parentVizNode).forEach((addon) => { + if (addon.modalCustomization && !modalCustomizations.includes(addon.modalCustomization)) { + modalCustomizations.push(addon.modalCustomization); + } + }); + parentVizNode.getChildren()?.forEach((child) => { + findModalCustomizationRecursively(child, getAddons).forEach((custom) => { + if (!modalCustomizations.includes(custom)) { + modalCustomizations.push(custom); + } + }); + }); + return modalCustomizations; +}; diff --git a/packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx b/packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx index 65a7ee1be..38092632c 100644 --- a/packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx +++ b/packages/ui/src/components/registers/RegisterNodeInteractionAddons.tsx @@ -1,9 +1,14 @@ import { FunctionComponent, PropsWithChildren, useContext, useRef } from 'react'; import { datamapperActivationFn } from './datamapper.activationfn'; import { MetadataContext } from '../../providers'; -import { onDeleteDataMapper } from '../DataMapper/on-delete-datamapper'; +import { + ACTION_ID_DELETE_STEP_AND_FILE, + ACTION_ID_DELETE_STEP_ONLY, + onDeleteDataMapper, +} from '../DataMapper/on-delete-datamapper'; import { NodeInteractionAddonContext } from './interactions/node-interaction-addon.provider'; import { IInteractionAddonType, IRegisteredInteractionAddon } from './interactions/node-interaction-addon.model'; +import { ButtonVariant } from '@patternfly/react-core'; export const RegisterNodeInteractionAddons: FunctionComponent = ({ children }) => { const metadataApi = useContext(MetadataContext)!; @@ -12,8 +17,22 @@ export const RegisterNodeInteractionAddons: FunctionComponent { type: IInteractionAddonType.ON_DELETE, activationFn: datamapperActivationFn, - callback: (vizNode) => { - metadataApi && onDeleteDataMapper(metadataApi, vizNode); + callback: (vizNode, modalAnswer) => { + metadataApi && onDeleteDataMapper(metadataApi, vizNode, modalAnswer); + }, + modalCustomization: { + additionalText: 'Do you also want to delete the associated Kaoto DataMapper mapping file (XSLT)?', + buttonOptions: { + [ACTION_ID_DELETE_STEP_AND_FILE]: { + variant: ButtonVariant.danger, + buttonText: 'Delete both step and file', + }, + [ACTION_ID_DELETE_STEP_ONLY]: { + variant: ButtonVariant.secondary, + isDanger: true, + buttonText: 'Delete the step, but keep the file', + }, + }, }, }, ]); diff --git a/packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts b/packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts index 95e0769b7..c24632946 100644 --- a/packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts +++ b/packages/ui/src/components/registers/interactions/node-interaction-addon.model.ts @@ -1,13 +1,20 @@ import { IVisualizationNode } from '../../../models'; +import { ActionConfirmationButtonOption } from '../../../providers'; export enum IInteractionAddonType { ON_DELETE = 'onDelete', } +export interface IModalCustomization { + buttonOptions: Record; + additionalText?: string; +} + export interface IRegisteredInteractionAddon { type: IInteractionAddonType; activationFn: (vizNode: IVisualizationNode) => boolean; - callback: (vizNode: IVisualizationNode) => void; + callback: (vizNode: IVisualizationNode, modalAnswer: string | undefined) => void; + modalCustomization?: IModalCustomization; } export interface INodeInteractionAddonContext { @@ -38,7 +45,7 @@ export interface INodeInteractionAddonContext { * * const addons = nodeInteractionAddonContext.getRegisteredInteractionAddons(IInteractionAddonType.ON_DELETE, vizNode); * addons.forEach((addon) => { - * addon.onDelete(vizNode); + * addon.callback(vizNode, ACTION_ID_CONFIRM); * }); * ``` * @param type The interaction addon type enum value diff --git a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx index 4979d71e5..7a5039e18 100644 --- a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx @@ -81,6 +81,12 @@ interface KaotoBridgeProps { */ saveResourceContent(path: string, content: string): Promise; + /** + * Delete resource using the channel API. + * @param path The path of the resource + */ + deleteResource(path: string): Promise; + /** * Show a Quick Pick widget and ask the user to select one or more files available in the workspace. * @param include The filter expression for the files to include @@ -109,6 +115,7 @@ export const KaotoBridge = forwardRef ({ getMetadata, setMetadata, getResourceContent, saveResourceContent, askUserForFileSelection }), - [getMetadata, setMetadata, getResourceContent, saveResourceContent, askUserForFileSelection], + () => ({ + getMetadata, + setMetadata, + getResourceContent, + saveResourceContent, + deleteResource, + askUserForFileSelection, + }), + [getMetadata, setMetadata, getResourceContent, saveResourceContent, deleteResource, askUserForFileSelection], ); /** diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx b/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx index 81b4a04ec..565c05c08 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditorApp.tsx @@ -40,6 +40,7 @@ export class KaotoEditorApp implements Editor { this.setMetadata = this.setMetadata.bind(this); this.getResourceContent = this.getResourceContent.bind(this); this.saveResourceContent = this.saveResourceContent.bind(this); + this.deleteResource = this.deleteResource.bind(this); this.askUserForFileSelection = this.askUserForFileSelection.bind(this); } @@ -115,6 +116,10 @@ export class KaotoEditorApp implements Editor { return this.envelopeContext.channelApi.requests.saveResourceContent(path, content); } + async deleteResource(path: string): Promise { + return this.envelopeContext.channelApi.requests.deleteResource(path); + } + async askUserForFileSelection( include: string, exclude?: string, @@ -139,6 +144,7 @@ export class KaotoEditorApp implements Editor { setMetadata={this.setMetadata} getResourceContent={this.getResourceContent} saveResourceContent={this.saveResourceContent} + deleteResource={this.deleteResource} askUserForFileSelection={this.askUserForFileSelection} > diff --git a/packages/ui/src/providers/metadata.provider.tsx b/packages/ui/src/providers/metadata.provider.tsx index 16fcf0fb7..3836308a4 100644 --- a/packages/ui/src/providers/metadata.provider.tsx +++ b/packages/ui/src/providers/metadata.provider.tsx @@ -27,6 +27,12 @@ export interface IMetadataApi { */ saveResourceContent(path: string, content: string): Promise; + /** + * Delete resource + * @param path The path of the resource + */ + deleteResource(path: string): Promise; + /** * Show a Quick Pick widget and ask the user to select one or more files available in the workspace. * @param include The filter expression for the files to include diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts index ddb1bc39c..1aaeda411 100644 --- a/packages/ui/src/services/datamapper-metadata.service.ts +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -205,7 +205,12 @@ export class DataMapperMetadataService { }); } - static deleteMetadata(api: IMetadataApi, metadataId: string) { - api.setMetadata(metadataId, undefined); + static async deleteMetadata(api: IMetadataApi, metadataId: string) { + await api.setMetadata(metadataId, undefined); + } + + static async deleteXsltFile(api: IMetadataApi, metadataId: string) { + const metadata = (await api.getMetadata(metadataId)) as IDataMapperMetadata; + await api.deleteResource(metadata.xsltPath); } } From 7c175199c6180a5b2716a6960871c8229c733b01 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 14 Oct 2024 17:34:40 -0400 Subject: [PATCH 393/471] chore(DataMapper): fix test error --- .../Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx | 2 +- .../Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx | 2 +- .../Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx index f0b30d058..0c871158d 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteGroup.test.tsx @@ -62,7 +62,7 @@ describe('ItemDeleteGroup', () => { fireEvent.click(wrapper.getByText('Delete')); }); await waitFor(() => { - expect(mockAddon).toHaveBeenCalledWith(vizNode); + expect(mockAddon).toHaveBeenCalled(); }); }); }); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx index a32804fc9..e5fc1321e 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemDeleteStep.test.tsx @@ -80,7 +80,7 @@ describe('ItemDeleteStep', () => { fireEvent.click(wrapper.getByText('Delete')); }); await waitFor(() => { - expect(mockAddon).toHaveBeenCalledWith(vizNode); + expect(mockAddon).toHaveBeenCalled(); }); }); }); diff --git a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx index 72cdc5e40..2ed46e8da 100644 --- a/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx +++ b/packages/ui/src/components/Visualization/Custom/ContextMenu/ItemReplaceStep.test.tsx @@ -86,7 +86,7 @@ describe('ItemReplaceStep', () => { fireEvent.click(wrapper.getByText('Replace')); }); await waitFor(() => { - expect(mockAddon).toHaveBeenCalledWith(vizNode); + expect(mockAddon).toHaveBeenCalled(); }); }); }); From bb10aefbaadddd85a2b15f15c16685489bb2a8a3 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 14 Oct 2024 17:28:34 -0400 Subject: [PATCH 394/471] fix(DataMapper): Show an error message if the attached document schema fails to parse Fixes: #64 --- .../actions/AttachSchemaButton.test.tsx | 42 ++++++++++++++- .../Document/actions/AttachSchemaButton.tsx | 9 +++- .../ui/src/providers/datamapper.provider.tsx | 53 ++++++++++++++++++- packages/ui/src/stubs/data-mapper.ts | 3 ++ .../test-resources/NoTopElement.xsd | 11 ++++ 5 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 packages/xml-schema-ts/test-resources/NoTopElement.xsd diff --git a/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx index a4af17d56..945d6797b 100644 --- a/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx +++ b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx @@ -6,8 +6,11 @@ import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; import { DataMapperProvider } from '../../../providers/datamapper.provider'; import { readFileAsString } from '../../../stubs/read-file-as-string'; -import { shipOrderXsd } from '../../../stubs/data-mapper'; +import { noTopElementXsd, shipOrderXsd } from '../../../stubs/data-mapper'; import { BrowserFilePickerMetadataProvider } from '../../../stubs/BrowserFilePickerMetadataProvider'; +import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; +import { useDataMapper } from '../../../hooks/useDataMapper'; +import { AlertProps } from '@patternfly/react-core'; jest.mock('../../../stubs/read-file-as-string'); const mockReadFileAsString = readFileAsString as jest.MockedFunction; @@ -59,4 +62,41 @@ describe('AttachSchemaButton', () => { await screen.findByTestId('attach-schema-sourceBody-Body-button'); expect(mockReadFileAsString.mock.calls.length).toEqual(1); }); + + let capturedAlerts: Partial[] = []; + const TestAlertCapture: FunctionComponent = ({ children }) => { + const { alerts } = useDataMapper(); + useEffect(() => { + capturedAlerts = alerts; + }, [alerts]); + return <>{children}; + }; + + it('should show a toast alert for invalid schema', async () => { + mockReadFileAsString.mockResolvedValue(noTopElementXsd); + render( + + + + + + + + + , + ); + const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); + act(() => { + fireEvent.click(attachButton); + }); + const fileInput = await screen.findByTestId('attach-schema-file-input'); + const fileContent = new File([new Blob([noTopElementXsd])], 'NoTopElement.xsd', { type: 'text/plain' }); + act(() => { + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + }); + screen.debug(); + await screen.findByTestId('attach-schema-sourceBody-Body-button'); + expect(capturedAlerts.length).toEqual(1); + expect(capturedAlerts[0].title).toContain('no top level Element'); + }); }); diff --git a/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx b/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx index 3dd801e49..cacdd3d00 100644 --- a/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx +++ b/packages/ui/src/components/Document/actions/AttachSchemaButton.tsx @@ -13,7 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { Button, Tooltip } from '@patternfly/react-core'; +import { AlertVariant, Button, Tooltip } from '@patternfly/react-core'; import { FunctionComponent, useCallback, useContext } from 'react'; import { ImportIcon } from '@patternfly/react-icons'; @@ -37,7 +37,7 @@ export const AttachSchemaButton: FunctionComponent = ({ hasSchema = false, }) => { const api = useContext(MetadataContext)!; - const { setIsLoading, updateDocumentDefinition } = useDataMapper(); + const { addAlert, setIsLoading, updateDocumentDefinition } = useDataMapper(); const { clearNodeReferencesForDocument, reloadNodeReferences } = useCanvas(); const onClick = useCallback(async () => { @@ -56,10 +56,15 @@ export const AttachSchemaButton: FunctionComponent = ({ await updateDocumentDefinition(definition); clearNodeReferencesForDocument(documentType, documentId); reloadNodeReferences(); + /* eslint-disable @typescript-eslint/no-explicit-any */ + } catch (error: any) { + const cause = error['message'] ? ': ' + error['message'] : ''; + addAlert({ variant: AlertVariant.danger, title: `Cannot read the schema file ${cause}` }); } finally { setIsLoading(false); } }, [ + addAlert, api, clearNodeReferencesForDocument, documentId, diff --git a/packages/ui/src/providers/datamapper.provider.tsx b/packages/ui/src/providers/datamapper.provider.tsx index d8ed8c311..97c3f4fdb 100644 --- a/packages/ui/src/providers/datamapper.provider.tsx +++ b/packages/ui/src/providers/datamapper.provider.tsx @@ -29,6 +29,7 @@ import { DocumentType } from '../models/datamapper/path'; import { MappingSerializerService } from '../services/mapping-serializer.service'; import { MappingService } from '../services/mapping.service'; import { DocumentService } from '../services/document.service'; +import { Alert, AlertActionCloseButton, AlertGroup, AlertProps, AlertVariant } from '@patternfly/react-core'; export interface IDataMapperContext { isLoading: boolean; @@ -53,6 +54,9 @@ export interface IDataMapperContext { refreshMappingTree(): void; setMappingTree(mappings: MappingTree): void; + alerts: Partial[]; + addAlert: (alert: Partial) => void; + debug: boolean; setDebug(debug: boolean): void; } @@ -91,6 +95,8 @@ export const DataMapperProvider: FunctionComponent = ({ new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID), ); + const [alerts, setAlerts] = useState[]>([]); + useEffect(() => { const documents = DocumentService.createInitialDocuments(documentInitializationModel); let latestSourceParameterMap = sourceParameterMap; @@ -193,6 +199,25 @@ export const DataMapperProvider: FunctionComponent = ({ [onUpdateDocument, removeStaleMappings, setNewDocument], ); + const addAlert = useCallback( + (option: Partial) => { + alerts.push(option); + setAlerts([...alerts]); + }, + [alerts], + ); + + const closeAlert = useCallback( + (option: Partial) => { + const index = alerts.indexOf(option); + if (index > -1) { + alerts.splice(index, 1); + setAlerts([...alerts]); + } + }, + [alerts], + ); + const value = useMemo(() => { return { isLoading, @@ -212,6 +237,8 @@ export const DataMapperProvider: FunctionComponent = ({ mappingTree, refreshMappingTree, setMappingTree, + alerts, + addAlert, debug, setDebug, }; @@ -227,8 +254,32 @@ export const DataMapperProvider: FunctionComponent = ({ updateDocumentDefinition, mappingTree, refreshMappingTree, + alerts, + addAlert, debug, ]); - return {isLoading ? : children}; + return ( + + {isLoading ? ( + + ) : ( + <> + + {alerts.map((option, index) => ( + closeAlert(option)} + actionClose={ closeAlert(option)} />} + > + ))} + + {children} + + )} + + ); }; diff --git a/packages/ui/src/stubs/data-mapper.ts b/packages/ui/src/stubs/data-mapper.ts index a98d26d8f..4d3754704 100644 --- a/packages/ui/src/stubs/data-mapper.ts +++ b/packages/ui/src/stubs/data-mapper.ts @@ -23,6 +23,9 @@ export const shipOrderXsd = fs export const testDocumentXsd = fs .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/TestDocument.xsd') .toString(); +export const noTopElementXsd = fs + .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/NoTopElement.xsd') + .toString(); export const shipOrderToShipOrderXslt = fs .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') .toString(); diff --git a/packages/xml-schema-ts/test-resources/NoTopElement.xsd b/packages/xml-schema-ts/test-resources/NoTopElement.xsd new file mode 100644 index 000000000..6850c5ee0 --- /dev/null +++ b/packages/xml-schema-ts/test-resources/NoTopElement.xsd @@ -0,0 +1,11 @@ + + + + + + + + + + + From 929183943aa85484aa7bc848622aa58ea4b3890f Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 14 Oct 2024 22:21:19 -0400 Subject: [PATCH 395/471] fix(DataMapper): Close contextual menu for three dots on target when another is clicked Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/66 --- .../src/components/Document/TargetDocument.tsx | 17 ++++++++--------- .../Document/actions/TargetNodeActions.tsx | 6 +----- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/packages/ui/src/components/Document/TargetDocument.tsx b/packages/ui/src/components/Document/TargetDocument.tsx index f354b4906..5643daa25 100644 --- a/packages/ui/src/components/Document/TargetDocument.tsx +++ b/packages/ui/src/components/Document/TargetDocument.tsx @@ -81,29 +81,28 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData }) className={isDocument ? 'node-container__document' : 'node-container'} > -
    +
    - + {hasChildren && } - + {isCollectionField && ( - + )} {isAttributeField && ( - + )} - {nodeTitle} + + {nodeTitle} + {showNodeActions && } diff --git a/packages/ui/src/components/Document/actions/TargetNodeActions.tsx b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx index 67303bb55..454dfbe3a 100644 --- a/packages/ui/src/components/Document/actions/TargetNodeActions.tsx +++ b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx @@ -20,11 +20,7 @@ export const TargetNodeActions: FunctionComponent = ({ n }, []); return ( - + {expressionItem && ( <> From 6d6e8f6a03e447dfb33e7e51d6ae4d460f3930c5 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 15 Oct 2024 08:28:53 -0400 Subject: [PATCH 396/471] fix(DataMapper): Refresh mapping lines when XPath Editor is closed Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/82 --- .../src/components/Document/actions/XPathEditorAction.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/Document/actions/XPathEditorAction.tsx b/packages/ui/src/components/Document/actions/XPathEditorAction.tsx index a1646a480..83d53b6c4 100644 --- a/packages/ui/src/components/Document/actions/XPathEditorAction.tsx +++ b/packages/ui/src/components/Document/actions/XPathEditorAction.tsx @@ -4,6 +4,7 @@ import { FunctionComponent, useCallback, useState } from 'react'; import { ActionListItem, Button } from '@patternfly/react-core'; import { PencilAltIcon } from '@patternfly/react-icons'; import { XPathEditorModal } from '../../XPath/XPathEditorModal'; +import { useCanvas } from '../../../hooks/useCanvas'; type XPathEditorProps = { nodeData: TargetNodeData; @@ -11,9 +12,13 @@ type XPathEditorProps = { onUpdate: () => void; }; export const XPathEditorAction: FunctionComponent = ({ nodeData, mapping, onUpdate }) => { + const { reloadNodeReferences } = useCanvas(); const [isEditorOpen, setIsEditorOpen] = useState(false); const launchXPathEditor = useCallback(() => setIsEditorOpen(true), []); - const closeXPathEditor = useCallback(() => setIsEditorOpen(false), []); + const closeXPathEditor = useCallback(() => { + setIsEditorOpen(false); + reloadNodeReferences(); + }, [reloadNodeReferences]); return ( From 3cf9d282c7d5ad12e85bb03361f34743fa2d1a14 Mon Sep 17 00:00:00 2001 From: "Ricardo M." Date: Tue, 15 Oct 2024 12:48:29 +0000 Subject: [PATCH 397/471] feat(DataMapper): Use navigation to go to DataMapper fix: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/68 --- packages/ui/src/App.tsx | 32 +++-- .../DataMapper/DataMapper.test.tsx} | 10 +- .../src/components/DataMapper/DataMapper.tsx | 132 +++++++++++++++--- .../DataMapper/DataMapperControl.tsx | 33 +++++ .../DataMapper/DataMapperLauncher.scss | 3 - .../DataMapper/DataMapperLauncher.tsx | 60 ++++---- .../DataMapper/debug/DebugLayout.tsx | 4 +- .../DataMapper/on-delete-datamapper.ts | 15 ++ .../Visualization/Visualization.tsx | 22 ++- .../RouteVisualization/RouteVisualization.tsx | 17 ++- .../multiplying-architecture/KaotoBridge.tsx | 33 +++-- .../KaotoEditorRouter.tsx | 2 +- .../src/pages/DataMapper/DataMapperPage.tsx | 107 ++------------ packages/ui/src/router.tsx | 2 +- 14 files changed, 271 insertions(+), 201 deletions(-) rename packages/ui/src/{pages/DataMapper/DataMapperPage.test.tsx => components/DataMapper/DataMapper.test.tsx} (94%) create mode 100644 packages/ui/src/components/DataMapper/DataMapperControl.tsx delete mode 100644 packages/ui/src/components/DataMapper/DataMapperLauncher.scss diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx index 4c0b6245a..7a4ff7892 100644 --- a/packages/ui/src/App.tsx +++ b/packages/ui/src/App.tsx @@ -1,6 +1,11 @@ +import { VisualizationProvider } from '@patternfly/react-topology'; +import { useMemo } from 'react'; import { Outlet } from 'react-router-dom'; import { RenderingProvider } from './components/RenderingAnchor/rendering.provider'; +import { ControllerService } from './components/Visualization/Canvas/controller.service'; import { RegisterComponents } from './components/registers/RegisterComponents'; +import { RegisterNodeInteractionAddons } from './components/registers/RegisterNodeInteractionAddons'; +import { NodeInteractionAddonProvider } from './components/registers/interactions/node-interaction-addon.provider'; import { useReload } from './hooks/reload.hook'; import { Shell } from './layout/Shell'; import { LocalStorageSettingsAdapter } from './models/settings/localstorage-settings-adapter'; @@ -16,11 +21,10 @@ import { } from './providers'; import { isDefined } from './utils'; import { CatalogSchemaLoader } from './utils/catalog-schema-loader'; -import { RegisterNodeInteractionAddons } from './components/registers/RegisterNodeInteractionAddons'; -import { NodeInteractionAddonProvider } from './components/registers/interactions/node-interaction-addon.provider'; function App() { const ReloadProvider = useReload(); + const controller = useMemo(() => ControllerService.createController(), []); const settingsAdapter = new LocalStorageSettingsAdapter(); let catalogUrl = CatalogSchemaLoader.DEFAULT_CATALOG_PATH; const settingsCatalogUrl = settingsAdapter.getSettings().catalogUrl; @@ -39,17 +43,19 @@ function App() { - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx b/packages/ui/src/components/DataMapper/DataMapper.test.tsx similarity index 94% rename from packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx rename to packages/ui/src/components/DataMapper/DataMapper.test.tsx index 4b9d5f30d..e713e1061 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.test.tsx +++ b/packages/ui/src/components/DataMapper/DataMapper.test.tsx @@ -4,7 +4,7 @@ import { DocumentDefinitionType } from '../../models/datamapper/document'; import { IDataMapperMetadata } from '../../models/datamapper/metadata'; import { IMetadataApi, MetadataProvider } from '../../providers'; import { shipOrderToShipOrderXslt, shipOrderXsd } from '../../stubs/data-mapper'; -import { DataMapperPage } from './DataMapperPage'; +import { DataMapper } from './DataMapper'; describe('DataMapperPage', () => { const vizNode = { @@ -56,7 +56,7 @@ describe('DataMapperPage', () => { fileContents[metadata.xsltPath] = shipOrderToShipOrderXslt; render( - + , ); await screen.findByTestId('card-source-parameters-header'); @@ -79,7 +79,7 @@ describe('DataMapperPage', () => { }; render( - + , ); await screen.findByTestId('card-source-parameters-header'); @@ -94,7 +94,7 @@ describe('DataMapperPage', () => { it('should not render toolbar menu in embedded mode', async () => { render( - + , ); try { @@ -106,7 +106,7 @@ describe('DataMapperPage', () => { }); it('should show an error message if vizNode is not provided', async () => { - render(); + render(); const error = await screen.findByText('No associated DataMapper step was provided.'); expect(error).toBeInTheDocument(); }); diff --git a/packages/ui/src/components/DataMapper/DataMapper.tsx b/packages/ui/src/components/DataMapper/DataMapper.tsx index 9b8d05352..b7d7a5547 100644 --- a/packages/ui/src/components/DataMapper/DataMapper.tsx +++ b/packages/ui/src/components/DataMapper/DataMapper.tsx @@ -1,18 +1,116 @@ -import { FunctionComponent, useMemo } from 'react'; -import { useDataMapper } from '../../hooks/useDataMapper'; -import { CanvasView } from '../../models/datamapper/view'; -import { SourceTargetView } from '../View/SourceTargetView'; - -export const DataMapper: FunctionComponent = () => { - const { activeView } = useDataMapper(); - const currentView = useMemo(() => { - switch (activeView) { - case CanvasView.SOURCE_TARGET: - return ; - default: - return <>View {activeView} is not supported; - } - }, [activeView]); - - return <>{currentView}; +/* + Copyright (C) 2024 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent, useCallback, useContext, useEffect, useState } from 'react'; +import { DataMapperControl } from '../../components/DataMapper/DataMapperControl'; +import { DataMapperProvider } from '../../providers/datamapper.provider'; +import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; +import { DocumentDefinition, DocumentInitializationModel } from '../../models/datamapper/document'; +import { IVisualizationNode } from '../../models'; +import { EntitiesContext, MetadataContext } from '../../providers'; +import { DataMapperMetadataService } from '../../services/datamapper-metadata.service'; +import { DocumentType } from '../../models/datamapper/path'; +import { IDataMapperMetadata } from '../../models/datamapper/metadata'; +import { Loading } from '../../components/Loading'; + +export interface IDataMapperProps { + vizNode?: IVisualizationNode; +} + +export const DataMapper: FunctionComponent = ({ vizNode }) => { + const entitiesContext = useContext(EntitiesContext)!; + const ctx = useContext(MetadataContext)!; + const metadataId = vizNode && DataMapperMetadataService.getDataMapperMetadataId(vizNode); + const [metadata, setMetadata] = useState(); + const [documentInitializationModel, setDocumentInitializationModel] = useState(); + const [initialXsltFile, setInitialXsltFile] = useState(); + const [isLoading, setIsLoading] = useState(true); + + useEffect(() => { + if (!metadataId) return; + const initialize = async () => { + let meta = await ctx.getMetadata(metadataId); + if (!meta) { + meta = await DataMapperMetadataService.initializeDataMapperMetadata(entitiesContext, vizNode, ctx, metadataId); + } + setMetadata(meta); + const initModel = await DataMapperMetadataService.loadDocuments(ctx, meta); + setDocumentInitializationModel(initModel); + const mappingFile = await DataMapperMetadataService.loadMappingFile(ctx, meta); + setInitialXsltFile(mappingFile); + }; + initialize().then(() => setIsLoading(false)); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const onUpdateDocument = useCallback( + (definition: DocumentDefinition) => { + if (!metadataId || !metadata) return; + switch (definition.documentType) { + case DocumentType.SOURCE_BODY: + DataMapperMetadataService.updateSourceBodyMetadata(ctx, metadataId, metadata, definition); + break; + case DocumentType.TARGET_BODY: + DataMapperMetadataService.updateTargetBodyMetadata(ctx, metadataId, metadata, definition); + break; + case DocumentType.PARAM: + DataMapperMetadataService.updateSourceParameterMetadata( + ctx, + metadataId, + metadata, + definition.name!, + definition, + ); + } + }, + [ctx, metadata, metadataId], + ); + + const onDeleteParameter = useCallback( + (name: string) => { + if (!metadataId || !metadata) return; + DataMapperMetadataService.deleteSourceParameterMetadata(ctx, metadataId, metadata, name); + }, + [ctx, metadata, metadataId], + ); + + const onUpdateMappings = useCallback( + (xsltFile: string) => { + if (!metadata) return; + DataMapperMetadataService.updateMappingFile(ctx, metadata, xsltFile); + }, + [ctx, metadata], + ); + + return !metadataId ? ( + <>No associated DataMapper step was provided. + ) : isLoading ? ( + + ) : ( + + + + + + ); }; + +export default DataMapper; diff --git a/packages/ui/src/components/DataMapper/DataMapperControl.tsx b/packages/ui/src/components/DataMapper/DataMapperControl.tsx new file mode 100644 index 000000000..4579f3a1b --- /dev/null +++ b/packages/ui/src/components/DataMapper/DataMapperControl.tsx @@ -0,0 +1,33 @@ +/* + Copyright (C) 2024 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { FunctionComponent, useMemo } from 'react'; +import { useDataMapper } from '../../hooks/useDataMapper'; +import { CanvasView } from '../../models/datamapper/view'; +import { SourceTargetView } from '../View/SourceTargetView'; + +export const DataMapperControl: FunctionComponent = () => { + const { activeView } = useDataMapper(); + const currentView = useMemo(() => { + switch (activeView) { + case CanvasView.SOURCE_TARGET: + return ; + default: + return <>View {activeView} is not supported; + } + }, [activeView]); + + return <>{currentView}; +}; diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.scss b/packages/ui/src/components/DataMapper/DataMapperLauncher.scss deleted file mode 100644 index 5b2eb02b3..000000000 --- a/packages/ui/src/components/DataMapper/DataMapperLauncher.scss +++ /dev/null @@ -1,3 +0,0 @@ -.datamapper-launcher-modal { - height: 95%; -} \ No newline at end of file diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx index 1995f9d8f..88971d0ae 100644 --- a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx +++ b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx @@ -1,41 +1,39 @@ -import { Alert, Button, Modal, ModalVariant } from '@patternfly/react-core'; +/* + Copyright (C) 2024 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Alert, Button } from '@patternfly/react-core'; import { WrenchIcon } from '@patternfly/react-icons'; -import { FunctionComponent, useCallback, useContext, useState } from 'react'; +import { FunctionComponent, useCallback, useContext } from 'react'; +import { useNavigate } from 'react-router-dom'; import { IVisualizationNode } from '../../models'; -import DataMapperPage from '../../pages/DataMapper/DataMapperPage'; -import './DataMapperLauncher.scss'; -import { MetadataContext } from '../../providers'; +import { MetadataContext } from '../../providers/metadata.provider'; +import { Links } from '../../router/links.models'; export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNode }> = ({ vizNode }) => { - const [isOpen, setIsOpen] = useState(false); + const navigate = useNavigate(); const metadata = useContext(MetadataContext); - const onClose = useCallback(() => { - setIsOpen(false); - }, []); + const id = vizNode?.getComponentSchema()?.definition?.id; + + const onClick = useCallback(() => { + navigate(`${Links.DataMapper}/${id}`); + }, [navigate, id]); return metadata ? ( - <> - - - Close - , - ]} - > - - - + ) : (

    diff --git a/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx index bf4334c5e..643418517 100644 --- a/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.tsx @@ -17,7 +17,7 @@ import { FunctionComponent, memo, useEffect } from 'react'; import { Masthead, MastheadContent, Page, PageSection, PageSectionVariants } from '@patternfly/react-core'; import { ContextToolbar } from './ContextToolbar'; import './DebugLayout.scss'; -import { DataMapper } from '../DataMapper'; +import { DataMapperControl } from '../DataMapperControl'; import { useDataMapper } from '../../../hooks/useDataMapper'; import { CanvasMonitor } from './CanvasMonitor'; import { DataMapperMonitor } from './DataMapperMonitor'; @@ -43,7 +43,7 @@ export const DebugLayout: FunctionComponent = memo(function DebugLayout() { - + diff --git a/packages/ui/src/components/DataMapper/on-delete-datamapper.ts b/packages/ui/src/components/DataMapper/on-delete-datamapper.ts index 5081afb25..88d7d7e5b 100644 --- a/packages/ui/src/components/DataMapper/on-delete-datamapper.ts +++ b/packages/ui/src/components/DataMapper/on-delete-datamapper.ts @@ -1,3 +1,18 @@ +/* + Copyright (C) 2024 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ import { DataMapperMetadataService } from '../../services/datamapper-metadata.service'; import { IMetadataApi } from '../../providers'; import { IVisualizationNode } from '../../models'; diff --git a/packages/ui/src/components/Visualization/Visualization.tsx b/packages/ui/src/components/Visualization/Visualization.tsx index a95d905c1..8c9fb7ff8 100644 --- a/packages/ui/src/components/Visualization/Visualization.tsx +++ b/packages/ui/src/components/Visualization/Visualization.tsx @@ -1,10 +1,8 @@ -import { VisualizationProvider } from '@patternfly/react-topology'; -import { FunctionComponent, PropsWithChildren, ReactNode, useMemo } from 'react'; +import { FunctionComponent, PropsWithChildren, ReactNode } from 'react'; import { BaseVisualCamelEntity } from '../../models/visualization/base-visual-entity'; import { CanvasFormTabsProvider } from '../../providers'; import { ErrorBoundary } from '../ErrorBoundary'; import { Canvas } from './Canvas'; -import { ControllerService } from './Canvas/controller.service'; import { CanvasFallback } from './CanvasFallback'; import { ContextToolbar } from './ContextToolbar/ContextToolbar'; import './Visualization.scss'; @@ -16,17 +14,13 @@ interface CanvasProps { } export const Visualization: FunctionComponent> = (props) => { - const controller = useMemo(() => ControllerService.createController(), []); - return ( - -

    - - }> - } entities={props.entities} /> - - -
    - +
    + + }> + } entities={props.entities} /> + + +
    ); }; diff --git a/packages/ui/src/external/RouteVisualization/RouteVisualization.tsx b/packages/ui/src/external/RouteVisualization/RouteVisualization.tsx index 8cf0c1168..74da71922 100644 --- a/packages/ui/src/external/RouteVisualization/RouteVisualization.tsx +++ b/packages/ui/src/external/RouteVisualization/RouteVisualization.tsx @@ -1,4 +1,8 @@ -import React, { useContext, useEffect, useLayoutEffect } from 'react'; +import { VisualizationProvider } from '@patternfly/react-topology'; +import React, { useContext, useEffect, useLayoutEffect, useMemo } from 'react'; +import { Visualization } from '../../components/Visualization'; +import { ControllerService } from '../../components/Visualization/Canvas/controller.service'; +import { useReload } from '../../hooks/reload.hook'; import { CatalogLoaderProvider, EntitiesContext, @@ -8,9 +12,7 @@ import { VisibleFlowsContext, VisibleFlowsProvider, } from '../../providers'; -import { Visualization } from '../../components/Visualization'; import { EventNotifier } from '../../utils'; -import { useReload } from '../../hooks/reload.hook'; const VisibleFlowsVisualization: React.FC<{ className?: string }> = ({ className = '' }) => { const { visibleFlows, visualFlowsApi } = useContext(VisibleFlowsContext)!; @@ -26,15 +28,18 @@ const VisibleFlowsVisualization: React.FC<{ className?: string }> = ({ className const Viz: React.FC<{ catalogUrl: string; className?: string }> = ({ catalogUrl, className = '' }) => { const ReloadProvider = useReload(); + const controller = useMemo(() => ControllerService.createController(), []); return ( - - - + + + + + diff --git a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx index 7a5039e18..b967dba18 100644 --- a/packages/ui/src/multiplying-architecture/KaotoBridge.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoBridge.tsx @@ -1,5 +1,6 @@ import { ChannelType, EditorApi, StateControlCommand } from '@kie-tools-core/editor/dist/api'; import { Notification } from '@kie-tools-core/notifications/dist/api'; +import { VisualizationProvider } from '@patternfly/react-topology'; import { PropsWithChildren, forwardRef, @@ -10,8 +11,11 @@ import { useMemo, useRef, } from 'react'; -import { RenderingProvider } from '../components/RenderingAnchor/rendering.provider'; +import { NodeInteractionAddonProvider } from '../components/registers/interactions/node-interaction-addon.provider'; import { RegisterComponents } from '../components/registers/RegisterComponents'; +import { RegisterNodeInteractionAddons } from '../components/registers/RegisterNodeInteractionAddons'; +import { RenderingProvider } from '../components/RenderingAnchor/rendering.provider'; +import { ControllerService } from '../components/Visualization/Canvas/controller.service'; import { useReload } from '../hooks/reload.hook'; import { CatalogLoaderProvider, @@ -24,8 +28,6 @@ import { VisibleFlowsProvider, } from '../providers'; import { EventNotifier } from '../utils'; -import { NodeInteractionAddonProvider } from '../components/registers/interactions/node-interaction-addon.provider'; -import { RegisterNodeInteractionAddons } from '../components/registers/RegisterNodeInteractionAddons'; interface KaotoBridgeProps { /** @@ -121,6 +123,7 @@ export const KaotoBridge = forwardRef { const ReloadProvider = useReload(); + const controller = useMemo(() => ControllerService.createController(), []); const eventNotifier = EventNotifier.getInstance(); const sourceCodeApiContext = useContext(SourceCodeApiContext); const sourceCodeRef = useRef(''); @@ -226,17 +229,19 @@ export const KaotoBridge = forwardRef - - - - - - {children} - - - - - + + + + + + + {children} + + + + + + diff --git a/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx b/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx index f059bab5f..1252ee954 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditorRouter.tsx @@ -26,7 +26,7 @@ export const kaotoEditorRouter = createHashRouter([ lazy: async () => import('../pages/PipeErrorHandler'), }, { - path: Links.DataMapper, + path: `${Links.DataMapper}/:id`, lazy: async () => import('../pages/DataMapper'), }, ], diff --git a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx index 659f2af6e..ef473b980 100644 --- a/packages/ui/src/pages/DataMapper/DataMapperPage.tsx +++ b/packages/ui/src/pages/DataMapper/DataMapperPage.tsx @@ -13,104 +13,23 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { FunctionComponent, useCallback, useContext, useEffect, useState } from 'react'; -import { DataMapper } from '../../components/DataMapper/DataMapper'; -import { DataMapperProvider } from '../../providers/datamapper.provider'; -import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; -import { DocumentDefinition, DocumentInitializationModel } from '../../models/datamapper/document'; +import { useVisualizationController } from '@patternfly/react-topology'; +import { FunctionComponent } from 'react'; +import { useParams } from 'react-router-dom'; +import DataMapper from '../../components/DataMapper/DataMapper'; import { IVisualizationNode } from '../../models'; -import { EntitiesContext, MetadataContext } from '../../providers'; -import { DataMapperMetadataService } from '../../services/datamapper-metadata.service'; -import { DocumentType } from '../../models/datamapper/path'; -import { IDataMapperMetadata } from '../../models/datamapper/metadata'; -import { Loading } from '../../components/Loading'; +import { getVisualizationNodesFromGraph } from '../../utils'; -export interface IDataMapperProps { - vizNode?: IVisualizationNode; -} +export const DataMapperPage: FunctionComponent = () => { + const controller = useVisualizationController(); + const params = useParams(); -export const DataMapperPage: FunctionComponent = ({ vizNode }) => { - const entitiesContext = useContext(EntitiesContext)!; - const ctx = useContext(MetadataContext)!; - const metadataId = vizNode && DataMapperMetadataService.getDataMapperMetadataId(vizNode); - const [metadata, setMetadata] = useState(); - const [documentInitializationModel, setDocumentInitializationModel] = useState(); - const [initialXsltFile, setInitialXsltFile] = useState(); - const [isLoading, setIsLoading] = useState(true); + const vizNode = getVisualizationNodesFromGraph( + controller.getGraph(), + (node: IVisualizationNode) => node.getComponentSchema()?.definition?.id === params.id, + )[0]; - useEffect(() => { - if (!metadataId) return; - const initialize = async () => { - let meta = await ctx.getMetadata(metadataId); - if (!meta) { - meta = await DataMapperMetadataService.initializeDataMapperMetadata(entitiesContext, vizNode, ctx, metadataId); - } - setMetadata(meta); - const initModel = await DataMapperMetadataService.loadDocuments(ctx, meta); - setDocumentInitializationModel(initModel); - const mappingFile = await DataMapperMetadataService.loadMappingFile(ctx, meta); - setInitialXsltFile(mappingFile); - }; - initialize().then(() => setIsLoading(false)); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - const onUpdateDocument = useCallback( - (definition: DocumentDefinition) => { - if (!metadataId || !metadata) return; - switch (definition.documentType) { - case DocumentType.SOURCE_BODY: - DataMapperMetadataService.updateSourceBodyMetadata(ctx, metadataId, metadata, definition); - break; - case DocumentType.TARGET_BODY: - DataMapperMetadataService.updateTargetBodyMetadata(ctx, metadataId, metadata, definition); - break; - case DocumentType.PARAM: - DataMapperMetadataService.updateSourceParameterMetadata( - ctx, - metadataId, - metadata, - definition.name!, - definition, - ); - } - }, - [ctx, metadata, metadataId], - ); - - const onDeleteParameter = useCallback( - (name: string) => { - if (!metadataId || !metadata) return; - DataMapperMetadataService.deleteSourceParameterMetadata(ctx, metadataId, metadata, name); - }, - [ctx, metadata, metadataId], - ); - - const onUpdateMappings = useCallback( - (xsltFile: string) => { - if (!metadata) return; - DataMapperMetadataService.updateMappingFile(ctx, metadata, xsltFile); - }, - [ctx, metadata], - ); - - return !metadataId ? ( - <>No associated DataMapper step was provided. - ) : isLoading ? ( - - ) : ( - - - - - - ); + return ; }; export default DataMapperPage; diff --git a/packages/ui/src/router.tsx b/packages/ui/src/router.tsx index 7f19eb821..e34a020cf 100644 --- a/packages/ui/src/router.tsx +++ b/packages/ui/src/router.tsx @@ -38,7 +38,7 @@ export const router = createHashRouter([ lazy: async () => import('./pages/Settings'), }, { - path: Links.DataMapper, + path: `${Links.DataMapper}/:id`, lazy: async () => import('./pages/DataMapper'), }, ], From 4f9e3a9f8370e22a510f374befc257203bbec68e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Tue, 15 Oct 2024 15:41:15 +0200 Subject: [PATCH 398/471] chore: Remove toolbar buttons used for manual test during development MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Pupier --- .../ContextToolbar/ContextToolbar.tsx | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx b/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx index 45ff190d2..e50406a81 100644 --- a/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx +++ b/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx @@ -34,44 +34,6 @@ export const ContextToolbar: FunctionComponent = () => { ); } - // TODO: Remove this block when the metadata API is implemented - if (isDefined(metadataApi)) { - toolbarItems.push( - - - , - ); - toolbarItems.push( - - - , - ); - toolbarItems.push( - - - , - ); - toolbarItems.push( - - - , - ); - } - return ( From 022a66fb06c72a62e36e12eb45a92b2f1a55298e Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 15 Oct 2024 11:10:37 -0400 Subject: [PATCH 399/471] chore(DataMapper): fix build --- .../Visualization/ContextToolbar/ContextToolbar.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx b/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx index e50406a81..3c83806c1 100644 --- a/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx +++ b/packages/ui/src/components/Visualization/ContextToolbar/ContextToolbar.tsx @@ -1,9 +1,7 @@ -import { Button, Toolbar, ToolbarContent, ToolbarItem } from '@patternfly/react-core'; +import { Toolbar, ToolbarContent, ToolbarItem } from '@patternfly/react-core'; import { FunctionComponent, useContext } from 'react'; import { sourceSchemaConfig } from '../../../models/camel'; -import { MetadataContext } from '../../../providers'; import { EntitiesContext } from '../../../providers/entities.provider'; -import { isDefined } from '../../../utils'; import './ContextToolbar.scss'; import { DSLSelector } from './DSLSelector/DSLSelector'; import { FlowClipboard } from './FlowClipboard/FlowClipboard'; @@ -15,7 +13,6 @@ import { RuntimeSelector } from './RuntimeSelector/RuntimeSelector'; export const ContextToolbar: FunctionComponent = () => { const { currentSchemaType } = useContext(EntitiesContext)!; const isMultipleRoutes = sourceSchemaConfig.config[currentSchemaType].multipleRoute; - const metadataApi = useContext(MetadataContext); const toolbarItems: JSX.Element[] = [ From 7df7175c8dc5aafb05c01f0e01c6030d4eb3d9ed Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 15 Oct 2024 16:22:25 -0400 Subject: [PATCH 400/471] fix(DataMapper): CSS adjustments: saving some horizontal space and avoid a horizontal scrollbar on Source panel Fixes: #87 --- .../ui/src/components/Document/Document.scss | 44 ++++++++++ .../ui/src/components/Document/Parameters.tsx | 82 +++++++++++-------- .../components/Document/SourceDocument.tsx | 8 +- .../components/Document/TargetDocument.tsx | 8 +- .../Document/actions/DocumentActions.tsx | 1 + .../Document/actions/TargetNodeActions.tsx | 1 + .../ui/src/components/View/SourcePanel.tsx | 16 +++- .../src/components/View/SourceTargetView.scss | 18 ++++ .../src/components/View/SourceTargetView.tsx | 11 ++- 9 files changed, 141 insertions(+), 48 deletions(-) diff --git a/packages/ui/src/components/Document/Document.scss b/packages/ui/src/components/Document/Document.scss index 72ce31879..a608e5aad 100644 --- a/packages/ui/src/components/Document/Document.scss +++ b/packages/ui/src/components/Document/Document.scss @@ -25,3 +25,47 @@ img { .toggle-icon-collapsed { transform: rotate(-90deg); } + +.truncate { + --pf-v5-c-truncate--MinWidth: 0; +} + +.pf-v5-c-action-list__group { + padding-left: 0.5rem; + padding-right: 0.5rem; + + .pf-v5-c-button { + --pf-v5-c-button--PaddingLeft: 0.5rem; + --pf-v5-c-button--PaddingRight: 0.5rem; + } + + .pf-v5-c-menu-toggle.pf-m-plain:not(.pf-m-text) { + --pf-v5-c-menu-toggle--PaddingLeft: 0.5rem; + --pf-v5-c-menu-toggle--PaddingRight: 0.5rem; + } +} + +.parameter-card { + .pf-v5-c-card__header { + padding-block-start: 0; + padding-block-end: 0; + padding-inline-start: 0; + padding-inline-end: 0; + } +} + +.parameter-actions { + padding-left: 0.5rem; + padding-right: 0.5rem; + --pf-v5-c-action-list--child--spacer-base: 0.5rem; + --pf-v5-c-action-list--group--spacer-base: 0.5rem; + .pf-v5-c-button { + --pf-v5-c-button--PaddingLeft: 0.5rem; + --pf-v5-c-button--PaddingRight: 0.5rem; + } +} + +.node-split { + width: 100%; + --pf-v5-l-stack--m-gutter--Gap: 0.5rem; +} diff --git a/packages/ui/src/components/Document/Parameters.tsx b/packages/ui/src/components/Document/Parameters.tsx index be88511f4..b7ebb9de7 100644 --- a/packages/ui/src/components/Document/Parameters.tsx +++ b/packages/ui/src/components/Document/Parameters.tsx @@ -1,5 +1,6 @@ import { ActionList, + ActionListGroup, ActionListItem, Button, Card, @@ -22,6 +23,7 @@ import { NodeContainer } from './NodeContainer'; import { NodeReference } from '../../providers/datamapper-canvas.provider'; import { DocumentType } from '../../models/datamapper/path'; import { SourceDocument } from './SourceDocument'; +import './Document.scss'; type AddNewParameterPlaceholderProps = { onComplete: () => void; @@ -56,39 +58,43 @@ const AddNewParameterPlaceholder: FunctionComponent - - setNewParameterName(text)} - placeholder="parameter name" - /> - - - - - - - + + + + setNewParameterName(text)} + placeholder="parameter name" + /> + + + + + + + + + + ); }; @@ -132,7 +138,7 @@ export const Parameters: FunctionComponent = ({ isReadOnly }) = const parametersHeaderActions = useMemo(() => { return ( - + {!isReadOnly && ( Add a parameter
    }> @@ -152,7 +158,13 @@ export const Parameters: FunctionComponent = ({ isReadOnly }) = }, [handleAddNewParameter, isReadOnly]); return ( - + = ({ nodeD const nodeTitle = nodeData instanceof MappingNodeData ? ( ) : isDocument ? ( - <Truncate content={nodeData.title ?? ''} /> + <Truncate content={nodeData.title ?? ''} className="truncate" /> ) : ( - + ); return ( @@ -77,7 +77,7 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD className={isDocument ? 'node-header__document' : 'node-header'} onClick={hasChildren ? onClick : undefined} > - + {hasChildren && } diff --git a/packages/ui/src/components/Document/TargetDocument.tsx b/packages/ui/src/components/Document/TargetDocument.tsx index 5643daa25..b23fc9193 100644 --- a/packages/ui/src/components/Document/TargetDocument.tsx +++ b/packages/ui/src/components/Document/TargetDocument.tsx @@ -65,14 +65,14 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData }) const nodeTitle = nodeData instanceof MappingNodeData ? ( ) : isDocument ? ( - <Truncate content={nodeData.title ?? ''} /> + <Truncate content={nodeData.title ?? ''} className="truncate" /> ) : ( - + ); return ( @@ -83,7 +83,7 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData })
    - + {hasChildren && } diff --git a/packages/ui/src/components/Document/actions/DocumentActions.tsx b/packages/ui/src/components/Document/actions/DocumentActions.tsx index 4edfd7b62..16e943d3c 100644 --- a/packages/ui/src/components/Document/actions/DocumentActions.tsx +++ b/packages/ui/src/components/Document/actions/DocumentActions.tsx @@ -5,6 +5,7 @@ import { DocumentType } from '../../../models/datamapper/path'; import { DocumentNodeData } from '../../../models/datamapper/visualization'; import { DeleteParameterButton } from './DeleteParameterButton'; import { FunctionComponent, MouseEvent, useCallback } from 'react'; +import '../Document.scss'; type DocumentActionsProps = { nodeData: DocumentNodeData; diff --git a/packages/ui/src/components/Document/actions/TargetNodeActions.tsx b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx index 454dfbe3a..628f6fdf1 100644 --- a/packages/ui/src/components/Document/actions/TargetNodeActions.tsx +++ b/packages/ui/src/components/Document/actions/TargetNodeActions.tsx @@ -6,6 +6,7 @@ import { ConditionMenuAction } from './ConditionMenuAction'; import { XPathEditorAction } from './XPathEditorAction'; import { TargetNodeData } from '../../../models/datamapper/visualization'; import { VisualizationService } from '../../../services/visualization.service'; +import '../Document.scss'; type TargetNodeActionsProps = { nodeData: TargetNodeData; diff --git a/packages/ui/src/components/View/SourcePanel.tsx b/packages/ui/src/components/View/SourcePanel.tsx index 48f216c7b..9ce10180c 100644 --- a/packages/ui/src/components/View/SourcePanel.tsx +++ b/packages/ui/src/components/View/SourcePanel.tsx @@ -1,5 +1,6 @@ import { FunctionComponent } from 'react'; import { + Divider, Panel, PanelHeader, PanelMain, @@ -8,11 +9,13 @@ import { Text, TextContent, TextVariants, + Truncate, } from '@patternfly/react-core'; import { Parameters } from '../Document/Parameters'; import { useDataMapper } from '../../hooks/useDataMapper'; import { useCanvas } from '../../hooks/useCanvas'; import { SourceDocument } from '../Document/SourceDocument'; +import './SourceTargetView.scss'; type SourcePanelProps = { isReadOnly?: boolean; @@ -26,16 +29,23 @@ export const SourcePanel: FunctionComponent = ({ isReadOnly = - Source + + + + + + -   - + + + + diff --git a/packages/ui/src/components/View/SourceTargetView.scss b/packages/ui/src/components/View/SourceTargetView.scss index 05f2cb57f..5a8123160 100644 --- a/packages/ui/src/components/View/SourceTargetView.scss +++ b/packages/ui/src/components/View/SourceTargetView.scss @@ -1,8 +1,10 @@ .source-target-view { height: 100%; + overflow-x: auto; &__source-split { width: 30%; + min-width: 300px; } &__source-panel { @@ -11,24 +13,40 @@ &__source-panel-main { height: 100%; + max-height: 100%; + overflow-y: auto; + overflow-x: clip; } &__line-blank { width: 10%; + min-width: 1px; + overflow-x: clip; } &__target-split { width: 60%; + min-width: 300px; } &__target-panel { display: flex; flex-flow: column; height: 100%; + min-width: 400px; } &__target-panel-main { height: 100%; max-height: 100%; } + + &__truncate { + --pf-v5-c-truncate--MinWidth: 0; + } + + &__divider { + padding-bottom: 0.5rem; + } } + diff --git a/packages/ui/src/components/View/SourceTargetView.tsx b/packages/ui/src/components/View/SourceTargetView.tsx index ceb4ce79b..04b7e6356 100644 --- a/packages/ui/src/components/View/SourceTargetView.tsx +++ b/packages/ui/src/components/View/SourceTargetView.tsx @@ -1,4 +1,5 @@ import { + Divider, Panel, PanelHeader, PanelMain, @@ -9,6 +10,7 @@ import { Text, TextContent, TextVariants, + Truncate, } from '@patternfly/react-core'; import { FunctionComponent, useEffect } from 'react'; import { useDataMapper } from '../../hooks/useDataMapper'; @@ -28,7 +30,7 @@ export const SourceTargetView: FunctionComponent = () => { }, [setDefaultHandler]); return ( - + @@ -37,11 +39,16 @@ export const SourceTargetView: FunctionComponent = () => { - Target + + + + + + From 9df5cd1dba413be407fc1d1722f570aef2255dec Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Mon, 21 Oct 2024 17:07:59 -0400 Subject: [PATCH 401/471] fix(DataMapper): The element shown as a primitive if schema extension is used Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/106 Added: - Named ComplexType declaration support - Element ref support - Recursive schema support by caching type fragment and adopt it on-demand of rendering --- .../DataMapper/debug/DebugLayout.test.tsx | 4 +- .../Document/SourceDocument.test.tsx | 18 +- .../components/Document/SourceDocument.tsx | 37 +- .../components/Document/TargetDocument.tsx | 17 +- packages/ui/src/models/datamapper/document.ts | 26 + .../datamapper-canvas.provider.test.tsx | 2 +- .../ui/src/providers/datamapper.provider.tsx | 9 + packages/ui/src/services/document.service.ts | 26 + .../ui/src/services/visualization.service.ts | 2 + .../xml-schema-document.service.test.ts | 30 +- .../services/xml-schema-document.service.ts | 139 +- packages/ui/src/stubs/data-mapper.ts | 11 + .../src/XmlSchemaCollection.test.ts | 28 + packages/xml-schema-ts/src/index.ts | 7 + .../test-resources/NamedTypes.xsd | 14 + .../test-resources/camel-spring.xsd | 18474 ++++++++++++++++ 16 files changed, 18818 insertions(+), 26 deletions(-) create mode 100644 packages/xml-schema-ts/test-resources/NamedTypes.xsd create mode 100644 packages/xml-schema-ts/test-resources/camel-spring.xsd diff --git a/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx b/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx index b9dd9ae4e..74a9a37a5 100644 --- a/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx +++ b/packages/ui/src/components/DataMapper/debug/DebugLayout.test.tsx @@ -57,8 +57,8 @@ describe('DebugLayout', () => { ); await screen.findAllByText('ShipOrder'); const targetNodes = screen.getAllByTestId(/node-target-.*/); - expect(targetNodes.length).toBeGreaterThan(10); - expect(mappingLinks.length).toBeGreaterThan(10); + expect(targetNodes.length).toEqual(6); + expect(mappingLinks.length).toEqual(11); const nodeRefsLog = mockLog.mock.calls.filter((call) => call[0].startsWith('Node References: [')); expect(nodeRefsLog.length).toBeGreaterThan(0); }); diff --git a/packages/ui/src/components/Document/SourceDocument.test.tsx b/packages/ui/src/components/Document/SourceDocument.test.tsx index 7a2e6f080..fd518a797 100644 --- a/packages/ui/src/components/Document/SourceDocument.test.tsx +++ b/packages/ui/src/components/Document/SourceDocument.test.tsx @@ -1,5 +1,5 @@ import { SourceDocument } from './SourceDocument'; -import { render, screen } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import { DataMapperProvider } from '../../providers/datamapper.provider'; import { DataMapperCanvasProvider } from '../../providers/datamapper-canvas.provider'; import { BODY_DOCUMENT_ID, PrimitiveDocument } from '../../models/datamapper/document'; @@ -30,4 +30,20 @@ describe('SourceDocument', () => { ); expect(await screen.findByText('OrderPerson')).toBeTruthy(); }); + + it('should render camel-spring.xsd doc till 2nd level', async () => { + const document = TestUtil.createCamelSpringXsdSourceDoc(); + render( + + + + + , + ); + await waitFor(async () => { + const aggregates = await screen.findAllByText('aggregate'); + expect(aggregates.length).toEqual(2); + }); + expect(await screen.findByText('correlationExpression')).toBeTruthy(); + }, 10000); }); diff --git a/packages/ui/src/components/Document/SourceDocument.tsx b/packages/ui/src/components/Document/SourceDocument.tsx index f0a2a9302..bd3d573ab 100644 --- a/packages/ui/src/components/Document/SourceDocument.tsx +++ b/packages/ui/src/components/Document/SourceDocument.tsx @@ -9,6 +9,7 @@ import { NodeReference } from '../../providers/datamapper-canvas.provider'; import { useCanvas } from '../../hooks/useCanvas'; import { VisualizationService } from '../../services/visualization.service'; import './Document.scss'; +import { useDataMapper } from '../../hooks/useDataMapper'; type DocumentProps = { document: IDocument; @@ -16,18 +17,33 @@ type DocumentProps = { }; export const SourceDocument: FunctionComponent = ({ document, isReadOnly }) => { + const { initialExpandedFieldRank } = useDataMapper(); const nodeData = new DocumentNodeData(document); - return ; + return ( + + ); }; type DocumentNodeProps = { nodeData: NodeData; isReadOnly: boolean; + initialExpandedRank: number; + rank: number; }; -export const SourceDocumentNode: FunctionComponent = ({ nodeData, isReadOnly }) => { +export const SourceDocumentNode: FunctionComponent = ({ + nodeData, + isReadOnly, + initialExpandedRank, + rank, +}) => { const { getNodeReference, reloadNodeReferences, setNodeReference } = useCanvas(); - const [collapsed, setCollapsed] = useState(false); + const [collapsed, setCollapsed] = useState(rank > initialExpandedRank); const onClick = useCallback(() => { setCollapsed(!collapsed); @@ -35,8 +51,11 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD }, [collapsed, reloadNodeReferences]); const isDocument = nodeData instanceof DocumentNodeData; - const children = VisualizationService.generateNodeDataChildren(nodeData); - const hasChildren = children.length > 0; + const hasChildren = + isDocument || + (nodeData instanceof FieldNodeData && + (nodeData.field.fields.length > 0 || nodeData.field.namedTypeFragmentRefs.length > 0)); + const children = collapsed ? [] : VisualizationService.generateNodeDataChildren(nodeData); const isCollectionField = nodeData instanceof FieldNodeData && nodeData.field.maxOccurs > 1; const isAttributeField = nodeData instanceof FieldNodeData && nodeData.field?.isAttribute; @@ -102,7 +121,13 @@ export const SourceDocumentNode: FunctionComponent = ({ nodeD {hasChildren && !collapsed && (
    {children.map((child) => ( - + ))}
    )} diff --git a/packages/ui/src/components/Document/TargetDocument.tsx b/packages/ui/src/components/Document/TargetDocument.tsx index b23fc9193..e52848037 100644 --- a/packages/ui/src/components/Document/TargetDocument.tsx +++ b/packages/ui/src/components/Document/TargetDocument.tsx @@ -17,19 +17,21 @@ type DocumentProps = { }; export const TargetDocument: FunctionComponent = ({ document }) => { - const { mappingTree } = useDataMapper(); + const { initialExpandedFieldRank, mappingTree } = useDataMapper(); const nodeData = new TargetDocumentNodeData(document, mappingTree); - return ; + return ; }; type DocumentNodeProps = { nodeData: TargetNodeData; + initialExpandedRank: number; + rank: number; }; -const TargetDocumentNode: FunctionComponent = ({ nodeData }) => { +const TargetDocumentNode: FunctionComponent = ({ nodeData, initialExpandedRank, rank }) => { const { getNodeReference, reloadNodeReferences, setNodeReference } = useCanvas(); - const [collapsed, setCollapsed] = useState(false); + const [collapsed, setCollapsed] = useState(rank > initialExpandedRank); const onClick = useCallback(() => { setCollapsed(!collapsed); @@ -113,7 +115,12 @@ const TargetDocumentNode: FunctionComponent = ({ nodeData }) {hasChildren && !collapsed && (
    {children.map((child) => ( - + ))}
    )} diff --git a/packages/ui/src/models/datamapper/document.ts b/packages/ui/src/models/datamapper/document.ts index 0619c2cea..d3468f58b 100644 --- a/packages/ui/src/models/datamapper/document.ts +++ b/packages/ui/src/models/datamapper/document.ts @@ -30,6 +30,13 @@ export interface IField { maxOccurs: number; namespacePrefix: string | null; namespaceURI: string | null; + namedTypeFragmentRefs: string[]; + adopt: (parent: IField) => IField; +} + +export interface ITypeFragment { + fields: IField[]; + namedTypeFragmentRefs: string[]; } export interface IDocument { @@ -39,6 +46,7 @@ export interface IDocument { schemaType: string; fields: IField[]; path: NodePath; + namedTypeFragments: Record; } export abstract class BaseDocument implements IDocument { @@ -52,6 +60,7 @@ export abstract class BaseDocument implements IDocument { name: string = ''; schemaType = ''; path: NodePath; + namedTypeFragments: Record = {}; } export class PrimitiveDocument extends BaseDocument implements IField { @@ -73,6 +82,8 @@ export class PrimitiveDocument extends BaseDocument implements IField { type = Types.AnyType; path: NodePath; id: string; + namedTypeFragmentRefs = []; + adopt = () => this; } export class BaseField implements IField { @@ -95,6 +106,21 @@ export class BaseField implements IField { defaultValue: string | null = null; namespacePrefix: string | null = null; namespaceURI: string | null = null; + namedTypeFragmentRefs: string[] = []; + adopt = (parent: IField) => { + const adopted = new BaseField(parent, parent.ownerDocument, this.name); + adopted.isAttribute = this.isAttribute; + adopted.type = this.type; + adopted.minOccurs = this.minOccurs; + adopted.maxOccurs = this.maxOccurs; + adopted.defaultValue = this.defaultValue; + adopted.namespacePrefix = this.namespacePrefix; + adopted.namespaceURI = this.namespaceURI; + adopted.namedTypeFragmentRefs = this.namedTypeFragmentRefs; + adopted.fields = this.fields.map((child) => child.adopt(adopted)); + parent.fields.push(adopted); + return adopted; + }; } export enum DocumentDefinitionType { diff --git a/packages/ui/src/providers/datamapper-canvas.provider.test.tsx b/packages/ui/src/providers/datamapper-canvas.provider.test.tsx index c98e6bc89..ec9975fe9 100644 --- a/packages/ui/src/providers/datamapper-canvas.provider.test.tsx +++ b/packages/ui/src/providers/datamapper-canvas.provider.test.tsx @@ -71,7 +71,7 @@ describe('CanvasProvider', () => { , ); await screen.findAllByText('ShipOrder'); - expect(afterNodePaths.length).toBeGreaterThan(10); + expect(afterNodePaths.length).toEqual(9); expect(beforeNodePaths.length).toBeGreaterThan(afterNodePaths.length); }); diff --git a/packages/ui/src/providers/datamapper.provider.tsx b/packages/ui/src/providers/datamapper.provider.tsx index 97c3f4fdb..75cba2502 100644 --- a/packages/ui/src/providers/datamapper.provider.tsx +++ b/packages/ui/src/providers/datamapper.provider.tsx @@ -38,6 +38,9 @@ export interface IDataMapperContext { activeView: CanvasView; setActiveView(view: CanvasView): void; + initialExpandedFieldRank: number; + setInitialExpandedFieldRank: (rank: number) => void; + sourceParameterMap: Map; refreshSourceParameters: () => void; deleteSourceParameter: (name: string) => void; @@ -64,6 +67,7 @@ export interface IDataMapperContext { export const DataMapperContext = createContext(null); type DataMapperProviderProps = PropsWithChildren & { + defaultInitialExpandedFieldRank?: number; documentInitializationModel?: DocumentInitializationModel; onUpdateDocument?: (definition: DocumentDefinition) => void; onDeleteParameter?: (name: string) => void; @@ -72,6 +76,7 @@ type DataMapperProviderProps = PropsWithChildren & { }; export const DataMapperProvider: FunctionComponent = ({ + defaultInitialExpandedFieldRank = 1, documentInitializationModel, onUpdateDocument, onDeleteParameter, @@ -82,6 +87,7 @@ export const DataMapperProvider: FunctionComponent = ({ const [debug, setDebug] = useState(false); const [isLoading, setIsLoading] = useState(true); const [activeView, setActiveView] = useState(CanvasView.SOURCE_TARGET); + const [initialExpandedFieldRank, setInitialExpandedFieldRank] = useState(defaultInitialExpandedFieldRank); const [sourceParameterMap, setSourceParameterMap] = useState>(new Map()); const [isSourceParametersExpanded, setSourceParametersExpanded] = useState(true); @@ -224,6 +230,8 @@ export const DataMapperProvider: FunctionComponent = ({ setIsLoading, activeView, setActiveView, + initialExpandedFieldRank, + setInitialExpandedFieldRank, sourceParameterMap, isSourceParametersExpanded, setSourceParametersExpanded, @@ -245,6 +253,7 @@ export const DataMapperProvider: FunctionComponent = ({ }, [ isLoading, activeView, + initialExpandedFieldRank, sourceParameterMap, isSourceParametersExpanded, refreshSourceParameters, diff --git a/packages/ui/src/services/document.service.ts b/packages/ui/src/services/document.service.ts index c154fcf45..fff7278d3 100644 --- a/packages/ui/src/services/document.service.ts +++ b/packages/ui/src/services/document.service.ts @@ -5,6 +5,8 @@ import { DocumentInitializationModel, IDocument, IField, + IParentType, + ITypeFragment, PrimitiveDocument, } from '../models/datamapper/document'; import { DocumentType } from '../models/datamapper/path'; @@ -124,4 +126,28 @@ export class DocumentService { if (nsPair) answer += nsPair[0] + ':'; return answer + field.name; } + + static getOwnerDocument(docOrField: IParentType): DocumentType { + return ('ownerDocument' in docOrField ? docOrField.ownerDocument : docOrField) as DocumentType; + } + + static resolveTypeFragment(field: IField) { + if (field.namedTypeFragmentRefs.length === 0) return field; + const doc = DocumentService.getOwnerDocument(field); + field.namedTypeFragmentRefs.forEach((ref) => { + const fragment = doc.namedTypeFragments[ref]; + DocumentService.adoptTypeFragment(field, fragment); + }); + field.namedTypeFragmentRefs = []; + return field; + } + + private static adoptTypeFragment(field: IField, fragment: ITypeFragment) { + const doc = DocumentService.getOwnerDocument(field); + fragment.fields.forEach((f) => f.adopt(field)); + fragment.namedTypeFragmentRefs.forEach((childRef) => { + const childFragment = doc.namedTypeFragments[childRef]; + DocumentService.adoptTypeFragment(field, childFragment); + }); + } } diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index 42372b532..5186a1d0a 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -23,6 +23,7 @@ import { } from '../models/datamapper/mapping'; import { IField, PrimitiveDocument } from '../models/datamapper/document'; import { MappingService } from './mapping.service'; +import { DocumentService } from './document.service'; type MappingNodePairType = { sourceNode?: SourceNodeDataType; @@ -95,6 +96,7 @@ export class VisualizationService { .map((m) => VisualizationService.createNodeDataFromMappingItem(parent, m)) : []; } else if (parent instanceof FieldNodeData) { + DocumentService.resolveTypeFragment(parent.field); return VisualizationService.doGenerateNodeDataFromFields( parent, parent.field.fields, diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index 943470bf9..8a886891b 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -3,7 +3,7 @@ import { BODY_DOCUMENT_ID } from '../models/datamapper/document'; import { DocumentType } from '../models/datamapper/path'; import { Types } from '../models/datamapper/types'; -import { shipOrderXsd, testDocumentXsd } from '../stubs/data-mapper'; +import { camelSpringXsd, shipOrderXsd, testDocumentXsd } from '../stubs/data-mapper'; describe('XmlSchemaDocumentService', () => { it('should parse ShipOrder XML schema', () => { @@ -37,6 +37,34 @@ describe('XmlSchemaDocumentService', () => { expect(fields.length > 0).toBeTruthy(); }); + it('should parse camel-spring.xsd XML schema', () => { + const document = XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.TARGET_BODY, + BODY_DOCUMENT_ID, + camelSpringXsd, + ); + expect(document).toBeDefined(); + expect(document.fields.length).toEqual(1); + const aggregate = document.fields[0]; + expect(aggregate.fields.length).toBe(0); + expect(aggregate.namedTypeFragmentRefs.length).toEqual(1); + expect(aggregate.namedTypeFragmentRefs[0]).toEqual('{http://camel.apache.org/schema/spring}aggregateDefinition'); + const aggregateDef = document.namedTypeFragments[aggregate.namedTypeFragmentRefs[0]]; + expect(aggregateDef.fields.length).toEqual(100); + expect(aggregateDef.namedTypeFragmentRefs[0]).toEqual('{http://camel.apache.org/schema/spring}output'); + const outputDef = document.namedTypeFragments[aggregateDef.namedTypeFragmentRefs[0]]; + expect(outputDef.fields.length).toEqual(0); + expect(outputDef.namedTypeFragmentRefs[0]).toEqual('{http://camel.apache.org/schema/spring}processorDefinition'); + const processorDef = document.namedTypeFragments[outputDef.namedTypeFragmentRefs[0]]; + expect(processorDef.fields.length).toEqual(2); + expect(processorDef.namedTypeFragmentRefs[0]).toEqual( + '{http://camel.apache.org/schema/spring}optionalIdentifiedDefinition', + ); + const optionalIdentifiedDef = document.namedTypeFragments[processorDef.namedTypeFragmentRefs[0]]; + expect(optionalIdentifiedDef.fields.length).toEqual(3); + expect(optionalIdentifiedDef.namedTypeFragmentRefs.length).toEqual(0); + }); + it('should create XML Schema Document', () => { const doc = XmlSchemaDocumentService.createXmlSchemaDocument( DocumentType.SOURCE_BODY, diff --git a/packages/ui/src/services/xml-schema-document.service.ts b/packages/ui/src/services/xml-schema-document.service.ts index 577b38c35..570303c9d 100644 --- a/packages/ui/src/services/xml-schema-document.service.ts +++ b/packages/ui/src/services/xml-schema-document.service.ts @@ -11,7 +11,10 @@ import { XmlSchemaChoice, XmlSchemaChoiceMember, XmlSchemaCollection, + XmlSchemaComplexContentExtension, + XmlSchemaComplexContentRestriction, XmlSchemaComplexType, + XmlSchemaContentModel, XmlSchemaElement, XmlSchemaGroup, XmlSchemaGroupParticle, @@ -20,16 +23,25 @@ import { XmlSchemaRef, XmlSchemaSequence, XmlSchemaSequenceMember, + XmlSchemaSimpleContentExtension, + XmlSchemaSimpleContentRestriction, XmlSchemaSimpleType, + XmlSchemaType, XmlSchemaUse, } from '@kaoto/xml-schema-ts'; -import { BaseDocument, BaseField } from '../models/datamapper/document'; +import { BaseDocument, BaseField, ITypeFragment } from '../models/datamapper/document'; import { Types } from '../models/datamapper/types'; import { DocumentType } from '../models/datamapper/path'; +import { DocumentService } from './document.service'; + +export interface XmlSchemaTypeFragment extends ITypeFragment { + fields: XmlSchemaField[]; +} export class XmlSchemaDocument extends BaseDocument { rootElement: XmlSchemaElement; fields: XmlSchemaField[] = []; + namedTypeFragments: Record = {}; constructor( public xmlSchema: XmlSchema, @@ -60,7 +72,7 @@ export class XmlSchemaField extends BaseField { public name: string, public isAttribute: boolean, ) { - super(parent, parent instanceof XmlSchemaDocument ? parent : (parent as XmlSchemaField).ownerDocument, name); + super(parent, DocumentService.getOwnerDocument(parent), name); } } @@ -87,15 +99,28 @@ export class XmlSchemaDocumentService { */ static populateElement(parent: XmlSchemaParentType, fields: XmlSchemaField[], element: XmlSchemaElement) { const name = element.getWireName()!.getLocalPart()!; + const refTarget = element.getRef().getTarget(); + const resolvedElement = refTarget ? refTarget : element; const field: XmlSchemaField = new XmlSchemaField(parent, name, false); - field.namespaceURI = element.getWireName()!.getNamespaceURI(); - field.namespacePrefix = element.getWireName()!.getPrefix(); - field.defaultValue = element.defaultValue || element.fixedValue; - field.minOccurs = element.getMinOccurs(); - field.maxOccurs = element.getMaxOccurs(); + field.namespaceURI = resolvedElement.getWireName()!.getNamespaceURI(); + field.namespacePrefix = resolvedElement.getWireName()!.getPrefix(); + field.defaultValue = resolvedElement.defaultValue || resolvedElement.fixedValue; + field.minOccurs = resolvedElement.getMinOccurs(); + field.maxOccurs = resolvedElement.getMaxOccurs(); fields.push(field); - const schemaType = element.getSchemaType(); + const ownerDoc = DocumentService.getOwnerDocument(parent); + const cachedTypeFragments = ownerDoc.namedTypeFragments; + XmlSchemaDocumentService.populateSchemaType(cachedTypeFragments, field, resolvedElement.getSchemaType()); + } + + private static populateSchemaType( + cachedTypeFragments: Record, + field: XmlSchemaField, + schemaType: XmlSchemaType | null, + parentTypeFragment?: XmlSchemaTypeFragment, + ) { + if (!schemaType) return; if (schemaType instanceof XmlSchemaSimpleType) { const simple = schemaType as XmlSchemaSimpleType; field.type = Types[simple.getName() as keyof typeof Types] || Types.AnyType; @@ -104,11 +129,32 @@ export class XmlSchemaDocumentService { field.type = Types.Container; if (schemaType instanceof XmlSchemaComplexType) { const complex = schemaType as XmlSchemaComplexType; + const typeQName = complex.getQName(); + const children: XmlSchemaField[] = []; + const typeFragment: XmlSchemaTypeFragment = { fields: children, namedTypeFragmentRefs: [] }; + if (typeQName) { + parentTypeFragment + ? parentTypeFragment.namedTypeFragmentRefs.push(typeQName.toString()) + : field.namedTypeFragmentRefs.push(typeQName.toString()); + const cached = typeQName && cachedTypeFragments[typeQName.toString()]; + if (cached) return; + cachedTypeFragments[typeQName.toString()] = typeFragment; + } else { + field.fields = children; + } + + XmlSchemaDocumentService.populateContentModel( + cachedTypeFragments, + field, + children, + complex.getContentModel(), + typeFragment, + ); const attributes: XmlSchemaAttributeOrGroupRef[] = complex.getAttributes(); attributes.forEach((attr) => { - XmlSchemaDocumentService.populateAttributeOrGroupRef(field, field.fields, attr); + XmlSchemaDocumentService.populateAttributeOrGroupRef(field, children, attr); }); - XmlSchemaDocumentService.populateParticle(field, field.fields, complex.getParticle()); + XmlSchemaDocumentService.populateParticle(field, children, complex.getParticle()); } } @@ -287,4 +333,77 @@ export class XmlSchemaDocumentService { private static populateGroup(parent: XmlSchemaParentType, fields: XmlSchemaField[], group: XmlSchemaGroup) { XmlSchemaDocumentService.populateParticle(parent, fields, group.getParticle()); } + + private static populateContentModel( + cachedTypeFragments: Record, + parent: XmlSchemaField, + fields: XmlSchemaField[], + contentModel: XmlSchemaContentModel | null, + parentTypeFragment?: XmlSchemaTypeFragment, + ) { + if (!contentModel) return; + const content = contentModel.getContent(); + if (content instanceof XmlSchemaSimpleContentExtension) { + XmlSchemaDocumentService.populateSimpleContentExtension(parent, fields, content); + } else if (content instanceof XmlSchemaSimpleContentRestriction) { + XmlSchemaDocumentService.populateSimpleContentRestriction(parent, fields, content); + } else if (content instanceof XmlSchemaComplexContentExtension) { + XmlSchemaDocumentService.populateComplexContentExtension( + cachedTypeFragments, + parent, + fields, + content, + parentTypeFragment, + ); + } else if (content instanceof XmlSchemaComplexContentRestriction) { + XmlSchemaDocumentService.populateComplexContentRestriction(parent, fields, content); + } + } + + private static populateSimpleContentExtension( + parent: XmlSchemaField, + fields: XmlSchemaField[], + extension: XmlSchemaSimpleContentExtension, + ) { + const attributes = extension.getAttributes(); + attributes.forEach((attr) => { + XmlSchemaDocumentService.populateAttributeOrGroupRef(parent, fields, attr); + }); + } + + private static populateSimpleContentRestriction( + _parent: XmlSchemaField, + _fields: XmlSchemaField[], + _restriction: XmlSchemaSimpleContentRestriction, + ) { + // TODO restriction support + } + + private static populateComplexContentExtension( + cachedTypeFragments: Record, + parent: XmlSchemaField, + fields: XmlSchemaField[], + extension: XmlSchemaComplexContentExtension, + parentTypeFragment?: XmlSchemaTypeFragment, + ) { + const baseTypeName = extension.getBaseTypeName(); + const doc = DocumentService.getOwnerDocument(parent); + const baseType = baseTypeName ? doc.xmlSchema.getSchemaTypes().get(baseTypeName) : undefined; + if (baseType) { + XmlSchemaDocumentService.populateSchemaType(cachedTypeFragments, parent, baseType, parentTypeFragment); + } + const attributes = extension.getAttributes(); + attributes.forEach((attr) => { + XmlSchemaDocumentService.populateAttributeOrGroupRef(parent, fields, attr); + }); + XmlSchemaDocumentService.populateParticle(parent, fields, extension.getParticle()); + } + + private static populateComplexContentRestriction( + _parent: XmlSchemaField, + _fields: XmlSchemaField[], + _restriction: XmlSchemaComplexContentRestriction, + ) { + // TODO restriction support + } } diff --git a/packages/ui/src/stubs/data-mapper.ts b/packages/ui/src/stubs/data-mapper.ts index 4d3754704..eafdf50db 100644 --- a/packages/ui/src/stubs/data-mapper.ts +++ b/packages/ui/src/stubs/data-mapper.ts @@ -26,6 +26,9 @@ export const testDocumentXsd = fs export const noTopElementXsd = fs .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/NoTopElement.xsd') .toString(); +export const camelSpringXsd = fs + .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/camel-spring.xsd') + .toString(); export const shipOrderToShipOrderXslt = fs .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') .toString(); @@ -35,6 +38,14 @@ export class TestUtil { return XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.SOURCE_BODY, 'ShipOrder.xsd', shipOrderXsd); } + static createCamelSpringXsdSourceDoc() { + return XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.SOURCE_BODY, + 'camel-spring.xsd', + camelSpringXsd, + ); + } + static createTargetOrderDoc() { return XmlSchemaDocumentService.createXmlSchemaDocument(DocumentType.TARGET_BODY, 'ShipOrder.xsd', shipOrderXsd); } diff --git a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts index cde28af8f..d3dbe30a0 100644 --- a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts +++ b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts @@ -12,6 +12,8 @@ import { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; describe('XmlSchemaCollection', () => { const orderXsd = fs.readFileSync(__dirname + '/../test-resources/ShipOrder.xsd').toString(); const testXsd = fs.readFileSync(__dirname + '/../test-resources/TestDocument.xsd').toString(); + const namedTypesXsd = fs.readFileSync(__dirname + '/../test-resources/NamedTypes.xsd').toString(); + const camelSpringXsd = fs.readFileSync(__dirname + '/../test-resources/camel-spring.xsd').toString(); it('should parse ShipOrder XML schema', () => { const collection = new XmlSchemaCollection(); @@ -92,4 +94,30 @@ describe('XmlSchemaCollection', () => { const attrGroupRef = (testDocumentAttributes[0] as XmlSchemaAttributeGroupRef).getRef(); expect(attrGroupRef.getTarget()).toBeTruthy(); }); + + it('should parse NamedTypes XML schema', () => { + const collection = new XmlSchemaCollection(); + const xmlSchema = collection.read(namedTypesXsd, () => {}); + const elements = xmlSchema.getElements(); + expect(elements.size).toEqual(1); + const element1 = elements.get(new QName('io.kaoto.datamapper.poc.test', 'Element1')); + const element1ComplexType = element1!.getSchemaType() as XmlSchemaComplexType; + const element1Sequence = element1ComplexType.getParticle() as XmlSchemaSequence; + const element1SequenceMembers = element1Sequence.getItems(); + expect(element1SequenceMembers.length).toEqual(1); + const element1Simple1 = element1SequenceMembers[0] as XmlSchemaElement; + const element1Simple1SchemaType = element1Simple1.getSchemaType(); + expect(element1Simple1.getWireName()?.getNamespaceURI()).toEqual(''); + expect(element1Simple1.getWireName()?.getLocalPart()).toEqual('Element1Simple1'); + }); + + it('should parse camel-spring XML schema', () => { + const collection = new XmlSchemaCollection(); + const xmlSchema = collection.read(camelSpringXsd, () => {}); + const aggregate = xmlSchema.getElements().get(new QName('http://camel.apache.org/schema/spring', 'aggregate')); + const aggregateComplexType = aggregate!.getSchemaType() as XmlSchemaComplexType; + expect(aggregateComplexType.getParticle()).toBeNull(); + const aggregateComplexContent = aggregateComplexType.getContentModel()?.getContent(); + // TODO + }); }); diff --git a/packages/xml-schema-ts/src/index.ts b/packages/xml-schema-ts/src/index.ts index b60cd95a8..fa40c2691 100644 --- a/packages/xml-schema-ts/src/index.ts +++ b/packages/xml-schema-ts/src/index.ts @@ -1,3 +1,4 @@ +export { QNameMap } from './utils/ObjectMap'; export { XmlSchema } from './XmlSchema'; export { XmlSchemaAll } from './particle/XmlSchemaAll'; export { XmlSchemaAny } from './particle/XmlSchemaAny'; @@ -10,7 +11,10 @@ export { XmlSchemaAttributeOrGroupRef } from './attribute/XmlSchemaAttributeOrGr export { XmlSchemaChoice } from './particle/XmlSchemaChoice'; export { XmlSchemaChoiceMember } from './particle/XmlSchemaChoiceMember'; export { XmlSchemaCollection } from './XmlSchemaCollection'; +export { XmlSchemaComplexContentExtension } from './complex/XmlSchemaComplexContentExtension'; +export { XmlSchemaComplexContentRestriction } from './complex/XmlSchemaComplexContentRestriction'; export { XmlSchemaComplexType } from './complex/XmlSchemaComplexType'; +export { XmlSchemaContentModel } from './XmlSchemaContentModel'; export { XmlSchemaElement } from './particle/XmlSchemaElement'; export { XmlSchemaGroup } from './XmlSchemaGroup'; export { XmlSchemaGroupParticle } from './particle/XmlSchemaGroupParticle'; @@ -20,5 +24,8 @@ export { XmlSchemaParticle } from './particle/XmlSchemaParticle'; export { XmlSchemaRef } from './utils/XmlSchemaRef'; export { XmlSchemaSequence } from './particle/XmlSchemaSequence'; export { XmlSchemaSequenceMember } from './particle/XmlSchemaSequenceMember'; +export { XmlSchemaSimpleContentExtension } from './simple/XmlSchemaSimpleContentExtension'; +export { XmlSchemaSimpleContentRestriction } from './simple/XmlSchemaSimpleContentRestriction'; export { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; +export { XmlSchemaType } from './XmlSchemaType'; export { XmlSchemaUse } from './XmlSchemaUse'; diff --git a/packages/xml-schema-ts/test-resources/NamedTypes.xsd b/packages/xml-schema-ts/test-resources/NamedTypes.xsd new file mode 100644 index 000000000..f64216551 --- /dev/null +++ b/packages/xml-schema-ts/test-resources/NamedTypes.xsd @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/packages/xml-schema-ts/test-resources/camel-spring.xsd b/packages/xml-schema-ts/test-resources/camel-spring.xsd new file mode 100644 index 000000000..8ab41d30d --- /dev/null +++ b/packages/xml-schema-ts/test-resources/camel-spring.xsd @@ -0,0 +1,18474 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 857fe3e778919b1accfd58bfbc75afd6b7cd1653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Tue, 22 Oct 2024 16:49:48 +0200 Subject: [PATCH 402/471] feat: Deactivate minimap for Xpath textual editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Given that we do not expect to have very large expressions, the minimap is not very useful. Deactivating it allows to save space. fixes #121 Signed-off-by: Aurélien Pupier --- packages/ui/src/components/XPath/XPathEditor.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/ui/src/components/XPath/XPathEditor.tsx b/packages/ui/src/components/XPath/XPathEditor.tsx index a39edba95..33aa36a21 100644 --- a/packages/ui/src/components/XPath/XPathEditor.tsx +++ b/packages/ui/src/components/XPath/XPathEditor.tsx @@ -42,6 +42,9 @@ export const XPathEditor: FunctionComponent = ({ mapping, onCh ...xpathEditorConstrufctionOption, theme: themeName, value: mapping.expression, + minimap: { + enabled: false, + }, }); newEditor.onDidChangeModelContent((_e) => onChange(newEditor.getModel()?.getValue())); return newEditor; From a92e784a8c38364e350c63bb02d8368fda30c615 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 22 Oct 2024 14:37:38 -0400 Subject: [PATCH 403/471] fix(DataMapper): undefined check Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/122 --- .../services/datamapper-metadata.service.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts index 1aaeda411..fd2591a1d 100644 --- a/packages/ui/src/services/datamapper-metadata.service.ts +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -93,14 +93,16 @@ export class DataMapperMetadataService { return new Promise((resolve) => { const definitionType = documentMetadata.type ? documentMetadata.type : DocumentDefinitionType.Primitive; const definitionFiles: Record = {}; - const fileReadingPromises = documentMetadata.filePath.map((path) => - api - .getResourceContent(path) - .then((value) => { - if (value) definitionFiles[path] = value; - }) - .catch((reason) => console.log(`Could not read a file "${path}": ${reason}`)), - ); + const fileReadingPromises = !documentMetadata.filePath + ? [] + : documentMetadata.filePath.map((path) => + api + .getResourceContent(path) + .then((value) => { + if (value) definitionFiles[path] = value; + }) + .catch((reason) => console.log(`Could not read a file "${path}": ${reason}`)), + ); Promise.allSettled(fileReadingPromises).then(() => { const answer = new DocumentDefinition(documentType, definitionType, name, definitionFiles); resolve(answer); From 497d0516b17ccdf31cf2dadac11716e5653873dc Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 22 Oct 2024 12:11:41 -0400 Subject: [PATCH 404/471] fix(DataMapper): Pull up DOMParser error message up to the notification Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/118 --- .../actions/AttachSchemaButton.test.tsx | 32 ++++++++++++++++++- .../xml-schema-document.service.test.ts | 18 +++++++++-- packages/ui/src/stubs/data-mapper.ts | 3 ++ .../src/XmlSchemaCollection.test.ts | 15 +++++++++ .../xml-schema-ts/src/XmlSchemaCollection.ts | 5 +++ .../ShipOrderEmptyFirstLine.xsd | 32 +++++++++++++++++++ 6 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 packages/xml-schema-ts/test-resources/ShipOrderEmptyFirstLine.xsd diff --git a/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx index 945d6797b..3e97c09e4 100644 --- a/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx +++ b/packages/ui/src/components/Document/actions/AttachSchemaButton.test.tsx @@ -6,7 +6,7 @@ import { BODY_DOCUMENT_ID } from '../../../models/datamapper/document'; import { DataMapperProvider } from '../../../providers/datamapper.provider'; import { readFileAsString } from '../../../stubs/read-file-as-string'; -import { noTopElementXsd, shipOrderXsd } from '../../../stubs/data-mapper'; +import { noTopElementXsd, shipOrderEmptyFirstLineXsd, shipOrderXsd } from '../../../stubs/data-mapper'; import { BrowserFilePickerMetadataProvider } from '../../../stubs/BrowserFilePickerMetadataProvider'; import { FunctionComponent, PropsWithChildren, useEffect } from 'react'; import { useDataMapper } from '../../../hooks/useDataMapper'; @@ -99,4 +99,34 @@ describe('AttachSchemaButton', () => { expect(capturedAlerts.length).toEqual(1); expect(capturedAlerts[0].title).toContain('no top level Element'); }); + + it('should show a toast alert for XML parse error', async () => { + mockReadFileAsString.mockResolvedValue(shipOrderEmptyFirstLineXsd); + render( + + + + + + + + + , + ); + const attachButton = await screen.findByTestId('attach-schema-sourceBody-Body-button'); + act(() => { + fireEvent.click(attachButton); + }); + const fileInput = await screen.findByTestId('attach-schema-file-input'); + const fileContent = new File([new Blob([shipOrderEmptyFirstLineXsd])], 'ShipOrderEmptyFirstLine.xsd', { + type: 'text/plain', + }); + act(() => { + fireEvent.change(fileInput, { target: { files: { item: () => fileContent, length: 1, 0: fileContent } } }); + }); + screen.debug(); + await screen.findByTestId('attach-schema-sourceBody-Body-button'); + expect(capturedAlerts.length).toEqual(1); + expect(capturedAlerts[0].title).toContain('an XML declaration must be at the start of the document'); + }); }); diff --git a/packages/ui/src/services/xml-schema-document.service.test.ts b/packages/ui/src/services/xml-schema-document.service.test.ts index 8a886891b..f4fc397db 100644 --- a/packages/ui/src/services/xml-schema-document.service.test.ts +++ b/packages/ui/src/services/xml-schema-document.service.test.ts @@ -2,8 +2,7 @@ import { XmlSchemaDocumentService, XmlSchemaField } from './xml-schema-document. import { BODY_DOCUMENT_ID } from '../models/datamapper/document'; import { DocumentType } from '../models/datamapper/path'; import { Types } from '../models/datamapper/types'; - -import { camelSpringXsd, shipOrderXsd, testDocumentXsd } from '../stubs/data-mapper'; +import { camelSpringXsd, shipOrderXsd, shipOrderEmptyFirstLineXsd, testDocumentXsd } from '../stubs/data-mapper'; describe('XmlSchemaDocumentService', () => { it('should parse ShipOrder XML schema', () => { @@ -76,4 +75,19 @@ describe('XmlSchemaDocumentService', () => { expect(doc.name).toEqual('ShipOrder.xsd'); expect(doc.fields.length).toEqual(1); }); + + it('should throw an error if there is a parse error on the XML schema', () => { + try { + XmlSchemaDocumentService.createXmlSchemaDocument( + DocumentType.SOURCE_BODY, + 'ShipOrderEmptyFirstLine.xsd', + shipOrderEmptyFirstLineXsd, + ); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + } catch (error: any) { + expect(error.message).toContain('an XML declaration must be at the start of the document'); + return; + } + expect(true).toBeFalsy(); + }); }); diff --git a/packages/ui/src/stubs/data-mapper.ts b/packages/ui/src/stubs/data-mapper.ts index eafdf50db..98db57bb0 100644 --- a/packages/ui/src/stubs/data-mapper.ts +++ b/packages/ui/src/stubs/data-mapper.ts @@ -32,6 +32,9 @@ export const camelSpringXsd = fs export const shipOrderToShipOrderXslt = fs .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/ShipOrderToShipOrder.xsl') .toString(); +export const shipOrderEmptyFirstLineXsd = fs + .readFileSync(__dirname + '/../../../xml-schema-ts/test-resources/ShipOrderEmptyFirstLine.xsd') + .toString(); export class TestUtil { static createSourceOrderDoc() { diff --git a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts index d3dbe30a0..92d07a528 100644 --- a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts +++ b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts @@ -8,12 +8,16 @@ import { XmlSchemaSequence } from './particle/XmlSchemaSequence'; import { XmlSchemaElement } from './particle/XmlSchemaElement'; import { XmlSchemaAttributeGroupRef } from './attribute/XmlSchemaAttributeGroupRef'; import { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; +import { screen } from '@testing-library/react'; describe('XmlSchemaCollection', () => { const orderXsd = fs.readFileSync(__dirname + '/../test-resources/ShipOrder.xsd').toString(); const testXsd = fs.readFileSync(__dirname + '/../test-resources/TestDocument.xsd').toString(); const namedTypesXsd = fs.readFileSync(__dirname + '/../test-resources/NamedTypes.xsd').toString(); const camelSpringXsd = fs.readFileSync(__dirname + '/../test-resources/camel-spring.xsd').toString(); + const orderXsdEmptyFirstLine = fs + .readFileSync(__dirname + '/../test-resources/ShipOrderEmptyFirstLine.xsd') + .toString(); it('should parse ShipOrder XML schema', () => { const collection = new XmlSchemaCollection(); @@ -120,4 +124,15 @@ describe('XmlSchemaCollection', () => { const aggregateComplexContent = aggregateComplexType.getContentModel()?.getContent(); // TODO }); + + it('should parse ShipOrderEmptyFirstLine.xsd', () => { + const collection = new XmlSchemaCollection(); + try { + collection.read(orderXsdEmptyFirstLine, () => {}); + } catch (error) { + expect(error.message).toContain('an XML declaration must be at the start of the document'); + return; + } + fail('No error was thrown'); + }); }); diff --git a/packages/xml-schema-ts/src/XmlSchemaCollection.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.ts index 0cbcfbcce..eb1b8a64e 100644 --- a/packages/xml-schema-ts/src/XmlSchemaCollection.ts +++ b/packages/xml-schema-ts/src/XmlSchemaCollection.ts @@ -382,6 +382,11 @@ export class XmlSchemaCollection { read(content: string, validator: (schema: XmlSchema) => void): XmlSchema { const parser = new DOMParser(); const document = parser.parseFromString(content, 'text/xml'); + const error = document.querySelector('parsererror'); + if (error) + throw new Error( + `XML Parser Error: ${error.textContent ?? 'The XML schema file had a parse error, but there was no reason provided'}`, + ); const builder = new SchemaBuilder(this, validator); return builder.build(document); } diff --git a/packages/xml-schema-ts/test-resources/ShipOrderEmptyFirstLine.xsd b/packages/xml-schema-ts/test-resources/ShipOrderEmptyFirstLine.xsd new file mode 100644 index 000000000..cfab0b133 --- /dev/null +++ b/packages/xml-schema-ts/test-resources/ShipOrderEmptyFirstLine.xsd @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 010187b1b4271dfcd1af7997bf82de7036120921 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 22 Oct 2024 14:59:36 -0400 Subject: [PATCH 405/471] chore(DataMapper): fix incomplete test for https://github.com/KaotoIO/kaoto-datamapper-integration/issues/106 --- packages/xml-schema-ts/src/XmlSchemaCollection.test.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts index 92d07a528..cf66d6044 100644 --- a/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts +++ b/packages/xml-schema-ts/src/XmlSchemaCollection.test.ts @@ -9,6 +9,7 @@ import { XmlSchemaElement } from './particle/XmlSchemaElement'; import { XmlSchemaAttributeGroupRef } from './attribute/XmlSchemaAttributeGroupRef'; import { XmlSchemaSimpleType } from './simple/XmlSchemaSimpleType'; import { screen } from '@testing-library/react'; +import { XmlSchemaComplexContentExtension } from './complex/XmlSchemaComplexContentExtension'; describe('XmlSchemaCollection', () => { const orderXsd = fs.readFileSync(__dirname + '/../test-resources/ShipOrder.xsd').toString(); @@ -121,8 +122,13 @@ describe('XmlSchemaCollection', () => { const aggregate = xmlSchema.getElements().get(new QName('http://camel.apache.org/schema/spring', 'aggregate')); const aggregateComplexType = aggregate!.getSchemaType() as XmlSchemaComplexType; expect(aggregateComplexType.getParticle()).toBeNull(); - const aggregateComplexContent = aggregateComplexType.getContentModel()?.getContent(); - // TODO + const aggregateComplexContent = aggregateComplexType + .getContentModel() + ?.getContent() as XmlSchemaComplexContentExtension; + expect(aggregateComplexContent.getBaseTypeName()?.getLocalPart()).toEqual('output'); + expect(aggregateComplexContent.getAttributes().length).toEqual(22); + const particle = aggregateComplexContent.getParticle() as XmlSchemaSequence; + expect(particle.getItems().length).toEqual(6); }); it('should parse ShipOrderEmptyFirstLine.xsd', () => { From 2303ef929561463556b8eda5f9c034d1a990ddd3 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Tue, 22 Oct 2024 15:31:26 -0400 Subject: [PATCH 406/471] fix(DataMapper): Resize XPath editor along with the parent modal Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/120 --- packages/ui/src/components/XPath/monaco-options.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/components/XPath/monaco-options.ts b/packages/ui/src/components/XPath/monaco-options.ts index 29c591178..4f7df9d0a 100644 --- a/packages/ui/src/components/XPath/monaco-options.ts +++ b/packages/ui/src/components/XPath/monaco-options.ts @@ -1,6 +1,6 @@ import * as monaco from 'monaco-editor'; -export const xpathEditorTheme = { +export const xpathEditorTheme: monaco.editor.IStandaloneThemeData = { base: 'vs', inherit: true, rules: [ @@ -17,10 +17,11 @@ export const xpathEditorTheme = { 'editor.selectionBackground': '#88000030', 'editor.inactiveSelectionBackground': '#88000015', }, -} as monaco.editor.IStandaloneThemeData; +}; -export const xpathEditorConstrufctionOption = { +export const xpathEditorConstrufctionOption: monaco.editor.IStandaloneEditorConstructionOptions = { language: 'xpath', + automaticLayout: true, wordWrap: 'on', scrollBeyondLastColumn: 0, scrollbar: { @@ -29,4 +30,4 @@ export const xpathEditorConstrufctionOption = { vertical: 'auto', verticalHasArrows: false, }, -} as monaco.editor.IStandaloneEditorConstructionOptions; +}; From 1934eb858bb2a80b199de1bfda11b422c4e07fef Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 23 Oct 2024 14:57:06 -0400 Subject: [PATCH 407/471] fix(DataMapper): XPath functions are not working at runtime Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/138 Also following up https://github.com/KaotoIO/kaoto-datamapper-integration/pull/128 , fix a test failure --- .../components/Document/actions/XPathEditorAction.test.tsx | 5 +++++ .../flows/support/camel-component-default.service.ts | 3 ++- packages/ui/src/services/datamapper-metadata.service.ts | 5 +++-- packages/ui/src/utils/is-datamapper.ts | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx b/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx index f2f42e83f..b4bc9f292 100644 --- a/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx +++ b/packages/ui/src/components/Document/actions/XPathEditorAction.test.tsx @@ -10,6 +10,11 @@ import { TestUtil } from '../../../stubs/data-mapper'; describe('XPathEditorAction', () => { it('should open xpath editor modal', async () => { + window.ResizeObserver = jest.fn().mockImplementation(() => ({ + observe: jest.fn(), + unobserve: jest.fn(), + disconnect: jest.fn(), + })); const doc = TestUtil.createTargetOrderDoc(); const tree = new MappingTree(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); const docData = new TargetDocumentNodeData(doc, tree); diff --git a/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts b/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts index f0a159328..1f1975663 100644 --- a/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts +++ b/packages/ui/src/models/visualization/flows/support/camel-component-default.service.ts @@ -3,6 +3,7 @@ import { parse } from 'yaml'; import { getCamelRandomId } from '../../../../camel-utils/camel-random-id'; import { DefinedComponent } from '../../../camel-catalog-index'; import { CatalogKind } from '../../../catalog-kind'; +import { XSLT_COMPONENT_NAME } from '../../../../utils'; /** * CamelComponentDefaultService @@ -167,7 +168,7 @@ export class CamelComponentDefaultService { steps: - to: id: ${getCamelRandomId('kaoto-datamapper-xslt')} - uri: xslt + uri: ${XSLT_COMPONENT_NAME} parameters: {} `); diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts index fd2591a1d..c44876b24 100644 --- a/packages/ui/src/services/datamapper-metadata.service.ts +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -10,6 +10,7 @@ import { IDataMapperMetadata, IDocumentMetadata } from '../models/datamapper/met import { IMetadataApi } from '../providers'; import { EMPTY_XSL } from './mapping-serializer.service'; import { EntitiesContextResult } from '../hooks'; +import { XSLT_COMPONENT_NAME } from '../utils'; export class DataMapperMetadataService { static readonly SCHEMA_NAME_PATTERN = '**/*.{xsd,xml,XSD,XML}'; @@ -28,11 +29,11 @@ export class DataMapperMetadataService { return new Promise((resolve) => { const model = vizNode.getComponentSchema()?.definition; // eslint-disable-next-line - const xsltStep = model.steps.find((step: any) => step.to?.uri?.startsWith('xslt')); + const xsltStep = model.steps.find((step: any) => step.to?.uri?.startsWith(XSLT_COMPONENT_NAME)); const splitted = xsltStep?.to?.uri?.split(':'); let xsltFileName = `${metadataId}.xsl`; if (splitted.length < 2) { - xsltStep.to.uri = `xslt:${xsltFileName}`; + xsltStep.to.uri = `${XSLT_COMPONENT_NAME}:${xsltFileName}`; vizNode.updateModel(model); entitiesContext.updateSourceCodeFromEntities(); } else { diff --git a/packages/ui/src/utils/is-datamapper.ts b/packages/ui/src/utils/is-datamapper.ts index d48a6a658..8ec8e86f8 100644 --- a/packages/ui/src/utils/is-datamapper.ts +++ b/packages/ui/src/utils/is-datamapper.ts @@ -1,7 +1,7 @@ import { ProcessorDefinition, Step } from '@kaoto/camel-catalog/types'; export const DATAMAPPER_ID_PREFIX = 'kaoto-datamapper' as keyof ProcessorDefinition; -export const XSLT_COMPONENT_NAME = 'xslt'; +export const XSLT_COMPONENT_NAME = 'xslt-saxon'; export const isDataMapperNode = (stepDefinition: Step): boolean => { const isDatamapperId = stepDefinition.id?.startsWith(DATAMAPPER_ID_PREFIX) ?? false; From b38768896ce69c3012b51134f8b303c4d6909ee3 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Wed, 23 Oct 2024 18:13:28 -0400 Subject: [PATCH 408/471] fix(DataMapper): Indicate there's a syntax error in xpath Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/143 --- .../actions/XPathInputAction.test.tsx | 14 +++++ .../Document/actions/XPathInputAction.tsx | 51 ++++++++++++++- .../src/components/XPath/XPathEditorModal.tsx | 62 ++++++++++++++++++- .../ui/src/services/xpath/xpath.service.ts | 13 ++++ 4 files changed, 135 insertions(+), 5 deletions(-) diff --git a/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx b/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx index 04eab591d..f15656c84 100644 --- a/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx +++ b/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx @@ -18,4 +18,18 @@ describe('XPathInputAction', () => { expect(mapping.expression).toEqual('/ShipOrder'); expect(onUpdateMock.mock.calls.length).toEqual(1); }); + + it('should show error popover button if xpath has a parse error', async () => { + const tree = new MappingTree(DocumentType.SOURCE_BODY, BODY_DOCUMENT_ID); + const mapping = new ValueSelector(tree); + mapping.expression = '{{'; + const onUpdateMock = jest.fn(); + render(); + const btn = await screen.findByTestId('xpath-input-error-btn'); + act(() => { + fireEvent.click(btn); + }); + const error = await screen.findByRole('dialog'); + expect(error).toBeInTheDocument(); + }); }); diff --git a/packages/ui/src/components/Document/actions/XPathInputAction.tsx b/packages/ui/src/components/Document/actions/XPathInputAction.tsx index ce70c9a01..1ea4a1614 100644 --- a/packages/ui/src/components/Document/actions/XPathInputAction.tsx +++ b/packages/ui/src/components/Document/actions/XPathInputAction.tsx @@ -1,12 +1,37 @@ import { ExpressionItem } from '../../../models/datamapper/mapping'; -import { FormEvent, FunctionComponent, MouseEvent, useCallback } from 'react'; -import { ActionListItem, InputGroup, InputGroupItem, TextInput } from '@patternfly/react-core'; +import { FormEvent, FunctionComponent, MouseEvent, useCallback, useEffect, useMemo, useState } from 'react'; +import { + ActionListItem, + Button, + ButtonVariant, + InputGroup, + InputGroupItem, + List, + ListItem, + Popover, + TextInput, +} from '@patternfly/react-core'; +import { ExclamationCircleIcon } from '@patternfly/react-icons'; +import { XPathService } from '../../../services/xpath/xpath.service'; type XPathInputProps = { mapping: ExpressionItem; onUpdate: () => void; }; export const XPathInputAction: FunctionComponent = ({ mapping, onUpdate }) => { + const [errors, setErrors] = useState([]); + + const validateXPath = useCallback(() => { + if (mapping.expression) { + const validationErrors = XPathService.validate(mapping.expression); + setErrors([...validationErrors.lexErrors, ...validationErrors.parseErrors]); + } + }, [mapping.expression]); + + useEffect(() => { + validateXPath(); + }, [validateXPath]); + const handleXPathChange = useCallback( (event: FormEvent, value: string) => { if (mapping) { @@ -22,6 +47,16 @@ export const XPathInputAction: FunctionComponent = ({ mapping, event.stopPropagation(); }, []); + const errorContent = useMemo(() => { + return ( + + {errors.map((e) => ( + {e} + ))} + + ); + }, [errors]); + return ( @@ -35,6 +70,18 @@ export const XPathInputAction: FunctionComponent = ({ mapping, onMouseMove={stopPropagation} /> + {errors.length > 0 && ( + + + + + + )} ); diff --git a/packages/ui/src/components/XPath/XPathEditorModal.tsx b/packages/ui/src/components/XPath/XPathEditorModal.tsx index fe2ab70c7..260b21ebe 100644 --- a/packages/ui/src/components/XPath/XPathEditorModal.tsx +++ b/packages/ui/src/components/XPath/XPathEditorModal.tsx @@ -1,8 +1,20 @@ -import { Button, Modal, ModalVariant } from '@patternfly/react-core'; -import { FunctionComponent } from 'react'; +import { + Button, + ButtonVariant, + List, + ListItem, + Modal, + ModalVariant, + Popover, + Title, + TitleSizes, +} from '@patternfly/react-core'; +import { FunctionComponent, useCallback, useEffect, useMemo, useState } from 'react'; import { XPathEditorLayout } from './XPathEditorLayout'; import { ExpressionItem } from '../../models/datamapper'; import './XPathEditorModal.scss'; +import { XPathService } from '../../services/xpath/xpath.service'; +import { ExclamationCircleIcon } from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon'; type XPathEditorModalProps = { isOpen: boolean; @@ -19,11 +31,55 @@ export const XPathEditorModal: FunctionComponent = ({ mapping, onUpdate, }) => { + const [errors, setErrors] = useState([]); + + const validateXPath = useCallback(() => { + if (mapping.expression) { + const validationErrors = XPathService.validate(mapping.expression); + setErrors([...validationErrors.lexErrors, ...validationErrors.parseErrors]); + } + }, [mapping.expression]); + + useEffect(() => { + validateXPath(); + }, [validateXPath]); + + const errorContent = useMemo(() => { + return ( + + {errors.map((e) => ( + {e} + ))} + + ); + }, [errors]); + + const header = useMemo( + () => ( + <> + + XPath Editor: {title} + {errors.length > 0 && ( + <Popover bodyContent={errorContent}> + <Button + data-testid="xpath-editor-error-btn" + variant={ButtonVariant.link} + isDanger + icon={<ExclamationCircleIcon />} + /> + </Popover> + )} + + + ), + [errorContent, errors.length, title], + ); + return ( e.message), + parseErrors: parseResult.parseErrors.map((e) => e.message), + }; + } + static getXPathFunctionDefinitions(): Record { return XPathService.functions; } From 6bdca1df25a5ab827b7c86dbb609c1447f983959 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 24 Oct 2024 13:26:07 -0400 Subject: [PATCH 409/471] chore(DataMapper): add aria-label to the XPathEditorModal to avoid console error --- packages/ui/src/components/XPath/XPathEditorModal.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ui/src/components/XPath/XPathEditorModal.tsx b/packages/ui/src/components/XPath/XPathEditorModal.tsx index 260b21ebe..10afaac5c 100644 --- a/packages/ui/src/components/XPath/XPathEditorModal.tsx +++ b/packages/ui/src/components/XPath/XPathEditorModal.tsx @@ -77,6 +77,7 @@ export const XPathEditorModal: FunctionComponent = ({ return ( Date: Thu, 24 Oct 2024 16:23:55 -0400 Subject: [PATCH 410/471] fix(DataMapper): fix DataMapper internal XPath parsing error on parenthesis Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/135 Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/137 Also added a safe guard to avoid whole DataMapper page crash caused by the DataMapper level XPath parsing errors. Now it shows an error indicator with the words "DataMapper internal error". If it is shown, it is most likely a bug in DataMapper XPath parser. --- .../Document/actions/XPathInputAction.tsx | 20 ++---- .../src/components/XPath/XPathEditorModal.tsx | 22 +++--- packages/ui/src/services/mapping.service.ts | 5 +- .../src/services/xpath/xpath.service.test.ts | 33 +++++++++ .../ui/src/services/xpath/xpath.service.ts | 70 +++++++++++++++---- 5 files changed, 108 insertions(+), 42 deletions(-) diff --git a/packages/ui/src/components/Document/actions/XPathInputAction.tsx b/packages/ui/src/components/Document/actions/XPathInputAction.tsx index 1ea4a1614..83fe837ef 100644 --- a/packages/ui/src/components/Document/actions/XPathInputAction.tsx +++ b/packages/ui/src/components/Document/actions/XPathInputAction.tsx @@ -12,19 +12,19 @@ import { TextInput, } from '@patternfly/react-core'; import { ExclamationCircleIcon } from '@patternfly/react-icons'; -import { XPathService } from '../../../services/xpath/xpath.service'; +import { ValidatedXPathParseResult, XPathService } from '../../../services/xpath/xpath.service'; type XPathInputProps = { mapping: ExpressionItem; onUpdate: () => void; }; export const XPathInputAction: FunctionComponent = ({ mapping, onUpdate }) => { - const [errors, setErrors] = useState([]); + const [validationResult, setValidationResult] = useState(); const validateXPath = useCallback(() => { if (mapping.expression) { - const validationErrors = XPathService.validate(mapping.expression); - setErrors([...validationErrors.lexErrors, ...validationErrors.parseErrors]); + const result = XPathService.validate(mapping.expression); + setValidationResult(result); } }, [mapping.expression]); @@ -48,14 +48,8 @@ export const XPathInputAction: FunctionComponent = ({ mapping, }, []); const errorContent = useMemo(() => { - return ( - - {errors.map((e) => ( - {e} - ))} - - ); - }, [errors]); + return {validationResult?.getErrors().map((e) => {e})}; + }, [validationResult]); return ( @@ -70,7 +64,7 @@ export const XPathInputAction: FunctionComponent = ({ mapping, onMouseMove={stopPropagation} /> - {errors.length > 0 && ( + {!validationResult?.getCst() && ( - ) : ( - -

    - At the moment, the Kaoto DataMapper cannot be configured using the browser directly. Please use the VS Code - extension for an enhanced experience. The Kaoto extension is bundled in the  - - Extension Pack for Apache Camel - -

    -
    + if (!isDefined(metadata)) { + return ( + +

    + At the moment, the Kaoto DataMapper cannot be configured using the browser directly. Please use the VS Code + extension for an enhanced experience. The Kaoto extension is bundled in the  + + Extension Pack for Apache Camel + +

    +
    + ); + } + + return ( +
    +
    + + +
    ); }; diff --git a/packages/ui/src/services/datamapper-metadata.service.ts b/packages/ui/src/services/datamapper-metadata.service.ts index 4a282101a..0adbb1c72 100644 --- a/packages/ui/src/services/datamapper-metadata.service.ts +++ b/packages/ui/src/services/datamapper-metadata.service.ts @@ -1,3 +1,5 @@ +import { ProcessorDefinition } from '@kaoto/camel-catalog/types'; +import { EntitiesContextResult } from '../hooks'; import { IVisualizationNode } from '../models'; import { BODY_DOCUMENT_ID, @@ -8,9 +10,9 @@ import { } from '../models/datamapper'; import { IDataMapperMetadata, IDocumentMetadata } from '../models/datamapper/metadata'; import { IMetadataApi } from '../providers'; +import { isDefined, isXSLTComponent, XSLT_COMPONENT_NAME } from '../utils'; +import type { XsltComponentDef } from '../utils/is-xslt-component'; import { EMPTY_XSL } from './mapping-serializer.service'; -import { EntitiesContextResult } from '../hooks'; -import { XSLT_COMPONENT_NAME } from '../utils'; export class DataMapperMetadataService { static readonly SCHEMA_NAME_PATTERN = '**/*.{xsd,xml,XSD,XML}'; @@ -20,39 +22,40 @@ export class DataMapperMetadataService { return `${vizNode.getId()}-${model.id}`; // routeId-stepId } - static initializeDataMapperMetadata( + static async initializeDataMapperMetadata( entitiesContext: EntitiesContextResult, vizNode: IVisualizationNode, api: IMetadataApi, metadataId: string, ): Promise { - return new Promise((resolve) => { - const model = vizNode.getComponentSchema()?.definition; - // eslint-disable-next-line - const xsltStep = model.steps.find((step: any) => step.to?.uri?.startsWith(XSLT_COMPONENT_NAME)); - const splitted = xsltStep?.to?.uri?.split(':'); - let xsltFileName = `${metadataId}.xsl`; - if (splitted.length < 2) { - xsltStep.to.uri = `${XSLT_COMPONENT_NAME}:${xsltFileName}`; - vizNode.updateModel(model); - entitiesContext.updateSourceCodeFromEntities(); - } else { - xsltFileName = splitted[1]; - } - const metadata = { - sourceBody: { - type: DocumentDefinitionType.Primitive, - }, - sourceParameters: {}, - targetBody: { - type: DocumentDefinitionType.Primitive, - }, - xsltPath: xsltFileName, - } as IDataMapperMetadata; - const metadataPromise = api.setMetadata(metadataId, metadata); - const contentPromise = api.saveResourceContent(metadata.xsltPath, EMPTY_XSL); - Promise.allSettled([metadataPromise, contentPromise]).then(() => resolve(metadata)); - }); + const model = vizNode.getComponentSchema()?.definition; + const xsltStep = (model.steps as ProcessorDefinition[] | undefined)?.find(isXSLTComponent); + let documentName = this.getXSLTDocumentName(xsltStep); + + if (isDefined(xsltStep) && !isDefined(documentName)) { + /** At this point, the Kaoto Data Mapper is not yet configured, hence we create the XSLT mapping document name */ + documentName = `${metadataId}.xsl`; + xsltStep.to.uri = `${XSLT_COMPONENT_NAME}:${documentName}`; + vizNode.updateModel(model); + entitiesContext.updateSourceCodeFromEntities(); + } + + const metadata = { + sourceBody: { + type: DocumentDefinitionType.Primitive, + }, + sourceParameters: {}, + targetBody: { + type: DocumentDefinitionType.Primitive, + }, + xsltPath: documentName, + } as IDataMapperMetadata; + + const metadataPromise = api.setMetadata(metadataId, metadata); + const contentPromise = api.saveResourceContent(metadata.xsltPath, EMPTY_XSL); + await Promise.allSettled([metadataPromise, contentPromise]); + + return metadata; } static loadDocuments(api: IMetadataApi, metadata: IDataMapperMetadata): Promise { @@ -85,6 +88,15 @@ export class DataMapperMetadataService { }); } + static getXSLTDocumentName(xsltStep?: XsltComponentDef): string | undefined { + if (!xsltStep) { + return undefined; + } + + const [_componentUri, uriFileName] = xsltStep.to.uri.split(':'); + return uriFileName; + } + private static doLoadDocument( api: IMetadataApi, documentType: DocumentType, diff --git a/packages/ui/src/utils/index.ts b/packages/ui/src/utils/index.ts index 1d19896ec..7a05172ed 100644 --- a/packages/ui/src/utils/index.ts +++ b/packages/ui/src/utils/index.ts @@ -14,6 +14,8 @@ export * from './init-visible-flows'; export * from './is-datamapper'; export * from './is-defined'; export * from './is-enum-type'; +export * from './is-to-processor'; +export * from './is-xslt-component'; export * from './join-path'; export * from './node-icon-resolver'; export * from './pipe-custom-schema'; diff --git a/packages/ui/src/utils/is-datamapper.ts b/packages/ui/src/utils/is-datamapper.ts index 8ec8e86f8..dc9f55c10 100644 --- a/packages/ui/src/utils/is-datamapper.ts +++ b/packages/ui/src/utils/is-datamapper.ts @@ -3,7 +3,7 @@ import { ProcessorDefinition, Step } from '@kaoto/camel-catalog/types'; export const DATAMAPPER_ID_PREFIX = 'kaoto-datamapper' as keyof ProcessorDefinition; export const XSLT_COMPONENT_NAME = 'xslt-saxon'; -export const isDataMapperNode = (stepDefinition: Step): boolean => { +export const isDataMapperNode = (stepDefinition: Step): stepDefinition is Step => { const isDatamapperId = stepDefinition.id?.startsWith(DATAMAPPER_ID_PREFIX) ?? false; const doesContainXslt = stepDefinition.steps?.some((step) => { diff --git a/packages/ui/src/utils/is-to-processor.test.ts b/packages/ui/src/utils/is-to-processor.test.ts new file mode 100644 index 000000000..88bffc814 --- /dev/null +++ b/packages/ui/src/utils/is-to-processor.test.ts @@ -0,0 +1,13 @@ +import { isToProcessor } from './is-to-processor'; + +describe('isToProcessor', () => { + it.each([ + [false, { to: 'mock' }], + [false, { toD: 'mock' }], + [false, {}], + [true, { to: { uri: undefined } }], + [true, { to: { uri: 'timer:myTimer' } }], + ] as const)('should return %s when toDefinition is %s', (result, toDefinition) => { + expect(isToProcessor(toDefinition)).toBe(result); + }); +}); diff --git a/packages/ui/src/utils/is-to-processor.ts b/packages/ui/src/utils/is-to-processor.ts new file mode 100644 index 000000000..6efaa6cd2 --- /dev/null +++ b/packages/ui/src/utils/is-to-processor.ts @@ -0,0 +1,11 @@ +import { ProcessorDefinition, To } from '@kaoto/camel-catalog/types'; +import { isDefined } from './is-defined'; + +export type ToObjectDef = { to: Exclude }; + +export const isToProcessor = (toDefinition: ProcessorDefinition): toDefinition is ToObjectDef => { + const doesHaveTo = 'to' in toDefinition; + const isStringBased = typeof toDefinition.to === 'string'; + + return doesHaveTo && !isStringBased && isDefined(toDefinition.to); +}; diff --git a/packages/ui/src/utils/is-xslt-component.test.ts b/packages/ui/src/utils/is-xslt-component.test.ts new file mode 100644 index 000000000..e3be469f8 --- /dev/null +++ b/packages/ui/src/utils/is-xslt-component.test.ts @@ -0,0 +1,16 @@ +import { XSLT_COMPONENT_NAME } from './is-datamapper'; +import { isXSLTComponent } from './is-xslt-component'; + +describe('isXSLTComponent', () => { + it.each([ + [false, { to: 'mock' }], + [false, { toD: 'mock' }], + [false, {}], + [false, { to: { uri: undefined } }], + [false, { to: { uri: 'timer:myTimer' } }], + [true, { to: { uri: `${XSLT_COMPONENT_NAME}` } }], + [true, { to: { uri: `${XSLT_COMPONENT_NAME}:document.xsl` } }], + ] as const)('should return %s when toDefinition is %s', (result, toDefinition) => { + expect(isXSLTComponent(toDefinition)).toBe(result); + }); +}); diff --git a/packages/ui/src/utils/is-xslt-component.ts b/packages/ui/src/utils/is-xslt-component.ts new file mode 100644 index 000000000..6311d6583 --- /dev/null +++ b/packages/ui/src/utils/is-xslt-component.ts @@ -0,0 +1,14 @@ +import { ProcessorDefinition } from '@kaoto/camel-catalog/types'; +import { XSLT_COMPONENT_NAME } from './is-datamapper'; +import type { ToObjectDef } from './is-to-processor'; +import { isToProcessor } from './is-to-processor'; + +export type XsltComponentDef = ToObjectDef & { to: { uri: string } }; + +export const isXSLTComponent = (toDefinition: ProcessorDefinition): toDefinition is XsltComponentDef => { + if (!isToProcessor(toDefinition)) { + return false; + } + + return toDefinition.to.uri?.startsWith(XSLT_COMPONENT_NAME) ?? false; +}; From ea4814e1a59c7fced36c48af44081c37c07aa63c Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 14 Nov 2024 10:46:51 -0500 Subject: [PATCH 439/471] chore(DataMapper): cleanup Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/205 --- packages/ui/src/services/mapping.service.ts | 10 ++++---- .../services/visualization.service.test.ts | 24 +++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index 411b97bf7..eb45421ef 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -305,10 +305,12 @@ export class MappingService { private static deleteFromParent(item: MappingItem) { item.parent.children = item.parent.children.filter((child) => child !== item); - item.parent instanceof FieldItem && - item.parent.parent instanceof FieldItem && - item.parent.children.length === 0 && - MappingService.deleteFromParent(item.parent); + const isParentFieldItem = item.parent instanceof FieldItem; + const isParentParentFieldItem = 'parent' in item.parent && item.parent.parent instanceof FieldItem; + const areNoChildren = item.parent.children.length === 0; + if (isParentFieldItem && isParentParentFieldItem && areNoChildren) { + MappingService.deleteFromParent(item.parent as FieldItem); + } } static sortMappingItem(left: MappingItem, right: MappingItem) { diff --git a/packages/ui/src/services/visualization.service.test.ts b/packages/ui/src/services/visualization.service.test.ts index e49f9e867..887a4c2a9 100644 --- a/packages/ui/src/services/visualization.service.test.ts +++ b/packages/ui/src/services/visualization.service.test.ts @@ -63,6 +63,7 @@ describe('VisualizationService', () => { expect(shipOrderChildren.length).toEqual(4); expect(shipOrderChildren[0].title).toEqual('OrderId'); VisualizationService.applyIf(shipOrderChildren[0] as TargetNodeData); + expect(tree.children[0].name).toEqual('field-ShipOrder'); expect(tree.children[0].children[0].name).toEqual('if'); targetDocNode = new TargetDocumentNodeData(targetDoc, tree); @@ -83,18 +84,22 @@ describe('VisualizationService', () => { expect(shipOrderChildren.length).toEqual(4); expect(shipOrderChildren[1].title).toEqual('OrderPerson'); VisualizationService.applyChooseWhenOtherwise(shipOrderChildren[1] as TargetNodeData); + expect(tree.children[0].name).toEqual('field-ShipOrder'); expect(tree.children[0].children[0].name).toEqual('choose'); targetDocNode = new TargetDocumentNodeData(targetDoc, tree); docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); + expect(shipOrderChildren[1].title).toEqual('choose'); const chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(shipOrderChildren[1]); expect(chooseChildren.length).toEqual(2); + expect(chooseChildren[0].title).toEqual('when'); const whenChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[0]); expect(whenChildren.length).toEqual(1); expect(whenChildren[0].title).toEqual('OrderPerson'); + expect(chooseChildren[1].title).toEqual('otherwise'); const otherwiseChildren = VisualizationService.generateNonDocumentNodeDataChildren(chooseChildren[1]); expect(otherwiseChildren.length).toEqual(1); @@ -116,6 +121,7 @@ describe('VisualizationService', () => { expect(shipOrderChildren.length).toEqual(4); expect(shipOrderChildren[3].title).toEqual('Item'); VisualizationService.applyForEach(shipOrderChildren[3] as TargetFieldNodeData); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(docChildren[0]); @@ -131,6 +137,7 @@ describe('VisualizationService', () => { expect(tree.children.length).toEqual(0); const docChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); VisualizationService.applyValueSelector(docChildren[0] as TargetNodeData); + expect(tree.children.length).toEqual(1); expect(tree.children[0].children[0] instanceof ValueSelector).toBeTruthy(); }); @@ -143,6 +150,7 @@ describe('VisualizationService', () => { let targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); let targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); VisualizationService.applyIf(targetShipOrderChildren[1] as TargetNodeData); + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); const ifItem = tree.children[0].children[0] as IfItem; @@ -152,6 +160,7 @@ describe('VisualizationService', () => { sourceShipOrderChildren[1] as FieldNodeData, targetShipOrderChildren[1] as TargetNodeData, ); + expect(ifItem.expression).toEqual('/ns0:ShipOrder/ns0:OrderPerson'); }); @@ -159,6 +168,7 @@ describe('VisualizationService', () => { const sourceDocChildren = VisualizationService.generateStructuredDocumentChildren(sourceDocNode); expect(tree.children.length).toEqual(0); VisualizationService.engageMapping(tree, sourceDocChildren[0] as FieldNodeData, targetDocNode); + expect(tree.children[0] instanceof ValueSelector).toBeTruthy(); const selector = tree.children[0] as ValueSelector; expect(selector.expression).toEqual('/ns0:ShipOrder'); @@ -175,6 +185,7 @@ describe('VisualizationService', () => { sourceShipOrderChildren[1] as FieldNodeData, targetShipOrderChildren[1] as TargetNodeData, ); + expect(tree.children[0] instanceof FieldItem).toBeTruthy(); expect(tree.children[0].children[0] instanceof FieldItem).toBeTruthy(); expect(tree.children[0].children[0].children[0] instanceof ValueSelector).toBeTruthy(); @@ -190,11 +201,13 @@ describe('VisualizationService', () => { let targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); const targetItem = targetShipOrderChildren[3] as TargetFieldNodeData; VisualizationService.applyForEach(targetItem); + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); const forEach = targetShipOrderChildren[3] as MappingNodeData; const forEachChildren = VisualizationService.generateNonDocumentNodeDataChildren(forEach); VisualizationService.engageMapping(tree, sourceItem, forEachChildren[0] as TargetFieldNodeData); + expect((forEach.mapping as ExpressionItem).expression).toEqual(''); expect(((forEachChildren[0] as TargetFieldNodeData).mapping!.children[0] as ValueSelector).expression).toEqual( '/ns0:ShipOrder/Item', @@ -203,6 +216,7 @@ describe('VisualizationService', () => { it('should not remove for-each targeted field item when selector is removed', () => { MappingSerializerService.deserialize(shipOrderToShipOrderInvalidForEachXslt, targetDoc, tree, paramsMap); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); let targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); let targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); @@ -215,6 +229,7 @@ describe('VisualizationService', () => { let itemItem = targetForEachChildren[0] as TargetFieldNodeData; expect((itemItem.mapping?.children[0] as ValueSelector).expression).toEqual('/ns0:ShipOrder/Item'); VisualizationService.deleteMappingItem(targetForEachChildren[0] as TargetNodeData); + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); forEachItem = (targetShipOrderChildren[3] as MappingNodeData).mapping as ForEachItem; @@ -229,6 +244,7 @@ describe('VisualizationService', () => { it('should not remove for-each targeted field item when descendent is removed', () => { MappingSerializerService.deserialize(shipOrderToShipOrderInvalidForEachXslt, targetDoc, tree, paramsMap); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); let targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); let targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); @@ -245,6 +261,7 @@ describe('VisualizationService', () => { sourceItemChildren[0] as FieldNodeData, targetItemChildren[0] as TargetFieldNodeData, ); + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); targetForEachChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetShipOrderChildren[3]); @@ -253,6 +270,7 @@ describe('VisualizationService', () => { ((targetItemChildren[0] as TargetFieldNodeData).mapping?.children[0] as ValueSelector).expression, ).toEqual('/ns0:ShipOrder/Item/Title'); VisualizationService.deleteMappingItem(targetItemChildren[0] as TargetNodeData); + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); const forEachItem = (targetShipOrderChildren[3] as MappingNodeData).mapping as ForEachItem; @@ -276,6 +294,7 @@ describe('VisualizationService', () => { it('should test if or choose is allowed', () => { const targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); const shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(VisualizationService.allowIfChoose(targetDocNode)).toBeTruthy(); expect(VisualizationService.allowIfChoose(targetDocChildren[0] as TargetNodeData)).toBeTruthy(); expect(VisualizationService.allowIfChoose(shipOrderChildren[1] as TargetNodeData)).toBeFalsy(); @@ -288,6 +307,7 @@ describe('VisualizationService', () => { let shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); expect(shipOrderChildren[1] instanceof MappingNodeData).toBeTruthy(); VisualizationService.deleteMappingItem(shipOrderChildren[1] as TargetNodeData); + shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); expect(shipOrderChildren[1] instanceof TargetFieldNodeData).toBeTruthy(); }); @@ -299,16 +319,20 @@ describe('VisualizationService', () => { const shipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); expect(VisualizationService.allowConditionMenu(targetDocNode)).toBeTruthy(); expect(VisualizationService.allowConditionMenu(targetDocChildren[0] as TargetNodeData)).toBeTruthy(); + expect(shipOrderChildren.length).toEqual(4); const orderIdNode = shipOrderChildren[0] as TargetFieldNodeData; expect(orderIdNode.title).toEqual('OrderId'); expect(VisualizationService.allowConditionMenu(orderIdNode)).toBeFalsy(); + const ifNode = shipOrderChildren[1] as MappingNodeData; expect(ifNode.title).toEqual('if'); expect(VisualizationService.allowConditionMenu(ifNode)).toBeTruthy(); + const shipToNode = shipOrderChildren[2] as TargetFieldNodeData; expect(shipToNode.title).toEqual('ShipTo'); expect(VisualizationService.allowConditionMenu(shipToNode)).toBeFalsy(); + const forEachNode = shipOrderChildren[3] as MappingNodeData; expect(forEachNode.title).toEqual('for-each'); expect(VisualizationService.allowConditionMenu(forEachNode)).toBeFalsy(); From 1b326632d69d908d99d2628dec713c2eedb2c99d Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 14 Nov 2024 10:09:03 -0500 Subject: [PATCH 440/471] fix(DataMapper): Cannot edit or delete mapping if target body is primitive Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/197 Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/205 --- .../Document/actions/ConditionMenuAction.tsx | 5 +- .../services/mapping-serializer.service.ts | 2 + packages/ui/src/services/mapping.service.ts | 56 +++-- .../services/visualization.service.test.ts | 205 +++++++++++++++++- .../ui/src/services/visualization.service.ts | 31 ++- 5 files changed, 269 insertions(+), 30 deletions(-) diff --git a/packages/ui/src/components/Document/actions/ConditionMenuAction.tsx b/packages/ui/src/components/Document/actions/ConditionMenuAction.tsx index c3887b7c7..f9a8766de 100644 --- a/packages/ui/src/components/Document/actions/ConditionMenuAction.tsx +++ b/packages/ui/src/components/Document/actions/ConditionMenuAction.tsx @@ -11,7 +11,6 @@ import { } from '@patternfly/react-core'; import { EllipsisVIcon } from '@patternfly/react-icons'; import { ChooseItem } from '../../../models/datamapper/mapping'; -import { MappingService } from '../../../services/mapping.service'; type ConditionMenuProps = { nodeData: TargetNodeData; @@ -58,10 +57,10 @@ export const ConditionMenuAction: FunctionComponent = ({ nod VisualizationService.applyForEach(nodeData as TargetFieldNodeData); break; case 'when': - MappingService.addWhen(nodeData.mapping as ChooseItem); + VisualizationService.applyWhen(nodeData); break; case 'otherwise': - MappingService.addOtherwise(nodeData.mapping as ChooseItem); + VisualizationService.applyOtherwise(nodeData); break; } onUpdate(); diff --git a/packages/ui/src/services/mapping-serializer.service.ts b/packages/ui/src/services/mapping-serializer.service.ts index 00575673a..1e538c980 100644 --- a/packages/ui/src/services/mapping-serializer.service.ts +++ b/packages/ui/src/services/mapping-serializer.service.ts @@ -40,9 +40,11 @@ export class MappingSerializerService { private static sortMappingItem(left: MappingItem, right: MappingItem) { const leftFields = left instanceof FieldItem ? [left.field] : MappingService.getConditionalFields(left as ConditionItem); + if (leftFields.length === 0) return 1; if (leftFields.find((f) => f.isAttribute)) return -1; const rightFields = right instanceof FieldItem ? [right.field] : MappingService.getConditionalFields(right as ConditionItem); + if (rightFields.length === 0) return -1; if (rightFields.find((f) => f.isAttribute)) return 1; const leftFirst = leftFields.sort(MappingSerializerService.sortFields)[0]; const rightFirst = rightFields.sort(MappingSerializerService.sortFields)[0]; diff --git a/packages/ui/src/services/mapping.service.ts b/packages/ui/src/services/mapping.service.ts index eb45421ef..bfbfbb66e 100644 --- a/packages/ui/src/services/mapping.service.ts +++ b/packages/ui/src/services/mapping.service.ts @@ -175,32 +175,52 @@ export class MappingService { parent.children = parent.children.map((m) => (m !== wrapped ? m : chooseItem)); } + static addIf(parent: MappingParentType, mapping?: MappingItem) { + const ifItem = new IfItem(parent); + parent.children.push(ifItem); + ifItem.children.push(mapping ? mapping : MappingService.createValueSelector(ifItem)); + } + static addChooseWhenOtherwise(parent: MappingParentType, mapping?: MappingItem) { const chooseItem = new ChooseItem(parent, mapping && mapping instanceof FieldItem ? mapping.field : undefined); - const whenItem = MappingService.addWhen(chooseItem); - const otherwiseItem = MappingService.addOtherwise(chooseItem); + MappingService.addWhen(chooseItem, mapping); + MappingService.addOtherwise(chooseItem, mapping?.clone()); if (mapping) { - whenItem.children = [mapping]; - mapping.parent = whenItem; - otherwiseItem.children = [mapping.clone()]; parent.children = parent.children.map((m) => (m !== mapping ? m : chooseItem)); } if (!parent.children.includes(chooseItem)) parent.children.push(chooseItem); } - static addWhen(item: ChooseItem) { - const whenItem = new WhenItem(item); - item.field && whenItem.children.push(new FieldItem(whenItem, item.field)); - item.children.push(whenItem); + static addWhen(chooseItem: ChooseItem, mapping?: MappingItem, field?: IField) { + const whenItem = new WhenItem(chooseItem); + + if (mapping) { + whenItem.children.push(mapping); + } else { + if (field) { + MappingService.createFieldItem(whenItem, field); + } else { + whenItem.children.push(MappingService.createValueSelector(whenItem)); + } + } + chooseItem.children.push(whenItem); return whenItem; } - static addOtherwise(item: ChooseItem) { - const newChildren = item.children.filter((c) => !(c instanceof OtherwiseItem)); - const otherwiseItem = new OtherwiseItem(item); - item.field && otherwiseItem.children.push(new FieldItem(otherwiseItem, item.field)); + static addOtherwise(chooseItem: ChooseItem, mapping?: MappingItem, field?: IField) { + const newChildren = chooseItem.children.filter((c) => !(c instanceof OtherwiseItem)); + const otherwiseItem = new OtherwiseItem(chooseItem); + if (mapping) { + otherwiseItem.children.push(mapping); + } else { + if (field) { + MappingService.createFieldItem(otherwiseItem, field); + } else { + otherwiseItem.children.push(MappingService.createValueSelector(otherwiseItem)); + } + } newChildren.push(otherwiseItem); - item.children = newChildren; + chooseItem.children = newChildren; return otherwiseItem; } @@ -297,9 +317,11 @@ export class MappingService { } static deleteMappingItem(item: MappingParentType) { - if (item instanceof MappingItem) { - item.children = item.children.filter((child) => !(child instanceof ValueSelector)); - (item instanceof ConditionItem || item.parent instanceof FieldItem) && MappingService.deleteFromParent(item); + item.children = item.children.filter((child) => !(child instanceof ValueSelector)); + const isConditionItem = item instanceof ConditionItem; + const isParentFieldItem = 'parent' in item && item.parent instanceof FieldItem; + if (isConditionItem || isParentFieldItem) { + MappingService.deleteFromParent(item); } } diff --git a/packages/ui/src/services/visualization.service.test.ts b/packages/ui/src/services/visualization.service.test.ts index 887a4c2a9..3dc5a25bd 100644 --- a/packages/ui/src/services/visualization.service.test.ts +++ b/packages/ui/src/services/visualization.service.test.ts @@ -14,12 +14,15 @@ import { ForEachItem, IfItem, MappingTree, + OtherwiseItem, ValueSelector, + WhenItem, } from '../models/datamapper/mapping'; import { XmlSchemaDocument } from './xml-schema-document.service'; import { MappingSerializerService } from './mapping-serializer.service'; -import { IDocument } from '../models/datamapper/document'; +import { BODY_DOCUMENT_ID, IDocument, PrimitiveDocument } from '../models/datamapper/document'; import { shipOrderToShipOrderInvalidForEachXslt, shipOrderToShipOrderXslt, TestUtil } from '../stubs/data-mapper'; +import { DocumentType } from '../models/datamapper/path'; describe('VisualizationService', () => { let sourceDoc: XmlSchemaDocument; @@ -74,6 +77,25 @@ describe('VisualizationService', () => { expect(ifChildren.length).toEqual(1); expect(ifChildren[0].title).toEqual('OrderId'); }); + + it('should add If on primitive target body', () => { + const primitiveTargetDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + tree = new MappingTree(primitiveTargetDoc.documentType, primitiveTargetDoc.documentId); + targetDocNode = new TargetDocumentNodeData(primitiveTargetDoc, tree); + VisualizationService.applyIf(targetDocNode); + + expect(VisualizationService.hasChildren(targetDocNode)).toBeTruthy(); + let targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + expect(targetDocChildren.length).toEqual(1); + const ifItem = (targetDocChildren[0] as MappingNodeData).mapping; + expect(ifItem instanceof IfItem).toBeTruthy(); + expect(ifItem.name).toEqual('if'); + + targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + const ifChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(ifChildren.length).toEqual(1); + expect((ifChildren[0] as MappingNodeData).mapping instanceof ValueSelector).toBeTruthy(); + }); }); describe('applyChooseWhenOtherwise()', () => { @@ -106,10 +128,145 @@ describe('VisualizationService', () => { expect(otherwiseChildren[0].title).toEqual('OrderPerson'); }); - it('should add Choose-When-Otherwise on Document', () => { - expect(tree.children.length).toEqual(0); + it('should add Choose-When-Otherwise on primitive target body', () => { + const primitiveTargetDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + tree = new MappingTree(primitiveTargetDoc.documentType, primitiveTargetDoc.documentId); + targetDocNode = new TargetDocumentNodeData(primitiveTargetDoc, tree); + VisualizationService.applyChooseWhenOtherwise(targetDocNode); + + expect(VisualizationService.hasChildren(targetDocNode)).toBeTruthy(); + let targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + expect(targetDocChildren.length).toEqual(1); + const chooseItem = (targetDocChildren[0] as MappingNodeData).mapping; + expect(chooseItem instanceof ChooseItem).toBeTruthy(); + expect(chooseItem.name).toEqual('choose'); + + targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + const chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(chooseChildren.length).toEqual(2); + const whenItem = (chooseChildren[0] as MappingNodeData).mapping; + expect(whenItem instanceof WhenItem).toBeTruthy(); + expect(whenItem.children[0] instanceof ValueSelector).toBeTruthy(); + + const otherwiseItem = (chooseChildren[1] as MappingNodeData).mapping; + expect(otherwiseItem instanceof OtherwiseItem).toBeTruthy(); + expect(otherwiseItem.children[0] instanceof ValueSelector).toBeTruthy(); + }); + }); + + describe('applyWhen()', () => { + it('should addWhen', () => { + let targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + let targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + VisualizationService.applyChooseWhenOtherwise(targetShipOrderChildren[1] as TargetNodeData); + + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + VisualizationService.applyWhen(targetShipOrderChildren[1] as TargetNodeData); + + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + const chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetShipOrderChildren[1]); + expect(chooseChildren.length).toEqual(3); + + const whenItem1 = (chooseChildren[0] as MappingNodeData).mapping; + expect(whenItem1 instanceof WhenItem).toBeTruthy(); + expect(whenItem1.children.length).toEqual(1); + expect(whenItem1.children[0] instanceof FieldItem).toBeTruthy(); + + const whenItem2 = (chooseChildren[1] as MappingNodeData).mapping; + expect(whenItem2 instanceof WhenItem).toBeTruthy(); + expect(whenItem2.children.length).toEqual(1); + expect(whenItem2.children[0] instanceof FieldItem).toBeTruthy(); + + const otherwiseItem = (chooseChildren[2] as MappingNodeData).mapping; + expect(otherwiseItem instanceof OtherwiseItem).toBeTruthy(); + expect(otherwiseItem.children.length).toEqual(1); + expect(otherwiseItem.children[0] instanceof FieldItem).toBeTruthy(); + }); + + it('should add When in primitive target body choose', () => { + const primitiveTargetDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + tree = new MappingTree(primitiveTargetDoc.documentType, primitiveTargetDoc.documentId); + targetDocNode = new TargetDocumentNodeData(primitiveTargetDoc, tree); VisualizationService.applyChooseWhenOtherwise(targetDocNode); - expect(tree.children[0] instanceof ChooseItem).toBeTruthy(); + + let targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + VisualizationService.applyWhen(targetDocChildren[0] as TargetNodeData); + + targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + const chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(chooseChildren.length).toEqual(3); + + const whenItem1 = (chooseChildren[0] as MappingNodeData).mapping; + expect(whenItem1 instanceof WhenItem).toBeTruthy(); + expect(whenItem1.children.length).toEqual(1); + expect(whenItem1.children[0] instanceof ValueSelector).toBeTruthy(); + + const whenItem2 = (chooseChildren[1] as MappingNodeData).mapping; + expect(whenItem2 instanceof WhenItem).toBeTruthy(); + expect(whenItem2.children.length).toEqual(1); + expect(whenItem2.children[0] instanceof ValueSelector).toBeTruthy(); + + const otherwiseItem = (chooseChildren[2] as MappingNodeData).mapping; + expect(otherwiseItem instanceof OtherwiseItem).toBeTruthy(); + expect(otherwiseItem.children.length).toEqual(1); + expect(otherwiseItem.children[0] instanceof ValueSelector).toBeTruthy(); + }); + }); + + describe('applyOtherwise()', () => { + it('should add Otherwise', () => { + let targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + let targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + VisualizationService.applyChooseWhenOtherwise(targetShipOrderChildren[1] as TargetNodeData); + + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + let chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetShipOrderChildren[1]); + VisualizationService.deleteMappingItem(chooseChildren[1] as MappingNodeData); + VisualizationService.applyOtherwise(targetShipOrderChildren[1] as TargetNodeData); + + targetDocChildren = VisualizationService.generateStructuredDocumentChildren(targetDocNode); + targetShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetShipOrderChildren[1]); + expect(chooseChildren.length).toEqual(2); + + const whenItem = (chooseChildren[0] as MappingNodeData).mapping; + expect(whenItem instanceof WhenItem).toBeTruthy(); + expect(whenItem.children.length).toEqual(1); + expect(whenItem.children[0] instanceof FieldItem).toBeTruthy(); + + const otherwiseItem = (chooseChildren[1] as MappingNodeData).mapping; + expect(otherwiseItem instanceof OtherwiseItem).toBeTruthy(); + expect(otherwiseItem.children.length).toEqual(1); + expect(otherwiseItem.children[0] instanceof FieldItem).toBeTruthy(); + }); + + it('should add Otherwise in primitive target body choose', () => { + const primitiveTargetDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + tree = new MappingTree(primitiveTargetDoc.documentType, primitiveTargetDoc.documentId); + targetDocNode = new TargetDocumentNodeData(primitiveTargetDoc, tree); + VisualizationService.applyChooseWhenOtherwise(targetDocNode); + + let targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + let chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + VisualizationService.deleteMappingItem(chooseChildren[1] as MappingNodeData); + VisualizationService.applyOtherwise(targetDocChildren[0] as TargetNodeData); + + targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + chooseChildren = VisualizationService.generateNonDocumentNodeDataChildren(targetDocChildren[0]); + expect(chooseChildren.length).toEqual(2); + + const whenItem = (chooseChildren[0] as MappingNodeData).mapping; + expect(whenItem instanceof WhenItem).toBeTruthy(); + expect(whenItem.children.length).toEqual(1); + expect(whenItem.children[0] instanceof ValueSelector).toBeTruthy(); + + const otherwiseItem = (chooseChildren[1] as MappingNodeData).mapping; + expect(otherwiseItem instanceof OtherwiseItem).toBeTruthy(); + expect(otherwiseItem.children.length).toEqual(1); + expect(otherwiseItem.children[0] instanceof ValueSelector).toBeTruthy(); }); }); @@ -141,6 +298,46 @@ describe('VisualizationService', () => { expect(tree.children.length).toEqual(1); expect(tree.children[0].children[0] instanceof ValueSelector).toBeTruthy(); }); + + it('should apply value selector on primitive target body', () => { + const primitiveTargetDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + tree = new MappingTree(primitiveTargetDoc.documentType, primitiveTargetDoc.documentId); + targetDocNode = new TargetDocumentNodeData(primitiveTargetDoc, tree); + VisualizationService.applyValueSelector(targetDocNode); + + expect(VisualizationService.hasChildren(targetDocNode)).toBeFalsy(); + const targetDocChildren = VisualizationService.generatePrimitiveDocumentChildren(targetDocNode); + expect(targetDocChildren.length).toEqual(0); + }); + }); + + describe('getExpressionItemForNode()', () => { + it('should return ValueSelector for primitive target body', () => { + const primitiveTargetDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + tree = new MappingTree(primitiveTargetDoc.documentType, primitiveTargetDoc.documentId); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); + const sourceDocChildren = VisualizationService.generateStructuredDocumentChildren(sourceDocNode); + const sourceShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(sourceDocChildren[0]); + VisualizationService.engageMapping(tree, sourceShipOrderChildren[1] as FieldNodeData, targetDocNode); + + const expressionItem = VisualizationService.getExpressionItemForNode(targetDocNode); + expect(expressionItem?.expression).toEqual('/ns0:ShipOrder/ns0:OrderPerson'); + }); + }); + + describe('deleteMappingItem()', () => { + it('should delete primitive target body mapping', () => { + const primitiveTargetDoc = new PrimitiveDocument(DocumentType.TARGET_BODY, BODY_DOCUMENT_ID); + tree = new MappingTree(primitiveTargetDoc.documentType, primitiveTargetDoc.documentId); + targetDocNode = new TargetDocumentNodeData(targetDoc, tree); + const sourceDocChildren = VisualizationService.generateStructuredDocumentChildren(sourceDocNode); + const sourceShipOrderChildren = VisualizationService.generateNonDocumentNodeDataChildren(sourceDocChildren[0]); + VisualizationService.engageMapping(tree, sourceShipOrderChildren[1] as FieldNodeData, targetDocNode); + + VisualizationService.deleteMappingItem(targetDocNode); + const expressionItem = VisualizationService.getExpressionItemForNode(targetDocNode); + expect(expressionItem).toBeUndefined(); + }); }); describe('engageMapping()', () => { diff --git a/packages/ui/src/services/visualization.service.ts b/packages/ui/src/services/visualization.service.ts index 615f4bb41..4e01a2f21 100644 --- a/packages/ui/src/services/visualization.service.ts +++ b/packages/ui/src/services/visualization.service.ts @@ -42,7 +42,9 @@ export class VisualizationService { } static generatePrimitiveDocumentChildren(document: DocumentNodeData): NodeData[] { if (!(document instanceof TargetDocumentNodeData) || !document.mapping?.children) return []; - return document.mapping.children.map((child) => new MappingNodeData(document, child)); + return document.mapping.children + .filter((child) => !(child instanceof ValueSelector)) + .map((child) => new MappingNodeData(document, child)); } static generateStructuredDocumentChildren(document: DocumentNodeData): NodeData[] { @@ -142,7 +144,13 @@ export class VisualizationService { } static hasChildren(nodeData: NodeData) { - if (nodeData instanceof DocumentNodeData) return DocumentService.hasFields(nodeData.document); + if (nodeData instanceof DocumentNodeData) { + if (DocumentService.hasFields(nodeData.document)) return true; + const isPrimitiveDocument = nodeData instanceof TargetDocumentNodeData && nodeData.isPrimitive; + const isPrimitiveDocumentWithConditionItem = + isPrimitiveDocument && !!nodeData.mapping.children.find((m) => !(m instanceof ValueSelector)); + if (isPrimitiveDocumentWithConditionItem) return true; + } if (nodeData instanceof FieldNodeData) return DocumentService.hasChildren(nodeData.field); if (nodeData instanceof MappingNodeData) return nodeData.mapping.children.length > 0; return false; @@ -197,7 +205,7 @@ export class VisualizationService { } private static getFieldValueSelector(nodeData: TargetNodeData) { - if (nodeData.mapping instanceof FieldItem) { + if (nodeData.mapping instanceof FieldItem || nodeData.mapping instanceof MappingTree) { return nodeData.mapping.children.find((c) => c instanceof ValueSelector) as ValueSelector; } } @@ -238,7 +246,8 @@ export class VisualizationService { static applyIf(nodeData: TargetNodeData) { if (nodeData instanceof TargetDocumentNodeData) { - nodeData.mappingTree.children.push(new IfItem(nodeData.mappingTree)); + const valueSelector = nodeData.mappingTree.children.find((c) => c instanceof ValueSelector); + MappingService.addIf(nodeData.mappingTree, valueSelector); } else if (nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) { const mapping = nodeData.mapping ? nodeData.mapping @@ -254,8 +263,8 @@ export class VisualizationService { if (nodeData instanceof TargetDocumentNodeData) { if (nodeData.mappingTree.children.find((c) => c instanceof ChooseItem)) return; - const existingValueSelector = nodeData.mappingTree.children.find((c) => c instanceof ValueSelector); - MappingService.addChooseWhenOtherwise(nodeData.mappingTree, existingValueSelector); + const valueSelector = nodeData.mappingTree.children.find((c) => c instanceof ValueSelector); + MappingService.addChooseWhenOtherwise(nodeData.mappingTree, valueSelector); } else if (nodeData instanceof MappingNodeData || nodeData instanceof TargetFieldNodeData) { if (nodeData.mapping && nodeData.mapping.children.find((c) => c instanceof ChooseItem)) return; @@ -269,6 +278,16 @@ export class VisualizationService { } } + static applyWhen(nodeData: TargetNodeData) { + const chooseItem = nodeData.mapping as ChooseItem; + MappingService.addWhen(chooseItem, undefined, chooseItem.field); + } + + static applyOtherwise(nodeData: TargetNodeData) { + const chooseItem = nodeData.mapping as ChooseItem; + MappingService.addOtherwise(chooseItem, undefined, chooseItem.field); + } + static applyForEach(nodeData: TargetFieldNodeData) { const fieldItem = VisualizationService.getOrCreateFieldItem(nodeData); MappingService.wrapWithForEach(fieldItem as MappingItem); From b2b6b7f139adde63053f11d3f2cd34fc1040f3b8 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Thu, 14 Nov 2024 23:12:40 -0500 Subject: [PATCH 441/471] fix(DataMapper): Show a warning when an expression is empty for the conditional directive such as for-each, if and when Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/196 Also fixes input field click causing expand/collapse Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/209 --- .../Document/actions/XPathInputAction.tsx | 56 ++++++++++++------- .../ui/src/services/xpath/xpath.service.ts | 36 ++++++++---- 2 files changed, 62 insertions(+), 30 deletions(-) diff --git a/packages/ui/src/components/Document/actions/XPathInputAction.tsx b/packages/ui/src/components/Document/actions/XPathInputAction.tsx index 7b783161d..d5de0cc0e 100644 --- a/packages/ui/src/components/Document/actions/XPathInputAction.tsx +++ b/packages/ui/src/components/Document/actions/XPathInputAction.tsx @@ -4,6 +4,7 @@ import { ActionListItem, Button, ButtonVariant, + Icon, InputGroup, InputGroupItem, List, @@ -11,7 +12,7 @@ import { Popover, TextInput, } from '@patternfly/react-core'; -import { ExclamationCircleIcon } from '@patternfly/react-icons'; +import { ExclamationCircleIcon, ExclamationTriangleIcon } from '@patternfly/react-icons'; import { ValidatedXPathParseResult, XPathService } from '../../../services/xpath/xpath.service'; import './XPathInputAction.scss'; @@ -23,12 +24,8 @@ export const XPathInputAction: FunctionComponent = ({ mapping, const [validationResult, setValidationResult] = useState(); const validateXPath = useCallback(() => { - if (mapping.expression) { - const result = XPathService.validate(mapping.expression); - setValidationResult(result); - } else { - setValidationResult(undefined); - } + const result = XPathService.validate(mapping.expression); + setValidationResult(result); }, [mapping.expression]); useEffect(() => { @@ -51,7 +48,12 @@ export const XPathInputAction: FunctionComponent = ({ mapping, }, []); const errorContent = useMemo(() => { - return {validationResult?.getErrors().map((e) => {e})}; + return ( + + {validationResult?.getErrors().map((e) => {e})} + {validationResult?.getWarnings().map((w) => {w})} + + ); }, [validationResult]); return ( @@ -65,20 +67,34 @@ export const XPathInputAction: FunctionComponent = ({ mapping, value={mapping.expression as string} onChange={handleXPathChange} onMouseMove={stopPropagation} + onClick={stopPropagation} />
    - {validationResult && (!validationResult.getCst() || validationResult.dataMapperErrors.length > 0) && ( - - - - - - )} + {validationResult && + (!validationResult.getCst() || + validationResult.dataMapperErrors.length > 0 || + validationResult.hasWarnings()) && ( + + + + + + )}
    ); diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index 23445d143..9c3a1af10 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -9,27 +9,38 @@ import { DocumentService } from '../document.service'; import { DocumentType } from '../../models/datamapper/path'; export class ValidatedXPathParseResult { - constructor(public parserResult: XPathParserResult) {} + constructor(public parserResult?: XPathParserResult) {} dataMapperErrors: string[] = []; + warnings: string[] = []; hasErrors(): boolean { return ( - this.parserResult.lexErrors.length > 0 || - this.parserResult.parseErrors.length > 0 || + (this.parserResult && this.parserResult.lexErrors.length > 0) || + (this.parserResult && this.parserResult?.parseErrors.length > 0) || this.dataMapperErrors.length > 0 ); } getErrors(): string[] { - return [ - ...this.parserResult.lexErrors.map((e) => e.message), - ...this.parserResult.parseErrors.map((e) => e.message), - ...this.dataMapperErrors, - ]; + const answer = []; + if (this.parserResult) { + answer.push(...this.parserResult.lexErrors.map((e) => e.message)); + answer.push(...this.parserResult.parseErrors.map((e) => e.message)); + } + answer.push(...this.dataMapperErrors); + return answer; + } + + hasWarnings(): boolean { + return this.warnings.length > 0; } - getCst(): CstNode { - return this.parserResult.cst; + getWarnings(): string[] { + return this.warnings; + } + + getCst(): CstNode | undefined { + return this.parserResult?.cst; } } @@ -42,6 +53,11 @@ export class XPathService { } static validate(xpath: string): ValidatedXPathParseResult { + if (!xpath) { + const answer = new ValidatedXPathParseResult(); + answer.warnings.push('Empty Expression'); + return answer; + } const parserResult = XPathService.parse(xpath); const validationResult = new ValidatedXPathParseResult(parserResult); if (!validationResult.getCst()) return validationResult; From c3f6b544f7680e7e1c98318e19226b06b50f8d59 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 15 Nov 2024 01:28:57 -0500 Subject: [PATCH 442/471] fix(DataMapper): Primitive source body mapping doesn't draw a line Fixes: https://github.com/KaotoIO/kaoto-datamapper-integration/issues/211 --- .../ui/src/services/xpath/xpath.service.test.ts | 6 ++++++ packages/ui/src/services/xpath/xpath.service.ts | 14 ++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/services/xpath/xpath.service.test.ts b/packages/ui/src/services/xpath/xpath.service.test.ts index ee8eabc2f..4c06dbe41 100644 --- a/packages/ui/src/services/xpath/xpath.service.test.ts +++ b/packages/ui/src/services/xpath/xpath.service.test.ts @@ -95,6 +95,12 @@ describe('XPathService', () => { expect(paths[1]).toEqual('aaa/bbb/ddd'); expect(paths[2]).toEqual('$param1/eee/fff'); }); + + it('extract primitive source body', () => { + const paths = XPathService.extractFieldPaths('.'); + expect(paths.length).toEqual(1); + expect(paths[0]).toEqual('/'); + }); }); it('getXPathFunctionDefinitions()', () => { diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index 9c3a1af10..a6323320c 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -148,11 +148,14 @@ export class XPathService { const parsed = XPathService.parse(expression); if (!parsed.cst) return []; const paths = XPathService.collectPathExpressions(parsed.cst); - return paths.map((node) => XPathService.pathExprToString(node)); + return paths.map((node) => { + if ('image' in node && node.image === '.') return '/'; + if ('children' in node) return XPathService.pathExprToString(node); + }); } private static collectPathExpressions(node: CstNode) { - const answer: CstNode[] = []; + const answer: CstElement[] = []; if (node.name === 'PathExpr') { answer.push(...XPathService.extractPathExprNode(node)); return answer; @@ -168,16 +171,19 @@ export class XPathService { }); } return acc; - }, [] as CstNode[]); + }, [] as CstElement[]); } - private static extractPathExprNode(pathExprNode: CstNode) { + private static extractPathExprNode(pathExprNode: CstNode): CstElement[] { const filterExpr = XPathService.getNode(pathExprNode, ['RelativePathExpr', 'StepExpr', 'FilterExpr']); if (!filterExpr) return [pathExprNode]; const literal = XPathService.getNode(filterExpr, ['Literal']); if (literal) return []; + const contextItemExpr = XPathService.getNode(filterExpr, ['ContextItemExpr']); + if (contextItemExpr) return [contextItemExpr]; + // Extract contents in parenthesis const parenthesizedExpr = XPathService.getNode(filterExpr, ['ParenthesizedExpr']); if (parenthesizedExpr && 'children' in parenthesizedExpr) { From 37f04ae754f544c8bfad582f05d7c57b8e4231ae Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 15 Nov 2024 10:05:02 -0500 Subject: [PATCH 443/471] fix(DataMapper): fix build error and test caused by - https://github.com/KaotoIO/kaoto-datamapper-integration/pull/210 - https://github.com/KaotoIO/kaoto-datamapper-integration/pull/212 --- .../Document/actions/XPathInputAction.test.tsx | 6 +----- packages/ui/src/services/xpath/xpath.service.ts | 14 +++++++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx b/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx index 08af178ef..52182a0fa 100644 --- a/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx +++ b/packages/ui/src/components/Document/actions/XPathInputAction.test.tsx @@ -30,11 +30,7 @@ describe('XPathInputAction', () => { const onUpdateMock = jest.fn(); render(); const btn = await screen.findByTestId('xpath-input-error-btn'); - act(() => { - fireEvent.click(btn); - }); - const error = await screen.findByRole('dialog'); - expect(error).toBeInTheDocument(); + expect(btn).toBeInTheDocument(); }); it('should stop event propagation on handleXPathChange', () => { diff --git a/packages/ui/src/services/xpath/xpath.service.ts b/packages/ui/src/services/xpath/xpath.service.ts index a6323320c..76f5b15f4 100644 --- a/packages/ui/src/services/xpath/xpath.service.ts +++ b/packages/ui/src/services/xpath/xpath.service.ts @@ -144,14 +144,18 @@ export class XPathService { return answer; } - static extractFieldPaths(expression: string) { + static extractFieldPaths(expression: string): string[] { const parsed = XPathService.parse(expression); if (!parsed.cst) return []; const paths = XPathService.collectPathExpressions(parsed.cst); - return paths.map((node) => { - if ('image' in node && node.image === '.') return '/'; - if ('children' in node) return XPathService.pathExprToString(node); - }); + return paths.reduce((acc, node) => { + if ('children' in node) { + acc.push(XPathService.pathExprToString(node)); + } else if ('image' in node && node.image === '.') { + acc.push('/'); + } + return acc; + }, [] as string[]); } private static collectPathExpressions(node: CstNode) { From 15e6b8b10cca0d530c382b091b56f6aed4ca1f88 Mon Sep 17 00:00:00 2001 From: "Ricardo M." Date: Wed, 13 Nov 2024 09:44:28 +0100 Subject: [PATCH 444/471] feat(DataMapper): Provide a DataMapper tab --- packages/ui/src/layout/Navigation.tsx | 6 +++ .../multiplying-architecture/KaotoEditor.tsx | 32 +++++++++++-- .../KaotoEditorRouter.tsx | 4 ++ .../DataMapperHowTo/DataMapperHowToPage.scss | 3 ++ .../DataMapperHowTo/DataMapperHowToPage.tsx | 45 +++++++++++++++++++ .../ui/src/pages/DataMapperHowTo/index.ts | 1 + .../pages/DataMapperHowTo/router-exports.tsx | 3 ++ packages/ui/src/router.tsx | 4 ++ 8 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.scss create mode 100644 packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.tsx create mode 100644 packages/ui/src/pages/DataMapperHowTo/index.ts create mode 100644 packages/ui/src/pages/DataMapperHowTo/router-exports.tsx diff --git a/packages/ui/src/layout/Navigation.tsx b/packages/ui/src/layout/Navigation.tsx index e075deedd..80e939e70 100644 --- a/packages/ui/src/layout/Navigation.tsx +++ b/packages/ui/src/layout/Navigation.tsx @@ -38,6 +38,11 @@ export const Navigation: FunctionComponent = (props) => { to: Links.PipeErrorHandler, hidden: () => !NAVIGATION_ELEMENTS.PipeErrorHandler.includes(currentSchemaType), }, + { + title: 'DataMapper', + to: Links.DataMapper, + hidden: () => !NAVIGATION_ELEMENTS.DataMapper.includes(currentSchemaType), + }, { title: 'Catalog', to: Links.Catalog }, ], [currentSchemaType], @@ -113,4 +118,5 @@ const NAVIGATION_ELEMENTS = { SourceSchemaType.Pipe, ], PipeErrorHandler: [SourceSchemaType.KameletBinding, SourceSchemaType.Pipe], + DataMapper: [SourceSchemaType.Route, SourceSchemaType.Kamelet], }; diff --git a/packages/ui/src/multiplying-architecture/KaotoEditor.tsx b/packages/ui/src/multiplying-architecture/KaotoEditor.tsx index 4b64a8043..f33a25ece 100644 --- a/packages/ui/src/multiplying-architecture/KaotoEditor.tsx +++ b/packages/ui/src/multiplying-architecture/KaotoEditor.tsx @@ -9,17 +9,19 @@ import { SourceSchemaType } from '../models/camel/source-schema-type'; import { EntitiesContext } from '../providers/entities.provider'; import { Links } from '../router/links.models'; import './KaotoEditor.scss'; +import icon_component_datamapper from '../assets/components/datamapper.png'; const enum TabList { Design, Beans, Metadata, ErrorHandler, + KaotoDataMapper, } const SCHEMA_TABS: Record = { - [SourceSchemaType.Route]: [TabList.Design, TabList.Beans], - [SourceSchemaType.Kamelet]: [TabList.Design, TabList.Beans, TabList.Metadata], + [SourceSchemaType.Route]: [TabList.Design, TabList.Beans, TabList.KaotoDataMapper], + [SourceSchemaType.Kamelet]: [TabList.Design, TabList.Beans, TabList.Metadata, TabList.KaotoDataMapper], [SourceSchemaType.Integration]: [], [SourceSchemaType.KameletBinding]: [TabList.Design, TabList.Metadata, TabList.ErrorHandler], [SourceSchemaType.Pipe]: [TabList.Design, TabList.Metadata, TabList.ErrorHandler], @@ -30,6 +32,9 @@ export const KaotoEditor = () => { const resource = entitiesContext?.camelResource; const inset = useRef({ default: 'insetSm' }); const currentLocation = useLocation(); + const secondSlashIndex = currentLocation.pathname.indexOf('/', 1); + const currentPath = currentLocation.pathname.substring(0, secondSlashIndex !== -1 ? secondSlashIndex : undefined); + // const isDataMapperActive = currentPath === Links.DataMapper; const availableTabs = useMemo(() => { if (!resource) { @@ -38,6 +43,7 @@ export const KaotoEditor = () => { beans: false, metadata: false, errorHandler: false, + kaotoDataMapper: false, }; } @@ -46,6 +52,7 @@ export const KaotoEditor = () => { beans: SCHEMA_TABS[resource.getType()].indexOf(TabList.Beans) >= 0, metadata: SCHEMA_TABS[resource.getType()].indexOf(TabList.Metadata) >= 0, errorHandler: SCHEMA_TABS[resource.getType()].indexOf(TabList.ErrorHandler) >= 0, + kaotoDataMapper: SCHEMA_TABS[resource.getType()].indexOf(TabList.KaotoDataMapper) >= 0, }; }, [resource]); @@ -55,7 +62,7 @@ export const KaotoEditor = () => { inset={inset.current} isBox unmountOnExit - activeKey={currentLocation.pathname} + activeKey={currentPath} aria-label="Tabs in the Kaoto editor" role="region" > @@ -130,6 +137,25 @@ export const KaotoEditor = () => { /> )} + + {availableTabs.kaotoDataMapper && ( + + + + + DataMapper icon + + + DataMapper + + } + aria-label="DataMapper" + /> + + )}
    import('../pages/PipeErrorHandler'), }, + { + path: Links.DataMapper, + lazy: async () => import('../pages/DataMapperHowTo'), + }, { path: `${Links.DataMapper}/:id`, lazy: async () => import('../pages/DataMapper'), diff --git a/packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.scss b/packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.scss new file mode 100644 index 000000000..4b0bff8de --- /dev/null +++ b/packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.scss @@ -0,0 +1,3 @@ +.datamapper-howto { + flex-flow: column; +} diff --git a/packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.tsx b/packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.tsx new file mode 100644 index 000000000..2590a2b74 --- /dev/null +++ b/packages/ui/src/pages/DataMapperHowTo/DataMapperHowToPage.tsx @@ -0,0 +1,45 @@ +/* + Copyright (C) 2024 Red Hat, Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +import { Bullseye, Title } from '@patternfly/react-core'; +import { FunctionComponent } from 'react'; +import icon_component_datamapper from '../../assets/components/datamapper.png'; +import './DataMapperHowToPage.scss'; + +export const DataMapperHowToPage: FunctionComponent = () => { + return ( + + Kaoto DataMapper icon + Looking to configure the Kaoto DataMapper? + +
    +

    The Kaoto DataMapper is a powerful tool that allows you to map data between different formats.

    +

    To get started, follow the steps below:

    +
      +
    1. + Open the Kaoto DataMapper by selecting the DataMapper tab. +
    2. +
    3. + Click the + button to add a new mapping. +
    4. +
    5. Drag and drop fields from the source and target schemas to create your mapping.
    6. +
    7. + Click Save to save your mapping. +
    8. +
    +
    +
    + ); +}; diff --git a/packages/ui/src/pages/DataMapperHowTo/index.ts b/packages/ui/src/pages/DataMapperHowTo/index.ts new file mode 100644 index 000000000..222b76e07 --- /dev/null +++ b/packages/ui/src/pages/DataMapperHowTo/index.ts @@ -0,0 +1 @@ +export * from './router-exports'; diff --git a/packages/ui/src/pages/DataMapperHowTo/router-exports.tsx b/packages/ui/src/pages/DataMapperHowTo/router-exports.tsx new file mode 100644 index 000000000..e695780d1 --- /dev/null +++ b/packages/ui/src/pages/DataMapperHowTo/router-exports.tsx @@ -0,0 +1,3 @@ +import { DataMapperHowToPage } from './DataMapperHowToPage'; + +export const element = ; diff --git a/packages/ui/src/router.tsx b/packages/ui/src/router.tsx index e34a020cf..920f3b834 100644 --- a/packages/ui/src/router.tsx +++ b/packages/ui/src/router.tsx @@ -37,6 +37,10 @@ export const router = createHashRouter([ path: Links.Settings, lazy: async () => import('./pages/Settings'), }, + { + path: Links.DataMapper, + lazy: async () => import('./pages/DataMapperHowTo'), + }, { path: `${Links.DataMapper}/:id`, lazy: async () => import('./pages/DataMapper'), From 004acacebba15ff7ea14d2dc212b62461be42ca7 Mon Sep 17 00:00:00 2001 From: Tomohisa Igarashi Date: Fri, 15 Nov 2024 17:42:01 -0500 Subject: [PATCH 445/471] chore(DataMapper): Update instructions and add "not configurable in the browser" page --- .../assets/kaoto-patterns/kaoto-patterns.json | 8 +- .../DataMapper/DataMapperLauncher.tsx | 8 +- .../DataMapper/debug/MainMenuToolbarItem.tsx | 2 +- .../registers/datamapper.activationfn.test.ts | 2 +- .../__snapshots__/Navigation.test.tsx.snap | 118 +++++++++++++---- .../DataMapperHowTo/DataMapperHowToPage.scss | 1 + .../DataMapperHowTo/DataMapperHowToPage.tsx | 124 +++++++++++++++--- .../DataMapperHowTo/images/add-parameter.png | Bin 0 -> 7888 bytes .../images/add_parameter_confirm.png | Bin 0 -> 5247 bytes .../images/attach-schema-parameter.png | Bin 0 -> 11361 bytes .../images/attach-schema-source-body.png | Bin 0 -> 7659 bytes .../images/attach-schema-target-body.png | Bin 0 -> 9597 bytes .../images/configure-button.png | Bin 0 -> 1724 bytes .../DataMapperHowTo/images/data-mapping.png | Bin 0 -> 114566 bytes .../images/datamapper-step.png | Bin 0 -> 9366 bytes .../images/kaoto-datamapper-catalog.png | Bin 0 -> 19002 bytes .../DataMapperHowTo/images/kaoto-design.png | Bin 0 -> 4154 bytes .../DataMapperHowTo/images/source-target.png | Bin 0 -> 3536 bytes .../DataMapperNotYetInBrowser.tsx | 40 ++++++ .../pages/DataMapperNotYetInBrowser/index.ts | 1 + .../router-exports.tsx | 3 + .../catalog.provider.test.tsx.snap | 16 +-- packages/ui/src/router.tsx | 2 +- .../services/datamapper-metadata.service.ts | 2 +- 24 files changed, 268 insertions(+), 59 deletions(-) create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/add-parameter.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/add_parameter_confirm.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/attach-schema-parameter.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/attach-schema-source-body.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/attach-schema-target-body.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/configure-button.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/data-mapping.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/datamapper-step.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/kaoto-datamapper-catalog.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/kaoto-design.png create mode 100644 packages/ui/src/pages/DataMapperHowTo/images/source-target.png create mode 100644 packages/ui/src/pages/DataMapperNotYetInBrowser/DataMapperNotYetInBrowser.tsx create mode 100644 packages/ui/src/pages/DataMapperNotYetInBrowser/index.ts create mode 100644 packages/ui/src/pages/DataMapperNotYetInBrowser/router-exports.tsx diff --git a/packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json b/packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json index 3442fa0e6..0ff8ac0a8 100644 --- a/packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json +++ b/packages/ui/src/assets/kaoto-patterns/kaoto-patterns.json @@ -3,8 +3,8 @@ "model" : { "kind" : "model", "name" : "kaoto-datamapper", - "title" : "Kaoto Data Mapper", - "description" : "The Kaoto Data Mapper maps and transforms data using a set of Camel processors", + "title" : "Kaoto DataMapper", + "description" : "The Kaoto DataMapper maps and transforms data using a set of Camel processors", "deprecated" : false, "label" : "transformation", "javaType" : "org.apache.camel.model.StepDefinition", @@ -71,8 +71,8 @@ } }, "propertiesSchema" : { - "title" : "Kaoto Data Mapper", - "description" : "The Kaoto Data Mapper maps and transforms data using a set of Camel processors", + "title" : "Kaoto DataMapper", + "description" : "The Kaoto DataMapper maps and transforms data using a set of Camel processors", "type" : "object", "additionalProperties" : false, "properties" : { diff --git a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx index 4099e05fe..0ed016cc3 100644 --- a/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx +++ b/packages/ui/src/components/DataMapper/DataMapperLauncher.tsx @@ -71,7 +71,7 @@ export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNod label="Document" labelIcon={ @@ -82,7 +82,7 @@ export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNod {!isXsltDocumentDefined && ( @@ -98,8 +98,8 @@ export const DataMapperLauncher: FunctionComponent<{ vizNode?: IVisualizationNod